ZGlmZiAtLWdpdCBhL0RvYy90dXQvdHV0LnRleCBiL0RvYy90dXQvdHV0LnRleAppbmRleCA3ZTNkZDgwLi5kYWFlMTY5IDEwMDY0NAotLS0gYS9Eb2MvdHV0L3R1dC50ZXgKKysrIGIvRG9jL3R1dC90dXQudGV4CkBAIC03MzMsNiArNzMzLDEwNyBAQAogMzQKIFxlbmR7dmVyYmF0aW19CiAKKworXHN1YnNlY3Rpb257VW5pY29kZSBTdHJpbmdzIFxsYWJlbHt1bmljb2RlU3RyaW5nc319Citcc2VjdGlvbmF1dGhvcntNYXJjLUFuZHJlIExlbWJ1cmd9e21hbEBsZW1idXJnLmNvbX0KKworU3RhcnRpbmcgd2l0aCBQeXRob24gMS42IGEgbmV3IGRhdGEgdHlwZSBmb3Igc3RvcmluZyB0ZXh0IGRhdGEgaXMKK2F2YWlsYWJsZSB0byB0aGUgcHJvZ3JhbW1lcjogdGhlIFVuaWNvZGUgb2JqZWN0LiBJdCBjYW4gYmUgdXNlZCB0bworc3RvcmUgYW5kIG1hbmlwdWxhdGUgVW5pY29kZSBkYXRhIChzZWUgXHVybHtodHRwOi8vd3d3LnVuaWNvZGUub3JnfSkKK2FuZCBpbnRlcmdyYXRlcyB3ZWxsIHdpdGggdGhlIGV4aXN0aW5nIHN0cmluZyBvYmplY3RzIHByb3ZpZGluZworYXV0by1jb252ZXJzaW9ucyB3aGVyZSBuZWNlc3NhcnkuCisKK1VuaWNvZGUgaGFzIHRoZSBhZHZhbnRhZ2Ugb2YgcHJvdmlkaW5nIG9uZSBvcmRpbmFsIGZvciBldmVyeSBjaGFyYWN0ZXIKK2luIGV2ZXJ5IHNjcmlwdCB1c2VkIGluIG1vZGVybiBhbmQgYW5jaWVudCB0ZXh0cy4gUHJldmlvdXNseSwgdGhlcmUKK3dlcmUgb25seSAyNTYgcG9zc2libGUgb3JkaW5hbHMgZm9yIHNjcmlwdCBjaGFyYWN0ZXJzIGFuZCB0ZXh0cyB3ZXJlCit0eXBpY2FsbHkgYm91bmQgdG8gYSBjb2RlIHBhZ2Ugd2hpY2ggbWFwcGVkIHRoZSBvcmRpbmFscyB0byBzY3JpcHQKK2NoYXJhY3RlcnMuIFRoaXMgbGVhZCB0byB2ZXJ5IG11Y2ggY29uZnVzaW9uIGVzcGVjaWFsbHkgd2l0aCByZXNwZWN0Cit0byBpbnRlcm5hbGl6YXRpb24gKHVzdWFsbHkgd3JpdHRlbiBhcyBcc2FtcHtpMThufSAtLS0gXGNoYXJhY3RlcntpfSArCisxOCBjaGFyYWN0ZXJzICsgXGNoYXJhY3RlcntufSkgb2Ygc29mdHdhcmUuIFVuaWNvZGUgc29sdmVzIHRoZXNlCitwcm9ibGVtcyBieSBkZWZpbmluZyBvbmUgY29kZSBwYWdlIGZvciBhbGwgc2NyaXB0cy4KKworQ3JlYXRpbmcgVW5pY29kZSBzdHJpbmdzIGluIFB5dGhvbiBpcyBqdXN0IGFzIHNpbXBsZSBhcyBjcmVhdGluZworbm9ybWFsIHN0cmluZ3M6CisKK1xiZWdpbnt2ZXJiYXRpbX0KKz4+PiB1J0hlbGxvIFdvcmxkICEnCit1J0hlbGxvIFdvcmxkICEnCitcZW5ke3ZlcmJhdGltfQorCitUaGUgc21hbGwgXGNoYXJhY3Rlcnt1fSBpbiBmcm9udCBvZiB0aGUgcXVvdGUgaW5kaWNhdGVzIHRoYXQgYW4KK1VuaWNvZGUgc3RyaW5nIGlzIHN1cHBvc2VkIHRvIGJlIGNyZWF0ZWQuIElmIHlvdSB3YW50IHRvIGluY2x1ZGUKK3NwZWNpYWwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLCB5b3UgY2FuIGRvIHNvIGJ5IHVzaW5nIHRoZSBQeXRob24KK1xlbXBoe1VuaWNvZGUtRXNjYXBlfSBlbmNvZGluZy4gVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdzoKKworXGJlZ2lue3ZlcmJhdGltfQorPj4+IHUnSGVsbG9cXHUwMDIwV29ybGQgIScKK3UnSGVsbG8gV29ybGQgIScKK1xlbmR7dmVyYmF0aW19CisKK1RoZSBlc2NhcGUgc2VxdWVuY2UgXGNvZGV7XFx1MDAyMH0gaW5kaWNhdGVzIHRvIGluc2VydCB0aGUgVW5pY29kZQorY2hhcmFjdGVyIHdpdGggdGhlIEhFWCBvcmRpbmFsIDB4MDAyMCAodGhlIHNwYWNlIGNoYXJhY3RlcikgYXQgdGhlCitnaXZlbiBwb3NpdGlvbi4KKworT3RoZXIgY2hhcmFjdGVycyBhcmUgaW50ZXJwcmV0ZWQgYnkgdXNpbmcgdGhlaXIgcmVzcGVjdGl2ZSBvcmRpbmFsCit2YWx1ZSBkaXJlY3RseSBhcyBVbmljb2RlIG9yZGluYWwuIER1ZSB0byB0aGUgZmFjdCB0aGF0IHRoZSBsb3dlciAyNTYKK1VuaWNvZGUgYXJlIHRoZSBzYW1lIGFzIHRoZSBzdGFuZGFyZCBMYXRpbi0xIGVuY29kaW5nIHVzZWQgaW4gbWFueQord2VzdGVybiBjb3VudHJpZXMsIHRoZSBwcm9jZXNzIG9mIGVudGVyaW5nIFVuaWNvZGUgaXMgZ3JlYXRseQorc2ltcGxpZmllZC4KKworRm9yIGV4cGVydHMsIHRoZXJlIGlzIGFsc28gYSByYXcgbW9kZSBqdXN0IGxpa2UgZm9yIG5vcm1hbAorc3RyaW5ncy4gWW91IGhhdmUgdG8gcHJlcGVuZCB0aGUgc3RyaW5nIHdpdGggYSBzbWFsbCAncicgdG8gaGF2ZQorUHl0aG9uIHVzZSB0aGUgXGVtcGh7UmF3LVVuaWNvZGUtRXNjYXBlfSBlbmNvZGluZy4gSXQgd2lsbCBvbmx5IGFwcGx5Cit0aGUgYWJvdmUgXGNvZGV7XFx1WFhYWH0gY29udmVyc2lvbiBpZiB0aGVyZSBpcyBhbiB1bmV2ZW4gbnVtYmVyIG9mCitiYWNrc2xhc2hlcyBpbiBmcm9udCBvZiB0aGUgc21hbGwgJ3UnLgorCitcYmVnaW57dmVyYmF0aW19Cis+Pj4gdXInSGVsbG9cdTAwMjBXb3JsZCAhJwordSdIZWxsbyBXb3JsZCAhJworPj4+IHVyJ0hlbGxvXFx1MDAyMFdvcmxkICEnCit1J0hlbGxvXFxcXHUwMDIwV29ybGQgIScKK1xlbmR7dmVyYmF0aW19CisKK1RoZSByYXcgbW9kZSBpcyBtb3N0IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIHRvIGVudGVyIGxvdHMgb2YgYmFja3NsYXNoZXMKK2UuZy4gaW4gcmVndWxhciBleHByZXNzaW9ucy4KKworQXBhcnQgZnJvbSB0aGVzZSBzdGFuZGFyZCBlbmNvZGluZ3MsIFB5dGhvbiBwcm92aWRlcyBhIHdob2xlIHNldCBvZgorb3RoZXIgd2F5cyBvZiBjcmVhdGluZyBVbmljb2Qgc3RyaW5ncyBvbiB0aGUgYmFzaXMgb2YgYSBrbm93bgorZW5jb2RpbmcuIAorCitUaGUgYnVpbHRpbiBcZnVuY3Rpb257dW5pY29kZSgpfVxiaWZ1bmNpbmRleHt1bmljb2RlfSBwcm92aWRlcyBhY2Nlc3MKK3RvIGFsbCByZWdpc3RlcmVkIFVuaWNvZGUgY29kZWNzIChDT2RlcnMgYW5kIERFQ29kZXJzKS4gU29tZSBvZiB0aGUKK21vcmUgd2VsbCBrbm93biBlbmNvZGluZ3Mgd2hpY2ggdGhlc2UgY29kZWNzIGNhbiBjb252ZXJ0IGFyZQorXGVtcGh7TGF0aW4tMX0sIFxlbXBoe0FTQ0lJfSwgXGVtcGh7VVRGLTh9IGFuZCBcZW1waHtVVEYtMTZ9LiBUaGUgbGF0dGVyIHR3bworYXJlIHZhcmlhYmxlIGxlbmd0aCBlbmNvZGluZ3Mgd2hpY2ggcGVybWl0IHRvIHN0b3JlIFVuaWNvZGUgY2hhcmFjdGVycworaW4gOCBvciAxNiBiaXRzLiBQeXRob24gdXNlcyBVVEYtOCBhcyBkZWZhdWx0IGVuY29kaW5nLiBUaGlzIGJlY29tZXMKK25vdGljYWJsZSB3aGVuIHByaW50aW5nIFVuaWNvZGUgc3RyaW5ncyBvciB3cml0aW5nIHRoZW0gdG8gZmlsZXMuCisKK1xiZWdpbnt2ZXJiYXRpbX0KKz4+PiB1IuT2/CIKK3UnXDM0NFwzNjZcMzc0JworPj4+IHN0cih1IuT2/CIpCisnXDMwM1wyNDRcMzAzXDI2NlwzMDNcMjc0JworXGVuZHt2ZXJiYXRpbX0KKworSWYgeW91IGhhdmUgZGF0YSBpbiBhIHNwZWNpZmljIGVuY29kaW5nIGFuZCB3YW50IHRvIHByb2R1Y2UgYQorY29ycmVzcG9uZGluZyBVbmljb2RlIHN0cmluZyBmcm9tIGl0LCB5b3UgY2FuIHVzZSB0aGUKK1xmdW5jdGlvbnt1bmljb2RlKCl9IGJ1aWx0aW4gd2l0aCB0aGUgZW5jb2RpbmcgbmFtZSBhcyBzZWNvbmQKK2FyZ3VtZW50LgorCitcYmVnaW57dmVyYmF0aW19Cis+Pj4gdW5pY29kZSgnXDMwM1wyNDRcMzAzXDI2NlwzMDNcMjc0JywnVVRGLTgnKQordSdcMzQ0XDM2NlwzNzQnCitcZW5ke3ZlcmJhdGltfQorCitUbyBjb252ZXJ0IHRoZSBVbmljb2RlIHN0cmluZyBiYWNrIGludG8gYSBzdHJpbmcgdXNpbmcgdGhlIG9yaWdpbmFsCitlbmNvZGluZywgdGhlIG9iamVjdHMgcHJvdmlkZSBhbiBcbWV0aG9ke2VuY29kZSgpfSBtZXRob2QuCisKK1xiZWdpbnt2ZXJiYXRpbX0KKz4+PiB1IuT2/CIuZW5jb2RlKCdVVEYtOCcpCisnXDMwM1wyNDRcMzAzXDI2NlwzMDNcMjc0JworXGVuZHt2ZXJiYXRpbX0KKworCiBcc3Vic2VjdGlvbntMaXN0cyBcbGFiZWx7bGlzdHN9fQogCiBQeXRob24ga25vd3MgYSBudW1iZXIgb2YgXGVtcGh7Y29tcG91bmR9IGRhdGEgdHlwZXMsIHVzZWQgdG8gZ3JvdXAK