<?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>AdvancedContent</name>
	<version>0.8</version>
  <mincmsversion>1.9.4.1</mincmsversion>
	<help><![CDATA[PGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQiPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIiAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iRkEyRDNGUExTVEFLSiIgLz4KPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fR0IvaS9idG4vYnRuX2RvbmF0ZV9MRy5naWYiIGJvcmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lLiIgLz4KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZGVfREUvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiAvPgo8L2Zvcm0+PC9kaXY+PGJyIC8+CjxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhbiBhZGRpdGlvbmFsIGNvbnRlbnR0eXBlIHdoZW4gYWRkaW5nL2VkaXRpbmcgcGFnZXMuPGJyIC8+CldpdGggdGhpcyBjb250ZW50dHlwZSB1c2VycyBjYW4gY3JlYXRlIGN1c3RvbSBpbnB1dCBjb250cm9scyBpbiBiYWNrZW5kIHRvIHRoZSBhZGQvZWRpdCBwYWdlIGFyZWEgYnkganVzdCB1c2luZyBhZGRpdGlvbmFsIHBhcmFtcyBpbiB0aGUgcGFnZSB0ZW1wbGF0ZSB3aGVuIGNhbGxpbmcgdGhlIGNvbnRlbnQuPGJyIC8+ClRoYXQgbWVhbnMgeW91IGNhbiBkaXNwbGF5IHRoZSBjb250ZW50IGJsb2NrcyBhcyBkcm9wZG93bnMsIG11bHRpcGxlIHNlbGVjdCBsaXN0cywgY2hlY2tib3hlcyBldGMuPGJyIC8+CllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBjb250ZW50IGJsb2NrcyBpbiBkaWZmZXJlbnQgdGFicyBvciBncm91cCB0aGVtIGluIGZpZWxkc2V0cy48L3A+CjxwPkl0IGFsc28gYWRkcyBhYmlsaXR5IHRvIGdyYW50IGFjY2VzcyBvZiBwYWdlcyBvciBzaW5nbGUgYmxvY2tzIG9ubHkgdG8gY2VydGFpbiB1c2VycyBvZiB0aGUgCkZyb250RW5kVXNlcnMgbW9kdWxlIGFuZCBoaWRlIHRoZSBjb250ZW50LCByZXBsYWNlIGl0IGJ5IHRoZSBsb2dpbiBmb3JtIG9mIHRoZSAKRnJvbnRFbmRVc2VycyBtb2R1bGUgb3IgcmVkaXJlY3QgdG8gYSBzcGVjaWZpZWQgcGFnZSBzaG93aW5nIHRoZSBsb2dpbiBmb3JtIG9yIApqdXN0IHJlZGlyZWN0IHdpdGhvdXQgZG9pbmcgYW55dGhpbmcgZWxzZSBpZiB0aGUgZnJvbnRlbmQgdXNlciBpcyBub3QgbG9nZ2VkIGluIG9yIGRvZXMgbm90IGJlbG9uZyB0byBhIGNlcnRhaW4gZ3JvdXAuPC9wPgpBZGRpdGlvbmFsbHkgcGFnZXMgY2FuIGhhdmUgYSBzdGFydCBhbmQgZW5kIGRhdGUgdG8gYWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWdlcyBhdXRvbWF0aWNhbGx5LjwvcD4KPHA+VGhlIGFkdmFuY2VkIGNvbnRlbnQgcHJvcGVydGllcyBjYW4gYmUgaW5oZXJpdGVkIGZyb20gcGFyZW50IHBhZ2VzLjwvcD4KPHA+WW91IGNhbiBldmVuIHVzZSBzbWFydHkgbG9naWMgaW4gcGFyYW1ldGVyIHZhbHVlcy4gVGhhdCBtZWFucyB5b3UgY2FuIHVzZSB0aGUgCnJlc3VsdCBvZiBhIHBsdWdpbiwgYW4gdWR0IG9yIGV2ZW4gYSBtb2R1bGUgb3IganVzdCB0aGUgY29udGVudCBvZiBhIGdsb2JhbCAKY29udGVudCBibG9jayBhcyBwYXJhbWV0ZXIgdmFsdWUgdG8gY3JlYXRlIGR5bmFtaWMgdmFsdWVzLjwvcD4KPHA+PGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBJbiBzb21lIGNhc2VzIGl0IGlzIHJlY29tZW5kZWQgdG8gdXNlIHRoZSB0aGUge0FkdmFuY2VkQ29udGVudH0gdGFnIGluIHRlbXBsYXRlIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQge2NvbnRlbnR9IHRhZy4gKGNhc2Ugc2Vuc2l0aXZlKTxiciAvPgplLmcuIHRoZSBhbm5veWluZyBtZXNzYWdlICJQYXJhbWV0ZXIgW1hdIGlzIG5vdCBrbm93biBieSBNb2R1bGUgW01vZHVsZW5hbWVdIiBjYW4gYmUgYXZvaWRlZCB3aXRoIGl0LiAob25seSBhZmZlY3RzIHRoZSBkZWZhdWx0IGNvbnRlbnQgYmxvY2sgYXQgdGhlIG1vbWVudCk8L2VtPjwvcD4KPGgzPkhvdyBpcyBpdCB1c2VkPzwvaDM+CjxwPkFmdGVyIGluc3RhbGxhdGlvbiB0aGUgbW9kdWxlIHNldHRpbmdzIGNhbiBiZSBmb3VuZCBpbiAiRXh0ZW5zaW9ucy0+QWR2YW5jZWRDb250ZW50Ii48L2JyID4KQWRkaXRpb25hbGx5IHlvdSB3aWxsIGhhdmUgYSBuZXcgY29udGVudCB0eXBlICJBZHZhbmNlZENvbnRlbnQiIGF2YWlsYWJsZSB3aGVuIGFkZGluZy9lZGl0aW5nIGEgcGFnZS48L3A+CjxwPjxzdHJvbmcgc3R5bGU9ImNvbG9yOnJlZCI+V0FSTklORyEgPC9zdHJvbmc+PGJyIC8+CklmIHlvdSB1bmluc3RhbGwgdGhlIG1vZHVsZSB3aXRob3V0IHJldmVydGluZyBhbGwgcGFnZXMgb2YgdHlwZSBBZHZhbmNlZENvbnRlbnQgYmFjayB0byB0aGUgZGVmYXVsdCBjb250ZW50dHlwZSB5b3VyIENNU21zIHdvbid0IHdvcmsgYW55bW9yZSE8YnIgLz4KTWFrZSBzdXJlIHRvIHNldCBhbGwgcGFnZXMgb2YgdHlwZSBBZHZhbmNlZENvbnRlbnQgYmFjayB0byBkZWZhdWx0IGNvbnRlbnQgb3IgZGVsZXRlIHRoZW0gYmVmb3JlIHVuaW5zdGFsbGluZyEgKHVzZSB0aGUgbW9kdWxlIHByZWZlcmVuY2UgJ3VuaW5zdGFsbCBhY3Rpb24nIHRvIGRvIHRoaXMgYXV0b21hdGljYWxseSk8L3A+CjxwPlRvIHVzZSB0aGUgbW9kdWxlcyBmdW5jdGlvbnMgdXNlIHRoaXMgY29udGVudCB0eXBlIGFuZCBvcHRpb25hbGx5IGFkZCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgdG8geW91ciBjb250ZW50IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuLi48L3A+CjxoMz5XaGF0IHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZT88L2gzPgo8cD4oYWxsIHBhcmFtcyBhcmUgb3B0aW9uYWwpPC9wPgo8cD48c3Ryb25nPkRlZmF1bHQgcGFyYW1zOjwvc3Ryb25nPjwvcD4KPHA+PGVtPjxhIGhyZWY9Imxpc3R0YWdzLnBocD9hY3Rpb249c2hvd3BsdWdpbmhlbHAmcGx1Z2luPWNvbnRlbnQiPihzZWUgYWxzbyB0YWcgaGVscCBvZiB0aGUgZGVmYXVsdCB7Y29udGVudH0gdGFnKTwvYT48L2VtPjwvcD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT4KCQkJCUFsbG93cyB5b3UgdG8gaGF2ZSBtb3JlIHRoYW4gb25lIGNvbnRlbnQgYmxvY2sgcGVyIHBhZ2UuIElmIG11bHRpcGxlIGNvbnRlbnQgdGFncyBhcmUgcHV0IG9uIGEgdGVtcGxhdGUsIHRoYXQgbnVtYmVyIG9mIGVkaXQgYm94ZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgdGhlIHBhZ2UgaXMgZWRpdGVkLjxiciAvPgoJCQkJZS5nLjogPGNvZGU+e2NvbnRlbnQgYmxvY2s9IlNlY29uZCBDb250ZW50IGJsb2NrIn08L2NvZGU+PGJyIC8+CgkJCQlOb3csIGlmIHlvdSBlZGl0IGEgcGFnZSB0aGVyZSB3aWxsIGJhIGEgdGV4dGFyZWEgY2FsbGVkICJTZWNvbmQgQ29udGVudCBibG9jayIuPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrIG1heSBjb250YWluIG9ubHkgbGV0dGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIChubyB3aGl0ZXNwYWNlcywgc3BlY2lhbCBjaGFycywgdW1sYXV0cyBldGMuKS4gT3RoZXJ3aXNlIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGEgcHJvcGVyIG5hbWUgKHNpbWlsYXIgdG8gdGhlIHBhZ2UgYWxpYXMpLjwvZW0+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+d3lzaXd5ZzwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPklmIHNldCB0byBmYWxzZSwgdGhlbiBhIHd5c2l3eWcgd2lsbCBuZXZlciBiZSB1c2VkIHdoaWxlIGVkaXRpbmcgdGhpcyBibG9jay4gSWYgdHJ1ZSwgdGhlbiBpdCBhY3RzIGFzIG5vcm1hbC48L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pm9uZWxpbmU8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT5JZiBzZXQgdG8gdHJ1ZSwgdGhlbiBvbmx5IG9uZSBlZGl0IGxpbmUgd2lsbCBiZSBzaG93biB3aGlsZSBlZGl0aW5nIHRoaXMgYmxvY2suIElmIGZhbHNlLCB0aGVuIGl0IGFjdHMgYXMgbm9ybWFsLiBPbmx5IHdvcmtzIHdoZW4gYmxvY2sgcGFyYW1ldGVyIGlzIHVzZWQuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWZhdWx0PC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5EZWZhdWx0IGNvbnRlbnQgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlLjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+bGFiZWw8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPlByb21wdCBmb3IgdGhpcyBjb250ZW50IGJsb2NrLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGFueSBleHByZXNzaW9uLiBJZiBibGFuaywgdGhlIHVuY29udmVydGVkIGJsb2NrIG5hbWUgaXMgdXNlZC48L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFzc2lnbjwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlBc3NpZ25zIHRoZSBjb250ZW50IHRvIGEgc21hcnR5IHBhcmFtZXRlciwgd2hpY2ggeW91IGNhbiB0aGVuIHVzZSBpbiBvdGhlciBhcmVhcyBvZiB0aGUgcGFnZSwgb3IgdXNlIHRvIHRlc3Qgd2hldGhlciBjb250ZW50IGV4aXN0cyBpbiBpdCBvciBub3QuPGJyIC8+CgkJCQlFeGFtcGxlIG9mIHBhc3NpbmcgcGFnZSBjb250ZW50IHRvIGEgVXNlciBEZWZpbmVkIFRhZyBhcyBhIHBhcmFtZXRlcjo8YnIgLz4KCQkJCTxjb2RlPntjb250ZW50IGFzc2lnbj1wYWdlY29udGVudH08YnIgLz4KCQkJCXt0YWJsZV9vZl9jb250ZW50cyB0aGVwYWdlY29udGVudD0iJHBhZ2Vjb250ZW50In08L2NvZGU+PGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+QWR2YW5jZWQgcGFyYW1zOjwvc3Ryb25nPjwvcD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX3R5cGU8L3R0PiAodGV4dCxjaGVja2JveCxkcm9wZG93bixzZWxlY3RfbXVsdGlwbGUsZGF0ZSxtdWx0aV9pbnB1dCxzbGlkZXIsY29sb3JwaWNrZXIpIAoJCTx1bD4KCQkJPGxpPkFsbG93cyB5b3UgdG8gc3BlY2lmeSB3aGF0IGNvbnRlbnQgY29udHJvbCB0eXBlIGlzIHVzZWQgaW4gdGhlIGJhY2sgZW5kLjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+cGFnZV90YWI8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPgoJCQkJVGhpcyBwYXJhbWV0ZXIgc2V0cyB0aGUgdGFiIGluIHdoaWNoIHRoZSBjb250ZW50IGJsb2NrIGlzIGRpc3BsYXllZCBpbiB0aGUgYmFja2VuZC48YnIgLz4KCQkJCVBvc3NpYmxlIHZhbHVlcyBhcmUgIm1haW4iICggPSBUYWIgIk1haW4gTWVudSIpLCAib3B0aW9ucyIgKCA9IFRhYiAiT3B0aW9ucyIpLCBvciBhbnkgb3RoZXIgYXJiaXRyYXJ5IHZhbHVlPGJyIC8+CgkJCQk8ZW0+ZS5nLiB5b3UgY2FuIGFkZCBhIGNoZWNrYm94IHRvIHRoZSBvcHRpb25zIHRhYiBvciBjcmVhdGUgbmV3IHRhYnM8L2VtPi4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja190YWI8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPldpdGggdGhpcyBwYXJhbWV0ZXIsIHRoZSBibG9ja3Mgd2l0aGluIGEgcGFnZSB0YWIgY2FuIGJlIGZ1cnRoZXIgZGl2aWRlZCBpbnRvIHRhYnMgb3IgY2FuIGJlIGdyb3VwZWQgdG9nZXRoZXIuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja19ncm91cDwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+V2l0aCB0aGlzIHBhcmFtZXRlciwgbXVsdGlwbGUgYmxvY2tzIGNhbiBiZSBncm91cGVkIGluIGEgZmllbGRzZXQuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hY3RpdmU8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCUFsbG93cyB5b3UgdG8gZGlzYWJsZSBhIGNvbnRlbnQgYmxvY2suIERpc2FibGVkIGNvbnRlbnQgYmxvY2tzIHdvbid0IGJlIHNob3duIGluIGJhY2tlbmQgYXMgd2VsbCBhcyBpbiBmcm9udGVuZC4gKG9ubHkgd29ya3Mgd2l0aCB7QWR2YW5jZWRDb250ZW50fSBwbHVnaW4pPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZWRpdG9yX2dyb3VwczwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3VwIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZWRpdCB0aGlzIGJsb2NrLgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVkaXRvcl91c2VyczwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHVzZXIgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBlZGl0IHRoaXMgYmxvY2suCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHRoZSBwYXJhbXMgPHR0PmVkaXRvcl91c2VyczwvdHQ+IGFuZCA8dHQ+ZWRpdG9yX2dyb3VwczwvdHQ+IGFyZSBlbXB0eSB0aGUgYmxvY2sgbWF5IGJlIGVkaXRlZCBieSBhbnkgdXNlciB3aXRoIHN1ZmZpY2llbnQgcGVybWlzc2lvbiB0byBlZGl0IGEgcGFnZTwvZW0+PGJyIC8+PGJyIC8+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjY2VzczwvdHQ+CgkJPHVsPgoJCQk8bGk+CgkJCQlBIGxpc3Qgb2YgZmV1IGdyb3VwIGlkcyBzZXBhcmF0ZWQgYnkgYSBjb21tYS48YnIgLz4KCQkJCVRoaXMgc2hvd3MgdGhlIGNvbnRlbnQgYmxvY2sgb25seSB0byBjZXJ0YWluIGZldSBncm91cHMuPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjdGlvbjwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPgoJCQkJU3BlY2lmeSBpZiB0aGUgbG9naW4gZm9ybSBvZiB0aGUgZmV1IG1vZHVsZSB3aWxsIGJlIHNob3duIG9yIG5vdC48YnIgLz4KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVGhlIGxvZ2luIGZvcm0gd2lsbCBvbmx5IGJlIHNob3duIG9uZSB0aW1lLjxiciAvPgoJCQkJSWYgdGhlcmUgYXJlIG11bHRpcGxlIGJsb2NrcyB3aXRoIGxpbWl0ZWQgZmV1X2FjY2VzcyBhbmQgZmV1X2FjdGlvbiBzZXQgdG8gdHJ1ZSBvbmx5IHRoZSBmaXJzdCBibG9ja3MgbG9naW4gZm9ybSB3aWxsIGJlIHNob3duIGFuZCBhbGwgb3RoZXIgYmxvY2tzIHdpbGwganVzdCBiZSBlbXB0eS48L2VtPjxiciAvPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFsbG93X25vbmU8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT5TZXQgdG8gdHJ1ZSBpZiB0aGUgdXNlciBtYXkgZW50ZXIgZW1wdHkgdmFsdWVzLiA8YnIgLz5JZiBzZXQgdG8gZmFsc2UgYW5kIHZhbHVlIGlzIGVtcHR5IHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBwYXJhbSAiZGVmYXVsdCIgd2lsbCBiZSB1c2VkLiA8YnIgLz5JZiBzZXQgdG8gdHJ1ZSBhbmQgYmxvY2sgaXMgb2YgdHlwZSBpbWFnZS9maWxlIHRoZSBvcHRpb24gIm5vbmUiIChtb2RlPSJkcm9wZG93biIpIG9yIGEgYnV0dG9uIHRvIGNsZWFyIHRoZSBzZWxlY3RlZCBmaWxlL2ltYWdlIHZhbHVlIChtb2RlPSJmaWxlcGlja2VyIikgd2lsbCBiZSBkaXNwbGF5ZWQuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zbWFydHk8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCVR1cm4gc21hcnR5IHByb2Nlc3Npbmcgb2YgdmFsdWVzIG9uL29mZi48YnIgLz4KCQkJCUlmIHNldCB0byB0cnVlIGFueSBnaXZlbiB2YWx1ZSB3aWxsIGJlIHByb2Nlc3NlZCBieSB0aGUgc21hcnR5IGVuZ2luZS48YnIgLz4KCQkJCTxlbT48c3Ryb25nPk5vdGljZTogPC9zdHJvbmc+IENvbnNpZGVyIHRoYXQgeW91IGNhbm5vdCB1c2UgdGhlIGRlZmF1bHQgc21hcnR5IGRlbGltaXRlcnMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgdGVtcGxhdGUuIFRoaXMgd2lsbCBjYXVzZSBzbWFydHkgZXJyb3JzIGluIGZyb250ZW5kLjxiciAvPgoJCQkJU28geW91IG5lZWQgdG8gdXNlIDo6OiBhcyBkZWxpbWl0ZXIgaW5zdGVhZC48YnIgLz48L2VtPgoJCQkJRS5nLjogPGNvZGU+e2NvbnRlbnQgYmxvY2s9IkNhdGVnb3JpZXMiIGxhYmVsPSJTZWxlY3QgYSBjYXRlZ29yeSIgYmxvY2tfdHlwZT0iZHJvcGRvd24iIGl0ZW1zPSI6OjpnbG9iYWxfY29udGVudCBuYW1lPSdjYXRlZ29yeWxpc3QnOjo6IiBzbWFydHk9InRydWUifTwvY29kZT4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZXNjcmlwdGlvbjwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPkFsbG93cyB5b3UgdG8gYWRkIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24gdG8gdGhhdCBibG9jayBmb3IgeW91ciBlZGl0b3JzLjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+Y29sbGFwc2U8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCVNldCB0byB0cnVlL2ZhbHNlIHRvIGRpc3BsYXkgYmxvY2sgaW4gYmFja2VuZCBpbiBjb2xsYXBzZWQvZXhwYW5kZWQgbW9kZSBieSBkZWZhdWx0LjxiciAvPgoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiB3aWxsIGJlIGFsd2F5cyBmYWxzZSBpZiBub19jb2xsYXBzZT10cnVlIGlzIHVzZWQuPC9lbT48YnIgLz4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ub19jb2xsYXBzZTwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPgoJCQkJU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgZm9sZGluZyBvZiBibG9ja3MuPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHNldCB0byB0cnVlIHBhcmFtIGNvbGxhcHNlIGlzIGFsd2F5cyBmYWxzZS48L2VtPjxiciAvPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnJlcXVpcmVkPC90dD4gKHRydWUvZmFsc2UpCgkJPHVsPgoJCQk8bGk+CgkJCQlTZXQgdG8gdHJ1ZSBpZiB0aGlzIGJsb2NrIG1heSBub3QgYmUgZW1wdHkuPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAiY2hlY2tib3giOjwvc3Ryb25nPjwvcD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAodHJ1ZS9mYWxzZSkgCgkJPHVsPgoJCQk8bGk+CgkJCQljaGVja3MvdW5jaGVja3MgdGhlIGNoZWNrYm94IGJ5IGRlZmF1bHQgd2hlbiBhZGRpbmcgYSBwYWdlPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFVzZSAiMSIgZm9yIGNoZWNrZWQgYW5kICIwIiBmb3IgdW5jaGVja2VkIGJ5IGRlZmF1bHQ8YnIgLz48L2VtPgoJCQkJRS5nLiA8Y29kZT57Y29udGVudCBibG9ja190eXBlPSJjaGVja2JveCIgZGVmYXVsdD0xfTwvY29kZT4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbWV0ZXIgZiZ1dW1sO3IgQ29sb3JwaWNrZXI6PC9zdHJvbmc+IG5vIGFkZGl0aW9uYWwgcGFyYW1ldGVyczwvcD4KPHA+PHN0cm9uZz5QYXJhbWV0ZXIgZiZ1dW1sO3IgU2xpZGVyOjwvc3Ryb25nPiAoc2VlIGFsc28gZG9jdW1lbnRhdGlvbiBvZiB0aGUgYnVpbHQgaW4ganF1ZXJ5IHNsaWRlciBwbHVnaW4pPC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZnJvbTwvdHQ+IChpbnQpIAoJCTx1bD4KCQkJPGxpPgoJCQkJc3RhcnQgdmFsdWUKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnRvPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQllbmQgdmFsdWUKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXA8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCWFtb3VudCBvZiBzdGVwcyB0aGUgc2xpZGVyIGNoYW5nZXMgdGhlIHZhbHVlcwoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+cm91bmQ8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCWRpZ2l0cyBhZnRlciB0aGUgY29tbWEKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmhldGVyb2dlbmVpdHk8L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT4KCQkJCVRvRG8KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRpbWVuc2lvbjwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJdW5pdHMgYWZ0ZXIgdGhlIHZhbHVlCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5saW1pdHM8L3R0PiAodHJ1ZS9mYWxzZSkgCgkJPHVsPgoJCQk8bGk+CgkJCQlUb0RvCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zY2FsZTwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJVG9EbwoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2tpbjwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJdGhlIHNraW4gdG8gdXNlIHdoZW4gcmVuZGVyaW5nIHRoZSBzbGlkZXIKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmNhbGN1bGF0ZTwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJYSBqYXZhc2NyaXB0IGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgZGlzcGxheWVkIHZhbHVlcwoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+b25zdGF0ZWNoYW5nZTwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJYSBqYXZhc2NyaXB0IGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBwcm9jZXNzZWQgd2hlbiBjaGFuZ2luZyB0aGUgdmFsdWUKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmNhbGxiYWNrPC90dD4gKHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlhIGphdmFzY3JpcHQgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIHByb2Nlc3NlZCBhZnRlciBhIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICJkcm9wZG93biIvInNlbGVjdF9tdWx0aXBsZSI6PC9zdHJvbmc+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aXRlbXM8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPkl0ZW0gbGFiZWwocykgb2YgdGhlIGZpZWxkKHMpIChzZXBhcmF0ZWQgYnkgYSBkZWxpbWl0ZXIgLSBkZWZhdWx0IGlzIHwgKHBpcGUpKTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVzPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5WYWx1ZShzKSBvZiB0aGUgaXRlbXMgKHNlcGFyYXRlZCBieSBhIGRlbGltaXRlciAtIGRlZmF1bHQgaXMgfCAocGlwZSkpPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gaWYgdGhlcmUgYXJlIGxlc3MgdmFsdWVzIHRoYW4gaXRlbXMgdGhlIGl0ZW0gbGFiZWxzIHdpbGwgYmUgdXNlZCBhcyB2YWx1ZXMgKGFuZCB2aXNlIHZlcnNhKS48L2VtPjxiciAvPjxiciAvPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPgoJCQkJUHJlc2VsZWN0ZWQgdmFsdWUocykgKHNlcGFyYXRlZCBieSBhIGRlbGltaXRlciAtIGRlZmF1bHQgaXMgfCAocGlwZSkpPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFVzZSB0aGUgaXRlbSA8c3Ryb25nPnZhbHVlczwvc3Ryb25nPiBhcyBkZWZhdWx0LCBub3QgdGhlIGl0ZW0gbGFiZWxzLjwvZW0+PGJyIC8+PGJyIC8+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVsaW1pdGVyPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5BIHNpZ24gb3Igc3RyaW5nIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRldmlkZSB0aGUgaXRlbXMvdmFsdWVzIChkZWZhdWx0IGlzIHwgKHBpcGUpKTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2l6ZTwvdHQ+IChpbnRlZ2VyKQoJCTx1bD4KCQkJPGxpPkhlaWdodCBvZiBjb250ZW50IGJsb2NrIGluIGJhY2sgZW5kIGlmIDxjb2RlPmJsb2NrX3R5cGU9InNlbGVjdF9tdWx0aXBsZSI8L2NvZGU+IGlzIHNldC4gPGVtPihEZWZhdWx0IGlzIG51bWJlciBvZiBpdGVtcyk8L2VtPjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c29ydGFibGU8L3R0PiAodHJ1ZS9mYWxzZSkgLSBzZWxlY3RfbXVsdGlwbGUgb25seQoJCTx1bD4KCQkJPGxpPgoJCQkJSWYgc2V0IHRvIHRydWUgdGhlIGl0ZW1zIHdvbid0IGJlIHNob3duIGFzIGEgbXVsdGlwbGUgc2VsZWN0IGlucHV0IHdpdGggb3B0aW9ucyBidXQgYXMgYSBsaXN0IG9mIGNoZWNrYm94ZXMgdGhhdCBjYW4gYmUgcmVvcmRlcmVkLjxiciAvPkVhY2ggcm93IGNvbnRhaW5zIHRoZSBpdGVtIGxhYmVsIGFuZCBhIGNoZWNrYm94IHdpdGggdGhlIGl0ZW0gdmFsdWUuPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IG9ubHkgdGhlIG9yZGVyIG9mIHRoZSA8c3Ryb25nPnNlbGVjdGVkPC9zdHJvbmc+IGl0ZW1zIHdpbGwgYmUgc3RvcmVkIGFuZCBhbHdheXMgZGlzcGxheWVkIG9uIHRoZSB0b3Agb2YgdGhlIGxpc3Qgd2hlbiByZWxvYWRpbmcgdGhlIGVkaXQgcGFnZS48YnIgLz4KCQkJCVVuc2VsZWN0ZWQgaXRlbXMgd2lsbCBhcHBlbmRlZCBpbiB0aGF0IG9yZGVyIHRoZXkgYXJlIGRlZmluZWQgaW4gdGhlIHRlbXBsYXRlPC9lbT4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICJkYXRlIjo8L3N0cm9uZz48L3A+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGVwX2hvdXJzPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQlzdGVwcyBvZiBob3VycyBpbiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDEpCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c3RhcnRfaG91cjwvdHQ+IChpbnQpIAoJCTx1bD4KCQkJPGxpPgoJCQkJdGhlIHN0YXJ0IGhvdXIgb2YgdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAwKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVuZF9ob3VyPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQl0aGUgZW5kIGhvdXIgb2YgdGhlIGNsb2NrIGRyb3Bkb3duIChkZWZhdWx0IGlzIDEyIG9yIDIzKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNob3cyNGg8L3R0PiAodHJ1ZS9mYWxzZSkgCgkJPHVsPgoJCQk8bGk+CgkJCQlzZXQgdG8gZmFsc2UgaWYgQU0vUE0gaXMgdXNlZC4gKGRlZmF1bHQgaXMgdHJ1ZSkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGVwX21pbnV0ZXM8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCXN0ZXBzIG9mIG1pbnV0ZXMgaW4gdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAxMCkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGFydF9taW51dGU8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCXRoZSBzdGFydCBtaW51dGUgb2YgdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAwKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVuZF9taW51dGU8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCXRoZSBlbmQgbWludXRlIG9mIHRoZSBjbG9jayBkcm9wZG93biAoZGVmYXVsdCBpcyA1OSkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zaG93X2Nsb2NrPC90dD4gKHRydWUvZmFsc2UpIAoJCTx1bD4KCQkJPGxpPgoJCQkJc2V0IHRvIGZhbHNlIGlmIG5vIHRpbWUgZHJvcGRvd24gc2hvdWxkIGJlIGRpc3BsYXllZCAoZGVmYXVsdCBpcyB0cnVlKTxiciAvPgoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBJZiBzZXQgdG8gZmFsc2UgMDA6MDAgbydjbG9jayB3aWxsIGJlIHVzZWQ8L2VtPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRhdGVfZm9ybWF0PC90dD4gKHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlUaGUgc3RyZnRpbWUgZGF0ZSBmb3JtYXQgdG8gc2hvdyBpbiBmcm9udGVuZC4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICJtdWx0aV9pbnB1dCI6PC9zdHJvbmc+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aW5wdXRzPC90dD4gKGNzdiBvZiBpbnB1dCBpZHMgeW91IGNyZWF0ZWQgaW4gdGhlIGJhY2tlbmQpIAoJCTxiciAvPjxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD52YWx1ZV9kZWxpbWl0ZXI8L3R0PiAoYW55IHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlUaGlzIGRlZmluZXMgYSBzdHJpbmcgdGhhdCBkZXZpZGVzIHRoZSB2YWx1ZXMgb2YgdGhlIGlucHV0cyBvZiBvbmUgbXVsdGlfaW5wdXQgd2hlbiBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLjxiciAvPgoJCQkJRGVmYXVsdCBpcyAiJmx0OyEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxsaW1pdGVyIC0tJmd0OyIKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pbnB1dF9kZWxpbWl0ZXI8L3R0PiAoYW55IHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlUaGlzIGRlZmluZXMgYSBzdHJpbmcgdGhhdCBkZXZpZGVzIHRoZSBtdWx0aV9pbnB1dHMgeW91IGRlZmluZWQgZm9yIHRoaXMgY29udGVudCBibG9jayB3aGVuIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuPGJyIC8+CgkJCQlEZWZhdWx0IGlzICImbHQ7IS0tIG11bHRpX2lucHV0X2RlbGxpbWl0ZXIgLS0mZ3Q7IgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+V2hhdCBpcyBhIG11bHRpX2lucHV0IGZvcj88L3N0cm9uZz48L3A+CgkJPHA+QSBtdWx0aV9pbnB1dCBibG9jayBpcyBhIGNvbnRlbnQgYmxvY2sgdGhhdCBjb25zaXN0cyBvZiBkaWZmZXJlbnQgaW5wdXQgZmllbGRzLiA8YnIgLz4KCQlZb3UgY2FuIGRlZmluZSB0aGVtIGluIHRoZSBtb2R1bGUgYWRtaW5pc3RyYXRpb24gdXNpbmcgdGhlIHNhbWUgc3ludGF4IHlvdSB1c2UgaW4gYSB0ZW1wbGF0ZSB3aGVuIGRlZmluaW5nIGEgY29udGVudCBibG9jay48YnIgLz4KCQlNdWx0aSBpbnB1dHMgY2FuIGJlIHVzZWQgaWYgeW91IHdhbnQgdG8gc3RvcmUgZGlmZmVyZW50IHZhbHVlcyBpbiBvbmUgY29udGVudCBibG9jayBhbmQgcHJvdmlkZSBkaWZmZXJlbnQgaW5wdXQgdHlwZXMgZm9yIGVhY2ggdmFsdWVzLjxiciAvPgoJCVRoaXMgY2FuIGJlIHVzZWZ1bGwgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEgZHJvcGRvd24gdG8gc2VsZWN0IGEgbW9kdWxlIHRvIGJlIHNob3duIGluIGZyb250ZW5kIGFuZCB0ZXh0IGlucHV0IHRvIGRlZmluZSB0aGUgbW9kdWxlIHBhcmFtZXRlcnMuPGJyIC8+CgkJRXhhbXBsZSBmb3IgYSBtdWx0aV9pbnB1dCBpbiBwYWdlIHRlbXBsYXRlOjwvcD4KCQk8cHJlPgoJCTxjb2RlPgoJCXtjb250ZW50IGJsb2NrPSJtb2R1bGUiIGxhYmVsPSJQYWdlIG1vZHVsZXMiIGJsb2NrX3R5cGU9Im11bHRpX2lucHV0IiBpbnB1dHM9Im1vZHVsZSxtb2R1bGUsbW9kdWxlLG1vZHVsZSJ9CgkJPC9jb2RlPgoJCTwvcHJlPgoJCTxwPkV4YW1wbGUgZm9yIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBtdWx0aV9pbnB1dCBuYW1lZCAibW9kdWxlIjo8L3A+CgkJPHByZT4KCQk8Y29kZT4KCQl7Y29udGVudCBibG9jaz0ibW9kdWxlIHNlbGVjdGlvbiIgYmxvY2tfdHlwZT0iZHJvcGRvd24iIGl0ZW1zPSJ8TmV3c3xHYWxsZXJ5fE1lbnUifQoJCXtjb250ZW50IGJsb2NrPSJtb2R1bGUgcGFyYW1zIiBibG9ja190eXBlPSJ0ZXh0IiBvbmVsaW5lPXRydWV9CgkJPC9jb2RlPgoJCTwvcHJlPgoJCTxwPldoYXQgaGFwcGVucyBpZiB5b3UgZWRpdCBhIHBhZ2U/PC9wPgoJCTxwPkl0IHdpbGwgc2hvdyB5b3UgYSBmaWVsZHNldCB3aXRoIGxlZ2VuZCAiUGFnZSBtb2R1bGVzIi4gPGJyIC8+CgkJSW5zaWRlIHRoaXMgZmllbGRzZXQgaXQgc2hvd3MgdGhlIG11bHRpX2lucHV0IG5hbWVkICJtb2R1bGUiIGZvdXIgdGltZXMuPGJyIC8+CgkJVGhhdCBtZWFucyB5b3Ugc2VlIGZvdXIgbGluZXMgd2l0aCB0d28gaW5wdXQgZmllbGRzLiBBIGRyb3Bkb3duIGFuZCBhIHRleHQgaW5wdXQuPC9wPgoJCTxwPldoYXQgaGFwcGVucyBpZiB5b3Ugc2F2ZSBhIHBhZ2U/PC9wPgoJCTxwPlRoZSBtb2R1bGUgc3RvcmVzIHRoZSB2YWx1ZXMgYXMgb25lIHNpbmdsZSBjb250ZW50IHByb3BlcnR5IChha2EgY29udGVudGJsb2NrKSBhbmQgc2VwYXJhdGVzIHRoZSBpbnB1dHMgYnkgYSBnaXZlbiBkZWxpbWl0ZXIuPGJyIC8+CgkJTGV0J3MgYXNzdW1lIHlvdSBzZWxlY3QgdGhlIE5ld3MgbW9kdWxlIGZvdXIgdGltZXMgd2l0aCBkaWZmZXJlbnQgbW9kdWxlIHBhcmFtcyBsaWtlIGNhdGVnb3J5PSIxIiwgY2F0ZWdvcnk9IjIiLCBjYXRlZ29yeT0iMyIsIGNhdGVnb3J5PSI0Ii48YnIgLz4KCQlJbiB0aGUgZGF0YWJhc2UgaXQgc3RvcmVzIHRoaXMgc3RyaW5nOjwvcD4KCQk8cHJlPgoJCTxjb2RlPgoJCU5ld3MmbHQ7IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGltaXRlciAtLSZndDtjYXRlZ29yeT0iMSImbHQ7IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLSZndDs8YnIgLz4KCQlOZXdzJmx0OyEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0mZ3Q7Y2F0ZWdvcnk9IjIiJmx0OyEtLSBtdWx0aV9pbnB1dF9kZWxpbWl0ZXIgLS0mZ3Q7PGJyIC8+CgkJTmV3cyZsdDshLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tJmd0O2NhdGVnb3J5PSIzIiZsdDshLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tJmd0OzxiciAvPgoJCU5ld3MmbHQ7IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGltaXRlciAtLSZndDtjYXRlZ29yeT0iNCIKCQk8L2NvZGU+CgkJPC9wcmU+CgkJPHA+SW4geW91ciBwYWdlIHRlbXBsYXRlIHlvdSBjYW4gZXhwbG9kZSB0aGUgY29udGVudCBieSB0aGUgZGVsaW1pdGVycyBhbmQgY2FsbCB0aGUgc2VsZWN0ZWQgbW9kdWxlcy48L3A+CgkJPHA+RnVsbCBFeGFtcGxlOjwvcD4KCQk8cHJlPgoJCTxjb2RlPgoJCXsqIGRlZmluZSB0aGUgY29udGVudCBibG9jayAqfQoJCXtjb250ZW50IGJsb2NrPSJteV9tb2R1bGVzIiBibG9ja190eXBlPSJtdWx0aV9pbnB1dCIgaW5wdXRzPSJNb2R1bGUsTW9kdWxlLE1vZHVsZSxNb2R1bGUiIGFzc2lnbj0ibW9kdWxlcyJ9CgkJCgkJeyogZXhwbG9kZSBibG9jayBjb250ZW50IGluIGFuIGFycmF5IHRvIGdldCB0aGUgaW5wdXQgZ3JvdXBzICp9CgkJe2Fzc2lnbiB2YXI9bW9kdWxlcyB2YWx1ZT0iJmx0OyEtLSBtdWx0aV9pbnB1dF9kZWxpbWl0ZXIgLS0mZ3Q7InxleHBsb2RlOiRtb2R1bGVzfQoJCQoJCXsqIGxvb3AgdGhyb3VnaCB0aGUgc2VsZWN0ZWQgbW9kdWxlcyAqfQoJCXtmb3JlYWNoIGZyb209JG1vZHVsZXMgaXRlbT0ibW9kdWxlIn0KCQkJe2lmICRtb2R1bGUgIT0gJyd9CgkJCQoJCQkJeyogZXhwbG9kZSB0aGUgaW5wdXQgdmFsdWVzIGluIG1vZHVsbmFtZSBhbmQgbW9kdWxlIHBhcmFtZXRlcnMgKn0KCQkJCXthc3NpZ24gdmFyPW1vZHVsZV9pdGVtcyB2YWx1ZT0iJmx0OyEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0mZ3Q7InxleHBsb2RlOiRtb2R1bGV9CgkJCQkKCQkJCXtpZiAkbW9kdWxlX2l0ZW1zWzBdICE9ICcnfQoJCQkJCgkJCQkJeyogY2FsbCB0aGUgbW9kdWxlICp9CgkJCQkJe2lmIGlzc2V0KCRtb2R1bGVfaXRlbXNbMV0pfQoJCQkJCQl7ZXZhbCB2YXI9JHNtYXJ0eS5sZGVsaW18Y2F0OidjbXNfbW9kdWxlIG1vZHVsZT0iJ3xjYXQ6JG1vZHVsZV9pdGVtc1swXXxjYXQ6JyIgJ3xjYXQ6JG1vZHVsZV9pdGVtc1sxXXxjYXQ6JHNtYXJ0eS5yZGVsaW19CgkJCQkJe2Vsc2V9CgkJCQkJCXtldmFsIHZhcj0kc21hcnR5LmxkZWxpbXxjYXQ6J2Ntc19tb2R1bGUgbW9kdWxlPSInfGNhdDokbW9kdWxlX2l0ZW1zWzBdfGNhdDonIid8Y2F0OiRzbWFydHkucmRlbGltfQoJCQkJCXsvaWZ9CgkJCQkJCgkJCQl7L2lmfQoJCQkJCgkJCXsvaWZ9CgkJCgkJey9mb3JlYWNofQoJCTwvY29kZT4KCQk8L3ByZT4KCTwvbGk+CjwvdWw+Cgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgoJPGxpPlRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLyI+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jb250ZW50Mi88L2E+PC9saT4KCTxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIENNUyBNYWRlIFNpbXBsZSBGb3J1bXM6PGJyIC8+Cgk8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5kZSI+aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUuZGU8L2E+PGJyIC8+Cgk8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPmh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZzwvYT48L2xpPgo8L3VsPgo8YnIgLz4KPHA+RmVlbCBmcmVlIHJlcG9ydCBhbnkga2luZCBvZiBmZWVkYmFjay48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTAtMjAxMSwgR2VvcmcgQnVzY2ggKE5hTikuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KPHA+CglBcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy48YnIgLz4KCVRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLDxiciAvPgoJYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Y8YnIgLz4KCU1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS48YnIgLz4KCVNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48YnIgLz4KCVlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPGJyIC8+CglhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZTxiciAvPgoJRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8YnIgLz4KCU9yIHJlYWQgaXQgb25saW5lOiA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPmh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTDwvYT48YnIgLz4KCVBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLgo8L3A+CjxiciAvPgo8aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48L3VsPg==]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBHZW9yZyBCdXNjaCAoTmFOKTxiciAvPjxiciAvPlZlcnNpb246IDAuODxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjxkaXYgc3R5bGU9ImZsb2F0OnJpZ2h0Ij48Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3IiIG1ldGhvZD0icG9zdCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNtZCIgdmFsdWU9Il9zLXhjbGljayIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaG9zdGVkX2J1dHRvbl9pZCIgdmFsdWU9IkZBMkQzRlBMU1RBS0oiIC8+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX0dCL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZS4iIC8+CjxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2RlX0RFL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSIgLz4KPC9mb3JtPjwvZGl2PjxiciAvPgo8cD48c3Ryb25nPk1vZHVsZSByZWxlYXNlczwvc3Ryb25nPi4uLjwvcD4KPHVsPgoJPGxpPjxwPjxzdHJvbmc+MC44IC8gMC42LjUgKE1heSAyMDExKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIFsjNjI2NV0gKENhbGwtdGltZSBwYXNzLWJ5LXJlZmVyZW5jZSB3YXJuaW5ncyk8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBtaXNzZWQgcGFyYW0gbm9fY29sbGFwc2U8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5GZWF0dXJlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gaGlkZSBtZW51IGVudHJ5IGlmIG5vIGFjY2VzcyB0byB2aWV3IHRoZSBwYWdlPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gaW5oZXJpdGFuY2Ugb2YgcmVkaXJlY3QgcGFyYW1zLCBleHBpcmUgZGF0ZTwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGV4cGlyZSBkYXRlPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgYmxvY2tfdHlwZXMgc2xpZGVyL2NvbG9ycGlja2VyICh0aGFua3MgdG8gbmljbWFyZSk8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBhIHdhcm5pbmcgd2hlbiB1bmluc3RhbGxpbmcgdGhlIG1vZHVsZTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNi40IChNYXIgMjAxMSk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBbIzYyNDFdIChJc3N1ZSB3aXRoIHBhcmFtIGRlZmF1bHQpPC9wPjwvbGk+CgkJCQkJPGxpPjxwPmZhdGFsIGVycm9yIGluIEFkdmFuY2VkQ29udGVudC5tb2R1bGUucGhwPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPjxwPjxzdHJvbmc+MC43LjIgLyAwLjYuMyAoTWFyIDIwMTEpOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gWyM1NzM0XSBQYXJhbWV0ZXIgYmxvY2tfZ3JvdXAgaXMgbm90IGtub3duIGJ5IG1vZHVsZSBBZHZhbmNlZENvbnRlbnQ8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBbIzYwMTRdIGhlYWRlciBwcm9ibGVtIHdpdGggbXVsdGktaW5wdXQ8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBbIzYwMzhdIGNvbnRlbnRfaW1hZ2UgcmVzcGVjdGl2ZWx5IGJsb2NrX3R5cGU9ImltYWdlIiBkb2Vzbid0IHdvcms8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBbIzYwMzldIHRlbXBsYXRlIGNhbid0IGJlIHN3aXRjaGVkPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gWyM2MDYxXSBpc3N1ZSB3aXRoIHRoZSByZWRpcmVjdCBmb3IgZmV1IG5vbiBtYXRjaDwvcD48L2xpPgoJCQkJCTxsaT48cD4tIFsjNjA5NV0gUGFyYW1ldGVyIHNvcnRhYmxlIGlzIG5vdCBrbm93biA8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjcuMSAoTm92IDIwMTApIC8gMC42LjMgKE1hciAyMDExKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIGZpeGVkIGJ1ZyBpdGVtICM1NjUxIChyZWRpcmVjdCBpZiBmcm9udGVuZCB1c2VyIGhhcyBubyBhY2NlcyB0byB0aGF0IHBhZ2UgZGlkIG5vdCB3b3JrIHByb3Blcmx5KTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWNjZXNzPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmV1X2FjdGlvbjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGNvbGxhcHNlPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gcmVxdWlyZWQ8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjcgKE5vdiAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIGNvbXBhdGliaWxpdHkgYnVnZml4ZXMgZm9yIENNU21zIDEuOSsgKG5lZWRzIENNU21zIDEuOSBtaW5pbXVtIG5vdyk8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5GZWF0dXJlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gbm9fY29sbGFwc2U8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjYuMiAoTm92IDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gbWlub3IgYnVnZml4IChzaG93ZWQgdGFicyBvZiBwcmV2aW91cyB0ZW1wbGF0ZSB3aGVuIHRlbXBsYXRlIHdhcyBjaGFuZ2VkKTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNi4xIChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBzZXZlcmFsIGJ1Z2ZpeGVzPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gY29tcGF0aWJpbGl0eSBidWdmaXhlcyBmb3IgQ01TbXMgMS45PC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIGFkZGVkIGJsb2NrX3R5cGUgbXVsdGlfaW5wdXQ8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjYgKE9jdCAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIHNldmVyYWwgYnVnZml4ZXM8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5GZWF0dXJlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gYmxvY2tfZ3JvdXA8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5NaXNjOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBSZW1vdmVkIGZpbGUgcGlja2VyIChhbmQgYXNzb2NpYXRlZCBibG9ja190eXBlcyBpbWFnZS9maWxlKSAtIHVzZSBHQkZpbGVQaWNrZXIgaW5zdGVhZC48L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjUgKFNlcHQgMjAxMCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUyOTIgKG1lbW9yeSBpc3N1ZSk8L3A+PC9saT4KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUyNTQgKGRpc2FibGUgd3lzaXd5ZyBub3Qgd29ya2luZyk8L3A+PC9saT4KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUzMTAgKHVybG9ubHkgbm90IHdvcmtpbmcpPC9wPjwvbGk+CgkJCQkJPGxpPjxwPmZpeGVkIGJ1ZyBpdGVtICM1MzExIChpbWFnZSBwYXRocyBub3Qgc3RvcmVkICdjb3JyZWN0bHknKTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+YWRkZWQgZmVhdHVyZSByZXF1ZXN0ICM1MjYxIChBZGQgc29ydCB0byBpbWFnZSB0eXBlIC0gbm90aWNlIHRoZSBjaGFuZ2Ugb2YgcGFyYW0gZmlsdGVyKTwvcD48L2xpPgoJCQkJCTxsaT48cD5hZGRlZCBwYXJhbXMgZXhjbHVkZV9wcmVmaXgsIGluY2x1ZGVfcHJlZml4LCBleGNsdWRlX3N1Zml4LCBpbmNsdWRlX3N1Zml4PC9wPjwvbGk+CgkJCQkJPGxpPjxwPmFkZGVkIGZlYXR1cmUgcmVxdWVzdCAjNTI1MyAoVGV4dCBpbnB1dCB0byBkZWZpbmUgYWRkIHBhcmFtcyB0byByZWRpcmVjdCBmdW5jdGlvbik8L3A+PC9saT4KCQkJCQk8bGk+PHA+YWRkZWQgZmVhdHVyZSByZXF1ZXN0ICM1MjQwIChEZWZhdWx0IHZhbHVlcyBvZiBBZHZhbmNlZENvbnRlbnQgcGFnZSBvcHRpb25zKTwvcD48L2xpPgoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNDEgKHB1dCBGZXVBY2Nlc3MgaW4gQmxvY2t0YWIpPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCQk8bGk+PHA+TWlzYzo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gQWR2YW5jZWRDb250ZW50IG9wdGlvbnMgYXJlIHNob3duIGluIHNlcGFyYXRlIHRhYjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIEFkZGVkIG5ldyBwZXJtaXNzaW9uIHRvIG1hbmFnZSB0aGUgQWR2YW5jZWRDb250ZW50IG9wdGlvbnMgdGFiPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCBwYXJhbSBmaWx0ZXIgKHVzZSBuZXcgcGFyYW1zIGluc3RlYWQpPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gcGF0aCB0byBmaWxlcyBhcmUgc3RvcmVkIHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIHBhcmFtIGRpciBvZiBibG9jayB0eXBlIGZpbGUvaW1hZ2UgbmVlZHMgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyIG9ubHkgKHRoZXJlIGlzIG5vIGltYWdlIHVwbG9hZHMgZGlyIHVzZWQgYW55bW9yZSk8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjQuMSAoQXVndXN0IDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gIzUxNTE6IGZpeGVkIHN0eWxlc2hlZXQgaXNzdWUgd2l0aCBleHBhbmQvY29sbGFwc2UgYnV0dG9ucyBvZiBjb250ZW50IGJsb2NrcyBpbiBJRS9TYWZhcmkuPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gIzUxNjI6IFBIUCB3YXJuaW5ncyBpZiBiYWNrZW5kIHVzZXJzIHdpdGhvdXQgcGVybWlzc2lvbiAiTWFuYWdlIEFsbCBBZHZhbmNlZENvbnRlbnQgQmxvY2tzIiBvcGVuIGFuIGFkdmFuY2VkIGNvbnRlbnQgcGFnZSBhbmQgbXVsdGlwbGUgY29udGVudCBibG9ja3Mgb2Ygc2FtZSBuYW1lIHdlcmUgdXNlZCBpbiB0ZW1wbGF0ZS48L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZXh0cmEgZmllbGRzIGNvdWxkIG5vdCBiZSB1cGRhdGVkLjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBmZXUgYWNjZXNzIGRpZCBub3Qgd29yay48L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5GZWF0dXJlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gImRlbGV0ZSIgdG8gbGV0IHVzZXJzIGRlbGV0ZSBmaWxlcyBldmVuIGlmIG5vIHBlcm1pc3Npb24gIk1vZGlmeSBGaWxlcyI8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAiY3JlYXRlX2RpcnMiIHRvIGxldCB1c2VycyBjcmVhdGVfZGlycyBldmVuIGlmIG5vIHBlcm1pc3Npb24gIk1vZGlmeSBGaWxlcyI8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBuZXcgYmxvY2t0eXBlICJub3RlIiB0byBjcmVhdGUgc29tZSBzaW5nbGUgbm90ZXMgZm9yIHlvdXIgZWRpdG9yczwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPk1pc2M6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIHJlbW92ZWQgZGVwZW5kZW5jeSBvZiBGaWxlTWFuYWdlcjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGJsb2NrIG9mIHR5cGUgZmlsZSBvciBpbWFnZSBzdG9yZXMgcmVsYXRpdmUgdXJsIG5vdzwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGJsb2NrIHR5cGUgaW1hZ2Ugc2hvd3MgdGh1bWJuYWlsIGluIGJhY2tlbmQgcHJldmlldyBpbnN0ZWFkIG9mIGZ1bGwgaW1hZ2U8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjQgKEp1bHkgMjAxMCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPkltcG9ydGFudCBub3RpY2U6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIGNoYW5nZWQgcGFyYW0gInR5cGUiIHRvICJibG9ja190eXBlIiBzaW5jZSBpdCBpbnRlcmZlcmVzIHdpdGgge2NvbnRlbnRfbW9kdWxlfSB0YWc8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gIzUxMDE6IHBhZ2VfdGFiICJvcHRpb25zIiB3YXMgc2hvd24gdG8gdXNlcnMgd2l0aCBubyBwZXJtaXNzaW9uIHRvIGVkaXQgcGFnZSBvcHRpb25zIGlmIGEgY29udGVudCBibG9jayB3YXMgYXNzaWduZWQgdG8gdGhhdCB0YWIuPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gIzUwOTc6IGxpbmsgdG8gbWlzc2luZyBjc3MgcmVtb3ZlZDwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGZpeGVkIG1pbWUtdHlwZSBpc3N1ZSAoYWRkZWQgcHJlZmVyZW5jZSB0byB0b2dnbGUgbWltZS10eXBlIHVzYWdlIG9uL29mZik8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBmaXhlZCBwYXRoIGlzc3VlIHdoZXJlIHRodW1ibmFpbHMgd2VyZSBub3Qgc2hvd248L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBmaXhlZCBjb21wYXRpYmlsaXR5IHdpdGggQ01TbXMgMS44PC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gb3RoZXIgbWlub3IgYnVnZml4ZXM8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5GZWF0dXJlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gYWRkZWQgTUxFIHN1cHBvcnQ8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAic2hvd19jbG9jayIgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIHRpbWUgZHJvcGRvd24gb2YgYmxvY2t0eXBlcyAiZGF0ZSIgaW4gYmFja2VuZDwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICJkYXRlX2Zvcm1hdCIgdG8gZm9ybWF0IHRpbWVzdGFtcCBvZiBibG9ja3R5cGVzICJkYXRlIiBpbiBmcm9udGVuZDwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICJkZXNjcmlwdGlvbiI8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBidWxrIGZ1bmN0aW9uIHRvIHNldCBhbGwgcGFnZXMgdG8gQWR2YW5jZWRDb250ZW50PC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgY29tcGF0aWJpbGl0eSB3aXRoIHtjb250ZW50X21vZHVsZX0gdGFnPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPjxwPjxzdHJvbmc+MC4zLjQgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSAjNTA0NTogV2hlbiBzd2l0Y2hpbmcgZnJvbSBDb250ZW50IC0+IEFkdmFuY2VkIENvbnRlbnQgbG90cyBvZiBQSFAgZXJyb3JzPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gIzUwNTY6IHBhZ2VfdGFicyBub3Qgd29ya2luZyBmb3IgdXNlcnMgd2l0aG91dCBwZXJtaXNzaW9uICJNYW5hZ2UgQWxsIENvbnRlbnQiPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gIzUwNzM6IGluY29ycmVjdCBkaXNwbGF5IG9mIGZpbGVzIHdoZW4gb3BlbmluZyBmaWxlcGlja2VyPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gZml4ZWQgbWlub3IgYnVnIHdoZXJlIHRoZSBvcHRpb24gImFsbG93X25vbmUiIG9mIGNvbnRlbnQgYmxvY2tzIG9mIHR5cGUgaW1hZ2UvZmlsZSB3YXMgbm90IHNob3duIHdoZW4gdGVtcGxhdGUgaGFzIGJlZW4gZWRpdGVkPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIGFkZGVkIGZpbGVtYW5hZ2VtZW50IGFuZCB1cGxvYWQgZnVuY3Rpb25zIHRvIGNvbnRlbnQgYmxvY2tzIG9mIHR5cGUgaW1hZ2UvZmlsZTwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIGJyZWFkY3VtYnMgdG8gZmlsZXBpY2tlcjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkbWlucyBtYXkgYnJvd3NlIHRoZSBlbnRpcmUgZGlyIHRyZWUgaW4gZmlsZXBpY2tlciBmaWxlIGJyb3dzZXIgcmVnYXJkbGVzcyBvZiB0ZW1wbGF0ZSBwYXJhbXM8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBtaW1lIHR5cGUgY2hlY2tpbmcgdG8gZ2V0IGZpbGUgdHlwZTwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIHJhd3VybGVuY29kZSBpbiBzcmMgYXR0cmlicyB0byBkaXNwbGF5IGltYWdlcyB3aXRoIHdlaXJkIGZpbGVuYW1lcy48L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5taXNjZWxsYW5lb3VzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSByZW1vdmVkIE9PUCBzdHVmZiAocHJpdmF0ZS9wdWJsaWMvcHJvdGVjdGVkKSB0byBnYWluIG1vcmUgY29tcGF0aWJpbGl0eSB3aXRoIFBIUDQ8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBjaGFuZ2VkIGFqYXggZnVuY3Rpb25zIHRvIHJldHVybiB4bWwgdmFsdWVzPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCB1c2FnZSBvZiBJbWFnZU1hbmFnZXIgb25jZSBhbmQgZm9yIGFsbC4gKGNhdXNlZCBvbmx5IHRyb3VibGUpPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPjxwPjxzdHJvbmc+MC4zLjMgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPgoJPHVsPgoJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCTx1bD4KCQkJCTxsaT48cD4tIGFsaWFzIHdhcyBub3QgYWx3YXlzIGNvbnZlcnRlZCBwcm9wZXJseTwvcD48L2xpPgoJCQkJPGxpPjxwPi0gdW5zdWJtaXR0ZWQgY29udGVudCBnb3QgbG9zdCBpZiBzd2l0Y2hpbmcgZnJvbSBDb250ZW50IHRvIEFkdmFuY2VkQ29udGVudDwvcD48L2xpPgoJCQk8L3VsPgoJCTwvbGk+CgkJPGxpPjxwPkZlYXR1cmVzOjwvcD4KCQkJPHVsPgoJCQkJPGxpPjxwPi0gYWRkZWQgc3RhcnQvZW5kIGRhdGU8L3A+PC9saT4KCQkJCTxsaT48cD4tIHJlbW92ZWQgdGltZXBpY2tlcjsgcmVwbGFjZWQgYnkgYSBzaW1wbGUgZHJvcGRvd248L3A+PC9saT4KCQkJCTxsaT48cD4tIGNvbXBhdGliaWxpdHkgd2l0aCB7Y29udGVudF9pbWFnZX08L3A+PC9saT4KCQkJPC91bD4KCQk8L2xpPgoJPC91bD4KCTxsaT48cD48c3Ryb25nPjAuMy4yIChKdW5lIDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBjaGFuZ2luZyBiYWNrIHRvIGRlZmF1bHQgY29udGVudCB0eXBlIG9yIGNoYW5naW5nIHRlbXBsYXRlIGNhdXNlZCBmYXRhbCBlcnJvcnM8L3A+PC9saT4KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBzbWFydHkgcHJvY2Vzc2luZyB3aGVuIHNhdmluZyBhIHBhZ2U8L3A+PC9saT4KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBwcmV2aWV3IHRhYjwvcD48L2xpPgoJCQk8bGk+PHA+LSByZS1hZGRlZCBleHBhbmQvY29sbGFwc2UgYnV0dG9uIHRvIHRvZ2dsZSBjb250ZW50IGJsb2NrcyBpbiBiYWNrZW5kPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtcyBlZGl0b3JfZ3JvdXBzL2VkaXRvcl91c2VycyB0byBzcGVjaWZ5IGNlcnRhaW4gdXNlcnMvZ3JvdXBzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZWRpdCBjZXJ0YWluIGJsb2NrczwvcD48L2xpPgoJCQk8bGk+PHA+LSByZW1vdmVkIHBhcmFtcyBzZWxlY3RlZC9jaGVja2VkOyB1c2UgcGFyYW0gZGVmYXVsdCBpbnN0ZWFkPC9wPjwvbGk+CgkJCTxsaT48cD4tIGJsb2NrIGlkcyB3aWxsIGJlIGNvbnZlcnRlZCBmcm9tIGJsb2NrIG5hbWUgdXNpbmcgY29yZSBmdW5jdGlvbiBtdW5nZV9zdHJpbmdfdG9fdXJsICh0byByZW1vdmUgc3BlY2lhbCBjaGFycywgd2hpdGVzcGFjZXMsIHVtbGF1dHMgZXRjLik8L3A+PC9saT4KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIG9mIGJsb2NrdHlwZSBkcm9wZG93bi9zZWxlY3RfbXVsdGlwbGUgd2hlcmUgZmlyc3QgaXRlbSBoYWQgYW4gZW1wdHkgbGFiZWwgaWYgb25seSB0aGUgcGFyYW0gInZhbHVlcyIgaXMgdXNlZDwvcD48L2xpPgoJCQk8bGk+PHA+LSBhZGRlZCBzb21lIHRlbXBsYXRlIHZhcnMgb2YgdGhlIGZyb250ZW5kIHRvIGJlIGFsc28gYWNjZXNzaWJsZSBpbiBiYWNrZW5kIChlLmcuOiBcJHBhZ2VfYWxpYXMpPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICJhbGxvd19ub25lIiB0byBhbGwgY29udGVudCBibG9jayB0eXBlcyB0byBzcGVjaWZ5IGlmIHRoZSBwcmVkZWZpbmVkIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSB1c2VkIGlmIG5vIHZhbHVlIGlzIGVudGVyZWQ8L3A+PC9saT4KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGVtcHR5IHZhbHVlcyB3ZXJlIG5ldmVyIGJlIHN0b3JlZDwvcD48L2xpPgoJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZGVmYXVsdCB2YWx1ZSBpbiBmcm9udGVuZCB3YXMgaWdub3JlZCBpZiB0aGUgImFsbG93X25vbmUiIHBhcmFtIHdhcyBjaGFuZ2VkIGFmdGVyIGFuIGVtcHR5IHZhbHVlIGhhcyBiZWVuIHN0b3JlZDwvcD48L2xpPgoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAic29ydGFibGVfaXRlbXMiIHRvIGNyZWF0ZSBhIHNvcnRhYmxlIG11bHRpcGxlIHNlbGVjdCBsaXN0IChzZWxlY3QgbGlzdCB3aWxsIHJlc3VsdCBpbiBhIHRhYmxlIHdpdGggY2hlY2tib3hlczsgb25seSBvcmRlciBvZiBzZWxlY3RlZCBpdGVtcyB3aWxsIGJlIHN0b3JlZCBhbmQgc2hvd2VkIGF0IHRoZSB0b3Agb2YgdGhlIGxpc3Q7IHVuc2VsZWN0ZWQgaXRlbXMgd2lsbCBiZSBhcHBlbmRlZCBpbiB0aGF0IG9yZGVyIHRoZXkgYXJlIHBsYWNlZCBpbiB0aGUgdGVtcGxhdGUpPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjMuMSAoTWF5IDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD4tIHJlbW92ZWQgdGhlIHJlb3JkZXJpbmcgc3R1ZmYgZm9yIG5vdyAoY2F1c2VzIHRyb3VibGUgYXQgdGhpcyB0aW1lKTwvcD48L2xpPgoJCQk8bGk+PHA+LSByZW1vdmVkIHRoZSBkYiBzdHVmZiAocGFyYW1zIG9mIGNvbnRlbnQgYmxvY2tzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGVtcGxhdGUgd29uJ3QgYmUgc2F2ZWQgaW4gbW9kdWxlIGRiIHRhYmxlIGFueW1vcmUgLT4gaG9wZWZ1bGx5IHNwZWVkIHVwIGxvYWRpbmcgdGltZSk8L3A+PC9saT4KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBkdXBsaWNhdGUgY29udGVudCBibG9ja3M8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT4KCQk8cD48c3Ryb25nPkFkdmFuY2VkQ29udGVudCAwLjMgKE1heSAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+LSByZXdyaXRlIGNvZGU8L3A+PC9saT4KCQkJPGxpPjxwPi0gYnVnZml4ZXM8L3A+PC9saT4KCQkJPGxpPjxwPi0gcmVuYW1lZCB0byBBZHZhbmNlZENvbnRlbnQ8L3A+PC9saT4KCQkJPGxpPjxwPi0gdXNpbmcgc2VwYXJhdGUgbW9kdWxlIHRlbXBsYXRlIG5vdyB0byBkc3BsYXkgY29udGVudCBibG9ja3M8L3A+PC9saT4KCQkJPGxpPjxwPi0gcmVtb3ZlZCBwYWdlIGFsaWFzIGluaGVyaXRhbmNlPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+CjwvdWw+Cjx1bD4KCTxsaT48cD48c3Ryb25nPlhDb250ZW50IEJFVEEgMyAoQXByaWwgMjAxMCAtIGRpc2NvbnRpbnVlZCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPi0gTWFqb3IgQnVnZml4IChtaXNzaW5nICI7IiBhbmQgc3RyYW5nZSBpbnZpc2libGUgaW52YWxpZCBjaGFycyk8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPlhDb250ZW50IEJFVEEgMiAoQXByaWwgMjAxMCAtIGRpc2NvbnRpbnVlZCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBwYXJhbSAiZGVsaW1pdGVyIjwvcD48L2xpPgoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHNtYXJ0eSBwcm9jZXNzaW5nPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mICJTaG93IGxvZ2luIGZvcm0iPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mIHBhZ2UgYWxpYXMgdG8gYWRkIGl0IGFzIHByZWZmaXg7IHNvIGlmIHlvdSBoYXZlIGEgcGFnZSBjYWxsZWQgIm1lbWJlcnMiIGFuZCBzZWxlY3QgZm9yIGVhY2ggY2hpbGQgcGFnZSAiaW5oZXJpdCBwYWdlIGFsaWFzIiBhbGwgY2hpbGQgcGFnZXMgYWxpYXNlcyB3aWxsIHN0YXJ0IHdpdGggIm1lbWJlcnNfIjsgbWFrZXMgZmlsdGVyaW5nIG9mIG1lbnUgZW50cmllcyB3aXRoIE1lbnVNYW5hZ2VyIHBhcmFtICJleGNsdWRlcHJlZmZpeCIgb3IgImluY2x1ZGVwcmVmZml4IiBlYXNpZXIuPC9wPjwvbGk+CgkJCTxsaT48cD4tIG1pbm9yIGJ1Z2ZpeGVzPC9wPjwvbGk+IAoJCTwvdWw+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAoQXByaWwgMjAxMCk6PC9zdHJvbmc+IGluaXRpYWwgcmVsZWFzZTwvcD4KCQk8dWw+CgkJCTxsaT48cD4tIGNvbnZlcnRlZCB0aGUgc2luZ2xlIGZpbGUgaW50byBhIG1vZHVsZTwvcD48L2xpPgoJCQk8bGk+PHA+LSByZW5hbWVkIHBhcmFtczsgc2VlIG1vZHVsZSBoZWxwIGZvciBtb3JlIGRldGFpbHM8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5TaW5nbGUgZmlsZSByZWxlYXNlcyAoZGlzY29udGludWVkKTwvc3Ryb25nPi4uLjwvcD4KPHVsPgoJPGxpPgoJCTxwPjxzdHJvbmc+MS40IChNYXJjaCAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+LSBjbGVhbnVwIGNvZGUgLSAoTmFOKTwvcD48L2xpPgoJCQk8bGk+PHA+LSBtaW5vciBidWdmaXhlcyAtIChOYU4pPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHJlZGlyZWN0IHBhZ2UgaWYgZmV1IGlzIG5vdCBsb2dnZWQgaW4gLSAoTmFOKTwvcD48L2xpPgoJCQk8bGk+PHA+LSBhZGRlZCBpbmhlcml0YW5jZSBvZiBmZXVfYWNjZXNzIGFuZCByZWRpcmVjdF9wYWdlIC0gKE5hTik8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmV1X2FjY2VzcyAtIChOYU4pPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY3Rpb24gLSAoTmFOKTwvcD48L2xpPgoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSByZWRpcmVjdF9wYWdlIC0gKE5hTik8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gYmxvY2tfb25seSAtIChOYU4pPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHNtYXJ0eSBsb2dpYyBpbiBiYWNrZW5kIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIHN0eWxlIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZpbHRlciAoZmlsdGVyaW5nIGltYWdlcyBpbiBiYWNrZW5kKSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPgoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBJbWdNb2RlIChkcm9wZG93biBvciBJbWFnZU1hbmFnZXIpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIHNtYXJ0eU9uIChmb3IgcHJvY2Vzc2luZyBzbWFydHkgdmFycyBvZiB0aGUgdGVtcGF0ZSBpbiBiYWNrZW5kKSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPjxwPjxzdHJvbmc+MS4zIChBcHJpbCAyMDA5KTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+LSBDTVNtcyAxLjYuKiByZWFkeSAtIChOYU4pPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIGZldSBhY2Nlc3Mgb3B0aW9uIC0gKE5hTik8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT4KCQk8cD48c3Ryb25nPjEuMiAoTWFyY2ggMjAwOSk6PC9zdHJvbmc+IGluaXRpYWwgcmVsZWFzZTwvcD4KCQk8dWw+CgkJCTxsaT48cD4tIEEgc2luZ2xlIGZpbGUgQ29udGVudDIuaW5jLnBocCB0aGF0IG5lZWRzIHRvIGJlIHBsYWNlZCBpbiBsaWIvY2xhc3Nlcy9jb250ZW50dHlwZXMuPC9wPjwvbGk+CgkJCTxsaT48cD4tIGxheW91dC9vcHRpb25zIG9mIGJhY2tlbmQgcGFuZWwgY2FuIGJlIGNvbnRyb2xlZCBieSBhZGRpdGlvbmFsIHNtYXJ0eSBwYXJhbXMgaW4gdGhlIHRlbXBsYXRlOyBpbnRlZ3JhdGVkIHRoZSB7Y29udGVudF9pbWFnZX0gdGFnIC0gKG1vZCBieSBOYU4pPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+CjwvdWw+CjxiciAvPjxiciAvPg==]]></about>
	<description><![CDATA[--Add Me - module:AdvancedContent string:admindescription--]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.htaccess</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PEZpbGVzICouKj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBvcmRlciBkZW55LGFsbG93ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgZGVueSBmcm9tIGFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L0ZpbGVzPgo=]]></data>
	</file>
	<file>
	  <filename>/action.addMultiInput.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLwojICAgICAgICAgIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBWZXJzaW9uOiAwLjgKIyBGaWxlICAgOiBhY3Rpb24uYWRkTXVsdGlJbnB1dC5waHAKIyBQdXJwb3NlOiBhZGRzIGEgbXVsdGkgaW5wdXQgYmxvY2t0eXBlCiMgTGljZW5zZTogR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCBNdWx0aUlucHV0cycpKQp7CglyZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25zJykpOwp9CgppZihpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpCnsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsIGFycmF5KCdhY3RpdmVfdGFiJz0+J211bHRpX2lucHV0JykpOwp9CgokZXJyb3IgPSBmYWxzZTsKJGVycm9ybWVzc2FnZSA9ICcnOwoKJGlucHV0X2lkID0gJyc7CmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X2lkJ10pICYmICFlbXB0eSgkcGFyYW1zWydpbnB1dF9pZCddKSkKewoJJGlucHV0X2lkID0gcHJlZ19yZXBsYWNlKCcvLSsvJywnXycsbXVuZ2Vfc3RyaW5nX3RvX3VybCh0cmltKCRwYXJhbXNbJ2lucHV0X2lkJ10pKSk7Cn0KCiRpbnB1dF9maWVsZHMgPSAnJzsKaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfZmllbGRzJ10pKQp7CgkkaW5wdXRfZmllbGRzID0gJHBhcmFtc1snaW5wdXRfZmllbGRzJ107Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2lucHV0X3RwbCddKSkKewoJJGlucHV0X3RwbCA9ICRwYXJhbXNbJ2lucHV0X3RwbCddOwp9CmVsc2UKewoJJGlucHV0X3RwbCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X211bHRpX2lucHV0X3RwbCcsJ211bHRpX2lucHV0X1NhbXBsZVRlbXBsYXRlJyk7Cn0KCiMjIyBkbyBhY3Rpb24gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgppZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgJiYgJHBhcmFtc1snc3VibWl0J109PXRydWUpCnsKCWlmKCRpbnB1dF9pZCA9PSAnJykKCXsKCQkkZXJyb3IgPSB0cnVlOwoJCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX2lucHV0X2lkJykuJzxiciAvPic7Cgl9CglpZigkaW5wdXRfZmllbGRzID09ICcnKQoJewoJCSRlcnJvciA9IHRydWU7CgkJJGVycm9ybWVzc2FnZSAuPSAkdGhpcy0+bGFuZygnZXJyb3JfaW5wdXRfZmllbGRzJykuJzxiciAvPic7Cgl9CgoJaWYoJGVycm9yPT1mYWxzZSkKCXsKCQlpZighJHRoaXMtPkFkZE11bHRpSW5wdXQoJGlucHV0X2lkLCRpbnB1dF9maWVsZHMpKQoJCXsKCQkJJGVycm9yID0gdHJ1ZTsKCQkJJGVycm9ybWVzc2FnZSAuPSAkdGhpcy0+bGFuZygnZXJyb3JfaW5wdXRfaWRfZXhpc3RzJykuJzxiciAvPic7CgkJfQoJCWVsc2UgaWYoISR0aGlzLT5BZGRUcGxBc3NvYygnbXVsdGlfaW5wdXQnLCRpbnB1dF9pZCwkaW5wdXRfdHBsKSkKCQl7CgkJCSRlcnJvciA9IHRydWU7CgkJCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX3VwZGF0aW5nX211bHRpX2lucHV0X2Fzc29jcycpLic8YnIgLz4nOwoJCX0KCQllbHNlCgkJewoJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnbWVzc2FnZSc9PidtdWx0aV9pbnB1dF9hZGRlZCcsCgkJCQknYWN0aXZlX3RhYic9PidtdWx0aV9pbnB1dCcsJ3N1Ym1pdCc9PnRydWUpKTsKCQl9Cgl9Cgp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBzbWFydHkgc3R1ZmYKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgknYWRkTXVsdGlJbnB1dCcsICRyZXR1cm5pZCwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7JHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywKCWxhbmcoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywKCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsbGFuZygnY2FuY2VsJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfaWRfdGV4dCcsJHRoaXMtPmxhbmcoJ2lucHV0X2lkJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2lkX2lucHV0JywKCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdpbnB1dF9pZCcsJGlucHV0X2lkLDY0LDEyOCkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF90cGxfdGV4dCcsJHRoaXMtPmxhbmcoJ211bHRpX2lucHV0X3RwbCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF90cGxfaW5wdXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2lucHV0X3RwbCcsICR0aGlzLT5HZXRUcGxMaXN0KCdtdWx0aV9pbnB1dCcpLCAnJywgJGlucHV0X3RwbCkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWVsZHNfdGV4dCcsJHRoaXMtPmxhbmcoJ2lucHV0X2ZpZWxkcycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWVsZHNfaW5wdXQnLAoJJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkaW5wdXRfZmllbGRzLCdpbnB1dF9maWVsZHMnLCcnLCdpbnB1dF9maWVsZHMnKSk7CgppZigkZXJyb3JtZXNzYWdlIT0nJykKewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcm1lc3NhZ2UnLCRlcnJvcm1lc3NhZ2UpOwp9CgojIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQplY2hvICR0aGlzLT5fcHAuJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRkTXVsdGlJbnB1dC50cGwnKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.addMultiInputTpl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLwojICAgICAgICAgIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBWZXJzaW9uOiAwLjgKIyBGaWxlICAgOiBhY3Rpb24uYWRkTXVsdGlJbnB1dFRwbC5waHAKIyBQdXJwb3NlOiBhZGRzIGEgdGVtcGxhdGUgZm9yIG11bHRpIGlucHV0IGJsb2NrdHlwZQojIExpY2Vuc2U6IEdQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZighaXNfb2JqZWN0KGNtc21zKCkpKSBleGl0OwoKaWYoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dCBUZW1wbGF0ZXMnKSkKewoJcmV0dXJuICR0aGlzLT5EaXNwbGF5RXJyb3JQYWdlKCRpZCwkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9ucycpKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnYWN0aXZlX3RhYic9PidtdWx0aV9pbnB1dF90cGwnKSk7Cn0KCiRlcnJvciA9IGZhbHNlOwokZXJyb3JtZXNzYWdlID0gJyc7CgokdHBsX25hbWUgPSAnJzsKaWYoaXNzZXQoJHBhcmFtc1sndHBsX25hbWUnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ3RwbF9uYW1lJ10pKQp7CgkkdHBsX25hbWUgPSBwcmVnX3JlcGxhY2UoJy8tKy8nLCdfJyxtdW5nZV9zdHJpbmdfdG9fdXJsKHRyaW0oJHBhcmFtc1sndHBsX25hbWUnXSkpKTsKfQoKJHRlbXBsYXRlID0gJyc7CmlmKGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlJ10pKQp7CgkkdGVtcGxhdGUgPSB0cmltKCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwp9CgojIyMgZG8gYWN0aW9uICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICYmICRwYXJhbXNbJ3N1Ym1pdCddPT10cnVlKQp7CglpZigkdHBsX25hbWUgPT0gJycpCgl7CgkJJGVycm9yID0gdHJ1ZTsKCQkkZXJyb3JtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdlcnJvcl90cGxfbmFtZScpLic8YnIgLz4nOwoJfQoJaWYoJHRlbXBsYXRlID09ICcnKQoJewoJCSRlcnJvciA9IHRydWU7CgkJJGVycm9ybWVzc2FnZSAuPSAkdGhpcy0+bGFuZygnZXJyb3JfdGVtcGxhdGUnKS4nPGJyIC8+JzsKCX0KCWlmKCRlcnJvcj09ZmFsc2UpCgl7CgkJJHRoaXMtPlNldFRlbXBsYXRlKCdtdWx0aV9pbnB1dF8nLiR0cGxfbmFtZSwgJHRlbXBsYXRlKTsKCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCBhcnJheSgnbWVzc2FnZSc9PidtdWx0aV9pbnB1dF90cGxfYWRkZWQnLAoJCQknYWN0aXZlX3RhYic9PidtdWx0aV9pbnB1dF90cGwnLCdzdWJtaXQnPT50cnVlKSk7Cgl9Cn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIHNtYXJ0eSBzdHVmZgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwKCSdhZGRNdWx0aUlucHV0VHBsJywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX2Zvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTskdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLAoJbGFuZygnc3VibWl0JykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLAoJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnY2FuY2VsJyxsYW5nKCdjYW5jZWwnKSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0cGxfbmFtZV90ZXh0JywkdGhpcy0+bGFuZygndHBsX25hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndHBsX25hbWVfaW5wdXQnLAoJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ3RwbF9uYW1lJywkdHBsX25hbWUsNjQsMTI4KSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX3RleHQnLGxhbmcoJ3RlbXBsYXRlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX2lucHV0JywKCSR0aGlzLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwkaWQsJHRlbXBsYXRlLCd0ZW1wbGF0ZScsJycsJ3RlbXBsYXRlJykpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoZWxwX3RleHQnLCR0aGlzLT5sYW5nKCdoZWxwX3RwbF92YXJzJykpOwoKaWYoJGVycm9ybWVzc2FnZSE9JycpCnsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JtZXNzYWdlJywkZXJyb3JtZXNzYWdlKTsKfQoKIyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+X3BwLiR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkZE11bHRpSW5wdXRUcGwudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBkZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvCiMgICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGNtc21hZGVzaW1wbGUub3JnCiMgVmVyc2lvbjogMC44CiMgRmlsZSAgIDogYWN0aW9uLmRlZmF1bHQucGhwCiMgICAgICAgICAgVGhpcyBmaWxlIGlzIGEgbW9kaWZpY2F0aW9uIG9mIHRoZSBkZWZhdWx0IHBsdWdpbiB7Y29udGVudH0KIyBQdXJwb3NlOiBwZXJmb3JtcyB0aGUgZGVmYXVsdCBmcm9udGVuZCBhY3Rpb24gaWYge0FkdmFuY2VkQ29udGVudH0gaXMgdXNlZC4KIyBMaWNlbnNlOiBHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLyoqCiAqCiAqIEB0b2RvOiBjaGVjayBpZiB0aGlzIGNhbiBiZSBkb25lIGluIGNvbnRlbnR0eXBlIGluIGZ1bmN0aW9uIFNob3coKQogKgogKi8KCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgppZihpc3NldCgkcGFyYW1zWydhY3RpdmUnXSkgJiYgJHRoaXMtPklzRmFsc2UoJHBhcmFtc1snYWN0aXZlJ10pKQp7CglyZXR1cm47ICMgZG9uJ3QgcHJvY2VzcyBpbmFjdGl2ZSBibG9ja3MKfQoKJHJlc3VsdCAgID0gJyc7CgokYmxvY2sgPSAnY29udGVudF9lbic7CiRtYWluQ29udGVudCA9IHRydWU7CgojIE1MRSBzdXBwb3J0CiRtbGUgPSBmYWxzZTsKZ2xvYmFsICRobHMsICRtbGVibG9jaywgJG1sZWJsb2NrZmFsbGJhY2s7CmlmKGlzc2V0KCRobHMpKQp7CgkkbWxlID0gdHJ1ZTsKfQoKaWYoJG1sZSAmJiAkbWxlYmxvY2sgIT0gJycpCnsKCSRibG9jayA9ICdjb250ZW50Jy4kbWxlYmxvY2s7Cn0KIy0tLQoKaWYoaXNzZXQoJHBhcmFtc1snYmxvY2snXSkgJiYgJHBhcmFtc1snYmxvY2snXSAhPSAkYmxvY2spCnsKCSRtYWluQ29udGVudCA9IGZhbHNlOwoJJF9ibG9jayA9IHByZWdfcmVwbGFjZSgnLy0rLycsJ18nLG11bmdlX3N0cmluZ190b191cmwoJHBhcmFtc1snYmxvY2snXSkpOwoJJGJsb2NrID0gJF9ibG9jazsKCSMgTUxFIHN1cHBvcnQKCWlmKCRtbGUpCgl7CgkJJGJsb2NrIC49ICRtbGVibG9jazsKCX0KCSMtLS0KfQoKJGRlZmF1bHRWYWx1ZSA9ICcnOwppZihpc3NldCgkcGFyYW1zWydkZWZhdWx0J10pKQp7CgkkZGVmYXVsdFZhbHVlID0gdHJpbSgkcGFyYW1zWydkZWZhdWx0J10pOwp9CgokZG9TbWFydHkgPSBmYWxzZTsKaWYoaXNzZXQoJHBhcmFtc1snc21hcnR5J10pICYmICR0aGlzLT5Jc1RydWUoJHBhcmFtc1snc21hcnR5J10pICYmIGNtc191dGlsczo6Z2V0X2N1cnJlbnRfY29udGVudCgpLT5UeXBlKCkgPT0gJ2NvbnRlbnQyJykKewoJJGRvU21hcnR5ID0gdHJ1ZTsKfQoKaWYoJGRvU21hcnR5ICYmIGNtc191dGlsczo6Z2V0X2N1cnJlbnRfY29udGVudCgpLT5UeXBlKCkgPT0gJ2NvbnRlbnQyJykKewoJJGRlZmF1bHRWYWx1ZSA9IGNtc191dGlsczo6Z2V0X2N1cnJlbnRfY29udGVudCgpLT5Eb1NtYXJ0eShjbXNfdXRpbHM6OmdldF9jdXJyZW50X2NvbnRlbnQoKS0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrXVsnZGVmYXVsdF92YWx1ZSddKTsKfQoKJGFsbG93Tm9uZSA9IHRydWU7CmlmKGlzc2V0KCRwYXJhbXNbJ2FsbG93X25vbmUnXSkgJiYgJHRoaXMtPklzRmFsc2UoJHBhcmFtc1snYWxsb3dfbm9uZSddKSkKewoJJGFsbG93Tm9uZSA9IGZhbHNlOwp9CgppZiAoaXNfb2JqZWN0KGNtc191dGlsczo6Z2V0X2N1cnJlbnRfY29udGVudCgpKSAmJiBtZXRob2RfZXhpc3RzKGNtc191dGlsczo6Z2V0X2N1cnJlbnRfY29udGVudCgpLCdJZCcpICkKewoJJGlkICAgICAgICAgPSAnJzsKCSRtb2R1bGVuYW1lID0gJyc7CgkkYWN0aW9uICAgICA9ICcnOwoJJGlubGluZSAgICAgPSBmYWxzZTsKCWlmIChpc3NldCgkX1JFUVVFU1RbJ21vZHVsZSddKSkKCXsKCQkkbW9kdWxlbmFtZSA9ICRfUkVRVUVTVFsnbW9kdWxlJ107Cgl9CgkKCWlmIChpc3NldCgkX1JFUVVFU1RbJ2lkJ10pKQoJewoJCSRpZCA9ICRfUkVRVUVTVFsnaWQnXTsKCX0KCWVsc2VpZiAoaXNzZXQoJF9SRVFVRVNUWydtYWN0J10pKQoJewoJCSRhcnkgICAgICAgID0gZXhwbG9kZSgnLCcsIGNtc19odG1sZW50aXRpZXMoJF9SRVFVRVNUWydtYWN0J10pLCA0KTsKCQkkbW9kdWxlbmFtZSA9IChpc3NldCgkYXJ5WzBdKT8kYXJ5WzBdOicnKTsKCQkkaWQgICAgICAgICA9IChpc3NldCgkYXJ5WzFdKT8kYXJ5WzFdOicnKTsKCQkkYWN0aW9uICAgICA9IChpc3NldCgkYXJ5WzJdKT8kYXJ5WzJdOicnKTsKCQkkaW5saW5lICAgICA9IChpc3NldCgkYXJ5WzNdKSAmJiAkYXJ5WzNdID09IDE/dHJ1ZTpmYWxzZSk7Cgl9CgkKCWlmIChpc3NldCgkX1JFUVVFU1RbJGlkLidhY3Rpb24nXSkpCgl7CgkJJGFjdGlvbiA9ICRfUkVRVUVTVFskaWQuJ2FjdGlvbiddOwoJfQoJZWxzZSBpZiAoaXNzZXQoJF9SRVFVRVNUWydhY3Rpb24nXSkpCgl7CgkJJGFjdGlvbiA9ICRfUkVRVUVTVFsnYWN0aW9uJ107Cgl9CgkKCWlmICghaXNzZXQoJHBhcmFtc1snYmxvY2snXSkgJiYgKCRpZCA9PSAnY250bnQwMScgfHwgKCRpZCAhPSAnJyAmJiAkaW5saW5lID09IGZhbHNlKSkpCgl7CgkJJGNtc21vZHVsZXMgPSAmY21zbXMoKS0+bW9kdWxlczsKCQkKCQlpZiAoaXNzZXQoJGNtc21vZHVsZXMpKQoJCXsKCQkJZm9yZWFjaCAoJGNtc21vZHVsZXMgYXMgJGtleT0+JHZhbHVlKQoJCQl7CgkJCQlpZiAoc3RydG9sb3dlcigkbW9kdWxlbmFtZSkgPT0gc3RydG9sb3dlcigka2V5KSkKCQkJCXsKCQkJCQkkbW9kdWxlbmFtZSA9ICRrZXk7CgkJCQl9CgkJCX0KCQkJCgkJCWlmIChpc3NldCgkbW9kdWxlbmFtZSkpCgkJCXsKCQkJCWlmIChpc3NldCgkY21zbW9kdWxlc1skbW9kdWxlbmFtZV0pKQoJCQkJewoJCQkJCWlmIChpc3NldCgkY21zbW9kdWxlc1skbW9kdWxlbmFtZV1bJ29iamVjdCddKQoJCQkJCQkmJiAkY21zbW9kdWxlc1skbW9kdWxlbmFtZV1bJ2luc3RhbGxlZCddID09IHRydWUKCQkJCQkJJiYgJGNtc21vZHVsZXNbJG1vZHVsZW5hbWVdWydhY3RpdmUnXSA9PSB0cnVlCgkJCQkJCSYmICRjbXNtb2R1bGVzWyRtb2R1bGVuYW1lXVsnb2JqZWN0J10tPklzUGx1Z2luTW9kdWxlKCkpCgkJCQkJewoJCQkJCQlAb2Jfc3RhcnQoKTsKCQkJCQkJZm9yZWFjaCgkdGhpcy0+R2V0QWxsb3dlZFBhcmFtZXRlcnMoKSBhcyAkayA9PiAkdikgewoJCQkJCQkJdW5zZXQoJHBhcmFtc1ska10pOwoJCQkJCQl9CgkJCQkJCQoJCQkJCQkkcGFyYW1zID0gYXJyYXlfbWVyZ2UoJHBhcmFtcywgR2V0TW9kdWxlUGFyYW1ldGVycygkaWQpKTsKCQkJCQkJCgkJCQkJCSMgY2FsZ3V5MTAwMCAuLi4gaW5jcmVtZW50IHRoZSBtb2R1bGVudW0KCQkJCQkJI2lmIHdlJ3JlIG5vdCBpbiBpbmxpbmVkIG1vZGUuCgkJCQkJCSNpZiggJGlkICE9ICdjbnRudDAxJyApCgkJCQkJCSN7CgkJCQkJCSMgVG9EbzogZG8gbm90IG1vZGlmeSBDTVNtcyBpbnRlcm5hbHMgaGVyZSEKCQkJCQkJIwkrK2Ntc21zKCktPnZhcmlhYmxlc1sibW9kdWxlbnVtIl07CgkJCQkJCSN9CgkJCQkJCQoJCQkJCQkkcmV0dXJuaWQgPSAnJzsKCQkJCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ3JldHVybmlkJ10pKQoJCQkJCQl7CgkJCQkJCQkkcmV0dXJuaWQgPSAkcGFyYW1zWydyZXR1cm5pZCddOwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJewoJCQkJCQkJJHJldHVybmlkID0gY21zX3V0aWxzOjpnZXRfY3VycmVudF9jb250ZW50KCktPklkKCk7CgkJCQkJCX0KCQkJCQkJJHJlc3VsdCA9ICRjbXNtb2R1bGVzWyRtb2R1bGVuYW1lXVsnb2JqZWN0J10tPkRvQWN0aW9uQmFzZSgkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CgkJCQkJCWlmICgkcmVzdWx0ICE9PSBGQUxTRSkKCQkJCQkJewoJCQkJCQkJZWNobyAkcmVzdWx0OwoJCQkJCQl9CgkJCQkJCSRtb2RyZXN1bHQgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7CgkJCQkJCUBvYl9lbmRfY2xlYW4oKTsKCQkJCQkJJHJlc3VsdCA9ICRtb2RyZXN1bHQ7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJICAkcmVzdWx0ID0gIjwhLS0gTm90IGEgdGFnIG1vZHVsZSAtLT5cbiI7CgkJCQkJICBAdHJpZ2dlcl9lcnJvcignQXR0ZW1wdCB0byBhY2Nlc3MgbW9kdWxlICcuJGtleS4nIHdoaWNoIGNvdWxkIG5vdCBiZSBmb3VuZSAoaXMgaXQgcHJvcGVybHkgaW5zdGFsbGVkIGFuZCBjb25maWd1cmVkPycpOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KCWVsc2UKCXsKCQkkb2xkdmFsdWUgICAgICAgICAgICAgICAgICAgICA9IGNtc21zKCktPkdldFNtYXJ0eSgpLT5jYWNoaW5nOwoJCWNtc21zKCktPkdldFNtYXJ0eSgpLT5jYWNoaW5nID0gZmFsc2U7CgkJJGNvbnRlbnRJZCAgICAgICAgICAgICAgICAgICAgPSBjbXNfdXRpbHM6OmdldF9jdXJyZW50X2NvbnRlbnQoKS0+SWQoKTsKCQkKCQkjIE1MRSBzdXBwb3J0CgkJaWYoJG1sZSkKCQl7CgkJCSRjb250ZW50SWQgLj0gJy0nLiRobHM7CgkJfQoJCSMtLS0KCQkKCQkkcmVzdWx0ID0gY21zbXMoKS0+R2V0U21hcnR5KCktPmZldGNoKHN0cl9yZXBsYWNlKCcgJywgJ18nLCAnY29udGVudDonIC4gJGJsb2NrKSwgJycsICRjb250ZW50SWQpOwoJCQoJCSMgTUxFIHN1cHBvcnQKCQlpZigkbWxlCgkJCSYmICRyZXN1bHQgPT0gJycgJiYgJG1sZWJsb2NrZmFsbGJhY2sgIT0gJycKCQkJJiYgJG1sZWJsb2NrZmFsbGJhY2sgIT0gJG1sZWJsb2NrKQoJCXsKCQkJaWYoJGJsb2NrICE9ICdjb250ZW50Jy4kbWxlYmxvY2spCgkJCXsKCQkJCSRibG9jayAgPSAkX2Jsb2NrIC4gJG1sZWJsb2NrZmFsbGJhY2s7CgkJCQkkcmVzdWx0ID0gY21zbXMoKS0+R2V0U21hcnR5KCktPmZldGNoKHN0cl9yZXBsYWNlKCcgJywgJ18nLCAnY29udGVudDonIC4gJGJsb2NrKSwgJycsICRjb250ZW50SWQpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJGJsb2NrICA9ICdjb250ZW50JyAuICRtbGVibG9ja2ZhbGxiYWNrOwoJCQkJJHJlc3VsdCA9IGNtc21zKCktPkdldFNtYXJ0eSgpLT5mZXRjaChzdHJfcmVwbGFjZSgnICcsICdfJywgJ2NvbnRlbnQ6JyAuICRibG9jayksICcnLCAkY29udGVudElkKTsKCQkJfQoJCX0KCQkjLS0tCgkJCgkJY21zbXMoKS0+R2V0U21hcnR5KCktPmNhY2hpbmcgPSAkb2xkdmFsdWU7CgkJCgkJaWYoJHJlc3VsdCA9PSAnJyAmJiAhJGFsbG93Tm9uZSkKCQl7CgkJCSRyZXN1bHQgPSAkZGVmYXVsdFZhbHVlOwoJCX0KCX0KCWVjaG8gdHJpbSgkcmVzdWx0KTsKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBkZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvCiMgICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGNtc21hZGVzaW1wbGUub3JnCiMgVmVyc2lvbjogMC44CiMgRmlsZSAgIDogYWN0aW9uLmRlZmF1bHRhZG1pbi5waHAKIyBQdXJwb3NlOiBwZXJmb3JtcyB0aGUgZGVmYXVsdCBiYWNrZW5kIGFjdGlvbiBpZiAiRXh0ZW5zaW9ucy0+QWR2YW5jZWRDb250ZW50IgojICAgICAgICAgIGlzIHNlbGVjdGVkCiMgTGljZW5zZTogR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCBQcmVmZXJlbmNlcycpIAoJJiYgISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dHMnKSAKCSYmICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE11bHRpSW5wdXQgVGVtcGxhdGVzJykpCnsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfcGVybWlzc2lvbnMnKSk7Cn0KJGFjdGl2ZV90YWIgPSAncHJlZnMnOwppZihpc3NldCgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKQp7CgkkYWN0aXZlX3RhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKfQokZXJyb3JtZXNzYWdlID0gJyc7CmlmKGlzc2V0KCRwYXJhbXNbJ2Vycm9ybWVzc2FnZSddKSkKewoJJGVycm9ybWVzc2FnZSAuPSAkcGFyYW1zWydlcnJvcm1lc3NhZ2UnXS4nPGJyIC8+JzsKfQokbWVzc2FnZSA9ICcnOwppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pKQp7CgkkbWVzc2FnZSAuPSAkcGFyYW1zWydtZXNzYWdlJ10uJzxiciAvPic7Cn0KJHRhYnMgPSBhcnJheSgpOwoKaWYoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCBQcmVmZXJlbmNlcycpKQp7CgkkdGFic1sncHJlZnMnXVsndGFiaGVhZGVyJ10gPSAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcmVmcycsCgkJJHRoaXMtPmxhbmcoJ3ByZWZzJyksCgkJKCRhY3RpdmVfdGFiPT0ncHJlZnMnP3RydWU6JycpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwKCQknc2F2ZVByZWZzJywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltcG9ydGNvbnRlbnRfaW5wdXQnLAoJCSR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2ltcG9ydHBhZ2VzJywgJHJldHVybmlkLAoJCQljbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vaW1wb3J0LmdpZicsICcnLCcnLCcnLCdzeXN0ZW1pY29uJykgLgoJCQknJm5ic3A7JyAuICR0aGlzLT5sYW5nKCdpbXBvcnRwYWdlcycsIGxhbmcoJ2NvbnRlbnQnKSwkdGhpcy0+bGFuZygnQWR2YW5jZWRDb250ZW50JykpLAoJCQlhcnJheSgnb2xkX3R5cGUnPT4nY29udGVudCcsJ25ld190eXBlJz0+J2NvbnRlbnQyJyksCgkJCScnLAoJCQlmYWxzZSwKCQkJZmFsc2UsCgkJCSdjbGFzcz0iQWR2YW5jZWRDb250ZW50X0FKQVgiIG9uY2xpY2s9ImlmKGNvbmZpcm0oXCcnLgoJCQkJJHRoaXMtPmxhbmcoJ2NvbmZpcm1pbXBvcnQnLGxhbmcoJ2NvbnRlbnQnKSwkdGhpcy0+bGFuZygnQWR2YW5jZWRDb250ZW50JykpIC4KCQkJCSdcJykpIHtBZHZhbmNlZENvbnRlbnQuaW1wb3J0UGFnZXModGhpcy5ocmVmKTt9IHJldHVybiBmYWxzZTsiJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltcG9ydGNvbnRlbnQyX2lucHV0JywKCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdpbXBvcnRwYWdlcycsICcnLAoJCQljbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vaW1wb3J0LmdpZicsICcnLCcnLCcnLCdzeXN0ZW1pY29uJykgLgoJCQknJm5ic3A7JyAuICR0aGlzLT5sYW5nKCdpbXBvcnRwYWdlcycsICR0aGlzLT5sYW5nKCdBZHZhbmNlZENvbnRlbnQnKSxsYW5nKCdjb250ZW50JykpLAoJCQlhcnJheSgnb2xkX3R5cGUnPT4nY29udGVudDInLCduZXdfdHlwZSc9Pidjb250ZW50JyksCgkJCScnLAoJCQlmYWxzZSwKCQkJZmFsc2UsCgkJCSdjbGFzcz0iQWR2YW5jZWRDb250ZW50X0FKQVgiIG9uY2xpY2s9ImlmKGNvbmZpcm0oXCcnLgoJCQkJJHRoaXMtPmxhbmcoJ2NvbmZpcm1pbXBvcnQnLCR0aGlzLT5sYW5nKCdBZHZhbmNlZENvbnRlbnQnKSxsYW5nKCdjb250ZW50JykpIC4KCQkJCSdcJykpIHtBZHZhbmNlZENvbnRlbnQuaW1wb3J0UGFnZXModGhpcy5ocmVmKTt9IHJldHVybiBmYWxzZTsiJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VuaW5zdGFsbGFjdGlvbl90ZXh0JywgJHRoaXMtPmxhbmcoJ3VuaW5zdGFsbGFjdGlvbicpKTsKCQoJJGFjdGlvbnMgPSBhcnJheShsYW5nKCdub25lJyk9PicnLAoJCSR0aGlzLT5sYW5nKCdzZXRjb250ZW50MScpPT4yLAoJCSR0aGlzLT5sYW5nKCdzZXRjb250ZW50MicpPT4zLAoJCSR0aGlzLT5sYW5nKCdkZWxldGVwYWdlcycpPT4xKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1bmluc3RhbGxhY3Rpb25faW5wdXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3VuaW5zdGFsbF9hY3Rpb24nLCAkYWN0aW9ucywgJycsCgkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1bmluc3RhbGxfYWN0aW9uJykpKTsKCQoJJGFjdGlvbnMgPSBhcnJheSgkdGhpcy0+bGFuZygncGVyX3BhZ2UnKT0+J2NvbnRlbnQnLAoJCSR0aGlzLT5sYW5nKCdwZXJfdGVtcGxhdGUnKT0+J3RlbXBsYXRlJywKCQkkdGhpcy0+bGFuZygnYm90aDEnKT0+J2JvdGgxJywKCQkkdGhpcy0+bGFuZygnYm90aDInKT0+J2JvdGgyJyk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignYmxvY2tfZGlzcGxheV9zZXR0aW5nc190ZXh0JywKCQkkdGhpcy0+bGFuZygnc2F2ZV9jb2xsYXBzZV9zdGF0dXMnLCAkdGhpcy0+bGFuZygnY29udGVudF9ibG9ja3MnKSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdibG9ja19kaXNwbGF5X3NldHRpbmdzX2lucHV0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdibG9ja19kaXNwbGF5X3NldHRpbmdzJywgJGFjdGlvbnMsICcnLAoJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYmxvY2tfZGlzcGxheV9zZXR0aW5ncycpKSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY29sbGFwc2VfYmxvY2tfZGVmYXVsdF90ZXh0JywKCQkkdGhpcy0+bGFuZygnY29sbGFwc2VfZGVmYXVsdCcsJHRoaXMtPmxhbmcoJ2NvbnRlbnRfYmxvY2tzJykpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NvbGxhcHNlX2Jsb2NrX2RlZmF1bHRfaW5wdXQnLAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdjb2xsYXBzZV9ibG9ja19kZWZhdWx0JywwKSAuCgkJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2NvbGxhcHNlX2Jsb2NrX2RlZmF1bHQnLCAxLAoJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NvbGxhcHNlX2Jsb2NrX2RlZmF1bHQnLDEpKSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZV9kaXNwbGF5X3NldHRpbmdzX3RleHQnLAoJCSR0aGlzLT5sYW5nKCdzYXZlX2NvbGxhcHNlX3N0YXR1cycsICR0aGlzLT5sYW5nKCdibG9ja19tZXNzYWdlJykpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZV9kaXNwbGF5X3NldHRpbmdzX2lucHV0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdtZXNzYWdlX2Rpc3BsYXlfc2V0dGluZ3MnLCAkYWN0aW9ucywgJycsCgkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXNzYWdlX2Rpc3BsYXlfc2V0dGluZ3MnKSkpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2dyb3VwX2Rpc3BsYXlfc2V0dGluZ3NfdGV4dCcsCgkJJHRoaXMtPmxhbmcoJ3NhdmVfY29sbGFwc2Vfc3RhdHVzJywgJHRoaXMtPmxhbmcoJ2Jsb2NrX2dyb3VwcycpKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2dyb3VwX2Rpc3BsYXlfc2V0dGluZ3NfaW5wdXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2dyb3VwX2Rpc3BsYXlfc2V0dGluZ3MnLCAkYWN0aW9ucywgJycsCgkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdncm91cF9kaXNwbGF5X3NldHRpbmdzJykpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjb2xsYXBzZV9ncm91cF9kZWZhdWx0X3RleHQnLAoJCSR0aGlzLT5sYW5nKCdjb2xsYXBzZV9kZWZhdWx0JywkdGhpcy0+bGFuZygnYmxvY2tfZ3JvdXBzJykpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY29sbGFwc2VfZ3JvdXBfZGVmYXVsdF9pbnB1dCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY29sbGFwc2VfZ3JvdXBfZGVmYXVsdCcsMCkgLgoJCSR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2NvbGxhcHNlX2dyb3VwX2RlZmF1bHQnLCAxLAoJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29sbGFwc2VfZ3JvdXBfZGVmYXVsdCcsMSkpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnNfdGV4dCcsCgkJJHRoaXMtPmxhbmcoJ3Nob3dfYWR2YW5jZWRjb250ZW50X29wdGlvbnMnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9uc19pbnB1dCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJywwKSAuCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJywgMSwKCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSksJ29uY2hhbmdlPSJpZighdGhpcy5jaGVja2VkKXtqUXVlcnkoXCcjYWR2YW5jZWRfZGVmYXVsdF9vcHRpb25zIGlucHV0XCcpLmF0dHIoXCdkaXNhYmxlZFwnLFwnZGlzYWJsZWRcJyk7aWYoalF1ZXJ5KFwnI2FkdmFuY2VkX2RlZmF1bHRfb3B0aW9uc1wnKS5jc3MoXCdkaXNwbGF5XCcpICE9IFwnbm9uZVwnKXtqUXVlcnkoXCcjYWR2YW5jZWRfZGVmYXVsdF9vcHRpb25zXCcpLnNsaWRlVXAoKTt9fWVsc2V7alF1ZXJ5KFwnI2FkdmFuY2VkX2RlZmF1bHRfb3B0aW9ucyBpbnB1dFwnKS5yZW1vdmVBdHRyKFwnZGlzYWJsZWRcJyk7aWYoalF1ZXJ5KFwnI2FkdmFuY2VkX2RlZmF1bHRfb3B0aW9uc1wnKS5jc3MoXCdkaXNwbGF5XCcpID09IFwnbm9uZVwnKXtqUXVlcnkoXCcjYWR2YW5jZWRfZGVmYXVsdF9vcHRpb25zXCcpLnNsaWRlRG93bigpO319IicpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZHZhbmNlZF9kZWZhdWx0X29wdGlvbnNfc3R5bGUnLCAhJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSkgPyAnc3R5bGU9ImRpc3BsYXk6bm9uZSInIDogJycpOwoJIyBkZWZhdWx0IGFkdmFuY2VkIHBhZ2VvcHRpb25zCgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY29udGVudHNldHRpbmdzX3RleHQnLCAkdGhpcy0+bGFuZygnY29udGVudHNldHRpbmdzJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VzZV9leHBpcmVfZGF0ZV90ZXh0JywgJHRoaXMtPmxhbmcoJ3VzZWV4cGlyZWRhdGUnKSk7CgkkdXNlRXhwID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9leHBpcmVfZGF0ZScpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1c2VfZXhwaXJlX2RhdGVfaW5wdXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwndXNlX2V4cGlyZV9kYXRlJywKCQkJYXJyYXkoJHRoaXMtPmxhbmcoJ3llcycpPT4xLAoJCQkJJHRoaXMtPmxhbmcoJ25vJyk9PjAsCgkJCQkkdGhpcy0+bGFuZygnaW5oZXJpdF9mcm9tX3BhcmVudCcpPT4tMSksCgkJCTAsJHVzZUV4cCkpOwoJCgkkdGltZXMgPSBhcnJheSgpOwoJJHRpbWVzWyR0aGlzLT5sYW5nKCdtaW51dGVzJyldID0gJ21pbnV0ZSc7CgkkdGltZXNbJHRoaXMtPmxhbmcoJ2hvdXJzJyldICAgPSAnaG91cic7CgkkdGltZXNbJHRoaXMtPmxhbmcoJ2RheXMnKV0gICAgPSAnZGF5JzsKCSR0aW1lc1skdGhpcy0+bGFuZygnd2Vla3MnKV0gICA9ICd3ZWVrJzsKCSR0aW1lc1skdGhpcy0+bGFuZygnbW9udGhzJyldICA9ICdtb250aCc7CgkkdGltZXNbJHRoaXMtPmxhbmcoJ3llYXJzJyldICAgPSAneWVhcic7IAoJCgkkc3RhcnRfZGF0ZSA9IGV4cGxvZGUoJyAnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgic3RhcnRfZGF0ZSIsICcxIHdlZWsnKSk7CgkkZW5kX2RhdGUgICA9IGV4cGxvZGUoJyAnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgiZW5kX2RhdGUiLCAnMSB3ZWVrJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9kYXRlX3RleHQnLCAkdGhpcy0+bGFuZygnc3RhcnRkYXRlJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9kYXRlX2lucHV0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3N0YXJ0X2RhdGVfMScsICRzdGFydF9kYXRlWzBdLCAzLCA1KSAuCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnc3RhcnRfZGF0ZV8yJywgJHRpbWVzLCcnLCAkc3RhcnRfZGF0ZVsxXSkgLiAKCQknJm5ic3A7JyAuICR0aGlzLT5sYW5nKCdhZnRlcmN1cnJkYXRlJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9kYXRlX3RleHQnLCAkdGhpcy0+bGFuZygnZW5kZGF0ZScpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX2RhdGVfaW5wdXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZW5kX2RhdGVfMScsICRlbmRfZGF0ZVswXSwgMywgNSkgLiAKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdlbmRfZGF0ZV8yJywgJHRpbWVzLCAnJywgJGVuZF9kYXRlWzFdKSAuIAoJCScmbmJzcDsnIC4gJHRoaXMtPmxhbmcoJ2FmdGVyc3RhcnRkYXRlJykpOwoJCglpZiggJGZldXNlcnMgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyApKQoJewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmV1YWNjZXNzX3RleHQnLCAkdGhpcy0+bGFuZygnZnJvbnRlbmRhY2Nlc3MnKSk7CgkJJGZldUFjY2VzcyAgICAgID0gYXJyYXkoJHRoaXMtPmxhbmcoJ2luaGVyaXRfZnJvbV9wYXJlbnQnKT0+LTEpOwoJCSRmZXVBY2Nlc3MgICAgICA9IGFycmF5X21lcmdlKCRmZXVBY2Nlc3MsJGZldXNlcnMtPkdldEdyb3VwTGlzdCgpKTsKCQkkc2VsZWN0ZWRHcm91cHMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmV1X2FjY2VzcycpOwoJCSRkZWxpbSAgICAgICAgICA9IHN0cnBvcygkc2VsZWN0ZWRHcm91cHMsJywnKSA9PT0gRkFMU0UgPyAnOycgOiAnLCc7CgkJJHNlbGVjdGVkR3JvdXBzID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgkZGVsaW0sJHNlbGVjdGVkR3JvdXBzKSk7CgkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmZXVhY2Nlc3NfaW5wdXQnLAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmZXVfYWNjZXNzJywnJykuCgkJCSR0aGlzLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCdmZXVfYWNjZXNzW10nLCRmZXVBY2Nlc3MsCgkJCQkkc2VsZWN0ZWRHcm91cHMsIGNvdW50KCRmZXVBY2Nlc3MpLCEkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJywxKSA/ICdkaXNhYmxlZD0iZGlzYWJsZWQiJyA6ICcnLDEpKTsKCQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlZGlyZWN0cGFnZV90ZXh0JywgJHRoaXMtPmxhbmcoJ3JlZGlyZWN0cGFnZScpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3JlZGlyZWN0cGFnZV9pbnB1dCcsCgkJCSR0aGlzLT5DcmVhdGVSZWRpcmVjdERyb3Bkb3duKCRpZCwncmVkaXJlY3RfcGFnZScsCgkJCQkkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfcGFnZScpKSk7CgkJCgkJJGluaGVyaXRQYXJhbXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW5oZXJpdF9yZWRpcmVjdF9wYXJhbXMnLDApOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5oZXJpdF9yZWRpcmVjdHBhcmFtc190ZXh0JywgJHRoaXMtPmxhbmcoJ2luaGVyaXRfZnJvbV9wYXJlbnQnKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbmhlcml0X3JlZGlyZWN0cGFyYW1zX2lucHV0JywKCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnaW5oZXJpdF9yZWRpcmVjdF9wYXJhbXMnLDApIC4KCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnaW5oZXJpdF9yZWRpcmVjdF9wYXJhbXMnLCAxLAoJCQkJJGluaGVyaXRQYXJhbXMsICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJywxKSA/ICdkaXNhYmxlZD0iZGlzYWJsZWQiJyA6ICcnKSk7CgkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdyZWRpcmVjdHBhcmFtc190ZXh0JywgJHRoaXMtPmxhbmcoJ3JlZGlyZWN0cGFyYW1zJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigncmVkaXJlY3RwYXJhbXNfaW5wdXQnLAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3JlZGlyZWN0X3BhcmFtcycsIAoJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZGlyZWN0X3BhcmFtcycpLCAzMiwgMTI4LCEkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJywxKSA/ICdkaXNhYmxlZD0iZGlzYWJsZWQiJyA6ICcnKSk7CgkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdldmFsdWF0ZXNtYXJ0eV90ZXh0JywgJHRoaXMtPmxhbmcoJ2V2YWx1YXRlc21hcnR5JykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZXZhbHVhdGVzbWFydHlfaW5wdXQnLAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdldmFsdWF0ZV9zbWFydHknLDApIC4KCQkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZXZhbHVhdGVfc21hcnR5JywgMSwKCQkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdldmFsdWF0ZV9zbWFydHknKSwhJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSkgPyAnZGlzYWJsZWQ9ImRpc2FibGVkIicgOiAnJykpOwoJCQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmV1YWN0aW9uX3RleHQnLCAkdGhpcy0+bGFuZygnc2hvd2xvZ2luZm9ybScpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZldWFjdGlvbl9pbnB1dCcsCgkJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnZmV1X2FjdGlvbicsCgkJCQlhcnJheSgkdGhpcy0+bGFuZygneWVzJyk9PjEsCgkJCQkJJHRoaXMtPmxhbmcoJ25vJyk9PjAsCgkJCQkJJHRoaXMtPmxhbmcoJ2luaGVyaXRfZnJvbV9wYXJlbnQnKT0+LTEpLAoJCQkJMCwkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmV1X2FjdGlvbicsMSksISR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnMnLDEpID8gJ2Rpc2FibGVkPSJkaXNhYmxlZCInIDogJycpKTsKCQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGVfbWVudV9pdGVtX3RleHQnLAoJCQkkdGhpcy0+bGFuZygnaGlkZV9tZW51X2l0ZW0nKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRlX21lbnVfaXRlbV9pbnB1dCcsCgkJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaGlkZV9tZW51X2l0ZW0nLAoJCQkJYXJyYXkoJHRoaXMtPmxhbmcoJ25vJyk9PjAsCgkJCQkJJHRoaXMtPmxhbmcoJ2xvZ2dlZG91dCcpPT4xLAoJCQkJCSR0aGlzLT5sYW5nKCdsb2dnZWRpbicpPT4yLAoJCQkJCSR0aGlzLT5sYW5nKCdpbmhlcml0X2Zyb21fcGFyZW50Jyk9Pi0xKSwKCQkJCTAsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfbWVudV9pdGVtJywwKSwhJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSkgPyAnZGlzYWJsZWQ9ImRpc2FibGVkIicgOiAnJykpOwoJfQoJIy0tLQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfcHJlZnMnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0X3ByZWZzJywKCQlsYW5nKCdzdWJtaXQnKSwnb25jbGljaz0icmV0dXJuIEFkdmFuY2VkQ29udGVudC5zdWJtaXRGb3JtKHRoaXMsXCdBZHZhbmNlZENvbnRlbnRSZXN1bHRcJykiJykpOwoJCgkkdGFic1sncHJlZnMnXVsndGFiY29udGVudCddID0gJHRoaXMtPlN0YXJ0VGFiKCdwcmVmcycpIC4KCQkkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwcmVmc1RhYi50cGwnKSAuCgkJJHRoaXMtPkVuZFRhYigpOwp9CgppZigkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE11bHRpSW5wdXRzJykpCnsKCSR0YWJzWydtdWx0aV9pbnB1dCddWyd0YWJoZWFkZXInXSA9ICR0aGlzLT5TZXRUYWJIZWFkZXIoJ211bHRpX2lucHV0JywKCQkkdGhpcy0+bGFuZygnbXVsdGlfaW5wdXQnKSwKCQkoJGFjdGl2ZV90YWI9PSdtdWx0aV9pbnB1dCc/dHJ1ZTonJykpOwoJCgkkbXVsdGlfaW5wdXRzID0gYXJyYXkoKTsKCWZvcmVhY2goJHRoaXMtPkdldE11bHRpSW5wdXRMaXN0KCkgYXMgJG11bHRpX2lucHV0KQoJewoJCSRtdWx0aV9pbnB1dHNbJG11bHRpX2lucHV0WydpbnB1dF9pZCddXVsnZWRpdF9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0TXVsdGlJbnB1dCcsICRyZXR1cm5pZCwKCQkJY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJycsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2lucHV0X2lkJz0+JG11bHRpX2lucHV0WydpbnB1dF9pZCddKSk7CgkJCgkJJG11bHRpX2lucHV0c1skbXVsdGlfaW5wdXRbJ2lucHV0X2lkJ11dWyduYW1lX2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2VkaXRNdWx0aUlucHV0JywgJHJldHVybmlkLCAkbXVsdGlfaW5wdXRbJ2lucHV0X2lkJ10sIGFycmF5KCdpbnB1dF9pZCc9PiRtdWx0aV9pbnB1dFsnaW5wdXRfaWQnXSkpOwoJCQoJCSRtdWx0aV9pbnB1dHNbJG11bHRpX2lucHV0WydpbnB1dF9pZCddXVsndGVtcGxhdGUnXSA9IHN1YnN0cigkbXVsdGlfaW5wdXRbJ3RwbF9uYW1lJ10sc3RybGVuKCdtdWx0aV9pbnB1dF8nKSk7CgkJCgkJJG11bHRpX2lucHV0c1skbXVsdGlfaW5wdXRbJ2lucHV0X2lkJ11dWydkZWxldGVfbGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVsZXRlTXVsdGlJbnB1dCcsICRyZXR1cm5pZCwKCQkJY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAnJywnJywnJywnc3lzdGVtaWNvbicpLAoJCQlhcnJheSgnaW5wdXRfaWQnPT4kbXVsdGlfaW5wdXRbJ2lucHV0X2lkJ10pLCR0aGlzLT5sYW5nKCdjb25maXJtX2RlbGV0ZScpKTsKCQkKCQkkbXVsdGlfaW5wdXRzWyRtdWx0aV9pbnB1dFsnaW5wdXRfaWQnXV1bJ2NoZWNrYm94J10gPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCgkJCSJtdWx0aV9pbnB1dC0iLiRtdWx0aV9pbnB1dFsnaW5wdXRfaWQnXSwgJG11bHRpX2lucHV0WydpbnB1dF9pZCddLCAnJyk7Cgl9CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NlbGVjdGFsbCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdtdWx0aV9pbnB1dCcsdHJ1ZSxmYWxzZSwgJ2lkPSInLiRpZC4nbXVsdGlfaW5wdXQiIG9uY2xpY2s9IkFkdmFuY2VkQ29udGVudC5zZWxlY3RBbGwodGhpcykiJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtdWx0aV9pbnB1dF9hcnJheScsJG11bHRpX2lucHV0cyk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZF9tdWx0aV9pbnB1dCcsCgkJJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnYWRkTXVsdGlJbnB1dCcsICRyZXR1cm5pZCwKCQkJY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAnJywnJywnJywnc3lzdGVtaWNvbicpIC4KCQkJJyZuYnNwOycgLiAkdGhpcy0+bGFuZygnYWRkX211bHRpX2lucHV0JykpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLAoJCSdkZWxldGVNdWx0aUlucHV0JywgJHJldHVybmlkLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX2Zvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0X2J1bGthY3Rpb24nLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0X2J1bGthY3Rpb24nLCR0aGlzLT5sYW5nKCdkZWxldGVfc2VsZWN0ZWQnKSwnJywnJywkdGhpcy0+bGFuZygnY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnKSkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9pZF90ZXh0JywgJHRoaXMtPmxhbmcoJ2lucHV0X2lkJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV90ZXh0JywgbGFuZygndGVtcGxhdGUnKSk7CgkkdGFic1snbXVsdGlfaW5wdXQnXVsndGFiY29udGVudCddID0gJHRoaXMtPlN0YXJ0VGFiKCdtdWx0aV9pbnB1dCcpIC4KCQkkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdtdWx0aUlucHV0VGFiLnRwbCcpIC4KCQkkdGhpcy0+RW5kVGFiKCk7Cn0KCmlmKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dCBUZW1wbGF0ZXMnKSkKewoJJHRhYnNbJ211bHRpX2lucHV0X3RwbCddWyd0YWJoZWFkZXInXSA9ICR0aGlzLT5TZXRUYWJIZWFkZXIoJ211bHRpX2lucHV0X3RwbCcsCgkJJHRoaXMtPmxhbmcoJ211bHRpX2lucHV0X3RwbCcpLAoJCSgkYWN0aXZlX3RhYj09J211bHRpX2lucHV0X3RwbCc/dHJ1ZTonJykpOwoJCgkkbXVsdGlfaW5wdXRfdHBscyA9IGFycmF5KCk7Cglmb3JlYWNoKCR0aGlzLT5HZXRUZW1wbGF0ZXMoJ211bHRpX2lucHV0JykgYXMgJHRwbCkKCXsKCQkkbXVsdGlfaW5wdXRfdHBsc1skdHBsWyd0cGxfaWQnXV1bJ2VkaXRfbGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdE11bHRpSW5wdXRUcGwnLCAkcmV0dXJuaWQsCgkJCWNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICcnLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCWFycmF5KCd0cGxfaWQnPT4kdHBsWyd0cGxfaWQnXSkpOwoJCQoJCSRtdWx0aV9pbnB1dF90cGxzWyR0cGxbJ3RwbF9pZCddXVsnbmFtZV9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdlZGl0TXVsdGlJbnB1dFRwbCcsICRyZXR1cm5pZCwKCQkJJHRwbFsndHBsX25hbWUnXSwKCQkJYXJyYXkoJ3RwbF9pZCc9PiR0cGxbJ3RwbF9pZCddKSk7CgkJCgkJJG11bHRpX2lucHV0X3RwbHNbJHRwbFsndHBsX2lkJ11dWydkZWxldGVfbGluayddID0gJyZuYnNwOyc7CgkJJG11bHRpX2lucHV0X3RwbHNbJHRwbFsndHBsX2lkJ11dWydjaGVja2JveCddID0gJyZuYnNwJzsKCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9tdWx0aV9pbnB1dF90cGwnLCdtdWx0aV9pbnB1dF9TYW1wbGVUZW1wbGF0ZScpICE9ICR0cGxbJ3RwbF9pZCddICYmICEkdHBsWydpc191c2VkJ10pCgkJewoJCQkkbXVsdGlfaW5wdXRfdHBsc1skdHBsWyd0cGxfaWQnXV1bJ2RlbGV0ZV9saW5rJ10gPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsCgkJCQknZGVsZXRlTXVsdGlJbnB1dFRwbCcsICRyZXR1cm5pZCwgY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAnJywnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJYXJyYXkoJ3RwbF9pZCc9PiR0cGxbJ3RwbF9pZCddKSwkdGhpcy0+bGFuZygnY29uZmlybV9kZWxldGUnKSk7CgkJCSRtdWx0aV9pbnB1dF90cGxzWyR0cGxbJ3RwbF9pZCddXVsnY2hlY2tib3gnXSA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwKCQkJCSJtdWx0aV9pbnB1dF90cGwtIi4kdHBsWyd0cGxfaWQnXSwgJHRwbFsndHBsX2lkJ10sICcnKTsKCQl9CgkJCgkJaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfbXVsdGlfaW5wdXRfdHBsJywnbXVsdGlfaW5wdXRfU2FtcGxlVGVtcGxhdGUnKSAhPSAkdHBsWyd0cGxfaWQnXSkKCQl7CgkJCSRtdWx0aV9pbnB1dF90cGxzWyR0cGxbJ3RwbF9pZCddXVsnc2V0X2RlZmF1bHRfbGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnc2F2ZVByZWZzJywgJHJldHVybmlkLAoJCQkJY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsICcnLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCQlhcnJheSgnc2V0X2RlZmF1bHQnPT4nbXVsdGlfaW5wdXQnLCd0cGxfaWQnPT4kdHBsWyd0cGxfaWQnXSwnYWN0aXZlX3RhYic9PidtdWx0aV9pbnB1dF90cGwnKSk7CgkJfQoJCWVsc2UKCQl7CgkJCSRtdWx0aV9pbnB1dF90cGxzWyR0cGxbJ3RwbF9pZCddXVsnc2V0X2RlZmF1bHRfbGluayddID0gY21zbXMoKS0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywgJycsJycsJycsJ3N5c3RlbWljb24nKTsKCQl9CgkJCgl9CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NlbGVjdGFsbCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdtdWx0aV9pbnB1dF90cGwnLHRydWUsZmFsc2UsICdpZD0iJy4kaWQuJ211bHRpX2lucHV0X3RwbCIgb25jbGljaz0iQWR2YW5jZWRDb250ZW50LnNlbGVjdEFsbCh0aGlzKSInKSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ211bHRpX2lucHV0X3RwbF9hcnJheScsJG11bHRpX2lucHV0X3RwbHMpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRfbXVsdGlfaW5wdXRfdHBsJywKCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRNdWx0aUlucHV0VHBsJywgJHJldHVybmlkLAoJCQljbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICcnLCcnLCcnLCdzeXN0ZW1pY29uJykgLgoJCQknJm5ic3A7JyAuICR0aGlzLT5sYW5nKCdhZGRfbXVsdGlfaW5wdXRfdHBsJykpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfYnVsa2FjdGlvbicsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXRfYnVsa2FjdGlvbicsJHRoaXMtPmxhbmcoJ2RlbGV0ZV9zZWxlY3RlZCcpLCcnLCcnLCR0aGlzLT5sYW5nKCdjb25maXJtX2RlbGV0ZV9zZWxlY3RlZCcpKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlX25hbWVfdGV4dCcsIGxhbmcoJ3RlbXBsYXRlJykpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwKCQknZGVsZXRlTXVsdGlJbnB1dFRwbCcsICRyZXR1cm5pZCwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgkKCSR0YWJzWydtdWx0aV9pbnB1dF90cGwnXVsndGFiY29udGVudCddID0gJHRoaXMtPlN0YXJ0VGFiKCdtdWx0aV9pbnB1dF90cGwnKSAuCgkJJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbXVsdGlJbnB1dFRwbFRhYi50cGwnKSAuCgkJJHRoaXMtPkVuZFRhYigpOwp9CgokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCd0YWJzJywkdGFicyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfdGFiaGVhZGVycycsJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiaGVhZGVycycsJHRoaXMtPkVuZFRhYkhlYWRlcnMoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfdGFiY29udGVudCcsJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRfdGFiY29udGVudCcsJHRoaXMtPkVuZFRhYkNvbnRlbnQoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3RhYicsJHRoaXMtPkVuZFRhYigpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVJZCcsICRpZCk7CgppZihpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pKQp7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCAkdGhpcy0+bGFuZygkcGFyYW1zWydtZXNzYWdlJ10sIChpc3NldCgkcGFyYW1zWydvbGRfdHlwZSddKSAmJiBpc3NldCgkcGFyYW1zWyduZXdfdHlwZSddKSA/ICR0aGlzLT5sYW5nKCRwYXJhbXNbJ29sZF90eXBlJ10pIC4gJywnIC4gJHRoaXMtPmxhbmcoJHBhcmFtc1snbmV3X3R5cGUnXSkgOiAnJykpKTsKfQoKaWYoaXNzZXQoJHBhcmFtc1snZXJyb3JtZXNzYWdlJ10pKQp7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9ybWVzc2FnZScsICR0aGlzLT5sYW5nKCRwYXJhbXNbJ2Vycm9ybWVzc2FnZSddLCAoaXNzZXQoJHBhcmFtc1snb2xkX3R5cGUnXSkgJiYgaXNzZXQoJHBhcmFtc1snbmV3X3R5cGUnXSkgPyAkdGhpcy0+bGFuZygkcGFyYW1zWydvbGRfdHlwZSddKSAuICcsJyAuICR0aGlzLT5sYW5nKCRwYXJhbXNbJ25ld190eXBlJ10pIDogJycpKSk7Cn0KCmVjaG8gJHRoaXMtPl9wcCAuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2RlZmF1bHRhZG1pbi50cGwnKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editMultiInput.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLwojICAgICAgICAgIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBWZXJzaW9uOiAwLjgKIyBGaWxlICAgOiBhY3Rpb24uZWRpdE11bHRpSW5wdXQucGhwCiMgUHVycG9zZTogZWRpdHMgYSBtdWx0aSBpbnB1dCBibG9ja3R5cGUKIyBMaWNlbnNlOiBHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkgZXhpdDsKCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE11bHRpSW5wdXRzJykpCnsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfcGVybWlzc2lvbnMnKSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKewoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInPT4nbXVsdGlfaW5wdXQnKSk7Cn0KCiRlcnJvciA9IGZhbHNlOwokZXJyb3JtZXNzYWdlID0gJyc7CgokaW5wdXRfaWQgPSAnJzsKaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfaWQnXSkgJiYgIWVtcHR5KCRwYXJhbXNbJ2lucHV0X2lkJ10pKQp7CgkkaW5wdXRfaWQgPSBwcmVnX3JlcGxhY2UoJy8tKy8nLCdfJyxtdW5nZV9zdHJpbmdfdG9fdXJsKHRyaW0oJHBhcmFtc1snaW5wdXRfaWQnXSkpKTsKfQoKJG11bHRpX2lucHV0ID0gJHRoaXMtPkdldE11bHRpSW5wdXRGdWxsKCRpbnB1dF9pZCk7CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF9maWVsZHMnXSkpCnsKCSRtdWx0aV9pbnB1dFskaW5wdXRfaWRdWydpbnB1dF9maWVsZHMnXSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfZmllbGRzJ10pOwp9CgppZihpc3NldCgkcGFyYW1zWydpbnB1dF90cGwnXSkpCnsKCSRtdWx0aV9pbnB1dFskaW5wdXRfaWRdWyd0cGxfbmFtZSddID0gJHBhcmFtc1snaW5wdXRfdHBsJ107Cn0KCiMjIyBkbyBhY3Rpb24gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgppZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgJiYgJHBhcmFtc1snc3VibWl0J109PXRydWUpCnsKCWlmKCRpbnB1dF9pZCA9PSAnJykKCXsKCQkkZXJyb3IgPSB0cnVlOwoJCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX2lucHV0X2lkJykuJzxiciAvPic7Cgl9CglpZigkbXVsdGlfaW5wdXRbJGlucHV0X2lkXVsnaW5wdXRfZmllbGRzJ10gPT0gJycpCgl7CgkJJGVycm9yID0gdHJ1ZTsKCQkkZXJyb3JtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdlcnJvcl9pbnB1dF9maWVsZHMnKS4nPGJyIC8+JzsKCX0KCglpZigkZXJyb3I9PWZhbHNlKQoJewoJCWlmKCEkdGhpcy0+VXBkYXRlTXVsdGlJbnB1dCgkaW5wdXRfaWQsJG11bHRpX2lucHV0WyRpbnB1dF9pZF1bJ2lucHV0X2ZpZWxkcyddKSkKCQl7CgkJCSRlcnJvciA9IHRydWU7CgkJCSRlcnJvcm1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ2Vycm9yX3VwZGF0aW5nX211bHRpX2lucHV0JykuJzxiciAvPic7CgkJfQoJCWVsc2UgaWYoISR0aGlzLT5VcGRhdGVUcGxBc3NvYygnbXVsdGlfaW5wdXQnLCRpbnB1dF9pZCwkbXVsdGlfaW5wdXRbJGlucHV0X2lkXVsndHBsX25hbWUnXSkpCgkJewoJCQkkZXJyb3IgPSB0cnVlOwoJCQkkZXJyb3JtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdlcnJvcl91cGRhdGluZ19tdWx0aV9pbnB1dF9hc3NvY3MnKS4nPGJyIC8+JzsKCQl9CgkJZWxzZQoJCXsKCQkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ21lc3NhZ2UnPT4nbXVsdGlfaW5wdXRfdXBkYXRlZCcsCgkJCQknYWN0aXZlX3RhYic9PidtdWx0aV9pbnB1dCcsJ3N1Ym1pdCc9PnRydWUpKTsKCQl9Cgl9Cgp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBzbWFydHkgc3R1ZmYKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgknZWRpdE11bHRpSW5wdXQnLCAkcmV0dXJuaWQsJ3Bvc3QnLCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbmRfZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOyR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsCglsYW5nKCdzdWJtaXQnKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbCcsCgkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdjYW5jZWwnLGxhbmcoJ2NhbmNlbCcpKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2lkX3RleHQnLCR0aGlzLT5sYW5nKCdpbnB1dF9pZCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9pZF9pbnB1dCcsJGlucHV0X2lkKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfdHBsX3RleHQnLCR0aGlzLT5sYW5nKCdtdWx0aV9pbnB1dF90cGwnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfdHBsX2lucHV0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdpbnB1dF90cGwnLCAkdGhpcy0+R2V0VHBsTGlzdCgnbXVsdGlfaW5wdXQnKSwgJycsICRtdWx0aV9pbnB1dFskaW5wdXRfaWRdWyd0cGxfbmFtZSddKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpZWxkc190ZXh0JywkdGhpcy0+bGFuZygnaW5wdXRfZmllbGRzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpZWxkc19pbnB1dCcsCgkkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLCRtdWx0aV9pbnB1dFskaW5wdXRfaWRdWydpbnB1dF9maWVsZHMnXSwnaW5wdXRfZmllbGRzJywnJywnaW5wdXRfZmllbGRzJykuCgkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnaW5wdXRfaWQnLCRpbnB1dF9pZCkpOwoKaWYoJGVycm9ybWVzc2FnZSE9JycpCnsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3JtZXNzYWdlJywkZXJyb3JtZXNzYWdlKTsKfQoKIyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+X3BwLiR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2FkZE11bHRpSW5wdXQudHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.editMultiInputTpl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLwojICAgICAgICAgIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBWZXJzaW9uOiAwLjgKIyBGaWxlICAgOiBhY3Rpb24uYWRkTXVsdGlJbnB1dFRwbC5waHAKIyBQdXJwb3NlOiBlZGl0cyBhIHRlbXBsYXRlIGZvciBtdWx0aSBpbnB1dCBibG9ja3R5cGUKIyBMaWNlbnNlOiBHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoIWlzX29iamVjdChjbXNtcygpKSkgZXhpdDsKCmlmKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE11bHRpSW5wdXQgVGVtcGxhdGVzJykpCnsKCXJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZXJyb3JfcGVybWlzc2lvbnMnKSk7Cn0KCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSkKewoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ2FjdGl2ZV90YWInPT4nbXVsdGlfaW5wdXRfdHBsJykpOwp9CgokZXJyb3IgPSBmYWxzZTsKJGVycm9ybWVzc2FnZSA9ICcnOwoKaWYoIWlzc2V0KCRwYXJhbXNbJ3RwbF9pZCddKSkKewoJcmV0dXJuICR0aGlzLT5sYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRfcGFyYW1zJywndHBsX2lkJyk7Cn0KCiR0cGxfaWQgPSAkcGFyYW1zWyd0cGxfaWQnXTsKCiR0ZW1wbGF0ZSA9ICcnOwppZihpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSkKewoJJHRlbXBsYXRlID0gdHJpbSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKfQplbHNlCnsKCSR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgkdHBsX2lkKTsKfQoKIyMjIGRvIGFjdGlvbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCmlmKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSAmJiAkcGFyYW1zWydzdWJtaXQnXT09dHJ1ZSkKewoJaWYoJHRlbXBsYXRlID09ICcnKQoJewoJCSRlcnJvciA9IHRydWU7CgkJJGVycm9ybWVzc2FnZSAuPSAkdGhpcy0+bGFuZygnZXJyb3JfdGVtcGxhdGUnKS4nPGJyIC8+JzsKCX0KCWlmKCRlcnJvcj09ZmFsc2UpCgl7CgkJJHRoaXMtPlNldFRlbXBsYXRlKCR0cGxfaWQsICR0ZW1wbGF0ZSk7CgkJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ21lc3NhZ2UnPT4nbXVsdGlfaW5wdXRfdHBsX3VwZGF0ZWQnLAoJCQknYWN0aXZlX3RhYic9PidtdWx0aV9pbnB1dF90cGwnLCdzdWJtaXQnPT50cnVlKSk7Cgl9Cn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIHNtYXJ0eSBzdHVmZgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwKCSdlZGl0TXVsdGlJbnB1dFRwbCcsICRyZXR1cm5pZCwncG9zdCcsJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7JHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywKCWxhbmcoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywKCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsbGFuZygnY2FuY2VsJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbigndHBsX25hbWVfdGV4dCcsJHRoaXMtPmxhbmcoJ3RwbF9uYW1lJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RwbF9uYW1lX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3RwbF9pZCcsICR0cGxfaWQpIC4gc3Vic3RyKCR0cGxfaWQsc3RybGVuKCdtdWx0aV9pbnB1dF8nKSksIDY0LCAxMjgpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV90ZXh0JyxsYW5nKCd0ZW1wbGF0ZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9pbnB1dCcsCgkkdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsJGlkLCR0ZW1wbGF0ZSwndGVtcGxhdGUnLCcnLCd0ZW1wbGF0ZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoZWxwX3RleHQnLCR0aGlzLT5sYW5nKCdoZWxwX3RwbF92YXJzJykpOwppZigkZXJyb3JtZXNzYWdlIT0nJykKewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcm1lc3NhZ2UnLCRlcnJvcm1lc3NhZ2UpOwp9CgojIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQplY2hvICR0aGlzLT5fcHAuJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRkTXVsdGlJbnB1dFRwbC50cGwnKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.savePrefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBkZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvCiMgICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGNtc21hZGVzaW1wbGUub3JnCiMgVmVyc2lvbjogMC44CiMgRmlsZSAgIDogYWN0aW9uLnNhdmVQcmVmcy5waHAKIyBQdXJwb3NlOiBzYXZlcyB0aGUgcHJlZmVyZW5jZXMgaW4gdGhlIGRhdGFiYXNlCiMgTGljZW5zZTogR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgppZihpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgfHwgaXNzZXQoJHBhcmFtc1snc3VibWl0X3ByZWZzJ10pKQp7CglpZihpc3NldCgkcGFyYW1zWyd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnMnXSkpCgl7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsICRwYXJhbXNbJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucyddKTsKCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ3VuaW5zdGFsbF9hY3Rpb24nXSkpCgl7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VuaW5zdGFsbF9hY3Rpb24nLCAkcGFyYW1zWyd1bmluc3RhbGxfYWN0aW9uJ10pOwoJfQoJaWYoaXNzZXQoJHBhcmFtc1snYmxvY2tfZGlzcGxheV9zZXR0aW5ncyddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYmxvY2tfZGlzcGxheV9zZXR0aW5ncycsICRwYXJhbXNbJ2Jsb2NrX2Rpc3BsYXlfc2V0dGluZ3MnXSk7Cgl9CglpZihpc3NldCgkcGFyYW1zWydjb2xsYXBzZV9ibG9ja19kZWZhdWx0J10pKQoJewoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjb2xsYXBzZV9ibG9ja19kZWZhdWx0JywgJHBhcmFtc1snY29sbGFwc2VfYmxvY2tfZGVmYXVsdCddKTsKCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2VfZGlzcGxheV9zZXR0aW5ncyddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWVzc2FnZV9kaXNwbGF5X3NldHRpbmdzJywgJHBhcmFtc1snbWVzc2FnZV9kaXNwbGF5X3NldHRpbmdzJ10pOwoJfQoJaWYoaXNzZXQoJHBhcmFtc1snZ3JvdXBfZGlzcGxheV9zZXR0aW5ncyddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZ3JvdXBfZGlzcGxheV9zZXR0aW5ncycsICRwYXJhbXNbJ2dyb3VwX2Rpc3BsYXlfc2V0dGluZ3MnXSk7Cgl9CglpZihpc3NldCgkcGFyYW1zWydjb2xsYXBzZV9ncm91cF9kZWZhdWx0J10pKQoJewoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjb2xsYXBzZV9ncm91cF9kZWZhdWx0JywgJHBhcmFtc1snY29sbGFwc2VfZ3JvdXBfZGVmYXVsdCddKTsKCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ3VzZV9leHBpcmVfZGF0ZSddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgndXNlX2V4cGlyZV9kYXRlJywgJHBhcmFtc1sndXNlX2V4cGlyZV9kYXRlJ10pOwoJfQoJaWYoaXNzZXQoJHBhcmFtc1snc3RhcnRfZGF0ZV8xJ10pKQoJewoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzdGFydF9kYXRlJywgaW50dmFsKCRwYXJhbXNbJ3N0YXJ0X2RhdGVfMSddKSAuICcgJyAuICRwYXJhbXNbJ3N0YXJ0X2RhdGVfMiddKTsKCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ2VuZF9kYXRlXzEnXSkpCgl7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuZF9kYXRlJywgaW50dmFsKCRwYXJhbXNbJ2VuZF9kYXRlXzEnXSkgLiAnICcgLiAkcGFyYW1zWydlbmRfZGF0ZV8yJ10pOwoJfQoJaWYoaXNzZXQoJHBhcmFtc1snZmV1X2FjY2VzcyddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmV1X2FjY2VzcycsIGltcGxvZGUoJywnLCR0aGlzLT5DbGVhbkFycmF5KCRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSkpKTsKCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ3JlZGlyZWN0X3BhZ2UnXSkpCgl7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlZGlyZWN0X3BhZ2UnLCAkcGFyYW1zWydyZWRpcmVjdF9wYWdlJ10pOwoJfQoJaWYoaXNzZXQoJHBhcmFtc1snaW5oZXJpdF9yZWRpcmVjdF9wYXJhbXMnXSkpCgl7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2luaGVyaXRfcmVkaXJlY3RfcGFyYW1zJywgJHBhcmFtc1snaW5oZXJpdF9yZWRpcmVjdF9wYXJhbXMnXSk7Cgl9CglpZihpc3NldCgkcGFyYW1zWydyZWRpcmVjdF9wYXJhbXMnXSkpCgl7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3JlZGlyZWN0X3BhcmFtcycsICRwYXJhbXNbJ3JlZGlyZWN0X3BhcmFtcyddKTsKCX0KCWlmKGlzc2V0KCRwYXJhbXNbJ2V2YWx1YXRlX3NtYXJ0eSddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZXZhbHVhdGVfc21hcnR5JywgJHBhcmFtc1snZXZhbHVhdGVfc21hcnR5J10pOwoJfQoJaWYoaXNzZXQoJHBhcmFtc1snZmV1X2FjdGlvbiddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmV1X2FjdGlvbicsICRwYXJhbXNbJ2ZldV9hY3Rpb24nXSk7Cgl9CglpZihpc3NldCgkcGFyYW1zWydoaWRlX21lbnVfaXRlbSddKSkKCXsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaGlkZV9tZW51X2l0ZW0nLCAkcGFyYW1zWydoaWRlX21lbnVfaXRlbSddKTsKCX0KfQppZihpc3NldCgkcGFyYW1zWydpdGVtX3R5cGUnXSkgJiYgaXNzZXQoJHBhcmFtc1snaXRlbV9kaXNwbGF5J10pKQp7CgkkdGhpcy0+U2V0SXRlbURpc3BsYXkoJHBhcmFtc1snaXRlbV90eXBlJ10sICRwYXJhbXNbJ2l0ZW1faWQnXSwgJHBhcmFtc1snY29udGVudF9pZCddLCAkcGFyYW1zWyd0ZW1wbGF0ZV9pZCddLCAkcGFyYW1zWydpdGVtX2Rpc3BsYXknXSk7Cn0KaWYoaXNzZXQoJHBhcmFtc1snc2V0X2RlZmF1bHQnXSkpCnsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0XycuJHBhcmFtc1snc2V0X2RlZmF1bHQnXS4nX3RwbCcsICRwYXJhbXNbJ3RwbF9pZCddKTsKfQppZihpc3NldCgkcGFyYW1zWydhamF4J10pKQp7CgllY2hvICc8ZGl2IGNsYXNzPSJwYWdlbWNvbnRhaW5lciI+PHAgY2xhc3M9InBhZ2VtZXNzYWdlIj4nLiR0aGlzLT5sYW5nKCdwcmVmc3VwZGF0ZWQnKS4nPC9wPjwvZGl2Pic7CglleGl0Owp9CmVsc2UKewoJJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCwgYXJyYXkoJ21lc3NhZ2UnID0+ICdwcmVmc3VwZGF0ZWQnLCAnc3VibWl0JyA9PiB0cnVlKSk7Cn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/AdvancedContent.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBkZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvCiMgICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGNtc21hZGVzaW1wbGUub3JnCiMgVmVyc2lvbjogMC44CiMgRmlsZSAgIDogQWR2YW5jZWRDb250ZW50Lm1vZHVsZS5waHAKIyBQdXJwb3NlOiBpbml0aWFsIG1vZHVsZSBjbGFzcy4KIyBMaWNlbnNlOiBHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY2xhc3MgQWR2YW5jZWRDb250ZW50IGV4dGVuZHMgQ01TTW9kdWxlCnsKCS8qKgoJICogQGFjY2VzcyBwcml2YXRlCgkgKiBAdmFyIGFycmF5CgkgKi8KCXByaXZhdGUgJF9kaXNwbGF5U2V0dGluZ3MgPSBhcnJheSgpOwoJcHJpdmF0ZSAkX2ZldUdyb3VwcyAgICAgICA9IGZhbHNlOwoJcHJvdGVjdGVkICRfcHAgPSAnPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQiPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iX3MteGNsaWNrIiAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iRkEyRDNGUExTVEFLSiIgLz4KPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fR0IvaS9idG4vYnRuX2RvbmF0ZV9MRy5naWYiIGJvcmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdheSB0byBwYXkgb25saW5lLiIgLz4KPGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBzcmM9Imh0dHBzOi8vd3d3LnBheXBhbC5jb20vZGVfREUvaS9zY3IvcGl4ZWwuZ2lmIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiAvPgo8L2Zvcm0+PC9kaXY+JzsKCgl2YXIgJF9pbmhlcml0YWJsZXMgPSBhcnJheSggMCA9PiBhcnJheSgKCQkJJ2ZldV9hY2Nlc3MnICAgICA9Pi0xLAoJCQkncmVkaXJlY3RfcGFnZScgID0+LTEsCgkJCSdyZWRpcmVjdF9wYXJhbXMnPT4tMSwKCQkJJ2V2YWx1YXRlX3NtYXJ0eSc9Pi0xLAoJCQknZmV1X2FjdGlvbicgICAgID0+LTEsCgkJCSdzdGFydF9kYXRlJyAgICAgPT4tMSwKCQkJJ2VuZF9kYXRlJyAgICAgICA9Pi0xLAoJCQknaGlkZV9tZW51X2l0ZW0nID0+LTEsCgkJCSd1c2VfZXhwaXJlX2RhdGUnPT4tMSkpOwoJCgkjdmFyICRfbG9hZGVkUHJvcHMgPSBhcnJheSgpOwoJCglmdW5jdGlvbiBBZHZhbmNlZENvbnRlbnQoKQoJewoJCXBhcmVudDo6Q01TTW9kdWxlKCk7CgkJJHRoaXMtPlJlZ2lzdGVyQ29udGVudFR5cGUoJ0NvbnRlbnQyJywgZGlybmFtZShfX0ZJTEVfXykgLgoJCQlESVJFQ1RPUllfU0VQQVJBVE9SIC4gJ2NvbnRlbnR0eXBlLkNvbnRlbnQyLnBocCcsICR0aGlzLT5sYW5nKCdBZHZhbmNlZENvbnRlbnQnKSk7CgkJI2dsb2JhbCAkY29uZmlnOwoJCSMkdGhpcy0+c21hcnR5LT5wbHVnaW5zX2RpcltdID0gJGNvbmZpZ1sicm9vdF9wYXRoIl0uJy9tb2R1bGVzL0FkdmFuY2VkQ29udGVudC9wbHVnaW5zJzsKCX0KCQoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdBZHZhbmNlZENvbnRlbnQnOwoJfQoJCglmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnQWR2YW5jZWRDb250ZW50Jyk7Cgl9CgkKCWZ1bmN0aW9uIEdldFZlcnNpb24oKQoJewoJCXJldHVybiAnMC44JzsKCX0KCQoJZnVuY3Rpb24gR2V0SGVscCgpCgl7CgkJJHBhdGggPSBkaXJuYW1lKF9fRklMRV9fKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnZG9jJyAuIERJUkVDVE9SWV9TRVBBUkFUT1I7CgkJaWYoZmlsZV9leGlzdHMoJHBhdGggLiAnaGVscF8nIC4gJHRoaXMtPmN1cmxhbmcgLiAnLmh0bWwnKSkKCQl7CgkJCXJldHVybiAkdGhpcy0+X3BwIC4gZmlsZV9nZXRfY29udGVudHMoJHBhdGggLiAnaGVscF8nIC4gJHRoaXMtPmN1cmxhbmcgLiAnLmh0bWwnKTsKCQl9CgkJcmV0dXJuICR0aGlzLT5fcHAgLiBmaWxlX2dldF9jb250ZW50cygkcGF0aCAuICdoZWxwX2VuX1VTLmh0bWwnKTsKCX0KCQoJZnVuY3Rpb24gR2V0QXV0aG9yKCkKCXsKCQlyZXR1cm4gJ0dlb3JnIEJ1c2NoIChOYU4pJzsKCX0KCQoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJewoJCXJldHVybjsKCX0KCQoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKCXsKCQlyZXR1cm4gJHRoaXMtPl9wcCAuIGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdkb2MnIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICdjaGFuZ2Vsb2cuaHRtbCcpOwoJfQoJCglmdW5jdGlvbiBIYXNDb250ZW50VHlwZSgpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgkKCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCQoJZnVuY3Rpb24gSGFzQWRtaW4oKQoJewoJCXJldHVybiB0cnVlOwoJfQoJCglmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQoJewoJCXJldHVybiAnZXh0ZW5zaW9ucyc7Cgl9CgkKCWZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKQoJewoJCXJldHVybiAkdGhpcy0+bGFuZygnYWRtaW5kZXNjcmlwdGlvbicpOwoJfQoJCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewoJCXJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IFByZWZlcmVuY2VzJykgfHwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCBNdWx0aUlucHV0cycpIHx8ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dCBUZW1wbGF0ZXMnKTsKCX0KCQoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAiMS45LjQuMSI7Cgl9CgkKCWZ1bmN0aW9uIE1heGltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gIjEuOTkiOwoJfQoJCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnLCAkdGhpcy0+R2V0VmVyc2lvbigpKTsKCX0KCQoJZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcsICR0aGlzLT5HZXRWZXJzaW9uKCkpOwoJfQoJCglmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2NvbmZpcm11bmluc3RhbGwnLCR0aGlzLT5sYW5nKCd3YXJuaW5ndW5pbnN0YWxsJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgndW5pbnN0YWxsX2FjdGlvbicpKSk7Cgl9CgkKCWZ1bmN0aW9uIEhhbmRsZXNFdmVudHMoKQoJewoJCXJldHVybiB0cnVlOwoJfQoJCglmdW5jdGlvbiBEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCA9ICcnKQoJewoJCXN3aXRjaCgkYWN0aW9uKSB7CgkJCS8qCgkJCWNhc2UgJ2Rpc3BsYXlDb250ZW50QmxvY2snOgoJCQkJI1RvRG86IGNyZWF0ZSB0aGUgY29udGVudCBibG9jayBmb3JtIHZpYSBwaHAgb3IganM/CgkJCQkjJGNvbnRlbnRvcHMgPSYgY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCQkJCSMkY29udGVudG9iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkcGFyYW1zWydjb250ZW50X2lkJ10pOwoJCQkJJGNvbnRlbnRvYmogPSB1bnNlcmlhbGl6ZShiYXNlNjRfZGVjb2RlKCRwYXJhbXNbInNlcmlhbGl6ZWRfY29udGVudCJdKSk7CgkJCQlAb2JfZW5kX2NsZWFuKCk7CgkJCQlAb2Jfc3RhcnQoKTsKCQkJCWVjaG8gJGNvbnRlbnRvYmotPmRpc3BsYXlfY29udGVudF9ibG9jaygkcGFyYW1zWydibG9ja19pbmZvJ10sY21zX2h0bWxlbnRpdGllcygkcGFyYW1zWydibG9ja19pbmZvJ11bJ2NvbnRlbnQnXSwgRU5UX05PUVVPVEVTLCBnZXRfZW5jb2RpbmcoJycpKSwkcGFyYW1zWydhZGRpbmcnXSk7CgkJCQlvYl9lbmRfZmx1c2goKTsKCQkJCWV4aXQ7CgkJCSovCgkJCWNhc2UgJ2ltcG9ydHBhZ2VzJzoKCQkJCQoJCQkJaWYoaXNzZXQoJHBhcmFtc1snb2xkX3R5cGUnXSkgJiYgaXNzZXQoJHBhcmFtc1snbmV3X3R5cGUnXSkKCQkJCSYmICRwYXJhbXNbJ29sZF90eXBlJ10gIT0gJycgJiYgJHBhcmFtc1snbmV3X3R5cGUnXSAhPSAnJwoJCQkJJiYgJHBhcmFtc1snbmV3X3R5cGUnXSAhPSAkcGFyYW1zWydvbGRfdHlwZSddCgkJCQkmJiAoJHBhcmFtc1snbmV3X3R5cGUnXSA9PSAnY29udGVudCcgfHwgJHBhcmFtc1snbmV3X3R5cGUnXSA9PSAnY29udGVudDInKQoJCQkJJiYgKCRwYXJhbXNbJ29sZF90eXBlJ10gPT0gJ2NvbnRlbnQnIHx8ICRwYXJhbXNbJ29sZF90eXBlJ10gPT0gJ2NvbnRlbnQyJykpCgkJCQl7CgkJCQkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCQkJCSRxdWVyeSAgICA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnQgU0VUIHR5cGUgPSA/IFdIRVJFIHR5cGUgPSA/IjsKCQkJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWyduZXdfdHlwZSddLCRwYXJhbXNbJ29sZF90eXBlJ10pKTsKCQkJCQlpZigkZGJyZXN1bHQpCgkJCQkJewoJCQkJCQkkbWVzc2FnZSA9ICR0aGlzLT5sYW5nKCdzdWNjZXNzX2ltcG9ydHBhZ2VzJywkdGhpcy0+bGFuZygkcGFyYW1zWydvbGRfdHlwZSddKSwgJHRoaXMtPmxhbmcoJHBhcmFtc1snbmV3X3R5cGUnXSkpOwoJCQkJCQkkX3BhcmFtcyAgPSBhcnJheSgKCQkJCQkJCSduZXdfdHlwZScgPT4gJHBhcmFtc1snbmV3X3R5cGUnXSwKCQkJCQkJCSdvbGRfdHlwZScgPT4gJHBhcmFtc1snb2xkX3R5cGUnXSwKCQkJCQkJCSdtZXNzYWdlJyAgPT4gJ3N1Y2Nlc3NfaW1wb3J0cGFnZXMnKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJJF9wYXJhbXMgPSBhcnJheSgKCQkJCQkJCSduZXdfdHlwZScgICAgID0+ICRwYXJhbXNbJ25ld190eXBlJ10sCgkJCQkJCQknb2xkX3R5cGUnICAgICA9PiAkcGFyYW1zWydvbGRfdHlwZSddLAoJCQkJCQkJJ2Vycm9ybWVzc2FnZScgPT4gJ2Vycm9yX2ltcG9ydHBhZ2VzJyk7CgkJCQkJCSRlcnJvcm1lc3NhZ2UgPSAkdGhpcy0+bGFuZygnZXJyb3JfaW1wb3J0cGFnZXMnLCR0aGlzLT5sYW5nKCRwYXJhbXNbJ29sZF90eXBlJ10pLCAkdGhpcy0+bGFuZygkcGFyYW1zWyduZXdfdHlwZSddKSk7CgkJCQkJfQoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRfcGFyYW1zICAgICAgPSBhcnJheSgnZXJyb3JtZXNzYWdlJyA9PiAnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CgkJCQkJJGVycm9ybWVzc2FnZSA9ICR0aGlzLT5sYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnLCAnbmV3X3R5cGUsIG9sZF90eXBlJyk7CgkJCQl9CgkJCQkKCQkJCWlmKGlzc2V0KCRwYXJhbXNbJ2FqYXgnXSkpCgkJCQl7CgkJCQkJQG9iX2VuZF9jbGVhbigpOwoJCQkJCUBvYl9zdGFydCgpOwoJCQkJCWlmKGlzc2V0KCRlcnJvcm1lc3NhZ2UpKQoJCQkJCXsKCQkJCQkJZWNobyAnPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj48dWwgY2xhc3M9InBhZ2VlcnJvciI+PGxpPicuICRlcnJvcm1lc3NhZ2UgLiAnPC9saT48L3VsPjwvZGl2Pic7CgkJCQkJfQoJCQkJCWlmKGlzc2V0KCRtZXNzYWdlKSkKCQkJCQl7CgkJCQkJCWVjaG8gJzxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPicuJG1lc3NhZ2UuJzwvcD48L2Rpdj4nOwoJCQkJCX0KCQkJCQlvYl9lbmRfZmx1c2goKTsKCQkJCQlleGl0OwoJCQkJfQoJCQkJJF9wYXJhbXNbJ3N1Ym1pdCddID0gdHJ1ZTsKCQkJCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAkcmV0dXJuaWQsICRfcGFyYW1zKTsKCQkJCWJyZWFrOwoJCQkKCQkJY2FzZSAnZGVsZXRlTXVsdGlJbnB1dCc6CgkJCQkkaXRlbXMgICAgICAgID0gYXJyYXkoKTsKCQkJCSRfcGFyYW1zICAgICAgPSBhcnJheSgpOwoJCQkJJG1lc3NhZ2UgICAgICA9ICcnOwoJCQkJJGVycm9ybWVzc2FnZSA9ICcnOwoJCQkJaWYoaXNzZXQoJHBhcmFtc1snaW5wdXRfaWQnXSkpCgkJCQl7CgkJCQkJJGl0ZW1zW10gPSAkcGFyYW1zWydpbnB1dF9pZCddOwoJCQkJfQoJCQkJZWxzZSBpZihpc3NldCgkcGFyYW1zWydzdWJtaXRfYnVsa2FjdGlvbiddKSkKCQkJCXsKCQkJCQlmb3JlYWNoKCRwYXJhbXMgYXMgJHBhcmFtX25hbWUgPT4gJHBhcmFtX3ZhbHVlKQoJCQkJCXsKCQkJCQkJaWYoc3RhcnRzd2l0aCgkcGFyYW1fbmFtZSwnbXVsdGlfaW5wdXQtJykpCgkJCQkJCXsKCQkJCQkJCSRpdGVtc1tdID0gJHBhcmFtX3ZhbHVlOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJaWYoJHRoaXMtPkRlbGV0ZU11bHRpSW5wdXQoJGl0ZW1zKSkKCQkJCXsKCQkJCQkkX3BhcmFtc1snbWVzc2FnZSddID0gJ211bHRpX2lucHV0X2RlbGV0ZWQnOwoJCQkJCSRtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdtdWx0aV9pbnB1dF9kZWxldGVkJykgLiAiPGJyIC8+IjsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkX3BhcmFtc1snZXJyb3JtZXNzYWdlJ10gPSAnZXJyb3JfZGVsZXRlX211bHRpX2lucHV0JzsKCQkJCQkkZXJyb3JtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdlcnJvcl9kZWxldGVfbXVsdGlfaW5wdXQnKSAuICI8YnIgLz4iOwoJCQkJfQoJCQkJaWYoISR0aGlzLT5EZWxldGVUcGxBc3NvYygnbXVsdGlfaW5wdXQnLCRpdGVtcykpCgkJCQl7CgkJCQkJJF9wYXJhbXNbJ21lc3NhZ2UnXSA9ICdlcnJvcl9kZWxldGVfbXVsdGlfaW5wdXRfdHBsX2Fzc29jcyc7CgkJCQkJJGVycm9ybWVzc2FnZSAuPSAkdGhpcy0+bGFuZygnZXJyb3JfZGVsZXRlX211bHRpX2lucHV0X3RwbF9hc3NvY3MnKS4gIjxiciAvPiI7CgkJCQl9CgkJCQkkX3BhcmFtc1snYWN0aXZlX3RhYiddID0gJ211bHRpX2lucHV0JzsKCQkJCQoJCQkJaWYoaXNzZXQoJHBhcmFtc1snYWpheCddKSkKCQkJCXsKCQkJCQlAb2JfZW5kX2NsZWFuKCk7CgkJCQkJQG9iX3N0YXJ0KCk7CgkJCQkJaWYoJGVycm9ybWVzc2FnZSkKCQkJCQl7CgkJCQkJCWVjaG8gJzxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciI+PHVsIGNsYXNzPSJwYWdlZXJyb3IiPjxsaT4nLiAkZXJyb3JtZXNzYWdlIC4gJzwvbGk+PC91bD48L2Rpdj4nOwoJCQkJCX0KCQkJCQlpZigkbWVzc2FnZSkKCQkJCQl7CgkJCQkJCWVjaG8gJzxkaXYgY2xhc3M9InBhZ2VtY29udGFpbmVyIj48cCBjbGFzcz0icGFnZW1lc3NhZ2UiPicuJG1lc3NhZ2UuJzwvcD48L2Rpdj4nOwoJCQkJCX0KCQkJCQlvYl9lbmRfZmx1c2goKTsKCQkJCQlleGl0OwoJCQkJfQoJCQkJCgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkX3BhcmFtcyk7CgkJCQlicmVhazsKCQkJCgkJCWNhc2UgJ2RlbGV0ZU11bHRpSW5wdXRUcGwnOgoJCQkJJF9wYXJhbXMgPSBhcnJheSgpOwoJCQkJJG1lc3NhZ2UgICAgICA9ICcnOwoJCQkJJGVycm9ybWVzc2FnZSA9ICcnOwoJCQkJaWYoaXNzZXQoJHBhcmFtc1sndHBsX2lkJ10pKQoJCQkJewoJCQkJCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkcGFyYW1zWyd0cGxfaWQnXSk7CgkJCQkJJF9wYXJhbXNbJ21lc3NhZ2UnXSA9ICdtdWx0aV9pbnB1dF90cGxfZGVsZXRlZCc7CgkJCQkJJG1lc3NhZ2UgLj0gJHRoaXMtPmxhbmcoJ211bHRpX2lucHV0X3RwbF9kZWxldGVkJykgLiAiPGJyIC8+IjsKCQkJCX0KCQkJCWVsc2UgaWYoaXNzZXQoJHBhcmFtc1snc3VibWl0X2J1bGthY3Rpb24nXSkpCgkJCQl7CgkJCQkJZm9yZWFjaCgkcGFyYW1zIGFzICRwYXJhbV9uYW1lID0+ICRwYXJhbV92YWx1ZSkKCQkJCQl7CgkJCQkJCWlmKHN0YXJ0c3dpdGgoJHBhcmFtX25hbWUsJ211bHRpX2lucHV0X3RwbC0nKSkKCQkJCQkJewoJCQkJCQkJJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCRwYXJhbV92YWx1ZSk7CgkJCQkJCQkkX3BhcmFtc1snbWVzc2FnZSddID0gJ211bHRpX2lucHV0X3RwbF9kZWxldGVkJzsKCQkJCQkJCSRtZXNzYWdlIC49ICR0aGlzLT5sYW5nKCdtdWx0aV9pbnB1dF90cGxfZGVsZXRlZCcpIC4gIjxiciAvPiI7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQkkX3BhcmFtc1snYWN0aXZlX3RhYiddID0gJ211bHRpX2lucHV0X3RwbCc7CgkJCQlpZihpc3NldCgkcGFyYW1zWydhamF4J10pKQoJCQkJewoJCQkJCUBvYl9lbmRfY2xlYW4oKTsKCQkJCQlAb2Jfc3RhcnQoKTsKCQkJCQlpZigkZXJyb3JtZXNzYWdlKQoJCQkJCXsKCQkJCQkJZWNobyAnPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj48dWwgY2xhc3M9InBhZ2VlcnJvciI+PGxpPicuICRlcnJvcm1lc3NhZ2UgLiAnPC9saT48L3VsPjwvZGl2Pic7CgkJCQkJfQoJCQkJCWlmKCRtZXNzYWdlKQoJCQkJCXsKCQkJCQkJZWNobyAnPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPjxwIGNsYXNzPSJwYWdlbWVzc2FnZSI+Jy4kbWVzc2FnZS4nPC9wPjwvZGl2Pic7CgkJCQkJfQoJCQkJCW9iX2VuZF9mbHVzaCgpOwoJCQkJCWV4aXQ7CgkJCQl9CgkJCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAkX3BhcmFtcyk7CgkJCQlicmVhazsKCQkJCQoJCQljYXNlICdkZWZhdWx0JzoKCQkJY2FzZSAnc2F2ZVByZWZzJzoKCQkJY2FzZSAnZGVmYXVsdGFkbWluJzoKCQkJY2FzZSAnYWRkTXVsdGlJbnB1dCc6CgkJCWNhc2UgJ2VkaXRNdWx0aUlucHV0JzoKCQkJY2FzZSAnYWRkTXVsdGlJbnB1dFRwbCc6CgkJCWNhc2UgJ2VkaXRNdWx0aUlucHV0VHBsJzoKCQkJCXBhcmVudDo6RG9BY3Rpb24oJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwoJCQkJYnJlYWs7CgkJCS8qCgkJCWNhc2UgJ2dldFBhcmFtcyc6CgkJCQkkbW9kdWxlX3BhcmFtcyA9IGFycmF5KCk7CgkJCQkkZmlsZXMgID0gYXJyYXkoKTsKCQkJCSRkaXIgICAgPSBkaXJuYW1lKF9fRklMRV9fKSAuIERJUkVDVE9SWV9TRVBBUkFUT1I7CgkJCQkkZCAgICAgID0gZGlyKCRkaXIpOwoJCQkJd2hpbGUgKCRlbnRyeSA9ICRkLT5yZWFkKCkpCgkJCQl7CgkJCQkJaWYgKCRlbnRyeVswXSA9PSAnLicgfHwgaXNfZGlyKCRkaXIuJGVudHJ5KSB8fCAhaXNfcmVhZGFibGUoJGRpci4kZW50cnkpKQoJCQkJCXsKCQkJCQkJY29udGludWU7CgkJCQkJfQoJCQkJCSRjb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJGRpci4kZW50cnkpOwoJCQkJCSRwYXR0ZXJuID0gJy9cJHBhcmFtc1xbW1wnIl0oXHcrKVtcJyJdXF0vaSc7CgkJCQkJJG1hdGNoZXMgPSBhcnJheSgpOwoJCQkJCSRyZXN1bHQgPSBwcmVnX21hdGNoX2FsbCgkcGF0dGVybiwgJGNvbnRlbnQsICRtYXRjaGVzKTsKCQkJCQlpZiAoJHJlc3VsdCAmJiBjb3VudCgkbWF0Y2hlc1sxXSkgPiAwKQoJCQkJCXsKCQkJCQkJZm9yZWFjaCgkbWF0Y2hlc1sxXSBhcyAkb25lX3BhcmFtKQoJCQkJCQl7CgkJCQkJCQkkbW9kdWxlX3BhcmFtc1skb25lX3BhcmFtXSA9ICRvbmVfcGFyYW07CgkJCQkJCX0KCQkJCQl9CgkJCQkJJHBhdHRlcm4gPSAnL1wkYmxvY2tJbmZvXFtbXCciXShcdyspW1wnIl1cXS9pJzsKCQkJCQkkbWF0Y2hlcyA9IGFycmF5KCk7CgkJCQkJJHJlc3VsdCA9IHByZWdfbWF0Y2hfYWxsKCRwYXR0ZXJuLCAkY29udGVudCwgJG1hdGNoZXMpOwoJCQkJCWlmICgkcmVzdWx0ICYmIGNvdW50KCRtYXRjaGVzWzFdKSA+IDApCgkJCQkJewoJCQkJCQlmb3JlYWNoKCRtYXRjaGVzWzFdIGFzICRvbmVfcGFyYW0pCgkJCQkJCXsKCQkJCQkJCSRtb2R1bGVfcGFyYW1zWyRvbmVfcGFyYW1dID0gJG9uZV9wYXJhbTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCSRkLT5jbG9zZSgpOwoJCQkJCgkJCQllY2hvICI8cHJlPiI7CgkJCQllY2hvICI8Y29kZT4iOwoJCQkJcHJpbnRfcigkbW9kdWxlX3BhcmFtcyk7CgkJCQllY2hvICI8L2NvZGU+IjsKCQkJCWVjaG8gIjwvcHJlPiI7CgkJCSovCgkJCWRlZmF1bHQ6IGJyZWFrOwoJCX0KCX0KCQoJZnVuY3Rpb24gRG9FdmVudCgkb3JpZ2luYXRvciwgJGV2ZW50bmFtZSwgJiRwYXJhbXMpCgl7CgkJaWYoJGV2ZW50bmFtZSA9PSAnQ29udGVudEVkaXRQb3N0JyAmJiBiYXNlbmFtZSgkX1NFUlZFUlsnUEhQX1NFTEYnXSkgPT0gJ2NvcHljb250ZW50LnBocCcgJiYgaXNzZXQoJHBhcmFtc1snY29udGVudCddKSAmJiBpc19vYmplY3QoJHBhcmFtc1snY29udGVudCddKSAmJiAkcGFyYW1zWydjb250ZW50J10tPlR5cGUoKSA9PSAnY29udGVudDInKQoJCXsKCQkJaWYoaXNzZXQoJF9HRVRbJ2NvbnRlbnRfaWQnXSkpCgkJCXsKCQkJCSRvbGRfY29udGVudF9pZCA9ICRfR0VUWydjb250ZW50X2lkJ107CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkb2xkX2NvbnRlbnRfaWQgPSAkcGFyYW1zWydjb250ZW50J10tPklkKCk7CgkJCX0KCQkJZm9yZWFjaCgkcGFyYW1zWydjb250ZW50J10tPmdldF9jb250ZW50X2Jsb2NrcygpIGFzICRibG9ja0luZm8pCgkJCXsKCQkJCSR0aGlzLT5TZXRJdGVtRGlzcGxheSgnYmxvY2snLCAkYmxvY2tJbmZvWydpZCddLCAkcGFyYW1zWydjb250ZW50J10tPklkKCksICRwYXJhbXNbJ2NvbnRlbnQnXS0+VGVtcGxhdGVJZCgpLAoJCQkJCSR0aGlzLT5HZXRJdGVtRGlzcGxheSgnYmxvY2snLCAkYmxvY2tJbmZvWydpZCddLCAkb2xkX2NvbnRlbnRfaWQsICRwYXJhbXNbJ2NvbnRlbnQnXS0+VGVtcGxhdGVJZCgpLCAhJGJsb2NrSW5mb1snY29sbGFwc2UnXSkpOwoJCQl9CgkJCWZvcmVhY2goJHBhcmFtc1snY29udGVudCddLT5nZXRfYmxvY2tfZ3JvdXBzKCkgYXMgJGdyb3VwSW5mbykKCQkJewoJCQkJJHRoaXMtPlNldEl0ZW1EaXNwbGF5KCdncm91cCcsICRncm91cEluZm9bJ2dyb3VwX2lkJ10sICRwYXJhbXNbJ2NvbnRlbnQnXS0+SWQoKSwgJHBhcmFtc1snY29udGVudCddLT5UZW1wbGF0ZUlkKCksCgkJCQkJJHRoaXMtPkdldEl0ZW1EaXNwbGF5KCdncm91cCcsICRncm91cEluZm9bJ2dyb3VwX2lkJ10sICRvbGRfY29udGVudF9pZCwgJHBhcmFtc1snY29udGVudCddLT5UZW1wbGF0ZUlkKCksICEkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY29sbGFwc2VfZ3JvdXBfZGVmYXVsdCcsMSkpKTsKCQkJfQoJCX0KCQllbHNlIGlmICgkZXZlbnRuYW1lID09ICdDb250ZW50UG9zdFJlbmRlcicpCgkJewoJCQkkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CgkJCSRyZWRpcmVjdCA9IGZhbHNlOwoJCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJCSMgZ2V0IGFsbCBjb250ZW50IG9mIHR5cGUgYWR2YW5jZWQgdGhhdCBuZWVkIHRvIGJlIHNldCB0byBhY3RpdmUvaW5hY3RpdmUKCQkJJHF1ZXJ5ID0gIlNFTEVDVCBDLmNvbnRlbnRfaWQsIEMuYWN0aXZlCgkJCQlGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAiY29udGVudCBDCgkJCQlMRUZUIEpPSU4gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJjb250ZW50X3Byb3BzIFVTRV9FWFAKCQkJCQlPTiBVU0VfRVhQLmNvbnRlbnRfaWQgPSBDLmNvbnRlbnRfaWQKCQkJCUxFRlQgSk9JTiAiIC4gY21zX2RiX3ByZWZpeCgpIC4gImNvbnRlbnRfcHJvcHMgU1RBUlRfREFURQoJCQkJCU9OIFNUQVJUX0RBVEUuY29udGVudF9pZCA9IEMuY29udGVudF9pZAoJCQkJTEVGVCBKT0lOICIgLiBjbXNfZGJfcHJlZml4KCkgLiAiY29udGVudF9wcm9wcyBFTkRfREFURQoJCQkJCU9OIEVORF9EQVRFLmNvbnRlbnRfaWQgPSBDLmNvbnRlbnRfaWQKCQkJCVdIRVJFCgkJCQkJQy50eXBlID0gPyBBTkQKCQkJCQlVU0VfRVhQLnByb3BfbmFtZSA9ID8gQU5ECgkJCQkJVVNFX0VYUC5jb250ZW50ID0gPyBBTkQgKAoJCQkJCQkoCgkJCQkJCQlTVEFSVF9EQVRFLnByb3BfbmFtZSA9ID8gQU5ECgkJCQkJCQlTVEFSVF9EQVRFLmNvbnRlbnQgPD0gPyBBTkQKCQkJCQkJCUVORF9EQVRFLnByb3BfbmFtZSA9ID8gQU5ECgkJCQkJCQlFTkRfREFURS5jb250ZW50ID4gPyBBTkQKCQkJCQkJCUMuYWN0aXZlID0gPwoJCQkJCQkpCgkJCQkJCU9SCgkJCQkJCSgKCQkJCQkJCUVORF9EQVRFLnByb3BfbmFtZSA9ID8gQU5ECgkJCQkJCQlFTkRfREFURS5jb250ZW50IDw9ID8gQU5ECgkJCQkJCQlDLmFjdGl2ZSA9ID8KCQkJCQkJKQoJCQkJCSkKCQkJCSI7CgkJCQkKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJ2NvbnRlbnQyJywgJ3VzZV9leHBpcmVfZGF0ZScsCgkJCQknMScsICdzdGFydF9kYXRlJywgdGltZSgpLCAnZW5kX2RhdGUnLCB0aW1lKCksIDAsICdlbmRfZGF0ZScsCgkJCQl0aW1lKCksIDEpKTsKCQkJCgkJCSRjb250ZW50cyA9IGFycmF5KCk7CgkJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCQl7CgkJCQlpZigkcm93WydhY3RpdmUnXSkKCQkJCXsKCQkJCQkkY29udGVudHNbJHJvd1snY29udGVudF9pZCddXSA9IDA7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJJGNvbnRlbnRzWyRyb3dbJ2NvbnRlbnRfaWQnXV0gPSAxOwoJCQkJfQoJCQl9CgkJCWlmKGNvdW50KCRjb250ZW50cykpCgkJCXsKCQkJCWNtc21zKCktPkdldFNtYXJ0eSgpLT5jbGVhcl9hbGxfY2FjaGUoKTsKCQkJCWZvcmVhY2goJGNvbnRlbnRzIGFzICRjb250ZW50SWQ9PiRhY3RpdmUpCgkJCQl7CgkJCQkJJHF1ZXJ5ID0gIlVQREFURSAiLiBjbXNfZGJfcHJlZml4KCkgLiAiY29udGVudAoJCQkJCQlTRVQgYWN0aXZlID0gPyBXSEVSRSBjb250ZW50X2lkID0gPyI7CgkJCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGFjdGl2ZSwgJGNvbnRlbnRJZCkpOwoJCQkJCWlmKCRjb250ZW50SWQgPT0gY21zX3V0aWxzOjpnZXRfY3VycmVudF9wYWdlaWQoKSkKCQkJCQl7CgkJCQkJCSRyZWRpcmVjdCA9ICRjb250ZW50SWQ7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCWlmKCRyZWRpcmVjdCkKCQkJewoJCQkJJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkcmVkaXJlY3QpOwoJCQl9CgkJfQoJfQoJCglmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzKCkKCXsKCQkkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKCQkjJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoJCWZvcmVhY2goJHRoaXMtPkdldEFsbG93ZWRQYXJhbWV0ZXJzKCkgYXMgJGsgPT4gJHYpIHsKCQkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJGssJHYpOwoJCX0KCX0KCQoJZnVuY3Rpb24gR2V0SGVhZGVySFRNTCgpCgl7CgkJZ2xvYmFsICRjb25maWc7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfaWQnLCAnbTFfJyk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZWJ1ZycsJGNvbmZpZ1snZGVidWcnXSA/ICd0cnVlJyA6ICdcJ1wnJyk7CgkJcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2hlYWRlci50cGwnKTsKCX0KCQovKioKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogTm90IHBhcnQgb2YgdGhlIENNU21zIG1vZHVsZSBBUEkKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCgkKCXByb3RlY3RlZCBmdW5jdGlvbiBHZXRBbGxvd2VkUGFyYW1ldGVycygpIHsKCQlyZXR1cm4gYXJyYXkoCgkJCSdjYW5jZWwnID0+IENMRUFOX0lOVCwKCQkJJ2lucHV0X2lkJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdpbnB1dF9maWVsZHMnID0+IENMRUFOX1NUUklORywKCQkJJ2lucHV0X3RwbCcgPT4gQ0xFQU5fU1RSSU5HLAoJCQknc3VibWl0JyA9PiBDTEVBTl9JTlQsCgkJCSd0cGxfbmFtZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQkndGVtcGxhdGUnID0+IENMRUFOX1NUUklORywKCQkJJ2FjdGl2ZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQknYmxvY2snID0+IENMRUFOX1NUUklORywKCQkJJ2RlZmF1bHQnID0+IENMRUFOX1NUUklORywKCQkJJ3NtYXJ0eScgPT4gQ0xFQU5fU1RSSU5HLAoJCQknYWxsb3dfbm9uZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQkncmV0dXJuaWQnID0+IENMRUFOX1NUUklORywKCQkJJ2FjdGl2ZV90YWInID0+IENMRUFOX1NUUklORywKCQkJJ2Vycm9ybWVzc2FnZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQknbWVzc2FnZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQknb2xkX3R5cGUnID0+IENMRUFOX1NUUklORywKCQkJJ25ld190eXBlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSd0cGxfaWQnID0+IENMRUFOX1NUUklORywKCQkJJ3N1Ym1pdF9wcmVmcycgPT4gQ0xFQU5fSU5ULAoJCQkndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJyA9PiBDTEVBTl9JTlQsCgkJCSd1bmluc3RhbGxfYWN0aW9uJyA9PiBDTEVBTl9JTlQsCgkJCSdibG9ja19kaXNwbGF5X3NldHRpbmdzJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdjb2xsYXBzZV9ibG9ja19kZWZhdWx0JyA9PiBDTEVBTl9JTlQsCgkJCSdtZXNzYWdlX2Rpc3BsYXlfc2V0dGluZ3MnID0+IENMRUFOX1NUUklORywKCQkJJ2dyb3VwX2Rpc3BsYXlfc2V0dGluZ3MnID0+IENMRUFOX1NUUklORywKCQkJJ2NvbGxhcHNlX2dyb3VwX2RlZmF1bHQnID0+IENMRUFOX0lOVCwKCQkJJ3VzZV9leHBpcmVfZGF0ZScgPT4gQ0xFQU5fSU5ULAoJCQknc3RhcnRfZGF0ZV8xJyA9PiBDTEVBTl9JTlQsCgkJCSdzdGFydF9kYXRlXzInID0+IENMRUFOX0lOVCwKCQkJJ2VuZF9kYXRlXzEnID0+IENMRUFOX0lOVCwKCQkJJ2VuZF9kYXRlXzInID0+IENMRUFOX0lOVCwKCQkJJ2ZldV9hY2Nlc3MnID0+IENMRUFOX0lOVCwKCQkJJ3JlZGlyZWN0X3BhZ2UnID0+IENMRUFOX0lOVCwKCQkJJ2luaGVyaXRfcmVkaXJlY3RfcGFyYW1zJyA9PiBDTEVBTl9JTlQsCgkJCSdyZWRpcmVjdF9wYXJhbXMnID0+IENMRUFOX1NUUklORywKCQkJJ2V2YWx1YXRlX3NtYXJ0eScgPT4gQ0xFQU5fSU5ULAoJCQknZmV1X2FjdGlvbicgPT4gQ0xFQU5fSU5ULAoJCQknaGlkZV9tZW51X2l0ZW0nID0+IENMRUFOX0lOVCwKCQkJJ2l0ZW1fdHlwZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQknaXRlbV9kaXNwbGF5JyA9PiBDTEVBTl9JTlQsCgkJCSdpdGVtX2lkJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdjb250ZW50X2lkJyA9PiBDTEVBTl9JTlQsCgkJCSd0ZW1wbGF0ZV9pZCcgPT4gQ0xFQU5fSU5ULAoJCQknc2V0X2RlZmF1bHQnID0+IENMRUFOX0lOVCwKCQkJJ2FqYXgnID0+IENMRUFOX0lOVCwKCQkJJ3NlcmlhbGl6ZWRfY29udGVudCcgPT4gQ0xFQU5fU1RSSU5HLAoJCQknYWRkaW5nJyA9PiBDTEVBTl9JTlQsCgkJCSdzdWJtaXRfYnVsa2FjdGlvbicgPT4gQ0xFQU5fSU5ULAoJCQknY29udGVudF90eXBlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdwYXJlbnRfaWQnID0+IENMRUFOX0lOVCwKCQkJJ2NhY2hhYmxlJyA9PiBDTEVBTl9JTlQsCgkJCSdzZWFyY2hhYmxlJyA9PiBDTEVBTl9JTlQsCgkJCSdzdGFydF9kYXRlJyA9PiBDTEVBTl9JTlQsCgkJCSdtZXRhZGF0YScgPT4gQ0xFQU5fU1RSSU5HLAoJCQknZW5kX2RhdGUnID0+IENMRUFOX0lOVCwKCQkJJ0FkdmFuY2VkQ29udGVudFN0YXJ0VGltZScgPT4gQ0xFQU5fSU5ULAoJCQknQWR2YW5jZWRDb250ZW50U3RhcnREYXRlJyA9PiBDTEVBTl9JTlQsCgkJCSdBZHZhbmNlZENvbnRlbnRFbmRUaW1lJyA9PiBDTEVBTl9JTlQsCgkJCSdBZHZhbmNlZENvbnRlbnRFbmREYXRlJyA9PiBDTEVBTl9JTlQsCgkJCSdjb2xsYXBzZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQknZWRpdG9yX2dyb3VwcycgPT4gQ0xFQU5fU1RSSU5HLAoJCQknZWRpdG9yX3VzZXJzJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdibG9ja190eXBlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSd0eXBlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSd0cmFuc2xhdGVfbGFiZWxzJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSd0cmFuc2xhdGVfdmFsdWVzJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdsYWJlbCcgPT4gQ0xFQU5fU1RSSU5HLAoJCQkncmVxdWlyZWQnID0+IENMRUFOX1NUUklORywKCQkJJ3N0eWxlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdzaXplJyA9PiBDTEVBTl9JTlQsCgkJCSdwYWdlX3RhYicgPT4gQ0xFQU5fU1RSSU5HLAoJCQknYmxvY2tfdGFiJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdibG9ja19ncm91cCcgPT4gQ0xFQU5fU1RSSU5HLAoJCQknZGVzY3JpcHRpb24nID0+IENMRUFOX1NUUklORywKCQkJJ25vX2NvbGxhcHNlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdtYXhsZW5ndGgnID0+IENMRUFOX0lOVCwKCQkJJ3VzZXd5c2l3eWcnID0+IENMRUFOX1NUUklORywKCQkJJ29uZWxpbmUnID0+IENMRUFOX1NUUklORywKCQkJJ3Nob3cyNGgnID0+IENMRUFOX0lOVCwKCQkJJ21vZGUnID0+IENMRUFOX1NUUklORywKCQkJJ3N0YXJ0X2hvdXInID0+IENMRUFOX0lOVCwKCQkJJ2VuZF9ob3VyJyA9PiBDTEVBTl9JTlQsCgkJCSdzdGFydF9taW51dGUnID0+IENMRUFOX0lOVCwKCQkJJ2VuZF9taW51dGUnID0+IENMRUFOX0lOVCwKCQkJJ3N0YXJ0X3NlY29uZCcgPT4gQ0xFQU5fSU5ULAoJCQknZW5kX3NlY29uZCcgPT4gQ0xFQU5fSU5ULAoJCQknc3RlcF9ob3VycycgPT4gQ0xFQU5fSU5ULAoJCQknc3RlcF9taW51dGVzJyA9PiBDTEVBTl9JTlQsCgkJCSdzdGVwX3NlY29uZHMnID0+IENMRUFOX0lOVCwKCQkJJ3Nob3dfY2xvY2snID0+IENMRUFOX1NUUklORywKCQkJJ3NvcnRhYmxlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdkZWxpbWl0ZXInID0+IENMRUFOX1NUUklORywKCQkJJ2l0ZW1zJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSd2YWx1ZXMnID0+IENMRUFOX1NUUklORywKCQkJJ21vZHVsZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQkncGFyYW1zJyA9PiBDTEVBTl9OT05FLAoJCQkncHJlZml4JyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdleGNsdWRlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdkaXInID0+IENMRUFOX1NUUklORywKCQkJJ3ZhbHVlX2RlbGltaXRlcicgPT4gQ0xFQU5fU1RSSU5HLAoJCQknaW5wdXRfZGVsaW1pdGVyJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdhbGxvd2VkX2Jsb2NrX3R5cGVzJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdhbGxvd2VkX211bHRpX2lucHV0cycgPT4gQ0xFQU5fU1RSSU5HLAoJCQknYWxsb3dlZF9tb2R1bGVzJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdhbGxvd2VkX2Jsb2NrX3BhcmFtcycgPT4gQ0xFQU5fU1RSSU5HLAoJCQknYWxsb3dlZF9tb2R1bGVfcGFyYW1zJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdkYXRlX2Zvcm1hdCcgPT4gQ0xFQU5fU1RSSU5HLAoJCQknaW5wdXRuYW1lJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdmcm9tJyA9PiBDTEVBTl9JTlQsCgkJCSd0bycgPT4gQ0xFQU5fSU5ULAoJCQknc3RlcCcgPT4gQ0xFQU5fSU5ULAoJCQkncm91bmQnID0+IENMRUFOX0lOVCwKCQkJJ2hldGVyb2dlbmVpdHknID0+IENMRUFOX1NUUklORywKCQkJJ2RpbWVuc2lvbicgPT4gQ0xFQU5fU1RSSU5HLAoJCQknbGltaXRzJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdzY2FsZScgPT4gQ0xFQU5fU1RSSU5HLAoJCQknc2tpbicgPT4gQ0xFQU5fU1RSSU5HLAoJCQknY2FsY3VsYXRlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdvbnN0YXRlY2hhbmdlJyA9PiBDTEVBTl9TVFJJTkcsCgkJCSdjYWxsYmFjaycgPT4gQ0xFQU5fU1RSSU5HKTsKCX0KCQoJCgkvKioKCSAqIGZ1bmN0aW9uIElzVmFyRW1wdHkoJHZhciwgJHRyaW0sICR1bnNldEVtcHR5SW5kZXhlcykKCSAqIG5vdCBwYXJ0IG9mIHRoZSBtb2R1bGUgYXBpCgkgKiBjaGVja3MgaWYgYSB2YXIgaXMgZW1wdHkuIGlmIHZhciBpcyBhbiBhcnJheSBpdCByZWN1cnNpdmxleSBjaGVja3MgYWxsIGVsZW1lbnRzCgkgKgoJICogQHBhcmFtIG1peGVkICR2YXIgLSB0aGUgdmFyIHRvIGNoZWNrIGZvciBlbXB0eSB2YWx1ZShzKQoJICogQHBhcmFtIGJvb2xlYW4gJHRyaW0gLSB0cnVlIHRvIHRyaW0gb2ZmIHNwYWNlcwoJICogQHBhcmFtIGJvb2xlYW4gJHVuc2V0RW1wdHlJbmRleGVzIC0gdHJ1ZSB0byBkZWxldGUgZW1wdHkgZWxlbWVudHMgZnJvbSBhcnJheQoJICogQHJldHVybiBib29sZWFuIC0gdHJ1ZSBpZiBlbXB0eSwgZmFsc2UgaWYgbm90CgkgKi8KCWZ1bmN0aW9uIElzVmFyRW1wdHkoJiR2YXIsICR0cmltID0gdHJ1ZSwgJHVuc2V0RW1wdHlJbmRleGVzID0gZmFsc2UpCgl7CgkJaWYgKGlzX2FycmF5KCR2YXIpKQoJCXsKCQkJZm9yZWFjaCAoJHZhciBhcyAkaz0+JHYpCgkJCXsKCQkJCWlmICghJHRoaXMtPklzVmFyRW1wdHkoJHYpKQoJCQkJewoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlpZigkdW5zZXRFbXB0eUluZGV4ZXMpCgkJCQkJCXVuc2V0KCR2YXJbJGtdKTsKCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCX0KCQkJfQoJCX0KCQllbHNlIGlmKCR0cmltICYmIHRyaW0oJHZhcikgPT0gJycpCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZSBpZigkdmFyID09ICcnKQoJCXsKCQkJcmV0dXJuIHRydWU7CgkJfQoJCXJldHVybiBmYWxzZTsKCX0KCQoJCgkvKioKCSAqIGZ1bmN0aW9uIENsZWFuQXJyYXkoJGFycmF5KQoJICogbm90IHBhcnQgb2YgdGhlIG1vZHVsZSBhcGkKCSAqIHJlbW92ZXMgZW1wdHkgZWxlbWVudHMgZnJvbSBhbiBhcnJheQoJICogKGNhbiBiZSB1c2VmdWwgd2hlbiB1c2luZyBmdW5jdGlvbiBleHBsb2RlIHRvIGNyZWF0ZSB0aGUgYXJyYXkgb2YgYSBjc3YpCgkgKgoJICogQHBhcmFtIGFycmF5ICRhcnJheSAtIHRoZSBhcnJheSB0byBjbGVhbiB1cAoJICogQHJldHVybiBhcnJheSAtIGFuIGFycmF5IHdpdGhvdXQgZW1wdHkgZWxlbWVudHMgb3IgYW4gZW1wdHkgYXJyYXkKCSAqLwoJZnVuY3Rpb24gQ2xlYW5BcnJheSgkYXJyYXkpCgl7CgkJaWYgKGlzX2FycmF5KCRhcnJheSkpCgkJewoJCQlmb3JlYWNoICgkYXJyYXkgYXMgJGs9PiR2KQoJCQl7CgkJCQlpZiAoJHRoaXMtPklzVmFyRW1wdHkoJHYsdHJ1ZSx0cnVlKSkKCQkJCXsKCQkJCQl1bnNldCgkYXJyYXlbJGtdKTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlpZihpc19hcnJheSgkdikpCgkJCQkJewoJCQkJCQkkdiA9ICR0aGlzLT5DbGVhbkFycmF5KCR2KTsKCQkJCQkJaWYoJHRoaXMtPklzVmFyRW1wdHkoJHYsdHJ1ZSx0cnVlKSkKCQkJCQkJCXVuc2V0KCRhcnJheVska10pOwoJCQkJCQllbHNlCgkJCQkJCQkkYXJyYXlbJGtdID0gJHY7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCXJldHVybiAkYXJyYXk7CgkJfQoJCXJldHVybiBhcnJheSgpOwoJfQoJCgkKCS8qKgoJICogZnVuY3Rpb24gR2V0UGFnZXMoKQoJICogbm90IHBhcnQgb2YgdGhlIG1vZHVsZSBhcGkKCSAqIGdldHMgYWxsIHBhZ2VzIHRvIGxpc3QgaW4gYSBkcm9wZG93bgoJICoKCSAqIEByZXR1cm4gYXJyYXkgLSBhIHNldCBvZiBwYWdlcwoJICovCglmdW5jdGlvbiBHZXRQYWdlcygpCgl7CgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSA9ICJTRUxFQ1QgQy5hY3RpdmUsIEMudHlwZSwgQy5jb250ZW50X2lkLCBDLnBhcmVudF9pZCwgQy5oaWVyYXJjaHksIEMubWVudV90ZXh0LCBDUC5jb250ZW50IEZST00gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJjb250ZW50IEMKCQkJTEVGVCBKT0lOICIgLiBjbXNfZGJfcHJlZml4KCkgLiAiY29udGVudF9wcm9wcyBDUCBPTiBDUC5jb250ZW50X2lkID0gQy5jb250ZW50X2lkIEFORCBDUC5wcm9wX25hbWUgPSA/CgkJCU9SREVSIEJZIGhpZXJhcmNoeSI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJ3JlZGlyZWN0X3BhZ2UnKSk7CgkJaWYoISRwYWdlcyA9ICRkYnJlc3VsdC0+R2V0QXJyYXkoKSkKCQkJcmV0dXJuIGFycmF5KCk7CgkJcmV0dXJuICRwYWdlczsKCX0KCQoJCgkvKioKCSAqIGZ1bmN0aW9uIENyZWF0ZVJlZGlyZWN0RHJvcGRvd24oKQoJICogbm90IHBhcnQgb2YgdGhlIG1vZHVsZSBhcGkKCSAqIHRoaXMgY3JlYXRlcyBhIGRyb3Bkb3duIG9mIHBhZ2VzIGluY2x1ZGluZyBvbmx5IHBhZ2VzIG9mIHR5cGUgY29udGVudCBidXQKCSAqIGV4Y2x1ZGluZyB0aGUgY3VycmVudCBwYWdlIGFuZCBwYWdlcyB0aGF0IG1heSBvbmx5IGJlIGFjY2Vzc2VkIGJ5IGZyb250ZW5kIHVzZXJzCgkgKgoJICogQHJldHVybiBzdHJpbmcgLSBIVE1MIHNlbGVjdCBlbGVtZW50IHdpdGggb3B0aW9ucwoJICovCglmdW5jdGlvbiBDcmVhdGVSZWRpcmVjdERyb3Bkb3duKCRpZCA9ICcnLCAkbmFtZSA9ICdyZWRpcmVjdF9wYWdlJywgJHNlbGVjdGVkUGFnZSA9ICcnLCAkY3VycmVudFBhZ2UgPSAnJykKCXsKCQkkcGFnZXMgICAgICA9ICR0aGlzLT5HZXRQYWdlcygpOwoJCSRkcm9wZG93biAgID0gJzxzZWxlY3QgbmFtZT0iJy4kaWQuJG5hbWUuJyIgb25jaGFuZ2U9ImlmKCF0aGlzLnZhbHVlKXtqUXVlcnkoXCcuQWR2YW5jZWRDb250ZW50X3JlZGlyZWN0X3BhcmFtcyBpbnB1dFwnKS5hdHRyKFwnZGlzYWJsZWRcJyxcJ2Rpc2FibGVkXCcpO2lmKGpRdWVyeShcJy5BZHZhbmNlZENvbnRlbnRfcmVkaXJlY3RfcGFyYW1zXCcpLmNzcyhcJ2Rpc3BsYXlcJykgIT0gXCdub25lXCcpe2pRdWVyeShcJy5BZHZhbmNlZENvbnRlbnRfcmVkaXJlY3RfcGFyYW1zXCcpLnNsaWRlVXAoKTt9fWVsc2V7alF1ZXJ5KFwnLkFkdmFuY2VkQ29udGVudF9yZWRpcmVjdF9wYXJhbXMgaW5wdXRcJykucmVtb3ZlQXR0cihcJ2Rpc2FibGVkXCcpO2lmKGpRdWVyeShcJy5BZHZhbmNlZENvbnRlbnRfcmVkaXJlY3RfcGFyYW1zXCcpLmNzcyhcJ2Rpc3BsYXlcJykgPT0gXCdub25lXCcpe2pRdWVyeShcJy5BZHZhbmNlZENvbnRlbnRfcmVkaXJlY3RfcGFyYW1zXCcpLnNsaWRlRG93bigpO319IiAnLighJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSkgPyAnZGlzYWJsZWQ9ImRpc2FibGVkIicgOiAnJykgLic+JzsKCQkkZHJvcGRvd24gIC49ICc8b3B0aW9uIHZhbHVlPSIiJyAuICgkc2VsZWN0ZWRQYWdlID09ICcnPycgc2VsZWN0ZWQ9InNlbGVjdGVkIic6JycpIC4gJz4nIC4gJHRoaXMtPmxhbmcoJ2hpZGVfY29udGVudCcpIC4gJzwvb3B0aW9uPic7CgkJJGRyb3Bkb3duICAuPSAnPG9wdGlvbiB2YWx1ZT0iLTEiJyAuICgkc2VsZWN0ZWRQYWdlID09IC0xPycgc2VsZWN0ZWQ9InNlbGVjdGVkIic6JycpIC4gJz4nIC4gJHRoaXMtPmxhbmcoJ2luaGVyaXRfZnJvbV9wYXJlbnQnKSAuICc8L29wdGlvbj4nOwoJCWlmKGNvdW50KCRwYWdlcykpCgkJewoJCQkkZHJvcGRvd24gIC49ICc8b3B0Z3JvdXAgbGFiZWw9Ii0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+JzsKCQkJJGNvbnRlbnRvcHMgPSYgY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCQkJZm9yZWFjaCgkcGFnZXMgYXMgJHBhZ2UpCgkJCXsKCQkJCSRwYWdlWydjb250ZW50J10gPSAoJHBhZ2VbJ2NvbnRlbnQnXSA8IDAgPyAkdGhpcy0+SW5oZXJpdFBhcmVudFByb3AoJHBhZ2VbJ2NvbnRlbnRfaWQnXSwgJHBhZ2VbJ3BhcmVudF9pZCddLCAncmVkaXJlY3RfcGFnZScpIDogJHBhZ2VbJ2NvbnRlbnQnXSk7CgkJCQkkZGlzYWJsZWQgPSAnJzsKCQkJCSRpbmRlbnQgICA9ICcnOwoJCQkJZm9yZWFjaChleHBsb2RlKCcuJywkcGFnZVsnaGllcmFyY2h5J10pIGFzICR2KQoJCQkJewoJCQkJCSRpbmRlbnQgLj0gJyZuYnNwOyZuYnNwOyZuYnNwOyc7CgkJCQl9CgkJCQkjIGRvbid0IHJlZGlyZWN0IHRvIHBhZ2VzIHdpdGggbm8gcHVibGljIGFjY2VzcywgaW52YWxpZCBjb250ZW50IHR5cGUsIGluYWN0aXZlIG9yIHNhbWUgY29udGVudCBpZAoJCQkJaWYoJHBhZ2VbJ2FjdGl2ZSddICE9IDEgfHwgJHBhZ2VbJ2NvbnRlbnQnXTw+MCB8fCAkcGFnZVsnY29udGVudF9pZCddID09ICRjdXJyZW50UGFnZSB8fCAoJHBhZ2VbJ3R5cGUnXSAhPSAnY29udGVudCcgJiYgJHBhZ2VbJ3R5cGUnXSAhPSAnY29udGVudDInKSkKCQkJCXsKCQkJCQkkZGlzYWJsZWQgPSAnIGRpc2FibGVkPSJkaXNhYmxlZCInOwoJCQkJfQoJCQkJJGRyb3Bkb3duIC49ICc8b3B0aW9uJy4gJGRpc2FibGVkIC4nIHZhbHVlPSInIC4gJHBhZ2VbJ2NvbnRlbnRfaWQnXSAuICciICcgLgoJCQkJCSgkc2VsZWN0ZWRQYWdlID09ICRwYWdlWydjb250ZW50X2lkJ10gJiYgJGRpc2FibGVkID09ICcnPydzZWxlY3RlZD0ic2VsZWN0ZWQiJzonJykgLiAnPicgLiAkaW5kZW50IC4gCgkJCQkJJGNvbnRlbnRvcHMtPkNyZWF0ZUZyaWVuZGx5SGllcmFyY2h5UG9zaXRpb24oJHBhZ2VbJ2hpZXJhcmNoeSddKSAuCgkJCQkJJyAtICcgLiAkcGFnZVsnbWVudV90ZXh0J10gLiAoJGRpc2FibGVkICE9ICcnPycgKCcgLiAkdGhpcy0+bGFuZygnaW52YWxpZCcpIC4gJyknOicnKSAuICc8L29wdGlvbj4nOwoJCQl9CgkJCSRkcm9wZG93biAgLj0gJzwvb3B0Z3JvdXA+JzsKCQl9CgkJJGRyb3Bkb3duIC49ICc8L3NlbGVjdD4nOwoJCXJldHVybiAkZHJvcGRvd247Cgl9CgkKCQoJLyoqCgkgKiBmdW5jdGlvbiBJc1RydWUoJHZhbHVlKQoJICogbm90IHBhcnQgb2YgdGhlIG1vZHVsZSBhcGkKCSAqIGNoZWNrcyBpZiBhIHZhbHVlIGlzIGxpdGVyYWxseSAidHJ1ZSIKCSAqIGNhbiBiZSB1c2VmdWxsIHdoZW4gY2hlY2tpbmcgc21hcnR5IHBhcmFtcyBmb3IgdGhlIHZhbHVlIHRydWUKCSAqCgkgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlIC0gdGhlIHZhbHVlIHRvIGNoZWNrCgkgKiBAcmV0dXJuIGJvb2wKCSAqLwoJZnVuY3Rpb24gSXNUcnVlKCR2YWx1ZSkKCXsKCQlyZXR1cm4gKHN0cnRvbG93ZXIoJHZhbHVlKSA9PT0gJ3RydWUnIHx8ICR2YWx1ZSA9PT0gMSB8fCAkdmFsdWUgPT09ICcxJyB8fCAkdmFsdWUgPT09IHRydWUpOwoJfQoJCgkKCS8qKgoJICogZnVuY3Rpb24gSXNGYWxzZSgkdmFsdWUpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogY2hlY2tzIGlmIGEgdmFsdWUgaXMgbGl0ZXJhbGx5ICJmYWxzZSIKCSAqIGNhbiBiZSB1c2VmdWxsIHdoZW4gY2hlY2tpbmcgc21hcnR5IHBhcmFtcyBmb3IgdGhlIHZhbHVlIGZhbHNlCgkgKgoJICogQHBhcmFtIG1peGVkICR2YWx1ZSAtIHRoZSB2YWx1ZSB0byBjaGVjawoJICogQHJldHVybiBib29sCgkgKi8KCWZ1bmN0aW9uIElzRmFsc2UoJHZhbHVlKQoJewoJCXJldHVybiAoc3RydG9sb3dlcigkdmFsdWUpID09PSAnZmFsc2UnIHx8ICR2YWx1ZSA9PT0gJzAnIHx8ICR2YWx1ZSA9PT0gMCB8fCAkdmFsdWUgPT09IGZhbHNlIHx8ICR2YWx1ZSA9PT0gJycpOwoJfQoJCgkKCS8qKgoJICogc2F2ZXMgdGhlIGRpc3BsYXkgc3RhdHVzIG9mIGNvbnRlbnQgYmxvY2tzLCBjb250ZW50IGJsb2NrcyBtZXNzYWdlcyBhbmQgYmxvY2sgZ3JvdXBzCgkgKgoJICogQHBhcmFtIGludCAkY29udGVudF9pZCAtIHRoZSBpZCBvZiB0aGUgY29udGVudCB3aGVyZSB0byBzZXQgdGhlIGRpc3BsYXkgc3RhdHVzCgkgKiBAcGFyYW0gaW50ICR0ZW1wbGF0ZV9pZCAtIHRoZSBpZCBvZiB0aGUgdGVtcGxhdGUgd2hlcmUgdG8gc2V0IHRoZSBkaXNwbGF5IHN0YXR1cwoJICogQHBhcmFtIHN0cmluZyAkYmxvY2tfaWQgLSB0aGUgY29udGVudCBibG9jayB0byB0b2dnbGUgdGhlIGJsb2NrIGl0c2VsZiBvciB0aGUgbWVzc2FnZS9ncm91cAoJICogQHBhcmFtIGludCAkZGlzcGxheSAtIDAgdG8gaGlkZSwgMSB0byBzaG93CgkgKgoJICovCglmdW5jdGlvbiBTZXRJdGVtRGlzcGxheSgkaXRlbV90eXBlLCAkaXRlbV9pZCwgJGNvbnRlbnRfaWQsICR0ZW1wbGF0ZV9pZCwgJGRpc3BsYXkpCgl7CgkJJGRiID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSA9ICJTRUxFQ1QgaXRlbV9kaXNwbGF5IEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfIi4kaXRlbV90eXBlLiJkaXNwbGF5CgkJCVdIRVJFIHVzZXJfaWQgPSA/IEFORCBpdGVtX2lkID0gPyBBTkQgIjsKCQkKCQkkcSA9IGFycmF5KCk7CgkJJHAgPSBhcnJheShnZXRfdXNlcmlkKCksICRpdGVtX2lkKTsKCQkKCQlpZigkY29udGVudF9pZAoJCSYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnY29udGVudCcKCQl8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDEnCgkJfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoJGl0ZW1fdHlwZS4nX2Rpc3BsYXlfc2V0dGluZ3MnLCdjb250ZW50JykgPT0gJ2JvdGgyJykpCgkJewoJCQkkcVtdID0gImNvbnRlbnRfaWQgPSA/IjsKCQkJJHBbXSA9ICRjb250ZW50X2lkOwoJCX0KCQkKCQlpZigkdGVtcGxhdGVfaWQgPiAwCgkJJiYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCRpdGVtX3R5cGUuJ19kaXNwbGF5X3NldHRpbmdzJywnY29udGVudCcpID09ICd0ZW1wbGF0ZScKCQl8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDEnCgkJfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoJGl0ZW1fdHlwZS4nX2Rpc3BsYXlfc2V0dGluZ3MnLCdjb250ZW50JykgPT0gJ2JvdGgyJykpCgkJewoJCQkkcVtdID0gInRlbXBsYXRlX2lkID0gPyI7CgkJCSRwW10gPSAkdGVtcGxhdGVfaWQ7CgkJfQoJCQoJCWlmKCFjb3VudCgkcSkpIHsKCQkJcmV0dXJuOwoJCX0KCQkKCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDEnKQoJCXsKCQkJJHF1ZXJ5IC49ICIoIiAuIGltcGxvZGUoIiBPUiAiLCRxKSAuICIpIjsKCQl9CgkJZWxzZSBpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDInKQoJCXsKCQkJJHF1ZXJ5IC49ICIoIiAuIGltcGxvZGUoIiBBTkQgIiwkcSkgLiAiKSI7CgkJfQoJCWVsc2UKCQl7CgkJCSRxdWVyeSAuPSAkcVswXTsKCQl9CgkJCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHApOwoJCWlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CgkJCWVjaG8gJGRpc3BsYXk7CgkJCWFycmF5X3Vuc2hpZnQoJHAsJGRpc3BsYXkpOwoJCQkkcXVlcnkgPSAiVVBEQVRFICIuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfQWR2YW5jZWRDb250ZW50XyIuJGl0ZW1fdHlwZS4iZGlzcGxheQoJCQkJU0VUIGl0ZW1fZGlzcGxheSA9ID8gV0hFUkUgdXNlcl9pZCA9ID8gQU5EIGl0ZW1faWQgPSA/IEFORCAiLmltcGxvZGUoJyBBTkQgJywkcSk7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICRwKTsKCQl9CgkJZWxzZQoJCXsKCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuIGNtc19kYl9wcmVmaXgoKSAuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfIi4kaXRlbV90eXBlLiJkaXNwbGF5CgkJCQkodXNlcl9pZCwgY29udGVudF9pZCwgdGVtcGxhdGVfaWQsIGl0ZW1faWQsIGl0ZW1fZGlzcGxheSkgVkFMVUVTICg/LD8sPyw/LD8pIjsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoZ2V0X3VzZXJpZCgpLCAkY29udGVudF9pZCwgJHRlbXBsYXRlX2lkLCAkaXRlbV9pZCwgJGRpc3BsYXkpKTsKCQl9CgkJJHRoaXMtPl9kaXNwbGF5U2V0dGluZ3NbJGl0ZW1fdHlwZV1baW1wbG9kZSgnXycsYXJyYXkoJGNvbnRlbnRfaWQsJHRlbXBsYXRlX2lkKSldWyRpdGVtX2lkXSA9ICRkaXNwbGF5OwoJfQoJCgkKCS8qKgoJICogZ2V0cyB0aGUgZGlzcGxheSBzdGF0dXMgb2YgY29udGVudCBibG9ja3MsIGNvbnRlbnQgYmxvY2tzIG1lc3NhZ2VzIG9yIGJsb2NrIGdyb3VwcwoJICoKCSAqIEBwYXJhbSBpbnQgJGl0ZW1fdHlwZSAtIHRoZSBpZCBvZiB0aGUgY29udGVudC90ZW1wbGF0ZSB0byBnZXQgdGhlIGRpc3BsYXkgc3RhdHVzIGZyb20KCSAqIEBwYXJhbSBpbnQgJHRwbF9vcl9jb250ZW50X2lkIC0gdGhlIGlkIG9mIHRoZSBjb250ZW50L3RlbXBsYXRlIHRvIGdldCB0aGUgZGlzcGxheSBzdGF0dXMgZnJvbQoJICogQHBhcmFtIHN0cmluZyAkYmxvY2tfaWQgLSB0aGUgY29udGVudCBibG9jayB0byBnZXQgdGhlIGRpc3BsYXkgc3RhdHVzIGZyb20KCSAqIEBwYXJhbSBpbnQgJGRlZmF1bHRfdmFsdWUgLSB0aGUgZGVmYXVsdCBzdGF0dXMgaWYgbm90aGluZyBpcyBmb3VuZAoJICoKCSAqIEByZXR1cm4gYm9vbGVhbiAtIDAgPSBoaWRkZW4sIDEgPSBzaG93bgoJICovCglmdW5jdGlvbiBHZXRJdGVtRGlzcGxheSgkaXRlbV90eXBlLCAkaXRlbV9pZCwgJGNvbnRlbnRfaWQsICR0ZW1wbGF0ZV9pZCwgJGRlZmF1bHRfdmFsdWUgPSAxKQoJewoJCSRpZHMgPSBhcnJheSgpOwoJCQoJCWlmKCRjb250ZW50X2lkCgkJJiYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCRpdGVtX3R5cGUuJ19kaXNwbGF5X3NldHRpbmdzJywnY29udGVudCcpID09ICdjb250ZW50JwoJCXx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRpdGVtX3R5cGUuJ19kaXNwbGF5X3NldHRpbmdzJywnY29udGVudCcpID09ICdib3RoMScKCQl8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDInKSkKCQl7CgkJCSRpZHNbXSA9ICRjb250ZW50X2lkOwoJCX0KCQkKCQlpZigkdGVtcGxhdGVfaWQgPiAwCgkJJiYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCRpdGVtX3R5cGUuJ19kaXNwbGF5X3NldHRpbmdzJywnY29udGVudCcpID09ICd0ZW1wbGF0ZScKCQl8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDEnCgkJfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoJGl0ZW1fdHlwZS4nX2Rpc3BsYXlfc2V0dGluZ3MnLCdjb250ZW50JykgPT0gJ2JvdGgyJykpCgkJewoJCQkkaWRzW10gPSAkdGVtcGxhdGVfaWQ7CgkJfQoJCQoJCWlmKCFjb3VudCgkaWRzKSkKCQl7CgkJCXJldHVybiAkZGVmYXVsdF92YWx1ZTsKCQl9CgkJCgkJaWYoIWlzc2V0KCR0aGlzLT5fZGlzcGxheVNldHRpbmdzWyRpdGVtX3R5cGVdW2ltcGxvZGUoJ18nLCRpZHMpXSkpCgkJewoJCQkkdGhpcy0+R2V0QWxsSXRlbXNEaXNwbGF5KCRpdGVtX3R5cGUsICRjb250ZW50X2lkLCAkdGVtcGxhdGVfaWQpOwoJCX0KCQlpZighaXNzZXQoJHRoaXMtPl9kaXNwbGF5U2V0dGluZ3NbJGl0ZW1fdHlwZV1baW1wbG9kZSgnXycsJGlkcyldWyRpdGVtX2lkXSkpCgkJewoJCQkkdGhpcy0+X2Rpc3BsYXlTZXR0aW5nc1skaXRlbV90eXBlXVtpbXBsb2RlKCdfJywkaWRzKV1bJGl0ZW1faWRdID0gJGRlZmF1bHRfdmFsdWU7CgkJfQoJCXJldHVybiAkdGhpcy0+X2Rpc3BsYXlTZXR0aW5nc1skaXRlbV90eXBlXVtpbXBsb2RlKCdfJywkaWRzKV1bJGl0ZW1faWRdOwoJfQoJCgkKCS8qKgoJICogZ2V0cyB0aGUgZGlzcGxheSBzdGF0dXMgb2YgYWxsIGNvbnRlbnQgYmxvY2tzLCBjb250ZW50IGJsb2NrcyBtZXNzYWdlcyBvciBibG9jayBncm91cHMgb2YgYSBnaXZlbiB0ZW1wbGF0ZSBvciBjb250ZW50IGlkCgkgKiBAYWNjZXNzIHByaXZhdGUKCSAqIEBpZ25vcmUKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBHZXRBbGxJdGVtc0Rpc3BsYXkoJGl0ZW1fdHlwZSwgJGNvbnRlbnRfaWQsICR0ZW1wbGF0ZV9pZCkKCXsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfIi4kaXRlbV90eXBlLiJkaXNwbGF5CgkJCVdIRVJFIHVzZXJfaWQgPSA/IEFORCAiOwoJCQoJCSRxID0gYXJyYXkoKTsKCQkkcCA9IGFycmF5KGdldF91c2VyaWQoKSk7CgkJCgkJaWYoJGNvbnRlbnRfaWQKCQkmJiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJGl0ZW1fdHlwZS4nX2Rpc3BsYXlfc2V0dGluZ3MnLCdjb250ZW50JykgPT0gJ2NvbnRlbnQnCgkJfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoJGl0ZW1fdHlwZS4nX2Rpc3BsYXlfc2V0dGluZ3MnLCdjb250ZW50JykgPT0gJ2JvdGgxJwoJCXx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRpdGVtX3R5cGUuJ19kaXNwbGF5X3NldHRpbmdzJywnY29udGVudCcpID09ICdib3RoMicpKQoJCXsKCQkJJHFbXSA9ICJjb250ZW50X2lkID0gPyI7CgkJCSRwW10gPSAkY29udGVudF9pZDsKCQl9CgkJCgkJaWYoJHRlbXBsYXRlX2lkID4gMAoJCSYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAndGVtcGxhdGUnCgkJfHwgJHRoaXMtPkdldFByZWZlcmVuY2UoJGl0ZW1fdHlwZS4nX2Rpc3BsYXlfc2V0dGluZ3MnLCdjb250ZW50JykgPT0gJ2JvdGgxJwoJCXx8ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRpdGVtX3R5cGUuJ19kaXNwbGF5X3NldHRpbmdzJywnY29udGVudCcpID09ICdib3RoMicpKQoJCXsKCQkJJHFbXSA9ICJ0ZW1wbGF0ZV9pZCA9ID8iOwoJCQkkcFtdID0gJHRlbXBsYXRlX2lkOwoJCX0KCQkKCQlpZighY291bnQoJHEpKQoJCXsKCQkJcmV0dXJuOwoJCX0KCQkKCQlpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDEnKQoJCXsKCQkJJHF1ZXJ5IC49ICIoIiAuIGltcGxvZGUoIiBPUiAiLCRxKSAuICIpIjsKCQl9CgkJZWxzZSBpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDInKQoJCXsKCQkJJHF1ZXJ5IC49ICIoIiAuIGltcGxvZGUoIiBBTkQgIiwkcSkgLiAiKSI7CgkJfQoJCWVsc2UKCQl7CgkJCSRxdWVyeSAuPSAkcVswXTsKCQl9CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgJHApOwoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJGl0ZW1fdHlwZS4nX2Rpc3BsYXlfc2V0dGluZ3MnLCdjb250ZW50JykgPT0gJ2JvdGgxJwoJCQl8fCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgkaXRlbV90eXBlLidfZGlzcGxheV9zZXR0aW5ncycsJ2NvbnRlbnQnKSA9PSAnYm90aDInKQoJCQl7CgkJCQkkdGhpcy0+X2Rpc3BsYXlTZXR0aW5nc1skaXRlbV90eXBlXVskcm93Wydjb250ZW50X2lkJ10gLiAnXycgLiAkcm93Wyd0ZW1wbGF0ZV9pZCddXVskcm93WydpdGVtX2lkJ11dID0gJHJvd1snaXRlbV9kaXNwbGF5J107CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdGhpcy0+X2Rpc3BsYXlTZXR0aW5nc1skaXRlbV90eXBlXVskcm93WyR0aGlzLT5HZXRQcmVmZXJlbmNlKCRpdGVtX3R5cGUuJ19kaXNwbGF5X3NldHRpbmdzJywnY29udGVudCcpLidfaWQnXV1bJHJvd1snaXRlbV9pZCddXSA9ICRyb3dbJ2l0ZW1fZGlzcGxheSddOwoJCQl9CgkJfQoJfQoJCglmdW5jdGlvbiBHZXRNdWx0aUlucHV0RnVsbCgkaW5wdXRzID0gYXJyYXkoKSkKCXsKCQlpZighaXNfYXJyYXkoJGlucHV0cykpCgkJewoJCQkkaW5wdXRzID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgiLCIsJGlucHV0cykpOwoJCX0KCQkkZGIgICAgPSYgJHRoaXMtPkdldERiKCk7CgkJJHF1ZXJ5ID0gIlNFTEVDVCBNVUxUSV9JTlBVVC4qLCBUUExfQVNTT0NTLnRwbF9uYW1lIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbXVsdGlfaW5wdXRzIE1VTFRJX0lOUFVUCgkJCUxFRlQgT1VURVIgSk9JTiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9tdWx0aV9pbnB1dF90cGxfYXNzb2NzIFRQTF9BU1NPQ1MKCQkJT04gTVVMVElfSU5QVVQuaW5wdXRfaWQgPSBUUExfQVNTT0NTLmlucHV0X2lkIjsKCQkKCQkkcSAgICAgPSBhcnJheSgpOwoJCSRwICAgICA9IGFycmF5KCk7CgkJJHJldHVybl9hcnJheSA9IGFycmF5KCk7CgkJZm9yZWFjaCgkaW5wdXRzIGFzICRpbnB1dF9pZCkKCQl7CgkJCSRxWyRpbnB1dF9pZF0gPSAiTVVMVElfSU5QVVQuaW5wdXRfaWQgPSA/IjsKCQkJJHBbJGlucHV0X2lkXSA9ICRpbnB1dF9pZDsKCQl9CgkJaWYoY291bnQoJHApKQoJCXsKCQkJJHF1ZXJ5IC49ICIgV0hFUkUgIiAuIGltcGxvZGUoIiBPUiAiLCAkcSk7CgkJfQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICRwKTsKCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCSRyZXR1cm5fYXJyYXlbJHJvd1snaW5wdXRfaWQnXV0gPSAkcm93OwoJCX0KCQlyZXR1cm4gJHJldHVybl9hcnJheTsKCX0KCQoJZnVuY3Rpb24gR2V0TXVsdGlJbnB1dCgkaW5wdXRfaWQpCgl7CgkJJGRiICAgICAgID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSAgICA9ICJTRUxFQ1QgaW5wdXRfZmllbGRzIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbXVsdGlfaW5wdXRzIFdIRVJFIGlucHV0X2lkID0gPyBMSU1JVCAxIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaW5wdXRfaWQpKTsKCQlpZigkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCXJldHVybiAkcm93WydpbnB1dF9maWVsZHMnXTsKCQl9Cgl9CgkKCWZ1bmN0aW9uIEdldE11bHRpSW5wdXRMaXN0KCkKCXsKCQkkZGIgICAgICAgPSYgJHRoaXMtPkdldERiKCk7CgkJJHF1ZXJ5ICAgID0gIlNFTEVDVCBBLmlucHV0X2lkLCBCLnRwbF9uYW1lIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbXVsdGlfaW5wdXRzIEEKCQkJTEVGVCBKT0lOICIuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfQWR2YW5jZWRDb250ZW50X211bHRpX2lucHV0X3RwbF9hc3NvY3MgQgoJCQlPTiBBLmlucHV0X2lkID0gQi5pbnB1dF9pZCI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJJHJldHVybl9hcnJheSA9IGFycmF5KCk7CgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJewoJCQkkcmV0dXJuX2FycmF5W10gPSAkcm93OwoJCX0KCQlyZXR1cm4gJHJldHVybl9hcnJheTsKCX0KCQoJZnVuY3Rpb24gQWRkTXVsdGlJbnB1dCgkaW5wdXRfaWQsICRpbnB1dF9maWVsZHMpCgl7CgkJJGRiICAgID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSA9ICJTRUxFQ1QgaW5wdXRfaWQgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX0FkdmFuY2VkQ29udGVudF9tdWx0aV9pbnB1dHMKCQkJV0hFUkUgaW5wdXRfaWQgPSA/IExJTUlUIDEiOwoJCQoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpbnB1dF9pZCkpOwoJCWlmKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkKCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi4gY21zX2RiX3ByZWZpeCgpIC4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9tdWx0aV9pbnB1dHMKCQkJKGlucHV0X2lkLCBpbnB1dF9maWVsZHMpIFZBTFVFUyAoPyw/KSI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGlucHV0X2lkLCAkaW5wdXRfZmllbGRzKSk7CgkJcmV0dXJuICRkYnJlc3VsdDsKCX0KCQoJZnVuY3Rpb24gVXBkYXRlTXVsdGlJbnB1dCgkaW5wdXRfaWQsICRpbnB1dF9maWVsZHMpCgl7CgkJJGRiICAgID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSA9ICJVUERBVEUgIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbXVsdGlfaW5wdXRzCgkJCVNFVCBpbnB1dF9maWVsZHMgPSA/IFdIRVJFIGlucHV0X2lkID0gPyAiOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRpbnB1dF9maWVsZHMsICRpbnB1dF9pZCkpOwoJCXJldHVybiAkZGJyZXN1bHQ7Cgl9CgkKCWZ1bmN0aW9uIFVwZGF0ZVRwbEFzc29jKCR0cGxfdHlwZSwgJGlucHV0X2lkLCAkdHBsX25hbWUpCgl7CgkJJGRiICAgID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSA9ICJVUERBVEUgIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfIi4kdHBsX3R5cGUuIl90cGxfYXNzb2NzCgkJCVNFVCB0cGxfbmFtZSA9ID8gV0hFUkUgaW5wdXRfaWQgPSA/ICI7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRwbF9uYW1lLCAkaW5wdXRfaWQpKTsKCQlyZXR1cm4gJGRicmVzdWx0OwoJfQoJCglmdW5jdGlvbiBBZGRUcGxBc3NvYygkdHBsX3R5cGUsICRpbnB1dF9pZCwgJHRwbF9uYW1lKQoJewoJCSRkYiAgICA9JiAkdGhpcy0+R2V0RGIoKTsKCQkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi4gY21zX2RiX3ByZWZpeCgpIC4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF8iLiR0cGxfdHlwZS4iX3RwbF9hc3NvY3MKCQkJKGlucHV0X2lkLCB0cGxfbmFtZSkgVkFMVUVTICg/LD8pIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkaW5wdXRfaWQsICR0cGxfbmFtZSkpOwoJCXJldHVybiAkZGJyZXN1bHQ7Cgl9CgkKCWZ1bmN0aW9uIERlbGV0ZVRwbEFzc29jKCR0cGxfdHlwZSwkaW5wdXRfaWRzID0gYXJyYXkoKSkKCXsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkJaWYoIWlzX2FycmF5KCRpbnB1dF9pZHMpKQoJCXsKCQkJJGlucHV0X2lkcyA9ICR0aGlzLT5DbGVhbkFycmF5KGV4cGxvZGUoIiwiLCRpbnB1dF9pZHMpKTsKCQl9CgkJaWYoIWNvdW50KCRpbnB1dF9pZHMpKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkkcXVlcnkgPSAiREVMRVRFIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfIi4kdHBsX3R5cGUuIl90cGxfYXNzb2NzIFdIRVJFICI7CgkJJHEgPSBhcnJheSgpOwoJCWZvcmVhY2goJGlucHV0X2lkcyBhcyAkX2lkKQoJCXsKCQkJJHFbXSA9ICJpbnB1dF9pZCA9ID8iOwoJCX0KCQkkcXVlcnkgICAuPSAgaW1wbG9kZSgiIE9SICIsICRxKTsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkaW5wdXRfaWRzKTsKCQlyZXR1cm4gJGRicmVzdWx0OwoJfQoJCglmdW5jdGlvbiBEZWxldGVNdWx0aUlucHV0KCRpbnB1dF9pZHMgPSBhcnJheSgpKQoJewoJCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCQlpZighaXNfYXJyYXkoJGlucHV0X2lkcykpCgkJewoJCQkkaW5wdXRfaWRzID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgiLCIsJGlucHV0X2lkcykpOwoJCX0KCQlpZighY291bnQoJGlucHV0X2lkcykpCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCSRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX0FkdmFuY2VkQ29udGVudF9tdWx0aV9pbnB1dHMgV0hFUkUgIjsKCQkkcSA9IGFycmF5KCk7CgkJZm9yZWFjaCgkaW5wdXRfaWRzIGFzICRfaWQpCgkJewoJCQkkcVtdID0gImlucHV0X2lkID0gPyI7CgkJfQoJCQoJCSRxdWVyeSAgIC49ICBpbXBsb2RlKCIgT1IgIiwgJHEpOwoJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksICRpbnB1dF9pZHMpOwoJCXJldHVybiAkZGJyZXN1bHQ7Cgl9CgkKCWZ1bmN0aW9uIEdldFRlbXBsYXRlcygkcHJlZml4KQoJewoJCSRkYiAgICAgPSYgJHRoaXMtPkdldERiKCk7CgkJJHF1ZXJ5ICA9ICJTRUxFQ1QgVFBMLnRlbXBsYXRlX25hbWUsIFRQTF9BU1NPQ1MuKiBGUk9NICIuIGNtc19kYl9wcmVmaXgoKSAuICJtb2R1bGVfdGVtcGxhdGVzIFRQTAoJCQlMRUZUIE9VVEVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfIi4kcHJlZml4LiJfdHBsX2Fzc29jcyBUUExfQVNTT0NTCgkJCU9OIFRQTC50ZW1wbGF0ZV9uYW1lID0gVFBMX0FTU09DUy50cGxfbmFtZQoJCQlXSEVSRSBUUEwubW9kdWxlX25hbWUgPSA/IEFORCBUUEwudGVtcGxhdGVfbmFtZSBMSUtFID8gIjsKCQkkcmV0dXJuX2FycmF5ID0gYXJyYXkoKTsKCQkkZGJyZXN1bHQgICAgID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRoaXMtPkdldE5hbWUoKSwkcHJlZml4LidfJScpKTsKCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCWlmKCFpc3NldCgkcmV0dXJuX2FycmF5WyRyb3dbJ3RlbXBsYXRlX25hbWUnXV0pKQoJCQl7CgkJCQkkcmV0dXJuX2FycmF5WyRyb3dbJ3RlbXBsYXRlX25hbWUnXV0gPSBhcnJheSgpOwoJCQl9CgkJCSRyZXR1cm5fYXJyYXlbJHJvd1sndGVtcGxhdGVfbmFtZSddXVsndHBsX25hbWUnXSA9IHN1YnN0cigkcm93Wyd0ZW1wbGF0ZV9uYW1lJ10sc3RybGVuKCRwcmVmaXguJ18nKSk7CgkJCSRyZXR1cm5fYXJyYXlbJHJvd1sndGVtcGxhdGVfbmFtZSddXVsndHBsX2lkJ10gICA9ICRyb3dbJ3RlbXBsYXRlX25hbWUnXTsKCQkJaWYoIWlzc2V0KCRyZXR1cm5fYXJyYXlbJHJvd1sndGVtcGxhdGVfbmFtZSddXVsndHBsX2Fzc29jcyddKSkKCQkJewoJCQkJJHJldHVybl9hcnJheVskcm93Wyd0ZW1wbGF0ZV9uYW1lJ11dWyd0cGxfYXNzb2NzJ10gPSBhcnJheSgpOwoJCQkJJHJldHVybl9hcnJheVskcm93Wyd0ZW1wbGF0ZV9uYW1lJ11dWydpc191c2VkJ10gPSBmYWxzZTsKCQkJfQoJCQlpZigkcm93WydpbnB1dF9pZCddKQoJCQl7CgkJCQkkcmV0dXJuX2FycmF5WyRyb3dbJ3RlbXBsYXRlX25hbWUnXV1bJ3RwbF9hc3NvY3MnXVtdID0gJHJvd1snaW5wdXRfaWQnXTsKCQkJCSRyZXR1cm5fYXJyYXlbJHJvd1sndGVtcGxhdGVfbmFtZSddXVsnaXNfdXNlZCddID0gdHJ1ZTsKCQkJfQoJCX0KCQlyZXR1cm4gJHJldHVybl9hcnJheTsKCX0KCQoJZnVuY3Rpb24gR2V0VHBsTGlzdCgkcHJlZml4KQoJewoJCSRwcmVmaXggPSB0cmltKCRwcmVmaXgsJ18nKSAuICdfJzsKCQkkZGIgICAgID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSAgPSAiU0VMRUNUIHRlbXBsYXRlX25hbWUgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkgLiAibW9kdWxlX3RlbXBsYXRlcwoJCQlXSEVSRSBtb2R1bGVfbmFtZSA9ID8gQU5EIHRlbXBsYXRlX25hbWUgTElLRSA/ICI7CgkJJHJldHVybl9hcnJheSA9IGFycmF5KCk7CgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHRoaXMtPkdldE5hbWUoKSwkcHJlZml4LiclJykpOwoJCXdoaWxlKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJJHRwbF9uYW1lID0gc3Vic3RyKCRyb3dbJ3RlbXBsYXRlX25hbWUnXSxzdHJsZW4oJHByZWZpeCkpOwoJCQkkcmV0dXJuX2FycmF5WyR0cGxfbmFtZV0gPSAkcm93Wyd0ZW1wbGF0ZV9uYW1lJ107CgkJfQoJCXJldHVybiAkcmV0dXJuX2FycmF5OwoJfQoJCglmdW5jdGlvbiBJc1RwbFVzZWQoJHRwbF9uYW1lLCAkYXNzb2NfdHlwZSkKCXsKCQkkZGIgICAgID0mICR0aGlzLT5HZXREYigpOwoJCSRxdWVyeSAgPSAiU0VMRUNUIHRwbF9uYW1lIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4gIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfIi4kYXNzb2NfdHlwZS4iX3RwbF9hc3NvY3MKCQkJV0hFUkUgdGVtcGxhdGVfbmFtZSA9ID8gIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkdHBsX25hbWUpKTsKCQlpZighJGRicmVzdWx0IHx8ICEkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQlyZXR1cm4gdHJ1ZTsKCX0KCQoJZnVuY3Rpb24gJkluaGVyaXRhYmxlcygkY29udGVudF9pZCA9ICcnKQoJewoJCSRjb250ZW50X2lkID0gaW50dmFsKCRjb250ZW50X2lkKTsKCQlpZighaXNzZXQoJHRoaXMtPl9pbmhlcml0YWJsZXNbJGNvbnRlbnRfaWRdKSkKCQl7CgkJCSR0aGlzLT5faW5oZXJpdGFibGVzWyRjb250ZW50X2lkXSA9IGFycmF5KAoJCQkJJ2ZldV9hY2Nlc3MnICAgICA9Pi0xLAoJCQkJJ3JlZGlyZWN0X3BhZ2UnICA9Pi0xLAoJCQkJJ3JlZGlyZWN0X3BhcmFtcyc9Pi0xLAoJCQkJJ2V2YWx1YXRlX3NtYXJ0eSc9Pi0xLAoJCQkJJ2ZldV9hY3Rpb24nICAgICA9Pi0xLAoJCQkJJ3N0YXJ0X2RhdGUnICAgICA9Pi0xLAoJCQkJJ2VuZF9kYXRlJyAgICAgICA9Pi0xLAoJCQkJJ2hpZGVfbWVudV9pdGVtJyA9Pi0xLAoJCQkJJ3VzZV9leHBpcmVfZGF0ZSc9Pi0xKTsKCQl9CgkJcmV0dXJuICR0aGlzLT5faW5oZXJpdGFibGVzWyRjb250ZW50X2lkXTsKCX0KCQoJI2Z1bmN0aW9uICZMb2FkZWRQcm9wcygkY29udGVudF9pZCA9ICcnKQoJI3sKCSMJJGNvbnRlbnRfaWQgPSBpbnR2YWwoJGNvbnRlbnRfaWQpOwoJIwlpZighaXNzZXQoJHRoaXMtPl9sb2FkZWRQcm9wc1skY29udGVudF9pZF0pKQoJIwl7CgkjCQkkdGhpcy0+X2xvYWRlZFByb3BzWyRjb250ZW50X2lkXSA9IGFycmF5KCk7CgkjCX0KCSMJcmV0dXJuICR0aGlzLT5fbG9hZGVkUHJvcHNbJGNvbnRlbnRfaWRdOwoJI30KCQoJLyoqCgkgKiBJbmhlcml0cyBhIHByb3BlcnR5IG9mIGEgcGFyZW50IHBhZ2UgKHJlY3Vyc2l2bGV5KQoJICoKCSAqIEBwYXJhbSBpbnQgJGN1cnJlbnRJZCAtIFRoZSBpZCBvZiB0aGUgY3VycmVudCBwYWdlCgkgKiBAcGFyYW0gaW50ICRwYXJlbnRJZCAtIFRoZSBpZCBvZiB0aGUgcGFyZW50IHBhZ2UKCSAqIEBwYXJhbSBzdHJpbmcgJHByb3BOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGluaGVyaXQKCSAqIEBwYXJhbSBhcnJheSAkY3VycmVudFByb3AgKG9wdGlvbmFsKSAtIElmIHByb3AgaXMgYW4gYXJyYXkgdGhpcyB3aWxsIGJlIHRoZSBpdGVtcyBvZiB0aGUgY3VycmVudCBwYWdlOyBTbyByZXR1cm4gYXJyYXkgd2lsbCBjb250YWluIGFsbCBpdGVtcyBvZiB0aGUgY3VycmVudCBwYWdlIGFuZCBwYXJlbnQgcGFnZXM7IG90aGVyd2lzZSBvbmx5IHRoZSBwYXJlbnRzIGl0ZW1zIHdpbGwgYmUgcmV0dXJuZWQgKGZldV9hY2Nlc3Mgb25seSkKCSAqCgkgKiBAcmV0dXJuIGFycmF5fHN0cmluZyAtIFRoZSBwcm9wIG9mIHRoZSBsYXN0IGZvdW5kIHBhcmVudCB0aGF0IGhhcyBubyBpbmhlcml0YW5jZSBvciBhbiBhcnJheSBvZiBpdGVtcyBvZiBhbGwgcGFyZW50cyB0aGF0IGhhdmUgaW5oZXJpdGFuY2UKCSAqLwoJZnVuY3Rpb24gSW5oZXJpdFBhcmVudFByb3AoJGN1cnJlbnRJZCwgJHBhcmVudElkLCAkcHJvcE5hbWUsICRjdXJyZW50UHJvcCA9IGFycmF5KCkpCgl7CgkJJGN1cnJlbnRJZCA9IGludHZhbCgkY3VycmVudElkKTsKCQkkdGhpcy0+SW5oZXJpdGFibGVzKCRjdXJyZW50SWQpOwoJCWlmKCFpc3NldCgkdGhpcy0+X2luaGVyaXRhYmxlc1skY3VycmVudElkXVskcHJvcE5hbWVdKSkKCQl7CgkJCXJldHVybjsgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbgoJCX0KCQlpZihpc3NldCgkdGhpcy0+X2luaGVyaXRhYmxlc1skcGFyZW50SWRdKSAmJiAkdGhpcy0+X2luaGVyaXRhYmxlc1skcGFyZW50SWRdWyRwcm9wTmFtZV0gPiAtMSkKCQl7CgkJCSR0aGlzLT5faW5oZXJpdGFibGVzWyRjdXJyZW50SWRdWyRwcm9wTmFtZV0gPSAkdGhpcy0+X2luaGVyaXRhYmxlc1skcGFyZW50SWRdWyRwcm9wTmFtZV07CgkJfQoJCWlmKCR0aGlzLT5faW5oZXJpdGFibGVzWyRjdXJyZW50SWRdWyRwcm9wTmFtZV0gPT0gLTEpCgkJewoJCQlpZigkcHJvcE5hbWUgPT0gJ2ZldV9hY2Nlc3MnKQoJCQl7CgkJCQkkdGhpcy0+X2luaGVyaXRhYmxlc1skY3VycmVudElkXVskcHJvcE5hbWVdID0gYXJyYXkoKTsKCQkJCWZvcmVhY2goJGN1cnJlbnRQcm9wIGFzICRrPT4kdikKCQkJCXsKCQkJCQlpZigkdiAhPSAtMSkKCQkJCQl7CgkJCQkJCSR0aGlzLT5faW5oZXJpdGFibGVzWyRjdXJyZW50SWRdWyRwcm9wTmFtZV1bXSA9ICR2OwoJCQkJCX0KCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCSR0aGlzLT5faW5oZXJpdGFibGVzWyRjdXJyZW50SWRdWyRwcm9wTmFtZV0gPSAnJzsKCQkJfQoJCQkkaW5oZXJpdCA9IHRydWU7CgkJCXdoaWxlKCAkcGFyZW50SWQgPiAwICYmICRpbmhlcml0ICYmICRjb250ZW50ID0gJHRoaXMtPkxvYWRDb250ZW50UHJvcHMoJHBhcmVudElkLCAkcHJvcE5hbWUsICdwYXJlbnRfaWQnLCdjb250ZW50MicsMSkpCgkJCXsKCQkJCSRwcm9wVmFsdWUgPSAkY29udGVudFskcGFyZW50SWRdWyRwcm9wTmFtZV07CgkJCQkkcGFyZW50SWQgID0gJGNvbnRlbnRbJHBhcmVudElkXVsncGFyZW50X2lkJ107CgkJCQlpZigkcHJvcE5hbWUgPT0gJ2ZldV9hY2Nlc3MnKQoJCQkJewoJCQkJCSRkZWxpbSA9IHN0cnBvcygkcHJvcFZhbHVlLCcsJykgPT09IEZBTFNFID8gJzsnIDogJywnOwoJCQkJCSRwcm9wVmFsdWUgPSAkdGhpcy0+Q2xlYW5BcnJheShleHBsb2RlKCRkZWxpbSwkcHJvcFZhbHVlKSk7CgkJCQkJZm9yZWFjaCgkcHJvcFZhbHVlIGFzICRfcCkKCQkJCQl7CgkJCQkJCWlmKCFpbl9hcnJheSgkX3AsICR0aGlzLT5faW5oZXJpdGFibGVzWyRjdXJyZW50SWRdWyRwcm9wTmFtZV0pICYmICRfcCAhPSAtMSAmJiAkX3AgIT0gJycpCgkJCQkJCXsKCQkJCQkJCSR0aGlzLT5faW5oZXJpdGFibGVzWyRjdXJyZW50SWRdWyRwcm9wTmFtZV1bXSA9ICRfcDsKCQkJCQkJfQoJCQkJCX0KCQkJCQlpZighaW5fYXJyYXkoLTEsICRwcm9wVmFsdWUpKQoJCQkJCXsKCQkJCQkJJGluaGVyaXQgPSBmYWxzZTsKCQkJCQkJI3JldHVybiAkdGhpcy0+X2luaGVyaXRhYmxlc1skY3VycmVudElkXVskcHJvcE5hbWVdOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UgaWYoJHByb3BWYWx1ZSAhPSAtMSkKCQkJCXsKCQkJCQkkdGhpcy0+X2luaGVyaXRhYmxlc1skY3VycmVudElkXVskcHJvcE5hbWVdID0gJHByb3BWYWx1ZTsKCQkJCQkkaW5oZXJpdCA9IGZhbHNlOwoJCQkJfQoJCQl9CgkJCWlmKGlzc2V0KCR0aGlzLT5faW5oZXJpdGFibGVzWyRwYXJlbnRJZF0pICYmICR0aGlzLT5faW5oZXJpdGFibGVzWyRwYXJlbnRJZF0gPT0gLTEpCgkJCXsKCQkJCSR0aGlzLT5faW5oZXJpdGFibGVzWyRwYXJlbnRJZF1bJHByb3BOYW1lXSA9ICR0aGlzLT5faW5oZXJpdGFibGVzWyRjdXJyZW50SWRdWyRwcm9wTmFtZV07CgkJCX0KCQl9CgkJcmV0dXJuICR0aGlzLT5faW5oZXJpdGFibGVzWyRjdXJyZW50SWRdWyRwcm9wTmFtZV07Cgl9CgkKCS8qKgoJICogTG9hZHMgcHJvcGVydGllcyBhbmQvb3IgYXR0cmlicyBvZiBvbmUgb3IgbW9yZSBjb250ZW50IHBhZ2VzIGZyb20gREIgCgkgKiBDYXV0aW9uISBJZiBubyBpZHMsIHByb3BlcnRpZXMgb3IgYXRyaWJ1dGVzIGFyZSBzcGVjaWZpZWQgaXQgd2lsbCBsb2FkIEFMTCBjb250ZW50IG9mIEFMTCBwYWdlcy4KCSAqCgkgKiBAcGFyYW0gc3RyaW5nfGFycmF5ICRjb250ZW50SWRzIC0gVGhlIGlkcyBvZiB0aGUgY29udGVudCB0byBnZXQgdGhlIHByb3BlcnR5IGZyb20KCSAqIEBwYXJhbSBzdHJpbmd8YXJyYXkgJHByb3BzIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGdldCB0aGUgdmFsdWUgZnJvbQoJICogQHBhcmFtIHN0cmluZ3xhcnJheSAkYXR0cmlicyAtIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQgdGhlIHZhbHVlIGZyb20KCSAqIEBwYXJhbSBzdHJpbmd8YXJyYXkgJGNvbnRlbnRUeXBlcyAob3B0aW9uYWwpIC0gVGhlIHR5cGUgb2YgdGhlIGNvbnRlbnQKCSAqCgkgKiBAcmV0dXJuIG1peGVkIC0gRmFsc2UgaWYgbm90IGV4aXN0cyBvciBhcnJheSgncGFyZW50X2lkJywncHJvcF92YWx1ZScpCgkgKgoJICovCglmdW5jdGlvbiBMb2FkQ29udGVudFByb3BzKCRjb250ZW50SWRzID0gYXJyYXkoKSwgJHByb3BzID0gYXJyYXkoKSwgJGF0dHJpYnMgPSBhcnJheSgpLCAkY29udGVudFR5cGVzID0gYXJyYXkoKSwgJGxpbWl0ID0gJycpCgl7CgkJJGRiICA9JiBjbXNtcygpLT5HZXREYigpOwoJCSRyZXQgPSAgZmFsc2U7CgkJaWYoIWlzX2FycmF5KCRjb250ZW50SWRzKSkKCQl7CgkJCSRjb250ZW50SWRzID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsJGNvbnRlbnRJZHMpKTsKCQl9CgkJaWYoIWlzX2FycmF5KCRwcm9wcykpCgkJewoJCQkkcHJvcHMgPSAkdGhpcy0+Q2xlYW5BcnJheShleHBsb2RlKCcsJywkcHJvcHMpKTsKCQl9CgkJaWYoIWlzX2FycmF5KCRhdHRyaWJzKSkKCQl7CgkJCSRhdHRyaWJzID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsJGF0dHJpYnMpKTsKCQl9CgkJaWYoIWlzX2FycmF5KCRjb250ZW50VHlwZXMpKQoJCXsKCQkJJGNvbnRlbnRUeXBlcyA9ICR0aGlzLT5DbGVhbkFycmF5KGV4cGxvZGUoJywnLCRjb250ZW50VHlwZXMpKTsKCQl9CgkJJHdoZXJlX2lkcyAgICAgICAgICA9IGFycmF5KCk7CgkJJHdoZXJlX3Byb3BzICAgICAgICA9IGFycmF5KCk7CgkJJHdoZXJlX2NvbnRlbnRUeXBlcyA9IGFycmF5KCk7CgkJJHBhcmFtcyAgICAgICAgICAgICA9IGFycmF5KCk7CgkJJHNlbGVjdCAgICAgICAgICAgICA9IGFycmF5KCk7CgkJZm9yZWFjaCgkY29udGVudElkcyBhcyAkY0lkKQoJCXsKCQkJJHdoZXJlX2lkc1tdID0gIiBDLmNvbnRlbnRfaWQgPSA/ICI7CgkJCSRwYXJhbXNbXSAgICA9ICRjSWQ7CgkJfQoJCWlmKGNvdW50KCRwcm9wcykpIHsKCQkJJHNlbGVjdFtdID0gIiBDUC5jb250ZW50ICI7CgkJCSRzZWxlY3RbXSA9ICIgQ1AucHJvcF9uYW1lICI7CgkJCWZvcmVhY2goJHByb3BzIGFzICRwKQoJCQl7CgkJCQkkd2hlcmVfcHJvcHNbXSA9ICIgQ1AucHJvcF9uYW1lID0gPyAiOwoJCQkJJHBhcmFtc1tdICAgICAgPSAkcDsKCQkJfQoJCX0KCQlmb3JlYWNoKCRhdHRyaWJzIGFzICRhKQoJCXsKCQkJJHNlbGVjdFtdID0gIiBDLiRhICI7CgkJfQoJCWZvcmVhY2goJGNvbnRlbnRUeXBlcyBhcyAkdCkKCQl7CgkJCSR3aGVyZV9jb250ZW50VHlwZXNbXSA9ICIgQy50eXBlID0gPyAiOwoJCQkkcGFyYW1zW10gICAgICAgICAgICAgPSAkdDsKCQl9CgkJJHF1ZXJ5ID0gIlNFTEVDVCAiOwoJCWlmKGNvdW50KCRzZWxlY3QpKQoJCXsKCQkJJHF1ZXJ5IC49ICdDLmNvbnRlbnRfaWQsJy5pbXBsb2RlKCcsJywkc2VsZWN0KTsKCQl9CgkJZWxzZQoJCXsKCQkJJHF1ZXJ5IC49ICIgKiAiOwoJCX0KCQkKCQkkcXVlcnkgLj0gIiBGUk9NICIgLiBjbXNfZGJfcHJlZml4KCkgLiAiY29udGVudF9wcm9wcyBDUAoJCQlMRUZUIEpPSU4gIiAuIGNtc19kYl9wcmVmaXgoKSAuICJjb250ZW50IEMgT04gQy5jb250ZW50X2lkID0gQ1AuY29udGVudF9pZCAiOwoJCQoJCSR3aGVyZSA9IGFycmF5KCk7CgkJaWYoY291bnQoJHdoZXJlX2lkcykpCgkJewoJCQkkd2hlcmVbXSA9ICcgKCAnIC4gaW1wbG9kZSgnIE9SICcsJHdoZXJlX2lkcykgLiAnICkgJzsKCQl9CgkJaWYoY291bnQoJHdoZXJlX3Byb3BzKSkKCQl7CgkJCSR3aGVyZVtdID0gJyAoICcgLiBpbXBsb2RlKCcgT1IgJywkd2hlcmVfcHJvcHMpIC4gJyApICc7CgkJfQoJCWlmKGNvdW50KCR3aGVyZV9jb250ZW50VHlwZXMpKQoJCXsKCQkJJHdoZXJlW10gPSAnICggJyAuIGltcGxvZGUoJyBPUiAnLCR3aGVyZV9jb250ZW50VHlwZXMpIC4gJyApICc7CgkJfQoJCWlmKGNvdW50KCR3aGVyZSkpCgkJewoJCQkkcXVlcnkgLj0gIiBXSEVSRSAiIC4gaW1wbG9kZSgnIEFORCAnLCAkd2hlcmUpOwoJCX0KCQlpZigkbGltaXQpCgkJewoJCQkkcXVlcnkgLj0gIiBMSU1JVCAkbGltaXQiOwoJCX0KCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCAkcGFyYW1zKTsKCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJCSRjSWQgICAgICAgPSAkcm93Wydjb250ZW50X2lkJ107CgkJCSRyZXRbJGNJZF0gPSBhcnJheSgpOwoJCQl1bnNldCgkcm93Wydjb250ZW50X2lkJ10pOwoJCQlpZihjb3VudCgkcHJvcHMpKQoJCQl7CgkJCQkkcmV0WyRjSWRdWyRyb3dbJ3Byb3BfbmFtZSddXSA9ICRyb3dbJ2NvbnRlbnQnXTsKCQkJCXVuc2V0KCRyb3dbJ3Byb3BfbmFtZSddKTsKCQkJCXVuc2V0KCRyb3dbJ2NvbnRlbnQnXSk7CgkJCX0KCQkJaWYoY291bnQoJGF0dHJpYnMpKQoJCQl7CgkJCQkkcmV0WyRjSWRdID0gYXJyYXlfbWVyZ2UoJHJldFskY0lkXSwgJHJvdyk7CgkJCX0KCQl9CgkJcmV0dXJuICRyZXQ7Cgl9CgkKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/contenttype.Content2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLwojICAgICAgICAgIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDExIGJ5IFRlZCBLdWxwCiMgICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVmVyc2lvbjogMC44CiMgRmlsZSAgIDogY29udGVudHR5cGUuQ29udGVudDIucGhwCiMgICAgICAgICAgVGhpcyBmaWxlIGlzIGEgbW9kaWZpY2F0aW9uIG9mIHRoZSBkZWZhdWx0IGNvbnRlbnQgdHlwZSAiQ29udGVudCIKIyBQdXJwb3NlOiB0aGUgY29udGVudCBvYmplY3QKIyBMaWNlbnNlOiBHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY2xhc3MgQ29udGVudDIgZXh0ZW5kcyBDTVNNb2R1bGVDb250ZW50VHlwZQp7CgkvKioKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICogQHZhciBzdHJpbmcKCSAqLwoJdmFyICRfc3R5bGVzaGVldDsKCQoJLyoqCgkgKiBAYWNjZXNzIHByaXZhdGUKCSAqIEB2YXIgYXJyYXkKCSAqLwoJdmFyICRfY29udGVudEJsb2NrczsKCQoJLyoqCgkgKiBAYWNjZXNzIHByaXZhdGUKCSAqIEB2YXIgYm9vbGVhbgoJICovCgl2YXIgJF9jb250ZW50QmxvY2tzTG9hZGVkOwoJCgkvKioKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICogQHZhciBhcnJheQoJICovCgl2YXIgJF90YWJJZHM7CgkKCS8qKgoJICogQGFjY2VzcyBwcml2YXRlCgkgKiBAdmFyIGFycmF5CgkgKi8KCXZhciAkX3BhZ2VUYWJzOwoJCgkvKioKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICogQHZhciBhcnJheQoJICovCgl2YXIgJF9ibG9ja1RhYnM7CgkKCS8qKgoJICogQGFjY2VzcyBwcml2YXRlCgkgKiBAdmFyIGFycmF5CgkgKi8KCXZhciAkX2Jsb2NrR3JvdXBzOwoJCgkvKioKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICogQHZhciBhcnJheQoJICovCgl2YXIgJF91c2VyR3JvdXBzOwoJCgkvKioKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICogQHZhciBhcnJheQoJICovCgl2YXIgJF9kYXRlQmxvY2tzOwoJCgkvKioKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICogQHZhciBhcnJheQoJICovCgl2YXIgJF9jb2xvclBpY2tlckJsb2NrczsKCQoJLyoqCgkgKiBAYWNjZXNzIHByaXZhdGUKCSAqIEB2YXIgYXJyYXkKCSAqLwoJdmFyICRfc2xpZGVyQmxvY2tzOwoJCgkvKioKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICogQHZhciBhcnJheQoJICovCgl2YXIgJF9tdWx0aUlucHV0czsKCQoJLyoqCgkgKiBAYWNjZXNzIHByaXZhdGUKCSAqIEB2YXIgYm9vbGVhbgoJICovCgl2YXIgJF9pc0FkbWluOwoJCgkvKioKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICogQHZhciBib29sZWFuCgkgKi8KCXZhciAkX2ZldUFjdGlvbjsKCQoJLyoqCgkgKiBAYWNjZXNzIHByaXZhdGUKCSAqIEB2YXIgYm9vbGVhbgoJICovCgl2YXIgJF9mZXVBY2Nlc3M7CgkKCS8qKgoJICogQGFjY2VzcyBwcml2YXRlCgkgKiBAdmFyIGFycmF5CgkgKi8KCXZhciAkX2ZldUdyb3VwczsKCQoJLyoqCgkgKiBAYWNjZXNzIHByaXZhdGUKCSAqIEB2YXIgYXJyYXkKCSAqLwoJdmFyICRfYWxsVXNlcnM7CgkKCS8qKgoJICogQGFjY2VzcyBwcml2YXRlCgkgKiBAdmFyIGFycmF5CgkgKi8KCXZhciAkX2FsbEdyb3VwczsKCQoJLyoqCgkgKiBAYWNjZXNzIHByaXZhdGUKCSAqIEB2YXIgYXJyYXkKCSAqLwoJdmFyICRfaW5oZXJpdGFibGVzOwoJI3ZhciAkX2xvYWRlZFByb3BzOwoJCgkvKioKCSAqIE1MRSBzdXBwb3J0CgkgKiBAYWNjZXNzIHB1YmxpYwoJICogQHZhciBib29sZWFuCgkgKi8KCXZhciAkbWxlID0gZmFsc2U7CgkKCS8qKgoJICogTUxFIHN1cHBvcnQKCSAqIEBhY2Nlc3MgcHVibGljCgkgKiBAdmFyIHN0cmluZwoJICovCgl2YXIgJGxhbmc7CgkKCS8qKgoJICogTUxFIHN1cHBvcnQKCSAqIEBhY2Nlc3MgcHVibGljCgkgKiBAdmFyIHN0cmluZwoJICovCgl2YXIgJGJsb2NrTGFuZzsKCQoJLyoqCgkgKiBNTEUgc3VwcG9ydAoJICogQGFjY2VzcyBwdWJsaWMKCSAqIEB2YXIgc3RyaW5nCgkgKi8KCXZhciAkZGVmYXVsdEJsb2NrTGFuZzsKCQoJCgkvKioKCSAqIENvbnN0cnVjdG9yCgkgKi8KCWZ1bmN0aW9uIENvbnRlbnQyKCkKCXsKCQlwYXJlbnQ6OkNvbnRlbnRCYXNlKCk7CgkJJHRoaXMtPl9jb250ZW50QmxvY2tzICAgICAgID0gYXJyYXkoKTsKCQkkdGhpcy0+X2NvbnRlbnRCbG9ja3NMb2FkZWQgPSBmYWxzZTsKCQkkdGhpcy0+X2ZldUFjdGlvbiAgICAgICAgICAgPSBmYWxzZTsKCQkkdGhpcy0+X2ZldUFjY2VzcyAgICAgICAgICAgPSAtMTsKCQkkdGhpcy0+X2ZldUdyb3VwcyAgICAgICAgICAgPSBmYWxzZTsKCQkkdGhpcy0+X211bHRpSW5wdXRzICAgICAgICAgPSBhcnJheSgpOwoJCQoJCWdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CgkJaWYoaXNzZXQoJENNU19BRE1JTl9QQUdFKSAmJiAkQ01TX0FETUlOX1BBR0UgPT0gMSkKCQl7CgkJCSRBZHZhbmNlZENvbnRlbnQgICAgICAgICAgPSYgY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBZHZhbmNlZENvbnRlbnQnKTsKCQkJJHRoaXMtPl90YWJJZHMgICAgICAgICAgICA9IGFycmF5KCk7CgkJCSR0aGlzLT5fZGF0ZUJsb2NrcyAgICAgICAgPSBhcnJheSgpOwoJCQkkdGhpcy0+X2NvbG9yUGlja2VyQmxvY2tzID0gYXJyYXkoKTsKCQkJJHRoaXMtPl9ibG9ja1RhYnMgICAgICAgICA9IGFycmF5KCk7CgkJCSR0aGlzLT5fYmxvY2tHcm91cHMgICAgICAgPSBhcnJheSgpOwoJCQkKCQkJJHRoaXMtPl9wYWdlVGFicyA9IGFycmF5KAoJCQkJJ21haW4nID0+IGFycmF5KAoJCQkJCSd0YWJfaWQnICAgICAgICAgPT4gJ21haW4nLAoJCQkJCSd0YWJfbmFtZScgICAgICAgPT4gbGFuZygnbWFpbicpLAoJCQkJCSdibG9ja190YWJzJyAgICAgPT4gYXJyYXkoKSwKCQkJCQknYmxvY2tfZ3JvdXBzJyAgID0+IGFycmF5KCksCgkJCQkJJ2NvbnRlbnRfYmxvY2tzJyA9PiBhcnJheSgpKSk7CgkJCSR0aGlzLT5fdGFiSWRzW10gPSAnbWFpbic7CgkJCQoJCQlpZiggY2hlY2tfcGVybWlzc2lvbihnZXRfdXNlcmlkKCksICdNYW5hZ2UgQWxsIENvbnRlbnQnKSApCgkJCXsKCQkJCSR0aGlzLT5fcGFnZVRhYnNbJ29wdGlvbnMnXSA9IGFycmF5KAoJCQkJCSd0YWJfaWQnICAgICAgICAgPT4gJ29wdGlvbnMnLAoJCQkJCSd0YWJfbmFtZScgICAgICAgPT4gbGFuZygnb3B0aW9ucycpLAoJCQkJCSdibG9ja190YWJzJyAgICAgPT4gYXJyYXkoKSwKCQkJCQknYmxvY2tfZ3JvdXBzJyAgID0+IGFycmF5KCksCgkJCQkJJ2NvbnRlbnRfYmxvY2tzJyA9PiBhcnJheSgpKTsKCQkJCSR0aGlzLT5fdGFiSWRzW10gPSAnb3B0aW9ucyc7CgkJCX0KCQkJCgkJCWlmKCBjaGVja19wZXJtaXNzaW9uKGdldF91c2VyaWQoKSwgJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgT3B0aW9ucycpICYmICRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSkgKQoJCQl7CgkJCQkkdGhpcy0+X3BhZ2VUYWJzWydBZHZhbmNlZENvbnRlbnQnXSA9IGFycmF5KAoJCQkJCSd0YWJfaWQnICAgICAgICAgPT4gJ0FkdmFuY2VkQ29udGVudCcsCgkJCQkJJ3RhYl9uYW1lJyAgICAgICA9PiAkQWR2YW5jZWRDb250ZW50LT5sYW5nKCdhZHZhbmNlZGNvbnRlbnRfdGFibmFtZScpLAoJCQkJCSdibG9ja190YWJzJyAgICAgPT4gYXJyYXkoKSwKCQkJCQknYmxvY2tfZ3JvdXBzJyAgID0+IGFycmF5KCksCgkJCQkJJ2NvbnRlbnRfYmxvY2tzJyA9PiBhcnJheSgpKTsKCQkJCSR0aGlzLT5fdGFiSWRzW10gPSAnQWR2YW5jZWRDb250ZW50JzsKCQkJfQoJCX0KCQkKCQkjIE1MRSBzdXBwb3J0CgkJZ2xvYmFsICRobHMsICRtbGVibG9jaywgJG1sZWJsb2NrZmFsbGJhY2s7CgkJaWYoaXNzZXQoJGhscykpCgkJewoJCQkkdGhpcy0+bWxlICAgICAgICAgICAgICA9IHRydWU7CgkJCSR0aGlzLT5sYW5nICAgICAgICAgICAgID0gJGhsczsKCQkJJHRoaXMtPmJsb2NrTGFuZyAgICAgICAgPSAkbWxlYmxvY2s7CgkJCSR0aGlzLT5kZWZhdWx0QmxvY2tMYW5nID0gJG1sZWJsb2NrZmFsbGJhY2s7CgkJfQoJCSMtLS0KCX0KCQoJZnVuY3Rpb24gTW9kdWxlTmFtZSgpCgl7CgkJcmV0dXJuICdBZHZhbmNlZENvbnRlbnQnOwoJfQoJCglmdW5jdGlvbiBJc0RlZmF1bHRQb3NzaWJsZSgpCgl7CgkJcmV0dXJuIFRSVUU7Cgl9CgkKCWZ1bmN0aW9uIElzQ29weWFibGUoKQoJewoJCXJldHVybiBUUlVFOwoJfQoJCglmdW5jdGlvbiBGcmllbmRseU5hbWUoKQoJewoJCWlmKGJhc2VuYW1lKCRfU0VSVkVSWydQSFBfU0VMRiddKSA9PSAnbGlzdGNvbnRlbnQucGhwJykKCQl7CgkJCSRhZGRUeHQgPSBhcnJheSgpOwoJCQlpZigkdGhpcy0+bUNhY2hhYmxlKQoJCQl7CgkJCQkkYWRkVHh0W10gPSAnLSZuYnNwOycubGFuZygnY2FjaGFibGUnKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRhZGRUeHRbXSA9ICctJm5ic3A7Jy5sYW5nKCdub25jYWNoYWJsZScpOwoJCQl9CgkJCWlmKCR0aGlzLT5tU2VjdXJlKQoJCQl7CgkJCQkkYWRkVHh0W10gPSAnLSZuYnNwO1NTTCc7CgkJCX0KCQkJaWYoISR0aGlzLT5tU2hvd0luTWVudSkKCQkJewoJCQkJJGFkZFR4dFtdID0gJy0mbmJzcDsnLmxhbmcoJ2hpZGVmcm9tbWVudScpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJGFkZFR4dFtdID0gJy0mbmJzcDsnLmxhbmcoJ3Nob3dpbm1lbnUnKTsKCQkJfQoJCQlpZihjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpLT5HZXRQcmVmZXJlbmNlKCd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnMnLDEpKQoJCQl7CgkJCQlpZigkZmV1c2VycyA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKSkKCQkJCXsKCQkJCQkkc2VsZWN0ZWRHcm91cHMgPSAkdGhpcy0+R2V0UHJvcGVydHkoJ2ZldV9hY2Nlc3MnKTsKCQkJCQlpZihjb3VudCgkc2VsZWN0ZWRHcm91cHMpKQoJCQkJCXsKCQkJCQkJJGFkZFR4dFtdID0gJy0mbmJzcDsnLiR0aGlzLT5sYW5nKCdmcm9udGVuZGFjY2VzcycpLic6IDx1bD48bGk+JyAuIGltcGxvZGUoJzwvbGk+PGxpPicsYXJyYXlfa2V5cyhhcnJheV9pbnRlcnNlY3QoJGZldXNlcnMtPkdldEdyb3VwTGlzdCgpLCAkc2VsZWN0ZWRHcm91cHMpKSkuJzwvbGk+PC91bD4nOwoJCQkJCQkkcmVkaXJlY3RQYWdlID0gJHRoaXMtPkdldFByb3BlcnR5KCdyZWRpcmVjdF9wYWdlJyk7CgkJCQkJCWlmKCRyZWRpcmVjdFBhZ2UpCgkJCQkJCXsKCQkJCQkJCSRhZGRUeHRbXSA9ICctJm5ic3A7JyAuICR0aGlzLT5sYW5nKCdyZWRpcmVjdHBhZ2UnKSAuICc6ICcuJHJlZGlyZWN0UGFnZTsKCQkJCQkJfQoJCQkJCQkkcmVkaXJlY3RQYXJhbXMgPSAkdGhpcy0+R2V0UHJvcGVydHkoJ3JlZGlyZWN0X3BhcmFtcycpOwoJCQkJCQlpZigkcmVkaXJlY3RQYXJhbXMpCgkJCQkJCXsKCQkJCQkJCSRhZGRUeHRbXSA9ICctJm5ic3A7JyAuICR0aGlzLT5sYW5nKCdyZWRpcmVjdHBhcmFtcycpIC4gJzogJy4kcmVkaXJlY3RQYXJhbXM7CgkJCQkJCX0KCQkJCQl9CgkJCQkJJGhpZGVfbWVudV9pdGVtID0gJHRoaXMtPkdldFByb3BlcnR5KCdoaWRlX21lbnVfaXRlbScpOwoJCQkJCWlmKCRoaWRlX21lbnVfaXRlbSA9PSAyIHx8ICgkaGlkZV9tZW51X2l0ZW0gPT0gMSAmJiBjb3VudCgkc2VsZWN0ZWRHcm91cHMpKSkKCQkJCQl7CgkJCQkJCSRhZGRUeHRbXSA9ICctJm5ic3A7JyAuICR0aGlzLT5sYW5nKCdoaWRlX21lbnVfaXRlbScpIC4gJzogJy4gKCRoaWRlX21lbnVfaXRlbSA9PSAxID8gJHRoaXMtPmxhbmcoJ2xvZ2dlZG91dCcpIDogJHRoaXMtPmxhbmcoJ2xvZ2dlZGluJykpOwoJCQkJCX0KCQkJCX0KCQkJCWlmKCR0aGlzLT5HZXRQcm9wZXJ0eSgndXNlX2V4cGlyZV9kYXRlJykpCgkJCQl7CgkJCQkJJGFkZFR4dFtdICAgPSAnLSZuYnNwOycuJHRoaXMtPmxhbmcoJ3N0YXJ0ZGF0ZScpLic6ICcuc3RyZnRpbWUoJyV4ICVIOiVNJywkdGhpcy0+R2V0UHJvcGVydHkoJ3N0YXJ0X2RhdGUnKSk7CgkJCQkJJGFkZFR4dFtdICAgPSAnLSZuYnNwOycuJHRoaXMtPmxhbmcoJ2VuZGRhdGUnKS4nOiAnLnN0cmZ0aW1lKCcleCAlSDolTScsJHRoaXMtPkdldFByb3BlcnR5KCdlbmRfZGF0ZScpKTsKCQkJCX0KCQkJfQoJCQlpZihjb3VudCgkYWRkVHh0KSkKCQkJewoJCQkJcmV0dXJuICc8c3BhbiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrIiBvbm1vdXNlb3Zlcj0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCcnLiR0aGlzLT5tSWQuJ19pbmZvXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ2Jsb2NrXCc7IiBvbm1vdXNlb3V0PSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJycuJHRoaXMtPm1JZC4nX2luZm9cJykuc3R5bGUuZGlzcGxheSA9IFwnbm9uZVwnOyI+JyAuICR0aGlzLT5sYW5nKCdBZHZhbmNlZENvbnRlbnQnKSAuICc8c3BhbiBpZD0iJy4kdGhpcy0+bUlkLidfaW5mbyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I0ZGRjtib3JkZXI6MXB4IHNvbGlkICMwMDA7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZzo1cHg7ZGlzcGxheTpub25lOy1tb3otYm94LXNoYWRvdzoxcHggMXB4IDEwcHggIzY2NjY2Njstd2Via2l0LWJveC1zaGFkb3c6MXB4IDFweCAxMHB4ICM2NjY2NjY7Ym94LXNoYWRvdzoxcHggMXB4IDEwcHggIzY2NjY2Njt6LWluZGV4Ojk5OSI+JyAuIGltcGxvZGUoJzxiciAvPicsJGFkZFR4dCkgLiAnPC9zcGFuPjwvc3Bhbj4nOwoJCQl9CgkJfQoJCQoJCXJldHVybiAkdGhpcy0+bGFuZygnQWR2YW5jZWRDb250ZW50Jyk7Cgl9CgkKCWZ1bmN0aW9uIEdldFByb3BlcnR5KCRwcm9wTmFtZSkKCXsKCQkjaWYoJHRoaXMtPm1JZCA9PSBjbXNfdXRpbHM6OmdldF9jdXJyZW50X3BhZ2VpZCgpKQoJCSN7CgkJIwkkcHJvcFZhbHVlID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJHByb3BOYW1lKTsKCQkjfQoJCSNlbHNlIAoJCSN7CgkJIwlpZighJHRoaXMtPl9sb2FkZWRQcm9wcykKCQkjCXsKCQkjCQkkdGhpcy0+X2xvYWRlZFByb3BzID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50JyktPkxvYWRlZFByb3BzKCR0aGlzLT5tSWQpOwoJCSMJfQoJCSMJaWYoaXNzZXQoJHRoaXMtPl9sb2FkZWRQcm9wc1skcHJvcE5hbWVdKSkKCQkjCXsKCQkjCQkkcHJvcFZhbHVlID0gJHRoaXMtPl9sb2FkZWRQcm9wc1skcHJvcE5hbWVdOwoJCSMJfQoJCSMJZWxzZQoJCSMJewoJCSMJCSRwcm9wID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBZHZhbmNlZENvbnRlbnQnKS0+TG9hZENvbnRlbnRQcm9wcygkdGhpcy0+bUlkLCAkcHJvcE5hbWUsICcnLCAkdGhpcy0+bVR5cGUsIDEpOwoJCSMJCSRwcm9wVmFsdWUgPSAkcHJvcFskdGhpcy0+bUlkXVskcHJvcE5hbWVdOwoJCSMJCSMkdGhpcy0+bVByb3BlcnRpZXMtPlNldFZhbHVlKCRwcm9wTmFtZSwgJHByb3BWYWx1ZSk7CgkJIwkJJHRoaXMtPl9sb2FkZWRQcm9wc1skcHJvcE5hbWVdID0gJHByb3BWYWx1ZTsKCQkjCX0KCQkjfQoJCQoJCSRwcm9wVmFsdWUgPSAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgkcHJvcE5hbWUpOwoJCWlmKGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50JyktPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSkpCgkJewoJCQlpZighJHRoaXMtPl9pbmhlcml0YWJsZXMpCgkJCXsKCQkJCSR0aGlzLT5faW5oZXJpdGFibGVzID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50JyktPkluaGVyaXRhYmxlcygkdGhpcy0+bUlkKTsKCQkJfQoJCQlpZighaXNzZXQoJHRoaXMtPl9pbmhlcml0YWJsZXNbJHByb3BOYW1lXSkpCgkJCXsKCQkJCXJldHVybiAkcHJvcFZhbHVlOwoJCQl9CgkJCSRpbmhlcml0ID0gZmFsc2U7CgkJCWlmKCRwcm9wTmFtZSA9PSAnZmV1X2FjY2VzcycpCgkJCXsKCQkJCSRkZWxpbSAgICAgPSBzdHJwb3MoJHByb3BWYWx1ZSwnLCcpID09PSBGQUxTRSA/ICc7JyA6ICcsJzsKCQkJCSRwcm9wVmFsdWUgPSAkdGhpcy0+Q2xlYW5BcnJheShleHBsb2RlKCRkZWxpbSwkcHJvcFZhbHVlKSk7CgkJCQlpZihpbl9hcnJheSgtMSwkcHJvcFZhbHVlKSkKCQkJCXsKCQkJCQkkaW5oZXJpdCA9IHRydWU7CgkJCQl9CgkJCX0KCQkJZWxzZSBpZigkcHJvcFZhbHVlID09IC0xKQoJCQl7CgkJCQkkaW5oZXJpdCA9IHRydWU7CgkJCX0KCQkJaWYoJGluaGVyaXQpCgkJCXsKCQkJCSRwcm9wVmFsdWUgPSAkdGhpcy0+SW5oZXJpdFBhcmVudFByb3AoJHByb3BOYW1lLCRwcm9wVmFsdWUpOwoJCQl9CgkJCQoJCQkjaWYoJHByb3BOYW1lID09ICdmZXVfYWNjZXNzJykKCQkJI3sKCQkJIwkjJHRoaXMtPm1Qcm9wZXJ0aWVzLT5TZXRWYWx1ZSgkcHJvcE5hbWUsIGltcGxvZGUoJywnLCRwcm9wVmFsdWUpKTsKCQkJIwkkdGhpcy0+X2xvYWRlZFByb3BzWyRwcm9wTmFtZV0gPSBpbXBsb2RlKCcsJywkcHJvcFZhbHVlKTsKCQkJI30KCQkJI2Vsc2UKCQkJI3sKCQkJIwkjJHRoaXMtPm1Qcm9wZXJ0aWVzLT5TZXRWYWx1ZSgkcHJvcE5hbWUsICRwcm9wVmFsdWUpOwoJCQkjCSR0aGlzLT5fbG9hZGVkUHJvcHNbJHByb3BOYW1lXSA9ICRwcm9wVmFsdWU7CgkJCSN9CgkJCQoJCQkjZWNobyAiPHByZT4iOwoJCQkjZWNobyAiPGNvZGU+IjsKCQkJI3ByaW50X3IoJHRoaXMtPm1Qcm9wZXJ0aWVzLT5tUHJvcGVydHlWYWx1ZXMpOwoJCQkjZWNobyAiPC9jb2RlPiI7CgkJCSNlY2hvICI8L3ByZT4iOwoJCX0KCQlyZXR1cm4gJHByb3BWYWx1ZTsKCX0KCQoJZnVuY3Rpb24gJmdldF9jb250ZW50X2Jsb2NrcygpCgl7CgkJJHRoaXMtPnBhcnNlX2NvbnRlbnRfYmxvY2tzKCk7CgkJcmV0dXJuICR0aGlzLT5fY29udGVudEJsb2NrczsKCX0KCQoJZnVuY3Rpb24gJmdldF9ibG9ja19ncm91cHMoKQoJewoJCSR0aGlzLT5wYXJzZV9jb250ZW50X2Jsb2NrcygpOwoJCXJldHVybiAkdGhpcy0+X2Jsb2NrR3JvdXBzOwoJfQoJCglmdW5jdGlvbiAmZ2V0X211bHRpX2lucHV0cygpCgl7CgkJJHRoaXMtPnBhcnNlX2NvbnRlbnRfYmxvY2tzKCk7CgkJcmV0dXJuICR0aGlzLT5fbXVsdGlJbnB1dHM7Cgl9CgkKCWZ1bmN0aW9uICZnZXRfbXVsdGlfY29udGVudHMoJGJsb2NrTmFtZSkKCXsKCQkjIFRvRG8KCX0KCQoJZnVuY3Rpb24gU2hvd0luTWVudSgpCgl7CgkJaWYoY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBZHZhbmNlZENvbnRlbnQnKS0+R2V0UHJlZmVyZW5jZSgndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJywxKSkKCQl7CgkJCWlmKCR0aGlzLT5HZXRQcm9wZXJ0eSgndXNlX2V4cGlyZV9kYXRlJykpCgkJCXsKCQkJCSRzdGFydF9kYXRlID0gJHRoaXMtPkdldFByb3BlcnR5KCdzdGFydF9kYXRlJyk7CgkJCQkkZW5kX2RhdGUgICA9ICR0aGlzLT5HZXRQcm9wZXJ0eSgnZW5kX2RhdGUnKTsKCQkJCWlmKCgkc3RhcnRfZGF0ZSA+IHRpbWUoKSB8fCAkZW5kX2RhdGUgPCB0aW1lKCkpICYmICR0aGlzLT5tQWN0aXZlKQoJCQkJewoJCQkJCSNjbXNtcygpLT5HZXRTbWFydHkoKS0+Y2xlYXJfYWxsX2NhY2hlKCk7ICM/Pz8KCQkJCQkkdGhpcy0+bUFjdGl2ZSA9IGZhbHNlOwoJCQkJCSR0aGlzLT5tU2hvd0luTWVudSA9IGZhbHNlOwoJCQkJfQoJCQkJZWxzZSBpZigkc3RhcnRfZGF0ZSA8IHRpbWUoKSAmJiAkZW5kX2RhdGUgPiB0aW1lKCkgJiYgISR0aGlzLT5tQWN0aXZlKQoJCQkJewoJCQkJCSNjbXNtcygpLT5HZXRTbWFydHkoKS0+Y2xlYXJfYWxsX2NhY2hlKCk7ICM/Pz8KCQkJCQkkdGhpcy0+bUFjdGl2ZSA9IHRydWU7CgkJCQl9CgkJCX0KCQkJZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKCQkJaWYoIWlzc2V0KCRDTVNfQURNSU5fUEFHRSkgfHwgJENNU19BRE1JTl9QQUdFICE9PSAxKQoJCQl7CgkJCQlpZigkdGhpcy0+R2V0UHJvcGVydHkoJ2hpZGVfbWVudV9pdGVtJykpCgkJCQl7CgkJCQkJaWYoJHRoaXMtPkdldFByb3BlcnR5KCdoaWRlX21lbnVfaXRlbScpID09IDEpCgkJCQkJewoJCQkJCQkkdGhpcy0+bVNob3dJbk1lbnUgPSAkdGhpcy0+Q2hlY2tGcm9udGVuZFBhZ2VBY2Nlc3MoKTsKCQkJCQl9CgkJCQkJZWxzZSBpZigkdGhpcy0+R2V0UHJvcGVydHkoJ2hpZGVfbWVudV9pdGVtJykgPT0gMiAmJiAkZmV1c2VycyA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKSkKCQkJCQl7CgkJCQkJCSR0aGlzLT5tU2hvd0luTWVudSA9ICEkZmV1c2Vycy0+TG9nZ2VkSW4oKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuICR0aGlzLT5tU2hvd0luTWVudTsKCX0KCQoJZnVuY3Rpb24gQWN0aXZlKCkKCXsKCQlpZihjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpLT5HZXRQcmVmZXJlbmNlKCd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnMnLDEpKQoJCXsKCQkJaWYoJHRoaXMtPkdldFByb3BlcnR5KCd1c2VfZXhwaXJlX2RhdGUnKSkKCQkJewoJCQkJJHN0YXJ0X2RhdGUgPSAkdGhpcy0+R2V0UHJvcGVydHkoJ3N0YXJ0X2RhdGUnKTsKCQkJCSRlbmRfZGF0ZSAgID0gJHRoaXMtPkdldFByb3BlcnR5KCdlbmRfZGF0ZScpOwoJCQkJaWYoKCRzdGFydF9kYXRlID4gdGltZSgpIHx8ICRlbmRfZGF0ZSA8IHRpbWUoKSkgJiYgJHRoaXMtPm1BY3RpdmUpCgkJCQl7CgkJCQkJI2Ntc21zKCktPkdldFNtYXJ0eSgpLT5jbGVhcl9hbGxfY2FjaGUoKTsgIz8/PwoJCQkJCSR0aGlzLT5tQWN0aXZlID0gZmFsc2U7CgkJCQkJJHRoaXMtPm1TaG93SW5NZW51ID0gZmFsc2U7CgkJCQkJLy8gVG9EbzogU2V0IHBhZ2UgaW4gREIgdG8gaW5hY3RpdmU/CgkJCQl9CgkJCQllbHNlIGlmKCRzdGFydF9kYXRlIDwgdGltZSgpICYmICRlbmRfZGF0ZSA+IHRpbWUoKSAmJiAhJHRoaXMtPm1BY3RpdmUpCgkJCQl7CgkJCQkJI2Ntc21zKCktPkdldFNtYXJ0eSgpLT5jbGVhcl9hbGxfY2FjaGUoKTsgIz8/PwoJCQkJCSR0aGlzLT5tQWN0aXZlID0gdHJ1ZTsKCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gJHRoaXMtPm1BY3RpdmU7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gX2dldF9ibG9ja19pbmZvKCR3aG9sZXRhZykKCXsKCQkkcGF0dGVybiAgID0gJy8oW1x3XSspPShbIl1bXiJdKlsiXXxbXCddW15cJ10qW1wnXXxbXlwnIlxzXSopLyc7CgkJJGJsb2NrSW5mbyA9IGFycmF5KCk7CgkJJEFkdmFuY2VkQ29udGVudCA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpOwoJCQoJCSMgZ2V0IHRoZSBhcmd1bWVudHMuCgkJJG1hdGNoZXMgPSBhcnJheSgpOwoJCSRyZXN1bHQgID0gcHJlZ19tYXRjaF9hbGwoJHBhdHRlcm4sICR3aG9sZXRhZywgJG1hdGNoZXMpOwoJCQoJCSRrZXl2YWwgPSBhcnJheSgpOwoJCWZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRtYXRjaGVzWzFdKTsgJGkrKykKCQl7CgkJCWlmKHN0YXJ0c3dpdGgoJG1hdGNoZXNbMl1bJGldLCdcJycpKQoJCQl7CgkJCQkkbWF0Y2hlc1syXVskaV0gPSB0cmltKCRtYXRjaGVzWzJdWyRpXSwnXCcnKTsKCQkJfQoJCQllbHNlIGlmKHN0YXJ0c3dpdGgoJG1hdGNoZXNbMl1bJGldLCciJykpCgkJCXsKCQkJCSRtYXRjaGVzWzJdWyRpXSA9IHRyaW0oJG1hdGNoZXNbMl1bJGldLCciJyk7CgkJCX0KCQkJCgkJCSRrZXl2YWxbc3RydG9sb3dlcigkbWF0Y2hlc1sxXVskaV0pXSA9ICRtYXRjaGVzWzJdWyRpXTsKCQl9CgkJCgkJaWYoaXNzZXQoJGtleXZhbFsnYWN0aXZlJ10pICYmICR0aGlzLT5Jc0ZhbHNlKCRrZXl2YWxbJ2FjdGl2ZSddKSkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJCgkJJGJsb2NrSW5mb1snbmFtZSddID0gJ2NvbnRlbnRfZW4nOwoJCQoJCSMgTUxFIHN1cHBvcnQKCQlpZigkdGhpcy0+bWxlICYmICR0aGlzLT5ibG9ja0xhbmcgIT0gJycpCgkJewoJCQkkYmxvY2tJbmZvWyduYW1lJ10gPSAnY29udGVudCcuJHRoaXMtPmJsb2NrTGFuZzsKCQl9CgkJIy0tLQoJCQoJCWlmKGlzc2V0KCRrZXl2YWxbJ2Jsb2NrJ10pICYmICRrZXl2YWxbJ2Jsb2NrJ10gIT0gJycpCgkJewoJCQkkYmxvY2tJbmZvWyduYW1lJ10gPSB0cmltKCRrZXl2YWxbJ2Jsb2NrJ10pOwoJCX0KCQkKCQkjIGJsb2NrIGlkCgkJJGJsb2NrSW5mb1snaWQnXSA9IHByZWdfcmVwbGFjZSgnLy0rLycsJ18nLG11bmdlX3N0cmluZ190b191cmwoJGJsb2NrSW5mb1snbmFtZSddKSk7CgkJCgkJIyBhZGRpdGlvbmFsIGVkaXRvcnMKCQkkYmxvY2tJbmZvWydlZGl0b3JfZ3JvdXBzJ10gPSAnJzsKCQlpZihpc3NldCgka2V5dmFsWydlZGl0b3JfZ3JvdXBzJ10pICYmICRrZXl2YWxbJ2VkaXRvcl9ncm91cHMnXSAhPSAnJykKCQl7CgkJCSRibG9ja0luZm9bJ2VkaXRvcl9ncm91cHMnXSA9IHRyaW0oJGtleXZhbFsnZWRpdG9yX2dyb3VwcyddKTsKCQl9CgkJJGJsb2NrSW5mb1snZWRpdG9yX3VzZXJzJ10gPSAnJzsKCQlpZihpc3NldCgka2V5dmFsWydlZGl0b3JfdXNlcnMnXSkgJiYgJGtleXZhbFsnZWRpdG9yX3VzZXJzJ10gIT0gJycpCgkJewoJCQkkYmxvY2tJbmZvWydlZGl0b3JfdXNlcnMnXSA9IHRyaW0oJGtleXZhbFsnZWRpdG9yX3VzZXJzJ10pOwoJCX0KCQkKCQlnbG9iYWwgJENNU19BRE1JTl9QQUdFOwoJCWlmKGlzc2V0KCRDTVNfQURNSU5fUEFHRSkgJiYgJENNU19BRE1JTl9QQUdFID09IDEgCgkJCSYmICgkYmxvY2tJbmZvWydlZGl0b3JfdXNlcnMnXSB8fCAkYmxvY2tJbmZvWydlZGl0b3JfZ3JvdXBzJ10pCgkJCSYmICEkdGhpcy0+Q2hlY2tCbG9ja1Blcm1pc3Npb24oJGJsb2NrSW5mbykpCgkJewoJCQlyZXR1cm4gZmFsc2U7ICMgZG9uJ3QgcHJvY2VzcyBibG9ja3Mgd2l0aG91dCBwZXJtaXNzaW9uIHRvIGVkaXQKCQl9CgkJCgkJJGJsb2NrSW5mb1snbXVsdGlwbGUnXSAgPSBmYWxzZTsKCQkkYmxvY2tJbmZvWyduZXdfYmxvY2snXSA9IGZhbHNlOwoJCQoJCSMgYmxvY2t0eXBlCgkJJGJsb2NrSW5mb1snYmxvY2tfdHlwZSddID0gJGJsb2NrSW5mb1sndHlwZSddID0gJ3RleHQnOwoJCWlmKHN0YXJ0c3dpdGgoJHdob2xldGFnLCAnY29udGVudF9pbWFnZScpKQoJCXsKCQkJJGJsb2NrSW5mb1snYmxvY2tfdHlwZSddID0gJGJsb2NrSW5mb1sndHlwZSddID0gJ2ltYWdlJzsKCQl9CgkJZWxzZWlmKHN0YXJ0c3dpdGgoJHdob2xldGFnLCAnY29udGVudF9tb2R1bGUnKSkKCQl7CgkJCSRibG9ja0luZm9bJ2Jsb2NrX3R5cGUnXSA9ICRibG9ja0luZm9bJ3R5cGUnXSA9ICdtb2R1bGUnOwoJCX0KCQllbHNlaWYoaXNzZXQoJGtleXZhbFsnYmxvY2tfdHlwZSddKSAmJiAka2V5dmFsWydibG9ja190eXBlJ10gIT0gJycpCgkJewoJCQkkYmxvY2tJbmZvWydibG9ja190eXBlJ10gPSAkYmxvY2tJbmZvWyd0eXBlJ10gPSBzdHJ0b2xvd2VyKCRrZXl2YWxbJ2Jsb2NrX3R5cGUnXSk7CgkJfQoJCQoJCSRibG9ja0luZm9bJ3NtYXJ0eSddID0gZmFsc2U7CgkJaWYoaXNzZXQoJGtleXZhbFsnc21hcnR5J10pICYmICR0aGlzLT5Jc1RydWUoJGtleXZhbFsnc21hcnR5J10pKQoJCXsKCQkJJGJsb2NrSW5mb1snc21hcnR5J10gPSB0cnVlOwoJCX0KCQkKCQkkYmxvY2tJbmZvWyd0cmFuc2xhdGVfbGFiZWxzJ10gPSBmYWxzZTsKCQlpZihpc3NldCgka2V5dmFsWyd0cmFuc2xhdGVfbGFiZWxzJ10pICYmICR0aGlzLT5Jc1RydWUoJGtleXZhbFsndHJhbnNsYXRlX2xhYmVscyddKSkKCQl7CgkJCSRibG9ja0luZm9bJ3RyYW5zbGF0ZV9sYWJlbHMnXSA9IHRydWU7CgkJfQoJCQoJCSRibG9ja0luZm9bJ3RyYW5zbGF0ZV92YWx1ZXMnXSA9IGZhbHNlOwoJCWlmKGlzc2V0KCRrZXl2YWxbJ3RyYW5zbGF0ZV92YWx1ZXMnXSkgJiYgJHRoaXMtPklzVHJ1ZSgka2V5dmFsWyd0cmFuc2xhdGVfdmFsdWVzJ10pKQoJCXsKCQkJJGJsb2NrSW5mb1sndHJhbnNsYXRlX3ZhbHVlcyddID0gdHJ1ZTsKCQl9CgkJCgkJJGJsb2NrSW5mb1snbGFiZWwnXSA9IHVjd29yZHMoJGJsb2NrSW5mb1snbmFtZSddKTsKCQlpZihpc3NldCgka2V5dmFsWydsYWJlbCddKSAmJiAka2V5dmFsWydsYWJlbCddICE9ICcnKQoJCXsKCQkJJGJsb2NrSW5mb1snbGFiZWwnXSA9IHRyaW0oJGtleXZhbFsnbGFiZWwnXSk7CgkJfQoJCQoJCSRibG9ja0luZm9bJ3JlcXVpcmVkJ10gPSBmYWxzZTsKCQlpZihpc3NldCgka2V5dmFsWydyZXF1aXJlZCddKSAmJiAkdGhpcy0+SXNUcnVlKCRrZXl2YWxbJ3JlcXVpcmVkJ10pKQoJCXsKCQkJJGJsb2NrSW5mb1sncmVxdWlyZWQnXSA9IHRydWU7CgkJfQoJCQoJCSMgZGVmYXVsdCBjb250ZW50L3ZhbHVlCgkJJGJsb2NrSW5mb1snZGVmYXVsdCddIAk9ICcnOwoJCWlmKGlzc2V0KCRrZXl2YWxbJ2RlZmF1bHQnXSkgJiYgJGtleXZhbFsnZGVmYXVsdCddICE9ICcnKQoJCXsKCQkJJGJsb2NrSW5mb1snZGVmYXVsdCddID0gJGtleXZhbFsnZGVmYXVsdCddOwoJCX0KCQkKCQkjIGJhY2tlbmQgc3R5bGUgKGUuZy4gdG8gbWFyayByZXF1aXJlZCBmaWVsZHMuLi4pCgkJIyBkZXByZWNhdGVkCgkJJGJsb2NrSW5mb1snc3R5bGUnXSA9ICcnOwoJCWlmKGlzc2V0KCRrZXl2YWxbJ3N0eWxlJ10pKQoJCXsKCQkJJGJsb2NrSW5mb1snc3R5bGUnXSA9ICRrZXl2YWxbJ3N0eWxlJ107CgkJfQoJCQoJCSMgc2l6ZSBvZiB0aGUgaW5wdXQgZmllbGQKCQkkYmxvY2tJbmZvWydzaXplJ10gPSAnJzsKCQlpZihpc3NldCgka2V5dmFsWydzaXplJ10pKQoJCXsKCQkJJGJsb2NrSW5mb1snc2l6ZSddID0gaW50dmFsKCRrZXl2YWxbJ3NpemUnXSk7CgkJfQoJCQoJCSRibG9ja0luZm9bJ3BhZ2VfdGFiJ10gPSAnbWFpbic7CgkJaWYoaXNzZXQoJGtleXZhbFsncGFnZV90YWInXSkgJiYgdHJpbSgka2V5dmFsWydwYWdlX3RhYiddICE9ICcnKSkKCQl7CgkJCSRibG9ja0luZm9bJ3BhZ2VfdGFiJ10gPSB0cmltKCRrZXl2YWxbJ3BhZ2VfdGFiJ10pOwoJCX0KCQkKCQkkYmxvY2tJbmZvWydibG9ja190YWInXSA9ICcnOwoJCWlmKGlzc2V0KCRrZXl2YWxbJ2Jsb2NrX3RhYiddKSAmJiB0cmltKCRrZXl2YWxbJ2Jsb2NrX3RhYiddICE9ICcnKSkKCQl7CgkJCSRibG9ja0luZm9bJ2Jsb2NrX3RhYiddID0gdHJpbSgka2V5dmFsWydibG9ja190YWInXSk7CgkJfQoJCQoJCSRibG9ja0luZm9bJ2Jsb2NrX2dyb3VwJ10gPSAnJzsKCQlpZihpc3NldCgka2V5dmFsWydibG9ja19ncm91cCddKSAmJiB0cmltKCRrZXl2YWxbJ2Jsb2NrX2dyb3VwJ10gIT0gJycpKQoJCXsKCQkJJGJsb2NrSW5mb1snYmxvY2tfZ3JvdXAnXSA9IHRyaW0oJGtleXZhbFsnYmxvY2tfZ3JvdXAnXSk7CgkJfQoJCQoJCSRibG9ja0luZm9bJ2FsbG93X25vbmUnXSA9IHRydWU7CgkJaWYoaXNzZXQoJGtleXZhbFsnYWxsb3dfbm9uZSddKSAmJiAkdGhpcy0+SXNGYWxzZSgka2V5dmFsWydhbGxvd19ub25lJ10pKQoJCXsKCQkJJGJsb2NrSW5mb1snYWxsb3dfbm9uZSddID0gZmFsc2U7CgkJfQoJCQoJCSRibG9ja0luZm9bJ2Rlc2NyaXB0aW9uJ10gPSAnJzsKCQlpZihpc3NldCgka2V5dmFsWydkZXNjcmlwdGlvbiddKSkKCQl7CgkJCSRibG9ja0luZm9bJ2Rlc2NyaXB0aW9uJ10gPSB0cmltKCRrZXl2YWxbJ2Rlc2NyaXB0aW9uJ10pOwoJCX0KCQkKCQkkYmxvY2tJbmZvWydjb2xsYXBzZSddID0gJEFkdmFuY2VkQ29udGVudC0+R2V0UHJlZmVyZW5jZSgnY29sbGFwc2VfYmxvY2tfZGVmYXVsdCcsMSk7CgkJaWYoaXNzZXQoJGtleXZhbFsnY29sbGFwc2UnXSkgJiYgKCR0aGlzLT5Jc1RydWUoJGtleXZhbFsnY29sbGFwc2UnXSkgfHwgJHRoaXMtPklzRmFsc2UoJGtleXZhbFsnY29sbGFwc2UnXSkpKQoJCXsKCQkJJGJsb2NrSW5mb1snY29sbGFwc2UnXSA9ICR0aGlzLT5Jc1RydWUoJGtleXZhbFsnY29sbGFwc2UnXSk7CgkJfQoJCQoJCSRibG9ja0luZm9bJ25vX2NvbGxhcHNlJ10gPSBmYWxzZTsKCQlpZihpc3NldCgka2V5dmFsWydub19jb2xsYXBzZSddKSAmJiAkdGhpcy0+SXNUcnVlKCRrZXl2YWxbJ25vX2NvbGxhcHNlJ10pKQoJCXsKCQkJJGJsb2NrSW5mb1snbm9fY29sbGFwc2UnXSA9IHRydWU7CgkJfQoJCQoJCSRibG9ja0luZm9bJ2ZldV9hY2Nlc3MnXSA9ICcnOwoJCWlmKGlzc2V0KCRrZXl2YWxbJ2ZldV9hY2Nlc3MnXSkpCgkJewoJCQkkYmxvY2tJbmZvWydmZXVfYWNjZXNzJ10gPSB0cmltKCRrZXl2YWxbJ2ZldV9hY2Nlc3MnXSk7CgkJfQoJCQoJCSRibG9ja0luZm9bJ2ZldV9hY3Rpb24nXSA9IGZhbHNlOwoJCWlmKGlzc2V0KCRrZXl2YWxbJ2ZldV9hY3Rpb24nXSkgJiYgJHRoaXMtPklzVHJ1ZSgka2V5dmFsWydmZXVfYWN0aW9uJ10pKQoJCXsKCQkJJGJsb2NrSW5mb1snZmV1X2FjdGlvbiddID0gdHJ1ZTsKCQl9CgkJCgkJaWYoJGJsb2NrSW5mb1sndHlwZSddID09ICd0ZXh0JykKCQl7CgkJCSRibG9ja0luZm9bJ21heGxlbmd0aCddID0gJyc7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ21heGxlbmd0aCddKSkKCQkJewoJCQkJJGJsb2NrSW5mb1snbWF4bGVuZ3RoJ10gPSAka2V5dmFsWydtYXhsZW5ndGgnXTsKCQkJfQoJCQkKCQkJJGJsb2NrSW5mb1sndXNld3lzaXd5ZyddID0gdHJ1ZTsKCQkJaWYoaXNzZXQoJGtleXZhbFsnd3lzaXd5ZyddKSAmJiAkdGhpcy0+SXNGYWxzZSgka2V5dmFsWyd3eXNpd3lnJ10pKQoJCQl7CgkJCQkkYmxvY2tJbmZvWyd1c2V3eXNpd3lnJ10gPSBmYWxzZTsKCQkJfQoJCQkKCQkJJGJsb2NrSW5mb1snb25lbGluZSddID0gZmFsc2U7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ29uZWxpbmUnXSkgJiYgJHRoaXMtPklzVHJ1ZSgka2V5dmFsWydvbmVsaW5lJ10pKQoJCQl7CgkJCQkkYmxvY2tJbmZvWydvbmVsaW5lJ10gPSB0cnVlOwoJCQl9CgkJfQoJCWVsc2UgaWYgKCRibG9ja0luZm9bJ3R5cGUnXSA9PSAnZGF0ZScpCgkJewoJCQkkdGhpcy0+X2RhdGVCbG9ja3NbXSA9ICRibG9ja0luZm9bJ2lkJ107CgkJCQoJCQkkc2hvd0Nsb2NrID0gdHJ1ZTsKCQkJaWYoaXNzZXQoJGtleXZhbFsnc2hvd19jbG9jayddKSAmJiAkdGhpcy0+SXNGYWxzZSgka2V5dmFsWydzaG93X2Nsb2NrJ10pKQoJCQl7CgkJCQkkc2hvd0Nsb2NrID0gZmFsc2U7CgkJCX0KCQkJCgkJCSRtb2RlID0gJ2NhbGVuZGFyJzsKCQkJaWYoaXNzZXQoJGtleXZhbFsnbW9kZSddKSAmJiBzdHJ0b2xvd2VyKCRrZXl2YWxbJ21vZGUnXSkgPT0gJ2Ryb3Bkb3duJykKCQkJewoJCQkJJG1vZGUgPSAnZHJvcGRvd24nOwoJCQl9CgkJCQoJCQkkc2hvdzI0aCA9IHRydWU7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ3Nob3cyNGgnXSkgJiYgJHRoaXMtPklzRmFsc2UoJGtleXZhbFsnc2hvdzI0aCddKSkKCQkJewoJCQkJJHNob3cyNGggPSBmYWxzZTsKCQkJfQoJCQkKCQkJJHN0YXJ0SG91ciA9IDA7CgkJCSRlbmRIb3VyICAgPSAyMzsKCQkJaWYoaXNzZXQoJGtleXZhbFsnc3RhcnRfaG91ciddKSkKCQkJewoJCQkJaWYoZW5kc3dpdGgoJGtleXZhbFsnc3RhcnRfaG91ciddLCdwbScpKQoJCQkJewoJCQkJCSRrZXl2YWxbJ3N0YXJ0X2hvdXInXSA9IHRyaW0oc3RyX2lyZXBsYWNlKCdwbScsJycsJGtleXZhbFsnc3RhcnRfaG91ciddKSkgKyAxMjsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkka2V5dmFsWydzdGFydF9ob3VyJ10gPSB0cmltKHN0cl9pcmVwbGFjZShhcnJheSgnYW0nLCdwbScpLCcnLCRrZXl2YWxbJ3N0YXJ0X2hvdXInXSkpOwoJCQkJfQoJCQkJaWYoJGtleXZhbFsnc3RhcnRfaG91ciddID4gMCAmJiAka2V5dmFsWydzdGFydF9ob3VyJ10gPD0gJGVuZEhvdXIpCgkJCQl7CgkJCQkJJHN0YXJ0SG91ciA9IHRyaW0oJGtleXZhbFsnc3RhcnRfaG91ciddKTsKCQkJCX0KCQkJfQoJCQlpZihpc3NldCgka2V5dmFsWydlbmRfaG91ciddKSkKCQkJewoJCQkJaWYoZW5kc3dpdGgoJGtleXZhbFsnZW5kX2hvdXInXSwncG0nKSkKCQkJCXsKCQkJCQkka2V5dmFsWydlbmRfaG91ciddID0gdHJpbShzdHJfaXJlcGxhY2UoJ3BtJywnJywka2V5dmFsWydlbmRfaG91ciddKSkgKyAxMjsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkka2V5dmFsWydlbmRfaG91ciddID0gdHJpbShzdHJfaXJlcGxhY2UoYXJyYXkoJ2FtJywncG0nKSwnJywka2V5dmFsWydlbmRfaG91ciddKSk7CgkJCQl9CgkJCQlpZigka2V5dmFsWydlbmRfaG91ciddID49IDAgJiYgJGtleXZhbFsnZW5kX2hvdXInXSA8ICRlbmRIb3VyKQoJCQkJewoJCQkJCSRlbmRIb3VyID0gdHJpbSgka2V5dmFsWydlbmRfaG91ciddKTsKCQkJCX0KCQkJfQoJCQlpZigkZW5kSG91ciA8ICRzdGFydEhvdXIpCgkJCXsKCQkJCSRlbmRIb3VyID0gJHN0YXJ0SG91cjsKCQkJfQoJCQkkc3RhcnRNaW51dGUgPSAwOwoJCQlpZihpc3NldCgka2V5dmFsWydzdGFydF9taW51dGUnXSkgJiYgJGtleXZhbFsnc3RhcnRfbWludXRlJ10gPiAwICYmICRrZXl2YWxbJ3N0YXJ0X21pbnV0ZSddIDw9IDU5KQoJCQl7CgkJCQkkc3RhcnRNaW51dGUgPSB0cmltKCRrZXl2YWxbJ3N0YXJ0X21pbnV0ZSddKTsKCQkJfQoJCQkkZW5kTWludXRlID0gNTk7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ2VuZF9taW51dGUnXSkgJiYgJGtleXZhbFsnZW5kX21pbnV0ZSddID49IDAgJiYgJGtleXZhbFsnZW5kX21pbnV0ZSddIDwgNTkpCgkJCXsKCQkJCSRlbmRNaW51dGUgPSB0cmltKCRrZXl2YWxbJ2VuZF9taW51dGUnXSk7CgkJCX0KCQkJaWYoJGVuZE1pbnV0ZSA8ICRzdGFydE1pbnV0ZSkKCQkJewoJCQkJJGVuZE1pbnV0ZSA9ICRzdGFydE1pbnV0ZTsKCQkJfQoJCQkkc3RhcnRTZWNvbmQgPSAwOwoJCQlpZihpc3NldCgka2V5dmFsWydzdGFydF9zZWNvbmQnXSkgJiYgJGtleXZhbFsnc3RhcnRfc2Vjb25kJ10gPiAwICYmICRrZXl2YWxbJ3N0YXJ0X3NlY29uZCddIDw9IDU5KQoJCQl7CgkJCQkkc3RhcnRTZWNvbmQgPSB0cmltKCRrZXl2YWxbJ3N0YXJ0X3NlY29uZCddKTsKCQkJfQoJCQkkZW5kU2Vjb25kID0gNTk7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ2VuZF9zZWNvbmQnXSkgJiYgJGtleXZhbFsnZW5kX3NlY29uZCddID49IDAgJiYgJGtleXZhbFsnZW5kX3NlY29uZCddIDwgNTkpCgkJCXsKCQkJCSRlbmRTZWNvbmQgPSB0cmltKCRrZXl2YWxbJ2VuZF9zZWNvbmQnXSk7CgkJCX0KCQkJaWYoJGVuZFNlY29uZCA8ICRzdGFydFNlY29uZCkKCQkJewoJCQkJJGVuZFNlY29uZCA9ICRzdGFydFNlY29uZDsKCQkJfQoJCQkkc3RlcEhvdXJzID0gMTsKCQkJaWYoaXNzZXQoJGtleXZhbFsnc3RlcF9ob3VycyddKSAmJiAka2V5dmFsWydzdGVwX2hvdXJzJ10gPiAwICYmICRrZXl2YWxbJ3N0ZXBfaG91cnMnXSA8PSAoJGVuZEhvdXItJHN0YXJ0SG91cikpCgkJCXsKCQkJCSRzdGVwSG91cnMgPSB0cmltKCRrZXl2YWxbJ3N0ZXBfaG91cnMnXSk7CgkJCX0KCQkJZWxzZSBpZihpc3NldCgka2V5dmFsWydzdGVwX2hvdXJzJ10pICYmICRrZXl2YWxbJ3N0ZXBfaG91cnMnXSA+IDAgJiYgJGtleXZhbFsnc3RlcF9ob3VycyddID49ICgkZW5kSG91ci0kc3RhcnRIb3VyKSkKCQkJewoJCQkJJHN0ZXBIb3VycyA9ICRlbmRIb3VyLSRzdGFydEhvdXI7CgkJCX0KCQkJJHN0ZXBNaW51dGVzID0gMTA7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ3N0ZXBfbWludXRlcyddKSAmJiAka2V5dmFsWydzdGVwX21pbnV0ZXMnXSA+IDAgJiYgJGtleXZhbFsnc3RlcF9taW51dGVzJ10gPD0gKCRlbmRNaW51dGUtJHN0YXJ0TWludXRlKSkKCQkJewoJCQkJJHN0ZXBNaW51dGVzID0gdHJpbSgka2V5dmFsWydzdGVwX21pbnV0ZXMnXSk7CgkJCX0KCQkJZWxzZSBpZihpc3NldCgka2V5dmFsWydzdGVwX21pbnV0ZXMnXSkgJiYgJGtleXZhbFsnc3RlcF9taW51dGVzJ10gPiAwICYmICRrZXl2YWxbJ3N0ZXBfbWludXRlcyddID49ICgkZW5kTWludXRlLSRzdGFydE1pbnV0ZSkpCgkJCXsKCQkJCSRzdGVwTWludXRlcyA9ICRlbmRNaW51dGUtJHN0YXJ0TWludXRlOwoJCQl9CgkJCSRzdGVwU2Vjb25kcyA9IDE7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ3N0ZXBfc2Vjb25kcyddKSAmJiAka2V5dmFsWydzdGVwX3NlY29uZHMnXSA+IDAgJiYgJGtleXZhbFsnc3RlcF9zZWNvbmRzJ10gPD0gKCRlbmRTZWNvbmQtJHN0YXJ0U2Vjb25kcykpCgkJCXsKCQkJCSRzdGVwU2Vjb25kcyA9IHRyaW0oJGtleXZhbFsnc3RlcF9zZWNvbmRzJ10pOwoJCQl9CgkJCWVsc2UgaWYoaXNzZXQoJGtleXZhbFsnc3RlcF9zZWNvbmRzJ10pICYmICRrZXl2YWxbJ3N0ZXBfc2Vjb25kcyddID4gMCAmJiAka2V5dmFsWydzdGVwX3NlY29uZHMnXSA+PSAoJGVuZFNlY29uZC0kc3RhcnRTZWNvbmRzKSkKCQkJewoJCQkJJHN0ZXBTZWNvbmRzID0gJGVuZFNlY29uZC0kc3RhcnRTZWNvbmRzOwoJCQl9CgkJCSRibG9ja0luZm9bJ3Nob3cyNGgnXSAgICAgID0gJHNob3cyNGg7CgkJCSRibG9ja0luZm9bJ21vZGUnXSAgICAgICAgID0gJG1vZGU7CgkJCSRibG9ja0luZm9bJ3N0YXJ0X2hvdXInXSAgID0gJHN0YXJ0SG91cjsKCQkJJGJsb2NrSW5mb1snZW5kX2hvdXInXSAgICAgPSAkZW5kSG91cjsKCQkJJGJsb2NrSW5mb1snc3RhcnRfbWludXRlJ10gPSAkc3RhcnRNaW51dGU7CgkJCSRibG9ja0luZm9bJ2VuZF9taW51dGUnXSAgID0gJGVuZE1pbnV0ZTsKCQkJJGJsb2NrSW5mb1snc3RhcnRfc2Vjb25kJ10gPSAkc3RhcnRTZWNvbmQ7CgkJCSRibG9ja0luZm9bJ2VuZF9zZWNvbmQnXSAgID0gJGVuZFNlY29uZDsKCQkJJGJsb2NrSW5mb1snc3RlcF9ob3VycyddICAgPSAkc3RlcEhvdXJzOwoJCQkkYmxvY2tJbmZvWydzdGVwX21pbnV0ZXMnXSA9ICRzdGVwTWludXRlczsKCQkJJGJsb2NrSW5mb1snc3RlcF9zZWNvbmRzJ10gPSAkc3RlcFNlY29uZHM7CgkJCSRibG9ja0luZm9bJ3Nob3dfY2xvY2snXSAgID0gJHNob3dDbG9jazsKCQl9CgkJZWxzZSBpZiAoJGJsb2NrSW5mb1sndHlwZSddID09ICdjb2xvcnBpY2tlcicpCgkJewoJCQkkdGhpcy0+X2NvbG9yUGlja2VyQmxvY2tzW10gPSAkYmxvY2tJbmZvWydpZCddOwoJCX0KCQllbHNlIGlmICgkYmxvY2tJbmZvWyd0eXBlJ10gPT0gJ3NsaWRlcicpCgkJewoJCQkkdGhpcy0+X3NsaWRlckJsb2Nrc1tdID0gJGJsb2NrSW5mb1snaWQnXTsKCQkJJGJsb2NrSW5mb1sncGFyYW1zJ10gPSBhcnJheSgpOwoJCQlpZihpc3NldCgka2V5dmFsWydmcm9tJ10pKQoJCQl7CgkJCQkkYmxvY2tJbmZvWydwYXJhbXMnXVsnZnJvbSddID0gaW50dmFsKCRrZXl2YWxbJ2Zyb20nXSk7CgkJCX0KCQkJaWYoaXNzZXQoJGtleXZhbFsndG8nXSkpCgkJCXsKCQkJCSRibG9ja0luZm9bJ3BhcmFtcyddWyd0byddID0gaW50dmFsKCRrZXl2YWxbJ3RvJ10pOwoJCQl9CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ3N0ZXAnXSkpCgkJCXsKCQkJCSRibG9ja0luZm9bJ3BhcmFtcyddWydzdGVwJ10gPSBpbnR2YWwoJGtleXZhbFsnc3RlcCddKTsKCQkJfQoJCQlpZihpc3NldCgka2V5dmFsWydyb3VuZCddKSkKCQkJewoJCQkJJGJsb2NrSW5mb1sncGFyYW1zJ11bJ3JvdW5kJ10gPSBpbnR2YWwoJGtleXZhbFsncm91bmQnXSk7CgkJCX0KCQkJaWYoaXNzZXQoJGtleXZhbFsnaGV0ZXJvZ2VuZWl0eSddKSkKCQkJewoJCQkJJGJsb2NrSW5mb1sncGFyYW1zJ11bJ2hldGVyb2dlbmVpdHknXSA9ICRrZXl2YWxbJ2hldGVyb2dlbmVpdHknXTsKCQkJfQoJCQlpZihpc3NldCgka2V5dmFsWydkaW1lbnNpb24nXSkpCgkJCXsKCQkJCSRibG9ja0luZm9bJ3BhcmFtcyddWydkaW1lbnNpb24nXSA9ICInIi4ka2V5dmFsWydkaW1lbnNpb24nXS4iJyIgOwoJCQl9CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ2xpbWl0cyddKSkKCQkJewoJCQkJJGJsb2NrSW5mb1sncGFyYW1zJ11bJ2xpbWl0cyddID0gIiciLiRrZXl2YWxbJ2xpbWl0cyddLiInIjsKCQkJfQoJCQlpZihpc3NldCgka2V5dmFsWydzY2FsZSddKSkKCQkJewoJCQkJJGJsb2NrSW5mb1sncGFyYW1zJ11bJ3NjYWxlJ10gPSAka2V5dmFsWydzY2FsZSddOwoJCQl9CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ3NraW4nXSkpCgkJCXsKCQkJCSRibG9ja0luZm9bJ3BhcmFtcyddWydza2luJ10gPSAiJyIuJGtleXZhbFsnc2tpbiddLiInIjsKCQkJfQoJCQlpZihpc3NldCgka2V5dmFsWydjYWxjdWxhdGUnXSkpCgkJCXsKCQkJCSRibG9ja0luZm9bJ3BhcmFtcyddWydjYWxjdWxhdGUnXSA9ICRrZXl2YWxbJ2NhbGN1bGF0ZSddOwoJCQl9CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ29uc3RhdGVjaGFuZ2UnXSkpCgkJCXsKCQkJCSRibG9ja0luZm9bJ3BhcmFtcyddWydvbnN0YXRlY2hhbmdlJ10gPSAka2V5dmFsWydvbnN0YXRlY2hhbmdlJ107CgkJCX0KCQkJaWYoaXNzZXQoJGtleXZhbFsnY2FsbGJhY2snXSkpCgkJCXsKCQkJCSRibG9ja0luZm9bJ3BhcmFtcyddWydjYWxsYmFjayddID0gJGtleXZhbFsnY2FsbGJhY2snXTsKCQkJfQoJCX0KCQllbHNlIGlmKCRibG9ja0luZm9bJ3R5cGUnXSA9PSAnZHJvcGRvd24nIHx8ICRibG9ja0luZm9bJ3R5cGUnXSA9PSAnc2VsZWN0X211bHRpcGxlJykKCQl7CgkJCWlmKCRibG9ja0luZm9bJ3R5cGUnXSA9PSAnc2VsZWN0X211bHRpcGxlJykKCQkJewoJCQkJJGJsb2NrSW5mb1snc29ydGFibGUnXSA9IGZhbHNlOwoJCQkJIyBkZXByZWNhdGVkCgkJCQlpZihpc3NldCgka2V5dmFsWydzb3J0YWJsZV9pdGVtcyddKSAmJiAkdGhpcy0+SXNUcnVlKCRrZXl2YWxbJ3NvcnRhYmxlX2l0ZW1zJ10pKQoJCQkJewoJCQkJCSRibG9ja0luZm9bJ3NvcnRhYmxlJ10gPSB0cnVlOwoJCQkJfQoJCQkJaWYoaXNzZXQoJGtleXZhbFsnc29ydGFibGUnXSkgJiYgJHRoaXMtPklzVHJ1ZSgka2V5dmFsWydzb3J0YWJsZSddKSkKCQkJCXsKCQkJCQkkYmxvY2tJbmZvWydzb3J0YWJsZSddID0gdHJ1ZTsKCQkJCX0KCQkJfQoJCQkKCQkJJGJsb2NrSW5mb1snZGVsaW1pdGVyJ10gPSAnfCc7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ2RlbGltaXRlciddKSAmJiAka2V5dmFsWydkZWxpbWl0ZXInXSAhPSAnJykKCQkJewoJCQkJJGJsb2NrSW5mb1snZGVsaW1pdGVyJ10gPSAka2V5dmFsWydkZWxpbWl0ZXInXTsKCQkJfQoJCQkkYmxvY2tJbmZvWydpdGVtcyddID0gJyc7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ2l0ZW1zJ10pICYmICRrZXl2YWxbJ2l0ZW1zJ10gIT0gJycpCgkJCXsKCQkJCSRibG9ja0luZm9bJ2l0ZW1zJ10gPSB0cmltKCRrZXl2YWxbJ2l0ZW1zJ10pOwoJCQl9CgkJCSRibG9ja0luZm9bJ3ZhbHVlcyddID0gJyc7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ3ZhbHVlcyddKSAmJiAka2V5dmFsWyd2YWx1ZXMnXSAhPSAnJykKCQkJewoJCQkJJGJsb2NrSW5mb1sndmFsdWVzJ10gPSB0cmltKCRrZXl2YWxbJ3ZhbHVlcyddKTsKCQkJfQoJCX0KCQllbHNlIGlmKCRibG9ja0luZm9bJ3R5cGUnXSA9PSAnbW9kdWxlJykKCQl7CgkJCSRibG9ja0luZm9bJ21vZHVsZSddID0gJyc7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ21vZHVsZSddKSkKCQkJewoJCQkJJGJsb2NrSW5mb1snbW9kdWxlJ10gPSB0cmltKCRrZXl2YWxbJ21vZHVsZSddKTsKCQkJfQoJCQkkYmxvY2tJbmZvWydwYXJhbXMnXSA9ICRrZXl2YWw7CgkJfQoJCWVsc2UgaWYoJGJsb2NrSW5mb1sndHlwZSddID09ICdpbWFnZScpCgkJewoJCQkkYmxvY2tJbmZvWydwcmVmaXgnXSA9ICd0aHVtYl8nOwoJCQlpZihpc3NldCgka2V5dmFsWydwcmVmaXgnXSkpIHsKCQkJCSRibG9ja0luZm9bJ3ByZWZpeCddID0gJGtleXZhbFsncHJlZml4J107CgkJCX0KCQkJJGJsb2NrSW5mb1snZXhjbHVkZSddID0gdHJ1ZTsKCQkJaWYoaXNzZXQoJGtleXZhbFsnZXhjbHVkZSddKSAmJiAkdGhpcy0+SXNGYWxzZSgka2V5dmFsWydleGNsdWRlJ10pKSB7CgkJCQkkYmxvY2tJbmZvWydleGNsdWRlJ10gPSBmYWxzZTsKCQkJfQoJCQkkYmxvY2tJbmZvWydkaXInXSA9ICcnOwoJCQlpZihpc3NldCgka2V5dmFsWydkaXInXSkpIHsKCQkJCSRibG9ja0luZm9bJ2RpciddID0gJGtleXZhbFsnZGlyJ107CgkJCX0KCQl9CgkJZWxzZSBpZigkYmxvY2tJbmZvWyd0eXBlJ10gPT0gJ211bHRpX2lucHV0JykKCQl7CgkJCSRpbnB1dHMgPSAnJzsKCQkJaWYoaXNzZXQoJGtleXZhbFsnaW5wdXRzJ10pKQoJCQl7CgkJCQkkaW5wdXRzID0gdHJpbSgka2V5dmFsWydpbnB1dHMnXSk7CgkJCX0KCQkJCgkJCSR2YWx1ZURlbGltID0gJzwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPic7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ3ZhbHVlX2RlbGltaXRlciddKSkKCQkJewoJCQkJJHZhbHVlRGVsaW0gPSB0cmltKCRrZXl2YWxbJ3ZhbHVlX2RlbGltaXRlciddKTsKCQkJfQoJCQkKCQkJJGlucHV0RGVsaW0gPSAnPCEtLSBtdWx0aV9pbnB1dF9kZWxpbWl0ZXIgLS0+JzsKCQkJaWYoaXNzZXQoJGtleXZhbFsnaW5wdXRfZGVsaW1pdGVyJ10pKQoJCQl7CgkJCQkkaW5wdXREZWxpbSA9IHRyaW0oJGtleXZhbFsnaW5wdXRfZGVsaW1pdGVyJ10pOwoJCQl9CgkJCSRibG9ja0luZm9bJ2lucHV0cyddICAgICAgICAgID0gJGlucHV0czsKCQkJJGJsb2NrSW5mb1sndmFsdWVfZGVsaW1pdGVyJ10gPSAkdmFsdWVEZWxpbTsKCQkJJGJsb2NrSW5mb1snaW5wdXRfZGVsaW1pdGVyJ10gPSAkaW5wdXREZWxpbTsKCQl9CgkJZWxzZSBpZigkYmxvY2tJbmZvWyd0eXBlJ10gPT0gJ211bHRpX2NvbnRlbnQnKQoJCXsKCQkJJGFsbG93ZWRfYmxvY2tfdHlwZXMgPSAnJzsKCQkJaWYoaXNzZXQoJGtleXZhbFsnYWxsb3dlZF9ibG9ja190eXBlcyddKSkKCQkJewoJCQkJJGFsbG93ZWRfYmxvY2tfdHlwZXMgPSB0cmltKCRrZXl2YWxbJ2FsbG93ZWRfYmxvY2tfdHlwZXMnXSk7CgkJCX0KCQkJJGFsbG93ZWRfbXVsdGlfaW5wdXRzID0gJyc7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ2FsbG93ZWRfbXVsdGlfaW5wdXRzJ10pKQoJCQl7CgkJCQkkYWxsb3dlZF9tdWx0aV9pbnB1dHMgPSB0cmltKCRrZXl2YWxbJ2FsbG93ZWRfbXVsdGlfaW5wdXRzJ10pOwoJCQl9CgkJCSRhbGxvd2VkX21vZHVsZXMgPSAnJzsKCQkJaWYoaXNzZXQoJGtleXZhbFsnYWxsb3dlZF9tb2R1bGVzJ10pKQoJCQl7CgkJCQkkYWxsb3dlZF9tb2R1bGVzID0gdHJpbSgka2V5dmFsWydhbGxvd2VkX21vZHVsZXMnXSk7CgkJCX0KCQkJJGFsbG93ZWRfYmxvY2tfcGFyYW1zID0gJyc7CgkJCWlmKGlzc2V0KCRrZXl2YWxbJ2FsbG93ZWRfYmxvY2tfcGFyYW1zJ10pKQoJCQl7CgkJCQkkYWxsb3dlZF9ibG9ja19wYXJhbXMgPSB0cmltKCRrZXl2YWxbJ2FsbG93ZWRfYmxvY2tfcGFyYW1zJ10pOwoJCQl9CgkJCSRhbGxvd2VkX21vZHVsZV9wYXJhbXMgPSAnJzsKCQkJaWYoaXNzZXQoJGtleXZhbFsnYWxsb3dlZF9tb2R1bGVfcGFyYW1zJ10pKQoJCQl7CgkJCQkkYWxsb3dlZF9tb2R1bGVfcGFyYW1zID0gdHJpbSgka2V5dmFsWydhbGxvd2VkX21vZHVsZV9wYXJhbXMnXSk7CgkJCX0KCQkJJGJsb2NrSW5mb1snYWxsb3dlZF9ibG9ja190eXBlcyddICAgPSAkYWxsb3dlZF9ibG9ja190eXBlczsKCQkJJGJsb2NrSW5mb1snYWxsb3dlZF9tdWx0aV9pbnB1dHMnXSAgPSAkYWxsb3dlZF9tdWx0aV9pbnB1dHM7CgkJCSRibG9ja0luZm9bJ2FsbG93ZWRfbW9kdWxlcyddICAgICAgID0gJGFsbG93ZWRfbW9kdWxlczsKCQkJJGJsb2NrSW5mb1snYWxsb3dlZF9ibG9ja19wYXJhbXMnXSAgPSAkYWxsb3dlZF9ibG9ja19wYXJhbXM7CgkJCSRibG9ja0luZm9bJ2FsbG93ZWRfbW9kdWxlX3BhcmFtcyddID0gJGFsbG93ZWRfbW9kdWxlX3BhcmFtczsKCQl9CgkJcmV0dXJuIGFycmF5X21lcmdlKCRrZXl2YWwsJGJsb2NrSW5mbyk7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VfY29udGVudF9ibG9ja3MoKQoJewoJCWlmKCR0aGlzLT5fY29udGVudEJsb2Nrc0xvYWRlZCkKCQl7CgkJCXJldHVybiB0cnVlOwoJCX0KCQkKCQlpZigkdGhpcy0+bVR5cGUgIT0gJ2NvbnRlbnQyJyAmJiAkdGhpcy0+bVR5cGUgIT0gJ2NvbnRlbnQnKQoJCXsKCQkJcmV0dXJuIHRydWU7CgkJfQoJCQoJCSR0aGlzLT5fY29udGVudEJsb2NrcyA9IGFycmF5KCk7CgkJJEFkdmFuY2VkQ29udGVudCA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpOwoJCWdsb2JhbCAkQ01TX0FETUlOX1BBR0U7CgkJaWYoaXNzZXQoJENNU19BRE1JTl9QQUdFKSAmJiAkQ01TX0FETUlOX1BBR0UgPT0gMSkKCQl7CgkJCSR0aGlzLT5fdGFiSWRzICAgICAgPSBhcnJheSgpOwoJCQkkdGhpcy0+X2RhdGVCbG9ja3MgID0gYXJyYXkoKTsKCQkJJHRoaXMtPl9ibG9ja1RhYnMgICA9IGFycmF5KCk7CgkJCSR0aGlzLT5fYmxvY2tHcm91cHMgPSBhcnJheSgpOwoJCQkKCQkJJHRoaXMtPl9wYWdlVGFicyA9IGFycmF5KAoJCQkJJ21haW4nID0+IGFycmF5KAoJCQkJCSd0YWJfaWQnICAgICAgICAgPT4gJ21haW4nLAoJCQkJCSd0YWJfbmFtZScgICAgICAgPT4gbGFuZygnbWFpbicpLAoJCQkJCSdibG9ja190YWJzJyAgICAgPT4gYXJyYXkoKSwKCQkJCQknYmxvY2tfZ3JvdXBzJyAgID0+IGFycmF5KCksCgkJCQkJJ2NvbnRlbnRfYmxvY2tzJyA9PiBhcnJheSgpKSk7CgkJCSR0aGlzLT5fdGFiSWRzW10gPSAnbWFpbic7CgkJCQoJCQlpZiggY2hlY2tfcGVybWlzc2lvbihnZXRfdXNlcmlkKCksICdNYW5hZ2UgQWxsIENvbnRlbnQnKSApCgkJCXsKCQkJCSR0aGlzLT5fcGFnZVRhYnNbJ29wdGlvbnMnXSA9IGFycmF5KAoJCQkJCSd0YWJfaWQnICAgICAgICAgPT4gJ29wdGlvbnMnLAoJCQkJCSd0YWJfbmFtZScgICAgICAgPT4gbGFuZygnb3B0aW9ucycpLAoJCQkJCSdibG9ja190YWJzJyAgICAgPT4gYXJyYXkoKSwKCQkJCQknYmxvY2tfZ3JvdXBzJyAgID0+IGFycmF5KCksCgkJCQkJJ2NvbnRlbnRfYmxvY2tzJyA9PiBhcnJheSgpKTsKCQkJCSR0aGlzLT5fdGFiSWRzW10gPSAnb3B0aW9ucyc7CgkJCX0KCQkJCgkJCWlmKCBjaGVja19wZXJtaXNzaW9uKGdldF91c2VyaWQoKSwgJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgT3B0aW9ucycpICYmICRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSkgKQoJCQl7CgkJCQkkdGhpcy0+X3BhZ2VUYWJzWydBZHZhbmNlZENvbnRlbnQnXSA9IGFycmF5KAoJCQkJCSd0YWJfaWQnICAgICAgICAgPT4gJ0FkdmFuY2VkQ29udGVudCcsCgkJCQkJJ3RhYl9uYW1lJyAgICAgICA9PiAkQWR2YW5jZWRDb250ZW50LT5sYW5nKCdhZHZhbmNlZGNvbnRlbnRfdGFibmFtZScpLAoJCQkJCSdibG9ja190YWJzJyAgICAgPT4gYXJyYXkoKSwKCQkJCQknYmxvY2tfZ3JvdXBzJyAgID0+IGFycmF5KCksCgkJCQkJJ2NvbnRlbnRfYmxvY2tzJyA9PiBhcnJheSgpKTsKCQkJCSR0aGlzLT5fdGFiSWRzW10gPSAnQWR2YW5jZWRDb250ZW50JzsKCQkJfQoJCX0KCQllbHNlIGlmKCEkdGhpcy0+Q2hlY2tGcm9udGVuZFBhZ2VBY2Nlc3MoKSkKCQl7CgkJCSNjbXNtcygpLT5HZXRTbWFydHkoKS0+Y2xlYXJfYWxsX2NhY2hlKCk7CgkJCXJldHVybiB0cnVlOwoJCX0KCQkKCQkkdGVtcGxhdGVvcHMgPSYgY21zbXMoKS0+R2V0VGVtcGxhdGVPcGVyYXRpb25zKCk7CgkJCgkJaWYgKCR0aGlzLT5tVGVtcGxhdGVJZCAmJiAkdGhpcy0+bVRlbXBsYXRlSWQgPiAtMSkKCQl7CgkJCSR0ZW1wbGF0ZSA9ICR0ZW1wbGF0ZW9wcy0+TG9hZFRlbXBsYXRlQnlJRCgkdGhpcy0+bVRlbXBsYXRlSWQpOwoJCQkkdGhpcy0+X3N0eWxlc2hlZXQgPSAnLi4vc3R5bGVzaGVldC5waHA/dGVtcGxhdGVpZD0nLiR0aGlzLT5tVGVtcGxhdGVJZDsKCQl9CgkJZWxzZQoJCXsKCQkJJHRlbXBsYXRlID0gJHRlbXBsYXRlb3BzLT5Mb2FkRGVmYXVsdFRlbXBsYXRlKCk7CgkJfQoJCQoJCWlmKCR0ZW1wbGF0ZSAhPT0gZmFsc2UpCgkJewoJCQkjIHJlYWQgY29udGVudCBibG9ja3MKCQkJIyB0aGlzIHdpbGwgc2VhcmNoIGZvciB7Y29udGVudH0ge2NvbnRlbnRfaW1hZ2V9IHtjb250ZW50X21vZHVsZX0gYW5kIHtBZHZhbmNlZENvbnRlbnR9IHdpdGggb3Igd2l0aG91dCBwYXJhbXMgKGNhc2UgaW5zZW5zaXRpdmUpCgkJCSRwYXR0ZXJuID0gJy97KChBZHZhbmNlZENvbnRlbnR8Y29udGVudChfaW1hZ2V8X21vZHVsZSk/KSgoPyFfKVtefV0qKSl9L2knOwoJCQkKCQkJJG1hdGNoZXMgPSBhcnJheSgpOwoJCQkjIGdldCBhbGwgdGhlIHRhZ3MKCQkJJHJlc3VsdCA9IHByZWdfbWF0Y2hfYWxsKCRwYXR0ZXJuLCAkdGVtcGxhdGUtPmNvbnRlbnQsICRtYXRjaGVzKTsKCQkJCgkJCWlmICgkcmVzdWx0ICYmIGNvdW50KCRtYXRjaGVzWzFdKSA+IDApCgkJCXsKCQkJCQoJCQkJIyBnZXQgdGhlIGJhc2ljIGNvbnRlbnQgcHJvcGVydGllcwoJCQkJJGJhc2ljQXR0cmlicyA9IGFycmF5KCk7CgkJCQlmb3JlYWNoKCAkdGhpcy0+X2F0dHJpYnV0ZXMgYXMgJG9uZUF0dHJpYiApCgkJCQl7CgkJCQkJJGJhc2ljQXR0cmlic1tdID0gJG9uZUF0dHJpYlswXTsKCQkJCX0KCQkJCQoJCQkJJGogPSAwOwoJCQkJIyBmb3JlYWNoIHRhZwoJCQkJZm9yZWFjaCAoJG1hdGNoZXNbMV0gYXMgJGtleT0+JHdob2xldGFnKQoJCQkJewoJCQkJCSRqKys7CgkJCQkJCgkJCQkJaWYoISRibG9ja0luZm8gPSAkdGhpcy0+X2dldF9ibG9ja19pbmZvKCR3aG9sZXRhZykpCgkJCQkJewoJCQkJCQljb250aW51ZTsKCQkJCQl9CgkJCQkJCgkJCQkJIyBibG9jayA9IGFjdGl2ZT8KCQkJCQlpZihpc3NldCgkYmxvY2tJbmZvWydhY3RpdmUnXSkgJiYgJHRoaXMtPklzRmFsc2UoJGJsb2NrSW5mb1snYWN0aXZlJ10pKQoJCQkJCXsKCQkJCQkJY29udGludWU7ICMgZG9uJ3QgcHJvY2VzcyBpbmFjdGl2ZSBibG9ja3MKCQkJCQl9CgkJCQkJCgkJCQkJaWYoaXNzZXQoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0luZm9bJ2lkJ11dKSkKCQkJCQl7CgkJCQkJCSR0aGlzLT5fY29udGVudEJsb2Nrc1skYmxvY2tJbmZvWydpZCddXVsnbXVsdGlwbGUnXSA9IHRydWU7CgkJCQkJCWNvbnRpbnVlOwoJCQkJCX0KCQkJCQkKCQkJCQkjIGlmIHRoaXMgYmxvY2sgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHRlbXBsYXRlIGFmdGVyIHBhZ2UgaGFzIGJlZW4gY3JlYXRlZAoJCQkJCWlmKCFpbl9hcnJheSgkYmxvY2tJbmZvWydpZCddLCR0aGlzLT5tUHJvcGVydGllcy0+bVByb3BlcnR5TmFtZXMpKQoJCQkJCXsKCQkJCQkJJGJsb2NrSW5mb1snbmV3X2Jsb2NrJ10gPSB0cnVlOwoJCQkJCX0KCQkJCQkKCQkJCQkkcGFnZVRhYiA9IHByZWdfcmVwbGFjZSgnLy0rLycsJ18nLG11bmdlX3N0cmluZ190b191cmwoc3RydG9sb3dlcih0cmltKCRibG9ja0luZm9bJ3BhZ2VfdGFiJ10pKSkpOwoJCQkJCWlmKCFpc3NldCgkdGhpcy0+X3BhZ2VUYWJzWyRwYWdlVGFiXSkpCgkJCQkJewoJCQkJCQkkdGhpcy0+X3BhZ2VUYWJzWyRwYWdlVGFiXVsndGFiX2lkJ10gICAgICAgPSAkcGFnZVRhYjsKCQkJCQkJJHRoaXMtPl9wYWdlVGFic1skcGFnZVRhYl1bJ3RhYl9uYW1lJ10gICAgID0gJGJsb2NrSW5mb1sncGFnZV90YWInXTsKCQkJCQkJJHRoaXMtPl9wYWdlVGFic1skcGFnZVRhYl1bJ2Jsb2NrX3RhYnMnXSAgID0gYXJyYXkoKTsKCQkJCQkJJHRoaXMtPl9wYWdlVGFic1skcGFnZVRhYl1bJ2Jsb2NrX2dyb3VwcyddID0gYXJyYXkoKTsKCQkJCQkJJGJsb2NrSW5mb1sncGFnZV90YWInXSA9ICRwYWdlVGFiOwoJCQkJCX0KCQkJCQkkdGhpcy0+X3BhZ2VUYWJzWyRwYWdlVGFiXVsnY29udGVudF9ibG9ja3MnXVskYmxvY2tJbmZvWydpZCddXSA9ICRibG9ja0luZm9bJ2lkJ107CgkJCQkJCgkJCQkJJGJsb2NrVGFiID0gJyc7CgkJCQkJaWYoJGJsb2NrSW5mb1snYmxvY2tfdGFiJ10gIT0gJycpCgkJCQkJewoJCQkJCQkkYmxvY2tUYWIgPSAkcGFnZVRhYiAuICdfJyAuIHByZWdfcmVwbGFjZSgnLy0rLycsJ18nLG11bmdlX3N0cmluZ190b191cmwoc3RydG9sb3dlcih0cmltKCRibG9ja0luZm9bJ2Jsb2NrX3RhYiddKSkpKTsKCQkJCQkJaWYoIWlzc2V0KCR0aGlzLT5fYmxvY2tUYWJzWyRibG9ja1RhYl0pKQoJCQkJCQl7CgkJCQkJCQkkdGhpcy0+X2Jsb2NrVGFic1skYmxvY2tUYWJdWyd0YWJfaWQnXSAgICAgICA9ICRibG9ja1RhYjsKCQkJCQkJCSR0aGlzLT5fYmxvY2tUYWJzWyRibG9ja1RhYl1bJ3RhYl9uYW1lJ10gICAgID0gJGJsb2NrSW5mb1snYmxvY2tfdGFiJ107CgkJCQkJCQkkdGhpcy0+X2Jsb2NrVGFic1skYmxvY2tUYWJdWydibG9ja19ncm91cHMnXSA9IGFycmF5KCk7CgkJCQkJCX0KCQkJCQkJJHRoaXMtPl9ibG9ja1RhYnNbJGJsb2NrVGFiXVsnY29udGVudF9ibG9ja3MnXVskYmxvY2tJbmZvWydpZCddXSA9ICRibG9ja0luZm9bJ2lkJ107CgkJCQkJCSR0aGlzLT5fcGFnZVRhYnNbJHBhZ2VUYWJdWydibG9ja190YWJzJ11bJGJsb2NrVGFiXSAgICAgICAgICAgICAgPSAkYmxvY2tUYWI7CgkJCQkJCSRibG9ja0luZm9bJ2Jsb2NrX3RhYiddID0gJGJsb2NrVGFiOwoJCQkJCX0KCQkJCQkKCQkJCQkkYmxvY2tHcm91cCA9ICcnOwoJCQkJCWlmKCRibG9ja0luZm9bJ2Jsb2NrX2dyb3VwJ10gIT0gJycpCgkJCQkJewoJCQkJCQkkYmxvY2tHcm91cCA9ICgkYmxvY2tUYWI/JGJsb2NrVGFiOiRwYWdlVGFiKSAuICdfJyAuIHByZWdfcmVwbGFjZSgnLy0rLycsJ18nLG11bmdlX3N0cmluZ190b191cmwoc3RydG9sb3dlcih0cmltKCRibG9ja0luZm9bJ2Jsb2NrX2dyb3VwJ10pKSkpOwoJCQkJCQlpZighaXNzZXQoJHRoaXMtPl9ibG9ja0dyb3Vwc1skYmxvY2tHcm91cF0pKQoJCQkJCQl7CgkJCQkJCQkkdGhpcy0+X2Jsb2NrR3JvdXBzWyRibG9ja0dyb3VwXVsnZ3JvdXBfaWQnXSAgID0gJGJsb2NrR3JvdXA7CgkJCQkJCQkkdGhpcy0+X2Jsb2NrR3JvdXBzWyRibG9ja0dyb3VwXVsnZ3JvdXBfbmFtZSddID0gJGJsb2NrSW5mb1snYmxvY2tfZ3JvdXAnXTsKCQkJCQkJCSR0aGlzLT5fcGFnZVRhYnNbJHBhZ2VUYWJdWydibG9ja19ncm91cHMnXVskYmxvY2tHcm91cF0gPSAkYmxvY2tHcm91cDsKCQkJCQkJfQoJCQkJCQkkdGhpcy0+X2Jsb2NrR3JvdXBzWyRibG9ja0dyb3VwXVsnY29udGVudF9ibG9ja3MnXVskYmxvY2tJbmZvWydpZCddXSA9ICRibG9ja0luZm9bJ2lkJ107CgkJCQkJCXVuc2V0KCR0aGlzLT5fYmxvY2tUYWJzWyRibG9ja1RhYl1bJ2NvbnRlbnRfYmxvY2tzJ11bJGJsb2NrSW5mb1snaWQnXV0pOwoJCQkJCQlpZigkYmxvY2tUYWIpCgkJCQkJCXsKCQkJCQkJCSR0aGlzLT5fYmxvY2tUYWJzWyRibG9ja1RhYl1bJ2Jsb2NrX2dyb3VwcyddWyRibG9ja0dyb3VwXSA9ICRibG9ja0dyb3VwOwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJewoJCQkJCQkJdW5zZXQoJHRoaXMtPl9ibG9ja1RhYnNbJGJsb2NrVGFiXVsnYmxvY2tfZ3JvdXBzJ11bJGJsb2NrR3JvdXBdKTsKCQkJCQkJfQoJCQkJCQkkYmxvY2tJbmZvWydibG9ja19ncm91cCddID0gJGJsb2NrR3JvdXA7CgkJCQkJfQoJCQkJCQoJCQkJCSMgdGhpcyB3aWxsIGNyZWF0ZSBhbiBpbnZhbGlkIGJsb2NrIHR5cGUgdG8gcHJpbnQgb3V0IGEKCQkJCQkjIG1lc3NhZ2Ugd2hlbiB1c2luZyBhIGJhc2ljIGNvbnRlbnQgcHJvcGVydHkgYXMgYmxvY2sgbmFtZQoJCQkJCWlmKGluX2FycmF5KCRibG9ja0luZm9bJ2lkJ10sICRiYXNpY0F0dHJpYnMpCgkJCQkJfHwgJGJsb2NrSW5mb1snaWQnXSA9PSAkYmxvY2tJbmZvWydpZCddIC4gJ19mZXVfYWN0aW9uJwoJCQkJCXx8ICRibG9ja0luZm9bJ2lkJ10gPT0gJGJsb2NrSW5mb1snaWQnXSAuICdfZmV1X2FjdGlvbltdJwoJCQkJCXx8ICRibG9ja0luZm9bJ2lkJ10gPT0gJGJsb2NrSW5mb1snaWQnXSAuICdfZmV1X2FjY2VzcycKCQkJCQl8fCAkYmxvY2tJbmZvWydpZCddID09ICRibG9ja0luZm9bJ2lkJ10gLiAnX2ZldV9hY2Nlc3NbXScKCQkJCQl8fCAkYmxvY2tJbmZvWydpZCddID09ICdBZHZhbmNlZENvbnRlbnRTdGFydERhdGUnCgkJCQkJfHwgJGJsb2NrSW5mb1snaWQnXSA9PSAnQWR2YW5jZWRDb250ZW50RW5kRGF0ZScKCQkJCQl8fCAkYmxvY2tJbmZvWydpZCddID09ICdBZHZhbmNlZENvbnRlbnRTdGFydFRpbWUnCgkJCQkJfHwgJGJsb2NrSW5mb1snaWQnXSA9PSAnQWR2YW5jZWRDb250ZW50RW5kVGltZScKCQkJCQl8fCAkYmxvY2tJbmZvWydpZCddID09ICdzdGFydF9kYXRlJwoJCQkJCXx8ICRibG9ja0luZm9bJ2lkJ10gPT0gJ2VuZF9kYXRlJwoJCQkJCXx8ICRibG9ja0luZm9bJ2lkJ10gPT0gJGJsb2NrSW5mb1snaWQnXSAuICdfQWR2YW5jZWRDb250ZW50VGltZScKCQkJCQl8fCAkYmxvY2tJbmZvWydpZCddID09ICRibG9ja0luZm9bJ2lkJ10gLiAnX0FkdmFuY2VkQ29udGVudERhdGUnKQoJCQkJCXsKCQkJCQkJJGJsb2NrSW5mb1snaWQnXSA9IG1kNSgkYmxvY2tJbmZvWydpZCddIC4gJGopOwoJCQkJCQkkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSW5mb1snaWQnXV0gPSAkYmxvY2tJbmZvOwoJCQkJCQkkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSW5mb1snaWQnXV1bJ2Jsb2NrX3R5cGUnXSAgICA9ICcnOwoJCQkJCQkkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSW5mb1snaWQnXV1bJ2RlZmF1bHQnXSA9ICR0aGlzLT5sYW5nKCdlcnJvcl9iYXNpY2F0dHJpYicsICRibG9ja0luZm9bJ25hbWUnXSk7CgkJCQkJCQoJCQkJCQljb250aW51ZTsKCQkJCQl9CgkJCQkJCgkJCQkJJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0luZm9bJ2lkJ11dID0gJGJsb2NrSW5mbzsKCQkJCQkkdGhpcy0+QWRkRXh0cmFQcm9wZXJ0eSgkYmxvY2tJbmZvWydpZCddKTsKCQkJCQkKCQkJCQlpZigkYmxvY2tJbmZvWydibG9ja190eXBlJ10gPT0gJ211bHRpX2lucHV0JyAmJiAkYmxvY2tJbmZvWydpbnB1dHMnXSkKCQkJCQl7CgkJCQkJCSMgZ2V0IG11bHRpIGlucHV0cwoJCQkJCQkkbXVsdGlfaW5wdXRfaWRzID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsJGJsb2NrSW5mb1snaW5wdXRzJ10pKTsKCQkJCQkJZm9yZWFjaCgkbXVsdGlfaW5wdXRfaWRzIGFzICRrMT0+JG11bHRpX2lucHV0X2lkKQoJCQkJCQl7CgkJCQkJCQlpZighaXNzZXQoJHRoaXMtPl9tdWx0aUlucHV0c1skbXVsdGlfaW5wdXRfaWRdKSkKCQkJCQkJCXsKCQkJCQkJCQkkdGhpcy0+X211bHRpSW5wdXRzID0gYXJyYXlfbWVyZ2UoJHRoaXMtPl9tdWx0aUlucHV0cywgJEFkdmFuY2VkQ29udGVudC0+R2V0TXVsdGlJbnB1dEZ1bGwoJG11bHRpX2lucHV0X2lkcykpOwoJCQkJCQkJCWlmKCFpc3NldCgkdGhpcy0+X211bHRpSW5wdXRzWyRtdWx0aV9pbnB1dF9pZF0pKQoJCQkJCQkJCXsKCQkJCQkJCQkJY29udGludWU7CgkJCQkJCQkJfQoJCQkJCQkJCSMkdGhpcy0+X211bHRpSW5wdXRzWyRpbnB1dF9pZF1bJ3RlbXBsYXRlJ10gPSAkQWR2YW5jZWRDb250ZW50LT5HZXRUZW1wbGF0ZSgkdGhpcy0+X211bHRpSW5wdXRzWyRpbnB1dF9pZF1bJ3RwbF9uYW1lJ10pOwoJCQkJCQkJCSRwYXR0ZXJuID0gJy97KChBZHZhbmNlZENvbnRlbnR8Y29udGVudChfaW1hZ2V8X21vZHVsZSk/KSgoPyFfKVtefV0qKSl9L2knOwoJCQkJCQkJCSRtYXRjaGVzID0gYXJyYXkoKTsKCQkJCQkJCQkjIGdldCBhbGwgdGhlIHRhZ3MKCQkJCQkJCQkkcmVzdWx0ID0gcHJlZ19tYXRjaF9hbGwoJHBhdHRlcm4sICR0aGlzLT5fbXVsdGlJbnB1dHNbJG11bHRpX2lucHV0X2lkXVsnaW5wdXRfZmllbGRzJ10sICRtYXRjaGVzKTsKCQkJCQkJCQkKCQkJCQkJCQlpZiAoJHJlc3VsdCAmJiBjb3VudCgkbWF0Y2hlc1sxXSkgPiAwKQoJCQkJCQkJCXsKCQkJCQkJCQkJIyBmb3JlYWNoIHRhZwoJCQkJCQkJCQlmb3JlYWNoICgkbWF0Y2hlc1sxXSBhcyAkazI9PiR3aG9sZXRhZykKCQkJCQkJCQkJewoJCQkJCQkJCQkJaWYoISRpbnB1dEluZm8gPSAkdGhpcy0+X2dldF9ibG9ja19pbmZvKCR3aG9sZXRhZykpCgkJCQkJCQkJCQl7CgkJCQkJCQkJCQkJY29udGludWU7CgkJCQkJCQkJCQl9CgkJCQkJCQkJCQlpZigkaW5wdXRJbmZvWydibG9ja190eXBlJ10gPT0gJ211bHRpX2lucHV0JykKCQkJCQkJCQkJCXsKCQkJCQkJCQkJCQljb250aW51ZTsgIyBUb0RvOiBkaXNwbGF5IG1lc3NhZ2U/CgkJCQkJCQkJCQl9CgkJCQkJCQkJCQkjJF9pbnB1dF9pZCA9ICRpbnB1dEluZm9bJ2lkJ107CgkJCQkJCQkJCQkjJGlucHV0SW5mb1snaWQnXSA9ICdtdWx0aUlucHV0LScgLiAkYmxvY2tJbmZvWydpZCddIC4gJy0nIC4gJG11bHRpX2lucHV0X2lkIC4gJy0nIC4gJGsxIC4gJy0nIC4gJGlucHV0SW5mb1snaWQnXTsKCQkJCQkJCQkJCSR0aGlzLT5fbXVsdGlJbnB1dHNbJG11bHRpX2lucHV0X2lkXVsnZWxlbWVudHMnXVskazJdID0gJGlucHV0SW5mbzsKCQkJCQkJCQkJfQoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCQkjIGZvcmNlIGEgbG9hZAoJCQkkdGhpcy0+bVByb3BlcnRpZXMtPkxvYWQoJHRoaXMtPm1JZCk7CgkJCSR0aGlzLT5fY29udGVudEJsb2Nrc0xvYWRlZCA9IHRydWU7CgkJfQoJCXJldHVybiAkdGhpcy0+X2NvbnRlbnRCbG9ja3NMb2FkZWQ7Cgl9CgkKCWZ1bmN0aW9uIGRpc3BsYXlfY29udGVudF9ibG9jaygkYmxvY2tJbmZvLCR2YWx1ZSA9ICcnLCRhZGRpbmcgPSBmYWxzZSkKCXsKCQkkQWR2YW5jZWRDb250ZW50ID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50Jyk7CgkJaWYobWV0aG9kX2V4aXN0cygkdGhpcywnX2Rpc3BsYXlfJy4kYmxvY2tJbmZvWydibG9ja190eXBlJ10uJ19ibG9jaycpKQoJCXsKCQkJcmV0dXJuIGNhbGxfdXNlcl9mdW5jKGFycmF5KCR0aGlzLCdfZGlzcGxheV8nLiRibG9ja0luZm9bJ2Jsb2NrX3R5cGUnXS4nX2Jsb2NrJyksICRibG9ja0luZm8sICR2YWx1ZSwgJGFkZGluZyk7CgkJfQoJCXJldHVybiAkQWR2YW5jZWRDb250ZW50LT5sYW5nKCdpbnZhbGlkX2Jsb2NrdHlwZScsJGJsb2NrSW5mb1snYmxvY2tfdHlwZSddLCRibG9ja0luZm9bJ25hbWUnXSk7Cgl9CgkKCWZ1bmN0aW9uIFNldFByb3BlcnRpZXMoKQoJewoJCXBhcmVudDo6U2V0UHJvcGVydGllcygpOwoJCQoJCSR0aGlzLT5BZGRCYXNlUHJvcGVydHkoJ3RlbXBsYXRlJywgNCwgMCwgJ2ludCcpOwoJCSR0aGlzLT5BZGRCYXNlUHJvcGVydHkoJ3BhZ2VtZXRhZGF0YScsIDIwKTsKCQkKCQkkdGhpcy0+QWRkQ29udGVudFByb3BlcnR5KCdzZWFyY2hhYmxlJywgOCwgMCwgJ2ludCcpOwoJCSR0aGlzLT5BZGRDb250ZW50UHJvcGVydHkoJ3BhZ2VkYXRhJywgMjUpOwoJCSR0aGlzLT5BZGRDb250ZW50UHJvcGVydHkoJ2Rpc2FibGVfd3lzaXd5ZycsIDYwLCAwLCAnaW50Jyk7CgkJCgkJaWYoY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBZHZhbmNlZENvbnRlbnQnKS0+R2V0UHJlZmVyZW5jZSgndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJywxKSkKCQl7CgkJCSR0aGlzLT5BZGRDb250ZW50UHJvcGVydHkoJ3VzZV9leHBpcmVfZGF0ZScsIDk5LCAwLCAnaW50Jyk7CgkJCSR0aGlzLT5BZGRDb250ZW50UHJvcGVydHkoJ3N0YXJ0X2RhdGUnLCAxMDAsIDAsICdpbnQnKTsKCQkJJHRoaXMtPkFkZENvbnRlbnRQcm9wZXJ0eSgnZW5kX2RhdGUnLCAxMDEsIDAsICdpbnQnKTsKCQkJCgkJCSR0aGlzLT5BZGRDb250ZW50UHJvcGVydHkoJ2ZldV9hY2Nlc3MnLCAxMDIpOwoJCQkkdGhpcy0+QWRkQ29udGVudFByb3BlcnR5KCdyZWRpcmVjdF9wYWdlJywgMTAzLCAwLCAnaW50Jyk7CgkJCSR0aGlzLT5BZGRDb250ZW50UHJvcGVydHkoJ2luaGVyaXRfcmVkaXJlY3RfcGFyYW1zJywgMTA0LCAwLCdpbnQnKTsKCQkJJHRoaXMtPkFkZENvbnRlbnRQcm9wZXJ0eSgncmVkaXJlY3RfcGFyYW1zJywgMTA1LCAwKTsKCQkJJHRoaXMtPkFkZENvbnRlbnRQcm9wZXJ0eSgnZXZhbHVhdGVfc21hcnR5JywgMTA2LCAwLCAnaW50Jyk7CgkJCSR0aGlzLT5BZGRDb250ZW50UHJvcGVydHkoJ2ZldV9hY3Rpb24nLCAxMDcsIDAsICdpbnQnKTsKCQkJJHRoaXMtPkFkZENvbnRlbnRQcm9wZXJ0eSgnaGlkZV9tZW51X2l0ZW0nLCAxMDgsIDAsICdpbnQnKTsKCQl9CgkJJHRoaXMtPm1QcmV2aWV3ID0gdHJ1ZTsKCX0KCQoJZnVuY3Rpb24gUmVhZHlGb3JFZGl0KCkKCXsKCQkkdGhpcy0+cGFyc2VfY29udGVudF9ibG9ja3MoKTsKCX0KCQoJZnVuY3Rpb24gU2hvdygkcGFyYW0gPSAnY29udGVudF9lbicpCgl7CgkJZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKCQlpZihjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpLT5HZXRQcmVmZXJlbmNlKCd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnMnLDEpICYmICghaXNzZXQoJENNU19BRE1JTl9QQUdFKSB8fCAkQ01TX0FETUlOX1BBR0UgIT09IDEpKQoJCXsKCQkJaWYoISR0aGlzLT5DaGVja0Zyb250ZW5kUGFnZUFjY2VzcygpKQoJCQl7CgkJCQkjY21zbXMoKS0+R2V0U21hcnR5KCktPmNsZWFyX2FsbF9jYWNoZSgpOyAjID8/PwoJCQkJcmV0dXJuICR0aGlzLT5Eb0Zyb250ZW5kUGFnZUFjdGlvbigpOwoJCQl9CgkJCSMgVG9EbzogaGlkZSBjb250ZW50L3JlZGlyZWN0IGlmIHBhZ2Ugc2hvdWxkIGJlIGhpZGRlbiBpZiBsb2dnZWQgaW4/CgkJfQoJCQoJCSR0aGlzLT5wYXJzZV9jb250ZW50X2Jsb2NrcygpOwoJCSRwYXJhbSA9IHByZWdfcmVwbGFjZSgnLy0rLycsJ18nLG11bmdlX3N0cmluZ190b191cmwoJHBhcmFtKSk7CgkJCgkJaWYoIWlzc2V0KCRDTVNfQURNSU5fUEFHRSkgfHwgJENNU19BRE1JTl9QQUdFICE9PSAxKQoJCXsKCQkJZm9yZWFjaCgkdGhpcy0+X2NvbnRlbnRCbG9ja3MgYXMgJGJsb2NrSW5mbykKCQkJewoJCQkJaWYoJGZldXNlcnMgPSYgY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJykpCgkJCQl7CgkJCQkJaWYoJGJsb2NrSW5mb1snZmV1X2FjY2VzcyddICYmICEkdGhpcy0+Q2hlY2tGcm9udGVuZEFjY2VzcygkYmxvY2tJbmZvWydmZXVfYWNjZXNzJ10pKQoJCQkJCXsKCQkJCQkJaWYoJGJsb2NrSW5mb1snZmV1X2FjdGlvbiddICYmICEkdGhpcy0+X2ZldUFjdGlvbikKCQkJCQkJewoJCQkJCQkJJHRoaXMtPl9mZXVBY3Rpb24gPSB0cnVlOwoJCQkJCQkJJHRoaXMtPlNldFByb3BlcnR5VmFsdWUoJGJsb2NrSW5mb1snaWQnXSwkZmV1c2Vycy0+RG9BY3Rpb24oJ2RlZmF1bHQnLCAnY250bnQwMScsIGFycmF5KCdmb3JtJz0+J2xvZ2luJyksICR0aGlzLT5tSWQpKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCSR0aGlzLT5TZXRQcm9wZXJ0eVZhbHVlKCRibG9ja0luZm9bJ2lkJ10sJycpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJaWYoJGJsb2NrSW5mb1snYmxvY2tfdHlwZSddID09ICdkYXRlJyAmJiAkYmxvY2tJbmZvWydkYXRlX2Zvcm1hdCddICE9ICcnKQoJCQkJewoJCQkJCSR0aGlzLT5TZXRQcm9wZXJ0eVZhbHVlKCRibG9ja0luZm9bJ2lkJ10sc3RyZnRpbWUoJGJsb2NrSW5mb1snZGF0ZV9mb3JtYXQnXSwkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgkYmxvY2tJbmZvWydpZCddKSkpOwoJCQkJfQoJCQl9CgkJfQoJCQoJCSMgTUxFIHN1cHBvcnQKCQlpZigkdGhpcy0+bWxlICYmICR0aGlzLT5ibG9ja0xhbmcgIT0gJycpCgkJewoJCQlpZigkcGFyYW0gPT0gJ2NvbnRlbnRfZW4nKQoJCQl7CgkJCQkkcGFyYW0gPSAnY29udGVudCcuJHRoaXMtPmJsb2NrTGFuZzsKCQkJfQoJCQllbHNlIGlmKCFlbmRzd2l0aCgkcGFyYW0sJHRoaXMtPmJsb2NrTGFuZykpCgkJCXsKCQkJCSRwYXJhbSAuPSAkdGhpcy0+YmxvY2tMYW5nOwoJCQl9CgkJfQoJCSMtLS0KCQkKCQkkcmVzdWx0ID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJHBhcmFtKTsKCQkKCQkjIE1MRSBzdXBwb3J0CgkJaWYoJHRoaXMtPm1sZSAmJiAkdGhpcy0+YmxvY2tMYW5nICE9ICcnKQoJCXsKCQkJaWYoJHJlc3VsdCA9PSAnJyAmJiAkdGhpcy0+ZGVmYXVsdEJsb2NrTGFuZyAhPSAnJyAmJiAkdGhpcy0+ZGVmYXVsdEJsb2NrTGFuZyAhPSAkdGhpcy0+YmxvY2tMYW5nKQoJCQl7CgkJCQkkcGFyYW0gPSBzdHJfcmVwbGFjZSgkdGhpcy0+YmxvY2tMYW5nLCAkdGhpcy0+ZGVmYXVsdEJsb2NrTGFuZywgJHBhcmFtKTsKCQkJCSRyZXN1bHQgPSAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgkcGFyYW0pOwoJCQl9CgkJfQoJCSMtLS0KCQkKCQlyZXR1cm4gJHJlc3VsdDsKCX0KCQoJZnVuY3Rpb24gVGFiTmFtZXMoKQoJewoJCSR0YWJzID0gYXJyYXkobGFuZygnbWFpbicpKTsKCQlpZiggY2hlY2tfcGVybWlzc2lvbihnZXRfdXNlcmlkKCksICdNYW5hZ2UgQWxsIENvbnRlbnQnKSApCgkJewoJCQkkdGFic1tdID0gbGFuZygnb3B0aW9ucycpOwoJCX0KCQkkQWR2YW5jZWRDb250ZW50ID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50Jyk7CgkJaWYoIGNoZWNrX3Blcm1pc3Npb24oZ2V0X3VzZXJpZCgpLCAnTWFuYWdlIEFkdmFuY2VkQ29udGVudCBPcHRpb25zJykgJiYgJEFkdmFuY2VkQ29udGVudC0+R2V0UHJlZmVyZW5jZSgndXNlX2FkdmFuY2VkX3BhZ2VvcHRpb25zJywxKSkKCQl7CgkJCSR0YWJzW10gPSAkQWR2YW5jZWRDb250ZW50LT5sYW5nKCdhZHZhbmNlZGNvbnRlbnRfdGFibmFtZScpOwoJCX0KCQkKCQkkdGhpcy0+cGFyc2VfY29udGVudF9ibG9ja3MoKTsKCQkKCQlmb3JlYWNoKCR0aGlzLT5fcGFnZVRhYnMgYXMgJHRhYikKCQl7CgkJCWlmKCFpbl9hcnJheSgkdGFiWyd0YWJfbmFtZSddLCAkdGFicykpCgkJCXsKCQkJCSR0YWJzW10gPSAoJHRhYlsndGFiX2lkJ10gPT0gJ29wdGlvbnMnID8gbGFuZygnb3B0aW9ucycpIDogJHRhYlsndGFiX25hbWUnXSk7CgkJCX0KCQkJaWYoIWluX2FycmF5KCR0YWJbJ3RhYl9pZCddLCAkdGhpcy0+X3RhYklkcykpCgkJCXsKCQkJCSR0aGlzLT5fdGFiSWRzW10gPSAkdGFiWyd0YWJfaWQnXTsKCQkJfQoJCX0KCQlyZXR1cm4gJHRhYnM7Cgl9CgkKCWZ1bmN0aW9uIEZpbGxQYXJhbXMoJHBhcmFtcywgJGVkaXRpbmcgPSBmYWxzZSkKCXsKCQlpZihpc3NldCgkcGFyYW1zWydjb250ZW50X3R5cGUnXSkpCgkJewoJCQkkQWR2YW5jZWRDb250ZW50ID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50Jyk7CgkJCQoJCQkkcGFyYW1ldGVycyA9IGFycmF5KCdwYWdlZGF0YScsICdzZWFyY2hhYmxlJywgJ2Rpc2FibGVfd3lzaXd5ZycsICdmZXVfYWNjZXNzJywgJ3JlZGlyZWN0X3BhZ2UnLCAncmVkaXJlY3RfcGFyYW1zJywgJ2V2YWx1YXRlX3NtYXJ0eScsICdmZXVfYWN0aW9uJywgJ3N0YXJ0X2RhdGUnLCAnZW5kX2RhdGUnLCAndXNlX2V4cGlyZV9kYXRlJywnaGlkZV9tZW51X2l0ZW0nLCdpbmhlcml0X3JlZGlyZWN0X3BhcmFtcycpOwoJCQkKCQkJJHRoaXMtPl9jb250ZW50QmxvY2tzTG9hZGVkID0gZmFsc2U7CgkJCSR0aGlzLT5tVGVtcGxhdGVJZCAgICAgICAgICA9IGlzc2V0KCRwYXJhbXNbJ3RlbXBsYXRlX2lkJ10pID8gJHBhcmFtc1sndGVtcGxhdGVfaWQnXSA6ICR0aGlzLT5tVGVtcGxhdGVJZDsKCQkJJHRoaXMtPm1UeXBlICAgICAgICAgICAgICAgID0gaXNzZXQoJHBhcmFtc1snY29udGVudF90eXBlJ10pID8gJHBhcmFtc1snY29udGVudF90eXBlJ10gOiAkdGhpcy0+bVR5cGU7CgkJCQoJCQlpZigkdGhpcy0+bVR5cGUgPT0gJ2NvbnRlbnQyJyB8fCAkdGhpcy0+bVR5cGUgPT0gJ2NvbnRlbnQnKQoJCQl7CgkJCQkjIGFkZCBjb250ZW50IGJsb2NrcwoJCQkJJHRoaXMtPnBhcnNlX2NvbnRlbnRfYmxvY2tzKCk7CgkJCQkKCQkJCSMgYWRkZWQgYnkgTmFOOgoJCQkJJHRoaXMtPm1QYXJlbnRJZCA9IGlzc2V0KCRwYXJhbXNbJ3BhcmVudF9pZCddKSA/ICRwYXJhbXNbJ3BhcmVudF9pZCddIDogJHRoaXMtPm1QYXJlbnRJZDsKCQkJCQoJCQkJaWYoY2hlY2tfcGVybWlzc2lvbihnZXRfdXNlcmlkKCksICdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE9wdGlvbnMnKSAmJiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpLT5HZXRQcmVmZXJlbmNlKCd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnMnLDEpKQoJCQkJewoJCQkJCSRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSA9IGlzc2V0KCRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snZmV1X2FjY2VzcyddKSA/ICRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSA6ICgkZWRpdGluZyA/ICR0aGlzLT5DbGVhbkFycmF5KGV4cGxvZGUoJywnLCR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdmZXVfYWNjZXNzJykpKSA6ICR0aGlzLT5DbGVhbkFycmF5KGV4cGxvZGUoJywnLCRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ2ZldV9hY2Nlc3MnKSkpKTsKCQkJCQkjIGlmIHBhZ2UgaGFzIG5vIHBhcmVudHMgYnV0IHdhbnRzIHRvIGluaGVyaXQgLT4gcmVtb3ZlIGluaGVyaXRhbmNlCgkJCQkJaWYoJHRoaXMtPm1QYXJlbnRJZCA8PSAwICYmIGluX2FycmF5KC0xLCAkcGFyYW1zWydmZXVfYWNjZXNzJ10pKQoJCQkJCXsKCQkJCQkJZm9yZWFjaCgkcGFyYW1zWydmZXVfYWNjZXNzJ10gYXMgJGs9PiR2KQoJCQkJCQl7CgkJCQkJCQlpZigkdiA9PSAtMSkKCQkJCQkJCXsKCQkJCQkJCQl1bnNldCgkcGFyYW1zWydmZXVfYWNjZXNzJ11bJGtdKTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCQkjIGlmIHRoZXJlIGlzIHN0aWxsIGluaGVyaXRhbmNlIC0+IGNoZWNrIGlmIHRoZXJlIGFjdHVhbGx5IGlzIGFueSBmZXUgZ3JvdXAgc2VsZWN0ZWQgYnkgcGFyZW50cwoJCQkJCSRfZmV1QWNjZXNzID0gYXJyYXkoKTsKCQkJCQlpZihpbl9hcnJheSgtMSwgJHBhcmFtc1snZmV1X2FjY2VzcyddKSkKCQkJCQl7CgkJCQkJCSMgJF9mZXVBY2Nlc3MgY29udGFpbnMgYWxsIGZldSBncm91cHMgKG9mIGN1cnJlbnQgcGFnZSBhcyB3ZWxsIGFzIG9mIGFsbCBwYXJlbnQgcGFnZXMpCgkJCQkJCSRfZmV1QWNjZXNzID0gJHRoaXMtPkluaGVyaXRQYXJlbnRQcm9wKCdmZXVfYWNjZXNzJywgJHBhcmFtc1snZmV1X2FjY2VzcyddKTsKCQkJCQl9CgkJCQkJCgkJCQkJIyBpZiB3ZSBoYXZlIHNlbGVjdGVkIGFueSBmZXUgZ3JvdXAgLT4gZGlzYWJsZSBjYWNoaW5nIGFuZCBzZWFyY2gKCQkJCQlpZihjb3VudCgkX2ZldUFjY2VzcykgfHwgKGNvdW50KCRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSkgJiYgIWluX2FycmF5KC0xLCAkcGFyYW1zWydmZXVfYWNjZXNzJ10pKSkKCQkJCQl7CgkJCQkJCSRwYXJhbXNbJ2NhY2hhYmxlJ10gICA9IGZhbHNlOwoJCQkJCQkkdGhpcy0+bUNhY2hhYmxlICAgICAgPSBmYWxzZTsKCQkJCQkJJHBhcmFtc1snc2VhcmNoYWJsZSddID0gZmFsc2U7CgkJCQkJfQoJCQkJCSRwYXJhbXNbJ2ZldV9hY2Nlc3MnXSA9IGltcGxvZGUoJywnLCAkcGFyYW1zWydmZXVfYWNjZXNzJ10pOwoJCQkJCQoJCQkJCSRwYXJhbXNbJ3JlZGlyZWN0X3BhZ2UnXSA9IGlzc2V0KCRwYXJhbXNbJ3JlZGlyZWN0X3BhZ2UnXSkgPyAkcGFyYW1zWydyZWRpcmVjdF9wYWdlJ10gOiAoJGVkaXRpbmcgPyAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgncmVkaXJlY3RfcGFnZScpIDogJEFkdmFuY2VkQ29udGVudC0+R2V0UHJlZmVyZW5jZSgncmVkaXJlY3RfcGFnZScpKTsKCQkJCQlpZigkdGhpcy0+bVBhcmVudElkIDw9IDAgJiYgJHBhcmFtc1sncmVkaXJlY3RfcGFnZSddID09IC0xKQoJCQkJCXsKCQkJCQkJJHBhcmFtc1sncmVkaXJlY3RfcGFnZSddID0gJyc7CgkJCQkJfQoJCQkJCQoJCQkJCSRwYXJhbXNbJ2ZldV9hY3Rpb24nXSA9IGlzc2V0KCRwYXJhbXNbJ2ZldV9hY3Rpb24nXSkgPyAkcGFyYW1zWydmZXVfYWN0aW9uJ10gOiAoJGVkaXRpbmcgPyAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnZmV1X2FjdGlvbicpIDogJEFkdmFuY2VkQ29udGVudC0+R2V0UHJlZmVyZW5jZSgnZmV1X2FjdGlvbicsMSkpOwoJCQkJCWlmKCR0aGlzLT5tUGFyZW50SWQgPD0gMCAmJiAkcGFyYW1zWydmZXVfYWN0aW9uJ10gPT0gLTEpCgkJCQkJewoJCQkJCQkkcGFyYW1zWydmZXVfYWN0aW9uJ10gPSAxOwoJCQkJCX0KCQkJCQkKCQkJCQkkcGFyYW1zWydoaWRlX21lbnVfaXRlbSddID0gaXNzZXQoJHBhcmFtc1snaGlkZV9tZW51X2l0ZW0nXSkgPyAkcGFyYW1zWydoaWRlX21lbnVfaXRlbSddIDogKCRlZGl0aW5nID8gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2hpZGVfbWVudV9pdGVtJykgOiAkQWR2YW5jZWRDb250ZW50LT5HZXRQcmVmZXJlbmNlKCdoaWRlX21lbnVfaXRlbScsMCkpOwoJCQkJCWlmKCR0aGlzLT5tUGFyZW50SWQgPD0gMCAmJiAkcGFyYW1zWydoaWRlX21lbnVfaXRlbSddID09IC0xKQoJCQkJCXsKCQkJCQkJJHBhcmFtc1snaGlkZV9tZW51X2l0ZW0nXSA9IDA7CgkJCQkJfQoJCQkJCQoJCQkJCSRwYXJhbXNbJ2luaGVyaXRfcmVkaXJlY3RfcGFyYW1zJ10gPSBpc3NldCgkcGFyYW1zWydpbmhlcml0X3JlZGlyZWN0X3BhcmFtcyddKSA/IHRydWUgOiAoJGVkaXRpbmcgPyAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnaW5oZXJpdF9yZWRpcmVjdF9wYXJhbXMnKSA6ICRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ2luaGVyaXRfcmVkaXJlY3RfcGFyYW1zJykpOwoJCQkJCWlmKCR0aGlzLT5tUGFyZW50SWQgPD0gMCAmJiAkcGFyYW1zWydpbmhlcml0X3JlZGlyZWN0X3BhcmFtcyddKQoJCQkJCXsKCQkJCQkJJHBhcmFtc1snaW5oZXJpdF9yZWRpcmVjdF9wYXJhbXMnXSA9IGZhbHNlOwoJCQkJCX0KCQkJCQkKCQkJCQlpZigkcGFyYW1zWydpbmhlcml0X3JlZGlyZWN0X3BhcmFtcyddKSB7CgkJCQkJCSRwYXJhbXNbJ3JlZGlyZWN0X3BhcmFtcyddID0gLTE7CgkJCQkJCSRwYXJhbXNbJ2V2YWx1YXRlX3NtYXJ0eSddID0gLTE7CgkJCQkJfQoJCQkJCQoJCQkJCSRwYXJhbXNbJ3VzZV9leHBpcmVfZGF0ZSddID0gaXNzZXQoJHBhcmFtc1sndXNlX2V4cGlyZV9kYXRlJ10pID8gJHBhcmFtc1sndXNlX2V4cGlyZV9kYXRlJ10gOiAoJGVkaXRpbmcgPyAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgndXNlX2V4cGlyZV9kYXRlJykgOiAkQWR2YW5jZWRDb250ZW50LT5HZXRQcmVmZXJlbmNlKCd1c2VfZXhwaXJlX2RhdGUnKSk7CgkJCQkJaWYoJHRoaXMtPm1QYXJlbnRJZCA8PSAwICYmICRwYXJhbXNbJ3VzZV9leHBpcmVfZGF0ZSddID09IC0xKQoJCQkJCXsKCQkJCQkJJHBhcmFtc1sndXNlX2V4cGlyZV9kYXRlJ10gPSAwOwoJCQkJCX0KCQkJCQlpZigkcGFyYW1zWyd1c2VfZXhwaXJlX2RhdGUnXSA9PSAtMSkKCQkJCQl7CgkJCQkJCSRwYXJhbXNbJ3N0YXJ0X2RhdGUnXSA9IC0xOwoJCQkJCQkkcGFyYW1zWydlbmRfZGF0ZSddICAgPSAtMTsKCQkJCQl9CgkJCQkJZWxzZSBpZigkcGFyYW1zWyd1c2VfZXhwaXJlX2RhdGUnXSA9PSAwKQoJCQkJCXsKCQkJCQkJJHBhcmFtc1snc3RhcnRfZGF0ZSddID0gJyc7CgkJCQkJCSRwYXJhbXNbJ2VuZF9kYXRlJ10gICA9ICcnOwoJCQkJCX0KCQkJCQllbHNlIHsKCQkJCQkJaWYoaXNzZXQoJHBhcmFtc1snQWR2YW5jZWRDb250ZW50U3RhcnRUaW1lJ10pICYmIGlzc2V0KCRwYXJhbXNbJ0FkdmFuY2VkQ29udGVudFN0YXJ0RGF0ZSddKSkKCQkJCQkJewoJCQkJCQkJJHBhcmFtc1snc3RhcnRfZGF0ZSddID0gJHBhcmFtc1snQWR2YW5jZWRDb250ZW50U3RhcnRUaW1lJ10gKyAkcGFyYW1zWydBZHZhbmNlZENvbnRlbnRTdGFydERhdGUnXTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCSRwYXJhbXNbJ3N0YXJ0X2RhdGUnXSA9ICgkZWRpdGluZyAmJiAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnc3RhcnRfZGF0ZScpID8gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ3N0YXJ0X2RhdGUnKSA6IHN0cnRvdGltZSgnKycgLiAkQWR2YW5jZWRDb250ZW50LT5HZXRQcmVmZXJlbmNlKCJzdGFydF9kYXRlIiwnMSB3ZWVrJykpKTsKCQkJCQkJfQoJCQkJCQlpZihpc3NldCgkcGFyYW1zWydBZHZhbmNlZENvbnRlbnRFbmRUaW1lJ10pICYmIGlzc2V0KCRwYXJhbXNbJ0FkdmFuY2VkQ29udGVudEVuZERhdGUnXSkpCgkJCQkJCXsKCQkJCQkJCSRwYXJhbXNbJ2VuZF9kYXRlJ10gPSAkcGFyYW1zWydBZHZhbmNlZENvbnRlbnRFbmRUaW1lJ10gKyAkcGFyYW1zWydBZHZhbmNlZENvbnRlbnRFbmREYXRlJ107CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CgkJCQkJCQkkcGFyYW1zWydlbmRfZGF0ZSddID0gKCRlZGl0aW5nICYmICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdlbmRfZGF0ZScpID8gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2VuZF9kYXRlJykgOiBzdHJ0b3RpbWUoJysnIC4gJEFkdmFuY2VkQ29udGVudC0+R2V0UHJlZmVyZW5jZSgiZW5kX2RhdGUiLCcxIHdlZWsnKSwgJHBhcmFtc1snc3RhcnRfZGF0ZSddKSk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQkKCQkJCSMgZG8gdGhlIGNvbnRlbnQgcHJvcGVydHkgcGFyYW1ldGVycwoJCQkJZm9yZWFjaCAoJHBhcmFtZXRlcnMgYXMgJG9uZXBhcmFtKQoJCQkJewoJCQkJCWlmIChpc3NldCgkcGFyYW1zWyRvbmVwYXJhbV0pKQoJCQkJCXsKCQkJCQkJJHRoaXMtPlNldFByb3BlcnR5VmFsdWUoJG9uZXBhcmFtLCAkcGFyYW1zWyRvbmVwYXJhbV0pOwoJCQkJCX0KCQkJCX0KCQkJCWlmKCRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ3VzZV9hZHZhbmNlZF9wYWdlb3B0aW9ucycsMSkgJiYgJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ3VzZV9leHBpcmVfZGF0ZScpICYmICgkdGhpcy0+R2V0UHJvcGVydHkoJ3N0YXJ0X2RhdGUnKSA+IHRpbWUoKSB8fCAkdGhpcy0+R2V0UHJvcGVydHkoJ2VuZF9kYXRlJykgPCB0aW1lKCkpICYmIGNoZWNrX3Blcm1pc3Npb24oZ2V0X3VzZXJpZCgpLCAnTWFuYWdlIEFkdmFuY2VkQ29udGVudCBPcHRpb25zJykpCgkJCQl7CgkJCQkJJHBhcmFtc1snYWN0aXZlJ10gPSBmYWxzZTsKCQkJCQkkdGhpcy0+bUFjdGl2ZSAgICA9IGZhbHNlOwoJCQkJfQoJCQkJCgkJCQkjIG1ldGFkYXRhCgkJCQkkdGhpcy0+bU1ldGFkYXRhID0gaXNzZXQoJHBhcmFtc1snbWV0YWRhdGEnXSkgPyAkcGFyYW1zWydtZXRhZGF0YSddIDogJHRoaXMtPm1NZXRhZGF0YTsKCQkJCQoJCQkJIyBjb250ZW50IGJsb2NrcwoJCQkJJGkgPSAwOwoJCQkJZm9yZWFjaCgkcGFyYW1zIGFzICRwYXJhbU5hbWUgPT4gJHBhcmFtVmFsdWUpCgkJCQl7CgkJCQkJJHBhcmFtTmFtZSA9IHN0cl9yZXBsYWNlKCdfQWR2YW5jZWRDb250ZW50RGF0ZScsICcnLCAkcGFyYW1OYW1lKTsKCQkJCQkKCQkJCQlpZighaXNzZXQoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRwYXJhbU5hbWVdKSkKCQkJCQl7CgkJCQkJCWNvbnRpbnVlOwoJCQkJCX0KCQkJCQkKCQkJCQkkaSsrOwoJCQkJCSR2YWx1ZSA9ICcnOwoJCQkJCWlmKCR0aGlzLT5fY29udGVudEJsb2Nrc1skcGFyYW1OYW1lXVsnYmxvY2tfdHlwZSddID09ICdzZWxlY3RfbXVsdGlwbGUnKQoJCQkJCXsKCQkJCQkJaWYoaXNfYXJyYXkoJHBhcmFtVmFsdWUpKQoJCQkJCQl7CgkJCQkJCQkkdmFsdWUgPSBpbXBsb2RlKCR0aGlzLT5fY29udGVudEJsb2Nrc1skcGFyYW1OYW1lXVsnZGVsaW1pdGVyJ10sICRwYXJhbVZhbHVlKTsKCQkJCQkJfQoJCQkJCQllbHNlIGlmICgkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJHBhcmFtTmFtZV1bJ3NvcnRhYmxlJ10pCgkJCQkJCXsKCQkJCQkJCSRpdGVtcyA9IGFycmF5KCk7CgkJCQkJCQlmb3JlYWNoKCRwYXJhbXMgYXMgJGl0ZW1OYW1lID0+ICRpdGVtVmFsdWUpICMgVG9EbzogY3JlYXRlIGZ1bmN0aW9uIHRvIGxvb3Agb25seSB0aHJvdWdoIHRoZSBpdGVtcyBub3QgdGhyb3VnaCBhbGwgcGFyYW1zIQoJCQkJCQkJewoJCQkJCQkJCWlmKHN0YXJ0c3dpdGgoJGl0ZW1OYW1lLCRwYXJhbU5hbWUuJ19BZHZhbmNlZENvbnRlbnRTb3J0YWJsZUl0ZW1fJykpCgkJCQkJCQkJewoJCQkJCQkJCQkkaXRlbXNbXSA9ICRpdGVtVmFsdWU7CgkJCQkJCQkJfQoJCQkJCQkJfQoJCQkJCQkJJHZhbHVlID0gaW1wbG9kZSgkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJHBhcmFtTmFtZV1bJ2RlbGltaXRlciddLCAkaXRlbXMpOwoJCQkJCQl9CgkJCQkJfQoJCQkJCWVsc2UgaWYoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRwYXJhbU5hbWVdWydibG9ja190eXBlJ10gPT0gJ2RhdGUnCgkJCQkJCSYmICR0aGlzLT5fY29udGVudEJsb2Nrc1skcGFyYW1OYW1lXVsnbW9kZSddID09ICdjYWxlbmRhcicKCQkJCQkJJiYgaXNzZXQoJHBhcmFtc1skcGFyYW1OYW1lIC4gJ19BZHZhbmNlZENvbnRlbnREYXRlJ10pKQoJCQkJCXsKCQkJCQkJJHRpbWUgPSAwOwoJCQkJCQlpZihpc3NldCgkcGFyYW1zWyRwYXJhbU5hbWUgLiAnX0FkdmFuY2VkQ29udGVudFRpbWUnXSkpCgkJCQkJCXsKCQkJCQkJCSR0aW1lID0gJHBhcmFtc1skcGFyYW1OYW1lIC4gJ19BZHZhbmNlZENvbnRlbnRUaW1lJ107CgkJCQkJCX0KCQkJCQkJIyRfdG1wICAgICAgICAgPSBleHBsb2RlKCc6JywgJHBhcmFtc1skcGFyYW1OYW1lIC4gJ19BZHZhbmNlZENvbnRlbnRUaW1lJ10pOwoJCQkJCQkjJHRpbWVfc2Vjb25kcyA9ICgoJF90bXBbMF0gKiAzNjAwKSArICgkX3RtcFsxXSAqIDYwKSk7CgkJCQkJCSMkdmFsdWUgICAgICAgPSAkdGltZV9zZWNvbmRzICsgJHBhcmFtc1skcGFyYW1OYW1lIC4gJ19BZHZhbmNlZENvbnRlbnREYXRlJ107CgkJCQkJCSR2YWx1ZSAgICAgICAgPSAkdGltZSArICRwYXJhbXNbJHBhcmFtTmFtZSAuICdfQWR2YW5jZWRDb250ZW50RGF0ZSddOwoJCQkJCX0KCQkJCQllbHNlIGlmKCR0aGlzLT5fY29udGVudEJsb2Nrc1skcGFyYW1OYW1lXVsnYmxvY2tfdHlwZSddID09ICdtdWx0aV9pbnB1dCcpCgkJCQkJewoJCQkJCQkkbXVsdGlfaW5wdXRzID0gYXJyYXkoKTsKCQkJCQkJZm9yZWFjaCgkdGhpcy0+Q2xlYW5BcnJheShleHBsb2RlKCcsJywkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJHBhcmFtTmFtZV1bJ2lucHV0cyddKSkgYXMgJGsxPT4kbXVsdGlfaW5wdXRfaWQpCgkJCQkJCXsKCQkJCQkJCSRtdWx0aV9pbnB1dF92YWx1ZXMgPSBhcnJheSgpOwoJCQkJCQkJZm9yZWFjaCgkdGhpcy0+X211bHRpSW5wdXRzWyRtdWx0aV9pbnB1dF9pZF1bJ2VsZW1lbnRzJ10gYXMgJGsyPT4kaW5wdXRJbmZvKQoJCQkJCQkJewoJCQkJCQkJCSRpbnB1dEluZm9bJ2lkJ10gPSAnbXVsdGlJbnB1dC0nIC4gJHBhcmFtTmFtZSAuICctJyAuICRtdWx0aV9pbnB1dF9pZCAuICctJyAuICRrMSAuICctJyAuICRpbnB1dEluZm9bJ2lkJ107CgkJCQkJCQkJaWYoaXNzZXQoJHBhcmFtc1skaW5wdXRJbmZvWydpZCddXSkpCgkJCQkJCQkJewoJCQkJCQkJCQkkbXVsdGlfaW5wdXRfdmFsdWVzW10gPSAkcGFyYW1zWyRpbnB1dEluZm9bJ2lkJ11dOwoJCQkJCQkJCX0KCQkJCQkJCX0KCQkJCQkJCSRtdWx0aV9pbnB1dHNbXSA9IGltcGxvZGUoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRwYXJhbU5hbWVdWyd2YWx1ZV9kZWxpbWl0ZXInXSwkbXVsdGlfaW5wdXRfdmFsdWVzKTsKCQkJCQkJfQoJCQkJCQlpZighJHRoaXMtPklzVmFyRW1wdHkoJG11bHRpX2lucHV0cykpCgkJCQkJCXsKCQkJCQkJCSR2YWx1ZSA9IGltcGxvZGUoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRwYXJhbU5hbWVdWydpbnB1dF9kZWxpbWl0ZXInXSwgJG11bHRpX2lucHV0cyk7CgkJCQkJCX0KCQkJCQl9CgkJCQkJZWxzZSBpZigkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJHBhcmFtTmFtZV1bJ2Jsb2NrX3R5cGUnXSA9PSAnbXVsdGlfY29udGVudCcpCgkJCQkJewoJCQkJCQkjIFRvRG8KCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJJHZhbHVlID0gdHJpbSgkcGFyYW1WYWx1ZSk7CgkJCQkJfQoJCQkJCWlmKCR2YWx1ZSA9PSAnJyAmJiAhJHRoaXMtPl9jb250ZW50QmxvY2tzWyRwYXJhbU5hbWVdWydhbGxvd19ub25lJ10pCgkJCQkJewoJCQkJCQkkdmFsdWUgPSAkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJHBhcmFtTmFtZV1bJ2RlZmF1bHQnXTsKCQkJCQkJaWYoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRwYXJhbU5hbWVdWydzbWFydHknXSkKCQkJCQkJewoJCQkJCQkJJHZhbHVlID0gJHRoaXMtPkRvU21hcnR5KCR2YWx1ZSk7CgkJCQkJCX0KCQkJCQl9CgkJCQkJCgkJCQkJIyBNTEUgc3VwcG9ydAoJCQkJCWlmKCR0aGlzLT5tbGUgJiYgJHRoaXMtPmJsb2NrTGFuZyAhPSAnJyAmJiAkcGFyYW1OYW1lICE9ICdjb250ZW50JyAuICR0aGlzLT5ibG9ja0xhbmcpCgkJCQkJewoJCQkJCQkkcGFyYW1OYW1lIC49ICR0aGlzLT5ibG9ja0xhbmc7CgkJCQkJfQoJCQkJCSMtLS0KCQkJCQkKCQkJCQkkdGhpcy0+QWRkRXh0cmFQcm9wZXJ0eSgkcGFyYW1OYW1lKTsKCQkJCQkkdGhpcy0+U2V0UHJvcGVydHlWYWx1ZSgkcGFyYW1OYW1lLCAkdmFsdWUpOwoJCQkJfQoJCQl9CgkJfQoJCSNlY2hvICI8cHJlPiI7CgkJI2VjaG8gIjxjb2RlPiI7CgkJI3ByaW50X3IoJHBhcmFtcyk7CgkJI2VjaG8gIjwvY29kZT4iOwoJCSNlY2hvICI8L3ByZT4iOwoJCXBhcmVudDo6RmlsbFBhcmFtcygkcGFyYW1zLCAkZWRpdGluZyk7Cgl9CgkKCWZ1bmN0aW9uIEVkaXRBc0FycmF5KCRhZGRpbmcgPSBmYWxzZSwgJHRhYiA9IDAsICRzaG93YWRtaW4gPSBmYWxzZSkKCXsKCQkkQWR2YW5jZWRDb250ZW50ID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50Jyk7CgkJJHRoaXMtPnBhcnNlX2NvbnRlbnRfYmxvY2tzKCk7CgkJJHJldCA9IGFycmF5KCk7CgkJJHRtcCA9IGFycmF5KCk7CgkJaWYoaXNzZXQoJHRoaXMtPl90YWJJZHNbJHRhYl0pKQoJCXsKCQkJJHRhYl9pZCA9ICR0aGlzLT5fdGFiSWRzWyR0YWJdOwoJCX0KCQllbHNlCgkJewoJCQlyZXR1cm4gYXJyYXkoKTsKCQl9CgkJaWYoJHRhYl9pZCA9PSAnbWFpbicgfHwgKCR0YWJfaWQgPT0gJ29wdGlvbnMnICYmIGNoZWNrX3Blcm1pc3Npb24oZ2V0X3VzZXJpZCgpLCAnTWFuYWdlIEFsbCBDb250ZW50JykpKQoJCXsKCQkJJHRtcCA9ICR0aGlzLT5DbGVhbkFycmF5KCR0aGlzLT5kaXNwbGF5X2F0dHJpYnV0ZXMoJGFkZGluZywgJHRhYikpOwoJCX0KCQllbHNlIGlmKCR0YWJfaWQgPT0gJ0FkdmFuY2VkQ29udGVudCcgJiYgY2hlY2tfcGVybWlzc2lvbihnZXRfdXNlcmlkKCksICdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE9wdGlvbnMnKSAmJiAkQWR2YW5jZWRDb250ZW50LT5HZXRQcmVmZXJlbmNlKCd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnMnLDEpKQoJCXsKCQkJJHRtcCA9ICR0aGlzLT5EaXNwbGF5QWR2YW5jZWRPcHRpb25zKCRhZGRpbmcpOwoJCX0KCQkKCQlmb3JlYWNoKCAkdG1wIGFzICRvbmUgKQoJCXsKCQkJJHJldFtdID0gJG9uZTsKCQl9CgkJCgkJJGogPSAwOwoJCWZvcmVhY2goJHRoaXMtPl9wYWdlVGFic1skdGFiX2lkXVsnYmxvY2tfZ3JvdXBzJ10gYXMgJGJsb2NrR3JvdXApCgkJewoJCQkkdGhpcy0+X2Jsb2NrR3JvdXBzWyRibG9ja0dyb3VwXVsnZGlzcGxheSddID0gJEFkdmFuY2VkQ29udGVudC0+R2V0SXRlbURpc3BsYXkoJ2dyb3VwJywgJGJsb2NrR3JvdXAsICR0aGlzLT5tSWQsICR0aGlzLT5tVGVtcGxhdGVJZCwgISRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ2NvbGxhcHNlX2dyb3VwX2RlZmF1bHQnLDEpKTsKCQkJCSR0aGlzLT5fYmxvY2tHcm91cHNbJGJsb2NrR3JvdXBdWydwcmVmX3VybCddID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsCgkJCQkJJEFkdmFuY2VkQ29udGVudC0+Q3JlYXRlTGluaygnbTFfJywgJ3NhdmVQcmVmcycsICcnLCAkdGhpcy0+bGFuZygndG9nZ2xlX2dyb3VwJyksCgkJCQkJCWFycmF5KCdpdGVtX3R5cGUnPT4nZ3JvdXAnLAoJCQkJCQkJJ2Rpc2FibGVfdGhlbWUnPT50cnVlLAoJCQkJCQkJJ2FqYXgnPT50cnVlLAoJCQkJCQkJJ2NvbnRlbnRfaWQnPT4kdGhpcy0+bUlkLAoJCQkJCQkJJ3RlbXBsYXRlX2lkJz0+JHRoaXMtPm1UZW1wbGF0ZUlkLAoJCQkJCQkJJ2l0ZW1faWQnPT4kYmxvY2tHcm91cCksCgkJCQkJCScnLCB0cnVlKSk7CgkJfQoJCWZvcmVhY2goJHRoaXMtPl9wYWdlVGFic1skdGFiX2lkXVsnY29udGVudF9ibG9ja3MnXSBhcyAkYmxvY2tJZCkKCQl7CgkJCSRqKys7CgkJCQoJCQlpZigkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydibG9ja190eXBlJ10gIT0gJycgJiYgJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnc21hcnR5J10pCgkJCXsKCQkJCWZvcmVhY2goJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXSBhcyAkcHJvcE5hbWU9PiRwcm9wVmFsdWUpCgkJCQl7CgkJCQkJJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVskcHJvcE5hbWVdID0gJHRoaXMtPkRvU21hcnR5KCRwcm9wVmFsdWUpOwoJCQkJfQoJCQl9CgkJCSMgTUxFIHN1cHBvcnQKCQkJaWYoJHRoaXMtPm1sZSAmJiAkdGhpcy0+YmxvY2tMYW5nICE9ICcnICYmICRibG9ja0lkICE9ICdjb250ZW50JyAuICR0aGlzLT5ibG9ja0xhbmcpCgkJCXsKCQkJCSR2YWx1ZSA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCRibG9ja0lkIC4gJHRoaXMtPmJsb2NrTGFuZyk7CgkJCX0KCQkJZWxzZSAjLS0tCgkJCXsKCQkJCSR2YWx1ZSA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCRibG9ja0lkKTsKCQkJfQoJCQkjIE1MRSBzdXBwb3J0CgkJCWlmKCR0aGlzLT5tbGUgJiYgJHZhbHVlID09ICcnICYmICR0aGlzLT5kZWZhdWx0QmxvY2tMYW5nICE9ICcnICYmICR0aGlzLT5kZWZhdWx0QmxvY2tMYW5nICE9ICR0aGlzLT5ibG9ja0xhbmcpCgkJCXsKCQkJCWlmKCRibG9ja0lkICE9ICdjb250ZW50JyAuICR0aGlzLT5ibG9ja0xhbmcpCgkJCQl7CgkJCQkJJHZhbHVlID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJGJsb2NrSWQgLiAkdGhpcy0+ZGVmYXVsdEJsb2NrTGFuZyk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJJHZhbHVlID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnQnIC4gJHRoaXMtPmRlZmF1bHRCbG9ja0xhbmcpOwoJCQkJfQoJCQl9CgkJCSMtLS0KCQkJCgkJCWlmKCgkYWRkaW5nICYmICR2YWx1ZSA9PSAnJykKCQkJfHwgKCR2YWx1ZSA9PSAnJyAmJiAhJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnYWxsb3dfbm9uZSddKSB8fCAkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWyduZXdfYmxvY2snXSkKCQkJewoJCQkJJHZhbHVlID0gJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnZGVmYXVsdCddOwoJCQl9CgkJCQoJCQkkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydjb250ZW50J10gPSBjbXNfaHRtbGVudGl0aWVzKCR2YWx1ZSwgRU5UX05PUVVPVEVTLCBnZXRfZW5jb2RpbmcoJycpKTsKCQkJJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnaW5wdXQnXSAgID0gJHRoaXMtPmRpc3BsYXlfY29udGVudF9ibG9jaygkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdLCAkdmFsdWUsICRhZGRpbmcpOwoJCQkKCQkJaWYoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnbGFiZWwnXSA9PSB1Y3dvcmRzKCR0aGlzLT5fY29udGVudEJsb2Nrc1skYmxvY2tJZF1bJ25hbWUnXSkKCQkJJiYgKCRibG9ja0lkID09IG1kNSgnY29udGVudF9lbicuJGopCgkJCXx8ICRibG9ja0lkID09ICdjb250ZW50X2VuJwoJCQl8fCAoJHRoaXMtPm1sZSAmJiAkdGhpcy0+YmxvY2tMYW5nICE9ICcnCgkJCSYmICgkYmxvY2tJZCA9PSAnY29udGVudCcgLiAkdGhpcy0+YmxvY2tMYW5nCgkJCXx8ICRibG9ja0lkID09IG1kNSgnY29udGVudCcgLiAkdGhpcy0+YmxvY2tMYW5nLiRqKSkpKSkKCQkJewoJCQkJJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnbGFiZWwnXSA9IGxhbmcoJ2NvbnRlbnQnKTsKCQkJfQoJCQkKCQkJaWYoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsndHJhbnNsYXRlX2xhYmVscyddKQoJCQl7CgkJCQkkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydsYWJlbCddID0gJEFkdmFuY2VkQ29udGVudC0+bGFuZygkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydsYWJlbCddKTsKCQkJfQoJCQkKCQkJJGJsb2NrRGlzcGxheSA9ICRBZHZhbmNlZENvbnRlbnQtPkdldEl0ZW1EaXNwbGF5KCdibG9jaycsICRibG9ja0lkLCAkdGhpcy0+bUlkLCAkdGhpcy0+bVRlbXBsYXRlSWQsICEkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydjb2xsYXBzZSddKTsKCQkJJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnZGlzcGxheSddICA9ICRibG9ja0Rpc3BsYXk7CgkJCSR0aGlzLT5fY29udGVudEJsb2Nrc1skYmxvY2tJZF1bJ3ByZWZfdXJsJ10gPSBzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywKCQkJCSRBZHZhbmNlZENvbnRlbnQtPkNyZWF0ZUxpbmsoJ20xXycsICdzYXZlUHJlZnMnLCAnJywgJEFkdmFuY2VkQ29udGVudC0+bGFuZygndG9nZ2xlX2Jsb2NrJyksCgkJCQkJYXJyYXkoJ2l0ZW1fdHlwZSc9PidibG9jaycsCgkJCQkJCSdkaXNhYmxlX3RoZW1lJz0+dHJ1ZSwKCQkJCQkJJ2FqYXgnPT50cnVlLAoJCQkJCQknY29udGVudF9pZCc9PiR0aGlzLT5tSWQsCgkJCQkJCSd0ZW1wbGF0ZV9pZCc9PiR0aGlzLT5tVGVtcGxhdGVJZCwKCQkJCQkJJ2l0ZW1faWQnPT4kYmxvY2tJZCksCgkJCQkJJycsIHRydWUpKTsKCQkJCgkJCWlmKCR0aGlzLT5fY29udGVudEJsb2Nrc1skYmxvY2tJZF1bJ211bHRpcGxlJ10gJiYgJEFkdmFuY2VkQ29udGVudC0+R2V0SXRlbURpc3BsYXkoJ21lc3NhZ2UnLCAkYmxvY2tJZCwgJHRoaXMtPm1JZCwgJHRoaXMtPm1UZW1wbGF0ZUlkKSkKCQkJewoJCQkJJGhpZGVMaW5rID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsCgkJCQkJJEFkdmFuY2VkQ29udGVudC0+Q3JlYXRlTGluaygnbTFfJywgJ3NhdmVQcmVmcycsICcnLCAkQWR2YW5jZWRDb250ZW50LT5sYW5nKCd0b2dnbGVfbWVzc2FnZScpLAoJCQkJCQlhcnJheSgnaXRlbV90eXBlJz0+J21lc3NhZ2UnLAoJCQkJCQkJJ2Rpc2FibGVfdGhlbWUnPT50cnVlLAoJCQkJCQkJJ2FqYXgnPT50cnVlLAoJCQkJCQkJJ2NvbnRlbnRfaWQnPT4kdGhpcy0+bUlkLAoJCQkJCQkJJ3RlbXBsYXRlX2lkJz0+JHRoaXMtPm1UZW1wbGF0ZUlkLAoJCQkJCQkJJ2l0ZW1faWQnPT4kYmxvY2tJZCwKCQkJCQkJCSdpdGVtX2Rpc3BsYXknPT4wKSwKCQkJCQkJJycsIGZhbHNlLCcnLCdvbmNsaWNrPSJqUXVlcnkuZ2V0KHRoaXMuaHJlZik7IGpRdWVyeSh0aGlzKS5wYXJlbnQoKS50b2dnbGUoXCdmYXN0XCcpOyByZXR1cm4gZmFsc2U7IicpKTsKCQkJCQkkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydkZXNjcmlwdGlvbiddID0gJzxwPicuJEFkdmFuY2VkQ29udGVudC0+bGFuZygnbm90aWNlX2R1cGxpY2F0ZWNvbnRlbnQnLCAkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWyduYW1lJ10pLicgKCcuICRoaWRlTGluayAuJyk8L3A+Jy4kdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydkZXNjcmlwdGlvbiddOwoJCQl9CgkJCQoJCQlpZigkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydibG9ja190YWInXSAhPSAnJyB8fCAkdGhpcy0+X2NvbnRlbnRCbG9ja3NbJGJsb2NrSWRdWydibG9ja19ncm91cCddICE9ICcnKQoJCQl7CgkJCQl1bnNldCgkdGhpcy0+X3BhZ2VUYWJzWyR0YWJfaWRdWydjb250ZW50X2Jsb2NrcyddWyRibG9ja0lkXSk7CgkJCX0KCQkJaWYoJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnYmxvY2tfdGFiJ10gIT0gJycgJiYgJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnYmxvY2tfZ3JvdXAnXSAhPSAnJykKCQkJewoJCQkJdW5zZXQoJHRoaXMtPl9wYWdlVGFic1skdGFiX2lkXVsnYmxvY2tfZ3JvdXBzJ11bJHRoaXMtPl9jb250ZW50QmxvY2tzWyRibG9ja0lkXVsnYmxvY2tfZ3JvdXAnXV0pOwoJCQl9CgkJfQoJCQoJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduKCdtb2R1bGVfaWQnLCAnbTFfJyk7CgkJJEFkdmFuY2VkQ29udGVudC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdwYWdlX3RhYl9ucicsICR0YWIpOwoJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZigncGFnZV90YWJfaWQnLCAkdGFiX2lkKTsKCQkkQWR2YW5jZWRDb250ZW50LT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ3BhZ2VfdGFicycsICR0aGlzLT5fcGFnZVRhYnMpOwoJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignYmxvY2tfdGFicycsICR0aGlzLT5fYmxvY2tUYWJzKTsKCQkkQWR2YW5jZWRDb250ZW50LT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2Jsb2NrX2dyb3VwcycsICR0aGlzLT5fYmxvY2tHcm91cHMpOwoJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignZGF0ZV9ibG9ja3MnLCAkdGhpcy0+X2RhdGVCbG9ja3MpOwoJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignY29sb3JwaWNrZXJfYmxvY2tzJywgJHRoaXMtPl9jb2xvclBpY2tlckJsb2Nrcyk7CgkJJEFkdmFuY2VkQ29udGVudC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdzbGlkZXJfYmxvY2tzJywgJHRoaXMtPl9zbGlkZXJCbG9ja3MpOwoJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignY29udGVudF9ibG9ja3MnLCAkdGhpcy0+X2NvbnRlbnRCbG9ja3MpOwoJCQoJCWlmKCR0YWIgPT0gMCkKCQl7CgkJCSNkZWJ1Z19idWZmZXIoJHRoaXMtPl90YWJJZHMsJ0FkdmFuY2VkQ29udGVudCBfdGFiSWRzJyk7CgkJCSNkZWJ1Z19idWZmZXIoJHRoaXMtPl9wYWdlVGFicywnQWR2YW5jZWRDb250ZW50IF9wYWdlVGFicycpOwoJCQkjZGVidWdfYnVmZmVyKCR0aGlzLT5fYmxvY2tUYWJzLCdBZHZhbmNlZENvbnRlbnQgX2Jsb2NrVGFicycpOwoJCQkjZGVidWdfYnVmZmVyKCR0aGlzLT5fYmxvY2tHcm91cHMsJ0FkdmFuY2VkQ29udGVudCBfYmxvY2tHcm91cHMnKTsKCQkJI2RlYnVnX2J1ZmZlcigkdGhpcy0+X2NvbnRlbnRCbG9ja3MsJ0FkdmFuY2VkQ29udGVudCBfY29udGVudEJsb2NrcycpOwoJCQkKCQkJIyB1Z2x5IGhhY2shCgkJCSRoZWFkZXJzX2xpc3QgPSBoZWFkZXJzX2xpc3QoKTsKCQkJJG91dHB1dCA9IHN0cl9yZXBsYWNlKCc8L2hlYWQ+JywgJEFkdmFuY2VkQ29udGVudC0+R2V0SGVhZGVySFRNTCgpIC4gJzwvaGVhZD4nLCBvYl9nZXRfY29udGVudHMoKSk7CgkJCUBvYl9lbmRfY2xlYW4oKTsKCQkJQG9iX3N0YXJ0KCk7CgkJCWZvcmVhY2goJGhlYWRlcnNfbGlzdCBhcyAkaGVhZGVyKQoJCQl7CgkJCQloZWFkZXIoJGhlYWRlcik7CgkJCX0KCQkJZWNobyAkb3V0cHV0OwoJCQkjLS0tIGJ1dCB3b3JrcyA6RAoJCX0KCQkKCQkkcmV0W10gPSBhcnJheSgnJywgJEFkdmFuY2VkQ29udGVudC0+UHJvY2Vzc1RlbXBsYXRlKCdjb250ZW50VHlwZS50cGwnKSk7CgkJcmV0dXJuICRyZXQ7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gX2Rpc3BsYXlfdGV4dF9ibG9jaygkYmxvY2tJbmZvLCR2YWx1ZSA9ICcnLCRhZGRpbmcgPSBmYWxzZSkKCXsKCQkkdXNld3lzaXd5ZyA9ICEkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnZGlzYWJsZV93eXNpd3lnJyk7CgkJaWYoISR1c2V3eXNpd3lnKQoJCXsKCQkJJGJsb2NrSW5mb1sndXNld3lzaXd5ZyddID0gZmFsc2U7CgkJfQoJCWlmICgkYmxvY2tJbmZvWydvbmVsaW5lJ10gPT0gZmFsc2UpCgkJewoJCQlyZXR1cm4gY3JlYXRlX3RleHRhcmVhKCRibG9ja0luZm9bJ3VzZXd5c2l3eWcnXSwgJHZhbHVlLCAkYmxvY2tJbmZvWydpZCddLCAnJywgJGJsb2NrSW5mb1snaWQnXSwgJycsICR0aGlzLT5fc3R5bGVzaGVldCk7CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiAnPGlucHV0IGlkPSInLiRibG9ja0luZm9bJ2lkJ10uJyIgdHlwZT0idGV4dCInIC4gKCRibG9ja0luZm9bJ3N0eWxlJ10gIT0gJyc/J3N0eWxlPSInIC4gJGJsb2NrSW5mb1snc3R5bGUnXSAuICcgIic6JycpIC4gKCRibG9ja0luZm9bJ21heGxlbmd0aCddICE9ICcnPycgbWF4bGVuZ3RoPSInIC4gJGJsb2NrSW5mb1snbWF4bGVuZ3RoJ10gLiAnICInOicnKSAuICgkYmxvY2tJbmZvWydzaXplJ10gIT0gJyc/JyBzaXplPSInIC4gJGJsb2NrSW5mb1snc2l6ZSddIC4gJyAiJzonJykgLiAnIG5hbWU9IicgLiAkYmxvY2tJbmZvWydpZCddIC4gJyIgdmFsdWU9IicgLiBodG1sc3BlY2lhbGNoYXJzKCR2YWx1ZSkgLiAnIiAvPic7CgkJfQoJfQoJCglwcml2YXRlIGZ1bmN0aW9uIF9kaXNwbGF5X2NvbG9ycGlja2VyX2Jsb2NrKCRibG9ja0luZm8sJHZhbHVlID0gJycsICRhZGRpbmcgPSBmYWxzZSkKCXsKCQlyZXR1cm4gJyMgPGlucHV0IGlkPSInLiRibG9ja0luZm9bJ2lkJ10uJyIgdHlwZT0idGV4dCInIC4gKCRibG9ja0luZm9bJ3N0eWxlJ10gIT0gJyc/J3N0eWxlPSInIC4gJGJsb2NrSW5mb1snc3R5bGUnXSAuICcgIic6JycpIC4gJyBtYXhsZW5ndGg9IjYiIHNpemU9IjciIG5hbWU9IicgLiAkYmxvY2tJbmZvWydpZCddIC4gJyIgdmFsdWU9IicgLiBodG1sc3BlY2lhbGNoYXJzKCR2YWx1ZSkgLiAnIiAvPic7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gX2Rpc3BsYXlfc2xpZGVyX2Jsb2NrKCRibG9ja0luZm8sJHZhbHVlID0gJycsICRhZGRpbmcgPSBmYWxzZSkKCXsKCQlyZXR1cm4gJzxpbnB1dCBpZD0iJy4kYmxvY2tJbmZvWydpZCddLiciIHR5cGU9ImhpZGRlbiIgbmFtZT0iJyAuICRibG9ja0luZm9bJ2lkJ10gLiAnIiB2YWx1ZT0iJyAuICgkdmFsdWUgPyAkdmFsdWUgOiBpbnR2YWwoJHZhbHVlKSkgLiAnIiAvPic7Cgl9CgkKCS8qCgkgKiByZXR1cm4gdGhlIEhUTUwgdG8gY3JlYXRlIGFuIGltYWdlIGRyb3Bkb3duIGluIHRoZSBhZG1pbiBjb25zb2xlLgoJICogZG9lcyBub3QgaW5jbHVkZSBhIGxhYmVsLgoJICogdGFrZW4gZnJvbSBkZWZhdWx0IGNvbnRlbnR0eXBlIChhdXRob3I6IENhbGd1eSkKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBfZGlzcGxheV9pbWFnZV9ibG9jaygkYmxvY2tJbmZvLCR2YWx1ZSA9ICcnLCRhZGRpbmcgPSBmYWxzZSkKCXsKCQlnbG9iYWwgJGNvbmZpZzsKCQkkYWRkZGlyID0gZ2V0X3NpdGVfcHJlZmVyZW5jZSgnY29udGVudGltYWdlX3BhdGgnKTsKCQlpZiggJGJsb2NrSW5mb1snZGlyJ10gIT0gJycgKQoJCXsKCQkJJGFkZGRpciA9ICRibG9ja0luZm9bJ2RpciddOwoJCX0KCQkkZGlyID0gY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkYWRkZGlyKTsKCQkkb3B0cHJlZml4ID0gJyc7CgkJIyRvcHRwcmVmaXggPSAndXBsb2Fkcyc7CgkJI2lmKCAhZW1wdHkoJGJsb2NrSW5mb1snZGlyJ10pICkgJG9wdHByZWZpeCAuPSAnLycuJGJsb2NrSW5mb1snZGlyJ107CgkJJGlucHV0bmFtZSA9ICRibG9ja0luZm9bJ2lkJ107CgkJaWYoIGlzc2V0KCRibG9ja0luZm9bJ2lucHV0bmFtZSddKSApCgkJewoJCQkkaW5wdXRuYW1lID0gJGJsb2NrSW5mb1snaW5wdXRuYW1lJ107CgkJfQoJCSMgbW9kIGJ5IE5hTiB0byBmaWx0ZXIgZmlsZXMgYnkgcHJlZml4IGFuZCBzZXQgImFsbG93IG5vbmUiCgkJIyRkcm9wZG93biA9IGNyZWF0ZV9maWxlX2Ryb3Bkb3duKCRpbnB1dG5hbWUsJGRpciwkdmFsdWUsJ2pwZyxqcGVnLHBuZyxnaWYnLCRvcHRwcmVmaXgsdHJ1ZSk7CgkJJGRyb3Bkb3duID0gY3JlYXRlX2ZpbGVfZHJvcGRvd24oJGlucHV0bmFtZSwkZGlyLCR2YWx1ZSwnanBnLGpwZWcscG5nLGdpZicsJG9wdHByZWZpeCwkYmxvY2tJbmZvWydhbGxvd19ub25lJ10sJycsJGJsb2NrSW5mb1sncHJlZml4J10sJGJsb2NrSW5mb1snZXhjbHVkZSddKTsKCQkKCQlpZiggJGRyb3Bkb3duID09PSBmYWxzZSApCgkJewoJCQkkZHJvcGRvd24gPSBsYW5nKCdlcnJvcl9yZXRyaWV2aW5nX2ZpbGVfbGlzdCcpOwoJCX0KCQlyZXR1cm4gJGRyb3Bkb3duOwoJfQoJCglwcml2YXRlIGZ1bmN0aW9uIF9kaXNwbGF5X21vZHVsZV9ibG9jaygkYmxvY2tJbmZvLCR2YWx1ZSA9ICcnLCRhZGRpbmcgPSBmYWxzZSkKCXsKCQkkQWR2YW5jZWRDb250ZW50ID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50Jyk7CgkJaWYoJGJsb2NrSW5mb1snbW9kdWxlJ10gPT0gJycpCgkJewoJCQlyZXR1cm4gJEFkdmFuY2VkQ29udGVudC0+bGFuZygnZXJyb3JfaW5zdWZmaWNpZW50X2Jsb2NrcGFyYW1zJywnbW9kdWxlJywkYmxvY2tJbmZvWyduYW1lJ10pOwoJCX0KCQlpZiggISRtb2R1bGUgPSYgJEFkdmFuY2VkQ29udGVudC0+R2V0TW9kdWxlSW5zdGFuY2UoJGJsb2NrSW5mb1snbW9kdWxlJ10pKQoJCXsKCQkJcmV0dXJuICRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ2Vycm9yX2xvYWRpbmdfbW9kdWxlJywkYmxvY2tJbmZvWydtb2R1bGUnXSwkYmxvY2tJbmZvWyduYW1lJ10pOwoJCX0KCQlpZiggISRtb2R1bGUtPkhhc0NhcGFiaWxpdHkoJ2NvbnRlbnRibG9ja3MnKSApCgkJewoJCQlyZXR1cm4gJEFkdmFuY2VkQ29udGVudC0+bGFuZygnZXJyb3JfY29udGVudGJsb2NrX3N1cHBvcnQnLCRibG9ja0luZm9bJ21vZHVsZSddLCRibG9ja0luZm9bJ25hbWUnXSk7CgkJfQoJCXJldHVybiAkbW9kdWxlLT5HZXRDb250ZW50QmxvY2tJbnB1dCgkYmxvY2tJbmZvWydpZCddLCR2YWx1ZSwkYmxvY2tJbmZvWydwYXJhbXMnXSwkYWRkaW5nKTsKCX0KCQoJcHJpdmF0ZSBmdW5jdGlvbiBfZGlzcGxheV9kYXRlX2Jsb2NrKCRibG9ja0luZm8sJHZhbHVlID0gJycsJGFkZGluZyA9IGZhbHNlKQoJewoJCWlmKCEkdmFsdWUpCgkJewoJCQkkdmFsdWUgPSB0aW1lKCk7CgkJfQoJCQoJCSRkYXRlID0gc3RyZnRpbWUoJyV4JywgaW50dmFsKCR2YWx1ZSkpOwoJCSR0aW1lID0gJzA6MCc7CgkJaWYoJGJsb2NrSW5mb1snc2hvd19jbG9jayddKQoJCXsKCQkJJHRpbWUgPSBzdHJmdGltZSgnJUg6JU0nLCBpbnR2YWwoJHZhbHVlKSk7CgkJfQoJCQoJCSRfdG1wICAgICAgICA9ICR0aGlzLT5DbGVhbkFycmF5KGV4cGxvZGUoJzonLCR0aW1lKSk7CgkJJHRpbWVTZWNvbmRzID0gKCgkX3RtcFswXSAqIDM2MDApICsgKCRfdG1wWzFdICogNjApKTsKCQkkZGF0ZVNlY29uZHMgPSAkdmFsdWUgLSAkdGltZVNlY29uZHM7CgkJCgkJJGRhdGVJbnB1dCA9ICc8aW1nIGlkPSInLiRibG9ja0luZm9bJ2lkJ10uJ19BZHZhbmNlZENvbnRlbnREYXRlUGlja2VyVHJpZ2dlciIgc3JjPSIuLi9tb2R1bGVzL0FkdmFuY2VkQ29udGVudC9pbWFnZXMvY2FsZW5kYXIucG5nIiBjbGFzcz0iY2FsZW5kYXJUcmlnZ2VyIiAvPiZuYnNwOwoJCQk8c3BhbiBpZD0iJy4kYmxvY2tJbmZvWydpZCddLidfQWR2YW5jZWRDb250ZW50RGF0ZVBpY2tlckRpc3BsYXkiPicuJGRhdGUuJzwvc3Bhbj4KCQkJPGlucHV0IGlkPSInLiRibG9ja0luZm9bJ2lkJ10uJ19BZHZhbmNlZENvbnRlbnREYXRlIiB0eXBlPSJoaWRkZW4iIG5hbWU9IicuJGJsb2NrSW5mb1snaWQnXS4nX0FkdmFuY2VkQ29udGVudERhdGUiIHZhbHVlPSInLiRkYXRlU2Vjb25kcy4nIiAvPic7CgkJCQoJCSRzdWZmaXggICAgPSAnJzsKCQkkdGltZUlucHV0ID0gJyc7CgkJaWYoJGJsb2NrSW5mb1snc2hvd19jbG9jayddKQoJCXsKCQkJJHRpbWVJbnB1dCA9ICcmbmJzcDsmbmJzcDstJm5ic3A7Jm5ic3A7PHNlbGVjdCBuYW1lPSInLiRibG9ja0luZm9bJ2lkJ10uJ19BZHZhbmNlZENvbnRlbnRUaW1lIj4nOwoJCQkkX2kgICAgICAgID0gMDsKCQkJZm9yKCRpPSRibG9ja0luZm9bJ3N0YXJ0X2hvdXInXTsgJGk8PSRibG9ja0luZm9bJ2VuZF9ob3VyJ107ICRpICs9ICRibG9ja0luZm9bJ3N0ZXBfaG91cnMnXSkKCQkJewoJCQkJaWYoJGk8MTIgJiYgISRibG9ja0luZm9bJ3Nob3cyNGgnXSkKCQkJCXsKCQkJCQkkc3VmZml4ID0gJyBhbSc7CgkJCQl9CgkJCQllbHNlIGlmKCEkYmxvY2tJbmZvWydzaG93MjRoJ10pCgkJCQl7CgkJCQkJJHN1ZmZpeCA9ICcgcG0nOwoJCQkJfQoJCQkJZm9yKCRqPSRibG9ja0luZm9bJ3N0YXJ0X21pbnV0ZSddOyAkajw9JGJsb2NrSW5mb1snZW5kX21pbnV0ZSddOyAkaiArPSAkYmxvY2tJbmZvWydzdGVwX21pbnV0ZXMnXSkKCQkJCXsKCQkJCQkkdmFsdWUgPSAoJGkqMzYwMCkgKyAoJGoqNjApOwoJCQkJCWlmKCgkYmxvY2tJbmZvWydlbmRfaG91ciddIDwgMjMgJiYgJHZhbHVlIDw9ICgkYmxvY2tJbmZvWydlbmRfaG91ciddICogMzYwMCkpIHx8ICRibG9ja0luZm9bJ2VuZF9ob3VyJ10gPT0gMjMpCgkJCQkJewoJCQkJCQkkdGltZUlucHV0IC49ICc8b3B0aW9uIHZhbHVlPSInLiAkdmFsdWUgLiciJy4gKCR2YWx1ZSA9PSAkdGltZVNlY29uZHM/ICcgc2VsZWN0ZWQ9InNlbGVjdGVkIic6JycpIC4nPicuICgkaTwxMD8nMCcuJGk6KCEkYmxvY2tJbmZvWydzaG93MjRoJ10gJiYgJGk+MTI/JGktMTI6JGkpKSAuJzonLiAoJGo8MTA/JzAnLiRqOiRqKSAuICRzdWZmaXggLiAnPC9vcHRpb24+JzsKCQkJCQl9CgkJCQl9CgkJCQkkaiA9ICRibG9ja0luZm9bJ3N0YXJ0X21pbnV0ZSddOwoJCQl9CgkJCSR0aW1lSW5wdXQgLj0gJzwvc2VsZWN0Pic7CgkJfQoJCXJldHVybiAkZGF0ZUlucHV0LiR0aW1lSW5wdXQ7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gX2Rpc3BsYXlfY2hlY2tib3hfYmxvY2soJGJsb2NrSW5mbywkdmFsdWUgPSAnJywkYWRkaW5nID0gZmFsc2UpCgl7CgkJcmV0dXJuICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInIC4gJGJsb2NrSW5mb1snaWQnXSAuICciIHZhbHVlPSIwIiAvPgoJCQk8aW5wdXQgaWQ9IicuJGJsb2NrSW5mb1snaWQnXS4nIiBjbGFzcz0icGFnZWNoZWNrYm94IicgLiAoJGJsb2NrSW5mb1snc3R5bGUnXSAhPSAnJz8nIHN0eWxlPSInIC4gJGJsb2NrSW5mb1snc3R5bGUnXSAuICcgIic6JycpIC4gJyB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIG5hbWU9IicgLiAkYmxvY2tJbmZvWydpZCddIC4gJyInIC4gKCR2YWx1ZSA9PSAxID8gJyBjaGVja2VkPSJjaGVja2VkIic6JycpIC4gJyAvPic7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gX2Rpc3BsYXlfZHJvcGRvd25fYmxvY2soJGJsb2NrSW5mbywkdmFsdWUgPSAnJywkYWRkaW5nID0gZmFsc2UpCgl7CgkJJEFkdmFuY2VkQ29udGVudCA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpOwoJCSRpdGVtcyA9IGFycmF5KCk7CgkJaWYoJGJsb2NrSW5mb1snaXRlbXMnXSAhPSAnJykKCQl7CgkJCWZvcmVhY2goZXhwbG9kZSgkYmxvY2tJbmZvWydkZWxpbWl0ZXInXSwgJGJsb2NrSW5mb1snaXRlbXMnXSkgYXMgJGtleSA9PiAkdmFsKQoJCQl7CgkJCQkkaXRlbXNbJGtleV1bJ2xhYmVsJ10gPSB0cmltKCR2YWwpOwoJCQkJaWYoJGJsb2NrSW5mb1sndHJhbnNsYXRlX2xhYmVscyddKQoJCQkJewoJCQkJCSRpdGVtc1ska2V5XVsnbGFiZWwnXSA9ICRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJGl0ZW1zWyRrZXldWydsYWJlbCddKTsKCQkJCX0KCQkJCQoJCQkJJGl0ZW1zWyRrZXldWyd2YWx1ZSddICAgID0gJGl0ZW1zWyRrZXldWydsYWJlbCddOwoJCQkJJGl0ZW1zWyRrZXldWydzZWxlY3RlZCddID0gKHRyaW0oJHZhbHVlKSA9PT0gJGl0ZW1zWyRrZXldWyd2YWx1ZSddKTsKCQkJfQoJCX0KCQlpZigkYmxvY2tJbmZvWyd2YWx1ZXMnXSAhPSAnJykKCQl7CgkJCWZvcmVhY2goZXhwbG9kZSgkYmxvY2tJbmZvWydkZWxpbWl0ZXInXSwgJGJsb2NrSW5mb1sndmFsdWVzJ10pIGFzICRrZXkgPT4gJHZhbCkKCQkJewoJCQkJJGl0ZW1zWyRrZXldWyd2YWx1ZSddID0gdHJpbSgkdmFsKTsKCQkJCWlmKCRibG9ja0luZm9bJ3RyYW5zbGF0ZV92YWx1ZXMnXSkKCQkJCXsKCQkJCQkkaXRlbXNbJGtleV1bJ3ZhbHVlJ10gPSAkQWR2YW5jZWRDb250ZW50LT5sYW5nKCRpdGVtc1ska2V5XVsndmFsdWUnXSk7CgkJCQl9CgkJCQkKCQkJCSRpdGVtc1ska2V5XVsnc2VsZWN0ZWQnXSA9ICh0cmltKCR2YWx1ZSkgPT09ICRpdGVtc1ska2V5XVsndmFsdWUnXSk7CgkJCQkKCQkJCWlmKCFpc3NldCgkaXRlbXNbJGtleV1bJ2xhYmVsJ10pKQoJCQkJewoJCQkJCSRpdGVtc1ska2V5XVsnbGFiZWwnXSA9ICRpdGVtc1ska2V5XVsndmFsdWUnXTsKCQkJCX0KCQkJfQoJCX0KCQkKCQkkaW5wdXQgPSAnPHNlbGVjdCBuYW1lPSInIC4gJGJsb2NrSW5mb1snaWQnXSAuICciICcgLiAoJGJsb2NrSW5mb1snc3R5bGUnXSAhPSAnJz8nc3R5bGU9IicgLiAkYmxvY2tJbmZvWydzdHlsZSddIC4gJyAiJzonJykgLiAnID4nOwoJCWZvcmVhY2goJGl0ZW1zIGFzICRpdGVtKQoJCXsKCQkJJGlucHV0IC49ICc8b3B0aW9uIHZhbHVlPSInIC4gJGl0ZW1bJ3ZhbHVlJ10gLiAnIic7CgkJCWlmKCRpdGVtWydzZWxlY3RlZCddKQoJCQl7CgkJCQkkaW5wdXQgLj0gJyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzsKCQkJfQoJCQkkaW5wdXQgLj0gJz4nIC4gJGl0ZW1bJ2xhYmVsJ10gLiAnPC9vcHRpb24+JzsKCQl9CgkJJGlucHV0IC49ICc8L3NlbGVjdD4nOwoJCXJldHVybiAkaW5wdXQ7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gX2Rpc3BsYXlfc2VsZWN0X211bHRpcGxlX2Jsb2NrKCRibG9ja0luZm8sICR2YWx1ZSA9ICcnLCRhZGRpbmcgPSBmYWxzZSkKCXsKCQkkQWR2YW5jZWRDb250ZW50ID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50Jyk7CgkJJHNlbEl0ZW1zID0gYXJyYXkoKTsKCQlmb3JlYWNoKGV4cGxvZGUoJGJsb2NrSW5mb1snZGVsaW1pdGVyJ10sICR2YWx1ZSkgYXMgJGtleSA9PiAkdmFsKQoJCXsKCQkJJHNlbEl0ZW1zWyRrZXldID0gdHJpbSgkdmFsKTsKCQl9CgkJJGl0ZW1zID0gYXJyYXkoKTsKCQlpZigkYmxvY2tJbmZvWydpdGVtcyddICE9ICcnKQoJCXsKCQkJZm9yZWFjaChleHBsb2RlKCRibG9ja0luZm9bJ2RlbGltaXRlciddLCAkYmxvY2tJbmZvWydpdGVtcyddKSBhcyAka2V5ID0+ICR2YWwpCgkJCXsKCQkJCSRpdGVtc1ska2V5XVsnbGFiZWwnXSA9IHRyaW0oJHZhbCk7CgkJCQlpZigkYmxvY2tJbmZvWyd0cmFuc2xhdGVfbGFiZWxzJ10pCgkJCQl7CgkJCQkJJGl0ZW1zWyRrZXldWydsYWJlbCddID0gJEFkdmFuY2VkQ29udGVudC0+bGFuZygkaXRlbXNbJGtleV1bJ2xhYmVsJ10pOwoJCQkJfQoJCQkJCgkJCQkkaXRlbXNbJGtleV1bJ3ZhbHVlJ10gICAgPSAkaXRlbXNbJGtleV1bJ2xhYmVsJ107CgkJCQkkaXRlbXNbJGtleV1bJ3NlbGVjdGVkJ10gPSBpbl9hcnJheSgkaXRlbXNbJGtleV1bJ2xhYmVsJ10sJHNlbEl0ZW1zKTsKCQkJfQoJCX0KCQlpZigkYmxvY2tJbmZvWyd2YWx1ZXMnXSAhPSAnJykKCQl7CgkJCWZvcmVhY2goZXhwbG9kZSgkYmxvY2tJbmZvWydkZWxpbWl0ZXInXSwgJGJsb2NrSW5mb1sndmFsdWVzJ10pIGFzICRrZXkgPT4gJHZhbCkKCQkJewoJCQkJJGl0ZW1zWyRrZXldWyd2YWx1ZSddID0gdHJpbSgkdmFsKTsKCQkJCWlmKCRibG9ja0luZm9bJ3RyYW5zbGF0ZV92YWx1ZXMnXSkKCQkJCXsKCQkJCQkkaXRlbXNbJGtleV1bJ3ZhbHVlJ10gPSAkQWR2YW5jZWRDb250ZW50LT5sYW5nKCRpdGVtc1ska2V5XVsndmFsdWUnXSk7CgkJCQl9CgkJCQkKCQkJCSRpdGVtc1ska2V5XVsnc2VsZWN0ZWQnXSA9IGluX2FycmF5KCRpdGVtc1ska2V5XVsndmFsdWUnXSwkc2VsSXRlbXMpOwoJCQkJaWYoIWlzc2V0KCRpdGVtc1ska2V5XVsnbGFiZWwnXSkpCgkJCQl7CgkJCQkJJGl0ZW1zWyRrZXldWydsYWJlbCddID0gJGl0ZW1zWyRrZXldWyd2YWx1ZSddOwoJCQkJfQoJCQl9CgkJfQoJCQoJCSRpbnB1dCA9ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBuYW1lPSInIC4gJGJsb2NrSW5mb1snaWQnXSAuICciIC8+JzsKCQkKCQlpZighJGJsb2NrSW5mb1snc29ydGFibGUnXSkKCQl7CgkJCSRzaXplID0gY291bnQoJGl0ZW1zKTsKCQkJaWYoaXNzZXQoJGJsb2NrSW5mb1snc2l6ZSddKSkKCQkJewoJCQkJJHNpemUgPSAkYmxvY2tJbmZvWydzaXplJ107CgkJCX0KCQkJJGlucHV0IC49ICcKCQkJCTxzZWxlY3QgbmFtZT0iJyAuICRibG9ja0luZm9bJ2lkJ10gLiAnW10iJyAuICgkYmxvY2tJbmZvWydzdHlsZSddICE9ICcnPycgc3R5bGU9IicgLiAkYmxvY2tJbmZvWydzdHlsZSddIC4gJyAiJzonJykgLiAnICBtdWx0aXBsZT0ibXVsdGlwbGUiIHNpemU9IicuJHNpemUuJyI+JzsKCQkJZm9yZWFjaCgkaXRlbXMgYXMgJGl0ZW0pCgkJCXsKCQkJCSRpbnB1dCAuPSAnPG9wdGlvbiB2YWx1ZT0iJyAuICRpdGVtWyd2YWx1ZSddIC4gJyInOwoJCQkJaWYoJGl0ZW1bJ3NlbGVjdGVkJ10pCgkJCQl7CgkJCQkJJGlucHV0IC49ICcgc2VsZWN0ZWQ9InNlbGVjdGVkIic7CgkJCQl9CgkJCQkkaW5wdXQgLj0gJz4nIC4gJGl0ZW1bJ2xhYmVsJ10gLiAnPC9vcHRpb24+JzsKCQkJfQoJCQkkaW5wdXQgLj0gJzwvc2VsZWN0Pic7CgkJfQoJCWVsc2UKCQl7CgkJCSMgc29ydCB0aGUgaXRlbXMKCQkJJF9pdGVtcyA9IGFycmF5KCk7CgkJCWZvcmVhY2goJHNlbEl0ZW1zIGFzICRzZWxLZXkgPT4gJHNlbEl0ZW0pCgkJCXsKCQkJCXJlc2V0KCRpdGVtcyk7CgkJCQlmb3JlYWNoKCRpdGVtcyBhcyAkaXRlbUtleSA9PiAkaXRlbSkKCQkJCXsKCQkJCQlpZigkaXRlbVsndmFsdWUnXSA9PT0gJHNlbEl0ZW0pCgkJCQkJewoJCQkJCQkkX2l0ZW1zW10gPSAkaXRlbTsKCQkJCQkJdW5zZXQoJGl0ZW1zWyRpdGVtS2V5XSk7CgkJCQkJCXVuc2V0KCRzZWxJdGVtc1skc2VsS2V5XSk7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQkKCQkJJGl0ZW1zID0gYXJyYXlfbWVyZ2UoJF9pdGVtcywkaXRlbXMpOwoJCQkkaW5wdXQgLj0gJzxkaXYgY2xhc3M9InNvcnRhYmxlX3dyYXBwZXIiPic7CgkJCWZvcmVhY2goJGl0ZW1zIGFzICRpdGVtKQoJCQl7CgkJCQkkaW5wdXQgLj0KCQkJCSc8ZGl2IGNsYXNzPSJzb3J0YWJsZSI+CgkJCQkJPGltZyBjbGFzcz0ic29ydGFibGVfaGFuZGxlciIgc3JjPSIuLi9tb2R1bGVzL0FkdmFuY2VkQ29udGVudC9pbWFnZXMvc29ydC5wbmciIC8+CgkJCQkJPGlucHV0IGNsYXNzPSJwYWdlY2hlY2tib3giJyAuICgkYmxvY2tJbmZvWydzdHlsZSddICE9ICcnPycgc3R5bGU9IicgLiAkYmxvY2tJbmZvWydzdHlsZSddIC4gJyAiJzonJykgLiAnIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iJy4kaXRlbVsndmFsdWUnXS4nIiBuYW1lPSInIC4gJGJsb2NrSW5mb1snaWQnXSAuICdfQWR2YW5jZWRDb250ZW50U29ydGFibGVJdGVtXycgLiBtdW5nZV9zdHJpbmdfdG9fdXJsKCRpdGVtWydsYWJlbCddKSAuICciJyAuICgkaXRlbVsnc2VsZWN0ZWQnXT8gJyBjaGVja2VkPSJjaGVja2VkIic6JycpIC4gJyAvPgoJCQkJCScuJGl0ZW1bJ2xhYmVsJ10uJwoJCQkJPC9kaXY+JzsKCQkJfQoJCQkkaW5wdXQgLj0gJzwvZGl2Pic7CgkJfQoJCXJldHVybiAkaW5wdXQ7Cgl9CgkKCXByaXZhdGUgZnVuY3Rpb24gX2Rpc3BsYXlfbXVsdGlfaW5wdXRfYmxvY2soJGJsb2NrSW5mbywgJHZhbHVlID0gJycsJGFkZGluZyA9IGZhbHNlKQoJewoJCSRBZHZhbmNlZENvbnRlbnQgPSYgY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBZHZhbmNlZENvbnRlbnQnKTsKCQkkbXVsdGlfaW5wdXRfaWRzID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsJGJsb2NrSW5mb1snaW5wdXRzJ10pKTsKCQkkaW5wdXRfdmFsdWVzICAgID0gYXJyYXkoKTsKCQkkbXVsdGlfaW5wdXQgICAgID0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIG5hbWU9IicgLiAkYmxvY2tJbmZvWydpZCddIC4gJyIgLz4nOwoJCWZvcmVhY2goZXhwbG9kZSgkYmxvY2tJbmZvWydpbnB1dF9kZWxpbWl0ZXInXSwkdmFsdWUpIGFzICRpbnB1dF9kYXRhKQoJCXsKCQkJJGlucHV0X3ZhbHVlc1tdID0gZXhwbG9kZSgkYmxvY2tJbmZvWyd2YWx1ZV9kZWxpbWl0ZXInXSwkaW5wdXRfZGF0YSk7CgkJfQoJCWZvcmVhY2goJG11bHRpX2lucHV0X2lkcyBhcyAkazE9PiRtdWx0aV9pbnB1dF9pZCkKCQl7CgkJCWlmKGlzc2V0KCR0aGlzLT5fbXVsdGlJbnB1dHNbJG11bHRpX2lucHV0X2lkXSkpCgkJCXsKCQkJCWlmKCFpc3NldCgkdGhpcy0+X211bHRpSW5wdXRzWyRtdWx0aV9pbnB1dF9pZF1bJ3RlbXBsYXRlJ10pKQoJCQkJewoJCQkJCSR0aGlzLT5fbXVsdGlJbnB1dHNbJG11bHRpX2lucHV0X2lkXVsndGVtcGxhdGUnXSA9ICRBZHZhbmNlZENvbnRlbnQtPkdldFRlbXBsYXRlKCR0aGlzLT5fbXVsdGlJbnB1dHNbJG11bHRpX2lucHV0X2lkXVsndHBsX25hbWUnXSk7CgkJCQl9CgkJCQkkaW5wdXRzID0gYXJyYXkoKTsKCQkJCSMgZm9yZWFjaCB0YWcKCQkJCWZvcmVhY2ggKCR0aGlzLT5fbXVsdGlJbnB1dHNbJG11bHRpX2lucHV0X2lkXVsnZWxlbWVudHMnXSBhcyAkazI9PiRpbnB1dEluZm8pCgkJCQl7CgkJCQkJaWYoJGlucHV0SW5mb1snc21hcnR5J10pCgkJCQkJewoJCQkJCQlmb3JlYWNoKCRpbnB1dEluZm8gYXMgJHByb3BOYW1lPT4kcHJvcFZhbHVlKQoJCQkJCQl7CgkJCQkJCQkkaW5wdXRJbmZvWyRwcm9wTmFtZV0gPSAkdGhpcy0+RG9TbWFydHkoJHByb3BWYWx1ZSk7CgkJCQkJCX0KCQkJCQl9CgkJCQkJJGlucHV0SW5mb1snaWQnXSA9ICdtdWx0aUlucHV0LScgLiAkYmxvY2tJbmZvWydpZCddIC4gJy0nIC4gJG11bHRpX2lucHV0X2lkIC4gJy0nIC4gJGsxIC4gJy0nIC4gJGlucHV0SW5mb1snaWQnXTsKCQkJCQkkaW5wdXRzWyRpbnB1dEluZm9bJ2lkJ11dID0gJGlucHV0SW5mbzsKCQkJCQkkaW5wdXRzWyRpbnB1dEluZm9bJ2lkJ11dWydpbnB1dCddID0gJHRoaXMtPmRpc3BsYXlfY29udGVudF9ibG9jaygkaW5wdXRJbmZvLCAoaXNzZXQoJGlucHV0X3ZhbHVlc1skazFdWyRrMl0pID8kaW5wdXRfdmFsdWVzWyRrMV1bJGsyXTonJyksICRhZGRpbmcpOwoJCQkJfQoJCQkJJEFkdmFuY2VkQ29udGVudC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdpbnB1dHMnLCAkaW5wdXRzKTsKCQkJCSRtdWx0aV9pbnB1dCAuPSAkQWR2YW5jZWRDb250ZW50LT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGhpcy0+X211bHRpSW5wdXRzWyRtdWx0aV9pbnB1dF9pZF1bJ3RlbXBsYXRlJ10pOwoJCQl9CgkJfQoJCXJldHVybiAkbXVsdGlfaW5wdXQ7Cgl9CgkKCSNUb0RvOi4uLgoJcHJpdmF0ZSBmdW5jdGlvbiBfZGlzcGxheV9tdWx0aV9jb250ZW50X2Jsb2NrKCRibG9ja0luZm8sICR2YWx1ZSA9ICcnLCRhZGRpbmcgPSBmYWxzZSkKCXsKCQkkQWR2YW5jZWRDb250ZW50ID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50Jyk7CgkJJGJsb2NrSW5mb1snY29udGVudF9ibG9ja3MnXSA9IHVuc2VyaWFsaXplKCR2YWx1ZSk7CgkJaWYoaXNfYXJyYXkoJGJsb2NrSW5mb1snY29udGVudF9ibG9ja3MnXSkpCgkJewoJCQlmb3JlYWNoKCRtdWx0aV9jb250ZW50X2Jsb2NrcyBhcyAkX2Jsb2NrSW5mbykKCQkJewoJCQkJIyBNTEUgc3VwcG9ydAoJCQkJJF92YWx1ZSA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCRfYmxvY2tJbmZvWydpZCddIC4gJHRoaXMtPmJsb2NrTGFuZyk7CgkJCQlpZigkdGhpcy0+bWxlICYmICRfdmFsdWUgPT0gJycgJiYgJHRoaXMtPmRlZmF1bHRCbG9ja0xhbmcgIT0gJycgJiYgJHRoaXMtPmRlZmF1bHRCbG9ja0xhbmcgIT0gJHRoaXMtPmJsb2NrTGFuZykKCQkJCXsKCQkJCQkkX3ZhbHVlID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJF9ibG9ja0luZm9bJ2lkJ10gLiAkdGhpcy0+ZGVmYXVsdEJsb2NrTGFuZyk7CgkJCQl9CgkJCQkjLS0tCgkJCQkKCQkJCWlmKCgkYWRkaW5nICYmICRfdmFsdWUgPT0gJycpCgkJCQl8fCAoJF92YWx1ZSA9PSAnJyAmJiAhJF9ibG9ja0luZm9bJ2FsbG93X25vbmUnXSkpCgkJCQl7CgkJCQkJJF92YWx1ZSA9ICRfYmxvY2tJbmZvWydkZWZhdWx0X3ZhbHVlJ107CgkJCQl9CgkJCQkKCQkJCSRtdWx0aV9jb250ZW50X2Jsb2Nrc1skX2Jsb2NrSW5mb1snaWQnXV1bJ2NvbnRlbnQnXSA9IGNtc19odG1sZW50aXRpZXMoJF92YWx1ZSwgRU5UX05PUVVPVEVTLCBnZXRfZW5jb2RpbmcoJycpKTsKCQkJCSRtdWx0aV9jb250ZW50X2Jsb2Nrc1skX2Jsb2NrSW5mb1snaWQnXV1bJ2lucHV0J10gICA9ICR0aGlzLT5kaXNwbGF5X2NvbnRlbnRfYmxvY2soJF9ibG9ja0luZm8sICRfdmFsdWUsICRhZGRpbmcpOwoJCQkJJHRoaXMtPkFkZEV4dHJhUHJvcGVydHkoJF9ibG9ja0luZm9bJ2lkJ10pOwoJCQkJJHRoaXMtPlNldFByb3BlcnR5VmFsdWUoJF9ibG9ja0luZm9bJ2lkJ10sICRfdmFsdWUpOyAjID8/PwoJCQl9CgkJCSMkdGhpcy0+bVByb3BlcnRpZXMtPkxvYWQoJHRoaXMtPm1JZCk7ICMgPz8/CgkJfQoJCWVsc2UKCQl7CgkJCSRibG9ja0luZm9bJ2NvbnRlbnRfYmxvY2tzJ10gPSBhcnJheSgpOwoJCX0KCQkkYmxvY2tJbmZvWydjb250ZW50X2Jsb2Nrc19jb3VudCddID0gY291bnQoJGJsb2NrSW5mb1snY29udGVudF9ibG9ja3MnXSk7CgkJJEFkdmFuY2VkQ29udGVudC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtdWx0aWNvbnRlbnRfaWQnLCAkYmxvY2tJbmZvWydpZCddKTsKCQkkQWR2YW5jZWRDb250ZW50LT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2Jsb2NrX2luZm8nLCAkYmxvY2tJbmZvKTsKCQkkQWR2YW5jZWRDb250ZW50LT5zbWFydHktPmFzc2lnbignYWRkX2NvbnRlbnRfYmxvY2snLCAnPGEgaHJlZj0iIyIgb25jbGljaz0iQWR2YW5jZWRDb250ZW50Lm9wZW5QYW5lbChcJycuJGJsb2NrSW5mb1snaWQnXS4nXCcpOyByZXR1cm4gZmFsc2U7Ij4nLgoJCQljbXNtcygpLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsICcnLCcnLCcnLCdzeXN0ZW1pY29uJykgLgoJCQknJm5ic3A7JyAuICR0aGlzLT5sYW5nKCdhZGRfY29udGVudF9ibG9jaycpIC4gJzwvYT4nKTsKCQkKCQkkQWR2YW5jZWRDb250ZW50LT5zbWFydHktPmFzc2lnbigncmVtb3ZlX2NvbnRlbnRfYmxvY2snLCAnPGEgaHJlZj0iIyIgb25jbGljaz0iQWR2YW5jZWRDb250ZW50LmRlbGV0ZUJsb2NrKFwnJy4kYmxvY2tJbmZvWydpZCddLidcJyk7IHJldHVybiBmYWxzZTsiPicuCgkJCWNtc21zKCktPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywgJycsJycsJycsJ3N5c3RlbWljb24nKSAuCgkJCScmbmJzcDsnIC4gJHRoaXMtPmxhbmcoJ3JlbW92ZV9jb250ZW50X2Jsb2NrJykgLiAnPC9hPicpOwoJCQoJCXJldHVybiAkQWR2YW5jZWRDb250ZW50LT5Qcm9jZXNzVGVtcGxhdGUoJ211bHRpQ29udGVudC50cGwnKTsKCX0KCQoJZnVuY3Rpb24gVmFsaWRhdGVEYXRhKCkKCXsKCQkkZXJyb3JzID0gcGFyZW50OjpWYWxpZGF0ZURhdGEoKTsKCQlpZiggJGVycm9ycyA9PT0gRkFMU0UgKQoJCXsKCQkJJGVycm9ycyA9IGFycmF5KCk7CgkJfQoJCQoJCWlmICgkdGhpcy0+bVRlbXBsYXRlSWQgPD0gMCApCgkJewoJCQkkZXJyb3JzW10gPSBsYW5nKCdub2ZpZWxkZ2l2ZW4nLCBhcnJheShsYW5nKCd0ZW1wbGF0ZScpKSk7CgkJCSRyZXN1bHQgICA9IGZhbHNlOwoJCX0KCQkKCQlmb3JlYWNoKCR0aGlzLT5fY29udGVudEJsb2NrcyBhcyAkYmxvY2tJbmZvKQoJCXsKCQkJaWYoJGJsb2NrSW5mb1sncmVxdWlyZWQnXSAmJiAkdGhpcy0+R2V0UHJvcGVydHkoJGJsb2NrSW5mb1snaWQnXSkgPT0gJycpCgkJCXsKCQkJCSRlcnJvcnNbXSA9IGxhbmcoJ25vZmllbGRnaXZlbicsIGFycmF5KCRibG9ja0luZm9bJ25hbWUnXSkpOwoJCQkJJHJlc3VsdCAgID0gZmFsc2U7CgkJCX0KCQl9CgkJaWYoJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ3VzZV9leHBpcmVfZGF0ZScpICYmIGNoZWNrX3Blcm1pc3Npb24oZ2V0X3VzZXJpZCgpLCAnTWFuYWdlIEFkdmFuY2VkQ29udGVudCBPcHRpb25zJykgJiYgJHRoaXMtPkdldFByb3BlcnR5KCdlbmRfZGF0ZScpIDw9ICR0aGlzLT5HZXRQcm9wZXJ0eSgnc3RhcnRfZGF0ZScpKQoJCXsKCQkJJEFkdmFuY2VkQ29udGVudCA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpOwoJCQkkZXJyb3JzW10gPSAkQWR2YW5jZWRDb250ZW50LT5sYW5nKCdlcnJvcl9leHBpcmVkYXRlJyk7CgkJCSRyZXN1bHQgICA9IGZhbHNlOwoJCX0KCQlyZXR1cm4gKGNvdW50KCRlcnJvcnMpID4gMD8kZXJyb3JzOkZBTFNFKTsKCX0KCQoJZnVuY3Rpb24gQ29udGVudFByZVJlbmRlcigkdHBsU291cmNlKQoJewoJCSR0aGlzLT5wYXJzZV9jb250ZW50X2Jsb2NrcygpOwoJCXJldHVybiAkdHBsU291cmNlOwoJfQoJCglmdW5jdGlvbiBkaXNwbGF5X3NpbmdsZV9lbGVtZW50KCRvbmUsICRhZGRpbmcpCgl7CgkJc3dpdGNoKCRvbmUpCgkJewoJCQljYXNlICd0ZW1wbGF0ZSc6CgkJCQkkdGVtcGxhdGVvcHMgPSYgY21zbXMoKS0+R2V0VGVtcGxhdGVPcGVyYXRpb25zKCk7CgkJCQlyZXR1cm4gYXJyYXkobGFuZygndGVtcGxhdGUnKSAuICc6JywgJHRlbXBsYXRlb3BzLT5UZW1wbGF0ZURyb3Bkb3duKCd0ZW1wbGF0ZV9pZCcsICR0aGlzLT5tVGVtcGxhdGVJZCwgJ29uY2hhbmdlPSJkb2N1bWVudC5FZGl0X0NvbnRlbnQuc3VibWl0KCkiJykpOwoJCQkKCQkJY2FzZSAncGFnZW1ldGFkYXRhJzoKCQkJCXJldHVybiBhcnJheShsYW5nKCdwYWdlX21ldGFkYXRhJykgLiAnOicsIGNyZWF0ZV90ZXh0YXJlYShmYWxzZSwgJHRoaXMtPm1NZXRhZGF0YSwgJ21ldGFkYXRhJywgJ3BhZ2VzbWFsbHRleHRhcmVhJywgJ21ldGFkYXRhJywgJycsICcnLCAnODAnLCAnNicpKTsKCQkJCgkJCWNhc2UgJ3BhZ2VkYXRhJzoKCQkJCXJldHVybiBhcnJheShsYW5nKCdwYWdlZGF0YV9jb2RlYmxvY2snKSAuICc6JywgY3JlYXRlX3RleHRhcmVhKGZhbHNlLCAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgncGFnZWRhdGEnKSwgJ3BhZ2VkYXRhJywgJ3BhZ2VzbWFsbHRleHRhcmVhJywgJ3BhZ2VkYXRhJywgJycsICcnLCAnODAnLCAnNicpKTsKCQkJCgkJCWNhc2UgJ3NlYXJjaGFibGUnOgoJCQkJJHNlYXJjaGFibGUgPSAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnc2VhcmNoYWJsZScpOwoJCQkJaWYoICRzZWFyY2hhYmxlID09ICcnICkKCQkJCXsKCQkJCQkkc2VhcmNoYWJsZSA9IDE7CgkJCQl9CgkJCQlyZXR1cm4gYXJyYXkobGFuZygnc2VhcmNoYWJsZScpIC4gJzonLAoJCQkJCSc8ZGl2IGNsYXNzPSJoaWRkZW4iID48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWFyY2hhYmxlIiB2YWx1ZT0iMCIgLz48L2Rpdj4KCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InNlYXJjaGFibGUiIHZhbHVlPSIxIiAnIC4gKCRzZWFyY2hhYmxlID09IDE/J2NoZWNrZWQ9ImNoZWNrZWQiJzonJykgLiAnIC8+Jyk7CgkJCQoJCQljYXNlICdkaXNhYmxlX3d5c2l3eWcnOgoJCQkJJGRpc2FibGVXeXNpd3lnID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2Rpc2FibGVfd3lzaXd5ZycpOwoJCQkJaWYoICRkaXNhYmxlV3lzaXd5ZyA9PSAnJyApCgkJCQl7CgkJCQkJJGRpc2FibGVXeXNpd3lnID0gMDsKCQkJCX0KCQkJCXJldHVybiBhcnJheShsYW5nKCdkaXNhYmxlX3d5c2l3eWcnKSAuICc6JywKCQkJCQknPGRpdiBjbGFzcz0iaGlkZGVuIiA+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGlzYWJsZV93eXNpd3lnIiB2YWx1ZT0iMCIgLz48L2Rpdj4KCQkJCQk8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImRpc2FibGVfd3lzaXd5ZyIgdmFsdWU9IjEiICAnIC4gKCRkaXNhYmxlV3lzaXd5ZyA9PSAxPydjaGVja2VkPSJjaGVja2VkIic6JycpIC4gJyBvbmNsaWNrPSJ0aGlzLmZvcm0uc3VibWl0KCkiIC8+Jyk7CgkJCQoJCQlkZWZhdWx0OgoJCQkJaWYoJG9uZSAhPSAnZmV1X2FjY2VzcycKCQkJCSYmICRvbmUgIT0gJ3JlZGlyZWN0X3BhZ2UnCgkJCQkmJiAkb25lICE9ICdyZWRpcmVjdF9wYXJhbXMnCgkJCQkmJiAkb25lICE9ICdldmFsdWF0ZV9zbWFydHknCgkJCQkmJiAkb25lICE9ICdmZXVfYWN0aW9uJwoJCQkJJiYgJG9uZSAhPSAnc3RhcnRfZGF0ZScKCQkJCSYmICRvbmUgIT0gJ2VuZF9kYXRlJwoJCQkJJiYgJG9uZSAhPSAndXNlX2V4cGlyZV9kYXRlJwoJCQkJJiYgJG9uZSAhPSAnaGlkZV9tZW51X2l0ZW0nCgkJCQkmJiAkb25lICE9ICdpbmhlcml0X3JlZGlyZWN0X3BhcmFtcycpCgkJCQl7CgkJCQkJcmV0dXJuIHBhcmVudDo6ZGlzcGxheV9zaW5nbGVfZWxlbWVudCgkb25lLCAkYWRkaW5nKTsgIyBUb0RvOiBoZXJlIHdlIGNhbiBob29rIGluIHRvIGFkZCBNTEUgZmVhdHVyZXMgZm9yIHRpdGxlIGFuZCBtZW51dGV4dCBldGMuKQoJCQkJfQoJCQkJYnJlYWs7CgkJfQoJfQoKLyoqCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEN1c3RvbSBmdW5jdGlvbnMKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCiAKCS8qKgoJICogRGlzcGxheSB0aGUgYWR2YW5jZWQgb3B0aW9ucwoJICogQHBhcmFtIGJvb2xlYW4gJGFkZGluZyAtIHRydWUgaWYgcGFnZSBpcyBhZGRlZCwgZmFsc2UgaWYgZWRpdGVkCgkgKiBAcmV0dXJuIGFycmF5IC0gYXJyYXkoYXJyYXkocHJvbXB0LGltcHV0KSkKCSAqLwoJcHJpdmF0ZSBmdW5jdGlvbiBEaXNwbGF5QWR2YW5jZWRPcHRpb25zKCRhZGRpbmcpCgl7CgkJJEFkdmFuY2VkQ29udGVudCA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0FkdmFuY2VkQ29udGVudCcpOwoJCSRyZXQgPSBhcnJheSgpOwoJCWZvcmVhY2goICR0aGlzLT5fYXR0cmlidXRlcyBhcyAkb25lQXR0cmliICkKCQl7CgkJCXN3aXRjaCgkb25lQXR0cmliWzBdKQoJCQl7CgkJCQljYXNlICdmZXVfYWNjZXNzJzoKCQkJCQlpZigkZmV1c2VycyA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKSkKCQkJCQl7CgkJCQkJCWlmKCRhZGRpbmcpCgkJCQkJCXsKCQkJCQkJCSRzZWxlY3RlZEdyb3VwcyA9ICRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ2ZldV9hY2Nlc3MnKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCSRzZWxlY3RlZEdyb3VwcyA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdmZXVfYWNjZXNzJyk7CgkJCQkJCX0KCQkJCQkJJGRlbGltICAgICAgICAgID0gc3RycG9zKCRzZWxlY3RlZEdyb3VwcywnLCcpID09PSBGQUxTRSA/ICc7JyA6ICcsJzsKCQkJCQkJJHNlbGVjdGVkR3JvdXBzID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgkZGVsaW0sJHNlbGVjdGVkR3JvdXBzKSk7CgkJCQkJCQoJCQkJCQkkZmV1QWNjZXNzID0gYXJyYXkoJEFkdmFuY2VkQ29udGVudC0+bGFuZygnaW5oZXJpdF9mcm9tX3BhcmVudCcpPT4tMSk7CgkJCQkJCSRmZXVBY2Nlc3MgPSBhcnJheV9tZXJnZSgkZmV1QWNjZXNzLCRmZXVzZXJzLT5HZXRHcm91cExpc3QoKSk7CgkJCQkJCSRyZXRbXSA9IGFycmF5KCRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ2Zyb250ZW5kYWNjZXNzJykuJyA6ICcsCgkJCQkJCQknPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgbmFtZT0iZmV1X2FjY2VzcyIgLz4nLgoJCQkJCQkJJEFkdmFuY2VkQ29udGVudC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCcnLCdmZXVfYWNjZXNzW10nLCRmZXVBY2Nlc3MsJHNlbGVjdGVkR3JvdXBzLGNvdW50KCRmZXVBY2Nlc3MpLCcnLDEpKTsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQkKCQkJCWNhc2UgJ3JlZGlyZWN0X3BhZ2UnOgoJCQkJCWlmKCRmZXVzZXJzID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpKQoJCQkJCXsKCQkJCQkJaWYoJGFkZGluZykKCQkJCQkJewoJCQkJCQkJJHRoaXMtPlNldFByb3BlcnR5VmFsdWUoInJlZGlyZWN0X3BhZ2UiLCRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ3JlZGlyZWN0X3BhZ2UnLCcnKSk7CgkJCQkJCX0KCQkJCQkJJHJldFtdID0gYXJyYXkoJEFkdmFuY2VkQ29udGVudC0+bGFuZygncmVkaXJlY3RwYWdlJykuJyA6ICcsCgkJCQkJCQkkQWR2YW5jZWRDb250ZW50LT5DcmVhdGVSZWRpcmVjdERyb3Bkb3duKCcnLCAncmVkaXJlY3RfcGFnZScsJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoInJlZGlyZWN0X3BhZ2UiKSwgJHRoaXMtPm1JZCkpOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJCQoJCQkJY2FzZSAncmVkaXJlY3RfcGFyYW1zJzoKCQkJCQlpZigkZmV1c2VycyA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnKSkKCQkJCQl7CgkJCQkJCWlmKCRhZGRpbmcpCgkJCQkJCXsKCQkJCQkJCSR0aGlzLT5TZXRQcm9wZXJ0eVZhbHVlKCdpbmhlcml0X3JlZGlyZWN0X3BhcmFtcycsJEFkdmFuY2VkQ29udGVudC0+R2V0UHJlZmVyZW5jZSgnaW5oZXJpdF9yZWRpcmVjdF9wYXJhbXMnLCcnKSk7CgkJCQkJCQkkdGhpcy0+U2V0UHJvcGVydHlWYWx1ZSgicmVkaXJlY3RfcGFyYW1zIiwkQWR2YW5jZWRDb250ZW50LT5HZXRQcmVmZXJlbmNlKCdyZWRpcmVjdF9wYXJhbXMnLCcnKSk7CgkJCQkJCQkkdGhpcy0+U2V0UHJvcGVydHlWYWx1ZSgiZXZhbHVhdGVfc21hcnR5IiwkQWR2YW5jZWRDb250ZW50LT5HZXRQcmVmZXJlbmNlKCdldmFsdWF0ZV9zbWFydHknLCcnKSk7CgkJCQkJCX0KCQkJCQkJJGluaGVyaXRQYXJhbXMgID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoJ2luaGVyaXRfcmVkaXJlY3RfcGFyYW1zJyk7CgkJCQkJCSRyZWRpcmVjdFBhcmFtcyA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCJyZWRpcmVjdF9wYXJhbXMiKTsKCQkJCQkJJGV2YWx1YXRlU21hcnR5ID0gJHRoaXMtPkdldFByb3BlcnR5VmFsdWUoImV2YWx1YXRlX3NtYXJ0eSIpOwoJCQkJCQkkcmV0W10gPSBhcnJheSgnPHNwYW4gY2xhc3M9IkFkdmFuY2VkQ29udGVudF9yZWRpcmVjdF9wYXJhbXMiIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwOycuKCEkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgicmVkaXJlY3RfcGFnZSIpID8gJ2Rpc3BsYXk6bm9uZScgOicnKS4nIj4nIC4gJEFkdmFuY2VkQ29udGVudC0+bGFuZygncmVkaXJlY3RwYXJhbXMnKS4nIDogPC9zcGFuPicsCgkJCQkJCQknPHNwYW4gY2xhc3M9IkFkdmFuY2VkQ29udGVudF9yZWRpcmVjdF9wYXJhbXMiIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwOycuKCEkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgicmVkaXJlY3RfcGFnZSIpID8gJ2Rpc3BsYXk6bm9uZScgOicnKS4nIj4nLiRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ2luaGVyaXRfZnJvbV9wYXJlbnQnKSAuICcgOiAnIC4KCQkJCQkJCSc8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImluaGVyaXRfcmVkaXJlY3RfcGFyYW1zIiB2YWx1ZT0iMSIgJyAuICgkaW5oZXJpdFBhcmFtcyA/ICdjaGVja2VkPSJjaGVja2VkIic6JycpIC4gJyBvbmNoYW5nZT0iaWYodGhpcy5jaGVja2VkKXtqUXVlcnkoXCcjQWR2YW5jZWRDb250ZW50X3JlZGlyZWN0X3BhcmFtc193cmFwcGVyIGlucHV0XCcpLmF0dHIoXCdkaXNhYmxlZFwnLFwnZGlzYWJsZWRcJyk7aWYoalF1ZXJ5KFwnI0FkdmFuY2VkQ29udGVudF9yZWRpcmVjdF9wYXJhbXNfd3JhcHBlclwnKS5jc3MoXCdkaXNwbGF5XCcpICE9IFwnbm9uZVwnKXtqUXVlcnkoXCcjQWR2YW5jZWRDb250ZW50X3JlZGlyZWN0X3BhcmFtc193cmFwcGVyXCcpLnNsaWRlVXAoKTt9fWVsc2V7alF1ZXJ5KFwnI0FkdmFuY2VkQ29udGVudF9yZWRpcmVjdF9wYXJhbXNfd3JhcHBlciBpbnB1dFwnKS5yZW1vdmVBdHRyKFwnZGlzYWJsZWRcJyk7aWYoalF1ZXJ5KFwnI0FkdmFuY2VkQ29udGVudF9yZWRpcmVjdF9wYXJhbXNfd3JhcHBlclwnKS5jc3MoXCdkaXNwbGF5XCcpID09IFwnbm9uZVwnKXtqUXVlcnkoXCcjQWR2YW5jZWRDb250ZW50X3JlZGlyZWN0X3BhcmFtc193cmFwcGVyXCcpLnNsaWRlRG93bigpO319Ii8+PGJyIC8+PGJyIC8+CgkJCQkJCQk8c3BhbiBpZD0iQWR2YW5jZWRDb250ZW50X3JlZGlyZWN0X3BhcmFtc193cmFwcGVyIiBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDsnLigkaW5oZXJpdFBhcmFtcyA/ICdkaXNwbGF5Om5vbmUnIDonJykuJyI+PGlucHV0IGNsYXNzPSJBZHZhbmNlZENvbnRlbnRfcmVkaXJlY3RfcGFyYW1zIiB0eXBlPSJ0ZXh0IiBzaXplPSIzMiIgbWF4bGVuZ3RoPSIxMjgiIG5hbWU9InJlZGlyZWN0X3BhcmFtcyIgdmFsdWU9IicuKCRpbmhlcml0UGFyYW1zID8gJycgOiAkcmVkaXJlY3RQYXJhbXMpLiciICcuKCRpbmhlcml0UGFyYW1zID8gJ2Rpc2FibGVkPSJkaXNhYmxlZCIgJyA6ICcnKS4nLz4mbmJzcDs8ZW0+KHBhcmFtMT12YWx1ZTEgcGFyYW0yPXZhbHVlMiAuLi4pPC9lbT48YnIgLz48YnIgLz4nLgoJCQkJCQkJJEFkdmFuY2VkQ29udGVudC0+bGFuZygnZXZhbHVhdGVzbWFydHknKSAuICcgOiAnLgoJCQkJCQkJJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImV2YWx1YXRlX3NtYXJ0eSIgdmFsdWU9IjAiICcuKCRpbmhlcml0UGFyYW1zID8gJ2Rpc2FibGVkPSJkaXNhYmxlZCIgJyA6ICcnKS4nLz4KCQkJCQkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZXZhbHVhdGVfc21hcnR5IiB2YWx1ZT0iMSIgICcgLiAoJGV2YWx1YXRlU21hcnR5ID09IDEgJiYgISRpbmhlcml0UGFyYW1zID8gJ2NoZWNrZWQ9ImNoZWNrZWQiICc6JycpIC4gKCRpbmhlcml0UGFyYW1zID8gJ2Rpc2FibGVkPSJkaXNhYmxlZCIgJyA6ICcnKS4nLz48L3NwYW4+PC9zcGFuPicpOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJCQoJCQkJY2FzZSAnZmV1X2FjdGlvbic6CgkJCQkJaWYoJGZldXNlcnMgPSYgY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJykpCgkJCQkJewoJCQkJCQlpZigkYWRkaW5nKQoJCQkJCQl7CgkJCQkJCQkkdGhpcy0+U2V0UHJvcGVydHlWYWx1ZSgnZmV1X2FjdGlvbicsICRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoJ2ZldV9hY3Rpb24nLDEpKTsKCQkJCQkJfQoJCQkJCQkkcmV0W10gPSBhcnJheSgkQWR2YW5jZWRDb250ZW50LT5sYW5nKCdzaG93bG9naW5mb3JtJykuJyA6ICcsCgkJCQkJCQkkQWR2YW5jZWRDb250ZW50LT5DcmVhdGVJbnB1dERyb3Bkb3duKCcnLCdmZXVfYWN0aW9uJywKCQkJCQkJCQlhcnJheSgkQWR2YW5jZWRDb250ZW50LT5sYW5nKCd5ZXMnKT0+MSwKCQkJCQkJCQkJJEFkdmFuY2VkQ29udGVudC0+bGFuZygnbm8nKT0+MCwKCQkJCQkJCQkJJEFkdmFuY2VkQ29udGVudC0+bGFuZygnaW5oZXJpdF9mcm9tX3BhcmVudCcpPT4tMSksCgkJCQkJCQkJMCwkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnZmV1X2FjdGlvbicpKSk7CgkJCQkJfQoJCQkJCWJyZWFrOwoJCQkJCgkJCQljYXNlICd1c2VfZXhwaXJlX2RhdGUnOgoJCQkJCWlmKCRhZGRpbmcpCgkJCQkJewoJCQkJCQkkdXNlRXhwICAgID0gJEFkdmFuY2VkQ29udGVudC0+R2V0UHJlZmVyZW5jZSgndXNlX2V4cGlyZV9kYXRlJyxmYWxzZSk7CgkJCQkJCSRzdGFydERhdGUgPSBzdHJ0b3RpbWUoJysnIC4gJEFkdmFuY2VkQ29udGVudC0+R2V0UHJlZmVyZW5jZSgic3RhcnRfZGF0ZSIsJzEgd2VlaycpKTsKCQkJCQkJJGVuZERhdGUgICA9IHN0cnRvdGltZSgnKycgLiAkQWR2YW5jZWRDb250ZW50LT5HZXRQcmVmZXJlbmNlKCJlbmRfZGF0ZSIsJzEgd2VlaycpLCAkc3RhcnREYXRlKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJJHVzZUV4cCAgICA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCd1c2VfZXhwaXJlX2RhdGUnKTsKCQkJCQkJJHN0YXJ0RGF0ZSA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdzdGFydF9kYXRlJykgPyAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnc3RhcnRfZGF0ZScpIDogc3RydG90aW1lKCcrJyAuICRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoInN0YXJ0X2RhdGUiLCcxIHdlZWsnKSk7CgkJCQkJCSRlbmREYXRlICAgPSAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnZW5kX2RhdGUnKSA/ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdlbmRfZGF0ZScpIDogc3RydG90aW1lKCcrJyAuICRBZHZhbmNlZENvbnRlbnQtPkdldFByZWZlcmVuY2UoImVuZF9kYXRlIiwnMSB3ZWVrJyksICRzdGFydERhdGUpOwoJCQkJCX0KCQkJCQkkZGF0ZSAgICAgICAgPSBzdHJmdGltZSgnJXgnLCBpbnR2YWwoJHN0YXJ0RGF0ZSkpOwoJCQkJCSR0aW1lICAgICAgICA9IHN0cmZ0aW1lKCclSDolTScsIGludHZhbCgkc3RhcnREYXRlKSk7CgkJCQkJJF90bXAgICAgICAgID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgnOicsJHRpbWUpKTsKCQkJCQkkdGltZVNlY29uZHMgPSAoKCRfdG1wWzBdICogMzYwMCkgKyAoJF90bXBbMV0gKiA2MCkpOwoJCQkJCSRkYXRlU2Vjb25kcyA9ICRzdGFydERhdGUgLSAkdGltZVNlY29uZHM7CgkJCQkJCgkJCQkJJGRhdGVJbnB1dCA9ICc8YnIgLz48YnIgLz4KCQkJCQkJPHNwYW4gaWQ9IkFkdmFuY2VkQ29udGVudF9leHBpcmVfZGF0ZV93cmFwcGVyIiBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDsnLigkdXNlRXhwIDw9IDAgPyAnZGlzcGxheTpub25lJyA6ICcnKS4nIj48c3Ryb25nPicuCgkJCQkJCSRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ3N0YXJ0ZGF0ZScpLicgOiA8L3N0cm9uZz48YnIgLz4KCQkJCQkJPGltZyBpZD0iQWR2YW5jZWRDb250ZW50U3RhcnREYXRlUGlja2VyVHJpZ2dlciIgc3JjPSIuLi9tb2R1bGVzL0FkdmFuY2VkQ29udGVudC9pbWFnZXMvY2FsZW5kYXIucG5nIiBjbGFzcz0iY2FsZW5kYXJUcmlnZ2VyIiAvPiZuYnNwOwoJCQkJCQk8c3BhbiBpZD0iQWR2YW5jZWRDb250ZW50U3RhcnREYXRlUGlja2VyRGlzcGxheSI+Jy4kZGF0ZS4nPC9zcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDsKCQkJCQkJPGlucHV0IGlkPSJBZHZhbmNlZENvbnRlbnRTdGFydERhdGUiIHR5cGU9ImhpZGRlbiIgJy4oJHVzZUV4cCA8PSAwID8gJ2Rpc2FibGVkPSJkaXNhYmxlZCInIDogJycpLicgbmFtZT0iQWR2YW5jZWRDb250ZW50U3RhcnREYXRlIiB2YWx1ZT0iJy4oJHVzZUV4cCA+IDAgPyAkZGF0ZVNlY29uZHMgOiAkdXNlRXhwKS4nIiAvPgoJCQkJCQk8c2VsZWN0IG5hbWU9IkFkdmFuY2VkQ29udGVudFN0YXJ0VGltZSIgJy4oJHVzZUV4cCA8PSAwID8gJ2Rpc2FibGVkPSJkaXNhYmxlZCInIDogJycpLic+JzsKCQkJCQkJCgkJCQkJZm9yKCRpPTA7ICRpPD0yMzsgJGkrKykKCQkJCQl7CgkJCQkJCWZvcigkaj0wOyAkajw9NTk7ICRqKyspCgkJCQkJCXsKCQkJCQkJCSR2YWx1ZSA9ICgkaSozNjAwKSArICgkaio2MCk7CgkJCQkJCQkkZGF0ZUlucHV0IC49ICc8b3B0aW9uIHZhbHVlPSInLiAkdmFsdWUgLiciJy4gKCR2YWx1ZSA9PSAkdGltZVNlY29uZHMgJiYgJHVzZUV4cCA+IDAgPyAnIHNlbGVjdGVkPSJzZWxlY3RlZCIgJzonJykgLiAnPicuICgkaTwxMD8nMCcuJGk6JGkpIC4nOicuICgkajwxMD8nMCcuJGo6JGopIC4nPC9vcHRpb24+JzsKCQkJCQkJfQoJCQkJCQkkaiA9IDA7CgkJCQkJfQoJCQkJCSRkYXRlSW5wdXQgLj0gJzwvc2VsZWN0PjxiciAvPjxiciAvPic7CgkJCQkJCgkJCQkJJGRhdGUgICAgICAgID0gc3RyZnRpbWUoJyV4JywgaW50dmFsKCRlbmREYXRlKSk7CgkJCQkJJHRpbWUgICAgICAgID0gc3RyZnRpbWUoJyVIOiVNJywgaW50dmFsKCRlbmREYXRlKSk7CgkJCQkJJF90bXAgICAgICAgID0gJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgnOicsJHRpbWUpKTsKCQkJCQkkdGltZVNlY29uZHMgPSAoKCRfdG1wWzBdICogMzYwMCkgKyAoJF90bXBbMV0gKiA2MCkpOwoJCQkJCSRkYXRlU2Vjb25kcyA9ICRlbmREYXRlIC0gJHRpbWVTZWNvbmRzOwoJCQkJCQoJCQkJCSRkYXRlSW5wdXQgLj0gJzxzdHJvbmc+JyAuICRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ2VuZGRhdGUnKS4nIDogPC9zdHJvbmc+PGJyIC8+CgkJCQkJCTxpbWcgaWQ9IkFkdmFuY2VkQ29udGVudEVuZERhdGVQaWNrZXJUcmlnZ2VyIiBzcmM9Ii4uL21vZHVsZXMvQWR2YW5jZWRDb250ZW50L2ltYWdlcy9jYWxlbmRhci5wbmciIGNsYXNzPSJjYWxlbmRhclRyaWdnZXIiIC8+Jm5ic3A7CgkJCQkJCTxzcGFuIGlkPSJBZHZhbmNlZENvbnRlbnRFbmREYXRlUGlja2VyRGlzcGxheSI+Jy4kZGF0ZS4nPC9zcGFuPiZuYnNwOyZuYnNwOy0mbmJzcDsmbmJzcDsKCQkJCQkJPGlucHV0IGlkPSJBZHZhbmNlZENvbnRlbnRFbmREYXRlIiB0eXBlPSJoaWRkZW4iICcuKCR1c2VFeHAgPD0gMCA/ICdkaXNhYmxlZD0iZGlzYWJsZWQiJyA6ICcnKS4nIG5hbWU9IkFkdmFuY2VkQ29udGVudEVuZERhdGUiIHZhbHVlPSInLigkdXNlRXhwID4gMCA/ICRkYXRlU2Vjb25kcyA6ICR1c2VFeHApLiciIC8+CgkJCQkJCTxzZWxlY3QgbmFtZT0iQWR2YW5jZWRDb250ZW50RW5kVGltZSIgJy4oJHVzZUV4cCA8PSAwID8gJ2Rpc2FibGVkPSJkaXNhYmxlZCInIDogJycpLic+JzsKCQkJCQkJCgkJCQkJZm9yKCRpPTA7ICRpPD0yMzsgJGkrKykKCQkJCQl7CgkJCQkJCWZvcigkaj0wOyAkajw9NTk7ICRqKyspCgkJCQkJCXsKCQkJCQkJCSR2YWx1ZSA9ICgkaSozNjAwKSArICgkaio2MCk7CgkJCQkJCQkkZGF0ZUlucHV0IC49ICc8b3B0aW9uIHZhbHVlPSInLiAkdmFsdWUgLiciJy4gKCR2YWx1ZSA9PSAkdGltZVNlY29uZHMgJiYgJHVzZUV4cCA+IDAgPyAnIHNlbGVjdGVkPSJzZWxlY3RlZCInOicnKSAuJz4nLiAoJGk8MTA/JzAnLiRpOiRpKSAuJzonLiAoJGo8MTA/JzAnLiRqOiRqKSAuJzwvb3B0aW9uPic7CgkJCQkJCX0KCQkJCQkJJGogPSAwOwoJCQkJCX0KCQkJCQkkZGF0ZUlucHV0IC49ICc8L3NlbGVjdD48L3NwYW4+JzsKCQkJCQkKCQkJCQkkcmV0W10gPSBhcnJheSgkQWR2YW5jZWRDb250ZW50LT5sYW5nKCd1c2VleHBpcmVkYXRlJykgLiAnOicsCgkJCQkJCSRBZHZhbmNlZENvbnRlbnQtPkNyZWF0ZUlucHV0RHJvcGRvd24oJycsJ3VzZV9leHBpcmVfZGF0ZScsCgkJCQkJCQkJYXJyYXkoJEFkdmFuY2VkQ29udGVudC0+bGFuZygneWVzJyk9PjEsCgkJCQkJCQkJCSRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ25vJyk9PjAsCgkJCQkJCQkJCSRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ2luaGVyaXRfZnJvbV9wYXJlbnQnKT0+LTEpLAoJCQkJCQkJCS0xLCR1c2VFeHAsJ29uY2hhbmdlPSJpZih0aGlzLnZhbHVlICE9IFwnMVwnKXtqUXVlcnkoXCcjQWR2YW5jZWRDb250ZW50X2V4cGlyZV9kYXRlX3dyYXBwZXIgaW5wdXQsICNBZHZhbmNlZENvbnRlbnRfZXhwaXJlX2RhdGVfd3JhcHBlciBzZWxlY3QsICNBZHZhbmNlZENvbnRlbnRfZXhwaXJlX2RhdGVfd3JhcHBlciB0ZXh0YXJlYVwnKS5hdHRyKFwnZGlzYWJsZWRcJyxcJ2Rpc2FibGVkXCcpO2lmKGpRdWVyeShcJyNBZHZhbmNlZENvbnRlbnRfZXhwaXJlX2RhdGVfd3JhcHBlclwnKS5jc3MoXCdkaXNwbGF5XCcpICE9IFwnbm9uZVwnKXtqUXVlcnkoXCcjQWR2YW5jZWRDb250ZW50X2V4cGlyZV9kYXRlX3dyYXBwZXJcJykuc2xpZGVVcCgpO319ZWxzZXtqUXVlcnkoXCcjQWR2YW5jZWRDb250ZW50X2V4cGlyZV9kYXRlX3dyYXBwZXIgaW5wdXQsICNBZHZhbmNlZENvbnRlbnRfZXhwaXJlX2RhdGVfd3JhcHBlciBzZWxlY3QsICNBZHZhbmNlZENvbnRlbnRfZXhwaXJlX2RhdGVfd3JhcHBlciB0ZXh0YXJlYVwnKS5yZW1vdmVBdHRyKFwnZGlzYWJsZWRcJyk7aWYoalF1ZXJ5KFwnI0FkdmFuY2VkQ29udGVudF9leHBpcmVfZGF0ZV93cmFwcGVyXCcpLmNzcyhcJ2Rpc3BsYXlcJykgPT0gXCdub25lXCcpe2pRdWVyeShcJyNBZHZhbmNlZENvbnRlbnRfZXhwaXJlX2RhdGVfd3JhcHBlclwnKS5zbGlkZURvd24oKTt9fSInKSAuICRkYXRlSW5wdXQpOwoJCQkJCQoJCQkJCWJyZWFrOwoJCQkJCQoJCQkJY2FzZSAnaGlkZV9tZW51X2l0ZW0nOgoJCQkJCWlmKCRmZXVzZXJzID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpKQoJCQkJCXsKCQkJCQkJaWYoJGFkZGluZykKCQkJCQkJewoJCQkJCQkJJGhpZGUgPSAkQWR2YW5jZWRDb250ZW50LT5HZXRQcmVmZXJlbmNlKCdoaWRlX21lbnVfaXRlbScsMCk7CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CgkJCQkJCQkkaGlkZSA9ICR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdoaWRlX21lbnVfaXRlbScpOwoJCQkJCQl9CgkJCQkJCSRyZXRbXSA9IGFycmF5KCRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ2hpZGVfbWVudV9pdGVtJykgLiAnOicsCgkJCQkJCQkkQWR2YW5jZWRDb250ZW50LT5DcmVhdGVJbnB1dERyb3Bkb3duKCcnLCdoaWRlX21lbnVfaXRlbScsCgkJCQkJCQkJYXJyYXkoJEFkdmFuY2VkQ29udGVudC0+bGFuZygnbm8nKT0+MCwKCQkJCQkJCQkJJEFkdmFuY2VkQ29udGVudC0+bGFuZygnbG9nZ2Vkb3V0Jyk9PjEsCgkJCQkJCQkJCSRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ2xvZ2dlZGluJyk9PjIsCgkJCQkJCQkJCSRBZHZhbmNlZENvbnRlbnQtPmxhbmcoJ2luaGVyaXRfZnJvbV9wYXJlbnQnKT0+LTEpLAoJCQkJCQkJCTAsJGhpZGUpKTsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQkKCQkJCWRlZmF1bHQ6YnJlYWs7CgkJCX0KCQl9CgkJcmV0dXJuICRyZXQ7Cgl9CgkKCQoJLyoqCgkgKiBUaGlzIGlzIGp1c3QgYSB3cmFwcGVyIHRvIHByb2Nlc3MgYSB0ZW1wbGF0ZSBmcm9tIGRhdGEKCSAqIEBwYXJhbSBzdHJpbmcgJGRhdGEgLSBUaGUgdGVtcGxhdGUgY29udGVudCB0byBwcm9jZXNzCgkgKiBAcmV0dXJuIHN0cmluZyAtIFRoZSBwcm9jZXNzZWQgdGVtcGxhdGUgZGF0YQoJICovCglmdW5jdGlvbiBEb1NtYXJ0eSgkZGF0YSkKCXsKCQlpZihpc19hcnJheSgkZGF0YSkpCgkJewoJCQlmb3JlYWNoKCRkYXRhIGFzICRrID0+ICR2KQoJCQl7CgkJCQkkZGF0YVska10gPSAkdGhpcy0+RG9TbWFydHkoJHYpOwoJCQl9CgkJfQoJCWlmKCFpc19hcnJheSgkZGF0YSkgJiYgIWlzX29iamVjdCgkZGF0YSkgJiYgcHJlZ19tYXRjaF9hbGwoJy86OjooW146XSspOjo6LycsICRkYXRhLCAkbWF0Y2hlcykpCgkJewoJCQkkQWR2YW5jZWRDb250ZW50ID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnQWR2YW5jZWRDb250ZW50Jyk7CgkJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignY29udGVudF9vYmonLCAkdGhpcyk7CgkJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignY29udGVudF9pZCcsICR0aGlzLT5tSWQpOwoJCQkkQWR2YW5jZWRDb250ZW50LT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2NvbnRlbnRfYWxpYXMnLCAkdGhpcy0+bUFsaWFzKTsKCQkJJEFkdmFuY2VkQ29udGVudC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdwYWdlJywgJHRoaXMtPm1BbGlhcyk7CgkJCSRBZHZhbmNlZENvbnRlbnQtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZigncGFnZV9pZCcsICR0aGlzLT5tQWxpYXMpOwoJCQkkQWR2YW5jZWRDb250ZW50LT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ3BhZ2VfYWxpYXMnLCAkdGhpcy0+bUFsaWFzKTsKCQkJJEFkdmFuY2VkQ29udGVudC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdwYWdlX25hbWUnLCAkdGhpcy0+bUFsaWFzKTsKCQkJJEFkdmFuY2VkQ29udGVudC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdwb3NpdGlvbicsICR0aGlzLT5tSGllcmFyY2h5KTsKCQkJJEFkdmFuY2VkQ29udGVudC0+c21hcnR5LT5hc3NpZ24oJ2ZyaWVuZGx5X3Bvc2l0aW9uJywgY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKS0+Q3JlYXRlRnJpZW5kbHlIaWVyYXJjaHlQb3NpdGlvbigkdGhpcy0+bUhpZXJhcmNoeSkpOwoJCQkkZGF0YSA9ICRBZHZhbmNlZENvbnRlbnQtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKHByZWdfcmVwbGFjZSgnLzo6OihbXjpdKyk6OjovJywgJ3skMX0nLCAkZGF0YSkpOwoJCX0KCQlyZXR1cm4gJGRhdGE7Cgl9CgkKCWZ1bmN0aW9uIEluaGVyaXRQYXJlbnRQcm9wKCRwcm9wTmFtZSwgJGN1cnJlbnRQcm9wID0gYXJyYXkoKSkKCXsKCQlyZXR1cm4gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdBZHZhbmNlZENvbnRlbnQnKS0+SW5oZXJpdFBhcmVudFByb3AoJHRoaXMtPm1JZCwgJHRoaXMtPm1QYXJlbnRJZCwgJHByb3BOYW1lLCAkY3VycmVudFByb3ApOwoJfQoJCgkvKioKCSAqIEdldCB0aGUgZ3JvdXBzIG9mIHRoZSBiYWNrZW5kIHVzZXIKCSAqIEByZXR1cm4gYXJyYXkKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICovCglwcml2YXRlIGZ1bmN0aW9uICZHZXRVc2VyR3JvdXBzKCkKCXsKCQlpZighJHRoaXMtPl91c2VyR3JvdXBzKQoJCXsKCQkJJGRiID0mIGNtc21zKCktPkdldERiKCk7CgkJCSR0aGlzLT5fdXNlckdyb3VwcyA9IGFycmF5KCk7CgkJCSRxdWVyeSA9ICJTRUxFQ1QgZ3JvdXBfaWQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4idXNlcl9ncm91cHMgV0hFUkUgdXNlcl9pZCA9ID8iOwoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheShnZXRfdXNlcmlkKCkpKTsKCQkJd2hpbGUoICRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKCQkJewoJCQkJJHRoaXMtPl91c2VyR3JvdXBzW10gPSAkcm93Wydncm91cF9pZCddICogLTE7CgkJCX0KCQl9CgkJcmV0dXJuICR0aGlzLT5fdXNlckdyb3VwczsKCX0KCQoJCgkvKioKCSAqIEdldCBhbGwgYmFja2VuZCBncm91cHMKCSAqIEByZXR1cm4gYXJyYXkKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICovCglwcml2YXRlIGZ1bmN0aW9uICZHZXRBbGxHcm91cHMoKQoJewoJCWlmKCEkdGhpcy0+X2FsbEdyb3VwcykKCQl7CgkJCSRncm91cE9wcyAgICAgICAgID0mIGNtc21zKCktPkdldEdyb3VwT3BlcmF0aW9ucygpOwoJCQkkdGhpcy0+X2FsbEdyb3VwcyA9ICRncm91cE9wcy0+TG9hZEdyb3VwcygpOwoJCX0KCQlyZXR1cm4gJHRoaXMtPl9hbGxHcm91cHM7Cgl9CgkKCQoJLyoqCgkgKiBHZXQgYWxsIGJhY2tlbmQgdXNlcnMKCSAqIEByZXR1cm4gYXJyYXkKCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICovCglwcml2YXRlIGZ1bmN0aW9uICZHZXRBbGxVc2VycygpCgl7CgkJaWYoISR0aGlzLT5fYWxsVXNlcnMpCgkJewoJCQkkdXNlck9wcyAgICAgICAgID0mIGNtc21zKCktPkdldFVzZXJPcGVyYXRpb25zKCk7CgkJCSR0aGlzLT5fYWxsVXNlcnMgPSYgJHVzZXJPcHMtPkxvYWRVc2VycygpOwoJCX0KCQlyZXR1cm4gJHRoaXMtPl9hbGxVc2VyczsKCX0KCQoJCgkvKioKCSAqIENoZWNrcyBpZiBhIGJhY2tlbmQgdXNlciBoYXMgc3VmZmljaWVudCBwZXJtaXNzaW9uIHRvIGVkaXQgYSBibG9jawoJICogQHBhcmFtIGFycmF5ICRibG9ja0luZm8gLSB0aGUgYmxvY2sgdG8gY2hlY2sgdGhlIHBlcnNtaXNzaW9uCgkgKiBAcmV0dXJuIGJvb2xlYW4KCSAqIEBhY2Nlc3MgcHJpdmF0ZQoJICovCglwcml2YXRlIGZ1bmN0aW9uIENoZWNrQmxvY2tQZXJtaXNzaW9uKCYkYmxvY2tJbmZvKQoJewoJCSRhZGR0X2VkaXRvcnMgPSBhcnJheSgpOwoJCSMgY2hlY2sgaWYgdXNlciBoYXMgcGVybWlzc2lvbiB0byBlZGl0IHRoaXMgYmxvY2sKCQlpZigoJGJsb2NrSW5mb1snZWRpdG9yX3VzZXJzJ10gIT0gJycgfHwgJGJsb2NrSW5mb1snZWRpdG9yX2dyb3VwcyddICE9ICcnKQoJCQkmJiAhY2hlY2tfcGVybWlzc2lvbihnZXRfdXNlcmlkKCksICdNYW5hZ2UgQWxsIEFkdmFuY2VkQ29udGVudCBCbG9ja3MnKSkKCQl7CgkJCSRlZGl0b3JHcm91cHMgPSAgJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsJGJsb2NrSW5mb1snZWRpdG9yX2dyb3VwcyddKSk7CgkJCSRlZGl0b3JVc2VycyAgPSAgJHRoaXMtPkNsZWFuQXJyYXkoZXhwbG9kZSgnLCcsJGJsb2NrSW5mb1snZWRpdG9yX3VzZXJzJ10pKTsKCQkJZm9yZWFjaCAoJHRoaXMtPl9hbGxHcm91cHMgYXMgJG9uZUdyb3VwKQoJCQl7CgkJCQlpZihpbl9hcnJheSgkb25lR3JvdXAtPm5hbWUsJGVkaXRvckdyb3VwcykpCgkJCQl7CgkJCQkJJGFkZHRfZWRpdG9yc1tdID0gJG9uZUdyb3VwLT5pZCotMTsKCQkJCX0KCQkJfQoJCQkKCQkJZm9yZWFjaCAoJHRoaXMtPl9hbGxVc2VycyBhcyAkb25lVXNlcikKCQkJewoJCQkJaWYoaW5fYXJyYXkoJG9uZVVzZXItPnVzZXJuYW1lLCRlZGl0b3JVc2VycykpCgkJCQl7CgkJCQkJJGFkZHRfZWRpdG9yc1tdID0gJG9uZVVzZXItPmlkOwoJCQkJfQoJCQl9CgkJCQoJCQlpZighaW5fYXJyYXkoZ2V0X3VzZXJpZCgpLCRhZGR0X2VkaXRvcnMpCgkJCQkmJiAhY291bnQoYXJyYXlfaW50ZXJzZWN0KCR0aGlzLT5HZXRVc2VyR3JvdXBzKCksJGFkZHRfZWRpdG9ycykpKQoJCQl7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgkKCQoJLyoqCgkgKiBjaGVja3MgaWYgYSB2YXIgaXMgcmVhbGx5IGVtcHR5LiAKCSAqIGlmIHZhciBpcyBhbiBhcnJheSBpdCByZWN1cnNpdmxleSBjaGVja3MgYWxsIGVsZW1lbnRzCgkgKgoJICogQHBhcmFtIG1peGVkICR2YXIgLSB0aGUgdmFyIHRvIGNoZWNrIGZvciBlbXB0eSB2YWx1ZShzKQoJICogQHBhcmFtIGJvb2xlYW4gJHRyaW0gLSB0cnVlIHRvIHRyaW0gb2ZmIHNwYWNlcwoJICogQHBhcmFtIGJvb2xlYW4gJHVuc2V0RW1wdHlJbmRleGVzIC0gdHJ1ZSB0byBkZWxldGUgZW1wdHkgZWxlbWVudHMgZnJvbSBhcnJheQoJICogQHJldHVybiBib29sZWFuIC0gdHJ1ZSBpZiBlbXB0eSwgZmFsc2UgaWYgbm90CgkgKi8KCWZ1bmN0aW9uIElzVmFyRW1wdHkoJiR2YXIsICR0cmltID0gdHJ1ZSwgJHVuc2V0RW1wdHlJbmRleGVzID0gZmFsc2UpCgl7CgkJaWYgKGlzX2FycmF5KCR2YXIpKQoJCXsKCQkJZm9yZWFjaCAoJHZhciBhcyAkaz0+JHYpCgkJCXsKCQkJCWlmICghJHRoaXMtPklzVmFyRW1wdHkoJHYpKQoJCQkJewoJCQkJCXJldHVybiBmYWxzZTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlpZigkdW5zZXRFbXB0eUluZGV4ZXMpCgkJCQkJewoJCQkJCQl1bnNldCgkdmFyWyRrXSk7CgkJCQkJfQoJCQkJCXJldHVybiB0cnVlOwoJCQkJfQoJCQl9CgkJfQoJCWVsc2UgaWYoJHRyaW0gJiYgdHJpbSgkdmFyKSA9PSAnJykKCQl7CgkJCXJldHVybiB0cnVlOwoJCX0KCQllbHNlIGlmKCR2YXIgPT0gJycpCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfQoJCgkKCS8qKgoJICogZnVuY3Rpb24gQ2xlYW5BcnJheSgkYXJyYXkpCgkgKiBub3QgcGFydCBvZiB0aGUgbW9kdWxlIGFwaQoJICogcmVtb3ZlcyBlbXB0eSBlbGVtZW50cyBmcm9tIGFuIGFycmF5CgkgKiAoY2FuIGJlIHVzZWZ1bCB3aGVuIHVzaW5nIGZ1bmN0aW9uIGV4cGxvZGUgdG8gY3JlYXRlIHRoZSBhcnJheSBvZiBhIGNzdikKCSAqCgkgKiBAcGFyYW0gYXJyYXkgJGFycmF5IC0gdGhlIGFycmF5IHRvIGNsZWFuIHVwCgkgKiBAcmV0dXJuIGFycmF5IC0gYW4gYXJyYXkgd2l0aG91dCBlbXB0eSBlbGVtZW50cyBvciBhbiBlbXB0eSBhcnJheQoJICovCglmdW5jdGlvbiBDbGVhbkFycmF5KCRhcnJheSkKCXsKCQlpZiAoIWlzX2FycmF5KCRhcnJheSkpCgkJewoJCQlyZXR1cm4gYXJyYXkoKTsKCQl9CgkJZm9yZWFjaCAoJGFycmF5IGFzICRrPT4kdikKCQl7CgkJCWlmICgkdGhpcy0+SXNWYXJFbXB0eSgkdix0cnVlLHRydWUpKQoJCQl7CgkJCQl1bnNldCgkYXJyYXlbJGtdKTsKCQkJfQoJCQllbHNlIGlmKGlzX2FycmF5KCR2KSkKCQkJewoJCQkJJHYgPSAkdGhpcy0+Q2xlYW5BcnJheSgkdik7CgkJCQlpZigkdGhpcy0+SXNWYXJFbXB0eSgkdix0cnVlLHRydWUpKQoJCQkJewoJCQkJCXVuc2V0KCRhcnJheVska10pOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRhcnJheVska10gPSAkdjsKCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gJGFycmF5OwoJfQoJCgkKCS8qKgoJICogY2hlY2tzIGlmIGEgdmFsdWUgaXMgcmVhbGx5IG1lYW50IHRvIGJlICJ0cnVlIgoJICoKCSAqIEBwYXJhbSBtaXhlZCAkdmFsdWUgLSB0aGUgdmFsdWUgdG8gY2hlY2sKCSAqIEByZXR1cm4gYm9vbAoJICovCglmdW5jdGlvbiBJc1RydWUoJHZhbHVlKQoJewoJCXJldHVybiAoc3RydG9sb3dlcigkdmFsdWUpID09PSAndHJ1ZScgfHwgJHZhbHVlID09PSAxIHx8ICR2YWx1ZSA9PT0gJzEnIHx8ICR2YWx1ZSA9PT0gdHJ1ZSk7Cgl9CgkKCQoJLyoqCgkgKiBjaGVja3MgaWYgYSB2YWx1ZSBpcyByZWFsbHkgbWVhbnQgdG8gYmUgImZhbHNlIgoJICoKCSAqIEBwYXJhbSBtaXhlZCAkdmFsdWUgLSB0aGUgdmFsdWUgdG8gY2hlY2sKCSAqIEByZXR1cm4gYm9vbAoJICovCglmdW5jdGlvbiBJc0ZhbHNlKCR2YWx1ZSkKCXsKCQlyZXR1cm4gKHN0cnRvbG93ZXIoJHZhbHVlKSA9PT0gJ2ZhbHNlJyB8fCAkdmFsdWUgPT09ICcwJyB8fCAkdmFsdWUgPT09IDAgfHwgJHZhbHVlID09PSBmYWxzZSB8fCAkdmFsdWUgPT09ICcnKTsKCX0KCQoJCgkvKioKCSAqIENoZWNrcyBpZiBhIGZyb250ZW5kIHVzZXIgaXMgbG9nZ2VkIGluIGFuZCBiZWxvbmdzIHRvIGEgY2VydGFpbiBncm91cAoJICoKCSAqIEBwYXJhbSBhcnJheXxzdHJpbmcgJGZldV9ncm91cHMgLSB0aGUgYWxsb3dlZCBmcm9udGVuZCB1c2VyIGdyb3VwcyB0aGUgdXNlciBzaG91bGQgYmVsb25nIHRvIChhcnJheSBvciBjc3YpCgkgKiBAcmV0dXJuIGJvb2wKCSAqLwoJZnVuY3Rpb24gQ2hlY2tGcm9udGVuZEFjY2VzcygkZmV1X2dyb3VwcykKCXsKCQkkYWNjZXNzID0gdHJ1ZTsKCQlpZighaXNfYXJyYXkoJGZldV9ncm91cHMpKQoJCXsKCQkJJGZldV9ncm91cHMgPSAkdGhpcy0+Q2xlYW5BcnJheShleHBsb2RlKCcsJywkZmV1X2dyb3VwcykpOwoJCX0KCQlpZiggJGZldXNlcnMgPSYgY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJykgJiYgIWVtcHR5KCRmZXVfZ3JvdXBzKSkKCQl7CgkJCSRhY2Nlc3MgPSBmYWxzZTsKCQkJJHVzZXJpZCA9ICRmZXVzZXJzLT5Mb2dnZWRJbklkKCk7CgkJCWlmKCR1c2VyaWQgJiYgJGdyb3VwcyA9JiAkdGhpcy0+R2V0RmV1R3JvdXBzKCR1c2VyaWQpKQoJCQl7CgkJCQlmb3JlYWNoKCRncm91cHMgYXMgJG9uZWdyb3VwKQoJCQkJewoJCQkJCSNpZihpbl9hcnJheSgkb25lZ3JvdXBbJ2dyb3VwaWQnXSwkZmV1X2dyb3VwcykgfHwgaW5fYXJyYXkoJG9uZWdyb3VwWydncm91cG5hbWUnXSwkZmV1X2dyb3VwcykpCgkJCQkJaWYoaW5fYXJyYXkoJG9uZWdyb3VwWydncm91cGlkJ10sJGZldV9ncm91cHMpKQoJCQkJCXsKCQkJCQkJJGFjY2VzcyA9IHRydWU7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gJGFjY2VzczsKCX0KCQoJCgkvKioKCSAqIEp1c3QgZ2V0cyBhbGwgZnJvbnRlbmQgdXNlciBncm91cHMgYSBmcm9udGVuZCB1c2VyIGJlbG9uZ3MgdG8KCSAqIGFuZCBjYWNoZXMgdGhlbSBpbiBhIG1lbWJlciB2YXJpYWJsZQoJICoKCSAqIEBwYXJhbSBpbnQgJHVzZXJpZCAtIHRoZSBpZCBvZiB0aGUgdXNlcgoJICogQHJldHVybiBhcnJheQoJICovCglwcml2YXRlIGZ1bmN0aW9uICZHZXRGZXVHcm91cHMoJHVzZXJpZCkKCXsKCQlpZighJHVzZXJpZCkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJaWYoICRmZXVzZXJzID0mIGNtc191dGlsczo6Z2V0X21vZHVsZSgnRnJvbnRFbmRVc2VycycpICYmICEkdGhpcy0+X2ZldUdyb3VwcykKCQl7CgkJCSR0aGlzLT5fZmV1R3JvdXBzID0gJGZldXNlcnMtPkdldE1lbWJlckdyb3Vwc0FycmF5KCR1c2VyaWQpOwoJCX0KCQlyZXR1cm4gJHRoaXMtPl9mZXVHcm91cHM7Cgl9CgkKCQoJLyoqCgkgKiBDaGVja3MgaWYgYSBmcm9udGVuZCB1c2VyIGhhcyBhY2Nlc3MgdG8gYSBwYWdlCgkgKgoJICogQHJldHVybiBib29sZWFuCgkgKi8KCWZ1bmN0aW9uIENoZWNrRnJvbnRlbmRQYWdlQWNjZXNzKCkKCXsKCQlpZigkdGhpcy0+X2ZldUFjY2VzcyA9PSAtMSkKCQl7CgkJCSR0aGlzLT5fZmV1QWNjZXNzID0gJHRoaXMtPkNoZWNrRnJvbnRlbmRBY2Nlc3MoJHRoaXMtPkdldFByb3BlcnR5KCdmZXVfYWNjZXNzJykpOwoJCX0KCQlyZXR1cm4gJHRoaXMtPl9mZXVBY2Nlc3M7Cgl9CgkKCQoJLyoqCgkgKiBQZXJmb3JtIHRoZSBzZWxlY3RlZCBhY3Rpb24gaWYgYSBwYWdlIGlzIGFjY2Vzc2VkIHdoZXJlIHRoZSB1c2VyIGhhcyBubyBhY2Nlc3MKCSAqLwoJZnVuY3Rpb24gRG9Gcm9udGVuZFBhZ2VBY3Rpb24oKQoJewoJCWlmKCAkZmV1c2VycyA9JiBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0Zyb250RW5kVXNlcnMnICkpCgkJewoJCQkkcmVkaXJlY3RQYWdlID0gJHRoaXMtPkdldFByb3BlcnR5KCdyZWRpcmVjdF9wYWdlJyk7CgkJCWlmKCRyZWRpcmVjdFBhZ2UgPT0gJHRoaXMtPm1JZCB8fCAkcmVkaXJlY3RQYWdlID09ICR0aGlzLT5tQWxpYXMpCgkJCXsKCQkJCSRyZWRpcmVjdFBhZ2UgPSAnJzsKCQkJfQoJCQkkZmV1QWN0aW9uID0gJHRoaXMtPkdldFByb3BlcnR5KCdmZXVfYWN0aW9uJyk7CgkJCWlmKCEkcmVkaXJlY3RQYWdlKQoJCQl7CgkJCQlpZigkZmV1QWN0aW9uICYmICEkdGhpcy0+X2ZldUFjdGlvbikKCQkJCXsKCQkJCQkkdGhpcy0+X2ZldUFjdGlvbiA9IHRydWU7CgkJCQkJcmV0dXJuICRmZXVzZXJzLT5Eb0FjdGlvbignZGVmYXVsdCcsICdjbnRudDAxJywgYXJyYXkoJ2Zvcm0nPT4nbG9naW4nKSwgJHRoaXMtPm1JZCk7CgkJCQl9CgkJCQlyZXR1cm47CgkJCX0KCQkJJHBhdHRlcm4gPSAnLyhbXHddKyk9KFsiXVteIl0qWyJdfFtcJ11bXlwnXSpbXCddfFteXCciXHNdKikvJzsKCQkJaWYoISR0aGlzLT5HZXRQcm9wZXJ0eVZhbHVlKCdpbmhlcml0X3JlZGlyZWN0X3BhcmFtcycpKQoJCQl7CgkJCQkkcmVkaXJlY3RQYXJhbXMgPSAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgncmVkaXJlY3RfcGFyYW1zJyk7CgkJCQkkZXZhbHVhdGVTbWFydHkgPSAkdGhpcy0+R2V0UHJvcGVydHlWYWx1ZSgnZXZhbHVhdGVfc21hcnR5Jyk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkcmVkaXJlY3RQYXJhbXMgPSAkdGhpcy0+SW5oZXJpdFBhcmVudFByb3AoJ3JlZGlyZWN0X3BhcmFtcycpOwoJCQkJJGV2YWx1YXRlU21hcnR5ID0gJHRoaXMtPkluaGVyaXRQYXJlbnRQcm9wKCdldmFsdWF0ZV9zbWFydHknKTsKCQkJfQoJCQlpZigkZXZhbHVhdGVTbWFydHkpCgkJCXsKCQkJCSRyZWRpcmVjdFBhcmFtcyA9ICRmZXVzZXJzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkcmVkaXJlY3RQYXJhbXMpOwoJCQl9CgkJCQoJCQkkbWF0Y2hlcyAgPSBhcnJheSgpOwoJCQkkcmVzdWx0ICAgPSBwcmVnX21hdGNoX2FsbCgkcGF0dGVybiwgJHJlZGlyZWN0UGFyYW1zLCAkbWF0Y2hlcyk7CgkJCSRfcGFyYW1zMSA9IGFycmF5KCk7CgkJCSRfcGFyYW1zMiA9IGFycmF5KCk7CgkJCWZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRtYXRjaGVzWzFdKTsgJGkrKykKCQkJewoJCQkJaWYoc3RhcnRzd2l0aCgkbWF0Y2hlc1syXVskaV0sJ1wnJykpCgkJCQl7CgkJCQkJJG1hdGNoZXNbMl1bJGldID0gdHJpbSgkbWF0Y2hlc1syXVskaV0sJ1wnJyk7CgkJCQl9CgkJCQllbHNlIGlmKHN0YXJ0c3dpdGgoJG1hdGNoZXNbMl1bJGldLCciJykpCgkJCQl7CgkJCQkJJG1hdGNoZXNbMl1bJGldID0gdHJpbSgkbWF0Y2hlc1syXVskaV0sJyInKTsKCQkJCX0KCQkJCSRfcGFyYW1zMVskbWF0Y2hlc1sxXVskaV1dID0gJG1hdGNoZXNbMl1bJGldOwoJCQkJJF9wYXJhbXMyW10gICAgICAgICAgICAgICAgPSAkbWF0Y2hlc1sxXVskaV0gLiAnPScgLiAkbWF0Y2hlc1syXVskaV07CgkJCX0KCQkJaWYoJGZldUFjdGlvbikKCQkJewoJCQkJcmV0dXJuICRmZXVzZXJzLT5SZWRpcmVjdEZvckZyb250RW5kKCdjbnRudDAxJywgJHJlZGlyZWN0UGFnZSwgJ2RlZmF1bHQnLCAkX3BhcmFtczEsIGZhbHNlKTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRtYW5hZ2VyID0mIGNtc21zKCktPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKCQkJCSRub2RlICAgID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcmVkaXJlY3RQYWdlKTsKCQkJCWlmKCFpc19vYmplY3QoJG5vZGUpKQoJCQkJewoJCQkJCXJldHVybjsKCQkJCX0KCQkJCSRjb250ZW50ID0mICRub2RlLT5HZXRDb250ZW50KCk7CgkJCQlpZiAoIWlzX29iamVjdCgkY29udGVudCkgfHwgISR1cmwgPSAkY29udGVudC0+R2V0VVJMKCkpCgkJCQl7CgkJCQkJcmV0dXJuOwoJCQkJfQoJCQkJZ2xvYmFsICRjb25maWc7CgkJCQkkdXJsID0gdHJpbShzdHJfcmVwbGFjZSgKCQkJCQlhcnJheSgkY29uZmlnWydyb290X3VybCddIC4gJy9pbmRleC5waHAnLAoJCQkJCQkkY29uZmlnWydzc2xfdXJsJ10gLiAnL2luZGV4LnBocCcsCgkJCQkJCSRjb25maWdbJ3Jvb3RfdXJsJ10sCgkJCQkJCSRjb25maWdbJ3NzbF91cmwnXSksCgkJCQkJJycsICR1cmwpLCcvPycpOwoJCQkJCgkJCQlpZighZW1wdHkoJF9wYXJhbXMxKSAmJiAhZW1wdHkoJF9wYXJhbXMyKSkKCQkJCXsKCQkJCQlpZigkY29uZmlnWyd1cmxfcmV3cml0aW5nJ10gPT0gJ25vbmUnKQoJCQkJCXsKCQkJCQkJaWYoJGNvbnRlbnQtPlNlY3VyZSgpKQoJCQkJCQl7CgkJCQkJCQkkdXJsID0gJGNvbmZpZ1snc3NsX3VybCddIC4gJy9pbmRleC5waHA/JyAuIGltcGxvZGUoJyYnLCRfcGFyYW1zMikgLiAnJicgLiAkdXJsOwoJCQkJCQl9CgkJCQkJCWVsc2UKCQkJCQkJewoJCQkJCQkJJHVybCA9ICRjb25maWdbJ3Jvb3RfdXJsJ10gLiAnL2luZGV4LnBocD8nIC4gaW1wbG9kZSgnJicsJF9wYXJhbXMyKSAuICcmJyAuICR1cmw7CgkJCQkJCX0KCQkJCQl9CgkJCQkJZWxzZSBpZigkY29uZmlnWyd1cmxfcmV3cml0aW5nJ10gPT0gJ2ludGVybmFsJykKCQkJCQl7CgkJCQkJCWlmKCRjb250ZW50LT5TZWN1cmUoKSkKCQkJCQkJewoJCQkJCQkJJHVybCA9ICRjb25maWdbJ3NzbF91cmwnXSAuICcvaW5kZXgucGhwLycgLiBpbXBsb2RlKCcvJywkX3BhcmFtczEpIC4gJy8nIC4gJHVybDsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCSR1cmwgPSAkY29uZmlnWydyb290X3VybCddIC4gJy9pbmRleC5waHAvJyAuIGltcGxvZGUoJy8nLCRfcGFyYW1zMSkgLiAnLycgLiAkdXJsOwoJCQkJCQl9CgkJCQkJCWlmKCRjb250ZW50LT5EZWZhdWx0Q29udGVudCgpKQoJCQkJCQl7CgkJCQkJCQkkdXJsIC49ICRjb250ZW50LT5BbGlhcygpIC4gJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXTsKCQkJCQkJfQoJCQkJCX0KCQkJCQllbHNlIGlmKCRjb25maWdbJ3VybF9yZXdyaXRpbmcnXSA9PSAnbW9kX3Jld3JpdGUnKQoJCQkJCXsKCQkJCQkJaWYoJGNvbnRlbnQtPlNlY3VyZSgpKQoJCQkJCQl7CgkJCQkJCQkkdXJsID0gJGNvbmZpZ1snc3NsX3VybCddIC4gJy8nIC4gaW1wbG9kZSgnLycsJF9wYXJhbXMxKSAuICcvJyAuICR1cmw7CgkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQl7CgkJCQkJCQkkdXJsID0gJGNvbmZpZ1sncm9vdF91cmwnXSAuICcvJyAuIGltcGxvZGUoJy8nLCRfcGFyYW1zMSkgLiAnLycgLiAkdXJsOwoJCQkJCQl9CgkJCQkJCWlmKCRjb250ZW50LT5EZWZhdWx0Q29udGVudCgpKQoJCQkJCQl7CgkJCQkJCQkkdXJsIC49ICRjb250ZW50LT5BbGlhcygpIC4gJGNvbmZpZ1sncGFnZV9leHRlbnNpb24nXTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXJldHVybiByZWRpcmVjdCgkdXJsKTsKCQkJfQoJCX0KCX0KCQoJCgkvKioKCSogSnVzdCBhIHdyYXBwZXIgdG8gZ2V0IGEgbW9kdWxlIGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZQoJICoKCSAqIEBwYXJhbSBzdHJpbmcgJG1vZHVsZV9uYW1lIC0gdGhlIGV4YWN0IG5hbWUgb2YgdGhlIG1vZHVsZSAoY2FzZSBzZW5zaXRpdmUpCgkgKiBAcGFyYW0gc3RyaW5nICRtb2R1bGVfdmVyc2lvbiAob3B0aW9uYWwpIC0gdGhlIG1pbmltdW0gdmVyc2lvbiBvZiB0aGUgbW9kdWxlCgkgKiBAcmV0dXJuIG9iamVjdAoJICovCglmdW5jdGlvbiAmZ2V0X21vZHVsZSgkbW9kdWxlX25hbWUsJG1vZHVsZV92ZXJzaW9uID0gJycpCgl7CgkJcmV0dXJuIGNtc191dGlsczo6Z2V0X21vZHVsZSgkbW9kdWxlX25hbWUsICRtb2R1bGVfdmVyc2lvbik7Cgl9CgkKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/.htaccess</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PEZpbGVzICouY3NzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIG9yZGVyIGRlbnksYWxsb3cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBhbGxvdyBmcm9tIGFsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L0ZpbGVzPgo=]]></data>
	</file>
	<file>
	  <filename>/css/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/css/jpicker.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[77u/LmpQaWNrZXIgLkljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI0cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjI1cHh9LmpQaWNrZXIgLkljb24gc3Bhbi5Db2xvciwualBpY2tlciAuSWNvbiBzcGFuLkFscGhhe2JhY2tncm91bmQtcG9zaXRpb246MnB4IDJweDtkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5qUGlja2VyIC5JY29uIHNwYW4uSW1hZ2V7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCV9LmpQaWNrZXIuQ29udGFpbmVye2NvbG9yOiMwMDA7ei1pbmRleDoxMH10YWJsZS5qUGlja2Vye2JhY2tncm91bmQtY29sb3I6I2VmZWZlZjtib3JkZXI6MXB4IG91dHNldCAjNjY2O2ZvbnQtZmFtaWx5OkFyaWFsLEhlbHZldGljYSxTYW5zLVNlcmlmO2ZvbnQtc2l6ZToxMnB4IWltcG9ydGFudDttYXJnaW46MDtwYWRkaW5nOjVweDt3aWR0aDo1NDVweDt6LWluZGV4OjIwfS5qUGlja2VyIC5Nb3Zle2JhY2tncm91bmQtY29sb3I6I2RkZDtib3JkZXItY29sb3I6I2ZmZiAjNjY2ICM2NjYgI2ZmZjtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDtjdXJzb3I6bW92ZTtoZWlnaHQ6MTJweDtwYWRkaW5nOjB9LmpQaWNrZXIgLlRpdGxle2ZvbnQtc2l6ZToxMXB4IWltcG9ydGFudDtmb250LXdlaWdodDpib2xkO21hcmdpbjotMnB4IDAgMCAwO3BhZGRpbmc6MTBweCAwIDAgMDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS5qUGlja2VyIGRpdi5NYXB7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2ZmZjtib3JkZXItbGVmdDoycHggc29saWQgIzlhOWE5YTtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDoycHggc29saWQgIzlhOWE5YTtjdXJzb3I6Y3Jvc3NoYWlyO2hlaWdodDoyNjBweDttYXJnaW46MCAxMHB4IDEwcHggMTBweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjI2MHB4fS5qUGlja2VyIGRpdltjbGFzcz0iTWFwIl17aGVpZ2h0OjI1NnB4O3dpZHRoOjI1NnB4fS5qUGlja2VyIGRpdi5CYXJ7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2ZmZjtib3JkZXItbGVmdDoycHggc29saWQgIzlhOWE5YTtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICNmZmY7Ym9yZGVyLXRvcDoycHggc29saWQgIzlhOWE5YTtjdXJzb3I6bi1yZXNpemU7aGVpZ2h0OjI2MHB4O21hcmdpbjoxMnB4IDEwcHggMCA1cHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyNHB4fS5qUGlja2VyIGRpdltjbGFzcz0iQmFyIl17aGVpZ2h0OjI1NnB4O3dpZHRoOjIwcHh9LmpQaWNrZXIgLk1hcCAuTWFwMSwualBpY2tlciAuTWFwIC5NYXAyLC5qUGlja2VyIC5NYXAgLk1hcDMsLmpQaWNrZXIgLkJhciAuTWFwMSwualBpY2tlciAuQmFyIC5NYXAyLC5qUGlja2VyIC5CYXIgLk1hcDMsLmpQaWNrZXIgLkJhciAuTWFwNCwualBpY2tlciAuQmFyIC5NYXA1LC5qUGlja2VyIC5CYXIgLk1hcDZ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7ZGlzcGxheTpibG9jaztsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9LmpQaWNrZXIgLk1hcCAuTWFwMSwualBpY2tlciAuTWFwIC5NYXAyLC5qUGlja2VyIC5NYXAgLk1hcDN7aGVpZ2h0OjI1OTZweDt3aWR0aDoyNTZweH0ualBpY2tlciAuQmFyIC5NYXAxLC5qUGlja2VyIC5CYXIgLk1hcDIsLmpQaWNrZXIgLkJhciAuTWFwMywualBpY2tlciAuQmFyIC5NYXA0e2hlaWdodDozODk2cHg7d2lkdGg6MjBweH0ualBpY2tlciAuQmFyIC5NYXA1LC5qUGlja2VyIC5CYXIgLk1hcDZ7aGVpZ2h0OjI1NnB4O3dpZHRoOjIwcHh9LmpQaWNrZXIgLk1hcCAuTWFwMSwualBpY2tlciAuTWFwIC5NYXAyLC5qUGlja2VyIC5CYXIgLk1hcDZ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5qUGlja2VyIC5NYXAgLk1hcDMsLmpQaWNrZXIgLkJhciAuTWFwNXtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXR9LmpQaWNrZXIgLkJhciAuTWFwMSwualBpY2tlciAuQmFyIC5NYXAyLC5qUGlja2VyIC5CYXIgLk1hcDMsLmpQaWNrZXIgLkJhciAuTWFwNHtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ualBpY2tlciAuTWFwIC5BcnJvd3tkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlfS5qUGlja2VyIC5CYXIgLkFycm93e2Rpc3BsYXk6YmxvY2s7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlfS5qUGlja2VyIC5QcmV2aWV3e2ZvbnQtc2l6ZTo5cHg7cGFkZGluZzo1cHggMCAwIDA7dGV4dC1hbGlnbjpjZW50ZXJ9LmpQaWNrZXIgLlByZXZpZXcgZGl2e2JvcmRlcjoycHggaW5zZXQgI2VlZTtoZWlnaHQ6NjJweDttYXJnaW46MCBhdXRvO3BhZGRpbmc6MDt3aWR0aDo2MnB4fS5qUGlja2VyIC5QcmV2aWV3IGRpdiBzcGFue2JvcmRlcjoxcHggc29saWQgIzAwMDtkaXNwbGF5OmJsb2NrO2hlaWdodDozMHB4O21hcmdpbjowIGF1dG87cGFkZGluZzowO3dpZHRoOjYwcHh9LmpQaWNrZXIgLlByZXZpZXcgLkFjdGl2ZXtib3JkZXItYm90dG9tLXdpZHRoOjB9LmpQaWNrZXIgLlByZXZpZXcgLkN1cnJlbnR7Ym9yZGVyLXRvcC13aWR0aDowO2N1cnNvcjpwb2ludGVyfS5qUGlja2VyIGlucHV0e2ZvbnQtc2l6ZToxM3B4fS5qUGlja2VyIC5CdXR0b257dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDRweDt3aWR0aDoxMTVweH0ualBpY2tlciAuQnV0dG9uIGlucHV0e3BhZGRpbmc6MnB4IDA7d2lkdGg6MTAwcHh9LmpQaWNrZXIgLkJ1dHRvbiAuT2t7bWFyZ2luOjEycHggMCA1cHggMH0ualBpY2tlciB0ZHttYXJnaW46MDtwYWRkaW5nOjB9LmpQaWNrZXIgdGQuUmFkaW97bWFyZ2luOjA7cGFkZGluZzowO3dpZHRoOjMxcHh9LmpQaWNrZXIgdGQuUmFkaW8gaW5wdXR7bWFyZ2luOjAgNXB4IDAgMDtwYWRkaW5nOjB9LmpQaWNrZXIgdGQuVGV4dHtmb250LXNpemU6MTJweCFpbXBvcnRhbnQ7aGVpZ2h0OjIycHg7bWFyZ2luOjA7cGFkZGluZzowO3RleHQtYWxpZ246bGVmdDt3aWR0aDo3MHB4fS5qUGlja2VyIHRyLkhleCB0ZC5UZXh0e3dpZHRoOjEwMHB4fS5qUGlja2VyIHRkLlRleHQgaW5wdXR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggaW5zZXQgI2FhYTtoZWlnaHQ6MTlweDttYXJnaW46MCAwIDAgNXB4O3RleHQtYWxpZ246bGVmdDt3aWR0aDozMHB4fS5qUGlja2VyIHRkW2NsYXNzPSJUZXh0Il0gaW5wdXR7aGVpZ2h0OjE1cHh9LmpQaWNrZXIgdHIuSGV4IHRkLlRleHQgaW5wdXQuSGV4e3dpZHRoOjUwcHh9LmpQaWNrZXIgdHIuSGV4IHRkLlRleHQgaW5wdXQuQUhleHt3aWR0aDoyMHB4fS5qUGlja2VyIC5Hcmlke3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjExNHB4fS5qUGlja2VyIC5HcmlkIHNwYW4uUXVpY2tDb2xvcntib3JkZXI6MXB4IGluc2V0ICNhYWE7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE1cHg7bGluZS1oZWlnaHQ6MTVweDttYXJnaW46MDtwYWRkaW5nOjA7d2lkdGg6MTlweH0ualBpY2tlciAuR3JpZCBzcGFuW2NsYXNzPSJRdWlja0NvbG9yIl17d2lkdGg6MTdweH3vu7/vu79AbWVkaWEgYWxseyNqUGlja2Vye21hcmdpbjowcHggOHB4O3RleHQtYWxpZ246bGVmdDt9I2pQaWNrZXIgdWx7Zm9udC1zaXplOjE1cHg7bWFyZ2luOjBweCAwcHggMHB4IDE1cHg7cGFkZGluZzowcHg7fSNqUGlja2VyIHVsIGxpe2xpc3Qtc3R5bGU6ZGlzYztwYWRkaW5nOjJweCAwcHg7fSNqUGlja2VyIHVsIGxpIHVse21hcmdpbi1ib3R0b206MTBweDt9I2pQaWNrZXIgdWwgbGkgdWwgbGl7bGlzdC1zdHlsZTpjaXJjbGU7fSNqUGlja2VyIHB7Zm9udC1zaXplOjEzcHg7cGFkZGluZzowcHggMTBweDt9I2pQaWNrZXIgaHJ7Y2xlYXI6Ym90aDt9I2pQaWNrZXIgaDIualBpY2tlcntmb250LXNpemU6MTZweDtwYWRkaW5nOjIwcHggMTBweDt9I2pQaWNrZXIgY29kZXtjb2xvcjojOGJkO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7fSNqUGlja2VyIHByZXtiYWNrZ3JvdW5kOiNlZWU7Ym9yZGVyOjFweCBzb2xpZCAjMDAwO2NvbG9yOiMwMDA7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTFweDttYXJnaW46MTBweCA1cHg7cGFkZGluZzogNXB4O30jalBpY2tlciBzcGFue2ZvbnQtc2l6ZToxM3B4O3RleHQtYWxpZ246Y2VudGVyO30jalBpY2tlciBhe2NvbG9yOiNmZjgwNTA7fSNqUGlja2VyIGlucHV0e2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6MnB4IDVweDt9I2pQaWNrZXIgaDJ7Zm9udC1zaXplOjE2cHg7bWFyZ2luOjEwcHggMHB4O319]]></data>
	</file>
	<file>
	  <filename>/css/style.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LnNvcnRhYmxlX2hhbmRsZXI6aG92ZXIgewoJY3Vyc29yIDogbW92ZTsKfQoKLnNvcnRhYmxlX2hhbmRsZXIgewoJbWFyZ2luOjAgNXB4IDAgMDsKCXZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsKfQoKLnNvcnRhYmxlX3dyYXBwZXIgaW5wdXQgewoJbWFyZ2luOjAgNXB4IDAgMDsKfQoKLnNvcnRhYmxlIHsKCWxpbmUtaGVpZ2h0OiAyMDAlOwoJcGFkZGluZzogMCAwIDAgNXB4Owp9CgpkaXYucGFnZW92ZXJmbG93LkFkdmFuY2VkQ29udGVudF9Db250ZW50QmxvY2sgewoJd2lkdGg6IDEwMCU7Cn0KCmxlZ2VuZC5BZHZhbmNlZENvbnRlbnRfQ29udGVudEJsb2NrLApsZWdlbmQuQWR2YW5jZWRDb250ZW50X0Jsb2NrR3JvdXAgewoJcGFkZGluZy1ib3R0b206IDA7CglwYWRkaW5nLXRvcDogMDsKCW1hcmdpbi1ib3R0b206IDA7CgltYXJnaW4tdG9wOiAwOwoJZm9udC1zaXplOiAxMDAlOwp9CgoKZGl2I3BhZ2VfdGFicyBkaXYuU3ViVGFiV3JhcHBlciB7CgliYWNrZ3JvdW5kOnRyYW5zcGFyZW50OwoJYm9yZGVyOm5vbmU7CgljdXJzb3I6YXV0bzsKCWZsb2F0Om5vbmU7CgltYXJnaW46MHB4OwoJcGFkZGluZzowcHg7Cn0KCi8qIENhbGVuZGFyICovCi5jYWxlbmRhclRyaWdnZXI6aG92ZXIgewoJY3Vyc29yOiBwb2ludGVyOwp9CgpkaXYuY2FsZW5kYXIKewogIGZvbnQtc2l6ZTogc21hbGxlcjsKICBjb2xvcjogIzNlM2UzZTsKfQoKZGl2LmNhbGVuZGFyLnBvcHVwCnsKICBtYXJnaW4tbGVmdDogLTQwcHg7CiAgbWFyZ2luLXRvcDogLTEwMHB4OwogIHotaW5kZXg6IDk5OTk7CiAgYm94LXNoYWRvdzoycHggMnB4IDdweCAjNjY2NjY2Owp9CgpkaXYuY2FsZW5kYXIgdGFibGUKewogIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTsKICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOwogIGJvcmRlci1zcGFjaW5nOiAxcHg7Cn0KCmRpdi5jYWxlbmRhciB0aGVhZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKfQoKZGl2LmNhbGVuZGFyIHRkLApkaXYuY2FsZW5kYXIgdGgKewogIHBhZGRpbmc6IDJweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCmRpdi5jYWxlbmRhciB0ZC50aXRsZQp7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgY29sb3I6ICNlOGE4MDA7Cn0KCmRpdi5jYWxlbmRhciB0aAp7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KCmRpdi5jYWxlbmRhciB0ci5kYXlzIHRkIHsKICB3aWR0aDogMmVtOwogIGNvbG9yOiAjM2Q2MGJhOwogIHRleHQtYWxpZ246IHJpZ2h0OwogIGN1cnNvcjogcG9pbnRlcjsKICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1Owp9CgpkaXYuY2FsZW5kYXIgdHIuZGF5cyB0ZDpob3ZlciwKZGl2LmNhbGVuZGFyIHRkLmJ1dHRvbjpob3Zlcgp7CiAgYm9yZGVyLWNvbG9yOiAjZThhODAwOwogIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7CiAgY3Vyc29yOiBwb2ludGVyOwp9CmRpdi5jYWxlbmRhciB0ci5kYXlzIHRkOmhvdmVyCnsKIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7Cn0KCmRpdi5jYWxlbmRhciB0ci5kYXlzIHRkOmFjdGl2ZQpkaXYuY2FsZW5kYXIgdGQuYnV0dG9uOmFjdGl2ZQp7CiAgYmFja2dyb3VuZC1jb2xvcjogI2NkZTsKfQoKZGl2LmNhbGVuZGFyIHRyLmRheXMgdGQuc2VsZWN0ZWQKewogIGZvbnQtd2VpZ2h0OiBib2xkOwogIGJhY2tncm91bmQtY29sb3I6ICNlOGE4MDA7CiAgYm9yZGVyLWNvbG9yOiAjZThhODAwICFpbXBvcnRhbnQ7CiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDsKfQoKZGl2LmNhbGVuZGFyIHRyLmRheXMgdGQud2Vla2VuZCB7Cgljb2xvcjogIzdmOWRlODsKfQoKZGl2LmNhbGVuZGFyIHRyLmRheXMgdGQudG9kYXkKewogIGZvbnQtd2VpZ2h0OiBib2xkOwogIGJvcmRlci1jb2xvcjogIzNkNjBiYTsKfQoKZGl2LmNhbGVuZGFyIHRyLmRheXMgdGQub3RoZXJEYXkKewogIGJhY2tncm91bmQ6ICNlNWU1ZTU7CiAgY29sb3I6ICNmZmY7Cn0KCi8qIE11bHRpIENvbnRlbnQgU3R1ZmYgLi4uIFRvRG8gKi8KI0FkdmFuY2VkQ29udGVudF93cmFwcGVyIHsKCXBvc2l0aW9uIDogZml4ZWQ7CglsZWZ0ICAgICA6IDBweDsKCXRvcCAgICAgIDogMHB4OwoJd2lkdGggICAgOiAxMDAlOwoJaGVpZ2h0ICAgOiAxMDAlOwoJei1pbmRleCAgOiAtOTk5OTsKCWRpc3BsYXkgIDogbm9uZTsKCW9wYWNpdHkgIDogMDsKfQoKI0FkdmFuY2VkQ29udGVudF9iYWNrZ3JvdW5kIHsKCXBvc2l0aW9uICAgICAgICAgOiBmaXhlZDsKCWxlZnQgICAgICAgICAgICAgOiAwcHg7Cgl0b3AgICAgICAgICAgICAgIDogMHB4OwoJd2lkdGggICAgICAgICAgICA6IDEwMCU7CgloZWlnaHQgICAgICAgICAgIDogMTAwJTsKCWJhY2tncm91bmQtY29sb3IgOiAjMDAwOwoJZGlzcGxheSAgICAgICAgICA6IG5vbmU7CglvcGFjaXR5ICAgICAgICAgIDogMDsKfQoKI0FkdmFuY2VkQ29udGVudCB7CgltaW4td2lkdGggICAgICAgICAgOiA2MDBweDsKCXdpZHRoICAgICAgICAgICAgICA6IDYwMHB4OwoJZGlzcGxheSAgICAgICAgICAgIDogbm9uZTsKCW9wYWNpdHkgICAgICAgICAgICA6IDA7CgliYWNrZ3JvdW5kLWNvbG9yICAgOiAjRkZGOwoJbGluZS1oZWlnaHQgICAgICAgIDogMTAwJTsKCW1hcmdpbiAgICAgICAgICAgICA6IGF1dG87CgltYXJnaW4tYm90dG9tICAgICAgOiA1cHg7Cglwb3NpdGlvbiAgICAgICAgICAgOiByZWxhdGl2ZTsKCS1tb3otYm9yZGVyLXJhZGl1cyA6IDEwcHg7Cgktd2Via2l0LWJvcmRlci1yYWRpdXMgOiAxMHB4OwoJYm9yZGVyLXJhZGl1cyAgICAgIDogMTBweDsKCS1tb3otYm94LXNoYWRvdyAgICA6IDAgMCAzMnB4ICMwMDAwMDA7Cgktd2Via2l0LWJveC1zaGFkb3cgOiAwIDAgMzJweCAjMDAwMDAwOwoJYm94LXNoYWRvdyAgICAgICAgIDogMCAwIDMycHggIzAwMDAwMDsKCWhlaWdodCAgICAgICAgICAgICA6IDM2cHg7CgltaW4taGVpZ2h0ICAgICAgICAgOiAzNnB4OwoJb3ZlcmZsb3cgICAgICAgICAgIDogaGlkZGVuOwp9CgojQWR2YW5jZWRDb250ZW50X2NvbnRlbnQgewoJZGlzcGxheSA6IGJsb2NrOwoJb3BhY2l0eSA6IDA7Cn0KCiNBZHZhbmNlZENvbnRlbnRfdGl0bGViYXIgewoJcGFkZGluZyAgICAgICAgICA6IDVweDsKCWNvbG9yICAgICAgICAgICAgOiAjMzMzOwoJYmFja2dyb3VuZC1jb2xvciA6ICNDQ0M7Cn0KCiNBZHZhbmNlZENvbnRlbnRfdGl0bGViYXIgaDMgewoJY3Vyc29yOiBtb3ZlOwogICAgaGVpZ2h0OiAyNnB4OwogICAgbGVmdDogMjZweDsKICAgIGxpbmUtaGVpZ2h0OiAyNnB4OwogICAgbWFyZ2luOiAwOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDA7CiAgICB0b3A6IDA7Cn0KCiNBZHZhbmNlZENvbnRlbnRfbWVudSB7CglwYWRkaW5nOiA1cHggMCA1cHggMDsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXJpZ2h0OiAwOwoJdG9wOiAwOwp9CgojQWR2YW5jZWRDb250ZW50X2Nsb3NlLAojQWR2YW5jZWRDb250ZW50X3JlbG9hZF9kaXIsCiNBZHZhbmNlZENvbnRlbnRfY2xlYXJfY2FjaGUgewoJZGlzcGxheSAgICAgICAgIDogYmxvY2s7CglmbG9hdCAgICAgICAgICAgOiBsZWZ0OwoJaGVpZ2h0ICAgICAgICAgIDogMTZweDsKCW1hcmdpbiAgICAgICAgICA6IDAgNXB4OwoJb3ZlcmZsb3cgICAgICAgIDogaGlkZGVuOwoJdGV4dC1kZWNvcmF0aW9uIDogbm9uZTsKCXRleHQtaW5kZW50ICAgICA6IC05OTllbTsKCXdpZHRoICAgICAgICAgICA6IDE2cHg7Cn0KCiNBZHZhbmNlZENvbnRlbnRfZ290b19yb290IHsKCW92ZXJmbG93ICAgICAgICA6IGhpZGRlbjsKCXRleHQtZGVjb3JhdGlvbiA6IG5vbmU7Cgl0ZXh0LWluZGVudCAgICAgOiAtOTk5ZW07Cgl3aWR0aCAgICAgICAgICAgOiAyMXB4OwoJaGVpZ2h0ICAgICAgICAgIDogMTZweDsKCWRpc3BsYXkgICAgICAgICA6IGJsb2NrOwoJZmxvYXQgICAgICAgICAgIDogbGVmdDsKCW1hcmdpbiAgICAgICAgICA6IDAgNXB4OwoJYmFja2dyb3VuZCAgICAgIDogdXJsKCcuLi9pbWcvZGlyLmdpZicpIG5vLXJlcGVhdCBjZW50ZXI7Cn0KCiNBZHZhbmNlZENvbnRlbnRfY2xvc2UgewoJYmFja2dyb3VuZCA6IHVybCgnLi4vaW1nL2Nsb3NlLnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7Cn0KCiNBZHZhbmNlZENvbnRlbnRfcmVsb2FkX2RpciB7CgliYWNrZ3JvdW5kIDogdXJsKCcuLi9pbWcvcmVsb2FkLnBuZycpIG5vLXJlcGVhdDsKfQoKI0FkdmFuY2VkQ29udGVudF9jbGVhcl9jYWNoZSB7CgliYWNrZ3JvdW5kIDogdXJsKCcuLi9pbWcvY2xlYXJfY2FjaGUucG5nJykgbm8tcmVwZWF0Owp9CgoKI0FkdmFuY2VkQ29udGVudF9oZWFkZXIgZm9ybSBwIHsKCWxpbmUtaGVpZ2h0IDogMTMwJTsKCXBhZGRpbmcgICAgIDogNXB4IDAgMCAwOwp9CgojQWR2YW5jZWRDb250ZW50X2hlYWRlciB7CgltYXJnaW4gICAgICAgICAgIDogMHB4OwoJcGFkZGluZyAgICAgICAgICA6IDBweDsKfQoKI0FkdmFuY2VkQ29udGVudF9oZWFkZXIgZmllbGRzZXQgewoJbWFyZ2luICAgOiA1cHg7CgljbGVhciAgICA6IGJvdGg7CglvdmVyZmxvdyA6IGhpZGRlbjsKfQoKI0FkdmFuY2VkQ29udGVudF9oZWFkZXIgZmllbGRzZXQgbGVnZW5kIHsKCWZvbnQtc2l6ZSAgICAgIDogMTAwJTsKCW1hcmdpbi1ib3R0b20gIDogMDsKCW1hcmdpbi10b3AgICAgIDogMDsKCXBhZGRpbmctYm90dG9tIDogMDsKCXBhZGRpbmctdG9wICAgIDogMDsKfQoKI0FkdmFuY2VkQ29udGVudF9maWxlb3BlcmF0aW9ucyB7Cgkgb3ZlcmZsb3c6aGlkZGVuOwoJIHdpZHRoOjEwMCU7Cn0KCiNBZHZhbmNlZENvbnRlbnRfdG9nZ2xlX2ZpbGVvcGVyYXRpb25zIHsKCWZsb2F0OnJpZ2h0OwoJbWFyZ2luLXRvcDotMjJweDsKCW1hcmdpbi1yaWdodCA6IDBweDsKfQoKI0FkdmFuY2VkQ29udGVudCBkaXYuYnJlYWRjcnVtYnMgewoJcGFkZGluZy1sZWZ0IDogMTBweDsKfQoKI0FkdmFuY2VkQ29udGVudF9maWxlbGlzdCB7CgltYXJnaW4gICAgICAgICAgIDogNXB4IDVweCA1cHg7Cglib3JkZXIgICAgICAgICAgIDogMXB4IHNvbGlkICM5N0IxQjk7CgliYWNrZ3JvdW5kLWNvbG9yIDogI2ZmZjsKCW92ZXJmbG93ICAgICAgICAgOiBhdXRvOwoJbWluLXdpZHRoICAgICAgICA6IDUzOHB4OwoJb3BhY2l0eSAgICAgICAgICA6IDA7Cn0KI0FkdmFuY2VkQ29udGVudF9maWxlbGlzdCB0YWJsZSB0ciB0ZHsKCXBhZGRpbmctdG9wICAgOiA1cHg7CglwYWRkaW5nLXJpZ2h0IDogNXB4OwoJZW1wdHktY2VsbHMgICA6IHNob3c7Cn0KCi5BZHZhbmNlZENvbnRlbnRfdGh1bWJuYWlsX3dyYXBwZXIgewoJbWFyZ2luICAgICAgICAgOiAycHg7Cgl0ZXh0LWFsaWduICAgICA6IGNlbnRlcjsKCXZlcnRpY2FsLWFsaWduIDogbWlkZGxlOwoJb3ZlcmZsb3cgICAgICAgOiBoaWRkZW47CglkaXNwbGF5ICAgICAgICA6IGJsb2NrOwoJZmxvYXQgICAgICAgICAgOiBsZWZ0Owp9CgojQWR2YW5jZWRDb250ZW50X2ZpbGVsaXN0IC5BZHZhbmNlZENvbnRlbnRfdGh1bWJuYWlsX3dyYXBwZXIgewoJaGVpZ2h0ICAgOiBhdXRvOwoJb3ZlcmZsb3cgOiB2aXNpYmxlOwoJZmxvYXQgICAgOiBub25lOwp9CgouQWR2YW5jZWRDb250ZW50X3RodW1ibmFpbF93cmFwcGVyIGltZy5BZHZhbmNlZENvbnRlbnRfdGh1bWJuYWlsIHsKICAgbWFyZ2luICA6IDJweDsKICAgcGFkZGluZyA6IDJweDsKICAgYm9yZGVyICA6IDFweCBzb2xpZCAjOTk5OTk5Owp9Ci8qRmlsZSBvcGVyYXRpb25zKi8KLyplcnJvciovCiNBZHZhbmNlZENvbnRlbnRfZXJyb3J7CiAgIAlwYWRkaW5nICAgICA6IDVweCA1cHggMTBweCAxMHB4OwoJYm9yZGVyICAgICAgOiAxcHggc29saWQgI0ZEOTk5OTsKCWNvbG9yICAgICAgIDogIzAwMDsKCWJhY2tncm91bmQgIDogI0ZFREFEQTsKCWZvbnQtd2VpZ2h0IDogYm9sZDsKfQojQWR2YW5jZWRDb250ZW50X2Vycm9yIGxlZ2VuZHsKCWNvbG9yICAgICAgIDogI0NDMDAwMDsKCWZvbnQtd2VpZ2h0IDogYm9sZDsKCWZvbnQtc2l6ZSAgIDogMS4xZW07Cn0KLypzdWNlc3MqLwojQWR2YW5jZWRDb250ZW50X3N1Y2Nlc3N7CiAgIAlwYWRkaW5nICAgICA6IDVweCA1cHggMTBweCAxMHB4OwoJY29sb3IgICAgICAgOiAjMDAwOwoJZm9udC13ZWlnaHQgOiBib2xkOwoJYm9yZGVyICAgICAgOiAxcHggc29saWQgI0JERDNBMzsKCWJhY2tncm91bmQgIDogI0Q2RTRDNTsKfQojQWR2YW5jZWRDb250ZW50X3N1Y2Nlc3MgbGVnZW5kewoJY29sb3IgICAgICAgOiAjNDM1ODI5OwoJZm9udC13ZWlnaHQgOiBib2xkOwoJZm9udC1zaXplICAgOiAxLjFlbTsKfQoKLkFkdmFuY2VkQ29udGVudF9saW5rIHsKCXBhZGRpbmc6M3B4Owp9CgovKmZvcm0gaW5wdXQncyBpbiBub3JtYWwgY3NzKi8KaW5wdXQuQWR2YW5jZWRDb250ZW50X2J1dHRvbi5BZHZhbmNlZENvbnRlbnRfZGlzYWJsZWQsCmlucHV0LkFkdmFuY2VkQ29udGVudF9idXR0b24uQWR2YW5jZWRDb250ZW50X2Rpc2FibGVkOmhvdmVyLAouQWR2YW5jZWRDb250ZW50X2lucHV0X3dyYXBwZXIgLkFkdmFuY2VkQ29udGVudF9kaXNhYmxlZCwKLkFkdmFuY2VkQ29udGVudF9pbnB1dF93cmFwcGVyIC5BZHZhbmNlZENvbnRlbnRfZGlzYWJsZWQ6aG92ZXIgewoJY29sb3IgICAgICA6ICNDQ0M7CgljdXJzb3IgICAgIDogZGVmYXVsdDsKCWJvcmRlciAgICAgOiBub25lOwoJdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9CgojQWR2YW5jZWRDb250ZW50X2xvYWRpbmdfaW1nX3dyYXBwZXIgewoJaGVpZ2h0ICAgICAgICA6IDE2cHg7Cgl3aWR0aCAgICAgICAgIDogMTZweDsKCWZsb2F0ICAgICAgICAgOiBsZWZ0OwoJcGFkZGluZy1yaWdodCA6IDVweDsKCWRpc3BsYXk6IGJsb2NrOwp9CiNBZHZhbmNlZENvbnRlbnRfbG9hZGluZ19pbWcgewoJaGVpZ2h0ICAgICAgICA6IDE2cHg7Cgl3aWR0aCAgICAgICAgIDogMTZweDsKCWRpc3BsYXk6IG5vbmU7Cn0KCiNBZHZhbmNlZENvbnRlbnQgLnVpLXJlc2l6YWJsZS1lIHsKCWN1cnNvcjogZS1yZXNpemU7CgloZWlnaHQ6IDEwMCU7CglyaWdodDogMHB4OwoJdG9wOiAyNnB4OwoJd2lkdGg6IDEwcHg7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXotaW5kZXg6OTk5OTsKfQoKI0FkdmFuY2VkQ29udGVudCAudWktcmVzaXphYmxlLXcgewoJY3Vyc29yOiB3LXJlc2l6ZTsKCWhlaWdodDogMTAwJTsKCWxlZnQ6IDBweDsKCXRvcDogMjZweDsKCXdpZHRoOiAxMHB4OwoJcG9zaXRpb246YWJzb2x1dGU7Cgl6LWluZGV4Ojk5OTk7Cn0KCi8qIGpTbGlkZXIgKi8KLmpzbGlkZXIgLmpzbGlkZXItYmcgaSwKLmpzbGlkZXIgLmpzbGlkZXItcG9pbnRlcgp7IGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL3NsaWRlci9qc2xpZGVyLnBuZycpIG5vLXJlcGVhdCAwIDA7IH0KCi5qc2xpZGVyIHsgZGlzcGxheTogYmxvY2s7IHdpZHRoOiA0MDBweDsgaGVpZ2h0OiAxZW07IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAwLjZlbTsgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOyBtYXJnaW46MTBweCAwIDAgMTBweCB9Ci5qc2xpZGVyIHRhYmxlIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlcjogMDsgfQouanNsaWRlciB0ZCwgLmpzbGlkZXIgdGggeyBwYWRkaW5nOiAwOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXI6IDA7IH0KCi5qc2xpZGVyIHRhYmxlLAouanNsaWRlciB0YWJsZSB0ciwKLmpzbGlkZXIgdGFibGUgdHIgdGQgeyB3aWR0aDogMTAwJTsgdmVydGljYWwtYWxpZ246IHRvcDsgfQoKLmpzbGlkZXIgLmpzbGlkZXItYmcgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0KLmpzbGlkZXIgLmpzbGlkZXItYmcgaSB7IGhlaWdodDogNXB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IGZvbnQtc2l6ZTogMDsgdG9wOiAwOyB9Ci5qc2xpZGVyIC5qc2xpZGVyLWJnIC5sIHsgd2lkdGg6IDUwJTsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyBsZWZ0OiAwOyB9Ci5qc2xpZGVyIC5qc2xpZGVyLWJnIC5yIHsgd2lkdGg6IDUwJTsgbGVmdDogNTAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwOyB9Ci5qc2xpZGVyIC5qc2xpZGVyLWJnIC52IHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogNjAlOyBsZWZ0OiAyMCU7IHRvcDogMDsgaGVpZ2h0OiA1cHg7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIwcHg7IH0KCi5qc2xpZGVyIC5qc2xpZGVyLXBvaW50ZXIgeyB3aWR0aDogMTNweDsgaGVpZ2h0OiAxNXB4OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDIwJTsgdG9wOiAtNHB4OyBtYXJnaW4tbGVmdDogLTZweDsgY3Vyc29yOiBwb2ludGVyOyBjdXJzb3I6IGhhbmQ7IH0KLmpzbGlkZXIgLmpzbGlkZXItcG9pbnRlci1ob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMHB4IC00MHB4OyB9Ci5qc2xpZGVyIC5qc2xpZGVyLXBvaW50ZXItdG8geyBsZWZ0OiA4MCU7IH0KCi5qc2xpZGVyIC5qc2xpZGVyLWxhYmVsIHsgZm9udC1zaXplOiA5cHg7IGxpbmUtaGVpZ2h0OiAxMnB4OyBjb2xvcjogYmxhY2s7IG9wYWNpdHk6IDAuNDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgcGFkZGluZzogMHB4IDJweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0xOHB4OyBsZWZ0OiAwcHg7IH0KLmpzbGlkZXIgLmpzbGlkZXItbGFiZWwtdG8geyBsZWZ0OiBhdXRvOyByaWdodDogMDsgfQoKLmpzbGlkZXIgLmpzbGlkZXItdmFsdWUgeyBmb250LXNpemU6IDlweDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgcGFkZGluZzogMXB4IDJweCAwOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTE5cHg7IGxlZnQ6IDIwJTsgYmFja2dyb3VuZDogd2hpdGU7IGxpbmUtaGVpZ2h0OiAxMnB4OyAtbW96LWJvcmRlci1yYWRpdXM6IDJweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7IC1vLWJvcmRlci1yYWRpdXM6IDJweDsgYm9yZGVyLXJhZGl1czogMnB4OyB9Ci5qc2xpZGVyIC5qc2xpZGVyLXZhbHVlLXRvIHsgbGVmdDogODAlOyB9CgouanNsaWRlciAuanNsaWRlci1sYWJlbCBzbWFsbCwKLmpzbGlkZXIgLmpzbGlkZXItdmFsdWUgc21hbGwgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogLTAuNGVtOyB9CgouanNsaWRlciAuanNsaWRlci1zY2FsZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiA5cHg7IH0KLmpzbGlkZXIgLmpzbGlkZXItc2NhbGUgc3BhbiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiA1cHg7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzk5OTsgZm9udC1zaXplOiAwOyB9Ci5qc2xpZGVyIC5qc2xpZGVyLXNjYWxlIGlucyB7IGZvbnQtc2l6ZTogOXB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDVweDsgY29sb3I6ICM5OTk7IH0KCi5qc2xpZGVyLXNpbmdsZSAuanNsaWRlci1wb2ludGVyLXRvLAouanNsaWRlci1zaW5nbGUgLmpzbGlkZXItdmFsdWUtdG8sCi5qc2xpZGVyLXNpbmdsZSAuanNsaWRlci1iZyAudiwKLmpzbGlkZXItbGltaXRsZXNzIC5qc2xpZGVyLWxhYmVsCnsgZGlzcGxheTogbm9uZTsgfQoKCiogaHRtbCAuanNsaWRlciAuanNsaWRlci1iZyAubCwKKiBodG1sIC5qc2xpZGVyIC5qc2xpZGVyLWJnIC5yLAoqIGh0bWwgLmpzbGlkZXIgLmpzbGlkZXItYmcgLnYsCiogaHRtbCAuanNsaWRlciAuanNsaWRlci1wb2ludGVyIHsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQoKKiBodG1sIC5qc2xpZGVyIC5qc2xpZGVyLWJnIC5sIGksCiogaHRtbCAuanNsaWRlciAuanNsaWRlci1iZyAuciBpLAoqIGh0bWwgLmpzbGlkZXIgLmpzbGlkZXItYmcgLnYgaSwKKiBodG1sIC5qc2xpZGVyIC5qc2xpZGVyLXBvaW50ZXIgaSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDYwcHg7IGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoc3JjPScuL3N0eWxlc2hlZXRzL2pzbGlkZXIucG5nJywgc2l6aW5nTWV0aG9kPSdjcm9wJyk7IH0KICAKKiBodG1sIC5qc2xpZGVyIC5qc2xpZGVyLWJnIC5sIGkgeyBsZWZ0OiAwOyB0b3A6IDA7IH0KKiBodG1sIC5qc2xpZGVyIC5qc2xpZGVyLWJnIC5yIGkgeyByaWdodDogMDsgdG9wOiAwOyB9ICAKKiBodG1sIC5qc2xpZGVyIC5qc2xpZGVyLWJnIC52IGkgeyBsZWZ0OiAwOyB0b3A6IC0yMHB4OyB9CiAgCiogaHRtbCAuanNsaWRlciAuanNsaWRlci1wb2ludGVyIGkgeyBsZWZ0OiAwOyB0b3A6IC00MHB4OyB9CiogaHRtbCAuanNsaWRlciAuanNsaWRlci1wb2ludGVyLWhvdmVyIGkgeyBsZWZ0OiAtMjBweDsgdG9wOiAtNDBweDsgfQoKCiAgLmpzbGlkZXJfcm91bmQgLmpzbGlkZXItYmcgaSwKICAuanNsaWRlcl9yb3VuZCAuanNsaWRlci1wb2ludGVyCiAgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9zbGlkZXIvanNsaWRlci5yb3VuZC5wbmcnKTsgfQogIAogIAoqIGh0bWwgLmpzbGlkZXJfcm91bmQgLmpzbGlkZXItYmcgLmwgaSwKKiBodG1sIC5qc2xpZGVyX3JvdW5kIC5qc2xpZGVyLWJnIC5yIGksCiogaHRtbCAuanNsaWRlcl9yb3VuZCAuanNsaWRlci1iZyAudiBpLAoqIGh0bWwgLmpzbGlkZXJfcm91bmQgLmpzbGlkZXItcG9pbnRlciBpIHsgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9Jy4vc3R5bGVzaGVldHMvanNsaWRlci5yb3VuZC5wbmcnLCBzaXppbmdNZXRob2Q9J2Nyb3AnKTsgfQoKCiAgLmpzbGlkZXJfcm91bmQgLmpzbGlkZXItcG9pbnRlciB7IHdpZHRoOiAxN3B4OyBoZWlnaHQ6IDE3cHg7IHRvcDogLTZweDsgbWFyZ2luLWxlZnQ6IC04cHg7IH0K]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/changelog.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJyIC8+CjxwPjxzdHJvbmc+TW9kdWxlIHJlbGVhc2VzPC9zdHJvbmc+Li4uPC9wPgo8dWw+Cgk8bGk+PHA+PHN0cm9uZz4wLjggLyAwLjYuNSAoTWF5IDIwMTEpOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gWyM2MjY1XSAoQ2FsbC10aW1lIHBhc3MtYnktcmVmZXJlbmNlIHdhcm5pbmdzKTwvcD48L2xpPgoJCQkJCTxsaT48cD4tIG1pc3NlZCBwYXJhbSBub19jb2xsYXBzZTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBoaWRlIG1lbnUgZW50cnkgaWYgbm8gYWNjZXNzIHRvIHZpZXcgdGhlIHBhZ2U8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBpbmhlcml0YW5jZSBvZiByZWRpcmVjdCBwYXJhbXMsIGV4cGlyZSBkYXRlPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gZGVmYXVsdCBzZXR0aW5ncyBmb3IgZXhwaXJlIGRhdGU8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBibG9ja190eXBlcyBzbGlkZXIvY29sb3JwaWNrZXIgKHRoYW5rcyB0byBuaWNtYXJlKTwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIGEgd2FybmluZyB3aGVuIHVuaW5zdGFsbGluZyB0aGUgbW9kdWxlPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPjxwPjxzdHJvbmc+MC42LjQgKE1hciAyMDExKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIFsjNjI0MV0gKElzc3VlIHdpdGggcGFyYW0gZGVmYXVsdCk8L3A+PC9saT4KCQkJCQk8bGk+PHA+ZmF0YWwgZXJyb3IgaW4gQWR2YW5jZWRDb250ZW50Lm1vZHVsZS5waHA8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjcuMiAvIDAuNi4zIChNYXIgMjAxMSk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBbIzU3MzRdIFBhcmFtZXRlciBibG9ja19ncm91cCBpcyBub3Qga25vd24gYnkgbW9kdWxlIEFkdmFuY2VkQ29udGVudDwvcD48L2xpPgoJCQkJCTxsaT48cD4tIFsjNjAxNF0gaGVhZGVyIHByb2JsZW0gd2l0aCBtdWx0aS1pbnB1dDwvcD48L2xpPgoJCQkJCTxsaT48cD4tIFsjNjAzOF0gY29udGVudF9pbWFnZSByZXNwZWN0aXZlbHkgYmxvY2tfdHlwZT0iaW1hZ2UiIGRvZXNuJ3Qgd29yazwvcD48L2xpPgoJCQkJCTxsaT48cD4tIFsjNjAzOV0gdGVtcGxhdGUgY2FuJ3QgYmUgc3dpdGNoZWQ8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBbIzYwNjFdIGlzc3VlIHdpdGggdGhlIHJlZGlyZWN0IGZvciBmZXUgbm9uIG1hdGNoPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gWyM2MDk1XSBQYXJhbWV0ZXIgc29ydGFibGUgaXMgbm90IGtub3duIDwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNy4xIChOb3YgMjAxMCkgLyAwLjYuMyAoTWFyIDIwMTEpOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gZml4ZWQgYnVnIGl0ZW0gIzU2NTEgKHJlZGlyZWN0IGlmIGZyb250ZW5kIHVzZXIgaGFzIG5vIGFjY2VzIHRvIHRoYXQgcGFnZSBkaWQgbm90IHdvcmsgcHJvcGVybHkpPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY2Nlc3M8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWN0aW9uPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gY29sbGFwc2U8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSByZXF1aXJlZDwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNyAoTm92IDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gY29tcGF0aWJpbGl0eSBidWdmaXhlcyBmb3IgQ01TbXMgMS45KyAobmVlZHMgQ01TbXMgMS45IG1pbmltdW0gbm93KTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBub19jb2xsYXBzZTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNi4yIChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBtaW5vciBidWdmaXggKHNob3dlZCB0YWJzIG9mIHByZXZpb3VzIHRlbXBsYXRlIHdoZW4gdGVtcGxhdGUgd2FzIGNoYW5nZWQpPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPjxwPjxzdHJvbmc+MC42LjEgKE5vdiAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIHNldmVyYWwgYnVnZml4ZXM8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBjb21wYXRpYmlsaXR5IGJ1Z2ZpeGVzIGZvciBDTVNtcyAxLjk8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5GZWF0dXJlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gYWRkZWQgYmxvY2tfdHlwZSBtdWx0aV9pbnB1dDwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNiAoT2N0IDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD5CdWdmaXhlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gc2V2ZXJhbCBidWdmaXhlczwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBibG9ja19ncm91cDwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPk1pc2M6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIFJlbW92ZWQgZmlsZSBwaWNrZXIgKGFuZCBhc3NvY2lhdGVkIGJsb2NrX3R5cGVzIGltYWdlL2ZpbGUpIC0gdXNlIEdCRmlsZVBpY2tlciBpbnN0ZWFkLjwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNSAoU2VwdCAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTI5MiAobWVtb3J5IGlzc3VlKTwvcD48L2xpPgoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTI1NCAoZGlzYWJsZSB3eXNpd3lnIG5vdCB3b3JraW5nKTwvcD48L2xpPgoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTMxMCAodXJsb25seSBub3Qgd29ya2luZyk8L3A+PC9saT4KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUzMTEgKGltYWdlIHBhdGhzIG5vdCBzdG9yZWQgJ2NvcnJlY3RseScpPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNjEgKEFkZCBzb3J0IHRvIGltYWdlIHR5cGUgLSBub3RpY2UgdGhlIGNoYW5nZSBvZiBwYXJhbSBmaWx0ZXIpPC9wPjwvbGk+CgkJCQkJPGxpPjxwPmFkZGVkIHBhcmFtcyBleGNsdWRlX3ByZWZpeCwgaW5jbHVkZV9wcmVmaXgsIGV4Y2x1ZGVfc3VmaXgsIGluY2x1ZGVfc3VmaXg8L3A+PC9saT4KCQkJCQk8bGk+PHA+YWRkZWQgZmVhdHVyZSByZXF1ZXN0ICM1MjUzIChUZXh0IGlucHV0IHRvIGRlZmluZSBhZGQgcGFyYW1zIHRvIHJlZGlyZWN0IGZ1bmN0aW9uKTwvcD48L2xpPgoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNDAgKERlZmF1bHQgdmFsdWVzIG9mIEFkdmFuY2VkQ29udGVudCBwYWdlIG9wdGlvbnMpPC9wPjwvbGk+CgkJCQkJPGxpPjxwPmFkZGVkIGZlYXR1cmUgcmVxdWVzdCAjNTI0MSAocHV0IEZldUFjY2VzcyBpbiBCbG9ja3RhYik8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5NaXNjOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyBhcmUgc2hvd24gaW4gc2VwYXJhdGUgdGFiPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gQWRkZWQgbmV3IHBlcm1pc3Npb24gdG8gbWFuYWdlIHRoZSBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyB0YWI8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSByZW1vdmVkIHBhcmFtIGZpbHRlciAodXNlIG5ldyBwYXJhbXMgaW5zdGVhZCk8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBwYXRoIHRvIGZpbGVzIGFyZSBzdG9yZWQgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gcGFyYW0gZGlyIG9mIGJsb2NrIHR5cGUgZmlsZS9pbWFnZSBuZWVkcyB0byBiZSByZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXIgb25seSAodGhlcmUgaXMgbm8gaW1hZ2UgdXBsb2FkcyBkaXIgdXNlZCBhbnltb3JlKTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNC4xIChBdWd1c3QgMjAxMCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSAjNTE1MTogZml4ZWQgc3R5bGVzaGVldCBpc3N1ZSB3aXRoIGV4cGFuZC9jb2xsYXBzZSBidXR0b25zIG9mIGNvbnRlbnQgYmxvY2tzIGluIElFL1NhZmFyaS48L3A+PC9saT4KCQkJCQk8bGk+PHA+LSAjNTE2MjogUEhQIHdhcm5pbmdzIGlmIGJhY2tlbmQgdXNlcnMgd2l0aG91dCBwZXJtaXNzaW9uICJNYW5hZ2UgQWxsIEFkdmFuY2VkQ29udGVudCBCbG9ja3MiIG9wZW4gYW4gYWR2YW5jZWQgY29udGVudCBwYWdlIGFuZCBtdWx0aXBsZSBjb250ZW50IGJsb2NrcyBvZiBzYW1lIG5hbWUgd2VyZSB1c2VkIGluIHRlbXBsYXRlLjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBleHRyYSBmaWVsZHMgY291bGQgbm90IGJlIHVwZGF0ZWQuPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGZldSBhY2Nlc3MgZGlkIG5vdCB3b3JrLjwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAiZGVsZXRlIiB0byBsZXQgdXNlcnMgZGVsZXRlIGZpbGVzIGV2ZW4gaWYgbm8gcGVybWlzc2lvbiAiTW9kaWZ5IEZpbGVzIjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICJjcmVhdGVfZGlycyIgdG8gbGV0IHVzZXJzIGNyZWF0ZV9kaXJzIGV2ZW4gaWYgbm8gcGVybWlzc2lvbiAiTW9kaWZ5IEZpbGVzIjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIG5ldyBibG9ja3R5cGUgIm5vdGUiIHRvIGNyZWF0ZSBzb21lIHNpbmdsZSBub3RlcyBmb3IgeW91ciBlZGl0b3JzPC9wPjwvbGk+CgkJCQk8L3VsPgoJCQk8L2xpPgoJCQk8bGk+PHA+TWlzYzo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCBkZXBlbmRlbmN5IG9mIEZpbGVNYW5hZ2VyPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYmxvY2sgb2YgdHlwZSBmaWxlIG9yIGltYWdlIHN0b3JlcyByZWxhdGl2ZSB1cmwgbm93PC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYmxvY2sgdHlwZSBpbWFnZSBzaG93cyB0aHVtYm5haWwgaW4gYmFja2VuZCBwcmV2aWV3IGluc3RlYWQgb2YgZnVsbCBpbWFnZTwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuNCAoSnVseSAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+SW1wb3J0YW50IG5vdGljZTo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gY2hhbmdlZCBwYXJhbSAidHlwZSIgdG8gImJsb2NrX3R5cGUiIHNpbmNlIGl0IGludGVyZmVyZXMgd2l0aCB7Y29udGVudF9tb2R1bGV9IHRhZzwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSAjNTEwMTogcGFnZV90YWIgIm9wdGlvbnMiIHdhcyBzaG93biB0byB1c2VycyB3aXRoIG5vIHBlcm1pc3Npb24gdG8gZWRpdCBwYWdlIG9wdGlvbnMgaWYgYSBjb250ZW50IGJsb2NrIHdhcyBhc3NpZ25lZCB0byB0aGF0IHRhYi48L3A+PC9saT4KCQkJCQk8bGk+PHA+LSAjNTA5NzogbGluayB0byBtaXNzaW5nIGNzcyByZW1vdmVkPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gZml4ZWQgbWltZS10eXBlIGlzc3VlIChhZGRlZCBwcmVmZXJlbmNlIHRvIHRvZ2dsZSBtaW1lLXR5cGUgdXNhZ2Ugb24vb2ZmKTwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGZpeGVkIHBhdGggaXNzdWUgd2hlcmUgdGh1bWJuYWlscyB3ZXJlIG5vdCBzaG93bjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGZpeGVkIGNvbXBhdGliaWxpdHkgd2l0aCBDTVNtcyAxLjg8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBvdGhlciBtaW5vciBidWdmaXhlczwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4KCQkJCTx1bD4KCQkJCQk8bGk+PHA+LSBhZGRlZCBNTEUgc3VwcG9ydDwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICJzaG93X2Nsb2NrIiB0byBlbmFibGUvZGlzYWJsZSB0aGUgdGltZSBkcm9wZG93biBvZiBibG9ja3R5cGVzICJkYXRlIiBpbiBiYWNrZW5kPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gImRhdGVfZm9ybWF0IiB0byBmb3JtYXQgdGltZXN0YW1wIG9mIGJsb2NrdHlwZXMgImRhdGUiIGluIGZyb250ZW5kPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gImRlc2NyaXB0aW9uIjwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIGJ1bGsgZnVuY3Rpb24gdG8gc2V0IGFsbCBwYWdlcyB0byBBZHZhbmNlZENvbnRlbnQ8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBhZGRlZCBjb21wYXRpYmlsaXR5IHdpdGgge2NvbnRlbnRfbW9kdWxlfSB0YWc8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjMuNCAoSnVuZSAyMDEwKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tICM1MDQ1OiBXaGVuIHN3aXRjaGluZyBmcm9tIENvbnRlbnQgLT4gQWR2YW5jZWQgQ29udGVudCBsb3RzIG9mIFBIUCBlcnJvcnM8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSAjNTA1NjogcGFnZV90YWJzIG5vdCB3b3JraW5nIGZvciB1c2VycyB3aXRob3V0IHBlcm1pc3Npb24gIk1hbmFnZSBBbGwgQ29udGVudCI8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSAjNTA3MzogaW5jb3JyZWN0IGRpc3BsYXkgb2YgZmlsZXMgd2hlbiBvcGVuaW5nIGZpbGVwaWNrZXI8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSBmaXhlZCBtaW5vciBidWcgd2hlcmUgdGhlIG9wdGlvbiAiYWxsb3dfbm9uZSIgb2YgY29udGVudCBibG9ja3Mgb2YgdHlwZSBpbWFnZS9maWxlIHdhcyBub3Qgc2hvd24gd2hlbiB0ZW1wbGF0ZSBoYXMgYmVlbiBlZGl0ZWQ8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJCTxsaT48cD5GZWF0dXJlczo8L3A+CgkJCQk8dWw+CgkJCQkJPGxpPjxwPi0gYWRkZWQgZmlsZW1hbmFnZW1lbnQgYW5kIHVwbG9hZCBmdW5jdGlvbnMgdG8gY29udGVudCBibG9ja3Mgb2YgdHlwZSBpbWFnZS9maWxlPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgYnJlYWRjdW1icyB0byBmaWxlcGlja2VyPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRtaW5zIG1heSBicm93c2UgdGhlIGVudGlyZSBkaXIgdHJlZSBpbiBmaWxlcGlja2VyIGZpbGUgYnJvd3NlciByZWdhcmRsZXNzIG9mIHRlbXBsYXRlIHBhcmFtczwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGFkZGVkIG1pbWUgdHlwZSBjaGVja2luZyB0byBnZXQgZmlsZSB0eXBlPC9wPjwvbGk+CgkJCQkJPGxpPjxwPi0gYWRkZWQgcmF3dXJsZW5jb2RlIGluIHNyYyBhdHRyaWJzIHRvIGRpc3BsYXkgaW1hZ2VzIHdpdGggd2VpcmQgZmlsZW5hbWVzLjwvcD48L2xpPgoJCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPjxwPm1pc2NlbGxhbmVvdXM6PC9wPgoJCQkJPHVsPgoJCQkJCTxsaT48cD4tIHJlbW92ZWQgT09QIHN0dWZmIChwcml2YXRlL3B1YmxpYy9wcm90ZWN0ZWQpIHRvIGdhaW4gbW9yZSBjb21wYXRpYmlsaXR5IHdpdGggUEhQNDwvcD48L2xpPgoJCQkJCTxsaT48cD4tIGNoYW5nZWQgYWpheCBmdW5jdGlvbnMgdG8gcmV0dXJuIHhtbCB2YWx1ZXM8L3A+PC9saT4KCQkJCQk8bGk+PHA+LSByZW1vdmVkIHVzYWdlIG9mIEltYWdlTWFuYWdlciBvbmNlIGFuZCBmb3IgYWxsLiAoY2F1c2VkIG9ubHkgdHJvdWJsZSk8L3A+PC9saT4KCQkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4wLjMuMyAoSnVuZSAyMDEwKTo8L3N0cm9uZz48L3A+Cgk8dWw+CgkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4KCQkJPHVsPgoJCQkJPGxpPjxwPi0gYWxpYXMgd2FzIG5vdCBhbHdheXMgY29udmVydGVkIHByb3Blcmx5PC9wPjwvbGk+CgkJCQk8bGk+PHA+LSB1bnN1Ym1pdHRlZCBjb250ZW50IGdvdCBsb3N0IGlmIHN3aXRjaGluZyBmcm9tIENvbnRlbnQgdG8gQWR2YW5jZWRDb250ZW50PC9wPjwvbGk+CgkJCTwvdWw+CgkJPC9saT4KCQk8bGk+PHA+RmVhdHVyZXM6PC9wPgoJCQk8dWw+CgkJCQk8bGk+PHA+LSBhZGRlZCBzdGFydC9lbmQgZGF0ZTwvcD48L2xpPgoJCQkJPGxpPjxwPi0gcmVtb3ZlZCB0aW1lcGlja2VyOyByZXBsYWNlZCBieSBhIHNpbXBsZSBkcm9wZG93bjwvcD48L2xpPgoJCQkJPGxpPjxwPi0gY29tcGF0aWJpbGl0eSB3aXRoIHtjb250ZW50X2ltYWdlfTwvcD48L2xpPgoJCQk8L3VsPgoJCTwvbGk+Cgk8L3VsPgoJPGxpPjxwPjxzdHJvbmc+MC4zLjIgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGNoYW5naW5nIGJhY2sgdG8gZGVmYXVsdCBjb250ZW50IHR5cGUgb3IgY2hhbmdpbmcgdGVtcGxhdGUgY2F1c2VkIGZhdGFsIGVycm9yczwvcD48L2xpPgoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHNtYXJ0eSBwcm9jZXNzaW5nIHdoZW4gc2F2aW5nIGEgcGFnZTwvcD48L2xpPgoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHByZXZpZXcgdGFiPC9wPjwvbGk+CgkJCTxsaT48cD4tIHJlLWFkZGVkIGV4cGFuZC9jb2xsYXBzZSBidXR0b24gdG8gdG9nZ2xlIGNvbnRlbnQgYmxvY2tzIGluIGJhY2tlbmQ8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW1zIGVkaXRvcl9ncm91cHMvZWRpdG9yX3VzZXJzIHRvIHNwZWNpZnkgY2VydGFpbiB1c2Vycy9ncm91cHMgdGhhdCBhcmUgYWxsb3dlZCB0byBlZGl0IGNlcnRhaW4gYmxvY2tzPC9wPjwvbGk+CgkJCTxsaT48cD4tIHJlbW92ZWQgcGFyYW1zIHNlbGVjdGVkL2NoZWNrZWQ7IHVzZSBwYXJhbSBkZWZhdWx0IGluc3RlYWQ8L3A+PC9saT4KCQkJPGxpPjxwPi0gYmxvY2sgaWRzIHdpbGwgYmUgY29udmVydGVkIGZyb20gYmxvY2sgbmFtZSB1c2luZyBjb3JlIGZ1bmN0aW9uIG11bmdlX3N0cmluZ190b191cmwgKHRvIHJlbW92ZSBzcGVjaWFsIGNoYXJzLCB3aGl0ZXNwYWNlcywgdW1sYXV0cyBldGMuKTwvcD48L2xpPgoJCQk8bGk+PHA+LSBmaXhlZCBidWcgb2YgYmxvY2t0eXBlIGRyb3Bkb3duL3NlbGVjdF9tdWx0aXBsZSB3aGVyZSBmaXJzdCBpdGVtIGhhZCBhbiBlbXB0eSBsYWJlbCBpZiBvbmx5IHRoZSBwYXJhbSAidmFsdWVzIiBpcyB1c2VkPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHNvbWUgdGVtcGxhdGUgdmFycyBvZiB0aGUgZnJvbnRlbmQgdG8gYmUgYWxzbyBhY2Nlc3NpYmxlIGluIGJhY2tlbmQgKGUuZy46IFwkcGFnZV9hbGlhcyk8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gImFsbG93X25vbmUiIHRvIGFsbCBjb250ZW50IGJsb2NrIHR5cGVzIHRvIHNwZWNpZnkgaWYgdGhlIHByZWRlZmluZWQgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIHVzZWQgaWYgbm8gdmFsdWUgaXMgZW50ZXJlZDwvcD48L2xpPgoJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZW1wdHkgdmFsdWVzIHdlcmUgbmV2ZXIgYmUgc3RvcmVkPC9wPjwvbGk+CgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBkZWZhdWx0IHZhbHVlIGluIGZyb250ZW5kIHdhcyBpZ25vcmVkIGlmIHRoZSAiYWxsb3dfbm9uZSIgcGFyYW0gd2FzIGNoYW5nZWQgYWZ0ZXIgYW4gZW1wdHkgdmFsdWUgaGFzIGJlZW4gc3RvcmVkPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICJzb3J0YWJsZV9pdGVtcyIgdG8gY3JlYXRlIGEgc29ydGFibGUgbXVsdGlwbGUgc2VsZWN0IGxpc3QgKHNlbGVjdCBsaXN0IHdpbGwgcmVzdWx0IGluIGEgdGFibGUgd2l0aCBjaGVja2JveGVzOyBvbmx5IG9yZGVyIG9mIHNlbGVjdGVkIGl0ZW1zIHdpbGwgYmUgc3RvcmVkIGFuZCBzaG93ZWQgYXQgdGhlIHRvcCBvZiB0aGUgbGlzdDsgdW5zZWxlY3RlZCBpdGVtcyB3aWxsIGJlIGFwcGVuZGVkIGluIHRoYXQgb3JkZXIgdGhleSBhcmUgcGxhY2VkIGluIHRoZSB0ZW1wbGF0ZSk8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KCTxsaT48cD48c3Ryb25nPjAuMy4xIChNYXkgMjAxMCk6PC9zdHJvbmc+PC9wPgoJCTx1bD4KCQkJPGxpPjxwPi0gcmVtb3ZlZCB0aGUgcmVvcmRlcmluZyBzdHVmZiBmb3Igbm93IChjYXVzZXMgdHJvdWJsZSBhdCB0aGlzIHRpbWUpPC9wPjwvbGk+CgkJCTxsaT48cD4tIHJlbW92ZWQgdGhlIGRiIHN0dWZmIChwYXJhbXMgb2YgY29udGVudCBibG9ja3MgdGhhdCBhcmUgZGVmaW5lZCBpbiB0ZW1wbGF0ZSB3b24ndCBiZSBzYXZlZCBpbiBtb2R1bGUgZGIgdGFibGUgYW55bW9yZSAtPiBob3BlZnVsbHkgc3BlZWQgdXAgbG9hZGluZyB0aW1lKTwvcD48L2xpPgoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIGR1cGxpY2F0ZSBjb250ZW50IGJsb2NrczwvcD48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+QWR2YW5jZWRDb250ZW50IDAuMyAoTWF5IDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD4tIHJld3JpdGUgY29kZTwvcD48L2xpPgoJCQk8bGk+PHA+LSBidWdmaXhlczwvcD48L2xpPgoJCQk8bGk+PHA+LSByZW5hbWVkIHRvIEFkdmFuY2VkQ29udGVudDwvcD48L2xpPgoJCQk8bGk+PHA+LSB1c2luZyBzZXBhcmF0ZSBtb2R1bGUgdGVtcGxhdGUgbm93IHRvIGRzcGxheSBjb250ZW50IGJsb2NrczwvcD48L2xpPgoJCQk8bGk+PHA+LSByZW1vdmVkIHBhZ2UgYWxpYXMgaW5oZXJpdGFuY2U8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPjxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAzIChBcHJpbCAyMDEwIC0gZGlzY29udGludWVkKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+LSBNYWpvciBCdWdmaXggKG1pc3NpbmcgIjsiIGFuZCBzdHJhbmdlIGludmlzaWJsZSBpbnZhbGlkIGNoYXJzKTwvcD48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPjxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAyIChBcHJpbCAyMDEwIC0gZGlzY29udGludWVkKTo8L3N0cm9uZz48L3A+CgkJPHVsPgoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHBhcmFtICJkZWxpbWl0ZXIiPC9wPjwvbGk+CgkJCTxsaT48cD4tIGZpeGVkIGEgYnVnIHdpdGggc21hcnR5IHByb2Nlc3Npbmc8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgaW5oZXJpdGFuY2Ugb2YgIlNob3cgbG9naW4gZm9ybSI8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgaW5oZXJpdGFuY2Ugb2YgcGFnZSBhbGlhcyB0byBhZGQgaXQgYXMgcHJlZmZpeDsgc28gaWYgeW91IGhhdmUgYSBwYWdlIGNhbGxlZCAibWVtYmVycyIgYW5kIHNlbGVjdCBmb3IgZWFjaCBjaGlsZCBwYWdlICJpbmhlcml0IHBhZ2UgYWxpYXMiIGFsbCBjaGlsZCBwYWdlcyBhbGlhc2VzIHdpbGwgc3RhcnQgd2l0aCAibWVtYmVyc18iOyBtYWtlcyBmaWx0ZXJpbmcgb2YgbWVudSBlbnRyaWVzIHdpdGggTWVudU1hbmFnZXIgcGFyYW0gImV4Y2x1ZGVwcmVmZml4IiBvciAiaW5jbHVkZXByZWZmaXgiIGVhc2llci48L3A+PC9saT4KCQkJPGxpPjxwPi0gbWlub3IgYnVnZml4ZXM8L3A+PC9saT4gCgkJPC91bD4KCTwvbGk+Cgk8bGk+CgkJPHA+PHN0cm9uZz5YQ29udGVudCBCRVRBIChBcHJpbCAyMDEwKTo8L3N0cm9uZz4gaW5pdGlhbCByZWxlYXNlPC9wPgoJCTx1bD4KCQkJPGxpPjxwPi0gY29udmVydGVkIHRoZSBzaW5nbGUgZmlsZSBpbnRvIGEgbW9kdWxlPC9wPjwvbGk+CgkJCTxsaT48cD4tIHJlbmFtZWQgcGFyYW1zOyBzZWUgbW9kdWxlIGhlbHAgZm9yIG1vcmUgZGV0YWlsczwvcD48L2xpPgoJCTwvdWw+Cgk8L2xpPgo8L3VsPgo8cD48c3Ryb25nPlNpbmdsZSBmaWxlIHJlbGVhc2VzIChkaXNjb250aW51ZWQpPC9zdHJvbmc+Li4uPC9wPgo8dWw+Cgk8bGk+CgkJPHA+PHN0cm9uZz4xLjQgKE1hcmNoIDIwMTApOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD4tIGNsZWFudXAgY29kZSAtIChOYU4pPC9wPjwvbGk+CgkJCTxsaT48cD4tIG1pbm9yIGJ1Z2ZpeGVzIC0gKE5hTik8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcmVkaXJlY3QgcGFnZSBpZiBmZXUgaXMgbm90IGxvZ2dlZCBpbiAtIChOYU4pPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mIGZldV9hY2Nlc3MgYW5kIHJlZGlyZWN0X3BhZ2UgLSAoTmFOKTwvcD48L2xpPgoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWNjZXNzIC0gKE5hTik8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmV1X2FjdGlvbiAtIChOYU4pPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIHJlZGlyZWN0X3BhZ2UgLSAoTmFOKTwvcD48L2xpPgoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBibG9ja19vbmx5IC0gKE5hTik8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgc21hcnR5IGxvZ2ljIGluIGJhY2tlbmQgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gc3R5bGUgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmlsdGVyIChmaWx0ZXJpbmcgaW1hZ2VzIGluIGJhY2tlbmQpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+CgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIEltZ01vZGUgKGRyb3Bkb3duIG9yIEltYWdlTWFuYWdlcikgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gc21hcnR5T24gKGZvciBwcm9jZXNzaW5nIHNtYXJ0eSB2YXJzIG9mIHRoZSB0ZW1wYXRlIGluIGJhY2tlbmQpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+CgkJPC91bD4KCTwvbGk+Cgk8bGk+PHA+PHN0cm9uZz4xLjMgKEFwcmlsIDIwMDkpOjwvc3Ryb25nPjwvcD4KCQk8dWw+CgkJCTxsaT48cD4tIENNU21zIDEuNi4qIHJlYWR5IC0gKE5hTik8L3A+PC9saT4KCQkJPGxpPjxwPi0gYWRkZWQgZmV1IGFjY2VzcyBvcHRpb24gLSAoTmFOKTwvcD48L2xpPgoJCTwvdWw+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+MS4yIChNYXJjaCAyMDA5KTo8L3N0cm9uZz4gaW5pdGlhbCByZWxlYXNlPC9wPgoJCTx1bD4KCQkJPGxpPjxwPi0gQSBzaW5nbGUgZmlsZSBDb250ZW50Mi5pbmMucGhwIHRoYXQgbmVlZHMgdG8gYmUgcGxhY2VkIGluIGxpYi9jbGFzc2VzL2NvbnRlbnR0eXBlcy48L3A+PC9saT4KCQkJPGxpPjxwPi0gbGF5b3V0L29wdGlvbnMgb2YgYmFja2VuZCBwYW5lbCBjYW4gYmUgY29udHJvbGVkIGJ5IGFkZGl0aW9uYWwgc21hcnR5IHBhcmFtcyBpbiB0aGUgdGVtcGxhdGU7IGludGVncmF0ZWQgdGhlIHtjb250ZW50X2ltYWdlfSB0YWcgLSAobW9kIGJ5IE5hTik8L3A+PC9saT4KCQk8L3VsPgoJPC9saT4KPC91bD4KPGJyIC8+]]></data>
	</file>
	<file>
	  <filename>/doc/copyright.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[VGhlIG1vZHVsZSB1c2VzIGV4dGVybmFsIGxpYmFyaWVzIGFuZCBjb2RlIHNuaXBwZXRzIHRoYXQgYXJlIGxpc3RlZCBiZWxvdzoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpDYWxlbmRhclZpZXcgZm9yIGpRdWVyeSBieSBBbGV4IEdhbm92IChzbGlnaHRseSBtb2RpZmllZCBieSBOYU4pCgpCYXNlZCBvbiBDYWxlbmRhclZpZXcgZm9yIFByb3RvdHlwZSBodHRwOi8vY2FsZW5kYXJ2aWV3Lm9yZy8gd2hpY2ggaXMgYmFzZWQKb24gRHluYXJjaCBESFRNTCBDYWxlbmRhciBodHRwOi8vd3d3LmR5bmFyY2guY29tL3Byb2plY3RzL2NhbGVuZGFyL29sZC8uCgpDYWxlbmRhclZpZXcgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgKExHUEwpCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKRGF0ZS5mb3JtYXQoKQpzdHJpbmcgZm9ybWF0ICggc3RyaW5nIGZvcm1hdCApCkZvcm1hdHRpbmcgcnVsZXMgYWNjb3JkaW5nIHRvIGh0dHA6Ly9waHAubmV0L3N0cmZ0aW1lCgpDb3B5cmlnaHQgKEMpIDIwMDYgIERhbyBHb3R0d2FsZAoKQ29udGFjdCBpbmZvcm1hdGlvbjoKRGFvIEdvdHR3YWxkICA8ZGFvIGF0IGRlc2lnbi1ub2lyLmRlPgoKdmVyc2lvbiAgMC43CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKalF1ZXJ5IEZvcm0gUGx1Z2luCnZlcnNpb246IDIuNDMgKDEyLU1BUi0yMDEwKQoKRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9tYWxzdXAuY29tL2pxdWVyeS9mb3JtLwpEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgYW5kIEdQTCBsaWNlbnNlczoKICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCmpQaWNrZXIgMS4xLjYKalF1ZXJ5IFBsdWdpbiBmb3IgUGhvdG9zaG9wIHN0eWxlIGNvbG9yIHBpY2tlcgpDb3B5cmlnaHQgKGMpIDIwMTAgQ2hyaXN0b3BoZXIgVC4gVGlsbG1hbgpEaWdpdGFsIE1hZ2ljIFByb2R1Y3Rpb25zLCBJbmMuIChodHRwOi8vd3d3LmRpZ2l0YWxtYWdpY3Byby5jb20vKQpNSVQgc3R5bGUgbGljZW5zZSwgRlJFRSB0byB1c2UsIGFsdGVyLCBjb3B5LCBzZWxsLCBhbmQgZXNwZWNpYWxseSBFTkhBTkNFClBhaW5zdGFraW5nbHkgcG9ydGVkIGZyb20gSm9obiBEeWVycycgZXhjZWxsZW50IHdvcmsgb24gaGlzIG93biBjb2xvciBwaWNrZXIgYmFzZWQgb24gdGhlIFByb3RvdHlwZSBmcmFtZXdvcmsuCkpvaG4gRHllcnMnIHdlYnNpdGU6IChodHRwOi8vam9obmR5ZXIubmFtZSkKQ29sb3IgUGlja2VyIHBhZ2U6ICAgKGh0dHA6Ly9qb2huZHllci5uYW1lL3Bvc3QvMjAwNy8wOS9QaG90b1Nob3AtbGlrZS1KYXZhU2NyaXB0LUNvbG9yLVBpY2tlci5hc3B4KQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCkRlcGVuZCBDbGFzcyB2MC4xYiA6IGF0dGFjaCBjbGFzcyBiYXNlZCBvbiBmaXJzdCBjbGFzcyBpbiBsaXN0IG9mIGN1cnJlbnQgZWxlbWVudApGaWxlOiBqcXVlcnkuZGVwZW5kQ2xhc3MuanMKQ29weXJpZ2h0IChjKSAyMDA5IEVnb3IgSG1lbHlvZmYsIGhtZWx5b2ZmQGdtYWlsLmNvbQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCmpRdWVyeSBTbGlkZXIgUGx1Z2luCkVnb3IgS2htZWxldiAtIGh0dHA6Ly9ibG9nLmVnb3JraG1lbGV2LmNvbS8gLSBobWVseW9mZkBnbWFpbC5jb20K]]></data>
	</file>
	<file>
	  <filename>/doc/help_de_DE.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJyIC8+CjxoMz5XYXMgbWFjaHQgZGllc2VzIE1vZHVsPzwvaDM+CjxwPkRpZXNlcyBNb2R1bCBiaWV0ZXQgZWluZW4gd2VpdGVyZW4gSW5oYWx0c3R5cGVuICJFcndlaXRlcnRlciBJbmhhbHQiLjxiciAvPgpNaXQgZGllc2VtIEluaGFsdHN0eXBlbiBrYW5uIGRpZSBBZG1pbmlzdHJhdGlvbiBiZWltIEJlYXJiZWl0ZW4gdm9uIFNlaXRlbiBmbGV4aWJlbCBnZXN0YWx0ZXQgd2VyZGVuLCBpbmRlbSBtYW4gaW0gU2VpdGVuLVRlbXBsYXRlIGRlbiBlaW56ZWxuZW4gSW5oYWx0c2JsJm91bWw7Y2tlbiB3ZWl0ZXJlIFBhcmFtZXRlciBoaW56dWYmdXVtbDtndC48YnIgLz4KSW5oYWx0c2JsJm91bWw7Y2tlIGsmb3VtbDtubmVuIGluIEZvcm0gdmVyc2NoaWVkZW5lciBJbnB1dC1GZWxkZXIgd2llIERyb3Bkb3ducywgTWVocmZhY2hhdXN3YWhsZmVsZGVyIG9kZXIgQ2hlY2tib3hlbiBkYXJnZXN0ZWxsdCB3ZXJkZW4uPGJyIC8+CkRpZSBJbnB1dC1GZWxkZXIgayZvdW1sO25uZW4gd2VpdGVyaGluIGluIGVpZ2VuZW4gVGFicyBhbmdlemVpZ3Qgb2RlciBpbiBHcnVwcGVuIHp1c2FtbWVuZ2VmYXNzdCB3ZXJkZW4uPGJyIC8+CkF1w59lcmRlbSBoYXQgbWFuIGRpZSBNJm91bWw7Z2xpY2hrZWl0LCBTZWl0ZW4gb2RlciBlaW56ZWxuZSBCbCZvdW1sO2NrZSBudXIgZiZ1dW1sO3IgYmVzdGltbXRlIEdydXBwZW4gZGVzIEZyb250RW5kVXNlcnMgTW9kdWxzIGZyZWl6dWdlYmVuLjxiciAvPgpXZWl0ZXJoaW4gayZvdW1sO25uZW4gU2VpdGVuIGVpbiBTdGFydC0gdW5kIGVpbiBFbmRkYXR1bSBlcmhhbHRlbiwgd29taXQgU2VpdGVuIGF1dG9tYXRpc2NoIGFrdGl2L2luYWt0aXYgd2VyZGVuLjxiciAvPgpEaWUgZXJ3ZWl0ZXJ0ZW4gRWluc3RlbGx1bmdlbiBrJm91bWw7bm5lbiB2b24gJnV1bWw7YmVyZ2VvcmRuZXRlbiBTZWl0ZW4gJnV1bWw7YmVybm9tbWVuIHdlcmRlbi48L3A+CjxwPkRpZSBQYXJhbWV0ZXIgayZvdW1sO25uZW4gYXXDn2VyZGVtIG1pdCBIaWxmZSB2b24gZWluZmFjaGVtIFNtYXJ0eS1TeW50YXggZHluYW1pc2NoZSBXZXJ0ZSBlbnRoYWx0ZW4uPGJyIC8+CkQuaC4gbWFuIGthbm4gei5CLiBkYXMgRXJnZWJuaXMgZWluZXMgYmVudXR6ZXJkZWZpbmllcnRlbiBUYWdzLCBlaW5lcyBQbHVnaW5zLCBlaW5lcyBNb2R1bHMgb2RlciBlaW5mYWNoIG51ciBlaW5lcyBHbG9iYWxlbiBJbmhhbHRzYmxvY2tlcyBhbHMgV2VydCBmJnV1bWw7ciBlaW5lbiBQYXJhbWV0ZXIgZWluc2V0emVuIGxhc3Nlbi48L3A+CjxwPjxlbT48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IEluIG1hbmNoZW4gRiZhdW1sO2xsZW4gZW1wZmllbHQgZXMgc2ljaCwgYW5zdGVsbGUgZGVzIG5vcm1hbGVuIHtjb250ZW50fSBUYWdzIGRlbiB7QWR2YW5jZWRDb250ZW50fSBUYWcgenUgYmVudXR6ZW4uIChHcm/Dny0gdW5kIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbik8YnIgLz4KRGllIEZlaGxlcm1lbGR1bmcgIlBhcmFtZXRlciBbWF0gaXMgbm90IGtub3duIGJ5IE1vZHVsZSBbTW9kdWxuYW1lXSIga2FubiBkYW1pdCB6LkIuIHVtZ2FuZ2VuIHdlcmRlbi48L2VtPjwvcD4KPGgzPldpZSB3aXJkIGVzIHZlcndlbmRldD88L2gzPgo8cD5OYWNoIGRlciBJbnN0YWxsYXRpb24gd2lyZCBkZXIgQWRtaW5pc3RyYXRpb24gZWluIHdlaXRlcmVyIE1lbiZ1dW1sO3B1bmt0ICJFcndlaXRlcnVuZ2VuLSZndDtFcndlaXRlcnRlciBJbmhhbHQiIGhpbnp1Z2VmJnV1bWw7Z3QuPGJyIC8+CkhpZXIgayZvdW1sO25uZW4gdmVyc2NoaWVkZW5lIEVpbnN0ZWxsdW5nZW4gdm9yZ2Vub21tZW4gd2VyZGVuLjxiciAvPgpCZWltIEJlYXJiZWl0ZW4gdm9uIFNlaXRlbiBzdGVodCBudW4gZWluIHdlaXRlcmVyIEluaGFsdHN0eXAgIkVyd2VpdGVydGVyIEluaGFsdCIgenVyIEF1c3dhaGwsIGRlciBkaWUgRnVua3Rpb25lbiBkZXMgTW9kdWxzIGJlcmVpdHN0ZWxsdC48L3A+CjxwPjxzdHJvbmcgc3R5bGU9ImNvbG9yOnJlZCI+V0FSTlVORyEgPC9zdHJvbmc+PGJyIC8+Cldlbm4gU2llIGRhcyBNb2R1bCBkZWluc3RhbGxpZXJlbiwgb2huZSBhbGxlIFNlaXRlbiB2b20gVHlwICdFcndlaXRlcnRlciBJbmhhbHQnIHdpZWRlciB6dXImdXVtbDtjayBhdWYgZGVuIFN0YW5kYXJkLUluaGFsdHN0eXBlbiB6dSBzZXR6ZW4sIGZ1bmt0aW9uaWVydCBJaHJlIENNU21zIEluc3RhbGxhdGlvbiBuaWNodCBtZWhyITxiciAvPgpTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgYWxsZSBTZWl0ZW4gdm9tIFR5cCAnRXJ3ZWl0ZXJ0ZXIgSW5oYWx0JyB2b3IgZGVyIERlaW5zdGFsbGF0aW9uIHdpZWRlciBnZcOkbmRlcnQgb2RlciBnZWwmb3VtbDtzY2h0IHdlcmRlbiEgKG51dHplbiBTaWUgZGllIE1vZHVsZWluc3RlbGx1bmcgJ0FrdGlvbiBiZWltIERlaW5zdGFsbGllcmVuJyB1bWQgZGllcyBhdXRvbWF0aXNjaCB2b3J6dW5laG1lbi4pPC9wPgo8cD5NaXQgSGlsZmUgZm9sZ2VuZGVyIFBhcmFtZXRlciBiZWltIEVyc3RlbGxlbiB2b24gSW5oYWx0c2JsJm91bWw7Y2tlbiBpbSBTZWl0ZW4tVGVtcGxhdGUgayZvdW1sO25uZW4gZGllc2UgRnVua3Rpb25lbiB2ZXJ3ZW5kZXQgd2VyZGVuOjwvcD4KPGgzPldlbGNoZSBQYXJhbWV0ZXIgc2luZCB2ZXJmJnV1bWw7Z2Jhcj88L2gzPgo8cD4oYWxsZSBQYXJhbWV0ZXIgc2luZCBvcHRpb25hbCk8L3A+CjxwPjxzdHJvbmc+U3RhbmRhcmQgUGFyYW1hdGVyOjwvc3Ryb25nPjwvcD4KPHA+PGVtPjxhIGhyZWY9Imxpc3R0YWdzLnBocD9hY3Rpb249c2hvd3BsdWdpbmhlbHAmcGx1Z2luPWNvbnRlbnQiPihzaWVoZSBhdWNoIFRhZy1IaWxmZSBkZXMge2NvbnRlbnR9LVRhZ3MpPC9hPjwvZW0+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YmxvY2s8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPgoJCQkJRXJtJm91bWw7Z2xpY2h0IGRhcyBIaW56dWYmdXVtbDtnZW4gbWVocmVyZXIgSW5oYWx0c2JsJm91bWw7Y2tlLiBCZWltIEJlYXJiZWl0ZW4gZWluZXIgU2VpdGUgd2lyZCBmJnV1bWw7ciBqZWRlbiBCbG9jayBlaW4gZWlnZW5lcyBJbnB1dC1GZWxkIGFuZ2V6ZWlndC48YnIgLz4KCQkJCUJzcC46IDxjb2RlPntjb250ZW50IGJsb2NrPSZxdW90O1p3ZWl0ZXIgSW5oYWx0c2Jsb2NrJnF1b3Q7fTwvY29kZT48YnIgLz4KCQkJCTxlbT48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERlciBOYW1lIGRlcyBJbmhhbHRzYmxvY2tzIGRhcmYgbnVyIEJ1Y2hzdGFiZW4sIFphaGxlbiB1bmQgVW50ZXJzdHJpY2hlIGVudGhhbHRlbi4gKGtlaW5lIExlZXItIG9kZXIgU29uZGVyemVpY2hlbiwgVW1sYXV0ZSBldGMuKS4gQW5kZXJlbmZhbGxzIHdpcmQgZGVyIEJsb2NrbmFtZSAmYXVtbDtobmxpY2ggZGVtIFNlaXRlbmFsaWFzIGVudHByZWNoZW5kIGtvbnZlcnRpZXJ0LjwvZW0+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+d3lzaXd5ZzwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPldlbm4gZGllc2VyIFdlcnQgYXVmIGZhbHNlIGdlc2V0enQgd2lyZCwgd2lyZCBpbiBkZXIgQWRtaW5pc3RyYXRpb24gYmVpbSBCZWFyYmVpdGVuIHZvbiBTZWl0ZW4ga2VpbiBXWVNJV1lHIEVkaXRvciBmJnV1bWw7ciBkaWVzZW4gQmxvY2sgdmVyd2VuZGV0LjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+b25lbGluZTwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPldlbm4gZGllc2VyIFdlcnQgYXVmIGZhbHNlIGdlc2V0enQgd2lyZCwgd2lyZCBpbiBkZXIgQWRtaW5pc3RyYXRpb24gYmVpbSBCZWFyYmVpdGVuIHZvbiBTZWl0ZW4gbnVyIGVpbiBlaW5mYWNoZXMgZWluemVpbGlnZXMgVGV4dC1JbnB1dC1GZWxkIGFuZ2V6ZWlndC48L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPlN0YWJkYXJkaW5oYWx0IGJlaW0gRXJzdGVsbGVuIG5ldWVyIFNlaXRlbi48L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmxhYmVsPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5EaWUgRWluZ2FiZWF1ZmZvcmRlcnVuZyBmJnV1bWw7ciBkZW4gSW5oYWx0c2Jsb2NrIGluIGRlciBBZG1pbmlzdHJhdGlvbiBiZWltIEJlYXJiZWl0ZW4gdm9uIFNlaXRlbi4gV2VubiBkaWVzZXIgUGFyYW1ldGVyIGZlaGx0LCB3aXJkIGRlciB1bmtvbnZlcnRpZXJ0ZSBXZXJ0IGRlcyBQYXJhbWV0ZXJzIGJsb2NrIHZlcndlbmRldC48L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFzc2lnbjwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlXZWlzdCBkZW4gSW5oYWx0IGRpZXNlcyBCbG9ja3MgYXVmIGRlciBJbnRlcm5ldHNlaXRlIGVpbmVyIFNtYXJ0eSBWYXJpYWJsZW4genUuPGJyIC8+CgkJCQlCc3AuOiA8Y29kZT57Y29udGVudCBhc3NpZ249InBhZ2Vjb250ZW50In08YnIgLz4KCQkJCXt0YWJsZV9vZl9jb250ZW50cyB0aGVwYWdlY29udGVudD0mcXVvdDskcGFnZWNvbnRlbnQmcXVvdDt9PC9jb2RlPjxiciAvPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8cD48c3Ryb25nPkVyd2VpdGVydGUgUGFyYW1ldGVyOjwvc3Ryb25nPjwvcD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX3R5cGU8L3R0PiAodGV4dCxjaGVja2JveCxkcm9wZG93bixzZWxlY3RfbXVsdGlwbGUsZGF0ZSxtdWx0aV9pbnB1dCxzbGlkZXIsY29sb3JwaWNrZXIpIAoJCTx1bD4KCQkJPGxpPkdpYnQgYW4sIGluIHdlbGNoZXIgRm9ybSBkZXIgSW5oYWx0c2Jsb2NrIGluIGRlciBBZG1pbmlzdHJhdGlvbiBiZWltIEJlYXJiZWl0ZW4gdm9uIFNlaXRlbiBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5wYWdlX3RhYjwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlNaXQgZGllc2VtIFBhcmFtZXRlciBrJm91bWw7bm5lbiBJbmhhbHRzYmwmb3VtbDtja2UgaW4gZGVyIEFkbWluaXN0cmF0aW9uIGJlaW0gQmVhcmJlaXRlbiB2b24gU2VpdGVuIGluIGJlc3RpbW10ZW4gVGFicyBhbmdlemVpZ3Qgd2VyZGVuLjxiciAvPgoJCQkJTSZvdW1sO2dsaWNoZSBXZXJ0ZSBzaW5kIHouQi4gJnF1b3Q7bWFpbiZxdW90OyAoID0gVGFiICZxdW90O0hhdXB0bWVuJnV1bWw7JnF1b3Q7KSwgJnF1b3Q7b3B0aW9ucyZxdW90OyAoID0gVGFiICZxdW90O09wdGlvbmVuJnF1b3Q7KSwgb2RlciBqZWRlciBhbmRlcmUgYmVsaWViaWdlIFdlcnQgKGVyemV1Z3QgYXV0b21hdGlzY2ggZWluZW4gd2VpdGVyZW4gVGFiKS48YnIgLz4KCQkJCTxlbT5NYW4ga2FubiBzb21pdCB6LkIuIGVpbmUgQ2hlY2tib3ggaW0gVGFiICJPcHRpb25lbiIgaGluenVmJnV1bWw7Z2VuIG9kZXIgZWluZW4gZWlnZW5lbiBUYWIgZXJzdGVsbGVuLjwvZW0+LgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX3RhYjwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+TWl0IGRpZXNlbSBQYXJhbWV0ZXIgayZvdW1sO25uZW4gZGllIEluaGFsdHNibCZvdW1sO2NrZSBub2NobWFscyBpbiB3ZWl0ZXJlICJVbnRlcnRhYnMiIGlubmVyaGFsYiBkZXIgIkhhdXB0dGFicyIgdW50ZXJ0ZWlsdCB3ZXJkZW4uPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja19ncm91cDwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIG1hbiBtZWhyZXJlIEluaGFsdHNibCZvdW1sO2NrZSBpbiBlaW5lbSBGaWVsZHNldCBncnVwcGllcmVuLjxiciAvPgoJCQkJRGllIEdydXBwZW4gayZvdW1sO25uZW4gYXVjaCBhdWYgbWVocmVyZSBUYWJzIHZlcnRlaWx0IHdlcmRlbi4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hY3RpdmU8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCVdlbm4gZGllc2VyIFdlcnQgYXVmIGZhbHNlIGdlc2V0enQgd2lyZCwgaXN0IGRlciBCbG9jayBkZWFrdGl2aWVydC48YnIgLz4KCQkJCURlYWt0aXZpZXJ0ZSBJbmhhbHRzYmwmb3VtbDtja2Ugd2VyZGVuIHdlZGVyIGluIGRlciBBZG1pbmlzdHJhdGlvbiBiZWltIEJlYXJiZWl0ZW4gdm9uIFNlaXRlbiwgbm9jaCBhdWYgZGVyIEludGVybmV0c2VpdGUgYW5nZXplaWd0LgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVkaXRvcl9ncm91cHM8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPgoJCQkJRGllc2VyIFBhcmFtZXRlciBpc3QgJmF1bWw7aG5saWNoIGRlbiAiWnVzJmF1bWw7dHpsaWNoZW4gQmVhcmJlaXRlcm4iIGVpbmVyIFNlaXRlLiBFciBnaWx0IGFsbGVyZGluZ3MgbnVyIGYmdXVtbDtyIGVpbnplbG5lIEluaGFsdHNibCZvdW1sO2NrZS48YnIgLz4KCQkJCU1pdCBkaWVzZW0gUGFyYW1ldGVyIGsmb3VtbDtubmVuIEluaGFsdHNibCZvdW1sO2NrZSBudXIgdm9uIGJlc3RpbW10ZW4gQmVudXR6ZWdydXBwZW4gZGVyIEFkbWluaXN0cmF0aW9uIGJlYXJiZWl0ZXQgd2VyZGVuLjxiciAvPgoJCQkJKE5hbWUgZGVyIEJlbnV0emVyZ3J1cHBlIGVpbnRyYWdlbjsgbWVocmVyZSBHcnVwcGVuIG1pdCBLb21tYSBnZXRyZW5udCkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lZGl0b3JfdXNlcnM8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPgoJCQkJRGllc2VyIFBhcmFtZXRlciBpc3QgJmF1bWw7aG5saWNoIGRlbiAiWnVzJmF1bWw7dHpsaWNoZW4gQmVhcmJlaXRlcm4iIGVpbmVyIFNlaXRlLiBFciBnaWx0IGFsbGVyZGluZ3MgbnVyIGYmdXVtbDtyIGVpbnplbG5lIEluaGFsdHNibCZvdW1sO2NrZS48YnIgLz4KCQkJCU1pdCBkaWVzZW0gUGFyYW1ldGVyIGsmb3VtbDtubmVuIEluaGFsdHNibCZvdW1sO2NrZSBudXIgdm9uIGJlc3RpbW10ZW4gQmVudXR6ZXJuIGRlciBBZG1pbmlzdHJhdGlvbiBiZWFyYmVpdGV0IHdlcmRlbi48YnIgLz4KCQkJCShOYW1lIGRlcyBCZW51dHplcnMgZWludHJhZ2VuOyBtZWhyZXJlIEJlbnV0emVyIG1pdCBLb21tYSBnZXRyZW5udCkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxlbT48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IHdlbm4gZGllIFBhcmFtZXRlciA8dHQ+ZWRpdG9yX3VzZXJzPC90dD4gdW5kIDx0dD5lZGl0b3JfZ3JvdXBzPC90dD4gbmljaHQgdmVyd2VuZGV0IHdlcmRlbiwgayZvdW1sO25uZW4gZGllIEJsJm91bWw7Y2tlIHZvbiBqZWRlbSBCZW51dHplciBiZWFyYmVpdGV0IHdlcmRlbi48YnIgLz4KCURpZSBXZXJ0ZSBoYWJlbiBrZWluZW4gRWluZmx1c3MsIHdlbm4gZGVyIEJlbnV0emVyIGRlciBHcnVwcGUgIkFkbWluIiBhbmdlaCZvdW1sO3J0LjxiciAvPgoJVW0gZWluZW0gQmVudXR6ZXIgenUgZXJsYXViZW4gYWxsZSBJbmhhbHRzYmwmb3VtbDtja2UgdW5hYmgmYXVtbDtuZ2lnIHZvbiBkZW4gYmVpZGVuIFBhcmFtZXRlcm4genUgYmVhcmJlaXRlbiwgbXVzcyBkZXIgQmVudXR6ZXIgZWluZXIgR3J1cHBlIGFuZ2VoJm91bWw7cmVuLCBkaWUgZGllIEJlcmVjaHRpZ3VuZyAiTWFuYWdlIGFsbCBBZHZhbmNlZENvbnRlbnQgQmxvY2tzIiBoYXQuPC9lbT48YnIgLz48YnIgLz4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5mZXVfYWNjZXNzPC90dD4KCQk8dWw+CgkJCTxsaT4KCQkJCURpZXNlciBQYXJhbWV0ZXIgbGVndCBmZXN0LCB3ZWxjaGUgQmVudXR6ZXJncnVwcGVuIGRlcyBGcm9udEVuZFVzZXJzIE1vZHVscyBkaWVzZW4gQmxvY2sgYXVmIGRlciBJbnRlcm5ldHNlaXRlIHNlaGVuIGQmdXVtbDtyZmVuLjxiciAvPgoJCQkJKElEIGRlciBCZW51dHplcmdydXBwZSBhbmdlYmVuOyBtZWhyZXJlIElEcyBtaXQgS29tbWEgZ2V0cmVubnQpPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjdGlvbjwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPgoJCQkJRGllc2VyIFBhcmFtZXRlciBnaWJ0IGFuLCBvYiBhbnN0ZWxsZSBkZXMgSW5oYWx0c2Jsb2NrcyBkYXMgTG9naW4tRm9ybXVsYXIgZGVzIEZyb250RW5kVXNlcnMgTW9kdWxzIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbCwgd2VubiBkaWVzZXIgQmxvY2sgbnVyIGYmdXVtbDtyIGJlc3RpbW10ZSBCZW51dHplcmdydXBwZW4gZnJlaWdlZ2ViZW4gdW5kIGRlciBCZXN1Y2hlciBuaWNodCBlaW5nZWxvZ2d0IGlzdC48YnIgLz4KCQkJCTxlbT48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERhcyBGb3JtdWxhciB3aXJkIG51ciBlaW4gZWluemlnZXMgTWFsIGFuZ2V6ZWlndC48L2VtPjxiciAvPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFsbG93X25vbmU8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT5HaWJ0IGFuLCBvYiBkZXIgQmxvY2sgbGVlciBzZWluIGRhcmYgb2RlciBuaWNodC48YnIgLz4KCQkJV2VubiBkaWVzZXIgV2VydCBhdWYgZmFsc2UgZ2VzZXR6dCB3aXJkIHVuZCBkZXIgSW5oYWx0IGRlcyBCbG9ja3MgaXN0IGxlZXIsIHdpcmQgZGVyIFdlcnQgZGVzIFBhcmFtZXRlcnMgZGVmYXVsdCB2ZXJ3ZW5kZXQuPGJyIC8+CgkJCVd1cmRlIGRlciBCbG9jayBtaXQgZGVtIFBsdWdpbiB7Y29udGVudF9pbWFnZX0gZXJzdGVsbHQsIGZlaGx0IGRpZSBPcHRpb24gIk5pY2h0cyIgaW0gQmlsZC1Ecm9wZG93bi48L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNtYXJ0eTwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPgoJCQkJU2NoYWx0ZXQgZGllIFZlcmFyYmVpdHVuZyBkZXIgUGFyYW1ldGVyd2VydGUgbWl0IEhpbGZlIHZvbiBTbWFydHkgZWluL2F1cy48YnIgLz4KCQkJCVdlbm4gZGllc2VyIFdlcnQgYXVmIHRydWUgZ2VzZXR6dCB3aXJkLCB3aXJkIGplZGVyIFBhcmFtZXRlciBtaXQgSGlsZmUgZGVyIFNtYXJ0eSBUZW1wbGF0ZSBFbmdpbmUgdmVyYXJiZWl0ZXQuPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5IaW53ZWlzOiA8L3N0cm9uZz4gRGllIFdlcnRlIG0mdXVtbDtzc2VuIGFscyBTbWFydHktU3ludGF4IGdla2VubnplaWNobmV0IHdlcmRlbi4gSGllciBrJm91bWw7bm5lbiBhYmVyIG5pY2h0IFN0YW5kYXJkIFNtYXJ0eS1CZWdyZW56ZXIgKHsuLi59KSB2ZXJ3ZW5kZXQgd2VyZGVuLCBkYSBlcyB6dSBGZWhsZXJuIGF1ZiBkZXIgSW50ZXJuZXRzZWl0ZSBmJnV1bWw7aHJ0LjxiciAvPgoJCQkJRGFoZXIgd2VyZGVuIHN0YXR0ZGVzc2VuIGRpZSBaZWljaGVuIDo6OiBhbHMgQmVncmVuemVyIHZlcndlbmRldC48YnIgLz48L2VtPgoJCQkJQnNwLjogPGNvZGU+e2NvbnRlbnQgYmxvY2s9JnF1b3Q7S2F0ZWdvcmllbiZxdW90OyBsYWJlbD0mcXVvdDtXJmF1bWw7aGxlbiBTaWUgZWluZSBLYXRlZ29yaWUmcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDtkcm9wZG93biZxdW90OyBpdGVtcz0mcXVvdDs6OjpnbG9iYWxfY29udGVudCBuYW1lPSYjMDM5O2NhdGVnb3J5bGlzdCYjMDM5Ozo6OiZxdW90OyBzbWFydHk9JnF1b3Q7dHJ1ZSZxdW90O308L2NvZGU+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVzY3JpcHRpb248L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT5FaW5lIGRldGFpbGllcnRlcmUgQmVzY2hyZWlidW5nIGRlcyBJbmhhbHRzYmxvY2tzLjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+Y29sbGFwc2U8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCUdpYnQgYW4sIG9iIGVpbiBCbG9jayBpbiBkZXIgQWRtaW5pc3RyYXRpb24gYmVpbSBCZWFyYmVpdGVuIHZvbiBTZWl0ZW4gZWluLSAodHJ1ZSkgb2RlciBhdXNnZWtsYXBwdCAoZmFsc2UpIHNlaW4gc29sbC48YnIgLz4KCQkJCTxlbT48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IGlzdCBpbW1lciBmYWxzZSwgd2VubiBkZXIgUGFyYW1ldGVyIG5vX2NvbGxhcHNlPXRydWUgdmVyd2VuZGV0IHdpcmQuPC9lbT48YnIgLz4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ub19jb2xsYXBzZTwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPgoJCQkJV2VubiBkaWVzZXIgV2VydCBhdWYgZmFsc2UgZ2VzZXR6dCBpc3QsIGthbm4gZGVyIEJsb2NrZSBuaWNodCB6dXNhbW1lbmdla2xhcHB0IHdlcmRlbi48YnIgLz4KCQkJCTxlbT48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IHdlbm4gZGVyIFdlcnQgYXVmIHRydWUgZ2VzZXR6dCBpc3QsIGlzdCBkZXIgUGFyYW1ldGVyIGNvbGxhcHNlIGF1dG9tYXRpc2NoIGltbWVyIGZhbHNlLjwvZW0+PGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+cmVxdWlyZWQ8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCUdpYnQgYW4sIG9iIGVpbiBCbG9jayBlaW4gUGZsaWNodGZlbGQgaXN0ICh0cnVlKSBvZGVyIG5pY2h0IChmYWxzZSkuPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+UGFyYW1ldGVyIGYmdXVtbDtyIENoZWNrYm94ZW46PC9zdHJvbmc+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVmYXVsdDwvdHQ+ICh0cnVlL2ZhbHNlKSAKCQk8dWw+CgkJCTxsaT4KCQkJCUFrdGl2aWVydC9EZWFrdGl2aWVydCBkaWUgQ2hlY2tib3ggYWxzIFN0YW5kYXJkd2VydC48YnIgLz4KCQkJCTxlbT48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+ICZxdW90OzEmcXVvdDsgPSBha3RpdmllcnQ7ICZxdW90OzAmcXVvdDsgZGVha3RpdmllcnQ8YnIgLz48L2VtPgoJCQkJQnNwLjogPGNvZGU+e2NvbnRlbnQgYmxvY2tfdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyBkZWZhdWx0PTF9PC9jb2RlPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8cD48c3Ryb25nPlBhcmFtZXRlciBmJnV1bWw7ciBDb2xvcnBpY2tlcjo8L3N0cm9uZz4ga2VpbmUgd2VpdGVyZW4gUGFyYW1ldGVyPC9wPgo8cD48c3Ryb25nPlBhcmFtZXRlciBmJnV1bWw7ciBTbGlkZXI6PC9zdHJvbmc+IChzaWVoZSBhdWNoIERva3VtZW50YXRpb24gZGVzIHZlcndlbmRldGVuIGpRdWVyeSBTbGlkZXIgUGx1Z2lucyk8L3A+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5mcm9tPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQlTdGFydHdlcnQKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnRvPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQlFbmR3ZXJ0CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGVwPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQlaw6RobHNjaHJpdHRlIGluIGRlbmVuIGRpZSBXZXJ0ZSBnZcOkbmRlcnQgd2VyZGVuCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5yb3VuZDwvdHQ+IChpbnQpIAoJCTx1bD4KCQkJPGxpPgoJCQkJU3RlbGxlbiBuYWNoIGRlbSBLb21tYQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aGV0ZXJvZ2VuZWl0eTwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJVG9EbwoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGltZW5zaW9uPC90dD4gKHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlFaW5oZWl0IGhpbnRlciBkZW4gV2VydGVuLgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+bGltaXRzPC90dD4gKHRydWUvZmFsc2UpIAoJCTx1bD4KCQkJPGxpPgoJCQkJVG9EbwoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2NhbGU8L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT4KCQkJCVRvRG8KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNraW48L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT4KCQkJCUF1c3NlaGVuIGRlcyBzbGlkZXJzCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5jYWxjdWxhdGU8L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT4KCQkJCUVpbmUgSmF2YXNjcmlwdC1GdW5rdGlvbiB6dXIgQmVyZWNobnVuZyBkZXIgYW5nZXplaWd0ZW4gV2VydGUKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pm9uc3RhdGVjaGFuZ2U8L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT4KCQkJCUVpbmUgSmF2YXNjcmlwdC1GdW5rdGlvbiBkaWUgYXVzZ2Vmw7xocnQgd2VyZGVuIHNvbGwsIHNvYmFsZCBkZXIgV2VydCBnZcOkbmRlcnQgd2lyZAoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+Y2FsbGJhY2s8L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT4KCQkJCUVpbmUgSmF2YXNjcmlwdC1GdW5rdGlvbiBkaWUgYXVzZ2Vmw7xocnQgd2VyZGVuIHNvbGwsIG5hY2hkZW0gZGVyIFdlcnQgZ2XDpG5kZXJ0IHd1cmRlCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+UGFyYW1ldGVyIGYmdXVtbDtyIERyb3Bkb3ducy9NZWhyZmFjaGF1c3dhaGw6PC9zdHJvbmc+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aXRlbXM8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPkRpZSBCZXplaWNobnVuZyBkZXIgZWluemVsbmVuIEVpbnRyJmF1bWw7Z2UuIChtaXQgZWluZW0gYmVzdGltbXRlbiBaZWljaGVuIGdldHJlbm50IC0gU3RhbmRhcmQgaXN0IHwgKHBpcGUpKTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVzPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5EaWUgV2VydGUgZGVyIGVpbnplbG5lbiBFaW50ciZhdW1sO2dlLiAobWl0IGVpbmVtIGJlc3RpbW10ZW4gWmVpY2hlbiBnZXRyZW5udCAtIFN0YW5kYXJkIGlzdCB8IChwaXBlKSk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGVtPjxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gd2VubiBlcyB3ZW5pZ2VyIFdlcnRlIGFscyBCZXplaWNobnVuZ2VuIGdpYnQsIHdlcmRlbiBkaWUgcmVzdGxpY2hlbiBCZXplaWNobnVuZ2VuIGFscyBXZXJ0ZSB2ZXJ3ZW5kZXQgKHVuZCB1bWdla2VocnQpLjwvZW0+PGJyIC8+PGJyIC8+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVmYXVsdDwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlBdXNnZXcmYXVtbDtobHRlIFN0YW5kYXJkd2VydGUgKG1pdCBlaW5lbSBiZXN0aW1tdGVuIFplaWNoZW4gZ2V0cmVubnQgLSBTdGFuZGFyZCBpc3QgfCAocGlwZSkpPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8ZW0+PHN0cm9uZz5IaW53ZWlzOjwvc3Ryb25nPiBWZXJ3ZW5kZW4gU2llIG51ciBkaWUgPHN0cm9uZz5XZXJ0ZTwvc3Ryb25nPiBkZXIgRWludHLDpGdlIGFscyBTdGFuZGFyZHdlcnQsIG5pY2h0IGRpZSBCZXplaWNobnVuZ2VuIGRlciBFaW50ciZhdW1sO2dlLjwvZW0+PGJyIC8+PGJyIC8+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVsaW1pdGVyPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5EYXMgVHJlbm56ZWljaGVuIG1pdCBkZW0gZGllIEJlemVpY2hudW5nZW4sIFdlcnRlIHVuZCBTdGFuZGFyZHdlcnRlIHZvbmVpbmFuZGVyIGdldHJlbm50IHdlcmRlbi4gKFN0YW5kYXJkIGlzdCB8IChwaXBlKSk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNpemU8L3R0PiAoaW50ZWdlcikKCQk8dWw+CgkJCTxsaT5EaWUgSCZvdW1sO2hlIGRlcyBJbnB1dGZlbGRlcywgd2VubiA8Y29kZT5ibG9ja190eXBlPSZxdW90O3NlbGVjdF9tdWx0aXBsZSZxdW90OzwvY29kZT4gdmVyd2VuZGV0IHdpcmQuPGVtPihTdGFuZGFyZCBpc3QgZGllIEFuemFobCBkZXIgRWludHImYXVtbDtnZSk8L2VtPjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c29ydGFibGU8L3R0PiAodHJ1ZS9mYWxzZSkgLSBudXIgYmVpIHNlbGVjdF9tdWx0aXBsZQoJCTx1bD4KCQkJPGxpPgoJCQkJV2lyZCBkaWVzZXIgV2VydCBhdWYgdHJ1ZSBnZXNldHp0LCB3ZXJkZW4gZGllIEVpbnRyJmF1bWw7Z2UgbmljaHQgYWxzIE1laHJmYWNoYXVzd2FobGZlbGQgYW5nZXplaWd0LCBzb25kZXJuIGFscyBlaW5lIExpc3RlIG1pdCBDaGVja2JveGVuLCBkaWUgbmV1IHNvcnRpZXJ0IHdlcmRlbiBrYW5uLjxiciAvPkplZGUgWmVpbGUgZWludGgmYXVtbDtsdCBkaWUgQmV6ZWljaG51bmcgZGVzIEVpbnRyYWdzIHVuZCBlaW5lIENoZWNrYm94IG1pdCBkZW0gV2VydCBkZXMgRWludHJhZ3MuPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5IaW53ZWlzOjwvc3Ryb25nPiBFcyB3aXJkIG51ciBkaWUgUmVpaGVuZm9sZ2UgZGVyIDxzdHJvbmc+YXVzZ2V3JmF1bWw7aGx0ZW48L3N0cm9uZz4gRWludHImYXVtbDtnZSBnZXNwZWljaGVydC4gQXVzZ2V3JmF1bWw7aGx0ZSBFaW50ciZhdW1sO2dlIHdlcmRlbiBpbW1lciBhbHMgZXJzdGVzIGFuZ2V6ZWlndC48YnIgLz4KCQkJCU5pY2h0IGF1c2dldyZhdW1sO2hsdGUgRWludHImYXVtbDtnZSBzdGVoZW4gZGFydW50ZXIgaW4gZGVyIFJlaWhlbmZvbGdlLCB3aWUgc2llIGltIFRlbXBsYXRlIGRlZmluaWVydCB3dXJkZW4uPC9lbT4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbWV0ZXIgZiZ1dW1sO3IgRGF0dW1zYmwmb3VtbDtja2U6PC9zdHJvbmc+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c3RlcF9ob3VyczwvdHQ+IChpbnQpIAoJCTx1bD4KCQkJPGxpPgoJCQkJWiZhdW1sO2hsc2Nocml0dGUgZGVyIFN0dW5kZW4gaW0gVWhyemVpdC1Ecm9wZG93bi4gKFN0YW5kYXJkIGlzdCAxKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0YXJ0X2hvdXI8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCUJlZ2lubiBkZXIgU3R1bmRlbiBpbSBVaHJ6ZWl0LURyb3Bkb3duLiAoU3RhbmRhcmQgaXN0IDApCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZW5kX2hvdXI8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCUVuZGUgZGVyIFN0dW5kZW4gaW0gVWhyemVpdC1Ecm9wZG93bi4gKFN0YW5kYXJkIGlzdCAxMiBvZGVyIDIzIC0gYWJoJmF1bWw7bmdpZyB2b20gUGFyYW1ldGVyIHNob3cyNGgpCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2hvdzI0aDwvdHQ+ICh0cnVlL2ZhbHNlKSAKCQk8dWw+CgkJCTxsaT4KCQkJCVdlbm4gZGllc2VyIFdlcnQgYXVmIGZhbHNlIGdlc2V0enQgd2lyZCwgd2VyZGVuIGRpZSBTdHVuZGVuIGluIDEyaCBBbnplaWdlIG1pdCBBTS9QTSBhbmdlemVpZ3QuIChTdGFuZGFyZCBpcyB0cnVlKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXBfbWludXRlczwvdHQ+IChpbnQpIAoJCTx1bD4KCQkJPGxpPgoJCQkJWiZhdW1sO2hsc2Nocml0dGUgZGVyIE1pbnV0ZW4gaW0gVWhyemVpdC1Ecm9wZG93bi4gKFN0YW5kYXJkIGlzIDEwKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0YXJ0X21pbnV0ZTwvdHQ+IChpbnQpIAoJCTx1bD4KCQkJPGxpPgoJCQkJQmVnaW5uIGRlciBNaW51dGVuIGltIFVocnplaXQtRHJvcGRvd24uIChTdGFuZGFyZCBpc3QgMCkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lbmRfbWludXRlPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQlFbmRlIGRlciBNaW51dGVuIGltIFVocnplaXQtRHJvcGRvd24uIChTdGFuZGFyZCBpc3QgNTkpCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2hvd19jbG9jazwvdHQ+ICh0cnVlL2ZhbHNlKSAKCQk8dWw+CgkJCTxsaT4KCQkJCVdlbm4gZGllc2VyIFdlcnQgYXVmIGZhbHNlIGdlc2V0enQgaXN0LCB3aXJkIGtlaW4gVWhyemVpdC1Ecm9wZG93biBhbmdlemVpZ3QuIChTdGFuZGFyZCBpc3QgdHJ1ZSk8YnIgLz4KCQkJCTxlbT48c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IEJlaSBmYWxzZSB3aXJkIGFscyBVaHJ6ZWl0IDAwOjAwIFVociBnZXNwZWljaGVydDwvZW0+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGF0ZV9mb3JtYXQ8L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT4KCQkJCURhcyBzdHJmdGltZSBEYXR1bXNmb3JtYXQgZiZ1dW1sO3IgZGllIEFuemVpZ2UgYXVmIGRlciBJbnRlcm5ldHNlaXRlLgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgoKPHA+PHN0cm9uZz5QYXJhbWV0ZXIgZiZ1dW1sO3IgJnF1b3Q7bXVsdGlfaW5wdXQmcXVvdDs6PC9zdHJvbmc+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aW5wdXRzPC90dD4KCQk8dWw+CgkJCTxsaT4KCQkJCUVpbmUgTGlzdGUgdm9uIElucHV0LUlEcywgZGllIGluIGRlbiBNb2R1bGVpbnN0ZWxsdW5nZW4gZXJzdGVsbHQgd3VyZGVuLiAobWVocmVyZSBXZXJ0ZSBtaXQgS29tbWEgZ2V0cmVubnQpPGJyIC8+CgkJCQlFcyBrJm91bWw7bm5lbiBkaWVzZWxiZW4gSURzIG1laHJmYWNoIHZlcndlbmRldCB3ZXJkZW4uCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVfZGVsaW1pdGVyPC90dD4gKGFueSBzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJRWluIFRyZW5uemVpY2hlbiBmJnV1bWw7ciBkaWUgZWluemVsbmVuIFdlcnRlIGRlcyBqZXdlaWxpZ2VuIE11bHRpSW5wdXRzLjxiciAvPgoJCQkJU3RhbmRhcmQgaXN0ICZxdW90OyZsdDshLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsbGltaXRlciAtLSZndDsmcXVvdDsKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pbnB1dF9kZWxpbWl0ZXI8L3R0PiAoYW55IHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlFaW4gVHJlbm56ZWljaGVuIGYmdXVtbDtyIGRpZSBlaW56ZWxuZW4gTXVsdGlJbnB1dHMuPGJyIC8+CgkJCQlEZWZhdWx0IGlzICZxdW90OyZsdDshLS0gbXVsdGlfaW5wdXRfZGVsbGltaXRlciAtLSZndDsmcXVvdDsKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8cD48c3Ryb25nPldhcyBpc3QgZWluIG11bHRpX2lucHV0Pzwvc3Ryb25nPjwvcD4KCQk8cD5FaW4gbXVsdGlfaW5wdXQgaXN0IGVpbiBCbG9jaywgZGVyIGF1cyBtZWhyZXJlbiBJbnB1dGZlbGRlcm4gYmVzdGVoZW4ga2Fubi48YnIgLz4KCQlEaWVzZSBrJm91bWw7bm5lbiBpbiBkZW4gTW9kdWxlaW5zdGVsbHVuZ2VuIGZlc3RnZWxlZ3Qgd2VyZGVuLiBEYWJlaSBnaWx0IGYmdXVtbDtyIGplZGVuIG11bHRpX2lucHV0IGRlcnNlbGJlIFN5bnRheCB3aWUgaW4gZWluZW0gU2VpdGVudGVtcGxhdGUgYmVpbSBFcnN0ZWxsZW4gZWluZXMgSW5oYWx0c2Jsb2Nrcy48YnIgLz4KCQlNdWx0aUlucHV0cyBrJm91bWw7bm5lbiB2ZXJ3ZW5kZXQgd2VyZGVuLCB1bSB2ZXJzY2hpZWRlbmUgV2VydGUgaW4gZWluZW0gZWluemlnZW4gSW5oYWx0c2Jsb2NrIHp1IHNwZWljaGVybiwgd29iZWkgZiZ1dW1sO3IgamVkZW4gV2VydCB1bnRlcnNjaGllZGxpY2hlIElucHV0ZmVsZGVyIHZlcndlbmRldCB3ZXJkZW4gayZvdW1sO25uZW4uPGJyIC8+CgkJRGllc2UgQmwmb3VtbDtja2Uga2FubiBtYW4gei5CLiB2ZXJ3ZW5kZW4sIHVtIGVpbmUgTGlzdGUgbWl0IE1vZHVsZW4gdW5kIHp1Z2VoJm91bWw7cmlnZW4gUGFyYW1ldGVybiBhbnp1emVpZ2VuLjxiciAvPgoJCUJlaXNwaWVsIGVpbmVzIE11bHRpSW5wdXRzIGltIFNlaXRlbnRlbXBsYXRlOjwvcD4KCQk8cHJlPgoJCTxjb2RlPgoJCXtjb250ZW50IGJsb2NrPSZxdW90O21vZHVsZSZxdW90OyBsYWJlbD0mcXVvdDtTZWl0ZW5tb2R1bGUmcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDttdWx0aV9pbnB1dCZxdW90OyBpbnB1dHM9JnF1b3Q7bW9kdWxlLG1vZHVsZSxtb2R1bGUsbW9kdWxlJnF1b3Q7fQoJCTwvY29kZT4KCQk8L3ByZT4KCQk8cD5CZWlzcGllbCBmJnV1bWw7ciBlaW5lbiBNdWx0aUlucHV0IGRlciAmdXVtbDtiZXIgZGllIE1vZHVsZWluc3RlbGx1bmcgZXJzdGVsbHQgd2VyZGVuIGthbm4gKE5hbWU9JnF1b3Q7bW9kdWxlJnF1b3Q7KTo8L3A+CgkJPHByZT4KCQk8Y29kZT4KCQl7Y29udGVudCBibG9jaz0mcXVvdDttb2R1bGUgc2VsZWN0aW9uJnF1b3Q7IGJsb2NrX3R5cGU9JnF1b3Q7ZHJvcGRvd24mcXVvdDsgaXRlbXM9JnF1b3Q7fE5ld3N8R2FsbGVyeXxNZW51JnF1b3Q7fQoJCXtjb250ZW50IGJsb2NrPSZxdW90O21vZHVsZSBwYXJhbXMmcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7IG9uZWxpbmU9dHJ1ZX0KCQk8L2NvZGU+CgkJPC9wcmU+CgkJPHA+V2llIHNpZWh0IGRhcyBudW4gYmVpbSBCZWFyYmVpdGVuIGVpbmVyIFNlaXRlIGF1cz88L3A+CgkJPHA+RXMgd2lyZCBlaW4gRmllbGRzZXQgbWl0IGRlciBMZWdlbmRlICZxdW90O1NlaXRlbm1vZHVsZSZxdW90OyBhbmdlemVpZ3QuIDxiciAvPgoJCUluIGRpZXNlbSBGaWVsZHNldCB3aXJkIGRlciBNdWx0aUlucHV0ICZxdW90O21vZHVsZSZxdW90OyB2aWVybWFsIGFuZ2V6ZWlndC48YnIgLz4KCQlELmguIGVzIGdpYnQgdmllciBaZWlsZW4gbWl0IGplIHp3ZWkgSW5wdXRmZWxkZXJuLiBFaW4gRHJvcGRvd24gdW5kIGVpbiBlaW56ZWlsaWdlcyBUZXh0aW5wdXQuPC9wPgoJCTxwPldhcyB3aXJkIGdlc3BlaWNoZXJ0PzwvcD4KCQk8cD5EYXMgTW9kdWwgc3BlaWNoZXJ0IGRpZSBXZXJ0ZSBhbHMgZWluZW4gZWluemVsbmVuIEluaGFsdHNibG9jay4gRGFiZWkgd2VyZGVuIGRpZSBlaW56ZWxuZW4gSW5wdXRmZWxkZXIgbWl0IGRlbSBpbnB1dF9kZWxpbWl0ZXIgdm9uZWluYW5kZXIgZ2V0cmVubnQgdW5kIGRlcmVuIFdlcnQgbWl0IGRlbSBpbnB1dF92YWx1ZV9kZWxpbWl0ZXIuPGJyIC8+CgkJTmVobWVuIHdpciBtYWwgYW4sIGVzIHd1cmRlIGRhcyBOZXdzbW9kdWwgdmllcm1hbCBhdXNnZXcmYXVtbDtobHQsIGplZG9jaCBtaXQgdW50ZXJzY2hpZWRsaWNoZW4gUGFyYW1ldGVybiB3aWUgei5CLiBjYXRlZ29yeT0mcXVvdDsxJnF1b3Q7LCBjYXRlZ29yeT0mcXVvdDsyJnF1b3Q7LCBjYXRlZ29yeT0mcXVvdDszJnF1b3Q7LCBjYXRlZ29yeT0mcXVvdDs0JnF1b3Q7LjxiciAvPgoJCUluIGRlciBEYXRlbmJhbmsgd2lyZCBmb2xnZW5kZXMgZiZ1dW1sO3IgZGllc2VuIEJsb2NrIGdlc3BlaWNoZXJ0OjwvcD4KCQk8cHJlPgoJCTxjb2RlPgoJCU5ld3MmbHQ7IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGltaXRlciAtLSZndDtjYXRlZ29yeT0iMSImbHQ7IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLSZndDs8YnIgLz4KCQlOZXdzJmx0OyEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0mZ3Q7Y2F0ZWdvcnk9IjIiJmx0OyEtLSBtdWx0aV9pbnB1dF9kZWxpbWl0ZXIgLS0mZ3Q7PGJyIC8+CgkJTmV3cyZsdDshLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tJmd0O2NhdGVnb3J5PSIzIiZsdDshLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tJmd0OzxiciAvPgoJCU5ld3MmbHQ7IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGltaXRlciAtLSZndDtjYXRlZ29yeT0iNCIKCQk8L2NvZGU+CgkJPC9wcmU+CgkJPHA+SW0gU2VpdGVudGVtcGxhdGUga2FubiBtYW4gbnVuIGRlbiBJbmhhbHQgZGllc2VzIEJsb2NrcyBhbmhhbmQgZGVyIFRyZW5uemVpY2hlbiBhdWZ0ZWlsZW4gdW5kIGRpZSBhdXNnZXcmYXVtbDtobHRlbiBNb2R1bGUgaW5rbC4gaWhyZXIgamV3ZWlsaWdlbiBQYXJhbWV0ZXIgYXVmcnVmZW4uPC9wPgoJCTxwPktvbXBsZXR0ZXMgQmVpc3BpZWw6PC9wPgoJCTxwcmU+CgkJPGNvZGU+CgkJeyogSW5oYWx0c2Jsb2NrIGVyc3RlbGxlbiB1bmQgZGVyIFZhcmlhYmxlICRtb2R1bGVzIHp1d2Vpc2VuICp9CgkJe2NvbnRlbnQgYmxvY2s9JnF1b3Q7bWVpbmVfc2VpdGVubW9kdWxlJnF1b3Q7IGJsb2NrX3R5cGU9JnF1b3Q7bXVsdGlfaW5wdXQmcXVvdDsgaW5wdXRzPSZxdW90O01vZHVsZSxNb2R1bGUsTW9kdWxlLE1vZHVsZSZxdW90OyBhc3NpZ249JnF1b3Q7bW9kdWxlcyZxdW90O30KCQkKCQl7KiBJbmhhbHQgZGVyIFZhcmlhYmxlICRtb2R1bGVzIGluIGVpbiBBcnJheSBhdWZ0ZWlsZW4gdW5kIGluIGRlciBWYXJpYWJsZSAkbW9kdWxlcyBzcGVpY2hlcm47IHNvbWl0IGhhYmVuIHdpciBkaWUgTXVsdGlJbnB1dHMgKn0KCQl7YXNzaWduIHZhcj1tb2R1bGVzIHZhbHVlPSZxdW90OyZsdDshLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tJmd0OyZxdW90O3xleHBsb2RlOiRtb2R1bGVzfQoJCQoJCXsqIGplZGVuIE11bHRpSW5wdXQgZHVyY2hnZWhlbiAqfQoJCXtmb3JlYWNoIGZyb209JG1vZHVsZXMgaXRlbT0mcXVvdDttb2R1bGUmcXVvdDt9CgkJCXtpZiAkbW9kdWxlICE9ICcnfQoJCQkKCQkJCXsqIGRpZSBXZXJ0ZSBkZXMgTXVsdGlJbnB1dHMgaW4gZWluIEFycmF5IGF1ZnRlaWxlbjsgc29taXQgaGFiZW4gd2lyIE1vZHVsbmFtZSB1bmQgUGFyYW1ldGVyICp9CgkJCQl7YXNzaWduIHZhcj1tb2R1bGVfaXRlbXMgdmFsdWU9JnF1b3Q7Jmx0OyEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0mZ3Q7JnF1b3Q7fGV4cGxvZGU6JG1vZHVsZX0KCQkJCQoJCQkJe2lmICRtb2R1bGVfaXRlbXNbMF0gIT0gJiMwMzk7JiMwMzk7fQoJCQkJCgkJCQkJeyogTW9kdWwgYXVmcnVmZW4gKn0KCQkJCQl7aWYgaXNzZXQoJG1vZHVsZV9pdGVtc1sxXSl9CgkJCQkJCXtldmFsIHZhcj0kc21hcnR5LmxkZWxpbXxjYXQ6J2Ntc19tb2R1bGUgbW9kdWxlPSInfGNhdDokbW9kdWxlX2l0ZW1zWzBdfGNhdDonIiAnfGNhdDokbW9kdWxlX2l0ZW1zWzFdfGNhdDokc21hcnR5LnJkZWxpbX0KCQkJCQl7ZWxzZX0KCQkJCQkJe2V2YWwgdmFyPSRzbWFydHkubGRlbGltfGNhdDonY21zX21vZHVsZSBtb2R1bGU9Iid8Y2F0OiRtb2R1bGVfaXRlbXNbMF18Y2F0OiciJ3xjYXQ6JHNtYXJ0eS5yZGVsaW19CgkJCQkJey9pZn0KCQkJCQkKCQkJCXsvaWZ9CgkJCQkKCQkJey9pZn0KCQkKCQl7L2ZvcmVhY2h9CgkJPC9jb2RlPgoJCTwvcHJlPgoJPC9saT4KPC91bD4KCjxoMz5TdXBwb3J0PC9oMz4KPHA+RGllc2VzIE1vZHVsIGJpZXRldCBrZWluZSBrb21tZXJ6aWVsbGUgVW50ZXJzdCZ1dW1sO3R6dW5nLiBFcyBnaWJ0IGplZG9jaCBlaW5pZ2UgTSZvdW1sO2dsaWNoa2VpdGVuLCBIaWxmZSB6dSBmaW5kZW46PC9wPgo8dWw+Cgk8bGk+RGllIEhvbXBhZ2UgZGVzIFByb2pla3RlcyBpc3QgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jb250ZW50Mi8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvPC9hPjwvbGk+Cgk8bGk+V2VpdGVyZSBEaXNrdXNzaW9uZW4gZ2lidCBlcyBhdcOfZXJkZW0gaW4gZGVuIENNUyBNYWRlIFNpbXBsZSBGb3Jlbjo8YnIgLz4KCTxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLmRlIj5odHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5kZTwvYT48YnIgLz4KCTxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnPC9hPjwvbGk+CjwvdWw+CjxiciAvPgo8cD5CaXR0ZSBtZWxkZW4gU2llIEZlaGxlciBvZGVyIFZlcmJlc3NlcnVuZ3N2b3JzY2hsJmF1bWw7Z2UgYXVmIGRlciBQcm9qZWt0LUhvbWVwYWdlLjwvcD4KPGgzPkNvcHlyaWdodCB1bmQgTGl6ZW56PC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEwLTIwMTEsIEdlb3JnIEJ1c2NoIChOYU4pIDxhIGhyZWY9Im1haWx0bzpnZW9yZy5idXNjaEBnbXgubmV0Ij4mbHQ7Z2VvcmcuYnVzY2hAZ214Lm5ldCZndDs8L2E+LiBBbGxlIFJlY2h0ZSB2b3JiZWhhbHRlbi48L3A+CjxwPkRpZXNlcyBNb2R1bCB3dXJkZSB1bnRlciBkZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+IHZlciZvdW1sO2ZmZW50bGljaHQuIFNpZSBtJnV1bWw7c3NlbiBkaWVzZXIgTGl6ZW56IHp1c3RpbW1lbiwgYmV2b3IgU2llIGRhcyBNb2R1bCB2ZXJ3ZW5kZW4uPC9wPgo8cD4KCUxhdXQgZGVuIE51dHp1bmdzYmVzdGltbXVuZ2VuIGRlciBHUEwgd2lyZCBkaWVzZSBTb2Z0d2FyZSBzbyB2ZXImb3VtbDtmZmVudGxpY2h0IHdpZSBzaWUgaXN0LjxiciAvPgoJU2llIGVyaGVidCBrZWluZXJsZWkgQW5zcHJ1Y2ggYXVmIGVpbndhbmRmcmVpZSBGdW5rdGlvbi48YnIgLz4KCURhcyBNb2R1bCB3dXJkZSBlcnN0ZWxsdCwgaW4gZGVyIEhvZmZudW5nIG4mdXVtbDt0emxpY2ggenUgc2Vpbi48YnIgLz4KCUVzIGJlc3RlaHQga2VpbmVybGVpIEdhcmFudGllIGF1ZiBlaW5lbiBlaW53YW5kZnJlaWVuIE51dHplbi48YnIgLz4KCUJpdHRlIGxlc2VuIFNpZSBkaWUgTnV0enVuZ3NiZWRpbmd1bmdlbiBmJnV1bWw7ciBhdXNmJnV1bWw7aHJsaWNoZSBJbmZvcm1hdGlvbmVuLgo8L3A+CjxiciAvPgo=]]></data>
	</file>
	<file>
	  <filename>/doc/help_en_US.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGJyIC8+CjxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhbiBhZGRpdGlvbmFsIGNvbnRlbnR0eXBlIHdoZW4gYWRkaW5nL2VkaXRpbmcgcGFnZXMuPGJyIC8+CldpdGggdGhpcyBjb250ZW50dHlwZSB1c2VycyBjYW4gY3JlYXRlIGN1c3RvbSBpbnB1dCBjb250cm9scyBpbiBiYWNrZW5kIHRvIHRoZSBhZGQvZWRpdCBwYWdlIGFyZWEgYnkganVzdCB1c2luZyBhZGRpdGlvbmFsIHBhcmFtcyBpbiB0aGUgcGFnZSB0ZW1wbGF0ZSB3aGVuIGNhbGxpbmcgdGhlIGNvbnRlbnQuPGJyIC8+ClRoYXQgbWVhbnMgeW91IGNhbiBkaXNwbGF5IHRoZSBjb250ZW50IGJsb2NrcyBhcyBkcm9wZG93bnMsIG11bHRpcGxlIHNlbGVjdCBsaXN0cywgY2hlY2tib3hlcyBldGMuPGJyIC8+CllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBjb250ZW50IGJsb2NrcyBpbiBkaWZmZXJlbnQgdGFicyBvciBncm91cCB0aGVtIGluIGZpZWxkc2V0cy48L3A+CjxwPkl0IGFsc28gYWRkcyBhYmlsaXR5IHRvIGdyYW50IGFjY2VzcyBvZiBwYWdlcyBvciBzaW5nbGUgYmxvY2tzIG9ubHkgdG8gY2VydGFpbiB1c2VycyBvZiB0aGUgCkZyb250RW5kVXNlcnMgbW9kdWxlIGFuZCBoaWRlIHRoZSBjb250ZW50LCByZXBsYWNlIGl0IGJ5IHRoZSBsb2dpbiBmb3JtIG9mIHRoZSAKRnJvbnRFbmRVc2VycyBtb2R1bGUgb3IgcmVkaXJlY3QgdG8gYSBzcGVjaWZpZWQgcGFnZSBzaG93aW5nIHRoZSBsb2dpbiBmb3JtIG9yIApqdXN0IHJlZGlyZWN0IHdpdGhvdXQgZG9pbmcgYW55dGhpbmcgZWxzZSBpZiB0aGUgZnJvbnRlbmQgdXNlciBpcyBub3QgbG9nZ2VkIGluIG9yIGRvZXMgbm90IGJlbG9uZyB0byBhIGNlcnRhaW4gZ3JvdXAuPC9wPgpBZGRpdGlvbmFsbHkgcGFnZXMgY2FuIGhhdmUgYSBzdGFydCBhbmQgZW5kIGRhdGUgdG8gYWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWdlcyBhdXRvbWF0aWNhbGx5LjwvcD4KPHA+VGhlIGFkdmFuY2VkIGNvbnRlbnQgcHJvcGVydGllcyBjYW4gYmUgaW5oZXJpdGVkIGZyb20gcGFyZW50IHBhZ2VzLjwvcD4KPHA+WW91IGNhbiBldmVuIHVzZSBzbWFydHkgbG9naWMgaW4gcGFyYW1ldGVyIHZhbHVlcy4gVGhhdCBtZWFucyB5b3UgY2FuIHVzZSB0aGUgCnJlc3VsdCBvZiBhIHBsdWdpbiwgYW4gdWR0IG9yIGV2ZW4gYSBtb2R1bGUgb3IganVzdCB0aGUgY29udGVudCBvZiBhIGdsb2JhbCAKY29udGVudCBibG9jayBhcyBwYXJhbWV0ZXIgdmFsdWUgdG8gY3JlYXRlIGR5bmFtaWMgdmFsdWVzLjwvcD4KPHA+PGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBJbiBzb21lIGNhc2VzIGl0IGlzIHJlY29tZW5kZWQgdG8gdXNlIHRoZSB0aGUge0FkdmFuY2VkQ29udGVudH0gdGFnIGluIHRlbXBsYXRlIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQge2NvbnRlbnR9IHRhZy4gKGNhc2Ugc2Vuc2l0aXZlKTxiciAvPgplLmcuIHRoZSBhbm5veWluZyBtZXNzYWdlICJQYXJhbWV0ZXIgW1hdIGlzIG5vdCBrbm93biBieSBNb2R1bGUgW01vZHVsZW5hbWVdIiBjYW4gYmUgYXZvaWRlZCB3aXRoIGl0LiAob25seSBhZmZlY3RzIHRoZSBkZWZhdWx0IGNvbnRlbnQgYmxvY2sgYXQgdGhlIG1vbWVudCk8L2VtPjwvcD4KPGgzPkhvdyBpcyBpdCB1c2VkPzwvaDM+CjxwPkFmdGVyIGluc3RhbGxhdGlvbiB0aGUgbW9kdWxlIHNldHRpbmdzIGNhbiBiZSBmb3VuZCBpbiAiRXh0ZW5zaW9ucy0+QWR2YW5jZWRDb250ZW50Ii48L2JyID4KQWRkaXRpb25hbGx5IHlvdSB3aWxsIGhhdmUgYSBuZXcgY29udGVudCB0eXBlICJBZHZhbmNlZENvbnRlbnQiIGF2YWlsYWJsZSB3aGVuIGFkZGluZy9lZGl0aW5nIGEgcGFnZS48L3A+CjxwPjxzdHJvbmcgc3R5bGU9ImNvbG9yOnJlZCI+V0FSTklORyEgPC9zdHJvbmc+PGJyIC8+CklmIHlvdSB1bmluc3RhbGwgdGhlIG1vZHVsZSB3aXRob3V0IHJldmVydGluZyBhbGwgcGFnZXMgb2YgdHlwZSBBZHZhbmNlZENvbnRlbnQgYmFjayB0byB0aGUgZGVmYXVsdCBjb250ZW50dHlwZSB5b3VyIENNU21zIHdvbid0IHdvcmsgYW55bW9yZSE8YnIgLz4KTWFrZSBzdXJlIHRvIHNldCBhbGwgcGFnZXMgb2YgdHlwZSBBZHZhbmNlZENvbnRlbnQgYmFjayB0byBkZWZhdWx0IGNvbnRlbnQgb3IgZGVsZXRlIHRoZW0gYmVmb3JlIHVuaW5zdGFsbGluZyEgKHVzZSB0aGUgbW9kdWxlIHByZWZlcmVuY2UgJ3VuaW5zdGFsbCBhY3Rpb24nIHRvIGRvIHRoaXMgYXV0b21hdGljYWxseSk8L3A+CjxwPlRvIHVzZSB0aGUgbW9kdWxlcyBmdW5jdGlvbnMgdXNlIHRoaXMgY29udGVudCB0eXBlIGFuZCBvcHRpb25hbGx5IGFkZCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgdG8geW91ciBjb250ZW50IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuLi48L3A+CjxoMz5XaGF0IHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZT88L2gzPgo8cD4oYWxsIHBhcmFtcyBhcmUgb3B0aW9uYWwpPC9wPgo8cD48c3Ryb25nPkRlZmF1bHQgcGFyYW1zOjwvc3Ryb25nPjwvcD4KPHA+PGVtPjxhIGhyZWY9Imxpc3R0YWdzLnBocD9hY3Rpb249c2hvd3BsdWdpbmhlbHAmcGx1Z2luPWNvbnRlbnQiPihzZWUgYWxzbyB0YWcgaGVscCBvZiB0aGUgZGVmYXVsdCB7Y29udGVudH0gdGFnKTwvYT48L2VtPjwvcD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT4KCQkJCUFsbG93cyB5b3UgdG8gaGF2ZSBtb3JlIHRoYW4gb25lIGNvbnRlbnQgYmxvY2sgcGVyIHBhZ2UuIElmIG11bHRpcGxlIGNvbnRlbnQgdGFncyBhcmUgcHV0IG9uIGEgdGVtcGxhdGUsIHRoYXQgbnVtYmVyIG9mIGVkaXQgYm94ZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgdGhlIHBhZ2UgaXMgZWRpdGVkLjxiciAvPgoJCQkJZS5nLjogPGNvZGU+e2NvbnRlbnQgYmxvY2s9IlNlY29uZCBDb250ZW50IGJsb2NrIn08L2NvZGU+PGJyIC8+CgkJCQlOb3csIGlmIHlvdSBlZGl0IGEgcGFnZSB0aGVyZSB3aWxsIGJhIGEgdGV4dGFyZWEgY2FsbGVkICJTZWNvbmQgQ29udGVudCBibG9jayIuPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrIG1heSBjb250YWluIG9ubHkgbGV0dGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIChubyB3aGl0ZXNwYWNlcywgc3BlY2lhbCBjaGFycywgdW1sYXV0cyBldGMuKS4gT3RoZXJ3aXNlIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGEgcHJvcGVyIG5hbWUgKHNpbWlsYXIgdG8gdGhlIHBhZ2UgYWxpYXMpLjwvZW0+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+d3lzaXd5ZzwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPklmIHNldCB0byBmYWxzZSwgdGhlbiBhIHd5c2l3eWcgd2lsbCBuZXZlciBiZSB1c2VkIHdoaWxlIGVkaXRpbmcgdGhpcyBibG9jay4gSWYgdHJ1ZSwgdGhlbiBpdCBhY3RzIGFzIG5vcm1hbC48L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pm9uZWxpbmU8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT5JZiBzZXQgdG8gdHJ1ZSwgdGhlbiBvbmx5IG9uZSBlZGl0IGxpbmUgd2lsbCBiZSBzaG93biB3aGlsZSBlZGl0aW5nIHRoaXMgYmxvY2suIElmIGZhbHNlLCB0aGVuIGl0IGFjdHMgYXMgbm9ybWFsLiBPbmx5IHdvcmtzIHdoZW4gYmxvY2sgcGFyYW1ldGVyIGlzIHVzZWQuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWZhdWx0PC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5EZWZhdWx0IGNvbnRlbnQgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlLjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+bGFiZWw8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPlByb21wdCBmb3IgdGhpcyBjb250ZW50IGJsb2NrLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGFueSBleHByZXNzaW9uLiBJZiBibGFuaywgdGhlIHVuY29udmVydGVkIGJsb2NrIG5hbWUgaXMgdXNlZC48L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFzc2lnbjwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlBc3NpZ25zIHRoZSBjb250ZW50IHRvIGEgc21hcnR5IHBhcmFtZXRlciwgd2hpY2ggeW91IGNhbiB0aGVuIHVzZSBpbiBvdGhlciBhcmVhcyBvZiB0aGUgcGFnZSwgb3IgdXNlIHRvIHRlc3Qgd2hldGhlciBjb250ZW50IGV4aXN0cyBpbiBpdCBvciBub3QuPGJyIC8+CgkJCQlFeGFtcGxlIG9mIHBhc3NpbmcgcGFnZSBjb250ZW50IHRvIGEgVXNlciBEZWZpbmVkIFRhZyBhcyBhIHBhcmFtZXRlcjo8YnIgLz4KCQkJCTxjb2RlPntjb250ZW50IGFzc2lnbj1wYWdlY29udGVudH08YnIgLz4KCQkJCXt0YWJsZV9vZl9jb250ZW50cyB0aGVwYWdlY29udGVudD0iJHBhZ2Vjb250ZW50In08L2NvZGU+PGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+QWR2YW5jZWQgcGFyYW1zOjwvc3Ryb25nPjwvcD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX3R5cGU8L3R0PiAodGV4dCxjaGVja2JveCxkcm9wZG93bixzZWxlY3RfbXVsdGlwbGUsZGF0ZSxtdWx0aV9pbnB1dCxzbGlkZXIsY29sb3JwaWNrZXIpIAoJCTx1bD4KCQkJPGxpPkFsbG93cyB5b3UgdG8gc3BlY2lmeSB3aGF0IGNvbnRlbnQgY29udHJvbCB0eXBlIGlzIHVzZWQgaW4gdGhlIGJhY2sgZW5kLjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+cGFnZV90YWI8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPgoJCQkJVGhpcyBwYXJhbWV0ZXIgc2V0cyB0aGUgdGFiIGluIHdoaWNoIHRoZSBjb250ZW50IGJsb2NrIGlzIGRpc3BsYXllZCBpbiB0aGUgYmFja2VuZC48YnIgLz4KCQkJCVBvc3NpYmxlIHZhbHVlcyBhcmUgIm1haW4iICggPSBUYWIgIk1haW4gTWVudSIpLCAib3B0aW9ucyIgKCA9IFRhYiAiT3B0aW9ucyIpLCBvciBhbnkgb3RoZXIgYXJiaXRyYXJ5IHZhbHVlPGJyIC8+CgkJCQk8ZW0+ZS5nLiB5b3UgY2FuIGFkZCBhIGNoZWNrYm94IHRvIHRoZSBvcHRpb25zIHRhYiBvciBjcmVhdGUgbmV3IHRhYnM8L2VtPi4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja190YWI8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPldpdGggdGhpcyBwYXJhbWV0ZXIsIHRoZSBibG9ja3Mgd2l0aGluIGEgcGFnZSB0YWIgY2FuIGJlIGZ1cnRoZXIgZGl2aWRlZCBpbnRvIHRhYnMgb3IgY2FuIGJlIGdyb3VwZWQgdG9nZXRoZXIuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja19ncm91cDwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+V2l0aCB0aGlzIHBhcmFtZXRlciwgbXVsdGlwbGUgYmxvY2tzIGNhbiBiZSBncm91cGVkIGluIGEgZmllbGRzZXQuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hY3RpdmU8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCUFsbG93cyB5b3UgdG8gZGlzYWJsZSBhIGNvbnRlbnQgYmxvY2suIERpc2FibGVkIGNvbnRlbnQgYmxvY2tzIHdvbid0IGJlIHNob3duIGluIGJhY2tlbmQgYXMgd2VsbCBhcyBpbiBmcm9udGVuZC4gKG9ubHkgd29ya3Mgd2l0aCB7QWR2YW5jZWRDb250ZW50fSBwbHVnaW4pPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZWRpdG9yX2dyb3VwczwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGdyb3VwIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZWRpdCB0aGlzIGJsb2NrLgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVkaXRvcl91c2VyczwvdHQ+IChzdHJpbmcpCgkJPHVsPgoJCQk8bGk+CgkJCQlBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHVzZXIgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBlZGl0IHRoaXMgYmxvY2suCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHRoZSBwYXJhbXMgPHR0PmVkaXRvcl91c2VyczwvdHQ+IGFuZCA8dHQ+ZWRpdG9yX2dyb3VwczwvdHQ+IGFyZSBlbXB0eSB0aGUgYmxvY2sgbWF5IGJlIGVkaXRlZCBieSBhbnkgdXNlciB3aXRoIHN1ZmZpY2llbnQgcGVybWlzc2lvbiB0byBlZGl0IGEgcGFnZTwvZW0+PGJyIC8+PGJyIC8+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjY2VzczwvdHQ+CgkJPHVsPgoJCQk8bGk+CgkJCQlBIGxpc3Qgb2YgZmV1IGdyb3VwIGlkcyBzZXBhcmF0ZWQgYnkgYSBjb21tYS48YnIgLz4KCQkJCVRoaXMgc2hvd3MgdGhlIGNvbnRlbnQgYmxvY2sgb25seSB0byBjZXJ0YWluIGZldSBncm91cHMuPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjdGlvbjwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPgoJCQkJU3BlY2lmeSBpZiB0aGUgbG9naW4gZm9ybSBvZiB0aGUgZmV1IG1vZHVsZSB3aWxsIGJlIHNob3duIG9yIG5vdC48YnIgLz4KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVGhlIGxvZ2luIGZvcm0gd2lsbCBvbmx5IGJlIHNob3duIG9uZSB0aW1lLjxiciAvPgoJCQkJSWYgdGhlcmUgYXJlIG11bHRpcGxlIGJsb2NrcyB3aXRoIGxpbWl0ZWQgZmV1X2FjY2VzcyBhbmQgZmV1X2FjdGlvbiBzZXQgdG8gdHJ1ZSBvbmx5IHRoZSBmaXJzdCBibG9ja3MgbG9naW4gZm9ybSB3aWxsIGJlIHNob3duIGFuZCBhbGwgb3RoZXIgYmxvY2tzIHdpbGwganVzdCBiZSBlbXB0eS48L2VtPjxiciAvPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFsbG93X25vbmU8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT5TZXQgdG8gdHJ1ZSBpZiB0aGUgdXNlciBtYXkgZW50ZXIgZW1wdHkgdmFsdWVzLiA8YnIgLz5JZiBzZXQgdG8gZmFsc2UgYW5kIHZhbHVlIGlzIGVtcHR5IHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBwYXJhbSAiZGVmYXVsdCIgd2lsbCBiZSB1c2VkLiA8YnIgLz5JZiBzZXQgdG8gdHJ1ZSBhbmQgYmxvY2sgaXMgb2YgdHlwZSBpbWFnZS9maWxlIHRoZSBvcHRpb24gIm5vbmUiIChtb2RlPSJkcm9wZG93biIpIG9yIGEgYnV0dG9uIHRvIGNsZWFyIHRoZSBzZWxlY3RlZCBmaWxlL2ltYWdlIHZhbHVlIChtb2RlPSJmaWxlcGlja2VyIikgd2lsbCBiZSBkaXNwbGF5ZWQuPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zbWFydHk8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCVR1cm4gc21hcnR5IHByb2Nlc3Npbmcgb2YgdmFsdWVzIG9uL29mZi48YnIgLz4KCQkJCUlmIHNldCB0byB0cnVlIGFueSBnaXZlbiB2YWx1ZSB3aWxsIGJlIHByb2Nlc3NlZCBieSB0aGUgc21hcnR5IGVuZ2luZS48YnIgLz4KCQkJCTxlbT48c3Ryb25nPk5vdGljZTogPC9zdHJvbmc+IENvbnNpZGVyIHRoYXQgeW91IGNhbm5vdCB1c2UgdGhlIGRlZmF1bHQgc21hcnR5IGRlbGltaXRlcnMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgdGVtcGxhdGUuIFRoaXMgd2lsbCBjYXVzZSBzbWFydHkgZXJyb3JzIGluIGZyb250ZW5kLjxiciAvPgoJCQkJU28geW91IG5lZWQgdG8gdXNlIDo6OiBhcyBkZWxpbWl0ZXIgaW5zdGVhZC48YnIgLz48L2VtPgoJCQkJRS5nLjogPGNvZGU+e2NvbnRlbnQgYmxvY2s9IkNhdGVnb3JpZXMiIGxhYmVsPSJTZWxlY3QgYSBjYXRlZ29yeSIgYmxvY2tfdHlwZT0iZHJvcGRvd24iIGl0ZW1zPSI6OjpnbG9iYWxfY29udGVudCBuYW1lPSdjYXRlZ29yeWxpc3QnOjo6IiBzbWFydHk9InRydWUifTwvY29kZT4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZXNjcmlwdGlvbjwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPkFsbG93cyB5b3UgdG8gYWRkIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24gdG8gdGhhdCBibG9jayBmb3IgeW91ciBlZGl0b3JzLjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+Y29sbGFwc2U8L3R0PiAodHJ1ZS9mYWxzZSkKCQk8dWw+CgkJCTxsaT4KCQkJCVNldCB0byB0cnVlL2ZhbHNlIHRvIGRpc3BsYXkgYmxvY2sgaW4gYmFja2VuZCBpbiBjb2xsYXBzZWQvZXhwYW5kZWQgbW9kZSBieSBkZWZhdWx0LjxiciAvPgoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiB3aWxsIGJlIGFsd2F5cyBmYWxzZSBpZiBub19jb2xsYXBzZT10cnVlIGlzIHVzZWQuPC9lbT48YnIgLz4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ub19jb2xsYXBzZTwvdHQ+ICh0cnVlL2ZhbHNlKQoJCTx1bD4KCQkJPGxpPgoJCQkJU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgZm9sZGluZyBvZiBibG9ja3MuPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHNldCB0byB0cnVlIHBhcmFtIGNvbGxhcHNlIGlzIGFsd2F5cyBmYWxzZS48L2VtPjxiciAvPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnJlcXVpcmVkPC90dD4gKHRydWUvZmFsc2UpCgkJPHVsPgoJCQk8bGk+CgkJCQlTZXQgdG8gdHJ1ZSBpZiB0aGlzIGJsb2NrIG1heSBub3QgYmUgZW1wdHkuPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+CjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAiY2hlY2tib3giOjwvc3Ryb25nPjwvcD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAodHJ1ZS9mYWxzZSkgCgkJPHVsPgoJCQk8bGk+CgkJCQljaGVja3MvdW5jaGVja3MgdGhlIGNoZWNrYm94IGJ5IGRlZmF1bHQgd2hlbiBhZGRpbmcgYSBwYWdlPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFVzZSAiMSIgZm9yIGNoZWNrZWQgYW5kICIwIiBmb3IgdW5jaGVja2VkIGJ5IGRlZmF1bHQ8YnIgLz48L2VtPgoJCQkJRS5nLiA8Y29kZT57Y29udGVudCBibG9ja190eXBlPSJjaGVja2JveCIgZGVmYXVsdD0xfTwvY29kZT4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbWV0ZXIgZiZ1dW1sO3IgQ29sb3JwaWNrZXI6PC9zdHJvbmc+IG5vIGFkZGl0aW9uYWwgcGFyYW1ldGVyczwvcD4KPHA+PHN0cm9uZz5QYXJhbWV0ZXIgZiZ1dW1sO3IgU2xpZGVyOjwvc3Ryb25nPiAoc2VlIGFsc28gZG9jdW1lbnRhdGlvbiBvZiB0aGUgYnVpbHQgaW4ganF1ZXJ5IHNsaWRlciBwbHVnaW4pPC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZnJvbTwvdHQ+IChpbnQpIAoJCTx1bD4KCQkJPGxpPgoJCQkJc3RhcnQgdmFsdWUKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnRvPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQllbmQgdmFsdWUKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXA8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCWFtb3VudCBvZiBzdGVwcyB0aGUgc2xpZGVyIGNoYW5nZXMgdGhlIHZhbHVlcwoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+cm91bmQ8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCWRpZ2l0cyBhZnRlciB0aGUgY29tbWEKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmhldGVyb2dlbmVpdHk8L3R0PiAoc3RyaW5nKSAKCQk8dWw+CgkJCTxsaT4KCQkJCVRvRG8KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRpbWVuc2lvbjwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJdW5pdHMgYWZ0ZXIgdGhlIHZhbHVlCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5saW1pdHM8L3R0PiAodHJ1ZS9mYWxzZSkgCgkJPHVsPgoJCQk8bGk+CgkJCQlUb0RvCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+CjwvdWw+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zY2FsZTwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJVG9EbwoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2tpbjwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJdGhlIHNraW4gdG8gdXNlIHdoZW4gcmVuZGVyaW5nIHRoZSBzbGlkZXIKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmNhbGN1bGF0ZTwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJYSBqYXZhc2NyaXB0IGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgZGlzcGxheWVkIHZhbHVlcwoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgo8L3VsPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+b25zdGF0ZWNoYW5nZTwvdHQ+IChzdHJpbmcpIAoJCTx1bD4KCQkJPGxpPgoJCQkJYSBqYXZhc2NyaXB0IGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBwcm9jZXNzZWQgd2hlbiBjaGFuZ2luZyB0aGUgdmFsdWUKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHVsPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmNhbGxiYWNrPC90dD4gKHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlhIGphdmFzY3JpcHQgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIHByb2Nlc3NlZCBhZnRlciBhIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICJkcm9wZG93biIvInNlbGVjdF9tdWx0aXBsZSI6PC9zdHJvbmc+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aXRlbXM8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPkl0ZW0gbGFiZWwocykgb2YgdGhlIGZpZWxkKHMpIChzZXBhcmF0ZWQgYnkgYSBkZWxpbWl0ZXIgLSBkZWZhdWx0IGlzIHwgKHBpcGUpKTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVzPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5WYWx1ZShzKSBvZiB0aGUgaXRlbXMgKHNlcGFyYXRlZCBieSBhIGRlbGltaXRlciAtIGRlZmF1bHQgaXMgfCAocGlwZSkpPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gaWYgdGhlcmUgYXJlIGxlc3MgdmFsdWVzIHRoYW4gaXRlbXMgdGhlIGl0ZW0gbGFiZWxzIHdpbGwgYmUgdXNlZCBhcyB2YWx1ZXMgKGFuZCB2aXNlIHZlcnNhKS48L2VtPjxiciAvPjxiciAvPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAoc3RyaW5nKQoJCTx1bD4KCQkJPGxpPgoJCQkJUHJlc2VsZWN0ZWQgdmFsdWUocykgKHNlcGFyYXRlZCBieSBhIGRlbGltaXRlciAtIGRlZmF1bHQgaXMgfCAocGlwZSkpPGJyIC8+CgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFVzZSB0aGUgaXRlbSA8c3Ryb25nPnZhbHVlczwvc3Ryb25nPiBhcyBkZWZhdWx0LCBub3QgdGhlIGl0ZW0gbGFiZWxzLjwvZW0+PGJyIC8+PGJyIC8+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVsaW1pdGVyPC90dD4gKHN0cmluZykKCQk8dWw+CgkJCTxsaT5BIHNpZ24gb3Igc3RyaW5nIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRldmlkZSB0aGUgaXRlbXMvdmFsdWVzIChkZWZhdWx0IGlzIHwgKHBpcGUpKTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2l6ZTwvdHQ+IChpbnRlZ2VyKQoJCTx1bD4KCQkJPGxpPkhlaWdodCBvZiBjb250ZW50IGJsb2NrIGluIGJhY2sgZW5kIGlmIDxjb2RlPmJsb2NrX3R5cGU9InNlbGVjdF9tdWx0aXBsZSI8L2NvZGU+IGlzIHNldC4gPGVtPihEZWZhdWx0IGlzIG51bWJlciBvZiBpdGVtcyk8L2VtPjwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c29ydGFibGU8L3R0PiAodHJ1ZS9mYWxzZSkgLSBzZWxlY3RfbXVsdGlwbGUgb25seQoJCTx1bD4KCQkJPGxpPgoJCQkJSWYgc2V0IHRvIHRydWUgdGhlIGl0ZW1zIHdvbid0IGJlIHNob3duIGFzIGEgbXVsdGlwbGUgc2VsZWN0IGlucHV0IHdpdGggb3B0aW9ucyBidXQgYXMgYSBsaXN0IG9mIGNoZWNrYm94ZXMgdGhhdCBjYW4gYmUgcmVvcmRlcmVkLjxiciAvPkVhY2ggcm93IGNvbnRhaW5zIHRoZSBpdGVtIGxhYmVsIGFuZCBhIGNoZWNrYm94IHdpdGggdGhlIGl0ZW0gdmFsdWUuPGJyIC8+CgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IG9ubHkgdGhlIG9yZGVyIG9mIHRoZSA8c3Ryb25nPnNlbGVjdGVkPC9zdHJvbmc+IGl0ZW1zIHdpbGwgYmUgc3RvcmVkIGFuZCBhbHdheXMgZGlzcGxheWVkIG9uIHRoZSB0b3Agb2YgdGhlIGxpc3Qgd2hlbiByZWxvYWRpbmcgdGhlIGVkaXQgcGFnZS48YnIgLz4KCQkJCVVuc2VsZWN0ZWQgaXRlbXMgd2lsbCBhcHBlbmRlZCBpbiB0aGF0IG9yZGVyIHRoZXkgYXJlIGRlZmluZWQgaW4gdGhlIHRlbXBsYXRlPC9lbT4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICJkYXRlIjo8L3N0cm9uZz48L3A+Cjx1bD4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGVwX2hvdXJzPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQlzdGVwcyBvZiBob3VycyBpbiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDEpCgkJCTwvbGk+CgkJPC91bD4KCQk8YnIgLz4KCTwvbGk+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c3RhcnRfaG91cjwvdHQ+IChpbnQpIAoJCTx1bD4KCQkJPGxpPgoJCQkJdGhlIHN0YXJ0IGhvdXIgb2YgdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAwKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVuZF9ob3VyPC90dD4gKGludCkgCgkJPHVsPgoJCQk8bGk+CgkJCQl0aGUgZW5kIGhvdXIgb2YgdGhlIGNsb2NrIGRyb3Bkb3duIChkZWZhdWx0IGlzIDEyIG9yIDIzKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNob3cyNGg8L3R0PiAodHJ1ZS9mYWxzZSkgCgkJPHVsPgoJCQk8bGk+CgkJCQlzZXQgdG8gZmFsc2UgaWYgQU0vUE0gaXMgdXNlZC4gKGRlZmF1bHQgaXMgdHJ1ZSkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGVwX21pbnV0ZXM8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCXN0ZXBzIG9mIG1pbnV0ZXMgaW4gdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAxMCkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGFydF9taW51dGU8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCXRoZSBzdGFydCBtaW51dGUgb2YgdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAwKQoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVuZF9taW51dGU8L3R0PiAoaW50KSAKCQk8dWw+CgkJCTxsaT4KCQkJCXRoZSBlbmQgbWludXRlIG9mIHRoZSBjbG9jayBkcm9wZG93biAoZGVmYXVsdCBpcyA1OSkKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zaG93X2Nsb2NrPC90dD4gKHRydWUvZmFsc2UpIAoJCTx1bD4KCQkJPGxpPgoJCQkJc2V0IHRvIGZhbHNlIGlmIG5vIHRpbWUgZHJvcGRvd24gc2hvdWxkIGJlIGRpc3BsYXllZCAoZGVmYXVsdCBpcyB0cnVlKTxiciAvPgoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBJZiBzZXQgdG8gZmFsc2UgMDA6MDAgbydjbG9jayB3aWxsIGJlIHVzZWQ8L2VtPgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRhdGVfZm9ybWF0PC90dD4gKHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlUaGUgc3RyZnRpbWUgZGF0ZSBmb3JtYXQgdG8gc2hvdyBpbiBmcm9udGVuZC4KCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KPC91bD4KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICJtdWx0aV9pbnB1dCI6PC9zdHJvbmc+PC9wPgo8dWw+Cgk8bGk+CgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aW5wdXRzPC90dD4gKGNzdiBvZiBpbnB1dCBpZHMgeW91IGNyZWF0ZWQgaW4gdGhlIGJhY2tlbmQpIAoJCTxiciAvPjxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD52YWx1ZV9kZWxpbWl0ZXI8L3R0PiAoYW55IHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlUaGlzIGRlZmluZXMgYSBzdHJpbmcgdGhhdCBkZXZpZGVzIHRoZSB2YWx1ZXMgb2YgdGhlIGlucHV0cyBvZiBvbmUgbXVsdGlfaW5wdXQgd2hlbiBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLjxiciAvPgoJCQkJRGVmYXVsdCBpcyAiJmx0OyEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxsaW1pdGVyIC0tJmd0OyIKCQkJPC9saT4KCQk8L3VsPgoJCTxiciAvPgoJPC9saT4KCTxsaT4KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pbnB1dF9kZWxpbWl0ZXI8L3R0PiAoYW55IHN0cmluZykgCgkJPHVsPgoJCQk8bGk+CgkJCQlUaGlzIGRlZmluZXMgYSBzdHJpbmcgdGhhdCBkZXZpZGVzIHRoZSBtdWx0aV9pbnB1dHMgeW91IGRlZmluZWQgZm9yIHRoaXMgY29udGVudCBibG9jayB3aGVuIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuPGJyIC8+CgkJCQlEZWZhdWx0IGlzICImbHQ7IS0tIG11bHRpX2lucHV0X2RlbGxpbWl0ZXIgLS0mZ3Q7IgoJCQk8L2xpPgoJCTwvdWw+CgkJPGJyIC8+Cgk8L2xpPgoJPGxpPgoJCTxwPjxzdHJvbmc+V2hhdCBpcyBhIG11bHRpX2lucHV0IGZvcj88L3N0cm9uZz48L3A+CgkJPHA+QSBtdWx0aV9pbnB1dCBibG9jayBpcyBhIGNvbnRlbnQgYmxvY2sgdGhhdCBjb25zaXN0cyBvZiBkaWZmZXJlbnQgaW5wdXQgZmllbGRzLiA8YnIgLz4KCQlZb3UgY2FuIGRlZmluZSB0aGVtIGluIHRoZSBtb2R1bGUgYWRtaW5pc3RyYXRpb24gdXNpbmcgdGhlIHNhbWUgc3ludGF4IHlvdSB1c2UgaW4gYSB0ZW1wbGF0ZSB3aGVuIGRlZmluaW5nIGEgY29udGVudCBibG9jay48YnIgLz4KCQlNdWx0aSBpbnB1dHMgY2FuIGJlIHVzZWQgaWYgeW91IHdhbnQgdG8gc3RvcmUgZGlmZmVyZW50IHZhbHVlcyBpbiBvbmUgY29udGVudCBibG9jayBhbmQgcHJvdmlkZSBkaWZmZXJlbnQgaW5wdXQgdHlwZXMgZm9yIGVhY2ggdmFsdWVzLjxiciAvPgoJCVRoaXMgY2FuIGJlIHVzZWZ1bGwgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGEgZHJvcGRvd24gdG8gc2VsZWN0IGEgbW9kdWxlIHRvIGJlIHNob3duIGluIGZyb250ZW5kIGFuZCB0ZXh0IGlucHV0IHRvIGRlZmluZSB0aGUgbW9kdWxlIHBhcmFtZXRlcnMuPGJyIC8+CgkJRXhhbXBsZSBmb3IgYSBtdWx0aV9pbnB1dCBpbiBwYWdlIHRlbXBsYXRlOjwvcD4KCQk8cHJlPgoJCTxjb2RlPgoJCXtjb250ZW50IGJsb2NrPSJtb2R1bGUiIGxhYmVsPSJQYWdlIG1vZHVsZXMiIGJsb2NrX3R5cGU9Im11bHRpX2lucHV0IiBpbnB1dHM9Im1vZHVsZSxtb2R1bGUsbW9kdWxlLG1vZHVsZSJ9CgkJPC9jb2RlPgoJCTwvcHJlPgoJCTxwPkV4YW1wbGUgZm9yIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBtdWx0aV9pbnB1dCBuYW1lZCAibW9kdWxlIjo8L3A+CgkJPHByZT4KCQk8Y29kZT4KCQl7Y29udGVudCBibG9jaz0ibW9kdWxlIHNlbGVjdGlvbiIgYmxvY2tfdHlwZT0iZHJvcGRvd24iIGl0ZW1zPSJ8TmV3c3xHYWxsZXJ5fE1lbnUifQoJCXtjb250ZW50IGJsb2NrPSJtb2R1bGUgcGFyYW1zIiBibG9ja190eXBlPSJ0ZXh0IiBvbmVsaW5lPXRydWV9CgkJPC9jb2RlPgoJCTwvcHJlPgoJCTxwPldoYXQgaGFwcGVucyBpZiB5b3UgZWRpdCBhIHBhZ2U/PC9wPgoJCTxwPkl0IHdpbGwgc2hvdyB5b3UgYSBmaWVsZHNldCB3aXRoIGxlZ2VuZCAiUGFnZSBtb2R1bGVzIi4gPGJyIC8+CgkJSW5zaWRlIHRoaXMgZmllbGRzZXQgaXQgc2hvd3MgdGhlIG11bHRpX2lucHV0IG5hbWVkICJtb2R1bGUiIGZvdXIgdGltZXMuPGJyIC8+CgkJVGhhdCBtZWFucyB5b3Ugc2VlIGZvdXIgbGluZXMgd2l0aCB0d28gaW5wdXQgZmllbGRzLiBBIGRyb3Bkb3duIGFuZCBhIHRleHQgaW5wdXQuPC9wPgoJCTxwPldoYXQgaGFwcGVucyBpZiB5b3Ugc2F2ZSBhIHBhZ2U/PC9wPgoJCTxwPlRoZSBtb2R1bGUgc3RvcmVzIHRoZSB2YWx1ZXMgYXMgb25lIHNpbmdsZSBjb250ZW50IHByb3BlcnR5IChha2EgY29udGVudGJsb2NrKSBhbmQgc2VwYXJhdGVzIHRoZSBpbnB1dHMgYnkgYSBnaXZlbiBkZWxpbWl0ZXIuPGJyIC8+CgkJTGV0J3MgYXNzdW1lIHlvdSBzZWxlY3QgdGhlIE5ld3MgbW9kdWxlIGZvdXIgdGltZXMgd2l0aCBkaWZmZXJlbnQgbW9kdWxlIHBhcmFtcyBsaWtlIGNhdGVnb3J5PSIxIiwgY2F0ZWdvcnk9IjIiLCBjYXRlZ29yeT0iMyIsIGNhdGVnb3J5PSI0Ii48YnIgLz4KCQlJbiB0aGUgZGF0YWJhc2UgaXQgc3RvcmVzIHRoaXMgc3RyaW5nOjwvcD4KCQk8cHJlPgoJCTxjb2RlPgoJCU5ld3MmbHQ7IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGltaXRlciAtLSZndDtjYXRlZ29yeT0iMSImbHQ7IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLSZndDs8YnIgLz4KCQlOZXdzJmx0OyEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0mZ3Q7Y2F0ZWdvcnk9IjIiJmx0OyEtLSBtdWx0aV9pbnB1dF9kZWxpbWl0ZXIgLS0mZ3Q7PGJyIC8+CgkJTmV3cyZsdDshLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tJmd0O2NhdGVnb3J5PSIzIiZsdDshLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tJmd0OzxiciAvPgoJCU5ld3MmbHQ7IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGltaXRlciAtLSZndDtjYXRlZ29yeT0iNCIKCQk8L2NvZGU+CgkJPC9wcmU+CgkJPHA+SW4geW91ciBwYWdlIHRlbXBsYXRlIHlvdSBjYW4gZXhwbG9kZSB0aGUgY29udGVudCBieSB0aGUgZGVsaW1pdGVycyBhbmQgY2FsbCB0aGUgc2VsZWN0ZWQgbW9kdWxlcy48L3A+CgkJPHA+RnVsbCBFeGFtcGxlOjwvcD4KCQk8cHJlPgoJCTxjb2RlPgoJCXsqIGRlZmluZSB0aGUgY29udGVudCBibG9jayAqfQoJCXtjb250ZW50IGJsb2NrPSJteV9tb2R1bGVzIiBibG9ja190eXBlPSJtdWx0aV9pbnB1dCIgaW5wdXRzPSJNb2R1bGUsTW9kdWxlLE1vZHVsZSxNb2R1bGUiIGFzc2lnbj0ibW9kdWxlcyJ9CgkJCgkJeyogZXhwbG9kZSBibG9jayBjb250ZW50IGluIGFuIGFycmF5IHRvIGdldCB0aGUgaW5wdXQgZ3JvdXBzICp9CgkJe2Fzc2lnbiB2YXI9bW9kdWxlcyB2YWx1ZT0iJmx0OyEtLSBtdWx0aV9pbnB1dF9kZWxpbWl0ZXIgLS0mZ3Q7InxleHBsb2RlOiRtb2R1bGVzfQoJCQoJCXsqIGxvb3AgdGhyb3VnaCB0aGUgc2VsZWN0ZWQgbW9kdWxlcyAqfQoJCXtmb3JlYWNoIGZyb209JG1vZHVsZXMgaXRlbT0ibW9kdWxlIn0KCQkJe2lmICRtb2R1bGUgIT0gJyd9CgkJCQoJCQkJeyogZXhwbG9kZSB0aGUgaW5wdXQgdmFsdWVzIGluIG1vZHVsbmFtZSBhbmQgbW9kdWxlIHBhcmFtZXRlcnMgKn0KCQkJCXthc3NpZ24gdmFyPW1vZHVsZV9pdGVtcyB2YWx1ZT0iJmx0OyEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0mZ3Q7InxleHBsb2RlOiRtb2R1bGV9CgkJCQkKCQkJCXtpZiAkbW9kdWxlX2l0ZW1zWzBdICE9ICcnfQoJCQkJCgkJCQkJeyogY2FsbCB0aGUgbW9kdWxlICp9CgkJCQkJe2lmIGlzc2V0KCRtb2R1bGVfaXRlbXNbMV0pfQoJCQkJCQl7ZXZhbCB2YXI9JHNtYXJ0eS5sZGVsaW18Y2F0OidjbXNfbW9kdWxlIG1vZHVsZT0iJ3xjYXQ6JG1vZHVsZV9pdGVtc1swXXxjYXQ6JyIgJ3xjYXQ6JG1vZHVsZV9pdGVtc1sxXXxjYXQ6JHNtYXJ0eS5yZGVsaW19CgkJCQkJe2Vsc2V9CgkJCQkJCXtldmFsIHZhcj0kc21hcnR5LmxkZWxpbXxjYXQ6J2Ntc19tb2R1bGUgbW9kdWxlPSInfGNhdDokbW9kdWxlX2l0ZW1zWzBdfGNhdDonIid8Y2F0OiRzbWFydHkucmRlbGltfQoJCQkJCXsvaWZ9CgkJCQkJCgkJCQl7L2lmfQoJCQkJCgkJCXsvaWZ9CgkJCgkJey9mb3JlYWNofQoJCTwvY29kZT4KCQk8L3ByZT4KCTwvbGk+CjwvdWw+Cgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgoJPGxpPlRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLyI+aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jb250ZW50Mi88L2E+PC9saT4KCTxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIENNUyBNYWRlIFNpbXBsZSBGb3J1bXM6PGJyIC8+Cgk8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5kZSI+aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUuZGU8L2E+PGJyIC8+Cgk8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPmh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZzwvYT48L2xpPgo8L3VsPgo8YnIgLz4KPHA+RmVlbCBmcmVlIHJlcG9ydCBhbnkga2luZCBvZiBmZWVkYmFjay48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTAtMjAxMSwgR2VvcmcgQnVzY2ggKE5hTikuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4KPHA+CglBcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy48YnIgLz4KCVRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLDxiciAvPgoJYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Y8YnIgLz4KCU1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS48YnIgLz4KCVNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48YnIgLz4KCVlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlPGJyIC8+CglhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZTxiciAvPgoJRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8YnIgLz4KCU9yIHJlYWQgaXQgb25saW5lOiA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPmh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTDwvYT48YnIgLz4KCVBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLgo8L3A+CjxiciAvPgo=]]></data>
	</file>
	<file>
	  <filename>/doc/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></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/.htaccess</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PEZpbGVzIH4gIlwuKGdpZnxqcGd8anBlZ3xwbmcpJCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgb3JkZXIgZGVueSxhbGxvdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIGFsbG93IGZyb20gYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjwvRmlsZXM+Cg==]]></data>
	</file>
	<file>
	  <filename>/images/calendar.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAPjSURBVHjaYvz//z8DMujunvX/zp2zDIqKBgwVFZmMDEQAmB4VFWOG0tI0FD0AAcQAsgAZnzlz5j8IQGkGYjA+PQABxAKyRKVz9f8/n94x/P3ykaFOR5Dhy5cvDLdu3WIIWLT3PzMPP17X49LDwifEcKc8lBEggFhgCvmMHRl+PbkDdM1GhmfPnoExt3YAA5uMMgPIz/9BJNBFjIwQNiMwZP8DiZ9oeriAetiBer7dvgg2FyCA4BYw/mFg+PftO8PZs2fBLvn8+TPDPyU3Bsa/UHkGaFwBKUaI6QxMIC6anv+KbmCzYAAggBAWAA1iZuZkCMwoZhD7/4XhyR92hlVfOBkY/oDdDrHiP9jtDBAv/QfTyHpeMfIwLH7PCXcUCAAEENwCkEGsghIMi1/8BDqSA+xSDgkJBqa/EIOhAcMAChtIkEEIkJ5Fz38CxTjAFrKLS4LNggGAAAJbkPTnLkN5VBBUSJ+BdICpp7NjPZgGCCC4D/7/+89ACwAQQEwwxj9gMKDjdevXM6ioqjBIy8gw1Dc0MLx7/x5F/vGTJwy+fn4Mp8+cwdALAwABxITsA2R8+dJlhkWLFjJ4e3szFBQUMFy8eIFh9uzZDH9+/2H4+eMnw80bNxmmTZ0KjGQmBjZWNgz9MAAQQPAg+vfvH4rXzl84z/Dz5y+G4qISBjExMYYvwCT47etXht+/fzPcuHGDoaa2hgGh9y+GfhgACCAkC1DjwMnRmcHM1IxBXFyC4fr160AfXGTQ1tYB5gEmBi0tbYYVy1cyXLt2jaGishxo6V8M/TAAEEBMuMokkKvl5RUYVq9exZCamszAw8PDkJaWzsDExAS0hJGBnZ2dgYWFBeyrv0AfoOuHAYAAwhlEoFxZUVHGcPLUSYaK8koGPz9/BjY2NhR1f//+Yfj67Ss4XnAFEUAA4UymoAjeu28fg4y0NDhSV6xYzsDBwcng5enFwM3NDcmbwKD58gVowZ8/OJM5QACxICdTGPj58ycw6Z1m+AZ03a3btxgqqyvA4kpKygx2dnYMnFxcEB8AgwakBl0/MgAIIKw+ACW7ObPm4cw8MLWGBkYM9+48xJtRAQIIYcF/1DC8cfMGOB7ExcUZbgBT0YsXLxjMzM3h8cPLy8vw6OFDBkEhIbCYqYkpVgsAAgjJAlQJdTUNOFtWRg6rZmQ1OEKIASCAwBZw83AyiIgJUrUMApkJAgABBLbg7JnzDMuWrKKqBSAzQQAggOBBpKioSJPSFCAAD2WwAgAIg1CY/v8t6mNnZEINZOJllz3/gbnGB05SIOpWfrzt5S3t9E4VUnIwyQRDNHkzWgjtb44AAwBrATqlndxPggAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/jpicker/AlphaBar.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/bar-opacity.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAChJREFUeNpiPHPmDAMMGBsbw9lMDDgA6RKM////h3POnj1LCzsAAgwAQtYIcFfEyzkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/Bars.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAEAAA84CAYAAADKKOIFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASBJREFUeNrs2ssOgjAQheFDF77/8xLI2AEENWIo4CWdn8UXtbMprSdtQSZZki6qBZl6S33+klqpGvJleaBy/2pB6sxnX+fzr1Ut+AS05P2rhTxO3qfOg6L1wasD2TBU3ksN5Nk4fZpoSj5tbWhKSnY2FJX8gHRe8c7WoobDxf/+2znFnxutw8Vf48hfcmtDUZZsaFgvfnGRiWQimUgmxslEjUvF+fJNy1xiaVhAAgCEYojFMQl9H00mAkBslmUjmQgArBN1S8L7py1kIgBEjMN354njphoAIBJr7+KQiQAQk+UxNJkIAOHXict5otg7A0DsOHw4T3xeJ45hCQAQiPX3E7k5ABCSlfcTuTkAEHCdOD93Xk4WyUQACLltzl4FGACT38aTA+sZOgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/map-opacity.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC1JREFUeNpiPHPmDAM2YGxsjFWciYFEMKqBGMD4//9/rBJnz54dDSX6aQAIMABCtQiAsDRF+wAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/mappoint.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhDwAPAJECAAAAAP///////wAAACH5BAEAAAIALAAAAAAPAA8AAAIulA2Zx5IB4WIANnlqaAa7zXXAFzLBUx5nlYpsu4LpSZb0J5s3fu2IFplwFEJDAQA7]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/Maps.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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AIwaHXWjRbcZ9ToAvavek9KUzs6Z1qjZo7500UdH/ToAPWuX4OtL3uLfTVYCM7aec/Xsm6vzT1ejjo66+aJLjtoegJKw9NnLJjX1u8laZj57WfwbVqOOjvrCRR8ftR6/+MXRteLo30LP6/7f1SLH/3v+jte1v71Rs0fdbNEtRq3H3/7tEV7xqd87OMW9v9eo2b93s0W3GLUev/zlMbxE7/+jbxO4iD2z9P7/69cZNXvUzRbdYtR6/N3fHbesmPH/GybK+79Rs/+/2aJbjFqPv//7I+US3/E+Gi9WxjTPB8Co2QG4edEtRq3HP/zDkbrczN8zMEH2lOMBMGr092626Baj1uMf//HoWqBnldH3Fbho0ddlvq8jdTijXgVg0UW3GLUev/rVMXTD6J0v65znmZcZNftlmy26xaj1+Kd/OprvG9nz+sz32XixRl+f8z6Nmv0+N1x0+VHr8c//fHTfObpnqZH3MXhxMybLD4BRswOw0KLLj1qPf/mXY8rDoeY8xGr4It/3vFGzn99w0eVHrcevf310XcIn3uabi9Fz0ee/jVGz32bDRZcftR7/+q9H1xpPvK7xIq7xOqNmv27TRZcetR7/9m9H9yUf/fXgQdiOztZm//rr1xk1e9RNF1161Hr85jdHytER73gfwYueMV//+zBq9vvYdNGlR63Hb397dF3q3rXyVu2epXe+2NsZNXvUjRdddtR6/PDDMXxalJr8soHP1Rnz9r29UbPf58aLLjtqPf7934/wpXvq5QnT3vdyo2a/fPNFlxy1Hr/73dF98PO7X9cx7XOvM2r2616w6HKj1uM//uNIOQn6He9jYNrW35P3Poya/T5esuhSo9bjP//zaL5EkUs+430mTxz5ffH3adTs9/nCRR8ftR7/9V9H96W7++0mT5z7dkbNfruXL/rIqPX4/e+PKZf0/vVunW5eAIyaHYAXLDpt1Hr8938fG62w0V+VUXcIwKePWo8fGQI+U/X1DwIACAAgAMBnBKAc//u0i548efqkp58V3wDAxxIAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQABEAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAEAABAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAQACMAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAMCZehwKAAIACAAgAMBnBOAPVwPW4smTp897cisAfDABAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAQAAEAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAEQABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEAATACCAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgCcqcehACAAgAAAAgB8RADKH64GrMWTJ0+f9/Qz//7D5xIAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQABEAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAEAAbgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAcKYehwSAAAACAAgA8BkBKD8WoBZPnjx93pNbAeCDCQAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgACIAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAIgA1AAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQABgX7//7Q/lz3/+cwGAT/RnP/+rstLXnACAHwEAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAEAABAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAQABsAAIACAAgAIAAAK9Wj0MCQAAAAQAEAPiEAJSjHPWPz3jy5OnTnn5WfAMAH0sAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAYIcAHL8upf6N8eAjA1D/+sf//PDj018aED7zR4C/+MO3AgYE1wEAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIAAiAAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgACAAAgACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAIAAGAEEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEAHhWPQ4FAAEABAAQAOATAlB+LED94zOePHn6tCe3AsAHEwAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAQAEAAAAEABAAEQABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEABAAAABAAQAEAAQAAEAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQAAAAQAEABAAQABAAIwAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAAACAAgAIACAAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAAAIACAAgAIAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAgAAAAgAIACAAwJn/EWAAyihyDzKRI84AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/NoColor.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAAAPCAIAAACN07NGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcpJREFUeNqcks9LAlEQx79jK0KRiRCY/bhkh9C8lBQGIUgUYXrt7/MWQSgIGqhEEUhYqXTMiwlSEUmQUYtNM6tmRJcalsfu2/nOfOb7HrXx5zB0CQYRj3M4DLcbRGAe/pdPed7f0WjQyQkyGTSbquGtLfh8dHPDiQSmpmAY+PhQpWSPjODtDdUq1eu8uanKZtOmxfx+LC/j6YmSSZTL8oLXV7y8oNPBwwPlcpROY2wMa2uYnpZ0S+NwIBDgaFTKU6GAy0uFkXh+pmIR5+fweDgWg9dLhjGYp9vVdXGRJya05NmZ7NDcHFerqvf5eGcH4+OaI8z9Pr2hBX1mhvf2SJRHRygU6PSUV1a0g8v13RhjaJG1S2KdGCjzXF1hfZ0CAZmEeyC/aMSlbpfv7uj4GI+PqiyX2W7X6aXQN5nRz5YwTdze0uEhiyXxOHm9PDkpeGi3eXdX8QZhzWO5getrOjhgpxORCJaWRIBQiDc2cH9P+/totax026CP0F9cUD6vDCKYn4cgCYxQhcOCR6USpVI8OsqmSX1NpaKmLSyop1L+R2xv8+ysVpSDajT6fSibFeN5dRWl0tD6L2OExzS1mxxdraZ7/7jXnwIMAH77vof+JfgrAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/picker.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhGQAYAKIEANjY2P////Dw8BseI////wAAAAAAAAAAACH5BAEAAAQALAAAAAAZABgAAANXKLDc/kvBSWO4OOssVyBgKI5i0HxkOpoMqr6s984x4M5kfePlyae6X84n7LWKRhltE+jYcLXJblh50qpWWGMAma4Yg/DDawybHeRQFCJgcrDwijPuECQAADs=]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/preview-opacity.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeNpiPHPmDAMSMDY2RuYyMeAFNJVm/P//PzL/7Nmzg8VpAAEGALE5CHQT4Ca/AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/jpicker/rangearrows.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhFAAHAJEDAAAAAHRyav///7u7uyH5BAEAAAMALAAAAAAUAAcAAAIdjDOpm2cCEVsBimflrJlnAIZeNGpM6Zlbd0zbUQAAOw==]]></data>
	</file>
	<file>
	  <filename>/images/slider/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/slider/jslider.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAfQAAAA8CAYAAACQGkjnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4lJREFUeNrs3c9rHFUAwPE3m02aJghGzGalWjSXKoggQjEK7VF7sbTiwSKVQkXPPfhHePAsKASL1IJoqJe2IgUrNkEQj5VekhRra+3GbEjsJptNnFnTlRhnf7RTzMrnA8OEfY93mBy++yY7m2h/rK+v772enp69uVwuAADb3/r6eqjVaqFarX4fH+/mh4eHTw8NDRUHBgZCPp93hQCgC6ytrYVKpRLK5fLeubm50/nR0dHiyMhIGBwcDPEuPURR5CoBwDbfnSdHEvRSqRRmZ2eL+UKhcC0+diU7dLfcAaB7or68vFzfjC8tLV3Lx47Hx3h8FAUdALon6Mlt997e3htJy6PkBQCguwk6AAg6ACDoAICgAwCCDgCCDgAIOgAg6ACAoAOAoAMAgg4ACDoAIOgAIOgAwDYN+tuHg6IDQJfLjz3jIgCAoAMA/7lo8Vu33AGg64O+MiXoAND1QfcpdwAQdABA0AEAQQcABB0ABB0AEHQAQNABAEEHAEEHAAQdABB0AEDQAUDQAQBBBwDuU9A3zv3x8eDGOU0lPuaTc7M3AVEUZboeANBe0JPoPn7wyInLrSafOfX+U/FpJg5wpUnQM10PAGgv6MU4vtd3P/FoOPbGwdSJ45+cCVenf04i/Egc4BtNgl5fb+fDhXD0yCup65089WW4fetmy/UAgNbyGzv0sOfpPeFmqZw6MRlPgh6a30ZvjPcXHwvT10vpk+LxJOhtrAcAtBH0utXVWlhY/CN1YjLeieXqavhtfrHpOACQddBrtfD7QnqAk/FOrMRvAH65tdB0HADIOOjVOLBLlfTPplU7DPBKvAMvL95uOp5z/QEg26DvKjyU6cJP7h5pOefK1Z/8BgAgo6DXt+UzV6bDgZf3pU48e+7inR9bPWJWH++Z/zW8sH8sddKlbybbXQ8AaGHTc+j7XnwuvP7agS2TPv3sbLj43Q8dP4c+9vyz4fChl7bM+WLifJic+tFz6ACQ8Q595q+4nri8c0dfeOvNQ40JH348sSnmbe7QG+s9MLAjHD/693ofnZzYFHM7dADIJuhbIhzlovDOsVfDB+Ofh/MXJu8mvpvWy+VyjfW+ujAl5gBwn4L+jwiH+te2nvv60r3EN+v1AIAU0b+81vgbeFp82/jnLJmtBwDcXdDvRLh/I7xbdtIdBv2e1gMA2gi6mAKAoAMAgg4ACDoAIOgA8H/xpwADAPARxuhzeeDjAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/slider/jslider.round.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/sort.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAG9JREFUeNpiYMAE+lCMAhjR+JZAnABlLwDi4zAJZhyKQMAAiN8C8RNkheiKMBQzQt2TxYAfTAMplIHqxAcuMFAdEG01C5AQBmJfAgofg4LnJTQIcJkKCvgzsHB8gkMxPHaQYwZdMUoUMhCbKAACDAAFXhb05ZeJ9wAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cg==]]></data>
	</file>
	<file>
	  <filename>/js/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/js/.htaccess</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PEZpbGVzICIqLmpzIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBvcmRlciBkZW55LGFsbG93ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgYWxsb3cgZnJvbSBhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPC9GaWxlcz4K]]></data>
	</file>
	<file>
	  <filename>/js/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/js/main.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIENhbGVuZGFyVmlldyBmb3IgalF1ZXJ5IGJ5IEFsZXggR2Fub3YgKG1vZGlmaWVkIGJ5IE5hTikKICoKICogQmFzZWQgb24gQ2FsZW5kYXJWaWV3IGZvciBQcm90b3R5cGUgaHR0cDovL2NhbGVuZGFydmlldy5vcmcvIHdoaWNoIGlzIGJhc2VkCiAqIG9uIER5bmFyY2ggREhUTUwgQ2FsZW5kYXIgaHR0cDovL3d3dy5keW5hcmNoLmNvbS9wcm9qZWN0cy9jYWxlbmRhci9vbGQvLgogKgogKiBDYWxlbmRhclZpZXcgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwKICogUHVibGljIExpY2Vuc2UgKExHUEwpCiAqCiAqIFVzYWdlOgogKiAgIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAkKCcjZGF0ZV9pbnB1dCcpLmNhbGVuZGFyKCk7CiAqICAgfQogKgogKiAgIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAkKCcjZGF0ZV9pbnB1dCcpLmNhbGVuZGFyKHt0cmlnZ2VyRWxlbWVudDogJyNkYXRlX2lucHV0X3RyaWdnZXInfSk7CiAqICAgfQogKgogKiAgIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAqICAgICAkKCcjZGF0ZV9pbnB1dCcpLmNhbGVuZGFyKHtwYXJlbnRFbGVtZW50OiAnI2NhbGVuZGFyX2NvbnRhaW5lcid9KTsKICogICB9CiAqCiAqIERlZmF1bHQgb3B0aW9uczoKICogICB0cmlnZ2VyRWxlbWVudDogbnVsbCwgLy8gUG9wdXAgY2FsZW5kYXIKICogICBwYXJlbnRFbGVtZW50OiBudWxsLCAvLyBJbmxpbmUgY2FsZW5kYXIKICogICBtaW5ZZWFyOiAxOTAwLAogKiAgIG1heFllYXI6IDIxMDAsCiAqICAgZmlyc3REYXlPZldlZWs6IDEsIC8vIE1vbmRheQogKiAgIHdlZWtlbmQ6ICIwLDYiLCAvLyBTdW5kYXkgYW5kIFNhdHVyZGF5CiAqICAgZGF0ZUZvcm1hdDogJyVZLSVtLSVkJywKICogICBzZWxlY3RIYW5kbGVyOiBudWxsLCAvLyBXaWxsIHVzZSBkZWZhdWx0IHNlbGVjdCBoYW5kbGVyCiAqICAgY2xvc2VIYW5kbGVyOiBudWxsIC8vIFdpbGwgdXNlIGRlZmF1bHQgY2xvc2UgaGFuZGxlcgogKi8KOyhmdW5jdGlvbigkKSB7Cgl2YXIgQ2FsZW5kYXIgPSBmdW5jdGlvbigpIHsKCQl0aGlzLmRhdGUgPSBuZXcgRGF0ZSgpOwoJfTsKCgkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJLy8gQ29uc3RhbnRzCgkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCUNhbGVuZGFyLlZFUlNJT04gPSAnMS4yJzsKCUNhbGVuZGFyLlRPREFZID0gJ1RvZGF5JzsKCglDYWxlbmRhci5EQVlfTkFNRVMgPSBuZXcgQXJyYXkoCgkJJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5JwoJKTsKCglDYWxlbmRhci5TSE9SVF9EQVlfTkFNRVMgPSBuZXcgQXJyYXkoJ1N1JywgJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJyk7CgoJQ2FsZW5kYXIuTU9OVEhfTkFNRVMgPSBuZXcgQXJyYXkoCgkJJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLAoJCSdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlcicKCSk7CgoJQ2FsZW5kYXIuU0hPUlRfTU9OVEhfTkFNRVMgPSBuZXcgQXJyYXkoCgkJJ0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJywgJ0p1bCcsICdBdWcnLCAnU2VwJywgJ09jdCcsICdOb3YnLCAnRGVjJwoJKTsKCglDYWxlbmRhci5OQVZfUFJFVklPVVNfWUVBUiAgPSAtMjsKCUNhbGVuZGFyLk5BVl9QUkVWSU9VU19NT05USCA9IC0xOwoJQ2FsZW5kYXIuTkFWX1RPREFZICAgICAgICAgID0gIDA7CglDYWxlbmRhci5OQVZfTkVYVF9NT05USCAgICAgPSAgMTsKCUNhbGVuZGFyLk5BVl9ORVhUX1lFQVIgICAgICA9ICAyOwoKCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkvLyBTdGF0aWMgTWV0aG9kcwoJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgkvKioKCSAqIFRoaXMgZ2V0cyBjYWxsZWQgd2hlbiB0aGUgdXNlciBwcmVzc2VzIGEgbW91c2UgYnV0dG9uIGFueXdoZXJlIGluIHRoZQoJICogZG9jdW1lbnQsIGlmIHRoZSBjYWxlbmRhciBpcyBzaG93bi4gSWYgdGhlIGNsaWNrIHdhcyBvdXRzaWRlIHRoZSBvcGVuCgkgKiBjYWxlbmRhciB0aGlzIGZ1bmN0aW9uIGNsb3NlcyBpdC4KCSAqCgkgKiBAcGFyYW0gZXZlbnQKCSAqLwoJQ2FsZW5kYXIuX2NoZWNrQ2FsZW5kYXIgPSBmdW5jdGlvbihldmVudCkgewoJCWlmICghd2luZG93Ll9wb3B1cENhbGVuZGFyKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCWlmICgkKGV2ZW50LnRhcmdldCkucGFyZW50cygpLmluZGV4KCQod2luZG93Ll9wb3B1cENhbGVuZGFyLmNvbnRhaW5lcikpID49IDApIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJd2luZG93Ll9wb3B1cENhbGVuZGFyLmNhbGxDbG9zZUhhbmRsZXIoKTsKCQlyZXR1cm4gZXZlbnQucHJldmVudERlZmF1bHQoKTsKCX0KCgkvKioKCSAqIEV2ZW50IEhhbmRsZXJzCgkgKiBAcGFyYW0gZXZlbnQKCSAqLwoJQ2FsZW5kYXIuaGFuZGxlTW91c2VEb3duRXZlbnQgPSBmdW5jdGlvbihldmVudCl7CgkJJChkb2N1bWVudCkubW91c2V1cChDYWxlbmRhci5oYW5kbGVNb3VzZVVwRXZlbnQpOwoJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cgl9CgoJLyoqCgkgKiBDbGlja3Mgb2YgZGlmZmVyZW50IGFjdGlvbnMKCSAqIEBwYXJhbSBldmVudAoJICovCglDYWxlbmRhci5oYW5kbGVNb3VzZVVwRXZlbnQgPSBmdW5jdGlvbihldmVudCkgewoJCXZhciBlbCAgICAgICAgPSBldmVudC50YXJnZXQ7CgkJdmFyIGNhbGVuZGFyICA9IGVsLmNhbGVuZGFyOwoJCXZhciBpc05ld0RhdGUgPSBmYWxzZTsKCgkJLy8gSWYgdGhlIGVsZW1lbnQgdGhhdCB3YXMgY2xpY2tlZCBvbiBkb2VzIG5vdCBoYXZlIGFuIGFzc29jaWF0ZWQgQ2FsZW5kYXIKCQkvLyBvYmplY3QsIHJldHVybiBhcyB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8uCgkJaWYgKCFjYWxlbmRhcikgcmV0dXJuIGZhbHNlOwoKCQkvLyBDbGlja2VkIG9uIGEgZGF5CgkJaWYgKHR5cGVvZiBlbC5uYXZBY3Rpb24gPT0gJ3VuZGVmaW5lZCcpIHsKCQkJaWYgKGNhbGVuZGFyLmN1cnJlbnREYXRlRWxlbWVudCkgewoJCQkJY2FsZW5kYXIuY3VycmVudERhdGVFbGVtZW50LnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpOwoJCQkJJChlbCkuYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7CgkJCQljYWxlbmRhci5zaG91bGRDbG9zZSA9IChjYWxlbmRhci5jdXJyZW50RGF0ZUVsZW1lbnQgPT0gJChlbCkpOwoJCQkJaWYgKCFjYWxlbmRhci5zaG91bGRDbG9zZSkgewoJCQkJCWNhbGVuZGFyLmN1cnJlbnREYXRlRWxlbWVudCA9ICQoZWwpOwoJCQkJfQoJCQl9CgkJCWNhbGVuZGFyLmRhdGUuc2V0RGF0ZU9ubHkoZWwuZGF0ZSk7CgkJCWlzTmV3RGF0ZSA9IHRydWU7CgkJCWNhbGVuZGFyLnNob3VsZENsb3NlID0gISQoZWwpLmhhc0NsYXNzKCdvdGhlckRheScpOwoJCQl2YXIgaXNPdGhlck1vbnRoICAgICA9ICFjYWxlbmRhci5zaG91bGRDbG9zZTsKCQkJaWYgKGlzT3RoZXJNb250aCkgewoJCQkJY2FsZW5kYXIudXBkYXRlKGNhbGVuZGFyLmRhdGUpOwoJCQl9CgkJfSBlbHNlIHsKCQkJLy8gQ2xpY2tlZCBvbiBhbiBhY3Rpb24gYnV0dG9uCgkJCXZhciBkYXRlID0gbmV3IERhdGUoY2FsZW5kYXIuZGF0ZSk7CgoJCQlpZiAoZWwubmF2QWN0aW9uID09IENhbGVuZGFyLk5BVl9UT0RBWSkgewoJCQkJZGF0ZS5zZXREYXRlT25seShuZXcgRGF0ZSgpKTsKCQkJfQoKCQkJdmFyIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7CgkJCXZhciBtb24gPSBkYXRlLmdldE1vbnRoKCk7CgkJCWZ1bmN0aW9uIHNldE1vbnRoKG0pIHsKCQkJCXZhciBkYXkgPSBkYXRlLmdldERhdGUoKTsKCQkJCXZhciBtYXggPSBkYXRlLmdldE1vbnRoRGF5cyhtKTsKCQkJCWlmIChkYXkgPiBtYXgpIGRhdGUuc2V0RGF0ZShtYXgpCgkJCQkJZGF0ZS5zZXRNb250aChtKTsKCQkJfQoJCQlzd2l0Y2ggKGVsLm5hdkFjdGlvbikgewoKCQkJCS8vIFByZXZpb3VzIFllYXIKCQkJCWNhc2UgQ2FsZW5kYXIuTkFWX1BSRVZJT1VTX1lFQVI6CgkJCQkJaWYgKHllYXIgPiBjYWxlbmRhci5taW5ZZWFyKQoJCQkJCQlkYXRlLnNldEZ1bGxZZWFyKHllYXIgLSAxKTsKCQkJCQlicmVhazsKCgkJCQkvLyBQcmV2aW91cyBNb250aAoJCQkJY2FzZSBDYWxlbmRhci5OQVZfUFJFVklPVVNfTU9OVEg6CgkJCQkJaWYgKG1vbiA+IDApIHsKCQkJCQkJc2V0TW9udGgobW9uIC0gMSk7CgkJCQkJfQoJCQkJCWVsc2UgaWYgKHllYXItLSA+IGNhbGVuZGFyLm1pblllYXIpIHsKCQkJCQkJZGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTsKCQkJCQkJc2V0TW9udGgoMTEpOwoJCQkJCX0KCQkJCQlicmVhazsKCgkJCQkvLyBUb2RheQoJCQkJY2FzZSBDYWxlbmRhci5OQVZfVE9EQVk6CgkJCQkJYnJlYWs7CgoJCQkJLy8gTmV4dCBNb250aAoJCQkJY2FzZSBDYWxlbmRhci5OQVZfTkVYVF9NT05USDoKCQkJCQlpZiAobW9uIDwgMTEpIHsKCQkJCQkJc2V0TW9udGgobW9uICsgMSk7CgkJCQkJfQoJCQkJCWVsc2UgaWYgKHllYXIgPCBjYWxlbmRhci5tYXhZZWFyKSB7CgkJCQkJCWRhdGUuc2V0RnVsbFllYXIoeWVhciArIDEpOwoJCQkJCQlzZXRNb250aCgwKTsKCQkJCQl9CgkJCQkJYnJlYWs7CgoJCQkJLy8gTmV4dCBZZWFyCgkJCQljYXNlIENhbGVuZGFyLk5BVl9ORVhUX1lFQVI6CgkJCQkJaWYgKHllYXIgPCBjYWxlbmRhci5tYXhZZWFyKQoJCQkJCQlkYXRlLnNldEZ1bGxZZWFyKHllYXIgKyAxKTsKCQkJCQlicmVhazsKCgkJCX0KCgkJCWlmICghZGF0ZS5lcXVhbHNUbyhjYWxlbmRhci5kYXRlKSkgewoJCQkJY2FsZW5kYXIuc2hvdWxkQ2xvc2UgPSBmYWxzZTsKCQkJCWNhbGVuZGFyLnNldERhdGUoZGF0ZSk7CgkJCQlpc05ld0RhdGUgPSB0cnVlOwoJCQl9IGVsc2UgaWYgKGVsLm5hdkFjdGlvbiA9PSAwKSB7CgkJCQlpc05ld0RhdGUgPSAoY2FsZW5kYXIuc2hvdWxkQ2xvc2UgPSB0cnVlKTsKCQkJfQoJCX0KCgkJaWYgKGlzTmV3RGF0ZSkgZXZlbnQgJiYgY2FsZW5kYXIuY2FsbFNlbGVjdEhhbmRsZXIoKTsKCQlpZiAoY2FsZW5kYXIuc2hvdWxkQ2xvc2UpIGV2ZW50ICYmIGNhbGVuZGFyLmNhbGxDbG9zZUhhbmRsZXIoKTsKCQkkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNldXAnLCBDYWxlbmRhci5oYW5kbGVNb3VzZVVwRXZlbnQpOwoJCXJldHVybiBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoJfTsKCglDYWxlbmRhci5kZWZhdWx0U2VsZWN0SGFuZGxlciA9IGZ1bmN0aW9uKGNhbGVuZGFyKSB7CgkJaWYgKCFjYWxlbmRhci5kYXRlRmllbGQpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJLy8gVXBkYXRlIGRhdGVGaWVsZCB2YWx1ZQoJCShjYWxlbmRhci5kYXRlRmllbGQuYXR0cigndGFnTmFtZScpID09ICdJTlBVVCcpCgkJCT8gY2FsZW5kYXIuZGF0ZUZpZWxkLnZhbChjYWxlbmRhci5kYXRlLnByaW50KGNhbGVuZGFyLmRhdGVGb3JtYXQpKQoJCQk6IGNhbGVuZGFyLmRhdGVGaWVsZC5odG1sKGNhbGVuZGFyLmRhdGUucHJpbnQoY2FsZW5kYXIuZGF0ZUZvcm1hdCkpOwoKCQkvLyBUcmlnZ2VyIHRoZSBvbmNoYW5nZSBjYWxsYmFjayBvbiB0aGUgZGF0ZUZpZWxkLCBpZiBvbmUgaGFzIGJlZW4gZGVmaW5lZAoJCWNhbGVuZGFyLmRhdGVGaWVsZC50cmlnZ2VyKCdjaGFuZ2UnKTsKCgkJLy8gQ2FsbCB0aGUgY2xvc2UgaGFuZGxlciwgaWYgbmVjZXNzYXJ5CgkJaWYgKGNhbGVuZGFyLnNob3VsZENsb3NlKSB7CgkJCWNhbGVuZGFyLmNhbGxDbG9zZUhhbmRsZXIoKTsKCQl9CgoJCXJldHVybiB0cnVlOwoJfQoKCUNhbGVuZGFyLmRlZmF1bHRDbG9zZUhhbmRsZXIgPSBmdW5jdGlvbihjYWxlbmRhcikgewoJCWNhbGVuZGFyLmhpZGUoKTsKCX0KCgkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJLy8gQ2FsZW5kYXIgSW5zdGFuY2UKCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoJQ2FsZW5kYXIucHJvdG90eXBlID0gewoJCS8vIFRoZSBIVE1MIENvbnRhaW5lciBFbGVtZW50CgkJY29udGFpbmVyOiBudWxsLAoKCQkvLyBEYXRlcwoJCWRhdGU6IG51bGwsCgkJY3VycmVudERhdGVFbGVtZW50OiBudWxsLAoKCQkvLyBTdGF0dXMKCQlzaG91bGRDbG9zZTogZmFsc2UsCgkJaXNQb3B1cDogdHJ1ZSwKCgkJLyoqCgkJICogVXBkYXRlIC8gKFJlKWluaXRpYWxpemUgQ2FsZW5kYXIKCQkgKiBAcGFyYW0gZGF0ZQoJCSAqLwoJCXVwZGF0ZTogZnVuY3Rpb24oZGF0ZSkgewoJCQl2YXIgY2FsZW5kYXIgICA9IHRoaXM7CgkJCXZhciB0b2RheSAgICAgID0gbmV3IERhdGUoKTsKCQkJdmFyIHRoaXNZZWFyICAgPSB0b2RheS5nZXRGdWxsWWVhcigpOwoJCQl2YXIgdGhpc01vbnRoICA9IHRvZGF5LmdldE1vbnRoKCk7CgkJCXZhciB0aGlzRGF5ICAgID0gdG9kYXkuZ2V0RGF0ZSgpOwoJCQl2YXIgbW9udGggICAgICA9IGRhdGUuZ2V0TW9udGgoKTsKCQkJdmFyIGRheU9mTW9udGggPSBkYXRlLmdldERhdGUoKTsKCgkJCS8vIEVuc3VyZSBkYXRlIGlzIHdpdGhpbiB0aGUgZGVmaW5lZCByYW5nZQoJCQlpZiAoZGF0ZS5nZXRGdWxsWWVhcigpIDwgdGhpcy5taW5ZZWFyKSB7CgkJCQlkYXRlLnNldEZ1bGxZZWFyKHRoaXMubWluWWVhcik7CgkJCX0gZWxzZSBpZiAoZGF0ZS5nZXRGdWxsWWVhcigpID4gdGhpcy5tYXhZZWFyKSB7CgkJCQlkYXRlLnNldEZ1bGxZZWFyKHRoaXMubWF4WWVhcik7CgkJCX0KCQkJdGhpcy5kYXRlID0gbmV3IERhdGUoZGF0ZSk7CgoJCQkvLyBDYWxjdWxhdGUgdGhlIGZpcnN0IGRheSB0byBkaXNwbGF5IChpbmNsdWRpbmcgdGhlIHByZXZpb3VzIG1vbnRoKQoJCQlkYXRlLnNldERhdGUoMSk7CgkJCXZhciBkYXkxID0gKGRhdGUuZ2V0RGF5KCkgLSB0aGlzLmZpcnN0RGF5T2ZXZWVrKSAlIDc7CgkJCWlmIChkYXkxIDwgMCkgZGF5MSArPSA3OwoJCQlkYXRlLnNldERhdGUoLWRheTEpOwoJCQlkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyAxKTsKCgkJCS8vIEZpbGwgaW4gdGhlIGRheXMgb2YgdGhlIG1vbnRoCgkJCSQoJ3Rib2R5IHRyJywgdGhpcy5jb250YWluZXIpLmVhY2goZnVuY3Rpb24oKSB7CgkJCQl2YXIgcm93SGFzRGF5cyA9IGZhbHNlOwoJCQkJJCh0aGlzKS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKSB7CgkJCQkJdmFyIGRheSAgICAgICAgICAgID0gZGF0ZS5nZXREYXRlKCk7CgkJCQkJdmFyIGRheU9mV2VlayAgICAgID0gZGF0ZS5nZXREYXkoKTsKCQkJCQl2YXIgaXNDdXJyZW50TW9udGggPSAoZGF0ZS5nZXRNb250aCgpID09IG1vbnRoKTsKCgkJCQkJLy8gUmVzZXQgY2xhc3NlcyBvbiB0aGUgY2VsbAoJCQkJCWNlbGwgPSAkKHRoaXMpOwoJCQkJCWNlbGwucmVtb3ZlQXR0cignY2xhc3MnKTsKCQkJCQljZWxsWzBdLmRhdGUgPSBuZXcgRGF0ZShkYXRlKTsKCQkJCQljZWxsLmh0bWwoZGF5KTsKCgkJCQkJLy8gQWNjb3VudCBmb3IgZGF5cyBvZiB0aGUgbW9udGggb3RoZXIgdGhhbiB0aGUgY3VycmVudCBtb250aAoJCQkJCWlmICghaXNDdXJyZW50TW9udGgpIHsKCQkJCQkJY2VsbC5hZGRDbGFzcygnb3RoZXJEYXknKTsKCQkJCQl9IGVsc2UgewoJCQkJCQlyb3dIYXNEYXlzID0gdHJ1ZTsKCQkJCQl9CgoJCQkJCS8vIEVuc3VyZSB0aGUgY3VycmVudCBkYXkgaXMgc2VsZWN0ZWQKCQkJCQlpZiAoaXNDdXJyZW50TW9udGggJiYgZGF5ID09IGRheU9mTW9udGgpIHsKCQkJCQkJY2VsbC5hZGRDbGFzcygnc2VsZWN0ZWQnKTsKCQkJCQkJY2FsZW5kYXIuY3VycmVudERhdGVFbGVtZW50ID0gY2VsbDsKCQkJCQl9CgoJCQkJCS8vIFRvZGF5CgkJCQkJaWYgKGRhdGUuZ2V0RnVsbFllYXIoKSA9PSB0aGlzWWVhciAmJiBkYXRlLmdldE1vbnRoKCkgPT0gdGhpc01vbnRoICYmIGRheSA9PSB0aGlzRGF5KSB7CgkJCQkJCWNlbGwuYWRkQ2xhc3MoJ3RvZGF5Jyk7CgkJCQkJfQoKCQkJCQkvLyBXZWVrZW5kCgkJCQkJaWYgKGNhbGVuZGFyLndlZWtlbmQuaW5kZXhPZihkYXlPZldlZWsudG9TdHJpbmcoKSkgIT0gLTEpIHsKCQkJCQkJY2VsbC5hZGRDbGFzcygnd2Vla2VuZCcpOwoJCQkJCX0KCgkJCQkJLy8gU2V0IHRoZSBkYXRlIHRvIHRvbW1vcnJvdwoJCQkJCWRhdGUuc2V0RGF0ZShkYXkgKyAxKTsKCQkJCX0pOwoJCQkJLy8gSGlkZSB0aGUgZXh0cmEgcm93IGlmIGl0IGNvbnRhaW5zIG9ubHkgZGF5cyBmcm9tIGFub3RoZXIgbW9udGgKCQkJCSFyb3dIYXNEYXlzID8gJCh0aGlzKS5oaWRlKCkgOiAkKHRoaXMpLnNob3coKTsKCQkJfSk7CgoJCQkkKCd0ZC50aXRsZScsIHRoaXMuY29udGFpbmVyKS5odG1sKENhbGVuZGFyLk1PTlRIX05BTUVTW21vbnRoXSArICcgJyArIGNhbGVuZGFyLmRhdGUuZ2V0RnVsbFllYXIoKSk7CgkJfSwKCgkJY3JlYXRlOiBmdW5jdGlvbihwYXJlbnQpIHsKCgkJCS8vIElmIG5vIHBhcmVudCB3YXMgc3BlY2lmaWVkLCBhc3N1bWUgdGhhdCB3ZSBhcmUgY3JlYXRpbmcgYSBwb3B1cCBjYWxlbmRhci4KCQkJdGhpcy5pc1BvcHVwID0gZmFsc2U7CgkJCWlmICghcGFyZW50KSB7CgkJCQlwYXJlbnQgPSAkKCdib2R5Jyk7CgkJCQl0aGlzLmlzUG9wdXAgPSB0cnVlOwoJCQl9CgoJCQkvLyBDYWxlbmRhciBUYWJsZQoJCQl2YXIgdGFibGUgPSAkKCc8dGFibGUgLz4nKTsKCgkJCS8vIENhbGVuZGFyIEhlYWRlcgoJCQl2YXIgdGhlYWQgPSAkKCc8dGhlYWQgLz4nKTsKCQkJdGFibGUuYXBwZW5kKHRoZWFkKTsKCgkJCS8vIFRpdGxlIFBsYWNlaG9sZGVyCgkJCXZhciByb3cgID0gJCgnPHRyIC8+Jyk7CgkJCXZhciBjZWxsID0gJCgnPHRkIGNvbHNwYW49IjciIGNsYXNzPSJ0aXRsZSIgLz4nKTsKCQkJcm93LmFwcGVuZChjZWxsKTsKCQkJdGhlYWQuYXBwZW5kKHJvdyk7CgoJCQkvLyBDYWxlbmRhciBOYXZpZ2F0aW9uCgkJCXJvdyA9ICQoJzx0ciAvPicpOwoJCQl0aGlzLl9kcmF3QnV0dG9uQ2VsbChyb3csICcmI3gwMGFiOycsIDEsIENhbGVuZGFyLk5BVl9QUkVWSU9VU19ZRUFSKTsKCQkJdGhpcy5fZHJhd0J1dHRvbkNlbGwocm93LCAnJiN4MjAzOTsnLCAxLCBDYWxlbmRhci5OQVZfUFJFVklPVVNfTU9OVEgpOwoJCQl0aGlzLl9kcmF3QnV0dG9uQ2VsbChyb3csIENhbGVuZGFyLlRPREFZLCAgICAzLCBDYWxlbmRhci5OQVZfVE9EQVkpOwoJCQl0aGlzLl9kcmF3QnV0dG9uQ2VsbChyb3csICcmI3gyMDNhOycsIDEsIENhbGVuZGFyLk5BVl9ORVhUX01PTlRIKTsKCQkJdGhpcy5fZHJhd0J1dHRvbkNlbGwocm93LCAnJiN4MDBiYjsnLCAxLCBDYWxlbmRhci5OQVZfTkVYVF9ZRUFSKTsKCQkJdGhlYWQuYXBwZW5kKHJvdyk7CgoJCQkvLyBEYXkgTmFtZXMKCQkJcm93ID0gJCgnPHRyIC8+Jyk7CgkJCWZvciAodmFyIGkgPSAwOyBpIDwgNzsgKytpKSB7CgkJCQl2YXIgcmVhbERheSA9IChpICsgdGhpcy5maXJzdERheU9mV2VlaykgJSA3OwoJCQkJY2VsbCA9ICQoJzx0aCAvPicpLmh0bWwoQ2FsZW5kYXIuU0hPUlRfREFZX05BTUVTW3JlYWxEYXldKTsKCQkJCWlmICh0aGlzLndlZWtlbmQuaW5kZXhPZihyZWFsRGF5LnRvU3RyaW5nKCkpICE9IC0xKQoJCQkJCWNlbGwuYWRkQ2xhc3MoJ3dlZWtlbmQnKTsKCQkJCXJvdy5hcHBlbmQoY2VsbCk7CgkJCX0KCQkJdGhlYWQuYXBwZW5kKHJvdyk7CgoJCQkvLyBDYWxlbmRhciBEYXlzCgkJCXZhciB0Ym9keSA9IHRhYmxlLmFwcGVuZCgkKCc8dGJvZHkgLz4nKSk7CgkJCWZvciAoaSA9IDY7IGkgPiAwOyAtLWkpIHsKCQkJCXJvdyA9ICQoJzx0ciAvPicpLmFkZENsYXNzKCdkYXlzJyk7CgkJCQl0Ym9keS5hcHBlbmQocm93KTsKCQkJCWZvciAodmFyIGogPSA3OyBqID4gMDsgLS1qKSB7CgkJCQkJY2VsbCA9ICQoJzx0ZCAvPicpOwoJCQkJCWNlbGxbMF0uY2FsZW5kYXIgPSB0aGlzOwoJCQkJCXJvdy5hcHBlbmQoY2VsbCk7CgkJCQl9CgkJCX0KCgkJCS8vIENhbGVuZGFyIENvbnRhaW5lciAoZGl2KQoJCQl0aGlzLmNvbnRhaW5lciA9ICQoJzxkaXYgLz4nKS5hZGRDbGFzcygnY2FsZW5kYXInKS5hcHBlbmQodGFibGUpOwoJCQlpZiAodGhpcy5pc1BvcHVwKSB7CgkJCQl0aGlzLmNvbnRhaW5lci5jc3MoewoJCQkJCXBvc2l0aW9uOiAnYWJzb2x1dGUnLAoJCQkJCWRpc3BsYXk6ICdub25lJwoJCQkJfSkuYWRkQ2xhc3MoJ3BvcHVwJyk7CgkJCX0KCgkJCS8vIEluaXRpYWxpemUgQ2FsZW5kYXIKCQkJdGhpcy51cGRhdGUodGhpcy5kYXRlKTsKCgkJCS8vIE9ic2VydmUgdGhlIGNvbnRhaW5lciBmb3IgbW91c2Vkb3duIGV2ZW50cwoJCQl0aGlzLmNvbnRhaW5lci5tb3VzZWRvd24oQ2FsZW5kYXIuaGFuZGxlTW91c2VEb3duRXZlbnQpOwoKCQkJLy8gQXBwZW5kIHRvIHBhcmVudCBlbGVtZW50CgkJCXBhcmVudC5hcHBlbmQodGhpcy5jb250YWluZXIpOwoJCX0sCgoJCV9kcmF3QnV0dG9uQ2VsbDogZnVuY3Rpb24ocGFyZW50LCB0ZXh0LCBjb2xTcGFuLCBuYXZBY3Rpb24pIHsKCQkJdmFyIGNlbGwgPSAkKCc8dGQgLz4nKTsKCQkJaWYgKGNvbFNwYW4gPiAxKSBjZWxsWzBdLmNvbFNwYW4gPSBjb2xTcGFuOyAvLyBJRSBpc3N1ZSBhdHRyKCkKCQkJY2VsbC5hZGRDbGFzcygnYnV0dG9uJykuaHRtbCh0ZXh0KS5hdHRyKCd1bnNlbGVjdGFibGUnLCAnb24nKTsgLy8gSUU7CgkJCWNlbGxbMF0uY2FsZW5kYXIgICAgID0gdGhpczsKCQkJY2VsbFswXS5uYXZBY3Rpb24gICAgPSBuYXZBY3Rpb247CgkJCXBhcmVudC5hcHBlbmQoY2VsbCk7CgkJCXJldHVybiBjZWxsOwoJCX0sCgoJCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkJLy8gQ2FsbGJhY2tzCgkJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgkJLyoqCgkJICogQ2FsbHMgdGhlIFNlbGVjdCBIYW5kbGVyIChpZiBkZWZpbmVkKQoJCSAqLwoJCWNhbGxTZWxlY3RIYW5kbGVyOiBmdW5jdGlvbigpIHsKCQkJaWYgKHRoaXMuc2VsZWN0SGFuZGxlcikgewoJCQkJdGhpcy5zZWxlY3RIYW5kbGVyKHRoaXMsIHRoaXMuZGF0ZS5wcmludCh0aGlzLmRhdGVGb3JtYXQpKTsKCQkJfQoJCX0sCgoJCS8qKgoJCSAqIENhbGxzIHRoZSBDbG9zZSBIYW5kbGVyIChpZiBkZWZpbmVkKQoJCSAqLwoJCWNhbGxDbG9zZUhhbmRsZXI6IGZ1bmN0aW9uKCkgewoJCQlpZiAodGhpcy5jbG9zZUhhbmRsZXIpIHsKCQkJCXRoaXMuY2xvc2VIYW5kbGVyKHRoaXMpOwoJCQl9CgkJfSwKCgkJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCQkvLyBDYWxlbmRhciBEaXNwbGF5IEZ1bmN0aW9ucwoJCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoJCS8qKgoJCSAqIFNob3dzIHRoZSBDYWxlbmRhcgoJCSAqLwoJCXNob3c6IGZ1bmN0aW9uKCkgewoJCQl0aGlzLmNvbnRhaW5lci5zaG93KCk7CgkJCWlmICh0aGlzLmlzUG9wdXApIHsKCQkJCXdpbmRvdy5fcG9wdXBDYWxlbmRhciA9IHRoaXM7CgkJCQkkKGRvY3VtZW50KS5tb3VzZWRvd24oQ2FsZW5kYXIuX2NoZWNrQ2FsZW5kYXIpOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogU2hvd3MgdGhlIGNhbGVuZGFyIGF0IHRoZSBnaXZlbiBhYnNvbHV0ZSBwb3NpdGlvbgoJCSAqIEBwYXJhbSB4CgkJICogQHBhcmFtIHkKCQkgKi8KCQlzaG93QXQ6IGZ1bmN0aW9uICh4LCB5KSB7CgkJCXRoaXMuY29udGFpbmVyLmNzcyh7CgkJCQlsZWZ0OiB4ICsgJ3B4JywKCQkJCXRvcDogeSArICdweCcKCQkJfSkKCQkJdGhpcy5zaG93KCk7CgkJfSwKCgkJLyoqCgkJICogU2hvd3MgdGhlIENhbGVuZGFyIGF0IHRoZSBjb29yZGluYXRlcyBvZiB0aGUgcHJvdmlkZWQgZWxlbWVudAoJCSAqIEBwYXJhbSBlbGVtZW50CgkJICovCgkJc2hvd0F0RWxlbWVudDogZnVuY3Rpb24oZWxlbWVudCkgewoJCQl2YXIgb2Zmc2V0ID0gZWxlbWVudC5vZmZzZXQoKTsKCQkJdGhpcy5zaG93QXQob2Zmc2V0LmxlZnQsIG9mZnNldC50b3ApOwoJCX0sCgoJCS8qKgoJCSAqIEhpZGVzIHRoZSBDYWxlbmRhcgoJCSAqLwoJCWhpZGU6IGZ1bmN0aW9uKCkgewoJCQlpZiAodGhpcy5pc1BvcHVwKSB7CgkJCQkkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNlZG93bicsIENhbGVuZGFyLl9jaGVja0NhbGVuZGFyKTsKCQkJfQoJCQl0aGlzLmNvbnRhaW5lci5oaWRlKCk7CgkJfSwKCgkJLyoqCgkJICogVHJpZXMgdG8gaWRlbnRpZnkgdGhlIGRhdGUgcmVwcmVzZW50ZWQgaW4gYSBzdHJpbmcuICBJZiBzdWNjZXNzZnVsIGl0IGFsc28KCQkgKiBjYWxscyB0aGlzLnNldERhdGUgd2hpY2ggbW92ZXMgdGhlIGNhbGVuZGFyIHRvIHRoZSBnaXZlbiBkYXRlLgoJCSAqIEBwYXJhbSBzdHIKCQkgKiBAcGFyYW0gZm9ybWF0CgkJICovCgkJcGFyc2VEYXRlOiBmdW5jdGlvbihzdHIsIGZvcm1hdCkgewoJCQlpZiAoIWZvcm1hdCkgewoJCQkJZm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0OwoJCQl9CgkJCXRoaXMuc2V0RGF0ZShEYXRlLnBhcnNlRGF0ZShzdHIsIGZvcm1hdCkpOwoJCX0sCgoJCXNldERhdGU6IGZ1bmN0aW9uKGRhdGUpIHsKCQkJaWYgKCFkYXRlLmVxdWFsc1RvKHRoaXMuZGF0ZSkpCgkJCQl0aGlzLnVwZGF0ZShkYXRlKTsKCQl9LAoKCQlzZXRSYW5nZTogZnVuY3Rpb24obWluWWVhciwgbWF4WWVhcikgewoJCQl0aGlzLm1pblllYXIgPSBtaW5ZZWFyOwoJCQl0aGlzLm1heFllYXIgPSBtYXhZZWFyOwoJCX0KCX0KCgkvLyBnbG9iYWwgb2JqZWN0IHRoYXQgcmVtZW1iZXJzIHRoZSBjYWxlbmRhcgoJd2luZG93Ll9wb3B1cENhbGVuZGFyID0gbnVsbDsKCgkvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJLy8gRGF0ZSBPYmplY3QgUGF0Y2hlcwoJLy8gVGhpcyBpcyBwcmV0dHkgbXVjaCB1bnRvdWNoZWQgZnJvbSB0aGUgb3JpZ2luYWwuCgkvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJRGF0ZS5EQVlTX0lOX01PTlRIID0gbmV3IEFycmF5KDMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzEpOwoJRGF0ZS5TRUNPTkQgICAgICAgID0gMTAwMDsgLyogbWlsbGlzZWNvbmRzICovCglEYXRlLk1JTlVURSAgICAgICAgPSA2MCAqIERhdGUuU0VDT05EOwoJRGF0ZS5IT1VSICAgICAgICAgID0gNjAgKiBEYXRlLk1JTlVURTsKCURhdGUuREFZICAgICAgICAgICA9IDI0ICogRGF0ZS5IT1VSOwoJRGF0ZS5XRUVLICAgICAgICAgID0gIDcgKiBEYXRlLkRBWTsKCgkvLyBQYXJzZXMgRGF0ZQoJRGF0ZS5wYXJzZURhdGUgPSBmdW5jdGlvbihzdHIsIGZtdCkgewoJCXZhciB0b2RheSA9IG5ldyBEYXRlKCk7CgkJdmFyIHkgICAgID0gMDsKCQl2YXIgbSAgICAgPSAtMTsKCQl2YXIgZCAgICAgPSAwOwoJCXZhciBhICAgICA9IHN0ci5zcGxpdCgvXFcrLyk7CgkJdmFyIGIgICAgID0gZm10Lm1hdGNoKC8lLi9nKTsKCQl2YXIgaSAgICAgPSAwLCBqID0gMDsKCQl2YXIgaHIgICAgPSAwOwoJCXZhciBtaW4gICA9IDA7CgoJCWZvciAoaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CgkJCWlmICghYVtpXSkgY29udGludWU7CgkJCXN3aXRjaCAoYltpXSkgewoJCQkJY2FzZSAiJWQiOgoJCQkJY2FzZSAiJWUiOgoJCQkJCWQgPSBwYXJzZUludChhW2ldLCAxMCk7CgkJCQkJYnJlYWs7CgkJCQljYXNlICIlbSI6CgkJCQkJbSA9IHBhcnNlSW50KGFbaV0sIDEwKSAtIDE7CgkJCQkJYnJlYWs7CgkJCQljYXNlICIlWSI6CgkJCQljYXNlICIleSI6CgkJCQkJeSA9IHBhcnNlSW50KGFbaV0sIDEwKTsKCQkJCQkoeSA8IDEwMCkgJiYgKHkgKz0gKHkgPiAyOSkgPyAxOTAwIDogMjAwMCk7CgkJCQkJYnJlYWs7CgkJCQljYXNlICIlYiI6CgkJCQljYXNlICIlQiI6CgkJCQkJZm9yIChqID0gMDsgaiA8IDEyOyArK2opIHsKCQkJCQkJaWYgKENhbGVuZGFyLk1PTlRIX05BTUVTW2pdLnN1YnN0cigwLCBhW2ldLmxlbmd0aCkudG9Mb3dlckNhc2UoKSA9PSBhW2ldLnRvTG93ZXJDYXNlKCkpIHsKCQkJCQkJCW0gPSBqOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQljYXNlICIlSCI6CgkJCQljYXNlICIlSSI6CgkJCQljYXNlICIlayI6CgkJCQljYXNlICIlbCI6CgkJCQkJaHIgPSBwYXJzZUludChhW2ldLCAxMCk7CgkJCQkJYnJlYWs7CgkJCQljYXNlICIlUCI6CgkJCQljYXNlICIlcCI6CgkJCQkJaWYgKC9wbS9pLnRlc3QoYVtpXSkgJiYgaHIgPCAxMikKCQkJCQkJaHIgKz0gMTI7CgkJCQkJZWxzZSBpZiAoL2FtL2kudGVzdChhW2ldKSAmJiBociA+PSAxMikKCQkJCQkJaHIgLT0gMTI7CgkJCQkJYnJlYWs7CgkJCQljYXNlICIlTSI6CgkJCQkJbWluID0gcGFyc2VJbnQoYVtpXSwgMTApOwoJCQkJCWJyZWFrOwoJCQl9CgkJfQoJCWlmIChpc05hTih5KSkgeSA9IHRvZGF5LmdldEZ1bGxZZWFyKCk7CgkJaWYgKGlzTmFOKG0pKSBtID0gdG9kYXkuZ2V0TW9udGgoKTsKCQlpZiAoaXNOYU4oZCkpIGQgPSB0b2RheS5nZXREYXRlKCk7CgkJaWYgKGlzTmFOKGhyKSkgaHIgPSB0b2RheS5nZXRIb3VycygpOwoJCWlmIChpc05hTihtaW4pKSBtaW4gPSB0b2RheS5nZXRNaW51dGVzKCk7CgkJaWYgKHkgIT0gMCAmJiBtICE9IC0xICYmIGQgIT0gMCkKCQkJcmV0dXJuIG5ldyBEYXRlKHksIG0sIGQsIGhyLCBtaW4sIDApOwoJCXkgPSAwOyBtID0gLTE7IGQgPSAwOwoJCWZvciAoaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CgkJCWlmIChhW2ldLnNlYXJjaCgvW2EtekEtWl0rLykgIT0gLTEpIHsKCQkJCXZhciB0ID0gLTE7CgkJCQlmb3IgKGogPSAwOyBqIDwgMTI7ICsraikgewoJCQkJCWlmIChDYWxlbmRhci5NT05USF9OQU1FU1tqXS5zdWJzdHIoMCwgYVtpXS5sZW5ndGgpLnRvTG93ZXJDYXNlKCkgPT0gYVtpXS50b0xvd2VyQ2FzZSgpKSB7CgkJCQkJCXQgPSBqOyBicmVhazsKCQkJCQl9CgkJCQl9CgkJCQlpZiAodCAhPSAtMSkgewoJCQkJCWlmIChtICE9IC0xKSB7CgkJCQkJCWQgPSBtKzE7CgkJCQkJfQoJCQkJCW0gPSB0OwoJCQkJfQoJCQl9IGVsc2UgaWYgKHBhcnNlSW50KGFbaV0sIDEwKSA8PSAxMiAmJiBtID09IC0xKSB7CgkJCQltID0gYVtpXS0xOwoJCQl9IGVsc2UgaWYgKHBhcnNlSW50KGFbaV0sIDEwKSA+IDMxICYmIHkgPT0gMCkgewoJCQkJeSA9IHBhcnNlSW50KGFbaV0sIDEwKTsKCQkJCSh5IDwgMTAwKSAmJiAoeSArPSAoeSA+IDI5KSA/IDE5MDAgOiAyMDAwKTsKCQkJfSBlbHNlIGlmIChkID09IDApIHsKCQkJCWQgPSBhW2ldOwoJCQl9CgkJfQoJCWlmICh5ID09IDApCgkJCXkgPSB0b2RheS5nZXRGdWxsWWVhcigpOwoJCWlmIChtICE9IC0xICYmIGQgIT0gMCkKCQkJcmV0dXJuIG5ldyBEYXRlKHksIG0sIGQsIGhyLCBtaW4sIDApOwoJCXJldHVybiB0b2RheTsKCX07CgoJLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGN1cnJlbnQgbW9udGgKCURhdGUucHJvdG90eXBlLmdldE1vbnRoRGF5cyA9IGZ1bmN0aW9uKG1vbnRoKSB7CgkJdmFyIHllYXIgPSB0aGlzLmdldEZ1bGxZZWFyKCkKCQlpZiAodHlwZW9mIG1vbnRoID09ICJ1bmRlZmluZWQiKQoJCQltb250aCA9IHRoaXMuZ2V0TW9udGgoKQoJCWlmICgoKDAgPT0gKHllYXIgJSA0KSkgJiYgKCAoMCAhPSAoeWVhciAlIDEwMCkpIHx8ICgwID09ICh5ZWFyICUgNDAwKSkpKSAmJiBtb250aCA9PSAxKQoJCQlyZXR1cm4gMjkKCQllbHNlCgkJCXJldHVybiBEYXRlLkRBWVNfSU5fTU9OVEhbbW9udGhdCgl9OwoKCS8vIFJldHVybnMgdGhlIG51bWJlciBvZiBkYXkgaW4gdGhlIHllYXIKCURhdGUucHJvdG90eXBlLmdldERheU9mWWVhciA9IGZ1bmN0aW9uKCkgewoJCXZhciBub3cgPSBuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksIHRoaXMuZ2V0TW9udGgoKSwgdGhpcy5nZXREYXRlKCksIDAsIDAsIDApOwoJCXZhciB0aGVuID0gbmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLCAwLCAwLCAwLCAwLCAwKTsKCQl2YXIgdGltZSA9IG5vdyAtIHRoZW47CgkJcmV0dXJuIE1hdGguZmxvb3IodGltZSAvIERhdGUuREFZKTsKCX07CgoJLyoqIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgd2VlayBpbiB5ZWFyLCBhcyBkZWZpbmVkIGluIElTTyA4NjAxLiAqLwoJRGF0ZS5wcm90b3R5cGUuZ2V0V2Vla051bWJlciA9IGZ1bmN0aW9uKCkgewoJCXZhciBkID0gbmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLCB0aGlzLmdldE1vbnRoKCksIHRoaXMuZ2V0RGF0ZSgpLCAwLCAwLCAwKTsKCQl2YXIgRG9XID0gZC5nZXREYXkoKTsKCQlkLnNldERhdGUoZC5nZXREYXRlKCkgLSAoRG9XICsgNikgJSA3ICsgMyk7IC8vIE5lYXJlc3QgVGh1CgkJdmFyIG1zID0gZC52YWx1ZU9mKCk7IC8vIEdNVAoJCWQuc2V0TW9udGgoMCk7CgkJZC5zZXREYXRlKDQpOyAvLyBUaHUgaW4gV2VlayAxCgkJcmV0dXJuIE1hdGgucm91bmQoKG1zIC0gZC52YWx1ZU9mKCkpIC8gKDcgKiA4NjRlNSkpICsgMTsKCX07CgoJLyoqIENoZWNrcyBkYXRlIGFuZCB0aW1lIGVxdWFsaXR5ICovCglEYXRlLnByb3RvdHlwZS5lcXVhbHNUbyA9IGZ1bmN0aW9uKGRhdGUpIHsKCQlyZXR1cm4gKCh0aGlzLmdldEZ1bGxZZWFyKCkgPT0gZGF0ZS5nZXRGdWxsWWVhcigpKSAmJgoJCQkodGhpcy5nZXRNb250aCgpID09IGRhdGUuZ2V0TW9udGgoKSkgJiYKCQkJKHRoaXMuZ2V0RGF0ZSgpID09IGRhdGUuZ2V0RGF0ZSgpKSAmJgoJCQkodGhpcy5nZXRIb3VycygpID09IGRhdGUuZ2V0SG91cnMoKSkgJiYKCQkJKHRoaXMuZ2V0TWludXRlcygpID09IGRhdGUuZ2V0TWludXRlcygpKSk7Cgl9OwoKCS8qKiBTZXQgb25seSB0aGUgeWVhciwgbW9udGgsIGRhdGUgcGFydHMgKGtlZXAgZXhpc3RpbmcgdGltZSkgKi8KCURhdGUucHJvdG90eXBlLnNldERhdGVPbmx5ID0gZnVuY3Rpb24oZGF0ZSkgewoJCXZhciB0bXAgPSBuZXcgRGF0ZShkYXRlKTsKCQl0aGlzLnNldERhdGUoMSk7CgkJdGhpcy5zZXRGdWxsWWVhcih0bXAuZ2V0RnVsbFllYXIoKSk7CgkJdGhpcy5zZXRNb250aCh0bXAuZ2V0TW9udGgoKSk7CgkJdGhpcy5zZXREYXRlKHRtcC5nZXREYXRlKCkpOwoJfTsKCi8qKiBBZGRlZCBieSBOYU46ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIERhdGUuZm9ybWF0KCkKICogc3RyaW5nIGZvcm1hdCAoIHN0cmluZyBmb3JtYXQgKQogKiBGb3JtYXR0aW5nIHJ1bGVzIGFjY29yZGluZyB0byBodHRwOi8vcGhwLm5ldC9zdHJmdGltZQogKgogKiBDb3B5cmlnaHQgKEMpIDIwMDYgIERhbyBHb3R0d2FsZAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCiAqCiAqIENvbnRhY3QgaW5mb3JtYXRpb246CiAqICAgRGFvIEdvdHR3YWxkICA8ZGFvIGF0IGRlc2lnbi1ub2lyLmRlPgogKgogKiBAdmVyc2lvbiAgMC43CiAqIEB0b2RvICAgICAlZywgJUcsICVVLCAlViwgJVcsICV6LCBtb3JlL2JldHRlciBsb2NhbGl6YXRpb24KICogQHVybCAgICAgIGh0dHA6Ly9kZXNpZ24tbm9pci5kZS93ZWJkZXYvSlMvRGF0ZS5mb3JtYXQvCiAqLwoKdmFyIF9sYW5nID0gKG5hdmlnYXRvci5zeXN0ZW1MYW5ndWFnZSB8fCBuYXZpZ2F0b3IudXNlckxhbmd1YWdlIHx8IG5hdmlnYXRvci5sYW5ndWFnZSB8fCBuYXZpZ2F0b3IuYnJvd3Nlckxhbmd1YWdlIHx8ICcnKS5yZXBsYWNlKC8tLiovLCcnKTsKc3dpdGNoIChfbGFuZykgewoJY2FzZSAnZGUnOgoJCURhdGUuX2wxMG4gPSB7CgkJCWRheXM6IFsnU29ubnRhZycsJ01vbnRhZycsJ0RpZW5zdGFnJywnTWl0dHdvY2gnLCdEb25uZXJzdGFnJywnRnJlaXRhZycsJ1NhbXN0YWcnXSwKCQkJbW9udGhzOiBbJ0phbnVhcicsJ0ZlYnJ1YXInLCdNXHUwMEU0cnonLCdBcHJpbCcsJ01haScsJ0p1bmknLCdKdWxpJywnQXVndXN0JywnU2VwdGVtYmVyJywnT2t0b2JlcicsJ05vdmVtYmVyJywnRGV6ZW1iZXInXSwKCQkJZGF0ZTogJyVlLiVtLiVZJywKCQkJdGltZTogJyVIOiVNOiVTJ307CgkJYnJlYWs7CgljYXNlICdlcyc6CgkJRGF0ZS5fbDEwbiA9IHsKCQkJZGF5czogWydEb21pbmdvJywnTHVuZXMnLCdNYXJ0ZXMnLCdNacOpcmNvbGVzJywnSnVldmVzJywnVmllcm5lcycsJ1NcdTAwRTFiYWRvJ10sCgkJCW1vbnRoczogWydlbmVybycsJ2ZlYnJlcm8nLCdtYXJjaGEnLCdhYnJpbCcsJ3B1ZWRlJywnanVuaW8nLCdqdWxpbycsJ2Fnb3N0bycsJ3NlcHRpZW1icmUnLCdvY3R1YnJlJywnbm92aWVtYnJlJywnZGljaWVtYnJlJ10sCgkJCWRhdGU6ICclZS4lbS4lWScsCgkJCXRpbWU6ICclSDolTTolUyd9OwoJCWJyZWFrOwoJY2FzZSAnZnInOgoJCURhdGUuX2wxMG4gPSB7CgkJCWRheXM6IFsnZGltYW5jaGUnLCdsdW5kaScsJ21hcmRpJywnbWVyY3JlZGknLCdqZXVkaScsJ3ZlbmRyZWRpJywnc2FtZWRpJ10sCgkJCW1vbnRoczogWydqYW52aWVyJywnZlx1MDBFOXZyaWVyJywnbWFycycsJ2F2cmlsJywnbWFpJywnanVpbicsJ2p1aWxsZXQnLCdhb1x1MDBGQnQnLCdzZXB0ZW1icmUnLCdvY3RvYnJlJywnbm92ZW1icmUnLCdkZWNlbWJyZSddLAoJCQlkYXRlOiAnJWUvJW0vJVknLAoJCQl0aW1lOiAnJUg6JU06JVMnfTsKCQlicmVhazsKCWNhc2UgJ2l0JzoKCQlEYXRlLl9sMTBuID0gewoJCQlkYXlzOiBbJ2RvbWVuaWNhJywnbHVuZWRcdTAwRUMnLCdtYXJ0ZWRcdTAwRUMnLCdtZXJjb2xlZFx1MDBFQycsJ2dpb3ZlZFx1MDBFQycsJ3ZlbmVyZFx1MDBFQycsJ3NhYmF0byddLAoJCQltb250aHM6IFsnZ2VubmFpbycsJ2ZlYmJyYWlvJywnbWFyem8nLCdhcHJpbGUnLCdtYWdnaW8nLCdnaXVnbm8nLCdsdWdsaW8nLCdhZ29zdG8nLCdzZXR0ZW1icmUnLCdvdHRvYnJlJywnbm92ZW1icmUnLCdkaWNlbWJyZSddLAoJCQlkYXRlOiAnJWUvJW0vJXknLAoJCQl0aW1lOiAnJUguJU0uJVMnfTsKCQlicmVhazsKCWNhc2UgJ3B0JzoKCQlEYXRlLl9sMTBuID0gewoJCQlkYXlzOiBbJ0RvbWluZ28nLCdTZWd1bmRhLWZlaXJhJywnVGVyXHUwMEU3YS1mZWlyYScsJ1F1YXJ0YS1mZWlyYScsJ1F1aW50YS1mZWlyYScsJ1NleHRhLWZlaXJhJywnU1x1MDBFMWJhZG8nXSwKCQkJbW9udGhzOiBbJ0phbmVpcm8nLCdGZXZlcmVpcm8nLCdNYXJcdTAwRTdvJywnQWJyaWwnLCdNYWlvJywnSnVuaG8nLCdKdWxobycsJ0Fnb3N0bycsJ1NldGVtYnJvJywnT3V0dWJybycsJ05vdmVtYnJvJywnRGV6ZW1icm8nXSwKCQkJZGF0ZTogJyVlLyVtLyV5JywKCQkJdGltZTogJyVILiVNLiVTJ307CgkJYnJlYWs7CgljYXNlICdlbic6CglkZWZhdWx0OgoJCURhdGUuX2wxMG4gPSB7CgkJCWRheXM6IFsnU3VuZGF5JywnTW9uZGF5JywnVHVlc2RheScsJ1dlZG5lc2RheScsJ1RodXJzZGF5JywnRnJpZGF5JywnU2F0dXJkYXknXSwKCQkJbW9udGhzOiBbJ0phbnVhcnknLCdGZWJydWFyeScsJ01hcmNoJywnQXByaWwnLCdNYXknLCdKdW5lJywnSnVseScsJ0F1Z3VzdCcsJ1NlcHRlbWJlcicsJ09jdG9iZXInLCdOb3ZlbWJlcicsJ0RlY2VtYmVyJ10sCgkJCWRhdGU6ICclWS0lbS0lZScsCgkJCXRpbWU6ICclSDolTTolUyd9OwoJCWJyZWFrOwp9CkRhdGUuX3BhZCA9IGZ1bmN0aW9uKG51bSwgbGVuKSB7Cglmb3IgKHZhciBpID0gMTsgaSA8PSBsZW47IGkrKykKCQlpZiAobnVtIDwgTWF0aC5wb3coMTAsIGkpKQoJCQlyZXR1cm4gbmV3IEFycmF5KGxlbi1pKzEpLmpvaW4oMCkgKyBudW07CglyZXR1cm4gbnVtOwp9OwpEYXRlLnByb3RvdHlwZS5mb3JtYXQgPSBmdW5jdGlvbihmb3JtYXQpIHsKCWlmIChmb3JtYXQuaW5kZXhPZignJSUnKSA+IC0xKSB7IC8vIGEgbGl0ZXJhbCBgJScgY2hhcmFjdGVyCgkJZm9ybWF0ID0gZm9ybWF0LnNwbGl0KCclJScpOwoJCWZvciAodmFyIGkgPSAwOyBpIDwgZm9ybWF0Lmxlbmd0aDsgaSsrKQoJCQlmb3JtYXRbaV0gPSB0aGlzLmZvcm1hdChmb3JtYXRbaV0pOwoJCXJldHVybiBmb3JtYXQuam9pbignJScpOwoJfQoJZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoLyVEL2csICclbS8lZC8leScpOyAvLyBzYW1lIGFzICVtLyVkLyV5Cglmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgvJXIvZywgJyVJOiVNOiVTICVwJyk7IC8vIHRpbWUgaW4gYS5tLiBhbmQgcC5tLiBub3RhdGlvbgoJZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoLyVSL2csICclSDolTTolUycpOyAvLyB0aW1lIGluIDI0IGhvdXIgbm90YXRpb24KCWZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKC8lVC9nLCAnJUg6JU06JVMnKTsgLy8gY3VycmVudCB0aW1lLCBlcXVhbCB0byAlSDolTTolUwoJZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoLyV4L2csIERhdGUuX2wxMG4uZGF0ZSk7IC8vIHByZWZlcnJlZCBkYXRlIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgY3VycmVudCBsb2NhbGUgd2l0aG91dCB0aGUgdGltZQoJZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoLyVYL2csIERhdGUuX2wxMG4udGltZSk7IC8vIHByZWZlcnJlZCB0aW1lIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgY3VycmVudCBsb2NhbGUgd2l0aG91dCB0aGUgZGF0ZQoJdmFyIGRhdGVPYmogPSB0aGlzOwoJcmV0dXJuIGZvcm1hdC5yZXBsYWNlKC8lKFthQWJoQmNDZGVnR0hJam1NbnBTdHVVVld3eVl6Wl0pL2csIGZ1bmN0aW9uKG1hdGNoMCwgbWF0Y2gxKSB7CgkJcmV0dXJuIGRhdGVPYmouZm9ybWF0X2NhbGxiYWNrKG1hdGNoMCwgbWF0Y2gxKTsKCX0pOwp9CkRhdGUucHJvdG90eXBlLmZvcm1hdF9jYWxsYmFjayA9IGZ1bmN0aW9uKG1hdGNoMCwgbWF0Y2gxKSB7Cglzd2l0Y2ggKG1hdGNoMSkgewoJCWNhc2UgJ2EnOiAvLyBhYmJyZXZpYXRlZCB3ZWVrZGF5IG5hbWUgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IGxvY2FsZQoJCQlyZXR1cm4gRGF0ZS5fbDEwbi5kYXlzW3RoaXMuZ2V0RGF5KCldLnN1YnN0cigwLDMpOwoJCWNhc2UgJ0EnOiAvLyBmdWxsIHdlZWtkYXkgbmFtZSBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgbG9jYWxlCgkJCXJldHVybiBEYXRlLl9sMTBuLmRheXNbdGhpcy5nZXREYXkoKV07CgkJY2FzZSAnYic6CgkJY2FzZSAnaCc6IC8vIGFiYnJldmlhdGVkIG1vbnRoIG5hbWUgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IGxvY2FsZQoJCQlyZXR1cm4gRGF0ZS5fbDEwbi5tb250aHNbdGhpcy5nZXRNb250aCgpXS5zdWJzdHIoMCwzKTsKCQljYXNlICdCJzogLy8gZnVsbCBtb250aCBuYW1lIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBsb2NhbGUKCQkJcmV0dXJuIERhdGUuX2wxMG4ubW9udGhzW3RoaXMuZ2V0TW9udGgoKV07CgkJY2FzZSAnYyc6IC8vIHByZWZlcnJlZCBkYXRlIGFuZCB0aW1lIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgY3VycmVudCBsb2NhbGUKCQkJcmV0dXJuIHRoaXMudG9Mb2NhbGVTdHJpbmcoKTsKCQljYXNlICdDJzogLy8gY2VudHVyeSBudW1iZXIgKHRoZSB5ZWFyIGRpdmlkZWQgYnkgMTAwIGFuZCB0cnVuY2F0ZWQgdG8gYW4gaW50ZWdlciwgcmFuZ2UgMDAgdG8gOTkpCgkJCXJldHVybiBNYXRoLmZsb29yKHRoaXMuZ2V0RnVsbFllYXIoKSAvIDEwMCk7CgkJY2FzZSAnZCc6IC8vIGRheSBvZiB0aGUgbW9udGggYXMgYSBkZWNpbWFsIG51bWJlciAocmFuZ2UgMDEgdG8gMzEpCgkJCXJldHVybiBEYXRlLl9wYWQodGhpcy5nZXREYXRlKCksIDIpOwoJCWNhc2UgJ2UnOiAvLyBkYXkgb2YgdGhlIG1vbnRoIGFzIGEgZGVjaW1hbCBudW1iZXIsIGEgc2luZ2xlIGRpZ2l0IGlzIHByZWNlZGVkIGJ5IGEgc3BhY2UgKHJhbmdlICcgMScgdG8gJzMxJykKCQkJcmV0dXJuIERhdGUuX3BhZCh0aGlzLmdldERhdGUoKSwgMik7CgkJLypjYXNlICdnJzogLy8gbGlrZSAlRywgYnV0IHdpdGhvdXQgdGhlIGNlbnR1cnkKCQkJcmV0dXJuIDsKCQljYXNlICdHJzogLy8gVGhlIDQtZGlnaXQgeWVhciBjb3JyZXNwb25kaW5nIHRvIHRoZSBJU08gd2VlayBudW1iZXIgKHNlZSAlVikuIFRoaXMgaGFzIHRoZSBzYW1lIGZvcm1hdCBhbmQgdmFsdWUgYXMgJVksIGV4Y2VwdCB0aGF0IGlmIHRoZSBJU08gd2VlayBudW1iZXIgYmVsb25ncyB0byB0aGUgcHJldmlvdXMgb3IgbmV4dCB5ZWFyLCB0aGF0IHllYXIgaXMgdXNlZCBpbnN0ZWFkCgkJCXJldHVybiA7Ki8KCQljYXNlICdIJzogLy8gaG91ciBhcyBhIGRlY2ltYWwgbnVtYmVyIHVzaW5nIGEgMjQtaG91ciBjbG9jayAocmFuZ2UgMDAgdG8gMjMpCgkJCXJldHVybiBEYXRlLl9wYWQodGhpcy5nZXRIb3VycygpLCAyKTsKCQljYXNlICdJJzogLy8gaG91ciBhcyBhIGRlY2ltYWwgbnVtYmVyIHVzaW5nIGEgMTItaG91ciBjbG9jayAocmFuZ2UgMDEgdG8gMTIpCgkJCXJldHVybiBEYXRlLl9wYWQodGhpcy5nZXRIb3VycygpICUgMTIsIDIpOwoJCWNhc2UgJ2onOiAvLyBkYXkgb2YgdGhlIHllYXIgYXMgYSBkZWNpbWFsIG51bWJlciAocmFuZ2UgMDAxIHRvIDM2NikKCQkJcmV0dXJuIERhdGUuX3BhZCh0aGlzLmdldE1vbnRoKCkgKiAzMCArIE1hdGguY2VpbCh0aGlzLmdldE1vbnRoKCkgLyAyKSArIHRoaXMuZ2V0RGF5KCkgLSAyICogKHRoaXMuZ2V0TW9udGgoKSA+IDEpICsgKCEodGhpcy5nZXRGdWxsWWVhcigpICUgNDAwKSB8fCAoISh0aGlzLmdldEZ1bGxZZWFyKCkgJSA0KSAmJiB0aGlzLmdldEZ1bGxZZWFyKCkgJSAxMDApKSwgMyk7CgkJY2FzZSAnbSc6IC8vIG1vbnRoIGFzIGEgZGVjaW1hbCBudW1iZXIgKHJhbmdlIDAxIHRvIDEyKQoJCQlyZXR1cm4gRGF0ZS5fcGFkKHRoaXMuZ2V0TW9udGgoKSArIDEsIDIpOwoJCWNhc2UgJ00nOiAvLyBtaW51dGUgYXMgYSBkZWNpbWFsIG51bWJlcgoJCQlyZXR1cm4gRGF0ZS5fcGFkKHRoaXMuZ2V0TWludXRlcygpLCAyKTsKCQljYXNlICduJzogLy8gbmV3bGluZSBjaGFyYWN0ZXIKCQkJcmV0dXJuICdcbic7CgkJY2FzZSAncCc6IC8vIGVpdGhlciBgYW0nIG9yIGBwbScgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiB0aW1lIHZhbHVlLCBvciB0aGUgY29ycmVzcG9uZGluZyBzdHJpbmdzIGZvciB0aGUgY3VycmVudCBsb2NhbGUKCQkJcmV0dXJuIHRoaXMuZ2V0SG91cnMoKSA8IDEyID8gJ2FtJyA6ICdwbSc7CgkJY2FzZSAnUyc6IC8vIHNlY29uZCBhcyBhIGRlY2ltYWwgbnVtYmVyCgkJCXJldHVybiBEYXRlLl9wYWQodGhpcy5nZXRTZWNvbmRzKCksIDIpOwoJCWNhc2UgJ3QnOiAvLyB0YWIgY2hhcmFjdGVyCgkJCXJldHVybiAnXHQnOwoJCWNhc2UgJ3UnOiAvLyB3ZWVrZGF5IGFzIGEgZGVjaW1hbCBudW1iZXIgWzEsN10sIHdpdGggMSByZXByZXNlbnRpbmcgTW9uZGF5CgkJCXJldHVybiB0aGlzLmdldERheSgpIHx8IDc7CgkJLypjYXNlICdVJzogLy8gd2VlayBudW1iZXIgb2YgdGhlIGN1cnJlbnQgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyLCBzdGFydGluZyB3aXRoIHRoZSBmaXJzdCBTdW5kYXkgYXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgZmlyc3Qgd2VlawoJCQlyZXR1cm4gOwoJCWNhc2UgJ1YnOiAvLyBUaGUgSVNPIDg2MDE6MTk4OCB3ZWVrIG51bWJlciBvZiB0aGUgY3VycmVudCB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIsIHJhbmdlIDAxIHRvIDUzLCB3aGVyZSB3ZWVrIDEgaXMgdGhlIGZpcnN0IHdlZWsgdGhhdCBoYXMgYXQgbGVhc3QgNCBkYXlzIGluIHRoZSBjdXJyZW50IHllYXIsIGFuZCB3aXRoIE1vbmRheSBhcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLiAoVXNlICVHIG9yICVnIGZvciB0aGUgeWVhciBjb21wb25lbnQgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgd2VlayBudW1iZXIgZm9yIHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wLikKCQkJcmV0dXJuIDsKCQljYXNlICdXJzogLy8gd2VlayBudW1iZXIgb2YgdGhlIGN1cnJlbnQgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyLCBzdGFydGluZyB3aXRoIHRoZSBmaXJzdCBNb25kYXkgYXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgZmlyc3Qgd2VlawoJCQlyZXR1cm4gOyovCgkJY2FzZSAndyc6IC8vIGRheSBvZiB0aGUgd2VlayBhcyBhIGRlY2ltYWwsIFN1bmRheSBiZWluZyAwCgkJCXJldHVybiB0aGlzLmdldERheSgpOwoJCWNhc2UgJ3knOiAvLyB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgd2l0aG91dCBhIGNlbnR1cnkgKHJhbmdlIDAwIHRvIDk5KQoJCQlyZXR1cm4gdGhpcy5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkuc3Vic3RyKDIpOwoJCWNhc2UgJ1knOiAvLyB5ZWFyIGFzIGEgZGVjaW1hbCBudW1iZXIgaW5jbHVkaW5nIHRoZSBjZW50dXJ5CgkJCXJldHVybiB0aGlzLmdldEZ1bGxZZWFyKCk7CgkJLypjYXNlICd6JzoKCQljYXNlICdaJzogLy8gdGltZSB6b25lIG9yIG5hbWUgb3IgYWJicmV2aWF0aW9uCgkJCXJldHVybiA7Ki8KCQlkZWZhdWx0OgoJCQlyZXR1cm4gbWF0Y2gwOwoJfQp9CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCS8qKiBQcmludHMgdGhlIGRhdGUgaW4gYSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBmb3JtYXQuICovCglEYXRlLnByb3RvdHlwZS5wcmludCA9IGZ1bmN0aW9uIChzdHIpIHsKCQlyZXR1cm4gdGhpcy5mb3JtYXQoc3RyKTsKCQkvKgoJCXZhciBtID0gdGhpcy5nZXRNb250aCgpOwoJCXZhciBkID0gdGhpcy5nZXREYXRlKCk7CgkJdmFyIHkgPSB0aGlzLmdldEZ1bGxZZWFyKCk7CgkJdmFyIHduID0gdGhpcy5nZXRXZWVrTnVtYmVyKCk7CgkJdmFyIHcgPSB0aGlzLmdldERheSgpOwoJCXZhciBzID0ge307CgkJdmFyIGhyID0gdGhpcy5nZXRIb3VycygpOwoJCXZhciBwbSA9IChociA+PSAxMik7CgkJdmFyIGlyID0gKHBtKSA/IChociAtIDEyKSA6IGhyOwoJCXZhciBkeSA9IHRoaXMuZ2V0RGF5T2ZZZWFyKCk7CgkJaWYgKGlyID09IDApCgkJCWlyID0gMTI7CgkJdmFyIG1pbiA9IHRoaXMuZ2V0TWludXRlcygpOwoJCXZhciBzZWMgPSB0aGlzLmdldFNlY29uZHMoKTsKCQlzWyIlYSJdID0gQ2FsZW5kYXIuU0hPUlRfREFZX05BTUVTW3ddOyAvLyBhYmJyZXZpYXRlZCB3ZWVrZGF5IG5hbWUgW0ZJWE1FOiBJMThOXQoJCXNbIiVBIl0gPSBDYWxlbmRhci5EQVlfTkFNRVNbd107IC8vIGZ1bGwgd2Vla2RheSBuYW1lCgkJc1siJWIiXSA9IENhbGVuZGFyLlNIT1JUX01PTlRIX05BTUVTW21dOyAvLyBhYmJyZXZpYXRlZCBtb250aCBuYW1lIFtGSVhNRTogSTE4Tl0KCQlzWyIlQiJdID0gQ2FsZW5kYXIuTU9OVEhfTkFNRVNbbV07IC8vIGZ1bGwgbW9udGggbmFtZQoJCS8vIEZJWE1FOiAlYyA6IHByZWZlcnJlZCBkYXRlIGFuZCB0aW1lIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgY3VycmVudCBsb2NhbGUKCQlzWyIlQyJdID0gMSArIE1hdGguZmxvb3IoeSAvIDEwMCk7IC8vIHRoZSBjZW50dXJ5IG51bWJlcgoJCXNbIiVkIl0gPSAoZCA8IDEwKSA/ICgiMCIgKyBkKSA6IGQ7IC8vIHRoZSBkYXkgb2YgdGhlIG1vbnRoIChyYW5nZSAwMSB0byAzMSkKCQlzWyIlZSJdID0gZDsgLy8gdGhlIGRheSBvZiB0aGUgbW9udGggKHJhbmdlIDEgdG8gMzEpCgkJLy8gRklYTUU6ICVEIDogYW1lcmljYW4gZGF0ZSBzdHlsZTogJW0vJWQvJXkKCQkvLyBGSVhNRTogJUUsICVGLCAlRywgJWcsICVoIChtYW4gc3RyZnRpbWUpCgkJc1siJUgiXSA9IChociA8IDEwKSA/ICgiMCIgKyBocikgOiBocjsgLy8gaG91ciwgcmFuZ2UgMDAgdG8gMjMgKDI0aCBmb3JtYXQpCgkJc1siJUkiXSA9IChpciA8IDEwKSA/ICgiMCIgKyBpcikgOiBpcjsgLy8gaG91ciwgcmFuZ2UgMDEgdG8gMTIgKDEyaCBmb3JtYXQpCgkJc1siJWoiXSA9IChkeSA8IDEwMCkgPyAoKGR5IDwgMTApID8gKCIwMCIgKyBkeSkgOiAoIjAiICsgZHkpKSA6IGR5OyAvLyBkYXkgb2YgdGhlIHllYXIgKHJhbmdlIDAwMSB0byAzNjYpCgkJc1siJWsiXSA9IGhyOyAgIC8vIGhvdXIsIHJhbmdlIDAgdG8gMjMgKDI0aCBmb3JtYXQpCgkJc1siJWwiXSA9IGlyOyAgIC8vIGhvdXIsIHJhbmdlIDEgdG8gMTIgKDEyaCBmb3JtYXQpCgkJc1siJW0iXSA9IChtIDwgOSkgPyAoIjAiICsgKDErbSkpIDogKDErbSk7IC8vIG1vbnRoLCByYW5nZSAwMSB0byAxMgoJCXNbIiVNIl0gPSAobWluIDwgMTApID8gKCIwIiArIG1pbikgOiBtaW47IC8vIG1pbnV0ZSwgcmFuZ2UgMDAgdG8gNTkKCQlzWyIlbiJdID0gIlxuIjsgICAvLyBhIG5ld2xpbmUgY2hhcmFjdGVyCgkJc1siJXAiXSA9IHBtID8gIlBNIiA6ICJBTSI7CgkJc1siJVAiXSA9IHBtID8gInBtIiA6ICJhbSI7CgkJLy8gRklYTUU6ICVyIDogdGhlIHRpbWUgaW4gYW0vcG0gbm90YXRpb24gJUk6JU06JVMgJXAKCQkvLyBGSVhNRTogJVIgOiB0aGUgdGltZSBpbiAyNC1ob3VyIG5vdGF0aW9uICVIOiVNCgkJc1siJXMiXSA9IE1hdGguZmxvb3IodGhpcy5nZXRUaW1lKCkgLyAxMDAwKTsKCQlzWyIlUyJdID0gKHNlYyA8IDEwKSA/ICgiMCIgKyBzZWMpIDogc2VjOyAvLyBzZWNvbmRzLCByYW5nZSAwMCB0byA1OQoJCXNbIiV0Il0gPSAiXHQiOyAgIC8vIGEgdGFiIGNoYXJhY3RlcgoJCS8vIEZJWE1FOiAlVCA6IHRoZSB0aW1lIGluIDI0LWhvdXIgbm90YXRpb24gKCVIOiVNOiVTKQoJCXNbIiVVIl0gPSBzWyIlVyJdID0gc1siJVYiXSA9ICh3biA8IDEwKSA/ICgiMCIgKyB3bikgOiB3bjsKCQlzWyIldSJdID0gdyArIDE7ICAvLyB0aGUgZGF5IG9mIHRoZSB3ZWVrIChyYW5nZSAxIHRvIDcsIDEgPSBNT04pCgkJc1siJXciXSA9IHc7ICAgIC8vIHRoZSBkYXkgb2YgdGhlIHdlZWsgKHJhbmdlIDAgdG8gNiwgMCA9IFNVTikKCQkvLyBGSVhNRTogJXggOiBwcmVmZXJyZWQgZGF0ZSByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGN1cnJlbnQgbG9jYWxlIHdpdGhvdXQgdGhlIHRpbWUKCQkvLyBGSVhNRTogJVggOiBwcmVmZXJyZWQgdGltZSByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGN1cnJlbnQgbG9jYWxlIHdpdGhvdXQgdGhlIGRhdGUKCQlzWyIleSJdID0gKCcnICsgeSkuc3Vic3RyKDIsIDIpOyAvLyB5ZWFyIHdpdGhvdXQgdGhlIGNlbnR1cnkgKHJhbmdlIDAwIHRvIDk5KQoJCXNbIiVZIl0gPSB5OyAgICAvLyB5ZWFyIHdpdGggdGhlIGNlbnR1cnkKCQlzWyIlJSJdID0gIiUiOyAgICAvLyBhIGxpdGVyYWwgJyUnIGNoYXJhY3RlcgoKCQl2YXIgcmUgPSAvJS4vZzsKCQl2YXIgYSA9IHN0ci5tYXRjaChyZSk7CgkJZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7CgkJCXZhciB0bXAgPSBzW2FbaV1dOwoJCQlpZiAodG1wKSB7CgkJCQlyZSA9IG5ldyBSZWdFeHAoYVtpXSwgJ2cnKTsKCQkJCXN0ciA9IHN0ci5yZXBsYWNlKHJlLCB0bXApOwoJCQl9CgkJfQoKCQlyZXR1cm4gc3RyOwoJCSovCgl9OwoKCURhdGUucHJvdG90eXBlLl9fbXNoX29sZFNldEZ1bGxZZWFyID0gRGF0ZS5wcm90b3R5cGUuc2V0RnVsbFllYXI7CglEYXRlLnByb3RvdHlwZS5zZXRGdWxsWWVhciA9IGZ1bmN0aW9uKHkpIHsKCQl2YXIgZCA9IG5ldyBEYXRlKHRoaXMpOwoJCWQuX19tc2hfb2xkU2V0RnVsbFllYXIoeSk7CgkJaWYgKGQuZ2V0TW9udGgoKSAhPSB0aGlzLmdldE1vbnRoKCkpCgkJCXRoaXMuc2V0RGF0ZSgyOCk7CgkJdGhpcy5fX21zaF9vbGRTZXRGdWxsWWVhcih5KTsKCX0KCgkvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJLy8gVGhlIGpRdWVyeSBwbHVnaW4gZnVuY3Rpb24KCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkkLmZuLmNhbGVuZGFyID0gZnVuY3Rpb24ob3B0aW9ucykgewoJCXZhciBkZWZhdWx0cyA9IHsKCQkJdHJpZ2dlckVsZW1lbnQ6IG51bGwsIC8vIFBvcHVwIGNhbGVuZGFyCgkJCXBhcmVudEVsZW1lbnQ6IG51bGwsIC8vIElubGluZSBjYWxlbmRhcgoJCQltaW5ZZWFyOiAxOTAwLAoJCQltYXhZZWFyOiAyMTAwLAoJCQlmaXJzdERheU9mV2VlazogMSwgLy8gTW9uZGF5CgkJCXdlZWtlbmQ6ICIwLDYiLCAvLyBTdW5kYXkgYW5kIFNhdHVyZGF5CgkJCWRhdGVGb3JtYXQ6ICclWS0lbS0lZCcsCgkJCWRhdGVGaWVsZDogbnVsbCwKCQkJc2VsZWN0SGFuZGxlcjogbnVsbCwKCQkJY2xvc2VIYW5kbGVyOiBudWxsCgkJfTsKCQl2YXIgc2V0dGluZ3MgPSAkLmV4dGVuZCh7fSwgZGVmYXVsdHMsIG9wdGlvbnMpOwoKCQl0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCXZhciBzZWxmID0gJCh0aGlzKTsKCQkJdmFyIGNhbGVuZGFyID0gbmV3IENhbGVuZGFyKCk7CgoJCQljYWxlbmRhci5taW5ZZWFyID0gc2V0dGluZ3MubWluWWVhcjsKCQkJY2FsZW5kYXIubWF4WWVhciA9IHNldHRpbmdzLm1heFllYXI7CgoJCQljYWxlbmRhci5maXJzdERheU9mV2VlayA9IHNldHRpbmdzLmZpcnN0RGF5T2ZXZWVrOwoJCQljYWxlbmRhci53ZWVrZW5kID0gc2V0dGluZ3Mud2Vla2VuZDsKCQkJY2FsZW5kYXIuZGF0ZUZvcm1hdCA9IHNldHRpbmdzLmRhdGVGb3JtYXQ7CgkJCWNhbGVuZGFyLmRhdGVGaWVsZCA9IChzZXR0aW5ncy5kYXRlRmllbGQgfHwgc2VsZik7CgoJCQljYWxlbmRhci5zZWxlY3RIYW5kbGVyID0gKHNldHRpbmdzLnNlbGVjdEhhbmRsZXIgfHwgQ2FsZW5kYXIuZGVmYXVsdFNlbGVjdEhhbmRsZXIpOwoKCQkJLy8gSW5saW5lIENhbGVuZGFyCgkJCXZhciBzZWxmRGF0ZSA9IHNlbGYuaHRtbCgpIHx8IHNlbGYudmFsKCk7CgkJCWlmIChzZXR0aW5ncy5wYXJlbnRFbGVtZW50KSB7CgkJCQljYWxlbmRhci5jcmVhdGUoJChzZXR0aW5ncy5wYXJlbnRFbGVtZW50KSk7CgkJCQlpZiAoc2VsZkRhdGUpIGNhbGVuZGFyLnBhcnNlRGF0ZShzZWxmRGF0ZSk7CgkJCQljYWxlbmRhci5zaG93KCk7CgkJCX0gZWxzZSB7CgkJCQkvLyBQb3B1cCBDYWxlbmRhcgoJCQkJY2FsZW5kYXIuY3JlYXRlKCk7CgkJCQlpZiAoc2VsZkRhdGUpIGNhbGVuZGFyLnBhcnNlRGF0ZShzZWxmRGF0ZSk7CgkJCQl2YXIgdHJpZ2dlckVsZW1lbnQgPSAkKHNldHRpbmdzLnRyaWdnZXJFbGVtZW50IHx8IHNlbGYpOwoJCQkJdHJpZ2dlckVsZW1lbnQuY2xpY2soZnVuY3Rpb24oKSB7CgkJCQkJY2FsZW5kYXIuY2xvc2VIYW5kbGVyID0gKHNldHRpbmdzLmNsb3NlSGFuZGxlciB8fCBDYWxlbmRhci5kZWZhdWx0Q2xvc2VIYW5kbGVyKTsKCQkJCQljYWxlbmRhci5zaG93QXRFbGVtZW50KHRyaWdnZXJFbGVtZW50KTsKCQkJCX0pOwoJCQl9CgkJfSk7CgoJCXJldHVybiB0aGlzOwoJfQoKfSkoalF1ZXJ5KTsKLyohCiAqIGpRdWVyeSBGb3JtIFBsdWdpbgogKiB2ZXJzaW9uOiAyLjQzICgxMi1NQVItMjAxMCkKICogQHJlcXVpcmVzIGpRdWVyeSB2MS4zLjIgb3IgbGF0ZXIKICoKICogRXhhbXBsZXMgYW5kIGRvY3VtZW50YXRpb24gYXQ6IGh0dHA6Ly9tYWxzdXAuY29tL2pxdWVyeS9mb3JtLwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgYW5kIEdQTCBsaWNlbnNlczoKICogICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogKiAgIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbAogKi8KKGZ1bmN0aW9uKCQpIHskLmZuLmFqYXhTdWJtaXQ9ZnVuY3Rpb24ob3B0aW9ucyl7aWYoIXRoaXMubGVuZ3RoKXtsb2coJ2FqYXhTdWJtaXQ6IHNraXBwaW5nIHN1Ym1pdCBwcm9jZXNzIC0gbm8gZWxlbWVudCBzZWxlY3RlZCcpO3JldHVybiB0aGlzfWlmKHR5cGVvZiBvcHRpb25zPT0nZnVuY3Rpb24nKW9wdGlvbnM9e3N1Y2Nlc3M6b3B0aW9uc307dmFyIHVybD0kLnRyaW0odGhpcy5hdHRyKCdhY3Rpb24nKSk7aWYodXJsKXt1cmw9KHVybC5tYXRjaCgvXihbXiNdKykvKXx8W10pWzFdfXVybD11cmx8fHdpbmRvdy5sb2NhdGlvbi5ocmVmfHwnJztvcHRpb25zPSQuZXh0ZW5kKHt1cmw6dXJsLHR5cGU6dGhpcy5hdHRyKCdtZXRob2QnKXx8J0dFVCcsaWZyYW1lU3JjOi9eaHR0cHMvaS50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ocmVmfHwnJyk/J2phdmFzY3JpcHQ6ZmFsc2UnOidhYm91dDpibGFuayd9LG9wdGlvbnN8fHt9KTt2YXIgdmV0bz17fTt0aGlzLnRyaWdnZXIoJ2Zvcm0tcHJlLXNlcmlhbGl6ZScsW3RoaXMsb3B0aW9ucyx2ZXRvXSk7aWYodmV0by52ZXRvKXtsb2coJ2FqYXhTdWJtaXQ6IHN1Ym1pdCB2ZXRvZWQgdmlhIGZvcm0tcHJlLXNlcmlhbGl6ZSB0cmlnZ2VyJyk7cmV0dXJuIHRoaXN9aWYob3B0aW9ucy5iZWZvcmVTZXJpYWxpemUmJm9wdGlvbnMuYmVmb3JlU2VyaWFsaXplKHRoaXMsb3B0aW9ucyk9PT1mYWxzZSl7bG9nKCdhamF4U3VibWl0OiBzdWJtaXQgYWJvcnRlZCB2aWEgYmVmb3JlU2VyaWFsaXplIGNhbGxiYWNrJyk7cmV0dXJuIHRoaXN9dmFyIGE9dGhpcy5mb3JtVG9BcnJheShvcHRpb25zLnNlbWFudGljKTtpZihvcHRpb25zLmRhdGEpe29wdGlvbnMuZXh0cmFEYXRhPW9wdGlvbnMuZGF0YTtmb3IodmFyIG4gaW4gb3B0aW9ucy5kYXRhKXtpZihvcHRpb25zLmRhdGFbbl1pbnN0YW5jZW9mIEFycmF5KXtmb3IodmFyIGsgaW4gb3B0aW9ucy5kYXRhW25dKWEucHVzaCh7bmFtZTpuLHZhbHVlOm9wdGlvbnMuZGF0YVtuXVtrXX0pfWVsc2UgYS5wdXNoKHtuYW1lOm4sdmFsdWU6b3B0aW9ucy5kYXRhW25dfSl9fWlmKG9wdGlvbnMuYmVmb3JlU3VibWl0JiZvcHRpb25zLmJlZm9yZVN1Ym1pdChhLHRoaXMsb3B0aW9ucyk9PT1mYWxzZSl7bG9nKCdhamF4U3VibWl0OiBzdWJtaXQgYWJvcnRlZCB2aWEgYmVmb3JlU3VibWl0IGNhbGxiYWNrJyk7cmV0dXJuIHRoaXN9dGhpcy50cmlnZ2VyKCdmb3JtLXN1Ym1pdC12YWxpZGF0ZScsW2EsdGhpcyxvcHRpb25zLHZldG9dKTtpZih2ZXRvLnZldG8pe2xvZygnYWpheFN1Ym1pdDogc3VibWl0IHZldG9lZCB2aWEgZm9ybS1zdWJtaXQtdmFsaWRhdGUgdHJpZ2dlcicpO3JldHVybiB0aGlzfXZhciBxPSQucGFyYW0oYSk7aWYob3B0aW9ucy50eXBlLnRvVXBwZXJDYXNlKCk9PSdHRVQnKXtvcHRpb25zLnVybCs9KG9wdGlvbnMudXJsLmluZGV4T2YoJz8nKT49MD8nJic6Jz8nKStxO29wdGlvbnMuZGF0YT1udWxsfWVsc2Ugb3B0aW9ucy5kYXRhPXE7dmFyICRmb3JtPXRoaXMsY2FsbGJhY2tzPVtdO2lmKG9wdGlvbnMucmVzZXRGb3JtKWNhbGxiYWNrcy5wdXNoKGZ1bmN0aW9uKCl7JGZvcm0ucmVzZXRGb3JtKCl9KTtpZihvcHRpb25zLmNsZWFyRm9ybSljYWxsYmFja3MucHVzaChmdW5jdGlvbigpeyRmb3JtLmNsZWFyRm9ybSgpfSk7aWYoIW9wdGlvbnMuZGF0YVR5cGUmJm9wdGlvbnMudGFyZ2V0KXt2YXIgb2xkU3VjY2Vzcz1vcHRpb25zLnN1Y2Nlc3N8fGZ1bmN0aW9uKCl7fTtjYWxsYmFja3MucHVzaChmdW5jdGlvbihkYXRhKXt2YXIgZm49b3B0aW9ucy5yZXBsYWNlVGFyZ2V0PydyZXBsYWNlV2l0aCc6J2h0bWwnOyQob3B0aW9ucy50YXJnZXQpW2ZuXShkYXRhKS5lYWNoKG9sZFN1Y2Nlc3MsYXJndW1lbnRzKX0pfWVsc2UgaWYob3B0aW9ucy5zdWNjZXNzKWNhbGxiYWNrcy5wdXNoKG9wdGlvbnMuc3VjY2Vzcyk7b3B0aW9ucy5zdWNjZXNzPWZ1bmN0aW9uKGRhdGEsc3RhdHVzLHhocil7Zm9yKHZhciBpPTAsbWF4PWNhbGxiYWNrcy5sZW5ndGg7aTxtYXg7aSsrKWNhbGxiYWNrc1tpXS5hcHBseShvcHRpb25zLFtkYXRhLHN0YXR1cyx4aHJ8fCRmb3JtLCRmb3JtXSl9O3ZhciBmaWxlcz0kKCdpbnB1dDpmaWxlJyx0aGlzKS5maWVsZFZhbHVlKCk7dmFyIGZvdW5kPWZhbHNlO2Zvcih2YXIgaj0wO2o8ZmlsZXMubGVuZ3RoO2orKylpZihmaWxlc1tqXSlmb3VuZD10cnVlO3ZhciBtdWx0aXBhcnQ9ZmFsc2U7aWYoKGZpbGVzLmxlbmd0aCYmb3B0aW9ucy5pZnJhbWUhPT1mYWxzZSl8fG9wdGlvbnMuaWZyYW1lfHxmb3VuZHx8bXVsdGlwYXJ0KXtpZihvcHRpb25zLmNsb3NlS2VlcEFsaXZlKSQuZ2V0KG9wdGlvbnMuY2xvc2VLZWVwQWxpdmUsZmlsZVVwbG9hZCk7ZWxzZSBmaWxlVXBsb2FkKCl9ZWxzZSAkLmFqYXgob3B0aW9ucyk7dGhpcy50cmlnZ2VyKCdmb3JtLXN1Ym1pdC1ub3RpZnknLFt0aGlzLG9wdGlvbnNdKTtyZXR1cm4gdGhpcztmdW5jdGlvbiBmaWxlVXBsb2FkKCl7dmFyIGZvcm09JGZvcm1bMF07aWYoJCgnOmlucHV0W25hbWU9c3VibWl0XScsZm9ybSkubGVuZ3RoKXthbGVydCgnRXJyb3I6IEZvcm0gZWxlbWVudHMgbXVzdCBub3QgYmUgbmFtZWQgInN1Ym1pdCIuJyk7cmV0dXJufXZhciBvcHRzPSQuZXh0ZW5kKHt9LCQuYWpheFNldHRpbmdzLG9wdGlvbnMpO3ZhciBzPSQuZXh0ZW5kKHRydWUse30sJC5leHRlbmQodHJ1ZSx7fSwkLmFqYXhTZXR0aW5ncyksb3B0cyk7dmFyIGlkPSdqcUZvcm1JTycrKG5ldyBEYXRlKCkuZ2V0VGltZSgpKTt2YXIgJGlvPSQoJzxpZnJhbWUgaWQ9IicraWQrJyIgbmFtZT0iJytpZCsnIiBzcmM9Iicrb3B0cy5pZnJhbWVTcmMrJyIgb25sb2FkPSIoalF1ZXJ5KHRoaXMpLmRhdGEoXCdmb3JtLXBsdWdpbi1vbmxvYWRcJykpKCkiIC8+Jyk7dmFyIGlvPSRpb1swXTskaW8uY3NzKHtwb3NpdGlvbjonYWJzb2x1dGUnLHRvcDonLTEwMDBweCcsbGVmdDonLTEwMDBweCd9KTt2YXIgeGhyPXthYm9ydGVkOjAscmVzcG9uc2VUZXh0Om51bGwscmVzcG9uc2VYTUw6bnVsbCxzdGF0dXM6MCxzdGF0dXNUZXh0OiduL2EnLGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe30sZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oKXt9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oKXt9LGFib3J0OmZ1bmN0aW9uKCl7dGhpcy5hYm9ydGVkPTE7JGlvLmF0dHIoJ3NyYycsb3B0cy5pZnJhbWVTcmMpfX07dmFyIGc9b3B0cy5nbG9iYWw7aWYoZyYmISQuYWN0aXZlKyspJC5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKTtpZihnKSQuZXZlbnQudHJpZ2dlcigiYWpheFNlbmQiLFt4aHIsb3B0c10pO2lmKHMuYmVmb3JlU2VuZCYmcy5iZWZvcmVTZW5kKHhocixzKT09PWZhbHNlKXtzLmdsb2JhbCYmJC5hY3RpdmUtLTtyZXR1cm59aWYoeGhyLmFib3J0ZWQpcmV0dXJuO3ZhciBjYkludm9rZWQ9ZmFsc2U7dmFyIHRpbWVkT3V0PTA7dmFyIHN1Yj1mb3JtLmNsaztpZihzdWIpe3ZhciBuPXN1Yi5uYW1lO2lmKG4mJiFzdWIuZGlzYWJsZWQpe29wdHMuZXh0cmFEYXRhPW9wdHMuZXh0cmFEYXRhfHx7fTtvcHRzLmV4dHJhRGF0YVtuXT1zdWIudmFsdWU7aWYoc3ViLnR5cGU9PSJpbWFnZSIpe29wdHMuZXh0cmFEYXRhW24rJy54J109Zm9ybS5jbGtfeDtvcHRzLmV4dHJhRGF0YVtuKycueSddPWZvcm0uY2xrX3l9fX1mdW5jdGlvbiBkb1N1Ym1pdCgpe3ZhciB0PSRmb3JtLmF0dHIoJ3RhcmdldCcpLGE9JGZvcm0uYXR0cignYWN0aW9uJyk7Zm9ybS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsaWQpO2lmKGZvcm0uZ2V0QXR0cmlidXRlKCdtZXRob2QnKSE9J1BPU1QnKWZvcm0uc2V0QXR0cmlidXRlKCdtZXRob2QnLCdQT1NUJyk7aWYoZm9ybS5nZXRBdHRyaWJ1dGUoJ2FjdGlvbicpIT1vcHRzLnVybClmb3JtLnNldEF0dHJpYnV0ZSgnYWN0aW9uJyxvcHRzLnVybCk7aWYoIW9wdHMuc2tpcEVuY29kaW5nT3ZlcnJpZGUpeyRmb3JtLmF0dHIoe2VuY29kaW5nOidtdWx0aXBhcnQvZm9ybS1kYXRhJyxlbmN0eXBlOidtdWx0aXBhcnQvZm9ybS1kYXRhJ30pfWlmKG9wdHMudGltZW91dClzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGltZWRPdXQ9dHJ1ZTtjYigpfSxvcHRzLnRpbWVvdXQpO3ZhciBleHRyYUlucHV0cz1bXTt0cnl7aWYob3B0cy5leHRyYURhdGEpZm9yKHZhciBuIGluIG9wdHMuZXh0cmFEYXRhKWV4dHJhSW5wdXRzLnB1c2goJCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iJytuKyciIHZhbHVlPSInK29wdHMuZXh0cmFEYXRhW25dKyciIC8+JykuYXBwZW5kVG8oZm9ybSlbMF0pOyRpby5hcHBlbmRUbygnYm9keScpOyRpby5kYXRhKCdmb3JtLXBsdWdpbi1vbmxvYWQnLGNiKTtmb3JtLnN1Ym1pdCgpfWZpbmFsbHl7Zm9ybS5zZXRBdHRyaWJ1dGUoJ2FjdGlvbicsYSk7dD9mb3JtLnNldEF0dHJpYnV0ZSgndGFyZ2V0Jyx0KTokZm9ybS5yZW1vdmVBdHRyKCd0YXJnZXQnKTskKGV4dHJhSW5wdXRzKS5yZW1vdmUoKX19O2lmKG9wdHMuZm9yY2VTeW5jKWRvU3VibWl0KCk7ZWxzZSBzZXRUaW1lb3V0KGRvU3VibWl0LDEwKTt2YXIgZG9tQ2hlY2tDb3VudD0xMDA7ZnVuY3Rpb24gY2IoKXtpZihjYkludm9rZWQpcmV0dXJuO3ZhciBvaz10cnVlO3RyeXtpZih0aW1lZE91dCl0aHJvdyd0aW1lb3V0Jzt2YXIgZGF0YSxkb2M7ZG9jPWlvLmNvbnRlbnRXaW5kb3c/aW8uY29udGVudFdpbmRvdy5kb2N1bWVudDppby5jb250ZW50RG9jdW1lbnQ/aW8uY29udGVudERvY3VtZW50OmlvLmRvY3VtZW50O3ZhciBpc1htbD1vcHRzLmRhdGFUeXBlPT0neG1sJ3x8ZG9jLlhNTERvY3VtZW50fHwkLmlzWE1MRG9jKGRvYyk7bG9nKCdpc1htbD0nK2lzWG1sKTtpZighaXNYbWwmJihkb2MuYm9keT09bnVsbHx8ZG9jLmJvZHkuaW5uZXJIVE1MPT0nJykpe2lmKC0tZG9tQ2hlY2tDb3VudCl7bG9nKCdyZXF1ZWluZyBvbkxvYWQgY2FsbGJhY2ssIERPTSBub3QgYXZhaWxhYmxlJyk7c2V0VGltZW91dChjYiwyNTApO3JldHVybn1sb2coJ0NvdWxkIG5vdCBhY2Nlc3MgaWZyYW1lIERPTSBhZnRlciAxMDAgdHJpZXMuJyk7cmV0dXJufWxvZygncmVzcG9uc2UgZGV0ZWN0ZWQnKTtjYkludm9rZWQ9dHJ1ZTt4aHIucmVzcG9uc2VUZXh0PWRvYy5ib2R5P2RvYy5ib2R5LmlubmVySFRNTDpudWxsO3hoci5yZXNwb25zZVhNTD1kb2MuWE1MRG9jdW1lbnQ/ZG9jLlhNTERvY3VtZW50OmRvYzt4aHIuZ2V0UmVzcG9uc2VIZWFkZXI9ZnVuY3Rpb24oaGVhZGVyKXt2YXIgaGVhZGVycz17J2NvbnRlbnQtdHlwZSc6b3B0cy5kYXRhVHlwZX07cmV0dXJuIGhlYWRlcnNbaGVhZGVyXX07aWYob3B0cy5kYXRhVHlwZT09J2pzb24nfHxvcHRzLmRhdGFUeXBlPT0nc2NyaXB0Jyl7dmFyIHRhPWRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGV4dGFyZWEnKVswXTtpZih0YSl4aHIucmVzcG9uc2VUZXh0PXRhLnZhbHVlO2Vsc2V7dmFyIHByZT1kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ByZScpWzBdO2lmKHByZSl4aHIucmVzcG9uc2VUZXh0PXByZS5pbm5lckhUTUx9fWVsc2UgaWYob3B0cy5kYXRhVHlwZT09J3htbCcmJiF4aHIucmVzcG9uc2VYTUwmJnhoci5yZXNwb25zZVRleHQhPW51bGwpe3hoci5yZXNwb25zZVhNTD10b1htbCh4aHIucmVzcG9uc2VUZXh0KX1kYXRhPSQuaHR0cERhdGEoeGhyLG9wdHMuZGF0YVR5cGUpfWNhdGNoKGUpe2xvZygnZXJyb3IgY2F1Z2h0OicsZSk7b2s9ZmFsc2U7eGhyLmVycm9yPWU7JC5oYW5kbGVFcnJvcihvcHRzLHhociwnZXJyb3InLGUpfWlmKG9rKXtvcHRzLnN1Y2Nlc3MoZGF0YSwnc3VjY2VzcycpO2lmKGcpJC5ldmVudC50cmlnZ2VyKCJhamF4U3VjY2VzcyIsW3hocixvcHRzXSl9aWYoZykkLmV2ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3hocixvcHRzXSk7aWYoZyYmIS0tJC5hY3RpdmUpJC5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpO2lmKG9wdHMuY29tcGxldGUpb3B0cy5jb21wbGV0ZSh4aHIsb2s/J3N1Y2Nlc3MnOidlcnJvcicpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskaW8ucmVtb3ZlRGF0YSgnZm9ybS1wbHVnaW4tb25sb2FkJyk7JGlvLnJlbW92ZSgpO3hoci5yZXNwb25zZVhNTD1udWxsfSwxMDApfTtmdW5jdGlvbiB0b1htbChzLGRvYyl7aWYod2luZG93LkFjdGl2ZVhPYmplY3Qpe2RvYz1uZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTERPTScpO2RvYy5hc3luYz0nZmFsc2UnO2RvYy5sb2FkWE1MKHMpfWVsc2UgZG9jPShuZXcgRE9NUGFyc2VyKCkpLnBhcnNlRnJvbVN0cmluZyhzLCd0ZXh0L3htbCcpO3JldHVybihkb2MmJmRvYy5kb2N1bWVudEVsZW1lbnQmJmRvYy5kb2N1bWVudEVsZW1lbnQudGFnTmFtZSE9J3BhcnNlcmVycm9yJyk/ZG9jOm51bGx9fX07JC5mbi5hamF4Rm9ybT1mdW5jdGlvbihvcHRpb25zKXtyZXR1cm4gdGhpcy5hamF4Rm9ybVVuYmluZCgpLmJpbmQoJ3N1Ym1pdC5mb3JtLXBsdWdpbicsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpOyQodGhpcykuYWpheFN1Ym1pdChvcHRpb25zKX0pLmJpbmQoJ2NsaWNrLmZvcm0tcGx1Z2luJyxmdW5jdGlvbihlKXt2YXIgdGFyZ2V0PWUudGFyZ2V0O3ZhciAkZWw9JCh0YXJnZXQpO2lmKCEoJGVsLmlzKCI6c3VibWl0LGlucHV0OmltYWdlIikpKXt2YXIgdD0kZWwuY2xvc2VzdCgnOnN1Ym1pdCcpO2lmKHQubGVuZ3RoPT0wKXJldHVybjt0YXJnZXQ9dFswXX12YXIgZm9ybT10aGlzO2Zvcm0uY2xrPXRhcmdldDtpZih0YXJnZXQudHlwZT09J2ltYWdlJyl7aWYoZS5vZmZzZXRYIT11bmRlZmluZWQpe2Zvcm0uY2xrX3g9ZS5vZmZzZXRYO2Zvcm0uY2xrX3k9ZS5vZmZzZXRZfWVsc2UgaWYodHlwZW9mICQuZm4ub2Zmc2V0PT0nZnVuY3Rpb24nKXt2YXIgb2Zmc2V0PSRlbC5vZmZzZXQoKTtmb3JtLmNsa194PWUucGFnZVgtb2Zmc2V0LmxlZnQ7Zm9ybS5jbGtfeT1lLnBhZ2VZLW9mZnNldC50b3B9ZWxzZXtmb3JtLmNsa194PWUucGFnZVgtdGFyZ2V0Lm9mZnNldExlZnQ7Zm9ybS5jbGtfeT1lLnBhZ2VZLXRhcmdldC5vZmZzZXRUb3B9fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmb3JtLmNsaz1mb3JtLmNsa194PWZvcm0uY2xrX3k9bnVsbH0sMTAwKX0pfTskLmZuLmFqYXhGb3JtVW5iaW5kPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5iaW5kKCdzdWJtaXQuZm9ybS1wbHVnaW4gY2xpY2suZm9ybS1wbHVnaW4nKX07JC5mbi5mb3JtVG9BcnJheT1mdW5jdGlvbihzZW1hbnRpYyl7dmFyIGE9W107aWYodGhpcy5sZW5ndGg9PTApcmV0dXJuIGE7dmFyIGZvcm09dGhpc1swXTt2YXIgZWxzPXNlbWFudGljP2Zvcm0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJyonKTpmb3JtLmVsZW1lbnRzO2lmKCFlbHMpcmV0dXJuIGE7Zm9yKHZhciBpPTAsbWF4PWVscy5sZW5ndGg7aTxtYXg7aSsrKXt2YXIgZWw9ZWxzW2ldO3ZhciBuPWVsLm5hbWU7aWYoIW4pY29udGludWU7aWYoc2VtYW50aWMmJmZvcm0uY2xrJiZlbC50eXBlPT0iaW1hZ2UiKXtpZighZWwuZGlzYWJsZWQmJmZvcm0uY2xrPT1lbCl7YS5wdXNoKHtuYW1lOm4sdmFsdWU6JChlbCkudmFsKCl9KTthLnB1c2goe25hbWU6bisnLngnLHZhbHVlOmZvcm0uY2xrX3h9LHtuYW1lOm4rJy55Jyx2YWx1ZTpmb3JtLmNsa195fSl9Y29udGludWV9dmFyIHY9JC5maWVsZFZhbHVlKGVsLHRydWUpO2lmKHYmJnYuY29uc3RydWN0b3I9PUFycmF5KXtmb3IodmFyIGo9MCxqbWF4PXYubGVuZ3RoO2o8am1heDtqKyspYS5wdXNoKHtuYW1lOm4sdmFsdWU6dltqXX0pfWVsc2UgaWYodiE9PW51bGwmJnR5cGVvZiB2IT0ndW5kZWZpbmVkJylhLnB1c2goe25hbWU6bix2YWx1ZTp2fSl9aWYoIXNlbWFudGljJiZmb3JtLmNsayl7dmFyICRpbnB1dD0kKGZvcm0uY2xrKSxpbnB1dD0kaW5wdXRbMF0sbj1pbnB1dC5uYW1lO2lmKG4mJiFpbnB1dC5kaXNhYmxlZCYmaW5wdXQudHlwZT09J2ltYWdlJyl7YS5wdXNoKHtuYW1lOm4sdmFsdWU6JGlucHV0LnZhbCgpfSk7YS5wdXNoKHtuYW1lOm4rJy54Jyx2YWx1ZTpmb3JtLmNsa194fSx7bmFtZTpuKycueScsdmFsdWU6Zm9ybS5jbGtfeX0pfX1yZXR1cm4gYX07JC5mbi5mb3JtU2VyaWFsaXplPWZ1bmN0aW9uKHNlbWFudGljKXtyZXR1cm4gJC5wYXJhbSh0aGlzLmZvcm1Ub0FycmF5KHNlbWFudGljKSl9OyQuZm4uZmllbGRTZXJpYWxpemU9ZnVuY3Rpb24oc3VjY2Vzc2Z1bCl7dmFyIGE9W107dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5uYW1lO2lmKCFuKXJldHVybjt2YXIgdj0kLmZpZWxkVmFsdWUodGhpcyxzdWNjZXNzZnVsKTtpZih2JiZ2LmNvbnN0cnVjdG9yPT1BcnJheSl7Zm9yKHZhciBpPTAsbWF4PXYubGVuZ3RoO2k8bWF4O2krKylhLnB1c2goe25hbWU6bix2YWx1ZTp2W2ldfSl9ZWxzZSBpZih2IT09bnVsbCYmdHlwZW9mIHYhPSd1bmRlZmluZWQnKWEucHVzaCh7bmFtZTp0aGlzLm5hbWUsdmFsdWU6dn0pfSk7cmV0dXJuICQucGFyYW0oYSl9OyQuZm4uZmllbGRWYWx1ZT1mdW5jdGlvbihzdWNjZXNzZnVsKXtmb3IodmFyIHZhbD1bXSxpPTAsbWF4PXRoaXMubGVuZ3RoO2k8bWF4O2krKyl7dmFyIGVsPXRoaXNbaV07dmFyIHY9JC5maWVsZFZhbHVlKGVsLHN1Y2Nlc3NmdWwpO2lmKHY9PT1udWxsfHx0eXBlb2Ygdj09J3VuZGVmaW5lZCd8fCh2LmNvbnN0cnVjdG9yPT1BcnJheSYmIXYubGVuZ3RoKSljb250aW51ZTt2LmNvbnN0cnVjdG9yPT1BcnJheT8kLm1lcmdlKHZhbCx2KTp2YWwucHVzaCh2KX1yZXR1cm4gdmFsfTskLmZpZWxkVmFsdWU9ZnVuY3Rpb24oZWwsc3VjY2Vzc2Z1bCl7dmFyIG49ZWwubmFtZSx0PWVsLnR5cGUsdGFnPWVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKTtpZih0eXBlb2Ygc3VjY2Vzc2Z1bD09J3VuZGVmaW5lZCcpc3VjY2Vzc2Z1bD10cnVlO2lmKHN1Y2Nlc3NmdWwmJighbnx8ZWwuZGlzYWJsZWR8fHQ9PSdyZXNldCd8fHQ9PSdidXR0b24nfHwodD09J2NoZWNrYm94J3x8dD09J3JhZGlvJykmJiFlbC5jaGVja2VkfHwodD09J3N1Ym1pdCd8fHQ9PSdpbWFnZScpJiZlbC5mb3JtJiZlbC5mb3JtLmNsayE9ZWx8fHRhZz09J3NlbGVjdCcmJmVsLnNlbGVjdGVkSW5kZXg9PS0xKSlyZXR1cm4gbnVsbDtpZih0YWc9PSdzZWxlY3QnKXt2YXIgaW5kZXg9ZWwuc2VsZWN0ZWRJbmRleDtpZihpbmRleDwwKXJldHVybiBudWxsO3ZhciBhPVtdLG9wcz1lbC5vcHRpb25zO3ZhciBvbmU9KHQ9PSdzZWxlY3Qtb25lJyk7dmFyIG1heD0ob25lP2luZGV4KzE6b3BzLmxlbmd0aCk7Zm9yKHZhciBpPShvbmU/aW5kZXg6MCk7aTxtYXg7aSsrKXt2YXIgb3A9b3BzW2ldO2lmKG9wLnNlbGVjdGVkKXt2YXIgdj1vcC52YWx1ZTtpZighdil2PShvcC5hdHRyaWJ1dGVzJiZvcC5hdHRyaWJ1dGVzWyd2YWx1ZSddJiYhKG9wLmF0dHJpYnV0ZXNbJ3ZhbHVlJ10uc3BlY2lmaWVkKSk/b3AudGV4dDpvcC52YWx1ZTtpZihvbmUpcmV0dXJuIHY7YS5wdXNoKHYpfX1yZXR1cm4gYX1yZXR1cm4gZWwudmFsdWV9OyQuZm4uY2xlYXJGb3JtPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpeyQoJ2lucHV0LHNlbGVjdCx0ZXh0YXJlYScsdGhpcykuY2xlYXJGaWVsZHMoKX0pfTskLmZuLmNsZWFyRmllbGRzPSQuZm4uY2xlYXJJbnB1dHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50eXBlLHRhZz10aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKTtpZih0PT0ndGV4dCd8fHQ9PSdwYXNzd29yZCd8fHRhZz09J3RleHRhcmVhJyl0aGlzLnZhbHVlPScnO2Vsc2UgaWYodD09J2NoZWNrYm94J3x8dD09J3JhZGlvJyl0aGlzLmNoZWNrZWQ9ZmFsc2U7ZWxzZSBpZih0YWc9PSdzZWxlY3QnKXRoaXMuc2VsZWN0ZWRJbmRleD0tMX0pfTskLmZuLnJlc2V0Rm9ybT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0eXBlb2YgdGhpcy5yZXNldD09J2Z1bmN0aW9uJ3x8KHR5cGVvZiB0aGlzLnJlc2V0PT0nb2JqZWN0JyYmIXRoaXMucmVzZXQubm9kZVR5cGUpKXRoaXMucmVzZXQoKX0pfTskLmZuLmVuYWJsZT1mdW5jdGlvbihiKXtpZihiPT11bmRlZmluZWQpYj10cnVlO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVkPSFifSl9OyQuZm4uc2VsZWN0ZWQ9ZnVuY3Rpb24oc2VsZWN0KXtpZihzZWxlY3Q9PXVuZGVmaW5lZClzZWxlY3Q9dHJ1ZTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50eXBlO2lmKHQ9PSdjaGVja2JveCd8fHQ9PSdyYWRpbycpdGhpcy5jaGVja2VkPXNlbGVjdDtlbHNlIGlmKHRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpPT0nb3B0aW9uJyl7dmFyICRzZWw9JCh0aGlzKS5wYXJlbnQoJ3NlbGVjdCcpO2lmKHNlbGVjdCYmJHNlbFswXSYmJHNlbFswXS50eXBlPT0nc2VsZWN0LW9uZScpeyRzZWwuZmluZCgnb3B0aW9uJykuc2VsZWN0ZWQoZmFsc2UpfXRoaXMuc2VsZWN0ZWQ9c2VsZWN0fX0pfTtmdW5jdGlvbiBsb2coKXtpZigkLmZuLmFqYXhTdWJtaXQuZGVidWcpe3ZhciBtc2c9J1tqcXVlcnkuZm9ybV0gJytBcnJheS5wcm90b3R5cGUuam9pbi5jYWxsKGFyZ3VtZW50cywnJyk7aWYod2luZG93LmNvbnNvbGUmJndpbmRvdy5jb25zb2xlLmxvZyl3aW5kb3cuY29uc29sZS5sb2cobXNnKTtlbHNlIGlmKHdpbmRvdy5vcGVyYSYmd2luZG93Lm9wZXJhLnBvc3RFcnJvcil3aW5kb3cub3BlcmEucG9zdEVycm9yKG1zZyl9fX0pKGpRdWVyeSk7Cu+7vy8qCiAqIGpQaWNrZXIgMS4xLjYKICoKICogalF1ZXJ5IFBsdWdpbiBmb3IgUGhvdG9zaG9wIHN0eWxlIGNvbG9yIHBpY2tlcgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTAgQ2hyaXN0b3BoZXIgVC4gVGlsbG1hbgogKiBEaWdpdGFsIE1hZ2ljIFByb2R1Y3Rpb25zLCBJbmMuIChodHRwOi8vd3d3LmRpZ2l0YWxtYWdpY3Byby5jb20vKQogKiBNSVQgc3R5bGUgbGljZW5zZSwgRlJFRSB0byB1c2UsIGFsdGVyLCBjb3B5LCBzZWxsLCBhbmQgZXNwZWNpYWxseSBFTkhBTkNFCiAqCiAqIFBhaW5zdGFraW5nbHkgcG9ydGVkIGZyb20gSm9obiBEeWVycycgZXhjZWxsZW50IHdvcmsgb24gaGlzIG93biBjb2xvciBwaWNrZXIgYmFzZWQgb24gdGhlIFByb3RvdHlwZSBmcmFtZXdvcmsuCiAqCiAqIEpvaG4gRHllcnMnIHdlYnNpdGU6IChodHRwOi8vam9obmR5ZXIubmFtZSkKICogQ29sb3IgUGlja2VyIHBhZ2U6ICAgKGh0dHA6Ly9qb2huZHllci5uYW1lL3Bvc3QvMjAwNy8wOS9QaG90b1Nob3AtbGlrZS1KYXZhU2NyaXB0LUNvbG9yLVBpY2tlci5hc3B4KQogKgogKi8K77u/KGZ1bmN0aW9uKGUsYSl7TWF0aC5wcmVjaXNpb249ZnVuY3Rpb24oaixoKXtpZihoPT09dW5kZWZpbmVkKXtoPTB9cmV0dXJuIE1hdGgucm91bmQoaipNYXRoLnBvdygxMCxoKSkvTWF0aC5wb3coMTAsaCl9O3ZhciBkPWZ1bmN0aW9uKHosayl7dmFyIG89dGhpcyxqPXouZmluZCgiaW1nOmZpcnN0IiksRj0wLEU9MTAwLHc9MTAwLEQ9MCxDPTEwMCx2PTEwMCxzPTAscD0wLG4scSx1PW5ldyBBcnJheSgpLGw9ZnVuY3Rpb24oeSl7Zm9yKHZhciB4PTA7eDx1Lmxlbmd0aDt4Kyspe3VbeF0uY2FsbChvLG8seSl9fSxIPWZ1bmN0aW9uKHgpe3ZhciB5PXoub2Zmc2V0KCk7bj17bDp5LmxlZnR8MCx0OnkudG9wfDB9O2NsZWFyVGltZW91dChxKTtxPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtBLmNhbGwobyx4KX0sMCk7ZShkb2N1bWVudCkuYmluZCgibW91c2Vtb3ZlIixoKS5iaW5kKCJtb3VzZXVwIixCKTt4LnByZXZlbnREZWZhdWx0KCl9LGg9ZnVuY3Rpb24oeCl7Y2xlYXJUaW1lb3V0KHEpO3E9c2V0VGltZW91dChmdW5jdGlvbigpe0EuY2FsbChvLHgpfSwwKTt4LnN0b3BQcm9wYWdhdGlvbigpO3gucHJldmVudERlZmF1bHQoKTtyZXR1cm4gZmFsc2V9LEI9ZnVuY3Rpb24oeCl7ZShkb2N1bWVudCkudW5iaW5kKCJtb3VzZXVwIixCKS51bmJpbmQoIm1vdXNlbW92ZSIsaCk7eC5zdG9wUHJvcGFnYXRpb24oKTt4LnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGZhbHNlfSxBPWZ1bmN0aW9uKE0pe3ZhciBLPU0ucGFnZVgtbi5sLHg9TS5wYWdlWS1uLnQsTD16LncseT16Lmg7aWYoSzwwKXtLPTB9ZWxzZXtpZihLPkwpe0s9TH19aWYoeDwwKXt4PTB9ZWxzZXtpZih4Pnkpe3g9eX19Si5jYWxsKG8sInh5Iix7eDooKEsvTCkqdykrRix5OigoeC95KSp2KStEfSl9LHI9ZnVuY3Rpb24oKXt2YXIgTD0wLHg9MCxOPXoudyxLPXouaCxNPWoudyx5PWouaDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodz4wKXtpZihzPT1FKXtMPU59ZWxzZXtMPSgocy93KSpOKXwwfX1pZih2PjApe2lmKHA9PUMpe3g9S31lbHNle3g9KChwL3YpKkspfDB9fWlmKE0+PU4pe0w9KE4+PjEpLShNPj4xKX1lbHNle0wtPU0+PjF9aWYoeT49Syl7eD0oSz4+MSktKHk+PjEpfWVsc2V7eC09eT4+MX1qLmNzcyh7bGVmdDpMKyJweCIsdG9wOngrInB4In0pfSwwKX0sSj1mdW5jdGlvbih4LEsseSl7dmFyIE89SyE9PXVuZGVmaW5lZDtpZighTyl7aWYoeD09PXVuZGVmaW5lZHx8eD09bnVsbCl7eD0ieHkifXN3aXRjaCh4LnRvTG93ZXJDYXNlKCkpe2Nhc2UieCI6cmV0dXJuIHM7Y2FzZSJ5IjpyZXR1cm4gcDtjYXNlInh5IjpkZWZhdWx0OnJldHVybnt4OnMseTpwfX19aWYoeSE9bnVsbCYmeT09byl7cmV0dXJufXZhciBOPWZhbHNlLE0sTDtpZih4PT1udWxsKXt4PSJ4eSJ9c3dpdGNoKHgudG9Mb3dlckNhc2UoKSl7Y2FzZSJ4IjpNPUsmJihLLngmJksueHwwfHxLfDApfHwwO2JyZWFrO2Nhc2UieSI6TD1LJiYoSy55JiZLLnl8MHx8S3wwKXx8MDticmVhaztjYXNlInh5IjpkZWZhdWx0Ok09SyYmSy54JiZLLnh8MHx8MDtMPUsmJksueSYmSy55fDB8fDA7YnJlYWt9aWYoTSE9bnVsbCl7aWYoTTxGKXtNPUZ9ZWxzZXtpZihNPkUpe009RX19aWYocyE9TSl7cz1NO049dHJ1ZX19aWYoTCE9bnVsbCl7aWYoTDxEKXtMPUR9ZWxzZXtpZihMPkMpe0w9Q319aWYocCE9TCl7cD1MO049dHJ1ZX19TiYmbC5jYWxsKG8seXx8byl9LHQ9ZnVuY3Rpb24oeCxMKXt2YXIgUD1MIT09dW5kZWZpbmVkO2lmKCFQKXtpZih4PT09dW5kZWZpbmVkfHx4PT1udWxsKXt4PSJhbGwifXN3aXRjaCh4LnRvTG93ZXJDYXNlKCkpe2Nhc2UibWlueCI6cmV0dXJuIEY7Y2FzZSJtYXh4IjpyZXR1cm4gRTtjYXNlInJhbmdleCI6cmV0dXJue21pblg6RixtYXhYOkUscmFuZ2VYOnd9O2Nhc2UibWlueSI6cmV0dXJuIEQ7Y2FzZSJtYXh5IjpyZXR1cm4gQztjYXNlInJhbmdleSI6cmV0dXJue21pblk6RCxtYXhZOkMscmFuZ2VZOnZ9O2Nhc2UiYWxsIjpkZWZhdWx0OnJldHVybnttaW5YOkYsbWF4WDpFLHJhbmdlWDp3LG1pblk6RCxtYXhZOkMscmFuZ2VZOnZ9fX12YXIgTz1mYWxzZSxOLEssTSx5O2lmKHg9PW51bGwpe3g9ImFsbCJ9c3dpdGNoKHgudG9Mb3dlckNhc2UoKSl7Y2FzZSJtaW54IjpOPUwmJihMLm1pblgmJkwubWluWHwwfHxMfDApfHwwO2JyZWFrO2Nhc2UibWF4eCI6Sz1MJiYoTC5tYXhYJiZMLm1heFh8MHx8THwwKXx8MDticmVhaztjYXNlInJhbmdleCI6Tj1MJiZMLm1pblgmJkwubWluWHwwfHwwO0s9TCYmTC5tYXhYJiZMLm1heFh8MHx8MDticmVhaztjYXNlIm1pbnkiOk09TCYmKEwubWluWSYmTC5taW5ZfDB8fEx8MCl8fDA7YnJlYWs7Y2FzZSJtYXh5Ijp5PUwmJihMLm1heFkmJkwubWF4WXwwfHxMfDApfHwwO2JyZWFrO2Nhc2UicmFuZ2V5IjpNPUwmJkwubWluWSYmTC5taW5ZfDB8fDA7eT1MJiZMLm1heFkmJkwubWF4WXwwfHwwO2JyZWFrO2Nhc2UiYWxsIjpkZWZhdWx0Ok49TCYmTC5taW5YJiZMLm1pblh8MHx8MDtLPUwmJkwubWF4WCYmTC5tYXhYfDB8fDA7TT1MJiZMLm1pblkmJkwubWluWXwwfHwwO3k9TCYmTC5tYXhZJiZMLm1heFl8MHx8MDticmVha31pZihOIT1udWxsJiZGIT1OKXtGPU47dz1FLUZ9aWYoSyE9bnVsbCYmRSE9Syl7RT1LO3c9RS1GfWlmKE0hPW51bGwmJkQhPU0pe0Q9TTt2PUMtRH1pZih5IT1udWxsJiZDIT15KXtDPXk7dj1DLUR9fSxJPWZ1bmN0aW9uKHgpe2lmKGUuaXNGdW5jdGlvbih4KSl7dS5wdXNoKHgpfX0sbT1mdW5jdGlvbih5KXtpZighZS5pc0Z1bmN0aW9uKHkpKXtyZXR1cm59dmFyIHg7d2hpbGUoKHg9ZS5pbkFycmF5KHksdSkpIT0tMSl7dS5zcGxpY2UoeCwxKX19LEc9ZnVuY3Rpb24oKXtlKGRvY3VtZW50KS51bmJpbmQoIm1vdXNldXAiLEIpLnVuYmluZCgibW91c2Vtb3ZlIixoKTt6LnVuYmluZCgibW91c2Vkb3duIixIKTt6PW51bGw7aj1udWxsO3U9bnVsbH07ZS5leHRlbmQodHJ1ZSxvLHt2YWw6SixyYW5nZTp0LGJpbmQ6SSx1bmJpbmQ6bSxkZXN0cm95Okd9KTtqLnNyYz1rLmFycm93JiZrLmFycm93LmltYWdlO2oudz1rLmFycm93JiZrLmFycm93LndpZHRofHxqLndpZHRoKCk7ai5oPWsuYXJyb3cmJmsuYXJyb3cuaGVpZ2h0fHxqLmhlaWdodCgpO3oudz1rLm1hcCYmay5tYXAud2lkdGh8fHoud2lkdGgoKTt6Lmg9ay5tYXAmJmsubWFwLmhlaWdodHx8ei5oZWlnaHQoKTt6LmJpbmQoIm1vdXNlZG93biIsSCk7SS5jYWxsKG8scil9LGI9ZnVuY3Rpb24odSx6LGsseSl7dmFyIHE9dGhpcyxsPXUuZmluZCgidGQuVGV4dCBpbnB1dCIpLHI9bC5lcSgzKSx2PWwuZXEoNCksaD1sLmVxKDUpLG89bC5sZW5ndGg+Nz9sLmVxKDYpOm51bGwsbj1sLmVxKDApLHA9bC5lcSgxKSx4PWwuZXEoMikscz1sLmVxKGwubGVuZ3RoPjc/Nzo2KSxCPWwubGVuZ3RoPjc/bC5lcSg4KTpudWxsLEM9ZnVuY3Rpb24oRSl7aWYoRS50YXJnZXQudmFsdWU9PSIiJiZFLnRhcmdldCE9cy5nZXQoMCkmJihrIT1udWxsJiZFLnRhcmdldCE9ay5nZXQoMCl8fGs9PW51bGwpKXtyZXR1cm59aWYoIXQoRSkpe3JldHVybiBFfXN3aXRjaChFLnRhcmdldCl7Y2FzZSByLmdldCgwKTpzd2l0Y2goRS5rZXlDb2RlKXtjYXNlIDM4OnIudmFsKGouY2FsbChxLChyLnZhbCgpPDwwKSsxLDAsMjU1KSk7ei52YWwoInIiLHIudmFsKCksRS50YXJnZXQpO3JldHVybiBmYWxzZTtjYXNlIDQwOnIudmFsKGouY2FsbChxLChyLnZhbCgpPDwwKS0xLDAsMjU1KSk7ei52YWwoInIiLHIudmFsKCksRS50YXJnZXQpO3JldHVybiBmYWxzZX1icmVhaztjYXNlIHYuZ2V0KDApOnN3aXRjaChFLmtleUNvZGUpe2Nhc2UgMzg6di52YWwoai5jYWxsKHEsKHYudmFsKCk8PDApKzEsMCwyNTUpKTt6LnZhbCgiZyIsdi52YWwoKSxFLnRhcmdldCk7cmV0dXJuIGZhbHNlO2Nhc2UgNDA6di52YWwoai5jYWxsKHEsKHYudmFsKCk8PDApLTEsMCwyNTUpKTt6LnZhbCgiZyIsdi52YWwoKSxFLnRhcmdldCk7cmV0dXJuIGZhbHNlfWJyZWFrO2Nhc2UgaC5nZXQoMCk6c3dpdGNoKEUua2V5Q29kZSl7Y2FzZSAzODpoLnZhbChqLmNhbGwocSwoaC52YWwoKTw8MCkrMSwwLDI1NSkpO3oudmFsKCJiIixoLnZhbCgpLEUudGFyZ2V0KTtyZXR1cm4gZmFsc2U7Y2FzZSA0MDpoLnZhbChqLmNhbGwocSwoaC52YWwoKTw8MCktMSwwLDI1NSkpO3oudmFsKCJiIixoLnZhbCgpLEUudGFyZ2V0KTtyZXR1cm4gZmFsc2V9YnJlYWs7Y2FzZSBvJiZvLmdldCgwKTpzd2l0Y2goRS5rZXlDb2RlKXtjYXNlIDM4Om8udmFsKGouY2FsbChxLHBhcnNlRmxvYXQoby52YWwoKSkrMSwwLDEwMCkpO3oudmFsKCJhIixNYXRoLnByZWNpc2lvbigoby52YWwoKSoyNTUpLzEwMCx5KSxFLnRhcmdldCk7cmV0dXJuIGZhbHNlO2Nhc2UgNDA6by52YWwoai5jYWxsKHEscGFyc2VGbG9hdChvLnZhbCgpKS0xLDAsMTAwKSk7ei52YWwoImEiLE1hdGgucHJlY2lzaW9uKChvLnZhbCgpKjI1NSkvMTAwLHkpLEUudGFyZ2V0KTtyZXR1cm4gZmFsc2V9YnJlYWs7Y2FzZSBuLmdldCgwKTpzd2l0Y2goRS5rZXlDb2RlKXtjYXNlIDM4Om4udmFsKGouY2FsbChxLChuLnZhbCgpPDwwKSsxLDAsMzYwKSk7ei52YWwoImgiLG4udmFsKCksRS50YXJnZXQpO3JldHVybiBmYWxzZTtjYXNlIDQwOm4udmFsKGouY2FsbChxLChuLnZhbCgpPDwwKS0xLDAsMzYwKSk7ei52YWwoImgiLG4udmFsKCksRS50YXJnZXQpO3JldHVybiBmYWxzZX1icmVhaztjYXNlIHAuZ2V0KDApOnN3aXRjaChFLmtleUNvZGUpe2Nhc2UgMzg6cC52YWwoai5jYWxsKHEsKHAudmFsKCk8PDApKzEsMCwxMDApKTt6LnZhbCgicyIscC52YWwoKSxFLnRhcmdldCk7cmV0dXJuIGZhbHNlO2Nhc2UgNDA6cC52YWwoai5jYWxsKHEsKHAudmFsKCk8PDApLTEsMCwxMDApKTt6LnZhbCgicyIscC52YWwoKSxFLnRhcmdldCk7cmV0dXJuIGZhbHNlfWJyZWFrO2Nhc2UgeC5nZXQoMCk6c3dpdGNoKEUua2V5Q29kZSl7Y2FzZSAzODp4LnZhbChqLmNhbGwocSwoeC52YWwoKTw8MCkrMSwwLDEwMCkpO3oudmFsKCJ2Iix4LnZhbCgpLEUudGFyZ2V0KTtyZXR1cm4gZmFsc2U7Y2FzZSA0MDp4LnZhbChqLmNhbGwocSwoeC52YWwoKTw8MCktMSwwLDEwMCkpO3oudmFsKCJ2Iix4LnZhbCgpLEUudGFyZ2V0KTtyZXR1cm4gZmFsc2V9YnJlYWt9fSx3PWZ1bmN0aW9uKEUpe2lmKEUudGFyZ2V0LnZhbHVlPT0iIiYmRS50YXJnZXQhPXMuZ2V0KDApJiYoayE9bnVsbCYmRS50YXJnZXQhPWsuZ2V0KDApfHxrPT1udWxsKSl7cmV0dXJufWlmKCF0KEUpKXtyZXR1cm4gRX1zd2l0Y2goRS50YXJnZXQpe2Nhc2Ugci5nZXQoMCk6ci52YWwoai5jYWxsKHEsci52YWwoKSwwLDI1NSkpO3oudmFsKCJyIixyLnZhbCgpLEUudGFyZ2V0KTticmVhaztjYXNlIHYuZ2V0KDApOnYudmFsKGouY2FsbChxLHYudmFsKCksMCwyNTUpKTt6LnZhbCgiZyIsdi52YWwoKSxFLnRhcmdldCk7YnJlYWs7Y2FzZSBoLmdldCgwKTpoLnZhbChqLmNhbGwocSxoLnZhbCgpLDAsMjU1KSk7ei52YWwoImIiLGgudmFsKCksRS50YXJnZXQpO2JyZWFrO2Nhc2UgbyYmby5nZXQoMCk6by52YWwoai5jYWxsKHEsby52YWwoKSwwLDEwMCkpO3oudmFsKCJhIixNYXRoLnByZWNpc2lvbigoby52YWwoKSoyNTUpLzEwMCx5KSxFLnRhcmdldCk7YnJlYWs7Y2FzZSBuLmdldCgwKTpuLnZhbChqLmNhbGwocSxuLnZhbCgpLDAsMzYwKSk7ei52YWwoImgiLG4udmFsKCksRS50YXJnZXQpO2JyZWFrO2Nhc2UgcC5nZXQoMCk6cC52YWwoai5jYWxsKHEscC52YWwoKSwwLDEwMCkpO3oudmFsKCJzIixwLnZhbCgpLEUudGFyZ2V0KTticmVhaztjYXNlIHguZ2V0KDApOngudmFsKGouY2FsbChxLHgudmFsKCksMCwxMDApKTt6LnZhbCgidiIseC52YWwoKSxFLnRhcmdldCk7YnJlYWs7Y2FzZSBzLmdldCgwKTpzLnZhbChzLnZhbCgpLnJlcGxhY2UoL1teYS1mQS1GMC05XS9nLCIiKS50b0xvd2VyQ2FzZSgpLnN1YnN0cmluZygwLDYpKTtrJiZrLnZhbChzLnZhbCgpKTt6LnZhbCgiaGV4IixzLnZhbCgpIT0iIj9zLnZhbCgpOm51bGwsRS50YXJnZXQpO2JyZWFrO2Nhc2UgayYmay5nZXQoMCk6ay52YWwoay52YWwoKS5yZXBsYWNlKC9bXmEtZkEtRjAtOV0vZywiIikudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoMCw2KSk7cy52YWwoay52YWwoKSk7ei52YWwoImhleCIsay52YWwoKSE9IiI/ay52YWwoKTpudWxsLEUudGFyZ2V0KTticmVhaztjYXNlIEImJkIuZ2V0KDApOkIudmFsKEIudmFsKCkucmVwbGFjZSgvW15hLWZBLUYwLTldL2csIiIpLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKDAsMikpO3oudmFsKCJhIixCLnZhbCgpIT1udWxsP3BhcnNlSW50KEIudmFsKCksMTYpOm51bGwsRS50YXJnZXQpO2JyZWFrfX0sQT1mdW5jdGlvbihFKXtpZih6LnZhbCgpIT1udWxsKXtzd2l0Y2goRS50YXJnZXQpe2Nhc2Ugci5nZXQoMCk6ci52YWwoei52YWwoInIiKSk7YnJlYWs7Y2FzZSB2LmdldCgwKTp2LnZhbCh6LnZhbCgiZyIpKTticmVhaztjYXNlIGguZ2V0KDApOmgudmFsKHoudmFsKCJiIikpO2JyZWFrO2Nhc2UgbyYmby5nZXQoMCk6by52YWwoTWF0aC5wcmVjaXNpb24oKHoudmFsKCJhIikqMTAwKS8yNTUseSkpO2JyZWFrO2Nhc2Ugbi5nZXQoMCk6bi52YWwoei52YWwoImgiKSk7YnJlYWs7Y2FzZSBwLmdldCgwKTpwLnZhbCh6LnZhbCgicyIpKTticmVhaztjYXNlIHguZ2V0KDApOngudmFsKHoudmFsKCJ2IikpO2JyZWFrO2Nhc2Ugcy5nZXQoMCk6Y2FzZSBrJiZrLmdldCgwKTpzLnZhbCh6LnZhbCgiaGV4IikpO2smJmsudmFsKHoudmFsKCJoZXgiKSk7YnJlYWs7Y2FzZSBCJiZCLmdldCgwKTpCLnZhbCh6LnZhbCgiYWhleCIpLnN1YnN0cmluZyg2KSk7YnJlYWt9fX0sdD1mdW5jdGlvbihFKXtzd2l0Y2goRS5rZXlDb2RlKXtjYXNlIDk6Y2FzZSAxNjpjYXNlIDI5OmNhc2UgMzc6Y2FzZSAzOTpyZXR1cm4gZmFsc2U7Y2FzZSJjIi5jaGFyQ29kZUF0KCk6Y2FzZSJ2Ii5jaGFyQ29kZUF0KCk6aWYoRS5jdHJsS2V5KXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfSxqPWZ1bmN0aW9uKEcsRixFKXtpZihHPT0iInx8aXNOYU4oRykpe3JldHVybiBGfWlmKEc+RSl7cmV0dXJuIEV9aWYoRzxGKXtyZXR1cm4gRn1yZXR1cm4gR30sbT1mdW5jdGlvbihHLEUpe3ZhciBGPUcudmFsKCJhbGwiKTtpZihFIT1yLmdldCgwKSl7ci52YWwoRiE9bnVsbD9GLnI6IiIpfWlmKEUhPXYuZ2V0KDApKXt2LnZhbChGIT1udWxsP0YuZzoiIil9aWYoRSE9aC5nZXQoMCkpe2gudmFsKEYhPW51bGw/Ri5iOiIiKX1pZihvJiZFIT1vLmdldCgwKSl7by52YWwoRiE9bnVsbD9NYXRoLnByZWNpc2lvbigoRi5hKjEwMCkvMjU1LHkpOiIiKX1pZihFIT1uLmdldCgwKSl7bi52YWwoRiE9bnVsbD9GLmg6IiIpfWlmKEUhPXAuZ2V0KDApKXtwLnZhbChGIT1udWxsP0YuczoiIil9aWYoRSE9eC5nZXQoMCkpe3gudmFsKEYhPW51bGw/Ri52OiIiKX1pZihFIT1zLmdldCgwKSYmKGsmJkUhPWsuZ2V0KDApfHwhaykpe3MudmFsKEYhPW51bGw/Ri5oZXg6IiIpfWlmKGsmJkUhPWsuZ2V0KDApJiZFIT1zLmdldCgwKSl7ay52YWwoRiE9bnVsbD9GLmhleDoiIil9aWYoQiYmRSE9Qi5nZXQoMCkpe0IudmFsKEYhPW51bGw/Ri5haGV4LnN1YnN0cmluZyg2KToiIil9fSxEPWZ1bmN0aW9uKCl7ci5hZGQodikuYWRkKGgpLmFkZChvKS5hZGQobikuYWRkKHApLmFkZCh4KS5hZGQocykuYWRkKGspLmFkZChCKS51bmJpbmQoImtleXVwIix3KS51bmJpbmQoImJsdXIiLEEpO3IuYWRkKHYpLmFkZChoKS5hZGQobykuYWRkKG4pLmFkZChwKS5hZGQoeCkudW5iaW5kKCJrZXlkb3duIixDKTt6LnVuYmluZChtKTtyPW51bGw7dj1udWxsO2g9bnVsbDtvPW51bGw7bj1udWxsO3A9bnVsbDt4PW51bGw7cz1udWxsO0I9bnVsbH07ZS5leHRlbmQodHJ1ZSxxLHtkZXN0cm95OkR9KTtyLmFkZCh2KS5hZGQoaCkuYWRkKG8pLmFkZChuKS5hZGQocCkuYWRkKHgpLmFkZChzKS5hZGQoaykuYWRkKEIpLmJpbmQoImtleXVwIix3KS5iaW5kKCJibHVyIixBKTtyLmFkZCh2KS5hZGQoaCkuYWRkKG8pLmFkZChuKS5hZGQocCkuYWRkKHgpLmJpbmQoImtleWRvd24iLEMpO3ouYmluZChtKX07ZS5qUGlja2VyPXtMaXN0OltdLENvbG9yOmZ1bmN0aW9uKHope3ZhciBxPXRoaXMsaixvLHQsdSxuLEEseCxrPW5ldyBBcnJheSgpLG09ZnVuY3Rpb24ocil7Zm9yKHZhciBoPTA7aDxrLmxlbmd0aDtoKyspe2tbaF0uY2FsbChxLHEscil9fSxsPWZ1bmN0aW9uKGgsRyxyKXt2YXIgRj1HIT09dW5kZWZpbmVkO2lmKCFGKXtpZihoPT09dW5kZWZpbmVkfHxoPT1udWxsfHxoPT0iIil7aD0iYWxsIn1pZihqPT1udWxsKXtyZXR1cm4gbnVsbH1zd2l0Y2goaC50b0xvd2VyQ2FzZSgpKXtjYXNlImFoZXgiOnJldHVybiBnLnJnYmFUb0hleCh7cjpqLGc6byxiOnQsYTp1fSk7Y2FzZSJoZXgiOnJldHVybiBsKCJhaGV4Iikuc3Vic3RyaW5nKDAsNik7Y2FzZSJhbGwiOnJldHVybntyOmosZzpvLGI6dCxhOnUsaDpuLHM6QSx2OngsaGV4OmwuY2FsbChxLCJoZXgiKSxhaGV4OmwuY2FsbChxLCJhaGV4Iil9O2RlZmF1bHQ6dmFyIEQ9e307Zm9yKHZhciBCPTA7QjxoLmxlbmd0aDtCKyspe3N3aXRjaChoLmNoYXJBdChCKSl7Y2FzZSJyIjppZihoLmxlbmd0aD09MSl7RD1qfWVsc2V7RC5yPWp9YnJlYWs7Y2FzZSJnIjppZihoLmxlbmd0aD09MSl7RD1vfWVsc2V7RC5nPW99YnJlYWs7Y2FzZSJiIjppZihoLmxlbmd0aD09MSl7RD10fWVsc2V7RC5iPXR9YnJlYWs7Y2FzZSJhIjppZihoLmxlbmd0aD09MSl7RD11fWVsc2V7RC5hPXV9YnJlYWs7Y2FzZSJoIjppZihoLmxlbmd0aD09MSl7RD1ufWVsc2V7RC5oPW59YnJlYWs7Y2FzZSJzIjppZihoLmxlbmd0aD09MSl7RD1BfWVsc2V7RC5zPUF9YnJlYWs7Y2FzZSJ2IjppZihoLmxlbmd0aD09MSl7RD14fWVsc2V7RC52PXh9YnJlYWt9fXJldHVybiBEPT17fT9sLmNhbGwocSwiYWxsIik6RDticmVha319aWYociE9bnVsbCYmcj09cSl7cmV0dXJufXZhciB2PWZhbHNlO2lmKGg9PW51bGwpe2g9IiJ9aWYoRz09bnVsbCl7aWYoaiE9bnVsbCl7aj1udWxsO3Y9dHJ1ZX1pZihvIT1udWxsKXtvPW51bGw7dj10cnVlfWlmKHQhPW51bGwpe3Q9bnVsbDt2PXRydWV9aWYodSE9bnVsbCl7dT1udWxsO3Y9dHJ1ZX1pZihuIT1udWxsKXtuPW51bGw7dj10cnVlfWlmKEEhPW51bGwpe0E9bnVsbDt2PXRydWV9aWYoeCE9bnVsbCl7eD1udWxsO3Y9dHJ1ZX12JiZtLmNhbGwocSxyfHxxKTtyZXR1cm59c3dpdGNoKGgudG9Mb3dlckNhc2UoKSl7Y2FzZSJhaGV4IjpjYXNlImhleCI6dmFyIEQ9Zy5oZXhUb1JnYmEoRyYmKEcuYWhleHx8Ry5oZXgpfHxHfHwiMDAwMDAwMDAiKTtsLmNhbGwocSwicmdiYSIse3I6RC5yLGc6RC5nLGI6RC5iLGE6aD09ImFoZXgiP0QuYTp1IT1udWxsP3U6MjU1fSxyKTticmVhaztkZWZhdWx0OmlmKEcmJihHLmFoZXghPW51bGx8fEcuaGV4IT1udWxsKSl7bC5jYWxsKHEsImFoZXgiLEcuYWhleHx8Ry5oZXh8fCIwMDAwMDAwMCIscik7cmV0dXJufXZhciBzPXt9LEU9ZmFsc2UsQz1mYWxzZTtpZihHLnIhPT11bmRlZmluZWQmJiFoLmluZGV4T2YoInIiKT09LTEpe2grPSJyIn1pZihHLmchPT11bmRlZmluZWQmJiFoLmluZGV4T2YoImciKT09LTEpe2grPSJnIn1pZihHLmIhPT11bmRlZmluZWQmJiFoLmluZGV4T2YoImIiKT09LTEpe2grPSJiIn1pZihHLmEhPT11bmRlZmluZWQmJiFoLmluZGV4T2YoImEiKT09LTEpe2grPSJhIn1pZihHLmghPT11bmRlZmluZWQmJiFoLmluZGV4T2YoImgiKT09LTEpe2grPSJoIn1pZihHLnMhPT11bmRlZmluZWQmJiFoLmluZGV4T2YoInMiKT09LTEpe2grPSJzIn1pZihHLnYhPT11bmRlZmluZWQmJiFoLmluZGV4T2YoInYiKT09LTEpe2grPSJ2In1mb3IodmFyIEI9MDtCPGgubGVuZ3RoO0IrKyl7c3dpdGNoKGguY2hhckF0KEIpKXtjYXNlInIiOmlmKEMpe2NvbnRpbnVlfUU9dHJ1ZTtzLnI9RyYmRy5yJiZHLnJ8MHx8RyYmR3wwfHwwO2lmKHMucjwwKXtzLnI9MH1lbHNle2lmKHMucj4yNTUpe3Mucj0yNTV9fWlmKGohPXMucil7aj1zLnI7dj10cnVlfWJyZWFrO2Nhc2UiZyI6aWYoQyl7Y29udGludWV9RT10cnVlO3MuZz1HJiZHLmcmJkcuZ3wwfHxHJiZHfDB8fDA7aWYocy5nPDApe3MuZz0wfWVsc2V7aWYocy5nPjI1NSl7cy5nPTI1NX19aWYobyE9cy5nKXtvPXMuZzt2PXRydWV9YnJlYWs7Y2FzZSJiIjppZihDKXtjb250aW51ZX1FPXRydWU7cy5iPUcmJkcuYiYmRy5ifDB8fEcmJkd8MHx8MDtpZihzLmI8MCl7cy5iPTB9ZWxzZXtpZihzLmI+MjU1KXtzLmI9MjU1fX1pZih0IT1zLmIpe3Q9cy5iO3Y9dHJ1ZX1icmVhaztjYXNlImEiOnMuYT1HJiZHLmEhPW51bGw/Ry5hfDA6RyE9bnVsbD9HfDA6MjU1O2lmKHMuYTwwKXtzLmE9MH1lbHNle2lmKHMuYT4yNTUpe3MuYT0yNTV9fWlmKHUhPXMuYSl7dT1zLmE7dj10cnVlfWJyZWFrO2Nhc2UiaCI6aWYoRSl7Y29udGludWV9Qz10cnVlO3MuaD1HJiZHLmgmJkcuaHwwfHxHJiZHfDB8fDA7aWYocy5oPDApe3MuaD0wfWVsc2V7aWYocy5oPjM2MCl7cy5oPTM2MH19aWYobiE9cy5oKXtuPXMuaDt2PXRydWV9YnJlYWs7Y2FzZSJzIjppZihFKXtjb250aW51ZX1DPXRydWU7cy5zPUcmJkcucyE9bnVsbD9HLnN8MDpHIT1udWxsP0d8MDoxMDA7aWYocy5zPDApe3Mucz0wfWVsc2V7aWYocy5zPjEwMCl7cy5zPTEwMH19aWYoQSE9cy5zKXtBPXMuczt2PXRydWV9YnJlYWs7Y2FzZSJ2IjppZihFKXtjb250aW51ZX1DPXRydWU7cy52PUcmJkcudiE9bnVsbD9HLnZ8MDpHIT1udWxsP0d8MDoxMDA7aWYocy52PDApe3Mudj0wfWVsc2V7aWYocy52PjEwMCl7cy52PTEwMH19aWYoeCE9cy52KXt4PXMudjt2PXRydWV9YnJlYWt9fWlmKHYpe2lmKEUpe2o9anx8MDtvPW98fDA7dD10fHwwO3ZhciBEPWcucmdiVG9Ic3Yoe3I6aixnOm8sYjp0fSk7bj1ELmg7QT1ELnM7eD1ELnZ9ZWxzZXtpZihDKXtuPW58fDA7QT1BIT1udWxsP0E6MTAwO3g9eCE9bnVsbD94OjEwMDt2YXIgRD1nLmhzdlRvUmdiKHtoOm4sczpBLHY6eH0pO2o9RC5yO289RC5nO3Q9RC5ifX11PXUhPW51bGw/dToyNTU7bS5jYWxsKHEscnx8cSl9YnJlYWt9fSxwPWZ1bmN0aW9uKGgpe2lmKGUuaXNGdW5jdGlvbihoKSl7ay5wdXNoKGgpfX0seT1mdW5jdGlvbihyKXtpZighZS5pc0Z1bmN0aW9uKHIpKXtyZXR1cm59dmFyIGg7d2hpbGUoKGg9ZS5pbkFycmF5KHIsaykpIT0tMSl7ay5zcGxpY2UoaCwxKX19LHc9ZnVuY3Rpb24oKXtrPW51bGx9O2UuZXh0ZW5kKHRydWUscSx7dmFsOmwsYmluZDpwLHVuYmluZDp5LGRlc3Ryb3k6d30pO2lmKHope2lmKHouYWhleCE9bnVsbCl7bCgiYWhleCIseil9ZWxzZXtpZih6LmhleCE9bnVsbCl7bCgoei5hIT1udWxsPyJhIjoiIikrImhleCIsei5hIT1udWxsP3thaGV4OnouaGV4K2cuaW50VG9IZXgoei5hKX06eil9ZWxzZXtpZih6LnIhPW51bGwmJnouZyE9bnVsbCYmei5iIT1udWxsKXtsKCJyZ2IiKyh6LmEhPW51bGw/ImEiOiIiKSx6KX1lbHNle2lmKHouaCE9bnVsbCYmei5zIT1udWxsJiZ6LnYhPW51bGwpe2woImhzdiIrKHouYSE9bnVsbD8iYSI6IiIpLHopfX19fX19LENvbG9yTWV0aG9kczp7aGV4VG9SZ2JhOmZ1bmN0aW9uKG0pe209dGhpcy52YWxpZGF0ZUhleChtKTtpZihtPT0iIil7cmV0dXJue3I6bnVsbCxnOm51bGwsYjpudWxsLGE6bnVsbH19dmFyIGw9IjAwIixrPSIwMCIsaD0iMDAiLGo9IjI1NSI7aWYobS5sZW5ndGg9PTYpe20rPSJmZiJ9aWYobS5sZW5ndGg+Nil7bD1tLnN1YnN0cmluZygwLDIpO2s9bS5zdWJzdHJpbmcoMiw0KTtoPW0uc3Vic3RyaW5nKDQsNik7aj1tLnN1YnN0cmluZyg2LG0ubGVuZ3RoKX1lbHNle2lmKG0ubGVuZ3RoPjQpe2w9bS5zdWJzdHJpbmcoNCxtLmxlbmd0aCk7bT1tLnN1YnN0cmluZygwLDQpfWlmKG0ubGVuZ3RoPjIpe2s9bS5zdWJzdHJpbmcoMixtLmxlbmd0aCk7bT1tLnN1YnN0cmluZygwLDIpfWlmKG0ubGVuZ3RoPjApe2g9bS5zdWJzdHJpbmcoMCxtLmxlbmd0aCl9fXJldHVybntyOnRoaXMuaGV4VG9JbnQobCksZzp0aGlzLmhleFRvSW50KGspLGI6dGhpcy5oZXhUb0ludChoKSxhOnRoaXMuaGV4VG9JbnQoail9fSx2YWxpZGF0ZUhleDpmdW5jdGlvbihoKXtoPWgudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtZjAtOV0vZywiIik7aWYoaC5sZW5ndGg+OCl7aD1oLnN1YnN0cmluZygwLDgpfXJldHVybiBofSxyZ2JhVG9IZXg6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuaW50VG9IZXgoaC5yKSt0aGlzLmludFRvSGV4KGguZykrdGhpcy5pbnRUb0hleChoLmIpK3RoaXMuaW50VG9IZXgoaC5hKX0saW50VG9IZXg6ZnVuY3Rpb24oail7dmFyIGg9KGp8MCkudG9TdHJpbmcoMTYpO2lmKGgubGVuZ3RoPT0xKXtoPSgiMCIraCl9cmV0dXJuIGgudG9Mb3dlckNhc2UoKX0saGV4VG9JbnQ6ZnVuY3Rpb24oaCl7cmV0dXJuIHBhcnNlSW50KGgsMTYpfSxyZ2JUb0hzdjpmdW5jdGlvbihsKXt2YXIgbz1sLnIvMjU1LG49bC5nLzI1NSxqPWwuYi8yNTUsaz17aDowLHM6MCx2OjB9LG09MCxoPTAscDtpZihvPj1uJiZvPj1qKXtoPW87bT1uPmo/ajpufWVsc2V7aWYobj49aiYmbj49byl7aD1uO209bz5qP2o6b31lbHNle2g9ajttPW4+bz9vOm59fWsudj1oO2sucz1oPyhoLW0pL2g6MDtpZighay5zKXtrLmg9MH1lbHNle3A9aC1tO2lmKG89PWgpe2suaD0obi1qKS9wfWVsc2V7aWYobj09aCl7ay5oPTIrKGotbykvcH1lbHNle2suaD00KyhvLW4pL3B9fWsuaD1wYXJzZUludChrLmgqNjApO2lmKGsuaDwwKXtrLmgrPTM2MH19ay5zPShrLnMqMTAwKXwwO2sudj0oay52KjEwMCl8MDtyZXR1cm4ga30saHN2VG9SZ2I6ZnVuY3Rpb24obil7dmFyIHI9e3I6MCxnOjAsYjowLGE6MTAwfSxtPW4uaCx4PW4ucyx1PW4udjtpZih4PT0wKXtpZih1PT0wKXtyLnI9ci5nPXIuYj0wfWVsc2V7ci5yPXIuZz1yLmI9KHUqMjU1LzEwMCl8MH19ZWxzZXtpZihtPT0zNjApe209MH1tLz02MDt4PXgvMTAwO3U9dS8xMDA7dmFyIGw9bXwwLG89bS1sLGs9dSooMS14KSxqPXUqKDEtKHgqbykpLHc9dSooMS0oeCooMS1vKSkpO3N3aXRjaChsKXtjYXNlIDA6ci5yPXU7ci5nPXc7ci5iPWs7YnJlYWs7Y2FzZSAxOnIucj1qO3IuZz11O3IuYj1rO2JyZWFrO2Nhc2UgMjpyLnI9aztyLmc9dTtyLmI9dzticmVhaztjYXNlIDM6ci5yPWs7ci5nPWo7ci5iPXU7YnJlYWs7Y2FzZSA0OnIucj13O3IuZz1rO3IuYj11O2JyZWFrO2Nhc2UgNTpyLnI9dTtyLmc9aztyLmI9ajticmVha31yLnI9KHIucioyNTUpfDA7ci5nPShyLmcqMjU1KXwwO3IuYj0oci5iKjI1NSl8MH1yZXR1cm4gcn19fTt2YXIgZj1lLmpQaWNrZXIuQ29sb3IsYz1lLmpQaWNrZXIuTGlzdCxnPWUualBpY2tlci5Db2xvck1ldGhvZHM7ZS5mbi5qUGlja2VyPWZ1bmN0aW9uKGope3ZhciBoPWFyZ3VtZW50cztyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHc9dGhpcyxhdj1lLmV4dGVuZCh0cnVlLHt9LGUuZm4ualBpY2tlci5kZWZhdWx0cyxqKTtpZihlKHcpLmdldCgwKS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT0iaW5wdXQiKXtlLmV4dGVuZCh0cnVlLGF2LHt3aW5kb3c6e2JpbmRUb0lucHV0OnRydWUsZXhwYW5kYWJsZTp0cnVlLGlucHV0OmUodyl9fSk7aWYoZSh3KS52YWwoKT09IiIpe2F2LmNvbG9yLmFjdGl2ZT1uZXcgZih7aGV4Om51bGx9KTthdi5jb2xvci5jdXJyZW50PW5ldyBmKHtoZXg6bnVsbH0pfWVsc2V7aWYoZy52YWxpZGF0ZUhleChlKHcpLnZhbCgpKSl7YXYuY29sb3IuYWN0aXZlPW5ldyBmKHtoZXg6ZSh3KS52YWwoKSxhOmF2LmNvbG9yLmFjdGl2ZS52YWwoImEiKX0pO2F2LmNvbG9yLmN1cnJlbnQ9bmV3IGYoe2hleDplKHcpLnZhbCgpLGE6YXYuY29sb3IuYWN0aXZlLnZhbCgiYSIpfSl9fX1pZihhdi53aW5kb3cuZXhwYW5kYWJsZSl7ZSh3KS5hZnRlcignPHNwYW4gY2xhc3M9ImpQaWNrZXIiPjxzcGFuIGNsYXNzPSJJY29uIj48c3BhbiBjbGFzcz0iQ29sb3IiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0iQWxwaGEiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0iSW1hZ2UiIHRpdGxlPSJDbGljayBUbyBPcGVuIENvbG9yIFBpY2tlciI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJDb250YWluZXIiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PC9zcGFuPicpfWVsc2V7YXYud2luZG93LmxpdmVVcGRhdGU9ZmFsc2V9dmFyIFE9cGFyc2VGbG9hdChuYXZpZ2F0b3IuYXBwVmVyc2lvbi5zcGxpdCgiTVNJRSIpWzFdKTw3JiZkb2N1bWVudC5ib2R5LmZpbHRlcnMsUj1udWxsLGw9bnVsbCxzPW51bGwsYXU9bnVsbCxhdD1udWxsLGFyPW51bGwsUD1udWxsLE89bnVsbCxOPW51bGwsTT1udWxsLEw9bnVsbCxLPW51bGwsRD1udWxsLFU9bnVsbCxhdz1udWxsLEo9bnVsbCxJPW51bGwsYW09bnVsbCxhaT1udWxsLEU9bnVsbCxhbj1udWxsLGFoPW51bGwsWD1udWxsLGFiPW51bGwsYXE9bnVsbCxyPW51bGwsQz1udWxsLHU9bnVsbCxhZz1mdW5jdGlvbihhQil7dmFyIGFEPUcuYWN0aXZlLGFFPW4uY2xpZW50UGF0aCxhQT1hRC52YWwoImhleCIpLGFDLGF6O2F2LmNvbG9yLm1vZGU9YUI7c3dpdGNoKGFCKXtjYXNlImgiOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmNhbGwodyxsLCJ0cmFuc3BhcmVudCIpO3guY2FsbCh3LGF1LDApO1kuY2FsbCh3LGF1LDEwMCk7eC5jYWxsKHcsYXQsMjYwKTtZLmNhbGwodyxhdCwxMDApO3kuY2FsbCh3LHMsInRyYW5zcGFyZW50Iik7eC5jYWxsKHcsUCwwKTtZLmNhbGwodyxQLDEwMCk7eC5jYWxsKHcsTywyNjApO1kuY2FsbCh3LE8sMTAwKTt4LmNhbGwodyxOLDI2MCk7WS5jYWxsKHcsTiwxMDApO3guY2FsbCh3LE0sMjYwKTtZLmNhbGwodyxNLDEwMCk7eC5jYWxsKHcsSywyNjApO1kuY2FsbCh3LEssMTAwKX0sMCk7RC5yYW5nZSgiYWxsIix7bWluWDowLG1heFg6MTAwLG1pblk6MCxtYXhZOjEwMH0pO1UucmFuZ2UoInJhbmdlWSIse21pblk6MCxtYXhZOjM2MH0pO2lmKGFELnZhbCgiYWhleCIpPT1udWxsKXticmVha31ELnZhbCgieHkiLHt4OmFELnZhbCgicyIpLHk6MTAwLWFELnZhbCgidiIpfSxEKTtVLnZhbCgieSIsMzYwLWFELnZhbCgiaCIpLFUpO2JyZWFrO2Nhc2UicyI6c2V0VGltZW91dChmdW5jdGlvbigpe3kuY2FsbCh3LGwsInRyYW5zcGFyZW50Iik7eC5jYWxsKHcsYXUsLTI2MCk7eC5jYWxsKHcsYXQsLTUyMCk7eC5jYWxsKHcsUCwtMjYwKTt4LmNhbGwodyxPLC01MjApO3guY2FsbCh3LEssMjYwKTtZLmNhbGwodyxLLDEwMCl9LDApO0QucmFuZ2UoImFsbCIse21pblg6MCxtYXhYOjM2MCxtaW5ZOjAsbWF4WToxMDB9KTtVLnJhbmdlKCJyYW5nZVkiLHttaW5ZOjAsbWF4WToxMDB9KTtpZihhRC52YWwoImFoZXgiKT09bnVsbCl7YnJlYWt9RC52YWwoInh5Iix7eDphRC52YWwoImgiKSx5OjEwMC1hRC52YWwoInYiKX0sRCk7VS52YWwoInkiLDEwMC1hRC52YWwoInMiKSxVKTticmVhaztjYXNlInYiOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmNhbGwodyxsLCIwMDAwMDAiKTt4LmNhbGwodyxhdSwtNzgwKTt4LmNhbGwodyxhdCwyNjApO3kuY2FsbCh3LHMsYUEpO3guY2FsbCh3LFAsLTUyMCk7eC5jYWxsKHcsTywyNjApO1kuY2FsbCh3LE8sMTAwKTt4LmNhbGwodyxLLDI2MCk7WS5jYWxsKHcsSywxMDApfSwwKTtELnJhbmdlKCJhbGwiLHttaW5YOjAsbWF4WDozNjAsbWluWTowLG1heFk6MTAwfSk7VS5yYW5nZSgicmFuZ2VZIix7bWluWTowLG1heFk6MTAwfSk7aWYoYUQudmFsKCJhaGV4Iik9PW51bGwpe2JyZWFrfUQudmFsKCJ4eSIse3g6YUQudmFsKCJoIikseToxMDAtYUQudmFsKCJzIil9LEQpO1UudmFsKCJ5IiwxMDAtYUQudmFsKCJ2IiksVSk7YnJlYWs7Y2FzZSJyIjphQz0tMTA0MDthej0tNzgwO0QucmFuZ2UoImFsbCIse21pblg6MCxtYXhYOjI1NSxtaW5ZOjAsbWF4WToyNTV9KTtVLnJhbmdlKCJyYW5nZVkiLHttaW5ZOjAsbWF4WToyNTV9KTtpZihhRC52YWwoImFoZXgiKT09bnVsbCl7YnJlYWt9RC52YWwoInh5Iix7eDphRC52YWwoImIiKSx5OjI1NS1hRC52YWwoImciKX0sRCk7VS52YWwoInkiLDI1NS1hRC52YWwoInIiKSxVKTticmVhaztjYXNlImciOmFDPS0xNTYwO2F6PS0xODIwO0QucmFuZ2UoImFsbCIse21pblg6MCxtYXhYOjI1NSxtaW5ZOjAsbWF4WToyNTV9KTtVLnJhbmdlKCJyYW5nZVkiLHttaW5ZOjAsbWF4WToyNTV9KTtpZihhRC52YWwoImFoZXgiKT09bnVsbCl7YnJlYWt9RC52YWwoInh5Iix7eDphRC52YWwoImIiKSx5OjI1NS1hRC52YWwoInIiKX0sRCk7VS52YWwoInkiLDI1NS1hRC52YWwoImciKSxVKTticmVhaztjYXNlImIiOmFDPS0yMDgwO2F6PS0yODYwO0QucmFuZ2UoImFsbCIse21pblg6MCxtYXhYOjI1NSxtaW5ZOjAsbWF4WToyNTV9KTtVLnJhbmdlKCJyYW5nZVkiLHttaW5ZOjAsbWF4WToyNTV9KTtpZihhRC52YWwoImFoZXgiKT09bnVsbCl7YnJlYWt9RC52YWwoInh5Iix7eDphRC52YWwoInIiKSx5OjI1NS1hRC52YWwoImciKX0sRCk7VS52YWwoInkiLDI1NS1hRC52YWwoImIiKSxVKTticmVhaztjYXNlImEiOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmNhbGwodyxsLCJ0cmFuc3BhcmVudCIpO3guY2FsbCh3LGF1LC0yNjApO3guY2FsbCh3LGF0LC01MjApO3guY2FsbCh3LFAsMjYwKTt4LmNhbGwodyxPLDI2MCk7WS5jYWxsKHcsTywxMDApO3guY2FsbCh3LEssMCk7WS5jYWxsKHcsSywxMDApfSwwKTtELnJhbmdlKCJhbGwiLHttaW5YOjAsbWF4WDozNjAsbWluWTowLG1heFk6MTAwfSk7VS5yYW5nZSgicmFuZ2VZIix7bWluWTowLG1heFk6MjU1fSk7aWYoYUQudmFsKCJhaGV4Iik9PW51bGwpe2JyZWFrfUQudmFsKCJ4eSIse3g6YUQudmFsKCJoIikseToxMDAtYUQudmFsKCJ2Iil9LEQpO1UudmFsKCJ5IiwyNTUtYUQudmFsKCJhIiksVSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyAoIkludmFsaWQgTW9kZSIpO2JyZWFrfXN3aXRjaChhQil7Y2FzZSJoIjpicmVhaztjYXNlInMiOmNhc2UidiI6Y2FzZSJhIjpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7WS5jYWxsKHcsYXUsMTAwKTtZLmNhbGwodyxQLDEwMCk7eC5jYWxsKHcsTiwyNjApO1kuY2FsbCh3LE4sMTAwKTt4LmNhbGwodyxNLDI2MCk7WS5jYWxsKHcsTSwxMDApfSwwKTticmVhaztjYXNlInIiOmNhc2UiZyI6Y2FzZSJiIjpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eS5jYWxsKHcsbCwidHJhbnNwYXJlbnQiKTt5LmNhbGwodyxzLCJ0cmFuc3BhcmVudCIpO1kuY2FsbCh3LFAsMTAwKTtZLmNhbGwodyxhdSwxMDApO3guY2FsbCh3LGF1LGFDKTt4LmNhbGwodyxhdCxhQy0yNjApO3guY2FsbCh3LFAsYXotNzgwKTt4LmNhbGwodyxPLGF6LTUyMCk7eC5jYWxsKHcsTixheik7eC5jYWxsKHcsTSxhei0yNjApO3guY2FsbCh3LEssMjYwKTtZLmNhbGwodyxLLDEwMCl9LDApO2JyZWFrfWlmKGFELnZhbCgiYWhleCIpPT1udWxsKXtyZXR1cm59YWouY2FsbCh3LGFEKX0sYWo9ZnVuY3Rpb24oYUEsYXope2lmKGF6PT1udWxsfHwoYXohPVUmJmF6IT1EKSl7di5jYWxsKHcsYUEsYXopfXNldFRpbWVvdXQoZnVuY3Rpb24oKXtheS5jYWxsKHcsYUEpO2FsLmNhbGwodyxhQSk7Vy5jYWxsKHcsYUEpfSwwKX0sej1mdW5jdGlvbihhQSxheil7dmFyIGFDPUcuYWN0aXZlO2lmKGF6IT1EJiZhQy52YWwoKT09bnVsbCl7cmV0dXJufXZhciBhQj1hQS52YWwoImFsbCIpO3N3aXRjaChhdi5jb2xvci5tb2RlKXtjYXNlImgiOmFDLnZhbCgic3YiLHtzOmFCLngsdjoxMDAtYUIueX0sYXopO2JyZWFrO2Nhc2UicyI6Y2FzZSJhIjphQy52YWwoImh2Iix7aDphQi54LHY6MTAwLWFCLnl9LGF6KTticmVhaztjYXNlInYiOmFDLnZhbCgiaHMiLHtoOmFCLngsczoxMDAtYUIueX0sYXopO2JyZWFrO2Nhc2UiciI6YUMudmFsKCJnYiIse2c6MjU1LWFCLnksYjphQi54fSxheik7YnJlYWs7Y2FzZSJnIjphQy52YWwoInJiIix7cjoyNTUtYUIueSxiOmFCLnh9LGF6KTticmVhaztjYXNlImIiOmFDLnZhbCgicmciLHtyOmFCLngsZzoyNTUtYUIueX0sYXopO2JyZWFrfX0sYWM9ZnVuY3Rpb24oYUEsYXope3ZhciBhQj1HLmFjdGl2ZTtpZihheiE9VSYmYUIudmFsKCk9PW51bGwpe3JldHVybn1zd2l0Y2goYXYuY29sb3IubW9kZSl7Y2FzZSJoIjphQi52YWwoImgiLHtoOjM2MC1hQS52YWwoInkiKX0sYXopO2JyZWFrO2Nhc2UicyI6YUIudmFsKCJzIix7czoxMDAtYUEudmFsKCJ5Iil9LGF6KTticmVhaztjYXNlInYiOmFCLnZhbCgidiIse3Y6MTAwLWFBLnZhbCgieSIpfSxheik7YnJlYWs7Y2FzZSJyIjphQi52YWwoInIiLHtyOjI1NS1hQS52YWwoInkiKX0sYXopO2JyZWFrO2Nhc2UiZyI6YUIudmFsKCJnIix7ZzoyNTUtYUEudmFsKCJ5Iil9LGF6KTticmVhaztjYXNlImIiOmFCLnZhbCgiYiIse2I6MjU1LWFBLnZhbCgieSIpfSxheik7YnJlYWs7Y2FzZSJhIjphQi52YWwoImEiLDI1NS1hQS52YWwoInkiKSxheik7YnJlYWt9fSx2PWZ1bmN0aW9uKGFDLGF6KXtpZihheiE9RCl7c3dpdGNoKGF2LmNvbG9yLm1vZGUpe2Nhc2UiaCI6dmFyIGFIPWFDLnZhbCgic3YiKTtELnZhbCgieHkiLHt4OmFIIT1udWxsP2FILnM6MTAwLHk6MTAwLShhSCE9bnVsbD9hSC52OjEwMCl9LGF6KTticmVhaztjYXNlInMiOmNhc2UiYSI6dmFyIGFCPWFDLnZhbCgiaHYiKTtELnZhbCgieHkiLHt4OmFCJiZhQi5ofHwwLHk6MTAwLShhQiE9bnVsbD9hQi52OjEwMCl9LGF6KTticmVhaztjYXNlInYiOnZhciBhRT1hQy52YWwoImhzIik7RC52YWwoInh5Iix7eDphRSYmYUUuaHx8MCx5OjEwMC0oYUUhPW51bGw/YUUuczoxMDApfSxheik7YnJlYWs7Y2FzZSJyIjp2YXIgYUE9YUMudmFsKCJiZyIpO0QudmFsKCJ4eSIse3g6YUEmJmFBLmJ8fDAseToyNTUtKGFBJiZhQS5nfHwwKX0sYXopO2JyZWFrO2Nhc2UiZyI6dmFyIGFJPWFDLnZhbCgiYnIiKTtELnZhbCgieHkiLHt4OmFJJiZhSS5ifHwwLHk6MjU1LShhSSYmYUkucnx8MCl9LGF6KTticmVhaztjYXNlImIiOnZhciBhRz1hQy52YWwoInJnIik7RC52YWwoInh5Iix7eDphRyYmYUcucnx8MCx5OjI1NS0oYUcmJmFHLmd8fDApfSxheik7YnJlYWt9fWlmKGF6IT1VKXtzd2l0Y2goYXYuY29sb3IubW9kZSl7Y2FzZSJoIjpVLnZhbCgieSIsMzYwLShhQy52YWwoImgiKXx8MCksYXopO2JyZWFrO2Nhc2UicyI6dmFyIGFKPWFDLnZhbCgicyIpO1UudmFsKCJ5IiwxMDAtKGFKIT1udWxsP2FKOjEwMCksYXopO2JyZWFrO2Nhc2UidiI6dmFyIGFGPWFDLnZhbCgidiIpO1UudmFsKCJ5IiwxMDAtKGFGIT1udWxsP2FGOjEwMCksYXopO2JyZWFrO2Nhc2UiciI6VS52YWwoInkiLDI1NS0oYUMudmFsKCJyIil8fDApLGF6KTticmVhaztjYXNlImciOlUudmFsKCJ5IiwyNTUtKGFDLnZhbCgiZyIpfHwwKSxheik7YnJlYWs7Y2FzZSJiIjpVLnZhbCgieSIsMjU1LShhQy52YWwoImIiKXx8MCksYXopO2JyZWFrO2Nhc2UiYSI6dmFyIGFEPWFDLnZhbCgiYSIpO1UudmFsKCJ5IiwyNTUtKGFEIT1udWxsP2FEOjI1NSksYXopO2JyZWFrfX19LGF5PWZ1bmN0aW9uKGFBKXt0cnl7dmFyIGF6PWFBLnZhbCgiYWxsIik7RS5jc3Moe2JhY2tncm91bmRDb2xvcjpheiYmIiMiK2F6LmhleHx8InRyYW5zcGFyZW50In0pO1kuY2FsbCh3LEUsYXomJk1hdGgucHJlY2lzaW9uKChhei5hKjEwMCkvMjU1LDQpfHwwKX1jYXRjaChhQil7fX0sYWw9ZnVuY3Rpb24oYUMpe3N3aXRjaChhdi5jb2xvci5tb2RlKXtjYXNlImgiOnkuY2FsbCh3LGwsbmV3IGYoe2g6YUMudmFsKCJoIil8fDAsczoxMDAsdjoxMDB9KS52YWwoImhleCIpKTticmVhaztjYXNlInMiOmNhc2UiYSI6dmFyIGFCPWFDLnZhbCgicyIpO1kuY2FsbCh3LGF0LDEwMC0oYUIhPW51bGw/YUI6MTAwKSk7YnJlYWs7Y2FzZSJ2Ijp2YXIgYUE9YUMudmFsKCJ2Iik7WS5jYWxsKHcsYXUsYUEhPW51bGw/YUE6MTAwKTticmVhaztjYXNlInIiOlkuY2FsbCh3LGF0LE1hdGgucHJlY2lzaW9uKChhQy52YWwoInIiKXx8MCkvMjU1KjEwMCw0KSk7YnJlYWs7Y2FzZSJnIjpZLmNhbGwodyxhdCxNYXRoLnByZWNpc2lvbigoYUMudmFsKCJnIil8fDApLzI1NSoxMDAsNCkpO2JyZWFrO2Nhc2UiYiI6WS5jYWxsKHcsYXQsTWF0aC5wcmVjaXNpb24oKGFDLnZhbCgiYiIpfHwwKS8yNTUqMTAwKSk7YnJlYWt9dmFyIGF6PWFDLnZhbCgiYSIpO1kuY2FsbCh3LGFyLE1hdGgucHJlY2lzaW9uKCgoMjU1LShhenx8MCkpKjEwMCkvMjU1LDQpKX0sVz1mdW5jdGlvbihhRil7c3dpdGNoKGF2LmNvbG9yLm1vZGUpe2Nhc2UiaCI6dmFyIGFIPWFGLnZhbCgiYSIpO1kuY2FsbCh3LEwsTWF0aC5wcmVjaXNpb24oKCgyNTUtKGFIfHwwKSkqMTAwKS8yNTUsNCkpO2JyZWFrO2Nhc2UicyI6dmFyIGFBPWFGLnZhbCgiaHZhIiksYUI9bmV3IGYoe2g6YUEmJmFBLmh8fDAsczoxMDAsdjphQSE9bnVsbD9hQS52OjEwMH0pO3kuY2FsbCh3LHMsYUIudmFsKCJoZXgiKSk7WS5jYWxsKHcsTywxMDAtKGFBIT1udWxsP2FBLnY6MTAwKSk7WS5jYWxsKHcsTCxNYXRoLnByZWNpc2lvbigoKDI1NS0oYUEmJmFBLmF8fDApKSoxMDApLzI1NSw0KSk7YnJlYWs7Y2FzZSJ2Ijp2YXIgYUM9YUYudmFsKCJoc2EiKSxhRT1uZXcgZih7aDphQyYmYUMuaHx8MCxzOmFDIT1udWxsP2FDLnM6MTAwLHY6MTAwfSk7eS5jYWxsKHcscyxhRS52YWwoImhleCIpKTtZLmNhbGwodyxMLE1hdGgucHJlY2lzaW9uKCgoMjU1LShhQyYmYUMuYXx8MCkpKjEwMCkvMjU1LDQpKTticmVhaztjYXNlInIiOmNhc2UiZyI6Y2FzZSJiIjp2YXIgYUQ9MCxhRz0wLGF6PWFGLnZhbCgicmdiYSIpO2lmKGF2LmNvbG9yLm1vZGU9PSJyIil7YUQ9YXomJmF6LmJ8fDA7YUc9YXomJmF6Lmd8fDB9ZWxzZXtpZihhdi5jb2xvci5tb2RlPT0iZyIpe2FEPWF6JiZhei5ifHwwO2FHPWF6JiZhei5yfHwwfWVsc2V7aWYoYXYuY29sb3IubW9kZT09ImIiKXthRD1heiYmYXoucnx8MDthRz1heiYmYXouZ3x8MH19fXZhciBhST1hRz5hRD9hRDphRztZLmNhbGwodyxPLGFEPmFHP01hdGgucHJlY2lzaW9uKCgoYUQtYUcpLygyNTUtYUcpKSoxMDAsNCk6MCk7WS5jYWxsKHcsTixhRz5hRD9NYXRoLnByZWNpc2lvbigoKGFHLWFEKS8oMjU1LWFEKSkqMTAwLDQpOjApO1kuY2FsbCh3LE0sTWF0aC5wcmVjaXNpb24oKGFJLzI1NSkqMTAwLDQpKTtZLmNhbGwodyxMLE1hdGgucHJlY2lzaW9uKCgoMjU1LShheiYmYXouYXx8MCkpKjEwMCkvMjU1LDQpKTticmVhaztjYXNlImEiOnZhciBhSD1hRi52YWwoImEiKTt5LmNhbGwodyxzLGFGLnZhbCgiaGV4Iil8fCIwMDAwMDAiKTtZLmNhbGwodyxMLGFIIT1udWxsPzA6MTAwKTtZLmNhbGwodyxLLGFIIT1udWxsPzEwMDowKTticmVha319LHk9ZnVuY3Rpb24oYXosYUEpe2F6LmNzcyh7YmFja2dyb3VuZENvbG9yOmFBJiZhQS5sZW5ndGg9PTYmJiIjIithQXx8InRyYW5zcGFyZW50In0pfSx0PWZ1bmN0aW9uKGF6LGFBKXtpZihRJiYoYUEuaW5kZXhPZigiQWxwaGFCYXIucG5nIikhPS0xfHxhQS5pbmRleE9mKCJCYXJzLnBuZyIpIT0tMXx8YUEuaW5kZXhPZigiTWFwcy5wbmciKSE9LTEpKXthei5hdHRyKCJwbmdTcmMiLGFBKTthei5jc3Moe2JhY2tncm91bmRJbWFnZToibm9uZSIsZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9JyIrYUErIicsIHNpemluZ01ldGhvZD0nc2NhbGUnKSJ9KX1lbHNle2F6LmNzcyh7YmFja2dyb3VuZEltYWdlOiJ1cmwoJyIrYUErIicpIn0pfX0seD1mdW5jdGlvbihheixhQSl7YXouY3NzKHt0b3A6YUErInB4In0pfSxZPWZ1bmN0aW9uKGFBLGF6KXthQS5jc3Moe3Zpc2liaWxpdHk6YXo+MD8idmlzaWJsZSI6ImhpZGRlbiJ9KTtpZihhej4wJiZhejwxMDApe2lmKFEpe3ZhciBhQj1hQS5hdHRyKCJwbmdTcmMiKTtpZihhQiE9bnVsbCYmKGFCLmluZGV4T2YoIkFscGhhQmFyLnBuZyIpIT0tMXx8YUIuaW5kZXhPZigiQmFycy5wbmciKSE9LTF8fGFCLmluZGV4T2YoIk1hcHMucG5nIikhPS0xKSl7YUEuY3NzKHtmaWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYUltYWdlTG9hZGVyKHNyYz0nIithQisiJywgc2l6aW5nTWV0aG9kPSdzY2FsZScpIHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShvcGFjaXR5PSIrYXorIikifSl9ZWxzZXthQS5jc3Moe29wYWNpdHk6TWF0aC5wcmVjaXNpb24oYXovMTAwLDQpfSl9fWVsc2V7YUEuY3NzKHtvcGFjaXR5Ok1hdGgucHJlY2lzaW9uKGF6LzEwMCw0KX0pfX1lbHNle2lmKGF6PT0wfHxhej09MTAwKXtpZihRKXt2YXIgYUI9YUEuYXR0cigicG5nU3JjIik7aWYoYUIhPW51bGwmJihhQi5pbmRleE9mKCJBbHBoYUJhci5wbmciKSE9LTF8fGFCLmluZGV4T2YoIkJhcnMucG5nIikhPS0xfHxhQi5pbmRleE9mKCJNYXBzLnBuZyIpIT0tMSkpe2FBLmNzcyh7ZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGFJbWFnZUxvYWRlcihzcmM9JyIrYUIrIicsIHNpemluZ01ldGhvZD0nc2NhbGUnKSJ9KX1lbHNle2FBLmNzcyh7b3BhY2l0eToiIn0pfX1lbHNle2FBLmNzcyh7b3BhY2l0eToiIn0pfX19fSxCPWZ1bmN0aW9uKCl7Ry5hY3RpdmUudmFsKCJhaGV4IixHLmN1cnJlbnQudmFsKCJhaGV4IikpfSxUPWZ1bmN0aW9uKCl7Ry5jdXJyZW50LnZhbCgiYWhleCIsRy5hY3RpdmUudmFsKCJhaGV4IikpfSxBPWZ1bmN0aW9uKGF6KXtlKHRoaXMpLnBhcmVudHMoInRib2R5OmZpcnN0IikuZmluZCgnaW5wdXQ6cmFkaW9bdmFsdWUhPSInK2F6LnRhcmdldC52YWx1ZSsnIl0nKS5yZW1vdmVBdHRyKCJjaGVja2VkIik7YWcuY2FsbCh3LGF6LnRhcmdldC52YWx1ZSl9LFo9ZnVuY3Rpb24oKXtCLmNhbGwodyl9LHE9ZnVuY3Rpb24oKXtCLmNhbGwodyk7YXYud2luZG93LmV4cGFuZGFibGUmJmFvLmNhbGwodyk7ZS5pc0Z1bmN0aW9uKGF4KSYmYXguY2FsbCh3LEcuYWN0aXZlLFgpfSxtPWZ1bmN0aW9uKCl7VC5jYWxsKHcpO2F2LndpbmRvdy5leHBhbmRhYmxlJiZhby5jYWxsKHcpO2UuaXNGdW5jdGlvbihhZSkmJmFlLmNhbGwodyxHLmFjdGl2ZSxhaCl9LGFmPWZ1bmN0aW9uKCl7Vi5jYWxsKHcpfSxhcD1mdW5jdGlvbihhQixheil7dmFyIGFBPWFCLnZhbCgiaGV4Iik7YW4uY3NzKHtiYWNrZ3JvdW5kQ29sb3I6YUEmJiIjIithQXx8InRyYW5zcGFyZW50In0pO1kuY2FsbCh3LGFuLE1hdGgucHJlY2lzaW9uKCgoYUIudmFsKCJhIil8fDApKjEwMCkvMjU1LDQpKX0sSD1mdW5jdGlvbihhQyxheil7dmFyIGFCPWFDLnZhbCgiaGV4Iik7dmFyIGFBPWFDLnZhbCgidmEiKTthcS5jc3Moe2JhY2tncm91bmRDb2xvcjphQiYmIiMiK2FCfHwidHJhbnNwYXJlbnQifSk7WS5jYWxsKHcscixNYXRoLnByZWNpc2lvbigoKDI1NS0oYUEmJmFBLmF8fDApKSoxMDApLzI1NSw0KSk7aWYoYXYud2luZG93LmJpbmRUb0lucHV0JiZhdi53aW5kb3cudXBkYXRlSW5wdXRDb2xvcil7YXYud2luZG93LmlucHV0LmNzcyh7YmFja2dyb3VuZENvbG9yOmFCJiYiIyIrYUJ8fCJ0cmFuc3BhcmVudCIsY29sb3I6YUE9PW51bGx8fGFBLnY+NzU/IiMwMDAwMDAiOiIjZmZmZmZmIn0pfX0sUz1mdW5jdGlvbihhQil7dmFyIGF6PWF2LndpbmRvdy5lbGVtZW50LGFBPWF2LndpbmRvdy5wYWdlO0o9cGFyc2VJbnQoUi5jc3MoImxlZnQiKSk7ST1wYXJzZUludChSLmNzcygidG9wIikpO2FtPWFCLnBhZ2VYO2FpPWFCLnBhZ2VZO2UoZG9jdW1lbnQpLmJpbmQoIm1vdXNlbW92ZSIsaykuYmluZCgibW91c2V1cCIscCk7YUIucHJldmVudERlZmF1bHQoKX0saz1mdW5jdGlvbihheil7Ui5jc3Moe2xlZnQ6Si0oYW0tYXoucGFnZVgpKyJweCIsdG9wOkktKGFpLWF6LnBhZ2VZKSsicHgifSk7aWYoYXYud2luZG93LmV4cGFuZGFibGUmJiFlLnN1cHBvcnQuYm94TW9kZWwpe1IucHJldigpLmNzcyh7bGVmdDpSLmNzcygibGVmdCIpLHRvcDpSLmNzcygidG9wIil9KX1hei5zdG9wUHJvcGFnYXRpb24oKTthei5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBmYWxzZX0scD1mdW5jdGlvbihheil7ZShkb2N1bWVudCkudW5iaW5kKCJtb3VzZW1vdmUiLGspLnVuYmluZCgibW91c2V1cCIscCk7YXouc3RvcFByb3BhZ2F0aW9uKCk7YXoucHJldmVudERlZmF1bHQoKTtyZXR1cm4gZmFsc2V9LEY9ZnVuY3Rpb24oYXope2F6LnByZXZlbnREZWZhdWx0KCk7YXouc3RvcFByb3BhZ2F0aW9uKCk7Ry5hY3RpdmUudmFsKCJhaGV4IixlKHRoaXMpLmF0dHIoInRpdGxlIil8fG51bGwsYXoudGFyZ2V0KTtyZXR1cm4gZmFsc2V9LGFlPWUuaXNGdW5jdGlvbihoWzFdKSYmaFsxXXx8bnVsbCxhZD1lLmlzRnVuY3Rpb24oaFsyXSkmJmhbMl18fG51bGwsYXg9ZS5pc0Z1bmN0aW9uKGhbM10pJiZoWzNdfHxudWxsLFY9ZnVuY3Rpb24oKXtHLmN1cnJlbnQudmFsKCJhaGV4IixHLmFjdGl2ZS52YWwoImFoZXgiKSk7dmFyIGF6PWZ1bmN0aW9uKCl7aWYoIWF2LndpbmRvdy5leHBhbmRhYmxlfHxlLnN1cHBvcnQuYm94TW9kZWwpe3JldHVybn12YXIgYUE9Ui5maW5kKCJ0YWJsZTpmaXJzdCIpO1IuYmVmb3JlKCI8aWZyYW1lLz4iKTtSLnByZXYoKS5jc3Moe3dpZHRoOmFBLndpZHRoKCksaGVpZ2h0OlIuaGVpZ2h0KCksb3BhY2l0eTowLHBvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDpSLmNzcygibGVmdCIpLHRvcDpSLmNzcygidG9wIil9KX07aWYoYXYud2luZG93LmV4cGFuZGFibGUpe2UoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oImRpdi5qUGlja2VyLkNvbnRhaW5lciIpLmNzcyh7ekluZGV4OjEwfSk7Ui5jc3Moe3pJbmRleDoyMH0pfXN3aXRjaChhdi53aW5kb3cuZWZmZWN0cy50eXBlKXtjYXNlImZhZGUiOlIuZmFkZUluKGF2LndpbmRvdy5lZmZlY3RzLnNwZWVkLnNob3csYXopO2JyZWFrO2Nhc2Uic2xpZGUiOlIuc2xpZGVEb3duKGF2LndpbmRvdy5lZmZlY3RzLnNwZWVkLnNob3csYXopO2JyZWFrO2Nhc2Uic2hvdyI6ZGVmYXVsdDpSLnNob3coYXYud2luZG93LmVmZmVjdHMuc3BlZWQuc2hvdyxheik7YnJlYWt9fSxhbz1mdW5jdGlvbigpe3ZhciBhej1mdW5jdGlvbigpe2lmKGF2LndpbmRvdy5leHBhbmRhYmxlKXtSLmNzcyh7ekluZGV4OjEwfSl9aWYoIWF2LndpbmRvdy5leHBhbmRhYmxlfHxlLnN1cHBvcnQuYm94TW9kZWwpe3JldHVybn1SLnByZXYoKS5yZW1vdmUoKX07c3dpdGNoKGF2LndpbmRvdy5lZmZlY3RzLnR5cGUpe2Nhc2UiZmFkZSI6Ui5mYWRlT3V0KGF2LndpbmRvdy5lZmZlY3RzLnNwZWVkLmhpZGUsYXopO2JyZWFrO2Nhc2Uic2xpZGUiOlIuc2xpZGVVcChhdi53aW5kb3cuZWZmZWN0cy5zcGVlZC5oaWRlLGF6KTticmVhaztjYXNlInNob3ciOmRlZmF1bHQ6Ui5oaWRlKGF2LndpbmRvdy5lZmZlY3RzLnNwZWVkLmhpZGUsYXopO2JyZWFrfX0sbz1mdW5jdGlvbigpe3ZhciBhRz1hdi53aW5kb3csYXo9YUcuZXhwYW5kYWJsZT9lKHcpLm5leHQoKS5maW5kKCIuQ29udGFpbmVyOmZpcnN0Iik6bnVsbDtSPWFHLmV4cGFuZGFibGU/ZSgiPGRpdi8+Iik6ZSh3KTtSLmFkZENsYXNzKCJqUGlja2VyIENvbnRhaW5lciIpO2lmKGFHLmV4cGFuZGFibGUpe1IuaGlkZSgpfVIuZ2V0KDApLm9uc2VsZWN0c3RhcnQ9ZnVuY3Rpb24oYU4pe2lmKGFOLnRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09ImlucHV0Iil7cmV0dXJuIGZhbHNlfX07dmFyIGFKPUcuYWN0aXZlLnZhbCgiYWxsIik7aWYoYUcuYWxwaGFQcmVjaXNpb248MCl7YUcuYWxwaGFQcmVjaXNpb249MH1lbHNle2lmKGFHLmFscGhhUHJlY2lzaW9uPjIpe2FHLmFscGhhUHJlY2lzaW9uPTJ9fXZhciBhSz0nPHRhYmxlIGNsYXNzPSJqUGlja2VyIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPjx0Ym9keT4nKyhhRy5leHBhbmRhYmxlPyc8dHI+PHRkIGNsYXNzPSJNb3ZlIiBjb2xzcGFuPSI1Ij4mbmJzcDs8L3RkPjwvdHI+JzoiIikrJzx0cj48dGQgcm93c3Bhbj0iOSI+PGgyIGNsYXNzPSJUaXRsZSI+JysoYUcudGl0bGV8fGFhLnRleHQudGl0bGUpKyc8L2gyPjxkaXYgY2xhc3M9Ik1hcCI+PHNwYW4gY2xhc3M9Ik1hcDEiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0iTWFwMiI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJNYXAzIj4mbmJzcDs8L3NwYW4+PGltZyBzcmM9Iicrbi5jbGllbnRQYXRoK24uY29sb3JNYXAuYXJyb3cuZmlsZSsnIiBjbGFzcz0iQXJyb3ciLz48L2Rpdj48L3RkPjx0ZCByb3dzcGFuPSI5Ij48ZGl2IGNsYXNzPSJCYXIiPjxzcGFuIGNsYXNzPSJNYXAxIj4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9Ik1hcDIiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0iTWFwMyI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJNYXA0Ij4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9Ik1hcDUiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0iTWFwNiI+Jm5ic3A7PC9zcGFuPjxpbWcgc3JjPSInK24uY2xpZW50UGF0aCtuLmNvbG9yQmFyLmFycm93LmZpbGUrJyIgY2xhc3M9IkFycm93Ii8+PC9kaXY+PC90ZD48dGQgY29sc3Bhbj0iMiIgY2xhc3M9IlByZXZpZXciPicrYWEudGV4dC5uZXdDb2xvcisnPGRpdj48c3BhbiBjbGFzcz0iQWN0aXZlIiB0aXRsZT0iJythYS50b29sdGlwcy5jb2xvcnMubmV3Q29sb3IrJyI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJDdXJyZW50IiB0aXRsZT0iJythYS50b29sdGlwcy5jb2xvcnMuY3VycmVudENvbG9yKyciPiZuYnNwOzwvc3Bhbj48L2Rpdj4nK2FhLnRleHQuY3VycmVudENvbG9yKyc8L3RkPjx0ZCByb3dzcGFuPSI5IiBjbGFzcz0iQnV0dG9uIj48aW5wdXQgdHlwZT0iYnV0dG9uIiBjbGFzcz0iT2siIHZhbHVlPSInK2FhLnRleHQub2srJyIgdGl0bGU9IicrYWEudG9vbHRpcHMuYnV0dG9ucy5vaysnIi8+PGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IkNhbmNlbCIgdmFsdWU9IicrYWEudGV4dC5jYW5jZWwrJyIgdGl0bGU9IicrYWEudG9vbHRpcHMuYnV0dG9ucy5jYW5jZWwrJyIvPjxoci8+PGRpdiBjbGFzcz0iR3JpZCI+Jm5ic3A7PC9kaXY+PC90ZD48L3RyPjx0ciBjbGFzcz0iSHVlIj48dGQgY2xhc3M9IlJhZGlvIj48bGFiZWwgdGl0bGU9IicrYWEudG9vbHRpcHMuaHVlLnJhZGlvKyciPjxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9ImgiJysoYXYuY29sb3IubW9kZT09ImgiPycgY2hlY2tlZD0iY2hlY2tlZCInOiIiKSsnLz5IOjwvbGFiZWw+PC90ZD48dGQgY2xhc3M9IlRleHQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHZhbHVlPSInKyhhSiE9bnVsbD9hSi5oOiIiKSsnIiB0aXRsZT0iJythYS50b29sdGlwcy5odWUudGV4dGJveCsnIi8+Jm5ic3A7JmRlZzs8L3RkPjwvdHI+PHRyIGNsYXNzPSJTYXR1cmF0aW9uIj48dGQgY2xhc3M9IlJhZGlvIj48bGFiZWwgdGl0bGU9IicrYWEudG9vbHRpcHMuc2F0dXJhdGlvbi5yYWRpbysnIj48aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJzIicrKGF2LmNvbG9yLm1vZGU9PSJzIj8nIGNoZWNrZWQ9ImNoZWNrZWQiJzoiIikrJy8+Uzo8L2xhYmVsPjwvdGQ+PHRkIGNsYXNzPSJUZXh0Ij48aW5wdXQgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIzIiB2YWx1ZT0iJysoYUohPW51bGw/YUouczoiIikrJyIgdGl0bGU9IicrYWEudG9vbHRpcHMuc2F0dXJhdGlvbi50ZXh0Ym94KyciLz4mbmJzcDslPC90ZD48L3RyPjx0ciBjbGFzcz0iVmFsdWUiPjx0ZCBjbGFzcz0iUmFkaW8iPjxsYWJlbCB0aXRsZT0iJythYS50b29sdGlwcy52YWx1ZS5yYWRpbysnIj48aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJ2IicrKGF2LmNvbG9yLm1vZGU9PSJ2Ij8nIGNoZWNrZWQ9ImNoZWNrZWQiJzoiIikrJy8+Vjo8L2xhYmVsPjxici8+PGJyLz48L3RkPjx0ZCBjbGFzcz0iVGV4dCI+PGlucHV0IHR5cGU9InRleHQiIG1heGxlbmd0aD0iMyIgdmFsdWU9IicrKGFKIT1udWxsP2FKLnY6IiIpKyciIHRpdGxlPSInK2FhLnRvb2x0aXBzLnZhbHVlLnRleHRib3grJyIvPiZuYnNwOyU8YnIvPjxici8+PC90ZD48L3RyPjx0ciBjbGFzcz0iUmVkIj48dGQgY2xhc3M9IlJhZGlvIj48bGFiZWwgdGl0bGU9IicrYWEudG9vbHRpcHMucmVkLnJhZGlvKyciPjxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9InIiJysoYXYuY29sb3IubW9kZT09InIiPycgY2hlY2tlZD0iY2hlY2tlZCInOiIiKSsnLz5SOjwvbGFiZWw+PC90ZD48dGQgY2xhc3M9IlRleHQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjMiIHZhbHVlPSInKyhhSiE9bnVsbD9hSi5yOiIiKSsnIiB0aXRsZT0iJythYS50b29sdGlwcy5yZWQudGV4dGJveCsnIi8+PC90ZD48L3RyPjx0ciBjbGFzcz0iR3JlZW4iPjx0ZCBjbGFzcz0iUmFkaW8iPjxsYWJlbCB0aXRsZT0iJythYS50b29sdGlwcy5ncmVlbi5yYWRpbysnIj48aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJnIicrKGF2LmNvbG9yLm1vZGU9PSJnIj8nIGNoZWNrZWQ9ImNoZWNrZWQiJzoiIikrJy8+Rzo8L2xhYmVsPjwvdGQ+PHRkIGNsYXNzPSJUZXh0Ij48aW5wdXQgdHlwZT0idGV4dCIgbWF4bGVuZ3RoPSIzIiB2YWx1ZT0iJysoYUohPW51bGw/YUouZzoiIikrJyIgdGl0bGU9IicrYWEudG9vbHRpcHMuZ3JlZW4udGV4dGJveCsnIi8+PC90ZD48L3RyPjx0ciBjbGFzcz0iQmx1ZSI+PHRkIGNsYXNzPSJSYWRpbyI+PGxhYmVsIHRpdGxlPSInK2FhLnRvb2x0aXBzLmJsdWUucmFkaW8rJyI+PGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iYiInKyhhdi5jb2xvci5tb2RlPT0iYiI/JyBjaGVja2VkPSJjaGVja2VkIic6IiIpKycvPkI6PC9sYWJlbD48L3RkPjx0ZCBjbGFzcz0iVGV4dCI+PGlucHV0IHR5cGU9InRleHQiIG1heGxlbmd0aD0iMyIgdmFsdWU9IicrKGFKIT1udWxsP2FKLmI6IiIpKyciIHRpdGxlPSInK2FhLnRvb2x0aXBzLmJsdWUudGV4dGJveCsnIi8+PC90ZD48L3RyPjx0ciBjbGFzcz0iQWxwaGEiPjx0ZCBjbGFzcz0iUmFkaW8iPicrKGFHLmFscGhhU3VwcG9ydD8nPGxhYmVsIHRpdGxlPSInK2FhLnRvb2x0aXBzLmFscGhhLnJhZGlvKyciPjxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9ImEiJysoYXYuY29sb3IubW9kZT09ImEiPycgY2hlY2tlZD0iY2hlY2tlZCInOiIiKSsiLz5BOjwvbGFiZWw+IjoiJm5ic3A7IikrJzwvdGQ+PHRkIGNsYXNzPSJUZXh0Ij4nKyhhRy5hbHBoYVN1cHBvcnQ/JzxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IicrKDMrYUcuYWxwaGFQcmVjaXNpb24pKyciIHZhbHVlPSInKyhhSiE9bnVsbD9NYXRoLnByZWNpc2lvbigoYUouYSoxMDApLzI1NSxhRy5hbHBoYVByZWNpc2lvbik6IiIpKyciIHRpdGxlPSInK2FhLnRvb2x0aXBzLmFscGhhLnRleHRib3grJyIvPiZuYnNwOyUnOiImbmJzcDsiKSsnPC90ZD48L3RyPjx0ciBjbGFzcz0iSGV4Ij48dGQgY29sc3Bhbj0iMiIgY2xhc3M9IlRleHQiPjxsYWJlbCB0aXRsZT0iJythYS50b29sdGlwcy5oZXgudGV4dGJveCsnIj4jOjxpbnB1dCB0eXBlPSJ0ZXh0IiBtYXhsZW5ndGg9IjYiIGNsYXNzPSJIZXgiIHZhbHVlPSInKyhhSiE9bnVsbD9hSi5oZXg6IiIpKyciLz48L2xhYmVsPicrKGFHLmFscGhhU3VwcG9ydD8nPGlucHV0IHR5cGU9InRleHQiIG1heGxlbmd0aD0iMiIgY2xhc3M9IkFIZXgiIHZhbHVlPSInKyhhSiE9bnVsbD9hSi5haGV4LnN1YnN0cmluZyg2KToiIikrJyIgdGl0bGU9IicrYWEudG9vbHRpcHMuaGV4LmFscGhhKyciLz48L3RkPic6IiZuYnNwOyIpKyI8L3RyPjwvdGJvZHk+PC90YWJsZT4iO2lmKGFHLmV4cGFuZGFibGUpe1IuaHRtbChhSyk7aWYoZShkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigiZGl2LmpQaWNrZXIuQ29udGFpbmVyIikubGVuZ3RoPT0wKXtlKGRvY3VtZW50LmJvZHkpLnByZXBlbmQoUil9ZWxzZXtlKGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCJkaXYualBpY2tlci5Db250YWluZXI6bGFzdCIpLmFmdGVyKFIpfVIubW91c2Vkb3duKGZ1bmN0aW9uKCl7ZShkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigiZGl2LmpQaWNrZXIuQ29udGFpbmVyIikuY3NzKHt6SW5kZXg6MTB9KTtSLmNzcyh7ekluZGV4OjIwfSl9KTtSLmNzcyh7bGVmdDphRy5wb3NpdGlvbi54PT0ibGVmdCI/KGF6Lm9mZnNldCgpLmxlZnQtNTMwLShhRy5wb3NpdGlvbi55PT0iY2VudGVyIj8yNTowKSkrInB4IjphRy5wb3NpdGlvbi54PT0iY2VudGVyIj8oYXoub2Zmc2V0KCkubGVmdC0yNjApKyJweCI6YUcucG9zaXRpb24ueD09InJpZ2h0Ij8oYXoub2Zmc2V0KCkubGVmdC0xMCsoYUcucG9zaXRpb24ueT09ImNlbnRlciI/MjU6MCkpKyJweCI6YUcucG9zaXRpb24ueD09InNjcmVlbkNlbnRlciI/KChlKGRvY3VtZW50KS53aWR0aCgpPj4xKS0yNjApKyJweCI6KGF6Lm9mZnNldCgpLmxlZnQrcGFyc2VJbnQoYUcucG9zaXRpb24ueCkpKyJweCIscG9zaXRpb246ImFic29sdXRlIix0b3A6YUcucG9zaXRpb24ueT09InRvcCI/KGF6Lm9mZnNldCgpLnRvcC0zMTIpKyJweCI6YUcucG9zaXRpb24ueT09ImNlbnRlciI/KGF6Lm9mZnNldCgpLnRvcC0xNTYpKyJweCI6YUcucG9zaXRpb24ueT09ImJvdHRvbSI/KGF6Lm9mZnNldCgpLnRvcCsyNSkrInB4IjooYXoub2Zmc2V0KCkudG9wK3BhcnNlSW50KGFHLnBvc2l0aW9uLnkpKSsicHgifSl9ZWxzZXtSPWUodyk7Ui5odG1sKGFLKX12YXIgYUQ9Ui5maW5kKCJ0Ym9keTpmaXJzdCIpO2w9YUQuZmluZCgiZGl2Lk1hcDpmaXJzdCIpO3M9YUQuZmluZCgiZGl2LkJhcjpmaXJzdCIpO3ZhciBhTD1sLmZpbmQoInNwYW4iKSxhST1zLmZpbmQoInNwYW4iKTthdT1hTC5maWx0ZXIoIi5NYXAxOmZpcnN0Iik7YXQ9YUwuZmlsdGVyKCIuTWFwMjpmaXJzdCIpO2FyPWFMLmZpbHRlcigiLk1hcDM6Zmlyc3QiKTtQPWFJLmZpbHRlcigiLk1hcDE6Zmlyc3QiKTtPPWFJLmZpbHRlcigiLk1hcDI6Zmlyc3QiKTtOPWFJLmZpbHRlcigiLk1hcDM6Zmlyc3QiKTtNPWFJLmZpbHRlcigiLk1hcDQ6Zmlyc3QiKTtMPWFJLmZpbHRlcigiLk1hcDU6Zmlyc3QiKTtLPWFJLmZpbHRlcigiLk1hcDY6Zmlyc3QiKTtEPW5ldyBkKGwse21hcDp7d2lkdGg6bi5jb2xvck1hcC53aWR0aCxoZWlnaHQ6bi5jb2xvck1hcC5oZWlnaHR9LGFycm93OntpbWFnZTpuLmNsaWVudFBhdGgrbi5jb2xvck1hcC5hcnJvdy5maWxlLHdpZHRoOm4uY29sb3JNYXAuYXJyb3cud2lkdGgsaGVpZ2h0Om4uY29sb3JNYXAuYXJyb3cuaGVpZ2h0fX0pO0QuYmluZCh6KTtVPW5ldyBkKHMse21hcDp7d2lkdGg6bi5jb2xvckJhci53aWR0aCxoZWlnaHQ6bi5jb2xvckJhci5oZWlnaHR9LGFycm93OntpbWFnZTpuLmNsaWVudFBhdGgrbi5jb2xvckJhci5hcnJvdy5maWxlLHdpZHRoOm4uY29sb3JCYXIuYXJyb3cud2lkdGgsaGVpZ2h0Om4uY29sb3JCYXIuYXJyb3cuaGVpZ2h0fX0pO1UuYmluZChhYyk7YXc9bmV3IGIoYUQsRy5hY3RpdmUsYUcuZXhwYW5kYWJsZSYmYUcuYmluZFRvSW5wdXQ/YUcuaW5wdXQ6bnVsbCxhRy5hbHBoYVByZWNpc2lvbik7dmFyIGFCPWFKIT1udWxsP2FKLmhleDpudWxsLGFIPWFELmZpbmQoIi5QcmV2aWV3IiksYUY9YUQuZmluZCgiLkJ1dHRvbiIpO0U9YUguZmluZCgiLkFjdGl2ZTpmaXJzdCIpLmNzcyh7YmFja2dyb3VuZENvbG9yOmFCJiYiIyIrYUJ8fCJ0cmFuc3BhcmVudCJ9KTthbj1hSC5maW5kKCIuQ3VycmVudDpmaXJzdCIpLmNzcyh7YmFja2dyb3VuZENvbG9yOmFCJiYiIyIrYUJ8fCJ0cmFuc3BhcmVudCJ9KS5iaW5kKCJjbGljayIsWik7WS5jYWxsKHcsYW4sTWF0aC5wcmVjaXNpb24oRy5jdXJyZW50LnZhbCgiYSIpKjEwMCkvMjU1LDQpO2FoPWFGLmZpbmQoIi5PazpmaXJzdCIpLmJpbmQoImNsaWNrIixtKTtYPWFGLmZpbmQoIi5DYW5jZWw6Zmlyc3QiKS5iaW5kKCJjbGljayIscSk7YWI9YUYuZmluZCgiLkdyaWQ6Zmlyc3QiKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5jYWxsKHcsYXUsbi5jbGllbnRQYXRoKyJNYXBzLnBuZyIpO3QuY2FsbCh3LGF0LG4uY2xpZW50UGF0aCsiTWFwcy5wbmciKTt0LmNhbGwodyxhcixuLmNsaWVudFBhdGgrIm1hcC1vcGFjaXR5LnBuZyIpO3QuY2FsbCh3LFAsbi5jbGllbnRQYXRoKyJCYXJzLnBuZyIpO3QuY2FsbCh3LE8sbi5jbGllbnRQYXRoKyJCYXJzLnBuZyIpO3QuY2FsbCh3LE4sbi5jbGllbnRQYXRoKyJCYXJzLnBuZyIpO3QuY2FsbCh3LE0sbi5jbGllbnRQYXRoKyJCYXJzLnBuZyIpO3QuY2FsbCh3LEwsbi5jbGllbnRQYXRoKyJiYXItb3BhY2l0eS5wbmciKTt0LmNhbGwodyxLLG4uY2xpZW50UGF0aCsiQWxwaGFCYXIucG5nIik7dC5jYWxsKHcsYUguZmluZCgiZGl2OmZpcnN0Iiksbi5jbGllbnRQYXRoKyJwcmV2aWV3LW9wYWNpdHkucG5nIil9LDApO2FELmZpbmQoInRkLlJhZGlvIGlucHV0IikuYmluZCgiY2xpY2siLEEpO2lmKEcucXVpY2tMaXN0JiZHLnF1aWNrTGlzdC5sZW5ndGg+MCl7dmFyIGFFPSIiO2ZvcihpPTA7aTxHLnF1aWNrTGlzdC5sZW5ndGg7aSsrKXtpZigodHlwZW9mKEcucXVpY2tMaXN0W2ldKSkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpPT0ic3RyaW5nIil7Ry5xdWlja0xpc3RbaV09bmV3IGYoe2hleDpHLnF1aWNrTGlzdFtpXX0pfXZhciBhQz1HLnF1aWNrTGlzdFtpXS52YWwoImEiKTt2YXIgYU09Ry5xdWlja0xpc3RbaV0udmFsKCJhaGV4Iik7aWYoIWFHLmFscGhhU3VwcG9ydCYmYU0pe2FNPWFNLnN1YnN0cmluZygwLDYpKyJmZiJ9dmFyIGFBPUcucXVpY2tMaXN0W2ldLnZhbCgiaGV4Iik7YUUrPSc8c3BhbiBjbGFzcz0iUXVpY2tDb2xvciInKyhhTSYmJyB0aXRsZT0iIycrYU0rJyInfHwiIikrJyBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjonKyhhQSYmIiMiK2FBfHwiIikrIjsiKyhhQT8iIjoiYmFja2dyb3VuZC1pbWFnZTp1cmwoIituLmNsaWVudFBhdGgrIk5vQ29sb3IucG5nKSIpKyhhRy5hbHBoYVN1cHBvcnQmJmFDJiZhQzwyNTU/IjtvcGFjaXR5OiIrTWF0aC5wcmVjaXNpb24oYUMvMjU1LDQpKyI7ZmlsdGVyOkFscGhhKG9wYWNpdHk9IitNYXRoLnByZWNpc2lvbihhQy8yLjU1LDQpKyIpIjoiIikrJyI+Jm5ic3A7PC9zcGFuPid9dC5jYWxsKHcsYWIsbi5jbGllbnRQYXRoKyJiYXItb3BhY2l0eS5wbmciKTthYi5odG1sKGFFKTthYi5maW5kKCIuUXVpY2tDb2xvciIpLmNsaWNrKEYpfWFnLmNhbGwodyxhdi5jb2xvci5tb2RlKTtHLmFjdGl2ZS5iaW5kKGFqKTtlLmlzRnVuY3Rpb24oYWQpJiZHLmFjdGl2ZS5iaW5kKGFkKTtHLmN1cnJlbnQuYmluZChhcCk7aWYoYUcuZXhwYW5kYWJsZSl7dy5pY29uPWF6LnBhcmVudHMoIi5JY29uOmZpcnN0Iik7YXE9dy5pY29uLmZpbmQoIi5Db2xvcjpmaXJzdCIpLmNzcyh7YmFja2dyb3VuZENvbG9yOmFCJiYiIyIrYUJ8fCJ0cmFuc3BhcmVudCJ9KTtyPXcuaWNvbi5maW5kKCIuQWxwaGE6Zmlyc3QiKTt0LmNhbGwodyxyLG4uY2xpZW50UGF0aCsiYmFyLW9wYWNpdHkucG5nIik7WS5jYWxsKHcscixNYXRoLnByZWNpc2lvbigoKDI1NS0oYUohPW51bGw/YUouYTowKSkqMTAwKS8yNTUsNCkpO0M9dy5pY29uLmZpbmQoIi5JbWFnZTpmaXJzdCIpLmNzcyh7YmFja2dyb3VuZEltYWdlOiJ1cmwoJyIrbi5jbGllbnRQYXRoK24ucGlja2VyLmZpbGUrIicpIn0pLmJpbmQoImNsaWNrIixhZik7aWYoYUcuYmluZFRvSW5wdXQmJmFHLnVwZGF0ZUlucHV0Q29sb3Ipe2FHLmlucHV0LmNzcyh7YmFja2dyb3VuZENvbG9yOmFCJiYiIyIrYUJ8fCJ0cmFuc3BhcmVudCIsY29sb3I6YUo9PW51bGx8fGFKLnY+NzU/IiMwMDAwMDAiOiIjZmZmZmZmIn0pfXU9YUQuZmluZCgiLk1vdmU6Zmlyc3QiKS5iaW5kKCJtb3VzZWRvd24iLFMpO0cuYWN0aXZlLmJpbmQoSCl9ZWxzZXtWLmNhbGwodyl9fSxhaz1mdW5jdGlvbigpe1IuZmluZCgidGQuUmFkaW8gaW5wdXQiKS51bmJpbmQoImNsaWNrIixBKTthbi51bmJpbmQoImNsaWNrIixaKTtYLnVuYmluZCgiY2xpY2siLHEpO2FoLnVuYmluZCgiY2xpY2siLG0pO2lmKGF2LndpbmRvdy5leHBhbmRhYmxlKXtDLnVuYmluZCgiY2xpY2siLGFmKTt1LnVuYmluZCgibW91c2Vkb3duIixTKTt3Lmljb249bnVsbH1SLmZpbmQoIi5RdWlja0NvbG9yIikudW5iaW5kKCJjbGljayIsRik7bD1udWxsO3M9bnVsbDthdT1udWxsO2F0PW51bGw7YXI9bnVsbDtQPW51bGw7Tz1udWxsO049bnVsbDtNPW51bGw7TD1udWxsO0s9bnVsbDtELmRlc3Ryb3koKTtEPW51bGw7VS5kZXN0cm95KCk7VT1udWxsO2F3LmRlc3Ryb3koKTthdz1udWxsO0U9bnVsbDthbj1udWxsO2FoPW51bGw7WD1udWxsO2FiPW51bGw7YWU9bnVsbDtheD1udWxsO2FkPW51bGw7Ui5odG1sKCIiKTtmb3IoaT0wO2k8Yy5sZW5ndGg7aSsrKXtpZihjW2ldPT13KXtjLnNwbGljZShpLDEpfX19LG49YXYuaW1hZ2VzLGFhPWF2LmxvY2FsaXphdGlvbixHPXthY3RpdmU6KHR5cGVvZihhdi5jb2xvci5hY3RpdmUpKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk9PSJzdHJpbmciP25ldyBmKHthaGV4OiFhdi53aW5kb3cuYWxwaGFTdXBwb3J0JiZhdi5jb2xvci5hY3RpdmU/YXYuY29sb3IuYWN0aXZlLnN1YnN0cmluZygwLDYpKyJmZiI6YXYuY29sb3IuYWN0aXZlfSk6bmV3IGYoe2FoZXg6IWF2LndpbmRvdy5hbHBoYVN1cHBvcnQmJmF2LmNvbG9yLmFjdGl2ZS52YWwoImFoZXgiKT9hdi5jb2xvci5hY3RpdmUudmFsKCJhaGV4Iikuc3Vic3RyaW5nKDAsNikrImZmIjphdi5jb2xvci5hY3RpdmUudmFsKCJhaGV4Iil9KSxjdXJyZW50Oih0eXBlb2YoYXYuY29sb3IuYWN0aXZlKSkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpPT0ic3RyaW5nIj9uZXcgZih7YWhleDohYXYud2luZG93LmFscGhhU3VwcG9ydCYmYXYuY29sb3IuYWN0aXZlP2F2LmNvbG9yLmFjdGl2ZS5zdWJzdHJpbmcoMCw2KSsiZmYiOmF2LmNvbG9yLmFjdGl2ZX0pOm5ldyBmKHthaGV4OiFhdi53aW5kb3cuYWxwaGFTdXBwb3J0JiZhdi5jb2xvci5hY3RpdmUudmFsKCJhaGV4Iik/YXYuY29sb3IuYWN0aXZlLnZhbCgiYWhleCIpLnN1YnN0cmluZygwLDYpKyJmZiI6YXYuY29sb3IuYWN0aXZlLnZhbCgiYWhleCIpfSkscXVpY2tMaXN0OmF2LmNvbG9yLnF1aWNrTGlzdH07ZS5leHRlbmQodHJ1ZSx3LHtjb21taXRDYWxsYmFjazphZSxsaXZlQ2FsbGJhY2s6YWQsY2FuY2VsQ2FsbGJhY2s6YXgsY29sb3I6RyxzaG93OlYsaGlkZTphbyxkZXN0cm95OmFrfSk7Yy5wdXNoKHcpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtvLmNhbGwodyl9LDApfSl9O2UuZm4ualBpY2tlci5kZWZhdWx0cz17d2luZG93Ont0aXRsZTpudWxsLGVmZmVjdHM6e3R5cGU6InNsaWRlIixzcGVlZDp7c2hvdzoic2xvdyIsaGlkZToiZmFzdCJ9fSxwb3NpdGlvbjp7eDoic2NyZWVuQ2VudGVyIix5OiJ0b3AifSxleHBhbmRhYmxlOmZhbHNlLGxpdmVVcGRhdGU6dHJ1ZSxhbHBoYVN1cHBvcnQ6ZmFsc2UsYWxwaGFQcmVjaXNpb246MCx1cGRhdGVJbnB1dENvbG9yOnRydWV9LGNvbG9yOnttb2RlOiJoIixhY3RpdmU6bmV3IGYoe2FoZXg6IiNmZmNjMDBmZiJ9KSxxdWlja0xpc3Q6W25ldyBmKHtoOjM2MCxzOjMzLHY6MTAwfSksbmV3IGYoe2g6MzYwLHM6NjYsdjoxMDB9KSxuZXcgZih7aDozNjAsczoxMDAsdjoxMDB9KSxuZXcgZih7aDozNjAsczoxMDAsdjo3NX0pLG5ldyBmKHtoOjM2MCxzOjEwMCx2OjUwfSksbmV3IGYoe2g6MTgwLHM6MCx2OjEwMH0pLG5ldyBmKHtoOjMwLHM6MzMsdjoxMDB9KSxuZXcgZih7aDozMCxzOjY2LHY6MTAwfSksbmV3IGYoe2g6MzAsczoxMDAsdjoxMDB9KSxuZXcgZih7aDozMCxzOjEwMCx2Ojc1fSksbmV3IGYoe2g6MzAsczoxMDAsdjo1MH0pLG5ldyBmKHtoOjE4MCxzOjAsdjo5MH0pLG5ldyBmKHtoOjYwLHM6MzMsdjoxMDB9KSxuZXcgZih7aDo2MCxzOjY2LHY6MTAwfSksbmV3IGYoe2g6NjAsczoxMDAsdjoxMDB9KSxuZXcgZih7aDo2MCxzOjEwMCx2Ojc1fSksbmV3IGYoe2g6NjAsczoxMDAsdjo1MH0pLG5ldyBmKHtoOjE4MCxzOjAsdjo4MH0pLG5ldyBmKHtoOjkwLHM6MzMsdjoxMDB9KSxuZXcgZih7aDo5MCxzOjY2LHY6MTAwfSksbmV3IGYoe2g6OTAsczoxMDAsdjoxMDB9KSxuZXcgZih7aDo5MCxzOjEwMCx2Ojc1fSksbmV3IGYoe2g6OTAsczoxMDAsdjo1MH0pLG5ldyBmKHtoOjE4MCxzOjAsdjo3MH0pLG5ldyBmKHtoOjEyMCxzOjMzLHY6MTAwfSksbmV3IGYoe2g6MTIwLHM6NjYsdjoxMDB9KSxuZXcgZih7aDoxMjAsczoxMDAsdjoxMDB9KSxuZXcgZih7aDoxMjAsczoxMDAsdjo3NX0pLG5ldyBmKHtoOjEyMCxzOjEwMCx2OjUwfSksbmV3IGYoe2g6MTgwLHM6MCx2OjYwfSksbmV3IGYoe2g6MTUwLHM6MzMsdjoxMDB9KSxuZXcgZih7aDoxNTAsczo2Nix2OjEwMH0pLG5ldyBmKHtoOjE1MCxzOjEwMCx2OjEwMH0pLG5ldyBmKHtoOjE1MCxzOjEwMCx2Ojc1fSksbmV3IGYoe2g6MTUwLHM6MTAwLHY6NTB9KSxuZXcgZih7aDoxODAsczowLHY6NTB9KSxuZXcgZih7aDoxODAsczozMyx2OjEwMH0pLG5ldyBmKHtoOjE4MCxzOjY2LHY6MTAwfSksbmV3IGYoe2g6MTgwLHM6MTAwLHY6MTAwfSksbmV3IGYoe2g6MTgwLHM6MTAwLHY6NzV9KSxuZXcgZih7aDoxODAsczoxMDAsdjo1MH0pLG5ldyBmKHtoOjE4MCxzOjAsdjo0MH0pLG5ldyBmKHtoOjIxMCxzOjMzLHY6MTAwfSksbmV3IGYoe2g6MjEwLHM6NjYsdjoxMDB9KSxuZXcgZih7aDoyMTAsczoxMDAsdjoxMDB9KSxuZXcgZih7aDoyMTAsczoxMDAsdjo3NX0pLG5ldyBmKHtoOjIxMCxzOjEwMCx2OjUwfSksbmV3IGYoe2g6MTgwLHM6MCx2OjMwfSksbmV3IGYoe2g6MjQwLHM6MzMsdjoxMDB9KSxuZXcgZih7aDoyNDAsczo2Nix2OjEwMH0pLG5ldyBmKHtoOjI0MCxzOjEwMCx2OjEwMH0pLG5ldyBmKHtoOjI0MCxzOjEwMCx2Ojc1fSksbmV3IGYoe2g6MjQwLHM6MTAwLHY6NTB9KSxuZXcgZih7aDoxODAsczowLHY6MjB9KSxuZXcgZih7aDoyNzAsczozMyx2OjEwMH0pLG5ldyBmKHtoOjI3MCxzOjY2LHY6MTAwfSksbmV3IGYoe2g6MjcwLHM6MTAwLHY6MTAwfSksbmV3IGYoe2g6MjcwLHM6MTAwLHY6NzV9KSxuZXcgZih7aDoyNzAsczoxMDAsdjo1MH0pLG5ldyBmKHtoOjE4MCxzOjAsdjoxMH0pLG5ldyBmKHtoOjMwMCxzOjMzLHY6MTAwfSksbmV3IGYoe2g6MzAwLHM6NjYsdjoxMDB9KSxuZXcgZih7aDozMDAsczoxMDAsdjoxMDB9KSxuZXcgZih7aDozMDAsczoxMDAsdjo3NX0pLG5ldyBmKHtoOjMwMCxzOjEwMCx2OjUwfSksbmV3IGYoe2g6MTgwLHM6MCx2OjB9KSxuZXcgZih7aDozMzAsczozMyx2OjEwMH0pLG5ldyBmKHtoOjMzMCxzOjY2LHY6MTAwfSksbmV3IGYoe2g6MzMwLHM6MTAwLHY6MTAwfSksbmV3IGYoe2g6MzMwLHM6MTAwLHY6NzV9KSxuZXcgZih7aDozMzAsczoxMDAsdjo1MH0pLG5ldyBmKCldfSxpbWFnZXM6e2NsaWVudFBhdGg6Ii9qUGlja2VyL2ltYWdlcy8iLGNvbG9yTWFwOnt3aWR0aDoyNTYsaGVpZ2h0OjI1NixhcnJvdzp7ZmlsZToibWFwcG9pbnQuZ2lmIix3aWR0aDoxNSxoZWlnaHQ6MTV9fSxjb2xvckJhcjp7d2lkdGg6MjAsaGVpZ2h0OjI1NixhcnJvdzp7ZmlsZToicmFuZ2VhcnJvd3MuZ2lmIix3aWR0aDoyMCxoZWlnaHQ6N319LHBpY2tlcjp7ZmlsZToicGlja2VyLmdpZiIsd2lkdGg6MjUsaGVpZ2h0OjI0fX0sbG9jYWxpemF0aW9uOnt0ZXh0Ont0aXRsZToiRHJhZyBNYXJrZXJzIFRvIFBpY2sgQSBDb2xvciIsbmV3Q29sb3I6Im5ldyIsY3VycmVudENvbG9yOiJjdXJyZW50IixvazoiT0siLGNhbmNlbDoiQ2FuY2VsIn0sdG9vbHRpcHM6e2NvbG9yczp7bmV3Q29sb3I6Ik5ldyBDb2xvciAtIFByZXNzICZsZHF1bztPSyZyZHF1bzsgVG8gQ29tbWl0IixjdXJyZW50Q29sb3I6IkNsaWNrIFRvIFJldmVydCBUbyBPcmlnaW5hbCBDb2xvciJ9LGJ1dHRvbnM6e29rOiJDb21taXQgVG8gVGhpcyBDb2xvciBTZWxlY3Rpb24iLGNhbmNlbDoiQ2FuY2VsIEFuZCBSZXZlcnQgVG8gT3JpZ2luYWwgQ29sb3IifSxodWU6e3JhZGlvOiJTZXQgVG8gJmxkcXVvO0h1ZSZyZHF1bzsgQ29sb3IgTW9kZSIsdGV4dGJveDoiRW50ZXIgQSAmbGRxdW87SHVlJnJkcXVvOyBWYWx1ZSAoMC0zNjAmZGVnOykifSxzYXR1cmF0aW9uOntyYWRpbzoiU2V0IFRvICZsZHF1bztTYXR1cmF0aW9uJnJkcXVvOyBDb2xvciBNb2RlIix0ZXh0Ym94OiJFbnRlciBBICZsZHF1bztTYXR1cmF0aW9uJnJkcXVvOyBWYWx1ZSAoMC0xMDAlKSJ9LHZhbHVlOntyYWRpbzoiU2V0IFRvICZsZHF1bztWYWx1ZSZyZHF1bzsgQ29sb3IgTW9kZSIsdGV4dGJveDoiRW50ZXIgQSAmbGRxdW87VmFsdWUmcmRxdW87IFZhbHVlICgwLTEwMCUpIn0scmVkOntyYWRpbzoiU2V0IFRvICZsZHF1bztSZWQmcmRxdW87IENvbG9yIE1vZGUiLHRleHRib3g6IkVudGVyIEEgJmxkcXVvO1JlZCZyZHF1bzsgVmFsdWUgKDAtMjU1KSJ9LGdyZWVuOntyYWRpbzoiU2V0IFRvICZsZHF1bztHcmVlbiZyZHF1bzsgQ29sb3IgTW9kZSIsdGV4dGJveDoiRW50ZXIgQSAmbGRxdW87R3JlZW4mcmRxdW87IFZhbHVlICgwLTI1NSkifSxibHVlOntyYWRpbzoiU2V0IFRvICZsZHF1bztCbHVlJnJkcXVvOyBDb2xvciBNb2RlIix0ZXh0Ym94OiJFbnRlciBBICZsZHF1bztCbHVlJnJkcXVvOyBWYWx1ZSAoMC0yNTUpIn0sYWxwaGE6e3JhZGlvOiJTZXQgVG8gJmxkcXVvO0FscGhhJnJkcXVvOyBDb2xvciBNb2RlIix0ZXh0Ym94OiJFbnRlciBBICZsZHF1bztBbHBoYSZyZHF1bzsgVmFsdWUgKDAtMTAwKSJ9LGhleDp7dGV4dGJveDoiRW50ZXIgQSAmbGRxdW87SGV4JnJkcXVvOyBDb2xvciBWYWx1ZSAoIzAwMDAwMC0jZmZmZmZmKSIsYWxwaGE6IkVudGVyIEEgJmxkcXVvO0FscGhhJnJkcXVvOyBWYWx1ZSAoIzAwLSNmZikifX19fX0pKGpRdWVyeSwiMS4xLjYiKTsKCi8qCiAqIERlcGVuZCBDbGFzcyB2MC4xYiA6IGF0dGFjaCBjbGFzcyBiYXNlZCBvbiBmaXJzdCBjbGFzcyBpbiBsaXN0IG9mIGN1cnJlbnQgZWxlbWVudAogKiBGaWxlOiBqcXVlcnkuZGVwZW5kQ2xhc3MuanMKICogQ29weXJpZ2h0IChjKSAyMDA5IEVnb3IgSG1lbHlvZmYsIGhtZWx5b2ZmQGdtYWlsLmNvbQogKi8KKGZ1bmN0aW9uKCQpIHsKCS8vIEluaXQgcGx1Z2luIGZ1bmN0aW9uCgkkLmJhc2VDbGFzcyA9IGZ1bmN0aW9uKG9iail7CgkgIG9iaiA9ICQob2JqKTsKCSAgcmV0dXJuIG9iai5nZXQoMCkuY2xhc3NOYW1lLm1hdGNoKC8oW14gXSspLylbMV07Cgl9OwoJCgkkLmZuLmFkZERlcGVuZENsYXNzID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBkZWxpbWl0ZXIpewoJCXZhciBvcHRpb25zID0gewoJCSAgZGVsaW1pdGVyOiBkZWxpbWl0ZXIgPyBkZWxpbWl0ZXIgOiAnLScKCQl9CgkJcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpewoJCSAgdmFyIGJhc2VDbGFzcyA9ICQuYmFzZUNsYXNzKHRoaXMpOwoJCSAgaWYoYmFzZUNsYXNzKQogICAgCQkkKHRoaXMpLmFkZENsYXNzKGJhc2VDbGFzcyArIG9wdGlvbnMuZGVsaW1pdGVyICsgY2xhc3NOYW1lKTsKCQl9KTsKCX07CgoJJC5mbi5yZW1vdmVEZXBlbmRDbGFzcyA9IGZ1bmN0aW9uKGNsYXNzTmFtZSwgZGVsaW1pdGVyKXsKCQl2YXIgb3B0aW9ucyA9IHsKCQkgIGRlbGltaXRlcjogZGVsaW1pdGVyID8gZGVsaW1pdGVyIDogJy0nCgkJfQoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKCQkgIHZhciBiYXNlQ2xhc3MgPSAkLmJhc2VDbGFzcyh0aGlzKTsKCQkgIGlmKGJhc2VDbGFzcykKICAgIAkJJCh0aGlzKS5yZW1vdmVDbGFzcyhiYXNlQ2xhc3MgKyBvcHRpb25zLmRlbGltaXRlciArIGNsYXNzTmFtZSk7CgkJfSk7Cgl9OwoKCSQuZm4udG9nZ2xlRGVwZW5kQ2xhc3MgPSBmdW5jdGlvbihjbGFzc05hbWUsIGRlbGltaXRlcil7CgkJdmFyIG9wdGlvbnMgPSB7CgkJICBkZWxpbWl0ZXI6IGRlbGltaXRlciA/IGRlbGltaXRlciA6ICctJwoJCX0KCQlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CgkJICB2YXIgYmFzZUNsYXNzID0gJC5iYXNlQ2xhc3ModGhpcyk7CgkJICBpZihiYXNlQ2xhc3MpCgkJICAgIGlmKCQodGhpcykuaXMoIi4iICsgYmFzZUNsYXNzICsgb3B0aW9ucy5kZWxpbWl0ZXIgKyBjbGFzc05hbWUpKQogICAgCQkgICQodGhpcykucmVtb3ZlQ2xhc3MoYmFzZUNsYXNzICsgb3B0aW9ucy5kZWxpbWl0ZXIgKyBjbGFzc05hbWUpOwogICAgCQllbHNlCiAgICAJCSAgJCh0aGlzKS5hZGRDbGFzcyhiYXNlQ2xhc3MgKyBvcHRpb25zLmRlbGltaXRlciArIGNsYXNzTmFtZSk7CgkJfSk7Cgl9OwoKCS8vIGVuZCBvZiBjbG9zdXJlCn0pKGpRdWVyeSk7CgovLyBqUXVlcnkgU2xpZGVyIFBsdWdpbgovLyBFZ29yIEtobWVsZXYgLSBodHRwOi8vYmxvZy5lZ29ya2htZWxldi5jb20vIC0gaG1lbHlvZmZAZ21haWwuY29tCihmdW5jdGlvbigpe0Z1bmN0aW9uLnByb3RvdHlwZS5pbmhlcml0RnJvbT1mdW5jdGlvbihiLGMpe3ZhciBkPWZ1bmN0aW9uKCl7fTtkLnByb3RvdHlwZT1iLnByb3RvdHlwZTt0aGlzLnByb3RvdHlwZT1uZXcgZCgpO3RoaXMucHJvdG90eXBlLmNvbnN0cnVjdG9yPXRoaXM7dGhpcy5wcm90b3R5cGUuYmFzZUNvbnN0cnVjdG9yPWI7dGhpcy5wcm90b3R5cGUuc3VwZXJDbGFzcz1iLnByb3RvdHlwZTtpZihjKXtmb3IodmFyIGEgaW4gYyl7dGhpcy5wcm90b3R5cGVbYV09Y1thXX19fTtOdW1iZXIucHJvdG90eXBlLmpTbGlkZXJOaWNlPWZ1bmN0aW9uKGwpe3ZhciBvPS9eKC0pPyhcZCspKFtcLixdKFxkKykpPyQvO3ZhciBkPU51bWJlcih0aGlzKTt2YXIgaj1TdHJpbmcoZCk7dmFyIGs7dmFyIGM9IiI7dmFyIGI9IiAiO2lmKChrPWoubWF0Y2gobykpKXt2YXIgZj1rWzJdO3ZhciBtPShrWzRdKT9OdW1iZXIoIjAuIitrWzRdKTowO2lmKG0pe3ZhciBlPU1hdGgucG93KDEwLChsKT9sOjIpO209TWF0aC5yb3VuZChtKmUpO3NOZXdEZWNQYXJ0PVN0cmluZyhtKTtjPXNOZXdEZWNQYXJ0O2lmKHNOZXdEZWNQYXJ0Lmxlbmd0aDxsKXt2YXIgYT1sLXNOZXdEZWNQYXJ0Lmxlbmd0aDtmb3IodmFyIGc9MDtnPGE7ZysrKXtjPSIwIitjfX1jPSIsIitjfWVsc2V7aWYobCYmbCE9MCl7Zm9yKHZhciBnPTA7ZzxsO2crKyl7Yys9IjAifWM9IiwiK2N9fXZhciBoO2lmKE51bWJlcihmKTwxMDAwKXtoPWYrY31lbHNle3ZhciBuPSIiO3ZhciBnO2ZvcihnPTE7ZyozPGYubGVuZ3RoO2crKyl7bj1iK2Yuc3Vic3RyaW5nKGYubGVuZ3RoLWcqMyxmLmxlbmd0aC0oZy0xKSozKStufWg9Zi5zdWJzdHIoMCwzLWcqMytmLmxlbmd0aCkrbitjfWlmKGtbMV0pe3JldHVybiItIitofWVsc2V7cmV0dXJuIGh9fWVsc2V7cmV0dXJuIGp9fTt0aGlzLmpTbGlkZXJJc0FycmF5PWZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0idW5kZWZpbmVkIil7cmV0dXJuIGZhbHNlfWlmKGEgaW5zdGFuY2VvZiBBcnJheXx8KCEoYSBpbnN0YW5jZW9mIE9iamVjdCkmJihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoKGEpKT09IltvYmplY3QgQXJyYXldIil8fHR5cGVvZiBhLmxlbmd0aD09Im51bWJlciImJnR5cGVvZiBhLnNwbGljZSE9InVuZGVmaW5lZCImJnR5cGVvZiBhLnByb3BlcnR5SXNFbnVtZXJhYmxlIT0idW5kZWZpbmVkIiYmIWEucHJvcGVydHlJc0VudW1lcmFibGUoInNwbGljZSIpKSl7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfX0pKCk7KGZ1bmN0aW9uKCl7dmFyIGE9e307dGhpcy5qU2xpZGVyVG1wbD1mdW5jdGlvbiBiKGUsZCl7dmFyIGM9ISgvXFcvKS50ZXN0KGUpP2FbZV09YVtlXXx8YihlKTpuZXcgRnVuY3Rpb24oIm9iaiIsInZhciBwPVtdLHByaW50PWZ1bmN0aW9uKCl7cC5wdXNoLmFwcGx5KHAsYXJndW1lbnRzKTt9O3dpdGgob2JqKXtwLnB1c2goJyIrZS5yZXBsYWNlKC9bXHJcdFxuXS9nLCIgIikuc3BsaXQoIjwlIikuam9pbigiXHQiKS5yZXBsYWNlKC8oKF58JT4pW15cdF0qKScvZywiJDFcciIpLnJlcGxhY2UoL1x0PSguKj8pJT4vZywiJywkMSwnIikuc3BsaXQoIlx0Iikuam9pbigiJyk7Iikuc3BsaXQoIiU+Iikuam9pbigicC5wdXNoKCciKS5zcGxpdCgiXHIiKS5qb2luKCJcXCciKSsiJyk7fXJldHVybiBwLmpvaW4oJycpOyIpO3JldHVybiBkP2MoZCk6Y319KSgpOyhmdW5jdGlvbihhKXt0aGlzLkRyYWdnYWJsZT1mdW5jdGlvbigpe3RoaXMuX2luaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtEcmFnZ2FibGUucHJvdG90eXBlPXtvbmluaXQ6ZnVuY3Rpb24oKXt9LGV2ZW50czpmdW5jdGlvbigpe30sb25tb3VzZWRvd246ZnVuY3Rpb24oKXt0aGlzLnB0ci5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSJ9KX0sb25tb3VzZW1vdmU6ZnVuY3Rpb24oYyxiLGQpe3RoaXMucHRyLmNzcyh7bGVmdDpiLHRvcDpkfSl9LG9ubW91c2V1cDpmdW5jdGlvbigpe30saXNEZWZhdWx0OntkcmFnOmZhbHNlLGNsaWNrZWQ6ZmFsc2UsdG9jbGljazp0cnVlLG1vdXNldXA6ZmFsc2V9LF9pbml0OmZ1bmN0aW9uKCl7aWYoYXJndW1lbnRzLmxlbmd0aD4wKXt0aGlzLnB0cj1hKGFyZ3VtZW50c1swXSk7dGhpcy5vdXRlcj1hKCIuZHJhZ2dhYmxlLW91dGVyIik7dGhpcy5pcz17fTthLmV4dGVuZCh0aGlzLmlzLHRoaXMuaXNEZWZhdWx0KTt2YXIgYj10aGlzLnB0ci5vZmZzZXQoKTt0aGlzLmQ9e2xlZnQ6Yi5sZWZ0LHRvcDpiLnRvcCx3aWR0aDp0aGlzLnB0ci53aWR0aCgpLGhlaWdodDp0aGlzLnB0ci5oZWlnaHQoKX07dGhpcy5vbmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuX2V2ZW50cygpfX0sX2dldFBhZ2VDb29yZHM6ZnVuY3Rpb24oYil7aWYoYi50YXJnZXRUb3VjaGVzJiZiLnRhcmdldFRvdWNoZXNbMF0pe3JldHVybnt4OmIudGFyZ2V0VG91Y2hlc1swXS5wYWdlWCx5OmIudGFyZ2V0VG91Y2hlc1swXS5wYWdlWX19ZWxzZXtyZXR1cm57eDpiLnBhZ2VYLHk6Yi5wYWdlWX19fSxfYmluZEV2ZW50OmZ1bmN0aW9uKGUsYyxkKXt2YXIgYj10aGlzO2lmKHRoaXMuc3VwcG9ydFRvdWNoZXNfKXtlLmdldCgwKS5hZGRFdmVudExpc3RlbmVyKHRoaXMuZXZlbnRzX1tjXSxkLGZhbHNlKX1lbHNle2UuYmluZCh0aGlzLmV2ZW50c19bY10sZCl9fSxfZXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGI9dGhpczt0aGlzLnN1cHBvcnRUb3VjaGVzXz0oYS5icm93c2VyLndlYmtpdCYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNb2JpbGUiKSE9LTEpO3RoaXMuZXZlbnRzXz17Y2xpY2s6dGhpcy5zdXBwb3J0VG91Y2hlc18/InRvdWNoc3RhcnQiOiJjbGljayIsZG93bjp0aGlzLnN1cHBvcnRUb3VjaGVzXz8idG91Y2hzdGFydCI6Im1vdXNlZG93biIsbW92ZTp0aGlzLnN1cHBvcnRUb3VjaGVzXz8idG91Y2htb3ZlIjoibW91c2Vtb3ZlIix1cDp0aGlzLnN1cHBvcnRUb3VjaGVzXz8idG91Y2hlbmQiOiJtb3VzZXVwIn07dGhpcy5fYmluZEV2ZW50KGEoZG9jdW1lbnQpLCJtb3ZlIixmdW5jdGlvbihjKXtpZihiLmlzLmRyYWcpe2Muc3RvcFByb3BhZ2F0aW9uKCk7Yy5wcmV2ZW50RGVmYXVsdCgpO2IuX21vdXNlbW92ZShjKX19KTt0aGlzLl9iaW5kRXZlbnQoYShkb2N1bWVudCksImRvd24iLGZ1bmN0aW9uKGMpe2lmKGIuaXMuZHJhZyl7Yy5zdG9wUHJvcGFnYXRpb24oKTtjLnByZXZlbnREZWZhdWx0KCl9fSk7dGhpcy5fYmluZEV2ZW50KGEoZG9jdW1lbnQpLCJ1cCIsZnVuY3Rpb24oYyl7Yi5fbW91c2V1cChjKX0pO3RoaXMuX2JpbmRFdmVudCh0aGlzLnB0ciwiZG93biIsZnVuY3Rpb24oYyl7Yi5fbW91c2Vkb3duKGMpO3JldHVybiBmYWxzZX0pO3RoaXMuX2JpbmRFdmVudCh0aGlzLnB0ciwidXAiLGZ1bmN0aW9uKGMpe2IuX21vdXNldXAoYyl9KTt0aGlzLnB0ci5maW5kKCJhIikuY2xpY2soZnVuY3Rpb24oKXtiLmlzLmNsaWNrZWQ9dHJ1ZTtpZighYi5pcy50b2NsaWNrKXtiLmlzLnRvY2xpY2s9dHJ1ZTtyZXR1cm4gZmFsc2V9fSkubW91c2Vkb3duKGZ1bmN0aW9uKGMpe2IuX21vdXNlZG93bihjKTtyZXR1cm4gZmFsc2V9KTt0aGlzLmV2ZW50cygpfSxfbW91c2Vkb3duOmZ1bmN0aW9uKGIpe3RoaXMuaXMuZHJhZz10cnVlO3RoaXMuaXMuY2xpY2tlZD1mYWxzZTt0aGlzLmlzLm1vdXNldXA9ZmFsc2U7dmFyIGM9dGhpcy5wdHIub2Zmc2V0KCk7dmFyIGQ9dGhpcy5fZ2V0UGFnZUNvb3JkcyhiKTt0aGlzLmN4PWQueC1jLmxlZnQ7dGhpcy5jeT1kLnktYy50b3A7YS5leHRlbmQodGhpcy5kLHtsZWZ0OmMubGVmdCx0b3A6Yy50b3Asd2lkdGg6dGhpcy5wdHIud2lkdGgoKSxoZWlnaHQ6dGhpcy5wdHIuaGVpZ2h0KCl9KTtpZih0aGlzLm91dGVyJiZ0aGlzLm91dGVyLmdldCgwKSl7dGhpcy5vdXRlci5jc3Moe2hlaWdodDpNYXRoLm1heCh0aGlzLm91dGVyLmhlaWdodCgpLGEoZG9jdW1lbnQuYm9keSkuaGVpZ2h0KCkpLG92ZXJmbG93OiJoaWRkZW4ifSl9dGhpcy5vbm1vdXNlZG93bihiKX0sX21vdXNlbW92ZTpmdW5jdGlvbihiKXt0aGlzLmlzLnRvY2xpY2s9ZmFsc2U7dmFyIGM9dGhpcy5fZ2V0UGFnZUNvb3JkcyhiKTt0aGlzLm9ubW91c2Vtb3ZlKGIsYy54LXRoaXMuY3gsYy55LXRoaXMuY3kpfSxfbW91c2V1cDpmdW5jdGlvbihiKXt2YXIgYz10aGlzO2lmKHRoaXMuaXMuZHJhZyl7dGhpcy5pcy5kcmFnPWZhbHNlO2lmKHRoaXMub3V0ZXImJnRoaXMub3V0ZXIuZ2V0KDApKXtpZihhLmJyb3dzZXIubW96aWxsYSl7dGhpcy5vdXRlci5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSl9ZWxzZXt0aGlzLm91dGVyLmNzcyh7b3ZlcmZsb3c6InZpc2libGUifSl9aWYoYS5icm93c2VyLm1zaWUmJmEuYnJvd3Nlci52ZXJzaW9uPT0iNi4wIil7dGhpcy5vdXRlci5jc3Moe2hlaWdodDoiMTAwJSJ9KX1lbHNle3RoaXMub3V0ZXIuY3NzKHtoZWlnaHQ6ImF1dG8ifSl9fXRoaXMub25tb3VzZXVwKGIpfX19fSkoalF1ZXJ5KTsoZnVuY3Rpb24oYil7Yi5zbGlkZXI9ZnVuY3Rpb24oZixlKXt2YXIgZD1iKGYpO2lmKCFkLmRhdGEoImpzbGlkZXIiKSl7ZC5kYXRhKCJqc2xpZGVyIixuZXcgalNsaWRlcihmLGUpKX1yZXR1cm4gZC5kYXRhKCJqc2xpZGVyIil9O2IuZm4uc2xpZGVyPWZ1bmN0aW9uKGgsZSl7dmFyIGcsZj1hcmd1bWVudHM7ZnVuY3Rpb24gZChqKXtyZXR1cm4gaiE9PXVuZGVmaW5lZH1mdW5jdGlvbiBpKGope3JldHVybiBqIT1udWxsfXRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBrPWIuc2xpZGVyKHRoaXMsaCk7aWYodHlwZW9mIGg9PSJzdHJpbmciKXtzd2l0Y2goaCl7Y2FzZSJ2YWx1ZSI6aWYoZChmWzFdKSYmZChmWzJdKSl7dmFyIGo9ay5nZXRQb2ludGVycygpO2lmKGkoalswXSkmJmkoZlsxXSkpe2pbMF0uc2V0KGZbMV0pO2pbMF0uc2V0SW5kZXhPdmVyKCl9aWYoaShqWzFdKSYmaShmWzJdKSl7alsxXS5zZXQoZlsyXSk7alsxXS5zZXRJbmRleE92ZXIoKX19ZWxzZXtpZihkKGZbMV0pKXt2YXIgaj1rLmdldFBvaW50ZXJzKCk7aWYoaShqWzBdKSYmaShmWzFdKSl7alswXS5zZXQoZlsxXSk7alswXS5zZXRJbmRleE92ZXIoKX19ZWxzZXtnPWsuZ2V0VmFsdWUoKX19YnJlYWs7Y2FzZSJwcmMiOmlmKGQoZlsxXSkmJmQoZlsyXSkpe3ZhciBqPWsuZ2V0UG9pbnRlcnMoKTtpZihpKGpbMF0pJiZpKGZbMV0pKXtqWzBdLl9zZXQoZlsxXSk7alswXS5zZXRJbmRleE92ZXIoKX1pZihpKGpbMV0pJiZpKGZbMl0pKXtqWzFdLl9zZXQoZlsyXSk7alsxXS5zZXRJbmRleE92ZXIoKX19ZWxzZXtpZihkKGZbMV0pKXt2YXIgaj1rLmdldFBvaW50ZXJzKCk7aWYoaShqWzBdKSYmaShmWzFdKSl7alswXS5fc2V0KGZbMV0pO2pbMF0uc2V0SW5kZXhPdmVyKCl9fWVsc2V7Zz1rLmdldFByY1ZhbHVlKCl9fWJyZWFrO2Nhc2UiY2FsY3VsYXRlZFZhbHVlIjp2YXIgbT1rLmdldFZhbHVlKCkuc3BsaXQoIjsiKTtnPSIiO2Zvcih2YXIgbD0wO2w8bS5sZW5ndGg7bCsrKXtnKz0obD4wPyI7IjoiIikray5uaWNlKG1bbF0pfWJyZWFrO2Nhc2Uic2tpbiI6ay5zZXRTa2luKGZbMV0pO2JyZWFrfX1lbHNle2lmKCFoJiYhZSl7aWYoIWpTbGlkZXJJc0FycmF5KGcpKXtnPVtdfWcucHVzaChzbGlkZXIpfX19KTtpZihqU2xpZGVySXNBcnJheShnKSYmZy5sZW5ndGg9PTEpe2c9Z1swXX1yZXR1cm4gZ3x8dGhpc307dmFyIGM9e3NldHRpbmdzOntmcm9tOjEsdG86MTAsc3RlcDoxLHNtb290aDp0cnVlLGxpbWl0czp0cnVlLHJvdW5kOjAsdmFsdWU6IjU7NyIsZGltZW5zaW9uOiIifSxjbGFzc05hbWU6ImpzbGlkZXIiLHNlbGVjdG9yOiIuanNsaWRlci0iLHRlbXBsYXRlOmpTbGlkZXJUbXBsKCc8c3BhbiBjbGFzcz0iPCU9Y2xhc3NOYW1lJT4iPjx0YWJsZT48dHI+PHRkPjxkaXYgY2xhc3M9IjwlPWNsYXNzTmFtZSU+LWJnIj48aSBjbGFzcz0ibCI+PGk+PC9pPjwvaT48aSBjbGFzcz0iciI+PGk+PC9pPjwvaT48aSBjbGFzcz0idiI+PGk+PC9pPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSI8JT1jbGFzc05hbWUlPi1wb2ludGVyIj48aT48L2k+PC9kaXY+PGRpdiBjbGFzcz0iPCU9Y2xhc3NOYW1lJT4tcG9pbnRlciA8JT1jbGFzc05hbWUlPi1wb2ludGVyLXRvIj48aT48L2k+PC9kaXY+PGRpdiBjbGFzcz0iPCU9Y2xhc3NOYW1lJT4tbGFiZWwiPjxzcGFuPjwlPXNldHRpbmdzLmZyb20lPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSI8JT1jbGFzc05hbWUlPi1sYWJlbCA8JT1jbGFzc05hbWUlPi1sYWJlbC10byI+PHNwYW4+PCU9c2V0dGluZ3MudG8lPjwvc3Bhbj48JT1zZXR0aW5ncy5kaW1lbnNpb24lPjwvZGl2PjxkaXYgY2xhc3M9IjwlPWNsYXNzTmFtZSU+LXZhbHVlIj48c3Bhbj48L3NwYW4+PCU9c2V0dGluZ3MuZGltZW5zaW9uJT48L2Rpdj48ZGl2IGNsYXNzPSI8JT1jbGFzc05hbWUlPi12YWx1ZSA8JT1jbGFzc05hbWUlPi12YWx1ZS10byI+PHNwYW4+PC9zcGFuPjwlPXNldHRpbmdzLmRpbWVuc2lvbiU+PC9kaXY+PGRpdiBjbGFzcz0iPCU9Y2xhc3NOYW1lJT4tc2NhbGUiPjwlPXNjYWxlJT48L2Rpdj48L3RkPjwvdHI+PC90YWJsZT48L3NwYW4+Jyl9O3RoaXMualNsaWRlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtqU2xpZGVyLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbihlLGQpe3RoaXMuc2V0dGluZ3M9Yi5leHRlbmQodHJ1ZSx7fSxjLnNldHRpbmdzLGQ/ZDp7fSk7dGhpcy5pbnB1dE5vZGU9YihlKS5oaWRlKCk7dGhpcy5zZXR0aW5ncy5pbnRlcnZhbD10aGlzLnNldHRpbmdzLnRvLXRoaXMuc2V0dGluZ3MuZnJvbTt0aGlzLnNldHRpbmdzLnZhbHVlPXRoaXMuaW5wdXROb2RlLmF0dHIoInZhbHVlIik7aWYodGhpcy5zZXR0aW5ncy5jYWxjdWxhdGUmJmIuaXNGdW5jdGlvbih0aGlzLnNldHRpbmdzLmNhbGN1bGF0ZSkpe3RoaXMubmljZT10aGlzLnNldHRpbmdzLmNhbGN1bGF0ZX1pZih0aGlzLnNldHRpbmdzLm9uc3RhdGVjaGFuZ2UmJmIuaXNGdW5jdGlvbih0aGlzLnNldHRpbmdzLm9uc3RhdGVjaGFuZ2UpKXt0aGlzLm9uc3RhdGVjaGFuZ2U9dGhpcy5zZXR0aW5ncy5vbnN0YXRlY2hhbmdlfXRoaXMuaXM9e2luaXQ6ZmFsc2V9O3RoaXMubz17fTt0aGlzLmNyZWF0ZSgpfSxvbnN0YXRlY2hhbmdlOmZ1bmN0aW9uKCl7fSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgZD10aGlzO3RoaXMuZG9tTm9kZT1iKGMudGVtcGxhdGUoe2NsYXNzTmFtZTpjLmNsYXNzTmFtZSxzZXR0aW5nczp7ZnJvbTp0aGlzLm5pY2UodGhpcy5zZXR0aW5ncy5mcm9tKSx0bzp0aGlzLm5pY2UodGhpcy5zZXR0aW5ncy50byksZGltZW5zaW9uOnRoaXMuc2V0dGluZ3MuZGltZW5zaW9ufSxzY2FsZTp0aGlzLmdlbmVyYXRlU2NhbGUoKX0pKTt0aGlzLmlucHV0Tm9kZS5hZnRlcih0aGlzLmRvbU5vZGUpO3RoaXMuZHJhd1NjYWxlKCk7aWYodGhpcy5zZXR0aW5ncy5za2luJiZ0aGlzLnNldHRpbmdzLnNraW4ubGVuZ3RoPjApe3RoaXMuc2V0U2tpbih0aGlzLnNldHRpbmdzLnNraW4pfXRoaXMuc2l6ZXM9e2RvbVdpZHRoOnRoaXMuZG9tTm9kZS53aWR0aCgpLGRvbU9mZnNldDp0aGlzLmRvbU5vZGUub2Zmc2V0KCl9O2IuZXh0ZW5kKHRoaXMubyx7cG9pbnRlcnM6e30sbGFiZWxzOnswOntvOnRoaXMuZG9tTm9kZS5maW5kKGMuc2VsZWN0b3IrInZhbHVlIikubm90KGMuc2VsZWN0b3IrInZhbHVlLXRvIil9LDE6e286dGhpcy5kb21Ob2RlLmZpbmQoYy5zZWxlY3RvcisidmFsdWUiKS5maWx0ZXIoYy5zZWxlY3RvcisidmFsdWUtdG8iKX19LGxpbWl0czp7MDp0aGlzLmRvbU5vZGUuZmluZChjLnNlbGVjdG9yKyJsYWJlbCIpLm5vdChjLnNlbGVjdG9yKyJsYWJlbC10byIpLDE6dGhpcy5kb21Ob2RlLmZpbmQoYy5zZWxlY3RvcisibGFiZWwiKS5maWx0ZXIoYy5zZWxlY3RvcisibGFiZWwtdG8iKX19KTtiLmV4dGVuZCh0aGlzLm8ubGFiZWxzWzBdLHt2YWx1ZTp0aGlzLm8ubGFiZWxzWzBdLm8uZmluZCgic3BhbiIpfSk7Yi5leHRlbmQodGhpcy5vLmxhYmVsc1sxXSx7dmFsdWU6dGhpcy5vLmxhYmVsc1sxXS5vLmZpbmQoInNwYW4iKX0pO2lmKCFkLnNldHRpbmdzLnZhbHVlLnNwbGl0KCI7IilbMV0pe3RoaXMuc2V0dGluZ3Muc2luZ2xlPXRydWU7dGhpcy5kb21Ob2RlLmFkZERlcGVuZENsYXNzKCJzaW5nbGUiKX1pZighZC5zZXR0aW5ncy5saW1pdHMpe3RoaXMuZG9tTm9kZS5hZGREZXBlbmRDbGFzcygibGltaXRsZXNzIil9dGhpcy5kb21Ob2RlLmZpbmQoYy5zZWxlY3RvcisicG9pbnRlciIpLmVhY2goZnVuY3Rpb24oZSl7dmFyIGc9ZC5zZXR0aW5ncy52YWx1ZS5zcGxpdCgiOyIpW2VdO2lmKGcpe2Quby5wb2ludGVyc1tlXT1uZXcgYSh0aGlzLGUsZCk7dmFyIGY9ZC5zZXR0aW5ncy52YWx1ZS5zcGxpdCgiOyIpW2UtMV07aWYoZiYmbmV3IE51bWJlcihnKTxuZXcgTnVtYmVyKGYpKXtnPWZ9Zz1nPGQuc2V0dGluZ3MuZnJvbT9kLnNldHRpbmdzLmZyb206ZztnPWc+ZC5zZXR0aW5ncy50bz9kLnNldHRpbmdzLnRvOmc7ZC5vLnBvaW50ZXJzW2VdLnNldChnLHRydWUpfX0pO3RoaXMuby52YWx1ZT10aGlzLmRvbU5vZGUuZmluZCgiLnYiKTt0aGlzLmlzLmluaXQ9dHJ1ZTtiLmVhY2godGhpcy5vLnBvaW50ZXJzLGZ1bmN0aW9uKGUpe2QucmVkcmF3KHRoaXMpfSk7KGZ1bmN0aW9uKGUpe2Iod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKXtlLm9ucmVzaXplKCl9KX0pKHRoaXMpfSxzZXRTa2luOmZ1bmN0aW9uKGQpe2lmKHRoaXMuc2tpbl8pe3RoaXMuZG9tTm9kZS5yZW1vdmVEZXBlbmRDbGFzcyh0aGlzLnNraW5fLCJfIil9dGhpcy5kb21Ob2RlLmFkZERlcGVuZENsYXNzKHRoaXMuc2tpbl89ZCwiXyIpfSxzZXRQb2ludGVyc0luZGV4OmZ1bmN0aW9uKGQpe2IuZWFjaCh0aGlzLmdldFBvaW50ZXJzKCksZnVuY3Rpb24oZSl7dGhpcy5pbmRleChlKX0pfSxnZXRQb2ludGVyczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm8ucG9pbnRlcnN9LGdlbmVyYXRlU2NhbGU6ZnVuY3Rpb24oKXtpZih0aGlzLnNldHRpbmdzLnNjYWxlJiZ0aGlzLnNldHRpbmdzLnNjYWxlLmxlbmd0aD4wKXt2YXIgZj0iIjt2YXIgZT10aGlzLnNldHRpbmdzLnNjYWxlO3ZhciBnPU1hdGgucm91bmQoKDEwMC8oZS5sZW5ndGgtMSkpKjEwKS8xMDtmb3IodmFyIGQ9MDtkPGUubGVuZ3RoO2QrKyl7Zis9JzxzcGFuIHN0eWxlPSJsZWZ0OiAnK2QqZysnJSI+JysoZVtkXSE9InwiPyI8aW5zPiIrZVtkXSsiPC9pbnM+IjoiIikrIjwvc3Bhbj4ifXJldHVybiBmfWVsc2V7cmV0dXJuIiJ9cmV0dXJuIiJ9LGRyYXdTY2FsZTpmdW5jdGlvbigpe3RoaXMuZG9tTm9kZS5maW5kKGMuc2VsZWN0b3IrInNjYWxlIHNwYW4gaW5zIikuZWFjaChmdW5jdGlvbigpe2IodGhpcykuY3NzKHttYXJnaW5MZWZ0Oi1iKHRoaXMpLm91dGVyV2lkdGgoKS8yfSl9KX0sb25yZXNpemU6ZnVuY3Rpb24oKXt2YXIgZD10aGlzO3RoaXMuc2l6ZXM9e2RvbVdpZHRoOnRoaXMuZG9tTm9kZS53aWR0aCgpLGRvbU9mZnNldDp0aGlzLmRvbU5vZGUub2Zmc2V0KCl9O2IuZWFjaCh0aGlzLm8ucG9pbnRlcnMsZnVuY3Rpb24oZSl7ZC5yZWRyYXcodGhpcyl9KX0sbGltaXRzOmZ1bmN0aW9uKGQsZyl7aWYoIXRoaXMuc2V0dGluZ3Muc21vb3RoKXt2YXIgZj10aGlzLnNldHRpbmdzLnN0ZXAqMTAwLyh0aGlzLnNldHRpbmdzLmludGVydmFsKTtkPU1hdGgucm91bmQoZC9mKSpmfXZhciBlPXRoaXMuby5wb2ludGVyc1sxLWcudWlkXTtpZihlJiZnLnVpZCYmZDxlLnZhbHVlLnByYyl7ZD1lLnZhbHVlLnByY31pZihlJiYhZy51aWQmJmQ+ZS52YWx1ZS5wcmMpe2Q9ZS52YWx1ZS5wcmN9aWYoZDwwKXtkPTB9aWYoZD4xMDApe2Q9MTAwfXJldHVybiBNYXRoLnJvdW5kKGQqMTApLzEwfSxyZWRyYXc6ZnVuY3Rpb24oZCl7aWYoIXRoaXMuaXMuaW5pdCl7cmV0dXJuIGZhbHNlfXRoaXMuc2V0VmFsdWUoKTtpZih0aGlzLm8ucG9pbnRlcnNbMF0mJnRoaXMuby5wb2ludGVyc1sxXSl7dGhpcy5vLnZhbHVlLmNzcyh7bGVmdDp0aGlzLm8ucG9pbnRlcnNbMF0udmFsdWUucHJjKyIlIix3aWR0aDoodGhpcy5vLnBvaW50ZXJzWzFdLnZhbHVlLnByYy10aGlzLm8ucG9pbnRlcnNbMF0udmFsdWUucHJjKSsiJSJ9KX10aGlzLm8ubGFiZWxzW2QudWlkXS52YWx1ZS5odG1sKHRoaXMubmljZShkLnZhbHVlLm9yaWdpbikpO3RoaXMucmVkcmF3TGFiZWxzKGQpfSxyZWRyYXdMYWJlbHM6ZnVuY3Rpb24oail7ZnVuY3Rpb24gZihsLG0sbil7bS5tYXJnaW49LW0ubGFiZWwvMjtsYWJlbF9sZWZ0PW0uYm9yZGVyK20ubWFyZ2luO2lmKGxhYmVsX2xlZnQ8MCl7bS5tYXJnaW4tPWxhYmVsX2xlZnR9aWYobS5ib3JkZXIrbS5sYWJlbC8yPmUuc2l6ZXMuZG9tV2lkdGgpe20ubWFyZ2luPTA7bS5yaWdodD10cnVlfWVsc2V7bS5yaWdodD1mYWxzZX1sLm8uY3NzKHtsZWZ0Om4rIiUiLG1hcmdpbkxlZnQ6bS5tYXJnaW4scmlnaHQ6ImF1dG8ifSk7aWYobS5yaWdodCl7bC5vLmNzcyh7bGVmdDoiYXV0byIscmlnaHQ6MH0pfXJldHVybiBtfXZhciBlPXRoaXM7dmFyIGc9dGhpcy5vLmxhYmVsc1tqLnVpZF07dmFyIGs9ai52YWx1ZS5wcmM7dmFyIGg9e2xhYmVsOmcuby5vdXRlcldpZHRoKCkscmlnaHQ6ZmFsc2UsYm9yZGVyOihrKnRoaXMuc2l6ZXMuZG9tV2lkdGgpLzEwMH07aWYoIXRoaXMuc2V0dGluZ3Muc2luZ2xlKXt2YXIgZD10aGlzLm8ucG9pbnRlcnNbMS1qLnVpZF07dmFyIGk9dGhpcy5vLmxhYmVsc1tkLnVpZF07c3dpdGNoKGoudWlkKXtjYXNlIDA6aWYoaC5ib3JkZXIraC5sYWJlbC8yPmkuby5vZmZzZXQoKS5sZWZ0LXRoaXMuc2l6ZXMuZG9tT2Zmc2V0LmxlZnQpe2kuby5jc3Moe3Zpc2liaWxpdHk6ImhpZGRlbiJ9KTtpLnZhbHVlLmh0bWwodGhpcy5uaWNlKGQudmFsdWUub3JpZ2luKSk7Zy5vLmNzcyh7dmlzaWJpbGl0eToidmlzaWJsZSJ9KTtrPShkLnZhbHVlLnByYy1rKS8yK2s7aWYoZC52YWx1ZS5wcmMhPWoudmFsdWUucHJjKXtnLnZhbHVlLmh0bWwodGhpcy5uaWNlKGoudmFsdWUub3JpZ2luKSsiJm5ic3A7Jm5kYXNoOyZuYnNwOyIrdGhpcy5uaWNlKGQudmFsdWUub3JpZ2luKSk7aC5sYWJlbD1nLm8ub3V0ZXJXaWR0aCgpO2guYm9yZGVyPShrKnRoaXMuc2l6ZXMuZG9tV2lkdGgpLzEwMH19ZWxzZXtpLm8uY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pfWJyZWFrO2Nhc2UgMTppZihoLmJvcmRlci1oLmxhYmVsLzI8aS5vLm9mZnNldCgpLmxlZnQtdGhpcy5zaXplcy5kb21PZmZzZXQubGVmdCtpLm8ub3V0ZXJXaWR0aCgpKXtpLm8uY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4ifSk7aS52YWx1ZS5odG1sKHRoaXMubmljZShkLnZhbHVlLm9yaWdpbikpO2cuby5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUifSk7az0oay1kLnZhbHVlLnByYykvMitkLnZhbHVlLnByYztpZihkLnZhbHVlLnByYyE9ai52YWx1ZS5wcmMpe2cudmFsdWUuaHRtbCh0aGlzLm5pY2UoZC52YWx1ZS5vcmlnaW4pKyImbmJzcDsmbmRhc2g7Jm5ic3A7Iit0aGlzLm5pY2Uoai52YWx1ZS5vcmlnaW4pKTtoLmxhYmVsPWcuby5vdXRlcldpZHRoKCk7aC5ib3JkZXI9KGsqdGhpcy5zaXplcy5kb21XaWR0aCkvMTAwfX1lbHNle2kuby5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUifSl9YnJlYWt9fWg9ZihnLGgsayk7aWYoaSl7dmFyIGg9e2xhYmVsOmkuby5vdXRlcldpZHRoKCkscmlnaHQ6ZmFsc2UsYm9yZGVyOihkLnZhbHVlLnByYyp0aGlzLnNpemVzLmRvbVdpZHRoKS8xMDB9O2g9ZihpLGgsZC52YWx1ZS5wcmMpfXRoaXMucmVkcmF3TGltaXRzKCl9LHJlZHJhd0xpbWl0czpmdW5jdGlvbigpe2lmKHRoaXMuc2V0dGluZ3MubGltaXRzKXt2YXIgZj1bdHJ1ZSx0cnVlXTtmb3Ioa2V5IGluIHRoaXMuby5wb2ludGVycyl7aWYoIXRoaXMuc2V0dGluZ3Muc2luZ2xlfHxrZXk9PTApe3ZhciBqPXRoaXMuby5wb2ludGVyc1trZXldO3ZhciBlPXRoaXMuby5sYWJlbHNbai51aWRdO3ZhciBoPWUuby5vZmZzZXQoKS5sZWZ0LXRoaXMuc2l6ZXMuZG9tT2Zmc2V0LmxlZnQ7dmFyIGQ9dGhpcy5vLmxpbWl0c1swXTtpZihoPGQub3V0ZXJXaWR0aCgpKXtmWzBdPWZhbHNlfXZhciBkPXRoaXMuby5saW1pdHNbMV07aWYoaCtlLm8ub3V0ZXJXaWR0aCgpPnRoaXMuc2l6ZXMuZG9tV2lkdGgtZC5vdXRlcldpZHRoKCkpe2ZbMV09ZmFsc2V9fX1mb3IodmFyIGc9MDtnPGYubGVuZ3RoO2crKyl7aWYoZltnXSl7dGhpcy5vLmxpbWl0c1tnXS5mYWRlSW4oImZhc3QiKX1lbHNle3RoaXMuby5saW1pdHNbZ10uZmFkZU91dCgiZmFzdCIpfX19fSxzZXRWYWx1ZTpmdW5jdGlvbigpe3ZhciBkPXRoaXMuZ2V0VmFsdWUoKTt0aGlzLmlucHV0Tm9kZS5hdHRyKCJ2YWx1ZSIsZCk7dGhpcy5vbnN0YXRlY2hhbmdlLmNhbGwodGhpcyxkKX0sZ2V0VmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5pcy5pbml0KXtyZXR1cm4gZmFsc2V9dmFyIGU9dGhpczt2YXIgZD0iIjtiLmVhY2godGhpcy5vLnBvaW50ZXJzLGZ1bmN0aW9uKGYpe2lmKHRoaXMudmFsdWUucHJjIT11bmRlZmluZWQmJiFpc05hTih0aGlzLnZhbHVlLnByYykpe2QrPShmPjA/IjsiOiIiKStlLnByY1RvVmFsdWUodGhpcy52YWx1ZS5wcmMpfX0pO3JldHVybiBkfSxnZXRQcmNWYWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLmlzLmluaXQpe3JldHVybiBmYWxzZX12YXIgZT10aGlzO3ZhciBkPSIiO2IuZWFjaCh0aGlzLm8ucG9pbnRlcnMsZnVuY3Rpb24oZil7aWYodGhpcy52YWx1ZS5wcmMhPXVuZGVmaW5lZCYmIWlzTmFOKHRoaXMudmFsdWUucHJjKSl7ZCs9KGY+MD8iOyI6IiIpK3RoaXMudmFsdWUucHJjfX0pO3JldHVybiBkfSxwcmNUb1ZhbHVlOmZ1bmN0aW9uKGwpe2lmKHRoaXMuc2V0dGluZ3MuaGV0ZXJvZ2VuZWl0eSYmdGhpcy5zZXR0aW5ncy5oZXRlcm9nZW5laXR5Lmxlbmd0aD4wKXt2YXIgZz10aGlzLnNldHRpbmdzLmhldGVyb2dlbmVpdHk7dmFyIGY9MDt2YXIgaz10aGlzLnNldHRpbmdzLmZyb207Zm9yKHZhciBlPTA7ZTw9Zy5sZW5ndGg7ZSsrKXtpZihnW2VdKXt2YXIgZD1nW2VdLnNwbGl0KCIvIil9ZWxzZXt2YXIgZD1bMTAwLHRoaXMuc2V0dGluZ3MudG9dfWRbMF09bmV3IE51bWJlcihkWzBdKTtkWzFdPW5ldyBOdW1iZXIoZFsxXSk7aWYobD49ZiYmbDw9ZFswXSl7dmFyIGo9aysoKGwtZikqKGRbMV0taykpLyhkWzBdLWYpfWY9ZFswXTtrPWRbMV19fWVsc2V7dmFyIGo9dGhpcy5zZXR0aW5ncy5mcm9tKyhsKnRoaXMuc2V0dGluZ3MuaW50ZXJ2YWwpLzEwMH1yZXR1cm4gdGhpcy5yb3VuZChqKX0sdmFsdWVUb1ByYzpmdW5jdGlvbihqLGwpe2lmKHRoaXMuc2V0dGluZ3MuaGV0ZXJvZ2VuZWl0eSYmdGhpcy5zZXR0aW5ncy5oZXRlcm9nZW5laXR5Lmxlbmd0aD4wKXt2YXIgZz10aGlzLnNldHRpbmdzLmhldGVyb2dlbmVpdHk7dmFyIGY9MDt2YXIgaz10aGlzLnNldHRpbmdzLmZyb207Zm9yKHZhciBlPTA7ZTw9Zy5sZW5ndGg7ZSsrKXtpZihnW2VdKXt2YXIgZD1nW2VdLnNwbGl0KCIvIil9ZWxzZXt2YXIgZD1bMTAwLHRoaXMuc2V0dGluZ3MudG9dfWRbMF09bmV3IE51bWJlcihkWzBdKTtkWzFdPW5ldyBOdW1iZXIoZFsxXSk7aWYoaj49ayYmajw9ZFsxXSl7dmFyIG09bC5saW1pdHMoZisoai1rKSooZFswXS1mKS8oZFsxXS1rKSl9Zj1kWzBdO2s9ZFsxXX19ZWxzZXt2YXIgbT1sLmxpbWl0cygoai10aGlzLnNldHRpbmdzLmZyb20pKjEwMC90aGlzLnNldHRpbmdzLmludGVydmFsKX1yZXR1cm4gbX0scm91bmQ6ZnVuY3Rpb24oZCl7ZD1NYXRoLnJvdW5kKGQvdGhpcy5zZXR0aW5ncy5zdGVwKSp0aGlzLnNldHRpbmdzLnN0ZXA7aWYodGhpcy5zZXR0aW5ncy5yb3VuZCl7ZD1NYXRoLnJvdW5kKGQqTWF0aC5wb3coMTAsdGhpcy5zZXR0aW5ncy5yb3VuZCkpL01hdGgucG93KDEwLHRoaXMuc2V0dGluZ3Mucm91bmQpfWVsc2V7ZD1NYXRoLnJvdW5kKGQpfXJldHVybiBkfSxuaWNlOmZ1bmN0aW9uKGQpe2Q9ZC50b1N0cmluZygpLnJlcGxhY2UoLywvZ2ksIi4iKTtkPWQudG9TdHJpbmcoKS5yZXBsYWNlKC8gL2dpLCIiKTtpZihOdW1iZXIucHJvdG90eXBlLmpTbGlkZXJOaWNlKXtyZXR1cm4obmV3IE51bWJlcihkKSkualNsaWRlck5pY2UodGhpcy5zZXR0aW5ncy5yb3VuZCkucmVwbGFjZSgvLS9naSwiJm1pbnVzOyIpfWVsc2V7cmV0dXJuIG5ldyBOdW1iZXIoZCl9fX07ZnVuY3Rpb24gYSgpe3RoaXMuYmFzZUNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1hLmluaGVyaXRGcm9tKERyYWdnYWJsZSx7b25pbml0OmZ1bmN0aW9uKGYsZSxkKXt0aGlzLnVpZD1lO3RoaXMucGFyZW50PWQ7dGhpcy52YWx1ZT17fTt0aGlzLnNldHRpbmdzPXRoaXMucGFyZW50LnNldHRpbmdzfSxvbm1vdXNlZG93bjpmdW5jdGlvbihkKXt0aGlzLl9wYXJlbnQ9e29mZnNldDp0aGlzLnBhcmVudC5kb21Ob2RlLm9mZnNldCgpLHdpZHRoOnRoaXMucGFyZW50LmRvbU5vZGUud2lkdGgoKX07dGhpcy5wdHIuYWRkRGVwZW5kQ2xhc3MoImhvdmVyIik7dGhpcy5zZXRJbmRleE92ZXIoKX0sb25tb3VzZW1vdmU6ZnVuY3Rpb24oZSxkKXt2YXIgZj10aGlzLl9nZXRQYWdlQ29vcmRzKGUpO3RoaXMuX3NldCh0aGlzLmNhbGMoZi54KSl9LG9ubW91c2V1cDpmdW5jdGlvbihkKXtpZih0aGlzLnBhcmVudC5zZXR0aW5ncy5jYWxsYmFjayYmYi5pc0Z1bmN0aW9uKHRoaXMucGFyZW50LnNldHRpbmdzLmNhbGxiYWNrKSl7dGhpcy5wYXJlbnQuc2V0dGluZ3MuY2FsbGJhY2suY2FsbCh0aGlzLnBhcmVudCx0aGlzLnBhcmVudC5nZXRWYWx1ZSgpKX10aGlzLnB0ci5yZW1vdmVEZXBlbmRDbGFzcygiaG92ZXIiKX0sc2V0SW5kZXhPdmVyOmZ1bmN0aW9uKCl7dGhpcy5wYXJlbnQuc2V0UG9pbnRlcnNJbmRleCgxKTt0aGlzLmluZGV4KDIpfSxpbmRleDpmdW5jdGlvbihkKXt0aGlzLnB0ci5jc3Moe3pJbmRleDpkfSl9LGxpbWl0czpmdW5jdGlvbihkKXtyZXR1cm4gdGhpcy5wYXJlbnQubGltaXRzKGQsdGhpcyl9LGNhbGM6ZnVuY3Rpb24oZSl7dmFyIGQ9dGhpcy5saW1pdHMoKChlLXRoaXMuX3BhcmVudC5vZmZzZXQubGVmdCkqMTAwKS90aGlzLl9wYXJlbnQud2lkdGgpO3JldHVybiBkfSxzZXQ6ZnVuY3Rpb24oZCxlKXt0aGlzLnZhbHVlLm9yaWdpbj10aGlzLnBhcmVudC5yb3VuZChkKTt0aGlzLl9zZXQodGhpcy5wYXJlbnQudmFsdWVUb1ByYyhkLHRoaXMpLGUpfSxfc2V0OmZ1bmN0aW9uKGUsZCl7aWYoIWQpe3RoaXMudmFsdWUub3JpZ2luPXRoaXMucGFyZW50LnByY1RvVmFsdWUoZSl9dGhpcy52YWx1ZS5wcmM9ZTt0aGlzLnB0ci5jc3Moe2xlZnQ6ZSsiJSJ9KTt0aGlzLnBhcmVudC5yZWRyYXcodGhpcyl9fSl9KShqUXVlcnkpOwo=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ0Vyd2VpdGVydGVyIEluaGFsdCc7CiRsYW5nWydhZHZhbmNlZGNvbnRlbnRfdGFibmFtZSddID0gJ0Vyd2VpdGVydGUgT3B0aW9uZW4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgQWR2YW5jZWRDb250ZW50ICVzIHd1cmRlIGluc3RhbGxpZXJ0JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgQWR2YW5jZWRDb250ZW50ICVzIHd1cmRlIGRlaW5zdGFsbGllcnQnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBBZHZhbmNlZENvbnRlbnQgYXVmIFZlcnNpb24gJXMgYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgQWR2YW5jZWRDb250ZW50ICVzIHd1cmRlIGluc3RhbGxpZXJ0Lic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWwgQWR2YW5jZWRDb250ZW50ICVzIHd1cmRlIGRlaW5zdGFsbGllcnQuJzsKJGxhbmdbJ2NvbmZpcm11bmluc3RhbGwnXSA9ICclc1dvbGxlbiBTaWUgZGFzIE1vZHVsIEFkdmFuY2VkQ29udGVudCB3aXJrbGljaCBkZWluc3RhbGxpZXJlbj8nOwokbGFuZ1snd2FybmluZ3VuaW5zdGFsbCddID0gIldBUk5VTkchIFNpZSBoYWJlbiBpbiBkZW4gTW9kdWxlaW5zdGVsbHVuZ2VuIGtlaW5lIEFrdGlvbiBiZWltIERlaW5zdGFsbGllcmVuIGdld8OkaGx0ISBTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgYWxsZSBTZWl0ZW4gdm9tIFR5cCAnRXJ3ZWl0ZXJ0ZXIgSW5oYWx0JyB6dXLDvGNrIGF1ZiBkZW4gU3RhbmRhcmQtSW5oYWx0c3R5cGVuIGdlw6RuZGVydCBvZGVyIGdlbMO2c2NodCB3ZXJkZW4gYmV2b3IgU2llIGRhcyBNb2R1bCBlbnRmZXJuZW4hIEFuZGVyZW5mYWxscyBmdW5rdGlvbmllcnQgSWhyZSBDTVMgSW5zdGFsbGF0aW9uIG5pY2h0IG1laHIhICI7CiRsYW5nWyd3YXJuaW5ndW5pbnN0YWxsMSddID0gIldBUk5VTkchIERhbWl0IHdlcmRlbiBhbGxlIFNlaXRlbiB2b20gVHlwICdFcndlaXRlcnRlciBJbmhhbHQnIGdlbMO2c2NodCEgIjsKJGxhbmdbJ3dhcm5pbmd1bmluc3RhbGwyJ10gPSAiSElOV0VJUzogQWxsZSBTZWl0ZW4gdm9tIFR5cCAnRXJ3ZWl0ZXJ0ZXIgSW5oYWx0JyB3ZXJkZW4gd2llZGVyIGF1ZiBkZW4gU3RhbmRhcmQtSW5oYWx0c3R5cGVuIGdlc2V0enQhICI7CiRsYW5nWyd3YXJuaW5ndW5pbnN0YWxsMyddID0gIldBUk5VTkchIEFsbGUgU2VpdGVuIHZvbSBUeXAgJ0Vyd2VpdGVydGVyIEluaGFsdCcgd2VyZGVuIHdpZWRlciBhdWYgZGVuIFN0YW5kYXJkLUluaGFsdHN0eXBlbiBnZXNldHp0IHVuZCBhbGxlIHp1c8OkdHppY2hlbiBJbmhhbHRzYmzDtmNrZSB3ZXJkZW4gZ2Vsw7ZzY2h0ISAiOwokbGFuZ1snbm90aWNlX2R1cGxpY2F0ZWNvbnRlbnQnXSA9ICc8ZW0+PHN0cm9uZz5IaW53ZWlzOjwvc3Ryb25nPiBEaWVzZXIgQmxvY2sgd2lyZCBtZWhyZmFjaCBpbSBUZW1wbGF0ZSB2ZXJ3ZW5kZXQuIFNpZSBzZWhlbiBoaWVyIG51ciBkZW4gZXJzdGVuIEJsb2NrLjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2Jhc2ljYXR0cmliJ10gPSAiPGVtPjxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gRGVyIEJhc2lzLUluaGFsdHMtRWlnZW5zY2hhZnRzLU5hbWUgJyVzJyBrYW5uIG5pY2h0IGFscyBXZXJ0IGYmdXVtbDtyIGRlbiBQYXJhbWV0ZXIgJ2Jsb2NrJyB2ZXJ3ZW5kZXQgd2VyZGVuLiA8YnIgLz5EaWVzZXIgQmxvY2sgaXN0IGluYWt0aXYuIE51ciBkZXIgZXJzdGUgQmxvY2sgd2lyZCBhbmdlemVpZ3QuIFByJnV1bWw7ZmVuIFNpZSBJaHIgU2VpdGVuLVRlbXBsYXRlIHVuZCB3JmF1bWw7aGxlbiBTaWUgZiZ1dW1sO3IgZGVuIFBhcmFtZXRlciAnYmxvY2snIGVpbmVuIGFuZGVyZW4gV2VydC48L2VtPiI7CiRsYW5nWydlcnJvcl9leHBpcmVkYXRlJ10gPSAnRGFzIEVuZGRhdHVtIG11c3MgaGludGVyIGRlbSBTdGFydGRhdHVtIGxpZWdlbi4nOwokbGFuZ1sneW91YXJlaW50ZXh0J10gPSAnQWt0dWVsbGVzIFZlcnplaWNobmlzJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdCaWxkZ3Imb3VtbDsmc3psaWc7ZSc7CiRsYW5nWydzaXplJ10gPSAnRGF0ZWlnciZvdW1sOyZzemxpZztlJzsKJGxhbmdbJ2luaGVyaXRfZnJvbV9wYXJlbnQnXSA9ICdWb20gJnV1bWw7YmVyZ2VvcmRuZXRlbiBFbGVtZW50ICZ1dW1sO2Jlcm5laG1lbic7CiRsYW5nWydub25lJ10gPSAnbmljaHRzJzsKJGxhbmdbJ2ludmFsaWQnXSA9ICd1bmcmdXVtbDtsdGlnJzsKJGxhbmdbJ2ludmFsaWRfYmxvY2t0eXBlJ10gPSAiPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBVbmcmdXVtbDtsdGlnZXIgV2VydCAnJXMnIGRlcyBQYXJhbWV0ZXJzIGJsb2NrX3R5cGUgaW0gQmxvY2sgJyVzJy48YnIgLz5CaXR0ZSBwciZ1dW1sO2ZlbiBTaWUgSWhyIFNlaXRlbi1UZW1wbGF0ZS48L2VtPiI7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRfYmxvY2twYXJhbXMnXSA9ICI8ZW0+PHN0cm9uZz5GZWhsZXI6PC9zdHJvbmc+IFVuenVyZWljaGVuZGUgcGFyYW1ldGVyLiA8YnIgLz5GZWhsZW5kZXIgcGFyYW0gJyVzJyBmJnV1bWw7ciBibG9jayAnJXMnLiAmVXVtbDtiZXJwciZ1dW1sO2ZlbiBTaWUgSWhyIFNlaXRlbi1UZW1wbGF0ZS48L2VtPiI7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laW4nOwokbGFuZ1snZnJvbnRlbmRhY2Nlc3MnXSA9ICdGcm9udGVuZC1adWdyaWZmJzsKJGxhbmdbJ3JlZGlyZWN0cGFnZSddID0gJ1NlaXRlIGF1ZiBkaWUgdW1nZWxlaXRldCB3ZXJkZW4gc29sbCwgd2VubiBkZXIgWnVncmlmZiBuaWNodCBlcmxhdWJ0IGlzdCc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAnQW5tZWxkZS1Gb3JtdWxhciBhbnplaWdlbic7CiRsYW5nWydyZWdpc3RlcmVkdXNlcnMnXSA9ICdOdXIgZiZ1dW1sO3IgcmVnaXN0cmllcnRlIE51dHplcic7CiRsYW5nWydibG9jayddID0gJ0Jsb2NrICc7CiRsYW5nWyd1c2VleHBpcmVkYXRlJ10gPSAnQWJsYXVmZGF0dW0gdmVyd2VuZGVuJzsKJGxhbmdbJ3N0YXJ0ZGF0ZSddID0gJ1N0YXJ0ZGF0dW0nOwokbGFuZ1snZW5kZGF0ZSddID0gJ0VuZGRhdHVtJzsKJGxhbmdbJ2Jsb2NrY29udGVudCddID0gJ0Jsb2NrLUluaGFsdCc7CiRsYW5nWydzZXRwYWdlaW5hY3RpdmUnXSA9ICdTZWl0ZSBhdWYgaW5ha3RpdiBzZXR6ZW4nOwokbGFuZ1snZGVsZXRlcGFnZSddID0gJ1NlaXRlIGwmb3VtbDtzY2hlbic7CiRsYW5nWyd1bmluc3RhbGxhY3Rpb24nXSA9ICdBa3Rpb24gYmVpbSBEZWluc3RhbGxpZXJlbic7CiRsYW5nWydzZXRjb250ZW50MSddID0gJ0FsbGUgU2VpdGVuIGF1ZiBUeXAgIkluaGFsdCIgc2V0emVuJzsKJGxhbmdbJ3NldGNvbnRlbnQyJ10gPSAnQWxsZSBTZWl0ZW4gYXVmIFR5cCAiSW5oYWx0IiBzZXR6ZW4gdW5kIEFkdmFuY2VkQ29udGVudC1CbCZvdW1sO2NrZSBsJm91bWw7c2NoZW4nOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnRWluc3RlbGx1bmdlbiBha3R1YWxpc2llcnQnOwokbGFuZ1snc3VjY2VzcyddID0gJ09LJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRmVobGVyJzsKJGxhbmdbJ2RlbGV0ZXBhZ2VzJ10gPSAnQWxsZSBTZWl0ZW4gdm9tIFR5cCAiRXJ3ZWl0ZXJ0ZXIgSW5oYWx0IiBsJm91bWw7c2NoZW4nOwokbGFuZ1snaW1wb3J0cGFnZXMnXSA9ICJBbGxlIFNlaXRlbiB2b20gVHlwICclcycgYXVmIFR5cCAnJXMnIHNldHplbi4iOwokbGFuZ1snY29uZmlybWltcG9ydCddID0gJ1dvbGxlbiBTaWUgd2lya2xpY2ggZGVuIEluaGFsdHMtVHlwIGFsbGVyIEluaGFsdHNzZWl0ZW4gJmF1bWw7bmRlcm4/JzsKJGxhbmdbJ3RvZ2dsZV9tZXNzYWdlJ10gPSAnRGllc2UgTmFjaHJpY2h0IHZlcmJlcmdlbic7CiRsYW5nWydjb250ZW50c2V0dGluZ3MnXSA9ICdTdGFuZGFyZC1FaW5zdGVsbHVuZ2VuIGYmdXVtbDtyIGRlbiBUYWIgIkVyd2VpdGVydGUgT3B0aW9uZW4iJzsKJGxhbmdbJ3JlZGlyZWN0cGFyYW1zJ10gPSAnVVJMLVBhcmFtZXRlciwgZGllIGJlaSBVbWxlaXR1bmcgYW5nZWhhbmdlbiB3ZXJkZW4gc29sbGVuJzsKJGxhbmdbJ2V2YWx1YXRlc21hcnR5J10gPSAnU21hcnR5IHZlcndlbmRlbiwgdW0gZGllIFBhcmFtZXRlciB6dSB2ZXJhcmJlaXRlbic7CiRsYW5nWydlcnJvcl9sb2FkaW5nX21vZHVsZSddID0gIjxlbT48c3Ryb25nPkZlaGxlcjo8L3N0cm9uZz4gTW9kdWwgJyVzJyBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4uIChhbmdlZ2ViZW4gZiZ1dW1sO3IgQmxvY2sgJyVzJyBpbSBTZWl0ZW4tVGVtcGxhdGUuKTwvZW0+IjsKJGxhbmdbJ2Vycm9yX2NvbnRlbnRibG9ja19zdXBwb3J0J10gPSAiPGVtPjxzdHJvbmc+RmVobGVyOjwvc3Ryb25nPiBNb2R1bCAnJXMnIHVudGVyc3QmdXVtbDt0enQga2VpbmUgSW5oYWx0c2JsJm91bWw7Y2tlLiAoYW5nZWdlYmVuIGYmdXVtbDsgYmxvY2sgJyVzJyBpbSBTZWl0ZW4tVGVtcGxhdGUuKTwvZW0+IjsKJGxhbmdbJ3N1Y2Nlc3NfaW1wb3J0cGFnZXMnXSA9ICJBbGxlIFNlaXRlbiBkZXMgVHlwcyAnJXMnIGVyZm9sZ3JlaWNoIGdlJmF1bWw7bmRlcnQgaW4gJyVzJyI7CiRsYW5nWydzaG93X2FkdmFuY2VkY29udGVudF9vcHRpb25zJ10gPSAiWmVpZ2UgVGFiICdFcndlaXRlcnRlIE9wdGlvbmVuJyI7CiRsYW5nWydkaXNwbGF5X3NldHRpbmdzJ10gPSAnJXMgRWluc3RlbGx1bmdlbiBhbnplaWdlbic7CiRsYW5nWydzYXZlX2NvbGxhcHNlX3N0YXR1cyddID0gJ1NwZWljaGVyZSBTaWNodGJhcmtlaXQgdm9uICVzJzsKJGxhbmdbJ2NvbnRlbnRfYmxvY2tzJ10gPSAnSW5oYWx0c2JsJm91bWw7Y2tlJzsKJGxhbmdbJ2Jsb2NrX21lc3NhZ2UnXSA9ICdCbG9jay1NaXR0ZWlsdW5nZW4nOwokbGFuZ1snYmxvY2tfZ3JvdXBzJ10gPSAnQmxvY2tncnVwcGUnOwokbGFuZ1snY29sbGFwc2VfZGVmYXVsdCddID0gJ0JsZW5kZSAlcyBhdXMnOwokbGFuZ1sncGVyX3BhZ2UnXSA9ICdwcm8gU2VpdGUnOwokbGFuZ1sncGVyX3RlbXBsYXRlJ10gPSAncHJvIFRlbXBsYXRlJzsKJGxhbmdbJ2JvdGgxJ10gPSAnVGVtcGxhdGUgT0RFUiBTZWl0ZSAnOwokbGFuZ1snYm90aDInXSA9ICdUZW1wbGF0ZSBVTkQgU2VpdGUnOwokbGFuZ1snY29udGVudCddID0gJ0luaGFsdCc7CiRsYW5nWydjb250ZW50MiddID0gJ0Vyd2VpdGVydGVyIEluaGFsdCc7CiRsYW5nWydwcmVmcyddID0gJ0VpbnN0ZWxsdW5nZW4nOwokbGFuZ1snbXVsdGlfaW5wdXQnXSA9ICdNdWx0aSBJbnB1dHMnOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsJ10gPSAnTXVsdGkgSW5wdXQgVGVtcGxhdGVzJzsKJGxhbmdbJ2FkZF9tdWx0aV9pbnB1dCddID0gJ05ldWVzIG11bHRpIGlucHV0IGhpbnp1ZyZ1dW1sO2dlbic7CiRsYW5nWydhZGRfbXVsdGlfaW5wdXRfdHBsJ10gPSAnTmV1ZXMgbXVsdGkgaW5wdXQgdGVtcGxhdGUgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2lucHV0X2lkJ10gPSAnRWluZ2FiZS1JRCc7CiRsYW5nWydpbnB1dF9maWVsZHMnXSA9ICdFaW5nYWJlZmVsZGVyJzsKJGxhbmdbJ3RwbF9uYW1lJ10gPSAnVGVtcGxhdGUgTmFtZSc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGlzdCBlaW4gUGZsaWNodGZlbGQgdW5kIGRhcmYgbmljaHQgbGVlciBzZWluICc7CiRsYW5nWydlcnJvcl9pbnB1dF9maWVsZHMnXSA9ICdFaW5nYWJlZmVsZGVyIGlzdCBlaW4gUGZsaWNodGZlbGQgdW5kIGRhcmYgbmljaHQgbGVlciBzZWluLic7CiRsYW5nWydlcnJvcl9pbnB1dF9pZCddID0gJ0tlaW5lIEVpbmdhYmUtSUQgYW5nZWdlYmVuIG9kZXIgRWluZ2FiZS1JRCBpc3QgYmVyZWl0cyB2b3JoYW5kZW4uJzsKJGxhbmdbJ2Vycm9yX2lucHV0X2lkX2V4aXN0cyddID0gJ0VpbmdhYmUtSUQgd2lyZCBiZXJlaXRzIHZlcndlbmRldC4gVyZhdW1sO2hsZW4gU2llIGVpbmUgYW5kZXJlLiAoTXVzcyBlaW5kZXV0aWcgc2VpbiknOwokbGFuZ1snbXVsdGlfaW5wdXRfYWRkZWQnXSA9ICdNdWx0aSBJbnB1dCBoaW56dWdlZiZ1dW1sO2d0Lic7CiRsYW5nWydtdWx0aV9pbnB1dF9kZWxldGVkJ10gPSAnTXVsdGkgSW5wdXQgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdXBkYXRlZCddID0gJ011bHRpIElucHV0IGFrdHVhbGlzaWVydC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsX2FkZGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgaGluenVnZWYmdXVtbDtndC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsX3VwZGF0ZWQnXSA9ICdNdWx0aSBJbnB1dCB0ZW1wbGF0ZSBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF9kZWxldGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnQXVzZ2V3JmF1bWw7aGx0ZSBFbGVtZW50ZSBsJm91bWw7c2NoZW4nOwokbGFuZ1snY29uZmlybV9kZWxldGUnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoLCBkaWVzZXMgRWxlbWVudCBsJm91bWw7c2NoZW4/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnV29sbGVuIFNpZSB3aXJrbGljaCwgZGllIGF1c2dldyZhdW1sO2hsdGVuIEVsZW1lbnRlIGwmb3VtbDtzY2hlbj8nOwokbGFuZ1snaGlkZV9jb250ZW50J10gPSAnS2VpbmUgKG51ciBJbmhhbHQgdmVyYmVyZ2VuKSc7CiRsYW5nWydoaWRlX21lbnVfaXRlbSddID0gJ1NlaXRlIGltIE1lbiZ1dW1sOyB2ZXJiZXJnZW4nOwokbGFuZ1snbG9nZ2Vkb3V0J10gPSAnd2VubiBhdXNnZWxvZ2d0JzsKJGxhbmdbJ2xvZ2dlZGluJ10gPSAnd2VubiBlaW5nZWxvZ2d0JzsKJGxhbmdbJ2FmdGVyY3VycmRhdGUnXSA9ICduYWNoIGRlbSBha3R1ZWxsZW4gRGF0dW0nOwokbGFuZ1snYWZ0ZXJzdGFydGRhdGUnXSA9ICduYWNoIGRlbSBTdGFydGRhdHVtJzsKJGxhbmdbJ21pbnV0ZXMnXSA9ICdNaW51dGVuJzsKJGxhbmdbJ2hvdXJzJ10gPSAnU3R1bmRlbic7CiRsYW5nWydkYXlzJ10gPSAnVGFnZSc7CiRsYW5nWyd3ZWVrcyddID0gJ1dvY2hlbic7CiRsYW5nWydtb250aHMnXSA9ICdNb25hdGUnOwokbGFuZ1sneWVhcnMnXSA9ICdKYWhyZSc7CiRsYW5nWydoZWxwX3RwbF92YXJzJ10gPSAnPHA+PHN0cm9uZz5UZW1wbGF0ZS1WYXJpYWJsZW46PC9zdHJvbmc+PC9wPgo8cD48cHJlPjxjb2RlPnskaW5wdXRzfTwvY29kZT48L3ByZT4gaXN0IGVpbiBBcnJheSB3ZWxjaGVzIGFsbGUgSW5wdXQtRWxlbWVudGUgZGVzIE11bHRpSW5wdXQgQmxvY2tzIGVudGgmYXVtbDt0LjxiciAvPgpKZWRlcyBJbnB1dC1FbGVtZW50IGlzdCB3aWVkZXJ1bSBlaW4gQXJyYXkgd2VsY2hlcyBhbGxlIFBhcmFtZXRlciBlbnRoJmF1bWw7bHQuIDxiciAvPgooU2llaGUgTW9kdWxoaWxmZSk8YnIgLz4KWnVzJmF1bWw7dHpsaWNoZXIgUGFyYW1ldGVyIGlzdCAiaW5wdXQiLiBEaWVzZXIgZ2lidCBkYXMgSW5wdXRmZWxkIGF1cy48YnIgLz4KVW0gYXVmIGRpZSBQYXJhbWF0ZXIgenV6dWdyZWlmZW4gd2lyZCBkZXIgUHVua3QtU3ludGF4IHZlcndlbmRldC48YnIgLz4KQmVpc3BpZWw6PC9wPgo8cHJlPjxjb2RlPntmb3JlYWNoIGZyb209JGlucHV0cyBpdGVtPWVsbX0KCXskZWxtLmxhYmVsfTombmJzcDt7JGVsbS5pbnB1dH08YnIgLz4Key9mb3JlYWNofTwvY29kZT48L3ByZT4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddICAgICAgICAgICAgICAgID0gIkFkdmFuY2VkIENvbnRlbnQiOwokbGFuZ1snYWR2YW5jZWRjb250ZW50X3RhYm5hbWUnXSAgICAgICAgPSAiQWR2YW5jZWQgT3B0aW9ucyI7CiRsYW5nWydpbnN0YWxsZWQnXSAgICAgICAgICAgICAgICAgICAgICA9ICJNb2R1bGUgQWR2YW5jZWRDb250ZW50ICVzIGluc3RhbGxlZCI7CiRsYW5nWyd1bmluc3RhbGxlZCddICAgICAgICAgICAgICAgICAgICA9ICJNb2R1bGUgQWR2YW5jZWRDb250ZW50ICVzIHVuaW5zdGFsbGVkIjsKJGxhbmdbJ3VwZ3JhZGVkJ10gICAgICAgICAgICAgICAgICAgICAgID0gIk1vZHVsZSBBZHZhbmNlZENvbnRlbnQgdXBncmFkZWQgdG8gJXMiOwokbGFuZ1sncG9zdGluc3RhbGwnXSAgICAgICAgICAgICAgICAgICAgPSAiTW9kdWxlIEFkdmFuY2VkQ29udGVudCAlcyBpbnN0YWxsZWQuIjsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSAgICAgICAgICAgICAgICAgID0gIk1vZHVsZSBBZHZhbmNlZENvbnRlbnQgJXMgdW5pbnN0YWxsZWQuIjsKJGxhbmdbJ2NvbmZpcm11bmluc3RhbGwnXSAgICAgICAgICAgICAgID0gIiVzRG8geW91IHJlYWxseSB3YW50IHVuaW5zdGFsbCB0aGUgbW9kdWxlIEFkdmFuY2VkQ29udGVudD8iOwokbGFuZ1snd2FybmluZ3VuaW5zdGFsbCddICAgICAgICAgICAgICAgPSAiV0FSTklORyEgWW91IGRpZCBub3Qgc2VsZWN0IGFuIHVuaW5zdGFsbCBhY3Rpb24gaW4gdGhlIG1vZHVsZSBwcmVmZXJlbmNlcyEgTWFrZSBzdXJlIGFsbCBwYWdlcyBvZiBhZHZhbmNlZCBjb250ZW50IGFyZSByZXZlcnRlZCB0byB0aGUgZGVmYXVsdCBjb250ZW50IHR5cGUgb3IgZGVsZXRlZCBiZWZvcmUgcmVtb3ZpbmcgdGhpcyBtb2R1bGUhIE90aGVyd2lzZSB5b3VyIG1heSBicmljayB5b3VyIENNUyBpbnN0YWxsYXRpb24hICI7CiRsYW5nWyd3YXJuaW5ndW5pbnN0YWxsMSddICAgICAgICAgICAgICA9ICJXQVJOSU5HISBUaGlzIHdpbGwgZGVsZXRlIGFsbCBwYWdlcyBvZiB0eXBlIEFkdmFuY2VkQ29udGVudCEgIjsKJGxhbmdbJ3dhcm5pbmd1bmluc3RhbGwyJ10gICAgICAgICAgICAgID0gIk5PVElDRTogVGhpcyB3aWxsIHJldmVydCBhbGwgcGFnZXMgb2YgQWR2YW5jZWRDb250ZW50IGJhY2sgdG8gdGhlIGRlZmF1bHQgY29udGVudHR5cGUuICI7CiRsYW5nWyd3YXJuaW5ndW5pbnN0YWxsMyddICAgICAgICAgICAgICA9ICJXQVJOSU5HISBUaGlzIHdpbGwgcmV2ZXJ0IGFsbCBwYWdlcyBvZiBBZHZhbmNlZENvbnRlbnQgYmFjayB0byB0aGUgZGVmYXVsdCBjb250ZW50dHlwZSBhbmQgZGVsZXRlIGFsbCBhZGRpdGlvbmFsIGNvbnRlbnRibG9ja3MgKGV4Y2VwdCB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrKS4gIjsKJGxhbmdbJ25vdGljZV9kdXBsaWNhdGVjb250ZW50J10gICAgICAgID0gIjxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVGhpcyBibG9jayBpcyB1c2VkIG11bHRpcGxlIHRpbWVzIGluIHRlbXBsYXRlLiBZb3Ugb25seSBzZWUgdGhlIGZpcnN0IGJsb2NrIGhlcmUuPC9lbT4iOwokbGFuZ1snZXJyb3JfYmFzaWNhdHRyaWInXSAgICAgICAgICAgICAgPSAiPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBDYW5ub3QgdXNlIGJhc2ljIGNvbnRlbnQgcHJvcGVydHkgbmFtZSAnJXMnIGFzIHZhbHVlIG9mIHBhcmFtICdibG9jaycuIDxiciAvPlRoaXMgYmxvY2sgaXMgZGlzYWJsZWQuIENoZWNrIHlvdXIgcGFnZSB0ZW1wbGF0ZSBhbmQgY2hvc2UgYSBkaWZmZXJlbnQgdmFsdWUgb2YgcGFyYW0gJ2Jsb2NrJy48L2VtPiI7CiRsYW5nWydlcnJvcl9leHBpcmVkYXRlJ10gICAgICAgICAgICAgICA9ICJFbmQgZGF0ZSBtdXN0IGJlIGxhdGVyIHRoYW4gc3RhcnQgZGF0ZS4iOwokbGFuZ1sneW91YXJlaW50ZXh0J10gICAgICAgICAgICAgICAgICAgPSAiQ3VycmVudCBkaXJlY3RvcnkiOwokbGFuZ1snZGltZW5zaW9ucyddICAgICAgICAgICAgICAgICAgICAgPSAiSW1hZ2VzaXplIjsKJGxhbmdbJ3NpemUnXSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gIkZpbGVzaXplIjsKJGxhbmdbJ2luaGVyaXRfZnJvbV9wYXJlbnQnXSAgICAgICAgICAgID0gIkluaGVyaXQgZnJvbSBwYXJlbnQiOwokbGFuZ1snbm9uZSddICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAibm9uZSI7CiRsYW5nWydpbnZhbGlkJ10gICAgICAgICAgICAgICAgICAgICAgICA9ICJpbnZhbGlkIjsKJGxhbmdbJ2ludmFsaWRfYmxvY2t0eXBlJ10gICAgICAgICAgICAgID0gIjxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gSW52YWxpZCB2YWx1ZSAnJXMnIG9mIHBhcmFtIGJsb2NrX3R5cGUgaW4gYmxvY2sgJyVzJy48YnIgLz5DaGVjayB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9lbT4iOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50X2Jsb2NrcGFyYW1zJ10gPSAiPGVtPjxzdHJvbmc+RXJyb3I6PC9zdHJvbmc+IEluc3VmZmljaWVudCBwYXJhbXMuIDxiciAvPk1pc3NpbmcgcGFyYW0gJyVzJyBmb3IgYmxvY2sgJyVzJy4gQ2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlLjwvZW0+IjsKJGxhbmdbJ3llcyddICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gIlllcyI7CiRsYW5nWydubyddICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICJObyI7CiRsYW5nWydmcm9udGVuZGFjY2VzcyddICAgICAgICAgICAgICAgICA9ICJGcm9udGVuZCBhY2Nlc3MiOwokbGFuZ1sncmVkaXJlY3RwYWdlJ10gICAgICAgICAgICAgICAgICAgPSAiUGFnZSB0byByZWRpcmVjdCB0byBpZiBubyBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGUgcGFnZSI7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gICAgICAgICAgICAgICAgICA9ICJTaG93IGxvZ2luIGZvcm0iOwokbGFuZ1sncmVnaXN0ZXJlZHVzZXJzJ10gICAgICAgICAgICAgICAgPSAiUmVnaXN0ZXJlZCB1c2VycyBvbmx5IjsKJGxhbmdbJ2Jsb2NrJ10gICAgICAgICAgICAgICAgICAgICAgICAgID0gIkJsb2NrIjsKJGxhbmdbJ3VzZWV4cGlyZWRhdGUnXSAgICAgICAgICAgICAgICAgID0gIlVzZSBleHBpcmUgZGF0ZSI7CiRsYW5nWydzdGFydGRhdGUnXSAgICAgICAgICAgICAgICAgICAgICA9ICJTdGFydCBEYXRlIjsKJGxhbmdbJ2VuZGRhdGUnXSAgICAgICAgICAgICAgICAgICAgICAgID0gIkVuZCBEYXRlIjsKJGxhbmdbJ2Jsb2NrY29udGVudCddICAgICAgICAgICAgICAgICAgID0gIkJsb2NrIENvbnRlbnQiOwokbGFuZ1snc2V0cGFnZWluYWN0aXZlJ10gICAgICAgICAgICAgICAgPSAiU2V0IFBhZ2UgdG8gSW5hY3RpdmUiOwokbGFuZ1snZGVsZXRlcGFnZSddICAgICAgICAgICAgICAgICAgICAgPSAiRGVsZXRlIFBhZ2UiOwokbGFuZ1sndW5pbnN0YWxsYWN0aW9uJ10gICAgICAgICAgICAgICAgPSAiVW5pbnN0YWxsIGFjdGlvbiI7CiRsYW5nWydzZXRjb250ZW50MSddICAgICAgICAgICAgICAgICAgICA9ICJTZXQgYWxsIFBhZ2VzIG9mICdBZHZhbmNlZENvbnRlbnQnIGJhY2sgdG8gdHlwZSAnQ29udGVudCciOwokbGFuZ1snc2V0Y29udGVudDInXSAgICAgICAgICAgICAgICAgICAgPSAiU2V0IGFsbCBQYWdlcyBvZiAnQWR2YW5jZWRDb250ZW50JyBiYWNrIHRvIHR5cGUgJ0NvbnRlbnQnIGFuZCByZW1vdmUgQWR2YW5jZWRDb250ZW50IGJsb2NrcyI7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSAgICAgICAgICAgICAgICAgICA9ICJQcmVmZXJlbmNlcyB1cGRhdGVkIjsKJGxhbmdbJ3N1Y2Nlc3MnXSAgICAgICAgICAgICAgICAgICAgICAgID0gIk9rIjsKJGxhbmdbJ2Vycm9yJ10gICAgICAgICAgICAgICAgICAgICAgICAgID0gIkVycm9yIjsKJGxhbmdbJ2RlbGV0ZXBhZ2VzJ10gICAgICAgICAgICAgICAgICAgID0gIkRlbGV0ZSBhbGwgcGFnZXMgb2YgdHlwZSBBZHZhbmNlZENvbnRlbnQiOwokbGFuZ1snaW1wb3J0cGFnZXMnXSAgICAgICAgICAgICAgICAgICAgPSAiU2V0IGFsbCBQYWdlcyBvZiB0eXBlICclcycgdG8gdHlwZSAnJXMnLiI7CiRsYW5nWydjb25maXJtaW1wb3J0J10gICAgICAgICAgICAgICAgICA9ICJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50IHR5cGUgb2YgYWxsIGNvbnRlbnQgcGFnZXM/IjsKJGxhbmdbJ3RvZ2dsZV9tZXNzYWdlJ10gICAgICAgICAgICAgICAgID0gIkhpZGUgdGhpcyBtZXNzYWdlIjsKJGxhbmdbJ2NvbnRlbnRzZXR0aW5ncyddICAgICAgICAgICAgICAgID0gIkRlZmF1bHQgQWR2YW5jZWRDb250ZW50IHNldHRpbmdzIjsKJGxhbmdbJ3JlZGlyZWN0cGFyYW1zJ10gICAgICAgICAgICAgICAgID0gIlVSTCBwYXJhbXMgdG8gYXBwZW5kIHdoZW4gcmVkaXJlY3RpbmciOwokbGFuZ1snZXZhbHVhdGVzbWFydHknXSAgICAgICAgICAgICAgICAgPSAiVXNlIHNtYXJ0eSB0byBwcm9jZXNzIHRoZSBwYXJhbXMiOwokbGFuZ1snZXJyb3JfbG9hZGluZ19tb2R1bGUnXSAgICAgICAgICAgPSAiPGVtPjxzdHJvbmc+RXJyb3I6PC9zdHJvbmc+IENvdWxkIG5vdCBsb2FkIG1vZHVsZSAnJXMnLiAoRGVmaW5lZCBmb3IgYmxvY2sgJyVzJyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuKTwvZW0+IjsKJGxhbmdbJ2Vycm9yX2NvbnRlbnRibG9ja19zdXBwb3J0J10gICAgID0gIjxlbT48c3Ryb25nPkVycm9yOjwvc3Ryb25nPiBNb2R1bGUgJyVzJyBkb2VzIG5vdCBzdXBwb3J0IGNvbnRlbnRibG9ja3MuIChEZWZpbmVkIGZvciBibG9jayAnJXMnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZS4pPC9lbT4iOwokbGFuZ1snc3VjY2Vzc19pbXBvcnRwYWdlcyddICAgICAgICAgICAgPSAiQWxsIHBhZ2VzIG9mIHR5cGUgJyVzJyBzdWNjZXNmdWxseSBjaGFuZ2VkIHRvICclcyciOwokbGFuZ1snc2hvd19hZHZhbmNlZGNvbnRlbnRfb3B0aW9ucyddICAgPSAiU2hvdyBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyB0YWIiOwokbGFuZ1snZGlzcGxheV9zZXR0aW5ncyddICAgICAgICAgICAgICAgPSAiJXMgZGlzcGxheSBzZXR0aW5ncyI7CiRsYW5nWydzYXZlX2NvbGxhcHNlX3N0YXR1cyddICAgICAgICAgICA9ICJTYXZlIGNvbGxwYXNlIHN0YXR1cyBvZiAlcyI7CiRsYW5nWydjb250ZW50X2Jsb2NrcyddICAgICAgICAgICAgICAgICA9ICJjb250ZW50IGJsb2NrcyI7CiRsYW5nWydibG9ja19tZXNzYWdlJ10gICAgICAgICAgICAgICAgICA9ICJjb250ZW50IGJsb2NrIG1lc3NhZ2UiOwokbGFuZ1snYmxvY2tfZ3JvdXBzJ10gICAgICAgICAgICAgICAgICAgPSAiYmxvY2sgZ3JvdXBzIjsKJGxhbmdbJ2NvbGxhcHNlX2RlZmF1bHQnXSAgICAgICAgICAgICAgID0gIkNvbGxhcHNlICVzIGJ5IGRlZmF1bHQiOwokbGFuZ1sncGVyX3BhZ2UnXSAgICAgICAgICAgICAgICAgICAgICAgPSAicGVyIHBhZ2UiOwokbGFuZ1sncGVyX3RlbXBsYXRlJ10gICAgICAgICAgICAgICAgICAgPSAicGVyIHRlbXBsYXRlIjsKJGxhbmdbJ2JvdGgxJ10gICAgICAgICAgICAgICAgICAgICAgICAgID0gInRlbXBsYXRlIE9SIHBhZ2UgIjsKJGxhbmdbJ2JvdGgyJ10gICAgICAgICAgICAgICAgICAgICAgICAgID0gInRlbXBsYXRlIEFORCBwYWdlIjsKJGxhbmdbJ2NvbnRlbnQnXSAgICAgICAgICAgICAgICAgICAgICAgID0gJ0NvbnRlbnQnOwokbGFuZ1snY29udGVudDInXSAgICAgICAgICAgICAgICAgICAgICAgPSAnQWR2YW5jZWQgQ29udGVudCc7CiRsYW5nWydwcmVmcyddICAgICAgICAgICAgICAgICAgICAgICAgICA9ICdQcmVmZXJlbmNlcyc7CiRsYW5nWydtdWx0aV9pbnB1dCddICAgICAgICAgICAgICAgICAgICA9ICdNdWx0aSBJbnB1dHMnOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsJ10gICAgICAgICAgICAgICAgPSAnTXVsdGkgSW5wdXQgVGVtcGxhdGVzJzsKJGxhbmdbJ2FkZF9tdWx0aV9pbnB1dCddICAgICAgICAgICAgICAgID0gJ0FkZCBuZXcgbXVsdGkgaW5wdXQnOwokbGFuZ1snYWRkX211bHRpX2lucHV0X3RwbCddICAgICAgICAgICAgPSAnQWRkIG5ldyBtdWx0aSBpbnB1dCB0ZW1wbGF0ZSc7CiRsYW5nWydpbnB1dF9pZCddICAgICAgICAgICAgICAgICAgICAgICA9ICdJbnB1dCBJRCc7CiRsYW5nWydpbnB1dF9maWVsZHMnXSAgICAgICAgICAgICAgICAgICA9ICdJbnB1dCBmaWVsZHMnOwokbGFuZ1sndHBsX25hbWUnXSAgICAgICAgICAgICAgICAgICAgICAgPSAnVGVtcGxhdGUgbmFtZSc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddICAgICAgICAgICAgICAgICA9ICdUZW1wbGF0ZSBpcyBhIHJlcXVpcmVkIGZpZWxkIGFuZCBtYXkgbm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2lucHV0X2ZpZWxkcyddICAgICAgICAgICAgID0gIklucHV0IGZpZWxkcyBpcyBhIHJlcXVpcmVkIGZpZWxkIGFuZCBtYXkgbm90IGJlIGVtcHR5LiI7CiRsYW5nWydlcnJvcl9pbnB1dF9pZCddICAgICAgICAgICAgICAgICA9ICJObyBpbnB1dCBpZCBnaXZlbiBvciBpbnB1dCBpZCBhbHJlYWR5IGV4aXN0cy4iOwokbGFuZ1snZXJyb3JfaW5wdXRfaWRfZXhpc3RzJ10gICAgICAgICAgPSAiSW5wdXQgSUQgaXMgYWxyZWFkeSBpbiB1c2UuIENob29zZSBhIGRpZmZlcmVudCBvbmUuIChtdXN0IGJlIHVuaXF1ZSkiOwokbGFuZ1snbXVsdGlfaW5wdXRfYWRkZWQnXSAgICAgICAgICAgICAgPSAiTXVsdGkgSW5wdXQgYWRkZWQuIjsKJGxhbmdbJ211bHRpX2lucHV0X2RlbGV0ZWQnXSAgICAgICAgICAgID0gIk11bHRpIElucHV0IGRlbGV0ZWQuIjsKJGxhbmdbJ211bHRpX2lucHV0X3VwZGF0ZWQnXSAgICAgICAgICAgID0gIk11bHRpIElucHV0IHVwZGF0ZWQuIjsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF9hZGRlZCddICAgICAgICAgID0gIk11bHRpIElucHV0IHRlbXBsYXRlIGFkZGVkLiI7CiRsYW5nWydtdWx0aV9pbnB1dF90cGxfdXBkYXRlZCddICAgICAgICA9ICJNdWx0aSBJbnB1dCB0ZW1wbGF0ZSB1cGRhdGVkLiI7CiRsYW5nWydtdWx0aV9pbnB1dF90cGxfZGVsZXRlZCddICAgICAgICA9ICJNdWx0aSBJbnB1dCB0ZW1wbGF0ZSBkZWxldGVkLiI7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSAgICAgICAgICAgICAgICA9ICJEZWxldGUgc2VsZWN0ZWQgaXRlbXMiOwokbGFuZ1snY29uZmlybV9kZWxldGUnXSAgICAgICAgICAgICAgICAgPSAiRG8geW91IHJlYWxseSB3YW50IGRvIGRlbGV0ZSB0aGlzIGl0ZW0/IjsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gICAgICAgID0gIkRvIHlvdSByZWFsbHkgd2FudCBkbyBkZWxldGUgdGhlIHNlbGVjdGVkIGl0ZW1zPyI7CiRsYW5nWydoaWRlX2NvbnRlbnQnXSAgICAgICAgICAgICAgICAgICA9ICdOb25lIChqdXN0IGhpZGUgdGhlIGNvbnRlbnQpJzsKJGxhbmdbJ2hpZGVfbWVudV9pdGVtJ10gICAgICAgICAgICAgICAgID0gJ0hpZGUgZnJvbSBtZW51JzsKJGxhbmdbJ2xvZ2dlZG91dCddICAgICAgICAgICAgICAgICAgICAgID0gJ2lmIGxvZ2dlZCBvdXQnOwokbGFuZ1snbG9nZ2VkaW4nXSAgICAgICAgICAgICAgICAgICAgICAgPSAnaWYgbG9nZ2VkIGluJzsKJGxhbmdbJ2FmdGVyY3VycmRhdGUnXSAgICAgICAgICAgICAgICAgID0gJ2FmdGVyIGN1cnJlbnQgZGF0ZSc7CiRsYW5nWydhZnRlcnN0YXJ0ZGF0ZSddICAgICAgICAgICAgICAgICA9ICdhZnRlciBzdGFydCBkYXRlJzsKJGxhbmdbJ21pbnV0ZXMnXSAgICAgICAgICAgICAgICAgICAgICAgID0gJ21pbnV0ZXMnOwokbGFuZ1snaG91cnMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAnaG91cnMnOwokbGFuZ1snZGF5cyddICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAnZGF5cyc7CiRsYW5nWyd3ZWVrcyddICAgICAgICAgICAgICAgICAgICAgICAgICA9ICd3ZWVrcyc7CiRsYW5nWydtb250aHMnXSAgICAgICAgICAgICAgICAgICAgICAgICA9ICdtb250aHMnOwokbGFuZ1sneWVhcnMnXSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAneWVhcnMnOwokbGFuZ1snaGVscF90cGxfdmFycyddICAgICAgICAgICAgICAgICAgPSAnPHA+PHN0cm9uZz5UZW1wbGF0ZSB2YXJzOjwvc3Ryb25nPjwvcD4KPHA+PHByZT48Y29kZT57XCRpbnB1dHN9PC9jb2RlPjwvcHJlPiBpcyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCBkZWZpbmVkIGlucHV0IGVsZW1lbnRzIG9mIHRoYXQgbXVsdGkgaW5wdXQgYmxvY2suPGJyIC8+CkVhY2ggaW5wdXQgZWxlbWVudCBpcyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCBpdHMgcGFyYW1zLiA8YnIgLz4KU2VlIG1vZHVsZSBoZWxwIGZvciBtb3JlIGluZm8uPGJyIC8+CkFkZGl0aW9uYWwgcGFyYW0gaXMgImlucHV0IiB0aGF0IHdpbGwgcHJpbnQgb3V0IHRoZSBpbnB1dCBlbGVtZW50LjxiciAvPgpUbyBhY2Nlc3MgdGhlIHBhcmFtcyB1c2UgdGhlIGRvdCBzeW50YXguPGJyIC8+CkV4YW1wbGU6PC9wPgo8cHJlPjxjb2RlPntmb3JlYWNoIGZyb209JGlucHV0cyBpdGVtPWVsbX0KCXskZWxtLmxhYmVsfTombmJzcDt7JGVsbS5pbnB1dH0mbHQ7YnIgLyZndDsKey9mb3JlYWNofTwvY29kZT48L3ByZT4nOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ0NvbnRlbnUgQXZhbmMmZWFjdXRlOyc7CiRsYW5nWydhZHZhbmNlZGNvbnRlbnRfdGFibmFtZSddID0gJ09wdGlvbnMgYXZhbmMmZWFjdXRlO2VzJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ0xlIG1vZHVsZSBBZHZhbmNlZENvbnRlbnQgJXMgZXN0IGluc3RhbGwmZWFjdXRlOyAnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdMZSBtb2R1bGUgQWR2YW5jZWRDb250ZW50ICVzIGVzdCBkJmVhY3V0ZTtzaW5zdGFsbCZlYWN1dGU7JzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTGUgbW9kdWxlIEFkdmFuY2VkQ29udGVudCBtaXMgJmFncmF2ZTsgam91ciBlbiB2ZXJzaW9uICVzJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTGUgbW9kdWxlIEFkdmFuY2VkQ29udGVudCAlcyBlc3QgaW5zdGFsbCZlYWN1dGU7ICc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTGUgbW9kdWxlIEFkdmFuY2VkQ29udGVudCAlcyBlc3QgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOyc7CiRsYW5nWydjb25maXJtdW5pbnN0YWxsJ10gPSAnJkVjaXJjO3RlcyB2b3VzIGNlcnRhaW4gZGUgdm91bG9pciBkJmVhY3V0ZTtzaW5zdGFsbGVyIGxlIG1vZHVsZSBBZHZhbmNlZENvbnRlbnQgPyc7CiRsYW5nWydub3RpY2VfZHVwbGljYXRlY29udGVudCddID0gJzxlbT48c3Ryb25nPkF0dGVudGlvbiA6PC9zdHJvbmc+IENlIGJsb2MgZXN0IHV0aWxpcyZlYWN1dGU7ICZhZ3JhdmU7IGRlIG11bHRpcGxlcyByZXByaXNlcyBkYW5zIGxlIGdhYmFyaXQuIFZvdXMgdmVycmV6IGljaSB1bmlxdWVtZW50IGxlIHByZW1pZXIgYmxvYy48L2VtPic7CiRsYW5nWydlcnJvcl9iYXNpY2F0dHJpYiddID0gJzxlbT48c3Ryb25nPkF0dGVudGlvbiA6PC9zdHJvbmc+IElsIG4mIzAzOTtlc3QgcGFzIHBvc3NpYmxlIGQmIzAzOTt1dGlsaXNlciBsZSBub20gZGUgYmFzZSBkZSBsYSBwcm9wcmkmZWFjdXRlO3QmZWFjdXRlOyBkdSBjb250ZW51ICYjMDM5OyVzJiMwMzk7IGNvbW1lIHVuZSB2YWxldXIgZHUgcGFyYW0mZWdyYXZlO3RyZSAmIzAzOTtibG9jayYjMDM5Oy4gPGJyIC8+Q2UgYmxvYyBlc3QgaW5hY3RpZi4gViZlYWN1dGU7cmlmaWV6IHZvdHJlIGdhYmFyaXQgZGUgcGFnZSBldCBjaG9pc2lzc2V6IHVuZSB2YWxldXIgZGlmZiZlYWN1dGU7cmVudGUgZHUgcGFyYW0mZWdyYXZlO3RyZSAmIzAzOTtibG9jayYjMDM5Oy48L2VtPic7CiRsYW5nWydlcnJvcl9leHBpcmVkYXRlJ10gPSAnTGEgZGF0ZSBkZSBmaW4gZG9pdCAmZWNpcmM7dHJlIHN1cCZlYWN1dGU7cmlldXJlICZhZ3JhdmU7IGxhIGRhdGUgZGUgZCZlYWN1dGU7YnV0JzsKJGxhbmdbJ3lvdWFyZWludGV4dCddID0gJ1ImZWFjdXRlO3BlcnRvaXJlIGNvdXJhbnQnOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ1RhaWxsZSBkZSBsJiMwMzk7aW1hZ2UnOwokbGFuZ1snc2l6ZSddID0gJ1RhaWxsZSBkdSBmaWNoaWVyJzsKJGxhbmdbJ2luaGVyaXRfZnJvbV9wYXJlbnQnXSA9ICdIJmVhY3V0ZTtyaXQmZWFjdXRlOyBkdSBwYXJlbnQnOwokbGFuZ1snbm9uZSddID0gJ2F1Y3VuJzsKJGxhbmdbJ2ludmFsaWQnXSA9ICdpbnZhbGlkZSc7CiRsYW5nWydpbnZhbGlkX2Jsb2NrdHlwZSddID0gJzxlbT48c3Ryb25nPkF0dGVudGlvbiA6PC9zdHJvbmc+ICYjMDM5OyVzJiMwMzk7IGVzdCB1bmUgdmFsZXVyIGluY29ycmVjdGUgZHUgcGFyYW0mZWdyYXZlO3RyZSBibG9ja190eXBlIGRhbnMgbGUgYmxvYyAmIzAzOTslcyYjMDM5Oy48YnIgLz5WJmVhY3V0ZTtyaWZpZXogdm90cmUgZ2FiYXJpdCBkZSBwYWdlLjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudF9ibG9ja3BhcmFtcyddID0gJzxlbT48c3Ryb25nPkVycmV1ciA6PC9zdHJvbmc+IFBhcmFtJmVncmF2ZTt0cmVzIGluc3VmZmlzYW50cy4gPGJyIC8+TGUgcGFyYW0mZWdyYXZlO3RyZSAmIzAzOTslcyYjMDM5OyBwb3VyIGxlIGJsb2MgJiMwMzk7JXMmIzAzOTsgZXN0IG1hbnF1YW50LiBWJmVhY3V0ZTtyaWZpZXogdm90cmUgZ2FiYXJpdCBkZSBwYWdlLjwvZW0+JzsKJGxhbmdbJ3llcyddID0gJ091aSc7CiRsYW5nWydubyddID0gJ05vbic7CiRsYW5nWydmcm9udGVuZGFjY2VzcyddID0gJ0FjYyZlZ3JhdmU7cyBGcm9udGVuZCc7CiRsYW5nWydyZWRpcmVjdHBhZ2UnXSA9ICdQYWdlIGRlIHJlZGlyZWN0aW9uIHNpIGFjYyZlZ3JhdmU7cyByZWZ1cyZlYWN1dGU7JzsKJGxhbmdbJ3Nob3dsb2dpbmZvcm0nXSA9ICdBZmZpY2hlciBsZSBmb3JtdWxhaXJlIGRlIGNvbm5leGlvbic7CiRsYW5nWydyZWdpc3RlcmVkdXNlcnMnXSA9ICdVdGlsaXNhdGV1cnMgZW5yZWdpc3RyJmVhY3V0ZTtzIHNldWxlbWVudCc7CiRsYW5nWydibG9jayddID0gJ0Jsb2MnOwokbGFuZ1sndXNlZXhwaXJlZGF0ZSddID0gJ1V0aWxpc2VyIGxhIGRhdGUgZCYjMDM5O2V4cGlyYXRpb24nOwokbGFuZ1snc3RhcnRkYXRlJ10gPSAnRGF0ZSBkZSBkJmVhY3V0ZTtidXQnOwokbGFuZ1snZW5kZGF0ZSddID0gJ0RhdGUgZGUgZmluJzsKJGxhbmdbJ2Jsb2NrY29udGVudCddID0gJ0Jsb2MgZGUgY29udGVudSc7CiRsYW5nWydzZXRwYWdlaW5hY3RpdmUnXSA9ICdEJmVhY3V0ZTtmaW5pciBsYSBwYWdlIGNvbW1lIGluYWN0aXZlJzsKJGxhbmdbJ2RlbGV0ZXBhZ2UnXSA9ICdFZmZhY2VyIGxhIHBhZ2UnOwokbGFuZ1sndW5pbnN0YWxsYWN0aW9uJ10gPSAnRCZlYWN1dGU7c2luc3RhbGxhdGlvbic7CiRsYW5nWydzZXRjb250ZW50MSddID0gJ0QmZWFjdXRlO2ZpbmlyIHRvdXRlcyBsZXMgcGFnZXMgZCYjMDM5O0FkdmFuY2VkQ29udGVudCBlbiB0eXBlIENvbnRlbnQnOwokbGFuZ1snc2V0Y29udGVudDInXSA9ICdEJmVhY3V0ZTtmaW5pciB0b3V0ZXMgbGVzIHBhZ2VzIGQmIzAzOTtBZHZhbmNlZENvbnRlbnQgZW4gdHlwZSBDb250ZW50IGV0IHN1cHByaW1lciBsZXMgYmxvY3MgZGUgY29udGVudSBhZGRpdGlvbm5lbCc7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzIG1pc2VzICZhZ3JhdmU7IGpvdXInOwokbGFuZ1snc3VjY2VzcyddID0gJ09rICc7CiRsYW5nWydlcnJvciddID0gJ0VycmV1cic7CiRsYW5nWydkZWxldGVwYWdlcyddID0gJ1N1cHByaW1lciB0b3V0ZXMgbGVzIHBhZ2VzIGRlIHR5cGUgQWR2YW5jZWRDb250ZW50JzsKJGxhbmdbJ2ltcG9ydHBhZ2VzJ10gPSAnRCZlYWN1dGU7ZmluaXIgdG91dGVzIGxlcyBwYWdlIGRlIHR5cGUgJXMgZW4gdHlwZSAlcy4nOwokbGFuZ1sncGFnZXNpbXBvcnRlZCddID0gJ1RvdXRlcyBsZXMgcGFnZXMgc29udCBkJmVhY3V0ZTtmaW5pZSBlbiBBZHZhbmNlZENvbnRlbnQuJzsKJGxhbmdbJ2NvbmZpcm1pbXBvcnQnXSA9ICcmRWNpcmM7dGVzIHZvdXMgY2VydGFpbnMgZGUgdm91bG9pciBjaGFuZ2VyIGxlIHR5cGUgZGUgY29udGVudSBkZSB0b3V0ZXMgbGVzIHBhZ2VzID8nOwokbGFuZ1sndG9nZ2xlX21lc3NhZ2UnXSA9ICdDYWNoZXIgY2UgbWVzc2FnZSc7CiRsYW5nWydjb250ZW50c2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBBZHZhbmNlZENvbnRlbnQgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sncmVkaXJlY3RwYXJhbXMnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBkJiMwMzk7VVJMICZhZ3JhdmU7IGFqb3V0ZXIgcG91ciBsYSByZWRpcmVjdGlvbic7CiRsYW5nWydldmFsdWF0ZXNtYXJ0eSddID0gJ1V0aWxpc2VyIHNtYXJ0eSBwb3VyIHRyYWl0ZXIgbGVzIHBhcmFtJmVncmF2ZTt0cmVzJzsKJGxhbmdbJ2Vycm9yX2xvYWRpbmdfbW9kdWxlJ10gPSAnPGVtPjxzdHJvbmc+RXJyZXVyIDo8L3N0cm9uZz4gTiYjMDM5O2EgcGFzIHB1IGNoYXJnZXIgbGUgbW9kdWxlICYjMDM5OyVzJiMwMzk7LiAoRCZlYWN1dGU7ZmluaSBwb3VyIGxlIGJsb2MgJiMwMzk7JXMmIzAzOTsgZGFucyB2b3RyZSBnYWJhcml0IGRlIHBhZ2UuKTwvZW0+JzsKJGxhbmdbJ2Vycm9yX2NvbnRlbnRibG9ja19zdXBwb3J0J10gPSAnPGVtPjxzdHJvbmc+RXJyZXVyIDo8L3N0cm9uZz4gTGUgbW9kdWxlICYjMDM5OyVzJiMwMzk7IG5lIHN1cHBvcnRlIHBhcyBsZXMgYmxvY3MgZGUgY29udGVudSAoY29udGVudGJsb2NrcykuIChEJmVhY3V0ZTtmaW5pIHBvdXIgbGUgYmxvYyAmIzAzOTslcyYjMDM5OyBkYW5zIHZvdHJlIGdhYmFyaXQgZGUgcGFnZS4pPC9lbT4nOwokbGFuZ1snc3VjY2Vzc19pbXBvcnRwYWdlcyddID0gJ1RvdXRlcyBsZXMgcGFnZXMgZGUgdHlwZSAlcyBvbnQgJmVhY3V0ZTt0JmVhY3V0ZTsgY2hhbmcmZWFjdXRlO2VzIGVuICVzJzsKJGxhbmdbJ3Nob3dfYWR2YW5jZWRjb250ZW50X29wdGlvbnMnXSA9ICdNb250cmVyIGwmIzAzOTtvbmdsZXQgZCYjMDM5O29wdGlvbnMgZCYjMDM5O0FkdmFuY2VkQ29udGVudCc7CiRsYW5nWydkaXNwbGF5X3NldHRpbmdzJ10gPSAnJXMgYWZmaWNoZSBsZXMgcGFyYW0mZWdyYXZlO3RyZXMnOwokbGFuZ1snc2F2ZV9jb2xsYXBzZV9zdGF0dXMnXSA9ICdFbnJlZ2lzdHJlciBsZSBzdGF0dXQgbWFzcXUmZWFjdXRlOyBkZSAlcyc7CiRsYW5nWydjb250ZW50X2Jsb2NrcyddID0gJ2Jsb2NzIGRlIGNvbnRlbnVzJzsKJGxhbmdbJ2Jsb2NrX21lc3NhZ2UnXSA9ICdtZXNzYWdlIGR1IGJsb2MgZGUgY29udGVudSc7CiRsYW5nWydibG9ja19ncm91cHMnXSA9ICdncm91cGVzIGRlIGJsb2MnOwokbGFuZ1snY29sbGFwc2VfZGVmYXVsdCddID0gJ01hc3F1ZXIgJXMgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sncGVyX3BhZ2UnXSA9ICdwYXIgcGFnZSc7CiRsYW5nWydwZXJfdGVtcGxhdGUnXSA9ICdwYXIgZ2FiYXJpdCc7CiRsYW5nWydib3RoMSddID0gJ2dhYmFyaXQgT1UgcGFnZSc7CiRsYW5nWydib3RoMiddID0gJ2dhYmFyaXQgRVQgcGFnZSc7CiRsYW5nWydjb250ZW50J10gPSAnQ29udGVudSc7CiRsYW5nWydjb250ZW50MiddID0gJ0NvbnRlbnUgYXZhbmMmZWFjdXRlOyc7CiRsYW5nWydwcmVmcyddID0gJ1ImZWFjdXRlO2dsYWdlcyc7CiRsYW5nWydtdWx0aV9pbnB1dCddID0gJ0VudHImZWFjdXRlO2VzIG11bHRpcGxlcyc7CiRsYW5nWydtdWx0aV9pbnB1dF90cGwnXSA9ICdHYWJhcml0cyBwb3VyIGVudHImZWFjdXRlO2VzIG11bHRpcGxlcyc7CiRsYW5nWydhZGRfbXVsdGlfaW5wdXQnXSA9ICdBam91dGVyIGRlcyBlbnRyJmVhY3V0ZTtlcyBtdWx0aXBsZXMnOwokbGFuZ1snYWRkX211bHRpX2lucHV0X3RwbCddID0gJ0Fqb3V0ZXIgdW4gbm91dmVhdSBnYWJhcml0IHBvdXIgZW50ciZlYWN1dGU7ZXMgbXVsdGlwbGVzJzsKJGxhbmdbJ2lucHV0X2lkJ10gPSAnSUQgZW50ciZlYWN1dGU7ZXMnOwokbGFuZ1snaW5wdXRfZmllbGRzJ10gPSAnQ2hhbXBzIHBvdXIgRW50ciZlYWN1dGU7ZXMnOwokbGFuZ1sndHBsX25hbWUnXSA9ICdOb20gZHUgZ2FiYXJpdCc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ0xlIGNoYW1wIEdhYmFyaXQgZXN0IHJlcXVpcyBldCBuZSBwZXV0ICZlY2lyYzt0cmUgdmlkZSc7CiRsYW5nWydlcnJvcl9pbnB1dF9maWVsZHMnXSA9ICdMZXMgY2hhbXBzIEVudHImZWFjdXRlO2VzIHNvbnQgcmVxdWlzIGV0IG5lIHBldXZlbnQgJmVjaXJjO3RyZSBsYWlzcyZlYWN1dGU7cyB2aWRlcy4nOwokbGFuZ1snZXJyb3JfaW5wdXRfaWQnXSA9ICdBdWN1biBJRCBlbnRyJmVhY3V0ZTtlcyBuJiMwMzk7YSAmZWFjdXRlO3QmZWFjdXRlOyBmb3Vybmkgb3UgbGUgY29udGVudSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7Lic7CiRsYW5nWydlcnJvcl9pbnB1dF9pZF9leGlzdHMnXSA9ICdJRCBlbnRyJmVhY3V0ZTtlcyBkJmVhY3V0ZTtqJmFncmF2ZTsgdXRpbGlzJmVhY3V0ZTsuIFMmZWFjdXRlO2xlY3Rpb25uZXogdW4gSUQgZGlmZiZlYWN1dGU7cmVudC4gKGRvaXQgJmVjaXJjO3RyZSB1bmlxdWUpJzsKJGxhbmdbJ211bHRpX2lucHV0X2FkZGVkJ10gPSAnRW50ciZlYWN1dGU7ZXMgbXVsdGlwbGVzIGFqb3V0JmVhY3V0ZTtlcy4nOwokbGFuZ1snbXVsdGlfaW5wdXRfZGVsZXRlZCddID0gJ0VudHImZWFjdXRlO2VzIG11bHRpcGxlcyBzdXBwcmltJmVhY3V0ZTtlcy4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdXBkYXRlZCddID0gJ0VudHImZWFjdXRlO2VzIG11bHRpcGxlcyBtaXNlcyAmYWdyYXZlOyBqb3VyLic7CiRsYW5nWydtdWx0aV9pbnB1dF90cGxfYWRkZWQnXSA9ICdHYWJhcml0IHBvdXIgZW50ciZlYWN1dGU7ZXMgbXVsdGlwbGVzIGFqb3V0JmVhY3V0ZTsuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF91cGRhdGVkJ10gPSAnR2FiYXJpdCBwb3VyIGVudHImZWFjdXRlO2VzIG11bHRpcGxlcyBtaXMgJmFncmF2ZTsgam91ci4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsX2RlbGV0ZWQnXSA9ICdHYWJhcml0IHBvdXIgZW50ciZlYWN1dGU7ZXMgbXVsdGlwbGVzIHN1cHByaW0mZWFjdXRlOy4nOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRWZmYWNlciBsZXMgJmVhY3V0ZTtsJmVhY3V0ZTttZW50cyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7cyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZSddID0gJ0QmZWFjdXRlO3NpcmV6LXZvdXMgdnJhaW1lbnQgc3VwcHJpbWVyIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQ/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnRCZlYWN1dGU7c2lyZXotdm91cyB2cmFpbWVudCBzdXBwcmltZXIgbGVzICZlYWN1dGU7bCZlYWN1dGU7bWVudHMgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO3M/JzsKJGxhbmdbJ3VzZV9jb250ZW50dHlwZSddID0gJ1V0aWxpc2VyIGxlIHR5cGUgZGUgY29udGVudSc7CiRsYW5nWydoZWxwX3RwbF92YXJzJ10gPSAnPHA+PHN0cm9uZz5UZW1wbGF0ZSB2YXJzOjwvc3Ryb25nPjwvcD4NCjxwPjxwcmU+PGNvZGU+eyRpbnB1dHN9PC9jb2RlPjwvcHJlPiBpcyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCBkZWZpbmVkIGlucHV0IGVsZW1lbnRzIG9mIHRoYXQgbXVsdGkgaW5wdXQgYmxvY2suPGJyIC8+DQpFYWNoIGlucHV0IGVsZW1lbnQgaXMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgaXRzIHBhcmFtcy4gPGJyIC8+DQpTZWUgbW9kdWxlIGhlbHAgZm9yIG1vcmUgaW5mby48YnIgLz4NCkFkZGl0aW9uYWwgcGFyYW0gaXMgJnF1b3Q7aW5wdXQmcXVvdDsgdGhhdCB3aWxsIHByaW50IG91dCB0aGUgaW5wdXQgZWxlbWVudC48YnIgLz4NClRvIGFjY2VzcyB0aGUgcGFyYW1zIHVzZSB0aGUgZG90IHN5bnRheC48YnIgLz4NCkV4YW1wbGU6PC9wPg0KPHByZT48Y29kZT57Zm9yZWFjaCBmcm9tPSRpbnB1dHMgaXRlbT1lbG19DQoJeyRlbG0ubGFiZWx9OiZuYnNwO3skZWxtLmlucHV0fTxiciAvPg0Key9mb3JlYWNofTwvY29kZT48L3ByZT4nOwokbGFuZ1snaGVscCddID0gJzxiciAvPg0KPGgzPlF1ZSBmYWl0IGNlIG1vZHVsZSA/PC9oMz4NCjxwPlRoaXMgaXMgYSBtb2RpZmljYXRpb24gb2YgdGhlIGRlZmF1bHQgY29udGVudCB0eXBlICZxdW90O0NvbnRlbnQmcXVvdDsgb2YgQ01TbXMuPGJyIC8+DQpJdCBwcm92aWRlcyBtb3JlIGZsZXhpYmlsaXR5IGJ5IGNyZWF0aW5nIGN1c3RvbSBpbnB1dCBjb250cm9scyBpbiBiYWNrZW5kLjxiciAvPg0KVXNlcnMgY2FuIGFkZCBkcm9wZG93bnMsIG11bHRpcGxlIHNlbGVjdCBsaXN0cywgY2hlY2tib3hlcywgZ3JvdXAgY29udGVudCBibG9ja3MgDQppbiBzZXBhcmF0ZSBwYWdlIHRhYnMsIGJsb2NrIHRhYnMgaW5zaWRlIGEgcGFnZSB0YWIgb3IgaW4gZmllbGRzZXRzIGJ5IGp1c3QgDQp1c2luZyBhZGRpdGlvbmFsIHBhcmFtcyBpbiB0aGUgdGVtcGxhdGUgd2hlbiBjYWxsaW5nIHRoZSBjb250ZW50LjxiciAvPg0KSXQgYWxzbyBhZGRzIGFiaWxpdHkgdG8gZ3JhbnQgYWNjZXNzIG9mIHBhZ2VzIHRvIGNlcnRhaW4gdXNlcnMgb2YgdGhlIA0KRnJvbnRFbmRVc2VycyBtb2R1bGUgYW5kIGhpZGUgdGhlIGNvbnRlbnQsIHJlcGxhY2UgaXQgYnkgdGhlIGxvZ2luIGZvcm0gb2YgdGhlIA0KRnJvbnRFbmRVc2VycyBtb2R1bGUgb3IgcmVkaXJlY3QgdG8gYSBzcGVjaWZpZWQgcGFnZSBzaG93aW5nIHRoZSBsb2dpbiBmb3JtIG9yIA0KanVzdCByZWRpcmVjdCB3aXRob3V0IGRvaW5nIGFueXRoaW5nIGVsc2UuPGJyIC8+DQpQYWdlIHByb3BlcnR5IG9mIEZyb250RW5kVXNlcnMgYWNjZXNzIGFuZCByZWRpcmVjdCBwYWdlIGNhbiBiZSBpbmhlcml0ZWQgYnkgDQpwYXJlbnQgcGFnZXMuPC9wPg0KPHA+PGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVG8gZ2V0IHRoZSBmdWxsIGZ1bmN0aW9uYWxpdHkgb2YgdGhpcyBjb250ZW50IHR5cGUgDQppbiBmcm9udGVuZCB5b3UgbmVlZCB0byBjYWxsIHlvdXIgY29udGVudCB3aXRoIHRoZSBtb2R1bGUgcGx1Z2luIHtBZHZhbmNlZENvbnRlbnR9IA0KKGNhc2Ugc2Vuc2l0aXZlISkuPGJyIC8+DQpPdGhlcndpc2UgaXQgbWF5IGJlaGF2ZSBsaWtlIHRoZSBkZWZhdWx0IGNvbnRlbnQgdHlwZSBwbHVnaW4uPC9lbT48L3A+DQo8cD5Zb3UgY2FuIGV2ZW4gdXNlIHNtYXJ0eSBsb2dpYyBpbiBwYXJhbWV0ZXIgdmFsdWVzLiBUaGF0IG1lYW5zIHlvdSBjYW4gdXNlIHRoZSANCnJlc3VsdCBvZiBhIHBsdWdpbiwgYW4gdWR0IG9yIGV2ZW4gYSBtb2R1bGUgb3IganVzdCB0aGUgY29udGVudCBvZiBhIGdsb2JhbCANCmNvbnRlbnQgYmxvY2sgYXMgcGFyYW1ldGVyIHZhbHVlIHRvIGNyZWF0ZSBkeW5hbWljIHZhbHVlcy48L3A+DQo8aDM+Q29tbWVudCBsJiMwMzk7dXRpbGlzZXIgPzwvaDM+DQo8cD5BZnRlciBpbnN0YWxsYXRpb24gdGhlIG1vZHVsZSBzZXR0aW5ncyBjYW4gYmUgZm91bmQgaW4gJnF1b3Q7RXh0ZW5zaW9ucy0+QWR2YW5jZWRDb250ZW50JnF1b3Q7LjwvcD4NCjxwPkFkZGl0aW9uYWxseSB5b3Ugd2lsbCBoYXZlIGEgbmV3IGNvbnRlbnQgdHlwZSAmcXVvdDtBZHZhbmNlZENvbnRlbnQmcXVvdDsgYXZhaWxhYmxlIA0Kd2hlbiBhZGRpbmcvZWRpdGluZyBhIHBhZ2UuPGJyIC8+DQo8cD5BZGQgdGhlIGZvbGxvd2luZyBwYXJhbXMgdG8geW91ciBjb250ZW50IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUsIA0KY2hhbmdlIHRoZSBjb250ZW50IHR5cGUgb2YgeW91ciBwYWdlIHRvICZxdW90O0FkdmFuY2VkQ29udGVudCZxdW90OyBhbmQgc2VlIHdoYXQgaGFwcGVucyANCmluIGJhY2tlbmQuLi48L3A+DQo8aDM+V2hhdCBwYXJhbWV0ZXJzIGFyZSBhdmFpbGFibGU/PC9oMz4NCjxwPmFsbCBwYXJhbXMgYXJlIG9wdGlvbmFsPC9wPg0KPHA+PHN0cm9uZz5EZWZhdWx0IHBhcmFtczo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9jazwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlBbGxvd3MgeW91IHRvIGhhdmUgbW9yZSB0aGFuIG9uZSBjb250ZW50IGJsb2NrIHBlciBwYWdlLiBJZiBtdWx0aXBsZSBjb250ZW50IHRhZ3MgYXJlIHB1dCBvbiBhIHRlbXBsYXRlLCB0aGF0IG51bWJlciBvZiBlZGl0IGJveGVzIHdpbGwgYmUgZGlzcGxheWVkIGlmIHRoZSBwYWdlIGlzIGVkaXRlZC48YnIgLz4NCgkJCQllLmcuOiA8Y29kZT57Y29udGVudCBibG9jaz0mcXVvdDtTZWNvbmQgQ29udGVudCBibG9jayZxdW90O308L2NvZGU+PGJyIC8+DQoJCQkJTm93LCBpZiB5b3UgZWRpdCBhIHBhZ2UgdGhlcmUgd2lsbCBiYSBhIHRleHRhcmVhIGNhbGxlZCAmcXVvdDtTZWNvbmQgQ29udGVudCBibG9jayZxdW90Oy48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jayBtYXkgY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3JlcyAobm8gd2hpdGVzcGFjZXMsIHNwZWNpYWwgY2hhcnMsIHVtbGF1dHMgZXRjLikuIE90aGVyd2lzZSBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIHByb3BlciBuYW1lIChzaW1pbGFyIHRvIHRoZSBwYWdlIGFsaWFzKS48L2VtPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pnd5c2l3eWc8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPklmIHNldCB0byBmYWxzZSwgdGhlbiBhIHd5c2l3eWcgd2lsbCBuZXZlciBiZSB1c2VkIHdoaWxlIGVkaXRpbmcgdGhpcyBibG9jay4gSWYgdHJ1ZSwgdGhlbiBpdCBhY3RzIGFzIG5vcm1hbC48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+b25lbGluZTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+SWYgc2V0IHRvIHRydWUsIHRoZW4gb25seSBvbmUgZWRpdCBsaW5lIHdpbGwgYmUgc2hvd24gd2hpbGUgZWRpdGluZyB0aGlzIGJsb2NrLiBJZiBmYWxzZSwgdGhlbiBpdCBhY3RzIGFzIG5vcm1hbC4gT25seSB3b3JrcyB3aGVuIGJsb2NrIHBhcmFtZXRlciBpcyB1c2VkLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWZhdWx0PC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPkRlZmF1bHQgY29udGVudCB3aGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2UuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmxhYmVsPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPlByb21wdCBmb3IgdGhpcyBjb250ZW50IGJsb2NrLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGFueSBleHByZXNzaW9uLiBJZiBibGFuaywgdGhlIHVuY29udmVydGVkIGJsb2NrIG5hbWUgaXMgdXNlZC48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YXNzaWduPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUFzc2lnbnMgdGhlIGNvbnRlbnQgdG8gYSBzbWFydHkgcGFyYW1ldGVyLCB3aGljaCB5b3UgY2FuIHRoZW4gdXNlIGluIG90aGVyIGFyZWFzIG9mIHRoZSBwYWdlLCBvciB1c2UgdG8gdGVzdCB3aGV0aGVyIGNvbnRlbnQgZXhpc3RzIGluIGl0IG9yIG5vdC48YnIgLz4NCgkJCQlFeGFtcGxlIG9mIHBhc3NpbmcgcGFnZSBjb250ZW50IHRvIGEgVXNlciBEZWZpbmVkIFRhZyBhcyBhIHBhcmFtZXRlcjo8YnIgLz4NCgkJCQk8Y29kZT57Y29udGVudCBhc3NpZ249cGFnZWNvbnRlbnR9PGJyIC8+DQoJCQkJe3RhYmxlX29mX2NvbnRlbnRzIHRoZXBhZ2Vjb250ZW50PSZxdW90OyRwYWdlY29udGVudCZxdW90O308L2NvZGU+PGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRm9yIHNvbWUgcmVhc29uIHRoaXMgcGFyYW0gZG9lcyBub3Qgd29yayBhdCB0aGUgbW9tZW50IHdpdGggdGhlIG1vZHVsZSBwbHVnaW4ge0F2YW5jZWRDb250ZW50fS4gVXNlIDxiciAvPjxjb2RlPntjYXB0dXJlIGFzc2lnbj0mcXVvdDtmb28mcXVvdDt9e0FkdmFuY2VkQ29udGVudH17L2NhcHR1cmV9PC9jb2RlPiA8YnIgLz5pbnN0ZWFkLjwvZW0+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+QWR2YW5jZWQgcGFyYW1zOjwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX3R5cGU8L3R0PiAodGV4dCxjaGVja2JveCxkcm9wZG93bixzZWxlY3RfbXVsdGlwbGUsZGF0ZSkgDQoJCTx1bD4NCgkJCTxsaT5BbGxvd3MgeW91IHRvIHNwZWNpZnkgd2hhdCBjb250ZW50IGNvbnRyb2wgdHlwZSBpcyB1c2VkIGluIHRoZSBiYWNrIGVuZC4gU3VwcG9ydHMgYmxvY2stcGFyYW1ldGVycyB0byBpbmNsdWRlIGFkZGl0aW9uYWwgb3B0aW9ucy48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+cGFnZV90YWI8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVGhpcyBwYXJhbWV0ZXIgc2V0cyB0aGUgdGFiIGluIHdoaWNoIHRoZSBjb250ZW50IGJsb2NrIGlzIGRpc3BsYXllZCBpbiB0aGUgYmFja2VuZC48YnIgLz4NCgkJCQlQb3NzaWJsZSB2YWx1ZXMgYXJlICZxdW90O21haW4mcXVvdDsgKCA9IFRhYiAmcXVvdDtNYWluIE1lbnUmcXVvdDspLCAmcXVvdDtvcHRpb25zJnF1b3Q7ICggPSBUYWIgJnF1b3Q7T3B0aW9ucyZxdW90OyksIG9yIGFueSBvdGhlciBhcmJpdHJhcnkgdmFsdWU8YnIgLz4NCgkJCQk8ZW0+ZS5nLiB5b3UgY2FuIGFkZCBhIGNoZWNrYm94IHRvIHRoZSBvcHRpb25zIHRhYiBvciBjcmVhdGUgbmV3IHRhYnM8L2VtPi4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja190YWI8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+V2l0aCB0aGlzIHBhcmFtZXRlciwgdGhlIGJsb2NrcyB3aXRoaW4gYSBwYWdlIHRhYiBjYW4gYmUgZnVydGhlciBkaXZpZGVkIGludG8gdGFicyBvciBjYW4gYmUgZ3JvdXBlZCB0b2dldGhlci4gQW55IGV4cHJlc3Npb24gY2FuIGJlIHVzZWQgYXMgYSBwb3NzaWJsZSB2YWx1ZS48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YmxvY2tfZ3JvdXA8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+V2l0aCB0aGlzIHBhcmFtZXRlciwgbXVsdGlwbGUgYmxvY2tzIGNhbiBiZSBncm91cGVkIGluIGEgZmllbGRzZXQuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFjdGl2ZTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQWxsb3dzIHlvdSB0byBkaXNhYmxlIGEgY29udGVudCBibG9jay4gRGlzYWJsZWQgY29udGVudCBibG9ja3Mgd29uJiMwMzk7dCBiZSBzaG93biBpbiBiYWNrZW5kIGFzIHdlbGwgYXMgaW4gZnJvbnRlbmQuIChvbmx5IHdvcmtzIHdpdGgge0FkdmFuY2VkQ29udGVudH0gcGx1Z2luKTxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0eWxlPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXNldCB0aGUgaW5saW5lIHN0eWxlIG9mIHRoZSBlbGVtZW50IGluIGJhY2tlbmQuIDxiciAvPg0KCQkJCWUuZy46IG1ha2UgYSBub3RlIHJlZCB3aXRoIDxjb2RlPnN0eWxlPSYjMDM5O2NvbG9yOiNGRjAwMDA7JiMwMzk7PC9jb2RlPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVkaXRvcl9ncm91cHM8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cCBuYW1lcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGVkaXQgdGhpcyBibG9jay4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lZGl0b3JfdXNlcnM8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB1c2VyIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZWRpdCB0aGlzIGJsb2NrLg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBpZiB0aGUgcGFyYW1zIDx0dD5lZGl0b3JfdXNlcnM8L3R0PiBhbmQgPHR0PmVkaXRvcl9ncm91cHM8L3R0PiBhcmUgZW1wdHkgdGhlIGJsb2NrIG1heSBiZSBlZGl0ZWQgYnkgYW55IHVzZXIgd2l0aCBzdWZmaWNpZW50IHBlcm1pc3Npb24gdG8gZWRpdCBhIHBhZ2U8L2VtPjxiciAvPjxiciAvPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjY2VzczwvdHQ+IChub3QgcmVhZHkgeWV0KQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQSBsaXN0IG9mIGZldSBncm91cHMgc2VwYXJhdGVkIGJ5IGEgY29tbWEuPGJyIC8+DQoJCQkJVGhpcyBncmFudHMgYWNjZXNzIHRvIHRoaXMgY29udGVudCBibG9jayBvbmx5IHRvIGNlcnRhaW4gZmV1IGdyb3Vwcy48YnIgLz4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5mZXVfYWN0aW9uPC90dD4gKHRydWUvZmFsc2UpICAobm90IHJlYWR5IHlldCkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVNwZWNpZnkgaWYgdGhlIGxvZ2luIGZvcm0gb2YgdGhlIGZldSBtb2R1bGUgd2lsbCBiZSBzaG93biBvciBub3QuPGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YWxsb3dfbm9uZTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+U2V0IHRvIHRydWUgaWYgdGhlIHVzZXIgbWF5IGVudGVyIGVtcHR5IHZhbHVlcy4gPGJyIC8+SWYgc2V0IHRvIGZhbHNlIGFuZCB2YWx1ZSBpcyBlbXB0eSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgcGFyYW0gJnF1b3Q7ZGVmYXVsdCZxdW90OyB3aWxsIGJlIHVzZWQuIDxiciAvPklmIHNldCB0byB0cnVlIGFuZCBibG9jayBpcyBvZiB0eXBlIGltYWdlL2ZpbGUgdGhlIG9wdGlvbiAmcXVvdDtub25lJnF1b3Q7IChtb2RlPSZxdW90O2Ryb3Bkb3duJnF1b3Q7KSBvciBhIGJ1dHRvbiB0byBjbGVhciB0aGUgc2VsZWN0ZWQgZmlsZS9pbWFnZSB2YWx1ZSAobW9kZT0mcXVvdDtmaWxlcGlja2VyJnF1b3Q7KSB3aWxsIGJlIGRpc3BsYXllZC48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c21hcnR5PC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUdXJuIHNtYXJ0eSBwcm9jZXNzaW5nIG9mIHZhbHVlcyBvbi9vZmYuPGJyIC8+DQoJCQkJSWYgc2V0IHRvIHRydWUgYW55IGdpdmVuIHZhbHVlIHdpbGwgYmUgcHJvY2Vzc2VkIGJ5IHRoZSBzbWFydHkgZW5naW5lLjxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBOb3RpY2UgdGhhdCB5b3UgY2Fubm90IHVzZSB0aGUgZGVmYXVsdCBzbWFydHkgZGVsaW1pdGVycyB0aGF0IGFyZSB1c2VkIGluIHRoZSB0ZW1wbGF0ZS4gVGhpcyB3aWxsIGNhdXNlIHNtYXJ0eSBlcnJvcnMgaW4gZnJvbnRlbmQuPGJyIC8+DQoJCQkJU28geW91IG5lZWQgdG8gdXNlIDo6OiBhcyBkZWxpbWl0ZXIgaW5zdGVhZC48YnIgLz48L2VtPg0KCQkJCUUuZy46IDxjb2RlPntjb250ZW50IGJsb2NrPSZxdW90O0NhdGVnb3JpZXMmcXVvdDsgbGFiZWw9JnF1b3Q7U2VsZWN0IGEgY2F0ZWdvcnkmcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDtkcm9wZG93biZxdW90OyBpdGVtcz0mcXVvdDs6OjpnbG9iYWxfY29udGVudCBuYW1lPSYjMDM5O2NhdGVnb3J5bGlzdCYjMDM5Ozo6OiZxdW90OyBzbWFydHk9JnF1b3Q7dHJ1ZSZxdW90O308L2NvZGU+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVzY3JpcHRpb248L3R0PiAoc3RyaW5nKSANCgkJPHVsPg0KCQkJPGxpPkFsbG93cyB5b3UgdG8gYWRkIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24gdG8gdGhhdCBibG9jayBmb3IgeW91ciBlZGl0b3JzLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICZxdW90O2NoZWNrYm94JnF1b3Q7Ojwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAodHJ1ZS9mYWxzZSkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQljaGVja3MvdW5jaGVja3MgdGhlIGNoZWNrYm94IGJ5IGRlZmF1bHQgd2hlbiBhZGRpbmcgYSBwYWdlPGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVXNlICZxdW90OzEmcXVvdDsgZm9yIGNoZWNrZWQgYW5kICZxdW90OzAmcXVvdDsgZm9yIHVuY2hlY2tlZCBieSBkZWZhdWx0PGJyIC8+PC9lbT4NCgkJCQlFLmcuIDxjb2RlPntjb250ZW50IGJsb2NrX3R5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgZGVmYXVsdD0xfTwvY29kZT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICZxdW90O2Ryb3Bkb3duJnF1b3Q7LyZxdW90O3NlbGVjdF9tdWx0aXBsZSZxdW90Ozo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pdGVtczwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT5JdGVtIGxhYmVsKHMpIG9mIHRoZSBmaWVsZChzKSAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVzPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPlZhbHVlKHMpIG9mIHRoZSBpdGVtcyAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gaWYgdGhlcmUgYXJlIGxlc3MgdmFsdWVzIHRoYW4gaXRlbXMgdGhlIGl0ZW0gbGFiZWxzIHdpbGwgYmUgdXNlZCBhcyB2YWx1ZXMgKGFuZCB2aXNlIHZlcnNhKS48L2VtPjxiciAvPjxiciAvPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVmYXVsdDwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlQcmVzZWxlY3RlZCB2YWx1ZShzKSAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8YnIgLz4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWxpbWl0ZXI8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+QSBzaWduIG9yIHN0cmluZyB0aGF0IHdpbGwgYmUgdXNlZCB0byBkZXZpZGUgdGhlIGl0ZW1zL3ZhbHVlcyAoZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zaXplPC90dD4gKGludGVnZXIpDQoJCTx1bD4NCgkJCTxsaT5IZWlnaHQgb2YgY29udGVudCBibG9jayBpbiBiYWNrIGVuZCBpZiA8Y29kZT5ibG9ja190eXBlPSZxdW90O3NlbGVjdF9tdWx0aXBsZSZxdW90OzwvY29kZT4gaXMgc2V0LiA8ZW0+KERlZmF1bHQgaXMgbnVtYmVyIG9mIGl0ZW1zKTwvZW0+PC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c29ydGFibGVfaXRlbXM8L3R0PiAodHJ1ZS9mYWxzZSkgLSBzZWxlY3RfbXVsdGlwbGUgb25seQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJSWYgc2V0IHRvIHRydWUgdGhlIGl0ZW1zIHdvbiYjMDM5O3QgYmUgc2hvd24gYXMgYSBtdWx0aXBsZSBzZWxlY3QgaW5wdXQgd2l0aCBvcHRpb25zIGJ1dCBhcyBhIGxpc3Qgb2YgY2hlY2tib3hlcyB0aGF0IGNhbiBiZSByZW9yZGVyZWQuPGJyIC8+RWFjaCByb3cgY29udGFpbnMgdGhlIGl0ZW0gbGFiZWwgYW5kIGEgY2hlY2tib3ggd2l0aCB0aGUgaXRlbSB2YWx1ZS48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBvbmx5IHRoZSBvcmRlciBvZiB0aGUgPHN0cm9uZz5zZWxlY3RlZDwvc3Ryb25nPiBpdGVtcyB3aWxsIGJlIHN0b3JlZCBhbmQgYWx3YXlzIGRpc3BsYXllZCBvbiB0aGUgdG9wIG9mIHRoZSBsaXN0IHdoZW4gcmVsb2FkaW5nIHRoZSBlZGl0IHBhZ2UuPGJyIC8+DQoJCQkJVW5zZWxlY3RlZCBpdGVtcyB3aWxsIGFwcGVuZGVkIGluIHRoYXQgb3JkZXIgdGhleSBhcmUgZGVmaW5lZCBpbiB0aGUgdGVtcGxhdGU8L2VtPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmNvbGxhcHNlPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGUgZGVmYXVsdCBkaXNwbGF5IG9mIHRoZSBibG9jayBpbiBiYWNrZW5kLg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCjwvdWw+DQo8cD48c3Ryb25nPlBhcmFtcyBvZiBibG9ja3R5cGUgJnF1b3Q7ZGF0ZSZxdW90Ozo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGVwX2hvdXJzPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlzdGVwcyBvZiBob3VycyBpbiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDEpDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c3RhcnRfaG91cjwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJdGhlIHN0YXJ0IGhvdXIgb2YgdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAwKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVuZF9ob3VyPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQl0aGUgZW5kIGhvdXIgb2YgdGhlIGNsb2NrIGRyb3Bkb3duIChkZWZhdWx0IGlzIDEyIG9yIDIzKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNob3cyNGg8L3R0PiAodHJ1ZS9mYWxzZSkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlzZXQgdG8gZmFsc2UgaWYgQU0vUE0gaXMgdXNlZC4gKGRlZmF1bHQgaXMgdHJ1ZSkNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGVwX21pbnV0ZXM8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXN0ZXBzIG9mIG1pbnV0ZXMgaW4gdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAxMCkNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGFydF9taW51dGU8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXRoZSBzdGFydCBtaW51dGUgb2YgdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAwKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZW5kX21pbnV0ZTwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJdGhlIGVuZCBtaW51dGUgb2YgdGhlIGNsb2NrIGRyb3Bkb3duIChkZWZhdWx0IGlzIDU5KQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNob3dfY2xvY2s8L3R0PiAodHJ1ZS9mYWxzZSkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlzZXQgdG8gZmFsc2UgaWYgbm8gdGltZSBkcm9wZG93biBzaG91bGQgYmUgZGlzcGxheWVkIChkZWZhdWx0IGlzIHRydWUpPGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gSWYgc2V0IHRvIGZhbHNlIDAwOjAwIG8mIzAzOTtjbG9jayB3aWxsIGJlIHVzZWQ8L2VtPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRhdGVfZm9ybWF0PC90dD4gKHN0cmluZykgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGUgc3RyZnRpbWUgZGF0ZSBmb3JtYXQgdG8gc2hvdyBpbiBmcm9udGVuZC4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KCTxsaT5UaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jb250ZW50Mi8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvPC9hPjwvbGk+DQoJPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCjxiciAvPg0KPHA+RmVlbCBmcmVlIHJlcG9ydCBhbnkga2luZCBvZiBmZWVkYmFjay48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPg0KCUFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLjxiciAvPg0KCVRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLDxiciAvPg0KCWJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mPGJyIC8+DQoJTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLjxiciAvPg0KCVNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48YnIgLz4NCglZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTxiciAvPg0KCWFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlPGJyIC8+DQoJRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8YnIgLz4NCglPciByZWFkIGl0IG9ubGluZTogPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5odHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEw8L2E+PGJyIC8+DQoJUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuDQo8L3A+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTAsIEdlb3JnIEJ1c2NoIChOYU4pLiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KPGJyIC8+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzxiciAvPg0KPHA+PHN0cm9uZz5Nb2R1bGUgcmVsZWFzZXM8L3N0cm9uZz4uLi48L3A+DQo8dWw+DQoJPGxpPjxwPjxzdHJvbmc+MC42IChPY3QgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gc2V2ZXJhbCBidWdmaXhlczwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGJsb2NrX2dyb3VwPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+TWlzYzo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBSZW1vdmVkIGZpbGUgcGlja2VyIChhbmQgYXNzb2NpYXRlZCBibG9ja190eXBlcyBpbWFnZS9maWxlKSAtIHVzZSBHQkZpbGVQaWNrZXIgaW5zdGVhZC48L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNSAoU2VwdCAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUyOTIgKG1lbW9yeSBpc3N1ZSk8L3A+PC9saT4NCgkJCQkJPGxpPjxwPmZpeGVkIGJ1ZyBpdGVtICM1MjU0IChkaXNhYmxlIHd5c2l3eWcgbm90IHdvcmtpbmcpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTMxMCAodXJsb25seSBub3Qgd29ya2luZyk8L3A+PC9saT4NCgkJCQkJPGxpPjxwPmZpeGVkIGJ1ZyBpdGVtICM1MzExIChpbWFnZSBwYXRocyBub3Qgc3RvcmVkICYjMDM5O2NvcnJlY3RseSYjMDM5Oyk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+YWRkZWQgZmVhdHVyZSByZXF1ZXN0ICM1MjYxIChBZGQgc29ydCB0byBpbWFnZSB0eXBlIC0gbm90aWNlIHRoZSBjaGFuZ2Ugb2YgcGFyYW0gZmlsdGVyKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+YWRkZWQgcGFyYW1zIGV4Y2x1ZGVfcHJlZml4LCBpbmNsdWRlX3ByZWZpeCwgZXhjbHVkZV9zdWZpeCwgaW5jbHVkZV9zdWZpeDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+YWRkZWQgZmVhdHVyZSByZXF1ZXN0ICM1MjUzIChUZXh0IGlucHV0IHRvIGRlZmluZSBhZGQgcGFyYW1zIHRvIHJlZGlyZWN0IGZ1bmN0aW9uKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+YWRkZWQgZmVhdHVyZSByZXF1ZXN0ICM1MjQwIChEZWZhdWx0IHZhbHVlcyBvZiBBZHZhbmNlZENvbnRlbnQgcGFnZSBvcHRpb25zKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+YWRkZWQgZmVhdHVyZSByZXF1ZXN0ICM1MjQxIChwdXQgRmV1QWNjZXNzIGluIEJsb2NrdGFiKTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPk1pc2M6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gQWR2YW5jZWRDb250ZW50IG9wdGlvbnMgYXJlIHNob3duIGluIHNlcGFyYXRlIHRhYjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBBZGRlZCBuZXcgcGVybWlzc2lvbiB0byBtYW5hZ2UgdGhlIEFkdmFuY2VkQ29udGVudCBvcHRpb25zIHRhYjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSByZW1vdmVkIHBhcmFtIGZpbHRlciAodXNlIG5ldyBwYXJhbXMgaW5zdGVhZCk8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gcGF0aCB0byBmaWxlcyBhcmUgc3RvcmVkIHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBwYXJhbSBkaXIgb2YgYmxvY2sgdHlwZSBmaWxlL2ltYWdlIG5lZWRzIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpciBvbmx5ICh0aGVyZSBpcyBubyBpbWFnZSB1cGxvYWRzIGRpciB1c2VkIGFueW1vcmUpPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjQuMSAoQXVndXN0IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tICM1MTUxOiBmaXhlZCBzdHlsZXNoZWV0IGlzc3VlIHdpdGggZXhwYW5kL2NvbGxhcHNlIGJ1dHRvbnMgb2YgY29udGVudCBibG9ja3MgaW4gSUUvU2FmYXJpLjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSAjNTE2MjogUEhQIHdhcm5pbmdzIGlmIGJhY2tlbmQgdXNlcnMgd2l0aG91dCBwZXJtaXNzaW9uICZxdW90O01hbmFnZSBBbGwgQWR2YW5jZWRDb250ZW50IEJsb2NrcyZxdW90OyBvcGVuIGFuIGFkdmFuY2VkIGNvbnRlbnQgcGFnZSBhbmQgbXVsdGlwbGUgY29udGVudCBibG9ja3Mgb2Ygc2FtZSBuYW1lIHdlcmUgdXNlZCBpbiB0ZW1wbGF0ZS48L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGV4dHJhIGZpZWxkcyBjb3VsZCBub3QgYmUgdXBkYXRlZC48L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGZldSBhY2Nlc3MgZGlkIG5vdCB3b3JrLjwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O2RlbGV0ZSZxdW90OyB0byBsZXQgdXNlcnMgZGVsZXRlIGZpbGVzIGV2ZW4gaWYgbm8gcGVybWlzc2lvbiAmcXVvdDtNb2RpZnkgRmlsZXMmcXVvdDs8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7Y3JlYXRlX2RpcnMmcXVvdDsgdG8gbGV0IHVzZXJzIGNyZWF0ZV9kaXJzIGV2ZW4gaWYgbm8gcGVybWlzc2lvbiAmcXVvdDtNb2RpZnkgRmlsZXMmcXVvdDs8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgbmV3IGJsb2NrdHlwZSAmcXVvdDtub3RlJnF1b3Q7IHRvIGNyZWF0ZSBzb21lIHNpbmdsZSBub3RlcyBmb3IgeW91ciBlZGl0b3JzPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+TWlzYzo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSByZW1vdmVkIGRlcGVuZGVuY3kgb2YgRmlsZU1hbmFnZXI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYmxvY2sgb2YgdHlwZSBmaWxlIG9yIGltYWdlIHN0b3JlcyByZWxhdGl2ZSB1cmwgbm93PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGJsb2NrIHR5cGUgaW1hZ2Ugc2hvd3MgdGh1bWJuYWlsIGluIGJhY2tlbmQgcHJldmlldyBpbnN0ZWFkIG9mIGZ1bGwgaW1hZ2U8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNCAoSnVseSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5JbXBvcnRhbnQgbm90aWNlOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGNoYW5nZWQgcGFyYW0gJnF1b3Q7dHlwZSZxdW90OyB0byAmcXVvdDtibG9ja190eXBlJnF1b3Q7IHNpbmNlIGl0IGludGVyZmVyZXMgd2l0aCB7Y29udGVudF9tb2R1bGV9IHRhZzwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tICM1MTAxOiBwYWdlX3RhYiAmcXVvdDtvcHRpb25zJnF1b3Q7IHdhcyBzaG93biB0byB1c2VycyB3aXRoIG5vIHBlcm1pc3Npb24gdG8gZWRpdCBwYWdlIG9wdGlvbnMgaWYgYSBjb250ZW50IGJsb2NrIHdhcyBhc3NpZ25lZCB0byB0aGF0IHRhYi48L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gIzUwOTc6IGxpbmsgdG8gbWlzc2luZyBjc3MgcmVtb3ZlZDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBtaW1lLXR5cGUgaXNzdWUgKGFkZGVkIHByZWZlcmVuY2UgdG8gdG9nZ2xlIG1pbWUtdHlwZSB1c2FnZSBvbi9vZmYpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIHBhdGggaXNzdWUgd2hlcmUgdGh1bWJuYWlscyB3ZXJlIG5vdCBzaG93bjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBjb21wYXRpYmlsaXR5IHdpdGggQ01TbXMgMS44PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIG90aGVyIG1pbm9yIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgTUxFIHN1cHBvcnQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7c2hvd19jbG9jayZxdW90OyB0byBlbmFibGUvZGlzYWJsZSB0aGUgdGltZSBkcm9wZG93biBvZiBibG9ja3R5cGVzICZxdW90O2RhdGUmcXVvdDsgaW4gYmFja2VuZDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDtkYXRlX2Zvcm1hdCZxdW90OyB0byBmb3JtYXQgdGltZXN0YW1wIG9mIGJsb2NrdHlwZXMgJnF1b3Q7ZGF0ZSZxdW90OyBpbiBmcm9udGVuZDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDtkZXNjcmlwdGlvbiZxdW90OzwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBidWxrIGZ1bmN0aW9uIHRvIHNldCBhbGwgcGFnZXMgdG8gQWR2YW5jZWRDb250ZW50PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGNvbXBhdGliaWxpdHkgd2l0aCB7Y29udGVudF9tb2R1bGV9IHRhZzwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC4zLjQgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gIzUwNDU6IFdoZW4gc3dpdGNoaW5nIGZyb20gQ29udGVudCAtPiBBZHZhbmNlZCBDb250ZW50IGxvdHMgb2YgUEhQIGVycm9yczwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSAjNTA1NjogcGFnZV90YWJzIG5vdCB3b3JraW5nIGZvciB1c2VycyB3aXRob3V0IHBlcm1pc3Npb24gJnF1b3Q7TWFuYWdlIEFsbCBDb250ZW50JnF1b3Q7PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tICM1MDczOiBpbmNvcnJlY3QgZGlzcGxheSBvZiBmaWxlcyB3aGVuIG9wZW5pbmcgZmlsZXBpY2tlcjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBtaW5vciBidWcgd2hlcmUgdGhlIG9wdGlvbiAmcXVvdDthbGxvd19ub25lJnF1b3Q7IG9mIGNvbnRlbnQgYmxvY2tzIG9mIHR5cGUgaW1hZ2UvZmlsZSB3YXMgbm90IHNob3duIHdoZW4gdGVtcGxhdGUgaGFzIGJlZW4gZWRpdGVkPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgZmlsZW1hbmFnZW1lbnQgYW5kIHVwbG9hZCBmdW5jdGlvbnMgdG8gY29udGVudCBibG9ja3Mgb2YgdHlwZSBpbWFnZS9maWxlPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGJyZWFkY3VtYnMgdG8gZmlsZXBpY2tlcjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZG1pbnMgbWF5IGJyb3dzZSB0aGUgZW50aXJlIGRpciB0cmVlIGluIGZpbGVwaWNrZXIgZmlsZSBicm93c2VyIHJlZ2FyZGxlc3Mgb2YgdGVtcGxhdGUgcGFyYW1zPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIG1pbWUgdHlwZSBjaGVja2luZyB0byBnZXQgZmlsZSB0eXBlPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHJhd3VybGVuY29kZSBpbiBzcmMgYXR0cmlicyB0byBkaXNwbGF5IGltYWdlcyB3aXRoIHdlaXJkIGZpbGVuYW1lcy48L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5taXNjZWxsYW5lb3VzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIHJlbW92ZWQgT09QIHN0dWZmIChwcml2YXRlL3B1YmxpYy9wcm90ZWN0ZWQpIHRvIGdhaW4gbW9yZSBjb21wYXRpYmlsaXR5IHdpdGggUEhQNDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBjaGFuZ2VkIGFqYXggZnVuY3Rpb25zIHRvIHJldHVybiB4bWwgdmFsdWVzPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIHJlbW92ZWQgdXNhZ2Ugb2YgSW1hZ2VNYW5hZ2VyIG9uY2UgYW5kIGZvciBhbGwuIChjYXVzZWQgb25seSB0cm91YmxlKTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC4zLjMgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCTx1bD4NCgkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCTx1bD4NCgkJCQk8bGk+PHA+LSBhbGlhcyB3YXMgbm90IGFsd2F5cyBjb252ZXJ0ZWQgcHJvcGVybHk8L3A+PC9saT4NCgkJCQk8bGk+PHA+LSB1bnN1Ym1pdHRlZCBjb250ZW50IGdvdCBsb3N0IGlmIHN3aXRjaGluZyBmcm9tIENvbnRlbnQgdG8gQWR2YW5jZWRDb250ZW50PC9wPjwvbGk+DQoJCQk8L3VsPg0KCQk8L2xpPg0KCQk8bGk+PHA+RmVhdHVyZXM6PC9wPg0KCQkJPHVsPg0KCQkJCTxsaT48cD4tIGFkZGVkIHN0YXJ0L2VuZCBkYXRlPC9wPjwvbGk+DQoJCQkJPGxpPjxwPi0gcmVtb3ZlZCB0aW1lcGlja2VyOyByZXBsYWNlZCBieSBhIHNpbXBsZSBkcm9wZG93bjwvcD48L2xpPg0KCQkJCTxsaT48cD4tIGNvbXBhdGliaWxpdHkgd2l0aCB7Y29udGVudF9pbWFnZX08L3A+PC9saT4NCgkJCTwvdWw+DQoJCTwvbGk+DQoJPC91bD4NCgk8bGk+PHA+PHN0cm9uZz4wLjMuMiAoSnVuZSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBjaGFuZ2luZyBiYWNrIHRvIGRlZmF1bHQgY29udGVudCB0eXBlIG9yIGNoYW5naW5nIHRlbXBsYXRlIGNhdXNlZCBmYXRhbCBlcnJvcnM8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGEgYnVnIHdpdGggc21hcnR5IHByb2Nlc3Npbmcgd2hlbiBzYXZpbmcgYSBwYWdlPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHByZXZpZXcgdGFiPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSByZS1hZGRlZCBleHBhbmQvY29sbGFwc2UgYnV0dG9uIHRvIHRvZ2dsZSBjb250ZW50IGJsb2NrcyBpbiBiYWNrZW5kPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbXMgZWRpdG9yX2dyb3Vwcy9lZGl0b3JfdXNlcnMgdG8gc3BlY2lmeSBjZXJ0YWluIHVzZXJzL2dyb3VwcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGVkaXQgY2VydGFpbiBibG9ja3M8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbW92ZWQgcGFyYW1zIHNlbGVjdGVkL2NoZWNrZWQ7IHVzZSBwYXJhbSBkZWZhdWx0IGluc3RlYWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGJsb2NrIGlkcyB3aWxsIGJlIGNvbnZlcnRlZCBmcm9tIGJsb2NrIG5hbWUgdXNpbmcgY29yZSBmdW5jdGlvbiBtdW5nZV9zdHJpbmdfdG9fdXJsICh0byByZW1vdmUgc3BlY2lhbCBjaGFycywgd2hpdGVzcGFjZXMsIHVtbGF1dHMgZXRjLik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyBvZiBibG9ja3R5cGUgZHJvcGRvd24vc2VsZWN0X211bHRpcGxlIHdoZXJlIGZpcnN0IGl0ZW0gaGFkIGFuIGVtcHR5IGxhYmVsIGlmIG9ubHkgdGhlIHBhcmFtICZxdW90O3ZhbHVlcyZxdW90OyBpcyB1c2VkPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBzb21lIHRlbXBsYXRlIHZhcnMgb2YgdGhlIGZyb250ZW5kIHRvIGJlIGFsc28gYWNjZXNzaWJsZSBpbiBiYWNrZW5kIChlLmcuOiAkcGFnZV9hbGlhcyk8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O2FsbG93X25vbmUmcXVvdDsgdG8gYWxsIGNvbnRlbnQgYmxvY2sgdHlwZXMgdG8gc3BlY2lmeSBpZiB0aGUgcHJlZGVmaW5lZCBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdXNlZCBpZiBubyB2YWx1ZSBpcyBlbnRlcmVkPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZW1wdHkgdmFsdWVzIHdlcmUgbmV2ZXIgYmUgc3RvcmVkPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZGVmYXVsdCB2YWx1ZSBpbiBmcm9udGVuZCB3YXMgaWdub3JlZCBpZiB0aGUgJnF1b3Q7YWxsb3dfbm9uZSZxdW90OyBwYXJhbSB3YXMgY2hhbmdlZCBhZnRlciBhbiBlbXB0eSB2YWx1ZSBoYXMgYmVlbiBzdG9yZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O3NvcnRhYmxlX2l0ZW1zJnF1b3Q7IHRvIGNyZWF0ZSBhIHNvcnRhYmxlIG11bHRpcGxlIHNlbGVjdCBsaXN0IChzZWxlY3QgbGlzdCB3aWxsIHJlc3VsdCBpbiBhIHRhYmxlIHdpdGggY2hlY2tib3hlczsgb25seSBvcmRlciBvZiBzZWxlY3RlZCBpdGVtcyB3aWxsIGJlIHN0b3JlZCBhbmQgc2hvd2VkIGF0IHRoZSB0b3Agb2YgdGhlIGxpc3Q7IHVuc2VsZWN0ZWQgaXRlbXMgd2lsbCBiZSBhcHBlbmRlZCBpbiB0aGF0IG9yZGVyIHRoZXkgYXJlIHBsYWNlZCBpbiB0aGUgdGVtcGxhdGUpPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjMuMSAoTWF5IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gcmVtb3ZlZCB0aGUgcmVvcmRlcmluZyBzdHVmZiBmb3Igbm93IChjYXVzZXMgdHJvdWJsZSBhdCB0aGlzIHRpbWUpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSByZW1vdmVkIHRoZSBkYiBzdHVmZiAocGFyYW1zIG9mIGNvbnRlbnQgYmxvY2tzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGVtcGxhdGUgd29uJiMwMzk7dCBiZSBzYXZlZCBpbiBtb2R1bGUgZGIgdGFibGUgYW55bW9yZSAtPiBob3BlZnVsbHkgc3BlZWQgdXAgbG9hZGluZyB0aW1lKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBkdXBsaWNhdGUgY29udGVudCBibG9ja3M8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz5BZHZhbmNlZENvbnRlbnQgMC4zIChNYXkgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSByZXdyaXRlIGNvZGU8L3A+PC9saT4NCgkJCTxsaT48cD4tIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSByZW5hbWVkIHRvIEFkdmFuY2VkQ29udGVudDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gdXNpbmcgc2VwYXJhdGUgbW9kdWxlIHRlbXBsYXRlIG5vdyB0byBkc3BsYXkgY29udGVudCBibG9ja3M8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbW92ZWQgcGFnZSBhbGlhcyBpbmhlcml0YW5jZTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQo8L3VsPg0KPHVsPg0KCTxsaT48cD48c3Ryb25nPlhDb250ZW50IEJFVEEgMyAoQXByaWwgMjAxMCAtIGRpc2NvbnRpbnVlZCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBNYWpvciBCdWdmaXggKG1pc3NpbmcgJnF1b3Q7OyZxdW90OyBhbmQgc3RyYW5nZSBpbnZpc2libGUgaW52YWxpZCBjaGFycyk8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPlhDb250ZW50IEJFVEEgMiAoQXByaWwgMjAxMCAtIGRpc2NvbnRpbnVlZCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHBhcmFtICZxdW90O2RlbGltaXRlciZxdW90OzwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBzbWFydHkgcHJvY2Vzc2luZzwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgaW5oZXJpdGFuY2Ugb2YgJnF1b3Q7U2hvdyBsb2dpbiBmb3JtJnF1b3Q7PC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBpbmhlcml0YW5jZSBvZiBwYWdlIGFsaWFzIHRvIGFkZCBpdCBhcyBwcmVmZml4OyBzbyBpZiB5b3UgaGF2ZSBhIHBhZ2UgY2FsbGVkICZxdW90O21lbWJlcnMmcXVvdDsgYW5kIHNlbGVjdCBmb3IgZWFjaCBjaGlsZCBwYWdlICZxdW90O2luaGVyaXQgcGFnZSBhbGlhcyZxdW90OyBhbGwgY2hpbGQgcGFnZXMgYWxpYXNlcyB3aWxsIHN0YXJ0IHdpdGggJnF1b3Q7bWVtYmVyc18mcXVvdDs7IG1ha2VzIGZpbHRlcmluZyBvZiBtZW51IGVudHJpZXMgd2l0aCBNZW51TWFuYWdlciBwYXJhbSAmcXVvdDtleGNsdWRlcHJlZmZpeCZxdW90OyBvciAmcXVvdDtpbmNsdWRlcHJlZmZpeCZxdW90OyBlYXNpZXIuPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBtaW5vciBidWdmaXhlczwvcD48L2xpPiANCgkJPC91bD4NCgk8L2xpPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz5YQ29udGVudCBCRVRBIChBcHJpbCAyMDEwKTo8L3N0cm9uZz4gaW5pdGlhbCByZWxlYXNlPC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBjb252ZXJ0ZWQgdGhlIHNpbmdsZSBmaWxlIGludG8gYSBtb2R1bGU8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbmFtZWQgcGFyYW1zOyBzZWUgbW9kdWxlIGhlbHAgZm9yIG1vcmUgZGV0YWlsczwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5TaW5nbGUgZmlsZSByZWxlYXNlcyAoZGlzY29udGludWVkKTwvc3Ryb25nPi4uLjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+MS40IChNYXJjaCAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIGNsZWFudXAgY29kZSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBtaW5vciBidWdmaXhlcyAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCByZWRpcmVjdCBwYWdlIGlmIGZldSBpcyBub3QgbG9nZ2VkIGluIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mIGZldV9hY2Nlc3MgYW5kIHJlZGlyZWN0X3BhZ2UgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmV1X2FjY2VzcyAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWN0aW9uIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIHJlZGlyZWN0X3BhZ2UgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gYmxvY2tfb25seSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBzbWFydHkgbG9naWMgaW4gYmFja2VuZCAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gc3R5bGUgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZpbHRlciAoZmlsdGVyaW5nIGltYWdlcyBpbiBiYWNrZW5kKSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gSW1nTW9kZSAoZHJvcGRvd24gb3IgSW1hZ2VNYW5hZ2VyKSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gc21hcnR5T24gKGZvciBwcm9jZXNzaW5nIHNtYXJ0eSB2YXJzIG9mIHRoZSB0ZW1wYXRlIGluIGJhY2tlbmQpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4xLjMgKEFwcmlsIDIwMDkpOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gQ01TbXMgMS42LiogcmVhZHkgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgZmV1IGFjY2VzcyBvcHRpb24gLSAoTmFOKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPjEuMiAoTWFyY2ggMjAwOSk6PC9zdHJvbmc+IGluaXRpYWwgcmVsZWFzZTwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gQSBzaW5nbGUgZmlsZSBDb250ZW50Mi5pbmMucGhwIHRoYXQgbmVlZHMgdG8gYmUgcGFjZWQgaW4gbGliL2NsYXNzZXMvY29udGVudHR5cGVzLjwvcD48L2xpPg0KCQkJPGxpPjxwPi0gbGF5b3V0L29wdGlvbnMgb2YgYmFja2VuZCBwYW5lbCBjYW4gYmUgY29udHJvbGVkIGJ5IGFkZGl0aW9uYWwgc21hcnR5IHBhcmFtcyBpbiB0aGUgdGVtcGxhdGU7IGludGVncmF0ZWQgdGhlIHtjb250ZW50X2ltYWdlfSB0YWcgLSAobW9kIGJ5IE5hTik8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KPC91bD4NCjxiciAvPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjM3NzUxMDg2MzM4ODQ5MDEwMDAuMTIzNTM5MTM2My4xMjk2MDUxMzU2LjEyOTYwNzE4MDUuOTInOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjk2MDcxODA1LjkyLjQxLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9wcm9qZWN0cy9jb250ZW50Mnx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTg2MzEwOTU0LTEyNTcyNDM5ODUxNzcnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ0NvbnRlbnV0byBBdmFuemF0byc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bG8gQWR2YW5jZWRDb250ZW50ICVzIGluc3RhbGxhdG8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bG8gQWR2YW5jZWRDb250ZW50ICVzIGRpc2luc3RhbGxhdG8nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bG8gQWR2YW5jZWRDb250ZW50IGFnZ2lvcm5hdG8gYWxsYSB2ZXJzaW9uZSAlcyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsbyBBZHZhbmNlZENvbnRlbnQgJXMgaW5zdGFsbGF0by4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsbyBBZHZhbmNlZENvbnRlbnQgJXMgZGlzaW5zdGFsbGF0by4nOwokbGFuZ1snY29uZmlybXVuaW5zdGFsbCddID0gJ1ZvbGV0ZSBkYXZ2ZXJvIGRpc2luc3RhbGxhcmUgaWwgbW9kdWxvIEFkdmFuY2VkQ29udGVudD8nOwokbGFuZ1snbm90aWNlX2R1cGxpY2F0ZWNvbnRlbnQnXSA9ICc8ZW0+PHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBRdWVzdG8gYmxvY2NvIHZpZW5lIHV0aWxpenphdG8gcGkmdWdyYXZlOyB2b2x0ZSBuZWkgdGVtcGxhdGUuIFF1aSB2ZWRldGUgc29sbyBpbCBwcmltbyBibG9jY28uPC9lbT4nOwokbGFuZ1snZXJyb3JfYmFzaWNhdHRyaWInXSA9ICc8ZW0+PHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBDYW5ub3QgdXNlIGJhc2ljIGNvbnRlbnQgcHJvcGVydHkgbmFtZSAmIzAzOTslcyYjMDM5OyBhcyB2YWx1ZSBvZiBwYXJhbSAmIzAzOTtibG9jayYjMDM5Oy4gPGJyIC8+VGhpcyBibG9jayBpcyBkaXNhYmxlZC4gQ2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlIGFuZCBjaG9zZSBhIGRpZmZlcmVudCB2YWx1ZSBvZiBwYXJhbSAmIzAzOTtibG9jayYjMDM5Oy48L2VtPic7CiRsYW5nWydlcnJvcl9leHBpcmVkYXRlJ10gPSAnRW5kIGRhdGUgbXVzdCBiZSBsYXRlciB0aGFuIHN0YXJ0IGRhdGUuJzsKJGxhbmdbJ3lvdWFyZWludGV4dCddID0gJ0N1cnJlbnQgZGlyZWN0b3J5JzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdJbWFnZXNpemUnOwokbGFuZ1snc2l6ZSddID0gJ0ZpbGVzaXplJzsKJGxhbmdbJ2luaGVyaXRfZnJvbV9wYXJlbnQnXSA9ICdJbmhlcml0IGZyb20gcGFyZW50JzsKJGxhbmdbJ25vbmUnXSA9ICdub25lJzsKJGxhbmdbJ2ludmFsaWQnXSA9ICdpbnZhbGlkJzsKJGxhbmdbJ2ludmFsaWRfYmxvY2t0eXBlJ10gPSAnPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBJbnZhbGlkIHZhbHVlICYjMDM5OyVzJiMwMzk7IG9mIHBhcmFtIGJsb2NrX3R5cGUgaW4gYmxvY2sgJiMwMzk7JXMmIzAzOTsuPGJyIC8+Q2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlLjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudF9ibG9ja3BhcmFtcyddID0gJzxlbT48c3Ryb25nPkVycm9yOjwvc3Ryb25nPiBJbnN1ZmZpY2llbnQgcGFyYW1zLiA8YnIgLz5NaXNzaW5nIHBhcmFtICYjMDM5OyVzJiMwMzk7IGZvciBibG9jayAmIzAzOTslcyYjMDM5Oy4gQ2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlLjwvZW0+JzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ2Zyb250ZW5kYWNjZXNzJ10gPSAnRnJvbnRlbmQgYWNjZXNzJzsKJGxhbmdbJ3JlZGlyZWN0cGFnZSddID0gJ1JlZGlyZWN0IFBhZ2UgaWYgbm8gYWNjZXNzJzsKJGxhbmdbJ3Nob3dsb2dpbmZvcm0nXSA9ICdTaG93IGxvZ2luIGZvcm0nOwokbGFuZ1sncmVnaXN0ZXJlZHVzZXJzJ10gPSAnUmVnaXN0ZXJlZCB1c2VycyBvbmx5JzsKJGxhbmdbJ2Jsb2NrJ10gPSAnQmxvY2snOwokbGFuZ1sndXNlZXhwaXJlZGF0ZSddID0gJ1VzZSBleHBpcmUgZGF0ZSc7CiRsYW5nWydzdGFydGRhdGUnXSA9ICdTdGFydCBEYXRlJzsKJGxhbmdbJ2VuZGRhdGUnXSA9ICdFbmQgRGF0ZSc7CiRsYW5nWydibG9ja2NvbnRlbnQnXSA9ICdCbG9jayBDb250ZW50JzsKJGxhbmdbJ3NldHBhZ2VpbmFjdGl2ZSddID0gJ1NldCBQYWdlIHRvIEluYWN0aXZlJzsKJGxhbmdbJ2RlbGV0ZXBhZ2UnXSA9ICdEZWxldGUgUGFnZSc7CiRsYW5nWyd1bmluc3RhbGxhY3Rpb24nXSA9ICdVbmluc3RhbGwgYWN0aW9uJzsKJGxhbmdbJ3NldGNvbnRlbnQxJ10gPSAnU2V0IGFsbCBQYWdlcyBvZiBBZHZhbmNlZENvbnRlbnQgYmFjayB0byB0eXBlIENvbnRlbnQnOwokbGFuZ1snc2V0Y29udGVudDInXSA9ICdTZXQgYWxsIFBhZ2VzIG9mIEFkdmFuY2VkQ29udGVudCBiYWNrIHRvIHR5cGUgQ29udGVudCBhbmQgcmVtb3ZlIGFkZGl0aW9uYWwgY29udGVudCBibG9ja3MnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnUHJlZmVyZW5jZXMgdXBkYXRlZCc7CiRsYW5nWydzdWNjZXNzJ10gPSAnT2snOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvcic7CiRsYW5nWydkZWxldGVwYWdlcyddID0gJ0RlbGV0ZSBhbGwgcGFnZXMgb2YgdHlwZSBBZHZhbmNlZENvbnRlbnQnOwokbGFuZ1snaW1wb3J0cGFnZXMnXSA9ICdTZXQgYWxsIFBhZ2VzIG9mIHR5cGUgJXMgdG8gdHlwZSAlcy4nOwokbGFuZ1sncGFnZXNpbXBvcnRlZCddID0gJ0FsbCBjb250ZW50IHBhZ2VzIHNldCB0byBBZHZhbmNlZENvbnRlbnQuJzsKJGxhbmdbJ2NvbmZpcm1pbXBvcnQnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50IHR5cGUgb2YgYWxsIGNvbnRlbnQgcGFnZXM/JzsKJGxhbmdbJ3RvZ2dsZV9tZXNzYWdlJ10gPSAnSGlkZSB0aGlzIG1lc3NhZ2UnOwokbGFuZ1snY29udGVudHNldHRpbmdzJ10gPSAnRGVmYXVsdCBBZHZhbmNlZENvbnRlbnQgc2V0dGluZ3MnOwokbGFuZ1sncmVkaXJlY3RwYXJhbXMnXSA9ICdVUkwgcGFyYW1zIHRvIGFwcGVuZCB3aGVuIHJlZGlyZWN0aW5nJzsKJGxhbmdbJ2V2YWx1YXRlc21hcnR5J10gPSAnVXNlIHNtYXJ0eSB0byBwcm9jZXNzIHRoZSBwYXJhbXMnOwokbGFuZ1snZXJyb3JfbG9hZGluZ19tb2R1bGUnXSA9ICc8ZW0+PHN0cm9uZz5FcnJvcjo8L3N0cm9uZz4gQ291bGQgbm90IGxvYWQgbW9kdWxlICYjMDM5OyVzJiMwMzk7LiAoRGVmaW5lZCBmb3IgYmxvY2sgJiMwMzk7JXMmIzAzOTsgaW4geW91ciBwYWdlIHRlbXBsYXRlLik8L2VtPic7CiRsYW5nWydlcnJvcl9jb250ZW50YmxvY2tfc3VwcG9ydCddID0gJzxlbT48c3Ryb25nPkVycm9yOjwvc3Ryb25nPiBNb2R1bGUgJiMwMzk7JXMmIzAzOTsgZG9lcyBub3Qgc3VwcG9ydCBjb250ZW50YmxvY2tzLiAoRGVmaW5lZCBmb3IgYmxvY2sgJiMwMzk7JXMmIzAzOTsgaW4geW91ciBwYWdlIHRlbXBsYXRlLik8L2VtPic7CiRsYW5nWydzdWNjZXNzX2ltcG9ydHBhZ2VzJ10gPSAnQWxsIHBhZ2VzIG9mIHR5cGUgJXMgc3VjY2VzZnVsbHkgY2hhbmdlZCB0byAlcyc7CiRsYW5nWydzaG93X2FkdmFuY2VkY29udGVudF9vcHRpb25zJ10gPSAnU2hvdyBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyB0YWInOwokbGFuZ1snZGlzcGxheV9zZXR0aW5ncyddID0gJyVzIGRpc3BsYXkgc2V0dGluZ3MnOwokbGFuZ1snc2F2ZV9jb2xsYXBzZV9zdGF0dXMnXSA9ICdTYXZlIGNvbGxwYXNlIHN0YXR1cyBvZiAlcyc7CiRsYW5nWydjb250ZW50X2Jsb2NrcyddID0gJ2NvbnRlbnQgYmxvY2tzJzsKJGxhbmdbJ2Jsb2NrX21lc3NhZ2UnXSA9ICdjb250ZW50IGJsb2NrIG1lc3NhZ2UnOwokbGFuZ1snYmxvY2tfZ3JvdXBzJ10gPSAnYmxvY2sgZ3JvdXBzJzsKJGxhbmdbJ2NvbGxhcHNlX2RlZmF1bHQnXSA9ICdDb2xsYXBzZSAlcyBieSBkZWZhdWx0JzsKJGxhbmdbJ3Blcl9wYWdlJ10gPSAncGVyIHBhZ2UnOwokbGFuZ1sncGVyX3RlbXBsYXRlJ10gPSAncGVyIHRlbXBsYXRlJzsKJGxhbmdbJ2JvdGgxJ10gPSAndGVtcGxhdGUgT1IgcGFnZSAnOwokbGFuZ1snYm90aDInXSA9ICd0ZW1wbGF0ZSBBTkQgcGFnZSc7CiRsYW5nWydjb250ZW50J10gPSAnQ29udGVudCc7CiRsYW5nWydjb250ZW50MiddID0gJ0FkdmFuY2VkIENvbnRlbnQnOwokbGFuZ1sncHJlZnMnXSA9ICdQcmVmZXJlbmNlcyc7CiRsYW5nWydtdWx0aV9pbnB1dCddID0gJ011bHRpIElucHV0cyc7CiRsYW5nWydtdWx0aV9pbnB1dF90cGwnXSA9ICdNdWx0aSBJbnB1dCBUZW1wbGF0ZXMnOwokbGFuZ1snYWRkX211bHRpX2lucHV0J10gPSAnQWRkIG5ldyBtdWx0aSBpbnB1dCc7CiRsYW5nWydhZGRfbXVsdGlfaW5wdXRfdHBsJ10gPSAnQWRkIG5ldyBtdWx0aSBpbnB1dCB0ZW1wbGF0ZSc7CiRsYW5nWydpbnB1dF9pZCddID0gJ0lucHV0IElEJzsKJGxhbmdbJ2lucHV0X2ZpZWxkcyddID0gJ0lucHV0IGZpZWxkcyc7CiRsYW5nWyd0cGxfbmFtZSddID0gJ1RlbXBsYXRlIG5hbWUnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBpcyBhIHJlcXVpcmVkIGZpZWxkIGFuZCBtYXkgbm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2lucHV0X2ZpZWxkcyddID0gJ0lucHV0IGZpZWxkcyBpcyBhIHJlcXVpcmVkIGZpZWxkIGFuZCBtYXkgbm90IGJlIGVtcHR5Lic7CiRsYW5nWydlcnJvcl9pbnB1dF9pZCddID0gJ05vIGlucHV0IGlkIGdpdmVuIG9yIGlucHV0IGlkIGFscmVhZHkgZXhpc3RzLic7CiRsYW5nWydlcnJvcl9pbnB1dF9pZF9leGlzdHMnXSA9ICdJbnB1dCBJRCBpcyBhbHJlYWR5IGluIHVzZS4gQ2hvb3NlIGEgZGlmZmVyZW50IG9uZS4gKG11c3QgYmUgdW5pcXVlKSc7CiRsYW5nWydtdWx0aV9pbnB1dF9hZGRlZCddID0gJ011bHRpIElucHV0IGFkZGVkLic7CiRsYW5nWydtdWx0aV9pbnB1dF9kZWxldGVkJ10gPSAnTXVsdGkgSW5wdXQgZGVsZXRlZC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdXBkYXRlZCddID0gJ011bHRpIElucHV0IHVwZGF0ZWQuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF9hZGRlZCddID0gJ011bHRpIElucHV0IHRlbXBsYXRlIGFkZGVkLic7CiRsYW5nWydtdWx0aV9pbnB1dF90cGxfdXBkYXRlZCddID0gJ011bHRpIElucHV0IHRlbXBsYXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF9kZWxldGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgZGVsZXRlZC4nOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnRGVsZXRlIHNlbGVjdGVkIGl0ZW1zJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlJ10gPSAnRG8geW91IHJlYWxseSB3YW50IGRvIGRlbGV0ZSB0aGlzIGl0ZW0/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX3NlbGVjdGVkJ10gPSAnRG8geW91IHJlYWxseSB3YW50IGRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgaXRlbXM/JzsKJGxhbmdbJ3VzZV9jb250ZW50dHlwZSddID0gJ1VzZSBjb250ZW50dHlwZSc7CiRsYW5nWydoZWxwX3RwbF92YXJzJ10gPSAnPHA+PHN0cm9uZz5UZW1wbGF0ZSB2YXJzOjwvc3Ryb25nPjwvcD4NCjxwPjxwcmU+PGNvZGU+eyRpbnB1dHN9PC9jb2RlPjwvcHJlPiBpcyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCBkZWZpbmVkIGlucHV0IGVsZW1lbnRzIG9mIHRoYXQgbXVsdGkgaW5wdXQgYmxvY2suPGJyIC8+DQpFYWNoIGlucHV0IGVsZW1lbnQgaXMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgaXRzIHBhcmFtcy4gPGJyIC8+DQpTZWUgbW9kdWxlIGhlbHAgZm9yIG1vcmUgaW5mby48YnIgLz4NCkFkZGl0aW9uYWwgcGFyYW0gaXMgJnF1b3Q7aW5wdXQmcXVvdDsgdGhhdCB3aWxsIHByaW50IG91dCB0aGUgaW5wdXQgZWxlbWVudC48YnIgLz4NClRvIGFjY2VzcyB0aGUgcGFyYW1zIHVzZSB0aGUgZG90IHN5bnRheC48YnIgLz4NCkV4YW1wbGU6PC9wPg0KPHByZT48Y29kZT57Zm9yZWFjaCBmcm9tPSRpbnB1dHMgaXRlbT1lbG19DQoJeyRlbG0ubGFiZWx9OiZuYnNwO3skZWxtLmlucHV0fTxiciAvPg0Key9mb3JlYWNofTwvY29kZT48L3ByZT4nOwokbGFuZ1snaGVscCddID0gJzxiciAvPg0KPGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+DQo8cD5UaGlzIGlzIGEgbW9kaWZpY2F0aW9uIG9mIHRoZSBkZWZhdWx0IGNvbnRlbnQgdHlwZSAmcXVvdDtDb250ZW50JnF1b3Q7IG9mIENNU21zLjxiciAvPg0KSXQgcHJvdmlkZXMgbW9yZSBmbGV4aWJpbGl0eSBieSBjcmVhdGluZyBjdXN0b20gaW5wdXQgY29udHJvbHMgaW4gYmFja2VuZC48YnIgLz4NClVzZXJzIGNhbiBhZGQgZHJvcGRvd25zLCBtdWx0aXBsZSBzZWxlY3QgbGlzdHMsIGNoZWNrYm94ZXMsIGdyb3VwIGNvbnRlbnQgYmxvY2tzIA0KaW4gc2VwYXJhdGUgcGFnZSB0YWJzLCBibG9jayB0YWJzIGluc2lkZSBhIHBhZ2UgdGFiIG9yIGluIGZpZWxkc2V0cyBieSBqdXN0IA0KdXNpbmcgYWRkaXRpb25hbCBwYXJhbXMgaW4gdGhlIHRlbXBsYXRlIHdoZW4gY2FsbGluZyB0aGUgY29udGVudC48YnIgLz4NCkl0IGFsc28gYWRkcyBhYmlsaXR5IHRvIGdyYW50IGFjY2VzcyBvZiBwYWdlcyB0byBjZXJ0YWluIHVzZXJzIG9mIHRoZSANCkZyb250RW5kVXNlcnMgbW9kdWxlIGFuZCBoaWRlIHRoZSBjb250ZW50LCByZXBsYWNlIGl0IGJ5IHRoZSBsb2dpbiBmb3JtIG9mIHRoZSANCkZyb250RW5kVXNlcnMgbW9kdWxlIG9yIHJlZGlyZWN0IHRvIGEgc3BlY2lmaWVkIHBhZ2Ugc2hvd2luZyB0aGUgbG9naW4gZm9ybSBvciANCmp1c3QgcmVkaXJlY3Qgd2l0aG91dCBkb2luZyBhbnl0aGluZyBlbHNlLjxiciAvPg0KUGFnZSBwcm9wZXJ0eSBvZiBGcm9udEVuZFVzZXJzIGFjY2VzcyBhbmQgcmVkaXJlY3QgcGFnZSBjYW4gYmUgaW5oZXJpdGVkIGJ5IA0KcGFyZW50IHBhZ2VzLjwvcD4NCjxwPjxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVG8gZ2V0IHRoZSBmdWxsIGZ1bmN0aW9uYWxpdHkgb2YgdGhpcyBjb250ZW50IHR5cGUgDQppbiBmcm9udGVuZCB5b3UgbmVlZCB0byBjYWxsIHlvdXIgY29udGVudCB3aXRoIHRoZSBtb2R1bGUgcGx1Z2luIHtBZHZhbmNlZENvbnRlbnR9IA0KKGNhc2Ugc2Vuc2l0aXZlISkuPGJyIC8+DQpPdGhlcndpc2UgaXQgbWF5IGJlaGF2ZSBsaWtlIHRoZSBkZWZhdWx0IGNvbnRlbnQgdHlwZSBwbHVnaW4uPC9lbT48L3A+DQo8cD5Zb3UgY2FuIGV2ZW4gdXNlIHNtYXJ0eSBsb2dpYyBpbiBwYXJhbWV0ZXIgdmFsdWVzLiBUaGF0IG1lYW5zIHlvdSBjYW4gdXNlIHRoZSANCnJlc3VsdCBvZiBhIHBsdWdpbiwgYW4gdWR0IG9yIGV2ZW4gYSBtb2R1bGUgb3IganVzdCB0aGUgY29udGVudCBvZiBhIGdsb2JhbCANCmNvbnRlbnQgYmxvY2sgYXMgcGFyYW1ldGVyIHZhbHVlIHRvIGNyZWF0ZSBkeW5hbWljIHZhbHVlcy48L3A+DQo8aDM+SG93IGlzIGl0IHVzZWQ/PC9oMz4NCjxwPkFmdGVyIGluc3RhbGxhdGlvbiB0aGUgbW9kdWxlIHNldHRpbmdzIGNhbiBiZSBmb3VuZCBpbiAmcXVvdDtFeHRlbnNpb25zLT5BZHZhbmNlZENvbnRlbnQmcXVvdDsuPC9wPg0KPHA+QWRkaXRpb25hbGx5IHlvdSB3aWxsIGhhdmUgYSBuZXcgY29udGVudCB0eXBlICZxdW90O0FkdmFuY2VkQ29udGVudCZxdW90OyBhdmFpbGFibGUgDQp3aGVuIGFkZGluZy9lZGl0aW5nIGEgcGFnZS48YnIgLz4NCjxwPkFkZCB0aGUgZm9sbG93aW5nIHBhcmFtcyB0byB5b3VyIGNvbnRlbnQgdGFnIGluIHlvdXIgcGFnZSB0ZW1wbGF0ZSwgDQpjaGFuZ2UgdGhlIGNvbnRlbnQgdHlwZSBvZiB5b3VyIHBhZ2UgdG8gJnF1b3Q7QWR2YW5jZWRDb250ZW50JnF1b3Q7IGFuZCBzZWUgd2hhdCBoYXBwZW5zIA0KaW4gYmFja2VuZC4uLjwvcD4NCjxoMz5XaGF0IHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZT88L2gzPg0KPHA+YWxsIHBhcmFtcyBhcmUgb3B0aW9uYWw8L3A+DQo8cD48c3Ryb25nPkRlZmF1bHQgcGFyYW1zOjwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUFsbG93cyB5b3UgdG8gaGF2ZSBtb3JlIHRoYW4gb25lIGNvbnRlbnQgYmxvY2sgcGVyIHBhZ2UuIElmIG11bHRpcGxlIGNvbnRlbnQgdGFncyBhcmUgcHV0IG9uIGEgdGVtcGxhdGUsIHRoYXQgbnVtYmVyIG9mIGVkaXQgYm94ZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgdGhlIHBhZ2UgaXMgZWRpdGVkLjxiciAvPg0KCQkJCWUuZy46IDxjb2RlPntjb250ZW50IGJsb2NrPSZxdW90O1NlY29uZCBDb250ZW50IGJsb2NrJnF1b3Q7fTwvY29kZT48YnIgLz4NCgkJCQlOb3csIGlmIHlvdSBlZGl0IGEgcGFnZSB0aGVyZSB3aWxsIGJhIGEgdGV4dGFyZWEgY2FsbGVkICZxdW90O1NlY29uZCBDb250ZW50IGJsb2NrJnF1b3Q7LjxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2sgbWF5IGNvbnRhaW4gb25seSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMgKG5vIHdoaXRlc3BhY2VzLCBzcGVjaWFsIGNoYXJzLCB1bWxhdXRzIGV0Yy4pLiBPdGhlcndpc2UgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYSBwcm9wZXIgbmFtZSAoc2ltaWxhciB0byB0aGUgcGFnZSBhbGlhcykuPC9lbT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD53eXNpd3lnPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT5JZiBzZXQgdG8gZmFsc2UsIHRoZW4gYSB3eXNpd3lnIHdpbGwgbmV2ZXIgYmUgdXNlZCB3aGlsZSBlZGl0aW5nIHRoaXMgYmxvY2suIElmIHRydWUsIHRoZW4gaXQgYWN0cyBhcyBub3JtYWwuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pm9uZWxpbmU8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPklmIHNldCB0byB0cnVlLCB0aGVuIG9ubHkgb25lIGVkaXQgbGluZSB3aWxsIGJlIHNob3duIHdoaWxlIGVkaXRpbmcgdGhpcyBibG9jay4gSWYgZmFsc2UsIHRoZW4gaXQgYWN0cyBhcyBub3JtYWwuIE9ubHkgd29ya3Mgd2hlbiBibG9jayBwYXJhbWV0ZXIgaXMgdXNlZC48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVmYXVsdDwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT5EZWZhdWx0IGNvbnRlbnQgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5sYWJlbDwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT5Qcm9tcHQgZm9yIHRoaXMgY29udGVudCBibG9jay4gUG9zc2libGUgdmFsdWVzIGFyZSBhbnkgZXhwcmVzc2lvbi4gSWYgYmxhbmssIHRoZSB1bmNvbnZlcnRlZCBibG9jayBuYW1lIGlzIHVzZWQuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFzc2lnbjwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlBc3NpZ25zIHRoZSBjb250ZW50IHRvIGEgc21hcnR5IHBhcmFtZXRlciwgd2hpY2ggeW91IGNhbiB0aGVuIHVzZSBpbiBvdGhlciBhcmVhcyBvZiB0aGUgcGFnZSwgb3IgdXNlIHRvIHRlc3Qgd2hldGhlciBjb250ZW50IGV4aXN0cyBpbiBpdCBvciBub3QuPGJyIC8+DQoJCQkJRXhhbXBsZSBvZiBwYXNzaW5nIHBhZ2UgY29udGVudCB0byBhIFVzZXIgRGVmaW5lZCBUYWcgYXMgYSBwYXJhbWV0ZXI6PGJyIC8+DQoJCQkJPGNvZGU+e2NvbnRlbnQgYXNzaWduPXBhZ2Vjb250ZW50fTxiciAvPg0KCQkJCXt0YWJsZV9vZl9jb250ZW50cyB0aGVwYWdlY29udGVudD0mcXVvdDskcGFnZWNvbnRlbnQmcXVvdDt9PC9jb2RlPjxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gRm9yIHNvbWUgcmVhc29uIHRoaXMgcGFyYW0gZG9lcyBub3Qgd29yayBhdCB0aGUgbW9tZW50IHdpdGggdGhlIG1vZHVsZSBwbHVnaW4ge0F2YW5jZWRDb250ZW50fS4gVXNlIDxiciAvPjxjb2RlPntjYXB0dXJlIGFzc2lnbj0mcXVvdDtmb28mcXVvdDt9e0FkdmFuY2VkQ29udGVudH17L2NhcHR1cmV9PC9jb2RlPiA8YnIgLz5pbnN0ZWFkLjwvZW0+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+QWR2YW5jZWQgcGFyYW1zOjwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX3R5cGU8L3R0PiAodGV4dCxjaGVja2JveCxkcm9wZG93bixzZWxlY3RfbXVsdGlwbGUsZGF0ZSxtdWx0aV9pbnB1dCkgDQoJCTx1bD4NCgkJCTxsaT5BbGxvd3MgeW91IHRvIHNwZWNpZnkgd2hhdCBjb250ZW50IGNvbnRyb2wgdHlwZSBpcyB1c2VkIGluIHRoZSBiYWNrIGVuZC48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+cGFnZV90YWI8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVGhpcyBwYXJhbWV0ZXIgc2V0cyB0aGUgdGFiIGluIHdoaWNoIHRoZSBjb250ZW50IGJsb2NrIGlzIGRpc3BsYXllZCBpbiB0aGUgYmFja2VuZC48YnIgLz4NCgkJCQlQb3NzaWJsZSB2YWx1ZXMgYXJlICZxdW90O21haW4mcXVvdDsgKCA9IFRhYiAmcXVvdDtNYWluIE1lbnUmcXVvdDspLCAmcXVvdDtvcHRpb25zJnF1b3Q7ICggPSBUYWIgJnF1b3Q7T3B0aW9ucyZxdW90OyksIG9yIGFueSBvdGhlciBhcmJpdHJhcnkgdmFsdWU8YnIgLz4NCgkJCQk8ZW0+ZS5nLiB5b3UgY2FuIGFkZCBhIGNoZWNrYm94IHRvIHRoZSBvcHRpb25zIHRhYiBvciBjcmVhdGUgbmV3IHRhYnM8L2VtPi4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja190YWI8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+V2l0aCB0aGlzIHBhcmFtZXRlciwgdGhlIGJsb2NrcyB3aXRoaW4gYSBwYWdlIHRhYiBjYW4gYmUgZnVydGhlciBkaXZpZGVkIGludG8gdGFicyBvciBjYW4gYmUgZ3JvdXBlZCB0b2dldGhlci4gQW55IGV4cHJlc3Npb24gY2FuIGJlIHVzZWQgYXMgYSBwb3NzaWJsZSB2YWx1ZS48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YmxvY2tfZ3JvdXA8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+V2l0aCB0aGlzIHBhcmFtZXRlciwgbXVsdGlwbGUgYmxvY2tzIGNhbiBiZSBncm91cGVkIGluIGEgZmllbGRzZXQuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFjdGl2ZTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQWxsb3dzIHlvdSB0byBkaXNhYmxlIGEgY29udGVudCBibG9jay4gRGlzYWJsZWQgY29udGVudCBibG9ja3Mgd29uJiMwMzk7dCBiZSBzaG93biBpbiBiYWNrZW5kIGFzIHdlbGwgYXMgaW4gZnJvbnRlbmQuIChvbmx5IHdvcmtzIHdpdGgge0FkdmFuY2VkQ29udGVudH0gcGx1Z2luKTxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVkaXRvcl9ncm91cHM8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cCBuYW1lcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGVkaXQgdGhpcyBibG9jay4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lZGl0b3JfdXNlcnM8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB1c2VyIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZWRpdCB0aGlzIGJsb2NrLg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHRoZSBwYXJhbXMgPHR0PmVkaXRvcl91c2VyczwvdHQ+IGFuZCA8dHQ+ZWRpdG9yX2dyb3VwczwvdHQ+IGFyZSBlbXB0eSB0aGUgYmxvY2sgbWF5IGJlIGVkaXRlZCBieSBhbnkgdXNlciB3aXRoIHN1ZmZpY2llbnQgcGVybWlzc2lvbiB0byBlZGl0IGEgcGFnZTwvZW0+PGJyIC8+PGJyIC8+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5mZXVfYWNjZXNzPC90dD4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUEgbGlzdCBvZiBmZXUgZ3JvdXAgaWRzIHNlcGFyYXRlZCBieSBhIGNvbW1hLjxiciAvPg0KCQkJCVRoaXMgc2hvd3MgdGhlIGNvbnRlbnQgYmxvY2sgb25seSB0byBjZXJ0YWluIGZldSBncm91cHMuPGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjdGlvbjwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJU3BlY2lmeSBpZiB0aGUgbG9naW4gZm9ybSBvZiB0aGUgZmV1IG1vZHVsZSB3aWxsIGJlIHNob3duIG9yIG5vdC48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFRoZSBsb2dpbiBmb3JtIHdpbGwgb25seSBiZSBzaG93biBvbmUgdGltZS48YnIgLz4NCgkJCQlJZiB0aGVyZSBhcmUgbXVsdGlwbGUgYmxvY2tzIHdpdGggbGltaXRlZCBmZXVfYWNjZXNzIGFuZCBmZXVfYWN0aW9uIHNldCB0byB0cnVlIG9ubHkgdGhlIGZpcnN0IGJsb2NrcyBsb2dpbiBmb3JtIHdpbGwgYmUgc2hvd24gYW5kIGFsbCBvdGhlciBibG9ja3Mgd2lsbCBqdXN0IGJlIGVtcHR5LjwvZW0+PGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YWxsb3dfbm9uZTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+U2V0IHRvIHRydWUgaWYgdGhlIHVzZXIgbWF5IGVudGVyIGVtcHR5IHZhbHVlcy4gPGJyIC8+SWYgc2V0IHRvIGZhbHNlIGFuZCB2YWx1ZSBpcyBlbXB0eSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgcGFyYW0gJnF1b3Q7ZGVmYXVsdCZxdW90OyB3aWxsIGJlIHVzZWQuIDxiciAvPklmIHNldCB0byB0cnVlIGFuZCBibG9jayBpcyBvZiB0eXBlIGltYWdlL2ZpbGUgdGhlIG9wdGlvbiAmcXVvdDtub25lJnF1b3Q7IChtb2RlPSZxdW90O2Ryb3Bkb3duJnF1b3Q7KSBvciBhIGJ1dHRvbiB0byBjbGVhciB0aGUgc2VsZWN0ZWQgZmlsZS9pbWFnZSB2YWx1ZSAobW9kZT0mcXVvdDtmaWxlcGlja2VyJnF1b3Q7KSB3aWxsIGJlIGRpc3BsYXllZC48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c21hcnR5PC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUdXJuIHNtYXJ0eSBwcm9jZXNzaW5nIG9mIHZhbHVlcyBvbi9vZmYuPGJyIC8+DQoJCQkJSWYgc2V0IHRvIHRydWUgYW55IGdpdmVuIHZhbHVlIHdpbGwgYmUgcHJvY2Vzc2VkIGJ5IHRoZSBzbWFydHkgZW5naW5lLjxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTogPC9zdHJvbmc+IENvbnNpZGVyIHRoYXQgeW91IGNhbm5vdCB1c2UgdGhlIGRlZmF1bHQgc21hcnR5IGRlbGltaXRlcnMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgdGVtcGxhdGUuIFRoaXMgd2lsbCBjYXVzZSBzbWFydHkgZXJyb3JzIGluIGZyb250ZW5kLjxiciAvPg0KCQkJCVNvIHlvdSBuZWVkIHRvIHVzZSA6OjogYXMgZGVsaW1pdGVyIGluc3RlYWQuPGJyIC8+PC9lbT4NCgkJCQlFLmcuOiA8Y29kZT57Y29udGVudCBibG9jaz0mcXVvdDtDYXRlZ29yaWVzJnF1b3Q7IGxhYmVsPSZxdW90O1NlbGVjdCBhIGNhdGVnb3J5JnF1b3Q7IGJsb2NrX3R5cGU9JnF1b3Q7ZHJvcGRvd24mcXVvdDsgaXRlbXM9JnF1b3Q7Ojo6Z2xvYmFsX2NvbnRlbnQgbmFtZT0mIzAzOTtjYXRlZ29yeWxpc3QmIzAzOTs6OjomcXVvdDsgc21hcnR5PSZxdW90O3RydWUmcXVvdDt9PC9jb2RlPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlc2NyaXB0aW9uPC90dD4gKHN0cmluZykgDQoJCTx1bD4NCgkJCTxsaT5BbGxvd3MgeW91IHRvIGFkZCBhIGRldGFpbGVkIGRlc2NyaXB0aW9uIHRvIHRoYXQgYmxvY2sgZm9yIHlvdXIgZWRpdG9ycy48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+Y29sbGFwc2U8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVNldCB0byB0cnVlL2ZhbHNlIHRvIGRpc3BsYXkgYmxvY2sgaW4gYmFja2VuZCBpbiBjb2xsYXBzZWQvZXhwYW5kZWQgbW9kZSBieSBkZWZhdWx0LjxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gd2lsbCBiZSBhbHdheXMgZmFsc2UgaWYgbm9fY29sbGFwc2U9dHJ1ZSBpcyB1c2VkLjwvZW0+PGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+bm9fY29sbGFwc2U8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVNldCB0byBmYWxzZSB0byBkaXNhYmxlIGZvbGRpbmcgb2YgYmxvY2tzLjxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gaWYgc2V0IHRvIHRydWUgcGFyYW0gY29sbGFwc2UgaXMgYWx3YXlzIGZhbHNlLjwvZW0+PGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+cmVxdWlyZWQ8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVNldCB0byB0cnVlIGlmIHRoaXMgYmxvY2sgbWF5IG5vdCBiZSBlbXB0eS48YnIgLz4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICZxdW90O2NoZWNrYm94JnF1b3Q7Ojwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAodHJ1ZS9mYWxzZSkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQljaGVja3MvdW5jaGVja3MgdGhlIGNoZWNrYm94IGJ5IGRlZmF1bHQgd2hlbiBhZGRpbmcgYSBwYWdlPGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBVc2UgJnF1b3Q7MSZxdW90OyBmb3IgY2hlY2tlZCBhbmQgJnF1b3Q7MCZxdW90OyBmb3IgdW5jaGVja2VkIGJ5IGRlZmF1bHQ8YnIgLz48L2VtPg0KCQkJCUUuZy4gPGNvZGU+e2NvbnRlbnQgYmxvY2tfdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyBkZWZhdWx0PTF9PC9jb2RlPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCjwvdWw+DQo8cD48c3Ryb25nPlBhcmFtcyBvZiBibG9ja3R5cGUgJnF1b3Q7ZHJvcGRvd24mcXVvdDsvJnF1b3Q7c2VsZWN0X211bHRpcGxlJnF1b3Q7Ojwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pml0ZW1zPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPkl0ZW0gbGFiZWwocykgb2YgdGhlIGZpZWxkKHMpIChzZXBhcmF0ZWQgYnkgYSBkZWxpbWl0ZXIgLSBkZWZhdWx0IGlzIHwgKHBpcGUpKTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD52YWx1ZXM8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+VmFsdWUocykgb2YgdGhlIGl0ZW1zIChzZXBhcmF0ZWQgYnkgYSBkZWxpbWl0ZXIgLSBkZWZhdWx0IGlzIHwgKHBpcGUpKTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBpZiB0aGVyZSBhcmUgbGVzcyB2YWx1ZXMgdGhhbiBpdGVtcyB0aGUgaXRlbSBsYWJlbHMgd2lsbCBiZSB1c2VkIGFzIHZhbHVlcyAoYW5kIHZpc2UgdmVyc2EpLjwvZW0+PGJyIC8+PGJyIC8+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWZhdWx0PC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVByZXNlbGVjdGVkIHZhbHVlKHMpIChzZXBhcmF0ZWQgYnkgYSBkZWxpbWl0ZXIgLSBkZWZhdWx0IGlzIHwgKHBpcGUpKTxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlbGltaXRlcjwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT5BIHNpZ24gb3Igc3RyaW5nIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRldmlkZSB0aGUgaXRlbXMvdmFsdWVzIChkZWZhdWx0IGlzIHwgKHBpcGUpKTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNpemU8L3R0PiAoaW50ZWdlcikNCgkJPHVsPg0KCQkJPGxpPkhlaWdodCBvZiBjb250ZW50IGJsb2NrIGluIGJhY2sgZW5kIGlmIDxjb2RlPmJsb2NrX3R5cGU9JnF1b3Q7c2VsZWN0X211bHRpcGxlJnF1b3Q7PC9jb2RlPiBpcyBzZXQuIDxlbT4oRGVmYXVsdCBpcyBudW1iZXIgb2YgaXRlbXMpPC9lbT48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zb3J0YWJsZV9pdGVtczwvdHQ+ICh0cnVlL2ZhbHNlKSAtIHNlbGVjdF9tdWx0aXBsZSBvbmx5DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlJZiBzZXQgdG8gdHJ1ZSB0aGUgaXRlbXMgd29uJiMwMzk7dCBiZSBzaG93biBhcyBhIG11bHRpcGxlIHNlbGVjdCBpbnB1dCB3aXRoIG9wdGlvbnMgYnV0IGFzIGEgbGlzdCBvZiBjaGVja2JveGVzIHRoYXQgY2FuIGJlIHJlb3JkZXJlZC48YnIgLz5FYWNoIHJvdyBjb250YWlucyB0aGUgaXRlbSBsYWJlbCBhbmQgYSBjaGVja2JveCB3aXRoIHRoZSBpdGVtIHZhbHVlLjxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gb25seSB0aGUgb3JkZXIgb2YgdGhlIDxzdHJvbmc+c2VsZWN0ZWQ8L3N0cm9uZz4gaXRlbXMgd2lsbCBiZSBzdG9yZWQgYW5kIGFsd2F5cyBkaXNwbGF5ZWQgb24gdGhlIHRvcCBvZiB0aGUgbGlzdCB3aGVuIHJlbG9hZGluZyB0aGUgZWRpdCBwYWdlLjxiciAvPg0KCQkJCVVuc2VsZWN0ZWQgaXRlbXMgd2lsbCBhcHBlbmRlZCBpbiB0aGF0IG9yZGVyIHRoZXkgYXJlIGRlZmluZWQgaW4gdGhlIHRlbXBsYXRlPC9lbT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICZxdW90O2RhdGUmcXVvdDs6PC9zdHJvbmc+PC9wPg0KPHVsPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c3RlcF9ob3VyczwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJc3RlcHMgb2YgaG91cnMgaW4gdGhlIGNsb2NrIGRyb3Bkb3duLiAoZGVmYXVsdCBpcyAxKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0YXJ0X2hvdXI8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXRoZSBzdGFydCBob3VyIG9mIHRoZSBjbG9jayBkcm9wZG93bi4gKGRlZmF1bHQgaXMgMCkNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lbmRfaG91cjwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJdGhlIGVuZCBob3VyIG9mIHRoZSBjbG9jayBkcm9wZG93biAoZGVmYXVsdCBpcyAxMiBvciAyMykNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zaG93MjRoPC90dD4gKHRydWUvZmFsc2UpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJc2V0IHRvIGZhbHNlIGlmIEFNL1BNIGlzIHVzZWQuIChkZWZhdWx0IGlzIHRydWUpDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c3RlcF9taW51dGVzPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlzdGVwcyBvZiBtaW51dGVzIGluIHRoZSBjbG9jayBkcm9wZG93bi4gKGRlZmF1bHQgaXMgMTApDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c3RhcnRfbWludXRlPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQl0aGUgc3RhcnQgbWludXRlIG9mIHRoZSBjbG9jayBkcm9wZG93bi4gKGRlZmF1bHQgaXMgMCkNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVuZF9taW51dGU8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXRoZSBlbmQgbWludXRlIG9mIHRoZSBjbG9jayBkcm9wZG93biAoZGVmYXVsdCBpcyA1OSkNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zaG93X2Nsb2NrPC90dD4gKHRydWUvZmFsc2UpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJc2V0IHRvIGZhbHNlIGlmIG5vIHRpbWUgZHJvcGRvd24gc2hvdWxkIGJlIGRpc3BsYXllZCAoZGVmYXVsdCBpcyB0cnVlKTxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gSWYgc2V0IHRvIGZhbHNlIDAwOjAwIG8mIzAzOTtjbG9jayB3aWxsIGJlIHVzZWQ8L2VtPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRhdGVfZm9ybWF0PC90dD4gKHN0cmluZykgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGUgc3RyZnRpbWUgZGF0ZSBmb3JtYXQgdG8gc2hvdyBpbiBmcm9udGVuZC4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICZxdW90O211bHRpX2lucHV0JnF1b3Q7Ojwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmlucHV0czwvdHQ+IChjc3Ygb2YgaW5wdXQgaWRzIHlvdSBjcmVhdGVkIGluIHRoZSBiYWNrZW5kKSANCgkJPGJyIC8+PGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnZhbHVlX2RlbGltaXRlcjwvdHQ+IChhbnkgc3RyaW5nKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRoaXMgZGVmaW5lcyBhIHN0cmluZyB0aGF0IGRldmlkZXMgdGhlIHZhbHVlcyBvZiB0aGUgaW5wdXRzIG9mIG9uZSBtdWx0aV9pbnB1dCB3aGVuIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuPGJyIC8+DQoJCQkJRGVmYXVsdCBpcyAmcXVvdDs8IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGxpbWl0ZXIgLS0+JnF1b3Q7DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aW5wdXRfZGVsaW1pdGVyPC90dD4gKGFueSBzdHJpbmcpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVGhpcyBkZWZpbmVzIGEgc3RyaW5nIHRoYXQgZGV2aWRlcyB0aGUgbXVsdGlfaW5wdXRzIHlvdSBkZWZpbmVkIGZvciB0aGlzIGNvbnRlbnQgYmxvY2sgd2hlbiBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLjxiciAvPg0KCQkJCURlZmF1bHQgaXMgJnF1b3Q7PCEtLSBtdWx0aV9pbnB1dF9kZWxsaW1pdGVyIC0tPiZxdW90Ow0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+V2hhdCBpcyBhIG11bHRpX2lucHV0IGZvcj88L3N0cm9uZz48L3A+DQoJCTxwPkEgbXVsdGlfaW5wdXQgYmxvY2sgaXMgYSBjb250ZW50IGJsb2NrIHRoYXQgY29uc2lzdHMgb2YgZGlmZmVyZW50IGlucHV0IGZpZWxkcy4gPGJyIC8+DQoJCVlvdSBjYW4gZGVmaW5lIHRoZW0gaW4gdGhlIG1vZHVsZSBhZG1pbmlzdHJhdGlvbiB1c2luZyB0aGUgc2FtZSBzeW50YXggeW91IHVzZSBpbiBhIHRlbXBsYXRlIHdoZW4gZGVmaW5pbmcgYSBjb250ZW50IGJsb2NrLjxiciAvPg0KCQlNdWx0aSBpbnB1dHMgY2FuIGJlIHVzZWQgaWYgeW91IHdhbnQgdG8gc3RvcmUgZGlmZmVyZW50IHZhbHVlcyBpbiBvbmUgY29udGVudCBibG9jayBhbmQgcHJvdmlkZSBkaWZmZXJlbnQgaW5wdXQgdHlwZXMgZm9yIGVhY2ggdmFsdWVzLjxiciAvPg0KCQlUaGlzIGNhbiBiZSB1c2VmdWxsIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRyb3Bkb3duIHRvIHNlbGVjdCBhIG1vZHVsZSB0byBiZSBzaG93biBpbiBmcm9udGVuZCBhbmQgdGV4dCBpbnB1dCB0byBkZWZpbmUgdGhlIG1vZHVsZSBwYXJhbWV0ZXJzLjxiciAvPg0KCQlFeGFtcGxlIGZvciBhIG11bHRpX2lucHV0IGluIHBhZ2UgdGVtcGxhdGU6PC9wPg0KCQk8cHJlPg0KCQk8Y29kZT4NCgkJe2NvbnRlbnQgYmxvY2s9JnF1b3Q7bW9kdWxlJnF1b3Q7IGxhYmVsPSZxdW90O1BhZ2UgbW9kdWxlcyZxdW90OyBibG9ja190eXBlPSZxdW90O211bHRpX2lucHV0JnF1b3Q7IGlucHV0cz0mcXVvdDttb2R1bGUsbW9kdWxlLG1vZHVsZSxtb2R1bGUmcXVvdDt9DQoJCTwvY29kZT4NCgkJPC9wcmU+DQoJCTxwPkV4YW1wbGUgZm9yIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBtdWx0aV9pbnB1dCBuYW1lZCAmcXVvdDttb2R1bGUmcXVvdDs6PC9wPg0KCQk8cHJlPg0KCQk8Y29kZT4NCgkJe2NvbnRlbnQgYmxvY2s9JnF1b3Q7bW9kdWxlIHNlbGVjdGlvbiZxdW90OyBibG9ja190eXBlPSZxdW90O2Ryb3Bkb3duJnF1b3Q7IGl0ZW1zPSZxdW90O3xOZXdzfEdhbGxlcnl8TWVudSZxdW90O30NCgkJe2NvbnRlbnQgYmxvY2s9JnF1b3Q7bW9kdWxlIHBhcmFtcyZxdW90OyBibG9ja190eXBlPSZxdW90O3RleHQmcXVvdDsgb25lbGluZT10cnVlfQ0KCQk8L2NvZGU+DQoJCTwvcHJlPg0KCQk8cD5XaGF0IGhhcHBlbnMgaWYgeW91IGVkaXQgYSBwYWdlPzwvcD4NCgkJPHA+SXQgd2lsbCBzaG93IHlvdSBhIGZpZWxkc2V0IHdpdGggbGVnZW5kICZxdW90O1BhZ2UgbW9kdWxlcyZxdW90Oy4gPGJyIC8+DQoJCUluc2lkZSB0aGlzIGZpZWxkc2V0IGl0IHNob3dzIHRoZSBtdWx0aV9pbnB1dCBuYW1lZCAmcXVvdDttb2R1bGUmcXVvdDsgZm91ciB0aW1lcy48YnIgLz4NCgkJVGhhdCBtZWFucyB5b3Ugc2VlIGZvdXIgbGluZXMgd2l0aCB0d28gaW5wdXQgZmllbGRzLiBBIGRyb3Bkb3duIGFuZCBhIHRleHQgaW5wdXQuPC9wPg0KCQk8cD5XaGF0IGhhcHBlbnMgaWYgeW91IHNhdmUgYSBwYWdlPzwvcD4NCgkJPHA+VGhlIG1vZHVsZSBzdG9yZXMgdGhlIHZhbHVlcyBhcyBvbmUgc2luZ2xlIGNvbnRlbnQgcHJvcGVydHkgKGFrYSBjb250ZW50YmxvY2spIGFuZCBzZXBhcmF0ZXMgdGhlIGlucHV0cyBieSBhIGdpdmVuIGRlbGltaXRlci48YnIgLz4NCgkJTGV0JiMwMzk7cyBhc3N1bWUgeW91IHNlbGVjdCB0aGUgTmV3cyBtb2R1bGUgZm91ciB0aW1lcyB3aXRoIGRpZmZlcmVudCBtb2R1bGUgcGFyYW1zIGxpa2UgY2F0ZWdvcnk9JnF1b3Q7MSZxdW90OywgY2F0ZWdvcnk9JnF1b3Q7MiZxdW90OywgY2F0ZWdvcnk9JnF1b3Q7MyZxdW90OywgY2F0ZWdvcnk9JnF1b3Q7NCZxdW90Oy48YnIgLz4NCgkJSW4gdGhlIGRhdGFiYXNlIGl0IHN0b3JlcyB0aGlzIHN0cmluZzo8L3A+DQoJCTxwcmU+DQoJCTxjb2RlPg0KCQlOZXdzPCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0+Y2F0ZWdvcnk9JnF1b3Q7MSZxdW90OzwhLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tPjxiciAvPg0KCQlOZXdzPCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0+Y2F0ZWdvcnk9JnF1b3Q7MiZxdW90OzwhLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tPjxiciAvPg0KCQlOZXdzPCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0+Y2F0ZWdvcnk9JnF1b3Q7MyZxdW90OzwhLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tPjxiciAvPg0KCQlOZXdzPCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0+Y2F0ZWdvcnk9JnF1b3Q7NCZxdW90Ow0KCQk8L2NvZGU+DQoJCTwvcHJlPg0KCQk8cD5JbiB5b3VyIHBhZ2UgdGVtcGxhdGUgeW91IGNhbiBleHBsb2RlIHRoZSBjb250ZW50IGJ5IHRoZSBkZWxpbWl0ZXJzIGFuZCBjYWxsIHRoZSBzZWxlY3RlZCBtb2R1bGVzLjwvcD4NCgkJPHA+RnVsbCBFeGFtcGxlOjwvcD4NCgkJPHByZT4NCgkJPGNvZGU+DQoJCXsqIGRlZmluZSB0aGUgY29udGVudCBibG9jayAqfQ0KCQl7Y29udGVudCBibG9jaz0mcXVvdDtteV9tb2R1bGVzJnF1b3Q7IGJsb2NrX3R5cGU9JnF1b3Q7bXVsdGlfaW5wdXQmcXVvdDsgaW5wdXRzPSZxdW90O01vZHVsZSxNb2R1bGUsTW9kdWxlLE1vZHVsZSZxdW90OyBhc3NpZ249JnF1b3Q7bW9kdWxlcyZxdW90O30NCgkJDQoJCXsqIGV4cGxvZGUgYmxvY2sgY29udGVudCBpbiBhbiBhcnJheSB0byBnZXQgdGhlIGlucHV0IGdyb3VwcyAqfQ0KCQl7YXNzaWduIHZhcj1tb2R1bGVzIHZhbHVlPSZxdW90OzwhLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tPiZxdW90O3xleHBsb2RlOiRtb2R1bGVzfQ0KCQkNCgkJeyogbG9vcCB0aHJvdWdoIHRoZSBzZWxlY3RlZCBtb2R1bGVzICp9DQoJCXtmb3JlYWNoIGZyb209JG1vZHVsZXMgaXRlbT0mcXVvdDttb2R1bGUmcXVvdDt9DQoJCQl7aWYgJG1vZHVsZSAhPSAmIzAzOTsmIzAzOTt9DQoJCQkNCgkJCQl7KiBleHBsb2RlIHRoZSBpbnB1dCB2YWx1ZXMgaW4gbW9kdWxuYW1lIGFuZCBtb2R1bGUgcGFyYW1ldGVycyAqfQ0KCQkJCXthc3NpZ24gdmFyPW1vZHVsZV9pdGVtcyB2YWx1ZT0mcXVvdDs8IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGltaXRlciAtLT4mcXVvdDt8ZXhwbG9kZTokbW9kdWxlfQ0KCQkJCQ0KCQkJCXtpZiRtb2R1bGVfaXRlbXNbMF0gIT0gJiMwMzk7JiMwMzk7fQ0KCQkJCQ0KCQkJCQl7KiBjYWxsIHRoZSBtb2R1bGUgKn0NCgkJCQkJe2lmIGlzc2V0KCRtb2R1bGVfaXRlbXNbMV0pfQ0KCQkJCQkJe2V2YWwgdmFyPSRzbWFydHkubGRlbGltfGNhdDomIzAzOTtjbXNfbW9kdWxlIG1vZHVsZT0mcXVvdDsmIzAzOTt8Y2F0OiRtb2R1bGVfaXRlbXNbMF18Y2F0OiYjMDM5OyZxdW90OyAmIzAzOTt8Y2F0OiRtb2R1bGVfaXRlbXNbMV18Y2F0OiRzbWFydHkucmRlbGltfQ0KCQkJCQl7ZWxzZX0NCgkJCQkJCXtldmFsIHZhcj0kc21hcnR5LmxkZWxpbXxjYXQ6JiMwMzk7Y21zX21vZHVsZSBtb2R1bGU9JnF1b3Q7JiMwMzk7fGNhdDokbW9kdWxlX2l0ZW1zWzBdfGNhdDomIzAzOTsmcXVvdDsmIzAzOTt8Y2F0OiRzbWFydHkucmRlbGltfQ0KCQkJCQl7L2lmfQ0KCQkJCQkNCgkJCQl7L2lmfQ0KCQkJCQ0KCQkJey9pZn0NCgkJDQoJCXsvZm9yZWFjaH0NCgkJPC9jb2RlPg0KCQk8L3ByZT4NCgk8L2xpPg0KPC91bD4NCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KCTxsaT5UaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jb250ZW50Mi8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvPC9hPjwvbGk+DQoJPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCjxiciAvPg0KPHA+RmVlbCBmcmVlIHJlcG9ydCBhbnkga2luZCBvZiBmZWVkYmFjay48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPg0KCUFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLjxiciAvPg0KCVRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLDxiciAvPg0KCWJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mPGJyIC8+DQoJTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLjxiciAvPg0KCVNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48YnIgLz4NCglZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTxiciAvPg0KCWFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlPGJyIC8+DQoJRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8YnIgLz4NCglPciByZWFkIGl0IG9ubGluZTogPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5odHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEw8L2E+PGJyIC8+DQoJUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuDQo8L3A+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTAsIEdlb3JnIEJ1c2NoIChOYU4pLiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KPGJyIC8+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzxiciAvPg0KPHA+PHN0cm9uZz5Nb2R1bGUgcmVsZWFzZXM8L3N0cm9uZz4uLi48L3A+DQo8dWw+DQoJPGxpPjxwPjxzdHJvbmc+MC43LjEgKE5vdiAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBidWcgaXRlbSAjNTY1MTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY2Nlc3M8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmV1X2FjdGlvbjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSByZXF1aXJlZDwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC43IChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gY29tcGF0aWJpbGl0eSBidWdmaXhlcyBmb3IgQ01TbXMgMS45KyAobmVlZHMgQ01TbXMgMS45IG1pbmltdW0gbm93KTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHN1cHBvcnQgb2Yge2NvbnRlbnRfbW9kdWxlfSB0YWc8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gbm9fY29sbGFwc2U8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNi4yIChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gbWlub3IgYnVnZml4IChzaG93ZWQgdGFicyBvZiBwcmV2aW91cyB0ZW1wbGF0ZSB3aGVuIHRlbXBsYXRlIHdhcyBjaGFuZ2VkKTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC42LjEgKE5vdiAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBzZXZlcmFsIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGNvbXBhdGliaWxpdHkgYnVnZml4ZXMgZm9yIENNU21zIDEuOTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGJsb2NrX3R5cGUgbXVsdGlfaW5wdXQ8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNiAoT2N0IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIHNldmVyYWwgYnVnZml4ZXM8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBibG9ja19ncm91cDwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPk1pc2M6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gUmVtb3ZlZCBmaWxlIHBpY2tlciAoYW5kIGFzc29jaWF0ZWQgYmxvY2tfdHlwZXMgaW1hZ2UvZmlsZSkgLSB1c2UgR0JGaWxlUGlja2VyIGluc3RlYWQuPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjUgKFNlcHQgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPmZpeGVkIGJ1ZyBpdGVtICM1MjkyIChtZW1vcnkgaXNzdWUpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTI1NCAoZGlzYWJsZSB3eXNpd3lnIG5vdCB3b3JraW5nKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUzMTAgKHVybG9ubHkgbm90IHdvcmtpbmcpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTMxMSAoaW1hZ2UgcGF0aHMgbm90IHN0b3JlZCAmIzAzOTtjb3JyZWN0bHkmIzAzOTspPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPmFkZGVkIGZlYXR1cmUgcmVxdWVzdCAjNTI2MSAoQWRkIHNvcnQgdG8gaW1hZ2UgdHlwZSAtIG5vdGljZSB0aGUgY2hhbmdlIG9mIHBhcmFtIGZpbHRlcik8L3A+PC9saT4NCgkJCQkJPGxpPjxwPmFkZGVkIHBhcmFtcyBleGNsdWRlX3ByZWZpeCwgaW5jbHVkZV9wcmVmaXgsIGV4Y2x1ZGVfc3VmaXgsIGluY2x1ZGVfc3VmaXg8L3A+PC9saT4NCgkJCQkJPGxpPjxwPmFkZGVkIGZlYXR1cmUgcmVxdWVzdCAjNTI1MyAoVGV4dCBpbnB1dCB0byBkZWZpbmUgYWRkIHBhcmFtcyB0byByZWRpcmVjdCBmdW5jdGlvbik8L3A+PC9saT4NCgkJCQkJPGxpPjxwPmFkZGVkIGZlYXR1cmUgcmVxdWVzdCAjNTI0MCAoRGVmYXVsdCB2YWx1ZXMgb2YgQWR2YW5jZWRDb250ZW50IHBhZ2Ugb3B0aW9ucyk8L3A+PC9saT4NCgkJCQkJPGxpPjxwPmFkZGVkIGZlYXR1cmUgcmVxdWVzdCAjNTI0MSAocHV0IEZldUFjY2VzcyBpbiBCbG9ja3RhYik8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5NaXNjOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIEFkdmFuY2VkQ29udGVudCBvcHRpb25zIGFyZSBzaG93biBpbiBzZXBhcmF0ZSB0YWI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gQWRkZWQgbmV3IHBlcm1pc3Npb24gdG8gbWFuYWdlIHRoZSBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyB0YWI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCBwYXJhbSBmaWx0ZXIgKHVzZSBuZXcgcGFyYW1zIGluc3RlYWQpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIHBhdGggdG8gZmlsZXMgYXJlIHN0b3JlZCByZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gcGFyYW0gZGlyIG9mIGJsb2NrIHR5cGUgZmlsZS9pbWFnZSBuZWVkcyB0byBiZSByZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXIgb25seSAodGhlcmUgaXMgbm8gaW1hZ2UgdXBsb2FkcyBkaXIgdXNlZCBhbnltb3JlKTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC40LjEgKEF1Z3VzdCAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSAjNTE1MTogZml4ZWQgc3R5bGVzaGVldCBpc3N1ZSB3aXRoIGV4cGFuZC9jb2xsYXBzZSBidXR0b25zIG9mIGNvbnRlbnQgYmxvY2tzIGluIElFL1NhZmFyaS48L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gIzUxNjI6IFBIUCB3YXJuaW5ncyBpZiBiYWNrZW5kIHVzZXJzIHdpdGhvdXQgcGVybWlzc2lvbiAmcXVvdDtNYW5hZ2UgQWxsIEFkdmFuY2VkQ29udGVudCBCbG9ja3MmcXVvdDsgb3BlbiBhbiBhZHZhbmNlZCBjb250ZW50IHBhZ2UgYW5kIG11bHRpcGxlIGNvbnRlbnQgYmxvY2tzIG9mIHNhbWUgbmFtZSB3ZXJlIHVzZWQgaW4gdGVtcGxhdGUuPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBleHRyYSBmaWVsZHMgY291bGQgbm90IGJlIHVwZGF0ZWQuPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBmZXUgYWNjZXNzIGRpZCBub3Qgd29yay48L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDtkZWxldGUmcXVvdDsgdG8gbGV0IHVzZXJzIGRlbGV0ZSBmaWxlcyBldmVuIGlmIG5vIHBlcm1pc3Npb24gJnF1b3Q7TW9kaWZ5IEZpbGVzJnF1b3Q7PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O2NyZWF0ZV9kaXJzJnF1b3Q7IHRvIGxldCB1c2VycyBjcmVhdGVfZGlycyBldmVuIGlmIG5vIHBlcm1pc3Npb24gJnF1b3Q7TW9kaWZ5IEZpbGVzJnF1b3Q7PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIG5ldyBibG9ja3R5cGUgJnF1b3Q7bm90ZSZxdW90OyB0byBjcmVhdGUgc29tZSBzaW5nbGUgbm90ZXMgZm9yIHlvdXIgZWRpdG9yczwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPk1pc2M6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCBkZXBlbmRlbmN5IG9mIEZpbGVNYW5hZ2VyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGJsb2NrIG9mIHR5cGUgZmlsZSBvciBpbWFnZSBzdG9yZXMgcmVsYXRpdmUgdXJsIG5vdzwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBibG9jayB0eXBlIGltYWdlIHNob3dzIHRodW1ibmFpbCBpbiBiYWNrZW5kIHByZXZpZXcgaW5zdGVhZCBvZiBmdWxsIGltYWdlPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjQgKEp1bHkgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+SW1wb3J0YW50IG5vdGljZTo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBjaGFuZ2VkIHBhcmFtICZxdW90O3R5cGUmcXVvdDsgdG8gJnF1b3Q7YmxvY2tfdHlwZSZxdW90OyBzaW5jZSBpdCBpbnRlcmZlcmVzIHdpdGgge2NvbnRlbnRfbW9kdWxlfSB0YWc8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSAjNTEwMTogcGFnZV90YWIgJnF1b3Q7b3B0aW9ucyZxdW90OyB3YXMgc2hvd24gdG8gdXNlcnMgd2l0aCBubyBwZXJtaXNzaW9uIHRvIGVkaXQgcGFnZSBvcHRpb25zIGlmIGEgY29udGVudCBibG9jayB3YXMgYXNzaWduZWQgdG8gdGhhdCB0YWIuPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tICM1MDk3OiBsaW5rIHRvIG1pc3NpbmcgY3NzIHJlbW92ZWQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgbWltZS10eXBlIGlzc3VlIChhZGRlZCBwcmVmZXJlbmNlIHRvIHRvZ2dsZSBtaW1lLXR5cGUgdXNhZ2Ugb24vb2ZmKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBwYXRoIGlzc3VlIHdoZXJlIHRodW1ibmFpbHMgd2VyZSBub3Qgc2hvd248L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgY29tcGF0aWJpbGl0eSB3aXRoIENNU21zIDEuODwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBvdGhlciBtaW5vciBidWdmaXhlczwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIE1MRSBzdXBwb3J0PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O3Nob3dfY2xvY2smcXVvdDsgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIHRpbWUgZHJvcGRvd24gb2YgYmxvY2t0eXBlcyAmcXVvdDtkYXRlJnF1b3Q7IGluIGJhY2tlbmQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7ZGF0ZV9mb3JtYXQmcXVvdDsgdG8gZm9ybWF0IHRpbWVzdGFtcCBvZiBibG9ja3R5cGVzICZxdW90O2RhdGUmcXVvdDsgaW4gZnJvbnRlbmQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7ZGVzY3JpcHRpb24mcXVvdDs8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgYnVsayBmdW5jdGlvbiB0byBzZXQgYWxsIHBhZ2VzIHRvIEFkdmFuY2VkQ29udGVudDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBjb21wYXRpYmlsaXR5IHdpdGgge2NvbnRlbnRfbW9kdWxlfSB0YWc8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuMy40IChKdW5lIDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tICM1MDQ1OiBXaGVuIHN3aXRjaGluZyBmcm9tIENvbnRlbnQgLT4gQWR2YW5jZWQgQ29udGVudCBsb3RzIG9mIFBIUCBlcnJvcnM8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gIzUwNTY6IHBhZ2VfdGFicyBub3Qgd29ya2luZyBmb3IgdXNlcnMgd2l0aG91dCBwZXJtaXNzaW9uICZxdW90O01hbmFnZSBBbGwgQ29udGVudCZxdW90OzwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSAjNTA3MzogaW5jb3JyZWN0IGRpc3BsYXkgb2YgZmlsZXMgd2hlbiBvcGVuaW5nIGZpbGVwaWNrZXI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgbWlub3IgYnVnIHdoZXJlIHRoZSBvcHRpb24gJnF1b3Q7YWxsb3dfbm9uZSZxdW90OyBvZiBjb250ZW50IGJsb2NrcyBvZiB0eXBlIGltYWdlL2ZpbGUgd2FzIG5vdCBzaG93biB3aGVuIHRlbXBsYXRlIGhhcyBiZWVuIGVkaXRlZDwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGZpbGVtYW5hZ2VtZW50IGFuZCB1cGxvYWQgZnVuY3Rpb25zIHRvIGNvbnRlbnQgYmxvY2tzIG9mIHR5cGUgaW1hZ2UvZmlsZTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBicmVhZGN1bWJzIHRvIGZpbGVwaWNrZXI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRtaW5zIG1heSBicm93c2UgdGhlIGVudGlyZSBkaXIgdHJlZSBpbiBmaWxlcGlja2VyIGZpbGUgYnJvd3NlciByZWdhcmRsZXNzIG9mIHRlbXBsYXRlIHBhcmFtczwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBtaW1lIHR5cGUgY2hlY2tpbmcgdG8gZ2V0IGZpbGUgdHlwZTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCByYXd1cmxlbmNvZGUgaW4gc3JjIGF0dHJpYnMgdG8gZGlzcGxheSBpbWFnZXMgd2l0aCB3ZWlyZCBmaWxlbmFtZXMuPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+bWlzY2VsbGFuZW91czo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSByZW1vdmVkIE9PUCBzdHVmZiAocHJpdmF0ZS9wdWJsaWMvcHJvdGVjdGVkKSB0byBnYWluIG1vcmUgY29tcGF0aWJpbGl0eSB3aXRoIFBIUDQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gY2hhbmdlZCBhamF4IGZ1bmN0aW9ucyB0byByZXR1cm4geG1sIHZhbHVlczwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSByZW1vdmVkIHVzYWdlIG9mIEltYWdlTWFuYWdlciBvbmNlIGFuZCBmb3IgYWxsLiAoY2F1c2VkIG9ubHkgdHJvdWJsZSk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuMy4zIChKdW5lIDIwMTApOjwvc3Ryb25nPjwvcD4NCgk8dWw+DQoJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQk8dWw+DQoJCQkJPGxpPjxwPi0gYWxpYXMgd2FzIG5vdCBhbHdheXMgY29udmVydGVkIHByb3Blcmx5PC9wPjwvbGk+DQoJCQkJPGxpPjxwPi0gdW5zdWJtaXR0ZWQgY29udGVudCBnb3QgbG9zdCBpZiBzd2l0Y2hpbmcgZnJvbSBDb250ZW50IHRvIEFkdmFuY2VkQ29udGVudDwvcD48L2xpPg0KCQkJPC91bD4NCgkJPC9saT4NCgkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCTx1bD4NCgkJCQk8bGk+PHA+LSBhZGRlZCBzdGFydC9lbmQgZGF0ZTwvcD48L2xpPg0KCQkJCTxsaT48cD4tIHJlbW92ZWQgdGltZXBpY2tlcjsgcmVwbGFjZWQgYnkgYSBzaW1wbGUgZHJvcGRvd248L3A+PC9saT4NCgkJCQk8bGk+PHA+LSBjb21wYXRpYmlsaXR5IHdpdGgge2NvbnRlbnRfaW1hZ2V9PC9wPjwvbGk+DQoJCQk8L3VsPg0KCQk8L2xpPg0KCTwvdWw+DQoJPGxpPjxwPjxzdHJvbmc+MC4zLjIgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgY2hhbmdpbmcgYmFjayB0byBkZWZhdWx0IGNvbnRlbnQgdHlwZSBvciBjaGFuZ2luZyB0ZW1wbGF0ZSBjYXVzZWQgZmF0YWwgZXJyb3JzPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHNtYXJ0eSBwcm9jZXNzaW5nIHdoZW4gc2F2aW5nIGEgcGFnZTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBwcmV2aWV3IHRhYjwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmUtYWRkZWQgZXhwYW5kL2NvbGxhcHNlIGJ1dHRvbiB0byB0b2dnbGUgY29udGVudCBibG9ja3MgaW4gYmFja2VuZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW1zIGVkaXRvcl9ncm91cHMvZWRpdG9yX3VzZXJzIHRvIHNwZWNpZnkgY2VydGFpbiB1c2Vycy9ncm91cHMgdGhhdCBhcmUgYWxsb3dlZCB0byBlZGl0IGNlcnRhaW4gYmxvY2tzPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSByZW1vdmVkIHBhcmFtcyBzZWxlY3RlZC9jaGVja2VkOyB1c2UgcGFyYW0gZGVmYXVsdCBpbnN0ZWFkPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBibG9jayBpZHMgd2lsbCBiZSBjb252ZXJ0ZWQgZnJvbSBibG9jayBuYW1lIHVzaW5nIGNvcmUgZnVuY3Rpb24gbXVuZ2Vfc3RyaW5nX3RvX3VybCAodG8gcmVtb3ZlIHNwZWNpYWwgY2hhcnMsIHdoaXRlc3BhY2VzLCB1bWxhdXRzIGV0Yy4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBidWcgb2YgYmxvY2t0eXBlIGRyb3Bkb3duL3NlbGVjdF9tdWx0aXBsZSB3aGVyZSBmaXJzdCBpdGVtIGhhZCBhbiBlbXB0eSBsYWJlbCBpZiBvbmx5IHRoZSBwYXJhbSAmcXVvdDt2YWx1ZXMmcXVvdDsgaXMgdXNlZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgc29tZSB0ZW1wbGF0ZSB2YXJzIG9mIHRoZSBmcm9udGVuZCB0byBiZSBhbHNvIGFjY2Vzc2libGUgaW4gYmFja2VuZCAoZS5nLjogJHBhZ2VfYWxpYXMpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDthbGxvd19ub25lJnF1b3Q7IHRvIGFsbCBjb250ZW50IGJsb2NrIHR5cGVzIHRvIHNwZWNpZnkgaWYgdGhlIHByZWRlZmluZWQgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIHVzZWQgaWYgbm8gdmFsdWUgaXMgZW50ZXJlZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGVtcHR5IHZhbHVlcyB3ZXJlIG5ldmVyIGJlIHN0b3JlZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGRlZmF1bHQgdmFsdWUgaW4gZnJvbnRlbmQgd2FzIGlnbm9yZWQgaWYgdGhlICZxdW90O2FsbG93X25vbmUmcXVvdDsgcGFyYW0gd2FzIGNoYW5nZWQgYWZ0ZXIgYW4gZW1wdHkgdmFsdWUgaGFzIGJlZW4gc3RvcmVkPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDtzb3J0YWJsZV9pdGVtcyZxdW90OyB0byBjcmVhdGUgYSBzb3J0YWJsZSBtdWx0aXBsZSBzZWxlY3QgbGlzdCAoc2VsZWN0IGxpc3Qgd2lsbCByZXN1bHQgaW4gYSB0YWJsZSB3aXRoIGNoZWNrYm94ZXM7IG9ubHkgb3JkZXIgb2Ygc2VsZWN0ZWQgaXRlbXMgd2lsbCBiZSBzdG9yZWQgYW5kIHNob3dlZCBhdCB0aGUgdG9wIG9mIHRoZSBsaXN0OyB1bnNlbGVjdGVkIGl0ZW1zIHdpbGwgYmUgYXBwZW5kZWQgaW4gdGhhdCBvcmRlciB0aGV5IGFyZSBwbGFjZWQgaW4gdGhlIHRlbXBsYXRlKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC4zLjEgKE1heSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIHJlbW92ZWQgdGhlIHJlb3JkZXJpbmcgc3R1ZmYgZm9yIG5vdyAoY2F1c2VzIHRyb3VibGUgYXQgdGhpcyB0aW1lKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVtb3ZlZCB0aGUgZGIgc3R1ZmYgKHBhcmFtcyBvZiBjb250ZW50IGJsb2NrcyB0aGF0IGFyZSBkZWZpbmVkIGluIHRlbXBsYXRlIHdvbiYjMDM5O3QgYmUgc2F2ZWQgaW4gbW9kdWxlIGRiIHRhYmxlIGFueW1vcmUgLT4gaG9wZWZ1bGx5IHNwZWVkIHVwIGxvYWRpbmcgdGltZSk8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGEgYnVnIHdpdGggZHVwbGljYXRlIGNvbnRlbnQgYmxvY2tzPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+QWR2YW5jZWRDb250ZW50IDAuMyAoTWF5IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gcmV3cml0ZSBjb2RlPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBidWdmaXhlczwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVuYW1lZCB0byBBZHZhbmNlZENvbnRlbnQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIHVzaW5nIHNlcGFyYXRlIG1vZHVsZSB0ZW1wbGF0ZSBub3cgdG8gZHNwbGF5IGNvbnRlbnQgYmxvY2tzPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSByZW1vdmVkIHBhZ2UgYWxpYXMgaW5oZXJpdGFuY2U8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KPC91bD4NCjx1bD4NCgk8bGk+PHA+PHN0cm9uZz5YQ29udGVudCBCRVRBIDMgKEFwcmlsIDIwMTAgLSBkaXNjb250aW51ZWQpOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gTWFqb3IgQnVnZml4IChtaXNzaW5nICZxdW90OzsmcXVvdDsgYW5kIHN0cmFuZ2UgaW52aXNpYmxlIGludmFsaWQgY2hhcnMpPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz5YQ29udGVudCBCRVRBIDIgKEFwcmlsIDIwMTAgLSBkaXNjb250aW51ZWQpOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBwYXJhbSAmcXVvdDtkZWxpbWl0ZXImcXVvdDs8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGEgYnVnIHdpdGggc21hcnR5IHByb2Nlc3Npbmc8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mICZxdW90O1Nob3cgbG9naW4gZm9ybSZxdW90OzwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgaW5oZXJpdGFuY2Ugb2YgcGFnZSBhbGlhcyB0byBhZGQgaXQgYXMgcHJlZmZpeDsgc28gaWYgeW91IGhhdmUgYSBwYWdlIGNhbGxlZCAmcXVvdDttZW1iZXJzJnF1b3Q7IGFuZCBzZWxlY3QgZm9yIGVhY2ggY2hpbGQgcGFnZSAmcXVvdDtpbmhlcml0IHBhZ2UgYWxpYXMmcXVvdDsgYWxsIGNoaWxkIHBhZ2VzIGFsaWFzZXMgd2lsbCBzdGFydCB3aXRoICZxdW90O21lbWJlcnNfJnF1b3Q7OyBtYWtlcyBmaWx0ZXJpbmcgb2YgbWVudSBlbnRyaWVzIHdpdGggTWVudU1hbmFnZXIgcGFyYW0gJnF1b3Q7ZXhjbHVkZXByZWZmaXgmcXVvdDsgb3IgJnF1b3Q7aW5jbHVkZXByZWZmaXgmcXVvdDsgZWFzaWVyLjwvcD48L2xpPg0KCQkJPGxpPjxwPi0gbWlub3IgYnVnZml4ZXM8L3A+PC9saT4gDQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAoQXByaWwgMjAxMCk6PC9zdHJvbmc+IGluaXRpYWwgcmVsZWFzZTwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gY29udmVydGVkIHRoZSBzaW5nbGUgZmlsZSBpbnRvIGEgbW9kdWxlPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSByZW5hbWVkIHBhcmFtczsgc2VlIG1vZHVsZSBoZWxwIGZvciBtb3JlIGRldGFpbHM8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+U2luZ2xlIGZpbGUgcmVsZWFzZXMgKGRpc2NvbnRpbnVlZCk8L3N0cm9uZz4uLi48L3A+DQo8dWw+DQoJPGxpPg0KCQk8cD48c3Ryb25nPjEuNCAoTWFyY2ggMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBjbGVhbnVwIGNvZGUgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gbWlub3IgYnVnZml4ZXMgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcmVkaXJlY3QgcGFnZSBpZiBmZXUgaXMgbm90IGxvZ2dlZCBpbiAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBpbmhlcml0YW5jZSBvZiBmZXVfYWNjZXNzIGFuZCByZWRpcmVjdF9wYWdlIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY2Nlc3MgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmV1X2FjdGlvbiAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSByZWRpcmVjdF9wYWdlIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGJsb2NrX29ubHkgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgc21hcnR5IGxvZ2ljIGluIGJhY2tlbmQgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIHN0eWxlIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmaWx0ZXIgKGZpbHRlcmluZyBpbWFnZXMgaW4gYmFja2VuZCkgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIEltZ01vZGUgKGRyb3Bkb3duIG9yIEltYWdlTWFuYWdlcikgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIHNtYXJ0eU9uIChmb3IgcHJvY2Vzc2luZyBzbWFydHkgdmFycyBvZiB0aGUgdGVtcGF0ZSBpbiBiYWNrZW5kKSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MS4zIChBcHJpbCAyMDA5KTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIENNU21zIDEuNi4qIHJlYWR5IC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIGZldSBhY2Nlc3Mgb3B0aW9uIC0gKE5hTik8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz4xLjIgKE1hcmNoIDIwMDkpOjwvc3Ryb25nPiBpbml0aWFsIHJlbGVhc2U8L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIEEgc2luZ2xlIGZpbGUgQ29udGVudDIuaW5jLnBocCB0aGF0IG5lZWRzIHRvIGJlIHBhY2VkIGluIGxpYi9jbGFzc2VzL2NvbnRlbnR0eXBlcy48L3A+PC9saT4NCgkJCTxsaT48cD4tIGxheW91dC9vcHRpb25zIG9mIGJhY2tlbmQgcGFuZWwgY2FuIGJlIGNvbnRyb2xlZCBieSBhZGRpdGlvbmFsIHNtYXJ0eSBwYXJhbXMgaW4gdGhlIHRlbXBsYXRlOyBpbnRlZ3JhdGVkIHRoZSB7Y29udGVudF9pbWFnZX0gdGFnIC0gKG1vZCBieSBOYU4pPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCjwvdWw+DQo8YnIgLz4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My41NjMyMzg0MDEwMTUxNDk0MDAuMTIyNjMzNDc1MS4xMjg5OTAxMjU5LjEyODk5MjI2MTUuODQnOwokbGFuZ1sncWNhJ10gPSAnUDAtMjAwNzY4NjkyMC0xMjUxMTkwODE1MDI3JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI4OTkwMTI4NC44My41LnV0bWNzcj1mZWVkYnVybmVyfHV0bWNjbj1GZWVkOiBjbXNtYWRlc2ltcGxlL2Jsb2cgKENNUyBNYWRlIFNpbXBsZSl8dXRtY21kPWZlZWQnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ja_JP.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ0FkdmFuY2VkIENvbnRlbnQnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIEFkdmFuY2VkQ29udGVudCAlcyBpbnN0YWxsZWQnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgQWR2YW5jZWRDb250ZW50ICVzIHVuaW5zdGFsbGVkJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIEFkdmFuY2VkQ29udGVudCB1cGdyYWRlZCB0byAlcyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBBZHZhbmNlZENvbnRlbnQgJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWxlIEFkdmFuY2VkQ29udGVudCAlcyB1bmluc3RhbGxlZC4nOwokbGFuZ1snY29uZmlybXVuaW5zdGFsbCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB1bmluc3RhbGwgdGhlIG1vZHVsZSBBZHZhbmNlZENvbnRlbnQ/JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZWNvbnRlbnQnXSA9ICc8ZW0+PHN0cm9uZz7ms6jmhI86PC9zdHJvbmc+IHtjb250ZW50IGJsb2NrPVwnJXNcJyAuLi4gfSBpcyBhbWJpZ291cy4gQmxvY2sgbmFtZXMgbXVzdCBiZSB1bmlxdWUuIDxiciAvPlRoaXMgYmxvY2sgaXMgZGlzYWJsZWQuIE9ubHkgZmlyc3QgYmxvY2sgd2lsbCBiZSBzaG93bi4gQ2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlIGFuZCBjaG9zZSBhIGRpZmZlcmVudCB2YWx1ZSBvZiBwYXJhbSBcJ2Jsb2NrXCcuPC9lbT4nOwokbGFuZ1snbm90aWNlX2R1cGxpY2F0ZWNvbnRlbnQnXSA9ICc8ZW0+PHN0cm9uZz7ms6jmhI86PC9zdHJvbmc+IFRoaXMgYmxvY2sgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcyBpbiB0ZW1wbGF0ZS4gWW91IG9ubHkgc2VlIHRoZSBmaXJzdCBibG9jayBoZXJlLjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2Jhc2ljYXR0cmliJ10gPSAnPGVtPjxzdHJvbmc+5rOo5oSPOjwvc3Ryb25nPiBDYW5ub3QgdXNlIGJhc2ljIGNvbnRlbnQgcHJvcGVydHkgbmFtZSBcJyVzXCcgYXMgdmFsdWUgb2YgcGFyYW0gXCdibG9ja1wnLiA8YnIgLz5UaGlzIGJsb2NrIGlzIGRpc2FibGVkLiBDaGVjayB5b3VyIHBhZ2UgdGVtcGxhdGUgYW5kIGNob3NlIGEgZGlmZmVyZW50IHZhbHVlIG9mIHBhcmFtIFwnYmxvY2tcJy48L2VtPic7CiRsYW5nWydlcnJvcl9leHBpcmVkYXRlJ10gPSAnRW5kIGRhdGUgbXVzdCBiZSBsYXRlciB0aGFuIHN0YXJ0IGRhdGUuJzsKJGxhbmdbJ3lvdWFyZWludGV4dCddID0gJ+OCq+ODrOODs+ODiOODh+OCo+ODrOOCr+ODiOODqic7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAn55S75YOP44K144Kk44K6JzsKJGxhbmdbJ3NpemUnXSA9ICfjg5XjgqHjgqTjg6vjgrXjgqTjgronOwokbGFuZ1snaW5oZXJpdF9mcm9tX3BhcmVudCddID0gJ0luaGVyaXQgZnJvbSBwYXJlbnQnOwokbGFuZ1snbm9uZSddID0gJ+OBquOBlyc7CiRsYW5nWydpbnZhbGlkJ10gPSAn54Sh5Yq5JzsKJGxhbmdbJ2ludmFsaWRfYmxvY2t0eXBlJ10gPSAnPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBJbnZhbGlkIHZhbHVlIFwnJXNcJyBvZiBwYXJhbSBibG9ja190eXBlIGluIGJsb2NrIFwnJXNcJy48YnIgLz5DaGVjayB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9lbT4nOwokbGFuZ1sneWVzJ10gPSAn44Gv44GEJzsKJGxhbmdbJ25vJ10gPSAn44GE44GE44GIJzsKJGxhbmdbJ2Zyb250ZW5kYWNjZXNzJ10gPSAnRnJvbnRlbmQgYWNjZXNzJzsKJGxhbmdbJ3JlZGlyZWN0cGFnZSddID0gJ1JlZGlyZWN0IFBhZ2UgaWYgbm8gYWNjZXNzJzsKJGxhbmdbJ3Nob3dsb2dpbmZvcm0nXSA9ICdTaG93IGxvZ2luIGZvcm0nOwokbGFuZ1sncmVnaXN0ZXJlZHVzZXJzJ10gPSAnUmVnaXN0ZXJlZCB1c2VycyBvbmx5JzsKJGxhbmdbJ2Jsb2NrJ10gPSAn44OW44Ot44OD44KvJzsKJGxhbmdbJ3VzZWV4cGlyZWRhdGUnXSA9ICdVc2UgZXhwaXJlIGRhdGUnOwokbGFuZ1snc3RhcnRkYXRlJ10gPSAn6ZaL5aeL5pelJzsKJGxhbmdbJ2VuZGRhdGUnXSA9ICfntYLkuobml6UnOwokbGFuZ1snYmxvY2tjb250ZW50J10gPSAn44OW44Ot44OD44Kv44O744Kz44Oz44OG44Oz44OEJzsKJGxhbmdbJ3NldHBhZ2VpbmFjdGl2ZSddID0gJ1NldCBQYWdlIHRvIEluYWN0aXZlJzsKJGxhbmdbJ2RlbGV0ZXBhZ2UnXSA9ICfliYrpmaTjg5rjg7zjgrgnOwokbGFuZ1sndW5pbnN0YWxsYWN0aW9uJ10gPSAnVW5pbnN0YWxsIGFjdGlvbic7CiRsYW5nWydzZXRjb250ZW50MSddID0gJ1NldCBhbGwgUGFnZXMgdG8gdHlwZSBDb250ZW50JzsKJGxhbmdbJ3NldGNvbnRlbnQyJ10gPSAnU2V0IGFsbCBQYWdlcyB0byB0eXBlIENvbnRlbnQgYW5kIHJlbW92ZSBhZGRpdGlvbmFsIGNvbnRlbnQgYmxvY2tzJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2VzIHVwZGF0ZWQnOwokbGFuZ1snZmlsZW9wZXJhdGlvbnMnXSA9ICdGaWxlIG9wZXJhdGlvbnMnOwokbGFuZ1sndXBsb2FkbmV3ZmlsZSddID0gJ1VwbG9hZCBhIG5ldyBmaWxlJzsKJGxhbmdbJ2NyZWF0ZW5ld2RpciddID0gJ0NyZWF0ZSBhIG5ldyBkaXJlY3RvcnknOwokbGFuZ1sndXBsb2FkZmlsZSddID0gJ+OCouODg+ODl+ODreODvOODiSc7CiRsYW5nWydjcmVhdGVkaXInXSA9ICfkvZzmiJAnOwokbGFuZ1snc3VjY2VzcyddID0gJ+OCquODvOOCseODvCc7CiRsYW5nWydlcnJvciddID0gJ+OCqOODqeODvCc7CiRsYW5nWydmaWxldXBsb2FkZWQnXSA9ICdGaWxlIFwnJXNcJyB1cGxvYWRlZCc7CiRsYW5nWydub2Rpcm5hbWUnXSA9ICdObyBkaXJuYW1lIHByb3ZpZGVkJzsKJGxhbmdbJ2RpcmV4aXN0cyddID0gJ0Rpcm5hbWUgXCclc1wnIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ25ld2RpcmNyZWF0ZWQnXSA9ICdOZXcgZGlyIFwnJXNcJyBzdWNjZXNzZnVsbHkgY3JlYXRlZCc7CiRsYW5nWyduZXdkaXJmYWlsZWQnXSA9ICdBbiBlcnJvciBvY2N1cmVkIHRyeWluZyB0byBjcmVhdGUgZGlyIFwnJXNcJyc7CiRsYW5nWydub2ZpbGUnXSA9ICdObyBmaWxlIHdhcyB1cGxvYWRlZCc7CiRsYW5nWydmaWxldG9vYmlnJ10gPSAnVXBsb2FkZWQgZmlsZSBcJyVzXCcgaXMgdG9vIGJpZyc7CiRsYW5nWydjb250YWluc2lsbGVnYWxjaGFycyddID0gJ0ZpbGVuYW1lIFwnJXNcJyBjb250YWlucyBvbmUgb3IgbW9yZSBpbGxlZ2FsIGNoYXJhY3RlcnMgKFwnLCIsKywqLFxcLC8sJiwkKSc7CiRsYW5nWyd1cGxvYWRmYWlsZWQnXSA9ICdFcnJvciBtb3ZpbmcgdXBsb2FkZWQgZmlsZSBcJyVzXCcgaW50byBwbGFjZSc7CiRsYW5nWydjb25maXJtZGVsZXRlJ10gPSAnQXJlIHlvdSBzdXJlIHRvIGRlbGV0ZSB0aGUgZmlsZSBcXFwnJXNcXFwnPyc7CiRsYW5nWydkZWxldGVmaWxlc3VjY2VzcyddID0gJ0ZpbGUgXCclc1wnIHdhcyBzdWNjZXNzZnVsbHkgZGVsZXRlZCc7CiRsYW5nWydkZWxldGVmaWxlZmFpbGVkJ10gPSAnRmlsZSBcJyVzXCcgY291bGQgbm90IGJlIGRlbGV0ZWQnOwokbGFuZ1snZGVsZXRlc3ViZGlyZmFpbGVkJ10gPSAnRGlyIFwnJXNcJyBjb3VsZCBub3QgYmUgZGVsZXRlZCc7CiRsYW5nWydkZWxldGVzdWJkaXJzdWNjZXNzJ10gPSAnRGlyIFwnJXNcJyB3YXMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQnOwokbGFuZ1snY29uZmlybWRlbGV0ZWRpciddID0gJ0FyZSB5b3Ugc3VyZSB0byBkZWxldGUgdGhlIGRpcmVjdG9yeSBcXFwnJXNcXFwnPyc7CiRsYW5nWydkZWxldGVkaXInXSA9ICdEZWxldGUgZW1wdHkgc3ViZGlyJzsKJGxhbmdbJ2RlbGV0ZWZpbGUnXSA9ICfjg5XjgqHjgqTjg6vliYrpmaQnOwokbGFuZ1sncmVzdHJpY3RkaXJzJ10gPSAnUmVzdHJpY3QgdXNlclwncyBkaXIgYWNjZXNzJzsKJGxhbmdbJ3Nob3dmaWxlbWFuYWdlbWVudCddID0gJ1Nob3cgZmlsZW1hbmFnZW1lbnQgb3B0aW9ucyc7CiRsYW5nWydzaG93dGh1bWJuYWlsZmlsZXMnXSA9ICdTaG93IHRodW1ibmFpbHMnOwokbGFuZ1snYWxsb3dzY2FsaW5nJ10gPSAnQWxsb3cgb24tdGhlLWZseSByZXNpemluZyBvZiB1cGxvYWRlZCBpbWFnZXMnOwokbGFuZ1snc2NhbGluZ3dpZHRoJ10gPSAnU2NhbGluZyB3aWR0aCc7CiRsYW5nWydzY2FsaW5naGVpZ2h0J10gPSAnU2NhbGluZyBoZWlnaHQnOwokbGFuZ1snZGVmYXVsdGRpbWVuc2lvbnMnXSA9ICdEZWZhdWx0IGRpbWVuc2lvbnMnOwokbGFuZ1snYXV0byddID0gJ+iHquWLlSc7CiRsYW5nWydyZWxhdGl2ZXVybHMnXSA9ICdSZWxhdGl2ZSB1cmxzJzsKJGxhbmdbJ2ZpbGVwaWNrZXJzdHlsZSddID0gJ0ZpbGVwaWNrZXIgc3R5bGUnOwokbGFuZ1snZmlsZXBpY2tlcnNpemUnXSA9ICdGaWxlcGlja2VyIHNpemUnOwokbGFuZ1snZmlsZW5hbWVvbmx5J10gPSAnU2hvdyBmaWxlbmFtZXMnOwokbGFuZ1sndGh1bWJuYWlsc29ubHknXSA9ICdTaG93IHRodW1ibmFpbHMnOwokbGFuZ1snc2hvd3RodW1ibmFpbGZpbGVzdGV4dCddID0gJ1Nob3cgdGh1bWJuYWlsLWZpbGVzIGFzIHJlZ3VsYXIgZmlsZXMnOwokbGFuZ1snZmlsZW5hbWVhbmR0aHVtYm5haWxzJ10gPSAnU2hvdyBib3RoIGZpbGVuYW1lcyBhbmQgdGh1bWJuYWlscyc7CiRsYW5nWydtYWtldGh1bWJuYWlsJ10gPSAnQ3JlYXRlIHRodW1ibmFpbHMnOwokbGFuZ1snZmlsZXBpY2tlcnNldHRpbmdzJ10gPSAnRmlsZVBpY2tlciBzZXR0aW5ncyc7CiRsYW5nWydyZXNpemV0byddID0gJ1Jlc2l6ZSBpbWFnZSB0byc7CiRsYW5nWydrZWVwYXNwZWN0cmF0aW8nXSA9ICdLZWVwIGFzcGVjdCByYXRpbyc7CiRsYW5nWydhbGxvd3Vwc2NhbGluZyddID0gJ0FsbG93IHVwc2NhbGluZyc7CiRsYW5nWydkZWNpbWFsZGVsaW1pdGVyJ10gPSAnLic7CiRsYW5nWyd0aG91c2FuZGRlbGltaXRlciddID0gJywnOwokbGFuZ1snZGlybm90Zm91bmQnXSA9ICdEaXJlY3RvcnkgXCclc1wnIG5vdCBmb3VuZCEnOwokbGFuZ1snc2VsZWN0aW1hZ2UnXSA9ICdCcm93c2UgaW1hZ2VzJzsKJGxhbmdbJ3NlbGVjdGZpbGUnXSA9ICdCcm93c2UgZmlsZXMnOwokbGFuZ1snZGVsZXRlcGFnZXMnXSA9ICdEZWxldGUgYWxsIHBhZ2VzIG9mIHR5cGUgQWR2YW5jZWRDb250ZW50JzsKJGxhbmdbJ3VzZW1pbWV0eXBlJ10gPSAnVXNlIG1pbWUtdHlwZSB0byBnZXQgZmlsZSB0eXBlJzsKJGxhbmdbJ2ltcG9ydHBhZ2VzJ10gPSAnU2V0IGFsbCBQYWdlcyBvZiB0eXBlIGNvbnRlbnQgdG8gdHlwZSBBZHZhbmNlZENvbnRlbnQuJzsKJGxhbmdbJ3BhZ2VzaW1wb3J0ZWQnXSA9ICdBbGwgY29udGVudCBwYWdlcyBzZXQgdG8gQWR2YW5jZWRDb250ZW50Lic7CiRsYW5nWydjb25maXJtaW1wb3J0J10gPSAnRG8geW91IHJlYWxseSB3YW50IHRvIGNoYW5nZSB0aGUgY29udGVudCB0eXBlIG9mIGFsbCBjb250ZW50IHBhZ2VzPyc7CiRsYW5nWydub21pbWV0eXBlJ10gPSAnTm8gbWltZS10eXBlIGZ1bmN0aW9uIGF2YWlsYWJsZSBvciBub3QgY29uZmlndXJlZCBwcm9wZXJseS4gVGhpcyBmZWF0dXJlIGlzIGRpc2FibGVkLic7CiRsYW5nWyd0b2dnbGVfbWVzc2FnZSddID0gJ0hpZGUgdGhpcyBtZXNzYWdlJzsKJGxhbmdbJ2NvbnRlbnRzZXR0aW5ncyddID0gJ0RlZmF1bHQgQWR2YW5jZWRDb250ZW50IHNldHRpbmdzJzsKJGxhbmdbJ3JlZGlyZWN0cGFyYW1zJ10gPSAnVVJMIHBhcmFtcyB0byBhcHBlbmQgd2hlbiByZWRpcmVjdGluZyc7CiRsYW5nWydldmFsdWF0ZXNtYXJ0eSddID0gJ1VzZSBzbWFydHkgdG8gcHJvY2VzcyB0aGUgcGFyYW1zJzsKJGxhbmdbJ25vaW1hZ2VmaWxlJ10gPSAnXCclc1wnIGlzIG5vdCBhbiBpbWFnZSBmaWxlJzsKJGxhbmdbJ2ZpbGV0eXBlbm90YWxsb3dlZCddID0gJ0ZpbGV0eXBlIFwnJXNcJyBpcyBub3QgYWxsb3dlZCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEwMjU5MTU3MzAuMTI4Mzc4Mzk4Ni4xMjgzNzgzOTg2LjEyODM3ODM5ODYuMSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI4Mzc4Mzk4Nic7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI4Mzc4Mzk4Ni4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTQ5NDk1ODE5NC0xMjgzNzgzOTg2OTA2JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ0FkdmFuY2VkIENvbnRlbnQnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIEFkdmFuY2VkQ29udGVudCAlcyBpbnN0YWxsZWQnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgQWR2YW5jZWRDb250ZW50ICVzIHVuaW5zdGFsbGVkJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIEFkdmFuY2VkQ29udGVudCB1cGdyYWRlZCB0byAlcyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBBZHZhbmNlZENvbnRlbnQgJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWxlIEFkdmFuY2VkQ29udGVudCAlcyB1bmluc3RhbGxlZC4nOwokbGFuZ1snY29uZmlybXVuaW5zdGFsbCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB1bmluc3RhbGwgdGhlIG1vZHVsZSBBZHZhbmNlZENvbnRlbnQ/JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZWNvbnRlbnQnXSA9ICc8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IHtjb250ZW50IGJsb2NrPSYjMDM5OyVzJiMwMzk7IC4uLiB9IGlzIGFtYmlnb3VzLiBCbG9jayBuYW1lcyBtdXN0IGJlIHVuaXF1ZS4gPGJyIC8+VGhpcyBibG9jayBpcyBkaXNhYmxlZC4gT25seSBmaXJzdCBibG9jayB3aWxsIGJlIHNob3duLiBDaGVjayB5b3VyIHBhZ2UgdGVtcGxhdGUgYW5kIGNob3NlIGEgZGlmZmVyZW50IHZhbHVlIG9mIHBhcmFtICYjMDM5O2Jsb2NrJiMwMzk7LjwvZW0+JzsKJGxhbmdbJ25vdGljZV9kdXBsaWNhdGVjb250ZW50J10gPSAnPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBUaGlzIGJsb2NrIGlzIHVzZWQgbXVsdGlwbGUgdGltZXMgaW4gdGVtcGxhdGUuIFlvdSBvbmx5IHNlZSB0aGUgZmlyc3QgYmxvY2sgaGVyZS48L2VtPic7CiRsYW5nWydlcnJvcl9iYXNpY2F0dHJpYiddID0gJzxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gQ2Fubm90IHVzZSBiYXNpYyBjb250ZW50IHByb3BlcnR5IG5hbWUgJiMwMzk7JXMmIzAzOTsgYXMgdmFsdWUgb2YgcGFyYW0gJiMwMzk7YmxvY2smIzAzOTsuIDxiciAvPlRoaXMgYmxvY2sgaXMgZGlzYWJsZWQuIENoZWNrIHlvdXIgcGFnZSB0ZW1wbGF0ZSBhbmQgY2hvc2UgYSBkaWZmZXJlbnQgdmFsdWUgb2YgcGFyYW0gJiMwMzk7YmxvY2smIzAzOTsuPC9lbT4nOwokbGFuZ1snZXJyb3JfZXhwaXJlZGF0ZSddID0gJ0VuZCBkYXRlIG11c3QgYmUgbGF0ZXIgdGhhbiBzdGFydCBkYXRlLic7CiRsYW5nWyd5b3VhcmVpbnRleHQnXSA9ICdDdXJyZW50IGRpcmVjdG9yeSc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnSW1hZ2VzaXplJzsKJGxhbmdbJ3NpemUnXSA9ICdGaWxlc2l6ZSc7CiRsYW5nWydpbmhlcml0X2Zyb21fcGFyZW50J10gPSAnSW5oZXJpdCBmcm9tIHBhcmVudCc7CiRsYW5nWydub25lJ10gPSAnbm9uZSc7CiRsYW5nWydpbnZhbGlkJ10gPSAnaW52YWxpZCc7CiRsYW5nWyd5ZXMnXSA9ICdZZXMnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydmcm9udGVuZGFjY2VzcyddID0gJ0Zyb250ZW5kIGFjY2Vzcyc7CiRsYW5nWydyZWRpcmVjdHBhZ2UnXSA9ICdSZWRpcmVjdCBQYWdlIGlmIG5vIGFjY2Vzcyc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAnU2hvdyBsb2dpbiBmb3JtJzsKJGxhbmdbJ3JlZ2lzdGVyZWR1c2VycyddID0gJ1JlZ2lzdGVyZWQgdXNlcnMgb25seSc7CiRsYW5nWydibG9jayddID0gJ0Jsb2NrJzsKJGxhbmdbJ3VzZWV4cGlyZWRhdGUnXSA9ICdVc2UgZXhwaXJlIGRhdGUnOwokbGFuZ1snc3RhcnRkYXRlJ10gPSAnU3RhcnQgRGF0ZSc7CiRsYW5nWydlbmRkYXRlJ10gPSAnRW5kIERhdGUnOwokbGFuZ1snYmxvY2tjb250ZW50J10gPSAnQmxvY2sgQ29udGVudCc7CiRsYW5nWydzZXRwYWdlaW5hY3RpdmUnXSA9ICdTZXQgUGFnZSB0byBJbmFjdGl2ZSc7CiRsYW5nWydkZWxldGVwYWdlJ10gPSAnRGVsZXRlIFBhZ2UnOwokbGFuZ1sndW5pbnN0YWxsYWN0aW9uJ10gPSAnVW5pbnN0YWxsIGFjdGlvbic7CiRsYW5nWydzZXRjb250ZW50MSddID0gJ1NldCBhbGwgUGFnZXMgdG8gdHlwZSBDb250ZW50JzsKJGxhbmdbJ3NldGNvbnRlbnQyJ10gPSAnU2V0IGFsbCBQYWdlcyB0byB0eXBlIENvbnRlbnQgYW5kIHJlbW92ZSBhZGRpdGlvbmFsIGNvbnRlbnQgYmxvY2tzJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmVuY2VzIHVwZGF0ZWQnOwokbGFuZ1snZmlsZW9wZXJhdGlvbnMnXSA9ICdGaWxlIG9wZXJhdGlvbnMnOwokbGFuZ1sndXBsb2FkbmV3ZmlsZSddID0gJ1VwbG9hZCBhIG5ldyBmaWxlJzsKJGxhbmdbJ2NyZWF0ZW5ld2RpciddID0gJ0NyZWF0ZSBhIG5ldyBkaXJlY3RvcnknOwokbGFuZ1sndXBsb2FkZmlsZSddID0gJ1VwbG9hZCc7CiRsYW5nWydjcmVhdGVkaXInXSA9ICdDcmVhdGUnOwokbGFuZ1snc3VjY2VzcyddID0gJ09rJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3InOwokbGFuZ1snZmlsZXVwbG9hZGVkJ10gPSAnRmlsZSB1cGxvYWRlZCc7CiRsYW5nWydub2Rpcm5hbWUnXSA9ICdObyBkaXJuYW1lIHByb3ZpZGVkJzsKJGxhbmdbJ2RpcmV4aXN0cyddID0gJ0Rpcm5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snbmV3ZGlyY3JlYXRlZCddID0gJ05ldyBkaXIgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQnOwokbGFuZ1snbmV3ZGlyZmFpbGVkJ10gPSAnQW4gZXJyb3Igb2NjdXJlZCB0cnlpbmcgdG8gY3JlYXRlIGRpcic7CiRsYW5nWydub2ZpbGUnXSA9ICdObyBmaWxlIHdhcyB1cGxvYWRlZCc7CiRsYW5nWydmaWxldG9vYmlnJ10gPSAnVXBsb2FkZWQgZmlsZSBpcyB0b28gYmlnJzsKJGxhbmdbJ2NvbnRhaW5zaWxsZWdhbGNoYXJzJ10gPSAnRmlsZW5hbWUgY29udGFpbnMgb25lIG9yIG1vcmUgaWxsZWdhbCBjaGFyYWN0ZXJzICgmIzAzOTssJnF1b3Q7LCssKixcLC8sJmFtcDssJCknOwokbGFuZ1sndXBsb2FkZmFpbGVkJ10gPSAnRXJyb3IgbW92aW5nIHVwbG9hZGVkIGZpbGUgaW50byBwbGFjZSc7CiRsYW5nWydjb25maXJtZGVsZXRlJ10gPSAnQXJlIHlvdSBzdXJlIHRvIGRlbGV0ZSB0aGUgZmlsZSAlcz8nOwokbGFuZ1snZGVsZXRlZmlsZXN1Y2Nlc3MnXSA9ICd3YXMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQnOwokbGFuZ1snZGVsZXRlZmlsZWZhaWxlZCddID0gJ2NvdWxkIG5vdCBiZSBkZWxldGVkJzsKJGxhbmdbJ2RlbGV0ZXN1YmRpcmZhaWxlZCddID0gJ2NvdWxkIG5vdCBiZSBkZWxldGVkJzsKJGxhbmdbJ2RlbGV0ZXN1YmRpcnN1Y2Nlc3MnXSA9ICd3YXMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQnOwokbGFuZ1snY29uZmlybWRlbGV0ZWRpciddID0gJ0FyZSB5b3Ugc3VyZSB0byBkZWxldGUgdGhlIGRpcmVjdG9yeSAlcz8nOwokbGFuZ1snZGVsZXRlZGlyJ10gPSAnRGVsZXRlIGVtcHR5IHN1YmRpcic7CiRsYW5nWydkZWxldGVmaWxlJ10gPSAnRGVsZXRlIEZpbGUnOwokbGFuZ1sncmVzdHJpY3RkaXJzJ10gPSAnUmVzdHJpY3QgdXNlciYjMDM5O3MgZGlyIGFjY2Vzcyc7CiRsYW5nWydzaG93ZmlsZW1hbmFnZW1lbnQnXSA9ICdTaG93IGZpbGVtYW5hZ2VtZW50IG9wdGlvbnMnOwokbGFuZ1snc2hvd3RodW1ibmFpbGZpbGVzJ10gPSAnU2hvdyB0aHVtYm5haWxzJzsKJGxhbmdbJ2FsbG93c2NhbGluZyddID0gJ0FsbG93IG9uLXRoZS1mbHkgcmVzaXppbmcgb2YgdXBsb2FkZWQgaW1hZ2VzJzsKJGxhbmdbJ3NjYWxpbmd3aWR0aCddID0gJ1NjYWxpbmcgd2lkdGgnOwokbGFuZ1snc2NhbGluZ2hlaWdodCddID0gJ1NjYWxpbmcgaGVpZ2h0JzsKJGxhbmdbJ2RlZmF1bHRkaW1lbnNpb25zJ10gPSAnRGVmYXVsdCBkaW1lbnNpb25zJzsKJGxhbmdbJ2F1dG8nXSA9ICdBdXRvJzsKJGxhbmdbJ3JlbGF0aXZldXJscyddID0gJ1JlbGF0aXZlIHVybHMnOwokbGFuZ1snZmlsZXBpY2tlcnN0eWxlJ10gPSAnRmlsZXBpY2tlciBzdHlsZSc7CiRsYW5nWydmaWxlcGlja2Vyc2l6ZSddID0gJ0ZpbGVwaWNrZXIgc2l6ZSc7CiRsYW5nWydmaWxlbmFtZW9ubHknXSA9ICdTaG93IGZpbGVuYW1lcyc7CiRsYW5nWyd0aHVtYm5haWxzb25seSddID0gJ1Nob3cgdGh1bWJuYWlscyc7CiRsYW5nWydzaG93dGh1bWJuYWlsZmlsZXN0ZXh0J10gPSAnU2hvdyB0aHVtYm5haWwtZmlsZXMgYXMgcmVndWxhciBmaWxlcyc7CiRsYW5nWydmaWxlbmFtZWFuZHRodW1ibmFpbHMnXSA9ICdTaG93IGJvdGggZmlsZW5hbWVzIGFuZCB0aHVtYm5haWxzJzsKJGxhbmdbJ21ha2V0aHVtYm5haWwnXSA9ICdDcmVhdGUgdGh1bWJuYWlscyc7CiRsYW5nWydmaWxlcGlja2Vyc2V0dGluZ3MnXSA9ICdGaWxlUGlja2VyIHNldHRpbmdzJzsKJGxhbmdbJ3Jlc2l6ZXRvJ10gPSAnUmVzaXplIGltYWdlIHRvJzsKJGxhbmdbJ2tlZXBhc3BlY3RyYXRpbyddID0gJ0tlZXAgYXNwZWN0IHJhdGlvJzsKJGxhbmdbJ2FsbG93dXBzY2FsaW5nJ10gPSAnQWxsb3cgdXBzY2FsaW5nJzsKJGxhbmdbJ2RlY2ltYWxkZWxpbWl0ZXInXSA9ICcuJzsKJGxhbmdbJ3Rob3VzYW5kZGVsaW1pdGVyJ10gPSAnLCc7CiRsYW5nWydkaXJub3Rmb3VuZCddID0gJ0RpcmVjdG9yeSAmIzAzOTslcyYjMDM5OyBub3QgZm91bmQhJzsKJGxhbmdbJ3NlbGVjdGltYWdlJ10gPSAnQnJvd3NlIGltYWdlcyc7CiRsYW5nWydzZWxlY3RmaWxlJ10gPSAnQnJvd3NlIGZpbGVzJzsKJGxhbmdbJ2RlbGV0ZXBhZ2VzJ10gPSAnRGVsZXRlIGFsbCBwYWdlcyBvZiB0eXBlIEFkdmFuY2VkQ29udGVudCc7CiRsYW5nWyd1c2VtaW1ldHlwZSddID0gJ1VzZSBtaW1lLXR5cGUgdG8gZ2V0IGZpbGUgdHlwZSc7CiRsYW5nWydpbXBvcnRwYWdlcyddID0gJ1NldCBhbGwgUGFnZXMgb2YgdHlwZSBjb250ZW50IHRvIHR5cGUgQWR2YW5jZWRDb250ZW50Lic7CiRsYW5nWydwYWdlc2ltcG9ydGVkJ10gPSAnQWxsIGNvbnRlbnQgcGFnZXMgc2V0IHRvIEFkdmFuY2VkQ29udGVudC4nOwokbGFuZ1snY29uZmlybWltcG9ydCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBjaGFuZ2UgdGhlIGNvbnRlbnQgdHlwZSBvZiBhbGwgY29udGVudCBwYWdlcz8nOwokbGFuZ1snbm9taW1ldHlwZSddID0gJ05vIG1pbWUtdHlwZSBmdW5jdGlvbiBhdmFpbGFibGUgb3Igbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuIFRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZC4nOwokbGFuZ1sndG9nZ2xlX21lc3NhZ2UnXSA9ICdIaWRlIHRoaXMgbWVzc2FnZSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODEyMDQwMTQuMzExMi43MS51dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vaW5kZXgucGhwJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTc5MDUyNjIzMDg0MTEwMTAwLjEyMTA0MjM1NzcuMTI4MTQ3NTUwMy4xMjgxNTU2Nzg0LjMxMjknOwokbGFuZ1sncWNhJ10gPSAnMTIxMDk3MTY5MC0yNzMwODA3My04MTk1MjgzMic7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuNi4xMC4xMjgxNTU2Nzg0JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ0FkdmFuY2VkIENvbnRlbnQgJzsKJGxhbmdbJ2FkdmFuY2VkY29udGVudF90YWJuYW1lJ10gPSAnR2VhdmFuY2VlcmRlIE9wdGllcyc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgQWR2YW5jZWRDb250ZW50ICVzIGlzIGdlJml1bWw7bnN0YWxsZWVyZCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBBZHZhbmNlZENvbnRlbnQgJXMgaXMgZ2VkZSZpdW1sO25zdGFsbGVlcmQnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgQWR2YW5jZWRDb250ZW50IGlzIGJpamdld2Vya3QgbmFhciAlcyc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZSBBZHZhbmNlZENvbnRlbnQgJXMgaXMgZ2UmaXVtbDtuc3RhbGxlZXJkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNb2R1bGUgQWR2YW5jZWRDb250ZW50ICVzIGlzIGdlZGUmaXVtbDtuc3RhbGxlZXJkJzsKJGxhbmdbJ2NvbmZpcm11bmluc3RhbGwnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGUgbW9kdWxlIEFkdmFuY2VkQ29udGVudCB3aWx0IGRlJml1bWw7bnN0YWxsZXJlbj8nOwokbGFuZ1snbm90aWNlX2R1cGxpY2F0ZWNvbnRlbnQnXSA9ICc8ZW0+PHN0cm9uZz5MZXQgb3A6PC9zdHJvbmc+IERpdCBibG9rIGtvbXQgbWVlcmRlcmUga2VyZW4gdm9vciBpbiBoZXQgc2phYmxvb24uIEFsbGVlbiBoZXQgZWVyc3RlIGJsb2sgd29yZHQgaGllciBnZXRvb25kLjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2Jhc2ljYXR0cmliJ10gPSAnPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBDYW5ub3QgdXNlIGJhc2ljIGNvbnRlbnQgcHJvcGVydHkgbmFtZSAmIzAzOTslcyYjMDM5OyBhcyB2YWx1ZSBvZiBwYXJhbSAmIzAzOTtibG9jayYjMDM5Oy4gPGJyIC8+VGhpcyBibG9jayBpcyBkaXNhYmxlZC4gQ2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlIGFuZCBjaG9zZSBhIGRpZmZlcmVudCB2YWx1ZSBvZiBwYXJhbSAmIzAzOTtibG9jayYjMDM5Oy48L2VtPic7CiRsYW5nWydlcnJvcl9leHBpcmVkYXRlJ10gPSAnRWluZGRhdHVtIG1vZXQgbmEgZGUgc3RhcnRkYXR1bSB2YWxsZW4nOwokbGFuZ1sneW91YXJlaW50ZXh0J10gPSAnSHVpZGlnZSBkaXJlY3RvcnknOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ0FmYmVlbGRpbmcgQWZtZXRpbmdlbic7CiRsYW5nWydzaXplJ10gPSAnQmVzdGFuZHNncm9vdHRlJzsKJGxhbmdbJ2luaGVyaXRfZnJvbV9wYXJlbnQnXSA9ICdOZWVtIG92ZXIgdmFuIGRlIG91ZGVyJzsKJGxhbmdbJ25vbmUnXSA9ICdnZWVuJzsKJGxhbmdbJ2ludmFsaWQnXSA9ICdmb3V0JzsKJGxhbmdbJ2ludmFsaWRfYmxvY2t0eXBlJ10gPSAnPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBJbnZhbGlkIHZhbHVlICYjMDM5OyVzJiMwMzk7IG9mIHBhcmFtIGJsb2NrX3R5cGUgaW4gYmxvY2sgJiMwMzk7JXMmIzAzOTsuPGJyIC8+Q2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlLjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudF9ibG9ja3BhcmFtcyddID0gJzxlbT48c3Ryb25nPkVycm9yOjwvc3Ryb25nPiBJbnN1ZmZpY2llbnQgcGFyYW1zLiA8YnIgLz5NaXNzaW5nIHBhcmFtICYjMDM5OyVzJiMwMzk7IGZvciBibG9jayAmIzAzOTslcyYjMDM5Oy4gQ2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlLjwvZW0+JzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVlJzsKJGxhbmdbJ2Zyb250ZW5kYWNjZXNzJ10gPSAnRnJvbnRlbmQgVG9lZ2FuZyc7CiRsYW5nWydyZWRpcmVjdHBhZ2UnXSA9ICdWZXJ3aWp6ZW4gbmFhciBwYWdpbmEgaW5kaWVuIGdlZW4gdG9lZ2FuZyc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAnVG9vbiBsb2dpbiBmb3JtdWxpZXInOwokbGFuZ1sncmVnaXN0ZXJlZHVzZXJzJ10gPSAnQWxsZWVuIGdlcmVnaXN0cmVlcmRlIGdlYnJ1aWtlcnMnOwokbGFuZ1snYmxvY2snXSA9ICdCbG9jayAnOwokbGFuZ1sndXNlZXhwaXJlZGF0ZSddID0gJ0dlYnJ1aWsgdmVybG9vcGRhdHVtJzsKJGxhbmdbJ3N0YXJ0ZGF0ZSddID0gJ1N0YXJ0IERhdHVtJzsKJGxhbmdbJ2VuZGRhdGUnXSA9ICdFaW5kIERhdHVtJzsKJGxhbmdbJ2Jsb2NrY29udGVudCddID0gJ0Jsb2NrIEluaG91ZCc7CiRsYW5nWydzZXRwYWdlaW5hY3RpdmUnXSA9ICdQYWdpbmEgSW5hY3RpZWYnOwokbGFuZ1snZGVsZXRlcGFnZSddID0gJ1ZlcndpamRlciBQYWdpbmEnOwokbGFuZ1sndW5pbnN0YWxsYWN0aW9uJ10gPSAnRGUmaXVtbDtuc3RhbGxlZXIgYmV3ZXJraW5nJzsKJGxhbmdbJ3NldGNvbnRlbnQxJ10gPSAnU3RlbCBhbGxlIHBhZ2luYSYjMDM5O3MgaW4gbWV0IGhldCB0eXBlIENvbnRlbnQnOwokbGFuZ1snc2V0Y29udGVudDInXSA9ICdTdGVsIGFsbGUgcGFnaW5hJiMwMzk7cyBpbiBtZXQgaGV0IHR5cGUgQ29udGVudCBlbiB2ZXJ3aWpkZXIgYWxsZSBleHRyYSBjb250ZW50IGJsb2Nrcyc7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdWb29ya2V1cmVuIGJpamdld2Vya3QnOwokbGFuZ1snc3VjY2VzcyddID0gJ09rJmVhY3V0ZTsnOwokbGFuZ1snZXJyb3InXSA9ICdGb3V0JzsKJGxhbmdbJ2RlbGV0ZXBhZ2VzJ10gPSAnVmVyd2lqZGVyIGFsbGUgcGFnaW5hJiMwMzk7cyBtZXQgaGV0IHR5cGUgQWR2YW5jZWRDb250ZW50JzsKJGxhbmdbJ2ltcG9ydHBhZ2VzJ10gPSAnU3RlbCBhbGxlIHBhZ2luYSYjMDM5O3MgaW4gbWV0IGhldCB0eXBlICVzIG5hYXIgaGV0IHR5cGUgJXMuJzsKJGxhbmdbJ2NvbmZpcm1pbXBvcnQnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgaGV0IGNvbnRlbnR0eXBlIHZhbiBhbGxlIHBhZ2luYSYjMDM5O3Mgd2lsIHdpanppZ2VuPyc7CiRsYW5nWyd0b2dnbGVfbWVzc2FnZSddID0gJ1ZlcmJlcmcgZGl0IGJlcmljaHQnOwokbGFuZ1snY29udGVudHNldHRpbmdzJ10gPSAnU3RhbmRhYXJkIEFkdmFuY2VkQ29udGVudCBJbnN0ZWxsaW5nZW4nOwokbGFuZ1sncmVkaXJlY3RwYXJhbXMnXSA9ICdVUkwgcGFyYW1zIHRvIGFwcGVuZCB3aGVuIHJlZGlyZWN0aW5nIChwYXJhbTE9dmFsdWUxIHBhcmFtMj12YWx1ZTIgLi4uKSc7CiRsYW5nWydldmFsdWF0ZXNtYXJ0eSddID0gJ1VzZSBzbWFydHkgdG8gY3JlYXRlIHRoZSBwYXJhbXMnOwokbGFuZ1snZXJyb3JfbG9hZGluZ19tb2R1bGUnXSA9ICc8ZW0+PHN0cm9uZz5FcnJvcjo8L3N0cm9uZz4gQ291bGQgbm90IGxvYWQgbW9kdWxlICYjMDM5OyVzJiMwMzk7LiAoRGVmaW5lZCBmb3IgYmxvY2sgJiMwMzk7JXMmIzAzOTsgaW4geW91ciBwYWdlIHRlbXBsYXRlLik8L2VtPic7CiRsYW5nWydlcnJvcl9jb250ZW50YmxvY2tfc3VwcG9ydCddID0gJzxlbT48c3Ryb25nPkVycm9yOjwvc3Ryb25nPiBNb2R1bGUgJiMwMzk7JXMmIzAzOTsgZG9lcyBub3Qgc3VwcG9ydCBjb250ZW50YmxvY2tzLiAoRGVmaW5lZCBmb3IgYmxvY2sgJiMwMzk7JXMmIzAzOTsgaW4geW91ciBwYWdlIHRlbXBsYXRlLik8L2VtPic7CiRsYW5nWydzdWNjZXNzX2ltcG9ydHBhZ2VzJ10gPSAnQWxsZSBwYWdpbmEmIzAzOTtzIHZhbiBoZXQgdHlwZSAlcyB6aWpuIHN1Y2Nlc3ZvbCBnZXdpanppZ2QgbmFhciAlcyc7CiRsYW5nWydzaG93X2FkdmFuY2VkY29udGVudF9vcHRpb25zJ10gPSAnR2VlZiBBZHZhbmNlZENvbnRlbnQgb3B0aWVzIHRhYmJsYWQgd2Vlcic7CiRsYW5nWydkaXNwbGF5X3NldHRpbmdzJ10gPSAnJXMgd2VlcmdhdmUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3NhdmVfY29sbGFwc2Vfc3RhdHVzJ10gPSAnU2xhIGRlIGlua2xhcHN0YXR1cyBvcCB2YW4gJXMnOwokbGFuZ1snY29udGVudF9ibG9ja3MnXSA9ICdjb250ZW50IGJsb2trZW4nOwokbGFuZ1snYmxvY2tfbWVzc2FnZSddID0gJ2NvbnRlbnQgYmxvayBiZXJpY2h0JzsKJGxhbmdbJ2Jsb2NrX2dyb3VwcyddID0gJ2Jsb2sgZ3JvZXBlbic7CiRsYW5nWydjb2xsYXBzZV9kZWZhdWx0J10gPSAnS2xhcCAlcyBzdGFuZGFhcmQgaW4nOwokbGFuZ1sncGVyX3BhZ2UnXSA9ICdwZXIgcGFnaW5hJzsKJGxhbmdbJ3Blcl90ZW1wbGF0ZSddID0gJ3BlciBzamFibG9vbic7CiRsYW5nWydib3RoMSddID0gJ3NqYWJsb29uIE9GIHBhZ2luYSAnOwokbGFuZ1snYm90aDInXSA9ICdzamFibG9vbiBFTiBwYWdpbmEnOwokbGFuZ1snY29udGVudCddID0gJ0luaG91ZCc7CiRsYW5nWydjb250ZW50MiddID0gJ0FkdmFuY2VkIENvbnRlbnQgJzsKJGxhbmdbJ3ByZWZzJ10gPSAnSW5zdGVsbGluZ2VuJzsKJGxhbmdbJ211bHRpX2lucHV0J10gPSAnTXVsdGkgaW5wdXQnOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsJ10gPSAnTXVsdGkgaW5wdXR0ZW1wbGF0ZXMnOwokbGFuZ1snYWRkX211bHRpX2lucHV0J10gPSAnVm9lZyBuaWV1d2UgbXVsdGkgaW5wdXQgdG9lJzsKJGxhbmdbJ2FkZF9tdWx0aV9pbnB1dF90cGwnXSA9ICdWb2VnIG5pZXV3ZSBtdWx0aSBpbnB1dHRlbXBsYXRlIHRvZSc7CiRsYW5nWydpbnB1dF9pZCddID0gJ0ludm9lciBJRCc7CiRsYW5nWydpbnB1dF9maWVsZHMnXSA9ICdJbnZvZXIgdmVsZGVuJzsKJGxhbmdbJ3RwbF9uYW1lJ10gPSAnU2phYmxvb24gbmFhbSc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ0RlIHRlbXBsYXRlIHZlcmVpc3QgZGl0IHZlbGQgZW4gaGV0IG1hZyBuaWV0IGxlZWdnZWxhdGVuIHdvcmRlbic7CiRsYW5nWydlcnJvcl9pbnB1dF9maWVsZHMnXSA9ICdJbnZvZXJ2ZWxkZW4gaXMgZWVuIHZlcmVpc3QgdmVsZCBlbiBtYWcgbmlldCBsZWVnZ2VsYXRlbiB3b3JkZW4uJzsKJGxhbmdbJ2Vycm9yX2lucHV0X2lkJ10gPSAnR2VlbiBpbnZvZXIgaWQgZ2VnZXZlbiBvZiBpbnZvZXIgaWQgYmVzdGFhdCBhbC4nOwokbGFuZ1snZXJyb3JfaW5wdXRfaWRfZXhpc3RzJ10gPSAnSW52b2VyIElEIGlzIGFsIGluIGdlYnJ1aWsuIEtpZXMgZWVuIGFuZGVyZSAobW9ldCB1bmllayB6aWpuKS4nOwokbGFuZ1snbXVsdGlfaW5wdXRfYWRkZWQnXSA9ICdNdWx0aSBJbnB1dCB0b2VnZXZvZWdkLic7CiRsYW5nWydtdWx0aV9pbnB1dF9kZWxldGVkJ10gPSAnTXVsdGkgSW5wdXQgdmVyd2lqZGVyZC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdXBkYXRlZCddID0gJ011bHRpIElucHV0IGJpamdld2Vya3QuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF9hZGRlZCddID0gJ011bHRpIElucHV0IHRlbXBsYXRlIHRvZWdldm9lZ2QuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF91cGRhdGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgYmlqZ2V3ZXJrdC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsX2RlbGV0ZWQnXSA9ICdNdWx0aSBJbnB1dCB0ZW1wbGF0ZSB2ZXJ3aWpkZXJkLic7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdWZXJ3aWpkZXIgZ2VzZWxlY3RlZXJkZSBpdGVtcyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkaXQgd2lsdCB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGV6ZSB3aWx0IHZlcndpamRlcmVuPyc7CiRsYW5nWydoaWRlX2NvbnRlbnQnXSA9ICdHZWVuICh2ZXJiZXJnIGRlIGluaG91ZCknOwokbGFuZ1snaGlkZV9tZW51X2l0ZW0nXSA9ICdWZXJiZXJnZW4gdmFuIG1lbnUnOwokbGFuZ1snbG9nZ2Vkb3V0J10gPSAnaW5kaWVuIG5pZXQgYWFuZ2VtZWxkJzsKJGxhbmdbJ2xvZ2dlZGluJ10gPSAnaW5kaWVuIGFhbmdlbWVsZCc7CiRsYW5nWydhZnRlcmN1cnJkYXRlJ10gPSAnbmEgZGUgaHVpZGlnZSBkYXR1bSc7CiRsYW5nWydhZnRlcnN0YXJ0ZGF0ZSddID0gJ25hIGRlIHN0YXJ0ZGF0dW0nOwokbGFuZ1snbWludXRlcyddID0gJ21pbnV0ZW4nOwokbGFuZ1snaG91cnMnXSA9ICd1cmVuJzsKJGxhbmdbJ2RheXMnXSA9ICdkYWdlbic7CiRsYW5nWyd3ZWVrcyddID0gJ3dla2VuJzsKJGxhbmdbJ21vbnRocyddID0gJ21hYW5kZW4nOwokbGFuZ1sneWVhcnMnXSA9ICdqYXJlbic7CiRsYW5nWydoZWxwX3RwbF92YXJzJ10gPSAnPHA+PHN0cm9uZz5UZW1wbGF0ZSB2YXJzOjwvc3Ryb25nPjwvcD4NCjxwPjxwcmU+PGNvZGU+eyRpbnB1dHN9PC9jb2RlPjwvcHJlPiBpcyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCBkZWZpbmVkIGlucHV0IGVsZW1lbnRzIG9mIHRoYXQgbXVsdGkgaW5wdXQgYmxvY2suPGJyIC8+DQpFYWNoIGlucHV0IGVsZW1lbnQgaXMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgaXRzIHBhcmFtcy4gPGJyIC8+DQpTZWUgbW9kdWxlIGhlbHAgZm9yIG1vcmUgaW5mby48YnIgLz4NCkFkZGl0aW9uYWwgcGFyYW0gaXMgJnF1b3Q7aW5wdXQmcXVvdDsgdGhhdCB3aWxsIHByaW50IG91dCB0aGUgaW5wdXQgZWxlbWVudC48YnIgLz4NClRvIGFjY2VzcyB0aGUgcGFyYW1zIHVzZSB0aGUgZG90IHN5bnRheC48YnIgLz4NCkV4YW1wbGU6PC9wPg0KPHByZT48Y29kZT57Zm9yZWFjaCBmcm9tPSRpbnB1dHMgaXRlbT1lbG19DQoJeyRlbG0ubGFiZWx9OiZuYnNwO3skZWxtLmlucHV0fTxiciAvPg0Key9mb3JlYWNofTwvY29kZT48L3ByZT4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODUyMjIxMjcxLjEyODc0NzkwOTIuMTMwNDQyMjgwOC4xMzA0NTIzNzkwLjE0Mic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzMDQ1MjM3OTAuMTQyLjg4LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE2MTAzMTg5Ny0xMjg3NDc5MDkyMTcxJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ro_RO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ0NvbnRpbnV0IEF2YW5zYXQnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWx1bCBDb250aW51dEF2YW5zYXQgJXMgYSBmb3N0IGluc3RhbGF0JzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWx1bCBDb250aW51dEF2YW5zYXQgJXMgYSBmb3N0IGRlemluc3RhbGF0JzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWx1bCBDb250aW51dEF2YW5zYXQgYSBmb3N0IGFjdHVhbGl6YXQgbGEgdmVyc2l1bmVhICVzJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWx1bCBDb250aW51dEF2YW5zYXQgJXMgYSBmb3N0IGluc3RhbGF0Lic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWx1bCBDb250aW51dEF2YW5zYXQgJXMgYSBmb3N0IGRlemluc3RhbGF0Lic7CiRsYW5nWydjb25maXJtdW5pbnN0YWxsJ10gPSAnU2lndXIgc2UgZG9yZXN0ZSBkZXppbnN0YWxhcmVhIG1vZHVsdWx1aSBDb250aW51dEF2YW5zYXQ/JzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZWNvbnRlbnQnXSA9ICc8ZW0+PHN0cm9uZz5Ob3RpZmljYXJlOjwvc3Ryb25nPiB7Y29udGVudCBibG9jaz0mIzAzOTslcyYjMDM5OyAuLi4gfSBlc3RlIGFtYmlndXUuIE51bWVsZSBkZSBibG9jdXJpIHRyZWJ1aWUgc2EgZmllIHVuaWNlLiA8YnIgLz5BY2VzdCBibG9jIGVzdGUgZGV6YWN0aXZhdC4gTnVtYWkgcHJpbXVsIGJsb2MgdmEgZmkgYWZpc2F0LiBWZXJpZmljYSBzYWJsb251bCBwYWdpbmlpIHNpIGFsZWdlIG8gYWx0YSB2YWxvYXJlIHBlbnRydSBwYXJhbWV0cnVsICYjMDM5O2Jsb2NrJiMwMzk7LjwvZW0+JzsKJGxhbmdbJ25vdGljZV9kdXBsaWNhdGVjb250ZW50J10gPSAnPGVtPjxzdHJvbmc+Tm90aWZpY2FyZTo8L3N0cm9uZz4gQWNlc3QgYmxvYyBlc3RlIGZvbG9zaXQgZGUgbWFpIG11bHRlIG9yaSBpbiBzYWJsb24uIEFpY2kgZXN0ZSBhZmlzYXQgbnVtYWkgcHJpbXVsIGJsb2MuPC9lbT4nOwokbGFuZ1snZXJyb3JfYmFzaWNhdHRyaWInXSA9ICc8ZW0+PHN0cm9uZz5Ob3RpZmljYXJlOjwvc3Ryb25nPiBOdSBzZSBwb2F0ZSBmb2xvc2kgbnVtZWxlIGRlIHByb3ByaWV0YXRlIGRlIGNvbnRpbnV0IHNpbXBsdSAmIzAzOTslcyYjMDM5OyBjYSB2YWxvYXJlIGEgcGFyYW1ldHJ1bHVpICYjMDM5O2Jsb2NrJiMwMzk7LiA8YnIgLz5BY2VzdCBibG9jIGVzdGUgZGV6YWN0aXZhdC4gVmVyaWZpY2Egc2FibG9udWwgcGFnaW5paSBzaSBhbGVnZSBvIGFsdGEgdmFsb2FyZSBwZW50cnUgcGFyYW1ldHJ1bCAmIzAzOTtibG9jayYjMDM5Oy48L2VtPic7CiRsYW5nWydlcnJvcl9leHBpcmVkYXRlJ10gPSAnRGF0YSBkZSBmaW5hbGl6YXJlIHRyZWJ1aWUgc2EgZmllIGR1cGEgZGF0YSBkZSBwb3JuaXJlLic7CiRsYW5nWyd5b3VhcmVpbnRleHQnXSA9ICdGb2xkZXJ1bCBjdXJlbnQnOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ0RpbWVuc2l1bmUgaW1hZ2luZSc7CiRsYW5nWydzaXplJ10gPSAnRGltZW5zaXVuZSBmaXNpZXInOwokbGFuZ1snaW5oZXJpdF9mcm9tX3BhcmVudCddID0gJ01vc3Rlbml0IGRlIGxhIHBhcmludGUnOwokbGFuZ1snbm9uZSddID0gJ25pbWljJzsKJGxhbmdbJ2ludmFsaWQnXSA9ICdpbnZhbGlkKGEpJzsKJGxhbmdbJ2ludmFsaWRfYmxvY2t0eXBlJ10gPSAnPGVtPjxzdHJvbmc+Tm90aWZpY2FyZTo8L3N0cm9uZz4gVmFsb2FyZSBpbnZhbGlkYSAmIzAzOTslcyYjMDM5OyBhIHBhcmFtZXRydWx1aSBibG9ja190eXBlIGluIGJsb2N1bCAmIzAzOTslcyYjMDM5Oy48YnIgLz5WZXJpZmljYSBzYWJsb251bCBwYWdpbmlpLjwvZW0+JzsKJGxhbmdbJ3llcyddID0gJ0RhJzsKJGxhbmdbJ25vJ10gPSAnTnUnOwokbGFuZ1snZnJvbnRlbmRhY2Nlc3MnXSA9ICdBY2NlcyBmcm9udGVuZCc7CiRsYW5nWydyZWRpcmVjdHBhZ2UnXSA9ICdQYWdpbmEgZGUgcmVkaXJlY3Rpb25hcmUgZGFjYSBudSBzZSBwZXJtaXRlIGFjY2VzdWwnOwokbGFuZ1snc2hvd2xvZ2luZm9ybSddID0gJ0FmaXNhcmUgZm9ybXVsYXIgYXV0ZW50aWZpY2FyZSc7CiRsYW5nWydyZWdpc3RlcmVkdXNlcnMnXSA9ICdOdW1haSB1dGlsaXphdG9yaWkgaW5yZWdpc3RyYXRpJzsKJGxhbmdbJ2Jsb2NrJ10gPSAnQmxvYyc7CiRsYW5nWyd1c2VleHBpcmVkYXRlJ10gPSAnRm9sb3NpcmUgZGF0YSBkZSBleHBpcmFyZSc7CiRsYW5nWydzdGFydGRhdGUnXSA9ICdEYXRhIHN0YXJ0JzsKJGxhbmdbJ2VuZGRhdGUnXSA9ICdEYXRhIG9wcmlyZSc7CiRsYW5nWydibG9ja2NvbnRlbnQnXSA9ICdDb250aW51dCBibG9jJzsKJGxhbmdbJ3NldHBhZ2VpbmFjdGl2ZSddID0gJ1NldGFyZSBwYWdpbmEgY2EgaW5hY3RpdmEnOwokbGFuZ1snZGVsZXRlcGFnZSddID0gJ1N0ZXJnZXJlIHBhZ2luYSc7CiRsYW5nWyd1bmluc3RhbGxhY3Rpb24nXSA9ICdBY3RpdW5lIGRlemluc3RhbGFyZSc7CiRsYW5nWydzZXRjb250ZW50MSddID0gJ1NldGFyZSB0b2F0ZSBwYWdpbmlsZSBjYSB0aXAgY29udGludXQnOwokbGFuZ1snc2V0Y29udGVudDInXSA9ICdTZXRhcmUgdG9hdGUgcGFnaW5pbGUgY2EgdGlwIGNvbnRpbnV0IHNpIGlubGF0dXJhcmUgYmxvY3VyaSBkZSBjb250aW51dCBhZGl0aW9uYWxlJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ1ByZWZlcmludGVsZSBhdSBmb3N0IGFjdHVhbGl6YXRlLic7CiRsYW5nWydmaWxlb3BlcmF0aW9ucyddID0gJ09wZXJhdGl1bmkgZmlzaWVyZSc7CiRsYW5nWyd1cGxvYWRuZXdmaWxlJ10gPSAnSW5jYXJjYXJlIGZpc2llciBub3UnOwokbGFuZ1snY3JlYXRlbmV3ZGlyJ10gPSAnQ3JlYXJlIGZvbGRlciBub3UnOwokbGFuZ1sndXBsb2FkZmlsZSddID0gJ0luY2FyY2FyZSc7CiRsYW5nWydjcmVhdGVkaXInXSA9ICdDcmVhcmUnOwokbGFuZ1snc3VjY2VzcyddID0gJ09LJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJvYXJlJzsKJGxhbmdbJ2ZpbGV1cGxvYWRlZCddID0gJ0Zpc2llcnVsICYjMDM5OyVzJiMwMzk7IGEgZm9zdCBpbmNhcmNhdCc7CiRsYW5nWydub2Rpcm5hbWUnXSA9ICdOdSBhIGZvc3QgZGF0IHVuIG51bWUgZGUgZm9sZGVyJzsKJGxhbmdbJ2RpcmV4aXN0cyddID0gJ051bWVsZSBkZSBmb2xkZXIgJiMwMzk7JXMmIzAzOTsgZXhpc3RhIGRlamEnOwokbGFuZ1snbmV3ZGlyY3JlYXRlZCddID0gJ0ZvbGRlcnVsIG5vdSAmIzAzOTslcyYjMDM5OyBhIGZvc3QgY3JlYXQgY3Ugc3VjY2VzJzsKJGxhbmdbJ25ld2RpcmZhaWxlZCddID0gJ0EgYXBhcnV0IG8gZXJvYXJlIGxhIGNyZWFyZWEgZm9sZGVydWx1aSAmIzAzOTslcyYjMDM5Oyc7CiRsYW5nWydub2ZpbGUnXSA9ICdOdSBhIGZvc3QgaW5jYXJjYXQgbmljaXVuIGZpc2llcic7CiRsYW5nWydmaWxldG9vYmlnJ10gPSAnRmlzaWVydWwgaW5jYXJjYXQgJiMwMzk7JXMmIzAzOTsgZXN0ZSBwcmVhIG1hcmUnOwokbGFuZ1snY29udGFpbnNpbGxlZ2FsY2hhcnMnXSA9ICdOdW1lbGUgZGUgZmlzaWVyICYjMDM5OyVzJiMwMzk7IGNvbnRpbmUgdW51bCBzYXUgbWFpIG11bHRlIGNhcmFjdGVyZSBuZXBlcm1pc2UgKCYjMDM5OywmcXVvdDssKywqLFwsLywmYW1wOywkKSc7CiRsYW5nWyd1cGxvYWRmYWlsZWQnXSA9ICdFcm9hcmUgbGEgbXV0YXJlIGZpc2llcnVsdWkgaW5jYXJjYXQgJiMwMzk7JXMmIzAzOTsgbGEgbG9jdWwgbHVpJzsKJGxhbmdbJ2NvbmZpcm1kZWxldGUnXSA9ICdTaWd1ciBkb3Jlc3RpIHN0ZXJnZXJlYSBmaXNpZXJ1bHVpIFwmIzAzOTslc1wmIzAzOTs/JzsKJGxhbmdbJ2RlbGV0ZWZpbGVzdWNjZXNzJ10gPSAnRmlzaWVydWwgJiMwMzk7JXMmIzAzOTsgYSBmb3N0IHN0ZXJzJzsKJGxhbmdbJ2RlbGV0ZWZpbGVmYWlsZWQnXSA9ICdGaXNpZXJ1bCAmIzAzOTslcyYjMDM5OyBudSBhIHB1dHV0IGZpIHN0ZXJzJzsKJGxhbmdbJ2RlbGV0ZXN1YmRpcmZhaWxlZCddID0gJ0ZvbGRlcnVsICYjMDM5OyVzJiMwMzk7IG51IGEgcHV0dXQgZmkgc3RlcnMnOwokbGFuZ1snZGVsZXRlc3ViZGlyc3VjY2VzcyddID0gJ0ZvbGRlcnVsICYjMDM5OyVzJiMwMzk7IGEgZm9zdCBzdGVycyc7CiRsYW5nWydjb25maXJtZGVsZXRlZGlyJ10gPSAnU2lndXIgZG9yZXN0aSBzdGVyZ2VyZWEgZm9sZGVydWx1aSBcJiMwMzk7JXNcJiMwMzk7Pyc7CiRsYW5nWydkZWxldGVkaXInXSA9ICdTdGVyZ2VyZSBzdWJmb2xkZXJlIGdvYWxlJzsKJGxhbmdbJ2RlbGV0ZWZpbGUnXSA9ICdTdGVyZ2VyZSBmaXNpZXInOwokbGFuZ1sncmVzdHJpY3RkaXJzJ10gPSAnUmVzdHJpY3Rpb25hcmUgYWNjZXMgdXRpbGl6YXRvcmkgbGEgZm9sZGVyJzsKJGxhbmdbJ3Nob3dmaWxlbWFuYWdlbWVudCddID0gJ0FmaXNhcmUgb3B0aXVuaSBhZG1pbmlzdHJhcmUgZmlzaWVyZSc7CiRsYW5nWydzaG93dGh1bWJuYWlsZmlsZXMnXSA9ICdBZmlzYXJlIG1pbmlhdHVyaSc7CiRsYW5nWydhbGxvd3NjYWxpbmcnXSA9ICdTZSBwZXJtaXRlIHJlZGltZW5zaW9uYXJlYSBvbi10aGUtZmx5IGEgaW1hZ2luaWxvciBpbmNhcmNhdGUnOwokbGFuZ1snc2NhbGluZ3dpZHRoJ10gPSAnTGF0aW1lIHNjYWxhcmUnOwokbGFuZ1snc2NhbGluZ2hlaWdodCddID0gJ0luYWx0aW1lIHNjYWxhcmUnOwokbGFuZ1snZGVmYXVsdGRpbWVuc2lvbnMnXSA9ICdEaW1lbnNpdW5pIGltcGxpY2l0ZSc7CiRsYW5nWydhdXRvJ10gPSAnQXV0b21hdCc7CiRsYW5nWydyZWxhdGl2ZXVybHMnXSA9ICdVUkwtdXJpIHJlbGF0aXZlJzsKJGxhbmdbJ2ZpbGVwaWNrZXJzdHlsZSddID0gJ1N0aWwgc2VsZWN0b3IgZmlzaWVyZSc7CiRsYW5nWydmaWxlcGlja2Vyc2l6ZSddID0gJ0RpbWVuc2l1bmUgc2VsZWN0b3IgZmlzaWVyZSc7CiRsYW5nWydmaWxlbmFtZW9ubHknXSA9ICdBZmlzYXJlIG51bWUgZmlzaWVyZSc7CiRsYW5nWyd0aHVtYm5haWxzb25seSddID0gJ0FmaXNhcmUgbWluaWF0dXJpJzsKJGxhbmdbJ3Nob3d0aHVtYm5haWxmaWxlc3RleHQnXSA9ICdBZmlzYXJlIGZpc2llcmUtbWluaWF0dXJpIGNhIGZpc2llcmUgbm9ybWFsZSc7CiRsYW5nWydmaWxlbmFtZWFuZHRodW1ibmFpbHMnXSA9ICdBZmlzYXJlIHNpIG51bWUgZmlzaWVyZSBzaSBtaW5pYXR1cmknOwokbGFuZ1snbWFrZXRodW1ibmFpbCddID0gJ0NyZWFyZSBtaW5pYXR1cmknOwokbGFuZ1snZmlsZXBpY2tlcnNldHRpbmdzJ10gPSAnU2V0YXJpIHNlbGVjdG9yIGZpc2llcmUnOwokbGFuZ1sncmVzaXpldG8nXSA9ICdSZWRpbWVuc2lvbmFyZSBpbWFnaW5lIGxhJzsKJGxhbmdbJ2tlZXBhc3BlY3RyYXRpbyddID0gJ1NlIHBhc3RyZWF6YSBwcm9wb3J0aWEgZGltZW5zaXVuaWxvcic7CiRsYW5nWydhbGxvd3Vwc2NhbGluZyddID0gJ1NlIHBlcm1pdGUgc2NhbGFyZWEgaW4gc3VzJzsKJGxhbmdbJ2RlY2ltYWxkZWxpbWl0ZXInXSA9ICcuICc7CiRsYW5nWyd0aG91c2FuZGRlbGltaXRlciddID0gJywgJzsKJGxhbmdbJ2Rpcm5vdGZvdW5kJ10gPSAnRm9sZGVydWwgJiMwMzk7JXMmIzAzOTsgbnUgYSBmb3N0IGdhc2l0ISc7CiRsYW5nWydzZWxlY3RpbWFnZSddID0gJ1Jhc2ZvaXJlIGltYWdpbmknOwokbGFuZ1snc2VsZWN0ZmlsZSddID0gJ1Jhc2ZvaXJlIGZpc2llcmUnOwokbGFuZ1snZGVsZXRlcGFnZXMnXSA9ICdTdGVyZ2VyZSB0b2F0ZSBwYWdpbmlsZSBkZSB0aXB1bCBDb250aW51dEF2YW5zYXQnOwokbGFuZ1sndXNlbWltZXR5cGUnXSA9ICdGb2xvc2lyZSBtaW1lLXR5cGUgcGVudHJ1IGEgb2J0aW5lIHRpcHVsIGRlIGZpc2llcic7CiRsYW5nWydpbXBvcnRwYWdlcyddID0gJ1NldGFyZSB0b2F0ZSBwYWdpbmlsZSBkZSB0aXAgY29udGludXQgY2EgdGlwIENvbnRpbnV0QXZhbnNhdC4nOwokbGFuZ1sncGFnZXNpbXBvcnRlZCddID0gJ1RvYXRlIHBhZ2luaWxlIGRlIGNvbnRpbnV0IGF1IGZvc3Qgc2V0YXRlIGNhIENvbnRpbnV0YXZhbnNhdC4nOwokbGFuZ1snY29uZmlybWltcG9ydCddID0gJ1NpZ3VyIGRvcmVzdGkgc2NoaW1iYXJlYSB0aXB1bHVpIHBlbnRydSB0b2F0ZSBwYWdpbmlsZSBkZSBjb250aW51dD8nOwokbGFuZ1snbm9taW1ldHlwZSddID0gJ051IGVzdGUgZGlzcG9uaWJpbGEgbmljaW8gZnVuY3RpZSBtaW1lLXR5cGUgc2F1IG51IGZ1bmN0aW9uZWF6YSBpbmNvcmVjdC4gQWNlYXN0YSBjYXJhY3RlcmlzdGljYSBlc3RlIGRlemFjdGl2YXRhLic7CiRsYW5nWyd0b2dnbGVfbWVzc2FnZSddID0gJ0FzY3VuZGUgYWNlc3QgbWVzYWonOwokbGFuZ1snY29udGVudHNldHRpbmdzJ10gPSAnU2V0YXJpIGltcGxpY2l0ZSBDb250aW51dEF2YW5zYXQnOwokbGFuZ1sncmVkaXJlY3RwYXJhbXMnXSA9ICdQYXJhbWV0cmkgVVJMIGNhcmUgc2UgYWRhdWdhIGxhIHJlZGlyZWN0YXJlJzsKJGxhbmdbJ2V2YWx1YXRlc21hcnR5J10gPSAnRm9sb3NpcmUgc21hcnR5IHBlbnRydSBwcm9jZXNhcmVhIHBhcmFtZXRyaWxvcic7CiRsYW5nWydub2ltYWdlZmlsZSddID0gJyYjMDM5OyVzJiMwMzk7IG51IGVzdGUgdW4gZmlzaWVyIGltYWdpbmUnOwokbGFuZ1snZmlsZXR5cGVub3RhbGxvd2VkJ10gPSAnVGlwdWwgZGUgZmlzaWVyICYjMDM5OyVzJiMwMzk7IG51IGVzdGUgcGVybWlzJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTE4MzgyMTUwNDMtMTI4MjgwNzUzMzkzNCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODI4MDc5NzIuMS4yLnV0bWNzcj1nb29nbGV8dXRtY2NuPShvcmdhbmljKXx1dG1jbWQ9b3JnYW5pY3x1dG1jdHI9Y21zbXMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMTkxODczODE3LjEyODI4MDc1MzQuMTI4MjgwNzUzNC4xMjgyODA3NTM0LjEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEyLjkuMTI4MjgwNzYxNTM2OCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ9Cg0LDRgdGI0LjRgNC10L3QvdC+0LUg0YHQvtC00LXRgNC20LjQvNC+0LUnOwokbGFuZ1snYWR2YW5jZWRjb250ZW50X3RhYm5hbWUnXSA9ICfQoNCw0YHRiNC40YDQtdC90L3Ri9C1INC+0L/RhtC40LgnOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAn0JzQvtC00YPQu9GMIEFkdmFuY2VkQ29udGVudCAlcyDRg9GB0YLQsNC90L7QstC70LXQvSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ9Cc0L7QtNGD0LvRjCBBZHZhbmNlZENvbnRlbnQgJXMg0YPQtNCw0LvQtdC9JzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAn0JzQvtC00YPQu9GMIEFkdmFuY2VkQ29udGVudCDQvtCx0L3QvtCy0LvQtdC9INC00L4gJXMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICfQnNC+0LTRg9C70YwgQWR2YW5jZWRDb250ZW50ICVzINGD0YHRgtCw0L3QvtCy0LvQtdC9Lic7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAn0JzQvtC00YPQu9GMIEFkdmFuY2VkQ29udGVudCAlcyDRg9C00LDQu9C10L0uJzsKJGxhbmdbJ2NvbmZpcm11bmluc3RhbGwnXSA9ICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDQvNC+0LTRg9C70YwgQWR2YW5jZWRDb250ZW50Pyc7CiRsYW5nWydub3RpY2VfZHVwbGljYXRlY29udGVudCddID0gJzxlbT4gPHN0cm9uZz4g0J7QsdGA0LDRgtC40YLQtSDQstC90LjQvNCw0L3QuNC1OiA8L3N0cm9uZz4g0K3RgtC+0YIg0LHQu9C+0Log0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC90LXRgdC60L7Qu9GM0LrQviDRgNCw0Lcg0LIg0YjQsNCx0LvQvtC90LUuINCS0Ysg0LLQuNC00LjRgtC1INC30LTQtdGB0Ywg0YLQvtC70YzQutC+INC/0LXRgNCy0YvQuSDQsdC70L7Qui4gPC9lbT4NCic7CiRsYW5nWydlcnJvcl9iYXNpY2F0dHJpYiddID0gJzxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gQ2Fubm90IHVzZSBiYXNpYyBjb250ZW50IHByb3BlcnR5IG5hbWUgXCclc1wnIGFzIHZhbHVlIG9mIHBhcmFtIFwnYmxvY2tcJy4gPGJyIC8+VGhpcyBibG9jayBpcyBkaXNhYmxlZC4gQ2hlY2sgeW91ciBwYWdlIHRlbXBsYXRlIGFuZCBjaG9zZSBhIGRpZmZlcmVudCB2YWx1ZSBvZiBwYXJhbSBcJ2Jsb2NrXCcuPC9lbT4nOwokbGFuZ1snZXJyb3JfZXhwaXJlZGF0ZSddID0gJ9CU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjyDQtNC+0LvQttC90LAg0LHRi9GC0Ywg0L/QvtC30LbQtSDQtNCw0YLRiyDQvdCw0YfQsNC70LAuJzsKJGxhbmdbJ3lvdWFyZWludGV4dCddID0gJ9Ci0LXQutGD0YnQuNC5INC60LDRgtCw0LvQvtCzJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICfQoNCw0LfQvNC10YAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyc7CiRsYW5nWydzaXplJ10gPSAn0KDQsNC30LzQtdGAINGE0LDQudC70LAnOwokbGFuZ1snaW5oZXJpdF9mcm9tX3BhcmVudCddID0gJ9Cd0LDRgdC70LXQtNC+0LLQsNGC0Ywg0L7RgiDRgNC+0LTQuNGC0LXQu9GM0YHQutC+0LPQvic7CiRsYW5nWydub25lJ10gPSAn0L3QuNGH0LXQs9C+JzsKJGxhbmdbJ2ludmFsaWQnXSA9ICfQvdC10LLQtdGA0L3Qvic7CiRsYW5nWydpbnZhbGlkX2Jsb2NrdHlwZSddID0gJzxlbT48c3Ryb25nPtCe0LHRgNCw0YLQuNGC0LUg0LLQvdC40LzQsNC90LjQtTo8L3N0cm9uZz4g0J3QtdCy0LXRgNC90L7QtSDQt9C90LDRh9C10L3QuNC1IFwnJXNcJyDQv9Cw0YDQsNC80LXRgtGA0LAgYmxvY2tfdHlwZSDQsiDQsdC70L7QutC1IFwnJXNcJy48YnIgLz7Qn9GA0L7QstC10YDRjNGC0LUg0LLQsNGIINGI0LDQsdC70L7QvSDRgdGC0YDQsNC90LjRhtGLLjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudF9ibG9ja3BhcmFtcyddID0gJzxlbT48c3Ryb25nPtCe0YjQuNCx0LrQsDo8L3N0cm9uZz4g0J3QtdC00L7RgdGC0LDRgtC+0YfQvdC+INC/0LDRgNCw0LzQtdGC0YDQvtCyLiA8YnIgLz7QntGC0YHRg9GC0YHRgtCy0YPQtdGCINC/0LDRgNCw0LzQtdGC0YAgXCclc1wnINC00LvRjyDQsdC70L7QutCwIFwnJXNcJy4g0J/RgNC+0LLQtdGA0YzRgtC1INCy0LDRiCDRiNCw0LHQu9C+0L0g0YHRgtGA0LDQvdC40YbRiy48L2VtPic7CiRsYW5nWyd5ZXMnXSA9ICfQlNCwJzsKJGxhbmdbJ25vJ10gPSAn0J3QtdGCJzsKJGxhbmdbJ2Zyb250ZW5kYWNjZXNzJ10gPSAnRnJvbnRlbmQg0LTQvtGB0YLRg9C/JzsKJGxhbmdbJ3JlZGlyZWN0cGFnZSddID0gJ1JlZGlyZWN0IFBhZ2UsINC10YHQu9C4INC90LXRgiDQtNC+0YHRgtGD0L/QsCc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAn0J/QvtC60LDQt9Cw0YLRjCDRhNC+0YDQvNGDINCy0YXQvtC00LAnOwokbGFuZ1sncmVnaXN0ZXJlZHVzZXJzJ10gPSAn0KLQvtC70YzQutC+INC00LvRjyDQt9Cw0YDQtdCz0LjRgdGC0YDQuNGA0L7QstCw0L3QvdGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LknOwokbGFuZ1snYmxvY2snXSA9ICfQkdC70L7Quic7CiRsYW5nWyd1c2VleHBpcmVkYXRlJ10gPSAn0JjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC00LDRgtGDINC+0LrQvtC90YfQsNC90LjRjyc7CiRsYW5nWydzdGFydGRhdGUnXSA9ICfQlNCw0YLQsCDQvdCw0YfQsNC70LAnOwokbGFuZ1snZW5kZGF0ZSddID0gJ9CU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjyc7CiRsYW5nWydibG9ja2NvbnRlbnQnXSA9ICfQkdC70L7QuiDRgdC+0LTQtdGA0LbQuNC80L7QtSc7CiRsYW5nWydzZXRwYWdlaW5hY3RpdmUnXSA9ICfQo9GB0YLQsNC90L7QstC40YLRjCDRjdGC0YMg0YHRgtGA0LDQvdC40YbRgywg0LrQsNC6INC90LXQsNC60YLQuNCy0L3Rg9GOJzsKJGxhbmdbJ2RlbGV0ZXBhZ2UnXSA9ICfQo9C00LDQu9C40YLRjCDRgdGC0YDQsNC90LjRhtGDJzsKJGxhbmdbJ3VuaW5zdGFsbGFjdGlvbiddID0gJ9Cj0LTQsNC70LjRgtGMINC00LXQudGB0YLQstC40LUnOwokbGFuZ1snc2V0Y29udGVudDEnXSA9ICfQo9GB0YLQsNC90L7QstC40YLRjCDQstGB0LUg0YHRgtGA0LDQvdC40YbRiyDRgtC40L/QsCBBZHZhbmNlZENvbnRlbnQg0L7QsdGA0LDRgtC90L4g0Log0YLQuNC/0YMgQ29udGVudCc7CiRsYW5nWydzZXRjb250ZW50MiddID0gJ9Cj0YHRgtCw0L3QvtCy0LjRgtGMINCy0YHQtSDRgdGC0YDQsNC90LjRhtGLINGC0LjQv9CwIEFkdmFuY2VkQ29udGVudCDQvtCx0YDQsNGC0L3QviDQuiDRgtC40L/RgyBDb250ZW50INC4INGD0LTQsNC70LjRgtGMINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0LHQu9C+0LrQuCDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+JzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCDQvtCx0L3QvtCy0LvQtdC90YsnOwokbGFuZ1snc3VjY2VzcyddID0gJ9Ce0JonOwokbGFuZ1snZXJyb3InXSA9ICfQntGI0LjQsdC60LAnOwokbGFuZ1snZGVsZXRlcGFnZXMnXSA9ICfQo9C00LDQu9C40YLRjCDQstGB0LUg0YHRgtGA0LDQvdC40YbRiyDRgtC40L/QsCBBZHZhbmNlZENvbnRlbnQnOwokbGFuZ1snaW1wb3J0cGFnZXMnXSA9ICfQo9GB0YLQsNC90L7QstC40YLRjCDQstGB0LUg0YHRgtGA0LDQvdC40YbRiyDRgtC40L/QsCAlcyDQuiDRgtC40L/RgyAlcy4nOwokbGFuZ1sncGFnZXNpbXBvcnRlZCddID0gJ9CS0YHQtSDRgdC+0LTQtdGA0LbQuNC80L7QtSDRgdGC0YDQsNC90LjRhiwg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQsiBBZHZhbmNlZENvbnRlbnQuJzsKJGxhbmdbJ2NvbmZpcm1pbXBvcnQnXSA9ICfQktGLINC00LXQudGB0YLQstC40YLQtdC70YzQvdC+INGF0L7RgtC40YLQtSDQuNC30LzQtdC90LjRgtGMINGC0LjQvyDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+INC00LvRjyDQstGB0LXRhSDRgdGC0YDQsNC90LjRhj8nOwokbGFuZ1sndG9nZ2xlX21lc3NhZ2UnXSA9ICfQodC60YDRi9GC0Ywg0Y3RgtC+INGB0L7QvtCx0YnQtdC90LjQtSc7CiRsYW5nWydjb250ZW50c2V0dGluZ3MnXSA9ICfQndCw0YHRgtGA0L7QudC60LggQWR2YW5jZWRDb250ZW50INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3JlZGlyZWN0cGFyYW1zJ10gPSAn0LTQvtCx0LDQstC40YLRjCDQv9Cw0YDQsNC80LXRgtGA0YsgVVJMINC/0YDQuCDQv9C10YDQtdC90LDQv9GA0LDQstC70LXQvdC40LgnOwokbGFuZ1snZXZhbHVhdGVzbWFydHknXSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgU21hcnR5INC00LvRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0L/QsNGA0LDQvNC10YLRgNC+0LInOwokbGFuZ1snZXJyb3JfbG9hZGluZ19tb2R1bGUnXSA9ICc8ZW0+PHN0cm9uZz7QntGI0LjQsdC60LA6PC9zdHJvbmc+INCd0LUg0LzQvtCz0YMg0LfQsNCz0YDRg9C30LjRgtGMINC80L7QtNGD0LvRjCBcJyVzXCcuICjQntC/0YDQtdC00LXQu9C10L3QviDQtNC70Y8g0LHQu9C+0LrQsCBcJyVzXCcg0LIg0LLQsNGI0LXQvCDRiNCw0LHQu9C+0L3QtSDRgdGC0YDQsNC90LjRhtGLLik8L2VtPic7CiRsYW5nWydlcnJvcl9jb250ZW50YmxvY2tfc3VwcG9ydCddID0gJzxlbT48c3Ryb25nPtCe0YjQuNCx0LrQsDo8L3N0cm9uZz4g0JzQvtC00YPQu9GMIFwnJXNcJyDQvdC1INC/0L7QtNC00LXRgNC20LjQstCw0LXRgiDQsdC70L7QutC4INC60L7QvdGC0LXQvdGC0LAuICjQntC/0YDQtdC00LXQu9C10L3QviDQtNC70Y8g0LHQu9C+0LrQsCBcJyVzXCcg0LIg0LLQsNGI0LXQvCDRiNCw0LHQu9C+0L3QtSDRgdGC0YDQsNC90LjRhtGLLik8L2VtPic7CiRsYW5nWydzdWNjZXNzX2ltcG9ydHBhZ2VzJ10gPSAn0JLRgdC1INGB0YLRgNCw0L3QuNGG0Ysg0YLQuNC/0LAgJXMg0YPRgdC/0LXRiNC90L4g0L/RgNC40LLQtdC00LXQvdGLINC6INGC0LjQv9GDICVzJzsKJGxhbmdbJ3Nob3dfYWR2YW5jZWRjb250ZW50X29wdGlvbnMnXSA9ICfQn9C+0LrQsNC30LDRgtGMINCy0LrQu9Cw0LTQutGDINC/0LDRgNCw0LzQtdGC0YDQvtCyIEFkdmFuY2VkQ29udGVudCc7CiRsYW5nWydkaXNwbGF5X3NldHRpbmdzJ10gPSAnJXMgZGlzcGxheSBzZXR0aW5ncyc7CiRsYW5nWydzYXZlX2NvbGxhcHNlX3N0YXR1cyddID0gJ9Ch0L7RhdGA0LDQvdC40YLRjCDRgdGC0LDRgtGD0YEgY29sbHBhc2Ug0LTQu9GPICVzJzsKJGxhbmdbJ2NvbnRlbnRfYmxvY2tzJ10gPSAn0LHQu9C+0LrQuCDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+JzsKJGxhbmdbJ2Jsb2NrX21lc3NhZ2UnXSA9ICfRgdC+0LTQtdGA0LbQuNC80L7QtSDQsdC70L7QutCwINGB0L7QvtCx0YnQtdC90LjRjyc7CiRsYW5nWydibG9ja19ncm91cHMnXSA9ICfQsdC70L7QuiDQs9GA0YPQv9C/JzsKJGxhbmdbJ2NvbGxhcHNlX2RlZmF1bHQnXSA9ICdDb2xsYXBzZSAlcyDQv9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWydwZXJfcGFnZSddID0gJ9C90LAg0YHRgtGA0LDQvdC40YbRgyc7CiRsYW5nWydwZXJfdGVtcGxhdGUnXSA9ICfQvdCwINGI0LDQsdC70L7QvSc7CiRsYW5nWydib3RoMSddID0gJ3RlbXBsYXRlIE9SIHBhZ2UgJzsKJGxhbmdbJ2JvdGgyJ10gPSAndGVtcGxhdGUgQU5EIHBhZ2UnOwokbGFuZ1snY29udGVudCddID0gJ9Ch0L7QtNC10YDQttC40LzQvtC1JzsKJGxhbmdbJ2NvbnRlbnQyJ10gPSAn0KDQsNGB0YjQuNGA0LXQvdC90L7QtSDRgdC+0LTQtdGA0LbQuNC80L7QtSc7CiRsYW5nWydwcmVmcyddID0gJ9Cd0LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWydtdWx0aV9pbnB1dCddID0gJ011bHRpIElucHV0cyc7CiRsYW5nWydtdWx0aV9pbnB1dF90cGwnXSA9ICdNdWx0aSBJbnB1dCBUZW1wbGF0ZXMnOwokbGFuZ1snYWRkX211bHRpX2lucHV0J10gPSAnQWRkIG5ldyBtdWx0aSBpbnB1dCc7CiRsYW5nWydhZGRfbXVsdGlfaW5wdXRfdHBsJ10gPSAnQWRkIG5ldyBtdWx0aSBpbnB1dCB0ZW1wbGF0ZSc7CiRsYW5nWydpbnB1dF9pZCddID0gJ0lucHV0IElEJzsKJGxhbmdbJ2lucHV0X2ZpZWxkcyddID0gJ9Cf0L7Qu9GPINCy0LLQvtC00LAnOwokbGFuZ1sndHBsX25hbWUnXSA9ICfQmNC80Y8g0YjQsNCx0LvQvtC90LAnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LjQvNC10LXRgiDQvdC10L7QsdGF0L7QtNC40LzRi9C1INC/0L7Qu9GPINC4INC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQv9GD0YHRgtGL0LwnOwokbGFuZ1snZXJyb3JfaW5wdXRfZmllbGRzJ10gPSAnSW5wdXQgZmllbGRzIGlzIGEgcmVxdWlyZWQgZmllbGQgYW5kIG1heSBub3QgYmUgZW1wdHkuJzsKJGxhbmdbJ2Vycm9yX2lucHV0X2lkJ10gPSAnTm8gaW5wdXQgaWQgZ2l2ZW4gb3IgaW5wdXQgaWQgYWxyZWFkeSBleGlzdHMuJzsKJGxhbmdbJ2Vycm9yX2lucHV0X2lkX2V4aXN0cyddID0gJ0lucHV0IElEIGlzIGFscmVhZHkgaW4gdXNlLiBDaG9vc2UgYSBkaWZmZXJlbnQgb25lLiAobXVzdCBiZSB1bmlxdWUpJzsKJGxhbmdbJ211bHRpX2lucHV0X2FkZGVkJ10gPSAnTXVsdGkgSW5wdXQgYWRkZWQuJzsKJGxhbmdbJ211bHRpX2lucHV0X2RlbGV0ZWQnXSA9ICdNdWx0aSBJbnB1dCBkZWxldGVkLic7CiRsYW5nWydtdWx0aV9pbnB1dF91cGRhdGVkJ10gPSAnTXVsdGkgSW5wdXQgdXBkYXRlZC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsX2FkZGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgYWRkZWQuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF91cGRhdGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgdXBkYXRlZC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsX2RlbGV0ZWQnXSA9ICdNdWx0aSBJbnB1dCB0ZW1wbGF0ZSBkZWxldGVkLic7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICfQo9C00LDQu9C40YLRjCDQstGL0LHRgNCw0L3QvdGL0LUg0Y3Qu9C10LzQtdC90YLRiyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZSddID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YXQvtGC0LjRgtC1INGB0LTQtdC70LDRgtGMINGD0LTQsNC70LjRgtGMINGN0YLQvtGCINGN0LvQtdC80LXQvdGCPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9zZWxlY3RlZCddID0gJ9CS0Ysg0LTQtdC50YHRgtCy0LjRgtC10LvRjNC90L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMINCy0YvQsdGA0LDQvdC90YvQtSDRjdC70LXQvNC10L3RgtGLPyc7CiRsYW5nWyd1c2VfY29udGVudHR5cGUnXSA9ICfQmNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgY29udGVudHR5cGUnOwokbGFuZ1snaGVscF90cGxfdmFycyddID0gJzxwPjxzdHJvbmc+VGVtcGxhdGUgdmFyczo8L3N0cm9uZz48L3A+DQo8cD48cHJlPjxjb2RlPnskaW5wdXRzfTwvY29kZT48L3ByZT4gaXMgYW4gYXJyYXkgdGhhdCBjb250YWlucyBhbGwgZGVmaW5lZCBpbnB1dCBlbGVtZW50cyBvZiB0aGF0IG11bHRpIGlucHV0IGJsb2NrLjxiciAvPg0KRWFjaCBpbnB1dCBlbGVtZW50IGlzIGFuIGFycmF5IHRoYXQgY29udGFpbnMgYWxsIGl0cyBwYXJhbXMuIDxiciAvPg0KU2VlIG1vZHVsZSBoZWxwIGZvciBtb3JlIGluZm8uPGJyIC8+DQpBZGRpdGlvbmFsIHBhcmFtIGlzICJpbnB1dCIgdGhhdCB3aWxsIHByaW50IG91dCB0aGUgaW5wdXQgZWxlbWVudC48YnIgLz4NClRvIGFjY2VzcyB0aGUgcGFyYW1zIHVzZSB0aGUgZG90IHN5bnRheC48YnIgLz4NCkV4YW1wbGU6PC9wPg0KPHByZT48Y29kZT57Zm9yZWFjaCBmcm9tPSRpbnB1dHMgaXRlbT1lbG19DQoJeyRlbG0ubGFiZWx9OiZuYnNwO3skZWxtLmlucHV0fTxiciAvPg0Key9mb3JlYWNofTwvY29kZT48L3ByZT4gJzsKJGxhbmdbJ2hlbHAnXSA9ICc8YnIgLz4NCjxoMz5XaGF0IGRvZXMgdGhpcyBkbz88L2gzPg0KPHA+VGhpcyBpcyBhIG1vZGlmaWNhdGlvbiBvZiB0aGUgZGVmYXVsdCBjb250ZW50IHR5cGUgIkNvbnRlbnQiIG9mIENNU21zLjxiciAvPg0KSXQgcHJvdmlkZXMgbW9yZSBmbGV4aWJpbGl0eSBieSBjcmVhdGluZyBjdXN0b20gaW5wdXQgY29udHJvbHMgaW4gYmFja2VuZC48YnIgLz4NClVzZXJzIGNhbiBhZGQgZHJvcGRvd25zLCBtdWx0aXBsZSBzZWxlY3QgbGlzdHMsIGNoZWNrYm94ZXMsIGdyb3VwIGNvbnRlbnQgYmxvY2tzIA0KaW4gc2VwYXJhdGUgcGFnZSB0YWJzLCBibG9jayB0YWJzIGluc2lkZSBhIHBhZ2UgdGFiIG9yIGluIGZpZWxkc2V0cyBieSBqdXN0IA0KdXNpbmcgYWRkaXRpb25hbCBwYXJhbXMgaW4gdGhlIHRlbXBsYXRlIHdoZW4gY2FsbGluZyB0aGUgY29udGVudC48YnIgLz4NCkl0IGFsc28gYWRkcyBhYmlsaXR5IHRvIGdyYW50IGFjY2VzcyBvZiBwYWdlcyB0byBjZXJ0YWluIHVzZXJzIG9mIHRoZSANCkZyb250RW5kVXNlcnMgbW9kdWxlIGFuZCBoaWRlIHRoZSBjb250ZW50LCByZXBsYWNlIGl0IGJ5IHRoZSBsb2dpbiBmb3JtIG9mIHRoZSANCkZyb250RW5kVXNlcnMgbW9kdWxlIG9yIHJlZGlyZWN0IHRvIGEgc3BlY2lmaWVkIHBhZ2Ugc2hvd2luZyB0aGUgbG9naW4gZm9ybSBvciANCmp1c3QgcmVkaXJlY3Qgd2l0aG91dCBkb2luZyBhbnl0aGluZyBlbHNlLjxiciAvPg0KUGFnZSBwcm9wZXJ0eSBvZiBGcm9udEVuZFVzZXJzIGFjY2VzcyBhbmQgcmVkaXJlY3QgcGFnZSBjYW4gYmUgaW5oZXJpdGVkIGJ5IA0KcGFyZW50IHBhZ2VzLjwvcD4NCjxwPjxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVG8gZ2V0IHRoZSBmdWxsIGZ1bmN0aW9uYWxpdHkgb2YgdGhpcyBjb250ZW50IHR5cGUgDQppbiBmcm9udGVuZCB5b3UgbmVlZCB0byBjYWxsIHlvdXIgY29udGVudCB3aXRoIHRoZSBtb2R1bGUgcGx1Z2luIHtBZHZhbmNlZENvbnRlbnR9IA0KKGNhc2Ugc2Vuc2l0aXZlISkuPGJyIC8+DQpPdGhlcndpc2UgaXQgbWF5IGJlaGF2ZSBsaWtlIHRoZSBkZWZhdWx0IGNvbnRlbnQgdHlwZSBwbHVnaW4uPC9lbT48L3A+DQo8cD5Zb3UgY2FuIGV2ZW4gdXNlIHNtYXJ0eSBsb2dpYyBpbiBwYXJhbWV0ZXIgdmFsdWVzLiBUaGF0IG1lYW5zIHlvdSBjYW4gdXNlIHRoZSANCnJlc3VsdCBvZiBhIHBsdWdpbiwgYW4gdWR0IG9yIGV2ZW4gYSBtb2R1bGUgb3IganVzdCB0aGUgY29udGVudCBvZiBhIGdsb2JhbCANCmNvbnRlbnQgYmxvY2sgYXMgcGFyYW1ldGVyIHZhbHVlIHRvIGNyZWF0ZSBkeW5hbWljIHZhbHVlcy48L3A+DQo8aDM+SG93IGlzIGl0IHVzZWQ/PC9oMz4NCjxwPkFmdGVyIGluc3RhbGxhdGlvbiB0aGUgbW9kdWxlIHNldHRpbmdzIGNhbiBiZSBmb3VuZCBpbiAiRXh0ZW5zaW9ucy0+QWR2YW5jZWRDb250ZW50Ii48L3A+DQo8cD5BZGRpdGlvbmFsbHkgeW91IHdpbGwgaGF2ZSBhIG5ldyBjb250ZW50IHR5cGUgIkFkdmFuY2VkQ29udGVudCIgYXZhaWxhYmxlIA0Kd2hlbiBhZGRpbmcvZWRpdGluZyBhIHBhZ2UuPGJyIC8+DQo8cD5BZGQgdGhlIGZvbGxvd2luZyBwYXJhbXMgdG8geW91ciBjb250ZW50IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUsIA0KY2hhbmdlIHRoZSBjb250ZW50IHR5cGUgb2YgeW91ciBwYWdlIHRvICJBZHZhbmNlZENvbnRlbnQiIGFuZCBzZWUgd2hhdCBoYXBwZW5zIA0KaW4gYmFja2VuZC4uLjwvcD4NCjxoMz5XaGF0IHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZT88L2gzPg0KPHA+YWxsIHBhcmFtcyBhcmUgb3B0aW9uYWw8L3A+DQo8cD48c3Ryb25nPkRlZmF1bHQgcGFyYW1zOjwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUFsbG93cyB5b3UgdG8gaGF2ZSBtb3JlIHRoYW4gb25lIGNvbnRlbnQgYmxvY2sgcGVyIHBhZ2UuIElmIG11bHRpcGxlIGNvbnRlbnQgdGFncyBhcmUgcHV0IG9uIGEgdGVtcGxhdGUsIHRoYXQgbnVtYmVyIG9mIGVkaXQgYm94ZXMgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgdGhlIHBhZ2UgaXMgZWRpdGVkLjxiciAvPg0KCQkJCWUuZy46IDxjb2RlPntjb250ZW50IGJsb2NrPSJTZWNvbmQgQ29udGVudCBibG9jayJ9PC9jb2RlPjxiciAvPg0KCQkJCU5vdywgaWYgeW91IGVkaXQgYSBwYWdlIHRoZXJlIHdpbGwgYmEgYSB0ZXh0YXJlYSBjYWxsZWQgIlNlY29uZCBDb250ZW50IGJsb2NrIi48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrIG1heSBjb250YWluIG9ubHkgbGV0dGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIChubyB3aGl0ZXNwYWNlcywgc3BlY2lhbCBjaGFycywgdW1sYXV0cyBldGMuKS4gT3RoZXJ3aXNlIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGEgcHJvcGVyIG5hbWUgKHNpbWlsYXIgdG8gdGhlIHBhZ2UgYWxpYXMpLjwvZW0+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+d3lzaXd5ZzwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+SWYgc2V0IHRvIGZhbHNlLCB0aGVuIGEgd3lzaXd5ZyB3aWxsIG5ldmVyIGJlIHVzZWQgd2hpbGUgZWRpdGluZyB0aGlzIGJsb2NrLiBJZiB0cnVlLCB0aGVuIGl0IGFjdHMgYXMgbm9ybWFsLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5vbmVsaW5lPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT5JZiBzZXQgdG8gdHJ1ZSwgdGhlbiBvbmx5IG9uZSBlZGl0IGxpbmUgd2lsbCBiZSBzaG93biB3aGlsZSBlZGl0aW5nIHRoaXMgYmxvY2suIElmIGZhbHNlLCB0aGVuIGl0IGFjdHMgYXMgbm9ybWFsLiBPbmx5IHdvcmtzIHdoZW4gYmxvY2sgcGFyYW1ldGVyIGlzIHVzZWQuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+RGVmYXVsdCBjb250ZW50IHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZS48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+bGFiZWw8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+UHJvbXB0IGZvciB0aGlzIGNvbnRlbnQgYmxvY2suIFBvc3NpYmxlIHZhbHVlcyBhcmUgYW55IGV4cHJlc3Npb24uIElmIGJsYW5rLCB0aGUgdW5jb252ZXJ0ZWQgYmxvY2sgbmFtZSBpcyB1c2VkLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hc3NpZ248L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQXNzaWducyB0aGUgY29udGVudCB0byBhIHNtYXJ0eSBwYXJhbWV0ZXIsIHdoaWNoIHlvdSBjYW4gdGhlbiB1c2UgaW4gb3RoZXIgYXJlYXMgb2YgdGhlIHBhZ2UsIG9yIHVzZSB0byB0ZXN0IHdoZXRoZXIgY29udGVudCBleGlzdHMgaW4gaXQgb3Igbm90LjxiciAvPg0KCQkJCUV4YW1wbGUgb2YgcGFzc2luZyBwYWdlIGNvbnRlbnQgdG8gYSBVc2VyIERlZmluZWQgVGFnIGFzIGEgcGFyYW1ldGVyOjxiciAvPg0KCQkJCTxjb2RlPntjb250ZW50IGFzc2lnbj1wYWdlY29udGVudH08YnIgLz4NCgkJCQl7dGFibGVfb2ZfY29udGVudHMgdGhlcGFnZWNvbnRlbnQ9IiRwYWdlY29udGVudCJ9PC9jb2RlPjxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gRm9yIHNvbWUgcmVhc29uIHRoaXMgcGFyYW0gZG9lcyBub3Qgd29yayBhdCB0aGUgbW9tZW50IHdpdGggdGhlIG1vZHVsZSBwbHVnaW4ge0F2YW5jZWRDb250ZW50fS4gVXNlIDxiciAvPjxjb2RlPntjYXB0dXJlIGFzc2lnbj0iZm9vIn17QWR2YW5jZWRDb250ZW50fXsvY2FwdHVyZX08L2NvZGU+IDxiciAvPmluc3RlYWQuPC9lbT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5BZHZhbmNlZCBwYXJhbXM6PC9zdHJvbmc+PC9wPg0KPHVsPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YmxvY2tfdHlwZTwvdHQ+ICh0ZXh0LGNoZWNrYm94LGRyb3Bkb3duLHNlbGVjdF9tdWx0aXBsZSxkYXRlLG11bHRpX2lucHV0KSANCgkJPHVsPg0KCQkJPGxpPkFsbG93cyB5b3UgdG8gc3BlY2lmeSB3aGF0IGNvbnRlbnQgY29udHJvbCB0eXBlIGlzIHVzZWQgaW4gdGhlIGJhY2sgZW5kLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5wYWdlX3RhYjwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGlzIHBhcmFtZXRlciBzZXRzIHRoZSB0YWIgaW4gd2hpY2ggdGhlIGNvbnRlbnQgYmxvY2sgaXMgZGlzcGxheWVkIGluIHRoZSBiYWNrZW5kLjxiciAvPg0KCQkJCVBvc3NpYmxlIHZhbHVlcyBhcmUgIm1haW4iICggPSBUYWIgIk1haW4gTWVudSIpLCAib3B0aW9ucyIgKCA9IFRhYiAiT3B0aW9ucyIpLCBvciBhbnkgb3RoZXIgYXJiaXRyYXJ5IHZhbHVlPGJyIC8+DQoJCQkJPGVtPmUuZy4geW91IGNhbiBhZGQgYSBjaGVja2JveCB0byB0aGUgb3B0aW9ucyB0YWIgb3IgY3JlYXRlIG5ldyB0YWJzPC9lbT4uDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YmxvY2tfdGFiPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPldpdGggdGhpcyBwYXJhbWV0ZXIsIHRoZSBibG9ja3Mgd2l0aGluIGEgcGFnZSB0YWIgY2FuIGJlIGZ1cnRoZXIgZGl2aWRlZCBpbnRvIHRhYnMgb3IgY2FuIGJlIGdyb3VwZWQgdG9nZXRoZXIuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX2dyb3VwPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPldpdGggdGhpcyBwYXJhbWV0ZXIsIG11bHRpcGxlIGJsb2NrcyBjYW4gYmUgZ3JvdXBlZCBpbiBhIGZpZWxkc2V0LiBBbnkgZXhwcmVzc2lvbiBjYW4gYmUgdXNlZCBhcyBhIHBvc3NpYmxlIHZhbHVlLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hY3RpdmU8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUFsbG93cyB5b3UgdG8gZGlzYWJsZSBhIGNvbnRlbnQgYmxvY2suIERpc2FibGVkIGNvbnRlbnQgYmxvY2tzIHdvblwndCBiZSBzaG93biBpbiBiYWNrZW5kIGFzIHdlbGwgYXMgaW4gZnJvbnRlbmQuIChvbmx5IHdvcmtzIHdpdGgge0FkdmFuY2VkQ29udGVudH0gcGx1Z2luKTxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmVkaXRvcl9ncm91cHM8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cCBuYW1lcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGVkaXQgdGhpcyBibG9jay4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lZGl0b3JfdXNlcnM8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB1c2VyIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZWRpdCB0aGlzIGJsb2NrLg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHRoZSBwYXJhbXMgPHR0PmVkaXRvcl91c2VyczwvdHQ+IGFuZCA8dHQ+ZWRpdG9yX2dyb3VwczwvdHQ+IGFyZSBlbXB0eSB0aGUgYmxvY2sgbWF5IGJlIGVkaXRlZCBieSBhbnkgdXNlciB3aXRoIHN1ZmZpY2llbnQgcGVybWlzc2lvbiB0byBlZGl0IGEgcGFnZTwvZW0+PGJyIC8+PGJyIC8+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5mZXVfYWNjZXNzPC90dD4NCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUEgbGlzdCBvZiBmZXUgZ3JvdXAgaWRzIHNlcGFyYXRlZCBieSBhIGNvbW1hLjxiciAvPg0KCQkJCVRoaXMgc2hvd3MgdGhlIGNvbnRlbnQgYmxvY2sgb25seSB0byBjZXJ0YWluIGZldSBncm91cHMuPGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjdGlvbjwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJU3BlY2lmeSBpZiB0aGUgbG9naW4gZm9ybSBvZiB0aGUgZmV1IG1vZHVsZSB3aWxsIGJlIHNob3duIG9yIG5vdC48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFRoZSBsb2dpbiBmb3JtIHdpbGwgb25seSBiZSBzaG93biBvbmUgdGltZS48YnIgLz4NCgkJCQlJZiB0aGVyZSBhcmUgbXVsdGlwbGUgYmxvY2tzIHdpdGggbGltaXRlZCBmZXVfYWNjZXNzIGFuZCBmZXVfYWN0aW9uIHNldCB0byB0cnVlIG9ubHkgdGhlIGZpcnN0IGJsb2NrcyBsb2dpbiBmb3JtIHdpbGwgYmUgc2hvd24gYW5kIGFsbCBvdGhlciBibG9ja3Mgd2lsbCBqdXN0IGJlIGVtcHR5LjwvZW0+PGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YWxsb3dfbm9uZTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+U2V0IHRvIHRydWUgaWYgdGhlIHVzZXIgbWF5IGVudGVyIGVtcHR5IHZhbHVlcy4gPGJyIC8+SWYgc2V0IHRvIGZhbHNlIGFuZCB2YWx1ZSBpcyBlbXB0eSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgcGFyYW0gImRlZmF1bHQiIHdpbGwgYmUgdXNlZC4gPGJyIC8+SWYgc2V0IHRvIHRydWUgYW5kIGJsb2NrIGlzIG9mIHR5cGUgaW1hZ2UvZmlsZSB0aGUgb3B0aW9uICJub25lIiAobW9kZT0iZHJvcGRvd24iKSBvciBhIGJ1dHRvbiB0byBjbGVhciB0aGUgc2VsZWN0ZWQgZmlsZS9pbWFnZSB2YWx1ZSAobW9kZT0iZmlsZXBpY2tlciIpIHdpbGwgYmUgZGlzcGxheWVkLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zbWFydHk8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVR1cm4gc21hcnR5IHByb2Nlc3Npbmcgb2YgdmFsdWVzIG9uL29mZi48YnIgLz4NCgkJCQlJZiBzZXQgdG8gdHJ1ZSBhbnkgZ2l2ZW4gdmFsdWUgd2lsbCBiZSBwcm9jZXNzZWQgYnkgdGhlIHNtYXJ0eSBlbmdpbmUuPGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOiA8L3N0cm9uZz4gQ29uc2lkZXIgdGhhdCB5b3UgY2Fubm90IHVzZSB0aGUgZGVmYXVsdCBzbWFydHkgZGVsaW1pdGVycyB0aGF0IGFyZSB1c2VkIGluIHRoZSB0ZW1wbGF0ZS4gVGhpcyB3aWxsIGNhdXNlIHNtYXJ0eSBlcnJvcnMgaW4gZnJvbnRlbmQuPGJyIC8+DQoJCQkJU28geW91IG5lZWQgdG8gdXNlIDo6OiBhcyBkZWxpbWl0ZXIgaW5zdGVhZC48YnIgLz48L2VtPg0KCQkJCUUuZy46IDxjb2RlPntjb250ZW50IGJsb2NrPSJDYXRlZ29yaWVzIiBsYWJlbD0iU2VsZWN0IGEgY2F0ZWdvcnkiIGJsb2NrX3R5cGU9ImRyb3Bkb3duIiBpdGVtcz0iOjo6Z2xvYmFsX2NvbnRlbnQgbmFtZT1cJ2NhdGVnb3J5bGlzdFwnOjo6IiBzbWFydHk9InRydWUifTwvY29kZT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZXNjcmlwdGlvbjwvdHQ+IChzdHJpbmcpIA0KCQk8dWw+DQoJCQk8bGk+QWxsb3dzIHlvdSB0byBhZGQgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiB0byB0aGF0IGJsb2NrIGZvciB5b3VyIGVkaXRvcnMuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmNvbGxhcHNlPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gdHJ1ZS9mYWxzZSB0byBkaXNwbGF5IGJsb2NrIGluIGJhY2tlbmQgaW4gY29sbGFwc2VkL2V4cGFuZGVkIG1vZGUgYnkgZGVmYXVsdC48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IHdpbGwgYmUgYWx3YXlzIGZhbHNlIGlmIG5vX2NvbGxhcHNlPXRydWUgaXMgdXNlZC48L2VtPjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pm5vX2NvbGxhcHNlPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gZmFsc2UgdG8gZGlzYWJsZSBmb2xkaW5nIG9mIGJsb2Nrcy48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHNldCB0byB0cnVlIHBhcmFtIGNvbGxhcHNlIGlzIGFsd2F5cyBmYWxzZS48L2VtPjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnJlcXVpcmVkPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gdHJ1ZSBpZiB0aGlzIGJsb2NrIG1heSBub3QgYmUgZW1wdHkuPGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAiY2hlY2tib3giOjwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAodHJ1ZS9mYWxzZSkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQljaGVja3MvdW5jaGVja3MgdGhlIGNoZWNrYm94IGJ5IGRlZmF1bHQgd2hlbiBhZGRpbmcgYSBwYWdlPGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBVc2UgIjEiIGZvciBjaGVja2VkIGFuZCAiMCIgZm9yIHVuY2hlY2tlZCBieSBkZWZhdWx0PGJyIC8+PC9lbT4NCgkJCQlFLmcuIDxjb2RlPntjb250ZW50IGJsb2NrX3R5cGU9ImNoZWNrYm94IiBkZWZhdWx0PTF9PC9jb2RlPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCjwvdWw+DQo8cD48c3Ryb25nPlBhcmFtcyBvZiBibG9ja3R5cGUgImRyb3Bkb3duIi8ic2VsZWN0X211bHRpcGxlIjo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pdGVtczwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT5JdGVtIGxhYmVsKHMpIG9mIHRoZSBmaWVsZChzKSAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVzPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPlZhbHVlKHMpIG9mIHRoZSBpdGVtcyAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gaWYgdGhlcmUgYXJlIGxlc3MgdmFsdWVzIHRoYW4gaXRlbXMgdGhlIGl0ZW0gbGFiZWxzIHdpbGwgYmUgdXNlZCBhcyB2YWx1ZXMgKGFuZCB2aXNlIHZlcnNhKS48L2VtPjxiciAvPjxiciAvPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVmYXVsdDwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlQcmVzZWxlY3RlZCB2YWx1ZShzKSAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8YnIgLz4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWxpbWl0ZXI8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+QSBzaWduIG9yIHN0cmluZyB0aGF0IHdpbGwgYmUgdXNlZCB0byBkZXZpZGUgdGhlIGl0ZW1zL3ZhbHVlcyAoZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zaXplPC90dD4gKGludGVnZXIpDQoJCTx1bD4NCgkJCTxsaT5IZWlnaHQgb2YgY29udGVudCBibG9jayBpbiBiYWNrIGVuZCBpZiA8Y29kZT5ibG9ja190eXBlPSJzZWxlY3RfbXVsdGlwbGUiPC9jb2RlPiBpcyBzZXQuIDxlbT4oRGVmYXVsdCBpcyBudW1iZXIgb2YgaXRlbXMpPC9lbT48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zb3J0YWJsZV9pdGVtczwvdHQ+ICh0cnVlL2ZhbHNlKSAtIHNlbGVjdF9tdWx0aXBsZSBvbmx5DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlJZiBzZXQgdG8gdHJ1ZSB0aGUgaXRlbXMgd29uXCd0IGJlIHNob3duIGFzIGEgbXVsdGlwbGUgc2VsZWN0IGlucHV0IHdpdGggb3B0aW9ucyBidXQgYXMgYSBsaXN0IG9mIGNoZWNrYm94ZXMgdGhhdCBjYW4gYmUgcmVvcmRlcmVkLjxiciAvPkVhY2ggcm93IGNvbnRhaW5zIHRoZSBpdGVtIGxhYmVsIGFuZCBhIGNoZWNrYm94IHdpdGggdGhlIGl0ZW0gdmFsdWUuPGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBvbmx5IHRoZSBvcmRlciBvZiB0aGUgPHN0cm9uZz5zZWxlY3RlZDwvc3Ryb25nPiBpdGVtcyB3aWxsIGJlIHN0b3JlZCBhbmQgYWx3YXlzIGRpc3BsYXllZCBvbiB0aGUgdG9wIG9mIHRoZSBsaXN0IHdoZW4gcmVsb2FkaW5nIHRoZSBlZGl0IHBhZ2UuPGJyIC8+DQoJCQkJVW5zZWxlY3RlZCBpdGVtcyB3aWxsIGFwcGVuZGVkIGluIHRoYXQgb3JkZXIgdGhleSBhcmUgZGVmaW5lZCBpbiB0aGUgdGVtcGxhdGU8L2VtPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCjwvdWw+DQo8cD48c3Ryb25nPlBhcmFtcyBvZiBibG9ja3R5cGUgImRhdGUiOjwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXBfaG91cnM8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXN0ZXBzIG9mIGhvdXJzIGluIHRoZSBjbG9jayBkcm9wZG93bi4gKGRlZmF1bHQgaXMgMSkNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGFydF9ob3VyPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQl0aGUgc3RhcnQgaG91ciBvZiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDApDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZW5kX2hvdXI8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXRoZSBlbmQgaG91ciBvZiB0aGUgY2xvY2sgZHJvcGRvd24gKGRlZmF1bHQgaXMgMTIgb3IgMjMpDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2hvdzI0aDwvdHQ+ICh0cnVlL2ZhbHNlKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXNldCB0byBmYWxzZSBpZiBBTS9QTSBpcyB1c2VkLiAoZGVmYXVsdCBpcyB0cnVlKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXBfbWludXRlczwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJc3RlcHMgb2YgbWludXRlcyBpbiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDEwKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0YXJ0X21pbnV0ZTwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJdGhlIHN0YXJ0IG1pbnV0ZSBvZiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDApDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lbmRfbWludXRlPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQl0aGUgZW5kIG1pbnV0ZSBvZiB0aGUgY2xvY2sgZHJvcGRvd24gKGRlZmF1bHQgaXMgNTkpDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2hvd19jbG9jazwvdHQ+ICh0cnVlL2ZhbHNlKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXNldCB0byBmYWxzZSBpZiBubyB0aW1lIGRyb3Bkb3duIHNob3VsZCBiZSBkaXNwbGF5ZWQgKGRlZmF1bHQgaXMgdHJ1ZSk8YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IElmIHNldCB0byBmYWxzZSAwMDowMCBvXCdjbG9jayB3aWxsIGJlIHVzZWQ8L2VtPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRhdGVfZm9ybWF0PC90dD4gKHN0cmluZykgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGUgc3RyZnRpbWUgZGF0ZSBmb3JtYXQgdG8gc2hvdyBpbiBmcm9udGVuZC4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICJtdWx0aV9pbnB1dCI6PC9zdHJvbmc+PC9wPg0KPHVsPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+aW5wdXRzPC90dD4gKGNzdiBvZiBpbnB1dCBpZHMgeW91IGNyZWF0ZWQgaW4gdGhlIGJhY2tlbmQpIA0KCQk8YnIgLz48YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVfZGVsaW1pdGVyPC90dD4gKGFueSBzdHJpbmcpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVGhpcyBkZWZpbmVzIGEgc3RyaW5nIHRoYXQgZGV2aWRlcyB0aGUgdmFsdWVzIG9mIHRoZSBpbnB1dHMgb2Ygb25lIG11bHRpX2lucHV0IHdoZW4gc3RvcmVkIGluIHRoZSBkYXRhYmFzZS48YnIgLz4NCgkJCQlEZWZhdWx0IGlzICI8IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGxpbWl0ZXIgLS0+Ig0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmlucHV0X2RlbGltaXRlcjwvdHQ+IChhbnkgc3RyaW5nKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRoaXMgZGVmaW5lcyBhIHN0cmluZyB0aGF0IGRldmlkZXMgdGhlIG11bHRpX2lucHV0cyB5b3UgZGVmaW5lZCBmb3IgdGhpcyBjb250ZW50IGJsb2NrIHdoZW4gc3RvcmVkIGluIHRoZSBkYXRhYmFzZS48YnIgLz4NCgkJCQlEZWZhdWx0IGlzICI8IS0tIG11bHRpX2lucHV0X2RlbGxpbWl0ZXIgLS0+Ig0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+V2hhdCBpcyBhIG11bHRpX2lucHV0IGZvcj88L3N0cm9uZz48L3A+DQoJCTxwPkEgbXVsdGlfaW5wdXQgYmxvY2sgaXMgYSBjb250ZW50IGJsb2NrIHRoYXQgY29uc2lzdHMgb2YgZGlmZmVyZW50IGlucHV0IGZpZWxkcy4gPGJyIC8+DQoJCVlvdSBjYW4gZGVmaW5lIHRoZW0gaW4gdGhlIG1vZHVsZSBhZG1pbmlzdHJhdGlvbiB1c2luZyB0aGUgc2FtZSBzeW50YXggeW91IHVzZSBpbiBhIHRlbXBsYXRlIHdoZW4gZGVmaW5pbmcgYSBjb250ZW50IGJsb2NrLjxiciAvPg0KCQlNdWx0aSBpbnB1dHMgY2FuIGJlIHVzZWQgaWYgeW91IHdhbnQgdG8gc3RvcmUgZGlmZmVyZW50IHZhbHVlcyBpbiBvbmUgY29udGVudCBibG9jayBhbmQgcHJvdmlkZSBkaWZmZXJlbnQgaW5wdXQgdHlwZXMgZm9yIGVhY2ggdmFsdWVzLjxiciAvPg0KCQlUaGlzIGNhbiBiZSB1c2VmdWxsIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGRyb3Bkb3duIHRvIHNlbGVjdCBhIG1vZHVsZSB0byBiZSBzaG93biBpbiBmcm9udGVuZCBhbmQgdGV4dCBpbnB1dCB0byBkZWZpbmUgdGhlIG1vZHVsZSBwYXJhbWV0ZXJzLjxiciAvPg0KCQlFeGFtcGxlIGZvciBhIG11bHRpX2lucHV0IGluIHBhZ2UgdGVtcGxhdGU6PC9wPg0KCQk8cHJlPg0KCQk8Y29kZT4NCgkJe2NvbnRlbnQgYmxvY2s9Im1vZHVsZSIgbGFiZWw9IlBhZ2UgbW9kdWxlcyIgYmxvY2tfdHlwZT0ibXVsdGlfaW5wdXQiIGlucHV0cz0ibW9kdWxlLG1vZHVsZSxtb2R1bGUsbW9kdWxlIn0NCgkJPC9jb2RlPg0KCQk8L3ByZT4NCgkJPHA+RXhhbXBsZSBmb3IgdGhlIGRlZmluaXRpb24gb2YgdGhlIG11bHRpX2lucHV0IG5hbWVkICJtb2R1bGUiOjwvcD4NCgkJPHByZT4NCgkJPGNvZGU+DQoJCXtjb250ZW50IGJsb2NrPSJtb2R1bGUgc2VsZWN0aW9uIiBibG9ja190eXBlPSJkcm9wZG93biIgaXRlbXM9InxOZXdzfEdhbGxlcnl8TWVudSJ9DQoJCXtjb250ZW50IGJsb2NrPSJtb2R1bGUgcGFyYW1zIiBibG9ja190eXBlPSJ0ZXh0IiBvbmVsaW5lPXRydWV9DQoJCTwvY29kZT4NCgkJPC9wcmU+DQoJCTxwPldoYXQgaGFwcGVucyBpZiB5b3UgZWRpdCBhIHBhZ2U/PC9wPg0KCQk8cD5JdCB3aWxsIHNob3cgeW91IGEgZmllbGRzZXQgd2l0aCBsZWdlbmQgIlBhZ2UgbW9kdWxlcyIuIDxiciAvPg0KCQlJbnNpZGUgdGhpcyBmaWVsZHNldCBpdCBzaG93cyB0aGUgbXVsdGlfaW5wdXQgbmFtZWQgIm1vZHVsZSIgZm91ciB0aW1lcy48YnIgLz4NCgkJVGhhdCBtZWFucyB5b3Ugc2VlIGZvdXIgbGluZXMgd2l0aCB0d28gaW5wdXQgZmllbGRzLiBBIGRyb3Bkb3duIGFuZCBhIHRleHQgaW5wdXQuPC9wPg0KCQk8cD5XaGF0IGhhcHBlbnMgaWYgeW91IHNhdmUgYSBwYWdlPzwvcD4NCgkJPHA+VGhlIG1vZHVsZSBzdG9yZXMgdGhlIHZhbHVlcyBhcyBvbmUgc2luZ2xlIGNvbnRlbnQgcHJvcGVydHkgKGFrYSBjb250ZW50YmxvY2spIGFuZCBzZXBhcmF0ZXMgdGhlIGlucHV0cyBieSBhIGdpdmVuIGRlbGltaXRlci48YnIgLz4NCgkJTGV0XCdzIGFzc3VtZSB5b3Ugc2VsZWN0IHRoZSBOZXdzIG1vZHVsZSBmb3VyIHRpbWVzIHdpdGggZGlmZmVyZW50IG1vZHVsZSBwYXJhbXMgbGlrZSBjYXRlZ29yeT0iMSIsIGNhdGVnb3J5PSIyIiwgY2F0ZWdvcnk9IjMiLCBjYXRlZ29yeT0iNCIuPGJyIC8+DQoJCUluIHRoZSBkYXRhYmFzZSBpdCBzdG9yZXMgdGhpcyBzdHJpbmc6PC9wPg0KCQk8cHJlPg0KCQk8Y29kZT4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSIxIjwhLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tPjxiciAvPg0KCQlOZXdzPCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0+Y2F0ZWdvcnk9IjIiPCEtLSBtdWx0aV9pbnB1dF9kZWxpbWl0ZXIgLS0+PGJyIC8+DQoJCU5ld3M8IS0tIG11bHRpX2lucHV0X3ZhbHVlX2RlbGltaXRlciAtLT5jYXRlZ29yeT0iMyI8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT48YnIgLz4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSI0Ig0KCQk8L2NvZGU+DQoJCTwvcHJlPg0KCQk8cD5JbiB5b3VyIHBhZ2UgdGVtcGxhdGUgeW91IGNhbiBleHBsb2RlIHRoZSBjb250ZW50IGJ5IHRoZSBkZWxpbWl0ZXJzIGFuZCBjYWxsIHRoZSBzZWxlY3RlZCBtb2R1bGVzLjwvcD4NCgkJPHA+RnVsbCBFeGFtcGxlOjwvcD4NCgkJPHByZT4NCgkJPGNvZGU+DQoJCXsqIGRlZmluZSB0aGUgY29udGVudCBibG9jayAqfQ0KCQl7Y29udGVudCBibG9jaz0ibXlfbW9kdWxlcyIgYmxvY2tfdHlwZT0ibXVsdGlfaW5wdXQiIGlucHV0cz0iTW9kdWxlLE1vZHVsZSxNb2R1bGUsTW9kdWxlIiBhc3NpZ249Im1vZHVsZXMifQ0KCQkNCgkJeyogZXhwbG9kZSBibG9jayBjb250ZW50IGluIGFuIGFycmF5IHRvIGdldCB0aGUgaW5wdXQgZ3JvdXBzICp9DQoJCXthc3NpZ24gdmFyPW1vZHVsZXMgdmFsdWU9IjwhLS0gbXVsdGlfaW5wdXRfZGVsaW1pdGVyIC0tPiJ8ZXhwbG9kZTokbW9kdWxlc30NCgkJDQoJCXsqIGxvb3AgdGhyb3VnaCB0aGUgc2VsZWN0ZWQgbW9kdWxlcyAqfQ0KCQl7Zm9yZWFjaCBmcm9tPSRtb2R1bGVzIGl0ZW09Im1vZHVsZSJ9DQoJCQl7aWYgJG1vZHVsZSAhPSBcJ1wnfQ0KCQkJDQoJCQkJeyogZXhwbG9kZSB0aGUgaW5wdXQgdmFsdWVzIGluIG1vZHVsbmFtZSBhbmQgbW9kdWxlIHBhcmFtZXRlcnMgKn0NCgkJCQl7YXNzaWduIHZhcj1tb2R1bGVfaXRlbXMgdmFsdWU9IjwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPiJ8ZXhwbG9kZTokbW9kdWxlfQ0KCQkJCQ0KCQkJCXtpZiRtb2R1bGVfaXRlbXNbMF0gIT0gXCdcJ30NCgkJCQkNCgkJCQkJeyogY2FsbCB0aGUgbW9kdWxlICp9DQoJCQkJCXtpZiBpc3NldCgkbW9kdWxlX2l0ZW1zWzFdKX0NCgkJCQkJCXtldmFsIHZhcj0kc21hcnR5LmxkZWxpbXxjYXQ6XCdjbXNfbW9kdWxlIG1vZHVsZT0iXCd8Y2F0OiRtb2R1bGVfaXRlbXNbMF18Y2F0OlwnIiBcJ3xjYXQ6JG1vZHVsZV9pdGVtc1sxXXxjYXQ6JHNtYXJ0eS5yZGVsaW19DQoJCQkJCXtlbHNlfQ0KCQkJCQkJe2V2YWwgdmFyPSRzbWFydHkubGRlbGltfGNhdDpcJ2Ntc19tb2R1bGUgbW9kdWxlPSJcJ3xjYXQ6JG1vZHVsZV9pdGVtc1swXXxjYXQ6XCciXCd8Y2F0OiRzbWFydHkucmRlbGltfQ0KCQkJCQl7L2lmfQ0KCQkJCQkNCgkJCQl7L2lmfQ0KCQkJCQ0KCQkJey9pZn0NCgkJDQoJCXsvZm9yZWFjaH0NCgkJPC9jb2RlPg0KCQk8L3ByZT4NCgk8L2xpPg0KPC91bD4NCg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KCTxsaT5UaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXMgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jb250ZW50Mi8iPmh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvPC9hPjwvbGk+DQoJPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCjxiciAvPg0KPHA+RmVlbCBmcmVlIHJlcG9ydCBhbnkga2luZCBvZiBmZWVkYmFjay48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPg0KCUFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLjxiciAvPg0KCVRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLDxiciAvPg0KCWJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mPGJyIC8+DQoJTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLjxiciAvPg0KCVNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy48YnIgLz4NCglZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZTxiciAvPg0KCWFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlPGJyIC8+DQoJRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0E8YnIgLz4NCglPciByZWFkIGl0IG9ubGluZTogPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5odHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEw8L2E+PGJyIC8+DQoJUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuDQo8L3A+DQo8cD5Db3B5cmlnaHQgwqkgMjAxMCwgR2VvcmcgQnVzY2ggKE5hTikuIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+DQo8YnIgLz4gJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzxiciAvPg0KPHA+PHN0cm9uZz5Nb2R1bGUgcmVsZWFzZXM8L3N0cm9uZz4uLi48L3A+DQo8dWw+DQoJPGxpPjxwPjxzdHJvbmc+MC43LjEgKE5vdiAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBidWcgaXRlbSAjNTY1MTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY2Nlc3M8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmV1X2FjdGlvbjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSByZXF1aXJlZDwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC43IChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gY29tcGF0aWJpbGl0eSBidWdmaXhlcyBmb3IgQ01TbXMgMS45KyAobmVlZHMgQ01TbXMgMS45IG1pbmltdW0gbm93KTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHN1cHBvcnQgb2Yge2NvbnRlbnRfbW9kdWxlfSB0YWc8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gbm9fY29sbGFwc2U8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNi4yIChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gbWlub3IgYnVnZml4IChzaG93ZWQgdGFicyBvZiBwcmV2aW91cyB0ZW1wbGF0ZSB3aGVuIHRlbXBsYXRlIHdhcyBjaGFuZ2VkKTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC42LjEgKE5vdiAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBzZXZlcmFsIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGNvbXBhdGliaWxpdHkgYnVnZml4ZXMgZm9yIENNU21zIDEuOTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGJsb2NrX3R5cGUgbXVsdGlfaW5wdXQ8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNiAoT2N0IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIHNldmVyYWwgYnVnZml4ZXM8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBibG9ja19ncm91cDwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPk1pc2M6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gUmVtb3ZlZCBmaWxlIHBpY2tlciAoYW5kIGFzc29jaWF0ZWQgYmxvY2tfdHlwZXMgaW1hZ2UvZmlsZSkgLSB1c2UgR0JGaWxlUGlja2VyIGluc3RlYWQuPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjUgKFNlcHQgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPmZpeGVkIGJ1ZyBpdGVtICM1MjkyIChtZW1vcnkgaXNzdWUpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTI1NCAoZGlzYWJsZSB3eXNpd3lnIG5vdCB3b3JraW5nKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUzMTAgKHVybG9ubHkgbm90IHdvcmtpbmcpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTMxMSAoaW1hZ2UgcGF0aHMgbm90IHN0b3JlZCBcJ2NvcnJlY3RseVwnKTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNjEgKEFkZCBzb3J0IHRvIGltYWdlIHR5cGUgLSBub3RpY2UgdGhlIGNoYW5nZSBvZiBwYXJhbSBmaWx0ZXIpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBwYXJhbXMgZXhjbHVkZV9wcmVmaXgsIGluY2x1ZGVfcHJlZml4LCBleGNsdWRlX3N1Zml4LCBpbmNsdWRlX3N1Zml4PC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNTMgKFRleHQgaW5wdXQgdG8gZGVmaW5lIGFkZCBwYXJhbXMgdG8gcmVkaXJlY3QgZnVuY3Rpb24pPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNDAgKERlZmF1bHQgdmFsdWVzIG9mIEFkdmFuY2VkQ29udGVudCBwYWdlIG9wdGlvbnMpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNDEgKHB1dCBGZXVBY2Nlc3MgaW4gQmxvY2t0YWIpPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+TWlzYzo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyBhcmUgc2hvd24gaW4gc2VwYXJhdGUgdGFiPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIEFkZGVkIG5ldyBwZXJtaXNzaW9uIHRvIG1hbmFnZSB0aGUgQWR2YW5jZWRDb250ZW50IG9wdGlvbnMgdGFiPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIHJlbW92ZWQgcGFyYW0gZmlsdGVyICh1c2UgbmV3IHBhcmFtcyBpbnN0ZWFkKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBwYXRoIHRvIGZpbGVzIGFyZSBzdG9yZWQgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIHBhcmFtIGRpciBvZiBibG9jayB0eXBlIGZpbGUvaW1hZ2UgbmVlZHMgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyIG9ubHkgKHRoZXJlIGlzIG5vIGltYWdlIHVwbG9hZHMgZGlyIHVzZWQgYW55bW9yZSk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNC4xIChBdWd1c3QgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gIzUxNTE6IGZpeGVkIHN0eWxlc2hlZXQgaXNzdWUgd2l0aCBleHBhbmQvY29sbGFwc2UgYnV0dG9ucyBvZiBjb250ZW50IGJsb2NrcyBpbiBJRS9TYWZhcmkuPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tICM1MTYyOiBQSFAgd2FybmluZ3MgaWYgYmFja2VuZCB1c2VycyB3aXRob3V0IHBlcm1pc3Npb24gIk1hbmFnZSBBbGwgQWR2YW5jZWRDb250ZW50IEJsb2NrcyIgb3BlbiBhbiBhZHZhbmNlZCBjb250ZW50IHBhZ2UgYW5kIG11bHRpcGxlIGNvbnRlbnQgYmxvY2tzIG9mIHNhbWUgbmFtZSB3ZXJlIHVzZWQgaW4gdGVtcGxhdGUuPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBleHRyYSBmaWVsZHMgY291bGQgbm90IGJlIHVwZGF0ZWQuPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBmZXUgYWNjZXNzIGRpZCBub3Qgd29yay48L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAiZGVsZXRlIiB0byBsZXQgdXNlcnMgZGVsZXRlIGZpbGVzIGV2ZW4gaWYgbm8gcGVybWlzc2lvbiAiTW9kaWZ5IEZpbGVzIjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAiY3JlYXRlX2RpcnMiIHRvIGxldCB1c2VycyBjcmVhdGVfZGlycyBldmVuIGlmIG5vIHBlcm1pc3Npb24gIk1vZGlmeSBGaWxlcyI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgbmV3IGJsb2NrdHlwZSAibm90ZSIgdG8gY3JlYXRlIHNvbWUgc2luZ2xlIG5vdGVzIGZvciB5b3VyIGVkaXRvcnM8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5NaXNjOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIHJlbW92ZWQgZGVwZW5kZW5jeSBvZiBGaWxlTWFuYWdlcjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBibG9jayBvZiB0eXBlIGZpbGUgb3IgaW1hZ2Ugc3RvcmVzIHJlbGF0aXZlIHVybCBub3c8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYmxvY2sgdHlwZSBpbWFnZSBzaG93cyB0aHVtYm5haWwgaW4gYmFja2VuZCBwcmV2aWV3IGluc3RlYWQgb2YgZnVsbCBpbWFnZTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC40IChKdWx5IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkltcG9ydGFudCBub3RpY2U6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gY2hhbmdlZCBwYXJhbSAidHlwZSIgdG8gImJsb2NrX3R5cGUiIHNpbmNlIGl0IGludGVyZmVyZXMgd2l0aCB7Y29udGVudF9tb2R1bGV9IHRhZzwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tICM1MTAxOiBwYWdlX3RhYiAib3B0aW9ucyIgd2FzIHNob3duIHRvIHVzZXJzIHdpdGggbm8gcGVybWlzc2lvbiB0byBlZGl0IHBhZ2Ugb3B0aW9ucyBpZiBhIGNvbnRlbnQgYmxvY2sgd2FzIGFzc2lnbmVkIHRvIHRoYXQgdGFiLjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSAjNTA5NzogbGluayB0byBtaXNzaW5nIGNzcyByZW1vdmVkPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIG1pbWUtdHlwZSBpc3N1ZSAoYWRkZWQgcHJlZmVyZW5jZSB0byB0b2dnbGUgbWltZS10eXBlIHVzYWdlIG9uL29mZik8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgcGF0aCBpc3N1ZSB3aGVyZSB0aHVtYm5haWxzIHdlcmUgbm90IHNob3duPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIGNvbXBhdGliaWxpdHkgd2l0aCBDTVNtcyAxLjg8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gb3RoZXIgbWlub3IgYnVnZml4ZXM8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBNTEUgc3VwcG9ydDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAic2hvd19jbG9jayIgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIHRpbWUgZHJvcGRvd24gb2YgYmxvY2t0eXBlcyAiZGF0ZSIgaW4gYmFja2VuZDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAiZGF0ZV9mb3JtYXQiIHRvIGZvcm1hdCB0aW1lc3RhbXAgb2YgYmxvY2t0eXBlcyAiZGF0ZSIgaW4gZnJvbnRlbmQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gImRlc2NyaXB0aW9uIjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBidWxrIGZ1bmN0aW9uIHRvIHNldCBhbGwgcGFnZXMgdG8gQWR2YW5jZWRDb250ZW50PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGNvbXBhdGliaWxpdHkgd2l0aCB7Y29udGVudF9tb2R1bGV9IHRhZzwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC4zLjQgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gIzUwNDU6IFdoZW4gc3dpdGNoaW5nIGZyb20gQ29udGVudCAtPiBBZHZhbmNlZCBDb250ZW50IGxvdHMgb2YgUEhQIGVycm9yczwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSAjNTA1NjogcGFnZV90YWJzIG5vdCB3b3JraW5nIGZvciB1c2VycyB3aXRob3V0IHBlcm1pc3Npb24gIk1hbmFnZSBBbGwgQ29udGVudCI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gIzUwNzM6IGluY29ycmVjdCBkaXNwbGF5IG9mIGZpbGVzIHdoZW4gb3BlbmluZyBmaWxlcGlja2VyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIG1pbm9yIGJ1ZyB3aGVyZSB0aGUgb3B0aW9uICJhbGxvd19ub25lIiBvZiBjb250ZW50IGJsb2NrcyBvZiB0eXBlIGltYWdlL2ZpbGUgd2FzIG5vdCBzaG93biB3aGVuIHRlbXBsYXRlIGhhcyBiZWVuIGVkaXRlZDwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGZpbGVtYW5hZ2VtZW50IGFuZCB1cGxvYWQgZnVuY3Rpb25zIHRvIGNvbnRlbnQgYmxvY2tzIG9mIHR5cGUgaW1hZ2UvZmlsZTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBicmVhZGN1bWJzIHRvIGZpbGVwaWNrZXI8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRtaW5zIG1heSBicm93c2UgdGhlIGVudGlyZSBkaXIgdHJlZSBpbiBmaWxlcGlja2VyIGZpbGUgYnJvd3NlciByZWdhcmRsZXNzIG9mIHRlbXBsYXRlIHBhcmFtczwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBtaW1lIHR5cGUgY2hlY2tpbmcgdG8gZ2V0IGZpbGUgdHlwZTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCByYXd1cmxlbmNvZGUgaW4gc3JjIGF0dHJpYnMgdG8gZGlzcGxheSBpbWFnZXMgd2l0aCB3ZWlyZCBmaWxlbmFtZXMuPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+bWlzY2VsbGFuZW91czo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSByZW1vdmVkIE9PUCBzdHVmZiAocHJpdmF0ZS9wdWJsaWMvcHJvdGVjdGVkKSB0byBnYWluIG1vcmUgY29tcGF0aWJpbGl0eSB3aXRoIFBIUDQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gY2hhbmdlZCBhamF4IGZ1bmN0aW9ucyB0byByZXR1cm4geG1sIHZhbHVlczwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSByZW1vdmVkIHVzYWdlIG9mIEltYWdlTWFuYWdlciBvbmNlIGFuZCBmb3IgYWxsLiAoY2F1c2VkIG9ubHkgdHJvdWJsZSk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuMy4zIChKdW5lIDIwMTApOjwvc3Ryb25nPjwvcD4NCgk8dWw+DQoJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQk8dWw+DQoJCQkJPGxpPjxwPi0gYWxpYXMgd2FzIG5vdCBhbHdheXMgY29udmVydGVkIHByb3Blcmx5PC9wPjwvbGk+DQoJCQkJPGxpPjxwPi0gdW5zdWJtaXR0ZWQgY29udGVudCBnb3QgbG9zdCBpZiBzd2l0Y2hpbmcgZnJvbSBDb250ZW50IHRvIEFkdmFuY2VkQ29udGVudDwvcD48L2xpPg0KCQkJPC91bD4NCgkJPC9saT4NCgkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCTx1bD4NCgkJCQk8bGk+PHA+LSBhZGRlZCBzdGFydC9lbmQgZGF0ZTwvcD48L2xpPg0KCQkJCTxsaT48cD4tIHJlbW92ZWQgdGltZXBpY2tlcjsgcmVwbGFjZWQgYnkgYSBzaW1wbGUgZHJvcGRvd248L3A+PC9saT4NCgkJCQk8bGk+PHA+LSBjb21wYXRpYmlsaXR5IHdpdGgge2NvbnRlbnRfaW1hZ2V9PC9wPjwvbGk+DQoJCQk8L3VsPg0KCQk8L2xpPg0KCTwvdWw+DQoJPGxpPjxwPjxzdHJvbmc+MC4zLjIgKEp1bmUgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgY2hhbmdpbmcgYmFjayB0byBkZWZhdWx0IGNvbnRlbnQgdHlwZSBvciBjaGFuZ2luZyB0ZW1wbGF0ZSBjYXVzZWQgZmF0YWwgZXJyb3JzPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHNtYXJ0eSBwcm9jZXNzaW5nIHdoZW4gc2F2aW5nIGEgcGFnZTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBwcmV2aWV3IHRhYjwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmUtYWRkZWQgZXhwYW5kL2NvbGxhcHNlIGJ1dHRvbiB0byB0b2dnbGUgY29udGVudCBibG9ja3MgaW4gYmFja2VuZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW1zIGVkaXRvcl9ncm91cHMvZWRpdG9yX3VzZXJzIHRvIHNwZWNpZnkgY2VydGFpbiB1c2Vycy9ncm91cHMgdGhhdCBhcmUgYWxsb3dlZCB0byBlZGl0IGNlcnRhaW4gYmxvY2tzPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSByZW1vdmVkIHBhcmFtcyBzZWxlY3RlZC9jaGVja2VkOyB1c2UgcGFyYW0gZGVmYXVsdCBpbnN0ZWFkPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBibG9jayBpZHMgd2lsbCBiZSBjb252ZXJ0ZWQgZnJvbSBibG9jayBuYW1lIHVzaW5nIGNvcmUgZnVuY3Rpb24gbXVuZ2Vfc3RyaW5nX3RvX3VybCAodG8gcmVtb3ZlIHNwZWNpYWwgY2hhcnMsIHdoaXRlc3BhY2VzLCB1bWxhdXRzIGV0Yy4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBidWcgb2YgYmxvY2t0eXBlIGRyb3Bkb3duL3NlbGVjdF9tdWx0aXBsZSB3aGVyZSBmaXJzdCBpdGVtIGhhZCBhbiBlbXB0eSBsYWJlbCBpZiBvbmx5IHRoZSBwYXJhbSAidmFsdWVzIiBpcyB1c2VkPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBzb21lIHRlbXBsYXRlIHZhcnMgb2YgdGhlIGZyb250ZW5kIHRvIGJlIGFsc28gYWNjZXNzaWJsZSBpbiBiYWNrZW5kIChlLmcuOiAkcGFnZV9hbGlhcyk8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICJhbGxvd19ub25lIiB0byBhbGwgY29udGVudCBibG9jayB0eXBlcyB0byBzcGVjaWZ5IGlmIHRoZSBwcmVkZWZpbmVkIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSB1c2VkIGlmIG5vIHZhbHVlIGlzIGVudGVyZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBlbXB0eSB2YWx1ZXMgd2VyZSBuZXZlciBiZSBzdG9yZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBkZWZhdWx0IHZhbHVlIGluIGZyb250ZW5kIHdhcyBpZ25vcmVkIGlmIHRoZSAiYWxsb3dfbm9uZSIgcGFyYW0gd2FzIGNoYW5nZWQgYWZ0ZXIgYW4gZW1wdHkgdmFsdWUgaGFzIGJlZW4gc3RvcmVkPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAic29ydGFibGVfaXRlbXMiIHRvIGNyZWF0ZSBhIHNvcnRhYmxlIG11bHRpcGxlIHNlbGVjdCBsaXN0IChzZWxlY3QgbGlzdCB3aWxsIHJlc3VsdCBpbiBhIHRhYmxlIHdpdGggY2hlY2tib3hlczsgb25seSBvcmRlciBvZiBzZWxlY3RlZCBpdGVtcyB3aWxsIGJlIHN0b3JlZCBhbmQgc2hvd2VkIGF0IHRoZSB0b3Agb2YgdGhlIGxpc3Q7IHVuc2VsZWN0ZWQgaXRlbXMgd2lsbCBiZSBhcHBlbmRlZCBpbiB0aGF0IG9yZGVyIHRoZXkgYXJlIHBsYWNlZCBpbiB0aGUgdGVtcGxhdGUpPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjMuMSAoTWF5IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gcmVtb3ZlZCB0aGUgcmVvcmRlcmluZyBzdHVmZiBmb3Igbm93IChjYXVzZXMgdHJvdWJsZSBhdCB0aGlzIHRpbWUpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSByZW1vdmVkIHRoZSBkYiBzdHVmZiAocGFyYW1zIG9mIGNvbnRlbnQgYmxvY2tzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGVtcGxhdGUgd29uXCd0IGJlIHNhdmVkIGluIG1vZHVsZSBkYiB0YWJsZSBhbnltb3JlIC0+IGhvcGVmdWxseSBzcGVlZCB1cCBsb2FkaW5nIHRpbWUpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIGR1cGxpY2F0ZSBjb250ZW50IGJsb2NrczwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPkFkdmFuY2VkQ29udGVudCAwLjMgKE1heSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIHJld3JpdGUgY29kZTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYnVnZml4ZXM8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbmFtZWQgdG8gQWR2YW5jZWRDb250ZW50PC9wPjwvbGk+DQoJCQk8bGk+PHA+LSB1c2luZyBzZXBhcmF0ZSBtb2R1bGUgdGVtcGxhdGUgbm93IHRvIGRzcGxheSBjb250ZW50IGJsb2NrczwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVtb3ZlZCBwYWdlIGFsaWFzIGluaGVyaXRhbmNlPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCjwvdWw+DQo8dWw+DQoJPGxpPjxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAzIChBcHJpbCAyMDEwIC0gZGlzY29udGludWVkKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIE1ham9yIEJ1Z2ZpeCAobWlzc2luZyAiOyIgYW5kIHN0cmFuZ2UgaW52aXNpYmxlIGludmFsaWQgY2hhcnMpPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz5YQ29udGVudCBCRVRBIDIgKEFwcmlsIDIwMTAgLSBkaXNjb250aW51ZWQpOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBwYXJhbSAiZGVsaW1pdGVyIjwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBzbWFydHkgcHJvY2Vzc2luZzwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgaW5oZXJpdGFuY2Ugb2YgIlNob3cgbG9naW4gZm9ybSI8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mIHBhZ2UgYWxpYXMgdG8gYWRkIGl0IGFzIHByZWZmaXg7IHNvIGlmIHlvdSBoYXZlIGEgcGFnZSBjYWxsZWQgIm1lbWJlcnMiIGFuZCBzZWxlY3QgZm9yIGVhY2ggY2hpbGQgcGFnZSAiaW5oZXJpdCBwYWdlIGFsaWFzIiBhbGwgY2hpbGQgcGFnZXMgYWxpYXNlcyB3aWxsIHN0YXJ0IHdpdGggIm1lbWJlcnNfIjsgbWFrZXMgZmlsdGVyaW5nIG9mIG1lbnUgZW50cmllcyB3aXRoIE1lbnVNYW5hZ2VyIHBhcmFtICJleGNsdWRlcHJlZmZpeCIgb3IgImluY2x1ZGVwcmVmZml4IiBlYXNpZXIuPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBtaW5vciBidWdmaXhlczwvcD48L2xpPiANCgkJPC91bD4NCgk8L2xpPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz5YQ29udGVudCBCRVRBIChBcHJpbCAyMDEwKTo8L3N0cm9uZz4gaW5pdGlhbCByZWxlYXNlPC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBjb252ZXJ0ZWQgdGhlIHNpbmdsZSBmaWxlIGludG8gYSBtb2R1bGU8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbmFtZWQgcGFyYW1zOyBzZWUgbW9kdWxlIGhlbHAgZm9yIG1vcmUgZGV0YWlsczwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5TaW5nbGUgZmlsZSByZWxlYXNlcyAoZGlzY29udGludWVkKTwvc3Ryb25nPi4uLjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+MS40IChNYXJjaCAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIGNsZWFudXAgY29kZSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBtaW5vciBidWdmaXhlcyAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCByZWRpcmVjdCBwYWdlIGlmIGZldSBpcyBub3QgbG9nZ2VkIGluIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mIGZldV9hY2Nlc3MgYW5kIHJlZGlyZWN0X3BhZ2UgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmV1X2FjY2VzcyAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWN0aW9uIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIHJlZGlyZWN0X3BhZ2UgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gYmxvY2tfb25seSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBzbWFydHkgbG9naWMgaW4gYmFja2VuZCAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gc3R5bGUgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZpbHRlciAoZmlsdGVyaW5nIGltYWdlcyBpbiBiYWNrZW5kKSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gSW1nTW9kZSAoZHJvcGRvd24gb3IgSW1hZ2VNYW5hZ2VyKSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gc21hcnR5T24gKGZvciBwcm9jZXNzaW5nIHNtYXJ0eSB2YXJzIG9mIHRoZSB0ZW1wYXRlIGluIGJhY2tlbmQpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4xLjMgKEFwcmlsIDIwMDkpOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gQ01TbXMgMS42LiogcmVhZHkgLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgZmV1IGFjY2VzcyBvcHRpb24gLSAoTmFOKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPjEuMiAoTWFyY2ggMjAwOSk6PC9zdHJvbmc+IGluaXRpYWwgcmVsZWFzZTwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gQSBzaW5nbGUgZmlsZSBDb250ZW50Mi5pbmMucGhwIHRoYXQgbmVlZHMgdG8gYmUgcGFjZWQgaW4gbGliL2NsYXNzZXMvY29udGVudHR5cGVzLjwvcD48L2xpPg0KCQkJPGxpPjxwPi0gbGF5b3V0L29wdGlvbnMgb2YgYmFja2VuZCBwYW5lbCBjYW4gYmUgY29udHJvbGVkIGJ5IGFkZGl0aW9uYWwgc21hcnR5IHBhcmFtcyBpbiB0aGUgdGVtcGxhdGU7IGludGVncmF0ZWQgdGhlIHtjb250ZW50X2ltYWdlfSB0YWcgLSAobW9kIGJ5IE5hTik8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KPC91bD4NCjxiciAvPiAnOwokbGFuZ1sncWNhJ10gPSAnUDAtNjM2NjExNzU4LTEyOTA3NzMwNTQwMzAnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjkzMTQyNTc5LjEyLjcudXRtY3NyPWNtc21hZGVzaW1wbGUucnV8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNTgxMTAzODA5LjEyOTA3NzMwNDcuMTI5MzE0MjU3OS4xMjkzMjEyNTYyLjEzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW4meWFjdXRlOyBvYnNhaCc7CiRsYW5nWydhZHZhbmNlZGNvbnRlbnRfdGFibmFtZSddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW4mZWFjdXRlOyBuYXN0YXZlbmlhJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsICVzIG5haW4mc2Nhcm9uO3RhbG92YW4meWFjdXRlOyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIEFkdmFuY2VkQ29udGVudCAlcyBvZGluJnNjYXJvbjt0YWxvdmFuJnlhY3V0ZTsnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBha3R1YWxpem92YW4meWFjdXRlOyBuYSB2ZXJ6aXUgJXMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bCAlcyBuYWluJnNjYXJvbjt0YWxvdmFuJnlhY3V0ZTsuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNb2R1bCAlcyBvZGluJnNjYXJvbjt0YWxvdmFuJnlhY3V0ZTsuJzsKJGxhbmdbJ2NvbmZpcm11bmluc3RhbGwnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTssIMW+ZSBjaGNldGUgbW9kdWwgb2RzdHImYWFjdXRlO25pxaU/JzsKJGxhbmdbJ25vdGljZV9kdXBsaWNhdGVjb250ZW50J10gPSAnPGVtPjxzdHJvbmc+UG96biZhYWN1dGU7bWthOjwvc3Ryb25nPiBUZW50byBibG9rIGplIHBvdcW+aXQmeWFjdXRlOyB2aWFjbiZhYWN1dGU7c29ibmUgdiAmc2Nhcm9uO2FibCZvYWN1dGU7bmUsIHpvYnJhenVqZSBzYSBWJmFhY3V0ZTttIGliYSBwcnYmeWFjdXRlOyB6IG5pY2guPC9lbT4nOwokbGFuZ1snZXJyb3JfYmFzaWNhdHRyaWInXSA9ICc8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IENhbm5vdCB1c2UgYmFzaWMgY29udGVudCBwcm9wZXJ0eSBuYW1lICYjMDM5OyVzJiMwMzk7IGFzIHZhbHVlIG9mIHBhcmFtICYjMDM5O2Jsb2NrJiMwMzk7LiA8YnIgLz5UaGlzIGJsb2NrIGlzIGRpc2FibGVkLiBDaGVjayB5b3VyIHBhZ2UgdGVtcGxhdGUgYW5kIGNob3NlIGEgZGlmZmVyZW50IHZhbHVlIG9mIHBhcmFtICYjMDM5O2Jsb2NrJiMwMzk7LjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2V4cGlyZWRhdGUnXSA9ICdEJmFhY3V0ZTt0dW0ga29uY2EgbXVzJmlhY3V0ZTsgYnnFpSBuZXNrb3Imc2Nhcm9uOyZpYWN1dGU7ICBha28gZCZhYWN1dGU7dHVtIHphxI1pYXRrdSc7CiRsYW5nWyd5b3VhcmVpbnRleHQnXSA9ICdTJnVhY3V0ZTvEjWFzbiZ5YWN1dGU7IGFkcmVzJmFhY3V0ZTtyJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdWZcS+a29zxaUgb2JyJmFhY3V0ZTt6a3UnOwokbGFuZ1snc2l6ZSddID0gJ1ZlxL5rb3PFpSBvYnImYWFjdXRlO3prdSc7CiRsYW5nWydpbmhlcml0X2Zyb21fcGFyZW50J10gPSAnUHJldnppYcWlIG9kIG5hZHJpYWRlbmVqJzsKJGxhbmdbJ25vbmUnXSA9ICfFvmlhZG55JzsKJGxhbmdbJ2ludmFsaWQnXSA9ICdzIGNoeWJvdSc7CiRsYW5nWydpbnZhbGlkX2Jsb2NrdHlwZSddID0gJzxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gSW52YWxpZCB2YWx1ZSAmIzAzOTslcyYjMDM5OyBvZiBwYXJhbSBibG9ja190eXBlIGluIGJsb2NrICYjMDM5OyVzJiMwMzk7LjxiciAvPkNoZWNrIHlvdXIgcGFnZSB0ZW1wbGF0ZS48L2VtPic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRfYmxvY2twYXJhbXMnXSA9ICc8ZW0+PHN0cm9uZz5FcnJvcjo8L3N0cm9uZz4gSW5zdWZmaWNpZW50IHBhcmFtcy4gPGJyIC8+TWlzc2luZyBwYXJhbSAmIzAzOTslcyYjMDM5OyBmb3IgYmxvY2sgJiMwMzk7JXMmIzAzOTsuIENoZWNrIHlvdXIgcGFnZSB0ZW1wbGF0ZS48L2VtPic7CiRsYW5nWyd5ZXMnXSA9ICcmQWFjdXRlO25vJzsKJGxhbmdbJ25vJ10gPSAnTmllJzsKJGxhbmdbJ2Zyb250ZW5kYWNjZXNzJ10gPSAnRnJvbnRlbmQgcHImaWFjdXRlO3N0dXAnOwokbGFuZ1sncmVkaXJlY3RwYWdlJ10gPSAnUFJlc21lcm92YcWlIHBva2lhxL4gbmllIGplIHXFviZpYWN1dGU7dmF0ZcS+IHByaWhsJmFhY3V0ZTtzZW4meWFjdXRlOyc7CiRsYW5nWydzaG93bG9naW5mb3JtJ10gPSAnWm9icmF6acWlIGZvcm11bCZhYWN1dGU7ciBwcmlobCZhYWN1dGU7c2VuaWEnOwokbGFuZ1sncmVnaXN0ZXJlZHVzZXJzJ10gPSAnSWJhIHJlc2lzdHJvdmFuJnlhY3V0ZTsgdcW+JmlhY3V0ZTt2YXRlbGlhJzsKJGxhbmdbJ2Jsb2NrJ10gPSAnQmxvayc7CiRsYW5nWyd1c2VleHBpcmVkYXRlJ10gPSAnUG91xb5pxaUgZCZhYWN1dGU7dHVtIGtvbmNhJzsKJGxhbmdbJ3N0YXJ0ZGF0ZSddID0gJ1phxI0maWFjdXRlO25hJzsKJGxhbmdbJ2VuZGRhdGUnXSA9ICdLb27EjSZpYWN1dGU7JzsKJGxhbmdbJ2Jsb2NrY29udGVudCddID0gJ09ic2Fob3YmeWFjdXRlOyBibG9rICc7CiRsYW5nWydzZXRwYWdlaW5hY3RpdmUnXSA9ICdOYXN0YXZpxaUgYWtvIG5lYWt0JmlhY3V0ZTt2bnUgJzsKJGxhbmdbJ2RlbGV0ZXBhZ2UnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpSBzdHImYWFjdXRlO25rdSc7CiRsYW5nWyd1bmluc3RhbGxhY3Rpb24nXSA9ICdPZGluJnNjYXJvbjt0YWwmYWFjdXRlO2NpYSc7CiRsYW5nWydzZXRjb250ZW50MSddID0gJ1NldCBhbGwgUGFnZXMgdG8gdHlwZSBDb250ZW50JzsKJGxhbmdbJ3NldGNvbnRlbnQyJ10gPSAnU2V0IGFsbCBQYWdlcyB0byB0eXBlIENvbnRlbnQgYW5kIHJlbW92ZSBhZGRpdGlvbmFsIGNvbnRlbnQgYmxvY2tzJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ05hc3RhdmVuaWEgdXByYXZlbiZlYWN1dGU7JzsKJGxhbmdbJ3N1Y2Nlc3MnXSA9ICdPSyc7CiRsYW5nWydlcnJvciddID0gJ0NoeWJhJzsKJGxhbmdbJ2RlbGV0ZXBhZ2VzJ10gPSAnT2RzdHImYWFjdXRlO25pxaUgdiZzY2Fyb247ZXRreSBzdHImYWFjdXRlO25reSB6IG9ic2Fob3YmeWFjdXRlO20gdHlwb20gQWR2YW5jZWRDb250ZW50JzsKJGxhbmdbJ2ltcG9ydHBhZ2VzJ10gPSAnU2V0IGFsbCBQYWdlcyBvZiB0eXBlIGNvbnRlbnQgdG8gdHlwZSBBZHZhbmNlZENvbnRlbnQuJzsKJGxhbmdbJ3BhZ2VzaW1wb3J0ZWQnXSA9ICdWJnNjYXJvbjtldGt5IHN0ciZhYWN1dGU7bmt5IG5hc3RhdmnFpSBha28gb2JzYWhvdiZ5YWN1dGU7IHR5cCBBZHZhbmNlZENvbnRlbnQnOwokbGFuZ1snY29uZmlybWltcG9ydCddID0gJ1NrdXRvxI1uZSBjaGNldGUgbmFzdGF2ecWlIG9ic2Fob3YmZWFjdXRlOyB0eXB5IHByZSB2JnNjYXJvbjtldGt5IHN0ciZhYWN1dGU7bmt5JzsKJGxhbmdbJ3RvZ2dsZV9tZXNzYWdlJ10gPSAnU2tyecWlIHQmdWFjdXRlO3RvIGluZm9ybSZhYWN1dGU7Y2l1JzsKJGxhbmdbJ2NvbnRlbnRzZXR0aW5ncyddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7IG5hc3RhdmVuaWEnOwokbGFuZ1sncmVkaXJlY3RwYXJhbXMnXSA9ICdVUkwgcGFyYW1zIHRvIGFwcGVuZCB3aGVuIHJlZGlyZWN0aW5nIChwYXJhbTE9dmFsdWUxIHBhcmFtMj12YWx1ZTIgLi4uKSc7CiRsYW5nWydldmFsdWF0ZXNtYXJ0eSddID0gJ1VzZSBzbWFydHkgdG8gY3JlYXRlIHRoZSBwYXJhbXMnOwokbGFuZ1snZXJyb3JfbG9hZGluZ19tb2R1bGUnXSA9ICc8ZW0+PHN0cm9uZz5DaHliYTo8L3N0cm9uZz4gTmVtJm9jaXJjO8W+ZW0gbmFocmHFpSBtb2R1bCAmIzAzOTslcyYjMDM5Oy4gKHphZGFuJnlhY3V0ZTsgcHJlIGJsb2sgJiMwMzk7JXMmIzAzOTsgc3RyJmFhY3V0ZTtua2UgJnNjYXJvbjthYmwmb2FjdXRlO255Lik8L2VtPic7CiRsYW5nWydlcnJvcl9jb250ZW50YmxvY2tfc3VwcG9ydCddID0gJzxlbT48c3Ryb25nPkVycm9yOjwvc3Ryb25nPiBNb2R1bGUgJiMwMzk7JXMmIzAzOTsgZG9lcyBub3Qgc3VwcG9ydCBjb250ZW50YmxvY2tzLiAoRGVmaW5lZCBmb3IgYmxvY2sgJiMwMzk7JXMmIzAzOTsgaW4geW91ciBwYWdlIHRlbXBsYXRlLik8L2VtPic7CiRsYW5nWydzdWNjZXNzX2ltcG9ydHBhZ2VzJ10gPSAnQWxsIHBhZ2VzIG9mIHR5cGUgJXMgc3VjY2VzZnVsbHkgY2hhbmdlZCB0byAlcyc7CiRsYW5nWydzaG93X2FkdmFuY2VkY29udGVudF9vcHRpb25zJ10gPSAnU2hvdyBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyB0YWInOwokbGFuZ1snZGlzcGxheV9zZXR0aW5ncyddID0gJyVzIGRpc3BsYXkgc2V0dGluZ3MnOwokbGFuZ1snc2F2ZV9jb2xsYXBzZV9zdGF0dXMnXSA9ICdTYXZlIGNvbGxwYXNlIHN0YXR1cyBvZiAlcyc7CiRsYW5nWydjb250ZW50X2Jsb2NrcyddID0gJ2NvbnRlbnQgYmxvY2tzJzsKJGxhbmdbJ2Jsb2NrX21lc3NhZ2UnXSA9ICdjb250ZW50IGJsb2NrIG1lc3NhZ2UnOwokbGFuZ1snYmxvY2tfZ3JvdXBzJ10gPSAnYmxvY2sgZ3JvdXBzJzsKJGxhbmdbJ2NvbGxhcHNlX2RlZmF1bHQnXSA9ICdDb2xsYXBzZSAlcyBieSBkZWZhdWx0JzsKJGxhbmdbJ3Blcl9wYWdlJ10gPSAncGVyIHBhZ2UnOwokbGFuZ1sncGVyX3RlbXBsYXRlJ10gPSAncGVyIHRlbXBsYXRlJzsKJGxhbmdbJ2JvdGgxJ10gPSAndGVtcGxhdGUgT1IgcGFnZSAnOwokbGFuZ1snYm90aDInXSA9ICd0ZW1wbGF0ZSBBTkQgcGFnZSc7CiRsYW5nWydjb250ZW50J10gPSAnQ29udGVudCc7CiRsYW5nWydjb250ZW50MiddID0gJ0FkdmFuY2VkIENvbnRlbnQnOwokbGFuZ1sncHJlZnMnXSA9ICdQcmVmZXJlbmNlcyc7CiRsYW5nWydtdWx0aV9pbnB1dCddID0gJ011bHRpIElucHV0cyc7CiRsYW5nWydtdWx0aV9pbnB1dF90cGwnXSA9ICdNdWx0aSBJbnB1dCBUZW1wbGF0ZXMnOwokbGFuZ1snYWRkX211bHRpX2lucHV0J10gPSAnQWRkIG5ldyBtdWx0aSBpbnB1dCc7CiRsYW5nWydhZGRfbXVsdGlfaW5wdXRfdHBsJ10gPSAnQWRkIG5ldyBtdWx0aSBpbnB1dCB0ZW1wbGF0ZSc7CiRsYW5nWydpbnB1dF9pZCddID0gJ0lucHV0IElEJzsKJGxhbmdbJ2lucHV0X2ZpZWxkcyddID0gJ0lucHV0IGZpZWxkcyc7CiRsYW5nWyd0cGxfbmFtZSddID0gJ1RlbXBsYXRlIG5hbWUnOwokbGFuZ1snZXJyb3JfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBpcyBhIHJlcXVpcmVkIGZpZWxkIGFuZCBtYXkgbm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2lucHV0X2ZpZWxkcyddID0gJ0lucHV0IGZpZWxkcyBpcyBhIHJlcXVpcmVkIGZpZWxkIGFuZCBtYXkgbm90IGJlIGVtcHR5Lic7CiRsYW5nWydlcnJvcl9pbnB1dF9pZCddID0gJ05vIGlucHV0IGlkIGdpdmVuIG9yIGlucHV0IGlkIGFscmVhZHkgZXhpc3RzLic7CiRsYW5nWydlcnJvcl9pbnB1dF9pZF9leGlzdHMnXSA9ICdJbnB1dCBJRCBpcyBhbHJlYWR5IGluIHVzZS4gQ2hvb3NlIGEgZGlmZmVyZW50IG9uZS4gKG11c3QgYmUgdW5pcXVlKSc7CiRsYW5nWydtdWx0aV9pbnB1dF9hZGRlZCddID0gJ011bHRpIElucHV0IGFkZGVkLic7CiRsYW5nWydtdWx0aV9pbnB1dF9kZWxldGVkJ10gPSAnTXVsdGkgSW5wdXQgZGVsZXRlZC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdXBkYXRlZCddID0gJ011bHRpIElucHV0IHVwZGF0ZWQuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF9hZGRlZCddID0gJ011bHRpIElucHV0IHRlbXBsYXRlIGFkZGVkLic7CiRsYW5nWydtdWx0aV9pbnB1dF90cGxfdXBkYXRlZCddID0gJ011bHRpIElucHV0IHRlbXBsYXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF9kZWxldGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgZGVsZXRlZC4nOwokbGFuZ1snZGVsZXRlX3NlbGVjdGVkJ10gPSAnT2RzdHImYWFjdXRlO25pxaUgdnlicmFuJmVhY3V0ZTsgcG9sb8W+a3knOwokbGFuZ1snY29uZmlybV9kZWxldGUnXSA9ICdDaGNldGUgc2t1dG/EjW5lIG9kc3RyJmFhY3V0ZTtuacWlIHBvbG/Fvmt1Pyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9zZWxlY3RlZCddID0gJ0NoY2V0ZSAgc2t1dG/EjW5lIG9kc3RyJmFhY3V0ZTtuacWlIHZ5YnJhbiZlYWN1dGU7IHBvbG/Fvmt5Lic7CiRsYW5nWyd1c2VfY29udGVudHR5cGUnXSA9ICdQb3XFvmnFpSBvYnNhaG92JnlhY3V0ZTsgdHlwJzsKJGxhbmdbJ2hlbHBfdHBsX3ZhcnMnXSA9ICc8cD48c3Ryb25nPlRlbXBsYXRlIHZhcnM6PC9zdHJvbmc+PC9wPg0KPHA+PHByZT48Y29kZT57JGlucHV0c308L2NvZGU+PC9wcmU+IGlzIGFuIGFycmF5IHRoYXQgY29udGFpbnMgYWxsIGRlZmluZWQgaW5wdXQgZWxlbWVudHMgb2YgdGhhdCBtdWx0aSBpbnB1dCBibG9jay48YnIgLz4NCkVhY2ggaW5wdXQgZWxlbWVudCBpcyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCBpdHMgcGFyYW1zLiA8YnIgLz4NClNlZSBtb2R1bGUgaGVscCBmb3IgbW9yZSBpbmZvLjxiciAvPg0KQWRkaXRpb25hbCBwYXJhbSBpcyAmcXVvdDtpbnB1dCZxdW90OyB0aGF0IHdpbGwgcHJpbnQgb3V0IHRoZSBpbnB1dCBlbGVtZW50LjxiciAvPg0KVG8gYWNjZXNzIHRoZSBwYXJhbXMgdXNlIHRoZSBkb3Qgc3ludGF4LjxiciAvPg0KRXhhbXBsZTo8L3A+DQo8cHJlPjxjb2RlPntmb3JlYWNoIGZyb209JGlucHV0cyBpdGVtPWVsbX0NCgl7JGVsbS5sYWJlbH06Jm5ic3A7eyRlbG0uaW5wdXR9PGJyIC8+DQp7L2ZvcmVhY2h9PC9jb2RlPjwvcHJlPic7CiRsYW5nWydoZWxwJ10gPSAnPGJyIC8+DQo8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4NCjxwPlRoaXMgaXMgYSBtb2RpZmljYXRpb24gb2YgdGhlIGRlZmF1bHQgY29udGVudCB0eXBlICZxdW90O0NvbnRlbnQmcXVvdDsgb2YgQ01TbXMuPGJyIC8+DQpJdCBwcm92aWRlcyBtb3JlIGZsZXhpYmlsaXR5IGJ5IGNyZWF0aW5nIGN1c3RvbSBpbnB1dCBjb250cm9scyBpbiBiYWNrZW5kLjxiciAvPg0KVXNlcnMgY2FuIGFkZCBkcm9wZG93bnMsIG11bHRpcGxlIHNlbGVjdCBsaXN0cywgY2hlY2tib3hlcywgZ3JvdXAgY29udGVudCBibG9ja3MgDQppbiBzZXBhcmF0ZSBwYWdlIHRhYnMsIGJsb2NrIHRhYnMgaW5zaWRlIGEgcGFnZSB0YWIgb3IgaW4gZmllbGRzZXRzIGJ5IGp1c3QgDQp1c2luZyBhZGRpdGlvbmFsIHBhcmFtcyBpbiB0aGUgdGVtcGxhdGUgd2hlbiBjYWxsaW5nIHRoZSBjb250ZW50LjxiciAvPg0KSXQgYWxzbyBhZGRzIGFiaWxpdHkgdG8gZ3JhbnQgYWNjZXNzIG9mIHBhZ2VzIHRvIGNlcnRhaW4gdXNlcnMgb2YgdGhlIA0KRnJvbnRFbmRVc2VycyBtb2R1bGUgYW5kIGhpZGUgdGhlIGNvbnRlbnQsIHJlcGxhY2UgaXQgYnkgdGhlIGxvZ2luIGZvcm0gb2YgdGhlIA0KRnJvbnRFbmRVc2VycyBtb2R1bGUgb3IgcmVkaXJlY3QgdG8gYSBzcGVjaWZpZWQgcGFnZSBzaG93aW5nIHRoZSBsb2dpbiBmb3JtIG9yIA0KanVzdCByZWRpcmVjdCB3aXRob3V0IGRvaW5nIGFueXRoaW5nIGVsc2UuPGJyIC8+DQpQYWdlIHByb3BlcnR5IG9mIEZyb250RW5kVXNlcnMgYWNjZXNzIGFuZCByZWRpcmVjdCBwYWdlIGNhbiBiZSBpbmhlcml0ZWQgYnkgDQpwYXJlbnQgcGFnZXMuPC9wPg0KPHA+WW91IGNhbiBldmVuIHVzZSBzbWFydHkgbG9naWMgaW4gcGFyYW1ldGVyIHZhbHVlcy4gVGhhdCBtZWFucyB5b3UgY2FuIHVzZSB0aGUgDQpyZXN1bHQgb2YgYSBwbHVnaW4sIGFuIHVkdCBvciBldmVuIGEgbW9kdWxlIG9yIGp1c3QgdGhlIGNvbnRlbnQgb2YgYSBnbG9iYWwgDQpjb250ZW50IGJsb2NrIGFzIHBhcmFtZXRlciB2YWx1ZSB0byBjcmVhdGUgZHluYW1pYyB2YWx1ZXMuPC9wPg0KPGgzPkhvdyBpcyBpdCB1c2VkPzwvaDM+DQo8cD5BZnRlciBpbnN0YWxsYXRpb24gdGhlIG1vZHVsZSBzZXR0aW5ncyBjYW4gYmUgZm91bmQgaW4gJnF1b3Q7RXh0ZW5zaW9ucy0+QWR2YW5jZWRDb250ZW50JnF1b3Q7LjwvcD4NCjxwPkFkZGl0aW9uYWxseSB5b3Ugd2lsbCBoYXZlIGEgbmV3IGNvbnRlbnQgdHlwZSAmcXVvdDtBZHZhbmNlZENvbnRlbnQmcXVvdDsgYXZhaWxhYmxlIA0Kd2hlbiBhZGRpbmcvZWRpdGluZyBhIHBhZ2UuPGJyIC8+DQo8cD5BZGQgdGhlIGZvbGxvd2luZyBwYXJhbXMgdG8geW91ciBjb250ZW50IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUsIA0KY2hhbmdlIHRoZSBjb250ZW50IHR5cGUgb2YgeW91ciBwYWdlIHRvICZxdW90O0FkdmFuY2VkQ29udGVudCZxdW90OyBhbmQgc2VlIHdoYXQgaGFwcGVucyANCmluIGJhY2tlbmQuLi48L3A+DQo8aDM+V2hhdCBwYXJhbWV0ZXJzIGFyZSBhdmFpbGFibGU/PC9oMz4NCjxwPmFsbCBwYXJhbXMgYXJlIG9wdGlvbmFsPC9wPg0KPHA+PHN0cm9uZz5EZWZhdWx0IHBhcmFtczo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9jazwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlBbGxvd3MgeW91IHRvIGhhdmUgbW9yZSB0aGFuIG9uZSBjb250ZW50IGJsb2NrIHBlciBwYWdlLiBJZiBtdWx0aXBsZSBjb250ZW50IHRhZ3MgYXJlIHB1dCBvbiBhIHRlbXBsYXRlLCB0aGF0IG51bWJlciBvZiBlZGl0IGJveGVzIHdpbGwgYmUgZGlzcGxheWVkIGlmIHRoZSBwYWdlIGlzIGVkaXRlZC48YnIgLz4NCgkJCQllLmcuOiA8Y29kZT57Y29udGVudCBibG9jaz0mcXVvdDtTZWNvbmQgQ29udGVudCBibG9jayZxdW90O308L2NvZGU+PGJyIC8+DQoJCQkJTm93LCBpZiB5b3UgZWRpdCBhIHBhZ2UgdGhlcmUgd2lsbCBiYSBhIHRleHRhcmVhIGNhbGxlZCAmcXVvdDtTZWNvbmQgQ29udGVudCBibG9jayZxdW90Oy48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrIG1heSBjb250YWluIG9ubHkgbGV0dGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIChubyB3aGl0ZXNwYWNlcywgc3BlY2lhbCBjaGFycywgdW1sYXV0cyBldGMuKS4gT3RoZXJ3aXNlIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGEgcHJvcGVyIG5hbWUgKHNpbWlsYXIgdG8gdGhlIHBhZ2UgYWxpYXMpLjwvZW0+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+d3lzaXd5ZzwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+SWYgc2V0IHRvIGZhbHNlLCB0aGVuIGEgd3lzaXd5ZyB3aWxsIG5ldmVyIGJlIHVzZWQgd2hpbGUgZWRpdGluZyB0aGlzIGJsb2NrLiBJZiB0cnVlLCB0aGVuIGl0IGFjdHMgYXMgbm9ybWFsLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5vbmVsaW5lPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT5JZiBzZXQgdG8gdHJ1ZSwgdGhlbiBvbmx5IG9uZSBlZGl0IGxpbmUgd2lsbCBiZSBzaG93biB3aGlsZSBlZGl0aW5nIHRoaXMgYmxvY2suIElmIGZhbHNlLCB0aGVuIGl0IGFjdHMgYXMgbm9ybWFsLiBPbmx5IHdvcmtzIHdoZW4gYmxvY2sgcGFyYW1ldGVyIGlzIHVzZWQuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+RGVmYXVsdCBjb250ZW50IHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZS48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+bGFiZWw8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+UHJvbXB0IGZvciB0aGlzIGNvbnRlbnQgYmxvY2suIFBvc3NpYmxlIHZhbHVlcyBhcmUgYW55IGV4cHJlc3Npb24uIElmIGJsYW5rLCB0aGUgdW5jb252ZXJ0ZWQgYmxvY2sgbmFtZSBpcyB1c2VkLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hc3NpZ248L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQXNzaWducyB0aGUgY29udGVudCB0byBhIHNtYXJ0eSBwYXJhbWV0ZXIsIHdoaWNoIHlvdSBjYW4gdGhlbiB1c2UgaW4gb3RoZXIgYXJlYXMgb2YgdGhlIHBhZ2UsIG9yIHVzZSB0byB0ZXN0IHdoZXRoZXIgY29udGVudCBleGlzdHMgaW4gaXQgb3Igbm90LjxiciAvPg0KCQkJCUV4YW1wbGUgb2YgcGFzc2luZyBwYWdlIGNvbnRlbnQgdG8gYSBVc2VyIERlZmluZWQgVGFnIGFzIGEgcGFyYW1ldGVyOjxiciAvPg0KCQkJCTxjb2RlPntjb250ZW50IGFzc2lnbj1wYWdlY29udGVudH08YnIgLz4NCgkJCQl7dGFibGVfb2ZfY29udGVudHMgdGhlcGFnZWNvbnRlbnQ9JnF1b3Q7JHBhZ2Vjb250ZW50JnF1b3Q7fTwvY29kZT48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IEZvciBzb21lIHJlYXNvbiB0aGlzIHBhcmFtIGRvZXMgbm90IHdvcmsgYXQgdGhlIG1vbWVudCB3aXRoIHRoZSBtb2R1bGUgcGx1Z2luIHtBdmFuY2VkQ29udGVudH0uIFVzZSA8YnIgLz48Y29kZT57Y2FwdHVyZSBhc3NpZ249JnF1b3Q7Zm9vJnF1b3Q7fXtBZHZhbmNlZENvbnRlbnR9ey9jYXB0dXJlfTwvY29kZT4gPGJyIC8+aW5zdGVhZC48L2VtPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCjwvdWw+DQo8cD48c3Ryb25nPkFkdmFuY2VkIHBhcmFtczo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja190eXBlPC90dD4gKHRleHQsY2hlY2tib3gsZHJvcGRvd24sc2VsZWN0X211bHRpcGxlLGRhdGUsbXVsdGlfaW5wdXQpIA0KCQk8dWw+DQoJCQk8bGk+QWxsb3dzIHlvdSB0byBzcGVjaWZ5IHdoYXQgY29udGVudCBjb250cm9sIHR5cGUgaXMgdXNlZCBpbiB0aGUgYmFjayBlbmQuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnBhZ2VfdGFiPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRoaXMgcGFyYW1ldGVyIHNldHMgdGhlIHRhYiBpbiB3aGljaCB0aGUgY29udGVudCBibG9jayBpcyBkaXNwbGF5ZWQgaW4gdGhlIGJhY2tlbmQuPGJyIC8+DQoJCQkJUG9zc2libGUgdmFsdWVzIGFyZSAmcXVvdDttYWluJnF1b3Q7ICggPSBUYWIgJnF1b3Q7TWFpbiBNZW51JnF1b3Q7KSwgJnF1b3Q7b3B0aW9ucyZxdW90OyAoID0gVGFiICZxdW90O09wdGlvbnMmcXVvdDspLCBvciBhbnkgb3RoZXIgYXJiaXRyYXJ5IHZhbHVlPGJyIC8+DQoJCQkJPGVtPmUuZy4geW91IGNhbiBhZGQgYSBjaGVja2JveCB0byB0aGUgb3B0aW9ucyB0YWIgb3IgY3JlYXRlIG5ldyB0YWJzPC9lbT4uDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YmxvY2tfdGFiPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPldpdGggdGhpcyBwYXJhbWV0ZXIsIHRoZSBibG9ja3Mgd2l0aGluIGEgcGFnZSB0YWIgY2FuIGJlIGZ1cnRoZXIgZGl2aWRlZCBpbnRvIHRhYnMgb3IgY2FuIGJlIGdyb3VwZWQgdG9nZXRoZXIuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX2dyb3VwPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPldpdGggdGhpcyBwYXJhbWV0ZXIsIG11bHRpcGxlIGJsb2NrcyBjYW4gYmUgZ3JvdXBlZCBpbiBhIGZpZWxkc2V0LiBBbnkgZXhwcmVzc2lvbiBjYW4gYmUgdXNlZCBhcyBhIHBvc3NpYmxlIHZhbHVlLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hY3RpdmU8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUFsbG93cyB5b3UgdG8gZGlzYWJsZSBhIGNvbnRlbnQgYmxvY2suIERpc2FibGVkIGNvbnRlbnQgYmxvY2tzIHdvbiYjMDM5O3QgYmUgc2hvd24gaW4gYmFja2VuZCBhcyB3ZWxsIGFzIGluIGZyb250ZW5kLiAob25seSB3b3JrcyB3aXRoIHtBZHZhbmNlZENvbnRlbnR9IHBsdWdpbik8YnIgLz4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lZGl0b3JfZ3JvdXBzPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXAgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBlZGl0IHRoaXMgYmxvY2suDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZWRpdG9yX3VzZXJzPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgdXNlciBuYW1lcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGVkaXQgdGhpcyBibG9jay4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBpZiB0aGUgcGFyYW1zIDx0dD5lZGl0b3JfdXNlcnM8L3R0PiBhbmQgPHR0PmVkaXRvcl9ncm91cHM8L3R0PiBhcmUgZW1wdHkgdGhlIGJsb2NrIG1heSBiZSBlZGl0ZWQgYnkgYW55IHVzZXIgd2l0aCBzdWZmaWNpZW50IHBlcm1pc3Npb24gdG8gZWRpdCBhIHBhZ2U8L2VtPjxiciAvPjxiciAvPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjY2VzczwvdHQ+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlBIGxpc3Qgb2YgZmV1IGdyb3VwIGlkcyBzZXBhcmF0ZWQgYnkgYSBjb21tYS48YnIgLz4NCgkJCQlUaGlzIHNob3dzIHRoZSBjb250ZW50IGJsb2NrIG9ubHkgdG8gY2VydGFpbiBmZXUgZ3JvdXBzLjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmZldV9hY3Rpb248L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVNwZWNpZnkgaWYgdGhlIGxvZ2luIGZvcm0gb2YgdGhlIGZldSBtb2R1bGUgd2lsbCBiZSBzaG93biBvciBub3QuPGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBUaGUgbG9naW4gZm9ybSB3aWxsIG9ubHkgYmUgc2hvd24gb25lIHRpbWUuPGJyIC8+DQoJCQkJSWYgdGhlcmUgYXJlIG11bHRpcGxlIGJsb2NrcyB3aXRoIGxpbWl0ZWQgZmV1X2FjY2VzcyBhbmQgZmV1X2FjdGlvbiBzZXQgdG8gdHJ1ZSBvbmx5IHRoZSBmaXJzdCBibG9ja3MgbG9naW4gZm9ybSB3aWxsIGJlIHNob3duIGFuZCBhbGwgb3RoZXIgYmxvY2tzIHdpbGwganVzdCBiZSBlbXB0eS48L2VtPjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFsbG93X25vbmU8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPlNldCB0byB0cnVlIGlmIHRoZSB1c2VyIG1heSBlbnRlciBlbXB0eSB2YWx1ZXMuIDxiciAvPklmIHNldCB0byBmYWxzZSBhbmQgdmFsdWUgaXMgZW1wdHkgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHBhcmFtICZxdW90O2RlZmF1bHQmcXVvdDsgd2lsbCBiZSB1c2VkLiA8YnIgLz5JZiBzZXQgdG8gdHJ1ZSBhbmQgYmxvY2sgaXMgb2YgdHlwZSBpbWFnZS9maWxlIHRoZSBvcHRpb24gJnF1b3Q7bm9uZSZxdW90OyAobW9kZT0mcXVvdDtkcm9wZG93biZxdW90Oykgb3IgYSBidXR0b24gdG8gY2xlYXIgdGhlIHNlbGVjdGVkIGZpbGUvaW1hZ2UgdmFsdWUgKG1vZGU9JnF1b3Q7ZmlsZXBpY2tlciZxdW90Oykgd2lsbCBiZSBkaXNwbGF5ZWQuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNtYXJ0eTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVHVybiBzbWFydHkgcHJvY2Vzc2luZyBvZiB2YWx1ZXMgb24vb2ZmLjxiciAvPg0KCQkJCUlmIHNldCB0byB0cnVlIGFueSBnaXZlbiB2YWx1ZSB3aWxsIGJlIHByb2Nlc3NlZCBieSB0aGUgc21hcnR5IGVuZ2luZS48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6IDwvc3Ryb25nPiBDb25zaWRlciB0aGF0IHlvdSBjYW5ub3QgdXNlIHRoZSBkZWZhdWx0IHNtYXJ0eSBkZWxpbWl0ZXJzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIHRlbXBsYXRlLiBUaGlzIHdpbGwgY2F1c2Ugc21hcnR5IGVycm9ycyBpbiBmcm9udGVuZC48YnIgLz4NCgkJCQlTbyB5b3UgbmVlZCB0byB1c2UgOjo6IGFzIGRlbGltaXRlciBpbnN0ZWFkLjxiciAvPjwvZW0+DQoJCQkJRS5nLjogPGNvZGU+e2NvbnRlbnQgYmxvY2s9JnF1b3Q7Q2F0ZWdvcmllcyZxdW90OyBsYWJlbD0mcXVvdDtTZWxlY3QgYSBjYXRlZ29yeSZxdW90OyBibG9ja190eXBlPSZxdW90O2Ryb3Bkb3duJnF1b3Q7IGl0ZW1zPSZxdW90Ozo6Omdsb2JhbF9jb250ZW50IG5hbWU9JiMwMzk7Y2F0ZWdvcnlsaXN0JiMwMzk7Ojo6JnF1b3Q7IHNtYXJ0eT0mcXVvdDt0cnVlJnF1b3Q7fTwvY29kZT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZXNjcmlwdGlvbjwvdHQ+IChzdHJpbmcpIA0KCQk8dWw+DQoJCQk8bGk+QWxsb3dzIHlvdSB0byBhZGQgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiB0byB0aGF0IGJsb2NrIGZvciB5b3VyIGVkaXRvcnMuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmNvbGxhcHNlPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gdHJ1ZS9mYWxzZSB0byBkaXNwbGF5IGJsb2NrIGluIGJhY2tlbmQgaW4gY29sbGFwc2VkL2V4cGFuZGVkIG1vZGUgYnkgZGVmYXVsdC48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IHdpbGwgYmUgYWx3YXlzIGZhbHNlIGlmIG5vX2NvbGxhcHNlPXRydWUgaXMgdXNlZC48L2VtPjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pm5vX2NvbGxhcHNlPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gZmFsc2UgdG8gZGlzYWJsZSBmb2xkaW5nIG9mIGJsb2Nrcy48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHNldCB0byB0cnVlIHBhcmFtIGNvbGxhcHNlIGlzIGFsd2F5cyBmYWxzZS48L2VtPjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnJlcXVpcmVkPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gdHJ1ZSBpZiB0aGlzIGJsb2NrIG1heSBub3QgYmUgZW1wdHkuPGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAmcXVvdDtjaGVja2JveCZxdW90Ozo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWZhdWx0PC90dD4gKHRydWUvZmFsc2UpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJY2hlY2tzL3VuY2hlY2tzIHRoZSBjaGVja2JveCBieSBkZWZhdWx0IHdoZW4gYWRkaW5nIGEgcGFnZTxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVXNlICZxdW90OzEmcXVvdDsgZm9yIGNoZWNrZWQgYW5kICZxdW90OzAmcXVvdDsgZm9yIHVuY2hlY2tlZCBieSBkZWZhdWx0PGJyIC8+PC9lbT4NCgkJCQlFLmcuIDxjb2RlPntjb250ZW50IGJsb2NrX3R5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgZGVmYXVsdD0xfTwvY29kZT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICZxdW90O2Ryb3Bkb3duJnF1b3Q7LyZxdW90O3NlbGVjdF9tdWx0aXBsZSZxdW90Ozo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pdGVtczwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT5JdGVtIGxhYmVsKHMpIG9mIHRoZSBmaWVsZChzKSAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVzPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPlZhbHVlKHMpIG9mIHRoZSBpdGVtcyAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gaWYgdGhlcmUgYXJlIGxlc3MgdmFsdWVzIHRoYW4gaXRlbXMgdGhlIGl0ZW0gbGFiZWxzIHdpbGwgYmUgdXNlZCBhcyB2YWx1ZXMgKGFuZCB2aXNlIHZlcnNhKS48L2VtPjxiciAvPjxiciAvPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVmYXVsdDwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlQcmVzZWxlY3RlZCB2YWx1ZShzKSAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8YnIgLz4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWxpbWl0ZXI8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+QSBzaWduIG9yIHN0cmluZyB0aGF0IHdpbGwgYmUgdXNlZCB0byBkZXZpZGUgdGhlIGl0ZW1zL3ZhbHVlcyAoZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zaXplPC90dD4gKGludGVnZXIpDQoJCTx1bD4NCgkJCTxsaT5IZWlnaHQgb2YgY29udGVudCBibG9jayBpbiBiYWNrIGVuZCBpZiA8Y29kZT5ibG9ja190eXBlPSZxdW90O3NlbGVjdF9tdWx0aXBsZSZxdW90OzwvY29kZT4gaXMgc2V0LiA8ZW0+KERlZmF1bHQgaXMgbnVtYmVyIG9mIGl0ZW1zKTwvZW0+PC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c29ydGFibGVfaXRlbXM8L3R0PiAodHJ1ZS9mYWxzZSkgLSBzZWxlY3RfbXVsdGlwbGUgb25seQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJSWYgc2V0IHRvIHRydWUgdGhlIGl0ZW1zIHdvbiYjMDM5O3QgYmUgc2hvd24gYXMgYSBtdWx0aXBsZSBzZWxlY3QgaW5wdXQgd2l0aCBvcHRpb25zIGJ1dCBhcyBhIGxpc3Qgb2YgY2hlY2tib3hlcyB0aGF0IGNhbiBiZSByZW9yZGVyZWQuPGJyIC8+RWFjaCByb3cgY29udGFpbnMgdGhlIGl0ZW0gbGFiZWwgYW5kIGEgY2hlY2tib3ggd2l0aCB0aGUgaXRlbSB2YWx1ZS48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IG9ubHkgdGhlIG9yZGVyIG9mIHRoZSA8c3Ryb25nPnNlbGVjdGVkPC9zdHJvbmc+IGl0ZW1zIHdpbGwgYmUgc3RvcmVkIGFuZCBhbHdheXMgZGlzcGxheWVkIG9uIHRoZSB0b3Agb2YgdGhlIGxpc3Qgd2hlbiByZWxvYWRpbmcgdGhlIGVkaXQgcGFnZS48YnIgLz4NCgkJCQlVbnNlbGVjdGVkIGl0ZW1zIHdpbGwgYXBwZW5kZWQgaW4gdGhhdCBvcmRlciB0aGV5IGFyZSBkZWZpbmVkIGluIHRoZSB0ZW1wbGF0ZTwvZW0+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAmcXVvdDtkYXRlJnF1b3Q7Ojwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXBfaG91cnM8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXN0ZXBzIG9mIGhvdXJzIGluIHRoZSBjbG9jayBkcm9wZG93bi4gKGRlZmF1bHQgaXMgMSkNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGFydF9ob3VyPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQl0aGUgc3RhcnQgaG91ciBvZiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDApDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZW5kX2hvdXI8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXRoZSBlbmQgaG91ciBvZiB0aGUgY2xvY2sgZHJvcGRvd24gKGRlZmF1bHQgaXMgMTIgb3IgMjMpDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2hvdzI0aDwvdHQ+ICh0cnVlL2ZhbHNlKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXNldCB0byBmYWxzZSBpZiBBTS9QTSBpcyB1c2VkLiAoZGVmYXVsdCBpcyB0cnVlKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXBfbWludXRlczwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJc3RlcHMgb2YgbWludXRlcyBpbiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDEwKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0YXJ0X21pbnV0ZTwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJdGhlIHN0YXJ0IG1pbnV0ZSBvZiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDApDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lbmRfbWludXRlPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQl0aGUgZW5kIG1pbnV0ZSBvZiB0aGUgY2xvY2sgZHJvcGRvd24gKGRlZmF1bHQgaXMgNTkpDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2hvd19jbG9jazwvdHQ+ICh0cnVlL2ZhbHNlKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXNldCB0byBmYWxzZSBpZiBubyB0aW1lIGRyb3Bkb3duIHNob3VsZCBiZSBkaXNwbGF5ZWQgKGRlZmF1bHQgaXMgdHJ1ZSk8YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IElmIHNldCB0byBmYWxzZSAwMDowMCBvJiMwMzk7Y2xvY2sgd2lsbCBiZSB1c2VkPC9lbT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kYXRlX2Zvcm1hdDwvdHQ+IChzdHJpbmcpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVGhlIHN0cmZ0aW1lIGRhdGUgZm9ybWF0IHRvIHNob3cgaW4gZnJvbnRlbmQuDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAmcXVvdDttdWx0aV9pbnB1dCZxdW90Ozo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pbnB1dHM8L3R0PiAoY3N2IG9mIGlucHV0IGlkcyB5b3UgY3JlYXRlZCBpbiB0aGUgYmFja2VuZCkgDQoJCTxiciAvPjxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD52YWx1ZV9kZWxpbWl0ZXI8L3R0PiAoYW55IHN0cmluZykgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGlzIGRlZmluZXMgYSBzdHJpbmcgdGhhdCBkZXZpZGVzIHRoZSB2YWx1ZXMgb2YgdGhlIGlucHV0cyBvZiBvbmUgbXVsdGlfaW5wdXQgd2hlbiBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLjxiciAvPg0KCQkJCURlZmF1bHQgaXMgJnF1b3Q7PCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxsaW1pdGVyIC0tPiZxdW90Ow0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmlucHV0X2RlbGltaXRlcjwvdHQ+IChhbnkgc3RyaW5nKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRoaXMgZGVmaW5lcyBhIHN0cmluZyB0aGF0IGRldmlkZXMgdGhlIG11bHRpX2lucHV0cyB5b3UgZGVmaW5lZCBmb3IgdGhpcyBjb250ZW50IGJsb2NrIHdoZW4gc3RvcmVkIGluIHRoZSBkYXRhYmFzZS48YnIgLz4NCgkJCQlEZWZhdWx0IGlzICZxdW90OzwhLS0gbXVsdGlfaW5wdXRfZGVsbGltaXRlciAtLT4mcXVvdDsNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPldoYXQgaXMgYSBtdWx0aV9pbnB1dCBmb3I/PC9zdHJvbmc+PC9wPg0KCQk8cD5BIG11bHRpX2lucHV0IGJsb2NrIGlzIGEgY29udGVudCBibG9jayB0aGF0IGNvbnNpc3RzIG9mIGRpZmZlcmVudCBpbnB1dCBmaWVsZHMuIDxiciAvPg0KCQlZb3UgY2FuIGRlZmluZSB0aGVtIGluIHRoZSBtb2R1bGUgYWRtaW5pc3RyYXRpb24gdXNpbmcgdGhlIHNhbWUgc3ludGF4IHlvdSB1c2UgaW4gYSB0ZW1wbGF0ZSB3aGVuIGRlZmluaW5nIGEgY29udGVudCBibG9jay48YnIgLz4NCgkJTXVsdGkgaW5wdXRzIGNhbiBiZSB1c2VkIGlmIHlvdSB3YW50IHRvIHN0b3JlIGRpZmZlcmVudCB2YWx1ZXMgaW4gb25lIGNvbnRlbnQgYmxvY2sgYW5kIHByb3ZpZGUgZGlmZmVyZW50IGlucHV0IHR5cGVzIGZvciBlYWNoIHZhbHVlcy48YnIgLz4NCgkJVGhpcyBjYW4gYmUgdXNlZnVsbCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBkcm9wZG93biB0byBzZWxlY3QgYSBtb2R1bGUgdG8gYmUgc2hvd24gaW4gZnJvbnRlbmQgYW5kIHRleHQgaW5wdXQgdG8gZGVmaW5lIHRoZSBtb2R1bGUgcGFyYW1ldGVycy48YnIgLz4NCgkJRXhhbXBsZSBmb3IgYSBtdWx0aV9pbnB1dCBpbiBwYWdlIHRlbXBsYXRlOjwvcD4NCgkJPHByZT4NCgkJPGNvZGU+DQoJCXtjb250ZW50IGJsb2NrPSZxdW90O21vZHVsZSZxdW90OyBsYWJlbD0mcXVvdDtQYWdlIG1vZHVsZXMmcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDttdWx0aV9pbnB1dCZxdW90OyBpbnB1dHM9JnF1b3Q7bW9kdWxlLG1vZHVsZSxtb2R1bGUsbW9kdWxlJnF1b3Q7fQ0KCQk8L2NvZGU+DQoJCTwvcHJlPg0KCQk8cD5FeGFtcGxlIGZvciB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgbXVsdGlfaW5wdXQgbmFtZWQgJnF1b3Q7bW9kdWxlJnF1b3Q7OjwvcD4NCgkJPHByZT4NCgkJPGNvZGU+DQoJCXtjb250ZW50IGJsb2NrPSZxdW90O21vZHVsZSBzZWxlY3Rpb24mcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDtkcm9wZG93biZxdW90OyBpdGVtcz0mcXVvdDt8TmV3c3xHYWxsZXJ5fE1lbnUmcXVvdDt9DQoJCXtjb250ZW50IGJsb2NrPSZxdW90O21vZHVsZSBwYXJhbXMmcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7IG9uZWxpbmU9dHJ1ZX0NCgkJPC9jb2RlPg0KCQk8L3ByZT4NCgkJPHA+V2hhdCBoYXBwZW5zIGlmIHlvdSBlZGl0IGEgcGFnZT88L3A+DQoJCTxwPkl0IHdpbGwgc2hvdyB5b3UgYSBmaWVsZHNldCB3aXRoIGxlZ2VuZCAmcXVvdDtQYWdlIG1vZHVsZXMmcXVvdDsuIDxiciAvPg0KCQlJbnNpZGUgdGhpcyBmaWVsZHNldCBpdCBzaG93cyB0aGUgbXVsdGlfaW5wdXQgbmFtZWQgJnF1b3Q7bW9kdWxlJnF1b3Q7IGZvdXIgdGltZXMuPGJyIC8+DQoJCVRoYXQgbWVhbnMgeW91IHNlZSBmb3VyIGxpbmVzIHdpdGggdHdvIGlucHV0IGZpZWxkcy4gQSBkcm9wZG93biBhbmQgYSB0ZXh0IGlucHV0LjwvcD4NCgkJPHA+V2hhdCBoYXBwZW5zIGlmIHlvdSBzYXZlIGEgcGFnZT88L3A+DQoJCTxwPlRoZSBtb2R1bGUgc3RvcmVzIHRoZSB2YWx1ZXMgYXMgb25lIHNpbmdsZSBjb250ZW50IHByb3BlcnR5IChha2EgY29udGVudGJsb2NrKSBhbmQgc2VwYXJhdGVzIHRoZSBpbnB1dHMgYnkgYSBnaXZlbiBkZWxpbWl0ZXIuPGJyIC8+DQoJCUxldCYjMDM5O3MgYXNzdW1lIHlvdSBzZWxlY3QgdGhlIE5ld3MgbW9kdWxlIGZvdXIgdGltZXMgd2l0aCBkaWZmZXJlbnQgbW9kdWxlIHBhcmFtcyBsaWtlIGNhdGVnb3J5PSZxdW90OzEmcXVvdDssIGNhdGVnb3J5PSZxdW90OzImcXVvdDssIGNhdGVnb3J5PSZxdW90OzMmcXVvdDssIGNhdGVnb3J5PSZxdW90OzQmcXVvdDsuPGJyIC8+DQoJCUluIHRoZSBkYXRhYmFzZSBpdCBzdG9yZXMgdGhpcyBzdHJpbmc6PC9wPg0KCQk8cHJlPg0KCQk8Y29kZT4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSZxdW90OzEmcXVvdDs8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT48YnIgLz4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSZxdW90OzImcXVvdDs8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT48YnIgLz4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSZxdW90OzMmcXVvdDs8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT48YnIgLz4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSZxdW90OzQmcXVvdDsNCgkJPC9jb2RlPg0KCQk8L3ByZT4NCgkJPHA+SW4geW91ciBwYWdlIHRlbXBsYXRlIHlvdSBjYW4gZXhwbG9kZSB0aGUgY29udGVudCBieSB0aGUgZGVsaW1pdGVycyBhbmQgY2FsbCB0aGUgc2VsZWN0ZWQgbW9kdWxlcy48L3A+DQoJCTxwPkZ1bGwgRXhhbXBsZTo8L3A+DQoJCTxwcmU+DQoJCTxjb2RlPg0KCQl7KiBkZWZpbmUgdGhlIGNvbnRlbnQgYmxvY2sgKn0NCgkJe2NvbnRlbnQgYmxvY2s9JnF1b3Q7bXlfbW9kdWxlcyZxdW90OyBibG9ja190eXBlPSZxdW90O211bHRpX2lucHV0JnF1b3Q7IGlucHV0cz0mcXVvdDtNb2R1bGUsTW9kdWxlLE1vZHVsZSxNb2R1bGUmcXVvdDsgYXNzaWduPSZxdW90O21vZHVsZXMmcXVvdDt9DQoJCQ0KCQl7KiBleHBsb2RlIGJsb2NrIGNvbnRlbnQgaW4gYW4gYXJyYXkgdG8gZ2V0IHRoZSBpbnB1dCBncm91cHMgKn0NCgkJe2Fzc2lnbiB2YXI9bW9kdWxlcyB2YWx1ZT0mcXVvdDs8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT4mcXVvdDt8ZXhwbG9kZTokbW9kdWxlc30NCgkJDQoJCXsqIGxvb3AgdGhyb3VnaCB0aGUgc2VsZWN0ZWQgbW9kdWxlcyAqfQ0KCQl7Zm9yZWFjaCBmcm9tPSRtb2R1bGVzIGl0ZW09JnF1b3Q7bW9kdWxlJnF1b3Q7fQ0KCQkJe2lmICRtb2R1bGUgIT0gJiMwMzk7JiMwMzk7fQ0KCQkJDQoJCQkJeyogZXhwbG9kZSB0aGUgaW5wdXQgdmFsdWVzIGluIG1vZHVsbmFtZSBhbmQgbW9kdWxlIHBhcmFtZXRlcnMgKn0NCgkJCQl7YXNzaWduIHZhcj1tb2R1bGVfaXRlbXMgdmFsdWU9JnF1b3Q7PCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0+JnF1b3Q7fGV4cGxvZGU6JG1vZHVsZX0NCgkJCQkNCgkJCQl7aWYkbW9kdWxlX2l0ZW1zWzBdICE9ICYjMDM5OyYjMDM5O30NCgkJCQkNCgkJCQkJeyogY2FsbCB0aGUgbW9kdWxlICp9DQoJCQkJCXtpZiBpc3NldCgkbW9kdWxlX2l0ZW1zWzFdKX0NCgkJCQkJCXtldmFsIHZhcj0kc21hcnR5LmxkZWxpbXxjYXQ6JiMwMzk7Y21zX21vZHVsZSBtb2R1bGU9JnF1b3Q7JiMwMzk7fGNhdDokbW9kdWxlX2l0ZW1zWzBdfGNhdDomIzAzOTsmcXVvdDsgJiMwMzk7fGNhdDokbW9kdWxlX2l0ZW1zWzFdfGNhdDokc21hcnR5LnJkZWxpbX0NCgkJCQkJe2Vsc2V9DQoJCQkJCQl7ZXZhbCB2YXI9JHNtYXJ0eS5sZGVsaW18Y2F0OiYjMDM5O2Ntc19tb2R1bGUgbW9kdWxlPSZxdW90OyYjMDM5O3xjYXQ6JG1vZHVsZV9pdGVtc1swXXxjYXQ6JiMwMzk7JnF1b3Q7JiMwMzk7fGNhdDokc21hcnR5LnJkZWxpbX0NCgkJCQkJey9pZn0NCgkJCQkJDQoJCQkJey9pZn0NCgkJCQkNCgkJCXsvaWZ9DQoJCQ0KCQl7L2ZvcmVhY2h9DQoJCTwvY29kZT4NCgkJPC9wcmU+DQoJPC9saT4NCjwvdWw+DQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCgk8bGk+VGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvIj5odHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLzwvYT48L2xpPg0KCTxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQo8YnIgLz4NCjxwPkZlZWwgZnJlZSByZXBvcnQgYW55IGtpbmQgb2YgZmVlZGJhY2suPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD4NCglBcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy48YnIgLz4NCglUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCw8YnIgLz4NCglidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZjxiciAvPg0KCU1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS48YnIgLz4NCglTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPGJyIC8+DQoJWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8YnIgLz4NCglhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZTxiciAvPg0KCUZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPGJyIC8+DQoJT3IgcmVhZCBpdCBvbmxpbmU6IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMPC9hPjxiciAvPg0KCVBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLg0KPC9wPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEwLCBHZW9yZyBCdXNjaCAoTmFOKS4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCjxiciAvPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8YnIgLz4NCjxwPjxzdHJvbmc+TW9kdWxlIHJlbGVhc2VzPC9zdHJvbmc+Li4uPC9wPg0KPHVsPg0KCTxsaT48cD48c3Ryb25nPjAuNy4xIChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgYnVnIGl0ZW0gIzU2NTE8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWNjZXNzPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY3Rpb248L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gcmVxdWlyZWQ8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNyAoTm92IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGNvbXBhdGliaWxpdHkgYnVnZml4ZXMgZm9yIENNU21zIDEuOSsgKG5lZWRzIENNU21zIDEuOSBtaW5pbXVtIG5vdyk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBzdXBwb3J0IG9mIHtjb250ZW50X21vZHVsZX0gdGFnPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIG5vX2NvbGxhcHNlPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjYuMiAoTm92IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIG1pbm9yIGJ1Z2ZpeCAoc2hvd2VkIHRhYnMgb2YgcHJldmlvdXMgdGVtcGxhdGUgd2hlbiB0ZW1wbGF0ZSB3YXMgY2hhbmdlZCk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNi4xIChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gc2V2ZXJhbCBidWdmaXhlczwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBjb21wYXRpYmlsaXR5IGJ1Z2ZpeGVzIGZvciBDTVNtcyAxLjk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBibG9ja190eXBlIG11bHRpX2lucHV0PC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjYgKE9jdCAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBzZXZlcmFsIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gYmxvY2tfZ3JvdXA8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5NaXNjOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIFJlbW92ZWQgZmlsZSBwaWNrZXIgKGFuZCBhc3NvY2lhdGVkIGJsb2NrX3R5cGVzIGltYWdlL2ZpbGUpIC0gdXNlIEdCRmlsZVBpY2tlciBpbnN0ZWFkLjwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC41IChTZXB0IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTI5MiAobWVtb3J5IGlzc3VlKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUyNTQgKGRpc2FibGUgd3lzaXd5ZyBub3Qgd29ya2luZyk8L3A+PC9saT4NCgkJCQkJPGxpPjxwPmZpeGVkIGJ1ZyBpdGVtICM1MzEwICh1cmxvbmx5IG5vdCB3b3JraW5nKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUzMTEgKGltYWdlIHBhdGhzIG5vdCBzdG9yZWQgJiMwMzk7Y29ycmVjdGx5JiMwMzk7KTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNjEgKEFkZCBzb3J0IHRvIGltYWdlIHR5cGUgLSBub3RpY2UgdGhlIGNoYW5nZSBvZiBwYXJhbSBmaWx0ZXIpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBwYXJhbXMgZXhjbHVkZV9wcmVmaXgsIGluY2x1ZGVfcHJlZml4LCBleGNsdWRlX3N1Zml4LCBpbmNsdWRlX3N1Zml4PC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNTMgKFRleHQgaW5wdXQgdG8gZGVmaW5lIGFkZCBwYXJhbXMgdG8gcmVkaXJlY3QgZnVuY3Rpb24pPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNDAgKERlZmF1bHQgdmFsdWVzIG9mIEFkdmFuY2VkQ29udGVudCBwYWdlIG9wdGlvbnMpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNDEgKHB1dCBGZXVBY2Nlc3MgaW4gQmxvY2t0YWIpPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+TWlzYzo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyBhcmUgc2hvd24gaW4gc2VwYXJhdGUgdGFiPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIEFkZGVkIG5ldyBwZXJtaXNzaW9uIHRvIG1hbmFnZSB0aGUgQWR2YW5jZWRDb250ZW50IG9wdGlvbnMgdGFiPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIHJlbW92ZWQgcGFyYW0gZmlsdGVyICh1c2UgbmV3IHBhcmFtcyBpbnN0ZWFkKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBwYXRoIHRvIGZpbGVzIGFyZSBzdG9yZWQgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIHBhcmFtIGRpciBvZiBibG9jayB0eXBlIGZpbGUvaW1hZ2UgbmVlZHMgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyIG9ubHkgKHRoZXJlIGlzIG5vIGltYWdlIHVwbG9hZHMgZGlyIHVzZWQgYW55bW9yZSk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNC4xIChBdWd1c3QgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gIzUxNTE6IGZpeGVkIHN0eWxlc2hlZXQgaXNzdWUgd2l0aCBleHBhbmQvY29sbGFwc2UgYnV0dG9ucyBvZiBjb250ZW50IGJsb2NrcyBpbiBJRS9TYWZhcmkuPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tICM1MTYyOiBQSFAgd2FybmluZ3MgaWYgYmFja2VuZCB1c2VycyB3aXRob3V0IHBlcm1pc3Npb24gJnF1b3Q7TWFuYWdlIEFsbCBBZHZhbmNlZENvbnRlbnQgQmxvY2tzJnF1b3Q7IG9wZW4gYW4gYWR2YW5jZWQgY29udGVudCBwYWdlIGFuZCBtdWx0aXBsZSBjb250ZW50IGJsb2NrcyBvZiBzYW1lIG5hbWUgd2VyZSB1c2VkIGluIHRlbXBsYXRlLjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZXh0cmEgZmllbGRzIGNvdWxkIG5vdCBiZSB1cGRhdGVkLjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZmV1IGFjY2VzcyBkaWQgbm90IHdvcmsuPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7ZGVsZXRlJnF1b3Q7IHRvIGxldCB1c2VycyBkZWxldGUgZmlsZXMgZXZlbiBpZiBubyBwZXJtaXNzaW9uICZxdW90O01vZGlmeSBGaWxlcyZxdW90OzwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDtjcmVhdGVfZGlycyZxdW90OyB0byBsZXQgdXNlcnMgY3JlYXRlX2RpcnMgZXZlbiBpZiBubyBwZXJtaXNzaW9uICZxdW90O01vZGlmeSBGaWxlcyZxdW90OzwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBuZXcgYmxvY2t0eXBlICZxdW90O25vdGUmcXVvdDsgdG8gY3JlYXRlIHNvbWUgc2luZ2xlIG5vdGVzIGZvciB5b3VyIGVkaXRvcnM8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5NaXNjOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIHJlbW92ZWQgZGVwZW5kZW5jeSBvZiBGaWxlTWFuYWdlcjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBibG9jayBvZiB0eXBlIGZpbGUgb3IgaW1hZ2Ugc3RvcmVzIHJlbGF0aXZlIHVybCBub3c8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYmxvY2sgdHlwZSBpbWFnZSBzaG93cyB0aHVtYm5haWwgaW4gYmFja2VuZCBwcmV2aWV3IGluc3RlYWQgb2YgZnVsbCBpbWFnZTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC40IChKdWx5IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkltcG9ydGFudCBub3RpY2U6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gY2hhbmdlZCBwYXJhbSAmcXVvdDt0eXBlJnF1b3Q7IHRvICZxdW90O2Jsb2NrX3R5cGUmcXVvdDsgc2luY2UgaXQgaW50ZXJmZXJlcyB3aXRoIHtjb250ZW50X21vZHVsZX0gdGFnPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gIzUxMDE6IHBhZ2VfdGFiICZxdW90O29wdGlvbnMmcXVvdDsgd2FzIHNob3duIHRvIHVzZXJzIHdpdGggbm8gcGVybWlzc2lvbiB0byBlZGl0IHBhZ2Ugb3B0aW9ucyBpZiBhIGNvbnRlbnQgYmxvY2sgd2FzIGFzc2lnbmVkIHRvIHRoYXQgdGFiLjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSAjNTA5NzogbGluayB0byBtaXNzaW5nIGNzcyByZW1vdmVkPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIG1pbWUtdHlwZSBpc3N1ZSAoYWRkZWQgcHJlZmVyZW5jZSB0byB0b2dnbGUgbWltZS10eXBlIHVzYWdlIG9uL29mZik8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgcGF0aCBpc3N1ZSB3aGVyZSB0aHVtYm5haWxzIHdlcmUgbm90IHNob3duPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIGNvbXBhdGliaWxpdHkgd2l0aCBDTVNtcyAxLjg8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gb3RoZXIgbWlub3IgYnVnZml4ZXM8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBNTEUgc3VwcG9ydDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDtzaG93X2Nsb2NrJnF1b3Q7IHRvIGVuYWJsZS9kaXNhYmxlIHRoZSB0aW1lIGRyb3Bkb3duIG9mIGJsb2NrdHlwZXMgJnF1b3Q7ZGF0ZSZxdW90OyBpbiBiYWNrZW5kPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O2RhdGVfZm9ybWF0JnF1b3Q7IHRvIGZvcm1hdCB0aW1lc3RhbXAgb2YgYmxvY2t0eXBlcyAmcXVvdDtkYXRlJnF1b3Q7IGluIGZyb250ZW5kPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O2Rlc2NyaXB0aW9uJnF1b3Q7PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGJ1bGsgZnVuY3Rpb24gdG8gc2V0IGFsbCBwYWdlcyB0byBBZHZhbmNlZENvbnRlbnQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgY29tcGF0aWJpbGl0eSB3aXRoIHtjb250ZW50X21vZHVsZX0gdGFnPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjMuNCAoSnVuZSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSAjNTA0NTogV2hlbiBzd2l0Y2hpbmcgZnJvbSBDb250ZW50IC0+IEFkdmFuY2VkIENvbnRlbnQgbG90cyBvZiBQSFAgZXJyb3JzPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tICM1MDU2OiBwYWdlX3RhYnMgbm90IHdvcmtpbmcgZm9yIHVzZXJzIHdpdGhvdXQgcGVybWlzc2lvbiAmcXVvdDtNYW5hZ2UgQWxsIENvbnRlbnQmcXVvdDs8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gIzUwNzM6IGluY29ycmVjdCBkaXNwbGF5IG9mIGZpbGVzIHdoZW4gb3BlbmluZyBmaWxlcGlja2VyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIG1pbm9yIGJ1ZyB3aGVyZSB0aGUgb3B0aW9uICZxdW90O2FsbG93X25vbmUmcXVvdDsgb2YgY29udGVudCBibG9ja3Mgb2YgdHlwZSBpbWFnZS9maWxlIHdhcyBub3Qgc2hvd24gd2hlbiB0ZW1wbGF0ZSBoYXMgYmVlbiBlZGl0ZWQ8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBmaWxlbWFuYWdlbWVudCBhbmQgdXBsb2FkIGZ1bmN0aW9ucyB0byBjb250ZW50IGJsb2NrcyBvZiB0eXBlIGltYWdlL2ZpbGU8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgYnJlYWRjdW1icyB0byBmaWxlcGlja2VyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkbWlucyBtYXkgYnJvd3NlIHRoZSBlbnRpcmUgZGlyIHRyZWUgaW4gZmlsZXBpY2tlciBmaWxlIGJyb3dzZXIgcmVnYXJkbGVzcyBvZiB0ZW1wbGF0ZSBwYXJhbXM8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgbWltZSB0eXBlIGNoZWNraW5nIHRvIGdldCBmaWxlIHR5cGU8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcmF3dXJsZW5jb2RlIGluIHNyYyBhdHRyaWJzIHRvIGRpc3BsYXkgaW1hZ2VzIHdpdGggd2VpcmQgZmlsZW5hbWVzLjwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPm1pc2NlbGxhbmVvdXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCBPT1Agc3R1ZmYgKHByaXZhdGUvcHVibGljL3Byb3RlY3RlZCkgdG8gZ2FpbiBtb3JlIGNvbXBhdGliaWxpdHkgd2l0aCBQSFA0PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGNoYW5nZWQgYWpheCBmdW5jdGlvbnMgdG8gcmV0dXJuIHhtbCB2YWx1ZXM8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCB1c2FnZSBvZiBJbWFnZU1hbmFnZXIgb25jZSBhbmQgZm9yIGFsbC4gKGNhdXNlZCBvbmx5IHRyb3VibGUpPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjMuMyAoSnVuZSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJPHVsPg0KCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJPHVsPg0KCQkJCTxsaT48cD4tIGFsaWFzIHdhcyBub3QgYWx3YXlzIGNvbnZlcnRlZCBwcm9wZXJseTwvcD48L2xpPg0KCQkJCTxsaT48cD4tIHVuc3VibWl0dGVkIGNvbnRlbnQgZ290IGxvc3QgaWYgc3dpdGNoaW5nIGZyb20gQ29udGVudCB0byBBZHZhbmNlZENvbnRlbnQ8L3A+PC9saT4NCgkJCTwvdWw+DQoJCTwvbGk+DQoJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQk8dWw+DQoJCQkJPGxpPjxwPi0gYWRkZWQgc3RhcnQvZW5kIGRhdGU8L3A+PC9saT4NCgkJCQk8bGk+PHA+LSByZW1vdmVkIHRpbWVwaWNrZXI7IHJlcGxhY2VkIGJ5IGEgc2ltcGxlIGRyb3Bkb3duPC9wPjwvbGk+DQoJCQkJPGxpPjxwPi0gY29tcGF0aWJpbGl0eSB3aXRoIHtjb250ZW50X2ltYWdlfTwvcD48L2xpPg0KCQkJPC91bD4NCgkJPC9saT4NCgk8L3VsPg0KCTxsaT48cD48c3Ryb25nPjAuMy4yIChKdW5lIDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGNoYW5naW5nIGJhY2sgdG8gZGVmYXVsdCBjb250ZW50IHR5cGUgb3IgY2hhbmdpbmcgdGVtcGxhdGUgY2F1c2VkIGZhdGFsIGVycm9yczwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBzbWFydHkgcHJvY2Vzc2luZyB3aGVuIHNhdmluZyBhIHBhZ2U8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGEgYnVnIHdpdGggcHJldmlldyB0YWI8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlLWFkZGVkIGV4cGFuZC9jb2xsYXBzZSBidXR0b24gdG8gdG9nZ2xlIGNvbnRlbnQgYmxvY2tzIGluIGJhY2tlbmQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtcyBlZGl0b3JfZ3JvdXBzL2VkaXRvcl91c2VycyB0byBzcGVjaWZ5IGNlcnRhaW4gdXNlcnMvZ3JvdXBzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZWRpdCBjZXJ0YWluIGJsb2NrczwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVtb3ZlZCBwYXJhbXMgc2VsZWN0ZWQvY2hlY2tlZDsgdXNlIHBhcmFtIGRlZmF1bHQgaW5zdGVhZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYmxvY2sgaWRzIHdpbGwgYmUgY29udmVydGVkIGZyb20gYmxvY2sgbmFtZSB1c2luZyBjb3JlIGZ1bmN0aW9uIG11bmdlX3N0cmluZ190b191cmwgKHRvIHJlbW92ZSBzcGVjaWFsIGNoYXJzLCB3aGl0ZXNwYWNlcywgdW1sYXV0cyBldGMuKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIG9mIGJsb2NrdHlwZSBkcm9wZG93bi9zZWxlY3RfbXVsdGlwbGUgd2hlcmUgZmlyc3QgaXRlbSBoYWQgYW4gZW1wdHkgbGFiZWwgaWYgb25seSB0aGUgcGFyYW0gJnF1b3Q7dmFsdWVzJnF1b3Q7IGlzIHVzZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHNvbWUgdGVtcGxhdGUgdmFycyBvZiB0aGUgZnJvbnRlbmQgdG8gYmUgYWxzbyBhY2Nlc3NpYmxlIGluIGJhY2tlbmQgKGUuZy46ICRwYWdlX2FsaWFzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7YWxsb3dfbm9uZSZxdW90OyB0byBhbGwgY29udGVudCBibG9jayB0eXBlcyB0byBzcGVjaWZ5IGlmIHRoZSBwcmVkZWZpbmVkIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSB1c2VkIGlmIG5vIHZhbHVlIGlzIGVudGVyZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBlbXB0eSB2YWx1ZXMgd2VyZSBuZXZlciBiZSBzdG9yZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBkZWZhdWx0IHZhbHVlIGluIGZyb250ZW5kIHdhcyBpZ25vcmVkIGlmIHRoZSAmcXVvdDthbGxvd19ub25lJnF1b3Q7IHBhcmFtIHdhcyBjaGFuZ2VkIGFmdGVyIGFuIGVtcHR5IHZhbHVlIGhhcyBiZWVuIHN0b3JlZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7c29ydGFibGVfaXRlbXMmcXVvdDsgdG8gY3JlYXRlIGEgc29ydGFibGUgbXVsdGlwbGUgc2VsZWN0IGxpc3QgKHNlbGVjdCBsaXN0IHdpbGwgcmVzdWx0IGluIGEgdGFibGUgd2l0aCBjaGVja2JveGVzOyBvbmx5IG9yZGVyIG9mIHNlbGVjdGVkIGl0ZW1zIHdpbGwgYmUgc3RvcmVkIGFuZCBzaG93ZWQgYXQgdGhlIHRvcCBvZiB0aGUgbGlzdDsgdW5zZWxlY3RlZCBpdGVtcyB3aWxsIGJlIGFwcGVuZGVkIGluIHRoYXQgb3JkZXIgdGhleSBhcmUgcGxhY2VkIGluIHRoZSB0ZW1wbGF0ZSk8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuMy4xIChNYXkgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSByZW1vdmVkIHRoZSByZW9yZGVyaW5nIHN0dWZmIGZvciBub3cgKGNhdXNlcyB0cm91YmxlIGF0IHRoaXMgdGltZSk8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbW92ZWQgdGhlIGRiIHN0dWZmIChwYXJhbXMgb2YgY29udGVudCBibG9ja3MgdGhhdCBhcmUgZGVmaW5lZCBpbiB0ZW1wbGF0ZSB3b24mIzAzOTt0IGJlIHNhdmVkIGluIG1vZHVsZSBkYiB0YWJsZSBhbnltb3JlIC0+IGhvcGVmdWxseSBzcGVlZCB1cCBsb2FkaW5nIHRpbWUpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIGR1cGxpY2F0ZSBjb250ZW50IGJsb2NrczwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPkFkdmFuY2VkQ29udGVudCAwLjMgKE1heSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIHJld3JpdGUgY29kZTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYnVnZml4ZXM8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbmFtZWQgdG8gQWR2YW5jZWRDb250ZW50PC9wPjwvbGk+DQoJCQk8bGk+PHA+LSB1c2luZyBzZXBhcmF0ZSBtb2R1bGUgdGVtcGxhdGUgbm93IHRvIGRzcGxheSBjb250ZW50IGJsb2NrczwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVtb3ZlZCBwYWdlIGFsaWFzIGluaGVyaXRhbmNlPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCjwvdWw+DQo8dWw+DQoJPGxpPjxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAzIChBcHJpbCAyMDEwIC0gZGlzY29udGludWVkKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIE1ham9yIEJ1Z2ZpeCAobWlzc2luZyAmcXVvdDs7JnF1b3Q7IGFuZCBzdHJhbmdlIGludmlzaWJsZSBpbnZhbGlkIGNoYXJzKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAyIChBcHJpbCAyMDEwIC0gZGlzY29udGludWVkKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIGZpeGVkIGEgYnVnIHdpdGggcGFyYW0gJnF1b3Q7ZGVsaW1pdGVyJnF1b3Q7PC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHNtYXJ0eSBwcm9jZXNzaW5nPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBpbmhlcml0YW5jZSBvZiAmcXVvdDtTaG93IGxvZ2luIGZvcm0mcXVvdDs8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mIHBhZ2UgYWxpYXMgdG8gYWRkIGl0IGFzIHByZWZmaXg7IHNvIGlmIHlvdSBoYXZlIGEgcGFnZSBjYWxsZWQgJnF1b3Q7bWVtYmVycyZxdW90OyBhbmQgc2VsZWN0IGZvciBlYWNoIGNoaWxkIHBhZ2UgJnF1b3Q7aW5oZXJpdCBwYWdlIGFsaWFzJnF1b3Q7IGFsbCBjaGlsZCBwYWdlcyBhbGlhc2VzIHdpbGwgc3RhcnQgd2l0aCAmcXVvdDttZW1iZXJzXyZxdW90OzsgbWFrZXMgZmlsdGVyaW5nIG9mIG1lbnUgZW50cmllcyB3aXRoIE1lbnVNYW5hZ2VyIHBhcmFtICZxdW90O2V4Y2x1ZGVwcmVmZml4JnF1b3Q7IG9yICZxdW90O2luY2x1ZGVwcmVmZml4JnF1b3Q7IGVhc2llci48L3A+PC9saT4NCgkJCTxsaT48cD4tIG1pbm9yIGJ1Z2ZpeGVzPC9wPjwvbGk+IA0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPlhDb250ZW50IEJFVEEgKEFwcmlsIDIwMTApOjwvc3Ryb25nPiBpbml0aWFsIHJlbGVhc2U8L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIGNvbnZlcnRlZCB0aGUgc2luZ2xlIGZpbGUgaW50byBhIG1vZHVsZTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVuYW1lZCBwYXJhbXM7IHNlZSBtb2R1bGUgaGVscCBmb3IgbW9yZSBkZXRhaWxzPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCjwvdWw+DQo8cD48c3Ryb25nPlNpbmdsZSBmaWxlIHJlbGVhc2VzIChkaXNjb250aW51ZWQpPC9zdHJvbmc+Li4uPC9wPg0KPHVsPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz4xLjQgKE1hcmNoIDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gY2xlYW51cCBjb2RlIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIG1pbm9yIGJ1Z2ZpeGVzIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHJlZGlyZWN0IHBhZ2UgaWYgZmV1IGlzIG5vdCBsb2dnZWQgaW4gLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgaW5oZXJpdGFuY2Ugb2YgZmV1X2FjY2VzcyBhbmQgcmVkaXJlY3RfcGFnZSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWNjZXNzIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY3Rpb24gLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gcmVkaXJlY3RfcGFnZSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBibG9ja19vbmx5IC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHNtYXJ0eSBsb2dpYyBpbiBiYWNrZW5kIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBzdHlsZSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmlsdGVyIChmaWx0ZXJpbmcgaW1hZ2VzIGluIGJhY2tlbmQpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBJbWdNb2RlIChkcm9wZG93biBvciBJbWFnZU1hbmFnZXIpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBzbWFydHlPbiAoZm9yIHByb2Nlc3Npbmcgc21hcnR5IHZhcnMgb2YgdGhlIHRlbXBhdGUgaW4gYmFja2VuZCkgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjEuMyAoQXByaWwgMjAwOSk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBDTVNtcyAxLjYuKiByZWFkeSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBmZXUgYWNjZXNzIG9wdGlvbiAtIChOYU4pPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+MS4yIChNYXJjaCAyMDA5KTo8L3N0cm9uZz4gaW5pdGlhbCByZWxlYXNlPC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBBIHNpbmdsZSBmaWxlIENvbnRlbnQyLmluYy5waHAgdGhhdCBuZWVkcyB0byBiZSBwYWNlZCBpbiBsaWIvY2xhc3Nlcy9jb250ZW50dHlwZXMuPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBsYXlvdXQvb3B0aW9ucyBvZiBiYWNrZW5kIHBhbmVsIGNhbiBiZSBjb250cm9sZWQgYnkgYWRkaXRpb25hbCBzbWFydHkgcGFyYW1zIGluIHRoZSB0ZW1wbGF0ZTsgaW50ZWdyYXRlZCB0aGUge2NvbnRlbnRfaW1hZ2V9IHRhZyAtIChtb2QgYnkgTmFOKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQo8L3VsPg0KPGJyIC8+JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sncWNhJ10gPSAnUDAtMTYwODkyNjA0MC0xMjcxMTQ0MTc1NzgzJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzg2Mzg1OTA0LjEyNzExNTc5OTcuMTI5NzE2Nzc4MS4xMjk3MTcwODU2LjE2Nic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTcxNzA4NTYuMTY2LjE1MS51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTI5NzE3MDg1Nic7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sl_SI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ0FkdmFuY2VkQ29udGVudCddID0gJ05hcHJlZG5lIFZzZWJpbmUnOwokbGFuZ1snYWR2YW5jZWRjb250ZW50X3RhYm5hbWUnXSA9ICdOYXByZWRuZSBOYXN0YXZpdHZlJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSBOYXByZWRuZVZzZWJpbmUgJXMgamUgaW5zdGFsaXJhbic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBOYXByZWRuZVZzZWJpbmUgJXMgemJyaXNhbic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBBZHZhbmNlZENvbnRlbnQgdXBncmFkZWQgdG8gJXMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdNb2R1bGUgQWR2YW5jZWRDb250ZW50ICVzIGluc3RhbGxlZC4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsZSBBZHZhbmNlZENvbnRlbnQgJXMgdW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2NvbmZpcm11bmluc3RhbGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdW5pbnN0YWxsIHRoZSBtb2R1bGUgQWR2YW5jZWRDb250ZW50Pyc7CiRsYW5nWydub3RpY2VfZHVwbGljYXRlY29udGVudCddID0gJzxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVGhpcyBibG9jayBpcyB1c2VkIG11bHRpcGxlIHRpbWVzIGluIHRlbXBsYXRlLiBZb3Ugb25seSBzZWUgdGhlIGZpcnN0IGJsb2NrIGhlcmUuPC9lbT4nOwokbGFuZ1snZXJyb3JfYmFzaWNhdHRyaWInXSA9ICc8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IENhbm5vdCB1c2UgYmFzaWMgY29udGVudCBwcm9wZXJ0eSBuYW1lICYjMDM5OyVzJiMwMzk7IGFzIHZhbHVlIG9mIHBhcmFtICYjMDM5O2Jsb2NrJiMwMzk7LiA8YnIgLz5UaGlzIGJsb2NrIGlzIGRpc2FibGVkLiBDaGVjayB5b3VyIHBhZ2UgdGVtcGxhdGUgYW5kIGNob3NlIGEgZGlmZmVyZW50IHZhbHVlIG9mIHBhcmFtICYjMDM5O2Jsb2NrJiMwMzk7LjwvZW0+JzsKJGxhbmdbJ2Vycm9yX2V4cGlyZWRhdGUnXSA9ICdFbmQgZGF0ZSBtdXN0IGJlIGxhdGVyIHRoYW4gc3RhcnQgZGF0ZS4nOwokbGFuZ1sneW91YXJlaW50ZXh0J10gPSAnQ3VycmVudCBkaXJlY3RvcnknOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ0ltYWdlc2l6ZSc7CiRsYW5nWydzaXplJ10gPSAnRmlsZXNpemUnOwokbGFuZ1snaW5oZXJpdF9mcm9tX3BhcmVudCddID0gJ0luaGVyaXQgZnJvbSBwYXJlbnQnOwokbGFuZ1snbm9uZSddID0gJ25vbmUnOwokbGFuZ1snaW52YWxpZCddID0gJ2ludmFsaWQnOwokbGFuZ1snaW52YWxpZF9ibG9ja3R5cGUnXSA9ICc8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IEludmFsaWQgdmFsdWUgJiMwMzk7JXMmIzAzOTsgb2YgcGFyYW0gYmxvY2tfdHlwZSBpbiBibG9jayAmIzAzOTslcyYjMDM5Oy48YnIgLz5DaGVjayB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9lbT4nOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50X2Jsb2NrcGFyYW1zJ10gPSAnPGVtPjxzdHJvbmc+RXJyb3I6PC9zdHJvbmc+IEluc3VmZmljaWVudCBwYXJhbXMuIDxiciAvPk1pc3NpbmcgcGFyYW0gJiMwMzk7JXMmIzAzOTsgZm9yIGJsb2NrICYjMDM5OyVzJiMwMzk7LiBDaGVjayB5b3VyIHBhZ2UgdGVtcGxhdGUuPC9lbT4nOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snZnJvbnRlbmRhY2Nlc3MnXSA9ICdGcm9udGVuZCBhY2Nlc3MnOwokbGFuZ1sncmVkaXJlY3RwYWdlJ10gPSAnUmVkaXJlY3QgUGFnZSBpZiBubyBhY2Nlc3MnOwokbGFuZ1snc2hvd2xvZ2luZm9ybSddID0gJ1Nob3cgbG9naW4gZm9ybSc7CiRsYW5nWydyZWdpc3RlcmVkdXNlcnMnXSA9ICdSZWdpc3RlcmVkIHVzZXJzIG9ubHknOwokbGFuZ1snYmxvY2snXSA9ICdCbG9jayc7CiRsYW5nWyd1c2VleHBpcmVkYXRlJ10gPSAnVXNlIGV4cGlyZSBkYXRlJzsKJGxhbmdbJ3N0YXJ0ZGF0ZSddID0gJ1N0YXJ0IERhdGUnOwokbGFuZ1snZW5kZGF0ZSddID0gJ0VuZCBEYXRlJzsKJGxhbmdbJ2Jsb2NrY29udGVudCddID0gJ0Jsb2NrIENvbnRlbnQnOwokbGFuZ1snc2V0cGFnZWluYWN0aXZlJ10gPSAnU2V0IFBhZ2UgdG8gSW5hY3RpdmUnOwokbGFuZ1snZGVsZXRlcGFnZSddID0gJ0RlbGV0ZSBQYWdlJzsKJGxhbmdbJ3VuaW5zdGFsbGFjdGlvbiddID0gJ1VuaW5zdGFsbCBhY3Rpb24nOwokbGFuZ1snc2V0Y29udGVudDEnXSA9ICdTZXQgYWxsIFBhZ2VzIG9mIEFkdmFuY2VkQ29udGVudCBiYWNrIHRvIHR5cGUgQ29udGVudCc7CiRsYW5nWydzZXRjb250ZW50MiddID0gJ1NldCBhbGwgUGFnZXMgb2YgQWR2YW5jZWRDb250ZW50IGJhY2sgdG8gdHlwZSBDb250ZW50IGFuZCByZW1vdmUgYWRkaXRpb25hbCBjb250ZW50IGJsb2Nrcyc7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdQcmVmZXJlbmNlcyB1cGRhdGVkJzsKJGxhbmdbJ3N1Y2Nlc3MnXSA9ICdPayc7CiRsYW5nWydlcnJvciddID0gJ0Vycm9yJzsKJGxhbmdbJ2RlbGV0ZXBhZ2VzJ10gPSAnRGVsZXRlIGFsbCBwYWdlcyBvZiB0eXBlIEFkdmFuY2VkQ29udGVudCc7CiRsYW5nWydpbXBvcnRwYWdlcyddID0gJ1NldCBhbGwgUGFnZXMgb2YgdHlwZSAlcyB0byB0eXBlICVzLic7CiRsYW5nWydwYWdlc2ltcG9ydGVkJ10gPSAnQWxsIGNvbnRlbnQgcGFnZXMgc2V0IHRvIEFkdmFuY2VkQ29udGVudC4nOwokbGFuZ1snY29uZmlybWltcG9ydCddID0gJ0RvIHlvdSByZWFsbHkgd2FudCB0byBjaGFuZ2UgdGhlIGNvbnRlbnQgdHlwZSBvZiBhbGwgY29udGVudCBwYWdlcz8nOwokbGFuZ1sndG9nZ2xlX21lc3NhZ2UnXSA9ICdIaWRlIHRoaXMgbWVzc2FnZSc7CiRsYW5nWydjb250ZW50c2V0dGluZ3MnXSA9ICdEZWZhdWx0IEFkdmFuY2VkQ29udGVudCBzZXR0aW5ncyc7CiRsYW5nWydyZWRpcmVjdHBhcmFtcyddID0gJ1VSTCBwYXJhbXMgdG8gYXBwZW5kIHdoZW4gcmVkaXJlY3RpbmcnOwokbGFuZ1snZXZhbHVhdGVzbWFydHknXSA9ICdVc2Ugc21hcnR5IHRvIHByb2Nlc3MgdGhlIHBhcmFtcyc7CiRsYW5nWydlcnJvcl9sb2FkaW5nX21vZHVsZSddID0gJzxlbT48c3Ryb25nPkVycm9yOjwvc3Ryb25nPiBDb3VsZCBub3QgbG9hZCBtb2R1bGUgJiMwMzk7JXMmIzAzOTsuIChEZWZpbmVkIGZvciBibG9jayAmIzAzOTslcyYjMDM5OyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuKTwvZW0+JzsKJGxhbmdbJ2Vycm9yX2NvbnRlbnRibG9ja19zdXBwb3J0J10gPSAnPGVtPjxzdHJvbmc+RXJyb3I6PC9zdHJvbmc+IE1vZHVsZSAmIzAzOTslcyYjMDM5OyBkb2VzIG5vdCBzdXBwb3J0IGNvbnRlbnRibG9ja3MuIChEZWZpbmVkIGZvciBibG9jayAmIzAzOTslcyYjMDM5OyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUuKTwvZW0+JzsKJGxhbmdbJ3N1Y2Nlc3NfaW1wb3J0cGFnZXMnXSA9ICdBbGwgcGFnZXMgb2YgdHlwZSAlcyBzdWNjZXNmdWxseSBjaGFuZ2VkIHRvICVzJzsKJGxhbmdbJ3Nob3dfYWR2YW5jZWRjb250ZW50X29wdGlvbnMnXSA9ICdTaG93IEFkdmFuY2VkQ29udGVudCBvcHRpb25zIHRhYic7CiRsYW5nWydkaXNwbGF5X3NldHRpbmdzJ10gPSAnJXMgZGlzcGxheSBzZXR0aW5ncyc7CiRsYW5nWydzYXZlX2NvbGxhcHNlX3N0YXR1cyddID0gJ1NhdmUgY29sbHBhc2Ugc3RhdHVzIG9mICVzJzsKJGxhbmdbJ2NvbnRlbnRfYmxvY2tzJ10gPSAnY29udGVudCBibG9ja3MnOwokbGFuZ1snYmxvY2tfbWVzc2FnZSddID0gJ2NvbnRlbnQgYmxvY2sgbWVzc2FnZSc7CiRsYW5nWydibG9ja19ncm91cHMnXSA9ICdibG9jayBncm91cHMnOwokbGFuZ1snY29sbGFwc2VfZGVmYXVsdCddID0gJ0NvbGxhcHNlICVzIGJ5IGRlZmF1bHQnOwokbGFuZ1sncGVyX3BhZ2UnXSA9ICdwZXIgcGFnZSc7CiRsYW5nWydwZXJfdGVtcGxhdGUnXSA9ICdwZXIgdGVtcGxhdGUnOwokbGFuZ1snYm90aDEnXSA9ICd0ZW1wbGF0ZSBPUiBwYWdlICc7CiRsYW5nWydib3RoMiddID0gJ3RlbXBsYXRlIEFORCBwYWdlJzsKJGxhbmdbJ2NvbnRlbnQnXSA9ICdDb250ZW50JzsKJGxhbmdbJ2NvbnRlbnQyJ10gPSAnQWR2YW5jZWQgQ29udGVudCc7CiRsYW5nWydwcmVmcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ211bHRpX2lucHV0J10gPSAnTXVsdGkgSW5wdXRzJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbCddID0gJ011bHRpIElucHV0IFRlbXBsYXRlcyc7CiRsYW5nWydhZGRfbXVsdGlfaW5wdXQnXSA9ICdBZGQgbmV3IG11bHRpIGlucHV0JzsKJGxhbmdbJ2FkZF9tdWx0aV9pbnB1dF90cGwnXSA9ICdBZGQgbmV3IG11bHRpIGlucHV0IHRlbXBsYXRlJzsKJGxhbmdbJ2lucHV0X2lkJ10gPSAnSW5wdXQgSUQnOwokbGFuZ1snaW5wdXRfZmllbGRzJ10gPSAnSW5wdXQgZmllbGRzJzsKJGxhbmdbJ3RwbF9uYW1lJ10gPSAnVGVtcGxhdGUgbmFtZSc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGlzIGEgcmVxdWlyZWQgZmllbGQgYW5kIG1heSBub3QgYmUgZW1wdHknOwokbGFuZ1snZXJyb3JfaW5wdXRfZmllbGRzJ10gPSAnSW5wdXQgZmllbGRzIGlzIGEgcmVxdWlyZWQgZmllbGQgYW5kIG1heSBub3QgYmUgZW1wdHkuJzsKJGxhbmdbJ2Vycm9yX2lucHV0X2lkJ10gPSAnTm8gaW5wdXQgaWQgZ2l2ZW4gb3IgaW5wdXQgaWQgYWxyZWFkeSBleGlzdHMuJzsKJGxhbmdbJ2Vycm9yX2lucHV0X2lkX2V4aXN0cyddID0gJ0lucHV0IElEIGlzIGFscmVhZHkgaW4gdXNlLiBDaG9vc2UgYSBkaWZmZXJlbnQgb25lLiAobXVzdCBiZSB1bmlxdWUpJzsKJGxhbmdbJ211bHRpX2lucHV0X2FkZGVkJ10gPSAnTXVsdGkgSW5wdXQgYWRkZWQuJzsKJGxhbmdbJ211bHRpX2lucHV0X2RlbGV0ZWQnXSA9ICdNdWx0aSBJbnB1dCBkZWxldGVkLic7CiRsYW5nWydtdWx0aV9pbnB1dF91cGRhdGVkJ10gPSAnTXVsdGkgSW5wdXQgdXBkYXRlZC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsX2FkZGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgYWRkZWQuJzsKJGxhbmdbJ211bHRpX2lucHV0X3RwbF91cGRhdGVkJ10gPSAnTXVsdGkgSW5wdXQgdGVtcGxhdGUgdXBkYXRlZC4nOwokbGFuZ1snbXVsdGlfaW5wdXRfdHBsX2RlbGV0ZWQnXSA9ICdNdWx0aSBJbnB1dCB0ZW1wbGF0ZSBkZWxldGVkLic7CiRsYW5nWydkZWxldGVfc2VsZWN0ZWQnXSA9ICdEZWxldGUgc2VsZWN0ZWQgaXRlbXMnOwokbGFuZ1snY29uZmlybV9kZWxldGUnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgZG8gZGVsZXRlIHRoaXMgaXRlbT8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfc2VsZWN0ZWQnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgZG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBpdGVtcz8nOwokbGFuZ1sndXNlX2NvbnRlbnR0eXBlJ10gPSAnVXNlIGNvbnRlbnR0eXBlJzsKJGxhbmdbJ2hlbHBfdHBsX3ZhcnMnXSA9ICc8cD48c3Ryb25nPlRlbXBsYXRlIHZhcnM6PC9zdHJvbmc+PC9wPg0KPHA+PHByZT48Y29kZT57JGlucHV0c308L2NvZGU+PC9wcmU+IGlzIGFuIGFycmF5IHRoYXQgY29udGFpbnMgYWxsIGRlZmluZWQgaW5wdXQgZWxlbWVudHMgb2YgdGhhdCBtdWx0aSBpbnB1dCBibG9jay48YnIgLz4NCkVhY2ggaW5wdXQgZWxlbWVudCBpcyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGFsbCBpdHMgcGFyYW1zLiA8YnIgLz4NClNlZSBtb2R1bGUgaGVscCBmb3IgbW9yZSBpbmZvLjxiciAvPg0KQWRkaXRpb25hbCBwYXJhbSBpcyAmcXVvdDtpbnB1dCZxdW90OyB0aGF0IHdpbGwgcHJpbnQgb3V0IHRoZSBpbnB1dCBlbGVtZW50LjxiciAvPg0KVG8gYWNjZXNzIHRoZSBwYXJhbXMgdXNlIHRoZSBkb3Qgc3ludGF4LjxiciAvPg0KRXhhbXBsZTo8L3A+DQo8cHJlPjxjb2RlPntmb3JlYWNoIGZyb209JGlucHV0cyBpdGVtPWVsbX0NCgl7JGVsbS5sYWJlbH06Jm5ic3A7eyRlbG0uaW5wdXR9PGJyIC8+DQp7L2ZvcmVhY2h9PC9jb2RlPjwvcHJlPic7CiRsYW5nWydoZWxwJ10gPSAnPGJyIC8+DQo8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4NCjxwPlRoaXMgaXMgYSBtb2RpZmljYXRpb24gb2YgdGhlIGRlZmF1bHQgY29udGVudCB0eXBlICZxdW90O0NvbnRlbnQmcXVvdDsgb2YgQ01TbXMuPGJyIC8+DQpJdCBwcm92aWRlcyBtb3JlIGZsZXhpYmlsaXR5IGJ5IGNyZWF0aW5nIGN1c3RvbSBpbnB1dCBjb250cm9scyBpbiBiYWNrZW5kLjxiciAvPg0KVXNlcnMgY2FuIGFkZCBkcm9wZG93bnMsIG11bHRpcGxlIHNlbGVjdCBsaXN0cywgY2hlY2tib3hlcywgZ3JvdXAgY29udGVudCBibG9ja3MgDQppbiBzZXBhcmF0ZSBwYWdlIHRhYnMsIGJsb2NrIHRhYnMgaW5zaWRlIGEgcGFnZSB0YWIgb3IgaW4gZmllbGRzZXRzIGJ5IGp1c3QgDQp1c2luZyBhZGRpdGlvbmFsIHBhcmFtcyBpbiB0aGUgdGVtcGxhdGUgd2hlbiBjYWxsaW5nIHRoZSBjb250ZW50LjxiciAvPg0KSXQgYWxzbyBhZGRzIGFiaWxpdHkgdG8gZ3JhbnQgYWNjZXNzIG9mIHBhZ2VzIHRvIGNlcnRhaW4gdXNlcnMgb2YgdGhlIA0KRnJvbnRFbmRVc2VycyBtb2R1bGUgYW5kIGhpZGUgdGhlIGNvbnRlbnQsIHJlcGxhY2UgaXQgYnkgdGhlIGxvZ2luIGZvcm0gb2YgdGhlIA0KRnJvbnRFbmRVc2VycyBtb2R1bGUgb3IgcmVkaXJlY3QgdG8gYSBzcGVjaWZpZWQgcGFnZSBzaG93aW5nIHRoZSBsb2dpbiBmb3JtIG9yIA0KanVzdCByZWRpcmVjdCB3aXRob3V0IGRvaW5nIGFueXRoaW5nIGVsc2UuPGJyIC8+DQpQYWdlIHByb3BlcnR5IG9mIEZyb250RW5kVXNlcnMgYWNjZXNzIGFuZCByZWRpcmVjdCBwYWdlIGNhbiBiZSBpbmhlcml0ZWQgYnkgDQpwYXJlbnQgcGFnZXMuPC9wPg0KPHA+WW91IGNhbiBldmVuIHVzZSBzbWFydHkgbG9naWMgaW4gcGFyYW1ldGVyIHZhbHVlcy4gVGhhdCBtZWFucyB5b3UgY2FuIHVzZSB0aGUgDQpyZXN1bHQgb2YgYSBwbHVnaW4sIGFuIHVkdCBvciBldmVuIGEgbW9kdWxlIG9yIGp1c3QgdGhlIGNvbnRlbnQgb2YgYSBnbG9iYWwgDQpjb250ZW50IGJsb2NrIGFzIHBhcmFtZXRlciB2YWx1ZSB0byBjcmVhdGUgZHluYW1pYyB2YWx1ZXMuPC9wPg0KPGgzPkhvdyBpcyBpdCB1c2VkPzwvaDM+DQo8cD5BZnRlciBpbnN0YWxsYXRpb24gdGhlIG1vZHVsZSBzZXR0aW5ncyBjYW4gYmUgZm91bmQgaW4gJnF1b3Q7RXh0ZW5zaW9ucy0+QWR2YW5jZWRDb250ZW50JnF1b3Q7LjwvcD4NCjxwPkFkZGl0aW9uYWxseSB5b3Ugd2lsbCBoYXZlIGEgbmV3IGNvbnRlbnQgdHlwZSAmcXVvdDtBZHZhbmNlZENvbnRlbnQmcXVvdDsgYXZhaWxhYmxlIA0Kd2hlbiBhZGRpbmcvZWRpdGluZyBhIHBhZ2UuPGJyIC8+DQo8cD5BZGQgdGhlIGZvbGxvd2luZyBwYXJhbXMgdG8geW91ciBjb250ZW50IHRhZyBpbiB5b3VyIHBhZ2UgdGVtcGxhdGUsIA0KY2hhbmdlIHRoZSBjb250ZW50IHR5cGUgb2YgeW91ciBwYWdlIHRvICZxdW90O0FkdmFuY2VkQ29udGVudCZxdW90OyBhbmQgc2VlIHdoYXQgaGFwcGVucyANCmluIGJhY2tlbmQuLi48L3A+DQo8aDM+V2hhdCBwYXJhbWV0ZXJzIGFyZSBhdmFpbGFibGU/PC9oMz4NCjxwPmFsbCBwYXJhbXMgYXJlIG9wdGlvbmFsPC9wPg0KPHA+PHN0cm9uZz5EZWZhdWx0IHBhcmFtczo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9jazwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlBbGxvd3MgeW91IHRvIGhhdmUgbW9yZSB0aGFuIG9uZSBjb250ZW50IGJsb2NrIHBlciBwYWdlLiBJZiBtdWx0aXBsZSBjb250ZW50IHRhZ3MgYXJlIHB1dCBvbiBhIHRlbXBsYXRlLCB0aGF0IG51bWJlciBvZiBlZGl0IGJveGVzIHdpbGwgYmUgZGlzcGxheWVkIGlmIHRoZSBwYWdlIGlzIGVkaXRlZC48YnIgLz4NCgkJCQllLmcuOiA8Y29kZT57Y29udGVudCBibG9jaz0mcXVvdDtTZWNvbmQgQ29udGVudCBibG9jayZxdW90O308L2NvZGU+PGJyIC8+DQoJCQkJTm93LCBpZiB5b3UgZWRpdCBhIHBhZ2UgdGhlcmUgd2lsbCBiYSBhIHRleHRhcmVhIGNhbGxlZCAmcXVvdDtTZWNvbmQgQ29udGVudCBibG9jayZxdW90Oy48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IFRoZSBuYW1lIG9mIHRoZSBjb250ZW50IGJsb2NrIG1heSBjb250YWluIG9ubHkgbGV0dGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIChubyB3aGl0ZXNwYWNlcywgc3BlY2lhbCBjaGFycywgdW1sYXV0cyBldGMuKS4gT3RoZXJ3aXNlIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGEgcHJvcGVyIG5hbWUgKHNpbWlsYXIgdG8gdGhlIHBhZ2UgYWxpYXMpLjwvZW0+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+d3lzaXd5ZzwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+SWYgc2V0IHRvIGZhbHNlLCB0aGVuIGEgd3lzaXd5ZyB3aWxsIG5ldmVyIGJlIHVzZWQgd2hpbGUgZWRpdGluZyB0aGlzIGJsb2NrLiBJZiB0cnVlLCB0aGVuIGl0IGFjdHMgYXMgbm9ybWFsLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5vbmVsaW5lPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT5JZiBzZXQgdG8gdHJ1ZSwgdGhlbiBvbmx5IG9uZSBlZGl0IGxpbmUgd2lsbCBiZSBzaG93biB3aGlsZSBlZGl0aW5nIHRoaXMgYmxvY2suIElmIGZhbHNlLCB0aGVuIGl0IGFjdHMgYXMgbm9ybWFsLiBPbmx5IHdvcmtzIHdoZW4gYmxvY2sgcGFyYW1ldGVyIGlzIHVzZWQuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmRlZmF1bHQ8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+RGVmYXVsdCBjb250ZW50IHdoZW4gY3JlYXRpbmcgYSBuZXcgcGFnZS48L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+bGFiZWw8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+UHJvbXB0IGZvciB0aGlzIGNvbnRlbnQgYmxvY2suIFBvc3NpYmxlIHZhbHVlcyBhcmUgYW55IGV4cHJlc3Npb24uIElmIGJsYW5rLCB0aGUgdW5jb252ZXJ0ZWQgYmxvY2sgbmFtZSBpcyB1c2VkLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hc3NpZ248L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJQXNzaWducyB0aGUgY29udGVudCB0byBhIHNtYXJ0eSBwYXJhbWV0ZXIsIHdoaWNoIHlvdSBjYW4gdGhlbiB1c2UgaW4gb3RoZXIgYXJlYXMgb2YgdGhlIHBhZ2UsIG9yIHVzZSB0byB0ZXN0IHdoZXRoZXIgY29udGVudCBleGlzdHMgaW4gaXQgb3Igbm90LjxiciAvPg0KCQkJCUV4YW1wbGUgb2YgcGFzc2luZyBwYWdlIGNvbnRlbnQgdG8gYSBVc2VyIERlZmluZWQgVGFnIGFzIGEgcGFyYW1ldGVyOjxiciAvPg0KCQkJCTxjb2RlPntjb250ZW50IGFzc2lnbj1wYWdlY29udGVudH08YnIgLz4NCgkJCQl7dGFibGVfb2ZfY29udGVudHMgdGhlcGFnZWNvbnRlbnQ9JnF1b3Q7JHBhZ2Vjb250ZW50JnF1b3Q7fTwvY29kZT48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IEZvciBzb21lIHJlYXNvbiB0aGlzIHBhcmFtIGRvZXMgbm90IHdvcmsgYXQgdGhlIG1vbWVudCB3aXRoIHRoZSBtb2R1bGUgcGx1Z2luIHtBdmFuY2VkQ29udGVudH0uIFVzZSA8YnIgLz48Y29kZT57Y2FwdHVyZSBhc3NpZ249JnF1b3Q7Zm9vJnF1b3Q7fXtBZHZhbmNlZENvbnRlbnR9ey9jYXB0dXJlfTwvY29kZT4gPGJyIC8+aW5zdGVhZC48L2VtPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCjwvdWw+DQo8cD48c3Ryb25nPkFkdmFuY2VkIHBhcmFtczo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5ibG9ja190eXBlPC90dD4gKHRleHQsY2hlY2tib3gsZHJvcGRvd24sc2VsZWN0X211bHRpcGxlLGRhdGUsbXVsdGlfaW5wdXQpIA0KCQk8dWw+DQoJCQk8bGk+QWxsb3dzIHlvdSB0byBzcGVjaWZ5IHdoYXQgY29udGVudCBjb250cm9sIHR5cGUgaXMgdXNlZCBpbiB0aGUgYmFjayBlbmQuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnBhZ2VfdGFiPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRoaXMgcGFyYW1ldGVyIHNldHMgdGhlIHRhYiBpbiB3aGljaCB0aGUgY29udGVudCBibG9jayBpcyBkaXNwbGF5ZWQgaW4gdGhlIGJhY2tlbmQuPGJyIC8+DQoJCQkJUG9zc2libGUgdmFsdWVzIGFyZSAmcXVvdDttYWluJnF1b3Q7ICggPSBUYWIgJnF1b3Q7TWFpbiBNZW51JnF1b3Q7KSwgJnF1b3Q7b3B0aW9ucyZxdW90OyAoID0gVGFiICZxdW90O09wdGlvbnMmcXVvdDspLCBvciBhbnkgb3RoZXIgYXJiaXRyYXJ5IHZhbHVlPGJyIC8+DQoJCQkJPGVtPmUuZy4geW91IGNhbiBhZGQgYSBjaGVja2JveCB0byB0aGUgb3B0aW9ucyB0YWIgb3IgY3JlYXRlIG5ldyB0YWJzPC9lbT4uDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+YmxvY2tfdGFiPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPldpdGggdGhpcyBwYXJhbWV0ZXIsIHRoZSBibG9ja3Mgd2l0aGluIGEgcGFnZSB0YWIgY2FuIGJlIGZ1cnRoZXIgZGl2aWRlZCBpbnRvIHRhYnMgb3IgY2FuIGJlIGdyb3VwZWQgdG9nZXRoZXIuIEFueSBleHByZXNzaW9uIGNhbiBiZSB1c2VkIGFzIGEgcG9zc2libGUgdmFsdWUuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmJsb2NrX2dyb3VwPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPldpdGggdGhpcyBwYXJhbWV0ZXIsIG11bHRpcGxlIGJsb2NrcyBjYW4gYmUgZ3JvdXBlZCBpbiBhIGZpZWxkc2V0LiBBbnkgZXhwcmVzc2lvbiBjYW4gYmUgdXNlZCBhcyBhIHBvc3NpYmxlIHZhbHVlLjwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5hY3RpdmU8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUFsbG93cyB5b3UgdG8gZGlzYWJsZSBhIGNvbnRlbnQgYmxvY2suIERpc2FibGVkIGNvbnRlbnQgYmxvY2tzIHdvbiYjMDM5O3QgYmUgc2hvd24gaW4gYmFja2VuZCBhcyB3ZWxsIGFzIGluIGZyb250ZW5kLiAob25seSB3b3JrcyB3aXRoIHtBZHZhbmNlZENvbnRlbnR9IHBsdWdpbik8YnIgLz4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lZGl0b3JfZ3JvdXBzPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZ3JvdXAgbmFtZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBlZGl0IHRoaXMgYmxvY2suDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZWRpdG9yX3VzZXJzPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCUEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgdXNlciBuYW1lcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGVkaXQgdGhpcyBibG9jay4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBpZiB0aGUgcGFyYW1zIDx0dD5lZGl0b3JfdXNlcnM8L3R0PiBhbmQgPHR0PmVkaXRvcl9ncm91cHM8L3R0PiBhcmUgZW1wdHkgdGhlIGJsb2NrIG1heSBiZSBlZGl0ZWQgYnkgYW55IHVzZXIgd2l0aCBzdWZmaWNpZW50IHBlcm1pc3Npb24gdG8gZWRpdCBhIHBhZ2U8L2VtPjxiciAvPjxiciAvPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZmV1X2FjY2VzczwvdHQ+DQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlBIGxpc3Qgb2YgZmV1IGdyb3VwIGlkcyBzZXBhcmF0ZWQgYnkgYSBjb21tYS48YnIgLz4NCgkJCQlUaGlzIHNob3dzIHRoZSBjb250ZW50IGJsb2NrIG9ubHkgdG8gY2VydGFpbiBmZXUgZ3JvdXBzLjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmZldV9hY3Rpb248L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVNwZWNpZnkgaWYgdGhlIGxvZ2luIGZvcm0gb2YgdGhlIGZldSBtb2R1bGUgd2lsbCBiZSBzaG93biBvciBub3QuPGJyIC8+DQoJCQkJPGVtPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPiBUaGUgbG9naW4gZm9ybSB3aWxsIG9ubHkgYmUgc2hvd24gb25lIHRpbWUuPGJyIC8+DQoJCQkJSWYgdGhlcmUgYXJlIG11bHRpcGxlIGJsb2NrcyB3aXRoIGxpbWl0ZWQgZmV1X2FjY2VzcyBhbmQgZmV1X2FjdGlvbiBzZXQgdG8gdHJ1ZSBvbmx5IHRoZSBmaXJzdCBibG9ja3MgbG9naW4gZm9ybSB3aWxsIGJlIHNob3duIGFuZCBhbGwgb3RoZXIgYmxvY2tzIHdpbGwganVzdCBiZSBlbXB0eS48L2VtPjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmFsbG93X25vbmU8L3R0PiAodHJ1ZS9mYWxzZSkNCgkJPHVsPg0KCQkJPGxpPlNldCB0byB0cnVlIGlmIHRoZSB1c2VyIG1heSBlbnRlciBlbXB0eSB2YWx1ZXMuIDxiciAvPklmIHNldCB0byBmYWxzZSBhbmQgdmFsdWUgaXMgZW1wdHkgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHBhcmFtICZxdW90O2RlZmF1bHQmcXVvdDsgd2lsbCBiZSB1c2VkLiA8YnIgLz5JZiBzZXQgdG8gdHJ1ZSBhbmQgYmxvY2sgaXMgb2YgdHlwZSBpbWFnZS9maWxlIHRoZSBvcHRpb24gJnF1b3Q7bm9uZSZxdW90OyAobW9kZT0mcXVvdDtkcm9wZG93biZxdW90Oykgb3IgYSBidXR0b24gdG8gY2xlYXIgdGhlIHNlbGVjdGVkIGZpbGUvaW1hZ2UgdmFsdWUgKG1vZGU9JnF1b3Q7ZmlsZXBpY2tlciZxdW90Oykgd2lsbCBiZSBkaXNwbGF5ZWQuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnNtYXJ0eTwvdHQ+ICh0cnVlL2ZhbHNlKQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVHVybiBzbWFydHkgcHJvY2Vzc2luZyBvZiB2YWx1ZXMgb24vb2ZmLjxiciAvPg0KCQkJCUlmIHNldCB0byB0cnVlIGFueSBnaXZlbiB2YWx1ZSB3aWxsIGJlIHByb2Nlc3NlZCBieSB0aGUgc21hcnR5IGVuZ2luZS48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6IDwvc3Ryb25nPiBDb25zaWRlciB0aGF0IHlvdSBjYW5ub3QgdXNlIHRoZSBkZWZhdWx0IHNtYXJ0eSBkZWxpbWl0ZXJzIHRoYXQgYXJlIHVzZWQgaW4gdGhlIHRlbXBsYXRlLiBUaGlzIHdpbGwgY2F1c2Ugc21hcnR5IGVycm9ycyBpbiBmcm9udGVuZC48YnIgLz4NCgkJCQlTbyB5b3UgbmVlZCB0byB1c2UgOjo6IGFzIGRlbGltaXRlciBpbnN0ZWFkLjxiciAvPjwvZW0+DQoJCQkJRS5nLjogPGNvZGU+e2NvbnRlbnQgYmxvY2s9JnF1b3Q7Q2F0ZWdvcmllcyZxdW90OyBsYWJlbD0mcXVvdDtTZWxlY3QgYSBjYXRlZ29yeSZxdW90OyBibG9ja190eXBlPSZxdW90O2Ryb3Bkb3duJnF1b3Q7IGl0ZW1zPSZxdW90Ozo6Omdsb2JhbF9jb250ZW50IG5hbWU9JiMwMzk7Y2F0ZWdvcnlsaXN0JiMwMzk7Ojo6JnF1b3Q7IHNtYXJ0eT0mcXVvdDt0cnVlJnF1b3Q7fTwvY29kZT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZXNjcmlwdGlvbjwvdHQ+IChzdHJpbmcpIA0KCQk8dWw+DQoJCQk8bGk+QWxsb3dzIHlvdSB0byBhZGQgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiB0byB0aGF0IGJsb2NrIGZvciB5b3VyIGVkaXRvcnMuPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmNvbGxhcHNlPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gdHJ1ZS9mYWxzZSB0byBkaXNwbGF5IGJsb2NrIGluIGJhY2tlbmQgaW4gY29sbGFwc2VkL2V4cGFuZGVkIG1vZGUgYnkgZGVmYXVsdC48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IHdpbGwgYmUgYWx3YXlzIGZhbHNlIGlmIG5vX2NvbGxhcHNlPXRydWUgaXMgdXNlZC48L2VtPjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0Pm5vX2NvbGxhcHNlPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gZmFsc2UgdG8gZGlzYWJsZSBmb2xkaW5nIG9mIGJsb2Nrcy48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IGlmIHNldCB0byB0cnVlIHBhcmFtIGNvbGxhcHNlIGlzIGFsd2F5cyBmYWxzZS48L2VtPjxiciAvPg0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnJlcXVpcmVkPC90dD4gKHRydWUvZmFsc2UpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlTZXQgdG8gdHJ1ZSBpZiB0aGlzIGJsb2NrIG1heSBub3QgYmUgZW1wdHkuPGJyIC8+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAmcXVvdDtjaGVja2JveCZxdW90Ozo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWZhdWx0PC90dD4gKHRydWUvZmFsc2UpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJY2hlY2tzL3VuY2hlY2tzIHRoZSBjaGVja2JveCBieSBkZWZhdWx0IHdoZW4gYWRkaW5nIGEgcGFnZTxiciAvPg0KCQkJCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gVXNlICZxdW90OzEmcXVvdDsgZm9yIGNoZWNrZWQgYW5kICZxdW90OzAmcXVvdDsgZm9yIHVuY2hlY2tlZCBieSBkZWZhdWx0PGJyIC8+PC9lbT4NCgkJCQlFLmcuIDxjb2RlPntjb250ZW50IGJsb2NrX3R5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDsgZGVmYXVsdD0xfTwvY29kZT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQo8L3VsPg0KPHA+PHN0cm9uZz5QYXJhbXMgb2YgYmxvY2t0eXBlICZxdW90O2Ryb3Bkb3duJnF1b3Q7LyZxdW90O3NlbGVjdF9tdWx0aXBsZSZxdW90Ozo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pdGVtczwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT5JdGVtIGxhYmVsKHMpIG9mIHRoZSBmaWVsZChzKSAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+dmFsdWVzPC90dD4gKHN0cmluZykNCgkJPHVsPg0KCQkJPGxpPlZhbHVlKHMpIG9mIHRoZSBpdGVtcyAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxlbT48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz4gaWYgdGhlcmUgYXJlIGxlc3MgdmFsdWVzIHRoYW4gaXRlbXMgdGhlIGl0ZW0gbGFiZWxzIHdpbGwgYmUgdXNlZCBhcyB2YWx1ZXMgKGFuZCB2aXNlIHZlcnNhKS48L2VtPjxiciAvPjxiciAvPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZGVmYXVsdDwvdHQ+IChzdHJpbmcpDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlQcmVzZWxlY3RlZCB2YWx1ZShzKSAoc2VwYXJhdGVkIGJ5IGEgZGVsaW1pdGVyIC0gZGVmYXVsdCBpcyB8IChwaXBlKSk8YnIgLz4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kZWxpbWl0ZXI8L3R0PiAoc3RyaW5nKQ0KCQk8dWw+DQoJCQk8bGk+QSBzaWduIG9yIHN0cmluZyB0aGF0IHdpbGwgYmUgdXNlZCB0byBkZXZpZGUgdGhlIGl0ZW1zL3ZhbHVlcyAoZGVmYXVsdCBpcyB8IChwaXBlKSk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zaXplPC90dD4gKGludGVnZXIpDQoJCTx1bD4NCgkJCTxsaT5IZWlnaHQgb2YgY29udGVudCBibG9jayBpbiBiYWNrIGVuZCBpZiA8Y29kZT5ibG9ja190eXBlPSZxdW90O3NlbGVjdF9tdWx0aXBsZSZxdW90OzwvY29kZT4gaXMgc2V0LiA8ZW0+KERlZmF1bHQgaXMgbnVtYmVyIG9mIGl0ZW1zKTwvZW0+PC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+PGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c29ydGFibGVfaXRlbXM8L3R0PiAodHJ1ZS9mYWxzZSkgLSBzZWxlY3RfbXVsdGlwbGUgb25seQ0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJSWYgc2V0IHRvIHRydWUgdGhlIGl0ZW1zIHdvbiYjMDM5O3QgYmUgc2hvd24gYXMgYSBtdWx0aXBsZSBzZWxlY3QgaW5wdXQgd2l0aCBvcHRpb25zIGJ1dCBhcyBhIGxpc3Qgb2YgY2hlY2tib3hlcyB0aGF0IGNhbiBiZSByZW9yZGVyZWQuPGJyIC8+RWFjaCByb3cgY29udGFpbnMgdGhlIGl0ZW0gbGFiZWwgYW5kIGEgY2hlY2tib3ggd2l0aCB0aGUgaXRlbSB2YWx1ZS48YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IG9ubHkgdGhlIG9yZGVyIG9mIHRoZSA8c3Ryb25nPnNlbGVjdGVkPC9zdHJvbmc+IGl0ZW1zIHdpbGwgYmUgc3RvcmVkIGFuZCBhbHdheXMgZGlzcGxheWVkIG9uIHRoZSB0b3Agb2YgdGhlIGxpc3Qgd2hlbiByZWxvYWRpbmcgdGhlIGVkaXQgcGFnZS48YnIgLz4NCgkJCQlVbnNlbGVjdGVkIGl0ZW1zIHdpbGwgYXBwZW5kZWQgaW4gdGhhdCBvcmRlciB0aGV5IGFyZSBkZWZpbmVkIGluIHRoZSB0ZW1wbGF0ZTwvZW0+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAmcXVvdDtkYXRlJnF1b3Q7Ojwvc3Ryb25nPjwvcD4NCjx1bD4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXBfaG91cnM8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXN0ZXBzIG9mIGhvdXJzIGluIHRoZSBjbG9jayBkcm9wZG93bi4gKGRlZmF1bHQgaXMgMSkNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5zdGFydF9ob3VyPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQl0aGUgc3RhcnQgaG91ciBvZiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDApDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+ZW5kX2hvdXI8L3R0PiAoaW50KSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXRoZSBlbmQgaG91ciBvZiB0aGUgY2xvY2sgZHJvcGRvd24gKGRlZmF1bHQgaXMgMTIgb3IgMjMpDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2hvdzI0aDwvdHQ+ICh0cnVlL2ZhbHNlKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXNldCB0byBmYWxzZSBpZiBBTS9QTSBpcyB1c2VkLiAoZGVmYXVsdCBpcyB0cnVlKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0ZXBfbWludXRlczwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJc3RlcHMgb2YgbWludXRlcyBpbiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDEwKQ0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PnN0YXJ0X21pbnV0ZTwvdHQ+IChpbnQpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJdGhlIHN0YXJ0IG1pbnV0ZSBvZiB0aGUgY2xvY2sgZHJvcGRvd24uIChkZWZhdWx0IGlzIDApDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5lbmRfbWludXRlPC90dD4gKGludCkgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQl0aGUgZW5kIG1pbnV0ZSBvZiB0aGUgY2xvY2sgZHJvcGRvd24gKGRlZmF1bHQgaXMgNTkpDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KCTxsaT4NCgkJPGVtPihvcHRpb25hbCk8L2VtPiA8dHQ+c2hvd19jbG9jazwvdHQ+ICh0cnVlL2ZhbHNlKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCXNldCB0byBmYWxzZSBpZiBubyB0aW1lIGRyb3Bkb3duIHNob3VsZCBiZSBkaXNwbGF5ZWQgKGRlZmF1bHQgaXMgdHJ1ZSk8YnIgLz4NCgkJCQk8ZW0+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+IElmIHNldCB0byBmYWxzZSAwMDowMCBvJiMwMzk7Y2xvY2sgd2lsbCBiZSB1c2VkPC9lbT4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5kYXRlX2Zvcm1hdDwvdHQ+IChzdHJpbmcpIA0KCQk8dWw+DQoJCQk8bGk+DQoJCQkJVGhlIHN0cmZ0aW1lIGRhdGUgZm9ybWF0IHRvIHNob3cgaW4gZnJvbnRlbmQuDQoJCQk8L2xpPg0KCQk8L3VsPg0KCQk8YnIgLz4NCgk8L2xpPg0KPC91bD4NCjxwPjxzdHJvbmc+UGFyYW1zIG9mIGJsb2NrdHlwZSAmcXVvdDttdWx0aV9pbnB1dCZxdW90Ozo8L3N0cm9uZz48L3A+DQo8dWw+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD5pbnB1dHM8L3R0PiAoY3N2IG9mIGlucHV0IGlkcyB5b3UgY3JlYXRlZCBpbiB0aGUgYmFja2VuZCkgDQoJCTxiciAvPjxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8ZW0+KG9wdGlvbmFsKTwvZW0+IDx0dD52YWx1ZV9kZWxpbWl0ZXI8L3R0PiAoYW55IHN0cmluZykgDQoJCTx1bD4NCgkJCTxsaT4NCgkJCQlUaGlzIGRlZmluZXMgYSBzdHJpbmcgdGhhdCBkZXZpZGVzIHRoZSB2YWx1ZXMgb2YgdGhlIGlucHV0cyBvZiBvbmUgbXVsdGlfaW5wdXQgd2hlbiBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLjxiciAvPg0KCQkJCURlZmF1bHQgaXMgJnF1b3Q7PCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxsaW1pdGVyIC0tPiZxdW90Ow0KCQkJPC9saT4NCgkJPC91bD4NCgkJPGJyIC8+DQoJPC9saT4NCgk8bGk+DQoJCTxlbT4ob3B0aW9uYWwpPC9lbT4gPHR0PmlucHV0X2RlbGltaXRlcjwvdHQ+IChhbnkgc3RyaW5nKSANCgkJPHVsPg0KCQkJPGxpPg0KCQkJCVRoaXMgZGVmaW5lcyBhIHN0cmluZyB0aGF0IGRldmlkZXMgdGhlIG11bHRpX2lucHV0cyB5b3UgZGVmaW5lZCBmb3IgdGhpcyBjb250ZW50IGJsb2NrIHdoZW4gc3RvcmVkIGluIHRoZSBkYXRhYmFzZS48YnIgLz4NCgkJCQlEZWZhdWx0IGlzICZxdW90OzwhLS0gbXVsdGlfaW5wdXRfZGVsbGltaXRlciAtLT4mcXVvdDsNCgkJCTwvbGk+DQoJCTwvdWw+DQoJCTxiciAvPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPldoYXQgaXMgYSBtdWx0aV9pbnB1dCBmb3I/PC9zdHJvbmc+PC9wPg0KCQk8cD5BIG11bHRpX2lucHV0IGJsb2NrIGlzIGEgY29udGVudCBibG9jayB0aGF0IGNvbnNpc3RzIG9mIGRpZmZlcmVudCBpbnB1dCBmaWVsZHMuIDxiciAvPg0KCQlZb3UgY2FuIGRlZmluZSB0aGVtIGluIHRoZSBtb2R1bGUgYWRtaW5pc3RyYXRpb24gdXNpbmcgdGhlIHNhbWUgc3ludGF4IHlvdSB1c2UgaW4gYSB0ZW1wbGF0ZSB3aGVuIGRlZmluaW5nIGEgY29udGVudCBibG9jay48YnIgLz4NCgkJTXVsdGkgaW5wdXRzIGNhbiBiZSB1c2VkIGlmIHlvdSB3YW50IHRvIHN0b3JlIGRpZmZlcmVudCB2YWx1ZXMgaW4gb25lIGNvbnRlbnQgYmxvY2sgYW5kIHByb3ZpZGUgZGlmZmVyZW50IGlucHV0IHR5cGVzIGZvciBlYWNoIHZhbHVlcy48YnIgLz4NCgkJVGhpcyBjYW4gYmUgdXNlZnVsbCBpZiB5b3Ugd2FudCB0byBjcmVhdGUgYSBkcm9wZG93biB0byBzZWxlY3QgYSBtb2R1bGUgdG8gYmUgc2hvd24gaW4gZnJvbnRlbmQgYW5kIHRleHQgaW5wdXQgdG8gZGVmaW5lIHRoZSBtb2R1bGUgcGFyYW1ldGVycy48YnIgLz4NCgkJRXhhbXBsZSBmb3IgYSBtdWx0aV9pbnB1dCBpbiBwYWdlIHRlbXBsYXRlOjwvcD4NCgkJPHByZT4NCgkJPGNvZGU+DQoJCXtjb250ZW50IGJsb2NrPSZxdW90O21vZHVsZSZxdW90OyBsYWJlbD0mcXVvdDtQYWdlIG1vZHVsZXMmcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDttdWx0aV9pbnB1dCZxdW90OyBpbnB1dHM9JnF1b3Q7bW9kdWxlLG1vZHVsZSxtb2R1bGUsbW9kdWxlJnF1b3Q7fQ0KCQk8L2NvZGU+DQoJCTwvcHJlPg0KCQk8cD5FeGFtcGxlIGZvciB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgbXVsdGlfaW5wdXQgbmFtZWQgJnF1b3Q7bW9kdWxlJnF1b3Q7OjwvcD4NCgkJPHByZT4NCgkJPGNvZGU+DQoJCXtjb250ZW50IGJsb2NrPSZxdW90O21vZHVsZSBzZWxlY3Rpb24mcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDtkcm9wZG93biZxdW90OyBpdGVtcz0mcXVvdDt8TmV3c3xHYWxsZXJ5fE1lbnUmcXVvdDt9DQoJCXtjb250ZW50IGJsb2NrPSZxdW90O21vZHVsZSBwYXJhbXMmcXVvdDsgYmxvY2tfdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7IG9uZWxpbmU9dHJ1ZX0NCgkJPC9jb2RlPg0KCQk8L3ByZT4NCgkJPHA+V2hhdCBoYXBwZW5zIGlmIHlvdSBlZGl0IGEgcGFnZT88L3A+DQoJCTxwPkl0IHdpbGwgc2hvdyB5b3UgYSBmaWVsZHNldCB3aXRoIGxlZ2VuZCAmcXVvdDtQYWdlIG1vZHVsZXMmcXVvdDsuIDxiciAvPg0KCQlJbnNpZGUgdGhpcyBmaWVsZHNldCBpdCBzaG93cyB0aGUgbXVsdGlfaW5wdXQgbmFtZWQgJnF1b3Q7bW9kdWxlJnF1b3Q7IGZvdXIgdGltZXMuPGJyIC8+DQoJCVRoYXQgbWVhbnMgeW91IHNlZSBmb3VyIGxpbmVzIHdpdGggdHdvIGlucHV0IGZpZWxkcy4gQSBkcm9wZG93biBhbmQgYSB0ZXh0IGlucHV0LjwvcD4NCgkJPHA+V2hhdCBoYXBwZW5zIGlmIHlvdSBzYXZlIGEgcGFnZT88L3A+DQoJCTxwPlRoZSBtb2R1bGUgc3RvcmVzIHRoZSB2YWx1ZXMgYXMgb25lIHNpbmdsZSBjb250ZW50IHByb3BlcnR5IChha2EgY29udGVudGJsb2NrKSBhbmQgc2VwYXJhdGVzIHRoZSBpbnB1dHMgYnkgYSBnaXZlbiBkZWxpbWl0ZXIuPGJyIC8+DQoJCUxldCYjMDM5O3MgYXNzdW1lIHlvdSBzZWxlY3QgdGhlIE5ld3MgbW9kdWxlIGZvdXIgdGltZXMgd2l0aCBkaWZmZXJlbnQgbW9kdWxlIHBhcmFtcyBsaWtlIGNhdGVnb3J5PSZxdW90OzEmcXVvdDssIGNhdGVnb3J5PSZxdW90OzImcXVvdDssIGNhdGVnb3J5PSZxdW90OzMmcXVvdDssIGNhdGVnb3J5PSZxdW90OzQmcXVvdDsuPGJyIC8+DQoJCUluIHRoZSBkYXRhYmFzZSBpdCBzdG9yZXMgdGhpcyBzdHJpbmc6PC9wPg0KCQk8cHJlPg0KCQk8Y29kZT4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSZxdW90OzEmcXVvdDs8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT48YnIgLz4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSZxdW90OzImcXVvdDs8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT48YnIgLz4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSZxdW90OzMmcXVvdDs8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT48YnIgLz4NCgkJTmV3czwhLS0gbXVsdGlfaW5wdXRfdmFsdWVfZGVsaW1pdGVyIC0tPmNhdGVnb3J5PSZxdW90OzQmcXVvdDsNCgkJPC9jb2RlPg0KCQk8L3ByZT4NCgkJPHA+SW4geW91ciBwYWdlIHRlbXBsYXRlIHlvdSBjYW4gZXhwbG9kZSB0aGUgY29udGVudCBieSB0aGUgZGVsaW1pdGVycyBhbmQgY2FsbCB0aGUgc2VsZWN0ZWQgbW9kdWxlcy48L3A+DQoJCTxwPkZ1bGwgRXhhbXBsZTo8L3A+DQoJCTxwcmU+DQoJCTxjb2RlPg0KCQl7KiBkZWZpbmUgdGhlIGNvbnRlbnQgYmxvY2sgKn0NCgkJe2NvbnRlbnQgYmxvY2s9JnF1b3Q7bXlfbW9kdWxlcyZxdW90OyBibG9ja190eXBlPSZxdW90O211bHRpX2lucHV0JnF1b3Q7IGlucHV0cz0mcXVvdDtNb2R1bGUsTW9kdWxlLE1vZHVsZSxNb2R1bGUmcXVvdDsgYXNzaWduPSZxdW90O21vZHVsZXMmcXVvdDt9DQoJCQ0KCQl7KiBleHBsb2RlIGJsb2NrIGNvbnRlbnQgaW4gYW4gYXJyYXkgdG8gZ2V0IHRoZSBpbnB1dCBncm91cHMgKn0NCgkJe2Fzc2lnbiB2YXI9bW9kdWxlcyB2YWx1ZT0mcXVvdDs8IS0tIG11bHRpX2lucHV0X2RlbGltaXRlciAtLT4mcXVvdDt8ZXhwbG9kZTokbW9kdWxlc30NCgkJDQoJCXsqIGxvb3AgdGhyb3VnaCB0aGUgc2VsZWN0ZWQgbW9kdWxlcyAqfQ0KCQl7Zm9yZWFjaCBmcm9tPSRtb2R1bGVzIGl0ZW09JnF1b3Q7bW9kdWxlJnF1b3Q7fQ0KCQkJe2lmICRtb2R1bGUgIT0gJiMwMzk7JiMwMzk7fQ0KCQkJDQoJCQkJeyogZXhwbG9kZSB0aGUgaW5wdXQgdmFsdWVzIGluIG1vZHVsbmFtZSBhbmQgbW9kdWxlIHBhcmFtZXRlcnMgKn0NCgkJCQl7YXNzaWduIHZhcj1tb2R1bGVfaXRlbXMgdmFsdWU9JnF1b3Q7PCEtLSBtdWx0aV9pbnB1dF92YWx1ZV9kZWxpbWl0ZXIgLS0+JnF1b3Q7fGV4cGxvZGU6JG1vZHVsZX0NCgkJCQkNCgkJCQl7aWYkbW9kdWxlX2l0ZW1zWzBdICE9ICYjMDM5OyYjMDM5O30NCgkJCQkNCgkJCQkJeyogY2FsbCB0aGUgbW9kdWxlICp9DQoJCQkJCXtpZiBpc3NldCgkbW9kdWxlX2l0ZW1zWzFdKX0NCgkJCQkJCXtldmFsIHZhcj0kc21hcnR5LmxkZWxpbXxjYXQ6JiMwMzk7Y21zX21vZHVsZSBtb2R1bGU9JnF1b3Q7JiMwMzk7fGNhdDokbW9kdWxlX2l0ZW1zWzBdfGNhdDomIzAzOTsmcXVvdDsgJiMwMzk7fGNhdDokbW9kdWxlX2l0ZW1zWzFdfGNhdDokc21hcnR5LnJkZWxpbX0NCgkJCQkJe2Vsc2V9DQoJCQkJCQl7ZXZhbCB2YXI9JHNtYXJ0eS5sZGVsaW18Y2F0OiYjMDM5O2Ntc19tb2R1bGUgbW9kdWxlPSZxdW90OyYjMDM5O3xjYXQ6JG1vZHVsZV9pdGVtc1swXXxjYXQ6JiMwMzk7JnF1b3Q7JiMwMzk7fGNhdDokc21hcnR5LnJkZWxpbX0NCgkJCQkJey9pZn0NCgkJCQkJDQoJCQkJey9pZn0NCgkJCQkNCgkJCXsvaWZ9DQoJCQ0KCQl7L2ZvcmVhY2h9DQoJCTwvY29kZT4NCgkJPC9wcmU+DQoJPC9saT4NCjwvdWw+DQoNCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCgk8bGk+VGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIvIj5odHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLzwvYT48L2xpPg0KCTxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjwvdWw+DQo8YnIgLz4NCjxwPkZlZWwgZnJlZSByZXBvcnQgYW55IGtpbmQgb2YgZmVlZGJhY2suPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD4NCglBcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy48YnIgLz4NCglUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCw8YnIgLz4NCglidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZjxiciAvPg0KCU1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS48YnIgLz4NCglTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuPGJyIC8+DQoJWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2U8YnIgLz4NCglhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZTxiciAvPg0KCUZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBPGJyIC8+DQoJT3IgcmVhZCBpdCBvbmxpbmU6IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMPC9hPjxiciAvPg0KCVBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLg0KPC9wPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEwLCBHZW9yZyBCdXNjaCAoTmFOKS4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCjxiciAvPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8YnIgLz4NCjxwPjxzdHJvbmc+TW9kdWxlIHJlbGVhc2VzPC9zdHJvbmc+Li4uPC9wPg0KPHVsPg0KCTxsaT48cD48c3Ryb25nPjAuNy4xIChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgYnVnIGl0ZW0gIzU2NTE8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWNjZXNzPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY3Rpb248L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gcmVxdWlyZWQ8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNyAoTm92IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIGNvbXBhdGliaWxpdHkgYnVnZml4ZXMgZm9yIENNU21zIDEuOSsgKG5lZWRzIENNU21zIDEuOSBtaW5pbXVtIG5vdyk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBzdXBwb3J0IG9mIHtjb250ZW50X21vZHVsZX0gdGFnPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIG5vX2NvbGxhcHNlPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjYuMiAoTm92IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIG1pbm9yIGJ1Z2ZpeCAoc2hvd2VkIHRhYnMgb2YgcHJldmlvdXMgdGVtcGxhdGUgd2hlbiB0ZW1wbGF0ZSB3YXMgY2hhbmdlZCk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNi4xIChOb3YgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gc2V2ZXJhbCBidWdmaXhlczwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBjb21wYXRpYmlsaXR5IGJ1Z2ZpeGVzIGZvciBDTVNtcyAxLjk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBibG9ja190eXBlIG11bHRpX2lucHV0PC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjYgKE9jdCAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBzZXZlcmFsIGJ1Z2ZpeGVzPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gYmxvY2tfZ3JvdXA8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5NaXNjOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIFJlbW92ZWQgZmlsZSBwaWNrZXIgKGFuZCBhc3NvY2lhdGVkIGJsb2NrX3R5cGVzIGltYWdlL2ZpbGUpIC0gdXNlIEdCRmlsZVBpY2tlciBpbnN0ZWFkLjwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC41IChTZXB0IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkJ1Z2ZpeGVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD5maXhlZCBidWcgaXRlbSAjNTI5MiAobWVtb3J5IGlzc3VlKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUyNTQgKGRpc2FibGUgd3lzaXd5ZyBub3Qgd29ya2luZyk8L3A+PC9saT4NCgkJCQkJPGxpPjxwPmZpeGVkIGJ1ZyBpdGVtICM1MzEwICh1cmxvbmx5IG5vdCB3b3JraW5nKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+Zml4ZWQgYnVnIGl0ZW0gIzUzMTEgKGltYWdlIHBhdGhzIG5vdCBzdG9yZWQgJiMwMzk7Y29ycmVjdGx5JiMwMzk7KTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPkZlYXR1cmVzOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNjEgKEFkZCBzb3J0IHRvIGltYWdlIHR5cGUgLSBub3RpY2UgdGhlIGNoYW5nZSBvZiBwYXJhbSBmaWx0ZXIpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBwYXJhbXMgZXhjbHVkZV9wcmVmaXgsIGluY2x1ZGVfcHJlZml4LCBleGNsdWRlX3N1Zml4LCBpbmNsdWRlX3N1Zml4PC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNTMgKFRleHQgaW5wdXQgdG8gZGVmaW5lIGFkZCBwYXJhbXMgdG8gcmVkaXJlY3QgZnVuY3Rpb24pPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNDAgKERlZmF1bHQgdmFsdWVzIG9mIEFkdmFuY2VkQ29udGVudCBwYWdlIG9wdGlvbnMpPC9wPjwvbGk+DQoJCQkJCTxsaT48cD5hZGRlZCBmZWF0dXJlIHJlcXVlc3QgIzUyNDEgKHB1dCBGZXVBY2Nlc3MgaW4gQmxvY2t0YWIpPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+TWlzYzo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBBZHZhbmNlZENvbnRlbnQgb3B0aW9ucyBhcmUgc2hvd24gaW4gc2VwYXJhdGUgdGFiPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIEFkZGVkIG5ldyBwZXJtaXNzaW9uIHRvIG1hbmFnZSB0aGUgQWR2YW5jZWRDb250ZW50IG9wdGlvbnMgdGFiPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIHJlbW92ZWQgcGFyYW0gZmlsdGVyICh1c2UgbmV3IHBhcmFtcyBpbnN0ZWFkKTwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBwYXRoIHRvIGZpbGVzIGFyZSBzdG9yZWQgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIHBhcmFtIGRpciBvZiBibG9jayB0eXBlIGZpbGUvaW1hZ2UgbmVlZHMgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyIG9ubHkgKHRoZXJlIGlzIG5vIGltYWdlIHVwbG9hZHMgZGlyIHVzZWQgYW55bW9yZSk8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuNC4xIChBdWd1c3QgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gIzUxNTE6IGZpeGVkIHN0eWxlc2hlZXQgaXNzdWUgd2l0aCBleHBhbmQvY29sbGFwc2UgYnV0dG9ucyBvZiBjb250ZW50IGJsb2NrcyBpbiBJRS9TYWZhcmkuPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tICM1MTYyOiBQSFAgd2FybmluZ3MgaWYgYmFja2VuZCB1c2VycyB3aXRob3V0IHBlcm1pc3Npb24gJnF1b3Q7TWFuYWdlIEFsbCBBZHZhbmNlZENvbnRlbnQgQmxvY2tzJnF1b3Q7IG9wZW4gYW4gYWR2YW5jZWQgY29udGVudCBwYWdlIGFuZCBtdWx0aXBsZSBjb250ZW50IGJsb2NrcyBvZiBzYW1lIG5hbWUgd2VyZSB1c2VkIGluIHRlbXBsYXRlLjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZXh0cmEgZmllbGRzIGNvdWxkIG5vdCBiZSB1cGRhdGVkLjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBmaXhlZCBidWcgd2hlcmUgZmV1IGFjY2VzcyBkaWQgbm90IHdvcmsuPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+RmVhdHVyZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7ZGVsZXRlJnF1b3Q7IHRvIGxldCB1c2VycyBkZWxldGUgZmlsZXMgZXZlbiBpZiBubyBwZXJtaXNzaW9uICZxdW90O01vZGlmeSBGaWxlcyZxdW90OzwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDtjcmVhdGVfZGlycyZxdW90OyB0byBsZXQgdXNlcnMgY3JlYXRlX2RpcnMgZXZlbiBpZiBubyBwZXJtaXNzaW9uICZxdW90O01vZGlmeSBGaWxlcyZxdW90OzwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBuZXcgYmxvY2t0eXBlICZxdW90O25vdGUmcXVvdDsgdG8gY3JlYXRlIHNvbWUgc2luZ2xlIG5vdGVzIGZvciB5b3VyIGVkaXRvcnM8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5NaXNjOjwvcD4NCgkJCQk8dWw+DQoJCQkJCTxsaT48cD4tIHJlbW92ZWQgZGVwZW5kZW5jeSBvZiBGaWxlTWFuYWdlcjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBibG9jayBvZiB0eXBlIGZpbGUgb3IgaW1hZ2Ugc3RvcmVzIHJlbGF0aXZlIHVybCBub3c8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYmxvY2sgdHlwZSBpbWFnZSBzaG93cyB0aHVtYm5haWwgaW4gYmFja2VuZCBwcmV2aWV3IGluc3RlYWQgb2YgZnVsbCBpbWFnZTwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+MC40IChKdWx5IDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPkltcG9ydGFudCBub3RpY2U6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gY2hhbmdlZCBwYXJhbSAmcXVvdDt0eXBlJnF1b3Q7IHRvICZxdW90O2Jsb2NrX3R5cGUmcXVvdDsgc2luY2UgaXQgaW50ZXJmZXJlcyB3aXRoIHtjb250ZW50X21vZHVsZX0gdGFnPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gIzUxMDE6IHBhZ2VfdGFiICZxdW90O29wdGlvbnMmcXVvdDsgd2FzIHNob3duIHRvIHVzZXJzIHdpdGggbm8gcGVybWlzc2lvbiB0byBlZGl0IHBhZ2Ugb3B0aW9ucyBpZiBhIGNvbnRlbnQgYmxvY2sgd2FzIGFzc2lnbmVkIHRvIHRoYXQgdGFiLjwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSAjNTA5NzogbGluayB0byBtaXNzaW5nIGNzcyByZW1vdmVkPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIG1pbWUtdHlwZSBpc3N1ZSAoYWRkZWQgcHJlZmVyZW5jZSB0byB0b2dnbGUgbWltZS10eXBlIHVzYWdlIG9uL29mZik8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gZml4ZWQgcGF0aCBpc3N1ZSB3aGVyZSB0aHVtYm5haWxzIHdlcmUgbm90IHNob3duPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIGNvbXBhdGliaWxpdHkgd2l0aCBDTVNtcyAxLjg8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gb3RoZXIgbWlub3IgYnVnZml4ZXM8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBNTEUgc3VwcG9ydDwvcD48L2xpPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSAmcXVvdDtzaG93X2Nsb2NrJnF1b3Q7IHRvIGVuYWJsZS9kaXNhYmxlIHRoZSB0aW1lIGRyb3Bkb3duIG9mIGJsb2NrdHlwZXMgJnF1b3Q7ZGF0ZSZxdW90OyBpbiBiYWNrZW5kPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O2RhdGVfZm9ybWF0JnF1b3Q7IHRvIGZvcm1hdCB0aW1lc3RhbXAgb2YgYmxvY2t0eXBlcyAmcXVvdDtkYXRlJnF1b3Q7IGluIGZyb250ZW5kPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIHBhcmFtICZxdW90O2Rlc2NyaXB0aW9uJnF1b3Q7PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkZGVkIGJ1bGsgZnVuY3Rpb24gdG8gc2V0IGFsbCBwYWdlcyB0byBBZHZhbmNlZENvbnRlbnQ8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgY29tcGF0aWJpbGl0eSB3aXRoIHtjb250ZW50X21vZHVsZX0gdGFnPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjMuNCAoSnVuZSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD5CdWdmaXhlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSAjNTA0NTogV2hlbiBzd2l0Y2hpbmcgZnJvbSBDb250ZW50IC0+IEFkdmFuY2VkIENvbnRlbnQgbG90cyBvZiBQSFAgZXJyb3JzPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tICM1MDU2OiBwYWdlX3RhYnMgbm90IHdvcmtpbmcgZm9yIHVzZXJzIHdpdGhvdXQgcGVybWlzc2lvbiAmcXVvdDtNYW5hZ2UgQWxsIENvbnRlbnQmcXVvdDs8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gIzUwNzM6IGluY29ycmVjdCBkaXNwbGF5IG9mIGZpbGVzIHdoZW4gb3BlbmluZyBmaWxlcGlja2VyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGZpeGVkIG1pbm9yIGJ1ZyB3aGVyZSB0aGUgb3B0aW9uICZxdW90O2FsbG93X25vbmUmcXVvdDsgb2YgY29udGVudCBibG9ja3Mgb2YgdHlwZSBpbWFnZS9maWxlIHdhcyBub3Qgc2hvd24gd2hlbiB0ZW1wbGF0ZSBoYXMgYmVlbiBlZGl0ZWQ8L3A+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9saT4NCgkJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQkJPHVsPg0KCQkJCQk8bGk+PHA+LSBhZGRlZCBmaWxlbWFuYWdlbWVudCBhbmQgdXBsb2FkIGZ1bmN0aW9ucyB0byBjb250ZW50IGJsb2NrcyBvZiB0eXBlIGltYWdlL2ZpbGU8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgYnJlYWRjdW1icyB0byBmaWxlcGlja2VyPC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGFkbWlucyBtYXkgYnJvd3NlIHRoZSBlbnRpcmUgZGlyIHRyZWUgaW4gZmlsZXBpY2tlciBmaWxlIGJyb3dzZXIgcmVnYXJkbGVzcyBvZiB0ZW1wbGF0ZSBwYXJhbXM8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgbWltZSB0eXBlIGNoZWNraW5nIHRvIGdldCBmaWxlIHR5cGU8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gYWRkZWQgcmF3dXJsZW5jb2RlIGluIHNyYyBhdHRyaWJzIHRvIGRpc3BsYXkgaW1hZ2VzIHdpdGggd2VpcmQgZmlsZW5hbWVzLjwvcD48L2xpPg0KCQkJCTwvdWw+DQoJCQk8L2xpPg0KCQkJPGxpPjxwPm1pc2NlbGxhbmVvdXM6PC9wPg0KCQkJCTx1bD4NCgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCBPT1Agc3R1ZmYgKHByaXZhdGUvcHVibGljL3Byb3RlY3RlZCkgdG8gZ2FpbiBtb3JlIGNvbXBhdGliaWxpdHkgd2l0aCBQSFA0PC9wPjwvbGk+DQoJCQkJCTxsaT48cD4tIGNoYW5nZWQgYWpheCBmdW5jdGlvbnMgdG8gcmV0dXJuIHhtbCB2YWx1ZXM8L3A+PC9saT4NCgkJCQkJPGxpPjxwPi0gcmVtb3ZlZCB1c2FnZSBvZiBJbWFnZU1hbmFnZXIgb25jZSBhbmQgZm9yIGFsbC4gKGNhdXNlZCBvbmx5IHRyb3VibGUpPC9wPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+PHA+PHN0cm9uZz4wLjMuMyAoSnVuZSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJPHVsPg0KCQk8bGk+PHA+QnVnZml4ZXM6PC9wPg0KCQkJPHVsPg0KCQkJCTxsaT48cD4tIGFsaWFzIHdhcyBub3QgYWx3YXlzIGNvbnZlcnRlZCBwcm9wZXJseTwvcD48L2xpPg0KCQkJCTxsaT48cD4tIHVuc3VibWl0dGVkIGNvbnRlbnQgZ290IGxvc3QgaWYgc3dpdGNoaW5nIGZyb20gQ29udGVudCB0byBBZHZhbmNlZENvbnRlbnQ8L3A+PC9saT4NCgkJCTwvdWw+DQoJCTwvbGk+DQoJCTxsaT48cD5GZWF0dXJlczo8L3A+DQoJCQk8dWw+DQoJCQkJPGxpPjxwPi0gYWRkZWQgc3RhcnQvZW5kIGRhdGU8L3A+PC9saT4NCgkJCQk8bGk+PHA+LSByZW1vdmVkIHRpbWVwaWNrZXI7IHJlcGxhY2VkIGJ5IGEgc2ltcGxlIGRyb3Bkb3duPC9wPjwvbGk+DQoJCQkJPGxpPjxwPi0gY29tcGF0aWJpbGl0eSB3aXRoIHtjb250ZW50X2ltYWdlfTwvcD48L2xpPg0KCQkJPC91bD4NCgkJPC9saT4NCgk8L3VsPg0KCTxsaT48cD48c3Ryb25nPjAuMy4yIChKdW5lIDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIHdoZXJlIGNoYW5naW5nIGJhY2sgdG8gZGVmYXVsdCBjb250ZW50IHR5cGUgb3IgY2hhbmdpbmcgdGVtcGxhdGUgY2F1c2VkIGZhdGFsIGVycm9yczwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYSBidWcgd2l0aCBzbWFydHkgcHJvY2Vzc2luZyB3aGVuIHNhdmluZyBhIHBhZ2U8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGEgYnVnIHdpdGggcHJldmlldyB0YWI8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlLWFkZGVkIGV4cGFuZC9jb2xsYXBzZSBidXR0b24gdG8gdG9nZ2xlIGNvbnRlbnQgYmxvY2tzIGluIGJhY2tlbmQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtcyBlZGl0b3JfZ3JvdXBzL2VkaXRvcl91c2VycyB0byBzcGVjaWZ5IGNlcnRhaW4gdXNlcnMvZ3JvdXBzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZWRpdCBjZXJ0YWluIGJsb2NrczwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVtb3ZlZCBwYXJhbXMgc2VsZWN0ZWQvY2hlY2tlZDsgdXNlIHBhcmFtIGRlZmF1bHQgaW5zdGVhZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYmxvY2sgaWRzIHdpbGwgYmUgY29udmVydGVkIGZyb20gYmxvY2sgbmFtZSB1c2luZyBjb3JlIGZ1bmN0aW9uIG11bmdlX3N0cmluZ190b191cmwgKHRvIHJlbW92ZSBzcGVjaWFsIGNoYXJzLCB3aGl0ZXNwYWNlcywgdW1sYXV0cyBldGMuKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gZml4ZWQgYnVnIG9mIGJsb2NrdHlwZSBkcm9wZG93bi9zZWxlY3RfbXVsdGlwbGUgd2hlcmUgZmlyc3QgaXRlbSBoYWQgYW4gZW1wdHkgbGFiZWwgaWYgb25seSB0aGUgcGFyYW0gJnF1b3Q7dmFsdWVzJnF1b3Q7IGlzIHVzZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHNvbWUgdGVtcGxhdGUgdmFycyBvZiB0aGUgZnJvbnRlbmQgdG8gYmUgYWxzbyBhY2Nlc3NpYmxlIGluIGJhY2tlbmQgKGUuZy46ICRwYWdlX2FsaWFzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7YWxsb3dfbm9uZSZxdW90OyB0byBhbGwgY29udGVudCBibG9jayB0eXBlcyB0byBzcGVjaWZ5IGlmIHRoZSBwcmVkZWZpbmVkIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSB1c2VkIGlmIG5vIHZhbHVlIGlzIGVudGVyZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBlbXB0eSB2YWx1ZXMgd2VyZSBuZXZlciBiZSBzdG9yZWQ8L3A+PC9saT4NCgkJCTxsaT48cD4tIGZpeGVkIGJ1ZyB3aGVyZSBkZWZhdWx0IHZhbHVlIGluIGZyb250ZW5kIHdhcyBpZ25vcmVkIGlmIHRoZSAmcXVvdDthbGxvd19ub25lJnF1b3Q7IHBhcmFtIHdhcyBjaGFuZ2VkIGFmdGVyIGFuIGVtcHR5IHZhbHVlIGhhcyBiZWVuIHN0b3JlZDwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gJnF1b3Q7c29ydGFibGVfaXRlbXMmcXVvdDsgdG8gY3JlYXRlIGEgc29ydGFibGUgbXVsdGlwbGUgc2VsZWN0IGxpc3QgKHNlbGVjdCBsaXN0IHdpbGwgcmVzdWx0IGluIGEgdGFibGUgd2l0aCBjaGVja2JveGVzOyBvbmx5IG9yZGVyIG9mIHNlbGVjdGVkIGl0ZW1zIHdpbGwgYmUgc3RvcmVkIGFuZCBzaG93ZWQgYXQgdGhlIHRvcCBvZiB0aGUgbGlzdDsgdW5zZWxlY3RlZCBpdGVtcyB3aWxsIGJlIGFwcGVuZGVkIGluIHRoYXQgb3JkZXIgdGhleSBhcmUgcGxhY2VkIGluIHRoZSB0ZW1wbGF0ZSk8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjAuMy4xIChNYXkgMjAxMCk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSByZW1vdmVkIHRoZSByZW9yZGVyaW5nIHN0dWZmIGZvciBub3cgKGNhdXNlcyB0cm91YmxlIGF0IHRoaXMgdGltZSk8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbW92ZWQgdGhlIGRiIHN0dWZmIChwYXJhbXMgb2YgY29udGVudCBibG9ja3MgdGhhdCBhcmUgZGVmaW5lZCBpbiB0ZW1wbGF0ZSB3b24mIzAzOTt0IGJlIHNhdmVkIGluIG1vZHVsZSBkYiB0YWJsZSBhbnltb3JlIC0+IGhvcGVmdWxseSBzcGVlZCB1cCBsb2FkaW5nIHRpbWUpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIGR1cGxpY2F0ZSBjb250ZW50IGJsb2NrczwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPkFkdmFuY2VkQ29udGVudCAwLjMgKE1heSAyMDEwKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIHJld3JpdGUgY29kZTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYnVnZml4ZXM8L3A+PC9saT4NCgkJCTxsaT48cD4tIHJlbmFtZWQgdG8gQWR2YW5jZWRDb250ZW50PC9wPjwvbGk+DQoJCQk8bGk+PHA+LSB1c2luZyBzZXBhcmF0ZSBtb2R1bGUgdGVtcGxhdGUgbm93IHRvIGRzcGxheSBjb250ZW50IGJsb2NrczwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVtb3ZlZCBwYWdlIGFsaWFzIGluaGVyaXRhbmNlPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCjwvdWw+DQo8dWw+DQoJPGxpPjxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAzIChBcHJpbCAyMDEwIC0gZGlzY29udGludWVkKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIE1ham9yIEJ1Z2ZpeCAobWlzc2luZyAmcXVvdDs7JnF1b3Q7IGFuZCBzdHJhbmdlIGludmlzaWJsZSBpbnZhbGlkIGNoYXJzKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPjxwPjxzdHJvbmc+WENvbnRlbnQgQkVUQSAyIChBcHJpbCAyMDEwIC0gZGlzY29udGludWVkKTo8L3N0cm9uZz48L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIGZpeGVkIGEgYnVnIHdpdGggcGFyYW0gJnF1b3Q7ZGVsaW1pdGVyJnF1b3Q7PC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBmaXhlZCBhIGJ1ZyB3aXRoIHNtYXJ0eSBwcm9jZXNzaW5nPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBpbmhlcml0YW5jZSBvZiAmcXVvdDtTaG93IGxvZ2luIGZvcm0mcXVvdDs8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIGluaGVyaXRhbmNlIG9mIHBhZ2UgYWxpYXMgdG8gYWRkIGl0IGFzIHByZWZmaXg7IHNvIGlmIHlvdSBoYXZlIGEgcGFnZSBjYWxsZWQgJnF1b3Q7bWVtYmVycyZxdW90OyBhbmQgc2VsZWN0IGZvciBlYWNoIGNoaWxkIHBhZ2UgJnF1b3Q7aW5oZXJpdCBwYWdlIGFsaWFzJnF1b3Q7IGFsbCBjaGlsZCBwYWdlcyBhbGlhc2VzIHdpbGwgc3RhcnQgd2l0aCAmcXVvdDttZW1iZXJzXyZxdW90OzsgbWFrZXMgZmlsdGVyaW5nIG9mIG1lbnUgZW50cmllcyB3aXRoIE1lbnVNYW5hZ2VyIHBhcmFtICZxdW90O2V4Y2x1ZGVwcmVmZml4JnF1b3Q7IG9yICZxdW90O2luY2x1ZGVwcmVmZml4JnF1b3Q7IGVhc2llci48L3A+PC9saT4NCgkJCTxsaT48cD4tIG1pbm9yIGJ1Z2ZpeGVzPC9wPjwvbGk+IA0KCQk8L3VsPg0KCTwvbGk+DQoJPGxpPg0KCQk8cD48c3Ryb25nPlhDb250ZW50IEJFVEEgKEFwcmlsIDIwMTApOjwvc3Ryb25nPiBpbml0aWFsIHJlbGVhc2U8L3A+DQoJCTx1bD4NCgkJCTxsaT48cD4tIGNvbnZlcnRlZCB0aGUgc2luZ2xlIGZpbGUgaW50byBhIG1vZHVsZTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gcmVuYW1lZCBwYXJhbXM7IHNlZSBtb2R1bGUgaGVscCBmb3IgbW9yZSBkZXRhaWxzPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCjwvdWw+DQo8cD48c3Ryb25nPlNpbmdsZSBmaWxlIHJlbGVhc2VzIChkaXNjb250aW51ZWQpPC9zdHJvbmc+Li4uPC9wPg0KPHVsPg0KCTxsaT4NCgkJPHA+PHN0cm9uZz4xLjQgKE1hcmNoIDIwMTApOjwvc3Ryb25nPjwvcD4NCgkJPHVsPg0KCQkJPGxpPjxwPi0gY2xlYW51cCBjb2RlIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIG1pbm9yIGJ1Z2ZpeGVzIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHJlZGlyZWN0IHBhZ2UgaWYgZmV1IGlzIG5vdCBsb2dnZWQgaW4gLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgaW5oZXJpdGFuY2Ugb2YgZmV1X2FjY2VzcyBhbmQgcmVkaXJlY3RfcGFnZSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBmZXVfYWNjZXNzIC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHBhcmFtIGZldV9hY3Rpb24gLSAoTmFOKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gcmVkaXJlY3RfcGFnZSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBibG9ja19vbmx5IC0gKE5hTik8L3A+PC9saT4NCgkJCTxsaT48cD4tIGFkZGVkIHNtYXJ0eSBsb2dpYyBpbiBiYWNrZW5kIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBzdHlsZSAtIChKZXJlbXlCYXNzKTwvcD48L2xpPg0KCQkJPGxpPjxwPi0gYWRkZWQgcGFyYW0gZmlsdGVyIChmaWx0ZXJpbmcgaW1hZ2VzIGluIGJhY2tlbmQpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBJbWdNb2RlIChkcm9wZG93biBvciBJbWFnZU1hbmFnZXIpIC0gKEplcmVteUJhc3MpPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBwYXJhbSBzbWFydHlPbiAoZm9yIHByb2Nlc3Npbmcgc21hcnR5IHZhcnMgb2YgdGhlIHRlbXBhdGUgaW4gYmFja2VuZCkgLSAoSmVyZW15QmFzcyk8L3A+PC9saT4NCgkJPC91bD4NCgk8L2xpPg0KCTxsaT48cD48c3Ryb25nPjEuMyAoQXByaWwgMjAwOSk6PC9zdHJvbmc+PC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBDTVNtcyAxLjYuKiByZWFkeSAtIChOYU4pPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBhZGRlZCBmZXUgYWNjZXNzIG9wdGlvbiAtIChOYU4pPC9wPjwvbGk+DQoJCTwvdWw+DQoJPC9saT4NCgk8bGk+DQoJCTxwPjxzdHJvbmc+MS4yIChNYXJjaCAyMDA5KTo8L3N0cm9uZz4gaW5pdGlhbCByZWxlYXNlPC9wPg0KCQk8dWw+DQoJCQk8bGk+PHA+LSBBIHNpbmdsZSBmaWxlIENvbnRlbnQyLmluYy5waHAgdGhhdCBuZWVkcyB0byBiZSBwYWNlZCBpbiBsaWIvY2xhc3Nlcy9jb250ZW50dHlwZXMuPC9wPjwvbGk+DQoJCQk8bGk+PHA+LSBsYXlvdXQvb3B0aW9ucyBvZiBiYWNrZW5kIHBhbmVsIGNhbiBiZSBjb250cm9sZWQgYnkgYWRkaXRpb25hbCBzbWFydHkgcGFyYW1zIGluIHRoZSB0ZW1wbGF0ZTsgaW50ZWdyYXRlZCB0aGUge2NvbnRlbnRfaW1hZ2V9IHRhZyAtIChtb2QgYnkgTmFOKTwvcD48L2xpPg0KCQk8L3VsPg0KCTwvbGk+DQo8L3VsPg0KPGJyIC8+JzsKJGxhbmdbJ3FjYSddID0gJ1AwLTcwNTI1OTYzNC0xMjkwNDEyMzI3ODM1JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTI5NjAyODI5NS4xMC4xMS51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtcyBtYWRlIHNpbXBsZSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjkzODc0NDcxOC4xMjkwNDEyMzI4LjEyOTYwMzAzODUuMTI5NjAzNDA4NC4xMic7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLwojICAgICAgICAgIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBWZXJzaW9uOiAwLjgKIyBGaWxlICAgOiBtZXRob2QuaW5zdGFsbC5waHAKIyBQdXJwb3NlOiBpbnN0YWxscyB0aGUgbW9kdWxlLCBjcmVhdGVzIHRhYmxlcyBhbmQgc2V0IHByZWZlcmVuY2VzCiMgTGljZW5zZTogR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgokZGIgPSYgJHRoaXMtPkdldERiKCk7CgokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokZGljdCAgICAgICAgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKIyBVc2VyIFNldHRpbmdzIGJsb2NrIGRpc3BsYXkKJGZsZHMgPSAidXNlcl9pZCBJLCBjb250ZW50X2lkIEksIHRlbXBsYXRlX2lkIEksIGl0ZW1faWQgWCwgaXRlbV9kaXNwbGF5IEkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50X2Jsb2NrZGlzcGxheSIsCgkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKIyBVc2VyIFNldHRpbmdzIG1lc3NhZ2UgZGlzcGxheQokZmxkcyA9ICJ1c2VyX2lkIEksIGNvbnRlbnRfaWQgSSwgdGVtcGxhdGVfaWQgSSwgaXRlbV9pZCBYLCBpdGVtX2Rpc3BsYXkgSSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbWVzc2FnZWRpc3BsYXkiLAoJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiMgVXNlciBTZXR0aW5ncyBnb3VwIGRpc3BsYXkKJGZsZHMgPSAidXNlcl9pZCBJLCBjb250ZW50X2lkIEksIHRlbXBsYXRlX2lkIEksIGl0ZW1faWQgWCwgaXRlbV9kaXNwbGF5IEkiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50X2dyb3VwZGlzcGxheSIsCgkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKIyBtdWx0aXBsZSBpbnB1dHMKJGZsZHMgPSAiaW5wdXRfaWQgQyg2NCkgS0VZLCBpbnB1dF9maWVsZHMgWCI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbXVsdGlfaW5wdXRzIiwKCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgojIG11bHRpcGxlIGlucHV0IHRwbCBhc3NvY3MKJGZsZHMgPSAiaW5wdXRfaWQgQyg2NCksIHRwbF9uYW1lIFgiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50X211bHRpX2lucHV0X3RwbF9hc3NvY3MiLAoJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IFByZWZlcmVuY2VzJywgJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgUHJlZmVyZW5jZXMnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBBbGwgQWR2YW5jZWRDb250ZW50IEJsb2NrcycsICdNYW5hZ2UgQWxsIEFkdmFuY2VkQ29udGVudCBCbG9ja3MnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgT3B0aW9ucycsICdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE9wdGlvbnMnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dHMnLCAnTWFuYWdlIEFkdmFuY2VkQ29udGVudCBNdWx0aUlucHV0cycpOwokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCBNdWx0aUlucHV0IFRlbXBsYXRlcycsICdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE11bHRpSW5wdXQgVGVtcGxhdGVzJyk7CiR0aGlzLT5TZXRUZW1wbGF0ZSgnbXVsdGlfaW5wdXRfU2FtcGxlVGVtcGxhdGUnLAonPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHA+Cntmb3JlYWNoIGZyb209JGlucHV0cyBpdGVtPWVsbX0KCXskZWxtLmxhYmVsfTombmJzcDt7JGVsbS5pbnB1dH0mbmJzcDsKey9mb3JlYWNofQo8L3A+CjwvZGl2PicpOwokdGhpcy0+QWRkTXVsdGlJbnB1dCgnU2FtcGxlSW5wdXQnLCcKe2NvbnRlbnQgYmxvY2s9Im1vZHVsZV9zZWxlY3QiIGxhYmVsPSJTZWxlY3QgYSBtb2R1bGUiIGJsb2NrX3R5cGU9ImRyb3Bkb3duIiBpdGVtcz0ifE5ld3N8TWVudSIgdmFsdWVzPSJ8TmV3c3xNZW51TWFuYWdlciJ9Cntjb250ZW50IGJsb2NrPSJtb2R1bGVfcGFyYW1zIiBsYWJlbD0iRW50ZXIgbW9kdWxlIHBhcmFtZXRlcnMgaGVyZSIgYmxvY2tfdHlwZT0idGV4dCIgb25lbGluZT10cnVlIHNpemU9IjU2In0nKTsKJHRoaXMtPkFkZFRwbEFzc29jKCdtdWx0aV9pbnB1dCcsICdTYW1wbGVJbnB1dCcsICdtdWx0aV9pbnB1dF9TYW1wbGVUZW1wbGF0ZScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9tdWx0aV9pbnB1dF90cGwnLCAnbXVsdGlfaW5wdXRfU2FtcGxlVGVtcGxhdGUnKTsKCiR0aGlzLT5BZGRFdmVudEhhbmRsZXIoICdDb3JlJywgJ0NvbnRlbnRQb3N0UmVuZGVyJywgZmFsc2UgKTsKJHRoaXMtPkFkZEV2ZW50SGFuZGxlciggJ0NvcmUnLCAnQ29udGVudEVkaXRQb3N0JywgZmFsc2UgKTsKCiR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ0FkdmFuY2VkQ29udGVudCcpLAoJJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLwojICAgICAgICAgIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBWZXJzaW9uOiAwLjgKIyBGaWxlICAgOiBtZXRob2QudW5pbnN0YWxsLnBocAojIFB1cnBvc2U6IHVuaW5zdGFsbHMgdGhlIG1vZHVsZSwgcmVtb3ZlcyB0YWJsZXMsIHByZWZlcmVuY2VzLCBwZXJtaXNzaW9ucy4uLgojIExpY2Vuc2U6IEdQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZighaXNfb2JqZWN0KGNtc21zKCkpKSBleGl0OwoKJGRiICAgICAgID0mICR0aGlzLT5HZXREYigpOwokZGljdCAgICAgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9ibG9ja2Rpc3BsYXkiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50X21lc3NhZ2VkaXNwbGF5IiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9ncm91cGRpc3BsYXkiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50X211bHRpX2lucHV0cyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbXVsdGlfaW5wdXRfdHBsX2Fzc29jcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VuaW5zdGFsbF9hY3Rpb24nKSAhPSAnJykgewoJc3dpdGNoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1bmluc3RhbGxfYWN0aW9uJykpIHsKCQljYXNlIDE6CgkJCSMgRGVsZXRlCgkJCSMgZ2V0IGlkIG9mIGFsbCBjb250ZW50IG9mIHR5cGUgQWR2YW5jZWRDb250ZW50CgkJCSRxdWVyeSAgICA9ICJTRUxFQ1QgY29udGVudF9pZCBGUk9NICIuIGNtc19kYl9wcmVmaXgoKS4iY29udGVudCBXSEVSRSB0eXBlID0gPyI7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCdjb250ZW50MicpKTsKCQkJJGNvbnRlbnRzID0gYXJyYXkoKTsKCQkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKCQkJCSRjb250ZW50c1tdID0gJHJvd1snY29udGVudF9pZCddOwoJCQl9CgkJCSMgZGVsZXRlIGFsbCBjb250ZW50IG9mIHR5cGUgQWR2YW5jZWRDb250ZW50CgkJCSRxdWVyeSAgICA9ICJERUxFVEUgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkuImNvbnRlbnQgV0hFUkUgdHlwZSA9ID8iOwoJCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgnY29udGVudDInKSk7CgkJCQoJCQkjIGRlbGV0ZSBjb250ZW50IHByb3BzCgkJCSRxdWVyeSAgICA9ICJERUxFVEUgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkuImNvbnRlbnRfcHJvcHMgV0hFUkUgY29udGVudF9pZCBJTiAoIi5pbXBsb2RlKCcsJywkY29udGVudHMpLiIpIjsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJCQoJCQlicmVhazsKCQkJCgkJY2FzZSAyOgoJCQkjIFNldCB0byBjb250ZW50CgkJCSRxdWVyeSAgICA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnQgU0VUIHR5cGUgPSA/IFdIRVJFIHR5cGUgPSA/IjsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJ2NvbnRlbnQnLCdjb250ZW50MicpKTsKCQkJYnJlYWs7CgkJCQoJCWNhc2UgMzoKCQkJIyBnZXQgaWQgb2YgYWxsIGNvbnRlbnQgb2YgdHlwZSBBZHZhbmNlZENvbnRlbnQKCQkJJHF1ZXJ5ICAgID0gIlNFTEVDVCBjb250ZW50X2lkIEZST00gIi4gY21zX2RiX3ByZWZpeCgpLiJjb250ZW50IFdIRVJFIHR5cGUgPSA/IjsKCQkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJ2NvbnRlbnQyJykpOwoJCQkkY29udGVudHMgPSBhcnJheSgpOwoJCQl3aGlsZSgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkgewoJCQkJJGNvbnRlbnRzW10gPSAkcm93Wydjb250ZW50X2lkJ107CgkJCX0KCQkJIyBzZXQgdG8gY29udGVudAoJCQkkcXVlcnkgICAgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJjb250ZW50IFNFVCB0eXBlID0gPyBXSEVSRSB0eXBlID0gPyI7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCdjb250ZW50JywnY29udGVudDInKSk7CgkJCQoJCQkjIGRlbGV0ZSBjb250ZW50IHByb3BzCgkJCSRxdWVyeSAgICA9ICJERUxFVEUgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkuImNvbnRlbnRfcHJvcHMKCQkJCVdIRVJFIGNvbnRlbnRfaWQgSU4gKCIuaW1wbG9kZSgnLCcsJGNvbnRlbnRzKS4iKSBBTkQgcHJvcF9uYW1lICE9ICdjb250ZW50X2VuJyI7CgkJCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCQkKCQkJYnJlYWs7CgkJCQoJCWRlZmF1bHQ6IGJyZWFrOwoJCQoJfQp9CgojIHJlbW92ZSBwZXJtaXNzaW9ucwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCcpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCBQcmVmZXJlbmNlcycpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTWFuYWdlIEFsbCBBZHZhbmNlZENvbnRlbnQgQmxvY2tzJyk7CiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE9wdGlvbnMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dHMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dCBUZW1wbGF0ZXMnKTsKCiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoICdDb3JlJywgJ0NvbnRlbnRQb3N0UmVuZGVyJyk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoICdDb3JlJywgJ0NvbnRlbnRFZGl0UG9zdCcpOwoKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CgojIHJlbW92ZSBwcmVmZXJlbmNlcwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgpOwoKJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnQWR2YW5jZWRDb250ZW50JyksCgkkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIE1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQojICAgICAgICAgIGEgY29udGVudCBtYW5hZ2VtZW50IHRvb2wgZm9yIENNUyBNYWRlIFNpbXBsZQojICAgICAgICAgIFRoZSBwcm9qZWN0cyBob21lcGFnZSBpcyBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NvbnRlbnQyLwojICAgICAgICAgIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNC0yMDExIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyAgICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBWZXJzaW9uOiAwLjgKIyBGaWxlICAgOiBtZXRob2QudXBncmFkZS5waHAKIyBQdXJwb3NlOiBwZXJmb3JtcyBhIG1vZHVsZSB1cGdyYWRlCiMgTGljZW5zZTogR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCFpc19vYmplY3QoY21zbXMoKSkpIGV4aXQ7CgokY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247CiRkYiAgICAgICAgICAgICAgPSYgJHRoaXMtPkdldERiKCk7Cgpzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikKewoJY2FzZSAnMC4zJzoKCWNhc2UgJzAuMy4xJzoKCQkKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignQXBwcm92ZSBBZHZhbmNlZENvbnRlbnQnKTsKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTW9kaWZ5IEFkdmFuY2VkQ29udGVudCBCbG9jayBPcmRlcicpOwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdBZGQgQWR2YW5jZWRDb250ZW50IEJsb2NrcycpOwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdEZWxldGUgQWR2YW5jZWRDb250ZW50IEJsb2NrcycpOwoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnkgQWR2YW5jZWRDb250ZW50IEJsb2NrIE9wdGlvbnMnKTsKCQkKCQkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCAnQ29yZScsICdDb250ZW50RWRpdFByZScpOwoJCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoICdDb3JlJywgJ0NvbnRlbnRFZGl0UG9zdCcpOwoJCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoICdDb3JlJywgJ0NvbnRlbnREZWxldGVQb3N0Jyk7CgkJJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlciggJ0NvcmUnLCAnRWRpdFRlbXBsYXRlUG9zdCcpOwoJCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoICdDb3JlJywgJ0RlbGV0ZVRlbXBsYXRlUG9zdCcpOwoKCQkkZGljdCAgICAgPSBOZXdEYXRhRGljdGlvbmFyeSggJGRiICk7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50IiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfZHJhZnRzIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfcHJvcHMiICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9wcm9wc19kcmFmdHMiICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoCgkJCWNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9hZGR0X2VkaXRvcnMiICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoCgkJCWNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9hZGR0X2VkaXRvcnNfZHJhZnRzIiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkjIGdldCBwcm9wbmFtZSBvZiBhbGwgY29udGVudCBvZiB0eXBlIEFkdmFuY2VkQ29udGVudAoJCSRxdWVyeSAgICA9ICJTRUxFQ1QgQ1AucHJvcF9uYW1lLCBDLmNvbnRlbnRfaWQgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkuImNvbnRlbnQgQwoJCQlMRUZUIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnRfcHJvcHMgQ1AgT04gQ1AuY29udGVudF9pZCA9IEMuY29udGVudF9pZAoJCQlXSEVSRSBDLnR5cGUgPSA/IjsKCQkJCgkJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJ2NvbnRlbnQyJykpOwoJCSRjb250ZW50cyA9IGFycmF5KCk7CgkJCgkJd2hpbGUoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJewoJCQkjIHVwZGF0ZSBwcm9wbmFtZXMgKHJlbW92aW5nIHNwZWNpYWwgY2hhcnMsIHVtbGF1dHMgYW5kIHdoaXRlc3BhY2VzKQoJCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJjb250ZW50X3Byb3BzIFNFVCBwcm9wX25hbWUgPSA/CgkJCQlXSEVSRSBjb250ZW50X2lkID0gPyBBTkQgcHJvcF9uYW1lID0gPyI7CgkJCQkKCQkJJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkocHJlZ19yZXBsYWNlKCcvLSsvJywnXycsbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcm93Wydwcm9wX25hbWUnXSkpLCRyb3dbJ2NvbnRlbnRfaWQnXSwkcm93Wydwcm9wX25hbWUnXSkpOwoJCX0KCQkKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMy4yJzsKCQkKCWNhc2UgJzAuMy4yJzoKCWNhc2UgJzAuMy4zIHByZSc6CgkJJHRoaXMtPkFkZEV2ZW50SGFuZGxlciggJ0NvcmUnLCAnQ29udGVudFBvc3RSZW5kZXInLCBmYWxzZSApOwoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC4zLjMnOwoJCQoJY2FzZSAnMC4zLjMnOgoJCSMgcmVtb3ZlIHVzZXJwcmVmcwoJCSRxdWVyeSAgICA9ICJERUxFVEUgRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkuInVzZXJwcmVmcyBXSEVSRSBwcmVmZXJlbmNlIExJS0UgJ0FkdmFuY2VkQ29udGVudF8lIjsKCQkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQkKCQkjIGFkZCBuZXcgdGFibGUgZm9yIHVzZXIgcHJlZnMKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkZmxkcyA9ICJ1c2VyX2lkIEksIGNvbnRlbnRfaWQgSSwgYmxvY2tfaWQgWCwgYmxvY2tfZGlzcGxheSBJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50X2Jsb2NrZGlzcGxheSIsCgkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuMy40JzsKCQoJY2FzZSAnMC4zLjQnOgoJY2FzZSAnMC40JzoKCQkjIGFkZCBuZXcgdGFibGUgZm9yIHVzZXIgcHJlZnMKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkZmxkcyA9ICJ1c2VyX2lkIEksIGNvbnRlbnRfaWQgSSwgYmxvY2tfaWQgWCwgbWVzc2FnZV9kaXNwbGF5IEkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbWVzc2FnZWRpc3BsYXkiLAoJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjQuMSc7CgkKCWNhc2UgJzAuNC4xJzoKCWNhc2UgJzAuNC4yJzoKCWNhc2UgJzAuNC4zJzoKCWNhc2UgJzAuNC40JzoKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCBPcHRpb25zJywgJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgT3B0aW9ucycpOwoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC41JzsKCQkKCWNhc2UgJzAuNSc6CgljYXNlICcwLjUuMSc6CgkJCgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3VuaW5zdGFsbF9hY3Rpb24nKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgncmVzdHJpY3RkaXJzJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3Nob3dmaWxlbWFuYWdlbWVudCcpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdzaG93dGh1bWJuYWlsZmlsZXMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnYWxsb3dzY2FsaW5nJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3NjYWxpbmd3aWR0aCcpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdzY2FsaW5naGVpZ2h0Jyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2ZpbGVwaWNrZXJzdHlsZScpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtYWtldGh1bWJuYWlsJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2ZpbGVwaWNrZXJ3aWR0aCcpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdmaWxlcGlja2VyaGVpZ2h0Jyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2ZpbGVwaWNrZXJ3aWR0aHVuaXQnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnZmlsZXBpY2tlcmhlaWdodHVuaXQnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnYWxsb3d1cHNjYWxpbmcnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgndXNlbWltZXR5cGUnKTsKCQkKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRkaWN0ICAgICA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfYmxvY2tkaXNwbGF5IiApOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbWVzc2FnZWRpc3BsYXkiICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9ncm91cGRpc3BsYXkiICk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoJCSMgVXNlciBTZXR0aW5ncwoJCSRmbGRzID0gInVzZXJfaWQgSSwgY29udGVudF9pZCBJLCB0ZW1wbGF0ZV9pZCBJLCBpdGVtX2lkIFgsIGl0ZW1fZGlzcGxheSBJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50X2Jsb2NrZGlzcGxheSIsCgkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkjIFVzZXIgU2V0dGluZ3MKCQkkZmxkcyA9ICJ1c2VyX2lkIEksIGNvbnRlbnRfaWQgSSwgdGVtcGxhdGVfaWQgSSwgaXRlbV9pZCBYLCBpdGVtX2Rpc3BsYXkgSSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9tZXNzYWdlZGlzcGxheSIsCgkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCQkjIFVzZXIgU2V0dGluZ3MKCQkkZmxkcyA9ICJ1c2VyX2lkIEksIGNvbnRlbnRfaWQgSSwgdGVtcGxhdGVfaWQgSSwgaXRlbV9pZCBYLCBpdGVtX2Rpc3BsYXkgSSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX0FkdmFuY2VkQ29udGVudF9ncm91cGRpc3BsYXkiLAoJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICcwLjYnOwoJCQoJY2FzZSAnMC42JzoKCQkKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRkaWN0ICAgICAgICA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCQkKCQkjIG11bHRpcGxlIGlucHV0cwoJCSRmbGRzID0gImlucHV0X2lkIEMoNjQpIEtFWSwgaW5wdXRfZmllbGRzIFgiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9BZHZhbmNlZENvbnRlbnRfbXVsdGlfaW5wdXRzIiwKCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQoJCSMgbXVsdGlwbGUgaW5wdXQgdHBsIGFzc29jcwoJCSRmbGRzID0gImlucHV0X2lkIEMoNjQpLCB0cGxfbmFtZSBYIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfQWR2YW5jZWRDb250ZW50X211bHRpX2lucHV0X3RwbF9hc3NvY3MiLAoJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCgkJJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dHMnLCAnTWFuYWdlIEFkdmFuY2VkQ29udGVudCBNdWx0aUlucHV0cycpOwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IE11bHRpSW5wdXQgVGVtcGxhdGVzJywgJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgTXVsdGlJbnB1dCBUZW1wbGF0ZXMnKTsKCQkkdGhpcy0+U2V0VGVtcGxhdGUoJ211bHRpX2lucHV0X1NhbXBsZVRlbXBsYXRlJywKJzxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CjxwPgp7Zm9yZWFjaCBmcm9tPSRpbnB1dHMgaXRlbT1lbG19Cgl7JGVsbS5sYWJlbH06Jm5ic3A7eyRlbG0uaW5wdXR9Jm5ic3A7CnsvZm9yZWFjaH0KPC9wPgo8L2Rpdj4nKTsKCQkkdGhpcy0+QWRkTXVsdGlJbnB1dCgnU2FtcGxlSW5wdXQnLCcKe2NvbnRlbnQgYmxvY2s9Im1vZHVsZV9zZWxlY3QiIGxhYmVsPSJTZWxlY3QgYSBtb2R1bGUiIGJsb2NrX3R5cGU9ImRyb3Bkb3duIiBpdGVtcz0ifE5ld3N8TWVudSIgdmFsdWVzPSJ8TmV3c3xNZW51TWFuYWdlciJ9Cntjb250ZW50IGJsb2NrPSJtb2R1bGVfcGFyYW1zIiBsYWJlbD0iRW50ZXIgbW9kdWxlIHBhcmFtZXRlcnMgaGVyZSIgYmxvY2tfdHlwZT0idGV4dCIgb25lbGluZT10cnVlIHNpemU9IjU2In0nKTsKCQkkdGhpcy0+QWRkVHBsQXNzb2MoJ211bHRpX2lucHV0JywgJ1NhbXBsZUlucHV0JywgJ211bHRpX2lucHV0X1NhbXBsZVRlbXBsYXRlJyk7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfbXVsdGlfaW5wdXRfdHBsJywgJ211bHRpX2lucHV0X1NhbXBsZVRlbXBsYXRlJyk7CgkKCQkkY3VycmVudF92ZXJzaW9uID0gJzAuNi4xJzsKCQkKCWNhc2UgJzAuNi4xJzoKCWNhc2UgJzAuNi4yJzoKCWNhc2UgJzAuNyc6CgljYXNlICcwLjcuMSc6CgkJJHRoaXMtPkFkZEV2ZW50SGFuZGxlciggJ0NvcmUnLCAnQ29udGVudEVkaXRQb3N0JywgZmFsc2UgKTsKCQkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCAnQ29yZScsICdUZW1wbGF0ZVByZUNvbXBpbGUnKTsKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTWFuYWdlIEFkdmFuY2VkQ29udGVudCcpOwoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNYW5hZ2UgQWR2YW5jZWRDb250ZW50IFByZWZlcmVuY2VzJywgJ01hbmFnZSBBZHZhbmNlZENvbnRlbnQgUHJlZmVyZW5jZXMnKTsKCQoJY2FzZSAnMC42LjMnOgoJY2FzZSAnMC42LjQnOgoJY2FzZSAnMC43LjInOgoJY2FzZSAnMC43LjMnOgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1c2VfYWR2YW5jZWRfcGFnZW9wdGlvbnMnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2hvd19hZHZhbmNlZGNvbnRlbnRfb3B0aW9ucycsIDEpKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnc2hvd19hZHZhbmNlZGNvbnRlbnRfb3B0aW9ucycpOwoJCSRjdXJyZW50X3ZlcnNpb24gPSAnMC44JzsKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/addMultiInput.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IGFkZE11bHRpSW5wdXQudHBsCkxpY2Vuc2U6IEdQTAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0KCntpZiBpc3NldCgkZXJyb3JtZXNzYWdlKSAmJiAkZXJyb3JtZXNzYWdlIT0nJ30KPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHVsIGNsYXNzPSJwYWdlZXJyb3IiPjxsaT57JGVycm9ybWVzc2FnZX08L2xpPjwvdWw+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9CntpZiBpc3NldCgkbWVzc2FnZSkgJiYgJG1lc3NhZ2UhPScnfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPgoJCTxwPnskbWVzc2FnZX08L3A+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9Cnskc3RhcnRfZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbnB1dF9pZF90ZXh0fTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaWRfaW5wdXR9PGJyIC8+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbnB1dF90cGxfdGV4dH08L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RwbF9pbnB1dH08YnIgLz48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGlucHV0X2ZpZWxkc190ZXh0fTwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZmllbGRzX2lucHV0fTxiciAvPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fSZuYnNwO3skY2FuY2VsfTxiciAvPjwvcD4KPC9kaXY+CnskZW5kX2Zvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/addMultiInputTpl.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IGFkZE11bHRpSW5wdXRUcGwudHBsCkxpY2Vuc2U6IEdQTAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0KCntpZiBpc3NldCgkZXJyb3JtZXNzYWdlKSAmJiAkZXJyb3JtZXNzYWdlIT0nJ30KPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHVsIGNsYXNzPSJwYWdlZXJyb3IiPjxsaT57JGVycm9ybWVzc2FnZX08L2xpPjwvdWw+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9CntpZiBpc3NldCgkbWVzc2FnZSkgJiYgJG1lc3NhZ2UhPScnfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPgoJCTxwPnskbWVzc2FnZX08L3A+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9Cnskc3RhcnRfZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxkaXYgY2xhc3M9InBhZ2V0ZXh0Ij57JHRwbF9uYW1lX3RleHR9PC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPnskdHBsX25hbWVfaW5wdXR9PGJyIC8+PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZXRleHQiPnskdGVtcGxhdGVfdGV4dH08L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+CgkJPHRhYmxlIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0b3AiPgoJCQk8dGJvZHk+CgkJCQk8dHI+CgkJCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0b3AiPgoJCQkJCQl7JHRlbXBsYXRlX2lucHV0fQoJCQkJCTwvdGQ+CgkJCQkJPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjp0b3AiPgoJCQkJCQl7JGhlbHBfdGV4dH0KCQkJCQk8L3RkPgoJCQkJPC90cj4KCQkJPC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH0mbmJzcDt7JGNhbmNlbH08YnIgLz48L2Rpdj4KPC9kaXY+CnskZW5kX2Zvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/contentType.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IGNvbnRlbnRUeXBlLnRwbApMaWNlbnNlOiBHUEwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSp9Cgo8IS0tIFNUQVJUIFBBR0VfVEFCIHskcGFnZV90YWJfaWR9IC0tPgoKe2lmICRwYWdlX3RhYnMuJHBhZ2VfdGFiX2lkLmJsb2NrX3RhYnN8QGNvdW50ID4gMH0KCjwhLS0gc3RhcnQgYmxvY2tfdGFicyBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KPCEtLSBzdGFydCBibG9ja190YWJzIHRhYmhlYWRlcnMgaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+CjxkaXYgaWQ9InBhZ2VfdGFicyI+Cgk8ZGl2IGlkPSJibG9ja190YWJzX3skcGFnZV90YWJfbnJ9IiBjbGFzcz0iU3ViVGFiV3JhcHBlciI+CgkJCgl7Zm9yZWFjaCBmcm9tPSRwYWdlX3RhYnMuJHBhZ2VfdGFiX2lkLmJsb2NrX3RhYnMgaXRlbT1ibG9ja190YWJfaWQgbmFtZT1jdXJyZW50X3RhYn0KCQkKCQk8ZGl2IGlkPSJlZGl0YWJ7JHBhZ2VfdGFiX25yfV97JGJsb2NrX3RhYl9pZH0iIHtpZiAkc21hcnR5LmZvcmVhY2guY3VycmVudF90YWIuZmlyc3R9Y2xhc3M9ImFjdGl2ZSJ7L2lmfSBvbmNsaWNrPSJBZHZhbmNlZENvbnRlbnQudG9nZ2xlQmxvY2sodGhpcy5pZCwgJ2Jsb2NrX3RhYnNfeyRwYWdlX3RhYl9ucn0nKSI+CgkJCQoJCQl7JGJsb2NrX3RhYnMuJGJsb2NrX3RhYl9pZC50YWJfbmFtZX0KCQkJCgkJPC9kaXY+CgkJCgl7L2ZvcmVhY2h9CgkJCgk8L2Rpdj4KPC9kaXY+CjwhLS0gZW5kIGJsb2NrX3RhYnMgdGFiaGVhZGVycyBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KPCEtLSBzdGFydCBibG9ja190YWJzIHRhYmNvbnRlbnQgaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+CjxkaXYgaWQ9InBhZ2VfY29udGVudCIgc3R5bGU9InBhZGRpbmctYm90dG9tOjA7bWFyZ2luLWJvdHRvbToyMHB4OyI+CgkKCXtmb3JlYWNoIGZyb209JHBhZ2VfdGFicy4kcGFnZV90YWJfaWQuYmxvY2tfdGFicyBpdGVtPWJsb2NrX3RhYl9pZCBuYW1lPWN1cnJlbnRfdGFifQoJCgk8IS0tIHN0YXJ0IGJsb2NrX3RhYiB7JGJsb2NrX3RhYl9pZH0gaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+Cgk8ZGl2IGlkPSJlZGl0YWJ7JHBhZ2VfdGFiX25yfV97JGJsb2NrX3RhYl9pZH1fYyJ7aWYgJHNtYXJ0eS5mb3JlYWNoLmN1cnJlbnRfdGFiLmZpcnN0fSBzdHlsZT0iZGlzcGxheTpibG9jayJ7ZWxzZX0gc3R5bGU9ImRpc3BsYXk6bm9uZSJ7L2lmfT4KCQkKCQl7aWYgJGJsb2NrX3RhYnMuJGJsb2NrX3RhYl9pZC5ibG9ja19ncm91cHN8QGNvdW50ID4gMH0KCQk8IS0tIHN0YXJ0IGJsb2NrX2dyb3VwcyBpbiBibG9ja190YWIgeyRibG9ja190YWJfaWR9IGluIHBhZ2VfdGFiIHskcGFnZV90YWJfaWR9IC0tPgoJCQl7Zm9yZWFjaCBmcm9tPSRibG9ja190YWJzLiRibG9ja190YWJfaWQuYmxvY2tfZ3JvdXBzIGl0ZW09YmxvY2tfZ3JvdXBfaWR9CgkJCgkJPCEtLSBzdGFydCBibG9ja19ncm91cCB7JGJsb2NrX2dyb3VwX2lkfSBpbiBibG9ja190YWIgeyRibG9ja190YWJfaWR9IGluIHBhZ2VfdGFiIHskcGFnZV90YWJfaWR9IC0tPgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxmaWVsZHNldCBzdHlsZT0ibWFyZ2luOjVweCAzJSAxNXB4IDA7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDogMzBweDsiPgoJCQkJPGxlZ2VuZCBjbGFzcz0iQWR2YW5jZWRDb250ZW50X0Jsb2NrR3JvdXAiPgoJCQkJCXskYmxvY2tfZ3JvdXBzLiRibG9ja19ncm91cF9pZC5ncm91cF9uYW1lfToKCQkJCTwvbGVnZW5kPgoJCQkJPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7bWFyZ2luOi0yM3B4IC0yM3B4IDAgMDtwb3NpdGlvbjpyZWxhdGl2ZSIgb25jbGljaz0ialF1ZXJ5KCcjeyRibG9ja19ncm91cF9pZH1fd3JhcHBlcicpLnRvZ2dsZSgnZmFzdCcpOyB0aGlzLmNsYXNzTmFtZSA9ICh0aGlzLmNsYXNzTmFtZSA9PSAnbm90aWZpY2F0aW9ucy1oaWRlJyA/ICdub3RpZmljYXRpb25zLXNob3cnIDogJ25vdGlmaWNhdGlvbnMtaGlkZScpOyBqUXVlcnkuZ2V0KCd7JGJsb2NrX2dyb3Vwcy4kYmxvY2tfZ3JvdXBfaWQucHJlZl91cmx9JnskbW9kdWxlX2lkfWl0ZW1fZGlzcGxheT0nKyh0aGlzLmNsYXNzTmFtZSA9PSAnbm90aWZpY2F0aW9ucy1oaWRlJyA/IDEgOiAwKSk7IiBjbGFzcz0ie2lmICRibG9ja19ncm91cHMuJGJsb2NrX2dyb3VwX2lkLmRpc3BsYXkgPT0gMH1ub3RpZmljYXRpb25zLXNob3d7ZWxzZX1ub3RpZmljYXRpb25zLWhpZGV7L2lmfSIgaWQ9InRvZ2dsZS17JGJsb2NrX2dyb3VwX2lkfSI+PC9kaXY+CgkJCQk8IS0tIHN0YXJ0IGJsb2NrcyBpbiBibG9ja19ncm91cCB7JGJsb2NrX2dyb3VwX2lkfSBpbiBibG9ja190YWIgeyRibG9ja190YWJfaWR9IGluIHBhZ2VfdGFiIHskcGFnZV90YWJfaWR9IC0tPgoJCQkJPGRpdiBpZD0ieyRibG9ja19ncm91cF9pZH1fd3JhcHBlciIgY2xhc3M9IntpZiAkYmxvY2tfZ3JvdXBzLiRibG9ja19ncm91cF9pZC5kaXNwbGF5ID09IDB9aW52aXNpYmxle2Vsc2V9dmlzaWJsZXsvaWZ9Ij4KCQkJCQkKCQkJCXtmb3JlYWNoIGZyb209JGJsb2NrX2dyb3Vwcy4kYmxvY2tfZ3JvdXBfaWQuY29udGVudF9ibG9ja3MgaXRlbT1jb250ZW50X2Jsb2NrX2lkfQoJCQkJCQoJCQkJCTwhLS0gc3RhcnQgYmxvY2sgeyRjb250ZW50X2Jsb2NrX2lkfSBpbiBibG9ja19ncm91cCB7JGJsb2NrX2dyb3VwX2lkfSBpbiBibG9ja190YWIgeyRibG9ja190YWJfaWR9IGluIHBhZ2VfdGFiIHskcGFnZV90YWJfaWR9IC0tPgoJCQkJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCQkJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCQkJCQk8c3Ryb25nPnskY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQubGFiZWx9Ojwvc3Ryb25nPgoJCQkJCQk8L2Rpdj4KCQkJCQkJCgkJCQkJCXtpZiAkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuZGVzY3JpcHRpb259CgkJCQkJCQoJCQkJCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQkJCQkJCgkJCQkJCQl7JGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLmRlc2NyaXB0aW9ufQoJCQkJCQkJCgkJCQkJCTwvZGl2PgoJCQkJCQkKCQkJCQkJey9pZn0KCQkJCQkJCgkJCQkJCTxkaXYgc3R5bGU9InBhZGRpbmc6IDVweCAwIDAgMDsiPgoJCQkJCQkJCgkJCQkJCXtpZiAkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuYmxvY2tfdHlwZSAhPSAnJ30KCQkJCQkJCQoJCQkJCQkJPHA+eyRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5pbnB1dH08L3A+CgkJCQkJCQkKCQkJCQkJe2Vsc2V9CgkJCQkJCQkKCQkJCQkJCXskY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuY29udGVudH0KCQkJCQkJCQoJCQkJCQl7L2lmfQoJCQkJCQkJCgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTwhLS0gZW5kIGJsb2NrIHskY29udGVudF9ibG9ja19pZH0gaW4gYmxvY2tfZ3JvdXAgeyRibG9ja19ncm91cF9pZH0gaW4gYmxvY2tfdGFiIHskYmxvY2tfdGFiX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCQkJCQoJCQkJey9mb3JlYWNofQoJCQkJCgkJCQk8L2Rpdj4KCQkJCTwhLS0gZW5kIGJsb2NrcyBpbiBibG9ja19ncm91cCB7JGJsb2NrX2dyb3VwX2lkfSBpbiBibG9ja190YWIgeyRibG9ja190YWJfaWR9IGluIHBhZ2VfdGFiIHskcGFnZV90YWJfaWR9IC0tPgoJCQk8L2ZpZWxkc2V0PgoJCTwvZGl2PgoJCTwhLS0gZW5kIGJsb2NrX2dyb3VwIHskYmxvY2tfZ3JvdXBfaWR9IGluIGJsb2NrX3RhYiB7JGJsb2NrX3RhYl9pZH0gaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+CgkJCgkJCXsvZm9yZWFjaH0KCQk8IS0tIGVuZCBibG9ja19ncm91cHMgaW4gYmxvY2tfdGFiIHskYmxvY2tfdGFiX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCQl7L2lmfQoJCQoJCXtpZiAkYmxvY2tfdGFicy4kYmxvY2tfdGFiX2lkLmNvbnRlbnRfYmxvY2tzfEBjb3VudCA+IDB9CgkJPCEtLSBzdGFydCBibG9ja3MgaW4gYmxvY2tfdGFiIHskYmxvY2tfdGFiX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCQkJe2ZvcmVhY2ggZnJvbT0kYmxvY2tfdGFicy4kYmxvY2tfdGFiX2lkLmNvbnRlbnRfYmxvY2tzIGl0ZW09Y29udGVudF9ibG9ja19pZH0KCQkKCQk8IS0tIHN0YXJ0IGJsb2NrIHskY29udGVudF9ibG9ja19pZH0gaW4gYmxvY2tfdGFiIHskYmxvY2tfdGFiX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8ZmllbGRzZXQgc3R5bGU9Im1hcmdpbjo1cHggMyUgMTVweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctcmlnaHQ6IDMwcHg7Ij4KCQkJCTxsZWdlbmQgY2xhc3M9IkFkdmFuY2VkQ29udGVudF9Db250ZW50QmxvY2siPnskY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQubGFiZWx9OjwvbGVnZW5kPgoJCQkJCgkJCQl7aWYgJGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLmJsb2NrX3R5cGUgJiYgISRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5ub19jb2xsYXBzZX0KCQkJCQoJCQkJPGRpdiBzdHlsZT0iZmxvYXQ6cmlnaHQ7bWFyZ2luOi0yM3B4IC0yM3B4IDAgMDtwb3NpdGlvbjpyZWxhdGl2ZSIgb25jbGljaz0ialF1ZXJ5KCcjeyRjb250ZW50X2Jsb2NrX2lkfV93cmFwcGVyJykudG9nZ2xlKCdmYXN0Jyk7IHRoaXMuY2xhc3NOYW1lID0gKHRoaXMuY2xhc3NOYW1lID09ICdub3RpZmljYXRpb25zLWhpZGUnID8gJ25vdGlmaWNhdGlvbnMtc2hvdycgOiAnbm90aWZpY2F0aW9ucy1oaWRlJyk7IGpRdWVyeS5nZXQoJ3skY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQucHJlZl91cmx9JnskbW9kdWxlX2lkfWl0ZW1fZGlzcGxheT0nKyh0aGlzLmNsYXNzTmFtZSA9PSAnbm90aWZpY2F0aW9ucy1oaWRlJyA/IDEgOiAwKSk7IiBjbGFzcz0ie2lmICRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5kaXNwbGF5ID09IDB9bm90aWZpY2F0aW9ucy1zaG93e2Vsc2V9bm90aWZpY2F0aW9ucy1oaWRley9pZn0iIGlkPSJ0b2dnbGUteyRjb250ZW50X2Jsb2NrX2lkfSI+PC9kaXY+CgkJCQkKCQkJCXsvaWZ9CgkJCQkKCQkJCTxkaXYgaWQ9InskY29udGVudF9ibG9ja19pZH1fd3JhcHBlciIgY2xhc3M9IntpZiAkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuZGlzcGxheSA9PSAwICYmICEkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQubm9fY29sbGFwc2V9aW52aXNpYmxle2Vsc2V9dmlzaWJsZXsvaWZ9Ij4KCQkJCQkKCQkJCXtpZiAkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuZGVzY3JpcHRpb259CgkJCQkJCgkJCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCQkJCgkJCQkJeyRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5kZXNjcmlwdGlvbn0KCQkJCQkJCgkJCQkJPC9kaXY+CgkJCQkJCgkJCQl7L2lmfQoJCQkJCQoJCQkJCTxkaXYgc3R5bGU9InBhZGRpbmc6IDVweCAwIDAgMDsiPgoJCQkJCQkKCQkJCXtpZiAkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuYmxvY2tfdHlwZSAhPSAnJ30KCQkJCQkJCgkJCQkJCTxwPnskY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuaW5wdXR9PC9wPgoJCQkJCQkKCQkJCXtlbHNlfQoJCQkJCQkKCQkJCQl7JGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLmNvbnRlbnR9CgkJCQkJCQoJCQkJey9pZn0KCQkJCQkJCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9maWVsZHNldD4KCQk8L2Rpdj4KCQk8IS0tIGVuZCBibG9jayB7JGNvbnRlbnRfYmxvY2tfaWR9IGluIGJsb2NrX3RhYiB7JGJsb2NrX3RhYl9pZH0gaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+CgkJCgkJCXsvZm9yZWFjaH0KCQk8IS0tIGVuZCBibG9ja3MgaW4gYmxvY2tfdGFiIHskYmxvY2tfdGFiX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCQl7L2lmfQoJCQoJPC9kaXY+Cgk8IS0tIGVuZCBibG9ja190YWIgeyRibG9ja190YWJfaWR9IGluIHBhZ2VfdGFiIHskcGFnZV90YWJfaWR9IC0tPgoJCgl7L2ZvcmVhY2h9CgkKPC9kaXY+CjwhLS0gZW5kIGJsb2NrX3RhYnMgdGFiY29udGVudCBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KPCEtLSBlbmQgYmxvY2tfdGFicyBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCnsvaWZ9Cgp7aWYgJHBhZ2VfdGFicy4kcGFnZV90YWJfaWQuYmxvY2tfZ3JvdXBzfEBjb3VudCA+IDB9Cgo8IS0tIHN0YXJ0IGJsb2NrX2dyb3VwcyBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCgl7Zm9yZWFjaCBmcm9tPSRwYWdlX3RhYnMuJHBhZ2VfdGFiX2lkLmJsb2NrX2dyb3VwcyBpdGVtPWJsb2NrX2dyb3VwX2lkfQoJCjwhLS0gc3RhcnQgYmxvY2tfZ3JvdXAgeyRibG9ja19ncm91cF9pZH0gaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8ZmllbGRzZXQgc3R5bGU9Im1hcmdpbjo1cHggMyUgMTVweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctcmlnaHQ6IDMwcHg7Ij4KCQk8bGVnZW5kIGNsYXNzPSJBZHZhbmNlZENvbnRlbnRfQmxvY2tHcm91cCI+CgkJCXskYmxvY2tfZ3JvdXBzLiRibG9ja19ncm91cF9pZC5ncm91cF9uYW1lfToKCQk8L2xlZ2VuZD4KCQk8ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDttYXJnaW46LTIzcHggLTIzcHggMCAwO3Bvc2l0aW9uOnJlbGF0aXZlIiBvbmNsaWNrPSJqUXVlcnkoJyN7JGJsb2NrX2dyb3VwX2lkfV93cmFwcGVyJykudG9nZ2xlKCdmYXN0Jyk7IHRoaXMuY2xhc3NOYW1lID0gKHRoaXMuY2xhc3NOYW1lID09ICdub3RpZmljYXRpb25zLWhpZGUnID8gJ25vdGlmaWNhdGlvbnMtc2hvdycgOiAnbm90aWZpY2F0aW9ucy1oaWRlJyk7IGpRdWVyeS5nZXQoJ3skYmxvY2tfZ3JvdXBzLiRibG9ja19ncm91cF9pZC5wcmVmX3VybH0meyRtb2R1bGVfaWR9aXRlbV9kaXNwbGF5PScrKHRoaXMuY2xhc3NOYW1lID09ICdub3RpZmljYXRpb25zLWhpZGUnID8gMSA6IDApKTsiIGNsYXNzPSJ7aWYgJGJsb2NrX2dyb3Vwcy4kYmxvY2tfZ3JvdXBfaWQuZGlzcGxheSA9PSAwfW5vdGlmaWNhdGlvbnMtc2hvd3tlbHNlfW5vdGlmaWNhdGlvbnMtaGlkZXsvaWZ9IiBpZD0idG9nZ2xlLXskYmxvY2tfZ3JvdXBfaWR9Ij48L2Rpdj4KCQk8IS0tIHN0YXJ0IGJsb2NrcyBpbiBibG9ja19ncm91cCB7JGJsb2NrX2dyb3VwX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCQk8ZGl2IGlkPSJ7JGJsb2NrX2dyb3VwX2lkfV93cmFwcGVyIiBjbGFzcz0ie2lmICRibG9ja19ncm91cHMuJGJsb2NrX2dyb3VwX2lkLmRpc3BsYXkgPT0gMH1pbnZpc2libGV7ZWxzZX12aXNpYmxley9pZn0iPgoJCQkKCQl7Zm9yZWFjaCBmcm9tPSRibG9ja19ncm91cHMuJGJsb2NrX2dyb3VwX2lkLmNvbnRlbnRfYmxvY2tzIGl0ZW09Y29udGVudF9ibG9ja19pZH0KCQkJCgkJCTwhLS0gc3RhcnQgYmxvY2sgeyRjb250ZW50X2Jsb2NrX2lkfSBpbiBibG9ja19ncm91cCB7JGJsb2NrX2dyb3VwX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCQoJCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCQk8c3Ryb25nPnskY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQubGFiZWx9Ojwvc3Ryb25nPgoJCQkJPC9kaXY+CgkJCQkKCQkJe2lmICRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5kZXNjcmlwdGlvbn0KCQkJCQoJCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCQkKCQkJCXskY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuZGVzY3JpcHRpb259CgkJCQkJCgkJCQk8L2Rpdj4KCQkJCQoJCQkJey9pZn0KCQkJCQoJCQkJPGRpdiBzdHlsZT0icGFkZGluZzogNXB4IDAgMCAwOyI+CgkJCQkJCgkJCXtpZiAkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuYmxvY2tfdHlwZSAhPSAnJ30KCQkJCQkKCQkJCQk8cD57JGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLmlucHV0fTwvcD4KCQkJCQkKCQkJe2Vsc2V9CgkJCQkJCgkJCQl7JGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLmNvbnRlbnR9CgkJCQkJCgkJCXsvaWZ9CgkJCQkJCgkJCQk8L2Rpdj4KCQkJCQkKCQkJPC9kaXY+CgkJCTwhLS0gZW5kIGJsb2NrIHskY29udGVudF9ibG9ja19pZH0gaW4gYmxvY2tfZ3JvdXAgeyRibG9ja19ncm91cF9pZH0gaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+CgkJCgkJey9mb3JlYWNofQoJCQoJCTwvZGl2PgoJCTwhLS0gZW5kIGJsb2NrcyBpbiBibG9ja19ncm91cCB7JGJsb2NrX2dyb3VwX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCTwvZmllbGRzZXQ+CjwvZGl2Pgo8IS0tIGVuZCBibG9ja19ncm91cCB7JGJsb2NrX2dyb3VwX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4Key9mb3JlYWNofQo8IS0tIGVuZCBibG9ja19ncm91cHMgaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+CnsvaWZ9CgoKe2lmICRwYWdlX3RhYnMuJHBhZ2VfdGFiX2lkLmNvbnRlbnRfYmxvY2tzfEBjb3VudCA+IDB9Cgo8IS0tIHN0YXJ0IGJsb2NrcyBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCgl7Zm9yZWFjaCBmcm9tPSRwYWdlX3RhYnMuJHBhZ2VfdGFiX2lkLmNvbnRlbnRfYmxvY2tzIGl0ZW09Y29udGVudF9ibG9ja19pZH0KCQo8IS0tIHN0YXJ0IGJsb2NrIHskY29udGVudF9ibG9ja19pZH0gaW4gcGFnZV90YWIgeyRwYWdlX3RhYl9pZH0gLS0+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8ZmllbGRzZXQgc3R5bGU9Im1hcmdpbjo1cHggMyUgMTVweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctcmlnaHQ6IDMwcHg7Ij4KCQk8bGVnZW5kIGNsYXNzPSJBZHZhbmNlZENvbnRlbnRfQ29udGVudEJsb2NrIj57JGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLmxhYmVsfTo8L2xlZ2VuZD4KCQkKCQl7aWYgJGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLmJsb2NrX3R5cGUgJiYgISRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5ub19jb2xsYXBzZX0KCQkKCQk8ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDttYXJnaW46LTIzcHggLTIzcHggMCAwO3Bvc2l0aW9uOnJlbGF0aXZlIiBvbmNsaWNrPSJqUXVlcnkoJyN7JGNvbnRlbnRfYmxvY2tfaWR9X3dyYXBwZXInKS50b2dnbGUoJ2Zhc3QnKTsgdGhpcy5jbGFzc05hbWUgPSAodGhpcy5jbGFzc05hbWUgPT0gJ25vdGlmaWNhdGlvbnMtaGlkZScgPyAnbm90aWZpY2F0aW9ucy1zaG93JyA6ICdub3RpZmljYXRpb25zLWhpZGUnKTsgalF1ZXJ5LmdldCgneyRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5wcmVmX3VybH0meyRtb2R1bGVfaWR9aXRlbV9kaXNwbGF5PScrKHRoaXMuY2xhc3NOYW1lID09ICdub3RpZmljYXRpb25zLWhpZGUnID8gMSA6IDApKTsiIGNsYXNzPSJ7aWYgJGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLmRpc3BsYXkgPT0gMH1ub3RpZmljYXRpb25zLXNob3d7ZWxzZX1ub3RpZmljYXRpb25zLWhpZGV7L2lmfSIgaWQ9InRvZ2dsZS17JGNvbnRlbnRfYmxvY2tfaWR9Ij48L2Rpdj4KCQkKCQl7L2lmfQoJCQoJCTxkaXYgaWQ9InskY29udGVudF9ibG9ja19pZH1fd3JhcHBlciIgY2xhc3M9IntpZiAkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuZGlzcGxheSA9PSAwICYmICEkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQubm9fY29sbGFwc2V9aW52aXNpYmxle2Vsc2V9dmlzaWJsZXsvaWZ9Ij4KCQkJCgkJe2lmICRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5kZXNjcmlwdGlvbn0KCQkJCgkJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCQkKCQkJCXskY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuZGVzY3JpcHRpb259CgkJCQkKCQkJPC9kaXY+CgkJCQoJCXsvaWZ9CgkJCQoJCQk8ZGl2IHN0eWxlPSJwYWRkaW5nOiA1cHggMCAwIDA7Ij4KCQkJCQoJCXtpZiAkY29udGVudF9ibG9ja3MuJGNvbnRlbnRfYmxvY2tfaWQuYmxvY2tfdHlwZSAhPSAnJ30KCQkJCQoJCQkJPHA+eyRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5pbnB1dH08L3A+CgkJCQkKCQl7ZWxzZX0KCQkJCQoJCQkJeyRjb250ZW50X2Jsb2Nrcy4kY29udGVudF9ibG9ja19pZC5jb250ZW50fQoJCQkJCgkJey9pZn0KCQkJCQoJCQk8L2Rpdj4KCQkJCgkJPC9kaXY+Cgk8L2ZpZWxkc2V0Pgo8L2Rpdj4KPCEtLSBlbmQgYmxvY2sgeyRjb250ZW50X2Jsb2NrX2lkfSBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCgl7L2ZvcmVhY2h9Cgo8IS0tIHN0YXJ0IGJsb2NrcyBpbiBwYWdlX3RhYiB7JHBhZ2VfdGFiX2lkfSAtLT4KCnsvaWZ9Cgo8IS0tIEVORCBQQUdFX1RBQiB7JHBhZ2VfdGFiX2lkfSAtLT4K]]></data>
	</file>
	<file>
	  <filename>/templates/defaultadmin.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IGRlZmF1bHRhZG1pbi50cGwKTGljZW5zZTogR1BMCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qfQoKPGRpdiBpZD0iQWR2YW5jZWRDb250ZW50UmVzdWx0Ij4KCXtpZiBpc3NldCgkbWVzc2FnZSkgJiYgJG1lc3NhZ2UhPScnfQoJPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPgoJCTxwIGNsYXNzPSJwYWdlbWVzc2FnZSI+eyRtZXNzYWdlfTwvcD4KCTwvZGl2PgoJey9pZn0KPC9kaXY+Cgp7aWYgJHRhYnN8QGNvdW50fQoJeyRzdGFydF90YWJoZWFkZXJzfQoJCXtmb3JlYWNoIGZyb209JHRhYnMgaXRlbT10YWJ9CgkJCXskdGFiLnRhYmhlYWRlcn0KCQl7L2ZvcmVhY2h9Cgl7JGVuZF90YWJoZWFkZXJzfQoJeyRzdGFydF90YWJjb250ZW50fQoJCXtmb3JlYWNoIGZyb209JHRhYnMgaXRlbT10YWJ9CgkJCXskdGFiLnRhYmNvbnRlbnR9CgkJey9mb3JlYWNofQoJeyRlbmRfdGFiY29udGVudH0Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IGhlYWRlci50cGwKTGljZW5zZTogR1BMCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qfQoKPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0ic2NyZWVuIiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ie3Jvb3RfdXJsfS9tb2R1bGVzL0FkdmFuY2VkQ29udGVudC9jc3Mvc3R5bGUuY3NzIiAvPgp7aWYgaXNzZXQoJGNvbG9ycGlja2VyX2Jsb2NrcykgJiYgJGNvbG9ycGlja2VyX2Jsb2Nrc3xjb3VudH0KPGxpbmsgcmVsPXN0eWxlc2hlZXQgaHJlZj0ie3Jvb3RfdXJsfS9tb2R1bGVzL0FkdmFuY2VkQ29udGVudC9jc3MvanBpY2tlci5jc3MiIHR5cGU9InRleHQvY3NzIiAvPgp7L2lmfQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ie3Jvb3RfdXJsfS9tb2R1bGVzL0FkdmFuY2VkQ29udGVudC9qcy9tYWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKe2xpdGVyYWx9CmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CgkvL2pRdWVyeS5ub0NvbmZsaWN0KCk7CglqUXVlcnkoJy5zb3J0YWJsZV93cmFwcGVyJykuc29ydGFibGUoewoJCWl0ZW1zOiAnLnNvcnRhYmxlJywKCQloYW5kbGU6ICcuc29ydGFibGVfaGFuZGxlcicsCgkJYXhpczogJ3knCgl9KTsKCWpRdWVyeSgnLnNvcnRhYmxlX2hhbmRsZXInKS5kaXNhYmxlU2VsZWN0aW9uKCk7CglqUXVlcnkoJyNBZHZhbmNlZENvbnRlbnRTdGFydERhdGVQaWNrZXJEaXNwbGF5JykuY2FsZW5kYXIoewoJCXRyaWdnZXJFbGVtZW50OiAnI0FkdmFuY2VkQ29udGVudFN0YXJ0RGF0ZVBpY2tlclRyaWdnZXInLAoJCWRhdGVGb3JtYXQ6ICcleCcsCgkJY2xvc2VIYW5kbGVyOiBmdW5jdGlvbiAoY2FsZW5kYXIpIHsKCQkJalF1ZXJ5KCcjQWR2YW5jZWRDb250ZW50U3RhcnREYXRlJykudmFsKGV2YWwoY2FsZW5kYXIuZGF0ZS5nZXRUaW1lKCkvMTAwMCkpOwoJCQljYWxlbmRhci5jb250YWluZXIuaGlkZSgpOwoJCX0KCX0pOwoJalF1ZXJ5KCcjQWR2YW5jZWRDb250ZW50RW5kRGF0ZVBpY2tlckRpc3BsYXknKS5jYWxlbmRhcih7CgkJdHJpZ2dlckVsZW1lbnQ6ICcjQWR2YW5jZWRDb250ZW50RW5kRGF0ZVBpY2tlclRyaWdnZXInLAoJCWRhdGVGb3JtYXQ6ICcleCcsCgkJY2xvc2VIYW5kbGVyOiBmdW5jdGlvbiAoY2FsZW5kYXIpIHsKCQkJalF1ZXJ5KCcjQWR2YW5jZWRDb250ZW50RW5kRGF0ZScpLnZhbChldmFsKGNhbGVuZGFyLmRhdGUuZ2V0VGltZSgpLzEwMDApKTsKCQkJY2FsZW5kYXIuY29udGFpbmVyLmhpZGUoKTsKCQl9Cgl9KTsKey9saXRlcmFsfQp7aWYgaXNzZXQoJGRhdGVfYmxvY2tzKSAmJiAkZGF0ZV9ibG9ja3N8QGNvdW50ID4gMH0KCXtmb3JlYWNoIGZyb209JGRhdGVfYmxvY2tzIGl0ZW09Y29udGVudF9ibG9ja19pZH0KCQl7aWYgJGNvbnRlbnRfYmxvY2tzLiRjb250ZW50X2Jsb2NrX2lkLm1vZGUgPT0gJ2NhbGVuZGFyJ30KCQkJe2xpdGVyYWx9CgkJalF1ZXJ5KCcjey9saXRlcmFsfXskY29udGVudF9ibG9ja19pZH17bGl0ZXJhbH1fQWR2YW5jZWRDb250ZW50RGF0ZVBpY2tlckRpc3BsYXknKS5jYWxlbmRhcih7CgkJCXRyaWdnZXJFbGVtZW50OiAnI3svbGl0ZXJhbH17JGNvbnRlbnRfYmxvY2tfaWR9e2xpdGVyYWx9X0FkdmFuY2VkQ29udGVudERhdGVQaWNrZXJUcmlnZ2VyJywKCQkJZGF0ZUZvcm1hdDogJyV4JywKCQkJY2xvc2VIYW5kbGVyOiBmdW5jdGlvbiAoY2FsZW5kYXIpIHsKCQkJCWpRdWVyeSgnI3svbGl0ZXJhbH17JGNvbnRlbnRfYmxvY2tfaWR9e2xpdGVyYWx9X0FkdmFuY2VkQ29udGVudERhdGUnKS52YWwoZXZhbChjYWxlbmRhci5kYXRlLmdldFRpbWUoKS8xMDAwKSk7CgkJCQljYWxlbmRhci5jb250YWluZXIuaGlkZSgpOwoJCQl9CgkJfSk7CgkJCXsvbGl0ZXJhbH0KCQl7L2lmfQoJey9mb3JlYWNofQp7L2lmfQp7bGl0ZXJhbH19ey9saXRlcmFsfSk7CntpZiBpc3NldCgkY29sb3JwaWNrZXJfYmxvY2tzKSAmJiAkY29sb3JwaWNrZXJfYmxvY2tzfGNvdW50fQpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge2xpdGVyYWx9e3svbGl0ZXJhbH0KCWpRdWVyeS5mbi5qUGlja2VyLmRlZmF1bHRzLmltYWdlcy5jbGllbnRQYXRoPSJ7cm9vdF91cmx9L21vZHVsZXMvQWR2YW5jZWRDb250ZW50L2ltYWdlcy9qcGlja2VyLyI7Cgl7Zm9yZWFjaCBmcm9tPSRjb2xvcnBpY2tlcl9ibG9ja3MgaXRlbT0iY29sb3JwaWNrZXIifQoJalF1ZXJ5KCIjeyRjb2xvcnBpY2tlcn0iKS5qUGlja2VyKCk7Cgl7L2ZvcmVhY2h9CntsaXRlcmFsfX17L2xpdGVyYWx9KTsKey9pZn0Ke2lmIGlzc2V0KCRzbGlkZXJfYmxvY2tzKSAmJiAkc2xpZGVyX2Jsb2Nrc3xjb3VudH0KalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtsaXRlcmFsfXt7L2xpdGVyYWx9Cgl7Zm9yZWFjaCBmcm9tPSRzbGlkZXJfYmxvY2tzIGl0ZW09InNsaWRlciJ9CglqUXVlcnkoIiN7JHNsaWRlcn0iKS5zbGlkZXIoe2lmICRjb250ZW50X2Jsb2Nrcy4kc2xpZGVyLnBhcmFtc3xjb3VudH17bGl0ZXJhbH17ey9saXRlcmFsfQoJCXtmb3JlYWNoIGZyb209JGNvbnRlbnRfYmxvY2tzLiRzbGlkZXIucGFyYW1zIGl0ZW09InBhcmFtX3ZhbHVlIiBrZXk9InBhcmFtX25hbWUiIG5hbWU9InNsaWRlcl9wYXJhbXMifQoJCXskcGFyYW1fbmFtZX06IHskcGFyYW1fdmFsdWV9e2lmICEkc21hcnR5LmZvcmVhY2guc2xpZGVyX3BhcmFtcy5sYXN0fSx7L2lmfQoJCXsvZm9yZWFjaH0KCXtsaXRlcmFsfX17L2xpdGVyYWx9ey9pZn0pOwoJey9mb3JlYWNofQp9KTsKey9pZn0Ke2xpdGVyYWx9CkFkdmFuY2VkQ29udGVudCA9IHsKCXRvZ2dsZUJsb2NrOiBmdW5jdGlvbiAodGFiSWQsIG5hdmJhcl9pZCkgewoJCXZhciBuYXZiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYXZiYXJfaWQpOwoJCXZhciB0YWJzICAgPSBuYXZiYXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpOwoJCQoJCWZvciAodmFyIGkgPSAwOyBpIDwgdGFicy5sZW5ndGg7IGkgKz0gMSkgewoJCQkvL3RhYnNbaV0ub25tb3VzZWRvd24gPSBmdW5jdGlvbigpIHsKCQkJZm9yICh2YXIgaiA9IDA7IGogPCB0YWJzLmxlbmd0aDsgaiArPSAxKSB7CgkJCQl0YWJzW2pdLmNsYXNzTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICcnOwoJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFic1tqXS5pZCArICJfYyIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CgkJCX0KCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFiSWQpLmNsYXNzTmFtZSAgICAgICAgICAgID0gJ2FjdGl2ZSc7CgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhYklkICsgIl9jIikuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CgkJCXJldHVybiB0cnVlOwoJCQkvL30KCQl9Cgl9LAoJc3VibWl0Rm9ybTogZnVuY3Rpb24gKGJ1dHRvbiwgdGFyZ2V0SWQpIHsKCQl2YXIgZm9ybSA9IGpRdWVyeShidXR0b24pLnBhcmVudHMoJ2Zvcm06Zmlyc3QnKTsKCQlqUXVlcnkoJy5BZHZhbmNlZENvbnRlbnRfQWpheEZpZWxkcycpLnJlbW92ZSgpOwoJCWlmKGZvcm0ubGVuZ3RoKSB7CgkJCWlmKHRhcmdldElkICE9ICcnICYmICFmb3JtLnBhcmVudHMoJyMnK3RhcmdldElkKS5sZW5ndGgpIHsKCQkJCWpRdWVyeSgnIycrdGFyZ2V0SWQpLmh0bWwoJycpOwoJCQl9CgkJCXZhciBvcHRpb25zID0gewoJCQkJc3VjY2VzczogZnVuY3Rpb24ocmVzcG9uc2VUZXh0KSB7CgkJCQkJaWYocmVzcG9uc2VUZXh0ICE9ICcnICYmIHRhcmdldElkICE9ICcnKSB7CgkJCQkJCWpRdWVyeSgnIycrdGFyZ2V0SWQpLmh0bWwocmVzcG9uc2VUZXh0KTsKCQkJCQl9CgkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJfQoJCQl9CgkJCWZvcm0uYXBwZW5kKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBjbGFzcz0iQWR2YW5jZWRDb250ZW50X0FqYXhGaWVsZHMiIG5hbWU9ImRpc2FibGVfdGhlbWUiIHZhbHVlPSIxIiAvPicpOwoJCQlmb3JtLmFwcGVuZCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9IkFkdmFuY2VkQ29udGVudF9BamF4RmllbGRzIiBuYW1lPSInK2J1dHRvbi5uYW1lKyciIHZhbHVlPSInK2J1dHRvbi52YWx1ZSsnIiAvPicpOwoJCQlmb3JtLmFwcGVuZCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9IkFkdmFuY2VkQ29udGVudF9BamF4RmllbGRzIiBuYW1lPSJ7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9YWpheCIgdmFsdWU9IjEiIC8+Jyk7CgkJCWZvcm0uYWpheFN1Ym1pdChvcHRpb25zKTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfSwKCXNlbGVjdEFsbDogZnVuY3Rpb24gKG9iaikgewoJCWlmIChvYmoudmFsdWUgPT0gMSkgewoJCQlqUXVlcnkoJ2lucHV0W25hbWVePSInK29iai5pZCsnLSJdJykuYXR0cignY2hlY2tlZCcsJ2NoZWNrZWQnKTsKCQkJb2JqLnZhbHVlID0gMDsKCQl9CgkJZWxzZSB7CgkJCWpRdWVyeSgnaW5wdXRbbmFtZV49Iicrb2JqLmlkKyctIl0nKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7CgkJCW9iai52YWx1ZSA9IDE7CgkJfQoJfSwKCWltcG9ydFBhZ2VzOiBmdW5jdGlvbihocmVmKSB7CgkJalF1ZXJ5LmdldChocmVmICsgJyZ7L2xpdGVyYWx9eyRtb2R1bGVfaWR9e2xpdGVyYWx9ZGlzYWJsZV90aGVtZT0xJnsvbGl0ZXJhbH17JG1vZHVsZV9pZH17bGl0ZXJhbH1hamF4PTEnLCBmdW5jdGlvbihkYXRhKSB7CgkJCWpRdWVyeSgnI0FkdmFuY2VkQ29udGVudFJlc3VsdCcpLmh0bWwoZGF0YSk7CgkJfSk7CgkJcmV0dXJuIGZhbHNlOwoJfSwKCQoJb3B0aW9uczogewoJCXRpdGxlOidBZHZhbmNlZENvbnRlbnQnLAoJCW1vZHVsZUlkOidtMV8nLAoJCWRyYWdnYWJsZTp0cnVlLAoJCWRyYWdBeGlzOid4JywKCQlyZXNpemFibGU6dHJ1ZSwKCQlyZXNpemFibGVIYW5kbGVzOidlLHcnLAoJCWNhbmNlbFRleHQ6J0NhbmNlbCcsCgkJYXBwbHlUZXh0OidBcHBseScsCgkJZmFkZVNwZWVkOjMwMCwKCQlhbmltYXRlU3BlZWQ6MzAwLAoJCWRlYnVnOmZhbHNlCgl9LAoJbXVsdGlDb250ZW50czoge30sCgl0bXA6IHsKCQljdXJyZW50YmxvY2tJZDonJywKCQloZWlnaHQ6MCwKCQlpbm5lckhlaWdodDowLAoJCWJsb2Nrczp7fSwKCQl0ZW1wbGF0ZTp7fQoJfSwKCXJlZ2lzdGVyTXVsdGlDb250ZW50OiBmdW5jdGlvbihibG9ja0luZm8pIHsKCQl0aGlzLm11bHRpQ29udGVudHNbYmxvY2tJbmZvWydpZCddXSA9IGJsb2NrSW5mbzsKCX0sCglyZWdpc3Rlck11bHRpQ29udGVudEJsb2NrOiBmdW5jdGlvbihtdWx0aUNvbnRlbnRJZCwgYmxvY2tJbmZvKSB7CgkJdGhpcy5tdWx0aUNvbnRlbnRzW211bHRpQ29udGVudElkXS5jb250ZW50X2Jsb2Nrc1tibG9ja0luZm9bJ2lkJ11dID0gYmxvY2tJbmZvOwoJCXRoaXMubXVsdGlDb250ZW50c1ttdWx0aUNvbnRlbnRJZF0uY29udGVudF9ibG9ja3NfY291bnQrKzsKCX0sCglkaXNwbGF5Q29udGVudEJsb2NrOiBmdW5jdGlvbihibG9ja0luZm8pIHsKCQkvL0FKQVg/CgkJCgl9LAoJYWRkQmxvY2s6IGZ1bmN0aW9uKCkgewoJCXRoaXMub3BlblBhbmVsKCk7Cgl9LAoJZWRpdEJsb2NrOiBmdW5jdGlvbihibG9ja0lkKSB7CgkJLy8/Cgl9LAoJZGVsZXRlQmxvY2s6IGZ1bmN0aW9uKCkgewoJCQoJfSwKCW9wZW5QYW5lbDogZnVuY3Rpb24obXVsdGlDb250ZW50SWQpIHsKCQkvKioKCQkgKiBvcGVuIGZpbGVwaWNrZXIKCQkgKi8KCQkKCQl2YXIgYmxvY2tJZCA9IChhcmd1bWVudHNbMV0gPyBhcmd1bWVudHNbMV0gOiAnYmxvY2tfJyArIHRoaXMubXVsdGlDb250ZW50c1ttdWx0aUNvbnRlbnRJZF0uY29udGVudF9ibG9ja3NfY291bnQpOwoJCXRoaXMuZ2V0UGFuZWwobXVsdGlDb250ZW50SWQsYmxvY2tJZCk7CgkJdGhpcy50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnRfYmFja2dyb3VuZCddLmNzcygnZGlzcGxheScsJ2Jsb2NrJykuZmFkZVRvKEFkdmFuY2VkQ29udGVudC5vcHRpb25zLmZhZGVTcGVlZCwgMC42NSwgZnVuY3Rpb24gKCkgewoJCQkKCQkJaWYoQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuZGVidWcpIHsKCQkJCWFsZXJ0KCdmYWRlZCBpbiBiYWNrZ3JvdW5kJyk7CgkJCX0KCQkJCgkJCUFkdmFuY2VkQ29udGVudC50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnQnXS5jc3MoJ2Rpc3BsYXknLCdibG9jaycpLmZhZGVUbyhBZHZhbmNlZENvbnRlbnQub3B0aW9ucy5mYWRlU3BlZWQsIDEsIGZ1bmN0aW9uKCkgewoJCQkJQWR2YW5jZWRDb250ZW50LnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudF9sb2FkaW5nX2ltZyddLmNzcygnZGlzcGxheScsJ2Jsb2NrJyk7CgkJCQkJCgkJCQlpZihBZHZhbmNlZENvbnRlbnQub3B0aW9ucy5kZWJ1ZykgewoJCQkJCWFsZXJ0KCdsb2FkaW5nIGZyb20gc2VydmVyJyk7CgkJCQl9CgkJCQkKCQkJCS8vIHZhciB1cmwgPSB0aGlzLmdldEJsb2NrVXJsICsgYmxvY2twYXJhbXMgPz8/OwoJCQkJLyoKCQkJCWpRdWVyeS5nZXQodXJsICsgJyYnICsgQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMubW9kdWxlSWQgKyAnc2hvd3RlbXBsYXRlPWZhbHNlJicgICsgQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMubW9kdWxlSWQgKyAnZGlzYWJsZV90aGVtZT0xJicgKyBBZHZhbmNlZENvbnRlbnQub3B0aW9ucy5tb2R1bGVJZCArICdhamF4PTEnLCBmdW5jdGlvbihkYXRhKSB7CgkJCQkJCgkJCQkJaWYoQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuZGVidWcpIHsKCQkJCQkJYWxlcnQoJ2NvbnRlbnQgbG9hZGVkJyk7CgkJCQkJfQoJCQkJCQoJCQkJCUFkdmFuY2VkQ29udGVudC50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnQnXS5jc3MoJ2hlaWdodCcsQWR2YW5jZWRDb250ZW50LnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudCddLmhlaWdodCgpICsgJ3B4Jyk7CgkJCQkJQWR2YW5jZWRDb250ZW50LnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudF9jb250ZW50J10uaHRtbChkYXRhKTsKCQkJCQkKCQkJCQlpZihBZHZhbmNlZENvbnRlbnQub3B0aW9ucy5kZWJ1ZykgewoJCQkJCQlhbGVydCgncmVwbGFjZWQgY29udGVudCB3aXRoIGxvYWRlZCBkYXRhJyk7CgkJCQkJfQoJCQkJCQoJCQkJCUFkdmFuY2VkQ29udGVudC50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnRfaGVhZGVyJ10gICA9IGpRdWVyeSgiI0FkdmFuY2VkQ29udGVudF9oZWFkZXIiKTsKCQkJCQlBZHZhbmNlZENvbnRlbnQuYWpheEZvcm0oKTsKCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X2ZpbGVsaXN0J10gPSBqUXVlcnkoIiNBZHZhbmNlZENvbnRlbnRfZmlsZWxpc3QiKTsKCQkJCQlpZih0eXBlb2YgQWR2YW5jZWRDb250ZW50LnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudF9maWxlbGlzdCddLmF0dHIoJ2lkJykgIT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJQWR2YW5jZWRDb250ZW50LnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudF9maWxlb3BlcmF0aW9ucyddICAgICAgICA9IGpRdWVyeSgnI0FkdmFuY2VkQ29udGVudF9maWxlb3BlcmF0aW9ucycpOwoJCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X3RvZ2dsZV9maWxlb3BlcmF0aW9ucyddID0galF1ZXJ5KCcjQWR2YW5jZWRDb250ZW50X3RvZ2dsZV9maWxlb3BlcmF0aW9ucycpOwoJCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X2ZpbGVsaXN0J10uY3NzKCdtYXgtaGVpZ2h0JywnJykuY3NzKCdvcGFjaXR5JywxKTs7CgkJCQkJCQoJCQkJCQlpZihBZHZhbmNlZENvbnRlbnQub3B0aW9ucy5kZWJ1ZykgewoJCQkJCQkJYWxlcnQoJ3NldCBtYXgtaGVpZ2h0IHRvICIiICsgZmFkZWQgaW4gZmlsZWxpc3QnKTsKCQkJCQkJfQoJCQkJCX0KCQkJCQkKCQkJCQlpZihqUXVlcnkoJyNBZHZhbmNlZENvbnRlbnRfY29udGVudCBpbWcnKS5sZW5ndGgpIHsKCQkJCQkJQWR2YW5jZWRDb250ZW50LnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudF9jb250ZW50J10ub25JbWFnZXNMb2FkKHsKCQkJCQkJCXNlbGVjdG9yQ2FsbGJhY2s6IGZ1bmN0aW9uIChlbG0pIHsKCQkJCQkJCQkKCQkJCQkJCQlpZihBZHZhbmNlZENvbnRlbnQub3B0aW9ucy5kZWJ1ZykgewoJCQkJCQkJCQlhbGVydCgnaW1hZ2VzIGxvYWRlZDsgQWR2YW5jZWRDb250ZW50LnRtcC5oZWlnaHQ6JyArIEFkdmFuY2VkQ29udGVudC50bXAuaGVpZ2h0KTsKCQkJCQkJCQl9CgkJCQkJCQkJCgkJCQkJCQkJQWR2YW5jZWRDb250ZW50LmdldEhlaWdodCgpOwoJCQkJCQkJCWlmKHR5cGVvZiBBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X2ZpbGVsaXN0J10uY3NzKCdtYXgtaGVpZ2h0JywgQWR2YW5jZWRDb250ZW50LnRtcC5maWxlTGlzdEhlaWdodCArICdweCcpOwoJCQkJCQkJCQkKCQkJCQkJCQkJaWYoQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuZGVidWcpIHsKCQkJCQkJCQkJCWFsZXJ0KCdzZXQgbWF4LWhlaWdodCB0byAnICsgQWR2YW5jZWRDb250ZW50LnRtcC5maWxlTGlzdEhlaWdodCArICc7IEFkdmFuY2VkQ29udGVudC50bXAuaGVpZ2h0OicgKyBBZHZhbmNlZENvbnRlbnQudG1wLmhlaWdodCk7CgkJCQkJCQkJCX0KCQkJCQkJCQl9CgkJCQkJCQkJaWYoQWR2YW5jZWRDb250ZW50LmllVmVyc2lvbigpIDwgOCkgewoJCQkJCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50J10uY3NzKCdoZWlnaHQnLCdhdXRvJyk7CgkJCQkJCQkJfQoJCQkJCQkJCUFkdmFuY2VkQ29udGVudC50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnQnXS5hbmltYXRlKHtoZWlnaHQ6IEFkdmFuY2VkQ29udGVudC50bXAuaGVpZ2h0ICsgKEFkdmFuY2VkQ29udGVudC50bXAuaGVpZ2h0ICE9ICdhdXRvJyA/ICdweCcgOiAnJyl9LCBBZHZhbmNlZENvbnRlbnQub3B0aW9ucy5hbmltYXRlU3BlZWQgLCAnc3dpbmcnLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCgkJCQkJCQkJCWlmKEFkdmFuY2VkQ29udGVudC5vcHRpb25zLmRlYnVnKSB7CgkJCQkJCQkJCQlhbGVydCgnYW5pbWF0ZWQgaGVpZ2h0OyBBZHZhbmNlZENvbnRlbnQudG1wLmhlaWdodDonICsgQWR2YW5jZWRDb250ZW50LnRtcC5oZWlnaHQpOwoJCQkJCQkJCQl9CgkJCQkJCQkJCQoJCQkJCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X2NvbnRlbnQnXS5mYWRlVG8oQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuZmFkZVNwZWVkLCAxLCBmdW5jdGlvbigpIHsKCQkJCQkJCQkJCUFkdmFuY2VkQ29udGVudC50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnRfbG9hZGluZ19pbWcnXS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7CgkJCQkJCQkJCQkKCQkJCQkJCQkJCWlmKEFkdmFuY2VkQ29udGVudC5vcHRpb25zLmRlYnVnKSB7CgkJCQkJCQkJCQkJYWxlcnQoJ2ZhZGVkIGluIGNvbnRlbnQnKTsKCQkJCQkJCQkJCX0KCQkJCQkJCQkJCQoJCQkJCQkJCQl9KTsKCQkJCQkJCQl9KTsKCQkJCQkJCX0KCQkJCQkJfSk7CgkJCQkJfQoJCQkJCWVsc2UgewoJCQkJCQlBZHZhbmNlZENvbnRlbnQuZ2V0SGVpZ2h0KCk7CgkJCQkJCWlmKHR5cGVvZiBBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X2ZpbGVsaXN0J10uYXR0cignaWQnKSAhPSAndW5kZWZpbmVkJykgewoJCQkJCQkJQWR2YW5jZWRDb250ZW50LnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudF9maWxlbGlzdCddLmNzcygnbWF4LWhlaWdodCcsIEFkdmFuY2VkQ29udGVudC50bXAuZmlsZUxpc3RIZWlnaHQgKyAncHgnKTsKCQkJCQkJCQoJCQkJCQkJaWYoQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuZGVidWcpIHsKCQkJCQkJCQlhbGVydCgnc2V0IG1heC1oZWlnaHQgdG8gJyArIEFkdmFuY2VkQ29udGVudC50bXAuZmlsZUxpc3RIZWlnaHQpOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJCWlmKEFkdmFuY2VkQ29udGVudC5pZVZlcnNpb24oKSA8IDgpIHsKCQkJCQkJCUFkdmFuY2VkQ29udGVudC50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnQnXS5jc3MoJ2hlaWdodCcsJ2F1dG8nKTsKCQkJCQkJfQoJCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50J10uYW5pbWF0ZSh7aGVpZ2h0OiBBZHZhbmNlZENvbnRlbnQudG1wLmhlaWdodCArIChBZHZhbmNlZENvbnRlbnQudG1wLmhlaWdodCAhPSAnYXV0bycgPyAncHgnIDogJycpfSwgQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuYW5pbWF0ZVNwZWVkICwgJ3N3aW5nJywgZnVuY3Rpb24oKSB7CgkJCQkJCQkKCQkJCQkJCWlmKEFkdmFuY2VkQ29udGVudC5vcHRpb25zLmRlYnVnKSB7CgkJCQkJCQkJYWxlcnQoJ2FuaW1hdGVkIGhlaWdodCcpOwoJCQkJCQkJfQoJCQkJCQkJCgkJCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X2NvbnRlbnQnXS5mYWRlVG8oQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuZmFkZVNwZWVkLCAxLCBmdW5jdGlvbigpIHsKCQkJCQkJCQlBZHZhbmNlZENvbnRlbnQudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X2xvYWRpbmdfaW1nJ10uY3NzKCdkaXNwbGF5Jywnbm9uZScpOwoJCQkJCQkJCQoJCQkJCQkJCWlmKEFkdmFuY2VkQ29udGVudC5vcHRpb25zLmRlYnVnKSB7CgkJCQkJCQkJCWFsZXJ0KCdmYWRlZCBpbiBjb250ZW50Jyk7CgkJCQkJCQkJfQoJCQkJCQkJCQoJCQkJCQkJfSk7CgkJCQkJCX0pOwoJCQkJCX0KCQkJCX0pOwoJCQkJKi8KCQkJfSk7CgkJfSk7Cgl9LAoJZ2V0UGFuZWw6IGZ1bmN0aW9uKG11bHRpQ29udGVudElkKSB7CgkJCgkJdmFyIGJsb2NrSWQgPSAoYXJndW1lbnRzWzFdID8gYXJndW1lbnRzWzFdIDogJ2Jsb2NrXycgKyB0aGlzLm11bHRpQ29udGVudHNbbXVsdGlDb250ZW50SWRdLmNvbnRlbnRfYmxvY2tzX2NvdW50KTsKCQkKCQlpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQWR2YW5jZWRDb250ZW50X2NvbnRlbnQnKSA9PSBudWxsKSB7CgkJCQoJCQlqUXVlcnkoJ2JvZHknKS5hcHBlbmQoJzxkaXYgaWQ9IkFkdmFuY2VkQ29udGVudF93cmFwcGVyIj48ZGl2IGlkPSJBZHZhbmNlZENvbnRlbnRfYmFja2dyb3VuZCIgb25jbGljaz0iQWR2YW5jZWRDb250ZW50LmNhbmNlbChBZHZhbmNlZENvbnRlbnQuZ2V0Q3VycmVudEJsb2NrSWQoKSkiPjwvZGl2PjxkaXYgaWQ9IkFkdmFuY2VkQ29udGVudCI+PGRpdiBpZD0iQWR2YW5jZWRDb250ZW50X3RpdGxlYmFyIj48c3BhbiBpZD0iQWR2YW5jZWRDb250ZW50X2xvYWRpbmdfaW1nX3dyYXBwZXIiPjxpbWcgaWQ9IkFkdmFuY2VkQ29udGVudF9sb2FkaW5nX2ltZyIgYWx0PSIiIHNyYz0iLi4vbW9kdWxlcy9BZHZhbmNlZENvbnRlbnQvaW1hZ2VzL2xvYWRpbmcuZ2lmIiAvPjwvc3Bhbj48aDMgaWQ9IkFkdmFuY2VkQ29udGVudF90aXRsZSI+JyArIEFkdmFuY2VkQ29udGVudC5vcHRpb25zLnRpdGxlICsgJzwvaDM+PGRpdiBpZD0iQWR2YW5jZWRDb250ZW50X21lbnUiPjxhIGlkPSJBZHZhbmNlZENvbnRlbnRfYXBwbHkiIHRpdGxlPSInICsgQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuYXBwbHlUZXh0ICsgJyIgaHJlZj0iIyIgb25jbGljaz0iQWR2YW5jZWRDb250ZW50LmFwcGx5KEFkdmFuY2VkQ29udGVudC5nZXRDdXJyZW50QmxvY2tJZCgpKTtyZXR1cm4gZmFsc2U7Ij4nKyBBZHZhbmNlZENvbnRlbnQub3B0aW9ucy5hcHBseVRleHQgKyc8L2E+PGEgaWQ9IkFkdmFuY2VkQ29udGVudF9jYW5jZWwiIHRpdGxlPSInICsgQWR2YW5jZWRDb250ZW50Lm9wdGlvbnMuY2FuY2VsVGV4dCArICciIGhyZWY9IiMiIG9uY2xpY2s9IkFkdmFuY2VkQ29udGVudC5jbG9zZShBZHZhbmNlZENvbnRlbnQuZ2V0Q3VycmVudEJsb2NrSWQoKSk7cmV0dXJuIGZhbHNlOyI+JyArIEFkdmFuY2VkQ29udGVudC5vcHRpb25zLmNhbmNlbFRleHQgKyAnPC9hPjxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJBZHZhbmNlZENvbnRlbnRfY29udGVudCI+Jyt0aGlzLmRpc3BsYXlDb250ZW50QmxvY2sobXVsdGlDb250ZW50SWQsYmxvY2tJZCkrJzwvZGl2PjwvZGl2PjwvZGl2PicpOwoJCQkKCQkJaWYodGhpcy5vcHRpb25zLmRlYnVnKSB7CgkJCQlhbGVydCgnYXBwZW5kZWQgd3JhcHBlciB0byBib2R5Jyk7CgkJCX0KCQkJCgkJCXRoaXMudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50X3dyYXBwZXInXSAgICA9IGpRdWVyeSgnI0FkdmFuY2VkQ29udGVudF93cmFwcGVyJyk7CgkJCXRoaXMudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50J10gICAgICAgICAgICA9IGpRdWVyeSgiI0FkdmFuY2VkQ29udGVudCIpOwoJCQl0aGlzLnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudF9jb250ZW50J10gICAgPSBqUXVlcnkoIiNBZHZhbmNlZENvbnRlbnRfY29udGVudCIpOwoJCQl0aGlzLnRtcC50ZW1wbGF0ZVsnI0FkdmFuY2VkQ29udGVudF90aXRsZWJhciddICAgPSBqUXVlcnkoIiNBZHZhbmNlZENvbnRlbnRfdGl0bGViYXIiKTsKCQkJdGhpcy50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnRfYmFja2dyb3VuZCddID0galF1ZXJ5KCcjQWR2YW5jZWRDb250ZW50X2JhY2tncm91bmQnKTsKCQl9CgkJCgkJdGhpcy50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnRfbG9hZGluZ19pbWcnXSA9IGpRdWVyeSgiI0FkdmFuY2VkQ29udGVudF9sb2FkaW5nX2ltZyIpOwoJCS8qCgkJalF1ZXJ5KHdpbmRvdykucmVzaXplKGZ1bmN0aW9uKCkgewoJCQl0aGlzLnJlc2l6ZSgpOwoJCX0pOwoJCSovCgkJdGhpcy50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnRfd3JhcHBlciddLmNzcygnZGlzcGxheScsJ2Jsb2NrJykuY3NzKCd6LWluZGV4Jyw5OTk5KS5jc3MoJ29wYWNpdHknLDEpOwoJCWlmKHRoaXMub3B0aW9ucy5kcmFnZ2FibGUpIHsKCQkJdGhpcy50bXAudGVtcGxhdGVbJyNBZHZhbmNlZENvbnRlbnQnXS5kcmFnZ2FibGUoe2hhbmRsZTogJyNBZHZhbmNlZENvbnRlbnRfdGl0bGViYXInLCBjb250YWlubWVudDogInBhcmVudCIsIGN1cnNvcjogIm1vdmUiLCBheGlzOnRoaXMub3B0aW9ucy5kcmFnQXhpc30pOwoJCX0KCQlpZih0aGlzLm9wdGlvbnMucmVzaXphYmxlKSB7CgkJCXRoaXMudG1wLnRlbXBsYXRlWycjQWR2YW5jZWRDb250ZW50J10ucmVzaXphYmxlKHtoYW5kbGVzOiB0aGlzLm9wdGlvbnMucmVzaXphYmxlSGFuZGxlc30pOwoJCX0KCQlyZXR1cm47Cgl9LAoJaWVWZXJzaW9uOiBmdW5jdGlvbigpIHsKCQl2YXIgdmVyc2lvbiA9IDk5OTsKCQlpZiAobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZigiTVNJRSIpICE9IC0xKSB7CgkJCXZlcnNpb24gPSBwYXJzZUZsb2F0KG5hdmlnYXRvci5hcHBWZXJzaW9uLnNwbGl0KCJNU0lFIilbMV0pOwoJCX0KCQlyZXR1cm4gdmVyc2lvbjsKCX0KfTsKLy9dXT4KPC9zY3JpcHQ+CnsvbGl0ZXJhbH0K]]></data>
	</file>
	<file>
	  <filename>/templates/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/multiContent.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IG11bHRpQ29udGVudC50cGwKTGljZW5zZTogR1BMCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qfQoKe2xpdGVyYWx9CjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vPCFbQ0RBVEFbCmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtBZHZhbmNlZENvbnRlbnQucmVnaXN0ZXJNdWx0aUNvbnRlbnQoe3svbGl0ZXJhbH17Zm9yZWFjaCBmcm9tPSRibG9ja19pbmZvIGtleT0ia2V5IiBpdGVtPSJibG9ja19wYXJhbSIgbmFtZT0iYmxvY2tfaW5mbyJ9eyRrZXl9OntpZiAkYmxvY2tfcGFyYW18aXNfYXJyYXl9W3tmb3JlYWNoIGZyb209IiRibG9ja19wYXJhbSIgaXRlbT0icGFyYW1faXRlbSIgbmFtZT0icGFyYW1fYXJyYXkifSJ7JHBhcmFtX2l0ZW19IntpZiAhJHNtYXJ0eS5mb3JlYWNoLnBhcmFtX2FycmF5Lmxhc3R9LHsvaWZ9ey9mb3JlYWNofV17ZWxzZX0neyRibG9ja19wYXJhbX0ney9pZn17aWYgISRzbWFydHkuZm9yZWFjaC5ibG9ja19pbmZvLmxhc3R9LHsvaWZ9ey9mb3JlYWNofXtsaXRlcmFsfX0pO30pOwovL11dPgo8L3NjcmlwdD4Key9saXRlcmFsfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJeyRhZGRfY29udGVudF9ibG9ja30KPC9kaXY+Cgp7aWYgJGJsb2NrX2luZm8uY29udGVudF9ibG9ja3N8QGNvdW50ID4gMH0KCjwhLS0gc3RhcnQgbXVsdGkgY29udGVudCBibG9ja3MgLS0+CgoJe2ZvcmVhY2ggZnJvbT0kYmxvY2tfaW5mby5jb250ZW50X2Jsb2NrcyBpdGVtPWJsb2NrfQoJCntsaXRlcmFsfQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovLzwhW0NEQVRBWwpqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7QWR2YW5jZWRDb250ZW50LnJlZ2lzdGVyTXVsdGlDb250ZW50QmxvY2soJ3svbGl0ZXJhbH17JG11bHRpY29udGVudF9pZH17bGl0ZXJhbH0nLHt7L2xpdGVyYWx9e2ZvcmVhY2ggZnJvbT0kYmxvY2sga2V5PSJrZXkiIGl0ZW09ImJsb2NrX3BhcmFtIiBuYW1lPSJibG9ja19pbmZvIn17JGtleX06e2lmICRibG9ja19wYXJhbXxpc19hcnJheX1be2ZvcmVhY2ggZnJvbT0iJGJsb2NrX3BhcmFtIiBpdGVtPSJwYXJhbV9pdGVtIiBuYW1lPSJwYXJhbV9hcnJheSJ9InskcGFyYW1faXRlbX0ie2lmICEkc21hcnR5LmZvcmVhY2gucGFyYW1fYXJyYXkubGFzdH0sey9pZn17L2ZvcmVhY2h9XXtlbHNlfSd7JGJsb2NrX3BhcmFtfSd7L2lmfXtpZiAhJHNtYXJ0eS5mb3JlYWNoLmJsb2NrX2luZm8ubGFzdH0sey9pZn17L2ZvcmVhY2h9e2xpdGVyYWx9fSk7fSk7Ci8vXV0+Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9Cgo8IS0tIHN0YXJ0IGJsb2NrIHskYmxvY2suaWR9IC0tPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBpZD0ieyRibG9jay5pZH1fd3JhcHBlciJ7aWYgJGJsb2NrLnNvcnRhYmxlfSBjbGFzcz0ic29ydGFibGUiey9pZn0+CgkJCgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHN0cm9uZz57JGJsb2NrLmxhYmVsfTo8L3N0cm9uZz48c3BhbiBzdHlsZT0iZmxvYXQ6cmlnaHQiPnskcmVtb3ZlX2NvbnRlbnRfYmxvY2t9PC9zcGFuCgkJPC9kaXY+CgkJCgl7aWYgJGJsb2NrLmRlc2NyaXB0aW9ufQoJCQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCQoJCQl7JGJsb2NrLmRlc2NyaXB0aW9ufQoJCQkKCQk8L2Rpdj4KCQkKCXsvaWZ9CgkJCgkJPGRpdiBzdHlsZT0icGFkZGluZzogNXB4IDAgMCAwOyI+CgkJCQoJCQk8cD57JGJsb2NrLmlucHV0fTwvcD4KCQkJCgkJPC9kaXY+CgkJCgk8L2Rpdj4KPC9kaXY+CjwhLS0gZW5kIGJsb2NrIHskYmxvY2suaWR9IC0tPgoKCXsvZm9yZWFjaH0KCjwhLS0gZW5kIG11bHRpIGNvbnRlbnQgYmxvY2tzIC0tPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCXskYWRkX2NvbnRlbnRfYmxvY2t9CjwvZGl2PgoKey9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/multiInput.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IG11bHRpSW5wdXQudHBsCkxpY2Vuc2U6IEdQTAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CjxwPgp7Zm9yZWFjaCBmcm9tPSRpbnB1dHMgaXRlbT1pbnB1dH0KCXskaW5wdXQubGFiZWx9OiZuYnNwO3skaW5wdXQuaW5wdXR9Jm5ic3A7CnsvZm9yZWFjaH0KPC9wPgo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/multiInputTab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IG11bHRpSW5wdXRUYWIudHBsCkxpY2Vuc2U6IEdQTAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0KCntpZiBpc3NldCgkZXJyb3JtZXNzYWdlKSAmJiAkZXJyb3JtZXNzYWdlIT0nJ30KPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHVsIGNsYXNzPSJwYWdlZXJyb3IiPjxsaT57JGVycm9ybWVzc2FnZX08L2xpPjwvdWw+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9CntpZiBpc3NldCgkbWVzc2FnZSkgJiYgJG1lc3NhZ2UhPScnfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPgoJCTxwPnskbWVzc2FnZX08L3A+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+Cgl7JGFkZF9tdWx0aV9pbnB1dH0KCTxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CjwvZGl2PgoKe2lmICRtdWx0aV9pbnB1dF9hcnJheXxAY291bnR9Cnskc3RhcnRfZm9ybX0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIxIj4KCQk8dGhlYWQ+CgkJCTx0cj4KCQkJCTx0aD57JGlucHV0X2lkX3RleHR9PC90aD4KCQkJCTx0aD57JHRlbXBsYXRlX3RleHR9PC90aD4KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyRzZWxlY3RhbGx9PC90aD4KCQkJPC90cj4KCQk8L3RoZWFkPgoJCTx0Ym9keT4KCQkKCQl7Zm9yZWFjaCBmcm9tPSRtdWx0aV9pbnB1dF9hcnJheSBpdGVtPSJtdWx0aV9pbnB1dCJ9CgkJCgkJCTx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0iPgoJCQkJPHRkPnskbXVsdGlfaW5wdXQubmFtZV9saW5rfTwvdGQ+CgkJCQk8dGQ+eyRtdWx0aV9pbnB1dC50ZW1wbGF0ZX08L3RkPgoJCQkJPHRkPnskbXVsdGlfaW5wdXQuZWRpdF9saW5rfTwvdGQ+CgkJCQk8dGQ+eyRtdWx0aV9pbnB1dC5kZWxldGVfbGlua308L3RkPgoJCQkJPHRkPnskbXVsdGlfaW5wdXQuY2hlY2tib3h9PC90ZD4KCQkJPC90cj4KCQkJCgkJey9mb3JlYWNofQoJCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+Cgl7JGFkZF9tdWx0aV9pbnB1dH0KCTxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDBwdDsgZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodDsiPgoJCXskc3VibWl0X2J1bGthY3Rpb259Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CjwvZGl2PgoKeyRlbmRfZm9ybX0Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/multiInputTplTab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IG11bHRpSW5wdXRUcGxUYWIudHBsCkxpY2Vuc2U6IEdQTAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKn0KCntpZiBpc3NldCgkZXJyb3JtZXNzYWdlKSAmJiAkZXJyb3JtZXNzYWdlIT0nJ30KPGRpdiBjbGFzcz0icGFnZWVycm9yY29udGFpbmVyIj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHVsIGNsYXNzPSJwYWdlZXJyb3IiPjxsaT57JGVycm9ybWVzc2FnZX08L2xpPjwvdWw+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9CntpZiBpc3NldCgkbWVzc2FnZSkgJiYgJG1lc3NhZ2UhPScnfQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPGRpdiBjbGFzcz0icGFnZW1jb250YWluZXIiPgoJCTxwPnskbWVzc2FnZX08L3A+Cgk8L2Rpdj4KPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+Cgl7JGFkZF9tdWx0aV9pbnB1dF90cGx9Cgk8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgo8L2Rpdj4KCntpZiAkbXVsdGlfaW5wdXRfdHBsX2FycmF5fEBjb3VudH0KeyRzdGFydF9mb3JtfQoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjEiPgoJCTx0aGVhZD4KCQkJPHRyPgoJCQkJPHRoPnskdGVtcGxhdGVfbmFtZV90ZXh0fTwvdGg+CgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCQk8dGggY2xhc3M9InBhZ2VpY29uIj57JHNlbGVjdGFsbH08L3RoPgoJCQk8L3RyPgoJCTwvdGhlYWQ+CgkJPHRib2R5PgoJCQkKCQl7Zm9yZWFjaCBmcm9tPSRtdWx0aV9pbnB1dF90cGxfYXJyYXkgaXRlbT0ibXVsdGlfaW5wdXRfdHBsIn0KCQkJCgkJCTx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIn0iPgoJCQkJPHRkPnskbXVsdGlfaW5wdXRfdHBsLm5hbWVfbGlua308L3RkPgoJCQkJPHRkPnskbXVsdGlfaW5wdXRfdHBsLnNldF9kZWZhdWx0X2xpbmt9PC90ZD4KCQkJCTx0ZD57JG11bHRpX2lucHV0X3RwbC5lZGl0X2xpbmt9PC90ZD4KCQkJCTx0ZD57JG11bHRpX2lucHV0X3RwbC5kZWxldGVfbGlua308L3RkPgoJCQkJPHRkPnskbXVsdGlfaW5wdXRfdHBsLmNoZWNrYm94fTwvdGQ+CgkJCTwvdHI+CgkJCQoJCXsvZm9yZWFjaH0KCQkJCgkJPC90Ym9keT4KCTwvdGFibGU+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgoJeyRhZGRfbXVsdGlfaW5wdXRfdHBsfQoJPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDogMHB0OyBmbG9hdDogcmlnaHQ7IHRleHQtYWxpZ246IHJpZ2h0OyI+CgkJeyRzdWJtaXRfYnVsa2FjdGlvbn0KCTwvZGl2PgoJPGRpdiBjbGFzcz0iY2xlYXJiIj48L2Rpdj4KPC9kaXY+Cgp7JGVuZF9mb3JtfQp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/prefsTab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1vZHVsZSA6IEFkdmFuY2VkQ29udGVudCAoYykgMjAxMC0yMDExIGJ5IEdlb3JnIEJ1c2NoIChnZW9yZy5idXNjaEBnbXgubmV0KQogICAgICAgICBhIGNvbnRlbnQgbWFuYWdlbWVudCB0b29sIGZvciBDTVMgTWFkZSBTaW1wbGUKICAgICAgICAgVGhlIHByb2plY3RzIGhvbWVwYWdlIGlzIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY29udGVudDIKICAgICAgICAgQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA0LTIwMTEgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogICAgICAgICBUaGUgcHJvamVjdHMgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKVmVyc2lvbjogMC44CkZpbGUgICA6IHByZWZzVGFiLnRwbApMaWNlbnNlOiBHUEwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSp9Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGltcG9ydGNvbnRlbnRfaW5wdXR9PGJyIC8+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbXBvcnRjb250ZW50Ml9pbnB1dH08YnIgLz48L3A+CjwvZGl2Pgp7JHN0YXJ0Zm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR1bmluc3RhbGxhY3Rpb25fdGV4dH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR1bmluc3RhbGxhY3Rpb25faW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRibG9ja19kaXNwbGF5X3NldHRpbmdzX3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYmxvY2tfZGlzcGxheV9zZXR0aW5nc19pbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNvbGxhcHNlX2Jsb2NrX2RlZmF1bHRfdGV4dH06PC9wPgoJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjb2xsYXBzZV9ibG9ja19kZWZhdWx0X2lucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskbWVzc2FnZV9kaXNwbGF5X3NldHRpbmdzX3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbWVzc2FnZV9kaXNwbGF5X3NldHRpbmdzX2lucHV0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPnskZ3JvdXBfZGlzcGxheV9zZXR0aW5nc190ZXh0fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGdyb3VwX2Rpc3BsYXlfc2V0dGluZ3NfaW5wdXR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjb2xsYXBzZV9ncm91cF9kZWZhdWx0X3RleHR9OjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY29sbGFwc2VfZ3JvdXBfZGVmYXVsdF9pbnB1dH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHVzZV9hZHZhbmNlZF9wYWdlb3B0aW9uc190ZXh0fTo8L3A+Cgk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHVzZV9hZHZhbmNlZF9wYWdlb3B0aW9uc19pbnB1dH08L3A+CjwvZGl2Pgo8YnIgLz4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IiBpZD0iYWR2YW5jZWRfZGVmYXVsdF9vcHRpb25zIiB7JGFkdmFuY2VkX2RlZmF1bHRfb3B0aW9uc19zdHlsZX0+Cgk8ZmllbGRzZXQ+CgkJPGxlZ2VuZD57JGNvbnRlbnRzZXR0aW5nc190ZXh0fTwvbGVnZW5kPgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR1c2VfZXhwaXJlX2RhdGVfdGV4dH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHVzZV9leHBpcmVfZGF0ZV9pbnB1dH08L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN0YXJ0X2RhdGVfdGV4dH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN0YXJ0X2RhdGVfaW5wdXR9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRlbmRfZGF0ZV90ZXh0fTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW5kX2RhdGVfaW5wdXR9PC9wPgoJCTwvZGl2PgoJe2lmIGlzc2V0KCRmZXVhY2Nlc3NfdGV4dCl9CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZldWFjY2Vzc190ZXh0fTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZmV1YWNjZXNzX2lucHV0fTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcmVkaXJlY3RwYWdlX3RleHR9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRyZWRpcmVjdHBhZ2VfaW5wdXR9PC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRyZWRpcmVjdHBhcmFtc190ZXh0fTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCQkJeyRpbmhlcml0X3JlZGlyZWN0cGFyYW1zX3RleHR9IDogeyRpbmhlcml0X3JlZGlyZWN0cGFyYW1zX2lucHV0fTxiciAvPjxiciAvPgoJCQkJeyRyZWRpcmVjdHBhcmFtc19pbnB1dH0mbmJzcDs8ZW0+KHBhcmFtMT12YWx1ZTEgcGFyYW0yPXZhbHVlMiAuLi4pPC9lbT48YnIgLz48YnIgLz4KCQkJCXskZXZhbHVhdGVzbWFydHlfdGV4dH06Jm5ic3A7eyRldmFsdWF0ZXNtYXJ0eV9pbnB1dH0KCQkJPC9wPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRmZXVhY3Rpb25fdGV4dH06PC9wPgoJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZldWFjdGlvbl9pbnB1dH08L3A+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGhpZGVfbWVudV9pdGVtX3RleHR9OjwvcD4KCQkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRlX21lbnVfaXRlbV9pbnB1dH08L3A+CgkJPC9kaXY+Cgl7L2lmfQoJPC9maWVsZHNldD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cgk8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0X3ByZWZzfTwvcD4KPC9kaXY+CnskZW5kZm9ybX0K]]></data>
	</file>
</module>
