From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Peter Lemenkov To: git-commits@fedoraproject.org Subject: [rpms/opensips] rawhide: OpenSIPS ver. 4.0.1 Date: Wed, 19 Aug 2026 16:40:40 GMT Message-ID: <178715764094.1.17781080835447001056.rpms-opensips-9dcaaff7f89d@fedoraproject.org> List-ID: X-Git-Repo: rpms/opensips X-Git-Branch: rawhide X-Git-Rev: 9dcaaff7f89d80b004b529e854880e9079a04f37 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvb3BlbnNpcHMKICAgICAgICAgICAgQnJhbmNoIDogcmF3aGlkZQogICAgICAg ICAgICBDb21taXQgOiA5ZGNhYWZmN2Y4OWQ4MGIwMDRiNTI5ZTg1NDg4MGU5MDc5YTA0ZjM3CiAg ICAgICAgICAgIEF1dGhvciA6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CiAg ICAgICAgICAgIERhdGUgICA6IDIwMjYtMDgtMTlUMTg6NDA6MjMrMDI6MDAKICAgICAgICAgICAg U3RhdHMgIDogKzcyNC8tMTY1MyBpbiAxNCBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0 dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvb3BlbnNpcHMvYy85ZGNhYWZmN2Y4OWQ4 MGIwMDRiNTI5ZTg1NDg4MGU5MDc5YTA0ZjM3P2JyYW5jaD1yYXdoaWRlCgogICAgICAgICAgICBM b2c6CiAgICAgICAgICAgIE9wZW5TSVBTIHZlci4gNC4wLjEKClNpZ25lZC1vZmYtYnk6IFBldGVy IExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CgotLS0KZGlmZiAtLWdpdCBhL29wZW5zaXBz LTAwMDEtQ29uc2lzdGVudGx5LXVzZS1ydHBwcm94eS1zd2l0Y2hlcy5wYXRjaCBiL29wZW5zaXBz LTAwMDEtQ29uc2lzdGVudGx5LXVzZS1ydHBwcm94eS1zd2l0Y2hlcy5wYXRjaAppbmRleCBjMTQ4 NTZiLi44MWM1NmEwIDEwMDY0NAotLS0gYS9vcGVuc2lwcy0wMDAxLUNvbnNpc3RlbnRseS11c2Ut cnRwcHJveHktc3dpdGNoZXMucGF0Y2gKKysrIGIvb3BlbnNpcHMtMDAwMS1Db25zaXN0ZW50bHkt dXNlLXJ0cHByb3h5LXN3aXRjaGVzLnBhdGNoCkBAIC01LDE5ICs1LDE5IEBAIFN1YmplY3Q6IFtQ QVRDSF0gQ29uc2lzdGVudGx5IHVzZSBydHBwcm94eSBzd2l0Y2hlcwogCiBTaWduZWQtb2ZmLWJ5 OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgogCi1kaWZmIC0tZ2l0IGEvbW9k dWxlcy9ydHBwcm94eS9kb2MvcnRwcHJveHlfYWRtaW4ueG1sIGIvbW9kdWxlcy9ydHBwcm94eS9k b2MvcnRwcHJveHlfYWRtaW4ueG1sCi1pbmRleCBhOTM3NjFhNjZkLi5iMTg1MTY2Nzg2IDEwMDY0 NAotLS0tIGEvbW9kdWxlcy9ydHBwcm94eS9kb2MvcnRwcHJveHlfYWRtaW4ueG1sCi0rKysgYi9t b2R1bGVzL3J0cHByb3h5L2RvYy9ydHBwcm94eV9hZG1pbi54bWwKLUBAIC02MzcsNyArNjM3LDcg QEAgbW9kcGFyYW0oInJ0cHByb3h5IiwgImdlbmVyYXRlZF9zZHBfbWVkaWFfaXAiLCAiMTAuMC4w LjEiKQotIAkJCQljb25uZWN0aW9uIGluZm9ybWF0aW9uLgotIAkJCQk8L3BhcmE+PC9saXN0aXRl bT4KLSAJCQkJPGxpc3RpdGVtPjxwYXJhPgotLQkJCQk8ZW1waGFzaXM+cy93PC9lbXBoYXNpcz4g LSBmbGFncyB0aGF0IGZvciB0aGUgVUEgZnJvbSB3aGljaCAKLSsJCQkJPGVtcGhhc2lzPnM8L2Vt cGhhc2lzPiAtIGZsYWdzIHRoYXQgZm9yIHRoZSBVQSBmcm9tIHdoaWNoIAotIAkJCQltZXNzYWdl IGlzIHJlY2VpdmVkLCBzdXBwb3J0IHN5bW1ldHJpYyBSVFAgbXVzdCBiZSBmb3JjZWQuCi0gCQkJ CTwvcGFyYT48L2xpc3RpdGVtPgotIAkJCQk8bGlzdGl0ZW0+PHBhcmE+CitkaWZmIC0tZ2l0IGEv bW9kdWxlcy9ydHBwcm94eS9SRUFETUUubWQgYi9tb2R1bGVzL3J0cHByb3h5L1JFQURNRS5tZAor aW5kZXggMDgxYjJiZmExNi4uMGUyMzI2NzhkMSAxMDA2NDQKKy0tLSBhL21vZHVsZXMvcnRwcHJv eHkvUkVBRE1FLm1kCisrKysgYi9tb2R1bGVzL3J0cHByb3h5L1JFQURNRS5tZAorQEAgLTUxMiw3 ICs1MTIsNyBAQCBkZXNjcmlwdGlvbiAobz0pIHNob3VsZCBiZSBhbHNvIGNoYW5nZWQuCisgICAt ICpjKiAtIGZsYWdzIHRvIGNoYW5nZSB0aGUgc2Vzc2lvbi1sZXZlbCAKKyBTRFAgY29ubmVjdGlv biAoYz0pIElQIGlmIG1lZGlhLWRlc2NyaXB0aW9uIGFsc28gaW5jbHVkZXMgCisgY29ubmVjdGlv biBpbmZvcm1hdGlvbi4KKy0gIC0gKnMvdyogLSBmbGFncyB0aGF0IGZvciB0aGUgVUEgZnJvbSB3 aGljaCAKKysgIC0gKnMqIC0gZmxhZ3MgdGhhdCBmb3IgdGhlIFVBIGZyb20gd2hpY2ggCisgbWVz c2FnZSBpcyByZWNlaXZlZCwgc3VwcG9ydCBzeW1tZXRyaWMgUlRQIG11c3QgYmUgZm9yY2VkLgor ICAgLSAqbls8U09DS0VUPl0qIC0gZmxhZ3MgdGhhdCBlbmFibGVzCisgdGhlIG5vdGlmaWNhdGlv biB0aW1lb3V0IGZvciB0aGUgc2Vzc2lvbi4gT25lIGNhbiBzcGVjaWZ5IGFuCiBkaWZmIC0tZ2l0 IGEvbW9kdWxlcy9ydHBwcm94eS9ydHBwcm94eS5jIGIvbW9kdWxlcy9ydHBwcm94eS9ydHBwcm94 eS5jCiBpbmRleCAzY2YyNGM5ZDQ2Li41NzAwMDhiMjU0IDEwMDY0NAogLS0tIGEvbW9kdWxlcy9y dHBwcm94eS9ydHBwcm94eS5jCgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAwNS1GaXgtcmFiYml0 bXEtYy1kZXByZWNhdGVkLWhlYWRlci13YXJuaW5ncy5wYXRjaCBiL29wZW5zaXBzLTAwMDUtRml4 LXJhYmJpdG1xLWMtZGVwcmVjYXRlZC1oZWFkZXItd2FybmluZ3MucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDIwOGM1MGIuLjAwMDAwMDAKLS0tIGEvb3BlbnNpcHMtMDAwNS1G aXgtcmFiYml0bXEtYy1kZXByZWNhdGVkLWhlYWRlci13YXJuaW5ncy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDQ3MCArMCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtv diA8bGVtZW5rb3ZAZ21haWwuY29tPgotRGF0ZTogU3VuLCAyNiBPY3QgMjAyNSAxNToyOTowNCAr MDEwMAotU3ViamVjdDogW1BBVENIXSBGaXggcmFiYml0bXEtYyBkZXByZWNhdGVkIGhlYWRlciB3 YXJuaW5ncwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1EdXJpbmcgY29t cGlsYXRpb24gb2YgZXZlbnRfcmFiYml0bXEgbW9kdWxlLCBzZXZlcmFsIHdhcm5pbmdzIGFwcGVh cjoKLQotYGBgCi1Db21waWxpbmcgcmFiYml0bXFfY29uc3VtZXIuYwotZ2NjIC1mUElDIC1EUElD IC1PMiAtZmx0bz1hdXRvIC1mZmF0LWx0by1vYmplY3RzIC1mZXhjZXB0aW9ucyAtZyAtZ3JlY29y ZC1nY2Mtc3dpdGNoZXMgLXBpcGUgLVdhbGwgLVduby1jb21wbGFpbi13cm9uZy1sYW5nIC1XZXJy b3I9Zm9ybWF0LXNlY3VyaXR5IC1XcCwtVV9GT1JUSUZZX1NPVVJDRSwtRF9GT1JUSUZZX1NPVVJD RT0zIC1XcCwtRF9HTElCQ1hYX0FTU0VSVElPTlMgLXNwZWNzPS91c3IvbGliL3JwbS9yZWRoYXQv cmVkaGF0LWhhcmRlbmVkLWNjMSAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcgLXNwZWNzPS91c3Iv bGliL3JwbS9yZWRoYXQvcmVkaGF0LWFubm9iaW4tY2MxIC1tNjQgLW1hcmNoPXg4Ni02NCAtbXR1 bmU9Z2VuZXJpYyAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFibGVzIC1mc3RhY2stY2xhc2gtcHJv dGVjdGlvbiAtZmNmLXByb3RlY3Rpb24gLW10bHMtZGlhbGVjdD1nbnUyIC1mbm8tb21pdC1mcmFt ZS1wb2ludGVyIC1tbm8tb21pdC1sZWFmLWZyYW1lLXBvaW50ZXIgLURNT0RfTkFNRT0ncmFiYml0 bXFfY29uc3VtZXInIC1EUEtHX01BTExPQyAgLURTSE1fTU1BUCAgLURVU0VfTUNBU1QgIC1ERElT QUJMRV9OQUdMRSAgLURTVEFUSVNUSUNTICAtREhBVkVfUkVTT0xWX1JFUyAgLURGX01BTExPQyAg LURRX01BTExPQyAgLURIUF9NQUxMT0MgIC1EREJHX01BTExPQyAgLURGX1BBUkFMTEVMX01BTExP QyAgLURIQVZFX1NUREFUT01JQyAtREhBVkVfR0VORVJJQ1MgIC1ETkFNRT0nIm9wZW5zaXBzIicg LURWRVJTSU9OPSciMy42LjIiJyAtREFSQ0g9JyJ4ODZfNjQiJyAtRE9TPScibGludXgiJyAtRENP TVBJTEVSPSciZ2NjIDE1IicgLURfX0NQVV94ODZfNjQgLURfX09TX2xpbnV4IC1EX19TTVBfeWVz IC1EQ0ZHX0RJUj0nIi9ldGMvb3BlbnNpcHMvIicgIC1EVkVSU0lPTlRZUEU9JyJnaXQiJyAtRFRI SVNSRVZJU0lPTj0nIjk5NGJjZDY5MCInIC1ERkFTVF9MT0NLIC1EQURBUFRJVkVfV0FJVCAtREFE QVBUSVZFX1dBSVRfTE9PUFM9MTAyNCAtREhBVkVfR0VUSE9TVEJZTkFNRTIgLURIQVZFX1VOSU9O X1NFTVVOIC1ESEFWRV9NU0dfTk9TSUdOQUwgLURIQVZFX01TR0hEUl9NU0dfQ09OVFJPTCAtREhB VkVfQUxMT0NBX0ggLURIQVZFX1RJTUVHTSAtREhBVkVfRVBPTEwgLURIQVZFX1NJR0lPX1JUIC1E SEFWRV9TRUxFQ1QgIC1jIHJhYmJpdG1xX2NvbnN1bWVyLmMgLW8gcmFiYml0bXFfY29uc3VtZXIu bwotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHJtcV9jb25uZWN0aW9uLmg6MjUsCi0gICAgICAgICAg ICAgICAgIGZyb20gcmFiYml0bXFfY29uc3VtZXIuYzoyNToKLS91c3IvaW5jbHVkZS9hbXFwLmg6 MTA6NTogd2FybmluZzogI3dhcm5pbmcgImFtcXAuaCBpcyBkZXByZWNhdGVkLCB1c2UgcmFiYml0 bXEtYy9hbXFwLmggaW5zdGVhZC4iIFstV2NwcF0KLSAgIDEwIHwgIyAgIHdhcm5pbmcgImFtcXAu aCBpcyBkZXByZWNhdGVkLCB1c2UgcmFiYml0bXEtYy9hbXFwLmggaW5zdGVhZC4iCi0gICAgICB8 ICAgICBefn5+fn5+Ci1JbiBmaWxlIGluY2x1ZGVkIGZyb20gcm1xX2Nvbm5lY3Rpb24uaDoyNjoK LS91c3IvaW5jbHVkZS9hbXFwX3RjcF9zb2NrZXQuaDoxMDo1OiB3YXJuaW5nOiAjd2FybmluZyAi YW1xcF90Y3Bfc29ja2V0LmggaXMgZGVwcmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvdGNwX3NvY2tl dC5oIGluc3RlYWQuIiBbLVdjcHBdCi0gICAxMCB8ICMgICB3YXJuaW5nICJhbXFwX3RjcF9zb2Nr ZXQuaCBpcyBkZXByZWNhdGVkLCB1c2UgcmFiYml0bXEtYy90Y3Bfc29ja2V0LmggaW5zdGVhZC4i Ci0gICAgICB8ICAgICBefn5+fn5+Ci1JbiBmaWxlIGluY2x1ZGVkIGZyb20gcm1xX2Nvbm5lY3Rp b24uaDoyNzoKLS91c3IvaW5jbHVkZS9hbXFwX3NzbF9zb2NrZXQuaDoxMjo1OiB3YXJuaW5nOiAj d2FybmluZyAiYW1xcF9zc2xfc29ja2V0LmggaXMgZGVwcmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMv c3NsX3NvY2tldC5oIGluc3RlYWQuIiBbLVdjcHBdCi0gICAxMiB8ICMgICB3YXJuaW5nICJhbXFw X3NzbF9zb2NrZXQuaCBpcyBkZXByZWNhdGVkLCB1c2UgcmFiYml0bXEtYy9zc2xfc29ja2V0Lmgg aW5zdGVhZC4iCi0gICAgICB8ICAgICBefn5+fn5+Ci1yYWJiaXRtcV9jb25zdW1lci5jOiBJbiBm dW5jdGlvbiDigJhtb2RfaW5pdOKAmToKLXJhYmJpdG1xX2NvbnN1bWVyLmM6OTk6MTc6IHdhcm5p bmc6IOKAmGFtcXBfc2V0X2luaXRpYWxpemVfc3NsX2xpYnJhcnnigJkgaXMgZGVwcmVjYXRlZCBb LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9uc10KLSAgIDk5IHwgICAgICAgICAgICAgICAgIGFtcXBf c2V0X2luaXRpYWxpemVfc3NsX2xpYnJhcnkoMCk7Ci0gICAgICB8ICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci1JbiBmaWxlIGluY2x1ZGVkIGZyb20gL3Vz ci9pbmNsdWRlL2FtcXBfc3NsX3NvY2tldC5oOjE1OgotL3Vzci9pbmNsdWRlL3JhYmJpdG1xLWMv c3NsX3NvY2tldC5oOjI1MDoxNjogbm90ZTogZGVjbGFyZWQgaGVyZQotICAyNTAgfCB2b2lkIEFN UVBfQ0FMTCBhbXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ5KGFtcXBfYm9vbGVhbl90IGRv X2luaXRpYWxpemUpOwotICAgICAgfCAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+Ci1gYGAKLQotVGhlIHJhYmJpdG1xLWMgbGlicmFyeSByZW9yZ2FuaXplZCBo ZWFkZXJzIGludG8gYSByYWJiaXRtcS1jLwotc3ViZGlyZWN0b3J5IGluIHZlcnNpb24gMC44LjAg KDIwMTcpLiBUaGUgb2xkIHRvcC1sZXZlbCBoZWFkZXJzIHJlbWFpbgotYXMgZGVwcmVjYXRlZCB3 cmFwcGVycyB0aGF0IGVtaXQgd2FybmluZ3MuIEFkZGl0aW9uYWxseSwgdGhlIGZ1bmN0aW9uCi1h bXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ5KCkgd2FzIGRlcHJlY2F0ZWQgaW4gdmVyc2lv biAwLjEzLjAKLSgyMDIyKSBhcyBTU0wgaW5pdGlhbGl6YXRpb24gYmVjYW1lIGF1dG9tYXRpYy4K LQotQ2hhbmdlcyBtYWRlOgotCi0xLiBSZW1vdmVkIG9ic29sZXRlIHZlcnNpb24gZ3VhcmQgZm9y IHJhYmJpdG1xLWMgMC40LjA6Ci0gICBUaGUgZ3VhcmQgY2hlY2tpbmcgQU1RUF9WRVJTSU9OID49 IDB4MDAwNDAwMDAgYW5kIGRlZmluaW5nCi0gICBBTVFQX1ZFUlNJT05fdjA0IHdhcyBuZWVkZWQg Zm9yIGFuY2llbnQgdmVyc2lvbnMgKDIwMTMpLiBBbGwgY3VycmVudGx5Ci0gICBzdXBwb3J0ZWQg ZGlzdHJpYnV0aW9ucyBzaGlwIHJhYmJpdG1xLWMgPj0gMC45LjAsIG1ha2luZyB0aGlzIGNoZWNr Ci0gICB1bm5lY2Vzc2FyeS4KLQotMi4gVXBkYXRlZCBoZWFkZXIgaW5jbHVkZXMgdG8gdXNlIHJh YmJpdG1xLWMvIHN1YmRpcmVjdG9yeToKLSAgIC0gQ2hhbmdlZDogI2luY2x1ZGUgPGFtcXAuaD4K LSAgIC0gVG86ICAgICAgI2luY2x1ZGUgPHJhYmJpdG1xLWMvYW1xcC5oPgotICAgLSBBcHBsaWVk IHRvOiBhbXFwLmgsIGFtcXBfZnJhbWluZy5oLCBhbXFwX3RjcF9zb2NrZXQuaCwgYW1xcF9zc2xf c29ja2V0LmgKLQotMy4gQWRkZWQgdmVyc2lvbiBndWFyZCBmb3IgYW1xcF9zZXRfaW5pdGlhbGl6 ZV9zc2xfbGlicmFyeSgpOgotICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBhcmd1bWVu dCAwIHRvIHRlbGwgcmFiYml0bXEtYyBOT1QgdG8KLSAgIGluaXRpYWxpemUgT3BlblNTTCwgc2lu Y2UgT3BlblNJUFMgbWFuYWdlcyBpdHMgb3duIFNTTC9UTFMgc3RhY2sgYXQgYQotICAgaGlnaGVy IGxldmVsLiBUaGUgZnVuY3Rpb24gaXMgbmVlZGVkIGZvciByYWJiaXRtcS1jIDwgMC4xMy4wIGJ1 dCB3YXMKLSAgIGRlcHJlY2F0ZWQgaW4gMC4xMy4wIHdoZW4gdGhlIGxpYnJhcnkgbWFkZSBTU0wg aW5pdGlhbGl6YXRpb24gYmVoYXZpb3IKLSAgIGNvbmZpZ3VyYWJsZSBieSBkZWZhdWx0LgotCi0g ICBDaGFuZ2VkOgotICAgICBhbXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ5KDApOwotICAg VG86Ci0gICAgICNpZiBBTVFQX1ZFUlNJT04gPCBBTVFQX1ZFUlNJT05fQ09ERSgwLCAxMywgMCwg MCkKLSAgICAgICAgIGFtcXBfc2V0X2luaXRpYWxpemVfc3NsX2xpYnJhcnkoMCk7Ci0gICAgICNl bmRpZgotCi1Ob3RlOiBUaGUgZXhpc3RpbmcgdmVyc2lvbiBndWFyZCBmb3IgQU1RUF9WRVJTSU9O IDwgMC4xMC4wIChzc2xfbG9jaykgd2FzCi1wcmVzZXJ2ZWQgYXMgaXQgaGFuZGxlcyByZWFsIEFQ SSBkaWZmZXJlbmNlcyBiZXR3ZWVuIDAuOS54IGFuZCAwLjEwLjArCi12ZXJzaW9ucyBzdGlsbCBw cmVzZW50IGluIGN1cnJlbnQgZGlzdHJpYnV0aW9ucy4KLQotQ29tcGF0aWJpbGl0eSBhbmFseXNp czoKLQotU3VydmV5IG9mIGFjdGl2ZWx5IHN1cHBvcnRlZCBkaXN0cmlidXRpb25zIHNob3dzIGFs bCBzaGlwIHJhYmJpdG1xLWMgPj0gMC45LjA6Ci0KLS0gUkhFTC9Sb2NreS9BbG1hIDgvOTogPj0g MC45LjAKLS0gVWJ1bnR1IDIwLjA0LzIyLjA0LzI0LjA0OiA+PSAwLjkuMAotLSBEZWJpYW4gMTEv MTI6ID49IDAuOS4wCi0tIEZlZG9yYSAzOS80MC80MTogPj0gMC4xMy4wCi0tIG1hY09TIEhvbWVi cmV3OiAwLjE1LjAKLS0gbWFjT1MgTWFjUG9ydHM6IDAuMTEuMAotCi1UaGUgMC40LjAgY29tcGF0 aWJpbGl0eSBjb2RlIChmcm9tIDIwMTMpIGlzIG5vIGxvbmdlciBuZWVkZWQuIFRoZSAwLjEzLjAK LWd1YXJkIGlzIG5lY2Vzc2FyeSBhcyBzb21lIExUUyBkaXN0cmlidXRpb25zIHN0aWxsIHNoaXAg MC45LngtMC4xMi54LgotCi1TaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZA Z21haWwuY29tPgotQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1 ZGUuYWk+Ci0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL1JFQURNRSBiL21v ZHVsZXMvZXZlbnRfcmFiYml0bXEvUkVBRE1FCi1pbmRleCA3Y2IyMTNmMzVhLi41MzUxZWFkY2M2 IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9SRUFETUUKLSsrKyBiL21vZHVs ZXMvZXZlbnRfcmFiYml0bXEvUkVBRE1FCi1AQCAtMTMwLDcgKzEzMCw3IEBAIENoYXB0ZXIgMS4g QWRtaW4gR3VpZGUKLSAKLSAgICBUaGUgZm9sbG93aW5nIGxpYnJhcmllcyBvciBhcHBsaWNhdGlv bnMgbXVzdCBiZSBpbnN0YWxsZWQKLSAgICBiZWZvcmUgcnVubmluZyBPcGVuU0lQUyB3aXRoIHRo aXMgbW9kdWxlIGxvYWRlZDoKLS0gICAgICogbGlicmFiYml0bXEtZGV2Ci0rICAgICAqIGxpYnJh YmJpdG1xLWRldiB2ZXIuIDAuOSBvciBoaWdoZXIKLSAKLSAxLjUuIEV4cG9ydGVkIFBhcmFtZXRl cnMKLSAKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL2RvYy9ldmVudF9yYWJi aXRtcV9hZG1pbi54bWwgYi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL2RvYy9ldmVudF9yYWJiaXRt cV9hZG1pbi54bWwKLWluZGV4IDQzODk2NzU0MTcuLjZkNDYxOWNlNTEgMTAwNjQ0Ci0tLS0gYS9t b2R1bGVzL2V2ZW50X3JhYmJpdG1xL2RvYy9ldmVudF9yYWJiaXRtcV9hZG1pbi54bWwKLSsrKyBi L21vZHVsZXMvZXZlbnRfcmFiYml0bXEvZG9jL2V2ZW50X3JhYmJpdG1xX2FkbWluLnhtbAotQEAg LTEzMSw3ICsxMzEsNyBAQAotIAkJCTxpdGVtaXplZGxpc3Q+Ci0gCQkJPGxpc3RpdGVtPgotIAkJ CTxwYXJhPgotLQkJCQk8ZW1waGFzaXM+bGlicmFiYml0bXEtZGV2PC9lbXBoYXNpcz4KLSsJCQkJ PGVtcGhhc2lzPmxpYnJhYmJpdG1xLWRldiB2ZXIuIDAuOSBvciBoaWdoZXI8L2VtcGhhc2lzPgot IAkJCTwvcGFyYT4KLSAJCQk8L2xpc3RpdGVtPgotIAkJCTwvaXRlbWl6ZWRsaXN0PgotZGlmZiAt LWdpdCBhL21vZHVsZXMvZXZlbnRfcmFiYml0bXEvZXZlbnRfcmFiYml0bXEuYyBiL21vZHVsZXMv ZXZlbnRfcmFiYml0bXEvZXZlbnRfcmFiYml0bXEuYwotaW5kZXggY2FjNTM5NjRlZi4uMzAyOGJk OTZkZSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvZXZlbnRfcmFiYml0bXEvZXZlbnRfcmFiYml0bXEu YwotKysrIGIvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ldmVudF9yYWJiaXRtcS5jCi1AQCAtNTAs OSArNTAsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGhlYXJ0YmVhdCA9IDA7Ci0gc3RhdGljIGlu dCBybXFfY29ubmVjdF90aW1lb3V0ID0gUk1RX0RFRkFVTFRfQ09OTkVDVF9USU1FT1VUOwotIHN0 YXRpYyBpbnQgcm1xX3RpbWVvdXQgPSAwOwotIHN0cnVjdCB0aW1ldmFsIGNvbm5fdGltZW91dF90 djsKLS0jaWYgZGVmaW5lZCBBTVFQX1ZFUlNJT04gJiYgQU1RUF9WRVJTSU9OID49IDB4MDAwOTAw MDAKLSBzdHJ1Y3QgdGltZXZhbCBycGNfdGltZW91dF90djsKLS0jZW5kaWYKLSBpbnQgdXNlX3Rs czsKLSBzdHJ1Y3QgdGxzX21nbV9iaW5kcyB0bHNfYXBpOwotIHN0cnVjdCBvcGVuc3NsX2JpbmRz IG9wZW5zc2xfYXBpOwotQEAgLTIwMSwyNCArMTk5LDE0IEBAIHN0YXRpYyBpbnQgbW9kX2luaXQo dm9pZCkKLSAJY29ubl90aW1lb3V0X3R2LnR2X3NlYyA9IHJtcV9jb25uZWN0X3RpbWVvdXQvMTAw MDsKLSAJY29ubl90aW1lb3V0X3R2LnR2X3VzZWMgPSAocm1xX2Nvbm5lY3RfdGltZW91dCUxMDAw KSoxMDAwOwotIAotLSNpZiBkZWZpbmVkIEFNUVBfVkVSU0lPTiAmJiBBTVFQX1ZFUlNJT04gPj0g MHgwMDA5MDAwMAotIAlpZiAocm1xX3RpbWVvdXQgPCAwKSB7Ci0gCQlMTV9XQVJOKCJpbnZhbGlk IHZhbHVlIGZvciAndGltZW91dCcgJWQ7IGZhbGxiYWNrIHRvIGJsb2NraW5nIG1vZGVcbiIsIHJt cV90aW1lb3V0KTsKLSAJCXJtcV90aW1lb3V0ID0gMDsKLSAJfQotIAlycGNfdGltZW91dF90di50 dl9zZWMgPSBybXFfdGltZW91dC8xMDAwOwotIAlycGNfdGltZW91dF90di50dl91c2VjID0gKHJt cV90aW1lb3V0JTEwMDApKjEwMDA7Ci0tI2Vsc2UKLS0JaWYgKHJtcV90aW1lb3V0ICE9IDApCi0t CQlMTV9XQVJOKCJzZXR0aW5nIHRoZSB0aW1lb3V0IHdpdGhvdXQgc3VwcG9ydCBmb3IgaXQ7IGZh bGxiYWNrIHRvIGJsb2NraW5nIG1vZGVcbiIpOwotLSNlbmRpZgotIAotIAlpZiAodXNlX3Rscykg ewotLQkJI2lmbmRlZiBBTVFQX1ZFUlNJT05fdjA0Ci0tCQlMTV9FUlIoIlRMUyBub3Qgc3VwcG9y dGVkIGZvciBsaWJyYWJiaXRtcSB2ZXJzaW9uIGxvd2VyIHRoYW4gMC40LjBcbiIpOwotLQkJcmV0 dXJuIC0xOwotLQkJI2VuZGlmCi0tCi0gCQlpZiAobG9hZF90bHNfb3BlbnNzbF9hcGkoJm9wZW5z c2xfYXBpKSkgewotIAkJCUxNX0RCRygiRmFpbGVkIHRvIGxvYWQgb3BlbnNzbCBBUElcbiIpOwot IAkJCXJldHVybiAtMTsKLUBAIC0yNDEsNyArMjI5LDkgQEAgc3RhdGljIGludCBtb2RfaW5pdCh2 b2lkKQotIAkJfQotIAkJI2VuZGlmCi0gCi0rI2lmIEFNUVBfVkVSU0lPTiA8IEFNUVBfVkVSU0lP Tl9DT0RFKDAsIDEzLCAwLCAwKQotIAkJYW1xcF9zZXRfaW5pdGlhbGl6ZV9zc2xfbGlicmFyeSgw KTsKLSsjZW5kaWYKLSAJfQotIAotIAlyZXR1cm4gMDsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2V2 ZW50X3JhYmJpdG1xL2V2ZW50X3JhYmJpdG1xLmggYi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL2V2 ZW50X3JhYmJpdG1xLmgKLWluZGV4IDViMTE1OGUxNmYuLmIyN2MyYWQ2NGQgMTAwNjQ0Ci0tLS0g YS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL2V2ZW50X3JhYmJpdG1xLmgKLSsrKyBiL21vZHVsZXMv ZXZlbnRfcmFiYml0bXEvZXZlbnRfcmFiYml0bXEuaAotQEAgLTI3LDEzICsyNywxMCBAQAotICNp Zm5kZWYgX0VWX1JNUV9IXwotICNkZWZpbmUgX0VWX1JNUV9IXwotIAotLSNpbmNsdWRlIDxhbXFw Lmg+Ci0tI2luY2x1ZGUgPGFtcXBfZnJhbWluZy5oPgotLSNpZiBkZWZpbmVkIEFNUVBfVkVSU0lP TiAmJiBBTVFQX1ZFUlNJT04gPj0gMHgwMDA0MDAwMAotLSAgI2RlZmluZSBBTVFQX1ZFUlNJT05f djA0Ci0tI2luY2x1ZGUgPGFtcXBfdGNwX3NvY2tldC5oPgotLSNpbmNsdWRlIDxhbXFwX3NzbF9z b2NrZXQuaD4KLS0jZW5kaWYKLSsjaW5jbHVkZSA8cmFiYml0bXEtYy9hbXFwLmg+Ci0rI2luY2x1 ZGUgPHJhYmJpdG1xLWMvZnJhbWluZy5oPgotKyNpbmNsdWRlIDxyYWJiaXRtcS1jL3RjcF9zb2Nr ZXQuaD4KLSsjaW5jbHVkZSA8cmFiYml0bXEtYy9zc2xfc29ja2V0Lmg+Ci0gCi0gI2luY2x1ZGUg Ii4uL3Rsc19tZ20vYXBpLmgiCi0gI2luY2x1ZGUgInJtcV9zZXJ2ZXJzLmgiCi1kaWZmIC0tZ2l0 IGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5jIGIvbW9kdWxlcy9ldmVudF9y YWJiaXRtcS9ybXFfc2VydmVycy5jCi1pbmRleCBkOTIwZTU5OWQxLi5kMWY2YTE5YWI0IDEwMDY0 NAotLS0tIGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5jCi0rKysgYi9tb2R1 bGVzL2V2ZW50X3JhYmJpdG1xL3JtcV9zZXJ2ZXJzLmMKLUBAIC0zMyw2MSArMzMsNyBAQAotIAot ICNpbmNsdWRlICJybXFfc2VydmVycy5oIgotICNpbmNsdWRlICJyYWJiaXRtcV9zZW5kLmgiCi0t I2luY2x1ZGUgPGFtcXBfZnJhbWluZy5oPgotLQotLSNpZmRlZiBBTVFQX1ZFUlNJT05fdjA0Ci0t I2RlZmluZSBybXFfcGFyc2Vfcm0gYW1xcF9wYXJzZV91cmwKLS0jZWxzZQotLSNpbmNsdWRlICIu Li8uLi9kYi9kYl9pZC5oIgotLSN3YXJuaW5nICJZb3UgYXJlIHVzaW5nIGFuIG9sZCwgdW5zdXBw b3J0ZWQgUmFiYml0TVEgbGlicmFyeSB2ZXJzaW9uIC0gY29tcGlsZSBvbiB5b3VyIG93biByaXNr ISIKLS0vKiB1Z2x5IGhhY2sgdG8gbW92ZSBwdHIgZnJvbSBpZCB0byBybXFfdXJpICovCi0tI2Rl ZmluZSBQVFJfTU9WRShfZnJvbSwgX3RvKSBcCi0tCWRvIHsgXAotLQkJKF90bykgPSAoX2Zyb20p OyBcCi0tCQkoX2Zyb20pID0gTlVMTDsgXAotLQl9IHdoaWxlKDApCi0tc3RhdGljIGlubGluZSBp bnQgcm1xX3BhcnNlX3JtKGNoYXIgKnVybCwgcm1xX3VyaSAqdXJpKQotLXsKLS0Jc3RyIHN1cmw7 Ci0tCXN0cnVjdCBkYl9pZCAqaWQ7Ci0tCi0tCXN1cmwucyA9IHVybDsKLS0Jc3VybC5sZW4gPSBz dHJsZW4odXJsKTsKLS0KLS0JaWYgKChpZCA9IG5ld19kYl9pZCgmc3VybCkpID09IE5VTEwpCi0t CQlyZXR1cm4gLTE7Ci0tCi0tCWlmIChzdHJjbXAoaWQtPnNjaGVtZSwgImFtcXBzIikgPT0gMCkK LS0JCXVyaS0+c3NsID0gMTsKLS0KLS0JLyogdGhlcmUgbWlnaHQgbWUgYSBwa2cgbGVhayBjb21w YXJlZCB0byB0aGUgbmV3ZXIgdmVyc2lvbiwgYnV0IHBhcnNpbmcKLS0JICogb25seSBoYXBwZW5k cyBhdCBzdGFydHVwLCBzbyB3ZSBzaG91bGQgbm90IHdvcnJ5IGFib3V0IHRoaXMgbm93ICovCi0t CWlmIChpZC0+dXNlcm5hbWUpCi0tCQlQVFJfTU9WRShpZC0+dXNlcm5hbWUsIHVyaS0+dXNlcik7 Ci0tCWVsc2UKLS0JCXVyaS0+dXNlciA9ICJndWVzdCI7Ci0tCWlmIChpZC0+cGFzc3dvcmQpCi0t CQlQVFJfTU9WRShpZC0+cGFzc3dvcmQsIHVyaS0+cGFzc3dvcmQpOwotLQllbHNlCi0tCQl1cmkt PnBhc3N3b3JkID0gImd1ZXN0IjsKLS0JaWYgKGlkLT5ob3N0KQotLQkJUFRSX01PVkUoaWQtPmhv c3QsIHVyaS0+aG9zdCk7Ci0tCWVsc2UKLS0JCXVyaS0+aG9zdCA9ICJsb2NhbGhvc3QiOwotLQlp ZiAoaWQtPmRhdGFiYXNlKQotLQkJUFRSX01PVkUoaWQtPmRhdGFiYXNlLCB1cmktPnZob3N0KTsK LS0JZWxzZQotLQkJdXJpLT52aG9zdCA9ICIvIjsKLS0JaWYgKGlkLT5wb3J0KQotLQkJdXJpLT5w b3J0ID0gaWQtPnBvcnQ7Ci0tCWVsc2UgaWYgKHVyaS0+c3NsKQotLQkJdXJpLT5wb3J0ID0gNTY3 MTsKLS0JZWxzZQotLQkJdXJpLT5wb3J0ID0gNTY3MjsKLS0JZnJlZV9kYl9pZChpZCk7Ci0tCXJl dHVybiAwOwotLX0KLS0jZW5kaWYKLSsjaW5jbHVkZSA8cmFiYml0bXEtYy9mcmFtaW5nLmg+Ci0g Ci0gc3RhdGljIE9TSVBTX0xJU1RfSEVBRChybXFfc2VydmVycyk7Ci0gCi1AQCAtMTE3LDkgKzYz LDYgQEAgaW50IHJtcV9lcnJvcihjaGFyIGNvbnN0ICpjb250ZXh0LCBhbXFwX3JwY19yZXBseV90 IHgpCi0gewotIAlhbXFwX2Nvbm5lY3Rpb25fY2xvc2VfdCAqbWNvbm47Ci0gCWFtcXBfY2hhbm5l bF9jbG9zZV90ICptY2hhbjsKLS0jaWZuZGVmIEFNUVBfVkVSU0lPTl92MDQKLS0JY2hhciAqZXJy b3JzdHI7Ci0tI2VuZGlmCi0gCi0gCXN3aXRjaCAoeC5yZXBseV90eXBlKSB7Ci0gCQljYXNlIEFN UVBfUkVTUE9OU0VfTk9STUFMOgotQEAgLTEzMCwxMyArNzMsNyBAQCBpbnQgcm1xX2Vycm9yKGNo YXIgY29uc3QgKmNvbnRleHQsIGFtcXBfcnBjX3JlcGx5X3QgeCkKLSAJCQlicmVhazsKLSAKLSAJ CWNhc2UgQU1RUF9SRVNQT05TRV9MSUJSQVJZX0VYQ0VQVElPTjoKLS0jaWZuZGVmIEFNUVBfVkVS U0lPTl92MDQKLS0JCQllcnJvcnN0ciA9IGFtcXBfZXJyb3Jfc3RyaW5nKHgubGlicmFyeV9lcnJv cik7Ci0tCQkJTE1fRVJSKCIlczogJXNcbiIsIGNvbnRleHQsIGVycm9yc3RyKTsKLS0JCQlmcmVl KGVycm9yc3RyKTsKLS0jZWxzZQotIAkJCUxNX0VSUigiJXM6ICVzXG4iLCBjb250ZXh0LCBhbXFw X2Vycm9yX3N0cmluZzIoeC5saWJyYXJ5X2Vycm9yKSk7Ci0tI2VuZGlmCi0gCQkJYnJlYWs7Ci0g Ci0gCQljYXNlIEFNUVBfUkVTUE9OU0VfU0VSVkVSX0VYQ0VQVElPTjoKLUBAIC0xNzAsOSArMTA3 LDcgQEAgaW50IHJtcV9lcnJvcihjaGFyIGNvbnN0ICpjb250ZXh0LCBhbXFwX3JwY19yZXBseV90 IHgpCi0gICovCi0gaW50IHJtcV9zZXJ2ZXJfcmVjb25uZWN0KHJtcV9jb25uZWN0aW9uX3QgKmNv bm4sIGNoYXIgKmFkZHJlc3MsIGludCBwb3J0LCBpbnQgbWF4X2ZyYW1lcywgc3RyIGNpZCkKLSB7 Ci0tI2lmIGRlZmluZWQgQU1RUF9WRVJTSU9OX3YwNAotIAlhbXFwX3NvY2tldF90ICphbXFwX3Nv Y2s7Ci0tI2VuZGlmCi0gCWludCBzb2NrZXQ7Ci0gCi0gCXN3aXRjaCAoY29ubi0+c3RhdGUpIHsK LUBAIC0xODIsNyArMTE3LDYgQEAgaW50IHJtcV9zZXJ2ZXJfcmVjb25uZWN0KHJtcV9jb25uZWN0 aW9uX3QgKmNvbm4sIGNoYXIgKmFkZHJlc3MsIGludCBwb3J0LCBpbnQgbWEKLSAJCQlMTV9FUlIo ImNhbm5vdCBjcmVhdGUgYW1xcCBjb25uZWN0aW9uIVxuIik7Ci0gCQkJcmV0dXJuIC0xOwotIAkJ fQotLSNpZiBkZWZpbmVkIEFNUVBfVkVSU0lPTl92MDQKLSAJCWlmICh1c2VfdGxzICYmIChjb25u LT51cmkuc3NsIHx8IChjb25uLT5mbGFncyZSTVFfUEFSQU1fVExTKSkpIHsKLSAJCQlpZiAoIWNv bm4tPnRsc19kb20pIHsKLSAJCQkJY29ubi0+dGxzX2RvbSA9IHRsc19hcGkuZmluZF9jbGllbnRf ZG9tYWluX25hbWUoJmNvbm4tPnRsc19kb21fbmFtZSk7Ci1AQCAtMzE0LDE2ICsyNDgsNiBAQCBp bnQgcm1xX3NlcnZlcl9yZWNvbm5lY3Qocm1xX2Nvbm5lY3Rpb25fdCAqY29ubiwgY2hhciAqYWRk cmVzcywgaW50IHBvcnQsIGludCBtYQotIAkJCQlhbXFwX3NldF9ycGNfdGltZW91dChjb25uLT5j b25uLCAmcnBjX3RpbWVvdXRfdHYpIDwgMCkKLSAJCQlMTV9FUlIoInNldHRpbmcgUlBDIHRpbWVv dXQgLSBnb2luZyBibG9ja2luZ1xuIik7Ci0gI2VuZGlmCi0tCi0tI2Vsc2UKLS0JCXNvY2tldCA9 IGFtcXBfb3Blbl9zb2NrZXRfbm9ibG9jayhhZGRyZXNzLCBwb3J0LAotLQkJCQkmY29ubl90aW1l b3V0X3R2KTsKLS0JCWlmIChzb2NrZXQgPCAwKSB7Ci0tCQkJTE1fRVJSKCJjYW5ub3Qgb3BlbiBB TVFQIHNvY2tldFxuIik7Ci0tCQkJcmV0dXJuIC0xOwotLQkJfQotLQkJYW1xcF9zZXRfc29ja2Zk KGNvbm4tPmNvbm4sIHNvY2tldCk7Ci0tI2VuZGlmCi0gCQljb25uLT5zdGF0ZSA9IFJNUVNfSU5J VDsKLSAJCS8qIGZhbGwgdGhyb3VnaCAqLwotIAljYXNlIFJNUVNfSU5JVDoKLUBAIC01NjgsNyAr NDkyLDcgQEAgbm9fdmFsdWU6Ci0gCW1lbWNweSh1cmksIHN1cmkucywgc3VyaS5sZW4pOwotIAl1 cmlbc3VyaS5sZW5dID0gMDsKLSAKLS0JaWYgKHJtcV9wYXJzZV9ybSh1cmksICZzcnYtPmNvbm4u dXJpKSAhPSAwKSB7Ci0rCWlmIChhbXFwX3BhcnNlX3VybCh1cmksICZzcnYtPmNvbm4udXJpKSAh PSAwKSB7Ci0gCQlMTV9FUlIoIlslLipzXSBjYW5ub3QgcGFyc2UgcmFiYml0bXEgdXJpOiAlc1xu IiwgY2lkLmxlbiwgY2lkLnMsIHVyaSk7Ci0gCQlnb3RvIGZyZWU7Ci0gCX0KLUBAIC02MDUsNyAr NTI5LDcgQEAgbm9fdmFsdWU6Ci0gCQl9Ci0gCQltZW1jcHkoc3J2LT5jb25uLmV4Y2hhbmdlLmJ5 dGVzLCBleGNoYW5nZS5zLCBleGNoYW5nZS5sZW4pOwotIAl9IGVsc2UKLS0JCXNydi0+Y29ubi5l eGNoYW5nZSA9IFJNUV9FTVBUWTsKLSsJCXNydi0+Y29ubi5leGNoYW5nZSA9IGFtcXBfZW1wdHlf Ynl0ZXM7Ci0gCi0gCXNydi0+Y29ubi5zdGF0ZSA9IFJNUVNfT0ZGOwotIAlzcnYtPmNpZCA9IGNp ZDsKLUBAIC02NzcsMTYgKzYwMSw2IEBAIHZvaWQgcm1xX2Nvbm5lY3Rfc2VydmVycyh2b2lkKQot IAotIGludCBhbXFwX2NoZWNrX3N0YXR1cyhybXFfY29ubmVjdGlvbl90ICpjb25uLCBpbnQgciwg aW50ICpyZXRyeSwgc3RyIGNpZCkKLSB7Ci0tI2lmbmRlZiBBTVFQX1ZFUlNJT05fdjA0Ci0tCWlm IChyICE9IDApIHsKLS0JCUxNX0VSUigiWyUuKnNdIHVua25vd24gQU1RUCBlcnJvciBbJWRdIHdo aWxlIHNlbmRpbmdcbiIsCi0tCQkJCXNydi0+Y2lkLmxlbiwgc3J2LT5jaWQucywgcik7Ci0tCQkv KiB3ZSBjbG9zZSB0aGUgY29ubmVjdGlvbiBoZXJlIHRvIGJlIGFibGUgdG8gcmUtY29ubmVjdCBs YXRlciAqLwotLQkJLyogVE9ETzogY2xvc2UgdGhlIGNvbm5lY3Rpb24gKi8KLS0JCXJldHVybiBy OwotLQl9Ci0tCXJldHVybiAwOwotLSNlbHNlCi0gCXN3aXRjaCAocikgewotIAkJY2FzZSBBTVFQ X1NUQVRVU19PSzoKLSAJCQlyZXR1cm4gMDsKLUBAIC03NDEsNyArNjU1LDYgQEAgbm9fY2xvc2U6 Ci0gCQlyZXR1cm4gMTsKLSAJfQotIAlyZXR1cm4gcjsKLS0jZW5kaWYKLSB9Ci0gCi0gaW50IHJt cV9iYXNpY19zZXJ2ZXJfcHVibGlzaChybXFfY29ubmVjdGlvbl90ICpjb25uLCBpbnQgbWF4X2Zy YW1lcywKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL3JtcV9zZXJ2ZXJzLmgg Yi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL3JtcV9zZXJ2ZXJzLmgKLWluZGV4IGE3MDBkODAwNDku LjBkODUzZjhmMmIgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL3JtcV9zZXJ2 ZXJzLmgKLSsrKyBiL21vZHVsZXMvZXZlbnRfcmFiYml0bXEvcm1xX3NlcnZlcnMuaAotQEAgLTQw LDcgKzQwLDcgQEAKLSAKLSAjaW5jbHVkZSAiLi4vdGxzX29wZW5zc2wvb3BlbnNzbF9hcGkuaCIK LSAjaW5jbHVkZSAiLi4vdGxzX21nbS9hcGkuaCIKLS0jaW5jbHVkZSA8YW1xcC5oPgotKyNpbmNs dWRlIDxyYWJiaXRtcS1jL2FtcXAuaD4KLSAjaW5jbHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKLSAK LSAjaWYgQU1RUF9WRVJTSU9OIDwgQU1RUF9WRVJTSU9OX0NPREUoMCwgMTAsIDAsIDApCi1AQCAt NDksMzAgKzQ5LDggQEAKLSBleHRlcm4gZ2VuX2xvY2tfdCAqc3NsX2xvY2s7Ci0gI2VuZGlmCi0g Ci0tLyogQU1RUF9WRVJTSU9OIHdhcyBvbmx5IGFkZGVkIGluIHYwLjQuMCAtIHRoZXJlIGlzIG5v IHdheSB0byBjaGVjayB0aGUKLS0gKiB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IGJlZm9yZSB0aGlz LCBzbyB3ZSBjb25zaWRlciBldmVyeXRoaW5nIGJleW9uZCB2MC40LjAKLS0gKiBhcyBvbGQgYW5k IGlubmVmaWNpZW50ICovCi0tI2lmIGRlZmluZWQgQU1RUF9WRVJTSU9OICYmIEFNUVBfVkVSU0lP TiA+PSBBTVFQX1ZFUlNJT05fQ09ERSgwLCA0LCAwLCAwKQotLSAgI2RlZmluZSBBTVFQX1ZFUlNJ T05fdjA0Ci0tI2luY2x1ZGUgPGFtcXBfdGNwX3NvY2tldC5oPgotLSNpbmNsdWRlIDxhbXFwX3Nz bF9zb2NrZXQuaD4KLS0jZGVmaW5lIHJtcV91cmkgc3RydWN0IGFtcXBfY29ubmVjdGlvbl9pbmZv Ci0tI2RlZmluZSBSTVFfRU1QVFkgYW1xcF9lbXB0eV9ieXRlcwotLSNlbHNlCi0tLyogYWx0aG91 Z2ggc3RydWN0IGFtcXBfY29ubmVjdGlvbl9pbmZvIHdhcyBhZGRlZCBpbiB2MC4yLjAsIHRoZXJl IGlzIG5vIHdheQotLSAqIHRvIGNoZWNrIGFnYWluc3QgdGhhdCB2ZXJzaW9uLCBzbyB3ZSBhc3N1 bWUgaXQgZG9lcyBub3QgZXhpc3QgdW50aWwgdjAuNC4wCi0tICovCi0tdHlwZWRlZiBzdHJ1Y3Qg X3JtcV91cmkgewotLQljaGFyICp1c2VyOwotLQljaGFyICpwYXNzd29yZDsKLS0JY2hhciAqaG9z dDsKLS0JY2hhciAqdmhvc3Q7Ci0tCWludCBwb3J0OwotLQlpbnQgc3NsOwotLX0gcm1xX3VyaTsK LS0jZGVmaW5lIFJNUV9FTVBUWSBBTVFQX0VNUFRZX0JZVEVTCi0tI2VuZGlmCi0tCi0rI2luY2x1 ZGUgPHJhYmJpdG1xLWMvdGNwX3NvY2tldC5oPgotKyNpbmNsdWRlIDxyYWJiaXRtcS1jL3NzbF9z b2NrZXQuaD4KLSAKLSBlbnVtIHJtcV9zZXJ2ZXJfc3RhdGUgeyBSTVFTX09GRiwgUk1RU19JTklU LCBSTVFTX0NPTk4sIFJNUVNfT04sIFJNUVNfUFJFSU5JVCB9OwotIAotQEAgLTgyLDcgKzYwLDcg QEAgZW51bSBybXFfc2VydmVyX3N0YXRlIHsgUk1RU19PRkYsIFJNUVNfSU5JVCwgUk1RU19DT05O LCBSTVFTX09OLCBSTVFTX1BSRUlOSVQgfTsKLSAKLSB0eXBlZGVmIHN0cnVjdCBybXFfY29ubmVj dGlvbiB7Ci0gCWVudW0gcm1xX3NlcnZlcl9zdGF0ZSBzdGF0ZTsKLS0Jcm1xX3VyaSB1cmk7Ci0r CXN0cnVjdCBhbXFwX2Nvbm5lY3Rpb25faW5mbyB1cmk7Ci0gCXVuc2lnbmVkIGZsYWdzOwotIAlp bnQgaGVhcnRiZWF0OwotIAlzdHIgdGxzX2RvbV9uYW1lOwotZGlmZiAtLWdpdCBhL21vZHVsZXMv cmFiYml0bXFfY29uc3VtZXIvUkVBRE1FIGIvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9SRUFE TUUKLWluZGV4IDAyZGY2MDI0YmEuLjFmM2JjMDU4ZTEgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3Jh YmJpdG1xX2NvbnN1bWVyL1JFQURNRQotKysrIGIvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9S RUFETUUKLUBAIC03Miw4ICs3Miw4IEBAIENoYXB0ZXIgMS4gQWRtaW4gR3VpZGUKLSAgICBiZWZv cmUgcnVubmluZyBPcGVuU0lQUyB3aXRoIHRoaXMgbW9kdWxlIGxvYWRlZDoKLSAgICAgICogbGli cmFiYml0bXEtZGV2Ci0gCi0tICAgTk90ZSB0aGF0IHRoZSBtb2R1bGUgaXMgbm90IGNvbXBhdGli bGUgd2l0aCB2ZXJzaW9ucyAwLjQgb3IKLS0gICBiZWxvdyBvZiB0aGUgbGlicmFiYml0bXEtZGV2 IGxpYnJhcnkuCi0rICAgTm90ZSB0aGF0IHRoZSBtb2R1bGUgaXMgbm90IGNvbXBhdGlibGUgd2l0 aCB2ZXJzaW9ucyBiZWxvdyAwLjkKLSsgICBvZiB0aGUgbGlicmFiYml0bXEtZGV2IGxpYnJhcnku Ci0gCi0gMS4zLiBFeHBvcnRlZCBQYXJhbWV0ZXJzCi0gCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9y YWJiaXRtcV9jb25zdW1lci9kb2MvcmFiYml0bXFfY29uc3VtZXJfYWRtaW4ueG1sIGIvbW9kdWxl cy9yYWJiaXRtcV9jb25zdW1lci9kb2MvcmFiYml0bXFfY29uc3VtZXJfYWRtaW4ueG1sCi1pbmRl eCBhOGRhM2NiMmE3Li44NTZlZDczOTU0IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9yYWJiaXRtcV9j b25zdW1lci9kb2MvcmFiYml0bXFfY29uc3VtZXJfYWRtaW4ueG1sCi0rKysgYi9tb2R1bGVzL3Jh YmJpdG1xX2NvbnN1bWVyL2RvYy9yYWJiaXRtcV9jb25zdW1lcl9hZG1pbi54bWwKLUBAIC01MCw3 ICs1MCw3IEBACi0gCQkJPC9saXN0aXRlbT4KLSAJCQk8L2l0ZW1pemVkbGlzdD4KLSAJCTxwYXJh PgotLQkJCU5PdGUgdGhhdCB0aGUgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdmVyc2lv bnMgMC40IG9yIGJlbG93IG9mCi0rCQkJTm90ZSB0aGF0IHRoZSBtb2R1bGUgaXMgbm90IGNvbXBh dGlibGUgd2l0aCB2ZXJzaW9ucyBiZWxvdyAwLjkgb2YKLSAJCQl0aGUgbGlicmFiYml0bXEtZGV2 IGxpYnJhcnkuCi0gCQk8L3BhcmE+Ci0gCTwvc2VjdGlvbj4KLWRpZmYgLS1naXQgYS9tb2R1bGVz L3JhYmJpdG1xX2NvbnN1bWVyL3JhYmJpdG1xX2NvbnN1bWVyLmMgYi9tb2R1bGVzL3JhYmJpdG1x X2NvbnN1bWVyL3JhYmJpdG1xX2NvbnN1bWVyLmMKLWluZGV4IDY0NjJmNTcwOGMuLmM2Y2YyNDE3 ZGIgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3JhYmJpdG1xX2NvbnN1bWVyL3JhYmJpdG1xX2NvbnN1 bWVyLmMKLSsrKyBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvcmFiYml0bXFfY29uc3VtZXIu YwotQEAgLTk2LDcgKzk2LDkgQEAgc3RhdGljIGludCBtb2RfaW5pdCh2b2lkKQotIAkJCXJldHVy biAtMTsKLSAJCX0KLSAKLSsjaWYgQU1RUF9WRVJTSU9OX01BSk9SID09IDAgJiYgQU1RUF9WRVJT SU9OX01JTk9SIDwgMTMKLSAJCWFtcXBfc2V0X2luaXRpYWxpemVfc3NsX2xpYnJhcnkoMCk7Ci0r I2VuZGlmIC8vIEFNUVBfVkVSU0lPTl9NQUpPUiA9PSAwICYmIEFNUVBfVkVSU0lPTl9NSU5PUiA8 IDEzCi0gCX0KLSAKLSAJcmV0dXJuIDA7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9yYWJiaXRtcV9j b25zdW1lci9ybXFfY29ubmVjdGlvbi5oIGIvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9ybXFf Y29ubmVjdGlvbi5oCi1pbmRleCA4YWVhNDg3MTBhLi5hMzRhMGRlYjUxIDEwMDY0NAotLS0tIGEv bW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9ybXFfY29ubmVjdGlvbi5oCi0rKysgYi9tb2R1bGVz L3JhYmJpdG1xX2NvbnN1bWVyL3JtcV9jb25uZWN0aW9uLmgKLUBAIC0yMiw5ICsyMiw5IEBACi0g I2lmbmRlZiBfUk1RX0NPTk5FQ1RJT05fSF8KLSAjZGVmaW5lIF9STVFfQ09OTkVDVElPTl9IXwot IAotLSNpbmNsdWRlIDxhbXFwLmg+Ci0tI2luY2x1ZGUgPGFtcXBfdGNwX3NvY2tldC5oPgotLSNp bmNsdWRlIDxhbXFwX3NzbF9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8cmFiYml0bXEtYy9hbXFwLmg+ Ci0rI2luY2x1ZGUgPHJhYmJpdG1xLWMvdGNwX3NvY2tldC5oPgotKyNpbmNsdWRlIDxyYWJiaXRt cS1jL3NzbF9zb2NrZXQuaD4KLSAKLSAjaW5jbHVkZSAiLi4vLi4vbGliL2xpc3QuaCIKLSAjaW5j bHVkZSAiLi4vLi4vZXZpL2V2aV9wYXJhbXMuaCIKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDA1 LUZpeC11bmluaXRpYWxpemVkLXZhcmlhYmxlLXdhcm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0 Y2ggYi9vcGVuc2lwcy0wMDA1LUZpeC11bmluaXRpYWxpemVkLXZhcmlhYmxlLXdhcm5pbmdzLWlu LVNRTC1BUEktZnVuY3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZWVkZjk3MwotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zaXBzLTAwMDUtRml4LXVuaW5pdGlhbGl6 ZWQtdmFyaWFibGUtd2FybmluZ3MtaW4tU1FMLUFQSS1mdW5jdC5wYXRjaApAQCAtMCwwICsxLDE0 NSBAQAorRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWls LmNvbT4KK0RhdGU6IFN1biwgMjYgT2N0IDIwMjUgMTY6NTA6NTMgKzAxMDAKK1N1YmplY3Q6IFtQ QVRDSF0gRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZ3MgaW4gU1FMIEFQSSBmdW5j dGlvbnMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworRHVyaW5nIGNvbXBp bGF0aW9uIG9mIHNxbG9wcyBtb2R1bGUgd2l0aCBHQ0MgMTUsIHdhcm5pbmdzIGFwcGVhciBhYm91 dAorcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXM6CisKK2BgYAorQ29tcGlsaW5n IHNxbG9wc19kYi5jCitnY2MgLWZQSUMgLURQSUMgLU8yIC1mbHRvPWF1dG8gLWZmYXQtbHRvLW9i amVjdHMgLWZleGNlcHRpb25zIC1nIC1ncmVjb3JkLWdjYy1zd2l0Y2hlcyAtcGlwZSAtV2FsbCAt V25vLWNvbXBsYWluLXdyb25nLWxhbmcgLVdlcnJvcj1mb3JtYXQtc2VjdXJpdHkgLVdwLC1VX0ZP UlRJRllfU09VUkNFLC1EX0ZPUlRJRllfU09VUkNFPTMgLVdwLC1EX0dMSUJDWFhfQVNTRVJUSU9O UyAtc3BlY3M9L3Vzci9saWIvcnBtL3JlZGhhdC9yZWRoYXQtaGFyZGVuZWQtY2MxIC1mc3RhY2st cHJvdGVjdG9yLXN0cm9uZyAtc3BlY3M9L3Vzci9saWIvcnBtL3JlZGhhdC9yZWRoYXQtYW5ub2Jp bi1jYzEgLW02NCAtbWFyY2g9eDg2LTY0IC1tdHVuZT1nZW5lcmljIC1mYXN5bmNocm9ub3VzLXVu d2luZC10YWJsZXMgLWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uIC1mY2YtcHJvdGVjdGlvbiAtbXRs cy1kaWFsZWN0PWdudTIgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLW1uby1vbWl0LWxlYWYtZnJh bWUtcG9pbnRlciAtRE1PRF9OQU1FPSdzcWxvcHMnIC1EUEtHX01BTExPQyAgLURTSE1fTU1BUCAg LURVU0VfTUNBU1QgIC1ERElTQUJMRV9OQUdMRSAgLURTVEFUSVNUSUNTICAtREhBVkVfUkVTT0xW X1JFUyAgLURGX01BTExPQyAgLURRX01BTExPQyAgLURIUF9NQUxMT0MgIC1EREJHX01BTExPQyAg LURGX1BBUkFMTEVMX01BTExPQyAgLURIQVZFX1NUREFUT01JQyAtREhBVkVfR0VORVJJQ1MgIC1E TkFNRT0nIm9wZW5zaXBzIicgLURWRVJTSU9OPSciMy42LjIiJyAtREFSQ0g9JyJ4ODZfNjQiJyAt RE9TPScibGludXgiJyAtRENPTVBJTEVSPSciZ2NjIDE1IicgLURfX0NQVV94ODZfNjQgLURfX09T X2xpbnV4IC1EX19TTVBfeWVzIC1EQ0ZHX0RJUj0nIi9ldGMvb3BlbnNpcHMvIicgIC1EVkVSU0lP TlRZUEU9JyJnaXQiJyAtRFRISVNSRVZJU0lPTj0nIjk5NGJjZDY5MCInIC1ERkFTVF9MT0NLIC1E QURBUFRJVkVfV0FJVCAtREFEQVBUSVZFX1dBSVRfTE9PUFM9MTAyNCAtREhBVkVfR0VUSE9TVEJZ TkFNRTIgLURIQVZFX1VOSU9OX1NFTVVOIC1ESEFWRV9NU0dfTk9TSUdOQUwgLURIQVZFX01TR0hE Ul9NU0dfQ09OVFJPTCAtREhBVkVfQUxMT0NBX0ggLURIQVZFX1RJTUVHTSAtREhBVkVfRVBPTEwg LURIQVZFX1NJR0lPX1JUIC1ESEFWRV9TRUxFQ1QgLWMgc3Fsb3BzX2RiLmMgLW8gc3Fsb3BzX2Ri Lm8KK0luIGZpbGUgaW5jbHVkZWQgZnJvbSAuLi8uLi9tZW0vbWVtLmg6MzAsCisgICAgICAgICAg ICAgICAgIGZyb20gc3Fsb3BzX2RiLmM6Mjc6CitzcWxvcHNfZGIuYzogSW4gZnVuY3Rpb24g4oCY c3FsX2FwaV9kZWxldGXigJk6CisuLi8uLi9tZW0vLi4vZHByaW50Lmg6NDU0OjMzOiB3YXJuaW5n OiDigJhpZOKAmSBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIFstV21heWJlLXVuaW5pdGlhbGl6 ZWRdCisgIDQ1NCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHByaW50KF9sb2df bGV2ZWwsIF9sb2dfZmFjaWxpdHksIFwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorICA0NTUgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9HX1BSRUZJWF9VVElMKE1PRF9O QU1FKSwgX19EUF9GVU5DLCBcCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgNDU2 IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zdGRlcnJfcHJlZml4 IExPR19QUkVGSVggX2ZtdCwgXAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisgIDQ1NyB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSIlcyIgX3N5c2xv Z19wcmVmaXggTE9HX1BSRUZJWCBfZm10LCBcCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CisgIDQ1OCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY2hhciAqKV9mbXQsIFwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fgorICA0NTkgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZHBfdGltZSgpLCBkcF9teV9waWQoKSwgbG9nX3ByZWZpeCwgX19E UF9GVU5DLCAjIyBhcmdzKSBcCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CitzcWxvcHNfZGIuYzo5MjE6MTQ6IG5vdGU6IOKAmGlk4oCZIHdhcyBkZWNsYXJl ZCBoZXJlCisgIDkyMSB8ICAgICAgICAgc3RyICppZDsKKyAgICAgIHwgICAgICAgICAgICAgIF5+ CitgYGAKKworSW4gc3FsX2FwaV9zZWxlY3QoKSwgc3FsX2FwaV91cGRhdGUoKSwgc3FsX2FwaV9p bnNlcnQoKSwKK3NxbF9hcGlfZGVsZXRlKCksIGFuZCBzcWxfYXBpX3JlcGxhY2UoKSBmdW5jdGlv bnMsIHRoZSAnaWQnIHBvaW50ZXIKK3ZhcmlhYmxlICh1c2VkIGZvciBwcmVwYXJlZCBzdGF0ZW1l bnQgaWRlbnRpZmllcnMpIGlzIGRlY2xhcmVkIGJ1dCBjb3VsZAorYmUgdW5pbml0aWFsaXplZC4K KworTGV0J3MgZW5zdXJlIHRoYXQ6CisKKy0gVGhlIHZhcmlhYmxlIGlzIGFsd2F5cyBpbml0aWFs aXplZCAocHJldmVudHMgdW5kZWZpbmVkIGJlaGF2aW9yKQorLSBEZWJ1ZyBsb2dnaW5nIG9ubHkg b2NjdXJzIHdoZW4gYSBwcmVwYXJlZCBzdGF0ZW1lbnQgSUQgd2FzIGFjdHVhbGx5CisgIGdlbmVy YXRlZAorLSBUaGUgY29kZSBpcyBzYWZlIGV2ZW4gd2hlbiBubyBmaWx0ZXIga2V5cyBhcmUgcHJv dmlkZWQKKworTm90ZTogVGhpcyB3YXMgYSByZWFsIGJ1Zywgbm90IGp1c3QgYSBzcHVyaW91cyBj b21waWxlciB3YXJuaW5nLiBJbgorc2NlbmFyaW9zIHdoZXJlIERCX0NBUF9QUkVQQVJFRF9TVE1U IGlzIHN1cHBvcnRlZCwgX3F1ZXJ5X2lkX3N0YXJ0KCkKK3N1Y2NlZWRzLCBidXQgbm8gZmlsdGVy IGtleXMgZXhpc3QsIHRoZSBjb2RlIHdvdWxkIGRlcmVmZXJlbmNlIGFuCit1bmluaXRpYWxpemVk IHBvaW50ZXIuCisKK1NpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFp bC5jb20+CitBc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5h aT4KKworZGlmZiAtLWdpdCBhL21vZHVsZXMvc3Fsb3BzL3NxbG9wc19kYi5jIGIvbW9kdWxlcy9z cWxvcHMvc3Fsb3BzX2RiLmMKK2luZGV4IDhiNTdhMTNjNDguLmNmMzY0NTkzZjggMTAwNjQ0Cist LS0gYS9tb2R1bGVzL3NxbG9wcy9zcWxvcHNfZGIuYworKysrIGIvbW9kdWxlcy9zcWxvcHMvc3Fs b3BzX2RiLmMKK0BAIC03NTIsNyArNzUyLDggQEAgaW50IHNxbF9hcGlfc2VsZWN0KHN0cnVjdCBk Yl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgY0pTT04gKkpjb2xzLAorIAkoa2V5cyAm JiAoaWQ9X3F1ZXJ5X2lkX2FkZF9maWx0ZXIoa2V5cyxvcHMsbmspKT09TlVMTCkgKSB7CisgCQlM TV9EQkcoIm5vdCB1c2luZyBQU1xuIik7CisgCX0gZWxzZSB7CistCQlMTV9EQkcoIlBTIGlkIGlz IDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKKysJCWlmKGlkKQorKwkJCUxNX0RCRygiUFMgaWQg aXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOworIAkJaWYgKHBzX21hcCE9TlVMTCB8fCAocHNf bWFwPW1hcF9jcmVhdGUoMCkpIT1OVUxMKSB7CisgCQkJaWYgKCAobXlfcHM9bWFwX2dldCggcHNf bWFwLCAqaWQgKSkhPU5VTEwpIHsKKyAJCQkJTE1fREJHKCJ1c2luZyBQUyAlcFxuIiwqbXlfcHMp OworQEAgLTgwNCw3ICs4MDUsNyBAQCBpbnQgc3FsX2FwaV91cGRhdGUoc3RydWN0IGRiX3VybCAq dXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBjSlNPTiAqSmNvbHMsCisgCWRiX29wX3QgKnVvcHMs ICpvcHM7CisgCWRiX3ZhbF90ICp1dmFscywgKnZhbHM7CisgCWludCBuaywgdW5rOworLQlzdHIg KmlkOworKwlzdHIgKmlkID0gTlVMTDsKKyAJZGJfcHNfdCAqbXlfcHM7CisgCisgCS8qIGNvbnZl cnQgSlNPTiB0byBDT0xzICovCitAQCAtODM4LDcgKzgzOSw4IEBAIGludCBzcWxfYXBpX3VwZGF0 ZShzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIGNKU09OICpKY29scywK KyAJKGtleXMgJiYgKGlkPV9xdWVyeV9pZF9hZGRfZmlsdGVyKGtleXMsb3BzLG5rKSk9PU5VTEwp ICkgeworIAkJTE1fREJHKCJub3QgdXNpbmcgUFNcbiIpOworIAl9IGVsc2UgeworLQkJTE1fREJH KCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7CisrCQlpZihpZCkKKysJCQlMTV9E QkcoIlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKKyAJCWlmIChwc19tYXAhPU5V TEwgfHwgKHBzX21hcD1tYXBfY3JlYXRlKDApKSE9TlVMTCkgeworIAkJCWlmICggKG15X3BzPW1h cF9nZXQoIHBzX21hcCwgKmlkICkpIT1OVUxMKSB7CisgCQkJCUxNX0RCRygidXNpbmcgUFMgJXBc biIsKm15X3BzKTsKK0BAIC04NjgsNyArODcwLDcgQEAgaW50IHNxbF9hcGlfaW5zZXJ0KHN0cnVj dCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgc3RyICp0YWJsZSwKKyAJZGJfb3Bf dCAqdW9wczsKKyAJZGJfdmFsX3QgKnV2YWxzOworIAlpbnQgdW5rOworLQlzdHIgKmlkOworKwlz dHIgKmlkID0gTlVMTDsKKyAJZGJfcHNfdCAqbXlfcHM7CisgCisgCS8qIGNvbnZlcnQgSlNPTiB0 byBDT0xzICovCitAQCAtODg4LDcgKzg5MCw4IEBAIGludCBzcWxfYXBpX2luc2VydChzdHJ1Y3Qg ZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIHN0ciAqdGFibGUsCisgCShpZD1fcXVl cnlfaWRfYWRkX2ZpbHRlcih1a2V5cyx1b3BzLHVuaykpPT1OVUxMICkgeworIAkJTE1fREJHKCJu b3QgdXNpbmcgUFNcbiIpOworIAl9IGVsc2UgeworLQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5c biIsaWQtPmxlbixpZC0+cyk7CisrCQlpZihpZCkKKysJCQlMTV9EQkcoIlBTIGlkIGlzIDwlLipz PlxuIixpZC0+bGVuLGlkLT5zKTsKKyAJCWlmIChwc19tYXAhPU5VTEwgfHwgKHBzX21hcD1tYXBf Y3JlYXRlKDApKSE9TlVMTCkgeworIAkJCWlmICggKG15X3BzPW1hcF9nZXQoIHBzX21hcCwgKmlk ICkpIT1OVUxMKSB7CisgCQkJCUxNX0RCRygidXNpbmcgUFMgJXBcbiIsKm15X3BzKTsKK0BAIC05 MTgsNyArOTIxLDcgQEAgaW50IHNxbF9hcGlfZGVsZXRlKHN0cnVjdCBkYl91cmwgKnVybCwgc3Ry dWN0IHNpcF9tc2cqIG1zZywKKyAJZGJfb3BfdCAqb3BzOworIAlkYl92YWxfdCAqdmFsczsKKyAJ aW50IG5rOworLQlzdHIgKmlkOworKwlzdHIgKmlkID0gTlVMTDsKKyAJZGJfcHNfdCAqbXlfcHM7 CisgCisgCS8qIGNvbnZlcnQgSlNPTiB0byBrZXlzICovCitAQCAtOTQ1LDcgKzk0OCw4IEBAIGlu dCBzcWxfYXBpX2RlbGV0ZShzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2cs CisgCShrZXlzICYmIChpZD1fcXVlcnlfaWRfYWRkX2ZpbHRlcihrZXlzLG9wcyxuaykpPT1OVUxM KSApIHsKKyAJCUxNX0RCRygibm90IHVzaW5nIFBTXG4iKTsKKyAJfSBlbHNlIHsKKy0JCUxNX0RC RygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOworKwkJaWYoaWQpCisrCQkJTE1f REJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7CisgCQlpZiAocHNfbWFwIT1O VUxMIHx8IChwc19tYXA9bWFwX2NyZWF0ZSgwKSkhPU5VTEwpIHsKKyAJCQlpZiAoIChteV9wcz1t YXBfZ2V0KCBwc19tYXAsICppZCApKSE9TlVMTCkgeworIAkJCQlMTV9EQkcoInVzaW5nIFBTICVw XG4iLCpteV9wcyk7CitAQCAtOTc1LDcgKzk3OSw3IEBAIGludCBzcWxfYXBpX3JlcGxhY2Uoc3Ry dWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBzdHIgKnRhYmxlLAorIAlkYl9v cF90ICp1b3BzOworIAlkYl92YWxfdCAqdXZhbHM7CisgCWludCB1bms7CistCXN0ciAqaWQ7Cisr CXN0ciAqaWQgPSBOVUxMOworIAlkYl9wc190ICpteV9wczsKKyAKKyAJLyogY29udmVydCBKU09O IHRvIENPTHMgKi8KK0BAIC05OTUsNyArOTk5LDggQEAgaW50IHNxbF9hcGlfcmVwbGFjZShzdHJ1 Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIHN0ciAqdGFibGUsCisgCShpZD1f cXVlcnlfaWRfYWRkX2ZpbHRlcih1a2V5cyx1b3BzLHVuaykpPT1OVUxMICkgeworIAkJTE1fREJH KCJub3QgdXNpbmcgUFNcbiIpOworIAl9IGVsc2UgeworLQkJTE1fREJHKCJQUyBpZCBpcyA8JS4q cz5cbiIsaWQtPmxlbixpZC0+cyk7CisrCQlpZihpZCkKKysJCQlMTV9EQkcoIlBTIGlkIGlzIDwl LipzPlxuIixpZC0+bGVuLGlkLT5zKTsKKyAJCWlmIChwc19tYXAhPU5VTEwgfHwgKHBzX21hcD1t YXBfY3JlYXRlKDApKSE9TlVMTCkgeworIAkJCWlmICggKG15X3BzPW1hcF9nZXQoIHBzX21hcCwg KmlkICkpIT1OVUxMKSB7CisgCQkJCUxNX0RCRygidXNpbmcgUFMgJXBcbiIsKm15X3BzKTsKCmRp ZmYgLS1naXQgYS9vcGVuc2lwcy0wMDA2LUZpeC11bmluaXRpYWxpemVkLXZhX2xpc3Qtd2Fybmlu Zy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0Y2ggYi9vcGVuc2lwcy0wMDA2LUZpeC11bmluaXRpYWxp emVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU3Y2VmNQotLS0gL2Rldi9udWxsCisrKyBiL29wZW5z aXBzLTAwMDYtRml4LXVuaW5pdGlhbGl6ZWQtdmFfbGlzdC13YXJuaW5nLW9uLXBwYzY0bGUtYW5k LWk2OC5wYXRjaApAQCAtMCwwICsxLDEwMCBAQAorRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGV0ZXIg TGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjYgRGVjIDIwMjUgMTc6 MjU6MDUgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IHVuaW5pdGlhbGl6ZWQgdmFfbGlzdCB3 YXJuaW5nIG9uIHBwYzY0bGUgYW5kIGk2ODYgd2l0aAorIEdDQyAxNQorCitEdXJpbmcgY29tcGls YXRpb24gb24gcHBjNjRsZSBhbmQgaTY4NiBhcmNoaXRlY3R1cmVzIHdpdGggR0NDIDE1LCBhCit3 YXJuaW5nIGFwcGVhcnM6CisKK2BgYAorY2FjaGVkYl9yZWRpc19kYmFzZS5jOiBJbiBmdW5jdGlv biAncmVkaXNfcnVuX2NvbW1hbmRfYXJndic6CitjYWNoZWRiX3JlZGlzX2RiYXNlLmM6NjU5OjE2 OiB3YXJuaW5nOiAnXycgaXMgdXNlZCB1bmluaXRpYWxpemVkIFstV3VuaW5pdGlhbGl6ZWRdCisg IDY1OSB8ICAgICAgICAgcmV0dXJuIF9yZWRpc19ydW5fY29tbWFuZChjb25uZWN0aW9uLCBycGws IGtleSwgYXJnYywgYXJndiwgYXJndmxlbiwgTlVMTCwgXyk7CisgICAgICB8ICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KK2NhY2hlZGJfcmVkaXNfZGJhc2UuYzo2NTc6MTc6IG5vdGU6ICdf JyB3YXMgZGVjbGFyZWQgaGVyZQorICA2NTcgfCAgICAgICAgIHZhX2xpc3QgXzsKKyAgICAgIHwg ICAgICAgICAgICAgICAgIF4KK2BgYAorCitJbiBjb21taXQgZDZhZDZkNDAzOWZjZjY4NjI0NDgx ZjY5ZWU2N2VmZjkyZjdiM2FiMiwgdGhlCitgcmVkaXNfcnVuX2NvbW1hbmRfYXJndigpYCBmdW5j dGlvbiB3YXMgbW9kaWZpZWQgdG8gcGFzcyBhbgordW5pbml0aWFsaXplZCBgdmFfbGlzdGAgdG8g YF9yZWRpc19ydW5fY29tbWFuZCgpYC4KKworVGhlIG9yaWdpbmFsIGxvZ2ljIGlzOgorYGBgYwor c3RhdGljIGludCByZWRpc19ydW5fY29tbWFuZF9hcmd2KC4uLikgeworICAgIHZhX2xpc3QgXzsK KyAgICByZXR1cm4gX3JlZGlzX3J1bl9jb21tYW5kKGNvbm5lY3Rpb24sIHJwbCwga2V5LCBhcmdj LCBhcmd2LCBhcmd2bGVuLCBOVUxMLCBfKTsKK30KK2BgYAorCitUaGUgdW5kZXJzY29yZSBgX2Ag d2FzIHVzZWQgYXMgYSAiZG9uJ3QgY2FyZSIgcGxhY2Vob2xkZXIsIHNpbmNlIHdoZW4KK2Bhcmdj YCBpcyBub24temVybywgYF9yZWRpc19ydW5fY29tbWFuZCgpYCB1c2VzIHRoZSBgYXJndmAgcGF0 aCBhbmQKK25ldmVyIGFjY2Vzc2VzIHRoZSBgdmFfbGlzdGAgcGFyYW1ldGVyOgorCitgYGBjCitp ZiAoYXJnYykgeworICAgIHJlcGx5ID0gcmVkaXNDb21tYW5kQXJndihub2RlLT5jb250ZXh0LCBh cmdjLCBhcmd2LCBhcmd2bGVuKTsKK30gZWxzZSB7CisgICAgdmFfY29weShhcSwgYXApOyAgLy8g T25seSBleGVjdXRlZCB3aGVuIGFyZ2MgPT0gMAorICAgIHJlcGx5ID0gcmVkaXN2Q29tbWFuZChu b2RlLT5jb250ZXh0LCBjbWRfZm10LCBhcSk7CisgICAgdmFfZW5kKGFxKTsKK30KK2BgYAorCitX aGlsZSB0aGlzIHdvcmtlZCBpbiBwcmFjdGljZSAodGhlIHVuaW5pdGlhbGl6ZWQgYHZhX2xpc3Rg IGlzIG5ldmVyCithY3R1YWxseSB1c2VkKSwgR0NDIDE1IG5vdyBjb3JyZWN0bHkgd2FybnMgdGhh dCBwYXNzaW5nIHVuaW5pdGlhbGl6ZWQKK2RhdGEgaXMgdW5kZWZpbmVkIGJlaGF2aW9yLCBldmVu IGlmIHRoYXQgZGF0YSBpcyBuZXZlciBhY2Nlc3NlZC4KKworSW5pdGlhbGl6ZSB0aGUgYHZhX2xp c3RgIHRvIGEgc2FmZSB2YWx1ZSB1c2luZyB6ZXJvLWluaXRpYWxpemF0aW9uLiBUaGlzCitzYXRp c2ZpZXMgdGhlIGNvbXBpbGVyJ3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjaGVjayB3aGlsZSBt YWludGFpbmluZwordGhlIG9yaWdpbmFsIGxvZ2ljIC0gdGhlIGB2YV9saXN0YCBzdGlsbCB3b24n dCBiZSB1c2VkIHdoZW4gYGFyZ2NgIGlzCitub24temVybywgYnV0IGl0J3Mgbm93IHZhbGlkbHkg aW5pdGlhbGl6ZWQuCisKKyoqQ2hhbmdlZDoqKgorYGBgYwordmFfbGlzdCBfOworYGBgCisKKyoq VG86KioKK2BgYGMKK3ZhX2xpc3QgdW51c2VkX2FwID0gezB9OworYGBgCisKK0Fsc28gcmVuYW1l ZCBmcm9tIGBfYCB0byBgdW51c2VkX2FwYCBmb3IgY2xhcml0eSwgYXMgc2luZ2xlIHVuZGVyc2Nv cmUKK2lkZW50aWZpZXJzIGNhbiBiZSBwcm9ibGVtYXRpYyBhbmQgZG9uJ3QgY2xlYXJseSBjb252 ZXkgaW50ZW50LgorCitFdmVuIHRob3VnaCB0aGUgdW5pbml0aWFsaXplZCBgdmFfbGlzdGAgaXMg bmV2ZXIgYWNjZXNzZWQgaW4gcHJhY3RpY2UsCitwYXNzaW5nIHVuaW5pdGlhbGl6ZWQgZGF0YSB2 aW9sYXRlcyBDJ3MgcnVsZXMgYW5kIGNhbiBjYXVzZSBpc3N1ZXMgd2l0aDoKKworLSBTdGF0aWMg YW5hbHlzaXMgdG9vbHMKKy0gQ29tcGlsZXIgb3B0aW1pemF0aW9ucyB0aGF0IGFzc3VtZSBubyB1 bmRlZmluZWQgYmVoYXZpb3IKKy0gRnV0dXJlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBgdmFfbGlz dGAgaW1wbGVtZW50YXRpb25zCistIENvZGUgbWFpbnRhaW5hYmlsaXR5ICh1bmNsZWFyIGludGVu dCkKKworVGhpcyBjaGFuZ2UgbWFrZXMgdGhlIGNvZGUgY29tcGxpYW50IHdpdGggQyBzdGFuZGFy ZHMgd2hpbGUgcHJlc2VydmluZwordGhlIG9yaWdpbmFsIGZ1bmN0aW9uYWxpdHkuCisKK1JlbGF0 ZWQgY29tbWl0OiBkNmFkNmQ0MDM5ZmNmNjg2MjQ0ODFmNjllZTY3ZWZmOTJmN2IzYWIyCisoImNh Y2hlZGJfcmVkaXM6IHByb3Blcmx5IHBhc3MgdmFyaWFibGUgYXJndW1lbnRzIHRvIGEgUmVkaXMg Y29tbWFuZCIpCisKK1NpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFp bC5jb20+CitBc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5h aT4KKworZGlmZiAtLWdpdCBhL21vZHVsZXMvY2FjaGVkYl9yZWRpcy9jYWNoZWRiX3JlZGlzX2Ri YXNlLmMgYi9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRpc19kYmFzZS5jCitpbmRl eCAxNzUwNDk1MzMzLi4zMmVjNGQyZjE4IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9jYWNoZWRiX3Jl ZGlzL2NhY2hlZGJfcmVkaXNfZGJhc2UuYworKysrIGIvbW9kdWxlcy9jYWNoZWRiX3JlZGlzL2Nh Y2hlZGJfcmVkaXNfZGJhc2UuYworQEAgLTEwMDcsOSArMTAwNyw5IEBAIHN0YXRpYyBpbnQgcmVk aXNfcnVuX2NvbW1hbmQoY2FjaGVkYl9jb24gKmNvbm5lY3Rpb24sIHJlZGlzUmVwbHkgKipycGws Cisgc3RhdGljIGludCByZWRpc19ydW5fY29tbWFuZF9hcmd2KGNhY2hlZGJfY29uICpjb25uZWN0 aW9uLCByZWRpc1JlcGx5ICoqcnBsLAorICAgICAgICAgICAgICAgc3RyICprZXksIGludCBhcmdj LCBjb25zdCBjaGFyICoqYXJndiwgY29uc3Qgc2l6ZV90ICphcmd2bGVuKQorIHsKKy0JdmFfbGlz dCBfOworKwl2YV9saXN0IHVudXNlZF9hcCA9IHswfTsKKyAKKy0JcmV0dXJuIF9yZWRpc19ydW5f Y29tbWFuZChjb25uZWN0aW9uLCBycGwsIGtleSwgYXJnYywgYXJndiwgYXJndmxlbiwgTlVMTCwg Xyk7CisrCXJldHVybiBfcmVkaXNfcnVuX2NvbW1hbmQoY29ubmVjdGlvbiwgcnBsLCBrZXksIGFy Z2MsIGFyZ3YsIGFyZ3ZsZW4sIE5VTEwsIHVudXNlZF9hcCk7CisgfQorIAorIGludCByZWRpc19n ZXQoY2FjaGVkYl9jb24gKmNvbm5lY3Rpb24sc3RyICphdHRyLHN0ciAqdmFsKQoKZGlmZiAtLWdp dCBhL29wZW5zaXBzLTAwMDYtRml4LXVuaW5pdGlhbGl6ZWQtdmFyaWFibGUtd2FybmluZ3MtaW4t U1FMLUFQSS1mdW5jdC5wYXRjaCBiL29wZW5zaXBzLTAwMDYtRml4LXVuaW5pdGlhbGl6ZWQtdmFy aWFibGUtd2FybmluZ3MtaW4tU1FMLUFQSS1mdW5jdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYTUzMmJmMC4uMDAwMDAwMAotLS0gYS9vcGVuc2lwcy0wMDA2LUZpeC11bmlu aXRpYWxpemVkLXZhcmlhYmxlLXdhcm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVt ZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjYgT2N0IDIwMjUgMTY6NTA6 NTMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2Fy bmluZ3MgaW4gU1FMIEFQSSBmdW5jdGlvbnMKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKLQotRHVyaW5nIGNvbXBpbGF0aW9uIG9mIHNxbG9wcyBtb2R1bGUgd2l0aCBHQ0MgMTUs IHdhcm5pbmdzIGFwcGVhciBhYm91dAotcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJs ZXM6Ci0KLWBgYAotQ29tcGlsaW5nIHNxbG9wc19kYi5jCi1nY2MgLWZQSUMgLURQSUMgLU8yIC1m bHRvPWF1dG8gLWZmYXQtbHRvLW9iamVjdHMgLWZleGNlcHRpb25zIC1nIC1ncmVjb3JkLWdjYy1z d2l0Y2hlcyAtcGlwZSAtV2FsbCAtV25vLWNvbXBsYWluLXdyb25nLWxhbmcgLVdlcnJvcj1mb3Jt YXQtc2VjdXJpdHkgLVdwLC1VX0ZPUlRJRllfU09VUkNFLC1EX0ZPUlRJRllfU09VUkNFPTMgLVdw LC1EX0dMSUJDWFhfQVNTRVJUSU9OUyAtc3BlY3M9L3Vzci9saWIvcnBtL3JlZGhhdC9yZWRoYXQt aGFyZGVuZWQtY2MxIC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAtc3BlY3M9L3Vzci9saWIvcnBt L3JlZGhhdC9yZWRoYXQtYW5ub2Jpbi1jYzEgLW02NCAtbWFyY2g9eDg2LTY0IC1tdHVuZT1nZW5l cmljIC1mYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMgLWZzdGFjay1jbGFzaC1wcm90ZWN0aW9u IC1mY2YtcHJvdGVjdGlvbiAtbXRscy1kaWFsZWN0PWdudTIgLWZuby1vbWl0LWZyYW1lLXBvaW50 ZXIgLW1uby1vbWl0LWxlYWYtZnJhbWUtcG9pbnRlciAtRE1PRF9OQU1FPSdzcWxvcHMnIC1EUEtH X01BTExPQyAgLURTSE1fTU1BUCAgLURVU0VfTUNBU1QgIC1ERElTQUJMRV9OQUdMRSAgLURTVEFU SVNUSUNTICAtREhBVkVfUkVTT0xWX1JFUyAgLURGX01BTExPQyAgLURRX01BTExPQyAgLURIUF9N QUxMT0MgIC1EREJHX01BTExPQyAgLURGX1BBUkFMTEVMX01BTExPQyAgLURIQVZFX1NUREFUT01J QyAtREhBVkVfR0VORVJJQ1MgIC1ETkFNRT0nIm9wZW5zaXBzIicgLURWRVJTSU9OPSciMy42LjIi JyAtREFSQ0g9JyJ4ODZfNjQiJyAtRE9TPScibGludXgiJyAtRENPTVBJTEVSPSciZ2NjIDE1Iicg LURfX0NQVV94ODZfNjQgLURfX09TX2xpbnV4IC1EX19TTVBfeWVzIC1EQ0ZHX0RJUj0nIi9ldGMv b3BlbnNpcHMvIicgIC1EVkVSU0lPTlRZUEU9JyJnaXQiJyAtRFRISVNSRVZJU0lPTj0nIjk5NGJj ZDY5MCInIC1ERkFTVF9MT0NLIC1EQURBUFRJVkVfV0FJVCAtREFEQVBUSVZFX1dBSVRfTE9PUFM9 MTAyNCAtREhBVkVfR0VUSE9TVEJZTkFNRTIgLURIQVZFX1VOSU9OX1NFTVVOIC1ESEFWRV9NU0df Tk9TSUdOQUwgLURIQVZFX01TR0hEUl9NU0dfQ09OVFJPTCAtREhBVkVfQUxMT0NBX0ggLURIQVZF X1RJTUVHTSAtREhBVkVfRVBPTEwgLURIQVZFX1NJR0lPX1JUIC1ESEFWRV9TRUxFQ1QgLWMgc3Fs b3BzX2RiLmMgLW8gc3Fsb3BzX2RiLm8KLUluIGZpbGUgaW5jbHVkZWQgZnJvbSAuLi8uLi9tZW0v bWVtLmg6MzAsCi0gICAgICAgICAgICAgICAgIGZyb20gc3Fsb3BzX2RiLmM6Mjc6Ci1zcWxvcHNf ZGIuYzogSW4gZnVuY3Rpb24g4oCYc3FsX2FwaV9kZWxldGXigJk6Ci0uLi8uLi9tZW0vLi4vZHBy aW50Lmg6NDU0OjMzOiB3YXJuaW5nOiDigJhpZOKAmSBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVk IFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCi0gIDQ1NCB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZHByaW50KF9sb2dfbGV2ZWwsIF9sb2dfZmFjaWxpdHksIFwKLSAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgotICA0NTUgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TE9HX1BSRUZJWF9VVElMKE1PRF9OQU1FKSwgX19EUF9GVU5DLCBcCi0gICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KLSAgNDU2IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9zdGRlcnJfcHJlZml4IExPR19QUkVGSVggX2ZtdCwgXAotICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+Ci0gIDQ1NyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY2hhciAqKSIlcyIgX3N5c2xvZ19wcmVmaXggTE9HX1BSRUZJWCBfZm10LCBcCi0gICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0gIDQ1OCB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKV9mbXQsIFwKLSAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fgotICA0NTkgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHBfdGltZSgpLCBkcF9teV9w aWQoKSwgbG9nX3ByZWZpeCwgX19EUF9GVU5DLCAjIyBhcmdzKSBcCi0gICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci1zcWxvcHNfZGIuYzo5MjE6MTQ6IG5vdGU6 IOKAmGlk4oCZIHdhcyBkZWNsYXJlZCBoZXJlCi0gIDkyMSB8ICAgICAgICAgc3RyICppZDsKLSAg ICAgIHwgICAgICAgICAgICAgIF5+Ci1gYGAKLQotSW4gc3FsX2FwaV9zZWxlY3QoKSwgc3FsX2Fw aV91cGRhdGUoKSwgc3FsX2FwaV9pbnNlcnQoKSwKLXNxbF9hcGlfZGVsZXRlKCksIGFuZCBzcWxf YXBpX3JlcGxhY2UoKSBmdW5jdGlvbnMsIHRoZSAnaWQnIHBvaW50ZXIKLXZhcmlhYmxlICh1c2Vk IGZvciBwcmVwYXJlZCBzdGF0ZW1lbnQgaWRlbnRpZmllcnMpIGlzIGRlY2xhcmVkIGJ1dCBjb3Vs ZAotYmUgdW5pbml0aWFsaXplZC4KLQotTGV0J3MgZW5zdXJlIHRoYXQ6Ci0KLS0gVGhlIHZhcmlh YmxlIGlzIGFsd2F5cyBpbml0aWFsaXplZCAocHJldmVudHMgdW5kZWZpbmVkIGJlaGF2aW9yKQot LSBEZWJ1ZyBsb2dnaW5nIG9ubHkgb2NjdXJzIHdoZW4gYSBwcmVwYXJlZCBzdGF0ZW1lbnQgSUQg d2FzIGFjdHVhbGx5Ci0gIGdlbmVyYXRlZAotLSBUaGUgY29kZSBpcyBzYWZlIGV2ZW4gd2hlbiBu byBmaWx0ZXIga2V5cyBhcmUgcHJvdmlkZWQKLQotTm90ZTogVGhpcyB3YXMgYSByZWFsIGJ1Zywg bm90IGp1c3QgYSBzcHVyaW91cyBjb21waWxlciB3YXJuaW5nLiBJbgotc2NlbmFyaW9zIHdoZXJl IERCX0NBUF9QUkVQQVJFRF9TVE1UIGlzIHN1cHBvcnRlZCwgX3F1ZXJ5X2lkX3N0YXJ0KCkKLXN1 Y2NlZWRzLCBidXQgbm8gZmlsdGVyIGtleXMgZXhpc3QsIHRoZSBjb2RlIHdvdWxkIGRlcmVmZXJl bmNlIGFuCi11bmluaXRpYWxpemVkIHBvaW50ZXIuCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExl bWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1Bc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9w aWMpIDxodHRwczovL2NsYXVkZS5haT4KLQotZGlmZiAtLWdpdCBhL21vZHVsZXMvc3Fsb3BzL3Nx bG9wc19kYi5jIGIvbW9kdWxlcy9zcWxvcHMvc3Fsb3BzX2RiLmMKLWluZGV4IDVkZTdiNTU5OTUu LmNmMzY0NTkzZjggMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NxbG9wcy9zcWxvcHNfZGIuYwotKysr IGIvbW9kdWxlcy9zcWxvcHMvc3Fsb3BzX2RiLmMKLUBAIC03MTMsNyArNzEzLDcgQEAgaW50IHNx bF9hcGlfc2VsZWN0KHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgY0pT T04gKkpjb2xzLAotIAlkYl9vcF90ICpvcHM7Ci0gCWRiX3ZhbF90ICp2YWxzOwotIAlpbnQgbmss IG5jOwotLQlzdHIgKmlkOwotKwlzdHIgKmlkID0gTlVMTDsKLSAJZGJfcHNfdCAqbXlfcHM7Ci0g Ci0gCS8qIGNvbnZlcnQgSlNPTiB0byBDT0xzICovCi1AQCAtNzUyLDcgKzc1Miw4IEBAIGludCBz cWxfYXBpX3NlbGVjdChzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIGNK U09OICpKY29scywKLSAJKGtleXMgJiYgKGlkPV9xdWVyeV9pZF9hZGRfZmlsdGVyKGtleXMsb3Bz LG5rKSk9PU5VTEwpICkgewotIAkJTE1fREJHKCJub3QgdXNpbmcgUFNcbiIpOwotIAl9IGVsc2Ug ewotLQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0rCQlpZihp ZCkKLSsJCQlMTV9EQkcoIlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSAJCWlm IChwc19tYXAhPU5VTEwgfHwgKHBzX21hcD1tYXBfY3JlYXRlKDApKSE9TlVMTCkgewotIAkJCWlm ICggKG15X3BzPW1hcF9nZXQoIHBzX21hcCwgKmlkICkpIT1OVUxMKSB7Ci0gCQkJCUxNX0RCRygi dXNpbmcgUFMgJXBcbiIsKm15X3BzKTsKLUBAIC04MDQsNyArODA1LDcgQEAgaW50IHNxbF9hcGlf dXBkYXRlKHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgY0pTT04gKkpj b2xzLAotIAlkYl9vcF90ICp1b3BzLCAqb3BzOwotIAlkYl92YWxfdCAqdXZhbHMsICp2YWxzOwot IAlpbnQgbmssIHVuazsKLS0Jc3RyICppZDsKLSsJc3RyICppZCA9IE5VTEw7Ci0gCWRiX3BzX3Qg Km15X3BzOwotIAotIAkvKiBjb252ZXJ0IEpTT04gdG8gQ09McyAqLwotQEAgLTgzOCw3ICs4Mzks OCBAQCBpbnQgc3FsX2FwaV91cGRhdGUoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21z ZyogbXNnLCBjSlNPTiAqSmNvbHMsCi0gCShrZXlzICYmIChpZD1fcXVlcnlfaWRfYWRkX2ZpbHRl cihrZXlzLG9wcyxuaykpPT1OVUxMKSApIHsKLSAJCUxNX0RCRygibm90IHVzaW5nIFBTXG4iKTsK LSAJfSBlbHNlIHsKLS0JCUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMp OwotKwkJaWYoaWQpCi0rCQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+ cyk7Ci0gCQlpZiAocHNfbWFwIT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0ZSgwKSkhPU5VTEwp IHsKLSAJCQlpZiAoIChteV9wcz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9TlVMTCkgewotIAkJ CQlMTV9EQkcoInVzaW5nIFBTICVwXG4iLCpteV9wcyk7Ci1AQCAtODY4LDcgKzg3MCw3IEBAIGlu dCBzcWxfYXBpX2luc2VydChzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2cs IHN0ciAqdGFibGUsCi0gCWRiX29wX3QgKnVvcHM7Ci0gCWRiX3ZhbF90ICp1dmFsczsKLSAJaW50 IHVuazsKLS0Jc3RyICppZDsKLSsJc3RyICppZCA9IE5VTEw7Ci0gCWRiX3BzX3QgKm15X3BzOwot IAotIAkvKiBjb252ZXJ0IEpTT04gdG8gQ09McyAqLwotQEAgLTg4OCw3ICs4OTAsOCBAQCBpbnQg c3FsX2FwaV9pbnNlcnQoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBz dHIgKnRhYmxlLAotIAkoaWQ9X3F1ZXJ5X2lkX2FkZF9maWx0ZXIodWtleXMsdW9wcyx1bmspKT09 TlVMTCApIHsKLSAJCUxNX0RCRygibm90IHVzaW5nIFBTXG4iKTsKLSAJfSBlbHNlIHsKLS0JCUxN X0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOwotKwkJaWYoaWQpCi0rCQkJ TE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0gCQlpZiAocHNfbWFw IT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0ZSgwKSkhPU5VTEwpIHsKLSAJCQlpZiAoIChteV9w cz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9TlVMTCkgewotIAkJCQlMTV9EQkcoInVzaW5nIFBT ICVwXG4iLCpteV9wcyk7Ci1AQCAtOTE4LDcgKzkyMSw3IEBAIGludCBzcWxfYXBpX2RlbGV0ZShz dHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csCi0gCWRiX29wX3QgKm9wczsK LSAJZGJfdmFsX3QgKnZhbHM7Ci0gCWludCBuazsKLS0Jc3RyICppZDsKLSsJc3RyICppZCA9IE5V TEw7Ci0gCWRiX3BzX3QgKm15X3BzOwotIAotIAkvKiBjb252ZXJ0IEpTT04gdG8ga2V5cyAqLwot QEAgLTk0NSw3ICs5NDgsOCBAQCBpbnQgc3FsX2FwaV9kZWxldGUoc3RydWN0IGRiX3VybCAqdXJs LCBzdHJ1Y3Qgc2lwX21zZyogbXNnLAotIAkoa2V5cyAmJiAoaWQ9X3F1ZXJ5X2lkX2FkZF9maWx0 ZXIoa2V5cyxvcHMsbmspKT09TlVMTCkgKSB7Ci0gCQlMTV9EQkcoIm5vdCB1c2luZyBQU1xuIik7 Ci0gCX0gZWxzZSB7Ci0tCQlMTV9EQkcoIlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5z KTsKLSsJCWlmKGlkKQotKwkJCUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQt PnMpOwotIAkJaWYgKHBzX21hcCE9TlVMTCB8fCAocHNfbWFwPW1hcF9jcmVhdGUoMCkpIT1OVUxM KSB7Ci0gCQkJaWYgKCAobXlfcHM9bWFwX2dldCggcHNfbWFwLCAqaWQgKSkhPU5VTEwpIHsKLSAJ CQkJTE1fREJHKCJ1c2luZyBQUyAlcFxuIiwqbXlfcHMpOwotQEAgLTk3NSw3ICs5NzksNyBAQCBp bnQgc3FsX2FwaV9yZXBsYWNlKHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1z Zywgc3RyICp0YWJsZSwKLSAJZGJfb3BfdCAqdW9wczsKLSAJZGJfdmFsX3QgKnV2YWxzOwotIAlp bnQgdW5rOwotLQlzdHIgKmlkOwotKwlzdHIgKmlkID0gTlVMTDsKLSAJZGJfcHNfdCAqbXlfcHM7 Ci0gCi0gCS8qIGNvbnZlcnQgSlNPTiB0byBDT0xzICovCi1AQCAtOTk1LDcgKzk5OSw4IEBAIGlu dCBzcWxfYXBpX3JlcGxhY2Uoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNn LCBzdHIgKnRhYmxlLAotIAkoaWQ9X3F1ZXJ5X2lkX2FkZF9maWx0ZXIodWtleXMsdW9wcyx1bmsp KT09TlVMTCApIHsKLSAJCUxNX0RCRygibm90IHVzaW5nIFBTXG4iKTsKLSAJfSBlbHNlIHsKLS0J CUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOwotKwkJaWYoaWQpCi0r CQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0gCQlpZiAocHNf bWFwIT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0ZSgwKSkhPU5VTEwpIHsKLSAJCQlpZiAoICht eV9wcz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9TlVMTCkgewotIAkJCQlMTV9EQkcoInVzaW5n IFBTICVwXG4iLCpteV9wcyk7CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAwNy1GaXgtQzkwLXN0 eWxlLWRlY2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBzdGF0cy1tb2R1LnBhdGNoIGIvb3BlbnNp cHMtMDAwNy1GaXgtQzkwLXN0eWxlLWRlY2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBzdGF0cy1t b2R1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2ODllNGUKLS0t IC9kZXYvbnVsbAorKysgYi9vcGVuc2lwcy0wMDA3LUZpeC1DOTAtc3R5bGUtZGVjbGFyYXRpb24t d2FybmluZ3MtaW4tc25tcHN0YXRzLW1vZHUucGF0Y2gKQEAgLTAsMCArMSwzODEgQEAKK0Zyb20g MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitEYXRl OiBTYXQsIDMxIEphbiAyMDI2IDE1OjExOjIwICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBD OTAtc3R5bGUgZGVjbGFyYXRpb24gd2FybmluZ3MgaW4gc25tcHN0YXRzIG1vZHVsZQorCitCdWls ZCBmYWlscyB3aXRoIGAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudGAgKGVuZm9y Y2VkIGJ5CituZXQtc25tcCBwa2ctY29uZmlnKSBkdWUgdG8gdmFyaWFibGVzIGRlY2xhcmVkIGFm dGVyIGV4ZWN1dGFibGUKK3N0YXRlbWVudHM6CisKK2BgYAorb3BlbnNlck9iamVjdHMuYzo2MTk6 OTogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1X ZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQorICA2MTkgfCAgICAgICAgIGludCBu ZXdfdGhyZXNob2xkID0gKGludCkobG9uZykoaW50ICopdmFsOworCitvcGVuc2VyU0lQQ29tbW9u T2JqZWN0cy5jOjI0NDoxNzogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlv bnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQorICAyNDQg fCAgICAgICAgICAgICAgICAgY2hhciAqb3BlbkJyYWNlUG9zaXRpb24gICA9IHN0cmNocihidWZm ZXIsICcoJyk7CisKK29wZW5zZXJTSVBDb21tb25PYmplY3RzLmM6NDc1Ojk6IGVycm9yOiBJU08g QzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0 aW9uLWFmdGVyLXN0YXRlbWVudF0KKyAgNDc1IHwgICAgICAgICBjaGFyICpzdHJFbnRpdHlUeXBl ID0gKGNoYXIgKil2YWw7CisKK29wZW5zZXJTSVBDb250YWN0VGFibGUuYzoyNjY6OTogZXJyb3I6 IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVj bGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQorICAyNjYgfCAgICAgICAgIHN0YXRpYyBjaGFyICpk ZWZhdWx0VXNlciA9ICJEZWZhdWx0VXNlciI7CisKK29wZW5zZXJTSVBDb250YWN0VGFibGUuYzoz NjE6OTogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUg Wy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQorICAzNjEgfCAgICAgICAgIG5l dHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOworYGBgCisKK1Ro ZSBuZXQtc25tcCBsaWJyYXJ5J3MgcGtnLWNvbmZpZyBhZGRzCitgLVdlcnJvcj1kZWNsYXJhdGlv bi1hZnRlci1zdGF0ZW1lbnRgIHRvIENGTEFHUywgZW5mb3JjaW5nIEM5MC1zdHlsZQorZGVjbGFy YXRpb24gb3JkZXJpbmcgKGFsbCBkZWNsYXJhdGlvbnMgYmVmb3JlIHN0YXRlbWVudHMpLgorCitX aGlsZSBPcGVuU0lQUyBhZGhlcmVzIHRvIHRoZSBDOTkgc3RhbmRhcmQgKHdoaWNoIGFsbG93cyBt aXhlZAorZGVjbGFyYXRpb25zIGFuZCBjb2RlKSwgdGhlIG5ldC1zbm1wIGxpYnJhcnkgY291bGQg cmVxdWlyZSBDOTAtc3R5bGUKK2RlY2xhcmF0aW9ucyBmb3IgbW9kdWxlcyB0aGF0IGxpbmsgYWdh aW5zdCBpdC4gRm9sbG93aW5nIHRoaXMgc3R5bGUKK2RvZXNuJ3QgaHVydCBDOTkgY29tcGF0aWJp bGl0eSBhbmQgaW1wcm92ZXMgY29kZSBwb3J0YWJpbGl0eS5gCisKK1NpZ25lZC1vZmYtYnk6IFBl dGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitBc3Npc3RlZC1ieTogQ2xhdWRlIChB bnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4KKworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25t cHN0YXRzL29wZW5zZXJPYmplY3RzLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyT2JqZWN0 cy5jCitpbmRleCAxODBiNjJkZGE3Li45MDlkYjRjODBiIDEwMDY0NAorLS0tIGEvbW9kdWxlcy9z bm1wc3RhdHMvb3BlbnNlck9iamVjdHMuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNl ck9iamVjdHMuYworQEAgLTYwNSw2ICs2MDUsOCBAQCBpbnQgaGFuZGxlX29wZW5zZXJEaWFsb2dM aW1pdE1ham9yQWxhcm0obmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKKyBzdGF0aWMgaW50 IHNldF9pZl92YWxpZF90aHJlc2hvbGQobW9kcGFyYW1fdCB0eXBlLCB2b2lkICp2YWwsIGNoYXIg KnZhclN0ciwKKyAJaW50ICpuZXdWYWwpCisgeworKwlpbnQgbmV3X3RocmVzaG9sZDsKKysKKyAJ aWYgKHZhbD09MCkgeworIAkJTE1fRVJSKCIlcyBjYWxsZWQgd2l0aCBhIG51bGwgdmFsdWUhXG4i LCB2YXJTdHIpOworIAkJcmV0dXJuIC0xOworQEAgLTYxNiw3ICs2MTgsNyBAQCBzdGF0aWMgaW50 IHNldF9pZl92YWxpZF90aHJlc2hvbGQobW9kcGFyYW1fdCB0eXBlLCB2b2lkICp2YWwsIGNoYXIg KnZhclN0ciwKKyAJCXJldHVybiAtMTsKKyAJfQorIAorLQlpbnQgbmV3X3RocmVzaG9sZCA9IChp bnQpKGxvbmcpKGludCAqKXZhbDsKKysJbmV3X3RocmVzaG9sZCA9IChpbnQpKGxvbmcpKGludCAq KXZhbDsKKyAKKyAJaWYgKG5ld190aHJlc2hvbGQgPCAtMSkgeworIAkJTE1fRVJSKCIlcyBjYWxs ZWQgd2l0aCBhbiBpbnZhbGlkIHRocmVzaG9sZD0lZCFcbiIsCitkaWZmIC0tZ2l0IGEvbW9kdWxl cy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYyBiL21vZHVsZXMvc25tcHN0YXRz L29wZW5zZXJTSVBDb21tb25PYmplY3RzLmMKK2luZGV4IGUzN2FiNmVmMmEuLmYyZGRiYTVhN2Eg MTAwNjQ0CistLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5j CisrKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jCitAQCAt MjI1LDYgKzIyNSw4IEBAIGludCBoYW5kbGVfb3BlbnNlclNJUFNlcnZpY2VTdGFydFRpbWUobmV0 c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKKyAKKyAJaW50IGVsYXBzZWRUaW1lID0gMDsKKyAJ Y2hhciBidWZmZXJbU05NUEdFVF9NQVhfQlVGRkVSXTsKKysJY2hhciAqb3BlbkJyYWNlUG9zaXRp b24gPSBOVUxMOworKwljaGFyICpjbG9zZWRCcmFjZVBvc2l0aW9uID0gTlVMTDsKKyAKKyAJRklM RSAqdGhlRmlsZSA9IGZvcGVuKFNOTVBHRVRfVEVNUF9GSUxFLCAiciIpOworIAorQEAgLTI0MSw4 ICsyNDMsOCBAQCBpbnQgaGFuZGxlX29wZW5zZXJTSVBTZXJ2aWNlU3RhcnRUaW1lKG5ldHNubXBf bWliX2hhbmRsZXIgKmhhbmRsZXIsCisgCisgCQkvKiBGaW5kIHRoZSBwb3NpdGlvbnMgb2YgJygn IGFuZCAnKScgc28gd2UgY2FuIGV4dHJhY3Qgb3V0IHRoZQorIAkJICogdGltZXRpY2tzIHZhbHVl LiAqLworLQkJY2hhciAqb3BlbkJyYWNlUG9zaXRpb24gICA9IHN0cmNocihidWZmZXIsICcoJyk7 CistCQljaGFyICpjbG9zZWRCcmFjZVBvc2l0aW9uID0gc3RyY2hyKGJ1ZmZlciwgJyknKTsKKysJ CW9wZW5CcmFjZVBvc2l0aW9uICAgPSBzdHJjaHIoYnVmZmVyLCAnKCcpOworKwkJY2xvc2VkQnJh Y2VQb3NpdGlvbiA9IHN0cmNocihidWZmZXIsICcpJyk7CisgCisgCQkvKiBNYWtlIHN1cmUgdGhh dCBib3RoIHRoZSAnKCcgYW5kICcpJyBleGlzdCBpbiB0aGUgZmlsZSwgYW5kCisgCQkgKiB0aGF0 ICcoJyBvY2N1cnMgZWFybGllciB0aGFuIHRoZSAnKScuICBJZiBhbGwgdGhlc2UKK0BAIC00NjQs NiArNDY2LDcgQEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQT3RoZXJ3aXNlRGlzY2FyZGVkTXNncyhu ZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAorICAqLworIGludCBoYW5kbGVTaXBFbnRpdHlU eXBlKCBtb2RwYXJhbV90IHR5cGUsIHZvaWQqIHZhbCkKKyB7CisrCWNoYXIgKnN0ckVudGl0eVR5 cGUgPSBOVUxMOworIAorIAkvKiBCeSBkZWZhdWx0IHdlIHN0YXJ0IG9mZiBhcyAib3RoZXIiLiAq LworIAlzdGF0aWMgY2hhciBmaXJzdFRpbWUgPSAxOworQEAgLTQ3Miw3ICs0NzUsNyBAQCBpbnQg aGFuZGxlU2lwRW50aXR5VHlwZSggbW9kcGFyYW1fdCB0eXBlLCB2b2lkKiB2YWwpCisgCQlyZXR1 cm4gLTE7CisgCX0KKyAKKy0JY2hhciAqc3RyRW50aXR5VHlwZSA9IChjaGFyICopdmFsOworKwlz dHJFbnRpdHlUeXBlID0gKGNoYXIgKil2YWw7CisgCisgCS8qIFRoaXMgaXMgb3VyIGZpcnN0IHRp bWUgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uLCBzbyB3ZSBuZWVkIHRvIGNoYW5nZQorIAkgKiBvcGVu c2VyRW50aXR5VHlwZSBmcm9tIGl0cyBkZWZhdWx0IHRvIDAsIGFsbG93aW5nIG91ciBiaXRtYXNr cyBiZWxvdworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb250YWN0 VGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb250YWN0VGFibGUuYworaW5k ZXggN2VkYzEyMTBjZS4uMDM1ODgwMjljOCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25tcHN0YXRz L29wZW5zZXJTSVBDb250YWN0VGFibGUuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNl clNJUENvbnRhY3RUYWJsZS5jCitAQCAtMjYxLDEwICsyNjEsMTAgQEAgdm9pZCBkZWxldGVDb250 YWN0Um93KGludCB1c2VySW5kZXgsIGludCBjb250YWN0SW5kZXgpCisgICovCisgdm9pZCBpbml0 X29wZW5zZXJTSVBDb250YWN0VGFibGUodm9pZCkKKyB7CistCWluaXRpYWxpemVfdGFibGVfb3Bl bnNlclNJUENvbnRhY3RUYWJsZSgpOworLQorIAlzdGF0aWMgY2hhciAqZGVmYXVsdFVzZXIgPSAi RGVmYXVsdFVzZXIiOworIAorKwlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBDb250YWN0VGFi bGUoKTsKKysKKyAJY3JlYXRlQ29udGFjdFJvdygxLCAxLCBkZWZhdWx0VXNlciwgTlVMTCk7Cisg fQorIAorQEAgLTM1NCwxNCArMzU0LDE2IEBAIGludCBvcGVuc2VyU0lQQ29udGFjdFRhYmxlX2dl dF92YWx1ZSgKKyAJY2hhciAgICAgICAqcmV0cmlldmVkRXhwaXJ5OworIAlzdHJ1Y3QgdG0gIHRp bWVWYWx1ZTsKKyAKKysJbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSBOVUxMOworKwlvcGVu c2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKmNvbnRleHQgPSBOVUxMOworKworIAkvKiBGaXJz dCB0aGluZ3MgZmlyc3QsIHdlIG5lZWQgdG8gY29uc3VtZSB0aGUgaW50ZXJwcm9jZXNzIGJ1ZmZl ciwgaW4KKyAJICogY2FzZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQuIFdlIHdhbnQgdG8gcmV0dXJu IHRoZSBmcmVzaGVzdCBkYXRhLiAqLworIAljb25zdW1lSW50ZXJwcm9jZXNzQnVmZmVyKCk7Cisg CistCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOworKwl2 YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7CisgCistCW9wZW5zZXJTSVBDb250YWN0VGFibGVfY29u dGV4dCAqY29udGV4dCA9CistCQkob3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICopaXRl bTsKKysJY29udGV4dCA9IChvcGVuc2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKilpdGVtOwor IAorIAlzd2l0Y2godGFibGVfaW5mby0+Y29sbnVtKQorIAl7CitkaWZmIC0tZ2l0IGEvbW9kdWxl cy9zbm1wc3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3Bl bnNlclNJUFBvcnRUYWJsZS5jCitpbmRleCBhMTA3NTgyNzNhLi4zYTAzYjcyYjIxIDEwMDY0NAor LS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5jCisrKysgYi9tb2R1 bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUG9ydFRhYmxlLmMKK0BAIC0xMDQsMTkgKzEwNCwxNyBA QCBvcGVuc2VyU0lQUG9ydFRhYmxlX2NvbnRleHQgKmdldFJvdyhpbnQgaXBUeXBlLCB1bnNpZ25l ZCBpbnQgKmlwQWRkcmVzcykKKyB7CisgCWludCBsZW5ndGhPZk9JRDsKKyAJb2lkICpjdXJyZW50 T0lESW5kZXggPSBjcmVhdGVJbmRleChpcFR5cGUsIGlwQWRkcmVzcywgJmxlbmd0aE9mT0lEKTsK KysJbmV0c25tcF9pbmRleCB0aGVJbmRleDsKKysJb3BlbnNlclNJUFBvcnRUYWJsZV9jb250ZXh0 ICpyb3dUb1JldHVybiA9IE5VTEw7CisgCisgCWlmIChjdXJyZW50T0lESW5kZXggPT0gTlVMTCkK KyAJeworIAkJcmV0dXJuIE5VTEw7CisgCX0KKyAKKy0JbmV0c25tcF9pbmRleCB0aGVJbmRleDsK Ky0KKyAJdGhlSW5kZXgub2lkcyA9IGN1cnJlbnRPSURJbmRleDsKKyAJdGhlSW5kZXgubGVuICA9 IGxlbmd0aE9mT0lEOworIAorLQlvcGVuc2VyU0lQUG9ydFRhYmxlX2NvbnRleHQgKnJvd1RvUmV0 dXJuOworLQorIAkvKiBMZXRzIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhbiBleGlzdGluZyBy b3cuICovCisgCXJvd1RvUmV0dXJuID0gQ09OVEFJTkVSX0ZJTkQoY2IuY29udGFpbmVyLCAmdGhl SW5kZXgpOworIAorQEAgLTIxOCw4ICsyMTYsNiBAQCB2b2lkIGluaXRfb3BlbnNlclNJUFBvcnRU YWJsZSh2b2lkKQorIHsKKyAJaW50IGN1clNOTVBJbmRleCA9IDA7CisgCistCWluaXRpYWxpemVf dGFibGVfb3BlbnNlclNJUFBvcnRUYWJsZSgpOworLQorIAl1bnNpZ25lZCBpbnQgKlVEUExpc3Qg PSBOVUxMOworIAl1bnNpZ25lZCBpbnQgKlRDUExpc3QgPSBOVUxMOworIAl1bnNpZ25lZCBpbnQg KlRMU0xpc3QgPSBOVUxMOworQEAgLTIyOCw2ICsyMjQsOCBAQCB2b2lkIGluaXRfb3BlbnNlclNJ UFBvcnRUYWJsZSh2b2lkKQorIAlpbnQgbnVtVENQU29ja2V0czsKKyAJaW50IG51bVRMU1NvY2tl dHM7CisgCisrCWluaXRpYWxpemVfdGFibGVfb3BlbnNlclNJUFBvcnRUYWJsZSgpOworKworIAkv KiBSZXRyaWV2ZSB0aGUgbGlzdCBvZiB0aGUgbnVtYmVyIG9mIFVEUCBhbmQgVENQIHNvY2tldHMu ICovCisgCW51bVVEUFNvY2tldHMgPSBnZXRfc29ja2V0X2xpc3RfZnJvbV9wcm90bygmVURQTGlz dCwgUFJPVE9fVURQKTsKKyAJbnVtVENQU29ja2V0cyA9IGdldF9zb2NrZXRfbGlzdF9mcm9tX3By b3RvKCZUQ1BMaXN0LCBQUk9UT19UQ1ApOworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRz L29wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5z ZXJTSVBSZWdVc2VyTG9va3VwVGFibGUuYworaW5kZXggMzI0ZGY2MThmZC4uYTU0YjU4Mzc1MiAx MDA2NDQKKy0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFi bGUuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJs ZS5jCitAQCAtNTE0LDIzICs1MTQsMjAgQEAgdm9pZCBvcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRh YmxlX3NldF9yZXNlcnZlMiggbmV0c25tcF9yZXF1ZXN0X2dyb3VwICpyZyApCisgICovCisgdm9p ZCBvcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlX3NldF9hY3Rpb24oIG5ldHNubXBfcmVxdWVz dF9ncm91cCAqcmcgKQorIHsKKy0JLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRvIGNv bnN1bWUgdGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCistCSAqIGNhc2Ugc29tZXRoaW5nIGhh cyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KKy0JY29u c3VtZUludGVycHJvY2Vzc0J1ZmZlcigpOworLQorIAlhb3JUb0luZGV4U3RydWN0X3QgKmhhc2hS ZWNvcmQ7CistCisgCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyOworKwluZXRzbm1wX3JlcXVl c3RfZ3JvdXBfaXRlbSAqY3VycmVudDsKKysJaW50IHJvd19lcnIgPSAwOworKwlvcGVuc2VyU0lQ UmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKnJvd19jdHggPSBOVUxMOworKwlvcGVuc2VyU0lQ UmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKnVuZG9fY3R4ID0gTlVMTDsKKyAKKy0Jb3BlbnNl clNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICpyb3dfY3R4ID0KKy0JCShvcGVuc2VyU0lQ UmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKilyZy0+ZXhpc3Rpbmdfcm93OworLQorLQlvcGVu c2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKnVuZG9fY3R4ID0KKy0JCShvcGVuc2Vy U0lQUmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKilyZy0+dW5kb19pbmZvOworKwkvKiBGaXJz dCB0aGluZ3MgZmlyc3QsIHdlIG5lZWQgdG8gY29uc3VtZSB0aGUgaW50ZXJwcm9jZXNzIGJ1ZmZl ciwgaW4KKysJICogY2FzZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQuIFdlIHdhbnQgdG8gcmV0dXJu IHRoZSBmcmVzaGVzdCBkYXRhLiAqLworKwljb25zdW1lSW50ZXJwcm9jZXNzQnVmZmVyKCk7Cisg CistCW5ldHNubXBfcmVxdWVzdF9ncm91cF9pdGVtICpjdXJyZW50OworKwlyb3dfY3R4ID0gKG9w ZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqKXJnLT5leGlzdGluZ19yb3c7Cisg CistCWludAkJCXJvd19lcnIgPSAwOworKwl1bmRvX2N0eCA9IChvcGVuc2VyU0lQUmVnVXNlckxv b2t1cFRhYmxlX2NvbnRleHQgKilyZy0+dW5kb19pbmZvOworIAorIAkvKiBDb3B5IHRoZSBhY3R1 YWwgZGF0YSB0byB0aGUgcm93LiAqLworIAlmb3IoIGN1cnJlbnQgPSByZy0+bGlzdDsgY3VycmVu dDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHQgKSB7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1w c3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJUYWJsZS5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNl clNJUFJlZ1VzZXJUYWJsZS5jCitpbmRleCA0M2IxNGNkZWI3Li45Y2YwMjlkZjlkIDEwMDY0NAor LS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJUYWJsZS5jCisrKysgYi9t b2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRhYmxlLmMKK0BAIC0yMjUsMTUgKzIy NSwxNCBAQCB2b2lkIHVwZGF0ZVVzZXIoY2hhciAqdXNlck5hbWUpCisgICogUmV0dXJuczogVGhl IHJvd3MgdXNlckluZGV4IG9uIHN1Y2Nlc3MsIGFuZCAwIG90aGVyd2lzZS4gKi8KKyBpbnQgY3Jl YXRlUmVnVXNlclJvdyhjaGFyICpzdHJpbmdUb1JlZ2lzdGVyKQorIHsKKy0JaW50IHN0YXRpYyBp bmRleCA9IDA7CistCistCWluZGV4Kys7CistCisgCW9wZW5zZXJTSVBSZWdVc2VyVGFibGVfY29u dGV4dCAqdGhlUm93OworLQorIAlvaWQgICpPSURJbmRleDsKKyAJaW50ICBzdHJpbmdMZW5ndGg7 CisgCisrCWludCBzdGF0aWMgaW5kZXggPSAwOworKworKwlpbmRleCsrOworKworIAl0aGVSb3cg PSBTTk1QX01BTExPQ19UWVBFREVGKG9wZW5zZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCk7Cisg CisgCWlmICh0aGVSb3cgPT0gTlVMTCkgeworQEAgLTI4MCwxMiArMjc5LDEyIEBAIGludCBjcmVh dGVSZWdVc2VyUm93KGNoYXIgKnN0cmluZ1RvUmVnaXN0ZXIpCisgLyogSW5pdGlhbGl6ZXMgdGhl IG9wZW5zZXJTSVBSZWdVc2VyVGFibGUgbW9kdWxlLiAgKi8KKyB2b2lkIGluaXRfb3BlbnNlclNJ UFJlZ1VzZXJUYWJsZSh2b2lkKQorIHsKKy0JLyogUmVnaXN0ZXIgdGhpcyB0YWJsZSB3aXRoIHRo ZSBtYXN0ZXIgYWdlbnQgKi8KKy0JaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUmVnVXNlclRh YmxlKCk7CistCisgCS8qIFdlIG5lZWQgdG8gY3JlYXRlIGEgZGVmYXVsdCByb3csIHNvIGNyZWF0 ZSBEZWZhdWx0VXNlciAqLworIAlzdGF0aWMgY2hhciAqZGVmYXVsdFVzZXIgPSAiRGVmYXVsdFVz ZXIiOworIAorKwkvKiBSZWdpc3RlciB0aGlzIHRhYmxlIHdpdGggdGhlIG1hc3RlciBhZ2VudCAq LworKwlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBSZWdVc2VyVGFibGUoKTsKKysKKyAJY3Jl YXRlUmVnVXNlclJvdyhkZWZhdWx0VXNlcik7CisgfQorIAorQEAgLTM1MCwxNCArMzQ5LDE2IEBA IGludCBvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2dldF92YWx1ZSgKKyAJCW5ldHNubXBfaW5kZXgg Kml0ZW0sCisgCQluZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mbyAqdGFibGVfaW5mbyApCisgewor KwluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IE5VTEw7CisrCW9wZW5zZXJTSVBSZWdVc2Vy VGFibGVfY29udGV4dCAqY29udGV4dCA9IE5VTEw7CisrCisgCS8qIEZpcnN0IHRoaW5ncyBmaXJz dCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgorIAkgKiBj YXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZyZXNoZXN0 IGRhdGEuICovCisgCWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKKyAKKy0JbmV0c25tcF92 YXJpYWJsZV9saXN0ICp2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7CisrCXZhciA9IHJlcXVlc3Qt PnJlcXVlc3R2YjsKKyAKKy0Jb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0ICpjb250ZXh0 ID0KKy0JCShvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKilpdGVtOworKwljb250ZXh0 ID0gKG9wZW5zZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqKWl0ZW07CisgCisgCXN3aXRjaCh0 YWJsZV9pbmZvLT5jb2xudW0pCisgCXsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9v cGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJ UFN0YXR1c0NvZGVzVGFibGUuYworaW5kZXggMmIzOTZjNjk4NS4uNzlmM2ExMjlhMyAxMDA2NDQK Ky0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlLmMKKysr KyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlLmMKK0BAIC0z MTAsNiArMzEwLDcgQEAgaW50IG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2Nhbl9kZWxldGUo Cisgb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGVfY29udGV4dCAqCisgb3BlbnNlclNJUFN0YXR1 c0NvZGVzVGFibGVfY3JlYXRlX3JvdyggbmV0c25tcF9pbmRleCogaGRyKQorIHsKKysJaW50IGNv ZGVJbmRleDsKKyAJc3RhdF92YXIgKmluX3N0YXR1c19jb2RlOworIAlzdGF0X3ZhciAqb3V0X3N0 YXR1c19jb2RlOworIAorQEAgLTMzNyw3ICszMzgsNyBAQCBvcGVuc2VyU0lQU3RhdHVzQ29kZXNU YWJsZV9jcmVhdGVfcm93KCBuZXRzbm1wX2luZGV4KiBoZHIpCisgCS8qIFJldHJpZXZlIHRoZSBp bmRleCBmb3IgdGhlIHN0YXR1cyBjb2RlLCBhbmQgdGhlbiBhc3NpZ24gdGhlIHN0YXJ0aW5nCisg CSAqIHZhbHVlcy4gIFRoZSBzdGFydGluZyB2YWx1ZXMgd2lsbCBiZSB1c2VkIHRvIGNhbGN1bGF0 ZSBkZWx0YXMgZHVyaW5nCisgCSAqIHRoZSBuZXh0IHNubXBnZXQvc25tcHdhbGsvc25tcHRhYmxl L2V0Yy4gKi8KKy0JaW50IGNvZGVJbmRleCA9IGN0eC0+b3BlbnNlclNJUFN0YXR1c0NvZGVWYWx1 ZTsKKysJY29kZUluZGV4ID0gY3R4LT5vcGVuc2VyU0lQU3RhdHVzQ29kZVZhbHVlOworIAorIAlj dHgtPnN0YXJ0aW5nSW5TdGF0dXNDb2RlVmFsdWUgID0gMDsKKyAJY3R4LT5zdGFydGluZ091dFN0 YXR1c0NvZGVWYWx1ZSA9IDA7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0 YXRzLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9zbm1wc3RhdHMuYworaW5kZXggOTViYzFjMWYzYi4u NTc1YzBkMTA2OCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jCisr KysgYi9tb2R1bGVzL3NubXBzdGF0cy9zbm1wc3RhdHMuYworQEAgLTM0Niw3ICszNDYsMTIgQEAg c3RhdGljIHZvaWQgc2lnY2hsZF9oYW5kbGVyKGludCBzaWduYWwpCisgICovCisgc3RhdGljIGlu dCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKKyB7CisrCXBpZF90IHJlc3VsdF9waWQ7Cisr CWludCBzbm1wZ2V0X2ZkOworKwlpbnQgbG9jYWxfcGF0aF90b19zbm1wZ2V0X2xlbmd0aDsKKysJ aW50IHNubXBnZXRfYmluYXJ5X25hbWVfbGVuZ3RoOworIAlzdHJ1Y3Qgc2lnYWN0aW9uIG5ld19z aWdjaGxkX2hhbmRsZXI7CisrCWNoYXIgKmFyZ3NbNl07CisgCisgCWNoYXIgKmxvY2FsX3BhdGhf dG9fc25tcGdldCA9ICIvdXNyL2Jpbi8iOworIAljaGFyICpzbm1wZ2V0X2JpbmFyeV9uYW1lICAg PSAiL3NubXBnZXQiOworQEAgLTM2Miw3ICszNjcsNyBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1Vw VGltZV9jaGlsZCh2b2lkKQorIAluZXdfc2lnY2hsZF9oYW5kbGVyLnNhX2hhbmRsZXIgPSBzaWdj aGxkX2hhbmRsZXI7CisgCXNpZ2FjdGlvbihTSUdDSExELCAmbmV3X3NpZ2NobGRfaGFuZGxlciwg Jm9sZF9zaWdjaGxkX2hhbmRsZXIpOworIAorLQlwaWRfdCByZXN1bHRfcGlkID0gZm9yaygpOwor KwlyZXN1bHRfcGlkID0gZm9yaygpOworIAorIAlpZiAocmVzdWx0X3BpZCA8IDApIHsKKyAJCUxN X0VSUigiZmFpbGVkIHRvIG5vdCBzcGF3biBhbiBhZ2VudCB0byBjaGVjayBzeXNVcFRpbWVcbiIp OworQEAgLTM4MCw3ICszODUsNyBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGlsZCh2 b2lkKQorIAorIAkvKiBJZiB3ZSBhcmUgaGVyZSwgdGhlbiB3ZSBhcmUgdGhlIGNoaWxkIHByb2Nl c3MuICBMZXRzIHNldCB1cCB0aGUgZmlsZQorIAkgKiBkZXNjcmlwdG9ycyBzbyB3ZSBjYW4gY2Fw dHVyZSB0aGUgb3V0cHV0IG9mIHNubXBnZXQuICovCistCWludCBzbm1wZ2V0X2ZkID0KKysJc25t cGdldF9mZCA9CisgCQlvcGVuKFNOTVBHRVRfVEVNUF9GSUxFLCBPX0NSRUFUfE9fVFJVTkN8T19S RFdSLAorIAkJCQlTX0lSVVNSfFNfSVdVU1J8U19JUkdSUHxTX0lST1RIKTsKKyAKK0BAIC00MDEs OCArNDA2LDEyIEBAIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZvaWQpCisgCQkJ CSIgIERlZmF1bHRpbmcgdG8gJXNcbiIsCXNubXBfY29tbXVuaXR5X3N0cmluZyk7CisgCX0KKyAK Ky0JY2hhciAqYXJnc1tdID0geyItT3YiLCAiLWMiLCAgc25tcF9jb21tdW5pdHlfc3RyaW5nLCAi bG9jYWxob3N0IiwKKy0JCVNZU1VQVElNRV9PSUQsIChjaGFyICopIDB9OworKwlhcmdzWzBdID0g Ii1PdiI7CisrCWFyZ3NbMV0gPSAiLWMiOworKwlhcmdzWzJdID0gc25tcF9jb21tdW5pdHlfc3Ry aW5nOworKwlhcmdzWzNdID0gImxvY2FsaG9zdCI7CisrCWFyZ3NbNF0gPSBTWVNVUFRJTUVfT0lE OworKwlhcmdzWzVdID0gKGNoYXIgKikwOworIAorIAkvKiBNYWtlIHN1cmUgd2UgaGF2ZSBhIHBh dGggdG8gc25tcGdldCwgc28gd2UgY2FuIHJldHJpZXZlIHRoZQorIAkgKiBzeXNVcFRpbWUuICov CitAQCAtNDE2LDggKzQyNSw4IEBAIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZv aWQpCisgCQlsb2NhbF9wYXRoX3RvX3NubXBnZXQgPSBzbm1wZ2V0X3BhdGg7CisgCX0KKyAKKy0J aW50IGxvY2FsX3BhdGhfdG9fc25tcGdldF9sZW5ndGggPSBzdHJsZW4obG9jYWxfcGF0aF90b19z bm1wZ2V0KTsKKy0JaW50IHNubXBnZXRfYmluYXJ5X25hbWVfbGVuZ3RoICAgPSBzdHJsZW4oc25t cGdldF9iaW5hcnlfbmFtZSk7CisrCWxvY2FsX3BhdGhfdG9fc25tcGdldF9sZW5ndGggPSBzdHJs ZW4obG9jYWxfcGF0aF90b19zbm1wZ2V0KTsKKysJc25tcGdldF9iaW5hcnlfbmFtZV9sZW5ndGgg ICA9IHN0cmxlbihzbm1wZ2V0X2JpbmFyeV9uYW1lKTsKKyAKKyAJLyogQWxsb2NhdGUgZW5vdWdo IG1lbW9yeSB0byBob2xkIHRoZSBwYXRoLCB0aGUgYmluYXJ5IG5hbWUsIGFuZCB0aGUKKyAJICog bnVsbCBjaGFyYWN0ZXIuICBXZSBkb24ndCB1c2UgcGtnX21lbW9yeSBoZXJlLiAqLworZGlmZiAt LWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMv dXRpbGl0aWVzLmMKK2luZGV4IGRmYzA5NzhiNzQuLjJmN2VkOWEzMDcgMTAwNjQ0CistLS0gYS9t b2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMuYworKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvdXRp bGl0aWVzLmMKK0BAIC03MiwxMyArNzIsMTMgQEAgaW50IHN0cmluZ0hhbmRsZXJTYW5pdHlDaGVj ayggbW9kcGFyYW1fdCB0eXBlLCB2b2lkICp2YWwsIGNoYXIgKnBhcmFtZXRlck5hbWUpCisgaW50 IGdldF9zdGF0aXN0aWMoY2hhciAqc3RhdE5hbWUpCisgeworIAlpbnQgcmVzdWx0ID0gMDsKKy0K KysJc3RhdF92YXIgKnRoZVZhciA9IE5VTEw7CisgCXN0ciB0aGVTdHI7CisgCisgCXRoZVN0ci5z ICAgPSBzdGF0TmFtZTsKKyAJdGhlU3RyLmxlbiA9IHN0cmxlbihzdGF0TmFtZSk7CisgCistCXN0 YXRfdmFyICp0aGVWYXIgPSBnZXRfc3RhdCgmdGhlU3RyKTsKKysJdGhlVmFyID0gZ2V0X3N0YXQo JnRoZVN0cik7CisgCisgCWlmICh0aGVWYXI9PTApIHsKKyAJCUxNX0lORk8oImZhaWxlZCB0byBy ZXRyaWV2ZSBzdGF0aXN0aWNzIGZvciAlc1xuIiwgc3RhdE5hbWUpOwoKZGlmZiAtLWdpdCBhL29w ZW5zaXBzLTAwMDctRml4LWNvbnN0LWNvcnJlY3RuZXNzLXdhcm5pbmdzLWluLUhUVFAtYW5kLUZy ZWVTV0lUQy5wYXRjaCBiL29wZW5zaXBzLTAwMDctRml4LWNvbnN0LWNvcnJlY3RuZXNzLXdhcm5p bmdzLWluLUhUVFAtYW5kLUZyZWVTV0lUQy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMzc1ZmQ0Mi4uMDAwMDAwMAotLS0gYS9vcGVuc2lwcy0wMDA3LUZpeC1jb25zdC1jb3Jy ZWN0bmVzcy13YXJuaW5ncy1pbi1IVFRQLWFuZC1GcmVlU1dJVEMucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxNTYgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVtZW5rb3Yg PGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IFNhdCwgMjAgRGVjIDIwMjUgMjA6MTY6NDggKzAx MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGNvbnN0LWNvcnJlY3RuZXNzIHdhcm5pbmdzIGluIEhU VFAgYW5kIEZyZWVTV0lUQ0ggRVNMCi0gY29kZQotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAotCi1EdXJpbmcgY29tcGlsYXRpb24gd2l0aCBHQ0MgMTUuMi4xLCBjb25zdC1xdWFs aWZpZXIgd2FybmluZ3MgYXBwZWFyIGluIG11bHRpcGxlIG1vZHVsZXM6Ci1gYGAKLW1vZHVsZXMv aHR0cGQvaHR0cGRfcHJvYy5jOjM0ODoyNDogd2FybmluZzogYXNzaWdubWVudCBkaXNjYXJkcyAn Y29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUgWy1XZGlzY2FyZGVkLXF1 YWxpZmllcnNdCi0gIDM0OCB8ICAgICAgICAgICAgICAgICBpZiAoIChwPXN0cmNocih2YWx1ZSwg JzsnKSkhPU5VTEwgKSB7Ci0gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgXgotCi0uLi4K LQotbW9kdWxlcy9mcmVlc3dpdGNoL2VzbC9zcmMvZXNsX2V2ZW50LmM6NDI4OjI0OiB3YXJuaW5n OiBhc3NpZ25tZW50IGRpc2NhcmRzICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJn ZXQgdHlwZSBbLVdkaXNjYXJkZWQtcXVhbGlmaWVyc10KLSAgNDI4IHwgICAgICAgICBpZiAoKGlu ZGV4X3B0ciA9IHN0cmNocihoZWFkZXJfbmFtZSwgJ1snKSkpIHsKLSAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICBeCi1gYGAKLQotSW4gYGVzbF9ldmVudF9iYXNlX2FkZF9oZWFkZXIoKWAs IHRoZSBgaGVhZGVyX25hbWVgIHBhcmFtZXRlciBpcyBgY29uc3QgY2hhciAqYCwgYW5kIGBzdHJj aHIoKWAgcmV0dXJucyBgY29uc3QgY2hhciAqYCB3aGVuIGdpdmVuIGEgY29uc3QgaW5wdXQuIFRo ZSBgaW5kZXhfcHRyYCB2YXJpYWJsZSB3YXMgZGVjbGFyZWQgYXMgbm9uLWNvbnN0IGBjaGFyICpg LCBjYXVzaW5nIHRoZSB3YXJuaW5nLgotCi0qKkZpeDoqKiBDaGFuZ2VkIHZhcmlhYmxlIGRlY2xh cmF0aW9uIGZyb20gYGNoYXIgKmluZGV4X3B0cmAgdG8gYGNvbnN0IGNoYXIgKmluZGV4X3B0cmAu Ci0KLVRoaXMgaXMgc2FmZSBiZWNhdXNlIGBpbmRleF9wdHJgIGlzIG9ubHkgdXNlZCBmb3IgcmVh ZGluZy9wYXJzaW5nLCBuZXZlciBmb3IgbW9kaWZpY2F0aW9uLgotCi1UaGUgYGdldENvbm5lY3Rp b25IZWFkZXIoKWAgZnVuY3Rpb24gcmVjZWl2ZXMgYHZhbHVlYCBhcyBgY29uc3QgY2hhciAqYCwg YW5kIGBzdHJjaHIoKWAgcHJlc2VydmVzIGNvbnN0LW5lc3MgYnkgcmV0dXJuaW5nIGBjb25zdCBj aGFyICpgLiBIb3dldmVyLCB0aGUgY29kZSB3YXMgYXNzaWduaW5nIHRoaXMgdG8gYSBub24tY29u c3QgYGNoYXIgKnBgIGFuZCB0aGVuIG1vZGlmeWluZyB0aGUgc3RyaW5nIGJ5IHRlbXBvcmFyaWx5 IGluc2VydGluZyBhIG51bGwgdGVybWluYXRvciB0byBwYXJzZSB0aGUgTUlNRSB0eXBlLgotCi0q Kk9yaWdpbmFsIGFwcHJvYWNoIChwcm9ibGVtYXRpYyk6KioKLWBgYGMKLWNoYXIgKnAsIGJrOwot aWYgKCAocD1zdHJjaHIodmFsdWUsICc7JykpIT1OVUxMICkgewotICAgIHdoaWxlKCBwPnZhbHVl ICYmICgqKHAtMSk9PScgJyB8fCAqKHAtMSk9PSdcdCcpICkgcC0tOwotICAgIGJrID0gKnA7Ci0g ICAgKnAgPSAwOyAgLy8gTW9kaWZ5IGNvbnN0IHN0cmluZyEKLSAgICBpZiAoc3RyY2FzZWNtcCgi dGV4dC94bWwiLCB2YWx1ZSkgPT0gMCkgLi4uCi0gICAgKnAgPSBiazsgIC8vIFJlc3RvcmUKLX0K LWBgYAotCi1UaGlzIHZpb2xhdGVzIGNvbnN0LWNvcnJlY3RuZXNzIGJ5IG1vZGlmeWluZyBhIGNv bnN0IHN0cmluZywgd2hpY2ggaXMgdW5kZWZpbmVkIGJlaGF2aW9yIGV2ZW4gaWYgaXQgaGFwcGVu cyB0byB3b3JrIGluIHByYWN0aWNlLgotCi1DYWxjdWxhdGUgdGhlIGVmZmVjdGl2ZSBsZW5ndGgg d2l0aG91dCBtb2RpZnlpbmcgdGhlIHN0cmluZy4KLQotKipOZXcgYXBwcm9hY2g6KioKLWBgYGMK LWNvbnN0IGNoYXIgKnAsICplbmQ7Ci1lbmQgPSB2YWx1ZSArIHN0cmxlbih2YWx1ZSk7ICAvLyBk ZWZhdWx0IHRvIGZ1bGwgbGVuZ3RoCi1pZiAoIChwPXN0cmNocih2YWx1ZSwgJzsnKSkhPU5VTEwg KSB7Ci0gICAgZW5kID0gcDsKLSAgICB3aGlsZSggZW5kPnZhbHVlICYmICgqKGVuZC0xKT09JyAn IHx8ICooZW5kLTEpPT0nXHQnKSApIGVuZC0tOwotfQotaWYgKHN0cm5jYXNlY21wKCJ0ZXh0L3ht bCIsIHZhbHVlLCBlbmQgLSB2YWx1ZSkgPT0gMCkgLi4uCi1gYGAKLQotVGhlIGxlbmd0aCBjYWxj dWxhdGlvbiBgZW5kIC0gdmFsdWVgIGVuc3VyZXMgd2UgY29tcGFyZSBleGFjdGx5IHRoZSBNSU1F IHR5cGUgcG9ydGlvbiwgcHJldmVudGluZyBmYWxzZSBtYXRjaGVzIHdpdGggbG9uZ2VyIHN0cmlu Z3MuCi0KLSoqRXhhbXBsZSBvZiB0aGUgcHJvYmxlbSB3ZSdyZSBwcmV2ZW50aW5nOioqCi1gYGAK LUNvbnRlbnQtVHlwZTogdGV4dC94bWxmb29iYXI7IGNoYXJzZXQ9dXRmLTgKLWBgYAotCi1XaXRo b3V0IHVzaW5nIHRoZSBjYWxjdWxhdGVkIGxlbmd0aDoKLWBgYGMKLS8vIEJBRDogVXNpbmcgYSBm aXhlZCBsZW5ndGgKLWlmIChzdHJuY2FzZWNtcCgidGV4dC94bWwiLCB2YWx1ZSwgOCkgPT0gMCkg Li4uCi0vLyBUaGlzIHdvdWxkIG1hdGNoICJ0ZXh0L3htbGZvb2JhciIgYmVjYXVzZSBmaXJzdCA4 IGNoYXJzIG1hdGNoIQotYGBgCi0KLVdpdGggY2FsY3VsYXRlZCBsZW5ndGg6Ci1gYGBjCi1lbmQg PSBzdHJjaHIodmFsdWUsICc7JykgIC8vIFBvaW50cyB0byAnOycKLS8vIEFmdGVyIHRyaW1taW5n OiBlbmQgLSB2YWx1ZSA9IDE0IChsZW5ndGggb2YgInRleHQveG1sZm9vYmFyIikKLWlmIChzdHJu Y2FzZWNtcCgidGV4dC94bWwiLCB2YWx1ZSwgMTQpID09IDApIC4uLgotLy8g4pyTIENvcnJlY3Rs eSByZWplY3RzOiBzdHJuY2FzZWNtcCBjb21wYXJlcyA4IGNoYXJzIG9mICJ0ZXh0L3htbCIKLS8v ICAgdnMgMTQgY2hhcnMgbmVlZGVkLCBoaXRzIFwwIGluIGZpcnN0IHN0cmluZywgcmV0dXJucyBu b24temVybwotYGBgCi0KLVRoZSBrZXkgaW5zaWdodDogYHN0cm5jYXNlY21wKHN0cjEsIHN0cjIs IG4pYCB3aWxsIHJldHVybiBub24temVybyBpZiBlaXRoZXIgc3RyaW5nIGlzIHNob3J0ZXIgdGhh biBgbmAgY2hhcmFjdGVycyAoZHVlIHRvIG51bGwgdGVybWluYXRvciksIGVuc3VyaW5nIHdlIGRv bid0IG1hdGNoIHN0cmluZ3MgdGhhdCBhcmUgbG9uZ2VyIHRoYW4gb3VyIGV4cGVjdGVkIE1JTUUg dHlwZS4KLQotMS4gQ2hhbmdlZCBgY2hhciAqcCwgYms7YCB0byBgY29uc3QgY2hhciAqcCwgKmVu ZDtgCi0yLiBSZW1vdmVkIGBia2AgdmFyaWFibGUgKG5vIGxvbmdlciBuZWVkZWQpCi0zLiBDYWxj dWxhdGUgYGVuZGAgcG9pbnRlciB0byBtYXJrIHRoZSBlZmZlY3RpdmUgZW5kIG9mIHRoZSBNSU1F IHR5cGUKLTQuIFVwZGF0ZWQgYWxsIE1JTUUgdHlwZSBjb21wYXJpc29ucyB0byB1c2UgYHN0cm5j YXNlY21wKClgIHdpdGggYGVuZCAtIHZhbHVlYCBsZW5ndGgKLTUuIFJlbW92ZWQgY29kZSB0aGF0 IG1vZGlmaWVkIGFuZCByZXN0b3JlZCB0aGUgY29uc3Qgc3RyaW5nCi0KLUFmZmVjdGVkIE1JTUUg dHlwZXM6Ci0tIGB0ZXh0L3htbGAKLS0gYGFwcGxpY2F0aW9uL2pzb25gCi0tIGB0ZXh0L2h0bWxg Ci0tIGB0ZXh0L3BsYWluYAotCi1TaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5r b3ZAZ21haWwuY29tPgotQXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9j bGF1ZGUuYWk+Ci0KLWRpZmYgLS1naXQgYS9tb2R1bGVzL2ZyZWVzd2l0Y2gvZXNsL3NyYy9lc2xf ZXZlbnQuYyBiL21vZHVsZXMvZnJlZXN3aXRjaC9lc2wvc3JjL2VzbF9ldmVudC5jCi1pbmRleCBh MTJiNmQ2MzdiLi5mNjI0OTczODg0IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9mcmVlc3dpdGNoL2Vz bC9zcmMvZXNsX2V2ZW50LmMKLSsrKyBiL21vZHVsZXMvZnJlZXN3aXRjaC9lc2wvc3JjL2VzbF9l dmVudC5jCi1AQCAtNDI1LDcgKzQyNSw3IEBAIHN0YXRpYyBlc2xfc3RhdHVzX3QgZXNsX2V2ZW50 X2Jhc2VfYWRkX2hlYWRlcihlc2xfZXZlbnRfdCAqZXZlbnQsIGVzbF9zdGFja190IHN0Ci0gCQll c2xfZXZlbnRfc2V0X2JvZHkoZXZlbnQsIGRhdGEpOwotIAl9Ci0gCi0tCWlmICgoaW5kZXhfcHRy ID0gc3RyY2hyKGhlYWRlcl9uYW1lLCAnWycpKSkgewotKwlpZiAoKGluZGV4X3B0ciA9IChjaGFy ICopc3RyY2hyKGhlYWRlcl9uYW1lLCAnWycpKSkgewotIAkJaW5kZXhfcHRyKys7Ci0gCQlpbmRl eCA9IGF0b2koaW5kZXhfcHRyKTsKLSAJCXJlYWxfaGVhZGVyX25hbWUgPSBEVVAoaGVhZGVyX25h bWUpOwotZGlmZiAtLWdpdCBhL21vZHVsZXMvaHR0cGQvaHR0cGRfcHJvYy5jIGIvbW9kdWxlcy9o dHRwZC9odHRwZF9wcm9jLmMKLWluZGV4IDhlODc2NjEwNDguLmIxMmNjNDFiOWMgMTAwNjQ0Ci0t LS0gYS9tb2R1bGVzL2h0dHBkL2h0dHBkX3Byb2MuYwotKysrIGIvbW9kdWxlcy9odHRwZC9odHRw ZF9wcm9jLmMKLUBAIC0zMzIsNyArMzMyLDcgQEAgTUhEX1JFVCBnZXRDb25uZWN0aW9uSGVhZGVy KHZvaWQgKmNscywgZW51bSBNSERfVmFsdWVLaW5kIGtpbmQsCi0gCXN0cnVjdCBwb3N0X3JlcXVl c3QgKnByID0gKHN0cnVjdCBwb3N0X3JlcXVlc3QqKWNsczsKLSAJc3RyIGNvbnRlbnRfbGVuZ3Ro OwotIAl1bnNpZ25lZCBpbnQgbGVuOwotLQljaGFyICpwLCBiazsKLSsJY29uc3QgY2hhciAqcCwg KmVuZDsKLSAKLSAJaWYgKGNscyA9PSBOVUxMKSB7Ci0gCQlMTV9FUlIoIlVuYWJsZSB0byBzdG9y ZSByZXR1cm4gZGF0YVxuIik7Ci1AQCAtMzU2LDI0ICszNTYsMjQgQEAgTUhEX1JFVCBnZXRDb25u ZWN0aW9uSGVhZGVyKHZvaWQgKmNscywgZW51bSBNSERfVmFsdWVLaW5kIGtpbmQsCi0gCWlmIChz dHJjYXNlY21wKCJDb250ZW50LVR5cGUiLCBrZXkpID09IDApIHsKLSAJCUxNX0RCRygiQ29udGVu dC1UeXBlPSVzXG4iLCB2YWx1ZSk7Ci0gCQkvKiBleHRyYWN0IG9ubHkgdGhlIG1pbWUgKi8KLSsJ CWVuZCA9IHZhbHVlICsgc3RybGVuKHZhbHVlKTsgIC8vIGRlZmF1bHQgdG8gZnVsbCBsZW5ndGgK LSAJCWlmICggKHA9c3RyY2hyKHZhbHVlLCAnOycpKSE9TlVMTCApIHsKLS0JCQl3aGlsZSggcD52 YWx1ZSAmJiAoKihwLTEpPT0nICcgfHwgKihwLTEpPT0nXHQnKSApIHAtLTsKLS0JCQliayA9ICpw OwotLQkJCSpwID0gMDsKLSsJCQllbmQgPSBwOwotKwkJCXdoaWxlKCBlbmQ+dmFsdWUgJiYgKCoo ZW5kLTEpPT0nICcgfHwgKihlbmQtMSk9PSdcdCcpICkgZW5kLS07Ci0gCQl9Ci0tCQlpZiAoc3Ry Y2FzZWNtcCgidGV4dC94bWwiLCB2YWx1ZSkgPT0gMCkKLSsJCWxlbiA9IGVuZCAtIHZhbHVlOwot KwkJaWYgKHN0cm5jYXNlY21wKCJ0ZXh0L3htbCIsIHZhbHVlLCBlbmQgLSB2YWx1ZSkgPT0gMCkK LSAJCQlwci0+Y29udGVudF90eXBlID0gSFRUUERfVEVYVF9YTUxfQ05UX1RZUEU7Ci0tCQllbHNl IGlmIChzdHJuY2FzZWNtcCgiYXBwbGljYXRpb24vanNvbiIsIHZhbHVlLCAxNikgPT0gMCkKLSsJ CWVsc2UgaWYgKHN0cm5jYXNlY21wKCJhcHBsaWNhdGlvbi9qc29uIiwgdmFsdWUsIGVuZCAtIHZh bHVlKSA9PSAwKQotIAkJCXByLT5jb250ZW50X3R5cGUgPSBIVFRQRF9BUFBMSUNBVElPTl9KU09O X0NOVF9UWVBFOwotLQkJZWxzZSBpZiAoc3RybmNhc2VjbXAoInRleHQvaHRtbCIsIHZhbHVlLCA5 KSA9PSAwKQotKwkJZWxzZSBpZiAoc3RybmNhc2VjbXAoInRleHQvaHRtbCIsIHZhbHVlLCBlbmQg LSB2YWx1ZSkgPT0gMCkKLSAJCQlwci0+Y29udGVudF90eXBlID0gSFRUUERfVEVYVF9IVE1MX1RZ UEU7Ci0tCQllbHNlIGlmIChzdHJuY2FzZWNtcCgidGV4dC9wbGFpbiIsIHZhbHVlLCAxMCkgPT0g MCkKLSsJCWVsc2UgaWYgKHN0cm5jYXNlY21wKCJ0ZXh0L3BsYWluIiwgdmFsdWUsIGVuZCAtIHZh bHVlKSA9PSAwKQotIAkJCXByLT5jb250ZW50X3R5cGUgPSBIVFRQRF9URVhUX1BMQUlOX1RZUEU7 Ci0gCQllbHNlIHsKLSAJCQlwci0+Y29udGVudF90eXBlID0gSFRUUERfVU5LTk9XTl9DTlRfVFlQ RTsKLSAJCQlMTV9FUlIoIlVuZXhwZWN0ZWQgQ29udGVudC1UeXBlPVslc11cbiIsIHZhbHVlKTsK LSAJCX0KLS0JCWlmIChwKSAqcCA9IGJrOwotIAkJZ290byBkb25lOwotIAl9Ci0gCWlmIChzdHJj YXNlY21wKCJDb250ZW50LUxlbmd0aCIsIGtleSkgPT0gMCkgewoKZGlmZiAtLWdpdCBhL29wZW5z aXBzLTAwMDgtRml4LWJ1aWxkLXdpdGgtT3BlblNTTC0zLngtcmVwbGFjZS1kaXJlY3QtQVNOMV9T VFJJTi5wYXRjaCBiL29wZW5zaXBzLTAwMDgtRml4LWJ1aWxkLXdpdGgtT3BlblNTTC0zLngtcmVw bGFjZS1kaXJlY3QtQVNOMV9TVFJJTi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi43MmNhODdmCi0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNpcHMtMDAwOC1GaXgtYnVp bGQtd2l0aC1PcGVuU1NMLTMueC1yZXBsYWNlLWRpcmVjdC1BU04xX1NUUklOLnBhdGNoCkBAIC0w LDAgKzEsNzggQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtv dkBnbWFpbC5jb20+CitEYXRlOiBXZWQsIDI0IEp1biAyMDI2IDIwOjI5OjQ1ICswMjAwCitTdWJq ZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIE9wZW5TU0wgMy54OiByZXBsYWNlIGRpcmVjdCBB U04xX1NUUklORyBtZW1iZXIKKyBhY2Nlc3MKKworT3BlblNTTCAzLnggbWFkZSBBU04xX1NUUklO RyAoc3RydWN0IGFzbjFfc3RyaW5nX3N0KSBhbiBvcGFxdWUgdHlwZS4KK1JlcGxhY2UgYWxsIGRp cmVjdCAtPmRhdGEgYW5kIC0+bGVuZ3RoIG1lbWJlciBhY2Nlc3Mgd2l0aCB0aGUgcHVibGljCith Y2Nlc3NvciBBUEkgKEFTTjFfU1RSSU5HX2dldDBfZGF0YSwgQVNOMV9TVFJJTkdfbGVuZ3RoKSwg YXZhaWxhYmxlCitzaW5jZSBPcGVuU1NMIDEuMS4wLgorCitGaXhlcyBidWlsZCBvbiBGZWRvcmEg NDUgKE9wZW5TU0wgMy41LngsIEdDQyAxNikuCisKK1NpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVu a292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitBc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMp IDxodHRwczovL2NsYXVkZS5haT4KKworZGlmZiAtLWdpdCBhL21vZHVsZXMvaWRlbnRpdHkvaWRl bnRpdHkuYyBiL21vZHVsZXMvaWRlbnRpdHkvaWRlbnRpdHkuYworaW5kZXggZjRhMzUwYTUzYy4u YTFiMTdiOWQwMyAxMDA2NDQKKy0tLSBhL21vZHVsZXMvaWRlbnRpdHkvaWRlbnRpdHkuYworKysr IGIvbW9kdWxlcy9pZGVudGl0eS9pZGVudGl0eS5jCitAQCAtMTQyMCwxMyArMTQyMCwxMyBAQCBz dGF0aWMgdGltZV90IHBhcnNlWDUwOURhdGUoQVNOMV9TVFJJTkcgKiBkYXRlU3RyaW5nKQorIAkJ cmV0dXJuIC0xOworIAl9CisgCistCWlmKChBU04xX1VUQ1RJTUVfY2hlY2soZGF0ZVN0cmluZykp ICYmIChkYXRlU3RyaW5nLT5sZW5ndGggPT0gMTMpKQorKwlpZigoQVNOMV9VVENUSU1FX2NoZWNr KGRhdGVTdHJpbmcpKSAmJiAoQVNOMV9TVFJJTkdfbGVuZ3RoKGRhdGVTdHJpbmcpID09IDEzKSkK KyAJeworIAkJLyogVVRDVElNRSBzdHJpbmcsIEdNVAorIAkJWVlNTUREaGhtbXNzWgorIAkJKi8K KyAKKy0JCXRtcCA9IGRhdGVTdHJpbmctPmRhdGE7CisrCQl0bXAgPSAoY2hhciAqKUFTTjFfU1RS SU5HX2dldDBfZGF0YShkYXRlU3RyaW5nKTsKKyAKKyAJCXRtRGF0ZS50bV95ZWFyID0gKHRtcFsw XSAtICcwJykgKiAxMCArICh0bXBbMV0gLSAnMCcpOworIAkJaWYodG1EYXRlLnRtX3llYXIgPCA1 MCkgLy9zZWUgY2hhcC4gNC4xLjIuNS4xLCByZmMgMzI4MAorQEAgLTE0NDQsMTIgKzE0NDQsMTIg QEAgc3RhdGljIHRpbWVfdCBwYXJzZVg1MDlEYXRlKEFTTjFfU1RSSU5HICogZGF0ZVN0cmluZykK KyAJfQorIAorIAkvKiBuZWVkZWQgZm9yIHllYXJzID49IDIwNTAgKi8KKy0JaWYgKChBU04xX0dF TkVSQUxJWkVEVElNRV9jaGVjayhkYXRlU3RyaW5nKSkgJiYgKGRhdGVTdHJpbmctPmxlbmd0aCA9 PSAxNSkpCisrCWlmICgoQVNOMV9HRU5FUkFMSVpFRFRJTUVfY2hlY2soZGF0ZVN0cmluZykpICYm IChBU04xX1NUUklOR19sZW5ndGgoZGF0ZVN0cmluZykgPT0gMTUpKQorIAl7CisgCQkvKiBHRU5F UkFMSVpFRFRJTUUgc3RyaW5nOyBHTVQKKyAJCVlZWVlNTUREaGhtbXNzWgorIAkJKi8KKy0JCXRt cCA9IGRhdGVTdHJpbmctPmRhdGE7CisrCQl0bXAgPSAoY2hhciAqKUFTTjFfU1RSSU5HX2dldDBf ZGF0YShkYXRlU3RyaW5nKTsKKyAKKyAJCXRtRGF0ZS50bV95ZWFyID0gKHRtcFswXSAtICcwJykg KiAxMDAwICsKKyAJCQkodG1wWzFdIC0gJzAnKSAqIDEwMCArICh0bXBbMl0gLSAnMCcpICogMTAg KyAodG1wWzNdIC0gJzAnKSAtIDE5MDA7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy90bHNfb3BlbnNz bC9vcGVuc3NsX3Rsc192YXJzLmMgYi9tb2R1bGVzL3Rsc19vcGVuc3NsL29wZW5zc2xfdGxzX3Zh cnMuYworaW5kZXggMGFjMzlmNzY0OC4uODU5YWU3NWZlNyAxMDA2NDQKKy0tLSBhL21vZHVsZXMv dGxzX29wZW5zc2wvb3BlbnNzbF90bHNfdmFycy5jCisrKysgYi9tb2R1bGVzL3Rsc19vcGVuc3Ns L29wZW5zc2xfdGxzX3ZhcnMuYworQEAgLTMyNCw4ICszMjQsOCBAQCBpbnQgb3BlbnNzbF90bHNf dmFyX2FsdChpbnQgaW5kLCB2b2lkICpzc2wsIHN0ciAqcmVzKQorIAkJY2FzZSBHRU5fRU1BSUw6 CisgCQljYXNlIEdFTl9ETlM6CisgCQljYXNlIEdFTl9VUkk6CistCQkJdGV4dC5zID0gKGNoYXIq KW5tLT5kLmlhNS0+ZGF0YTsKKy0JCQl0ZXh0LmxlbiA9IG5tLT5kLmlhNS0+bGVuZ3RoOworKwkJ CXRleHQucyA9IChjaGFyKilBU04xX1NUUklOR19nZXQwX2RhdGEobm0tPmQuaWE1KTsKKysJCQl0 ZXh0LmxlbiA9IEFTTjFfU1RSSU5HX2xlbmd0aChubS0+ZC5pYTUpOworIAkJCWlmICh0ZXh0Lmxl biA+PSAxMDI0KSB7CisgCQkJCUxNX0VSUigiYWx0ZXJuYXRpdmUgc3ViamVjdCB0ZXh0IHRvbyBs b25nXG4iKTsKKyAJCQkJZ290byBlcnI7CitAQCAtMzM3LDkgKzMzNyw5IEBAIGludCBvcGVuc3Ns X3Rsc192YXJfYWx0KGludCBpbmQsIHZvaWQgKnNzbCwgc3RyICpyZXMpCisgCQkJYnJlYWs7Cisg CisgCQljYXNlIEdFTl9JUEFERDoKKy0JCQlpcC5sZW4gPSBubS0+ZC5pUEFkZHJlc3MtPmxlbmd0 aDsKKysJCQlpcC5sZW4gPSBBU04xX1NUUklOR19sZW5ndGgobm0tPmQuaVBBZGRyZXNzKTsKKyAJ CQlpcC5hZiA9IChpcC5sZW4gPT0gMTYpID8gQUZfSU5FVDYgOiBBRl9JTkVUOworLQkJCW1lbWNw eShpcC51LmFkZHIsIG5tLT5kLmlQQWRkcmVzcy0+ZGF0YSwgaXAubGVuKTsKKysJCQltZW1jcHko aXAudS5hZGRyLCBBU04xX1NUUklOR19nZXQwX2RhdGEobm0tPmQuaVBBZGRyZXNzKSwgaXAubGVu KTsKKyAJCQl0ZXh0LnMgPSBpcF9hZGRyMmEoJmlwKTsKKyAJCQl0ZXh0LmxlbiA9IHN0cmxlbih0 ZXh0LnMpOworIAkJCW1lbWNweShidWYsIHRleHQucywgdGV4dC5sZW4pOwoKZGlmZiAtLWdpdCBh L29wZW5zaXBzLTAwMDgtRml4LXVuaW5pdGlhbGl6ZWQtdmFfbGlzdC13YXJuaW5nLW9uLXBwYzY0 bGUtYW5kLWk2OC5wYXRjaCBiL29wZW5zaXBzLTAwMDgtRml4LXVuaW5pdGlhbGl6ZWQtdmFfbGlz dC13YXJuaW5nLW9uLXBwYzY0bGUtYW5kLWk2OC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggOTU3Y2VmNS4uMDAwMDAwMAotLS0gYS9vcGVuc2lwcy0wMDA4LUZpeC11bmluaXRp YWxpemVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxMDAgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVtZW5r b3YgPGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjYgRGVjIDIwMjUgMTc6MjU6MDUg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IHVuaW5pdGlhbGl6ZWQgdmFfbGlzdCB3YXJuaW5n IG9uIHBwYzY0bGUgYW5kIGk2ODYgd2l0aAotIEdDQyAxNQotCi1EdXJpbmcgY29tcGlsYXRpb24g b24gcHBjNjRsZSBhbmQgaTY4NiBhcmNoaXRlY3R1cmVzIHdpdGggR0NDIDE1LCBhCi13YXJuaW5n IGFwcGVhcnM6Ci0KLWBgYAotY2FjaGVkYl9yZWRpc19kYmFzZS5jOiBJbiBmdW5jdGlvbiAncmVk aXNfcnVuX2NvbW1hbmRfYXJndic6Ci1jYWNoZWRiX3JlZGlzX2RiYXNlLmM6NjU5OjE2OiB3YXJu aW5nOiAnXycgaXMgdXNlZCB1bmluaXRpYWxpemVkIFstV3VuaW5pdGlhbGl6ZWRdCi0gIDY1OSB8 ICAgICAgICAgcmV0dXJuIF9yZWRpc19ydW5fY29tbWFuZChjb25uZWN0aW9uLCBycGwsIGtleSwg YXJnYywgYXJndiwgYXJndmxlbiwgTlVMTCwgXyk7Ci0gICAgICB8ICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KLWNhY2hlZGJfcmVkaXNfZGJhc2UuYzo2NTc6MTc6IG5vdGU6ICdfJyB3YXMg ZGVjbGFyZWQgaGVyZQotICA2NTcgfCAgICAgICAgIHZhX2xpc3QgXzsKLSAgICAgIHwgICAgICAg ICAgICAgICAgIF4KLWBgYAotCi1JbiBjb21taXQgZDZhZDZkNDAzOWZjZjY4NjI0NDgxZjY5ZWU2 N2VmZjkyZjdiM2FiMiwgdGhlCi1gcmVkaXNfcnVuX2NvbW1hbmRfYXJndigpYCBmdW5jdGlvbiB3 YXMgbW9kaWZpZWQgdG8gcGFzcyBhbgotdW5pbml0aWFsaXplZCBgdmFfbGlzdGAgdG8gYF9yZWRp c19ydW5fY29tbWFuZCgpYC4KLQotVGhlIG9yaWdpbmFsIGxvZ2ljIGlzOgotYGBgYwotc3RhdGlj IGludCByZWRpc19ydW5fY29tbWFuZF9hcmd2KC4uLikgewotICAgIHZhX2xpc3QgXzsKLSAgICBy ZXR1cm4gX3JlZGlzX3J1bl9jb21tYW5kKGNvbm5lY3Rpb24sIHJwbCwga2V5LCBhcmdjLCBhcmd2 LCBhcmd2bGVuLCBOVUxMLCBfKTsKLX0KLWBgYAotCi1UaGUgdW5kZXJzY29yZSBgX2Agd2FzIHVz ZWQgYXMgYSAiZG9uJ3QgY2FyZSIgcGxhY2Vob2xkZXIsIHNpbmNlIHdoZW4KLWBhcmdjYCBpcyBu b24temVybywgYF9yZWRpc19ydW5fY29tbWFuZCgpYCB1c2VzIHRoZSBgYXJndmAgcGF0aCBhbmQK LW5ldmVyIGFjY2Vzc2VzIHRoZSBgdmFfbGlzdGAgcGFyYW1ldGVyOgotCi1gYGBjCi1pZiAoYXJn YykgewotICAgIHJlcGx5ID0gcmVkaXNDb21tYW5kQXJndihub2RlLT5jb250ZXh0LCBhcmdjLCBh cmd2LCBhcmd2bGVuKTsKLX0gZWxzZSB7Ci0gICAgdmFfY29weShhcSwgYXApOyAgLy8gT25seSBl eGVjdXRlZCB3aGVuIGFyZ2MgPT0gMAotICAgIHJlcGx5ID0gcmVkaXN2Q29tbWFuZChub2RlLT5j b250ZXh0LCBjbWRfZm10LCBhcSk7Ci0gICAgdmFfZW5kKGFxKTsKLX0KLWBgYAotCi1XaGlsZSB0 aGlzIHdvcmtlZCBpbiBwcmFjdGljZSAodGhlIHVuaW5pdGlhbGl6ZWQgYHZhX2xpc3RgIGlzIG5l dmVyCi1hY3R1YWxseSB1c2VkKSwgR0NDIDE1IG5vdyBjb3JyZWN0bHkgd2FybnMgdGhhdCBwYXNz aW5nIHVuaW5pdGlhbGl6ZWQKLWRhdGEgaXMgdW5kZWZpbmVkIGJlaGF2aW9yLCBldmVuIGlmIHRo YXQgZGF0YSBpcyBuZXZlciBhY2Nlc3NlZC4KLQotSW5pdGlhbGl6ZSB0aGUgYHZhX2xpc3RgIHRv IGEgc2FmZSB2YWx1ZSB1c2luZyB6ZXJvLWluaXRpYWxpemF0aW9uLiBUaGlzCi1zYXRpc2ZpZXMg dGhlIGNvbXBpbGVyJ3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjaGVjayB3aGlsZSBtYWludGFp bmluZwotdGhlIG9yaWdpbmFsIGxvZ2ljIC0gdGhlIGB2YV9saXN0YCBzdGlsbCB3b24ndCBiZSB1 c2VkIHdoZW4gYGFyZ2NgIGlzCi1ub24temVybywgYnV0IGl0J3Mgbm93IHZhbGlkbHkgaW5pdGlh bGl6ZWQuCi0KLSoqQ2hhbmdlZDoqKgotYGBgYwotdmFfbGlzdCBfOwotYGBgCi0KLSoqVG86KioK LWBgYGMKLXZhX2xpc3QgdW51c2VkX2FwID0gezB9OwotYGBgCi0KLUFsc28gcmVuYW1lZCBmcm9t IGBfYCB0byBgdW51c2VkX2FwYCBmb3IgY2xhcml0eSwgYXMgc2luZ2xlIHVuZGVyc2NvcmUKLWlk ZW50aWZpZXJzIGNhbiBiZSBwcm9ibGVtYXRpYyBhbmQgZG9uJ3QgY2xlYXJseSBjb252ZXkgaW50 ZW50LgotCi1FdmVuIHRob3VnaCB0aGUgdW5pbml0aWFsaXplZCBgdmFfbGlzdGAgaXMgbmV2ZXIg YWNjZXNzZWQgaW4gcHJhY3RpY2UsCi1wYXNzaW5nIHVuaW5pdGlhbGl6ZWQgZGF0YSB2aW9sYXRl cyBDJ3MgcnVsZXMgYW5kIGNhbiBjYXVzZSBpc3N1ZXMgd2l0aDoKLQotLSBTdGF0aWMgYW5hbHlz aXMgdG9vbHMKLS0gQ29tcGlsZXIgb3B0aW1pemF0aW9ucyB0aGF0IGFzc3VtZSBubyB1bmRlZmlu ZWQgYmVoYXZpb3IKLS0gRnV0dXJlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBgdmFfbGlzdGAgaW1w bGVtZW50YXRpb25zCi0tIENvZGUgbWFpbnRhaW5hYmlsaXR5ICh1bmNsZWFyIGludGVudCkKLQot VGhpcyBjaGFuZ2UgbWFrZXMgdGhlIGNvZGUgY29tcGxpYW50IHdpdGggQyBzdGFuZGFyZHMgd2hp bGUgcHJlc2VydmluZwotdGhlIG9yaWdpbmFsIGZ1bmN0aW9uYWxpdHkuCi0KLVJlbGF0ZWQgY29t bWl0OiBkNmFkNmQ0MDM5ZmNmNjg2MjQ0ODFmNjllZTY3ZWZmOTJmN2IzYWIyCi0oImNhY2hlZGJf cmVkaXM6IHByb3Blcmx5IHBhc3MgdmFyaWFibGUgYXJndW1lbnRzIHRvIGEgUmVkaXMgY29tbWFu ZCIpCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+ Ci1Bc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4KLQot ZGlmZiAtLWdpdCBhL21vZHVsZXMvY2FjaGVkYl9yZWRpcy9jYWNoZWRiX3JlZGlzX2RiYXNlLmMg Yi9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRpc19kYmFzZS5jCi1pbmRleCAxNzUw NDk1MzMzLi4zMmVjNGQyZjE4IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9jYWNoZWRiX3JlZGlzL2Nh Y2hlZGJfcmVkaXNfZGJhc2UuYwotKysrIGIvbW9kdWxlcy9jYWNoZWRiX3JlZGlzL2NhY2hlZGJf cmVkaXNfZGJhc2UuYwotQEAgLTEwMDcsOSArMTAwNyw5IEBAIHN0YXRpYyBpbnQgcmVkaXNfcnVu X2NvbW1hbmQoY2FjaGVkYl9jb24gKmNvbm5lY3Rpb24sIHJlZGlzUmVwbHkgKipycGwsCi0gc3Rh dGljIGludCByZWRpc19ydW5fY29tbWFuZF9hcmd2KGNhY2hlZGJfY29uICpjb25uZWN0aW9uLCBy ZWRpc1JlcGx5ICoqcnBsLAotICAgICAgICAgICAgICAgc3RyICprZXksIGludCBhcmdjLCBjb25z dCBjaGFyICoqYXJndiwgY29uc3Qgc2l6ZV90ICphcmd2bGVuKQotIHsKLS0JdmFfbGlzdCBfOwot Kwl2YV9saXN0IHVudXNlZF9hcCA9IHswfTsKLSAKLS0JcmV0dXJuIF9yZWRpc19ydW5fY29tbWFu ZChjb25uZWN0aW9uLCBycGwsIGtleSwgYXJnYywgYXJndiwgYXJndmxlbiwgTlVMTCwgXyk7Ci0r CXJldHVybiBfcmVkaXNfcnVuX2NvbW1hbmQoY29ubmVjdGlvbiwgcnBsLCBrZXksIGFyZ2MsIGFy Z3YsIGFyZ3ZsZW4sIE5VTEwsIHVudXNlZF9hcCk7Ci0gfQotIAotIGludCByZWRpc19nZXQoY2Fj aGVkYl9jb24gKmNvbm5lY3Rpb24sc3RyICphdHRyLHN0ciAqdmFsKQoKZGlmZiAtLWdpdCBhL29w ZW5zaXBzLTAwMDktRml4LXBvaW50ZXItdHJ1bmNhdGlvbi13YXJuaW5nLW9uLTMyLWJpdC1hcmNo aXRlY3R1ci5wYXRjaCBiL29wZW5zaXBzLTAwMDktRml4LXBvaW50ZXItdHJ1bmNhdGlvbi13YXJu aW5nLW9uLTMyLWJpdC1hcmNoaXRlY3R1ci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggOTA5NzA5My4uMDAwMDAwMAotLS0gYS9vcGVuc2lwcy0wMDA5LUZpeC1wb2ludGVyLXRy dW5jYXRpb24td2FybmluZy1vbi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwyOTEgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVtZW5rb3Yg PGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjYgRGVjIDIwMjUgMjE6MDg6MDAgKzAx MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IHBvaW50ZXIgdHJ1bmNhdGlvbiB3YXJuaW5nIG9uIDMy LWJpdCBhcmNoaXRlY3R1cmVzIGluCi0gYWFhX2RpYW1ldGVyCi1NSU1FLVZlcnNpb246IDEuMAot Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0Ci0KLUR1cmluZyBjb21waWxhdGlvbiBvbiBpNjg2ICgzMi1iaXQpIGFy Y2hpdGVjdHVyZSB3aXRoIEdDQyAxNSwgYSBwb2ludGVyCi10cnVuY2F0aW9uIHdhcm5pbmcgYXBw ZWFyczoKLQotYGBgCi1hYWFfZGlhbWV0ZXIuYzogSW4gZnVuY3Rpb24gJ2RtX3NlbmRfYW5zd2Vy JzoKLWFhYV9kaWFtZXRlci5jOjQyMzo3Mzogd2FybmluZzogY2FzdCB0byBwb2ludGVyIGZyb20g aW50ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZSBbLVdpbnQtdG8tcG9pbnRlci1jYXN0XQotICA0MjMg fCAgZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQs IGNtZGNvZGUsICh2b2lkICopZmRfcmVxKTsKLWBgYAotCi1UaGUgYGRtX21lc3NhZ2VgIHN0cnVj dCBzdG9yZXMgYSBwb2ludGVyIHRvIGEgRnJlZURpYW1ldGVyIG1lc3NhZ2UKLXN0cnVjdHVyZSBp biB0aGUgYGZkX3JlcWAgZmllbGQsIGJ1dCB0aGUgdHlwZSBpcyBtaXNtYXRjaGVkIGFjcm9zcwot ZGlmZmVyZW50IGNvZGUgcGF0aHM6Ci0KLTEuIEluIGBhYWFfZGlhbWV0ZXIuY2AsIGEgcG9pbnRl ciBpcyBzZXJpYWxpemVkIGFzIGB1aW50NjRfdGAgKDggYnl0ZXMpCi0yLiBJdCdzIHRoZW4gY2Fz dCB0byBgdm9pZCAqYCBhbmQgcGFzc2VkIHRvIGBfZG1fY3JlYXRlX21lc3NhZ2UoKWAKLTMuIE9u ICoqaTY4NioqLCBgdm9pZCAqYCBpcyBvbmx5IDQgYnl0ZXMsIGNhdXNpbmcgKip0cnVuY2F0aW9u Kiogb2YgdGhlCi0gICB1cHBlciAzMiBiaXRzCi00LiBJbiBgZG1fcGVlci5jYCwgaXQncyBjYXN0 IGJhY2sgdG8gYHN0cnVjdCBtc2cgKmAgZm9yIHVzZQotCi0qKk9uIHg4Nl82NCAoNjQtYml0KToq KgotCi0tIGB1aW50NjRfdGAgPSA4IGJ5dGVzCi0tIGB2b2lkICpgID0gOCBieXRlcwotLSBObyB0 cnVuY2F0aW9uLCB3b3JrcyBmaW5lCi0KLSoqT24gaTY4NiAoMzItYml0KToqKgotCi0tIGB1aW50 NjRfdGAgPSA4IGJ5dGVzCi0tIGB2b2lkICpgID0gNCBieXRlcwotLSAqKlRydW5jYXRpb24gb2Nj dXJzKiosIGxvc2luZyB1cHBlciAzMiBiaXRzIG9mIHRoZSBwb2ludGVyIQotCi1DaGFuZ2UgYGZk X3JlcWAgZnJvbSBgdm9pZCAqYCB0byBgdWludHB0cl90YCB0aHJvdWdob3V0IHRoZSBjb2RlYmFz ZS4KLQotYHVpbnRwdHJfdGAgaXM6Ci0KLS0gKipQb3J0YWJsZSoqOiBTaXplZCBjb3JyZWN0bHkg Zm9yIHBvaW50ZXJzIG9uIGFueSBhcmNoaXRlY3R1cmUgKDQKLSAgYnl0ZXMgb24gMzItYml0LCA4 IGJ5dGVzIG9uIDY0LWJpdCkKLS0gKipTdGFuZGFyZCoqOiBEZWZpbmVkIGluIEM5OSBgPHN0ZGlu dC5oPmAKLS0gKipTZW1hbnRpYyoqOiBFeHBsaWNpdGx5IGRlc2lnbmVkIGZvciBzdG9yaW5nIHBv aW50ZXIgdmFsdWVzIGFzCi0gIGludGVnZXJzCi0tICoqU2FmZSoqOiBHdWFyYW50ZWVkIGJ5IEM5 OSB0byBwcmVzZXJ2ZSBwb2ludGVyIHZhbHVlcyBkdXJpbmcKLSAgcm91bmQtdHJpcCBjb252ZXJz aW9ucwotCi0qKjEuIFN0cnVjdCBkZWZpbml0aW9uIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1f aW1wbC5oYCBsaW5lIDkzKToqKgotCi1gYGBjCi1zdHJ1Y3QgZG1fbWVzc2FnZSB7Ci0gICAgLy8g Q2hhbmdlZCBmcm9tOiB2b2lkICpmZF9yZXE7Ci0gICAgdWludHB0cl90IGZkX3JlcTsKLSAgICAv LyAuLi4KLX07Ci1gYGAKLQotKioyLiBGdW5jdGlvbiBzaWduYXR1cmUgKGBtb2R1bGVzL2FhYV9k aWFtZXRlci9kbV9pbXBsLmhgIH5saW5lIDE2NSk6KioKLQotYGBgYwotYWFhX21lc3NhZ2UgKl9k bV9jcmVhdGVfbWVzc2FnZShhYWFfY29ubiAqXywgaW50IG1zZ190eXBlLAotICAgIHVuc2lnbmVk IGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdWludHB0cl90IGZkX3JlcSk7Ci0g ICAgLy8gQ2hhbmdlZCBmcm9tOiB2b2lkICpmZF9yZXEKLWBgYAotCi0qKjMuIEZ1bmN0aW9uIGRl ZmluaXRpb24gKGBtb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmNgIGxpbmUgMTY5NSk6KioK LQotYGBgYwotYWFhX21lc3NhZ2UgKl9kbV9jcmVhdGVfbWVzc2FnZShhYWFfY29ubiAqXywgaW50 IG1zZ190eXBlLAotICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29k ZSwgdWludHB0cl90IGZkX21zZykKLSAgICAvLyBDaGFuZ2VkIGZyb206IHZvaWQgKmZkX21zZwot YGBgCi0KLSoqNC4gQ2FsbCBzaXRlcyAtIHBvaW50ZXIgdG8gdWludHB0cl90OioqCi0KLWBgYGMK LS8vIGFhYV9kaWFtZXRlci5jIGxpbmUgNDIzIC0gcmVtb3ZlIHZvaWQqIGNhc3Q6Ci1kbXNnID0g X2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUlBMLCBhcHBpZCwgY21kY29kZSwg ZmRfcmVxKTsKLQotLy8gZG1faW1wbC5jIC0gYWRkIGV4cGxpY2l0IGNhc3RzIHdoZW4gc3Rvcmlu ZyBwb2ludGVyczoKLWRtLmZkX3JlcSA9ICh1aW50cHRyX3QpcmVxOwotZG0tPmZkX3JlcSA9ICh1 aW50cHRyX3QpZmRfbXNnOwotYGBgCi0KLSoqNS4gQ2FsbCBzaXRlcyB3aXRoIE5VTEwgLSB1c2Ug MCBpbnN0ZWFkOioqCi0KLVNpbmNlIGB1aW50cHRyX3RgIGlzIGFuIGludGVnZXIgdHlwZSAobm90 IGEgcG9pbnRlciB0eXBlKSwgd2UgdXNlIGAwYAotaW5zdGVhZCBvZiBgTlVMTGAgdG8gcmVwcmVz ZW50ICJubyBwb2ludGVyIjoKLQotYGBgYwotLy8gTXVsdGlwbGUgbG9jYXRpb25zIGluIGFhYV9k aWFtZXRlci5jLCBkbV9pbXBsLmM6Ci1kbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFB QV9DVVNUT01fUkVRLCAqYXBwX2lkLCAqY21kX2NvZGUsIDApOwotLy8gQ2hhbmdlZCBmcm9tOiAu Li4sIE5VTEwpOwotYGBgCi0KLSoqTm90ZToqKiBJbiBDLCBgTlVMTGAgaXMgdHlwaWNhbGx5IGAo KHZvaWQgKikwKWAgLSBhIHBvaW50ZXIgdHlwZS4gV2hlbgotcGFzc2luZyB0byBhbiBpbnRlZ2Vy IHBhcmFtZXRlciBsaWtlIGB1aW50cHRyX3RgLCB3ZSB1c2UgdGhlIGludGVnZXIgYDBgCi1kaXJl Y3RseSB0byBhdm9pZCBpbXBsaWNpdCBwb2ludGVyLXRvLWludGVnZXIgY29udmVyc2lvbiB3YXJu aW5ncy4KLQotKio2LiBVc2FnZSBzaXRlIC0gdWludHB0cl90IHRvIHBvaW50ZXIgKGBkbV9wZWVy LmNgKToqKgotCi1gYGBjCi0vLyBDaGFuZ2VkIGZyb206IHN0cnVjdCBtc2cgKmFucyA9IChzdHJ1 Y3QgbXNnICopZG0tPmZkX3JlcTsKLXN0cnVjdCBtc2cgKmFucyA9IChzdHJ1Y3QgbXNnICopKHVp bnRwdHJfdClkbS0+ZmRfcmVxOwotYGBgCi0KLVRoZSBkb3VibGUgY2FzdCBgKHN0cnVjdCBtc2cg KikodWludHB0cl90KXZhbHVlYCBpcyByZXF1aXJlZCBieSBDOTkgZm9yCi1ndWFyYW50ZWVkIGNv cnJlY3RuZXNzOgotCi0xLiAqKkM5OSBndWFyYW50ZWVzKiogdGhhdCBhbnkgcG9pbnRlciBjYW4g YmUgY29udmVydGVkIHRvIGB1aW50cHRyX3RgIGFuZCBiYWNrCi0yLiBEaXJlY3QgYGludGVnZXIg 4oaSIHBvaW50ZXJgIGNvbnZlcnNpb24gaXMgKippbXBsZW1lbnRhdGlvbi1kZWZpbmVkKiogYmVo YXZpb3IKLTMuIFRoZSBwcm9wZXIgY29udmVyc2lvbiBwYXRoIGlzOiBgcG9pbnRlciDihpIgdWlu dHB0cl90IOKGkiBwb2ludGVyYAotCi1XaGlsZSBhIHNpbmdsZSBjYXN0IGZyb20gYHVpbnRwdHJf dGAgdG8gcG9pbnRlciBvZnRlbiB3b3JrcyBpbiBwcmFjdGljZSwKLXRoZSBkb3VibGUgY2FzdCBl eHBsaWNpdGx5IGZvbGxvd3MgdGhlIEM5OSBzdGFuZGFyZCdzIGd1YXJhbnRlZWQKLWNvbnZlcnNp b24gcGF0aCwgZW5zdXJpbmcgdGhlIGNvZGUgaXMgc3RyaWN0bHkgY29uZm9ybWFudCBhbmQgd29u J3QKLWNhdXNlIGlzc3VlcyB3aXRoIHN0cmljdCBhbGlhc2luZyBydWxlcyBvciBmdXR1cmUgY29t cGlsZXIKLW9wdGltaXphdGlvbnMuCi0KLVRoZSBwYXR0ZXJuIGlzOgotLSAqKlBvaW50ZXIg4oaS IHVpbnRwdHJfdCoqOiBgKHVpbnRwdHJfdClwb2ludGVyYAotLSAqKnVpbnRwdHJfdCDihpIgUG9p bnRlcioqOiBgKHN0cnVjdCBtc2cgKikodWludHB0cl90KXZhbHVlYAotLSAqKk51bGwgdmFsdWUq KjogYDBgIChub3QgYE5VTExgLCBzaW5jZSBgdWludHB0cl90YCBpcyBhbiBpbnRlZ2VyIHR5cGUp Ci0KLVRoaXMgZml4IGVuc3VyZXMgcG9pbnRlcnMgYXJlIGNvcnJlY3RseSBwcmVzZXJ2ZWQgb24g YWxsIGFyY2hpdGVjdHVyZXMKLXdpdGhvdXQgdHJ1bmNhdGlvbi4KLQotU2lnbmVkLW9mZi1ieTog UGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLUFzc2lzdGVkLWJ5OiBDbGF1ZGUg KEFudGhyb3BpYykgPGh0dHBzOi8vY2xhdWRlLmFpPgotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9h YWFfZGlhbWV0ZXIvYWFhX2RpYW1ldGVyLmMgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9hYWFfZGlh bWV0ZXIuYwotaW5kZXggM2E0MjZiZDkyOS4uZDFhOWM4Y2JkMiAxMDA2NDQKLS0tLSBhL21vZHVs ZXMvYWFhX2RpYW1ldGVyL2FhYV9kaWFtZXRlci5jCi0rKysgYi9tb2R1bGVzL2FhYV9kaWFtZXRl ci9hYWFfZGlhbWV0ZXIuYwotQEAgLTE5LDYgKzE5LDcgQEAKLSAgKi8KLSAKLSAjaW5jbHVkZSA8 ZnJlZURpYW1ldGVyL2V4dGVuc2lvbi5oPgotKyNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSAjaW5j bHVkZSAiLi4vLi4vc3JfbW9kdWxlLmgiCi0gI2luY2x1ZGUgIi4uLy4uL2xpYi9saXN0LmgiCi1A QCAtMzE1LDcgKzMxNiw3IEBAIHN0YXRpYyBpbnQgZG1fc2VuZF9yZXF1ZXN0KHN0cnVjdCBzaXBf bXNnICptc2csIGludCAqYXBwX2lkLCBpbnQgKmNtZF9jb2RlLAotIAkJZ290byBlcnJvcjsKLSAJ fQotIAotLQlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVRLCAq YXBwX2lkLCAqY21kX2NvZGUsIE5VTEwpOwotKwlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5V TEwsIEFBQV9DVVNUT01fUkVRLCAqYXBwX2lkLCAqY21kX2NvZGUsIDApOwotIAlpZiAoIWRtc2cp IHsKLSAJCUxNX0VSUigib29tXG4iKTsKLSAJCWdvdG8gZXJyb3I7Ci1AQCAtNDI1LDcgKzQyNiw3 IEBAIHN0YXRpYyBpbnQgZG1fc2VuZF9hbnN3ZXIoc3RydWN0IHNpcF9tc2cgKm1zZywgc3RyICph dnBfanNvbiwgaW50ICppc19lcnJvcikKLSAJCXJldmVyc2VfaGV4MmludDY0KHJlcy5ycy5zLCBy ZXMucnMubGVuLCAxLCAmZmRfcmVxKTsKLSAJfQotIAotLQlkbXNnID0gX2RtX2NyZWF0ZV9tZXNz YWdlKE5VTEwsIEFBQV9DVVNUT01fUlBMLCBhcHBpZCwgY21kY29kZSwgKHZvaWQgKilmZF9yZXEp OwotKwlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUlBMLCBhcHBp ZCwgY21kY29kZSwgZmRfcmVxKTsKLSAJaWYgKCFkbXNnKSB7Ci0gCQlMTV9FUlIoIm9vbVxuIik7 Ci0gCQlnb3RvIGVycm9yOwotQEAgLTU4MSw3ICs1ODIsNyBAQCBzdGF0aWMgaW50IGRtX3NlbmRf cmVxdWVzdF9hc3luYyhzdHJ1Y3Qgc2lwX21zZyAqbXNnLCBhc3luY19jdHggKmN0eCwKLSAJCWdv dG8gZXJyb3I7Ci0gCX0KLSAKLS0JZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFf Q1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCBOVUxMKTsKLSsJZG1zZyA9IF9kbV9jcmVh dGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCAwKTsK LSAJaWYgKCFkbXNnKSB7Ci0gCQlMTV9FUlIoIm9vbVxuIik7Ci0gCQlnb3RvIGVycm9yOwotZGlm ZiAtLWdpdCBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuYyBiL21vZHVsZXMvYWFhX2Rp YW1ldGVyL2RtX2ltcGwuYwotaW5kZXggNDMzZTA3ODM1OC4uN2RmZjlmYmJmNyAxMDA2NDQKLS0t LSBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuYwotKysrIGIvbW9kdWxlcy9hYWFfZGlh bWV0ZXIvZG1faW1wbC5jCi1AQCAtMjEsNiArMjEsNyBAQAotICNpbmNsdWRlIDxmcmVlRGlhbWV0 ZXIvZXh0ZW5zaW9uLmg+Ci0gI2luY2x1ZGUgPHN5cy9ldmVudGZkLmg+Ci0gI2luY2x1ZGUgPGlu dHR5cGVzLmg+Ci0rI2luY2x1ZGUgPHN0ZGludC5oPgotIAotICNpbmNsdWRlICIuLi8uLi91dC5o IgotICNpbmNsdWRlICIuLi8uLi9saWIvbGlzdC5oIgotQEAgLTYwMiw3ICs2MDMsNyBAQCBzdGF0 aWMgaW50IGRtX3JlY2VpdmVfcmVxKHN0cnVjdCBtc2cgKipfcmVxLCBzdHJ1Y3QgYXZwICogYXZw LCBzdHJ1Y3Qgc2Vzc2lvbiAqCi0gCi0gCQltZW1zZXQoJmRtLCAwLCBzaXplb2YgZG0pOwotIAot LQkJZG0uZmRfcmVxID0gcmVxOwotKwkJZG0uZmRfcmVxID0gKHVpbnRwdHJfdClyZXE7Ci0gCQlk bS5hcHBfaWQgPSBoZHItPm1zZ19hcHBsOwotIAkJZG0uY21kX2NvZGUgPSBoZHItPm1zZ19jb2Rl OwotIAkJZG0uZXJyb3JfYml0ID0gMTsKLUBAIC0xNzU1LDcgKzE3NTYsNyBAQCBpbnQgZG1fYXBp X2ZpbmRfY21kKGRpYW1ldGVyX2Nvbm4gKmNvbm4sIGludCBjbWRfY29kZSkKLSB9Ci0gCi0gYWFh X21lc3NhZ2UgKl9kbV9jcmVhdGVfbWVzc2FnZShhYWFfY29ubiAqXywgaW50IG1zZ190eXBlLAot LSAgICAgICAgdW5zaWduZWQgaW50IGFwcF9pZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB2b2lk ICpmZF9tc2cpCi0rICAgICAgICB1bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21k X2NvZGUsIHVpbnRwdHJfdCBmZF9tc2cpCi0gewotIAlhYWFfbWVzc2FnZSAqbTsKLSAJc3RydWN0 IGRtX21lc3NhZ2UgKmRtOwotQEAgLTE3ODIsNyArMTc4Myw3IEBAIGFhYV9tZXNzYWdlICpfZG1f Y3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLSAJZG0tPmFtID0gbTsK LSAJZG0tPmFwcF9pZCA9IGFwcF9pZDsKLSAJZG0tPmNtZF9jb2RlID0gY21kX2NvZGU7Ci0tCWRt LT5mZF9yZXEgPSBmZF9tc2c7Ci0rCWRtLT5mZF9yZXEgPSAodWludHB0cl90KWZkX21zZzsKLSAK LSAJcmV0dXJuIG07Ci0gfQotQEAgLTE3OTAsNyArMTc5MSw3IEBAIGFhYV9tZXNzYWdlICpfZG1f Y3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLSAKLSBhYWFfbWVzc2Fn ZSAqZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSkKLSB7Ci0tCXJl dHVybiBfZG1fY3JlYXRlX21lc3NhZ2UoXywgbXNnX3R5cGUsIDAsIDAsIE5VTEwpOwotKwlyZXR1 cm4gX2RtX2NyZWF0ZV9tZXNzYWdlKF8sIG1zZ190eXBlLCAwLCAwLCAwKTsKLSB9Ci0gCi0gCi1A QCAtMjE0NSw3ICsyMTQ2LDcgQEAgaW50IGRtX2FwaV9zZW5kX3JlcShkaWFtZXRlcl9jb25uICpj b25uLCBpbnQgYXBwX2lkLCBpbnQgY21kX2NvZGUsIGNKU09OICpyZXEsIGQKLSAJCXJldHVybiAt MjsKLSAJfQotIAotLQlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01f UkVRLCBhcHBfaWQsIGNtZF9jb2RlLCBOVUxMKTsKLSsJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2Fn ZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgYXBwX2lkLCBjbWRfY29kZSwgMCk7Ci0gCWlmICghZG1z ZykgewotIAkJTE1fRVJSKCJvb21cbiIpOwotIAkJcmV0dXJuIC0xOwotQEAgLTIxODIsNyArMjE4 Myw3IEBAIGludCBkbV9hcGlfc2VuZF9yZXFfYXN5bmMoZGlhbWV0ZXJfY29ubiAqY29ubiwgaW50 IGFwcF9pZCwgaW50IGNtZF9jb2RlLCBjSlNPTiAqCi0gCQlyZXR1cm4gLTI7Ci0gCX0KLSAKLS0J ZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgYXBwX2lkLCBj bWRfY29kZSwgTlVMTCk7Ci0rCWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NV U1RPTV9SRVEsIGFwcF9pZCwgY21kX2NvZGUsIDApOwotIAlpZiAoIWRtc2cpIHsKLSAJCUxNX0VS Uigib29tXG4iKTsKLSAJCXJldHVybiAtMTsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2FhYV9kaWFt ZXRlci9kbV9pbXBsLmggYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmgKLWluZGV4IGIy NWNkNzdmMTkuLjUyZTNmMjNkYTUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9k bV9pbXBsLmgKLSsrKyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuaAotQEAgLTI0LDYg KzI0LDcgQEAKLSAjaW5jbHVkZSAiLi4vLi4vYWFhL2FhYS5oIgotICNpbmNsdWRlICIuLi8uLi9t ZW0vc2htX21lbS5oIgotICNpbmNsdWRlICJkaWFtZXRlcl9hcGkuaCIKLSsjaW5jbHVkZSA8c3Rk aW50Lmg+Ci0gCi0gI2RlZmluZSBfX0ZEX0NIRUNLKF9fY2FsbF9fLCBfX3JldG9rX18sIF9fcmV0 dmFsX18pIFwKLSAJZG8geyBcCi1AQCAtOTEsNyArOTIsNyBAQCBzdHJ1Y3QgX2RtX2RpY3Qgewot IHN0cnVjdCBkbV9tZXNzYWdlIHsKLSAJYWFhX21lc3NhZ2UgKmFtOyAvKiBiYWNrLXJlZmVyZW5j ZSwgdXNlZnVsIGR1cmluZyBjbGVhbnVwICovCi0gCi0tCXZvaWQgKmZkX3JlcTsKLSsJdWludHB0 cl90IGZkX3JlcTsKLSAJdW5zaWduZWQgaW50IGFwcF9pZDsgICAvKiB0aGVzZSB0d28gYXJlIHVz ZWQgd2hlbiBzZW5kaW5nICovCi0gCXVuc2lnbmVkIGludCBjbWRfY29kZTsgLyogY3VzdG9tIERp YW1ldGVyIHJlcXVlc3RzICovCi0gCWludCBlcnJvcl9iaXQ7Ci1AQCAtMTgyLDcgKzE4Myw3IEBA IGludCBkbV9yZWdpc3Rlcl9jYWxsYmFja3Modm9pZCk7Ci0gaW50IGRtX2ZpbmQoYWFhX2Nvbm4g Kl8sIGFhYV9tYXAgKm1hcCwgaW50IG9wKTsKLSBhYWFfbWVzc2FnZSAqZG1fY3JlYXRlX21lc3Nh Z2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSk7Ci0gYWFhX21lc3NhZ2UgKl9kbV9jcmVhdGVf bWVzc2FnZShhYWFfY29ubiAqXywgaW50IG1zZ190eXBlLAotLSAgICAgICAgdW5zaWduZWQgaW50 IGFwcF9pZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB2b2lkICpmZF9yZXEpOwotKyAgICAgICAg dW5zaWduZWQgaW50IGFwcF9pZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB1aW50cHRyX3QgZmRf cmVxKTsKLSBpbnQgZG1fYXZwX2FkZChhYWFfY29ubiAqXywgYWFhX21lc3NhZ2UgKm1zZywgYWFh X21hcCAqYXZwLCB2b2lkICp2YWwsCi0gICAgICAgICAgICAgICAgaW50IHZhbF9sZW5ndGgsIGlu dCB2ZW5kb3IpOwotIGludCBkbV9idWlsZF9hdnBzKHN0cnVjdCBsaXN0X2hlYWQgKnN1YmF2cHMs IGNKU09OICphcnJheSk7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVl ci5jIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVlci5jCi1pbmRleCA5ZGJmZDFkNmM5Li4w NmIxN2E4ODQ1IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVlci5jCi0r KysgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9wZWVyLmMKLUBAIC0yNCw2ICsyNCw3IEBACi0g I2luY2x1ZGUgIi4uLy4uL3NyX21vZHVsZS5oIgotICNpbmNsdWRlICIuLi8uLi9sb2NraW5nLmgi Ci0gI2luY2x1ZGUgIi4uLy4uL2xpYi9saXN0LmgiCi0rI2luY2x1ZGUgPHN0ZGludC5oPgotIAot ICNpbmNsdWRlICJkbV9pbXBsLmgiCi0gI2luY2x1ZGUgImRtX3BlZXIuaCIKLUBAIC01MTEsNyAr NTEyLDcgQEAgc3RhdGljIGludCBkbV9zZW5kX2N1c3RvbV9yZXEoc3RydWN0IGRtX21lc3NhZ2Ug Km1zZykKLSAKLSBpbnQgZG1fc2VuZF9jdXN0b21fcnBsKHN0cnVjdCBkbV9tZXNzYWdlICpkbSkK LSB7Ci0tCXN0cnVjdCBtc2cgKmFucyA9IChzdHJ1Y3QgbXNnICopZG0tPmZkX3JlcTsKLSsJc3Ry dWN0IG1zZyAqYW5zID0gKHN0cnVjdCBtc2cgKikodWludHB0cl90KWRtLT5mZF9yZXE7Ci0gCWlu dCByYywgZmxhZ3MgPSAwOwotIAotIAlpZiAoIWRtX3NlcnZlcl9hdXRvcmVwbHlfZXJyb3IgJiYg ZG1fcmVtb3ZlX3VucmVwbGllZF9yZXEoYW5zKSAhPSAwKSB7CgpkaWZmIC0tZ2l0IGEvb3BlbnNp cHMtMDAxMC1GaXgtQzkwLXN0eWxlLWRlY2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBzdGF0cy1t b2R1LnBhdGNoIGIvb3BlbnNpcHMtMDAxMC1GaXgtQzkwLXN0eWxlLWRlY2xhcmF0aW9uLXdhcm5p bmdzLWluLXNubXBzdGF0cy1tb2R1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAyNjg5ZTRlLi4wMDAwMDAwCi0tLSBhL29wZW5zaXBzLTAwMTAtRml4LUM5MC1zdHlsZS1kZWNs YXJhdGlvbi13YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDM4MSArMCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVt ZW5rb3ZAZ21haWwuY29tPgotRGF0ZTogU2F0LCAzMSBKYW4gMjAyNiAxNToxMToyMCArMDEwMAot U3ViamVjdDogW1BBVENIXSBGaXggQzkwLXN0eWxlIGRlY2xhcmF0aW9uIHdhcm5pbmdzIGluIHNu bXBzdGF0cyBtb2R1bGUKLQotQnVpbGQgZmFpbHMgd2l0aCBgLVdlcnJvcj1kZWNsYXJhdGlvbi1h ZnRlci1zdGF0ZW1lbnRgIChlbmZvcmNlZCBieQotbmV0LXNubXAgcGtnLWNvbmZpZykgZHVlIHRv IHZhcmlhYmxlcyBkZWNsYXJlZCBhZnRlciBleGVjdXRhYmxlCi1zdGF0ZW1lbnRzOgotCi1gYGAK LW9wZW5zZXJPYmplY3RzLmM6NjE5Ojk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVj bGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0K LSAgNjE5IHwgICAgICAgICBpbnQgbmV3X3RocmVzaG9sZCA9IChpbnQpKGxvbmcpKGludCAqKXZh bDsKLQotb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYzoyNDQ6MTc6IGVycm9yOiBJU08gQzkwIGZv cmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFm dGVyLXN0YXRlbWVudF0KLSAgMjQ0IHwgICAgICAgICAgICAgICAgIGNoYXIgKm9wZW5CcmFjZVBv c2l0aW9uICAgPSBzdHJjaHIoYnVmZmVyLCAnKCcpOwotCi1vcGVuc2VyU0lQQ29tbW9uT2JqZWN0 cy5jOjQ3NTo5OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQg Y29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCi0gIDQ3NSB8ICAgICAg ICAgY2hhciAqc3RyRW50aXR5VHlwZSA9IChjaGFyICopdmFsOwotCi1vcGVuc2VyU0lQQ29udGFj dFRhYmxlLmM6MjY2Ojk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25z IGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KLSAgMjY2IHwg ICAgICAgICBzdGF0aWMgY2hhciAqZGVmYXVsdFVzZXIgPSAiRGVmYXVsdFVzZXIiOwotCi1vcGVu c2VyU0lQQ29udGFjdFRhYmxlLmM6MzYxOjk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQg ZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVu dF0KLSAgMzYxIHwgICAgICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IHJlcXVlc3Qt PnJlcXVlc3R2YjsKLWBgYAotCi1UaGUgbmV0LXNubXAgbGlicmFyeSdzIHBrZy1jb25maWcgYWRk cwotYC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50YCB0byBDRkxBR1MsIGVuZm9y Y2luZyBDOTAtc3R5bGUKLWRlY2xhcmF0aW9uIG9yZGVyaW5nIChhbGwgZGVjbGFyYXRpb25zIGJl Zm9yZSBzdGF0ZW1lbnRzKS4KLQotV2hpbGUgT3BlblNJUFMgYWRoZXJlcyB0byB0aGUgQzk5IHN0 YW5kYXJkICh3aGljaCBhbGxvd3MgbWl4ZWQKLWRlY2xhcmF0aW9ucyBhbmQgY29kZSksIHRoZSBu ZXQtc25tcCBsaWJyYXJ5IGNvdWxkIHJlcXVpcmUgQzkwLXN0eWxlCi1kZWNsYXJhdGlvbnMgZm9y IG1vZHVsZXMgdGhhdCBsaW5rIGFnYWluc3QgaXQuIEZvbGxvd2luZyB0aGlzIHN0eWxlCi1kb2Vz bid0IGh1cnQgQzk5IGNvbXBhdGliaWxpdHkgYW5kIGltcHJvdmVzIGNvZGUgcG9ydGFiaWxpdHku YAotCi1TaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgot QXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1ZGUuYWk+Ci0KLWRp ZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyT2JqZWN0cy5jIGIvbW9kdWxlcy9z bm1wc3RhdHMvb3BlbnNlck9iamVjdHMuYwotaW5kZXggMTgwYjYyZGRhNy4uOTA5ZGI0YzgwYiAx MDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKLSsrKyBiL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKLUBAIC02MDUsNiArNjA1LDggQEAgaW50 IGhhbmRsZV9vcGVuc2VyRGlhbG9nTGltaXRNYWpvckFsYXJtKG5ldHNubXBfbWliX2hhbmRsZXIg KmhhbmRsZXIsCi0gc3RhdGljIGludCBzZXRfaWZfdmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3Qg dHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIsCi0gCWludCAqbmV3VmFsKQotIHsKLSsJaW50 IG5ld190aHJlc2hvbGQ7Ci0rCi0gCWlmICh2YWw9PTApIHsKLSAJCUxNX0VSUigiJXMgY2FsbGVk IHdpdGggYSBudWxsIHZhbHVlIVxuIiwgdmFyU3RyKTsKLSAJCXJldHVybiAtMTsKLUBAIC02MTYs NyArNjE4LDcgQEAgc3RhdGljIGludCBzZXRfaWZfdmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3Qg dHlwZSwgdm9pZCAqdmFsLCBjaGFyICp2YXJTdHIsCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLS0J aW50IG5ld190aHJlc2hvbGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7Ci0rCW5ld190aHJlc2hv bGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7Ci0gCi0gCWlmIChuZXdfdGhyZXNob2xkIDwgLTEp IHsKLSAJCUxNX0VSUigiJXMgY2FsbGVkIHdpdGggYW4gaW52YWxpZCB0aHJlc2hvbGQ9JWQhXG4i LAotZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3Rz LmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jCi1pbmRleCBl MzdhYjZlZjJhLi5mMmRkYmE1YTdhIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3Bl bnNlclNJUENvbW1vbk9iamVjdHMuYwotKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJ UENvbW1vbk9iamVjdHMuYwotQEAgLTIyNSw2ICsyMjUsOCBAQCBpbnQgaGFuZGxlX29wZW5zZXJT SVBTZXJ2aWNlU3RhcnRUaW1lKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCi0gCi0gCWlu dCBlbGFwc2VkVGltZSA9IDA7Ci0gCWNoYXIgYnVmZmVyW1NOTVBHRVRfTUFYX0JVRkZFUl07Ci0r CWNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uID0gTlVMTDsKLSsJY2hhciAqY2xvc2VkQnJhY2VQb3Np dGlvbiA9IE5VTEw7Ci0gCi0gCUZJTEUgKnRoZUZpbGUgPSBmb3BlbihTTk1QR0VUX1RFTVBfRklM RSwgInIiKTsKLSAKLUBAIC0yNDEsOCArMjQzLDggQEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQU2Vy dmljZVN0YXJ0VGltZShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAotIAotIAkJLyogRmlu ZCB0aGUgcG9zaXRpb25zIG9mICcoJyBhbmQgJyknIHNvIHdlIGNhbiBleHRyYWN0IG91dCB0aGUK LSAJCSAqIHRpbWV0aWNrcyB2YWx1ZS4gKi8KLS0JCWNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uICAg PSBzdHJjaHIoYnVmZmVyLCAnKCcpOwotLQkJY2hhciAqY2xvc2VkQnJhY2VQb3NpdGlvbiA9IHN0 cmNocihidWZmZXIsICcpJyk7Ci0rCQlvcGVuQnJhY2VQb3NpdGlvbiAgID0gc3RyY2hyKGJ1ZmZl ciwgJygnKTsKLSsJCWNsb3NlZEJyYWNlUG9zaXRpb24gPSBzdHJjaHIoYnVmZmVyLCAnKScpOwot IAotIAkJLyogTWFrZSBzdXJlIHRoYXQgYm90aCB0aGUgJygnIGFuZCAnKScgZXhpc3QgaW4gdGhl IGZpbGUsIGFuZAotIAkJICogdGhhdCAnKCcgb2NjdXJzIGVhcmxpZXIgdGhhbiB0aGUgJyknLiAg SWYgYWxsIHRoZXNlCi1AQCAtNDY0LDYgKzQ2Niw3IEBAIGludCBoYW5kbGVfb3BlbnNlclNJUE90 aGVyd2lzZURpc2NhcmRlZE1zZ3MobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKLSAgKi8K LSBpbnQgaGFuZGxlU2lwRW50aXR5VHlwZSggbW9kcGFyYW1fdCB0eXBlLCB2b2lkKiB2YWwpCi0g ewotKwljaGFyICpzdHJFbnRpdHlUeXBlID0gTlVMTDsKLSAKLSAJLyogQnkgZGVmYXVsdCB3ZSBz dGFydCBvZmYgYXMgIm90aGVyIi4gKi8KLSAJc3RhdGljIGNoYXIgZmlyc3RUaW1lID0gMTsKLUBA IC00NzIsNyArNDc1LDcgQEAgaW50IGhhbmRsZVNpcEVudGl0eVR5cGUoIG1vZHBhcmFtX3QgdHlw ZSwgdm9pZCogdmFsKQotIAkJcmV0dXJuIC0xOwotIAl9Ci0gCi0tCWNoYXIgKnN0ckVudGl0eVR5 cGUgPSAoY2hhciAqKXZhbDsKLSsJc3RyRW50aXR5VHlwZSA9IChjaGFyICopdmFsOwotIAotIAkv KiBUaGlzIGlzIG91ciBmaXJzdCB0aW1lIHRocm91Z2ggdGhpcyBmdW5jdGlvbiwgc28gd2UgbmVl ZCB0byBjaGFuZ2UKLSAJICogb3BlbnNlckVudGl0eVR5cGUgZnJvbSBpdHMgZGVmYXVsdCB0byAw LCBhbGxvd2luZyBvdXIgYml0bWFza3MgYmVsb3cKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBz dGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2Vy U0lQQ29udGFjdFRhYmxlLmMKLWluZGV4IDdlZGMxMjEwY2UuLjAzNTg4MDI5YzggMTAwNjQ0Ci0t LS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMKLSsrKyBiL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb250YWN0VGFibGUuYwotQEAgLTI2MSwxMCArMjYx LDEwIEBAIHZvaWQgZGVsZXRlQ29udGFjdFJvdyhpbnQgdXNlckluZGV4LCBpbnQgY29udGFjdElu ZGV4KQotICAqLwotIHZvaWQgaW5pdF9vcGVuc2VyU0lQQ29udGFjdFRhYmxlKHZvaWQpCi0gewot LQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBDb250YWN0VGFibGUoKTsKLS0KLSAJc3RhdGlj IGNoYXIgKmRlZmF1bHRVc2VyID0gIkRlZmF1bHRVc2VyIjsKLSAKLSsJaW5pdGlhbGl6ZV90YWJs ZV9vcGVuc2VyU0lQQ29udGFjdFRhYmxlKCk7Ci0rCi0gCWNyZWF0ZUNvbnRhY3RSb3coMSwgMSwg ZGVmYXVsdFVzZXIsIE5VTEwpOwotIH0KLSAKLUBAIC0zNTQsMTQgKzM1NCwxNiBAQCBpbnQgb3Bl bnNlclNJUENvbnRhY3RUYWJsZV9nZXRfdmFsdWUoCi0gCWNoYXIgICAgICAgKnJldHJpZXZlZEV4 cGlyeTsKLSAJc3RydWN0IHRtICB0aW1lVmFsdWU7Ci0gCi0rCW5ldHNubXBfdmFyaWFibGVfbGlz dCAqdmFyID0gTlVMTDsKLSsJb3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICpjb250ZXh0 ID0gTlVMTDsKLSsKLSAJLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUg dGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCi0gCSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFu Z2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KLSAJY29uc3VtZUlu dGVycHJvY2Vzc0J1ZmZlcigpOwotIAotLQluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IHJl cXVlc3QtPnJlcXVlc3R2YjsKLSsJdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOwotIAotLQlvcGVu c2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKmNvbnRleHQgPQotLQkJKG9wZW5zZXJTSVBDb250 YWN0VGFibGVfY29udGV4dCAqKWl0ZW07Ci0rCWNvbnRleHQgPSAob3BlbnNlclNJUENvbnRhY3RU YWJsZV9jb250ZXh0ICopaXRlbTsKLSAKLSAJc3dpdGNoKHRhYmxlX2luZm8tPmNvbG51bSkKLSAJ ewotZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYyBi L21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYwotaW5kZXggYTEwNzU4Mjcz YS4uM2EwM2I3MmIyMSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQ b3J0VGFibGUuYwotKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5j Ci1AQCAtMTA0LDE5ICsxMDQsMTcgQEAgb3BlbnNlclNJUFBvcnRUYWJsZV9jb250ZXh0ICpnZXRS b3coaW50IGlwVHlwZSwgdW5zaWduZWQgaW50ICppcEFkZHJlc3MpCi0gewotIAlpbnQgbGVuZ3Ro T2ZPSUQ7Ci0gCW9pZCAqY3VycmVudE9JREluZGV4ID0gY3JlYXRlSW5kZXgoaXBUeXBlLCBpcEFk ZHJlc3MsICZsZW5ndGhPZk9JRCk7Ci0rCW5ldHNubXBfaW5kZXggdGhlSW5kZXg7Ci0rCW9wZW5z ZXJTSVBQb3J0VGFibGVfY29udGV4dCAqcm93VG9SZXR1cm4gPSBOVUxMOwotIAotIAlpZiAoY3Vy cmVudE9JREluZGV4ID09IE5VTEwpCi0gCXsKLSAJCXJldHVybiBOVUxMOwotIAl9Ci0gCi0tCW5l dHNubXBfaW5kZXggdGhlSW5kZXg7Ci0tCi0gCXRoZUluZGV4Lm9pZHMgPSBjdXJyZW50T0lESW5k ZXg7Ci0gCXRoZUluZGV4LmxlbiAgPSBsZW5ndGhPZk9JRDsKLSAKLS0Jb3BlbnNlclNJUFBvcnRU YWJsZV9jb250ZXh0ICpyb3dUb1JldHVybjsKLS0KLSAJLyogTGV0cyBjaGVjayB0byBzZWUgaWYg dGhlcmUgaXMgYW4gZXhpc3Rpbmcgcm93LiAqLwotIAlyb3dUb1JldHVybiA9IENPTlRBSU5FUl9G SU5EKGNiLmNvbnRhaW5lciwgJnRoZUluZGV4KTsKLSAKLUBAIC0yMTgsOCArMjE2LDYgQEAgdm9p ZCBpbml0X29wZW5zZXJTSVBQb3J0VGFibGUodm9pZCkKLSB7Ci0gCWludCBjdXJTTk1QSW5kZXgg PSAwOwotIAotLQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBQb3J0VGFibGUoKTsKLS0KLSAJ dW5zaWduZWQgaW50ICpVRFBMaXN0ID0gTlVMTDsKLSAJdW5zaWduZWQgaW50ICpUQ1BMaXN0ID0g TlVMTDsKLSAJdW5zaWduZWQgaW50ICpUTFNMaXN0ID0gTlVMTDsKLUBAIC0yMjgsNiArMjI0LDgg QEAgdm9pZCBpbml0X29wZW5zZXJTSVBQb3J0VGFibGUodm9pZCkKLSAJaW50IG51bVRDUFNvY2tl dHM7Ci0gCWludCBudW1UTFNTb2NrZXRzOwotIAotKwlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJT SVBQb3J0VGFibGUoKTsKLSsKLSAJLyogUmV0cmlldmUgdGhlIGxpc3Qgb2YgdGhlIG51bWJlciBv ZiBVRFAgYW5kIFRDUCBzb2NrZXRzLiAqLwotIAludW1VRFBTb2NrZXRzID0gZ2V0X3NvY2tldF9s aXN0X2Zyb21fcHJvdG8oJlVEUExpc3QsIFBST1RPX1VEUCk7Ci0gCW51bVRDUFNvY2tldHMgPSBn ZXRfc29ja2V0X2xpc3RfZnJvbV9wcm90bygmVENQTGlzdCwgUFJPVE9fVENQKTsKLWRpZmYgLS1n aXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMgYi9t b2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKLWluZGV4IDMy NGRmNjE4ZmQuLmE1NGI1ODM3NTIgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVu c2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5z ZXJTSVBSZWdVc2VyTG9va3VwVGFibGUuYwotQEAgLTUxNCwyMyArNTE0LDIwIEBAIHZvaWQgb3Bl bnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9zZXRfcmVzZXJ2ZTIoIG5ldHNubXBfcmVxdWVzdF9n cm91cCAqcmcgKQotICAqLwotIHZvaWQgb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9zZXRf YWN0aW9uKCBuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKnJnICkKLSB7Ci0tCS8qIEZpcnN0IHRoaW5n cyBmaXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgot LQkgKiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZy ZXNoZXN0IGRhdGEuICovCi0tCWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKLS0KLSAJYW9y VG9JbmRleFN0cnVjdF90ICpoYXNoUmVjb3JkOwotLQotIAluZXRzbm1wX3ZhcmlhYmxlX2xpc3Qg KnZhcjsKLSsJbmV0c25tcF9yZXF1ZXN0X2dyb3VwX2l0ZW0gKmN1cnJlbnQ7Ci0rCWludCByb3df ZXJyID0gMDsKLSsJb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICpyb3dfY3R4 ID0gTlVMTDsKLSsJb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICp1bmRvX2N0 eCA9IE5VTEw7Ci0gCi0tCW9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqcm93 X2N0eCA9Ci0tCQkob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPmV4 aXN0aW5nX3JvdzsKLS0KLS0Jb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICp1 bmRvX2N0eCA9Ci0tCQkob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmct PnVuZG9faW5mbzsKLSsJLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUg dGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCi0rCSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFu Z2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KLSsJY29uc3VtZUlu dGVycHJvY2Vzc0J1ZmZlcigpOwotIAotLQluZXRzbm1wX3JlcXVlc3RfZ3JvdXBfaXRlbSAqY3Vy cmVudDsKLSsJcm93X2N0eCA9IChvcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQg KilyZy0+ZXhpc3Rpbmdfcm93OwotIAotLQlpbnQJCQlyb3dfZXJyID0gMDsKLSsJdW5kb19jdHgg PSAob3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPnVuZG9faW5mbzsK LSAKLSAJLyogQ29weSB0aGUgYWN0dWFsIGRhdGEgdG8gdGhlIHJvdy4gKi8KLSAJZm9yKCBjdXJy ZW50ID0gcmctPmxpc3Q7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0ICkgewotZGlm ZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYyBiL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYwotaW5kZXggNDNiMTRjZGVi Ny4uOWNmMDI5ZGY5ZCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBS ZWdVc2VyVGFibGUuYwotKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJU YWJsZS5jCi1AQCAtMjI1LDE1ICsyMjUsMTQgQEAgdm9pZCB1cGRhdGVVc2VyKGNoYXIgKnVzZXJO YW1lKQotICAqIFJldHVybnM6IFRoZSByb3dzIHVzZXJJbmRleCBvbiBzdWNjZXNzLCBhbmQgMCBv dGhlcndpc2UuICovCi0gaW50IGNyZWF0ZVJlZ1VzZXJSb3coY2hhciAqc3RyaW5nVG9SZWdpc3Rl cikKLSB7Ci0tCWludCBzdGF0aWMgaW5kZXggPSAwOwotLQotLQlpbmRleCsrOwotLQotIAlvcGVu c2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKnRoZVJvdzsKLS0KLSAJb2lkICAqT0lESW5kZXg7 Ci0gCWludCAgc3RyaW5nTGVuZ3RoOwotIAotKwlpbnQgc3RhdGljIGluZGV4ID0gMDsKLSsKLSsJ aW5kZXgrKzsKLSsKLSAJdGhlUm93ID0gU05NUF9NQUxMT0NfVFlQRURFRihvcGVuc2VyU0lQUmVn VXNlclRhYmxlX2NvbnRleHQpOwotIAotIAlpZiAodGhlUm93ID09IE5VTEwpIHsKLUBAIC0yODAs MTIgKzI3OSwxMiBAQCBpbnQgY3JlYXRlUmVnVXNlclJvdyhjaGFyICpzdHJpbmdUb1JlZ2lzdGVy KQotIC8qIEluaXRpYWxpemVzIHRoZSBvcGVuc2VyU0lQUmVnVXNlclRhYmxlIG1vZHVsZS4gICov Ci0gdm9pZCBpbml0X29wZW5zZXJTSVBSZWdVc2VyVGFibGUodm9pZCkKLSB7Ci0tCS8qIFJlZ2lz dGVyIHRoaXMgdGFibGUgd2l0aCB0aGUgbWFzdGVyIGFnZW50ICovCi0tCWluaXRpYWxpemVfdGFi bGVfb3BlbnNlclNJUFJlZ1VzZXJUYWJsZSgpOwotLQotIAkvKiBXZSBuZWVkIHRvIGNyZWF0ZSBh IGRlZmF1bHQgcm93LCBzbyBjcmVhdGUgRGVmYXVsdFVzZXIgKi8KLSAJc3RhdGljIGNoYXIgKmRl ZmF1bHRVc2VyID0gIkRlZmF1bHRVc2VyIjsKLSAKLSsJLyogUmVnaXN0ZXIgdGhpcyB0YWJsZSB3 aXRoIHRoZSBtYXN0ZXIgYWdlbnQgKi8KLSsJaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUmVn VXNlclRhYmxlKCk7Ci0rCi0gCWNyZWF0ZVJlZ1VzZXJSb3coZGVmYXVsdFVzZXIpOwotIH0KLSAK LUBAIC0zNTAsMTQgKzM0OSwxNiBAQCBpbnQgb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9nZXRfdmFs dWUoCi0gCQluZXRzbm1wX2luZGV4ICppdGVtLAotIAkJbmV0c25tcF90YWJsZV9yZXF1ZXN0X2lu Zm8gKnRhYmxlX2luZm8gKQotIHsKLSsJbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSBOVUxM OwotKwlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKmNvbnRleHQgPSBOVUxMOwotKwot IAkvKiBGaXJzdCB0aGluZ3MgZmlyc3QsIHdlIG5lZWQgdG8gY29uc3VtZSB0aGUgaW50ZXJwcm9j ZXNzIGJ1ZmZlciwgaW4KLSAJICogY2FzZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQuIFdlIHdhbnQg dG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBkYXRhLiAqLwotIAljb25zdW1lSW50ZXJwcm9jZXNzQnVm ZmVyKCk7Ci0gCi0tCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gcmVxdWVzdC0+cmVxdWVz dHZiOwotKwl2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7Ci0gCi0tCW9wZW5zZXJTSVBSZWdVc2Vy VGFibGVfY29udGV4dCAqY29udGV4dCA9Ci0tCQkob3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250 ZXh0ICopaXRlbTsKLSsJY29udGV4dCA9IChvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQg KilpdGVtOwotIAotIAlzd2l0Y2godGFibGVfaW5mby0+Y29sbnVtKQotIAl7Ci1kaWZmIC0tZ2l0 IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGUuYyBiL21vZHVs ZXMvc25tcHN0YXRzL29wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlLmMKLWluZGV4IDJiMzk2YzY5 ODUuLjc5ZjNhMTI5YTMgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQ U3RhdHVzQ29kZXNUYWJsZS5jCi0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3Rh dHVzQ29kZXNUYWJsZS5jCi1AQCAtMzEwLDYgKzMxMCw3IEBAIGludCBvcGVuc2VyU0lQU3RhdHVz Q29kZXNUYWJsZV9jYW5fZGVsZXRlKAotIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NvbnRl eHQgKgotIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NyZWF0ZV9yb3coIG5ldHNubXBfaW5k ZXgqIGhkcikKLSB7Ci0rCWludCBjb2RlSW5kZXg7Ci0gCXN0YXRfdmFyICppbl9zdGF0dXNfY29k ZTsKLSAJc3RhdF92YXIgKm91dF9zdGF0dXNfY29kZTsKLSAKLUBAIC0zMzcsNyArMzM4LDcgQEAg b3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGVfY3JlYXRlX3JvdyggbmV0c25tcF9pbmRleCogaGRy KQotIAkvKiBSZXRyaWV2ZSB0aGUgaW5kZXggZm9yIHRoZSBzdGF0dXMgY29kZSwgYW5kIHRoZW4g YXNzaWduIHRoZSBzdGFydGluZwotIAkgKiB2YWx1ZXMuICBUaGUgc3RhcnRpbmcgdmFsdWVzIHdp bGwgYmUgdXNlZCB0byBjYWxjdWxhdGUgZGVsdGFzIGR1cmluZwotIAkgKiB0aGUgbmV4dCBzbm1w Z2V0L3NubXB3YWxrL3NubXB0YWJsZS9ldGMuICovCi0tCWludCBjb2RlSW5kZXggPSBjdHgtPm9w ZW5zZXJTSVBTdGF0dXNDb2RlVmFsdWU7Ci0rCWNvZGVJbmRleCA9IGN0eC0+b3BlbnNlclNJUFN0 YXR1c0NvZGVWYWx1ZTsKLSAKLSAJY3R4LT5zdGFydGluZ0luU3RhdHVzQ29kZVZhbHVlICA9IDA7 Ci0gCWN0eC0+c3RhcnRpbmdPdXRTdGF0dXNDb2RlVmFsdWUgPSAwOwotZGlmZiAtLWdpdCBhL21v ZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRz LmMKLWluZGV4IDk1YmMxYzFmM2IuLjU3NWMwZDEwNjggMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3Nu bXBzdGF0cy9zbm1wc3RhdHMuYwotKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMK LUBAIC0zNDYsNyArMzQ2LDEyIEBAIHN0YXRpYyB2b2lkIHNpZ2NobGRfaGFuZGxlcihpbnQgc2ln bmFsKQotICAqLwotIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZvaWQpCi0gewot KwlwaWRfdCByZXN1bHRfcGlkOwotKwlpbnQgc25tcGdldF9mZDsKLSsJaW50IGxvY2FsX3BhdGhf dG9fc25tcGdldF9sZW5ndGg7Ci0rCWludCBzbm1wZ2V0X2JpbmFyeV9uYW1lX2xlbmd0aDsKLSAJ c3RydWN0IHNpZ2FjdGlvbiBuZXdfc2lnY2hsZF9oYW5kbGVyOwotKwljaGFyICphcmdzWzZdOwot IAotIAljaGFyICpsb2NhbF9wYXRoX3RvX3NubXBnZXQgPSAiL3Vzci9iaW4vIjsKLSAJY2hhciAq c25tcGdldF9iaW5hcnlfbmFtZSAgID0gIi9zbm1wZ2V0IjsKLUBAIC0zNjIsNyArMzY3LDcgQEAg c3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKLSAJbmV3X3NpZ2NobGRfaGFu ZGxlci5zYV9oYW5kbGVyID0gc2lnY2hsZF9oYW5kbGVyOwotIAlzaWdhY3Rpb24oU0lHQ0hMRCwg Jm5ld19zaWdjaGxkX2hhbmRsZXIsICZvbGRfc2lnY2hsZF9oYW5kbGVyKTsKLSAKLS0JcGlkX3Qg cmVzdWx0X3BpZCA9IGZvcmsoKTsKLSsJcmVzdWx0X3BpZCA9IGZvcmsoKTsKLSAKLSAJaWYgKHJl c3VsdF9waWQgPCAwKSB7Ci0gCQlMTV9FUlIoImZhaWxlZCB0byBub3Qgc3Bhd24gYW4gYWdlbnQg dG8gY2hlY2sgc3lzVXBUaW1lXG4iKTsKLUBAIC0zODAsNyArMzg1LDcgQEAgc3RhdGljIGludCBz cGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKLSAKLSAJLyogSWYgd2UgYXJlIGhlcmUsIHRoZW4g d2UgYXJlIHRoZSBjaGlsZCBwcm9jZXNzLiAgTGV0cyBzZXQgdXAgdGhlIGZpbGUKLSAJICogZGVz Y3JpcHRvcnMgc28gd2UgY2FuIGNhcHR1cmUgdGhlIG91dHB1dCBvZiBzbm1wZ2V0LiAqLwotLQlp bnQgc25tcGdldF9mZCA9Ci0rCXNubXBnZXRfZmQgPQotIAkJb3BlbihTTk1QR0VUX1RFTVBfRklM RSwgT19DUkVBVHxPX1RSVU5DfE9fUkRXUiwKLSAJCQkJU19JUlVTUnxTX0lXVVNSfFNfSVJHUlB8 U19JUk9USCk7Ci0gCi1AQCAtNDAxLDggKzQwNiwxMiBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1Vw VGltZV9jaGlsZCh2b2lkKQotIAkJCQkiICBEZWZhdWx0aW5nIHRvICVzXG4iLAlzbm1wX2NvbW11 bml0eV9zdHJpbmcpOwotIAl9Ci0gCi0tCWNoYXIgKmFyZ3NbXSA9IHsiLU92IiwgIi1jIiwgIHNu bXBfY29tbXVuaXR5X3N0cmluZywgImxvY2FsaG9zdCIsCi0tCQlTWVNVUFRJTUVfT0lELCAoY2hh ciAqKSAwfTsKLSsJYXJnc1swXSA9ICItT3YiOwotKwlhcmdzWzFdID0gIi1jIjsKLSsJYXJnc1sy XSA9IHNubXBfY29tbXVuaXR5X3N0cmluZzsKLSsJYXJnc1szXSA9ICJsb2NhbGhvc3QiOwotKwlh cmdzWzRdID0gU1lTVVBUSU1FX09JRDsKLSsJYXJnc1s1XSA9IChjaGFyICopMDsKLSAKLSAJLyog TWFrZSBzdXJlIHdlIGhhdmUgYSBwYXRoIHRvIHNubXBnZXQsIHNvIHdlIGNhbiByZXRyaWV2ZSB0 aGUKLSAJICogc3lzVXBUaW1lLiAqLwotQEAgLTQxNiw4ICs0MjUsOCBAQCBzdGF0aWMgaW50IHNw YXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQotIAkJbG9jYWxfcGF0aF90b19zbm1wZ2V0ID0gc25t cGdldF9wYXRoOwotIAl9Ci0gCi0tCWludCBsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoID0g c3RybGVuKGxvY2FsX3BhdGhfdG9fc25tcGdldCk7Ci0tCWludCBzbm1wZ2V0X2JpbmFyeV9uYW1l X2xlbmd0aCAgID0gc3RybGVuKHNubXBnZXRfYmluYXJ5X25hbWUpOwotKwlsb2NhbF9wYXRoX3Rv X3NubXBnZXRfbGVuZ3RoID0gc3RybGVuKGxvY2FsX3BhdGhfdG9fc25tcGdldCk7Ci0rCXNubXBn ZXRfYmluYXJ5X25hbWVfbGVuZ3RoICAgPSBzdHJsZW4oc25tcGdldF9iaW5hcnlfbmFtZSk7Ci0g Ci0gCS8qIEFsbG9jYXRlIGVub3VnaCBtZW1vcnkgdG8gaG9sZCB0aGUgcGF0aCwgdGhlIGJpbmFy eSBuYW1lLCBhbmQgdGhlCi0gCSAqIG51bGwgY2hhcmFjdGVyLiAgV2UgZG9uJ3QgdXNlIHBrZ19t ZW1vcnkgaGVyZS4gKi8KLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMu YyBiL21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5jCi1pbmRleCBkZmMwOTc4Yjc0Li4yZjdl ZDlhMzA3IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvdXRpbGl0aWVzLmMKLSsrKyBi L21vZHVsZXMvc25tcHN0YXRzL3V0aWxpdGllcy5jCi1AQCAtNzIsMTMgKzcyLDEzIEBAIGludCBz dHJpbmdIYW5kbGVyU2FuaXR5Q2hlY2soIG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBjaGFy ICpwYXJhbWV0ZXJOYW1lKQotIGludCBnZXRfc3RhdGlzdGljKGNoYXIgKnN0YXROYW1lKQotIHsK LSAJaW50IHJlc3VsdCA9IDA7Ci0tCi0rCXN0YXRfdmFyICp0aGVWYXIgPSBOVUxMOwotIAlzdHIg dGhlU3RyOwotIAotIAl0aGVTdHIucyAgID0gc3RhdE5hbWU7Ci0gCXRoZVN0ci5sZW4gPSBzdHJs ZW4oc3RhdE5hbWUpOwotIAotLQlzdGF0X3ZhciAqdGhlVmFyID0gZ2V0X3N0YXQoJnRoZVN0cik7 Ci0rCXRoZVZhciA9IGdldF9zdGF0KCZ0aGVTdHIpOwotIAotIAlpZiAodGhlVmFyPT0wKSB7Ci0g CQlMTV9JTkZPKCJmYWlsZWQgdG8gcmV0cmlldmUgc3RhdGlzdGljcyBmb3IgJXNcbiIsIHN0YXRO YW1lKTsKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDExLUZpeC1idWlsZC13aXRoLU9wZW5TU0wt My54LXJlcGxhY2UtZGlyZWN0LUFTTjFfU1RSSU4ucGF0Y2ggYi9vcGVuc2lwcy0wMDExLUZpeC1i dWlsZC13aXRoLU9wZW5TU0wtMy54LXJlcGxhY2UtZGlyZWN0LUFTTjFfU1RSSU4ucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyY2E4N2YuLjAwMDAwMDAKLS0tIGEvb3BlbnNp cHMtMDAxMS1GaXgtYnVpbGQtd2l0aC1PcGVuU1NMLTMueC1yZXBsYWNlLWRpcmVjdC1BU04xX1NU UklOLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMjQg SnVuIDIwMjYgMjA6Mjk6NDUgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IGJ1aWxkIHdpdGgg T3BlblNTTCAzLng6IHJlcGxhY2UgZGlyZWN0IEFTTjFfU1RSSU5HIG1lbWJlcgotIGFjY2Vzcwot Ci1PcGVuU1NMIDMueCBtYWRlIEFTTjFfU1RSSU5HIChzdHJ1Y3QgYXNuMV9zdHJpbmdfc3QpIGFu IG9wYXF1ZSB0eXBlLgotUmVwbGFjZSBhbGwgZGlyZWN0IC0+ZGF0YSBhbmQgLT5sZW5ndGggbWVt YmVyIGFjY2VzcyB3aXRoIHRoZSBwdWJsaWMKLWFjY2Vzc29yIEFQSSAoQVNOMV9TVFJJTkdfZ2V0 MF9kYXRhLCBBU04xX1NUUklOR19sZW5ndGgpLCBhdmFpbGFibGUKLXNpbmNlIE9wZW5TU0wgMS4x LjAuCi0KLUZpeGVzIGJ1aWxkIG9uIEZlZG9yYSA0NSAoT3BlblNTTCAzLjUueCwgR0NDIDE2KS4K LQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLUFz c2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0dHBzOi8vY2xhdWRlLmFpPgotCi1kaWZm IC0tZ2l0IGEvbW9kdWxlcy9pZGVudGl0eS9pZGVudGl0eS5jIGIvbW9kdWxlcy9pZGVudGl0eS9p ZGVudGl0eS5jCi1pbmRleCBmNGEzNTBhNTNjLi5hMWIxN2I5ZDAzIDEwMDY0NAotLS0tIGEvbW9k dWxlcy9pZGVudGl0eS9pZGVudGl0eS5jCi0rKysgYi9tb2R1bGVzL2lkZW50aXR5L2lkZW50aXR5 LmMKLUBAIC0xNDIwLDEzICsxNDIwLDEzIEBAIHN0YXRpYyB0aW1lX3QgcGFyc2VYNTA5RGF0ZShB U04xX1NUUklORyAqIGRhdGVTdHJpbmcpCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLS0JaWYoKEFT TjFfVVRDVElNRV9jaGVjayhkYXRlU3RyaW5nKSkgJiYgKGRhdGVTdHJpbmctPmxlbmd0aCA9PSAx MykpCi0rCWlmKChBU04xX1VUQ1RJTUVfY2hlY2soZGF0ZVN0cmluZykpICYmIChBU04xX1NUUklO R19sZW5ndGgoZGF0ZVN0cmluZykgPT0gMTMpKQotIAl7Ci0gCQkvKiBVVENUSU1FIHN0cmluZywg R01UCi0gCQlZWU1NRERoaG1tc3NaCi0gCQkqLwotIAotLQkJdG1wID0gZGF0ZVN0cmluZy0+ZGF0 YTsKLSsJCXRtcCA9IChjaGFyICopQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGRhdGVTdHJpbmcpOwot IAotIAkJdG1EYXRlLnRtX3llYXIgPSAodG1wWzBdIC0gJzAnKSAqIDEwICsgKHRtcFsxXSAtICcw Jyk7Ci0gCQlpZih0bURhdGUudG1feWVhciA8IDUwKSAvL3NlZSBjaGFwLiA0LjEuMi41LjEsIHJm YyAzMjgwCi1AQCAtMTQ0NCwxMiArMTQ0NCwxMiBAQCBzdGF0aWMgdGltZV90IHBhcnNlWDUwOURh dGUoQVNOMV9TVFJJTkcgKiBkYXRlU3RyaW5nKQotIAl9Ci0gCi0gCS8qIG5lZWRlZCBmb3IgeWVh cnMgPj0gMjA1MCAqLwotLQlpZiAoKEFTTjFfR0VORVJBTElaRURUSU1FX2NoZWNrKGRhdGVTdHJp bmcpKSAmJiAoZGF0ZVN0cmluZy0+bGVuZ3RoID09IDE1KSkKLSsJaWYgKChBU04xX0dFTkVSQUxJ WkVEVElNRV9jaGVjayhkYXRlU3RyaW5nKSkgJiYgKEFTTjFfU1RSSU5HX2xlbmd0aChkYXRlU3Ry aW5nKSA9PSAxNSkpCi0gCXsKLSAJCS8qIEdFTkVSQUxJWkVEVElNRSBzdHJpbmc7IEdNVAotIAkJ WVlZWU1NRERoaG1tc3NaCi0gCQkqLwotLQkJdG1wID0gZGF0ZVN0cmluZy0+ZGF0YTsKLSsJCXRt cCA9IChjaGFyICopQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGRhdGVTdHJpbmcpOwotIAotIAkJdG1E YXRlLnRtX3llYXIgPSAodG1wWzBdIC0gJzAnKSAqIDEwMDAgKwotIAkJCSh0bXBbMV0gLSAnMCcp ICogMTAwICsgKHRtcFsyXSAtICcwJykgKiAxMCArICh0bXBbM10gLSAnMCcpIC0gMTkwMDsKLWRp ZmYgLS1naXQgYS9tb2R1bGVzL3Rsc19vcGVuc3NsL29wZW5zc2xfdGxzX3ZhcnMuYyBiL21vZHVs ZXMvdGxzX29wZW5zc2wvb3BlbnNzbF90bHNfdmFycy5jCi1pbmRleCAwYWMzOWY3NjQ4Li44NTlh ZTc1ZmU3IDEwMDY0NAotLS0tIGEvbW9kdWxlcy90bHNfb3BlbnNzbC9vcGVuc3NsX3Rsc192YXJz LmMKLSsrKyBiL21vZHVsZXMvdGxzX29wZW5zc2wvb3BlbnNzbF90bHNfdmFycy5jCi1AQCAtMzI0 LDggKzMyNCw4IEBAIGludCBvcGVuc3NsX3Rsc192YXJfYWx0KGludCBpbmQsIHZvaWQgKnNzbCwg c3RyICpyZXMpCi0gCQljYXNlIEdFTl9FTUFJTDoKLSAJCWNhc2UgR0VOX0ROUzoKLSAJCWNhc2Ug R0VOX1VSSToKLS0JCQl0ZXh0LnMgPSAoY2hhciopbm0tPmQuaWE1LT5kYXRhOwotLQkJCXRleHQu bGVuID0gbm0tPmQuaWE1LT5sZW5ndGg7Ci0rCQkJdGV4dC5zID0gKGNoYXIqKUFTTjFfU1RSSU5H X2dldDBfZGF0YShubS0+ZC5pYTUpOwotKwkJCXRleHQubGVuID0gQVNOMV9TVFJJTkdfbGVuZ3Ro KG5tLT5kLmlhNSk7Ci0gCQkJaWYgKHRleHQubGVuID49IDEwMjQpIHsKLSAJCQkJTE1fRVJSKCJh bHRlcm5hdGl2ZSBzdWJqZWN0IHRleHQgdG9vIGxvbmdcbiIpOwotIAkJCQlnb3RvIGVycjsKLUBA IC0zMzcsOSArMzM3LDkgQEAgaW50IG9wZW5zc2xfdGxzX3Zhcl9hbHQoaW50IGluZCwgdm9pZCAq c3NsLCBzdHIgKnJlcykKLSAJCQlicmVhazsKLSAKLSAJCWNhc2UgR0VOX0lQQUREOgotLQkJCWlw LmxlbiA9IG5tLT5kLmlQQWRkcmVzcy0+bGVuZ3RoOwotKwkJCWlwLmxlbiA9IEFTTjFfU1RSSU5H X2xlbmd0aChubS0+ZC5pUEFkZHJlc3MpOwotIAkJCWlwLmFmID0gKGlwLmxlbiA9PSAxNikgPyBB Rl9JTkVUNiA6IEFGX0lORVQ7Ci0tCQkJbWVtY3B5KGlwLnUuYWRkciwgbm0tPmQuaVBBZGRyZXNz LT5kYXRhLCBpcC5sZW4pOwotKwkJCW1lbWNweShpcC51LmFkZHIsIEFTTjFfU1RSSU5HX2dldDBf ZGF0YShubS0+ZC5pUEFkZHJlc3MpLCBpcC5sZW4pOwotIAkJCXRleHQucyA9IGlwX2FkZHIyYSgm aXApOwotIAkJCXRleHQubGVuID0gc3RybGVuKHRleHQucyk7Ci0gCQkJbWVtY3B5KGJ1ZiwgdGV4 dC5zLCB0ZXh0Lmxlbik7CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMuc3BlYyBiL29wZW5zaXBzLnNw ZWMKaW5kZXggMTdhMTJlYy4uMTM4ODdlNCAxMDA2NDQKLS0tIGEvb3BlbnNpcHMuc3BlYworKysg Yi9vcGVuc2lwcy5zcGVjCkBAIC0xLDEwICsxLDEwIEBACi0lZ2xvYmFsIGdpdF9jb21taXQgYWNm NDVjMDhlN2ExNjliMThmN2I1M2YwMmQ0MmMxOWMwMzVjMWM0MworJWdsb2JhbCBnaXRfY29tbWl0 IDE3NDdlNmVkMjBhNDc3YjYxYjhlOGUwNjgyMTI0MDJiMTY0NWRjODQKIAogJWdsb2JhbCBFWENM VURFX01PRFVMRVMgY2FjaGVkYl9jYXNzYW5kcmEgY2FjaGVkYl9keW5hbW9kYiAleyE/X3dpdGhf b3JhY2xlOmRiX29yYWNsZX0gZXZlbnRfc3FzIGV4YW1wbGUgbGF1bmNoX2RhcmtseSBvcGVudGVs ZW1ldHJ5IG9zcCBydHAuaW8gc25ndGMgdGxzX3dvbGZzc2wKIAogU3VtbWFyeTogIE9wZW4gU291 cmNlIFNJUCBTZXJ2ZXIKIE5hbWU6ICAgICBvcGVuc2lwcwotVmVyc2lvbjogIDQuMC4wCitWZXJz aW9uOiAgNC4wLjEKIFJlbGVhc2U6ICAlYXV0b3JlbGVhc2UKIExpY2Vuc2U6ICBHUEwtMi4wLW9y LWxhdGVyCiBTb3VyY2UwOiAgaHR0cHM6Ly9naXRodWIuY29tLyV7bmFtZX0vJXtuYW1lfS9hcmNo aXZlLyV7dmVyc2lvbn0vJXtuYW1lfS0le3ZlcnNpb259LnRhci5negpAQCAtMTQsMTMgKzE0LDEw IEBAIFBhdGNoOiBvcGVuc2lwcy0wMDAxLUNvbnNpc3RlbnRseS11c2UtcnRwcHJveHktc3dpdGNo ZXMucGF0Y2gKIFBhdGNoOiBvcGVuc2lwcy0wMDAyLUNsZWFudXAtT3JhY2xlLXMtbWFrZWZpbGVz LnBhdGNoCiBQYXRjaDogb3BlbnNpcHMtMDAwMy1kYl9vcmEtbnVsbC10ZXJtaW5hdGluZy1zdHJp bmctaXMtbW9yZS1zYWZlbHktbW9zdC1tLnBhdGNoCiBQYXRjaDogb3BlbnNpcHMtMDAwNC1SZXR1 cm4tYWN0dWFsLXBheWxvYWQtSUQtaW4tY2FzZS1vZi1hLWR5bmFtaWMtcGF5bG9hLnBhdGNoCi1Q YXRjaDogb3BlbnNpcHMtMDAwNS1GaXgtcmFiYml0bXEtYy1kZXByZWNhdGVkLWhlYWRlci13YXJu aW5ncy5wYXRjaAotUGF0Y2g6IG9wZW5zaXBzLTAwMDYtRml4LXVuaW5pdGlhbGl6ZWQtdmFyaWFi bGUtd2FybmluZ3MtaW4tU1FMLUFQSS1mdW5jdC5wYXRjaAotUGF0Y2g6IG9wZW5zaXBzLTAwMDct Rml4LWNvbnN0LWNvcnJlY3RuZXNzLXdhcm5pbmdzLWluLUhUVFAtYW5kLUZyZWVTV0lUQy5wYXRj aAotUGF0Y2g6IG9wZW5zaXBzLTAwMDgtRml4LXVuaW5pdGlhbGl6ZWQtdmFfbGlzdC13YXJuaW5n LW9uLXBwYzY0bGUtYW5kLWk2OC5wYXRjaAotUGF0Y2g6IG9wZW5zaXBzLTAwMDktRml4LXBvaW50 ZXItdHJ1bmNhdGlvbi13YXJuaW5nLW9uLTMyLWJpdC1hcmNoaXRlY3R1ci5wYXRjaAotUGF0Y2g6 IG9wZW5zaXBzLTAwMTAtRml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1pbi1zbm1w c3RhdHMtbW9kdS5wYXRjaAotUGF0Y2g6IG9wZW5zaXBzLTAwMTEtRml4LWJ1aWxkLXdpdGgtT3Bl blNTTC0zLngtcmVwbGFjZS1kaXJlY3QtQVNOMV9TVFJJTi5wYXRjaAorUGF0Y2g6IG9wZW5zaXBz LTAwMDUtRml4LXVuaW5pdGlhbGl6ZWQtdmFyaWFibGUtd2FybmluZ3MtaW4tU1FMLUFQSS1mdW5j dC5wYXRjaAorUGF0Y2g6IG9wZW5zaXBzLTAwMDYtRml4LXVuaW5pdGlhbGl6ZWQtdmFfbGlzdC13 YXJuaW5nLW9uLXBwYzY0bGUtYW5kLWk2OC5wYXRjaAorUGF0Y2g6IG9wZW5zaXBzLTAwMDctRml4 LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1pbi1zbm1wc3RhdHMtbW9kdS5wYXRjaAor UGF0Y2g6IG9wZW5zaXBzLTAwMDgtRml4LWJ1aWxkLXdpdGgtT3BlblNTTC0zLngtcmVwbGFjZS1k aXJlY3QtQVNOMV9TVFJJTi5wYXRjaAogCiBVUkw6ICAgICAgaHR0cHM6Ly9vcGVuc2lwcy5vcmcK IAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGQ5MzMwNmIuLjI4M2MzYjEg MTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotU0hBNTEyIChv cGVuc2lwcy00LjAuMC50YXIuZ3opID0gNzhjYzU5OWRhZTE1OTI2ZWVhYzBlZDUwNzI3ZTQyYjMz NmRjYzNiNDMxNzY5YTViMGQ1MmVjOWRlNzEyNTAwODRlY2EwODkzZWNmYWQ1MTVhY2MwZWI4MjE0 OTY0M2I2NDEwY2ExZjk0NzAyMjU3NDQ5ZGYyZDlkNTcxMzIyOTAKK1NIQTUxMiAob3BlbnNpcHMt NC4wLjEudGFyLmd6KSA9IDViM2MzNDE2YTgxYmE0ZWVjNTEwZmRiODIzNzcwMWVkZjlkY2RhY2E3 NTY3ZGVhYzllMGM4ZTdmOWQ3MjE3NzM3NjhlZWQ1OGMwNTJkZWZkMDY3MWUxYzEwNGJhOGUyYzRi YzEwY2RkNDViNjdhYjVlYmZlYjVkYTVkYmNjMWYyCg==