ZGlmZiAtLWdpdCBhL3NwZWMvY2hhcHRlcnMvYXBwbGljYXRpb25zLnRleCBiL3NwZWMvY2hhcHRlcnMvYXBwbGljYXRpb25zLnRleAppbmRleCBhZmJjMzhkLi43NjliMjIxIDEwMDY0NAotLS0gYS9zcGVjL2NoYXB0ZXJzL2FwcGxpY2F0aW9ucy50ZXgKKysrIGIvc3BlYy9jaGFwdGVycy9hcHBsaWNhdGlvbnMudGV4CkBAIC0yNywxMiArMjcsMTMgQEAKIEFuIGltcGxlbWVudGF0aW9uIHRoYXQgc3VwcG9ydHMgcHVibGljYXRpb24gdmlhIEpBWC1XUyBNVVNUIHN1cHBvcnQgXGNvZGV7Y3JlYXRlXC1FbmRwb2ludH0gd2l0aCBhbiBlbmRwb2ludCB0eXBlIG9mIFxjb2Rle2phdmF4XC0ueG1sXC0ud3NcLS5Qcm92aWRlcn0uIEpBWC1XUyBkZXNjcmliZXMgaG93IGEgXGNvZGV7UHJvdmlkZXJ9IGJhc2VkIGVuZHBvaW50IGNhbiBiZSBwdWJsaXNoZWQgaW4gYW4gU0UgZW52aXJvbm1lbnQuCiAKIFxzdWJzZWN0aW9ue1NlcnZsZXR9CitcbGFiZWx7c2VydmxldH0KIAotQSBcamF4cnNcIGFwcGxpY2F0aW9uIGlzIHBhY2thZ2VkIGFzIGEgU2VydmxldCBpbiBhIFxjb2Rley53YXJ9IGZpbGUuIFRoZSBcY29kZXtBcHBsaWNhdGlvbn0gc3ViY2xhc3MgKHNlZSBzZWN0aW9uIFxyZWZ7Y29uZmlnfSksIHJlc291cmNlIGNsYXNzZXMsIGFuZCBwcm92aWRlcnMgYXJlIHBhY2thZ2VkIGluIFxjb2Rle1dFQi1JTkYvY2xhc3Nlc30sIHJlcXVpcmVkIGxpYnJhcmllcyBhcmUgcGFja2FnZWQgaW4gXGNvZGV7V0VCLUlORi9saWJ9LiBJbmNsdWRlZCBsaWJyYXJpZXMgTUFZIGFsc28gY29udGFpbiByZXNvdXJjZSBjbGFzc2VzIGFuZCBwcm92aWRlcnMgYXMgZGVzaXJlZC4gU2VlIHRoZSBTZXJ2bGV0IHNwZWNpZmljYXRpb24gZm9yIGZ1bGwgZGV0YWlscyBvbiBwYWNrYWdpbmcgb2Ygd2ViIGFwcGxpY2F0aW9ucy4KK0EgXGpheHJzXCBhcHBsaWNhdGlvbiBpcyBwYWNrYWdlZCBhcyBhIFdlYiBhcHBsaWNhdGlvbiBpbiBhIFxjb2Rley53YXJ9IN5sZS4gVGhlIFxjb2Rle0FwcGxpY2F0aW9ufSBzdWJjbGFzcyAoc2VlIHNlY3Rpb24gXHJlZntjb25maWd9KSwgcmVzb3VyY2UgY2xhc3NlcywgYW5kIHByb3ZpZGVycyBhcmUgcGFja2FnZWQgaW4gXGNvZGV7V0VCLUlORi9jbGFzc2VzfSwgcmVxdWlyZWQgbGlicmFyaWVzIGFyZSBwYWNrYWdlZCBpbiBcY29kZXtXRUItSU5GL2xpYn0uIEluY2x1ZGVkIGxpYnJhcmllcyBNQVkgYWxzbyBjb250YWluIHJlc291cmNlIGNsYXNzZXMgYW5kIHByb3ZpZGVycyBhcyBkZXNpcmVkLiBTZWUgdGhlIFNlcnZsZXQgc3BlY2neY2F0aW9uIGZvciBmdWxsIGRldGFpbHMgb24gcGFja2FnaW5nIG9mIHdlYiBhcHBsaWNhdGlvbnMuCiAKLVdoZW4gdXNpbmcgYSBcamF4cnNcIGF3YXJlIHNlcnZsZXQgY29udGFpbmVyLCB0aGUgXGNvZGV7c2VydmxldC1jbGFzc30gZWxlbWVudCBvZiB0aGUgXGNvZGV7d2ViLnhtbH0gZGVzY3JpcHRvciBTSE9VTEQgbmFtZSB0aGUgYXBwbGljYXRpb24tc3VwcGxpZWQgc3ViY2xhc3Mgb2YgXGNvZGV7QXBwbGljYXRpb259LgorV2hlbiB1c2luZyBhIFNlcnZsZXQgMyBjb250YWluZXIsIHRoZSBcY29kZXtBcHBsaWNhdGlvbn0gc3ViY2xhc3MgaXMgb3B0aW9uYWwuIEJ5IGRlZmF1bHQsIGFsbCByb290IHJlc291cmNlIGNsYXNzZXMgYW5kIHByb3ZpZGVycyBwYWNrYWdlZCBpbiB0aGUgd2ViIGFwcGxpY2F0aW9uIE1VU1QgYmUgaW5jbHVkZWQgaW4gdGhlIHB1Ymxpc2hlZCBKQVgtUlMgYXBwbGljYXRpb24uIEFuIFxjb2Rle0FwcGxpY2F0aW9ufSBzdWJjbGFzcyBNQVkgYmUgaW5jbHVkZWQgaW4gYSBcY29kZXsud2FyfSBmaWxlIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yLiBJZiBib3RoIFxjb2Rle2dldENsYXNzZXN9IGFuZCBcY29kZXtnZXRTaW5nbGV0b25zfSByZXR1cm4gYW4gZW1wdHkgbGlzdCB0aGVuIHRoZSBkZWZhdWx0IHNldCBvZiBjbGFzc2VzIE1VU1QgYmUgdXNlZC4gSXQgaXMgUkVDT01NRU5ERUQgdGhhdCBpbXBsZW1lbnRhdGlvbnMgc3VwcG9ydCB0aGUgU2VydmxldCAzIGZyYW1ld29yayBwbHVnZ2FiaWxpdHkgbWVjaGFuaXNtIHRvIGVuYWJsZSBwb3J0YWJpbGl0eSBiZXR3ZWVuIGNvbnRhaW5lcnMgYW5kIHRvIGF2YWlsIHRoZW1zZWx2ZXMgb2YgY29udGFpbmVyLXN1cHBsaWVkIGNsYXNzIHNjYW5uaW5nIGZhY2lsaXRpZXMuCiAKLVdoZW4gdXNpbmcgYSBub24tXGpheHJzXCBhd2FyZSBzZXJ2bGV0IGNvbnRhaW5lciwgdGhlIFxjb2Rle3NlcnZsZXQtY2xhc3N9IGVsZW1lbnQgb2YgdGhlIFxjb2Rle3dlYi54bWx9IGRlc2NyaXB0b3IgU0hPVUxEIG5hbWUgdGhlIFxqYXhyc1wgaW1wbGVtZW50YXRpb24tc3VwcGxpZWQgU2VydmxldCBjbGFzcy4gVGhlIGFwcGxpY2F0aW9uLXN1cHBsaWVkIHN1YmNsYXNzIG9mIFxjb2Rle0FwcGxpY2F0aW9ufSBpcyBpZGVudGlmaWVkIHVzaW5nIGFuIFxjb2Rle2luaXQtcGFyYW19IHdpdGggYSBcY29kZXtwYXJhbS1uYW1lfSBvZiBcY29kZXtqYXZheFwtLndzXC0ucnNcLS5BcHBsaWNhdGlvbn0uCitXaGVuIHVzaW5nIGEgbm9uLVxqYXhyc1wgYXdhcmUgc2VydmxldCBjb250YWluZXIsIHRoZSBcY29kZXtzZXJ2bGV0LWNsYXNzfSBvciBcY29kZXtmaWx0ZXItY2xhc3N9IGVsZW1lbnQgb2YgdGhlIHdlYi54bWwgZGVzY3JpcHRvciBTSE9VTEQgbmFtZSB0aGUgSkFYLVJTIGltcGxlbWVudGF0aW9uLXN1cHBsaWVkIFxjb2Rle1NlcnZsZXR9IG9yIFxjb2Rle0ZpbHRlcn0gY2xhc3MgcmVzcGVjdGl2ZWx5LiBUaGUgYXBwbGljYXRpb24tc3VwcGxpZWQgc3ViY2xhc3Mgb2YgXGNvZGV7QXBwbGljYXRpb259IGlzIGlkZW50ad5lZCB1c2luZyBhbiBcY29kZXtpbml0LXBhcmFtfSB3aXRoIGEgXGNvZGV7cGFyYW0tbmFtZX0gb2YgXGNvZGV7amF2YXhcLS53c1wtLnJzXC0uQXBwbGljYXRpb259LgogCiBcc3Vic2VjdGlvbntPdGhlciBDb250YWluZXJ9CiAKZGlmZiAtLWdpdCBhL3NwZWMvY2hhcHRlcnMvY2hhbmdlcy50ZXggYi9zcGVjL2NoYXB0ZXJzL2NoYW5nZXMudGV4CmluZGV4IDU3NzUxN2IuLmM3ZjFhMzUgMTAwNjQ0Ci0tLSBhL3NwZWMvY2hhcHRlcnMvY2hhbmdlcy50ZXgKKysrIGIvc3BlYy9jaGFwdGVycy9jaGFuZ2VzLnRleApAQCAtMSw1ICsxLDEyIEBACiBcY2hhcHRlcntDaGFuZ2UgTG9nfQogCitcc2VjdGlvbntDaGFuZ2VzIFNpbmNlIDEuMCBSZWxlYXNlfQorCitcYmVnaW57aXRlbWl6ZX0KK1xpdGVtIFNlY3Rpb24gXHJlZntzZXJ2bGV0fTogbmV3IHJlcXVpcmVtZW50cyBmb3IgU2VydmxldCAzIGNvbnRhaW5lcnMuCitcaXRlbSBTZWN0aW9uIFxyZWZ7amF2YWVlfTogcmVxdWlyZW1lbnRzIGZvciBKYXZhIEVFIDYgY29udGFpbmVycy4KK1xlbmR7aXRlbWl6ZX0KKwogXHNlY3Rpb257Q2hhbmdlcyBTaW5jZSBQcm9wb3NlZCBGaW5hbCBEcmFmdH0KIAogXGJlZ2lue2l0ZW1pemV9CmRpZmYgLS1naXQgYS9zcGVjL2NoYXB0ZXJzL2Vudmlyb25tZW50LnRleCBiL3NwZWMvY2hhcHRlcnMvZW52aXJvbm1lbnQudGV4CmluZGV4IDM2YTM0YmQuLmU2MGRmYWEgMTAwNjQ0Ci0tLSBhL3NwZWMvY2hhcHRlcnMvZW52aXJvbm1lbnQudGV4CisrKyBiL3NwZWMvY2hhcHRlcnMvZW52aXJvbm1lbnQudGV4CkBAIC0xMSwxMyArMTEsMTYgQEAKIAogQW4gaW5qZWN0ZWQgXGNvZGV7SHR0cFwtU2VydmxldFwtUmVzcG9uc2V9IGFsbG93cyBhIHJlc291cmNlIG1ldGhvZCB0byBjb21taXQgdGhlIEhUVFAgcmVzcG9uc2UgcHJpb3IgdG8gcmV0dXJuaW5nLiBBbiBpbXBsZW1lbnRhdGlvbiBNVVNUIGNoZWNrIHRoZSBjb21taXR0ZWQgc3RhdHVzIGFuZCBvbmx5IHByb2Nlc3MgdGhlIHJldHVybiB2YWx1ZSBpZiB0aGUgcmVzcG9uc2UgaXMgbm90IHlldCBjb21taXR0ZWQuCiAKLVxzZWN0aW9ue0phdmEgRUUgQ29udGFpbmVyIChOb24tbm9ybWF0aXZlKX0KK1xzZWN0aW9ue0phdmEgRUUgQ29udGFpbmVyfQorXGxhYmVse2phdmFlZX0KIAotVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgYWRkaXRpb25hbCBmZWF0dXJlcyBhbnRpY2lwYXRlZCB0byBiZSBhdmFpbGFibGUgdG8gYSBcamF4cnNcIGFwcGxpY2F0aW9uIGhvc3RlZCBpbiBhIEphdmEgRUUgNiBjb250YWluZXIuIEl0IGlzIHBsYW5uZWQgdGhhdCBcamF4cnNcIHdpbGwgYmUgZmluYWxpemVkIHByaW9yIHRvIEphdmEgRUUgNiBzbyB0aGUgY29udGVudHMgb2YgdGhpcyBzZWN0aW9uIGFyZSBwcmVsaW1pbmFyeSBhbmQgc3ViamVjdCB0byBjaGFuZ2UuIE5vdGhpbmcgaW4gdGhpcyBzZWN0aW9uIHNob3VsZCBiZSBjb25zaWRlcmVkIGEgY29uZm9ybWFuY2UgcmVxdWlyZW1lbnQuCitUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBhZGRpdGlvbmFsIGZlYXR1cmVzIGF2YWlsYWJsZSB0byBhbiBhcHBsaWNhdGlvbiBob3N0ZWQgaW4gYSBKYXZhIEVFIDYgY29udGFpbmVyIHRoYXQgc3VwcG9ydHMgXGpheHJzLgogCi1camF4cnNcIHJvb3QgcmVzb3VyY2UgY2xhc3NlcyBhbmQgcHJvdmlkZXJzIGFyZSBzdXBwbGllZCB3aXRoIHRoZSBzYW1lIHJlc291cmNlIGluamVjdGlvbiBjYXBhYmlsaXRpZXMgYXMgYXJlIHByb3ZpZGVkIGZvciBhIFNlcnZsZXQgaW5zdGFuY2UgcnVubmluZyBpbiBhIEphdmEgRUUgV2ViIGNvbnRhaW5lci4gSW4gcGFydGljdWxhciB0aGUgZm9sbG93aW5nIGFubm90YXRpb25zIG1heSBiZSB1c2VkIGFjY29yZGluZyB0byB0aGVpciBpbmRpdmlkdWFsIHNlbWFudGljczogXGNvZGV7QFJlc291cmNlfSwgXGNvZGV7QFJlc291cmNlc30sIFxjb2Rle0BFSkJ9LCBcY29kZXtARUpCc30sIFxjb2Rle0BXZWJcLVNlcnZpY2VcLVJlZn0sIFxjb2Rle0BXZWJcLVNlcnZpY2VcLVJlZnN9LCBcY29kZXtAUGVyc2lzdGVuY2VcLUNvbnRleHR9LCBcY29kZXtAUGVyc2lzdGVuY2VcLUNvbnRleHRzfSwgXGNvZGV7QFBlcnNpc3RlbmNlXC1Vbml0fSBhbmQgXGNvZGV7QFBlcnNpc3RlbmNlXC1Vbml0c30uCitBbiBpbXBsZW1lbnRhdGlvbiBNVVNUIHN1cHBvcnQgYXBwbGljYXRpb25zIHBhY2thZ2VkIGFzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIFxyZWZ7c2VydmxldH0uIEFuIGltcGxlbWVudGF0aW9uIE1VU1Qgc3VwcG9ydCB1c2Ugb2Ygc2Vzc2lvbiBiZWFucyBhcyByb290IHJlc291cmNlIGNsYXNzZXMgYW5kIHN0YXRlbGVzcyBzZXNzaW9uIGFuZCBzaW5nbGV0b24gYmVhbnMgYXMgcHJvdmlkZXJzIGluIGEgV2ViIGFwcGxpY2F0aW9uLiBcamF4cnNcIGFubm90YXRpb25zIE1BWSBiZSBhcHBsaWVkIHRvIGEgYmVhbidzIGxvY2FsIGludGVyZmFjZSBvciBkaXJlY3RseSB0byBhIG5vLWludGVyZmFjZSBiZWFuLgogCi1camF4cnNcIHJvb3QgcmVzb3VyY2UgY2xhc3NlcyBhbmQgcHJvdmlkZXJzIG1heSBhbHNvIG1ha2UgdXNlIG9mIHRoZSBmb2xsb3dpbmcgSlNSIDI1MCBsaWZlY3ljbGUgbWFuYWdlbWVudCBhbmQgc2VjdXJpdHkgYW5ub3RhdGlvbnM6ICBcY29kZXtAUG9zdFwtQ29uc3RydWN0fSwgXGNvZGV7QFByZVwtRGVzdHJveX0sIFxjb2Rle0BSdW5Bc30sIFxjb2Rle0BSb2xlc1wtQWxsb3dlZH0sIFxjb2Rle0BQZXJtaXRcLUFsbH0sIFxjb2Rle0BEZW55XC1BbGx9IGFuZCBcY29kZXtARGVjbGFyZVwtUm9sZXN9LgorXGJlZ2lue25vdGV9VGhlIG5ldyBcY29kZXtqYXZhOm1vZHVsZX0gSk5ESSBjb250ZXh0IGVuYWJsZXMgZWFzeSBsb29rdXAgb2YgYSBiZWFuIGluc3RhbmNlIGdpdmVuIGEgYmVhbiBsb2NhbCBpbnRlcmZhY2Ugb3IgY2xhc3MgbmFtZS5cZW5ke25vdGV9CisKK0luIGEgY29udGFpbmVyIHRoYXQgYWxzbyBpbmNsdWRlcyBzdXBwb3J0IGZvciBKU1ItMjk5IChDb250ZXh0cyBhbmQgRGVwZW5kZW5jeSBJbmplY3Rpb24gZm9yIEphdmEpLCBhbiBpbXBsZW1lbnRhdGlvbiBNVVNUIHN1cHBvcnQgdXNlIG9mIEpTUi0yOTkgYmVhbnMgYXMgcm9vdCByZXNvdXJjZSBjbGFzc2VzLCBwcm92aWRlcnMgYW5kIGFzIFxjb2Rle0FwcGxpY2F0aW9ufSBzdWJjbGFzc2VzIGluIGEgV2ViIGFwcGxpY2F0aW9uLiBcY29kZXtQcm92aWRlcn0gYW5kIFxjb2Rle0FwcGxpY2F0aW9ufSBjbGFzc2VzIE1VU1QgdXNlIGFwcGxpY2F0aW9uIHNjb3BlLiBcamF4cnNcIGFubm90YXRpb25zIE1BWSBiZSBkaXJlY3RseSBhcHBsaWVkIHRvIEpTUi0yOTkgYmVhbnMgYW5kIHRoZSBcamF4cnNcIGltcGxlbWVudGF0aW9uIE1VU1QgdGhlIGFwcHJvcHJpYXRlIEFQSXMgdG8gb2J0YWluIGJlYW4gaW5zdGFuY2VzIHRoYXQgdXNlIEpTUi0yOTkgZmFjaWxpdGllcy4KIAogXHNlY3Rpb257T3RoZXJ9CiAK