From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 20523 invoked from network); 25 Jul 2022 03:02:10 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 Jul 2022 03:02:10 -0000 Content-Type: multipart/mixed; boundary="===============6055712589125643092==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_occt=3A_update_to_7=2E6=2E2?= To: ml@inbox.vuxu.org From: karl-nilsson Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 25 Jul 2022 05:02:10 +0200 List-Id: Message-ID: <20220725030210._I3aj0YkAFcHUiQ3LpDcDSawx2pczqAFC5SMlLBiYNQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============6055712589125643092== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkga2FybC1uaWxzc29uIGFnYWluc3Qg bWFzdGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNv bS9rYXJsLW5pbHNzb24vdm9pZC1wYWNrYWdlcyBvY2N0XzcuNgpodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYzNTYKCltXSVBdIG9jY3Q6IHVwZGF0ZSB0 byA3LjYuMgoNCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFu Z2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCg0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5n DQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCB4 NjQtZ2xpYmMNCg0KDQpMaWtlIHByZXZpb3VzbHksIGJyb2tlbiBBQkkNCmBgYGNvbnNvbGUNCkR1 cmluZyBpbml0aWFsaXphdGlvbiB0aGUgZXJyb3IgIi91c3IvbGliL2ZyZWVjYWQvbGliNjQvUGFy dC5zbzogdW5kZWZpbmVkIHN5bWJvbDogX1pOMjRCUmVwQnVpbGRlckFQSV9NYWtlU2hhcGU1QnVp bGRFdiIgb2NjdXJyZWQgaW4gL2hvbWUvbmlsc3Nvbi8uRnJlZUNBRC9Nb2QvQTJwbHVzL0luaXRH dWkucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICANClBsZWFzZSBsb29rIGludG8gdGhlIGxvZyBmaWxlIGZvciBmdXJ0aGVyIGlu Zm9ybWF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpXaXphcmQg c2hhZnQgbW9kdWxlIGNhbm5vdCBiZSBsb2FkZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KL3Vzci9saWIvZnJlZWNhZC9saWI2NC9QYXJ0 LnNvOiB1bmRlZmluZWQgc3ltYm9sOiBfWk4yNEJSZXBCdWlsZGVyQVBJX01ha2VTaGFwZTVCdWls ZEV2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICANCmNvbm5lY3QgZmFpbGVkOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5ICAgICAg DQpgYGANCg0KTG9va3MgbGlrZSB3ZSdsbCBoYXZlIHRvIHVwZGF0ZSBvciBwYXRjaCBmcmVlY2Fk DQpgYGBjb25zb2xlDQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL3Vzci9pbmNsdWRlL29wZW5jYXNj YWRlL0V4dHJlbWFfUE9uU3VyZi5seHg6MTUsDQogICAgICAgICAgICAgICAgIGZyb20gL3Vzci9p bmNsdWRlL29wZW5jYXNjYWRlL0V4dHJlbWFfUE9uU3VyZi5oeHg6NzUsDQogICAgICAgICAgICAg ICAgIGZyb20gL3Vzci9pbmNsdWRlL29wZW5jYXNjYWRlL0V4dHJlbWFfRXh0UEVsUy5oeHg6Mjcs DQogICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL29wZW5jYXNjYWRlL0V4dHJlbWFf RXh0UFMuaHh4OjI0LA0KICAgICAgICAgICAgICAgICBmcm9tIC91c3IvaW5jbHVkZS9vcGVuY2Fz Y2FkZS9TaGFwZUFuYWx5c2lzX1N1cmZhY2UuaHh4OjIwLA0KICAgICAgICAgICAgICAgICBmcm9t IC4uL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01FU0hfTWVzaGVySGVscGVyLmh4eDoz NywNCiAgICAgICAgICAgICAgICAgZnJvbSAuLi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3Jj L1NNRVNIL1NNRVNIX01lc2guY3BwOjM0Og0KL3Vzci9pbmNsdWRlL29wZW5jYXNjYWRlL1ByZWNp c2lvbi5oeHg6OTg6Nzogbm90ZTogcHJldmlvdXMgZGVmaW5pdGlvbiBvZiAnY2xhc3MgUHJlY2lz aW9uJw0KICAgOTggfCBjbGFzcyBQcmVjaXNpb24NCiAgICAgIHwgICAgICAgXn5+fn5+fn5+DQoN CmBgYA0KDQpwaW5nIEBQaXJhdHkgCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzYzNTYucGF0Y2ggaXMgYXR0YWNoZWQ= --===============6055712589125643092== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-occt_7.6-36356.patch" RnJvbSA3ZjFjN2I3NTI0NDJhYmMzMTYxYTVlN2Y0NDgwODAwNTZmOTYxMDM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLYXJsIE5pbHNzb24gPGthcmwucm9iZXJ0Lm5pbHNzb25AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDIwOjI0OjQ5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCAxLzNdIHB5dGhvbjMtb2NjOiByZW1vdmUgcGFja2FnZQoKKiB1cHN0cmVhbSBpcyB3ZWxs IGJlaGluZCBvY2N0Ci0tLQogc3JjcGtncy9weXRob24zLW9jYy9wYXRjaGVzL3B5dGhvbjMuMTAu cGF0Y2ggfCAxNSAtLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvcHl0aG9uMy1vY2MvdGVtcGxhdGUg ICAgICAgICAgICAgICAgIHwgMTcgLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvcmVtb3ZlZC1w YWNrYWdlcy90ZW1wbGF0ZSAgICAgICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMzIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9w eXRob24zLW9jYy9wYXRjaGVzL3B5dGhvbjMuMTAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3B5dGhvbjMtb2NjL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24z LW9jYy9wYXRjaGVzL3B5dGhvbjMuMTAucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbjMtb2NjL3BhdGNo ZXMvcHl0aG9uMy4xMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE5MjYw OGZkM2IzLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9weXRob24zLW9jYy9wYXRjaGVzL3B5 dGhvbjMuMTAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1kaWZmIC0tZ2l0 IGEvc3JjL0Rpc3BsYXkvU2ltcGxlR3VpLnB5IGIvc3JjL0Rpc3BsYXkvU2ltcGxlR3VpLnB5Ci1p bmRleCA0MjcwNWE4Mi4uNmEyNzRjMTYgMTAwNjQ0Ci0tLS0gYS9zcmMvRGlzcGxheS9TaW1wbGVH dWkucHkKLSsrKyBiL3NyYy9EaXNwbGF5L1NpbXBsZUd1aS5weQotQEAgLTE2MSw4ICsxNjEsOCBA QCBkZWYgaW5pdF9kaXNwbGF5KGJhY2tlbmRfc3RyOiBPcHRpb25hbFtzdHJdPU5vbmUsCi0gICAg ICAgICAgICAgZGVmIGNlbnRlck9uU2NyZWVuKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICAgICAg ICAgICcnJ0NlbnRlcnMgdGhlIHdpbmRvdyBvbiB0aGUgc2NyZWVuLicnJwotICAgICAgICAgICAg ICAgICByZXNvbHV0aW9uID0gUXRXaWRnZXRzLlFBcHBsaWNhdGlvbi5kZXNrdG9wKCkuc2NyZWVu R2VvbWV0cnkoKQotLSAgICAgICAgICAgICAgICB4ID0gKHJlc29sdXRpb24ud2lkdGgoKSAtIHNl bGYuZnJhbWVTaXplKCkud2lkdGgoKSkgLyAyCi0tICAgICAgICAgICAgICAgIHkgPSAocmVzb2x1 dGlvbi5oZWlnaHQoKSAtIHNlbGYuZnJhbWVTaXplKCkuaGVpZ2h0KCkpIC8gMgotKyAgICAgICAg ICAgICAgICB4ID0gKHJlc29sdXRpb24ud2lkdGgoKSAtIHNlbGYuZnJhbWVTaXplKCkud2lkdGgo KSkgLy8gMgotKyAgICAgICAgICAgICAgICB5ID0gKHJlc29sdXRpb24uaGVpZ2h0KCkgLSBzZWxm LmZyYW1lU2l6ZSgpLmhlaWdodCgpKSAvLyAyCi0gICAgICAgICAgICAgICAgIHNlbGYubW92ZSh4 LCB5KQotIAotICAgICAgICAgICAgIGRlZiBhZGRfbWVudShzZWxmLCBtZW51X25hbWU6IHN0cikg LT4gTm9uZToKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1vY2MvdGVtcGxhdGUgYi9zcmNw a2dzL3B5dGhvbjMtb2NjL3RlbXBsYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi ZWUwMzM3M2EzZDEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3B5dGhvbjMtb2NjL3RlbXBs YXRlCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotIyBUZW1wbGF0ZSBmaWxlIGZvciAn cHl0aG9uMy1vY2MnCi1wa2duYW1lPXB5dGhvbjMtb2NjCi12ZXJzaW9uPTcuNC4xCi1yZXZpc2lv bj0zCi1hcmNocz0iaTY4NiogeDg2XzY0KiBhcm12N2wqIGFhcmNoNjQqIHBwYyoiCi13cmtzcmM9 InB5dGhvbm9jYy1jb3JlLSR7dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJl X2FyZ3M9Ii1EUFlUSE9OT0NDX0JVSUxEX1RZUEU9Tm9uZSAtRENNQUtFX0JVSUxEX1RZUEU9Tm9u ZSIKLWhvc3RtYWtlZGVwZW5kcz0icHl0aG9uMyBzd2lnIgotbWFrZWRlcGVuZHM9InB5dGhvbjMt ZGV2ZWwgb2NjdC1kZXZlbCBmcmVldHlwZS1kZXZlbCBzd2lnIgotZGVwZW5kcz0icHl0aG9uMyBv Y2N0IGZyZWV0eXBlIgotc2hvcnRfZGVzYz0iSW5kdXN0cmlhbCBzdHJlbmd0aCAzRCBDQUQgUHl0 aG9uMyBwYWNrYWdlIgotbWFpbnRhaW5lcj0iS2FybCBOaWxzc29uIDxrYXJsLnJvYmVydC5uaWxz c29uQGdtYWlsLmNvbT4iCi1saWNlbnNlPSJMR1BMLTMuMC1vci1sYXRlciIKLWhvbWVwYWdlPSJo dHRwOi8vcHl0aG9ub2NjLm9yZyIKLWRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL3RwYXZp b3QvcHl0aG9ub2NjLWNvcmUvYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTZk NjIwMDIyNDRhMGU3ZjRlNWMxYWQ1OTBkMzMyYTYwNjAxYzQ0YjI1MDFhZDAxNzM2MTQ0M2I1NDM3 MWU2NjcKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQppbmRleCA4NDU2Y2I5NTlkMzUuLjQ4OGU2 MmVjMTA1YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQpAQCAtMzQzLDYgKzM0Myw3IEBA IHJlcGxhY2VzPSIKICBweXRob24zLWtlZXBhbGl2ZTw9MC41XzYKICBweXRob24zLXBncGR1bXA8 PTEuNV8xMAogIHB5dGhvbjMtbG9ja2ZpbGU8PTAuMTIuMl83CisgcHl0aG9uMy1vY2M8PTcuNC4x XzMKICBweXRob24zLXB5UEVHMjw9Mi4xNS4yXzcKICBweXRob24zLXB5ZW5ldDw9NS4xNS4wXzIK ICBweXRob24zLXB5c2lkZS1waG9ub248PTUuMTUuMF8yCgpGcm9tIDlkYWI3NGRjNmI1YWNlYzA2 NTQ1Mzk2ZTNjYmRkM2M1ZTJmOWU5ZmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEth cmwgTmlsc3NvbiA8a2FybC5yb2JlcnQubmlsc3NvbkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjUg TWFyIDIwMjIgMTk6Mjk6MDAgLTA0MDAKU3ViamVjdDogW1BBVENIIDIvM10gb2NjdDogdXBkYXRl IHRvIDcuNi4yLgoKLS0tCiAuLi4vb2NjdC9wYXRjaGVzL2NtYWtlLWJ1aWxkLXR5cGUtbm9uZS5w YXRjaCAgfCAgNiArLS0KIHNyY3BrZ3Mvb2NjdC9wYXRjaGVzL211c2wtZmVudi5wYXRjaCAgICAg ICAgICB8IDE4ICsrKystLS0tCiBzcmNwa2dzL29jY3QvcGF0Y2hlcy9tdXNsLW1hbGxpbmZvLnBh dGNoICAgICAgfCA0NSArKysrKysrKysrKysrKy0tLS0tCiBzcmNwa2dzL29jY3QvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICAgICAgfCAyNyArKysrKy0tLS0tLQogc3JjcGtncy9vY2N0L3Vw ZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgLQogNSBmaWxlcyBjaGFuZ2VkLCA2 MCBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL29jY3QvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vY2N0L3BhdGNoZXMvY21ha2Ut YnVpbGQtdHlwZS1ub25lLnBhdGNoIGIvc3JjcGtncy9vY2N0L3BhdGNoZXMvY21ha2UtYnVpbGQt dHlwZS1ub25lLnBhdGNoCmluZGV4IGVjYjBlM2RhMzkyOS4uZDJjYWVjOGM0ZTg3IDEwMDY0NAot LS0gYS9zcmNwa2dzL29jY3QvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gKKysr IGIvc3JjcGtncy9vY2N0L3BhdGNoZXMvY21ha2UtYnVpbGQtdHlwZS1ub25lLnBhdGNoCkBAIC0x LDggKzEsOCBAQAotSW5kZXg6IENNYWtlTGlzdHMudHh0Ci09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitkaWZmIC0tZ2l0 IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggZjRlYzg3MWY1Li45YjA2 NDRlOTQgMTAwNjQ0CiAtLS0gYS9DTWFrZUxpc3RzLnR4dAogKysrIGIvQ01ha2VMaXN0cy50eHQK LUBAIC00LDcgKzQsNyBAQCBzZXQgKENNQUtFX01PRFVMRV9QQVRIICIke0NNQUtFX1NPVVJDRV9E CitAQCAtNCw3ICs0LDcgQEAgc2V0IChDTUFLRV9NT0RVTEVfUEFUSCAiJHtDTUFLRV9TT1VSQ0Vf RElSfS9hZG0vY21ha2UiKQogIAogIHNldCAoQ01BS0VfU1VQUFJFU1NfUkVHRU5FUkFUSU9OIFRS VUUpCiAgCmRpZmYgLS1naXQgYS9zcmNwa2dzL29jY3QvcGF0Y2hlcy9tdXNsLWZlbnYucGF0Y2gg Yi9zcmNwa2dzL29jY3QvcGF0Y2hlcy9tdXNsLWZlbnYucGF0Y2gKaW5kZXggMDlkYThkMGFmZWFl Li4wNmE4ZTNhODljZmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb2NjdC9wYXRjaGVzL211c2wtZmVu di5wYXRjaAorKysgYi9zcmNwa2dzL29jY3QvcGF0Y2hlcy9tdXNsLWZlbnYucGF0Y2gKQEAgLTUs MTggKzUsMjAgQEAgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBJIGRvbid0IGhhdmUgYSByZXBsYWNl bWVudCBmb3IgdGhlCiBub24tcG9zaXggZnVuY3Rpb25zIGZlZ2V0ZXhjZXB0KDMpIGFuZCBmZWVu YWJsZWV4Y2VwdCgzKS4KICIiIgogCitkaWZmIC0tZ2l0IGEvc3JjL09TRC9PU0Rfc2lnbmFsLmN4 eCBiL3NyYy9PU0QvT1NEX3NpZ25hbC5jeHgKK2luZGV4IDAwN2Y1Y2NhYS4uZmUzOWUwN2FjIDEw MDY0NAogLS0tIGEvc3JjL09TRC9PU0Rfc2lnbmFsLmN4eAogKysrIGIvc3JjL09TRC9PU0Rfc2ln bmFsLmN4eAotQEAgLTcwMyw3ICs3MDMsNyBAQAotIAorQEAgLTc2MSw3ICs3NjEsNyBAQCB0eXBl ZGVmIHZvaWQgKCogU0lHX1BGVikgKGludCk7CisKICAjaW5jbHVkZSA8c2lnbmFsLmg+Ci0gCi0t I2lmICFkZWZpbmVkKF9fQU5EUk9JRF9fKSAmJiAhZGVmaW5lZChfX1FOWF9fKQotKyNpZiAhZGVm aW5lZChfX0FORFJPSURfXykgJiYgIWRlZmluZWQoX19RTlhfXykgJiYgZGVmaW5lZChfX0dMSUJD X18pCisKKy0jaWYgIWRlZmluZWQoX19BTkRST0lEX18pICYmICFkZWZpbmVkKF9fUU5YX18pICYm ICFkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQorKyNpZiAhZGVmaW5lZChfX0FORFJPSURfXykgJiYg IWRlZmluZWQoX19RTlhfXykgJiYgIWRlZmluZWQoX19FTVNDUklQVEVOX18pICYmIGRlZmluZWQo X19HTElCQ19fKQogICAgI2luY2x1ZGUgPHN5cy9zaWduYWwuaD4KICAjZW5kaWYKLSAKLUBAIC05 MTQsNyArOTE0LDcgQEAKKworQEAgLTk3Nyw3ICs5NzcsNyBAQCBzdGF0aWMgdm9pZCBTZWd2SGFu ZGxlcihjb25zdCBpbnQgdGhlU2lnbmFsLAogIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICB2b2lkIE9TRDo6 U2V0RmxvYXRpbmdTaWduYWwgKFN0YW5kYXJkX0Jvb2xlYW4gdGhlRmxvYXRpbmdTaWduYWwpCiAg ewpAQCAtMjUsNyArMjcsNyBAQCBub24tcG9zaXggZnVuY3Rpb25zIGZlZ2V0ZXhjZXB0KDMpIGFu ZCBmZWVuYWJsZWV4Y2VwdCgzKS4KICAgIGZlY2xlYXJleGNlcHQgKEZFX0FMTF9FWENFUFQpOwog ICAgaWYgKHRoZUZsb2F0aW5nU2lnbmFsKQogICAgewotQEAgLTk0Nyw3ICs5NDcsNyBAQAorQEAg LTEwMTAsNyArMTAxMCw3IEBAIHZvaWQgT1NEOjpTZXRGbG9hdGluZ1NpZ25hbCAoU3RhbmRhcmRf Qm9vbGVhbiB0aGVGbG9hdGluZ1NpZ25hbCkKICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgU3RhbmRhcmRf Qm9vbGVhbiBPU0Q6OlRvQ2F0Y2hGbG9hdGluZ1NpZ25hbHMoKQogIHsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvb2NjdC9wYXRjaGVzL211c2wtbWFsbGluZm8ucGF0Y2ggYi9zcmNwa2dzL29jY3QvcGF0 Y2hlcy9tdXNsLW1hbGxpbmZvLnBhdGNoCmluZGV4IDRlNTgyNWJmMWNiMC4uNmFlOTQ5OTJlYWY4 IDEwMDY0NAotLS0gYS9zcmNwa2dzL29jY3QvcGF0Y2hlcy9tdXNsLW1hbGxpbmZvLnBhdGNoCisr KyBiL3NyY3BrZ3Mvb2NjdC9wYXRjaGVzL211c2wtbWFsbGluZm8ucGF0Y2gKQEAgLTEsMTcgKzEs MzggQEAKLUluIG11c2wgbGliYyB0aGVyZSBpcyBubyBzdHJ1Y3QgbWFsbGluZm8gYW5kIG5vIGZ1 bmN0aW9uIG1hbGxpbmYoKQorQWRhcHRlZCBmcm9tIGFscGluZSdzIHBhdGNoCiAKK2RpZmYgLS1n aXQgYS9zcmMvT1NEL09TRF9NZW1JbmZvLmN4eCBiL3NyYy9PU0QvT1NEX01lbUluZm8uY3h4Citp bmRleCBkOWJiOTEzOTguLmQ2MDhlMDRmYyAxMDA2NDQKIC0tLSBhL3NyYy9PU0QvT1NEX01lbUlu Zm8uY3h4CiArKysgYi9zcmMvT1NEL09TRF9NZW1JbmZvLmN4eAotQEAgLTE0Nyw4ICsxNDcsMTIg QEAKLSAgIH0KLSAgIGFGaWxlLmNsb3NlKCk7CitAQCAtMzUsNiArMzUsOSBAQAorICNpbmNsdWRl IDxzc3RyZWFtPgorICNpbmNsdWRlIDxmc3RyZWFtPgorIAorKyNpbmNsdWRlIDxzeXMvdGltZS5o PgorKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKysKKyAjaW5jbHVkZSA8T1NEX01lbUluZm8u aHh4PgogIAotKyAgI2lmIGRlZmluZWQoX19HTElCQ19fKQotICAgc3RydWN0IG1hbGxpbmZvIGFN SSA9IG1hbGxpbmZvKCk7Ci0gICBteUNvdW50ZXJzW01lbUhlYXBVc2FnZV0gPSBhTUkudW9yZGJs a3M7Ci0rICAjZWxzZSAvKiBYWFggbm90IHlldCBjb2RlZCAqLwotKyAgbXlDb3VudGVyc1tNZW1I ZWFwVXNhZ2VdID0gMDsKLSsgICNlbmRpZgorICNpZiBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQor QEAgLTE4MiwxOCArMTg1LDkgQEAgdm9pZCBPU0RfTWVtSW5mbzo6VXBkYXRlKCkKKyAjZWxpZiAo ZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19saW51eCkpCisgICBpZiAoSXNBY3RpdmUg KE1lbUhlYXBVc2FnZSkpCisgICB7CistICAjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmlu ZWQoX19HTElCQ19QUkVSRVEpCistICAgICNpZiBfX0dMSUJDX1BSRVJFUSgyLDMzKQorLSAgICAg ICNkZWZpbmUgSEFTX01BTExJTkZPMgorLSAgICAjZW5kaWYKKy0gICNlbmRpZgorLQorLSAgI2lm ZGVmIEhBU19NQUxMSU5GTzIKKy0gICAgY29uc3Qgc3RydWN0IG1hbGxpbmZvMiBhTUkgPSBtYWxs aW5mbzIoKTsKKy0gICNlbHNlCistICAgIGNvbnN0IHN0cnVjdCBtYWxsaW5mbyBhTUkgPSBtYWxs aW5mbygpOworLSAgI2VuZGlmCistICAgIG15Q291bnRlcnNbTWVtSGVhcFVzYWdlXSA9IGFNSS51 b3JkYmxrczsKKysgICAgc3RydWN0IHJ1c2FnZSBydSA9IHsgLnJ1X21heHJzcyA9IDAgfTsKKysg ICAgZ2V0cnVzYWdlKFJVU0FHRV9TRUxGLCAmcnUpOworKyAgICBteUNvdW50ZXJzW01lbUhlYXBV c2FnZV0gPSBydS5ydV9tYXhyc3M7CisgICB9CiAgCi0gI2VsaWYgKGRlZmluZWQoX19BUFBMRV9f KSkKLSAgIHN0cnVjdCB0YXNrX2Jhc2ljX2luZm8gYVRhc2tJbmZvOworICAgaWYgKCFJc0FjdGl2 ZSAoTWVtVmlydHVhbCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZSBiL3NyY3Br Z3Mvb2NjdC90ZW1wbGF0ZQppbmRleCA2NjI0ZmVhOGI1M2YuLmIxN2M5MWIwMDU4YiAxMDA2NDQK LS0tIGEvc3JjcGtncy9vY2N0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb2NjdC90ZW1wbGF0ZQpA QCAtMSwyNiArMSwyNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb2NjdCcKIHBrZ25hbWU9b2Nj dAotcmV2ZXJ0cz03LjUuMF8xCi12ZXJzaW9uPTcuNC4wcDEKLXJldmlzaW9uPTUKLV9naXR0YWc9 IlYke3ZlcnNpb24vLy4vX30iCi13cmtzcmM9b2NjdC0ke19naXR0YWd9Cit2ZXJzaW9uPTcuNi4y CityZXZpc2lvbj0xCitfdmVyPSIke3ZlcnNpb24vLy4vX30iCit3cmtzcmM9T0NDVC0ke192ZXJ9 CiBidWlsZF9zdHlsZT1jbWFrZQotIyBYWFg6IHJlLWVuYWJsZSAtRFVTRV9UQkI9T04gaWYgcG9z c2libGUgd2hlbiB1cGRhdGluZwotY29uZmlndXJlX2FyZ3M9Ii1EVVNFX0ZSRUVJTUFHRT1PTiAt RFVTRV9HTDJQUz1PTiAtRFVTRV9WVEs9T0ZGCitjb25maWd1cmVfYXJncz0iLURVU0VfRlJFRUlN QUdFPU9OIC1EVVNFX1RCQj1PTiAtRFVTRV9HTDJQUz1PTiAtRFVTRV9WVEs9T0ZGCiAgLURJTlNU QUxMX1NBTVBMRVM9T04iCi1tYWtlZGVwZW5kcz0iZnJlZXR5cGUtZGV2ZWwgZ2x1LWRldmVsIGZy ZWVpbWFnZS1kZXZlbCBnbDJwcy1kZXZlbCB0Y2wtZGV2ZWwKLSB0ay1kZXZlbCIKK21ha2VkZXBl bmRzPSJmcmVldHlwZS1kZXZlbCBnbHUtZGV2ZWwgZnJlZWltYWdlLWRldmVsIGdsMnBzLWRldmVs IHRiYi1kZXZlbAorIHRjbC1kZXZlbCB0ay1kZXZlbCIKIHNob3J0X2Rlc2M9Ik9wZW5DQVNDQURF IFRlY2hub2xvZ3kgLSBsaWJyYXJ5IGZvciBDQUQvQ0FNL0NBRSBhcHBsaWNhdGlvbnMiCiBtYWlu dGFpbmVyPSJQaXJhdHkgPHBpcmF0eTFAaW5ib3gucnU+IgogbGljZW5zZT0iY3VzdG9tOkxHUEwt Mi4xLW9ubHktd2l0aC1leGNlcHRpb25zIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lm9wZW5jYXNj YWRlLmNvbSIKLSMgZGlzdGZpbGU6IHVzZSBnaXQgaW5zdGVhZCBvZiBvZmZpY2lhbCB0YXJiYWxs LCB3aGljaCByZXF1aXJlcyByZWdpc3RyYXRpb24KLSMgc2VlIGh0dHBzOi8vd3d3Lm9wZW5jYXNj YWRlLmNvbS9jb250ZW50L3BhY2thZ2luZy1hZ2Fpbi1kZWJpYW4KLWRpc3RmaWxlcz0iaHR0cHM6 Ly9naXQuZGV2Lm9wZW5jYXNjYWRlLm9yZy9naXR3ZWIvP3A9b2NjdC5naXQ7YT1zbmFwc2hvdDto PXJlZnMvdGFncy8ke19naXR0YWd9O3NmPXRnej5vY2N0LSR7X2dpdHRhZ30udGFyLmd6IgotY2hl Y2tzdW09ZTAwZmVkYzIyMTU2MGZkYTMxNjUzYzIzYThmM2QwZWRhNzgwOTVjODc1MTlmMzM4ZDRm NDA4OGUyZWU5YTljMAorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vT3Blbi1DYXNjYWRl LVNBUy9PQ0NUL2FyY2hpdmUvViR7X3Zlcn0udGFyLmd6IgorY2hlY2tzdW09ZGVhMDQwNzdkNzE1 MDdjNjY2YWFhN2NjYWVhY2M3M2FiNTgwZDY1NzJkN2Y3NWU5MGExOTg0YzRjMDMwMmE3YQogY29u ZmxpY3RzPSJvY2U+PTAiCiAKK2lmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9IG11c2wgXTsgdGhl bgorCW1ha2VkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgorCUxERkxBR1M9Ii1sZXhlY2lu Zm8iCitmaQorCiBwb3N0X2luc3RhbGwoKSB7CiAJcm0gJHtQS0dERVNURElSfS91c3Ivc2hhcmUv ZG9jL29wZW5jYXNjYWRlLypfTEdQTF8qLnR4dAogCXZsaWNlbnNlIE9DQ1RfTEdQTF9FWENFUFRJ T04udHh0CmRpZmYgLS1naXQgYS9zcmNwa2dzL29jY3QvdXBkYXRlIGIvc3JjcGtncy9vY2N0L3Vw ZGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzEyOGVlYzZkOWM5Li4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9vY2N0L3VwZGF0ZQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs MCBAQAotc2l0ZT0iaHR0cHM6Ly9naXQuZGV2Lm9wZW5jYXNjYWRlLm9yZy9naXR3ZWIvP3A9b2Nj dC5naXQ7YT10YWdzIgotcGF0dGVybj0iPlZcS1tcZF9wXSsoPz08L2E+KSIKCkZyb20gMzcwMDdl MDM3NzdkZGQxMzQyNjVjYTU0ODQxYWVjMDlkMzQyMDRiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogS2FybCBOaWxzc29uIDxrYXJsLnJvYmVydC5uaWxzc29uQGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyNiBNYXIgMjAyMiAxMToyNToxMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBm cmVlY2FkOiB1cGRhdGUgdG8gMC4yMC4wLgoKLS0tCiBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8w MDItZXhlY2luZm8ucGF0Y2ggICAgfCAgMzAgLQogLi4uL3BhdGNoZXMvMDEwLXNhbG9tZXNtZXNo LWV4ZWNpbmZvLnBhdGNoICAgIHwgIDU5ICstCiBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAt dnRrOS5wYXRjaCAgICAgICAgfCA3OTYgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2ZyZWVj YWQvcGF0Y2hlcy8xNTItY21ha2UtdnRrOS5wYXRjaCAgfCAgNTMgLS0KIHNyY3BrZ3MvZnJlZWNh ZC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogNSBmaWxlcyBjaGFuZ2Vk LCAzMyBpbnNlcnRpb25zKCspLCA5MDkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDAyLWV4ZWNpbmZvLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUwLXZ0azkucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTItY21ha2UtdnRrOS5wYXRjaAoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMi1leGVjaW5mby5wYXRjaCBiL3Ny Y3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMi1leGVjaW5mby5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggYmNkY2E3N2E3MmE0Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9m cmVlY2FkL3BhdGNoZXMvMDAyLWV4ZWNpbmZvLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAg KzAsMCBAQAotLS0tIGEvc3JjL0FwcC9BcHBsaWNhdGlvbi5jcHAJMjAyMC0wMS0yMiAyMzoyNzo0 Mi43MDkyNzMwODcgKzAxMDAKLSsrKyBiL3NyYy9BcHAvQXBwbGljYXRpb24uY3BwCTIwMjAtMDEt MjIgMjM6NTA6NTMuOTE1MDc1OTU1ICswMTAwCi1AQCAtMTQ4NSw3ICsxNDg1LDkgQEAKLSAjZW5k aWYNCi0gDQotICNpZiBkZWZpbmVkKEZDX09TX0xJTlVYKQ0KLSsjaWZkZWYgX19HTElCQ19fDQot ICNpbmNsdWRlIDxleGVjaW5mby5oPg0KLSsjZW5kaWYNCi0gI2luY2x1ZGUgPGRsZmNuLmg+DQot ICNpbmNsdWRlIDxjeHhhYmkuaD4NCi0gDQotQEAgLTE0OTcsNiArMTQ5OSw3IEBACi0gLy8gVGhp cyBmdW5jdGlvbiBwcm9kdWNlcyBhIHN0YWNrIGJhY2t0cmFjZSB3aXRoIGRlbWFuZ2xlZCBmdW5j dGlvbiAmIG1ldGhvZCBuYW1lcy4NCi0gdm9pZCBwcmludEJhY2t0cmFjZShzaXplX3Qgc2tpcD0w KQ0KLSB7DQotKyNpZmRlZiBfX0dMSUJDX18NCi0gICAgIHZvaWQgKmNhbGxzdGFja1sxMjhdOw0K LSAgICAgc2l6ZV90IG5NYXhGcmFtZXMgPSBzaXplb2YoY2FsbHN0YWNrKSAvIHNpemVvZihjYWxs c3RhY2tbMF0pOw0KLSAgICAgc2l6ZV90IG5GcmFtZXMgPSBiYWNrdHJhY2UoY2FsbHN0YWNrLCBu TWF4RnJhbWVzKTsNCi1AQCAtMTUyNyw2ICsxNTMwLDkgQEAKLSAgICAgfQ0KLSANCi0gICAgIGZy ZWUoc3ltYm9scyk7DQotKyNlbHNlDQotKyAgICBzdGQ6OmNlcnIgPDwgInNvcnJ5LCBubyBiYWNr dHJhY2Ugb24gbXVzbCBsaWJjIjsNCi0rI2VuZGlmDQotIH0NCi0gI2VuZGlmDQotIA0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5mby5w YXRjaCBiL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5mby5w YXRjaAppbmRleCBjYzZiZGM5ZmY0ODUuLmZjOGE3ZWYxMWRhZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9mcmVlY2FkL3BhdGNoZXMvMDEwLXNhbG9tZXNtZXNoLWV4ZWNpbmZvLnBhdGNoCisrKyBiL3Ny Y3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5mby5wYXRjaApAQCAt MSwzMCArMSwzMyBAQAorZGlmZiAtLWdpdCBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMv RHJpdmVyU1RML0Jhc2ljc19VdGlscy5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3Jj L0RyaXZlclNUTC9CYXNpY3NfVXRpbHMuY3BwCitpbmRleCAyM2M1MDgzZmRmLi40NTQ3ZDcxNGQ0 IDEwMDY0NAogLS0tIGEvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9Ecml2ZXJTVEwvQmFz aWNzX1V0aWxzLmNwcAogKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9Ecml2ZXJT VEwvQmFzaWNzX1V0aWxzLmNwcAotQEAgLTI5LDcgKzI5LDkgQEAKLSAjaWZuZGVmIFdJTjMyCi0g I2luY2x1ZGUgPHVuaXN0ZC5oPgotICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKyNpZmRlZiBfX0dM SUJDX18KLSAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KLSsjZW5kaWYKLSAjZW5kaWYKLSAKLSAKLUBA IC0xMDksNiArMTExLDcgQEAKLSAjaWZuZGVmIFdJTjMyCi0gICB2b2lkIHByaW50X3RyYWNlYmFj aygpCi0gICB7Ci0rI2lmZGVmIF9fR0xJQkNfXwotICAgICB2b2lkICphcnJheVs1MF07Ci0gICAg IHNpemVfdCBzaXplOwotICAgICBjaGFyICoqc3RyaW5nczsKLUBAIC0xMjMsNiArMTI2LDkgQEAK LSAgICAgICB9Ci0gCi0gICAgIGZyZWUgKHN0cmluZ3MpOwotKyNlbHNlICAgICAKLSsgICBzdGQ6 OmNlcnIgPDwgInNvcnJ5LCBubyBiYWNrdHJhY2Ugb24gbXVzbCBsaWJjIjsKLSsjZW5kaWYKLSAg IH0KLSAjZWxzZQotICAgI2lmIChfTVNDX1ZFUiA+PSAxNDAwKSAvLyBWaXN1YWwgU3R1ZGlvIDIw MDUKK0BAIC0yOSw4ICsyOSwxMCBAQAorICNpZm5kZWYgV0lOMzINCisgI2luY2x1ZGUgPHVuaXN0 ZC5oPg0KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4NCisrI2lmZGVmIF9fR0xJQkNfXw0KKyAjaW5j bHVkZSA8ZXhlY2luZm8uaD4NCisgI2VuZGlmDQorKyNlbmRpZg0KKyANCisgDQorIG5hbWVzcGFj ZSBLZXJuZWxfVXRpbHMNCitAQCAtMTA5LDYgKzExMSw3IEBAIG5hbWVzcGFjZSBLZXJuZWxfVXRp bHMKKyAjaWZuZGVmIFdJTjMyDQorICAgdm9pZCBwcmludF90cmFjZWJhY2soKQ0KKyAgIHsNCisr I2lmZGVmIF9fR0xJQkNfXw0KKyAgICAgdm9pZCAqYXJyYXlbNTBdOw0KKyAgICAgc2l6ZV90IHNp emU7DQorICAgICBjaGFyICoqc3RyaW5nczsNCitAQCAtMTIzLDYgKzEyNiw5IEBAIG5hbWVzcGFj ZSBLZXJuZWxfVXRpbHMKKyAgICAgICB9DQorIA0KKyAgICAgZnJlZSAoc3RyaW5ncyk7DQorKyNl bHNlDQorKyAgICBzdGQ6OmNlcnIgPDwgInNvcnJ5LCBubyBiYWNrdHJhY2Ugb24gbXVzbCBsaWJj IjsNCisrI2VuZGlmDQorICAgfQ0KKyAjZWxzZQ0KKyAgICNpZiAoX01TQ19WRVIgPj0gMTQwMCkg Ly8gVmlzdWFsIFN0dWRpbyAyMDA1DQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNo ZXMvMTUwLXZ0azkucGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAtdnRrOS5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTI2NzNlN2M5YjlmLi4wMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUwLXZ0azkucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw3OTYgKzAsMCBAQAotVGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vd3dt YXllci9GcmVlQ0FEL2NvbW1pdC9iYjliY2JkNTFkZjdjM2NiNzZjNTgyMzAzOGU0ZWEwZjdlMjVh OWZmCi1idXQgcmVtb3ZlZCBwYXRjaCBvbiBmaWxlIHNyYy9Nb2QvRmVtL0d1aS9WaWV3UHJvdmlk ZXJGZW1Qb3N0T2JqZWN0LmNwcCA6IGFscmVhZHkgYXBwbGllZCAoMjAyMS0wMS0yMCkKLQotZGlm ZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfTWVzaEVsZW1lbnQuaHh4 IGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX01lc2hFbGVtZW50Lmh4eAotaW5k ZXggMTRhNmQ5YTc2M2YuLjBlOWI5ZTZjOTA1IDEwMDY0NAotLS0tIGEvc3JjLzNyZFBhcnR5L3Nh bG9tZXNtZXNoL2luYy9TTURTX01lc2hFbGVtZW50Lmh4eAotKysrIGIvc3JjLzNyZFBhcnR5L3Nh bG9tZXNtZXNoL2luYy9TTURTX01lc2hFbGVtZW50Lmh4eAotQEAgLTQwLDExICs0MCwxNiBAQAot IAotICNpbmNsdWRlIDx2dGtUeXBlLmg+Ci0gI2luY2x1ZGUgPHZ0a0NlbGxUeXBlLmg+Ci0rI2lu Y2x1ZGUgPHZ0a0NlbGxBcnJheS5oPgotIAotIC8vdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBVU2hv cnRUeXBlOwotIHR5cGVkZWYgc2hvcnQgU2hvcnRUeXBlOwotIHR5cGVkZWYgaW50ICAgTG9uZ1R5 cGU7Ci0tCi0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rdHlwZWRlZiBjb25zdCB2dGtJZFR5 cGUqIHZ0a0lkVHlwZVB0cjsKLSsjZWxzZQotK3R5cGVkZWYgdnRrSWRUeXBlKiB2dGtJZFR5cGVQ dHI7Ci0rI2VuZGlmCi0gY2xhc3MgU01EU19NZXNoTm9kZTsKLSBjbGFzcyBTTURTX01lc2hFZGdl OwotIGNsYXNzIFNNRFNfTWVzaEZhY2U7Ci1AQCAtMTkyLDcgKzE5Nyw3IEBAIHByb3RlY3RlZDoK LSAgIC8vISBFbGVtZW50IGluZGV4IGluIHZlY3RvciBTTURTX01lc2g6Om15Tm9kZXMgb3IgU01E U19NZXNoOjpteUNlbGxzCi0gICBpbnQgbXlJRDsKLSAgIC8vISBpbmRleCBpbiB2dGtVbnN0cnVj dHVyZWRHcmlkCi0tICBpbnQgbXlWdGtJRDsKLSsgIHZ0a0lkVHlwZSBteVZ0a0lEOwotICAgLy8h IFNNRFNfTWVzaCBpZGVudGlmaWNhdGlvbiBpbiBTTUVTSAotICAgU2hvcnRUeXBlIG15TWVzaElk OwotICAgLy8hIFN1YlNoYXBlIGFuZCBTdWJNZXNoIGlkZW50aWZpY2F0aW9uIGluIFNNRVNIRFMK LWRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX1Vuc3RydWN0dXJl ZEdyaWQuaHh4IGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX1Vuc3RydWN0dXJl ZEdyaWQuaHh4Ci1pbmRleCA5ZTRhMjNlZGRmYi4uNzc0NjU4MTQ1NDEgMTAwNjQ0Ci0tLS0gYS9z cmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5oeHgKLSsr KyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmh4 eAotQEAgLTk1LDcgKzk1LDExIEBAIHB1YmxpYzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdGQ6Om1hcDxpbnQsIHN0ZDo6bWFwPGxvbmcsaW50PiA+JiBub2RlUXVh ZERvbWFpbnMpOwotICAgdnRrQ2VsbExpbmtzKiBHZXRMaW5rcygpCi0gICB7Ci0rI2lmZGVmIFZU S19DRUxMX0FSUkFZX1YyCi0rICAgIHJldHVybiBzdGF0aWNfY2FzdDx2dGtDZWxsTGlua3MqPihH ZXRDZWxsTGlua3MoKSk7Ci0rI2Vsc2UKLSAgICAgcmV0dXJuIExpbmtzOwotKyNlbmRpZgotICAg fQotICAgU01EU19Eb3dud2FyZCogZ2V0RG93bkFycmF5KHVuc2lnbmVkIGNoYXIgdnRrVHlwZSkK LSAgIHsKLWRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNf QmFsbEVsZW1lbnQuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNf QmFsbEVsZW1lbnQuY3BwCi1pbmRleCAyOTkwOTNjOTRmNi4uMjY4MGMyMTczMDUgMTAwNjQ0Ci0t LS0gYS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19CYWxsRWxlbWVudC5j cHAKLSsrKyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0JhbGxFbGVt ZW50LmNwcAotQEAgLTY3LDEwICs2NywxNiBAQCB2b2lkIFNNRFNfQmFsbEVsZW1lbnQ6OlNldERp YW1ldGVyKGRvdWJsZSBkaWFtZXRlcikKLSBib29sIFNNRFNfQmFsbEVsZW1lbnQ6OkNoYW5nZU5v ZGUgKGNvbnN0IFNNRFNfTWVzaE5vZGUgKiBub2RlKQotIHsKLSAgIHZ0a1Vuc3RydWN0dXJlZEdy aWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKLSsj aWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsgIHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7 Ci0rICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIGNlbGxQb2ludHMuR2V0UG9pbnRlcigp KTsKLSsgIGNlbGxQb2ludHMtPlNldElkKDAsIG5vZGUtPmdldFZ0a0lkKCkpOwotKyNlbHNlCi0g ICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0gICB2dGtJZFR5cGUqIHB0cyA9IDA7Ci0gICBncmlkLT5H ZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci0gICBwdHNbMF0gPSBub2RlLT5nZXRW dGtJZCgpOwotKyNlbmRpZgotICAgU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRN eU1vZGlmaWVkKCk7Ci0gICByZXR1cm4gdHJ1ZTsKLSB9Ci1AQCAtODMsNyArODksOCBAQCB2b2lk IFNNRFNfQmFsbEVsZW1lbnQ6OlByaW50IChzdGQ6Om9zdHJlYW0gJiBPUykgY29uc3QKLSBjb25z dCBTTURTX01lc2hOb2RlKiBTTURTX0JhbGxFbGVtZW50OjpHZXROb2RlIChjb25zdCBpbnQgaW5k KSBjb25zdAotIHsKLSAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKLS0gIHZ0a0lkVHlwZSBucHRzLCAqcHRzOwot KyAgdnRrSWRUeXBlIG5wdHM7Ci0rICB2dGtJZFR5cGVQdHIgcHRzOwotICAgZ3JpZC0+R2V0Q2Vs bFBvaW50cyggbXlWdGtJRCwgbnB0cywgcHRzICk7Ci0gICByZXR1cm4gU01EU19NZXNoOjpfbWVz aExpc3RbbXlNZXNoSWRdLT5GaW5kTm9kZVZ0ayggcHRzWyAwIF0pOwotIH0KLWRpZmYgLS1naXQg c3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfRG93bndhcmQuY3BwIGIvc3Jj LzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfRG93bndhcmQuY3BwCi1pbmRleCBk NjA0OWMwYmQxOS4uYTQxZjVjMThlNzggMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21l c21lc2gvc3JjL1NNRFMvU01EU19Eb3dud2FyZC5jcHAKLSsrKyBiL3NyYy8zcmRQYXJ0eS9zYWxv bWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcAotQEAgLTMwMyw3ICszMDMsNyBAQCBp bnQgU01EU19Eb3duMUQ6OmdldE5vZGVTZXQoaW50IGNlbGxJZCwgaW50KiBub2RlU2V0KQotIHZv aWQgU01EU19Eb3duMUQ6OnNldE5vZGVzKGludCBjZWxsSWQsIGludCB2dGtJZCkKLSB7Ci0gICB2 dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKnB0czsgLy8gd2lsbCByZWZlciB0byB0 aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQotKyAgdnRrSWRUeXBlUHRyIHB0czsgLy8gd2lsbCBy ZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQotICAgX2dyaWQtPkdldENlbGxQb2lu dHModnRrSWQsIG5wdHMsIHB0cyk7Ci0gICAvLyBNRVNTQUdFKHZ0a0lkIDw8ICIgIiA8PCBucHRz IDw8ICIgICIgPDwgX25iRG93bkNlbGxzKTsKLSAgIC8vQVNTRVJUKG5wdHMgPT0gX25iRG93bkNl bGxzKTsKLUBAIC0zNTcsNyArMzU3LDcgQEAgaW50IFNNRFNfRG93bjFEOjpjb21wdXRlVnRrQ2Vs bHMoaW50ICpwdHMsIHN0ZDo6dmVjdG9yPGludD4mIHZ0a0lkcykKLSAgICAgewotICAgICAgIHZ0 a0lkVHlwZSBwb2ludCA9IHB0c1tpXTsKLSAgICAgICBpbnQgbnVtQ2VsbHMgPSBfZ3JpZC0+R2V0 TGlua3MoKS0+R2V0TmNlbGxzKHBvaW50KTsKLS0gICAgICB2dGtJZFR5cGUgKmNlbGxzID0gX2dy aWQtPkdldExpbmtzKCktPkdldENlbGxzKHBvaW50KTsKLSsgICAgICB2dGtJZFR5cGVQdHIgY2Vs bHMgPSBfZ3JpZC0+R2V0TGlua3MoKS0+R2V0Q2VsbHMocG9pbnQpOwotICAgICAgIGZvciAoaW50 IGogPSAwOyBqIDwgbnVtQ2VsbHM7IGorKykKLSAgICAgICAgIHsKLSAgICAgICAgICAgaW50IHZ0 a0NlbGxJZCA9IGNlbGxzW2pdOwotQEAgLTUzMiw3ICs1MzIsNyBAQCBpbnQgU01EU19Eb3duMkQ6 OmNvbXB1dGVWb2x1bWVJZHMoaW50IGNlbGxJZCwgaW50KiBpZHMpCi0gICAvLyAtLS0gZmluZCBw b2ludCBpZCdzIG9mIHRoZSBmYWNlCi0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJ ZFR5cGUgKnB0czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQot KyAgdnRrSWRUeXBlUHRyIHB0czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0 aGUgZmFjZQotICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBwdHMpOwotICAg dmVjdG9yPGludD4gbm9kZXM7Ci0gICBmb3IgKGludCBpID0gMDsgaSA8IG5wdHM7IGkrKykKLUBA IC01NzcsNyArNTc3LDcgQEAgaW50IFNNRFNfRG93bjJEOjpjb21wdXRlVm9sdW1lSWRzRnJvbU5v ZGVzRmFjZShpbnQqIHB0cywgaW50IG5wdHMsIGludCogaWRzKQotICAgICAgIHZ0a0lkVHlwZSBw b2ludCA9IHB0c1tpXTsKLSAgICAgICBpbnQgbnVtQ2VsbHMgPSBfZ3JpZC0+R2V0TGlua3MoKS0+ R2V0TmNlbGxzKHBvaW50KTsKLSAgICAgICAvL01FU1NBR0UoImNlbGxzIHBvdXIgIiA8PCBpIDw8 ICIgIiA8PCBudW1DZWxscyk7Ci0tICAgICAgdnRrSWRUeXBlICpjZWxscyA9IF9ncmlkLT5HZXRM aW5rcygpLT5HZXRDZWxscyhwb2ludCk7Ci0rICAgICAgdnRrSWRUeXBlUHRyIGNlbGxzID0gX2dy aWQtPkdldExpbmtzKCktPkdldENlbGxzKHBvaW50KTsKLSAgICAgICBmb3IgKGludCBqID0gMDsg aiA8IG51bUNlbGxzOyBqKyspCi0gICAgICAgICB7Ci0gICAgICAgICAgIGludCB2dGtDZWxsSWQg PSBjZWxsc1tqXTsKLUBAIC02MjcsNyArNjI3LDcgQEAgaW50IFNNRFNfRG93bjJEOjpjb21wdXRl Vm9sdW1lSWRzRnJvbU5vZGVzRmFjZShpbnQqIHB0cywgaW50IG5wdHMsIGludCogaWRzKQotIHZv aWQgU01EU19Eb3duMkQ6OnNldFRlbXBOb2RlcyhpbnQgY2VsbElkLCBpbnQgdnRrSWQpCi0gewot ICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpwdHM7IC8vIHdpbGwgcmVmZXIg dG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKLSsgIHZ0a0lkVHlwZVB0ciBwdHM7IC8vIHdp bGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKLSAgIF9ncmlkLT5HZXRDZWxs UG9pbnRzKHZ0a0lkLCBucHRzLCBwdHMpOwotICAgLy8gTUVTU0FHRSh2dGtJZCA8PCAiICIgPDwg bnB0cyA8PCAiICAiIDw8IF9uYk5vZGVzKTsKLSAgIC8vQVNTRVJUKG5wdHMgPT0gX25iTm9kZXMp OwotQEAgLTc5NSw3ICs3OTUsNyBAQCB2b2lkIFNNRFNfRG93bjNEOjpnZXROb2RlSWRzKGludCBj ZWxsSWQsIHN0ZDo6c2V0PGludD4mIG5vZGVTZXQpCi0gewotICAgaW50IHZ0a0lkID0gdGhpcy0+ X3Z0a0NlbGxJZHNbY2VsbElkXTsKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlw ZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQot KyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9m IHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHZ0a0lkLCBucHRzLCBub2Rlcyk7 Ci0gICBmb3IgKGludCBpID0gMDsgaSA8IG5wdHM7IGkrKykKLSAgICAgbm9kZVNldC5pbnNlcnQo bm9kZXNbaV0pOwotQEAgLTExMjYsNyArMTEyNiw3IEBAIHZvaWQgU01EU19Eb3duVGV0cmE6Omdl dE9yZGVyZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+JiBv Ci0gICAvL01FU1NBR0UoImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKLSAKLSAgIHZ0a0lkVHlwZSBu cHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50 IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVy IHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRz KHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsKLSAKLSAgIHNldDxpbnQ+ IHRvZmluZDsKLUBAIC0xMTc4LDcgKzExNzgsNyBAQCB2b2lkIFNNRFNfRG93blRldHJhOjpjb21w dXRlRmFjZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYgZmFjZQot ICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gCi0gICB2dGtJZFR5cGUg bnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2lu dCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZl ciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50 cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKLSAKLSAgIC8vIC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRl cmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZhY2UKLUBAIC0xMjM0LDcgKzEyMzQsNyBA QCB2b2lkIFNNRFNfRG93blF1YWRUZXRyYTo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxs SWQsIHN0ZDo6dmVjdG9yPHZ0a0lkVHlwZQotICAgLy9NRVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNl bGxJZCk7Ci0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAv LyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlw ZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1l Ci0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tjZWxsSWRdLCBucHRz LCBub2Rlcyk7Ci0gCi0gICBzZXQ8aW50PiB0b2ZpbmQ7Ci1AQCAtMTI4OCw3ICsxMjg4LDcgQEAg dm9pZCBTTURTX0Rvd25RdWFkVGV0cmE6OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElk LCBMaXN0RWxlbUJ5Tm9kZXNUeXBlJgotICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUg dm9sdW1lCi0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAv LyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlw ZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1l Ci0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKLSAKLSAgIC8v IC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZh Y2UKLUBAIC0xMzU3LDcgKzEzNTcsNyBAQCB2b2lkIFNNRFNfRG93blB5cmFtaWQ6OmdldE9yZGVy ZWROb2Rlc09mRmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+JgotICAgLy9N RVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNlbGxJZCk7Ci0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7 Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9m IHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUg cG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5f dnRrQ2VsbElkc1tjZWxsSWRdLCBucHRzLCBub2Rlcyk7Ci0gCi0gICBzZXQ8aW50PiB0b2ZpbmQ7 Ci1AQCAtMTQzNSw3ICsxNDM1LDcgQEAgdm9pZCBTTURTX0Rvd25QeXJhbWlkOjpjb21wdXRlRmFj ZXNXaXRoTm9kZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYgZmEKLSAgIC8vIC0t LSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAw OwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBv ZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhl IHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElk LCBucHRzLCBub2Rlcyk7Ci0gCi0gICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0 IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBmYWNlCi1AQCAtMTUwMCw3ICsxNTAwLDcgQEAgdm9pZCBT TURTX0Rvd25RdWFkUHlyYW1pZDo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxsSWQsIHN0 ZDo6dmVjdG9yPHZ0a0lkVHkKLSAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOwot IAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCBy ZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9k ZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dy aWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMp OwotIAotICAgc2V0PGludD4gdG9maW5kOwotQEAgLTE1ODAsNyArMTU4MCw3IEBAIHZvaWQgU01E U19Eb3duUXVhZFB5cmFtaWQ6OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElkLCBMaXN0 RWxlbUJ5Tm9kZXNUeXBlCi0gICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUK LSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwg cmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5v ZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9n cmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOwotIAotICAgLy8gLS0tIGNy ZWF0ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9yIGVhY2ggZmFjZQotQEAg LTE2NjAsNyArMTY2MCw3IEBAIHZvaWQgU01EU19Eb3duUGVudGE6OmdldE9yZGVyZWROb2Rlc09m RmFjZShpbnQgY2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+JiBvCi0gICAvL01FU1NBR0Uo ImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKLSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0 a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZv bHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBp ZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHRoaXMtPl92dGtDZWxs SWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsKLSAKLSAgIHNldDxpbnQ+IHRvZmluZDsKLUBAIC0x NzQ0LDcgKzE3NDQsNyBAQCB2b2lkIFNNRFNfRG93blBlbnRhOjpjb21wdXRlRmFjZXNXaXRoTm9k ZXMoaW50IGNlbGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYgZmFjZQotICAgLy8gLS0tIGZpbmQg cG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2 dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2 b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQg aWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMs IG5vZGVzKTsKLSAKLSAgIC8vIC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9k ZSBpZCdzIGZvciBlYWNoIGZhY2UKLUBAIC0xODEwLDcgKzE4MTAsNyBAQCB2b2lkIFNNRFNfRG93 blF1YWRQZW50YTo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxsSWQsIHN0ZDo6dmVjdG9y PHZ0a0lkVHlwZQotICAgLy9NRVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNlbGxJZCk7Ci0gCi0gICB2 dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRv IHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8g d2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0 Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tjZWxsSWRdLCBucHRzLCBub2Rlcyk7Ci0gCi0g ICBzZXQ8aW50PiB0b2ZpbmQ7Ci1AQCAtMTg5Niw3ICsxODk2LDcgQEAgdm9pZCBTTURTX0Rvd25R dWFkUGVudGE6OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElkLCBMaXN0RWxlbUJ5Tm9k ZXNUeXBlJgotICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gCi0gICB2 dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRv IHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8g d2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0 Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKLSAKLSAgIC8vIC0tLSBjcmVhdGUgYWxs IHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZhY2UKLUBAIC0xOTgxLDcg KzE5ODEsNyBAQCB2b2lkIFNNRFNfRG93bkhleGE6OmdldE9yZGVyZWROb2Rlc09mRmFjZShpbnQg Y2VsbElkLCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+JiBvcgotICAgLy9NRVNTQUdFKCJjZWxsSWQg PSAiIDw8IGNlbGxJZCk7Ci0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUg Km5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsg IHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0 aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tjZWxs SWRdLCBucHRzLCBub2Rlcyk7Ci0gCi0gICBzZXQ8aW50PiB0b2ZpbmQ7Ci1AQCAtMjAzNiw3ICsy MDM2LDcgQEAgdm9pZCBTTURTX0Rvd25IZXhhOjpjb21wdXRlRmFjZXNXaXRoTm9kZXMoaW50IGNl bGxJZCwgTGlzdEVsZW1CeU5vZGVzVHlwZSYgZmFjZXMKLSAgIC8vIC0tLSBmaW5kIHBvaW50IGlk J3Mgb2YgdGhlIHZvbHVtZQotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBl ICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0r ICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2Yg dGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBub2Rlcyk7 Ci0gCi0gICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQncyBm b3IgZWFjaCBmYWNlCi1AQCAtMjExMiw3ICsyMTEyLDcgQEAgdm9pZCBTTURTX0Rvd25RdWFkSGV4 YTo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxsSWQsIHN0ZDo6dmVjdG9yPHZ0a0lkVHlw ZT4KLSAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOwotIAotICAgdnRrSWRUeXBl IG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9p bnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVm ZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2lu dHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMpOwotIAotICAgc2V0PGlu dD4gdG9maW5kOwotQEAgLTIxNjcsNyArMjE2Nyw3IEBAIHZvaWQgU01EU19Eb3duUXVhZEhleGE6 OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElkLCBMaXN0RWxlbUJ5Tm9kZXNUeXBlJiBm Ci0gICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAKLSAgIHZ0a0lkVHlw ZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBv aW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJl ZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9p bnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOwotIAotICAgLy8gLS0tIGNyZWF0ZSBhbGwgdGhlIG9y ZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9yIGVhY2ggZmFjZQotZGlmZiAtLWdpdCBzcmMvM3Jk UGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoLmNwcCBiL3NyYy8zcmRQYXJ0eS9z YWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2guY3BwCi1pbmRleCA2MWM4ZTc1MWQ5NC4uMWVh YzI5MDdkM2QgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMv U01EU19NZXNoLmNwcAotKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NN RFNfTWVzaC5jcHAKLUBAIC00NzY4LDcgKzQ3NjgsMTEgQEAgdm9pZCBTTURTX01lc2g6OmR1bXBH cmlkKHN0cmluZyBmaWNkdW1wKQotICAgICAgICAgZmljY29uIDw8IGVuZGw7Ci0gICB9Ci0gICBm aWNjb24gPDwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvbm5lY3Rpdml0eSAi IDw8ICBuYlBvaW50cyA8PCBlbmRsOwotLSAgICAgICAgdnRrQ2VsbExpbmtzICpsaW5rcyA9IG15 R3JpZC0+R2V0Q2VsbExpbmtzKCk7Ci0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rICB2dGtD ZWxsTGlua3MgKmxpbmtzID0gc3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4obXlHcmlkLT5HZXRD ZWxsTGlua3MoKSk7Ci0rI2Vsc2UKLSsgIHZ0a0NlbGxMaW5rcyAqbGlua3MgPSBteUdyaWQtPkdl dENlbGxMaW5rcygpOwotKyNlbmRpZgotICAgZm9yIChpbnQgaT0wOyBpPG5iUG9pbnRzOyBpKysp Ci0gICB7Ci0gICAgICAgICBpbnQgbmNlbGxzID0gbGlua3MtPkdldE5jZWxscyhpKTsKLWRpZmYg LS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaDBERWxlbWVu dC5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoMERFbGVt ZW50LmNwcAotaW5kZXggOTU0MzhlYWIwNjQuLjBkZjMyZTNiOTdjIDEwMDY0NAotLS0tIGEvc3Jj LzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaDBERWxlbWVudC5jcHAKLSsr KyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2gwREVsZW1lbnQu Y3BwCi1AQCAtMTQ2LDYgKzE0NiwxNyBAQCBib29sIFNNRFNfTWVzaDBERWxlbWVudDo6Q2hhbmdl Tm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTgotICAgaWYg KCBuYk5vZGVzID09IDEgKQotICAgewotICAgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0g U01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0rI2lmZGVmIFZUS19D RUxMX0FSUkFZX1YyCi0rICAgIHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7Ci0rICAgIGdy aWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgY2VsbFBvaW50cy5HZXRQb2ludGVyKCkpOwotKyAg ICBpZiAobmJOb2RlcyAhPSBjZWxsUG9pbnRzLT5HZXROdW1iZXJPZklkcygpKQotKyAgICB7Ci0r ICAgICAgTUVTU0FHRSgiQ2hhbmdlTm9kZXMgcHJvYmxlbTogbm90IHRoZSBzYW1lIG51bWJlciBv ZiBub2RlcyAiIDw8IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCkgPDwgIiAtPiAiIDw8IG5i Tm9kZXMpOwotKyAgICAgIHJldHVybiBmYWxzZTsKLSsgICAgfQotKyAgICBteU5vZGUgPSBub2Rl c1swXTsKLSsgICAgY2VsbFBvaW50cy0+U2V0SWQoMCwgbXlOb2RlLT5nZXRWdGtJZCgpKTsKLSsj ZWxzZQotICAgICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0gICAgIHZ0a0lkVHlwZSogcHRzID0gMDsK LSAgICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotQEAgLTE1Niw2 ICsxNjcsNyBAQCBib29sIFNNRFNfTWVzaDBERWxlbWVudDo6Q2hhbmdlTm9kZXMoY29uc3QgU01E U19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTgotICAgICB9Ci0gICAgIG15Tm9kZSA9 IG5vZGVzWzBdOwotICAgICBwdHNbMF0gPSBteU5vZGUtPmdldFZ0a0lkKCk7Ci0rI2VuZGlmCi0g Ci0gICAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgpOwot ICAgICByZXR1cm4gdHJ1ZTsKLWRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTURTL1NNRFNfTWVzaE5vZGUuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9T TURTL1NNRFNfTWVzaE5vZGUuY3BwCi1pbmRleCBmNjQ3YTVmMWI4Zi4uNWI5MDNjOGZiNTUgMTAw NjQ0Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoTm9k ZS5jcHAKLSsrKyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2hO b2RlLmNwcAotQEAgLTE5MSw3ICsxOTEsNyBAQCBjbGFzcyBTTURTX01lc2hOb2RlX015SW52SXRl cmF0b3I6IHB1YmxpYyBTTURTX0VsZW1JdGVyYXRvcgotIFNNRFNfRWxlbUl0ZXJhdG9yUHRyIFNN RFNfTWVzaE5vZGU6OgotIEdldEludmVyc2VFbGVtZW50SXRlcmF0b3IoU01EU0Fic19FbGVtZW50 VHlwZSB0eXBlKSBjb25zdAotIHsKLS0gIHZ0a0NlbGxMaW5rczo6TGluayBsID0gU01EU19NZXNo OjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCktPkdldENlbGxMaW5rcygpLT5HZXRMaW5r KG15VnRrSUQpOwotKyAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtDZWxs TGlua3MqPihTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2Vs bExpbmtzKCkpLT5HZXRMaW5rKG15VnRrSUQpOwotICAgLy9NRVNTQUdFKCJteUlEICIgPDwgbXlJ RCA8PCAiIG5jZWxscyAiIDw8IGwubmNlbGxzKTsKLSAgIHJldHVybiBTTURTX0VsZW1JdGVyYXRv clB0cihuZXcgU01EU19NZXNoTm9kZV9NeUludkl0ZXJhdG9yKFNNRFNfTWVzaDo6X21lc2hMaXN0 W215TWVzaElkXSwgbC5jZWxscywgbC5uY2VsbHMsIHR5cGUpKTsKLSB9Ci1AQCAtMjUxLDcgKzI1 MSw3IEBAIGVsZW1lbnRzSXRlcmF0b3IoU01EU0Fic19FbGVtZW50VHlwZSB0eXBlKSBjb25zdAot ICAgICByZXR1cm4gU01EU19NZXNoRWxlbWVudDo6ZWxlbWVudHNJdGVyYXRvcihTTURTQWJzX05v ZGUpOwotICAgZWxzZQotICAgewotLSAgICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9IFNNRFNfTWVz aDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKS0+R2V0TGlu ayhteVZ0a0lEKTsKLSsgICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtD ZWxsTGlua3MqPihTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0 Q2VsbExpbmtzKCkpLT5HZXRMaW5rKG15VnRrSUQpOwotICAgICByZXR1cm4gU01EU19FbGVtSXRl cmF0b3JQdHIobmV3IFNNRFNfTWVzaE5vZGVfTXlJdGVyYXRvcihTTURTX01lc2g6Ol9tZXNoTGlz dFtteU1lc2hJZF0sIGwuY2VsbHMsIGwubmNlbGxzLCB0eXBlKSk7Ci0gICB9Ci0gfQotQEAgLTM1 MCw3ICszNTAsNyBAQCB2b2lkIFNNRFNfTWVzaE5vZGU6OkFkZEludmVyc2VFbGVtZW50KGNvbnN0 IFNNRFNfTWVzaEVsZW1lbnQqIE1FKQotICAgY29uc3QgU01EU19NZXNoQ2VsbCAqY2VsbCA9IGR5 bmFtaWNfY2FzdDxjb25zdCBTTURTX01lc2hDZWxsKj4gKE1FKTsKLSAgIGFzc2VydChjZWxsKTsK LSAgIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215 TWVzaElkXS0+Z2V0R3JpZCgpOwotLSAgdnRrQ2VsbExpbmtzICpMaW5rcyA9IGdyaWQtPkdldENl bGxMaW5rcygpOwotKyAgdnRrQ2VsbExpbmtzICpMaW5rcyA9IHN0YXRpY19jYXN0PHZ0a0NlbGxM aW5rcyo+KGdyaWQtPkdldENlbGxMaW5rcygpKTsKLSAgIExpbmtzLT5SZXNpemVDZWxsTGlzdCht eVZ0a0lELCAxKTsKLSAgIExpbmtzLT5BZGRDZWxsUmVmZXJlbmNlKGNlbGwtPmdldFZ0a0lkKCks IG15VnRrSUQpOwotIH0KLUBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBTTURTX01lc2hOb2RlOjpD bGVhckludmVyc2VFbGVtZW50cygpCi0gCi0gYm9vbCBTTURTX01lc2hOb2RlOjplbXB0eUludmVy c2VFbGVtZW50cygpCi0gewotLSAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2VsbExpbmtzKCktPkdldExpbmsobXlW dGtJRCk7Ci0rICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5r cyo+KFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlu a3MoKSktPkdldExpbmsobXlWdGtJRCk7Ci0gICByZXR1cm4gKGwubmNlbGxzID09IDApOwotIH0K LSAKLUBAIC0zNzgsNyArMzc4LDcgQEAgYm9vbCBTTURTX01lc2hOb2RlOjplbXB0eUludmVyc2VF bGVtZW50cygpCi0gCi0gaW50IFNNRFNfTWVzaE5vZGU6Ok5iSW52ZXJzZUVsZW1lbnRzKFNNRFNB YnNfRWxlbWVudFR5cGUgdHlwZSkgY29uc3QKLSB7Ci0tICB2dGtDZWxsTGlua3M6OkxpbmsgbCA9 IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3Mo KS0+R2V0TGluayhteVZ0a0lEKTsKLSsgIHZ0a0NlbGxMaW5rczo6TGluayBsID0gc3RhdGljX2Nh c3Q8dnRrQ2VsbExpbmtzKj4oU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlk KCktPkdldENlbGxMaW5rcygpKS0+R2V0TGluayhteVZ0a0lEKTsKLSAKLSAgIGlmICggdHlwZSA9 PSBTTURTQWJzX0FsbCApCi0gICAgIHJldHVybiBsLm5jZWxsczsKLWRpZmYgLS1naXQgc3JjLzNy ZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5jcHAgYi9z cmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19VbnN0cnVjdHVyZWRHcmlkLmNw cAotaW5kZXggZmJkOTAzYjFlNzQuLmZmMmI4MWU5Njk0IDEwMDY0NAotLS0tIGEvc3JjLzNyZFBh cnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5jcHAKLSsrKyBi L3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Vuc3RydWN0dXJlZEdyaWQu Y3BwCi1AQCAtMTM5LDggKzEzOSw4IEBAIGludCBTTURTX1Vuc3RydWN0dXJlZEdyaWQ6Okluc2Vy dE5leHRMaW5rZWRDZWxsKGludCB0eXBlLCBpbnQgbnB0cywgdnRrSWRUeXBlICpwCi0gICBmb3Ig KDsgaXQgIT0gc2V0T2ZOb2Rlcy5lbmQoKTsgKytpdCkKLSAgICAgewotICAgICAgIC8vTUVTU0FH RSgicmV2ZXJzZSBsaW5rIGZvciBub2RlICIgPDwgKml0IDw8ICIgY2VsbCAiIDw8IGNlbGxpZCk7 Ci0tICAgICAgdGhpcy0+TGlua3MtPlJlc2l6ZUNlbGxMaXN0KCppdCwgMSk7Ci0tICAgICAgdGhp cy0+TGlua3MtPkFkZENlbGxSZWZlcmVuY2UoY2VsbGlkLCAqaXQpOwotKyAgICAgIHRoaXMtPkdl dExpbmtzKCktPlJlc2l6ZUNlbGxMaXN0KCppdCwgMSk7Ci0rICAgICAgdGhpcy0+R2V0TGlua3Mo KS0+QWRkQ2VsbFJlZmVyZW5jZShjZWxsaWQsICppdCk7Ci0gICAgIH0KLSAKLSAgIHJldHVybiBj ZWxsaWQ7Ci1AQCAtMzMyLDkgKzMzMiwxMyBAQCB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6 Y29weUJsb2ModnRrVW5zaWduZWRDaGFyQXJyYXkgKm5ld1R5cGVzLAotICAgICB7Ci0gICAgICAg bmV3VHlwZXMtPlNldFZhbHVlKGFscmVhZHlDb3BpZWQsIHRoaXMtPlR5cGVzLT5HZXRWYWx1ZShq KSk7Ci0gICAgICAgaWRDZWxsc09sZFRvTmV3W2pdID0gYWxyZWFkeUNvcGllZDsgLy8gb2xkIHZ0 a0lkIC0tPiBuZXcgdnRrSWQKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsgICAgICB2dGtJ ZFR5cGUgb2xkTG9jID0gdGhpcy0+R2V0Q2VsbExvY2F0aW9uc0FycmF5KCktPkdldFZhbHVlKGop OwotKyNlbHNlCi0gICAgICAgdnRrSWRUeXBlIG9sZExvYyA9IHRoaXMtPkxvY2F0aW9ucy0+R2V0 VmFsdWUoaik7Ci0rI2VuZGlmCi0gICAgICAgdnRrSWRUeXBlIG5icHRzOwotLSAgICAgIHZ0a0lk VHlwZSAqb2xkUHRzQ2VsbCA9IDA7Ci0rICAgICAgdnRrSWRUeXBlUHRyIG9sZFB0c0NlbGwgPSAw OwotICAgICAgIHRoaXMtPkNvbm5lY3Rpdml0eS0+R2V0Q2VsbChvbGRMb2MsIG5icHRzLCBvbGRQ dHNDZWxsKTsKLSAgICAgICBhc3NlcnQobmJwdHMgPCBOQk1BWE5PREVTSU5DRUxMKTsKLSAgICAg ICAvL01FU1NBR0UoaiA8PCAiICIgPDwgYWxyZWFkeUNvcGllZCA8PCAiICIgPDwgKGludCl0aGlz LT5UeXBlcy0+R2V0VmFsdWUoaikgPDwgIiAiIDw8IG9sZExvYyA8PCAiICIgPDwgbmJwdHMgKTsK LUBAIC05NTIsNiArOTU2LDIxIEBAIHZvaWQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpHZXROb2Rl SWRzKHN0ZDo6c2V0PGludD4mIG5vZGVTZXQsIGludCBkb3duSWQsIHVuc2lnCi0gICovCi0gdm9p ZCBTTURTX1Vuc3RydWN0dXJlZEdyaWQ6Ok1vZGlmeUNlbGxOb2RlcyhpbnQgdnRrVm9sSWQsIHN0 ZDo6bWFwPGludCwgaW50PiBsb2NhbENsb25lZE5vZGVJZHMpCi0gewotKyNpZmRlZiBWVEtfQ0VM TF9BUlJBWV9WMgotKyAgdnRrTmV3PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKLSsgIHRoaXMtPkdl dENlbGxQb2ludHModnRrVm9sSWQsIGNlbGxQb2ludHMuR2V0UG9pbnRlcigpKTsKLSsgIGZvciAo dnRrSWRUeXBlIGkgPSAwOyBpIDwgY2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKTsgaSsrKQot KyAgICB7Ci0rICAgICAgaWYgKGxvY2FsQ2xvbmVkTm9kZUlkcy5jb3VudChjZWxsUG9pbnRzLT5H ZXRJZChpKSkpCi0rICAgICAgICB7Ci0rICAgICAgICAgIHZ0a0lkVHlwZSBvbGRwdCA9IGNlbGxQ b2ludHMtPkdldElkKGkpOwotKyAgICAgICAgICBjZWxsUG9pbnRzLT5TZXRJZChpLCBsb2NhbENs b25lZE5vZGVJZHNbb2xkcHRdKTsKLSsgICAgICAgICAgLy9NRVNTQUdFKG9sZHB0IDw8ICIgLS0+ ICIgPDwgcHRzW2ldKTsKLSsgICAgICAgICAgLy90aGlzLT5SZW1vdmVSZWZlcmVuY2VUb0NlbGwo b2xkcHQsIHZ0a1ZvbElkKTsKLSsgICAgICAgICAgLy90aGlzLT5BZGRSZWZlcmVuY2VUb0NlbGwo cHRzW2ldLCB2dGtWb2xJZCk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsjZWxzZQotICAgdnRrSWRU eXBlIG5wdHMgPSAwOwotICAgdnRrSWRUeXBlICpwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBv aW50IGlkJ3Mgb2YgdGhlIGZhY2UKLSAgIHRoaXMtPkdldENlbGxQb2ludHModnRrVm9sSWQsIG5w dHMsIHB0cyk7Ci1AQCAtOTY2LDYgKzk4NSw3IEBAIHZvaWQgU01EU19VbnN0cnVjdHVyZWRHcmlk OjpNb2RpZnlDZWxsTm9kZXMoaW50IHZ0a1ZvbElkLCBzdGQ6Om1hcDxpbnQsIGludD4gbG9jCi0g ICAgICAgICAgIC8vdGhpcy0+QWRkUmVmZXJlbmNlVG9DZWxsKHB0c1tpXSwgdnRrVm9sSWQpOwot ICAgICAgICAgfQotICAgICB9Ci0rI2VuZGlmCi0gfQotIAotIC8qISByZW9yZGVyIHRoZSBub2Rl cyBvZiBhIGZhY2UKLUBAIC05OTUsMTEgKzEwMTUsMjAgQEAgdm9pZCBTTURTX1Vuc3RydWN0dXJl ZEdyaWQ6OkJ1aWxkTGlua3MoKQotICAgICB0aGlzLT5MaW5rcy0+VW5SZWdpc3Rlcih0aGlzKTsK LSAgICAgfQotIAotKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKyAgdGhpcy0+TGlua3MgPSBT TURTX0NlbGxMaW5rczo6TmV3KCk7Ci0rICBHZXRMaW5rcygpLT5BbGxvY2F0ZSh0aGlzLT5HZXRO dW1iZXJPZlBvaW50cygpKTsKLSsgIEdldExpbmtzKCktPlJlZ2lzdGVyKHRoaXMpOwotKy8vRklY TUU6IHZ0azkKLSsgIEdldExpbmtzKCktPkJ1aWxkTGlua3ModGhpcyk7Ci0rICBHZXRMaW5rcygp LT5EZWxldGUoKTsKLSsjZWxzZQotICAgdGhpcy0+TGlua3MgPSBTTURTX0NlbGxMaW5rczo6TmV3 KCk7Ci0gICB0aGlzLT5MaW5rcy0+QWxsb2NhdGUodGhpcy0+R2V0TnVtYmVyT2ZQb2ludHMoKSk7 Ci0gICB0aGlzLT5MaW5rcy0+UmVnaXN0ZXIodGhpcyk7Ci0gICB0aGlzLT5MaW5rcy0+QnVpbGRM aW5rcyh0aGlzLCB0aGlzLT5Db25uZWN0aXZpdHkpOwotICAgdGhpcy0+TGlua3MtPkRlbGV0ZSgp OwotKyNlbmRpZgotIH0KLSAKLSAvKiEgQ3JlYXRlIGEgdm9sdW1lIChwcmlzbSBvciBoZXhhaGVk cm9uKSBieSBkdXBsaWNhdGlvbiBvZiBhIGZhY2UuCi1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9z YWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0NlbGxJdGVyYXRvci5jcHAgYi9zcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtDZWxsSXRlcmF0b3IuY3BwCi1pbmRleCBk ZWIwNTk4NWYwMC4uNjNiNmVhYmI3MDQgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21l c21lc2gvc3JjL1NNRFMvU01EU19WdGtDZWxsSXRlcmF0b3IuY3BwCi0rKysgYi9zcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtDZWxsSXRlcmF0b3IuY3BwCi1AQCAtMzMs NyArMzMsOCBAQCBTTURTX1Z0a0NlbGxJdGVyYXRvcjo6U01EU19WdGtDZWxsSXRlcmF0b3IoU01E U19NZXNoKiBtZXNoLCBpbnQgdnRrQ2VsbElkLCBTTURTQQotICAgfQotICAgZWxzZQotICAgewot LSAgICB2dGtJZFR5cGUgbnB0cywgKnB0czsKLSsgICAgdnRrSWRUeXBlIG5wdHM7Ci0rICAgIHZ0 a0lkVHlwZVB0ciBwdHM7Ci0gICAgIGdyaWQtPkdldENlbGxQb2ludHMoIF9jZWxsSWQsIG5wdHMs IHB0cyApOwotICAgICBfdnRrSWRMaXN0LT5TZXROdW1iZXJPZklkcyggX25iTm9kZXMgPSBucHRz ICk7Ci0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgX25iTm9kZXM7IGkrKykKLUBAIC02Nyw3ICs2 OCw3IEBAIFNNRFNfVnRrQ2VsbEl0ZXJhdG9yVG9VTlY6OlNNRFNfVnRrQ2VsbEl0ZXJhdG9yVG9V TlYoU01EU19NZXNoKiBtZXNoLCBpbnQgdnRrQ2VsCi0gICAvL01FU1NBR0UoIlNNRFNfVnRrQ2Vs bEludGVybGFjZWRJdGVyYXRvciAoVU5WKSIgPDwgX3R5cGUpOwotIAotICAgX3Z0a0lkTGlzdCA9 IHZ0a0lkTGlzdDo6TmV3KCk7Ci0tICB2dGtJZFR5cGUqIHB0czsKLSsgIHZ0a0lkVHlwZVB0ciBw dHM7Ci0gICB2dGtJZFR5cGUgbnB0czsKLSAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBf bWVzaC0+Z2V0R3JpZCgpOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50cygodnRrSWRUeXBlKV9jZWxs SWQsIG5wdHMsIHB0cyk7Ci1AQCAtMTgyLDcgKzE4Myw3IEBAIFNNRFNfVnRrQ2VsbEl0ZXJhdG9y UG9seUg6OlNNRFNfVnRrQ2VsbEl0ZXJhdG9yUG9seUgoU01EU19NZXNoKiBtZXNoLCBpbnQgdnRr Q2VsCi0gICB7Ci0gICAgIC8vTUVTU0FHRSgiU01EU19WdGtDZWxsSXRlcmF0b3IgUG9seWhlZHJh Iik7Ci0gICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICB2dGtJZFR5cGUqIHB0SWRzID0g MDsKLSsgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKLSAgICAgZ3JpZC0+R2V0RmFjZVN0cmVh bShfY2VsbElkLCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgaW50IGlkID0gMDsKLSAgICAgX25iTm9k ZXNJbkZhY2VzID0gMDsKLWRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9T TURTL1NNRFNfVnRrRWRnZS5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMv U01EU19WdGtFZGdlLmNwcAotaW5kZXggOTc4NmFiZjlhYWUuLjZkNzcyYTNjZDRhIDEwMDY0NAot LS0tIGEvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrRWRnZS5jcHAK LSsrKyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0VkZ2UuY3Bw Ci1AQCAtNjcsNiArNjcsMTkgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVzKGNvbnN0 IFNNRFNfTWVzaE5vZGUgKiBub2RlMSwgY29uc3QgU01EU19NZXNoTm9kZQotIGJvb2wgU01EU19W dGtFZGdlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBp bnQgbmJOb2RlcykKLSB7Ci0gICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNo OjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0rI2lmZGVmIFZUS19DRUxMX0FSUkFZ X1YyCi0rICB2dGtOZXc8dnRrSWRMaXN0PiBjZWxsUG9pbnRzOwotKyAgZ3JpZC0+R2V0Q2VsbFBv aW50cyhteVZ0a0lELCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7Ci0rICBpZiAobmJOb2RlcyAh PSBjZWxsUG9pbnRzLT5HZXROdW1iZXJPZklkcygpKQotKyAgICB7Ci0rICAgICAgTUVTU0FHRSgi Q2hhbmdlTm9kZXMgcHJvYmxlbTogbm90IHRoZSBzYW1lIG51bWJlciBvZiBub2RlcyAiIDw8IGNl bGxQb2ludHMtPkdldE51bWJlck9mSWRzKCkgPDwgIiAtPiAiIDw8IG5iTm9kZXMpOwotKyAgICAg IHJldHVybiBmYWxzZTsKLSsgICAgfQotKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYk5vZGVzOyBp KyspCi0rICAgIHsKLSsgICAgICBjZWxsUG9pbnRzLT5TZXRJZChpLCBub2Rlc1tpXS0+Z2V0VnRr SWQoKSk7Ci0rICAgIH0KLSsjZWxzZQotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotICAgdnRrSWRU eXBlKiBwdHMgPSAwOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMp OwotQEAgLTc5LDYgKzkyLDcgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVzKGNvbnN0 IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQotICAgICB7Ci0gICAg ICAgcHRzW2ldID0gbm9kZXNbaV0tPmdldFZ0a0lkKCk7Ci0gICAgIH0KLSsjZW5kaWYKLSAgIFNN RFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgpOwotICAgcmV0dXJu IHRydWU7Ci0gfQotQEAgLTg3LDcgKzEwMSw3IEBAIGJvb2wgU01EU19WdGtFZGdlOjpJc01lZGl1 bU5vZGUoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSkgY29uc3QKLSB7Ci0gICB2dGtVbnN0cnVj dHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlk KCk7Ci0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUqIHB0cyA9IDA7Ci0rICB2 dGtJZFR5cGVQdHIgcHRzID0gMDsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0 cywgcHRzKTsKLSAgIC8vTUVTU0FHRSgiSXNNZWRpdW1Ob2RlICIgPDwgbnB0cyAgPDwgIiAiIDw8 IChub2RlLT5nZXRWdGtJZCgpID09IHB0c1tucHRzLTFdKSk7Ci0gICByZXR1cm4gKChucHRzID09 IDMpICYmIChub2RlLT5nZXRWdGtJZCgpID09IHB0c1syXSkpOwotQEAgLTEzNyw3ICsxNTEsOCBA QCBjb25zdCBTTURTX01lc2hOb2RlKgotIFNNRFNfVnRrRWRnZTo6R2V0Tm9kZShjb25zdCBpbnQg aW5kKSBjb25zdAotIHsKLSAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6 Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKLS0gIHZ0a0lkVHlwZSBucHRzLCAqcHRz OwotKyAgdnRrSWRUeXBlIG5wdHM7Ci0rICB2dGtJZFR5cGVQdHIgcHRzOwotICAgZ3JpZC0+R2V0 Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywgcHRzICk7Ci0gICByZXR1cm4gU01EU19N ZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5GaW5kTm9kZVZ0ayggcHRzWyBpbmQgXSk7Ci0gfQot ZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtGYWNl LmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0ZhY2UuY3Bw Ci1pbmRleCAxMzg5ZTBkMzU4NS4uY2I5ODFiZmIxOGUgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtGYWNlLmNwcAotKysrIGIvc3JjLzNyZFBh cnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrRmFjZS5jcHAKLUBAIC0xMDEsNiArMTAx LDE5IEBAIHZvaWQgU01EU19WdGtGYWNlOjppbml0UXVhZFBvbHkoY29uc3Qgc3RkOjp2ZWN0b3I8 dnRrSWRUeXBlPiYgbm9kZUlkcywgU01EU19NZXNoCi0gYm9vbCBTTURTX1Z0a0ZhY2U6OkNoYW5n ZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQot IHsKLSAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtt eU1lc2hJZF0tPmdldEdyaWQoKTsKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsgIHZ0a05l dzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7Ci0rICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQs IGNlbGxQb2ludHMuR2V0UG9pbnRlcigpKTsKLSsgIGlmIChuYk5vZGVzICE9IGNlbGxQb2ludHMt PkdldE51bWJlck9mSWRzKCkpCi0rICAgIHsKLSsgICAgICBNRVNTQUdFKCJDaGFuZ2VOb2RlcyBw cm9ibGVtOiBub3QgdGhlIHNhbWUgbnVtYmVyIG9mIG5vZGVzICIgPDwgY2VsbFBvaW50cy0+R2V0 TnVtYmVyT2ZJZHMoKSA8PCAiIC0+ICIgPDwgbmJOb2Rlcyk7Ci0rICAgICAgcmV0dXJuIGZhbHNl OwotKyAgICB9Ci0rICBmb3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKLSsgICAgewot KyAgICAgIGNlbGxQb2ludHMtPlNldElkKGksIG5vZGVzW2ldLT5nZXRWdGtJZCgpKTsKLSsgICAg fQotKyNlbHNlCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0gICB2dGtJZFR5cGUqIHB0cyA9IDA7 Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci1AQCAtMTEzLDYg KzEyNiw3IEBAIGJvb2wgU01EU19WdGtGYWNlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hO b2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcykKLSAgICAgewotICAgICAgIHB0c1tpXSA9 IG5vZGVzW2ldLT5nZXRWdGtJZCgpOwotICAgICB9Ci0rI2VuZGlmCi0gICBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKLSAgIHJldHVybiB0cnVlOwotIH0K LUBAIC0xNzMsNyArMTg3LDggQEAgY29uc3QgU01EU19NZXNoTm9kZSoKLSBTTURTX1Z0a0ZhY2U6 OkdldE5vZGUoY29uc3QgaW50IGluZCkgY29uc3QKLSB7Ci0gICB2dGtVbnN0cnVjdHVyZWRHcmlk KiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0tICB2 dGtJZFR5cGUgbnB0cywgKnB0czsKLSsgIHZ0a0lkVHlwZSBucHRzOwotKyAgdnRrSWRUeXBlUHRy IHB0czsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMoIHRoaXMtPm15VnRrSUQsIG5wdHMsIHB0cyAp OwotICAgcmV0dXJuIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+RmluZE5vZGVWdGso IHB0c1sgaW5kIF0pOwotIH0KLUBAIC0xODYsNyArMjAxLDggQEAgU01EU19WdGtGYWNlOjpHZXRO b2RlKGNvbnN0IGludCBpbmQpIGNvbnN0Ci0gaW50IFNNRFNfVnRrRmFjZTo6R2V0Tm9kZUluZGV4 KCBjb25zdCBTTURTX01lc2hOb2RlKiBub2RlICkgY29uc3QKLSB7Ci0gICB2dGtVbnN0cnVjdHVy ZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7 Ci0tICB2dGtJZFR5cGUgbnB0cywgKnB0czsKLSsgIHZ0a0lkVHlwZSBucHRzOwotKyAgdnRrSWRU eXBlUHRyIHB0czsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMoIHRoaXMtPm15VnRrSUQsIG5wdHMs IHB0cyApOwotICAgZm9yICggdnRrSWRUeXBlIGkgPSAwOyBpIDwgbnB0czsgKytpICkKLSAgICAg aWYgKCBwdHNbaV0gPT0gbm9kZS0+Z2V0VnRrSWQoKSApCi1AQCAtMjUxLDcgKzI2Nyw3IEBAIGJv b2wgU01EU19WdGtGYWNlOjpJc01lZGl1bU5vZGUoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSkg Y29uc3QKLSAgICAgcmV0dXJuIGZhbHNlOwotICAgfQotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwot LSAgdnRrSWRUeXBlKiBwdHMgPSAwOwotKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7Ci0gICBncmlk LT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci0gICB2dGtJZFR5cGUgbm9kZUlk ID0gbm9kZS0+Z2V0VnRrSWQoKTsKLSAgIGZvciAoaW50IHJhbmsgPSAwOyByYW5rIDwgbnB0czsg cmFuaysrKQotQEAgLTM1NiwxMSArMzcyLDE4IEBAIFNNRFNfTm9kZUl0ZXJhdG9yUHRyIFNNRFNf VnRrRmFjZTo6aW50ZXJsYWNlZE5vZGVzSXRlcmF0b3IoKSBjb25zdAotIHZvaWQgU01EU19WdGtG YWNlOjpDaGFuZ2VBcGV4KFNNRFNfTWVzaE5vZGUqIG5vZGUpCi0gewotICAgdnRrVW5zdHJ1Y3R1 cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgp OwotKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKyAgdnRrTmV3PHZ0a0lkTGlzdD4gY2VsbFBv aW50czsKLSsgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgY2VsbFBvaW50cy5HZXRQb2lu dGVyKCkpOwotKyAgZ3JpZC0+UmVtb3ZlUmVmZXJlbmNlVG9DZWxsKGNlbGxQb2ludHMtPkdldElk KDApLCBteVZ0a0lEKTsKLSsgIGNlbGxQb2ludHMtPlNldElkKDAsIG5vZGUtPmdldFZ0a0lkKCkp OwotKyNlbHNlCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0gICB2dGtJZFR5cGUqIHB0cyA9IDA7 Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci0gICBncmlkLT5S ZW1vdmVSZWZlcmVuY2VUb0NlbGwocHRzWzBdLCBteVZ0a0lEKTsKLSAgIHB0c1swXSA9IG5vZGUt PmdldFZ0a0lkKCk7Ci0rI2VuZGlmCi0gICBub2RlLT5BZGRJbnZlcnNlRWxlbWVudCh0aGlzKSwK LSAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgpOwotIH0K LWRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrVm9s dW1lLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a1ZvbHVt ZS5jcHAKLWluZGV4IDAxNWVkZjc1ZmQyLi4xOWViZDA3NDZjOCAxMDA2NDQKLS0tLSBhL3NyYy8z cmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a1ZvbHVtZS5jcHAKLSsrKyBiL3Ny Yy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a1ZvbHVtZS5jcHAKLUBAIC0x MzMsNiArMTMzLDE5IEBAIHZvaWQgU01EU19WdGtWb2x1bWU6OmluaXRQb2x5KGNvbnN0IHN0ZDo6 dmVjdG9yPHZ0a0lkVHlwZT4mIG5vZGVJZHMsCi0gYm9vbCBTTURTX1Z0a1ZvbHVtZTo6Q2hhbmdl Tm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTm9kZXMpCi0g ewotICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215 TWVzaElkXS0+Z2V0R3JpZCgpOwotKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKyAgdnRrTmV3 PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKLSsgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwg Y2VsbFBvaW50cy5HZXRQb2ludGVyKCkpOwotKyAgaWYgKG5iTm9kZXMgIT0gY2VsbFBvaW50cy0+ R2V0TnVtYmVyT2ZJZHMoKSkKLSsgICAgewotKyAgICAgIE1FU1NBR0UoIkNoYW5nZU5vZGVzIHBy b2JsZW06IG5vdCB0aGUgc2FtZSBudW1iZXIgb2Ygbm9kZXMgIiA8PCBjZWxsUG9pbnRzLT5HZXRO dW1iZXJPZklkcygpIDw8ICIgLT4gIiA8PCBuYk5vZGVzKTsKLSsgICAgICByZXR1cm4gZmFsc2U7 Ci0rICAgIH0KLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJOb2RlczsgaSsrKQotKyAgICB7Ci0r ICAgICAgY2VsbFBvaW50cy0+U2V0SWQoaSwgbm9kZXNbaV0tPmdldFZ0a0lkKCkpOwotKyAgICB9 Ci0rI2Vsc2UKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLSAgIHZ0a0lkVHlwZSogcHRzID0gMDsK LSAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKLUBAIC0xNDUsNiAr MTU4LDcgQEAgYm9vbCBTTURTX1Z0a1ZvbHVtZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNo Tm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTm9kZXMKLSAgICAgewotICAgICAgIHB0c1tpXSA9 IG5vZGVzW2ldLT5nZXRWdGtJZCgpOwotICAgICB9Ci0rI2VuZGlmCi0gICBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKLSAgIHJldHVybiB0cnVlOwotIH0K LUBAIC0yMDcsNyArMjIxLDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYkZhY2VzKCkgY29uc3QK LSAgICAgY2FzZSBWVEtfUE9MWUhFRFJPTjoKLSAgICAgICB7Ci0gICAgICAgICB2dGtJZFR5cGUg bkZhY2VzID0gMDsKLS0gICAgICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOwotKyAgICAgICAgdnRr SWRUeXBlUHRyIHB0SWRzID0gMDsKLSAgICAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+ bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7Ci0gICAgICAgICBuYkZhY2VzID0gbkZhY2VzOwotICAg ICAgICAgYnJlYWs7Ci1AQCAtMjM2LDcgKzI1MCw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJO b2RlcygpIGNvbnN0Ci0gICBlbHNlCi0gICAgIHsKLSAgICAgICB2dGtJZFR5cGUgbkZhY2VzID0g MDsKLS0gICAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKLSsgICAgICB2dGtJZFR5cGVQdHIgcHRJ ZHMgPSAwOwotICAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2Vz LCBwdElkcyk7Ci0gICAgICAgaW50IGlkID0gMDsKLSAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IG5GYWNlczsgaSsrKQotQEAgLTI3Niw3ICsyOTAsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6Ok5i RWRnZXMoKSBjb25zdAotICAgICBjYXNlIFZUS19QT0xZSEVEUk9OOgotICAgICAgIHsKLSAgICAg ICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICAgICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7 Ci0rICAgICAgICB2dGtJZFR5cGVQdHIgcHRJZHMgPSAwOwotICAgICAgICAgZ3JpZC0+R2V0RmFj ZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgICAgIG5iRWRnZXMg PSAwOwotICAgICAgICAgaW50IGlkID0gMDsKLUBAIC0zMTIsNyArMzI2LDcgQEAgaW50IFNNRFNf VnRrVm9sdW1lOjpOYkZhY2VOb2Rlcyhjb25zdCBpbnQgZmFjZV9pbmQpIGNvbnN0Ci0gICBpZiAo YVZ0a1R5cGUgPT0gVlRLX1BPTFlIRURST04pCi0gICAgIHsKLSAgICAgICB2dGtJZFR5cGUgbkZh Y2VzID0gMDsKLS0gICAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKLSsgICAgICB2dGtJZFR5cGVQ dHIgcHRJZHMgPSAwOwotICAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwg bkZhY2VzLCBwdElkcyk7Ci0gICAgICAgaW50IGlkID0gMDsKLSAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IG5GYWNlczsgaSsrKQotQEAgLTM0Miw3ICszNTYsNyBAQCBjb25zdCBTTURTX01lc2hO b2RlKiBTTURTX1Z0a1ZvbHVtZTo6R2V0RmFjZU5vZGUoY29uc3QgaW50IGZhY2VfaW5kLCBjb25z dCBpbnQgbgotICAgaWYgKGFWdGtUeXBlID09IFZUS19QT0xZSEVEUk9OKQotICAgICB7Ci0gICAg ICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7Ci0tICAgICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7Ci0r ICAgICAgdnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKLSAgICAgICBncmlkLT5HZXRGYWNlU3RyZWFt KHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOwotICAgICAgIGludCBpZCA9IDA7Ci0gICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKLUBAIC0zNzIsNyArMzg2LDcgQEAg c3RkOjp2ZWN0b3I8aW50PiBTTURTX1Z0a1ZvbHVtZTo6R2V0UXVhbnRpdGllcygpIGNvbnN0Ci0g ICBpZiAoYVZ0a1R5cGUgPT0gVlRLX1BPTFlIRURST04pCi0gICAgIHsKLSAgICAgICB2dGtJZFR5 cGUgbkZhY2VzID0gMDsKLS0gICAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKLSsgICAgICB2dGtJ ZFR5cGVQdHIgcHRJZHMgPSAwOwotICAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlW dGtJRCwgbkZhY2VzLCBwdElkcyk7Ci0gICAgICAgaW50IGlkID0gMDsKLSAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IG5GYWNlczsgaSsrKQotQEAgLTQzMCw3ICs0NDQsNyBAQCBjb25zdCBTTURT X01lc2hOb2RlKiBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZShjb25zdCBpbnQgaW5kKSBjb25zdAot ICAgaWYgKCBhVnRrVHlwZSA9PSBWVEtfUE9MWUhFRFJPTikKLSAgIHsKLSAgICAgdnRrSWRUeXBl IG5GYWNlcyA9IDA7Ci0tICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOwotKyAgICB2dGtJZFR5cGVQ dHIgcHRJZHMgPSAwOwotICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5G YWNlcywgcHRJZHMpOwotICAgICBpbnQgaWQgPSAwLCBuYlBvaW50cyA9IDA7Ci0gICAgIGZvciAo aW50IGkgPSAwOyBpIDwgbkZhY2VzOyBpKyspCi1AQCAtNDQzLDcgKzQ1Nyw4IEBAIGNvbnN0IFNN RFNfTWVzaE5vZGUqIFNNRFNfVnRrVm9sdW1lOjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0 Ci0gICAgIH0KLSAgICAgcmV0dXJuIDA7Ci0gICB9Ci0tICB2dGtJZFR5cGUgbnB0cywgKnB0czsK LSsgIHZ0a0lkVHlwZSBucHRzOwotKyAgdnRrSWRUeXBlUHRyIHB0czsKLSAgIGdyaWQtPkdldENl bGxQb2ludHMoIHRoaXMtPm15VnRrSUQsIG5wdHMsIHB0cyApOwotICAgY29uc3Qgc3RkOjp2ZWN0 b3I8aW50PiYgaW50ZXJsYWNlID0gU01EU19NZXNoQ2VsbDo6ZnJvbVZ0a09yZGVyKCBWVEtDZWxs VHlwZSggYVZ0a1R5cGUgKSk7Ci0gICByZXR1cm4gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNo SWRdLT5GaW5kTm9kZVZ0ayggcHRzWyBpbnRlcmxhY2UuZW1wdHkoKSA/IGluZCA6IGludGVybGFj ZVtpbmRdXSApOwotQEAgLTQ2MCw3ICs0NzUsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6OkdldE5v ZGVJbmRleCggY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSApIGNvbnN0Ci0gICBpZiAoIGFWdGtU eXBlID09IFZUS19QT0xZSEVEUk9OKQotICAgewotICAgICB2dGtJZFR5cGUgbkZhY2VzID0gMDsK LS0gICAgdnRrSWRUeXBlKiBwdElkcyA9IDA7Ci0rICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7 Ci0gICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7 Ci0gICAgIGludCBpZCA9IDA7Ci0gICAgIGZvciAoaW50IGlGID0gMDsgaUYgPCBuRmFjZXM7IGlG KyspCi1AQCAtNDczLDcgKzQ4OCw4IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZUluZGV4 KCBjb25zdCBTTURTX01lc2hOb2RlKiBub2RlICkgY29uc3QKLSAgICAgfQotICAgICByZXR1cm4g LTE7Ci0gICB9Ci0tICB2dGtJZFR5cGUgbnB0cywgKnB0czsKLSsgIHZ0a0lkVHlwZSBucHRzOwot KyAgdnRrSWRUeXBlUHRyIHB0czsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMoIHRoaXMtPm15VnRr SUQsIG5wdHMsIHB0cyApOwotICAgZm9yICggdnRrSWRUeXBlIGkgPSAwOyBpIDwgbnB0czsgKytp ICkKLSAgICAgaWYgKCBwdHNbaV0gPT0gbm9kZS0+Z2V0VnRrSWQoKSApCi1AQCAtNTM0LDcgKzU1 MCw3IEBAIGJvb2wgU01EU19WdGtWb2x1bWU6OklzTWVkaXVtTm9kZShjb25zdCBTTURTX01lc2hO b2RlKiBub2RlKSBjb25zdAotICAgICAgIHJldHVybiBmYWxzZTsKLSAgIH0KLSAgIHZ0a0lkVHlw ZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSogcHRzID0gMDsKLSsgIHZ0a0lkVHlwZVB0ciBwdHMg PSAwOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotICAgdnRr SWRUeXBlIG5vZGVJZCA9IG5vZGUtPmdldFZ0a0lkKCk7Ci0gICBmb3IgKGludCByYW5rID0gMDsg cmFuayA8IG5wdHM7IHJhbmsrKykKLWRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNo L3NyYy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9yLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVz aC9zcmMvU01FU0gvU01FU0hfTWVzaEVkaXRvci5jcHAKLWluZGV4IGZjZDA0NGIwMGYyLi5mNTRj MjRmODYxOCAxMDA2NDQKLS0tLSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01FU0gv U01FU0hfTWVzaEVkaXRvci5jcHAKLSsrKyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMv U01FU0gvU01FU0hfTWVzaEVkaXRvci5jcHAKLUBAIC0xMTM0OCw3ICsxMTM0OCw3IEBAIGJvb2wg U01FU0hfTWVzaEVkaXRvcjo6RG91YmxlTm9kZXNPbkdyb3VwQm91bmRhcmllcyggY29uc3Qgc3Rk Ojp2ZWN0b3I8VElEU29ydGVkCi0gICAgICAgICAgICAgewotICAgICAgICAgICAgICAgaW50IG9s ZElkID0gKml0bjsKLSAgICAgICAgICAgICAgIC8vTUVTU0FHRSgiICAgICBub2RlICIgPDwgb2xk SWQpOwotLSAgICAgICAgICAgICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBncmlkLT5HZXRDZWxs TGlua3MoKS0+R2V0TGluayhvbGRJZCk7Ci0rICAgICAgICAgICAgICB2dGtDZWxsTGlua3M6Okxp bmsgbCA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KGdyaWQtPkdldENlbGxMaW5rcygpKS0+ R2V0TGluayhvbGRJZCk7Ci0gICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bC5uY2VsbHM7 IGkrKykKLSAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgIGludCB2dGtJZCA9 IGwuY2VsbHNbaV07Ci1AQCAtMTE1MjcsNyArMTE1MjcsNyBAQCBib29sIFNNRVNIX01lc2hFZGl0 b3I6OkRvdWJsZU5vZGVzT25Hcm91cEJvdW5kYXJpZXMoIGNvbnN0IHN0ZDo6dmVjdG9yPFRJRFNv cnRlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTUVTU0FH RSgiICBkb21haW4gIiA8PCBpZG9tIDw8ICIgdm9sdW1lICIgPDwgZWxlbS0+R2V0SUQoKSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHZhbHVlc1sz XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dGtJZFR5cGUg bnB0cyA9IDA7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnRr SWRUeXBlKiBwdHMgPSAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZ0a0lkVHlwZVB0ciBwdHMgPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdyaWQtPkdldENlbGxQb2ludHModnRrVm9sSWRzW2l2b2xdLCBucHRzLCBw dHMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNNRFNfVnRr Vm9sdW1lOjpncmF2aXR5Q2VudGVyKGdyaWQsIHB0cywgbnB0cywgdmFsdWVzKTsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0wKQotQEAgLTExNzA4 LDcgKzExNzA4LDcgQEAgYm9vbCBTTUVTSF9NZXNoRWRpdG9yOjpEb3VibGVOb2Rlc09uR3JvdXBC b3VuZGFyaWVzKCBjb25zdCBzdGQ6OnZlY3RvcjxUSURTb3J0ZWQKLSAgICAgICAgIHsKLSAgICAg ICAgICAgaW50IG9sZElkID0gaXRub2QtPmZpcnN0OwotICAgICAgICAgICAvL01FU1NBR0UoIiAg ICAgbm9kZSAiIDw8IG9sZElkKTsKLS0gICAgICAgICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBn cmlkLT5HZXRDZWxsTGlua3MoKS0+R2V0TGluayhvbGRJZCk7Ci0rICAgICAgICAgIHZ0a0NlbGxM aW5rczo6TGluayBsID0gc3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4oZ3JpZC0+R2V0Q2VsbExp bmtzKCkpLT5HZXRMaW5rKG9sZElkKTsKLSAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBs Lm5jZWxsczsgaSsrKQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIGludCB2dGtJZCA9 IGwuY2VsbHNbaV07Ci1AQCAtMTIxNjUsNyArMTIxNjUsNyBAQCB2b2lkIFNNRVNIX01lc2hFZGl0 b3I6OkNyZWF0ZUhvbGVTa2luKGRvdWJsZSByYWRpdXMsCi0gICAgICAgICAgIE1FU1NBR0UoInZv bHVtZSB0byBjaGVjaywgIHZ0a0lkICIgPDwgdnRrSWQgPDwgIiBzbWRzSWQgIiA8PCBtZXNoRFMt PmZyb21WdGtUb1NtZHModnRrSWQpKTsKLSAgICAgICAgICAgYm9vbCB2b2xJbnNpZGUgPSBmYWxz ZTsKLSAgICAgICAgICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgICAgICAgICB2dGtJZFR5cGUq IHB0cyA9IDA7Ci0rICAgICAgICAgIHZ0a0lkVHlwZVB0ciBwdHMgPSAwOwotICAgICAgICAgICBn cmlkLT5HZXRDZWxsUG9pbnRzKHZ0a0lkLCBucHRzLCBwdHMpOwotICAgICAgICAgICBmb3IgKGlu dCBpPTA7IGk8bnB0czsgaSsrKQotICAgICAgICAgICAgIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZnJlZWNhZC9wYXRjaGVzLzE1Mi1jbWFrZS12dGs5LnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3Bh dGNoZXMvMTUyLWNtYWtlLXZ0azkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDdhYmZmY2Y1N2U4NC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVz LzE1Mi1jbWFrZS12dGs5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLS0t IGEvY01ha2UvRnJlZUNBRF9IZWxwZXJzL1NldHVwU2Fsb21lU01FU0guY21ha2UJMjAyMC0xMS0y NiAxNTo1OToyNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBiL2NNYWtlL0ZyZWVDQURfSGVscGVycy9T ZXR1cFNhbG9tZVNNRVNILmNtYWtlCTIwMjAtMTEtMjYgMjM6MDk6MTIuNzc4MjYyNjM2ICswMTAw Ci1AQCAtMTEsNiArMTEsOCBAQAotICAgICAgICAgc2V0KFNNRVNIX1ZFUlNJT05fVFdFQUsgMCkK LSAKLSAgICAgICAgICNpZiB3ZSB1c2Ugc21lc2ggd2UgZGVmaW5pdGVseSBhbHNvIG5lZWQgdnRr LCBubyBtYXR0ZXIgb2YgZXh0ZXJuYWwgb3IgaW50ZXJuYWwgc21lc2gKLSsgICAgICAgIGZpbmRf cGFja2FnZShWVEsgUkVRVUlSRUQgTk9fTU9EVUxFKQotKyAgICAgICAgaWYoJHtWVEtfTUFKT1Jf VkVSU0lPTn0gTEVTUyA5KQotICAgICAgICAgc2V0IChWVEtfQ09NUE9ORU5UUwotICAgICAgICAg ICAgIHZ0a0NvbW1vbkNvcmUKLSAgICAgICAgICAgICB2dGtDb21tb25EYXRhTW9kZWwKLUBAIC0y MywxOCArMjUsMzcgQEAKLSAgICAgICAgICAgICB2dGtGaWx0ZXJzU291cmNlcwotICAgICAgICAg ICAgIHZ0a0ZpbHRlcnNHZW9tZXRyeQotICAgICAgICAgKQotLQotLSAgICAgICAgIyBjaGVjayB3 aGljaCBtb2R1bGVzIGFyZSBhdmFpbGFibGUKLS0gICAgICAgIGlmKFVOSVggT1IgV0lOMzIpCi0g ICAgICAgICAgICAgZmluZF9wYWNrYWdlKFZUSyBDT01QT05FTlRTIHZ0a0NvbW1vbkNvcmUgUkVR VUlSRUQgTk9fTU9EVUxFKQotICAgICAgICAgICAgIGxpc3QoQVBQRU5EIFZUS19DT01QT05FTlRT IHZ0a0lPTVBJUGFyYWxsZWwgdnRrUGFyYWxsZWxNUEkgdnRraGRmNSB2dGtGaWx0ZXJzUGFyYWxs ZWxESVkyIHZ0a1JlbmRlcmluZ0NvcmUgdnRrSW50ZXJhY3Rpb25TdHlsZSB2dGtSZW5kZXJpbmdG cmVlVHlwZSB2dGtSZW5kZXJpbmdPcGVuR0wyKQotKyAgICAgICAgZWxzZSgpCi0rICAgICAgICAg ICAgIyBWVEsgOSBjaGFuZ2VkIGl0cyBjb21wb25lbnQgbmFtZXMKLSsgICAgICAgICAgICBzZXQg KFZUS19DT01QT05FTlRTCi0rICAgICAgICAgICAgICAgIENvbW1vbkNvcmUKLSsgICAgICAgICAg ICAgICAgQ29tbW9uRGF0YU1vZGVsCi0rICAgICAgICAgICAgICAgIEZpbHRlcnNWZXJkaWN0Ci0r ICAgICAgICAgICAgICAgIElPWE1MCi0rICAgICAgICAgICAgICAgIEZpbHRlcnNDb3JlCi0rICAg ICAgICAgICAgICAgIEZpbHRlcnNHZW5lcmFsCi0rICAgICAgICAgICAgICAgIElPTGVnYWN5Ci0r ICAgICAgICAgICAgICAgIEZpbHRlcnNFeHRyYWN0aW9uCi0rICAgICAgICAgICAgICAgIEZpbHRl cnNTb3VyY2VzCi0rICAgICAgICAgICAgICAgIEZpbHRlcnNHZW9tZXRyeQotKyAgICAgICAgICAg ICkKLSsgICAgICAgICAgICBmaW5kX3BhY2thZ2UoVlRLIENPTVBPTkVOVFMgQ29tbW9uQ29yZSBS RVFVSVJFRCBOT19NT0RVTEUpCi0rICAgICAgICAgICAgbGlzdChBUFBFTkQgVlRLX0NPTVBPTkVO VFMgSU9NUElQYXJhbGxlbCBQYXJhbGxlbE1QSSBoZGY1IEZpbHRlcnNQYXJhbGxlbERJWTIgUmVu ZGVyaW5nQ29yZSBJbnRlcmFjdGlvblN0eWxlIFJlbmRlcmluZ0ZyZWVUeXBlIFJlbmRlcmluZ09w ZW5HTDIpCi0rICAgICAgICBlbmRpZigpCi0rCi0rICAgICAgICAjIGNoZWNrIHdoaWNoIG1vZHVs ZXMgYXJlIGF2YWlsYWJsZQotICAgICAgICAgICAgIGZvcmVhY2goX21vZHVsZSAke1ZUS19DT01Q T05FTlRTfSkKLSsgICAgICAgICAgICBpZigke1ZUS19NQUpPUl9WRVJTSU9OfSBMRVNTIDkpCi0g ICAgICAgICAgICAgICAgIGxpc3QgKEZJTkQgVlRLX01PRFVMRVNfRU5BQkxFRCAke19tb2R1bGV9 IF9pbmRleCkKLSsgICAgICAgICAgICBlbHNlKCkKLSsgICAgICAgICAgICAgICAgbGlzdCAoRklO RCBWVEtfQVZBSUxBQkxFX0NPTVBPTkVOVFMgJHtfbW9kdWxlfSBfaW5kZXgpCi0rICAgICAgICAg ICAgZW5kaWYoKQotICAgICAgICAgICAgICAgICBpZiAoJHtfaW5kZXh9IEdSRUFURVIgLTEpCi0g ICAgICAgICAgICAgICAgICAgICBsaXN0KEFQUEVORCBBVkFJTEFCTEVfVlRLX0NPTVBPTkVOVFMg JHtfbW9kdWxlfSkKLSAgICAgICAgICAgICAgICAgZW5kaWYoKQotICAgICAgICAgICAgIGVuZGZv cmVhY2goKQotLSAgICAgICAgZW5kaWYoKQotIAotICAgICAgICAgIyBkb24ndCBjaGVjayBWRVJT SU9OIDYgYXMgdGhpcyB3b3VsZCBleGNsdWRlIFZFUlNJT04gNwotICAgICAgICAgaWYoQVZBSUxB QkxFX1ZUS19DT01QT05FTlRTKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3RlbXBsYXRl IGIvc3JjcGtncy9mcmVlY2FkL3RlbXBsYXRlCmluZGV4IDFlMmFlYzAyNGZkNy4uYzY1ODdhZTgw OWFjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9m cmVlY2FkL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZnJl ZWNhZCcKIHBrZ25hbWU9ZnJlZWNhZAotdmVyc2lvbj0wLjE5LjQKK3ZlcnNpb249MC4yMAogcmV2 aXNpb249MQogd3Jrc3JjPSJGcmVlQ0FELSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQpA QCAtMzYsNyArMzYsNyBAQCBtYWludGFpbmVyPSJ5b3BpdG8gPHBpZXJyZS5ib3VyZ2luQGZyZWUu ZnI+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9mcmVl Y2Fkd2ViLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9GcmVlQ0FEL0ZyZWVD QUQvYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWU0MGExYzM0Mzk1NmUxM2M1 NmNjODU3OGQwMjVhZTgzZDY4ZDlkMjBhY2RhMTczMjk1M2JjOGEzODgzZTk3MjIKK2NoZWNrc3Vt PWM0ZDljZTc4MmQzZGEwZWRmYTE2ZDYyMThkYjRjZTg2MTNlMzQ2MTI0ZWU0N2IzZmU2YTZkYWU0 MGMwYTYxZDkKIAogaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gbXVzbCBdOyB0aGVuCiAJbWFr ZWRlcGVuZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCg== --===============6055712589125643092==--