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 1641 invoked from network); 21 Mar 2021 17:44:59 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 21 Mar 2021 17:44:59 -0000 Content-Type: multipart/mixed; boundary="===============9156964498527003098==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_freecad=3A_update_to_0=2E19=2E1?= To: ml@inbox.vuxu.org From: yopito Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 21 Mar 2021 18:44:57 +0100 List-Id: Message-ID: <20210321174457.julthtG1wNEziXd-1Srmi5VJGe_KXLr3Xeh6MtOfuIs@z> GitHub notification mails are now in MIME to allow UTF8. --===============9156964498527003098== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgeW9waXRvIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS95b3Bp dG8vdm9pZC1wYWNrYWdlcyBmcmVlY2FkLjAuMTkKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI5NTgwCgpbV0lQXSBmcmVlY2FkOiB1cGRhdGUgdG8gMC4x OS4xClRPRE8gbGlzdDoNCiogWyBdIHdhaXQgZm9yIG9mZmljaWFsIGFubm91bmNlbWVudA0KKiBb IF0gRW1iZWRkZWQgaGVscCBkb2VzIG5vdCBsYXVuY2ggKHZpYSBtZW51IGhlbHAgPiBoZWxwIG9y IEYxIHNob3J0Y3V0KQ0KDQpTdXBlcnNlZWRzICMyOTQ2NiAKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yOTU4MC5wYXRj aCBpcyBhdHRhY2hlZA== --===============9156964498527003098== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-freecad.0.19-29580.patch" RnJvbSAzNDcxMDM3OGU3N2U5MWVjNWIwODM3ZDA4MzVmMDdiZDM1ZTE5ZDVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5b3BpdG8gPHBpZXJyZS5ib3VyZ2luQGZyZWUuZnI+CkRhdGU6 IFdlZCwgMTcgTWFyIDIwMjEgMTk6NTA6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIXSBmcmVlY2Fk OiB1cGRhdGUgdG8gMC4xOS4xCgpsYXVuY2ggb2ZmbGluZSBoZWxwIGlzIGJyb2tlbiwgYWx0aG91 Z2ggcWhjL3FjaCBmaWxlcyBhcmUgZmluZS4KLS0tCiBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8w MDEtcHl0aG9uMy5wYXRjaCAgICAgfCAgMTEgLQogc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDAy LWV4ZWNpbmZvLnBhdGNoICAgIHwgIDEwICstCiAuLi4vcGF0Y2hlcy8wMTAtc2Fsb21lc21lc2gt ZXhlY2luZm8ucGF0Y2ggICAgfCAgMzAgKysKIC4uLi9wYXRjaGVzLzAyMC1uYW1lc3BhY2UtbWlz c2luZy1zdGQucGF0Y2ggICB8IDEyNyAtLS0tLS0tCiBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8w OTAtcHkzOC5wYXRjaCAgICAgICAgfCAgMjIgLS0KIHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzA5 MS1weTM5LnBhdGNoICAgICAgICB8IDE3NCAtLS0tLS0tLS0tCiAuLi4wMC1kZXRlY3Qtc2hpYm9r ZW4yLWFuZC1weXNpZGUyLTUuMTQucGF0Y2ggfCAgMzMgLS0KIC4uLi8xMDEtcHlzaWRlMi10b29s LTUuMTQtc3VwcG9ydC5wYXRjaCAgICAgICB8ICA2NyAtLS0tCiBzcmNwa2dzL2ZyZWVjYWQvcGF0 Y2hlcy8xMDItcXQ1LTUuMTUuMC5wYXRjaCAgfCAgMTQgLQogLi4uL3BhdGNoZXMvMTAzLWZpbmQt Y29pbjN2NC1kb2MucGF0Y2ggICAgICAgIHwgIDUwIC0tLQogc3JjcGtncy9mcmVlY2FkL3BhdGNo ZXMvMTUwLXZ0azkucGF0Y2ggICAgICAgIHwgMzI2ICsrKysrKysrKystLS0tLS0tLQogLi4uL2Zy ZWVjYWQvcGF0Y2hlcy8xNTEtcHl0aG9uLXdhcm5pbmcucGF0Y2ggIHwgIDM5IC0tLQogc3JjcGtn cy9mcmVlY2FkL3BhdGNoZXMvMTUyLWNtYWtlLXZ0azkucGF0Y2ggIHwgIDUzICsrKwogc3JjcGtn cy9mcmVlY2FkL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDI4ICstCiAxNCBmaWxl cyBjaGFuZ2VkLCAyODQgaW5zZXJ0aW9ucygrKSwgNzAwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMS1weXRob24zLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDEwLXNhbG9tZXNtZXNoLWV4 ZWNpbmZvLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMv MDIwLW5hbWVzcGFjZS1taXNzaW5nLXN0ZC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZnJlZWNhZC9wYXRjaGVzLzA5MC1weTM4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9mcmVlY2FkL3BhdGNoZXMvMDkxLXB5MzkucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDAtZGV0ZWN0LXNoaWJva2VuMi1hbmQtcHlzaWRlMi01 LjE0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTAx LXB5c2lkZTItdG9vbC01LjE0LXN1cHBvcnQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDItcXQ1LTUuMTUuMC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzEwMy1maW5kLWNvaW4zdjQtZG9jLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUxLXB5dGhvbi13YXJu aW5nLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUy LWNtYWtlLXZ0azkucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8w MDEtcHl0aG9uMy5wYXRjaCBiL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMS1weXRob24zLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDk5NzhhZGNmMzcuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMDEtcHl0aG9uMy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBDTWFrZUxpc3RzLnR4dAotKysrIENNYWtl TGlzdHMudHh0Ci1AQCAtNDQ1LDcgKzQ0NSw3IEBACi0gCi0gIyBodHRwOi8vYnVncy5kZWJpYW4u b3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9Njc3NTk4Ci0gIyBBY2NlcHRhYmxlIHZlcnNp b25zIG9mIFB5dGhvbgotLXNldChQeXRob25fQURESVRJT05BTF9WRVJTSU9OUyAiMi43IikKLStz ZXQoUHl0aG9uX0FERElUSU9OQUxfVkVSU0lPTlMgIjIuNyAzLjYiKQotIAotICMgRm9yIGJ1aWxk aW5nIG9uIE9TIFgKLSBpZigke0NNQUtFX1NZU1RFTV9OQU1FfSBNQVRDSEVTICJEYXJ3aW4iKQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDAyLWV4ZWNpbmZvLnBhdGNoIGIv c3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDAyLWV4ZWNpbmZvLnBhdGNoCmluZGV4IDlmOWQ3OTdk MDBmMi4uNDcxZTA2ZTY0NTNhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8w MDItZXhlY2luZm8ucGF0Y2gKKysrIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDAyLWV4ZWNp bmZvLnBhdGNoCkBAIC0xLDYgKzEsNiBAQAotLS0tIHNyYy9BcHAvQXBwbGljYXRpb24uY3BwLm9y aWcJMjAxOS0wMy0wOCAxODo1NjoxNi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzcmMvQXBwL0FwcGxp Y2F0aW9uLmNwcAkyMDE5LTAzLTEzIDIxOjM2OjM4Ljg3MzU4NzUzNCArMDEwMAotQEAgLTExNjMs NyArMTE2Myw5IEBACistLS0gc3JjL0FwcC9BcHBsaWNhdGlvbi5jcHAuT1JJRwkyMDIwLTAxLTIy IDIzOjI3OjQyLjcwOTI3MzA4NyArMDEwMAorKysrIHNyYy9BcHAvQXBwbGljYXRpb24uY3BwCTIw MjAtMDEtMjIgMjM6NTA6NTMuOTE1MDc1OTU1ICswMTAwCitAQCAtMTQ4NSw3ICsxNDg1LDkgQEAK ICAjZW5kaWYNCiAgDQogICNpZiBkZWZpbmVkKEZDX09TX0xJTlVYKQ0KQEAgLTEwLDcgKzEwLDcg QEAKICAjaW5jbHVkZSA8ZGxmY24uaD4NCiAgI2luY2x1ZGUgPGN4eGFiaS5oPg0KICANCi1AQCAt MTE3NSw2ICsxMTc3LDcgQEAKK0BAIC0xNDk3LDYgKzE0OTksNyBAQAogIC8vIFRoaXMgZnVuY3Rp b24gcHJvZHVjZXMgYSBzdGFjayBiYWNrdHJhY2Ugd2l0aCBkZW1hbmdsZWQgZnVuY3Rpb24gJiBt ZXRob2QgbmFtZXMuDQogIHZvaWQgcHJpbnRCYWNrdHJhY2Uoc2l6ZV90IHNraXA9MCkNCiAgew0K QEAgLTE4LDcgKzE4LDcgQEAKICAgICAgdm9pZCAqY2FsbHN0YWNrWzEyOF07DQogICAgICBzaXpl X3Qgbk1heEZyYW1lcyA9IHNpemVvZihjYWxsc3RhY2spIC8gc2l6ZW9mKGNhbGxzdGFja1swXSk7 DQogICAgICBzaXplX3QgbkZyYW1lcyA9IGJhY2t0cmFjZShjYWxsc3RhY2ssIG5NYXhGcmFtZXMp Ow0KLUBAIC0xMjA1LDYgKzEyMDgsOSBAQAorQEAgLTE1MjcsNiArMTUzMCw5IEBACiAgICAgIH0N CiAgDQogICAgICBmcmVlKHN5bWJvbHMpOw0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9w YXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5mby5wYXRjaCBiL3NyY3BrZ3MvZnJlZWNhZC9w YXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjJiNDY2MTZhZDdhMgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAxMC1zYWxvbWVzbWVzaC1leGVjaW5mby5wYXRjaApAQCAt MCwwICsxLDMwIEBACistLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9Ecml2ZXJTVEwv QmFzaWNzX1V0aWxzLmNwcAorKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvRHJpdmVy U1RML0Jhc2ljc19VdGlscy5jcHAKK0BAIC0yOSw3ICsyOSw5IEBACisgI2lmbmRlZiBXSU4zMgor ICNpbmNsdWRlIDx1bmlzdGQuaD4KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKysjaWZkZWYgX19H TElCQ19fCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CisrI2VuZGlmCisgI2VuZGlmCisgCisgCitA QCAtMTA5LDYgKzExMSw3IEBACisgI2lmbmRlZiBXSU4zMgorICAgdm9pZCBwcmludF90cmFjZWJh Y2soKQorICAgeworKyNpZmRlZiBfX0dMSUJDX18KKyAgICAgdm9pZCAqYXJyYXlbNTBdOworICAg ICBzaXplX3Qgc2l6ZTsKKyAgICAgY2hhciAqKnN0cmluZ3M7CitAQCAtMTIzLDYgKzEyNiw5IEBA CisgICAgICAgfQorIAorICAgICBmcmVlIChzdHJpbmdzKTsKKysjZWxzZSAgICAgCisrICAgc3Rk OjpjZXJyIDw8ICJzb3JyeSwgbm8gYmFja3RyYWNlIG9uIG11c2wgbGliYyI7CisrI2VuZGlmCisg ICB9CisgI2Vsc2UKKyAgICNpZiAoX01TQ19WRVIgPj0gMTQwMCkgLy8gVmlzdWFsIFN0dWRpbyAy MDA1CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMjAtbmFtZXNwYWNlLW1p c3Npbmctc3RkLnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDIwLW5hbWVzcGFjZS1t aXNzaW5nLXN0ZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIwMzNjZDVh ZmI0Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDIwLW5hbWVz cGFjZS1taXNzaW5nLXN0ZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyNyArMCwwIEBACi0j IHJlYXNvbjogZml4IGJ1aWxkIHdpdGggZ2NjOQotIyB1cHN0cmVhbTogeWVzCi0KLWRpZmYgLS1n aXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9Sbi5oIHNyYy8zcmRQYXJ0eS9zYWxvbWVz bWVzaC9pbmMvUm4uaAotaW5kZXggNmVjODcxZDkzLi5lOTJkMjI3NWEgMTAwNjQ0Ci0tLS0gc3Jj LzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9Sbi5oCi0rKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNt ZXNoL2luYy9Sbi5oCi1AQCAtMTgwLDEyICsxODAsMTIgQEAgY2xhc3MgUjQ6IHB1YmxpYyBSMwot IHsKLSAgIGZyaWVuZCBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yIDw8KHN0ZDo6b3N0cmVhbSYgZiwg Y29uc3QgUjQgJiBQICkKLSAgIHsgZiA8PCBQLnggPDwgJyAnIDw8IFAueSA8PCAnICcgPDwgUC56 IDw8ICcgJyA8PCBQLm9tZWdhOyByZXR1cm4gZjsgfQotLSAgZnJpZW5kIGlzdHJlYW0mIG9wZXJh dG9yID4+KGlzdHJlYW0mIGYsICBSNCAmIFApCi0rICBmcmllbmQgc3RkOjppc3RyZWFtJiBvcGVy YXRvciA+PihzdGQ6OmlzdHJlYW0mIGYsICBSNCAmIFApCi0gICB7IGYgPj4gUC54ID4+ICBQLnkg Pj4gIFAueiA+PiBQLm9tZWdhIDsgcmV0dXJuIGY7IH0KLSAKLSAgIGZyaWVuZCBzdGQ6Om9zdHJl YW0mIG9wZXJhdG9yIDw8KHN0ZDo6b3N0cmVhbSYgZiwgY29uc3QgUjQgKiBQICkKLSAgIHsgZiA8 PCBQLT54IDw8ICcgJyA8PCBQLT55IDw8ICcgJyA8PCBQLT56IDw8ICcgJyA8PCBQLT5vbWVnYTsg cmV0dXJuIGY7IH0KLS0gIGZyaWVuZCBpc3RyZWFtJiBvcGVyYXRvciA+Pihpc3RyZWFtJiBmLCAg UjQgKiBQKQotKyAgZnJpZW5kIHN0ZDo6aXN0cmVhbSYgb3BlcmF0b3IgPj4oc3RkOjppc3RyZWFt JiBmLCAgUjQgKiBQKQotICAgeyBmID4+IFAtPnggPj4gIFAtPnkgPj4gIFAtPnogPj4gUC0+b21l Z2EgOyByZXR1cm4gZjsgfQotIAotIHB1YmxpYzogIAotCi0KLWRpZmYgLS1naXQgc3JjL01vZC9E cmF3aW5nL0FwcC9EcmF3aW5nRXhwb3J0LmNwcCBzcmMvTW9kL0RyYXdpbmcvQXBwL0RyYXdpbmdF eHBvcnQuY3BwCi1pbmRleCAwYzNjMjMyMzEuLjU1MGIxMmMyNSAxMDA2NDQKLS0tLSBzcmMvTW9k L0RyYXdpbmcvQXBwL0RyYXdpbmdFeHBvcnQuY3BwCi0rKysgc3JjL01vZC9EcmF3aW5nL0FwcC9E cmF3aW5nRXhwb3J0LmNwcAotQEAgLTgxLDYgKzgxLDcgQEAKLSAjaW5jbHVkZSA8QmFzZS9WZWN0 b3IzRC5oPg0KLSANCi0gdXNpbmcgbmFtZXNwYWNlIERyYXdpbmc7DQotK3VzaW5nIG5hbWVzcGFj ZSBzdGQ7DQotIA0KLSBUb3BvRFNfRWRnZSBEcmF3aW5nT3V0cHV0Ojphc0NpcmNsZShjb25zdCBC UmVwQWRhcHRvcl9DdXJ2ZSYgYykgY29uc3QNCi0gew0KLWRpZmYgLS1naXQgc3JjL01vZC9QYXJ0 L0FwcC9HZW9tZXRyeTJkLmNwcCBzcmMvTW9kL1BhcnQvQXBwL0dlb21ldHJ5MmQuY3BwCi1pbmRl eCBmYjFkZTkwOWMuLjk3OTQ2NTUzMyAxMDA2NDQKLS0tLSBzcmMvTW9kL1BhcnQvQXBwL0dlb21l dHJ5MmQuY3BwCi0rKysgc3JjL01vZC9QYXJ0L0FwcC9HZW9tZXRyeTJkLmNwcAotQEAgLTgzLDYg KzgzLDcgQEAKLSAjaW5jbHVkZSA8TW9kL1BhcnQvQXBwL0dlb20yZC9PZmZzZXRDdXJ2ZTJkUHku aD4KLSAKLSB1c2luZyBuYW1lc3BhY2UgUGFydDsKLSt1c2luZyBuYW1lc3BhY2Ugc3RkOwotIAot IGV4dGVybiBjb25zdCBjaGFyKiBnY2VfRXJyb3JTdGF0dXNUZXh0KGdjZV9FcnJvclR5cGUgZXQp OwotIAotZGlmZiAtLWdpdCBzcmMvTW9kL1JheXRyYWNpbmcvQXBwL0FwcFJheXRyYWNpbmdQeS5j cHAgc3JjL01vZC9SYXl0cmFjaW5nL0FwcC9BcHBSYXl0cmFjaW5nUHkuY3BwCi1pbmRleCBkNDhj NTFjOTcuLjFiYjJiMWIwMSAxMDA2NDQKLS0tLSBzcmMvTW9kL1JheXRyYWNpbmcvQXBwL0FwcFJh eXRyYWNpbmdQeS5jcHAKLSsrKyBzcmMvTW9kL1JheXRyYWNpbmcvQXBwL0FwcFJheXRyYWNpbmdQ eS5jcHAKLUBAIC00MCw2ICs0MCw4IEBACi0gI2luY2x1ZGUgPE1vZC9QYXJ0L0FwcC9Ub3BvU2hh cGVQeS5oPg0KLSAjaW5jbHVkZSA8QXBwL0FwcGxpY2F0aW9uLmg+DQotIA0KLSt1c2luZyBuYW1l c3BhY2Ugc3RkOw0KLSsNCi0gDQotIG5hbWVzcGFjZSBSYXl0cmFjaW5nIHsNCi0gY2xhc3MgTW9k dWxlIDogcHVibGljIFB5OjpFeHRlbnNpb25Nb2R1bGU8TW9kdWxlPg0KLWRpZmYgLS1naXQgc3Jj L01vZC9SYXl0cmFjaW5nL0FwcC9MdXhGZWF0dXJlLmNwcCBzcmMvTW9kL1JheXRyYWNpbmcvQXBw L0x1eEZlYXR1cmUuY3BwCi1pbmRleCA5MzBmZTEyYjcuLmQxZTBhMDA4OSAxMDA2NDQKLS0tLSBz cmMvTW9kL1JheXRyYWNpbmcvQXBwL0x1eEZlYXR1cmUuY3BwCi0rKysgc3JjL01vZC9SYXl0cmFj aW5nL0FwcC9MdXhGZWF0dXJlLmNwcAotQEAgLTM4LDYgKzM4LDcgQEAKLSANCi0gDQotIHVzaW5n IG5hbWVzcGFjZSBSYXl0cmFjaW5nOw0KLSt1c2luZyBuYW1lc3BhY2Ugc3RkOw0KLSANCi0gUFJP UEVSVFlfU09VUkNFKFJheXRyYWNpbmc6Okx1eEZlYXR1cmUsIFJheXRyYWNpbmc6OlJheVNlZ21l bnQpDQotIA0KLWRpZmYgLS1naXQgc3JjL01vZC9SYXl0cmFjaW5nL0FwcC9SYXlGZWF0dXJlLmNw cCBzcmMvTW9kL1JheXRyYWNpbmcvQXBwL1JheUZlYXR1cmUuY3BwCi1pbmRleCBjZGQyY2I2ZGMu LjIzNWE5ODY4NSAxMDA2NDQKLS0tLSBzcmMvTW9kL1JheXRyYWNpbmcvQXBwL1JheUZlYXR1cmUu Y3BwCi0rKysgc3JjL01vZC9SYXl0cmFjaW5nL0FwcC9SYXlGZWF0dXJlLmNwcAotQEAgLTM2LDYg KzM2LDcgQEAKLSANCi0gDQotIHVzaW5nIG5hbWVzcGFjZSBSYXl0cmFjaW5nOw0KLSt1c2luZyBu YW1lc3BhY2Ugc3RkOw0KLSANCi0gUFJPUEVSVFlfU09VUkNFKFJheXRyYWNpbmc6OlJheUZlYXR1 cmUsIFJheXRyYWNpbmc6OlJheVNlZ21lbnQpDQotIA0KLWRpZmYgLS1naXQgc3JjL01vZC9UZWNo RHJhdy9BcHAvR2VvbWV0cnkuY3BwIHNyYy9Nb2QvVGVjaERyYXcvQXBwL0dlb21ldHJ5LmNwcAot aW5kZXggYzEwYjYzMTc3Li5kMzRlZWI5YmIgMTAwNjQ0Ci0tLS0gc3JjL01vZC9UZWNoRHJhdy9B cHAvR2VvbWV0cnkuY3BwCi0rKysgc3JjL01vZC9UZWNoRHJhdy9BcHAvR2VvbWV0cnkuY3BwCi1A QCAtODAsNiArODAsNyBAQAotICNpbmNsdWRlICJHZW9tZXRyeS5oIgotIAotIHVzaW5nIG5hbWVz cGFjZSBUZWNoRHJhdzsKLSt1c2luZyBuYW1lc3BhY2Ugc3RkOwotIAotIC8vIENvbGxlY3Rpb24g b2YgR2VvbWV0cmljIEZlYXR1cmVzCi0gV2lyZTo6V2lyZSgpCi0KLQotLS0tIHNyYy9Nb2QvUGFy dC9BcHAvUHJvcGVydHlUb3BvU2hhcGUuY3BwCi0rKysgc3JjL01vZC9QYXJ0L0FwcC9Qcm9wZXJ0 eVRvcG9TaGFwZS5jcHAKLUBAIC0yODEsMTEgKzI4MSwxMSBAQAotIHN0YXRpYyBTdGFuZGFyZF9C b29sZWFuICBCUmVwVG9vbHNfV3JpdGUoY29uc3QgVG9wb0RTX1NoYXBlJiBTaCwgDQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RhbmRhcmRfQ1N0cmluZyBGaWxl KQ0KLSB7DQotLSAgb2ZzdHJlYW0gb3M7DQotKyAgc3RkOjpvZnN0cmVhbSBvczsNCi0gI2lmIE9D Q19WRVJTSU9OX0hFWCA+PSAweDA2MDgwMA0KLS0gIE9TRF9PcGVuU3RyZWFtKG9zLCBGaWxlLCBp b3M6Om91dCk7DQotKyAgT1NEX09wZW5TdHJlYW0ob3MsIEZpbGUsIHN0ZDo6aW9zOjpvdXQpOw0K LSAjZWxzZQ0KLS0gIG9zLm9wZW4oRmlsZSwgaW9zOjpvdXQpOw0KLSsgIG9zLm9wZW4oRmlsZSwg c3RkOjppb3M6Om91dCk7DQotICNlbmRpZg0KLSAgIGlmICghb3MucmRidWYoKS0+aXNfb3Blbigp KSByZXR1cm4gU3RhbmRhcmRfRmFsc2U7DQotIA0KLQotLS0tIHNyYy9Nb2QvUGFydC9BcHAvR2Vv bWV0cnkuY3BwCi0rKysgc3JjL01vZC9QYXJ0L0FwcC9HZW9tZXRyeS5jcHAKLUBAIC0xNDEsNiAr MTQxLDcgQEAKLSAjaW5jbHVkZSAiR2VvbWV0cnkuaCINCi0gDQotIHVzaW5nIG5hbWVzcGFjZSBQ YXJ0Ow0KLSt1c2luZyBuYW1lc3BhY2Ugc3RkOw0KLSANCi0gDQotIGNvbnN0IGNoYXIqIGdjZV9F cnJvclN0YXR1c1RleHQoZ2NlX0Vycm9yVHlwZSBldCkNCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Zy ZWVjYWQvcGF0Y2hlcy8wOTAtcHkzOC5wYXRjaCBiL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzA5 MC1weTM4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjU2NmRmOWRmM2Qu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wOTAtcHkzOC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLUZyb20gMTc0MDExNzQ5ZDgzNmYzYjZj NmFlMjYzMGY1M2IyZjRjMWY5ZDNmYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJp Y2hhcmQgPGhvYmJlczEwNjlAZ21haWwuY29tPgotRGF0ZTogVGh1LCAxNyBPY3QgMjAxOSAxMToy MDoxMCAtMDUwMAotU3ViamVjdDogW1BBVENIXSBVcGRhdGUgc3dpZ3B5cnVuLmluIGZvciBQeXRo b24gMy44Ci0KLUluIFB5dGhvbiAzLjggc29tZSBmdW5jdGlvbnMgcmVsYXRlZCB0byB0aHJlYWQg c3RhdGUgd2VyZSBpbnRlbnRpb25hbGx5IG1hZGUgcHJpdmF0ZS4KLQotVGhpcyBmaXggKHNwZWNp ZmljIHRvIEZyZWVDQUQpIHdhcyBzdWdnZXN0ZWQgaGVyZToKLQotaHR0cHM6Ly9idWdzLnB5dGhv bi5vcmcvaXNzdWUzNTg4NgotCi0tLS0gc3JjL0Jhc2Uvc3dpZ3B5cnVuLmlubAotKysrIHNyYy9C YXNlL3N3aWdweXJ1bi5pbmwKLUBAIC03Miw3ICs3Miw3IEBAIHZvaWQgY2xlYW51cFNXSUdfVChj b25zdCBjaGFyKiBUeXBlTmFtZSkKLSANCi0gICAgIFB5T2JqZWN0ICptb2R1bGUsICpkaWN0Ow0K LSAgICAgUHlJbnRlcnByZXRlclN0YXRlICppbnRlcnAgPSBQeVRocmVhZFN0YXRlX0dFVCgpLT5p bnRlcnA7DQotLSAgICBQeU9iamVjdCAqbW9kdWxlcyA9IGludGVycC0+bW9kdWxlczsNCi0rICAg IFB5T2JqZWN0ICptb2R1bGVzID0gUHlJbXBvcnRfR2V0TW9kdWxlRGljdCgpOw0KLSAgICAgbW9k dWxlID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcobW9kdWxlcywgIl9fYnVpbHRpbl9fIik7DQotICAg ICBpZiAobW9kdWxlICE9IE5VTEwgJiYgUHlNb2R1bGVfQ2hlY2sobW9kdWxlKSkgew0KLSAgICAg ICAgIGRpY3QgPSBQeU1vZHVsZV9HZXREaWN0KG1vZHVsZSk7DQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9mcmVlY2FkL3BhdGNoZXMvMDkxLXB5MzkucGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hl cy8wOTEtcHkzOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDAzYmIwM2Fk YjIxLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDkxLXB5Mzku cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNzQgKzAsMCBAQAotRml4IGZvciBQeXRob24gMy45 Ci0KLWh0dHBzOi8vZ2l0aHViLmNvbS9GcmVlQ0FEL0ZyZWVDQUQvY29tbWl0L2FlNjQxZGM1Mjc4 ZWZhZmEyMmIxNjhmYzE5Njg3NTU1OGI5MmU0MzYKLQotZGlmZiAtLWdpdCBzcmMvQmFzZS9zd2ln cHlydW5fMS4zLjI1Lmggc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy4yNS5oCi1pbmRleCA5MTcxNzIx MGIuLjllYmFkYmM4MyAxMDA2NDQKLS0tLSBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjI1LmgKLSsr KyBzcmMvQmFzZS9zd2lncHlydW5fMS4zLjI1LmgKLUBAIC02OTksNyArNjk5LDExIEBAIFB5U3dp Z09iamVjdF90eXBlKHZvaWQpIHsKLSAgICAgMCwJCQkJCS8qdHBfaXRlbXNpemUqLwotICAgICAv KiBtZXRob2RzICovCi0gICAgIChkZXN0cnVjdG9yKVB5U3dpZ09iamVjdF9kZWFsbG9jLAkvKnRw X2RlYWxsb2MqLwotKyNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDMwODAwMDAKLSAgICAgKHByaW50 ZnVuYylQeVN3aWdPYmplY3RfcHJpbnQsCS8qdHBfcHJpbnQqLwotKyNlbHNlCi0rICAgIDAsICAg ICAgICAgIC8qdHBfdmVjdG9yY2FsbF9vZmZzZXQqLwotKyNlbmRpZgotICAgICAoZ2V0YXR0cmZ1 bmMpMCwJCQkvKnRwX2dldGF0dHIqLwotICAgICAoc2V0YXR0cmZ1bmMpMCwJCQkvKnRwX3NldGF0 dHIqLwotICAgICAoY21wZnVuYylQeVN3aWdPYmplY3RfY29tcGFyZSwJLyp0cF9jb21wYXJlKi8K LUBAIC04NTksNyArODYzLDExIEBAIFB5U3dpZ1BhY2tlZF90eXBlKHZvaWQpIHsKLSAgICAgMCwJ CQkJCS8qdHBfaXRlbXNpemUqLwotICAgICAvKiBtZXRob2RzICovCi0gICAgIChkZXN0cnVjdG9y KVB5U3dpZ1BhY2tlZF9kZWFsbG9jLAkvKnRwX2RlYWxsb2MqLwotKyNpZiBQWV9WRVJTSU9OX0hF WCA8IDB4MDMwODAwMDAKLSAgICAgKHByaW50ZnVuYylQeVN3aWdQYWNrZWRfcHJpbnQsCS8qdHBf cHJpbnQqLwotKyNlbHNlCi0rICAgIDAsICAgICAgICAgIC8qdHBfdmVjdG9yY2FsbF9vZmZzZXQq LwotKyNlbmRpZgotICAgICAoZ2V0YXR0cmZ1bmMpMCwJCQkvKnRwX2dldGF0dHIqLwotICAgICAo c2V0YXR0cmZ1bmMpMCwJCQkvKnRwX3NldGF0dHIqLwotICAgICAoY21wZnVuYylQeVN3aWdQYWNr ZWRfY29tcGFyZSwJLyp0cF9jb21wYXJlKi8KLWRpZmYgLS1naXQgc3JjL0Jhc2Uvc3dpZ3B5cnVu XzEuMy4zMy5oIHNyYy9CYXNlL3N3aWdweXJ1bl8xLjMuMzMuaAotaW5kZXggZjgzYWMxZTg5Li5h ZmQ1YThjNTAgMTAwNjQ0Ci0tLS0gc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy4zMy5oCi0rKysgc3Jj L0Jhc2Uvc3dpZ3B5cnVuXzEuMy4zMy5oCi1AQCAtMTYyMCw3ICsxNjIwLDExIEBAIF9QeVN3aWdP YmplY3RfdHlwZSh2b2lkKSB7Ci0gCXNpemVvZihQeVN3aWdPYmplY3QpLAkJICAgIC8qIHRwX2Jh c2ljc2l6ZSAqLwotIAkwLAkJCSAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCi0gCShkZXN0 cnVjdG9yKVB5U3dpZ09iamVjdF9kZWFsbG9jLCAgIC8qIHRwX2RlYWxsb2MgKi8KLSsjaWYgUFlf VkVSU0lPTl9IRVggPCAweDAzMDgwMDAwCi0gCShwcmludGZ1bmMpUHlTd2lnT2JqZWN0X3ByaW50 LAkgICAgLyogdHBfcHJpbnQgKi8KLSsjZWxzZQotKwkwLCAvKnRwX3ZlY3RvcmNhbGxfb2Zmc2V0 Ki8KLSsjZW5kaWYKLSAjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAyMDIwMDAwCi0gCShnZXRhdHRy ZnVuYylQeVN3aWdPYmplY3RfZ2V0YXR0ciwgIC8qIHRwX2dldGF0dHIgKi8gCi0gI2Vsc2UKLUBA IC0xNzkwLDcgKzE3OTQsMTEgQEAgX1B5U3dpZ1BhY2tlZF90eXBlKHZvaWQpIHsKLSAJc2l6ZW9m KFB5U3dpZ1BhY2tlZCksCQkgICAgLyogdHBfYmFzaWNzaXplICovCQotIAkwLAkJCQkgICAgLyog dHBfaXRlbXNpemUgKi8JCi0gCShkZXN0cnVjdG9yKVB5U3dpZ1BhY2tlZF9kZWFsbG9jLCAgIC8q IHRwX2RlYWxsb2MgKi8JCi0rI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgwMzA4MDAwMAotIAkocHJp bnRmdW5jKVB5U3dpZ1BhY2tlZF9wcmludCwJICAgIC8qIHRwX3ByaW50ICovICAgCQotKyNlbHNl Ci0rCTAsIC8qdHBfdmVjdG9yY2FsbF9vZmZzZXQqLwotKyNlbmRpZgotIAkoZ2V0YXR0cmZ1bmMp MCwJCQkgICAgLyogdHBfZ2V0YXR0ciAqLyAJCi0gCShzZXRhdHRyZnVuYykwLAkJCSAgICAvKiB0 cF9zZXRhdHRyICovIAkKLSAJKGNtcGZ1bmMpUHlTd2lnUGFja2VkX2NvbXBhcmUsCSAgICAvKiB0 cF9jb21wYXJlICovIAkKLWRpZmYgLS1naXQgc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy4zNi5oIHNy Yy9CYXNlL3N3aWdweXJ1bl8xLjMuMzYuaAotaW5kZXggMDJjNThhZDhhLi4xMmFkNDFlMTIgMTAw NjQ0Ci0tLS0gc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy4zNi5oCi0rKysgc3JjL0Jhc2Uvc3dpZ3B5 cnVuXzEuMy4zNi5oCi1AQCAtMTYyOCw3ICsxNjI4LDEyIEBAIF9QeVN3aWdPYmplY3RfdHlwZSh2 b2lkKSB7Ci0gCXNpemVvZihQeVN3aWdPYmplY3QpLAkJICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLwot IAkwLAkJCSAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCi0gCShkZXN0cnVjdG9yKVB5U3dp Z09iamVjdF9kZWFsbG9jLCAgIC8qIHRwX2RlYWxsb2MgKi8KLSsjaWYgUFlfVkVSU0lPTl9IRVgg PCAweDAzMDgwMDAwCi0gCShwcmludGZ1bmMpUHlTd2lnT2JqZWN0X3ByaW50LAkgICAgLyogdHBf cHJpbnQgKi8KLSsjZWxzZQotKwkwLCAvKnRwX3ZlY3RvcmNhbGxfb2Zmc2V0Ki8KLSsjZW5kaWYK LSsKLSAjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAyMDIwMDAwCi0gCShnZXRhdHRyZnVuYylQeVN3 aWdPYmplY3RfZ2V0YXR0ciwgIC8qIHRwX2dldGF0dHIgKi8gCi0gI2Vsc2UKLUBAIC0xNzk4LDcg KzE4MDMsMTEgQEAgX1B5U3dpZ1BhY2tlZF90eXBlKHZvaWQpIHsKLSAJc2l6ZW9mKFB5U3dpZ1Bh Y2tlZCksCQkgICAgLyogdHBfYmFzaWNzaXplICovCQotIAkwLAkJCQkgICAgLyogdHBfaXRlbXNp emUgKi8JCi0gCShkZXN0cnVjdG9yKVB5U3dpZ1BhY2tlZF9kZWFsbG9jLCAgIC8qIHRwX2RlYWxs b2MgKi8JCi0rI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgwMzA4MDAwMAotIAkocHJpbnRmdW5jKVB5 U3dpZ1BhY2tlZF9wcmludCwJICAgIC8qIHRwX3ByaW50ICovICAgCQotKyNlbHNlCi0rCTAsIC8q dHBfdmVjdG9yY2FsbF9vZmZzZXQqLwotKyNlbmRpZgotIAkoZ2V0YXR0cmZ1bmMpMCwJCQkgICAg LyogdHBfZ2V0YXR0ciAqLyAJCi0gCShzZXRhdHRyZnVuYykwLAkJCSAgICAvKiB0cF9zZXRhdHRy ICovIAkKLSAJKGNtcGZ1bmMpUHlTd2lnUGFja2VkX2NvbXBhcmUsCSAgICAvKiB0cF9jb21wYXJl ICovIAkKLWRpZmYgLS1naXQgc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy4zOC5oIHNyYy9CYXNlL3N3 aWdweXJ1bl8xLjMuMzguaAotaW5kZXggZGFlMDU4YzIwLi43Y2FjYzE1NzkgMTAwNjQ0Ci0tLS0g c3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy4zOC5oCi0rKysgc3JjL0Jhc2Uvc3dpZ3B5cnVuXzEuMy4z OC5oCi1AQCAtMTc0MSw3ICsxNzQxLDExIEBAIF9QeVN3aWdPYmplY3RfdHlwZSh2b2lkKSB7Ci0g CXNpemVvZihTd2lnUHlPYmplY3QpLAkJICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLw0KLSAJMCwJCQkg ICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLw0KLSAJKGRlc3RydWN0b3IpU3dpZ1B5T2JqZWN0 X2RlYWxsb2MsICAgLyogdHBfZGVhbGxvYyAqLw0KLSsjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAz MDgwMDAwDQotIAkocHJpbnRmdW5jKVN3aWdQeU9iamVjdF9wcmludCwJICAgIC8qIHRwX3ByaW50 ICovDQotKyNlbHNlDQotKwkwLCAvKnRwX3ZlY3RvcmNhbGxfb2Zmc2V0Ki8NCi0rI2VuZGlmDQot ICNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDIwMjAwMDANCi0gCShnZXRhdHRyZnVuYylTd2lnUHlP YmplY3RfZ2V0YXR0ciwgIC8qIHRwX2dldGF0dHIgKi8gDQotICNlbHNlDQotQEAgLTE5MTksNyAr MTkyMywxMSBAQCBfUHlTd2lnUGFja2VkX3R5cGUodm9pZCkgewotIAlzaXplb2YoU3dpZ1B5UGFj a2VkKSwJCSAgICAvKiB0cF9iYXNpY3NpemUgKi8JDQotIAkwLAkJCQkgICAgLyogdHBfaXRlbXNp emUgKi8JDQotIAkoZGVzdHJ1Y3RvcilTd2lnUHlQYWNrZWRfZGVhbGxvYywgICAvKiB0cF9kZWFs bG9jICovCQ0KLSsjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAzMDgwMDAwDQotIAkocHJpbnRmdW5j KVN3aWdQeVBhY2tlZF9wcmludCwJICAgIC8qIHRwX3ByaW50ICovICAgCQ0KLSsjZWxzZQ0KLSsJ MCwgLyp0cF92ZWN0b3JjYWxsX29mZnNldCovDQotKyNlbmRpZg0KLSAJKGdldGF0dHJmdW5jKTAs CQkJICAgIC8qIHRwX2dldGF0dHIgKi8gCQ0KLSAJKHNldGF0dHJmdW5jKTAsCQkJICAgIC8qIHRw X3NldGF0dHIgKi8gCQ0KLSAJKGNtcGZ1bmMpU3dpZ1B5UGFja2VkX2NvbXBhcmUsCSAgICAvKiB0 cF9jb21wYXJlICovIAkNCi1kaWZmIC0tZ2l0IHNyYy9CYXNlL3N3aWdweXJ1bl8xLjMuNDAuaCBz cmMvQmFzZS9zd2lncHlydW5fMS4zLjQwLmgKLWluZGV4IDEzNmJhODA5Zi4uNDAwZGI4YjQ3IDEw MDY0NAotLS0tIHNyYy9CYXNlL3N3aWdweXJ1bl8xLjMuNDAuaAotKysrIHNyYy9CYXNlL3N3aWdw eXJ1bl8xLjMuNDAuaAotQEAgLTE3NjYsNyArMTc2NiwxMSBAQCBfUHlTd2lnT2JqZWN0X3R5cGUo dm9pZCkgewotIAlzaXplb2YoU3dpZ1B5T2JqZWN0KSwJCSAgICAvKiB0cF9iYXNpY3NpemUgKi8N Ci0gCTAsCQkJICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8NCi0gCShkZXN0cnVjdG9yKVN3 aWdQeU9iamVjdF9kZWFsbG9jLCAgIC8qIHRwX2RlYWxsb2MgKi8NCi0rI2lmIFBZX1ZFUlNJT05f SEVYIDwgMHgwMzA4MDAwMA0KLSAJKHByaW50ZnVuYylTd2lnUHlPYmplY3RfcHJpbnQsCSAgICAv KiB0cF9wcmludCAqLw0KLSsjZWxzZQ0KLSsJMCwgLyp0cF92ZWN0b3JjYWxsX29mZnNldCovDQot KyNlbmRpZg0KLSAjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAyMDIwMDAwDQotIAkoZ2V0YXR0cmZ1 bmMpU3dpZ1B5T2JqZWN0X2dldGF0dHIsICAvKiB0cF9nZXRhdHRyICovIA0KLSAjZWxzZQ0KLUBA IC0xOTQ3LDggKzE5NTEsMTIgQEAgX1B5U3dpZ1BhY2tlZF90eXBlKHZvaWQpIHsKLSAJKGNoYXIg KikiU3dpZ1B5UGFja2VkIiwJCSAgICAvKiB0cF9uYW1lICovCQ0KLSAJc2l6ZW9mKFN3aWdQeVBh Y2tlZCksCQkgICAgLyogdHBfYmFzaWNzaXplICovCQ0KLSAJMCwJCQkJICAgIC8qIHRwX2l0ZW1z aXplICovCQ0KLS0JKGRlc3RydWN0b3IpU3dpZ1B5UGFja2VkX2RlYWxsb2MsICAgLyogdHBfZGVh bGxvYyAqLwkNCi0tCShwcmludGZ1bmMpU3dpZ1B5UGFja2VkX3ByaW50LAkgICAgLyogdHBfcHJp bnQgKi8gICAJDQotKwkoZGVzdHJ1Y3RvcilTd2lnUHlQYWNrZWRfZGVhbGxvYywgICAvKiB0cF9k ZWFsbG9jICovDQotKyNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDMwODAwMDANCi0rCShwcmludGZ1 bmMpU3dpZ1B5UGFja2VkX3ByaW50LAkgICAgLyogdHBfcHJpbnQgKi8NCi0rI2Vsc2UNCi0rCTAs IC8qdHBfdmVjdG9yY2FsbF9vZmZzZXQqLw0KLSsjZW5kaWYNCi0gCShnZXRhdHRyZnVuYykwLAkJ CSAgICAvKiB0cF9nZXRhdHRyICovIAkNCi0gCShzZXRhdHRyZnVuYykwLAkJCSAgICAvKiB0cF9z ZXRhdHRyICovIAkNCi0gI2lmIFBZX1ZFUlNJT05fSEVYPj0weDAzMDAwMDAwDQotZGlmZiAtLWdp dCBzcmMvQ1hYL1B5dGhvbjMvY3h4X2V4dGVuc2lvbnMuY3h4IHNyYy9DWFgvUHl0aG9uMy9jeHhf ZXh0ZW5zaW9ucy5jeHgKLWluZGV4IGZiM2RhNDU1Zi4uOWZmOTQ2MTJmIDEwMDY0NAotLS0tIHNy Yy9DWFgvUHl0aG9uMy9jeHhfZXh0ZW5zaW9ucy5jeHgKLSsrKyBzcmMvQ1hYL1B5dGhvbjMvY3h4 X2V4dGVuc2lvbnMuY3h4Ci1AQCAtMzgxLDcgKzM4MSwxMSBAQCBQeXRob25UeXBlOjpQeXRob25U eXBlKCBzaXplX3QgYmFzaWNfc2l6ZSwgaW50IGl0ZW1zaXplLCBjb25zdCBjaGFyICpkZWZhdWx0 X25hbQotIAotICAgICAvLyBNZXRob2RzIHRvIGltcGxlbWVudCBzdGFuZGFyZCBvcGVyYXRpb25z Ci0gICAgIHRhYmxlLT50cF9kZWFsbG9jID0gKGRlc3RydWN0b3Ipc3RhbmRhcmRfZGVhbGxvYzsK LSsjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAzMDgwMDAwCi0gICAgIHRhYmxlLT50cF9wcmludCA9 IDA7Ci0rI2Vsc2UKLSsgICAgdGFibGUtPnRwX3ZlY3RvcmNhbGxfb2Zmc2V0ID0gMDsKLSsjZW5k aWYKLSAgICAgdGFibGUtPnRwX2dldGF0dHIgPSAwOwotICAgICB0YWJsZS0+dHBfc2V0YXR0ciA9 IDA7Ci0gICAgIHRhYmxlLT50cF9yZXByID0gMDsKLUBAIC01MjQsNyArNTI4LDkgQEAgUHl0aG9u VHlwZSAmUHl0aG9uVHlwZTo6c3VwcG9ydENsYXNzKCkKLSAjaWZkZWYgUFlDWFhfUFlUSE9OXzJU TzMKLSBQeXRob25UeXBlICZQeXRob25UeXBlOjpzdXBwb3J0UHJpbnQoKQotIHsKLSsjaWYgUFlf VkVSU0lPTl9IRVggPCAweDAzMDgwMDAwCi0gICAgIHRhYmxlLT50cF9wcmludCA9IHByaW50X2hh bmRsZXI7Ci0rI2VuZGlmCi0gICAgIHJldHVybiAqdGhpczsKLSB9Ci0gI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDAtZGV0ZWN0LXNoaWJva2VuMi1hbmQtcHlz aWRlMi01LjE0LnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTAwLWRldGVjdC1zaGli b2tlbjItYW5kLXB5c2lkZTItNS4xNC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMTRjZTlkNWZjZjkwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mcmVlY2FkL3BhdGNo ZXMvMTAwLWRldGVjdC1zaGlib2tlbjItYW5kLXB5c2lkZTItNS4xNC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDMzICswLDAgQEAKLXNvdXJjZTogaHR0cHM6Ly9zdm53ZWIuZnJlZWJzZC5vcmcv cG9ydHMvaGVhZC9jYWQvZnJlZWNhZC9maWxlcy9wYXRjaC1DTWFrZUxpc3RzLnR4dD9yZXZpc2lv bj01MDQzNjEmdmlldz1jbwotCi0tLS0gQ01ha2VMaXN0cy50eHQub3JpZwotKysrIENNYWtlTGlz dHMudHh0Ci1AQCAtOTg5LDYgKzk4OSwxMyBAQCBlbmRpZigpCi0gICAgICAgICAgICAgZW5kaWYo KQotICAgICAgICAgZW5kaWYoKQotIAotKyAgICAgICAgIyBweXNpZGUyIGNoYW5nZWQgaXQncyBj bWFrZSBmaWxlcywgdGhpcyBpcyB0aGUgZGFuY2Ugd2UgaGF2ZQotKyAgICAgICAgIyB0byBkYW5j ZSB0byBiZSBjb21wYXRpYmxlIHdpdGggdGhlIG9sZCBhbmQgdGhlIG5ldyB2ZXJzaW9ucwotKyAg ICAgICAgaWYoU0hJQk9LRU5fUFlUSE9OX0lOQ0xVREVfRElSUyBBTkQgTk9UIFNISUJPS0VOX0lO Q0xVREVfRElSKQotKyAgICAgICAgICBnZXRfcHJvcGVydHkoU0hJQk9LRU5fSU5DTFVERV9ESVIg VEFSR0VUIFNoaWJva2VuMjo6bGlic2hpYm9rZW4gUFJPUEVSVFkgSU5URVJGQUNFX0lOQ0xVREVf RElSRUNUT1JJRVMpCi0rICAgICAgICAgICAgZ2V0X3Byb3BlcnR5KFNISUJPS0VOX0xJQlJBUlkg VEFSR0VUIFNoaWJva2VuMjo6bGlic2hpYm9rZW4gUFJPUEVSVFkgSU1QT1JURURfTE9DQVRJT05f UkVMRUFTRSkKLSsgICAgICAgIGVuZGlmKFNISUJPS0VOX1BZVEhPTl9JTkNMVURFX0RJUlMgQU5E IE5PVCBTSElCT0tFTl9JTkNMVURFX0RJUikKLSsKLSAgICAgICAgIGlmKE5PVCBTSElCT0tFTl9J TkNMVURFX0RJUikKLSAgICAgICAgICAgICBNRVNTQUdFKCI9PT09PT09PT09PT09PT09PT09PVxu IgotICAgICAgICAgICAgICAgICAgICAgInNoaWJva2VuMiBub3QgZm91bmQuXG4iCi1AQCAtOTk2 LDYgKzEwMDMsMTQgQEAgZW5kaWYoKQotICAgICAgICAgZW5kaWYoTk9UIFNISUJPS0VOX0lOQ0xV REVfRElSKQotIAotICAgICAgICAgZmluZF9wYWNrYWdlKFB5U2lkZTIgUVVJRVQpIyBSRVFVSVJF RAotKwotKyAgICAgICAgIyBweXNpZGUyIGNoYW5nZWQgaXQncyBjbWFrZSBmaWxlcywgdGhpcyBp cyB0aGUgZGFuY2Ugd2UgaGF2ZQotKyAgICAgICAgIyB0byBkYW5jZSB0byBiZSBjb21wYXRpYmxl IHdpdGggdGhlIG9sZCBhbmQgdGhlIG5ldyB2ZXJzaW9ucwotKyAgICAgICAgaWYoTk9UIFBZU0lE RV9JTkNMVURFX0RJUikKLSsgICAgICAgICAgZ2V0X3Byb3BlcnR5KFBZU0lERV9JTkNMVURFX0RJ UiBUQVJHRVQgUHlTaWRlMjo6cHlzaWRlMiBQUk9QRVJUWSBJTlRFUkZBQ0VfSU5DTFVERV9ESVJF Q1RPUklFUykKLSsgICAgICAgICAgZ2V0X3Byb3BlcnR5KFBZU0lERV9MSUJSQVJZIFRBUkdFVCBQ eVNpZGUyOjpweXNpZGUyIFBST1BFUlRZIElNUE9SVEVEX0xPQ0FUSU9OX1JFTEVBU0UpCi0rICAg ICAgICBlbmRpZihOT1QgUFlTSURFX0lOQ0xVREVfRElSKQotKwotICAgICAgICAgaWYoTk9UIFBZ U0lERV9JTkNMVURFX0RJUikKLSAgICAgICAgICAgICBNRVNTQUdFKCI9PT09PT09PT09PT09PT09 PT1cbiIKLSAgICAgICAgICAgICAgICAgICAgICJQeVNpZGUyIG5vdCBmb3VuZC5cbiIKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzEwMS1weXNpZGUyLXRvb2wtNS4xNC1zdXBw b3J0LnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTAxLXB5c2lkZTItdG9vbC01LjE0 LXN1cHBvcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzMjM4NGQyZGY0 YS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzEwMS1weXNpZGUy LXRvb2wtNS4xNC1zdXBwb3J0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAot YmFja3BvcnQgZnJvbSBGcmVlQ0FEIGdpdCBtYXN0ZXIgKHJldiBAMWJjYTUzOSkKLQotLS0tIGNN YWtlL0ZpbmRQeVNpZGUyVG9vbHMuY21ha2UuT1JJRwotKysrIGNNYWtlL0ZpbmRQeVNpZGUyVG9v bHMuY21ha2UKLUBAIC0yMCw4ICsyMCwyNCBAQAotICAgICBzZXQoUFlTSURFX0JJTl9ESVIgJHtQ WVRIT05fQklOX0RJUn0pCi0gZW5kaWYoV0lOMzIgT1IgJHtDTUFLRV9TWVNURU1fTkFNRX0gTUFU Q0hFUyAiRGFyd2luIikKLSAKLS1GSU5EX1BST0dSQU0oUFlTSURFMlVJQ0JJTkFSWSBOQU1FUyBw eXRob24yLXB5c2lkZTItdWljIHB5c2lkZTItdWljIHB5c2lkZTItdWljLSR7UFlUSE9OX1ZFUlNJ T05fTUFKT1J9LiR7UFlUSE9OX1ZFUlNJT05fTUlOT1J9IEhJTlRTICR7UFlTSURFX0JJTl9ESVJ9 KQotLUZJTkRfUFJPR1JBTShQWVNJREUyUkNDQklOQVJZIE5BTUVTIHB5c2lkZTItcmNjIHB5c2lk ZTItcmNjLSR7UFlUSE9OX1ZFUlNJT05fTUFKT1J9LiR7UFlUSE9OX1ZFUlNJT05fTUlOT1J9IEhJ TlRTICR7UFlTSURFX0JJTl9ESVJ9KQotKyMgU2luY2UgUXQgdjUuMTQsIHB5c2lkZTItdWljIGFu ZCBweXNpZGUyLXJjYyBhcmUgZGlyZWN0bHkgcHJvdmlkZWQgYnkgUXQ1Q29yZSB1aWMgYW5kIHJj Yywgd2l0aCAnLWcgcHl0aG9uJyBvcHRpb24KLSsjIFdlIHRlc3QgUXQ1Q29yZSB2ZXJzaW9uIHRv IGFjdCBhY2NvcmRpbmdseQotKwotK0ZJTkRfUEFDS0FHRShRdDVDb3JlKQotKwotK0lGKFF0NUNv cmVfVkVSU0lPTiBWRVJTSU9OX0xFU1MgNS4xNCkKLSsgICMgTGVnYWN5ICg8IDUuMTQpCi0rICBG SU5EX1BST0dSQU0oUFlTSURFMlVJQ0JJTkFSWSBOQU1FUyBweXRob24yLXB5c2lkZTItdWljIHB5 c2lkZTItdWljIHB5c2lkZTItdWljLSR7UFlUSE9OX1ZFUlNJT05fTUFKT1J9LiR7UFlUSE9OX1ZF UlNJT05fTUlOT1J9IEhJTlRTICR7UFlTSURFX0JJTl9ESVJ9KQotKyAgRklORF9QUk9HUkFNKFBZ U0lERTJSQ0NCSU5BUlkgTkFNRVMgcHlzaWRlMi1yY2MgcHlzaWRlMi1yY2MtJHtQWVRIT05fVkVS U0lPTl9NQUpPUn0uJHtQWVRIT05fVkVSU0lPTl9NSU5PUn0gSElOVFMgJHtQWVNJREVfQklOX0RJ Un0pCi0rICBzZXQoVUlDT1BUSU9OUyAiIikKLSsgIHNldChSQ0NPUFRJT05TICIiKQotK0VMU0Uo UXQ1Q29yZV9WRVJTSU9OIFZFUlNJT05fTEVTUyA1LjE0KQotKyAgIyBOZXcgKD49IDUuMTQpCi0r ICBGSU5EX1BST0dSQU0oUFlTSURFMlVJQ0JJTkFSWSBOQU1FUyB1aWMtcXQ1IHVpYykKLSsgIHNl dChVSUNPUFRJT05TICItLWdlbmVyYXRvcj1weXRob24iKQotKyAgRklORF9QUk9HUkFNKFBZU0lE RTJSQ0NCSU5BUlkgTkFNRVMgcmNjLXF0NSByY2MpCi0rICBzZXQoUkNDT1BUSU9OUyAiLS1nZW5l cmF0b3I9cHl0aG9uIiAiLS1jb21wcmVzcy1hbGdvPXpsaWIiICItLWNvbXByZXNzPTEiKQotK0VO RElGKFF0NUNvcmVfVkVSU0lPTiBWRVJTSU9OX0xFU1MgNS4xNCkKLSAKLSBNQUNSTyhQWVNJREVf V1JBUF9VSSBvdXRmaWxlcykKLSAgIEZPUkVBQ0goaXQgJHtBUkdOfSkKLUBAIC0zMyw3ICs0OSw3 IEBACi0gICAgICMpCi0gICAgIGlmKFdJTjMyIE9SIEFQUExFKQotICAgICAgICAgQUREX0NVU1RP TV9DT01NQU5EKE9VVFBVVCAke291dGZpbGV9Ci0tICAgICAgICAgIENPTU1BTkQgJHtQWVNJREUy VUlDQklOQVJZfSAke2luZmlsZX0gLW8gJHtvdXRmaWxlfQotKyAgICAgICAgICBDT01NQU5EICR7 UFlTSURFMlVJQ0JJTkFSWX0gJHtVSUNPUFRJT05TfSAke2luZmlsZX0gLW8gJHtvdXRmaWxlfQot ICAgICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtpbmZpbGV9Ci0gICAgICAgICApCi0gICAgIGVs c2UoKQotQEAgLTQxLDcgKzU3LDcgQEAKLSAgICAgICAgICMgcHlzaWRlMi11aWMgZ2VuZXJhdGVz IGluIGNvbW1lbnRzIGF0IGJlZ2lubmluZy4sIHdoaWNoIGlzIHdoeQotICAgICAgICAgIyB3ZSBm b2xsb3cgdGhlIHRvb2wgY29tbWFuZCB3aXRoIGluLXBsYWNlIHNlZC4KLSAgICAgICAgIEFERF9D VVNUT01fQ09NTUFORChPVVRQVVQgJHtvdXRmaWxlfQotLSAgICAgICAgICBDT01NQU5EICIke1BZ U0lERTJVSUNCSU5BUll9IiAiJHtpbmZpbGV9IiAtbyAiJHtvdXRmaWxlfSIKLSsgICAgICAgICAg Q09NTUFORCAiJHtQWVNJREUyVUlDQklOQVJZfSIgJHtVSUNPUFRJT05TfSAiJHtpbmZpbGV9IiAt byAiJHtvdXRmaWxlfSIKLSAgICAgICAgICAgQ09NTUFORCBzZWQgLWkgIi9eIyAvZCIgIiR7b3V0 ZmlsZX0iCi0gICAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAiJHtpbmZpbGV9IgotICAgICAgICAg KQotQEAgLTYwLDcgKzc2LDcgQEAKLSAgICAgIykKLSAgICAgaWYoV0lOMzIgT1IgQVBQTEUpCi0g ICAgICAgICBBRERfQ1VTVE9NX0NPTU1BTkQoT1VUUFVUICR7b3V0ZmlsZX0KLS0gICAgICAgICAg Q09NTUFORCAke1BZU0lERTJSQ0NCSU5BUll9ICR7aW5maWxlfSAtbyAke291dGZpbGV9Ci0rICAg ICAgICAgIENPTU1BTkQgJHtQWVNJREUyUkNDQklOQVJZfSAke1JDQ09QVElPTlN9ICR7aW5maWxl fSAtbyAke291dGZpbGV9Ci0gICAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke2luZmlsZX0KLSAg ICAgICAgICkKLSAgICAgZWxzZSgpCi1AQCAtNjgsNyArODQsNyBAQAotICAgICAgICAgIyBweXNp ZGUtcmNjIGdlbmVyYXRlcyBpbiBjb21tZW50cyBhdCBiZWdpbm5pbmcsIHdoaWNoIGlzIHdoeQot ICAgICAgICAgIyB3ZSBmb2xsb3cgdGhlIHRvb2wgY29tbWFuZCB3aXRoIGluLXBsYWNlIHNlZC4K LSAgICAgICAgIEFERF9DVVNUT01fQ09NTUFORChPVVRQVVQgIiR7b3V0ZmlsZX0iCi0tICAgICAg ICAgIENPTU1BTkQgIiR7UFlTSURFMlJDQ0JJTkFSWX0iICIke2luZmlsZX0iICR7UFlfQVRUUklC VVRFfSAtbyAiJHtvdXRmaWxlfSIKLSsgICAgICAgICAgQ09NTUFORCAiJHtQWVNJREUyUkNDQklO QVJZfSIgJHtSQ0NPUFRJT05TfSAiJHtpbmZpbGV9IiAke1BZX0FUVFJJQlVURX0gLW8gIiR7b3V0 ZmlsZX0iCi0gICAgICAgICAgIENPTU1BTkQgc2VkIC1pICIvXiMgL2QiICIke291dGZpbGV9Igot ICAgICAgICAgICBNQUlOX0RFUEVOREVOQ1kgIiR7aW5maWxlfSIKLSAgICAgICAgICkKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzEwMi1xdDUtNS4xNS4wLnBhdGNoIGIvc3Jj cGtncy9mcmVlY2FkL3BhdGNoZXMvMTAyLXF0NS01LjE1LjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDljNDYzMmQ4MGE4MC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv ZnJlZWNhZC9wYXRjaGVzLzEwMi1xdDUtNS4xNS4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTQgKzAsMCBAQAotU291cmNlOiBAcHVsbG1vbGwKLVVwc3RyZWFtOiBubwotUmVhc29uOiBxdDUt NS4xNS4wIHJlcXVpcmVzIGV4cGxpY2l0IGluY2x1ZGUgZm9yIFFQYWludGVyUGF0aAotCi0tLS0g c3JjL01vZC9JbWFnZS9HdWkvT3BlbkdMSW1hZ2VCb3guY3BwCi0rKysgc3JjL01vZC9JbWFnZS9H dWkvT3BlbkdMSW1hZ2VCb3guY3BwCTIwMjAtMDctMTQgMTI6MjU6NDIuNjA3MDc1ODU2ICswMjAw Ci1AQCAtMjYsNiArMjYsNyBAQAotICMgaW5jbHVkZSA8UVN1cmZhY2VGb3JtYXQ+Ci0gIyBpbmNs dWRlIDxRTWVzc2FnZUJveD4KLSAjIGluY2x1ZGUgPFFQYWludGVyPgotKyMgaW5jbHVkZSA8UVBh aW50ZXJQYXRoPgotICNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9fTUlOR1czMl9fKQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTAzLWZpbmQtY29pbjN2NC1kb2MucGF0Y2gg Yi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xMDMtZmluZC1jb2luM3Y0LWRvYy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWI3ZGU1MTRkZTRiLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTAzLWZpbmQtY29pbjN2NC1kb2MucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi1Gcm9tIDA0ODMzYTVmMWNiYzA3ZjhmNmFlOTQ0 NTNjNDUzNWUxMzc4OWFhMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiB5b3BpdG8g PHBpZXJyZS5ib3VyZ2luQGZyZWUuZnI+Ci1EYXRlOiBNb24sIDYgSnVsIDIwMjAgMDY6NTQ6MDcg KzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gYnVpbGQ6IGZpeCBDb2luIDNkIGRvY3VtZW50YXRpb24g ZGlzY292ZXJpbmcKLQotKiBjb2luM2QgNC4wLjAgZGVmYXVsdCBsb2NhdGlvbiBpcyAvdXNyL3No YXJlL2RvYy9Db2luL2h0bWwvCi0qIG1pc3VzZXMgb2YgZmluZF9maWxlcygpIGlmIHNldmVyYWwg Y2FuZGlkYXRlcyBmb3IgZmlsZW5hbWUKLSogZXhwb3J0IHZhcmlhYmxlIENPSU4zRF9ET0NfRk9V TkQgdGhhdCBpcyB1c2VkIGJ5IGNNYWtlL0ZyZWVDQURfSGVscGVycy9QcmludEZpbmFsUmVwb3J0 LmNtYWtlCi0tLS0KLSBjTWFrZS9GaW5kQ29pbjNERG9jLmNtYWtlIHwgMTIgKysrKysrKy0tLS0t Ci0gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBjTWFrZS9GaW5kQ29pbjNERG9jLmNtYWtlIGNNYWtlL0ZpbmRDb2luM0REb2MuY21h a2UKLWluZGV4IDg4MzM2ODQ0NS4uYzZjOTJmMjYwIDEwMDY0NAotLS0tIGNNYWtlL0ZpbmRDb2lu M0REb2MuY21ha2UKLSsrKyBjTWFrZS9GaW5kQ29pbjNERG9jLmNtYWtlCi1AQCAtMjMsMTggKzIz LDE5IEBAIElGIChDT0lOM0RfRk9VTkQpCi0gICAgICAgZmluZF9wYXRoKENPSU4zRF9ET0NfUEFU SCBpbmRleC5odG1sIA0KLSAgICAgICAgICAgICAgICAgL3Vzci9zaGFyZS9kb2MvbGliY29pbjgw LWRvYy9odG1sDQotICAgICAgICAgICAgICAgICAvdXNyL3NoYXJlL2RvYy9jb2luL2h0bWwNCi0r ICAgICAgICAgICAgICAgIC91c3Ivc2hhcmUvZG9jL0NvaW4vaHRtbA0KLSAgICAgICApDQotICAg ICAgIElGKCBFWElTVFMgJHtDT0lOM0RfRE9DX1BBVEh9KQ0KLSAgICAgICAgIG1lc3NhZ2UoU1RB VFVTICJDb2luM0QgZG9jIGlzIGluc3RhbGxlZCIpDQotLSAgICAgICAgZmluZF9maWxlKENPSU4z RF9ET0NfVEFHRklMRSBjb2luLnRhZyBDb2luLnRhZyANCi0tICAgICAgICAgICAgJHtDT0lOM0Rf RE9DX1BBVEh9DQotKyAgICAgICAgZmluZF9maWxlKENPSU4zRF9ET0NfVEFHRklMRSBOQU1FUyBj b2luLnRhZyBDb2luLnRhZyANCi0rICAgICAgICAgICAgUEFUSFMgJHtDT0lOM0RfRE9DX1BBVEh9 DQotICAgICAgICAgKQ0KLSAgICAgICAgIElGKCBFWElTVFMgJHtDT0lOM0RfRE9DX1RBR0ZJTEV9 KQ0KLSAgICAgICAgICAgU0VUKCBDT0lOM0RfRE9DX0ZPVU5EICJZRVMiDQotICAgICAgICAgICAp DQotICAgICAgICAgRUxTRSggRVhJU1RTICR7Q09JTjNEX0RPQ19UQUdGSUxFfSkNCi0tICAgICAg ICAgIGZpbmRfZmlsZShDT0lOM0RfRE9DX1RBR0ZJTEVfR1ogY29pbi50YWcuZ3ogQ29pbi50YWcu Z3ogDQotLSAgICAgICAgICAgICAgJHtDT0lOM0RfRE9DX1BBVEh9DQotKyAgICAgICAgICBmaW5k X2ZpbGUoQ09JTjNEX0RPQ19UQUdGSUxFX0daIE5BTUVTIGNvaW4udGFnLmd6IENvaW4udGFnLmd6 IA0KLSsgICAgICAgICAgICAgIFBBVEhTICR7Q09JTjNEX0RPQ19QQVRIfQ0KLSAgICAgICAgICAg KQ0KLSAgICAgICAgICAgSUYoIEVYSVNUUyAke0NPSU4zRF9ET0NfVEFHRklMRV9HWn0pDQotICAg ICAgICAgICAgIG1lc3NhZ2UoU1RBVFVTICIgIEZvdW5kICR7Q09JTjNEX0RPQ19UQUdGSUxFX0da fSIpDQotQEAgLTg1LDQgKzg2LDUgQEAgaWYoQ09JTjNEX0RPQ19GT1VORCkKLSAgIG1lc3NhZ2Uo U1RBVFVTICIgIExvY2F0aW9uOiAke0NPSU4zRF9ET0NfUEFUSH0iKQ0KLSBlbmRpZihDT0lOM0Rf RE9DX0ZPVU5EKQ0KLSANCi0tDQotKyMgZXhwb3J0IGZvciBvdGhlcnMNCi0rU0VUKCBDT0lOM0Rf RE9DX0ZPVU5EICIke0NPSU4zRF9ET0NfRk9VTkR9IiBDQUNIRSBCT09MICJDb2luM2QgZG9jdW1l bnRhdGlvbiBhdmFpbGFibGUiKQ0KLS0tIAotMi4yNy4wCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZnJlZWNhZC9wYXRjaGVzLzE1MC12dGs5LnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMv MTUwLXZ0azkucGF0Y2gKaW5kZXggZThmYjVlYzE0YjdhLi4zYzAwZmY3ODRlNGMgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1MC12dGs5LnBhdGNoCisrKyBiL3NyY3BrZ3Mv ZnJlZWNhZC9wYXRjaGVzLzE1MC12dGs5LnBhdGNoCkBAIC0xLDEwICsxLDExIEBACi1UYWtlbiBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS93d21heWVyL0ZyZWVDQUQvY29tbWl0LzUyNTk5Zjc3MWZh OTM0Y2VlYjExYTk3MGMzNjM5YmZhOGY5MDQxMWUKK1Rha2VuIGZyb20gaHR0cHM6Ly9naXRodWIu Y29tL3d3bWF5ZXIvRnJlZUNBRC9jb21taXQvYmI5YmNiZDUxZGY3YzNjYjc2YzU4MjMwMzhlNGVh MGY3ZTI1YTlmZgorYnV0IHJlbW92ZWQgcGF0Y2ggb24gZmlsZSBzcmMvTW9kL0ZlbS9HdWkvVmll d1Byb3ZpZGVyRmVtUG9zdE9iamVjdC5jcHAgOiBhbHJlYWR5IGFwcGxpZWQgKDIwMjEtMDEtMjAp CiAKIGRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9TTURTX01lc2hFbGVt ZW50Lmh4eCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19NZXNoRWxlbWVudC5o eHgKLWluZGV4IDE0YTZkOWE3Ni4uN2I5ZDg4ZGIxIDEwMDY0NAoraW5kZXggMTRhNmQ5YTc2M2Yu LjBlOWI5ZTZjOTA1IDEwMDY0NAogLS0tIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01E U19NZXNoRWxlbWVudC5oeHgKICsrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNf TWVzaEVsZW1lbnQuaHh4Ci1AQCAtNDAsMTAgKzQwLDE2IEBACitAQCAtNDAsMTEgKzQwLDE2IEBA CiAgCiAgI2luY2x1ZGUgPHZ0a1R5cGUuaD4KICAjaW5jbHVkZSA8dnRrQ2VsbFR5cGUuaD4KQEAg LTEzLDE1ICsxNCwxNiBAQCBpbmRleCAxNGE2ZDlhNzYuLjdiOWQ4OGRiMSAxMDA2NDQKICAvL3R5 cGVkZWYgdW5zaWduZWQgc2hvcnQgVVNob3J0VHlwZTsKICB0eXBlZGVmIHNob3J0IFNob3J0VHlw ZTsKICB0eXBlZGVmIGludCAgIExvbmdUeXBlOworLQogKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9W MgogK3R5cGVkZWYgY29uc3QgdnRrSWRUeXBlKiB2dGtJZFR5cGVQdHI7CiArI2Vsc2UKICt0eXBl ZGVmIHZ0a0lkVHlwZSogdnRrSWRUeXBlUHRyOwogKyNlbmRpZgotIAogIGNsYXNzIFNNRFNfTWVz aE5vZGU7CiAgY2xhc3MgU01EU19NZXNoRWRnZTsKLUBAIC0xOTIsNyArMTk4LDcgQEAgcHJvdGVj dGVkOgorIGNsYXNzIFNNRFNfTWVzaEZhY2U7CitAQCAtMTkyLDcgKzE5Nyw3IEBAIHByb3RlY3Rl ZDoKICAgIC8vISBFbGVtZW50IGluZGV4IGluIHZlY3RvciBTTURTX01lc2g6Om15Tm9kZXMgb3Ig U01EU19NZXNoOjpteUNlbGxzCiAgICBpbnQgbXlJRDsKICAgIC8vISBpbmRleCBpbiB2dGtVbnN0 cnVjdHVyZWRHcmlkCkBAIC0zMSw3ICszMyw3IEBAIGluZGV4IDE0YTZkOWE3Ni4uN2I5ZDg4ZGIx IDEwMDY0NAogICAgU2hvcnRUeXBlIG15TWVzaElkOwogICAgLy8hIFN1YlNoYXBlIGFuZCBTdWJN ZXNoIGlkZW50aWZpY2F0aW9uIGluIFNNRVNIRFMKIGRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3Nh bG9tZXNtZXNoL2luYy9TTURTX1Vuc3RydWN0dXJlZEdyaWQuaHh4IGIvc3JjLzNyZFBhcnR5L3Nh bG9tZXNtZXNoL2luYy9TTURTX1Vuc3RydWN0dXJlZEdyaWQuaHh4Ci1pbmRleCA5ZTRhMjNlZGQu Ljc3NDY1ODE0NSAxMDA2NDQKK2luZGV4IDllNGEyM2VkZGZiLi43NzQ2NTgxNDU0MSAxMDA2NDQK IC0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5o eHgKICsrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3Jp ZC5oeHgKIEBAIC05NSw3ICs5NSwxMSBAQCBwdWJsaWM6CkBAIC00NywyNSArNDksMjcgQEAgaW5k ZXggOWU0YTIzZWRkLi43NzQ2NTgxNDUgMTAwNjQ0CiAgICBTTURTX0Rvd253YXJkKiBnZXREb3du QXJyYXkodW5zaWduZWQgY2hhciB2dGtUeXBlKQogICAgewogZGlmZiAtLWdpdCBzcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19CYWxsRWxlbWVudC5jcHAgYi9zcmMvM3JkUGFy dHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19CYWxsRWxlbWVudC5jcHAKLWluZGV4IDI5OTA5 M2M5NC4uOTkwZTJiNjQxIDEwMDY0NAoraW5kZXggMjk5MDkzYzk0ZjYuLjI2ODBjMjE3MzA1IDEw MDY0NAogLS0tIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0JhbGxFbGVt ZW50LmNwcAogKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0JhbGxF bGVtZW50LmNwcAotQEAgLTY4LDkgKzY4LDEzIEBAIGJvb2wgU01EU19CYWxsRWxlbWVudDo6Q2hh bmdlTm9kZSAoY29uc3QgU01EU19NZXNoTm9kZSAqIG5vZGUpCitAQCAtNjcsMTAgKzY3LDE2IEBA IHZvaWQgU01EU19CYWxsRWxlbWVudDo6U2V0RGlhbWV0ZXIoZG91YmxlIGRpYW1ldGVyKQorIGJv b2wgU01EU19CYWxsRWxlbWVudDo6Q2hhbmdlTm9kZSAoY29uc3QgU01EU19NZXNoTm9kZSAqIG5v ZGUpCiAgewogICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hM aXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOwotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRr SWRUeXBlKiBwdHMgPSAwOwotKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7Ci0gICBncmlkLT5HZXRD ZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7CiArI2lmZGVmIFZUS19DRUxMX0FSUkFZX1Yy Ci0rLy9GSVhNRTogdnRrOQorKyAgdnRrTmV3PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKKysgIGdy aWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgY2VsbFBvaW50cy5HZXRQb2ludGVyKCkpOworKyAg Y2VsbFBvaW50cy0+U2V0SWQoMCwgbm9kZS0+Z2V0VnRrSWQoKSk7CiArI2Vsc2UKKyAgIHZ0a0lk VHlwZSBucHRzID0gMDsKKyAgIHZ0a0lkVHlwZSogcHRzID0gMDsKKyAgIGdyaWQtPkdldENlbGxQ b2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKICAgIHB0c1swXSA9IG5vZGUtPmdldFZ0a0lkKCk7 CiArI2VuZGlmCiAgICBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZp ZWQoKTsKICAgIHJldHVybiB0cnVlOwogIH0KLUBAIC04Myw3ICs4Nyw4IEBAIHZvaWQgU01EU19C YWxsRWxlbWVudDo6UHJpbnQgKHN0ZDo6b3N0cmVhbSAmIE9TKSBjb25zdAorQEAgLTgzLDcgKzg5 LDggQEAgdm9pZCBTTURTX0JhbGxFbGVtZW50OjpQcmludCAoc3RkOjpvc3RyZWFtICYgT1MpIGNv bnN0CiAgY29uc3QgU01EU19NZXNoTm9kZSogU01EU19CYWxsRWxlbWVudDo6R2V0Tm9kZSAoY29u c3QgaW50IGluZCkgY29uc3QKICB7CiAgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01E U19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CkBAIC03Niw3ICs4MCw3IEBA IGluZGV4IDI5OTA5M2M5NC4uOTkwZTJiNjQxIDEwMDY0NAogICAgcmV0dXJuIFNNRFNfTWVzaDo6 X21lc2hMaXN0W215TWVzaElkXS0+RmluZE5vZGVWdGsoIHB0c1sgMCBdKTsKICB9CiBkaWZmIC0t Z2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcCBi L3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcAotaW5k ZXggZDYwNDljMGJkLi43NzU1NWQ1YmMgMTAwNjQ0CitpbmRleCBkNjA0OWMwYmQxOS4uYTQxZjVj MThlNzggMTAwNjQ0CiAtLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNf RG93bndhcmQuY3BwCiArKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNf RG93bndhcmQuY3BwCiBAQCAtMzAzLDcgKzMwMyw3IEBAIGludCBTTURTX0Rvd24xRDo6Z2V0Tm9k ZVNldChpbnQgY2VsbElkLCBpbnQqIG5vZGVTZXQpCkBAIC04OCw2ICs5MiwxNSBAQCBpbmRleCBk NjA0OWMwYmQuLjc3NTU1ZDViYyAxMDA2NDQKICAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHZ0a0lk LCBucHRzLCBwdHMpOwogICAgLy8gTUVTU0FHRSh2dGtJZCA8PCAiICIgPDwgbnB0cyA8PCAiICAi IDw8IF9uYkRvd25DZWxscyk7CiAgICAvL0FTU0VSVChucHRzID09IF9uYkRvd25DZWxscyk7CitA QCAtMzU3LDcgKzM1Nyw3IEBAIGludCBTTURTX0Rvd24xRDo6Y29tcHV0ZVZ0a0NlbGxzKGludCAq cHRzLCBzdGQ6OnZlY3RvcjxpbnQ+JiB2dGtJZHMpCisgICAgIHsKKyAgICAgICB2dGtJZFR5cGUg cG9pbnQgPSBwdHNbaV07CisgICAgICAgaW50IG51bUNlbGxzID0gX2dyaWQtPkdldExpbmtzKCkt PkdldE5jZWxscyhwb2ludCk7CistICAgICAgdnRrSWRUeXBlICpjZWxscyA9IF9ncmlkLT5HZXRM aW5rcygpLT5HZXRDZWxscyhwb2ludCk7CisrICAgICAgdnRrSWRUeXBlUHRyIGNlbGxzID0gX2dy aWQtPkdldExpbmtzKCktPkdldENlbGxzKHBvaW50KTsKKyAgICAgICBmb3IgKGludCBqID0gMDsg aiA8IG51bUNlbGxzOyBqKyspCisgICAgICAgICB7CisgICAgICAgICAgIGludCB2dGtDZWxsSWQg PSBjZWxsc1tqXTsKIEBAIC01MzIsNyArNTMyLDcgQEAgaW50IFNNRFNfRG93bjJEOjpjb21wdXRl Vm9sdW1lSWRzKGludCBjZWxsSWQsIGludCogaWRzKQogICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQn cyBvZiB0aGUgZmFjZQogIApAQCAtOTcsNiArMTEwLDE1IEBAIGluZGV4IGQ2MDQ5YzBiZC4uNzc1 NTVkNWJjIDEwMDY0NAogICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBwdHMp OwogICAgdmVjdG9yPGludD4gbm9kZXM7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG5wdHM7IGkr KykKK0BAIC01NzcsNyArNTc3LDcgQEAgaW50IFNNRFNfRG93bjJEOjpjb21wdXRlVm9sdW1lSWRz RnJvbU5vZGVzRmFjZShpbnQqIHB0cywgaW50IG5wdHMsIGludCogaWRzKQorICAgICAgIHZ0a0lk VHlwZSBwb2ludCA9IHB0c1tpXTsKKyAgICAgICBpbnQgbnVtQ2VsbHMgPSBfZ3JpZC0+R2V0TGlu a3MoKS0+R2V0TmNlbGxzKHBvaW50KTsKKyAgICAgICAvL01FU1NBR0UoImNlbGxzIHBvdXIgIiA8 PCBpIDw8ICIgIiA8PCBudW1DZWxscyk7CistICAgICAgdnRrSWRUeXBlICpjZWxscyA9IF9ncmlk LT5HZXRMaW5rcygpLT5HZXRDZWxscyhwb2ludCk7CisrICAgICAgdnRrSWRUeXBlUHRyIGNlbGxz ID0gX2dyaWQtPkdldExpbmtzKCktPkdldENlbGxzKHBvaW50KTsKKyAgICAgICBmb3IgKGludCBq ID0gMDsgaiA8IG51bUNlbGxzOyBqKyspCisgICAgICAgICB7CisgICAgICAgICAgIGludCB2dGtD ZWxsSWQgPSBjZWxsc1tqXTsKIEBAIC02MjcsNyArNjI3LDcgQEAgaW50IFNNRFNfRG93bjJEOjpj b21wdXRlVm9sdW1lSWRzRnJvbU5vZGVzRmFjZShpbnQqIHB0cywgaW50IG5wdHMsIGludCogaWRz KQogIHZvaWQgU01EU19Eb3duMkQ6OnNldFRlbXBOb2RlcyhpbnQgY2VsbElkLCBpbnQgdnRrSWQp CiAgewpAQCAtMjYwLDEwICsyODIsMTAgQEAgaW5kZXggZDYwNDljMGJkLi43NzU1NWQ1YmMgMTAw NjQ0CiAgCiAgICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQn cyBmb3IgZWFjaCBmYWNlCiBkaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMv U01EUy9TTURTX01lc2guY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NN RFNfTWVzaC5jcHAKLWluZGV4IDRhYzZmZDc2OC4uNTFiMjgxNjk5IDEwMDY0NAoraW5kZXggNjFj OGU3NTFkOTQuLjFlYWMyOTA3ZDNkIDEwMDY0NAogLS0tIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVz aC9zcmMvU01EUy9TTURTX01lc2guY3BwCiArKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTURTL1NNRFNfTWVzaC5jcHAKLUBAIC00NzYzLDcgKzQ3NjMsMTEgQEAgdm9pZCBTTURTX01l c2g6OmR1bXBHcmlkKHN0cmluZyBmaWNkdW1wKQorQEAgLTQ3NjgsNyArNDc2OCwxMSBAQCB2b2lk IFNNRFNfTWVzaDo6ZHVtcEdyaWQoc3RyaW5nIGZpY2R1bXApCiAgICAgICAgICBmaWNjb24gPDwg ZW5kbDsKICAgIH0KICAgIGZpY2NvbiA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gY29ubmVjdGl2aXR5ICIgPDwgIG5iUG9pbnRzIDw8IGVuZGw7CkBAIC0yNzcsMzUgKzI5OSw0 MCBAQCBpbmRleCA0YWM2ZmQ3NjguLjUxYjI4MTY5OSAxMDA2NDQKICAgIHsKICAgICAgICAgIGlu dCBuY2VsbHMgPSBsaW5rcy0+R2V0TmNlbGxzKGkpOwogZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkv c2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoMERFbGVtZW50LmNwcCBiL3NyYy8zcmRQYXJ0 eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2gwREVsZW1lbnQuY3BwCi1pbmRleCA5NTQz OGVhYjAuLmE3ZjgwNTllMCAxMDA2NDQKK2luZGV4IDk1NDM4ZWFiMDY0Li4wZGYzMmUzYjk3YyAx MDA2NDQKIC0tLSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoMERF bGVtZW50LmNwcAogKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01l c2gwREVsZW1lbnQuY3BwCi1AQCAtMTQ3LDcgKzE0Nyw3IEBAIGJvb2wgU01EU19NZXNoMERFbGVt ZW50OjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQg bmJOCitAQCAtMTQ2LDYgKzE0NiwxNyBAQCBib29sIFNNRFNfTWVzaDBERWxlbWVudDo6Q2hhbmdl Tm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTgorICAgaWYg KCBuYk5vZGVzID09IDEgKQogICAgewogICAgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0g U01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CisrI2lmZGVmIFZUS19D RUxMX0FSUkFZX1YyCisrICAgIHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7CisrICAgIGdy aWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgY2VsbFBvaW50cy5HZXRQb2ludGVyKCkpOworKyAg ICBpZiAobmJOb2RlcyAhPSBjZWxsUG9pbnRzLT5HZXROdW1iZXJPZklkcygpKQorKyAgICB7Cisr ICAgICAgTUVTU0FHRSgiQ2hhbmdlTm9kZXMgcHJvYmxlbTogbm90IHRoZSBzYW1lIG51bWJlciBv ZiBub2RlcyAiIDw8IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCkgPDwgIiAtPiAiIDw8IG5i Tm9kZXMpOworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKyAgICBteU5vZGUgPSBub2Rl c1swXTsKKysgICAgY2VsbFBvaW50cy0+U2V0SWQoMCwgbXlOb2RlLT5nZXRWdGtJZCgpKTsKKysj ZWxzZQogICAgICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICAgIHZ0a0lkVHlwZSogcHRzID0gMDsK LSsgICAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICAgIHZ0a0lkVHlwZSogcHRzID0gMDsKICAg ICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotICAgICBpZiAobmJO b2RlcyAhPSBucHRzKQotICAgICB7Ci1AQCAtMTU1LDcgKzE1NSwxMSBAQCBib29sIFNNRFNfTWVz aDBERWxlbWVudDo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29u c3QgaW50IG5iTgotICAgICAgIHJldHVybiBmYWxzZTsKK0BAIC0xNTYsNiArMTY3LDcgQEAgYm9v bCBTTURTX01lc2gwREVsZW1lbnQ6OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5v ZGVzW10sIGNvbnN0IGludCBuYk4KICAgICAgfQogICAgICBteU5vZGUgPSBub2Rlc1swXTsKLSsj aWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsvL0ZJWE1FOiB2dGs5Ci0rI2Vsc2UKICAgICAgcHRz WzBdID0gbXlOb2RlLT5nZXRWdGtJZCgpOwogKyNlbmRpZgogIAogICAgICBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKICAgICAgcmV0dXJuIHRydWU7CiBk aWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2hOb2Rl LmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2hOb2RlLmNw cAotaW5kZXggZjY0N2E1ZjFiLi41YjkwM2M4ZmIgMTAwNjQ0CitpbmRleCBmNjQ3YTVmMWI4Zi4u NWI5MDNjOGZiNTUgMTAwNjQ0CiAtLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURT L1NNRFNfTWVzaE5vZGUuY3BwCiArKysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURT L1NNRFNfTWVzaE5vZGUuY3BwCi1AQCAtMTkxLDcgKzE5MSw3IEBAIHB1YmxpYzoKK0BAIC0xOTEs NyArMTkxLDcgQEAgY2xhc3MgU01EU19NZXNoTm9kZV9NeUludkl0ZXJhdG9yOiBwdWJsaWMgU01E U19FbGVtSXRlcmF0b3IKICBTTURTX0VsZW1JdGVyYXRvclB0ciBTTURTX01lc2hOb2RlOjoKICBH ZXRJbnZlcnNlRWxlbWVudEl0ZXJhdG9yKFNNRFNBYnNfRWxlbWVudFR5cGUgdHlwZSkgY29uc3QK ICB7CkBAIC0zNTEsNyArMzc4LDcgQEAgaW5kZXggZjY0N2E1ZjFiLi41YjkwM2M4ZmIgMTAwNjQ0 CiAgICBpZiAoIHR5cGUgPT0gU01EU0Fic19BbGwgKQogICAgICByZXR1cm4gbC5uY2VsbHM7CiBk aWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Vuc3RydWN0 dXJlZEdyaWQuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVW5z dHJ1Y3R1cmVkR3JpZC5jcHAKLWluZGV4IGZiZDkwM2IxZS4uMTljY2ViY2FiIDEwMDY0NAoraW5k ZXggZmJkOTAzYjFlNzQuLmZmMmI4MWU5Njk0IDEwMDY0NAogLS0tIHNyYy8zcmRQYXJ0eS9zYWxv bWVzbWVzaC9zcmMvU01EUy9TTURTX1Vuc3RydWN0dXJlZEdyaWQuY3BwCiArKysgc3JjLzNyZFBh cnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5jcHAKIEBAIC0x MzksOCArMTM5LDggQEAgaW50IFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6SW5zZXJ0TmV4dExpbmtl ZENlbGwoaW50IHR5cGUsIGludCBucHRzLCB2dGtJZFR5cGUgKnAKQEAgLTM3MCw3ICszOTcsNyBA QCBpbmRleCBmYmQ5MDNiMWUuLjE5Y2NlYmNhYiAxMDA2NDQKICAgICAgICBuZXdUeXBlcy0+U2V0 VmFsdWUoYWxyZWFkeUNvcGllZCwgdGhpcy0+VHlwZXMtPkdldFZhbHVlKGopKTsKICAgICAgICBp ZENlbGxzT2xkVG9OZXdbal0gPSBhbHJlYWR5Q29waWVkOyAvLyBvbGQgdnRrSWQgLS0+IG5ldyB2 dGtJZAogKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKyAgICAgIHZ0a0lkVHlwZSBvbGRMb2M7 IC8vRklYTUU6IHZ0azkKKysgICAgICB2dGtJZFR5cGUgb2xkTG9jID0gdGhpcy0+R2V0Q2VsbExv Y2F0aW9uc0FycmF5KCktPkdldFZhbHVlKGopOwogKyNlbHNlCiAgICAgICAgdnRrSWRUeXBlIG9s ZExvYyA9IHRoaXMtPkxvY2F0aW9ucy0+R2V0VmFsdWUoaik7CiArI2VuZGlmCkBAIC0zODAsMzcg KzQwNyw0NyBAQCBpbmRleCBmYmQ5MDNiMWUuLjE5Y2NlYmNhYiAxMDA2NDQKICAgICAgICB0aGlz LT5Db25uZWN0aXZpdHktPkdldENlbGwob2xkTG9jLCBuYnB0cywgb2xkUHRzQ2VsbCk7CiAgICAg ICAgYXNzZXJ0KG5icHRzIDwgTkJNQVhOT0RFU0lOQ0VMTCk7CiAgICAgICAgLy9NRVNTQUdFKGog PDwgIiAiIDw8IGFscmVhZHlDb3BpZWQgPDwgIiAiIDw8IChpbnQpdGhpcy0+VHlwZXMtPkdldFZh bHVlKGopIDw8ICIgIiA8PCBvbGRMb2MgPDwgIiAiIDw8IG5icHRzICk7Ci1AQCAtOTUzLDE0ICs5 NTcsMTggQEAgdm9pZCBTTURTX1Vuc3RydWN0dXJlZEdyaWQ6OkdldE5vZGVJZHMoc3RkOjpzZXQ8 aW50PiYgbm9kZVNldCwgaW50IGRvd25JZCwgdW5zaWcKK0BAIC05NTIsNiArOTU2LDIxIEBAIHZv aWQgU01EU19VbnN0cnVjdHVyZWRHcmlkOjpHZXROb2RlSWRzKHN0ZDo6c2V0PGludD4mIG5vZGVT ZXQsIGludCBkb3duSWQsIHVuc2lnCisgICovCiAgdm9pZCBTTURTX1Vuc3RydWN0dXJlZEdyaWQ6 Ok1vZGlmeUNlbGxOb2RlcyhpbnQgdnRrVm9sSWQsIHN0ZDo6bWFwPGludCwgaW50PiBsb2NhbENs b25lZE5vZGVJZHMpCiAgewotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpw dHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKLSsgIHZ0a0lk VHlwZVB0ciBwdHM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UK LSAgIHRoaXMtPkdldENlbGxQb2ludHModnRrVm9sSWQsIG5wdHMsIHB0cyk7Ci0gICBmb3IgKGlu dCBpID0gMDsgaSA8IG5wdHM7IGkrKykKLSAgICAgewotICAgICAgIGlmIChsb2NhbENsb25lZE5v ZGVJZHMuY291bnQocHRzW2ldKSkKLSAgICAgICAgIHsKLSAgICAgICAgICAgdnRrSWRUeXBlIG9s ZHB0ID0gcHRzW2ldOwogKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKy8vRklYTUU6IHZ0azkK KysgIHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2ludHM7CisrICB0aGlzLT5HZXRDZWxsUG9pbnRz KHZ0a1ZvbElkLCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7CisrICBmb3IgKHZ0a0lkVHlwZSBp ID0gMDsgaSA8IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCk7IGkrKykKKysgICAgeworKyAg ICAgIGlmIChsb2NhbENsb25lZE5vZGVJZHMuY291bnQoY2VsbFBvaW50cy0+R2V0SWQoaSkpKQor KyAgICAgICAgeworKyAgICAgICAgICB2dGtJZFR5cGUgb2xkcHQgPSBjZWxsUG9pbnRzLT5HZXRJ ZChpKTsKKysgICAgICAgICAgY2VsbFBvaW50cy0+U2V0SWQoaSwgbG9jYWxDbG9uZWROb2RlSWRz W29sZHB0XSk7CisrICAgICAgICAgIC8vTUVTU0FHRShvbGRwdCA8PCAiIC0tPiAiIDw8IHB0c1tp XSk7CisrICAgICAgICAgIC8vdGhpcy0+UmVtb3ZlUmVmZXJlbmNlVG9DZWxsKG9sZHB0LCB2dGtW b2xJZCk7CisrICAgICAgICAgIC8vdGhpcy0+QWRkUmVmZXJlbmNlVG9DZWxsKHB0c1tpXSwgdnRr Vm9sSWQpOworKyAgICAgICAgfQorKyAgICB9CiArI2Vsc2UKLSAgICAgICAgICAgcHRzW2ldID0g bG9jYWxDbG9uZWROb2RlSWRzW29sZHB0XTsKLSsjZW5kaWYKLSAgICAgICAgICAgLy9NRVNTQUdF KG9sZHB0IDw8ICIgLS0+ICIgPDwgcHRzW2ldKTsKLSAgICAgICAgICAgLy90aGlzLT5SZW1vdmVS ZWZlcmVuY2VUb0NlbGwob2xkcHQsIHZ0a1ZvbElkKTsKKyAgIHZ0a0lkVHlwZSBucHRzID0gMDsK KyAgIHZ0a0lkVHlwZSAqcHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRo ZSBmYWNlCisgICB0aGlzLT5HZXRDZWxsUG9pbnRzKHZ0a1ZvbElkLCBucHRzLCBwdHMpOworQEAg LTk2Niw2ICs5ODUsNyBAQCB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6TW9kaWZ5Q2VsbE5v ZGVzKGludCB2dGtWb2xJZCwgc3RkOjptYXA8aW50LCBpbnQ+IGxvYwogICAgICAgICAgICAvL3Ro aXMtPkFkZFJlZmVyZW5jZVRvQ2VsbChwdHNbaV0sIHZ0a1ZvbElkKTsKLUBAIC05OTUsMTEgKzEw MDMsMjAgQEAgdm9pZCBTTURTX1Vuc3RydWN0dXJlZEdyaWQ6OkJ1aWxkTGlua3MoKQorICAgICAg ICAgfQorICAgICB9CisrI2VuZGlmCisgfQorIAorIC8qISByZW9yZGVyIHRoZSBub2RlcyBvZiBh IGZhY2UKK0BAIC05OTUsMTEgKzEwMTUsMjAgQEAgdm9pZCBTTURTX1Vuc3RydWN0dXJlZEdyaWQ6 OkJ1aWxkTGlua3MoKQogICAgICB0aGlzLT5MaW5rcy0+VW5SZWdpc3Rlcih0aGlzKTsKICAgICAg fQogIAogKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKy8vRklYTUU6IHZ0azkKICsgIHRoaXMt PkxpbmtzID0gU01EU19DZWxsTGlua3M6Ok5ldygpOwotKyAgLy90aGlzLT5MaW5rcy0+QWxsb2Nh dGUodGhpcy0+R2V0TnVtYmVyT2ZQb2ludHMoKSk7Ci0rICB0aGlzLT5MaW5rcy0+UmVnaXN0ZXIo dGhpcyk7Ci0rICAvL3RoaXMtPkxpbmtzLT5CdWlsZExpbmtzKHRoaXMsIHRoaXMtPkNvbm5lY3Rp dml0eSk7Ci0rICB0aGlzLT5MaW5rcy0+RGVsZXRlKCk7CisrICBHZXRMaW5rcygpLT5BbGxvY2F0 ZSh0aGlzLT5HZXROdW1iZXJPZlBvaW50cygpKTsKKysgIEdldExpbmtzKCktPlJlZ2lzdGVyKHRo aXMpOworKy8vRklYTUU6IHZ0azkKKysgIEdldExpbmtzKCktPkJ1aWxkTGlua3ModGhpcyk7Cisr ICBHZXRMaW5rcygpLT5EZWxldGUoKTsKICsjZWxzZQogICAgdGhpcy0+TGlua3MgPSBTTURTX0Nl bGxMaW5rczo6TmV3KCk7CiAgICB0aGlzLT5MaW5rcy0+QWxsb2NhdGUodGhpcy0+R2V0TnVtYmVy T2ZQb2ludHMoKSk7CkBAIC00MjIsNyArNDU5LDcgQEAgaW5kZXggZmJkOTAzYjFlLi4xOWNjZWJj YWIgMTAwNjQ0CiAgCiAgLyohIENyZWF0ZSBhIHZvbHVtZSAocHJpc20gb3IgaGV4YWhlZHJvbikg YnkgZHVwbGljYXRpb24gb2YgYSBmYWNlLgogZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21l c21lc2gvc3JjL1NNRFMvU01EU19WdGtDZWxsSXRlcmF0b3IuY3BwIGIvc3JjLzNyZFBhcnR5L3Nh bG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0ZXJhdG9yLmNwcAotaW5kZXggZGViMDU5 ODVmLi42M2I2ZWFiYjcgMTAwNjQ0CitpbmRleCBkZWIwNTk4NWYwMC4uNjNiNmVhYmI3MDQgMTAw NjQ0CiAtLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0 ZXJhdG9yLmNwcAogKysrIHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0 a0NlbGxJdGVyYXRvci5jcHAKIEBAIC0zMyw3ICszMyw4IEBAIFNNRFNfVnRrQ2VsbEl0ZXJhdG9y OjpTTURTX1Z0a0NlbGxJdGVyYXRvcihTTURTX01lc2gqIG1lc2gsIGludCB2dGtDZWxsSWQsIFNN RFNBCkBAIC00NTQsMzEgKzQ5MSwzOCBAQCBpbmRleCBkZWIwNTk4NWYuLjYzYjZlYWJiNyAxMDA2 NDQKICAgICAgaW50IGlkID0gMDsKICAgICAgX25iTm9kZXNJbkZhY2VzID0gMDsKIGRpZmYgLS1n aXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrRWRnZS5jcHAgYi9z cmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtFZGdlLmNwcAotaW5kZXgg OTc4NmFiZjlhLi41OGQyZGYzY2YgMTAwNjQ0CitpbmRleCA5Nzg2YWJmOWFhZS4uNmQ3NzJhM2Nk NGEgMTAwNjQ0CiAtLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRr RWRnZS5jcHAKICsrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtF ZGdlLmNwcAotQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVz KGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQorQEAgLTY3 LDYgKzY3LDE5IEBAIGJvb2wgU01EU19WdGtFZGdlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01l c2hOb2RlICogbm9kZTEsIGNvbnN0IFNNRFNfTWVzaE5vZGUKKyBib29sIFNNRFNfVnRrRWRnZTo6 Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTm9k ZXMpCiAgewogICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hM aXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOworKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgorKyAg dnRrTmV3PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKKysgIGdyaWQtPkdldENlbGxQb2ludHMobXlW dGtJRCwgY2VsbFBvaW50cy5HZXRQb2ludGVyKCkpOworKyAgaWYgKG5iTm9kZXMgIT0gY2VsbFBv aW50cy0+R2V0TnVtYmVyT2ZJZHMoKSkKKysgICAgeworKyAgICAgIE1FU1NBR0UoIkNoYW5nZU5v ZGVzIHByb2JsZW06IG5vdCB0aGUgc2FtZSBudW1iZXIgb2Ygbm9kZXMgIiA8PCBjZWxsUG9pbnRz LT5HZXROdW1iZXJPZklkcygpIDw8ICIgLT4gIiA8PCBuYk5vZGVzKTsKKysgICAgICByZXR1cm4g ZmFsc2U7CisrICAgIH0KKysgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJOb2RlczsgaSsrKQorKyAg ICB7CisrICAgICAgY2VsbFBvaW50cy0+U2V0SWQoaSwgbm9kZXNbaV0tPmdldFZ0a0lkKCkpOwor KyAgICB9CisrI2Vsc2UKICAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSogcHRz ID0gMDsKLSsgIHZ0a0lkVHlwZVB0ciBwdHMgPSAwOworICAgdnRrSWRUeXBlKiBwdHMgPSAwOwog ICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotICAgaWYgKG5iTm9k ZXMgIT0gbnB0cykKK0BAIC03OSw2ICs5Miw3IEBAIGJvb2wgU01EU19WdGtFZGdlOjpDaGFuZ2VO b2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcykKICAg ICAgewotQEAgLTc3LDcgKzc3LDExIEBAIGJvb2wgU01EU19WdGtFZGdlOjpDaGFuZ2VOb2Rlcyhj b25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcykKLSAgICAgfQot ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYk5vZGVzOyBpKyspCi0gICAgIHsKLSsjaWZkZWYgVlRL X0NFTExfQVJSQVlfVjIKLSsvL0ZJWE1FOiB2dGs5Ci0rI2Vsc2UKICAgICAgICBwdHNbaV0gPSBu b2Rlc1tpXS0+Z2V0VnRrSWQoKTsKLSsjZW5kaWYKICAgICAgfQorKyNlbmRpZgogICAgU01EU19N ZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRNeU1vZGlmaWVkKCk7CiAgICByZXR1cm4gdHJ1 ZTsKLUBAIC04Nyw3ICs5MSw3IEBAIGJvb2wgU01EU19WdGtFZGdlOjpJc01lZGl1bU5vZGUoY29u c3QgU01EU19NZXNoTm9kZSogbm9kZSkgY29uc3QKKyB9CitAQCAtODcsNyArMTAxLDcgQEAgYm9v bCBTTURTX1Z0a0VkZ2U6OklzTWVkaXVtTm9kZShjb25zdCBTTURTX01lc2hOb2RlKiBub2RlKSBj b25zdAogIHsKICAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNo TGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKICAgIHZ0a0lkVHlwZSBucHRzID0gMDsKQEAgLTQ4 Nyw3ICs1MzEsNyBAQCBpbmRleCA5Nzg2YWJmOWEuLjU4ZDJkZjNjZiAxMDA2NDQKICAgIGdyaWQt PkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsKICAgIC8vTUVTU0FHRSgiSXNNZWRp dW1Ob2RlICIgPDwgbnB0cyAgPDwgIiAiIDw8IChub2RlLT5nZXRWdGtJZCgpID09IHB0c1tucHRz LTFdKSk7CiAgICByZXR1cm4gKChucHRzID09IDMpICYmIChub2RlLT5nZXRWdGtJZCgpID09IHB0 c1syXSkpOwotQEAgLTEzNyw3ICsxNDEsOCBAQCBjb25zdCBTTURTX01lc2hOb2RlKgorQEAgLTEz Nyw3ICsxNTEsOCBAQCBjb25zdCBTTURTX01lc2hOb2RlKgogIFNNRFNfVnRrRWRnZTo6R2V0Tm9k ZShjb25zdCBpbnQgaW5kKSBjb25zdAogIHsKICAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQg PSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKQEAgLTQ5OCwzMSAr NTQyLDM4IEBAIGluZGV4IDk3ODZhYmY5YS4uNThkMmRmM2NmIDEwMDY0NAogICAgcmV0dXJuIFNN RFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+RmluZE5vZGVWdGsoIHB0c1sgaW5kIF0pOwog IH0KIGRpZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRr RmFjZS5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtGYWNl LmNwcAotaW5kZXggMTM4OWUwZDM1Li5hOTI2MDFmMWUgMTAwNjQ0CitpbmRleCAxMzg5ZTBkMzU4 NS4uY2I5ODFiZmIxOGUgMTAwNjQ0CiAtLS0gc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9T TURTL1NNRFNfVnRrRmFjZS5jcHAKICsrKyBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NN RFMvU01EU19WdGtGYWNlLmNwcAotQEAgLTEwMiw3ICsxMDIsNyBAQCBib29sIFNNRFNfVnRrRmFj ZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50IG5i Tm9kZXMpCitAQCAtMTAxLDYgKzEwMSwxOSBAQCB2b2lkIFNNRFNfVnRrRmFjZTo6aW5pdFF1YWRQ b2x5KGNvbnN0IHN0ZDo6dmVjdG9yPHZ0a0lkVHlwZT4mIG5vZGVJZHMsIFNNRFNfTWVzaAorIGJv b2wgU01EU19WdGtGYWNlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1td LCBjb25zdCBpbnQgbmJOb2RlcykKICB7CiAgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0g U01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CisrI2lmZGVmIFZUS19D RUxMX0FSUkFZX1YyCisrICB2dGtOZXc8dnRrSWRMaXN0PiBjZWxsUG9pbnRzOworKyAgZ3JpZC0+ R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7CisrICBpZiAo bmJOb2RlcyAhPSBjZWxsUG9pbnRzLT5HZXROdW1iZXJPZklkcygpKQorKyAgICB7CisrICAgICAg TUVTU0FHRSgiQ2hhbmdlTm9kZXMgcHJvYmxlbTogbm90IHRoZSBzYW1lIG51bWJlciBvZiBub2Rl cyAiIDw8IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCkgPDwgIiAtPiAiIDw8IG5iTm9kZXMp OworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBu Yk5vZGVzOyBpKyspCisrICAgIHsKKysgICAgICBjZWxsUG9pbnRzLT5TZXRJZChpLCBub2Rlc1tp XS0+Z2V0VnRrSWQoKSk7CisrICAgIH0KKysjZWxzZQogICAgdnRrSWRUeXBlIG5wdHMgPSAwOwot LSAgdnRrSWRUeXBlKiBwdHMgPSAwOwotKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7CisgICB2dGtJ ZFR5cGUqIHB0cyA9IDA7CiAgICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0 cyk7Ci0gICBpZiAobmJOb2RlcyAhPSBucHRzKQorQEAgLTExMyw2ICsxMjYsNyBAQCBib29sIFNN RFNfVnRrRmFjZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29u c3QgaW50IG5iTm9kZXMpCiAgICAgIHsKLUBAIC0xMTEsNyArMTExLDExIEBAIGJvb2wgU01EU19W dGtGYWNlOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBp bnQgbmJOb2RlcykKLSAgICAgfQotICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYk5vZGVzOyBpKysp Ci0gICAgIHsKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsvL0ZJWE1FOiB2dGs5Ci0rI2Vs c2UKICAgICAgICBwdHNbaV0gPSBub2Rlc1tpXS0+Z2V0VnRrSWQoKTsKLSsjZW5kaWYKICAgICAg fQorKyNlbmRpZgogICAgU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRNeU1vZGlm aWVkKCk7CiAgICByZXR1cm4gdHJ1ZTsKLUBAIC0xNzMsNyArMTc3LDggQEAgY29uc3QgU01EU19N ZXNoTm9kZSoKKyB9CitAQCAtMTczLDcgKzE4Nyw4IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqCiAg U01EU19WdGtGYWNlOjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0CiAgewogICAgdnRrVW5z dHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0 R3JpZCgpOwpAQCAtNTMyLDcgKzU4Myw3IEBAIGluZGV4IDEzODllMGQzNS4uYTkyNjAxZjFlIDEw MDY0NAogICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywgcHRzICk7 CiAgICByZXR1cm4gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5GaW5kTm9kZVZ0aygg cHRzWyBpbmQgXSk7CiAgfQotQEAgLTE4Niw3ICsxOTEsOCBAQCBTTURTX1Z0a0ZhY2U6OkdldE5v ZGUoY29uc3QgaW50IGluZCkgY29uc3QKK0BAIC0xODYsNyArMjAxLDggQEAgU01EU19WdGtGYWNl OjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0CiAgaW50IFNNRFNfVnRrRmFjZTo6R2V0Tm9k ZUluZGV4KCBjb25zdCBTTURTX01lc2hOb2RlKiBub2RlICkgY29uc3QKICB7CiAgICB2dGtVbnN0 cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRH cmlkKCk7CkBAIC01NDIsNyArNTkzLDcgQEAgaW5kZXggMTM4OWUwZDM1Li5hOTI2MDFmMWUgMTAw NjQ0CiAgICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlzLT5teVZ0a0lELCBucHRzLCBwdHMgKTsK ICAgIGZvciAoIHZ0a0lkVHlwZSBpID0gMDsgaSA8IG5wdHM7ICsraSApCiAgICAgIGlmICggcHRz W2ldID09IG5vZGUtPmdldFZ0a0lkKCkgKQotQEAgLTI1MSw3ICsyNTcsNyBAQCBib29sIFNNRFNf VnRrRmFjZTo6SXNNZWRpdW1Ob2RlKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUpIGNvbnN0CitA QCAtMjUxLDcgKzI2Nyw3IEBAIGJvb2wgU01EU19WdGtGYWNlOjpJc01lZGl1bU5vZGUoY29uc3Qg U01EU19NZXNoTm9kZSogbm9kZSkgY29uc3QKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAg dnRrSWRUeXBlIG5wdHMgPSAwOwpAQCAtNTUxLDQ4ICs2MDIsNTggQEAgaW5kZXggMTM4OWUwZDM1 Li5hOTI2MDFmMWUgMTAwNjQ0CiAgICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMs IHB0cyk7CiAgICB2dGtJZFR5cGUgbm9kZUlkID0gbm9kZS0+Z2V0VnRrSWQoKTsKICAgIGZvciAo aW50IHJhbmsgPSAwOyByYW5rIDwgbnB0czsgcmFuaysrKQotQEAgLTM1NywxMCArMzYzLDE0IEBA IHZvaWQgU01EU19WdGtGYWNlOjpDaGFuZ2VBcGV4KFNNRFNfTWVzaE5vZGUqIG5vZGUpCitAQCAt MzU2LDExICszNzIsMTggQEAgU01EU19Ob2RlSXRlcmF0b3JQdHIgU01EU19WdGtGYWNlOjppbnRl cmxhY2VkTm9kZXNJdGVyYXRvcigpIGNvbnN0Cisgdm9pZCBTTURTX1Z0a0ZhY2U6OkNoYW5nZUFw ZXgoU01EU19NZXNoTm9kZSogbm9kZSkKICB7CiAgICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlk ID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7CisrI2lmZGVmIFZU S19DRUxMX0FSUkFZX1YyCisrICB2dGtOZXc8dnRrSWRMaXN0PiBjZWxsUG9pbnRzOworKyAgZ3Jp ZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7CisrICBn cmlkLT5SZW1vdmVSZWZlcmVuY2VUb0NlbGwoY2VsbFBvaW50cy0+R2V0SWQoMCksIG15VnRrSUQp OworKyAgY2VsbFBvaW50cy0+U2V0SWQoMCwgbm9kZS0+Z2V0VnRrSWQoKSk7CisrI2Vsc2UKICAg IHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSogcHRzID0gMDsKLSsgIHZ0a0lkVHlw ZVB0ciBwdHMgPSAwOworICAgdnRrSWRUeXBlKiBwdHMgPSAwOwogICAgZ3JpZC0+R2V0Q2VsbFBv aW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwogICAgZ3JpZC0+UmVtb3ZlUmVmZXJlbmNlVG9DZWxs KHB0c1swXSwgbXlWdGtJRCk7Ci0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rLy9GSVhNRTog dnRrOQotKyNlbHNlCiAgICBwdHNbMF0gPSBub2RlLT5nZXRWdGtJZCgpOwogKyNlbmRpZgogICAg bm9kZS0+QWRkSW52ZXJzZUVsZW1lbnQodGhpcyksCiAgICBTTURTX01lc2g6Ol9tZXNoTGlzdFtt eU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKICB9CiBkaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9z YWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a1ZvbHVtZS5jcHAgYi9zcmMvM3JkUGFydHkvc2Fs b21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtWb2x1bWUuY3BwCi1pbmRleCAwMTVlZGY3NWYuLmRh MmY3M2ZmYiAxMDA2NDQKK2luZGV4IDAxNWVkZjc1ZmQyLi4xOWViZDA3NDZjOCAxMDA2NDQKIC0t LSBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtWb2x1bWUuY3BwCiAr Kysgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrVm9sdW1lLmNwcAot QEAgLTEzNCw3ICsxMzQsNyBAQCBib29sIFNNRFNfVnRrVm9sdW1lOjpDaGFuZ2VOb2Rlcyhjb25z dCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcworQEAgLTEzMyw2ICsx MzMsMTkgQEAgdm9pZCBTTURTX1Z0a1ZvbHVtZTo6aW5pdFBvbHkoY29uc3Qgc3RkOjp2ZWN0b3I8 dnRrSWRUeXBlPiYgbm9kZUlkcywKKyBib29sIFNNRFNfVnRrVm9sdW1lOjpDaGFuZ2VOb2Rlcyhj b25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcykKICB7CiAgICB2 dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRd LT5nZXRHcmlkKCk7CisrI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCisrICB2dGtOZXc8dnRrSWRM aXN0PiBjZWxsUG9pbnRzOworKyAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBjZWxsUG9p bnRzLkdldFBvaW50ZXIoKSk7CisrICBpZiAobmJOb2RlcyAhPSBjZWxsUG9pbnRzLT5HZXROdW1i ZXJPZklkcygpKQorKyAgICB7CisrICAgICAgTUVTU0FHRSgiQ2hhbmdlTm9kZXMgcHJvYmxlbTog bm90IHRoZSBzYW1lIG51bWJlciBvZiBub2RlcyAiIDw8IGNlbGxQb2ludHMtPkdldE51bWJlck9m SWRzKCkgPDwgIiAtPiAiIDw8IG5iTm9kZXMpOworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAg fQorKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYk5vZGVzOyBpKyspCisrICAgIHsKKysgICAgICBj ZWxsUG9pbnRzLT5TZXRJZChpLCBub2Rlc1tpXS0+Z2V0VnRrSWQoKSk7CisrICAgIH0KKysjZWxz ZQogICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlKiBwdHMgPSAwOwotKyAgdnRr SWRUeXBlUHRyIHB0cyA9IDA7CisgICB2dGtJZFR5cGUqIHB0cyA9IDA7CiAgICBncmlkLT5HZXRD ZWxsUG9pbnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci0gICBpZiAobmJOb2RlcyAhPSBucHRzKQot ICAgICB7Ci1AQCAtMTQzLDcgKzE0MywxMSBAQCBib29sIFNNRFNfVnRrVm9sdW1lOjpDaGFuZ2VO b2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2RlcwotICAg ICB9Ci0gICBmb3IgKGludCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKK0BAIC0xNDUsNiArMTU4 LDcgQEAgYm9vbCBTTURTX1Z0a1ZvbHVtZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9k ZSogbm9kZXNbXSwgY29uc3QgaW50IG5iTm9kZXMKICAgICAgewotKyNpZmRlZiBWVEtfQ0VMTF9B UlJBWV9WMgotKy8vRklYTUU6IHZ0azkKLSsjZWxzZQogICAgICAgIHB0c1tpXSA9IG5vZGVzW2ld LT5nZXRWdGtJZCgpOwotKyNlbmRpZgogICAgICB9CisrI2VuZGlmCiAgICBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKICAgIHJldHVybiB0cnVlOwotQEAg LTIwNyw3ICsyMTEsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6Ok5iRmFjZXMoKSBjb25zdAorIH0K K0BAIC0yMDcsNyArMjIxLDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYkZhY2VzKCkgY29uc3QK ICAgICAgY2FzZSBWVEtfUE9MWUhFRFJPTjoKICAgICAgICB7CiAgICAgICAgICB2dGtJZFR5cGUg bkZhY2VzID0gMDsKQEAgLTYwMSw3ICs2NjIsNyBAQCBpbmRleCAwMTVlZGY3NWYuLmRhMmY3M2Zm YiAxMDA2NDQKICAgICAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZh Y2VzLCBwdElkcyk7CiAgICAgICAgICBuYkZhY2VzID0gbkZhY2VzOwogICAgICAgICAgYnJlYWs7 Ci1AQCAtMjM2LDcgKzI0MCw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJOb2RlcygpIGNvbnN0 CitAQCAtMjM2LDcgKzI1MCw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJOb2RlcygpIGNvbnN0 CiAgICBlbHNlCiAgICAgIHsKICAgICAgICB2dGtJZFR5cGUgbkZhY2VzID0gMDsKQEAgLTYxMCw3 ICs2NzEsNyBAQCBpbmRleCAwMTVlZGY3NWYuLmRhMmY3M2ZmYiAxMDA2NDQKICAgICAgICBncmlk LT5HZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOwogICAgICAgIGlu dCBpZCA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKLUBAIC0y NzYsNyArMjgwLDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYkVkZ2VzKCkgY29uc3QKK0BAIC0y NzYsNyArMjkwLDcgQEAgaW50IFNNRFNfVnRrVm9sdW1lOjpOYkVkZ2VzKCkgY29uc3QKICAgICAg Y2FzZSBWVEtfUE9MWUhFRFJPTjoKICAgICAgICB7CiAgICAgICAgICB2dGtJZFR5cGUgbkZhY2Vz ID0gMDsKQEAgLTYxOSw3ICs2ODAsNyBAQCBpbmRleCAwMTVlZGY3NWYuLmRhMmY3M2ZmYiAxMDA2 NDQKICAgICAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBw dElkcyk7CiAgICAgICAgICBuYkVkZ2VzID0gMDsKICAgICAgICAgIGludCBpZCA9IDA7Ci1AQCAt MzEyLDcgKzMxNiw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6TmJGYWNlTm9kZXMoY29uc3QgaW50 IGZhY2VfaW5kKSBjb25zdAorQEAgLTMxMiw3ICszMjYsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6 Ok5iRmFjZU5vZGVzKGNvbnN0IGludCBmYWNlX2luZCkgY29uc3QKICAgIGlmIChhVnRrVHlwZSA9 PSBWVEtfUE9MWUhFRFJPTikKICAgICAgewogICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwpA QCAtNjI4LDcgKzY4OSw3IEBAIGluZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZiIDEwMDY0NAogICAg ICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7CiAg ICAgICAgaW50IGlkID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5GYWNlczsgaSsr KQotQEAgLTM0Miw3ICszNDYsNyBAQCBjb25zdCBTTURTX01lc2hOb2RlKiBTTURTX1Z0a1ZvbHVt ZTo6R2V0RmFjZU5vZGUoY29uc3QgaW50IGZhY2VfaW5kLCBjb25zdCBpbnQgbgorQEAgLTM0Miw3 ICszNTYsNyBAQCBjb25zdCBTTURTX01lc2hOb2RlKiBTTURTX1Z0a1ZvbHVtZTo6R2V0RmFjZU5v ZGUoY29uc3QgaW50IGZhY2VfaW5kLCBjb25zdCBpbnQgbgogICAgaWYgKGFWdGtUeXBlID09IFZU S19QT0xZSEVEUk9OKQogICAgICB7CiAgICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7CkBAIC02 MzcsNyArNjk4LDcgQEAgaW5kZXggMDE1ZWRmNzVmLi5kYTJmNzNmZmIgMTAwNjQ0CiAgICAgICAg Z3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKICAgICAg ICBpbnQgaWQgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBpKyspCi1A QCAtMzcyLDcgKzM3Niw3IEBAIHN0ZDo6dmVjdG9yPGludD4gU01EU19WdGtWb2x1bWU6OkdldFF1 YW50aXRpZXMoKSBjb25zdAorQEAgLTM3Miw3ICszODYsNyBAQCBzdGQ6OnZlY3RvcjxpbnQ+IFNN RFNfVnRrVm9sdW1lOjpHZXRRdWFudGl0aWVzKCkgY29uc3QKICAgIGlmIChhVnRrVHlwZSA9PSBW VEtfUE9MWUhFRFJPTikKICAgICAgewogICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwpAQCAt NjQ2LDcgKzcwNyw3IEBAIGluZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZiIDEwMDY0NAogICAgICAg IGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7CiAgICAg ICAgaW50IGlkID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5GYWNlczsgaSsrKQot QEAgLTQzMCw3ICs0MzQsNyBAQCBjb25zdCBTTURTX01lc2hOb2RlKiBTTURTX1Z0a1ZvbHVtZTo6 R2V0Tm9kZShjb25zdCBpbnQgaW5kKSBjb25zdAorQEAgLTQzMCw3ICs0NDQsNyBAQCBjb25zdCBT TURTX01lc2hOb2RlKiBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZShjb25zdCBpbnQgaW5kKSBjb25z dAogICAgaWYgKCBhVnRrVHlwZSA9PSBWVEtfUE9MWUhFRFJPTikKICAgIHsKICAgICAgdnRrSWRU eXBlIG5GYWNlcyA9IDA7CkBAIC02NTUsNyArNzE2LDcgQEAgaW5kZXggMDE1ZWRmNzVmLi5kYTJm NzNmZmIgMTAwNjQ0CiAgICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZh Y2VzLCBwdElkcyk7CiAgICAgIGludCBpZCA9IDAsIG5iUG9pbnRzID0gMDsKICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKLUBAIC00NDMsNyArNDQ3LDggQEAgY29uc3QgU01E U19NZXNoTm9kZSogU01EU19WdGtWb2x1bWU6OkdldE5vZGUoY29uc3QgaW50IGluZCkgY29uc3QK K0BAIC00NDMsNyArNDU3LDggQEAgY29uc3QgU01EU19NZXNoTm9kZSogU01EU19WdGtWb2x1bWU6 OkdldE5vZGUoY29uc3QgaW50IGluZCkgY29uc3QKICAgICAgfQogICAgICByZXR1cm4gMDsKICAg IH0KQEAgLTY2NSw3ICs3MjYsNyBAQCBpbmRleCAwMTVlZGY3NWYuLmRhMmY3M2ZmYiAxMDA2NDQK ICAgIGdyaWQtPkdldENlbGxQb2ludHMoIHRoaXMtPm15VnRrSUQsIG5wdHMsIHB0cyApOwogICAg Y29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgaW50ZXJsYWNlID0gU01EU19NZXNoQ2VsbDo6ZnJvbVZ0 a09yZGVyKCBWVEtDZWxsVHlwZSggYVZ0a1R5cGUgKSk7CiAgICByZXR1cm4gU01EU19NZXNoOjpf bWVzaExpc3RbbXlNZXNoSWRdLT5GaW5kTm9kZVZ0ayggcHRzWyBpbnRlcmxhY2UuZW1wdHkoKSA/ IGluZCA6IGludGVybGFjZVtpbmRdXSApOwotQEAgLTQ2MCw3ICs0NjUsNyBAQCBpbnQgU01EU19W dGtWb2x1bWU6OkdldE5vZGVJbmRleCggY29uc3QgU01EU19NZXNoTm9kZSogbm9kZSApIGNvbnN0 CitAQCAtNDYwLDcgKzQ3NSw3IEBAIGludCBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZUluZGV4KCBj b25zdCBTTURTX01lc2hOb2RlKiBub2RlICkgY29uc3QKICAgIGlmICggYVZ0a1R5cGUgPT0gVlRL X1BPTFlIRURST04pCiAgICB7CiAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwpAQCAtNjc0LDcg KzczNSw3IEBAIGluZGV4IDAxNWVkZjc1Zi4uZGEyZjczZmZiIDEwMDY0NAogICAgICBncmlkLT5H ZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJZHMpOwogICAgICBpbnQgaWQg PSAwOwogICAgICBmb3IgKGludCBpRiA9IDA7IGlGIDwgbkZhY2VzOyBpRisrKQotQEAgLTQ3Myw3 ICs0NzgsOCBAQCBpbnQgU01EU19WdGtWb2x1bWU6OkdldE5vZGVJbmRleCggY29uc3QgU01EU19N ZXNoTm9kZSogbm9kZSApIGNvbnN0CitAQCAtNDczLDcgKzQ4OCw4IEBAIGludCBTTURTX1Z0a1Zv bHVtZTo6R2V0Tm9kZUluZGV4KCBjb25zdCBTTURTX01lc2hOb2RlKiBub2RlICkgY29uc3QKICAg ICAgfQogICAgICByZXR1cm4gLTE7CiAgICB9CkBAIC02ODQsNyArNzQ1LDcgQEAgaW5kZXggMDE1 ZWRmNzVmLi5kYTJmNzNmZmIgMTAwNjQ0CiAgICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlzLT5t eVZ0a0lELCBucHRzLCBwdHMgKTsKICAgIGZvciAoIHZ0a0lkVHlwZSBpID0gMDsgaSA8IG5wdHM7 ICsraSApCiAgICAgIGlmICggcHRzW2ldID09IG5vZGUtPmdldFZ0a0lkKCkgKQotQEAgLTUzNCw3 ICs1NDAsNyBAQCBib29sIFNNRFNfVnRrVm9sdW1lOjpJc01lZGl1bU5vZGUoY29uc3QgU01EU19N ZXNoTm9kZSogbm9kZSkgY29uc3QKK0BAIC01MzQsNyArNTUwLDcgQEAgYm9vbCBTTURTX1Z0a1Zv bHVtZTo6SXNNZWRpdW1Ob2RlKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUpIGNvbnN0CiAgICAg ICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgdnRrSWRUeXBlIG5wdHMgPSAwOwpAQCAtNjk0LDEw ICs3NTUsMTAgQEAgaW5kZXggMDE1ZWRmNzVmLi5kYTJmNzNmZmIgMTAwNjQ0CiAgICB2dGtJZFR5 cGUgbm9kZUlkID0gbm9kZS0+Z2V0VnRrSWQoKTsKICAgIGZvciAoaW50IHJhbmsgPSAwOyByYW5r IDwgbnB0czsgcmFuaysrKQogZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3Jj L1NNRVNIL1NNRVNIX01lc2hFZGl0b3IuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9yLmNwcAotaW5kZXggYTc0MjcwMmZmLi4xZmY0ZDVlZWYg MTAwNjQ0CitpbmRleCBmY2QwNDRiMDBmMi4uZjU0YzI0Zjg2MTggMTAwNjQ0CiAtLS0gc3JjLzNy ZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9yLmNwcAogKysrIHNy Yy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01FU0gvU01FU0hfTWVzaEVkaXRvci5jcHAKLUBA IC0xMTM0Myw3ICsxMTM0Myw3IEBAIGJvb2wgU01FU0hfTWVzaEVkaXRvcjo6RG91YmxlTm9kZXNP bkdyb3VwQm91bmRhcmllcyggY29uc3Qgc3RkOjp2ZWN0b3I8VElEU29ydGVkCitAQCAtMTEzNDgs NyArMTEzNDgsNyBAQCBib29sIFNNRVNIX01lc2hFZGl0b3I6OkRvdWJsZU5vZGVzT25Hcm91cEJv dW5kYXJpZXMoIGNvbnN0IHN0ZDo6dmVjdG9yPFRJRFNvcnRlZAogICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIGludCBvbGRJZCA9ICppdG47CiAgICAgICAgICAgICAgICAvL01FU1NBR0Uo IiAgICAgbm9kZSAiIDw8IG9sZElkKTsKQEAgLTcwNiw3ICs3NjcsNyBAQCBpbmRleCBhNzQyNzAy ZmYuLjFmZjRkNWVlZiAxMDA2NDQKICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxsLm5j ZWxsczsgaSsrKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaW50IHZ0 a0lkID0gbC5jZWxsc1tpXTsKLUBAIC0xMTUyMiw3ICsxMTUyMiw3IEBAIGJvb2wgU01FU0hfTWVz aEVkaXRvcjo6RG91YmxlTm9kZXNPbkdyb3VwQm91bmRhcmllcyggY29uc3Qgc3RkOjp2ZWN0b3I8 VElEU29ydGVkCitAQCAtMTE1MjcsNyArMTE1MjcsNyBAQCBib29sIFNNRVNIX01lc2hFZGl0b3I6 OkRvdWJsZU5vZGVzT25Hcm91cEJvdW5kYXJpZXMoIGNvbnN0IHN0ZDo6dmVjdG9yPFRJRFNvcnRl ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTUVTU0FHRSgi ICBkb21haW4gIiA8PCBpZG9tIDw8ICIgdm9sdW1lICIgPDwgZWxlbS0+R2V0SUQoKSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHZhbHVlc1szXTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dGtJZFR5cGUgbnB0 cyA9IDA7CkBAIC03MTUsNyArNzc2LDcgQEAgaW5kZXggYTc0MjcwMmZmLi4xZmY0ZDVlZWYgMTAw NjQ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC0+R2V0 Q2VsbFBvaW50cyh2dGtWb2xJZHNbaXZvbF0sIG5wdHMsIHB0cyk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU01EU19WdGtWb2x1bWU6OmdyYXZpdHlDZW50ZXIo Z3JpZCwgcHRzLCBucHRzLCB2YWx1ZXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChpZCA9PTApCi1AQCAtMTE3MDMsNyArMTE3MDMsNyBAQCBib29sIFNN RVNIX01lc2hFZGl0b3I6OkRvdWJsZU5vZGVzT25Hcm91cEJvdW5kYXJpZXMoIGNvbnN0IHN0ZDo6 dmVjdG9yPFRJRFNvcnRlZAorQEAgLTExNzA4LDcgKzExNzA4LDcgQEAgYm9vbCBTTUVTSF9NZXNo RWRpdG9yOjpEb3VibGVOb2Rlc09uR3JvdXBCb3VuZGFyaWVzKCBjb25zdCBzdGQ6OnZlY3RvcjxU SURTb3J0ZWQKICAgICAgICAgIHsKICAgICAgICAgICAgaW50IG9sZElkID0gaXRub2QtPmZpcnN0 OwogICAgICAgICAgICAvL01FU1NBR0UoIiAgICAgbm9kZSAiIDw8IG9sZElkKTsKQEAgLTcyNCw3 ICs3ODUsNyBAQCBpbmRleCBhNzQyNzAyZmYuLjFmZjRkNWVlZiAxMDA2NDQKICAgICAgICAgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBsLm5jZWxsczsgaSsrKQogICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIGludCB2dGtJZCA9IGwuY2VsbHNbaV07Ci1AQCAtMTIxNjAsNyArMTIxNjAsNyBA QCB2b2lkIFNNRVNIX01lc2hFZGl0b3I6OkNyZWF0ZUhvbGVTa2luKGRvdWJsZSByYWRpdXMsCitA QCAtMTIxNjUsNyArMTIxNjUsNyBAQCB2b2lkIFNNRVNIX01lc2hFZGl0b3I6OkNyZWF0ZUhvbGVT a2luKGRvdWJsZSByYWRpdXMsCiAgICAgICAgICAgIE1FU1NBR0UoInZvbHVtZSB0byBjaGVjaywg IHZ0a0lkICIgPDwgdnRrSWQgPDwgIiBzbWRzSWQgIiA8PCBtZXNoRFMtPmZyb21WdGtUb1NtZHMo dnRrSWQpKTsKICAgICAgICAgICAgYm9vbCB2b2xJbnNpZGUgPSBmYWxzZTsKICAgICAgICAgICAg dnRrSWRUeXBlIG5wdHMgPSAwOwpAQCAtNzMzLDI4ICs3OTQsMyBAQCBpbmRleCBhNzQyNzAyZmYu LjFmZjRkNWVlZiAxMDA2NDQKICAgICAgICAgICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyh2dGtJZCwg bnB0cywgcHRzKTsKICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPG5wdHM7IGkrKykKICAgICAg ICAgICAgICB7Ci1kaWZmIC0tZ2l0IHNyYy9Nb2QvRmVtL0d1aS9WaWV3UHJvdmlkZXJGZW1Qb3N0 T2JqZWN0LmNwcCBiL3NyYy9Nb2QvRmVtL0d1aS9WaWV3UHJvdmlkZXJGZW1Qb3N0T2JqZWN0LmNw cAotaW5kZXggZGRlMmJkODI0Li4zYWNmZWFkNjUgMTAwNjQ0Ci0tLS0gc3JjL01vZC9GZW0vR3Vp L1ZpZXdQcm92aWRlckZlbVBvc3RPYmplY3QuY3BwCi0rKysgc3JjL01vZC9GZW0vR3VpL1ZpZXdQ cm92aWRlckZlbVBvc3RPYmplY3QuY3BwCi1AQCAtNTYsNiArNTYsMTEgQEAKLSANCi0gdXNpbmcg bmFtZXNwYWNlIEZlbUd1aTsNCi0gDQotKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMg0KLSt0eXBl ZGVmIGNvbnN0IHZ0a0lkVHlwZSogdnRrSWRUeXBlUHRyOw0KLSsjZWxzZQ0KLSt0eXBlZGVmIHZ0 a0lkVHlwZSogdnRrSWRUeXBlUHRyOw0KLSsjZW5kaWYNCi0gDQotIFBST1BFUlRZX1NPVVJDRShG ZW1HdWk6OlZpZXdQcm92aWRlckZlbVBvc3RPYmplY3QsIEd1aTo6Vmlld1Byb3ZpZGVyRG9jdW1l bnRPYmplY3QpDQotIA0KLUBAIC0zMTYsNyArMzIxLDcgQEAgdm9pZCBWaWV3UHJvdmlkZXJGZW1Q b3N0T2JqZWN0Ojp1cGRhdGUzRCgpIHsKLSAgICAgdnRrRGF0YUFycmF5ICp0Y29vcmRzID0gTlVM TDsNCi0gICAgIHZ0a0NlbGxBcnJheSAqY2VsbHM7DQotICAgICB2dGtJZFR5cGUgbnB0cyA9IDA7 DQotLSAgICB2dGtJZFR5cGUgKmluZHggPSAwOw0KLSsgICAgdnRrSWRUeXBlUHRyIGluZHggPSAw Ow0KLSANCi0gICAgIHBvaW50cyA9IHBkLT5HZXRQb2ludHMoKTsNCi0gICAgIHBudERhdGEgPSBw ZC0+R2V0UG9pbnREYXRhKCk7DQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMv MTUxLXB5dGhvbi13YXJuaW5nLnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUxLXB5 dGhvbi13YXJuaW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzZjOGIx YzY1NGIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTEtcHl0 aG9uLXdhcm5pbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1kaWZmIC0t Z2l0IHNyYy9Nb2QvRmVtL2ZlbWlub3V0L2ltcG9ydEZlbmljc01lc2gucHkgc3JjL01vZC9GZW0v ZmVtaW5vdXQvaW1wb3J0RmVuaWNzTWVzaC5weQotaW5kZXggMWJiNDBkZS4uYTBiNTQ4NCAxMDA2 NDQKLS0tLSBzcmMvTW9kL0ZlbS9mZW1pbm91dC9pbXBvcnRGZW5pY3NNZXNoLnB5Ci0rKysgc3Jj L01vZC9GZW0vZmVtaW5vdXQvaW1wb3J0RmVuaWNzTWVzaC5weQotQEAgLTE1NCw3ICsxNTQsNyBA QCBkZWYgZXhwb3J0KG9iamVjdHNsaXN0LCBmaWxlU3RyaW5nKToKLSAgICAgICAgICAgICBGcmVl Q0FELkNvbnNvbGUuUHJpbnRXYXJuaW5nKCJUcmk2IC0+IFRyaTMsIFRldDEwIC0+IFRldDQsIGV0 Yy5cbiIpCi0gICAgICAgICAgICAgd3JpdGVGZW5pY3NYTUwud3JpdGVfZmVuaWNzX21lc2hfeG1s KG9iaiwgZmlsZVN0cmluZykKLSAgICAgICAgIGVsaWYgZmlsZUV4dGVuc2lvbi5sb3dlcigpID09 ICcueGRtZic6Ci0tICAgICAgICAgICAgaWYgaW1wb3J0VG9vbHNGZW0uZ2V0X0ZlbU1lc2hPYmpl Y3RNZXNoR3JvdXBzKG9iaikgaXMgbm90ICgpOgotKyAgICAgICAgICAgIGlmIGltcG9ydFRvb2xz RmVtLmdldF9GZW1NZXNoT2JqZWN0TWVzaEdyb3VwcyhvYmopOgotICAgICAgICAgICAgICAgICAj IGlmIHRoZXJlIGFyZSBncm91cHMgZm91bmQsIG1ha2UgdGFzayBwYW5lbCBhdmFpbGFibGUKLSAg ICAgICAgICAgICAgICAgcGFuZWwgPSBXcml0ZVhETUZUYXNrUGFuZWwob2JqLCBmaWxlU3RyaW5n KQotICAgICAgICAgICAgICAgICBGcmVlQ0FER3VpLkNvbnRyb2wuc2hvd0RpYWxvZyhwYW5lbCkK LWRpZmYgLS1naXQgc3JjL01vZC9GZW0vZmVtaW5vdXQvd3JpdGVGZW5pY3NYRE1GLnB5IHNyYy9N b2QvRmVtL2ZlbWlub3V0L3dyaXRlRmVuaWNzWERNRi5weQotaW5kZXggOWU3ZjAxYi4uNWE5Mzgy MyAxMDA2NDQKLS0tLSBzcmMvTW9kL0ZlbS9mZW1pbm91dC93cml0ZUZlbmljc1hETUYucHkKLSsr KyBzcmMvTW9kL0ZlbS9mZW1pbm91dC93cml0ZUZlbmljc1hETUYucHkKLUBAIC0yNTgsNyArMjU4 LDcgQEAgZGVmIHdyaXRlX2Zlbmljc19tZXNoX3hkbWYoZmVtX21lc2hfb2JqLCBvdXRwdXRmaWxl LCBncm91cF92YWx1ZXNfZGljdD17fSwgZW5jb2QKLSAgICAgZmVtX21lc2ggPSBmZW1fbWVzaF9v YmouRmVtTWVzaAotICAgICBnbXNoZ3JvdXBzID0gZ2V0X0ZlbU1lc2hPYmplY3RNZXNoR3JvdXBz KGZlbV9tZXNoX29iaikKLSAKLS0gICAgaWYgZ21zaGdyb3VwcyBpcyBub3QgKCk6Ci0rICAgIGlm IGdtc2hncm91cHM6Ci0gICAgICAgICBwcmludCgnZm91bmQgbWVzaCBncm91cHMnKQotIAotICAg ICBmb3IgZyBpbiBnbXNoZ3JvdXBzOgotZGlmZiAtLWdpdCBzcmMvTW9kL1BhcnREZXNpZ24vV2l6 YXJkU2hhZnQvU2hhZnQucHkgc3JjL01vZC9QYXJ0RGVzaWduL1dpemFyZFNoYWZ0L1NoYWZ0LnB5 Ci1pbmRleCBjNTE5Yjk3Li44YzIwZWI0IDEwMDY0NAotLS0tIHNyYy9Nb2QvUGFydERlc2lnbi9X aXphcmRTaGFmdC9TaGFmdC5weQotKysrIHNyYy9Nb2QvUGFydERlc2lnbi9XaXphcmRTaGFmdC9T aGFmdC5weQotQEAgLTg4LDcgKzg4LDcgQEAgY2xhc3MgU2hhZnQ6Ci0gICAgICAgICAjIFdlIGRv bid0IGNhbGwgZXF1aWxpYnJpdW0oKSBoZXJlIGJlY2F1c2UgdGhlIG5ldyBzZWdtZW50IGhhcyBu byBjb25zdHJhaW50cyBkZWZpbmVkIHlldAotICAgICAgICAgIyBGaXggZmFjZSByZWZlcmVuY2Ug b2YgZml4ZWQgc2VnbWVudCBpZiBpdCBpcyB0aGUgbGFzdCBvbmUKLSAgICAgICAgIGZvciBpIGlu IHJhbmdlKDEsICBsZW4oc2VsZi5zZWdtZW50cykpOgotLSAgICAgICAgICAgIGlmIHNlbGYuc2Vn bWVudHNbaV0uY29uc3RyYWludFR5cGUgaXMgbm90ICJGaXhlZCI6Ci0rICAgICAgICAgICAgaWYg c2VsZi5zZWdtZW50c1tpXS5jb25zdHJhaW50VHlwZSAhPSAiRml4ZWQiOgotICAgICAgICAgICAg ICAgICBjb250aW51ZQotICAgICAgICAgICAgIGlmIGkgPT0gbGVuKHNlbGYuc2VnbWVudHMpIC0g MToKLSAgICAgICAgICAgICAgICAgc2VsZi5zZWdtZW50c1tpbmRleF0uY29uc3RyYWludC5SZWZl cmVuY2VzID0gWyggc2VsZi5mZWF0dXJlLmZlYXR1cmUsICAiRmFjZSV1IiAlICgyICogKGluZGV4 KzEpICsgMSkgKV0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1Mi1jbWFr ZS12dGs5LnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUyLWNtYWtlLXZ0azkucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mNWM2ZDQwMDA0OTcK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTItY21ha2UtdnRr OS5wYXRjaApAQCAtMCwwICsxLDUzIEBACistLS0gY01ha2UvRnJlZUNBRF9IZWxwZXJzL1NldHVw U2Fsb21lU01FU0guY21ha2UJMjAyMC0xMS0yNiAxNTo1OToyNy4wMDAwMDAwMDAgKzAxMDAKKysr KyBjTWFrZS9GcmVlQ0FEX0hlbHBlcnMvU2V0dXBTYWxvbWVTTUVTSC5jbWFrZQkyMDIwLTExLTI2 IDIzOjA5OjEyLjc3ODI2MjYzNiArMDEwMAorQEAgLTExLDYgKzExLDggQEAKKyAgICAgICAgIHNl dChTTUVTSF9WRVJTSU9OX1RXRUFLIDApCisgCisgICAgICAgICAjaWYgd2UgdXNlIHNtZXNoIHdl IGRlZmluaXRlbHkgYWxzbyBuZWVkIHZ0aywgbm8gbWF0dGVyIG9mIGV4dGVybmFsIG9yIGludGVy bmFsIHNtZXNoCisrICAgICAgICBmaW5kX3BhY2thZ2UoVlRLIFJFUVVJUkVEIE5PX01PRFVMRSkK KysgICAgICAgIGlmKCR7VlRLX01BSk9SX1ZFUlNJT059IExFU1MgOSkKKyAgICAgICAgIHNldCAo VlRLX0NPTVBPTkVOVFMKKyAgICAgICAgICAgICB2dGtDb21tb25Db3JlCisgICAgICAgICAgICAg dnRrQ29tbW9uRGF0YU1vZGVsCitAQCAtMjMsMTggKzI1LDM3IEBACisgICAgICAgICAgICAgdnRr RmlsdGVyc1NvdXJjZXMKKyAgICAgICAgICAgICB2dGtGaWx0ZXJzR2VvbWV0cnkKKyAgICAgICAg ICkKKy0KKy0gICAgICAgICMgY2hlY2sgd2hpY2ggbW9kdWxlcyBhcmUgYXZhaWxhYmxlCistICAg ICAgICBpZihVTklYIE9SIFdJTjMyKQorICAgICAgICAgICAgIGZpbmRfcGFja2FnZShWVEsgQ09N UE9ORU5UUyB2dGtDb21tb25Db3JlIFJFUVVJUkVEIE5PX01PRFVMRSkKKyAgICAgICAgICAgICBs aXN0KEFQUEVORCBWVEtfQ09NUE9ORU5UUyB2dGtJT01QSVBhcmFsbGVsIHZ0a1BhcmFsbGVsTVBJ IHZ0a2hkZjUgdnRrRmlsdGVyc1BhcmFsbGVsRElZMiB2dGtSZW5kZXJpbmdDb3JlIHZ0a0ludGVy YWN0aW9uU3R5bGUgdnRrUmVuZGVyaW5nRnJlZVR5cGUgdnRrUmVuZGVyaW5nT3BlbkdMMikKKysg ICAgICAgIGVsc2UoKQorKyAgICAgICAgICAgICMgVlRLIDkgY2hhbmdlZCBpdHMgY29tcG9uZW50 IG5hbWVzCisrICAgICAgICAgICAgc2V0IChWVEtfQ09NUE9ORU5UUworKyAgICAgICAgICAgICAg ICBDb21tb25Db3JlCisrICAgICAgICAgICAgICAgIENvbW1vbkRhdGFNb2RlbAorKyAgICAgICAg ICAgICAgICBGaWx0ZXJzVmVyZGljdAorKyAgICAgICAgICAgICAgICBJT1hNTAorKyAgICAgICAg ICAgICAgICBGaWx0ZXJzQ29yZQorKyAgICAgICAgICAgICAgICBGaWx0ZXJzR2VuZXJhbAorKyAg ICAgICAgICAgICAgICBJT0xlZ2FjeQorKyAgICAgICAgICAgICAgICBGaWx0ZXJzRXh0cmFjdGlv bgorKyAgICAgICAgICAgICAgICBGaWx0ZXJzU291cmNlcworKyAgICAgICAgICAgICAgICBGaWx0 ZXJzR2VvbWV0cnkKKysgICAgICAgICAgICApCisrICAgICAgICAgICAgZmluZF9wYWNrYWdlKFZU SyBDT01QT05FTlRTIENvbW1vbkNvcmUgUkVRVUlSRUQgTk9fTU9EVUxFKQorKyAgICAgICAgICAg IGxpc3QoQVBQRU5EIFZUS19DT01QT05FTlRTIElPTVBJUGFyYWxsZWwgUGFyYWxsZWxNUEkgaGRm NSBGaWx0ZXJzUGFyYWxsZWxESVkyIFJlbmRlcmluZ0NvcmUgSW50ZXJhY3Rpb25TdHlsZSBSZW5k ZXJpbmdGcmVlVHlwZSBSZW5kZXJpbmdPcGVuR0wyKQorKyAgICAgICAgZW5kaWYoKQorKworKyAg ICAgICAgIyBjaGVjayB3aGljaCBtb2R1bGVzIGFyZSBhdmFpbGFibGUKKyAgICAgICAgICAgICBm b3JlYWNoKF9tb2R1bGUgJHtWVEtfQ09NUE9ORU5UU30pCisrICAgICAgICAgICAgaWYoJHtWVEtf TUFKT1JfVkVSU0lPTn0gTEVTUyA5KQorICAgICAgICAgICAgICAgICBsaXN0IChGSU5EIFZUS19N T0RVTEVTX0VOQUJMRUQgJHtfbW9kdWxlfSBfaW5kZXgpCisrICAgICAgICAgICAgZWxzZSgpCisr ICAgICAgICAgICAgICAgIGxpc3QgKEZJTkQgVlRLX0FWQUlMQUJMRV9DT01QT05FTlRTICR7X21v ZHVsZX0gX2luZGV4KQorKyAgICAgICAgICAgIGVuZGlmKCkKKyAgICAgICAgICAgICAgICAgaWYg KCR7X2luZGV4fSBHUkVBVEVSIC0xKQorICAgICAgICAgICAgICAgICAgICAgbGlzdChBUFBFTkQg QVZBSUxBQkxFX1ZUS19DT01QT05FTlRTICR7X21vZHVsZX0pCisgICAgICAgICAgICAgICAgIGVu ZGlmKCkKKyAgICAgICAgICAgICBlbmRmb3JlYWNoKCkKKy0gICAgICAgIGVuZGlmKCkKKyAKKyAg ICAgICAgICMgZG9uJ3QgY2hlY2sgVkVSU0lPTiA2IGFzIHRoaXMgd291bGQgZXhjbHVkZSBWRVJT SU9OIDcKKyAgICAgICAgIGlmKEFWQUlMQUJMRV9WVEtfQ09NUE9ORU5UUykKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZnJlZWNhZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZnJlZWNhZC90ZW1wbGF0ZQppbmRl eCA2ZmU3NDliNTNkNzAuLjZjOWYyN2M5N2RmMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9mcmVlY2Fk L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZnJlZWNhZC90ZW1wbGF0ZQpAQCAtMSwxNyArMSwxOSBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZnJlZWNhZCcKIHBrZ25hbWU9ZnJlZWNhZAotdmVyc2lv bj0wLjE4LjQKLXJldmlzaW9uPTEwCit2ZXJzaW9uPTAuMTkuMQorcmV2aXNpb249MQogd3Jrc3Jj PSJGcmVlQ0FELSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQogCi0jIENNQUtFX0lOU1RB TExfTElCRElSIGJ5IGRlZmF1bHQgZG9lc24ndCB1c2UgUFJFRklYLCBzbyB3ZSBzZXQgaXQgbWFu dWFsbHkKIF9pbnN0X3ByZWZpeD0vdXNyL2xpYi8ke3BrZ25hbWV9CiBjb25maWd1cmVfYXJncz0i CisgLURQWVRIT05fRVhFQ1VUQUJMRT0vdXNyL2Jpbi9weXRob24zCiAgLURCVUlMRF9RVDU9T04K KyAtREJVSUxEX0ZFTV9ORVRHRU49T0ZGCisgLURCVUlMRF9GTEFUX01FU0g9T04KICAtRENNQUtF X0lOU1RBTExfUFJFRklYPSR7X2luc3RfcHJlZml4fQotIC1EQ01BS0VfSU5TVEFMTF9MSUJESVI9 JHtfaW5zdF9wcmVmaXh9L2xpYgogIC1EQ01BS0VfSU5TVEFMTF9EQVRBUk9PVERJUj0vdXNyL3No YXJlCisgLURDTUFLRV9JTlNUQUxMX0RBVEFESVI9L3Vzci9zaGFyZS8ke3BrZ25hbWV9CiAgLURN RURGSUxFX0lOQ0xVREVfRElSUz0vdXNyL2luY2x1ZGUvbWVkCiAgLURQWVNJREUyUkNDQklOQVJZ PS91c3IvYmluL3JjYy1xdDUKICAtRFBZU0lERTJVSUNCSU5BUlk9L3Vzci9iaW4vdWljLXF0NSIK QEAgLTIxLDIwICsyMywyMCBAQCBtYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCBib29zdC1kZXZl bCBsaWJ4ZXJjZXMtYy1kZXZlbCB6bGliLWRldmVsIG9jY3QtZGV2ZWwKICBjb2luMy1kZXZlbCBs aWJzaGlib2tlbjItZGV2ZWwgbGlic3BuYXYtZGV2ZWwgcHlzaWRlMi10b29scwogIGxpYmx6NC1k ZXZlbCBsaWJweXNpZGUyLXB5dGhvbjMtZGV2ZWwgcHl0aG9uMy1tYXRwbG90bGliIG5ldGNkZi1k ZXZlbAogIGpzb25jcHAtZGV2ZWwgcXQ1LWRldmVsIHF0NS1zdmctZGV2ZWwgcXQ1LXRvb2xzLWRl dmVsIHF0NS13ZWJraXQtZGV2ZWwKLSBxdDUteDExZXh0cmFzLWRldmVsIGNvaW4zLWRvYyBnbGV3 LWRldmVsIgorIHF0NS14bWxwYXR0ZXJucy1kZXZlbCBjb2luMy1kb2MgZ2xldy1kZXZlbCIKIAot IyBGcmVlQ0FEIGhlbHA6IHF0NS9hc3Npc3RhbnQgd2l0aCBkYXRhcyBpbiBTUUxpdGUgZm9ybWF0 CisjIEZyZWVDQUQgaGVscDogcXQ1L2Fzc2lzdGFudCB3aXRoIFNRTGl0ZSBzdG9yYWdlCiBkZXBl bmRzPSJweXRob24zLW1hdHBsb3RsaWIgcHl0aG9uMy1weXNpZGUyIHF0NS1wbHVnaW4tc3FsaXRl IHB5dGhvbjMtcGl2eSIKIAogcHl0aG9uX3ZlcnNpb249MwotcHljb21waWxlX2RpcnM9InVzci9s aWIvJHtwa2duYW1lfS9Nb2QgdXNyL2xpYi8ke3BrZ25hbWV9L2RhdGEvTW9kIgorcHljb21waWxl X2RpcnM9InVzci9saWIvJHtwa2duYW1lfS9Nb2QiCiAKIHNob3J0X2Rlc2M9IkdlbmVyYWwgcHVy cG9zZSAzRCBDQUQgbW9kZWxlciIKIG1haW50YWluZXI9InlvcGl0byA8cGllcnJlLmJvdXJnaW5A ZnJlZS5mcj4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2ZyZWVjYWR3ZWIub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0ZyZWVDQUQv RnJlZUNBRC9hcmNoaXZlLyR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09NGUwY2NlNDQ3YjMx Yjg5ODlhMDBjZjY4YzQ5YWUwMTJjZThlNTU0NmE1NmM2ZTA4NzRmYmQ4ZjdkZGVkZmZkMgorY2hl Y2tzdW09NWVjMDAwM2MxOGRmMjA0ZjdiNDQ5ZDRhYzBhODJmOTQ1YjQxNjEzYTAyNjQxMjdkZTNl ZjE2ZjZiMmVmYTYwZgogCiBpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSBtdXNsIF07IHRoZW4K IAltYWtlZGVwZW5kcys9IiBsaWJleGVjaW5mby1kZXZlbCIKQEAgLTQzLDEzICs0NSwxMyBAQCBm aQogCiBwb3N0X2V4dHJhY3QoKSB7CiAJIyBSZXBvcnQgZXhhY3QgbWlub3IgdmVyc2lvbgotCXNl ZCAtaSAtZSAicyxeXChzZXQoUEFDS0FHRV9WRVJTSU9OX01JTk9SXCkgLiosXDEgXCIke3ZlcnNp b24jKi59XCIpLCIgQ01ha2VMaXN0cy50eHQKKwl2c2VkIC1pIC1lICJzLF5cKHNldChQQUNLQUdF X1ZFUlNJT05fTUlOT1JcKSAuKixcMSBcIiR7dmVyc2lvbiMqLn1cIiksIiBDTWFrZUxpc3RzLnR4 dAogCiAJIyBTdWJXQ1Jldi5weSAoU0NNIGNoZWNrKSByZXBvcnRzICJ1bmtub3duIiBmb3IgdGhl c2UgZmllbGRzCi0Jc2VkIC1pIC1lICJzLFwke1BBQ0tBR0VfV0NSRUZ9LCR7cmV2aXNpb259X3Zv aWRsaW51eCwiIFwKLQkgICAgICAgLWUgInMsXCR7UEFDS0FHRV9XQ0RBVEV9LChmcm9tIHJlbGVh c2UpLCIgXAotCSAgICAgICAtZSAicyxcJHtQQUNLQUdFX1dDVVJMfSxWb2lkTGludXggcGFja2Fn ZSAke3BrZ25hbWV9LCIgXAotCSAgICAgICBzcmMvQnVpbGQvVmVyc2lvbi5oLmNtYWtlCisJdnNl ZCAtZSAicyxcJHtQQUNLQUdFX1dDUkVGfSwke3JldmlzaW9ufV92b2lkbGludXgsIiBcCisJICAg ICAtZSAicyxcJHtQQUNLQUdFX1dDREFURX0sKGZyb20gcmVsZWFzZSksIiBcCisJICAgICAtZSAi cyxcJHtQQUNLQUdFX1dDVVJMfSxWb2lkTGludXggcGFja2FnZSAke3BrZ25hbWV9LCIgXAorCSAg ICAgLWkgc3JjL0J1aWxkL1ZlcnNpb24uaC5jbWFrZQogfQogCiBwb3N0X2luc3RhbGwoKSB7Cg== --===============9156964498527003098==--