ZGlmZiAtLWdpdCBhL3J1bnRpbWUvY29tcGlsZXIvYW50LnZpbSBiL3J1bnRpbWUvY29tcGlsZXIvYW50LnZpbQppbmRleCA1MWNkOTMxLi4wNjA1YzY5IDEwMDY0NAotLS0gYS9ydW50aW1lL2NvbXBpbGVyL2FudC52aW0KKysrIGIvcnVudGltZS9jb21waWxlci9hbnQudmltCkBAIC0xLDcgKzEsNyBAQAogIiBWaW0gQ29tcGlsZXIgRmlsZQogIiBDb21waWxlcjoJYW50CiAiIE1haW50YWluZXI6CUpvaGFubmVzIFplbGxuZXIgPGpvaGFubmVzQHplbGxuZXIub3JnPgotIiBMYXN0IENoYW5nZToJVHVlLCAyNyBBcHIgMjAwNCAxNTowMTo0NSBDRVNUCisiIExhc3QgQ2hhbmdlOglNaSwgMTMgQXByIDIwMDUgMjI6NTA6MDcgQ0VTVAogCiBpZiBleGlzdHMoImN1cnJlbnRfY29tcGlsZXIiKQogICAgIGZpbmlzaApAQCAtMjEsMTUgKzIxLDE1IEBACiAiICAgICBhbnQgd2l0aCBqaWtlcyArRSwgd2hpY2ggYXNzdW1lcyAgdGhlIGZvbGxvd2luZwogIiAgICAgdHdvIHByb3BlcnR5IGxpbmVzIGluIHlvdXIgJ2J1aWxkLnhtbCc6CiAiCi0iCSAgPHByb3BlcnR5IG5hbWUgPSAiYnVpbGQuY29tcGlsZXIiCSAgdmFsdWUgPSAiamlrZXMiLz4KLSIJICA8cHJvcGVydHkgbmFtZSA9ICJidWlsZC5jb21waWxlci5lbWFjcyIgdmFsdWUgPSAidHJ1ZSIvPgorIiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lID0gImJ1aWxkLmNvbXBpbGVyIiAgICAgICB2YWx1ZSA9ICJqaWtlcyIvPgorIiAgICAgICAgIDxwcm9wZXJ0eSBuYW1lID0gImJ1aWxkLmNvbXBpbGVyLmVtYWNzIiB2YWx1ZSA9ICJ0cnVlIi8+CiAiCiAiIHNlY29uZCBsaW5lOgogIiAgICAgYW50IHdpdGggamF2YWMKICIKICIgbm90ZSB0aGF0IHRoaXMgd2lsbCB3b3JrIGFsc28gZm9yIHRhc2tzIGxpa2UgW3d0a2J1aWxkXQogIgotc2V0bG9jYWwgZXJyb3Jmb3JtYXQ9XCAlI1slLiUjXVwgJSMlZjolbDoldjolKlxcZDolKlxcZDpcICV0JVslXjpdJSM6JW0sCitDb21waWxlclNldCBlcnJvcmZvcm1hdD1cICUjWyUuJSNdXCAlIyVmOiVsOiV2OiUqXFxkOiUqXFxkOlwgJXQlWyVeOl0lIzolbSwKICAgICBcJUFcICUjWyUuJSNdXCAlZjolbDpcICVtLCUtWlwgJSNbJS4lI11cICVwXiwlQ1wgJSNbJS4lI11cICUjJW0KIAogIiAsJS1DJS4lIwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvTWFrZWZpbGUgYi9ydW50aW1lL2RvYy9NYWtlZmlsZQppbmRleCAxYzI5NTlkLi4zYWVmMWNhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9NYWtlZmlsZQorKysgYi9ydW50aW1lL2RvYy9NYWtlZmlsZQpAQCAtMjU3LDYgKzI1NywxMSBAQAogCXdvcmtzaG9wLmh0bWwKIAogQ09OVkVSVEVEID0gXAorCXZpbS1mci5VVEYtOC4xIFwKKwlldmltLWZyLlVURi04LjEgXAorCXZpbWRpZmYtZnIuVVRGLTguMSBcCisJdmltdHV0b3ItZnIuVVRGLTguMSBcCisJeHhkLWZyLlVURi04LjEgXAogCXZpbS1pdC5VVEYtOC4xIFwKIAlldmltLWl0LlVURi04LjEgXAogCXZpbWRpZmYtaXQuVVRGLTguMSBcCkBAIC0zODAsMzIgKzM4NSw0NyBAQAogb3Nfd2luMzIudHh0OgogCXRvdWNoIG9zX3dpbjMyLnR4dAogCit2aW0tZnIuVVRGLTguMTogdmltLWZyLjEKKwlpY29udiAtZiBsYXRpbjEgLXQgdXRmLTggJDwgPiRACisKK2V2aW0tZnIuVVRGLTguMTogZXZpbS1mci4xCisJaWNvbnYgLWYgbGF0aW4xIC10IHV0Zi04ICQ8ID4kQAorCit2aW1kaWZmLWZyLlVURi04LjE6IHZpbWRpZmYtZnIuMQorCWljb252IC1mIGxhdGluMSAtdCB1dGYtOCAkPCA+JEAKKwordmltdHV0b3ItZnIuVVRGLTguMTogdmltdHV0b3ItZnIuMQorCWljb252IC1mIGxhdGluMSAtdCB1dGYtOCAkPCA+JEAKKworeHhkLWZyLlVURi04LjE6IHh4ZC1mci4xCisJaWNvbnYgLWYgbGF0aW4xIC10IHV0Zi04ICQ8ID4kQAorCiB2aW0taXQuVVRGLTguMTogdmltLWl0LjEKLQlpY29udiAtZiBsYXRpbjEgLXQgdXRmLTggJD4gPiRACisJaWNvbnYgLWYgbGF0aW4xIC10IHV0Zi04ICQ8ID4kQAogCiBldmltLWl0LlVURi04LjE6IGV2aW0taXQuMQotCWljb252IC1mIGxhdGluMSAtdCB1dGYtOCAkPiA+JEAKKwlpY29udiAtZiBsYXRpbjEgLXQgdXRmLTggJDwgPiRACiAKIHZpbWRpZmYtaXQuVVRGLTguMTogdmltZGlmZi1pdC4xCi0JaWNvbnYgLWYgbGF0aW4xIC10IHV0Zi04ICQ+ID4kQAorCWljb252IC1mIGxhdGluMSAtdCB1dGYtOCAkPCA+JEAKIAogdmltdHV0b3ItaXQuVVRGLTguMTogdmltdHV0b3ItaXQuMQotCWljb252IC1mIGxhdGluMSAtdCB1dGYtOCAkPiA+JEAKKwlpY29udiAtZiBsYXRpbjEgLXQgdXRmLTggJDwgPiRACiAKIHh4ZC1pdC5VVEYtOC4xOiB4eGQtaXQuMQotCWljb252IC1mIGxhdGluMSAtdCB1dGYtOCAkPiA+JEAKKwlpY29udiAtZiBsYXRpbjEgLXQgdXRmLTggJDwgPiRACiAKIHZpbS1ydS5VVEYtOC4xOiB2aW0tcnUuMQotCWljb252IC1mIEtPSTgtUiAtdCB1dGYtOCAkPiA+JEAKKwlpY29udiAtZiBLT0k4LVIgLXQgdXRmLTggJDwgPiRACiAKIGV2aW0tcnUuVVRGLTguMTogZXZpbS1ydS4xCi0JaWNvbnYgLWYgS09JOC1SIC10IHV0Zi04ICQ+ID4kQAorCWljb252IC1mIEtPSTgtUiAtdCB1dGYtOCAkPCA+JEAKIAogdmltZGlmZi1ydS5VVEYtOC4xOiB2aW1kaWZmLXJ1LjEKLQlpY29udiAtZiBLT0k4LVIgLXQgdXRmLTggJD4gPiRACisJaWNvbnYgLWYgS09JOC1SIC10IHV0Zi04ICQ8ID4kQAogCiB2aW10dXRvci1ydS5VVEYtOC4xOiB2aW10dXRvci1ydS4xCi0JaWNvbnYgLWYgS09JOC1SIC10IHV0Zi04ICQ+ID4kQAorCWljb252IC1mIEtPSTgtUiAtdCB1dGYtOCAkPCA+JEAKIAogeHhkLXJ1LlVURi04LjE6IHh4ZC1ydS4xCi0JaWNvbnYgLWYgS09JOC1SIC10IHV0Zi04ICQ+ID4kQAorCWljb252IC1mIEtPSTgtUiAtdCB1dGYtOCAkPCA+JEAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CmluZGV4IDdhNThjZDguLmM1MDdjY2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKKysrIGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMTYKKypjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTkxNSw2ICs5MTUsOCBAQAogCQkJY3VycmVudCBsaW5lKS4gIFRoaXMgYWx3YXlzIHdvcmtzIHxsaW5ld2lzZXwsIHRodXMKIAkJCXRoaXMgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBwdXQgYSB5YW5rZWQgYmxvY2sgYXMgbmV3CiAJCQlsaW5lcy4KKwkJCVRoZSBjdXJzb3IgaXMgbGVmdCBvbiB0aGUgZmlyc3Qgbm9uLWJsYW5rIGluIHRoZSBsYXN0CisJCQluZXcgbGluZS4KIAkJCVRoZSByZWdpc3RlciBjYW4gYWxzbyBiZSAnPScgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwKIAkJCWV4cHJlc3Npb24uICBUaGUgZXhwcmVzc2lvbiBjb250aW51ZXMgdW50aWwgdGhlIGVuZCBvZgogCQkJdGhlIGNvbW1hbmQuICBZb3UgbmVlZCB0byBlc2NhcGUgdGhlICd8JyBhbmQgJyInCkBAIC05NjQsOSArOTY2LDkgQEAKIHJlcGxhY2UgdGhlIHNlbGVjdGVkIHRleHQgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlIHJlZ2lzdGVyLiAgV2hldGhlciB0aGlzCiB3b3JrcyB3ZWxsIGRlcGVuZHMgb24gdGhlIHR5cGUgb2Ygc2VsZWN0aW9uIGFuZCB0aGUgdHlwZSBvZiB0aGUgdGV4dCBpbiB0aGUKIHJlZ2lzdGVyLiAgV2l0aCBibG9ja3dpc2Ugc2VsZWN0aW9uIGl0IGFsc28gZGVwZW5kcyBvbiB0aGUgc2l6ZSBvZiB0aGUgYmxvY2sKLWFuZCB3aGV0aGVyIHRoZSBjb3JuZXJzIGFyZSBvbiBhbiBleGlzdGluZyBjaGFyYWN0ZXIuIChpbXBsZW1lbnRhdGlvbiBkZXRhaWw6CithbmQgd2hldGhlciB0aGUgY29ybmVycyBhcmUgb24gYW4gZXhpc3RpbmcgY2hhcmFjdGVyLiAgKEltcGxlbWVudGF0aW9uIGRldGFpbDoKIGl0IGFjdHVhbGx5IHdvcmtzIGJ5IGZpcnN0IHB1dHRpbmcgdGhlIHJlZ2lzdGVyIGFmdGVyIHRoZSBzZWxlY3Rpb24gYW5kIHRoZW4KLWRlbGV0aW5nIHRoZSBzZWxlY3Rpb24pLgorZGVsZXRpbmcgdGhlIHNlbGVjdGlvbi4pCiAKIAkJCQkJCQkqYmxvY2t3aXNlLXJlZ2lzdGVyKgogSWYgeW91IHVzZSBhIGJsb2Nrd2lzZSBWaXN1YWwgbW9kZSBjb21tYW5kIHRvIGdldCB0aGUgdGV4dCBpbnRvIHRoZSByZWdpc3RlciwKQEAgLTE0MTcsNyArMTQxOSw3IEBACiBidWlsdCBpbiBzdHVmZiB0byB0cmVhdCB0aGVzZSB0eXBlcyBvZiBjb21tZW50cyBhIGJpdCBtb3JlIGNsZXZlcmx5LgogT3BlbmluZyBhIG5ldyBsaW5lIGJlZm9yZSBvciBhZnRlciAiLyoiIG9yICIqLyIgKHdpdGggJ3InIG9yICdvJyBwcmVzZW50IGluCiAnZm9ybWF0b3B0aW9ucycpIGdpdmVzIHRoZSBjb3JyZWN0IHN0YXJ0IG9mIHRoZSBsaW5lIGF1dG9tYXRpY2FsbHkuICBUaGUgc2FtZQotaGFwcGVucyB3aXRoIGZvcm1hdHRpbmcgYW5kIGF1dG8td3JhcHBpbmcuIE9wZW5pbmcgYSBsaW5lIGFmdGVyIGEgbGluZQoraGFwcGVucyB3aXRoIGZvcm1hdHRpbmcgYW5kIGF1dG8td3JhcHBpbmcuICBPcGVuaW5nIGEgbGluZSBhZnRlciBhIGxpbmUKIHN0YXJ0aW5nIHdpdGggIi8qIiBvciAiKiIgYW5kIGNvbnRhaW5pbmcgIiovIiwgd2lsbCBjYXVzZSBubyBjb21tZW50IGxlYWRlciB0bwogYmUgaW5zZXJ0ZWQsIGFuZCB0aGUgaW5kZW50IG9mIHRoZSBuZXcgbGluZSBpcyB0YWtlbiBmcm9tIHRoZSBsaW5lIGNvbnRhaW5pbmcKIHRoZSBzdGFydCBvZiB0aGUgY29tbWVudC4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2RlYnVnZ2VyLnR4dCBiL3J1bnRpbWUvZG9jL2RlYnVnZ2VyLnR4dAppbmRleCA0ZTRmMWMwLi41NjZiODNhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9kZWJ1Z2dlci50eHQKKysrIGIvcnVudGltZS9kb2MvZGVidWdnZXIudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRlYnVnZ2VyLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAwNworKmRlYnVnZ2VyLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBHb3Jkb24gUHJpZXVyCkBAIC0yNywxOSArMjcsMTkgQEAKIAogVGhlc2UgZmVhdHVyZXMgd2VyZSBhZGRlZCBzcGVjaWZpY2FsbHkgZm9yIHVzZSBpbiB0aGUgTW90aWYgdmVyc2lvbiBvZiBndmltLgogSG93ZXZlciwgdGhlIHxhbHQtaW5wdXR8IGFuZCB8ZGVidWctaGlnaGxpZ2h0fCB3ZXJlIHdyaXR0ZW4gdG8gYmUgdXNhYmxlIGluCi1ib3RoIHZpbSBhbmQgZ3ZpbS4gU29tZSBvZiB0aGUgb3RoZXIgZmVhdHVyZXMgY291bGQgYmUgdXNlZCBpbiB0aGUgbm9uLUdVSQotdmltIHdpdGggc2xpZ2h0IG1vZGlmaWNhdGlvbnMuIEhvd2V2ZXIsIEkgZGlkIG5vdCBkbyB0aGlzIG5vciBkaWQgSSB0ZXN0IHRoZQorYm90aCB2aW0gYW5kIGd2aW0uICBTb21lIG9mIHRoZSBvdGhlciBmZWF0dXJlcyBjb3VsZCBiZSB1c2VkIGluIHRoZSBub24tR1VJCit2aW0gd2l0aCBzbGlnaHQgbW9kaWZpY2F0aW9ucy4gIEhvd2V2ZXIsIEkgZGlkIG5vdCBkbyB0aGlzIG5vciBkaWQgSSB0ZXN0IHRoZQogcmVsaWFiaWxpdHkgb2YgYnVpbGRpbmcgZm9yIHZpbSBvciBub24gTW90aWYgR1VJIHZlcnNpb25zLgogCiAKIDEuMSBBbHRlcm5hdGUgQ29tbWFuZCBJbnB1dAkJCQkqYWx0LWlucHV0KgogCiBGb3IgVmltIHRvIHdvcmsgd2l0aCBhIGRlYnVnZ2VyIHRoZXJlIG11c3QgYmUgYXQgbGVhc3QgYW4gaW5wdXQgY29ubmVjdGlvbgotd2l0aCBhIGRlYnVnZ2VyIG9yIGV4dGVybmFsIHRvb2wuIEluIG1hbnkgY2FzZXMgdGhlcmUgd2lsbCBhbHNvIGJlIGFuIG91dHB1dAord2l0aCBhIGRlYnVnZ2VyIG9yIGV4dGVybmFsIHRvb2wuICBJbiBtYW55IGNhc2VzIHRoZXJlIHdpbGwgYWxzbyBiZSBhbiBvdXRwdXQKIGNvbm5lY3Rpb24gYnV0IHRoaXMgaXNuJ3QgYWJzb2x1dGVseSBuZWNlc3NhcnkuCiAKIFRoZSBwdXJwb3NlIG9mIHRoZSBpbnB1dCBjb25uZWN0aW9uIGlzIHRvIGxldCB0aGUgZXh0ZXJuYWwgZGVidWdnZXIgc2VuZAotY29tbWFuZHMgdG8gVmltLiBUaGUgY29tbWFuZHMgc2VudCBieSB0aGUgZGVidWdnZXIgc2hvdWxkIGdpdmUgdGhlIGRlYnVnZ2VyCitjb21tYW5kcyB0byBWaW0uICBUaGUgY29tbWFuZHMgc2VudCBieSB0aGUgZGVidWdnZXIgc2hvdWxkIGdpdmUgdGhlIGRlYnVnZ2VyCiBlbm91Z2ggY29udHJvbCB0byBkaXNwbGF5IHRoZSBjdXJyZW50IGRlYnVnIGVudmlyb25tZW50IGFuZCBzdGF0ZS4KIAogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgYmFzZWQgb24gdGhlIFggVG9vbGtpdCBkaXNwYXRjaCBsb29wIGFuZCB0aGUKQEAgLTQ5LDE1ICs0OSwxNSBAQAogMS4yIERlYnVnIFNpZ25zCQkJCQkJKmRlYnVnLXNpZ25zKgogCiBNYW55IGRlYnVnZ2VycyBtYXJrIHNwZWNpZmljIGxpbmVzIGJ5IHBsYWNpbmcgYSBzbWFsbCBzaWduIG9yIGNvbG9yIGhpZ2hsaWdodAotb24gdGhlIGxpbmUuIFRoZSB8OnNpZ258IGNvbW1hbmQgbGV0cyB0aGUgZGVidWdnZXIgc2V0IHRoaXMgZ3JhcGhpYyBtYXJrLiBTb21lCitvbiB0aGUgbGluZS4gIFRoZSB8OnNpZ258IGNvbW1hbmQgbGV0cyB0aGUgZGVidWdnZXIgc2V0IHRoaXMgZ3JhcGhpYyBtYXJrLiAgU29tZQogZXhhbXBsZXMgd2hlcmUgdGhpcyBmZWF0dXJlIHdvdWxkIGJlIHVzZWQgd291bGQgYmUgYSBkZWJ1Z2dlciBzaG93aW5nIGFuIGFycm93Ci1yZXByZXNlbnRpbmcgdGhlIFByb2dyYW0gQ291bnRlciAoUEMpIG9mIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkLiBBbm90aGVyCi1leGFtcGxlIHdvdWxkIGJlIGEgc21hbGwgc3RvcCBzaWduIGZvciBhIGxpbmUgd2l0aCBhIGJyZWFrcG9pbnQuIFRoZXNlIHZpc2libGUKK3JlcHJlc2VudGluZyB0aGUgUHJvZ3JhbSBDb3VudGVyIChQQykgb2YgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWQuICBBbm90aGVyCitleGFtcGxlIHdvdWxkIGJlIGEgc21hbGwgc3RvcCBzaWduIGZvciBhIGxpbmUgd2l0aCBhIGJyZWFrcG9pbnQuICBUaGVzZSB2aXNpYmxlCiBoaWdobGlnaHRzIGxldCB0aGUgdXNlciBrZWVwIHRyYWNrIG9mIGNlcnRhaW4gcGFydHMgb2YgdGhlIHN0YXRlIG9mIHRoZQogZGVidWdnZXIuCiAKLVRoaXMgZmVhdHVyZSBjYW4gYmUgdXNlZCB3aXRoIG1vcmUgdGhhbiBkZWJ1Z2dlcnMsIHRvby4gQW4gSVBFIGNhbiB1c2UgYSBzaWduCi10byBoaWdobGlnaHQgYnVpbGQgZXJyb3JzLCBzZWFyY2hlZCB0ZXh0LCBvciBvdGhlciB0aGluZ3MuIFRoZSBzaWduIGZlYXR1cmUKK1RoaXMgZmVhdHVyZSBjYW4gYmUgdXNlZCB3aXRoIG1vcmUgdGhhbiBkZWJ1Z2dlcnMsIHRvby4gIEFuIElQRSBjYW4gdXNlIGEgc2lnbgordG8gaGlnaGxpZ2h0IGJ1aWxkIGVycm9ycywgc2VhcmNoZWQgdGV4dCwgb3Igb3RoZXIgdGhpbmdzLiAgVGhlIHNpZ24gZmVhdHVyZQogY2FuIGFsc28gd29yayB0b2dldGhlciB3aXRoIHRoZSB8ZGVidWctaGlnaGxpZ2h0fCB0byBlbnN1cmUgdGhlIG1hcmsgaXMKIGhpZ2hseSB2aXNpYmxlLgogCkBAIC02NiwxNyArNjYsMTcgQEAKIAogMS4zIERlYnVnIFNvdXJjZSBIaWdobGlnaHQJCQkJKmRlYnVnLWhpZ2hsaWdodCoKIAotVGhpcyBmZWF0dXJlIGFsbG93cyBhIGxpbmUgdG8gaGF2ZSBhIHByZWRvbWluYW50IGhpZ2hsaWdodC4gVGhlIGhpZ2hsaWdodCBpcwotaW50ZW5kZWQgdG8gbWFrZSBhIHNwZWNpZmljIGxpbmUgc3RhbmQgb3V0LiBUaGUgaGlnaGxpZ2h0IGNvdWxkIGJlIG1hZGUgdG8KK1RoaXMgZmVhdHVyZSBhbGxvd3MgYSBsaW5lIHRvIGhhdmUgYSBwcmVkb21pbmFudCBoaWdobGlnaHQuICBUaGUgaGlnaGxpZ2h0IGlzCitpbnRlbmRlZCB0byBtYWtlIGEgc3BlY2lmaWMgbGluZSBzdGFuZCBvdXQuICBUaGUgaGlnaGxpZ2h0IGNvdWxkIGJlIG1hZGUgdG8KIHdvcmsgZm9yIGJvdGggdmltIGFuZCBndmltLCB3aGVyZWFzIHRoZSBkZWJ1ZyBzaWduIGlzLCBpbiBtb3N0IGNhc2VzLCBsaW1pdGVkCi10byBndmltLiBUaGUgb25lIGV4Y2VwdGlvbiB0byB0aGlzIGlzIFN1biBNaWNyb3N5c3RlbSdzIGR0dGVybS4gVGhlIGR0dGVybQordG8gZ3ZpbS4gIFRoZSBvbmUgZXhjZXB0aW9uIHRvIHRoaXMgaXMgU3VuIE1pY3Jvc3lzdGVtJ3MgZHR0ZXJtLiAgVGhlIGR0dGVybQogZnJvbSBTdW4gaGFzIGEgInNpZ24gZ3V0dGVyIiBmb3Igc2hvd2luZyBzaWducy4KIAogCiAxLjQgTWVzc2FnZSBGb290ZXIJCQkJCSpndWktZm9vdGVyKgogCi1UaGUgbWVzc2FnZSBmb290ZXIgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSBtZXNzYWdlcyBmcm9tIGEgZGVidWdnZXIgb3IgSVBFLiBJdAotY2FuIGFsc28gYmUgdXNlZCB0byBkaXNwbGF5IG1lbnUgYW5kIHRvb2xiYXIgdGlwcy4gVGhlIGZvb3RlciBhcmVhIGlzIGF0IHRoZQorVGhlIG1lc3NhZ2UgZm9vdGVyIGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgbWVzc2FnZXMgZnJvbSBhIGRlYnVnZ2VyIG9yIElQRS4gIEl0CitjYW4gYWxzbyBiZSB1c2VkIHRvIGRpc3BsYXkgbWVudSBhbmQgdG9vbGJhciB0aXBzLiAgVGhlIGZvb3RlciBhcmVhIGlzIGF0IHRoZQogYm90dG9tIG9mIHRoZSBHVUkgd2luZG93LCBiZWxvdyB0aGUgbGluZSB1c2VkIHRvIGRpc3BsYXkgY29sb24gY29tbWFuZHMuCiAKIFRoZSBkaXNwbGF5IG9mIHRoZSBmb290ZXIgaXMgY29udHJvbGxlZCBieSB0aGUgJ2d1aW9wdGlvbnMnIGxldHRlciAnRicuCkBAIC04NSw3ICs4NSw3IEBACiAxLjUgQmFsbG9vbiBFdmFsdWF0aW9uCQkJCQkqYmFsbG9vbi1ldmFsKgogCiBUaGlzIGZlYXR1cmUgYWxsb3dzIGEgZGVidWdnZXIsIG9yIG90aGVyIGV4dGVybmFsIHRvb2wsIHRvIGRpc3BsYXkgZHluYW1pYwotaW5mb3JtYXRpb24gYmFzZWQgb24gd2hlcmUgdGhlIG1vdXNlIGlzIHBvaW50aW5nLiBUaGUgcHVycG9zZSBvZiB0aGlzIGZlYXR1cmUKK2luZm9ybWF0aW9uIGJhc2VkIG9uIHdoZXJlIHRoZSBtb3VzZSBpcyBwb2ludGluZy4gIFRoZSBwdXJwb3NlIG9mIHRoaXMgZmVhdHVyZQogd2FzIHRvIGFsbG93IFN1bidzIFZpc3VhbCBXb3JrU2hvcCBkZWJ1Z2dlciB0byBkaXNwbGF5IGV4cHJlc3Npb24gZXZhbHVhdGlvbnMuCiBIb3dldmVyLCB0aGUgZmVhdHVyZSB3YXMgaW1wbGVtZW50ZWQgaW4gYXMgZ2VuZXJhbCBhIG1hbm5lciBhcyBwb3NzaWJsZSBhbmQKIGNvdWxkIGJlIHVzZWQgZm9yIGRpc3BsYXlpbmcgb3RoZXIgaW5mb3JtYXRpb24gYXMgd2VsbC4KQEAgLTExMSw3ICsxMTEsNyBAQAogMi4gVmltIENvbXBpbGUgT3B0aW9ucwkJCQkJKmRlYnVnZ2VyLWNvbXBpbGF0aW9uKgogCiBUaGUgZGVidWdnZXIgZmVhdHVyZXMgd2VyZSBhZGRlZCBleHBsaWNpdGx5IGZvciB1c2Ugd2l0aCBTdW4ncyBWaXN1YWwKLVdvcmtTaG9wIEludGVncmF0ZWQgUHJvZ3JhbW1pbmcgRW52aXJvbm1lbnQgKGlwZSkuIEhvd2V2ZXIsIHRoZXkgd2VyZSBkb25lCitXb3JrU2hvcCBJbnRlZ3JhdGVkIFByb2dyYW1taW5nIEVudmlyb25tZW50IChpcGUpLiAgSG93ZXZlciwgdGhleSB3ZXJlIGRvbmUKIGluIGFzIGdlbmVyaWMgYSBtYW5uZXIgYXMgcG9zc2libGUgc28gdGhhdCBpbnRlZ3JhdGlvbiB3aXRoIG90aGVyIGRlYnVnZ2VycwogY291bGQgYWxzbyB1c2Ugc29tZSBvciBhbGwgb2YgdGhlIHRvb2xzIHVzZWQgd2l0aCBTdW4ncyBpcGUuCiAKQEAgLTEyMyw3ICsxMjMsNyBAQAogICAgIE1lc3NhZ2UgRm9vdGVyCQkJCUZFQVRfRk9PVEVSCiAgICAgQmFsbG9vbiBFdmFsdWF0aW9uCQkJCUZFQVRfQkVWQUwKIAotVGhlIGZpcnN0IGludGVncmF0aW9uIHdpdGggYSBmdWxsIElQRS9JREUgd2FzIHdpdGggU3VuIFZpc3VhbCBXb3JrU2hvcC4gVG8KK1RoZSBmaXJzdCBpbnRlZ3JhdGlvbiB3aXRoIGEgZnVsbCBJUEUvSURFIHdhcyB3aXRoIFN1biBWaXN1YWwgV29ya1Nob3AuICBUbwogY29tcGlsZSBhIGd2aW0gd2hpY2ggaW50ZXJmYWNlcyB3aXRoIFZXUyBzZXQgdGhlIGZvbGxvd2luZyBmbGFnLCB3aGljaCBzZXRzCiBhbGwgdGhlIGFib3ZlIGZsYWdzOgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZXZlbG9wLnR4dCBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CmluZGV4IDZlNGY0ZTMuLmJjOGIwZTggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEphbiAxNworKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzY2LDcgKzM2NiwzMyBAQAogCQlmaXQgaW4gdGhlIHNoZWxsLgogCiAKLVRvIGJlIGNvbnRpbnVlZC4uLgorU3BlbGwgY2hlY2tpbmcJCQkJCQkqZGV2ZWxvcC1zcGVsbCoKKworV2hlbiBzcGVsbCBjaGVja2luZyB3YXMgZ29pbmcgdG8gYmUgYWRkZWQgdG8gVmltIGEgc3VydmV5IHdhcyBkb25lIG92ZXIgdGhlCithdmFpbGFibGUgc3BlbGwgY2hlY2tpbmcgbGlicmFyaWVzIGFuZCBwcm9ncmFtcy4gIFVuZm9ydHVuYXRlbHksIHRoZSByZXN1bHQKK3dhcyB0aGF0IG5vbmUgb2YgdGhlbSBwcm92aWRlZCBzdWZmaWNpZW50IGNhcGFiaWxpdGllcyB0byBiZSB1c2VkIGFzIHRoZSBzcGVsbAorY2hlY2tpbmcgZW5naW5lIGluIFZpbSwgZm9yIHZhcmlvdXMgcmVhc29uczoKKworLSBNaXNzaW5nIHN1cHBvcnQgZm9yIG11bHRpLWJ5dGUgZW5jb2RpbmdzLiAgQXQgbGVhc3QgVVRGLTggbXVzdCBiZSBzdXBwb3J0ZWQsCisgIHNvIHRoYXQgbW9yZSB0aGFuIG9uZSBsYW5ndWFnZSBjYW4gYmUgdXNlZCBpbiB0aGUgc2FtZSBmaWxlLgorLSBGb3IgdGhlIHByb2dyYW1zIGFuZCBsaWJyYXJpZXM6IFVzaW5nIHRoZW0gYXMtaXMgd291bGQgcmVxdWlyZSBpbnN0YWxsaW5nCisgIHRoZW0gc2VwYXJhdGVseSBmcm9tIFZpbS4gIFRoYXQncyBub3QgaW1wb3NzaWJsZSwgYnV0IGEgZHJhd2JhY2suCistIFBlcmZvcm1hbmNlOiBBIGZldyB0ZXN0cyBzaG93ZWQgdGhhdCBpdCdzIHBvc3NpYmxlIHRvIGNoZWNrIHNwZWxsaW5nIG9uIHRoZQorICBmbHkgKHdoaWxlIHJlZHJhd2luZyksIGp1c3QgbGlrZSBzeW50YXggaGlnaGxpZ2h0aW5nLiAgQnV0IHRoZSBtZWNoYW5pc21zCisgIHVzZWQgYnkgb3RoZXIgY29kZSBhcmUgbXVjaCBzbG93ZXIuICBNeXNwZWxsIHVzZXMgYSBzaW1wbGlzdGljIGhhc2h0YWJsZSwKKyAgZm9yIGV4YW1wbGUuCistIEZvciBhIHByb2dyYW0gbGlrZSBhc3BlbGwgYSBjb21tdW5pY2F0aW9uIG1lY2hhbmlzbSB3b3VsZCBoYXZlIHRvIGJlIHNldHVwLgorICBUaGF0J3MgY29tcGxpY2F0ZWQgdG8gZG8gaW4gYSBwb3J0YWJsZSB3YXkgKFVuaXgtb25seSB3b3VsZCBiZSByZWxhdGl2ZWx5CisgIHNpbXBsZSwgYnV0IHRoYXQncyBub3QgZ29vZCBlbm91Z2gpLiAgQW5kIHBlcmZvcm1hbmNlIHdpbGwgYmVjb21lIGEgcHJvYmxlbQorICAobG90cyBvZiBwcm9jZXNzIHN3aXRjaGluZyBpbnZvbHZlZCkuCistIE1pc3Npbmcgc3VwcG9ydCBmb3Igd29yZHMgd2l0aCBub24td29yZCBjaGFyYWN0ZXJzLCBzdWNoIGFzICJFdHRlbi1MZXVyIiBhbmQKKyAgImV0IGFsLiIsIHdvdWxkIHJlcXVpcmUgbWFya2luZyB0aGUgcGllY2VzIG9mIHRoZW0gT0ssIGxvd2VyaW5nIHRoZQorICByZWxpYWJpbGl0eS4KKy0gTWlzc2luZyBzdXBwb3J0IGZvciByZWdpb25zIG9yIGRpYWxlY3RzLiAgTWFrZXMgaXQgZGlmZmljdWx0IHRvIGFjY2VwdAorICBhbGwgRW5nbGlzaCB3b3JkcyBhbmQgaGlnaGxpZ2h0IG5vbi1DYW5hZGlhbiB3b3JkcyBkaWZmZXJlbnRseS4KKy0gTWlzc2luZyBzdXBwb3J0IGZvciByYXJlIHdvcmRzLiAgTWFueSB3b3JkcyBhcmUgY29ycmVjdCBidXQgaGFyZGx5IGV2ZXIgdXNlZAorICBhbmQgY291bGQgYmUgYSBtaXNzcGVsbGVkIG9mdGVuLXVzZWQgd29yZC4KKwogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDQuIEFzc3VtcHRpb25zCQkJCQkJKmRlc2lnbi1hc3N1bXB0aW9ucyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2VkaXRpbmcudHh0IGIvcnVudGltZS9kb2MvZWRpdGluZy50eHQKaW5kZXggM2ZiNGU1NC4uOGFlODcwYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZWRpdGluZy50eHQKKysrIGIvcnVudGltZS9kb2MvZWRpdGluZy50eHQKQEAgLTEsNCArMSw0IEBACi0qZWRpdGluZy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRmViIDE0CisqZWRpdGluZy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDA0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00Niw3ICs0Niw3IEBACiAJCQluYW1lLiAge25vdCBpbiBWaX0KIAogQWxsIGZpbGUgbmFtZXMgYXJlIHJlbWVtYmVyZWQgaW4gdGhlIGJ1ZmZlciBsaXN0LiAgV2hlbiB5b3UgZW50ZXIgYSBmaWxlIG5hbWUsCi1mb3IgZWRpdGluZyAoZS5nLiwgd2l0aCAiOmUgZmlsZW5hbWUiKSBvciB3cml0aW5nIChlLmcuLCB3aXRoICI6dyBmaWxlIG5hbWUiKSwKK2ZvciBlZGl0aW5nIChlLmcuLCB3aXRoICI6ZSBmaWxlbmFtZSIpIG9yIHdyaXRpbmcgKGUuZy4sIHdpdGggIjp3IGZpbGVuYW1lIiksCiB0aGUgZmlsZSBuYW1lIGlzIGFkZGVkIHRvIHRoZSBsaXN0LiAgWW91IGNhbiB1c2UgdGhlIGJ1ZmZlciBsaXN0IHRvIHJlbWVtYmVyCiB3aGljaCBmaWxlcyB5b3UgZWRpdGVkIGFuZCB0byBxdWlja2x5IHN3aXRjaCBmcm9tIG9uZSBmaWxlIHRvIGFub3RoZXIgKGUuZy4sCiB0byBjb3B5IHRleHQpIHdpdGggdGhlIHxDVFJMLV58IGNvbW1hbmQuICBGaXJzdCB0eXBlIHRoZSBudW1iZXIgb2YgdGhlIGZpbGUKQEAgLTU3LDcgKzU3LDcgQEAKIDpmW2lsZV0JCQlQcmludHMgdGhlIGN1cnJlbnQgZmlsZSBuYW1lIChhcyB0eXBlZCksIHRoZQogCQkJY3Vyc29yIHBvc2l0aW9uICh1bmxlc3MgdGhlICdydWxlcicgb3B0aW9uIGlzIHNldCksCiAJCQlhbmQgdGhlIGZpbGUgc3RhdHVzIChyZWFkb25seSwgbW9kaWZpZWQsIHJlYWQgZXJyb3JzLAotCQkJbmV3IGZpbGUpLiAgU2VlIHRoZSAnc2hvcnRtZXNzJyBvcHRpb24gYWJvdXQgaG93IHRobworCQkJbmV3IGZpbGUpLiAgU2VlIHRoZSAnc2hvcnRtZXNzJyBvcHRpb24gYWJvdXQgaG93IHRvCiAJCQltYWtlIHRoaXMgbWVzc2FnZSBzaG9ydGVyLiAge1ZpIGRvZXMgbm90IGluY2x1ZGUKIAkJCWNvbHVtbiBudW1iZXJ9CiAKQEAgLTkxMCw4ICs5MTAsOCBAQAogCQkJCQkJCSp3cml0ZS1mYWlsKgogSWYgdGhlIHdyaXRpbmcgb2YgdGhlIG5ldyBmaWxlIGZhaWxzLCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdCB0byBsb3NlCiB5b3VyIGNoYW5nZXMgQU5EIHRoZSBvcmlnaW5hbCBmaWxlLiAgSWYgdGhlcmUgaXMgbm8gYmFja3VwIGZpbGUgYW5kIHdyaXRpbmcKLXRoZSBuZXcgZmlsZSBmYWlsZWQsIHlvdSBoYXZlIGFscmVhZHkgbG9zdCB0aGUgb3JpZ2luYWwgZmlsZSEgRE9OJ1QgRVhJVCBWSU0KLVVOVElMIFlPVSBXUklURSBPVVQgVEhFIEZJTEUhIElmIGEgYmFja3VwIHdhcyBtYWRlLCBpdCBpcyBwdXQgYmFjayBpbiBwbGFjZQordGhlIG5ldyBmaWxlIGZhaWxlZCwgeW91IGhhdmUgYWxyZWFkeSBsb3N0IHRoZSBvcmlnaW5hbCBmaWxlISAgRE9OJ1QgRVhJVCBWSU0KK1VOVElMIFlPVSBXUklURSBPVVQgVEhFIEZJTEUhICBJZiBhIGJhY2t1cCB3YXMgbWFkZSwgaXQgaXMgcHV0IGJhY2sgaW4gcGxhY2UKIG9mIHRoZSBvcmlnaW5hbCBmaWxlIChpZiBwb3NzaWJsZSkuICBJZiB5b3UgZXhpdCBWaW0sIGFuZCBsb3NlIHRoZSBjaGFuZ2VzCiB5b3UgbWFkZSwgdGhlIG9yaWdpbmFsIGZpbGUgd2lsbCBtb3N0bHkgc3RpbGwgYmUgdGhlcmUuICBJZiBwdXR0aW5nIGJhY2sgdGhlCiBvcmlnaW5hbCBmaWxlIGZhaWxzLCB0aGVyZSB3aWxsIGJlIGFuIGVycm9yIG1lc3NhZ2UgdGVsbGluZyB5b3UgdGhhdCB5b3UKQEAgLTEzOTEsNiArMTM5MSwxMSBAQAogc2Vzc2lvbiBvciB3aXRoIGFub3RoZXIgY29tbWFuZCAoZS5nLiwgYSBmaWx0ZXIgY29tbWFuZCkuICBUaGVuIHlvdSB3aWxsIGtub3cKIHdoaWNoIHZlcnNpb24gb2YgdGhlIGZpbGUgeW91IHdhbnQgdG8ga2VlcC4KIAorVGhlcmUgaXMgb25lIHNpdHVhdGlvbiB3aGVyZSB5b3UgZ2V0IHRoZSBtZXNzYWdlIHdoaWxlIHRoZXJlIGlzIG5vdGhpbmcgd3Jvbmc6CitPbiBhIFdpbjMyIHN5c3RlbSBvbiB0aGUgZGF5IGRheWxpZ2h0IHNhdmluZyB0aW1lIHN0YXJ0cy4gIFRoZXJlIGlzIHNvbWV0aGluZworaW4gdGhlIFdpbjMyIGxpYnJhcmllcyB0aGF0IGNvbmZ1c2VzIFZpbSBhYm91dCB0aGUgaG91ciB0aW1lIGRpZmZlcmVuY2UuICBUaGUKK3Byb2JsZW0gZ29lcyBhd2F5IHRoZSBuZXh0IGRheS4KKwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAxMS4gRmlsZSBTZWFyY2hpbmcJCQkJCSpmaWxlLXNlYXJjaGluZyoKIApAQCAtMTQwMSw3ICsxNDA2LDcgQEAKIAogMSkgRG93bndhcmQgc2VhcmNoOgogICAgRG93bndhcmQgc2VhcmNoIHVzZXMgdGhlIHdpbGRjYXJkcyAnKicsICcqKicgYW5kIHBvc3NpYmx5IG90aGVycwotICAgc3VwcG9ydGVkIGJ5IHlvdXIgb3BlcmF0aW5nIHN5c3RlbS4gJyonIGFuZCAnKionIGFyZSBoYW5kbGVkIGluc2lkZSBWaW0sIHNvCisgICBzdXBwb3J0ZWQgYnkgeW91ciBvcGVyYXRpbmcgc3lzdGVtLiAgJyonIGFuZCAnKionIGFyZSBoYW5kbGVkIGluc2lkZSBWaW0sIHNvCiAgICB0aGV5IHdvcmsgb24gYWxsIG9wZXJhdGluZyBzeXN0ZW1zLgogCiAgICBUaGUgdXNhZ2Ugb2YgJyonIGlzIHF1aXRlIHNpbXBsZTogSXQgbWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycy4KQEAgLTE0MzUsMTAgKzE0NDAsMTAgQEAKIAogMikgVXB3YXJkIHNlYXJjaDoKICAgIEhlcmUgeW91IGNhbiBnaXZlIGEgZGlyZWN0b3J5IGFuZCB0aGVuIHNlYXJjaCB0aGUgZGlyZWN0b3J5IHRyZWUgdXB3YXJkIGZvcgotICAgYSBmaWxlLiBZb3UgY291bGQgZ2l2ZSBzdG9wLWRpcmVjdG9yaWVzIHRvIGxpbWl0IHRoZSB1cHdhcmQgc2VhcmNoLiBUaGUKKyAgIGEgZmlsZS4gIFlvdSBjb3VsZCBnaXZlIHN0b3AtZGlyZWN0b3JpZXMgdG8gbGltaXQgdGhlIHVwd2FyZCBzZWFyY2guICBUaGUKICAgIHN0b3AtZGlyZWN0b3JpZXMgYXJlIGFwcGVuZGVkIHRvIHRoZSBwYXRoIChmb3IgdGhlICdwYXRoJyBvcHRpb24pIG9yIHRvCi0gICB0aGUgZmlsZW5hbWUgKGZvciB0aGUgJ3RhZ3MnIG9wdGlvbikgd2l0aCBhICc7Jy4gSWYgeW91IHdhbnQgc2V2ZXJhbAotICAgc3RvcC1kaXJlY3RvcmllcyBzZXBhcmF0ZSB0aGVtIHdpdGggJzsnLiBJZiB5b3Ugd2FudCBubyBzdG9wLWRpcmVjdG9yeQorICAgdGhlIGZpbGVuYW1lIChmb3IgdGhlICd0YWdzJyBvcHRpb24pIHdpdGggYSAnOycuICBJZiB5b3Ugd2FudCBzZXZlcmFsCisgICBzdG9wLWRpcmVjdG9yaWVzIHNlcGFyYXRlIHRoZW0gd2l0aCAnOycuICBJZiB5b3Ugd2FudCBubyBzdG9wLWRpcmVjdG9yeQogICAgKCJzZWFyY2ggdXB3YXJkIHRpbGwgdGhlIHJvb3QgZGlyZWN0b3J5KSBqdXN0IHVzZSAnOycuID4KIAkvdXNyL2luY2x1ZGUvc3lzOy91c3IKIDwgICB3aWxsIHNlYXJjaCBpbjogPgpAQCAtMTQ1Nyw3ICsxNDYyLDcgQEAKIAkvdS91c2VyX3gvd29yay9pbmNsdWRlCiAJL3UvdXNlcl94L2luY2x1ZGUKIAotMykgQ29tYmluZWQgdXAvZG93bndhcmQgc2VhcmNoCiszKSBDb21iaW5lZCB1cC9kb3dud2FyZCBzZWFyY2g6CiAgICBJZiBWaW0ncyBjdXJyZW50IHBhdGggaXMgL3UvdXNlcl94L3dvcmsvcmVsZWFzZSBhbmQgeW91IGRvID4KIAlzZXQgcGF0aD0qKjsvdS91c2VyX3gKIDwgIGFuZCB0aGVuIHNlYXJjaCBmb3IgYSBmaWxlIHdpdGggfGdmfCB0aGUgZmlsZSBpcyBzZWFyY2hlZCBpbjogPgpAQCAtMTQ2NSwxMCArMTQ3MCwxMCBAQAogCS91L3VzZXJfeC93b3JrLyoqCiAJL3UvdXNlcl94LyoqCiA8Ci0gICBCRSBDQVJFRlVMISBUaGlzIG1pZ2h0IGNvbnN1bWUgYSBsb3Qgb2YgdGltZSwgYXMgdGhlIHNlYXJjaCBvZgorICAgQkUgQ0FSRUZVTCEgIFRoaXMgbWlnaHQgY29uc3VtZSBhIGxvdCBvZiB0aW1lLCBhcyB0aGUgc2VhcmNoIG9mCiAgICAnL3UvdXNlcl94LyoqJyBpbmNsdWRlcyAnL3UvdXNlcl94L3dvcmsvKionIGFuZAogICAgJy91L3VzZXJfeC93b3JrL3JlbGVhc2UvKionLiAgU28gJy91L3VzZXJfeC93b3JrL3JlbGVhc2UvKionIGlzIHNlYXJjaGVkCi0gICB0aHJlZSBhbmQgJy91L3VzZXJfeC93b3JrLyoqJyBpcyBzZWFyY2hlZCB0d28gdGltZXMuCisgICB0aHJlZSB0aW1lcyBhbmQgJy91L3VzZXJfeC93b3JrLyoqJyBpcyBzZWFyY2hlZCB0d2ljZS4KIAogICAgSW4gdGhlIGFib3ZlIGV4YW1wbGUgeW91IG1pZ2h0IHdhbnQgdG8gc2V0IHBhdGggdG86ID4KIAk6c2V0IHBhdGg9KiosL3UvdXNlcl94LyoqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ldmFsLnR4dCBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CmluZGV4IGRjMjYwYjkuLmEwZTQ0NmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2V2YWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CkBAIC0xLDQgKzEsNCBAQAotKmV2YWwudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyNgorKmV2YWwudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTQxMiw3ICsxNDEyLDcgQEAKIAogU2VlIHxmdW5jdGlvbi1saXN0fCBmb3IgYSBsaXN0IGdyb3VwZWQgYnkgd2hhdCB0aGUgZnVuY3Rpb24gaXMgdXNlZCBmb3IuCiAKLShVc2UgQ1RSTC1dIG9uIHRoZSBmdW5jdGlvbiBuYW1lIHRvIGp1bXAgdG8gdGhlIGZ1bGwgZXhwbGFuYXRpb24pCisoVXNlIENUUkwtXSBvbiB0aGUgZnVuY3Rpb24gbmFtZSB0byBqdW1wIHRvIHRoZSBmdWxsIGV4cGxhbmF0aW9uLikKIAogVVNBR0UJCQkJUkVTVUxUCURFU0NSSVBUSU9OCX4KIApAQCAtMTYyMCw3ICsxNjIwLDcgQEAKIAogYWRkKHtsaXN0fSwge2V4cHJ9KQkJCQkJKmFkZCgpKgogCQlBcHBlbmQgdGhlIGl0ZW0ge2V4cHJ9IHRvIExpc3Qge2xpc3R9LiAgUmV0dXJucyB0aGUgcmVzdWx0aW5nCi0JCUxpc3QuIEV4YW1wbGVzOiA+CisJCUxpc3QuICBFeGFtcGxlczogPgogCQkJOmxldCBhbGlzdCA9IGFkZChbMSwgMiwgM10sIGl0ZW0pCiAJCQk6Y2FsbCBhZGQobXlsaXN0LCAid29vZHN0b2NrIikKIDwJCU5vdGUgdGhhdCB3aGVuIHtleHByfSBpcyBhIExpc3QgaXQgaXMgYXBwZW5kZWQgYXMgYSBzaW5nbGUKQEAgLTE4MDksNiArMTgwOSw3IEBACiA8CQlUaGUgY3VycmVudCAnZW5jb2RpbmcnIGlzIHVzZWQuICBFeGFtcGxlIGZvciAidXRmLTgiOiA+CiAJCQljaGFyMm5yKCLhIikJCXJldHVybnMgMjI1CiAJCQljaGFyMm5yKCLhIlswXSkJCXJldHVybnMgMTk1Cis8CQlucjJjaGFyKCkgZG9lcyB0aGUgb3Bwb3NpdGUuCiAKIGNpbmRlbnQoe2xudW19KQkJCQkJCSpjaW5kZW50KCkqCiAJCUdldCB0aGUgYW1vdW50IG9mIGluZGVudCBmb3IgbGluZSB7bG51bX0gYWNjb3JkaW5nIHRoZSBDCkBAIC0yNTUxLDEwICsyNTUyLDEwIEBACiAKIGdldHJlZyhbe3JlZ25hbWV9XSkJCQkJCSpnZXRyZWcoKSoKIAkJVGhlIHJlc3VsdCBpcyBhIFN0cmluZywgd2hpY2ggaXMgdGhlIGNvbnRlbnRzIG9mIHJlZ2lzdGVyCi0JCXtyZWduYW1lfS4gRXhhbXBsZTogPgorCQl7cmVnbmFtZX0uICBFeGFtcGxlOiA+CiAJCQk6bGV0IGNsaXB0ZXh0ID0gZ2V0cmVnKCcqJykKIDwJCWdldHJlZygnPScpIHJldHVybnMgdGhlIGxhc3QgZXZhbHVhdGVkIHZhbHVlIG9mIHRoZSBleHByZXNzaW9uCi0JCXJlZ2lzdGVyLiAoRm9yIHVzZSBpbiBtYXBzKS4KKwkJcmVnaXN0ZXIuICAoRm9yIHVzZSBpbiBtYXBzLikKIAkJSWYge3JlZ25hbWV9IGlzIG5vdCBzcGVjaWZpZWQsIHx2OnJlZ2lzdGVyfCBpcyB1c2VkLgogCiAKQEAgLTI2NzcsNyArMjY3OCw3IEBACiA8CQlUaGlzIGZ1bmN0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIHxzYW5kYm94fC4KIAogaGlzdGRlbCh7aGlzdG9yeX0gWywge2l0ZW19XSkJCQkJKmhpc3RkZWwoKSoKLQkJQ2xlYXIge2hpc3Rvcnl9LCBpZS4gZGVsZXRlIGFsbCBpdHMgZW50cmllcy4gIFNlZSB8aGlzdC1uYW1lc3wKKwkJQ2xlYXIge2hpc3Rvcnl9LCBpLmUuIGRlbGV0ZSBhbGwgaXRzIGVudHJpZXMuICBTZWUgfGhpc3QtbmFtZXN8CiAJCWZvciB0aGUgcG9zc2libGUgdmFsdWVzIG9mIHtoaXN0b3J5fS4KIAogCQlJZiB0aGUgcGFyYW1ldGVyIHtpdGVtfSBpcyBnaXZlbiBhcyBTdHJpbmcsIHRoaXMgaXMgc2VlbgpAQCAtMjc1Myw3ICsyNzU0LDcgQEAKIAogaG9zdG5hbWUoKQkJCQkJCSpob3N0bmFtZSgpKgogCQlUaGUgcmVzdWx0IGlzIGEgU3RyaW5nLCB3aGljaCBpcyB0aGUgbmFtZSBvZiB0aGUgbWFjaGluZSBvbgotCQl3aGljaCBWaW0gaXMgY3VycmVudGx5IHJ1bm5pbmcuIE1hY2hpbmUgbmFtZXMgZ3JlYXRlciB0aGFuCisJCXdoaWNoIFZpbSBpcyBjdXJyZW50bHkgcnVubmluZy4gIE1hY2hpbmUgbmFtZXMgZ3JlYXRlciB0aGFuCiAJCTI1NiBjaGFyYWN0ZXJzIGxvbmcgYXJlIHRydW5jYXRlZC4KIAogaWNvbnYoe2V4cHJ9LCB7ZnJvbX0sIHt0b30pCQkJCSppY29udigpKgpAQCAtMjg3Myw3ICsyODc0LDcgQEAKIAkJe2lkeH0uICBJZiB7aWR4fSBpcyB6ZXJvIGl0IGdvZXMgYmVmb3JlIHRoZSBmaXJzdCBpdGVtLCBqdXN0CiAJCWxpa2Ugb21pdHRpbmcge2lkeH0uICBBIG5lZ2F0aXZlIHtpZHh9IGlzIGFsc28gcG9zc2libGUsIHNlZQogCQl8bGlzdC1pbmRleHwuICAtMSBpbnNlcnRzIGp1c3QgYmVmb3JlIHRoZSBsYXN0IGl0ZW0uCi0JCVJldHVybnMgdGhlIHJlc3VsdGluZyBMaXN0LiBFeGFtcGxlczogPgorCQlSZXR1cm5zIHRoZSByZXN1bHRpbmcgTGlzdC4gIEV4YW1wbGVzOiA+CiAJCQk6bGV0IG15bGlzdCA9IGluc2VydChbMiwgMywgNV0sIDEpCiAJCQk6Y2FsbCBpbnNlcnQobXlsaXN0LCA0LCAtMSkKIAkJCTpjYWxsIGluc2VydChteWxpc3QsIDYsIGxlbihteWxpc3QpKQpAQCAtMzEzMSw3ICszMTMyLDcgQEAKIAkJSWYge3N0YXJ0fSBpcyBnaXZlbiwgdGhlIHNlYXJjaCBzdGFydHMgZnJvbSBieXRlIGluZGV4CiAJCXtzdGFydH0gaW4gYSBTdHJpbmcgb3IgaXRlbSB7c3RhcnR9IGluIGEgTGlzdC4KIAkJVGhlIHJlc3VsdCwgaG93ZXZlciwgaXMgc3RpbGwgdGhlIGluZGV4IGNvdW50ZWQgZnJvbSB0aGUKLQkJZmlyc3QgY2hhcmFjdGVyL2l0ZW0uIEV4YW1wbGU6ID4KKwkJZmlyc3QgY2hhcmFjdGVyL2l0ZW0uICBFeGFtcGxlOiA+CiAJCQk6ZWNobyBtYXRjaCgidGVzdGluZyIsICJpbmciLCAyKQogPAkJcmVzdWx0IGlzIGFnYWluICI0Ii4gPgogCQkJOmVjaG8gbWF0Y2goInRlc3RpbmciLCAiaW5nIiwgNCkKQEAgLTM0MDUsNyArMzQwNiw3IEBACiAJCQk6bGV0IHNlcGVyYXRvciA9IHJlcGVhdCgnLScsIDgwKQogPAkJV2hlbiB7Y291bnR9IGlzIHplcm8gb3IgbmVnYXRpdmUgdGhlIHJlc3VsdCBpcyBlbXB0eS4KIAkJV2hlbiB7ZXhwcn0gaXMgYSBMaXN0IHRoZSByZXN1bHQgaXMge2V4cHJ9IGNvbmNhdGVuYXRlZAotCQl7Y291bnR9IHRpbWVzLiBFeGFtcGxlOiA+CisJCXtjb3VudH0gdGltZXMuICBFeGFtcGxlOiA+CiAJCQk6bGV0IGxvbmdsaXN0ID0gcmVwZWF0KFsnYScsICdiJ10sIDMpCiA8CQlSZXN1bHRzIGluIFsnYScsICdiJywgJ2EnLCAnYicsICdhJywgJ2InXS4KIApAQCAtMzU0NCw3ICszNTQ1LDcgQEAKIAkJe29ubHkgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aCB0aGUgfCtjbGllbnRzZXJ2ZXJ8IGZlYXR1cmV9CiAJCU5vdGU6CiAJCVRoaXMgaWQgaGFzIHRvIGJlIHN0b3JlZCBiZWZvcmUgdGhlIG5leHQgY29tbWFuZCBjYW4gYmUKLQkJcmVjZWl2ZWQuIEllLiBiZWZvcmUgcmV0dXJuaW5nIGZyb20gdGhlIHJlY2VpdmVkIGNvbW1hbmQgYW5kCisJCXJlY2VpdmVkLiAgSS5lLiBiZWZvcmUgcmV0dXJuaW5nIGZyb20gdGhlIHJlY2VpdmVkIGNvbW1hbmQgYW5kCiAJCWJlZm9yZSBjYWxsaW5nIGFueSBjb21tYW5kcyB0aGF0IHdhaXRzIGZvciBpbnB1dC4KIAkJU2VlIGFsc28gfGNsaWVudHNlcnZlcnwuCiAJCUV4YW1wbGU6ID4KQEAgLTM1ODcsOSArMzU4OCwxMCBAQAogCQlsaW5lLgogCiBzZXRsaW5lKHtsbnVtfSwge2xpbmV9KQkJCQkJKnNldGxpbmUoKSoKLQkJU2V0IGxpbmUge2xudW19IG9mIHRoZSBjdXJyZW50IGJ1ZmZlciB0byB7bGluZX0uICBJZiB0aGlzCi0JCXN1Y2NlZWRzLCAwIGlzIHJldHVybmVkLiAgSWYgdGhpcyBmYWlscyAobW9zdCBsaWtlbHkgYmVjYXVzZQotCQl7bG51bX0gaXMgaW52YWxpZCkgMSBpcyByZXR1cm5lZC4gIEV4YW1wbGU6ID4KKwkJU2V0IGxpbmUge2xudW19IG9mIHRoZSBjdXJyZW50IGJ1ZmZlciB0byB7bGluZX0uCisJCXtsbnVtfSBpcyB1c2VkIGxpa2Ugd2l0aCB8Z2V0bGluZSgpfC4KKwkJSWYgdGhpcyBzdWNjZWVkcywgMCBpcyByZXR1cm5lZC4gIElmIHRoaXMgZmFpbHMgKG1vc3QgbGlrZWx5CisJCWJlY2F1c2Uge2xudW19IGlzIGludmFsaWQpIDEgaXMgcmV0dXJuZWQuICBFeGFtcGxlOiA+CiAJCQk6Y2FsbCBzZXRsaW5lKDUsIHN0cmZ0aW1lKCIlYyIpKQogPAkJTm90ZTogVGhlICdbIGFuZCAnXSBtYXJrcyBhcmUgbm90IHNldC4KIApAQCAtMzcxNSw3ICszNzE3LDkgQEAKIAkJCTpsZXQgd29yZHMgPSBzcGxpdChnZXRsaW5lKCcuJyksICdcV1wrJykKIDwJCVNpbmNlIGVtcHR5IHN0cmluZ3MgYXJlIG5vdCBhZGRlZCB0aGUgIlwrIiBpc24ndCByZXF1aXJlZCBidXQKIAkJaXQgbWFrZXMgdGhlIGZ1bmN0aW9uIHdvcmsgYSBiaXQgZmFzdGVyLgotCQlUaGUgb3Bwb3NpdGUgZnVuY3Rpb24gaXMgfGpvaW4oKXwuCisJCVRvIHNwbGl0IGEgc3RyaW5nIGluIGluZGl2aWR1YWwgY2hhcmFjdGVyczogPgorCQkJOmZvciBjIGluIHNwbGl0KG15c3RyaW5nLCAnXHpzJykKKzwJCVRoZSBvcHBvc2l0ZSBmdW5jdGlvbiBpcyB8am9pbigpfC4KIAogCiBzdHJmdGltZSh7Zm9ybWF0fSBbLCB7dGltZX1dKQkJCQkqc3RyZnRpbWUoKSoKQEAgLTM4MDYsNyArMzgxMCw3IEBACiAJCUZvciBwYXR0ZXJuIHNlYXJjaGVzIHVzZSB8bWF0Y2goKXwuCiAJCS0xIGlzIHJldHVybmVkIGlmIHRoZSB7bmVlZGxlfSBkb2VzIG5vdCBvY2N1ciBpbiB7aGF5c3RhY2t9LgogCQlJZiB0aGUge25lZWRsZX0gaXMgZW1wdHkgdGhlIGxlbmd0aCBvZiB7aGF5c3RhY2t9IGlzIHJldHVybmVkLgotCQlTZWUgYWxzbyB8c3RyaWR4KCl8LiBFeGFtcGxlczogPgorCQlTZWUgYWxzbyB8c3RyaWR4KCl8LiAgRXhhbXBsZXM6ID4KIAkJICA6ZWNobyBzdHJyaWR4KCJhbiBhbmdyeSBhcm1hZGlsbG8iLCAiYW4iKQkgICAgIDMKIDwJCSAgCQkJCQkqc3RycmNocigpKgogCQlXaGVuIHVzZWQgd2l0aCBhIHNpbmdsZSBjaGFyYWN0ZXIgaXQgd29ya3Mgc2ltaWxhciB0byB0aGUgQwpAQCAtMzk0MCw3ICszOTQ0LDcgQEAKIAkJCQkJZGVmaW5lZC4KIAkJCWNtZAkJRXggY29tbWFuZCB1c2VkIHRvIGxvY2F0ZSB0aGUgdGFnIGluCiAJCQkJCXRoZSBmaWxlLgotCQkJa2luZAkJdHlwZSBvZiB0aGUgdGFnLiBUaGUgdmFsdWUgZm9yIHRoaXMKKwkJCWtpbmQJCXR5cGUgb2YgdGhlIHRhZy4gIFRoZSB2YWx1ZSBmb3IgdGhpcwogCQkJCQllbnRyeSBkZXBlbmRzIG9uIHRoZSBsYW5ndWFnZSBzcGVjaWZpYwogCQkJCQlraW5kIHZhbHVlcyBnZW5lcmF0ZWQgYnkgdGhlIGN0YWdzCiAJCQkJCXRvb2wuCkBAIC00MDY4LDcgKzQwNzIsNyBAQAogCiAJCQkJCQkJKndpbmJ1Zm5yKCkqCiB3aW5idWZucih7bnJ9KQlUaGUgcmVzdWx0IGlzIGEgTnVtYmVyLCB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIHRoZSBidWZmZXIKLQkJYXNzb2NpYXRlZCB3aXRoIHdpbmRvdyB7bnJ9LiBXaGVuIHtucn0gaXMgemVybywgdGhlIG51bWJlciBvZgorCQlhc3NvY2lhdGVkIHdpdGggd2luZG93IHtucn0uICBXaGVuIHtucn0gaXMgemVybywgdGhlIG51bWJlciBvZgogCQl0aGUgYnVmZmVyIGluIHRoZSBjdXJyZW50IHdpbmRvdyBpcyByZXR1cm5lZC4gIFdoZW4gd2luZG93CiAJCXtucn0gZG9lc24ndCBleGlzdCwgLTEgaXMgcmV0dXJuZWQuCiAJCUV4YW1wbGU6ID4KQEAgLTQ2NTcsNyArNDY2MSw3IEBACiB3aGVyZSAiZW5kX29mX3dvcmQiIGlzIGVpdGhlciAidmVyYiIgb3IgImplY3RpdmUiLgogCiBIb3dldmVyLCB0aGUgZXhwcmVzc2lvbiBpbnNpZGUgdGhlIGJyYWNlcyBtdXN0IGV2YWx1YXRlIHRvIGEgdmFsaWQgc2luZ2xlCi12YXJpYWJsZSBuYW1lLiBlLmcuIHRoaXMgaXMgaW52YWxpZDogPgordmFyaWFibGUgbmFtZSwgZS5nLiB0aGlzIGlzIGludmFsaWQ6ID4KIAk6bGV0IGZvbz0nYSArIGInCiAJOmVjaG8gY3tmb299ZAogLi4gc2luY2UgdGhlIHJlc3VsdCBvZiBleHBhbnNpb24gaXMgImNhICsgYmQiLCB3aGljaCBpcyBub3QgYSB2YXJpYWJsZSBuYW1lLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZXZpbS1mci5VVEYtOC4xIGIvcnVudGltZS9kb2MvZXZpbS1mci5VVEYtOC4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1OTQxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy9ldmltLWZyLlVURi04LjEKQEAgLTAsMCArMSw1NiBAQAorLlRIIEVWSU0gMSAiMTYgZsOpdnJpZXIgMjAwMiBGZWJydWFyeSAxNiIKKy5TSCBOQU1FCitldmltIFwtIMKrIEVhc3kgVmltIMK7LCDDqWRpdGUgdW4gZmljaGllciBhdmVjIFZpbSBzYW5zIHV0aWxpc2VyIGxlcyBtb2RlcworLlNIIFNZTk9QU0lTCisuYnIKKy5CIGV2aW0KK1tvcHRpb25zXSBbZmljaGllciAuLi5dCisuYnIKKy5CIGV2aWV3CisuU0ggREVTQ1JJUFRJT04KKy5CIGVWaW0KK2xhbmNlCisuQiBWaW0KK2V0IGNvbmZpZ3VyZSBzZXMgb3B0aW9ucyBhZmluIHF1J2lsIHNlIGNvbXBvcnRlIGNvbW1lIHVuIMOpZGl0ZXVyIHNhbnMgbW9kZS4KK0NlbGEgcmVzdGUgVmltLCBtYWlzIHZvdXMgcG91dmV6IGwndXRpbGlzZXIgY29tbWUgdW4gw6lkaXRldXIgwqsgY2xpcXVlci10YXBlciDCuy4KK0NlbGEgcmVzc2VtYmxlIGJlYXVjb3VwIMOgIGwnw6lkaXRpb24gYXZlYyBOb3RlcGFkIHN1ciBNUy1XaW5kb3dzLgorLkIgZVZpbQorbmUgZm9uY3Rpb25uZSBxdSdhdmVjIGwnaW50ZXJmYWNlIGdyYXBoaXF1ZSwgcXVpIGVzdCBuw6ljZXNzYWlyZSBwb3VyIHBlcm1ldHRyZQorbCd1dGlsaXNhdGlvbiBkZXMgbWVudXMgZXQgZGUgbGEgYmFycmUgZCdvdXRpbHMuCisuUFAKK0lsIG4nZXN0IHV0aWxlIHF1J2F1eCBwZXJzb25uZXMgcXVpIG5lIHBhcnZpZW5uZW50IHZyYWltZW50IHBhcyDDoCB1dGlsaXNlciBWaW0KK2RlIGZhw6dvbiB0cmFkaXRpb25uZWxsZS4gTCfDqWRpdGlvbiBlc3QgYWxvcnMgYmllbiBtb2lucyBlZmZpY2FjZS4KKy5QUAorLkIgZXZpZXcKK2ZhaXQgbGEgbcOqbWUgY2hvc2UsIG1haXMgZMOpbWFycmUgVmltIGVuIG1vZGUgTGVjdHVyZS1zZXVsZS4KK0NlbGEgcmV2aWVudCDDoCBsYW5jZXIgZXZpbSBcLVIuCisuUFAKK1ZvaXIgdmltKDEpIHBvdXIgZGF2YW50YWdlIGQnaW5mb3JtYXRpb25zIHN1ciBWaW0sIGxlcyBvcHRpb25zLCBldGMuCisuUFAKK0wnb3B0aW9uICdpbnNlcnRtb2RlJyBlc3QgYWN0aXbDqWUgcG91ciBwZXJtZXR0cmUgZGUgdGFwZXIgZGlyZWN0ZW1lbnQgZHUgdGV4dGUuCisuYnIKK0xlcyBtYXBwYWdlcyBzb250IGNvbmZpZ3Vyw6lzIHBvdXIgcXVlIENvcGllciBldCBDb2xsZXIgZm9uY3Rpb25uZW50IGF2ZWMgbGVzCityYWNjb3VyY2lzIGhhYml0dWVscyBkZSBNUy1XaW5kb3dzLiBDVFJMLVggY291cGUgbGUgdGV4dGUsIENUUkwtQyBjb3BpZSBsZQordGV4dGUgZXQgQ1RSTC1WIGNvbGxlIGxlIHRleHRlLgorVm91cyBwb3V2ZXogdXRpbGlzZXIgQ1RSTC1RIHBvdXIgb2J0ZW5pciBsYSBmb25jdGlvbiBvcmlnaW5hbGUgZGUgQ1RSTC1WLgorLlNIIE9QVElPTlMKK1ZvaXIgdmltKDEpLgorLlNIIEZJQ0hJRVJTCisuVFAgMTUKKy91c3IvbG9jYWwvbGliL3ZpbS9ldmltLnZpbQorTGUgc2NyaXB0IGNoYXJnw6kgcG91ciBpbml0aWFsaXNlciBlVmltLgorLlNIIEFVU1NJIENPTk5VIFNPVVMKK8OJZ2FsZW1lbnQgY29ubnUgc291cyBsZSBub20gwqsgVmltIHBvdXIgZ3VtYmllcyDCuyBbTi5ELlQuIDogRmx5aW5nIENpcmN1cy4uLl0uCitRdWFuZCB2b3VzIHV0aWxpc2V6IGVWaW0sIHZvdXMgw6p0ZXMgY2Vuc8OpIHByZW5kcmUgdW4gbW91Y2hvaXIgZGUgcG9jaGUsCitmYWlyZSB1biBub2V1ZCDDoCBjaGFxdWUgY29pbiBldCBsZSBwb3J0ZXIgc3VyIHZvdHJlIHTDqnRlLgorLlNIIFZPSVIgQVVTU0kKK3ZpbSgxKQorLlNIIEFVVEVVUgorTGEgbWFqZXVyZSBwYXJ0aWUgZGUKKy5CIFZpbQorYSDDqXTDqSDDqWNyaXRlIHBhciBCcmFtIE1vb2xlbmFhciwgYXZlYyBsJ2FpZGUgZGUgbm9tYnJldXggYXV0cmVzIGNvbnRyaWJ1dGV1cnMuCitWb2lyIGxlIG1lbnUgQWlkZS9SZW1lcmNpZW1lbnRzIG91ICI6aGVscCBjcmVkaXRzIiBkYW5zCisuQiBWaW0uCisuU0ggVFJBRFVDVElPTgorQ2V0dGUgcGFnZSBkZSBtYW51ZWwgYSDDqXTDqSB0cmFkdWl0ZSBEYXZpZCBCbGFuY2hldC4KKzxkYXZpZC5ibGFuY2hldEBmcmVlLmZyPiAyMDA1LTAzLTI2LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZm9sZC50eHQgYi9ydW50aW1lL2RvYy9mb2xkLnR4dAppbmRleCAyYWFkZDc2Li5kODBhMTAyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9mb2xkLnR4dAorKysgYi9ydW50aW1lL2RvYy9mb2xkLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpmb2xkLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBEZWMgMjkKKypmb2xkLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMzMCw3ICszMzAsNyBAQAogCQknZm9sZGVuYWJsZScgd2lsbCBiZSBzZXQuCiAKIAkJCQkJCQkqemEqCi16YQkJV2hlbiBvbiBhIGNsb3NlZCBmb2xkOiBvcGVuIGl0LiBXaGVuIGZvbGRzIGFyZSBuZXN0ZWQsIHlvdQoremEJCVdoZW4gb24gYSBjbG9zZWQgZm9sZDogb3BlbiBpdC4gIFdoZW4gZm9sZHMgYXJlIG5lc3RlZCwgeW91CiAJCW1heSBoYXZlIHRvIHVzZSAiemEiIHNldmVyYWwgdGltZXMuICBXaGVuIGEgY291bnQgaXMgZ2l2ZW4sCiAJCXRoYXQgbWFueSBjbG9zZWQgZm9sZHMgYXJlIG9wZW5lZC4KIAkJV2hlbiBvbiBhbiBvcGVuIGZvbGQ6IGNsb3NlIGl0IGFuZCBzZXQgJ2ZvbGRlbmFibGUnLiAgVGhpcwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZ3VpLnR4dCBiL3J1bnRpbWUvZG9jL2d1aS50eHQKaW5kZXggMmI2YTJhNS4uMzU5MzZkMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpLnR4dAorKysgYi9ydW50aW1lL2RvYy9ndWkudHh0CkBAIC0xLDQgKzEsNCBAQAotKmd1aS50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEphbiAxNAorKmd1aS50eHQqICAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAxMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTg0LDcgKzE4NCw3IEBACiB3aWxsIGFwcGVhciBpbiB0aGUgdG9wIG9mIHRoZSB3aW5kb3cuCiAKIElmIGEgd2luZG93IGlzIHNocnVuayB0byB6ZXJvIGhlaWdodCAoYnkgdGhlIGdyb3d0aCBvZiBhbm90aGVyIHdpbmRvdykgaXRzCi1zY3JvbGxiYXIgZGlzYXBwZWFycy4gSXQgcmVhcHBlYXJzIHdoZW4gdGhlIHdpbmRvdyBpcyByZXN0b3JlZC4KK3Njcm9sbGJhciBkaXNhcHBlYXJzLiAgSXQgcmVhcHBlYXJzIHdoZW4gdGhlIHdpbmRvdyBpcyByZXN0b3JlZC4KIAogSWYgYSB3aW5kb3cgaXMgdmVydGljYWxseSBzcGxpdCwgaXQgd2lsbCBnZXQgYSBzY3JvbGxiYXIgd2hlbiBpdCBpcyB0aGUKIGN1cnJlbnQgd2luZG93IGFuZCB3aGVuLCB0YWtpbmcgdGhlIG1pZGRsZSBvZiB0aGUgY3VycmVudCB3aW5kb3cgYW5kIGRyYXdpbmcgYQpAQCAtNDA4LDcgKzQwOCw3IEBACiAJCQkJCQkJKmNsaXBib2FyZCoKIFRoZXJlIGlzIGEgc3BlY2lhbCByZWdpc3RlciBmb3Igc3RvcmluZyB0aGlzIHNlbGVjdGlvbiwgaXQgaXMgdGhlICIqCiByZWdpc3Rlci4gIE5vdGhpbmcgaXMgcHV0IGluIGhlcmUgdW5sZXNzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHRleHQgaXMKLXNlbGVjdGVkIGlzIGFib3V0IHRvIGNoYW5nZSAoZWcgd2l0aCBhIGxlZnQgbW91c2UgY2xpY2sgc29tZXdoZXJlKSwgb3Igd2hlbgorc2VsZWN0ZWQgaXMgYWJvdXQgdG8gY2hhbmdlIChlLmcuIHdpdGggYSBsZWZ0IG1vdXNlIGNsaWNrIHNvbWV3aGVyZSksIG9yIHdoZW4KIGFub3RoZXIgYXBwbGljYXRpb24gd2FudHMgdG8gcGFzdGUgdGhlIHNlbGVjdGVkIHRleHQuICBUaGVuIHRoZSB0ZXh0IGlzIHB1dAogaW4gdGhlICIqIHJlZ2lzdGVyLiAgRm9yIGV4YW1wbGUsIHRvIGN1dCBhIGxpbmUgYW5kIG1ha2UgaXQgdGhlIGN1cnJlbnQKIHNlbGVjdGlvbi9wdXQgaXQgb24gdGhlIGNsaXBib2FyZDogPgpAQCAtNTA0LDcgKzUwNCw3IEBACiAJCQkJKkUzMjgqICpFMzI5KiAqRTMzNyoKIFRvIGNyZWF0ZSBhIG5ldyBtZW51IGl0ZW0sIHVzZSB0aGUgIjptZW51IiBjb21tYW5kcy4gIFRoZXkgYXJlIG1vc3RseSBsaWtlCiB0aGUgIjptYXAiIHNldCBvZiBjb21tYW5kcyBidXQgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgbWVudSBpdGVtIG5hbWUsIGdpdmVuCi1hcyBhIHBhdGggb2YgbWVudXMgYW5kIHN1Ym1lbnVzIHdpdGggYSAnLicgYmV0d2VlbiB0aGVtLiBlZzogPgorYXMgYSBwYXRoIG9mIG1lbnVzIGFuZCBzdWJtZW51cyB3aXRoIGEgJy4nIGJldHdlZW4gdGhlbSwgZS5nLjogPgogCiAgICA6bWVudSBGaWxlLlNhdmUgIDp3PENSPgogICAgOmlub3JlbWVudSBGaWxlLlNhdmUgIDxDLU8+Onc8Q1I+CkBAIC02NDgsOSArNjQ4LDkgQEAKIAogCQkJCQkJCSpndWktdG9vbGJhcioKIFRoZSB0b29sYmFyIGlzIGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIFdpbjMyLCBBdGhlbmEsIE1vdGlmLCBHVEsrIChYMTEpLAotS0RFIGFuZCBQaG90b24gR1VJLiAgSXQgc2hvdWxkIHR1cm4gdXAgaW4gb3RoZXIgR1VJcyBpbiBkdWUgY291cnNlLiAgVGhlIGRlZmF1bHQKLXRvb2xiYXIgaXMgc2V0dXAgaW4gbWVudS52aW0uCi1UaGUgZGlzcGxheSBvZiB0aGUgdG9vbGJhciBpcyBjb250cm9sbGVkIGJ5IHRoZSAnZ3Vpb3B0aW9ucycgbGV0dGVyICdUJy4gWW91CitLREUgYW5kIFBob3RvbiBHVUkuICBJdCBzaG91bGQgdHVybiB1cCBpbiBvdGhlciBHVUlzIGluIGR1ZSBjb3Vyc2UuICBUaGUKK2RlZmF1bHQgdG9vbGJhciBpcyBzZXR1cCBpbiBtZW51LnZpbS4KK1RoZSBkaXNwbGF5IG9mIHRoZSB0b29sYmFyIGlzIGNvbnRyb2xsZWQgYnkgdGhlICdndWlvcHRpb25zJyBsZXR0ZXIgJ1QnLiAgWW91CiBjYW4gdGh1cyBoYXZlIG1lbnUgJiB0b29sYmFyIHRvZ2V0aGVyLCBvciBlaXRoZXIgb24gaXRzIG93biwgb3IgbmVpdGhlci4KIFRoZSBhcHBlYXJhbmNlIGlzIGNvbnRyb2xsZWQgYnkgdGhlICd0b29sYmFyJyBvcHRpb24uICBZb3UgY2FuIGNob3NlIGJldHdlZW4KIGFuIGltYWdlLCB0ZXh0IG9yIGJvdGguCkBAIC02NjEsNyArNjYxLDcgQEAKIDEpICBJZiBhbiAiaWNvbj0iIGFyZ3VtZW50IHdhcyBzcGVjaWZpZWQsIHRoZSBmaWxlIHdpdGggdGhpcyBuYW1lIGlzIHVzZWQuCiAgICAgVGhlIGZpbGUgY2FuIGVpdGhlciBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgZnVsbCBwYXRoIG9yIHdpdGggdGhlIGJhc2UgbmFtZS4KICAgICBJbiB0aGUgbGFzdCBjYXNlIGl0IGlzIHNlYXJjaGVkIGZvciBpbiB0aGUgImJpdG1hcHMiIGRpcmVjdG9yeSBpbgotICAgICdydW50aW1lcGF0aCcsIGxpa2UgaW4gcG9pbnQgMykuICBFeGFtcGxlczogPgorICAgICdydW50aW1lcGF0aCcsIGxpa2UgaW4gcG9pbnQgMy4gIEV4YW1wbGVzOiA+CiAJOmFtZW51IGljb249L3Vzci9sb2NhbC9waXhtYXBzL2Zvb19pY29uLnhwbSBUb29sQmFyLkZvbyA6ZWNobyAiRm9vIjxDUj4KIAk6YW1lbnUgaWNvbj1Gb29JY29uIFRvb2xCYXIuRm9vIDplY2hvICJGb28iPENSPgogPCAgIE5vdGUgdGhhdCBpbiB0aGUgZmlyc3QgY2FzZSB0aGUgZXh0ZW5zaW9uIGlzIGluY2x1ZGVkLCB3aGlsZSBpbiB0aGUgc2Vjb25kCkBAIC02NzEsNyArNjcxLDcgQEAKICAgICBBIG1lbnUgcHJpb3JpdHkgbXVzdCBjb21lIF9hZnRlcl8gdGhlIGljb24gYXJndW1lbnQ6ID4KIAk6YW1lbnUgaWNvbj1mb28gMS40MiBUb29sQmFyLkZvbyA6ZWNobyAiNDIhIjxDUj4KIDIpICBBbiBpdGVtIGNhbGxlZCAnQnVpbHRJbiMjJywgd2hlcmUgIyMgaXMgYSBudW1iZXIsIGlzIHRha2VuIGFzIG51bWJlciAjIyBvZgotICAgIHRoZSBidWlsdC1pbiBiaXRtYXBzIGF2YWlsYWJsZSBpbiBWaW0uIEN1cnJlbnRseSB0aGVyZSBhcmUgMzEgbnVtYmVyZWQKKyAgICB0aGUgYnVpbHQtaW4gYml0bWFwcyBhdmFpbGFibGUgaW4gVmltLiAgQ3VycmVudGx5IHRoZXJlIGFyZSAzMSBudW1iZXJlZAogICAgIGZyb20gMCB0byAzMCB3aGljaCBjb3ZlciBtb3N0IGNvbW1vbiBlZGl0aW5nIG9wZXJhdGlvbnMgfGJ1aWx0aW4tdG9vbHN8LiA+CiAJOmFtZW51IFRvb2xCYXIuQnVpbHRJbjIyIDpjYWxsIFNlYXJjaE5leHQoImJhY2siKTxDUj4KIDMpICBBbiBpdGVtIHdpdGggYW5vdGhlciBuYW1lIGlzIGZpcnN0IHNlYXJjaGVkIGZvciBpbiB0aGUgZGlyZWN0b3J5CkBAIC03NDcsNyArNzQ3LDcgQEAKIG1lbnUgY29tbWFuZHMgKGp1c3QgbGlrZSB5b3Ugd291bGQgd2l0aCB0aGUgIjptYXAiIGNvbW1hbmRzKS4gIElmIHRoZSBtZW51CiBzcGVjaWZpZWQgaXMgYSBzdWJtZW51LCB0aGVuIGFsbCBtZW51cyB1bmRlciB0aGF0IGhpZXJhcmNoeSB3aWxsIGJlIHNob3duLgogSWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4gYWZ0ZXIgOm1lbnUgYXQgYWxsLCB0aGVuIEFMTCBtZW51IGl0ZW1zIGFyZSBzaG93bgotZm9yIHRoZSBhcHByb3ByaWF0ZSBtb2RlIChlZywgQ29tbWFuZC1saW5lIG1vZGUgZm9yIDpjbWVudSkuCitmb3IgdGhlIGFwcHJvcHJpYXRlIG1vZGUgKGUuZy4sIENvbW1hbmQtbGluZSBtb2RlIGZvciA6Y21lbnUpLgogCiBTcGVjaWFsIGNoYXJhY3RlcnMgaW4gdGhlIGxpc3QsIGp1c3QgYmVmb3JlIHRoZSByaHM6CiAqCVRoZSBtZW51IHdhcyBkZWZpbmVkIHdpdGggIm5vcmUiIHRvIGRpc2FsbG93IHJlbWFwcGluZy4KQEAgLTg1Niw3ICs4NTYsNyBAQAogCiBXaGVuIGEgdGlwIGlzIGRlZmluZWQgZm9yIGEgbWVudSBpdGVtLCBpdCBhcHBlYXJzIGluIHRoZSBjb21tYW5kLWxpbmUgYXJlYQogd2hlbiB0aGUgbW91c2UgaXMgb3ZlciB0aGF0IGl0ZW0sIG11Y2ggbGlrZSBhIHN0YW5kYXJkIFdpbmRvd3MgbWVudSBoaW50IGluCi10aGUgc3RhdHVzIGJhci4gKEV4Y2VwdCB3aGVuIFZpbSBpcyBpbiBDb21tYW5kLWxpbmUgbW9kZSwgd2hlbiBvZiBjb3Vyc2UKK3RoZSBzdGF0dXMgYmFyLiAgKEV4Y2VwdCB3aGVuIFZpbSBpcyBpbiBDb21tYW5kLWxpbmUgbW9kZSwgd2hlbiBvZiBjb3Vyc2UKIG5vdGhpbmcgaXMgZGlzcGxheWVkLikKIFdoZW4gYSB0aXAgaXMgZGVmaW5lZCBmb3IgYSBUb29sQmFyIGl0ZW0sIGl0IGFwcGVhcnMgYXMgYSB0b29sdGlwIHdoZW4gdGhlCiBtb3VzZSBwYXVzZXMgb3ZlciB0aGF0IGJ1dHRvbiwgaW4gdGhlIHVzdWFsIGZhc2hpb24uICBVc2UgdGhlIHxobC1Ub29sdGlwfApAQCAtODcwLDcgKzg3MCw3IEBACiBBbmQgZGVsZXRlIGl0IHdpdGg6ID4KIAk6dHVubWVudSBNeU1lbnUuSGVsbG8KIAotVG9vbHRpcHMgYXJlIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBmb3IgdGhlIFgxMSBhbmQgV2luMzIgR1VJLiBIb3dldmVyLCB0aGV5CitUb29sdGlwcyBhcmUgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGZvciB0aGUgWDExIGFuZCBXaW4zMiBHVUkuICBIb3dldmVyLCB0aGV5CiBzaG91bGQgYXBwZWFyIGZvciB0aGUgb3RoZXIgZ3VpIHBsYXRmb3JtcyBpbiB0aGUgbm90IHRvbyBkaXN0YW50IGZ1dHVyZS4KIAogVGhlICI6dG1lbnUiIGNvbW1hbmQgd29ya3MganVzdCBsaWtlIG90aGVyIG1lbnUgY29tbWFuZHMsIGl0IHVzZXMgdGhlIHNhbWUKQEAgLTkyMCw3ICs5MjAsNyBAQAogICBnZXQgIjxNb2RpZmllcnMtS2V5PiIuCiAKIC0gSW4gdGhlIEdVSSwgdGhlIG1vZGlmaWVycyBTSElGVCwgQ1RSTCwgYW5kIEFMVCAob3IgTUVUQSkgbWF5IGJlIHVzZWQgd2l0aGluCi0gIG1hcHBpbmdzIG9mIHNwZWNpYWwga2V5cyBhbmQgbW91c2UgZXZlbnRzLiAgZWc6IDptYXAgPE0tTGVmdERyYWc+IDxMZWZ0RHJhZz4KKyAgbWFwcGluZ3Mgb2Ygc3BlY2lhbCBrZXlzIGFuZCBtb3VzZSBldmVudHMuICBFLmcuOiA6bWFwIDxNLUxlZnREcmFnPiA8TGVmdERyYWc+CiAKIC0gSW4gdGhlIEdVSSwgc2V2ZXJhbCBub3JtYWwga2V5cyBtYXkgaGF2ZSBtb2RpZmllcnMgaW4gbWFwcGluZ3MgZXRjLCB0aGVzZQogICBhcmUgPFNwYWNlPiwgPFRhYj4sIDxOTD4sIDxDUj4sIDxFc2M+LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZ3VpX3cxNi50eHQgYi9ydW50aW1lL2RvYy9ndWlfdzE2LnR4dAppbmRleCA1MDU1YWZlLi42MDVlNzdlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ndWlfdzE2LnR4dAorKysgYi9ydW50aW1lL2RvYy9ndWlfdzE2LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpndWlfdzE2LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwMSBTZXAgMDMKKypndWlfdzE2LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIxLDMyICsyMSwzMiBAQAogCiB7VmkgZG9lcyBub3QgaGF2ZSBhIFdpbmRvd3MgR1VJfQogCi1UaGUgV2luMTYgdmVyc2lvbiBvZiBWaW0gd2lsbCBydW4gb24gV2luZG93cyAzLjEgb3IgbGF0ZXIuIEl0IGhhcyBub3QgYmVlbgorVGhlIFdpbjE2IHZlcnNpb24gb2YgVmltIHdpbGwgcnVuIG9uIFdpbmRvd3MgMy4xIG9yIGxhdGVyLiAgSXQgaGFzIG5vdCBiZWVuCiB0ZXN0ZWQgb24gMy4wLCBpdCBwcm9iYWJseSB3b24ndCB3b3JrIHdpdGhvdXQgYmVpbmcgcmVjb21waWxlZCBhbmQKLW1vZGlmaWVkLiAoYnV0IHlvdSByZWFsbHkgc2hvdWxkIHVwZ3JhZGUgdG8gMy4xMSBhbnl3YXkuIDopCittb2RpZmllZC4gIChCdXQgeW91IHJlYWxseSBzaG91bGQgdXBncmFkZSB0byAzLjExIGFueXdheS4gOikKIAogSW4gbW9zdCByZXNwZWN0cyBpdCBiZWhhdmVzIGlkZW50aWNhbGx5IHRvIHRoZSBXaW4zMiBHVUkgdmVyc2lvbiwgaW5jbHVkaW5nCi1oYXZpbmcgYSBmbGF0LXN0eWxlIHRvb2xiYXIoISkuIFRoZSBjaGllZiBkaWZmZXJlbmNlczoKK2hhdmluZyBhIGZsYXQtc3R5bGUgdG9vbGJhcighKS4gIFRoZSBjaGllZiBkaWZmZXJlbmNlczoKIAogMSkgQm9sZC9JdGFsaWMgdGV4dCBpcyBub3QgYXZhaWxhYmxlLCB0byBzcGVlZCB1cCByZXBhaW50L3JlZHVjZSByZXNvdXJjZQotICAgdXNhZ2UuIChZb3UgY2FuIHJlLWluc3RhdGUgdGhpcyBieSB1bmRlZmluaW5nIE1TV0lOMTZfRkFTVFRFWFQuKQorICAgdXNhZ2UuICAoWW91IGNhbiByZS1pbnN0YXRlIHRoaXMgYnkgdW5kZWZpbmluZyBNU1dJTjE2X0ZBU1RURVhULikKIDIpIE5vIHRlYXJvZmYgbWVudSBlbXVsYXRpb24uCiAzKSBObyBPTEUgaW50ZXJmYWNlLgotNCkgTm8gbG9uZyBmaWxlbmFtZSBzdXBwb3J0IChvZiBjb3Vyc2UpCis0KSBObyBsb25nIGZpbGVuYW1lIHN1cHBvcnQgKG9mIGNvdXJzZSkuCiA1KSBObyB0b29sdGlwcyBvbiB0b29sYmFyIGJ1dHRvbnMgLSBpbnN0ZWFkIHRoZXkgcHJvZHVjZSBjb21tYW5kLWxpbmUgdGlwcwogICAgbGlrZSBtZW51IGl0ZW1zIGRvLgotNikgTGluZSBsZW5ndGggbGltaXRlZCB0byAzMjc2NyBjaGFyYWN0ZXJzIChsaWtlIDE2LWJpdCBET1MgdmVyc2lvbikKKzYpIExpbmUgbGVuZ3RoIGxpbWl0ZWQgdG8gMzI3NjcgY2hhcmFjdGVycyAobGlrZSAxNi1iaXQgRE9TIHZlcnNpb24pLgogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMS4gU3RhcnRpbmcgdGhlIEdVSQkJCQkJKndpbjE2LXN0YXJ0KgogCiBUaGUgV2luMTYgR1VJIHZlcnNpb24gb2YgVmltIHdpbGwgYWx3YXlzIHN0YXJ0IHRoZSBHVUksIG5vIG1hdHRlciBob3cgeW91Ci1zdGFydCBpdCBvciB3aGF0IGl0J3MgY2FsbGVkLiBUaGVyZSBpcyBubyAnY29uc29sZScgdmVyc2lvbiBhcyBzdWNoLCBidXQgeW91CitzdGFydCBpdCBvciB3aGF0IGl0J3MgY2FsbGVkLiAgVGhlcmUgaXMgbm8gJ2NvbnNvbGUnIHZlcnNpb24gYXMgc3VjaCwgYnV0IHlvdQogY2FuIHVzZSBvbmUgb2YgdGhlIERPUyB2ZXJzaW9ucyBpbiBhIERPUyBib3guCiAKIFRoZSBXaW4xNiBHVUkgaGFzIGFuIGV4dHJhIG1lbnUgaXRlbTogICJXaW5kb3cvU2VsZWN0IEZvbnQiLiAgSXQgYnJpbmdzIHVwIHRoZQotc3RhbmRhcmQgV2luZG93cyBmb250IHNlbGVjdG9yLiBOb3RlIHRoYXQgYm9sZCBhbmQgaXRhbGljIGZvbnRzIGFyZSBub3QKK3N0YW5kYXJkIFdpbmRvd3MgZm9udCBzZWxlY3Rvci4gIE5vdGUgdGhhdCBib2xkIGFuZCBpdGFsaWMgZm9udHMgYXJlIG5vdAogc3VwcG9ydGVkIGluIGFuIGF0dGVtcHQgdG8gbWF4aW1pemUgR0RJIGRyYXdpbmcgc3BlZWQuCiAKIFNldHRpbmcgdGhlIG1lbnUgaGVpZ2h0IGRvZXNuJ3Qgd29yayBmb3IgdGhlIFdpbjE2IEdVSS4KQEAgLTgyLDcgKzgyLDcgQEAKIDQuIFNoZWxsIENvbW1hbmRzCQkJCQkqd2luMTYtc2hlbGwqCiAKIFZpbSBzcGF3bnMgYSBET1Mgd2luZG93IGZvciBleHRlcm5hbCBjb21tYW5kcywgdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBydW4gYW55Ci1ET1MgY29tbWFuZC4gVGhlIHdpbmRvdyB1c2VzIHRoZSBfZGVmYXVsdC5waWYgc2V0dGluZ3MuCitET1MgY29tbWFuZC4gIFRoZSB3aW5kb3cgdXNlcyB0aGUgX2RlZmF1bHQucGlmIHNldHRpbmdzLgogCiAJCQkJCQkJKndpbjE2LSFzdGFydCoKIE5vcm1hbGx5LCBWaW0gd2FpdHMgZm9yIGEgY29tbWFuZCB0byBjb21wbGV0ZSBiZWZvcmUgY29udGludWluZyAodGhpcyBtYWtlcwpAQCAtMTM1LDcgKzEzNSw3IEBACiA2LjEgRGlhbG9ncwogCiBUaGUgZGlhbG9ncyBkaXNwbGF5ZWQgYnkgdGhlICJjb25maXJtIiBmYW1pbHkgKGkuZS4gdGhlICdjb25maXJtJyBvcHRpb24sCi18OmNvbmZpcm18IGNvbW1hbmQgYW5kIHxjb25maXJtKCl8IGZ1bmN0aW9uIGFyZSBHVUktYmFzZWQgcmF0aGVyIHRoYW4gdGhlCit8OmNvbmZpcm18IGNvbW1hbmQgYW5kIHxjb25maXJtKCl8IGZ1bmN0aW9uKSBhcmUgR1VJLWJhc2VkIHJhdGhlciB0aGFuIHRoZQogY29uc29sZS1iYXNlZCBvbmVzIHVzZWQgYnkgb3RoZXIgdmVyc2lvbnMuICBUaGVyZSBpcyBubyBvcHRpb24gdG8gY2hhbmdlIHRoaXMuCiAKIApAQCAtMTU3LDcgKzE1Nyw3IEBACiBVc2luZyB0aGlzIHNob3VsZCBhbHNvIHdvcms6ID4KIAk6dyA+PnBybgogCi1WaW0gc3VwcG9ydHMgYSBudW1iZXIgb2Ygc3RhbmRhcmQgTVMgV2luZG93cyBmZWF0dXJlcy4gU29tZSBvZiB0aGVzZSBhcmUKK1ZpbSBzdXBwb3J0cyBhIG51bWJlciBvZiBzdGFuZGFyZCBNUyBXaW5kb3dzIGZlYXR1cmVzLiAgU29tZSBvZiB0aGVzZSBhcmUKIGRldGFpbGVkIGVsc2V3aGVyZTogc2VlIHwnbW91c2UnfCwgfHdpbjMyLWhpZGRlbi1tZW51c3wuCiBBbHNvIHNlZSB8OnNpbWFsdHwKIApAQCAtMTc2LDExICsxNzYsMTEgQEAKIAogCQkJCQkJCSp3aW4xNi10cnVldHlwZSoKIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IHVzZSBhIHJhc3RlciBmb250IGFuZCBub3QgYSBUcnVlVHlwZQotZml4ZWQtcGl0Y2ggZm9udC4gZS5nLiBVc2UgQ291cmllciwgbm90IENvdXJpZXIgTmV3LiBUaGlzIGlzIG5vdCBqdXN0CitmaXhlZC1waXRjaCBmb250LiAgRS5nLiB1c2UgQ291cmllciwgbm90IENvdXJpZXIgTmV3LiAgVGhpcyBpcyBub3QganVzdAogdG8gdXNlIGxlc3MgcmVzb3VyY2VzIGJ1dCBiZWNhdXNlIHRoZXJlIGFyZSBzdWJ0bGUgYnVncyBpbiB0aGUKLWhhbmRsaW5nIG9mIGZpeGVkLXBpdGNoIFRydWVUeXBlIGluIFdpbjMuMXguIEluIHBhcnRpY3VsYXIsIHdoZW4geW91IG1vdmUKK2hhbmRsaW5nIG9mIGZpeGVkLXBpdGNoIFRydWVUeXBlIGluIFdpbjMuMXguICBJbiBwYXJ0aWN1bGFyLCB3aGVuIHlvdSBtb3ZlCiBhIGJsb2NrIGN1cnNvciBvdmVyIGEgcGlwZSBjaGFyYWN0ZXIgJ3wnLCB0aGUgY3Vyc29yIGlzIGRyYXduIGluIHRoZSB3cm9uZwotc2l6ZSBhbmQgYml0cyBnZXQgbGVmdCBiZWhpbmQuIFRoaXMgaXMgYSBidWcgaW4gdGhlIFdpbjMuMXggR0RJLCBpdCBkb2Vzbid0CitzaXplIGFuZCBiaXRzIGdldCBsZWZ0IGJlaGluZC4gIFRoaXMgaXMgYSBidWcgaW4gdGhlIFdpbjMuMXggR0RJLCBpdCBkb2Vzbid0CiBoYXBwZW4gaWYgeW91IHJ1biB0aGUgZXhlIHVuZGVyIDk1L05ULgogCiAgdmltOnR3PTc4OnN3PTQ6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ndWlfdzMyLnR4dCBiL3J1bnRpbWUvZG9jL2d1aV93MzIudHh0CmluZGV4IDA3ODE3YWIuLjJjNzBlYjcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2d1aV93MzIudHh0CisrKyBiL3J1bnRpbWUvZG9jL2d1aV93MzIudHh0CkBAIC0xLDQgKzEsNCBAQAotKmd1aV93MzIudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEZlYiAxNAorKmd1aV93MzIudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTgsNyArNTgsNyBAQAogCiBUbyBzZXQgVmltIGFzIHRoZSBkZWZhdWx0IGVkaXRvciBmb3IgYSBmaWxlIHR5cGU6CiAxLiBTdGFydCBhIFdpbmRvd3MgRXhwbG9yZXIKLTIuIENob3NlIFZpZXcvT3B0aW9ucyAtPiBGaWxlIFR5cGVzCisyLiBDaG9vc2UgVmlldy9PcHRpb25zIC0+IEZpbGUgVHlwZXMKIDMuIFNlbGVjdCB0aGUgcGF0aCB0byBndmltIGZvciBldmVyeSBmaWxlIHR5cGUgdGhhdCB5b3Ugd2FudCB0byB1c2UgaXQgZm9yLgogICAgKHlvdSBjYW4gYWxzbyB1c2UgdGhyZWUgc3BhY2VzIGluIHRoZSBmaWxlIHR5cGUgZmllbGQsIGZvciBmaWxlcyB3aXRob3V0IGFuCiAgICBleHRlbnNpb24pLgpAQCAtMjYyLDggKzI2Miw4IEBACiAKIEluIFdpbmRvd3MgOTUsIHRoZSB3aW5kb3cgaW4gd2hpY2ggdGhlIGNvbW1hbmRzIGFyZSBleGVjdXRlZCBpcyBhbHdheXMgMjV4ODAKIGNoYXJhY3RlcnMsIHRvIGJlIGFzIERPUyBjb21wYXRpYmxlIGFzIHBvc3NpYmxlICh0aGlzIG1hdHRlcnMhKS4gIFRoZSBkZWZhdWx0Ci1zeXN0ZW0gZm9udCBpcyB1c2VkLiBPbiBOVCwgdGhlIHdpbmRvdyB3aWxsIGJlIHRoZSBkZWZhdWx0IHlvdSBoYXZlIHNldCB1cCBmb3IKLSJDb25zb2xlIiBpbiBDb250cm9sIFBhbmVsLiBPbiBXaW4zMnMsIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBET1MgYm94IGFyZQorc3lzdGVtIGZvbnQgaXMgdXNlZC4gIE9uIE5ULCB0aGUgd2luZG93IHdpbGwgYmUgdGhlIGRlZmF1bHQgeW91IGhhdmUgc2V0IHVwIGZvcgorIkNvbnNvbGUiIGluIENvbnRyb2wgUGFuZWwuICBPbiBXaW4zMnMsIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBET1MgYm94IGFyZQogZGV0ZXJtaW5lZCBieSBfZGVmYXVsdC5waWYgaW4gdGhlIHdpbmRvd3MgZGlyZWN0b3J5LgogCiAJCQkJCQkJKm1zZG9zLW1vZGUqCkBAIC0yODMsNyArMjgzLDcgQEAKIHdhbnQgVmltIHRvIHN0YXJ0IGEgcHJvZ3JhbSBhbmQgcmV0dXJuIGltbWVkaWF0ZWx5LCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nCiBzeW50YXggb24gVzk1ICYgTlQ6ID4KIAk6IXN0YXJ0IHtjb21tYW5kfQotT24gV2luMzJzLCB5b3Ugd2lsbCBoYXZlIHRvIGdvIHRvIGFub3RoZXIgd2luZG93IGluc3RlYWQuIERvbid0IGZvcmdldCB0aGF0CitPbiBXaW4zMnMsIHlvdSB3aWxsIGhhdmUgdG8gZ28gdG8gYW5vdGhlciB3aW5kb3cgaW5zdGVhZC4gIERvbid0IGZvcmdldCB0aGF0CiB5b3UgbXVzdCB0ZWxsIFdpbmRvd3MgMy4xeCB0byBrZWVwIGV4ZWN1dGluZyBhIERPUyBjb21tYW5kIGluIHRoZSBiYWNrZ3JvdW5kCiB3aGlsZSB5b3Ugc3dpdGNoIGJhY2sgdG8gVmltLgogCkBAIC0yOTUsNyArMjk1LDcgQEAKIEFkZGl0aW9uYWxseSB0aGUgc3lzdGVtIGNvbmZpZ3VyZWQgY29sb3JzIGNhbiBhbHNvIGJlIHVzZWQuICBUaGVzZSBhcmUga25vd24KIGJ5IHRoZSBuYW1lcyBTeXNfWFhYLCB3aGVyZSBYWFggaXMgdGhlIGFwcHJvcHJpYXRlIHN5c3RlbSBjb2xvciBuYW1lLCBmcm9tIHRoZQogZm9sbG93aW5nIGxpc3QgKHNlZSB0aGUgV2luMzIgZG9jdW1lbnRhdGlvbiBmb3IgZnVsbCBkZXNjcmlwdGlvbnMpLiAgQ2FzZSBpcwotaWdub3JlZC4gbm90ZTogT24gV2luMzJzIG5vdCBhbGwgb2YgdGhlc2UgY29sb3JzIGFyZSBzdXBwb3J0ZWQuCitpZ25vcmVkLiAgTm90ZTogT24gV2luMzJzIG5vdCBhbGwgb2YgdGhlc2UgY29sb3JzIGFyZSBzdXBwb3J0ZWQuCiAKIFN5c18zRERLU2hhZG93CQlTeXNfM0RGYWNlCQkJU3lzX0JUTkZhY2UKIFN5c18zREhpbGlnaHQJCVN5c18zREhpZ2hsaWdodAkJCVN5c19CVE5IaWxpZ2h0CkBAIC0zNjYsNyArMzY2LDcgQEAKIFRoaXMgaXMgbW9zdCB1c2VmdWwgaWYgeW91IGZpbmQgeW91cnNlbGYgdXNpbmcgYSBjb21tYW5kIGJ1cmllZCBpbiBhIHN1Yi1tZW51CiBvdmVyIGFuZCBvdmVyIGFnYWluLgogVGhlIHRlYXJvZmYgbWVudXMgY2FuIGJlIHBvc2l0aW9uZWQgd2hlcmUgeW91IGxpa2UsIGFuZCBhbHdheXMgc3RheSBqdXN0IGFib3ZlCi10aGUgTWFpbiBWaW0gd2luZG93LiBZb3UgY2FuIGdldCByaWQgb2YgdGhlbSBieSBjbG9zaW5nIHRoZW0gYXMgdXN1YWw7IHRoZXkKK3RoZSBNYWluIFZpbSB3aW5kb3cuICBZb3UgY2FuIGdldCByaWQgb2YgdGhlbSBieSBjbG9zaW5nIHRoZW0gYXMgdXN1YWw7IHRoZXkKIGFsc28gb2YgY291cnNlIGNsb3NlIHdoZW4geW91IGV4aXQgVmltLgogCiAJCQkJCQkJKjp0ZWFyb2ZmKiAqOnRlKgpAQCAtNDAwLDcgKzQwMCw3IEBACiAgICAgICBiKSBQYXJhbWV0ZXJzIGFyZSBzZXBhcmF0ZWQgYnkgd2hpdGUgc3BhY2UuCiAgICAgICBjKSBBIHBhcmFtZXRlciBjYW4gYmUgZW5jbG9zZWQgaW4gZG91YmxlIHF1b3RlcyB0byBpbmNsdWRlIHdoaXRlIHNwYWNlLgogICAgICAgZCkgQSBzZXF1ZW5jZSBvZiB6ZXJvIG9yIG1vcmUgYmFja3NsYXNoZXMgKFwpIGFuZCBhIGRvdWJsZSBxdW90ZSAoIikKLQlpcyBzcGVjaWFsLiBUaGUgZWZmZWN0aXZlIG51bWJlciBvZiBiYWNrc2xhc2hlcyBpcyBoYWx2ZWQsIHJvdW5kZWQKKwlpcyBzcGVjaWFsLiAgVGhlIGVmZmVjdGl2ZSBudW1iZXIgb2YgYmFja3NsYXNoZXMgaXMgaGFsdmVkLCByb3VuZGVkCiAJZG93bi4gIEFuIGV2ZW4gbnVtYmVyIG9mIGJhY2tzbGFzaGVzIHJldmVyc2VzIHRoZSBhY2NlcHRhYmlsaXR5IG9mCiAJc3BhY2VzIGFuZCB0YWJzLCBhbiBvZGQgbnVtYmVyIG9mIGJhY2tzbGFzaGVzIHByb2R1Y2VzIGEgbGl0ZXJhbAogCWRvdWJsZSBxdW90ZS4KQEAgLTQyOSw3ICs0MjksNyBAQAogcHJpbnRlciBpbnN0YWxsZWQgdGhpcyBzaG91bGQgYWxzbyB3b3JrOiA+CiAJOncgPj5wcm4KIAotVmltIHN1cHBvcnRzIGEgbnVtYmVyIG9mIHN0YW5kYXJkIE1TIFdpbmRvd3MgZmVhdHVyZXMuIFNvbWUgb2YgdGhlc2UgYXJlCitWaW0gc3VwcG9ydHMgYSBudW1iZXIgb2Ygc3RhbmRhcmQgTVMgV2luZG93cyBmZWF0dXJlcy4gIFNvbWUgb2YgdGhlc2UgYXJlCiBkZXRhaWxlZCBlbHNld2hlcmU6IHNlZSB8J21vdXNlJ3wsIHx3aW4zMi1oaWRkZW4tbWVudXN8LgogCiAJCQkJCQkJKmRyYWctbi1kcm9wLXdpbjMyKgpAQCAtNDQxLDcgKzQ0MSw3IEBACiAJCQl7bm90IGluIFZpfSB7b25seSBmb3IgV2luMzIgdmVyc2lvbnN9CiAKIE5vcm1hbGx5LCBWaW0gdGFrZXMgY29udHJvbCBvZiBhbGwgQWx0LTxLZXk+IGNvbWJpbmF0aW9ucywgdG8gaW5jcmVhc2UgdGhlCi1udW1iZXIgb2YgcG9zc2libGUgbWFwcGluZ3MuIFRoaXMgY2xhc2hlcyB3aXRoIHRoZSBzdGFuZGFyZCB1c2Ugb2YgQWx0IGFzIHRoZQorbnVtYmVyIG9mIHBvc3NpYmxlIG1hcHBpbmdzLiAgVGhpcyBjbGFzaGVzIHdpdGggdGhlIHN0YW5kYXJkIHVzZSBvZiBBbHQgYXMgdGhlCiBrZXkgZm9yIGFjY2Vzc2luZyBtZW51cy4KIFRoZSBxdWljayB3YXkgb2YgZ2V0dGluZyBzdGFuZGFyZCBiZWhhdmlvciBpcyB0byBzZXQgdGhlICd3aW5hbHRrZXlzJyBvcHRpb24KIHRvICJ5ZXMiLiAgVGhpcyBob3dldmVyIHByZXZlbnRzIHlvdSBmcm9tIG1hcHBpbmcgQWx0IGtleXMgYXQgYWxsLgpAQCAtNDQ5LDE4ICs0NDksMTggQEAKIGhhbmRsZWQgYnkgd2luZG93cywgb3RoZXIgQUxUIGtleXMgY2FuIGJlIG1hcHBlZC4gIFRoaXMgZG9lc24ndCBhbGxvdyBhCiBkZXBlbmRlbmN5IG9uIHRoZSBjdXJyZW50IHN0YXRlIHRob3VnaC4KIFRvIGdldCByb3VuZCB0aGlzLCB0aGUgOnNpbWFsdCBjb21tYW5kIGFsbG93cyBWaW0gKHdoZW4gJ3dpbmFsdGtleXMnIGlzIG5vdAotInllcyIpIHRvIGZha2UgYSBXaW5kb3dzLXN0eWxlIEFsdCBrZXlwcmVzcy4gWW91IGNhbiB1c2UgdGhpcyB0byBtYXAgQWx0IGtleQorInllcyIpIHRvIGZha2UgYSBXaW5kb3dzLXN0eWxlIEFsdCBrZXlwcmVzcy4gIFlvdSBjYW4gdXNlIHRoaXMgdG8gbWFwIEFsdCBrZXkKIGNvbWJpbmF0aW9ucyAob3IgYW55dGhpbmcgZWxzZSBmb3IgdGhhdCBtYXR0ZXIpIHRvIHByb2R1Y2Ugc3RhbmRhcmQgV2luZG93cwotYWN0aW9ucy4gSGVyZSBhcmUgc29tZSBleGFtcGxlczogPgorYWN0aW9ucy4gIEhlcmUgYXJlIHNvbWUgZXhhbXBsZXM6ID4KIAogCTptYXAgPE0tZj4gOnNpbWFsdCBmPENSPgogVGhpcyBtYWtlcyBBbHQtRiBwb3AgZG93biB0aGUgJ0ZpbGUnIG1lbnUgKHdpdGggdGhlIHN0b2NrIE1lbnUudmltKSBieQogc2ltdWxhdGluZyB0aGUga2V5c3Ryb2tlcyBBbHQsIEYuID4KIAk6bWFwIDxNLVNwYWNlPiA6c2ltYWx0IH48Q1I+Ci1UaGlzIG1hcHMgQWx0LVNwYWNlIHRvIHBvcCBkb3duIHRoZSBzeXN0ZW0gbWVudSBmb3IgdGhlIFZpbSB3aW5kb3cuIE5vdGUgdGhhdAorVGhpcyBtYXBzIEFsdC1TcGFjZSB0byBwb3AgZG93biB0aGUgc3lzdGVtIG1lbnUgZm9yIHRoZSBWaW0gd2luZG93LiAgTm90ZSB0aGF0CiB+IGlzIHVzZWQgYnkgc2ltYWx0IHRvIHJlcHJlc2VudCB0aGUgPFNwYWNlPiBjaGFyYWN0ZXIuID4KIAk6bWFwIDxDLW4+IDpzaW1hbHQgfm48Q1I+Ci1NYXBzIENvbnRyb2wtTiB0byBwcm9kdWNlIHRoZSBrZXlzIEFsdC1TcGFjZSBmb2xsb3dlZCBieSBOLiBUaGlzIG1pbmltaXplcyB0aGUKK01hcHMgQ29udHJvbC1OIHRvIHByb2R1Y2UgdGhlIGtleXMgQWx0LVNwYWNlIGZvbGxvd2VkIGJ5IE4uICBUaGlzIG1pbmltaXplcyB0aGUKIFZpbSB3aW5kb3cgdmlhIHRoZSBzeXN0ZW0gbWVudS4KIAogCQkJCQkJKmludGVsbGltb3VzZS13aGVlbC1wcm9ibGVtcyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0IGIvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKaW5kZXggMmNiYzRjOS4uZDcxN2JmZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKKysrIGIvcnVudGltZS9kb2MvZ3VpX3gxMS50eHQKQEAgLTEsNCArMSw0IEBACi0qZ3VpX3gxMS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDI5CisqZ3VpX3gxMS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xMTMsNyArMTEzLDcgQEAKIHBpeGVsIHNpemUhICBBZGRpdGlvbmFsbHksIHRoZSBwb3NpdGlvbmluZyBvZiB0aGUgZm9udHMgbXVzdCBiZSB0aGUgc2FtZQogKGFzY2VudCBhbmQgZGVzY2VudCkuICBZb3UgY2FuIGNoZWNrIHRoaXMgd2l0aCAieGxzZm9udHMgLWwge2ZvbnRuYW1lfSIuCiAKLUlmIGFueSBvZiB0aGVzZSB0aGluZ3MgYXJlIGFsc28gc2V0IHdpdGggVmltIGNvbW1hbmRzLCBlZyB3aXRoCitJZiBhbnkgb2YgdGhlc2UgdGhpbmdzIGFyZSBhbHNvIHNldCB3aXRoIFZpbSBjb21tYW5kcywgZS5nLiB3aXRoCiAiOnNldCBndWlmb250PVNjcmVlbjE1IiwgdGhlbiB0aGlzIHdpbGwgb3ZlcnJpZGUgdGhlIFggcmVzb3VyY2VzIChjdXJyZW50bHkKICdndWlmb250JyBpcyB0aGUgb25seSBvcHRpb24gdGhhdCBpcyBzdXBwb3J0ZWQpLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oYW5ndWxpbi50eHQgYi9ydW50aW1lL2RvYy9oYW5ndWxpbi50eHQKaW5kZXggMmZhZGI1Yi4uNzQ4N2U2MiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaGFuZ3VsaW4udHh0CisrKyBiL3J1bnRpbWUvZG9jL2hhbmd1bGluLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpoYW5ndWxpbi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwMSBTZXAgMDMKKypoYW5ndWxpbi50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQ2hpLURlb2sgSHdhbmcgYW5kIFN1bmctSHl1biBOYW0KQEAgLTcsMTcgKzcsMTcgQEAKIC0tLS0tLS0tLS0tLQogSXQgaXMgdG8gaW5wdXQgaGFuZ3VsLCB0aGUgS29yZWFuIGxhbmd1YWdlLCB3aXRoIFZJTSBHVUkgdmVyc2lvbi4KIElmIHlvdSBoYXZlIGEgWElNIHByb2dyYW0sIHlvdSBjYW4gdXNlIGFub3RoZXIgfCt4aW18IGZlYXR1cmUuCi1CYXNpY2FsbHksIGl0IGlzIGZvciB3aG9tIGhhcyBubyBYSU0gcHJvZ3JhbS4KK0Jhc2ljYWxseSwgaXQgaXMgZm9yIGFueWJvZHkgd2hvIGhhcyBubyBYSU0gcHJvZ3JhbS4KIAogQ29tcGlsZQogLS0tLS0tLQotTmV4dCBpcyBhIGJhc2ljIG9wdGlvbi4gWW91IGNhbiBhZGQgYW55IG90aGVyIGNvbmZpZ3VyZSBvcHRpb24uID4KK05leHQgaXMgYSBiYXNpYyBvcHRpb24uICBZb3UgY2FuIGFkZCBhbnkgb3RoZXIgY29uZmlndXJlIG9wdGlvbi4gPgogCiAgICAuL2NvbmZpZ3VyZSAtLXdpdGgteCAtLWVuYWJsZS1tdWx0aWJ5dGUgLS1lbmFibGUtZm9udHNldCAtLWVuYWJsZS1oYW5ndWxpbnB1dAogCi1BbmQgeW91IHNob3VsZCBjaGVjayB0aGUgZmVhdHVyZS5oLiBJZiB8K2hhbmd1bF9pbnB1dHwgZmVhdHVyZSBpcyBlbmFibGVkCitBbmQgeW91IHNob3VsZCBjaGVjayBmZWF0dXJlLmguICBJZiB8K2hhbmd1bF9pbnB1dHwgZmVhdHVyZSBpcyBlbmFibGVkCiBieSBjb25maWd1cmUsIHlvdSBjYW4gc2VsZWN0IG1vcmUgb3B0aW9ucyBzdWNoIGFzIGtleWJvYXJkIHR5cGUsIDIgYnVsc2lrCi1vciAzIGJ1bHNpay4gWW91IGNhbiBmaW5kIGtleXdvcmRzIGxpa2UgbmV4dCBpbiB0aGVyZS4gPgorb3IgMyBidWxzaWsuICBZb3UgY2FuIGZpbmQga2V5d29yZHMgbGlrZSBuZXh0IGluIHRoZXJlLiA+CiAKIAkjZGVmaW5lIEhBTkdVTF9ERUZBVUxUX0tFWUJPQVJEIDIKIAkjZGVmaW5lIEVTQ19DSEdfVE9fRU5HX01PREUKQEAgLTM4LDcgKzM4LDcgQEAKIEtleWJvYXJkCiAtLS0tLS0tLQogWW91IGNhbiBjaGFuZ2Uga2V5Ym9hcmQgdHlwZSAoMiBidWxzaWsgb3IgMyBidWxzaWspIHVzaW5nIFZJTV9LRVlCT0FSRAotb3IgSEFOR1VMX0tFWUJPQVJEX1RZUEUgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBGb3Igc2gsIGp1c3QgZG8gKDIgYnVsc2lrKTogPgorb3IgSEFOR1VMX0tFWUJPQVJEX1RZUEUgZW52aXJvbm1lbnQgdmFyaWFibGVzLiAgRm9yIHNoLCBqdXN0IGRvICgyIGJ1bHNpayk6ID4KIAogICAgIGV4cG9ydCBWSU1fS0VZQk9BUkQ9IjIiCiBvciA+CkBAIC02Nyw5ICs2Nyw5IEBACiAKIGF0dGVudGlvbiEgdGhlICwgKGNvbW1hKSBvciA7IChzZW1pY29sb24pCiAKLUFuZCB0aGVyZSBzaG91bGQgYmUgbm8gJzpzZXQgZ3VpZm9udCcuIElmIGl0IGV4aXN0cywgdGhlbiBHdmltIGlnbm9yZXMKLSc6c2V0IGd1aWZvbnRzZXQnLiBJdCBtZWFucyBWSU0gcnVucyB3aXRob3V0IGZvbnRzZXQgc3VwcG9ydGluZy4KLVNvLCB5b3UgY2FuIHNlZSBvbmx5IEVuZ2xpc2guIEhhbmd1bCBkb2VzIG5vdCBiZSBjb3JyZWN0bHkgZGlzcGxheWVkLgorQW5kIHRoZXJlIHNob3VsZCBiZSBubyAnOnNldCBndWlmb250Jy4gIElmIGl0IGV4aXN0cywgdGhlbiBHdmltIGlnbm9yZXMKKyc6c2V0IGd1aWZvbnRzZXQnLiAgSXQgbWVhbnMgVklNIHJ1bnMgd2l0aG91dCBmb250c2V0IHN1cHBvcnRpbmcuCitTbywgeW91IGNhbiBzZWUgb25seSBFbmdsaXNoLiAgSGFuZ3VsIGRvZXMgbm90IGJlIGNvcnJlY3RseSBkaXNwbGF5ZWQuCiAKIEFmdGVyICdmb250c2V0JyBmZWF0dXJlIGlzIGVuYWJsZWQsIFZJTSBkb2VzIG5vdCBhbGxvdyB1c2luZyAnZm9udCcuCiBGb3IgZXhhbXBsZSwgaWYgeW91IHVzZSA+CkBAIC03OCwxNyArNzgsMTcgQEAKICAgIDpoaSBDb21tZW50IGd1aWZnPUN5YW4gZm9udD1hbm90aGVyX2VuZ19mb250LGFub3RoZXJfeW91cl9mb250CiBJZiB5b3UganVzdCBkbyA+CiAgICA6aGkgQ29tbWVudCBmb250PWFub3RoZXJfZW5nX2ZvbnQKLXRoZW4geW91IGNhbiBzZWUgYSBHT09EIGVycm9yIG1lc3NhZ2UuIEJlIGNhcmVmdWwhCit0aGVuIHlvdSBjYW4gc2VlIGEgR09PRCBlcnJvciBtZXNzYWdlLiAgQmUgY2FyZWZ1bCEKIAogaGFuZ3VsX2ZvbnQgd2lkdGggc2hvdWxkIGJlIHR3aWNlIHRoYW4gZW5nbGlzaF9mb250IHdpZHRoLgogCiBVbnN1cHBvcnRlZCBGZWF0dXJlCiAtLS0tLS0tLS0tLS0tLS0tLS0tCi1Kb2hhYiBmb250IG5vdCB5ZXQgc3VwcG9ydGVkLiBBbmQgSSBkb24ndCBoYXZlIGFueSBwbGFuLgorSm9oYWIgZm9udCBub3QgeWV0IHN1cHBvcnRlZC4gIEFuZCBJIGRvbid0IGhhdmUgYW55IHBsYW4uCiBJZiB5b3UgcmVhbGx5IHdhbnQgdG8gdXNlIGpvaGFiIGZvbnQsIHlvdSBjYW4gdXNlIHRoZQogaGFuZ3VsZHJhdy5jIGluIGdhdSBwYWNrYWdlLgogCi1IYW5qYSBpbnB1dCBub3QgeWV0IHN1cHBvcnRlZC4gQW5kIEkgZG9uJ3QgaGF2ZSBhbnkgcGxhbi4KK0hhbmphIGlucHV0IG5vdCB5ZXQgc3VwcG9ydGVkLiAgQW5kIEkgZG9uJ3QgaGF2ZSBhbnkgcGxhbi4KIElmIHlvdSByZWFsbHkgd2FudCB0byBpbnB1dCBoYW5qYSwganVzdCB1c2UgVklNIHdpdGggaGFudGVybS4KIAogQnVnIG9yIENvbW1lbnQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX2NzY29wLnR4dCBiL3J1bnRpbWUvZG9jL2lmX2NzY29wLnR4dAppbmRleCAzNjhmYmQ2Li4zMmJjODRmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9jc2NvcC50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfY3Njb3AudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX2NzY29wLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE9jdCAyMQorKmlmX2NzY29wLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBBbmR5IEthaG4KQEAgLTIzOSwxMiArMjM5LDEyIEBACiAJCQkJCSAgICAqY3Njb3BlcXVpY2tmaXgqICpjc3FmKiAqRTQ2OSoKIHtub3QgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgfCtxdWlja2ZpeHwgZmVhdHVyZX0KICdjc2NvcGVxdWlja2ZpeCcgc3BlY2lmaWVzIHdoZXRoZXIgdG8gdXNlIHF1aWNrZml4IHdpbmRvdyB0byBzaG93IGNzY29wZQotcmVzdWx0cy4gVGhpcyBpcyBhIGxpc3Qgb2YgY29tbWEtc2VwYXJhdGVkIHZhbHVlcy4gRWFjaCBpdGVtIGNvbnNpc3RzIG9mCityZXN1bHRzLiAgVGhpcyBpcyBhIGxpc3Qgb2YgY29tbWEtc2VwYXJhdGVkIHZhbHVlcy4gRWFjaCBpdGVtIGNvbnNpc3RzIG9mCiB8Y3Njb3BlLWZpbmR8IGNvbW1hbmQgKHMsIGcsIGQsIGMsIHQsIGUsIGYgb3IgaSkgYW5kIGZsYWcgKCssIC0gb3IgMCkuCiAnKycgaW5kaWNhdGVzIHRoYXQgcmVzdWx0cyBtdXN0IGJlIGFwcGVuZGVkIHRvIHF1aWNrZml4IHdpbmRvdywKICctJyBpbXBsaWVzIHByZXZpb3VzIHJlc3VsdHMgY2xlYXJhbmNlLCAnMCcgb3IgY29tbWFuZCBhYnNlbmNlIC0gZG9uJ3QgdXNlCi1xdWlja2ZpeC4gU2VhcmNoIGlzIHBlcmZvcm1lZCBmcm9tIHN0YXJ0IHVudGlsIGZpcnN0IGNvbW1hbmQgb2NjdXJyZW5jZS4KLVRoZSBkZWZhdWx0IHZhbHVlIGlzICIiIChkb24ndCB1c2UgcXVpY2tmaXggYW55d2F5KS4gVGhlIGZvbGxvd2luZyB2YWx1ZQorcXVpY2tmaXguICBTZWFyY2ggaXMgcGVyZm9ybWVkIGZyb20gc3RhcnQgdW50aWwgZmlyc3QgY29tbWFuZCBvY2N1cnJlbmNlLgorVGhlIGRlZmF1bHQgdmFsdWUgaXMgIiIgKGRvbid0IHVzZSBxdWlja2ZpeCBhbnl3YXkpLiAgVGhlIGZvbGxvd2luZyB2YWx1ZQogc2VlbXMgdG8gYmUgdXNlZnVsOiA+CiAJOnNldCBjc2NvcGVxdWlja2ZpeD1zLSxjLSxkLSxpLSx0LSxlLQogPApAQCAtNDcyLDcgKzQ3Miw3IEBACiAJCQkJCQkJKmNzY29wZS13aW4zMioKIEZvciBhIGNzY29wZSB2ZXJzaW9uIGZvciBXaW4zMiBzZWU6IGh0dHA6Ly9pYW1waGV0Lm5tLnJ1L2NzY29wZS9pbmRleC5odG1sCiAKLVdpbjMyIHN1cHBvcnQgd2FzIGFkZGVkIGJ5IFNlcmdleSBLaG9yZXYgPHNlcmdleS5raG9yZXZAZ21haWwuY29tPi4gQ29udGFjdAorV2luMzIgc3VwcG9ydCB3YXMgYWRkZWQgYnkgU2VyZ2V5IEtob3JldiA8c2VyZ2V5Lmtob3JldkBnbWFpbC5jb20+LiAgQ29udGFjdAogaGltIGlmIHlvdSBoYXZlIFdpbjMyLXNwZWNpZmljIGlzc3Vlcy4KIAogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX29sZS50eHQgYi9ydW50aW1lL2RvYy9pZl9vbGUudHh0CmluZGV4IDA2ZTViNDIuLjM2ZWZlNDEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX29sZS50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfb2xlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9vbGUudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBEZWMgMDkKKyppZl9vbGUudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUGF1bCBNb29yZQpAQCAtMjIsNyArMjIsNyBAQAogMS4gQWN0aXZhdGlvbgkJCQkJCSpvbGUtYWN0aXZhdGlvbioKIAogVmltIGFjdHMgYXMgYW4gT0xFIGF1dG9tYXRpb24gc2VydmVyLCBhY2Nlc3NpYmxlIGZyb20gYW55IGF1dG9tYXRpb24gY2xpZW50LAotZm9yIGV4YW1wbGUsIFZpc3VhbCBCYXNpYywgUHl0aG9uLCBvciBQZXJsLiBUaGUgVmltIGFwcGxpY2F0aW9uICJuYW1lIiAoaXRzCitmb3IgZXhhbXBsZSwgVmlzdWFsIEJhc2ljLCBQeXRob24sIG9yIFBlcmwuICBUaGUgVmltIGFwcGxpY2F0aW9uICJuYW1lIiAoaXRzCiAiUHJvZ0lEIiwgaW4gT0xFIHRlcm1pbm9sb2d5KSBpcyAiVmltLkFwcGxpY2F0aW9uIi4KIAogSGVuY2UsIGluIG9yZGVyIHRvIHN0YXJ0IGEgVmltIGluc3RhbmNlIChvciBjb25uZWN0IHRvIGFuIGFscmVhZHkgcnVubmluZwpAQCAtNDEsOCArNDEsOCBAQAogCSR2aW0gPSBuZXcgV2luMzI6Ok9MRSAnVmltLkFwcGxpY2F0aW9uJzsKIAogVmltIGRvZXMgbm90IHN1cHBvcnQgYWN0aW5nIGFzIGEgImhpZGRlbiIgT0xFIHNlcnZlciwgbGlrZSBzb21lIG90aGVyIE9MRQotQXV0b21hdGlvbiBzZXJ2ZXJzLiBXaGVuIGEgY2xpZW50IHN0YXJ0cyB1cCBhbiBpbnN0YW5jZSBvZiBWaW0sIHRoYXQgaW5zdGFuY2UKLWlzIGltbWVkaWF0ZWx5IHZpc2libGUuIFNpbXBseSBjbG9zaW5nIHRoZSBPTEUgY29ubmVjdGlvbiB0byB0aGUgVmltIGluc3RhbmNlCitBdXRvbWF0aW9uIHNlcnZlcnMuICBXaGVuIGEgY2xpZW50IHN0YXJ0cyB1cCBhbiBpbnN0YW5jZSBvZiBWaW0sIHRoYXQgaW5zdGFuY2UKK2lzIGltbWVkaWF0ZWx5IHZpc2libGUuICBTaW1wbHkgY2xvc2luZyB0aGUgT0xFIGNvbm5lY3Rpb24gdG8gdGhlIFZpbSBpbnN0YW5jZQogaXMgbm90IGVub3VnaCB0byBzaHV0IGRvd24gdGhlIFZpbSBpbnN0YW5jZSAtIGl0IGlzIG5lY2Vzc2FyeSB0byBleHBsaWNpdGx5CiBleGVjdXRlIGEgcXVpdCBjb21tYW5kIChmb3IgZXhhbXBsZSwgOnFhISwgOndxYSkuCiAKQEAgLTU0LDE3ICs1NCwxNyBAQAogCQkJCQkJCSpvbGUtc2VuZGtleXMqCiBTZW5kS2V5cyhrZXlzKQkJRXhlY3V0ZSBhIHNlcmllcyBvZiBrZXlzLgogCi1UaGlzIG1ldGhvZCB0YWtlcyBhIHNpbmdsZSBwYXJhbWV0ZXIsIHdoaWNoIGlzIGEgc3RyaW5nIG9mIGtleXN0cm9rZXMuIFRoZXNlCitUaGlzIG1ldGhvZCB0YWtlcyBhIHNpbmdsZSBwYXJhbWV0ZXIsIHdoaWNoIGlzIGEgc3RyaW5nIG9mIGtleXN0cm9rZXMuICBUaGVzZQoga2V5c3Ryb2tlcyBhcmUgZXhlY3V0ZWQgZXhhY3RseSBhcyBpZiB0aGV5IGhhZCBiZWVuIHR5cGVzIGluIGF0IHRoZSBrZXlib2FyZC4KIFNwZWNpYWwga2V5cyBjYW4gYmUgZ2l2ZW4gdXNpbmcgdGhlaXIgPC4uPiBuYW1lcywgYXMgZm9yIHRoZSByaWdodCBoYW5kIHNpZGUKLW9mIGEgbWFwcGluZy4gTm90ZTogRXhlY3V0aW9uIG9mIHRoZSBFeCAibm9ybWFsIiBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQgLQorb2YgYSBtYXBwaW5nLiAgTm90ZTogRXhlY3V0aW9uIG9mIHRoZSBFeCAibm9ybWFsIiBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQgLQogc2VlIGJlbG93IHxvbGUtbm9ybWFsfC4KIAogRXhhbXBsZXMgKFZpc3VhbCBCYXNpYyBzeW50YXgpID4KIAlWaW0uU2VuZEtleXMgImloZWxsbzxFc2M+IgogCVZpbS5TZW5kS2V5cyAibWExR1Y0anlgYSIKIAotVGhlc2UgZXhhbXBsZXMgYXNzdW1lIHRoYXQgVmltIHN0YXJ0cyBpbiBOb3JtYWwgbW9kZS4gVG8gZm9yY2UgTm9ybWFsIG1vZGUsCitUaGVzZSBleGFtcGxlcyBhc3N1bWUgdGhhdCBWaW0gc3RhcnRzIGluIE5vcm1hbCBtb2RlLiAgVG8gZm9yY2UgTm9ybWFsIG1vZGUsCiBzdGFydCB0aGUga2V5IHNlcXVlbmNlIHdpdGggQ1RSTC1cIENUUkwtTiBhcyBpbiA+CiAKIAlWaW0uU2VuZEtleXMgIjxDLVw+PEMtTj5paGVsbG88RXNjPiIKQEAgLTEwOSw3ICsxMDksNyBAQAogCiBEdWUgdG8gdGhlIHdheSBWaW0gcHJvY2Vzc2VzIE9MRSBBdXRvbWF0aW9uIGNvbW1hbmRzLCBjb21iaW5lZCB3aXRoIHRoZSBtZXRob2QKIG9mIGltcGxlbWVudGF0aW9uIG9mIHRoZSBleCBjb21tYW5kIDpub3JtYWwsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBleGVjdXRlIHRoZQotOm5vcm1hbCBjb21tYW5kIHZpYSBPTEUgYXV0b21hdGlvbi4gQW55IGF0dGVtcHQgdG8gZG8gc28gd2lsbCBmYWlsLCBwcm9iYWJseQorOm5vcm1hbCBjb21tYW5kIHZpYSBPTEUgYXV0b21hdGlvbi4gIEFueSBhdHRlbXB0IHRvIGRvIHNvIHdpbGwgZmFpbCwgcHJvYmFibHkKIGhhcm1sZXNzbHksIGFsdGhvdWdoIHBvc3NpYmx5IGluIHVucHJlZGljdGFibGUgd2F5cy4KIAogVGhlcmUgaXMgY3VycmVudGx5IG5vIHByYWN0aWNhbCB3YXkgdG8gdHJhcCB0aGlzIHNpdHVhdGlvbiwgYW5kIHVzZXJzIG11c3QKQEAgLTExOCw3ICsxMTgsNyBAQAogNC4gUmVnaXN0cmF0aW9uCQkJCQkqb2xlLXJlZ2lzdHJhdGlvbiogKkUyNDMqCiAKIEJlZm9yZSBWaW0gd2lsbCBhY3QgYXMgYW4gT0xFIHNlcnZlciwgaXQgbXVzdCBiZSByZWdpc3RlcmVkIGluIHRoZSBzeXN0ZW0KLXJlZ2lzdHJ5LiBJbiBvcmRlciB0byBkbyB0aGlzLCBWaW0gc2hvdWxkIGJlIHJ1biB3aXRoIGEgc2luZ2xlIHBhcmFtZXRlciBvZgorcmVnaXN0cnkuICBJbiBvcmRlciB0byBkbyB0aGlzLCBWaW0gc2hvdWxkIGJlIHJ1biB3aXRoIGEgc2luZ2xlIHBhcmFtZXRlciBvZgogIi1yZWdpc3RlciIuCiAJCQkJCQkJKi1yZWdpc3RlciogID4KIAlndmltIC1yZWdpc3RlcgpAQCAtMTMxLDkgKzEzMSw5IEBACiByZWdpc3RyeSBpcyBub3Qgd3JpdGFibGUuICBJZiB5b3UgcnVuIGludG8gdGhpcyBwcm9ibGVtIHlvdSBuZWVkIHRvIHJ1biBndmltCiBhcyAiQWRtaW5pc3RyYXRvciIuCiAKLU9uY2UgdmltIGlzIHJlZ2lzdGVyZWQsIHRoZSBhcHBsaWNhdGlvbiBwYXRoIGlzIHN0b3JlZCBpbiB0aGUgcmVnaXN0cnkuIEJlZm9yZQotbW92aW5nLCBkZWxldGluZywgb3IgdXBncmFkaW5nIFZpbSwgdGhlIHJlZ2lzdHJ5IGVudHJpZXMgc2hvdWxkIGJlIHJlbW92ZWQKLXVzaW5nIHRoZSAiLXVucmVnaXN0ZXIiIHN3aXRjaC4KK09uY2UgdmltIGlzIHJlZ2lzdGVyZWQsIHRoZSBhcHBsaWNhdGlvbiBwYXRoIGlzIHN0b3JlZCBpbiB0aGUgcmVnaXN0cnkuCitCZWZvcmUgbW92aW5nLCBkZWxldGluZywgb3IgdXBncmFkaW5nIFZpbSwgdGhlIHJlZ2lzdHJ5IGVudHJpZXMgc2hvdWxkIGJlCityZW1vdmVkIHVzaW5nIHRoZSAiLXVucmVnaXN0ZXIiIHN3aXRjaC4KIAkJCQkJCQkqLXVucmVnaXN0ZXIqICA+CiAJZ3ZpbSAtdW5yZWdpc3RlcgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9wZXJsLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3BlcmwudHh0CmluZGV4IDBkNjI3ZGEuLmVmMDc2M2QgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2lmX3BlcmwudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX3BlcmwudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3BlcmwudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEF1ZyAzMAorKmlmX3BlcmwudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBTdmVuIFZlcmRvb2xhZWdlCkBAIC0xOCw3ICsxOCw3IEBACiAxLiBFZGl0aW5nIFBlcmwgZmlsZXMJCQkJCSpwZXJsLWVkaXRpbmcqCiAKIFZpbSBzeW50YXggaGlnaGxpZ2h0aW5nIHN1cHBvcnRzIFBlcmwgYW5kIFBPRCBmaWxlcy4gIFZpbSBhc3N1bWVzIGEgZmlsZSBpcwotUGVybCBjb2RlIGlmIHRoZSBmaWxlbmFtZSBoYXMgYSAucGwgb3IgLnBtIHN1ZmZpeC4gVmltIGFsc28gZXhhbWluZXMgdGhlIGZpcnN0CitQZXJsIGNvZGUgaWYgdGhlIGZpbGVuYW1lIGhhcyBhIC5wbCBvciAucG0gc3VmZml4LiAgVmltIGFsc28gZXhhbWluZXMgdGhlIGZpcnN0CiBsaW5lIG9mIGEgZmlsZSwgcmVnYXJkbGVzcyBvZiB0aGUgZmlsZW5hbWUgc3VmZml4LCB0byBjaGVjayBpZiBhIGZpbGUgaXMgYQogUGVybCBzY3JpcHQgKHNlZSBzY3JpcHRzLnZpbSBpbiBWaW0ncyBzeW50YXggZGlyZWN0b3J5KS4gIFZpbSBhc3N1bWVzIGEgZmlsZQogaXMgUE9EIHRleHQgaWYgdGhlIGZpbGVuYW1lIGhhcyBhIC5QT0Qgc3VmZml4LgpAQCAtNTAsNyArNTAsNyBAQAogMy4gVXNpbmcgdGhlIFBlcmwgaW50ZXJmYWNlCQkJCSpwZXJsLXVzaW5nKgogCiAJCQkJCQkJKjpwZXJsKiAqOnBlKgotOnBlW3JsXSB7Y21kfQkJRXhlY3V0ZSBQZXJsIGNvbW1hbmQge2NtZH0uIFRoZSBjdXJyZW50IHBhY2thZ2UKKzpwZVtybF0ge2NtZH0JCUV4ZWN1dGUgUGVybCBjb21tYW5kIHtjbWR9LiAgVGhlIGN1cnJlbnQgcGFja2FnZQogCQkJaXMgIm1haW4iLgogCiA6cGVbcmxdIDw8IHtlbmRwYXR0ZXJufQpAQCAtODQsNyArODQsNyBAQAogCQkJCQkJCSo6cGVybGRvKiAqOnBlcmxkKgogOltyYW5nZV1wZXJsZFtvXSB7Y21kfQlFeGVjdXRlIFBlcmwgY29tbWFuZCB7Y21kfSBmb3IgZWFjaCBsaW5lIGluIHRoZQogCQkJW3JhbmdlXSwgd2l0aCAkXyBiZWluZyBzZXQgdG8gdGhlIHRleHQgb2YgZWFjaCBsaW5lIGluCi0JCQl0dXJuLCB3aXRob3V0IGEgdHJhaWxpbmcgPEVPTD4uIFNldHRpbmcgJF8gd2lsbCBjaGFuZ2UKKwkJCXR1cm4sIHdpdGhvdXQgYSB0cmFpbGluZyA8RU9MPi4gIFNldHRpbmcgJF8gd2lsbCBjaGFuZ2UKIAkJCXRoZSB0ZXh0LCBidXQgbm90ZSB0aGF0IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBhZGQgb3IKIAkJCWRlbGV0ZSBsaW5lcyB1c2luZyB0aGlzIGNvbW1hbmQuCiAJCQlUaGUgZGVmYXVsdCBmb3IgW3JhbmdlXSBpcyB0aGUgd2hvbGUgZmlsZTogIjEsJCIuCkBAIC0yMTEsNyArMjExLDcgQEAKIAkJCQkJCQkqcGVybC1HZXQqCiBCdWZmZXItPkdldCh7bG51bX0sIHtsbnVtfT8sIC4uLikKIAkJCVJldHVybnMgYSB0ZXh0IHN0cmluZyBvZiBsaW5lIHtsbnVtfSBpbiB0aGUgQnVmZmVyCi0JCQlmb3IgZWFjaCB7bG51bX0gc3BlY2lmaWVkLiBBbiBhcnJheSBjYW4gYmUgcGFzc2VkCisJCQlmb3IgZWFjaCB7bG51bX0gc3BlY2lmaWVkLiAgQW4gYXJyYXkgY2FuIGJlIHBhc3NlZAogCQkJd2l0aCBhIGxpc3Qgb2Yge2xudW19J3Mgc3BlY2lmaWVkLgogCiAJCQkJCQkJKnBlcmwtRGVsZXRlKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcHl0aC50eHQgYi9ydW50aW1lL2RvYy9pZl9weXRoLnR4dAppbmRleCBkMjY0NjFjLi4xYTJhMzNkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9weXRoLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9weXRoLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9weXRoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBKdWwgMjUKKyppZl9weXRoLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgUGF1bCBNb29yZQpAQCAtODUsNyArODUsNyBAQAogMi4gVGhlIHZpbSBtb2R1bGUJCQkJCSpweXRob24tdmltKgogCiBQeXRob24gY29kZSBnZXRzIGFsbCBvZiBpdHMgYWNjZXNzIHRvIHZpbSAod2l0aCBvbmUgZXhjZXB0aW9uIC0gc2VlCi18cHl0aG9uLW91dHB1dHwgYmVsb3cpIHZpYSB0aGUgInZpbSIgbW9kdWxlLiBUaGUgdmltIG1vZHVsZSBpbXBsZW1lbnRzIHR3bworfHB5dGhvbi1vdXRwdXR8IGJlbG93KSB2aWEgdGhlICJ2aW0iIG1vZHVsZS4gIFRoZSB2aW0gbW9kdWxlIGltcGxlbWVudHMgdHdvCiBtZXRob2RzLCB0aHJlZSBjb25zdGFudHMsIGFuZCBvbmUgZXJyb3Igb2JqZWN0LiAgWW91IG5lZWQgdG8gaW1wb3J0IHRoZSB2aW0KIG1vZHVsZSBiZWZvcmUgdXNpbmcgaXQ6ID4KIAk6cHl0aG9uIGltcG9ydCB2aW0KQEAgLTExMyw3ICsxMTMsNyBAQAogTWV0aG9kcyBvZiB0aGUgInZpbSIgbW9kdWxlCiAKIHZpbS5jb21tYW5kKHN0cikJCQkJCSpweXRob24tY29tbWFuZCoKLQlFeGVjdXRlcyB0aGUgdmltIChleC1tb2RlKSBjb21tYW5kIHN0ci4gUmV0dXJucyBOb25lLgorCUV4ZWN1dGVzIHRoZSB2aW0gKGV4LW1vZGUpIGNvbW1hbmQgc3RyLiAgUmV0dXJucyBOb25lLgogCUV4YW1wbGVzOiA+CiAJICAgIDpweSB2aW0uY29tbWFuZCgic2V0IHR3PTcyIikKIAkgICAgOnB5IHZpbS5jb21tYW5kKCIlcy9hYWEvYmJiL2ciKQpAQCAtMTMwLDcgKzEzMCw3IEBACiAKIHZpbS5ldmFsKHN0cikJCQkJCQkqcHl0aG9uLWV2YWwqCiAJRXZhbHVhdGVzIHRoZSBleHByZXNzaW9uIHN0ciB1c2luZyB0aGUgdmltIGludGVybmFsIGV4cHJlc3Npb24KLQlldmFsdWF0b3IgKHNlZSB8ZXhwcmVzc2lvbnwpLiBSZXR1cm5zIHRoZSBleHByZXNzaW9uIHJlc3VsdCBhcyBhCisJZXZhbHVhdG9yIChzZWUgfGV4cHJlc3Npb258KS4gIFJldHVybnMgdGhlIGV4cHJlc3Npb24gcmVzdWx0IGFzIGEKIAlzdHJpbmcuCiAJRXhhbXBsZXM6ID4KIAkgICAgOnB5IHRleHRfd2lkdGggPSB2aW0uZXZhbCgiJnR3IikKQEAgLTE1Niw3ICsxNTYsNyBAQAogCXRvIHdoaWNoIHRoZSB2YXJpYWJsZXMgcmVmZXJyZWQuCiAKIHZpbS5idWZmZXJzCQkJCQkJKnB5dGhvbi1idWZmZXJzKgotCUEgc2VxdWVuY2Ugb2JqZWN0IHByb3ZpZGluZyBhY2Nlc3MgdG8gdGhlIGxpc3Qgb2YgdmltIGJ1ZmZlcnMuIFRoZQorCUEgc2VxdWVuY2Ugb2JqZWN0IHByb3ZpZGluZyBhY2Nlc3MgdG8gdGhlIGxpc3Qgb2YgdmltIGJ1ZmZlcnMuICBUaGUKIAlvYmplY3Qgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zOiA+CiAJICAgIDpweSBiID0gdmltLmJ1ZmZlcnNbaV0JIyBJbmRleGluZyAocmVhZC1vbmx5KQogCSAgICA6cHkgYiBpbiB2aW0uYnVmZmVycwkjIE1lbWJlcnNoaXAgdGVzdApAQCAtMTY0LDcgKzE2NCw3IEBACiAJICAgIDpweSBmb3IgYiBpbiB2aW0uYnVmZmVyczoJIyBTZXF1ZW50aWFsIGFjY2VzcwogPAogdmltLndpbmRvd3MJCQkJCQkqcHl0aG9uLXdpbmRvd3MqCi0JQSBzZXF1ZW5jZSBvYmplY3QgcHJvdmlkaW5nIGFjY2VzcyB0byB0aGUgbGlzdCBvZiB2aW0gd2luZG93cy4gVGhlCisJQSBzZXF1ZW5jZSBvYmplY3QgcHJvdmlkaW5nIGFjY2VzcyB0byB0aGUgbGlzdCBvZiB2aW0gd2luZG93cy4gIFRoZQogCW9iamVjdCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIG9wZXJhdGlvbnM6ID4KIAkgICAgOnB5IHcgPSB2aW0ud2luZG93c1tpXQkjIEluZGV4aW5nIChyZWFkLW9ubHkpCiAJICAgIDpweSB3IGluIHZpbS53aW5kb3dzCSMgTWVtYmVyc2hpcCB0ZXN0CkBAIC0xNzksMTAgKzE3OSwxMCBAQAogCQl2aW0uY3VycmVudC53aW5kb3cJVGhlIGN1cnJlbnQgd2luZG93IChSTykJCVdpbmRvdwogCQl2aW0uY3VycmVudC5yYW5nZQlUaGUgY3VycmVudCBsaW5lIHJhbmdlIChSTykJUmFuZ2UKIAotCVRoZSBsYXN0IGNhc2UgZGVzZXJ2ZXMgYSBsaXR0bGUgZXhwbGFuYXRpb24uIFdoZW4gdGhlIDpweXRob24gb3IKKwlUaGUgbGFzdCBjYXNlIGRlc2VydmVzIGEgbGl0dGxlIGV4cGxhbmF0aW9uLiAgV2hlbiB0aGUgOnB5dGhvbiBvcgogCTpweWZpbGUgY29tbWFuZCBzcGVjaWZpZXMgYSByYW5nZSwgdGhpcyByYW5nZSBvZiBsaW5lcyBiZWNvbWVzIHRoZQotCSJjdXJyZW50IHJhbmdlIi4gQSByYW5nZSBpcyBhIGJpdCBsaWtlIGEgYnVmZmVyLCBidXQgd2l0aCBhbGwgYWNjZXNzCi0JcmVzdHJpY3RlZCB0byBhIHN1YnNldCBvZiBsaW5lcy4gU2VlIHxweXRob24tcmFuZ2V8IGZvciBtb3JlIGRldGFpbHMuCisJImN1cnJlbnQgcmFuZ2UiLiAgQSByYW5nZSBpcyBhIGJpdCBsaWtlIGEgYnVmZmVyLCBidXQgd2l0aCBhbGwgYWNjZXNzCisJcmVzdHJpY3RlZCB0byBhIHN1YnNldCBvZiBsaW5lcy4gIFNlZSB8cHl0aG9uLXJhbmdlfCBmb3IgbW9yZSBkZXRhaWxzLgogCiAKIE91dHB1dCBmcm9tIFB5dGhvbgkJCQkJKnB5dGhvbi1vdXRwdXQqCkBAIC0xOTcsMzEgKzE5NywzMSBAQAogCiAJCQkJCQkJKnB5dGhvbi1pbnB1dCoKIAlJbnB1dCAodmlhIHN5cy5zdGRpbiwgaW5jbHVkaW5nIGlucHV0KCkgYW5kIHJhd19pbnB1dCgpKSBpcyBub3QKLQlzdXBwb3J0ZWQsIGFuZCBtYXkgY2F1c2UgdGhlIHByb2dyYW0gdG8gY3Jhc2guIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlCisJc3VwcG9ydGVkLCBhbmQgbWF5IGNhdXNlIHRoZSBwcm9ncmFtIHRvIGNyYXNoLiAgVGhpcyBzaG91bGQgcHJvYmFibHkgYmUKIAlmaXhlZC4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAzLiBCdWZmZXIgb2JqZWN0cwkJCQkJKnB5dGhvbi1idWZmZXIqCiAKLUJ1ZmZlciBvYmplY3RzIHJlcHJlc2VudCB2aW0gYnVmZmVycy4gWW91IGNhbiBvYnRhaW4gdGhlbSBpbiBhIG51bWJlciBvZiB3YXlzOgorQnVmZmVyIG9iamVjdHMgcmVwcmVzZW50IHZpbSBidWZmZXJzLiAgWW91IGNhbiBvYnRhaW4gdGhlbSBpbiBhIG51bWJlciBvZiB3YXlzOgogCS0gdmlhIHZpbS5jdXJyZW50LmJ1ZmZlciAofHB5dGhvbi1jdXJyZW50fCkKIAktIGZyb20gaW5kZXhpbmcgdmltLmJ1ZmZlcnMgKHxweXRob24tYnVmZmVyc3wpCiAJLSBmcm9tIHRoZSAiYnVmZmVyIiBhdHRyaWJ1dGUgb2YgYSB3aW5kb3cgKHxweXRob24td2luZG93fCkKIAogQnVmZmVyIG9iamVjdHMgaGF2ZSBvbmUgcmVhZC1vbmx5IGF0dHJpYnV0ZSAtIG5hbWUgLSB0aGUgZnVsbCBmaWxlIG5hbWUgZm9yCi10aGUgYnVmZmVyLiBUaGV5IGFsc28gaGF2ZSB0aHJlZSBtZXRob2RzIChhcHBlbmQsIG1hcmssIGFuZCByYW5nZTsgc2VlIGJlbG93KS4KK3RoZSBidWZmZXIuICBUaGV5IGFsc28gaGF2ZSB0aHJlZSBtZXRob2RzIChhcHBlbmQsIG1hcmssIGFuZCByYW5nZTsgc2VlIGJlbG93KS4KIAotWW91IGNhbiBhbHNvIHRyZWF0IGJ1ZmZlciBvYmplY3RzIGFzIHNlcXVlbmNlIG9iamVjdHMuIEluIHRoaXMgY29udGV4dCwgdGhleQorWW91IGNhbiBhbHNvIHRyZWF0IGJ1ZmZlciBvYmplY3RzIGFzIHNlcXVlbmNlIG9iamVjdHMuICBJbiB0aGlzIGNvbnRleHQsIHRoZXkKIGFjdCBhcyBpZiB0aGV5IHdlcmUgbGlzdHMgKHllcywgdGhleSBhcmUgbXV0YWJsZSkgb2Ygc3RyaW5ncywgd2l0aCBlYWNoCi1lbGVtZW50IGJlaW5nIGEgbGluZSBvZiB0aGUgYnVmZmVyLiBBbGwgb2YgdGhlIHVzdWFsIHNlcXVlbmNlIG9wZXJhdGlvbnMsCitlbGVtZW50IGJlaW5nIGEgbGluZSBvZiB0aGUgYnVmZmVyLiAgQWxsIG9mIHRoZSB1c3VhbCBzZXF1ZW5jZSBvcGVyYXRpb25zLAogaW5jbHVkaW5nIGluZGV4aW5nLCBpbmRleCBhc3NpZ25tZW50LCBzbGljaW5nIGFuZCBzbGljZSBhc3NpZ25tZW50LCB3b3JrIGFzCi15b3Ugd291bGQgZXhwZWN0LiBOb3RlIHRoYXQgdGhlIHJlc3VsdCBvZiBpbmRleGluZyAoc2xpY2luZykgYSBidWZmZXIgaXMgYQotc3RyaW5nIChsaXN0IG9mIHN0cmluZ3MpLiBUaGlzIGhhcyBvbmUgdW51c3VhbCBjb25zZXF1ZW5jZSAtIGJbOl0gaXMgZGlmZmVyZW50Ci1mcm9tIGIuIEluIHBhcnRpY3VsYXIsICJiWzpdID0gTm9uZSIgZGVsZXRlcyB0aGUgd2hvbGUgb2YgdGhlIGJ1ZmZlciwgd2hlcmVhcworeW91IHdvdWxkIGV4cGVjdC4gIE5vdGUgdGhhdCB0aGUgcmVzdWx0IG9mIGluZGV4aW5nIChzbGljaW5nKSBhIGJ1ZmZlciBpcyBhCitzdHJpbmcgKGxpc3Qgb2Ygc3RyaW5ncykuICBUaGlzIGhhcyBvbmUgdW51c3VhbCBjb25zZXF1ZW5jZSAtIGJbOl0gaXMgZGlmZmVyZW50Citmcm9tIGIuICBJbiBwYXJ0aWN1bGFyLCAiYls6XSA9IE5vbmUiIGRlbGV0ZXMgdGhlIHdob2xlIG9mIHRoZSBidWZmZXIsIHdoZXJlYXMKICJiID0gTm9uZSIgbWVyZWx5IHVwZGF0ZXMgdGhlIHZhcmlhYmxlIGIsIHdpdGggbm8gZWZmZWN0IG9uIHRoZSBidWZmZXIuCiAKLUJ1ZmZlciBpbmRleGVzIHN0YXJ0IGF0IHplcm8sIGFzIGlzIG5vcm1hbCBpbiBQeXRob24uIFRoaXMgZGlmZmVycyBmcm9tIHZpbQotbGluZSBudW1iZXJzLCB3aGljaCBzdGFydCBmcm9tIDEuIFRoaXMgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHdoZW4gZGVhbGluZworQnVmZmVyIGluZGV4ZXMgc3RhcnQgYXQgemVybywgYXMgaXMgbm9ybWFsIGluIFB5dGhvbi4gIFRoaXMgZGlmZmVycyBmcm9tIHZpbQorbGluZSBudW1iZXJzLCB3aGljaCBzdGFydCBmcm9tIDEuICBUaGlzIGlzIHBhcnRpY3VsYXJseSByZWxldmFudCB3aGVuIGRlYWxpbmcKIHdpdGggbWFya3MgKHNlZSBiZWxvdykgd2hpY2ggdXNlIHZpbSBsaW5lIG51bWJlcnMuCiAKIFRoZSBidWZmZXIgb2JqZWN0IG1ldGhvZHMgYXJlOgpAQCAtMjU1LDEyICsyNTUsMTIgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogNC4gUmFuZ2Ugb2JqZWN0cwkJCQkJKnB5dGhvbi1yYW5nZSoKIAotUmFuZ2Ugb2JqZWN0cyByZXByZXNlbnQgYSBwYXJ0IG9mIGEgdmltIGJ1ZmZlci4gWW91IGNhbiBvYnRhaW4gdGhlbSBpbiBhCitSYW5nZSBvYmplY3RzIHJlcHJlc2VudCBhIHBhcnQgb2YgYSB2aW0gYnVmZmVyLiAgWW91IGNhbiBvYnRhaW4gdGhlbSBpbiBhCiBudW1iZXIgb2Ygd2F5czoKIAktIHZpYSB2aW0uY3VycmVudC5yYW5nZSAofHB5dGhvbi1jdXJyZW50fCkKIAktIGZyb20gYSBidWZmZXIncyByYW5nZSgpIG1ldGhvZCAofHB5dGhvbi1idWZmZXJ8KQogCi1BIHJhbmdlIG9iamVjdCBpcyBhbG1vc3QgaWRlbnRpY2FsIGluIG9wZXJhdGlvbiB0byBhIGJ1ZmZlciBvYmplY3QuIEhvd2V2ZXIsCitBIHJhbmdlIG9iamVjdCBpcyBhbG1vc3QgaWRlbnRpY2FsIGluIG9wZXJhdGlvbiB0byBhIGJ1ZmZlciBvYmplY3QuICBIb3dldmVyLAogYWxsIG9wZXJhdGlvbnMgYXJlIHJlc3RyaWN0ZWQgdG8gdGhlIGxpbmVzIHdpdGhpbiB0aGUgcmFuZ2UgKHRoaXMgbGluZSByYW5nZQogY2FuLCBvZiBjb3Vyc2UsIGNoYW5nZSBhcyBhIHJlc3VsdCBvZiBzbGljZSBhc3NpZ25tZW50cywgbGluZSBkZWxldGlvbnMsIG9yCiB0aGUgcmFuZ2UuYXBwZW5kKCkgbWV0aG9kKS4KQEAgLTI4MywxMSArMjgzLDExIEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDUuIFdpbmRvdyBvYmplY3RzCQkJCQkqcHl0aG9uLXdpbmRvdyoKIAotV2luZG93IG9iamVjdHMgcmVwcmVzZW50IHZpbSB3aW5kb3dzLiBZb3UgY2FuIG9idGFpbiB0aGVtIGluIGEgbnVtYmVyIG9mIHdheXM6CitXaW5kb3cgb2JqZWN0cyByZXByZXNlbnQgdmltIHdpbmRvd3MuICBZb3UgY2FuIG9idGFpbiB0aGVtIGluIGEgbnVtYmVyIG9mIHdheXM6CiAJLSB2aWEgdmltLmN1cnJlbnQud2luZG93ICh8cHl0aG9uLWN1cnJlbnR8KQogCS0gZnJvbSBpbmRleGluZyB2aW0ud2luZG93cyAofHB5dGhvbi13aW5kb3dzfCkKIAotWW91IGNhbiBtYW5pcHVsYXRlIHdpbmRvdyBvYmplY3RzIG9ubHkgdGhyb3VnaCB0aGVpciBhdHRyaWJ1dGVzLiBUaGV5IGhhdmUgbm8KK1lvdSBjYW4gbWFuaXB1bGF0ZSB3aW5kb3cgb2JqZWN0cyBvbmx5IHRocm91Z2ggdGhlaXIgYXR0cmlidXRlcy4gIFRoZXkgaGF2ZSBubwogbWV0aG9kcywgYW5kIG5vIHNlcXVlbmNlIG9yIG90aGVyIGludGVyZmFjZS4KIAogV2luZG93IGF0dHJpYnV0ZXMgYXJlOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfcnVieS50eHQgYi9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dAppbmRleCBlOGQwOWY2Li4zY2E4Y2M1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl9ydWJ5LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9ydWJ5LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBNYXIgMTQKKyppZl9ydWJ5LnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgU2h1Z28gTWFlZGEKQEAgLTMyLDcgKzMyLDcgQEAKIAkJCUV4ZWN1dGUgUnVieSBzY3JpcHQge3NjcmlwdH0uCiAJCQl7ZW5kcGF0dGVybn0gbXVzdCBOT1QgYmUgcHJlY2VkZWQgYnkgYW55IHdoaXRlIHNwYWNlLgogCQkJSWYge2VuZHBhdHRlcm59IGlzIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGEgZG90ICcuJwotCQkJbGlrZSBmb3IgdGhlIHw6YXBwZW5kfCBhbmQgfDppbnNlcnR8IGNvbW1hbmRzLiBUaGlzCisJCQlsaWtlIGZvciB0aGUgfDphcHBlbmR8IGFuZCB8Omluc2VydHwgY29tbWFuZHMuICBUaGlzCiAJCQlmb3JtIG9mIHRoZSB8OnJ1Ynl8IGNvbW1hbmQgaXMgbWFpbmx5IHVzZWZ1bCBmb3IKIAkJCWluY2x1ZGluZyBydWJ5IGNvZGUgaW4gdmltIHNjcmlwdHMuCiAJCQlOb3RlOiBUaGlzIGNvbW1hbmQgZG9lc24ndCB3b3JrIHdoZW4gdGhlIFJ1YnkgZmVhdHVyZQpAQCAtNjAsNyArNjAsNyBAQAogCQkJCQkJKjpydWJ5ZG8qICo6cnVieWQqICpFMjY1KgogOltyYW5nZV1ydWJ5ZFtvXSB7Y21kfQlFdmFsdWF0ZSBSdWJ5IGNvbW1hbmQge2NtZH0gZm9yIGVhY2ggbGluZSBpbiB0aGUKIAkJCVtyYW5nZV0sIHdpdGggJF8gYmVpbmcgc2V0IHRvIHRoZSB0ZXh0IG9mIGVhY2ggbGluZSBpbgotCQkJdHVybiwgd2l0aG91dCBhIHRyYWlsaW5nIDxFT0w+LiBTZXR0aW5nICRfIHdpbGwgY2hhbmdlCisJCQl0dXJuLCB3aXRob3V0IGEgdHJhaWxpbmcgPEVPTD4uICBTZXR0aW5nICRfIHdpbGwgY2hhbmdlCiAJCQl0aGUgdGV4dCwgYnV0IG5vdGUgdGhhdCBpdCBpcyBub3QgcG9zc2libGUgdG8gYWRkIG9yCiAJCQlkZWxldGUgbGluZXMgdXNpbmcgdGhpcyBjb21tYW5kLgogCQkJVGhlIGRlZmF1bHQgZm9yIFtyYW5nZV0gaXMgdGhlIHdob2xlIGZpbGU6ICIxLCQiLgpAQCAtMTE1LDcgKzExNSw3IEBACiAJCQkJCQkJKnJ1YnktZXZhbHVhdGUqCiBWSU06OmV2YWx1YXRlKHtleHByfSkKIAlFdmFsdWF0ZXMge2V4cHJ9IHVzaW5nIHRoZSB2aW0gaW50ZXJuYWwgZXhwcmVzc2lvbiBldmFsdWF0b3IgKHNlZQotCXxleHByZXNzaW9ufCkuIFJldHVybnMgdGhlIGV4cHJlc3Npb24gcmVzdWx0IGFzIGEgc3RyaW5nLgorCXxleHByZXNzaW9ufCkuICBSZXR1cm5zIHRoZSBleHByZXNzaW9uIHJlc3VsdCBhcyBhIHN0cmluZy4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAzLiBWSU06OkJ1ZmZlciBvYmplY3RzCQkJCQkqcnVieS1idWZmZXIqCkBAIC0xMjYsNyArMTI2LDcgQEAKIAogY3VycmVudAkJUmV0dXJucyB0aGUgY3VycmVudCBidWZmZXIgb2JqZWN0LgogY291bnQJCVJldHVybnMgdGhlIG51bWJlciBvZiBidWZmZXJzLgotc2VsZlt7bn1dCVJldHVybnMgdGhlIGJ1ZmZlciBvYmplY3QgZm9yIHRoZSBudW1iZXIge259LiBUaGUgZmlyc3QgbnVtYmVyCitzZWxmW3tufV0JUmV0dXJucyB0aGUgYnVmZmVyIG9iamVjdCBmb3IgdGhlIG51bWJlciB7bn0uICBUaGUgZmlyc3QgbnVtYmVyCiAJCWlzIDAuCiAKIE1ldGhvZHM6CkBAIC0xNTEsNyArMTUxLDcgQEAKIAogY3VycmVudAkJUmV0dXJucyB0aGUgY3VycmVudCB3aW5kb3cgb2JqZWN0LgogY291bnQJCVJldHVybnMgdGhlIG51bWJlciBvZiB3aW5kb3dzLgotc2VsZlt7bn1dCVJldHVybnMgdGhlIHdpbmRvdyBvYmplY3QgZm9yIHRoZSBudW1iZXIge259LiBUaGUgZmlyc3QgbnVtYmVyCitzZWxmW3tufV0JUmV0dXJucyB0aGUgd2luZG93IG9iamVjdCBmb3IgdGhlIG51bWJlciB7bn0uICBUaGUgZmlyc3QgbnVtYmVyCiAJCWlzIDAuCiAKIE1ldGhvZHM6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pZl9zbmlmZi50eHQgYi9ydW50aW1lL2RvYy9pZl9zbmlmZi50eHQKaW5kZXggMTJiMzRjNC4uYTU1YzdjMSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfc25pZmYudHh0CisrKyBiL3J1bnRpbWUvZG9jL2lmX3NuaWZmLnR4dApAQCAtMSw0ICsxLDQgQEAKLSppZl9zbmlmZi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDAxIFNlcCAwMworKmlmX3NuaWZmLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCkBAIC00NSw3ICs0NSw3IEBACiA6c25pW2ZmXQkJICAgIERpc3BsYXkgYWxsIHBvc3NpYmxlIHJlcXVlc3RzIGFuZCB0aGUgY29ubmVjdGlvbgogCQkJICAgIHN0YXR1cwogCi1Nb3N0IHJlcXVlc3RzIHJlcXVpcmUgYSBzeW1ib2wgKGlkZW50aWZpZXIpIGFzIHBhcmFtZXRlci4gSWYgaXQgaXMgb21pdHRlZCwKK01vc3QgcmVxdWVzdHMgcmVxdWlyZSBhIHN5bWJvbCAoaWRlbnRpZmllcikgYXMgcGFyYW1ldGVyLiAgSWYgaXQgaXMgb21pdHRlZCwKIFZpbSB3aWxsIHVzZSB0aGUgY3VycmVudCB3b3JkIHVuZGVyIHRoZSBjdXJzb3IuCiBUaGUgYXZhaWxhYmxlIHJlcXVlc3RzIGFyZSBsaXN0ZWQgYmVsb3c6CiAKQEAgLTU0LDcgKzU0LDcgQEAKIGNvbm5lY3QJCQlzYwlFc3RhYmxpc2ggY29ubmVjdGlvbiB3aXRoIFNOaUZGKy4KIAkJCQlNYWtlIHN1cmUgU05pRkYrIGlzIHByZXBhcmVkIGZvciB0aGlzIGluIHRoZQogCQkJCVByZWZlcmVuY2VzCi1kaXNjb25uZWN0CQlzcQlEaXNjb25uZWN0IGZyb20gU05pRkYrLiBZb3UgY2FuIHJlY29ubmVjdCBhbnkKK2Rpc2Nvbm5lY3QJCXNxCURpc2Nvbm5lY3QgZnJvbSBTTmlGRisuICBZb3UgY2FuIHJlY29ubmVjdCBhbnkKIAkJCQl0aW1lIHdpdGggOnNuaWZmIGNvbm5lY3QgKG9yICdzYycpCiB0b2dnbGUJCQlzdAlUb2dnbGUgYmV0d2VlbiBpbXBsZW1lbnRhdGlvbgogCQkJCWFuZCBkZWZpbml0aW9uIGZpbGUKQEAgLTgwLDcgKzgwLDcgQEAKIGdlbi1kb2N1CQlzRAlHZW5lcmF0ZSBkb2N1bWVudGF0aW9uIG9mIHN5bWJvbAogCiBUaGUgbWFwcGluZ3MgYXJlIGRlZmluZWQgaW4gYSBmaWxlICdzbmlmZi52aW0nLCB3aGljaCBpcyBwYXJ0IG9mIGV2ZXJ5IFNOaUZGKwotcHJvZHVjdCAoJFNOSUZGX0RJUi9jb25maWcvc25pZmYudmltKS4gVGhpcyBmaWxlIGlzIHNvdXJjZWQgd2hlbmV2ZXIgVmltCitwcm9kdWN0ICgkU05JRkZfRElSL2NvbmZpZy9zbmlmZi52aW0pLiAgVGhpcyBmaWxlIGlzIHNvdXJjZWQgd2hlbmV2ZXIgVmltCiBjb25uZWN0cyB0byBTTmlGRisuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaWZfdGNsLnR4dCBiL3J1bnRpbWUvZG9jL2lmX3RjbC50eHQKaW5kZXggYjM4NmJlZC4uMTE5NWVkNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfdGNsLnR4dAorKysgYi9ydW50aW1lL2RvYy9pZl90Y2wudHh0CkBAIC0xLDQgKzEsNCBAQAotKmlmX3RjbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEphbiAxNworKmlmX3RjbC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBJbmdvIFdpbGtlbgpAQCAtMzYsNyArMzYsNyBAQAogCQkJd2Fzbid0IGNvbXBpbGVkIGluLiAgVG8gYXZvaWQgZXJyb3JzLCBzZWUKIAkJCXxzY3JpcHQtaGVyZXwuCiAKLXtlbmRtYXJrZXJ9IG11c3QgTk9UIGJlIHByZWNlZGVkIGJ5IGFueSB3aGl0ZSBzcGFjZS4gSWYge2VuZG1hcmtlcn0gaXMKK3tlbmRtYXJrZXJ9IG11c3QgTk9UIGJlIHByZWNlZGVkIGJ5IGFueSB3aGl0ZSBzcGFjZS4gIElmIHtlbmRtYXJrZXJ9IGlzCiBvbWl0dGVkIGZyb20gYWZ0ZXIgdGhlICI8PCIsIGEgZG90ICcuJyBtdXN0IGJlIHVzZWQgYWZ0ZXIge3NjcmlwdH0sIGxpa2UgZm9yCiB0aGUgfDphcHBlbmR8IGFuZCB8Omluc2VydHwgY29tbWFuZHMuCiBUaGlzIGZvcm0gb2YgdGhlIHw6dGNsfCBjb21tYW5kIGlzIG1haW5seSB1c2VmdWwgZm9yIGluY2x1ZGluZyB0Y2wgY29kZSBpbiBWaW0KQEAgLTE1Miw3ICsxNTIsNyBAQAogCiAJOjp2aW06OndpbmRvdyB7b3B0aW9ufQkJCQkqdGNsLXdpbmRvdyoKIAlQcm92aWRlcyBhY2Nlc3MgdG8gdmltIHdpbmRvd3MuICBDdXJyZW50bHkgb25seSB0aGUgImxpc3QiIG9wdGlvbiBpcwotCWltcGxlbWVudGVkLiBUaGlzIGNyZWF0ZXMgYSB3aW5kb3cgY29tbWFuZCAoc2VlIHx0Y2wtd2luZG93LWNtZHN8KSBmb3IKKwlpbXBsZW1lbnRlZC4gIFRoaXMgY3JlYXRlcyBhIHdpbmRvdyBjb21tYW5kIChzZWUgfHRjbC13aW5kb3ctY21kc3wpIGZvcgogCWVhY2ggd2luZG93LCBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgdGhlIGNvbW1hbmQgbmFtZXMgYXMgdGhlIHJlc3VsdC4KIAlFeGFtcGxlOiA+CiAJCXNldCB3aW5zIFs6OnZpbTo6d2luZG93IGxpc3RdCkBAIC0yMjcsNyArMjI3LDcgQEAKIGZvciB0aGUgY3VycmVudCB3aW5kb3cuICBBIHdpbmRvdyBjb21tYW5kIGlzIGF1dG9tYXRpY2FsbHkgZGVsZXRlZCB3aGVuIHRoZQogY29ycmVzcG9uZGluZyB2aW0gd2luZG93IGlzIGNsb3NlZC4KIAotTGV0cyBhc3N1bWUgdGhlIG5hbWUgb2YgdGhlIHdpbmRvdyBjb21tYW5kIGlzIHN0b3JlZCBpbiB0aGUgVGNsIHZhcmlhYmxlICJ3aW4iLAorTGV0J3MgYXNzdW1lIHRoZSBuYW1lIG9mIHRoZSB3aW5kb3cgY29tbWFuZCBpcyBzdG9yZWQgaW4gdGhlIFRjbCB2YXJpYWJsZSAid2luIiwKIGkuZS4gIiR3aW4iIGNhbGxzIHRoZSBjb21tYW5kLiAgVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBhdmFpbGFibGU6ID4KIAogCSR3aW4gYnVmZmVyCQkjIENyZWF0ZSBUY2wgY29tbWFuZCBmb3Igd2luZG93J3MgYnVmZmVyLgpAQCAtMzA2LDcgKzMwNiw3IEBACiB0aGUgYnVmZmVyJ3MgY29udGVudHMgbWFkZSBieSBUY2wgY29tbWFuZHMgY2FuIGJlIHVuZG9uZSB3aXRoIHRoZSAidW5kbyIgdmltCiBjb21tYW5kIChzZWUgfHVuZG98KS4KIAotTGV0cyBhc3N1bWUgdGhlIG5hbWUgb2YgdGhlIGJ1ZmZlciBjb21tYW5kIGlzIHN0b3JlZCBpbiB0aGUgVGNsIHZhcmlhYmxlICJidWYiLAorTGV0J3MgYXNzdW1lIHRoZSBuYW1lIG9mIHRoZSBidWZmZXIgY29tbWFuZCBpcyBzdG9yZWQgaW4gdGhlIFRjbCB2YXJpYWJsZSAiYnVmIiwKIGkuZS4gIiRidWYiIGNhbGxzIHRoZSBjb21tYW5kLiAgVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBhdmFpbGFibGU6ID4KIAogCSRidWYgYXBwZW5kIHtufSB7c3RyfQkjIEFwcGVuZCBhIGxpbmUgdG8gYnVmZmVyLCBhZnRlciBsaW5lIHtufS4KQEAgLTQ5Nyw3ICs0OTcsNyBAQAogCX0KIFVzZSBpdCBsaWtlIHRoaXM6CiAJOnRjbCBlYWNoYnVmICVzL2Zvby9iYXIvZwotQmUgY2FyZWZ1bCB3aXRoIFRjbCdzIHN0cmluZyBhbmQgYmFja3NsYXNoIHN1YnN0aXR1dGlvbiwgdG91Z2guIElmIGluIGRvdWJ0LAorQmUgY2FyZWZ1bCB3aXRoIFRjbCdzIHN0cmluZyBhbmQgYmFja3NsYXNoIHN1YnN0aXR1dGlvbiwgdG91Z2guICBJZiBpbiBkb3VidCwKIHN1cnJvdW5kIHRoZSBleCBjb21tYW5kIHdpdGggY3VybHkgYnJhY2VzLgogCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2luZGVudC50eHQgYi9ydW50aW1lL2RvYy9pbmRlbnQudHh0CmluZGV4IGJkNGJiNDEuLjA1NDBjNDMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2luZGVudC50eHQKKysrIGIvcnVudGltZS9kb2MvaW5kZW50LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppbmRlbnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBGZWIgMjQKKyppbmRlbnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIzNyw3ICsyMzcsNyBAQAogCQkJCX0JCSAgfQogPAogCWJOICAgIElmIE4gIT0gMCBWaW0gd2lsbCBhbGlnbiBhIGZpbmFsICJicmVhayIgd2l0aCB0aGUgY2FzZSBsYWJlbCwKLQkgICAgICBzbyB0aGF0IGNhc2UuLmJyZWFrIGxvb2tzIGxpa2UgYSBzb3J0IG9mIGJsb2NrLiAoZGVmYXVsdDogMCkuCisJICAgICAgc28gdGhhdCBjYXNlLi5icmVhayBsb29rcyBsaWtlIGEgc29ydCBvZiBibG9jay4gIChkZWZhdWx0OiAwKS4KIAogCQljaW5vPQkJICAgIGNpbm89YjEgPgogCQkgIHN3aXRjaCAoeCkJICAgICAgc3dpdGNoKHgpCkBAIC0zMjUsNyArMzI1LDcgQEAKIAkJICAqKioqKioqKi8JCSAgICAqKioqKioqKi8KIDwJICAgICAgKEV4YW1wbGUgdXNlcyAiOnNldCBjb21tZW50cyYgY29tbWVudHMtPXMxOi8qIGNvbW1lbnRzXj1zMDovKiIpCiAKLQkvTiAgICBJbmRlbnQgY29tbWVudCBsaW5lcyBOIGNoYXJhY3RlcnMgZXh0cmEuIChkZWZhdWx0IDApLgorCS9OICAgIEluZGVudCBjb21tZW50IGxpbmVzIE4gY2hhcmFjdGVycyBleHRyYS4gIChkZWZhdWx0IDApLgogCQljaW5vPQkJCSAgY2lubz0vNCA+CiAJCSAgYSA9IGI7CQkgICAgYSA9IGI7CiAJCSAgLyogY29tbWVudCAqLwkJCS8qIGNvbW1lbnQgKi8KQEAgLTM4MSw3ICszODEsNyBAQAogCSAgICAgIHRoZSBsYXN0IG5vbi13aGl0ZSBjaGFyYWN0ZXIgaW4gaXRzIGxpbmUgYW5kIGl0IGlzIG5vdCB0aGUKIAkgICAgICBjbG9zaW5nIHBhcmVudGhlc2VzLCBpbmRlbnQgdGhlIGZvbGxvd2luZyBsaW5lIE4gY2hhcmFjdGVycwogCSAgICAgIHJlbGF0aXZlIHRvIHRoZSBvdXRlciBjb250ZXh0IChpLmUuIHN0YXJ0IG9mIHRoZSBsaW5lIG9yIHRoZQotCSAgICAgIG5leHQgdW5jbG9zZWQgcGFyZW50aGVzZXMpLiAoZGVmYXVsdDogMCkuCisJICAgICAgbmV4dCB1bmNsb3NlZCBwYXJlbnRoZXNlcykuICAoZGVmYXVsdDogMCkuCiAKIAkJY2lubz0oMAkJCSAgIGNpbm89KDAsVzQgPgogCQkgIGFfbG9uZ19saW5lKAkJICAgIGFfbG9uZ19saW5lKApAQCAtNDA2LDcgKzQwNiw3IEBACiA8CiAJCQkJCSpqYXZhLWNpbm9wdGlvbnMqICpqYXZhLWluZGVudGluZyoKIAlqTiAgICBJbmRlbnQgamF2YSBhbm9ueW1vdXMgY2xhc3NlcyBjb3JyZWN0bHkuICBUaGUgdmFsdWUgJ04nIGlzCi0JICAgICAgY3VycmVudGx5IHVudXNlZCBidXQgbXVzdCBiZSBub24temVybyAoZS5nLiAnajEnKS4gJ2oxJyB3aWxsCisJICAgICAgY3VycmVudGx5IHVudXNlZCBidXQgbXVzdCBiZSBub24temVybyAoZS5nLiAnajEnKS4gICdqMScgd2lsbAogCSAgICAgIGluZGVudCBmb3IgZXhhbXBsZSB0aGUgZm9sbG93aW5nIGNvZGUgc25pcHBldCBjb3JyZWN0bHk6ID4KIAogCQlvYmplY3QuYWRkKG5ldyBDaGFuZ2VMaXN0ZW5lcigpIHsKQEAgLTQ1MSwzMSArNDUxLDMxIEBACiAKIEZPUlRSQU4JCQkJCQkJKmZvcnRyYW4taW5kZW50KgogCi1CbG9jayBpZiwgc2VsZWN0IGNhc2UsIGFuZCB3aGVyZSBjb25zdHJ1Y3RzIGFyZSBpbmRlbnRlZC4gQ29tbWVudHMsIGxhYmVsbGVkCitCbG9jayBpZiwgc2VsZWN0IGNhc2UsIGFuZCB3aGVyZSBjb25zdHJ1Y3RzIGFyZSBpbmRlbnRlZC4gIENvbW1lbnRzLCBsYWJlbGxlZAogc3RhdGVtZW50cyBhbmQgY29udGludWF0aW9uIGxpbmVzIGFyZSBpbmRlbnRlZCBpZiB0aGUgRm9ydHJhbiBpcyBpbiBmcmVlCiBzb3VyY2UgZm9ybSwgd2hlcmVhcyB0aGV5IGFyZSBub3QgaW5kZW50ZWQgaWYgdGhlIEZvcnRyYW4gaXMgaW4gZml4ZWQgc291cmNlCi1mb3JtIGJlY2F1c2Ugb2YgdGhlIGxlZnQgbWFyZ2luIHJlcXVpcmVtZW50cy4gSGVuY2UgbWFudWFsIGluZGVudCBjb3JyZWN0aW9ucworZm9ybSBiZWNhdXNlIG9mIHRoZSBsZWZ0IG1hcmdpbiByZXF1aXJlbWVudHMuICBIZW5jZSBtYW51YWwgaW5kZW50IGNvcnJlY3Rpb25zCiB3aWxsIGJlIG5lY2Vzc2FyeSBmb3IgbGFiZWxsZWQgc3RhdGVtZW50cyBhbmQgY29udGludWF0aW9uIGxpbmVzIHdoZW4gZml4ZWQKLXNvdXJjZSBmb3JtIGlzIGJlaW5nIHVzZWQuIEZvciBmdXJ0aGVyIGRpc2N1c3Npb24gb2YgdGhlIG1ldGhvZCB1c2VkIGZvciB0aGUKK3NvdXJjZSBmb3JtIGlzIGJlaW5nIHVzZWQuICBGb3IgZnVydGhlciBkaXNjdXNzaW9uIG9mIHRoZSBtZXRob2QgdXNlZCBmb3IgdGhlCiBkZXRlY3Rpb24gb2Ygc291cmNlIGZvcm1hdCBzZWUgfGZvcnRyYW4tc3ludGF4fC4KIAogRG8gbG9vcHMgfgotQWxsIGRvIGxvb3BzIGFyZSBsZWZ0IHVuaW5kZW50ZWQgYnkgZGVmYXVsdC4gRG8gbG9vcHMgY2FuIGJlIHVuc3RydWN0dXJlZCBpbgorQWxsIGRvIGxvb3BzIGFyZSBsZWZ0IHVuaW5kZW50ZWQgYnkgZGVmYXVsdC4gIERvIGxvb3BzIGNhbiBiZSB1bnN0cnVjdHVyZWQgaW4KIEZvcnRyYW4gd2l0aCAocG9zc2libHkgbXVsdGlwbGUpIGxvb3BzIGVuZGluZyBvbiBhIGxhYmVsbGVkIGV4ZWN1dGFibGUKLXN0YXRlbWVudCBvZiBhbG1vc3QgYXJiaXRyYXJ5IHR5cGUuIENvcnJlY3QgaW5kZW50YXRpb24gcmVxdWlyZXMKLWNvbXBpbGVyLXF1YWxpdHkgcGFyc2luZy4gT2xkIGNvZGUgd2l0aCBkbyBsb29wcyBlbmRpbmcgb24gbGFiZWxsZWQgc3RhdGVtZW50cworc3RhdGVtZW50IG9mIGFsbW9zdCBhcmJpdHJhcnkgdHlwZS4gIENvcnJlY3QgaW5kZW50YXRpb24gcmVxdWlyZXMKK2NvbXBpbGVyLXF1YWxpdHkgcGFyc2luZy4gIE9sZCBjb2RlIHdpdGggZG8gbG9vcHMgZW5kaW5nIG9uIGxhYmVsbGVkIHN0YXRlbWVudHMKIG9mIGFyYml0cmFyeSB0eXBlIGNhbiBiZSBpbmRlbnRlZCB3aXRoIGVsYWJvcmF0ZSBwcm9ncmFtcyBzdWNoIGFzIFRpZHkKLShodHRwOi8vd3d3LnVuYi5jYS9jaGVtL2FqaXQvZl90aWR5Lmh0bSkuIFN0cnVjdHVyZWQgZG8vY29udGludWUgbG9vcHMgYXJlCisoaHR0cDovL3d3dy51bmIuY2EvY2hlbS9haml0L2ZfdGlkeS5odG0pLiAgU3RydWN0dXJlZCBkby9jb250aW51ZSBsb29wcyBhcmUKIGFsc28gbGVmdCB1bmluZGVudGVkIGJlY2F1c2UgY29udGludWUgc3RhdGVtZW50cyBhcmUgYWxzbyB1c2VkIGZvciBwdXJwb3Nlcwotb3RoZXIgdGhhbiBlbmRpbmcgYSBkbyBsb29wLiBQcm9ncmFtcyBzdWNoIGFzIFRpZHkgY2FuIGNvbnZlcnQgc3RydWN0dXJlZAotZG8vY29udGludWUgbG9vcHMgdG8gdGhlIGRvL2VuZGRvIGZvcm0uIERvIGxvb3BzIG9mIHRoZSBkby9lbmRkbyB2YXJpZXR5IGNhbgotYmUgaW5kZW50ZWQuIElmIHlvdSB1c2Ugb25seSBzdHJ1Y3R1cmVkIGxvb3BzIG9mIHRoZSBkby9lbmRkbyBmb3JtLCB5b3Ugc2hvdWxkCitvdGhlciB0aGFuIGVuZGluZyBhIGRvIGxvb3AuICBQcm9ncmFtcyBzdWNoIGFzIFRpZHkgY2FuIGNvbnZlcnQgc3RydWN0dXJlZAorZG8vY29udGludWUgbG9vcHMgdG8gdGhlIGRvL2VuZGRvIGZvcm0uICBEbyBsb29wcyBvZiB0aGUgZG8vZW5kZG8gdmFyaWV0eSBjYW4KK2JlIGluZGVudGVkLiAgSWYgeW91IHVzZSBvbmx5IHN0cnVjdHVyZWQgbG9vcHMgb2YgdGhlIGRvL2VuZGRvIGZvcm0sIHlvdSBzaG91bGQKIGRlY2xhcmUgdGhpcyBieSBzZXR0aW5nIHRoZSBmb3J0cmFuX2RvX2VuZGRvIHZhcmlhYmxlIGluIHlvdXIgLnZpbXJjIGFzCiBmb2xsb3dzID4KIAogICAgbGV0IGZvcnRyYW5fZG9fZW5kZG89MQogCi1pbiB3aGljaCBjYXNlIGRvIGxvb3BzIHdpbGwgYmUgaW5kZW50ZWQuIElmIGFsbCB5b3VyIGxvb3BzIGFyZSBvZiBkby9lbmRkbworaW4gd2hpY2ggY2FzZSBkbyBsb29wcyB3aWxsIGJlIGluZGVudGVkLiAgSWYgYWxsIHlvdXIgbG9vcHMgYXJlIG9mIGRvL2VuZGRvCiB0eXBlIG9ubHkgaW4sIHNheSwgLmY5MCBmaWxlcywgdGhlbiB5b3Ugc2hvdWxkIHNldCBhIGJ1ZmZlciBmbGFnIHdpdGggYW4KIGF1dG9jb21tYW5kIHN1Y2ggYXMgPgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRleC50eHQgYi9ydW50aW1lL2RvYy9pbmRleC50eHQKaW5kZXggNzczNWUzNy4uYjdhOWRiOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5kZXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppbmRleC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBGZWIgMjUKKyppbmRleC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTgwMCw3ICs4MDAsNyBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAzLiBWaXN1YWwgbW9kZQkJCQkJCSp2aXN1YWwtaW5kZXgqCiAKLU1vc3QgY29tbWFuZHMgaW4gVmlzdWFsIG1vZGUgYXJlIHRoZSBzYW1lIGFzIGluIE5vcm1hbCBtb2RlLiBUaGUgb25lcyBsaXN0ZWQKK01vc3QgY29tbWFuZHMgaW4gVmlzdWFsIG1vZGUgYXJlIHRoZSBzYW1lIGFzIGluIE5vcm1hbCBtb2RlLiAgVGhlIG9uZXMgbGlzdGVkCiBoZXJlIGFyZSB0aG9zZSB0aGF0IGFyZSBkaWZmZXJlbnQuCiAKIHRhZwkJY29tbWFuZAkgICAgICBub3RlIGFjdGlvbiBpbiBWaXN1YWwgbW9kZQl+CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0IGIvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAppbmRleCAxOWI3MzU3Li4yMjI1NjJiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgRmViIDIxCisqaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDA4CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xOTAsNyArMTkwLDcgQEAKIAkJd29yayB0aGVuLiAgSXQgZG9lcyB3b3JrIGluIHRoZSBHVUkuCiAKIENUUkwtWAkJRW50ZXIgQ1RSTC1YIG1vZGUuICBUaGlzIGlzIGEgc3ViLW1vZGUgd2hlcmUgY29tbWFuZHMgY2FuCi0JCWJlIGdpdmVuIHRvIGNvbXBsZXRlIHdvcmRzIG9yIHNjcm9sbCB0aGUgd2luZG93LiBTZWUKKwkJYmUgZ2l2ZW4gdG8gY29tcGxldGUgd29yZHMgb3Igc2Nyb2xsIHRoZSB3aW5kb3cuICBTZWUKIAkJfGlfQ1RSTC1YfCBhbmQgfGlucy1jb21wbGV0aW9ufC4ge25vdCBpbiBWaX0KIAogCQkJCQkJKmlfQ1RSTC1FKgpAQCAtMjcxLDcgKzI3MSw3IEBACiAKIGZpcnN0IGNoYXIJbW9kZQkgICAgIG1heCBuciBvZiBjaGFycyAgIG1heCB2YWx1ZSB+CiAobm9uZSkJCWRlY2ltYWwJCSAgIDMJCTI1NQotbyBvciBPCQlvY3RhbAkJICAgMwkJMjU1CitvIG9yIE8JCW9jdGFsCQkgICAzCQkzNzcJICgyNTUpCiB4IG9yIFgJCWhleGFkZWNpbWFsCSAgIDIJCWZmCSAoMjU1KQogdQkJaGV4YWRlY2ltYWwJICAgNAkJZmZmZgkgKDY1NTM1KQogVQkJaGV4YWRlY2ltYWwJICAgOAkJN2ZmZmZmZmYgKDIxNDc0ODM2NDcpCkBAIC0zOTIsNyArMzkyLDcgQEAKIGNvbHVtbi4gIEV4YW1wbGU6ID4KICAgIGludCBpOwogICAgaW50IGo7Ci1Qb3NpdGlvbiB0aGUgY3Vyc29yIG9uIHRoZSBmaXJzdCAiaW50IiwgdHlwZSAiaXN0YXRpYzxDLUc+aiAgICAgICAiLiAgVGhlCitQb3NpdGlvbiB0aGUgY3Vyc29yIG9uIHRoZSBmaXJzdCAiaW50IiwgdHlwZSAiaXN0YXRpYyA8Qy1HPmogICAgICAgIi4gIFRoZQogcmVzdWx0IGlzOiA+CiAgICBzdGF0aWMgaW50IGk7CiAJICBpbnQgajsKQEAgLTcyNiw3ICs3MjYsNyBAQAogCQkJa2V5d29yZCByZXBsYWNlcyB0aGUgcHJldmlvdXMgbWF0Y2hpbmcga2V5d29yZC4KIAogCQkJCQkJCSppX0NUUkwtWF9DVFJMLVQqCi1DVFJMLVggQ1RSTC1UCQlXb3JrcyBhcyBDVFJMLVggQ1RSTC1LLCBidXQgaW4gYSBzcGVjaWFsIHdheS4gSXQgdXNlcworQ1RSTC1YIENUUkwtVAkJV29ya3MgYXMgQ1RSTC1YIENUUkwtSywgYnV0IGluIGEgc3BlY2lhbCB3YXkuICBJdCB1c2VzCiAJCQl0aGUgJ3RoZXNhdXJ1cycgb3B0aW9uIGluc3RlYWQgb2YgJ2RpY3Rpb25hcnknLiAgSWYgYQogCQkJbWF0Y2ggaXMgZm91bmQgaW4gdGhlIHRoZXNhdXJ1cyBmaWxlLCBhbGwgdGhlCiAJCQlyZW1haW5pbmcgd29yZHMgb24gdGhlIHNhbWUgbGluZSBhcmUgaW5jbHVkZWQgYXMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21hcC50eHQgYi9ydW50aW1lL2RvYy9tYXAudHh0CmluZGV4IDJhOWRkMWIuLjExMTk2MTggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL21hcC50eHQKKysrIGIvcnVudGltZS9kb2MvbWFwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBGZWIgMjcKKyptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIyLDcgKzIyLDcgQEAKIAogCTptYXAgPEYyPiBhPEMtUj49c3RyZnRpbWUoIiVjIik8Q1I+PEVzYz4KIAotVGhpcyBhcHBlbmRzIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgYWZ0ZXIgdGhlIGN1cnNvci4gKGluIDw+IG5vdGF0aW9uIHw8PnwpCitUaGlzIGFwcGVuZHMgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBhZnRlciB0aGUgY3Vyc29yIChpbiA8PiBub3RhdGlvbiB8PD58KS4KIAogVGhlcmUgYXJlIGNvbW1hbmRzIHRvIGVudGVyIG5ldyBtYXBwaW5ncywgcmVtb3ZlIG1hcHBpbmdzIGFuZCBsaXN0IG1hcHBpbmdzLgogU2VlIHxtYXAtb3ZlcnZpZXd8IGZvciB0aGUgdmFyaW91cyBmb3JtcyBvZiAibWFwIiBhbmQgdGhlaXIgcmVsYXRpb25zaGlwcyB3aXRoCkBAIC0xNzQsNyArMTc0LDcgQEAKIC0gRm9yIFZpc3VhbCBtb2RlOiBXaGVuIHR5cGluZyBjb21tYW5kcyB3aGlsZSB0aGUgVmlzdWFsIGFyZWEgaXMgaGlnaGxpZ2h0ZWQuCiAtIEZvciBPcGVyYXRvci1wZW5kaW5nIG1vZGU6IFdoZW4gYW4gb3BlcmF0b3IgaXMgcGVuZGluZyAoYWZ0ZXIgImQiLCAieSIsICJjIiwKICAgZXRjLikuICBFeGFtcGxlOiAiOm9tYXAgeyB3IiBtYWtlcyAieXsiIHdvcmsgbGlrZSAieXciIGFuZCAiZHsiIGxpa2UgImR3Ii4KLS0gRm9yIEluc2VydCBtb2RlLiBUaGVzZSBhcmUgYWxzbyB1c2VkIGluIFJlcGxhY2UgbW9kZS4KKy0gRm9yIEluc2VydCBtb2RlLiAgVGhlc2UgYXJlIGFsc28gdXNlZCBpbiBSZXBsYWNlIG1vZGUuCiAtIEZvciBDb21tYW5kLWxpbmUgbW9kZTogV2hlbiBlbnRlcmluZyBhICI6IiBvciAiLyIgY29tbWFuZC4KIAogVGhlcmUgYXJlIG5vIHNlcGFyYXRlIG1hcHBpbmdzIGZvciBTZWxlY3QgbW9kZS4gIFRoZSBzYW1lIGFzIGZvciBWaXN1YWwgbW9kZQpAQCAtODExLDcgKzgxMSw3IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDQuIFVzZXItZGVmaW5lZCBjb21tYW5kcwkJCQkqdXNlci1jb21tYW5kcyoKIAotSXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIHlvdXIgb3duIEV4IGNvbW1hbmRzLiBBIHVzZXItZGVmaW5lZCBjb21tYW5kIGNhbiBhY3QKK0l0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSB5b3VyIG93biBFeCBjb21tYW5kcy4gIEEgdXNlci1kZWZpbmVkIGNvbW1hbmQgY2FuIGFjdAoganVzdCBsaWtlIGEgYnVpbHQtaW4gY29tbWFuZCAoaXQgY2FuIGhhdmUgYSByYW5nZSBvciBhcmd1bWVudHMsIGFyZ3VtZW50cyBjYW4KIGJlIGNvbXBsZXRlZCBhcyBmaWxlbmFtZXMgb3IgYnVmZmVyIG5hbWVzLCBldGMpLCBleGNlcHQgdGhhdCB3aGVuIHRoZSBjb21tYW5kCiBpcyBleGVjdXRlZCwgaXQgaXMgdHJhbnNmb3JtZWQgaW50byBhIG5vcm1hbCBleCBjb21tYW5kIGFuZCB0aGVuIGV4ZWN1dGVkLgpAQCAtODIwLDcgKzgyMCw3IEBACiAKIAkJCQkJCSpFMTgzKiAqdXNlci1jbWQtYW1iaWd1b3VzKgogQWxsIHVzZXIgZGVmaW5lZCBjb21tYW5kcyBtdXN0IHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGxldHRlciwgdG8gYXZvaWQKLWNvbmZ1c2lvbiB3aXRoIGJ1aWx0aW4gY29tbWFuZHMuIChUaGVyZSBhcmUgYSBmZXcgYnVpbHRpbiBjb21tYW5kcywgbm90YWJseQorY29uZnVzaW9uIHdpdGggYnVpbHRpbiBjb21tYW5kcy4gIChUaGVyZSBhcmUgYSBmZXcgYnVpbHRpbiBjb21tYW5kcywgbm90YWJseQogOk5leHQsIDpQcmludCBhbmQgOlgsIHdoaWNoIGRvIHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGxldHRlci4gIFRoZSBidWlsdGluCiB3aWxsIGFsd2F5cyB0YWtlIHByZWNlZGVuY2UgaW4gdGhlc2UgY2FzZXMpLiAgVGhlIG90aGVyIGNoYXJhY3RlcnMgb2YgdGhlIHVzZXIKIGNvbW1hbmQgY2FuIGJlIHVwcGVyY2FzZSBsZXR0ZXJzLCBsb3dlcmNhc2UgbGV0dGVycyBvciBkaWdpdHMuICBXaGVuIHVzaW5nCkBAIC04MjksOCArODI5LDggQEAKIHdpdGhvdXQgYW4gYXJndW1lbnQsIG9yIHRoZSBjb21tYW5kICI6Q2MiIHdpdGggYXJndW1lbnQgIjIiLiAgSXQgaXMgYWR2aXNlZCB0bwogcHV0IGEgc3BhY2UgYmV0d2VlbiB0aGUgY29tbWFuZCBuYW1lIGFuZCB0aGUgYXJndW1lbnQgdG8gYXZvaWQgdGhlc2UgcHJvYmxlbXMuCiAKLVdoZW4gdXNpbmcgYSB1c2VyLWRlZmluZWQgY29tbWFuZCwgdGhlIGNvbW1hbmQgY2FuIGJlIGFiYnJldmlhdGVkLiBIb3dldmVyLCBpZgotYW4gYWJicmV2aWF0aW9uIGlzIG5vdCB1bmlxdWUsIGFuIGVycm9yIHdpbGwgYmUgaXNzdWVkLiBGdXJ0aGVybW9yZSwgYQorV2hlbiB1c2luZyBhIHVzZXItZGVmaW5lZCBjb21tYW5kLCB0aGUgY29tbWFuZCBjYW4gYmUgYWJicmV2aWF0ZWQuICBIb3dldmVyLCBpZgorYW4gYWJicmV2aWF0aW9uIGlzIG5vdCB1bmlxdWUsIGFuIGVycm9yIHdpbGwgYmUgaXNzdWVkLiAgRnVydGhlcm1vcmUsIGEKIGJ1aWx0LWluIGNvbW1hbmQgd2lsbCBhbHdheXMgdGFrZSBwcmVjZWRlbmNlLgogCiBFeGFtcGxlOiA+CkBAIC04NDYsNyArODQ2LDcgQEAKIHNjcmlwdHMuCiAKIDpjb21bbWFuZF0JCQkJCQkqOmNvbSogKjpjb21tYW5kKgotCQkJTGlzdCBhbGwgdXNlci1kZWZpbmVkIGNvbW1hbmRzLiBXaGVuIGxpc3RpbmcgY29tbWFuZHMsCisJCQlMaXN0IGFsbCB1c2VyLWRlZmluZWQgY29tbWFuZHMuICBXaGVuIGxpc3RpbmcgY29tbWFuZHMsCiAJCQl0aGUgY2hhcmFjdGVycyBpbiB0aGUgZmlyc3QgdHdvIGNvbHVtbnMgYXJlCiAJCQkgICAgIQlDb21tYW5kIGhhcyB0aGUgLWJhbmcgYXR0cmlidXRlCiAJCQkgICAgIglDb21tYW5kIGhhcyB0aGUgLXJlZ2lzdGVyIGF0dHJpYnV0ZQpAQCAtODU4LDggKzg1OCw4IEBACiAJCQkJCQkJKkUxNzQqICpFMTgyKgogOmNvbVttYW5kXVshXSBbe2F0dHJ9Li4uXSB7Y21kfSB7cmVwfQogCQkJRGVmaW5lIGEgdXNlciBjb21tYW5kLiAgVGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQgaXMKLQkJCXtjbWR9IGFuZCBpdHMgcmVwbGFjZW1lbnQgdGV4dCBpcyB7cmVwfS4gVGhlIGNvbW1hbmQncwotCQkJYXR0cmlidXRlcyAoc2VlIGJlbG93KSBhcmUge2F0dHJ9LiBJZiB0aGUgY29tbWFuZAorCQkJe2NtZH0gYW5kIGl0cyByZXBsYWNlbWVudCB0ZXh0IGlzIHtyZXB9LiAgVGhlIGNvbW1hbmQncworCQkJYXR0cmlidXRlcyAoc2VlIGJlbG93KSBhcmUge2F0dHJ9LiAgSWYgdGhlIGNvbW1hbmQKIAkJCWFscmVhZHkgZXhpc3RzLCBhbiBlcnJvciBpcyByZXBvcnRlZCwgdW5sZXNzIGEgISBpcwogCQkJc3BlY2lmaWVkLCBpbiB3aGljaCBjYXNlIHRoZSBjb21tYW5kIGlzIHJlZGVmaW5lZC4KIApAQCAtODcxLDIwICs4NzEsMjAgQEAKIAogQ29tbWFuZCBhdHRyaWJ1dGVzCiAKLVVzZXItZGVmaW5lZCBjb21tYW5kcyBhcmUgdHJlYXRlZCBieSBWaW0ganVzdCBsaWtlIGFueSBvdGhlciBleCBjb21tYW5kcy4gVGhleQotY2FuIGhhdmUgYXJndW1lbnRzLCBvciBoYXZlIGEgcmFuZ2Ugc3BlY2lmaWVkLiBBcmd1bWVudHMgYXJlIHN1YmplY3QgdG8KLWNvbXBsZXRpb24gYXMgZmlsZW5hbWVzLCBidWZmZXJzLCBldGMuIEV4YWN0bHkgaG93IHRoaXMgd29ya3MgZGVwZW5kcyB1cG9uIHRoZQorVXNlci1kZWZpbmVkIGNvbW1hbmRzIGFyZSB0cmVhdGVkIGJ5IFZpbSBqdXN0IGxpa2UgYW55IG90aGVyIGV4IGNvbW1hbmRzLiAgVGhleQorY2FuIGhhdmUgYXJndW1lbnRzLCBvciBoYXZlIGEgcmFuZ2Ugc3BlY2lmaWVkLiAgQXJndW1lbnRzIGFyZSBzdWJqZWN0IHRvCitjb21wbGV0aW9uIGFzIGZpbGVuYW1lcywgYnVmZmVycywgZXRjLiAgRXhhY3RseSBob3cgdGhpcyB3b3JrcyBkZXBlbmRzIHVwb24gdGhlCiBjb21tYW5kJ3MgYXR0cmlidXRlcywgd2hpY2ggYXJlIHNwZWNpZmllZCB3aGVuIHRoZSBjb21tYW5kIGlzIGRlZmluZWQuCiAKIFRoZXJlIGFyZSBhIG51bWJlciBvZiBhdHRyaWJ1dGVzLCBzcGxpdCBpbnRvIGZvdXIgY2F0ZWdvcmllczogYXJndW1lbnQKLWhhbmRsaW5nLCBjb21wbGV0aW9uIGJlaGF2aW9yLCByYW5nZSBoYW5kbGluZywgYW5kIHNwZWNpYWwgY2FzZXMuIFRoZQoraGFuZGxpbmcsIGNvbXBsZXRpb24gYmVoYXZpb3IsIHJhbmdlIGhhbmRsaW5nLCBhbmQgc3BlY2lhbCBjYXNlcy4gIFRoZQogYXR0cmlidXRlcyBhcmUgZGVzY3JpYmVkIGJlbG93LCBieSBjYXRlZ29yeS4KIAogQXJndW1lbnQgaGFuZGxpbmcJCQkJCSpFMTc1KiAqRTE3NioKIAogQnkgZGVmYXVsdCwgYSB1c2VyIGRlZmluZWQgY29tbWFuZCB3aWxsIHRha2Ugbm8gYXJndW1lbnRzIChhbmQgYW4gZXJyb3IgaXMKLXJlcG9ydGVkIGlmIGFueSBhcmUgc3VwcGxpZWQpLiBIb3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoYXQgdGhlCi1jb21tYW5kIGNhbiB0YWtlIGFyZ3VtZW50cywgdXNpbmcgdGhlIC1uYXJncyBhdHRyaWJ1dGUuIFZhbGlkIGNhc2VzIGFyZToKK3JlcG9ydGVkIGlmIGFueSBhcmUgc3VwcGxpZWQpLiAgSG93ZXZlciwgaXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSB0aGF0IHRoZQorY29tbWFuZCBjYW4gdGFrZSBhcmd1bWVudHMsIHVzaW5nIHRoZSAtbmFyZ3MgYXR0cmlidXRlLiAgVmFsaWQgY2FzZXMgYXJlOgogCiAJLW5hcmdzPTAgICAgTm8gYXJndW1lbnRzIGFyZSBhbGxvd2VkICh0aGUgZGVmYXVsdCkKIAktbmFyZ3M9MSAgICBFeGFjdGx5IG9uZSBhcmd1bWVudCBpcyByZXF1aXJlZApAQCAtOTYxLDExICs5NjEsMTEgQEAKIAogUmFuZ2UgaGFuZGxpbmcJCQkJCQkqRTE3NyogKkUxNzgqCiAKLUJ5IGRlZmF1bHQsIHVzZXItZGVmaW5lZCBjb21tYW5kcyBkbyBub3QgYWNjZXB0IGEgbGluZSBudW1iZXIgcmFuZ2UuIEhvd2V2ZXIsCitCeSBkZWZhdWx0LCB1c2VyLWRlZmluZWQgY29tbWFuZHMgZG8gbm90IGFjY2VwdCBhIGxpbmUgbnVtYmVyIHJhbmdlLiAgSG93ZXZlciwKIGl0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgdGhhdCB0aGUgY29tbWFuZCBkb2VzIHRha2UgYSByYW5nZSAodGhlIC1yYW5nZQogYXR0cmlidXRlKSwgb3IgdGhhdCBpdCB0YWtlcyBhbiBhcmJpdHJhcnkgY291bnQgdmFsdWUsIGVpdGhlciBpbiB0aGUgbGluZQogbnVtYmVyIHBvc2l0aW9uICgtcmFuZ2U9TiwgbGlrZSB0aGUgfDpzcGxpdHwgY29tbWFuZCkgb3IgYXMgYSAiY291bnQiCi1hcmd1bWVudCAoLWNvdW50PU4sIGxpa2UgdGhlIHw6TmV4dHwgY29tbWFuZCkuIFBvc3NpYmxlIGF0dHJpYnV0ZXMgYXJlOgorYXJndW1lbnQgKC1jb3VudD1OLCBsaWtlIHRoZSB8Ok5leHR8IGNvbW1hbmQpLiAgUG9zc2libGUgYXR0cmlidXRlcyBhcmU6CiAKIAktcmFuZ2UJICAgIFJhbmdlIGFsbG93ZWQsIGRlZmF1bHQgaXMgY3VycmVudCBsaW5lCiAJLXJhbmdlPSUgICAgUmFuZ2UgYWxsb3dlZCwgZGVmYXVsdCBpcyB3aG9sZSBmaWxlICgxLCQpCkBAIC05OTcsOSArOTk3LDkgQEAKIFJlcGxhY2VtZW50IHRleHQKIAogVGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIGEgdXNlciBkZWZpbmVkIGNvbW1hbmQgaXMgc2Nhbm5lZCBmb3Igc3BlY2lhbCBlc2NhcGUKLXNlcXVlbmNlcywgdXNpbmcgPC4uLj4gbm90YXRpb24uIEVzY2FwZSBzZXF1ZW5jZXMgYXJlIHJlcGxhY2VkIHdpdGggdmFsdWVzCi1mcm9tIHRoZSBlbnRlcmVkIGNvbW1hbmQgbGluZSwgYW5kIGFsbCBvdGhlciB0ZXh0IGlzIGNvcGllZCB1bmNoYW5nZWQuIFRoZQotcmVzdWx0aW5nIHN0cmluZyBpcyBleGVjdXRlZCBhcyBhbiBFeCBjb21tYW5kLiBJZiB0aGUgaW5pdGlhbCA8IG9mIGFuIGVzY2FwZQorc2VxdWVuY2VzLCB1c2luZyA8Li4uPiBub3RhdGlvbi4gIEVzY2FwZSBzZXF1ZW5jZXMgYXJlIHJlcGxhY2VkIHdpdGggdmFsdWVzCitmcm9tIHRoZSBlbnRlcmVkIGNvbW1hbmQgbGluZSwgYW5kIGFsbCBvdGhlciB0ZXh0IGlzIGNvcGllZCB1bmNoYW5nZWQuICBUaGUKK3Jlc3VsdGluZyBzdHJpbmcgaXMgZXhlY3V0ZWQgYXMgYW4gRXggY29tbWFuZC4gIElmIHRoZSBpbml0aWFsIDwgb2YgYW4gZXNjYXBlCiBzZXF1ZW5jZSBpcyBwcmVjZWRlZCBieSBhIGJhY2tzbGFzaCwgdGhlIHNlcXVlbmNlIGlzIGNvcGllZCB1bmNoYW5nZWQuCiAKIFRoZSB2YWxpZCBlc2NhcGUgc2VxdWVuY2VzIGFyZQpAQCAtMTAxNyw3ICsxMDE3LDcgQEAKIAkJZXhwYW5kcyB0byBub3RoaW5nLgogCQkJCQkJKjxyZWc+KiAqPHJlZ2lzdGVyPioKIAk8cmVnPgkoU2VlIHRoZSAnLXJlZ2lzdGVyJyBhdHRyaWJ1dGUpIFRoZSBvcHRpb25hbCByZWdpc3RlciwKLQkJaWYgc3BlY2lmaWVkLiBPdGhlcndpc2UsIGV4cGFuZHMgdG8gbm90aGluZy4gPHJlZ2lzdGVyPgorCQlpZiBzcGVjaWZpZWQuICBPdGhlcndpc2UsIGV4cGFuZHMgdG8gbm90aGluZy4gIDxyZWdpc3Rlcj4KIAkJaXMgYSBzeW5vbnltIGZvciB0aGlzLgogCQkJCQkJKjxhcmdzPioKIAk8YXJncz4JVGhlIGNvbW1hbmQgYXJndW1lbnRzLCBleGFjdGx5IGFzIHN1cHBsaWVkIChidXQgYXMKQEAgLTEwMzQsNyArMTAzNCw3IEBACiBmb3IgdXNlIGluIGFuIGV4cHJlc3Npb24uICBUaGlzIHVzZXMgdGhlIGFyZ3VtZW50IGFzIG9uZSBzaW5nbGUgdmFsdWUuCiAKIFRvIGFsbG93IGNvbW1hbmRzIHRvIHBhc3MgdGhlaXIgYXJndW1lbnRzIG9uIHRvIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uLCB0aGVyZQotaXMgYSBzcGVjaWFsIGZvcm0gPGYtYXJncz4gKCJmdW5jdGlvbiBhcmdzIikuIFRoaXMgc3BsaXRzIHRoZSBjb21tYW5kCitpcyBhIHNwZWNpYWwgZm9ybSA8Zi1hcmdzPiAoImZ1bmN0aW9uIGFyZ3MiKS4gIFRoaXMgc3BsaXRzIHRoZSBjb21tYW5kCiBhcmd1bWVudHMgYXQgc3BhY2VzIGFuZCBUYWJzLCBxdW90ZXMgZWFjaCBhcmd1bWVudCBpbmRpdmlkdWFsbHksIGFuZCB0aGUKIDxmLWFyZ3M+IHNlcXVlbmNlIGlzIHJlcGxhY2VkIGJ5IHRoZSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBxdW90ZWQgYXJndW1lbnRzLgogU2VlIHRoZSBNeWNtZCBleGFtcGxlIGJlbG93LiAgV2hlbiB0aGVyZSBpcyBubyBhcmd1bWVudCwgPGYtYXJncz4gYWxzbyBoYXMgbm8KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL21ieXRlLnR4dCBiL3J1bnRpbWUvZG9jL21ieXRlLnR4dAppbmRleCBiZTYzNjU4Li4zNjdkZThiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tYnl0ZS50eHQKKysrIGIvcnVudGltZS9kb2MvbWJ5dGUudHh0CkBAIC0xLDQgKzEsNCBAQAotKm1ieXRlLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEZlYiAxMworKm1ieXRlLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyIGV0IGFsLgpAQCAtNDM2LDcgKzQzNiw3IEBACiAJZnRwOi8vZnRwLmN1aGsuaGsvcHViL2NoaW5lc2UvaWZjc3Mvc29mdHdhcmUvdW5peC9jb252ZXJ0L2hjLTMwLnRhci5negogCiAgICAgS29yZWFuOgkgICAgaG1jb252Ci0JSG1jb252IGlzIEtvcmVhbiBjb2RlIGNvbnZlcnNpb24gdXRpbGl0eSBlc3BlY2lhbGx5IGZvciBFLW1haWwuIEl0IGNhbgorCUhtY29udiBpcyBLb3JlYW4gY29kZSBjb252ZXJzaW9uIHV0aWxpdHkgZXNwZWNpYWxseSBmb3IgRS1tYWlsLiAgSXQgY2FuCiAJY29udmVydCBiZXR3ZWVuIEVVQy1LUiBhbmQgSVNPLTIwMjItS1IuICBIbWNvbnYgY2FuIGJlIGZvdW5kIGF0OgogCWZ0cDovL2Z0cC5rYWlzdC5hYy5rci9wdWIvaGFuZ3VsL2NvZGUvaG1jb252LwogCkBAIC00NDQsNyArNDQ0LDcgQEAKIAlMdiBpcyBhIFBvd2VyZnVsIE11bHRpbGluZ3VhbCBGaWxlIFZpZXdlci4gIEFuZCBpdCBjYW4gYmUgd29ya2VkIGFzCiAJfGNoYXJzZXR8IGNvbnZlcnRlci4gIFN1cHBvcnRlZCB8Y2hhcnNldHw6IElTTy0yMDIyLUNOLCBJU08tMjAyMi1KUCwKIAlJU08tMjAyMi1LUiwgRVVDLUNOLCBFVUMtSlAsIEVVQy1LUiwgRVVDLVRXLCBVVEYtNywgVVRGLTgsIElTTy04ODU5Ci0Jc2VyaWVzLCBTaGlmdF9KSVMsIEJpZzUgYW5kIEhaLiBMdiBjYW4gYmUgZm91bmQgYXQ6CisJc2VyaWVzLCBTaGlmdF9KSVMsIEJpZzUgYW5kIEhaLiAgTHYgY2FuIGJlIGZvdW5kIGF0OgogCWh0dHA6Ly93d3cuZmYuaWlqNHUub3IuanAvfm5ydC9mcmVld2FyZS9sdjQ0OTUudGFyLmd6CiAKIApAQCAtNTA2LDcgKzUwNiw3IEBACiBvciwgZm9yIGJpZ2dlciBjaGFyYWN0ZXI6ID4KICAgeHRlcm0gLXU4IC1mbiAtbWlzYy1maXhlZC1tZWRpdW0tci1ub3JtYWwtLTE1LTE0MC03NS03NS1jLTkwLWlzbzEwNjQ2LTEKIAotYW5kIHlvdSB3aWxsIGhhdmUgYSB3b3JraW5nIFVURi04IHRlcm1pbmFsIGVtdWxhdG9yLiBUcnkgYm90aCA+CithbmQgeW91IHdpbGwgaGF2ZSBhIHdvcmtpbmcgVVRGLTggdGVybWluYWwgZW11bGF0b3IuICBUcnkgYm90aCA+CiAKICAgIGNhdCB1dGYtOC1kZW1vLnR4dAogICAgdmltIHV0Zi04LWRlbW8udHh0CkBAIC03NjEsNyArNzYxLDcgQEAKICAgbnVtYmVyIG9mIEhpcmEtZ2FuYSBjaGFyYWN0ZXJzIGFyZSA3Ni4gIFNvLCBmaXJzdCwgd2UgcHJlLWlucHV0IHRleHQgYXMKICAgcHJvbm91bmNlZCBpbiBIaXJhLWdhbmEsIHNlY29uZCwgd2UgY29udmVydCBIaXJhLWdhbmEgdG8gS2Fuamkgb3IgS2F0YS1LYW5hLAogICBpZiBuZWVkZWQuICBUaGVyZSBhcmUgc29tZSBLYW5hLUthbmppIGNvbnZlcnNpb24gc2VydmVyOiBqc2VydmVyCi0gIChkaXN0cmlidXRlZCB3aXRoIFdubiwgc2VlIGJlbG93KSBhbmQgY2FubmEuIENhbm5hIGNvdWxkIGJlIGZvdW5kIGF0OgorICAoZGlzdHJpYnV0ZWQgd2l0aCBXbm4sIHNlZSBiZWxvdykgYW5kIGNhbm5hLiAgQ2FubmEgY291bGQgYmUgZm91bmQgYXQ6CiAgIGZ0cDovL2Z0cC5uZWMuY28uanAvcHViL0Nhbm5hLyAobm8gbG9uZ2VyIHdvcmtzKS4KIAogVGhlcmUgaXMgYSBnb29kIGlucHV0IHN5c3RlbTogV25uNC4yLiAgV25uIDQuMiBjb250YWlucywKQEAgLTgwMSw3ICs4MDEsNyBAQAogICAgIFByZWVkaXQgQXJlYSBhbmQgU3RhdHVzIEFyZWEgYXJlIHBlcmZvcm1lZCBieSB0aGUgY2xpZW50IGFwcGxpY2F0aW9uIGluCiAgICAgdGhlIGFyZWEgb2YgYXBwbGljYXRpb24uICBUaGUgY2xpZW50IGFwcGxpY2F0aW9uIGlzIGRpcmVjdGVkIGJ5IHRoZQogICAgIHxJTS1zZXJ2ZXJ8IHRvIGRpc3BsYXkgYWxsIHByZS1lZGl0IGRhdGEgYXQgdGhlIGxvY2F0aW9uIG9mIHRleHQKLSAgICBpbnNlcnRpb24uIFRoZSBjbGllbnQgcmVnaXN0ZXJzIGNhbGxiYWNrcyBpbnZva2VkIGJ5IHRoZSBpbnB1dCBtZXRob2QKKyAgICBpbnNlcnRpb24uICBUaGUgY2xpZW50IHJlZ2lzdGVycyBjYWxsYmFja3MgaW52b2tlZCBieSB0aGUgaW5wdXQgbWV0aG9kCiAgICAgZHVyaW5nIHByZS1lZGl0aW5nLgogKi4gIG92ZXItdGhlLXNwb3QJCQkJCSpPdmVyVGhlU3BvdCoKICAgICBTdGF0dXMgQXJlYSBpcyBjcmVhdGVkIGluIGEgZml4ZWQgcG9zaXRpb24gd2l0aGluIHRoZSBhcmVhIG9mIGFwcGxpY2F0aW9uLApAQCAtMTIzMSw3ICsxMjMxLDcgQEAKIFVwIHRvIHR3byBjb21iaW5pbmcgY2hhcmFjdGVycyBjYW4gYmUgdXNlZC4gIFRoZSBjb21iaW5pbmcgY2hhcmFjdGVyIGlzIGRyYXduCiBvbiB0b3Agb2YgdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIuICBXaGVuIGVkaXRpbmcgdGV4dCBhIGNvbXBvc2luZyBjaGFyYWN0ZXIgaXMKIG1vc3RseSBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIuICBGb3IgZXhhbXBsZSAieCIgd2lsbAotZGVsZXRlIGEgY2hhcmFjdGVyIGFuZCBpdHMgZm9sbG93aW5nIGNvbXBvc2luZyBjaGFyYWN0ZXJzIGJ5IGRlZmF1bHQuIElmIHRoZQorZGVsZXRlIGEgY2hhcmFjdGVyIGFuZCBpdHMgZm9sbG93aW5nIGNvbXBvc2luZyBjaGFyYWN0ZXJzIGJ5IGRlZmF1bHQuICBJZiB0aGUKICdkZWxjb21iaW5lJyBvcHRpb24gaXMgb24sIHRoZW4gcHJlc3NpbmcgJ3gnIHdpbGwgZGVsZXRlIHRoZSBjb21iaW5pbmcKIGNoYXJhY3RlcnMsIG9uZSBhdCBhIHRpbWUsIHRoZW4gdGhlIGJhc2UgY2hhcmFjdGVyLiAgQnV0IHdoZW4gaW5zZXJ0aW5nLCB5b3UKIHR5cGUgdGhlIGZpcnN0IGNoYXJhY3RlciBhbmQgdGhlIGZvbGxvd2luZyBjb21wb3NpbmcgY2hhcmFjdGVycyBzZXBhcmF0ZWx5LApAQCAtMTI1Myw3ICsxMjUzLDcgQEAKIAogVXNlZnVsIGNvbW1hbmRzOgogLSAiZ2EiIHNob3dzIHRoZSBkZWNpbWFsLCBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgdmFsdWUgb2YgdGhlIGNoYXJhY3RlciB1bmRlcgotICB0aGUgY3Vyc29yLiAgSWYgdGhlcmUgYXJlIGNvbXBvc2luZyBjaGFyYWN0ZXJzIHRoZXNlIGFyZSBzaG93biB0b28uIChpZiB0aGUKKyAgdGhlIGN1cnNvci4gIElmIHRoZXJlIGFyZSBjb21wb3NpbmcgY2hhcmFjdGVycyB0aGVzZSBhcmUgc2hvd24gdG9vLiAgKElmIHRoZQogICBtZXNzYWdlIGlzIHRydW5jYXRlZCwgdXNlICI6bWVzc2FnZXMiKS4KIC0gImc4IiBzaG93cyB0aGUgYnl0ZXMgdXNlZCBpbiBhIFVURi04IGNoYXJhY3RlciwgYWxzbyB0aGUgY29tcG9zaW5nCiAgIGNoYXJhY3RlcnMsIGFzIGhleCBudW1iZXJzLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbW90aW9uLnR4dCBiL3J1bnRpbWUvZG9jL21vdGlvbi50eHQKaW5kZXggY2ZjMzE4Yi4uMGM2NWJiNSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbW90aW9uLnR4dAorKysgYi9ydW50aW1lL2RvYy9tb3Rpb24udHh0CkBAIC0xLDQgKzEsNCBAQAotKm1vdGlvbi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEZlYiAwOAorKm1vdGlvbi50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNzIsNyArNzIsNyBAQAogY2hhcmFjdGVyd2lzZSkuICBIb3dldmVyLCB0aGVyZSBhcmUgc29tZSBleGNlcHRpb25zLgogCiAJCQkJCQkqZXhjbHVzaXZlKiAqaW5jbHVzaXZlKgotQSBjaGFyYWN0ZXIgbW90aW9uIGlzIGVpdGhlciBpbmNsdXNpdmUgb3IgZXhjbHVzaXZlLiBXaGVuIGluY2x1c2l2ZSwgdGhlIHN0YXJ0CitBIGNoYXJhY3RlciBtb3Rpb24gaXMgZWl0aGVyIGluY2x1c2l2ZSBvciBleGNsdXNpdmUuICBXaGVuIGluY2x1c2l2ZSwgdGhlIHN0YXJ0CiBhbmQgZW5kIHBvc2l0aW9uIG9mIHRoZSBtb3Rpb24gYXJlIGluY2x1ZGVkIGluIHRoZSBvcGVyYXRpb24uICBXaGVuIGV4Y2x1c2l2ZSwKIHRoZSBsYXN0IGNoYXJhY3RlciB0b3dhcmRzIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciBpcyBub3QgaW5jbHVkZWQuICBMaW5ld2lzZQogbW90aW9ucyBhbHdheXMgaW5jbHVkZSB0aGUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbi4KQEAgLTEwNjEsNyArMTA2MSw3IEBACiAKIAkJCQkJCQkqZywqICpFNjYzKgogZywJCQlHbyB0byBbY291bnRdIG5ld2VyIGN1cnNvciBwb3NpdGlvbiBpbiBjaGFuZ2UgbGlzdC4KLQkJCUp1c3QgbGlrZSAiZzt8IGJ1dCBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLgorCQkJSnVzdCBsaWtlIHxnO3wgYnV0IGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uCiAJCQkobm90IGEgbW90aW9uIGNvbW1hbmQpCiAJCQl7bm90IGluIFZpfQogCQkJe25vdCBhdmFpbGFibGUgd2l0aG91dCB0aGUgK2p1bXBsaXN0IGZlYXR1cmV9CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9uZXRiZWFucy50eHQgYi9ydW50aW1lL2RvYy9uZXRiZWFucy50eHQKaW5kZXggNTAwNzEyMi4uZDY0MjQ5NyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbmV0YmVhbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL25ldGJlYW5zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpuZXRiZWFucy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBKYW4gMzEKKypuZXRiZWFucy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgR29yZG9uIFByaWV1cgpAQCAtMzgsNyArMzgsNyBAQAogcHJvZHVjdCBsaW5lLgogCiBDdXJyZW50IHJlbGVhc2VzIG9mIE5ldEJlYW5zIHByb3ZpZGUgZnVsbCBzdXBwb3J0IGZvciBKYXZhIGFuZCBsaW1pdGVkIHN1cHBvcnQKLWZvciBDLCBDKyssIGFuZCBGb3J0cmFuLiBDdXJyZW50IHJlbGVhc2VzIG9mIFN1biBPTkUgU3R1ZGlvIHByb3ZpZGUgZnVsbAorZm9yIEMsIEMrKywgYW5kIEZvcnRyYW4uICBDdXJyZW50IHJlbGVhc2VzIG9mIFN1biBPTkUgU3R1ZGlvIHByb3ZpZGUgZnVsbAogc3VwcG9ydCBmb3IgSmF2YSwgQywgQysrLCBhbmQgRm9ydHJhbi4KIAogVGhlIGludGVyZmFjZSB0byBOZXRCZWFucyBpcyBhbHNvIHN1cHBvcnRlZCBieSBBZ2lkZSwgdGhlIEEtQS1QIEdVSSBJREUuCkBAIC01MCwxMiArNTAsMTIgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMi4gTmV0QmVhbnMgS2V5IEJpbmRpbmdzCQkJCSpuZXRiZWFucy1rZXliaW5kaW5ncyoKIAotVmltIHVuZGVyc3RhbmRzIGEgbnVtYmVyIG9mIGtleSBiaW5kaW5ncyB0aGF0IGV4ZWN1dGUgTmV0QmVhbnMgY29tbWFuZHMuIFRoZXNlCi1hcmUgdHlwaWNhbGx5IGFsbCB0aGUgRnVuY3Rpb24ga2V5IGNvbWJpbmF0aW9ucy4gVG8gZXhlY3V0ZSBhIE5ldEJlYW5zIGNvbW1hbmQsCi10aGUgdXNlciBtdXN0IHByZXNzIHRoZSBQYXVzZSBrZXkgZm9sbG93ZWQgYnkgYSBOZXRCZWFucyBrZXkgYmluZGluZy4gRm9yCi1leGFtcGxlLCBpbiBvcmRlciB0byBjb21waWxlIGEgSmF2YSBmaWxlLCB0aGUgTmV0QmVhbnMga2V5IGJpbmRpbmcgaXMgIkY5Ii4gU28sCi13aGlsZSBpbiB2aW0sIHByZXNzICJQYXVzZSBGOSIgdG8gY29tcGlsZSBhIGphdmEgZmlsZS4gVG8gdG9nZ2xlIGEgYnJlYWtwb2ludAotYXQgdGhlIGN1cnJlbnQgbGluZSwgcHJlc3MgIlBhdXNlIFNoaWZ0IEY4Ii4KK1ZpbSB1bmRlcnN0YW5kcyBhIG51bWJlciBvZiBrZXkgYmluZGluZ3MgdGhhdCBleGVjdXRlIE5ldEJlYW5zIGNvbW1hbmRzLgorVGhlc2UgYXJlIHR5cGljYWxseSBhbGwgdGhlIEZ1bmN0aW9uIGtleSBjb21iaW5hdGlvbnMuICBUbyBleGVjdXRlIGEgTmV0QmVhbnMKK2NvbW1hbmQsIHRoZSB1c2VyIG11c3QgcHJlc3MgdGhlIFBhdXNlIGtleSBmb2xsb3dlZCBieSBhIE5ldEJlYW5zIGtleSBiaW5kaW5nLgorRm9yIGV4YW1wbGUsIGluIG9yZGVyIHRvIGNvbXBpbGUgYSBKYXZhIGZpbGUsIHRoZSBOZXRCZWFucyBrZXkgYmluZGluZyBpcworIkY5Ii4gIFNvLCB3aGlsZSBpbiB2aW0sIHByZXNzICJQYXVzZSBGOSIgdG8gY29tcGlsZSBhIGphdmEgZmlsZS4gIFRvIHRvZ2dsZSBhCiticmVha3BvaW50IGF0IHRoZSBjdXJyZW50IGxpbmUsIHByZXNzICJQYXVzZSBTaGlmdCBGOCIuCiAKIFRoZSBQYXVzZSBrZXkgaXMgRnVuY3Rpb24ga2V5IDIxLiAgSWYgeW91IGRvbid0IGhhdmUgYSB3b3JraW5nIFBhdXNlIGtleSBhbmQKIHdhbnQgdG8gdXNlIEY4IGluc3RlYWQsIHVzZTogPgpAQCAtODEsMTAgKzgxLDEwIEBACiB1bmNvbW1lbnRpbmcgYSBsaW5lIHdpdGggIi0tZGlzYWJsZS1uZXRiZWFucyIgaW4gdGhlIE1ha2VmaWxlLgogCiBDdXJyZW50bHksIG9ubHkgZ3ZpbSBpcyBzdXBwb3J0ZWQgaW4gdGhpcyBpbnRlZ3JhdGlvbiBhcyBOZXRCZWFucyBkb2VzIG5vdAotaGF2ZSBtZWFucyB0byBzdXBwbHkgYSB0ZXJtaW5hbCBlbXVsYXRvciBmb3IgdGhlIHZpbSBjb21tYW5kLiBGdXJ0aGVybW9yZSwKK2hhdmUgbWVhbnMgdG8gc3VwcGx5IGEgdGVybWluYWwgZW11bGF0b3IgZm9yIHRoZSB2aW0gY29tbWFuZC4gIEZ1cnRoZXJtb3JlLAogdGhlcmUgaXMgb25seSBHVUkgc3VwcG9ydCBmb3IgR1RLLCBHTk9NRSwgYW5kIE1vdGlmLgogCi1JZiBNb3RpZiBzdXBwb3J0IGlzIHJlcXVpcmVkIHRoZSB1c2VyIG11c3Qgc3VwcGx5IFhQTSBsaWJyYXJpZXMuIFNlZQorSWYgTW90aWYgc3VwcG9ydCBpcyByZXF1aXJlZCB0aGUgdXNlciBtdXN0IHN1cHBseSBYUE0gbGlicmFyaWVzLiAgU2VlCiB8d29ya3Nob3AteHBtfCBmb3IgZGV0YWlscyBvbiBvYnRhaW5pbmcgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFhQTS4KIAogCkBAIC05OSw0NSArOTksNDUgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogNC4gRG93bmxvYWRpbmcgTmV0QmVhbnMJCQkJCSpuZXRiZWFucy1kb3dubG9hZCoKIAotVGhlIE5ldEJlYW5zIElERSBpcyBhdmFpbGFibGUgZm9yIGRvd25sb2FkIGZyb20gbmV0YmVhbnMub3JnLiBZb3UgY2FuIGRvd25sb2FkCitUaGUgTmV0QmVhbnMgSURFIGlzIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgZnJvbSBuZXRiZWFucy5vcmcuICBZb3UgY2FuIGRvd25sb2FkCiBhIHJlbGVhc2VkIHZlcnNpb24sIGRvd25sb2FkIHNvdXJjZXMsIG9yIHVzZSBDVlMgdG8gZG93bmxvYWQgdGhlIGN1cnJlbnQKLXNvdXJjZSB0cmVlLiBJZiB5b3UgY2hvb3NlIHRvIGRvd25sb2FkIHNvdXJjZXMsIGZvbGxvdyBkaXJlY3Rpb25zIGZyb20KK3NvdXJjZSB0cmVlLiAgSWYgeW91IGNob29zZSB0byBkb3dubG9hZCBzb3VyY2VzLCBmb2xsb3cgZGlyZWN0aW9ucyBmcm9tCiBuZXRiZWFucy5vcmcgb24gYnVpbGRpbmcgTmV0QmVhbnMuCiAKIERlcGVuZGluZyBvbiB0aGUgdmVyc2lvbiBvZiBOZXRCZWFucyB5b3UgZG93bmxvYWQsIHlvdSBtYXkgbmVlZCB0byBkbyBmdXJ0aGVyCi13b3JrIHRvIGdldCB0aGUgcmVxdWlyZWQgRXh0ZXJuYWwgRWRpdG9yIG1vZHVsZS4gVGhpcyBpcyB0aGUgbW9kdWxlIHdoaWNoIGxldHMKLU5ldEJlYW5zIHdvcmsgd2l0aCBndmltIChvciB4ZW1hY3MgOi0pLiBTZWUgaHR0cDovL2V4dGVybmFsZWRpdG9yLm5ldGJlYW5zLm9yZword29yayB0byBnZXQgdGhlIHJlcXVpcmVkIEV4dGVybmFsIEVkaXRvciBtb2R1bGUuICBUaGlzIGlzIHRoZSBtb2R1bGUgd2hpY2ggbGV0cworTmV0QmVhbnMgd29yayB3aXRoIGd2aW0gKG9yIHhlbWFjcyA6LSkuICBTZWUgaHR0cDovL2V4dGVybmFsZWRpdG9yLm5ldGJlYW5zLm9yZwogZm9yIGRldGFpbHMgb24gZG93bmxvYWRpbmcgdGhpcyBtb2R1bGUgaWYgeW91ciBOZXRCZWFucyByZWxlYXNlIGRvZXMgbm90IGhhdmUKIGl0LgogCi1Gb3IgQywgQysrLCBhbmQgRm9ydHJhbiBzdXBwb3J0IHlvdSB3aWxsIGFsc28gbmVlZCB0aGUgY3BwIG1vZHVsZS4gU2VlCitGb3IgQywgQysrLCBhbmQgRm9ydHJhbiBzdXBwb3J0IHlvdSB3aWxsIGFsc28gbmVlZCB0aGUgY3BwIG1vZHVsZS4gIFNlZQogaHR0cDovL2NwcC5uZXRiZWFucy5vcmcgZm9yIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGlzIG1vZHVsZS4KIAogWW91IGNhbiBhbHNvIGRvd25sb2FkIFN1biBPTkUgU3R1ZGlvIGZyb20gU3VuIE1pY3Jvc3lzdGVtcywgSW5jIGZvciBhIDMwIGRheQotZnJlZSB0cmlhbC4gU2VlIGh0dHA6Ly93d3cuc3VuLmNvbSBmb3IgZnVydGhlciBkZXRhaWxzLgorZnJlZSB0cmlhbC4gIFNlZSBodHRwOi8vd3d3LnN1bi5jb20gZm9yIGZ1cnRoZXIgZGV0YWlscy4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA1LiBQcmVwYXJpbmcgTmV0QmVhbnMgZm9yIFZpbQkJCQkqbmV0YmVhbnMtcHJlcGFyYXRpb24qCiAKIEluIG9yZGVyIGZvciBOZXRCZWFucyB0byB3b3JrIHdpdGggdmltLCB0aGUgTmV0QmVhbnMgRXh0ZXJuYWwgRWRpdG9yIG1vZHVsZQotbXVzdCBiZSBsb2FkZWQgYW5kIGVuYWJsZWQuIElmIHlvdSBoYXZlIGEgU3VuIE9ORSBTdHVkaW8gRW50ZXJwcmlzZSBFZGl0aW9uCi10aGVuIHRoaXMgbW9kdWxlIHNob3VsZCBiZSBsb2FkZWQgYW5kIGVuYWJsZWQuIElmIHlvdSBoYXZlIGEgTmV0QmVhbnMgcmVsZWFzZQorbXVzdCBiZSBsb2FkZWQgYW5kIGVuYWJsZWQuICBJZiB5b3UgaGF2ZSBhIFN1biBPTkUgU3R1ZGlvIEVudGVycHJpc2UgRWRpdGlvbgordGhlbiB0aGlzIG1vZHVsZSBzaG91bGQgYmUgbG9hZGVkIGFuZCBlbmFibGVkLiAgSWYgeW91IGhhdmUgYSBOZXRCZWFucyByZWxlYXNlCiB5b3UgbWF5IG5lZWQgdG8gZmluZCBhbm90aGVyIHdheSBvZiBvYnRhaW5pbmcgdGhpcyBvcGVuIHNvdXJjZSBtb2R1bGUuCiAKIFlvdSBjYW4gY2hlY2sgaWYgeW91IGhhdmUgdGhpcyBtb2R1bGUgYnkgb3BlbmluZyB0aGUgVG9vbHMtPk9wdGlvbnMgZGlhbG9nCiBhbmQgZHJpbGxpbmcgZG93biB0byB0aGUgIk1vZHVsZXMiIGxpc3QgKElERSBDb25maWd1cmF0aW9uLT5TeXN0ZW0tPk1vZHVsZXMpLgogSWYgeW91ciBNb2R1bGVzIGxpc3QgaGFzIGFuIGVudHJ5IGZvciAiRXh0ZXJuYWwgRWRpdG9yIiB5b3UgbXVzdCBtYWtlIHN1cmUKLWl0IGlzIGVuYWJsZWQgKHRoZSAiRW5hYmxlZCIgcHJvcGVydHkgc2hvdWxkIGhhdmUgdGhlIHZhbHVlICJUcnVlIikuIElmIHlvdXIKK2l0IGlzIGVuYWJsZWQgKHRoZSAiRW5hYmxlZCIgcHJvcGVydHkgc2hvdWxkIGhhdmUgdGhlIHZhbHVlICJUcnVlIikuICBJZiB5b3VyCiBNb2R1bGVzIGxpc3QgaGFzIG5vIEV4dGVybmFsIEVkaXRvciBzZWUgdGhlIG5leHQgc2VjdGlvbiBvbiB8b2J0YWluaW5nLWV4dGVkfC4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA2LiBPYnRhaW5pbmcgdGhlIEV4dGVybmFsIEVkaXRvciBNb2R1bGUJCQkgICAgKm9idGFpbmluZy1leHRlZCoKIAotVGhlcmUgYXJlIDIgd2F5cyBvZiBvYnRhaW5pbmcgdGhlIEV4dGVybmFsIEVkaXRvciBtb2R1bGUuIFRoZSBlYXNpZXN0IHdheQorVGhlcmUgYXJlIDIgd2F5cyBvZiBvYnRhaW5pbmcgdGhlIEV4dGVybmFsIEVkaXRvciBtb2R1bGUuICBUaGUgZWFzaWVzdCB3YXkKIGlzIHRvIHVzZSB0aGUgTmV0QmVhbnMgVXBkYXRlIENlbnRlciB0byBkb3dubG9hZCBhbmQgaW5zdGFsbCB0aGUgbW9kdWxlLgogVW5mb3J0dW5hdGVseSwgc29tZSB2ZXJzaW9ucyBkbyBub3QgaGF2ZSB0aGlzIG1vZHVsZSBpbiB0aGVpciB1cGRhdGUKLWNlbnRlci4gSWYgeW91IGNhbm5vdCBkb3dubG9hZCB2aWEgdGhlIHVwZGF0ZSBjZW50ZXIgeW91IHdpbGwgbmVlZCB0bwotZG93bmxvYWQgc291cmNlcyBhbmQgYnVpbGQgdGhlIG1vZHVsZS4gSSB3aWxsIHRyeSBhbmQgZ2V0IHRoZSBtb2R1bGUKK2NlbnRlci4gIElmIHlvdSBjYW5ub3QgZG93bmxvYWQgdmlhIHRoZSB1cGRhdGUgY2VudGVyIHlvdSB3aWxsIG5lZWQgdG8KK2Rvd25sb2FkIHNvdXJjZXMgYW5kIGJ1aWxkIHRoZSBtb2R1bGUuICBJIHdpbGwgdHJ5IGFuZCBnZXQgdGhlIG1vZHVsZQogYXZhaWxhYmxlIGZyb20gdGhlIE5ldEJlYW5zIFVwZGF0ZSBDZW50ZXIgc28gYnVpbGRpbmcgd2lsbCBiZSB1bm5lY2Vzc2FyeS4KIEFsc28gY2hlY2sgaHR0cDovL2V4dGVybmFsZWRpdG9yLm5ldGJlYW5zLm9yZyBmb3Igb3RoZXIgYXZhaWxhYmlsaXR5IG9wdGlvbnMuCiAKQEAgLTE1MiwyMiArMTUyLDIyIEBACiBhcyBkZXNjcmliZWQgaW4gfG5ldGJlYW5zLXByZXBhcmF0aW9ufCBhbGwgeW91IG5lZWQgdG8gZG8gaXMgdmVyaWZ5IHRoYXQKIHRoZSBndmltIGNvbW1hbmQgbGluZSBpcyBwcm9wZXJseSBjb25maWd1cmVkIGZvciB5b3VyIGVudmlyb25tZW50LgogCi1PcGVuIHRoZSBUb29scy0+T3B0aW9ucyBkaWFsb2cgYW5kIG9wZW4gdGhlIEVkaXRpbmcgY2F0ZWdvcnkuIFNlbGVjdCB0aGUKLUV4dGVybmFsIEVkaXRvci4gVGhlIHJpZ2h0IGhhbmQgcGFuZSBzaG91bGQgY29udGFpbiBhIFByb3BlcnRpZXMgdGFiIGFuZAotYW4gRXhwZXJ0IHRhYi4gSW4gdGhlIFByb3BlcnRpZXMgdGFiIG1ha2Ugc3VyZSB0aGUgIkVkaXRvciBUeXBlIiBpcyBzZXQKLXRvICJWaW0iLiBJbiB0aGUgRXhwZXJ0IHRhYiBtYWtlIHN1cmUgdGhlICJWaW0gQ29tbWFuZCIgaXMgY29ycmVjdC4KK09wZW4gdGhlIFRvb2xzLT5PcHRpb25zIGRpYWxvZyBhbmQgb3BlbiB0aGUgRWRpdGluZyBjYXRlZ29yeS4gIFNlbGVjdCB0aGUKK0V4dGVybmFsIEVkaXRvci4gIFRoZSByaWdodCBoYW5kIHBhbmUgc2hvdWxkIGNvbnRhaW4gYSBQcm9wZXJ0aWVzIHRhYiBhbmQKK2FuIEV4cGVydCB0YWIuICBJbiB0aGUgUHJvcGVydGllcyB0YWIgbWFrZSBzdXJlIHRoZSAiRWRpdG9yIFR5cGUiIGlzIHNldAordG8gIlZpbSIuICBJbiB0aGUgRXhwZXJ0IHRhYiBtYWtlIHN1cmUgdGhlICJWaW0gQ29tbWFuZCIgaXMgY29ycmVjdC4KIAotWW91IHNob3VsZCBiZSBjYXJlZnVsIGlmIHlvdSBjaGFuZ2UgdGhlICJWaW0gQ29tbWFuZCIuIFRoZXJlIGFyZSBjb21tYW5kCitZb3Ugc2hvdWxkIGJlIGNhcmVmdWwgaWYgeW91IGNoYW5nZSB0aGUgIlZpbSBDb21tYW5kIi4gIFRoZXJlIGFyZSBjb21tYW5kCiBsaW5lIG9wdGlvbnMgdGhlcmUgd2hpY2ggbXVzdCBiZSB0aGVyZSBmb3IgdGhlIGNvbm5lY3Rpb24gdG8gYmUgcHJvcGVybHkKLXNldCB1cC4gWW91IGNhbiBjaGFuZ2UgdGhlIGNvbW1hbmQgbmFtZSBidXQgdGhhdHMgYWJvdXQgaXQuIElmIHlvdXIgZ3ZpbQotY2FuIGJlIGZvdW5kIGJ5IHlvdXIgJFBBVEggdGhlbiB0aGUgVklNIENvbW1hbmQgY2FuIHN0YXJ0IHdpdGggImd2aW0iLiBJZgorc2V0IHVwLiAgWW91IGNhbiBjaGFuZ2UgdGhlIGNvbW1hbmQgbmFtZSBidXQgdGhhdCdzIGFib3V0IGl0LiAgSWYgeW91ciBndmltCitjYW4gYmUgZm91bmQgYnkgeW91ciAkUEFUSCB0aGVuIHRoZSBWSU0gQ29tbWFuZCBjYW4gc3RhcnQgd2l0aCAiZ3ZpbSIuICBJZgogeW91IGRvbid0IHdhbnQgZ3ZpbSBzZWFyY2hlZCBmcm9tIHlvdXIgJFBBVEggdGhlbiBoYXJkIGNvZGUgaW4gdGhlIGZ1bGwKLVVuaXggcGF0aCBuYW1lLiBBdCB0aGlzIHBvaW50IHlvdSBzaG91bGQgZ2V0IGEgZ3ZpbSBmb3IgYW55IHNvdXJjZSBmaWxlCitVbml4IHBhdGggbmFtZS4gIEF0IHRoaXMgcG9pbnQgeW91IHNob3VsZCBnZXQgYSBndmltIGZvciBhbnkgc291cmNlIGZpbGUKIHlvdSBvcGVuIGluIE5ldEJlYW5zLgogCiBJZiBzb21lIGZpbGVzIGNvbWUgdXAgaW4gZ3ZpbSBhbmQgb3RoZXJzICh3aXRoIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzKSBjb21lCiB1cCBpbiB0aGUgZGVmYXVsdCBOZXRCZWFucyBlZGl0b3IgeW91IHNob3VsZCB2ZXJpZnkgdGhlIE1JTUUgdHlwZSBpbiB0aGUKLUV4cGVydCB0YWIgTUlNRSBUeXBlIHByb3BlcnR5LiBOZXRCZWFucyBpcyBNSU1FIG9yaWVudGVkIGFuZCB0aGUgRXh0ZXJuYWwKK0V4cGVydCB0YWIgTUlNRSBUeXBlIHByb3BlcnR5LiAgTmV0QmVhbnMgaXMgTUlNRSBvcmllbnRlZCBhbmQgdGhlIEV4dGVybmFsCiBFZGl0b3Igd2lsbCBvbmx5IG9wZW4gTUlNRSB0eXBlcyBzcGVjaWZpZWQgaW4gdGhpcyBwcm9wZXJ0eS4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xOTQsNyArMTk0LDcgQEAKIE5ldEJlYW5zIGNvbm5lY3Rpb24gbG9zdCBmb3IgdGhpcyBidWZmZXIKIAkJTmV0QmVhbnMgaGFzIGJlY29tZSBjb25mdXNlZCBhYm91dCB0aGUgc3RhdGUgb2YgdGhpcyBmaWxlLgogCQlSYXRoZXIgdGhhbiByaXNjIGRhdGEgY29ycnVwdGlvbiwgTmV0QmVhbnMgaGFzIHNldmVyZWQgdGhlCi0JCWNvbm5lY3Rpb24gZm9yIHRoaXMgZmlsZS4gVmltIHdpbGwgdGFrZSBvdmVyIHJlc3BvbnNpYmlsaXR5CisJCWNvbm5lY3Rpb24gZm9yIHRoaXMgZmlsZS4gIFZpbSB3aWxsIHRha2Ugb3ZlciByZXNwb25zaWJpbGl0eQogCQlmb3Igc2F2aW5nIGNoYW5nZXMgdG8gdGhpcyBmaWxlIGFuZCBOZXRCZWFucyB3aWxsIG5vIGxvbmdlcgogCQlrbm93IG9mIHRoZXNlIGNoYW5nZXMuCiAKQEAgLTI0OCwxMyArMjQ4LDEzIEBACiB3b3JrIHdpdGggQWdpZGUgKEEtQS1QIEdVSSBJREUsIHNlZSBodHRwOi8vd3d3LmEtYS1wLm9yZykuICBUaGUgZXh0ZW5zaW9ucyBhcmUKIG1hcmtlZCB3aXRoICJ2ZXJzaW9uIDIuMSIuCiAKLVZlcnNpb24gMi4yIG9mIHRoZSBwcm90b2NvbCBoYXMgc2V2ZXJhbCBtaW5vciBjaGFuZ2VzIHdoaWNoIHNob3VsZCBvbmx5Ci1hZmZlY3QgTmV0QmVhbnMgdXNlcnMgKGllLCBub3QgQWdpZGUgdXNlcnMpLiBIb3dldmVyLCBhIGJ1ZyB3YXMgZml4ZWQgd2hpY2gKLWNvdWxkIGNhdXNlIGNvbmZ1c2lvbi4gVGhlIG5ldGJlYW5zX3NhdmVkKCkgZnVuY3Rpb24gc2VudCBhICJzYXZlIiBwcm90b2NvbAotY29tbWFuZC4gSW4gcHJvdG9jb2wgdmVyc2lvbiAyLjEgYW5kIGVhcmxpZXIgdGhpcyB3YXMgaW5jb3JyZWN0bHkgaW50ZXJwcmV0ZWQKLWFzIGEgbm90aWZpY2F0aW9uIHRoYXQgYSB3cml0ZSBoYWQgdGFrZW4gcGxhY2UuIEluIHJlYWxpdHksIGl0IHRvbGQgTmV0QmVhbnMKLXRvIHNhdmUgdGhlIGZpbGUgc28gbXVsdGlwbGUgd3JpdGVzIHdlcmUgYmVpbmcgZG9uZS4gVGhpcyBjYXVzZWQgdmFyaW91cwotcHJvYmxlbXMgYW5kIGhhcyBiZWVuIGZpeGVkIGluIDIuMi4gVG8gZGVjcmVhc2UgdGhlIGxpa2VsaWhvb2Qgb2YgdGhpcworVmVyc2lvbiAyLjIgb2YgdGhlIHByb3RvY29sIGhhcyBzZXZlcmFsIG1pbm9yIGNoYW5nZXMgd2hpY2ggc2hvdWxkIG9ubHkgYWZmZWN0CitOZXRCZWFucyB1c2VycyAoaWUsIG5vdCBBZ2lkZSB1c2VycykuICBIb3dldmVyLCBhIGJ1ZyB3YXMgZml4ZWQgd2hpY2ggY291bGQKK2NhdXNlIGNvbmZ1c2lvbi4gIFRoZSBuZXRiZWFuc19zYXZlZCgpIGZ1bmN0aW9uIHNlbnQgYSAic2F2ZSIgcHJvdG9jb2wKK2NvbW1hbmQuICBJbiBwcm90b2NvbCB2ZXJzaW9uIDIuMSBhbmQgZWFybGllciB0aGlzIHdhcyBpbmNvcnJlY3RseSBpbnRlcnByZXRlZAorYXMgYSBub3RpZmljYXRpb24gdGhhdCBhIHdyaXRlIGhhZCB0YWtlbiBwbGFjZS4gIEluIHJlYWxpdHksIGl0IHRvbGQgTmV0QmVhbnMKK3RvIHNhdmUgdGhlIGZpbGUgc28gbXVsdGlwbGUgd3JpdGVzIHdlcmUgYmVpbmcgZG9uZS4gIFRoaXMgY2F1c2VkIHZhcmlvdXMKK3Byb2JsZW1zIGFuZCBoYXMgYmVlbiBmaXhlZCBpbiAyLjIuICBUbyBkZWNyZWFzZSB0aGUgbGlrZWxpaG9vZCBvZiB0aGlzCiBjb25mdXNpb24gaGFwcGVuaW5nIGFnYWluLCBuZXRiZWFuc19zYXZlZCgpIGhhcyBiZWVuIHJlbmFtZWQgdG8KIG5ldGJlYW5zX3NhdmVfYnVmZmVyKCkuCiAKQEAgLTQyOCw3ICs0MjgsNyBAQAogCiBpbnNlcnREb25lCiAJCVNlbnQgYnkgTmV0QmVhbnMgdG8gdGVsbCB2aW0gYW4gaW5pdGlhbCBmaWxlIGluc2VydCBpcyBkb25lLgotCQlUaGlzIHRyaWdnZXJzIGEgcmVhZCBtZXNzYWdlIGJlaW5nIHByaW50ZWQuIFByaW9yIHRvIHZlcnNpb24KKwkJVGhpcyB0cmlnZ2VycyBhIHJlYWQgbWVzc2FnZSBiZWluZyBwcmludGVkLiAgUHJpb3IgdG8gdmVyc2lvbgogCQkyLjMsIG5vIHJlYWQgbWVzc2FnZXMgd2VyZSBkaXNwbGF5ZWQgYWZ0ZXIgb3BlbmluZyBhIGZpbGUuCiAJCU5ldyBpbiB2ZXJzaW9uIDIuMy4KIApAQCAtNDY2LDggKzQ2Niw4IEBACiAJCU5ldyBpbiB2ZXJzaW9uIDIuMi4KIAogc2F2ZURvbmUKLQkJU2VudCBieSBOZXRCZWFucyB0byB0ZWxsIHZpbSBhIHNhdmUgaXMgZG9uZS4gVGhpcyB0cmlnZ2VycwotCQlhIHNhdmUgbWVzc2FnZSBiZWluZyBwcmludGVkLiBQcmlvciB0byB2ZXJzaW9uIDIuMywgbm8gc2F2ZQorCQlTZW50IGJ5IE5ldEJlYW5zIHRvIHRlbGwgdmltIGEgc2F2ZSBpcyBkb25lLiAgVGhpcyB0cmlnZ2VycworCQlhIHNhdmUgbWVzc2FnZSBiZWluZyBwcmludGVkLiAgUHJpb3IgdG8gdmVyc2lvbiAyLjMsIG5vIHNhdmUKIAkJbWVzc2FnZXMgd2VyZSBkaXNwbGF5ZWQgYWZ0ZXIgYSBzYXZlLgogCQlOZXcgaW4gdmVyc2lvbiAyLjMuCiAKQEAgLTUzOSw3ICs1MzksNyBAQAogCiBzcGVjaWFsS2V5cwogCQlNYXAgYSBzZXQgb2Yga2V5cyAobW9zdGx5IGZ1bmN0aW9uIGtleXMpIHRvIGJlIHBhc3NlZCBiYWNrCi0JCXRvIE5ldEJlYW5zIGZvciBwcm9jZXNzaW5nLiBUaGlzIGxldHMgTmV0QmVhbnMgaG90a2V5cyBiZQorCQl0byBOZXRCZWFucyBmb3IgcHJvY2Vzc2luZy4gIFRoaXMgbGV0cyBOZXRCZWFucyBob3RrZXlzIGJlCiAJCXVzZWQgZnJvbSB2aW0uCiAJCUltcGxlbWVudGVkIGluIHZlcnNpb24gMi4zLgogCkBAIC02NTIsNyArNjUyLDcgQEAKIAkJYXQgdGhlIHRpbWUgb2YgdGhlIHJlbGVhc2UuICBPbmx5IGZvciBidWZmZXJzIHRoYXQgYXJlIG93bmVkCiAJCWJ5IE5ldEJlYW5zLiAgVGhpcyBldmVudCBpcyBub3Qgc2VudCBpZiB0aGUgYnV0dG9uIHdhcwogCQlyZWxlYXNlZCB3aGlsZSB0aGUgbW91c2Ugd2FzIGluIHRoZSBzdGF0dXMgbGluZSBvciBpbiBhCi0JCXNlcGFyYXRvciBsaW5lLiBJZiBjb2wgaXMgbGVzcyB0aGFuIDEgdGhlIGJ1dHRvbiByZWxlYXNlIHdhcworCQlzZXBhcmF0b3IgbGluZS4gIElmIGNvbCBpcyBsZXNzIHRoYW4gMSB0aGUgYnV0dG9uIHJlbGVhc2Ugd2FzCiAJCWluIHRoZSBzaWduIGFyZWEuCiAJCU5ldyBpbiB2ZXJzaW9uIDIuMi4KIApAQCAtNzcyLDggKzc3Miw4IEBACiAJCQkJCQkJKjpuYmtleSoKIDpuYmtleSBrZXkJCQlQYXNzIHRoZSBrZXkgdG8gTmV0QmVhbnMgZm9yIHByb2Nlc3NpbmcKIAotUGFzcyB0aGUga2V5IHRvIE5ldEJlYW5zIGZvciBob3Qta2V5IHByb2Nlc3NpbmcuIFlvdSBzaG91bGQgbm90IG5lZWQgdG8gdXNlCi10aGlzIGNvbW1hbmQgZGlyZWN0bHkuIEhvd2V2ZXIsIE5ldEJlYW5zIHBhc3NlcyBhIGxpc3Qgb2YgaG90LWtleXMgdG8gVmltIGF0CitQYXNzIHRoZSBrZXkgdG8gTmV0QmVhbnMgZm9yIGhvdC1rZXkgcHJvY2Vzc2luZy4gIFlvdSBzaG91bGQgbm90IG5lZWQgdG8gdXNlCit0aGlzIGNvbW1hbmQgZGlyZWN0bHkuICBIb3dldmVyLCBOZXRCZWFucyBwYXNzZXMgYSBsaXN0IG9mIGhvdC1rZXlzIHRvIFZpbSBhdAogc3RhcnR1cCBhbmQgd2hlbiBvbmUgb2YgdGhlc2Uga2V5cyBpcyBwcmVzc2VkLCB0aGlzIGNvbW1hbmQgaXMgZ2VuZXJhdGVkIHRvCiBzZW5kIHRoZSBrZXkgcHJlc3MgYmFjayB0byBOZXRCZWFucy4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCA5NmFiZTllLi5hM2Y3Y2E0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI4Cisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAxNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zMjA5LDggKzMyMDksOCBAQAogCiAJICAndCcJSW5jbHVkZSB0ZWFyb2ZmIG1lbnUgaXRlbXMuICBDdXJyZW50bHkgb25seSB3b3JrcyBmb3IgV2luMzIsCiAJCUdUSyssIGFuZCBNb3RpZiAxLjIgR1VJLgotCSAgJ1QnCUluY2x1ZGUgVG9vbGJhci4gIEN1cnJlbnRseSBvbmx5IGluIFdpbjMyLCBHVEsrLCBNb3RpZiwgYW5kCi0JCUF0aGVuYSBHVUlzLgorCSAgJ1QnCUluY2x1ZGUgVG9vbGJhci4gIEN1cnJlbnRseSBvbmx5IGluIFdpbjMyLCBHVEsrLCBNb3RpZiwgUGhvdG9uCisJICAgICAgICBhbmQgQXRoZW5hIEdVSXMuCiAKIAkgICdyJwlSaWdodC1oYW5kIHNjcm9sbGJhciBpcyBhbHdheXMgcHJlc2VudC4KIAkgICdSJwlSaWdodC1oYW5kIHNjcm9sbGJhciBpcyBwcmVzZW50IHdoZW4gdGhlcmUgaXMgYSB2ZXJ0aWNhbGx5CkBAIC01MDYwLDcgKzUwNjAsOCBAQAogCQkJZmVhdHVyZX0KIAkJCXtub3QgaW4gVml9CiAJVGhpcyBpcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHdvcmRzIHRoYXQgc3BlY2lmaWVzIGhvdwotCSdzY3JvbGxiaW5kJyB3aW5kb3dzIHNob3VsZCBiZWhhdmUuCisJJ3Njcm9sbGJpbmQnIHdpbmRvd3Mgc2hvdWxkIGJlaGF2ZS4gICdzYm8nIHN0YW5kcyBmb3IgU2Nyb2xsQmluZAorCU9wdGlvbnMuCiAJVGhlIGZvbGxvd2luZyB3b3JkcyBhcmUgYXZhaWxhYmxlOgogCSAgICB2ZXIJCUJpbmQgdmVydGljYWwgc2Nyb2xsaW5nIGZvciAnc2Nyb2xsYmluZCcgd2luZG93cwogCSAgICBob3IJCUJpbmQgaG9yaXpvbnRhbCBzY3JvbGxpbmcgZm9yICdzY3JvbGxiaW5kJyB3aW5kb3dzCkBAIC01NjMxLDcgKzU2MzIsNyBAQAogCQkJe25vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSB8K3N5bnRheHwKIAkJCWZlYXR1cmV9CiAJV2hlbiBvbiBzcGVsbCBjaGVja2luZyB3aWxsIGJlIGRvbmUuICBTZWUgfHNwZWxsfC4KLQlUaGUgbGFuZ3VhZ2VzIHVzZWQgYXJlIHNwZWNpZmllZCB3aXRoICdzcGVsbGxhbmcnLgorCVRoZSBsYW5ndWFnZXMgYXJlIHNwZWNpZmllZCB3aXRoICdzcGVsbGxhbmcnLgogCiAJCQkJCQkqJ3NwZWxsbGFuZycqIConc3BsJyoKICdzcGVsbGxhbmcnICdzcGwnCXN0cmluZwkoZGVmYXVsdCBlbXB0eSkKQEAgLTU2NDQsOCArNTY0NSw4IEBACiAJCXNldCBzcGVsbGxhbmc9ZW5fdXMsbmwKIDwJVGhpcyBtZWFucyBib3RoIFVTIEVuZ2xpc2ggYW5kIER1dGNoIHdvcmRzIGFyZSByZWNvZ25pemVkLiAgV29yZHMgdGhhdAogCWFyZSBub3QgcmVjb2duaXplZCB3aWxsIGJlIGhpZ2hsaWdodGVkLgotCVdoZW4gJ2VuY29kaW5nJyBpcyBzZXQgdGhlIHdvcmQgbGlzdHMgYXJlIGxvYWRlZCBhZ2Fpbi4gIFRodXMgaXQncyBhCi0JZ29vZCBpZGVhIHRvIHNldCAnc3BlbGxsYW5nJyBhZnRlciBzZXR0aW5nICdlbmNvZGluZycuCisJV2hlbiAnZW5jb2RpbmcnIGlzIHNldCB0aGUgd29yZCBsaXN0cyBhcmUgcmVsb2FkZWQuICBUaHVzIGl0J3MgYSBnb29kCisJaWRlYSB0byBzZXQgJ3NwZWxsbGFuZycgYWZ0ZXIgc2V0dGluZyAnZW5jb2RpbmcnLgogCU1vcmUgaW5mbyBhdCB8c3BlbGx8LgogCiAJCQkqJ3NwbGl0YmVsb3cnKiAqJ3NiJyogKidub3NwbGl0YmVsb3cnKiAqJ25vc2InKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfMzkwLnR4dCBiL3J1bnRpbWUvZG9jL29zXzM5MC50eHQKaW5kZXggNDIwMjYwNi4uOTk4YTU1MyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfMzkwLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc18zOTAudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zXzM5MC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDAzIEp1biAwMworKm9zXzM5MC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IFJhbGYgU2NoYW5kbApAQCAtMTIsMTcgKzEyLDE3IEBACiA0LiBBU0NJSS9FQkNESUMgZGVwZW5kZW50IHNjcmlwdHMJfHpPUy1oYXMtZWJjZGljfAogNS4gWFRlcm0gUHJvYmxlbXMJCQl8ek9TLXh0ZXJtfAogNi4gTW90aWYgUHJvYmxlbXMJCQl8ek9TLU1vdGlmfAotNyAgQnVncwkJCQkJfHpPUy1CdWdzfAorNy4gQnVncwkJCQkJfHpPUy1CdWdzfAogOC4gS25vd24gd2Vha25lc3NlcwkJCXx6T1Mtd2Vha25lc3Nlc3wKIDkuIENoYW5nZXMJCQkJfHpPUy1jaGFuZ2VzfAogCiBESVNDTEFJTUVSOiB+Ci1XZSBhcmUgSUJNIGVtcGxveWVlcywgYnV0IElCTSBpcyBub3QgcmVzcG9uc2libGUgZm9yIHRoaXMgcG9ydC4gVGhpcyBpcyBvdXIKK1dlIGFyZSBJQk0gZW1wbG95ZWVzLCBidXQgSUJNIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgdGhpcyBwb3J0LiAgVGhpcyBpcyBvdXIKIHByaXZhdGUgZnVuLCBhbmQgaXMgcHJvdmlkZWQgaW4gdGhlIGhvcGVzIHRoYXQgaXQgbWF5IGJlIHVzZWZ1bCB0byBvdGhlcnMuCiAKIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBzb2Z0d2FyZSBoYXMgTk9UIGJlZW4gc3VibWl0dGVkIHRvIGFueSBmb3JtYWwgSUJNCi10ZXN0aW5nIGFuZCBpcyBwdWJsaXNoZWQgQVMgSVMuIFBsZWFzZSBkbyBub3QgY29udGFjdCBJQk0gZm9yIHN1cHBvcnQgZm9yIHRoaXMKLXNvZnR3YXJlLCBhcyBpdCBpcyBub3QgYW4gb2ZmaWNpYWwgY29tcG9uZW50IG9mIGFueSBJQk0gcHJvZHVjdC4gSVQgSVMgTk9UCit0ZXN0aW5nIGFuZCBpcyBwdWJsaXNoZWQgQVMgSVMuICBQbGVhc2UgZG8gbm90IGNvbnRhY3QgSUJNIGZvciBzdXBwb3J0IGZvciB0aGlzCitzb2Z0d2FyZSwgYXMgaXQgaXMgbm90IGFuIG9mZmljaWFsIGNvbXBvbmVudCBvZiBhbnkgSUJNIHByb2R1Y3QuICBJVCBJUyBOT1QKIFNVUFBPUlRFRCwgR1VBUkFOVEVFRCwgT1IgUkVMQVRFRCBXSEFUU09FVkVSIFRPIElCTS4KIAogQ29udHJpYnV0b3JzOiB+CkBAIC02MCwyMiArNjAsMjIgQEAKIFVOSVggbWFpbmZyYW1lLiAgSSd2ZSBwZXJzb25hbGx5IHJ1biBpdCBvbiB6L09TIFYxUjIgYW5kIFYxUjMgbWFjaGluZXMgd2l0aG91dAogcHJvYmxlbXMuCiAKLU1hbnkgY2hhbmdlcyBoYWQgdG8gYmUgZG9uZSB0byB0aGUgY29kZSB0byBwb3J0IFZpbSB0byB6L09TIFVOSVguIEFzIGxpa2UKLW1vc3QgVU5JWCBwcm9ncmFtcywgVmltIGNvbnRhaW5lZCBoZWF2eSBBU0NJSSBkZXBlbmRlbmNpZXMuIEkgbWlnaHQgaGF2ZQorTWFueSBjaGFuZ2VzIGhhZCB0byBiZSBkb25lIHRvIHRoZSBjb2RlIHRvIHBvcnQgVmltIHRvIHovT1MgVU5JWC4gIEFzIGxpa2UKK21vc3QgVU5JWCBwcm9ncmFtcywgVmltIGNvbnRhaW5lZCBoZWF2eSBBU0NJSSBkZXBlbmRlbmNpZXMuICBJIG1pZ2h0IGhhdmUKIG1pc3NlZCBhbiBBU0NJSSBkZXBlbmRlbmN5LCBvciBpdCBpcyBwb3NzaWJsZSB0aGF0IGEgbmV3IG9uZSBoYXMgYmVlbiBhZGRlZAotd2l0aCBhIGZlYXR1cmUgb3IgYnVnIGZpeC4gTW9zdCBwcm9ncmFtbWVycyBhcmUgc2ltcGx5IG5vdCBhd2FyZSBvZiBwb3NzaWJsZQotQVNDSUkvRUJDRElDIGNvbnZlcnNpb24gaXNzdWVzLiBJZiB5b3UgaGl0IGEgcHJvYmxlbSB0aGF0IHNlZW1zIHJlbGF0ZWQgdG8KK3dpdGggYSBmZWF0dXJlIG9yIGJ1ZyBmaXguICBNb3N0IHByb2dyYW1tZXJzIGFyZSBzaW1wbHkgbm90IGF3YXJlIG9mIHBvc3NpYmxlCitBU0NJSS9FQkNESUMgY29udmVyc2lvbiBpc3N1ZXMuICBJZiB5b3UgaGl0IGEgcHJvYmxlbSB0aGF0IHNlZW1zIHJlbGF0ZWQgdG8KIHRoaXMsIGZlZWwgZnJlZSB0byBjb250YWN0IHVzIGF0IHRoZSBlbWFpbCBhZGRyZXNzZXMgYWJvdmUuCiAKIE9uZSBpbmRpY2F0aW9uIG9mIEFTQ0lJL0VCQ0RJQyBjb252ZXJzaW9uIHByb2JsZW1zIGlzIHNjcmVlbiBjb3JydXB0aW9uIHdpdGgKICJ1bnByaW50YWJsZSIgY2hhcmFjdGVycy4gIEZvciBleGFtcGxlLCBhdCBvbmUgcG9pbnQgdGhlIGVycm9yYmVsbCB3YXMgYnJva2VuCi1pbiBWaW0uIEFueSB0aW1lIFZpbSB0cmllZCB0byByaW5nIHRoZSB0ZXJtaW5hbCBiZWxsIGFuIEFTQ0lJIGNoYXJhY3RlciAweDA3Ci13b3VsZCBiZSBwcmludGVkLiBUaGlzIHdvcmtzIGZpbmUgb24gbW9zdCB0ZXJtaW5hbHMsIGJ1dCBpcyBicm9rZW4gb24gYW4KLUVCQ0RJQyBvbmUuIFRoZSBjb3JyZWN0IHNvbHV0aW9uIHdhcyB0byBkZWZpbmUgYSBkaWZmZXJlbnQgdmFsdWUgZm9yIHRoZSBiZWxsCitpbiBWaW0uICBBbnkgdGltZSBWaW0gdHJpZWQgdG8gcmluZyB0aGUgdGVybWluYWwgYmVsbCBhbiBBU0NJSSBjaGFyYWN0ZXIgMHgwNword291bGQgYmUgcHJpbnRlZC4gIFRoaXMgd29ya3MgZmluZSBvbiBtb3N0IHRlcm1pbmFscywgYnV0IGlzIGJyb2tlbiBvbiBhbgorRUJDRElDIG9uZS4gIFRoZSBjb3JyZWN0IHNvbHV0aW9uIHdhcyB0byBkZWZpbmUgYSBkaWZmZXJlbnQgdmFsdWUgZm9yIHRoZSBiZWxsCiBjaGFyYWN0ZXIgb24gRUJDRElDIHN5c3RlbXMuCiAKIFJlbWVtYmVyLCBpdCdzIG9ubHkgcG9zc2libGUgdG8gZml4IGEgYnVnIGlmIHRoZSBjb21tdW5pdHkga25vd3MgYWJvdXQgaXQuCi1Eb24ndCByZWx5IG9uIHNvbWVvbmUgZWxzZSB0byByZXBvcnQgaXQhIFNlZSB0aGUgc2VjdGlvbiB8YnVnLXJlcG9ydHN8LgorRG9uJ3QgcmVseSBvbiBzb21lb25lIGVsc2UgdG8gcmVwb3J0IGl0ISAgU2VlIHRoZSBzZWN0aW9uIHxidWctcmVwb3J0c3wuCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMy4gQnVpbGRpbmcgVklNIGZvciB6L09TIFVOSVgJCSpPUzM5MC1idWlsZGluZyogKnpPUy1idWlsZGluZyoKQEAgLTgzLDEyICs4MywxMiBAQAogQSB3b3JkIG9uIGRlYnVnZ2luZyBjb2RlIGZpcnN0OiB+CiAKIFRoZSBub3JtYWwgcnVuIG9mIGNvbmZpZ3VyZSBhZGRzIHRoZSBmbGFnICctZycgdG8gdGhlIGNvbXBpbGVyIG9wdGlvbnMsCi10byBpbmNsdWRlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBpbnRvIHRoZSBleGVjdXRhYmxlLiBUaGlzIGluZm9ybWF0aW9uCit0byBpbmNsdWRlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBpbnRvIHRoZSBleGVjdXRhYmxlLiAgVGhpcyBpbmZvcm1hdGlvbgogYXJlIG5vcm1hbGx5IHJlbW92ZWQgZnJvbSB0aGUgZXhlY3V0YWJsZSB3aXRoIHRoZSBzdHJpcCBjb21tYW5kIGR1cmluZwotaW5zdGFsbGF0aW9uLiBPbiB6L09TIFVOSVgsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byByZW1vdmUgdGhpcyBmcm9tCi10aGUgZXhlY3V0YWJsZS4gVGhlIHN0cmlwIGNvbW1hbmQgZXhpc3RzIG9uIHovT1MgVU5JWCBhbmQgaXMgY2FsbGVkCitpbnN0YWxsYXRpb24uICBPbiB6L09TIFVOSVgsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byByZW1vdmUgdGhpcyBmcm9tCit0aGUgZXhlY3V0YWJsZS4gIFRoZSBzdHJpcCBjb21tYW5kIGV4aXN0cyBvbiB6L09TIFVOSVggYW5kIGlzIGNhbGxlZAogZHVyaW5nIHRoZSBpbnN0YWxsYXRpb24sIGJ1dCBpdCBkb2VzIG5vdGhpbmcuICBJdCBpcyBlcXVpdmFsZW50IHRvIHRoZQotJ3RvdWNoJyBjb21tYW5kLiBUaGlzIGlzIGR1ZSB0byB0aGUgd2F5IGRlYnVnIHN5bWJvbHMgYXJlIHN0b3JlZCBpbiB0aGUKKyd0b3VjaCcgY29tbWFuZC4gIFRoaXMgaXMgZHVlIHRvIHRoZSB3YXkgZGVidWcgc3ltYm9scyBhcmUgc3RvcmVkIGluIHRoZQogb2JqZWN0cyBnZW5lcmF0ZWQgYnkgdGhlIGNvbXBpbGVyLgogCiBJZiB5b3Ugd2FudCB0byBidWlsZCBWaW0gd2l0aG91dCBkZWJ1Z2dpbmcgY29kZSwgZXhwb3J0IHRoZSBlbnZpcm9ubWVudApAQCAtOTksMTEgKzk5LDExIEBACiAKIEJ1aWxkaW5nIHdpdGhvdXQgWDExOiB+CiAKLU5vdGU6IFVzZSBjYyB0byBidWlsZCBWaW0uIFRoZSBjODkgY29tcGlsZXIgaGFzIHN0cmljdGVyIHN5bnRheCBjaGVja2luZworTm90ZTogVXNlIGNjIHRvIGJ1aWxkIFZpbS4gIFRoZSBjODkgY29tcGlsZXIgaGFzIHN0cmljdGVyIHN5bnRheCBjaGVja2luZwogYW5kIHdpbGwgbm90IGNvbXBpbGUgVmltIGNsZWFubHkuCiAKIElmIHlvdSBidWlsZCBWSU0gd2l0aG91dCBYMTEgc3VwcG9ydCwgY29tcGlsaW5nIGFuZCBidWlsZGluZyBpcwotc3RyYWlnaHRmb3J3YXJkLiBEb24ndCBmb3JnZXQgdG8gZXhwb3J0IF9DQ19DQ01PREU9MSBiZWZvcmUgY2FsbGluZworc3RyYWlnaHRmb3J3YXJkLiAgRG9uJ3QgZm9yZ2V0IHRvIGV4cG9ydCBfQ0NfQ0NNT0RFPTEgYmVmb3JlIGNhbGxpbmcKIGNvbmZpZ3VyZSBhbmQgbWFrZS4KID4KICAgICAkIGV4cG9ydCBfQ0NfQ0NNT0RFPTEKQEAgLTExNCw3ICsxMTQsNyBAQAogCVRlc3Qgbm90ZXM6CiAJVGVzdCAxMSB3aWxsIGZhaWwgaWYgeW91IGRvIG5vdCBoYXZlIGd6aXAgaW5zdGFsbGVkLgogCVRlc3QgNDIgd2lsbCBmYWlsLCBhcyBWSU0gb24gei9PUyBVTklYIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgbXVsdGlieXRlCi0JZmVhdHVyZS4gKERhdmlkIE1vb3JlOiAiRG9lc24ndCB3b3JrIF95ZXRfISAgOi0pICBJJ2xsIHNlZSB3aGF0IEkKKwlmZWF0dXJlLiAgKERhdmlkIE1vb3JlOiAiRG9lc24ndCB3b3JrIF95ZXRfISAgOi0pICBJJ2xsIHNlZSB3aGF0IEkKIAljYW4gZG8uIikKID4KIApAQCAtMTIzLDggKzEyMyw4IEBACiAKIEJ1aWxkaW5nIHdpdGggWDExOiB+CiAKLVRoZXJlIGFyZSB0d28gd2F5cyBmb3IgYnVpbGRpbmcgVmltIHdpdGggWDExIHN1cHBvcnQuIFlvdSBjYW4gbGluayBpdAotc3RhdGljYWxseSB3aXRoIHRoZSBYMTEgbGlicmFyaWVzIG9yIGNhbiBiaW5kIGl0IHdpdGggdGhlIFgxMSBETExzLiBUaGUKK1RoZXJlIGFyZSB0d28gd2F5cyBmb3IgYnVpbGRpbmcgVmltIHdpdGggWDExIHN1cHBvcnQuICBZb3UgY2FuIGxpbmsgaXQKK3N0YXRpY2FsbHkgd2l0aCB0aGUgWDExIGxpYnJhcmllcyBvciBjYW4gYmluZCBpdCB3aXRoIHRoZSBYMTEgRExMcy4gIFRoZQogc3RhdGljYWxseSBsaW5rZWQgdmVyc2lvbiByZXN1bHRzIGluIGEgaHVnZSBleGVjdXRhYmxlICh+MTNNQiksIHdoaWxlIHRoZQogZHluYW1pY2FsbHkgbGlua2VkIGV4ZWN1dGFibGUgaXMgbXVjaCBzbWFsbGVyICh+NC41TUIpLgogCkBAIC0xMzcsNyArMTM3LDcgQEAKICAgICAgVklNIGlzIG5vdyBsaW5rZWQgc3RhdGljYWxseSB3aXRoIHRoZSBYMTEgbGlicmFyaWVzLgogCiAgIGIpIER5bmFtaWMgbGluazoKLSAgICAgTWFrZSBWSU0gYXMgZGVzY3JpYmVkIGZvciB0aGUgc3RhdGljIGxpbmsuIFRoZW4gY2hhbmdlIHRoZSBjb250ZW50cyBvZgorICAgICBNYWtlIFZJTSBhcyBkZXNjcmliZWQgZm9yIHRoZSBzdGF0aWMgbGluay4gIFRoZW4gY2hhbmdlIHRoZSBjb250ZW50cyBvZgogICAgICB0aGUgJ2F1dG8vbGluay5zZWQnIGZpbGUgYnkgYXBwZW5kaW5nOiA+CiAJcyUtbFhtICAqJS91c3IvbGliL1htLnggJWcKIAlzJS1sWDExICAqJS91c3IvbGliL1gxMS54ICVnCkBAIC0xNTUsNyArMTU1LDcgQEAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogNC4gQVNDSUkvRUJDRElDIGRlcGVuZGVudCBzY3JpcHRzCSpPUzM5MC1oYXMtZWJjZGljKiAqek9TLWhhcy1lYmNkaWMqCiAKLUZvciB0aGUgaW50ZXJuYWwgc2NyaXB0IGxhbmd1YWdlIHRoZSBmZWF0dXJlICJlYmNkaWMiIHdhcyBhZGRlZC4gV2l0aCB0aGlzCitGb3IgdGhlIGludGVybmFsIHNjcmlwdCBsYW5ndWFnZSB0aGUgZmVhdHVyZSAiZWJjZGljIiB3YXMgYWRkZWQuICBXaXRoIHRoaXMKIHlvdSBjYW4gZml4IEFTQ0lJIGRlcGVuZGVudCBzY3JpcHRzIGxpa2UgdGhpczoKID4KICAgICBpZiBoYXMoImViY2RpYyIpCkBAIC0xNzgsNyArMTc4LDcgQEAKIHRoZSBjb21tYW5kIGxpbmUsIHRyeSBhZGRpbmcgPgogCTpzZXQgdF9sZT1eSAogPAotdG8geW91ciAudmltcmMuIE5vdGU6ICdeSCcgaXMgb25lIGNoYXJhY3RlciwgaGl0IDxDLVY+PEMtSD4gdG8gZ2V0IGl0LgordG8geW91ciAudmltcmMuICBOb3RlOiAnXkgnIGlzIG9uZSBjaGFyYWN0ZXIsIGhpdCA8Qy1WPjxDLUg+IHRvIGdldCBpdC4KIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA2LiBNb3RpZiBQcm9ibGVtcwkJCSpPUzM5MC1Nb3RpZiogKnpPUy1Nb3RpZioKQEAgLTIwMyw5ICsyMDMsOSBAQAogOC4gS25vd24gd2Vha25lc3NlcwkJCSpPUzM5MC13ZWFrbmVzc2VzKiAqek9TLXdlYWtuZXNzZXMqCiAKIC0gTm8gYmluYXJ5IHNlYXJjaCBpbiB0YWcgZmlsZXMuCi0gIFRoZSBwcm9ncmFtIC9iaW4vc29ydCBzb3J0cyBieSBBU0NJSSB2YWx1ZSBieSBkZWZhdWx0LiBUaGlzIHByb2dyYW0gaXMKLSAgbm9ybWFsbHkgdXNlZCBieSBjdGFncyB0byBzb3J0IHRoZSB0YWdzLiBUaGVyZSBtaWdodCBiZSBhIHZlcnNpb24gb2YKLSAgY3RhZ3Mgb3V0IHRoZXJlLCB0aGF0IGRvZXMgaXQgcmlnaHQsIGJ1dCB3ZSBjYW4ndCBiZSBzdXJlLiBTbyB0aGlzIHNlZW1zIHRvCisgIFRoZSBwcm9ncmFtIC9iaW4vc29ydCBzb3J0cyBieSBBU0NJSSB2YWx1ZSBieSBkZWZhdWx0LiAgVGhpcyBwcm9ncmFtIGlzCisgIG5vcm1hbGx5IHVzZWQgYnkgY3RhZ3MgdG8gc29ydCB0aGUgdGFncy4gIFRoZXJlIG1pZ2h0IGJlIGEgdmVyc2lvbiBvZgorICBjdGFncyBvdXQgdGhlcmUsIHRoYXQgZG9lcyBpdCByaWdodCwgYnV0IHdlIGNhbid0IGJlIHN1cmUuICBTbyB0aGlzIHNlZW1zIHRvCiAgIGJlIGEgcGVybWFuZW50IHJlc3RyaWN0aW9uLgogCiAtIE11bHRpYnl0ZSBzdXBwb3J0ICh1dGYtOCkgZG9lc24ndCB3b3JrLCBpdCdzIGRpc2FibGVkIGF0IGNvbXBpbGUgdGltZS4KQEAgLTI0NiwxMCArMjQ2LDEwIEBACiAgIHNjcmVlbiBjb3JydXB0aW9uIHByb2JsZW1zIGluIGdWaW0gcmVwb3J0ZWQgYnkgQW50aG9ueSBHaW9yZ2lvLgogCiAgIEFudGhvbnkgR2lvcmdpbyB1cGRhdGVkIHRoaXMgZG9jdW1lbnQ6Ci0JLSBDaGFuZ2VkIE9TLzM5MCB0byB6L09TIHdoZXJlIGFwcHJvcHJpYXRlLiBJQk0gZGVjaWRlZCB0byByZW5hbWUKKwktIENoYW5nZWQgT1MvMzkwIHRvIHovT1Mgd2hlcmUgYXBwcm9wcmlhdGUuICBJQk0gZGVjaWRlZCB0byByZW5hbWUKIAkJYWxsIG9mIGl0cyBzZXJ2ZXJzIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy4gIHovT1MgYW5kIE9TLzM5MAogCQlhcmUgdGhlIHNhbWUgcHJvZHVjdCwgYnV0IHRoZSB2ZXJzaW9uIG51bWJlcmluZyBzeXN0ZW0gd2FzCi0JCXJlc2V0IGZvciB0aGUgbmFtZSBjaGFuZ2UuIChlLmcuIE9TLzM5MCBWMlIxMSA9PSB6L09TIFYxUjEpCisJCXJlc2V0IGZvciB0aGUgbmFtZSBjaGFuZ2UgKGUuZy4gT1MvMzkwIFYyUjExID09IHovT1MgVjFSMSkuCiAJLSBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCBzZWNvbmQgZWRpdGlvbiBvZiB0aGUgT3BlbiBTb3VyY2UgUmVkYm9vay4KIAktIE1vdmVkIFJlZGJvb2sgaW5mb3JtYXRpb24gdG8gYSBzZXBhcmF0ZSBzZWN0aW9uLgogCS0gVmFyaW91cyB0d2Vha3MgYW5kIGNoYW5nZXMuCkBAIC0yNjUsMTYgKzI2NSwxNiBAQAogCiA2LjBxIChhbHBoYSk6CiAgIE1pbm9yIGNoYW5nZXMgZm9yIG5yZm9ybWF0cz1hbHBoYSAoc2VlIHwnbnJmb3JtYXRzJ3wpLgotICBQcm9ibGVtIHdpdGggaGFyZC1jb2RlZCBrZXljb2RlIGZvciB0aGUgRW5nbGlzaCBwb3VuZCBzaWduLiBBZGRlZCBhIGRlZmluZSBpbgorICBQcm9ibGVtIHdpdGggaGFyZC1jb2RlZCBrZXljb2RlIGZvciB0aGUgRW5nbGlzaCBwb3VuZCBzaWduLiAgQWRkZWQgYSBkZWZpbmUgaW4KICAgYXNjaWkuaAogICBEaXNhYmxlZCBtdWx0aWJ5dGUgZm9yIEVCQ0RJQyBpbiBmZWF0dXJlLmgKIAogNi4wZiAoYWxwaGEpOgotICBGaXJzdCBjb21waWxlIG9mIFZpbSA2IG9uIHovT1MgVU5JWC4gU29tZSBtaW5vciBjaGFuZ2VzIHdlcmUgbmVlZGVkLgorICBGaXJzdCBjb21waWxlIG9mIFZpbSA2IG9uIHovT1MgVU5JWC4gIFNvbWUgbWlub3IgY2hhbmdlcyB3ZXJlIG5lZWRlZC4KIAogICBGaW5hbGx5IGZvdW5kIHRoZSByZWFzb24gd2h5IG1ha2UgZnJvbSB0aGUgdG9wIGxldmVsIGRpZG4ndCB3b3JrIChJIG11c3QgaGF2ZQotICBiZWVuIGJsaW5kIGJlZm9yZSEpLiBUaGUgTWFrZWZpbGUgY29udGFpbmVkIGEgbGlzdCBvZiB0YXJnZXRzIGluIG9uZSB0YXJnZXQKLSAgbGluZS4gT24gYWxsIG90aGVyIFVOSVgncyB0aGUgbWFjcm8gJEAgZXZhbHVhdGVzIHRvIHRoZSBmaXJzdCB0YXJnZXQgaW4gdGhpcworICBiZWVuIGJsaW5kIGJlZm9yZSEpLiAgVGhlIE1ha2VmaWxlIGNvbnRhaW5lZCBhIGxpc3Qgb2YgdGFyZ2V0cyBpbiBvbmUgdGFyZ2V0CisgIGxpbmUuICBPbiBhbGwgb3RoZXIgVU5JWCdzIHRoZSBtYWNybyAkQCBldmFsdWF0ZXMgdG8gdGhlIGZpcnN0IHRhcmdldCBpbiB0aGlzCiAgIGxpc3QsIG9ubHkgb24gei9PUyBVTklYIGl0IGV2YWx1YXRlcyB0byB0aGUgbGFzdCBvbmUgOi0oLgogCiA1LjYtMzkwZDoKQEAgLTI4Miw3ICsyODIsNyBAQAogCiA1LjYtMzkwYzoKICAgSSBncmVwcGVkIHRocm91Z2ggdGhlIHNvdXJjZSBhbmQgZXhhbWluZWQgZXZlcnkgc3BvdCB3aXRoIGEgY2hhcmFjdGVyCi0gIGludm9sdmVkIGluIGEgb3BlcmF0aW9uICgrLSkuIEkgaG9wZSBJIG5vdyBmb3VuZCBhbGwgRUJDRElDL0FTQ0lJCisgIGludm9sdmVkIGluIGEgb3BlcmF0aW9uICgrLSkuICBJIGhvcGUgSSBub3cgZm91bmQgYWxsIEVCQ0RJQy9BU0NJSQogICBzdHVmZiwgYnV0IC4uLi4KIAogICBGaXhlZDoKQEAgLTI5NSw3ICsyOTUsNyBAQAogICAgIC0gZml4ZWQgcXVpY2stYWNjZXNzIHRhYmxlIGluIGZpbmRvcHRpb25zKCkKICAgICAtIGZpeGVkICdnXkgnIHNlbGVjdCBtb2RlCiAgICAgLSBmaXhlZCB0Z2V0c3RyKCkgJ2dldCB0ZXJtaW5hbCBjYXBhYmlsaXR5IHN0cmluZycsIEVTQyBhbmQKLQkgICAgQ3RybCBjaGFycyB3aGVyZSB3cm9uZy4gKE5vdCB1c2VkIG9uIE9TLzM5MCBVTklYKQorCSAgICBDdHJsIGNoYXJzIHdoZXJlIHdyb25nLiAgKE5vdCB1c2VkIG9uIE9TLzM5MCBVTklYKQogCiAKICAgY3RhZ3M6CkBAIC0zMTEsMTMgKzMxMSwxMyBAQAogCS0gYWRkZWQgc3BlY2lhbCBjb21waWxlciBhbmQgbGlua2VyIG9wdGlvbnMgaWYgYnVpbGRpbmcgd2l0aCBYMTEKICAgICAtIGNvbmZpZ3VyZToKIAktIGFmdGVyIGNyZWF0ZWQgdmlhIGF1dG9jb25mIGhhbmQtZWRpdGVkIGl0IHRvIG1ha2UgdGhlIHRlc3QgZm9yCi0JICBJQ0VDb25uZWN0aW9uTnVtYmVyIHdvcmsuIFRoaXMgaXMgYSBhdXRvY29uZiBwcm9ibGVtLiBPUy8zOTAgVU5JWAorCSAgSUNFQ29ubmVjdGlvbk51bWJlciB3b3JrLiAgVGhpcyBpcyBhIGF1dG9jb25mIHByb2JsZW0uICBPUy8zOTAgVU5JWAogCSAgbmVlZHMgLWxYMTEgZm9yIHRoaXMuCiAgICAgLSBNYWtlZmlsZQogCS0gRG9uJ3QgaW5jbHVkZSB0aGUgbGliIGRpcmVjdG9yaWVzICgnLUwuLi4nKSBpbnRvIHRoZSB2YXJpYWJsZQotCSAgQUxMX0xJQlMuIFVzZSBvd24gdmFyaWFibGUgQUxMX0xJQl9ESVJTIGluc3RlYWQuIEEgZnVsbHkgUE9TSVgKKwkgIEFMTF9MSUJTLiAgVXNlIG93biB2YXJpYWJsZSBBTExfTElCX0RJUlMgaW5zdGVhZC4gIEEgZnVsbHkgUE9TSVgKIAkgIGNvbXBsaWFudCBjb21waWxlciBtdXN0IG5vdCBhY2NlcHQgb2JqZWN0cy9saWJyYXJpZXMgYW5kIG9wdGlvbnMKLQkgIG1peGVkLiBOb3cgd2UgY2FuIGNhbGwgdGhlIGxpbmtlciBsaWtlIHRoaXM6CisJICBtaXhlZC4gIE5vdyB3ZSBjYW4gY2FsbCB0aGUgbGlua2VyIGxpa2UgdGhpczoKIAogCSAgICAkKENDKSAkKExERkxBR1MpICQoQUxMX0xJQl9ESVJTKSAkKE9CSikgJChBTExfTElCUykKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfYmVvcy50eHQgYi9ydW50aW1lL2RvYy9vc19iZW9zLnR4dAppbmRleCBkNTg5NjZmLi4wOTcxZjRmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19iZW9zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19iZW9zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19iZW9zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgTWF5IDAxCisqb3NfYmVvcy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzEsMTEgKzMxLDExIEBACiAxLiBHZW5lcmFsCQkJCQkJKmJlb3MtZ2VuZXJhbCoKIAogVGhlIGRlZmF1bHQgc3ludGF4IGhpZ2hsaWdodGluZyBtb3N0bHkgd29ya3Mgd2l0aCBkaWZmZXJlbnQgZm9yZWdyb3VuZCBjb2xvcnMKLXRvIGhpZ2hsaWdodCBpdGVtcy4gVGhpcyB3b3JrcyBiZXN0IGlmIHlvdSBzZXQgeW91ciBUZXJtaW5hbCB3aW5kb3cgdG8gYQotZGFya2lzaCBiYWNrZ3JvdW5kIGFuZCBsaWdodCBsZXR0ZXJzLiBTb21lIG1pZGRsZS1ncmV5IGJhY2tncm91bmQgKGZvcgordG8gaGlnaGxpZ2h0IGl0ZW1zLiAgVGhpcyB3b3JrcyBiZXN0IGlmIHlvdSBzZXQgeW91ciBUZXJtaW5hbCB3aW5kb3cgdG8gYQorZGFya2lzaCBiYWNrZ3JvdW5kIGFuZCBsaWdodCBsZXR0ZXJzLiAgU29tZSBtaWRkbGUtZ3JleSBiYWNrZ3JvdW5kIChmb3IKIGluc3RhbmNlIChyLGcsYik9KDE2OCwxNjgsMTY4KSkgd2l0aCBibGFjayBsZXR0ZXJzIGFsc28gd29ya3MgbmljZWx5LiAgSWYgeW91CiB1c2UgdGhlIGRlZmF1bHQgbGlnaHQgYmFja2dyb3VuZCBhbmQgZGFyayBsZXR0ZXJzLCBpdCBtYXkgbG9vayBiZXR0ZXIgdG8KLXNpbXBseSByZXZlcnNlIHRoZSBub3Rpb24gb2YgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvciBzZXR0aW5ncy4gVG8gZG8KK3NpbXBseSByZXZlcnNlIHRoZSBub3Rpb24gb2YgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvciBzZXR0aW5ncy4gIFRvIGRvCiB0aGlzLCBhZGQgdGhpcyB0byB5b3VyIC52aW1yYyBmaWxlICh3aGVyZSA8RXNjPiBtYXkgbmVlZCB0byBiZSByZXBsYWNlZCB3aXRoCiB0aGUgZXNjYXBlIGNoYXJhY3Rlcik6ID4KIApAQCAtNDgsNyArNDgsNyBAQAogMi4gQ29tcGlsaW5nIFZpbQkJCQkJKmJlb3MtY29tcGlsaW5nKgogCiBGcm9tIHRoZSBBZHZhbmNlZCBBY2Nlc3MgUHJldmlldyBSZWxlYXNlIChBQVBSKSBvbiwgVmltIGNhbiBiZSBjb25maWd1cmVkIHdpdGgKLXRoZSBzdGFuZGFyZCBjb25maWd1cmUgc2NyaXB0LiBUbyBnZXQgdGhlIGNvbXBpbGVyIGFuZCBpdHMgZmxhZ3MgcmlnaHQsIHVzZQordGhlIHN0YW5kYXJkIGNvbmZpZ3VyZSBzY3JpcHQuICBUbyBnZXQgdGhlIGNvbXBpbGVyIGFuZCBpdHMgZmxhZ3MgcmlnaHQsIHVzZQogdGhlIGZvbGxvd2luZyBjb21tYW5kLWxpbmUgaW4gdGhlIHNoZWxsICh5b3UgY2FuIGN1dCBhbmQgcGFzdGUgaXQgaW4gb25lIGdvKToKIAogQ0M9JEJFX0NfQ09NUElMRVIgQ0ZMQUdTPSIkQkVfREVGQVVMVF9DX0ZMQUdTIC1PNyIgXApAQCAtNjAsOSArNjAsOSBAQAogY29uZmlnLm1rIGZpbGUgc28gdGhhdCB0aGUgbGluZXMgd2l0aCBHVUlfeHh4IHJlZmVyIHRvICQoQkVPU0dVSV94eHgpIGluc3RlYWQKIG9mICQoTk9ORV94eHgpLgogQWx0ZXJuYXRpdmVseSB5b3UgY2FuIG1ha2UgdGhpcyBjaGFuZ2UgaW4gdGhlIE1ha2VmaWxlOyBpdCB3aWxsIGhhdmUgYQotbW9yZSBwZXJtYW5lbnQgZWZmZWN0LiBTZWFyY2ggZm9yICJOT05FXyIuCittb3JlIHBlcm1hbmVudCBlZmZlY3QuICBTZWFyY2ggZm9yICJOT05FXyIuCiAKLUFmdGVyIGNvbXBpbGF0aW9uIHlvdSBuZWVkIHRvIGFkZCB0aGUgcmVzb3VyY2VzIHRvIHRoZSBiaW5hcnkuIEFkZCB0aGUKK0FmdGVyIGNvbXBpbGF0aW9uIHlvdSBuZWVkIHRvIGFkZCB0aGUgcmVzb3VyY2VzIHRvIHRoZSBiaW5hcnkuICBBZGQgdGhlCiBmb2xsb3dpbmcgZmV3IGxpbmVzIG5lYXIgdGhlIGVuZCAoYmVmb3JlIHRoZSBsaW5lIHdpdGggImV4aXQgJGV4aXRfdmFsdWUiKSBvZgogdGhlIGxpbmsuc2ggc2NyaXB0IHRvIGRvIHRoaXMgYXV0b21hdGljYWxseS4KIApAQCAtODEsMTIgKzgxLDEyIEBACiBOb3cgdHlwZSAibWFrZSIgdG8gY29tcGlsZSBWaW0sIHRoZW4gIm1ha2UgaW5zdGFsbCIgdG8gaW5zdGFsbCBpdC4KIAogSWYgeW91IHdhbnQgdG8gaW5zdGFsbCBWaW0gYnkgaGFuZCwgeW91IG11c3QgY29weSBWaW0gdG8gJEhPTUUvY29uZmlnL2JpbiwgYW5kCi1jcmVhdGUgYSBidW5jaCBvZiBzeW1saW5rcyB0byBpdCAoe2cscixyZ317dmltLGV4LHZpZXd9KS4gRnVydGhlcm1vcmUgeW91IG11c3QKLWNvcHkgVmltcyBjb25maWd1cmF0aW9uIGZpbGVzIHRvICRIT01FL2NvbmZpZy9zaGFyZS92aW06CitjcmVhdGUgYSBidW5jaCBvZiBzeW1saW5rcyB0byBpdCAoe2cscixyZ317dmltLGV4LHZpZXd9KS4gIEZ1cnRoZXJtb3JlIHlvdSBtdXN0Citjb3B5IFZpbSdzIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gJEhPTUUvY29uZmlnL3NoYXJlL3ZpbToKIHZpbS01LjBzL3sqLnZpbSxkb2Msc3ludGF4fS4gIEZvciBjb21wbGV0ZW5lc3MsIHlvdSBzaG91bGQgYWxzbyBjb3B5IHRoZSBucm9mZgotbWFudWFsIHBhZ2VzIHRvICRIT01FL2NvbmZpZy9tYW4vbWFuMS4gRG9uJ3QgZm9yZ2V0IGN0YWdzL2N0YWdzIGFuZCB4eGQveHhkIQorbWFudWFsIHBhZ2VzIHRvICRIT01FL2NvbmZpZy9tYW4vbWFuMS4gIERvbid0IGZvcmdldCBjdGFncy9jdGFncyBhbmQgeHhkL3h4ZCEKIAotT2J2aW91c2x5LCB5b3UgbmVlZCB0aGUgdW5saW1pdGVkIGxpbmtlciB0byBhY3R1YWxseSBsaW5rIFZpbS4gU2VlCitPYnZpb3VzbHksIHlvdSBuZWVkIHRoZSB1bmxpbWl0ZWQgbGlua2VyIHRvIGFjdHVhbGx5IGxpbmsgVmltLiAgU2VlCiBodHRwOi8vd3d3Lm1ldHJvd2Vya3MuY29tIGZvciBwdXJjaGFzaW5nIHRoZSBDb2RlV2FycmlvciBjb21waWxlciBmb3IgQmVPUy4KIFRoZXJlIGFyZSBjdXJyZW50bHkgbm8gb3RoZXIgbGlua2VycyB0aGF0IGNhbiBkbyB0aGUgam9iLgogCkBAIC05Nyw3ICs5Nyw3IEBACiAzLiBUaW1lb3V0IGluIHRoZSBUZXJtaW5hbAkJCQkqYmVvcy10aW1lb3V0KgogCiBCZWNhdXNlIHNvbWUgUE9TSVgvVU5JWCBmZWF0dXJlcyBhcmUgc3RpbGwgbWlzc2luZ1sxXSwgdGhlcmUgaXMgbm8gZGlyZWN0IE9TCi1zdXBwb3J0IGZvciByZWFkLXdpdGgtdGltZW91dCBpbiB0aGUgVGVybWluYWwuIFRoaXMgd291bGQgbWVhdCB0aGF0IHlvdSBjYW5ub3QKK3N1cHBvcnQgZm9yIHJlYWQtd2l0aC10aW1lb3V0IGluIHRoZSBUZXJtaW5hbC4gIFRoaXMgd291bGQgbWVhbiB0aGF0IHlvdSBjYW5ub3QKIHVzZSA6bWFwcGluZ3Mgb2YgbW9yZSB0aGFuIG9uZSBjaGFyYWN0ZXIsIHVubGVzcyB5b3UgYWxzbyA6c2V0IG5vdGltZW91dC4KIHwndGltZW91dCd8CiAKQEAgLTExMiwxNiArMTEyLDE2IEBACiBUaGVzZSBwcm9ibGVtcyBkbyBub3QgZXhpc3QgaW4gdGhlIEdVSS4KIAogWzFdOiB0aGVyZSBpcyBubyBzZWxlY3QoKSBvbiBmaWxlIGRlc2NyaXB0b3JzOyBhbHNvIHRoZSB0ZXJtaW9zIFZNSU4gYW5kIFZUSU1FCi1zZXR0aW5ncyBkbyBub3Qgc2VlbSB0byB3b3JrIHByb3Blcmx5LiBUaGlzIGhhcyBiZWVuIHRoZSBjYXNlIHNpbmNlIERSNyBhdAorc2V0dGluZ3MgZG8gbm90IHNlZW0gdG8gd29yayBwcm9wZXJseS4gIFRoaXMgaGFzIGJlZW4gdGhlIGNhc2Ugc2luY2UgRFI3IGF0CiBsZWFzdCBhbmQgc3RpbGwgaGFzIG5vdCBiZWVuIGZpeGVkIGFzIG9mIFBSMi4KIAogCQkJCQkJCSpiZW9zLXVuaWNvZGUqCiA0LiBVbmljb2RlIHZzLiBMYXRpbjEJCQkJCSpiZW9zLXV0ZjgqCiAKIEJlT1MgdXNlcyBVbmljb2RlIGFuZCBVVEYtOCBmb3IgdGV4dCBzdHJpbmdzICgxNi1iaXQgY2hhcmFjdGVycyBlbmNvZGVkIHRvCi04LWJpdCBjaGFyYWN0ZXJzKS4gVmltIGFzc3VtZXMgSVNPLUxhdGluMSBvciBvdGhlciA4LWJpdCBjaGFyYWN0ZXIgY29kZXMuCi1UaGlzIGRvZXMgbm90IHByb2R1Y2UgdGhlIGRlc2lyZWQgcmVzdWx0cyBmb3Igbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFRyeSB0aGUKLWNvbW1hbmQgOmRpZ3JhcGhzIHRvIHNlZS4gSWYgdGhleSBsb29rIG1lc3NlZCB1cCwgdXNlIDpzZXQgaXNwcmludD1AIHRvCis4LWJpdCBjaGFyYWN0ZXJzKS4gIFZpbSBhc3N1bWVzIElTTy1MYXRpbjEgb3Igb3RoZXIgOC1iaXQgY2hhcmFjdGVyIGNvZGVzLgorVGhpcyBkb2VzIG5vdCBwcm9kdWNlIHRoZSBkZXNpcmVkIHJlc3VsdHMgZm9yIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLiAgVHJ5IHRoZQorY29tbWFuZCA6ZGlncmFwaHMgdG8gc2VlLiAgSWYgdGhleSBsb29rIG1lc3NlZCB1cCwgdXNlIDpzZXQgaXNwcmludD1AIHRvCiAoc2xpZ2h0bHkpIGltcHJvdmUgdGhlIGRpc3BsYXkgb2YgSVNPLUxhdGluMSBjaGFyYWN0ZXJzIDEyOC0yNTUuICBUaGlzIHdvcmtzCiBiZXR0ZXIgaW4gdGhlIEdVSSwgZGVwZW5kaW5nIG9uIHdoaWNoIGZvbnQgeW91IHVzZSAoYmVsb3cpLgogCkBAIC0xMzMsMzIgKzEzMywzMiBAQAogCiBOb3JtYWxseSBWaW0gc3RhcnRzIHdpdGggdGhlIEdVSSBpZiB5b3Ugc3RhcnQgaXQgYXMgZ3ZpbSBvciB2aW0gLWcuICBUaGUgQmVPUwogdmVyc2lvbiB0cmllcyB0byBkZXRlcm1pbmUgaWYgaXQgd2FzIHN0YXJ0ZWQgZnJvbSB0aGUgVHJhY2tlciBpbnN0ZWFkIG9mIHRoZQotVGVybWluYWwsIGFuZCBpZiBzbywgdXNlIHRoZSBHVUkgYW55d2F5LiBIb3dldmVyLCB0aGUgY3VycmVudCBkZXRlY3Rpb24gc2NoZW1lCi1pcyBmb29sZWQgaWYgeW91IHVzZSB0aGUgY29tbWFuZCAidmltIC0gPC9kZXYvbnVsbCIgb3IgInZpbSBmaWxlbmFtZSAmIi4gVGhlCitUZXJtaW5hbCwgYW5kIGlmIHNvLCB1c2UgdGhlIEdVSSBhbnl3YXkuICBIb3dldmVyLCB0aGUgY3VycmVudCBkZXRlY3Rpb24gc2NoZW1lCitpcyBmb29sZWQgaWYgeW91IHVzZSB0aGUgY29tbWFuZCAidmltIC0gPC9kZXYvbnVsbCIgb3IgInZpbSBmaWxlbmFtZSAmIi4gIFRoZQogbGF0dGVyIGNhbiBiZSBjYWxsZWQgYSBmZWF0dXJlIGJ1dCBwcm9iYWJseSBvbmx5IHdvcmtzIGJlY2F1c2UgdGhlcmUgaXMgbm8KIEJTRC1zdHlsZSBqb2IgY29udHJvbC4KIAogU3R1ZmYgdGhhdCBkb2VzIG5vdCB3b3JrIHlldDoKIAogLSBSdW5uaW5nIGV4dGVybmFsIGNvbW1hbmRzIGZyb20gdGhlIEdVSSBkb2VzIG5vdCB3b3JrIDEwMCUgKGFnYWluIGR1ZSB0byBsYWNrCi0gIG9mIHN1cHBvcnQgZm9yIHNlbGVjdCgpKS4gVGhlcmUgd2FzIGEgY2hvaWNlIGJldHdlZW4gc2VlaW5nIHRoZSBjb21tYW5kJ3MKLSAgb3V0cHV0LCBvciBiZWluZyBhYmxlIHRvIGludGVycnVwdCBpdC4gSSBjaG9zZSBmb3Igc2VlaW5nIHRoZSBvdXRwdXQuIEV2ZW4KKyAgb2Ygc3VwcG9ydCBmb3Igc2VsZWN0KCkpLiAgVGhlcmUgd2FzIGEgY2hvaWNlIGJldHdlZW4gc2VlaW5nIHRoZSBjb21tYW5kJ3MKKyAgb3V0cHV0LCBvciBiZWluZyBhYmxlIHRvIGludGVycnVwdCBpdC4gIEkgY2hvc2UgZm9yIHNlZWluZyB0aGUgb3V0cHV0LiAgRXZlbgogICBub3cgdGhlIGNvbW1hbmQgc29tZXRpbWVzIGNyYXNoZXMgbXlzdGVyaW91c2x5LCBhcHBhcmVudGx5IGluIEJlJ3MKLSAgbWFsbG9jX2ludGVybmFsKCkgY2FsbGVkIGZyb20gdGhlIHB1dGVudigpIGZ1bmN0aW9uLCBhZnRlciBmb3JrKClpbmcuIChkYXRhCi0gIGFjY2VzcyBleGNlcHRpb24gb2NjdXJyZWQsIGVjMDFiMGVjOiAgOTBlODAwMDAgKnN0dyByNywgMHgwMDAwIChyOCkpKDohbHMKLSAgd29ya3MgdXN1YWxseSwgOnIgIWxzIHVzdWFsbHkgZG9lc24ndCkuIFRoaXMgaGFzIGJlZW4gcmVwb3J0ZWQgYXMgYnVnCisgIG1hbGxvY19pbnRlcm5hbCgpIGNhbGxlZCBmcm9tIHRoZSBwdXRlbnYoKSBmdW5jdGlvbiwgYWZ0ZXIgZm9yaygpaW5nLiAgKGRhdGEKKyAgYWNjZXNzIGV4Y2VwdGlvbiBvY2N1cnJlZCwgZWMwMWIwZWM6ICA5MGU4MDAwMCAqc3R3IHI3LCAweDAwMDAgKHI4KSkuICAoOiFscworICB3b3JrcyB1c3VhbGx5LCA6ciAhbHMgdXN1YWxseSBkb2Vzbid0KS4gIFRoaXMgaGFzIGJlZW4gcmVwb3J0ZWQgYXMgYnVnCiAgICMgOTcxMjE1LTA4MzgyNi4KIC0gVGhlIHdpbmRvdyB0aXRsZS4KIC0gU3RhcnRpbmcgdGhlIEdVSSBmcm9tIHRoZSBUZXJtaW5hbCB2ZXJzaW9uIHdpdGggOmd1aSBhbHdheXMgYWN0cyBhcyBpZgotICA6Z3VpIC1mIHdlcmUgdXNlZC4gVGhlcmUgaXMgbm8gd2F5IHRvIGZpeCB0aGlzIHRoYXQgSSBjYW4gc2VlLgorICA6Z3VpIC1mIHdlcmUgdXNlZC4gIFRoZXJlIGlzIG5vIHdheSB0byBmaXggdGhpcyB0aGF0IEkgY2FuIHNlZS4KIC0gVGhlcmUgYXJlIHNvbWUgc21hbGwgZGlzcGxheSBnbGl0Y2hlcyBoZXJlIGFuZCB0aGVyZSB0aGF0IEkgaG9wZSB0byBjbGVhbiB1cAotICBsYXRlci4gTW9zdCBvZiB0aGVtIG9jY3VyIHdoZW4gdGhlIHdpbmRvdyBpcyBwYXJ0aWFsbHkgb2JzY3VyZWQuIFNvbWUgb2YKKyAgbGF0ZXIuICBNb3N0IG9mIHRoZW0gb2NjdXIgd2hlbiB0aGUgd2luZG93IGlzIHBhcnRpYWxseSBvYnNjdXJlZC4gIFNvbWUgb2YKICAgdGhlbSBzZWVtIHRvIGJlIGJ1Z3MgaW4gQmVPUywgYmVjYXVzZSB0aGUgVGVybWluYWwgaGFzIHNpbWlsYXIgZ2xpdGNoZXMuCi0tIE1vdXNlIHVwIGV2ZW50cyBhcmUgbm90IGdlbmVyYXRlZCB3aGVuIG91dHNpZGUgdGhlIHdpbmRvdy4gVGhpcyBpcyBhIGJ1ZyBpbgotICBCZU9TLiBZb3UgY2FuIG5vdGljZSB0aGlzIHdoZW4gc2VsZWN0aW5nIHRleHQgYW5kIG1vdmluZyB0aGUgY3Vyc29yIG91dHNpZGUKKy0gTW91c2UgdXAgZXZlbnRzIGFyZSBub3QgZ2VuZXJhdGVkIHdoZW4gb3V0c2lkZSB0aGUgd2luZG93LiAgVGhpcyBpcyBhIGJ1ZyBpbgorICBCZU9TLiAgWW91IGNhbiBub3RpY2UgdGhpcyB3aGVuIHNlbGVjdGluZyB0ZXh0IGFuZCBtb3ZpbmcgdGhlIGN1cnNvciBvdXRzaWRlCiAgIHRoZSB3aW5kb3csIHRoZW4gbGV0dGluZyBnbyBvZiB0aGUgbW91c2UgYnV0dG9uLiAgQW5vdGhlciB3YXkgaXMgd2hlbiB5b3UKICAgZHJhZyB0aGUgc2Nyb2xsYmFyIGFuZCBkbyB0aGUgc2FtZSB0aGluZy4gIEJlY2F1c2UgVmltIHN0aWxsIHRoaW5rcyB5b3UgYXJlCi0gIHN0aWxsIHBsYXlpbmcgd2l0aCB0aGUgc2Nyb2xsYmFyIGl0IHdvbid0IGNoYW5nZSBpdCBpdHNlbGYuIEkgcHJvdmlkZWQgYQorICBzdGlsbCBwbGF5aW5nIHdpdGggdGhlIHNjcm9sbGJhciBpdCB3b24ndCBjaGFuZ2UgaXQgaXRzZWxmLiAgSSBwcm92aWRlZCBhCiAgIHdvcmthcm91bmQgd2hpY2gga2lja3MgaW4gd2hlbiB0aGUgd2luZG93IGlzIGFjdGl2YXRlZCBvciBkZWFjdGl2YXRlZCAoc28gaXQKICAgd29ya3MgYmVzdCB3aXRoIGZvY3VzLSBmb2xsb3dzLW1vdXNlICgvYm9vdC9iaW4vZmZtKSB0dXJuZWQgb24pLgogLSBUaGUgY3Vyc29yIGRvZXMgbm90IGZsYXNoICh2ZXJ5IGxvdyBwcmlvcml0eTsgSSdtIG5vdCBzdXJlIEkgZXZlbiBsaWtlIGl0CkBAIC0xNzIsNyArMTcyLDcgQEAKIAogICA6dmVyc2lvbgogCi1UaGUgbm9ybWFsIHZhbHVlIGlzIC9ib290L2hvbWUvY29uZmlnL3NoYXJlL3ZpbS4gSWYgeW91IGRvbid0IGxpa2UgaXQgeW91IGNhbgorVGhlIG5vcm1hbCB2YWx1ZSBpcyAvYm9vdC9ob21lL2NvbmZpZy9zaGFyZS92aW0uICBJZiB5b3UgZG9uJ3QgbGlrZSBpdCB5b3UgY2FuCiBzZXQgdGhlIFZJTSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycmlkZSB0aGlzLCBvciBzZXQgJ2hlbHBmaWxlJyBpbiB5b3VyCiAudmltcmM6ID4KIApAQCAtMTg5LDcgKzE4OSw3IEBACiBMYXVuY2giKSBvciBvbiB0aGUgVmltIHdpbmRvdyAoc3RhcnRzIGVkaXRpbmcgdGhlIGZpbGVzKS4gIERyb3BwaW5nIGEgZm9sZGVyCiBzZXRzIFZpbSdzIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuIHw6Y2R8IHw6cHdkfCBJZiB5b3UgZHJvcCBmaWxlcyBvcgogZm9sZGVycyB3aXRoIGVpdGhlciBTSElGVCBrZXkgcHJlc3NlZCwgVmltIGNoYW5nZXMgZGlyZWN0b3J5IHRvIHRoZSBmb2xkZXIKLXRoYXQgY29udGFpbnMgdGhlIGZpcnN0IGl0ZW0gZHJvcHBlZC4gV2hlbiBzdGFydGluZyBWaW0sIHRoZXJlIGlzIG5vIG5lZWQgdG8KK3RoYXQgY29udGFpbnMgdGhlIGZpcnN0IGl0ZW0gZHJvcHBlZC4gIFdoZW4gc3RhcnRpbmcgVmltLCB0aGVyZSBpcyBubyBuZWVkIHRvCiBwcmVzcyBzaGlmdDogVmltIGJlaGF2ZXMgYXMgaWYgeW91IGRvLgogCiBGaWxlcyBkcm9wcGVkIHNldCB0aGUgY3VycmVudCBhcmd1bWVudCBsaXN0LiB8YXJndW1lbnQtbGlzdHwKQEAgLTE5OCwxMCArMTk4LDEwIEBACiA4LiBTaW5nbGUgTGF1bmNoIHZzLiBNdWx0aXBsZSBMYXVuY2gJCQkqYmVvcy1sYXVuY2gqCiAKIEFzIGRpc3RyaWJ1dGVkIFZpbSdzIEFwcGxpY2F0aW9uIEZsYWdzIChhcyBzZWVuIGluIHRoZSBGaWxlVHlwZXMgcHJlZmVyZW5jZSkKLWFyZSBzZXQgdG8gTXVsdGlwbGUgTGF1bmNoLiBJZiB5b3UgcHJlZmVyLCB5b3UgY2FuIHNldCB0aGVtIHRvIFNpbmdsZSBMYXVuY2gKK2FyZSBzZXQgdG8gTXVsdGlwbGUgTGF1bmNoLiAgSWYgeW91IHByZWZlciwgeW91IGNhbiBzZXQgdGhlbSB0byBTaW5nbGUgTGF1bmNoCiBpbnN0ZWFkLiAgQXR0ZW1wdHMgdG8gc3RhcnQgYSBzZWNvbmQgY29weSBvZiBWaW0gd2lsbCBjYXVzZSB0aGUgZmlyc3QgVmltIHRvCi1vcGVuIHRoZSBmaWxlcyBpbnN0ZWFkLiBUaGlzIHdvcmtzIGZyb20gdGhlIFRyYWNrZXIgYnV0IGFsc28gZnJvbSB0aGUgY29tbWFuZAotbGluZS4gSW4gdGhlIGxhdHRlciBjYXNlLCBub24tZmlsZSAob3B0aW9uKSBhcmd1bWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQuCitvcGVuIHRoZSBmaWxlcyBpbnN0ZWFkLiAgVGhpcyB3b3JrcyBmcm9tIHRoZSBUcmFja2VyIGJ1dCBhbHNvIGZyb20gdGhlIGNvbW1hbmQKK2xpbmUuICBJbiB0aGUgbGF0dGVyIGNhc2UsIG5vbi1maWxlIChvcHRpb24pIGFyZ3VtZW50cyBhcmUgbm90IHN1cHBvcnRlZC4KIAogTkI6IE9ubHkgdGhlIEdVSSB2ZXJzaW9uIGhhcyBhIEJBcHBsaWNhdGlvbiAoYW5kIGhlbmNlIEFwcGxpY2F0aW9uIEZsYWdzKS4KIFRoaXMgc2VjdGlvbiBkb2VzIG5vdCBhcHBseSB0byB0aGUgR1VJLWxlc3MgdmVyc2lvbiwgc2hvdWxkIHlvdSBjb21waWxlIG9uZS4KQEAgLTIxNCwxNiArMjE0LDE2IEBACiAgIDpzZXQgZ3VpZm9udD1Db3VyaWVyMTBfQlQvUm9tYW4vMTAKIAogd2hlcmUgdGhlIGZpcnN0IHBhcnQgaXMgdGhlIGZvbnQgZmFtaWx5LCB0aGUgc2Vjb25kIHBhcnQgdGhlIHN0eWxlLCBhbmQgdGhlCi10aGlyZCBwYXJ0IHRoZSBzaXplLiBZb3UgY2FuIHVzZSB1bmRlcnNjb3JlcyBpbnN0ZWFkIG9mIHNwYWNlcyBpbiBmYW1pbHkgYW5kCit0aGlyZCBwYXJ0IHRoZSBzaXplLiAgWW91IGNhbiB1c2UgdW5kZXJzY29yZXMgaW5zdGVhZCBvZiBzcGFjZXMgaW4gZmFtaWx5IGFuZAogc3R5bGUuCiAKLUJlc3QgcmVzdWx0cyBhcmUgb2J0YWluZWQgd2l0aCBtb25vc3BhY2VkIGZvbnRzIChzdWNoIGFzIENvdXJpZXIpLiBWaW0KK0Jlc3QgcmVzdWx0cyBhcmUgb2J0YWluZWQgd2l0aCBtb25vc3BhY2VkIGZvbnRzIChzdWNoIGFzIENvdXJpZXIpLiAgVmltCiBhdHRlbXB0cyB0byB1c2UgYWxsIGZvbnRzIGluIEJfRklYRURfU1BBQ0lORyBtb2RlIGJ1dCBhcHBhcmVudGx5IHRoaXMgZG9lcyBub3QKIHdvcmsgZm9yIHByb3BvcnRpb25hbCBmb250cyAoZGVzcGl0ZSB3aGF0IHRoZSBCZUJvb2sgc2F5cykuCiAKIFZpbSBhbHNvIHRyaWVzIHRvIHVzZSB0aGUgQl9JU084ODU5XzEgZW5jb2RpbmcsIGFsc28ga25vd24gYXMgSVNPIExhdGluIDEuCi1UaGlzIGFsc28gZG9lcyBub3Qgd29yayBmb3IgYWxsIGZvbnRzLiBJdCBkb2VzIHdvcmsgZm9yIENvdXJpZXIsIGJ1dCBub3QgZm9yCi1Qcm9Gb250SVNPTGF0aW4xL1JlZ3VsYXIgKHN0cmFuZ2VseSBlbm91Z2gpLiBZb3UgY2FuIHZlcmlmeSB0aGlzIGJ5IGdpdmluZyB0aGUgPgorVGhpcyBhbHNvIGRvZXMgbm90IHdvcmsgZm9yIGFsbCBmb250cy4gIEl0IGRvZXMgd29yayBmb3IgQ291cmllciwgYnV0IG5vdCBmb3IKK1Byb0ZvbnRJU09MYXRpbjEvUmVndWxhciAoc3RyYW5nZWx5IGVub3VnaCkuICBZb3UgY2FuIHZlcmlmeSB0aGlzIGJ5IGdpdmluZyB0aGUgPgogCiAgIDpkaWdyYXBocwogCkBAIC0yNzAsMzAgKzI3MCwzMCBAQAogCiBWaW0gY2FsbHMgdGhlIHZhcmlvdXMgbW91c2UgYnV0dG9ucyBMZWZ0TW91c2UsIE1pZGRsZU1vdXNlIGFuZCBSaWdodE1vdXNlLiAgSWYKIHlvdSB1c2UgdGhlIGRlZmF1bHQgTW91c2UgcHJlZmVyZW5jZSBzZXR0aW5ncyB0aGVzZSBuYW1lcyBpbmRlZWQgY29ycmVzcG9uZCB0bwotcmVhbGl0eS4gVmltIHVzZXMgdGhpcyBtYXBwaW5nOgorcmVhbGl0eS4gIFZpbSB1c2VzIHRoaXMgbWFwcGluZzoKIAogICAgIEJ1dHRvbiAxIC0+IExlZnRNb3VzZSwKICAgICBCdXR0b24gMiAtPiBSaWdodE1vdXNlLAogICAgIEJ1dHRvbiAzIC0+IE1pZGRsZU1vdXNlLgogCiBJZiB5b3VyIG1vdXNlIGhhcyBmZXdlciB0aGFuIDMgYnV0dG9ucyB5b3UgY2FuIHByb3ZpZGUgeW91ciBvd24gbWFwcGluZyBmcm9tCi1tb3VzZSBjbGlja3Mgd2l0aCBtb2RpZmllcihzKSB0byBvdGhlciBtb3VzZSBidXR0b25zLiBTZWUgdGhlIGZpbGUKK21vdXNlIGNsaWNrcyB3aXRoIG1vZGlmaWVyKHMpIHRvIG90aGVyIG1vdXNlIGJ1dHRvbnMuICBTZWUgdGhlIGZpbGUKIHZpbS01LngvbWFjcm9zL3N3YXBtb3VzLnZpbSBmb3IgYW4gZXhhbXBsZS4JCXxndWktbW91c2UtbWFwcGluZ3wKIAogCiAxMi4gQ29sb3IgbmFtZXMJCQkJCQkqYmVvcy1jb2xvcnMqCiAKLVZpbSBoYXMgYSBudW1iZXIgb2YgY29sb3IgbmFtZXMgYnVpbHQtaW4uIEFkZGl0aW9uYWwgbmFtZXMgYXJlIHJlYWQgZnJvbSB0aGUKLWZpbGUgJFZJTVJVTlRJTUUvcmdiLnR4dCwgaWYgcHJlc2VudC4gVGhpcyBmaWxlIGlzIGJhc2ljYWxseSB0aGUgY29sb3IKLWRhdGFiYXNlIGZyb20gWC4gTmFtZXMgdXNlZCBmcm9tIHRoaXMgZmlsZSBhcmUgY2FjaGVkIGZvciBlZmZpY2llbmN5LgorVmltIGhhcyBhIG51bWJlciBvZiBjb2xvciBuYW1lcyBidWlsdC1pbi4gIEFkZGl0aW9uYWwgbmFtZXMgYXJlIHJlYWQgZnJvbSB0aGUKK2ZpbGUgJFZJTVJVTlRJTUUvcmdiLnR4dCwgaWYgcHJlc2VudC4gIFRoaXMgZmlsZSBpcyBiYXNpY2FsbHkgdGhlIGNvbG9yCitkYXRhYmFzZSBmcm9tIFguICBOYW1lcyB1c2VkIGZyb20gdGhpcyBmaWxlIGFyZSBjYWNoZWQgZm9yIGVmZmljaWVuY3kuCiAKIAogMTMuIENvbXBpbGluZyB3aXRoIFBlcmwJCQkJCSpiZW9zLXBlcmwqCiAKLUNvbXBpbGluZyB3aXRoIFBlcmwgc3VwcG9ydCBlbmFibGVkIGlzIHNsaWdodGx5IHRyaWNreS4gVGhlIE1ldHJvd2Vya3MKLWNvbXBpbGVyIGhhcyBzb21lIHN0cmFuZ2UgaWRlYXMgd2hlcmUgdG8gc2VhcmNoIGZvciBpbmNsdWRlIGZpbGVzLiBTaW5jZQorQ29tcGlsaW5nIHdpdGggUGVybCBzdXBwb3J0IGVuYWJsZWQgaXMgc2xpZ2h0bHkgdHJpY2t5LiAgVGhlIE1ldHJvd2Vya3MKK2NvbXBpbGVyIGhhcyBzb21lIHN0cmFuZ2UgaWRlYXMgd2hlcmUgdG8gc2VhcmNoIGZvciBpbmNsdWRlIGZpbGVzLiAgU2luY2UKIHNldmVyYWwgaW5jbHVkZSBmaWxlcyB3aXRoIFBlcmwgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhcyBzb21lIFZpbSBoZWFkZXIKLWZpbGVzLCB0aGUgd3Jvbmcgb25lcyBnZXQgaW5jbHVkZWQuIFRvIGZpeCB0aGlzLCBydW4gdGhlIGZvbGxvd2luZyBQZXJsCitmaWxlcywgdGhlIHdyb25nIG9uZXMgZ2V0IGluY2x1ZGVkLiAgVG8gZml4IHRoaXMsIHJ1biB0aGUgZm9sbG93aW5nIFBlcmwKIHNjcmlwdCB3aGlsZSBpbiB0aGUgdmltLTUuMC9zcmMgZGlyZWN0b3J5OiA+CiAKICAgIHByZXByb2MucGwgPiBwZXJsLmgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX21hYy50eHQgYi9ydW50aW1lL2RvYy9vc19tYWMudHh0CmluZGV4IDEwZmQwODUuLjNkYjk1ZmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX21hYy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfbWFjLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc19tYWMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBEZWMgMTMKKypvc19tYWMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMjkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIgZXQgYWwuCkBAIC0zMyw3ICszMyw3IEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIDEuIEZpbGVuYW1lIENvbnZlbnRpb24JCQkJCSptYWMtZmlsZW5hbWUqCiAKLVlvdSBjYW4gdXNlIGVpdGhlciB0aGUgdW5peCBvciBtYWMgcGF0aCBzZXBhcmF0b3Igb3IgYSBtaXggb2YgYm90aC4gSW4gb3JkZXIKK1lvdSBjYW4gdXNlIGVpdGhlciB0aGUgdW5peCBvciBtYWMgcGF0aCBzZXBhcmF0b3Igb3IgYSBtaXggb2YgYm90aC4gIEluIG9yZGVyCiB0byBkZXRlcm1pbmUgaWYgdGhlIHNwZWNpZmllZCBmaWxlbmFtZSBpcyByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBmb2xkZXIgb3IKIGFic29sdXRlIChpLmUuIHJlbGF0aXZlIHRvIHRoZSAiRGVza3RvcCIpLCB0aGUgZm9sbG93aW5nIGFsZ29yaXRobSBpcyB1c2VkOgogCkBAIC01OSw3ICs1OSw3IEBACiAyLiAudmltcmMgYW5kIC52aW0gZmlsZXMJCQkJKm1hYy12aW1maWxlKgogCiBPbiB0aGUgTWFjIGZpbGVzIHN0YXJ0aW5nIHdpdGggYSBkb3QgIi4iIGFyZSBkaXNjb3VyYWdlZCwgdGh1cyB0aGUgcmMgZmlsZXMKLWFyZSBuYW1lZCAidmltcmMiIG9yICJfdmltcmMiIGFuZCAiZ3ZpbXJjIiBvciAiX2d2aW1yYyIuIFRoZXNlIGZpbGVzIGNhbiBiZSBpbgorYXJlIG5hbWVkICJ2aW1yYyIgb3IgIl92aW1yYyIgYW5kICJndmltcmMiIG9yICJfZ3ZpbXJjIi4gIFRoZXNlIGZpbGVzIGNhbiBiZSBpbgogYW55IGZvcm1hdCAobWFjLCBkb3Mgb3IgdW5peCkuICBWaW0gY2FuIGhhbmRsZSBhbnkgZmlsZSBmb3JtYXQgd2hlbiB0aGUKIHwnbm9jb21wYXRpYmxlJ3wgb3B0aW9uIGlzIHNldCwgb3RoZXJ3aXNlIGl0IHdpbGwgb25seSBoYW5kbGUgbWFjIGZvcm1hdAogZmlsZXMuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19taW50LnR4dCBiL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CmluZGV4IDk3OTc3NmUuLmQ4NGY2ZjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX21pbnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX21pbnQudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDAxIFNlcCAwMworKm9zX21pbnQudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBKZW5zIE0uIEZlbGRlcmhvZmYKQEAgLTE1LDEyICsxNSwxMiBAQAogTWlOVCB2ZXJzaW9uIG9mIFZpbSB1bmxlc3MgZXhwbGljaXRseSBzdGF0ZWQgb3RoZXJ3aXNlLgogCiBGb3Igd2lsZGNhcmQgZXhwYW5zaW9uIG9mIDx+PiAoaG9tZSBkaXJlY3RvcnkpIHlvdSBuZWVkIGEgc2hlbGwgdGhhdAotZXhwYW5kcyB0aGUgdGlsZGUuIFRoZSB2YW5pbGxhIEJvdXJuZSBzaGVsbCBkb2Vzbid0IHJlY29nbml6ZSBpdC4KK2V4cGFuZHMgdGhlIHRpbGRlLiAgVGhlIHZhbmlsbGEgQm91cm5lIHNoZWxsIGRvZXNuJ3QgcmVjb2duaXplIGl0LgogV2l0aCBjc2ggYW5kIGtzaCBpdCBzaG91bGQgd29yayBPSy4KIAogVGhlIE1pTlQgdmVyc2lvbiBvZiB2aW0gbmVlZHMgdGhlIHRlcm1jYXAgZmlsZSAvZXRjL3Rlcm1jYXAgd2l0aCB0aGUKLXRlcm1pbmFsIGNhcGFiaWxpdGllcyBvZiB5b3VyIHRlcm1pbmFsLiBCdWlsdGluIHRlcm1jYXBzIGFyZQotc3VwcG9ydGVkIGZvciB0aGUgdnQ1MiB0ZXJtaW5hbC4gVGVybWNhcCBlbnRyaWVzIGZvciB0aGUgVE9TV0lOIHdpbmRvdwordGVybWluYWwgY2FwYWJpbGl0aWVzIG9mIHlvdXIgdGVybWluYWwuICBCdWlsdGluIHRlcm1jYXBzIGFyZQorc3VwcG9ydGVkIGZvciB0aGUgdnQ1MiB0ZXJtaW5hbC4gIFRlcm1jYXAgZW50cmllcyBmb3IgdGhlIFRPU1dJTiB3aW5kb3cKIG1hbmFnZXIgYW5kIHRoZSB2aXJ0dWFsIGNvbnNvbGUgdGVybWluYWxzIGhhdmUgYmVlbiBhcHBlbmRlZCB0byB0aGUKIHRlcm1jYXAgZmlsZSB0aGF0IGNvbWVzIHdpdGggdGhlIFZpbSBkaXN0cmlidXRpb24uCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX21zZG9zLnR4dCBiL3J1bnRpbWUvZG9jL29zX21zZG9zLnR4dAppbmRleCAzYzc0OWYwLi4wNTdlZjE1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19tc2Rvcy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3NfbXNkb3MudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX21zZG9zLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEF1ZyAzMQorKm9zX21zZG9zLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtOTcsNyArOTcsNyBAQAogcHJvYmxlbXMgbWF5IHJlc3VsdC4KIAogVGhlIERvczMyIHZlcnNpb24gY2Fubm90IGhhdmUgYW4gdW5saW1pdGVkIG51bWJlciBvZiBmaWxlcyBvcGVuIGF0IGFueSBvbmUKLXRpbWUuICBUaGUgbGltaXQgZGVwZW5kcyBvbiB0aGUgc2V0dGluZyBvZiBGSUxFUyBpbiB5b3VyIENPTkZJRy5TWVMuIFRoaXMKK3RpbWUuICBUaGUgbGltaXQgZGVwZW5kcyBvbiB0aGUgc2V0dGluZyBvZiBGSUxFUyBpbiB5b3VyIENPTkZJRy5TWVMuICBUaGlzCiBkZWZhdWx0cyB0byAxNTsgaWYgeW91IG5lZWQgdG8gZWRpdCBhIGxvdCBvZiBmaWxlcywgeW91IHNob3VsZCBpbmNyZWFzZSB0aGlzLgogSWYgeW91IGRvIG5vdCBzZXQgRklMRVMgaGlnaCBlbm91Z2gsIHlvdSBjYW4gZ2V0IHN0cmFuZ2UgZXJyb3JzLCBhbmQgc2hlbGwKIGNvbW1hbmRzIG1heSBjYXVzZSBhIGNyYXNoIQpAQCAtMjQxLDcgKzI0MSw3IEBACiAKIEhvdyB0byBjb3B5L3Bhc3RlIHRleHQgZnJvbS90byB2aW0gaW4gYSBkb3MgYm94OgogCi0xKSB0byBnZXQgVklNIHRvIHJ1biBpbiBhIHdpbmRvdywgaW5zdGVhZCBvZiBmdWxsIHNjcmVlbiwgcHJlc3MgYWx0K2VudGVyLgorMSkgVG8gZ2V0IFZJTSB0byBydW4gaW4gYSB3aW5kb3csIGluc3RlYWQgb2YgZnVsbCBzY3JlZW4sIHByZXNzIGFsdCtlbnRlci4KICAgIFRoaXMgdG9nZ2xlcyBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuIGZ1bGwgc2NyZWVuIGFuZCBhIGRvcyB3aW5kb3cuCiAgICBOT1RFOiBJbiBXaW5kb3dzIDk1IHlvdSBtdXN0IGhhdmUgdGhlIHByb3BlcnR5ICJGYXN0IFBhc3RpbmciIHVuY2hlY2tlZCEKICAgIEluIHRoZSBwcm9wZXJ0aWVzIGRpYWxvZyBib3ggZm9yIHRoZSBNUy1ET1Mgd2luZG93LCBnbyB0byAiTVMtRE9TCkBAIC0yNTEsMjUgKzI1MSwyNSBAQAogCiAyKSBUbyBwYXN0ZSBzb21ldGhpbmcgX2ludG9fIFZpbSwgcHV0IFZpbSBpbiBpbnNlcnQgbW9kZS4KIAotMykgcHV0IHRoZSB0ZXh0IHlvdSB3YW50IHRvIHBhc3RlIG9uIHRoZSB3aW5kb3dzIGNsaXBib2FyZC4KKzMpIFB1dCB0aGUgdGV4dCB5b3Ugd2FudCB0byBwYXN0ZSBvbiB0aGUgd2luZG93cyBjbGlwYm9hcmQuCiAKLTQpIENsaWNrIHRoZSBjb250cm9sIGJveCBpbiB0aGUgdXBwZXIgbGVmdCBvZiB0aGUgVmltIHdpbmRvdy4gKFRoaXMgbG9va3MKLSAgIGxpa2UgYSBiaWcgbWludXMgc2lnbikuIElmIHlvdSBkb24ndCB3YW50IHRvIHVzZSB0aGUgbW91c2UsIHlvdSBjYW4gZ2V0Cis0KSBDbGljayB0aGUgY29udHJvbCBib3ggaW4gdGhlIHVwcGVyIGxlZnQgb2YgdGhlIFZpbSB3aW5kb3cuICAoVGhpcyBsb29rcworICAgbGlrZSBhIGJpZyBtaW51cyBzaWduLikgIElmIHlvdSBkb24ndCB3YW50IHRvIHVzZSB0aGUgbW91c2UsIHlvdSBjYW4gZ2V0CiAgICB0aGlzIHdpdGggYWx0K3NwYWNlYmFyLgotNSkgb24gdGhlIHJlc3VsdGluZyBkcm9wZG93biBtZW51IGNob29zZSAiRWRpdCIKLTYpIG9uIHRoZSBjaGlsZCBkcm9wZG93biBtZW51IGNob29zZSAiUGFzdGUiCis1KSBPbiB0aGUgcmVzdWx0aW5nIGRyb3Bkb3duIG1lbnUgY2hvb3NlICJFZGl0Ii4KKzYpIE9uIHRoZSBjaGlsZCBkcm9wZG93biBtZW51IGNob29zZSAiUGFzdGUiLgogCiBUbyBjb3B5IHNvbWV0aGluZyBmcm9tIHRoZSBWaW0gd2luZG93IHRvIHRoZSBjbGlwYm9hcmQsCiAKLTEpIHNlbGVjdCB0aGUgY29udHJvbCBib3ggdG8gZ2V0IHRoZSBjb250cm9sIGRyb3AgZG93biBtZW51LgotMikgc2VsZWN0ICJFZGl0Ii4KLTMpIHNlbGVjdCAiTWFyayIKLTQpIHVzaW5nIGVpdGhlciB0aGUga2V5cyBvciB0aGUgbW91c2UsIHNlbGVjdCB0aGUgcGFydCBvZiB0aGUgVmltIHdpbmRvdyB0aGF0Ci0gICB5b3Ugd2FudCB0byBjb3B5LiBUbyB1c2UgdGhlIGtleXMsIHVzZSB0aGUgYXJyb3cga2V5cywgYW5kIGhvbGQgZG93biBzaGlmdAorMSkgU2VsZWN0IHRoZSBjb250cm9sIGJveCB0byBnZXQgdGhlIGNvbnRyb2wgZHJvcCBkb3duIG1lbnUuCisyKSBTZWxlY3QgIkVkaXQiLgorMykgU2VsZWN0ICJNYXJrIi4KKzQpIFVzaW5nIGVpdGhlciB0aGUga2V5cyBvciB0aGUgbW91c2UsIHNlbGVjdCB0aGUgcGFydCBvZiB0aGUgVmltIHdpbmRvdyB0aGF0CisgICB5b3Ugd2FudCB0byBjb3B5LiAgVG8gdXNlIHRoZSBrZXlzLCB1c2UgdGhlIGFycm93IGtleXMsIGFuZCBob2xkIGRvd24gc2hpZnQKICAgIHRvIGV4dGVuZCB0aGUgc2VsZWN0aW9uLgotNSkgd2hlbiB5b3UndmUgY29tcGxldGVkIHlvdXIgc2VsZWN0aW9uLCBwcmVzcyAnZW50ZXIuJyBUaGUgc2VsZWN0aW9uCi0gICBpcyBub3cgaW4gdGhlIHdpbmRvd3MgY2xpcGJvYXJkLiBCeSB0aGUgd2F5LCB0aGlzIGNhbiBiZSBhbnkKLSAgIHJlY3Rhbmd1bGFyIHNlbGVjdGlvbiwgZm9yIGV4YW1wbGUgY29sdW1ucyA0LTI1IGluIHJvd3MgNy0xMC4gSXQgY2FuCis1KSBXaGVuIHlvdSd2ZSBjb21wbGV0ZWQgeW91ciBzZWxlY3Rpb24sIHByZXNzICdlbnRlcicuICBUaGUgc2VsZWN0aW9uCisgICBpcyBub3cgaW4gdGhlIHdpbmRvd3MgY2xpcGJvYXJkLiAgQnkgdGhlIHdheSwgdGhpcyBjYW4gYmUgYW55CisgICByZWN0YW5ndWxhciBzZWxlY3Rpb24sIGZvciBleGFtcGxlIGNvbHVtbnMgNC0yNSBpbiByb3dzIDctMTAuICBJdCBjYW4KICAgIGluY2x1ZGUgYW55dGhpbmcgaW4gdGhlIFZJTSB3aW5kb3c6IHRoZSBvdXRwdXQgb2YgYSA6IWRpciwgZm9yCiAgICBleGFtcGxlLgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19vczIudHh0IGIvcnVudGltZS9kb2Mvb3Nfb3MyLnR4dAppbmRleCAzYTRkZDQ3Li41MzllMDUxIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc19vczIudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX29zMi50eHQKQEAgLTEsNCArMSw0IEBACi0qb3Nfb3MyLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgSmFuIDA5Cisqb3Nfb3MyLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFBhdWwgU2xvb3RtYW4KQEAgLTI4LDE5ICsyOCwxOSBAQAogdGhhdCBWaW0gd29uJ3QgYmUgYWJsZSB0byByZW1vdmUgdGhlIHN3YXAgZmlsZShzKSBhc3NvY2lhdGVkIHdpdGggYnVmZmVycyBvcGVuCiBhdCB0aGUgdGltZSB0aGUgb3RoZXIgcHJvZ3JhbSB3YXMgc3RhcnRlZCwgdW50aWwgdGhlIG90aGVyIHByb2dyYW0gaXMgc3RvcHBlZC4KIEF0IHRoYXQgdGltZSwgdGhlIHN3YXAgZmlsZSBtYXkgYmUgcmVtb3ZlZCwgYnV0IGlmIFZpbSBjb3VsZCBub3QgZG8gdGhhdCB0aGUKLWZpcnN0IHRpbWUsIGl0IHdvbid0IGJlIHJlbW92ZWQgYXQgYWxsLiBZb3UnbGwgZ2V0IHdhcm5pbmdzIHRoYXQgc29tZSBvdGhlcgorZmlyc3QgdGltZSwgaXQgd29uJ3QgYmUgcmVtb3ZlZCBhdCBhbGwuICBZb3UnbGwgZ2V0IHdhcm5pbmdzIHRoYXQgc29tZSBvdGhlcgogVmltIHNlc3Npb24gbWF5IGJlIGVkaXRpbmcgdGhlIGZpbGUgd2hlbiB5b3Ugc3RhcnQgVmltIHVwIGFnYWluIG9uIHRoYXQgZmlsZS4KLVRoaXMgY2FuIGJlIHJlcHJvZHVjZWQgd2l0aCAiOiFzdGFydCBlcG0iLiBOb3cgcXVpdCBWaW0sIGFuZCBzdGFydCBWaW0gYWdhaW4KK1RoaXMgY2FuIGJlIHJlcHJvZHVjZWQgd2l0aCAiOiFzdGFydCBlcG0iLiAgTm93IHF1aXQgVmltLCBhbmQgc3RhcnQgVmltIGFnYWluCiB3aXRoIHRoZSBmaWxlIHRoYXQgd2FzIGluIHRoZSBidWZmZXIgYXQgdGhlIHRpbWUgZXBtIHdhcyBzdGFydGVkLiAgSSdtIHdvcmtpbmcKIG9uIHRoaXMhCiAKIEEgc2Vjb25kIHByb2JsZW0gaXMgdGhhdCBWaW0gZG9lc24ndCB1bmRlcnN0YW5kIHRoZSBzaXR1YXRpb24gd2hlbiB1c2luZyBpdAogd2hlbiBhY2Nlc3NpbmcgdGhlIE9TLzIgc3lzdGVtIHZpYSB0aGUgbmV0d29yaywgZS5nLiB1c2luZyB0ZWxuZXQgZnJvbSBhIFVuaXgKLXN5c3RlbSwgYW5kIHRoZW4gc3RhcnRpbmcgVmltLiBUaGUgcHJvYmxlbSBzZWVtcyB0byBiZSB0aGF0IE9TLzIgPXNvbWV0aW1lcz0KK3N5c3RlbSwgYW5kIHRoZW4gc3RhcnRpbmcgVmltLiAgVGhlIHByb2JsZW0gc2VlbXMgdG8gYmUgdGhhdCBPUy8yID1zb21ldGltZXM9CiByZWNvZ25pemVzIGZ1bmN0aW9uIC8gY3Vyc29yIGtleXMsIGFuZCB0cmllcyB0byBjb252ZXJ0IHRob3NlIHRvIHRoZQotY29ycmVzcG9uZGluZyBPUy8yIGNvZGVzIGdlbmVyYXRlZCBieSB0aGUgIm5vcm1hbCIgUEMga2V5Ym9hcmQuIEkndmUgYmVlbgorY29ycmVzcG9uZGluZyBPUy8yIGNvZGVzIGdlbmVyYXRlZCBieSB0aGUgIm5vcm1hbCIgUEMga2V5Ym9hcmQuICBJJ3ZlIGJlZW4KIHRlc3RpbmcgYSB3b3JrYXJvdW5kIChtYXBwaW5nIHRoZSBPUy8yIGNvZGVzIHRvIHRoZSBjb3JyZWN0IGZ1bmN0aW9ucyksIGJ1dCBzbwotZmFyIEkgY2FuJ3Qgc2F5IGFueXRoaW5nIGNvbmNsdXNpdmUgKHRoaXMgaXMgb24gV2FycCAzLCBieSB0aGUgd2F5KS4gSW4gdGhlCitmYXIgSSBjYW4ndCBzYXkgYW55dGhpbmcgY29uY2x1c2l2ZSAodGhpcyBpcyBvbiBXYXJwIDMsIGJ5IHRoZSB3YXkpLiAgSW4gdGhlCiBtZWFudGltZSBhbnkgaGVscCB3aWxsIGJlIGFwcHJlY2lhdGVkLgogCiAKQEAgLTUyLDEyICs1MiwxMiBAQAogICAgIGVteHJ0LnppcCAgICAgZW14IHJ1bnRpbWUgcGFja2FnZQogCiBJJ3ZlIGluY2x1ZGVkIGEgY29weSBvZiBlbXguZGxsLCB3aGljaCBzaG91bGQgYmUgY29waWVkIHRvIG9uZSBvZiB0aGUKLWRpcmVjdG9yaWVzIGxpc3RlZCBpbiB5b3VyIExJQlBBVEguIEVteCBpcyBHUEwnZWQsIGJ1dCB0aGUgZW14LmRsbCBsaWJyYXJ5IGlzCitkaXJlY3RvcmllcyBsaXN0ZWQgaW4geW91ciBMSUJQQVRILiAgRW14IGlzIEdQTCdlZCwgYnV0IHRoZSBlbXguZGxsIGxpYnJhcnkgaXMKIG5vdCAocmVhZCBDT1BZSU5HLkVNWCB0byBmaW5kIG91dCB3aGF0IHRoYXQgbWVhbnMgdG8geW91KS4KIAogVGhpcyBlbXguZGxsIGlzIGZyb20gdGhlIGVteGZpeDA0LnppcCBwYWNrYWdlLCB3aGljaCB1bmZvcnR1bmF0ZWx5IGhhcyBhIGJ1ZywKIGVoLCBJIG1lYW4gYSBQT1NJWCBmZWF0dXJlLCBpbiBzZWxlY3QoKS4gIFZlcnNpb25zIG9mIFZpbSBiZWZvcmUgMy4yNyB3aWxsCi1hcHBlYXIgdG8gaGFuZyB3aGVuIHN0YXJ0aW5nIChhY3R1YWxseSwgd2hpbGUgcHJvY2Vzc2luZyB2aW1yYykuIEhpdCA8RW50ZXI+IGEKK2FwcGVhciB0byBoYW5nIHdoZW4gc3RhcnRpbmcgKGFjdHVhbGx5LCB3aGlsZSBwcm9jZXNzaW5nIHZpbXJjKS4gIEhpdCA8RW50ZXI+IGEKIGNvdXBsZSBvZiB0aW1lcyB1bnRpbCBWaW0gc3RhcnRzIHdvcmtpbmcgaWYgdGhpcyBoYXBwZW5zLiAgTmV4dCwgZ2V0IGFuIHVwIHRvCiBkYXRlIHZlcnNpb24gb2YgVmltIQogCkBAIC04NCwxNCArODQsMTQgQEAKIAlldGMuCiAKIE5vdGU6IC52aW1yYyBtYXkgYWxzbyBiZSBjYWxsZWQgX3ZpbXJjIHRvIGFjY29tbW9kYXRlIHRob3NlIHdobyBoYXZlIGNob3NlbiB0bwotaW5zdGFsbCBPUy8yIG9uIGEgRkFUIGZpbGUgc3lzdGVtLiBWaW0gZmlyc3QgdHJpZXMgdG8gZmluZCAudmltcmMgYW5kIGlmIHRoYXQKK2luc3RhbGwgT1MvMiBvbiBhIEZBVCBmaWxlIHN5c3RlbS4gIFZpbSBmaXJzdCB0cmllcyB0byBmaW5kIC52aW1yYyBhbmQgaWYgdGhhdAogZmFpbHMsIGxvb2tzIGZvciBfdmltcmMgaW4gdGhlIHNhbWUgcGxhY2UuICBUaGUgZXhpc3RlbmNlIG9mIGEgLnZpbXJjIG9yCiBfdmltcmMgZmlsZSBpbmZsdWVuY2VzIHRoZSAnY29tcGF0aWJsZScgb3B0aW9ucywgd2hpY2ggY2FuIGhhdmUgdW5leHBlY3RlZCBzaWRlCiBlZmZlY3RzLiAgU2VlIHwnY29tcGF0aWJsZSd8LgogCiBJZiB5b3UncmUgdXNpbmcgbmV0d29yayBkcml2ZXMgd2l0aCBPUy8yLCB0aGVuIHlvdSBjYW4gaW5zdGFsbCBWaW0gb24gYQogbmV0d29yayBkcml2ZSAoaW5jbHVkaW5nIC52aW1yYzsgdGhpcyBpcyB0aGVuIGNhbGxlZCB0aGUgInN5c3RlbSIgdmltcmMgZmlsZSksCi1hbmQgdGhlbiB1c2UgYSBwZXJzb25hbCBjb3B5IG9mIC52aW1yYyAodGhlICJ1c2VyIiB2aW1yYyBmaWxlKS4gVGhpcyBzaG91bGQgYmUKK2FuZCB0aGVuIHVzZSBhIHBlcnNvbmFsIGNvcHkgb2YgLnZpbXJjICh0aGUgInVzZXIiIHZpbXJjIGZpbGUpLiAgVGhpcyBzaG91bGQgYmUKIGxvY2F0ZWQgaW4gYSBkaXJlY3RvcnkgaW5kaWNhdGVkIGJ5IHRoZSBIT01FIGVudmlyb25tZW50IHZhcmlhYmxlLgogCiAKQEAgLTEzNSwxNCArMTM1LDE0IEBACiAKIAkJCQkJCQkqb3MyYW5zaSoKIFVzZSAib3MyYW5zaSIgYXMgdGhlIFRFUk0gZW52aXJvbm1lbnQgdmFyaWFibGUgKG9yIGRvbid0IHNldCBpdCBhdCBhbGwsIGFzIHRoZQotZGVmYXVsdCBpcyB0aGUgY29ycmVjdCB2YWx1ZSkuIFlvdSBjYW4gc2V0IHRlcm0gdG8gb3MyYW5zaSBpbiB0aGUgLnZpbXJjLCBpbgorZGVmYXVsdCBpcyB0aGUgY29ycmVjdCB2YWx1ZSkuICBZb3UgY2FuIHNldCB0ZXJtIHRvIG9zMmFuc2kgaW4gdGhlIC52aW1yYywgaW4KIGNhc2UgeW91IG5lZWQgVEVSTSB0byBiZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3Igb3RoZXIgYXBwbGljYXRpb25zLiAgVGhlCiBwcm9ibGVtIGlzIHRoYXQgT1MvMiBBTlNJIGVtdWxhdGlvbiBpcyBxdWl0ZSBsaW1pdGVkIChpdCBkb2Vzbid0IGhhdmUgaW5zZXJ0IC8KIGRlbGV0ZSBsaW5lLCBmb3IgZXhhbXBsZSkuCiAKIElmIHlvdSB3YW50IHRvIHVzZSBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgVEVSTSAoYmVjYXVzZSBvZiBvdGhlciBwcm9ncmFtcywgZm9yCiBleGFtcGxlKSwgbWFrZSBzdXJlIHRoYXQgdGhlIHRlcm1jYXAgZW50cnkgZm9yIHRoYXQgVEVSTSB2YWx1ZSBoYXMgdGhlCi1hcHByb3ByaWF0ZSBrZXkgbWFwcGluZ3MuIFRoZSB0ZXJtY2FwLmRhdCBkaXN0cmlidXRlZCB3aXRoIGVteCBkb2VzIG5vdCBhbHdheXMKK2FwcHJvcHJpYXRlIGtleSBtYXBwaW5ncy4gIFRoZSB0ZXJtY2FwLmRhdCBkaXN0cmlidXRlZCB3aXRoIGVteCBkb2VzIG5vdCBhbHdheXMKIGhhdmUgdGhlbS4gIEhlcmUgYXJlIHNvbWUgc3VpdGFibGUgdmFsdWVzIHRvIGFkZCB0byB0aGUgdGVybWNhcCBlbnRyeSBvZiB5b3VyCiBjaG9pY2U7IHRoZXNlIGFsbG93IHRoZSBjdXJzb3Iga2V5cyBhbmQgdGhlIG5hbWVkIGZ1bmN0aW9uIGtleXMgKHN1Y2ggYXMKIHBhZ2Vkb3duKSB0byB3b3JrLgpAQCAtMjE0LDcgKzIxNCw3IEBACiAJZW5kaWYKIAogVGhpcyB3aWxsIGVuc3VyZSB0aGF0IG9ubHkgb24gT1MvMiBjbGlwYnJkIGlzIGNhbGxlZCB3aGVyZWFzIG9uIG90aGVyCi1wbGF0Zm9ybXMgdmltcyBidWlsZCBpbiBtZWNoYW5pc20gaXMgdXNlZC4gKFRvIGVuYWJsZSB0aGlzIGZ1bmN0aW9ucyBvbiBldmVyeQorcGxhdGZvcm1zIHZpbXMgYnVpbGQgaW4gbWVjaGFuaXNtIGlzIHVzZWQuICAoVG8gZW5hYmxlIHRoaXMgZnVuY3Rpb25zIG9uIGV2ZXJ5CiBsb2FkIG9mIFZpbSBwbGFjZSB0aGUgYWJvdmUgbGluZXMgaW4geW91ciAudmltcmMuKQogCiAgdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3NfcW54LnR4dCBiL3J1bnRpbWUvZG9jL29zX3FueC50eHQKaW5kZXggYzBkMWE0Yi4uOTBkZGUzMyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3NfcW54LnR4dAorKysgYi9ydW50aW1lL2RvYy9vc19xbngudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX3FueC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEFwciAyMworKm9zX3FueC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBKdWxpYW4gS2lucmFpZApAQCAtMjIsNyArMjIsNyBAQAogCiAyLiBDb21waWxpbmcgVmltCQkJCQkqcW54LWNvbXBpbGluZyoKIAotVmltIGNhbiBiZSBjb21waWxlZCB1c2luZyB0aGUgc3RhbmRhcmQgY29uZmlndXJlL21ha2UgYXBwcm9hY2guIElmIHlvdSB3YW50IHRvCitWaW0gY2FuIGJlIGNvbXBpbGVkIHVzaW5nIHRoZSBzdGFuZGFyZCBjb25maWd1cmUvbWFrZSBhcHByb2FjaC4gIElmIHlvdSB3YW50IHRvCiBjb21waWxlIGZvciBYMTEsIHBhc3MgdGhlIC0td2l0aC14IG9wdGlvbiB0byBjb25maWd1cmUuICBPdGhlcndpc2UsIHJ1bm5pbmcKIC4vY29uZmlndXJlIHdpdGhvdXQgYW55IGFyZ3VtZW50cyBvciBwYXNzaW5nIC0tZW5hYmxlLWd1aT1waG90b24sIHdpbGwgY29tcGlsZQogdmltIHdpdGggdGhlIFBob3RvbiBndWkgc3VwcG9ydC4gIFJ1biAuL2NvbmZpZ3VyZSAtLWhlbHAgLCB0byBmaW5kIG91dCBvdGhlcgpAQCAtMTE4LDEyICsxMTgsMTIgQEAKIAkJc2V0IG5vZ3VpcHR5CiAKIEJ1Z3M6Ci0JLSBTdGlsbCBhIHNsaWdodCBwcm9ibGVtIHdpdGggbWVudSBoaWdobGlnaHRpbmcKKwktIFN0aWxsIGEgc2xpZ2h0IHByb2JsZW0gd2l0aCBtZW51IGhpZ2hsaWdodGluZy4KIAktIFdoZW4gdXNpbmcgcGhkaXR0by9waGlub3dzL2V0Yy4sIGlmIHlvdSBhcmUgdXNpbmcgYSBmb250IHRoYXQKIAkgIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgYm9sZCBhdHRyaWJ1dGUsIHdoZW4gdmltIGF0dGVtcHRzIHRvIGRyYXcKIAkgIGJvbGQgdGV4dCBpdCB3aWxsIGJlIGFsbCBtZXNzZWQgdXAuCiAJLSBUaGUgY3Vyc29yIGNhbiBzb21ldGltZXMgYmUgaGFyZCB0byBzZWUuCi0JLSBBIG51bWJlciBvZiBtaW5vciBwcm9ibGVtcyB0aGF0IGNhbiBmaXhlZCA6KQorCS0gQSBudW1iZXIgb2YgbWlub3IgcHJvYmxlbXMgdGhhdCBjYW4gZml4ZWQuIDopCiAKIFRvZG86CiAJLSBJbXByb3ZlIG11bHRpLWxhbmd1YWdlIHN1cHBvcnQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc19yaXNjLnR4dCBiL3J1bnRpbWUvZG9jL29zX3Jpc2MudHh0CmluZGV4IDA0ZjliYTUuLjc3ZTU1NWMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX3Jpc2MudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zX3Jpc2MudHh0CkBAIC0xLDQgKzEsNCBAQAotKm9zX3Jpc2MudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IE1heSAwMQorKm9zX3Jpc2MudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAyOQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBUaG9tYXMgTGVvbmFyZApAQCAtNDcsOSArNDcsOSBAQAogc29tZSBleHRyYSBmaWxlcyBzdWNoIGFzIHRoZSB3aW5kb3cgdGVtcGxhdGVzLgogCiBVc2VyIGNob2ljZXMgYXJlIHJlYWQgZnJvbSBgQ2hvaWNlczoqJyBhbmQgYXJlIHNhdmVkIHRvIGA8Q2hvaWNlcyRXcml0ZT4uKicuCi1JZiB5b3UgaGF2ZSB0aGUgbmV3ICFCb290IHN0cnVjdHVyZSB0aGVuIHRoZXNlIHNob3VsZCBiZSBzZXQgdXAgYWxyZWFkeS4gSWYKK0lmIHlvdSBoYXZlIHRoZSBuZXcgIUJvb3Qgc3RydWN0dXJlIHRoZW4gdGhlc2Ugc2hvdWxkIGJlIHNldCB1cCBhbHJlYWR5LiAgSWYKIG5vdCwgc2V0IENob2ljZXMkUGF0aCB0byBhIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gc2VhcmNoIHdoZW4gbG9va2luZyBmb3IKLXVzZXIgY29uZmlndXJhdGlvbiBmaWxlcy4gU2V0IENob2ljZXMkV3JpdGUgdG8gdGhlIGRpcmVjdG9yeSB5b3Ugd2FudCBmaWxlcwordXNlciBjb25maWd1cmF0aW9uIGZpbGVzLiAgU2V0IENob2ljZXMkV3JpdGUgdG8gdGhlIGRpcmVjdG9yeSB5b3Ugd2FudCBmaWxlcwogdG8gYmUgc2F2ZWQgaW50byAoc28geW91ciBzZWFyY2ggcGF0dGVybnMgYW5kIG1hcmtzIGNhbiBiZSByZW1lbWJlcmVkIGJldHdlZW4KIHNlc3Npb25zKS4KIApAQCAtNTgsNyArNTgsNyBAQAogMi4gRmlsZW5hbWUgbXVuZ2luZwogCiBBbGwgcGF0aG5hbWUgbXVuZ2luZyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LCBzbyBWaW0gc2hvdWxkIGJlaGF2ZSBsaWtlIGEKLW5vcm1hbCBSSVNDIE9TIGFwcGxpY2F0aW9uIG5vdy4gU28sIGlmIHlvdSB3YW50IHRvIGVkaXQgYGRvYy9odG1sJyB0aGVuIHlvdQorbm9ybWFsIFJJU0MgT1MgYXBwbGljYXRpb24gbm93LiAgU28sIGlmIHlvdSB3YW50IHRvIGVkaXQgYGRvYy9odG1sJyB0aGVuIHlvdQogYWN0dWFsbHkgdHlwZSBgKnZpIGRvYy9odG1sJy4KIAogVGhlIG9ubHkgdGltZXMgbXVuZ2luZyBpcyBkb25lIGlzIHdoZW46CkBAIC02Niw3ICs2Niw3IEBACiAtIFNlYXJjaGluZyBpbmNsdWRlZCBmaWxlcyBmcm9tIEMgcHJvZ3JhbXMsIHNpbmNlIHRoZXNlIGFyZSBhbHdheXMgbXVuZ2VkLgogICBTZWUgfFtJfC4KICAgTm90ZTogbWFrZSBzdXJlIHlvdSBhcmUgaW4gdGhlIHJpZ2h0IGRpcmVjdG9yeSB3aGVuIHlvdSB1c2UgdGhpcwotCWNvbW1hbmQgKGllIHRoZSBvbmUgd2l0aCBzdWJkaXJlY3RvcmllcyAnYycgYW5kICdoJykuCisJY29tbWFuZCAoaS5lLiB0aGUgb25lIHdpdGggc3ViZGlyZWN0b3JpZXMgJ2MnIGFuZCAnaCcpLgogCiAtIFNvdXJjaW5nIGZpbGVzIHVzaW5nIHw6c298LgogICBQYXRocyBzdGFydGluZyBgJFZJTS8nIGFyZSBtdW5nZWQgbGlrZSB0aGlzOgpAQCAtODgsNyArODgsNyBAQAogVHlwZSBgKnZpIC1oJyBmb3IgYSBsaXN0IG9mIG9wdGlvbnMuCiAKIFJ1bm5pbmcgdGhlIGNvbW1hbmQtbGluZSB2ZXJzaW9uIG9mIFZpbSBpbiBhIGxhcmdlIGhpZ2gtY29sb3IgbW9kZSBtYXkgY2F1c2UKLXRoZSBzY3JvbGxpbmcgdG8gYmUgdmVyeSBzbG93LiBFaXRoZXIgY2hhbmdlIHRvIGEgbW9kZSB3aXRoIGZld2VyIGNvbG9ycyBvcgordGhlIHNjcm9sbGluZyB0byBiZSB2ZXJ5IHNsb3cuICBFaXRoZXIgY2hhbmdlIHRvIGEgbW9kZSB3aXRoIGZld2VyIGNvbG9ycyBvcgogdXNlIHRoZSBHVUkgdmVyc2lvbi4KIAogQWxzbywgaG9sZGluZyBkb3duIEN0cmwgd2lsbCBzbG93IGl0IGRvd24gZXZlbiBtb3JlLCBhbmQgQ3RybC1TaGlmdCB3aWxsCkBAIC0xMTUsNyArMTE1LDcgQEAKIHBhc3RlIGl0IGRpcmVjdGx5IGludG8gYW5vdGhlciBhcHBsaWNhdGlvbiAocHJvdmlkZWQgaXQgc3VwcG9ydHMgdGhlCiBjbGlwYm9hcmQgdG9vKS4KIAotQ2xpY2tpbmcgTWVudSBub3cgb3BlbnMgYSBtZW51IGxpa2UgYSBub3JtYWwgUklTQyBPUyBwcm9ncmFtLiBIb2xkIGRvd24gU2hpZnQKK0NsaWNraW5nIE1lbnUgbm93IG9wZW5zIGEgbWVudSBsaWtlIGEgbm9ybWFsIFJJU0MgT1MgcHJvZ3JhbS4gIEhvbGQgZG93biBTaGlmdAogd2hlbiBjbGlja2luZyBNZW51IHRvIHBhc3RlIChmcm9tIHRoZSBnbG9iYWwgY2xpcGJvYXJkKS4KIAogRHJhZ2dpbmcgYSBmaWxlIHRvIHRoZSB3aW5kb3cgcmVwbGFjZXMgdGhlIENVUlJFTlQgYnVmZmVyICh0aGUgb25lIHdpdGggdGhlCkBAIC0xMzQsMjcgKzEzNCwyNyBAQAogZm9udCB2aWEgWmFwUmVkcmF3IGFuZCBhbnkgb2YgdGhlIFphcCBmb250cyB2aWEgWmFwUmVkcmF3OiA+CiAKICAgOnNldCBndWlmb250PQotPAkJCVRvIHVzZSB0aGUgc3lzdGVtIGZvbnQgdmlhIHRoZSBWRFUgZHJpdmVycy4gU3VwcG9ydHMKKzwJCQlUbyB1c2UgdGhlIHN5c3RlbSBmb250IHZpYSB0aGUgVkRVIGRyaXZlcnMuICBTdXBwb3J0cwogCQkJYm9sZCBhbmQgdW5kZXJsaW5lLgogPgogICA6c2V0IGd1aWZvbnQ9Q29ycHVzLk1lZGl1bQotPAkJCVVzZSB0aGUgbmFtZWQgb3V0bGluZSBmb250LiBZb3UgY2FuIHVzZSBhbnkgZm9udCwgYnV0Cis8CQkJVXNlIHRoZSBuYW1lZCBvdXRsaW5lIGZvbnQuICBZb3UgY2FuIHVzZSBhbnkgZm9udCwgYnV0CiAJCQlvbmx5IG1vbm9zcGFjZWQgb25lcyBsaWtlIENvcnB1cyBsb29rIHJpZ2h0LgogPgogICA6c2V0IGd1aWZvbnQ9Q29ycHVzLk1lZGl1bTp3ODpoMTI6YjppCiA8CQkJQXMgYmVmb3JlLCBidXQgd2l0aCBzaXplIG9mIDggcG9pbnQgYnkgMTIgcG9pbnQsIGFuZAogCQkJaW4gYm9sZCBpdGFsaWMuCiAJCQlJZiBvbmx5IG9uZSBvZiB3aWR0aCBhbmQgaGVpZ2h0IGlzIGdpdmVuIHRoZW4gdGhhdAotCQkJdmFsdWUgaXMgdXNlZCBmb3IgYm90aC4gSWYgbmVpdGhlciBpcyBnaXZlbiB0aGVuIDEwCisJCQl2YWx1ZSBpcyB1c2VkIGZvciBib3RoLiAgSWYgbmVpdGhlciBpcyBnaXZlbiB0aGVuIDEwCiAJCQlwb2ludCBpcyB1c2VkLgogCi1UaGFua3MgdG8gSm9obiBLb3J0aW5rLCBWaW0gY2FuIHVzZSB0aGUgWmFwUmVkcmF3IG1vZHVsZS4gU3RhcnQgdGhlIGZvbnQgbmFtZQorVGhhbmtzIHRvIEpvaG4gS29ydGluaywgVmltIGNhbiB1c2UgdGhlIFphcFJlZHJhdyBtb2R1bGUuICBTdGFydCB0aGUgZm9udCBuYW1lCiB3aXRoICchJyAob3IgJyEhJyBmb3IgZG91YmxlIGhlaWdodCksIGxpa2UgdGhpczogPgogCiAgIDpzZXQgZ3VpZm9udD0hIQogPAkJCVVzZSB0aGUgc3lzdGVtIGZvbnQsIGJ1dCB2aWEgWmFwUmVkcmF3LiAgVGhpcyBnaXZlcyBhCiAJCQlmYXN0ZXIgcmVkcmF3IG9uIFN0cm9uZ0FSTSBwcm9jZXNzb3JzLCBidXQgeW91IGNhbid0Ci0JCQlnZXQgYm9sZCBvciBpdGFsaWMgdGV4dC4gRG91YmxlIGhlaWdodC4KKwkJCWdldCBib2xkIG9yIGl0YWxpYyB0ZXh0LiAgRG91YmxlIGhlaWdodC4KID4KICAgOnNldCBndWlmb250PSFzY3JpcHQKIDwJCQlVc2VzIHRoZSBuYW1lZCBaYXAgZm9udCAoYSBkaXJlY3RvcnkgaW4gVmltRm9udCRQYXRoKS4KQEAgLTE2NCwxMiArMTY0LDEyIEBACiAJCQljdXJyZW50bHksIGJ1dCB5b3UgY2FuIHVzZSBhbnkgb2YgdGhlIFphcCBmb250cyBpZgogCQkJdGhleSBhcmUgaW4gVmltRm9udCRQYXRoLgogCQkJVmltIHdpbGwgdHJ5IHRvIGxvYWQgZm9udCBmaWxlcyAnMCcsICdCJywgJ0knIGFuZCAnSUInCi0JCQlmcm9tIHRoZSBuYW1lZCBkaXJlY3RvcnkuIE9ubHkgJzAnIChub3JtYWwgc3R5bGUpIE1VU1QKLQkJCWJlIHByZXNlbnQuIExpbmsgZmlsZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgorCQkJZnJvbSB0aGUgbmFtZWQgZGlyZWN0b3J5LiAgT25seSAnMCcgKG5vcm1hbCBzdHlsZSkgTVVTVAorCQkJYmUgcHJlc2VudC4gIExpbmsgZmlsZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgogCiBOb3RlIHRoYXQgd2hlbiB1c2luZyBaYXBSZWRyYXcgdGhlIGVkaXQgYmFyIGlzIGRyYXduIGluIGZyb250IG9mIHRoZSBjaGFyYWN0ZXIKLXlvdSBhcmUgb24gcmF0aGVyIHRoYW4gYmVoaW5kIGl0LiBBbHNvIHJlZHJhdyBpcyBpbmNvcnJlY3QgZm9yIHNjcmVlbiBtb2Rlcwotd2l0aCBlaWdlbiB2YWx1ZXMgb2YgMC4gSWYgdGhlIGZvbnQgaW5jbHVkZXMgY29udHJvbCBjaGFyYWN0ZXJzIHRoZW4geW91IGNhbgoreW91IGFyZSBvbiByYXRoZXIgdGhhbiBiZWhpbmQgaXQuICBBbHNvIHJlZHJhdyBpcyBpbmNvcnJlY3QgZm9yIHNjcmVlbiBtb2Rlcword2l0aCBlaWdlbiB2YWx1ZXMgb2YgMC4gIElmIHRoZSBmb250IGluY2x1ZGVzIGNvbnRyb2wgY2hhcmFjdGVycyB0aGVuIHlvdSBjYW4KIGdldCBWaW0gdG8gZGlzcGxheSB0aGVtIGJ5IGNoYW5naW5nIHRoZSAnaXNwcmludCcgb3B0aW9uLgogCiBJZiB5b3UgZmluZCB0aGUgc2Nyb2xsaW5nIGlzIHRvbyBzbG93IG9uIHlvdXIgbWFjaGluZSwgdHJ5IGV4cGVyaW1lbnRpbmcKQEAgLTE5OSw4ICsxOTksOCBAQAogCiBJZiBWaW0gY3Jhc2hlcyB0aGVuIHRoZSBzd2FwIGFuZCBiYWNrdXAgZmlsZXMgKGlmIGFueSkgd2lsbCBiZSBpbiB0aGUKIGRpcmVjdG9yaWVzIHNldCB3aXRoIHRoZSAnZGlyZWN0b3J5JyBhbmQgJ2JkaXInIG9wdGlvbnMuICBCeSBkZWZhdWx0IHRoZSBzd2FwCi1maWxlcyBhcmUgaW4gPFdpbXAkU2NyYXBEaXI+IChpZSBpbnNpZGUgIVNjcmFwKSBhbmQgYmFja3VwcyBhcmUgaW4gdGhlCi1kaXJlY3RvcnkgeW91IHdlcmUgc2F2aW5nIHRvLiBWaW0gd2lsbCBhbGxvdyB5b3UgdG8gdHJ5IGFuZCByZWNvdmVyIHRoZSBmaWxlCitmaWxlcyBhcmUgaW4gPFdpbXAkU2NyYXBEaXI+IChpLmUuIGluc2lkZSAhU2NyYXApIGFuZCBiYWNrdXBzIGFyZSBpbiB0aGUKK2RpcmVjdG9yeSB5b3Ugd2VyZSBzYXZpbmcgdG8uICBWaW0gd2lsbCBhbGxvdyB5b3UgdG8gdHJ5IGFuZCByZWNvdmVyIHRoZSBmaWxlCiB3aGVuIHlvdSBuZXh0IHRyeSB0byBlZGl0IGl0LgogCiBUbyBzZWUgYSBsaXN0IG9mIHN3YXAgZmlsZXMsIHByZXNzIDxGMTI+IGFuZCB0eXBlIGAqdmkgLXInLgpAQCAtMjIzLDEzICsyMjMsMTMgQEAKIAkJCQkJCQkqcmlzY29zLW1lbW9yeSoKIDguIE1lbW9yeSB1c2FnZQogCi1WaW0gd2lsbCB1c2UgZHluYW1pYyBhcmVhcyBvbiBSSVNDIE9TIDMuNSBvciBsYXRlci4gSWYgeW91IGNhbiB1c2UgdGhlbSBvbgotb2xkZXIgbWFjaGluZXMgdGhlbiBlZGl0IHRoZSAhUnVuVHh0IGFuZCBHVmltIGZpbGVzLiBJIGRvbid0IGtub3cgd2hhdCBVbml4TGliCitWaW0gd2lsbCB1c2UgZHluYW1pYyBhcmVhcyBvbiBSSVNDIE9TIDMuNSBvciBsYXRlci4gIElmIHlvdSBjYW4gdXNlIHRoZW0gb24KK29sZGVyIG1hY2hpbmVzIHRoZW4gZWRpdCB0aGUgIVJ1blR4dCBhbmQgR1ZpbSBmaWxlcy4gIEkgZG9uJ3Qga25vdyB3aGF0IFVuaXhMaWIKIGRvZXMgYnkgZGVmYXVsdCBvbiB0aGVzZSBtYWNoaW5lcyBzbyBJJ20gcGxheWluZyBzYWZlLgogCiBJdCBkb2Vzbid0IHdvcmsgYXQgYWxsIHdlbGwgd2l0aG91dCBkeW5hbWljIGFyZWFzLCBzaW5jZSBpdCBjYW4ndCBjaGFuZ2UgaXRzCi1tZW1vcnkgYWxsb2NhdGlvbiBvbmNlIHJ1bm5pbmcuIEhlbmNlIHlvdSBzaG91bGQgZWRpdCBgIVZpbS5HVmltJyBhbmQKLWAhVmltLiFSdW5UeHQnIHRvIGNob29zZSB0aGUgYmVzdCBzaXplIGZvciB5b3UuIFlvdSBwcm9iYWJseSBuZWVkIGF0IGxlYXN0CittZW1vcnkgYWxsb2NhdGlvbiBvbmNlIHJ1bm5pbmcuICBIZW5jZSB5b3Ugc2hvdWxkIGVkaXQgYCFWaW0uR1ZpbScgYW5kCitgIVZpbS4hUnVuVHh0JyB0byBjaG9vc2UgdGhlIGJlc3Qgc2l6ZSBmb3IgeW91LiAgWW91IHByb2JhYmx5IG5lZWQgYXQgbGVhc3QKIGFib3V0IDE0MDBLLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTIzNywxMSArMjM3LDExIEBACiA5LiBGaWxldHlwZXMKIAogWW91IGNhbiBub3cgc3BlY2lmeSB0aGF0IGF1dG9jb21tYW5kcyBhcmUgb25seSBleGVjdXRlZCBmb3IgZmlsZXMgb2YgY2VydGFpbgotdHlwZXMuIFRoZSBmaWxldHlwZSBpcyBnaXZlbiBpbiB0aGUgZm9ybSAmeHh4LCB3aGVuIHh4eCBpcyB0aGUgZmlsZXR5cGUuCit0eXBlcy4gIFRoZSBmaWxldHlwZSBpcyBnaXZlbiBpbiB0aGUgZm9ybSAmeHh4LCB3aGVuIHh4eCBpcyB0aGUgZmlsZXR5cGUuCiAKLUZpbGV0eXBlcyBtdXN0IGJlIHNwZWNpZmllZCBieSBudW1iZXIgKGVnICZmZmYgZm9yIFRleHQpLgorRmlsZXR5cGVzIG11c3QgYmUgc3BlY2lmaWVkIGJ5IG51bWJlciAoZS5nLiAmZmZmIGZvciBUZXh0KS4KIAotVGhlIHN5c3RlbSBoYXMgY2hhbmdlZCBmcm9tIHZlcnNpb24gNS4zLiBUaGUgbmV3IHNlcXVlbmNlIG9mIGV2ZW50cyBpczoKK1RoZSBzeXN0ZW0gaGFzIGNoYW5nZWQgZnJvbSB2ZXJzaW9uIDUuMy4gIFRoZSBuZXcgc2VxdWVuY2Ugb2YgZXZlbnRzIGlzOgogCiAtIEEgZmlsZSBpcyBsb2FkZWQuIHwnb3NmaWxldHlwZSd8IGlzIHNldCB0byB0aGUgUklTQyBPUyBmaWxldHlwZS4KIC0gQmFzZWQgb24gdGhlIGZpbGV0eXBlIGFuZCBwYXRobmFtZSwgVmltIHdpbGwgdHJ5IHRvIHNldCB8J2ZpbGV0eXBlJ3wgdG8gdGhlCkBAIC0yNjQsNyArMjY0LDcgQEAKICAgc2luY2UgbWFueSBwYXRobmFtZXMgY29udGFpbiB0aGVtLgogCiAtIFlvdSBjYW4gcHJlZml4IHRoZSBjb21tYW5kIHdpdGggJ34nLCB3aGljaCBzdG9wcyBhbnkgb3V0cHV0IGZyb20gYmVpbmcKLSAgZGlzcGxheWVkLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byBwcmVzcyA8RW50ZXI+IGFmdGVyd2FyZHMsCisgIGRpc3BsYXllZC4gIFRoaXMgYWxzbyBtZWFucyB0aGF0IHlvdSBkb24ndCBoYXZlIHRvIHByZXNzIDxFbnRlcj4gYWZ0ZXJ3YXJkcywKICAgYW5kIHN0b3BzIHRoZSBzY3JlZW4gZnJvbSBiZWluZyByZWRyYXduLiB7b25seSBpbiB0aGUgR1VJIHZlcnNpb259CiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjc0LDE0ICsyNzQsMTQgQEAKIERvd25sb2FkaW5nIGV2ZXJ5dGhpbmcgeW91IG5lZWQ6CiAKIC0gR2V0IHRoZSBsYXRlc3Qgc291cmNlIGRpc3RyaWJ1dGlvbiAoc2VlIHd3dy52aW0ub3JnKQotLSBHZXQgdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZmlsZXMgKGVnIHRoZXNlIGhlbHAgZmlsZXMpCistIEdldCB0aGUgcnVudGltZSBlbnZpcm9ubWVudCBmaWxlcyAoZS5nLiB0aGVzZSBoZWxwIGZpbGVzKQogLSBHZXQgdGhlIGBleHRyYScgYXJjaGl2ZSAoY29udGFpbnMgdGhlIFJJU0MgT1Mgc3BlY2lmaWMgYml0cykKIC0gR2V0IHRoZSBSSVNDIE9TIGJpbmFyeSBkaXN0cmlidXRpb24gKGlmIHBvc3NpYmxlKQogCiAKIFVuYXJjaGl2aW5nOgogCi0tIENyZWF0ZSBhIHJhRlMgZGlzayBhbmQgcHV0IHRoZSBhcmNoaXZlcyBvbiBpdC4KKy0gQ3JlYXRlIGEgcmFGUyBkaXNrIGFuZCBwdXQgdGhlIGFyY2hpdmVzIG9uIGl0CiAtIFVuLWd6aXAgdGhlbQogLSBVbi10YXIgdGhlbSAgICgqdGFyIHhFTGYgNTAgYXJjaGl2ZS90YXIpCiAKQEAgLTI4OSw5ICsyODksOSBAQAogUmVjb21waWxpbmcgdGhlIHNvdXJjZXM6CiAKIC0gQ3JlYXRlIGMsIHMsIGFuZCBoIGRpcmVjdG9yaWVzLgotLSBQdXQgYWxsIHRoZSBoZWFkZXIgZmlsZXMgaW4gJ2gnCSAgICAgXAotLSBQdXQgYWxsIHRoZSBDIGZpbGVzIGluIGBjJwkJICAgICB8IEFuZCBsb3NlIHRoZSBleHRlbnNpb25zCi0tIFB1dCB0aGUgYXNzZW1ibGVyIGZpbGUgKGBzd2lzL3MnKSBpbiAncycgICAvCistIFB1dCBhbGwgdGhlIGhlYWRlciBmaWxlcyBpbiAnaCcuCSAgICAgXAorLSBQdXQgYWxsIHRoZSBDIGZpbGVzIGluIGBjJy4JCSAgICAgfCBBbmQgbG9zZSB0aGUgZXh0ZW5zaW9ucworLSBQdXQgdGhlIGFzc2VtYmxlciBmaWxlIChgc3dpcy9zJykgaW4gJ3MnLiAgLwogLSBSZW5hbWUgYWxsIHRoZSBmaWxlcyBpbiBgcHJvdG8nIHRvIGBoJywgbGlrZSB0aGlzOgogICAgIHJhRlM6OlZpbVNyYy5zb3VyY2UucHJvdG8uZmlsZS9wcm8KIAkgIGJlY29tZXMKQEAgLTMwMCw5ICszMDAsOSBAQAogICAgIC5wcm8iCiAgICAgICAgd2l0aAogICAgIF9wcm8uaCIKLS0gQ3JlYXRlIGEgc2ltcGxlIE1ha2VmaWxlIGlmIGRlc2lyZWQgYW5kIGRvICcqbWFrZSAtaycKLSAgVXNlICdDQyA9IGdjYyAtRFJJU0NPUyAtRFVTRV9HVUkgLU8yIC14IGMnIGluIHRoZSBNYWtlZmlsZQotLSBTYXZlIHRoZSBiaW5hcnkgYXMgIVZpbS5WaW0gaW4gdGhlIGJpbmFyeSBkaXN0cmlidXRpb24KKy0gQ3JlYXRlIGEgc2ltcGxlIE1ha2VmaWxlIGlmIGRlc2lyZWQgYW5kIGRvICcqbWFrZSAtaycuCisgIFVzZSAnQ0MgPSBnY2MgLURSSVNDT1MgLURVU0VfR1VJIC1PMiAteCBjJyBpbiB0aGUgTWFrZWZpbGUuCistIFNhdmUgdGhlIGJpbmFyeSBhcyAhVmltLlZpbSBpbiB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbi4KIAogCiBVcGRhdGluZyB0aGUgcnVuLXRpbWUgZW52aXJvbm1lbnQ6CkBAIC0zMTEsOSArMzExLDkgQEAKICAgbmV3IGZpbGVzLgogLSBSZW1vdmUgZmlsZXMgaW4gYGRvYycgbm90IGVuZGluZyBpbiBgL3R4dCcsIGV4Y2VwdCBmb3IgYHRhZ3MnLgogLSBMb3NlIHRoZSBleHRlbnNpb25zIGZyb20gdGhlIGZpbGVzIGluIGBkb2MnLgotLSBFZGl0IHRoZSBgZG9jLnRhZ3MnIGZpbGUuIFJlbW92ZSBleHRlbnNpb25zIGZyb20gdGhlIHNlY29uZCBjb2x1bW46ID4KKy0gRWRpdCB0aGUgYGRvYy50YWdzJyBmaWxlLiAgUmVtb3ZlIGV4dGVuc2lvbnMgZnJvbSB0aGUgc2Vjb25kIGNvbHVtbjogPgogCTolcy9eXCguW15cdF0qXHQuKlwpXC50eHRcdC9cMVx0LwotLSBSZW1vdmUgZXh0ZW5zaW9ucyBmcm9tIHRoZSBzeW50YXggZmlsZXMuIFNwbGl0IHRoZW0gaW50byB0d28gZGlyZWN0b3JpZXMKKy0gUmVtb3ZlIGV4dGVuc2lvbnMgZnJvbSB0aGUgc3ludGF4IGZpbGVzLiAgU3BsaXQgdGhlbSBpbnRvIHR3byBkaXJlY3RvcmllcwogICB0byBhdm9pZCB0aGUgNzcgZW50cnkgbGltaXQgb24gb2xkIEFERlMgZmlsZXN5c3RlbXMuCiAtIEVkaXQgYFZpbTpGaWxlVHlwZScgdG8gbWF0Y2ggYCouYy4qJyBhcyB3ZWxsIGFzIGAqL2MnIGFuZCBzbyBvbi4KICAgQWRkIGZpbGV0eXBlIGNoZWNraW5nIHRvby4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX3Ztcy50eHQgYi9ydW50aW1lL2RvYy9vc192bXMudHh0CmluZGV4IGFhYjVhMjQuLjhiYjFiMWMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29zX3Ztcy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3Nfdm1zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvc192bXMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBKdW4gMTYKKypvc192bXMudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwKQEAgLTY5LDMyICs2OSwzMiBAQAogNC4gUHJvYmxlbXMJCQkJCQkqdm1zLXByb2JsZW1zKgogCiBUaGUgY29kZSBoYXMgYmVlbiB0ZXN0ZWQgdW5kZXIgT3BlbiBWTVMgNi4yIC0gNy4zIG9uIEFscGhhIGFuZCBWQVggcGxhdGZvcm1zCi13aXRoIHRoZSBERUNDIGNvbXBpbGVyLiBJdCBzaG91bGQgd29yayB3aXRob3V0IGJpZ2dlciBwcm9ibGVtcy4KLUlmIGl0IGhhcHBlbmVkIHRoYXQgeW91ciBzeXN0ZW0gZG9lcyBub3QgaGF2ZSBzb21lIGluY2x1ZGUgbGlicmFyaWVzIHlvdSBjYW4KLXR1bmUgdXAgaW4gT1NfVk1TX0NPTkYuSCBmaWxlLgord2l0aCB0aGUgREVDIEMgY29tcGlsZXIuICBJdCBzaG91bGQgd29yayB3aXRob3V0IGJpZ2dlciBwcm9ibGVtcy4KK0lmIHlvdXIgc3lzdGVtIGRvZXMgbm90IGhhdmUgc29tZSBpbmNsdWRlIGxpYnJhcmllcyB5b3UgY2FuIHR1bmUgdXAgaW4KK09TX1ZNU19DT05GLkggZmlsZS4KIAogSWYgeW91IGRlY2lkZWQgdG8gYnVpbGQgVmltIHdpdGggK3BlcmwsICtweXRob24sIGV0Yy4gb3B0aW9ucywgZmlyc3QgeW91IG5lZWQKLXRvIGRvd25sb2FkIE9wZW5WTVMgZGlzdHJpYnV0aW9ucyBvZiBQZXJsIGFuZCBQeXRob24uIEJ1aWxkIGFuZCBkZXBsb3kgdGhlCi1saWJyYXJpZXMgYW5kIGNoYW5nZSBhZGVxdWF0ZSBsaW5lcyBpbiBNQUtFX1ZNUy5NTVMgZmlsZS4gVGhlcmUgc2hvdWxkIG5vdCBiZQotcHJvYmxlbSBmcm9tIFZpbSBzaWRlLgordG8gZG93bmxvYWQgT3BlblZNUyBkaXN0cmlidXRpb25zIG9mIFBlcmwgYW5kIFB5dGhvbi4gIEJ1aWxkIGFuZCBkZXBsb3kgdGhlCitsaWJyYXJpZXMgYW5kIGNoYW5nZSBhZGVxdWF0ZSBsaW5lcyBpbiBNQUtFX1ZNUy5NTVMgZmlsZS4gIFRoZXJlIHNob3VsZCBub3QgYmUKK2EgcHJvYmxlbSBmcm9tIFZpbSBzaWRlLgogCi1Ob3RlOiBVbmRlciBWQVggaXQgc2hvdWxkIHdvcmsgd2l0aCBERUMgQyBjb21waWxlciB3aXRob3V0IHByb2JsZW0uIFZBWEMKLWNvbXBpbGVyIGlzIG5vdCBmdWxseSBBTlNJIEMgY29tcGF0aWJsZSBpbiBwcmUtcHJvY2Vzc29yIGRpcmVjdGl2ZXMKLXNlbWFudGljcywgdGhlcmVmb3JlIHlvdSBoYXZlIHRvIHVzZSBhIGNvbnZlcnRlciBwcm9ncmFtIHdoYXQgd2lsbCBkbyB0aGUKLWxpb24gcGFydCBvZiB0aGUgam9iLiBGb3IgZGV0YWlsZWQgaW5zdHJ1Y3Rpb24gcmVhZCBmaWxlIElOU1RBTEx2bXMudHh0CitOb3RlOiBVbmRlciBWQVggaXQgc2hvdWxkIHdvcmsgd2l0aCB0aGUgREVDIEMgY29tcGlsZXIgd2l0aG91dCBwcm9ibGVtcy4gIFRoZQorVkFYIEMgY29tcGlsZXIgaXMgbm90IGZ1bGx5IEFOU0kgQyBjb21wYXRpYmxlIGluIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcworc2VtYW50aWNzLCB0aGVyZWZvcmUgeW91IGhhdmUgdG8gdXNlIGEgY29udmVydGVyIHByb2dyYW0gd2hhdCB3aWxsIGRvIHRoZSBsaW9uCitwYXJ0IG9mIHRoZSBqb2IuICBGb3IgZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIHJlYWQgZmlsZSBJTlNUQUxMdm1zLnR4dAogCi1NTVNfVklNLkVYRSBpcyBidWlsZGluZyB0b2dldGhlciB3aXRoIFZJTS5FWEUsIGJ1dCBmb3IgWEQuRVhFIHlvdSBzaG91bGQKK01NU19WSU0uRVhFIGlzIGJ1aWxkIHRvZ2V0aGVyIHdpdGggVklNLkVYRSwgYnV0IGZvciBYRC5FWEUgeW91IHNob3VsZAogY2hhbmdlIHRvIHN1YmRpcmVjdG9yeSBhbmQgYnVpbGQgaXQgc2VwYXJhdGVseS4KIAotQ1RBR1MgaXMgbm90IHBhcnQgb2YgVmltIHNvdXJjZSBkaXN0cmlidXRpb24gYW55IG1vcmUsIGhvd2V2ZXIgdGhlIE9wZW5WTVMKLXNwZWNpZmljIHNvdXJjZSBtaWdodCBjb250YWluIENUQUdTIHNvdXJjZSBmaWxlcyBhcyBpdCBpcyBkZXNjcmliZWQgYWJvdmUuCitDVEFHUyBpcyBub3QgcGFydCBvZiB0aGUgVmltIHNvdXJjZSBkaXN0cmlidXRpb24gYW55bW9yZSwgaG93ZXZlciB0aGUgT3BlblZNUworc3BlY2lmaWMgc291cmNlIG1pZ2h0IGNvbnRhaW4gQ1RBR1Mgc291cmNlIGZpbGVzIGFzIGRlc2NyaWJlZCBhYm92ZS4KIFlvdSBjYW4gZmluZCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENUQUdTIG9uIFZNUyBhdAogaHR0cDovL3d3dy5wb2xhcmhvbWUuY29tL2N0YWdzLwogCiBBZHZhbmNlZCB1c2VycyBtYXkgdHJ5IHNvbWUgYWNyb2JhdGljcyBpbiBGRUFUVVJFLkggZmlsZSBhbHNvLgogCiBJdCBpcyBwb3NzaWJsZSB0byBjb21waWxlIHdpdGggK3hmb250c2V0ICt4aW0gb3B0aW9ucyB0b28sIGJ1dCB0aGVuIHlvdSBoYXZlCi10byBzZXQgdXAgR1VJIGZvbnRzIGV0Yy4gY29ycmVjdGx5LiBTZWUuIDpoZWxwIHhpbSBmcm9tIFZpbSBjb21tYW5kIHByb21wdC4KK3RvIHNldCB1cCBHVUkgZm9udHMgZXRjLiBjb3JyZWN0bHkuICBTZWUgOmhlbHAgeGltIGZyb20gVmltIGNvbW1hbmQgcHJvbXB0LgogCiBZb3UgbWF5IHdhbnQgdG8gdXNlIEdVSSB3aXRoIEdUSyBpY29ucywgdGhlbiB5b3UgaGF2ZSB0byBkb3dubG9hZCBhbmQgaW5zdGFsbAogR1RLIGZvciBPcGVuVk1TIG9yIGF0IGxlYXN0IHJ1bnRpbWUgc2hhcmVhYmxlIGltYWdlcyAtIExJQkdUSyBmcm9tCkBAIC0xMzIsMTggKzEzMiwxOCBAQAogCWRlZmluZS9ub2xvZyBUTVAJZGV2aWNlOltwYXRoLnRtcF0KIAogdG8gZ2V0IHZpbS5leGUgdG8gZmluZCBpdHMgZG9jdW1lbnQsIGZpbGV0eXBlLCBhbmQgc3ludGF4IGZpbGVzLCBhbmQgdG8KLXNwZWNpZnkgYSBkaXJlY3Rvcnkgd2hlcmUgdGVtcG9yYXJ5IGZpbGVzIHdpbGwgYmUgbG9jYXRlZC4gQ29weSB0aGUgInJ1bnRpbWUiCitzcGVjaWZ5IGEgZGlyZWN0b3J5IHdoZXJlIHRlbXBvcmFyeSBmaWxlcyB3aWxsIGJlIGxvY2F0ZWQuICBDb3B5IHRoZSAicnVudGltZSIKIHN1YmRpcmVjdG9yeSBvZiB0aGUgdmltIGRpc3RyaWJ1dGlvbiB0byB2aW1ydW50aW1lLgogCiBMb2dpY2FscyAkVklNUlVOVElNRSBhbmQgJFRNUCBhcmUgb3B0aW9uYWwuCiAKIElmICRWSU1SVU5USU1FIGlzIG5vdCBzZXQsIFZpbSB3aWxsIGd1ZXNzIGFuZCB0cnkgdG8gc2V0IHVwIGF1dG9tYXRpY2FsbHkuCi1SZWFkIG1vcmUgYWJvdXQgYXQgOmhlbHAgcnVudGltZQorUmVhZCBtb3JlIGFib3V0IGl0IGF0IDpoZWxwIHJ1bnRpbWUKIAogSWYgJFRNUCBpcyBub3Qgc2V0LCB5b3Ugd2lsbCBub3QgYmUgYWJsZSB0byB1c2Ugc29tZSBmdW5jdGlvbnMgYXMgQ1RBR1MsCiBYWEQsIHByaW50aW5nIGV0Yy4gdGhhdCB1c2UgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3Igbm9ybWFsIG9wZXJhdGlvbi4KLSRUTVAgZGlyZWN0b3J5IHNob3VsZCBiZSByZWFkYWJsZSBhbmQgd3JpdGFibGUgYnkgdGhlIHVzZXIocykuCi1UaGUgZWFzaWVzdCB3YXkgdG8gc2V0IHVwICRUTVAgaXMgdG8gZGVmaW5lIGxvZ2ljYWw6ID4KK1RoZSAkVE1QIGRpcmVjdG9yeSBzaG91bGQgYmUgcmVhZGFibGUgYW5kIHdyaXRhYmxlIGJ5IHRoZSB1c2VyKHMpLgorVGhlIGVhc2llc3Qgd2F5IHRvIHNldCB1cCAkVE1QIGlzIHRvIGRlZmluZSBhIGxvZ2ljYWw6ID4KIAogCWRlZmluZS9ub2xvZyBUTVAgU1lTJFNDUkFUQ0gKIG9yIGFzOiA+CkBAIC0xNTUsOSArMTU1LDkgQEAKIAogVXN1YWxseSwgeW91IHdhbnQgdG8gcnVuIGp1c3Qgb25lIHZlcnNpb24gb2YgVmltIG9uIHlvdXIgc3lzdGVtLCB0aGVyZWZvcmUKIGl0IGlzIGVub3VnaCB0byBkZWRpY2F0ZSBvbmUgZGlyZWN0b3J5IGZvciBWaW0uCi1Db3B5IGFsbCBWaW0gcnVudGltZSBkaXJlY3Rvcnkgc3RydWN0dXJlIHRvIHRoZSBkZXBsb3ltZW50IHBvc2l0aW9uLgorQ29weSB0aGUgd2hvbGUgVmltIHJ1bnRpbWUgZGlyZWN0b3J5IHN0cnVjdHVyZSB0byB0aGUgZGVwbG95bWVudCBwb3NpdGlvbi4KIEFkZCB0aGUgZm9sbG93aW5nIGxpbmVzIHRvIHlvdXIgTE9HSU4uQ09NIChpbiBTWVMkTE9HSU4gZGlyZWN0b3J5KS4KLVNldCB1cCBsb2dpY2FsICRWSU0gYXM6ID4KK1NldCB1cCB0aGUgbG9naWNhbCAkVklNIGFzOiA+CiAKIAkkIGRlZmluZSBWSU0gZGV2aWNlOjxwYXRoPgogCkBAIC0xNzQsMjAgKzE3NCwyMCBAQAogWW91IG1heSB3YW50IHRvIGNyZWF0ZSAudmltcmMgYW5kIC5ndmltcmMgZmlsZXMgaW4geW91ciBob21lIGRpcmVjdG9yeQogKFNZUyRMT0dJTikgdG8gb3ZlcndyaXRlIGRlZmF1bHQgc2V0dGluZ3MuCiAKLVRoZSBlYXNpZXN0IHdheSBpcyBqdXN0IHJlbmFtZSBleGFtcGxlIGZpbGVzLiBZb3UgbWF5IGxlYXZlIHRoZSBtZW51IGZpbGUKLShNRU5VLlZJTSkgYW5kIGZpbGVzIHZpbXJjIGFuZCBndmltcmMgaW4gdGhlIG9yaWdpbmFsICRWSU0gZGlyZWN0b3J5LiBJdCB3aWxsCi1iZSBkZWZhdWx0IHNldHVwIGZvciBhbGwgdXNlcnMsIGFuZCBmb3IgdXNlcnMgaXMgZW5vdWdoIGp1c3QgdG8gaGF2ZSB0aGVpcgotb3duIGFkZGl0aW9ucyBvciByZXNldHRpbmcgaW4gaG9tZSBkaXJlY3RvcnkgaW4gZmlsZXMgLnZpbXJjIGFuZCAuZ3ZpbXJjLgorVGhlIGVhc2llc3Qgd2F5IGlzIGp1c3QgcmVuYW1lIGV4YW1wbGUgZmlsZXMuICBZb3UgbWF5IGxlYXZlIHRoZSBtZW51IGZpbGUKKyhNRU5VLlZJTSkgYW5kIGZpbGVzIHZpbXJjIGFuZCBndmltcmMgaW4gdGhlIG9yaWdpbmFsICRWSU0gZGlyZWN0b3J5LiAgSXQgd2lsbAorYmUgZGVmYXVsdCBzZXR1cCBmb3IgYWxsIHVzZXJzLCBhbmQgZm9yIHVzZXJzIGl0IGlzIGVub3VnaCBqdXN0IHRvIGhhdmUgdGhlaXIKK293biBhZGRpdGlvbnMgb3IgcmVzZXR0aW5nIGluIHRoZWlyIGhvbWUgZGlyZWN0b3J5IGluIGZpbGVzIC52aW1yYyBhbmQgLmd2aW1yYy4KIEl0IHNob3VsZCB3b3JrIHdpdGhvdXQgcHJvYmxlbXMuCiAKLU5vdGU6IFJlbWVtYmVyLCBzeXN0ZW0gcmMgZmlsZXMgKGRlZmF1bHQgZm9yIGFsbCB1c2VycykgZG9lcyBub3QgaGF2ZSBsZWFkaW5nCi0iLiIgU28sIHN5c3RlbSByYyBmaWxlcyBhcmU6ID4KK05vdGU6IFJlbWVtYmVyLCBzeXN0ZW0gcmMgZmlsZXMgKGRlZmF1bHQgZm9yIGFsbCB1c2VycykgZG9uJ3QgaGF2ZSBhIGxlYWRpbmcKKyIuIi4gIFNvLCBzeXN0ZW0gcmMgZmlsZXMgYXJlOiA+CiAKIAkkVklNOnZpbXJjCiAJJFZJTTpndmltcmMKIAkkVklNOm1lbnUudmltCiAKLWFuZCB1c2VyJ3MgY3VzdG9taXplZCByYyBmaWxlcyBhcmU6ID4KK2FuZCB1c2VyIGN1c3RvbWl6ZWQgcmMgZmlsZXMgYXJlOiA+CiAKIAlzeXMkbG9naW46LnZpbXJjCiAJc3lzJGxvZ2luOi5ndmltcmMKQEAgLTIwMyw3ICsyMDMsNyBAQAogCiBOb3RlOiBUaGlzIHNldC11cCBzaG91bGQgYmUgZW5vdWdoLCBpZiB5b3UgYXJlIHdvcmtpbmcgb24gc3RhbmRhbG9uZSBzZXJ2ZXIgb3IKIGNsdXN0ZXJlZCBlbnZpcm9ubWVudCwgYnV0IGlmIHlvdSB3YW50IHRvIHVzZSBWaW0gYXMgaW50ZXJub2RlIGVkaXRvciBpbgotREVDTkVUIGVudmlyb25tZW50LCBpdCB3aWxsIHNhdGlzZnkgeW91IGFzIHdlbGwuCitERUNORVQgZW52aXJvbm1lbnQsIGl0IHdpbGwgc2F0aXNmeSBhcyB3ZWxsLgogWW91IGp1c3QgaGF2ZSB0byBkZWZpbmUgdGhlICJ3aG9sZSIgcGF0aDogPgogCiAJJCBkZWZpbmUgVklNICI8c2VydmVyX25hbWU+WyIidXNlciBwYXNzd29yZCIiXTo6ZGV2aWNlOjxwYXRoPiIKQEAgLTIxNCwxMCArMjE0LDExIEBACiAJJCBkZWZpbmUgVklNICJQTFVUTzo6UkYxMDpbVVRJTC5WSU1dIgogCSQgZGVmaW5lIFZJTSAiUExVVE8iIlpBWSBteXBhc3MiIjo6UkYxMDpbVVRJTC5WSU1dIiAhIGlmIHBhc3N3ZCByZXF1aXJlZAogCi1Zb3UgY2FuIGFsc28gdXNlICRWSU1SVU5USU1FIGxvZ2ljYWwgdG8gcG9pbnQgdG8gcHJvcGVyIHZlcnNpb24gb2YgVmltIGlmIHlvdQotaGF2ZSBpbnN0YWxsZWQgbW9yZSB2ZXJzaW9ucyBpbiB0aGUgc2FtZSB0aW1lLiBJZiAkVklNUlVOVElNRSBpcyBub3QgZGVmaW5lZAotVmltIHdpbGwgYm9ycm93IHZhbHVlIGZyb20gJFZJTSBsb2dpY2FsLiBZb3UgY2FuIGZpbmQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dAotJFZJTVJVTlRJTUUgbG9naWNhbCBieSB0eXBpbmcgOmhlbHAgcnVudGltZSBhcyBhIFZpbSBjb21tYW5kLgorWW91IGNhbiBhbHNvIHVzZSB0aGUgJFZJTVJVTlRJTUUgbG9naWNhbCB0byBwb2ludCB0byB0aGUgcHJvcGVyIHZlcnNpb24gb2YgVmltCitpZiB5b3UgaGF2ZSBpbnN0YWxsZWQgbW9yZSB2ZXJzaW9ucyBhdCB0aGUgc2FtZSB0aW1lLiAgSWYgJFZJTVJVTlRJTUUgaXMgbm90CitkZWZpbmVkIFZpbSB3aWxsIGJvcnJvdyBpdHMgdmFsdWUgZnJvbSB0aGUgJFZJTSBsb2dpY2FsLiAgWW91IGNhbiBmaW5kIG1vcmUKK2luZm9ybWF0aW9uIGFib3V0IHRoZSAkVklNUlVOVElNRSBsb2dpY2FsIGJ5IHR5cGluZyA6aGVscCBydW50aW1lIGFzIGEgVmltCitjb21tYW5kLgogCiBTeXN0ZW0gYWRtaW5pc3RyYXRvcnMgbWlnaHQgd2FudCB0byBzZXQgdXAgYSBzeXN0ZW0gd2lkZSBWaW0gaW5zdGFsbGF0aW9uLAogdGhlbiBhZGQgdG8gdGhlIFNZUyRTVEFSVFVQOlNZTE9HSUNBTFMuQ09NID4KQEAgLTIzMSwzOCArMjMyLDQwIEBACiAJJCBndippbTo9PSBzcGF3bi9ub3dhaXQvaW5wdXQ9TkxBMCBtY3IgVklNOlZJTS5FWEUgLWcgLUdFT01FVFJZIDgweDQwCiAKIAotSXQgd2lsbCBzZXQgdXAgbm9ybWFsIFZpbSB3b3JrIGVudmlyb25tZW50IGZvciBldmVyeSB1c2VyIG9uIHRoZSBzeXN0ZW0uCitJdCB3aWxsIHNldCB1cCBhIG5vcm1hbCBWaW0gd29yayBlbnZpcm9ubWVudCBmb3IgZXZlcnkgdXNlciBvbiB0aGUgc3lzdGVtLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogNy4gR1VJIG1vZGUgcXVlc3Rpb25zCQkJCQkqdm1zLWd1aSoKIAotT3BlblZNUyBpbiBhIHJlYWwgbWFpbmZyYW1lIE9TLCB0aGVyZWZvcmUgZXZlbiBpZiBpdCBoYXMgYSBHVUkgY29uc29sZSwgbW9zdCBvZgotdGhlIHVzZXJzIGRvZXMgbm90IHVzZSBhIG5hdGl2ZSBYL1dpbmRvdyBlbnZpcm9ubWVudCBkdXJpbmcgbm9ybWFsIG9wZXJhdGlvbi4KLUl0IGlzIG5vdCBwb3NzaWJsZSB0byBzdGFydCBWaW0gaW4gR1VJIG1vZGUgImp1c3QgbGlrZSB0aGF0Ii4gQnV0IGFueWhvdyBpdCBpcwotbm90IHRvbyBjb21wbGljYXRlIGVpdGhlci4KK09wZW5WTVMgaXMgYSByZWFsIG1haW5mcmFtZSBPUywgdGhlcmVmb3JlIGV2ZW4gaWYgaXQgaGFzIGEgR1VJIGNvbnNvbGUsIG1vc3QKK29mIHRoZSB1c2VycyBkbyBub3QgdXNlIGEgbmF0aXZlIFgvV2luZG93IGVudmlyb25tZW50IGR1cmluZyBub3JtYWwgb3BlcmF0aW9uLgorSXQgaXMgbm90IHBvc3NpYmxlIHRvIHN0YXJ0IFZpbSBpbiBHVUkgbW9kZSAianVzdCBsaWtlIHRoYXQiLiAgQnV0IGFueWhvdyBpdAoraXMgbm90IHRvbyBjb21wbGljYXRlZCBlaXRoZXIuCiAKLUZpcnN0IG9mIGFsbDogeW91IHdpbGwgbmVlZCBhbiBleGVjdXRhYmxlIHRoYXQgaXMgYnVpbHQgd2l0aCBlbmFibGVkIEdVSS4KK0ZpcnN0IG9mIGFsbDogeW91IHdpbGwgbmVlZCBhbiBleGVjdXRhYmxlIHRoYXQgaXMgYnVpbHQgd2l0aCB0aGUgR1VJIGVuYWJsZWQuCiAKIFNlY29uZDogeW91IG5lZWQgdG8gaGF2ZSBpbnN0YWxsZWQgREVDVy9Nb3RpZiBvbiB5b3VyIFZNUyBzZXJ2ZXIsIG90aGVyd2lzZQogeW91IHdpbGwgZ2V0IGVycm9ycyB0aGF0IHNvbWUgc2hhcmVhYmxlIGxpYnJhcmllcyBhcmUgbWlzc2luZy4KIAotVGhpcmQ6IElmIHlvdSBjaG9vc2UgdG8gcnVuIFZpbSB3aXRoIGV4dHJhIGZlYXR1cmUgYXMgR1VJL0dUSyB0aGVuIHlvdSBuZWVkCi1HVEsgaW5zdGFsbGF0aW9uIHRvbyBvciBhdCBsZWFzdCBHVEsgcnVudGltZSBlbnZpcm9ubWVudCAoTElCR1RLIGV0Yy4pCitUaGlyZDogSWYgeW91IGNob29zZSB0byBydW4gVmltIHdpdGggZXh0cmEgZmVhdHVyZXMgc3VjaCBhcyBHVUkvR1RLIHRoZW4geW91CituZWVkIGEgR1RLIGluc3RhbGxhdGlvbiB0b28gb3IgYXQgbGVhc3QgYSBHVEsgcnVudGltZSBlbnZpcm9ubWVudCAoTElCR1RLCitldGMuKS4KIAogMSkgSWYgeW91IGFyZSB3b3JraW5nIG9uIHRoZSBWTVMgWC9Nb3RpZiBjb25zb2xlOgogICAgU3RhcnQgVmltIHdpdGggdGhlIGNvbW1hbmQ6ID4KIAogCSQgbWMgZGV2aWNlOjxwYXRoPlZJTS5FWEUgLWcKIDwKLSAgIG9yIHR5cGUgOmd1aSBhcyBhIGNvbW1hbmQgdG8gdGhlIFZpbSBjb21tYW5kIHByb21wdC4gRm9yIG1vcmUgaW5mbyA6aGVscCBndWkKKyAgIG9yIHR5cGUgOmd1aSBhcyBhIGNvbW1hbmQgdG8gdGhlIFZpbSBjb21tYW5kIHByb21wdC4gIEZvciBtb3JlIGluZm8gOmhlbHAKKyAgIGd1aQogCi0yKSBJZiB5b3UgYXJlIHdvcmtpbmcgb24gb3RoZXIgWC9XaW5kb3cgZW52aXJvbm1lbnQgYXMgVW5peCBvciBzb21lIHJlbW90ZSBYCi0gICBWTVMgY29uc29sZS4gU2V0IHVwIGRpc3BsYXkgdG8geW91ciBob3N0IHdpdGg6ID4KKzIpIElmIHlvdSBhcmUgd29ya2luZyBvbiBzb21lIG90aGVyIFgvV2luZG93IGVudmlyb25tZW50IGxpa2UgVW5peCBvciBhIHJlbW90ZQorICAgWCBWTVMgY29uc29sZS4gIFNldCB1cCBkaXNwbGF5IHRvIHlvdXIgaG9zdCB3aXRoOiA+CiAKIAkkIHNldCBkaXNwL2NyZWF0ZS9ub2RlPTx5b3VyIElQIGFkZHJlc3M+L3RyYW5zPTx0cmFuc3BvcnQtbmFtZT4KIDwKLSAgIGFuZCBzdGFydCBWaW0gYXMgaW4gcG9pbnQgMS4gWW91IGNhbiBmaW5kIG1vcmUgaGVscCBpbiBWTVMgZG9jdW1lbnRhdGlvbiBvcgorICAgYW5kIHN0YXJ0IFZpbSBhcyBpbiBwb2ludCAxLiAgWW91IGNhbiBmaW5kIG1vcmUgaGVscCBpbiBWTVMgZG9jdW1lbnRhdGlvbiBvcgogICAgdHlwZTogaGVscCBzZXQgZGlzcCBpbiBWTVMgcHJvbXB0LgogICAgRXhhbXBsZXM6ID4KIApAQCAtMjc2LDExICsyNzksMTEgQEAKIDMpIEFub3RoZXIgZWxlZ2FudCBzb2x1dGlvbiBpcyBYRE0gaWYgeW91IGhhdmUgaW5zdGFsbGVkIG9uIE9wZW5WTVMgYm94LgogICAgSXQgaXMgcG9zc2libGUgdG8gd29yayBmcm9tIFhETSBjbGllbnQgYXMgZnJvbSBHVUkgY29uc29sZS4KIAotNCkgSWYgeW91IGFyZSB3b3JraW5nIG9uIE1TIFdpbmRvd3Mgb3Igb3RoZXIgbm9uIFgvV2luZG93IGVudmlyb25tZW50Ci0gICBZb3UgbmVlZCB0byBzZXQgdXAgb25lIFggc2VydmVyIGFuZCBydW4gVmltIGFzIGluIHBvaW50IDIuCi0gICBGb3IgTVMgV2luZG93cyB0aGVyZSBhcmUgYXZhaWxhYmxlIGZyZWUgWCBzZXJ2ZXJzIGFzIE1JWCAsIE9tbmkgWCBldGMuCis0KSBJZiB5b3UgYXJlIHdvcmtpbmcgb24gTVMtV2luZG93cyBvciBzb21lIG90aGVyIG5vbiBYL1dpbmRvdyBlbnZpcm9ubWVudAorICAgeW91IG5lZWQgdG8gc2V0IHVwIG9uZSBYIHNlcnZlciBhbmQgcnVuIFZpbSBhcyBpbiBwb2ludCAyLgorICAgRm9yIE1TLVdpbmRvd3MgdGhlcmUgYXJlIGF2YWlsYWJsZSBmcmVlIFggc2VydmVycyBhcyBNSVggLCBPbW5pIFggZXRjLiwKICAgIGFzIHdlbGwgYXMgZXhjZWxsZW50IGNvbW1lcmNpYWwgcHJvZHVjdHMgYXMgZVhjdXJzaW9uIG9yIFJlZmxlY3Rpb25YIHdpdGgKLSAgIGJ1aWx0IGluIERFQyBzdXBwb3J0LgorICAgYnVpbHQtaW4gREVDIHN1cHBvcnQuCiAKIFBsZWFzZSBub3RlLCB0aGF0IGV4ZWN1dGFibGVzIHdpdGhvdXQgR1VJIGFyZSBzbGlnaHRseSBmYXN0ZXIgZHVyaW5nIHN0YXJ0dXAKIHRoZW4gd2l0aCBlbmFibGVkIEdVSSBpbiBjaGFyYWN0ZXIgbW9kZS4gVGhlcmVmb3JlLCBpZiB5b3UgZG8gbm90IHVzZSBHVUkKQEAgLTMxOSw3ICszMjIsNyBAQAogCiA4LjIgRmlsdGVycwogCi1WaW0gc3VwcG9ydHMgZmlsdGVyczsgaWUuIGlmIHlvdSBoYXZlIGEgc29ydCBwcm9ncmFtIHRoYXQgY2FuIGhhbmRsZQorVmltIHN1cHBvcnRzIGZpbHRlcnMsIGkuZS4sIGlmIHlvdSBoYXZlIGEgc29ydCBwcm9ncmFtIHRoYXQgY2FuIGhhbmRsZQogaW5wdXQvb3V0cHV0IHJlZGlyZWN0aW9uIGxpa2UgVW5peCAoPGluZmlsZSA+b3V0ZmlsZSksIHlvdSBjb3VsZCB1c2UgPgogCiAJOm1hcCBccyAwISdhcXNvcnQ8Q1I+CkBAIC0zMzMsMTkgKzMzNiwyMCBAQAogbnVtYmVyLCB0cnkgdGhlc2Ugc2V0dGluZ3MuID4KIAogCTpzZXQgbm9iYWNrdXAJICAgICAiIGRvZXMgbm90IGNyZWF0ZSAqLipfIGJhY2t1cCBmaWxlcwotCTpzZXQgbm93cml0ZWJhY2t1cCAgICIgZG9lcyBub3QgaGF2ZSBhbnkgcHVycG9zZSBvbiBWTVMuIEl0J3MgZGVmYXVsdC4KKwk6c2V0IG5vd3JpdGViYWNrdXAgICAiIGRvZXMgbm90IGhhdmUgYW55IHB1cnBvc2Ugb24gVk1TLiAgSXQncyB0aGUKKwkgICAgICAgICAgICAgICAgICAgICAiIGRlZmF1bHQuCiAKIFJlY292ZXJ5IGlzIHdvcmtpbmcgcGVyZmVjdCBhcyB3ZWxsIGZyb20gdGhlIGRlZmF1bHQgc3dhcCBmaWxlLgogUmVhZCBtb3JlIHdpdGggOmhlbHAgc3dhcGZpbGUKIAogKENsYXVkZSBNYXJpbmllciA8Q2xhdWRlTWFyaW5pZXJAeHdhdmVzb2x1dGlvbnMuY29tPiBWaW0gNS41LCBab2x0YW4gQXJwYWRmZnkKLVZpbSA1LjYgKQorVmltIDUuNikKIAogCiA4LjQgRGlyZWN0b3J5IGNvbnZlcnNpb24KIAogVmltIHdpbGwgaW50ZXJuYWxseSBjb252ZXJ0IGFueSB1bml4LXN0eWxlIHBhdGhzIGFuZCBldmVuIG1peGVkIHVuaXgvVk1TCi1wYXRocyBpbnRvIFZNUyBzdHlsZSBwYXRocy4gU29tZSB0eXBpY2FsIGNvbnZlcnNpb25zIHJlc2VtYmxlOgorcGF0aHMgaW50byBWTVMgc3R5bGUgcGF0aHMuICBTb21lIHR5cGljYWwgY29udmVyc2lvbnMgcmVzZW1ibGU6CiAKIAkvYWJjL2RlZi9naGkJCS0+IGFiYzpbZGVmXWdoaS4KIAkvYWJjL2RlZi9naGkuagkJLT4gYWJjOltkZWZdZ2hpLmoKQEAgLTM3Nyw5ICszODEsOSBAQAogTm90ZTogc3ludGF4IGlzIHZlcnkgaW1wb3J0YW50LCBvdGhlcndpc2UgVk1TIHdpbGwgcmVjb2duaXplIG1vcmUgcGFyYW1ldGVycwogaW5zdGVhZCBvZiBvbmUgKHJlc3VsdGluZyB3aXRoOiBmaWxlIG5vdCBmb3VuZCkKIAotMi4gIFNldCB1cCBWaW0gYXMgeW91ciBpbnRlcm5vZGUgZWRpdG9yLiBJZiBWaW0gaXMgbm90IGluc3RhbGxlZCBvbiB5b3VyIGhvc3QsCi1qdXN0IHNldCB1cCB5b3VyIElQIGFkZHJlc3MsIGZ1bGwgVmltIHBhdGggaW5jbHVkaW5nIHRoZSBzZXJ2ZXIgbmFtZSBhbmQgcnVuCi10aGUgY29tbWFuZCBwcm9jZWR1cmUgYmVsb3c6ID4KKzIuICBTZXQgdXAgVmltIGFzIHlvdXIgaW50ZXJub2RlIGVkaXRvci4gIElmIFZpbSBpcyBub3QgaW5zdGFsbGVkIG9uIHlvdXIKK2hvc3QsIGp1c3Qgc2V0IHVwIHlvdXIgSVAgYWRkcmVzcywgdGhlIGZ1bGwgVmltIHBhdGggaW5jbHVkaW5nIHRoZSBzZXJ2ZXIgbmFtZQorYW5kIHJ1biB0aGUgY29tbWFuZCBwcm9jZWR1cmUgYmVsb3c6ID4KIAogCSQgaWYgKHAxIC5lcXMuICIiKSAuT1IuIChwMiAuZXFzLiAiIikgdGhlbiBnb3RvIHVzYWdlCiAJJCBzZXQgZGlzcC9jcmVhdGUvbm9kZT08eW91cl9JUF9oZXJlPi90cmFucz10Y3BpcApAQCAtMzkyLDggKzM5Niw4IEBACiAJJCB3cml0ZSBzeXMkb3V0cHV0ICIgRXhhbXBsZTogQFNFVFZJTS5DT00gdXNlcm5hbWUgcGFzc3dkIgogCSQgZW5kOgogCi1Ob3RlOiBOZXZlciB1c2UgaXQgaW4gY2x1c3RlcmVkIGVudmlyb25tZW50ICh5b3UgZG8gbm90IG5lZWQgaXQpLCBhbmQgbG9hZCBjb3VsZAotYmUgdmVyeS12ZXJ5IHNsb3csIGJ1dCBldmVuIGZhc3RlciB0aGVuIGEgbG9jYWwgRW1hY3MuIDotKQorTm90ZTogTmV2ZXIgdXNlIGl0IGluIGEgY2x1c3RlcmVkIGVudmlyb25tZW50ICh5b3UgZG8gbm90IG5lZWQgaXQpLCBsb2FkaW5nCitjb3VsZCBiZSB2ZXJ5LXZlcnkgc2xvdywgYnV0IGV2ZW4gZmFzdGVyIHRoZW4gYSBsb2NhbCBFbWFjcy4gOi0pCiAKIChab2x0YW4gQXJwYWRmZnksIFZpbSA1LjYpCiAKQEAgLTQwNCw3ICs0MDgsNyBAQAogb25lIHlvdSB3aWxsIGdldCB0aGUgZm9sbG93aW5nIG1lc3NhZ2UgZHVyaW5nIHN0YXJ0LXVwOgogLS0tCiBUZXJtaW5hbCBlbnRyeSBub3QgZm91bmQgaW4gdGVybWNhcAotJ3Vua25vd24tdGVybWluYWwnIG5vdCBrbm93bi4gQXZhaWxhYmxlIGJ1aWx0LWluIHRlcm1pbmFscyBhcmU6CisndW5rbm93bi10ZXJtaW5hbCcgbm90IGtub3duLiAgQXZhaWxhYmxlIGJ1aWx0LWluIHRlcm1pbmFscyBhcmU6CiAgICAgYnVpbHRpbl9ndWkKICAgICBidWlsdGluX3Jpc2NvcwogICAgIGJ1aWx0aW5fYW1pZ2EKQEAgLTQyMiwxMyArNDI2LDEzIEBACiAtLS0KIFRoZSBzb2x1dGlvbiBpcyB0byBkZWZpbmUgZGVmYXVsdCB0ZXJtaW5hbCBuYW1lOiA+CiAKLQkkICEgdW5rbm93biB0ZXJtaW5hbCBuYW1lLiBsZXQgdXMgdXNlIHZ0MzIwIG9yIGFuc2kgaW5zdGVhZC4KKwkkICEgdW5rbm93biB0ZXJtaW5hbCBuYW1lLiAgTGV0IHVzIHVzZSB2dDMyMCBvciBhbnNpIGluc3RlYWQuCiAJJCAhIE5vdGU6IGl0J3MgY2FzZSBzZW5zaXRpdmUKIAkkIGRlZmluZSB0ZXJtICJ2dDMyMCIKIAogVGVybWluYWxzIGZyb20gVlQxMDAgdG8gVlQzMjAgKGFzIFYzMDAsIFZUMjIwLCBWVDIwMCApIGRvIG5vdCBuZWVkIGFueSBleHRyYQota2V5Ym9hcmQgbWFwcGluZ3MuIFRoZXkgc2hvdWxkIHdvcmsgcGVyZmVjdCBhcyB0aGV5IGFyZSwgaW5jbHVkaW5nIGFycm93cywKLUlucywgRGVsIGJ1dHRvbnMgZXRjLiBFeGNlcHQgQmFja3NwYWNlIGluIEdVSSBtb2RlLiBUbyBzb2x2ZSBpdCwgYWRkIHRvCitrZXlib2FyZCBtYXBwaW5ncy4gIFRoZXkgc2hvdWxkIHdvcmsgcGVyZmVjdCBhcyB0aGV5IGFyZSwgaW5jbHVkaW5nIGFycm93cywKK0lucywgRGVsIGJ1dHRvbnMgZXRjLiwgZXhjZXB0IEJhY2tzcGFjZSBpbiBHVUkgbW9kZS4gIFRvIHNvbHZlIGl0LCBhZGQgdG8KIC5ndmltcmM6ID4KIAogCWlub3JlbWFwIDxEZWw+IDxCUz4KQEAgLTQ1Nyw5ICs0NjEsOSBAQAogCU1DUiA8cGF0aD5maWxlbmFtZSA8cGFyYW1ldGVycz4KIAogT3BlblZNUyB1c2VycyBhbHdheXMgaGF2ZSB0byBiZSBhd2FyZSB0aGF0IHRoZSBWaW0gY29tbWFuZCA6ISAianVzdCIgZHJvcCB0aGVtCi10byBEQ0wgcHJvbXB0LiBUaGlzIGZlYXR1cmUgaXMgcG9zc2libGUgdG8gdXNlIHdpdGhvdXQgYW55IHByb2JsZW0gd2l0aCBhbGwKK3RvIERDTCBwcm9tcHQuICBUaGlzIGZlYXR1cmUgaXMgcG9zc2libGUgdG8gdXNlIHdpdGhvdXQgYW55IHByb2JsZW0gd2l0aCBhbGwKIERDTCBjb21tYW5kcywgYnV0IGlmIHdlIHdhbnQgdG8gZXhlY3V0ZSBzb21lIHByb2dyYW0gYXMgWFhELCBDVEFHUywgSlRBR1MgZXRjLgotd2UncmUgcnVubmluZyBpbnRvIHRyb3VibGUgaWYgd2UgZm9sbG93aW5nIHRoZSBWaW0gZG9jdW1lbnRhdGlvbiAoc2VlOiBoZWxwCit3ZSdyZSBydW5uaW5nIGludG8gdHJvdWJsZSBpZiB3ZSBmb2xsb3cgdGhlIFZpbSBkb2N1bWVudGF0aW9uIChzZWU6IGhlbHAKIHh4ZCkuCiAKIFNvbHV0aW9uOiBFeGVjdXRlIHdpdGggdGhlIE1DIGNvbW1hbmQgYW5kIGFkZCB0aGUgZnVsbCBwYXRoIHRvIHRoZSBleGVjdXRhYmxlLgpAQCAtNDcwLDkgKzQ3NCw5IEBACiAuLi4gb3IgaW4gZ2VuZXJhbDogPgogCTohbWMgPHBhdGg+ZmlsZW5hbWUgPHBhcmFtZXRlcnM+CiAKLU5vdGU6IFlvdSBjYW4gdXNlIFhYRCwgYW5kIENUQUdTIGZyb20gR1VJIG1lbnUuCitOb3RlOiBZb3UgY2FuIHVzZSBYWEQgYW5kIENUQUdTIGZyb20gR1VJIG1lbnUuCiAKLVRvIGN1c3RvbWl6ZSBjdGFncyBpdCBpcyBwb3NzaWJsZSB0byBkZWZpbmUgbG9naWNhbCAkQ1RBR1Mgd2l0aCBzdGFuZGFyZAorVG8gY3VzdG9taXplIGN0YWdzIGl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSB0aGUgbG9naWNhbCAkQ1RBR1Mgd2l0aCBzdGFuZGFyZAogcGFyYW1ldGVycyBhczogPgogCiAJZGVmaW5lL25vbG9nIENUQUdTICItLXRvdGFscyAtbyBzeXMkbG9naW46dGFncyIKQEAgLTQ4OCw3ICs0OTIsNyBAQAogSWYgeW91IHdhbnQgdG8gdXNlIHlvdXIgLnZpbXJjIGFuZCAuZ3ZpbXJjIGZyb20gb3RoZXIgcGxhdGZvcm1zIChlLmcuIFdpbmRvd3MpCiB5b3UgY2FuIGdldCBpbiB0cm91YmxlIGlmIHlvdSBmdHAgdGhhdCBmaWxlKHMpOiBWTVMgaGFzIGRpZmZlcmVudCBlbmQtb2YtbGluZQogaW5kaWNhdGlvbi4KLVRoZSBzeW1wdG9tIGlzIHRoYXQgVmlNIGlzIG5vdCBzb3VyY2luZyB5b3VyIC52aW1yYy8uZ3ZpbXJjLCBldmVuIGlmIHlvdSBzYXk6CitUaGUgc3ltcHRvbSBpcyB0aGF0IFZpbSBpcyBub3Qgc291cmNpbmcgeW91ciAudmltcmMvLmd2aW1yYywgZXZlbiBpZiB5b3Ugc2F5OgogPgogCTpzbyBzeXMkbG9naW46LnZpbXJjCiAKQEAgLTUzNSw4ICs1MzksOCBAQAogCiBGcm9tIDYuMCBkaWZmIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gaW1wbGVtZW50ZWQsIGJ1dCBPcGVuVk1TIGRvZXMgbm90IHVzZQogR05VL1VuaXggbGlrZSBkaWZmIHRoZXJlZm9yZSBidWlsdCBpbiBkaWZmIGRvZXMgbm90IHdvcmsuCi1UaGVyZSBpcyBhIHNpbXBsZSBzb2x1dGlvbiB0byBzb2x2ZSB0aGlzIGFub21hbHkuIEluc3RhbGwgYW4gVW5peCBsaWtlIGRpZmYKLWFuZCBWaW0gd2lsbCB3b3JrIHBlcmZlY3QgaW4gZGlmZiBtb2RlIHRvby4gWW91IGp1c3QgaGF2ZSB0byByZWRlZmluZSB5b3VyCitUaGVyZSBpcyBhIHNpbXBsZSBzb2x1dGlvbiB0byBzb2x2ZSB0aGlzIGFub21hbHkuICBJbnN0YWxsIGEgVW5peCBsaWtlIGRpZmYKK2FuZCBWaW0gd2lsbCB3b3JrIHBlcmZlY3QgaW4gZGlmZiBtb2RlIHRvby4gIFlvdSBqdXN0IGhhdmUgdG8gcmVkZWZpbmUgeW91cgogZGlmZiBwcm9ncmFtIGFzOiA+CiAKIAlkZWZpbmUgL25vbG9nIGRpZmYgPEdOVV9QQVRIPmRpZmYuZXhlCkBAIC01NTEsMTYgKzU1NSwxNiBAQAogOC4xMiBkaWZmLW1vZGUKIAogVmltIDYuMCBhbmQgaGlnaGVyIHN1cHBvcnRzIHZpbSBkaWZmLW1vZGUgKFNlZSB8bmV3LWRpZmYtbW9kZXwsIHxkaWZmLW1vZGV8Ci1hbmQgfDA4Ljd8KS4gVGhpcyB1c2VzIHRoZSBleHRlcm5hbCBwcm9ncmFtICdkaWZmJyBhbmQgZXhwZWN0cyBhIFVuaXgtbGlrZQotb3V0cHV0IGZvcm1hdCBmcm9tIGRpZmYuIFRoZSBzdGFuZGFyZCBWTVMgZGlmZiBoYXMgYSBkaWZmZXJlbnQgb3V0cHV0Ci1mb3JtYXQuIFRvIHVzZSB2aW0gb24gVk1TIGluIGRpZmYtbW9kZSwgeW91IG5lZWQgdG86CithbmQgfDA4Ljd8KS4gIFRoaXMgdXNlcyB0aGUgZXh0ZXJuYWwgcHJvZ3JhbSAnZGlmZicgYW5kIGV4cGVjdHMgYSBVbml4LWxpa2UKK291dHB1dCBmb3JtYXQgZnJvbSBkaWZmLiAgVGhlIHN0YW5kYXJkIFZNUyBkaWZmIGhhcyBhIGRpZmZlcmVudCBvdXRwdXQKK2Zvcm1hdC4gIFRvIHVzZSB2aW0gb24gVk1TIGluIGRpZmYtbW9kZSwgeW91IG5lZWQgdG86CiAgICAgMSBJbnN0YWxsIGEgVW5peC1saWtlIGRpZmYgcHJvZ3JhbSwgZS5nLiBHTlUgZGlmZgogICAgIDIgVGVsbCB2aW0gdG8gdXNlIHRoZSBVbml4LWxpa2UgZGlmZiBmb3IgZGlmZi1tb2RlLgogCiBZb3UgY2FuIGRvd25sb2FkIEdOVSBkaWZmIGZyb20gdGhlIFZJTS1WTVMgd2Vic2l0ZSwgaXQgaXMgb25lIG9mIHRoZSBHTlUKLXRvb2xzIGluIGh0dHA6Ly93d3cucG9sYXJob21lLmNvbS92aW0vZmlsZXMvZ251X3Rvb2xzLnppcC4gSSBzdWdnZXN0IHRvCit0b29scyBpbiBodHRwOi8vd3d3LnBvbGFyaG9tZS5jb20vdmltL2ZpbGVzL2dudV90b29scy56aXAuICBJIHN1Z2dlc3QgdG8KIHVucGFjayBpdCBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeSAiR05VIiBhbmQgY3JlYXRlIGEgbG9naWNhbCBHTlU6IHRoYXQKLXBvaW50cyB0byB0aGF0IGRpcmVjdG9yeS4gZS5nOiA+Citwb2ludHMgdG8gdGhhdCBkaXJlY3RvcnksIGUuZzogPgogCiAgICBERUZJTkUgR05VICAgIDxESVNLPjpbPERJUkVDVE9SWT4uQklOLkdOVV0KIApAQCAtNTY5LDkgKzU3Myw5IEBACiAKICAgIEdESUZGIDo9PSAgICAgJEdOVTpESUZGLkVYRQogCi1Ob3cgeW91IG5lZWQgdG8gdGVsbCB2aW0gdG8gdXNlIHRoZSBuZXcgZGlmZiBwcm9ncmFtLiBUYWtlIHRoZSBleGFtcGxlCitOb3cgeW91IG5lZWQgdG8gdGVsbCB2aW0gdG8gdXNlIHRoZSBuZXcgZGlmZiBwcm9ncmFtLiAgVGFrZSB0aGUgZXhhbXBsZQogc2V0dGluZ3MgZnJvbSB8ZGlmZi1kaWZmZXhwcnwgYW5kIGNoYW5nZSB0aGUgY2FsbCB0byB0aGUgZXh0ZXJuYWwgZGlmZgotcHJvZ3JhbSB0byB0aGUgbmV3IGRpZmYgb24gVk1TLiBBZGQgdGhpcyB0byB5b3VyIC52aW1yYyBmaWxlOiA+Citwcm9ncmFtIHRvIHRoZSBuZXcgZGlmZiBvbiBWTVMuICBBZGQgdGhpcyB0byB5b3VyIC52aW1yYyBmaWxlOiA+CiAKICAgICAgIiBTZXQgdXAgdmltZGlmZiBvcHRpb25zCiAgICAgICAgaWYgdjp2ZXJzaW9uID49IDYwMApAQCAtNjEyLDggKzYxNiw4IEBACiAKIDguMTMgQWxsb3cgJyQnIGluIEMga2V5d29yZHMKIAotREVDIEMgdXNlcyBtYW55IGlkZW50aWZpZXJzIHdpdGggJyQnIGluIHRoZW0uIFRoaXMgaXMgbm90IGFsbG93ZWQgaW4gQU5TSSBDLAotYW5kIHZpbSByZWNvZ25pc2VzIHRoZSAnJCcgYXMgdGhlIGVuZCBvZiB0aGUgaWRlbnRpZmllci4gWW91IGNhbiBjaGFuZ2UgdGhpcworREVDIEMgdXNlcyBtYW55IGlkZW50aWZpZXJzIHdpdGggJyQnIGluIHRoZW0uICBUaGlzIGlzIG5vdCBhbGxvd2VkIGluIEFOU0kgQywKK2FuZCB2aW0gcmVjb2duaXNlcyB0aGUgJyQnIGFzIHRoZSBlbmQgb2YgdGhlIGlkZW50aWZpZXIuICBZb3UgY2FuIGNoYW5nZSB0aGlzCiB3aXRoIHRoZSB8aXNrZXl3b3JkfGNvbW1hbmQuCiBBZGQgdGhpcyBjb21tYW5kIHRvIHlvdXIgLnZpbXJjIGZpbGU6ID4KIApAQCAtNjI1LDcgKzYyOSw3IEBACiAJc2V0IGlza2V5d29yZCs9JAogCiBOb3cgd29yZC1iYXNlZCBjb21tYW5kcywgZS5nLiB0aGUgJyonLXNlYXJjaC1jb21tYW5kIGFuZCB0aGUgQ1RSTC1dCi10YWctbG9va3VwLCB3b3JrIG9uIHRoZSB3aG9sZSBpZGVudGlmaWVyLiAoQ3RhZ3Mgb24gVk1TIGFsc28gc3VwcG9ydHMgJyQnIGluCit0YWctbG9va3VwLCB3b3JrIG9uIHRoZSB3aG9sZSBpZGVudGlmaWVyLiAgKEN0YWdzIG9uIFZNUyBhbHNvIHN1cHBvcnRzICckJyBpbgogQyBrZXl3b3JkcyBzaW5jZSBjdGFncyB2ZXJzaW9uIDUuMS4pCiAKICggQ29lbiBFbmdlbGJhcnRzLCBWaW0gNi4xKQpAQCAtNjMzLDggKzYzNyw4IEBACiA4LjE0IFZJTVRVVE9SIGZvciBiZWdpbm5lcnMKIAogSXQgZXhpdHMgVklNVFVUT1IuQ09NIERDTCBzY3JpcHQgdGhhdCBjYW4gaGVscCBWaW0gYmVnaW5uZXJzIHRvIGxlYXJuL21ha2UKLWZpcnN0IHN0ZXBzIHdpdGggVmltIG9uIE9wZW5WTVMuIERlcGVuZGluZyBvZiBiaW5hcnkgZGlzdHJpYnV0aW9uIHlvdSBtYXkgc3RhcnQKLWl0IHdpdGg6ID4KK2ZpcnN0IHN0ZXBzIHdpdGggVmltIG9uIE9wZW5WTVMuICBEZXBlbmRpbmcgb2YgYmluYXJ5IGRpc3RyaWJ1dGlvbiB5b3UgbWF5CitzdGFydCBpdCB3aXRoOiA+CiAKIAlAdmltOnZpbXR1dG9yCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dCBiL3J1bnRpbWUvZG9jL3BpX25ldHJ3LnR4dAppbmRleCAzZjIwMmRhLi4zZDQ4Yjc3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9waV9uZXRydy50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfbmV0cncudHh0CkBAIC0xNzcsMTYgKzE3NywxNiBAQAogd2hpY2ggaXMgZGVmYXVsdGVkIHRvICJzY3AgLXEiKS4KIAogRnRwLCBhbiBvbGQgcHJvdG9jb2wsIHNlZW1zIHRvIGJlIGJsZXNzZWQgYnkgbnVtZXJvdXMgaW1wbGVtZW50YXRpb25zLgotVW5mb3J0dW5hdGVseSwgc29tZSBpbXBsZW1lbnRhdGlvbnMgYXJlIG5vaXN5IChpZS4sIGFkZCBqdW5rIHRvIHRoZSBlbmQKK1VuZm9ydHVuYXRlbHksIHNvbWUgaW1wbGVtZW50YXRpb25zIGFyZSBub2lzeSAoaS5lLiwgYWRkIGp1bmsgdG8gdGhlIGVuZAogb2YgdGhlIGZpbGUpLiAgVGh1cywgY29uY2VybmVkIHVzZXJzIG1heSBkZWNpZGUgdG8gd3JpdGUgYSBOZXRSZWFkRml4dXAoKQogZnVuY3Rpb24gdGhhdCB3aWxsIGNsZWFuIHVwIGFmdGVyIHJlYWRpbmcgd2l0aCB0aGVpciBmdHAuICBTb21lIFVuaXggc3lzdGVtcwotKGllLiwgRnJlZUJTRCkgcHJvdmlkZSBhIHV0aWxpdHkgY2FsbGVkICJmZXRjaCIgd2hpY2ggdXNlcyB0aGUgZnRwIHByb3RvY29sCisoaS5lLiwgRnJlZUJTRCkgcHJvdmlkZSBhIHV0aWxpdHkgY2FsbGVkICJmZXRjaCIgd2hpY2ggdXNlcyB0aGUgZnRwIHByb3RvY29sCiBidXQgaXMgbm90IG5vaXN5IGFuZCBtb3JlIGNvbnZlbmllbnQsIGFjdHVhbGx5LCBmb3IgPG5ldHJ3LnZpbT4gdG8gdXNlLgogQ29uc2VxdWVudGx5LCBpZiAiZmV0Y2giIGlzIGV4ZWN1dGFibGUsIGl0IHdpbGwgYmUgdXNlZCB0byBkbyByZWFkcyBmb3IKIGZ0cDovLy4uLiAoYW5kIGh0dHA6Ly8uLi4pIC4gIFNlZSB8bmV0cnctdmFyfCBmb3IgbW9yZSBhYm91dCB0aGlzLgogCiBGb3IgcmNwLCBzY3AsIHNmdHAsIGFuZCBodHRwLCBvbmUgbWF5IHVzZSBuZXR3b3JrLW9yaWVudGVkIGZpbGUgdHJhbnNmZXJzCi10cmFuc3BhcmVudGx5OyBpZS4KK3RyYW5zcGFyZW50bHk7IGkuZS4KID4KIAl2aW0gcmNwOi8vW3VzZXJAXW1hY2hpbmUvcGF0aAogCXZpbSBzY3A6Ly9bdXNlckBdbWFjaGluZS9wYXRoCkBAIC0xOTgsNyArMTk4LDcgQEAKIAl2aW0gZnRwOi8vW3VzZXJAXW1hY2hpbmVbWzojXXBvcnRudW1iZXJdL3BhdGgKIDwKIEhvd2V2ZXIsIGZ0cCB3aWxsIG9mdGVuIG5lZWQgdG8gcXVlcnkgdGhlIHVzZXIgZm9yIHRoZSB1c2VyaWQgYW5kIHBhc3N3b3JkLgotVGhlIGxhdHRlciB3aWxsIGJlIGRvbmUgInNpbGVudGx5IjsgaWUuIGFzdGVyaXNrcyB3aWxsIHNob3cgdXAgaW5zdGVhZCBvZgorVGhlIGxhdHRlciB3aWxsIGJlIGRvbmUgInNpbGVudGx5IjsgaS5lLiBhc3Rlcmlza3Mgd2lsbCBzaG93IHVwIGluc3RlYWQgb2YKIHRoZSBhY3R1YWxseS10eXBlZC1pbiBwYXNzd29yZC4gIE5ldHJ3IHdpbGwgcmV0YWluIHRoZSB1c2VyaWQgYW5kIHBhc3N3b3JkCiBmb3Igc3Vic2VxdWVudCByZWFkL3dyaXRlcyBmcm9tIHRoZSBtb3N0IHJlY2VudCB0cmFuc2ZlciBzbyBzdWJzZXF1ZW50CiB0cmFuc2ZlcnMgKHJlYWQvd3JpdGUpIHRvIG9yIGZyb20gdGhhdCBtYWNoaW5lIHdpbGwgdGFrZSBwbGFjZSB3aXRob3V0CkBAIC02MjUsNyArNjI1LDcgQEAKIAlnOm5ldHJ3X3RpbWVmbXQJCQlzcGVjaWZ5IGZvcm1hdCBzdHJpbmcgdG8gc3RyZnRpbWUoKSAoJWMpCiAJZzpuZXRyd193aW5zaXplCQkJc3BlY2lmeSBpbml0aWFsIHNpemUgb2YgbmV3IG8vdiB3aW5kb3dzCiAKLUlOVFJPRFVDVElPTiBUTyBESVJFQ1RPUlkgQlJPV1NJTkcKK0lOVFJPRFVDVElPTiBUTyBESVJFQ1RPUlkgQlJPV1NJTkcJCQkqZmlsZS1leHBsb3JlcioKIAogTmV0cncgc3VwcG9ydHMgdGhlIGJyb3dzaW5nIG9mIGRpcmVjdG9yaWVzIG9uIHRoZSBsb2NhbCBzeXN0ZW0gYW5kIG9uIHJlbW90ZQogaG9zdHMsIGluY2x1ZGluZyBnZW5lcmF0aW5nIGxpc3RpbmcgZGlyZWN0b3JpZXMsIGVudGVyaW5nIGRpcmVjdG9yaWVzLCBlZGl0aW5nCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9wcmludC50eHQgYi9ydW50aW1lL2RvYy9wcmludC50eHQKaW5kZXggNDJhNjA5Ny4uNTZmYTQ5ZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcHJpbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ByaW50LnR4dApAQCAtMSw0ICsxLDQgQEAKLSpwcmludC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBKdWwgMDUKKypwcmludC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTMyLDcgKzMyLDcgQEAKIAkJCXByaW50ZXIuCiAKIAkJCU9uIE1TLVdpbmRvd3MgYSBkaWFsb2cgaXMgZGlzcGxheWVkIHRvIGFsbG93IHNlbGVjdGlvbgotCQkJb2YgcHJpbnRlciwgcGFwZXIgc2l6ZSBldGMuIFRvIHNraXAgdGhlIGRpYWxvZywgdXNlCisJCQlvZiBwcmludGVyLCBwYXBlciBzaXplIGV0Yy4gIFRvIHNraXAgdGhlIGRpYWxvZywgdXNlCiAJCQl0aGUgWyFdLiAgSW4gdGhpcyBjYXNlIHRoZSBwcmludGVyIGRlZmluZWQgYnkKIAkJCSdwcmludGRldmljZScgaXMgdXNlZCwgb3IsIGlmICdwcmludGRldmljZScgaXMgZW1wdHksCiAJCQl0aGUgc3lzdGVtIGRlZmF1bHQgcHJpbnRlci4KQEAgLTY1LDcgKzY1LDcgQEAKICdwcmludG9wdGlvbnMnIGNhbiBiZSB1c2VkIHRvIHN3aXRjaCB3cmFwcGluZyBvZmYuCiBUaGUgY3VycmVudCBoaWdobGlnaHRpbmcgY29sb3JzIGFyZSB1c2VkIGluIHRoZSBwcmludG91dCwgd2l0aCB0aGUgZm9sbG93aW5nCiBjb25zaWRlcmF0aW9uczoKLTEpIFRoZSBub3JtYWwgYmFja2dyb3VuZCBpcyBhbHdheXMgcmVuZGVyZWQgYXMgd2hpdGUgKGkuZS4gYmxhbmsgcGFwZXIuKQorMSkgVGhlIG5vcm1hbCBiYWNrZ3JvdW5kIGlzIGFsd2F5cyByZW5kZXJlZCBhcyB3aGl0ZSAoaS5lLiBibGFuayBwYXBlcikuCiAyKSBXaGl0ZSB0ZXh0IG9yIHRoZSBkZWZhdWx0IGZvcmVncm91bmQgaXMgcmVuZGVyZWQgYXMgYmxhY2ssIHNvIHRoYXQgaXQgc2hvd3MKICAgIHVwIQogMykgSWYgJ2JhY2tncm91bmQnIGlzICJkYXJrIiwgdGhlbiB0aGUgY29sb3VycyBhcmUgZGFya2VuZWQgdG8gY29tcGVuc2F0ZSBmb3IKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dCBiL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dAppbmRleCBkNzhhYWExLi4wNDc5MzhiIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKKysrIGIvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IE1hciAwNworKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTE3MSw3ICsxMTcxLDcgQEAKIHw6eGFsbHwJICA6eGFbbGxdWyFdICBvciA6d3FhbGxbIV0KIAkJCQlXcml0ZSBhbGwgY2hhbmdlZCBidWZmZXJzIGFuZCBleGl0CiAKLXw6c3RvcHwJICA6c3Rbb3BdWyFdCQlTdXNwZW5kIFZJTSBvciBzdGFydCBuZXcgc2hlbGwuIElmICdhdycgb3B0aW9uCit8OnN0b3B8CSAgOnN0W29wXVshXQkJU3VzcGVuZCBWSU0gb3Igc3RhcnQgbmV3IHNoZWxsLiAgSWYgJ2F3JyBvcHRpb24KIAkJCQkgICBpcyBzZXQgYW5kIFshXSBub3QgZ2l2ZW4gd3JpdGUgdGhlIGJ1ZmZlci4KIHxDVFJMLVp8ICAgICBDVFJMLVoJCVNhbWUgYXMgIjpzdG9wIgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9yaWxlZnQudHh0IGIvcnVudGltZS9kb2MvcmlsZWZ0LnR4dAppbmRleCBjN2M1M2FhLi5iODNkYzU0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9yaWxlZnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL3JpbGVmdC50eHQKQEAgLTEsNCArMSw0IEBACi0qcmlsZWZ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDMgTWF5IDA3CisqcmlsZWZ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDA0CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEF2bmVyIExvdHRlbQpAQCAtMzYsNyArMzYsNyBAQAogcmlnaHQtdG8tbGVmdCBsYW5ndWFnZXMuICBBbiBvbGRlciBoeWJyaWQgc29sdXRpb24gaW4gd2hpY2ggZGlyZWN0aW9uIGlzCiBlbmNvZGVkIGZvciBldmVyeSBjaGFyYWN0ZXIgKG9yIGdyb3VwIG9mIGNoYXJhY3RlcnMpIGFyZSBub3Qgc3VwcG9ydGVkIGVpdGhlcgogYXMgdGhpcyBraW5kIG9mIHN1cHBvcnQgaXMgb3V0IG9mIHRoZSBzY29wZSBvZiBhIHNpbXBsZSBhZGRpdGlvbiB0byBhbgotZXhpc3RpbmcgZWRpdG9yIChhbmQgaXRzIG5vdCBzYW5jdGlvbmVkIGJ5IFVuaWNvZGUgZWl0aGVyKS4KK2V4aXN0aW5nIGVkaXRvciAoYW5kIGl0J3Mgbm90IHNhbmN0aW9uZWQgYnkgVW5pY29kZSBlaXRoZXIpLgogCiAKIEhpZ2hsaWdodHMKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3J1c3NpYW4udHh0IGIvcnVudGltZS9kb2MvcnVzc2lhbi50eHQKaW5kZXggNjU2YzY2ZS4uNGQ5ZDAzNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvcnVzc2lhbi50eHQKKysrIGIvcnVudGltZS9kb2MvcnVzc2lhbi50eHQKQEAgLTEsNCArMSw0IEBACi0qcnVzc2lhbi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDIyCisqcnVzc2lhbi50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFZhc3NpbHkgUmFnb3NpbgpAQCAtMTQsNyArMTQsNyBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogMS4gSW50cm9kdWN0aW9uCQkJCQkJCSpydXNzaWFuLWludHJvKgogCi1SdXNzaWFuIGxhbmd1YWdlIGlzIHN1cHBvcnRlZCBwZXJmZWN0bHkgd2VsbCBpbiBWaW0uIFlvdSBjYW4gdHlwZSBhbmQgdmlldworUnVzc2lhbiBsYW5ndWFnZSBpcyBzdXBwb3J0ZWQgcGVyZmVjdGx5IHdlbGwgaW4gVmltLiAgWW91IGNhbiB0eXBlIGFuZCB2aWV3CiBSdXNzaWFuIHRleHQganVzdCBhcyBhbnkgb3RoZXIsIHdpdGhvdXQgdGhlIG5lZWQgdG8gdHdlYWsgdGhlIHNldHRpbmdzLgogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0yOCw4ICsyOCw4IEBACiA8CiBJbiB0aGUgbGF0dGVyIGNhc2UsIHlvdSBjYW4gc3dpdGNoIGJldHdlZW4gbGFuZ3VhZ2VzIGV2ZW4gaWYgeW91IGRvIG5vdCBoYXZlCiBzeXN0ZW0gUnVzc2lhbiBrZXlib2FyZCBvciBpbmRlcGVuZGVudGx5IGZyb20gYSBzeXN0ZW0td2lkZSBrZXlib2FyZCBzZXR0aW5ncy4KLVNlZSAna2V5bWFwJy4gWW91IGNhbiBhbHNvIG1hcCBhIGtleSB0byBzd2l0Y2ggYmV0d2VlbiBrZXlib2FyZHMsIGlmIHlvdQotY2hvb3NlIHRoZSBsYXR0ZXIgb3B0aW9uLiBTZWUgfDptYXB8LgorU2VlICdrZXltYXAnLiAgWW91IGNhbiBhbHNvIG1hcCBhIGtleSB0byBzd2l0Y2ggYmV0d2VlbiBrZXlib2FyZHMsIGlmIHlvdQorY2hvb3NlIHRoZSBsYXR0ZXIgb3B0aW9uLiAgU2VlIHw6bWFwfC4KIAogRm9yIHlvdXIgY29udmVuaWVuY2UsIHRvIGF2b2lkIHN3aXRjaGluZyBiZXR3ZWVuIGtleWJvYXJkcywgd2hlbiB5b3UgbmVlZCB0bwogZW50ZXIgTm9ybWFsIG1vZGUgY29tbWFuZCwgeW91IGNhbiBhbHNvIHNldCAnbGFuZ21hcCcgb3B0aW9uOgpAQCAtNTEsMTEgKzUxLDExIEBACiAgICAgaHR0cDovL3d3dy5zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvcnV2aW0vCiAKIE1ha2Ugc3VyZSB0aGF0IHlvdXIgVmltIGlzIGF0IGxlYXN0IDYuMi41MDYgYW5kIHVzZSBydXZpbSAwLjUgb3IgbGF0ZXIgZm9yCi1hdXRvbWF0aWMgaW5zdGFsbHMuIFZpbSBhbHNvIG5lZWRzIHRvIGJlIGNvbXBpbGVkIHdpdGggfCtnZXR0ZXh0fCBmZWF0dXJlIGZvcgorYXV0b21hdGljIGluc3RhbGxzLiAgVmltIGFsc28gbmVlZHMgdG8gYmUgY29tcGlsZWQgd2l0aCB8K2dldHRleHR8IGZlYXR1cmUgZm9yCiB1c2VyIGludGVyZmFjZSBpdGVtcyB0cmFuc2xhdGlvbnMgdG8gd29yay4KIAogQWZ0ZXIgZG93bmxvYWRpbmcgYW4gYXJjaGl2ZSBmcm9tIFJ1VmltIHByb2plY3QsIHVucGFjayBpdCBpbnRvIHlvdXIKLSRWSU1SVU5USU1FIGRpcmVjdG9yeS4gV2UgcmVjb21tZW5kIHVzaW5nIFVURi04IGFyY2hpdmUsIGlmIHlvdXIgdmVyc2lvbiBvZgorJFZJTVJVTlRJTUUgZGlyZWN0b3J5LiAgV2UgcmVjb21tZW5kIHVzaW5nIFVURi04IGFyY2hpdmUsIGlmIHlvdXIgdmVyc2lvbiBvZgogVmltIGlzIGNvbXBpbGVkIHdpdGggfCttdWx0aV9ieXRlfCBmZWF0dXJlIGVuYWJsZWQuCiAKIEluIG9yZGVyIHRvIHVzZSB0aGUgUnVzc2lhbiBkb2N1bWVudGF0aW9uLCBtYWtlIHN1cmUgeW91IGhhdmUgc2V0IHRoZQpAQCAtNjYsNyArNjYsNyBAQAogCiAtLSBJZiB5b3UgYXJlIHVzaW5nIFJ1c3NpYW4gbWVzc2FnZSB0cmFuc2xhdGlvbnMgaW4gV2luMzIgY29uc29sZSwgdGhlbgogICAgeW91IG1heSBzZWUgdGhlIG91dHB1dCBwcm9kdWNlZCBieSAidmltIC0taGVscCIsICJ2aW0gLS12ZXJzaW9uIiBjb21tYW5kcwotICAgYW5kIFdpbjMyIGNvbnNvbGUgd2luZG93IHRpdGxlIGFwcGVhcmluZyBpbiBhIHdyb25nIGNvZGVwYWdlLiBUaGlzIHByb2JsZW0KKyAgIGFuZCBXaW4zMiBjb25zb2xlIHdpbmRvdyB0aXRsZSBhcHBlYXJpbmcgaW4gYSB3cm9uZyBjb2RlcGFnZS4gIFRoaXMgcHJvYmxlbQogICAgaXMgcmVsYXRlZCB0byBhIGJ1ZyBpbiBHTlUgZ2V0dGV4dCBsaWJyYXJ5IGFuZCBtYXkgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZQogICAgcmVsZWFzZXMgb2YgZ2V0dGV4dC4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvc2lnbi50eHQgYi9ydW50aW1lL2RvYy9zaWduLnR4dAppbmRleCBiNjViNGUxLi5hZGViN2ZjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zaWduLnR4dAorKysgYi9ydW50aW1lL2RvYy9zaWduLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpzaWduLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBNYXkgMjIKKypzaWduLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDQKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgR29yZG9uIFByaWV1cgpAQCAtMTgsMTkgKzE4LDE5IEBACiAKIFdoZW4gYSBkZWJ1Z2dlciBvciBvdGhlciBJREUgdG9vbCBpcyBkcml2aW5nIGFuIGVkaXRvciBpdCBuZWVkcyB0byBiZSBhYmxlCiB0byBnaXZlIHNwZWNpZmljIGhpZ2hsaWdodHMgd2hpY2ggcXVpY2tseSB0ZWxsIHRoZSB1c2VyIHVzZWZ1bCBpbmZvcm1hdGlvbgotYWJvdXQgdGhlIGZpbGUuIE9uZSBleGFtcGxlIG9mIHRoaXMgd291bGQgYmUgYSBkZWJ1Z2dlciB3aGljaCBoYWQgYW4gaWNvbgotaW4gdGhlIGxlZnQtaGFuZCBjb2x1bW4gZGVub3RpbmcgYSBicmVha3BvaW50LiBBbm90aGVyIGV4YW1wbGUgbWlnaHQgYmUgYW4KLWFycm93IHJlcHJlc2VudGluZyB0aGUgUHJvZ3JhbSBDb3VudGVyIChQQykuIFRoZSBzaWduIGZlYXR1cmVzIGFsbG93IGJvdGgKK2Fib3V0IHRoZSBmaWxlLiAgT25lIGV4YW1wbGUgb2YgdGhpcyB3b3VsZCBiZSBhIGRlYnVnZ2VyIHdoaWNoIGhhZCBhbiBpY29uCitpbiB0aGUgbGVmdC1oYW5kIGNvbHVtbiBkZW5vdGluZyBhIGJyZWFrcG9pbnQuICBBbm90aGVyIGV4YW1wbGUgbWlnaHQgYmUgYW4KK2Fycm93IHJlcHJlc2VudGluZyB0aGUgUHJvZ3JhbSBDb3VudGVyIChQQykuICBUaGUgc2lnbiBmZWF0dXJlcyBhbGxvdyBib3RoCiBwbGFjZW1lbnQgb2YgYSBzaWduLCBvciBpY29uLCBpbiB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgdGhlIHdpbmRvdyBhbmQKLWRlZmluaXRpb24gb2YgYSBoaWdobGlnaHQgd2hpY2ggd2lsbCBiZSBhcHBsaWVkIHRvIHRoYXQgbGluZS4gRGlzcGxheWluZyB0aGUKK2RlZmluaXRpb24gb2YgYSBoaWdobGlnaHQgd2hpY2ggd2lsbCBiZSBhcHBsaWVkIHRvIHRoYXQgbGluZS4gIERpc3BsYXlpbmcgdGhlCiBzaWduIGFzIGFuIGltYWdlIGlzIG1vc3QgbGlrZWx5IG9ubHkgZmVhc2libGUgaW4gZ3ZpbSAoYWx0aG91Z2ggU3VuCi1NaWNyb3N5c3RlbSdzIGR0dGVybSBkb2VzIHN1cHBvcnQgdGhpcyBpdHMgdGhlIG9ubHkgdGVybWluYWwgZW11bGF0b3IgSSBrbm93CitNaWNyb3N5c3RlbSdzIGR0dGVybSBkb2VzIHN1cHBvcnQgdGhpcyBpdCdzIHRoZSBvbmx5IHRlcm1pbmFsIGVtdWxhdG9yIEkga25vdwogb2Ygd2hpY2ggZG9lcykuICBBIHRleHQgc2lnbiBhbmQgdGhlIGhpZ2hsaWdodCBzaG91bGQgYmUgZmVhc2libGUgaW4gYW55IGNvbG9yCiB0ZXJtaW5hbCBlbXVsYXRvci4KIAotU2lnbnMgYW5kIGhpZ2hsaWdodHMgYXJlIG5vdCB1c2VmdWwganVzdCBmb3IgZGVidWdnZXJzLiBTdW4ncyBWaXN1YWwKK1NpZ25zIGFuZCBoaWdobGlnaHRzIGFyZSBub3QgdXNlZnVsIGp1c3QgZm9yIGRlYnVnZ2Vycy4gIFN1bidzIFZpc3VhbAogV29ya1Nob3AgdXNlcyBzaWducyBhbmQgaGlnaGxpZ2h0cyB0byBtYXJrIGJ1aWxkIGVycm9ycyBhbmQgU291cmNlQnJvd3NlcgotaGl0cy4gQWRkaXRpb25hbGx5LCB0aGUgZGVidWdnZXIgc3VwcG9ydHMgOCB0byAxMCBkaWZmZXJlbnQgc2lnbnMgYW5kCitoaXRzLiAgQWRkaXRpb25hbGx5LCB0aGUgZGVidWdnZXIgc3VwcG9ydHMgOCB0byAxMCBkaWZmZXJlbnQgc2lnbnMgYW5kCiBoaWdobGlnaHQgY29sb3JzLiB8d29ya3Nob3B8ICBTYW1lIGZvciBOZXRiZWFucyB8bmV0YmVhbnN8LgogCiBUaGVyZSBhcmUgdHdvIHN0ZXBzIGluIHVzaW5nIHNpZ25zOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFncyBiL3J1bnRpbWUvZG9jL3RhZ3MKaW5kZXggZWNmNWZjZi4uYzg5ZTJiMyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFncworKysgYi9ydW50aW1lL2RvYy90YWdzCkBAIC0xNTg0LDYgKzE1ODQsNyBAQAogNDUuMwl1c3JfNDUudHh0CS8qNDUuMyoKIDQ1LjQJdXNyXzQ1LnR4dAkvKjQ1LjQqCiA0NS41CXVzcl80NS50eHQJLyo0NS41KgorNzU1CXNwZWxsLnR4dAkvKjc1NSoKIDkwLjEJdXNyXzkwLnR4dAkvKjkwLjEqCiA5MC4yCXVzcl85MC50eHQJLyo5MC4yKgogOTAuMwl1c3JfOTAudHh0CS8qOTAuMyoKQEAgLTIxMjksNiArMjEzMCw4IEBACiA6bWtleHJjCXN0YXJ0aW5nLnR4dAkvKjpta2V4cmMqCiA6bWtzCXN0YXJ0aW5nLnR4dAkvKjpta3MqCiA6bWtzZXNzaW9uCXN0YXJ0aW5nLnR4dAkvKjpta3Nlc3Npb24qCis6bWtzcAlzcGVsbC50eHQJLyo6bWtzcCoKKzpta3NwZWxsCXNwZWxsLnR4dAkvKjpta3NwZWxsKgogOm1rdglzdGFydGluZy50eHQJLyo6bWt2KgogOm1rdmllCXN0YXJ0aW5nLnR4dAkvKjpta3ZpZSoKIDpta3ZpZXcJc3RhcnRpbmcudHh0CS8qOm1rdmlldyoKQEAgLTM2ODgsMTAgKzM2OTEsMTIgQEAKIEU3NDkJZXZhbC50eHQJLypFNzQ5KgogRTc1CXZpX2RpZmYudHh0CS8qRTc1KgogRTc1MAlyZXBlYXQudHh0CS8qRTc1MCoKLUU3NTEJc3BlbGwudHh0CS8qRTc1MSoKLUU3NTIJc3BlbGwudHh0CS8qRTc1MioKLUU3NTMJc3BlbGwudHh0CS8qRTc1MyoKK0U3NTQJc3BlbGwudHh0CS8qRTc1NCoKK0U3NTYJc3BlbGwudHh0CS8qRTc1NioKK0U3NTgJc3BlbGwudHh0CS8qRTc1OCoKK0U3NTkJc3BlbGwudHh0CS8qRTc1OSoKIEU3NglwYXR0ZXJuLnR4dAkvKkU3NioKK0U3NjAJc3BlbGwudHh0CS8qRTc2MCoKIEU3NwltZXNzYWdlLnR4dAkvKkU3NyoKIEU3OAltb3Rpb24udHh0CS8qRTc4KgogRTc5CW1lc3NhZ2UudHh0CS8qRTc5KgpAQCAtMzk5OCw2ICs0MDAzLDcgQEAKIFtwYXR0ZXJuXQlwYXR0ZXJuLnR4dAkvKltwYXR0ZXJuXSoKIFtxdW90ZXhdCWludHJvLnR4dAkvKltxdW90ZXhdKgogW3JhbmdlXQljbWRsaW5lLnR4dAkvKltyYW5nZV0qCitbcwlzcGVsbC50eHQJLypbcyoKIFtzdGFyCW1vdGlvbi50eHQJLypbc3RhcioKIFt6CWZvbGQudHh0CS8qW3oqCiBbewltb3Rpb24udHh0CS8qW3sqCkBAIC00MDIzLDYgKzQwMjksNyBAQAogXWkJdGFnc3JjaC50eHQJLypdaSoKIF1tCW1vdGlvbi50eHQJLypdbSoKIF1wCWNoYW5nZS50eHQJLypdcCoKK11zCXNwZWxsLnR4dAkvKl1zKgogXXN0YXIJbW90aW9uLnR4dAkvKl1zdGFyKgogXXoJZm9sZC50eHQJLypdeioKIF19CW1vdGlvbi50eHQJLypdfSoKQEAgLTQ1NzksNiArNDU4Niw3IEBACiBkZXNpZ24tc3BlZWQtc2l6ZQlkZXZlbG9wLnR4dAkvKmRlc2lnbi1zcGVlZC1zaXplKgogZGVza3RvcC1zeW50YXgJc3ludGF4LnR4dAkvKmRlc2t0b3Atc3ludGF4KgogZGVza3RvcC52aW0Jc3ludGF4LnR4dAkvKmRlc2t0b3AudmltKgorZGV2ZWxvcC1zcGVsbAlkZXZlbG9wLnR4dAkvKmRldmVsb3Atc3BlbGwqCiBkZXZlbG9wLnR4dAlkZXZlbG9wLnR4dAkvKmRldmVsb3AudHh0KgogZGV2ZWxvcG1lbnQJZGV2ZWxvcC50eHQJLypkZXZlbG9wbWVudCoKIGRoCWNoYW5nZS50eHQJLypkaCoKQEAgLTQ4MDgsNiArNDgxNiw3IEBACiBmZWF0dXJlLWxpc3QJZXZhbC50eHQJLypmZWF0dXJlLWxpc3QqCiBmZXRjaAlwaV9uZXRydy50eHQJLypmZXRjaCoKIGZpbGUtYnJvd3Nlci01LjIJdmVyc2lvbjUudHh0CS8qZmlsZS1icm93c2VyLTUuMioKK2ZpbGUtZXhwbG9yZXIJcGlfbmV0cncudHh0CS8qZmlsZS1leHBsb3JlcioKIGZpbGUtZm9ybWF0cwllZGl0aW5nLnR4dAkvKmZpbGUtZm9ybWF0cyoKIGZpbGUtcGF0dGVybglhdXRvY21kLnR4dAkvKmZpbGUtcGF0dGVybioKIGZpbGUtcmVhZAlpbnNlcnQudHh0CS8qZmlsZS1yZWFkKgpAQCAtNjIxOSw4ICs2MjI4LDEyIEBACiBzcGVjaWFsLWJ1ZmZlcnMJd2luZG93cy50eHQJLypzcGVjaWFsLWJ1ZmZlcnMqCiBzcGVlZC11cAl0aXBzLnR4dAkvKnNwZWVkLXVwKgogc3BlbGwJc3BlbGwudHh0CS8qc3BlbGwqCitzcGVsbC1hZmZpeC1tYnl0ZQlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC1tYnl0ZSoKK3NwZWxsLWFmZml4LXZpbQlzcGVsbC50eHQJLypzcGVsbC1hZmZpeC12aW0qCiBzcGVsbC1maWxlLWZvcm1hdAlzcGVsbC50eHQJLypzcGVsbC1maWxlLWZvcm1hdCoKK3NwZWxsLW1rc3BlbGwJc3BlbGwudHh0CS8qc3BlbGwtbWtzcGVsbCoKIHNwZWxsLXF1aWNrc3RhcnQJc3BlbGwudHh0CS8qc3BlbGwtcXVpY2tzdGFydCoKK3NwZWxsLXdvcmRsaXN0LWZvcm1hdAlzcGVsbC50eHQJLypzcGVsbC13b3JkbGlzdC1mb3JtYXQqCiBzcGVsbC50eHQJc3BlbGwudHh0CS8qc3BlbGwudHh0Kgogc3BsaXQoKQlldmFsLnR4dAkvKnNwbGl0KCkqCiBzcGxpdGZpbmQJd2luZG93cy50eHQJLypzcGxpdGZpbmQqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90aXBzLnR4dCBiL3J1bnRpbWUvZG9jL3RpcHMudHh0CmluZGV4IDkxN2FiOWMuLmM0ODU3YTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RpcHMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3RpcHMudHh0CkBAIC0xLDQgKzEsNCBAQAotKnRpcHMudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEZlYiAyMworKnRpcHMudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTI5LDI2ICsxMjksMjYgQEAKIDp0aGUgc2FtZSB0aGluZyBhcyBlYWNoIG90aGVyIGZvciBhIGdpdmVuIHh0ZXJtIHNldHVwLgogCiBUaGV5IG5vdCBuZWNlc3NhcmlseSBkbyB0aGUgc2FtZSB0aGluZywgYXMgdGhpcyBtYXkgYmUgYSB0ZXJtY2FwIHZzLgotdGVybWluZm8gcHJvYmxlbS4gWW91IHNob3VsZCBiZSBhd2FyZSB0aGF0IHRoZXJlIGFyZSB0d28gZGF0YWJhc2VzIGZvcgordGVybWluZm8gcHJvYmxlbS4gIFlvdSBzaG91bGQgYmUgYXdhcmUgdGhhdCB0aGVyZSBhcmUgdHdvIGRhdGFiYXNlcyBmb3IKIGRlc2NyaWJpbmcgYXR0cmlidXRlcyBvZiBhIHBhcnRpY3VsYXIgdHlwZSBvZiB0ZXJtaW5hbDogdGVybWNhcCBhbmQKLXRlcm1pbmZvLiBUaGlzIGNhbiBjYXVzZSBkaWZmZXJlbmNlcyB3aGVuIHRoZSBlbnRyaWVzIGRpZmZlciBBTkQgd2hlbiBvZgordGVybWluZm8uICBUaGlzIGNhbiBjYXVzZSBkaWZmZXJlbmNlcyB3aGVuIHRoZSBlbnRyaWVzIGRpZmZlciBBTkQgd2hlbiBvZgogdGhlIHByb2dyYW1zIGluIHF1ZXN0aW9uIG9uZSB1c2VzIHRlcm1pbmZvIGFuZCB0aGUgb3RoZXIgdXNlcyB0ZXJtY2FwCiAoYWxzbyBzZWUgfCt0ZXJtaW5mb3wpLgogCiBJbiB5b3VyIHBhcnRpY3VsYXIgcHJvYmxlbSwgeW91IGFyZSBsb29raW5nIGZvciB0aGUgY29udHJvbCBzZXF1ZW5jZXMKLV5bWz80N2ggYW5kIF5bWz80N2wuIFRoZXNlIHN3aXRjaCBiZXR3ZWVuIHh0ZXJtcyBhbHRlcm5hdGUgYW5kIG1haW4gc2NyZWVuCi1idWZmZXIuIEFzIGEgcXVpY2sgd29ya2Fyb3VuZCBhIGNvbW1hbmQgc2VxdWVuY2UgbGlrZSA+CiteW1s/NDdoIGFuZCBeW1s/NDdsLiAgVGhlc2Ugc3dpdGNoIGJldHdlZW4geHRlcm1zIGFsdGVybmF0ZSBhbmQgbWFpbiBzY3JlZW4KK2J1ZmZlci4gIEFzIGEgcXVpY2sgd29ya2Fyb3VuZCBhIGNvbW1hbmQgc2VxdWVuY2UgbGlrZSA+CiAJZWNobyAtbiAiXltbPzQ3aCI7IHZpbSAuLi4gOyBlY2hvIC1uICJeW1s/NDdsIgotbWF5IGRvIHdoYXQgeW91IHdhbnQuIChNeSBub3RhdGlvbiBeWyBtZWFucyB0aGUgRVNDIGNoYXJhY3RlciwgZnVydGhlciBkb3duCittYXkgZG8gd2hhdCB5b3Ugd2FudC4gIChNeSBub3RhdGlvbiBeWyBtZWFucyB0aGUgRVNDIGNoYXJhY3RlciwgZnVydGhlciBkb3duCiB5b3UnbGwgc2VlIHRoYXQgdGhlIGRhdGFiYXNlcyB1c2UgXEUgaW5zdGVhZCkuCiAKIE9uIHN0YXJ0dXAsIHZpbSBlY2hvZXMgdGhlIHZhbHVlIG9mIHRoZSB0ZXJtY2FwIHZhcmlhYmxlIHRpICh0ZXJtaW5mbzoKLXNtY3VwKSB0byB0aGUgdGVybWluYWwuIFdoZW4gZXhpdGluZywgaXQgZWNob2VzIHRlICh0ZXJtaW5mbzogcm1jdXApLiBUaHVzCitzbWN1cCkgdG8gdGhlIHRlcm1pbmFsLiAgV2hlbiBleGl0aW5nLCBpdCBlY2hvZXMgdGUgKHRlcm1pbmZvOiBybWN1cCkuICBUaHVzCiB0aGVzZSB0d28gdmFyaWFibGVzIGFyZSB0aGUgY29ycmVjdCBwbGFjZSB3aGVyZSB0aGUgYWJvdmUgbWVudGlvbmVkIGNvbnRyb2wKIHNlcXVlbmNlcyBzaG91bGQgZ28uCiAKIENvbXBhcmUgeW91ciB4dGVybSB0ZXJtY2FwIGVudHJ5IChmb3VuZCBpbiAvZXRjL3Rlcm1jYXApIHdpdGggeW91ciB4dGVybQotdGVybWluZm8gZW50cnkgKHJldHJpZXZlZCB3aXRoIC91c3IvNWJpbi9pbmZvY21wIC1DIHh0ZXJtKS4gQm90aCBzaG91bGQKK3Rlcm1pbmZvIGVudHJ5IChyZXRyaWV2ZWQgd2l0aCAvdXNyLzViaW4vaW5mb2NtcCAtQyB4dGVybSkuICBCb3RoIHNob3VsZAogY29udGFpbiBlbnRyaWVzIHNpbWlsYXIgdG86ID4KIAk6dGU9XEVbMkpcRVs/NDdsXEU4OnRpPVxFN1xFWz80N2g6CiAKQEAgLTMzOSw3ICszMzksNyBAQAogCiAoPD4gbm90YXRpb24gfDw+fC4gIE5vdGUgdGhhdCB0aGlzIGlzIGFsbCB0eXBlZCBsaXRlcmFsbHkuICBeVyBpcyAiXiIgIlciLCBub3QKIENUUkwtVy4gIFlvdSBjYW4gY29weS9wYXN0ZSB0aGlzIGludG8gVmltIGlmICc8JyBpcyBub3QgaW5jbHVkZWQgaW4KLSdjcG9wdGlvbnMnKQorJ2Nwb3B0aW9ucycuKQogCiBOb3RlIHRoYXQgdGhlIGxhc3QgY29tbWVudCBzdGFydHMgd2l0aCB8IiwgYmVjYXVzZSB0aGUgIjpleGVjdXRlIiBjb21tYW5kCiBkb2Vzbid0IGFjY2VwdCBhIGNvbW1lbnQgZGlyZWN0bHkuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMDIudHh0IGIvcnVudGltZS9kb2MvdXNyXzAyLnR4dAppbmRleCA3ZDMyMDZiLi40YTlhOGQ0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMDIudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8wMi50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzAyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgSnVuIDA4CisqdXNyXzAyLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC00MjUsNyArNDI1LDcgQEAKIEFzIHlvdSByZWFkIHRoZSBoZWxwIHRleHQsIHlvdSB3aWxsIG5vdGljZSBzb21lIHRleHQgZW5jbG9zZWQgaW4gdmVydGljYWwgYmFycwogKGZvciBleGFtcGxlLCB8aGVscHwpLiAgVGhpcyBpbmRpY2F0ZXMgYSBoeXBlcmxpbmsuICBJZiB5b3UgcG9zaXRpb24gdGhlCiBjdXJzb3IgYW55d2hlcmUgYmV0d2VlbiB0aGUgYmFycyBhbmQgcHJlc3MgQ1RSTC1dIChqdW1wIHRvIHRhZyksIHRoZSBoZWxwCi1zeXN0ZW0gdGFrZXMgeW91IHRvIHRoZSBpbmRpY2F0ZWQgc3ViamVjdC4gKEZvciByZWFzb25zIG5vdCBkaXNjdXNzZWQgaGVyZSwKK3N5c3RlbSB0YWtlcyB5b3UgdG8gdGhlIGluZGljYXRlZCBzdWJqZWN0LiAgKEZvciByZWFzb25zIG5vdCBkaXNjdXNzZWQgaGVyZSwKIHRoZSBWaW0gdGVybWlub2xvZ3kgZm9yIGEgaHlwZXJsaW5rIGlzIHRhZy4gIFNvIENUUkwtXSBqdW1wcyB0byB0aGUgbG9jYXRpb24KIG9mIHRoZSB0YWcgZ2l2ZW4gYnkgdGhlIHdvcmQgdW5kZXIgdGhlIGN1cnNvci4pCiAgICBBZnRlciBhIGZldyBqdW1wcywgeW91IG1pZ2h0IHdhbnQgdG8gZ28gYmFjay4gIENUUkwtVCAocG9wIHRhZykgdGFrZXMgeW91CkBAIC00ODQsNyArNDg0LDcgQEAKIAogVGhlIHRhYmxlIHdpdGggYWxsIG1vZGUgcHJlZml4ZXMgY2FuIGJlIGZvdW5kIGhlcmU6IHxoZWxwLWNvbnRleHR8LgogCi1TcGVjaWFsIGtleXMgYXJlIGVuY2xvc2VkIGluIGFuZ2xlIGJyYWNrZXRzLiBUbyBmaW5kIGhlbHAgb24gdGhlIHVwLWFycm93IGtleQorU3BlY2lhbCBrZXlzIGFyZSBlbmNsb3NlZCBpbiBhbmdsZSBicmFja2V0cy4gIFRvIGZpbmQgaGVscCBvbiB0aGUgdXAtYXJyb3cga2V5CiBpbiBJbnNlcnQgbW9kZSwgZm9yIGluc3RhbmNlLCB1c2UgdGhpcyBjb21tYW5kOiA+CiAKIAk6aGVscCBpXzxVcD4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQgYi9ydW50aW1lL2RvYy91c3JfMDMudHh0CmluZGV4IDhmZjZjMzkuLjE2OTBlNzkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wMy50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzAzLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBGZWIgMDgKKyp1c3JfMDMudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTMzMiw3ICszMzIsNyBAQAogICAgUHJlc3NpbmcgPEVudGVyPiBleGVjdXRlcyB0aGUgY29tbWFuZC4KIAogCU5vdGU6Ci0JVGhlIGNoYXJhY3RlcnMgLipbXV4lL1w/fiQgaGF2ZSBzcGVjaWFsIG1lYW5pbmcuIElmIHlvdSB3YW50IHRvIHVzZQorCVRoZSBjaGFyYWN0ZXJzIC4qW11eJS9cP34kIGhhdmUgc3BlY2lhbCBtZWFuaW5ncy4gIElmIHlvdSB3YW50IHRvIHVzZQogCXRoZW0gaW4gYSBzZWFyY2ggeW91IG11c3QgcHV0IGEgXCBpbiBmcm9udCBvZiB0aGVtLiAgU2VlIGJlbG93LgogCiBUbyBmaW5kIHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgdGhlIHNhbWUgc3RyaW5nIHVzZSB0aGUgIm4iIGNvbW1hbmQuICBVc2UgdGhpcwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzA4LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8wOC50eHQKaW5kZXggZmVmODM5OC4uY2VlOTBkYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzA4LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMDgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8wOC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEp1biAwNAorKnVzcl8wOC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtNTIsNyArNTIsNyBAQAogCiBUaGUgQ1RSTC1XIHcgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBqdW1wIGJldHdlZW4gdGhlIHdpbmRvd3MuICBJZiB5b3UgYXJlIGluCiB0aGUgdG9wIHdpbmRvdywgQ1RSTC1XIHcganVtcHMgdG8gdGhlIHdpbmRvdyBiZWxvdyBpdC4gIElmIHlvdSBhcmUgaW4gdGhlCi1ib3R0b20gd2luZG93IGl0IHdpbGwganVtcCB0byB0aGUgZmlyc3Qgd2luZG93LiAoQ1RSTC1XIENUUkwtVyBkb2VzIHRoZSBzYW1lCitib3R0b20gd2luZG93IGl0IHdpbGwganVtcCB0byB0aGUgZmlyc3Qgd2luZG93LiAgKENUUkwtVyBDVFJMLVcgZG9lcyB0aGUgc2FtZQogdGhpbmcsIGluIGNhc2UgeW91IGxldCBnbyBvZiB0aGUgQ1RSTCBrZXkgYSBiaXQgbGF0ZXIuKQogCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8wOS50eHQgYi9ydW50aW1lL2RvYy91c3JfMDkudHh0CmluZGV4IDhkOTdiMTguLjczOWFlYzUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8wOS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzA5LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMDkudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwMSBTZXAgMDMKKyp1c3JfMDkudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTEyOSw3ICsxMjksNyBAQAogc3lzdGVtIGZvciB1c2luZyB0aGUgbW91c2UuICBVbmZvcnR1bmF0ZWx5LCB0aGVzZSB0d28gc3RhbmRhcmRzIGFyZSBub3QgdGhlCiBzYW1lLgogICAgRm9ydHVuYXRlbHksIHlvdSBjYW4gY3VzdG9taXplIFZpbS4gIFlvdSBjYW4gbWFrZSB0aGUgYmVoYXZpb3Igb2YgdGhlIG1vdXNlCi13b3JrIGxpa2UgYW4gWCBXaW5kb3cgc3lzdGVtIG1vdXNlIG9yIGEgTWljcm9zb2Z0IFdpbmRvd3MgbW91c2UuIFRoZSBmb2xsb3dpbmcKK3dvcmsgbGlrZSBhbiBYIFdpbmRvdyBzeXN0ZW0gbW91c2Ugb3IgYSBNaWNyb3NvZnQgV2luZG93cyBtb3VzZS4gIFRoZSBmb2xsb3dpbmcKIGNvbW1hbmQgbWFrZXMgdGhlIG1vdXNlIGJlaGF2ZSBsaWtlIGFuIFggV2luZG93IG1vdXNlOiA+CiAKIAk6YmVoYXZlIHh0ZXJtCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy91c3JfMTAudHh0IGIvcnVudGltZS9kb2MvdXNyXzEwLnR4dAppbmRleCA5ZTUzNmQ1Li5hYThmOTJmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy91c3JfMTAudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Vzcl8xMC50eHQKQEAgLTEsNCArMSw0IEBACi0qdXNyXzEwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDE1CisqdXNyXzEwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCiAKIAkJICAgICBWSU0gVVNFUiBNQU5VQUwgLSBieSBCcmFtIE1vb2xlbmFhcgogCkBAIC03MDAsNyArNzAwLDcgQEAKICAgIEJlY2F1c2UgdGhpcyBzdW1tYXJpemVzIGJhZGx5IGlmIHlvdSBhcmUgdW5mYW1pbGlhciB3aXRoIFVOSVggZmlsdGVycywgdGFrZQogYSBsb29rIGF0IGFuIGV4YW1wbGUuICBUaGUgc29ydCBjb21tYW5kIHNvcnRzIGEgZmlsZS4gIElmIHlvdSBleGVjdXRlIHRoZQogZm9sbG93aW5nIGNvbW1hbmQsIHRoZSB1bnNvcnRlZCBmaWxlIGlucHV0LnR4dCB3aWxsIGJlIHNvcnRlZCBhbmQgd3JpdHRlbiB0bwotb3V0cHV0LnR4dC4gKFRoaXMgd29ya3Mgb24gYm90aCBVTklYIGFuZCBNaWNyb3NvZnQgV2luZG93cy4pID4KK291dHB1dC50eHQuICAoVGhpcyB3b3JrcyBvbiBib3RoIFVOSVggYW5kIE1pY3Jvc29mdCBXaW5kb3dzLikgPgogCiAJc29ydCA8aW5wdXQudHh0ID5vdXRwdXQudHh0CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yMS50eHQgYi9ydW50aW1lL2RvYy91c3JfMjEudHh0CmluZGV4IGI1NDg0ZTkuLjRhZjI4NmEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yMS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzIxLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNCBPY3QgMTAKKyp1c3JfMjEudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTEyMCw3ICsxMjAsNyBAQAogCTpzZXQgdmltaW5mbz0nMTAwMAogCiBUaGUgZiBvcHRpb24gY29udHJvbHMgd2hldGhlciBnbG9iYWwgbWFya3MgKEEtWiBhbmQgMC05KSBhcmUgc3RvcmVkLiAgSWYgdGhpcwotb3B0aW9uIGlzIDAsIG5vbmUgYXJlIHN0b3JlZC4gSWYgaXQgaXMgMSBvciB5b3UgZG8gbm90IHNwZWNpZnkgYW4gZiBvcHRpb24sCitvcHRpb24gaXMgMCwgbm9uZSBhcmUgc3RvcmVkLiAgSWYgaXQgaXMgMSBvciB5b3UgZG8gbm90IHNwZWNpZnkgYW4gZiBvcHRpb24sCiB0aGUgbWFya3MgYXJlIHN0b3JlZC4gIFlvdSB3YW50IHRoaXMgZmVhdHVyZSwgc28gbm93IHlvdSBoYXZlIHRoaXM6ID4KIAogCTpzZXQgdmltaW5mbz0nMTAwMCxmMQpAQCAtMTk5LDcgKzE5OSw3IEBACiB5b3VyIGVkaXRpbmcgc2Vzc2lvbiBhbmQgcmVzdG9yaW5nIGl0IHRoZSBuZXh0IGRheS4KICAgIEEgVmltIHNlc3Npb24gY29udGFpbnMgYWxsIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHlvdSBhcmUgZWRpdGluZy4KIFRoaXMgaW5jbHVkZXMgdGhpbmdzIHN1Y2ggYXMgdGhlIGZpbGUgbGlzdCwgd2luZG93IGxheW91dCwgZ2xvYmFsIHZhcmlhYmxlcywKLW9wdGlvbnMgYW5kIG90aGVyIGluZm9ybWF0aW9uLiAoRXhhY3RseSB3aGF0IGlzIHJlbWVtYmVyZWQgaXMgY29udHJvbGxlZCBieQorb3B0aW9ucyBhbmQgb3RoZXIgaW5mb3JtYXRpb24uICAoRXhhY3RseSB3aGF0IGlzIHJlbWVtYmVyZWQgaXMgY29udHJvbGxlZCBieQogdGhlICdzZXNzaW9ub3B0aW9ucycgb3B0aW9uLCBkZXNjcmliZWQgYmVsb3cuKQogICAgVGhlIGZvbGxvd2luZyBjb21tYW5kIGNyZWF0ZXMgYSBzZXNzaW9uIGZpbGU6ID4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzIyLnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl8yMi50eHQKaW5kZXggYjE4YjA4NS4uMTUwNjk1MCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzIyLnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfMjIudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl8yMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA0IEp1biAxNgorKnVzcl8yMi50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAxMAogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtMjkxLDcgKzI5MSw3IEBACiBUaGUgb3V0cHV0IGNvdWxkIGxvb2sgbGlrZSB0aGlzOgogCiAgIDEgI2gJImhlbHAudHh0IgkJCWxpbmUgNjIgfgotICAyICVsKwkidXNyXzIxLnR4dCIJCQlsaW5lIDEgfgorICAyICVhKwkidXNyXzIxLnR4dCIJCQlsaW5lIDEgfgogICAzCSJ1c3JfdG9jLnR4dCIJCQlsaW5lIDEgfgogCiBUaGUgZmlyc3QgY29sdW1uIGNvbnRhaW5zIHRoZSBidWZmZXIgbnVtYmVyLiAgWW91IGNhbiB1c2UgdGhpcyB0byBlZGl0IHRoZQpAQCAtMzAzLDcgKzMwMyw3IEBACiAJdQlCdWZmZXIgaXMgdW5saXN0ZWQgfHVubGlzdGVkLWJ1ZmZlcnwuCiAJICUJQ3VycmVudCBidWZmZXIuCiAJICMJQWx0ZXJuYXRlIGJ1ZmZlci4KLQkgIGwJQnVmZmVyIGlzIGxvYWRlZCBhbmQgZGlzcGxheWVkLgorCSAgYQlCdWZmZXIgaXMgbG9hZGVkIGFuZCBkaXNwbGF5ZWQuCiAJICBoCUJ1ZmZlciBpcyBsb2FkZWQgYnV0IGhpZGRlbi4KIAkgICA9CUJ1ZmZlciBpcyByZWFkLW9ubHkuCiAJICAgLQlCdWZmZXIgaXMgbm90IG1vZGlmaWFibGUsIHRoZSAnbW9kaWZpYWJsZScgb3B0aW9uIGlzIG9mZi4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yNC50eHQgYi9ydW50aW1lL2RvYy91c3JfMjQudHh0CmluZGV4IDc2Mjc0ZDEuLmI5MTZhYTggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yNC50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI0LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjQudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwMyBBdWcgMTgKKyp1c3JfMjQudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTEwNCw3ICsxMDQsNyBAQAogV2hlbiB5b3Ugbm93IHR5cGUgYSB0ZXh0IGxpa2UgIihleGFtcGxlKSIsIGFzIHNvb24gYXMgeW91IHR5cGUgdGhlICkgVmltIHdpbGwKIGJyaWVmbHkgbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBtYXRjaGluZyAoLCBrZWVwIGl0IHRoZXJlIGZvciBoYWxmIGEgc2Vjb25kLAogYW5kIG1vdmUgYmFjayB0byB3aGVyZSB5b3Ugd2VyZSB0eXBpbmcuCi0gICBJbiBjYXNlIHRoZXJlIGlzIG5vdCBtYXRjaGluZyAoLCBWaW0gd2lsbCBiZWVwLiAgVGhlbiB5b3Uga25vdyB0aGF0IHlvdQorICAgSW4gY2FzZSB0aGVyZSBpcyBubyBtYXRjaGluZyAoLCBWaW0gd2lsbCBiZWVwLiAgVGhlbiB5b3Uga25vdyB0aGF0IHlvdQogbWlnaHQgaGF2ZSBmb3Jnb3R0ZW4gdGhlICggc29tZXdoZXJlLCBvciB0eXBlZCBhICkgdG9vIG1hbnkuCiAgICBUaGUgbWF0Y2ggd2lsbCBhbHNvIGJlIHNob3duIGZvciBbXSBhbmQge30gcGFpcnMuICBZb3UgZG9uJ3QgaGF2ZSB0byB3YWl0CiB3aXRoIHR5cGluZyB0aGUgbmV4dCBjaGFyYWN0ZXIsIGFzIHNvb24gYXMgVmltIHNlZXMgaXQgdGhlIGN1cnNvciB3aWxsIG1vdmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl8yNS50eHQgYi9ydW50aW1lL2RvYy91c3JfMjUudHh0CmluZGV4IGNjZTcyZmEuLmZjZTE5MzEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl8yNS50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzI1LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfMjUudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwMyBKdW4gMjEKKyp1c3JfMjUudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTE5OCw3ICsxOTgsNyBAQAogCiAJOnJ1bnRpbWUgbWFjcm9zL2p1c3RpZnkudmltCiAKLVRoaXMgVmltIHNjcmlwdCBmaWxlIGRlZmluZXMgYSBuZXcgdmlzdWFsIGNvbW1hbmQgIl9qIi4gVG8ganVzdGlmeSBhIGJsb2NrIG9mCitUaGlzIFZpbSBzY3JpcHQgZmlsZSBkZWZpbmVzIGEgbmV3IHZpc3VhbCBjb21tYW5kICJfaiIuICBUbyBqdXN0aWZ5IGEgYmxvY2sgb2YKIHRleHQsIGhpZ2hsaWdodCB0aGUgdGV4dCBpbiBWaXN1YWwgbW9kZSBhbmQgdGhlbiBleGVjdXRlICJfaiIuCiAgICBMb29rIGluIHRoZSBmaWxlIGZvciBtb3JlIGV4cGxhbmF0aW9ucy4gIFRvIGdvIHRoZXJlLCBkbyAiZ2YiIG9uIHRoaXMgbmFtZToKICRWSU1SVU5USU1FL21hY3Jvcy9qdXN0aWZ5LnZpbS4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3Vzcl80Mi50eHQgYi9ydW50aW1lL2RvYy91c3JfNDIudHh0CmluZGV4IGI1NjBkNmIuLmJiZjA2ZTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3Vzcl80Mi50eHQKKysrIGIvcnVudGltZS9kb2MvdXNyXzQyLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp1c3JfNDIudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwMiBPY3QgMDgKKyp1c3JfNDIudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBcHIgMDEKIAogCQkgICAgIFZJTSBVU0VSIE1BTlVBTCAtIGJ5IEJyYW0gTW9vbGVuYWFyCiAKQEAgLTEwOSw3ICsxMDksNyBAQAogCiBTUEVDSUFMIENIQVJBQ1RFUlMKIAotVGhlIHttZW51LWl0ZW19IGluIHRoaXMgZXhhbXBsZSBpcyAiJkZpbGUuJlNhdmU8VGFiPjp3Ii4gVGhpcyBicmluZ3MgdXAgYW4KK1RoZSB7bWVudS1pdGVtfSBpbiB0aGlzIGV4YW1wbGUgaXMgIiZGaWxlLiZTYXZlPFRhYj46dyIuICBUaGlzIGJyaW5ncyB1cCBhbgogaW1wb3J0YW50IHBvaW50OiB7bWVudS1pdGVtfSBtdXN0IGJlIG9uZSB3b3JkLiAgSWYgeW91IHdhbnQgdG8gcHV0IGEgZG90LAogc3BhY2Ugb3IgdGFicyBpbiB0aGUgbmFtZSwgeW91IGVpdGhlciB1c2UgdGhlIDw+IG5vdGF0aW9uICg8U3BhY2U+IGFuZCA8VGFiPiwKIGZvciBpbnN0YW5jZSkgb3IgdXNlIHRoZSBiYWNrc2xhc2ggKFwpIGVzY2FwZS4gPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdXNyXzQ0LnR4dCBiL3J1bnRpbWUvZG9jL3Vzcl80NC50eHQKaW5kZXggMDIxYzQxZS4uZWRhZGJmYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdXNyXzQ0LnR4dAorKysgYi9ydW50aW1lL2RvYy91c3JfNDQudHh0CkBAIC0xLDQgKzEsNCBAQAotKnVzcl80NC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDAyIE9jdCAxMAorKnVzcl80NC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwMQogCiAJCSAgICAgVklNIFVTRVIgTUFOVUFMIC0gYnkgQnJhbSBNb29sZW5hYXIKIApAQCAtNTUwLDcgKzU1MCw3IEBACiAKIElmIGl0IGNhbm5vdCBmaWd1cmUgb3V0IHdoZXJlIGl0IGlzIGluIHRoYXQgc3BhY2UsIGl0IHN0YXJ0cyBsb29raW5nIGZhcnRoZXIKIGFuZCBmYXJ0aGVyIGJhY2sgdW50aWwgaXQgZmlndXJlcyBvdXQgd2hhdCB0byBkby4gIEJ1dCBpdCBsb29rcyBubyBmYXJ0aGVyCi1iYWNrIHRoYW4gNTAwIGxpbmVzLiAoQSBsYXJnZSAibWF4bGluZXMiIHNsb3dzIGRvd24gcHJvY2Vzc2luZy4gIEEgc21hbGwgb25lCitiYWNrIHRoYW4gNTAwIGxpbmVzLiAgKEEgbGFyZ2UgIm1heGxpbmVzIiBzbG93cyBkb3duIHByb2Nlc3NpbmcuICBBIHNtYWxsIG9uZQogbWlnaHQgY2F1c2Ugc3luY2hyb25pemF0aW9uIHRvIGZhaWwuKQogICAgVG8gbWFrZSBzeW5jaHJvbml6aW5nIGdvIGEgYml0IGZhc3RlciwgdGVsbCBWaW0gd2hpY2ggc3ludGF4IGl0ZW1zIGNhbiBiZQogc2tpcHBlZC4gIEV2ZXJ5IG1hdGNoIGFuZCByZWdpb24gdGhhdCBvbmx5IG5lZWRzIHRvIGJlIHVzZWQgd2hlbiBhY3R1YWxseQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmVyc2lvbjUudHh0IGIvcnVudGltZS9kb2MvdmVyc2lvbjUudHh0CmluZGV4IGJjMmY0NWUuLjQzODE2YjggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZlcnNpb241LnR4dAorKysgYi9ydW50aW1lL2RvYy92ZXJzaW9uNS50eHQKQEAgLTEsNCArMSw0IEBACi0qdmVyc2lvbjUudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgSnVuIDE2CisqdmVyc2lvbjUudHh0KiAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01NjIsMTEgKzU2MiwxMSBAQAogCiAnaGxzZWFyY2gnCUhpZ2hsaWdodCBhbGwgbWF0Y2hlcyB3aXRoIHRoZSBsYXN0IHVzZWQgc2VhcmNoIHBhdHRlcm4uCiAKLSdoa21hcHAnCVBob25ldGljIEhlYnJldyBtYXBwaW5nIChJbHlhIERvZ29sYXpreSkuCisnaGttYXBwJwlQaG9uZXRpYyBIZWJyZXcgbWFwcGluZy4gKElseWEgRG9nb2xhemt5KQogCi0naWNvbnN0cmluZycJRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBpY29uLCB3aGVuIG5vdCBlbXB0eS4gKHZlcnNpb24gNS4yOiB0aGUKKydpY29uc3RyaW5nJwlEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGljb24sIHdoZW4gbm90IGVtcHR5LiAgKFZlcnNpb24gNS4yOiB0aGUKIAkJc3RyaW5nIGlzIHVzZWQgbGl0ZXJhbGx5LCBhIG5ld2xpbmUgY2FuIGJlIHVzZWQgdG8gbWFrZSB0d28KLQkJbGluZXMpLgorCQlsaW5lcy4pCiAKICdsYXp5cmVkcmF3JwlEb24ndCByZWRyYXcgdGhlIHNjcmVlbiB3aGlsZSBleGVjdXRpbmcgbWFjcm9zLCByZWdpc3RlcnMgb3IKIAkJb3RoZXIgbm90IHR5cGVkIGNvbW1hbmRzLgpAQCAtNTkxLDkgKzU5MSw5IEBACiAJCWNoYW5naW5nIHRoZSB2YWx1ZSBvZiAndGFic3RvcCcuICBNYWtlcyBpdCBtb3JlIGVhc3kgdG8ga2VlcAogCQkndHMnIGF0IDgsIHdoaWxlIHN0aWxsIGdldHRpbmcgZm91ciBzcGFjZXMgZm9yIGEgPFRhYj4uCiAKLSd0aXRsZXN0cmluZycJU3RyaW5nIGZvciB0aGUgd2luZG93IHRpdGxlLCB3aGVuIG5vdCBlbXB0eS4gICh2ZXJzaW9uIDUuMjoKKyd0aXRsZXN0cmluZycJU3RyaW5nIGZvciB0aGUgd2luZG93IHRpdGxlLCB3aGVuIG5vdCBlbXB0eS4gIChWZXJzaW9uIDUuMjoKIAkJdGhpcyBzdHJpbmcgaXMgdXNlZCBsaXRlcmFsbHksIGEgbmV3bGluZSBjYW4gYmUgdXNlZCB0byBtYWtlCi0JCXR3byBsaW5lcykuCisJCXR3byBsaW5lcy4pCiAKICd2ZXJib3NlJwlMZXZlbCBvZiB2ZXJib3NpdHkuICBNYWtlcyBpdCBwb3NzaWJsZSB0byBzaG93IHdoaWNoIC52aW1yYywKIAkJLmV4cmMsIC52aW1pbmZvIGZpbGVzIGV0Yy4gYXJlIHVzZWQgZm9yIGluaXRpYWxpemluZy4gIEFsc28KQEAgLTcyOCw3ICs3MjgsNyBAQAogLSBWaW1MZWF2ZSBhdXRvY29tbWFuZHMgYXJlIGV4ZWN1dGVkIGFmdGVyIHdyaXRpbmcgdGhlIHZpbWluZm8gZmlsZSwgaW5zdGVhZAogICBvZiBiZWZvcmUuICB8VmltTGVhdmV8CiAtIEFsbG93IGNoYW5naW5nIGF1dG9jb21tYW5kcyB3aGlsZSBleGVjdXRpbmcgdGhlbS4gIFRoaXMgYWxsb3dzIGZvcgotICBzZWxmLW1vZGlmeWluZyBhdXRvY29tbWFuZHMuIChpZGVhIGZyb20gR29sZGJlcmcpCisgIHNlbGYtbW9kaWZ5aW5nIGF1dG9jb21tYW5kcy4gIChpZGVhIGZyb20gR29sZGJlcmcpCiAtIFdoZW4gdXNpbmcgYXV0b2NvbW1hbmRzIHdpdGggdHdvIG9yIG1vcmUgcGF0dGVybnMsIGNvdWxkIG5vdCBzcGxpdAogICAiOmlmLzplbmRpZiIgb3ZlciB0d28gbGluZXMuICBOb3cgYWxsIG1hdGNoaW5nIGF1dG9jb21tYW5kcyBhcmUgZXhlY3V0ZWQgaW4KICAgb25lIGRvX2NtZGxpbmUoKS4KQEAgLTEwNDYsNyArMTA0Niw3IEBACiAKIEFmdGVyICI6c2V0IGFsbCYiLCAnbGluZXMnIGFuZCAndHR5dHlwZScgd2VyZSBzdGlsbCBub24tZGVmYXVsdCwgYmVjYXVzZSB0aGUKIGRlZmF1bHRzIG5ldmVyIGdvdCBzZXQuICBOb3cgdGhlIGRlZmF1bHRzIGZvciAnbGluZXMnIGFuZCAnY29sdW1ucycgYXJlIHNldAotYWZ0ZXIgZGV0ZWN0aW5nIHRoZSB3aW5kb3cgc2l6ZS4gJ3Rlcm0nIGFuZCAndHR5dHlwZScgZGVmYXVsdHMgYXJlIHNldCB3aGVuCithZnRlciBkZXRlY3RpbmcgdGhlIHdpbmRvdyBzaXplLiAgJ3Rlcm0nIGFuZCAndHR5dHlwZScgZGVmYXVsdHMgYXJlIHNldCB3aGVuCiBkZXRlY3RpbmcgdGhlIHRlcm1pbmFsIHR5cGUuCiAKIEZvciAobW9zdCkgbm9uLVVuaXggc3lzdGVtcywgZG9uJ3QgYWRkIGZpbGUgbmFtZXMgd2l0aCBpbGxlZ2FsIGNoYXJhY3RlcnMgd2hlbgpAQCAtMTM1Nyw3ICsxMzU3LDcgQEAKIERKR1BQIHZlcnNpb24gY291bGQgbm90IHNhdmUgbG9uZyBsaW5lcyAoPjY0MDAwKSBmb3IgdW5kby4KIAogInl3IiBvbiB0aGUgbGFzdCBjaGFyIGluIHRoZSBmaWxlIGRpZG4ndCB3b3JrLiAgQWxzbyBmaXhlZCAiNngiIGF0IHRoZSBlbmQgb2YKLXRoZSBsaW5lLiAiNlgiIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUgZmFpbHMsIGJ1dCBkb2VzIG5vdCBicmVhayBhIG1hcHBpbmcuICBJbgordGhlIGxpbmUuICAiNlgiIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUgZmFpbHMsIGJ1dCBkb2VzIG5vdCBicmVhayBhIG1hcHBpbmcuICBJbgogZ2VuZXJhbCwgYSBtb3ZlbWVudCBmb3IgYW4gb3BlcmF0b3IgZG9lc24ndCBiZWVwIG9yIGZsdXNoIGEgbWFwcGluZywgYnV0IHdoZW4KIHRoZXJlIGlzIG5vdGhpbmcgdG8gb3BlcmF0ZSBvbiBpdCBiZWVwcyAodGhpcyBpcyBWaSBjb21wYXRpYmxlKS4KIApAQCAtMTc3Nyw3ICsxNzc3LDcgQEAKIEFkZGVkICI6dGp1bXAiIGFuZCAiOnN0anVtcCIgY29tbWFuZHMuCiBJbXByb3ZlZCBsaXN0aW5nIG9mICI6dHNlbGVjdCIgd2hlbiB0YWcgbmFtZXMgYXJlIGEgYml0IGxvbmcuCiAKLUluY2x1ZGVkIHBhdGNoZXMgZm9yIHRoZSBNYWNpbnRvc2ggdmVyc2lvbi4gQWxzbyBmb3IgUHl0aG9uIGludGVyZmFjZS4KK0luY2x1ZGVkIHBhdGNoZXMgZm9yIHRoZSBNYWNpbnRvc2ggdmVyc2lvbi4gIEFsc28gZm9yIFB5dGhvbiBpbnRlcmZhY2UuCiAoU3QtQW1hbnQpCiAKICI6YnVmIGZvbyIgbm93IGFsc28gcmVzdG9yZXMgY3Vyc29yIGNvbHVtbiwgd2hlbiB0aGUgYnVmZmVyIHdhcyB1c2VkIGJlZm9yZS4KQEAgLTIwNzAsNyArMjA3MCw3IEBACiAtIEFkZGVkICdtb3VzZW1vZGVsJyBvcHRpb246IENoYW5nZSB1c2Ugb2YgbW91c2UgYnV0dG9ucy4KIC0gQWRkZWQgJ2tleW1vZGVsJyBvcHRpb246IHRlbGxzIHRvIHVzZSBzaGlmdGVkIHNwZWNpYWwga2V5cyB0byBzdGFydCBhCiAgIFZpc3VhbCBvciBTZWxlY3QgbW9kZSBzZWxlY3Rpb24uCi0tIEFkZGVkICI6YmVoYXZlIi4gQ2FuIGJlIHVzZWQgdG8gcXVpY2tseSBzZXQgJ3NlbGVjdG1vZGUnLCAnbW91c2Vtb2RlbCcKKy0gQWRkZWQgIjpiZWhhdmUiLiAgQ2FuIGJlIHVzZWQgdG8gcXVpY2tseSBzZXQgJ3NlbGVjdG1vZGUnLCAnbW91c2Vtb2RlbCcKICAgYW5kICdrZXltb2RlbCcgZm9yIE1TLVdpbmRvd3MgYW5kIHh0ZXJtIGJlaGF2aW9yLgogLSBUaGUgeHRlcm0tbGlrZSBzZWxlY3Rpb24gaXMgbm93IGNhbGxlZCBtb2RlbGVzcyBzZWxlY3Rpb24uCiAtIFZpc3VhbCBtb2RlIG1hcHBpbmdzIGFuZCBtZW51cyBhcmUgdXNlZCBpbiBTZWxlY3QgbW9kZS4gIFRoZXkgYXV0b21hdGljYWxseQpAQCAtMjE1MCw3ICsyMTUwLDcgQEAKIHxicm93c2UoKXwJcHV0cyB1cCBhIGZpbGUgcmVxdWVzdGVyIHdoZW4gYXZhaWxhYmxlLiAoTmVncmkpCiB8ZXNjYXBlKCl8CWVzY2FwZXMgY2hhcmFjdGVycyBpbiBhIHN0cmluZyB3aXRoIGEgYmFja3NsYXNoLgogfGZuYW1lbW9kaWZ5KCl8CW1vZGlmaWVzIGEgZmlsZSBuYW1lLgotfGlucHV0KCl8CWFza3MgdGhlIHVzZXIgdG8gZW50ZXIgYSBsaW5lLiAoQWFyb24pIFRoZXJlIGlzIGEgc2VwYXJhdGUKK3xpbnB1dCgpfAlhc2tzIHRoZSB1c2VyIHRvIGVudGVyIGEgbGluZS4gKEFhcm9uKSAgVGhlcmUgaXMgYSBzZXBhcmF0ZQogCQloaXN0b3J5IGZvciBsaW5lcyB0eXBlZCBmb3IgdGhlIGlucHV0KCkgZnVuY3Rpb24uCiB8YXJnYygpfAogfGFyZ3YoKXwJY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSBhcmd1bWVudCBsaXN0LgpAQCAtMjM5NCw3ICsyMzk0LDcgQEAKIAogTm9uLXRleHQgaW4gIjpsaXN0IiBvdXRwdXQgaXMgaGlnaGxpZ2h0ZWQgd2l0aCBOb25UZXh0LgogCi1BZGRlZCB0ZXh0IG9iamVjdHM6ICJpKCIgYW5kICJpKSIgYXMgc3lub255bSBmb3IgImliIi4gIml7IiBhbmQgIml9IiBhcworQWRkZWQgdGV4dCBvYmplY3RzOiAiaSgiIGFuZCAiaSkiIGFzIHN5bm9ueW0gZm9yICJpYiIuICAiaXsiIGFuZCAiaX0iIGFzCiBzeW5vbnltIGZvciAiaUIiLiAgTmV3OiAiaTwiIGFuZCAiaT4iLCB0byBzZWxlY3QgPHRoaW5nPi4gIEFsbCB0aGlzIGFsc28gZm9yCiAiYSIgb2JqZWN0cy4KIApAQCAtMjYwNyw3ICsyNjA3LDcgQEAKIEZ1bGxuYW1lX3NhdmUoKS4gKE5lZ3JpKQogCiBXaW4zMjogIjohc3RhcnQiIHRvIGludm9rZSBhIHByb2dyYW0gd2l0aG91dCBvcGVuaW5nIGEgY29uc29sZSwgc3dhcHBpbmcKLXNjcmVlbnMsIG9yIHdhaXRpbmcgZm9yIGNvbXBsZXRpb24gaW4gZWl0aGVyIGNvbnNvbGUgb3IgZ3VpIHZlcnNpb24uIGUuZy4geW91CitzY3JlZW5zLCBvciB3YWl0aW5nIGZvciBjb21wbGV0aW9uIGluIGVpdGhlciBjb25zb2xlIG9yIGd1aSB2ZXJzaW9uLCBlLmcuIHlvdQogY2FuIHR5cGUgIjohc3RhcnQgd2luZmlsZSIuICBBTFNPIGZpeGVzICJjYW4ndCBkZWxldGUgc3dhcGZpbGUgYWZ0ZXIgc3Bhd25pbmcKIGEgc2hlbGwiIGJ1Zy4gKGVuaGFuY2VtZW50IG9mIEFhcm9uIHBhdGNoKSAoTmVncmkpCiAKQEAgLTM3ODMsNyArMzc4Myw3IEBACiAtIFdlYWstbGlua2luZyBvZiBQeXRob24gMS41LjEgKG9ubHkgb24gUFBDKS4gIFB5dGhvbiBpcyBzdXBwb3J0ZWQgd2hlbiB0aGUKICAgbGlicmFyeSBpcyBhdmFpbGFibGUuCiAtIElmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkIHdoZW4gc291cmNpbmcgdGhlIHVzZXJzIC52aW1yYywgdGhlIGFsZXJ0IGJveCBub3cKLSAgc2hvd3MgcmlnaHQgYXdheSB3aXRoIHRoZSBPSyBidXR0b24gZGVmYXVsdGVkLiBUaGVyZSdzIG5vIG1vcmUgIkRlbGV0ZSIta2V5CisgIHNob3dzIHJpZ2h0IGF3YXkgd2l0aCB0aGUgT0sgYnV0dG9uIGRlZmF1bHRlZC4gIFRoZXJlJ3Mgbm8gbW9yZSAiRGVsZXRlIi1rZXkKICAgc2lnbiBhdCB0aGUgc3RhcnQgb2YgZWFjaCBsaW5lCiAtIEJldHRlciBtYW5hZ2VtZW50IG9mIGVudmlyb25tZW50IHZhcmlhYmxlcy4gIE5vdyAkVklNIGlzIGNhbGN1bGF0ZWQgb25seQogICBvbmNlLCBub3QgcmVnZW5lcmF0ZWQgZXZlcnkgdGltZSBpdCBpcyB1c2VkLgpAQCAtNDA2Nyw3ICs0MDY3LDcgQEAKIC0gRml4IHVzZXIgY2Fubm90IHNlZSBoaXMgbGFuZ3VhZ2Ugd2hpbGUgaGUgaXMgdHlwaW5nIGhpcyBsYW5ndWFnZSB3aXRoCiAgIG9mZi10aGUtc3BvdCBtZXRob2QuIChOYWdhbm8pCiAtIEZpeCBwcmVlZGl0IHBvc2l0aW9uIHVzaW5nIHRleHQvZWRpdCBhcmVhICh1c2luZyBndWkud2lkKS4gKE5hZ2FubykKLS0gcmVtb3ZlICdmaXggZGVhZCBrZXknIGNvZGVzLiBJdCB3YXMgbmVlZGVkIHNpbmNlIFhORm9jdXNXaW5kb3cgd2FzCistIHJlbW92ZSAnZml4IGRlYWQga2V5JyBjb2Rlcy4gIEl0IHdhcyBuZWVkZWQgc2luY2UgWE5Gb2N1c1dpbmRvdyB3YXMKICAgIngxMV93aW5kb3ciLCBYTkZvY3VzV2luZG93IGlzIG5vdyBndWkud2lkLiAoTmFnYW5vKQogLSBSZW1vdmUgc29tZSBjb21waWxlIHdhcm5pbmdzIGFuZCBmaXggdHlwb3MuIChOYW1zaCkKIC0gRm9yIHN0YXR1cyBhcmVhLCBjaGVjayB0aGUgZ3RrKyB2ZXJzaW9uIHdoaWxlIFZpbSBydW5zLiAgSSBiZWxpZXZlIGl0IGlzCkBAIC00NzgzLDcgKzQ3ODMsNyBAQAogd2lsZGNhcmRzIGFyZSBnb2luZyB0byBiZSBleHBhbmRlZC4KIAogVW5peDogIjplIC90bXAvJHVpZCIgZGlkbid0IHdvcmsuICBXaGVuIGV4cGFuZGluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gYQotZmlsZSBuYW1lIGRvZXNuJ3Qgd29yaywgdXNlIHRoZSBzaGVsbCB0byBleHBhbmQgdGhlIGZpbGUgbmFtZS4gIjplIC90bXAvJHR0eSIKK2ZpbGUgbmFtZSBkb2Vzbid0IHdvcmssIHVzZSB0aGUgc2hlbGwgdG8gZXhwYW5kIHRoZSBmaWxlIG5hbWUuICAiOmUgL3RtcC8kdHR5Igogc3RpbGwgZG9lc24ndCB3b3JrIHRob3VnaC4KIAogIm1ha2UgdGVzdCIgZGlkbid0IGFsd2F5cyB3b3JrIG9uIERPUy9XaW5kb3dzIGZvciB0ZXN0MzAsIGJlY2F1c2UgaXQgZGVwZW5kZWQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb242LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb242LnR4dAppbmRleCAxNzEyNzU0Li42ZGUwYWY3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNi50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb242LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEphbiAyNgorKnZlcnNpb242LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEFwciAwNAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtOTU2LDcgKzk1Niw3IEBACiBVc2UgIi0tcmVtb3RlLXdhaXQiIHRvIGRvIHRoZSBzYW1lIGFuZCB3YWl0IGZvciB0aGUgZWRpdGluZyB0byBmaW5pc2guCiBVc2UgIi0tcmVtb3RlLXNlbmQiIHRvIHNlbmQgY29tbWFuZHMgZnJvbSBvbmUgVmltIHRvIGFub3RoZXIuCiBVc2UgIi0tcmVtb3RlLWV4cHIiIHRvIGhhdmUgYW4gZXhwcmVzc2lvbiBldmFsdWF0ZWQgaW4gYW5vdGhlciBWaW0uCi1Vc2UgIi0tc2VydmVybGlzdCIgdG8gbGlzdCB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBWaW0gc2VydmVycy4gKFggb25seSkKK1VzZSAiLS1zZXJ2ZXJsaXN0IiB0byBsaXN0IHRoZSBjdXJyZW50bHkgYXZhaWxhYmxlIFZpbSBzZXJ2ZXJzLiAgKFggb25seSkKIFRoZXJlIGFyZSBhbHNvIGZ1bmN0aW9ucyB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQuCiB8cmVtb3RlX3NlbmQoKXwgfHJlbW90ZV9leHByKCl8CiAKQEAgLTEwNTUsNyArMTA1NSw3IEBACiAtIHw6Y3dpbmRvd3wgdGFrZXMgY2FyZSB0aGF0IHRoZXJlIGlzIGEgcXVpY2tmaXggd2luZG93IG9ubHkgd2hlbiB0aGVyZSBhcmUKICAgcmVjb2duaXplZCBlcnJvcnMuIChEYW4gU2hhcnApCiAKLS0gUXVpY2tmaXggYWxzbyBrbm93cyAiaW5mbyIsIG5leHQgdG8gIndhcm5pbmciIGFuZCAiZXJyb3IiIHR5cGVzLiAiJUkiIGNhbiBiZQorLSBRdWlja2ZpeCBhbHNvIGtub3dzICJpbmZvIiwgbmV4dCB0byAid2FybmluZyIgYW5kICJlcnJvciIgdHlwZXMuICAiJUkiIGNhbiBiZQogICB1c2VkIGZvciB0aGUgc3RhcnQgb2YgYSBtdWx0aS1saW5lIGluZm9ybWF0aW9uYWwgbWVzc2FnZS4gKFRvbnkgTGVuZWlzKQogLSBUaGUgIiVwIiBhcmd1bWVudCBjYW4gYmUgdXNlZCBpbiAnZXJyb3Jmb3JtYXQnIHRvIGdldCB0aGUgY29sdW1uIG51bWJlciBmcm9tCiAgIGEgbGluZSB3aGVyZSAiXiIgcG9pbnRzIHRvIHRoZSBjb2x1bW4uIChTdGVmYW4gUm9lbWVyKQpAQCAtMTE0NCw3ICsxMTQ0LDcgQEAKIGFuZCBjbG9zZWQgZm9sZHMuCiAKIEFkZGVkIHRoZSAiOmxvYWR2aWV3IiBjb21tYW5kIGFuZCB0aGUgJ3ZpZXdkaXInIG9wdGlvbjogQWxsb3dzIGZvciBzYXZpbmcgYW5kCi1yZXN0b3Jpbmcgdmlld3Mgb2YgYSBmaWxlIHdpdGggc2ltcGxlIGNvbW1hbmRzLiAiOm1rdmlldyAxIiBzYXZlcyB2aWV3IDEgZm9yCityZXN0b3Jpbmcgdmlld3Mgb2YgYSBmaWxlIHdpdGggc2ltcGxlIGNvbW1hbmRzLiAgIjpta3ZpZXcgMSIgc2F2ZXMgdmlldyAxIGZvcgogdGhlIGN1cnJlbnQgZmlsZSwgIjpsb2FkdmlldyAxIiBsb2FkcyBpdCBhZ2Fpbi4gIEFsc28gYWxsb3dzIHF1aWNrbHkgc3dpdGNoaW5nCiBiZXR3ZWVuIHR3byB2aWV3cyBvbiBvbmUgZmlsZS4gIEFuZCBzYXZpbmcgYW5kIHJlc3RvcmluZyBtYW51YWwgZm9sZHMgYW5kIHRoZQogZm9sZGluZyBzdGF0ZS4KQEAgLTMzMDMsNyArMzMwMyw3IEBACiBkaWFsb2cuCiAKICJyPENSPiIgb24gYSBtdWx0aS1ieXRlIGNoYXJhY3RlciBkZWxldGVkIG9ubHkgdGhlIGZpcnN0IGJ5dGUgb2YgdGhlCi1jaGFyYWN0ZXIuICIzcjxDUj4iIGRlbGV0ZWQgdGhyZWUgYnl0ZXMgaW5zdGVhZCBvZiB0aHJlZSBjaGFyYWN0ZXJzLgorY2hhcmFjdGVyLiAgIjNyPENSPiIgZGVsZXRlZCB0aHJlZSBieXRlcyBpbnN0ZWFkIG9mIHRocmVlIGNoYXJhY3RlcnMuCiAKIFdoZW4gaW50ZXJydXB0aW5nIHJlYWRpbmcgYSBmaWxlLCBWaSBjb25zaWRlcnMgdGhlIGJ1ZmZlciBtb2RpZmllZC4gIEFkZGVkIHRoZQogJ2knIGZsYWcgaW4gJ2Nwb3B0aW9ucycgZmxhZyBmb3IgdGhpcyAod2UgZG9uJ3Qgd2FudCBpdCBtb2RpZmllZCB0byBiZSBhYmxlIHRvCkBAIC0zODMwLDcgKzM4MzAsNyBAQAogCSAgICBObyBsb25nZXIgbmVlZCB0aGUgVk1TIHNwZWNpZmljIHByaW50aW5nIG1lbnUuCiAJICAgIGdldGhvc3RuYW1lKCkgaXMgbm90IGF2YWlsYWJsZSB3aXRoIFZBWEMuCiAJICAgIFRoZSBtYWtlZmlsZSB3YXMgbGFja2luZyBzZWxlY3Rpb24gb2YgdGhlIHRpbnktaHVnZSBmZWF0dXJlIHNldC4KLVNvbHV0aW9uOiAgIEFkanVzdCB0aGUgJ3ByaW50ZXhwcicgb3B0aW9uIGRlZmF1bHQuIEZpeCB0aGUgb3RoZXIgcHJvYmxlbXMgYW5kCitTb2x1dGlvbjogICBBZGp1c3QgdGhlICdwcmludGV4cHInIG9wdGlvbiBkZWZhdWx0LiAgRml4IHRoZSBvdGhlciBwcm9ibGVtcyBhbmQKIAkgICAgdXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uLiAgKFpvbHRhbiBBcnBhZGZmeSkKIEZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3Nfdm1zLnR4dCwgcnVudGltZS9tZW51LnZpbSwgc3JjL0lOU1RBTEx2bXMudHh0LAogCSAgICBzcmMvTWFrZV92bXMubW1zLCBzcmMvb3B0aW9uLmMsIHNyYy9vc191bml4LmMsIHNyYy9vc192bXNfY29uZi5oCkBAIC0zODQzLDcgKzM4NDMsNyBAQAogCiBQYXRjaCA2LjAuMDI5CiBQcm9ibGVtOiAgICBXaGVuIG1ha2luZyBhIGNoYW5nZSBpbiBsaW5lIDEsIHRoZW4gaW4gbGluZSAyIGFuZCB0aGVuIGRlbGV0aW5nCi0JICAgIGxpbmUgMSwgdW5kbyBpbmZvIGNvdWxkIGJlIHdyb25nLiBPbmx5IHdoZW4gdGhlIGNoYW5nZXMgYXJlIHVuZG9uZQorCSAgICBsaW5lIDEsIHVuZG8gaW5mbyBjb3VsZCBiZSB3cm9uZy4gIE9ubHkgd2hlbiB0aGUgY2hhbmdlcyBhcmUgdW5kb25lCiAJICAgIGF0IG9uY2UuIChHZXJoYXJkIEhvY2hob2x6ZXIpCiBTb2x1dGlvbjogICBXaGVuIG5vdCBzYXZpbmcgYSBsaW5lIGZvciB1bmRvIGJlY2F1c2UgaXQgd2FzIGFscmVhZHkgZG9uZQogCSAgICBiZWZvcmUsIHJlbWVtYmVyIGZvciB3aGljaCBlbnRyeSB0aGUgbGFzdCBsaW5lIG11c3QgYmUgY29tcHV0ZWQuCkBAIC0zODkxLDcgKzM4OTEsNyBAQAogCiBQYXRjaCA2LjAuMDM2CiBQcm9ibGVtOiAgICBPUy8yLCBNUy1ET1MgYW5kIE1TLVdpbmRvd3M6IFVzaW5nIGEgcGF0aCB0aGF0IHN0YXJ0cyB3aXRoIGEKLQkgICAgc2xhc2ggaW4gJ3RhZ3MnIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZC4gKE1hdGhpYXMgS29laHJlcgorCSAgICBzbGFzaCBpbiAndGFncycgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLiAoTWF0aGlhcyBLb2VocmVyKQogU29sdXRpb246ICAgT25seSB1c2UgdGhlIGRyaXZlLCBub3QgdGhlIHdob2xlIHBhdGggdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgogCSAgICBBbHNvIG1ha2UgaXQgd29yayBmb3IgImM6ZGlyL2ZpbGUiLgogRmlsZXM6CSAgICBzcmMvbWlzYzIuYwpAQCAtNjEyNyw3ICs2MTI3LDcgQEAKIE5ldyBjb2xvciBzY2hlbWU6CiAJZGVzZXJ0IChIYW5zIEZ1Z2FsKQogCi1BcmFiaWMgc3BlY2lmaWMgZmVhdHVyZXMuICdhcmFiaWNzaGFwZScsICd0ZXJtYmlkaScsICdhcmFiaWMnIGFuZAorQXJhYmljIHNwZWNpZmljIGZlYXR1cmVzLiAgJ2FyYWJpY3NoYXBlJywgJ3Rlcm1iaWRpJywgJ2FyYWJpYycgYW5kCiAncmlnaHRsZWZ0Y21kJyBvcHRpb25zLiAgKE5hZGltIFNoYWlrbGkgJiBJc2FtIEJheWF6aWRpKQogCiBTdXBwb3J0IGZvciBuZVh0YXcgR1VJIHRvb2xraXQsIG1vc3RseSBsaWtlIEF0aGVuYS4gKEFsZXhleSBGcm9sb2ZmKQpAQCAtNjgxMCw3ICs2ODEwLDcgQEAKIAogUGF0Y2ggNi4xLjA1NgogUHJvYmxlbTogICAgTG9hZGluZyB0aGUgU3ludGF4IG1lbnUgY2FuIHRha2UgcXVpdGUgYSBiaXQgb2YgdGltZS4KLVNvbHV0aW9uOiAgIEFkZCB0aGUgInNraXBfc3ludGF4X3NlbF9tZW51IiB2YXJpYWJsZS4gIFdoZW4gaXRzIGRlZmluZWQgdGhlCitTb2x1dGlvbjogICBBZGQgdGhlICJza2lwX3N5bnRheF9zZWxfbWVudSIgdmFyaWFibGUuICBXaGVuIGl0J3MgZGVmaW5lZCB0aGUKIAkgICAgYXZhaWxhYmxlIHN5bnRheCBmaWxlcyBhcmUgbm90IGluIHRoZSBTeW50YXggbWVudS4KIEZpbGVzOgkgICAgcnVudGltZS9kb2MvZ3VpLnR4dCwgcnVudGltZS9tZW51LnZpbQogCkBAIC03NjQwLDcgKzc2NDAsNyBAQAogU29sdXRpb246ICAgU3VwcG9ydCB0d28gZXh0cmEgYnV0dG9ucyBmb3IgTVMtV2luZG93cy4gKE1pY2hhZWwgR2VkZGVzKQogRmlsZXM6CSAgICBydW50aW1lL2RvYy90ZXJtLnR4dCwgc3JjL2VkaXQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9ndWkuYywKIAkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYywgc3JjL2tleW1hcC5oLCBzcmMvbWVzc2FnZS5jLAotCSAgICBzcmMvbWlzYzEuYywgc3JjL21pc2MyLmMsIHNyYy9ub3JtYWwuYy4gc3JjL3ZpbS5oCisJICAgIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL25vcm1hbC5jLCBzcmMvdmltLmgKIAogUGF0Y2ggNi4xLjE4NSAoZGVwZW5kcyBvbiA2LjEuMTgyKQogUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRob3V0ICtjb21tZW50cyBmZWF0dXJlLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltZGlmZi1mci4xIGIvcnVudGltZS9kb2MvdmltZGlmZi1mci4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzNDFiNTAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy92aW1kaWZmLWZyLjEKQEAgLTAsMCArMSw1MyBAQAorLlRIIFZJTURJRkYgMSAiMzAgbWFycyAyMDAxIgorLlNIIE5PTQordmltZGlmZiBcLSBvdXZyZSBkZXV4IG91IHRyb2lzIHZlcnNpb25zIGQndW4gZmljaGllciBkYW5zIFZpbSBldCBhZmZpY2hlCitsZXVycyBkaWZm6XJlbmNlcworLlNIIFNZTk9QU0lTCisuYnIKKy5CIHZpbWRpZmYKK1tvcHRpb25zXSBmaWNoaWVyMSBmaWNoaWVyMiBbZmljaGllcjNdCisuUFAKKy5CIGd2aW1kaWZmCisuU0ggREVTQ1JJUFRJT04KKy5CIFZpbWRpZmYKK2TpbWFycmUKKy5CIFZpbQorYXZlYyBkZXV4IChvdSB0cm9pcykgZmljaGllcnMuCitDaGFxdWUgZmljaGllciBlc3Qgb3V2ZXJ0IGRhbnMgc2EgcHJvcHJlIGZlbup0cmUuCitMZXMgZGlmZulyZW5jZXMgZW50cmVzIGNlcyBmaWNoaWVycyBzb250IG1pc2VzIGVuIHN1cmJyaWxsYW5jZS4KK0MnZXN0IHVuIG91dGlsIHRy6HMgcHJhdGlxdWUgcG91ciB2aXN1YWxpc2VyIGV0IHJlcG9ydGVyIGxlcworY2hhbmdlbWVudHMgZW50cmUgZGV1eCB2ZXJzaW9ucyBkJ3VuIG3qbWUgZmljaGllci4KKy5QUAorQ29uc3VsdGVyIHZpbSgxKSBwb3VyIGRlcyBpbmZvcm1hdGlvbnMgc3VyIGwn6WRpdGV1ciBWaW0gbHVpLW3qbWUuCisuUFAKK1NpCisuQiBndmltZGlmZgorZXN0IGludm9xdeksIGwnSUhNIGdyYXBoaXF1ZSBlc3QgZOltYXJy6WUgcXVhbmQgZWxsZSBlc3QgZGlzcG9uaWJsZS4KKy5QUAorTCdvcHRpb24gJ2RpZmYnIGVzdCBhY3RpdullIGRhbnMgY2hhY3VuZSBkZXMgZmVu6nRyZXMsIGNlIHF1aSBwcm92b3F1ZSBsYSBtaXNlCitlbiBzdXJicmlsbGFuY2UgZGVzIGRpZmbpcmVuY2VzLgorLmJyCitMZXMgb3B0aW9ucyAnd3JhcCcgZXQgJ3Njcm9sbGJpbmQnIHNvbnQgYWN0aXbpZXMgcG91ciBkb25uZXIgdW4gYXNwZWN0CithZ3LpYWJsZSBhdSB0ZXh0ZS4KKy5icgorTCdvcHRpb24gJ2ZvbGRtZXRob2QnIGVzdCBmaXjpZSDgICJkaWZmIiwgY2UgcXVpIHJlcGxpZSBsZXMgbGlnbmVzIGNvbnPpY3V0aXZlcworaWRlbnRpcXVlcy4gJ2ZvbGRjb2x1bW4nIGVzdCBmaXjpIOAgMiBwb3VyIHRyb3V2ZXIgbGVzIHJlcGxpcyByYXBpZGVtZW50IGV0CitsZXMgb3V2cmlyIG91IGxlcyBmZXJtZXIgZmFjaWxlbWVudC4KKy5TSCBBUkdVTUVOVFMKK0xhIGZlbup0cmUgZGUgVmltIGVzdCBwYXJ0YWfpZSB2ZXJ0aWNhbGVtZW50IGFmaW4gZCdhZmZpY2hlciBsZXMgbGlnbmVzCitjb3JyZXNwb25kYW50ZXMgbGVzIHVuZXMgZW4gZmFjZSBkZXMgYXV0cmVzLCBjb21tZSBzaSBsJ2FyZ3VtZW50ICJcLU8iIOl0YWl0CitzcOljaWZp6S4gVXRpbGlzZXogbCdhcmd1bWVudCAiXC1vIiBwb3VyIG9idGVuaXIgdW4gcGFydGFnZSBob3Jpem9udGFsIOAgbGEKK3BsYWNlLgorLlBQCitQb3VyIGNvbm5h7nRyZSBsZXMgYXV0cmVzIGFyZ3VtZW50cyBkaXNwb25pYmxlcywgY29uc3VsdGV6IHZpbSgxKS4KKy5TSCBWT0lSIEFVU1NJCit2aW0oMSkKKy5TSCBBVVRFVVIKK0xhIG1hamV1cmUgcGFydGllIGRlCisuQiBWaW0KK2Eg6XTpIOljcml0ZSBwYXIgQnJhbSBNb29sZW5hYXIsIGF2ZWMgbCdhaWRlIGRlIG5vbWJyZXV4IGF1dHJlcyBjb250cmlidXRldXJzLgorVm9pciAiOmhlbHAgY3JlZGl0cyIgZGFucworLkIgVmltLgorLlNIIFRSQURVQ1RJT04KK0NldHRlIHBhZ2UgZGUgbWFudWVsIGEg6XTpIHRyYWR1aXRlIHBhciBEYXZpZCBCbGFuY2hldAorPGRhdmlkLmJsYW5jaGV0QGZyZWUuZnI+IDIwMDUtMDMtMTIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aW1kaWZmLWZyLlVURi04LjEgYi9ydW50aW1lL2RvYy92aW1kaWZmLWZyLlVURi04LjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYwOWVlNAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZG9jL3ZpbWRpZmYtZnIuVVRGLTguMQpAQCAtMCwwICsxLDUzIEBACisuVEggVklNRElGRiAxICIzMCBtYXJzIDIwMDEiCisuU0ggTk9NCit2aW1kaWZmIFwtIG91dnJlIGRldXggb3UgdHJvaXMgdmVyc2lvbnMgZCd1biBmaWNoaWVyIGRhbnMgVmltIGV0IGFmZmljaGUKK2xldXJzIGRpZmbDqXJlbmNlcworLlNIIFNZTk9QU0lTCisuYnIKKy5CIHZpbWRpZmYKK1tvcHRpb25zXSBmaWNoaWVyMSBmaWNoaWVyMiBbZmljaGllcjNdCisuUFAKKy5CIGd2aW1kaWZmCisuU0ggREVTQ1JJUFRJT04KKy5CIFZpbWRpZmYKK2TDqW1hcnJlCisuQiBWaW0KK2F2ZWMgZGV1eCAob3UgdHJvaXMpIGZpY2hpZXJzLgorQ2hhcXVlIGZpY2hpZXIgZXN0IG91dmVydCBkYW5zIHNhIHByb3ByZSBmZW7DqnRyZS4KK0xlcyBkaWZmw6lyZW5jZXMgZW50cmVzIGNlcyBmaWNoaWVycyBzb250IG1pc2VzIGVuIHN1cmJyaWxsYW5jZS4KK0MnZXN0IHVuIG91dGlsIHRyw6hzIHByYXRpcXVlIHBvdXIgdmlzdWFsaXNlciBldCByZXBvcnRlciBsZXMKK2NoYW5nZW1lbnRzIGVudHJlIGRldXggdmVyc2lvbnMgZCd1biBtw6ptZSBmaWNoaWVyLgorLlBQCitDb25zdWx0ZXIgdmltKDEpIHBvdXIgZGVzIGluZm9ybWF0aW9ucyBzdXIgbCfDqWRpdGV1ciBWaW0gbHVpLW3Dqm1lLgorLlBQCitTaQorLkIgZ3ZpbWRpZmYKK2VzdCBpbnZvcXXDqSwgbCdJSE0gZ3JhcGhpcXVlIGVzdCBkw6ltYXJyw6llIHF1YW5kIGVsbGUgZXN0IGRpc3BvbmlibGUuCisuUFAKK0wnb3B0aW9uICdkaWZmJyBlc3QgYWN0aXbDqWUgZGFucyBjaGFjdW5lIGRlcyBmZW7DqnRyZXMsIGNlIHF1aSBwcm92b3F1ZSBsYSBtaXNlCitlbiBzdXJicmlsbGFuY2UgZGVzIGRpZmbDqXJlbmNlcy4KKy5icgorTGVzIG9wdGlvbnMgJ3dyYXAnIGV0ICdzY3JvbGxiaW5kJyBzb250IGFjdGl2w6llcyBwb3VyIGRvbm5lciB1biBhc3BlY3QKK2FncsOpYWJsZSBhdSB0ZXh0ZS4KKy5icgorTCdvcHRpb24gJ2ZvbGRtZXRob2QnIGVzdCBmaXjDqWUgw6AgImRpZmYiLCBjZSBxdWkgcmVwbGllIGxlcyBsaWduZXMgY29uc8OpY3V0aXZlcworaWRlbnRpcXVlcy4gJ2ZvbGRjb2x1bW4nIGVzdCBmaXjDqSDDoCAyIHBvdXIgdHJvdXZlciBsZXMgcmVwbGlzIHJhcGlkZW1lbnQgZXQKK2xlcyBvdXZyaXIgb3UgbGVzIGZlcm1lciBmYWNpbGVtZW50LgorLlNIIEFSR1VNRU5UUworTGEgZmVuw6p0cmUgZGUgVmltIGVzdCBwYXJ0YWfDqWUgdmVydGljYWxlbWVudCBhZmluIGQnYWZmaWNoZXIgbGVzIGxpZ25lcworY29ycmVzcG9uZGFudGVzIGxlcyB1bmVzIGVuIGZhY2UgZGVzIGF1dHJlcywgY29tbWUgc2kgbCdhcmd1bWVudCAiXC1PIiDDqXRhaXQKK3Nww6ljaWZpw6kuIFV0aWxpc2V6IGwnYXJndW1lbnQgIlwtbyIgcG91ciBvYnRlbmlyIHVuIHBhcnRhZ2UgaG9yaXpvbnRhbCDDoCBsYQorcGxhY2UuCisuUFAKK1BvdXIgY29ubmHDrnRyZSBsZXMgYXV0cmVzIGFyZ3VtZW50cyBkaXNwb25pYmxlcywgY29uc3VsdGV6IHZpbSgxKS4KKy5TSCBWT0lSIEFVU1NJCit2aW0oMSkKKy5TSCBBVVRFVVIKK0xhIG1hamV1cmUgcGFydGllIGRlCisuQiBWaW0KK2Egw6l0w6kgw6ljcml0ZSBwYXIgQnJhbSBNb29sZW5hYXIsIGF2ZWMgbCdhaWRlIGRlIG5vbWJyZXV4IGF1dHJlcyBjb250cmlidXRldXJzLgorVm9pciAiOmhlbHAgY3JlZGl0cyIgZGFucworLkIgVmltLgorLlNIIFRSQURVQ1RJT04KK0NldHRlIHBhZ2UgZGUgbWFudWVsIGEgw6l0w6kgdHJhZHVpdGUgcGFyIERhdmlkIEJsYW5jaGV0Cis8ZGF2aWQuYmxhbmNoZXRAZnJlZS5mcj4gMjAwNS0wMy0xMi4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbWRpZmYubWFuIGIvcnVudGltZS9kb2MvdmltZGlmZi5tYW4KaW5kZXggNzcxY2U5ZC4uZmIwNjYzYyAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltZGlmZi5tYW4KKysrIGIvcnVudGltZS9kb2MvdmltZGlmZi5tYW4KQEAgLTEsMTIgKzEsMTAgQEAKK1ZJTURJRkYoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVklNRElGRigxKQogCiAKIAotVklNRElGRigxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZJTURJRkYoMSkKLQotCiBOQU1FCi0gICAgICAgdmltZGlmZiAgLSAgZWRpdCAgdHdvIG9yIHRocmVlIHZlcnNpb25zIG9mIGEgZmlsZSB3aXRoIFZpbQotICAgICAgIGFuZCBzaG93IGRpZmZlcmVuY2VzCisgICAgICAgdmltZGlmZiAgLSAgZWRpdCB0d28gb3IgdGhyZWUgdmVyc2lvbnMgb2YgYSBmaWxlIHdpdGggVmltIGFuZCBzaG93IGRpZi0KKyAgICAgICBmZXJlbmNlcwogCiBTWU5PUFNJUwogICAgICAgIHZpbWRpZmYgW29wdGlvbnNdIGZpbGUxIGZpbGUyIFtmaWxlM10KQEAgLTE0LDMwICsxMiwyNSBAQAogICAgICAgIGd2aW1kaWZmCiAKIERFU0NSSVBUSU9OCi0gICAgICAgVmltZGlmZiBzdGFydHMgVmltIG9uIHR3byAob3IgIHRocmVlKSAgZmlsZXMuICAgRWFjaCAgZmlsZQotICAgICAgIGdldHMgIGl0cyAgb3duICB3aW5kb3cuICBUaGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgZmlsZXMKLSAgICAgICBhcmUgaGlnaGxpZ2h0ZWQuICBUaGlzIGlzIGEgbmljZSB3YXkgIHRvICBpbnNwZWN0ICBjaGFuZ2VzCi0gICAgICAgYW5kIHRvIG1vdmUgY2hhbmdlcyBmcm9tIG9uZSB2ZXJzaW9uIHRvIGFub3RoZXIgdmVyc2lvbiBvZgotICAgICAgIHRoZSBzYW1lIGZpbGUuCisgICAgICAgVmltZGlmZiBzdGFydHMgVmltIG9uIHR3byAob3IgdGhyZWUpIGZpbGVzLiAgRWFjaCAgZmlsZSAgZ2V0cyAgaXRzICBvd24KKyAgICAgICB3aW5kb3cuICAgVGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIGZpbGVzIGFyZSBoaWdobGlnaHRlZC4gIFRoaXMgaXMgYQorICAgICAgIG5pY2Ugd2F5IHRvIGluc3BlY3QgY2hhbmdlcyBhbmQgdG8gbW92ZSBjaGFuZ2VzICBmcm9tICBvbmUgIHZlcnNpb24gIHRvCisgICAgICAgYW5vdGhlciB2ZXJzaW9uIG9mIHRoZSBzYW1lIGZpbGUuCiAKICAgICAgICBTZWUgdmltKDEpIGZvciBkZXRhaWxzIGFib3V0IFZpbSBpdHNlbGYuCiAKLSAgICAgICBXaGVuIHN0YXJ0ZWQgYXMgZ3ZpbWRpZmYgIHRoZSAgR1VJICB3aWxsICBiZSAgc3RhcnRlZCwgIGlmCi0gICAgICAgYXZhaWxhYmxlLgorICAgICAgIFdoZW4gc3RhcnRlZCBhcyBndmltZGlmZiB0aGUgR1VJIHdpbGwgYmUgc3RhcnRlZCwgaWYgYXZhaWxhYmxlLgogCi0gICAgICAgSW4gZWFjaCB3aW5kb3cgdGhlICdkaWZmJyBvcHRpb24gd2lsbCBiZSBzZXQsIHdoaWNoIGNhdXNlcwotICAgICAgIHRoZSBkaWZmZXJlbmNlcyB0byBiZSBoaWdobGlnaHRlZC4KLSAgICAgICBUaGUgJ3dyYXAnIGFuZCAnc2Nyb2xsYmluZCcgb3B0aW9ucyBhcmUgc2V0ICB0byAgbWFrZSAgdGhlCi0gICAgICAgdGV4dCBsb29rIGdvb2QuCi0gICAgICAgVGhlICAnZm9sZG1ldGhvZCcgIG9wdGlvbiAgaXMgIHNldCAgdG8gICJkaWZmIiwgd2hpY2ggcHV0cwotICAgICAgIHJhbmdlcyBvZiBsaW5lcyB3aXRob3V0IGNoYW5nZXMgaW4gYSAgZm9sZC4gICAnZm9sZGNvbHVtbicKLSAgICAgICBpcyAgc2V0ICB0byB0d28gdG8gbWFrZSBpdCBlYXN5IHRvIHNwb3QgdGhlIGZvbGRzIGFuZCBvcGVuCi0gICAgICAgb3IgY2xvc2UgdGhlbS4KKyAgICAgICBJbiAgZWFjaCB3aW5kb3cgdGhlICdkaWZmJyBvcHRpb24gd2lsbCBiZSBzZXQsIHdoaWNoIGNhdXNlcyB0aGUgZGlmZmVyLQorICAgICAgIGVuY2VzIHRvIGJlIGhpZ2hsaWdodGVkLgorICAgICAgIFRoZSAnd3JhcCcgYW5kICdzY3JvbGxiaW5kJyBvcHRpb25zIGFyZSBzZXQgdG8gbWFrZSB0aGUgdGV4dCBsb29rIGdvb2QuCisgICAgICAgVGhlICAnZm9sZG1ldGhvZCcgIG9wdGlvbiAgaXMgc2V0IHRvICJkaWZmIiwgd2hpY2ggcHV0cyByYW5nZXMgb2YgbGluZXMKKyAgICAgICB3aXRob3V0IGNoYW5nZXMgaW4gYSBmb2xkLiAgJ2ZvbGRjb2x1bW4nIGlzIHNldCB0byB0d28gdG8gbWFrZSBpdCAgZWFzeQorICAgICAgIHRvIHNwb3QgdGhlIGZvbGRzIGFuZCBvcGVuIG9yIGNsb3NlIHRoZW0uCiAKIE9QVElPTlMKLSAgICAgICBWZXJ0aWNhbCBzcGxpdHMgYXJlIHVzZWQgdG8gYWxpZ24gdGhlICBsaW5lcywgIGFzICBpZiAgdGhlCi0gICAgICAgIi1PIiAgYXJndW1lbnQgd2FzIHVzZWQuICBUbyB1c2UgaG9yaXpvbnRhbCBzcGxpdHMgaW50ZWFkLAotICAgICAgIHVzZSB0aGUgIi1vIiBhcmd1bWVudC4KKyAgICAgICBWZXJ0aWNhbCAgc3BsaXRzICBhcmUgIHVzZWQgdG8gYWxpZ24gdGhlIGxpbmVzLCBhcyBpZiB0aGUgIi1PIiBhcmd1bWVudAorICAgICAgIHdhcyB1c2VkLiAgVG8gdXNlIGhvcml6b250YWwgc3BsaXRzIGludGVhZCwgdXNlIHRoZSAiLW8iIGFyZ3VtZW50LgogCiAgICAgICAgRm9yIGFsbCBvdGhlciBhcmd1bWVudHMgc2VlIHZpbSgxKS4KIApAQCAtNDUsMjIgKzM4LDkgQEAKICAgICAgICB2aW0oMSkKIAogQVVUSE9SCi0gICAgICAgTW9zdCBvZiBWaW0gd2FzIG1hZGUgYnkgQnJhbSBNb29sZW5hYXIsIHdpdGggYSBsb3Qgb2YgaGVscAotICAgICAgIGZyb20gb3RoZXJzLiAgU2VlICI6aGVscCBjcmVkaXRzIiBpbiBWaW0uCisgICAgICAgTW9zdCBvZiBWaW0gd2FzIG1hZGUgYnkgQnJhbSBNb29sZW5hYXIsIHdpdGggYSBsb3Qgb2YgaGVscCBmcm9tIG90aGVycy4KKyAgICAgICBTZWUgIjpoZWxwIGNyZWRpdHMiIGluIFZpbS4KIAogCiAKLQotCi0KLQotCi0KLQotCi0KLQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDEgTWFyY2ggMzAgICAgICAgICAgICAgICAgICAgICAgICAgMQotCi0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDEgTWFyY2ggMzAgICAgICAgICAgICAgICAgICAgICAgVklNRElGRigxKQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltdHV0b3ItZnIuMSBiL3J1bnRpbWUvZG9jL3ZpbXR1dG9yLWZyLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTZhZTY0OAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvZG9jL3ZpbXR1dG9yLWZyLjEKQEAgLTAsMCArMSw1NSBAQAorLlRIIFZJTVRVVE9SIDEgIjIgYXZyaWwgMjAwMSIKKy5TSCBOQU1FCit2aW10dXRvciBcLSB0dXRvcmllbCBWaW0KKy5TSCBTWU5PUFNJUworLmJyCisuQiB2aW10dXRvciBbbGFuZ3VlXQorLlNIIERFU0NSSVBUSU9OCisuQiBWaW10dXRvcgorbGFuY2UgbGUgdHV0b3JpZWwKKy5CIFZpbQorXC4KK0lsIGNvcGllIGQnYWJvcmQgbGUgZmljaGllciBkdSB0dXRvcmllbCwgYWZpbiBxdWUgdm91cyBwdWlzc2lleiBsZSBtb2RpZmllcgorc2FucyBhbHTpcmVyIGxlIGZpY2hpZXIgb3JpZ2luYWwuCisuUFAKKy5CIFZpbXR1dG9yCitlc3QgdXRpbGUgcG91ciBsZXMgcGVyc29ubmVzIHNvdWhhaXRhbnQgYXBwcmVuZHJlIGxldXJzIHByZW1p6HJlcyBjb21tYW5kZXMKKy5CIFZpbQorXC4KKy5QUAorTCdhcmd1bWVudCBvcHRpb25uZWwgW2xhbmd1ZV0gZXN0IGxlIG5vbSBkJ3VuZSBsYW5ndWUsIHNw6WNpZmnpZSBwYXIgc29uCitzeW1ib2xlIOAgZGV1eCBsZXR0cmVzLCB0ZWxzIHF1ZSAiaXQiIG91ICJlcyIuIFNpIGwnYXJndW1lbnQgW2xhbmd1ZV0gZXN0IG9taXMsCitsYSBsYW5ndWUgZGUgbGEgculnaW9uIGxpbmd1aXN0aXF1ZSBhY3R1ZWxsZSBzZXJhIHJldGVudWUuIFNpIGxlIHR1dG9yaWVsIGVzdAorZGlzcG9uaWJsZSBkYW5zIGNldHRlIGxhbmd1ZSwgaWwgZXN0IHByb3Bvc+kuIFNpbm9uLCBjJ2VzdCBsYSB2ZXJzaW9uIGFuZ2xhaXNlCitxdWkgZXN0IHByb3Bvc+llLgorLlBQCisuQiBWaW0KK2VzdCB0b3Vqb3VycyBsYW5j6SBlbiBtb2RlIENvbXBhdGlibGUgVmkuCisuU0ggRklDSElFUlMKKy5UUCAxNQorL3Vzci9sb2NhbC9saWIvdmltL3R1dG9yL3R1dG9yWy5sYW5ndWVdCitMZXMgZmljaGllcnMgdGV4dGVzIGRlIAorLkIgVmltdHV0b3IKK1wuCisuVFAgMTUKKy91c3IvbG9jYWwvbGliL3ZpbS90dXRvci90dXRvci52aW0KK0xlIHNjcmlwdCBWaW0gdXRpbGlz6SBwb3VyIGNvcGllciBsZXMgZmljaGllcnMgdGV4dGUgZGUgCisuQiBWaW10dXRvcgorXC4KKy5TSCBBVVRFVVIKKy5CIFZpbXR1dG9yCithIOl06SDpY3JpdCDgIGwnb3JpZ2luZSBwb3VyIFZpIHBhciBNaWNoYWVsIEMuIFBpZXJjZSBldCBSb2JlcnQgSy4gV2FyZSwgZGUgbGEKK0NvbG9yYWRvIFNjaG9vbCBvZiBNaW5lcywgZW4gcmVwcmVuYW50IGRlcyBpZOllcyDpbWlzZXMgcGFyIENoYXJsZXMgU21pdGgsIGRlCitsYSBDb2xvcmFkbyBTdGF0ZSBVbml2ZXJzaXR5LgorRS1tYWlsIDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgorLmJyCitJbCBhIOl06SBtb2RpZmnpIHBvdXIKKy5CIFZpbQorcGFyIEJyYW0gTW9vbGVuYWFyLgorUG91ciBjb25uYe50cmUgbGUgbm9tIGRlcyB0cmFkdWN0ZXVycywgY29uc3VsdGV6IGxlcyBmaWNoaWVycyB0ZXh0ZXMgZHUKK3R1dG9yaWVsLgorLlNIIFZPSVIgQVVTU0kKK3ZpbSgxKQorLlNIIFRSQURVQ1RJT04KK0NldHRlIHBhZ2UgZGUgbWFudWVsIGEg6XTpIHRyYWR1aXRlIHBhciBEYXZpZCBCbGFuY2hldAorPGRhdmlkLmJsYW5jaGV0QGZyZWUuZnI+IDIwMDQtMTItMjcuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aW10dXRvci1mci5VVEYtOC4xIGIvcnVudGltZS9kb2MvdmltdHV0b3ItZnIuVVRGLTguMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzZjMzRkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvdmltdHV0b3ItZnIuVVRGLTguMQpAQCAtMCwwICsxLDU1IEBACisuVEggVklNVFVUT1IgMSAiMiBhdnJpbCAyMDAxIgorLlNIIE5BTUUKK3ZpbXR1dG9yIFwtIHR1dG9yaWVsIFZpbQorLlNIIFNZTk9QU0lTCisuYnIKKy5CIHZpbXR1dG9yIFtsYW5ndWVdCisuU0ggREVTQ1JJUFRJT04KKy5CIFZpbXR1dG9yCitsYW5jZSBsZSB0dXRvcmllbAorLkIgVmltCitcLgorSWwgY29waWUgZCdhYm9yZCBsZSBmaWNoaWVyIGR1IHR1dG9yaWVsLCBhZmluIHF1ZSB2b3VzIHB1aXNzaWV6IGxlIG1vZGlmaWVyCitzYW5zIGFsdMOpcmVyIGxlIGZpY2hpZXIgb3JpZ2luYWwuCisuUFAKKy5CIFZpbXR1dG9yCitlc3QgdXRpbGUgcG91ciBsZXMgcGVyc29ubmVzIHNvdWhhaXRhbnQgYXBwcmVuZHJlIGxldXJzIHByZW1pw6hyZXMgY29tbWFuZGVzCisuQiBWaW0KK1wuCisuUFAKK0wnYXJndW1lbnQgb3B0aW9ubmVsIFtsYW5ndWVdIGVzdCBsZSBub20gZCd1bmUgbGFuZ3VlLCBzcMOpY2lmacOpZSBwYXIgc29uCitzeW1ib2xlIMOgIGRldXggbGV0dHJlcywgdGVscyBxdWUgIml0IiBvdSAiZXMiLiBTaSBsJ2FyZ3VtZW50IFtsYW5ndWVdIGVzdCBvbWlzLAorbGEgbGFuZ3VlIGRlIGxhIHLDqWdpb24gbGluZ3Vpc3RpcXVlIGFjdHVlbGxlIHNlcmEgcmV0ZW51ZS4gU2kgbGUgdHV0b3JpZWwgZXN0CitkaXNwb25pYmxlIGRhbnMgY2V0dGUgbGFuZ3VlLCBpbCBlc3QgcHJvcG9zw6kuIFNpbm9uLCBjJ2VzdCBsYSB2ZXJzaW9uIGFuZ2xhaXNlCitxdWkgZXN0IHByb3Bvc8OpZS4KKy5QUAorLkIgVmltCitlc3QgdG91am91cnMgbGFuY8OpIGVuIG1vZGUgQ29tcGF0aWJsZSBWaS4KKy5TSCBGSUNISUVSUworLlRQIDE1CisvdXNyL2xvY2FsL2xpYi92aW0vdHV0b3IvdHV0b3JbLmxhbmd1ZV0KK0xlcyBmaWNoaWVycyB0ZXh0ZXMgZGUgCisuQiBWaW10dXRvcgorXC4KKy5UUCAxNQorL3Vzci9sb2NhbC9saWIvdmltL3R1dG9yL3R1dG9yLnZpbQorTGUgc2NyaXB0IFZpbSB1dGlsaXPDqSBwb3VyIGNvcGllciBsZXMgZmljaGllcnMgdGV4dGUgZGUgCisuQiBWaW10dXRvcgorXC4KKy5TSCBBVVRFVVIKKy5CIFZpbXR1dG9yCithIMOpdMOpIMOpY3JpdCDDoCBsJ29yaWdpbmUgcG91ciBWaSBwYXIgTWljaGFlbCBDLiBQaWVyY2UgZXQgUm9iZXJ0IEsuIFdhcmUsIGRlIGxhCitDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMsIGVuIHJlcHJlbmFudCBkZXMgaWTDqWVzIMOpbWlzZXMgcGFyIENoYXJsZXMgU21pdGgsIGRlCitsYSBDb2xvcmFkbyBTdGF0ZSBVbml2ZXJzaXR5LgorRS1tYWlsIDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1LgorLmJyCitJbCBhIMOpdMOpIG1vZGlmacOpIHBvdXIKKy5CIFZpbQorcGFyIEJyYW0gTW9vbGVuYWFyLgorUG91ciBjb25uYcOudHJlIGxlIG5vbSBkZXMgdHJhZHVjdGV1cnMsIGNvbnN1bHRleiBsZXMgZmljaGllcnMgdGV4dGVzIGR1Cit0dXRvcmllbC4KKy5TSCBWT0lSIEFVU1NJCit2aW0oMSkKKy5TSCBUUkFEVUNUSU9OCitDZXR0ZSBwYWdlIGRlIG1hbnVlbCBhIMOpdMOpIHRyYWR1aXRlIHBhciBEYXZpZCBCbGFuY2hldAorPGRhdmlkLmJsYW5jaGV0QGZyZWUuZnI+IDIwMDQtMTItMjcuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aXN1YWwudHh0IGIvcnVudGltZS9kb2MvdmlzdWFsLnR4dAppbmRleCAwZmY5ZGZlLi5jZDkyNGEzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92aXN1YWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL3Zpc3VhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qdmlzdWFsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDQgRGVjIDI5CisqdmlzdWFsLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXByIDAxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC04OCw4ICs4OCwxMSBAQAogCiAJCQkJCQkJKmd2KiAqdl9ndioKIGd2CQkJU3RhcnQgVmlzdWFsIG1vZGUgd2l0aCB0aGUgc2FtZSBhcmVhIGFzIHRoZSBwcmV2aW91cwotCQkJYXJlYSBhbmQgdGhlIHNhbWUgbW9kZS4gIEluIFZpc3VhbCBtb2RlIHRoZSBjdXJyZW50IGFuZAotCQkJdGhlIHByZXZpb3VzIFZpc3VhbCBhcmVhIGFyZSBleGNoYW5nZWQuCisJCQlhcmVhIGFuZCB0aGUgc2FtZSBtb2RlLgorCQkJSW4gVmlzdWFsIG1vZGUgdGhlIGN1cnJlbnQgYW5kIHRoZSBwcmV2aW91cyBWaXN1YWwKKwkJCWFyZWEgYXJlIGV4Y2hhbmdlZC4KKwkJCUFmdGVyIHVzaW5nICJwIiBvciAiUCIgaW4gVmlzdWFsIG1vZGUgdGhlIHRleHQgdGhhdAorCQkJd2FzIHB1dCB3aWxsIGJlIHNlbGVjdGVkLgogCiAJCQkJCQkJKjxMZWZ0TW91c2U+KgogPExlZnRNb3VzZT4JCVNldCB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24uICBJZiBWaXN1YWwgbW9kZSBpcwpAQCAtMjcyLDcgKzI3NSw3IEBACiAKIFZpc3VhbC1ibG9jayBBcHBlbmQJCQkJCQkqdl9iX0EqCiBXaXRoIGEgYmxvY2t3aXNlIHNlbGVjdGlvbiwgQXtzdHJpbmd9PEVTQz4gd2lsbCBhcHBlbmQge3N0cmluZ30gdG8gdGhlIGVuZCBvZgotYmxvY2sgb24gZXZlcnkgbGluZSBvZiB0aGUgYmxvY2suIFRoZXJlIGlzIHNvbWUgZGlmZmVyaW5nIGJlaGF2aW9yIHdoZXJlIHRoZQorYmxvY2sgb24gZXZlcnkgbGluZSBvZiB0aGUgYmxvY2suICBUaGVyZSBpcyBzb21lIGRpZmZlcmluZyBiZWhhdmlvciB3aGVyZSB0aGUKIGJsb2NrIFJIUyBpcyBub3Qgc3RyYWlnaHQsIGR1ZSB0byBkaWZmZXJlbnQgbGluZSBsZW5ndGhzOgogCiAxLiBCbG9jayB3YXMgY3JlYXRlZCB3aXRoIDxDLXY+JApAQCAtMjk3LDEyICszMDAsMTIgQEAKIAogCQkJCQkJCQkqdl9iXzwqCiBWaXN1YWwtYmxvY2sgU2hpZnQJCQkJCQkqdl9iXz4qCi1UaGUgYmxvY2sgaXMgc2hpZnRlZCBieSAnc2hpZnR3aWR0aCcuIFRoZSBSSFMgb2YgdGhlIGJsb2NrIGlzIGlycmVsZXZhbnQuIFRoZQorVGhlIGJsb2NrIGlzIHNoaWZ0ZWQgYnkgJ3NoaWZ0d2lkdGgnLiAgVGhlIFJIUyBvZiB0aGUgYmxvY2sgaXMgaXJyZWxldmFudC4gIFRoZQogTEhTIG9mIHRoZSBibG9jayBkZXRlcm1pbmVzIHRoZSBwb2ludCBmcm9tIHdoaWNoIHRvIGFwcGx5IGEgcmlnaHQgc2hpZnQsIGFuZAotcGFkZGluZyBpbmNsdWRlcyBUQUJzIG9wdGltYWxseSBhY2NvcmRpbmcgdG8gJ3RzJyBhbmQgJ2V0Jy4gVGhlIExIUyBvZiB0aGUKK3BhZGRpbmcgaW5jbHVkZXMgVEFCcyBvcHRpbWFsbHkgYWNjb3JkaW5nIHRvICd0cycgYW5kICdldCcuICBUaGUgTEhTIG9mIHRoZQogYmxvY2sgZGV0ZXJtaW5lcyB0aGUgcG9pbnQgdXB0byB3aGljaCB0byBzaGlmdCBsZWZ0LgogICAgIE5vdGU6IHZfPCBwYWRkaW5nIGlzIGJ1Z2d5IGlmIHRoZSBWaXN1YWwgQmxvY2sgc3RhcnRzIGFuZCBlbmRzIGluIHRoZSBzYW1lCi0gICAgVEFCLiAoVmltIDUuNGMpLgorICAgIFRBQi4gKFZpbSA1LjRjKQogU2VlIHx2X2JfPl9leGFtcGxlfC4KIFNlZSB8dl9iXzxfZXhhbXBsZXwuCiAKQEAgLTM2NCwxNCArMzY3LDE0IEBACiAKIFZpc3VhbC1ibG9jayBFeGFtcGxlcwkJCQkJKmJsb2Nrd2lzZS1leGFtcGxlcyoKIFdpdGggdGhlIGZvbGxvd2luZyB0ZXh0LCBJIHdpbGwgaW5kaWNhdGUgdGhlIGNvbW1hbmRzIHRvIHByb2R1Y2UgdGhlIGJsb2NrIGFuZAotdGhlIHJlc3VsdHMgYmVsb3cuIEluIGFsbCBjYXNlcywgdGhlIGN1cnNvciBiZWdpbnMgb24gdGhlICdhJyBpbiB0aGUgZmlyc3QKK3RoZSByZXN1bHRzIGJlbG93LiAgSW4gYWxsIGNhc2VzLCB0aGUgY3Vyc29yIGJlZ2lucyBvbiB0aGUgJ2EnIGluIHRoZSBmaXJzdAogbGluZSBvZiB0aGUgdGVzdCB0ZXh0LgogVGhlIGZvbGxvd2luZyBtb2RlbGluZSBzZXR0aW5ncyBhcmUgYXNzdW1lZCAiOnRzPTg6c3c9NDoiLgogCiBJdCB3aWxsIGJlIGhlbHBmdWwgdG8KIDpzZXQgaGxzCiAvPFRBQj4KLXdoZXJlIDxUQUI+IGlzIGEgcmVhbCBUQUIuIFRoaXMgaGVscHMgdmlzdWFsaXNlIHRoZSBvcGVyYXRpb25zLgord2hlcmUgPFRBQj4gaXMgYSByZWFsIFRBQi4gIFRoaXMgaGVscHMgdmlzdWFsaXNlIHRoZSBvcGVyYXRpb25zLgogCiBUaGUgdGVzdCB0ZXh0IGlzOgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy94eGQtZnIuMSBiL3J1bnRpbWUvZG9jL3h4ZC1mci4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmMTU3YmMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2RvYy94eGQtZnIuMQpAQCAtMCwwICsxLDM5NSBAQAorLlRIIFhYRCAxICJhb/t0IDE5OTYiICJQYWdlIGRlIG1hbnVlbCBwb3VyIHh4ZCIKKy5cIgorLlwiIDIxc3QgTWF5IDE5OTYKKy5cIiBNYW4gcGFnZSBhdXRob3I6CisuXCIgICAgVG9ueSBOdWdlbnQgPHRvbnlAc2N0bnVnZW4ucHBwLmd1LmVkdS5hdT4gPFQuTnVnZW50QHNjdC5ndS5lZHUuYXU+CisuXCIgICAgQ2hhbmdlcyBieSBCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgorLlwiICAgIEZyZW5jaCB0cmFuc2xhdGlvbiBieSBEYXZpZCBCbGFuY2hldCA8ZGF2aWQuYmxhbmNoZXRAZnJlZS5mcj4gMjAwNS0wMworLlNIIE5PTQorLkkgeHhkCitcLSBjb252ZXJ0aXQgZW4gcmVwculzZW50YXRpb24gaGV4YWTpY2ltYWxlIGV0IGludmVyc2VtZW50LgorLlNIIFNZTk9QU0lTCisuQiB4eGQKK1wtaFtlbHBdCisuYnIKKy5CIHh4ZAorW29wdGlvbnNdIFtmaWNoaWVyX2VudHJlZSBbZmljaGllcl9zb3J0aWVdXQorLmJyCisuQiB4eGQKK1wtcltldmVydF0gW29wdGlvbnNdIFtmaWNoaWVyX2VudHJlZSBbZmljaGllcl9zb3J0aWVdXQorLlNIIERFU0NSSVBUSU9OCisuSSB4eGQKK2Ny6WUgdW4gZmljaGllciBjb250ZW5hbnQgbGEgcmVwculzZW50YXRpb24gaGV4YWTpY2ltYWxlIGQndW4gZmljaGllcgorYmluYWlyZSBvdSBkZSBsJ2VudHLpZSBzdGFuZGFyZC4KK0lsIHBldXQg6WdhbGVtZW50IGNvbnZlcnRpciB1biBmaWNoaWVyIGRlIGNvZGVzIGhleGFk6WNpbWF1eCBlbiB1biBmaWNoaWVyCitiaW5haXJlLgorQ29tbWUKKy5CUiB1dWVuY29kZSgxKQorZXQKKy5CUiB1dWRlY29kZSgxKQoraWwgcGVybWV0IGxhIHRyYW5zbWlzc2lvbiBkZSBkb25u6WVzIGJpbmFpcmVzIGRhbnMgdW5lIHJlcHLpc2VudGF0aW9uIEFTQ0lJCitjb21wYXRpYmxlIGF2ZWMgbGUgY291cnJpZXIg6WxlY3Ryb25pcXVlLCBtYWlzIGEgbCdhdmFudGFnZSBkZSBk6WNvZGVyIGxhCitzb3J0aWUgc3RhbmRhcmQuCitEZSBwbHVzLCBpbCBwZXV0IOp0cmUgdXRpbGlz6SBwb3VyIGFwcGxpcXVlciBkZXMgcnVzdGluZXMg4CBkZXMgZmljaGllcnMKK2JpbmFpcmVzLgorLlNIIE9QVElPTlMKK1NpIGF1Y3VuCisuSSBmaWNoaWVyX2VudHJlZQorbidlc3Qgc3DpY2lmaeksIGwnZW50cullIHN0YW5kYXJkIGVzdCB1dGlsaXPpZS4KK1NpCisuSSBmaWNoaWVyX2VudHJlZQorY29ycmVzcG9uZCBhdSBjYXJhY3TocmUKKy5SQiAnXC0nCitcLCBsJ2VudHLpZSBzdGFuZGFyZCBlc3QgZW1wbG956WUgY29tbWUgc291cmNlIGRlcyBkb25u6WVzIGVuIGVudHLpZS4KK1NpIGF1Y3VuCisuSSBmaWNoaWVyX3NvcnRpZQorbidlc3Qgc3DpY2lmaekgKG91IHF1J3VuIGNhcmFjdOhyZQorLlJCICdcLScKK2VzdCBkb25u6SDgIHNhIHBsYWNlKSwgbGUgculzdWx0YXQgZXN0IGVudm956SBzdXIgbGEgc29ydGllIHN0YW5kYXJkLgorLlBQCitOT1RFIDogdW4gYW5hbHlzZXVyIHBhcmVzc2V1eCBlc3QgdXRpbGlz6S4gSWwgbmUgdulyaWZpZSBwYXMgYXUtZGVs4CBkZSBsYQorcHJlbWnocmUgbGV0dHJlIGRlIGwnb3B0aW9uLCDgIG1vaW5zIHF1ZSBjZXR0ZSBkZXJuaehyZSBuZSByZXF1aWVydCB1bgorcGFyYW3odHJlLgorTCdlc3BhY2UgZW50cmUgbCdvcHRpb24gZXQgc29uIHBhcmFt6HRyZSBlc3Qgb3B0aW9ubmVsLgorTGVzIHBhcmFt6HRyZXMgZGVzIG9wdGlvbnMgcGV1dmVudCDqdHJlIHNw6WNpZmnpcyBlbiBub3RhdGlvbiBk6WNpbWFsZSwKK2hleGFk6WNpbWFsZSBvdSBvY3RhbGUuCitBaW5zaQorLkJSIFwtYzggLAorLkJSICJcLWMgOCIgLAorLkIgXC1jIDAxMAorZXQKKy5CIFwtY29scyA4Citzb250IHRvdXMg6XF1aXZhbGVudHMuCisuVFAKKy5JUiBcLWEgIiB8ICIgXC1hdXRvc2tpcAorYWN0aXZlIGxhIGZvbmN0aW9ubmFsaXTpICJhdXRvc2tpcCIgOiBsZSBjYXJhY3TocmUgJyonIHJlbXBsYWNlIGxlcyBsaWduZXMKK2Qnb2N0ZXRzIG51bHMuIETpc2FjdGl26WUgcGFyIGTpZmF1dC4KKy5UUAorLklSIFwtYiAiIHwgIiBcLWJpdHMKK0NvbnZlcnRpdCBlbiBiaW5haXJlcyBwbHV09HQgcXUnZW4gaGV4YWTpY2ltYWwuCitDZXR0ZSBvcHRpb24g6WNyaXQgbGVzIG9jdGV0cyBjb21tZSB1bmUgc+lxdWVuY2UgZGUgIjEiIGV0IGRlICIwIiBhdSBsaWV1CitkJ3VuZSBjb252ZXJzaW9uIGVuIGhleGFk6WNpbWFsIHRyYWRpdGlvbm5lbC4gQ2hhcXVlIGxpZ25lIGVzdCBwculj6WTpZSBwYXIgdW4KK251belybyBkZSBsaWduZSBlbiBoZXhhZOljaW1hbCBldCBzdWl2aWUgZGUgbGEgcmVwculzZW50YXRpb24gQVNDSUkgKG91CitFQkNESUMpIGNvcnJlc3BvbmRhbnRlLiBMZXMgb3B0aW9ucyBcLXIsIFwtcCwgXC1pIG5lIGZvbmN0aW9ubmVudCBwYXMgZGFucyBjZQorbW9kZS4KKy5UUAorLklSICJcLWMgY29scyAiIHwgIiBcLWNvbHMgY29scyIKK3BsYWNlCisuUkkgPCBjb2xzID4KK29jdGV0cyBwYXIgbGlnbmUuIDE2IHBhciBk6WZhdXQgKFwtaSA6IDEyLCBcLXBzIDogMzAsIFwtYiA6IDYpLiBNYXhpbXVtIDI1Ni4KKy5UUAorLklSIFwtRSAiIHwgIiBcLUVCQ0RJQworUGFzc2UgbGUgY29kYWdlIGRlcyBjYXJhY3TocmVzIGRlIGxhIGNvbG9ubmUgZGUgZHJvaXRlIGRlIEFTQ0lJIOAgRUJDRElDLgorQ2VsYSBuZSBjaGFuZ2UgcGFzIGxhIHJlcHLpc2VudGF0aW9uIGhleGFk6WNpbWFsZS4gQ2V0dGUgb3B0aW9uIGVzdCBzYW5zIGVmZmV0CitxdWFuZCBlbGxlIGVzdCB1dGlsaXPpZSBhdmVjIFwtciwgXC1wIG9yIFwtaS4KKy5UUAorLklSICJcLWcgb2N0ZXRzICIgfCAiIFwtZ3JvdXBzaXplIG9jdGV0cyIKK1JlZ3JvdXBlIGxlcyBvY3RldHMgKGRldXggY2hpZmZyZXMgaGV4YWTpY2ltYXV4IG91IGh1aXQgY2hpZmZyZXMgYmluYWlyZXMpCitwYXIgZ3JvdXBlIGRlCisuUkkgPCBvY3RldHMgPgorXCwgc+lwYXLpcyBwYXIgZGVzIGVzcGFjZXMgYmxhbmNzLiBTcOljaWZpZXoKKy5JIFwtZyAwCitwb3VyIHN1cHByaW1lciBsZSByZWdyb3VwZW1lbnQuCisuUkkgPCBvY3RldHMgPgordmF1dCAyIHBhciBk6WZhdXQgZGFucyBsZSBtb2RlIG5vcm1hbCBldCBcZkkxXGZQIGVuCityZXBy6XNlbnRhdGlvbiBiaW5haXJlLiBMZSByZWdyb3VwZW1lbnQgbmUgcydhcHBsaXF1ZSBwYXMgYXV4IHN0eWxlcworUG9zdHNjcmlwdCBldCBJbmNsdWRlLgorLlRQCisuSVIgXC1oICIgfCAiIFwtaGVscAorQWZmaWNoZSB1biBy6XN1bekgZGVzIGNvbW1hbmRlcyBkaXNwb25pYmxlcyBldCBxdWl0dGUuIEF1Y3VuZSBjb252ZXJzaW9uIG4nZXN0CitlZmZlY3R16WUuCisuVFAKKy5JUiBcLWkgIiB8ICIgXC1pbmNsdWRlCitwcm9kdWl0IHVuZSBzb3J0aWUgZGFucyBsZSBzdHlsZSAjaW5jbHVkZSAoZmljaGllciBDIOAgaW5jbHVyZSkuIExhIGTpZmluaXRpb24KK2NvbXBs6HRlIGQndW4gdGFibGVhdSBzdGF0aXF1ZSBlc3Qg6WNyaXRlIGV0IGVzdCBub21t6WUgZCdhcHLocyBsZSBmaWNoaWVyCitkJ29yaWdpbmUsIOAgbW9pbnMgcXVlIHh4ZCBsaXNlIGRlcHVpcyBsJ2VudHLpZSBzdGFuZGFyZC4KKy5UUAorLklSICJcLWwgbG9uZyAiIHwgIiBcLWxlbiBsb25nIgorQXJy6nRlIGFwcuhzIGwn6WNyaXR1cmUgZGUKKy5SSSAgPCBsb25nID4KK29jdGV0cy4KKy5UUAorLklSIFwtcCAiIHwgIiBcLXBzICIgfCAiIFwtcG9zdHNjcmlwdCAiIHwgIiBcLXBsYWluCitQcm9kdWl0IHVuZSBjb252ZXJzaW9uIGNvbnRpbnVlIGRhbnMgbGUgc3R5bGUgUG9zdHNjcmlwdCAocG9zdHNjcmlwdCBjb250aW51b3VzCitoZXhkdW1kIHN0eWxlKS4KK8lnYWxlbWVudCBjb25udSBzb3VzIGxlIG5vbSBkZSCrIGNvbnZlcnNpb24gYnJ1dGUguyAocGxhaW4gaGV4ZHVtcCBzdHlsZSkuCisuVFAKKy5JUiBcLXIgIiB8ICIgXC1yZXZlcnQKK09w6XJhdGlvbiBpbnZlcnNlIDogY29udmVydGl0IHVuIGZpY2hpZXIgaGV4YWTpY2ltYWwgZW4gdW4gZmljaGllciBiaW5haXJlIChvdQorYXBwbGlxdWUgdW5lIHJ1c3RpbmUg4CB1biBmaWNoaWVyIGJpbmFpcmUpLgorU2kgbCfpY3JpdHVyZSBuJ2EgcGFzIGxpZXUgc3VyIGxhIHNvcnRpZSBzdGFuZGFyZCwgeHhkIOljcml0IGRhbnMgbGUgZmljaGllcgorcXUnaWwgcHJvZHVpdCBzYW5zIGxlIHRyb25xdWVyLiBVdGlsaXNleiBsYSBjb21iaW5haXNvbiAKKy5JIFwtciBcLXAKK3BvdXIgbGlyZSBkZSBsJ2hleGFk6WNpbWFsIGJydXQgc2FucyBpbmZvcm1hdGlvbiBzdXIgbGUgbnVt6XJvIGRlcyBsaWduZXMgZXQKK3NhbnMgZm9ybWF0IGRlIGNvbG9ubmVzIHBhcnRpY3VsaWVyLiBEZXMgZXNwYWNlcyBibGFuY3MgZXQgY291cHVyZXMgZGUgbGlnbmVzCitzdXBwbOltZW50YWlyZXMgc29udCBhdXRvcmlz6XMg4CBuJ2ltcG9ydGUgcXVlbCBlbmRyb2l0LgorLlRQCisuSSBcLXNlZWsgZOljYWxhZ2UKK1V0aWxpc+kgYXBy6HMgbCdvcHRpb24KKy5JIFwtcgorXDogaW52ZXJzZSBsYSBjb252ZXJzaW9uIGVuIGFqb3V0YW50CisuUkkgPCBk6WNhbGFnZSA+CithdXggcG9zaXRpb25zIGRhbnMgbGUgZmljaGllciBkb25u6WVzIGRhbnMgbGUgY29kZSBoZXhhZOljaW1hbC4KKy5UUAorLkkgXC1zIFtcK11bXC1dZOljYWxhZ2UKK0TpYnV0ZSBhdQorLlJJIDwgZOljYWxhZ2UgPgorYWJzb2x1IG91IHJlbGF0aWYgZGFucyBmaWNoaWVyX2VudHJlZS4KK1xmSVwrIFxmUmluZGlxdWUgcXVlIGxlIGTpY2FsYWdlIGVzdCByZWxhdGlmIOAgbGEgcG9zaXRpb24gY291cmFudGUgZGFucworbCdlbnRy6WUgc3RhbmRhcmQgKHNhbnMgZWZmZXQgc2kgbGEgbGVjdHVyZSBuJ2EgcGFzIGxpZXUgc3VyIGwnZW50cullCitzdGFuZGFyZCkuIFxmSVwtIFxmUmluZGlxdWUgdW4gZOljYWxhZ2UgZW4gY2FyYWN06HJlcyBkZXB1aXMgbGEgZmluIGRlCitsJ2VudHLpZSAodXRpbGlz6SBhdmVjIFxmSSBcKyBcZlIsIGTpc2lnbmUgbGEgcG9zaXRpb24gYXZhbnQgbGEgcG9zaXRpb24KK2FjdHVlbGxlIGRlIGwnZW50cullIHN0YW5kYXJkKS4KK1NhbnMgbCdvcHRpb24gXC1zLCB4eGQgZOltYXJyZSDgIGxhIHBvc2l0aW9uIGNvdXJhbnRlIGR1IGZpY2hpZXIuCisuVFAKKy5JIFwtdQorVXRpbGlzZSBkZXMgY2hpZmZyZXMgaGV4YWTpY2ltYXV4IG1hanVzY3VsZXMuIExhIGNhc3NlIHBhciBk6WZhdXQgZXN0CittaW51c2N1bGUuCisuVFAKKy5JUiBcLXYgIiB8ICIgXC12ZXJzaW9uCitBZmZpY2hlIGxhIHZlcnNpb24gZGUgeHhkLgorLlNIIE1JU0UgRU4gR0FSREUKKy5JIHh4ZCBcLXIKK2VmZmVjdHVlIGRlcyBvcOlyYXRpb25zIGludGVybmVzIHVuIHBldSBvYnNjdXJlcyBsb3JzIGRlIGwn6XZhbHVhdGlvbgorZGVzIGluZm9ybWF0aW9ucyBzdXIgbGVzIG51belyb3MgZGUgbGlnbmVzLiBTaSBsZSBmaWNoaWVyIGRlIHNvcnRpZSBlc3QKK2FkcmVzc2FibGUsIGFsb3JzIGxlcyBudW3pcm9zIGRlIGxpZ25lcyBhdSBk6WJ1dCBkZSBjaGFxdWUgbGlnbmUgZCdoZXhhZOljaW1hbAorcGV1dmVudCDqdHJlIGTpc29yZG9ubullcywgZGVzIGxpZ25lcyBwZXV2ZW50IG1hbnF1ZXIgb3Ugc2UgY2hldmF1Y2hlci4gRGFucworY2VzIGNhcywgeHhkIHV0aWxpc2VyYSBsc2VlaygyKSBwb3VyIGTpdGVybWluZXIgbGEgcHJvY2hhaW5lIHBvc2l0aW9uLiBTaSBsZQorZmljaGllciBuJ2VzdCBwYXMgYWRyZXNzYWJsZSwgc2V1bHMgbGVzIHZpZGVzIHNvbnQgYXV0b3Jpc+lzLCBldCBpbHMgc2Vyb250Citjb21ibOlzIHBhciBkZXMgb2N0ZXRzIG51bHMuCisuUFAKKy5JIHh4ZCBcLXIKK25lIGfpbuhyZSBhdWN1bmUgZXJyZXVyIGxvcnMgZGUgbCdhbmFseXNlLiBMZSBwcm9ibOhtZSBzb250IHBhc3Ppcworc2lsZW5jaWV1c2VtZW50LgorLlBQCitMb3JzIGRlIGwn6WRpdGlvbiBkZSBsYSByZXBy6XNlbnRhdGlvbiBoZXhhZOljaW1hbGUsIHZldWlsbGV6IG5vdGVyIHF1ZQorLkkgeHhkIFwtcgoraWdub3JlIHRvdXQgY2UgcXVpIHNlIHRyb3V2ZSBzdXIgbGEgbGlnbmUgYXBy6HMgYXZvaXIgbHUgc3VmZmlzYW1tZW50IGRlCitkb25u6WVzIGhleGFk6WNpbWFsZXMgKHZvaXIgbCdvcHRpb24gXC1jKS4gQ2VsYSBzaWduaWZpZSDpZ2FsZW1lbnQgcXVlIGxlcworbW9kaWZpY2F0aW9ucyBkYW5zIGxhIGNvbG9ubmUgQVNDSUkgKG91IEVCQ0RJQykgc29udCB0b3Vqb3VycyBpZ25vcullcy4gTGEKK2NvbnZlcnNpb24gaW52ZXJzZSBkZSBkb25u6WVzIGhleGFk6WNpbWFsZXMgYnJ1dGVzIChwb3N0c2NyaXB0KSBhdmVjIHh4ZCBcLXIKK1wtcCBuZSBk6XBlbmQgcGFzIGQndW4gbm9tYnJlIGNvcnJlY3QgZGUgY29sb25uZXMuIERhbnMgY2UgY2FzLCB0b3V0IGNlIHF1aQorcmVzc2VtYmxlIOAgdW5lIHBhaXJlIGRlIGNoaWZmcmVzIGhleGFk6WNpbWF1eCBlc3QgaW50ZXJwcul06S4KKy5QUAorUmVtYXJxdWV6IGxhIGRpZmbpcmVuY2UgZW50cmUKKy5icgorXGZJJSB4eGQgXC1pIGZpY2hpZXJcZlIKKy5icgorZXQKKy5icgorXGZJJSB4eGQgXC1pIFw8IGZpY2hpZXJcZlIKKy5QUAorLkkgeHhkIFwtcyBcK3NlZWsKK3BldXQgZGlmZulyZXIgZGUgCisuSSB4eGQgXC1zIHNlZWsKK1wsIGNhciBsc2VlaygyKSBlc3QgdXRpbGlz6SBwb3VyIKsgcmV2ZW5pciBlbiBhcnJp6HJlILsuIExlICcrJyBmYWl0IHVuZQorZGlmZulyZW5jZSBxdWFuZCBsYSBzb3VyY2UgZGVzIGRvbm7pZXMgZXN0IGwnZW50cullIHN0YW5kYXJkIGV0IHNpIGxhIHBvc2l0aW9uCitkYW5zIGxlIGZpY2hpZXIgZGUgbCdlbnRy6WUgc3RhbmRhcmQgbidlc3QgcGFzIGF1IGTpYnV0IGR1IGZpY2hpZXIgbG9yc3F1ZSB4eGQKK2VzdCBk6W1hcnLpIGV0IHF1J2lsIHJl529pdCBzZXMgZG9ubullcy4KK0wnZXhlbXBsZSBzdWl2YW50IHBldXQgdm91cyBhaWRlciDgIGNvbXByZW5kcmUgKG91IGJpZW4gdm91cyBwZXJkcmUgZGF2YW50YWdlCitlbmNvcmUgISkuLi4KKy5QUAorUmVtZXR0cmUgbCdlbnRy6WUgc3RhbmRhcmQgYXUgZOlwYXJ0IGF2YW50IGRlIGxpcmUgOyBu6WNlc3NhaXJlIGNhciAnY2F0JyBhCitk6WrgIGx1IGp1c3F1J+AgbGEgZmluIGRlIGwnZW50cullIHN0YW5kYXJkLgorLmJyCitcZkklIHNoIFwtYyAnY2F0ID4gZG9ubmVlc19iaW5haXJlczsgeHhkIFwtcyAwID4gZG9ubmVlc19oZXhhJyA8IGZpY2hpZXJcZlIKKy5QUAorQ29udmVydGlyIOAgcGFydGlyIGRlIGxhIHBvc2l0aW9uIDB4NDgwICg9IDEwMjQgKyAxMjgpIGR1IGZpY2hpZXIuCitMZSBzeW1ib2xlICcrJyBzaWduaWZpZSAicmVsYXRpdmVtZW50IOAgbGEgcG9zaXRpb24gYWN0dWVsbGUnLCBhaW5zaSAxMjggZXN0Citham91dOkgYXV4IDEwMjQgb2N0ZXRzIGNvbXB0YWJpbGlz6XMgcG91ciBkZC4KKy5icgorXGZJJSBzaCBcLWMgJ2RkIG9mPWRvbm5lZXNfYmluYWlyZXMgYnM9MWsgY291bnQ9MTsgeHhkIFwtcyArMTI4ID4KK2Rvbm5lZXNfaGV4YScgPCBmaWNoaWVyXGZSCisuUFAKK0NvbnZlcnRpciBkZSBmaWNoaWVyIGRlcHVpcyBsYSBwb3NpdGlvbiAweDEwMCAoPSAxMDI0IC0gNzY4KSBkdSBmaWNoaWVyLgorLmJyCitcZkklIHNoIFwtYyAnZGQgb2Y9ZG9ubmVlc19iaW5haXJlcyBicz0xayBjb3VudD0xOyB4eGQgXC1zICtcLTc2OCA+Citkb25uZWVzX2hleGEnIDwgZmljaGllclxmUgorLlBQCitUb3V0ZWZvaXMsIGNldHRlIHNpdHVhdGlvbiBlc3QgcGV1IGZy6XF1ZW50ZSBldCBsJ3V0aWxpc2F0aW9uIGRlICcrJyBlc3QKK3JhcmVtZW50IHJlcXVpc2UuIEwnYXV0ZXVyIHBy6WbocmUgc3VydmVpbGxlciBsZXMgZWZmZXRzIGRlIHh4ZCBhdmVjIHN0cmFjZSgxKQorb3UgdHJ1c3MoMSkgcXVhbmQgXC1zIGVzdCBlbXBsb3npLgorLlNIIEVYRU1QTEVTCitBZmZpY2hlciBsYSB0b3RhbGl06SBkdQorLkIgZmljaGllcgorc2F1ZiBsZXMgdHJvaXMgcHJlbWnocmVzIGxpZ25lcyAoMHgzMCBvY3RldHMgZW4gaGV4YWTpY2ltYWwpLgorLmJyCitcZkklIHh4ZCBcLXMgMHgzMCBmaWNoaWVyXGZSCisuUFAKK2FmZmljaGVyIGxlcyB0cm9pcyBkZXJuaehyZXMgbGlnbmVzICgweDMwIG9jdGV0cyBlbiBoZXhhZOljaW1hbCkgZHUKKy5CIGZpY2hpZXIKK1wuCisuYnIKK1xmSSUgeHhkIFwtcyBcLTB4MzAgZmljaGllclxmUgorLlBQCisuYnIKK0FmZmljaGVyIDEyMCBvY3RldHMgY29udmVydGlzIGVuIGNvbnRpbnUsIGF2ZWMgMjAgb2N0ZXRzIHBhciBsaWduZS4KKy5icgorXGZJJSB4eGQgXC1sIDEyMCBcLXBzIFwtYyAyMCB4eGRcLWZyLjFcZlIKKy5icgorMmU1NDQ4MjA1ODU4NDQyMDMxMjAyMjYxNmZmYjc0MjAzMTM5MzkzNgorLmJyCisyMjIwMjI1MDYxNjc2NTIwNjQ2NTIwNmQ2MTZlNzU2NTZjMjA3MDZmCisuYnIKKzc1NzIyMDc4Nzg2NDIyMGEyZTVjMjIwYTJlNWMyMjIwMzIzMTczNzQKKy5icgorMjA0ZDYxNzkyMDMxMzkzOTM2MGEyZTVjMjIyMDRkNjE2ZTIwNzA2MQorLmJyCis2NzY1MjA2MTc1NzQ2ODZmNzIzYTBhMmU1YzIyMjAyMDIwMjA1NDZmCisuYnIKKzZlNzkyMDRlNzU2NzY1NmU3NDIwM2M3NDZmNmU3OTQwNzM2Mzc0NmUKKy5icgorMjA0ZTc1Njc2NTZlNzQyMDNjNzQ2ZjZlNzk0MDczNjM3NDZlNzU2NworLmJyCisyZTU0NDgyMDU4NTg0NDIwMzEyMDIyNDE3NTY3NzU3Mzc0MjAzMTM5CisuUFAKK0NvbnZlcnRpciBsZXMgMTIwIHByZW1pZXJzIG9jdGV0cyBkZSBjZXR0ZSBwYWdlIGRlIG1hbnVlbCBhdmVjIDEyIG9jdGV0cyBwYXIKK2xpZ25lLgorLmJyCitcZkklIHh4ZCBcLWwgMTIwIFwtYyAxMiB4eGRcLWZyLjFcZlIKKy5icgorMDAwMDAwMDogMmU1NCA0ODIwIDU4NTggNDQyMCAzMTIwIDIyNjEgIC5USCBYWEQgMSAiYQorLmJyCiswMDAwMDBjOiA2ZmZiIDc0MjAgMzEzOSAzOTM2IDIyMjAgMjI1MCAgby50IDE5OTYiICJQCisuYnIKKzAwMDAwMTg6IDYxNjcgNjUyMCA2NDY1IDIwNmQgNjE2ZSA3NTY1ICBhZ2UgZGUgbWFudWUKKy5icgorMDAwMDAyNDogNmMyMCA3MDZmIDc1NzIgMjA3OCA3ODY0IDIyMGEgIGwgcG91ciB4eGQiLgorLmJyCiswMDAwMDMwOiAyZTVjIDIyMGEgMmU1YyAyMjIwIDMyMzEgNzM3NCAgLlwiLi5cIiAyMXN0CisuYnIKKzAwMDAwM2M6IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYwYSAyZTVjICAgTWF5IDE5OTYuLlwKKy5icgorMDAwMDA0ODogMjIyMCA0ZDYxIDZlMjAgNzA2MSA2NzY1IDIwNjEgICIgTWFuIHBhZ2UgYQorLmJyCiswMDAwMDU0OiA3NTc0IDY4NmYgNzIzYSAwYTJlIDVjMjIgMjAyMCAgdXRob3I6Li5cIgorLmJyCiswMDAwMDYwOiAyMDIwIDU0NmYgNmU3OSAyMDRlIDc1NjcgNjU2ZSAgICBUb255IE51Z2VuCisuYnIKKzAwMDAwNmM6IDc0MjAgM2M3NCA2ZjZlIDc5NDAgNzM2MyA3NDZlICB0IDx0b255QHNjdG4KKy5QUAorQWZmaWNoZXIgbGEgZGF0ZSDpY3JpdGUgYXUgZOlidXQgZHUgZmljaGllciB4eGRcLWZyLjEuCisuYnIKK1xmSSUgeHhkIFwtcyAweDM4IFwtbCAxMyBcLWMgMTMgeHhkLjFcZlIKKy5icgorMDAwMDAzNjogMzIzMSA3Mzc0IDIwNGQgNjE3OSAyMDMxIDM5MzkgMzYgIDIxc3QgTWF5IDE5OTYKKy5QUAorQ29waWVyCisuQiBmaWNoaWVyX2VudHJlZQordmVycworLkIgZmljaGllcl9zb3J0aWUKK2VuIGFqb3V0YW50IDEwMCBvY3RldHMgZGUgdmFsZXVyIDB4MDAgYXZhbnQuCisuYnIKK1xmSSUgeHhkIGZpY2hpZXJfZW50cmVlIHwgeHhkIFwtciBcLXMgMTAwIFw+IGZpY2hpZXJfc29ydGllXGZSCisuUFAKK1BhdGNoZXIgbGEgZGF0ZSBkYW5zIGxlIGZpY2hpZXIgeHhkLjEKKy5icgorXGZJJSBlY2hvICcwMDAwMDM3OiAzNTc0IDY4JyB8IHh4ZCBcLXIgXC0geHhkXC1mci4xXGZSCisuYnIKK1xmSSUgeHhkIFwtcyAweDM4IFwtbCAxMyBcLWMgMTMgeHhkXC1mci4xXGZSCisuYnIKKzAwMDAwMzY6IDMyMzUgNzQ2OCAyMDRkIDYxNzkgMjAzMSAzOTM5IDM2ICAyNXRoIE1heSAxOTk2CisuUFAKK0Ny6WVyIHVuIGZpY2hpZXIgZGUgNjU1Mzcgb2N0ZXRzIHRvdXMgbnVscyAoMHgwMCksCitzYXVmIGxlIGRlcm5pZXIgcXVpIHZhdXQgJ0EnICgweDQxIGVuIGhleGFk6WNpbWFsKS4KKy5icgorXGZJJSBlY2hvICcwMTAwMDA6IDQxJyB8IHh4ZCBcLXIgXD4gZmljaGllclxmUgorLlBQCisuYnIKK0NvbnZlcnRpciBsZSBmaWNoaWVyIGRlIGwnZXhlbXBsZSBwculj6WRlbnQgYXZlYyBsYSBmb25jdGlvbm5hbGl06SAiYXV0b3NraXAiLgorLmJyCitcZkklIHh4ZCBcLWEgXC1jIDEyIGZpY2hpZXJcZlIKKy5icgorMDAwMDAwMDogMDAwMCAwMDAwIDAwMDAgMDAwMCAwMDAwIDAwMDAgIC4uLi4uLi4uLi4uLgorLmJyCisqCisuYnIKKzAwMGZmZmM6IDAwMDAgMDAwMCA0MCAgICAgICAgICAgICAgICAgICAuLi4uQQorLlBQCitDcullciB1biBmaWNoaWVyIGQndW4gb2N0ZXQsIGNvbnRlbmFudCBzZXVsZW1lbnQgbGUgY2FyYWN06HJlICdBJy4KK0xlcyBub21icmVzIGFwcuhzICdcLXIgXC1zJyBzJ2Fqb3V0ZW50IGF1IG51belyb3MgZGUgbGlnbmVzIHRyb3V26WVzIGRhbnMgbGUKK2ZpY2hpZXIgOyBYWFggaW4gZWZmZWN0cywgbGVzIG9jdGV0cyBpbml0aWF1eCBzb250IHN1cHByaW3pcy4KKy5icgorXGZJJSBlY2hvICcwMTAwMDA6IDQxJyB8IHh4ZCBcLXIgXC1zIFwtMHgxMDAwMCBcPiBmaWNoaWVyXGZSCisuUFAKK1V0aWxpc2VyIHh4ZCBjb21tZSBmaWx0cmUgZGFucyB1biDpZGl0ZXVyIHRlbCBxdWUKKy5CIHZpbSgxKQorcG91ciBjb252ZXJ0aXIgdW5lIHpvbmUgY29tcHJpc2UgZW50cmUgbGVzIG1hcnF1ZXMgJ2EnIGV0ICd6Jy4KKy5icgorXGZJOidhLCd6IXh4ZFxmUgorLlBQCitVdGlsaXNlciB4eGQgY29tbWUgZmlsdHJlIGRhbnMgdW4g6WRpdGV1ciB0ZWwgcXVlCisuQiB2aW0oMSkKK3BvdXIgculjdXDpcmVyIHVuZSBjb252ZXJzaW9uIGJpbmFpcmUgY29tcHJpc2UgZW50cmUgbGVzIG1hcnF1ZXMgJ2EnIGV0ICd6Jy4KKy5icgorXGZJOidhLCd6IXh4ZCBcLXJcZlIKKy5QUAorVXRpbGlzZXIgeHhkIGNvbW1lIGZpbHRyZSBkYW5zIHVuIOlkaXRldXIgdGVsIHF1ZQorLkIgdmltKDEpCitwb3VyIHLpY3Vw6XJlciB1bmUgbGlnbmUgY29udmVydGllLiBQbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgZXQgdGFwZXogOgorLmJyCitcZkkhIXh4ZCBcLXJcZlIKKy5QUAorTGlyZSBkZXMgY2FyYWN06HJlcyBkZXB1aXMgdW5lIGNvbm5leGlvbiBz6XJpZSA6CisuYnIKK1xmSSUgeHhkIFwtYzEgPCAvZGV2L3Rlcm0vYiAmXGZSCisuYnIKK1xmSSUgc3R0eSA8IC9kZXYvdGVybS9iIFwtZWNobyBcLW9wb3N0IFwtaXNpZyBcLWljYW5vbiBtaW4gMVxmUgorLmJyCitcZkklIGVjaG8gXC1uIGZvbyA+IC9kZXYvdGVybS9iXGZSCisuU0ggVkFMRVVSUyBERSBSRVRPVVIKK0xlcyBlcnJldXJzIHN1aXZhbnRlcyBzb250IHJhcHBvcnTpZXMgOgorLlRQCiswCithdWN1bmUgZXJyZXVyIG5lIHMnZXN0IHByb2R1aXQuCisuVFAKK1wtMQorb3DpcmF0aW9uIG5vbiBzdXBwb3J06WUgKAorLkkgeHhkIFwtciBcLWkKK3Jlc3RlIGltcG9zc2libGUpLgorLlRQCisxCitlcnJldXIgbG9ycyBkZSBsJ2FuYWx5c2UgZGVzIG9wdGlvbnMuCisuVFAKKzIKK3Byb2Js6G1lIGF2ZWMgbGUgZmljaGllciBkJ2VudHLpZS4KKy5UUAorMworcHJvYmzobWUgYXZlYyBsZSBmaWNoaWVyIGRlIHNvcnRpZS4KKy5UUAorNCwgNQorbGEgcG9zaXRpb24gc3DpY2lmaellIG4nZXN0IHBhcyBhdHRlaWduYWJsZS4KKy5TSCBWT0lSIEFVU1NJCit1dWVuY29kZSgxKSwgdXVkZWNvZGUoMSksIHBhdGNoKDEpCisuU0ggQVZFUlRJU1NFTUVOVFMKK0wn6XRyYW5nZXTpIGRlIGNldCBvdXRpbCByZWZs6HRlIGNlbGxlIGR1IGNlcnZlYXUgZGUgc2VzIGNy6WF0ZXVycy4KK1V0aWxpc2V6IGNldCBvdXRpbCDgIHZvcyByaXNxdWVzIGV0IHDpcmlscy4gRHVwbGlxdWV6IHZvcyBmaWNoaWVycy4KK1N1cnZlaWxsZXogbCdvdXRpbC4gRGV2ZW5leiB1biBnb3Vyb3UuCisuU0ggVkVSU0lPTgorQ2V0dGUgcGFnZSBkZSBtYW51ZWwgZG9jdW1lbnRlIGxhIHZlcnNpb24gMS43IGRlIHh4ZC4KKy5TSCBBVVRFVVIKKyhjKSAxOTkwLTE5OTcgcGFyIEp1ZXJnZW4gV2VpZ2VydAorLmJyCis8am53ZWlnZXJAaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CisuTFAKKyJEaXN0cmlidXRlIGZyZWVseSBhbmQgY3JlZGl0IG1lLAorLmJyCittYWtlIG1vbmV5IGFuZCBzaGFyZSB3aXRoIG1lLAorLmJyCitsb3NlIG1vbmV5IGFuZCBkb24ndCBhc2sgbWUuIgorLlBQCitEaXN0cmlidXRpb24gbGlicmUgZW4gY2l0YW50IGwnYXV0ZXVyLAorLmJyCitnYWduZXogZGUgbCdhcmdlbnQsIHBlbnNleiDgIG1vaSwKKy5icgorcGVyZGV6IGRlIGwnYXJnZW50LCBvdWJsaWV6LW1vaS4KKy5QUAorUGFnZSBkZSBtYW51ZWwgZOlidXTpZSBwYXIgVG9ueSBOdWdlbnQKKy5icgorPHRvbnlAc2N0bnVnZW4ucHBwLmd1LmVkdS5hdT4gPFQuTnVnZW50QHNjdC5ndS5lZHUuYXU+CisuYnIKK01vZGlmaWNhdGlvbnMgbWluZXVyZXMgcGFyIEJyYW0gTW9vbGVuYWFyLgoryWRpdOkgcGFyIEp1ZXJnZW4gV2VpZ2VydC4KKy5TSCBUUkFEVUNUSU9OCitDZXR0ZSBwYWdlIGRlIG1hbnVlbCBhIOl06SB0cmFkdWl0ZSBwYXIgRGF2aWQgQmxhbmNoZXQKKzxkYXZpZC5ibGFuY2hldEBmcmVlLmZyPiAyMDA0LTEyLTI0LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9SRUFETUUudHh0IGIvcnVudGltZS9zcGVsbC9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNTZhY2MKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL1JFQURNRS50eHQKQEAgLTAsMCArMSw5MzUgQEAKK1RoZSBzcGVsbCBmaWxlcyBpbmNsdWRlZCBoZXJlIGFyZSBpbiBWaW0ncyBzcGVjaWFsIGZvcm1hdC4gIFlvdSBjYW4ndCBlZGl0Cit0aGVtLiAgU2VlICI6aGVscCBzcGVsbCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKworQ29weXJpZ2h0CisKK1RoZSBmaWxlcyB1c2VkIGFzIGlucHV0IGZvciB0aGUgc3BlbGwgZmlsZXMgY29tZSBmcm9tIHRoZSBPcGVuT2ZmaWNlLm9yZyBzcGVsbAorZmlsZXMuICBNb3N0IG9mIHRoZW0gZ28gdW5kZXIgdGhlIExHUEwgb3IgYSBzaW1pbGFyIGxpY2Vuc2UuCisKK0NvcHlyaWdodCBub3RpY2VzIGZvciBzcGVjaWZpYyBsYW5ndWFnZXMgZm9sbG93LiAgTm90ZSB0aGF0IHRoZSBmaWxlcyBmb3IKK2RpZmZlcmVudCByZWdpb25zIGFyZSBtZXJnZWQsIGJvdGggdG8gc2F2ZSBzcGFjZSBhbmQgdG8gbWFrZSBpdCBwb3NzaWJsZSB0bworaGlnaGxpZ2h0IHdvcmRzIGZvciBhbm90aGVyIHJlZ2lvbiBkaWZmZXJlbnQgZnJvbSBiYWQgd29yZHMuCisKKy09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCitlbl9VUworCisyMDA0MDYyMyByZWxlYXNlLgorLS0KK1RoaXMgZGljdGlvbmFyeSBpcyBiYXNlZCBvbiBhIHN1YnNldCBvZiB0aGUgb3JpZ2luYWwKK0VuZ2xpc2ggd29yZGxpc3QgY3JlYXRlZCBieSBLZXZpbiBBdGtpbnNvbiBmb3IgUHNwZWxsIAorYW5kICBBc3BlbGwgYW5kIHRodXMgaXMgY292ZXJlZCBieSBoaXMgb3JpZ2luYWwgCitMR1BMIGxpY2Vuc2UuICBUaGUgYWZmaXggZmlsZSBpcyBhIGhlYXZpbHkgbW9kaWZpZWQKK3ZlcnNpb24gb2YgdGhlIG9yaWdpbmFsIGVuZ2xpc2guYWZmIGZpbGUgd2hpY2ggd2FzCityZWxlYXNlZCBhcyBwYXJ0IG9mIEdlb2ZmIEt1ZW5uaW5nJ3MgSXNwZWxsIGFuZCBhcyAKK3N1Y2ggaXMgY292ZXJlZCBieSBoaXMgQlNEIGxpY2Vuc2UuCisKK1RoYW5rcyB0byBib3RoIGF1dGhvcnMgZm9yIHRoZXJlIHdvbmRlcmZ1bCB3b3JrLgorCistPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQorZW5fQVUKKworVGhpcyBkaWN0aW9uYXJ5IHdhcyBiYXNlZCBvbiB0aGUgZW5fR0IgTXlzcGVsbCBkaWN0aW9uYXJ5IAord2hpY2ggaW4gdHVybiB3YXMgaW5pdGlhbGx5IGJhc2VkIG9uIGEgc3Vic2V0IG9mIHRoZSAKK29yaWdpbmFsIEVuZ2xpc2ggd29yZGxpc3QgY3JlYXRlZCBieSBLZXZpbiBBdGtpbnNvbiBmb3IgCitQc3BlbGwgYW5kICBBc3BlbGwgYW5kIHRodXMgaXMgY292ZXJlZCBieSBoaXMgb3JpZ2luYWwgCitMR1BMIGxpY2VuY2UuIAorCitUaGUgY3JlZGl0IGZvciB0aGlzIGVuX0FVIGRpY3Rpb25hcnkgZ29lcyB0bzoKKworS2VsdmluIEVsZHJpZGdlIChtYWludGFpbmVyKQorSmVhbiBIb2xsaXMgV2ViZXIKK0RhdmlkIFdpbHNvbgorCistIFdvcmRzIGluY29ycmVjdCBpbiBBdXN0cmFsaWFuIEVuZ2xpc2ggcmVtb3ZlZAorLSBhIGxpc3QgZnJvbSB0aGUgcHJldmlvdXNseSByZW1vdmVkIHdvcmRzIHdpdGggY29ycmVjdGVkIHNwZWxsaW5nIHdhcyBhZGRlZAorLSBhIGxpc3Qgb2YgbWFqb3Igcml2ZXJzIHdhcyBhZGRlZAorLSBhIGxpc3Qgb2YgcGxhY2UgbmFtZXMgd2FzIGFkZGVkCistIGEgbGlzdCBvZiBBdXN0cmFsaWFuIG1hbW1hbHMgd2FzIGFkZGVkIAorLSBhIGxpc3Qgb2YgQWJvcmlnaW5hbC9Lb29yaSB3b3JkcyBjb21tb25seSB1c2VkIHdhcyBhZGRlZAorCitBIHRvdGFsIG9mIDExOSwyNjcgd29yZHMgYXJlIG5vdyByZWNvZ25pemVkIAorYnkgdGhlIGRpY3Rpb25hcnkuCisKK09mIGNvdXJzZSwgc3BlY2lhbCB0aGFua3MgZ28gdG8gdGhlIGVkaXRvcnMgb2YgdGhlIAorZW5fR0IgZGljdGlvbmFyeSAoRGF2aWQgQmFydGxldHQsIEJyaWFuIEtlbGsgYW5kIAorQW5kcmV3IEJyb3duKSB3aGljaCBwcm92aWRlZCB0aGUgc3RhcnRpbmcgcG9pbnQKK2ZvciB0aGlzIGRpY3Rpb25hcnkuCisKK1RoZSBhZmZpeCBmaWxlIGlzIGN1cnJlbnRseSBhIGR1cGxpY2F0ZSBvZiB0aGUgZW5fQVUuYWZmCitjcmVhdGVkIGNvbXBsZXRlbHkgZnJvbSBzY3JhdGNoIGJ5IERhdmlkIEJhcnRsZXR0IGFuZCAKK0FuZHJldyBCcm93biwgYmFzZWQgb24gdGhlIHB1Ymxpc2hlZCAKK3J1bGVzIGZvciBNeVNwZWxsIGFuZCBpcyBhbHNvIHByb3ZpZGVkIHVuZGVyIHRoZSBMR1BMLgorCitJZiB5b3UgZmluZCBvbWlzc2lvbnMgb3IgYnVncyBvciBoYXZlIG5ldyB3b3JkcyB0byAKK2FkZCB0byB0aGUgZGljdGlvbmFyeSwgcGxlYXNlIGNvbnRhY3QgdGhlIGVuX0FVIAorbWFpbnRhaW5lciBhdDoKKworICJLZWx2aW4iIDxhdWRpY3Rpb25hcnlAb25saW5lY29ubmVjdGlvbnMuY29tLmF1PgorCistPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQorZW5fQ0EKKworVGhlIGRpY3Rpb25hcnkgZmlsZSB3YXMgY3JlYXRlZCB1c2luZyB0aGUgImZpbmFsIiBFbmdsaXNoIGFuZCBDYW5hZGlhbiBTQ09XTAorKFNwZWxsIENoZWNrZXIgT3JpZW50ZWQgV29yZCBMaXN0cykgd29yZGxpc3RzIGF2YWlsYWJsZSBhdCBLZXZpbidzIFdvcmQgTGlzdHMKK1BhZ2UgKGh0dHA6Ly93b3JkbGlzdC5zb3VyY2Vmb3JnZS5uZXQpLiBMaXN0cyB3aXRoIHRoZSBzdWZmaXhlcyAxMCwgMjAsIDM1LAorNTAsIDY1IGFuZCA2NSB3ZXJlIHVzZWQuIExpc3RzIHdpdGggdGhlIHN1ZmZpeGVzIDcwLCA4MCBhbmQgOTUgd2VyZSBleGNsdWRlZC4KK0NvcHlyaWdodCBpbmZvcm1hdGlvbiBmb3IgU0NPV0wgYW5kIHRoZSB3b3JkbGlzdHMgdXNlZCBpbiBjcmVhdGluZyBpdCBpcworcmVwcm9kdWNlZCBiZWxvdy4KKworVGhlIGFmZml4IGZpbGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBNeVNwZWxsIEVuZ2xpc2ggKFVuaXRlZCBTdGF0ZXMpIGFmZml4IGZpbGUuCitJdCBpcyBhIGhlYXZpbHkgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgb3JpZ2luYWwgZW5nbGlzaC5hZmYgZmlsZSB3aGljaCB3YXMKK3JlbGVhc2VkIGFzIHBhcnQgb2YgR2VvZmYgS3Vlbm5pbmcncyBJc3BlbGwgYW5kIGFzIHN1Y2ggaXMgY292ZXJlZCBieSBoaXMgQlNECitsaWNlbnNlLgorCistLS0KKworQ09QWVJJR0hULCBTT1VSQ0VTLCBhbmQgQ1JFRElUUyBmcm9tIFNDT1dMIHJlYWRtZSBmaWxlOgorCitUaGUgY29sbGVjdGl2ZSB3b3JrIGlzIENvcHlyaWdodCAyMDAwIGJ5IEtldmluIEF0a2luc29uIGFzIHdlbGwgYXMgYW55CitvZiB0aGUgY29weXJpZ2h0cyBtZW50aW9uZWQgYmVsb3c6CisKKyAgQ29weXJpZ2h0IDIwMDAgYnkgS2V2aW4gQXRraW5zb24KKworICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBkaXN0cmlidXRlIGFuZCBzZWxsIHRoZXNlIHdvcmQKKyAgbGlzdHMsIHRoZSBhc3NvY2lhdGVkIHNjcmlwdHMsIHRoZSBvdXRwdXQgY3JlYXRlZCBmcm9tIHRoZSBzY3JpcHRzLAorICBhbmQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLAorICBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhcnMgaW4gYWxsIGNvcGllcyBhbmQKKyAgdGhhdCBib3RoIHRoYXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KKyAgc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLiBLZXZpbiBBdGtpbnNvbiBtYWtlcyBubyByZXByZXNlbnRhdGlvbnMKKyAgYWJvdXQgdGhlIHN1aXRhYmlsaXR5IG9mIHRoaXMgYXJyYXkgZm9yIGFueSBwdXJwb3NlLiBJdCBpcyBwcm92aWRlZAorICAiYXMgaXMiIHdpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkIHdhcnJhbnR5LgorCitBbGFuIEJlYWxlIDxiaWxqaXJAcG9ib3guY29tPiBhbHNvIGRlc2VydmVzIHNwZWNpYWwgY3JlZGl0IGFzIGhlIGhhcywKK2luIGFkZGl0aW9uIHRvIHByb3ZpZGluZyB0aGUgMTJEaWN0cyBwYWNrYWdlIGFuZCBiZWluZyBhIG1ham9yCitjb250cmlidXRvciB0byB0aGUgRU5BQkxFIHdvcmQgbGlzdCwgZ2l2ZW4gbWUgYW4gaW5jcmVkaWJsZSBhbW91bnQgb2YKK2ZlZWRiYWNrIGFuZCBjcmVhdGVkIGEgbnVtYmVyIG9mIHNwZWNpYWwgbGlzdHMgKHRob3NlIGZvdW5kIGluIHRoZQorU3VwcGxlbWVudCkgaW4gb3JkZXIgdG8gaGVscCBpbXByb3ZlIHRoZSBvdmVyYWxsIHF1YWxpdHkgb2YgU0NPV0wuCisKK1RoZSAxMCBsZXZlbCBpbmNsdWRlcyB0aGUgMTAwMCBtb3N0IGNvbW1vbiBFbmdsaXNoIHdvcmRzIChhY2NvcmRpbmcgdG8KK3RoZSBNb2J5IChUTSkgV29yZHMgSUkgW01Xb3Jkc10gcGFja2FnZSksIGEgc3Vic2V0IG9mIHRoZSAxMDAwIG1vc3QKK2NvbW1vbiB3b3JkcyBvbiB0aGUgSW50ZXJuZXQgKGFnYWluLCBhY2NvcmRpbmcgdG8gTW9ieSBXb3JkcyBJSSksIGFuZAorZnJlcXVlbnRseSBjbGFzcyAxNiBmcm9tIEJyaWFuIEtlbGsncyAiVUsgRW5nbGlzaCBXb3JkbGlzdAord2l0aCBGcmVxdWVuY3kgQ2xhc3NpZmljYXRpb24iLgorCitUaGUgTVdvcmRzIHBhY2thZ2Ugd2FzIGV4cGxpY2l0bHkgcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluOgorCisgICAgVGhlIE1vYnkgbGV4aWNvbiBwcm9qZWN0IGlzIGNvbXBsZXRlIGFuZCBoYXMKKyAgICBiZWVuIHBsYWNlIGludG8gdGhlIHB1YmxpYyBkb21haW4uIFVzZSwgc2VsbCwKKyAgICByZXdvcmssIGV4Y2VycHQgYW5kIHVzZSBpbiBhbnkgd2F5IG9uIGFueSBwbGF0Zm9ybS4KKworICAgIFBsYWNpbmcgdGhpcyBtYXRlcmlhbCBvbiBpbnRlcm5hbCBvciBwdWJsaWMgc2VydmVycyBpcworICAgIGFsc28gZW5jb3VyYWdlZC4gVGhlIGNvbXBpbGVyIGlzIG5vdCBhd2FyZSBvZiBhbnkKKyAgICBleHBvcnQgcmVzdHJpY3Rpb25zIHNvIGZyZWVseSBkaXN0cmlidXRlIHdvcmxkLXdpZGUuCisKKyAgICBZb3UgY2FuIHZlcmlmeSB0aGUgcHVibGljIGRvbWFpbiBzdGF0dXMgYnkgY29udGFjdGluZworCisgICAgR3JhZHkgV2FyZAorICAgIDM0NDkgTWFydGhhIEN0LgorICAgIEFyY2F0YSwgQ0EgIDk1NTIxLTQ4ODQKKworICAgIGdyYWR5QG5ldGNvbS5jb20KKyAgICBncmFkeUBub3J0aGNvYXN0LmNvbQorCitUaGUgIlVLIEVuZ2xpc2ggV29yZGxpc3QgV2l0aCBGcmVxdWVuY3kgQ2xhc3NpZmljYXRpb24iIGlzIGFsc28gaW4gdGhlCitQdWJsaWMgRG9tYWluOgorCisgIERhdGU6IFNhdCwgMDggSnVsIDIwMDAgMjA6Mjc6MjEgKzAxMDAKKyAgRnJvbTogQnJpYW4gS2VsayA8QnJpYW4uS2Vsa0BjbC5jYW0uYWMudWs+CisKKz4gSSB3YXMgd29uZGVyaW5nIHdoYXQgdGhlIGNvcHlyaWdodCBzdGF0dXMgb2YgeW91ciAiVUsgRW5nbGlzaAorICA+IFdvcmRsaXN0IFdpdGggRnJlcXVlbmN5IENsYXNzaWZpY2F0aW9uIiB3b3JkIGxpc3QgYXMgaXQgc2VlbXMgdG8KKyAgPiBiZSBsYWNraW5nIGFueSBjb3B5cmlnaHQgbm90aWNlLgorCisgIFRoZXJlIHdlcmUgbWFueSBtYW55IHNvdXJjZXMgaW4gdG90YWwsIGJ1dCBhbnkgdGV4dCBtYXJrZWQKKyAgImNvcHlyaWdodCIgd2FzIGF2b2lkZWQuIExvY2FsbHktd3JpdHRlbiBkb2N1bWVudGF0aW9uIHdhcyBvbmUKKyAgc291cmNlLiBBbiBlYXJsaWVyIHZlcnNpb24gb2YgdGhlIGxpc3QgcmVzaWRlZCBpbiBhIGZpbGVzcGFjZSBjYWxsZWQKKyAgUFVCTElDIG9uIHRoZSBVbml2ZXJzaXR5IG1haW5mcmFtZSwgYmVjYXVzZSBpdCB3YXMgY29uc2lkZXJlZCBwdWJsaWMKKyAgZG9tYWluLgorCisgIERhdGU6IFR1ZSwgMTEgSnVsIDIwMDAgMTk6MzE6MzQgKzAxMDAKKworICA+IFNvIGFyZSB5b3Ugc2F5aW5nIHlvdXIgd29yZCBsaXN0IGlzIGFsc28gaW4gdGhlIHB1YmxpYyBkb21haW4/CisKKyAgVGhhdCBpcyB0aGUgaW50ZW50aW9uLgorCitUaGUgMjAgbGV2ZWwgaW5jbHVkZXMgZnJlcXVlbmN5IGNsYXNzZXMgNy0xNSBmcm9tIEJyaWFuJ3Mgd29yZCBsaXN0LgorCitUaGUgMzUgbGV2ZWwgaW5jbHVkZXMgZnJlcXVlbmN5IGNsYXNzZXMgMi02IGFuZCB3b3JkcyBhcHBlYXJpbmcgaW4gYXQKK2xlYXN0IDExIG9mIDEyIGRpY3Rpb25hcmllcyBhcyBpbmRpY2F0ZWQgaW4gdGhlIDEyRGljdHMgcGFja2FnZS4gIEFsbAord29yZHMgZnJvbSB0aGUgMTJEaWN0cyBwYWNrYWdlIGhhdmUgaGFkIGxpa2VseSBpbmZsZWN0aW9ucyBhZGRlZCB2aWEKK215IGluZmxlY3Rpb24gZGF0YWJhc2UuCisKK1RoZSAxMkRpY3RzIHBhY2thZ2UgYW5kIFN1cHBsZW1lbnQgaXMgaW4gdGhlIFB1YmxpYyBEb21haW4uCisKK1RoZSBXb3JkTmV0IGRhdGFiYXNlLCB3aGljaCB3YXMgdXNlZCBpbiB0aGUgY3JlYXRpb24gb2YgdGhlCitJbmZsZWN0aW9ucyBkYXRhYmFzZSwgaXMgdW5kZXIgdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQ6CisKKyAgVGhpcyBzb2Z0d2FyZSBhbmQgZGF0YWJhc2UgaXMgYmVpbmcgcHJvdmlkZWQgdG8geW91LCB0aGUgTElDRU5TRUUsCisgIGJ5IFByaW5jZXRvbiBVbml2ZXJzaXR5IHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4gIEJ5IG9idGFpbmluZywKKyAgdXNpbmcgYW5kL29yIGNvcHlpbmcgdGhpcyBzb2Z0d2FyZSBhbmQgZGF0YWJhc2UsIHlvdSBhZ3JlZSB0aGF0IHlvdQorICBoYXZlIHJlYWQsIHVuZGVyc3Rvb2QsIGFuZCB3aWxsIGNvbXBseSB3aXRoIHRoZXNlIHRlcm1zIGFuZAorICBjb25kaXRpb25zLjoKKworICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5IGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgYW5kCisgIGRhdGFiYXNlIGFuZCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIG9yCisgIHJveWFsdHkgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgeW91IGFncmVlIHRvIGNvbXBseSB3aXRoCisgIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0IG5vdGljZSBhbmQgc3RhdGVtZW50cywgaW5jbHVkaW5nIHRoZQorICBkaXNjbGFpbWVyLCBhbmQgdGhhdCB0aGUgc2FtZSBhcHBlYXIgb24gQUxMIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsCisgIGRhdGFiYXNlIGFuZCBkb2N1bWVudGF0aW9uLCBpbmNsdWRpbmcgbW9kaWZpY2F0aW9ucyB0aGF0IHlvdSBtYWtlCisgIGZvciBpbnRlcm5hbCB1c2Ugb3IgZm9yIGRpc3RyaWJ1dGlvbi4KKworICBXb3JkTmV0IDEuNiBDb3B5cmlnaHQgMTk5NyBieSBQcmluY2V0b24gVW5pdmVyc2l0eS4gIEFsbCByaWdodHMKKyAgcmVzZXJ2ZWQuCisKKyAgVEhJUyBTT0ZUV0FSRSBBTkQgREFUQUJBU0UgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgUFJJTkNFVE9OCisgIFVOSVZFUlNJVFkgTUFLRVMgTk8gUkVQUkVTRU5UQVRJT05TIE9SIFdBUlJBTlRJRVMsIEVYUFJFU1MgT1IKKyAgSU1QTElFRC4gIEJZIFdBWSBPRiBFWEFNUExFLCBCVVQgTk9UIExJTUlUQVRJT04sIFBSSU5DRVRPTgorICBVTklWRVJTSVRZIE1BS0VTIE5PIFJFUFJFU0VOVEFUSU9OUyBPUiBXQVJSQU5USUVTIE9GIE1FUkNIQU5ULQorICBBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEFOWSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgVEhBVCBUSEUgVVNFIE9GIFRIRQorICBMSUNFTlNFRCBTT0ZUV0FSRSwgREFUQUJBU0UgT1IgRE9DVU1FTlRBVElPTiBXSUxMIE5PVCBJTkZSSU5HRSBBTlkKKyAgVEhJUkQgUEFSVFkgUEFURU5UUywgQ09QWVJJR0hUUywgVFJBREVNQVJLUyBPUiBPVEhFUiBSSUdIVFMuCisKKyAgVGhlIG5hbWUgb2YgUHJpbmNldG9uIFVuaXZlcnNpdHkgb3IgUHJpbmNldG9uIG1heSBub3QgYmUgdXNlZCBpbgorICBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlCisgIGFuZC9vciBkYXRhYmFzZS4gIFRpdGxlIHRvIGNvcHlyaWdodCBpbiB0aGlzIHNvZnR3YXJlLCBkYXRhYmFzZSBhbmQKKyAgYW55IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBzaGFsbCBhdCBhbGwgdGltZXMgcmVtYWluIHdpdGgKKyAgUHJpbmNldG9uIFVuaXZlcnNpdHkgYW5kIExJQ0VOU0VFIGFncmVlcyB0byBwcmVzZXJ2ZSBzYW1lLgorCitUaGUgNTAgbGV2ZWwgaW5jbHVkZXMgQnJpYW4ncyBmcmVxdWVuY3kgY2xhc3MgMSwgd29yZHMgd29yZHMgYXBwZWFyaW5nCitpbiBhdCBsZWFzdCA1IG9mIDEyIG9mIHRoZSBkaWN0aW9uYXJpZXMgYXMgaW5kaWNhdGVkIGluIHRoZSAxMkRpY3RzCitwYWNrYWdlLCBhbmQgdXBwZXJjYXNlIHdvcmRzIGluIGF0IGxlYXN0IDQgb2YgdGhlIHByZXZpb3VzIDEyCitkaWN0aW9uYXJpZXMuICBBIGRlY2VudCBudW1iZXIgb2YgcHJvcGVyIG5hbWVzIGlzIGFsc28gaW5jbHVkZWQ6IFRoZQordG9wIDEwMDAgbWFsZSwgZmVtYWxlLCBhbmQgTGFzdCBuYW1lcyBmcm9tIHRoZSAxOTkwIENlbnN1cyByZXBvcnQ7IGEKK2xpc3Qgb2YgbmFtZXMgc2VudCB0byBtZSBieSBBbGFuIEJlYWxlOyBhbmQgYSBmZXcgbmFtZXMgdGhhdCBJIGFkZGVkCitteXNlbGYuICBGaW5hbGx5IGEgc21hbGwgbGlzdCBvZiBhYmJyZXZpYXRpb25zIG5vdCBjb21tb25seSBmb3VuZCBpbgorb3RoZXIgd29yZCBsaXN0cyBpcyBpbmNsdWRlZC4KKworVGhlIG5hbWUgZmlsZXMgZm9ybSB0aGUgQ2Vuc3VzIHJlcG9ydCBpcyBhIGdvdmVybm1lbnQgZG9jdW1lbnQgd2hpY2ggSQorZG9uJ3QgdGhpbmsgY2FuIGJlIGNvcHlyaWdodGVkLgorCitUaGUgbmFtZSBsaXN0IGZyb20gQWxhbiBCZWFsZSBpcyBhbHNvIGRlcml2ZWQgZnJvbSB0aGUgbGludXggd29yZHMKK2xpc3QsIHdoaWNoIGlzIGRlcml2ZWQgZnJvbSB0aGUgREVDIGxpc3QuICBIZSBhbHNvIGFkZGVkIGEgYnVuY2ggb2YKK21pc2NlbGxhbmVvdXMgbmFtZXMgdG8gdGhlIGxpc3QsIHdoaWNoIGhlIHJlbGVhc2VkIHRvIHRoZSBQdWJsaWMgRG9tYWluLgorCitUaGUgREVDIFdvcmQgbGlzdCBkb2Vzbid0IGhhdmUgYSBmb3JtYWwgbmFtZS4gIEl0IGlzIGxhYmVsZWQgYXMgIkZJTEU6CitlbmdsaXNoLndvcmRzOyBWRVJTSU9OOiBERUMtU1JDLTkyLTA0LTA1IiBhbmQgd2FzIHB1dCB0b2dldGhlciBieSBKb3JnZQorU3RvbGZpIDxzdG9sZmlAc3JjLmRlYy5jb20+IERFQyBTeXN0ZW1zIFJlc2VhcmNoIENlbnRlci4gIFRoZSBERUMgV29yZAorbGlzdCBoYXMgdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQgc3RhdGVtZW50OgorCisgIChOT04tKUNPUFlSSUdIVCBTVEFUVVMKKworICBUbyB0aGUgYmVzdCBvZiBteSBrbm93bGVkZ2UsIGFsbCB0aGUgZmlsZXMgSSB1c2VkIHRvIGJ1aWxkIHRoZXNlCisgIHdvcmRsaXN0cyB3ZXJlIGF2YWlsYWJsZSBmb3IgcHVibGljIGRpc3RyaWJ1dGlvbiBhbmQgdXNlLCBhdCBsZWFzdAorICBmb3Igbm9uLWNvbW1lcmNpYWwgcHVycG9zZXMuICBJIGhhdmUgY29uZmlybWVkIHRoaXMgYXNzdW1wdGlvbiB3aXRoCisgIHRoZSBhdXRob3JzIG9mIHRoZSBsaXN0cywgd2hlbmV2ZXIgdGhleSB3ZXJlIGtub3duLgorCisgIFRoZXJlZm9yZSwgaXQgaXMgc2FmZSB0byBhc3N1bWUgdGhhdCB0aGUgd29yZGxpc3RzIGluIHRoaXMgcGFja2FnZQorICBjYW4gYWxzbyBiZSBmcmVlbHkgY29waWVkLCBkaXN0cmlidXRlZCwgbW9kaWZpZWQsIGFuZCB1c2VkIGZvcgorICBwZXJzb25hbCwgZWR1Y2F0aW9uYWwsIGFuZCByZXNlYXJjaCBwdXJwb3Nlcy4gIChVc2Ugb2YgdGhlc2UgZmlsZXMgaW4KKyAgY29tbWVyY2lhbCBwcm9kdWN0cyBtYXkgcmVxdWlyZSB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBERUMgYW5kL29yCisgIHRoZSBhdXRob3JzIG9mIHRoZSBvcmlnaW5hbCBsaXN0cy4pCisKKyAgV2hlbmV2ZXIgeW91IGRpc3RyaWJ1dGUgYW55IG9mIHRoZXNlIHdvcmRsaXN0cywgcGxlYXNlIGRpc3RyaWJ1dGUKKyAgYWxzbyB0aGUgYWNjb21wYW55aW5nIFJFQURNRSBmaWxlLiAgSWYgeW91IGRpc3RyaWJ1dGUgYSBtb2RpZmllZAorICBjb3B5IG9mIG9uZSBvZiB0aGVzZSB3b3JkbGlzdHMsIHBsZWFzZSBpbmNsdWRlIHRoZSBvcmlnaW5hbCBSRUFETUUKKyAgZmlsZSB3aXRoIGEgbm90ZSBleHBsYWluaW5nIHlvdXIgbW9kaWZpY2F0aW9ucy4gIFlvdXIgdXNlcnMgd2lsbAorICBzdXJlbHkgYXBwcmVjaWF0ZSB0aGF0LgorCisgIChOTy0pV0FSUkFOVFkgRElTQ0xBSU1FUgorCisgIFRoZXNlIGZpbGVzLCBsaWtlIHRoZSBvcmlnaW5hbCB3b3JkbGlzdHMgb24gd2hpY2ggdGhleSBhcmUgYmFzZWQsCisgIGFyZSBzdGlsbCB2ZXJ5IGluY29tcGxldGUsIHVuZXZlbiwgYW5kIGluY29uc2l0ZW50LCBhbmQgcHJvYmFibHkKKyAgY29udGFpbiBtYW55IGVycm9ycy4gIFRoZXkgYXJlIG9mZmVyZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eQorICBvZiBjb3JyZWN0bmVzcyBvciBmaXRuZXNzIGZvciBhbnkgcGFydGljdWxhciBwdXJwb3NlLiAgTmVpdGhlciBJIG5vcgorICBteSBlbXBsb3llciBjYW4gYmUgaGVsZCByZXNwb25zaWJsZSBmb3IgYW55IGxvc3NlcyBvciBkYW1hZ2VzIHRoYXQKKyAgbWF5IHJlc3VsdCBmcm9tIHRoZWlyIHVzZS4KKworSG93ZXZlciBzaW5jZSB0aGlzIFdvcmQgTGlzdCBpcyB1c2VkIGluIHRoZSBsaW51eC53b3JkcyBwYWNrYWdlIHdoaWNoCit0aGUgYXV0aG9yIGNsYWltcyBpcyBmcmVlIG9mIGFueSBjb3B5cmlnaHQgSSBhc3N1bWUgaXQgaXMgT0sgdG8gdXNlCitmb3IgbW9zdCBwdXJwb3Nlcy4gIElmIHlvdSB3YW50IHRvIHVzZSB0aGlzIGluIGEgY29tbWVyY2lhbCBwcm9qZWN0CithbmQgdGhpcyBjb25jZXJucyB5b3UgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIERFQyB3b3JkIGxpc3QgY2FuCitlYXNpbHkgYmUgcmVtb3ZlZCB3aXRob3V0IG11Y2ggc2FjcmlmaWNlIGluIHF1YWxpdHkgYXMgb25seSB0aGUgbmFtZQorbGlzdHMgd2VyZSB1c2VkLgorCitUaGUgZmlsZSBzcGVjaWFsLWphcmdvbi41MCB1c2VzIGNvbW1vbi5sc3QgYW5kIHdvcmQubHN0IGZyb20gdGhlCisiVW5vZmZpY2lhbCBKYXJnb24gRmlsZSBXb3JkIExpc3RzIiB3aGljaCBpcyBkZXJpdmVkIGZyb20gIlRoZSBKYXJnb24KK0ZpbGUiLiAgQWxsIG9mIHdoaWNoIGlzIGluIHRoZSBQdWJsaWMgRG9tYWluLiAgVGhpcyBmaWxlIGFsc28gY29udGFpbgorYSBmZXcgZXh0cmEgVU5JWCB0ZXJtcyB3aGljaCBhcmUgZm91bmQgaW4gdGhlIGZpbGUgInVuaXgtdGVybXMiIGluIHRoZQorc3BlY2lhbC8gZGlyZWN0b3J5LgorCitUaGUgNjAgbGV2ZWwgaW5jbHVkZXMgQnJpYW4ncyBmcmVxdWVuY3kgY2xhc3MgMCBhbmQgYWxsIHdvcmRzCithcHBlYXJpbmcgaW4gYXQgbGVhc3QgMiBvZiB0aGUgMTIgZGljdGlvbmFyaWVzIGFzIGluZGljYXRlZCBieSB0aGUKKzEyRGljdHMgcGFja2FnZS4gIEEgbGFyZ2UgbnVtYmVyIG9mIG5hbWVzIGFyZSBhbHNvIGluY2x1ZGVkOiBUaGUgNCw5NDYKK2ZlbWFsZSBuYW1lcyBhbmQgMyw4OTcgbWFsZSBuYW1lcyBmcm9tIHRoZSBNV29yZHMgcGFja2FnZSBhbmQgdGhlCitmaWxlcyAiY29tcHV0ZXIubmFtZXMiLCAibWlzYy5uYW1lcyIsIGFuZCAib3JnLm5hbWVzIiBmcm9tIHRoZSBERUMKK3BhY2thZ2UuCisKK1RoZSA2NSBsZXZlbCBpbmNsdWRlcyB3b3JkcyBmb3VuZCBpbiB0aGUgSXNwZWxsICJtZWRpdW0iIHdvcmQgbGlzdC4KK1RoZSBJc3BlbGwgd29yZCBsaXN0cyBhcmUgdW5kZXIgdGhlIHNhbWUgY29weXJpZ2h0IG9mIElzcGVsbCBpdHNlbGYKK3doaWNoIGlzOgorCisgIENvcHlyaWdodCAxOTkzLCBHZW9mZiBLdWVubmluZywgR3JhbmFkYSBIaWxscywgQ0EKKyAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgIGFyZSBtZXQ6CisKKyAgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgIDMuIEFsbCBtb2RpZmljYXRpb25zIHRvIHRoZSBzb3VyY2UgY29kZSBtdXN0IGJlIGNsZWFybHkgbWFya2VkIGFzCisgICAgIHN1Y2guICBCaW5hcnkgcmVkaXN0cmlidXRpb25zIGJhc2VkIG9uIG1vZGlmaWVkIHNvdXJjZSBjb2RlCisgICAgIG11c3QgYmUgY2xlYXJseSBtYXJrZWQgYXMgbW9kaWZpZWQgdmVyc2lvbnMgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgIDQuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQorICAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnbWVudDoKKyAgICAgVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSBHZW9mZiBLdWVubmluZyBhbmQKKyAgICAgb3RoZXIgdW5wYWlkIGNvbnRyaWJ1dG9ycy4KKyAgNS4gVGhlIG5hbWUgb2YgR2VvZmYgS3Vlbm5pbmcgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZQorICAgICBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yCisgICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdFT0ZGIEtVRU5OSU5HIEFORCBDT05UUklCVVRPUlMgYGBBUworICBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHRU9GRgorICBLVUVOTklORyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKKyAgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTgorICBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKKyAgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK1RoZSA3MCBsZXZlbCBpbmNsdWRlcyB0aGUgNzQsNTUwIGNvbW1vbiBkaWN0aW9uYXJ5IHdvcmRzIGFuZCB0aGUgMjEsOTg2IG5hbWVzCitsaXN0IGZyb20gdGhlIE1Xb3JkcyBwYWNrYWdlLiAgVGhlIGNvbW1vbiBkaWN0aW9uYXJ5IHdvcmRzLCBsaWtlIHRob3NlCitmcm9tIHRoZSAxMkRpY3RzIHBhY2thZ2UsIGhhdmUgaGFkIGFsbCBsaWtlbHkgaW5mbGVjdGlvbnMgYWRkZWQuCisKK1RoZSA4MCBsZXZlbCBpbmNsdWRlcyB0aGUgRU5BQkxFIHdvcmQgbGlzdCwgYWxsIHRoZSBsaXN0cyBpbiB0aGUKK0VOQUJMRSBzdXBwbGVtZW50IHBhY2thZ2UgKGV4Y2VwdCBmb3IgQUJMRSksIHRoZSAiVUsgQWR2YW5jZWQgQ3J5cHRpY3MKK0RpY3Rpb25hcnkiIChVS0FDRCksIHRoZSBsaXN0IG9mIHNpZ25hdHVyZSB3b3JkcyBpbiBmcm9tIFlBV0wgcGFja2FnZSwKK2FuZCB0aGUgMTAsMTk2IHBsYWNlcyBsaXN0IGZyb20gdGhlIE1Xb3JkcyBwYWNrYWdlLgorCitUaGUgRU5BQkxFIHBhY2thZ2UsIG1haW50ZWQgYnkgTVxDb29wZXIgPHRoZWdyZW5kZWxAdGhlcml2ZXIuY29tPiwKK2lzIGluIHRoZSBQdWJsaWMgRG9tYWluOgorCisgIFRoZSBFTkFCTEUgbWFzdGVyIHdvcmQgbGlzdCwgV09SRC5MU1QsIGlzIGhlcmV3aXRoIGZvcm1hbGx5IHJlbGVhc2VkCisgIGludG8gdGhlIFB1YmxpYyBEb21haW4uIEFueW9uZSBpcyBmcmVlIHRvIHVzZSBpdCBvciBkaXN0cmlidXRlIGl0IGluCisgIGFueSBtYW5uZXIgdGhleSBzZWUgZml0LiBObyBmZWUgb3IgcmVnaXN0cmF0aW9uIGlzIHJlcXVpcmVkIGZvciBpdHMKKyAgdXNlIG5vciBhcmUgImNvbnRyaWJ1dGlvbnMiIHNvbGljaXRlZCAoaWYgeW91IGZlZWwgeW91IGFic29sdXRlbHkKKyAgbXVzdCBjb250cmlidXRlIHNvbWV0aGluZyBmb3IgeW91ciBvd24gcGVhY2Ugb2YgbWluZCwgdGhlIGF1dGhvcnMgb2YKKyAgdGhlIEVOQUJMRSBsaXN0IGFzayB0aGF0IHlvdSBtYWtlIGEgZG9uYXRpb24gb24gdGhlaXIgYmVoYWxmIHRvIHlvdXIKKyAgZmF2b3JpdGUgY2hhcml0eSkuIFRoaXMgd29yZCBsaXN0IGlzIG91ciBnaWZ0IHRvIHRoZSBTY3JhYmJsZQorICBjb21tdW5pdHksIGFzIGFuIGFsdGVybmF0ZSB0byAib2ZmaWNpYWwiIHdvcmQgbGlzdHMuIEdhbWUgZGVzaWduZXJzCisgIG1heSBmZWVsIGZyZWUgdG8gaW5jb3Jwb3JhdGUgdGhlIFdPUkQuTFNUIGludG8gdGhlaXIgZ2FtZXMuIFBsZWFzZQorICBtZW50aW9uIHRoZSBzb3VyY2UgYW5kIGNyZWRpdCB1cyBhcyBvcmlnaW5hdG9ycyBvZiB0aGUgbGlzdC4gTm90ZQorICB0aGF0IGlmIHlvdSwgYXMgYSBnYW1lIGRlc2lnbmVyLCB1c2UgdGhlIFdPUkQuTFNUIGluIHlvdXIgcHJvZHVjdCwKKyAgeW91IG1heSBzdGlsbCBjb3B5cmlnaHQgYW5kIHByb3RlY3QgeW91ciBwcm9kdWN0LCBidXQgeW91IG1heSAqbm90KgorICBsZWdhbGx5IGNvcHlyaWdodCBvciBpbiBhbnkgd2F5IHJlc3RyaWN0IHJlZGlzdHJpYnV0aW9uIG9mIHRoZQorICBXT1JELkxTVCBwb3J0aW9uIG9mIHlvdXIgcHJvZHVjdC4gVGhpcyAqbWF5KiB1bmRlciBsYXcgcmVzdHJpY3QgeW91cgorICByaWdodHMgdG8gcmVzdHJpY3QgeW91ciB1c2VycycgcmlnaHRzLCBidXQgdGhhdCBpcyBvbmx5IGZhaXIuCisKK1VLQUNELCBieSBKIFJvc3MgQmVyZXNmb3JkIDxyb3NzQGJyeXNvbi5kZW1vbi5jby51az4sIGlzIHVuZGVyIHRoZQorZm9sbG93aW5nIGNvcHlyaWdodDoKKworICBDb3B5cmlnaHQgKGMpIEogUm9zcyBCZXJlc2ZvcmQgMTk5My0xOTk5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgIFRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb24gaXMgcGxhY2VkIG9uIHRoZSB1c2Ugb2YgdGhpcyBwdWJsaWNhdGlvbjoKKyAgaWYgVGhlIFVLIEFkdmFuY2VkIENyeXB0aWNzIERpY3Rpb25hcnkgaXMgdXNlZCBpbiBhIHNvZnR3YXJlIHBhY2thZ2UKKyAgb3IgcmVkaXN0cmlidXRlZCBpbiBhbnkgZm9ybSwgdGhlIGNvcHlyaWdodCBub3RpY2UgbXVzdCBiZQorICBwcm9taW5lbnRseSBkaXNwbGF5ZWQgYW5kIHRoZSB0ZXh0IG9mIHRoaXMgZG9jdW1lbnQgbXVzdCBiZSBpbmNsdWRlZAorICB2ZXJiYXRpbS4KKworICBUaGVyZSBhcmUgbm8gb3RoZXIgcmVzdHJpY3Rpb25zOiBJIHdvdWxkIGxpa2UgdG8gc2VlIHRoZSBsaXN0CisgIGRpc3RyaWJ1dGVkIGFzIHdpZGVseSBhcyBwb3NzaWJsZS4KKworVGhlIDk1IGxldmVsIGluY2x1ZGVzIHRoZSAzNTQsOTg0IHNpbmdsZSB3b3JkcyBhbmQgMjU2LDc3MiBjb21wb3VuZAord29yZHMgZnJvbSB0aGUgTVdvcmRzIHBhY2thZ2UsIEFCTEUuTFNUIGZyb20gdGhlIEVOQUJMRSBTdXBwbGVtZW50LAorYW5kIHNvbWUgYWRkaXRpb25hbCB3b3JkcyBmb3VuZCBpbiBteSBwYXJ0LW9mLXNwZWVjaCBkYXRhYmFzZSB0aGF0Cit3ZXJlIG5vdCBmb3VuZCBhbnl3aGVyZSBlbHNlLgorCitBY2NlbnQgaW5mb3JtYXRpb24gd2FzIHRha2VuIGZyb20gVUtBQ0QuCisKK015IFZBUkNPTiBwYWNrYWdlIHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgQW1lcmljYW4sIEJyaXRpc2gsIGFuZAorQ2FuYWRpYW4gd29yZCBsaXN0LiAKKworU2luY2UgdGhlIG9yaWdpbmFsIHdvcmQgbGlzdHMgdXNlZCB1c2VkIGluIHRoZQorVkFSQ09OIHBhY2thZ2UgY2FtZSBmcm9tIHRoZSBJc3BlbGwgZGlzdHJpYnV0aW9uIHRoZXkgYXJlIHVuZGVyIHRoZQorSXNwZWxsIGNvcHlyaWdodC4KKworVGhlIHZhcmlhbnQgd29yZCBsaXN0cyB3ZXJlIGNyZWF0ZWQgZnJvbSBhIGxpc3Qgb2YgdmFyaWFudHMgZm91bmQgaW4KK3RoZSAxMmRpY3RzIHN1cHBsZW1lbnQgcGFja2FnZSBhcyB3ZWxsIGFzIGEgbGlzdCBvZiB2YXJpYW50cyBJIGNyZWF0ZWQKK215c2VsZi4KKworLT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS0KK2VuX0dCCisKK1RoaXMgZGljdGlvbmFyeSB3YXMgaW5pdGlhbGx5IGJhc2VkIG9uIGEgc3Vic2V0IG9mIHRoZSAKK29yaWdpbmFsIEVuZ2xpc2ggd29yZGxpc3QgY3JlYXRlZCBieSBLZXZpbiBBdGtpbnNvbiBmb3IgCitQc3BlbGwgYW5kICBBc3BlbGwgYW5kIHRodXMgaXMgY292ZXJlZCBieSBoaXMgb3JpZ2luYWwgCitMR1BMIGxpY2VuY2UuIAorCitJdCBoYXMgYmVlbiBleHRlbnNpdmVseSB1cGRhdGVkIGJ5IERhdmlkIEJhcnRsZXR0LCBCcmlhbiBLZWxrCithbmQgQW5kcmV3IEJyb3duOgorLSBudW1lcm91cyBBbWVyaWNhbmlzbSBoYXZlIGJlZW4gcmVtb3ZlZAorLSBudW1lcm91cyBBbWVyaWNhbiBzcGVsbGluZ3MgaGF2ZSBiZWVuIGNvcnJlY3RlZAorLSBtaXNzaW5nIHdvcmRzIGhhdmUgYmVlbiBhZGRlZAorLSBtYW55IGVycm9ycyBoYXZlIGJlZW4gY29ycmVjdGVkCistIGNvbXBvdW5kIGh5cGhlbmF0ZWQgd29yZHMgaGF2ZSBiZWVuIGFkZGVkIHdoZXJlIGFwcHJvcHJpYXRlCisKK1ZhbHVhYmxlIGlucHV0cyB0byB0aGlzIHByb2Nlc3Mgd2VyZSByZWNlaXZlZCBmcm9tIG1hbnkgb3RoZXIgCitwZW9wbGUgLSBmYXIgdG9vIG51bWVyb3VzIHRvIG5hbWUuIFNlcmlvdXMgdGhhbmtzIHRvIHlvdSBhbGwKK2ZvciB5b3VyIGdyZWF0bHkgYXBwcmVjaWF0ZWQgaGVscC4KKworVGhpcyB3b3JkIGxpc3QgaXMgaW50ZW5kZWQgdG8gYmUgYSBnb29kIHJlcHJlc2VudGF0aW9uIG9mCitjdXJyZW50IG1vZGVybiBCcml0aXNoIEVuZ2xpc2ggYW5kIHRodXMgaXQgc2hvdWxkIGJlIGEgZ29vZCAKK2Jhc2lzIGZvciBDb21tb253ZWFsdGggRW5nbGlzaCBpbiBtb3N0IGNvdW50cmllcyBvZiB0aGUgd29ybGQgCitvdXRzaWRlIE5vcnRoIEFtZXJpY2EuCisKK1RoZSBhZmZpeCBmaWxlIGhhcyBiZWVuIGNyZWF0ZWQgY29tcGxldGVseSBmcm9tIHNjcmF0Y2gKK2J5IERhdmlkIEJhcnRsZXR0IGFuZCBBbmRyZXcgQnJvd24sIGJhc2VkIG9uIHRoZSBwdWJsaXNoZWQgCitydWxlcyBmb3IgTXlTcGVsbCBhbmQgaXMgYWxzbyBwcm92aWRlZCB1bmRlciB0aGUgTEdQTC4KKworSW4gY3JlYXRpbmcgdGhlIGFmZml4IHJ1bGVzIGFuIGF0dGVtcHQgaGFzIGJlZW4gbWFkZSB0byAKK3JlcHJvZHVjZSB0aGUgbW9zdCBnZW5lcmFsIHJ1bGVzIGZvciBFbmdsaXNoIHdvcmQKK2Zvcm1hdGlvbiwgcmF0aGVyIHRoYW4gbWVyZWx5IHVzZSBpdCBhcyBhIG1lYW5zIHRvCitjb21wcmVzcyB0aGUgc2l6ZSBvZiB0aGUgZGljdGlvbmFyeS4gSXQgaXMgaG9wZWQgdGhhdCB0aGlzCit3aWxsIGZhY2lsaXRhdGUgZnV0dXJlIGxvY2FsaXNhdGlvbiB0byBvdGhlciB2YXJpYW50cyBvZgorRW5nbGlzaC4KKworUGxlYXNlIGxldCBEYXZpZCBCYXJ0bGV0dCA8ZGJhcnRsZXR0QGllZS5vcmc+IGtub3cgb2YgYW55IAorZXJyb3JzIHRoYXQgeW91IGZpbmQuCisKK1RoZSBjdXJyZW50IHJlbGVhc2UgaXMgUiAxLjE0LCAxNS8xMi8wMiBvciBsYXRlcgorCistPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LQorZW5fTloKKworSS4gQ29weXJpZ2h0CitJSS4gQ29weWluZyAoTGljZW5jZSkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSS4gQ29weXJpZ2h0CisKK05aIEVuZ2xpc2ggRGljdGlvbmFyeSB2MC45IGJldGEgLSBCdWlsZCAwNlNFUDAzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorTkIgVGhpcyBpcyBhbiBpbml0aWFsIHZlcnNpb24sIHBsZWFzZSBjaGVjazoKK2h0dHA6Ly9saW5ndWNvbXBvbmVudC5vcGVub2ZmaWNlLm9yZy9kb3dubG9hZF9kaWN0aW9uYXJ5Lmh0bWwKK29yCitodHRwOi8vd3d3Lmdpcmx6YS5jb20vZGljdGlvbmFyeS9kb3dubG9hZC5odG1sCitmb3IgYSBmaW5hbCB2ZXJzaW9uLCBhZnRlciBhIGxpdHRsZSB3aGlsZSAobm8gaHVycnkpLgorCitUaGlzIGRpY3Rpb25hcnkgaXMgYmFzZWQgb24gdGhlIGVuX0dCIE15c3BlbGwgZGljdGlvbmFyeSAKK3doaWNoIGluIHR1cm4gd2FzIGluaXRpYWxseSBiYXNlZCBvbiBhIHN1YnNldCBvZiB0aGUgCitvcmlnaW5hbCBFbmdsaXNoIHdvcmRsaXN0IGNyZWF0ZWQgYnkgS2V2aW4gQXRraW5zb24gZm9yIAorUHNwZWxsIGFuZCAgQXNwZWxsIGFuZCB0aHVzIGlzIGNvdmVyZWQgYnkgaGlzIG9yaWdpbmFsIAorTEdQTCBsaWNlbmNlLiAKKworCitJbnRyb2R1Y3Rpb24KK35+fn5+fn5+fn5+fgorZW5fTlouZGljIGhhcyBiZWVuIGFsdGVyZWQgdG8gaW5jbHVkZSBOZXcgWmVhbGFuZCBwbGFjZXMsCitpbmNsdWRpbmcgbWFqb3IgY2l0aWVzIGFuZCB0b3ducywgYW5kIG1ham9yIHN1YnVyYnMuIEl0CithbHNvIGNvbnRhaW5zIE5aIHdvcmRzLCBvcmdhbmlzYXRpb25zIGFuZCBleHByZXNzaW9ucy4KKworZW5fTlouYWZmIGhhcyBoYWQgYSBmZXcgUkVQbGFjZSBzdHJpbmdzIGFkZGVkLCBidXQgaXMKK2Jhc2ljYWxseSB1bmNoYW5nZWQuCisKKworQWNrbm93bGVkZ2VtZW50cworfn5+fn5+fn5+fn5+fn5+fgorVGhhbmtzIG11c3QgZ28gdG8gdGhlIG9yaWdpbmFsIGNyZWF0b3JzIG9mIHRoZSBCcml0aXNoCitkaWN0aW9uYXJ5LCBEYXZpZCBCYXJ0bGV0dCwgQnJpYW4gS2VsayBhbmQgQW5kcmV3IEJyb3duLgorCitJIHdvdWxkbid0IGhhdmUgc3RhcnRlZCB0aGlzIHdpdGhvdXQgc2VlaW5nIHRoZSBBdXN0cmFsaWFuCitkaWN0aW9uYXJ5LCB0aGFua3MgS2VsdmluIEVsZHJpZGdlLCBKZWFuIEhvbGxpcyBXZWJlciBhbmQKK0RhdmlkIFdpbHNvbi4KKworQW5kIHRoYW5rIHlvdSB0byBhbGwgd2hvJ3ZlIGNvbnRyaWJ1dGVkIHRvIE9wZW5PZmZpY2Uub3JnLgorCisKK0xpY2Vuc2UKK35+fn5+fn4KK1RoaXMgZGljdGlvbmFyeSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitMaWNlbnNlLCB2aWV3YWJsZSBhdCBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvbGVzc2VyLmh0bWwKKworCitJc3N1ZXMKK35+fn5+fgorTWFueSBvZiB0aGUgcHJvcGVyIG5vdW5zIGFscmVhZHkgaW4gdGhlIGRpY3Rpb25hcnkgZG8gbm90IGhhdmUKK2FuIGFmZml4IGZvciAncy4KK0FsbCBteSBuZXcgd29yZHMgc3RhcnQgYWZ0ZXIgdGhlIHoncyBvZiB0aGUgb3JpZ2luYWwgZGljdGlvbmFyeS4KKworCitDb250YWN0Cit+fn5+fn5+CitDb250YWN0IFRyaXN0YW4gQnVydGVuc2hhdyAoaG9vdHlAc2xpbmdzaG90LmNvLm56KSB3aXRoIGFueSB3b3JkcywKK3BsYWNlcyBvciBvdGhlciBzdWdnZXN0aW9ucyBmb3IgdGhlIGRpY3Rpb25hcnkuCisKKworCitJSS4gQ29weWluZworCisJCSAgR05VIExFU1NFUiBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCisJCSAgICAgICBWZXJzaW9uIDIuMSwgRmVicnVhcnkgMTk5OQorCisgQ29weXJpZ2h0IChDKSAxOTkxLCAxOTk5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgICA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCisgb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCisKK1tUaGlzIGlzIHRoZSBmaXJzdCByZWxlYXNlZCB2ZXJzaW9uIG9mIHRoZSBMZXNzZXIgR1BMLiAgSXQgYWxzbyBjb3VudHMKKyBhcyB0aGUgc3VjY2Vzc29yIG9mIHRoZSBHTlUgTGlicmFyeSBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLCBoZW5jZQorIHRoZSB2ZXJzaW9uIG51bWJlciAyLjEuXQorCisJCQkgICAgUHJlYW1ibGUKKworICBUaGUgbGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYXJlIGRlc2lnbmVkIHRvIHRha2UgYXdheSB5b3VyCitmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworTGljZW5zZXMgYXJlIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZQorZnJlZSBzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRoZSBzb2Z0d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVzZXJzLgorCisgIFRoaXMgbGljZW5zZSwgdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhcHBsaWVzIHRvIHNvbWUKK3NwZWNpYWxseSBkZXNpZ25hdGVkIHNvZnR3YXJlIHBhY2thZ2VzLS10eXBpY2FsbHkgbGlicmFyaWVzLS1vZiB0aGUKK0ZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBhbmQgb3RoZXIgYXV0aG9ycyB3aG8gZGVjaWRlIHRvIHVzZSBpdC4gIFlvdQorY2FuIHVzZSBpdCB0b28sIGJ1dCB3ZSBzdWdnZXN0IHlvdSBmaXJzdCB0aGluayBjYXJlZnVsbHkgYWJvdXQgd2hldGhlcgordGhpcyBsaWNlbnNlIG9yIHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIHRoZSBiZXR0ZXIKK3N0cmF0ZWd5IHRvIHVzZSBpbiBhbnkgcGFydGljdWxhciBjYXNlLCBiYXNlZCBvbiB0aGUgZXhwbGFuYXRpb25zIGJlbG93LgorCisgIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tIG9mIHVzZSwKK25vdCBwcmljZS4gIE91ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlcyBhcmUgZGVzaWduZWQgdG8gbWFrZSBzdXJlIHRoYXQKK3lvdSBoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UKK2ZvciB0aGlzIHNlcnZpY2UgaWYgeW91IHdpc2gpOyB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQKK2l0IGlmIHlvdSB3YW50IGl0OyB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBhbmQgdXNlIHBpZWNlcyBvZgoraXQgaW4gbmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBhcmUgaW5mb3JtZWQgdGhhdCB5b3UgY2FuIGRvCit0aGVzZSB0aGluZ3MuCisKKyAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBtYWtlIHJlc3RyaWN0aW9ucyB0aGF0IGZvcmJpZAorZGlzdHJpYnV0b3JzIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGVzZQorcmlnaHRzLiAgVGhlc2UgcmVzdHJpY3Rpb25zIHRyYW5zbGF0ZSB0byBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgZm9yCit5b3UgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBsaWJyYXJ5IG9yIGlmIHlvdSBtb2RpZnkgaXQuCisKKyAgRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgbGlicmFyeSwgd2hldGhlciBncmF0aXMKK29yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0IHdlIGdhdmUKK3lvdS4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZSBzb3VyY2UKK2NvZGUuICBJZiB5b3UgbGluayBvdGhlciBjb2RlIHdpdGggdGhlIGxpYnJhcnksIHlvdSBtdXN0IHByb3ZpZGUKK2NvbXBsZXRlIG9iamVjdCBmaWxlcyB0byB0aGUgcmVjaXBpZW50cywgc28gdGhhdCB0aGV5IGNhbiByZWxpbmsgdGhlbQord2l0aCB0aGUgbGlicmFyeSBhZnRlciBtYWtpbmcgY2hhbmdlcyB0byB0aGUgbGlicmFyeSBhbmQgcmVjb21waWxpbmcKK2l0LiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIgcmlnaHRzLgorCisgIFdlIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCBhIHR3by1zdGVwIG1ldGhvZDogKDEpIHdlIGNvcHlyaWdodCB0aGUKK2xpYnJhcnksIGFuZCAoMikgd2Ugb2ZmZXIgeW91IHRoaXMgbGljZW5zZSwgd2hpY2ggZ2l2ZXMgeW91IGxlZ2FsCitwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgbGlicmFyeS4KKworICBUbyBwcm90ZWN0IGVhY2ggZGlzdHJpYnV0b3IsIHdlIHdhbnQgdG8gbWFrZSBpdCB2ZXJ5IGNsZWFyIHRoYXQKK3RoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGUgZnJlZSBsaWJyYXJ5LiAgQWxzbywgaWYgdGhlIGxpYnJhcnkgaXMKK21vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB0aGUgcmVjaXBpZW50cyBzaG91bGQga25vdwordGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsIHZlcnNpb24sIHNvIHRoYXQgdGhlIG9yaWdpbmFsCithdXRob3IncyByZXB1dGF0aW9uIHdpbGwgbm90IGJlIGFmZmVjdGVkIGJ5IHByb2JsZW1zIHRoYXQgbWlnaHQgYmUKK2ludHJvZHVjZWQgYnkgb3RoZXJzLgorDAorICBGaW5hbGx5LCBzb2Z0d2FyZSBwYXRlbnRzIHBvc2UgYSBjb25zdGFudCB0aHJlYXQgdG8gdGhlIGV4aXN0ZW5jZSBvZgorYW55IGZyZWUgcHJvZ3JhbS4gIFdlIHdpc2ggdG8gbWFrZSBzdXJlIHRoYXQgYSBjb21wYW55IGNhbm5vdAorZWZmZWN0aXZlbHkgcmVzdHJpY3QgdGhlIHVzZXJzIG9mIGEgZnJlZSBwcm9ncmFtIGJ5IG9idGFpbmluZyBhCityZXN0cmljdGl2ZSBsaWNlbnNlIGZyb20gYSBwYXRlbnQgaG9sZGVyLiAgVGhlcmVmb3JlLCB3ZSBpbnNpc3QgdGhhdAorYW55IHBhdGVudCBsaWNlbnNlIG9idGFpbmVkIGZvciBhIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkgbXVzdCBiZQorY29uc2lzdGVudCB3aXRoIHRoZSBmdWxsIGZyZWVkb20gb2YgdXNlIHNwZWNpZmllZCBpbiB0aGlzIGxpY2Vuc2UuCisKKyAgTW9zdCBHTlUgc29mdHdhcmUsIGluY2x1ZGluZyBzb21lIGxpYnJhcmllcywgaXMgY292ZXJlZCBieSB0aGUKK29yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhpcyBsaWNlbnNlLCB0aGUgR05VIExlc3NlcgorR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgYXBwbGllcyB0byBjZXJ0YWluIGRlc2lnbmF0ZWQgbGlicmFyaWVzLCBhbmQKK2lzIHF1aXRlIGRpZmZlcmVudCBmcm9tIHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgV2UgdXNlCit0aGlzIGxpY2Vuc2UgZm9yIGNlcnRhaW4gbGlicmFyaWVzIGluIG9yZGVyIHRvIHBlcm1pdCBsaW5raW5nIHRob3NlCitsaWJyYXJpZXMgaW50byBub24tZnJlZSBwcm9ncmFtcy4KKworICBXaGVuIGEgcHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCBhIGxpYnJhcnksIHdoZXRoZXIgc3RhdGljYWxseSBvciB1c2luZworYSBzaGFyZWQgbGlicmFyeSwgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSB0d28gaXMgbGVnYWxseSBzcGVha2luZyBhCitjb21iaW5lZCB3b3JrLCBhIGRlcml2YXRpdmUgb2YgdGhlIG9yaWdpbmFsIGxpYnJhcnkuICBUaGUgb3JkaW5hcnkKK0dlbmVyYWwgUHVibGljIExpY2Vuc2UgdGhlcmVmb3JlIHBlcm1pdHMgc3VjaCBsaW5raW5nIG9ubHkgaWYgdGhlCitlbnRpcmUgY29tYmluYXRpb24gZml0cyBpdHMgY3JpdGVyaWEgb2YgZnJlZWRvbS4gIFRoZSBMZXNzZXIgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgcGVybWl0cyBtb3JlIGxheCBjcml0ZXJpYSBmb3IgbGlua2luZyBvdGhlciBjb2RlIHdpdGgKK3RoZSBsaWJyYXJ5LgorCisgIFdlIGNhbGwgdGhpcyBsaWNlbnNlIHRoZSAiTGVzc2VyIiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGJlY2F1c2UgaXQKK2RvZXMgTGVzcyB0byBwcm90ZWN0IHRoZSB1c2VyJ3MgZnJlZWRvbSB0aGFuIHRoZSBvcmRpbmFyeSBHZW5lcmFsCitQdWJsaWMgTGljZW5zZS4gIEl0IGFsc28gcHJvdmlkZXMgb3RoZXIgZnJlZSBzb2Z0d2FyZSBkZXZlbG9wZXJzIExlc3MKK29mIGFuIGFkdmFudGFnZSBvdmVyIGNvbXBldGluZyBub24tZnJlZSBwcm9ncmFtcy4gIFRoZXNlIGRpc2FkdmFudGFnZXMKK2FyZSB0aGUgcmVhc29uIHdlIHVzZSB0aGUgb3JkaW5hcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbWFueQorbGlicmFyaWVzLiAgSG93ZXZlciwgdGhlIExlc3NlciBsaWNlbnNlIHByb3ZpZGVzIGFkdmFudGFnZXMgaW4gY2VydGFpbgorc3BlY2lhbCBjaXJjdW1zdGFuY2VzLgorCisgIEZvciBleGFtcGxlLCBvbiByYXJlIG9jY2FzaW9ucywgdGhlcmUgbWF5IGJlIGEgc3BlY2lhbCBuZWVkIHRvCitlbmNvdXJhZ2UgdGhlIHdpZGVzdCBwb3NzaWJsZSB1c2Ugb2YgYSBjZXJ0YWluIGxpYnJhcnksIHNvIHRoYXQgaXQgYmVjb21lcworYSBkZS1mYWN0byBzdGFuZGFyZC4gIFRvIGFjaGlldmUgdGhpcywgbm9uLWZyZWUgcHJvZ3JhbXMgbXVzdCBiZQorYWxsb3dlZCB0byB1c2UgdGhlIGxpYnJhcnkuICBBIG1vcmUgZnJlcXVlbnQgY2FzZSBpcyB0aGF0IGEgZnJlZQorbGlicmFyeSBkb2VzIHRoZSBzYW1lIGpvYiBhcyB3aWRlbHkgdXNlZCBub24tZnJlZSBsaWJyYXJpZXMuICBJbiB0aGlzCitjYXNlLCB0aGVyZSBpcyBsaXR0bGUgdG8gZ2FpbiBieSBsaW1pdGluZyB0aGUgZnJlZSBsaWJyYXJ5IHRvIGZyZWUKK3NvZnR3YXJlIG9ubHksIHNvIHdlIHVzZSB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisKKyAgSW4gb3RoZXIgY2FzZXMsIHBlcm1pc3Npb24gdG8gdXNlIGEgcGFydGljdWxhciBsaWJyYXJ5IGluIG5vbi1mcmVlCitwcm9ncmFtcyBlbmFibGVzIGEgZ3JlYXRlciBudW1iZXIgb2YgcGVvcGxlIHRvIHVzZSBhIGxhcmdlIGJvZHkgb2YKK2ZyZWUgc29mdHdhcmUuICBGb3IgZXhhbXBsZSwgcGVybWlzc2lvbiB0byB1c2UgdGhlIEdOVSBDIExpYnJhcnkgaW4KK25vbi1mcmVlIHByb2dyYW1zIGVuYWJsZXMgbWFueSBtb3JlIHBlb3BsZSB0byB1c2UgdGhlIHdob2xlIEdOVQorb3BlcmF0aW5nIHN5c3RlbSwgYXMgd2VsbCBhcyBpdHMgdmFyaWFudCwgdGhlIEdOVS9MaW51eCBvcGVyYXRpbmcKK3N5c3RlbS4KKworICBBbHRob3VnaCB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgTGVzcyBwcm90ZWN0aXZlIG9mIHRoZQordXNlcnMnIGZyZWVkb20sIGl0IGRvZXMgZW5zdXJlIHRoYXQgdGhlIHVzZXIgb2YgYSBwcm9ncmFtIHRoYXQgaXMKK2xpbmtlZCB3aXRoIHRoZSBMaWJyYXJ5IGhhcyB0aGUgZnJlZWRvbSBhbmQgdGhlIHdoZXJld2l0aGFsIHRvIHJ1bgordGhhdCBwcm9ncmFtIHVzaW5nIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgTGlicmFyeS4KKworICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAorbW9kaWZpY2F0aW9uIGZvbGxvdy4gIFBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhCisid29yayBiYXNlZCBvbiB0aGUgbGlicmFyeSIgYW5kIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBsaWJyYXJ5Ii4gIFRoZQorZm9ybWVyIGNvbnRhaW5zIGNvZGUgZGVyaXZlZCBmcm9tIHRoZSBsaWJyYXJ5LCB3aGVyZWFzIHRoZSBsYXR0ZXIgbXVzdAorYmUgY29tYmluZWQgd2l0aCB0aGUgbGlicmFyeSBpbiBvcmRlciB0byBydW4uCisMCisJCSAgR05VIExFU1NFUiBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCisgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KKworICAwLiBUaGlzIExpY2Vuc2UgQWdyZWVtZW50IGFwcGxpZXMgdG8gYW55IHNvZnR3YXJlIGxpYnJhcnkgb3Igb3RoZXIKK3Byb2dyYW0gd2hpY2ggY29udGFpbnMgYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIG9yCitvdGhlciBhdXRob3JpemVkIHBhcnR5IHNheWluZyBpdCBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mCit0aGlzIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChhbHNvIGNhbGxlZCAidGhpcyBMaWNlbnNlIikuCitFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4KKworICBBICJsaWJyYXJ5IiBtZWFucyBhIGNvbGxlY3Rpb24gb2Ygc29mdHdhcmUgZnVuY3Rpb25zIGFuZC9vciBkYXRhCitwcmVwYXJlZCBzbyBhcyB0byBiZSBjb252ZW5pZW50bHkgbGlua2VkIHdpdGggYXBwbGljYXRpb24gcHJvZ3JhbXMKKyh3aGljaCB1c2Ugc29tZSBvZiB0aG9zZSBmdW5jdGlvbnMgYW5kIGRhdGEpIHRvIGZvcm0gZXhlY3V0YWJsZXMuCisKKyAgVGhlICJMaWJyYXJ5IiwgYmVsb3csIHJlZmVycyB0byBhbnkgc3VjaCBzb2Z0d2FyZSBsaWJyYXJ5IG9yIHdvcmsKK3doaWNoIGhhcyBiZWVuIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZXNlIHRlcm1zLiAgQSAid29yayBiYXNlZCBvbiB0aGUKK0xpYnJhcnkiIG1lYW5zIGVpdGhlciB0aGUgTGlicmFyeSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyCitjb3B5cmlnaHQgbGF3OiB0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIExpYnJhcnkgb3IgYQorcG9ydGlvbiBvZiBpdCwgZWl0aGVyIHZlcmJhdGltIG9yIHdpdGggbW9kaWZpY2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZAorc3RyYWlnaHRmb3J3YXJkbHkgaW50byBhbm90aGVyIGxhbmd1YWdlLiAgKEhlcmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcworaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluIHRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikKKworICAiU291cmNlIGNvZGUiIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgorbWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQuICBGb3IgYSBsaWJyYXJ5LCBjb21wbGV0ZSBzb3VyY2UgY29kZSBtZWFucworYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55IGFzc29jaWF0ZWQKK2ludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8gY29udHJvbCBjb21waWxhdGlvbgorYW5kIGluc3RhbGxhdGlvbiBvZiB0aGUgbGlicmFyeS4KKworICBBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdAorY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgorcnVubmluZyBhIHByb2dyYW0gdXNpbmcgdGhlIExpYnJhcnkgaXMgbm90IHJlc3RyaWN0ZWQsIGFuZCBvdXRwdXQgZnJvbQorc3VjaCBhIHByb2dyYW0gaXMgY292ZXJlZCBvbmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZAorb24gdGhlIExpYnJhcnkgKGluZGVwZW5kZW50IG9mIHRoZSB1c2Ugb2YgdGhlIExpYnJhcnkgaW4gYSB0b29sIGZvcgord3JpdGluZyBpdCkuICBXaGV0aGVyIHRoYXQgaXMgdHJ1ZSBkZXBlbmRzIG9uIHdoYXQgdGhlIExpYnJhcnkgZG9lcworYW5kIHdoYXQgdGhlIHByb2dyYW0gdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IGRvZXMuCisgIAorICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBMaWJyYXJ5J3MKK2NvbXBsZXRlIHNvdXJjZSBjb2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0Cit5b3UgY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbgorYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QKK2FsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSBhbmQgdG8gdGhlIGFic2VuY2Ugb2YgYW55Cit3YXJyYW50eTsgYW5kIGRpc3RyaWJ1dGUgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZQorTGlicmFyeS4KKworICBZb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LAorYW5kIHlvdSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYQorZmVlLgorDAorICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBMaWJyYXJ5IG9yIGFueSBwb3J0aW9uCitvZiBpdCwgdGh1cyBmb3JtaW5nIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSwgYW5kIGNvcHkgYW5kCitkaXN0cmlidXRlIHN1Y2ggbW9kaWZpY2F0aW9ucyBvciB3b3JrIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDEKK2Fib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CisKKyAgICBhKSBUaGUgbW9kaWZpZWQgd29yayBtdXN0IGl0c2VsZiBiZSBhIHNvZnR3YXJlIGxpYnJhcnkuCisKKyAgICBiKSBZb3UgbXVzdCBjYXVzZSB0aGUgZmlsZXMgbW9kaWZpZWQgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKyAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgorCisgICAgYykgWW91IG11c3QgY2F1c2UgdGhlIHdob2xlIG9mIHRoZSB3b3JrIHRvIGJlIGxpY2Vuc2VkIGF0IG5vCisgICAgY2hhcmdlIHRvIGFsbCB0aGlyZCBwYXJ0aWVzIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuCisKKyAgICBkKSBJZiBhIGZhY2lsaXR5IGluIHRoZSBtb2RpZmllZCBMaWJyYXJ5IHJlZmVycyB0byBhIGZ1bmN0aW9uIG9yIGEKKyAgICB0YWJsZSBvZiBkYXRhIHRvIGJlIHN1cHBsaWVkIGJ5IGFuIGFwcGxpY2F0aW9uIHByb2dyYW0gdGhhdCB1c2VzCisgICAgdGhlIGZhY2lsaXR5LCBvdGhlciB0aGFuIGFzIGFuIGFyZ3VtZW50IHBhc3NlZCB3aGVuIHRoZSBmYWNpbGl0eQorICAgIGlzIGludm9rZWQsIHRoZW4geW91IG11c3QgbWFrZSBhIGdvb2QgZmFpdGggZWZmb3J0IHRvIGVuc3VyZSB0aGF0LAorICAgIGluIHRoZSBldmVudCBhbiBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkgc3VjaCBmdW5jdGlvbiBvcgorICAgIHRhYmxlLCB0aGUgZmFjaWxpdHkgc3RpbGwgb3BlcmF0ZXMsIGFuZCBwZXJmb3JtcyB3aGF0ZXZlciBwYXJ0IG9mCisgICAgaXRzIHB1cnBvc2UgcmVtYWlucyBtZWFuaW5nZnVsLgorCisgICAgKEZvciBleGFtcGxlLCBhIGZ1bmN0aW9uIGluIGEgbGlicmFyeSB0byBjb21wdXRlIHNxdWFyZSByb290cyBoYXMKKyAgICBhIHB1cnBvc2UgdGhhdCBpcyBlbnRpcmVseSB3ZWxsLWRlZmluZWQgaW5kZXBlbmRlbnQgb2YgdGhlCisgICAgYXBwbGljYXRpb24uICBUaGVyZWZvcmUsIFN1YnNlY3Rpb24gMmQgcmVxdWlyZXMgdGhhdCBhbnkKKyAgICBhcHBsaWNhdGlvbi1zdXBwbGllZCBmdW5jdGlvbiBvciB0YWJsZSB1c2VkIGJ5IHRoaXMgZnVuY3Rpb24gbXVzdAorICAgIGJlIG9wdGlvbmFsOiBpZiB0aGUgYXBwbGljYXRpb24gZG9lcyBub3Qgc3VwcGx5IGl0LCB0aGUgc3F1YXJlCisgICAgcm9vdCBmdW5jdGlvbiBtdXN0IHN0aWxsIGNvbXB1dGUgc3F1YXJlIHJvb3RzLikKKworVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgoraWRlbnRpZmlhYmxlIHNlY3Rpb25zIG9mIHRoYXQgd29yayBhcmUgbm90IGRlcml2ZWQgZnJvbSB0aGUgTGlicmFyeSwKK2FuZCBjYW4gYmUgcmVhc29uYWJseSBjb25zaWRlcmVkIGluZGVwZW5kZW50IGFuZCBzZXBhcmF0ZSB3b3JrcyBpbgordGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQorc2VjdGlvbnMgd2hlbiB5b3UgZGlzdHJpYnV0ZSB0aGVtIGFzIHNlcGFyYXRlIHdvcmtzLiAgQnV0IHdoZW4geW91CitkaXN0cmlidXRlIHRoZSBzYW1lIHNlY3Rpb25zIGFzIHBhcnQgb2YgYSB3aG9sZSB3aGljaCBpcyBhIHdvcmsgYmFzZWQKK29uIHRoZSBMaWJyYXJ5LCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgordGhpcyBMaWNlbnNlLCB3aG9zZSBwZXJtaXNzaW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZCB0byB0aGUKK2VudGlyZSB3aG9sZSwgYW5kIHRodXMgdG8gZWFjaCBhbmQgZXZlcnkgcGFydCByZWdhcmRsZXNzIG9mIHdobyB3cm90ZQoraXQuCisKK1RodXMsIGl0IGlzIG5vdCB0aGUgaW50ZW50IG9mIHRoaXMgc2VjdGlvbiB0byBjbGFpbSByaWdodHMgb3IgY29udGVzdAoreW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCitleGVyY2lzZSB0aGUgcmlnaHQgdG8gY29udHJvbCB0aGUgZGlzdHJpYnV0aW9uIG9mIGRlcml2YXRpdmUgb3IKK2NvbGxlY3RpdmUgd29ya3MgYmFzZWQgb24gdGhlIExpYnJhcnkuCisKK0luIGFkZGl0aW9uLCBtZXJlIGFnZ3JlZ2F0aW9uIG9mIGFub3RoZXIgd29yayBub3QgYmFzZWQgb24gdGhlIExpYnJhcnkKK3dpdGggdGhlIExpYnJhcnkgKG9yIHdpdGggYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5KSBvbiBhIHZvbHVtZSBvZgorYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKK3RoZSBzY29wZSBvZiB0aGlzIExpY2Vuc2UuCisKKyAgMy4gWW91IG1heSBvcHQgdG8gYXBwbHkgdGhlIHRlcm1zIG9mIHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMKK0xpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UgdG8gYSBnaXZlbiBjb3B5IG9mIHRoZSBMaWJyYXJ5LiAgVG8gZG8KK3RoaXMsIHlvdSBtdXN0IGFsdGVyIGFsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSwgc28KK3RoYXQgdGhleSByZWZlciB0byB0aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiwKK2luc3RlYWQgb2YgdG8gdGhpcyBMaWNlbnNlLiAgKElmIGEgbmV3ZXIgdmVyc2lvbiB0aGFuIHZlcnNpb24gMiBvZiB0aGUKK29yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGhhcyBhcHBlYXJlZCwgdGhlbiB5b3UgY2FuIHNwZWNpZnkKK3RoYXQgdmVyc2lvbiBpbnN0ZWFkIGlmIHlvdSB3aXNoLikgIERvIG5vdCBtYWtlIGFueSBvdGhlciBjaGFuZ2UgaW4KK3RoZXNlIG5vdGljZXMuCisMCisgIE9uY2UgdGhpcyBjaGFuZ2UgaXMgbWFkZSBpbiBhIGdpdmVuIGNvcHksIGl0IGlzIGlycmV2ZXJzaWJsZSBmb3IKK3RoYXQgY29weSwgc28gdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFwcGxpZXMgdG8gYWxsCitzdWJzZXF1ZW50IGNvcGllcyBhbmQgZGVyaXZhdGl2ZSB3b3JrcyBtYWRlIGZyb20gdGhhdCBjb3B5LgorCisgIFRoaXMgb3B0aW9uIGlzIHVzZWZ1bCB3aGVuIHlvdSB3aXNoIHRvIGNvcHkgcGFydCBvZiB0aGUgY29kZSBvZgordGhlIExpYnJhcnkgaW50byBhIHByb2dyYW0gdGhhdCBpcyBub3QgYSBsaWJyYXJ5LgorCisgIDQuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSAob3IgYSBwb3J0aW9uIG9yCitkZXJpdmF0aXZlIG9mIGl0LCB1bmRlciBTZWN0aW9uIDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybQordW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgcHJvdmlkZWQgdGhhdCB5b3UgYWNjb21wYW55CitpdCB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUtcmVhZGFibGUgc291cmNlIGNvZGUsIHdoaWNoCittdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEKK21lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZS4KKworICBJZiBkaXN0cmlidXRpb24gb2Ygb2JqZWN0IGNvZGUgaXMgbWFkZSBieSBvZmZlcmluZyBhY2Nlc3MgdG8gY29weQorZnJvbSBhIGRlc2lnbmF0ZWQgcGxhY2UsIHRoZW4gb2ZmZXJpbmcgZXF1aXZhbGVudCBhY2Nlc3MgdG8gY29weSB0aGUKK3NvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2Ugc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudCB0bworZGlzdHJpYnV0ZSB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdAorY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KKworICA1LiBBIHByb2dyYW0gdGhhdCBjb250YWlucyBubyBkZXJpdmF0aXZlIG9mIGFueSBwb3J0aW9uIG9mIHRoZQorTGlicmFyeSwgYnV0IGlzIGRlc2lnbmVkIHRvIHdvcmsgd2l0aCB0aGUgTGlicmFyeSBieSBiZWluZyBjb21waWxlZCBvcgorbGlua2VkIHdpdGggaXQsIGlzIGNhbGxlZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIuICBTdWNoIGEKK3dvcmssIGluIGlzb2xhdGlvbiwgaXMgbm90IGEgZGVyaXZhdGl2ZSB3b3JrIG9mIHRoZSBMaWJyYXJ5LCBhbmQKK3RoZXJlZm9yZSBmYWxscyBvdXRzaWRlIHRoZSBzY29wZSBvZiB0aGlzIExpY2Vuc2UuCisKKyAgSG93ZXZlciwgbGlua2luZyBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIgd2l0aCB0aGUgTGlicmFyeQorY3JlYXRlcyBhbiBleGVjdXRhYmxlIHRoYXQgaXMgYSBkZXJpdmF0aXZlIG9mIHRoZSBMaWJyYXJ5IChiZWNhdXNlIGl0Citjb250YWlucyBwb3J0aW9ucyBvZiB0aGUgTGlicmFyeSksIHJhdGhlciB0aGFuIGEgIndvcmsgdGhhdCB1c2VzIHRoZQorbGlicmFyeSIuICBUaGUgZXhlY3V0YWJsZSBpcyB0aGVyZWZvcmUgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UuCitTZWN0aW9uIDYgc3RhdGVzIHRlcm1zIGZvciBkaXN0cmlidXRpb24gb2Ygc3VjaCBleGVjdXRhYmxlcy4KKworICBXaGVuIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiB1c2VzIG1hdGVyaWFsIGZyb20gYSBoZWFkZXIgZmlsZQordGhhdCBpcyBwYXJ0IG9mIHRoZSBMaWJyYXJ5LCB0aGUgb2JqZWN0IGNvZGUgZm9yIHRoZSB3b3JrIG1heSBiZSBhCitkZXJpdmF0aXZlIHdvcmsgb2YgdGhlIExpYnJhcnkgZXZlbiB0aG91Z2ggdGhlIHNvdXJjZSBjb2RlIGlzIG5vdC4KK1doZXRoZXIgdGhpcyBpcyB0cnVlIGlzIGVzcGVjaWFsbHkgc2lnbmlmaWNhbnQgaWYgdGhlIHdvcmsgY2FuIGJlCitsaW5rZWQgd2l0aG91dCB0aGUgTGlicmFyeSwgb3IgaWYgdGhlIHdvcmsgaXMgaXRzZWxmIGEgbGlicmFyeS4gIFRoZQordGhyZXNob2xkIGZvciB0aGlzIHRvIGJlIHRydWUgaXMgbm90IHByZWNpc2VseSBkZWZpbmVkIGJ5IGxhdy4KKworICBJZiBzdWNoIGFuIG9iamVjdCBmaWxlIHVzZXMgb25seSBudW1lcmljYWwgcGFyYW1ldGVycywgZGF0YQorc3RydWN0dXJlIGxheW91dHMgYW5kIGFjY2Vzc29ycywgYW5kIHNtYWxsIG1hY3JvcyBhbmQgc21hbGwgaW5saW5lCitmdW5jdGlvbnMgKHRlbiBsaW5lcyBvciBsZXNzIGluIGxlbmd0aCksIHRoZW4gdGhlIHVzZSBvZiB0aGUgb2JqZWN0CitmaWxlIGlzIHVucmVzdHJpY3RlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGxlZ2FsbHkgYSBkZXJpdmF0aXZlCit3b3JrLiAgKEV4ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhpcyBvYmplY3QgY29kZSBwbHVzIHBvcnRpb25zIG9mIHRoZQorTGlicmFyeSB3aWxsIHN0aWxsIGZhbGwgdW5kZXIgU2VjdGlvbiA2LikKKworICBPdGhlcndpc2UsIGlmIHRoZSB3b3JrIGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSwgeW91IG1heQorZGlzdHJpYnV0ZSB0aGUgb2JqZWN0IGNvZGUgZm9yIHRoZSB3b3JrIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDYuCitBbnkgZXhlY3V0YWJsZXMgY29udGFpbmluZyB0aGF0IHdvcmsgYWxzbyBmYWxsIHVuZGVyIFNlY3Rpb24gNiwKK3doZXRoZXIgb3Igbm90IHRoZXkgYXJlIGxpbmtlZCBkaXJlY3RseSB3aXRoIHRoZSBMaWJyYXJ5IGl0c2VsZi4KKwwKKyAgNi4gQXMgYW4gZXhjZXB0aW9uIHRvIHRoZSBTZWN0aW9ucyBhYm92ZSwgeW91IG1heSBhbHNvIGNvbWJpbmUgb3IKK2xpbmsgYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHdpdGggdGhlIExpYnJhcnkgdG8gcHJvZHVjZSBhCit3b3JrIGNvbnRhaW5pbmcgcG9ydGlvbnMgb2YgdGhlIExpYnJhcnksIGFuZCBkaXN0cmlidXRlIHRoYXQgd29yawordW5kZXIgdGVybXMgb2YgeW91ciBjaG9pY2UsIHByb3ZpZGVkIHRoYXQgdGhlIHRlcm1zIHBlcm1pdAorbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGZvciB0aGUgY3VzdG9tZXIncyBvd24gdXNlIGFuZCByZXZlcnNlCitlbmdpbmVlcmluZyBmb3IgZGVidWdnaW5nIHN1Y2ggbW9kaWZpY2F0aW9ucy4KKworICBZb3UgbXVzdCBnaXZlIHByb21pbmVudCBub3RpY2Ugd2l0aCBlYWNoIGNvcHkgb2YgdGhlIHdvcmsgdGhhdCB0aGUKK0xpYnJhcnkgaXMgdXNlZCBpbiBpdCBhbmQgdGhhdCB0aGUgTGlicmFyeSBhbmQgaXRzIHVzZSBhcmUgY292ZXJlZCBieQordGhpcyBMaWNlbnNlLiAgWW91IG11c3Qgc3VwcGx5IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZiB0aGUgd29yaworZHVyaW5nIGV4ZWN1dGlvbiBkaXNwbGF5cyBjb3B5cmlnaHQgbm90aWNlcywgeW91IG11c3QgaW5jbHVkZSB0aGUKK2NvcHlyaWdodCBub3RpY2UgZm9yIHRoZSBMaWJyYXJ5IGFtb25nIHRoZW0sIGFzIHdlbGwgYXMgYSByZWZlcmVuY2UKK2RpcmVjdGluZyB0aGUgdXNlciB0byB0aGUgY29weSBvZiB0aGlzIExpY2Vuc2UuICBBbHNvLCB5b3UgbXVzdCBkbyBvbmUKK29mIHRoZXNlIHRoaW5nczoKKworICAgIGEpIEFjY29tcGFueSB0aGUgd29yayB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nCisgICAgbWFjaGluZS1yZWFkYWJsZSBzb3VyY2UgY29kZSBmb3IgdGhlIExpYnJhcnkgaW5jbHVkaW5nIHdoYXRldmVyCisgICAgY2hhbmdlcyB3ZXJlIHVzZWQgaW4gdGhlIHdvcmsgKHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIKKyAgICBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlKTsgYW5kLCBpZiB0aGUgd29yayBpcyBhbiBleGVjdXRhYmxlIGxpbmtlZAorICAgIHdpdGggdGhlIExpYnJhcnksIHdpdGggdGhlIGNvbXBsZXRlIG1hY2hpbmUtcmVhZGFibGUgIndvcmsgdGhhdAorICAgIHVzZXMgdGhlIExpYnJhcnkiLCBhcyBvYmplY3QgY29kZSBhbmQvb3Igc291cmNlIGNvZGUsIHNvIHRoYXQgdGhlCisgICAgdXNlciBjYW4gbW9kaWZ5IHRoZSBMaWJyYXJ5IGFuZCB0aGVuIHJlbGluayB0byBwcm9kdWNlIGEgbW9kaWZpZWQKKyAgICBleGVjdXRhYmxlIGNvbnRhaW5pbmcgdGhlIG1vZGlmaWVkIExpYnJhcnkuICAoSXQgaXMgdW5kZXJzdG9vZAorICAgIHRoYXQgdGhlIHVzZXIgd2hvIGNoYW5nZXMgdGhlIGNvbnRlbnRzIG9mIGRlZmluaXRpb25zIGZpbGVzIGluIHRoZQorICAgIExpYnJhcnkgd2lsbCBub3QgbmVjZXNzYXJpbHkgYmUgYWJsZSB0byByZWNvbXBpbGUgdGhlIGFwcGxpY2F0aW9uCisgICAgdG8gdXNlIHRoZSBtb2RpZmllZCBkZWZpbml0aW9ucy4pCisKKyAgICBiKSBVc2UgYSBzdWl0YWJsZSBzaGFyZWQgbGlicmFyeSBtZWNoYW5pc20gZm9yIGxpbmtpbmcgd2l0aCB0aGUKKyAgICBMaWJyYXJ5LiAgQSBzdWl0YWJsZSBtZWNoYW5pc20gaXMgb25lIHRoYXQgKDEpIHVzZXMgYXQgcnVuIHRpbWUgYQorICAgIGNvcHkgb2YgdGhlIGxpYnJhcnkgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSB1c2VyJ3MgY29tcHV0ZXIgc3lzdGVtLAorICAgIHJhdGhlciB0aGFuIGNvcHlpbmcgbGlicmFyeSBmdW5jdGlvbnMgaW50byB0aGUgZXhlY3V0YWJsZSwgYW5kICgyKQorICAgIHdpbGwgb3BlcmF0ZSBwcm9wZXJseSB3aXRoIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgaWYKKyAgICB0aGUgdXNlciBpbnN0YWxscyBvbmUsIGFzIGxvbmcgYXMgdGhlIG1vZGlmaWVkIHZlcnNpb24gaXMKKyAgICBpbnRlcmZhY2UtY29tcGF0aWJsZSB3aXRoIHRoZSB2ZXJzaW9uIHRoYXQgdGhlIHdvcmsgd2FzIG1hZGUgd2l0aC4KKworICAgIGMpIEFjY29tcGFueSB0aGUgd29yayB3aXRoIGEgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0CisgICAgbGVhc3QgdGhyZWUgeWVhcnMsIHRvIGdpdmUgdGhlIHNhbWUgdXNlciB0aGUgbWF0ZXJpYWxzCisgICAgc3BlY2lmaWVkIGluIFN1YnNlY3Rpb24gNmEsIGFib3ZlLCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZQorICAgIHRoYW4gdGhlIGNvc3Qgb2YgcGVyZm9ybWluZyB0aGlzIGRpc3RyaWJ1dGlvbi4KKworICAgIGQpIElmIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd29yayBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5CisgICAgZnJvbSBhIGRlc2lnbmF0ZWQgcGxhY2UsIG9mZmVyIGVxdWl2YWxlbnQgYWNjZXNzIHRvIGNvcHkgdGhlIGFib3ZlCisgICAgc3BlY2lmaWVkIG1hdGVyaWFscyBmcm9tIHRoZSBzYW1lIHBsYWNlLgorCisgICAgZSkgVmVyaWZ5IHRoYXQgdGhlIHVzZXIgaGFzIGFscmVhZHkgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZXNlCisgICAgbWF0ZXJpYWxzIG9yIHRoYXQgeW91IGhhdmUgYWxyZWFkeSBzZW50IHRoaXMgdXNlciBhIGNvcHkuCisKKyAgRm9yIGFuIGV4ZWN1dGFibGUsIHRoZSByZXF1aXJlZCBmb3JtIG9mIHRoZSAid29yayB0aGF0IHVzZXMgdGhlCitMaWJyYXJ5IiBtdXN0IGluY2x1ZGUgYW55IGRhdGEgYW5kIHV0aWxpdHkgcHJvZ3JhbXMgbmVlZGVkIGZvcgorcmVwcm9kdWNpbmcgdGhlIGV4ZWN1dGFibGUgZnJvbSBpdC4gIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24sCit0aGUgbWF0ZXJpYWxzIHRvIGJlIGRpc3RyaWJ1dGVkIG5lZWQgbm90IGluY2x1ZGUgYW55dGhpbmcgdGhhdCBpcworbm9ybWFsbHkgZGlzdHJpYnV0ZWQgKGluIGVpdGhlciBzb3VyY2Ugb3IgYmluYXJ5IGZvcm0pIHdpdGggdGhlIG1ham9yCitjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtIG9uCit3aGljaCB0aGUgZXhlY3V0YWJsZSBydW5zLCB1bmxlc3MgdGhhdCBjb21wb25lbnQgaXRzZWxmIGFjY29tcGFuaWVzCit0aGUgZXhlY3V0YWJsZS4KKworICBJdCBtYXkgaGFwcGVuIHRoYXQgdGhpcyByZXF1aXJlbWVudCBjb250cmFkaWN0cyB0aGUgbGljZW5zZQorcmVzdHJpY3Rpb25zIG9mIG90aGVyIHByb3ByaWV0YXJ5IGxpYnJhcmllcyB0aGF0IGRvIG5vdCBub3JtYWxseQorYWNjb21wYW55IHRoZSBvcGVyYXRpbmcgc3lzdGVtLiAgU3VjaCBhIGNvbnRyYWRpY3Rpb24gbWVhbnMgeW91IGNhbm5vdAordXNlIGJvdGggdGhlbSBhbmQgdGhlIExpYnJhcnkgdG9nZXRoZXIgaW4gYW4gZXhlY3V0YWJsZSB0aGF0IHlvdQorZGlzdHJpYnV0ZS4KKwwKKyAgNy4gWW91IG1heSBwbGFjZSBsaWJyYXJ5IGZhY2lsaXRpZXMgdGhhdCBhcmUgYSB3b3JrIGJhc2VkIG9uIHRoZQorTGlicmFyeSBzaWRlLWJ5LXNpZGUgaW4gYSBzaW5nbGUgbGlicmFyeSB0b2dldGhlciB3aXRoIG90aGVyIGxpYnJhcnkKK2ZhY2lsaXRpZXMgbm90IGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSBzdWNoIGEgY29tYmluZWQKK2xpYnJhcnksIHByb3ZpZGVkIHRoYXQgdGhlIHNlcGFyYXRlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd29yayBiYXNlZCBvbgordGhlIExpYnJhcnkgYW5kIG9mIHRoZSBvdGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMgaXMgb3RoZXJ3aXNlCitwZXJtaXR0ZWQsIGFuZCBwcm92aWRlZCB0aGF0IHlvdSBkbyB0aGVzZSB0d28gdGhpbmdzOgorCisgICAgYSkgQWNjb21wYW55IHRoZSBjb21iaW5lZCBsaWJyYXJ5IHdpdGggYSBjb3B5IG9mIHRoZSBzYW1lIHdvcmsKKyAgICBiYXNlZCBvbiB0aGUgTGlicmFyeSwgdW5jb21iaW5lZCB3aXRoIGFueSBvdGhlciBsaWJyYXJ5CisgICAgZmFjaWxpdGllcy4gIFRoaXMgbXVzdCBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlCisgICAgU2VjdGlvbnMgYWJvdmUuCisKKyAgICBiKSBHaXZlIHByb21pbmVudCBub3RpY2Ugd2l0aCB0aGUgY29tYmluZWQgbGlicmFyeSBvZiB0aGUgZmFjdAorICAgIHRoYXQgcGFydCBvZiBpdCBpcyBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnksIGFuZCBleHBsYWluaW5nCisgICAgd2hlcmUgdG8gZmluZCB0aGUgYWNjb21wYW55aW5nIHVuY29tYmluZWQgZm9ybSBvZiB0aGUgc2FtZSB3b3JrLgorCisgIDguIFlvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSwgbGluayB3aXRoLCBvciBkaXN0cmlidXRlCit0aGUgTGlicmFyeSBleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueQorYXR0ZW1wdCBvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgsIG9yCitkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IGlzIHZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIKK3JpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UuICBIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywKK29yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIgdGhpcyBMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIgbGljZW5zZXMKK3Rlcm1pbmF0ZWQgc28gbG9uZyBhcyBzdWNoIHBhcnRpZXMgcmVtYWluIGluIGZ1bGwgY29tcGxpYW5jZS4KKworICA5LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlLCBzaW5jZSB5b3UgaGF2ZSBub3QKK3NpZ25lZCBpdC4gIEhvd2V2ZXIsIG5vdGhpbmcgZWxzZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gbW9kaWZ5IG9yCitkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKK3Byb2hpYml0ZWQgYnkgbGF3IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkKK21vZGlmeWluZyBvciBkaXN0cmlidXRpbmcgdGhlIExpYnJhcnkgKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQorTGlicmFyeSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKK2FsbCBpdHMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcKK3RoZSBMaWJyYXJ5IG9yIHdvcmtzIGJhc2VkIG9uIGl0LgorCisgIDEwLiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCitMaWJyYXJ5KSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQorb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSwgbGluayB3aXRoIG9yIG1vZGlmeSB0aGUgTGlicmFyeQorc3ViamVjdCB0byB0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlcgorcmVzdHJpY3Rpb25zIG9uIHRoZSByZWNpcGllbnRzJyBleGVyY2lzZSBvZiB0aGUgcmlnaHRzIGdyYW50ZWQgaGVyZWluLgorWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgd2l0aAordGhpcyBMaWNlbnNlLgorDAorICAxMS4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAoraW5mcmluZ2VtZW50IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRlZCB0byBwYXRlbnQgaXNzdWVzKSwKK2NvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKK290aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKK2V4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90CitkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCitMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91CittYXkgbm90IGRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgYXQgYWxsLiAgRm9yIGV4YW1wbGUsIGlmIGEgcGF0ZW50CitsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBMaWJyYXJ5IGJ5CithbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KK3RoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIGl0IGFuZCB0aGlzIExpY2Vuc2Ugd291bGQgYmUgdG8KK3JlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIExpYnJhcnkuCisKK0lmIGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlvbiBpcyBoZWxkIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlciBhbnkKK3BhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0byBhcHBseSwKK2FuZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyIGNpcmN1bXN0YW5jZXMuCisKK0l0IGlzIG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5nZSBhbnkKK3BhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRvIGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CitzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCitpbnRlZ3JpdHkgb2YgdGhlIGZyZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSB3aGljaCBpcworaW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2ZSBtYWRlCitnZW5lcm91cyBjb250cmlidXRpb25zIHRvIHRoZSB3aWRlIHJhbmdlIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkCit0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdAorc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZwordG8gZGlzdHJpYnV0ZSBzb2Z0d2FyZSB0aHJvdWdoIGFueSBvdGhlciBzeXN0ZW0gYW5kIGEgbGljZW5zZWUgY2Fubm90CitpbXBvc2UgdGhhdCBjaG9pY2UuCisKK1RoaXMgc2VjdGlvbiBpcyBpbnRlbmRlZCB0byBtYWtlIHRob3JvdWdobHkgY2xlYXIgd2hhdCBpcyBiZWxpZXZlZCB0bworYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCisKKyAgMTIuIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgTGlicmFyeSBpcyByZXN0cmljdGVkIGluCitjZXJ0YWluIGNvdW50cmllcyBlaXRoZXIgYnkgcGF0ZW50cyBvciBieSBjb3B5cmlnaHRlZCBpbnRlcmZhY2VzLCB0aGUKK29yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgTGlicmFyeSB1bmRlciB0aGlzIExpY2Vuc2UgbWF5IGFkZAorYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZyB0aG9zZSBjb3VudHJpZXMsCitzbyB0aGF0IGRpc3RyaWJ1dGlvbiBpcyBwZXJtaXR0ZWQgb25seSBpbiBvciBhbW9uZyBjb3VudHJpZXMgbm90IHRodXMKK2V4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzIHRoZSBsaW1pdGF0aW9uIGFzIGlmCit3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KKworICAxMy4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcKK3ZlcnNpb25zIG9mIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4KK1N1Y2ggbmV3IHZlcnNpb25zIHdpbGwgYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwKK2J1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0byBhZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KKworRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUgTGlicmFyeQorc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kCisiYW55IGxhdGVyIHZlcnNpb24iLCB5b3UgaGF2ZSB0aGUgb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kCitjb25kaXRpb25zIGVpdGhlciBvZiB0aGF0IHZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5Cit0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIExpYnJhcnkgZG9lcyBub3Qgc3BlY2lmeSBhCitsaWNlbnNlIHZlcnNpb24gbnVtYmVyLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCBieQordGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKwwKKyAgMTQuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBMaWJyYXJ5IGludG8gb3RoZXIgZnJlZQorcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlvbnMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHRoZXNlLAord3JpdGUgdG8gdGhlIGF1dGhvciB0byBhc2sgZm9yIHBlcm1pc3Npb24uICBGb3Igc29mdHdhcmUgd2hpY2ggaXMKK2NvcHlyaWdodGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlCitTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMgbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyCitkZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzIG9mIHByZXNlcnZpbmcgdGhlIGZyZWUgc3RhdHVzCitvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kIG9mIHByb21vdGluZyB0aGUgc2hhcmluZworYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KKworCQkJICAgIE5PIFdBUlJBTlRZCisKKyAgMTUuIEJFQ0FVU0UgVEhFIExJQlJBUlkgSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5PCitXQVJSQU5UWSBGT1IgVEhFIExJQlJBUlksIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLgorRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IKK09USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgTElCUkFSWSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCitLSU5ELCBFSVRIRVIgRVhQUkVTU0VEIE9SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKK0lNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFCitMSUJSQVJZIElTIFdJVEggWU9VLiAgU0hPVUxEIFRIRSBMSUJSQVJZIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRQorVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgorCisgIDE2LiBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOCitXUklUSU5HIFdJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTUFZIE1PRElGWQorQU5EL09SIFJFRElTVFJJQlVURSBUSEUgTElCUkFSWSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UKK0ZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUwsIElOQ0lERU5UQUwgT1IKK0NPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUgVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFCitMSUJSQVJZIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HCitSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNUQUlORUQgQlkgWU9VIE9SIFRISVJEIFBBUlRJRVMgT1IgQQorRkFJTFVSRSBPRiBUSEUgTElCUkFSWSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFNPRlRXQVJFKSwgRVZFTiBJRgorU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorREFNQUdFUy4KKworCQkgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi51dGYtOC5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGJkZGJkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9lbi51dGYtOC5zcGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvY3MudmltIGIvcnVudGltZS9zeW50YXgvY3MudmltCmluZGV4IDk5ODQ0YjkuLjk0OGIxMjUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2NzLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9jcy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJQyMKICIgTWFpbnRhaW5lcjoJSm9oYW5uZXMgWmVsbG5lciA8am9oYW5uZXNAemVsbG5lci5vcmc+Ci0iIExhc3QgQ2hhbmdlOglUdWUsIDA5IE1hciAyMDA0IDE0OjMyOjEzIENFVAorIiBMYXN0IENoYW5nZToJTWksIDEzIEFwciAyMDA1IDIyOjUyOjU3IENFU1QKICIgRmlsZW5hbWVzOgkqLmNzCiAiICRJZCQKICIKQEAgLTkyLDcgKzkyLDcgQEAKICIgdW5pY29kZSBjaGFyYWN0ZXJzCiBzeW4gbWF0Y2ggICBjc1VuaWNvZGVOdW1iZXIJK1xcXCh1XHhcezR9XHxVXHhcezh9XCkrIGNvbnRhaW5lZCBjb250YWlucz1jc1VuaWNvZGVTcGVjaWZpZXIKIHN5biBtYXRjaCAgIGNzVW5pY29kZVNwZWNpZmllcgkrXFxbdVVdKyBjb250YWluZWQKLXN5biByZWdpb24gIGNzVmVyYmF0aW1TdHJpbmcJc3RhcnQ9K0AiKyBlbmQ9KyIrIGVuZD0rJCsgY29udGFpbnM9Y3NWZXJiYXRpbVNwZWMKK3N5biByZWdpb24gIGNzVmVyYmF0aW1TdHJpbmcJc3RhcnQ9K0AiKyBlbmQ9KyIrIGVuZD0rJCsgc2tpcD0rIiIrIGNvbnRhaW5zPWNzVmVyYmF0aW1TcGVjCiBzeW4gbWF0Y2ggICBjc1ZlcmJhdGltU3BlYwkrQCIraGU9cysxIGNvbnRhaW5lZAogc3luIHJlZ2lvbiAgY3NTdHJpbmcJCXN0YXJ0PSsiKyAgZW5kPSsiKyBlbmQ9KyQrIGNvbnRhaW5zPWNzU3BlY2lhbENoYXIsY3NTcGVjaWFsRXJyb3IsY3NVbmljb2RlTnVtYmVyCiBzeW4gbWF0Y2ggICBjc0NoYXJhY3RlcgkJIidbXiddKiciIGNvbnRhaW5zPWNzU3BlY2lhbENoYXIsY3NTcGVjaWFsQ2hhckVycm9yCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9vYmpjLnZpbSBiL3J1bnRpbWUvc3ludGF4L29iamMudmltCmluZGV4IDVhOTY1YTAuLjFjMjk2ZGQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L29iamMudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L29iamMudmltCkBAIC0zLDcgKzMsNyBAQAogIiBNYWludGFpbmVyOgkgICAgS2F6dW5vYnUgS3VyaXlhbWEgPGthenVub2J1Lmt1cml5YW1hQG5pZnR5LmNvbT4KICIgRXgtbWFpbnRhaW5lcjogICAgQW50aG9ueSBIb2RzZG9uIDxhaG9kc2RvbkBmYXN0bWFpbC5mbT4KICIgRmlyc3QgQXV0aG9yOgkgICAgVmFsZW50aW5vIEt5cmlha2lkZXMgPDFreXJpYWtpQGluZm9ybWF0aWsudW5pLWhhbWJ1cmcuZGU+Ci0iIExhc3QgQ2hhbmdlOgkgICAgMjAwNCBNYXkgMjAKKyIgTGFzdCBDaGFuZ2U6CSAgICAyMDA1IEFwciAxMwogCiAiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwogIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZApAQCAtMzAsOCArMzAsOSBAQAogCiAiIE9iakMga2V5d29yZHMsIHR5cGVzLCB0eXBlIHF1YWxpZmllcnMgZXRjLgogc3luIGtleXdvcmQgb2JqY1N0YXRlbWVudAlzZWxmIHN1cGVyIF9jbWQKLXN5biBrZXl3b3JkIG9iamNUeXBlCQlpZCBDbGFzcyBTRUwgSU1QIEJPT0wgbmlsIE5pbAorc3luIGtleXdvcmQgb2JqY1R5cGUJCWlkIENsYXNzIFNFTCBJTVAgQk9PTAogc3luIGtleXdvcmQgb2JqY1R5cGVNb2RpZmllcglieWNvcHkgaW4gb3V0IGlub3V0IG9uZXdheQorc3luIGtleXdvcmQgb2JqY0NvbnN0YW50CW5pbCBOaWwKIAogIiBNYXRjaCB0aGUgT2JqQyAjaW1wb3J0IGRpcmVjdGl2ZSAobGlrZSBDJ3MgI2luY2x1ZGUpCiBzeW4gcmVnaW9uIG9iamNJbXBvcnRlZCBkaXNwbGF5IGNvbnRhaW5lZCBzdGFydD0rIisgIHNraXA9K1xcXFxcfFxcIisgIGVuZD0rIisKQEAgLTk4LDYgKzk5LDcgQEAKICAgSGlMaW5rIG9iamNTdHJpbmcJCWNTdHJpbmcKICAgSGlMaW5rIG9iamNTcGVjaWFsCQlTcGVjaWFsCiAgIEhpTGluayBvYmpjUHJvdG9jb2wJCU5vbmUKKyAgSGlMaW5rIG9iamNDb25zdGFudAkJY0NvbnN0YW50CiAKICAgZGVsY29tbWFuZCBIaUxpbmsKIGVuZGlmCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC94bWwudmltIGIvcnVudGltZS9zeW50YXgveG1sLnZpbQppbmRleCBhZjZjNjI2Li4yODhlYTU0IDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC94bWwudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3htbC52aW0KQEAgLTMsNyArMyw3IEBACiAiIE1haW50YWluZXI6CUpvaGFubmVzIFplbGxuZXIgPGpvaGFubmVzQHplbGxuZXIub3JnPgogIgkJQXV0aG9yIGFuZCBwcmV2aW91cyBtYWludGFpbmVyOgogIgkJUGF1bCBTaWVnbWFubiA8cGF1bHNAZXVyb25ldC5ubD4KLSIgTGFzdCBDaGFuZ2U6CUZyaSwgMDQgSnVuIDIwMDQgMTA6NDE6NTQgQ0VTVAorIiBMYXN0IENoYW5nZToJTWksIDEzIEFwciAyMDA1IDIyOjQwOjA5IENFU1QKICIgRmlsZW5hbWVzOgkqLnhtbAogIiAkSWQkCiAKQEAgLTU4LDggKzU4LDggQEAKICIKICIgPHRhZyBmb28uYXR0cmlidXRlID0gInZhbHVlIj4KICIgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXgotc3luIHJlZ2lvbiAgeG1sU3RyaW5nIGNvbnRhaW5lZCBzdGFydD0rIisgc2tpcD0rXFxcXFx8XFwiKyBlbmQ9KyIrIGNvbnRhaW5zPXhtbEVudGl0eSBkaXNwbGF5Ci1zeW4gcmVnaW9uICB4bWxTdHJpbmcgY29udGFpbmVkIHN0YXJ0PSsnKyBza2lwPStcXFxcXHxcXCcrIGVuZD0rJysgY29udGFpbnM9eG1sRW50aXR5IGRpc3BsYXkKK3N5biByZWdpb24gIHhtbFN0cmluZyBjb250YWluZWQgc3RhcnQ9KyIrIGVuZD0rIisgY29udGFpbnM9eG1sRW50aXR5IGRpc3BsYXkKK3N5biByZWdpb24gIHhtbFN0cmluZyBjb250YWluZWQgc3RhcnQ9KycrIGVuZD0rJysgY29udGFpbnM9eG1sRW50aXR5IGRpc3BsYXkKIAogCiAiIHB1bmN0dWF0aW9uICh3aXRoaW4gYXR0cmlidXRlcykgZS5nLiA8dGFnIHhtbDpmb28uYXR0cmlidXRlIC4uLj4KQEAgLTIzMyw3ICsyMzMsNyBAQAogCiBlbmRpZgogCi1zeW4ga2V5d29yZCB4bWxUb2RvICAgICAgICAgY29udGFpbmVkIFRPRE8gRklYTUUgWFhYIGRpc3BsYXkKK3N5biBrZXl3b3JkIHhtbFRvZG8gICAgICAgICBjb250YWluZWQgVE9ETyBGSVhNRSBYWFgKIHN5biBtYXRjaCAgIHhtbENvbW1lbnRFcnJvciBjb250YWluZWQgIltePjwhXSIKIHN5biByZWdpb24gIHhtbENvbW1lbnRQYXJ0CiAgICAgXCBzdGFydD0rLS0rCg==