From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Ondrej Holy To: git-commits@fedoraproject.org Subject: [rpms/freerdp2] epel10.2: Backport several CVE fixes Date: Tue, 01 Sep 2026 12:59:43 GMT Message-ID: <178826758307.1.7581117448919525951.rpms-freerdp2-178cb795e938@fedoraproject.org> List-ID: X-Git-Repo: rpms/freerdp2 X-Git-Branch: epel10.2 X-Git-Rev: 178cb795e9381a8a88491dcca5abbca88d7873e9 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZnJlZXJkcDIKICAgICAgICAgICAgQnJhbmNoIDogZXBlbDEwLjIKICAgICAg ICAgICAgQ29tbWl0IDogMTc4Y2I3OTVlOTM4MWE4YTg4NDkxZGNjYTVhYmJjYTg4ZDc4NzNlOQog ICAgICAgICAgICBBdXRob3IgOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KICAgICAg ICAgICAgRGF0ZSAgIDogMjAyNi0wOS0wMVQwODo1NTo1OCswMDowMAogICAgICAgICAgICBTdGF0 cyAgOiArNDczNy8tMSBpbiA1MyBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBzOi8v c3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZnJlZXJkcDIvYy8xNzhjYjc5NWU5MzgxYThhODg0 OTFkY2NhNWFiYmNhODhkNzg3M2U5P2JyYW5jaD1lcGVsMTAuMgoKICAgICAgICAgICAgTG9nOgog ICAgICAgICAgICBCYWNrcG9ydCBzZXZlcmFsIENWRSBmaXhlcwoKSXQgZml4ZXMgQ1ZFLTIwMjYt MjI4NTIsIENWRS0yMDI2LTIyODU0LCBDVkUtMjAyNi0yMjg1NSwgQ1ZFLTIwMjYtMjI4NTYsCkNW RS0yMDI2LTIyODU4LCBDVkUtMjAyNi0yMjg1OSwgQ1ZFLTIwMjYtMjM1MzAsIENWRS0yMDI2LTIz NTMxLCBDVkUtMjAyNi0yMzUzMiwKQ1ZFLTIwMjYtMjM1MzMsIENWRS0yMDI2LTIzNTM0LCBDVkUt MjAyNi0yMzczMiwgQ1ZFLTIwMjYtMjM4ODMsIENWRS0yMDI2LTIzODg0LApDVkUtMjAyNi0yMzk0 OCwgQ1ZFLTIwMjYtMjQ0OTEsIENWRS0yMDI2LTI0Njc1LCBDVkUtMjAyNi0yNDY3NiwgQ1ZFLTIw MjYtMjQ2NzksCkNWRS0yMDI2LTI0NjgxLCBDVkUtMjAyNi0yNDY4MywgQ1ZFLTIwMjYtMjQ2ODQs IENWRS0yMDI2LTI1OTUyLCBDVkUtMjAyNi0yNjk1NSwKQ1ZFLTIwMjYtMjY5NjUsIENWRS0yMDI2 LTI2OTg2LCBDVkUtMjAyNi0yNzk1MSwgQ1ZFLTIwMjYtMjk3NzUsIENWRS0yMDI2LTMxODA2LApD VkUtMjAyNi0zMTg4MywgQ1ZFLTIwMjYtMzE4ODQsIENWRS0yMDI2LTMxODg1LCBDVkUtMjAyNi0z Mzk4MywgQ1ZFLTIwMjYtMzM5ODQsCkNWRS0yMDI2LTMzOTg1LCBDVkUtMjAyNi00NTcwMCwgQ1ZF LTIwMjYtNjQ2MjQsIENWRS0yMDI2LTY3Mjg5LCBDVkUtMjAyNi02NzI5OSBhbmQKQ1ZFLTIwMjYt Njg1ODAuCgpSZXNvbHZlczogcmhieiMyNDMwOTE1LCByaGJ6IzI0MzA5MDQsIHJoYnojMjQzMDg5 NCwgcmhieiMyNDMwOTEwLCByaGJ6IzI0MzA4OTkKUmVzb2x2ZXM6IHJoYnojMjQzMDkyMCwgcmhi eiMyNDMwOTI5LCByaGJ6IzI0Mjk3OTIsIHJoYnojMjQyOTgwMSwgcmhieiMyNDI5NzgyClJlc29s dmVzOiByaGJ6IzI0NDMxNDQsIHJoYnojMjQ0Mjk3MSwgcmhieiMyNDI5NzgwLCByaGJ6IzI0Mjk3 OTYsIHJoYnojMjQyOTc4NgpSZXNvbHZlczogcmhieiMyNDM4MjU4LCByaGJ6IzI0MzgyNTYsIHJo YnojMjQzODI1MiwgcmhieiMyNDM4MzIwLCByaGJ6IzI0MzgyNTMKUmVzb2x2ZXM6IHJoYnojMjQz ODI1NCwgcmhieiMyNDM4MjUxLCByaGJ6IzI0MzgyNjEsIHJoYnojMjQ0NzM5MiwgcmhieiMyNDUz MjQxClJlc29sdmVzOiByaGJ6IzI0NTMyMzgsIHJoYnojMjQ0MjgwMiwgcmhieiMyNDQyODAwLCBy aGJ6IzI0NDc0MjcsIHJoYnojMjQ0NzQzMApSZXNvbHZlczogcmhieiMyNDQ3NDExLCByaGJ6IzI0 NDc0MTQsIHJoYnojMjQ1MzI0NSwgcmhieiMyNDQyODA3LCByaGJ6IzI0OTE2ODQKUmVzb2x2ZXM6 IHJoYnojMjUxMDI5NCwgcmhieiMyNTEwNjQ1LCByaGJ6IzI1MDM2NDQsIHJoYnojMjUxMDQ0NgoK Q28tQXV0aG9yZWQtQnk6IENsYXVkZSBTb25uZXQgNC42ICgxTSBjb250ZXh0KSA8bm9yZXBseUBh bnRocm9waWMuY29tPgoKLS0tCmRpZmYgLS1naXQgYS9hbGxvY2F0aW9ucy1maXgtZ3Jvd3RoLW9m LXByZWFsbG9jYXRlZC1idWZmZXJzLnBhdGNoIGIvYWxsb2NhdGlvbnMtZml4LWdyb3d0aC1vZi1w cmVhbGxvY2F0ZWQtYnVmZmVycy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi44MzQ4MzlkCi0tLSAvZGV2L251bGwKKysrIGIvYWxsb2NhdGlvbnMtZml4LWdyb3d0aC1v Zi1wcmVhbGxvY2F0ZWQtYnVmZmVycy5wYXRjaApAQCAtMCwwICsxLDM2IEBACitGcm9tIDU2M2Ex OWE2ODNkNmUwZTdiMTIxOGU0NTU4YTBmYjc1MzMzYjViMzQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMjgg QXByIDIwMjYgMDQ6MTQ6MjMgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2FsbG9jYXRpb25zXSBm aXggZ3Jvd3RoIG9mIHByZWFsbG9jYXRlZCBidWZmZXJzCisKK1BhcnRpYWwgYmFja3BvcnQgb2Yg Y29tbWl0IDExOGFmYzBiOTU0YmE5ZDU2MzJiNzgzNmFkMjRlNDU0NTU1ZWQxMTMuCisKK09ubHkg dGhlIGBTdHJlYW1fRW5zdXJlQ2FwYWNpdHlgIGZpeCBpcyBpbmNsdWRlZC4gT3RoZXIgY2hhbmdl cyBmcm9tCit0aGUgdXBzdHJlYW0gY29tbWl0IChgc2l6ZW9mKFdDSEFSKWAgcmVwbGFjZW1lbnRz LCBjb2xsZWN0aW9uIGdyb3d0aAorcGF0dGVybnMsIGVudmlyb25tZW50IGJsb2NrIGhhbmRsaW5n KSBhcmUgdW5yZWxhdGVkIHRvIENWRS0yMDI2LTI3OTUxLgorCitNYWRlLXdpdGg6IEN1cnNvcgor LS0tCisgd2lucHIvbGlid2lucHIvdXRpbHMvc3RyZWFtLmMgfCA2ICsrKystLQorIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS93 aW5wci9saWJ3aW5wci91dGlscy9zdHJlYW0uYyBiL3dpbnByL2xpYndpbnByL3V0aWxzL3N0cmVh bS5jCitpbmRleCBjYzExOWM3Li5jYjE0NWIwIDEwMDY0NAorLS0tIGEvd2lucHIvbGlid2lucHIv dXRpbHMvc3RyZWFtLmMKKysrKyBiL3dpbnByL2xpYndpbnByL3V0aWxzL3N0cmVhbS5jCitAQCAt NDAsOCArNDAsMTAgQEAgQk9PTCBTdHJlYW1fRW5zdXJlQ2FwYWNpdHkod1N0cmVhbSogcywgc2l6 ZV90IHNpemUpCisgCisgCQlkbworIAkJeworLQkJCW5ld19jYXBhY2l0eSAqPSAyOworLQkJfSB3 aGlsZSAobmV3X2NhcGFjaXR5IDwgc2l6ZSk7CisrCQkJaWYgKG5ld19jYXBhY2l0eSA+IFNJWkVf TUFYIC0gMTI4dWxsKQorKwkJCQlyZXR1cm4gRkFMU0U7CisrCQkJbmV3X2NhcGFjaXR5ICs9IDEy OHVsbDsKKysJCX0gd2hpbGUgKG5ld19jYXBhY2l0eSA8PSBzaXplKTsKKyAKKyAJCXBvc2l0aW9u ID0gU3RyZWFtX0dldFBvc2l0aW9uKHMpOworIAorLS0gCisyLjUzLjAKKwoKZGlmZiAtLWdpdCBh L2NhY2hlLWJpdG1hcC1pbml0aWFsaXplLW92ZXJhbGxvY2F0ZWQtYml0bWFwLWNhY2hlLWV4dHJh LXNsb3QucGF0Y2ggYi9jYWNoZS1iaXRtYXAtaW5pdGlhbGl6ZS1vdmVyYWxsb2NhdGVkLWJpdG1h cC1jYWNoZS1leHRyYS1zbG90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmYzMDFmYjcKLS0tIC9kZXYvbnVsbAorKysgYi9jYWNoZS1iaXRtYXAtaW5pdGlhbGl6ZS1v dmVyYWxsb2NhdGVkLWJpdG1hcC1jYWNoZS1leHRyYS1zbG90LnBhdGNoCkBAIC0wLDAgKzEsNTIg QEAKK0Zyb20gMjMzMjBhNmQ1ZjJlMWM4YTliN2Q2ZjRlM2MyYTFiMDk4NzY1NDMyMSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgor RGF0ZTogVHVlLCAyOCBBcHIgMjAyNiAwNDoyNTo1OCArMDAwMAorU3ViamVjdDogW1BBVENIXSBb Y2FjaGUsYml0bWFwXSBpbml0aWFsaXplIG92ZXJhbGxvY2F0ZWQgYml0bWFwIGNhY2hlIGV4dHJh Cisgc2xvdAorCitCYWNrcG9ydCBvZiBjb21taXQgODI3MGUwYmIzZDY3MjZjOTQ3ZDU3YzkzYmE5 Y2FhOTJhMDUyYjU1Ny4KKworQWRqdXN0ZWQgaHVuayBvZmZzZXRzIGZvciAyLjExLjcuCisKK01h ZGUtd2l0aDogQ3Vyc29yCistLS0KKyBsaWJmcmVlcmRwL2NhY2hlL2JpdG1hcC5jIHwgMTYgKysr KysrKysrKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCisKK2RpZmYgLS1naXQgYS9saWJmcmVlcmRwL2NhY2hlL2JpdG1hcC5jIGIvbGliZnJl ZXJkcC9jYWNoZS9iaXRtYXAuYworaW5kZXggYjhhNGYyMS4uMjMzMjBhNiAxMDA2NDQKKy0tLSBh L2xpYmZyZWVyZHAvY2FjaGUvYml0bWFwLmMKKysrKyBiL2xpYmZyZWVyZHAvY2FjaGUvYml0bWFw LmMKK0BAIC0zMDMsNiArMzAzLDE5IEBAIHJkcEJpdG1hcENhY2hlKiBiaXRtYXBfY2FjaGVfbmV3 KHJkcFNldHRpbmdzKiBzZXR0aW5ncykKKyAJCWNlbGwtPm51bWJlciA9IG5yOworIAl9CisgCisr CS8qIGluaXRpYWxpemUgdGhlIG92ZXJhbGxvY2F0ZWQgZXh0cmEgc2xvdCBmb3Igb2xkIFJEUCBz ZXJ2ZXJzIHRoYXQgc2VuZAorKwkgKiBjYWNoZUlkID09IG1heENlbGxzOyB1c2UgYSBtaW5pbWFs IGFsbG9jYXRpb24gc2luY2Ugbm8gcHJvdG9jb2wtbmVnb3RpYXRlZAorKwkgKiBjYXBhY2l0eSBl eGlzdHMgZm9yIHRoaXMgc2xvdCAqLworKwl7CisrCQlCSVRNQVBfVjJfQ0VMTCogZXh0cmEgPSAm Yml0bWFwQ2FjaGUtPmNlbGxzW2JpdG1hcENhY2hlLT5tYXhDZWxsc107CisrCQkvKiBhbGxvY2F0 ZSBhbiBleHRyYSBlbnRyeSBmb3IgQklUTUFQX0NBQ0hFX1dBSVRJTkdfTElTVF9JTkRFWCAqLwor KwkJZXh0cmEtPmVudHJpZXMgPSAocmRwQml0bWFwKiopY2FsbG9jKDEsIHNpemVvZihyZHBCaXRt YXAqKSk7CisrCisrCQlpZiAoIWV4dHJhLT5lbnRyaWVzKQorKwkJCWdvdG8gZmFpbDsKKysJCWV4 dHJhLT5udW1iZXIgPSAwOworKwl9CisrCisgCXJldHVybiBiaXRtYXBDYWNoZTsKKyBmYWlsOgor IAorQEAgLTMxNSw3ICszMjgsOCBAQCB2b2lkIGJpdG1hcF9jYWNoZV9mcmVlKHJkcEJpdG1hcENh Y2hlKiBiaXRtYXBDYWNoZSkKKyAJaWYgKGJpdG1hcENhY2hlKQorIAl7CisgCQlVSU5UMzIgaTsK Ky0JCWZvciAoaSA9IDA7IGkgPCBiaXRtYXBDYWNoZS0+bWF4Q2VsbHM7IGkrKykKKysJCS8qIGl0 ZXJhdGUgdGhyb3VnaCBtYXhDZWxscyArIDEgdG8gYWxzbyBmcmVlIHRoZSBvdmVyYWxsb2NhdGVk IGV4dHJhIHNsb3QgKi8KKysJCWZvciAoaSA9IDA7IGkgPD0gYml0bWFwQ2FjaGUtPm1heENlbGxz OyBpKyspCisgCQl7CisgCQkJVUlOVDMyIGo7CisgCQkJQklUTUFQX1YyX0NFTEwqIGNlbGwgPSAm Yml0bWFwQ2FjaGUtPmNlbGxzW2ldOworLS0gCisyLjUzLjAKKwoKZGlmZiAtLWdpdCBhL2NhY2hl LWJpdG1hcC1vdmVyYWxsb2NhdGUtYml0bWFwLWNhY2hlLnBhdGNoIGIvY2FjaGUtYml0bWFwLW92 ZXJhbGxvY2F0ZS1iaXRtYXAtY2FjaGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZDVmMGVkYwotLS0gL2Rldi9udWxsCisrKyBiL2NhY2hlLWJpdG1hcC1vdmVyYWxs b2NhdGUtYml0bWFwLWNhY2hlLnBhdGNoCkBAIC0wLDAgKzEsMzMgQEAKK0Zyb20gNjA4YzVkNDBm NmFiNGNhYmQ0ZDU3OTNiMmQ2NDFmNDAxZTE0NjIzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAyOCBBcHIg MjAyNiAwNDoyNTo1MiArMDAwMAorU3ViamVjdDogW1BBVENIXSBbY2FjaGUsYml0bWFwXSBvdmVy YWxsb2NhdGUgYml0bWFwIGNhY2hlCisKK0JhY2twb3J0IG9mIGNvbW1pdCBmZmFkNThmZDJiMzI5 ZWZkODFhMzIzOWU5ZDdlM2M5MjdiOGU1MDNmLgorCitBZGp1c3RlZCBodW5rIG9mZnNldHMgZm9y IDIuMTEuNy4KKworTWFkZS13aXRoOiBDdXJzb3IKKy0tLQorIGxpYmZyZWVyZHAvY2FjaGUvYml0 bWFwLmMgfCA1ICsrKystCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQorCitkaWZmIC0tZ2l0IGEvbGliZnJlZXJkcC9jYWNoZS9iaXRtYXAuYyBiL2xpYmZy ZWVyZHAvY2FjaGUvYml0bWFwLmMKK2luZGV4IDBjZTI1OTkuLmI4YTRmMjEgMTAwNjQ0CistLS0g YS9saWJmcmVlcmRwL2NhY2hlL2JpdG1hcC5jCisrKysgYi9saWJmcmVlcmRwL2NhY2hlL2JpdG1h cC5jCitAQCAtMjgxLDggKzI4MSwxMCBAQCByZHBCaXRtYXBDYWNoZSogYml0bWFwX2NhY2hlX25l dyhyZHBTZXR0aW5ncyogc2V0dGluZ3MpCisgCWJpdG1hcENhY2hlLT5zZXR0aW5ncyA9IHNldHRp bmdzOworIAliaXRtYXBDYWNoZS0+dXBkYXRlID0gKChmcmVlcmRwKilzZXR0aW5ncy0+aW5zdGFu Y2UpLT51cGRhdGU7CisgCWJpdG1hcENhY2hlLT5jb250ZXh0ID0gYml0bWFwQ2FjaGUtPnVwZGF0 ZS0+Y29udGV4dDsKKysKKysJLyogb3ZlcmFsbG9jYXRlIGJ5IDEuIG9sZGVyIFJEUCBzZXJ2ZXJz IGRvIHNlbmQgYSBvZmYgYnkgMSBjYWNoZSBpbmRleC4gKi8KKyAJYml0bWFwQ2FjaGUtPmNlbGxz ID0KKy0JICAgIChCSVRNQVBfVjJfQ0VMTCopY2FsbG9jKHNldHRpbmdzLT5CaXRtYXBDYWNoZVYy TnVtQ2VsbHMsIHNpemVvZihCSVRNQVBfVjJfQ0VMTCkpOworKwkgICAgKEJJVE1BUF9WMl9DRUxM KiljYWxsb2Moc2V0dGluZ3MtPkJpdG1hcENhY2hlVjJOdW1DZWxscyArIDF1bGwsIHNpemVvZihC SVRNQVBfVjJfQ0VMTCkpOworIAorIAlpZiAoIWJpdG1hcENhY2hlLT5jZWxscykKKyAJCWdvdG8g ZmFpbDsKKy0tIAorMi41My4wCisKCmRpZmYgLS1naXQgYS9jYWNoZS1vZmZzY3JlZW4taW52YWxp ZGF0ZS1iaXRtYXAtYmVmb3JlLWZyZWUucGF0Y2ggYi9jYWNoZS1vZmZzY3JlZW4taW52YWxpZGF0 ZS1iaXRtYXAtYmVmb3JlLWZyZWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMzNlMDk0ZAotLS0gL2Rldi9udWxsCisrKyBiL2NhY2hlLW9mZnNjcmVlbi1pbnZhbGlk YXRlLWJpdG1hcC1iZWZvcmUtZnJlZS5wYXRjaApAQCAtMCwwICsxLDQ2IEBACitGcm9tIDRhNDEy NjM4MDQzMGEzNTE3ZDEwMTViNjI4NDc1YjgxNjcwNWNlYjQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgMjIg SmFuIDIwMjYgMTI6NTI6MTYgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2NhY2hlLG9mZnNjcmVl bl0gaW52YWxpZGF0ZSBiaXRtYXAgYmVmb3JlIGZyZWUKKworQmFja3BvcnQgb2YgY29tbWl0IDUy MTA2YTI2NzI2YTJhYmE3N2FhNmQ4NjAxNGQyZWIzNTA3ZjA3ODMuCisKK0NvLUF1dGhvcmVkLUJ5 OiBDbGF1ZGUgPG5vcmVwbHlAYW50aHJvcGljLmNvbT4KKy0tLQorIGxpYmZyZWVyZHAvY2FjaGUv b2Zmc2NyZWVuLmMgfCAxMCArKysrKysrKy0tCisgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZyZWVyZHAvY2FjaGUvb2Zm c2NyZWVuLmMgYi9saWJmcmVlcmRwL2NhY2hlL29mZnNjcmVlbi5jCitpbmRleCBjZGFkNTZiNGQu LjExZTZjYWYyMSAxMDA2NDQKKy0tLSBhL2xpYmZyZWVyZHAvY2FjaGUvb2Zmc2NyZWVuLmMKKysr KyBiL2xpYmZyZWVyZHAvY2FjaGUvb2Zmc2NyZWVuLmMKK0BAIC0xNjAsNyArMTYwLDcgQEAgdm9p ZCBvZmZzY3JlZW5fY2FjaGVfcHV0KHJkcE9mZnNjcmVlbkNhY2hlKiBvZmZzY3JlZW5DYWNoZSwg VUlOVDMyIGluZGV4LCByZHBCaXQKKyAKKyB2b2lkIG9mZnNjcmVlbl9jYWNoZV9kZWxldGUocmRw T2Zmc2NyZWVuQ2FjaGUqIG9mZnNjcmVlbkNhY2hlLCBVSU5UMzIgaW5kZXgpCisgeworLQlyZHBC aXRtYXAqIHByZXZCaXRtYXA7CisrCVdJTlBSX0FTU0VSVChvZmZzY3JlZW5DYWNoZSk7CisgCisg CWlmIChpbmRleCA+PSBvZmZzY3JlZW5DYWNoZS0+bWF4RW50cmllcykKKyAJeworQEAgLTE2OCwx MCArMTY4LDE2IEBAIHZvaWQgb2Zmc2NyZWVuX2NhY2hlX2RlbGV0ZShyZHBPZmZzY3JlZW5DYWNo ZSogb2Zmc2NyZWVuQ2FjaGUsIFVJTlQzMiBpbmRleCkKKyAJCXJldHVybjsKKyAJfQorIAorLQlw cmV2Qml0bWFwID0gb2Zmc2NyZWVuQ2FjaGUtPmVudHJpZXNbaW5kZXhdOworKwlyZHBCaXRtYXAq IHByZXZCaXRtYXAgPSBvZmZzY3JlZW5DYWNoZS0+ZW50cmllc1tpbmRleF07CisgCisgCWlmIChw cmV2Qml0bWFwICE9IE5VTEwpCisrCXsKKysJCVdJTlBSX0FTU0VSVChvZmZzY3JlZW5DYWNoZS0+ dXBkYXRlLT5jb250ZXh0KTsKKysKKysJCS8qIEVuc3VyZSB0aGF0IHRoZSBiaXRtYXAgaXMgbm8g bG9uZ2VyIHVzZWQgaW4gR0RJICovCisrCQlJRkNBTEwocHJldkJpdG1hcC0+U2V0U3VyZmFjZSwg b2Zmc2NyZWVuQ2FjaGUtPnVwZGF0ZS0+Y29udGV4dCwgTlVMTCwgRkFMU0UpOworIAkJQml0bWFw X0ZyZWUob2Zmc2NyZWVuQ2FjaGUtPnVwZGF0ZS0+Y29udGV4dCwgcHJldkJpdG1hcCk7CisrCX0K KyAKKyAJb2Zmc2NyZWVuQ2FjaGUtPmVudHJpZXNbaW5kZXhdID0gTlVMTDsKKyB9CistLSAKKzIu NTIuMAorCgpkaWZmIC0tZ2l0IGEvY2hhbm5lbC1yZHBzbmQtb25seS1jbGVhbi11cC10aHJlYWQt YmVmb3JlLWZyZWUucGF0Y2ggYi9jaGFubmVsLXJkcHNuZC1vbmx5LWNsZWFuLXVwLXRocmVhZC1i ZWZvcmUtZnJlZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWU5 ODFhCi0tLSAvZGV2L251bGwKKysrIGIvY2hhbm5lbC1yZHBzbmQtb25seS1jbGVhbi11cC10aHJl YWQtYmVmb3JlLWZyZWUucGF0Y2gKQEAgLTAsMCArMSwxMTcgQEAKK0Zyb20gYjk2YmZhNDg1YTI4 NjMzNWJjYjRjNjk4ZmE2NDkwZmI0YTk4YjllNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxMyBNYXIgMjAy NiAxNTo0NzoxMSArMDEwMAorU3ViamVjdDogW1BBVENIXSBbY2hhbm5lbCxyZHBzbmRdIG9ubHkg Y2xlYW4gdXAgdGhyZWFkIGJlZm9yZSBmcmVlCisKK0JhY2twb3J0IG9mIGNvbW1pdCBhZmE2ODUx ZGM4MDgzNWQzMTAxZTQwZmNlZjUxYjZjNWMwZjQzZWE1LgorCitNYWRlLXdpdGg6IEN1cnNvcgor LS0tCisgY2hhbm5lbHMvcmRwc25kL2NsaWVudC9yZHBzbmRfbWFpbi5jIHwgMzcgKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAx NiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL3JkcHNuZC9jbGllbnQvcmRw c25kX21haW4uYyBiL2NoYW5uZWxzL3JkcHNuZC9jbGllbnQvcmRwc25kX21haW4uYworaW5kZXgg Yzc2NjBhODU3Li41NzZlMDY1ZDIgMTAwNjQ0CistLS0gYS9jaGFubmVscy9yZHBzbmQvY2xpZW50 L3JkcHNuZF9tYWluLmMKKysrKyBiL2NoYW5uZWxzL3JkcHNuZC9jbGllbnQvcmRwc25kX21haW4u YworQEAgLTEzMyw2ICsxMzMsOCBAQCBzdHJ1Y3QgcmRwc25kX3BsdWdpbgorIAlCT09MIGFwcGx5 Vm9sdW1lOworIH07CisgCisrc3RhdGljIERXT1JEIFdJTkFQSSBwbGF5X3RocmVhZChMUFZPSUQg YXJnKTsKKysKKyBzdGF0aWMgY29uc3QgY2hhciogcmRwc25kX2lzX2R5bl9zdHIoQk9PTCBkeW5h bWljKQorIHsKKyAJaWYgKGR5bmFtaWMpCitAQCAtMTI2Nyw3ICsxMjY5LDYgQEAgc3RhdGljIHZv aWQgY2xlYW51cF9pbnRlcm5hbHMocmRwc25kUGx1Z2luKiByZHBzbmQpCisgCWlmICghcmRwc25k KQorIAkJcmV0dXJuOworIAorLQlyZHBzbmRfdGVybWluYXRlX3RocmVhZChyZHBzbmQpOworIAlp ZiAocmRwc25kLT5wb29sKQorIAkJU3RyZWFtUG9vbF9SZXR1cm4ocmRwc25kLT5wb29sLCByZHBz bmQtPmRhdGFfaW4pOworIAorQEAgLTEzMzEsNiArMTMzMiw3IEBAIHN0YXRpYyB2b2lkIGZyZWVf aW50ZXJuYWxzKHJkcHNuZFBsdWdpbiogcmRwc25kKQorIAlpZiAoIXJkcHNuZCkKKyAJCXJldHVy bjsKKyAKKysJcmRwc25kX3Rlcm1pbmF0ZV90aHJlYWQocmRwc25kKTsKKyAJZnJlZXJkcF9kc3Bf Y29udGV4dF9mcmVlKHJkcHNuZC0+ZHNwX2NvbnRleHQpOworIAlTdHJlYW1Qb29sX0ZyZWUocmRw c25kLT5wb29sKTsKKyAJcmRwc25kLT5wb29sID0gTlVMTDsKK0BAIC0xMzUzLDYgKzEzNTUsMjMg QEAgc3RhdGljIEJPT0wgYWxsb2NhdGVfaW50ZXJuYWxzKHJkcHNuZFBsdWdpbiogcmRwc25kKQor IAkJCXJldHVybiBGQUxTRTsKKyAJfQorIAorKwlpZiAoIXJkcHNuZC0+cXVldWUpCisrCXsKKysJ CXdPYmplY3Qgb2JqID0geyAwIH07CisrCisrCQlvYmouZm5PYmplY3RGcmVlID0gX3F1ZXVlX2Zy ZWU7CisrCQlyZHBzbmQtPnF1ZXVlID0gTWVzc2FnZVF1ZXVlX05ldygmb2JqKTsKKysJCWlmICgh cmRwc25kLT5xdWV1ZSkKKysJCQlyZXR1cm4gRkFMU0U7CisrCX0KKysKKysJaWYgKCFyZHBzbmQt PnRocmVhZCkKKysJeworKwkJcmRwc25kLT50aHJlYWQgPSBDcmVhdGVUaHJlYWQoTlVMTCwgMCwg cGxheV90aHJlYWQsIHJkcHNuZCwgMCwgTlVMTCk7CisrCQlpZiAoIXJkcHNuZC0+dGhyZWFkKQor KwkJCXJldHVybiBGQUxTRTsKKysJfQorKworIAlyZXR1cm4gVFJVRTsKKyB9CisgCitAQCAtMTM5 MSwyMyArMTQxMCwxMiBAQCBzdGF0aWMgRFdPUkQgV0lOQVBJIHBsYXlfdGhyZWFkKExQVk9JRCBh cmcpCisgCisgc3RhdGljIFVJTlQgcmRwc25kX3ZpcnR1YWxfY2hhbm5lbF9ldmVudF9pbml0aWFs aXplZChyZHBzbmRQbHVnaW4qIHJkcHNuZCkKKyB7CistCXdPYmplY3Qgb2JqID0geyAwIH07Cist CisgCWlmICghcmRwc25kKQorIAkJcmV0dXJuIEVSUk9SX0lOVkFMSURfUEFSQU1FVEVSOworIAor LQlvYmouZm5PYmplY3RGcmVlID0gX3F1ZXVlX2ZyZWU7CistCXJkcHNuZC0+cXVldWUgPSBNZXNz YWdlUXVldWVfTmV3KCZvYmopOworLQlpZiAoIXJkcHNuZC0+cXVldWUpCistCQlyZXR1cm4gQ0hB Tk5FTF9SQ19OT19NRU1PUlk7CistCisgCWlmICghYWxsb2NhdGVfaW50ZXJuYWxzKHJkcHNuZCkp CisgCQlyZXR1cm4gQ0hBTk5FTF9SQ19OT19NRU1PUlk7CisgCistCXJkcHNuZC0+dGhyZWFkID0g Q3JlYXRlVGhyZWFkKE5VTEwsIDAsIHBsYXlfdGhyZWFkLCByZHBzbmQsIDAsIE5VTEwpOworLQlp ZiAoIXJkcHNuZC0+dGhyZWFkKQorLQkJcmV0dXJuIENIQU5ORUxfUkNfSU5JVElBTElaQVRJT05f RVJST1I7CistCisgCXJldHVybiBDSEFOTkVMX1JDX09LOworIH0KKyAKK0BAIC0xNDE1LDggKzE0 MjMsNiBAQCB2b2lkIHJkcHNuZF92aXJ0dWFsX2NoYW5uZWxfZXZlbnRfdGVybWluYXRlZChyZHBz bmRQbHVnaW4qIHJkcHNuZCkKKyB7CisgCWlmIChyZHBzbmQpCisgCXsKKy0JCXJkcHNuZF90ZXJt aW5hdGVfdGhyZWFkKHJkcHNuZCk7CistCisgCQlmcmVlX2ludGVybmFscyhyZHBzbmQpOworIAkJ YXVkaW9fZm9ybWF0c19mcmVlKHJkcHNuZC0+Zml4ZWRfZm9ybWF0LCAxKTsKKyAJCWZyZWUocmRw c25kLT5zdWJzeXN0ZW0pOworQEAgLTE2MDQsMTQgKzE2MTAsMTMgQEAgc3RhdGljIFVJTlQgcmRw c25kX29uX2Nsb3NlKElXVFNWaXJ0dWFsQ2hhbm5lbENhbGxiYWNrKiBwQ2hhbm5lbENhbGxiYWNr KQorIAkJSUZDQUxMKHJkcHNuZC0+ZGV2aWNlLT5DbG9zZSwgcmRwc25kLT5kZXZpY2UpOworIAor IAljbGVhbnVwX2ludGVybmFscyhyZHBzbmQpOworLQorKwlmcmVlX2ludGVybmFscyhyZHBzbmQp OworIAlpZiAocmRwc25kLT5kZXZpY2UpCisgCXsKKyAJCUlGQ0FMTChyZHBzbmQtPmRldmljZS0+ RnJlZSwgcmRwc25kLT5kZXZpY2UpOworIAkJcmRwc25kLT5kZXZpY2UgPSBOVUxMOworIAl9Cisg CistCWZyZWVfaW50ZXJuYWxzKHJkcHNuZCk7CisgCWZyZWUocENoYW5uZWxDYWxsYmFjayk7Cisg CXJldHVybiBDSEFOTkVMX1JDX09LOworIH0KKy0tIAorMi41My4wCisKCmRpZmYgLS1naXQgYS9j aGFubmVscy1haW5wdXQtbG9jay1jb250ZXh0LXdoZW4tdXBkYXRpbmctbGlzdGVuZXIucGF0Y2gg Yi9jaGFubmVscy1haW5wdXQtbG9jay1jb250ZXh0LXdoZW4tdXBkYXRpbmctbGlzdGVuZXIucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzEyYjA3YQotLS0gL2Rldi9u dWxsCisrKyBiL2NoYW5uZWxzLWFpbnB1dC1sb2NrLWNvbnRleHQtd2hlbi11cGRhdGluZy1saXN0 ZW5lci5wYXRjaApAQCAtMCwwICsxLDEzMiBAQAorRnJvbSA2YmY0ZTI1NTg4NjFlMDZmZDY4ZWY4 MDM2Nzk2ZmY0NzVhMWMyM2ZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT25kcmVq IEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRlOiBGcmksIDEzIE1hciAyMDI2IDE1OjI0OjA5 ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjaGFubmVscyxhaW5wdXRdIGxvY2sgY29udGV4dCB3 aGVuIHVwZGF0aW5nIGxpc3RlbmVyCisKK0JhY2twb3J0IG9mIGNvbW1pdCBkOWNhMjcyZGNlN2E3 NzZhYjQ3NWU5YjFhOGU4YzNkMjk2OGM4NDg2LgorCitNYWRlLXdpdGg6IEN1cnNvcgorLS0tCisg Y2hhbm5lbHMvYWlucHV0L2NsaWVudC9haW5wdXRfbWFpbi5jIHwgMzggKysrKysrKysrKysrKysr KysrKystLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL2FpbnB1dC9jbGllbnQvYWlucHV0X21h aW4uYyBiL2NoYW5uZWxzL2FpbnB1dC9jbGllbnQvYWlucHV0X21haW4uYworaW5kZXggZDhlYjhl YzU5Li5mZjkwMWQyYTAgMTAwNjQ0CistLS0gYS9jaGFubmVscy9haW5wdXQvY2xpZW50L2FpbnB1 dF9tYWluLmMKKysrKyBiL2NoYW5uZWxzL2FpbnB1dC9jbGllbnQvYWlucHV0X21haW4uYworQEAg LTI4LDYgKzI4LDcgQEAKKyAjaW5jbHVkZSA8d2lucHIvY3J0Lmg+CisgI2luY2x1ZGUgPHdpbnBy L2Fzc2VydC5oPgorICNpbmNsdWRlIDx3aW5wci9zdHJlYW0uaD4KKysjaW5jbHVkZSA8d2lucHIv c3luY2guaD4KKyAjaW5jbHVkZSA8d2lucHIvc3lzaW5mby5oPgorIAorICNpbmNsdWRlICJhaW5w dXRfbWFpbi5oIgorQEAgLTY5LDYgKzcwLDcgQEAgc3RydWN0IEFJTlBVVF9QTFVHSU5fCisgCVVJ TlQzMiBNYWpvclZlcnNpb247CisgCVVJTlQzMiBNaW5vclZlcnNpb247CisgCUJPT0wgaW5pdGlh bGl6ZWQ7CisrCUNSSVRJQ0FMX1NFQ1RJT04gbG9jazsKKyB9OworIAorIC8qKgorQEAgLTEwOSwx MCArMTExLDcgQEAgc3RhdGljIFVJTlQgYWlucHV0X29uX2RhdGFfcmVjZWl2ZWQoSVdUU1ZpcnR1 YWxDaGFubmVsQ2FsbGJhY2sqIHBDaGFubmVsQ2FsbGJhY2sKKyAKKyBzdGF0aWMgVUlOVCBhaW5w dXRfc2VuZF9pbnB1dF9ldmVudChBSW5wdXRDbGllbnRDb250ZXh0KiBjb250ZXh0LCBVSU5UNjQg ZmxhZ3MsIElOVDMyIHgsIElOVDMyIHkpCisgeworLQlBSU5QVVRfUExVR0lOKiBhaW5wdXQ7Cist CUFJTlBVVF9DSEFOTkVMX0NBTExCQUNLKiBjYWxsYmFjazsKKyAJQllURSBidWZmZXJbMzJdID0g eyAwIH07CistCVVJTlQ2NCB0aW1lOworIAl3U3RyZWFtIHNidWZmZXIgPSB7IDAgfTsKKyAJd1N0 cmVhbSogcyA9ICZzYnVmZmVyOworIAorQEAgLTEyMSw4ICsxMjAsOCBAQCBzdGF0aWMgVUlOVCBh aW5wdXRfc2VuZF9pbnB1dF9ldmVudChBSW5wdXRDbGllbnRDb250ZXh0KiBjb250ZXh0LCBVSU5U NjQgZmxhZ3MsCisgCVdJTlBSX0FTU0VSVChzKTsKKyAJV0lOUFJfQVNTRVJUKGNvbnRleHQpOwor IAorLQl0aW1lID0gR2V0VGlja0NvdW50NjQoKTsKKy0JYWlucHV0ID0gKEFJTlBVVF9QTFVHSU4q KWNvbnRleHQtPmhhbmRsZTsKKysJY29uc3QgVUlOVDY0IHRpbWUgPSBHZXRUaWNrQ291bnQ2NCgp OworKwlBSU5QVVRfUExVR0lOKiBhaW5wdXQgPSAoQUlOUFVUX1BMVUdJTiopY29udGV4dC0+aGFu ZGxlOworIAlXSU5QUl9BU1NFUlQoYWlucHV0KTsKKyAJV0lOUFJfQVNTRVJUKGFpbnB1dC0+bGlz dGVuZXJfY2FsbGJhY2spOworIAorQEAgLTEzMiw4ICsxMzEsNiBAQCBzdGF0aWMgVUlOVCBhaW5w dXRfc2VuZF9pbnB1dF9ldmVudChBSW5wdXRDbGllbnRDb250ZXh0KiBjb250ZXh0LCBVSU5UNjQg ZmxhZ3MsCisgCQkgICAgICAgICAgYWlucHV0LT5NYWpvclZlcnNpb24sIGFpbnB1dC0+TWlub3JW ZXJzaW9uKTsKKyAJCXJldHVybiBDSEFOTkVMX1JDX1VOU1VQUE9SVEVEX1ZFUlNJT047CisgCX0K Ky0JY2FsbGJhY2sgPSBhaW5wdXQtPmxpc3RlbmVyX2NhbGxiYWNrLT5jaGFubmVsX2NhbGxiYWNr OworLQlXSU5QUl9BU1NFUlQoY2FsbGJhY2spOworIAorIAl7CisgCQljaGFyIGJ1ZmZlclsxMjhd ID0geyAwIH07CitAQCAtMTUyLDEwICsxNDksMTUgQEAgc3RhdGljIFVJTlQgYWlucHV0X3NlbmRf aW5wdXRfZXZlbnQoQUlucHV0Q2xpZW50Q29udGV4dCogY29udGV4dCwgVUlOVDY0IGZsYWdzLAor IAlTdHJlYW1fU2VhbExlbmd0aChzKTsKKyAKKyAJLyogYWlucHV0IGJhY2sgd2hhdCB3ZSBoYXZl IHJlY2VpdmVkLiBBSU5QVVQgZG9lcyBub3QgaGF2ZSBhbnkgbWVzc2FnZSBJRHMuICovCisrCUVu dGVyQ3JpdGljYWxTZWN0aW9uKCZhaW5wdXQtPmxvY2spOworKwlBSU5QVVRfQ0hBTk5FTF9DQUxM QkFDSyogY2FsbGJhY2sgPSBhaW5wdXQtPmxpc3RlbmVyX2NhbGxiYWNrLT5jaGFubmVsX2NhbGxi YWNrOworKwlXSU5QUl9BU1NFUlQoY2FsbGJhY2spOworIAlXSU5QUl9BU1NFUlQoY2FsbGJhY2st PmNoYW5uZWwpOworIAlXSU5QUl9BU1NFUlQoY2FsbGJhY2stPmNoYW5uZWwtPldyaXRlKTsKKy0J cmV0dXJuIGNhbGxiYWNrLT5jaGFubmVsLT5Xcml0ZShjYWxsYmFjay0+Y2hhbm5lbCwgKFVMT05H KVN0cmVhbV9MZW5ndGgocyksIFN0cmVhbV9CdWZmZXIocyksCistCSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTlVMTCk7CisrCWNvbnN0IFVJTlQgcmMgPSBjYWxsYmFjay0+Y2hhbm5l bC0+V3JpdGUoY2FsbGJhY2stPmNoYW5uZWwsIChVTE9ORylTdHJlYW1fTGVuZ3RoKHMpLAorKwkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbV9CdWZmZXIocyks IE5VTEwpOworKwlMZWF2ZUNyaXRpY2FsU2VjdGlvbigmYWlucHV0LT5sb2NrKTsKKysJcmV0dXJu IHJjOworIH0KKyAKKyAvKioKK0BAIC0xNjcsOCArMTY5LDE2IEBAIHN0YXRpYyBVSU5UIGFpbnB1 dF9vbl9jbG9zZShJV1RTVmlydHVhbENoYW5uZWxDYWxsYmFjayogcENoYW5uZWxDYWxsYmFjaykK KyB7CisgCUFJTlBVVF9DSEFOTkVMX0NBTExCQUNLKiBjYWxsYmFjayA9IChBSU5QVVRfQ0hBTk5F TF9DQUxMQkFDSyopcENoYW5uZWxDYWxsYmFjazsKKyAKKy0JZnJlZShjYWxsYmFjayk7CisrCWlm IChjYWxsYmFjaykKKysJeworKwkJQUlOUFVUX1BMVUdJTiogYWlucHV0ID0gKEFJTlBVVF9QTFVH SU4qKWNhbGxiYWNrLT5wbHVnaW47CisrCQlXSU5QUl9BU1NFUlQoYWlucHV0KTsKKyAKKysJCS8q IExvY2sgaGVyZSB0byBlbnN1cmUgdGhhdCBubyBhaW5wdXRfc2VuZF9pbnB1dF9ldmVudCBpcyBp biBwcm9ncmVzcy4gKi8KKysJCUVudGVyQ3JpdGljYWxTZWN0aW9uKCZhaW5wdXQtPmxvY2spOwor KwkJZnJlZShjYWxsYmFjayk7CisrCQlMZWF2ZUNyaXRpY2FsU2VjdGlvbigmYWlucHV0LT5sb2Nr KTsKKysJfQorIAlyZXR1cm4gQ0hBTk5FTF9SQ19PSzsKKyB9CisgCitAQCAtMjU1LDYgKzI2NSw3 IEBAIHN0YXRpYyBVSU5UIGFpbnB1dF9wbHVnaW5faW5pdGlhbGl6ZShJV1RTUGx1Z2luKiBwUGx1 Z2luLCBJV1RTVmlydHVhbENoYW5uZWxNYW5hCisgc3RhdGljIFVJTlQgYWlucHV0X3BsdWdpbl90 ZXJtaW5hdGVkKElXVFNQbHVnaW4qIHBQbHVnaW4pCisgeworIAlBSU5QVVRfUExVR0lOKiBhaW5w dXQgPSAoQUlOUFVUX1BMVUdJTiopcFBsdWdpbjsKKysKKyAJaWYgKGFpbnB1dCAmJiBhaW5wdXQt Pmxpc3RlbmVyX2NhbGxiYWNrKQorIAl7CisgCQlJV1RTVmlydHVhbENoYW5uZWxNYW5hZ2VyKiBt Z3IgPSBhaW5wdXQtPmxpc3RlbmVyX2NhbGxiYWNrLT5jaGFubmVsX21ncjsKK0BAIC0yNjMsNiAr Mjc0LDcgQEAgc3RhdGljIFVJTlQgYWlucHV0X3BsdWdpbl90ZXJtaW5hdGVkKElXVFNQbHVnaW4q IHBQbHVnaW4pCisgCX0KKyAJaWYgKGFpbnB1dCkKKyAJeworKwkJRGVsZXRlQ3JpdGljYWxTZWN0 aW9uKCZhaW5wdXQtPmxvY2spOworIAkJZnJlZShhaW5wdXQtPmxpc3RlbmVyX2NhbGxiYWNrKTsK KyAJCWZyZWUoYWlucHV0LT5pZmFjZS5wSW50ZXJmYWNlKTsKKyAJfQorQEAgLTMwNiw4ICszMTgs MTIgQEAgVUlOVCBEVkNQbHVnaW5FbnRyeShJRFJEWU5WQ19FTlRSWV9QT0lOVFMqIHBFbnRyeVBv aW50cykKKyAKKyAJCWNvbnRleHQtPmhhbmRsZSA9ICh2b2lkKilhaW5wdXQ7CisgCQljb250ZXh0 LT5BSW5wdXRTZW5kSW5wdXRFdmVudCA9IGFpbnB1dF9zZW5kX2lucHV0X2V2ZW50OworLQkJYWlu cHV0LT5pZmFjZS5wSW50ZXJmYWNlID0gKHZvaWQqKWNvbnRleHQ7CisgCisrCQlJbml0aWFsaXpl Q3JpdGljYWxTZWN0aW9uKCZhaW5wdXQtPmxvY2spOworKworKwkJRW50ZXJDcml0aWNhbFNlY3Rp b24oJmFpbnB1dC0+bG9jayk7CisrCQlhaW5wdXQtPmlmYWNlLnBJbnRlcmZhY2UgPSAodm9pZCop Y29udGV4dDsKKysJCUxlYXZlQ3JpdGljYWxTZWN0aW9uKCZhaW5wdXQtPmxvY2spOworIAkJc3Rh dHVzID0gcEVudHJ5UG9pbnRzLT5SZWdpc3RlclBsdWdpbihwRW50cnlQb2ludHMsIEFJTlBVVF9D SEFOTkVMX05BTUUsICZhaW5wdXQtPmlmYWNlKTsKKyAJfQorIAorLS0gCisyLjUzLjAKKwoKZGlm ZiAtLWdpdCBhL2NoYW5uZWxzLWF1ZGluLWZyZWUtdXAtb2xkLWF1ZGlvLWZvcm1hdHMucGF0Y2gg Yi9jaGFubmVscy1hdWRpbi1mcmVlLXVwLW9sZC1hdWRpby1mb3JtYXRzLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzY2NjMGIKLS0tIC9kZXYvbnVsbAorKysgYi9j aGFubmVscy1hdWRpbi1mcmVlLXVwLW9sZC1hdWRpby1mb3JtYXRzLnBhdGNoCkBAIC0wLDAgKzEs MjcgQEAKK0Zyb20gY2QxZmZhMTEyY2ZiZTFiNDBhOWZkNTdlMjk5YThlYTEyZTIzZGYwZCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGFrYWxsYWJldGggPGFrYWxsYWJldGhAcG9zdGVv Lm5ldD4KK0RhdGU6IFNhdCwgMTAgSmFuIDIwMjYgMDg6MzY6MzggKzAxMDAKK1N1YmplY3Q6IFtQ QVRDSF0gW2NoYW5uZWxzLGF1ZGluXSBmcmVlIHVwIG9sZCBhdWRpbyBmb3JtYXRzCisKKy0tLQor IGNoYW5uZWxzL2F1ZGluL2NsaWVudC9hdWRpbl9tYWluLmMgfCA0ICsrKysKKyAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9jaGFubmVscy9hdWRpbi9jbGll bnQvYXVkaW5fbWFpbi5jIGIvY2hhbm5lbHMvYXVkaW4vY2xpZW50L2F1ZGluX21haW4uYworaW5k ZXggYmNhZjFhNjQ2Li5iNGM4YmE1ODAgMTAwNjQ0CistLS0gYS9jaGFubmVscy9hdWRpbi9jbGll bnQvYXVkaW5fbWFpbi5jCisrKysgYi9jaGFubmVscy9hdWRpbi9jbGllbnQvYXVkaW5fbWFpbi5j CitAQCAtMjA2LDYgKzIwNiwxMCBAQCBzdGF0aWMgVUlOVCBhdWRpbl9wcm9jZXNzX2Zvcm1hdHMo QVVESU5fUExVR0lOKiBhdWRpbiwgQVVESU5fQ0hBTk5FTF9DQUxMQkFDSyogYworIAl9CisgCisg CVN0cmVhbV9TZWVrX1VJTlQzMihzKTsgLyogY2JTaXplRm9ybWF0c1BhY2tldCAqLworKworKwlh dWRpb19mb3JtYXRzX2ZyZWUoY2FsbGJhY2stPmZvcm1hdHMsIGNhbGxiYWNrLT5mb3JtYXRzX2Nv dW50KTsKKysJY2FsbGJhY2stPmZvcm1hdHNfY291bnQgPSAwOworKworIAljYWxsYmFjay0+Zm9y bWF0cyA9IGF1ZGlvX2Zvcm1hdHNfbmV3KE51bUZvcm1hdHMpOworIAorIAlpZiAoIWNhbGxiYWNr LT5mb3JtYXRzKQorLS0gCisyLjUzLjAKKwoKZGlmZiAtLWdpdCBhL2NoYW5uZWxzLWF1ZGluLWxp bWl0LUZyYW1lc1BlclBhY2tldC5wYXRjaCBiL2NoYW5uZWxzLWF1ZGluLWxpbWl0LUZyYW1lc1Bl clBhY2tldC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTE5NTlm Ci0tLSAvZGV2L251bGwKKysrIGIvY2hhbm5lbHMtYXVkaW4tbGltaXQtRnJhbWVzUGVyUGFja2V0 LnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gOTdlOWQ5MDUyODY5MGY2OTczMzk4YzlkN2U0 ZjhkYTUyMTQ1ZjY2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFybWluIE5vdmFr IDxhcm1pbi5ub3Zha0B0aGluY2FzdC5jb20+CitEYXRlOiBTdW4sIDEyIEp1bCAyMDI2IDE3OjM3 OjQ4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjaGFubmVscyxhdWRpbl0gbGltaXQgRnJhbWVz UGVyUGFja2V0CisKKy0tLQorIGNoYW5uZWxzL2F1ZGluL2NsaWVudC9hdWRpbl9tYWluLmMgfCAx MCArKysrKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQorCitkaWZmIC0tZ2l0IGEvY2hhbm5lbHMvYXVkaW4vY2xpZW50L2F1ZGluX21haW4uYyBi L2NoYW5uZWxzL2F1ZGluL2NsaWVudC9hdWRpbl9tYWluLmMKK2luZGV4IDMzMmFlZjlkYS4uMTg2 ZTM1NmNkIDEwMDY0NAorLS0tIGEvY2hhbm5lbHMvYXVkaW4vY2xpZW50L2F1ZGluX21haW4uYwor KysrIGIvY2hhbm5lbHMvYXVkaW4vY2xpZW50L2F1ZGluX21haW4uYworQEAgLTQ4OCw3ICs0ODgs NiBAQCBzdGF0aWMgVUlOVCBhdWRpbl9wcm9jZXNzX29wZW4oQVVESU5fUExVR0lOKiBhdWRpbiwg QVVESU5fQ0hBTk5FTF9DQUxMQkFDSyogY2FsCisgCVN0cmVhbV9SZWFkX1VJTlQzMihzLCBpbml0 aWFsRm9ybWF0KTsKKyAJV0xvZ19QcmludChhdWRpbi0+bG9nLCBXTE9HX0RFQlVHLCAiRnJhbWVz UGVyUGFja2V0PSUiIFBSSXUzMiAiIGluaXRpYWxGb3JtYXQ9JSIgUFJJdTMyICIiLAorIAkgICAg ICAgICAgIEZyYW1lc1BlclBhY2tldCwgaW5pdGlhbEZvcm1hdCk7CistCWF1ZGluLT5GcmFtZXNQ ZXJQYWNrZXQgPSBGcmFtZXNQZXJQYWNrZXQ7CisKKyAJaWYgKGluaXRpYWxGb3JtYXQgPj0gY2Fs bGJhY2stPmZvcm1hdHNfY291bnQpCisgCXsKK0BAIC00OTYsNiArNDk2LDE1IEBAIHN0YXRpYyBV SU5UIGF1ZGluX3Byb2Nlc3Nfb3BlbihBVURJTl9QTFVHSU4qIGF1ZGluLCBBVURJTl9DSEFOTkVM X0NBTExCQUNLKiBjYWwKKyAJCXJldHVybiBFUlJPUl9JTlZBTElEX0RBVEE7CisgCX0KKworKwkv KiBUaGUgUkRQIHByb3RvY29sIGZpZWxkIGFsbG93cyBVSU5UMzJfTUFYLCBidXQgbW9zdCBiYWNr ZW5kIEFQSSB1c2UgSU5UMzIgYXMgaW5wdXQgcGFyYW1ldGVyCisrCSAqIG9yIGRvIHNvbWUgbWF0 aCB3aXRoIGl0LCBzbyBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgZG9lcyBub3QgZXhjZWVkIHJlYXNv bmFibGUgbGltaXRzICovCisrCWlmIChGcmFtZXNQZXJQYWNrZXQgPj0gSU5UMzJfTUFYKQorKwl7 CisrCQlXTG9nX1ByaW50KGF1ZGluLT5sb2csIFdMT0dfRVJST1IsICJpbnZhbGlkIGZyYW1lcyBw ZXIgcGFja2V0ICUiIFBSSXUzMiwgRnJhbWVzUGVyUGFja2V0KTsKKysJCXJldHVybiBFUlJPUl9J TlZBTElEX0RBVEE7CisrCX0KKysKKysJYXVkaW4tPkZyYW1lc1BlclBhY2tldCA9IEZyYW1lc1Bl clBhY2tldDsKKyAJYXVkaW4tPmZvcm1hdCA9ICZjYWxsYmFjay0+Zm9ybWF0c1tpbml0aWFsRm9y bWF0XTsKKworIAlpZiAoIWF1ZGluX29wZW5fZGV2aWNlKGF1ZGluLCBjYWxsYmFjaykpCgpkaWZm IC0tZ2l0IGEvY2hhbm5lbHMtYXVkaW4tcmVzZXQtYXVkaW4tZm9ybWF0LnBhdGNoIGIvY2hhbm5l bHMtYXVkaW4tcmVzZXQtYXVkaW4tZm9ybWF0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmEwNGNlZTQKLS0tIC9kZXYvbnVsbAorKysgYi9jaGFubmVscy1hdWRpbi1y ZXNldC1hdWRpbi1mb3JtYXQucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAorRnJvbSBmYTMzZWRmNTNh MjA4N2MxMDZiMjgwMTc0NWJkZmYwZjRhNTg5NDI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogYWthbGxhYmV0aCA8YWthbGxhYmV0aEBwb3N0ZW8ubmV0PgorRGF0ZTogTW9uLCAyNiBK YW4gMjAyNiAxMDoyMDoyMyArMDEwMAorU3ViamVjdDogW1BBVENIXSBbY2hhbm5lbHMsYXVkaW5d IHJlc2V0IGF1ZGluLT5mb3JtYXQKKworV2hlbmV2ZXIgdGhlIHVuZGVybHlpbmcgc3RydWN0dXJl IGNoYW5nZXMgcmVzZXQgdGhlIHBvaW50ZXIgdG8gTlVMTAorLS0tCisgY2hhbm5lbHMvYXVkaW4v Y2xpZW50L2F1ZGluX21haW4uYyB8IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspCisKK2RpZmYgLS1naXQgYS9jaGFubmVscy9hdWRpbi9jbGllbnQvYXVkaW5fbWFpbi5jIGIv Y2hhbm5lbHMvYXVkaW4vY2xpZW50L2F1ZGluX21haW4uYworaW5kZXggNWZmZTA5MTI3Li4zMzJh ZWY5ZGEgMTAwNjQ0CistLS0gYS9jaGFubmVscy9hdWRpbi9jbGllbnQvYXVkaW5fbWFpbi5jCisr KysgYi9jaGFubmVscy9hdWRpbi9jbGllbnQvYXVkaW5fbWFpbi5jCitAQCAtMjIwLDYgKzIyMCw3 IEBAIHN0YXRpYyBVSU5UIGF1ZGluX3Byb2Nlc3NfZm9ybWF0cyhBVURJTl9QTFVHSU4qIGF1ZGlu LCBBVURJTl9DSEFOTkVMX0NBTExCQUNLKiBjCisgCisgCVN0cmVhbV9TZWVrX1VJTlQzMihzKTsg LyogY2JTaXplRm9ybWF0c1BhY2tldCAqLworIAorKwlhdWRpbi0+Zm9ybWF0ID0gTlVMTDsKKyAJ YXVkaW9fZm9ybWF0c19mcmVlKGNhbGxiYWNrLT5mb3JtYXRzLCBjYWxsYmFjay0+Zm9ybWF0c19j b3VudCk7CisgCWNhbGxiYWNrLT5mb3JtYXRzX2NvdW50ID0gMDsKKyAKK0BAIC0yOTcsNiArMjk4 LDcgQEAgb3V0OgorIAorIAlpZiAoZXJyb3IgIT0gQ0hBTk5FTF9SQ19PSykKKyAJeworKwkJYXVk aW4tPmZvcm1hdCA9IE5VTEw7CisgCQlhdWRpb19mb3JtYXRzX2ZyZWUoY2FsbGJhY2stPmZvcm1h dHMsIE51bUZvcm1hdHMpOworIAkJY2FsbGJhY2stPmZvcm1hdHMgPSBOVUxMOworIAl9CistLSAK KzIuNTMuMAorCgpkaWZmIC0tZ2l0IGEvY2hhbm5lbHMtZHJkeW52Yy1yZXNldC1jaGFubmVsX2Nh bGxiYWNrLWJlZm9yZS1jbG9zZS5wYXRjaCBiL2NoYW5uZWxzLWRyZHludmMtcmVzZXQtY2hhbm5l bF9jYWxsYmFjay1iZWZvcmUtY2xvc2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNmMzNmRkZAotLS0gL2Rldi9udWxsCisrKyBiL2NoYW5uZWxzLWRyZHludmMtcmVz ZXQtY2hhbm5lbF9jYWxsYmFjay1iZWZvcmUtY2xvc2UucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAor RnJvbSA3ODY1YTI4MzJlYmRmZDA0Mzc0Yzc4N2M5MTdiM2VhN2YwNzhiYTJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogT25kcmVqIEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRl OiBXZWQsIDExIE1hciAyMDI2IDE2OjU1OjQ0ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjaGFu bmVscyxkcmR5bnZjXSByZXNldCBjaGFubmVsX2NhbGxiYWNrIGJlZm9yZSBjbG9zZQorCitCYWNr cG9ydCBvZiBjb21taXQgZTAyZTA1MmY2NjkyNTUwZTUzOWQxMGY5OWRlOWMzNWEyMzQ5MmRiMi4K KworTWFkZS13aXRoOiBDdXJzb3IKKy0tLQorIGNoYW5uZWxzL2RyZHludmMvY2xpZW50L2RyZHlu dmNfbWFpbi5jIHwgNyArKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL2RyZHludmMvY2xpZW50L2Ry ZHludmNfbWFpbi5jIGIvY2hhbm5lbHMvZHJkeW52Yy9jbGllbnQvZHJkeW52Y19tYWluLmMKK2lu ZGV4IGIyMDA1YTkwMy4uMGE0YWY3MTc5IDEwMDY0NAorLS0tIGEvY2hhbm5lbHMvZHJkeW52Yy9j bGllbnQvZHJkeW52Y19tYWluLmMKKysrKyBiL2NoYW5uZWxzL2RyZHludmMvY2xpZW50L2RyZHlu dmNfbWFpbi5jCitAQCAtMzQ2LDEwICszNDYsMTEgQEAgc3RhdGljIHZvaWQgZHZjbWFuX2NoYW5u ZWxfZnJlZSh2b2lkKiBhcmcpCisgCisgCWlmIChjaGFubmVsKQorIAl7CistCQlpZiAoY2hhbm5l bC0+Y2hhbm5lbF9jYWxsYmFjaykKKysJCUlXVFNWaXJ0dWFsQ2hhbm5lbENhbGxiYWNrKiBjYiA9 IGNoYW5uZWwtPmNoYW5uZWxfY2FsbGJhY2s7CisrCQljaGFubmVsLT5jaGFubmVsX2NhbGxiYWNr ID0gTlVMTDsKKysJCWlmIChjYikKKyAJCXsKKy0JCQlJRkNBTEwoY2hhbm5lbC0+Y2hhbm5lbF9j YWxsYmFjay0+T25DbG9zZSwgY2hhbm5lbC0+Y2hhbm5lbF9jYWxsYmFjayk7CistCQkJY2hhbm5l bC0+Y2hhbm5lbF9jYWxsYmFjayA9IE5VTEw7CisrCQkJSUZDQUxMKGNiLT5PbkNsb3NlLCBjYik7 CisgCQl9CisgCisgCQlpZiAoY2hhbm5lbC0+c3RhdHVzID09IENIQU5ORUxfUkNfT0spCistLSAK KzIuNTMuMAorCgpkaWZmIC0tZ2l0IGEvY2hhbm5lbHMtZHJpdmUtZml4LWNvbnN0YW50LXR5cGUu cGF0Y2ggYi9jaGFubmVscy1kcml2ZS1maXgtY29uc3RhbnQtdHlwZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmYwYzhhCi0tLSAvZGV2L251bGwKKysrIGIvY2hh bm5lbHMtZHJpdmUtZml4LWNvbnN0YW50LXR5cGUucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorRnJv bSAzZGEzMTk1NzBjOGE2YmUwYTc5YjMzMDZmMWVkMzU0YzRhOTQzMjU5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogYWthbGxhYmV0aCA8YWthbGxhYmV0aEBwb3N0ZW8ubmV0PgorRGF0 ZTogTW9uLCAxMiBKYW4gMjAyNiAwMzo0NDowNiArMDEwMAorU3ViamVjdDogW1BBVENIXSBbY2hh bm5lbHMsZHJpdmVdIGZpeCBjb25zdGFudCB0eXBlCisKK2Vuc3VyZSBjb25zdGFudCBpcyBvZiA2 NGJpdCBpbnRlZ2VyIHR5cGUKKy0tLQorIGNoYW5uZWxzL2RyaXZlL2NsaWVudC9kcml2ZV9tYWlu LmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CisKK2RpZmYgLS1naXQgYS9jaGFubmVscy9kcml2ZS9jbGllbnQvZHJpdmVfbWFpbi5jIGIvY2hh bm5lbHMvZHJpdmUvY2xpZW50L2RyaXZlX21haW4uYworaW5kZXggMWRjZTVjMzQ4Li4xMzE4OGZi YzYgMTAwNjQ0CistLS0gYS9jaGFubmVscy9kcml2ZS9jbGllbnQvZHJpdmVfbWFpbi5jCisrKysg Yi9jaGFubmVscy9kcml2ZS9jbGllbnQvZHJpdmVfbWFpbi5jCitAQCAtMzAyLDcgKzMwMiw3IEBA IHN0YXRpYyBVSU5UIGRyaXZlX3Byb2Nlc3NfaXJwX3JlYWQoRFJJVkVfREVWSUNFKiBkcml2ZSwg SVJQKiBpcnApCisgCQlMZW5ndGggPSAwOworIAl9CisgCistCWlmICghU3RyZWFtX0Vuc3VyZVJl bWFpbmluZ0NhcGFjaXR5KGlycC0+b3V0cHV0LCBMZW5ndGggKyA0KSkKKysJaWYgKCFTdHJlYW1f RW5zdXJlUmVtYWluaW5nQ2FwYWNpdHkoaXJwLT5vdXRwdXQsIDR1bGwgKyBMZW5ndGgpKQorIAl7 CisgCQlXTG9nX0VSUihUQUcsICJTdHJlYW1fRW5zdXJlUmVtYWluaW5nQ2FwYWNpdHkgZmFpbGVk ISIpOworIAkJcmV0dXJuIEVSUk9SX0lOVEVSTkFMX0VSUk9SOworLS0gCisyLjUzLjAKKwoKZGlm ZiAtLWdpdCBhL2NoYW5uZWxzLXJkcHNuZC10ZXJtaW5hdGUtdGhyZWFkLWJlZm9yZS1mcmVlLnBh dGNoIGIvY2hhbm5lbHMtcmRwc25kLXRlcm1pbmF0ZS10aHJlYWQtYmVmb3JlLWZyZWUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZiM2YyNwotLS0gL2Rldi9udWxs CisrKyBiL2NoYW5uZWxzLXJkcHNuZC10ZXJtaW5hdGUtdGhyZWFkLWJlZm9yZS1mcmVlLnBhdGNo CkBAIC0wLDAgKzEsNzMgQEAKK0Zyb20gYzlmMmI0MjIyY2Y1MWEyNTliNzdlZDRlODNjNDVmNmEw ODg4NGNiOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9s eUByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxMyBNYXIgMjAyNiAxNTo0NjoxNyArMDEwMAorU3Vi amVjdDogW1BBVENIXSBbY2hhbm5lbHMscmRwc25kXSB0ZXJtaW5hdGUgdGhyZWFkIGJlZm9yZSBm cmVlCisKK0JhY2twb3J0IG9mIGNvbW1pdCA2MjJiYjdiNDQwMjQ5MWNhMDAzZjQ3NDcyZDBlNDc4 MTMyNjczNjk2LgorCitNYWRlLXdpdGg6IEN1cnNvcgorLS0tCisgY2hhbm5lbHMvcmRwc25kL2Ns aWVudC9yZHBzbmRfbWFpbi5jIHwgMjggKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQorIDEg ZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvY2hhbm5lbHMvcmRwc25kL2NsaWVudC9yZHBzbmRfbWFpbi5jIGIvY2hhbm5lbHMvcmRw c25kL2NsaWVudC9yZHBzbmRfbWFpbi5jCitpbmRleCAzZGU0Y2JjNjYuLmM3NjYwYTg1NyAxMDA2 NDQKKy0tLSBhL2NoYW5uZWxzL3JkcHNuZC9jbGllbnQvcmRwc25kX21haW4uYworKysrIGIvY2hh bm5lbHMvcmRwc25kL2NsaWVudC9yZHBzbmRfbWFpbi5jCitAQCAtMzYsNiArMzYsNyBAQAorICNp bmNsdWRlIDxzdHJpbmcuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KKyAKKysjaW5jbHVkZSA8d2lu cHIvYXNzZXJ0Lmg+CisgI2luY2x1ZGUgPHdpbnByL2NydC5oPgorICNpbmNsdWRlIDx3aW5wci93 bG9nLmg+CisgI2luY2x1ZGUgPHdpbnByL3N0cmVhbS5oPgorQEAgLTEyNDQsMTEgKzEyNDUsMjkg QEAgZmFpbDoKKyAJcmV0dXJuIENIQU5ORUxfUkNfTk9fTUVNT1JZOworIH0KKyAKKytzdGF0aWMg dm9pZCByZHBzbmRfdGVybWluYXRlX3RocmVhZChyZHBzbmRQbHVnaW4qIHJkcHNuZCkKKyt7Cisr CVdJTlBSX0FTU0VSVChyZHBzbmQpOworKwlpZiAocmRwc25kLT5xdWV1ZSkKKysJCU1lc3NhZ2VR dWV1ZV9Qb3N0UXVpdChyZHBzbmQtPnF1ZXVlLCAwKTsKKysKKysJaWYgKHJkcHNuZC0+dGhyZWFk KQorKwl7CisrCQkodm9pZClXYWl0Rm9yU2luZ2xlT2JqZWN0KHJkcHNuZC0+dGhyZWFkLCBJTkZJ TklURSk7CisrCQkodm9pZClDbG9zZUhhbmRsZShyZHBzbmQtPnRocmVhZCk7CisrCX0KKysKKysJ TWVzc2FnZVF1ZXVlX0ZyZWUocmRwc25kLT5xdWV1ZSk7CisrCXJkcHNuZC0+dGhyZWFkID0gTlVM TDsKKysJcmRwc25kLT5xdWV1ZSA9IE5VTEw7CisrfQorKworIHN0YXRpYyB2b2lkIGNsZWFudXBf aW50ZXJuYWxzKHJkcHNuZFBsdWdpbiogcmRwc25kKQorIHsKKyAJaWYgKCFyZHBzbmQpCisgCQly ZXR1cm47CisgCisrCXJkcHNuZF90ZXJtaW5hdGVfdGhyZWFkKHJkcHNuZCk7CisgCWlmIChyZHBz bmQtPnBvb2wpCisgCQlTdHJlYW1Qb29sX1JldHVybihyZHBzbmQtPnBvb2wsIHJkcHNuZC0+ZGF0 YV9pbik7CisgCitAQCAtMTM5NiwxNCArMTQxNSw3IEBAIHZvaWQgcmRwc25kX3ZpcnR1YWxfY2hh bm5lbF9ldmVudF90ZXJtaW5hdGVkKHJkcHNuZFBsdWdpbiogcmRwc25kKQorIHsKKyAJaWYgKHJk cHNuZCkKKyAJeworLQkJaWYgKHJkcHNuZC0+cXVldWUpCistCQkJTWVzc2FnZVF1ZXVlX1Bvc3RR dWl0KHJkcHNuZC0+cXVldWUsIDApOworLQkJaWYgKHJkcHNuZC0+dGhyZWFkKQorLQkJeworLQkJ CVdhaXRGb3JTaW5nbGVPYmplY3QocmRwc25kLT50aHJlYWQsIElORklOSVRFKTsKKy0JCQlDbG9z ZUhhbmRsZShyZHBzbmQtPnRocmVhZCk7CistCQl9CistCQlNZXNzYWdlUXVldWVfRnJlZShyZHBz bmQtPnF1ZXVlKTsKKysJCXJkcHNuZF90ZXJtaW5hdGVfdGhyZWFkKHJkcHNuZCk7CisgCisgCQlm cmVlX2ludGVybmFscyhyZHBzbmQpOworIAkJYXVkaW9fZm9ybWF0c19mcmVlKHJkcHNuZC0+Zml4 ZWRfZm9ybWF0LCAxKTsKKy0tIAorMi41My4wCisKCmRpZmYgLS1naXQgYS9jaGFubmVscy1zZXJp YWwtZXhwbGljaXRseS1sb2NrLXNlcmlhbC1JcnBUaHJlYWRzLnBhdGNoIGIvY2hhbm5lbHMtc2Vy aWFsLWV4cGxpY2l0bHktbG9jay1zZXJpYWwtSXJwVGhyZWFkcy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTQxMWNmCi0tLSAvZGV2L251bGwKKysrIGIvY2hhbm5l bHMtc2VyaWFsLWV4cGxpY2l0bHktbG9jay1zZXJpYWwtSXJwVGhyZWFkcy5wYXRjaApAQCAtMCww ICsxLDU1IEBACitGcm9tIGMwMjgzODEyYzkxOGM3NzM4ZmFjYWZhYzUyY2Y1MWQ5MTY1MzYxMzgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0 LmNvbT4KK0RhdGU6IFR1ZSwgMTAgTWFyIDIwMjYgMDg6NDc6NTcgKzAxMDAKK1N1YmplY3Q6IFtQ QVRDSF0gW2NoYW5uZWxzLHNlcmlhbF0gZXhwbGljaXRseSBsb2NrIHNlcmlhbC0+SXJwVGhyZWFk cworCitCYWNrcG9ydCBvZiBjb21taXQgNjc1YzIwZjA4ZjMyY2E1ZWMwNjI5NzEwOGJkZjMwMTQ3 ZDZlMmNkOS4KKworTWFkZS13aXRoOiBDdXJzb3IKKy0tLQorIGNoYW5uZWxzL3NlcmlhbC9jbGll bnQvc2VyaWFsX21haW4uYyB8IDcgKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL3NlcmlhbC9jbGll bnQvc2VyaWFsX21haW4uYyBiL2NoYW5uZWxzL3NlcmlhbC9jbGllbnQvc2VyaWFsX21haW4uYwor aW5kZXggZDc2ZDcyNWYxLi5jOGEyN2M0NmMgMTAwNjQ0CistLS0gYS9jaGFubmVscy9zZXJpYWwv Y2xpZW50L3NlcmlhbF9tYWluLmMKKysrKyBiL2NoYW5uZWxzL3NlcmlhbC9jbGllbnQvc2VyaWFs X21haW4uYworQEAgLTU5Nyw3ICs1OTcsMTAgQEAgc3RhdGljIHZvaWQgY3JlYXRlX2lycF90aHJl YWQoU0VSSUFMX0RFVklDRSogc2VyaWFsLCBJUlAqIGlycCkKKyAJICogb2JzZXJ2ZWQgd2l0aCBG cmVlUkRQKS4KKyAJICovCisgCWtleSA9IGlycC0+Q29tcGxldGlvbklkOworKworKwlMaXN0RGlj dGlvbmFyeV9Mb2NrKHNlcmlhbC0+SXJwVGhyZWFkcyk7CisgCXByZXZpb3VzSXJwVGhyZWFkID0g TGlzdERpY3Rpb25hcnlfR2V0SXRlbVZhbHVlKHNlcmlhbC0+SXJwVGhyZWFkcywgKHZvaWQqKWtl eSk7CisrCUxpc3REaWN0aW9uYXJ5X1VubG9jayhzZXJpYWwtPklycFRocmVhZHMpOworIAorIAlp ZiAocHJldmlvdXNJcnBUaHJlYWQpCisgCXsKK0BAIC02NzgsNiArNjgxLDcgQEAgc3RhdGljIHZv aWQgdGVybWluYXRlX3BlbmRpbmdfaXJwX3RocmVhZHMoU0VSSUFMX0RFVklDRSogc2VyaWFsKQor IHsKKyAJVUxPTkdfUFRSKiBpZHM7CisgCWludCBpLCBuYklkczsKKysJTGlzdERpY3Rpb25hcnlf TG9jayhzZXJpYWwtPklycFRocmVhZHMpOworIAluYklkcyA9IExpc3REaWN0aW9uYXJ5X0dldEtl eXMoc2VyaWFsLT5JcnBUaHJlYWRzLCAmaWRzKTsKKyAJV0xvZ19QcmludChzZXJpYWwtPmxvZywg V0xPR19ERUJVRywgIlRlcm1pbmF0aW5nICVkIElSUCB0aHJlYWQocykiLCBuYklkcyk7CisgCitA QCAtNjk5LDYgKzcwMyw3IEBAIHN0YXRpYyB2b2lkIHRlcm1pbmF0ZV9wZW5kaW5nX2lycF90aHJl YWRzKFNFUklBTF9ERVZJQ0UqIHNlcmlhbCkKKyAJfQorIAorIAlMaXN0RGljdGlvbmFyeV9DbGVh cihzZXJpYWwtPklycFRocmVhZHMpOworKwlMaXN0RGljdGlvbmFyeV9VbmxvY2soc2VyaWFsLT5J cnBUaHJlYWRzKTsKKyAJZnJlZShpZHMpOworIH0KKyAKK0BAIC05MzIsNyArOTM3LDcgQEAgVUlO VCBEZXZpY2VTZXJ2aWNlRW50cnkoUERFVklDRV9TRVJWSUNFX0VOVFJZX1BPSU5UUyBwRW50cnlQ b2ludHMpCisgCQl9CisgCisgCQkvKiBJcnBUaHJlYWRzIGNvbnRlbnQgb25seSBtb2RpZmllZCBi eSBjcmVhdGVfaXJwX3RocmVhZCgpICovCistCQlzZXJpYWwtPklycFRocmVhZHMgPSBMaXN0RGlj dGlvbmFyeV9OZXcoVFJVRSk7CisrCQlzZXJpYWwtPklycFRocmVhZHMgPSBMaXN0RGljdGlvbmFy eV9OZXcoRkFMU0UpOworIAorIAkJaWYgKCFzZXJpYWwtPklycFRocmVhZHMpCisgCQl7CistLSAK KzIuNTMuMAorCgpkaWZmIC0tZ2l0IGEvY2hhbm5lbHMtc2VyaWFsLWxvY2stbGlzdC1kaWN0aW9u YXJ5LnBhdGNoIGIvY2hhbm5lbHMtc2VyaWFsLWxvY2stbGlzdC1kaWN0aW9uYXJ5LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxYmMzMzEKLS0tIC9kZXYvbnVsbAor KysgYi9jaGFubmVscy1zZXJpYWwtbG9jay1saXN0LWRpY3Rpb25hcnkucGF0Y2gKQEAgLTAsMCAr MSw4OSBAQAorRnJvbSA3Y2Y3NDIxNTliZDI2NzUzNjZjNzE4N2M0YmM1MTAxOGI1NDhkMjI4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT25kcmVqIEhvbHkgPG9ob2x5QHJlZGhhdC5j b20+CitEYXRlOiBUdWUsIDEwIE1hciAyMDI2IDA4OjQ3OjQ1ICswMTAwCitTdWJqZWN0OiBbUEFU Q0hdIFtjaGFubmVscyxzZXJpYWxdIGxvY2sgbGlzdCBkaWN0aW9uYXJ5CisKK0JhY2twb3J0IG9m IGNvbW1pdCBiMzVhYTM2MTRkMzJiZmYzZmMxMjcyY2Q3YzQ2MTdmNzExZmNhMWE0LgorCitNYWRl LXdpdGg6IEN1cnNvcgorLS0tCisgY2hhbm5lbHMvc2VyaWFsL2NsaWVudC9zZXJpYWxfbWFpbi5j IHwgMzUgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyMCBp bnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL3Nl cmlhbC9jbGllbnQvc2VyaWFsX21haW4uYyBiL2NoYW5uZWxzL3NlcmlhbC9jbGllbnQvc2VyaWFs X21haW4uYworaW5kZXggYWZlNjdiNGQzLi5kNzZkNzI1ZjEgMTAwNjQ0CistLS0gYS9jaGFubmVs cy9zZXJpYWwvY2xpZW50L3NlcmlhbF9tYWluLmMKKysrKyBiL2NoYW5uZWxzL3NlcmlhbC9jbGll bnQvc2VyaWFsX21haW4uYworQEAgLTU0MCw2ICs1NDAsNyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVf aXJwX3RocmVhZChTRVJJQUxfREVWSUNFKiBzZXJpYWwsIElSUCogaXJwKQorIAkJSEFORExFIGly cFRocmVhZDsKKyAJCVVMT05HX1BUUiogaWRzOworIAkJaW50IGksIG5iSWRzOworKwkJTGlzdERp Y3Rpb25hcnlfTG9jayhzZXJpYWwtPklycFRocmVhZHMpOworIAkJbmJJZHMgPSBMaXN0RGljdGlv bmFyeV9HZXRLZXlzKHNlcmlhbC0+SXJwVGhyZWFkcywgJmlkcyk7CisgCisgCQlmb3IgKGkgPSAw OyBpIDwgbmJJZHM7IGkrKykKK0BAIC01ODEsNiArNTgyLDcgQEAgc3RhdGljIHZvaWQgY3JlYXRl X2lycF90aHJlYWQoU0VSSUFMX0RFVklDRSogc2VyaWFsLCBJUlAqIGlycCkKKyAJCX0KKyAKKyAJ CWZyZWUoaWRzKTsKKysJCUxpc3REaWN0aW9uYXJ5X1VubG9jayhzZXJpYWwtPklycFRocmVhZHMp OworIAl9CisgCisgCUxlYXZlQ3JpdGljYWxTZWN0aW9uKCZzZXJpYWwtPlRlcm1pbmF0aW5nSXJw VGhyZWFkc0xvY2spOworQEAgLTYyMSwxOSArNjIzLDYgQEAgc3RhdGljIHZvaWQgY3JlYXRlX2ly cF90aHJlYWQoU0VSSUFMX0RFVklDRSogc2VyaWFsLCBJUlAqIGlycCkKKyAJCXJldHVybjsKKyAJ fQorIAorLQlpZiAoTGlzdERpY3Rpb25hcnlfQ291bnQoc2VyaWFsLT5JcnBUaHJlYWRzKSA+PSBN QVhfSVJQX1RIUkVBRFMpCistCXsKKy0JCVdMb2dfUHJpbnQoc2VyaWFsLT5sb2csIFdMT0dfV0FS TiwKKy0JCSAgICAgICAgICAgIk51bWJlciBvZiBJUlAgdGhyZWFkcyB0aHJlc2hvbGQgcmVhY2hl ZDogJWQsIGtlZXAgb24gYW55d2F5IiwKKy0JCSAgICAgICAgICAgTGlzdERpY3Rpb25hcnlfQ291 bnQoc2VyaWFsLT5JcnBUaHJlYWRzKSk7CistCQlhc3NlcnQoRkFMU0UpOyAvKiB1bmltcGxlbWVu dGVkICovCistCQkgICAgICAgICAgICAgICAvKiBUT0RPOiBNQVhfSVJQX1RIUkVBRFMgaGFzIGJl ZW4gdGhvdWdodCB0byBhdm9pZCBhCistCQkgICAgICAgICAgICAgICAgKiBmbG9vZGluZyBvZiBw ZW5kaW5nIHJlcXVlc3RzLiBVc2UKKy0JCSAgICAgICAgICAgICAgICAqIFdhaXRGb3JNdWx0aXBs ZU9iamVjdHMoKSB3aGVuIGF2YWlsYWJsZSBpbiB3aW5wcgorLQkJICAgICAgICAgICAgICAgICog Zm9yIHRocmVhZHMuCistCQkgICAgICAgICAgICAgICAgKi8KKy0JfQorLQorIAkvKiBlcnJvcl9o YW5kbGUgdG8gYmUgdXNlZCAuLi4gKi8KKyAJZGF0YSA9IChJUlBfVEhSRUFEX0RBVEEqKWNhbGxv YygxLCBzaXplb2YoSVJQX1RIUkVBRF9EQVRBKSk7CisgCitAQCAtNjU2LDcgKzY0NSwyMyBAQCBz dGF0aWMgdm9pZCBjcmVhdGVfaXJwX3RocmVhZChTRVJJQUxfREVWSUNFKiBzZXJpYWwsIElSUCog aXJwKQorIAorIAlrZXkgPSBpcnAtPkNvbXBsZXRpb25JZDsKKyAKKy0JaWYgKCFMaXN0RGljdGlv bmFyeV9BZGQoc2VyaWFsLT5JcnBUaHJlYWRzLCAodm9pZCopa2V5LCBpcnBUaHJlYWQpKQorKwlM aXN0RGljdGlvbmFyeV9Mb2NrKHNlcmlhbC0+SXJwVGhyZWFkcyk7CisrCWlmIChMaXN0RGljdGlv bmFyeV9Db3VudChzZXJpYWwtPklycFRocmVhZHMpID49IE1BWF9JUlBfVEhSRUFEUykKKysJewor KwkJV0xvZ19QcmludChzZXJpYWwtPmxvZywgV0xPR19XQVJOLAorKwkJICAgICAgICAgICAiTnVt YmVyIG9mIElSUCB0aHJlYWRzIHRocmVzaG9sZCByZWFjaGVkOiAlZCwga2VlcCBvbiBhbnl3YXki LAorKwkJICAgICAgICAgICBMaXN0RGljdGlvbmFyeV9Db3VudChzZXJpYWwtPklycFRocmVhZHMp KTsKKysJCWFzc2VydChGQUxTRSk7IC8qIHVuaW1wbGVtZW50ZWQgKi8KKysJCSAgICAgICAgICAg ICAgIC8qIFRPRE86IE1BWF9JUlBfVEhSRUFEUyBoYXMgYmVlbiB0aG91Z2h0IHRvIGF2b2lkIGEK KysJCSAgICAgICAgICAgICAgICAqIGZsb29kaW5nIG9mIHBlbmRpbmcgcmVxdWVzdHMuIFVzZQor KwkJICAgICAgICAgICAgICAgICogV2FpdEZvck11bHRpcGxlT2JqZWN0cygpIHdoZW4gYXZhaWxh YmxlIGluIHdpbnByCisrCQkgICAgICAgICAgICAgICAgKiBmb3IgdGhyZWFkcy4KKysJCSAgICAg ICAgICAgICAgICAqLworKwl9CisrCWNvbnN0IEJPT0wgYWRkZWQgPSBMaXN0RGljdGlvbmFyeV9B ZGQoc2VyaWFsLT5JcnBUaHJlYWRzLCAodm9pZCopa2V5LCBpcnBUaHJlYWQpOworKwlMaXN0RGlj dGlvbmFyeV9VbmxvY2soc2VyaWFsLT5JcnBUaHJlYWRzKTsKKysKKysJaWYgKCFhZGRlZCkKKyAJ eworIAkJV0xvZ19FUlIoVEFHLCAiTGlzdERpY3Rpb25hcnlfQWRkIGZhaWxlZCEiKTsKKyAJCWdv dG8gZXJyb3JfaGFuZGxlOworQEAgLTkyNyw3ICs5MzIsNyBAQCBVSU5UIERldmljZVNlcnZpY2VF bnRyeShQREVWSUNFX1NFUlZJQ0VfRU5UUllfUE9JTlRTIHBFbnRyeVBvaW50cykKKyAJCX0KKyAK KyAJCS8qIElycFRocmVhZHMgY29udGVudCBvbmx5IG1vZGlmaWVkIGJ5IGNyZWF0ZV9pcnBfdGhy ZWFkKCkgKi8KKy0JCXNlcmlhbC0+SXJwVGhyZWFkcyA9IExpc3REaWN0aW9uYXJ5X05ldyhGQUxT RSk7CisrCQlzZXJpYWwtPklycFRocmVhZHMgPSBMaXN0RGljdGlvbmFyeV9OZXcoVFJVRSk7Cisg CisgCQlpZiAoIXNlcmlhbC0+SXJwVGhyZWFkcykKKyAJCXsKKy0tIAorMi41My4wCisKCmRpZmYg LS1naXQgYS9jaGFubmVscy11cmJkcmMtY2FuY2VsLWFsbC11c2ItdHJhbnNmZXJzLW9uLWNoYW5u ZWwtLnBhdGNoIGIvY2hhbm5lbHMtdXJiZHJjLWNhbmNlbC1hbGwtdXNiLXRyYW5zZmVycy1vbi1j aGFubmVsLS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmNjYjdk Ci0tLSAvZGV2L251bGwKKysrIGIvY2hhbm5lbHMtdXJiZHJjLWNhbmNlbC1hbGwtdXNiLXRyYW5z ZmVycy1vbi1jaGFubmVsLS5wYXRjaApAQCAtMCwwICsxLDI0IEBACitGcm9tIDQxNGY3MDE0NjQ5 MjljMjE3ZjI1MDliY2JkNmQyYzFmMDBmN2VkNzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBha2FsbGFiZXRoIDxha2FsbGFiZXRoQHBvc3Rlby5uZXQ+CitEYXRlOiBNb24sIDI2IEph biAyMDI2IDExOjA3OjI1ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjaGFubmVscyx1cmJkcmNd IGNhbmNlbCBhbGwgdXNiIHRyYW5zZmVycyBvbiBjaGFubmVsIGNsb3NlCisKKy0tLQorIGNoYW5u ZWxzL3VyYmRyYy9jbGllbnQvbGlidXNiL2xpYnVzYl91ZGV2aWNlLmMgfCAxICsKKyAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL3VyYmRyYy9j bGllbnQvbGlidXNiL2xpYnVzYl91ZGV2aWNlLmMgYi9jaGFubmVscy91cmJkcmMvY2xpZW50L2xp YnVzYi9saWJ1c2JfdWRldmljZS5jCitpbmRleCA1MzQxMjQ4ZWMuLjllMmQzZWM1YSAxMDA2NDQK Ky0tLSBhL2NoYW5uZWxzL3VyYmRyYy9jbGllbnQvbGlidXNiL2xpYnVzYl91ZGV2aWNlLmMKKysr KyBiL2NoYW5uZWxzL3VyYmRyYy9jbGllbnQvbGlidXNiL2xpYnVzYl91ZGV2aWNlLmMKK0BAIC0x MTY1LDYgKzExNjUsNyBAQCBzdGF0aWMgdm9pZCBsaWJ1c2JfdWRldl9tYXJrX2NoYW5uZWxfY2xv c2VkKElVREVWSUNFKiBpZGV2KQorIAkJY29uc3QgdWludDhfdCBkZXZOciA9IGlkZXYtPmdldF9k ZXZfbnVtYmVyKGlkZXYpOworIAorIAkJcGRldi0+c3RhdHVzIHw9IFVSQkRSQ19ERVZJQ0VfQ0hB Tk5FTF9DTE9TRUQ7CisrCQlwZGV2LT5pZmFjZS5jYW5jZWxfYWxsX3RyYW5zZmVyX3JlcXVlc3Qo JnBkZXYtPmlmYWNlKTsKKyAJCXVyYmRyYy0+dWRldm1hbi0+dW5yZWdpc3Rlcl91ZGV2aWNlKHVy YmRyYy0+dWRldm1hbiwgYnVzTnIsIGRldk5yKTsKKyAJfQorIH0KKy0tIAorMi41My4wCisKCmRp ZmYgLS1naXQgYS9jaGFubmVscy11cmJkcmMtY2hlY2staW50ZXJmYWNlLWluZGljZXMtYmVmb3Jl LXVzZS5wYXRjaCBiL2NoYW5uZWxzLXVyYmRyYy1jaGVjay1pbnRlcmZhY2UtaW5kaWNlcy1iZWZv cmUtdXNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMTg3MTcK LS0tIC9kZXYvbnVsbAorKysgYi9jaGFubmVscy11cmJkcmMtY2hlY2staW50ZXJmYWNlLWluZGlj ZXMtYmVmb3JlLXVzZS5wYXRjaApAQCAtMCwwICsxLDcwIEBACitGcm9tIGY4NDUzYmRhNTA2OTMx NGQyNzE5NzNlZmY2OWRjMmUwNGY2ZGY5ODAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTcgRmViIDIwMjYg MTM6MDE6MzcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2NoYW5uZWxzLHVyYmRyY10gY2hlY2sg aW50ZXJmYWNlIGluZGljZXMgYmVmb3JlIHVzZQorCitCYWNrcG9ydCBvZiBjb21taXQgN2I3ZTZk ZThmZTQyN2EyZjAxZDMzMTA1Njc3NGFlYzY5NzEwNTkwYiAoZnVuY3Rpb25hbCBjaGFuZ2VzIG9u bHkpLgorCitDby1hdXRob3JlZC1ieTogQ3Vyc29yIDxjdXJzb3JhZ2VudEBjdXJzb3IuY29tPgor LS0tCisgLi4uL3VyYmRyYy9jbGllbnQvbGlidXNiL2xpYnVzYl91ZGV2aWNlLmMgICAgIHwgMjUg KysrKysrKysrKysrKysrKysrKworIGNoYW5uZWxzL3VyYmRyYy9jb21tb24vbXN1c2IuYyAgICAg ICAgICAgICAgICB8ICAyICsrCisgMiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspCisK K2RpZmYgLS1naXQgYS9jaGFubmVscy91cmJkcmMvY2xpZW50L2xpYnVzYi9saWJ1c2JfdWRldmlj ZS5jIGIvY2hhbm5lbHMvdXJiZHJjL2NsaWVudC9saWJ1c2IvbGlidXNiX3VkZXZpY2UuYworaW5k ZXggZWY4N2YxOTVmLi5iMmQ4MDI0M2IgMTAwNjQ0CistLS0gYS9jaGFubmVscy91cmJkcmMvY2xp ZW50L2xpYnVzYi9saWJ1c2JfdWRldmljZS5jCisrKysgYi9jaGFubmVscy91cmJkcmMvY2xpZW50 L2xpYnVzYi9saWJ1c2JfdWRldmljZS5jCitAQCAtNTk3LDExICs1OTcsMzYgQEAgbGlidXNiX3Vk ZXZfY29tcGxldGVfbXNjb25maWdfc2V0dXAoSVVERVZJQ0UqIGlkZXYsIE1TVVNCX0NPTkZJR19E RVNDUklQVE9SKiBNc0MKKyAJCSAgICAgICAgICAgIlNlbGVjdCBDb25maWd1cmF0aW9uOiBMaWJ1 c2IgTnVtYmVySW50ZXJmYWNlcyglIiBQUkl1OCAiKSBpcyBkaWZmZXJlbnQgIgorIAkJICAgICAg ICAgICAid2l0aCBNc0NvbmZpZyBOdW1iZXJJbnRlcmZhY2VzKCUiIFBSSXUzMiAiKSIsCisgCQkg ICAgICAgICAgIExpYnVzYkNvbmZpZy0+Yk51bUludGVyZmFjZXMsIE1zQ29uZmlnLT5OdW1JbnRl cmZhY2VzKTsKKysJCXJldHVybiBOVUxMOworIAl9CisgCisgCS8qIHJlcGxhY2UgTXNQaXBlcyBm b3IgbGlidXNiICovCisgCU1zSW50ZXJmYWNlcyA9IE1zQ29uZmlnLT5Nc0ludGVyZmFjZXM7Cisg CisrCS8qIGNoZWNrIGludGVyZmFjZSBpbmRpY2VzIGJlZm9yZSB1c2UgKi8KKysJZm9yIChpbnVt ID0gMDsgaW51bSA8IE1zQ29uZmlnLT5OdW1JbnRlcmZhY2VzOyBpbnVtKyspCisrCXsKKysJCU1z SW50ZXJmYWNlID0gTXNJbnRlcmZhY2VzW2ludW1dOworKwkJaWYgKE1zSW50ZXJmYWNlLT5JbnRl cmZhY2VOdW1iZXIgPj0gTXNDb25maWctPk51bUludGVyZmFjZXMpCisrCQl7CisrCQkJV0xvZ19Q cmludCh1cmJkcmMtPmxvZywgV0xPR19FUlJPUiwKKysJCQkgICAgICAgICAgICJNU1VTQl9DT05G SUdfREVTQ1JJUFRPUjo6TnVtSW50ZXJmYWNlcyAoJSIgUFJJdTMyCisrCQkJICAgICAgICAgICAi IDw9IE1TVVNCX0lOVEVSRkFDRV9ERVNDUklQVE9SOjpJbnRlcmZhY2VOdW1iZXIoICUiIFBSSXU4 ICIpIiwKKysJCQkgICAgICAgICAgIE1zQ29uZmlnLT5OdW1JbnRlcmZhY2VzLCBNc0ludGVyZmFj ZS0+SW50ZXJmYWNlTnVtYmVyKTsKKysJCQlyZXR1cm4gTlVMTDsKKysJCX0KKysKKysJCUxpYnVz YkludGVyZmFjZSA9ICZMaWJ1c2JDb25maWctPmludGVyZmFjZVtNc0ludGVyZmFjZS0+SW50ZXJm YWNlTnVtYmVyXTsKKysJCWlmIChNc0ludGVyZmFjZS0+QWx0ZXJuYXRlU2V0dGluZyA+PSBMaWJ1 c2JJbnRlcmZhY2UtPm51bV9hbHRzZXR0aW5nKQorKwkJeworKwkJCVdMb2dfUHJpbnQodXJiZHJj LT5sb2csIFdMT0dfRVJST1IsCisrCQkJICAgICAgICAgICAiTElCVVNCX0lOVEVSRkFDRTo6bnVt X2FsdHNldHRpbmcgKCUiIFBSSWQzMgorKwkJCSAgICAgICAgICAgIiA8PSBNU1VTQl9JTlRFUkZB Q0VfREVTQ1JJUFRPUjo6QWx0ZXJuYXRlU2V0dGluZyggJSIgUFJJdTggIikiLAorKwkJCSAgICAg ICAgICAgTGlidXNiSW50ZXJmYWNlLT5udW1fYWx0c2V0dGluZywgTXNJbnRlcmZhY2UtPkFsdGVy bmF0ZVNldHRpbmcpOworKwkJCXJldHVybiBOVUxMOworKwkJfQorKwl9CisrCisgCWZvciAoaW51 bSA9IDA7IGludW0gPCBNc0NvbmZpZy0+TnVtSW50ZXJmYWNlczsgaW51bSsrKQorIAl7CisgCQlN c0ludGVyZmFjZSA9IE1zSW50ZXJmYWNlc1tpbnVtXTsKK2RpZmYgLS1naXQgYS9jaGFubmVscy91 cmJkcmMvY29tbW9uL21zdXNiLmMgYi9jaGFubmVscy91cmJkcmMvY29tbW9uL21zdXNiLmMKK2lu ZGV4IGJiNTE3Y2U1ZC4uMTEzYjdjOTZiIDEwMDY0NAorLS0tIGEvY2hhbm5lbHMvdXJiZHJjL2Nv bW1vbi9tc3VzYi5jCisrKysgYi9jaGFubmVscy91cmJkcmMvY29tbW9uL21zdXNiLmMKK0BAIC0x MzksNiArMTM5LDggQEAgQk9PTCBtc3VzYl9tc2ludGVyZmFjZV9yZXBsYWNlKE1TVVNCX0NPTkZJ R19ERVNDUklQVE9SKiBNc0NvbmZpZywgQllURSBJbnRlcmZhY2UKKyB7CisgCWlmICghTXNDb25m aWcgfHwgIU1zQ29uZmlnLT5Nc0ludGVyZmFjZXMpCisgCQlyZXR1cm4gRkFMU0U7CisrCWlmIChN c0NvbmZpZy0+TnVtSW50ZXJmYWNlcyA8PSBJbnRlcmZhY2VOdW1iZXIpCisrCQlyZXR1cm4gRkFM U0U7CisgCisgCW1zdXNiX21zaW50ZXJmYWNlX2ZyZWUoTXNDb25maWctPk1zSW50ZXJmYWNlc1tJ bnRlcmZhY2VOdW1iZXJdKTsKKyAJTXNDb25maWctPk1zSW50ZXJmYWNlc1tJbnRlcmZhY2VOdW1i ZXJdID0gTmV3TXNJbnRlcmZhY2U7CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEvY2hhbm5l bHMtdXJiZHJjLWRvLW5vdC1mcmVlLU1zQ29uZmlnLW9uLWZhaWx1cmUucGF0Y2ggYi9jaGFubmVs cy11cmJkcmMtZG8tbm90LWZyZWUtTXNDb25maWctb24tZmFpbHVyZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDc3MWZlCi0tLSAvZGV2L251bGwKKysrIGIvY2hh bm5lbHMtdXJiZHJjLWRvLW5vdC1mcmVlLU1zQ29uZmlnLW9uLWZhaWx1cmUucGF0Y2gKQEAgLTAs MCArMSwzMSBAQAorRnJvbSBhYWFkNDcxOGQ4MGIwMzU0ZmQ4MDdkNjgwYjEyMzkwMDc1ZmU0ZmEw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT25kcmVqIEhvbHkgPG9ob2x5QHJlZGhh dC5jb20+CitEYXRlOiBXZWQsIDExIE1hciAyMDI2IDEyOjI3OjQ3ICswMTAwCitTdWJqZWN0OiBb UEFUQ0hdIFtjaGFubmVscyx1cmJkcmNdIGRvIG5vdCBmcmVlIE1zQ29uZmlnIG9uIGZhaWx1cmUK KworQmFja3BvcnQgb2YgY29tbWl0IGQ2NzY1MTg4MDljMzE5ZWVjMTU5MTFjNzA1YzEzNTM2MDM2 YWYyYWUuCisKK01hZGUtd2l0aDogQ3Vyc29yCistLS0KKyBjaGFubmVscy91cmJkcmMvY2xpZW50 L2RhdGFfdHJhbnNmZXIuYyB8IDQgKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL3VyYmRyYy9jbGllbnQv ZGF0YV90cmFuc2Zlci5jIGIvY2hhbm5lbHMvdXJiZHJjL2NsaWVudC9kYXRhX3RyYW5zZmVyLmMK K2luZGV4IGVkNmNjZjMyZC4uYzU0N2Q1MmQ3IDEwMDY0NAorLS0tIGEvY2hhbm5lbHMvdXJiZHJj L2NsaWVudC9kYXRhX3RyYW5zZmVyLmMKKysrKyBiL2NoYW5uZWxzL3VyYmRyYy9jbGllbnQvZGF0 YV90cmFuc2Zlci5jCitAQCAtNTcwLDEwICs1NzAsOCBAQCBzdGF0aWMgVUlOVCB1cmJfc2VsZWN0 X2ludGVyZmFjZShJVURFVklDRSogcGRldiwgVVJCRFJDX0NIQU5ORUxfQ0FMTEJBQ0sqIGNhbGxi YQorIAlNc0NvbmZpZyA9IHBkZXYtPmdldF9Nc0NvbmZpZyhwZGV2KTsKKyAJSW50ZXJmYWNlTnVt YmVyID0gTXNJbnRlcmZhY2UtPkludGVyZmFjZU51bWJlcjsKKyAJaWYgKCFtc3VzYl9tc2ludGVy ZmFjZV9yZXBsYWNlKE1zQ29uZmlnLCBJbnRlcmZhY2VOdW1iZXIsIE1zSW50ZXJmYWNlKSkKKy0J eworLQkJbXN1c2JfbXNjb25maWdfZnJlZShNc0NvbmZpZyk7CisgCQlyZXR1cm4gRVJST1JfQkFE X0NPTkZJR1VSQVRJT047CistCX0KKysKKyAJLyogY29tcGxldGUgY29uZmlndXJhdGlvbiBzZXR1 cCAqLworIAlpZiAoIXBkZXYtPmNvbXBsZXRlX21zY29uZmlnX3NldHVwKHBkZXYsIE1zQ29uZmln KSkKKyAJeworLS0gCisyLjUzLjAKKwoKZGlmZiAtLWdpdCBhL2NoYW5uZWxzLXVyYmRyYy1lbnN1 cmUtSW50ZXJmYWNlTnVtYmVyLWlzLXdpdGhpbi1yYW4ucGF0Y2ggYi9jaGFubmVscy11cmJkcmMt ZW5zdXJlLUludGVyZmFjZU51bWJlci1pcy13aXRoaW4tcmFuLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMjE0YTAKLS0tIC9kZXYvbnVsbAorKysgYi9jaGFubmVs cy11cmJkcmMtZW5zdXJlLUludGVyZmFjZU51bWJlci1pcy13aXRoaW4tcmFuLnBhdGNoCkBAIC0w LDAgKzEsNDUgQEAKK0Zyb20gZWE0OTM5MWIzNDYzYjdkZjE4ZWI5YzM1OGNkZWMwNGVkZjljNDAw MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRo YXQuY29tPgorRGF0ZTogVGh1LCAxMiBNYXIgMjAyNiAxMTowMzoyMCArMDEwMAorU3ViamVjdDog W1BBVENIXSBbY2hhbm5lbHMsdXJiZHJjXSBlbnN1cmUgSW50ZXJmYWNlTnVtYmVyIGlzIHdpdGhp biByYW5nZQorCitCYWNrcG9ydCBvZiBjb21taXQgMmQ1NjNhNTBiZTE3YzFiNDA3Y2E0NDhiMTMy MTM3OGMwNzI2ZGQzMS4KKworTWFkZS13aXRoOiBDdXJzb3IKKy0tLQorIGNoYW5uZWxzL3VyYmRy Yy9jbGllbnQvbGlidXNiL2xpYnVzYl91ZGV2aWNlLmMgfCAxMiArKysrKystLS0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvY2hhbm5lbHMvdXJiZHJjL2NsaWVudC9saWJ1c2IvbGlidXNiX3VkZXZpY2UuYyBiL2NoYW5u ZWxzL3VyYmRyYy9jbGllbnQvbGlidXNiL2xpYnVzYl91ZGV2aWNlLmMKK2luZGV4IGIyZDgwMjQz Yi4uYWU4YmJiNGM1IDEwMDY0NAorLS0tIGEvY2hhbm5lbHMvdXJiZHJjL2NsaWVudC9saWJ1c2Iv bGlidXNiX3VkZXZpY2UuYworKysrIGIvY2hhbm5lbHMvdXJiZHJjL2NsaWVudC9saWJ1c2IvbGli dXNiX3VkZXZpY2UuYworQEAgLTUyOCwxOSArNTI4LDE5IEBAIHN0YXRpYyBpbnQgbGlidXNiX3Vk ZXZfc2VsZWN0X2ludGVyZmFjZShJVURFVklDRSogaWRldiwgQllURSBJbnRlcmZhY2VOdW1iZXIs IEJZCisgeworIAlpbnQgZXJyb3IgPSAwLCBkaWZmID0gMDsKKyAJVURFVklDRSogcGRldiA9IChV REVWSUNFKilpZGV2OworLQlVUkJEUkNfUExVR0lOKiB1cmJkcmM7CistCU1TVVNCX0NPTkZJR19E RVNDUklQVE9SKiBNc0NvbmZpZzsKKy0JTVNVU0JfSU5URVJGQUNFX0RFU0NSSVBUT1IqKiBNc0lu dGVyZmFjZXM7CisgCisgCWlmICghcGRldiB8fCAhcGRldi0+dXJiZHJjKQorIAkJcmV0dXJuIC0x OworIAorLQl1cmJkcmMgPSBwZGV2LT51cmJkcmM7CistCU1zQ29uZmlnID0gcGRldi0+TXNDb25m aWc7CisrCVVSQkRSQ19QTFVHSU4qIHVyYmRyYyA9IHBkZXYtPnVyYmRyYzsKKysJTVNVU0JfQ09O RklHX0RFU0NSSVBUT1IqIE1zQ29uZmlnID0gcGRldi0+TXNDb25maWc7CisgCisgCWlmIChNc0Nv bmZpZykKKyAJeworLQkJTXNJbnRlcmZhY2VzID0gTXNDb25maWctPk1zSW50ZXJmYWNlczsKKysJ CWlmIChJbnRlcmZhY2VOdW1iZXIgPj0gTXNDb25maWctPk51bUludGVyZmFjZXMpCisrCQkJcmV0 dXJuIC0yOworKworKwkJTVNVU0JfSU5URVJGQUNFX0RFU0NSSVBUT1IqKiBNc0ludGVyZmFjZXMg PSBNc0NvbmZpZy0+TXNJbnRlcmZhY2VzOworIAkJaWYgKE1zSW50ZXJmYWNlcykKKyAJCXsKKyAJ CQlXTG9nX1ByaW50KHVyYmRyYy0+bG9nLCBXTE9HX0lORk8sCistLSAKKzIuNTMuMAorCgpkaWZm IC0tZ2l0IGEvY2hhbm5lbHMtdmlkZW8tZml4LXdyb25nLWNhc3QucGF0Y2ggYi9jaGFubmVscy12 aWRlby1maXgtd3JvbmctY2FzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4xOGJhYjFiCi0tLSAvZGV2L251bGwKKysrIGIvY2hhbm5lbHMtdmlkZW8tZml4LXdyb25n LWNhc3QucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSA5NzBhZDIzMTFlNjk1ODkwMDRkNmE4 NDk2MWFhOWQxZTNiMzNjMDg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT25kcmVq IEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDI2IE1hciAyMDI2IDE1OjU3OjM0 ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjaGFubmVscyx2aWRlb10gZml4IHdyb25nIGNhc3QK KworQmFja3BvcnQgb2YgY29tbWl0IGUwMWNkODVjODAwM2EyNDVlZjk3NzhmMGVkYTRiOTIzNTUx NGMyMDEuCisKK01hZGUtd2l0aDogQ3Vyc29yCistLS0KKyBjaGFubmVscy92aWRlby9jbGllbnQv dmlkZW9fbWFpbi5jIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL3ZpZGVvL2NsaWVudC92aWRl b19tYWluLmMgYi9jaGFubmVscy92aWRlby9jbGllbnQvdmlkZW9fbWFpbi5jCitpbmRleCA2NDEy MzFiMWQuLjBhZjc4MTQwZSAxMDA2NDQKKy0tLSBhL2NoYW5uZWxzL3ZpZGVvL2NsaWVudC92aWRl b19tYWluLmMKKysrKyBiL2NoYW5uZWxzL3ZpZGVvL2NsaWVudC92aWRlb19tYWluLmMKK0BAIC05 NTksNyArOTU5LDcgQEAgc3RhdGljIFVJTlQgdmlkZW9fY29udHJvbF9vbl9jbG9zZShJV1RTVmly dHVhbENoYW5uZWxDYWxsYmFjayogcENoYW5uZWxDYWxsYmFjaykKKyB7CisgCWlmIChwQ2hhbm5l bENhbGxiYWNrKQorIAl7CistCQlWSURFT19MSVNURU5FUl9DQUxMQkFDSyogbGlzdGVuZXJfY2Fs bGJhY2sgPSAoVklERU9fTElTVEVORVJfQ0FMTEJBQ0sqKXBDaGFubmVsQ2FsbGJhY2s7CisrCQlW SURFT19DSEFOTkVMX0NBTExCQUNLKiBsaXN0ZW5lcl9jYWxsYmFjayA9IChWSURFT19DSEFOTkVM X0NBTExCQUNLKilwQ2hhbm5lbENhbGxiYWNrOworIAkJVklERU9fUExVR0lOKiB2aWRlbyA9IChW SURFT19QTFVHSU4qKWxpc3RlbmVyX2NhbGxiYWNrLT5wbHVnaW47CisgCQlpZiAodmlkZW8gJiYg dmlkZW8tPmNvbnRyb2xfY2FsbGJhY2spCisgCQl7CitAQCAtOTc0LDcgKzk3NCw3IEBAIHN0YXRp YyBVSU5UIHZpZGVvX2RhdGFfb25fY2xvc2UoSVdUU1ZpcnR1YWxDaGFubmVsQ2FsbGJhY2sqIHBD aGFubmVsQ2FsbGJhY2spCisgeworIAlpZiAocENoYW5uZWxDYWxsYmFjaykKKyAJeworLQkJVklE RU9fTElTVEVORVJfQ0FMTEJBQ0sqIGxpc3RlbmVyX2NhbGxiYWNrID0gKFZJREVPX0xJU1RFTkVS X0NBTExCQUNLKilwQ2hhbm5lbENhbGxiYWNrOworKwkJVklERU9fQ0hBTk5FTF9DQUxMQkFDSyog bGlzdGVuZXJfY2FsbGJhY2sgPSAoVklERU9fQ0hBTk5FTF9DQUxMQkFDSyopcENoYW5uZWxDYWxs YmFjazsKKyAJCVZJREVPX1BMVUdJTiogdmlkZW8gPSAoVklERU9fUExVR0lOKilsaXN0ZW5lcl9j YWxsYmFjay0+cGx1Z2luOworIAkJaWYgKHZpZGVvICYmIHZpZGVvLT5kYXRhX2NhbGxiYWNrKQor IAkJeworLS0gCisyLjUzLjAKKwoKZGlmZiAtLWdpdCBhL2NoYW5uZWxzLXZpZGVvLXVuaWZ5LWVy cm9yLWhhbmRsaW5nLnBhdGNoIGIvY2hhbm5lbHMtdmlkZW8tdW5pZnktZXJyb3ItaGFuZGxpbmcu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VhYTk5MgotLS0gL2Rl di9udWxsCisrKyBiL2NoYW5uZWxzLXZpZGVvLXVuaWZ5LWVycm9yLWhhbmRsaW5nLnBhdGNoCkBA IC0wLDAgKzEsMTIxIEBACitGcm9tIDJjZmRjMTZmYWVkOTNhOGQ1ZDFlYzM5MTc4ODU0NzQwOWRm OTg2ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlA cmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgMjYgTWFyIDIwMjYgMTU6NTc6MjggKzAxMDAKK1N1Ympl Y3Q6IFtQQVRDSF0gW2NoYW5uZWxzLHZpZGVvXSB1bmlmeSBlcnJvciBoYW5kbGluZworCitQYXJ0 aWFsIGJhY2twb3J0IG9mIGNvbW1pdCA2MzVhZTNjODE5MzI1NmRiMDE3NzRmYWI1ZmYxMWJjYWU1 N2FlZDZiLgorCitNYWRlLXdpdGg6IEN1cnNvcgorLS0tCisgY2hhbm5lbHMvdmlkZW8vY2xpZW50 L3ZpZGVvX21haW4uYyB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQorIDEgZmls ZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL2NoYW5uZWxzL3ZpZGVvL2NsaWVudC92aWRlb19tYWluLmMgYi9jaGFubmVscy92aWRlby9j bGllbnQvdmlkZW9fbWFpbi5jCitpbmRleCBhODAzMWZjODYuLjY0MTIzMWIxZCAxMDA2NDQKKy0t LSBhL2NoYW5uZWxzL3ZpZGVvL2NsaWVudC92aWRlb19tYWluLmMKKysrKyBiL2NoYW5uZWxzL3Zp ZGVvL2NsaWVudC92aWRlb19tYWluLmMKK0BAIC0yNSw3ICsyNSw5IEBACisgI2luY2x1ZGUgPHN0 ZGxpYi5oPgorICNpbmNsdWRlIDxzdHJpbmcuaD4KKyAKKysjaW5jbHVkZSA8d2lucHIvYXNzZXJ0 Lmg+CisgI2luY2x1ZGUgPHdpbnByL2NydC5oPgorKyNpbmNsdWRlIDx3aW5wci9lcnJvci5oPgor ICNpbmNsdWRlIDx3aW5wci9zeW5jaC5oPgorICNpbmNsdWRlIDx3aW5wci9wcmludC5oPgorICNp bmNsdWRlIDx3aW5wci9zdHJlYW0uaD4KK0BAIC0zNTEsMTQgKzM1MywyNCBAQCBzdGF0aWMgdm9p ZCBWaWRlb0NsaWVudENvbnRleHRQcml2X2ZyZWUoVmlkZW9DbGllbnRDb250ZXh0UHJpdiogcHJp dikKKyAJZnJlZShwcml2KTsKKyB9CisgCisrc3RhdGljIFVJTlQgdmlkZW9fY2hhbm5lbF93cml0 ZShWSURFT19QTFVHSU4qIHZpZGVvLCBjb25zdCBCWVRFKiBkYXRhLCBVSU5UMzIgbGVuZ3RoKQor K3sKKysJV0lOUFJfQVNTRVJUKHZpZGVvKTsKKysKKysJaWYgKCF2aWRlby0+Y29udHJvbF9jYWxs YmFjayB8fCAhdmlkZW8tPmNvbnRyb2xfY2FsbGJhY2stPmNoYW5uZWxfY2FsbGJhY2spCisrCQly ZXR1cm4gRVJST1JfQkFEX0NPTkZJR1VSQVRJT047CisrCUlXVFNWaXJ0dWFsQ2hhbm5lbCogY2hh bm5lbCA9IHZpZGVvLT5jb250cm9sX2NhbGxiYWNrLT5jaGFubmVsX2NhbGxiYWNrLT5jaGFubmVs OworKwlpZiAoIWNoYW5uZWwgfHwgIWNoYW5uZWwtPldyaXRlKQorKwkJcmV0dXJuIEVSUk9SX0JB RF9DT05GSUdVUkFUSU9OOworKwlyZXR1cm4gY2hhbm5lbC0+V3JpdGUoY2hhbm5lbCwgbGVuZ3Ro LCBkYXRhLCBOVUxMKTsKKyt9CisrCisgc3RhdGljIFVJTlQgdmlkZW9fY29udHJvbF9zZW5kX3By ZXNlbnRhdGlvbl9yZXNwb25zZShWaWRlb0NsaWVudENvbnRleHQqIGNvbnRleHQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUU01NX1BSRVNF TlRBVElPTl9SRVNQT05TRSogcmVzcCkKKyB7CisgCUJZVEUgYnVmWzEyXTsKKyAJd1N0cmVhbSog czsKKyAJVklERU9fUExVR0lOKiB2aWRlbyA9IChWSURFT19QTFVHSU4qKWNvbnRleHQtPmhhbmRs ZTsKKy0JSVdUU1ZpcnR1YWxDaGFubmVsKiBjaGFubmVsOworLQlVSU5UIHJldDsKKyAKKyAJcyA9 IFN0cmVhbV9OZXcoYnVmLCAxMik7CisgCWlmICghcykKK0BAIC0zNzAsMTEgKzM4Miw5IEBAIHN0 YXRpYyBVSU5UIHZpZGVvX2NvbnRyb2xfc2VuZF9wcmVzZW50YXRpb25fcmVzcG9uc2UoVmlkZW9D bGllbnRDb250ZXh0KiBjb250ZXh0CisgCVN0cmVhbV9aZXJvKHMsIDMpOworIAlTdHJlYW1fU2Vh bExlbmd0aChzKTsKKyAKKy0JY2hhbm5lbCA9IHZpZGVvLT5jb250cm9sX2NhbGxiYWNrLT5jaGFu bmVsX2NhbGxiYWNrLT5jaGFubmVsOworLQlyZXQgPSBjaGFubmVsLT5Xcml0ZShjaGFubmVsLCAx MiwgYnVmLCBOVUxMKTsKKyAJU3RyZWFtX0ZyZWUocywgRkFMU0UpOworIAorLQlyZXR1cm4gcmV0 OworKwlyZXR1cm4gdmlkZW9fY2hhbm5lbF93cml0ZSh2aWRlbywgYnVmLCBzaXplb2YoYnVmKSk7 CisgfQorIAorIHN0YXRpYyBCT09MIHZpZGVvX29uTWFwcGVkR2VvbWV0cnlVcGRhdGUoTUFQUEVE X0dFT01FVFJZKiBnZW9tZXRyeSkKK0BAIC01OTIsOCArNjAyLDYgQEAgc3RhdGljIFVJTlQgdmlk ZW9fY29udHJvbF9zZW5kX2NsaWVudF9ub3RpZmljYXRpb24oVmlkZW9DbGllbnRDb250ZXh0KiBj b250ZXh0LAorIAlCWVRFIGJ1ZlsxMDBdOworIAl3U3RyZWFtKiBzOworIAlWSURFT19QTFVHSU4q IHZpZGVvID0gKFZJREVPX1BMVUdJTiopY29udGV4dC0+aGFuZGxlOworLQlJV1RTVmlydHVhbENo YW5uZWwqIGNoYW5uZWw7CistCVVJTlQgcmV0OworIAlVSU5UMzIgY2JTaXplOworIAorIAlzID0g U3RyZWFtX05ldyhidWYsIDMwKTsKK0BAIC02MjcsMTAgKzYzNSw3IEBAIHN0YXRpYyBVSU5UIHZp ZGVvX2NvbnRyb2xfc2VuZF9jbGllbnRfbm90aWZpY2F0aW9uKFZpZGVvQ2xpZW50Q29udGV4dCog Y29udGV4dCwKKyAJU3RyZWFtX1dyaXRlX1VJTlQzMihzLCBjYlNpemUpOworIAlTdHJlYW1fRnJl ZShzLCBGQUxTRSk7CisgCistCWNoYW5uZWwgPSB2aWRlby0+Y29udHJvbF9jYWxsYmFjay0+Y2hh bm5lbF9jYWxsYmFjay0+Y2hhbm5lbDsKKy0JcmV0ID0gY2hhbm5lbC0+V3JpdGUoY2hhbm5lbCwg Y2JTaXplLCBidWYsIE5VTEwpOworLQorLQlyZXR1cm4gcmV0OworKwlyZXR1cm4gdmlkZW9fY2hh bm5lbF93cml0ZSh2aWRlbywgYnVmLCBjYlNpemUpOworIH0KKyAKKyBzdGF0aWMgdm9pZCB2aWRl b190aW1lcihWaWRlb0NsaWVudENvbnRleHQqIHZpZGVvLCBVSU5UNjQgbm93KQorQEAgLTk1Miwx MiArOTU3LDMwIEBAIHN0YXRpYyBVSU5UIHZpZGVvX2RhdGFfb25fZGF0YV9yZWNlaXZlZChJV1RT VmlydHVhbENoYW5uZWxDYWxsYmFjayogcENoYW5uZWxDYWxsCisgICovCisgc3RhdGljIFVJTlQg dmlkZW9fY29udHJvbF9vbl9jbG9zZShJV1RTVmlydHVhbENoYW5uZWxDYWxsYmFjayogcENoYW5u ZWxDYWxsYmFjaykKKyB7CisrCWlmIChwQ2hhbm5lbENhbGxiYWNrKQorKwl7CisrCQlWSURFT19M SVNURU5FUl9DQUxMQkFDSyogbGlzdGVuZXJfY2FsbGJhY2sgPSAoVklERU9fTElTVEVORVJfQ0FM TEJBQ0sqKXBDaGFubmVsQ2FsbGJhY2s7CisrCQlWSURFT19QTFVHSU4qIHZpZGVvID0gKFZJREVP X1BMVUdJTiopbGlzdGVuZXJfY2FsbGJhY2stPnBsdWdpbjsKKysJCWlmICh2aWRlbyAmJiB2aWRl by0+Y29udHJvbF9jYWxsYmFjaykKKysJCXsKKysJCQl2aWRlby0+Y29udHJvbF9jYWxsYmFjay0+ Y2hhbm5lbF9jYWxsYmFjayA9IE5VTEw7CisrCQl9CisrCX0KKyAJZnJlZShwQ2hhbm5lbENhbGxi YWNrKTsKKyAJcmV0dXJuIENIQU5ORUxfUkNfT0s7CisgfQorIAorIHN0YXRpYyBVSU5UIHZpZGVv X2RhdGFfb25fY2xvc2UoSVdUU1ZpcnR1YWxDaGFubmVsQ2FsbGJhY2sqIHBDaGFubmVsQ2FsbGJh Y2spCisgeworKwlpZiAocENoYW5uZWxDYWxsYmFjaykKKysJeworKwkJVklERU9fTElTVEVORVJf Q0FMTEJBQ0sqIGxpc3RlbmVyX2NhbGxiYWNrID0gKFZJREVPX0xJU1RFTkVSX0NBTExCQUNLKilw Q2hhbm5lbENhbGxiYWNrOworKwkJVklERU9fUExVR0lOKiB2aWRlbyA9IChWSURFT19QTFVHSU4q KWxpc3RlbmVyX2NhbGxiYWNrLT5wbHVnaW47CisrCQlpZiAodmlkZW8gJiYgdmlkZW8tPmRhdGFf Y2FsbGJhY2spCisrCQl7CisrCQkJdmlkZW8tPmRhdGFfY2FsbGJhY2stPmNoYW5uZWxfY2FsbGJh Y2sgPSBOVUxMOworKwkJfQorKwl9CisgCWZyZWUocENoYW5uZWxDYWxsYmFjayk7CisgCXJldHVy biBDSEFOTkVMX1JDX09LOworIH0KKy0tIAorMi41My4wCisKCmRpZmYgLS1naXQgYS9jbGllbnQt Y29tbW9uLWRlYWN0aXZhdGUtY2xpLXBhcnNpbmctaW4tcmRwLWZpbGVzLnBhdGNoIGIvY2xpZW50 LWNvbW1vbi1kZWFjdGl2YXRlLWNsaS1wYXJzaW5nLWluLXJkcC1maWxlcy5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzRiMWEzCi0tLSAvZGV2L251bGwKKysrIGIv Y2xpZW50LWNvbW1vbi1kZWFjdGl2YXRlLWNsaS1wYXJzaW5nLWluLXJkcC1maWxlcy5wYXRjaApA QCAtMCwwICsxLDY1IEBACitGcm9tIDIwYTM0ODljMjM3NjNmOTRkMzFkY2Y4ZmQ3ZWQ4ODBlMDdj YmIyZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBcm1pbiBOb3ZhayA8YXJtaW4u bm92YWtAdGhpbmNhc3QuY29tPgorRGF0ZTogVGh1LCAyIEp1bCAyMDI2IDEwOjIxOjU0ICswMjAw CitTdWJqZWN0OiBbUEFUQ0hdIFtjbGllbnQsY29tbW9uXSBkZWFjdGl2YXRlIGNsaSBwYXJzaW5n IGluIFJEUCBmaWxlcworCitUaGlzIGZlYXR1cmUgd2FzIHVuY29kdW1lbnRlZCBhbmQgbWlnaHQg aGF2ZSB1bmludGVuZGVkIHNpZGUgZWZmZWN0cy4KK0RlYWN0aXZhdGUgaXQgYnkgZGVmYXVsdCBh bmQgKGZvciB0aGUgdGltZSBiZWluZykga2VlcCBhbiBvcHRpb24gdG8KK2VuYWJsZSBpdCBhdCBj b21waWxlIHRpbWUuCistLS0KKyBjbGllbnQvY29tbW9uL0NNYWtlTGlzdHMudHh0IHwgNSArKysr KworIGNsaWVudC9jb21tb24vZmlsZS5jICAgICAgICAgfCA0ICsrKysKKyAyIGZpbGVzIGNoYW5n ZWQsIDkgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvY2xpZW50L2NvbW1vbi9DTWFrZUxp c3RzLnR4dCBiL2NsaWVudC9jb21tb24vQ01ha2VMaXN0cy50eHQKK2luZGV4IGI0NjVhNjMxMS4u N2JjN2NmMDgzIDEwMDY0NAorLS0tIGEvY2xpZW50L2NvbW1vbi9DTWFrZUxpc3RzLnR4dAorKysr IGIvY2xpZW50L2NvbW1vbi9DTWFrZUxpc3RzLnR4dAorQEAgLTg1LDYgKzg1LDExIEBAIGlmIChX SVRIX0RFQlVHX1NZTUJPTFMgQU5EIE1TVkMgQU5EIEJVSUxEX1NIQVJFRF9MSUJTKQorIAlpbnN0 YWxsKEZJTEVTICR7Q01BS0VfUERCX0JJTkFSWV9ESVJ9LyR7T1VUUFVUX0ZJTEVOQU1FfS5wZGIg REVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0gQ09NUE9ORU5UIHN5bWJvbHMpCisg ZW5kaWYoKQorCisrb3B0aW9uKFdJVEhfRU1CRURERURfQ0xJX0lOX1JEUF9GSUxFUyAiW2Rhbmdy b3VzXSBhbGxvdyBlbWJlZGRlZCBjbGkgYXJndW1lbnRzIGluIHJkcCBmaWxlcyIgT0ZGKQorK2lm KFdJVEhfRU1CRURERURfQ0xJX0lOX1JEUF9GSUxFUykKKysgIGFkZF9jb21waWxlX2RlZmluaXRp b25zKFdJVEhfRU1CRURERURfQ0xJX0lOX1JEUF9GSUxFUykKKytlbmRpZigpCisrCisgc2V0X3By b3BlcnR5KFRBUkdFVCAke01PRFVMRV9OQU1FfSBQUk9QRVJUWSBGT0xERVIgIkNsaWVudC9Db21t b24iKQorCisgaWYoQlVJTERfVEVTVElORykKK2RpZmYgLS1naXQgYS9jbGllbnQvY29tbW9uL2Zp bGUuYyBiL2NsaWVudC9jb21tb24vZmlsZS5jCitpbmRleCBiNTZmZTZmMDYuLmJmZjk0YmFkMCAx MDA2NDQKKy0tLSBhL2NsaWVudC9jb21tb24vZmlsZS5jCisrKysgYi9jbGllbnQvY29tbW9uL2Zp bGUuYworQEAgLTI2LDYgKzI2LDcgQEAKKworICNpbmNsdWRlIDx3aW5wci9maWxlLmg+CisKKysK KyAjaW5jbHVkZSA8ZnJlZXJkcC9jbGllbnQvZmlsZS5oPgorICNpbmNsdWRlIDxmcmVlcmRwL2Ns aWVudC9jbWRsaW5lLmg+CisKK0BAIC02NjEsNiArNjYyLDcgQEAgc3RhdGljIEJPT0wgdHJpbV9z dHJpbmdzKHJkcEZpbGUqIGZpbGUpCisgCQlyZXR1cm4gRkFMU0U7CisgCWlmICghdHJpbSgmZmls ZS0+S2RjUHJveHlOYW1lKSkKKyAJCXJldHVybiBGQUxTRTsKKysKKyAJcmV0dXJuIFRSVUU7Cisg fQorCitAQCAtNzIxLDYgKzcyMyw3IEBAIEJPT0wgZnJlZXJkcF9jbGllbnRfcGFyc2VfcmRwX2Zp bGVfYnVmZmVyX2V4KHJkcEZpbGUqIGZpbGUsIGNvbnN0IEJZVEUqIGJ1ZmZlciwKKyAJCQlpZiAo ZnJlZXJkcF9jbGllbnRfcGFyc2VfcmRwX2ZpbGVfYWRkX2xpbmUoZmlsZSwgbGluZSwgaW5kZXgp ID09IC0xKQorIAkJCQlnb3RvIGZhaWw7CisKKysjaWYgZGVmaW5lZChXSVRIX0VNQkVEREVEX0NM SV9JTl9SRFBfRklMRVMpCisgCQkJaWYgKGJlZ1swXSA9PSAnLycpCisgCQkJeworIAkJCQlpZiAo IWZyZWVyZHBfY2xpZW50X3BhcnNlX3JkcF9maWxlX29wdGlvbihmaWxlLCBsaW5lLCBpbmRleCkp CitAQCAtNzI4LDYgKzczMSw3IEBAIEJPT0wgZnJlZXJkcF9jbGllbnRfcGFyc2VfcmRwX2ZpbGVf YnVmZmVyX2V4KHJkcEZpbGUqIGZpbGUsIGNvbnN0IEJZVEUqIGJ1ZmZlciwKKworIAkJCQlnb3Rv IG5leHRfbGluZTsgLyogRnJlZVJEUCBvcHRpb24gKi8KKyAJCQl9CisrI2VuZGlmCisKKyAJCQlk MSA9IHN0cmNocihsaW5lLCAnOicpOworCgpkaWZmIC0tZ2l0IGEvY2xpZW50LXgxMS1maXgtZGVh ZGxvY2stb24tb3V0cHV0LWV4cG9zZS5wYXRjaCBiL2NsaWVudC14MTEtZml4LWRlYWRsb2NrLW9u LW91dHB1dC1leHBvc2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NjE1NzM1NgotLS0gL2Rldi9udWxsCisrKyBiL2NsaWVudC14MTEtZml4LWRlYWRsb2NrLW9uLW91 dHB1dC1leHBvc2UucGF0Y2gKQEAgLTAsMCArMSwxNzAgQEAKK0Zyb20gYTI1YTZiOGM1MzYwMmQy MDIzZGQwYWQ2ODUwMDBkYzAwNjE3OWU5NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTogTW9uLCAyNyBBcHIgMjAyNiAy MDoxMjo0MiArMDAwMAorU3ViamVjdDogW1BBVENIXSBbY2xpZW50LHgxMV0gZml4IGRlYWRsb2Nr IG9uIG91dHB1dCBleHBvc2UKKworRGVmZXIgc2NyZWVuIHVwZGF0ZSBmcm9tIHhmX2V2ZW50X0V4 cG9zZSB0byBhZnRlciBYMTEgbG9jayBpcyByZWxlYXNlZCwKK3ByZXZlbnRpbmcgYSBkZWFkbG9j ayBiZXR3ZWVuIFgxMSBsb2NrIGFuZCByYWlsV2luZG93cyBsb2NrLgorCitCYWNrcG9ydCBvZiBj b21taXQgYTI3OGZmNzQxMTc0NDRjNjM1YzUwZmZhNTA4NGVjZjUxNzE3MWY1YS4KKworQWRqdXN0 ZWQgaHVuayBvZmZzZXRzIGZvciAyLjExLjcuCisKK01hZGUtd2l0aDogQ3Vyc29yCistLS0KKyBj bGllbnQvWDExL3hmX2NsaWVudC5jIHwgIDMgKysKKyBjbGllbnQvWDExL3hmX2V2ZW50LmMgIHwg NzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCisgY2xpZW50L1gx MS94Zl9ldmVudC5oICB8ICAyICsrCisgY2xpZW50L1gxMS94ZnJlZXJkcC5oICB8ICA0ICsrKwor IDQgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9jbGllbnQvWDExL3hmX2NsaWVudC5jIGIvY2xpZW50L1gxMS94Zl9jbGllbnQu YworaW5kZXggYmQzZWIwZC4uZjE0Y2I1NSAxMDA2NDQKKy0tLSBhL2NsaWVudC9YMTEveGZfY2xp ZW50LmMKKysrKyBiL2NsaWVudC9YMTEveGZfY2xpZW50LmMKK0BAIC01MTYsNiArNTE2LDkgQEAg c3RhdGljIEJPT0wgeGZfcHJvY2Vzc194X2V2ZW50cyhmcmVlcmRwKiBpbnN0YW5jZSkKKyAJCXhm X3VubG9ja194MTEoeGZjKTsKKyAJCWlmICghc3RhdHVzKQorIAkJCWJyZWFrOworKwkJc3RhdHVz ID0geGZfZXZlbnRfdXBkYXRlX3NjcmVlbihpbnN0YW5jZSk7CisrCQlpZiAoIXN0YXR1cykKKysJ CQlicmVhazsKKyAJfQorIAorIAlyZXR1cm4gc3RhdHVzOworZGlmZiAtLWdpdCBhL2NsaWVudC9Y MTEveGZfZXZlbnQuYyBiL2NsaWVudC9YMTEveGZfZXZlbnQuYworaW5kZXggZTE0MjFhZC4uNTI0 ZTVlMyAxMDA2NDQKKy0tLSBhL2NsaWVudC9YMTEveGZfZXZlbnQuYworKysrIGIvY2xpZW50L1gx MS94Zl9ldmVudC5jCitAQCAtMzI0LDQ1ICszMjQsMzQgQEAgdm9pZCB4Zl9ldmVudF9hZGp1c3Rf Y29vcmRpbmF0ZXMoeGZDb250ZXh0KiB4ZmMsIGludCogeCwgaW50KiB5KQorIH0KKyBzdGF0aWMg Qk9PTCB4Zl9ldmVudF9FeHBvc2UoeGZDb250ZXh0KiB4ZmMsIGNvbnN0IFhFeHBvc2VFdmVudCog ZXZlbnQsIEJPT0wgYXBwKQorIHsKKy0JaW50IHgsIHk7CistCWludCB3LCBoOworKwlXSU5QUl9B U1NFUlQoeGZjKTsKKysJV0lOUFJfQVNTRVJUKGV2ZW50KTsKKysKKyAJcmRwU2V0dGluZ3MqIHNl dHRpbmdzID0geGZjLT5jb250ZXh0LnNldHRpbmdzOworKwlXSU5QUl9BU1NFUlQoc2V0dGluZ3Mp OworIAorIAlpZiAoIWFwcCAmJiAoc2V0dGluZ3MtPlNtYXJ0U2l6aW5nIHx8IHNldHRpbmdzLT5N dWx0aVRvdWNoR2VzdHVyZXMpKQorIAl7CistCQl4ID0gMDsKKy0JCXkgPSAwOworLQkJdyA9IHNl dHRpbmdzLT5EZXNrdG9wV2lkdGg7CistCQloID0gc2V0dGluZ3MtPkRlc2t0b3BIZWlnaHQ7Cisr CQl4ZmMtPmV4cG9zZWRBcmVhLnggPSAwOworKwkJeGZjLT5leHBvc2VkQXJlYS55ID0gMDsKKysJ CXhmYy0+ZXhwb3NlZEFyZWEudyA9IHNldHRpbmdzLT5EZXNrdG9wV2lkdGg7CisrCQl4ZmMtPmV4 cG9zZWRBcmVhLmggPSBzZXR0aW5ncy0+RGVza3RvcEhlaWdodDsKKyAJfQorIAllbHNlCisgCXsK Ky0JCXggPSBldmVudC0+eDsKKy0JCXkgPSBldmVudC0+eTsKKy0JCXcgPSBldmVudC0+d2lkdGg7 CistCQloID0gZXZlbnQtPmhlaWdodDsKKysJCXhmYy0+ZXhwb3NlZEFyZWEueCA9IGV2ZW50LT54 OworKwkJeGZjLT5leHBvc2VkQXJlYS55ID0gZXZlbnQtPnk7CisrCQl4ZmMtPmV4cG9zZWRBcmVh LncgPSBldmVudC0+d2lkdGg7CisrCQl4ZmMtPmV4cG9zZWRBcmVhLmggPSBldmVudC0+aGVpZ2h0 OworIAl9CisgCistCWlmICghYXBwKQorLQl7CistCQlpZiAoeGZjLT5jb250ZXh0LmdkaS0+Z2Z4 KQorLQkJeworLQkJCXhmX091dHB1dEV4cG9zZSh4ZmMsIHgsIHksIHcsIGgpOworLQkJCXJldHVy biBUUlVFOworLQkJfQorLQkJeGZfZHJhd19zY3JlZW4oeGZjLCB4LCB5LCB3LCBoKTsKKy0JfQor LQllbHNlCistCXsKKy0JCXhmQXBwV2luZG93KiBhcHBXaW5kb3cgPSB4Zl9BcHBXaW5kb3dGcm9t WDExV2luZG93KHhmYywgZXZlbnQtPndpbmRvdyk7CistCQlpZiAoYXBwV2luZG93KQorLQkJCXhm X1VwZGF0ZVdpbmRvd0FyZWEoeGZjLCBhcHBXaW5kb3csIHgsIHksIHcsIGgpOworLQkJeGZfcmFp bF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdywgRkFMU0UpOworLQl9CisrCXhmYy0+ZXhwb3NlZFdp bmRvdyA9IGV2ZW50LT53aW5kb3c7CisrCXhmYy0+ZXhwb3NlUmVxdWVzdGVkID0gVFJVRTsKKyAK KyAJcmV0dXJuIFRSVUU7CisgfQorIAorKworIHN0YXRpYyBCT09MIHhmX2V2ZW50X1Zpc2liaWxp dHlOb3RpZnkoeGZDb250ZXh0KiB4ZmMsIGNvbnN0IFhWaXNpYmlsaXR5RXZlbnQqIGV2ZW50LCBC T09MIGFwcCkKKyB7CisgCVdJTlBSX1VOVVNFRChhcHApOworQEAgLTExODAsMyArMTE2OSwzOSBA QCBCT09MIHhmX2V2ZW50X3Byb2Nlc3MoZnJlZXJkcCogaW5zdGFuY2UsIGNvbnN0IFhFdmVudCog ZXZlbnQpCisgCVhTeW5jKHhmYy0+ZGlzcGxheSwgRkFMU0UpOworIAlyZXR1cm4gc3RhdHVzOwor IH0KKysKKytCT09MIHhmX2V2ZW50X3VwZGF0ZV9zY3JlZW4oZnJlZXJkcCogaW5zdGFuY2UpCisr eworKwlXSU5QUl9BU1NFUlQoaW5zdGFuY2UpOworKworKwl4ZkNvbnRleHQqIHhmYyA9ICh4ZkNv bnRleHQqKWluc3RhbmNlLT5jb250ZXh0OworKwlXSU5QUl9BU1NFUlQoeGZjKTsKKysKKysJcmRw U2V0dGluZ3MqIHNldHRpbmdzID0geGZjLT5jb250ZXh0LnNldHRpbmdzOworKwlXSU5QUl9BU1NF UlQoc2V0dGluZ3MpOworKworKwlpZiAoIXhmYy0+ZXhwb3NlUmVxdWVzdGVkKQorKwkJcmV0dXJu IFRSVUU7CisrCXhmYy0+ZXhwb3NlUmVxdWVzdGVkID0gRkFMU0U7CisrCisrCWlmICgheGZjLT5y ZW1vdGVfYXBwKQorKwl7CisrCQlpZiAoeGZjLT5jb250ZXh0LmdkaS0+Z2Z4KQorKwkJeworKwkJ CXhmX091dHB1dEV4cG9zZSh4ZmMsIHhmYy0+ZXhwb3NlZEFyZWEueCwgeGZjLT5leHBvc2VkQXJl YS55LAorKwkJCSAgICAgICAgICAgICAgICB4ZmMtPmV4cG9zZWRBcmVhLncsIHhmYy0+ZXhwb3Nl ZEFyZWEuaCk7CisrCQkJcmV0dXJuIFRSVUU7CisrCQl9CisrCQl4Zl9kcmF3X3NjcmVlbih4ZmMs IHhmYy0+ZXhwb3NlZEFyZWEueCwgeGZjLT5leHBvc2VkQXJlYS55LCB4ZmMtPmV4cG9zZWRBcmVh LncsCisrCQkgICAgICAgICAgICAgICB4ZmMtPmV4cG9zZWRBcmVhLmgpOworKwl9CisrCWVsc2UK KysJeworKwkJeGZBcHBXaW5kb3cqIGFwcFdpbmRvdyA9IHhmX0FwcFdpbmRvd0Zyb21YMTFXaW5k b3coeGZjLCB4ZmMtPmV4cG9zZWRXaW5kb3cpOworKwkJaWYgKGFwcFdpbmRvdykKKysJCQl4Zl9V cGRhdGVXaW5kb3dBcmVhKHhmYywgYXBwV2luZG93LCB4ZmMtPmV4cG9zZWRBcmVhLngsIHhmYy0+ ZXhwb3NlZEFyZWEueSwKKysJCQkgICAgICAgICAgICAgICAgICAgIHhmYy0+ZXhwb3NlZEFyZWEu dywgeGZjLT5leHBvc2VkQXJlYS5oKTsKKysJCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5k b3csIEZBTFNFKTsKKysJfQorKwlyZXR1cm4gVFJVRTsKKyt9CitkaWZmIC0tZ2l0IGEvY2xpZW50 L1gxMS94Zl9ldmVudC5oIGIvY2xpZW50L1gxMS94Zl9ldmVudC5oCitpbmRleCAyMjY5ZDNlLi5l MDI1ZDE5IDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl9ldmVudC5oCisrKysgYi9jbGllbnQv WDExL3hmX2V2ZW50LmgKK0BAIC0yOSw2ICsyOSw4IEBAIEJPT0wgeGZfZXZlbnRfYWN0aW9uX3Nj cmlwdF9pbml0KHhmQ29udGV4dCogeGZjKTsKKyB2b2lkIHhmX2V2ZW50X2FjdGlvbl9zY3JpcHRf ZnJlZSh4ZkNvbnRleHQqIHhmYyk7CisgCisgQk9PTCB4Zl9ldmVudF9wcm9jZXNzKGZyZWVyZHAq IGluc3RhbmNlLCBjb25zdCBYRXZlbnQqIGV2ZW50KTsKKysKKytCT09MIHhmX2V2ZW50X3VwZGF0 ZV9zY3JlZW4oZnJlZXJkcCogaW5zdGFuY2UpOworIHZvaWQgeGZfZXZlbnRfU2VuZENsaWVudEV2 ZW50KHhmQ29udGV4dCogeGZjLCB4ZldpbmRvdyogd2luZG93LCBBdG9tIGF0b20sIHVuc2lnbmVk IGludCBudW1BcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLik7CisgCitk aWZmIC0tZ2l0IGEvY2xpZW50L1gxMS94ZnJlZXJkcC5oIGIvY2xpZW50L1gxMS94ZnJlZXJkcC5o CitpbmRleCA2MzZlNjBhLi5hMWEzM2IyIDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94ZnJlZXJk cC5oCisrKysgYi9jbGllbnQvWDExL3hmcmVlcmRwLmgKK0BAIC0yNjEsNiArMjYxLDEwIEBAIHN0 cnVjdCB4Zl9jb250ZXh0CisgCXdIYXNoVGFibGUqIHJhaWxXaW5kb3dzOworIAl4ZlJhaWxJY29u Q2FjaGUqIHJhaWxJY29uQ2FjaGU7CisgCisrCUJPT0wgZXhwb3NlUmVxdWVzdGVkOworKwlHRElf UkdOIGV4cG9zZWRBcmVhOworKwlXaW5kb3cgZXhwb3NlZFdpbmRvdzsKKysKKyAJQk9PTCB4a2JB dmFpbGFibGU7CisgCUJPT0wgeHJlbmRlckF2YWlsYWJsZTsKKyAKKy0tIAorMi41My4wCisKCmRp ZmYgLS1naXQgYS9jbGllbnQteDExLWZpeC1kb3VibGUtZnJlZS1pbi1jYXNlLW9mLWludmFsaWQt cG9pbnRlLnBhdGNoIGIvY2xpZW50LXgxMS1maXgtZG91YmxlLWZyZWUtaW4tY2FzZS1vZi1pbnZh bGlkLXBvaW50ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzA3 NGVjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpZW50LXgxMS1maXgtZG91YmxlLWZyZWUtaW4tY2Fz ZS1vZi1pbnZhbGlkLXBvaW50ZS5wYXRjaApAQCAtMCwwICsxLDUzIEBACitGcm9tIGMwZTg1ZDky ZTQ1ZGZmNmM5YTEyZTZhZjViZTJlOWVkMTBiNDk5MGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgMjIgSmFu IDIwMjYgMTI6NTE6MDggKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2NsaWVudCx4MTFdIGZpeCBk b3VibGUgZnJlZSBpbiBjYXNlIG9mIGludmFsaWQgcG9pbnRlcgorCitCYWNrcG9ydCBvZiBjb21t aXQgMDQyMWI1M2ZjYjRhODBjOTVmNTEzNDJlNGEyYzQwYzY4YTQxMDFkMy4KKworQ28tQXV0aG9y ZWQtQnk6IENsYXVkZSA8bm9yZXBseUBhbnRocm9waWMuY29tPgorLS0tCisgY2xpZW50L1gxMS94 Zl9ncmFwaGljcy5jIHwgMTMgKysrKysrLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jbGllbnQvWDExL3hmX2dy YXBoaWNzLmMgYi9jbGllbnQvWDExL3hmX2dyYXBoaWNzLmMKK2luZGV4IDVhYTFmZDQ4Yi4uZDU5 NmIyM2RhIDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl9ncmFwaGljcy5jCisrKysgYi9jbGll bnQvWDExL3hmX2dyYXBoaWNzLmMKK0BAIC00MDYsNyArNDA2LDYgQEAgc3RhdGljIEJPT0wgeGZf UG9pbnRlcl9OZXcocmRwQ29udGV4dCogY29udGV4dCwgcmRwUG9pbnRlciogcG9pbnRlcikKKyAJ Qk9PTCByYyA9IEZBTFNFOworICNpZmRlZiBXSVRIX1hDVVJTT1IKKyAJVUlOVDMyIEN1cnNvckZv cm1hdDsKKy0Jc2l6ZV90IHNpemU7CisgCXhmQ29udGV4dCogeGZjID0gKHhmQ29udGV4dCopY29u dGV4dDsKKyAJeGZQb2ludGVyKiB4cG9pbnRlciA9ICh4ZlBvaW50ZXIqKXBvaW50ZXI7CisgCitA QCAtNDIxLDE5ICs0MjAsMTkgQEAgc3RhdGljIEJPT0wgeGZfUG9pbnRlcl9OZXcocmRwQ29udGV4 dCogY29udGV4dCwgcmRwUG9pbnRlciogcG9pbnRlcikKKyAJeHBvaW50ZXItPm5DdXJzb3JzID0g MDsKKyAJeHBvaW50ZXItPm1DdXJzb3JzID0gMDsKKyAKKy0Jc2l6ZSA9IDF1bGwgKiBwb2ludGVy LT5oZWlnaHQgKiBwb2ludGVyLT53aWR0aCAqIEdldEJ5dGVzUGVyUGl4ZWwoQ3Vyc29yRm9ybWF0 KTsKKysJY29uc3Qgc2l6ZV90IHNpemUgPQorKwkgICAgMXVsbCAqIHBvaW50ZXItPmhlaWdodCAq IHBvaW50ZXItPndpZHRoICogR2V0Qnl0ZXNQZXJQaXhlbChDdXJzb3JGb3JtYXQpOworIAorLQlp ZiAoISh4cG9pbnRlci0+Y3Vyc29yUGl4ZWxzID0gKFhjdXJzb3JQaXhlbCopX2FsaWduZWRfbWFs bG9jKHNpemUsIDE2KSkpCisrCXhwb2ludGVyLT5jdXJzb3JQaXhlbHMgPSAoWGN1cnNvclBpeGVs KilfYWxpZ25lZF9tYWxsb2Moc2l6ZSwgMTYpOworKwlpZiAoIXhwb2ludGVyLT5jdXJzb3JQaXhl bHMpCisgCQlnb3RvIGZhaWw7CisgCisgCWlmICghZnJlZXJkcF9pbWFnZV9jb3B5X2Zyb21fcG9p bnRlcl9kYXRhKAorIAkgICAgICAgIChCWVRFKil4cG9pbnRlci0+Y3Vyc29yUGl4ZWxzLCBDdXJz b3JGb3JtYXQsIDAsIDAsIDAsIHBvaW50ZXItPndpZHRoLCBwb2ludGVyLT5oZWlnaHQsCisgCSAg ICAgICAgcG9pbnRlci0+eG9yTWFza0RhdGEsIHBvaW50ZXItPmxlbmd0aFhvck1hc2ssIHBvaW50 ZXItPmFuZE1hc2tEYXRhLAorIAkgICAgICAgIHBvaW50ZXItPmxlbmd0aEFuZE1hc2ssIHBvaW50 ZXItPnhvckJwcCwgJmNvbnRleHQtPmdkaS0+cGFsZXR0ZSkpCistCXsKKy0JCV9hbGlnbmVkX2Zy ZWUoeHBvaW50ZXItPmN1cnNvclBpeGVscyk7CistCQlyZXR1cm4gRkFMU0U7CistCX0KKysJCWdv dG8gZmFpbDsKKysKKyAJcmMgPSBUUlVFOworIAorICNlbmRpZgorLS0gCisyLjUyLjAKKwoKZGlm ZiAtLWdpdCBhL2NsaWVudC14MTEtZml4LXhmX3JhaWxfd2luZG93X2NvbW1vbi1jbGVhbnVwLnBh dGNoIGIvY2xpZW50LXgxMS1maXgteGZfcmFpbF93aW5kb3dfY29tbW9uLWNsZWFudXAucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU0YjE1NQotLS0gL2Rldi9udWxs CisrKyBiL2NsaWVudC14MTEtZml4LXhmX3JhaWxfd2luZG93X2NvbW1vbi1jbGVhbnVwLnBhdGNo CkBAIC0wLDAgKzEsNDUgQEAKK0Zyb20gNTYyY2M0YjMzMjU3MDc0ZDFkNTA1MzUxMzg5OThiYzgx Nzk2ZDQ0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9s eUByZWRoYXQuY29tPgorRGF0ZTogTW9uLCAyNyBBcHIgMjAyNiAxOTowMDowMCArMDAwMAorU3Vi amVjdDogW1BBVENIXSBbY2xpZW50LHgxMV0gZml4IHhmX3JhaWxfd2luZG93X2NvbW1vbiBjbGVh bnVwCisKK0JhY2twb3J0IG9mIGNvbW1pdCBiNGYwZjBhMThmZTUzYWE4ZDQ3ZDA2MmY5MTQ3MWY0 ZTljNWUwZDUxLgorCitBZGp1c3RlZCBodW5rIG9mZnNldHMgZm9yIDIuMTEuNy4KKworTWFkZS13 aXRoOiBDdXJzb3IKKy0tLQorIGNsaWVudC9YMTEveGZfcmFpbC5jIHwgNiArLS0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9jbGllbnQvWDExL3hmX3JhaWwuYyBiL2NsaWVudC9YMTEveGZfcmFpbC5jCitpbmRleCAyNDJj NTRiLi40YzRmNDdkIDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl9yYWlsLmMKKysrKyBiL2Ns aWVudC9YMTEveGZfcmFpbC5jCitAQCAtMjYwLDExICsyNjAsMTAgQEAgc3RhdGljIHZvaWQgd2lu ZG93X3N0YXRlX2xvZ19zdHlsZSh3TG9nKiBsb2csIGNvbnN0IFdJTkRPV19TVEFURV9PUkRFUiog d2luZG93U3QKKyBzdGF0aWMgQk9PTCB4Zl9yYWlsX3dpbmRvd19jb21tb24ocmRwQ29udGV4dCog Y29udGV4dCwgY29uc3QgV0lORE9XX09SREVSX0lORk8qIG9yZGVySW5mbywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV0lORE9XX1NUQVRFX09SREVSKiB3aW5kb3dT dGF0ZSkKKyB7CistCXhmQXBwV2luZG93KiBhcHBXaW5kb3cgPSBOVUxMOworIAl4ZkNvbnRleHQq IHhmYyA9ICh4ZkNvbnRleHQqKWNvbnRleHQ7CisgCVVJTlQzMiBmaWVsZEZsYWdzID0gb3JkZXJJ bmZvLT5maWVsZEZsYWdzOworIAlCT09MIHBvc2l0aW9uX29yX3NpemVfdXBkYXRlZCA9IEZBTFNF OworLQlhcHBXaW5kb3cgPSB4Zl9yYWlsX2dldF93aW5kb3coeGZjLCBvcmRlckluZm8tPndpbmRv d0lkKTsKKysJeGZBcHBXaW5kb3cqIGFwcFdpbmRvdyA9IHhmX3JhaWxfZ2V0X3dpbmRvdyh4ZmMs IG9yZGVySW5mby0+d2luZG93SWQpOworIAorIAlpZiAoZmllbGRGbGFncyAmIFdJTkRPV19PUkRF Ul9TVEFURV9ORVcpCisgCXsKK0BAIC0zMTAsMTAgKzMwOSw3IEBAIHN0YXRpYyBCT09MIHhmX3Jh aWxfd2luZG93X2NvbW1vbihyZHBDb250ZXh0KiBjb250ZXh0LCBjb25zdCBXSU5ET1dfT1JERVJf SU5GTyoKKyAJCX0KKyAKKyAJCWlmICghYXBwV2luZG93LT50aXRsZSkKKy0JCXsKKy0JCQlmcmVl KGFwcFdpbmRvdyk7CisgCQkJcmV0dXJuIEZBTFNFOworLQkJfQorIAorIAkJeGZfQXBwV2luZG93 SW5pdCh4ZmMsIGFwcFdpbmRvdyk7CisgCX0KKy0tIAorMi41My4wCisKCmRpZmYgLS1naXQgYS9j bGllbnQteDExLWltcHJvdmUtcmFpbHMtd2luZG93LWxvY2tpbmcucGF0Y2ggYi9jbGllbnQteDEx LWltcHJvdmUtcmFpbHMtd2luZG93LWxvY2tpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMjJkYzc2MgotLS0gL2Rldi9udWxsCisrKyBiL2NsaWVudC14MTEtaW1w cm92ZS1yYWlscy13aW5kb3ctbG9ja2luZy5wYXRjaApAQCAtMCwwICsxLDMzMSBAQAorRnJvbSBl NmVkYWJlNjkwYWQ4ZGU2M2FmMzI3NDAzZTgzNzFiNmVmMTMxOWUyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogT25kcmVqIEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRlOiBNb24s IDI3IEFwciAyMDI2IDE5OjM4OjQ3ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjbGllbnQseDEx XSBpbXByb3ZlIHJhaWxzIHdpbmRvdyBsb2NraW5nCisKK0JhY2twb3J0IG9mIGNvbW1pdCA3OGZk N2Y1ODBkNWY5ZTZkOWQ1ODJkODJlNWVhOTYwMDM4NDRmYmRmLgorCitBZGFwdGVkIGZvciAyLjEx Ljc6IEM4OSBkZWNsYXJhdGlvbiBzdHlsZSwgc2ltcGxpZmllZAorYHhmQXBwV2luZG93c0xvY2tG cm9tYC9gVW5sb2NrRnJvbWAgc2lnbmF0dXJlcyAobm8KK2BXSU5QUl9BVFRSX1VOVVNFRGApLCBg WFNldFRyYW5zaWVudEZvckhpbnRgIGlubGluZSBlcnJvciBoYW5kbGluZy4KKworTWFkZS13aXRo OiBDdXJzb3IKKy0tLQorIGNsaWVudC9YMTEveGZfZXZlbnQuYyAgICB8ICA3ICsrLS0tLQorIGNs aWVudC9YMTEveGZfZ3JhcGhpY3MuYyB8ICA0ICstLQorIGNsaWVudC9YMTEveGZfcmFpbC5jICAg ICB8IDUzICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQorIGNsaWVudC9Y MTEveGZfcmFpbC5oICAgICB8IDEwICsrKysrKy0tCisgY2xpZW50L1gxMS94Zl93aW5kb3cuYyAg IHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQorIGNsaWVudC9Y MTEveGZfd2luZG93LmggICB8IDExICsrKysrKy0tCisgNiBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNl cnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NsaWVudC9YMTEveGZf ZXZlbnQuYyBiL2NsaWVudC9YMTEveGZfZXZlbnQuYworaW5kZXggOGJlYmNkNC4uODgwMWZiZCAx MDA2NDQKKy0tLSBhL2NsaWVudC9YMTEveGZfZXZlbnQuYworKysrIGIvY2xpZW50L1gxMS94Zl9l dmVudC5jCitAQCAtMzU0LDEzICszNTQsMTAgQEAgc3RhdGljIEJPT0wgeGZfZXZlbnRfRXhwb3Nl KHhmQ29udGV4dCogeGZjLCBjb25zdCBYRXhwb3NlRXZlbnQqIGV2ZW50LCBCT09MIGFwcCkKKyAJ fQorIAllbHNlCisgCXsKKy0JCXhmQXBwV2luZG93KiBhcHBXaW5kb3c7CistCQlhcHBXaW5kb3cg PSB4Zl9BcHBXaW5kb3dGcm9tWDExV2luZG93KHhmYywgZXZlbnQtPndpbmRvdyk7CistCisrCQl4 ZkFwcFdpbmRvdyogYXBwV2luZG93ID0geGZfQXBwV2luZG93RnJvbVgxMVdpbmRvdyh4ZmMsIGV2 ZW50LT53aW5kb3cpOworIAkJaWYgKGFwcFdpbmRvdykKKy0JCXsKKyAJCQl4Zl9VcGRhdGVXaW5k b3dBcmVhKHhmYywgYXBwV2luZG93LCB4LCB5LCB3LCBoKTsKKy0JCX0KKysJCXhmX3JhaWxfcmV0 dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworIAl9CisgCisgCXJldHVybiBUUlVFOworZGlmZiAtLWdp dCBhL2NsaWVudC9YMTEveGZfZ3JhcGhpY3MuYyBiL2NsaWVudC9YMTEveGZfZ3JhcGhpY3MuYwor aW5kZXggNzA5NzliZC4uZjViNGYzZCAxMDA2NDQKKy0tLSBhL2NsaWVudC9YMTEveGZfZ3JhcGhp Y3MuYworKysrIGIvY2xpZW50L1gxMS94Zl9ncmFwaGljcy5jCitAQCAtMzcyLDEyICszNzIsMTIg QEAgc3RhdGljIFdpbmRvdyB4Zl9Qb2ludGVyX2dldF93aW5kb3coeGZDb250ZXh0KiB4ZmMpCisg CWlmICh4ZmMtPnJlbW90ZV9hcHApCisgCXsKKyAJCVdpbmRvdyB3ID0gMDsKKy0JCUVudGVyQ3Jp dGljYWxTZWN0aW9uKCZ4ZmMtPnJhaWxXaW5kb3dzLT5sb2NrKTsKKysJCXhmX0FwcFdpbmRvd3NM b2NrKHhmYyk7CisgCQlpZiAoIXhmYy0+YXBwV2luZG93KQorIAkJCVdMb2dfV0FSTihUQUcsICJ4 Zl9Qb2ludGVyOiBJbnZhbGlkIGFwcFdpbmRvdyIpOworIAkJZWxzZQorIAkJCXcgPSB4ZmMtPmFw cFdpbmRvdy0+aGFuZGxlOworLQkJTGVhdmVDcml0aWNhbFNlY3Rpb24oJnhmYy0+cmFpbFdpbmRv d3MtPmxvY2spOworKwkJeGZfQXBwV2luZG93c1VubG9jayh4ZmMpOworIAkJcmV0dXJuIHc7Cisg CX0KKyAJZWxzZQorZGlmZiAtLWdpdCBhL2NsaWVudC9YMTEveGZfcmFpbC5jIGIvY2xpZW50L1gx MS94Zl9yYWlsLmMKK2luZGV4IDE5MzhiZGQuLjFlNTcwNDYgMTAwNjQ0CistLS0gYS9jbGllbnQv WDExL3hmX3JhaWwuYworKysrIGIvY2xpZW50L1gxMS94Zl9yYWlsLmMKK0BAIC0xMDEsOSArMTAx LDEwIEBAIHZvaWQgeGZfcmFpbF9zZW5kX2FjdGl2YXRlKHhmQ29udGV4dCogeGZjLCBXaW5kb3cg eHdpbmRvdywgQk9PTCBlbmFibGVkKQorIAkJeGZfU2V0V2luZG93U3R5bGUoeGZjLCBhcHBXaW5k b3csIDAsIDApOworIAorIAlhY3RpdmF0ZS53aW5kb3dJZCA9IGFwcFdpbmRvdy0+d2luZG93SWQ7 CisrCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworKworIAlhY3RpdmF0ZS5lbmFi bGVkID0gZW5hYmxlZDsKKyAJeGZjLT5yYWlsLT5DbGllbnRBY3RpdmF0ZSh4ZmMtPnJhaWwsICZh Y3RpdmF0ZSk7CistCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworIH0KKyAKKyB2 b2lkIHhmX3JhaWxfc2VuZF9jbGllbnRfc3lzdGVtX2NvbW1hbmQoeGZDb250ZXh0KiB4ZmMsIFVJ TlQzMiB3aW5kb3dJZCwgVUlOVDE2IGNvbW1hbmQpCitAQCAtMjYwLDYgKzI2MSw3IEBAIHZvaWQg eGZfcmFpbF9wYWludCh4ZkNvbnRleHQqIHhmYywgSU5UMzIgdWxlZnQsIElOVDMyIHV0b3AsIFVJ TlQzMiB1cmlnaHQsIFVJTlQzCisgc3RhdGljIEJPT0wgeGZfcmFpbF93aW5kb3dfY29tbW9uKHJk cENvbnRleHQqIGNvbnRleHQsIGNvbnN0IFdJTkRPV19PUkRFUl9JTkZPKiBvcmRlckluZm8sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdJTkRPV19TVEFURV9PUkRF Uiogd2luZG93U3RhdGUpCisgeworKwlCT09MIHJjID0gRkFMU0U7CisgCXhmQ29udGV4dCogeGZj ID0gKHhmQ29udGV4dCopY29udGV4dDsKKyAJVUlOVDMyIGZpZWxkRmxhZ3MgPSBvcmRlckluZm8t PmZpZWxkRmxhZ3M7CisgCUJPT0wgcG9zaXRpb25fb3Jfc2l6ZV91cGRhdGVkID0gRkFMU0U7CitA QCAtMzc5LDE0ICszODEsMTQgQEAgc3RhdGljIEJPT0wgeGZfcmFpbF93aW5kb3dfY29tbW9uKHJk cENvbnRleHQqIGNvbnRleHQsIGNvbnN0IFdJTkRPV19PUkRFUl9JTkZPKgorIAkJCWlmICghKHRp dGxlID0gX3N0cmR1cCgiIikpKQorIAkJCXsKKyAJCQkJV0xvZ19FUlIoVEFHLCAiZmFpbGVkIHRv IGR1cGxpY2F0ZSBlbXB0eSB3aW5kb3cgdGl0bGUgc3RyaW5nIik7CistCQkJCXJldHVybiBGQUxT RTsKKysJCQkJZ290byBmYWlsOworIAkJCX0KKyAJCX0KKyAJCWVsc2UgaWYgKENvbnZlcnRGcm9t VW5pY29kZShDUF9VVEY4LCAwLCAoV0NIQVIqKXdpbmRvd1N0YXRlLT50aXRsZUluZm8uc3RyaW5n LAorIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1N0YXRlLT50aXRsZUluZm8u bGVuZ3RoIC8gMiwgJnRpdGxlLCAwLCBOVUxMLCBOVUxMKSA8IDEpCisgCQl7CisgCQkJV0xvZ19F UlIoVEFHLCAiZmFpbGVkIHRvIGNvbnZlcnQgd2luZG93IHRpdGxlIik7CistCQkJcmV0dXJuIEZB TFNFOworKwkJCWdvdG8gZmFpbDsKKyAJCX0KKyAKKyAJCWZyZWUoYXBwV2luZG93LT50aXRsZSk7 CitAQCAtNDI3LDcgKzQyOSw3IEBAIHN0YXRpYyBCT09MIHhmX3JhaWxfd2luZG93X2NvbW1vbihy ZHBDb250ZXh0KiBjb250ZXh0LCBjb25zdCBXSU5ET1dfT1JERVJfSU5GTyoKKyAJCQkgICAgKFJF Q1RBTkdMRV8xNiopY2FsbG9jKGFwcFdpbmRvdy0+bnVtV2luZG93UmVjdHMsIHNpemVvZihSRUNU QU5HTEVfMTYpKTsKKyAKKyAJCQlpZiAoIWFwcFdpbmRvdy0+d2luZG93UmVjdHMpCistCQkJCXJl dHVybiBGQUxTRTsKKysJCQkJZ290byBmYWlsOworIAorIAkJCUNvcHlNZW1vcnkoYXBwV2luZG93 LT53aW5kb3dSZWN0cywgd2luZG93U3RhdGUtPndpbmRvd1JlY3RzLAorIAkJCSAgICAgICAgICAg YXBwV2luZG93LT5udW1XaW5kb3dSZWN0cyAqIHNpemVvZihSRUNUQU5HTEVfMTYpKTsKK0BAIC00 NTYsNyArNDU4LDcgQEAgc3RhdGljIEJPT0wgeGZfcmFpbF93aW5kb3dfY29tbW9uKHJkcENvbnRl eHQqIGNvbnRleHQsIGNvbnN0IFdJTkRPV19PUkRFUl9JTkZPKgorIAkJCSAgICAoUkVDVEFOR0xF XzE2KiljYWxsb2MoYXBwV2luZG93LT5udW1WaXNpYmlsaXR5UmVjdHMsIHNpemVvZihSRUNUQU5H TEVfMTYpKTsKKyAKKyAJCQlpZiAoIWFwcFdpbmRvdy0+dmlzaWJpbGl0eVJlY3RzKQorLQkJCQly ZXR1cm4gRkFMU0U7CisrCQkJCWdvdG8gZmFpbDsKKyAKKyAJCQlDb3B5TWVtb3J5KGFwcFdpbmRv dy0+dmlzaWJpbGl0eVJlY3RzLCB3aW5kb3dTdGF0ZS0+dmlzaWJpbGl0eVJlY3RzLAorIAkJCSAg ICAgICAgICAgYXBwV2luZG93LT5udW1WaXNpYmlsaXR5UmVjdHMgKiBzaXplb2YoUkVDVEFOR0xF XzE2KSk7CitAQCAtNTIyLDcgKzUyNCwxMCBAQCBzdGF0aWMgQk9PTCB4Zl9yYWlsX3dpbmRvd19j b21tb24ocmRwQ29udGV4dCogY29udGV4dCwgY29uc3QgV0lORE9XX09SREVSX0lORk8qCisgCXsK KyAJICAgIHhmX1NldFdpbmRvd1JlY3RzKHhmYywgYXBwV2luZG93LCBhcHBXaW5kb3ctPndpbmRv d1JlY3RzLCBhcHBXaW5kb3ctPm51bVdpbmRvd1JlY3RzKTsKKyAJfSovCistCXJldHVybiBUUlVF OworKwlyYyA9IFRSVUU7CisrZmFpbDoKKysJeGZfcmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRv dyk7CisrCXJldHVybiByYzsKKyB9CisgCisgc3RhdGljIEJPT0wgeGZfcmFpbF93aW5kb3dfZGVs ZXRlKHJkcENvbnRleHQqIGNvbnRleHQsIGNvbnN0IFdJTkRPV19PUkRFUl9JTkZPKiBvcmRlcklu Zm8pCitAQCAtMTAwMCwxNCArMTAwNSwxNCBAQCBzdGF0aWMgVUlOVCB4Zl9yYWlsX3NlcnZlcl9s b2NhbF9tb3ZlX3NpemUoUmFpbENsaWVudENvbnRleHQqIGNvbnRleHQsCisgCQkJeCA9IGxvY2Fs TW92ZVNpemUtPnBvc1g7CisgCQkJeSA9IGxvY2FsTW92ZVNpemUtPnBvc1k7CisgCQkJLyogRklY TUU6IGxvY2FsIGtleWJvYXJkIG1vdmVzIG5vdCB3b3JraW5nICovCistCQkJcmV0dXJuIENIQU5O RUxfUkNfT0s7CisrCQkJYnJlYWs7CisgCisgCQljYXNlIFJBSUxfV01TWl9LRVlTSVpFOgorIAkJ CWRpcmVjdGlvbiA9IF9ORVRfV01fTU9WRVJFU0laRV9TSVpFX0tFWUJPQVJEOworIAkJCXggPSBs b2NhbE1vdmVTaXplLT5wb3NYOworIAkJCXkgPSBsb2NhbE1vdmVTaXplLT5wb3NZOworIAkJCS8q IEZJWE1FOiBsb2NhbCBrZXlib2FyZCBtb3ZlcyBub3Qgd29ya2luZyAqLworLQkJCXJldHVybiBD SEFOTkVMX1JDX09LOworKwkJCWJyZWFrOworIAl9CisgCisgCWlmIChsb2NhbE1vdmVTaXplLT5p c01vdmVTaXplU3RhcnQpCitAQCAtMTE3Myw5ICsxMTc4LDE3IEBAIHhmQXBwV2luZG93KiB4Zl9y YWlsX2FkZF93aW5kb3coeGZDb250ZXh0KiB4ZmMsIFVJTlQ2NCBpZCwgVUlOVDMyIHgsIFVJTlQz MiB5LCBVCisgCWFwcFdpbmRvdy0+eSA9IHk7CisgCWFwcFdpbmRvdy0+d2lkdGggPSB3aWR0aDsK KyAJYXBwV2luZG93LT5oZWlnaHQgPSBoZWlnaHQ7CistCXhmX0FwcFdpbmRvd0NyZWF0ZSh4ZmMs IGFwcFdpbmRvdyk7CistCUhhc2hUYWJsZV9BZGQoeGZjLT5yYWlsV2luZG93cywgJmFwcFdpbmRv dy0+d2luZG93SWQsICh2b2lkKilhcHBXaW5kb3cpOworKwl4Zl9BcHBXaW5kb3dzTG9jayh4ZmMp OworKwlpZiAoeGZfQXBwV2luZG93Q3JlYXRlKHhmYywgYXBwV2luZG93KSA8IDApCisrCQlnb3Rv IGZhaWw7CisrCisrCWlmIChIYXNoVGFibGVfQWRkKHhmYy0+cmFpbFdpbmRvd3MsICZhcHBXaW5k b3ctPndpbmRvd0lkLCAodm9pZCopYXBwV2luZG93KSA8IDApCisrCQlnb3RvIGZhaWw7CisgCXJl dHVybiBhcHBXaW5kb3c7CisrZmFpbDoKKysJZnJlZShhcHBXaW5kb3cpOworKwl4Zl9BcHBXaW5k b3dzVW5sb2NrKHhmYyk7CisrCXJldHVybiBOVUxMOworIH0KKyAKKyBCT09MIHhmX3JhaWxfZGVs X3dpbmRvdyh4ZkNvbnRleHQqIHhmYywgVUlOVDY0IGlkKQorQEAgLTExODksMjYgKzEyMDIsMTAg QEAgQk9PTCB4Zl9yYWlsX2RlbF93aW5kb3coeGZDb250ZXh0KiB4ZmMsIFVJTlQ2NCBpZCkKKyAJ cmV0dXJuIEhhc2hUYWJsZV9SZW1vdmUoeGZjLT5yYWlsV2luZG93cywgJmlkKTsKKyB9CisgCist eGZBcHBXaW5kb3cqIHhmX3JhaWxfZ2V0X3dpbmRvdyh4ZkNvbnRleHQqIHhmYywgVUlOVDY0IGlk KQorLXsKKy0JaWYgKCF4ZmMpCistCQlyZXR1cm4gTlVMTDsKKy0KKy0JaWYgKCF4ZmMtPnJhaWxX aW5kb3dzKQorLQkJcmV0dXJuIE5VTEw7CistCistCUVudGVyQ3JpdGljYWxTZWN0aW9uKCZ4ZmMt PnJhaWxXaW5kb3dzLT5sb2NrKTsKKy0JeGZBcHBXaW5kb3cqIHdpbmRvdyA9IEhhc2hUYWJsZV9H ZXRJdGVtVmFsdWUoeGZjLT5yYWlsV2luZG93cywgJmlkKTsKKy0JaWYgKCF3aW5kb3cpCistCQlM ZWF2ZUNyaXRpY2FsU2VjdGlvbigmeGZjLT5yYWlsV2luZG93cy0+bG9jayk7CistCistCXJldHVy biB3aW5kb3c7CistfQorLQorLXZvaWQgeGZfcmFpbF9yZXR1cm5fd2luZG93KHhmQXBwV2luZG93 KiB3aW5kb3cpCisrdm9pZCB4Zl9yYWlsX3JldHVybl93aW5kb3dGcm9tKHhmQXBwV2luZG93KiB3 aW5kb3csIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZrdCwgc2l6ZV90IGxpbmUpCisg eworIAlpZiAoIXdpbmRvdykKKyAJCXJldHVybjsKKyAKKy0JTGVhdmVDcml0aWNhbFNlY3Rpb24o JndpbmRvdy0+eGZjLT5yYWlsV2luZG93cy0+bG9jayk7CisrCXhmQXBwV2luZG93c1VubG9ja0Zy b20od2luZG93LT54ZmMsIGZpbGUsIGZrdCwgbGluZSk7CisgfQorZGlmZiAtLWdpdCBhL2NsaWVu dC9YMTEveGZfcmFpbC5oIGIvY2xpZW50L1gxMS94Zl9yYWlsLmgKK2luZGV4IDVmYmMzMTYuLjgz ZDVmZmYgMTAwNjQ0CistLS0gYS9jbGllbnQvWDExL3hmX3JhaWwuaAorKysrIGIvY2xpZW50L1gx MS94Zl9yYWlsLmgKK0BAIC0zNiw5ICszNiwxNSBAQCB2b2lkIHhmX3JhaWxfZGlzYWJsZV9yZW1v dGVhcHBfbW9kZSh4ZkNvbnRleHQqIHhmYyk7CisgeGZBcHBXaW5kb3cqIHhmX3JhaWxfYWRkX3dp bmRvdyh4ZkNvbnRleHQqIHhmYywgVUlOVDY0IGlkLCBVSU5UMzIgeCwgVUlOVDMyIHksIFVJTlQz MiB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJTlQzMiBoZWlnaHQs IFVJTlQzMiBzdXJmYWNlSWQpOworIAorLXZvaWQgeGZfcmFpbF9yZXR1cm5fd2luZG93KHhmQXBw V2luZG93KiB3aW5kb3cpOworKyNkZWZpbmUgeGZfcmFpbF9yZXR1cm5fd2luZG93KHdpbmRvdykg XAorKwl4Zl9yYWlsX3JldHVybl93aW5kb3dGcm9tKCh3aW5kb3cpLCBfX0ZJTEVfXywgX19mdW5j X18sIF9fTElORV9fKQorK3ZvaWQgeGZfcmFpbF9yZXR1cm5fd2luZG93RnJvbSh4ZkFwcFdpbmRv dyogd2luZG93LCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFyKiBma3QsIHNpemVfdCBsaW5l KTsKKyAKKy14ZkFwcFdpbmRvdyogeGZfcmFpbF9nZXRfd2luZG93KHhmQ29udGV4dCogeGZjLCBV SU5UNjQgaWQpOworKyNkZWZpbmUgeGZfcmFpbF9nZXRfd2luZG93KHhmYywgaWQpIFwKKysJeGZf cmFpbF9nZXRfd2luZG93RnJvbSgoeGZjKSwgKGlkKSwgX19GSUxFX18sIF9fZnVuY19fLCBfX0xJ TkVfXykKKysKKyt4ZkFwcFdpbmRvdyogeGZfcmFpbF9nZXRfd2luZG93RnJvbSh4ZkNvbnRleHQq IHhmYywgVUlOVDY0IGlkLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFyKiBma3QsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxpbmUpOworIAorIEJPT0wg eGZfcmFpbF9kZWxfd2luZG93KHhmQ29udGV4dCogeGZjLCBVSU5UNjQgaWQpOworIAorZGlmZiAt LWdpdCBhL2NsaWVudC9YMTEveGZfd2luZG93LmMgYi9jbGllbnQvWDExL3hmX3dpbmRvdy5jCitp bmRleCA3ZTkzNmZlLi4wOWI0YTgxIDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl93aW5kb3cu YworKysrIGIvY2xpZW50L1gxMS94Zl93aW5kb3cuYworQEAgLTExMTYsMzkgKzExMTYsNzEgQEAg dm9pZCB4Zl9EZXN0cm95V2luZG93KHhmQ29udGV4dCogeGZjLCB4ZkFwcFdpbmRvdyogYXBwV2lu ZG93KQorIAlmcmVlKGFwcFdpbmRvdyk7CisgfQorIAorLXhmQXBwV2luZG93KiB4Zl9BcHBXaW5k b3dGcm9tWDExV2luZG93KHhmQ29udGV4dCogeGZjLCBXaW5kb3cgd25kKQorK3N0YXRpYyB4ZkFw cFdpbmRvdyogZ2V0X3dpbmRvd1VubG9ja2VkKHhmQ29udGV4dCogeGZjLCBVSU5UNjQgaWQpCisr eworKwlXSU5QUl9BU1NFUlQoeGZjKTsKKysJcmV0dXJuIEhhc2hUYWJsZV9HZXRJdGVtVmFsdWUo eGZjLT5yYWlsV2luZG93cywgJmlkKTsKKyt9CisrCisreGZBcHBXaW5kb3cqIHhmX3JhaWxfZ2V0 X3dpbmRvd0Zyb20oeGZDb250ZXh0KiB4ZmMsIFVJTlQ2NCBpZCwgY29uc3QgY2hhciogZmlsZSwg Y29uc3QgY2hhciogZmt0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVfdCBsaW5lKQorK3sKKysJaWYgKCF4ZmMpCisrCQlyZXR1cm4gTlVMTDsKKysKKysJaWYgKCF4 ZmMtPnJhaWxXaW5kb3dzKQorKwkJcmV0dXJuIE5VTEw7CisrCisrCXhmQXBwV2luZG93c0xvY2tG cm9tKHhmYywgZmlsZSwgZmt0LCBsaW5lKTsKKysJeGZBcHBXaW5kb3cqIHdpbmRvdyA9IGdldF93 aW5kb3dVbmxvY2tlZCh4ZmMsIGlkKTsKKysJaWYgKCF3aW5kb3cpCisrCQl4ZkFwcFdpbmRvd3NV bmxvY2tGcm9tKHhmYywgZmlsZSwgZmt0LCBsaW5lKTsKKysKKysJcmV0dXJuIHdpbmRvdzsKKyt9 CisrCisreGZBcHBXaW5kb3cqIHhmX0FwcFdpbmRvd0Zyb21YMTFXaW5kb3dGcm9tKHhmQ29udGV4 dCogeGZjLCBXaW5kb3cgd25kLCBjb25zdCBjaGFyKiBmaWxlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBma3QsIHNpemVfdCBsaW5lKQor IHsKKy0JaW50IGluZGV4OworLQlpbnQgY291bnQ7CisgCVVMT05HX1BUUiogcEtleXMgPSBOVUxM OworLQl4ZkFwcFdpbmRvdyogYXBwV2luZG93OworIAorIAlpZiAoIXhmYy0+cmFpbFdpbmRvd3Mp CisgCQlyZXR1cm4gTlVMTDsKKyAKKy0JRW50ZXJDcml0aWNhbFNlY3Rpb24oJnhmYy0+cmFpbFdp bmRvd3MtPmxvY2spOworLQljb3VudCA9IEhhc2hUYWJsZV9HZXRLZXlzKHhmYy0+cmFpbFdpbmRv d3MsICZwS2V5cyk7CisrCXhmQXBwV2luZG93c0xvY2tGcm9tKHhmYywgZmlsZSwgZmt0LCBsaW5l KTsKKysJc2l6ZV90IGNvdW50ID0gSGFzaFRhYmxlX0dldEtleXMoeGZjLT5yYWlsV2luZG93cywg JnBLZXlzKTsKKyAKKy0JZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY291bnQ7IGluZGV4KyspCisr CWZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBjb3VudDsgaW5kZXgrKykKKyAJeworLQkJ YXBwV2luZG93ID0gSGFzaFRhYmxlX0dldEl0ZW1WYWx1ZSh4ZmMtPnJhaWxXaW5kb3dzLCAodm9p ZCopcEtleXNbaW5kZXhdKTsKKysJCXhmQXBwV2luZG93KiBhcHBXaW5kb3cgPSBnZXRfd2luZG93 VW5sb2NrZWQoeGZjLCAqKFVJTlQ2NCopcEtleXNbaW5kZXhdKTsKKyAKKyAJCWlmICghYXBwV2lu ZG93KQorIAkJeworLQkJCUxlYXZlQ3JpdGljYWxTZWN0aW9uKCZ4ZmMtPnJhaWxXaW5kb3dzLT5s b2NrKTsKKysJCQl4ZkFwcFdpbmRvd3NVbmxvY2tGcm9tKHhmYywgZmlsZSwgZmt0LCBsaW5lKTsK KyAJCQlmcmVlKHBLZXlzKTsKKyAJCQlyZXR1cm4gTlVMTDsKKyAJCX0KKyAKKyAJCWlmIChhcHBX aW5kb3ctPmhhbmRsZSA9PSB3bmQpCisgCQl7CistCQkJTGVhdmVDcml0aWNhbFNlY3Rpb24oJnhm Yy0+cmFpbFdpbmRvd3MtPmxvY2spOworIAkJCWZyZWUocEtleXMpOworIAkJCXJldHVybiBhcHBX aW5kb3c7CisgCQl9CisgCX0KKyAKKy0JTGVhdmVDcml0aWNhbFNlY3Rpb24oJnhmYy0+cmFpbFdp bmRvd3MtPmxvY2spOworKwl4ZkFwcFdpbmRvd3NVbmxvY2tGcm9tKHhmYywgZmlsZSwgZmt0LCBs aW5lKTsKKyAJZnJlZShwS2V5cyk7CisgCXJldHVybiBOVUxMOworIH0KKysKKyt2b2lkIHhmQXBw V2luZG93c0xvY2tGcm9tKHhmQ29udGV4dCogeGZjLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBj aGFyKiBma3QsIHNpemVfdCBsaW5lKQorK3sKKysJV0lOUFJfQVNTRVJUKHhmYyk7CisrCUVudGVy Q3JpdGljYWxTZWN0aW9uKCZ4ZmMtPnJhaWxXaW5kb3dzLT5sb2NrKTsKKyt9CisrCisrdm9pZCB4 ZkFwcFdpbmRvd3NVbmxvY2tGcm9tKHhmQ29udGV4dCogeGZjLCBjb25zdCBjaGFyKiBmaWxlLCBj b25zdCBjaGFyKiBma3QsIHNpemVfdCBsaW5lKQorK3sKKysJV0lOUFJfQVNTRVJUKHhmYyk7Cisr CUxlYXZlQ3JpdGljYWxTZWN0aW9uKCZ4ZmMtPnJhaWxXaW5kb3dzLT5sb2NrKTsKKyt9CitkaWZm IC0tZ2l0IGEvY2xpZW50L1gxMS94Zl93aW5kb3cuaCBiL2NsaWVudC9YMTEveGZfd2luZG93LmgK K2luZGV4IGM3NzAyZWQuLjQ1ZDQwYmIgMTAwNjQ0CistLS0gYS9jbGllbnQvWDExL3hmX3dpbmRv dy5oCisrKysgYi9jbGllbnQvWDExL3hmX3dpbmRvdy5oCitAQCAtMTg3LDggKzE4NywxNSBAQCB2 b2lkIHhmX1NldFdpbmRvd01pbk1heEluZm8oeGZDb250ZXh0KiB4ZmMsIHhmQXBwV2luZG93KiBh cHBXaW5kb3csIGludCBtYXhXaWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg bWF4VHJhY2tXaWR0aCwgaW50IG1heFRyYWNrSGVpZ2h0KTsKKyB2b2lkIHhmX1N0YXJ0TG9jYWxN b3ZlU2l6ZSh4ZkNvbnRleHQqIHhmYywgeGZBcHBXaW5kb3cqIGFwcFdpbmRvdywgaW50IGRpcmVj dGlvbiwgaW50IHgsIGludCB5KTsKKyB2b2lkIHhmX0VuZExvY2FsTW92ZVNpemUoeGZDb250ZXh0 KiB4ZmMsIHhmQXBwV2luZG93KiBhcHBXaW5kb3cpOworLXZvaWQgeGZfcmFpbF9yZXR1cm5fd2lu ZG93KHhmQXBwV2luZG93KiB3aW5kb3cpOworKyNkZWZpbmUgeGZfQXBwV2luZG93RnJvbVgxMVdp bmRvdyh4ZmMsIHduZCkgXAorKwl4Zl9BcHBXaW5kb3dGcm9tWDExV2luZG93RnJvbSgoeGZjKSwg KHduZCksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18pCisreGZBcHBXaW5kb3cqIHhmX0Fw cFdpbmRvd0Zyb21YMTFXaW5kb3dGcm9tKHhmQ29udGV4dCogeGZjLCBXaW5kb3cgd25kLCBjb25z dCBjaGFyKiBmaWxlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyKiBma3QsIHNpemVfdCBsaW5lKTsKKyAKKy14ZkFwcFdpbmRvdyogeGZfQXBw V2luZG93RnJvbVgxMVdpbmRvdyh4ZkNvbnRleHQqIHhmYywgV2luZG93IHduZCk7CisrI2RlZmlu ZSB4Zl9BcHBXaW5kb3dzTG9jayh4ZmMpIHhmQXBwV2luZG93c0xvY2tGcm9tKCh4ZmMpLCBfX0ZJ TEVfXywgX19mdW5jX18sIF9fTElORV9fKQorK3ZvaWQgeGZBcHBXaW5kb3dzTG9ja0Zyb20oeGZD b250ZXh0KiB4ZmMsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZrdCwgc2l6ZV90IGxp bmUpOworKworKyNkZWZpbmUgeGZfQXBwV2luZG93c1VubG9jayh4ZmMpIHhmQXBwV2luZG93c1Vu bG9ja0Zyb20oKHhmYyksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18pCisrdm9pZCB4ZkFw cFdpbmRvd3NVbmxvY2tGcm9tKHhmQ29udGV4dCogeGZjLCBjb25zdCBjaGFyKiBmaWxlLCBjb25z dCBjaGFyKiBma3QsIHNpemVfdCBsaW5lKTsKKyAKKyAjZW5kaWYgLyogRlJFRVJEUF9DTElFTlRf WDExX1dJTkRPV19IICovCistLSAKKzIuNTMuMAorCgpkaWZmIC0tZ2l0IGEvY2xpZW50LXgxMS1s b2NrLWFwcHdpbmRvdy5wYXRjaCBiL2NsaWVudC14MTEtbG9jay1hcHB3aW5kb3cucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA5ODhhMwotLS0gL2Rldi9udWxsCisr KyBiL2NsaWVudC14MTEtbG9jay1hcHB3aW5kb3cucGF0Y2gKQEAgLTAsMCArMSw0MDQgQEAKK0Zy b20gODE1MmMzNDdlOTZjMWUzYWYxNWNiMjU1MWQ0ZWZiNjc0MGZlOWY4NyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTog TW9uLCAyNyBBcHIgMjAyNiAxOTozNzo0MCArMDAwMAorU3ViamVjdDogW1BBVENIXSBbY2xpZW50 LHgxMV0gbG9jayBhcHBXaW5kb3cKKworQmFja3BvcnQgb2YgY29tbWl0IDE5OTRlOTg0NDIxMmE2 ZGZlMGZmMTIzMDlmZWY1MjBlODg4OTg2YjUuCisKK0FkYXB0ZWQgZm9yIDIuMTEuNzogQzg5IGRl Y2xhcmF0aW9uIHN0eWxlLCBgKEF0b20pYCBjYXN0IGZvcgorYHhmYy0+X05FVF9XTV9TVEFURWAg Y29tcGFyaXNvbiwgYHhmX3JhaWxfc2VuZF9jbGllbnRfc3lzdGVtX2NvbW1hbmRgCityZXR1cm4g dmFsdWUgaGFuZGxpbmcgYWRhcHRlZCAobm8gZGlyZWN0IHJldHVybiksIGBIYXNoVGFibGVfR2V0 S2V5c2AKK3ZhcmlhYmxlIHByZS1kZWNsYXJlZCwgYHhmX0FwcFdpbmRvd0Zyb21YMTFXaW5kb3dg IGxvb3AgYWRhcHRlZC4KKworTWFkZS13aXRoOiBDdXJzb3IKKy0tLQorIGNsaWVudC9YMTEveGZf ZXZlbnQuYyAgICB8IDQ2ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLQorIGNsaWVudC9YMTEv eGZfZ3JhcGhpY3MuYyB8IDEwICsrKy0tLQorIGNsaWVudC9YMTEveGZfcmFpbC5jICAgICB8IDY4 ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KKyBjbGllbnQvWDExL3hm X3JhaWwuaCAgICAgfCAgMyArKworIGNsaWVudC9YMTEveGZfd2luZG93LmMgICB8IDEzICsrKysr KystCisgY2xpZW50L1gxMS94Zl93aW5kb3cuaCAgIHwgIDIgKysKKyA2IGZpbGVzIGNoYW5nZWQs IDk0IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2xpZW50 L1gxMS94Zl9ldmVudC5jIGIvY2xpZW50L1gxMS94Zl9ldmVudC5jCitpbmRleCBlYjUwZWYxLi44 YmViY2Q0IDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl9ldmVudC5jCisrKysgYi9jbGllbnQv WDExL3hmX2V2ZW50LmMKK0BAIC0zODgsNyArMzg4LDkgQEAgQk9PTCB4Zl9nZW5lcmljX01vdGlv bk5vdGlmeSh4ZkNvbnRleHQqIHhmYywgaW50IHgsIGludCB5LCBpbnQgc3RhdGUsIFdpbmRvdyB3 aW4KKyAJaWYgKGFwcCkKKyAJeworIAkJLyogbWFrZSBzdXJlIHdpbmRvdyBleGlzdHMgKi8KKy0J CWlmICgheGZfQXBwV2luZG93RnJvbVgxMVdpbmRvdyh4ZmMsIHdpbmRvdykpCisrCQl4ZkFwcFdp bmRvdyogYXBwV2luZG93ID0geGZfQXBwV2luZG93RnJvbVgxMVdpbmRvdyh4ZmMsIHdpbmRvdyk7 CisrCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2luZG93KTsKKysJCWlmICghYXBwV2luZG93 KQorIAkJCXJldHVybiBUUlVFOworIAorIAkJLyogVHJhbnNsYXRlIHRvIGRlc2t0b3AgY29vcmRp bmF0ZXMgKi8KK0BAIC00NjUsNyArNDY3LDkgQEAgQk9PTCB4Zl9nZW5lcmljX0J1dHRvbkV2ZW50 KHhmQ29udGV4dCogeGZjLCBpbnQgeCwgaW50IHksIGludCBidXR0b24sIFdpbmRvdyB3aW4KKyAJ CQlpZiAoYXBwKQorIAkJCXsKKyAJCQkJLyogbWFrZSBzdXJlIHdpbmRvdyBleGlzdHMgKi8KKy0J CQkJaWYgKCF4Zl9BcHBXaW5kb3dGcm9tWDExV2luZG93KHhmYywgd2luZG93KSkKKysJCQkJeGZB cHBXaW5kb3cqIGFwcFdpbmRvdyA9IHhmX0FwcFdpbmRvd0Zyb21YMTFXaW5kb3coeGZjLCB3aW5k b3cpOworKwkJCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2luZG93KTsKKysJCQkJaWYgKCFh cHBXaW5kb3cpCisgCQkJCQlyZXR1cm4gVFJVRTsKKyAKKyAJCQkJLyogVHJhbnNsYXRlIHRvIGRl c2t0b3AgY29vcmRpbmF0ZXMgKi8KK0BAIC01NzQsOSArNTc4LDggQEAgc3RhdGljIEJPT0wgeGZf ZXZlbnRfRm9jdXNJbih4ZkNvbnRleHQqIHhmYywgY29uc3QgWEZvY3VzSW5FdmVudCogZXZlbnQs IEJPT0wgYXAKKyAJCS8qIFVwZGF0ZSB0aGUgc2VydmVyIHdpdGggYW55IHdpbmRvdyBjaGFuZ2Vz IHRoYXQgb2NjdXJyZWQgd2hpbGUgdGhlIHdpbmRvdyB3YXMgbm90IGZvY3VzZWQuCisgCQkgKi8K KyAJCWlmIChhcHBXaW5kb3cpCistCQl7CisgCQkJeGZfcmFpbF9hZGp1c3RfcG9zaXRpb24oeGZj LCBhcHBXaW5kb3cpOworLQkJfQorKwkJeGZfcmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdyk7 CisgCX0KKyAKKyAJeGZfa2V5Ym9hcmRfZm9jdXNfaW4oeGZjKTsKK0BAIC02MjMsMTUgKzYyNiwx MyBAQCBzdGF0aWMgQk9PTCB4Zl9ldmVudF9DbGllbnRNZXNzYWdlKHhmQ29udGV4dCogeGZjLCBj b25zdCBYQ2xpZW50TWVzc2FnZUV2ZW50KiBldgorIAl7CisgCQlpZiAoYXBwKQorIAkJeworLQkJ CXhmQXBwV2luZG93KiBhcHBXaW5kb3c7CistCQkJYXBwV2luZG93ID0geGZfQXBwV2luZG93RnJv bVgxMVdpbmRvdyh4ZmMsIGV2ZW50LT53aW5kb3cpOworKwkJCUJPT0wgcmMgPSBUUlVFOworKwkJ CXhmQXBwV2luZG93KiBhcHBXaW5kb3cgPSB4Zl9BcHBXaW5kb3dGcm9tWDExV2luZG93KHhmYywg ZXZlbnQtPndpbmRvdyk7CisgCisgCQkJaWYgKGFwcFdpbmRvdykKKy0JCQl7CisgCQkJCXhmX3Jh aWxfc2VuZF9jbGllbnRfc3lzdGVtX2NvbW1hbmQoeGZjLCBhcHBXaW5kb3ctPndpbmRvd0lkLCBT Q19DTE9TRSk7CistCQkJfQorLQorLQkJCXJldHVybiBUUlVFOworKwkJCXhmX3JhaWxfcmV0dXJu X3dpbmRvdyhhcHBXaW5kb3cpOworKwkJCXJldHVybiByYzsKKyAJCX0KKyAJCWVsc2UKKyAJCXsK K0BAIC02NjUsNiArNjY2LDcgQEAgc3RhdGljIEJPT0wgeGZfZXZlbnRfRW50ZXJOb3RpZnkoeGZD b250ZXh0KiB4ZmMsIGNvbnN0IFhFbnRlcldpbmRvd0V2ZW50KiBldmVudCwKKyAKKyAJCS8qIGtl ZXAgdHJhY2sgb2Ygd2hpY2ggd2luZG93IGhhcyBmb2N1cyBzbyB0aGF0IHdlIGNhbiBhcHBseSBw b2ludGVyIHVwZGF0ZXMgKi8KKyAJCXhmYy0+YXBwV2luZG93ID0gYXBwV2luZG93OworKwkJeGZf cmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdyk7CisgCX0KKyAKKyAJcmV0dXJuIFRSVUU7CitA QCAtNjg0LDYgKzY4Niw3IEBAIHN0YXRpYyBCT09MIHhmX2V2ZW50X0xlYXZlTm90aWZ5KHhmQ29u dGV4dCogeGZjLCBjb25zdCBYTGVhdmVXaW5kb3dFdmVudCogZXZlbnQsCisgCQkvKiBrZWVwIHRy YWNrIG9mIHdoaWNoIHdpbmRvdyBoYXMgZm9jdXMgc28gdGhhdCB3ZSBjYW4gYXBwbHkgcG9pbnRl ciB1cGRhdGVzICovCisgCQlpZiAoeGZjLT5hcHBXaW5kb3cgPT0gYXBwV2luZG93KQorIAkJCXhm Yy0+YXBwV2luZG93ID0gTlVMTDsKKysJCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cp OworIAl9CisgCXJldHVybiBUUlVFOworIH0KK0BAIC03NzQsNiArNzc3LDcgQEAgc3RhdGljIEJP T0wgeGZfZXZlbnRfQ29uZmlndXJlTm90aWZ5KHhmQ29udGV4dCogeGZjLCBjb25zdCBYQ29uZmln dXJlRXZlbnQqIGV2ZW4KKyAJCQkJCXhmX3JhaWxfYWRqdXN0X3Bvc2l0aW9uKHhmYywgYXBwV2lu ZG93KTsKKyAJCQl9CisgCQl9CisrCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2luZG93KTsK KyAJfQorIAlyZXR1cm4geGZfcG9pbnRlcl91cGRhdGVfc2NhbGUoeGZjKTsKKyB9CitAQCAtNzk4 LDYgKzgwMiw3IEBAIHN0YXRpYyBCT09MIHhmX2V2ZW50X01hcE5vdGlmeSh4ZkNvbnRleHQqIHhm YywgY29uc3QgWE1hcEV2ZW50KiBldmVudCwgQk9PTCBhcHApCisgCQkJLy8geGZfcmFpbF9zZW5k X2NsaWVudF9zeXN0ZW1fY29tbWFuZCh4ZmMsIGFwcFdpbmRvdy0+d2luZG93SWQsIFNDX1JFU1RP UkUpOworIAkJCWFwcFdpbmRvdy0+aXNfbWFwcGVkID0gVFJVRTsKKyAJCX0KKysJCXhmX3JhaWxf cmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworIAl9CisgCisgCXJldHVybiBUUlVFOworQEAgLTgx MywxNSArODE4LDE0IEBAIHN0YXRpYyBCT09MIHhmX2V2ZW50X1VubWFwTm90aWZ5KHhmQ29udGV4 dCogeGZjLCBjb25zdCBYVW5tYXBFdmVudCogZXZlbnQsIEJPT0wKKyAJeGZfa2V5Ym9hcmRfcmVs ZWFzZV9hbGxfa2V5cHJlc3MoeGZjKTsKKyAKKyAJaWYgKCFhcHApCistCQlnZGlfc2VuZF9zdXBw cmVzc19vdXRwdXQoeGZjLT5jb250ZXh0LmdkaSwgVFJVRSk7CistCWVsc2UKKysJCXJldHVybiBn ZGlfc2VuZF9zdXBwcmVzc19vdXRwdXQoeGZjLT5jb250ZXh0LmdkaSwgVFJVRSk7CisrCisgCXsK KyAJCWFwcFdpbmRvdyA9IHhmX0FwcFdpbmRvd0Zyb21YMTFXaW5kb3coeGZjLCBldmVudC0+d2lu ZG93KTsKKyAKKyAJCWlmIChhcHBXaW5kb3cpCistCQl7CisgCQkJYXBwV2luZG93LT5pc19tYXBw ZWQgPSBGQUxTRTsKKy0JCX0KKysJCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOwor IAl9CisgCisgCXJldHVybiBUUlVFOworQEAgLTgyOSw2ICs4MzMsNyBAQCBzdGF0aWMgQk9PTCB4 Zl9ldmVudF9Vbm1hcE5vdGlmeSh4ZkNvbnRleHQqIHhmYywgY29uc3QgWFVubWFwRXZlbnQqIGV2 ZW50LCBCT09MCisgCisgc3RhdGljIEJPT0wgeGZfZXZlbnRfUHJvcGVydHlOb3RpZnkoeGZDb250 ZXh0KiB4ZmMsIGNvbnN0IFhQcm9wZXJ0eUV2ZW50KiBldmVudCwgQk9PTCBhcHApCisgeworKwlC T09MIHJjID0gVFJVRTsKKyAJV0lOUFJfQVNTRVJUKHhmYyk7CisgCVdJTlBSX0FTU0VSVChldmVu dCk7CisgCitAQCAtODU2LDcgKzg2MSw3IEBAIHN0YXRpYyBCT09MIHhmX2V2ZW50X1Byb3BlcnR5 Tm90aWZ5KHhmQ29udGV4dCogeGZjLCBjb25zdCBYUHJvcGVydHlFdmVudCogZXZlbnQsCisgCQkJ YXBwV2luZG93ID0geGZfQXBwV2luZG93RnJvbVgxMVdpbmRvdyh4ZmMsIGV2ZW50LT53aW5kb3cp OworIAorIAkJCWlmICghYXBwV2luZG93KQorLQkJCQlyZXR1cm4gVFJVRTsKKysJCQkJZ290byBm YWlsOworIAkJfQorIAorIAkJaWYgKChBdG9tKWV2ZW50LT5hdG9tID09IHhmYy0+X05FVF9XTV9T VEFURSkKK0BAIC05NDksMTAgKzk1NCwxMyBAQCBzdGF0aWMgQk9PTCB4Zl9ldmVudF9Qcm9wZXJ0 eU5vdGlmeSh4ZkNvbnRleHQqIHhmYywgY29uc3QgWFByb3BlcnR5RXZlbnQqIGV2ZW50LAorIAkJ CX0KKyAJCX0KKyAJCWVsc2UgaWYgKG1pbmltaXplZENoYW5nZWQpCistCQkJZ2RpX3NlbmRfc3Vw cHJlc3Nfb3V0cHV0KHhmYy0+Y29udGV4dC5nZGksIG1pbmltaXplZCk7CisrCQkJcmMgPSBnZGlf c2VuZF9zdXBwcmVzc19vdXRwdXQoeGZjLT5jb250ZXh0LmdkaSwgbWluaW1pemVkKTsKKysKKysJ ZmFpbDoKKysJCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworIAl9CisgCistCXJl dHVybiBUUlVFOworKwlyZXR1cm4gcmM7CisgfQorIAorIHN0YXRpYyBCT09MIHhmX2V2ZW50X3N1 cHByZXNzX2V2ZW50cyh4ZkNvbnRleHQqIHhmYywgeGZBcHBXaW5kb3cqIGFwcFdpbmRvdywgY29u c3QgWEV2ZW50KiBldmVudCkKK0BAIC0xMDYwLDcgKzEwNjgsOSBAQCBCT09MIHhmX2V2ZW50X3By b2Nlc3MoZnJlZXJkcCogaW5zdGFuY2UsIGNvbnN0IFhFdmVudCogZXZlbnQpCisgCQkJLyogVXBk YXRlICJjdXJyZW50IiB3aW5kb3cgZm9yIGN1cnNvciBjaGFuZ2Ugb3JkZXJzICovCisgCQkJeGZj LT5hcHBXaW5kb3cgPSBhcHBXaW5kb3c7CisgCistCQkJaWYgKHhmX2V2ZW50X3N1cHByZXNzX2V2 ZW50cyh4ZmMsIGFwcFdpbmRvdywgZXZlbnQpKQorKwkJCUJPT0wgc3VwcHJlc3MgPSB4Zl9ldmVu dF9zdXBwcmVzc19ldmVudHMoeGZjLCBhcHBXaW5kb3csIGV2ZW50KTsKKysJCQl4Zl9yYWlsX3Jl dHVybl93aW5kb3coYXBwV2luZG93KTsKKysJCQlpZiAoc3VwcHJlc3MpCisgCQkJCXJldHVybiBU UlVFOworIAkJfQorIAl9CitkaWZmIC0tZ2l0IGEvY2xpZW50L1gxMS94Zl9ncmFwaGljcy5jIGIv Y2xpZW50L1gxMS94Zl9ncmFwaGljcy5jCitpbmRleCBkNTk2YjIzLi43MDk3OWJkIDEwMDY0NAor LS0tIGEvY2xpZW50L1gxMS94Zl9ncmFwaGljcy5jCisrKysgYi9jbGllbnQvWDExL3hmX2dyYXBo aWNzLmMKK0BAIC0zNzEsMTIgKzM3MSwxNCBAQCBzdGF0aWMgV2luZG93IHhmX1BvaW50ZXJfZ2V0 X3dpbmRvdyh4ZkNvbnRleHQqIHhmYykKKyAJfQorIAlpZiAoeGZjLT5yZW1vdGVfYXBwKQorIAl7 CisrCQlXaW5kb3cgdyA9IDA7CisrCQlFbnRlckNyaXRpY2FsU2VjdGlvbigmeGZjLT5yYWlsV2lu ZG93cy0+bG9jayk7CisgCQlpZiAoIXhmYy0+YXBwV2luZG93KQorLQkJeworIAkJCVdMb2dfV0FS TihUQUcsICJ4Zl9Qb2ludGVyOiBJbnZhbGlkIGFwcFdpbmRvdyIpOworLQkJCXJldHVybiAwOwor LQkJfQorLQkJcmV0dXJuIHhmYy0+YXBwV2luZG93LT5oYW5kbGU7CisrCQllbHNlCisrCQkJdyA9 IHhmYy0+YXBwV2luZG93LT5oYW5kbGU7CisrCQlMZWF2ZUNyaXRpY2FsU2VjdGlvbigmeGZjLT5y YWlsV2luZG93cy0+bG9jayk7CisrCQlyZXR1cm4gdzsKKyAJfQorIAllbHNlCisgCXsKK2RpZmYg LS1naXQgYS9jbGllbnQvWDExL3hmX3JhaWwuYyBiL2NsaWVudC9YMTEveGZfcmFpbC5jCitpbmRl eCBmZGMyMjQ0Li4xOTM4YmRkIDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl9yYWlsLmMKKysr KyBiL2NsaWVudC9YMTEveGZfcmFpbC5jCitAQCAtMTAzLDYgKzEwMyw3IEBAIHZvaWQgeGZfcmFp bF9zZW5kX2FjdGl2YXRlKHhmQ29udGV4dCogeGZjLCBXaW5kb3cgeHdpbmRvdywgQk9PTCBlbmFi bGVkKQorIAlhY3RpdmF0ZS53aW5kb3dJZCA9IGFwcFdpbmRvdy0+d2luZG93SWQ7CisgCWFjdGl2 YXRlLmVuYWJsZWQgPSBlbmFibGVkOworIAl4ZmMtPnJhaWwtPkNsaWVudEFjdGl2YXRlKHhmYy0+ cmFpbCwgJmFjdGl2YXRlKTsKKysJeGZfcmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdyk7Cisg fQorIAorIHZvaWQgeGZfcmFpbF9zZW5kX2NsaWVudF9zeXN0ZW1fY29tbWFuZCh4ZkNvbnRleHQq IHhmYywgVUlOVDMyIHdpbmRvd0lkLCBVSU5UMTYgY29tbWFuZCkKK0BAIC02NTgsNjEgKzY1OSw2 MyBAQCBzdGF0aWMgdm9pZCB4Zl9yYWlsX3NldF93aW5kb3dfaWNvbih4ZkNvbnRleHQqIHhmYywg eGZBcHBXaW5kb3cqIHJhaWxXaW5kb3csIHhmUgorIHN0YXRpYyBCT09MIHhmX3JhaWxfd2luZG93 X2ljb24ocmRwQ29udGV4dCogY29udGV4dCwgY29uc3QgV0lORE9XX09SREVSX0lORk8qIG9yZGVy SW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdJTkRPV19JQ09O X09SREVSKiB3aW5kb3dJY29uKQorIHsKKysJQk9PTCByYyA9IEZBTFNFOworIAl4ZkNvbnRleHQq IHhmYyA9ICh4ZkNvbnRleHQqKWNvbnRleHQ7CistCXhmQXBwV2luZG93KiByYWlsV2luZG93Owor LQl4ZlJhaWxJY29uKiBpY29uOworLQlCT09MIHJlcGxhY2VJY29uOworLQlyYWlsV2luZG93ID0g eGZfcmFpbF9nZXRfd2luZG93KHhmYywgb3JkZXJJbmZvLT53aW5kb3dJZCk7CisrCUJPT0wgcmVw bGFjZUljb24gPSAwOworKwl4ZkFwcFdpbmRvdyogcmFpbFdpbmRvdyA9IHhmX3JhaWxfZ2V0X3dp bmRvdyh4ZmMsIG9yZGVySW5mby0+d2luZG93SWQpOworIAorIAlpZiAoIXJhaWxXaW5kb3cpCisg CQlyZXR1cm4gVFJVRTsKKyAKKy0JaWNvbiA9IFJhaWxJY29uQ2FjaGVfTG9va3VwKHhmYy0+cmFp bEljb25DYWNoZSwgd2luZG93SWNvbi0+aWNvbkluZm8tPmNhY2hlSWQsCisrCXhmUmFpbEljb24q IGljb24gPSBSYWlsSWNvbkNhY2hlX0xvb2t1cCh4ZmMtPnJhaWxJY29uQ2FjaGUsIHdpbmRvd0lj b24tPmljb25JbmZvLT5jYWNoZUlkLAorIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lu ZG93SWNvbi0+aWNvbkluZm8tPmNhY2hlRW50cnkpOworIAorIAlpZiAoIWljb24pCisgCXsKKyAJ CVdMb2dfV0FSTihUQUcsICJmYWlsZWQgdG8gZ2V0IGljb24gZnJvbSBjYWNoZSAlMDJYOiUwNFgi LCB3aW5kb3dJY29uLT5pY29uSW5mby0+Y2FjaGVJZCwKKyAJCSAgICAgICAgICB3aW5kb3dJY29u LT5pY29uSW5mby0+Y2FjaGVFbnRyeSk7CistCQlyZXR1cm4gRkFMU0U7CisgCX0KKy0KKy0JaWYg KCFjb252ZXJ0X3JhaWxfaWNvbih3aW5kb3dJY29uLT5pY29uSW5mbywgaWNvbikpCisrCWVsc2Ug aWYgKCFjb252ZXJ0X3JhaWxfaWNvbih3aW5kb3dJY29uLT5pY29uSW5mbywgaWNvbikpCisgCXsK KyAJCVdMb2dfV0FSTihUQUcsICJmYWlsZWQgdG8gY29udmVydCBpY29uIGZvciB3aW5kb3cgJTA4 WCIsIG9yZGVySW5mby0+d2luZG93SWQpOworLQkJcmV0dXJuIEZBTFNFOworIAl9CistCistCXJl cGxhY2VJY29uID0gISEob3JkZXJJbmZvLT5maWVsZEZsYWdzICYgV0lORE9XX09SREVSX1NUQVRF X05FVyk7CistCXhmX3JhaWxfc2V0X3dpbmRvd19pY29uKHhmYywgcmFpbFdpbmRvdywgaWNvbiwg cmVwbGFjZUljb24pOworLQlyZXR1cm4gVFJVRTsKKysJZWxzZQorKwl7CisrCQlyZXBsYWNlSWNv biA9ICEhKG9yZGVySW5mby0+ZmllbGRGbGFncyAmIFdJTkRPV19PUkRFUl9TVEFURV9ORVcpOwor KwkJeGZfcmFpbF9zZXRfd2luZG93X2ljb24oeGZjLCByYWlsV2luZG93LCBpY29uLCByZXBsYWNl SWNvbik7CisrCQlyYyA9IFRSVUU7CisrCX0KKysJeGZfcmFpbF9yZXR1cm5fd2luZG93KHJhaWxX aW5kb3cpOworKwlyZXR1cm4gcmM7CisgfQorIAorIHN0YXRpYyBCT09MIHhmX3JhaWxfd2luZG93 X2NhY2hlZF9pY29uKHJkcENvbnRleHQqIGNvbnRleHQsIGNvbnN0IFdJTkRPV19PUkRFUl9JTkZP KiBvcmRlckluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgV0lORE9XX0NBQ0hFRF9JQ09OX09SREVSKiB3aW5kb3dDYWNoZWRJY29uKQorIHsKKysJQk9P TCByYyA9IEZBTFNFOworIAl4ZkNvbnRleHQqIHhmYyA9ICh4ZkNvbnRleHQqKWNvbnRleHQ7Cist CXhmQXBwV2luZG93KiByYWlsV2luZG93OworLQl4ZlJhaWxJY29uKiBpY29uOworLQlCT09MIHJl cGxhY2VJY29uOworLQlyYWlsV2luZG93ID0geGZfcmFpbF9nZXRfd2luZG93KHhmYywgb3JkZXJJ bmZvLT53aW5kb3dJZCk7CisrCUJPT0wgcmVwbGFjZUljb24gPSAwOworKwl4ZkFwcFdpbmRvdyog cmFpbFdpbmRvdyA9IHhmX3JhaWxfZ2V0X3dpbmRvdyh4ZmMsIG9yZGVySW5mby0+d2luZG93SWQp OworIAorIAlpZiAoIXJhaWxXaW5kb3cpCisgCQlyZXR1cm4gVFJVRTsKKyAKKy0JaWNvbiA9IFJh aWxJY29uQ2FjaGVfTG9va3VwKHhmYy0+cmFpbEljb25DYWNoZSwgd2luZG93Q2FjaGVkSWNvbi0+ Y2FjaGVkSWNvbi5jYWNoZUlkLAorKwl4ZlJhaWxJY29uKiBpY29uID0gUmFpbEljb25DYWNoZV9M b29rdXAoeGZjLT5yYWlsSWNvbkNhY2hlLCB3aW5kb3dDYWNoZWRJY29uLT5jYWNoZWRJY29uLmNh Y2hlSWQsCisgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dDYWNoZWRJY29uLT5j YWNoZWRJY29uLmNhY2hlRW50cnkpOworIAorIAlpZiAoIWljb24pCisgCXsKKyAJCVdMb2dfV0FS TihUQUcsICJmYWlsZWQgdG8gZ2V0IGljb24gZnJvbSBjYWNoZSAlMDJYOiUwNFgiLAorIAkJICAg ICAgICAgIHdpbmRvd0NhY2hlZEljb24tPmNhY2hlZEljb24uY2FjaGVJZCwgd2luZG93Q2FjaGVk SWNvbi0+Y2FjaGVkSWNvbi5jYWNoZUVudHJ5KTsKKy0JCXJldHVybiBGQUxTRTsKKyAJfQorLQor LQlyZXBsYWNlSWNvbiA9ICEhKG9yZGVySW5mby0+ZmllbGRGbGFncyAmIFdJTkRPV19PUkRFUl9T VEFURV9ORVcpOworLQl4Zl9yYWlsX3NldF93aW5kb3dfaWNvbih4ZmMsIHJhaWxXaW5kb3csIGlj b24sIHJlcGxhY2VJY29uKTsKKy0JcmV0dXJuIFRSVUU7CisrCWVsc2UKKysJeworKwkJcmVwbGFj ZUljb24gPSAhIShvcmRlckluZm8tPmZpZWxkRmxhZ3MgJiBXSU5ET1dfT1JERVJfU1RBVEVfTkVX KTsKKysJCXhmX3JhaWxfc2V0X3dpbmRvd19pY29uKHhmYywgcmFpbFdpbmRvdywgaWNvbiwgcmVw bGFjZUljb24pOworKwkJcmMgPSBUUlVFOworKwl9CisrCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhy YWlsV2luZG93KTsKKysJcmV0dXJuIHJjOworIH0KKyAKKyBzdGF0aWMgQk9PTCB4Zl9yYWlsX25v dGlmeV9pY29uX2NvbW1vbihyZHBDb250ZXh0KiBjb250ZXh0LCBjb25zdCBXSU5ET1dfT1JERVJf SU5GTyogb3JkZXJJbmZvLAorQEAgLTEwMTIsNiArMTAxNSw3IEBAIHN0YXRpYyBVSU5UIHhmX3Jh aWxfc2VydmVyX2xvY2FsX21vdmVfc2l6ZShSYWlsQ2xpZW50Q29udGV4dCogY29udGV4dCwKKyAJ ZWxzZQorIAkJeGZfRW5kTG9jYWxNb3ZlU2l6ZSh4ZmMsIGFwcFdpbmRvdyk7CisgCisrCXhmX3Jh aWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworIAlyZXR1cm4gQ0hBTk5FTF9SQ19PSzsKKyB9 CisgCitAQCAtMTAzMyw2ICsxMDM3LDcgQEAgc3RhdGljIFVJTlQgeGZfcmFpbF9zZXJ2ZXJfbWlu X21heF9pbmZvKFJhaWxDbGllbnRDb250ZXh0KiBjb250ZXh0LAorIAkJICAgICAgICAgICAgICAg ICAgICAgICBtaW5NYXhJbmZvLT5taW5UcmFja0hlaWdodCwgbWluTWF4SW5mby0+bWF4VHJhY2tX aWR0aCwKKyAJCSAgICAgICAgICAgICAgICAgICAgICAgbWluTWF4SW5mby0+bWF4VHJhY2tIZWln aHQpOworIAl9CisrCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworIAorIAlyZXR1 cm4gQ0hBTk5FTF9SQ19PSzsKKyB9CitAQCAtMTE5MCw3ICsxMTk1LDIwIEBAIHhmQXBwV2luZG93 KiB4Zl9yYWlsX2dldF93aW5kb3coeGZDb250ZXh0KiB4ZmMsIFVJTlQ2NCBpZCkKKyAJCXJldHVy biBOVUxMOworIAorIAlpZiAoIXhmYy0+cmFpbFdpbmRvd3MpCistCQlyZXR1cm4gRkFMU0U7Cisr CQlyZXR1cm4gTlVMTDsKKysKKysJRW50ZXJDcml0aWNhbFNlY3Rpb24oJnhmYy0+cmFpbFdpbmRv d3MtPmxvY2spOworKwl4ZkFwcFdpbmRvdyogd2luZG93ID0gSGFzaFRhYmxlX0dldEl0ZW1WYWx1 ZSh4ZmMtPnJhaWxXaW5kb3dzLCAmaWQpOworKwlpZiAoIXdpbmRvdykKKysJCUxlYXZlQ3JpdGlj YWxTZWN0aW9uKCZ4ZmMtPnJhaWxXaW5kb3dzLT5sb2NrKTsKKysKKysJcmV0dXJuIHdpbmRvdzsK Kyt9CisrCisrdm9pZCB4Zl9yYWlsX3JldHVybl93aW5kb3coeGZBcHBXaW5kb3cqIHdpbmRvdykK Kyt7CisrCWlmICghd2luZG93KQorKwkJcmV0dXJuOworIAorLQlyZXR1cm4gSGFzaFRhYmxlX0dl dEl0ZW1WYWx1ZSh4ZmMtPnJhaWxXaW5kb3dzLCAmaWQpOworKwlMZWF2ZUNyaXRpY2FsU2VjdGlv bigmd2luZG93LT54ZmMtPnJhaWxXaW5kb3dzLT5sb2NrKTsKKyB9CitkaWZmIC0tZ2l0IGEvY2xp ZW50L1gxMS94Zl9yYWlsLmggYi9jbGllbnQvWDExL3hmX3JhaWwuaAoraW5kZXggYzk5ZWQ3MC4u NWZiYzMxNiAxMDA2NDQKKy0tLSBhL2NsaWVudC9YMTEveGZfcmFpbC5oCisrKysgYi9jbGllbnQv WDExL3hmX3JhaWwuaAorQEAgLTM1LDYgKzM1LDkgQEAgdm9pZCB4Zl9yYWlsX2Rpc2FibGVfcmVt b3RlYXBwX21vZGUoeGZDb250ZXh0KiB4ZmMpOworIAorIHhmQXBwV2luZG93KiB4Zl9yYWlsX2Fk ZF93aW5kb3coeGZDb250ZXh0KiB4ZmMsIFVJTlQ2NCBpZCwgVUlOVDMyIHgsIFVJTlQzMiB5LCBV SU5UMzIgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVSU5UMzIgaGVp Z2h0LCBVSU5UMzIgc3VyZmFjZUlkKTsKKysKKyt2b2lkIHhmX3JhaWxfcmV0dXJuX3dpbmRvdyh4 ZkFwcFdpbmRvdyogd2luZG93KTsKKysKKyB4ZkFwcFdpbmRvdyogeGZfcmFpbF9nZXRfd2luZG93 KHhmQ29udGV4dCogeGZjLCBVSU5UNjQgaWQpOworIAorIEJPT0wgeGZfcmFpbF9kZWxfd2luZG93 KHhmQ29udGV4dCogeGZjLCBVSU5UNjQgaWQpOworZGlmZiAtLWdpdCBhL2NsaWVudC9YMTEveGZf d2luZG93LmMgYi9jbGllbnQvWDExL3hmX3dpbmRvdy5jCitpbmRleCA5YjViMWM0Li43ZTkzNmZl IDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl93aW5kb3cuYworKysrIGIvY2xpZW50L1gxMS94 Zl93aW5kb3cuYworQEAgLTExMjIsMjIgKzExMjIsMzMgQEAgeGZBcHBXaW5kb3cqIHhmX0FwcFdp bmRvd0Zyb21YMTFXaW5kb3coeGZDb250ZXh0KiB4ZmMsIFdpbmRvdyB3bmQpCisgCWludCBjb3Vu dDsKKyAJVUxPTkdfUFRSKiBwS2V5cyA9IE5VTEw7CisgCXhmQXBwV2luZG93KiBhcHBXaW5kb3c7 CisrCisrCWlmICgheGZjLT5yYWlsV2luZG93cykKKysJCXJldHVybiBOVUxMOworKworKwlFbnRl ckNyaXRpY2FsU2VjdGlvbigmeGZjLT5yYWlsV2luZG93cy0+bG9jayk7CisgCWNvdW50ID0gSGFz aFRhYmxlX0dldEtleXMoeGZjLT5yYWlsV2luZG93cywgJnBLZXlzKTsKKyAKKyAJZm9yIChpbmRl eCA9IDA7IGluZGV4IDwgY291bnQ7IGluZGV4KyspCisgCXsKKy0JCWFwcFdpbmRvdyA9IHhmX3Jh aWxfZ2V0X3dpbmRvdyh4ZmMsICooVUlOVDY0KilwS2V5c1tpbmRleF0pOworKwkJYXBwV2luZG93 ID0gSGFzaFRhYmxlX0dldEl0ZW1WYWx1ZSh4ZmMtPnJhaWxXaW5kb3dzLCAodm9pZCopcEtleXNb aW5kZXhdKTsKKyAKKyAJCWlmICghYXBwV2luZG93KQorKwkJeworKwkJCUxlYXZlQ3JpdGljYWxT ZWN0aW9uKCZ4ZmMtPnJhaWxXaW5kb3dzLT5sb2NrKTsKKysJCQlmcmVlKHBLZXlzKTsKKyAJCQly ZXR1cm4gTlVMTDsKKysJCX0KKyAKKyAJCWlmIChhcHBXaW5kb3ctPmhhbmRsZSA9PSB3bmQpCisg CQl7CisrCQkJTGVhdmVDcml0aWNhbFNlY3Rpb24oJnhmYy0+cmFpbFdpbmRvd3MtPmxvY2spOwor IAkJCWZyZWUocEtleXMpOworIAkJCXJldHVybiBhcHBXaW5kb3c7CisgCQl9CisgCX0KKyAKKysJ TGVhdmVDcml0aWNhbFNlY3Rpb24oJnhmYy0+cmFpbFdpbmRvd3MtPmxvY2spOworIAlmcmVlKHBL ZXlzKTsKKyAJcmV0dXJuIE5VTEw7CisgfQorZGlmZiAtLWdpdCBhL2NsaWVudC9YMTEveGZfd2lu ZG93LmggYi9jbGllbnQvWDExL3hmX3dpbmRvdy5oCitpbmRleCAwZjg1YWYxLi5jNzcwMmVkIDEw MDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl93aW5kb3cuaAorKysrIGIvY2xpZW50L1gxMS94Zl93 aW5kb3cuaAorQEAgLTE4Nyw2ICsxODcsOCBAQCB2b2lkIHhmX1NldFdpbmRvd01pbk1heEluZm8o eGZDb250ZXh0KiB4ZmMsIHhmQXBwV2luZG93KiBhcHBXaW5kb3csIGludCBtYXhXaWR0aAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4VHJhY2tXaWR0aCwgaW50IG1heFRyYWNr SGVpZ2h0KTsKKyB2b2lkIHhmX1N0YXJ0TG9jYWxNb3ZlU2l6ZSh4ZkNvbnRleHQqIHhmYywgeGZB cHBXaW5kb3cqIGFwcFdpbmRvdywgaW50IGRpcmVjdGlvbiwgaW50IHgsIGludCB5KTsKKyB2b2lk IHhmX0VuZExvY2FsTW92ZVNpemUoeGZDb250ZXh0KiB4ZmMsIHhmQXBwV2luZG93KiBhcHBXaW5k b3cpOworK3ZvaWQgeGZfcmFpbF9yZXR1cm5fd2luZG93KHhmQXBwV2luZG93KiB3aW5kb3cpOwor KworIHhmQXBwV2luZG93KiB4Zl9BcHBXaW5kb3dGcm9tWDExV2luZG93KHhmQ29udGV4dCogeGZj LCBXaW5kb3cgd25kKTsKKyAKKyAjZW5kaWYgLyogRlJFRVJEUF9DTElFTlRfWDExX1dJTkRPV19I ICovCistLSAKKzIuNTMuMAorCgpkaWZmIC0tZ2l0IGEvY2xpZW50LXgxMS1yZWZhY3Rvci1sb2Nr aW5nLnBhdGNoIGIvY2xpZW50LXgxMS1yZWZhY3Rvci1sb2NraW5nLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5NDVhMzkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGll bnQteDExLXJlZmFjdG9yLWxvY2tpbmcucGF0Y2gKQEAgLTAsMCArMSwzNjAgQEAKK0Zyb20gZWVi MzhjMzU2NTQ3M2M0NmRhNWRlYTZiNDNmNTk3MDY0ZTg5YjcxNyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTogTW9uLCAy NyBBcHIgMjAyNiAyMDoxMjoxMSArMDAwMAorU3ViamVjdDogW1BBVENIXSBbY2xpZW50LHgxMV0g cmVmYWN0b3IgbG9ja2luZworCitYMTEgYW5kIHJhaWxXaW5kb3dzIGxvY2sgbXVzdCBiZSBoZWxk IGF0IHRoZSBzYW1lIHRpbWUgdG8gYXZvaWQKK2RlYWRsb2NraW5nLgorCitCYWNrcG9ydCBvZiBj b21taXQgNGZmNTdiNjhjMjk2MGZhNDE0ZDAzYzc4ZmYwZTA2NjBiZTFjYzViZC4KKworQWRhcHRl ZCBmb3IgMi4xMS43OiBDODkgZGVjbGFyYXRpb24gc3R5bGUsIGRpcmVjdCBYMTEgY2FsbHMgaW5z dGVhZAorb2YgYExvZ0R5bkFuZCpgIHdyYXBwZXJzLCBgV0lOUFJfQVRUUl9VTlVTRURgIHJlbW92 ZWQgZnJvbQorYHhmQXBwV2luZG93c0xvY2tGcm9tYC9gVW5sb2NrRnJvbWAuCisKK01hZGUtd2l0 aDogQ3Vyc29yCistLS0KKyBjbGllbnQvWDExL3hmX2V2ZW50LmMgIHwgMjQgKysrKysrKysrKysr LS0tLS0tLS0tLS0tCisgY2xpZW50L1gxMS94Zl9yYWlsLmMgICB8IDM1ICsrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCisgY2xpZW50L1gxMS94Zl9yYWlsLmggICB8IDE0ICsrKysr KysrLS0tLS0tCisgY2xpZW50L1gxMS94Zl93aW5kb3cuYyB8IDE2ICsrKysrKysrKy0tLS0tLS0K KyA0IGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvY2xpZW50L1gxMS94Zl9ldmVudC5jIGIvY2xpZW50L1gxMS94Zl9ldmVudC5j CitpbmRleCA4ODAxZmJkLi5lMTQyMWFkIDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl9ldmVu dC5jCisrKysgYi9jbGllbnQvWDExL3hmX2V2ZW50LmMKK0BAIC0zNTcsNyArMzU3LDcgQEAgc3Rh dGljIEJPT0wgeGZfZXZlbnRfRXhwb3NlKHhmQ29udGV4dCogeGZjLCBjb25zdCBYRXhwb3NlRXZl bnQqIGV2ZW50LCBCT09MIGFwcCkKKyAJCXhmQXBwV2luZG93KiBhcHBXaW5kb3cgPSB4Zl9BcHBX aW5kb3dGcm9tWDExV2luZG93KHhmYywgZXZlbnQtPndpbmRvdyk7CisgCQlpZiAoYXBwV2luZG93 KQorIAkJCXhmX1VwZGF0ZVdpbmRvd0FyZWEoeGZjLCBhcHBXaW5kb3csIHgsIHksIHcsIGgpOwor LQkJeGZfcmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdyk7CisrCQl4Zl9yYWlsX3JldHVybl93 aW5kb3coYXBwV2luZG93LCBGQUxTRSk7CisgCX0KKyAKKyAJcmV0dXJuIFRSVUU7CitAQCAtMzg2 LDcgKzM4Niw3IEBAIEJPT0wgeGZfZ2VuZXJpY19Nb3Rpb25Ob3RpZnkoeGZDb250ZXh0KiB4ZmMs IGludCB4LCBpbnQgeSwgaW50IHN0YXRlLCBXaW5kb3cgd2luCisgCXsKKyAJCS8qIG1ha2Ugc3Vy ZSB3aW5kb3cgZXhpc3RzICovCisgCQl4ZkFwcFdpbmRvdyogYXBwV2luZG93ID0geGZfQXBwV2lu ZG93RnJvbVgxMVdpbmRvdyh4ZmMsIHdpbmRvdyk7CistCQl4Zl9yYWlsX3JldHVybl93aW5kb3co YXBwV2luZG93KTsKKysJCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3csIEZBTFNFKTsK KyAJCWlmICghYXBwV2luZG93KQorIAkJCXJldHVybiBUUlVFOworIAorQEAgLTQ2NSw3ICs0NjUs NyBAQCBCT09MIHhmX2dlbmVyaWNfQnV0dG9uRXZlbnQoeGZDb250ZXh0KiB4ZmMsIGludCB4LCBp bnQgeSwgaW50IGJ1dHRvbiwgV2luZG93IHdpbgorIAkJCXsKKyAJCQkJLyogbWFrZSBzdXJlIHdp bmRvdyBleGlzdHMgKi8KKyAJCQkJeGZBcHBXaW5kb3cqIGFwcFdpbmRvdyA9IHhmX0FwcFdpbmRv d0Zyb21YMTFXaW5kb3coeGZjLCB3aW5kb3cpOworLQkJCQl4Zl9yYWlsX3JldHVybl93aW5kb3co YXBwV2luZG93KTsKKysJCQkJeGZfcmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdywgRkFMU0Up OworIAkJCQlpZiAoIWFwcFdpbmRvdykKKyAJCQkJCXJldHVybiBUUlVFOworIAorQEAgLTU3Niw3 ICs1NzYsNyBAQCBzdGF0aWMgQk9PTCB4Zl9ldmVudF9Gb2N1c0luKHhmQ29udGV4dCogeGZjLCBj b25zdCBYRm9jdXNJbkV2ZW50KiBldmVudCwgQk9PTCBhcAorIAkJICovCisgCQlpZiAoYXBwV2lu ZG93KQorIAkJCXhmX3JhaWxfYWRqdXN0X3Bvc2l0aW9uKHhmYywgYXBwV2luZG93KTsKKy0JCXhm X3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworKwkJeGZfcmFpbF9yZXR1cm5fd2luZG93 KGFwcFdpbmRvdywgRkFMU0UpOworIAl9CisgCisgCXhmX2tleWJvYXJkX2ZvY3VzX2luKHhmYyk7 CitAQCAtNjI4LDcgKzYyOCw3IEBAIHN0YXRpYyBCT09MIHhmX2V2ZW50X0NsaWVudE1lc3NhZ2Uo eGZDb250ZXh0KiB4ZmMsIGNvbnN0IFhDbGllbnRNZXNzYWdlRXZlbnQqIGV2CisgCisgCQkJaWYg KGFwcFdpbmRvdykKKyAJCQkJeGZfcmFpbF9zZW5kX2NsaWVudF9zeXN0ZW1fY29tbWFuZCh4ZmMs IGFwcFdpbmRvdy0+d2luZG93SWQsIFNDX0NMT1NFKTsKKy0JCQl4Zl9yYWlsX3JldHVybl93aW5k b3coYXBwV2luZG93KTsKKysJCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2luZG93LCBGQUxT RSk7CisgCQkJcmV0dXJuIHJjOworIAkJfQorIAkJZWxzZQorQEAgLTY2Myw3ICs2NjMsNyBAQCBz dGF0aWMgQk9PTCB4Zl9ldmVudF9FbnRlck5vdGlmeSh4ZkNvbnRleHQqIHhmYywgY29uc3QgWEVu dGVyV2luZG93RXZlbnQqIGV2ZW50LAorIAorIAkJLyoga2VlcCB0cmFjayBvZiB3aGljaCB3aW5k b3cgaGFzIGZvY3VzIHNvIHRoYXQgd2UgY2FuIGFwcGx5IHBvaW50ZXIgdXBkYXRlcyAqLworIAkJ eGZjLT5hcHBXaW5kb3cgPSBhcHBXaW5kb3c7CistCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBw V2luZG93KTsKKysJCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3csIEZBTFNFKTsKKyAJ fQorIAorIAlyZXR1cm4gVFJVRTsKK0BAIC02ODMsNyArNjgzLDcgQEAgc3RhdGljIEJPT0wgeGZf ZXZlbnRfTGVhdmVOb3RpZnkoeGZDb250ZXh0KiB4ZmMsIGNvbnN0IFhMZWF2ZVdpbmRvd0V2ZW50 KiBldmVudCwKKyAJCS8qIGtlZXAgdHJhY2sgb2Ygd2hpY2ggd2luZG93IGhhcyBmb2N1cyBzbyB0 aGF0IHdlIGNhbiBhcHBseSBwb2ludGVyIHVwZGF0ZXMgKi8KKyAJCWlmICh4ZmMtPmFwcFdpbmRv dyA9PSBhcHBXaW5kb3cpCisgCQkJeGZjLT5hcHBXaW5kb3cgPSBOVUxMOworLQkJeGZfcmFpbF9y ZXR1cm5fd2luZG93KGFwcFdpbmRvdyk7CisrCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2lu ZG93LCBGQUxTRSk7CisgCX0KKyAJcmV0dXJuIFRSVUU7CisgfQorQEAgLTc3NCw3ICs3NzQsNyBA QCBzdGF0aWMgQk9PTCB4Zl9ldmVudF9Db25maWd1cmVOb3RpZnkoeGZDb250ZXh0KiB4ZmMsIGNv bnN0IFhDb25maWd1cmVFdmVudCogZXZlbgorIAkJCQkJeGZfcmFpbF9hZGp1c3RfcG9zaXRpb24o eGZjLCBhcHBXaW5kb3cpOworIAkJCX0KKyAJCX0KKy0JCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhh cHBXaW5kb3cpOworKwkJeGZfcmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdywgRkFMU0UpOwor IAl9CisgCXJldHVybiB4Zl9wb2ludGVyX3VwZGF0ZV9zY2FsZSh4ZmMpOworIH0KK0BAIC03OTks NyArNzk5LDcgQEAgc3RhdGljIEJPT0wgeGZfZXZlbnRfTWFwTm90aWZ5KHhmQ29udGV4dCogeGZj LCBjb25zdCBYTWFwRXZlbnQqIGV2ZW50LCBCT09MIGFwcCkKKyAJCQkvLyB4Zl9yYWlsX3NlbmRf Y2xpZW50X3N5c3RlbV9jb21tYW5kKHhmYywgYXBwV2luZG93LT53aW5kb3dJZCwgU0NfUkVTVE9S RSk7CisgCQkJYXBwV2luZG93LT5pc19tYXBwZWQgPSBUUlVFOworIAkJfQorLQkJeGZfcmFpbF9y ZXR1cm5fd2luZG93KGFwcFdpbmRvdyk7CisrCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2lu ZG93LCBGQUxTRSk7CisgCX0KKyAKKyAJcmV0dXJuIFRSVUU7CitAQCAtODIyLDcgKzgyMiw3IEBA IHN0YXRpYyBCT09MIHhmX2V2ZW50X1VubWFwTm90aWZ5KHhmQ29udGV4dCogeGZjLCBjb25zdCBY VW5tYXBFdmVudCogZXZlbnQsIEJPT0wKKyAKKyAJCWlmIChhcHBXaW5kb3cpCisgCQkJYXBwV2lu ZG93LT5pc19tYXBwZWQgPSBGQUxTRTsKKy0JCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5k b3cpOworKwkJeGZfcmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdywgRkFMU0UpOworIAl9Cisg CisgCXJldHVybiBUUlVFOworQEAgLTk1NCw3ICs5NTQsNyBAQCBzdGF0aWMgQk9PTCB4Zl9ldmVu dF9Qcm9wZXJ0eU5vdGlmeSh4ZkNvbnRleHQqIHhmYywgY29uc3QgWFByb3BlcnR5RXZlbnQqIGV2 ZW50LAorIAkJCXJjID0gZ2RpX3NlbmRfc3VwcHJlc3Nfb3V0cHV0KHhmYy0+Y29udGV4dC5nZGks IG1pbmltaXplZCk7CisgCisgCWZhaWw6CistCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2lu ZG93KTsKKysJCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3csIEZBTFNFKTsKKyAJfQor IAorIAlyZXR1cm4gcmM7CitAQCAtMTA2Niw3ICsxMDY2LDcgQEAgQk9PTCB4Zl9ldmVudF9wcm9j ZXNzKGZyZWVyZHAqIGluc3RhbmNlLCBjb25zdCBYRXZlbnQqIGV2ZW50KQorIAkJCXhmYy0+YXBw V2luZG93ID0gYXBwV2luZG93OworIAorIAkJCUJPT0wgc3VwcHJlc3MgPSB4Zl9ldmVudF9zdXBw cmVzc19ldmVudHMoeGZjLCBhcHBXaW5kb3csIGV2ZW50KTsKKy0JCQl4Zl9yYWlsX3JldHVybl93 aW5kb3coYXBwV2luZG93KTsKKysJCQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2luZG93LCBG QUxTRSk7CisgCQkJaWYgKHN1cHByZXNzKQorIAkJCQlyZXR1cm4gVFJVRTsKKyAJCX0KK2RpZmYg LS1naXQgYS9jbGllbnQvWDExL3hmX3JhaWwuYyBiL2NsaWVudC9YMTEveGZfcmFpbC5jCitpbmRl eCAxZTU3MDQ2Li5kNDJiODY0IDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl9yYWlsLmMKKysr KyBiL2NsaWVudC9YMTEveGZfcmFpbC5jCitAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgeGZfcmFp bF9zZW5kX2FjdGl2YXRlKHhmQ29udGV4dCogeGZjLCBXaW5kb3cgeHdpbmRvdywgQk9PTCBlbmFi bGVkKQorIAkJeGZfU2V0V2luZG93U3R5bGUoeGZjLCBhcHBXaW5kb3csIDAsIDApOworIAorIAlh Y3RpdmF0ZS53aW5kb3dJZCA9IGFwcFdpbmRvdy0+d2luZG93SWQ7CistCXhmX3JhaWxfcmV0dXJu X3dpbmRvdyhhcHBXaW5kb3cpOworKwl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2luZG93LCBG QUxTRSk7CisgCisgCWFjdGl2YXRlLmVuYWJsZWQgPSBlbmFibGVkOworIAl4ZmMtPnJhaWwtPkNs aWVudEFjdGl2YXRlKHhmYy0+cmFpbCwgJmFjdGl2YXRlKTsKK0BAIC0yMTMsNyArMjEzLDcgQEAg c3RhdGljIHZvaWQgeGZfcmFpbF9pbnZhbGlkYXRlX3JlZ2lvbih4ZkNvbnRleHQqIHhmYywgUkVH SU9OMTYqIGludmFsaWRSZWdpb24pCisgCisgCWZvciAoaW5kZXggPSAwOyBpbmRleCA8IGNvdW50 OyBpbmRleCsrKQorIAl7CistCQlhcHBXaW5kb3cgPSB4Zl9yYWlsX2dldF93aW5kb3coeGZjLCAq KFVJTlQ2NCopcEtleXNbaW5kZXhdKTsKKysJCWFwcFdpbmRvdyA9IHhmX3JhaWxfZ2V0X3dpbmRv dyh4ZmMsICooVUlOVDY0KilwS2V5c1tpbmRleF0sIEZBTFNFKTsKKyAKKyAJCWlmIChhcHBXaW5k b3cpCisgCQl7CitAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBCT09MIHhmX3JhaWxfd2luZG93 X2NvbW1vbihyZHBDb250ZXh0KiBjb250ZXh0LCBjb25zdCBXSU5ET1dfT1JERVJfSU5GTyoKKyAJ eGZDb250ZXh0KiB4ZmMgPSAoeGZDb250ZXh0Kiljb250ZXh0OworIAlVSU5UMzIgZmllbGRGbGFn cyA9IG9yZGVySW5mby0+ZmllbGRGbGFnczsKKyAJQk9PTCBwb3NpdGlvbl9vcl9zaXplX3VwZGF0 ZWQgPSBGQUxTRTsKKy0JeGZBcHBXaW5kb3cqIGFwcFdpbmRvdyA9IHhmX3JhaWxfZ2V0X3dpbmRv dyh4ZmMsIG9yZGVySW5mby0+d2luZG93SWQpOworKwl4ZkFwcFdpbmRvdyogYXBwV2luZG93ID0g eGZfcmFpbF9nZXRfd2luZG93KHhmYywgb3JkZXJJbmZvLT53aW5kb3dJZCwgRkFMU0UpOworIAor IAlpZiAoZmllbGRGbGFncyAmIFdJTkRPV19PUkRFUl9TVEFURV9ORVcpCisgCXsKK0BAIC01MjYs NyArNTI2LDcgQEAgc3RhdGljIEJPT0wgeGZfcmFpbF93aW5kb3dfY29tbW9uKHJkcENvbnRleHQq IGNvbnRleHQsIGNvbnN0IFdJTkRPV19PUkRFUl9JTkZPKgorIAl9Ki8KKyAJcmMgPSBUUlVFOwor IGZhaWw6CistCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3cpOworKwl4Zl9yYWlsX3Jl dHVybl93aW5kb3coYXBwV2luZG93LCBGQUxTRSk7CisgCXJldHVybiByYzsKKyB9CisgCitAQCAt NjY3LDcgKzY2Nyw3IEBAIHN0YXRpYyBCT09MIHhmX3JhaWxfd2luZG93X2ljb24ocmRwQ29udGV4 dCogY29udGV4dCwgY29uc3QgV0lORE9XX09SREVSX0lORk8qIG9yCisgCUJPT0wgcmMgPSBGQUxT RTsKKyAJeGZDb250ZXh0KiB4ZmMgPSAoeGZDb250ZXh0Kiljb250ZXh0OworIAlCT09MIHJlcGxh Y2VJY29uID0gMDsKKy0JeGZBcHBXaW5kb3cqIHJhaWxXaW5kb3cgPSB4Zl9yYWlsX2dldF93aW5k b3coeGZjLCBvcmRlckluZm8tPndpbmRvd0lkKTsKKysJeGZBcHBXaW5kb3cqIHJhaWxXaW5kb3cg PSB4Zl9yYWlsX2dldF93aW5kb3coeGZjLCBvcmRlckluZm8tPndpbmRvd0lkLCBGQUxTRSk7Cisg CisgCWlmICghcmFpbFdpbmRvdykKKyAJCXJldHVybiBUUlVFOworQEAgLTY5MCw3ICs2OTAsNyBA QCBzdGF0aWMgQk9PTCB4Zl9yYWlsX3dpbmRvd19pY29uKHJkcENvbnRleHQqIGNvbnRleHQsIGNv bnN0IFdJTkRPV19PUkRFUl9JTkZPKiBvcgorIAkJeGZfcmFpbF9zZXRfd2luZG93X2ljb24oeGZj LCByYWlsV2luZG93LCBpY29uLCByZXBsYWNlSWNvbik7CisgCQlyYyA9IFRSVUU7CisgCX0KKy0J eGZfcmFpbF9yZXR1cm5fd2luZG93KHJhaWxXaW5kb3cpOworKwl4Zl9yYWlsX3JldHVybl93aW5k b3cocmFpbFdpbmRvdywgRkFMU0UpOworIAlyZXR1cm4gcmM7CisgfQorIAorQEAgLTcwMCw3ICs3 MDAsNyBAQCBzdGF0aWMgQk9PTCB4Zl9yYWlsX3dpbmRvd19jYWNoZWRfaWNvbihyZHBDb250ZXh0 KiBjb250ZXh0LCBjb25zdCBXSU5ET1dfT1JERVJfSQorIAlCT09MIHJjID0gRkFMU0U7CisgCXhm Q29udGV4dCogeGZjID0gKHhmQ29udGV4dCopY29udGV4dDsKKyAJQk9PTCByZXBsYWNlSWNvbiA9 IDA7CistCXhmQXBwV2luZG93KiByYWlsV2luZG93ID0geGZfcmFpbF9nZXRfd2luZG93KHhmYywg b3JkZXJJbmZvLT53aW5kb3dJZCk7CisrCXhmQXBwV2luZG93KiByYWlsV2luZG93ID0geGZfcmFp bF9nZXRfd2luZG93KHhmYywgb3JkZXJJbmZvLT53aW5kb3dJZCwgRkFMU0UpOworIAorIAlpZiAo IXJhaWxXaW5kb3cpCisgCQlyZXR1cm4gVFJVRTsKK0BAIC03MTksNyArNzE5LDcgQEAgc3RhdGlj IEJPT0wgeGZfcmFpbF93aW5kb3dfY2FjaGVkX2ljb24ocmRwQ29udGV4dCogY29udGV4dCwgY29u c3QgV0lORE9XX09SREVSX0kKKyAJCXhmX3JhaWxfc2V0X3dpbmRvd19pY29uKHhmYywgcmFpbFdp bmRvdywgaWNvbiwgcmVwbGFjZUljb24pOworIAkJcmMgPSBUUlVFOworIAl9CistCXhmX3JhaWxf cmV0dXJuX3dpbmRvdyhyYWlsV2luZG93KTsKKysJeGZfcmFpbF9yZXR1cm5fd2luZG93KHJhaWxX aW5kb3csIEZBTFNFKTsKKyAJcmV0dXJuIHJjOworIH0KKyAKK0BAIC05MzksNyArOTM5LDcgQEAg c3RhdGljIFVJTlQgeGZfcmFpbF9zZXJ2ZXJfbG9jYWxfbW92ZV9zaXplKFJhaWxDbGllbnRDb250 ZXh0KiBjb250ZXh0LAorIAlpbnQgZGlyZWN0aW9uID0gMDsKKyAJV2luZG93IGNoaWxkX3dpbmRv dzsKKyAJeGZDb250ZXh0KiB4ZmMgPSAoeGZDb250ZXh0Kiljb250ZXh0LT5jdXN0b207CistCXhm QXBwV2luZG93KiBhcHBXaW5kb3cgPSB4Zl9yYWlsX2dldF93aW5kb3coeGZjLCBsb2NhbE1vdmVT aXplLT53aW5kb3dJZCk7CisrCXhmQXBwV2luZG93KiBhcHBXaW5kb3cgPSB4Zl9yYWlsX2dldF93 aW5kb3coeGZjLCBsb2NhbE1vdmVTaXplLT53aW5kb3dJZCwgRkFMU0UpOworIAorIAlpZiAoIWFw cFdpbmRvdykKKyAJCXJldHVybiBFUlJPUl9JTlRFUk5BTF9FUlJPUjsKK0BAIC0xMDIwLDcgKzEw MjAsNyBAQCBzdGF0aWMgVUlOVCB4Zl9yYWlsX3NlcnZlcl9sb2NhbF9tb3ZlX3NpemUoUmFpbENs aWVudENvbnRleHQqIGNvbnRleHQsCisgCWVsc2UKKyAJCXhmX0VuZExvY2FsTW92ZVNpemUoeGZj LCBhcHBXaW5kb3cpOworIAorLQl4Zl9yYWlsX3JldHVybl93aW5kb3coYXBwV2luZG93KTsKKysJ eGZfcmFpbF9yZXR1cm5fd2luZG93KGFwcFdpbmRvdywgRkFMU0UpOworIAlyZXR1cm4gQ0hBTk5F TF9SQ19PSzsKKyB9CisgCitAQCAtMTAzMyw3ICsxMDMzLDcgQEAgc3RhdGljIFVJTlQgeGZfcmFp bF9zZXJ2ZXJfbWluX21heF9pbmZvKFJhaWxDbGllbnRDb250ZXh0KiBjb250ZXh0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSQUlMX01JTk1BWElORk9f T1JERVIqIG1pbk1heEluZm8pCisgeworIAl4ZkNvbnRleHQqIHhmYyA9ICh4ZkNvbnRleHQqKWNv bnRleHQtPmN1c3RvbTsKKy0JeGZBcHBXaW5kb3cqIGFwcFdpbmRvdyA9IHhmX3JhaWxfZ2V0X3dp bmRvdyh4ZmMsIG1pbk1heEluZm8tPndpbmRvd0lkKTsKKysJeGZBcHBXaW5kb3cqIGFwcFdpbmRv dyA9IHhmX3JhaWxfZ2V0X3dpbmRvdyh4ZmMsIG1pbk1heEluZm8tPndpbmRvd0lkLCBGQUxTRSk7 CisgCisgCWlmIChhcHBXaW5kb3cpCisgCXsKK0BAIC0xMDQyLDcgKzEwNDIsNyBAQCBzdGF0aWMg VUlOVCB4Zl9yYWlsX3NlcnZlcl9taW5fbWF4X2luZm8oUmFpbENsaWVudENvbnRleHQqIGNvbnRl eHQsCisgCQkgICAgICAgICAgICAgICAgICAgICAgIG1pbk1heEluZm8tPm1pblRyYWNrSGVpZ2h0 LCBtaW5NYXhJbmZvLT5tYXhUcmFja1dpZHRoLAorIAkJICAgICAgICAgICAgICAgICAgICAgICBt aW5NYXhJbmZvLT5tYXhUcmFja0hlaWdodCk7CisgCX0KKy0JeGZfcmFpbF9yZXR1cm5fd2luZG93 KGFwcFdpbmRvdyk7CisrCXhmX3JhaWxfcmV0dXJuX3dpbmRvdyhhcHBXaW5kb3csIEZBTFNFKTsK KyAKKyAJcmV0dXJuIENIQU5ORUxfUkNfT0s7CisgfQorQEAgLTExOTksMTMgKzExOTksMjAgQEAg Qk9PTCB4Zl9yYWlsX2RlbF93aW5kb3coeGZDb250ZXh0KiB4ZmMsIFVJTlQ2NCBpZCkKKyAJaWYg KCF4ZmMtPnJhaWxXaW5kb3dzKQorIAkJcmV0dXJuIEZBTFNFOworIAorLQlyZXR1cm4gSGFzaFRh YmxlX1JlbW92ZSh4ZmMtPnJhaWxXaW5kb3dzLCAmaWQpOworKwl4Zl9sb2NrX3gxMSh4ZmMpOwor Kwljb25zdCBCT09MIHJlcyA9IEhhc2hUYWJsZV9SZW1vdmUoeGZjLT5yYWlsV2luZG93cywgJmlk KTsKKysJeGZfdW5sb2NrX3gxMSh4ZmMpOworKwlyZXR1cm4gcmVzOworIH0KKyAKKy12b2lkIHhm X3JhaWxfcmV0dXJuX3dpbmRvd0Zyb20oeGZBcHBXaW5kb3cqIHdpbmRvdywgY29uc3QgY2hhciog ZmlsZSwgY29uc3QgY2hhciogZmt0LCBzaXplX3QgbGluZSkKKyt2b2lkIHhmX3JhaWxfcmV0dXJu X3dpbmRvd0Zyb20oeGZBcHBXaW5kb3cqIHdpbmRvdywgQk9PTCBhbHJlYWR5TG9ja2VkLCBjb25z dCBjaGFyKiBmaWxlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy KiBma3QsIHNpemVfdCBsaW5lKQorIHsKKyAJaWYgKCF3aW5kb3cpCisgCQlyZXR1cm47CisgCisr CWlmIChhbHJlYWR5TG9ja2VkKQorKwkJcmV0dXJuOworKworIAl4ZkFwcFdpbmRvd3NVbmxvY2tG cm9tKHdpbmRvdy0+eGZjLCBmaWxlLCBma3QsIGxpbmUpOworIH0KK2RpZmYgLS1naXQgYS9jbGll bnQvWDExL3hmX3JhaWwuaCBiL2NsaWVudC9YMTEveGZfcmFpbC5oCitpbmRleCA4M2Q1ZmZmLi5h OTFjMWJmIDEwMDY0NAorLS0tIGEvY2xpZW50L1gxMS94Zl9yYWlsLmgKKysrKyBiL2NsaWVudC9Y MTEveGZfcmFpbC5oCitAQCAtMzYsMTQgKzM2LDE2IEBAIHZvaWQgeGZfcmFpbF9kaXNhYmxlX3Jl bW90ZWFwcF9tb2RlKHhmQ29udGV4dCogeGZjKTsKKyB4ZkFwcFdpbmRvdyogeGZfcmFpbF9hZGRf d2luZG93KHhmQ29udGV4dCogeGZjLCBVSU5UNjQgaWQsIFVJTlQzMiB4LCBVSU5UMzIgeSwgVUlO VDMyIHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUlOVDMyIGhlaWdo dCwgVUlOVDMyIHN1cmZhY2VJZCk7CisgCistI2RlZmluZSB4Zl9yYWlsX3JldHVybl93aW5kb3co d2luZG93KSBcCistCXhmX3JhaWxfcmV0dXJuX3dpbmRvd0Zyb20oKHdpbmRvdyksIF9fRklMRV9f LCBfX2Z1bmNfXywgX19MSU5FX18pCistdm9pZCB4Zl9yYWlsX3JldHVybl93aW5kb3dGcm9tKHhm QXBwV2luZG93KiB3aW5kb3csIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZrdCwgc2l6 ZV90IGxpbmUpOworKyNkZWZpbmUgeGZfcmFpbF9yZXR1cm5fd2luZG93KHdpbmRvdywgYWxyZWFk eUxvY2tlZCkgXAorKwl4Zl9yYWlsX3JldHVybl93aW5kb3dGcm9tKCh3aW5kb3cpLCAoYWxyZWFk eUxvY2tlZCksIF9fRklMRV9fLCBfX2Z1bmNfXywgX19MSU5FX18pCisrdm9pZCB4Zl9yYWlsX3Jl dHVybl93aW5kb3dGcm9tKHhmQXBwV2luZG93KiB3aW5kb3csIEJPT0wgYWxyZWFkeUxvY2tlZCwg Y29uc3QgY2hhciogZmlsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciogZmt0LCBzaXplX3QgbGluZSk7CisgCistI2RlZmluZSB4Zl9yYWlsX2dldF93aW5kb3co eGZjLCBpZCkgXAorLQl4Zl9yYWlsX2dldF93aW5kb3dGcm9tKCh4ZmMpLCAoaWQpLCBfX0ZJTEVf XywgX19mdW5jX18sIF9fTElORV9fKQorKyNkZWZpbmUgeGZfcmFpbF9nZXRfd2luZG93KHhmYywg aWQsIGFscmVhZHlMb2NrZWQpIFwKKysJeGZfcmFpbF9nZXRfd2luZG93RnJvbSgoeGZjKSwgKGlk KSwgKGFscmVhZHlMb2NrZWQpLCBfX0ZJTEVfXywgX19mdW5jX18sIF9fTElORV9fKQorIAorLXhm QXBwV2luZG93KiB4Zl9yYWlsX2dldF93aW5kb3dGcm9tKHhmQ29udGV4dCogeGZjLCBVSU5UNjQg aWQsIGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZrdCwKKyt4ZkFwcFdpbmRvdyogeGZf cmFpbF9nZXRfd2luZG93RnJvbSh4ZkNvbnRleHQqIHhmYywgVUlOVDY0IGlkLCBCT09MIGFscmVh ZHlMb2NrZWQsIGNvbnN0IGNoYXIqIGZpbGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciogZmt0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVfdCBsaW5lKTsKKyAKKyBCT09MIHhmX3JhaWxfZGVsX3dpbmRvdyh4ZkNvbnRl eHQqIHhmYywgVUlOVDY0IGlkKTsKK2RpZmYgLS1naXQgYS9jbGllbnQvWDExL3hmX3dpbmRvdy5j IGIvY2xpZW50L1gxMS94Zl93aW5kb3cuYworaW5kZXggMDliNGE4MS4uOGQwOWNlZCAxMDA2NDQK Ky0tLSBhL2NsaWVudC9YMTEveGZfd2luZG93LmMKKysrKyBiL2NsaWVudC9YMTEveGZfd2luZG93 LmMKK0BAIC0xMDcwLDggKzEwNzAsNiBAQCB2b2lkIHhmX1VwZGF0ZVdpbmRvd0FyZWEoeGZDb250 ZXh0KiB4ZmMsIHhmQXBwV2luZG93KiBhcHBXaW5kb3csIGludCB4LCBpbnQgeSwgaQorIAlpZiAo YXkgKyBoZWlnaHQgPiBhcHBXaW5kb3ctPndpbmRvd09mZnNldFkgKyBhcHBXaW5kb3ctPmhlaWdo dCkKKyAJCWhlaWdodCA9IChhcHBXaW5kb3ctPndpbmRvd09mZnNldFkgKyBhcHBXaW5kb3ctPmhl aWdodCAtIDEpIC0gYXk7CisgCistCXhmX2xvY2tfeDExKHhmYyk7CistCisgCWlmICh4ZmMtPmNv bnRleHQuc2V0dGluZ3MtPlNvZnR3YXJlR2RpKQorIAl7CisgCQlYUHV0SW1hZ2UoeGZjLT5kaXNw bGF5LCB4ZmMtPnByaW1hcnksIGFwcFdpbmRvdy0+Z2MsIHhmYy0+aW1hZ2UsIGF4LCBheSwgYXgs IGF5LCB3aWR0aCwKK0BAIC0xMDgxLDcgKzEwNzksNiBAQCB2b2lkIHhmX1VwZGF0ZVdpbmRvd0Fy ZWEoeGZDb250ZXh0KiB4ZmMsIHhmQXBwV2luZG93KiBhcHBXaW5kb3csIGludCB4LCBpbnQgeSwg aQorIAlYQ29weUFyZWEoeGZjLT5kaXNwbGF5LCB4ZmMtPnByaW1hcnksIGFwcFdpbmRvdy0+aGFu ZGxlLCBhcHBXaW5kb3ctPmdjLCBheCwgYXksIHdpZHRoLCBoZWlnaHQsCisgCSAgICAgICAgICB4 LCB5KTsKKyAJWEZsdXNoKHhmYy0+ZGlzcGxheSk7CistCXhmX3VubG9ja194MTEoeGZjKTsKKyB9 CisgCisgdm9pZCB4Zl9EZXN0cm95V2luZG93KHhmQ29udGV4dCogeGZjLCB4ZkFwcFdpbmRvdyog YXBwV2luZG93KQorQEAgLTExMjIsOCArMTExOSw4IEBAIHN0YXRpYyB4ZkFwcFdpbmRvdyogZ2V0 X3dpbmRvd1VubG9ja2VkKHhmQ29udGV4dCogeGZjLCBVSU5UNjQgaWQpCisgCXJldHVybiBIYXNo VGFibGVfR2V0SXRlbVZhbHVlKHhmYy0+cmFpbFdpbmRvd3MsICZpZCk7CisgfQorIAorLXhmQXBw V2luZG93KiB4Zl9yYWlsX2dldF93aW5kb3dGcm9tKHhmQ29udGV4dCogeGZjLCBVSU5UNjQgaWQs IGNvbnN0IGNoYXIqIGZpbGUsIGNvbnN0IGNoYXIqIGZrdCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplX3QgbGluZSkKKyt4ZkFwcFdpbmRvdyogeGZfcmFpbF9nZXRf d2luZG93RnJvbSh4ZkNvbnRleHQqIHhmYywgVUlOVDY0IGlkLCBCT09MIGFscmVhZHlMb2NrZWQs IGNvbnN0IGNoYXIqIGZpbGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciogZmt0LCBzaXplX3QgbGluZSkKKyB7CisgCWlmICgheGZjKQorIAkJcmV0dXJu IE5VTEw7CitAQCAtMTEzMSw5ICsxMTI4LDEyIEBAIHhmQXBwV2luZG93KiB4Zl9yYWlsX2dldF93 aW5kb3dGcm9tKHhmQ29udGV4dCogeGZjLCBVSU5UNjQgaWQsIGNvbnN0IGNoYXIqIGZpbGUsCisg CWlmICgheGZjLT5yYWlsV2luZG93cykKKyAJCXJldHVybiBOVUxMOworIAorLQl4ZkFwcFdpbmRv d3NMb2NrRnJvbSh4ZmMsIGZpbGUsIGZrdCwgbGluZSk7CisrCWlmICghYWxyZWFkeUxvY2tlZCkK KysJCXhmQXBwV2luZG93c0xvY2tGcm9tKHhmYywgZmlsZSwgZmt0LCBsaW5lKTsKKysKKyAJeGZB cHBXaW5kb3cqIHdpbmRvdyA9IGdldF93aW5kb3dVbmxvY2tlZCh4ZmMsIGlkKTsKKy0JaWYgKCF3 aW5kb3cpCisrCisrCWlmICghd2luZG93ICYmICFhbHJlYWR5TG9ja2VkKQorIAkJeGZBcHBXaW5k b3dzVW5sb2NrRnJvbSh4ZmMsIGZpbGUsIGZrdCwgbGluZSk7CisgCisgCXJldHVybiB3aW5kb3c7 CitAQCAtMTE3Niw2ICsxMTc2LDcgQEAgeGZBcHBXaW5kb3cqIHhmX0FwcFdpbmRvd0Zyb21YMTFX aW5kb3dGcm9tKHhmQ29udGV4dCogeGZjLCBXaW5kb3cgd25kLCBjb25zdCBjaGEKKyB2b2lkIHhm QXBwV2luZG93c0xvY2tGcm9tKHhmQ29udGV4dCogeGZjLCBjb25zdCBjaGFyKiBmaWxlLCBjb25z dCBjaGFyKiBma3QsIHNpemVfdCBsaW5lKQorIHsKKyAJV0lOUFJfQVNTRVJUKHhmYyk7CisrCXhm X2xvY2tfeDExKHhmYyk7CisgCUVudGVyQ3JpdGljYWxTZWN0aW9uKCZ4ZmMtPnJhaWxXaW5kb3dz LT5sb2NrKTsKKyB9CisgCitAQCAtMTE4Myw0ICsxMTg0LDUgQEAgdm9pZCB4ZkFwcFdpbmRvd3NV bmxvY2tGcm9tKHhmQ29udGV4dCogeGZjLCBjb25zdCBjaGFyKiBmaWxlLCBjb25zdCBjaGFyKiBm a3QsIHMKKyB7CisgCVdJTlBSX0FTU0VSVCh4ZmMpOworIAlMZWF2ZUNyaXRpY2FsU2VjdGlvbigm eGZjLT5yYWlsV2luZG93cy0+bG9jayk7CisrCXhmX3VubG9ja194MTEoeGZjKTsKKyB9CistLSAK KzIuNTMuMAorCgpkaWZmIC0tZ2l0IGEvY29kZWMtY2xlYXItY2hlY2stY2xlYXJfZGVjb21yZXNz LWdseXBoRGF0YS5wYXRjaCBiL2NvZGVjLWNsZWFyLWNoZWNrLWNsZWFyX2RlY29tcmVzcy1nbHlw aERhdGEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgyODkxOQot LS0gL2Rldi9udWxsCisrKyBiL2NvZGVjLWNsZWFyLWNoZWNrLWNsZWFyX2RlY29tcmVzcy1nbHlw aERhdGEucGF0Y2gKQEAgLTAsMCArMSw3NiBAQAorRnJvbSAzYTRlZTNmMDAyMDk3NzMyMDA2NmI5 OWRhMTY0NTZiNjM2NGMxMzY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT25kcmVq IEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDIyIEphbiAyMDI2IDEyOjUwOjIy ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjb2RlYyxjbGVhcl0gY2hlY2sgY2xlYXJfZGVjb21y ZXNzIGdseXBoRGF0YQorCitCYWNrcG9ydCBvZiBjb21taXQgMjQzZWNmODA0YmIxMjJlOGU2NDNh NWMxNDJhZDVhNDlkN2FhMTllZS4KKworQ28tQXV0aG9yZWQtQnk6IENsYXVkZSA8bm9yZXBseUBh bnRocm9waWMuY29tPgorLS0tCisgbGliZnJlZXJkcC9jb2RlYy9jbGVhci5jIHwgNTAgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCA0OSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9saWJmcmVlcmRwL2Nv ZGVjL2NsZWFyLmMgYi9saWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMKK2luZGV4IDRmMGFlYWQxMC4u ZmNhZmI5MjM1IDEwMDY0NAorLS0tIGEvbGliZnJlZXJkcC9jb2RlYy9jbGVhci5jCisrKysgYi9s aWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMKK0BAIC0xMTQ1LDcgKzExNDUsNTUgQEAgSU5UMzIgY2xl YXJfZGVjb21wcmVzcyhDTEVBUl9DT05URVhUKiBjbGVhciwgY29uc3QgQllURSogcFNyY0RhdGEs IFVJTlQzMiBTcmNTaXoKKyAKKyAJaWYgKGdseXBoRGF0YSkKKyAJeworLQkJaWYgKCFmcmVlcmRw X2ltYWdlX2NvcHkoZ2x5cGhEYXRhLCBjbGVhci0+Zm9ybWF0LCAwLCAwLCAwLCBuV2lkdGgsIG5I ZWlnaHQsIHBEc3REYXRhLAorKwkJdWludDMyX3QgdyA9IE1JTihuV2lkdGgsIG5Ec3RXaWR0aCk7 CisrCQlpZiAoblhEc3QgPiBuRHN0V2lkdGgpCisrCQl7CisrCQkJV0xvZ19XQVJOKFRBRywgImds eXBoRGF0YSBjb3B5IGFyZWEgeCBleGNlZWRzIGRlc3RpbmF0aW9uOiB4PSUiIFBSSXUzMiAiID4g JSIgUFJJdTMyLAorKwkJCSAgICAgICAgICBuWERzdCwgbkRzdFdpZHRoKTsKKysJCQl3ID0gMDsK KysJCX0KKysJCWVsc2UgaWYgKG5YRHN0ICsgdyA+IG5Ec3RXaWR0aCkKKysJCXsKKysJCQlXTG9n X1dBUk4oVEFHLAorKwkJCSAgICAgICAgICAiZ2x5cGhEYXRhIGNvcHkgYXJlYSB4ICsgd2lkdGgg ZXhjZWVkcyBkZXN0aW5hdGlvbjogeD0lIiBQUkl1MzIgIiArICUiIFBSSXUzMgorKwkJCSAgICAg ICAgICAiID4gJSIgUFJJdTMyLAorKwkJCSAgICAgICAgICBuWERzdCwgdywgbkRzdFdpZHRoKTsK KysJCQl3ID0gbkRzdFdpZHRoIC0gblhEc3Q7CisrCQl9CisrCisrCQlpZiAodyAhPSBuV2lkdGgp CisrCQl7CisrCQkJV0xvZ19XQVJOKFRBRywKKysJCQkgICAgICAgICAgImdseXBoRGF0YSBjb3B5 IGFyZWEgd2lkdGggdHJ1bmNhdGVkOiByZXF1ZXN0ZWQ9JSIgUFJJdTMyCisrCQkJICAgICAgICAg ICIsIHRydW5jYXRlZCB0byAlIiBQUkl1MzIsCisrCQkJICAgICAgICAgIG5XaWR0aCwgdyk7Cisr CQl9CisrCisrCQl1aW50MzJfdCBoID0gTUlOKG5IZWlnaHQsIG5Ec3RIZWlnaHQpOworKwkJaWYg KG5ZRHN0ID4gbkRzdEhlaWdodCkKKysJCXsKKysJCQlXTG9nX1dBUk4oVEFHLCAiZ2x5cGhEYXRh IGNvcHkgYXJlYSB5IGV4Y2VlZHMgZGVzdGluYXRpb246IHk9JSIgUFJJdTMyICIgPiAlIiBQUkl1 MzIsCisrCQkJICAgICAgICAgIG5ZRHN0LCBuRHN0SGVpZ2h0KTsKKysJCQloID0gMDsKKysJCX0K KysJCWVsc2UgaWYgKG5ZRHN0ICsgaCA+IG5Ec3RIZWlnaHQpCisrCQl7CisrCQkJV0xvZ19XQVJO KFRBRywKKysJCQkgICAgICAgICAgImdseXBoRGF0YSBjb3B5IGFyZWEgeSArIGhlaWdodCBleGNl ZWRzIGRlc3RpbmF0aW9uOiB4PSUiIFBSSXUzMiAiICsgJSIgUFJJdTMyCisrCQkJICAgICAgICAg ICIgPiAlIiBQUkl1MzIsCisrCQkJICAgICAgICAgIG5ZRHN0LCBoLCBuRHN0SGVpZ2h0KTsKKysJ CQloID0gbkRzdEhlaWdodCAtIG5ZRHN0OworKwkJfQorKworKwkJaWYgKGggIT0gbkhlaWdodCkK KysJCXsKKysJCQlXTG9nX1dBUk4oVEFHLAorKwkJCSAgICAgICAgICAiZ2x5cGhEYXRhIGNvcHkg YXJlYSBoZWlnaHQgdHJ1bmNhdGVkOiByZXF1ZXN0ZWQ9JSIgUFJJdTMyCisrCQkJICAgICAgICAg ICIsIHRydW5jYXRlZCB0byAlIiBQUkl1MzIsCisrCQkJICAgICAgICAgIG5IZWlnaHQsIGgpOwor KwkJfQorKworKwkJaWYgKCFmcmVlcmRwX2ltYWdlX2NvcHkoZ2x5cGhEYXRhLCBjbGVhci0+Zm9y bWF0LCAwLCAwLCAwLCB3LCBoLCBwRHN0RGF0YSwKKyAJCSAgICAgICAgICAgICAgICAgICAgICAg IERzdEZvcm1hdCwgbkRzdFN0ZXAsIG5YRHN0LCBuWURzdCwgcGFsZXR0ZSwgRlJFRVJEUF9GTElQ X05PTkUpKQorIAkJCWdvdG8gZmFpbDsKKyAJfQorLS0gCisyLjUyLjAKKwoKZGlmZiAtLWdpdCBh L2NvZGVjLWNsZWFyLWZpeC1jbGVhcl9yZXNpemVfYnVmZmVyLWNoZWNrcy5wYXRjaCBiL2NvZGVj LWNsZWFyLWZpeC1jbGVhcl9yZXNpemVfYnVmZmVyLWNoZWNrcy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzlmODAxCi0tLSAvZGV2L251bGwKKysrIGIvY29kZWMt Y2xlYXItZml4LWNsZWFyX3Jlc2l6ZV9idWZmZXItY2hlY2tzLnBhdGNoCkBAIC0wLDAgKzEsNjEg QEAKK0Zyb20gMDBhNTkzZjllZGE2NzIxMjUzOWU0ZGNhYzY4ZWE1YTY5OWViM2U5MyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgor RGF0ZTogVGh1LCAyMiBKYW4gMjAyNiAxMjo0ODozNyArMDEwMAorU3ViamVjdDogW1BBVENIXSBb Y29kZWMsY2xlYXJdIGZpeCBjbGVhcl9yZXNpemVfYnVmZmVyIGNoZWNrcworCitCYWNrcG9ydCBv ZiBjb21taXQgYzQzOTE4MjdkN2ZhY2ZjODc0Y2E3ZjYxYTkyYWZiODIyMzJhNTc0OC4KKworQ28t QXV0aG9yZWQtQnk6IENsYXVkZSA8bm9yZXBseUBhbnRocm9waWMuY29tPgorLS0tCisgbGliZnJl ZXJkcC9jb2RlYy9jbGVhci5jIHwgMTcgKysrKysrKysrLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdl ZCwgOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliZnJl ZXJkcC9jb2RlYy9jbGVhci5jIGIvbGliZnJlZXJkcC9jb2RlYy9jbGVhci5jCitpbmRleCBlMzhm YTBkY2YuLjI5OWFjZWYyZSAxMDA2NDQKKy0tLSBhL2xpYmZyZWVyZHAvY29kZWMvY2xlYXIuYwor KysrIGIvbGliZnJlZXJkcC9jb2RlYy9jbGVhci5jCitAQCAtNjIsNyArNjIsNyBAQCBzdHJ1Y3Qg X0NMRUFSX0NPTlRFWFQKKyAJTlNDX0NPTlRFWFQqIG5zYzsKKyAJVUlOVDMyIHNlcU51bWJlcjsK KyAJQllURSogVGVtcEJ1ZmZlcjsKKy0JVUlOVDMyIFRlbXBTaXplOworKwlzaXplX3QgVGVtcFNp emU7CisgCVVJTlQzMiBuVGVtcFN0ZXA7CisgCVVJTlQzMiBUZW1wRm9ybWF0OworIAlVSU5UMzIg Zm9ybWF0OworQEAgLTMxMywyNCArMzEzLDI1IEBAIHN0YXRpYyBCT09MIGNsZWFyX2RlY29tcHJl c3Nfc3ViY29kZV9ybGV4KHdTdHJlYW0qIHMsIFVJTlQzMiBiaXRtYXBEYXRhQnl0ZUNvdW50Cisg Cisgc3RhdGljIEJPT0wgY2xlYXJfcmVzaXplX2J1ZmZlcihDTEVBUl9DT05URVhUKiBjbGVhciwg VUlOVDMyIHdpZHRoLCBVSU5UMzIgaGVpZ2h0KQorIHsKKy0JVUlOVDMyIHNpemU7CistCisgCWlm ICghY2xlYXIpCisgCQlyZXR1cm4gRkFMU0U7CisgCistCXNpemUgPSAoKHdpZHRoICsgMTYpICog KGhlaWdodCArIDE2KSAqIEdldEJ5dGVzUGVyUGl4ZWwoY2xlYXItPmZvcm1hdCkpOworKwljb25z dCBVSU5UNjQgc2l6ZSA9IDF1bGwgKiAod2lkdGggKyAxNnVsbCkgKiAoaGVpZ2h0ICsgMTZ1bGwp OworKwljb25zdCBzaXplX3QgYnBwID0gR2V0Qnl0ZXNQZXJQaXhlbChjbGVhci0+Zm9ybWF0KTsK KysJaWYgKHNpemUgPiBVSU5UMzJfTUFYIC8gYnBwKQorKwkJcmV0dXJuIEZBTFNFOworIAorLQlp ZiAoc2l6ZSA+IGNsZWFyLT5UZW1wU2l6ZSkKKysJaWYgKHNpemUgPiBjbGVhci0+VGVtcFNpemUg LyBicHApCisgCXsKKy0JCUJZVEUqIHRtcCA9IChCWVRFKilyZWFsbG9jKGNsZWFyLT5UZW1wQnVm ZmVyLCBzaXplKTsKKysJCUJZVEUqIHRtcCA9IChCWVRFKilyZWFsbG9jKGNsZWFyLT5UZW1wQnVm ZmVyLCBzaXplICogYnBwKTsKKyAKKyAJCWlmICghdG1wKQorIAkJeworLQkJCVdMb2dfRVJSKFRB RywgImNsZWFyLT5UZW1wQnVmZmVyIHJlYWxsb2MgZmFpbGVkIGZvciAlIiBQUkl1MzIgIiBieXRl cyIsIHNpemUpOworKwkJCVdMb2dfRVJSKFRBRywgImNsZWFyLT5UZW1wQnVmZmVyIHJlYWxsb2Mg ZmFpbGVkIGZvciAlIiBQUkl1NjQgIiBieXRlcyIsIHNpemUpOworIAkJCXJldHVybiBGQUxTRTsK KyAJCX0KKyAKKy0JCWNsZWFyLT5UZW1wU2l6ZSA9IHNpemU7CisrCQljbGVhci0+VGVtcFNpemUg PSBzaXplICogYnBwOworIAkJY2xlYXItPlRlbXBCdWZmZXIgPSB0bXA7CisgCX0KKyAKKy0tIAor Mi41Mi4wCisKCmRpZmYgLS1naXQgYS9jb2RlYy1jbGVhci1maXgtZGVzdGluYXRpb24tY2hlY2tz LnBhdGNoIGIvY29kZWMtY2xlYXItZml4LWRlc3RpbmF0aW9uLWNoZWNrcy5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODNiNzUxCi0tLSAvZGV2L251bGwKKysrIGIv Y29kZWMtY2xlYXItZml4LWRlc3RpbmF0aW9uLWNoZWNrcy5wYXRjaApAQCAtMCwwICsxLDQxIEBA CitGcm9tIDcxNzhhNTU1NGQ3MTQ3YTQ3ZmI3YTg1YmJhOGM2ODFmNTllMmE3MTQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0Rh dGU6IE1vbiwgOSBNYXIgMjAyNiAxMzo1NToyOSArMDEwMAorU3ViamVjdDogW1BBVENIXSBbY29k ZWMsY2xlYXJdIGZpeCBkZXN0aW5hdGlvbiBjaGVja3MKKworQmFja3BvcnQgb2YgY29tbWl0IDdk OGZkY2UyZDBlZjMzN2NiODZjYjM3ZmMwYzQzNmM5MDVlMDRkNzcuCisKK01hZGUtd2l0aDogQ3Vy c29yCistLS0KKyBsaWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMgfCAxMSArKysrKystLS0tLQorIDEg ZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS9saWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMgYi9saWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMK K2luZGV4IGE5ODlhOWJmZi4uNGRiZTcyMzc2IDEwMDY0NAorLS0tIGEvbGliZnJlZXJkcC9jb2Rl Yy9jbGVhci5jCisrKysgYi9saWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMKK0BAIC00OTQsMTUgKzQ5 NCwxNiBAQCBzdGF0aWMgQk9PTCBjbGVhcl9kZWNvbXByZXNzX3N1YmNvZGVjc19kYXRhKENMRUFS X0NPTlRFWFQqIGNsZWFyLCB3U3RyZWFtKiBzLAorIAkJblhEc3RSZWwgPSBuWERzdCArIHhTdGFy dDsKKyAJCW5ZRHN0UmVsID0gbllEc3QgKyB5U3RhcnQ7CisgCistCQlpZiAod2lkdGggPiBuV2lk dGgpCisrCQlpZiAoMXVsbCAqIG5YRHN0UmVsICsgd2lkdGggPiBuRHN0V2lkdGgpCisgCQl7Cist CQkJV0xvZ19FUlIoVEFHLCAid2lkdGggJSIgUFJJdTE2ICIgPiBuV2lkdGggJSIgUFJJdTMyICIi LCB3aWR0aCwgbldpZHRoKTsKKysJCQlXTG9nX0VSUihUQUcsICJuWERzdFJlbCAlIiBQUkl1MzIg IiArIHdpZHRoICUiIFBSSXUxNiAiID4gbkRzdFdpZHRoICUiIFBSSXUzMiAiIiwKKysJCQkgICAg ICAgICBuWERzdFJlbCwgd2lkdGgsIG5Ec3RXaWR0aCk7CisgCQkJcmV0dXJuIEZBTFNFOworIAkJ fQorLQorLQkJaWYgKGhlaWdodCA+IG5IZWlnaHQpCisrCQlpZiAoMXVsbCAqIG5ZRHN0UmVsICsg aGVpZ2h0ID4gbkRzdEhlaWdodCkKKyAJCXsKKy0JCQlXTG9nX0VSUihUQUcsICJoZWlnaHQgJSIg UFJJdTE2ICIgPiBuSGVpZ2h0ICUiIFBSSXUzMiAiIiwgaGVpZ2h0LCBuSGVpZ2h0KTsKKysJCQlX TG9nX0VSUihUQUcsICJuWURzdFJlbCAlIiBQUkl1MzIgIiArIGhlaWdodCAlIiBQUkl1MTYgIiA+ IG5Ec3RIZWlnaHQgJSIgUFJJdTMyICIiLAorKwkJCSAgICAgICAgIG5ZRHN0UmVsLCBoZWlnaHQs IG5Ec3RIZWlnaHQpOworIAkJCXJldHVybiBGQUxTRTsKKyAJCX0KKyAKKy0tIAorMi41My4wCisK CmRpZmYgLS1naXQgYS9jb2RlYy1jbGVhci1maXgtb2ZmLWJ5LW9uZS1sZW5ndGgtY2hlY2sucGF0 Y2ggYi9jb2RlYy1jbGVhci1maXgtb2ZmLWJ5LW9uZS1sZW5ndGgtY2hlY2sucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMwMGMxZAotLS0gL2Rldi9udWxsCisrKyBi L2NvZGVjLWNsZWFyLWZpeC1vZmYtYnktb25lLWxlbmd0aC1jaGVjay5wYXRjaApAQCAtMCwwICsx LDM1IEBACitGcm9tIDViMDNkYjM5MjZiZDdiYzFiZjU4MTlkZTA2OGVkNzFhNzNiMjUyMzYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNv bT4KK0RhdGU6IFRodSwgMjIgSmFuIDIwMjYgMTI6NDk6MjggKzAxMDAKK1N1YmplY3Q6IFtQQVRD SF0gW2NvZGVjLGNsZWFyXSBmaXggb2ZmIGJ5IG9uZSBsZW5ndGggY2hlY2sKKworQmFja3BvcnQg b2YgY29tbWl0IGY4Njg4YjU3ZjZjZmFkOWEwYjA1NDc1YTZhZmJkZTM1NWZmYWI3MjAuCisKK0Nv LUF1dGhvcmVkLUJ5OiBDbGF1ZGUgPG5vcmVwbHlAYW50aHJvcGljLmNvbT4KKy0tLQorIGxpYmZy ZWVyZHAvY29kZWMvY2xlYXIuYyB8IDUgKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9saWJmcmVlcmRwL2NvZGVjL2Ns ZWFyLmMgYi9saWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMKK2luZGV4IDA5ZjVkYWQ2ZC4uNGYwYWVh ZDEwIDEwMDY0NAorLS0tIGEvbGliZnJlZXJkcC9jb2RlYy9jbGVhci5jCisrKysgYi9saWJmcmVl cmRwL2NvZGVjL2NsZWFyLmMKK0BAIC04ODEsMTEgKzg4MSwxNCBAQCBzdGF0aWMgQk9PTCBjbGVh cl9kZWNvbXByZXNzX2JhbmRzX2RhdGEoQ0xFQVJfQ09OVEVYVCogY2xlYXIsIHdTdHJlYW0qIHMs IFVJTlQzMgorIAkJCQlpZiAoY291bnQgPiBuSGVpZ2h0KQorIAkJCQkJY291bnQgPSBuSGVpZ2h0 OworIAorLQkJCQlpZiAoblhEc3RSZWwgKyBpID4gbkRzdFdpZHRoKQorKwkJCQlpZiAoblhEc3RS ZWwgKyBpID49IG5Ec3RXaWR0aCkKKyAJCQkJCXJldHVybiBGQUxTRTsKKyAKKyAJCQkJZm9yIChV SU5UMzIgeSA9IDA7IHkgPCBjb3VudDsgeSsrKQorIAkJCQl7CisrCQkJCQlpZiAobllEc3RSZWwg KyB5ID49IG5Ec3RIZWlnaHQpCisrCQkJCQkJcmV0dXJuIEZBTFNFOworKworIAkJCQkJQllURSog cERzdFBpeGVsOCA9ICZwRHN0RGF0YVsoKG5ZRHN0UmVsICsgeSkgKiBuRHN0U3RlcCkgKworIAkJ CQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG5YRHN0UmVsICsgaSkgKiBHZXRCeXRl c1BlclBpeGVsKERzdEZvcm1hdCkpXTsKKyAJCQkJCVVJTlQzMiBjb2xvciA9IFJlYWRDb2xvcihj cFNyY1BpeGVsLCBjbGVhci0+Zm9ybWF0KTsKKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS9j b2RlYy1jbGVhci11cGRhdGUtQ0xFQVJfVkJBUl9FTlRSWS1zaXplLWFmdGVyLWFsbG9jLnBhdGNo IGIvY29kZWMtY2xlYXItdXBkYXRlLUNMRUFSX1ZCQVJfRU5UUlktc2l6ZS1hZnRlci1hbGxvYy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmZlODRhCi0tLSAvZGV2 L251bGwKKysrIGIvY29kZWMtY2xlYXItdXBkYXRlLUNMRUFSX1ZCQVJfRU5UUlktc2l6ZS1hZnRl ci1hbGxvYy5wYXRjaApAQCAtMCwwICsxLDM1IEBACitGcm9tIGEyZGRlNmQ5ODMyY2IwMzJlOGNm MTJjYWIzZGE4NGRhZmJhYjkwMDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRy ZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMTAgQXByIDIwMjYgMTE6MzI6 MDkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2NvZGVjLGNsZWFyXSB1cGRhdGUgQ0xFQVJfVkJB Ul9FTlRSWTo6c2l6ZSBhZnRlciBhbGxvYworCitCYWNrcG9ydCBvZiBjb21taXQgYTJkZGU2ZDk4 MzJjYjAzMmU4Y2YxMmNhYjNkYTg0ZGFmYmFiOTAwNi4KKworTWFkZS13aXRoOiBDdXJzb3IKKy0t LQorIGxpYmZyZWVyZHAvY29kZWMvY2xlYXIuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2xpYmZyZWVyZHAvY29k ZWMvY2xlYXIuYyBiL2xpYmZyZWVyZHAvY29kZWMvY2xlYXIuYworaW5kZXggZTM4ZmEwZC4uZWRh MzBhZCAxMDA2NDQKKy0tLSBhL2xpYmZyZWVyZHAvY29kZWMvY2xlYXIuYworKysrIGIvbGliZnJl ZXJkcC9jb2RlYy9jbGVhci5jCitAQCAtNTY1LDcgKzU2NSw2IEBAIHN0YXRpYyBCT09MIHJlc2l6 ZV92YmFyX2VudHJ5KENMRUFSX0NPTlRFWFQqIGNsZWFyLCBDTEVBUl9WQkFSX0VOVFJZKiB2QmFy RW50cnkpCisgCQljb25zdCBVSU5UMzIgb2xkUG9zID0gdkJhckVudHJ5LT5zaXplICogYnBwOwor IAkJY29uc3QgVUlOVDMyIGRpZmZTaXplID0gKHZCYXJFbnRyeS0+Y291bnQgLSB2QmFyRW50cnkt PnNpemUpICogYnBwOworIAkJQllURSogdG1wOworLQkJdkJhckVudHJ5LT5zaXplID0gdkJhckVu dHJ5LT5jb3VudDsKKyAJCXRtcCA9IChCWVRFKilyZWFsbG9jKHZCYXJFbnRyeS0+cGl4ZWxzLCAx dWxsICogdkJhckVudHJ5LT5jb3VudCAqIGJwcCk7CisgCisgCQlpZiAoIXRtcCkKK0BAIC01NzYs NiArNTc1LDcgQEAgc3RhdGljIEJPT0wgcmVzaXplX3ZiYXJfZW50cnkoQ0xFQVJfQ09OVEVYVCog Y2xlYXIsIENMRUFSX1ZCQVJfRU5UUlkqIHZCYXJFbnRyeSkKKyAKKyAJCW1lbXNldCgmdG1wW29s ZFBvc10sIDAsIGRpZmZTaXplKTsKKyAJCXZCYXJFbnRyeS0+cGl4ZWxzID0gdG1wOworKwkJdkJh ckVudHJ5LT5zaXplID0gdkJhckVudHJ5LT5jb3VudDsKKyAJfQorIAorIAlpZiAoIXZCYXJFbnRy eS0+cGl4ZWxzICYmIHZCYXJFbnRyeS0+c2l6ZSkKKy0tIAorMi40OS4wCisKCmRpZmYgLS1naXQg YS9jb2RlYy1jbGVhci11cGRhdGUtY2xlYXJfZ2x5cGhfZW50cnktY291bnQtYWZ0ZXItYWxsb2Mu cGF0Y2ggYi9jb2RlYy1jbGVhci11cGRhdGUtY2xlYXJfZ2x5cGhfZW50cnktY291bnQtYWZ0ZXIt YWxsb2MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJlNGM2ZQot LS0gL2Rldi9udWxsCisrKyBiL2NvZGVjLWNsZWFyLXVwZGF0ZS1jbGVhcl9nbHlwaF9lbnRyeS1j b3VudC1hZnRlci1hbGxvYy5wYXRjaApAQCAtMCwwICsxLDU3IEBACitGcm9tIDk0N2ZlZWFkZmRk ZjAxZDMwZGRhNWFhMTZlYmMzMzViZmNjMjNhZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMjkgQXByIDIw MjYgMTM6NDI6MDAgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2NvZGVjLGNsZWFyXSBVcGRhdGUg Q0xFQVJfR0xZUEhfRU5UUlk6OmNvdW50IGFmdGVyIGFsbG9jCisKK0JhY2twb3J0IG9mIGNvbW1p dCBjNDlkMWFkNDNiOGM3YjMyNzk0ZDAyNTBmMjYyM2MyZGNjZDdlZjI1LgorCitBZGFwdGVkIGZv ciAyLjExLjc6IHVzZXMgR2V0Qnl0ZXNQZXJQaXhlbCBpbnN0ZWFkIG9mIEZyZWVSRFBHZXRCeXRl c1BlclBpeGVsLAorcGxhaW4gcmVhbGxvYyBpbnN0ZWFkIG9mIHdpbnByX2FsaWduZWRfcmVjYWxs b2M7IG92ZXJmbG93IGNoZWNrcyBtYXRjaCB1cHN0cmVhbQorKHNpemVfdCBjb3VudCwgaGxpbWl0 IC8gZXhjZWVkZWQgbG9nZ2luZyk7IGdseXBoRW50cnktPmNvdW50IHNldCB2aWEgKFVJTlQzMilj YXN0CithZnRlciBzdWNjZXNzZnVsIHJlYWxsb2MuCisKK01hZGUtd2l0aDogQ3Vyc29yCistLS0K KyBsaWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMgfCAyMiArKysrKysrKysrKysrKysrKy0tLS0tCisg MSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9saWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMgYi9saWJmcmVlcmRwL2NvZGVjL2NsZWFy LmMKKy0tLSBhL2xpYmZyZWVyZHAvY29kZWMvY2xlYXIuYworKysrIGIvbGliZnJlZXJkcC9jb2Rl Yy9jbGVhci5jCitAQCAtOTc5LDIwICs5NzksMzEgQEAKKyAJeworIAkJY29uc3QgVUlOVDMyIGJw cCA9IEdldEJ5dGVzUGVyUGl4ZWwoY2xlYXItPmZvcm1hdCk7CisgCQlDTEVBUl9HTFlQSF9FTlRS WSogZ2x5cGhFbnRyeSA9ICYoY2xlYXItPkdseXBoQ2FjaGVbZ2x5cGhJbmRleF0pOworLQkJZ2x5 cGhFbnRyeS0+Y291bnQgPSBuV2lkdGggKiBuSGVpZ2h0OworKwkJY29uc3Qgc2l6ZV90IGNvdW50 ID0gMXVsbCAqIG5XaWR0aCAqIG5IZWlnaHQ7CisrCQljb25zdCBzaXplX3QgaGxpbWl0ID0gU0la RV9NQVggLyAoKG5XaWR0aCA+IDApID8gbldpZHRoIDogMSk7CisrCQlpZiAoKG5XaWR0aCA9PSAw KSB8fCAobkhlaWdodCA9PSAwKSB8fCAoaGxpbWl0IDwgbkhlaWdodCkpCisrCQl7CisrCQkJY29u c3QgY2hhciogZXhjZWVkZWQgPSAoaGxpbWl0IDwgbkhlaWdodCkgPyAid2l0aGluIiA6ICJvdXRz aWRlIjsKKysJCQlXTG9nX0VSUihUQUcsCisrCQkJICAgICAgICAgIkNMRUFSQ09ERUNfRkxBR19H TFlQSF9JTkRFWDogbldpZHRoPSUiIFBSSXUzMiAiLCBuSGVpZ2h0PSUiIFBSSXUzMgorKwkJCSAg ICAgICAgICIsIG5XaWR0aCAqIG5IZWlnaHQgaXMgJXMgYWxsb3dlZCByYW5nZSIsCisrCQkJICAg ICAgICAgbldpZHRoLCBuSGVpZ2h0LCBleGNlZWRlZCk7CisrCQkJcmV0dXJuIEZBTFNFOworKwkJ fQorIAorLQkJaWYgKGdseXBoRW50cnktPmNvdW50ID4gZ2x5cGhFbnRyeS0+c2l6ZSkKKysJCWlm IChjb3VudCA+IGdseXBoRW50cnktPnNpemUpCisgCQl7CisgCQkJQllURSogdG1wOworLQkJCXRt cCA9IHJlYWxsb2MoZ2x5cGhFbnRyeS0+cGl4ZWxzLCAxdWxsICogZ2x5cGhFbnRyeS0+Y291bnQg KiBicHApOworKwkJCXRtcCA9IHJlYWxsb2MoZ2x5cGhFbnRyeS0+cGl4ZWxzLCAxdWxsICogY291 bnQgKiBicHApOworIAorIAkJCWlmICghdG1wKQorIAkJCXsKKy0JCQkJV0xvZ19FUlIoVEFHLCAi Z2x5cGhFbnRyeS0+cGl4ZWxzIHJlYWxsb2MgJSIgUFJJdTMyICIgZmFpbGVkISIsCistCQkJCSAg ICAgICAgIGdseXBoRW50cnktPmNvdW50ICogYnBwKTsKKysJCQkJV0xvZ19FUlIoVEFHLCAiZ2x5 cGhFbnRyeS0+cGl4ZWxzIHJlYWxsb2MgJSIgUFJJdXogIiBmYWlsZWQhIiwKKysJCQkJICAgICAg ICAgY291bnQgKiBicHApOworIAkJCQlyZXR1cm4gRkFMU0U7CisgCQkJfQorIAorKwkJCWdseXBo RW50cnktPmNvdW50ID0gKFVJTlQzMiljb3VudDsKKyAJCQlnbHlwaEVudHJ5LT5zaXplID0gZ2x5 cGhFbnRyeS0+Y291bnQ7CisgCQkJZ2x5cGhFbnRyeS0+cGl4ZWxzID0gKFVJTlQzMiopdG1wOwor IAkJfQoKZGlmZiAtLWdpdCBhL2NvZGVjLWNvbG9yLWFkZC1mcmVlcmRwX2dseXBoX2NvbnZlcnRf ZXgucGF0Y2ggYi9jb2RlYy1jb2xvci1hZGQtZnJlZXJkcF9nbHlwaF9jb252ZXJ0X2V4LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5N2YxMjYKLS0tIC9kZXYvbnVs bAorKysgYi9jb2RlYy1jb2xvci1hZGQtZnJlZXJkcF9nbHlwaF9jb252ZXJ0X2V4LnBhdGNoCkBA IC0wLDAgKzEsMTE0IEBACitGcm9tIGI1NDAwM2FkMmRjYjY5YjNjNzgzNmFlMTQ0NWM0OGFmOGIz OWNkNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlA cmVkaGF0LmNvbT4KK0RhdGU6IFNhdCwgMjggTWFyIDIwMjYgMTI6MTM6MDQgKzAxMDAKK1N1Ympl Y3Q6IFtQQVRDSF0gW2NvZGVjLGNvbG9yXSBhZGQgZnJlZXJkcF9nbHlwaF9jb252ZXJ0X2V4CisK K0JhY2twb3J0IG9mIGNvbW1pdCAzYmMxZWViNGY2M2NlZWM5YTY5NmFmMTk0ZTRjMWVhMGU2N2Zm NjBjLgorCitNYWRlLXdpdGg6IEN1cnNvcgorLS0tCisgbGliZnJlZXJkcC9jb2RlYy9jb2xvci5j ICB8IDEyICsrKysrKysrKy0tCisgbGliZnJlZXJkcC9nZGkvZ3JhcGhpY3MuYyB8IDQ1ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgNTUg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZyZWVyZHAv Y29kZWMvY29sb3IuYyBiL2xpYmZyZWVyZHAvY29kZWMvY29sb3IuYworaW5kZXggZjg0NjdjMjk1 Li40YzcyZWUzZTYgMTAwNjQ0CistLS0gYS9saWJmcmVlcmRwL2NvZGVjL2NvbG9yLmMKKysrKyBi L2xpYmZyZWVyZHAvY29kZWMvY29sb3IuYworQEAgLTI4LDYgKzI4LDcgQEAKKyAjaW5jbHVkZSA8 c3RkbGliLmg+CisgCisgI2luY2x1ZGUgPHdpbnByL2NydC5oPgorKyNpbmNsdWRlIDx3aW5wci9h c3NlcnQuaD4KKyAKKyAjaW5jbHVkZSA8ZnJlZXJkcC9sb2cuaD4KKyAjaW5jbHVkZSA8ZnJlZXJk cC9mcmVlcmRwLmg+CitAQCAtNDksMTMgKzUwLDIwIEBAIEJZVEUqIGZyZWVyZHBfZ2x5cGhfY29u dmVydChVSU5UMzIgd2lkdGgsIFVJTlQzMiBoZWlnaHQsIGNvbnN0IEJZVEUqIGRhdGEpCisgCWNv bnN0IEJZVEUqIHNyY3A7CisgCUJZVEUqIGRzdHA7CisgCUJZVEUqIGRzdERhdGE7CistCVVJTlQz MiBzY2FubGluZTsKKysJc2l6ZV90IHNjYW5saW5lOworKworIAkvKgorIAkgKiBjb252ZXJ0cyBh IDEtYml0LXBlci1waXhlbCBnbHlwaCB0byBhIG9uZS1ieXRlLXBlci1waXhlbCBnbHlwaDoKKyAJ ICogdGhpcyBhcHByb2FjaCB1c2VzIGEgbGl0dGxlIG1vcmUgbWVtb3J5LCBidXQgcHJvdmlkZXMg ZmFzdGVyCisgCSAqIG1lYW5zIG9mIGFjY2Vzc2luZyBpbmRpdmlkdWFsIHBpeGVscyBpbiBibGl0 dGluZyBvcGVyYXRpb25zCisgCSAqLworLQlzY2FubGluZSA9ICh3aWR0aCArIDcpIC8gODsKKysJ c2NhbmxpbmUgPSAod2lkdGggKyA3dWxsKSAvIDh1bGw7CisrCisrCWlmICgod2lkdGggPT0gMCkg fHwgKGhlaWdodCA9PSAwKSkKKysJCXJldHVybiBOVUxMOworKworKwlXSU5QUl9BU1NFUlQoZGF0 YSk7CisrCisgCWRzdERhdGEgPSAoQllURSopX2FsaWduZWRfbWFsbG9jKDF1bGwgKiB3aWR0aCAq IGhlaWdodCwgMTYpOworIAorIAlpZiAoIWRzdERhdGEpCitkaWZmIC0tZ2l0IGEvbGliZnJlZXJk cC9nZGkvZ3JhcGhpY3MuYyBiL2xpYmZyZWVyZHAvZ2RpL2dyYXBoaWNzLmMKK2luZGV4IDQ3OWVh YzliOC4uZGFiMTU5YzQzIDEwMDY0NAorLS0tIGEvbGliZnJlZXJkcC9nZGkvZ3JhcGhpY3MuYwor KysrIGIvbGliZnJlZXJkcC9nZGkvZ3JhcGhpY3MuYworQEAgLTIzLDYgKzIzLDcgQEAKKyAjaW5j bHVkZSAiY29uZmlnLmgiCisgI2VuZGlmCisgCisrI2luY2x1ZGUgPHdpbnByL2Fzc2VydC5oPgor ICNpbmNsdWRlIDx3aW5wci9jcnQuaD4KKyAKKyAjaW5jbHVkZSA8ZnJlZXJkcC9sb2cuaD4KK0BA IC0yMTUsNiArMjE2LDUwIEBAIHN0YXRpYyBCT09MIGdkaV9CaXRtYXBfU2V0U3VyZmFjZShyZHBD b250ZXh0KiBjb250ZXh0LCByZHBCaXRtYXAqIGJpdG1hcCwgQk9PTCBwCisgfQorIAorIC8qIEds eXBoIENsYXNzICovCisrc3RhdGljIEJZVEUqIGZyZWVyZHBfZ2x5cGhfY29udmVydF9leChVSU5U MzIgd2lkdGgsIFVJTlQzMiBoZWlnaHQsIGNvbnN0IEJZVEUqIGRhdGEsIHNpemVfdCBsZW4pCisr eworKwkvKgorKwkgKiBjb252ZXJ0cyBhIDEtYml0LXBlci1waXhlbCBnbHlwaCB0byBhIG9uZS1i eXRlLXBlci1waXhlbCBnbHlwaDoKKysJICogdGhpcyBhcHByb2FjaCB1c2VzIGEgbGl0dGxlIG1v cmUgbWVtb3J5LCBidXQgcHJvdmlkZXMgZmFzdGVyCisrCSAqIG1lYW5zIG9mIGFjY2Vzc2luZyBp bmRpdmlkdWFsIHBpeGVscyBpbiBibGl0dGluZyBvcGVyYXRpb25zCisrCSAqLworKwljb25zdCBz aXplX3Qgc2NhbmxpbmUgPSAod2lkdGggKyA3dWxsKSAvIDh1bGw7CisrCWNvbnN0IHNpemVfdCBy ZXF1aXJlZCA9IHNjYW5saW5lICogaGVpZ2h0OworKwlpZiAobGVuIDwgcmVxdWlyZWQpCisrCQly ZXR1cm4gTlVMTDsKKysKKysJaWYgKChsZW4gPT0gMCkgfHwgKHdpZHRoID09IDApIHx8IChoZWln aHQgPT0gMCkpCisrCQlyZXR1cm4gTlVMTDsKKysKKysJV0lOUFJfQVNTRVJUKGRhdGEpOworKwor KwlCWVRFKiBkc3REYXRhID0gKEJZVEUqKV9hbGlnbmVkX21hbGxvYygxdWxsICogd2lkdGggKiBo ZWlnaHQsIDE2KTsKKysKKysJaWYgKCFkc3REYXRhKQorKwkJcmV0dXJuIE5VTEw7CisrCisrCVpl cm9NZW1vcnkoZHN0RGF0YSwgMVVMTCAqIHdpZHRoICogaGVpZ2h0KTsKKysJQllURSogZHN0cCA9 IGRzdERhdGE7CisrCisrCWZvciAoVUlOVDMyIHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspCisrCXsK KysJCWNvbnN0IEJZVEUqIHNyY3AgPSAmZGF0YVsxdWxsICogeSAqIHNjYW5saW5lXTsKKysKKysJ CWZvciAoVUlOVDMyIHggPSAwOyB4IDwgd2lkdGg7IHgrKykKKysJCXsKKysJCQlpZiAoKCpzcmNw ICYgKDB4ODAgPj4gKHggJSA4KSkpICE9IDApCisrCQkJCSpkc3RwID0gMHhGRjsKKysKKysJCQlk c3RwKys7CisrCisrCQkJaWYgKCgoeCArIDEpICUgOCA9PSAwKSAmJiB4ICE9IDApCisrCQkJCXNy Y3ArKzsKKysJCX0KKysJfQorKworKwlyZXR1cm4gZHN0RGF0YTsKKyt9CisrCisgc3RhdGljIEJP T0wgZ2RpX0dseXBoX05ldyhyZHBDb250ZXh0KiBjb250ZXh0LCBjb25zdCByZHBHbHlwaCogZ2x5 cGgpCisgeworIAlCWVRFKiBkYXRhOworLS0gCisyLjUzLjAKKwoKZGlmZiAtLWdpdCBhL2NvZGVj LWRzcC1hZGQtZm9ybWF0LWNoZWNrcy5wYXRjaCBiL2NvZGVjLWRzcC1hZGQtZm9ybWF0LWNoZWNr cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTIzODcwCi0tLSAv ZGV2L251bGwKKysrIGIvY29kZWMtZHNwLWFkZC1mb3JtYXQtY2hlY2tzLnBhdGNoCkBAIC0wLDAg KzEsMjE4IEBACitGcm9tIDc0ZmY4YTA5N2MzNjA2NzEwMzI3ZTNhZjI4NjNhYTUyZDJkYWM3OWUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0 LmNvbT4KK0RhdGU6IFR1ZSwgMjkgQXByIDIwMjYgMTU6MTA6MDAgKzAwMDAKK1N1YmplY3Q6IFtQ QVRDSF0gW2NvZGVjLGRzcF0gYWRkIGZvcm1hdCBjaGVja3MKKworQmFja3BvcnQgb2YgY29tbWl0 IDAzYjQ4YjM2MDFkODY3YWZjY2FjMWNkYzYwODFkZTdhMjc1ZWRjZTcuCisKK0FkYXB0ZWQgZm9y IDIuMTEueDogdXNlcyBgY29udGV4dC0+Zm9ybWF0YCBpbnN0ZWFkIG9mCitgY29udGV4dC0+Y29t bW9uLmZvcm1hdGAsIG5vIGBXSU5QUl9SRVNUUklDVGAsIGFkZGVkCitgI2luY2x1ZGUgPHdpbnBy L2Fzc2VydC5oPmAuIEtlcHQgQzg5IGRlY2xhcmF0aW9uIHN0eWxlIGluCitgZnJlZXJkcF9kc3Bf ZGVjb2RlX21wM2AgYW5kIGBmcmVlcmRwX2RzcF9lbmNvZGVfbXAzYC4gT21pdHRlZAorTEFNRS9t cDMgdmFyaWFibGUgbW9kZXJuaXphdGlvbi4gRFZJX0FEUENNIGJsb2NrIGluCitgZnJlZXJkcF9k c3BfY29udGV4dF9yZXNldGAgb21pdHMgRnJhbWVzUGVyUGFja2V0IHNpemluZyBmcm9tIHVwc3Ry ZWFtIDMueAorYnV0IGFkZHMgYFN0cmVhbV9TZXRQb3NpdGlvbihjb250ZXh0LT5idWZmZXIsIDAp YCBhZnRlciB2YWxpZGF0aW9uIChzYW1lCitpbnRlbnQgYXMgdXBzdHJlYW0gYFN0cmVhbV9SZXNl dFBvc2l0aW9uYCkuIGBmcmVlcmRwX2RzcF9kZWNvZGVfaW1hX2FkcGNtYAorbWF0Y2hlcyB1cHN0 cmVhbSBvcmRlcjogdmFsaWRhdGUgZm9ybWF0IGJlZm9yZSBsb2NhbHM7IGBvdXRfc2l6ZWAgdXNl cworYHNpemUgKiA0dWxsYC4gYFN0cmVhbV9CdWZmZXJBc2AgcmVwbGFjZWQgd2l0aAorYFN0cmVh bV9CdWZmZXJgIGNhc3QuIGBudWxscHRyYCByZXBsYWNlZCB3aXRoIGBOVUxMYC4KKworTWFkZS13 aXRoOiBDdXJzb3IKKy0tLQorIGxpYmZyZWVyZHAvY29kZWMvZHNwLmMgfCA5NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMSBmaWxl IGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9saWJmcmVlcmRwL2NvZGVjL2RzcC5jIGIvbGliZnJlZXJkcC9jb2RlYy9kc3AuYworaW5kZXgg YTE4ZDA0NC4uZTc5OTExZCAxMDA2NDQKKy0tLSBhL2xpYmZyZWVyZHAvY29kZWMvZHNwLmMKKysr KyBiL2xpYmZyZWVyZHAvY29kZWMvZHNwLmMKK0BAIC0yNyw2ICsyNyw3IEBACisgI2luY2x1ZGUg PHN0cmluZy5oPgorIAorICNpbmNsdWRlIDx3aW5wci9jcnQuaD4KKysjaW5jbHVkZSA8d2lucHIv YXNzZXJ0Lmg+CisgCisgI2luY2x1ZGUgPGZyZWVyZHAvdHlwZXMuaD4KKyAjaW5jbHVkZSA8ZnJl ZXJkcC9sb2cuaD4KK0BAIC0zMjksMTMgKzMzMCwzMCBAQAorIAlyZXR1cm4gKFVJTlQxNilkOwor IH0KKyAKKytzdGF0aWMgQk9PTCB2YWxpZF9pbWFfYWRwY21fZm9ybWF0KGNvbnN0IEZSRUVSRFBf RFNQX0NPTlRFWFQqIGNvbnRleHQpCisreworKwlXSU5QUl9BU1NFUlQoY29udGV4dCk7CisrCWlm IChjb250ZXh0LT5mb3JtYXQud0Zvcm1hdFRhZyAhPSBXQVZFX0ZPUk1BVF9EVklfQURQQ00pCisr CQlyZXR1cm4gRkFMU0U7CisrCWlmIChjb250ZXh0LT5mb3JtYXQubkJsb2NrQWxpZ24gPD0gNFVM TCkKKysJCXJldHVybiBGQUxTRTsKKysJaWYgKGNvbnRleHQtPmZvcm1hdC5uQ2hhbm5lbHMgPCAx KQorKwkJcmV0dXJuIEZBTFNFOworKwlpZiAoY29udGV4dC0+Zm9ybWF0LndCaXRzUGVyU2FtcGxl ID09IDApCisrCQlyZXR1cm4gRkFMU0U7CisrCXJldHVybiBUUlVFOworK30KKysKKyBzdGF0aWMg Qk9PTCBmcmVlcmRwX2RzcF9kZWNvZGVfaW1hX2FkcGNtKEZSRUVSRFBfRFNQX0NPTlRFWFQqIGNv bnRleHQsIGNvbnN0IEJZVEUqIHNyYywgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3U3RyZWFtKiBvdXQpCisgeworKwlpZiAoIXZhbGlkX2lt YV9hZHBjbV9mb3JtYXQoY29udGV4dCkpCisrCQlyZXR1cm4gRkFMU0U7CisrCisgCUJZVEUqIGRz dDsKKyAJQllURSBzYW1wbGU7CisgCVVJTlQxNiBkZWNvZGVkOworLQlzaXplX3Qgb3V0X3NpemUg PSBzaXplICogNDsKKysJc2l6ZV90IG91dF9zaXplID0gc2l6ZSAqIDR1bGw7CisgCVVJTlQzMiBj aGFubmVsOworIAljb25zdCBVSU5UMzIgYmxvY2tfc2l6ZSA9IGNvbnRleHQtPmZvcm1hdC5uQmxv Y2tBbGlnbjsKKyAJY29uc3QgVUlOVDMyIGNoYW5uZWxzID0gY29udGV4dC0+Zm9ybWF0Lm5DaGFu bmVsczsKK0BAIC00NjQsNiArNDgyLDIwIEBACisgI2VuZGlmCisgCisgI2lmIGRlZmluZWQoV0lU SF9MQU1FKQorK3N0YXRpYyBCT09MIHZhbGlkX21wM19mb3JtYXQoY29uc3QgRlJFRVJEUF9EU1Bf Q09OVEVYVCogY29udGV4dCkKKyt7CisrCVdJTlBSX0FTU0VSVChjb250ZXh0KTsKKysJaWYgKGNv bnRleHQtPmZvcm1hdC53Rm9ybWF0VGFnICE9IFdBVkVfRk9STUFUX01QRUdMQVlFUjMpCisrCQly ZXR1cm4gRkFMU0U7CisrCWlmIChjb250ZXh0LT5mb3JtYXQubkNoYW5uZWxzIDwgMSkKKysJCXJl dHVybiBGQUxTRTsKKysJaWYgKGNvbnRleHQtPmZvcm1hdC53Qml0c1BlclNhbXBsZSA9PSAwKQor KwkJcmV0dXJuIEZBTFNFOworKwlpZiAoY29udGV4dC0+Zm9ybWF0Lm5TYW1wbGVzUGVyU2VjID09 IDApCisrCQlyZXR1cm4gRkFMU0U7CisrCXJldHVybiBUUlVFOworK30KKysKKyBzdGF0aWMgQk9P TCBmcmVlcmRwX2RzcF9kZWNvZGVfbXAzKEZSRUVSRFBfRFNQX0NPTlRFWFQqIGNvbnRleHQsIGNv bnN0IEJZVEUqIHNyYywgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3U3RyZWFtKiBvdXQpCisgeworQEAgLTQ3NCw2ICs1MDYsOCBAQAorIAorIAlpZiAo IWNvbnRleHQgfHwgIXNyYyB8fCAhb3V0KQorIAkJcmV0dXJuIEZBTFNFOworKwlpZiAoIXZhbGlk X21wM19mb3JtYXQoY29udGV4dCkpCisrCQlyZXR1cm4gRkFMU0U7CisgCisgCWJ1ZmZlcl9zaXpl ID0gMiAqIGNvbnRleHQtPmZvcm1hdC5uQ2hhbm5lbHMgKiBjb250ZXh0LT5mb3JtYXQublNhbXBs ZXNQZXJTZWM7CisgCitAQCAtNTA5LDYgKzU0Myw5IEBACisgCWlmICghY29udGV4dCB8fCAhc3Jj IHx8ICFvdXQpCisgCQlyZXR1cm4gRkFMU0U7CisgCisrCWlmICghdmFsaWRfbXAzX2Zvcm1hdChj b250ZXh0KSkKKysJCXJldHVybiBGQUxTRTsKKysKKyAJc2FtcGxlc19wZXJfY2hhbm5lbCA9IHNp emUgLyBjb250ZXh0LT5mb3JtYXQubkNoYW5uZWxzIC8gY29udGV4dC0+Zm9ybWF0LndCaXRzUGVy U2FtcGxlIC8gODsKKyAKKyAJLyogRW5zdXJlIHdvcnN0IGNhc2UgYnVmZmVyIHNpemUgZm9yIG1w MyBzdHJlYW0gdGFrZW4gZnJvbSBMQU1FIGhlYWRlciAqLworQEAgLTcxNiw2ICs3NTMsMTAgQEAK KyAJQllURSBlbmNvZGVkOworIAlzaXplX3Qgb3V0X3NpemU7CisgCXNpemVfdCBhbGlnbjsKKysK KysJaWYgKCF2YWxpZF9pbWFfYWRwY21fZm9ybWF0KGNvbnRleHQpKQorKwkJcmV0dXJuIEZBTFNF OworKworIAlvdXRfc2l6ZSA9IHNpemUgLyAyOworIAorIAlpZiAoIVN0cmVhbV9FbnN1cmVSZW1h aW5pbmdDYXBhY2l0eShvdXQsIHNpemUpKQorQEAgLTc4OCw2ICs4MjksMjAgQEAKKyAKKyBzdGF0 aWMgY29uc3QgSU5UMzIgbXNfYWRwY21fY29lZmZzMls3XSA9IHsgMCwgLTI1NiwgMCwgNjQsIDAs IC0yMDgsIC0yMzIgfTsKKyAKKytzdGF0aWMgQk9PTCB2YWxpZF9tc19hZHBjbV9mb3JtYXQoY29u c3QgRlJFRVJEUF9EU1BfQ09OVEVYVCogY29udGV4dCkKKyt7CisrCVdJTlBSX0FTU0VSVChjb250 ZXh0KTsKKysJaWYgKGNvbnRleHQtPmZvcm1hdC53Rm9ybWF0VGFnICE9IFdBVkVfRk9STUFUX0FE UENNKQorKwkJcmV0dXJuIEZBTFNFOworKwlpZiAoY29udGV4dC0+Zm9ybWF0Lm5CbG9ja0FsaWdu IDw9IDRVTEwpCisrCQlyZXR1cm4gRkFMU0U7CisrCWlmIChjb250ZXh0LT5mb3JtYXQubkNoYW5u ZWxzIDwgMSkKKysJCXJldHVybiBGQUxTRTsKKysJaWYgKGNvbnRleHQtPmZvcm1hdC53Qml0c1Bl clNhbXBsZSA9PSAwKQorKwkJcmV0dXJuIEZBTFNFOworKwlyZXR1cm4gVFJVRTsKKyt9CisrCisg c3RhdGljIElOTElORSBJTlQxNiBmcmVlcmRwX2RzcF9kZWNvZGVfbXNfYWRwY21fc2FtcGxlKEFE UENNKiBhZHBjbSwgQllURSBzYW1wbGUsIGludCBjaGFubmVsKQorIHsKKyAJSU5UOCBuaWJibGU7 CitAQCAtODE5LDYgKzg3NCw5IEBACisgCUJZVEUqIGRzdDsKKyAJQllURSBzYW1wbGU7CisgCWNv bnN0IHNpemVfdCBvdXRfc2l6ZSA9IHNpemUgKiA0OworKworKwlpZiAoIXZhbGlkX21zX2FkcGNt X2Zvcm1hdChjb250ZXh0KSkKKysJCXJldHVybiBGQUxTRTsKKyAJY29uc3QgVUlOVDMyIGNoYW5u ZWxzID0gY29udGV4dC0+Zm9ybWF0Lm5DaGFubmVsczsKKyAJY29uc3QgVUlOVDMyIGJsb2NrX3Np emUgPSBjb250ZXh0LT5mb3JtYXQubkJsb2NrQWxpZ247CisgCitAQCAtOTQ3LDYgKzEwMDUsMTAg QEAKKyAJSU5UMzIgc2FtcGxlOworIAlzaXplX3Qgb3V0X3NpemU7CisgCWNvbnN0IHNpemVfdCBz dGVwID0gOCArICgoY29udGV4dC0+Zm9ybWF0Lm5DaGFubmVscyA+IDEpID8gNCA6IDApOworKwor KwlpZiAoIXZhbGlkX21zX2FkcGNtX2Zvcm1hdChjb250ZXh0KSkKKysJCXJldHVybiBGQUxTRTsK KysKKyAJb3V0X3NpemUgPSBzaXplIC8gMjsKKyAKKyAJaWYgKCFTdHJlYW1fRW5zdXJlUmVtYWlu aW5nQ2FwYWNpdHkob3V0LCBzaXplKSkKK0BAIC0xMzA4LDYgKzEzNzAsMjggQEAKKyAJCXJldHVy biBGQUxTRTsKKyAKKyAJY29udGV4dC0+Zm9ybWF0ID0gKnRhcmdldEZvcm1hdDsKKysKKysJc3dp dGNoIChjb250ZXh0LT5mb3JtYXQud0Zvcm1hdFRhZykKKysJeworKyNpZiBkZWZpbmVkKFdJVEhf TEFNRSkKKysJCWNhc2UgV0FWRV9GT1JNQVRfTVBFR0xBWUVSMzoKKysJCQlpZiAoIXZhbGlkX21w M19mb3JtYXQoY29udGV4dCkpCisrCQkJCXJldHVybiBGQUxTRTsKKysJCQlicmVhazsKKysjZW5k aWYKKysJCWNhc2UgV0FWRV9GT1JNQVRfQURQQ006CisrCQkJaWYgKCF2YWxpZF9tc19hZHBjbV9m b3JtYXQoY29udGV4dCkpCisrCQkJCXJldHVybiBGQUxTRTsKKysJCQlicmVhazsKKysJCWNhc2Ug V0FWRV9GT1JNQVRfRFZJX0FEUENNOgorKwkJCWlmICghdmFsaWRfaW1hX2FkcGNtX2Zvcm1hdChj b250ZXh0KSkKKysJCQkJcmV0dXJuIEZBTFNFOworKwkJCVN0cmVhbV9TZXRQb3NpdGlvbihjb250 ZXh0LT5idWZmZXIsIDApOworKwkJCWJyZWFrOworKwkJZGVmYXVsdDoKKysJCQlicmVhazsKKysJ fQorKworICNpZiBkZWZpbmVkKFdJVEhfRkFBRDIpCisgCWNvbnRleHQtPmZhYWRTZXR1cCA9IEZB TFNFOworICNlbmRpZgorQEAgLTEzMjgsMTkgKzE0MTIsMjQgQEAKKyAKKyAJCWNmZyA9IGZhYWNF bmNHZXRDdXJyZW50Q29uZmlndXJhdGlvbihjb250ZXh0LT5mYWFjKTsKKyAJCWNmZy0+Yml0UmF0 ZSA9IDEwMDAwOworLQkJZmFhY0VuY1NldENvbmZpZ3VyYXRpb24oY29udGV4dC0+ZmFhYywgY2Zn KTsKKysJCXsKKysJCQljb25zdCBpbnQgZnJjID0gZmFhY0VuY1NldENvbmZpZ3VyYXRpb24oY29u dGV4dC0+ZmFhYywgY2ZnKTsKKysJCQlpZiAoZnJjIDw9IDApCisrCQkJCXJldHVybiBGQUxTRTsK KysJCX0KKyAJfQorIAorICNlbmRpZgorICNpZiBkZWZpbmVkKFdJVEhfU09YUikKKyAJeworIAkJ c294cl9pb19zcGVjX3QgaW9zcGVjID0gc294cl9pb19zcGVjKFNPWFJfSU5UMTYsIFNPWFJfSU5U MTYpOworLQkJc294cl9lcnJvcl90IGVycm9yOworKwkJc294cl9lcnJvcl90IGVycm9yID0gTlVM TDsKKysKKyAJCXNveHJfZGVsZXRlKGNvbnRleHQtPnNveCk7CisgCQljb250ZXh0LT5zb3ggPSBz b3hyX2NyZWF0ZShjb250ZXh0LT5mb3JtYXQublNhbXBsZXNQZXJTZWMsIHRhcmdldEZvcm1hdC0+ blNhbXBsZXNQZXJTZWMsCisgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRGb3Jt YXQtPm5DaGFubmVscywgJmVycm9yLCAmaW9zcGVjLCBOVUxMLCBOVUxMKTsKKyAKKy0JCWlmICgh Y29udGV4dC0+c294IHx8IChlcnJvciAhPSAwKSkKKysJCWlmICghY29udGV4dC0+c294IHx8IChl cnJvciAhPSBOVUxMKSkKKyAJCQlyZXR1cm4gRkFMU0U7CisgCX0KKyAjZW5kaWYKCmRpZmYgLS1n aXQgYS9jb2RlYy1kc3AtZml4LWFycmF5LWJvdW5kcy1jaGVja3MucGF0Y2ggYi9jb2RlYy1kc3At Zml4LWFycmF5LWJvdW5kcy1jaGVja3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMDc1NGZlYwotLS0gL2Rldi9udWxsCisrKyBiL2NvZGVjLWRzcC1maXgtYXJyYXkt Ym91bmRzLWNoZWNrcy5wYXRjaApAQCAtMCwwICsxLDIzNyBAQAorRnJvbSBhYWYzMzM4NjJmYjU0 ZDRjZmMxOWExODY2Yjc2NTAwZDg2Njc5NzE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogT25kcmVqIEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDI4IEFwciAyMDI2 IDA0OjQxOjE1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjb2RlYyxkc3BdIGZpeCBhcnJheSBi b3VuZHMgY2hlY2tzCisKK0JhY2twb3J0IG9mIGNvbW1pdCAxNmRmMjMwMGUxZTNmNWE1MWY2OGZi MTYyNjQyOWU1OGI1MzFiN2M4LgorCitBZGFwdGVkIGZvciAyLjExLng6IHVzZXMgQzg5IGRlY2xh cmF0aW9uIHN0eWxlICh2YXJpYWJsZXMgZGVjbGFyZWQKK2F0IHRvcCBvZiBzY29wZSwgbmV3IHZh cmlhYmxlcyB3cmFwcGVkIGluIGJsb2NrcyksIG5vCitgV0lOUFJfUkVTVFJJQ1RgLCBrZXB0IGBp bnQgY2hhbm5lbGAgaW4gZGVjb2RlIGZ1bmN0aW9uLAorYGRzcF9lbmNvZGVfaW1hX2FkcGNtX3Nh bXBsZWAga2VlcHMgYGludCBjaGFubmVsYC4KKworTWFkZS13aXRoOiBDdXJzb3IKKy0tLQorIGxp YmZyZWVyZHAvY29kZWMvZHNwLmMgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZyZWVyZHAvY29kZWMvZHNwLmMgYi9saWJmcmVlcmRw L2NvZGVjL2RzcC5jCitpbmRleCBlNzk5MTFkLi42ZDRmNzgwIDEwMDY0NAorLS0tIGEvbGliZnJl ZXJkcC9jb2RlYy9kc3AuYworKysrIGIvbGliZnJlZXJkcC9jb2RlYy9kc3AuYworQEAgLTI5Nyw3 ICsyOTcsMTYgQEAgc3RhdGljIFVJTlQxNiBkc3BfZGVjb2RlX2ltYV9hZHBjbV9zYW1wbGUoQURQ Q00qIGFkcGNtLCB1bnNpZ25lZCBpbnQgY2hhbm5lbCwgQlkKKyB7CisgCUlOVDMyIHNzOworIAlJ TlQzMiBkOworLQlzcyA9IGltYV9zdGVwX3NpemVfdGFibGVbYWRwY20tPmltYS5sYXN0X3N0ZXBb Y2hhbm5lbF1dOworKwlJTlQxNiBvZmZzZXQ7CisrCisrCVdJTlBSX0FTU0VSVChjaGFubmVsIDwg QVJSQVlTSVpFKGFkcGNtLT5pbWEubGFzdF9zdGVwKSk7CisrCVdJTlBSX0FTU0VSVChjaGFubmVs IDwgQVJSQVlTSVpFKGFkcGNtLT5pbWEubGFzdF9zYW1wbGUpKTsKKysKKysJb2Zmc2V0ID0gYWRw Y20tPmltYS5sYXN0X3N0ZXBbY2hhbm5lbF07CisrCVdJTlBSX0FTU0VSVChvZmZzZXQgPj0gMCk7 CisrCVdJTlBSX0FTU0VSVChvZmZzZXQgPCBBUlJBWVNJWkUoaW1hX3N0ZXBfc2l6ZV90YWJsZSkp OworKworKwlzcyA9IGltYV9zdGVwX3NpemVfdGFibGVbb2Zmc2V0XTsKKyAJZCA9IChzcyA+PiAz KTsKKyAKKyAJaWYgKHNhbXBsZSAmIDEpCitAQCAtMzIwLDYgKzMyOSw4IEBAIHN0YXRpYyBVSU5U MTYgZHNwX2RlY29kZV9pbWFfYWRwY21fc2FtcGxlKEFEUENNKiBhZHBjbSwgdW5zaWduZWQgaW50 IGNoYW5uZWwsIEJZCisgCQlkID0gMzI3Njc7CisgCisgCWFkcGNtLT5pbWEubGFzdF9zYW1wbGVb Y2hhbm5lbF0gPSAoSU5UMTYpZDsKKysKKysJV0lOUFJfQVNTRVJUKHNhbXBsZSA8IEFSUkFZU0la RShpbWFfc3RlcF9pbmRleF90YWJsZSkpOworIAlhZHBjbS0+aW1hLmxhc3Rfc3RlcFtjaGFubmVs XSArPSBpbWFfc3RlcF9pbmRleF90YWJsZVtzYW1wbGVdOworIAorIAlpZiAoYWRwY20tPmltYS5s YXN0X3N0ZXBbY2hhbm5lbF0gPCAwKQorQEAgLTM2OCw2ICszNzksOSBAQCBzdGF0aWMgQk9PTCBm cmVlcmRwX2RzcF9kZWNvZGVfaW1hX2FkcGNtKEZSRUVSRFBfRFNQX0NPTlRFWFQqIGNvbnRleHQs IGNvbnN0IEJZVAorIAl7CisgCQlpZiAoc2l6ZSAlIGJsb2NrX3NpemUgPT0gMCkKKyAJCXsKKysJ CQlpZiAoc2l6ZSA8IDQpCisrCQkJCXJldHVybiBGQUxTRTsKKysKKyAJCQljb250ZXh0LT5hZHBj bS5pbWEubGFzdF9zYW1wbGVbMF0gPQorIAkJCSAgICAoSU5UMTYpKCgoVUlOVDE2KSgqc3JjKSkg fCAoKChVSU5UMTYpKCooc3JjICsgMSkpKSA8PCA4KSk7CisgCQkJY29udGV4dC0+YWRwY20uaW1h Lmxhc3Rfc3RlcFswXSA9IChJTlQxNikoKihzcmMgKyAyKSk7CitAQCAtMzc3LDYgKzM5MSw4IEBA IHN0YXRpYyBCT09MIGZyZWVyZHBfZHNwX2RlY29kZV9pbWFfYWRwY20oRlJFRVJEUF9EU1BfQ09O VEVYVCogY29udGV4dCwgY29uc3QgQllUCisgCisgCQkJaWYgKGNoYW5uZWxzID4gMSkKKyAJCQl7 CisrCQkJCWlmIChzaXplIDwgNCkKKysJCQkJCXJldHVybiBGQUxTRTsKKyAJCQkJY29udGV4dC0+ YWRwY20uaW1hLmxhc3Rfc2FtcGxlWzFdID0KKyAJCQkJICAgIChJTlQxNikoKChVSU5UMTYpKCpz cmMpKSB8ICgoKFVJTlQxNikoKihzcmMgKyAxKSkpIDw8IDgpKTsKKyAJCQkJY29udGV4dC0+YWRw Y20uaW1hLmxhc3Rfc3RlcFsxXSA9IChJTlQxNikoKihzcmMgKyAyKSk7CitAQCAtMzg4LDYgKzQw NCw4IEBAIHN0YXRpYyBCT09MIGZyZWVyZHBfZHNwX2RlY29kZV9pbWFfYWRwY20oRlJFRVJEUF9E U1BfQ09OVEVYVCogY29udGV4dCwgY29uc3QgQllUCisgCisgCQlpZiAoY2hhbm5lbHMgPiAxKQor IAkJeworKwkJCWlmIChzaXplIDwgOCkKKysJCQkJcmV0dXJuIEZBTFNFOworIAkJCWZvciAoaSA9 IDA7IGkgPCA4OyBpKyspCisgCQkJeworIAkJCQljaGFubmVsID0gKGkgPCA0ID8gMCA6IDEpOwor QEAgLTQwNyw2ICs0MjUsOCBAQCBzdGF0aWMgQk9PTCBmcmVlcmRwX2RzcF9kZWNvZGVfaW1hX2Fk cGNtKEZSRUVSRFBfRFNQX0NPTlRFWFQqIGNvbnRleHQsIGNvbnN0IEJZVAorIAkJfQorIAkJZWxz ZQorIAkJeworKwkJCWlmIChzaXplIDwgMSkKKysJCQkJcmV0dXJuIEZBTFNFOworIAkJCXNhbXBs ZSA9ICgoKnNyYykgJiAweDBmKTsKKyAJCQlkZWNvZGVkID0gZHNwX2RlY29kZV9pbWFfYWRwY21f c2FtcGxlKCZjb250ZXh0LT5hZHBjbSwgMCwgc2FtcGxlKTsKKyAJCQkqZHN0KysgPSAoZGVjb2Rl ZCAmIDB4RkYpOworQEAgLTY4Nyw3ICs3MDcsMTYgQEAgc3RhdGljIEJZVEUgZHNwX2VuY29kZV9p bWFfYWRwY21fc2FtcGxlKEFEUENNKiBhZHBjbSwgaW50IGNoYW5uZWwsIElOVDE2IHNhbXBsZSkK KyAJSU5UMzIgc3M7CisgCUJZVEUgZW5jOworIAlJTlQzMiBkaWZmOworLQlzcyA9IGltYV9zdGVw X3NpemVfdGFibGVbYWRwY20tPmltYS5sYXN0X3N0ZXBbY2hhbm5lbF1dOworKwlJTlQxNiBvZmZz ZXQ7CisrCisrCVdJTlBSX0FTU0VSVChjaGFubmVsIDwgQVJSQVlTSVpFKGFkcGNtLT5pbWEubGFz dF9zdGVwKSk7CisrCVdJTlBSX0FTU0VSVChjaGFubmVsIDwgQVJSQVlTSVpFKGFkcGNtLT5pbWEu bGFzdF9zYW1wbGUpKTsKKysKKysJb2Zmc2V0ID0gYWRwY20tPmltYS5sYXN0X3N0ZXBbY2hhbm5l bF07CisrCVdJTlBSX0FTU0VSVChvZmZzZXQgPj0gMCk7CisrCVdJTlBSX0FTU0VSVChvZmZzZXQg PCBBUlJBWVNJWkUoaW1hX3N0ZXBfc2l6ZV90YWJsZSkpOworKworKwlzcyA9IGltYV9zdGVwX3Np emVfdGFibGVbb2Zmc2V0XTsKKyAJZCA9IGUgPSBzYW1wbGUgLSBhZHBjbS0+aW1hLmxhc3Rfc2Ft cGxlW2NoYW5uZWxdOworIAlkaWZmID0gc3MgPj4gMzsKKyAJZW5jID0gMDsKK0BAIC03MzMsNiAr NzYyLDggQEAgc3RhdGljIEJZVEUgZHNwX2VuY29kZV9pbWFfYWRwY21fc2FtcGxlKEFEUENNKiBh ZHBjbSwgaW50IGNoYW5uZWwsIElOVDE2IHNhbXBsZSkKKyAJCWRpZmYgPSAzMjc2NzsKKyAKKyAJ YWRwY20tPmltYS5sYXN0X3NhbXBsZVtjaGFubmVsXSA9IChJTlQxNilkaWZmOworKworKwlXSU5Q Ul9BU1NFUlQoZW5jIDwgQVJSQVlTSVpFKGltYV9zdGVwX2luZGV4X3RhYmxlKSk7CisgCWFkcGNt LT5pbWEubGFzdF9zdGVwW2NoYW5uZWxdICs9IGltYV9zdGVwX2luZGV4X3RhYmxlW2VuY107Cisg CisgCWlmIChhZHBjbS0+aW1hLmxhc3Rfc3RlcFtjaGFubmVsXSA8IDApCitAQCAtODQ3LDEwICs4 NzgsMjQgQEAgc3RhdGljIElOTElORSBJTlQxNiBmcmVlcmRwX2RzcF9kZWNvZGVfbXNfYWRwY21f c2FtcGxlKEFEUENNKiBhZHBjbSwgQllURSBzYW1wbGUKKyB7CisgCUlOVDggbmliYmxlOworIAlJ TlQzMiBwcmVzYW1wbGU7CisrCUJZVEUgcHJlZGljdG9yOworKwlJTlQzMiBjb2VmZjEgPSAwOwor KwlJTlQzMiBjb2VmZjIgPSAwOworKworKwlXSU5QUl9BU1NFUlQoY2hhbm5lbCA8IEFSUkFZU0la RShhZHBjbS0+bXMuc2FtcGxlMSkpOworKwlXSU5QUl9BU1NFUlQoY2hhbm5lbCA8IEFSUkFZU0la RShhZHBjbS0+bXMuc2FtcGxlMikpOworKwlXSU5QUl9BU1NFUlQoY2hhbm5lbCA8IEFSUkFZU0la RShhZHBjbS0+bXMuZGVsdGEpKTsKKysJV0lOUFJfQVNTRVJUKGNoYW5uZWwgPCBBUlJBWVNJWkUo YWRwY20tPm1zLnByZWRpY3RvcikpOworKworIAluaWJibGUgPSAoc2FtcGxlICYgMHgwOCA/IChJ TlQ4KXNhbXBsZSAtIDE2IDogKElOVDgpc2FtcGxlKTsKKy0JcHJlc2FtcGxlID0gKChhZHBjbS0+ bXMuc2FtcGxlMVtjaGFubmVsXSAqIG1zX2FkcGNtX2NvZWZmczFbYWRwY20tPm1zLnByZWRpY3Rv cltjaGFubmVsXV0pICsKKy0JICAgICAgICAgICAgIChhZHBjbS0+bXMuc2FtcGxlMltjaGFubmVs XSAqIG1zX2FkcGNtX2NvZWZmczJbYWRwY20tPm1zLnByZWRpY3RvcltjaGFubmVsXV0pKSAvCist CSAgICAgICAgICAgIDI1NjsKKysJcHJlZGljdG9yID0gYWRwY20tPm1zLnByZWRpY3RvcltjaGFu bmVsXTsKKysJaWYgKHByZWRpY3RvciA8IEFSUkFZU0laRShtc19hZHBjbV9jb2VmZnMxKSkKKysJ CWNvZWZmMSA9IG1zX2FkcGNtX2NvZWZmczFbcHJlZGljdG9yXTsKKysKKysJaWYgKHByZWRpY3Rv ciA8IEFSUkFZU0laRShtc19hZHBjbV9jb2VmZnMyKSkKKysJCWNvZWZmMiA9IG1zX2FkcGNtX2Nv ZWZmczJbcHJlZGljdG9yXTsKKysJcHJlc2FtcGxlID0KKysJICAgICgoYWRwY20tPm1zLnNhbXBs ZTFbY2hhbm5lbF0gKiBjb2VmZjEpICsgKGFkcGNtLT5tcy5zYW1wbGUyW2NoYW5uZWxdICogY29l ZmYyKSkgLyAyNTY7CisgCXByZXNhbXBsZSArPSBuaWJibGUgKiBhZHBjbS0+bXMuZGVsdGFbY2hh bm5lbF07CisgCisgCWlmIChwcmVzYW1wbGUgPiAzMjc2NykKK0BAIC04NjAsNyArOTA1LDE0IEBA IHN0YXRpYyBJTkxJTkUgSU5UMTYgZnJlZXJkcF9kc3BfZGVjb2RlX21zX2FkcGNtX3NhbXBsZShB RFBDTSogYWRwY20sIEJZVEUgc2FtcGxlCisgCisgCWFkcGNtLT5tcy5zYW1wbGUyW2NoYW5uZWxd ID0gYWRwY20tPm1zLnNhbXBsZTFbY2hhbm5lbF07CisgCWFkcGNtLT5tcy5zYW1wbGUxW2NoYW5u ZWxdID0gcHJlc2FtcGxlOworLQlhZHBjbS0+bXMuZGVsdGFbY2hhbm5lbF0gPSBhZHBjbS0+bXMu ZGVsdGFbY2hhbm5lbF0gKiBtc19hZHBjbV9hZGFwdGF0aW9uX3RhYmxlW3NhbXBsZV0gLyAyNTY7 CisrCisrCXsKKysJCUlOVDMyIHRhYmxldmFsID0gMDsKKysJCWlmIChzYW1wbGUgPCBBUlJBWVNJ WkUobXNfYWRwY21fYWRhcHRhdGlvbl90YWJsZSkpCisrCQkJdGFibGV2YWwgPSBtc19hZHBjbV9h ZGFwdGF0aW9uX3RhYmxlW3NhbXBsZV07CisrCisrCQlhZHBjbS0+bXMuZGVsdGFbY2hhbm5lbF0g PSBhZHBjbS0+bXMuZGVsdGFbY2hhbm5lbF0gKiB0YWJsZXZhbCAvIDI1NjsKKysJfQorIAorIAlp ZiAoYWRwY20tPm1zLmRlbHRhW2NoYW5uZWxdIDwgMTYpCisgCQlhZHBjbS0+bXMuZGVsdGFbY2hh bm5lbF0gPSAxNjsKK0BAIC04OTEsNiArOTQzLDkgQEAgc3RhdGljIEJPT0wgZnJlZXJkcF9kc3Bf ZGVjb2RlX21zX2FkcGNtKEZSRUVSRFBfRFNQX0NPTlRFWFQqIGNvbnRleHQsIGNvbnN0IEJZVEUK KyAJCXsKKyAJCQlpZiAoY2hhbm5lbHMgPiAxKQorIAkJCXsKKysJCQkJaWYgKHNpemUgPCAxNCkK KysJCQkJCXJldHVybiBGQUxTRTsKKysKKyAJCQkJY29udGV4dC0+YWRwY20ubXMucHJlZGljdG9y WzBdID0gKnNyYysrOworIAkJCQljb250ZXh0LT5hZHBjbS5tcy5wcmVkaWN0b3JbMV0gPSAqc3Jj Kys7CisgCQkJCWNvbnRleHQtPmFkcGNtLm1zLmRlbHRhWzBdID0gcmVhZF9pbnQxNihzcmMpOwor QEAgLTkxNyw2ICs5NzIsOSBAQCBzdGF0aWMgQk9PTCBmcmVlcmRwX2RzcF9kZWNvZGVfbXNfYWRw Y20oRlJFRVJEUF9EU1BfQ09OVEVYVCogY29udGV4dCwgY29uc3QgQllURQorIAkJCX0KKyAJCQll bHNlCisgCQkJeworKwkJCQlpZiAoc2l6ZSA8IDcpCisrCQkJCQlyZXR1cm4gRkFMU0U7CisrCisg CQkJCWNvbnRleHQtPmFkcGNtLm1zLnByZWRpY3RvclswXSA9ICpzcmMrKzsKKyAJCQkJY29udGV4 dC0+YWRwY20ubXMuZGVsdGFbMF0gPSByZWFkX2ludDE2KHNyYyk7CisgCQkJCXNyYyArPSAyOwor QEAgLTkzNCwxMiArOTkyLDE2IEBAIHN0YXRpYyBCT09MIGZyZWVyZHBfZHNwX2RlY29kZV9tc19h ZHBjbShGUkVFUkRQX0RTUF9DT05URVhUKiBjb250ZXh0LCBjb25zdCBCWVRFCisgCisgCQlpZiAo Y2hhbm5lbHMgPiAxKQorIAkJeworKwkJCWlmIChzaXplIDwgMSkKKysJCQkJcmV0dXJuIEZBTFNF OworIAkJCXNhbXBsZSA9ICpzcmMrKzsKKyAJCQlzaXplLS07CisgCQkJd3JpdGVfaW50MTYoZHN0 LCBmcmVlcmRwX2RzcF9kZWNvZGVfbXNfYWRwY21fc2FtcGxlKCZjb250ZXh0LT5hZHBjbSwgc2Ft cGxlID4+IDQsIDApKTsKKyAJCQlkc3QgKz0gMjsKKyAJCQl3cml0ZV9pbnQxNihkc3QsIGZyZWVy ZHBfZHNwX2RlY29kZV9tc19hZHBjbV9zYW1wbGUoJmNvbnRleHQtPmFkcGNtLCBzYW1wbGUgJiAw eDBGLCAxKSk7CisgCQkJZHN0ICs9IDI7CisrCQkJaWYgKHNpemUgPCAxKQorKwkJCQlyZXR1cm4g RkFMU0U7CisgCQkJc2FtcGxlID0gKnNyYysrOworIAkJCXNpemUtLTsKKyAJCQl3cml0ZV9pbnQx Nihkc3QsIGZyZWVyZHBfZHNwX2RlY29kZV9tc19hZHBjbV9zYW1wbGUoJmNvbnRleHQtPmFkcGNt LCBzYW1wbGUgPj4gNCwgMCkpOworQEAgLTk0OSw2ICsxMDExLDggQEAgc3RhdGljIEJPT0wgZnJl ZXJkcF9kc3BfZGVjb2RlX21zX2FkcGNtKEZSRUVSRFBfRFNQX0NPTlRFWFQqIGNvbnRleHQsIGNv bnN0IEJZVEUKKyAJCX0KKyAJCWVsc2UKKyAJCXsKKysJCQlpZiAoc2l6ZSA8IDEpCisrCQkJCXJl dHVybiBGQUxTRTsKKyAJCQlzYW1wbGUgPSAqc3JjKys7CisgCQkJc2l6ZS0tOworIAkJCXdyaXRl X2ludDE2KGRzdCwgZnJlZXJkcF9kc3BfZGVjb2RlX21zX2FkcGNtX3NhbXBsZSgmY29udGV4dC0+ YWRwY20sIHNhbXBsZSA+PiA0LCAwKSk7CitAQCAtOTYyLDEwICsxMDI2LDE2IEBAIHN0YXRpYyBC T09MIGZyZWVyZHBfZHNwX2RlY29kZV9tc19hZHBjbShGUkVFUkRQX0RTUF9DT05URVhUKiBjb250 ZXh0LCBjb25zdCBCWVRFCisgCXJldHVybiBUUlVFOworIH0KKyAKKy1zdGF0aWMgQllURSBmcmVl cmRwX2RzcF9lbmNvZGVfbXNfYWRwY21fc2FtcGxlKEFEUENNKiBhZHBjbSwgSU5UMzIgc2FtcGxl LCBpbnQgY2hhbm5lbCkKKytzdGF0aWMgQllURSBmcmVlcmRwX2RzcF9lbmNvZGVfbXNfYWRwY21f c2FtcGxlKEFEUENNKiBhZHBjbSwgSU5UMzIgc2FtcGxlLCBzaXplX3QgY2hhbm5lbCkKKyB7Cisg CUlOVDMyIHByZXNhbXBsZTsKKyAJSU5UMzIgZXJyb3JkZWx0YTsKKysKKysJV0lOUFJfQVNTRVJU KGNoYW5uZWwgPCBBUlJBWVNJWkUoYWRwY20tPm1zLnNhbXBsZTEpKTsKKysJV0lOUFJfQVNTRVJU KGNoYW5uZWwgPCBBUlJBWVNJWkUoYWRwY20tPm1zLnNhbXBsZTIpKTsKKysJV0lOUFJfQVNTRVJU KGNoYW5uZWwgPCBBUlJBWVNJWkUoYWRwY20tPm1zLmRlbHRhKSk7CisrCVdJTlBSX0FTU0VSVChj aGFubmVsIDwgQVJSQVlTSVpFKGFkcGNtLT5tcy5wcmVkaWN0b3IpKTsKKysKKyAJcHJlc2FtcGxl ID0gKChhZHBjbS0+bXMuc2FtcGxlMVtjaGFubmVsXSAqIG1zX2FkcGNtX2NvZWZmczFbYWRwY20t Pm1zLnByZWRpY3RvcltjaGFubmVsXV0pICsKKyAJICAgICAgICAgICAgIChhZHBjbS0+bXMuc2Ft cGxlMltjaGFubmVsXSAqIG1zX2FkcGNtX2NvZWZmczJbYWRwY20tPm1zLnByZWRpY3RvcltjaGFu bmVsXV0pKSAvCisgCSAgICAgICAgICAgIDI1NjsKK0BAIC05ODgsOCArMTA1OCwxMSBAQCBzdGF0 aWMgQllURSBmcmVlcmRwX2RzcF9lbmNvZGVfbXNfYWRwY21fc2FtcGxlKEFEUENNKiBhZHBjbSwg SU5UMzIgc2FtcGxlLCBpbnQgYworIAorIAlhZHBjbS0+bXMuc2FtcGxlMltjaGFubmVsXSA9IGFk cGNtLT5tcy5zYW1wbGUxW2NoYW5uZWxdOworIAlhZHBjbS0+bXMuc2FtcGxlMVtjaGFubmVsXSA9 IHByZXNhbXBsZTsKKy0JYWRwY20tPm1zLmRlbHRhW2NoYW5uZWxdID0KKy0JICAgIGFkcGNtLT5t cy5kZWx0YVtjaGFubmVsXSAqIG1zX2FkcGNtX2FkYXB0YXRpb25fdGFibGVbKCgoQllURSllcnJv cmRlbHRhKSAmIDB4MEYpXSAvIDI1NjsKKysJeworKwkJY29uc3Qgc2l6ZV90IG9mZnNldCA9ICgo KEJZVEUpZXJyb3JkZWx0YSkgJiAweDBGKTsKKysJCVdJTlBSX0FTU0VSVChvZmZzZXQgPCBBUlJB WVNJWkUobXNfYWRwY21fYWRhcHRhdGlvbl90YWJsZSkpOworKwkJYWRwY20tPm1zLmRlbHRhW2No YW5uZWxdID0gYWRwY20tPm1zLmRlbHRhW2NoYW5uZWxdICogbXNfYWRwY21fYWRhcHRhdGlvbl90 YWJsZVtvZmZzZXRdIC8gMjU2OworKwl9CisgCisgCWlmIChhZHBjbS0+bXMuZGVsdGFbY2hhbm5l bF0gPCAxNikKKyAJCWFkcGNtLT5tcy5kZWx0YVtjaGFubmVsXSA9IDE2OworLS0gCisyLjUzLjAK KwoKZGlmZiAtLWdpdCBhL2NvZGVjLW5zYy1maXgtdXNlLW9mLW5zY19wcm9jZXNzX21lc3NhZ2Uu cGF0Y2ggYi9jb2RlYy1uc2MtZml4LXVzZS1vZi1uc2NfcHJvY2Vzc19tZXNzYWdlLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjNWVhNjQKLS0tIC9kZXYvbnVsbAor KysgYi9jb2RlYy1uc2MtZml4LXVzZS1vZi1uc2NfcHJvY2Vzc19tZXNzYWdlLnBhdGNoCkBAIC0w LDAgKzEsOTAgQEAKK0Zyb20gMjFjYjBlMmI5NmU0ZTg2YjRlZDhiN2E3NmQ4MTk4MDhiODk4ZTkz ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRo YXQuY29tPgorRGF0ZTogVHVlLCAzMSBNYXIgMjAyNiAwNzowODowNCArMDIwMAorU3ViamVjdDog W1BBVENIXSBbY29kZWMsbnNjXSBmaXggdXNlIG9mIG5zY19wcm9jZXNzX21lc3NhZ2UKKworQmFj a3BvcnQgb2YgY29tbWl0IDE2OTk3MTYwN2NlY2U0ODM4NGNiOTQ2MzJiODI5YmQ1NzMzNmFmMGYu CisKK01hZGUtd2l0aDogQ3Vyc29yCistLS0KKyBsaWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMgfCAx MCArKysrKystLS0tCisgbGliZnJlZXJkcC9jb2RlYy9uc2MuYyAgIHwgIDkgKysrKysrKystCisg bGliZnJlZXJkcC9nZGkvZ2RpLmMgICAgIHwgIDQgKystLQorIDMgZmlsZXMgY2hhbmdlZCwgMTYg aW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZyZWVyZHAv Y29kZWMvY2xlYXIuYyBiL2xpYmZyZWVyZHAvY29kZWMvY2xlYXIuYworaW5kZXggNGRiZTcyMzc2 Li42NjI3YjIxZDYgMTAwNjQ0CistLS0gYS9saWJmcmVlcmRwL2NvZGVjL2NsZWFyLmMKKysrKyBi L2xpYmZyZWVyZHAvY29kZWMvY2xlYXIuYworQEAgLTEwMyw3ICsxMDMsOCBAQCBzdGF0aWMgQk9P TCBjb252ZXJ0X2NvbG9yKEJZVEUqIGRzdCwgVUlOVDMyIG5Ec3RTdGVwLCBVSU5UMzIgRHN0Rm9y bWF0LCBVSU5UMzIgbgorIAorIHN0YXRpYyBCT09MIGNsZWFyX2RlY29tcHJlc3NfbnNjb2RlYyhO U0NfQ09OVEVYVCogbnNjLCBVSU5UMzIgd2lkdGgsIFVJTlQzMiBoZWlnaHQsIHdTdHJlYW0qIHMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJTlQzMiBiaXRtYXBEYXRh Qnl0ZUNvdW50LCBCWVRFKiBwRHN0RGF0YSwgVUlOVDMyIERzdEZvcm1hdCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVUlOVDMyIG5Ec3RTdGVwLCBVSU5UMzIgblhEc3RS ZWwsIFVJTlQzMiBuWURzdFJlbCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVUlOVDMyIG5Ec3RTdGVwLCBVSU5UMzIgblhEc3RSZWwsIFVJTlQzMiBuWURzdFJlbCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUlOVDMyIG5Ec3RXaWR0aCwgVUlO VDMyIG5Ec3RIZWlnaHQpCisgeworIAlCT09MIHJjOworIAorQEAgLTExNSw4ICsxMTYsOCBAQCBz dGF0aWMgQk9PTCBjbGVhcl9kZWNvbXByZXNzX25zY29kZWMoTlNDX0NPTlRFWFQqIG5zYywgVUlO VDMyIHdpZHRoLCBVSU5UMzIgaGVpZworIAl9CisgCisgCXJjID0gbnNjX3Byb2Nlc3NfbWVzc2Fn ZShuc2MsIDMyLCB3aWR0aCwgaGVpZ2h0LCBTdHJlYW1fUG9pbnRlcihzKSwgYml0bWFwRGF0YUJ5 dGVDb3VudCwKKy0JICAgICAgICAgICAgICAgICAgICAgICAgIHBEc3REYXRhLCBEc3RGb3JtYXQs IG5Ec3RTdGVwLCBuWERzdFJlbCwgbllEc3RSZWwsIHdpZHRoLCBoZWlnaHQsCistCSAgICAgICAg ICAgICAgICAgICAgICAgICBGUkVFUkRQX0ZMSVBfTk9ORSk7CisrCSAgICAgICAgICAgICAgICAg ICAgICAgICBwRHN0RGF0YSwgRHN0Rm9ybWF0LCBuRHN0U3RlcCwgblhEc3RSZWwsIG5ZRHN0UmVs LCBuRHN0V2lkdGgsCisrCSAgICAgICAgICAgICAgICAgICAgICAgICBuRHN0SGVpZ2h0LCBGUkVF UkRQX0ZMSVBfTk9ORSk7CisgCVN0cmVhbV9TZWVrKHMsIGJpdG1hcERhdGFCeXRlQ291bnQpOwor IAlyZXR1cm4gcmM7CisgfQorQEAgLTUzNSw3ICs1MzYsOCBAQCBzdGF0aWMgQk9PTCBjbGVhcl9k ZWNvbXByZXNzX3N1YmNvZGVjc19kYXRhKENMRUFSX0NPTlRFWFQqIGNsZWFyLCB3U3RyZWFtKiBz LAorIAorIAkJCWNhc2UgMTogLyogTlNDb2RlYyAqLworIAkJCQlpZiAoIWNsZWFyX2RlY29tcHJl c3NfbnNjb2RlYyhjbGVhci0+bnNjLCB3aWR0aCwgaGVpZ2h0LCBzLCBiaXRtYXBEYXRhQnl0ZUNv dW50LAorLQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwRHN0RGF0YSwgRHN0Rm9y bWF0LCBuRHN0U3RlcCwgblhEc3RSZWwsIG5ZRHN0UmVsKSkKKysJCQkJICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcERzdERhdGEsIERzdEZvcm1hdCwgbkRzdFN0ZXAsIG5YRHN0UmVsLCBu WURzdFJlbCwKKysJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbkRzdFdpZHRoLCBu RHN0SGVpZ2h0KSkKKyAJCQkJCXJldHVybiBGQUxTRTsKKyAKKyAJCQkJYnJlYWs7CitkaWZmIC0t Z2l0IGEvbGliZnJlZXJkcC9jb2RlYy9uc2MuYyBiL2xpYmZyZWVyZHAvY29kZWMvbnNjLmMKK2lu ZGV4IGEyNTdhZTI0YS4uZjUwYTFhZTg5IDEwMDY0NAorLS0tIGEvbGliZnJlZXJkcC9jb2RlYy9u c2MuYworKysrIGIvbGliZnJlZXJkcC9jb2RlYy9uc2MuYworQEAgLTQ0NywxMCArNDQ3LDE3IEBA IEJPT0wgbnNjX3Byb2Nlc3NfbWVzc2FnZShOU0NfQ09OVEVYVCogY29udGV4dCwgVUlOVDE2IGJw cCwgVUlOVDMyIHdpZHRoLCBVSU5UMzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVUlOVDMy IG5Ec3RTdHJpZGUsIFVJTlQzMiBuWERzdCwgVUlOVDMyIG5ZRHN0LCBVSU5UMzIgbldpZHRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBVSU5UMzIgbkhlaWdodCwgVUlOVDMyIGZsaXApCisg eworKwlXSU5QUl9BU1NFUlQoY29udGV4dCk7CisrCVdJTlBSX0FTU0VSVChjb250ZXh0LT5wcml2 KTsKKysKKyAJd1N0cmVhbSogczsKKyAJQk9PTCByZXQ7CistCWlmICghY29udGV4dCB8fCAhZGF0 YSB8fCAhcERzdERhdGEpCisrCWlmICghZGF0YSB8fCAhcERzdERhdGEpCisrCXsKKysJCVdMb2df UHJpbnQoY29udGV4dC0+cHJpdi0+bG9nLCBXTE9HX0VSUk9SLCAiSW52YWxpZCBhcmd1bWVudDog ZGF0YT0lcCwgcERzdERhdGE9JXAiLAorKwkJICAgICAgICAgICAoY29uc3Qgdm9pZCopZGF0YSwg KHZvaWQqKXBEc3REYXRhKTsKKyAJCXJldHVybiBGQUxTRTsKKysJfQorIAorIAlzID0gU3RyZWFt X05ldygoQllURSopZGF0YSwgbGVuZ3RoKTsKKyAKK2RpZmYgLS1naXQgYS9saWJmcmVlcmRwL2dk aS9nZGkuYyBiL2xpYmZyZWVyZHAvZ2RpL2dkaS5jCitpbmRleCAzN2EwMTA0MzEuLjhjNWU0YmYz NCAxMDA2NDQKKy0tLSBhL2xpYmZyZWVyZHAvZ2RpL2dkaS5jCisrKysgYi9saWJmcmVlcmRwL2dk aS9nZGkuYworQEAgLTEwNzQsOCArMTA3NCw4IEBAIHN0YXRpYyBCT09MIGdkaV9zdXJmYWNlX2Jp dHMocmRwQ29udGV4dCogY29udGV4dCwgY29uc3QgU1VSRkFDRV9CSVRTX0NPTU1BTkQqIGNtCisg CQkJaWYgKCFuc2NfcHJvY2Vzc19tZXNzYWdlKAorIAkJCSAgICAgICAgY29udGV4dC0+Y29kZWNz LT5uc2MsIGNtZC0+Ym1wLmJwcCwgY21kLT5ibXAud2lkdGgsIGNtZC0+Ym1wLmhlaWdodCwKKyAJ CQkgICAgICAgIGNtZC0+Ym1wLmJpdG1hcERhdGEsIGNtZC0+Ym1wLmJpdG1hcERhdGFMZW5ndGgs IGdkaS0+cHJpbWFyeV9idWZmZXIsIGZvcm1hdCwKKy0JCQkgICAgICAgIGdkaS0+c3RyaWRlLCBj bWRSZWN0LmxlZnQsIGNtZFJlY3QudG9wLCBjbWRSZWN0LnJpZ2h0IC0gY21kUmVjdC5sZWZ0LAor LQkJCSAgICAgICAgY21kUmVjdC5ib3R0b20gLSBjbWRSZWN0LnRvcCwgRlJFRVJEUF9GTElQX1ZF UlRJQ0FMKSkKKysJCQkgICAgICAgIGdkaS0+c3RyaWRlLCBjbWRSZWN0LmxlZnQsIGNtZFJlY3Qu dG9wLCAoVUlOVDMyKWdkaS0+d2lkdGgsIChVSU5UMzIpZ2RpLT5oZWlnaHQsCisrCQkJICAgICAg ICBGUkVFUkRQX0ZMSVBfVkVSVElDQUwpKQorIAkJCXsKKyAJCQkJV0xvZ19FUlIoVEFHLCAiRmFp bGVkIHRvIHByb2Nlc3MgTlNDb2RlYyBtZXNzYWdlIik7CisgCQkJCWdvdG8gb3V0OworLS0gCisy LjUzLjAKKwoKZGlmZiAtLWdpdCBhL2NvZGVjLW5zYy1saW1pdC1jb3B5LWFyZWEtaW4tbnNjX3By b2Nlc3NfbWVzc2FnZS5wYXRjaCBiL2NvZGVjLW5zYy1saW1pdC1jb3B5LWFyZWEtaW4tbnNjX3By b2Nlc3NfbWVzc2FnZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y MDQ3ZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvY29kZWMtbnNjLWxpbWl0LWNvcHktYXJlYS1pbi1u c2NfcHJvY2Vzc19tZXNzYWdlLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20gOWE5ZTAwNTI5 YjFiMDQ3MTgzNzBhMWQ4ZTJkOGI2NzY4YzllZTkxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTogTW9uLCAxNiBNYXIg MjAyNiAxNDo1OToxMiArMDEwMAorU3ViamVjdDogW1BBVENIXSBbY29kZWMsbnNjXSBsaW1pdCBj b3B5IGFyZWEgaW4gbnNjX3Byb2Nlc3NfbWVzc2FnZQorCitCYWNrcG9ydCBvZiBjb21taXQgODNk OWFlZGVhMjc4YTc0YWYzZTQ5MGZmNWVlYjg4OWMwMTZkYmIyYi4KKworTWFkZS13aXRoOiBDdXJz b3IKKy0tLQorIGxpYmZyZWVyZHAvY29kZWMvbnNjLmMgfCAxMSArKysrKysrKysrLQorIDEgZmls ZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQg YS9saWJmcmVlcmRwL2NvZGVjL25zYy5jIGIvbGliZnJlZXJkcC9jb2RlYy9uc2MuYworaW5kZXgg NWRkMjY0NmVhLi5hMjU3YWUyNGEgMTAwNjQ0CistLS0gYS9saWJmcmVlcmRwL2NvZGVjL25zYy5j CisrKysgYi9saWJmcmVlcmRwL2NvZGVjL25zYy5jCitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNs dWRlICJjb25maWcuaCIKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1 ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUgPHN0ZGxpYi5oPgorICNpbmNsdWRlIDxzdHJpbmcuaD4K K0BAIC01MTUsNyArNTE2LDE1IEBAIEJPT0wgbnNjX3Byb2Nlc3NfbWVzc2FnZShOU0NfQ09OVEVY VCogY29udGV4dCwgVUlOVDE2IGJwcCwgVUlOVDMyIHdpZHRoLCBVSU5UMzIKKyAJCQlyZXR1cm4g RkFMU0U7CisgCX0KKyAKKy0JaWYgKCFmcmVlcmRwX2ltYWdlX2NvcHkocERzdERhdGEsIERzdEZv cm1hdCwgbkRzdFN0cmlkZSwgblhEc3QsIG5ZRHN0LCB3aWR0aCwgaGVpZ2h0LAorKwl1aW50MzJf dCBjd2lkdGggPSB3aWR0aDsKKysJaWYgKDF1bGwgKiBuWERzdCArIHdpZHRoID4gbldpZHRoKQor KwkJY3dpZHRoID0gbldpZHRoIC0gblhEc3Q7CisrCisrCXVpbnQzMl90IGNoZWlnaHQgPSBoZWln aHQ7CisrCWlmICgxdWxsICogbllEc3QgKyBoZWlnaHQgPiBuSGVpZ2h0KQorKwkJY2hlaWdodCA9 IG5IZWlnaHQgLSBuWURzdDsKKysKKysJaWYgKCFmcmVlcmRwX2ltYWdlX2NvcHkocERzdERhdGEs IERzdEZvcm1hdCwgbkRzdFN0cmlkZSwgblhEc3QsIG5ZRHN0LCBjd2lkdGgsIGNoZWlnaHQsCisg CSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPkJpdG1hcERhdGEsIFBJWEVMX0ZPUk1B VF9CR1JBMzIsIDAsIDAsIDAsIE5VTEwsIGZsaXApKQorIAkJcmV0dXJuIEZBTFNFOworIAorLS0g CisyLjUzLjAKKwoKZGlmZiAtLWdpdCBhL2NvZGVjLXBsYW5hci1maXgtYm91bmRzLWNoZWNrcy5w YXRjaCBiL2NvZGVjLXBsYW5hci1maXgtYm91bmRzLWNoZWNrcy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTUwOTkyCi0tLSAvZGV2L251bGwKKysrIGIvY29kZWMt cGxhbmFyLWZpeC1ib3VuZHMtY2hlY2tzLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gNGI5 Mzk0NWNmNWY5Yjg1ZDE3NzA1ZDAzODk1NWVlNTljNGI2NjlhMCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEFybWluIE5vdmFrIDxhcm1pbi5ub3Zha0B0aGluY2FzdC5jb20+CitEYXRl OiBUaHUsIDMwIEFwciAyMDI2IDE1OjAzOjIxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjb2Rl YyxwbGFuYXJdIGZpeCBib3VuZHMgY2hlY2tzCisKKy0tLQorIGxpYmZyZWVyZHAvY29kZWMvcGxh bmFyLmMgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbGliZnJlZXJkcC9jb2RlYy9wbGFuYXIuYyBiL2xpYmZy ZWVyZHAvY29kZWMvcGxhbmFyLmMKK2luZGV4IDliNGQxMzA1Ny4uNjdmYzQyMTJlIDEwMDY0NAor LS0tIGEvbGliZnJlZXJkcC9jb2RlYy9wbGFuYXIuYworKysrIGIvbGliZnJlZXJkcC9jb2RlYy9w bGFuYXIuYworQEAgLTg0MSwxMiArODQxLDEyIEBAIEJPT0wgcGxhbmFyX2RlY29tcHJlc3MoQklU TUFQX1BMQU5BUl9DT05URVhUKiBwbGFuYXIsIGNvbnN0IEJZVEUqIHBTcmNEYXRhLCBVSU5UCisg CQkJCXJldHVybiBGQUxTRTsKKyAJCQl9CisgCistCQkJaWYgKChuWERzdCArIG5TcmNXaWR0aCkg KiBicHAgPiBuRHN0U3RlcCkKKysJCQlpZiAoKG5YRHN0ICsgblNyY1dpZHRoKSAqIGJwcCA+IG5U ZW1wU3RlcCkKKyAJCQl7CisgCQkJCVdMb2dfRVJSKFRBRywKKyAJCQkJICAgICAgICAgInBsYW5h ciBwbGFuZSBkZXN0aW5hdGlvbiAoWCAlIiBQUkl1MzIgIiArIHdpZHRoICUiIFBSSXUzMgorIAkJ CQkgICAgICAgICAiKSAqIGJwcCAlIiBQUkl1MzIgIiBleGNlZWRzIHN0cmlkZSAlIiBQUkl1MzIs CistCQkJCSAgICAgICAgIG5YRHN0LCBuU3JjV2lkdGgsIGJwcCwgbkRzdFN0ZXApOworKwkJCQkg ICAgICAgICBuWERzdCwgblNyY1dpZHRoLCBicHAsIG5UZW1wU3RlcCk7CisgCQkJCXJldHVybiBG QUxTRTsKKyAJCQl9CisgCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEvY29kZWMtcGxhbmFy LWZpeC1kZWNvZGVyLWxlbmd0aC1jaGVja3MucGF0Y2ggYi9jb2RlYy1wbGFuYXItZml4LWRlY29k ZXItbGVuZ3RoLWNoZWNrcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5hOGQyYzk5Ci0tLSAvZGV2L251bGwKKysrIGIvY29kZWMtcGxhbmFyLWZpeC1kZWNvZGVyLWxl bmd0aC1jaGVja3MucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorRnJvbSAyZDY1NmViNmIyOWE2OGRl N2YxOWU4YTFjY2UxNjkyNTllNzUwNmI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog T25kcmVqIEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDI3IEphbiAyMDI2IDE0 OjM1OjQzICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjb2RlYyxwbGFuYXJdIGZpeCBkZWNvZGVy IGxlbmd0aCBjaGVja3MKKworQmFja3BvcnQgb2YgY29tbWl0IDFiYWIxOThhMmVkZDBkMGU2ZTE2 MjdkMjFhNDMzMTUxZWExOTAuCisKK0NvLUF1dGhvcmVkLUJ5OiBDbGF1ZGUgPG5vcmVwbHlAYW50 aHJvcGljLmNvbT4KKy0tLQorIGxpYmZyZWVyZHAvY29kZWMvcGxhbmFyLmMgfCA1ICsrKysrCisg MSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvbGliZnJlZXJk cC9jb2RlYy9wbGFuYXIuYyBiL2xpYmZyZWVyZHAvY29kZWMvcGxhbmFyLmMKK2luZGV4IGZlMjcw MTFlMS4uMWNiMmUyMmJjIDEwMDY0NAorLS0tIGEvbGliZnJlZXJkcC9jb2RlYy9wbGFuYXIuYwor KysrIGIvbGliZnJlZXJkcC9jb2RlYy9wbGFuYXIuYworQEAgLTYxNiw2ICs2MTYsMTEgQEAgQk9P TCBwbGFuYXJfZGVjb21wcmVzcyhCSVRNQVBfUExBTkFSX0NPTlRFWFQqIHBsYW5hciwgY29uc3Qg QllURSogcFNyY0RhdGEsIFVJTlQKKyAJV0lOUFJfQVNTRVJUKHBsYW5hcik7CisgCVdJTlBSX0FT U0VSVChwcmltcyk7CisgCisrCWlmIChwbGFuYXItPm1heFdpZHRoIDwgblNyY1dpZHRoKQorKwkJ cmV0dXJuIEZBTFNFOworKwlpZiAocGxhbmFyLT5tYXhIZWlnaHQgPCBuU3JjSGVpZ2h0KQorKwkJ cmV0dXJuIEZBTFNFOworKworIAlpZiAobkRzdFN0ZXAgPD0gMCkKKyAJCW5Ec3RTdGVwID0gbkRz dFdpZHRoICogR2V0Qnl0ZXNQZXJQaXhlbChEc3RGb3JtYXQpOworIAorLS0gCisyLjUyLjAKKwoK ZGlmZiAtLWdpdCBhL2NvZGVjLXBsYW5hci1maXgtbWlzc2luZy1kZXN0aW5hdGlvbi1ib3VuZHMt Y2hlY2tzLnBhdGNoIGIvY29kZWMtcGxhbmFyLWZpeC1taXNzaW5nLWRlc3RpbmF0aW9uLWJvdW5k cy1jaGVja3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZjYzdk YwotLS0gL2Rldi9udWxsCisrKyBiL2NvZGVjLXBsYW5hci1maXgtbWlzc2luZy1kZXN0aW5hdGlv bi1ib3VuZHMtY2hlY2tzLnBhdGNoCkBAIC0wLDAgKzEsNTUgQEAKK0Zyb20gZWNhOGExYTg3NmI3 N2RlNWRhNjBiMTg3OTNlMzVlNWMwNzE0ZWY5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTogTW9uLCA5IE1hciAyMDI2 IDEyOjU2OjExICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjb2RlYyxwbGFuYXJdOiBmaXggbWlz c2luZyBkZXN0aW5hdGlvbiBib3VuZHMgY2hlY2tzCisKK0JhY2twb3J0IG9mIGNvbW1pdCBhMGJl NWNiODdkNzYwYmIxYzgwM2FkMWJiODM1YWExZTczZTYyYWJjLgorCitNYWRlLXdpdGg6IEN1cnNv cgorLS0tCisgbGliZnJlZXJkcC9jb2RlYy9wbGFuYXIuYyB8IDIxICsrKysrKysrKysrKysrKysr KysrLQorIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisK K2RpZmYgLS1naXQgYS9saWJmcmVlcmRwL2NvZGVjL3BsYW5hci5jIGIvbGliZnJlZXJkcC9jb2Rl Yy9wbGFuYXIuYworaW5kZXggMWNiMmUyMmJjLi45YjRkMTMwNTcgMTAwNjQ0CistLS0gYS9saWJm cmVlcmRwL2NvZGVjL3BsYW5hci5jCisrKysgYi9saWJmcmVlcmRwL2NvZGVjL3BsYW5hci5jCitA QCAtNjIxLDggKzYyMSw5IEBAIEJPT0wgcGxhbmFyX2RlY29tcHJlc3MoQklUTUFQX1BMQU5BUl9D T05URVhUKiBwbGFuYXIsIGNvbnN0IEJZVEUqIHBTcmNEYXRhLCBVSU5UCisgCWlmIChwbGFuYXIt Pm1heEhlaWdodCA8IG5TcmNIZWlnaHQpCisgCQlyZXR1cm4gRkFMU0U7CisgCisrCWNvbnN0IFVJ TlQzMiBicHAgPSBHZXRCeXRlc1BlclBpeGVsKERzdEZvcm1hdCk7CisgCWlmIChuRHN0U3RlcCA8 PSAwKQorLQkJbkRzdFN0ZXAgPSBuRHN0V2lkdGggKiBHZXRCeXRlc1BlclBpeGVsKERzdEZvcm1h dCk7CisrCQluRHN0U3RlcCA9IG5Ec3RXaWR0aCAqIGJwcDsKKyAKKyAJc3JjcCA9IHBTcmNEYXRh OworIAorQEAgLTgzMSw2ICs4MzIsMjQgQEAgQk9PTCBwbGFuYXJfZGVjb21wcmVzcyhCSVRNQVBf UExBTkFSX0NPTlRFWFQqIHBsYW5hciwgY29uc3QgQllURSogcFNyY0RhdGEsIFVJTlQKKyAJCX0K KyAJCWVsc2UgLyogUkxFICovCisgCQl7CisrCQkJaWYgKG5ZRHN0ICsgblNyY0hlaWdodCA+IG5U b3RhbEhlaWdodCkKKysJCQl7CisrCQkJCVdMb2dfRVJSKFRBRywKKysJCQkJICAgICAgICAgInBs YW5hciBwbGFuZSBkZXN0aW5hdGlvbiBZICUiIFBSSXUzMiAiICsgaGVpZ2h0ICUiIFBSSXUzMgor KwkJCQkgICAgICAgICAiIGV4Y2VlZHMgdG90YWxIZWlnaHQgJSIgUFJJdTMyLAorKwkJCQkgICAg ICAgICBuWURzdCwgblNyY0hlaWdodCwgblRvdGFsSGVpZ2h0KTsKKysJCQkJcmV0dXJuIEZBTFNF OworKwkJCX0KKysKKysJCQlpZiAoKG5YRHN0ICsgblNyY1dpZHRoKSAqIGJwcCA+IG5Ec3RTdGVw KQorKwkJCXsKKysJCQkJV0xvZ19FUlIoVEFHLAorKwkJCQkgICAgICAgICAicGxhbmFyIHBsYW5l IGRlc3RpbmF0aW9uIChYICUiIFBSSXUzMiAiICsgd2lkdGggJSIgUFJJdTMyCisrCQkJCSAgICAg ICAgICIpICogYnBwICUiIFBSSXUzMiAiIGV4Y2VlZHMgc3RyaWRlICUiIFBSSXUzMiwKKysJCQkJ ICAgICAgICAgblhEc3QsIG5TcmNXaWR0aCwgYnBwLCBuRHN0U3RlcCk7CisrCQkJCXJldHVybiBG QUxTRTsKKysJCQl9CisrCisgCQkJc3RhdHVzID0KKyAJCQkgICAgcGxhbmFyX2RlY29tcHJlc3Nf cGxhbmVfcmxlKHBsYW5lc1swXSwgcmxlU2l6ZXNbMF0sIHBUZW1wRGF0YSwgblRlbXBTdGVwLCBu WERzdCwKKyAJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ZRHN0LCBuU3JjV2lk dGgsIG5TcmNIZWlnaHQsIDIsIHZGbGlwKTsgLyogUmVkUGxhbmUgKi8KKy0tIAorMi41My4wCisK CmRpZmYgLS1naXQgYS9jb2RlYy1wcm9ncmVzc2l2ZS1mYWlsLXByb2dyZXNzaXZlX3JmeF9xdWFu dF9zdWItb24taW52YWxpZC12YWx1ZXMucGF0Y2ggYi9jb2RlYy1wcm9ncmVzc2l2ZS1mYWlsLXBy b2dyZXNzaXZlX3JmeF9xdWFudF9zdWItb24taW52YWxpZC12YWx1ZXMucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YwMjQxNwotLS0gL2Rldi9udWxsCisrKyBiL2Nv ZGVjLXByb2dyZXNzaXZlLWZhaWwtcHJvZ3Jlc3NpdmVfcmZ4X3F1YW50X3N1Yi1vbi1pbnZhbGlk LXZhbHVlcy5wYXRjaApAQCAtMCwwICsxLDg5IEBACitGcm9tIDc4MTg4YWI0NzljOGU2ZWI5YmEy NDc1YjM3MzJjNzZiNGJiZTU0MjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRy ZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMTMgQXByIDIwMjYgMTQ6MDA6 MDAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2NvZGVjLHByb2dyZXNzaXZlXSBGYWlsIHByb2dy ZXNzaXZlX3JmeF9xdWFudF9zdWIgb24gaW52YWxpZAorIHZhbHVlcworCitCYWNrcG9ydCBvZiBj b21taXQgNzgxODhhYjQ3OWM4ZTZlYjliYTI0NzViMzczMmM3NmI0YmJlNTQyNS4KKworTWFkZS13 aXRoOiBDdXJzb3IKKy0tLQorIGxpYmZyZWVyZHAvY29kZWMvcHJvZ3Jlc3NpdmUuYyB8IDQyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMzggaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZyZWVyZHAvY29k ZWMvcHJvZ3Jlc3NpdmUuYyBiL2xpYmZyZWVyZHAvY29kZWMvcHJvZ3Jlc3NpdmUuYworaW5kZXgg ODg5NGIzNS4uYmJjYzkyMSAxMDA2NDQKKy0tLSBhL2xpYmZyZWVyZHAvY29kZWMvcHJvZ3Jlc3Np dmUuYworKysrIGIvbGliZnJlZXJkcC9jb2RlYy9wcm9ncmVzc2l2ZS5jCitAQCAtMTU1LDIwICsx NTUsNTEgQEAgc3RhdGljIElOTElORSB2b2lkIHByb2dyZXNzaXZlX3JmeF9xdWFudF9sc3ViKFJG WF9DT01QT05FTlRfQ09ERUNfUVVBTlQqIHEsIGludAorIAlxLT5MTDMgLT0gdmFsOyAvKiBMTDMg Ki8KKyB9CisgCistc3RhdGljIElOTElORSB2b2lkIHByb2dyZXNzaXZlX3JmeF9xdWFudF9zdWIo Y29uc3QgUkZYX0NPTVBPTkVOVF9DT0RFQ19RVUFOVCogcTEsCisrc3RhdGljIElOTElORSBCT09M IHByb2dyZXNzaXZlX3JmeF9xdWFudF9zdWIoY29uc3QgUkZYX0NPTVBPTkVOVF9DT0RFQ19RVUFO VCogcTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgUkZYX0NPTVBPTkVOVF9DT0RFQ19RVUFOVCogcTIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUkZYX0NPTVBPTkVOVF9DT0RFQ19RVUFOVCogZHN0KQor IHsKKysJaWYgKHExLT5ISDEgPCBxMi0+SEwxKQorKwkJcmV0dXJuIEZBTFNFOworIAlkc3QtPkhM MSA9IHExLT5ITDEgLSBxMi0+SEwxOyAvKiBITDEgKi8KKysKKysJaWYgKHExLT5MSDEgPCBxMi0+ TEgxKQorKwkJcmV0dXJuIEZBTFNFOworIAlkc3QtPkxIMSA9IHExLT5MSDEgLSBxMi0+TEgxOyAv KiBMSDEgKi8KKysKKysJaWYgKHExLT5ISDEgPCBxMi0+SEgxKQorKwkJcmV0dXJuIEZBTFNFOwor IAlkc3QtPkhIMSA9IHExLT5ISDEgLSBxMi0+SEgxOyAvKiBISDEgKi8KKysKKysJaWYgKHExLT5I TDIgPCBxMi0+SEwyKQorKwkJcmV0dXJuIEZBTFNFOworIAlkc3QtPkhMMiA9IHExLT5ITDIgLSBx Mi0+SEwyOyAvKiBITDIgKi8KKysKKysJaWYgKHExLT5MSDIgPCBxMi0+TEgyKQorKwkJcmV0dXJu IEZBTFNFOworIAlkc3QtPkxIMiA9IHExLT5MSDIgLSBxMi0+TEgyOyAvKiBMSDIgKi8KKysKKysJ aWYgKHExLT5ISDIgPCBxMi0+SEgyKQorKwkJcmV0dXJuIEZBTFNFOworIAlkc3QtPkhIMiA9IHEx LT5ISDIgLSBxMi0+SEgyOyAvKiBISDIgKi8KKysKKysJaWYgKHExLT5ITDMgPCBxMi0+SEwzKQor KwkJcmV0dXJuIEZBTFNFOworIAlkc3QtPkhMMyA9IHExLT5ITDMgLSBxMi0+SEwzOyAvKiBITDMg Ki8KKysKKysJaWYgKHExLT5MSDMgPCBxMi0+TEgzKQorKwkJcmV0dXJuIEZBTFNFOworIAlkc3Qt PkxIMyA9IHExLT5MSDMgLSBxMi0+TEgzOyAvKiBMSDMgKi8KKysKKysJaWYgKHExLT5ISDMgPCBx Mi0+SEgzKQorKwkJcmV0dXJuIEZBTFNFOworIAlkc3QtPkhIMyA9IHExLT5ISDMgLSBxMi0+SEgz OyAvKiBISDMgKi8KKysKKysJaWYgKHExLT5MTDMgPCBxMi0+TEwzKQorKwkJcmV0dXJuIEZBTFNF OworIAlkc3QtPkxMMyA9IHExLT5MTDMgLSBxMi0+TEwzOyAvKiBMTDMgKi8KKysKKysJcmV0dXJu IFRSVUU7CisgfQorIAorIHN0YXRpYyBJTkxJTkUgQk9PTCBwcm9ncmVzc2l2ZV9yZnhfcXVhbnRf bGNtcF9sZXNzX2VxdWFsKGNvbnN0IFJGWF9DT01QT05FTlRfQ09ERUNfUVVBTlQqIHEsCitAQCAt MTQzMyw5ICsxNDY0LDEyIEBAIHN0YXRpYyBJTkxJTkUgaW50IHByb2dyZXNzaXZlX2RlY29tcHJl c3NfdGlsZV91cGdyYWRlKFBST0dSRVNTSVZFX0NPTlRFWFQqIHByb2dyCisgCXByb2dyZXNzaXZl X3JmeF9xdWFudF9hZGQocXVhbnRZLCBxdWFudFByb2dZLCAmeUJpdFBvcyk7CisgCXByb2dyZXNz aXZlX3JmeF9xdWFudF9hZGQocXVhbnRDYiwgcXVhbnRQcm9nQ2IsICZjYkJpdFBvcyk7CisgCXBy b2dyZXNzaXZlX3JmeF9xdWFudF9hZGQocXVhbnRDciwgcXVhbnRQcm9nQ3IsICZjckJpdFBvcyk7 CistCXByb2dyZXNzaXZlX3JmeF9xdWFudF9zdWIoJih0aWxlLT55Qml0UG9zKSwgJnlCaXRQb3Ms ICZ5TnVtQml0cyk7CistCXByb2dyZXNzaXZlX3JmeF9xdWFudF9zdWIoJih0aWxlLT5jYkJpdFBv cyksICZjYkJpdFBvcywgJmNiTnVtQml0cyk7CistCXByb2dyZXNzaXZlX3JmeF9xdWFudF9zdWIo Jih0aWxlLT5jckJpdFBvcyksICZjckJpdFBvcywgJmNyTnVtQml0cyk7CisrCWlmICghcHJvZ3Jl c3NpdmVfcmZ4X3F1YW50X3N1YigmKHRpbGUtPnlCaXRQb3MpLCAmeUJpdFBvcywgJnlOdW1CaXRz KSkKKysJCWdvdG8gZmFpbDsKKysJaWYgKCFwcm9ncmVzc2l2ZV9yZnhfcXVhbnRfc3ViKCYodGls ZS0+Y2JCaXRQb3MpLCAmY2JCaXRQb3MsICZjYk51bUJpdHMpKQorKwkJZ290byBmYWlsOworKwlp ZiAoIXByb2dyZXNzaXZlX3JmeF9xdWFudF9zdWIoJih0aWxlLT5jckJpdFBvcyksICZjckJpdFBv cywgJmNyTnVtQml0cykpCisrCQlnb3RvIGZhaWw7CisgCXByb2dyZXNzaXZlX3JmeF9xdWFudF9h ZGQocXVhbnRZLCBxdWFudFByb2dZLCAmc2hpZnRZKTsKKyAJcHJvZ3Jlc3NpdmVfcmZ4X3F1YW50 X2xzdWIoJnNoaWZ0WSwgMSk7IC8qIC02ICsgNSA9IC0xICovCisgCXByb2dyZXNzaXZlX3JmeF9x dWFudF9hZGQocXVhbnRDYiwgcXVhbnRQcm9nQ2IsICZzaGlmdENiKTsKKy0tIAorMi40OS4wCisK CmRpZmYgLS1naXQgYS9jb2RlYy1wcm9ncmVzc2l2ZS1maXgtdW5kZXJmbG93LWd1YXJkLWluLXBy b2dyZXNzaXZlX3JmeF9xdWFudF9zdWIucGF0Y2ggYi9jb2RlYy1wcm9ncmVzc2l2ZS1maXgtdW5k ZXJmbG93LWd1YXJkLWluLXByb2dyZXNzaXZlX3JmeF9xdWFudF9zdWIucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNiNmFmNwotLS0gL2Rldi9udWxsCisrKyBiL2Nv ZGVjLXByb2dyZXNzaXZlLWZpeC11bmRlcmZsb3ctZ3VhcmQtaW4tcHJvZ3Jlc3NpdmVfcmZ4X3F1 YW50X3N1Yi5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDc4Njc3ZGM2ZTI2MmY0NjkzN2Qw MGMzYWE1MjM4MWU0YmIxOThmYTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbmRy ZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMTMgQXByIDIwMjYgMTQ6MDA6 MDAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2NvZGVjLHByb2dyZXNzaXZlXSBmaXggdW5kZXJm bG93IGd1YXJkIGluCisgcHJvZ3Jlc3NpdmVfcmZ4X3F1YW50X3N1YgorCitCYWNrcG9ydCBvZiBj b21taXQgNzg2NzdkYzZlMjYyZjQ2OTM3ZDAwYzNhYTUyMzgxZTRiYjE5OGZhNS4KKworTWFkZS13 aXRoOiBDdXJzb3IKKy0tLQorIGxpYmZyZWVyZHAvY29kZWMvcHJvZ3Jlc3NpdmUuYyB8IDIgKy0K KyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAt LWdpdCBhL2xpYmZyZWVyZHAvY29kZWMvcHJvZ3Jlc3NpdmUuYyBiL2xpYmZyZWVyZHAvY29kZWMv cHJvZ3Jlc3NpdmUuYworaW5kZXggYmJjYzkyMS4uMTIzNDU2NyAxMDA2NDQKKy0tLSBhL2xpYmZy ZWVyZHAvY29kZWMvcHJvZ3Jlc3NpdmUuYworKysrIGIvbGliZnJlZXJkcC9jb2RlYy9wcm9ncmVz c2l2ZS5jCitAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBJTkxJTkUgQk9PTCBwcm9ncmVzc2l2 ZV9yZnhfcXVhbnRfc3ViKGNvbnN0IFJGWF9DT01QT05FTlRfQ09ERUNfUVVBTlQqIHExCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUkZYX0NPTVBP TkVOVF9DT0RFQ19RVUFOVCogcTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUkZYX0NPTVBPTkVOVF9DT0RFQ19RVUFOVCogZHN0KQorIHsKKy0JaWYgKHEx LT5ISDEgPCBxMi0+SEwxKQorKwlpZiAocTEtPkhMMSA8IHEyLT5ITDEpCisgCQlyZXR1cm4gRkFM U0U7CisgCWRzdC0+SEwxID0gcTEtPkhMMSAtIHEyLT5ITDE7IC8qIEhMMSAqLworIAorLS0gCisy LjQ5LjAKKwoKZGlmZiAtLWdpdCBhL2NvcmUtaW5mby1maXgtbWlzc2luZy1OVUxMLWNoZWNrLnBh dGNoIGIvY29yZS1pbmZvLWZpeC1taXNzaW5nLU5VTEwtY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRkYWFmZQotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUt aW5mby1maXgtbWlzc2luZy1OVUxMLWNoZWNrLnBhdGNoCkBAIC0wLDAgKzEsNzEgQEAKK0Zyb20g NmEzMjlhOWExMzUyYzk0NjFhM2E4NWU1NWQ4NDIzMDEwNmIxOTUwMCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTogVHVl LCAxMCBNYXIgMjAyNiAxNDo1MzoyOSArMDEwMAorU3ViamVjdDogW1BBVENIXSBbY29yZSxpbmZv XSBmaXggbWlzc2luZyBOVUxMIGNoZWNrCisKK0JhY2twb3J0IG9mIGNvbW1pdCA0ZDQ0ZTNjMDk3 NjU2YThiOWVjNjk2MzUzNjQ3YjA4ODhjYTQ1ODYwLgorCitNYWRlLXdpdGg6IEN1cnNvcgorLS0t CisgbGliZnJlZXJkcC9jb3JlL2luZm8uYyB8IDE3ICsrKysrKysrKysrLS0tLS0tCisgMSBmaWxl IGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9saWJmcmVlcmRwL2NvcmUvaW5mby5jIGIvbGliZnJlZXJkcC9jb3JlL2luZm8uYworaW5kZXgg OWFhYTZjZmY2Li41NjY3NmYwZmIgMTAwNjQ0CistLS0gYS9saWJmcmVlcmRwL2NvcmUvaW5mby5j CisrKysgYi9saWJmcmVlcmRwL2NvcmUvaW5mby5jCitAQCAtMjQsNiArMjQsNyBAQAorICNlbmRp ZgorIAorICNpbmNsdWRlIDx3aW5wci9jcnQuaD4KKysjaW5jbHVkZSA8d2lucHIvYXNzZXJ0Lmg+ CisgI2luY2x1ZGUgPGZyZWVyZHAvY3J5cHRvL2NyeXB0by5oPgorICNpbmNsdWRlIDxmcmVlcmRw L2xvZy5oPgorICNpbmNsdWRlIDxmcmVlcmRwL3Nlc3Npb24uaD4KK0BAIC0xMzYzLDEwICsxMzY0 LDExIEBAIHN0YXRpYyBCT09MIHJkcF93cml0ZV9sb2dvbl9pbmZvX3YxKHdTdHJlYW0qIHMsIGxv Z29uX2luZm8qIGluZm8pCisgCXJldHVybiBUUlVFOworIH0KKyAKKy1zdGF0aWMgQk9PTCByZHBf d3JpdGVfbG9nb25faW5mb192Mih3U3RyZWFtKiBzLCBsb2dvbl9pbmZvKiBpbmZvKQorK3N0YXRp YyBCT09MIHJkcF93cml0ZV9sb2dvbl9pbmZvX3YyKHdTdHJlYW0qIHMsIGNvbnN0IGxvZ29uX2lu Zm8qIGluZm8pCisgeworIAlVSU5UMzIgU2l6ZSA9IDIgKyA0ICsgNCArIDQgKyA0ICsgNTU4Owor LQlzaXplX3QgZG9tYWluTGVuLCB1c2VybmFtZUxlbjsKKysJc2l6ZV90IGRvbWFpbkxlbiA9IDA7 CisrCXNpemVfdCB1c2VybmFtZUxlbiA9IDA7CisgCWludCBsZW47CisgCVdDSEFSKiB3U3RyaW5n ID0gTlVMTDsKKyAKK0BAIC0xMzc2LDExICsxMzc4LDEzIEBAIHN0YXRpYyBCT09MIHJkcF93cml0 ZV9sb2dvbl9pbmZvX3YyKHdTdHJlYW0qIHMsIGxvZ29uX2luZm8qIGluZm8pCisgCVN0cmVhbV9X cml0ZV9VSU5UMTYocywgU0FWRV9TRVNTSU9OX1BEVV9WRVJTSU9OX09ORSk7CisgCVN0cmVhbV9X cml0ZV9VSU5UMzIocywgU2l6ZSk7CisgCVN0cmVhbV9Xcml0ZV9VSU5UMzIocywgaW5mby0+c2Vz c2lvbklkKTsKKy0JZG9tYWluTGVuID0gc3RybGVuKGluZm8tPmRvbWFpbik7CisrCWlmIChpbmZv LT5kb21haW4pCisrCQlkb21haW5MZW4gPSBzdHJsZW4oaW5mby0+ZG9tYWluKTsKKyAJaWYgKGRv bWFpbkxlbiA+IFVJTlQzMl9NQVgpCisgCQlyZXR1cm4gRkFMU0U7CisgCVN0cmVhbV9Xcml0ZV9V SU5UMzIocywgKFVJTlQzMikoZG9tYWluTGVuICsgMSkgKiAyKTsKKy0JdXNlcm5hbWVMZW4gPSBz dHJsZW4oaW5mby0+dXNlcm5hbWUpOworKwlpZiAoaW5mby0+dXNlcm5hbWUpCisrCQl1c2VybmFt ZUxlbiA9IHN0cmxlbihpbmZvLT51c2VybmFtZSk7CisgCWlmICh1c2VybmFtZUxlbiA+IFVJTlQz Ml9NQVgpCisgCQlyZXR1cm4gRkFMU0U7CisgCVN0cmVhbV9Xcml0ZV9VSU5UMzIocywgKFVJTlQz MikodXNlcm5hbWVMZW4gKyAxKSAqIDIpOworQEAgLTE0NTcsMTAgKzE0NjEsMTEgQEAgc3RhdGlj IEJPT0wgcmRwX3dyaXRlX2xvZ29uX2luZm9fZXgod1N0cmVhbSogcywgbG9nb25faW5mb19leCog aW5mbykKKyAKKyBCT09MIHJkcF9zZW5kX3NhdmVfc2Vzc2lvbl9pbmZvKHJkcENvbnRleHQqIGNv bnRleHQsIFVJTlQzMiB0eXBlLCB2b2lkKiBkYXRhKQorIHsKKy0Jd1N0cmVhbSogczsKKyAJQk9P TCBzdGF0dXM7CisrCisrCVdJTlBSX0FTU0VSVChjb250ZXh0KTsKKyAJcmRwUmRwKiByZHAgPSBj b250ZXh0LT5yZHA7CistCXMgPSByZHBfZGF0YV9wZHVfaW5pdChyZHApOworKwl3U3RyZWFtKiBz ID0gcmRwX2RhdGFfcGR1X2luaXQocmRwKTsKKyAKKyAJaWYgKCFzKQorIAkJcmV0dXJuIEZBTFNF OworLS0gCisyLjUzLjAKKwoKZGlmZiAtLWdpdCBhL2NvcmUtbWVzc2FnZS1maXgtdXBkYXRlX21l c3NhZ2VfV2luZG93SWNvbi5wYXRjaCBiL2NvcmUtbWVzc2FnZS1maXgtdXBkYXRlX21lc3NhZ2Vf V2luZG93SWNvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjQ4 MWIxCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS1tZXNzYWdlLWZpeC11cGRhdGVfbWVzc2FnZV9X aW5kb3dJY29uLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gOTM5N2ZiZWVkNGIyODYyYWU2 OGY5NTU2OTUwYWY0MTUxNjNjOTM5OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFy bWluIE5vdmFrIDxhcm1pbi5ub3Zha0B0aGluY2FzdC5jb20+CitEYXRlOiBUdWUsIDcgSnVsIDIw MjYgMTI6NTg6MTEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gW2NvcmUsbWVzc2FnZV0gZml4IHVw ZGF0ZV9tZXNzYWdlX1dpbmRvd0ljb24KKworLS0tCisgbGliZnJlZXJkcC9jb3JlL21lc3NhZ2Uu YyB8IDcgKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgYS9saWJmcmVlcmRwL2NvcmUvbWVzc2FnZS5jIGIvbGliZnJl ZXJkcC9jb3JlL21lc3NhZ2UuYworaW5kZXggN2FmMjllOTRkLi4xYWIwZDRlNGUgMTAwNjQ0Cist LS0gYS9saWJmcmVlcmRwL2NvcmUvbWVzc2FnZS5jCisrKysgYi9saWJmcmVlcmRwL2NvcmUvbWVz c2FnZS5jCitAQCAtMTE0NywxOCArMTE0NywyMSBAQCBzdGF0aWMgQk9PTCB1cGRhdGVfbWVzc2Fn ZV9XaW5kb3dJY29uKHJkcENvbnRleHQqIGNvbnRleHQsIGNvbnN0IFdJTkRPV19PUkRFUl9JTgor IAlpZiAoIXdQYXJhbSkKKyAJCXJldHVybiBGQUxTRTsKKworLQlDb3B5TWVtb3J5KHdQYXJhbSwg b3JkZXJJbmZvLCBzaXplb2YoV0lORE9XX09SREVSX0lORk8pKTsKKysJKndQYXJhbSA9ICpvcmRl ckluZm87CisrCisgCWxQYXJhbSA9IChXSU5ET1dfSUNPTl9PUkRFUiopY2FsbG9jKDEsIHNpemVv ZihXSU5ET1dfSUNPTl9PUkRFUikpOworCisgCWlmICghbFBhcmFtKQorIAkJZ290byBvdXRfZmFp bDsKKworKwkqbFBhcmFtID0gKndpbmRvd0ljb247CisgCWxQYXJhbS0+aWNvbkluZm8gPSBjYWxs b2MoMSwgc2l6ZW9mKElDT05fSU5GTykpOworCisgCWlmICghbFBhcmFtLT5pY29uSW5mbykKKyAJ CWdvdG8gb3V0X2ZhaWw7CisKKy0JQ29weU1lbW9yeShsUGFyYW0sIHdpbmRvd0ljb24sIHNpemVv ZihXSU5ET1dfSUNPTl9PUkRFUikpOworKwkqbFBhcmFtLT5pY29uSW5mbyA9ICp3aW5kb3dJY29u LT5pY29uSW5mbzsKKysKKyAJV0xvZ19WUkIoVEFHLCAidXBkYXRlX21lc3NhZ2VfV2luZG93SWNv biIpOworCisgCWlmICh3aW5kb3dJY29uLT5pY29uSW5mby0+Y2JCaXRzQ29sb3IgPiAwKQoKZGlm ZiAtLWdpdCBhL2NvcmUtcmVkaXJlY3Rpb24tY2hlY2stcmVkaXJlY3Rpb24tdmFsdWVzLWZvci12 YWxpZGl0eS5wYXRjaCBiL2NvcmUtcmVkaXJlY3Rpb24tY2hlY2stcmVkaXJlY3Rpb24tdmFsdWVz LWZvci12YWxpZGl0eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 MzYwNTAwCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS1yZWRpcmVjdGlvbi1jaGVjay1yZWRpcmVj dGlvbi12YWx1ZXMtZm9yLXZhbGlkaXR5LnBhdGNoCkBAIC0wLDAgKzEsMTYzIEBACitGcm9tIGNk YWJjNzhmYzUwYTVhMTg1OWZhZWJjMWU0MWEzZGZiYmQwMDczNDEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBBcm1pbiBOb3ZhayA8YXJtaW4ubm92YWtAdGhpbmNhc3QuY29tPgorRGF0 ZTogVGh1LCA5IEp1bCAyMDI2IDA4OjM0OjI0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjb3Jl LHJlZGlyZWN0aW9uXSBjaGVjayByZWRpcmVjdGlvbiB2YWx1ZXMgZm9yIHZhbGlkaXR5CisKK0Fk ZCBzb21lIGJhc2ljIHZhbGlkaXR5IGNoZWNrcyBmb3IgZGF0YSBwcm92aWRlZCBieSBzZXJ2ZXIu CistLS0KKyBsaWJmcmVlcmRwL2NvcmUvcmVkaXJlY3Rpb24uYyB8IDI1ICsrKysrKysrKysrKysr KysrKysrLS0tLS0KKyBsaWJmcmVlcmRwL2NvcmUvdXRpbHMuYyAgICAgICB8IDMzICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKworIGxpYmZyZWVyZHAvY29yZS91dGlscy5oICAgICAg IHwgIDIgKysKKyAzIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9saWJmcmVlcmRwL2NvcmUvcmVkaXJlY3Rpb24uYyBiL2xpYmZy ZWVyZHAvY29yZS9yZWRpcmVjdGlvbi5jCitpbmRleCA1OWM2ZGJjZWUuLmI0YjIyMmViMiAxMDA2 NDQKKy0tLSBhL2xpYmZyZWVyZHAvY29yZS9yZWRpcmVjdGlvbi5jCisrKysgYi9saWJmcmVlcmRw L2NvcmUvcmVkaXJlY3Rpb24uYworQEAgLTQwNiw2ICs0MDYsOCBAQCBzdGF0aWMgaW50IHJkcF9y ZWN2X3NlcnZlcl9yZWRpcmVjdGlvbl9wZHUocmRwUmRwKiByZHAsIHdTdHJlYW0qIHMpCisgCXsK KyAJCWlmICghcmRwX3JlZGlyZWN0aW9uX3JlYWRfdW5pY29kZV9zdHJpbmcocywgJihyZWRpcmVj dGlvbi0+VGFyZ2V0TmV0QWRkcmVzcyksIDgwKSkKKyAJCQlyZXR1cm4gLTE7CisrCQlpZiAoIXV0 aWxzX2lzX3ZhbGlkX2lwKHJlZGlyZWN0aW9uLT5UYXJnZXROZXRBZGRyZXNzKSkKKysJCQlyZXR1 cm4gLTE7CisgCX0KKworIAlpZiAocmVkaXJlY3Rpb24tPmZsYWdzICYgTEJfTE9BRF9CQUxBTkNF X0lORk8pCitAQCAtNDE5LDEzICs0MjEsMTcgQEAgc3RhdGljIGludCByZHBfcmVjdl9zZXJ2ZXJf cmVkaXJlY3Rpb25fcGR1KHJkcFJkcCogcmRwLCB3U3RyZWFtKiBzKQorIAkJaWYgKCFyZHBfcmVk aXJlY3Rpb25fcmVhZF9kYXRhKExCX0xPQURfQkFMQU5DRV9JTkZPLCBzLCAmcmVkaXJlY3Rpb24t PkxvYWRCYWxhbmNlSW5mb0xlbmd0aCwKKyAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmcmVkaXJlY3Rpb24tPkxvYWRCYWxhbmNlSW5mbykpCisgCQkJcmV0dXJuIC0xOworKwkJaWYg KCF3aW5wcl9zdHJfaXNfdmFsaWRfdXJsTigoY29uc3QgY2hhciopcmVkaXJlY3Rpb24tPkxvYWRC YWxhbmNlSW5mbywKKysJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Rpb24t PkxvYWRCYWxhbmNlSW5mb0xlbmd0aCkpCisrCQkJcmV0dXJuIC0xOworIAl9CisKKyAJaWYgKHJl ZGlyZWN0aW9uLT5mbGFncyAmIExCX1VTRVJOQU1FKQorIAl7CisgCQlpZiAoIXJkcF9yZWRpcmVj dGlvbl9yZWFkX3VuaWNvZGVfc3RyaW5nKHMsICYocmVkaXJlY3Rpb24tPlVzZXJuYW1lKSwgNTEy KSkKKyAJCQlyZXR1cm4gLTE7CistCisrCQlpZiAod2lucHJfc3RyX2hhc19uZXdsaW5lcyhyZWRp cmVjdGlvbi0+VXNlcm5hbWUpKQorKwkJCXJldHVybiAtMTsKKyAJCVdMb2dfREJHKFRBRywgIlVz ZXJuYW1lOiAlcyIsIHJlZGlyZWN0aW9uLT5Vc2VybmFtZSk7CisgCX0KKworQEAgLTQzMyw3ICs0 MzksOCBAQCBzdGF0aWMgaW50IHJkcF9yZWN2X3NlcnZlcl9yZWRpcmVjdGlvbl9wZHUocmRwUmRw KiByZHAsIHdTdHJlYW0qIHMpCisgCXsKKyAJCWlmICghcmRwX3JlZGlyZWN0aW9uX3JlYWRfdW5p Y29kZV9zdHJpbmcocywgJihyZWRpcmVjdGlvbi0+RG9tYWluKSwgNTIpKQorIAkJCXJldHVybiAt MTsKKy0KKysJCWlmICh3aW5wcl9zdHJfaGFzX25ld2xpbmVzKHJlZGlyZWN0aW9uLT5Eb21haW4p KQorKwkJCXJldHVybiAtMTsKKyAJCVdMb2dfREJHKFRBRywgIkRvbWFpbjogJXMiLCByZWRpcmVj dGlvbi0+RG9tYWluKTsKKyAJfQorCitAQCAtNDg0LDcgKzQ5MSw4IEBAIHN0YXRpYyBpbnQgcmRw X3JlY3Zfc2VydmVyX3JlZGlyZWN0aW9uX3BkdShyZHBSZHAqIHJkcCwgd1N0cmVhbSogcykKKyAJ eworIAkJaWYgKCFyZHBfcmVkaXJlY3Rpb25fcmVhZF91bmljb2RlX3N0cmluZyhzLCAmKHJlZGly ZWN0aW9uLT5UYXJnZXRGUUROKSwgNTEyKSkKKyAJCQlyZXR1cm4gLTE7CistCisrCQlpZiAoIXdp bnByX3N0cl9pc192YWxpZF91cmwocmVkaXJlY3Rpb24tPlRhcmdldEZRRE4pKQorKwkJCXJldHVy biAtMTsKKyAJCVdMb2dfREJHKFRBRywgIlRhcmdldEZRRE46ICVzIiwgcmVkaXJlY3Rpb24tPlRh cmdldEZRRE4pOworIAl9CisKK0BAIC00OTIsNyArNTAwLDggQEAgc3RhdGljIGludCByZHBfcmVj dl9zZXJ2ZXJfcmVkaXJlY3Rpb25fcGR1KHJkcFJkcCogcmRwLCB3U3RyZWFtKiBzKQorIAl7Cisg CQlpZiAoIXJkcF9yZWRpcmVjdGlvbl9yZWFkX3VuaWNvZGVfc3RyaW5nKHMsICYocmVkaXJlY3Rp b24tPlRhcmdldE5ldEJpb3NOYW1lKSwgMzIpKQorIAkJCXJldHVybiAtMTsKKy0KKysJCWlmICgh d2lucHJfc3RyX2lzX3ZhbGlkX3VybChyZWRpcmVjdGlvbi0+VGFyZ2V0TmV0Qmlvc05hbWUpKQor KwkJCXJldHVybiAtMTsKKyAJCVdMb2dfREJHKFRBRywgIlRhcmdldE5ldEJpb3NOYW1lOiAlcyIs IHJlZGlyZWN0aW9uLT5UYXJnZXROZXRCaW9zTmFtZSk7CisgCX0KKworQEAgLTUwMSw2ICs1MTAs OCBAQCBzdGF0aWMgaW50IHJkcF9yZWN2X3NlcnZlcl9yZWRpcmVjdGlvbl9wZHUocmRwUmRwKiBy ZHAsIHdTdHJlYW0qIHMpCisgCQlpZiAoIXJkcF9yZWRpcmVjdGlvbl9yZWFkX2RhdGEoTEJfQ0xJ RU5UX1RTVl9VUkwsIHMsICZyZWRpcmVjdGlvbi0+VHN2VXJsTGVuZ3RoLAorIAkJICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZyZWRpcmVjdGlvbi0+VHN2VXJsKSkKKyAJCQlyZXR1cm4g LTE7CisrCQlpZiAoIXdpbnByX3N0cl9pc192YWxpZF91cmxOKChjb25zdCBjaGFyKilyZWRpcmVj dGlvbi0+VHN2VXJsLCByZWRpcmVjdGlvbi0+VHN2VXJsTGVuZ3RoKSkKKysJCQlyZXR1cm4gLTE7 CisgCX0KKworIAlpZiAocmVkaXJlY3Rpb24tPmZsYWdzICYgTEJfUkVESVJFQ1RJT05fR1VJRCkK K0BAIC01NDEsNyArNTUyLDggQEAgc3RhdGljIGludCByZHBfcmVjdl9zZXJ2ZXJfcmVkaXJlY3Rp b25fcGR1KHJkcFJkcCogcmRwLCB3U3RyZWFtKiBzKQorIAkJeworIAkJCWlmICghcmRwX3JlZGly ZWN0aW9uX3JlYWRfdW5pY29kZV9zdHJpbmcocywgJihyZWRpcmVjdGlvbi0+VGFyZ2V0TmV0QWRk cmVzc2VzW2ldKSwgODApKQorIAkJCQlyZXR1cm4gLTE7CistCisrCQkJaWYgKCF1dGlsc19pc192 YWxpZF9pcChyZWRpcmVjdGlvbi0+VGFyZ2V0TmV0QWRkcmVzc2VzW2ldKSkKKysJCQkJcmV0dXJu IC0xOworIAkJCVdMb2dfREJHKFRBRywgIlRhcmdldE5ldEFkZHJlc3Nlc1slIiBQUkl1eiAiXTog JXMiLCBpLAorIAkJCSAgICAgICAgIHJlZGlyZWN0aW9uLT5UYXJnZXROZXRBZGRyZXNzZXNbaV0p OworIAkJfQorQEAgLTU2OSw3ICs1ODEsMTAgQEAgaW50IHJkcF9yZWN2X2VuaGFuY2VkX3NlY3Vy aXR5X3JlZGlyZWN0aW9uX3BhY2tldChyZHBSZHAqIHJkcCwgd1N0cmVhbSogcykKKyAJc3RhdHVz ID0gcmRwX3JlY3Zfc2VydmVyX3JlZGlyZWN0aW9uX3BkdShyZHAsIHMpOworCisgCWlmIChzdGF0 dXMgPCAwKQorKwl7CisrCQlXTG9nX0VSUihUQUcsICJyZWRpcmVjdGlvbiBwYWNrZXQgaW52YWxp ZCwgYWJvcnRpbmciKTsKKyAJCXJldHVybiBzdGF0dXM7CisrCX0KKworIAlpZiAoU3RyZWFtX0dl dFJlbWFpbmluZ0xlbmd0aChzKSA+PSAxKQorIAl7CitkaWZmIC0tZ2l0IGEvbGliZnJlZXJkcC9j b3JlL3V0aWxzLmMgYi9saWJmcmVlcmRwL2NvcmUvdXRpbHMuYworaW5kZXggMTM5YzFhNDMzLi4x MDI4MTk5MTUgMTAwNjQ0CistLS0gYS9saWJmcmVlcmRwL2NvcmUvdXRpbHMuYworKysrIGIvbGli ZnJlZXJkcC9jb3JlL3V0aWxzLmMKK0BAIC0yMiw2ICsyMiwxNiBAQAorICNpbmNsdWRlICJjb25m aWcuaCIKKyAjZW5kaWYKKworKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKysjaWZkZWYgX1dJTjMy CisrI2luY2x1ZGUgPHdzMnRjcGlwLmg+CisrI2Vsc2UKKysjaW5jbHVkZSA8c3lzL3NvY2tldC5o PgorKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisrI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorKyNl bmRpZgorKworICNpbmNsdWRlIDx3aW5wci9hc3NlcnQuaD4KKworICNpbmNsdWRlIDxmcmVlcmRw L2ZyZWVyZHAuaD4KK0BAIC02NSwzICs3NSwyNiBAQCBCT09MIHV0aWxzX3N0cl9pc19lbXB0eShj b25zdCBjaGFyKiBzdHIpCisgCQlyZXR1cm4gVFJVRTsKKyAJcmV0dXJuIEZBTFNFOworIH0KKysK KytzdGF0aWMgQk9PTCBpc1ZhbGlkSVB2NChjb25zdCBjaGFyKiBpcEFkZHJlc3MpCisreworKwlz dHJ1Y3Qgc29ja2FkZHJfaW4gc2E7CisrCWludCByZXN1bHQ7CisrCW1lbXNldCgmc2EsIDAsIHNp emVvZihzYSkpOworKwlyZXN1bHQgPSBpbmV0X3B0b24oQUZfSU5FVCwgaXBBZGRyZXNzLCAmKHNh LnNpbl9hZGRyKSk7CisrCXJldHVybiByZXN1bHQgIT0gMDsKKyt9CisrCisrc3RhdGljIEJPT0wg aXNWYWxpZElQdjYoY29uc3QgY2hhciogaXBBZGRyZXNzKQorK3sKKysJc3RydWN0IHNvY2thZGRy X2luNiBzYTsKKysJaW50IHJlc3VsdDsKKysJbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHNhKSk7Cisr CXJlc3VsdCA9IGluZXRfcHRvbihBRl9JTkVUNiwgaXBBZGRyZXNzLCAmKHNhLnNpbjZfYWRkcikp OworKwlyZXR1cm4gcmVzdWx0ICE9IDA7CisrfQorKworK0JPT0wgdXRpbHNfaXNfdmFsaWRfaXAo Y29uc3QgY2hhciogaXBBZGRyZXNzKQorK3sKKysJcmV0dXJuIGlzVmFsaWRJUHY0KGlwQWRkcmVz cykgfHwgaXNWYWxpZElQdjYoaXBBZGRyZXNzKTsKKyt9CitkaWZmIC0tZ2l0IGEvbGliZnJlZXJk cC9jb3JlL3V0aWxzLmggYi9saWJmcmVlcmRwL2NvcmUvdXRpbHMuaAoraW5kZXggNDMyOTUxODEy Li40YjE1MGM0MTYgMTAwNjQ0CistLS0gYS9saWJmcmVlcmRwL2NvcmUvdXRpbHMuaAorKysrIGIv bGliZnJlZXJkcC9jb3JlL3V0aWxzLmgKK0BAIC0zMCw0ICszMCw2IEBAIEJPT0wgdXRpbHNfYWJv cnRfY29ubmVjdChyZHBDb250ZXh0KiBjb250ZXh0KTsKKyBCT09MIHV0aWxzX3N0cl9pc19lbXB0 eShjb25zdCBjaGFyKiBzdHIpOworIEJPT0wgdXRpbHNfc3RyX2NvcHkoY29uc3QgY2hhciogdmFs dWUsIGNoYXIqKiBkc3QpOworCisrRlJFRVJEUF9MT0NBTCBCT09MIHV0aWxzX2lzX3ZhbGlkX2lw KGNvbnN0IGNoYXIqIGlwQWRkcmVzcyk7CisrCisgI2VuZGlmIC8qIEZSRUVSRFBfTElCX0NPUkVf VVRJTFNfSCAqLwoKZGlmZiAtLWdpdCBhL2NvcmUtcmVkaXJlY3Rpb24tcmVsYXgtY2hlY2tzLnBh dGNoIGIvY29yZS1yZWRpcmVjdGlvbi1yZWxheC1jaGVja3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYTAwM2U0YwotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUtcmVk aXJlY3Rpb24tcmVsYXgtY2hlY2tzLnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zyb20gYjNjZmY2 NWExYWRiYmRlZGE0NzhmMDM1MjE4ZWVhZGM3MmNhMDAzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEFybWluIE5vdmFrIDxhcm1pbi5ub3Zha0B0aGluY2FzdC5jb20+CitEYXRlOiBU dWUsIDE0IEp1bCAyMDI2IDEyOjMwOjI3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjb3JlLHJl ZGlyZWN0aW9uXSByZWxheCBjaGVja3MKKworKiBUc3ZVcmwgaXMgb3BhcXVlLCBkbyBub3QgYXNz dW1lIGFueSBmb3JtYXQKKyogTG9hZEJhbGFuY2VJbmZvIGlzIG9wYXF1ZSwgZG8gbm90IGFzc3Vt ZSBhbnkgZm9ybWF0CistLS0KKyBsaWJmcmVlcmRwL2NvcmUvcmVkaXJlY3Rpb24uYyB8IDUgLS0t LS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZy ZWVyZHAvY29yZS9yZWRpcmVjdGlvbi5jIGIvbGliZnJlZXJkcC9jb3JlL3JlZGlyZWN0aW9uLmMK K2luZGV4IGI0YjIyMmViMi4uNzczNDk2NjAzIDEwMDY0NAorLS0tIGEvbGliZnJlZXJkcC9jb3Jl L3JlZGlyZWN0aW9uLmMKKysrKyBiL2xpYmZyZWVyZHAvY29yZS9yZWRpcmVjdGlvbi5jCitAQCAt NDIxLDkgKzQyMSw2IEBAIHN0YXRpYyBpbnQgcmRwX3JlY3Zfc2VydmVyX3JlZGlyZWN0aW9uX3Bk dShyZHBSZHAqIHJkcCwgd1N0cmVhbSogcykKKyAJCWlmICghcmRwX3JlZGlyZWN0aW9uX3JlYWRf ZGF0YShMQl9MT0FEX0JBTEFOQ0VfSU5GTywgcywgJnJlZGlyZWN0aW9uLT5Mb2FkQmFsYW5jZUlu Zm9MZW5ndGgsCisgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlZGlyZWN0aW9u LT5Mb2FkQmFsYW5jZUluZm8pKQorIAkJCXJldHVybiAtMTsKKy0JCWlmICghd2lucHJfc3RyX2lz X3ZhbGlkX3VybE4oKGNvbnN0IGNoYXIqKXJlZGlyZWN0aW9uLT5Mb2FkQmFsYW5jZUluZm8sCist CQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0aW9uLT5Mb2FkQmFsYW5jZUlu Zm9MZW5ndGgpKQorLQkJCXJldHVybiAtMTsKKyAJfQorCisgCWlmIChyZWRpcmVjdGlvbi0+Zmxh Z3MgJiBMQl9VU0VSTkFNRSkKK0BAIC01MTAsOCArNTA3LDYgQEAgc3RhdGljIGludCByZHBfcmVj dl9zZXJ2ZXJfcmVkaXJlY3Rpb25fcGR1KHJkcFJkcCogcmRwLCB3U3RyZWFtKiBzKQorIAkJaWYg KCFyZHBfcmVkaXJlY3Rpb25fcmVhZF9kYXRhKExCX0NMSUVOVF9UU1ZfVVJMLCBzLCAmcmVkaXJl Y3Rpb24tPlRzdlVybExlbmd0aCwKKyAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm cmVkaXJlY3Rpb24tPlRzdlVybCkpCisgCQkJcmV0dXJuIC0xOworLQkJaWYgKCF3aW5wcl9zdHJf aXNfdmFsaWRfdXJsTigoY29uc3QgY2hhciopcmVkaXJlY3Rpb24tPlRzdlVybCwgcmVkaXJlY3Rp b24tPlRzdlVybExlbmd0aCkpCistCQkJcmV0dXJuIC0xOworIAl9CisKKyAJaWYgKHJlZGlyZWN0 aW9uLT5mbGFncyAmIExCX1JFRElSRUNUSU9OX0dVSUQpCgpkaWZmIC0tZ2l0IGEvY3J5cHRvLWJh c2U2NC1lbnN1cmUtY2hhci1pcy1zaW5nZW5kLnBhdGNoIGIvY3J5cHRvLWJhc2U2NC1lbnN1cmUt Y2hhci1pcy1zaW5nZW5kLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjM2YmE5YzgKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8tYmFzZTY0LWVuc3VyZS1jaGFyLWlz LXNpbmdlbmQucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorRnJvbSA3ZTE3NTljNzM5MDAyZGM5NWQ4 ZjE1NjcyZDBmNzAwY2E4ZGNjZTBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT25k cmVqIEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDE3IEZlYiAyMDI2IDE0OjIz OjI5ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtjcnlwdG8sYmFzZTY0XSBlbnN1cmUgY2hhciBp cyBzaW5nZW5kCisKK0JhY2twb3J0IG9mIGNvbW1pdCA2MmE5ZTc4N2VkYjJjZmNlOTg1OGZhNGNl ZGE1NDYxNjgwZWZjNTkwLgorCitDby1BdXRob3JlZC1CeTogQ3Vyc29yIDxjdXJzb3JhZ2VudEBj dXJzb3IuY29tPgorLS0tCisgbGliZnJlZXJkcC9jcnlwdG8vYmFzZTY0LmMgfCA0ICsrKysKKyAx IGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9saWJmcmVlcmRw L2NyeXB0by9iYXNlNjQuYyBiL2xpYmZyZWVyZHAvY3J5cHRvL2Jhc2U2NC5jCitpbmRleCA1YTVk YTg5YTQuLmMwODRkZTM4ZSAxMDA2NDQKKy0tLSBhL2xpYmZyZWVyZHAvY3J5cHRvL2Jhc2U2NC5j CisrKysgYi9saWJmcmVlcmRwL2NyeXB0by9iYXNlNjQuYworQEAgLTkzLDYgKzkzLDEwIEBAIGNo YXIqIGNyeXB0b19iYXNlNjRfZW5jb2RlKGNvbnN0IEJZVEUqIGRhdGEsIGludCBsZW5ndGgpCisg Cisgc3RhdGljIGludCBiYXNlNjRfZGVjb2RlX2NoYXIoY2hhciBjKQorIHsKKysJLyogZW5zdXJl IGNoYXIgaXMgc2lnbmVkIGZvciB0aGlzIGNoZWNrICovCisrCWlmICgoaW50KWMgPD0gJ1wwJykK KysJCXJldHVybiAtMTsKKysKKyAJaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKQorIAkJcmV0dXJu IGMgLSAnQSc7CisgCistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEvZnJlZXJkcDIuc3BlYyBi L2ZyZWVyZHAyLnNwZWMKaW5kZXggMjg3MGY4Ny4uYTQ1YzZkNCAxMDA2NDQKLS0tIGEvZnJlZXJk cDIuc3BlYworKysgYi9mcmVlcmRwMi5zcGVjCkBAIC0yNiw3ICsyNiw3IEBACiAKIE5hbWU6ICAg ICAgICAgICBmcmVlcmRwMgogVmVyc2lvbjogICAgICAgIDIuMTEuNwotUmVsZWFzZTogICAgICAg IDYlez9kaXN0fQorUmVsZWFzZTogICAgICAgIDclez9kaXN0fQogU3VtbWFyeTogICAgICAgIEZy ZWUgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJlbW90ZSBEZXNrdG9wIFByb3RvY29sIChSRFApCiAK ICMgVGhlIGVmZmVjdGl2ZSBsaWNlbnNlIGlzIEFwYWNoZS0yLjAgYnV0OgpAQCAtNDIsNiArNDIs MTM3IEBAIFVSTDogICAgICAgICAgICBodHRwOi8vd3d3LmZyZWVyZHAuY29tLwogU291cmNlMDog ICAgICAgIEZyZWVSRFAtJXt2ZXJzaW9ufS1yZXBhY2sudGFyLmd6CiBTb3VyY2UxOiAgICAgICAg ZnJlZXJkcF9kb3dubG9hZF9hbmRfcmVwYWNrLnNoCiAKKyMgQ1ZFLTIwMjYtMjM1MzIKK1BhdGNo OiAgICAgICAgICBnZGktZ2Z4LXByb3Blcmx5LWNsYW1wLVN1cmZhY2VUb1N1cmZhY2UucGF0Y2gK KworIyBDVkUtMjAyNi0yMzUzMworUGF0Y2g6ICAgICAgICAgIGNvZGVjLWNsZWFyLWZpeC1jbGVh cl9yZXNpemVfYnVmZmVyLWNoZWNrcy5wYXRjaAorCisjIENWRS0yMDI2LTIzNTM0CitQYXRjaDog ICAgICAgICAgY29kZWMtY2xlYXItZml4LW9mZi1ieS1vbmUtbGVuZ3RoLWNoZWNrLnBhdGNoCisK KyMgQ1ZFLTIwMjYtMjM1MzAKK1BhdGNoOiAgICAgICAgICBjb2RlYy1wbGFuYXItZml4LWRlY29k ZXItbGVuZ3RoLWNoZWNrcy5wYXRjaAorCisjIENWRS0yMDI2LTIzNTMxCitQYXRjaDogICAgICAg ICAgY29kZWMtY2xlYXItY2hlY2stY2xlYXJfZGVjb21yZXNzLWdseXBoRGF0YS5wYXRjaAorCisj IENWRS0yMDI2LTIzODgzCitQYXRjaDogICAgICAgICAgY2xpZW50LXgxMS1maXgtZG91YmxlLWZy ZWUtaW4tY2FzZS1vZi1pbnZhbGlkLXBvaW50ZS5wYXRjaAorCisjIENWRS0yMDI2LTIzODg0CitQ YXRjaDogICAgICAgICAgY2FjaGUtb2Zmc2NyZWVuLWludmFsaWRhdGUtYml0bWFwLWJlZm9yZS1m cmVlLnBhdGNoCisKKyMgQ1ZFLTIwMjYtMjI4NTUKK1BhdGNoOiAgICAgICAgICB1dGlscy1zbWFy dGNhcmQtYWRkLWxlbmd0aC12YWxpZGl0eS1jaGVja3MucGF0Y2gKKworIyBDVkUtMjAyNi0yMjg1 OAorUGF0Y2g6ICAgICAgICAgIGNyeXB0by1iYXNlNjQtZW5zdXJlLWNoYXItaXMtc2luZ2VuZC5w YXRjaAorCisjIENWRS0yMDI2LTIyODU5CitQYXRjaDogICAgICAgICAgY2hhbm5lbHMtdXJiZHJj LWNoZWNrLWludGVyZmFjZS1pbmRpY2VzLWJlZm9yZS11c2UucGF0Y2gKKworIyBDVkUtMjAyNi0y Njk1NQorUGF0Y2g6ICAgICAgICAgIGNvZGVjLWNsZWFyLWZpeC1kZXN0aW5hdGlvbi1jaGVja3Mu cGF0Y2gKKworIyBDVkUtMjAyNi0yNjk2NQorUGF0Y2g6ICAgICAgICAgIGNvZGVjLXBsYW5hci1m aXgtbWlzc2luZy1kZXN0aW5hdGlvbi1ib3VuZHMtY2hlY2tzLnBhdGNoCisKKyMgQ1ZFLTIwMjYt MjI4NTIKK1BhdGNoOiAgICAgICAgICBjaGFubmVscy1hdWRpbi1mcmVlLXVwLW9sZC1hdWRpby1m b3JtYXRzLnBhdGNoCisKKyMgQ1ZFLTIwMjYtMjI4NTQKK1BhdGNoOiAgICAgICAgICBjaGFubmVs cy1kcml2ZS1maXgtY29uc3RhbnQtdHlwZS5wYXRjaAorCisjIENWRS0yMDI2LTIyODU2CitQYXRj aDogICAgICAgICAgY2hhbm5lbHMtc2VyaWFsLWxvY2stbGlzdC1kaWN0aW9uYXJ5LnBhdGNoCitQ YXRjaDogICAgICAgICAgY2hhbm5lbHMtc2VyaWFsLWV4cGxpY2l0bHktbG9jay1zZXJpYWwtSXJw VGhyZWFkcy5wYXRjaAorCisjIENWRS0yMDI2LTIzNzMyCitQYXRjaDogICAgICAgICAgY29kZWMt Y29sb3ItYWRkLWZyZWVyZHBfZ2x5cGhfY29udmVydF9leC5wYXRjaAorUGF0Y2g6ICAgICAgICAg IGdkaS1ncmFwaGljcy1Vc2UtZnJlZXJkcF9nbHlwaF9jb252ZXJ0X2V4LnBhdGNoCisKKyMgQ1ZF LTIwMjYtMjM5NDgKK1BhdGNoOiAgICAgICAgICBjb3JlLWluZm8tZml4LW1pc3NpbmctTlVMTC1j aGVjay5wYXRjaAorCisjIENWRS0yMDI2LTI0NDkxCitQYXRjaDogICAgICAgICAgY2hhbm5lbHMt ZHJkeW52Yy1yZXNldC1jaGFubmVsX2NhbGxiYWNrLWJlZm9yZS1jbG9zZS5wYXRjaAorUGF0Y2g6 ICAgICAgICAgIGNoYW5uZWxzLXZpZGVvLXVuaWZ5LWVycm9yLWhhbmRsaW5nLnBhdGNoCitQYXRj aDogICAgICAgICAgY2hhbm5lbHMtdmlkZW8tZml4LXdyb25nLWNhc3QucGF0Y2gKKworIyBDVkUt MjAyNi0yNDY3NQorUGF0Y2g6ICAgICAgICAgIGNoYW5uZWxzLXVyYmRyYy1kby1ub3QtZnJlZS1N c0NvbmZpZy1vbi1mYWlsdXJlLnBhdGNoCisKKyMgQ1ZFLTIwMjYtMjQ2NzYKK1BhdGNoOiAgICAg ICAgICBjaGFubmVscy1hdWRpbi1yZXNldC1hdWRpbi1mb3JtYXQucGF0Y2gKKworIyBDVkUtMjAy Ni0yNDY3OQorUGF0Y2g6ICAgICAgICAgIGNoYW5uZWxzLXVyYmRyYy1lbnN1cmUtSW50ZXJmYWNl TnVtYmVyLWlzLXdpdGhpbi1yYW4ucGF0Y2gKKworIyBDVkUtMjAyNi0yNDY4MQorUGF0Y2g6ICAg ICAgICAgIGNoYW5uZWxzLXVyYmRyYy1jYW5jZWwtYWxsLXVzYi10cmFuc2ZlcnMtb24tY2hhbm5l bC0ucGF0Y2gKKworIyBDVkUtMjAyNi0yNDY4MworUGF0Y2g6ICAgICAgICAgIGNoYW5uZWxzLWFp bnB1dC1sb2NrLWNvbnRleHQtd2hlbi11cGRhdGluZy1saXN0ZW5lci5wYXRjaAorCisjIENWRS0y MDI2LTI0Njg0CitQYXRjaDogICAgICAgICAgY2hhbm5lbHMtcmRwc25kLXRlcm1pbmF0ZS10aHJl YWQtYmVmb3JlLWZyZWUucGF0Y2gKK1BhdGNoOiAgICAgICAgICBjaGFubmVsLXJkcHNuZC1vbmx5 LWNsZWFuLXVwLXRocmVhZC1iZWZvcmUtZnJlZS5wYXRjaAorCisjIENWRS0yMDI2LTMxODA2CitQ YXRjaDogICAgICAgICAgY29kZWMtbnNjLWxpbWl0LWNvcHktYXJlYS1pbi1uc2NfcHJvY2Vzc19t ZXNzYWdlLnBhdGNoCitQYXRjaDogICAgICAgICAgY29kZWMtbnNjLWZpeC11c2Utb2YtbnNjX3By b2Nlc3NfbWVzc2FnZS5wYXRjaAorCisjIENWRS0yMDI2LTMzOTg0CitQYXRjaDogICAgICAgICAg Y29kZWMtY2xlYXItdXBkYXRlLUNMRUFSX1ZCQVJfRU5UUlktc2l6ZS1hZnRlci1hbGxvYy5wYXRj aAorCisjIENWRS0yMDI2LTMzOTgzCitQYXRjaDogICAgICAgICAgY29kZWMtcHJvZ3Jlc3NpdmUt ZmFpbC1wcm9ncmVzc2l2ZV9yZnhfcXVhbnRfc3ViLW9uLWludmFsaWQtdmFsdWVzLnBhdGNoCitQ YXRjaDogICAgICAgICAgY29kZWMtcHJvZ3Jlc3NpdmUtZml4LXVuZGVyZmxvdy1ndWFyZC1pbi1w cm9ncmVzc2l2ZV9yZnhfcXVhbnRfc3ViLnBhdGNoCisKKyMgQ1ZFLTIwMjYtMjY5ODYKK1BhdGNo OiAgICAgICAgICBjbGllbnQteDExLWZpeC14Zl9yYWlsX3dpbmRvd19jb21tb24tY2xlYW51cC5w YXRjaAorCisjIENWRS0yMDI2LTI3OTUxCitQYXRjaDogICAgICAgICAgYWxsb2NhdGlvbnMtZml4 LWdyb3d0aC1vZi1wcmVhbGxvY2F0ZWQtYnVmZmVycy5wYXRjaAorCisjIENWRS0yMDI2LTI5Nzc1 CitQYXRjaDogICAgICAgICAgY2FjaGUtYml0bWFwLW92ZXJhbGxvY2F0ZS1iaXRtYXAtY2FjaGUu cGF0Y2gKK1BhdGNoOiAgICAgICAgICBjYWNoZS1iaXRtYXAtaW5pdGlhbGl6ZS1vdmVyYWxsb2Nh dGVkLWJpdG1hcC1jYWNoZS1leHRyYS1zbG90LnBhdGNoCisKKyMgQ1ZFLTIwMjYtMzE4ODQKK1Bh dGNoOiAgICAgICAgICBjb2RlYy1kc3AtYWRkLWZvcm1hdC1jaGVja3MucGF0Y2gKKworIyBDVkUt MjAyNi0zMTg4MworIyBDVkUtMjAyNi0zMTg4NQorUGF0Y2g6ICAgICAgICAgIGNvZGVjLWRzcC1m aXgtYXJyYXktYm91bmRzLWNoZWNrcy5wYXRjaAorCisjIENWRS0yMDI2LTMzOTg1CitQYXRjaDog ICAgICAgICAgY29kZWMtY2xlYXItdXBkYXRlLWNsZWFyX2dseXBoX2VudHJ5LWNvdW50LWFmdGVy LWFsbG9jLnBhdGNoCisKKyMgQ1ZFLTIwMjYtMjU5NTIKK1BhdGNoOiAgICAgICAgICBjbGllbnQt eDExLWxvY2stYXBwd2luZG93LnBhdGNoCitQYXRjaDogICAgICAgICAgY2xpZW50LXgxMS1pbXBy b3ZlLXJhaWxzLXdpbmRvdy1sb2NraW5nLnBhdGNoCitQYXRjaDogICAgICAgICAgY2xpZW50LXgx MS1yZWZhY3Rvci1sb2NraW5nLnBhdGNoCitQYXRjaDogICAgICAgICAgY2xpZW50LXgxMS1maXgt ZGVhZGxvY2stb24tb3V0cHV0LWV4cG9zZS5wYXRjaAorCisjIENWRS0yMDI2LTQ1NzAwCitQYXRj aDogICAgICAgICAgY29kZWMtcGxhbmFyLWZpeC1ib3VuZHMtY2hlY2tzLnBhdGNoCisKKyMgQ1ZF LTIwMjYtNjg1ODAKK1BhdGNoOiAgICAgICAgICBjaGFubmVscy1hdWRpbi1saW1pdC1GcmFtZXNQ ZXJQYWNrZXQucGF0Y2gKKworIyBDVkUtMjAyNi02NzI5OQorUGF0Y2g6ICAgICAgICAgIGNvcmUt bWVzc2FnZS1maXgtdXBkYXRlX21lc3NhZ2VfV2luZG93SWNvbi5wYXRjaAorCisjIENWRS0yMDI2 LTY0NjI0CitQYXRjaDogICAgICAgICAgY2xpZW50LWNvbW1vbi1kZWFjdGl2YXRlLWNsaS1wYXJz aW5nLWluLXJkcC1maWxlcy5wYXRjaAorCisjIENWRS0yMDI2LTY3Mjg5CitQYXRjaDogICAgICAg ICAgd2lucHItY3J0LWFkZC1mdW5jdGlvbnMtdG8tdGVzdC1zdHJpbmcucGF0Y2gKK1BhdGNoOiAg ICAgICAgICBjb3JlLXJlZGlyZWN0aW9uLWNoZWNrLXJlZGlyZWN0aW9uLXZhbHVlcy1mb3ItdmFs aWRpdHkucGF0Y2gKK1BhdGNoOiAgICAgICAgICBjb3JlLXJlZGlyZWN0aW9uLXJlbGF4LWNoZWNr cy5wYXRjaAorCiBCdWlsZFJlcXVpcmVzOiAgZ2NjCiBCdWlsZFJlcXVpcmVzOiAgZ2NjLWMrKwog QnVpbGRSZXF1aXJlczogIGFsc2EtbGliLWRldmVsCkBAIC0xNDMsNiArMjc0LDggQEAgZmluZCAu IC1uYW1lICIqLmgiIC1leGVjIGNobW9kIDY2NCB7fSBcOwogZmluZCAuIC1uYW1lICIqLmMiIC1l eGVjIGNobW9kIDY2NCB7fSBcOwogCiAlYnVpbGQKKyMgVE9ETzogUGxlYXNlIHN1Ym1pdCBhbiBp c3N1ZSB0byB1cHN0cmVhbSAocmhieiMyMzgwNjA3KQorZXhwb3J0IENNQUtFX1BPTElDWV9WRVJT SU9OX01JTklNVU09My41CiAlY21ha2UgJXs/X2NtYWtlX3NraXBfcnBhdGh9IFwKICAgICAtRENN QUtFX0lOU1RBTExfTElCRElSOlBBVEg9JXtfbGlifSBcCiAgICAgLURXSVRIX0FMU0E9T04gXApA QCAtMjY4LDYgKzQwMSw1NCBAQCBybSAtcmZ2ICV7YnVpbGRyb290fSV7X2JpbmRpcn0KICV7X2xp YmRpcn0vcGtnY29uZmlnL3dpbnByLXRvb2xzMi5wYwogCiAlY2hhbmdlbG9nCisqIE1vbiBBdWcg MzEgMjAyNiBPbmRyZWogSG9seSA8b2hvbHlAcmVkaGF0LmNvbT4gLSAyLjExLjctNworLSBCYWNr cG9ydCBzZXZlcmFsIENWRSBmaXhlcyAoQ1ZFLTIwMjYtMjI4NTIsIENWRS0yMDI2LTIyODU0LCBD VkUtMjAyNi0yMjg1NSwKKyAgQ1ZFLTIwMjYtMjI4NTYsIENWRS0yMDI2LTIyODU4LCBDVkUtMjAy Ni0yMjg1OSwgQ1ZFLTIwMjYtMjM1MzAsCisgIENWRS0yMDI2LTIzNTMxLCBDVkUtMjAyNi0yMzUz MiwgQ1ZFLTIwMjYtMjM1MzMsIENWRS0yMDI2LTIzNTM0LAorICBDVkUtMjAyNi0yMzczMiwgQ1ZF LTIwMjYtMjM4ODMsIENWRS0yMDI2LTIzODg0LCBDVkUtMjAyNi0yMzk0OCwKKyAgQ1ZFLTIwMjYt MjQ0OTEsIENWRS0yMDI2LTI0Njc1LCBDVkUtMjAyNi0yNDY3NiwgQ1ZFLTIwMjYtMjQ2NzksCisg IENWRS0yMDI2LTI0NjgxLCBDVkUtMjAyNi0yNDY4MywgQ1ZFLTIwMjYtMjQ2ODQsIENWRS0yMDI2 LTI1OTUyLAorICBDVkUtMjAyNi0yNjk1NSwgQ1ZFLTIwMjYtMjY5NjUsIENWRS0yMDI2LTI2OTg2 LCBDVkUtMjAyNi0yNzk1MSwKKyAgQ1ZFLTIwMjYtMjk3NzUsIENWRS0yMDI2LTMxODA2LCBDVkUt MjAyNi0zMTg4MywgQ1ZFLTIwMjYtMzE4ODQsCisgIENWRS0yMDI2LTMxODg1LCBDVkUtMjAyNi0z Mzk4MywgQ1ZFLTIwMjYtMzM5ODQsIENWRS0yMDI2LTMzOTg1LAorICBDVkUtMjAyNi00NTcwMCwg Q1ZFLTIwMjYtNjQ2MjQsIENWRS0yMDI2LTY3Mjg5LCBDVkUtMjAyNi02NzI5OSBhbmQKKyAgQ1ZF LTIwMjYtNjg1ODApCisgIFJlc29sdmVzOiByaGJ6IzI0MzA5MTUsIHJoYnojMjQzMDkwNCwgcmhi eiMyNDMwODk0LCByaGJ6IzI0MzA5MTAsIHJoYnojMjQzMDg5OQorICBSZXNvbHZlczogcmhieiMy NDMwOTIwLCByaGJ6IzI0MzA5MjksIHJoYnojMjQyOTc5MiwgcmhieiMyNDI5ODAxLCByaGJ6IzI0 Mjk3ODIKKyAgUmVzb2x2ZXM6IHJoYnojMjQ0MzE0NCwgcmhieiMyNDQyOTcxLCByaGJ6IzI0Mjk3 ODAsIHJoYnojMjQyOTc5NiwgcmhieiMyNDI5Nzg2CisgIFJlc29sdmVzOiByaGJ6IzI0MzgyNTgs IHJoYnojMjQzODI1NiwgcmhieiMyNDM4MjUyLCByaGJ6IzI0MzgzMjAsIHJoYnojMjQzODI1Mwor ICBSZXNvbHZlczogcmhieiMyNDM4MjU0LCByaGJ6IzI0MzgyNTEsIHJoYnojMjQzODI2MSwgcmhi eiMyNDQ3MzkyLCByaGJ6IzI0NTMyNDEKKyAgUmVzb2x2ZXM6IHJoYnojMjQ1MzIzOCwgcmhieiMy NDQyODAyLCByaGJ6IzI0NDI4MDAsIHJoYnojMjQ0NzQyNywgcmhieiMyNDQ3NDMwCisgIFJlc29s dmVzOiByaGJ6IzI0NDc0MTEsIHJoYnojMjQ0NzQxNCwgcmhieiMyNDUzMjQ1LCByaGJ6IzI0NDI4 MDcsIHJoYnojMjQ5MTY4NAorICBSZXNvbHZlczogcmhieiMyNTEwMjk0LCByaGJ6IzI1MTA2NDUs IHJoYnojMjUwMzY0NCwgcmhieiMyNTEwNDQ2CisKKyogV2VkIEp1bCAxNSAyMDI2IEZlZG9yYSBS ZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMi4xMS43LTE1 CistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDVf TWFzc19SZWJ1aWxkCisKKyogRnJpIEp1biAxMiAyMDI2IFlhYWtvdiBTZWxrb3dpdHogPHlzZWxr b3dpQHJlZGhhdC5jb20+IC0gMi4xMS43LTE0CistIFJlYnVpbHQgZm9yIG9wZW5zc2wgNC4wCisK KyogTW9uIEp1biAwOCAyMDI2IEZyYW50acWhZWsgWmF0bG91a2FsIDxmemF0bG91a0ByZWRoYXQu Y29tPiAtIDIuMTEuNy0xMworLSBSZWJ1aWx0IGZvciBpY3UgNzguMworCisqIFRodSBBcHIgMTYg MjAyNiBDcmlzdGlhbiBMZSA8Z2l0QGxlY3Jpcy5kZXY+IC0gMi4xMS43LTEyCistIEFsbG93IHRv IGJ1aWxkIHdpdGggQ01ha2UgNC4wIChyaGJ6IzIzODA2MDcpCisKKyogRnJpIEphbiAxNiAyMDI2 IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0g Mi4xMS43LTExCistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9G ZWRvcmFfNDRfTWFzc19SZWJ1aWxkCisKKyogV2VkIEF1ZyAwNiAyMDI1IEZyYW50acWhZWsgWmF0 bG91a2FsIDxmemF0bG91a0ByZWRoYXQuY29tPiAtIDIuMTEuNy0xMAorLSBSZWJ1aWx0IGZvciBp Y3UgNzcuMQorCisqIFdlZCBKdWwgMjMgMjAyNSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8 cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDIuMTEuNy05CistIFJlYnVpbHQgZm9yIGh0dHBz Oi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDNfTWFzc19SZWJ1aWxkCisKKyogVGh1 IE1hciAxMyAyMDI1IEZhYmlvIFZhbGVudGluaSA8ZGVjYXRob3JwZUBnbWFpbC5jb20+IC0gMi4x MS43LTgKKy0gUmVidWlsZCBmb3Igbm9vcGVuaDI2NCAyLjYuMAorCisqIFRodSBKYW4gMTYgMjAy NSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAt IDIuMTEuNy03CistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9G ZWRvcmFfNDJfTWFzc19SZWJ1aWxkCisKICogU3VuIERlYyAwOCAyMDI0IFBldGUgV2FsdGVyIDxw d2FsdGVyQGZlZG9yYXByb2plY3Qub3JnPiAtIDIuMTEuNy02CiAtIFJlYnVpbGQgZm9yIElDVSA3 NgogCgpkaWZmIC0tZ2l0IGEvZ2RpLWdmeC1wcm9wZXJseS1jbGFtcC1TdXJmYWNlVG9TdXJmYWNl LnBhdGNoIGIvZ2RpLWdmeC1wcm9wZXJseS1jbGFtcC1TdXJmYWNlVG9TdXJmYWNlLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMDI4NzcKLS0tIC9kZXYvbnVsbAor KysgYi9nZGktZ2Z4LXByb3Blcmx5LWNsYW1wLVN1cmZhY2VUb1N1cmZhY2UucGF0Y2gKQEAgLTAs MCArMSw1MCBAQAorRnJvbSBlZjk5ZGEwMjA1OTlhNjY2YjdkMTcxZWVjNmFiNTI3YjQ3ZGQzM2Yz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogT25kcmVqIEhvbHkgPG9ob2x5QHJlZGhh dC5jb20+CitEYXRlOiBUaHUsIDIyIEphbiAyMDI2IDEyOjQ3OjQyICswMTAwCitTdWJqZWN0OiBb UEFUQ0hdIFtnZGksZ2Z4XSBwcm9wZXJseSBjbGFtcCBTdXJmYWNlVG9TdXJmYWNlCisKK0JhY2tw b3J0IG9mIGNvbW1pdCBjNGE3YzM3MTM0MmVkZjBkMzA3Y2VhNzI4ZjU2ZDMzMDJmMGFiMzhjLgor CitDby1BdXRob3JlZC1CeTogQ2xhdWRlIDxub3JlcGx5QGFudGhyb3BpYy5jb20+CistLS0KKyBs aWJmcmVlcmRwL2dkaS9nZnguYyB8IDkgKysrKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2xpYmZyZWVyZHAvZ2Rp L2dmeC5jIGIvbGliZnJlZXJkcC9nZGkvZ2Z4LmMKK2luZGV4IDM5NzA3MTVlMC4uOTY4YTVhMTdj IDEwMDY0NAorLS0tIGEvbGliZnJlZXJkcC9nZGkvZ2Z4LmMKKysrKyBiL2xpYmZyZWVyZHAvZ2Rp L2dmeC5jCitAQCAtMTE3NSw3ICsxMTc1LDYgQEAgc3RhdGljIFVJTlQgZ2RpX1N1cmZhY2VUb1N1 cmZhY2UoUmRwZ2Z4Q2xpZW50Q29udGV4dCogY29udGV4dCwKKyAJVUlOVCBzdGF0dXMgPSBFUlJP Ul9JTlRFUk5BTF9FUlJPUjsKKyAJVUlOVDE2IGluZGV4OworIAlCT09MIHNhbWVTdXJmYWNlOwor LQlVSU5UMzIgbldpZHRoLCBuSGVpZ2h0OworIAljb25zdCBSRUNUQU5HTEVfMTYqIHJlY3RTcmM7 CisgCVJFQ1RBTkdMRV8xNiBpbnZhbGlkUmVjdDsKKyAJZ2RpR2Z4U3VyZmFjZSogc3VyZmFjZVNy YzsKK0BAIC0xMTk5LDggKzExOTgsOCBAQCBzdGF0aWMgVUlOVCBnZGlfU3VyZmFjZVRvU3VyZmFj ZShSZHBnZnhDbGllbnRDb250ZXh0KiBjb250ZXh0LAorIAlpZiAoIWlzX3JlY3RfdmFsaWQocmVj dFNyYywgc3VyZmFjZVNyYy0+d2lkdGgsIHN1cmZhY2VTcmMtPmhlaWdodCkpCisgCQlnb3RvIGZh aWw7CisgCistCW5XaWR0aCA9IHJlY3RTcmMtPnJpZ2h0IC0gcmVjdFNyYy0+bGVmdDsKKy0Jbkhl aWdodCA9IHJlY3RTcmMtPmJvdHRvbSAtIHJlY3RTcmMtPnRvcDsKKysJY29uc3QgVUlOVDMyIG5X aWR0aCA9IHJlY3RTcmMtPnJpZ2h0IC0gcmVjdFNyYy0+bGVmdDsKKysJY29uc3QgVUlOVDMyIG5I ZWlnaHQgPSByZWN0U3JjLT5ib3R0b20gLSByZWN0U3JjLT50b3A7CisgCisgCWZvciAoaW5kZXgg PSAwOyBpbmRleCA8IHN1cmZhY2VUb1N1cmZhY2UtPmRlc3RQdHNDb3VudDsgaW5kZXgrKykKKyAJ eworQEAgLTEyMDksOCArMTIwOCwxMCBAQCBzdGF0aWMgVUlOVCBnZGlfU3VyZmFjZVRvU3VyZmFj ZShSZHBnZnhDbGllbnRDb250ZXh0KiBjb250ZXh0LAorIAkJaWYgKCFpc19yZWN0X3ZhbGlkKCZy ZWN0LCBzdXJmYWNlRHN0LT53aWR0aCwgc3VyZmFjZURzdC0+aGVpZ2h0KSkKKyAJCQlnb3RvIGZh aWw7CisgCisrCQljb25zdCBVSU5UMzIgcndpZHRoID0gcmVjdC5yaWdodCAtIHJlY3QubGVmdDsK KysJCWNvbnN0IFVJTlQzMiByaGVpZ2h0ID0gcmVjdC5ib3R0b20gLSByZWN0LnRvcDsKKyAJCWlm ICghZnJlZXJkcF9pbWFnZV9jb3B5KHN1cmZhY2VEc3QtPmRhdGEsIHN1cmZhY2VEc3QtPmZvcm1h dCwgc3VyZmFjZURzdC0+c2NhbmxpbmUsCistCQkgICAgICAgICAgICAgICAgICAgICAgICBkZXN0 UHQtPngsIGRlc3RQdC0+eSwgbldpZHRoLCBuSGVpZ2h0LCBzdXJmYWNlU3JjLT5kYXRhLAorKwkJ ICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFB0LT54LCBkZXN0UHQtPnksIHJ3aWR0aCwgcmhl aWdodCwgc3VyZmFjZVNyYy0+ZGF0YSwKKyAJCSAgICAgICAgICAgICAgICAgICAgICAgIHN1cmZh Y2VTcmMtPmZvcm1hdCwgc3VyZmFjZVNyYy0+c2NhbmxpbmUsIHJlY3RTcmMtPmxlZnQsCisgCQkg ICAgICAgICAgICAgICAgICAgICAgICByZWN0U3JjLT50b3AsIE5VTEwsIEZSRUVSRFBfRkxJUF9O T05FKSkKKyAJCQlnb3RvIGZhaWw7CistLSAKKzIuNTIuMAorCgpkaWZmIC0tZ2l0IGEvZ2RpLWdy YXBoaWNzLVVzZS1mcmVlcmRwX2dseXBoX2NvbnZlcnRfZXgucGF0Y2ggYi9nZGktZ3JhcGhpY3Mt VXNlLWZyZWVyZHBfZ2x5cGhfY29udmVydF9leC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4wZTliNTRlCi0tLSAvZGV2L251bGwKKysrIGIvZ2RpLWdyYXBoaWNzLVVz ZS1mcmVlcmRwX2dseXBoX2NvbnZlcnRfZXgucGF0Y2gKQEAgLTAsMCArMSwzNiBAQAorRnJvbSBk MjVmZmQ2MDhiZjJiZDM4MDIyYTM5MzBkMGIzZmMxYjdjODczYzFhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogT25kcmVqIEhvbHkgPG9ob2x5QHJlZGhhdC5jb20+CitEYXRlOiBTYXQs IDI4IE1hciAyMDI2IDEyOjEzOjA2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFtnZGksZ3JhcGhp Y3NdIFVzZSBmcmVlcmRwX2dseXBoX2NvbnZlcnRfZXgKKworQmFja3BvcnQgb2YgY29tbWl0IDlm MGViM2I3ZDQzMDY5YTFlOTczNDY0YmNiNDNkMWVmOTY1YWU2NWUuCisKK01hZGUtd2l0aDogQ3Vy c29yCistLS0KKyBsaWJmcmVlcmRwL2dkaS9ncmFwaGljcy5jIHwgMyArLS0KKyAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWJm cmVlcmRwL2dkaS9ncmFwaGljcy5jIGIvbGliZnJlZXJkcC9nZGkvZ3JhcGhpY3MuYworaW5kZXgg ZGFiMTU5YzQzLi5iMTEyOWZiN2MgMTAwNjQ0CistLS0gYS9saWJmcmVlcmRwL2dkaS9ncmFwaGlj cy5jCisrKysgYi9saWJmcmVlcmRwL2dkaS9ncmFwaGljcy5jCitAQCAtMjYyLDcgKzI2Miw2IEBA IHN0YXRpYyBCWVRFKiBmcmVlcmRwX2dseXBoX2NvbnZlcnRfZXgoVUlOVDMyIHdpZHRoLCBVSU5U MzIgaGVpZ2h0LCBjb25zdCBCWVRFKiBkCisgCisgc3RhdGljIEJPT0wgZ2RpX0dseXBoX05ldyhy ZHBDb250ZXh0KiBjb250ZXh0LCBjb25zdCByZHBHbHlwaCogZ2x5cGgpCisgeworLQlCWVRFKiBk YXRhOworIAlnZGlHbHlwaCogZ2RpX2dseXBoOworIAorIAlpZiAoIWNvbnRleHQgfHwgIWdseXBo KQorQEAgLTI3NSw3ICsyNzQsNyBAQCBzdGF0aWMgQk9PTCBnZGlfR2x5cGhfTmV3KHJkcENvbnRl eHQqIGNvbnRleHQsIGNvbnN0IHJkcEdseXBoKiBnbHlwaCkKKyAJCXJldHVybiBGQUxTRTsKKyAK KyAJZ2RpX2dseXBoLT5oZGMtPmZvcm1hdCA9IFBJWEVMX0ZPUk1BVF9NT05POworLQlkYXRhID0g ZnJlZXJkcF9nbHlwaF9jb252ZXJ0KGdseXBoLT5jeCwgZ2x5cGgtPmN5LCBnbHlwaC0+YWopOwor KwlCWVRFKiBkYXRhID0gZnJlZXJkcF9nbHlwaF9jb252ZXJ0X2V4KGdseXBoLT5jeCwgZ2x5cGgt PmN5LCBnbHlwaC0+YWosIGdseXBoLT5jYik7CisgCisgCWlmICghZGF0YSkKKyAJeworLS0gCisy LjUzLjAKKwoKZGlmZiAtLWdpdCBhL3V0aWxzLXNtYXJ0Y2FyZC1hZGQtbGVuZ3RoLXZhbGlkaXR5 LWNoZWNrcy5wYXRjaCBiL3V0aWxzLXNtYXJ0Y2FyZC1hZGQtbGVuZ3RoLXZhbGlkaXR5LWNoZWNr cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTJlYmQ3Ci0tLSAv ZGV2L251bGwKKysrIGIvdXRpbHMtc21hcnRjYXJkLWFkZC1sZW5ndGgtdmFsaWRpdHktY2hlY2tz LnBhdGNoCkBAIC0wLDAgKzEsNzkgQEAKK0Zyb20gMDcwZjllMDcwYzU5YTEyMWNkOTM1NDE4MzVk YzAwODYwODRiYjZhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9uZHJlaiBIb2x5 IDxvaG9seUByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAxMTowNTo1OSArMDEw MAorU3ViamVjdDogW1BBVENIXSBbdXRpbHMsc21hcnRjYXJkXSBhZGQgbGVuZ3RoIHZhbGlkaXR5 IGNoZWNrcworCitCYWNrcG9ydCBvZiBjb21taXQgNTdjNTY0N2Q5OGMyYTAyNmRlOGI2ODExNTlj YjE4OGNhMDQzOWVmOC4KKworQ28tQXV0aG9yZWQtQnk6IEN1cnNvciA8Y3Vyc29yYWdlbnRAY3Vy c29yLmNvbT4KKy0tLQorIGNoYW5uZWxzL3NtYXJ0Y2FyZC9jbGllbnQvc21hcnRjYXJkX3BhY2su YyB8IDI3ICsrKysrKysrKysrKysrKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0 aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NoYW5uZWxzL3NtYXJ0Y2Fy ZC9jbGllbnQvc21hcnRjYXJkX3BhY2suYyBiL2NoYW5uZWxzL3NtYXJ0Y2FyZC9jbGllbnQvc21h cnRjYXJkX3BhY2suYworaW5kZXggZjcwZWI0ZTVkLi42ODdmMTExMGIgMTAwNjQ0CistLS0gYS9j aGFubmVscy9zbWFydGNhcmQvY2xpZW50L3NtYXJ0Y2FyZF9wYWNrLmMKKysrKyBiL2NoYW5uZWxz L3NtYXJ0Y2FyZC9jbGllbnQvc21hcnRjYXJkX3BhY2suYworQEAgLTk4LDEzICs5OCwxNiBAQCBz dGF0aWMgQk9PTCBzbWFydGNhcmRfbmRyX3BvaW50ZXJfcmVhZF8od1N0cmVhbSogcywgVUlOVDMy KiBpbmRleCwgVUlOVDMyKiBwdHIsCisgCXJldHVybiBUUlVFOworIH0KKyAKKy1zdGF0aWMgTE9O RyBzbWFydGNhcmRfbmRyX3JlYWQod1N0cmVhbSogcywgQllURSoqIGRhdGEsIHNpemVfdCBtaW4s IHNpemVfdCBlbGVtZW50U2l6ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRy X3B0cl90IHR5cGUpCisrc3RhdGljIExPTkcgc21hcnRjYXJkX25kcl9yZWFkX2V4KHdTdHJlYW0q IHMsIEJZVEUqKiBkYXRhLCBzaXplX3QgbWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplX3QgZWxlbWVudFNpemUsIG5kcl9wdHJfdCB0eXBlLCBzaXplX3QqIHBsZW4p CisgeworIAlzaXplX3QgbGVuLCBvZmZzZXQsIGxlbjI7CisgCXZvaWQqIHI7CisgCXNpemVfdCBy ZXF1aXJlZDsKKyAKKysJaWYgKHBsZW4pCisrCQkqcGxlbiA9IDA7CisrCisgCXN3aXRjaCAodHlw ZSkKKyAJeworIAkJY2FzZSBORFJfUFRSX0ZVTEw6CitAQCAtMTgxLDExICsxODQsMjAgQEAgc3Rh dGljIExPTkcgc21hcnRjYXJkX25kcl9yZWFkKHdTdHJlYW0qIHMsIEJZVEUqKiBkYXRhLCBzaXpl X3QgbWluLCBzaXplX3QgZWxlbWUKKyAJaWYgKCFyKQorIAkJcmV0dXJuIFNDQVJEX0VfTk9fTUVN T1JZOworIAlTdHJlYW1fUmVhZChzLCByLCBsZW4pOworLQlzbWFydGNhcmRfdW5wYWNrX3JlYWRf c2l6ZV9hbGlnbihOVUxMLCBzLCBsZW4sIDQpOworKwljb25zdCBMT05HIHBhZCA9IHNtYXJ0Y2Fy ZF91bnBhY2tfcmVhZF9zaXplX2FsaWduKE5VTEwsIHMsIGxlbiwgNCk7CisrCWxlbiArPSAoc2l6 ZV90KXBhZDsKKyAJKmRhdGEgPSByOworKwlpZiAocGxlbikKKysJCSpwbGVuID0gbGVuOworIAly ZXR1cm4gU1RBVFVTX1NVQ0NFU1M7CisgfQorIAorK3N0YXRpYyBMT05HIHNtYXJ0Y2FyZF9uZHJf cmVhZCh3U3RyZWFtKiBzLCBCWVRFKiogZGF0YSwgc2l6ZV90IG1pbiwgc2l6ZV90IGVsZW1lbnRT aXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZHJfcHRyX3QgdHlwZSkKKyt7 CisrCXJldHVybiBzbWFydGNhcmRfbmRyX3JlYWRfZXgocywgZGF0YSwgbWluLCBlbGVtZW50U2l6 ZSwgdHlwZSwgTlVMTCk7CisrfQorKworIHN0YXRpYyBCT09MIHNtYXJ0Y2FyZF9uZHJfcG9pbnRl cl93cml0ZSh3U3RyZWFtKiBzLCBVSU5UMzIqIGluZGV4LCBEV09SRCBsZW5ndGgpCisgeworIAlj b25zdCBVSU5UMzIgbmRyUHRyID0gMHgyMDAwMCArICgqaW5kZXgpICogNDsKK0BAIC0zNDI3LDEy ICszNDM5LDE1IEBAIExPTkcgc21hcnRjYXJkX3VucGFja19zZXRfYXR0cmliX2NhbGwoU01BUlRD QVJEX0RFVklDRSogc21hcnRjYXJkLCB3U3RyZWFtKiBzLCBTCisgCisgCWlmIChuZHJQdHIpCisg CXsKKy0JCS8vIFRPRE86IGNhbGwtPmNiQXR0ckxlbiB3YXMgbGFyZ2VyIHRoYW4gdGhlIHBvaW50 ZXIgdmFsdWUuCistCQkvLyBUT0RPOiBNYXliZSBuZWVkIHRvIHJlZmluZSB0aGUgY2hlY2tzPwor LQkJc3RhdHVzID0gc21hcnRjYXJkX25kcl9yZWFkKHMsICZjYWxsLT5wYkF0dHIsIDAsIDEsIE5E Ul9QVFJfU0lNUExFKTsKKysJCXNpemVfdCBsZW4gPSAwOworKwkJc3RhdHVzID0gc21hcnRjYXJk X25kcl9yZWFkX2V4KHMsICZjYWxsLT5wYkF0dHIsIDAsIDEsIE5EUl9QVFJfU0lNUExFLCAmbGVu KTsKKyAJCWlmIChzdGF0dXMgIT0gU0NBUkRfU19TVUNDRVNTKQorIAkJCXJldHVybiBzdGF0dXM7 CisrCQlpZiAoY2FsbC0+Y2JBdHRyTGVuID4gbGVuKQorKwkJCWNhbGwtPmNiQXR0ckxlbiA9IChE V09SRClsZW47CisgCX0KKysJZWxzZQorKwkJY2FsbC0+Y2JBdHRyTGVuID0gMDsKKyAJc21hcnRj YXJkX3RyYWNlX3NldF9hdHRyaWJfY2FsbChzbWFydGNhcmQsIGNhbGwpOworIAlyZXR1cm4gU0NB UkRfU19TVUNDRVNTOworIH0KKy0tIAorMi41Mi4wCisKCmRpZmYgLS1naXQgYS93aW5wci1jcnQt YWRkLWZ1bmN0aW9ucy10by10ZXN0LXN0cmluZy5wYXRjaCBiL3dpbnByLWNydC1hZGQtZnVuY3Rp b25zLXRvLXRlc3Qtc3RyaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmJiMzY0YWMKLS0tIC9kZXYvbnVsbAorKysgYi93aW5wci1jcnQtYWRkLWZ1bmN0aW9ucy10 by10ZXN0LXN0cmluZy5wYXRjaApAQCAtMCwwICsxLDI2NiBAQAorRnJvbSBhN2E0N2JjMGJkYWI3 MjNiNjc0ZmIwNWY1MWU5M2FlMDA3ZWQ2NDEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogQXJtaW4gTm92YWsgPGFybWluLm5vdmFrQHRoaW5jYXN0LmNvbT4KK0RhdGU6IFRodSwgOSBK dWwgMjAyNiAwODozNDoyMyArMDIwMAorU3ViamVjdDogW1BBVENIXSBbd2lucHIsY3J0XSBhZGQg ZnVuY3Rpb25zIHRvIHRlc3Qgc3RyaW5nCisKKyogd2lucHJfc3RyX2hhc19uZXdsaW5lcyB0byBj aGVjayBmb3IgbmV3bGluZXMgaW4gYSBzdHJpbmcKKyogd2lucHJfc3RyX2lzX3ZhbGlkX3VybCBh bmQgd2lucHJfc3RyX2lzX3ZhbGlkX3VybE4gdG8gY2hlY2sgaWYgYQorICBzdHJpbmcgaXMgYSB2 YWxpZCB1cmwKKy0tLQorIHdpbnByL2luY2x1ZGUvd2lucHIvc3RyaW5nLmggICAgICAgICB8ICA1 ICsrCisgd2lucHIvbGlid2lucHIvY3J0L0NNYWtlTGlzdHMudHh0ICAgIHwgIDggKysrCisgd2lu cHIvbGlid2lucHIvY3J0L3N0cmluZy5jICAgICAgICAgIHwgOTYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKworIHdpbnByL2xpYndpbnByL2NydC90ZXN0L1Rlc3RTdHJpbmcuYyB8IDgyICsr KysrKysrKysrKysrKysrKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgMTkxIGluc2VydGlvbnMo KykKKworZGlmZiAtLWdpdCBhL3dpbnByL2luY2x1ZGUvd2lucHIvc3RyaW5nLmggYi93aW5wci9p bmNsdWRlL3dpbnByL3N0cmluZy5oCitpbmRleCBiYjk4ZGZmZGMuLjdkZTlmOTM0ZiAxMDA2NDQK Ky0tLSBhL3dpbnByL2luY2x1ZGUvd2lucHIvc3RyaW5nLmgKKysrKyBiL3dpbnByL2luY2x1ZGUv d2lucHIvc3RyaW5nLmgKK0BAIC0zMSw2ICszMSwxMSBAQCBleHRlcm4gIkMiCisgeworICNlbmRp ZgorCisrCVdJTlBSX0FQSSBCT09MIHdpbnByX3N0cl9pc192YWxpZF91cmwoY29uc3QgY2hhciog c3RyKTsKKysJV0lOUFJfQVBJIEJPT0wgd2lucHJfc3RyX2lzX3ZhbGlkX3VybE4oY29uc3QgY2hh ciogc3RyLCBzaXplX3QgbGVuKTsKKysJV0lOUFJfQVBJIEJPT0wgd2lucHJfc3RyX2hhc19uZXds aW5lcyhjb25zdCBjaGFyKiBzdHIpOworKworKworIAlXSU5QUl9BUEkgQk9PTCB3aW5wcl9zdHJf YXBwZW5kKGNvbnN0IGNoYXIqIHdoYXQsIGNoYXIqIGJ1ZmZlciwgc2l6ZV90IHNpemUsCisgCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogc2VwYXJhdG9yKTsKKwor ZGlmZiAtLWdpdCBhL3dpbnByL2xpYndpbnByL2NydC9DTWFrZUxpc3RzLnR4dCBiL3dpbnByL2xp YndpbnByL2NydC9DTWFrZUxpc3RzLnR4dAoraW5kZXggNWVlNGJiZDFlLi41MzhlNzRkY2YgMTAw NjQ0CistLS0gYS93aW5wci9saWJ3aW5wci9jcnQvQ01ha2VMaXN0cy50eHQKKysrKyBiL3dpbnBy L2xpYndpbnByL2NydC9DTWFrZUxpc3RzLnR4dAorQEAgLTIyLDYgKzIyLDE0IEBAIHNldCAoQ1JU X0ZJTEVTIGFsaWdubWVudC5jCisgCXVuaWNvZGUuYworIAlzdHJpbmcuYykKKworK2luY2x1ZGUo Q2hlY2tTeW1ib2xFeGlzdHMpCisrY2hlY2tfc3ltYm9sX2V4aXN0cyhyZWdjb21wIHJlZ2V4Lmgg V0lOUFJfSEFWRV9SRUdDT01QKQorK2NoZWNrX3N5bWJvbF9leGlzdHMocmVnZXhlYyByZWdleC5o IFdJTlBSX0hBVkVfUkVHRVhFQykKKytjaGVja19zeW1ib2xfZXhpc3RzKHJlZ2ZyZWUgcmVnZXgu aCBXSU5QUl9IQVZFX1JFR0ZSRUUpCisraWYoV0lOUFJfSEFWRV9SRUdDT01QIEFORCBXSU5QUl9I QVZFX1JFR0VYRUMgQU5EIFdJTlBSX0hBVkVfUkVHRlJFRSkKKysgIHdpbnByX2RlZmluaXRpb25f YWRkKC1EV0lOUFJfSEFWRV9SRUdDT01QKQorK2VuZGlmKCkKKysKKyBpZiAoTk9UIFdJVEhfSUNV KQorIAlzZXQgKENSVF9GSUxFUyAke0NSVF9GSUxFU30KKyAJCXV0Zi5jCitkaWZmIC0tZ2l0IGEv d2lucHIvbGlid2lucHIvY3J0L3N0cmluZy5jIGIvd2lucHIvbGlid2lucHIvY3J0L3N0cmluZy5j CitpbmRleCA2NTk2YjQyZjUuLjQ2NWI4ZDEzMyAxMDA2NDQKKy0tLSBhL3dpbnByL2xpYndpbnBy L2NydC9zdHJpbmcuYworKysrIGIvd2lucHIvbGlid2lucHIvY3J0L3N0cmluZy5jCitAQCAtMjks MTEgKzI5LDcxIEBACisgI2luY2x1ZGUgPHdpbnByL2Fzc2VydC5oPgorICNpbmNsdWRlIDx3aW5w ci9lbmRpYW4uaD4KKworKyNpZiBkZWZpbmVkKFdJTlBSX0hBVkVfUkVHQ09NUCkKKysjaW5jbHVk ZSA8cmVnZXguaD4KKysjZW5kaWYKKysKKyAvKiBTdHJpbmcgTWFuaXB1bGF0aW9uIChDUlQpOiBo dHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvZjAxNTFzNHguYXNweCAqLwor CisgI2luY2x1ZGUgIi4uL2xvZy5oIgorICNkZWZpbmUgVEFHIFdJTlBSX1RBRygiY3J0IikKKwor K0JPT0wgd2lucHJfc3RyX2lzX3ZhbGlkX3VybE4oY29uc3QgY2hhciogc3RyLCBzaXplX3QgbGVu KQorK3sKKysJaWYgKCFzdHIgfHwgKGxlbiA9PSAwKSkKKysJCXJldHVybiBGQUxTRTsKKysKKysJ Y2hhciogdXJsID0gc3RybmR1cChzdHIsIGxlbik7CisrCWlmICghdXJsKQorKwkJcmV0dXJuIEZB TFNFOworKworKwljb25zdCBCT09MIHJjID0gd2lucHJfc3RyX2lzX3ZhbGlkX3VybCh1cmwpOwor KwlmcmVlKHVybCk7CisrCXJldHVybiByYzsKKyt9CisrCisrI2lmIGRlZmluZWQoX1dJTjMyKQor KyNpbmNsdWRlIDxzaGx3YXBpLmg+CisrCisrQk9PTCB3aW5wcl9zdHJfaXNfdmFsaWRfdXJsKGNv bnN0IGNoYXIqIHN0cikKKyt7CisrCWlmICghc3RyKQorKwkJcmV0dXJuIEZBTFNFOworKwlyZXR1 cm4gUGF0aElzVVJMQShzdHIpOworK30KKysKKysjZWxpZiBkZWZpbmVkKFdJTlBSX0hBVkVfUkVH Q09NUCkKKytCT09MIHdpbnByX3N0cl9pc192YWxpZF91cmwoY29uc3QgY2hhciogc3RyKQorK3sK KysJcmVnZXhfdCByZWdleDsKKysJY29uc3QgY2hhciBwYXR0ZXJuW10gPSAiXihbYS16XSs6Ly8p PyhbYS16QS1aMC05Li1dKykoOlswLTldKyk/KC9bYS16QS1aMC05Li8/PSYlLV0qKT8kIjsKKysJ aW50IHJldDsKKysKKysJaWYgKCFzdHIpCisrCQlyZXR1cm4gRkFMU0U7CisrCW1lbXNldCgmcmVn ZXgsIDAsIHNpemVvZihyZWdleCkpOworKworKwlyZXQgPSByZWdjb21wKCZyZWdleCwgcGF0dGVy biwgUkVHX0VYVEVOREVEKTsKKysJaWYgKHJldCkKKysJeworKwkJcHJpbnRmKCJDb3VsZCBub3Qg Y29tcGlsZSByZWdleFxuIik7CisrCQlyZXR1cm4gRkFMU0U7CisrCX0KKysKKysJcmV0ID0gcmVn ZXhlYygmcmVnZXgsIHN0ciwgMCwgTlVMTCwgMCk7CisrCXJlZ2ZyZWUoJnJlZ2V4KTsKKysJcmV0 dXJuIHJldCA9PSAwOworK30KKysKKysjZWxzZQorK0JPT0wgd2lucHJfc3RyX2lzX3ZhbGlkX3Vy bChjb25zdCBjaGFyKiBzdHIpCisreworKwlXSU5QUl9VTlVTRUQoc3RyKTsKKysJV0xvZ19XQVJO KFRBRywgIlVSTCB2YWxpZGF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgeW91ciBidWlsZCwgbm90IHBl cmZvcm1pbmcgY2hlY2suIik7CisrCXJldHVybiBUUlVFOworK30KKysjZW5kaWYKKysKKyBCT09M IHdpbnByX3N0cl9hcHBlbmQoY29uc3QgY2hhciogd2hhdCwgY2hhciogYnVmZmVyLCBzaXplX3Qg c2l6ZSwgY29uc3QgY2hhciogc2VwYXJhdG9yKQorIHsKKyAJY29uc3Qgc2l6ZV90IHVzZWQgPSBz dHJubGVuKGJ1ZmZlciwgc2l6ZSk7CitAQCAtNjM2LDMgKzY5NiwzOSBAQCBJTlQ2NCBHZXRMaW5l KGNoYXIqKiBsaW5lcHRyLCBzaXplX3QqIHNpemUsIEZJTEUqIHN0cmVhbSkKKyAJcmV0dXJuIC0x OworICNlbmRpZgorIH0KKysKKytCT09MIHdpbnByX3N0cl9oYXNfbmV3bGluZXMoY29uc3QgY2hh ciogc3RyKQorK3sKKysJaWYgKCFzdHIpCisrCQlyZXR1cm4gRkFMU0U7CisrCWRvCisrCXsKKysJ CWNoYXIgYyA9ICpzdHIrKzsKKysJCXN3aXRjaCAoYykKKysJCXsKKysJCQljYXNlICdccic6Cisr CQkJY2FzZSAnXG4nOgorKwkJCWNhc2UgMHgwYjogICAgICAgLyogVlQgdmVydGljYWwgdGFiICov CisrCQkJY2FzZSAweDBjOiAgICAgICAvKiBGRiBmb3JtIGZlZWQgKi8KKysJCQljYXNlIChjaGFy KTB4ODU6IC8qIE5FTCBuZXh0IGxpbmUgKi8KKysJCQkJcmV0dXJuIFRSVUU7CisrCQkJY2FzZSAw eDIwOgorKwkJCXsKKysJCQkJc3dpdGNoICgqc3RyKQorKwkJCQl7CisrCQkJCQljYXNlIDB4Mjg6 IC8qIExTIGxpbmUgc2VwYXJhdG9yICovCisrCQkJCQljYXNlIDB4Mjk6IC8qIFBTIHBhcmFncmFw aCBzZXBhcmF0b3IgKi8KKysJCQkJCQlyZXR1cm4gVFJVRTsKKysJCQkJCWRlZmF1bHQ6CisrCQkJ CQkJYnJlYWs7CisrCQkJCX0KKysJCQl9CisrCQkJYnJlYWs7CisrCisrCQkJY2FzZSAnXDAnOgor KwkJCQlyZXR1cm4gRkFMU0U7CisrCQkJZGVmYXVsdDoKKysJCQkJYnJlYWs7CisrCQl9CisrCX0g d2hpbGUgKDEpOworK30KK2RpZmYgLS1naXQgYS93aW5wci9saWJ3aW5wci9jcnQvdGVzdC9UZXN0 U3RyaW5nLmMgYi93aW5wci9saWJ3aW5wci9jcnQvdGVzdC9UZXN0U3RyaW5nLmMKK2luZGV4IGRm MTU0ZmUxYy4uYmNhNDcwYmRkIDEwMDY0NAorLS0tIGEvd2lucHIvbGlid2lucHIvY3J0L3Rlc3Qv VGVzdFN0cmluZy5jCisrKysgYi93aW5wci9saWJ3aW5wci9jcnQvdGVzdC9UZXN0U3RyaW5nLmMK K0BAIC0yNyw2ICsyNyw3OSBAQCBzdGF0aWMgV0NIQVIgdGVzdERlbGltaXRlcltdID0geyAnXHIn LCAnXG4nLCAnXDAnIH07CisKKyAjZGVmaW5lIHRlc3REZWxpbWl0ZXJfTGVuZ3RoICgoc2l6ZW9m KHRlc3REZWxpbWl0ZXIpIC8gc2l6ZW9mKFdDSEFSKSkgLSAxKQorCisrc3RhdGljIEJPT0wgdGVz dF92YWxpZF91cmwodm9pZCkKKyt7CisrCXN0cnVjdCB0ZXN0X3QKKysJeworKwkJY2hhciogc3Ry aW5nOworKwkJc2l6ZV90IGxlbjsKKysJCUJPT0wgaXNVcmw7CisrCX07CisrCisrCXN0YXRpYyBj b25zdCBzdHJ1Y3QgdGVzdF90IHRlc3RzW10gPSB7IHsgImZvby5iYXIuYmxhYmxhIiwgMTUsIFRS VUUgfSwKKysJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAic29tZWhvc3Ru YW1lIiwgMTIsIFRSVUUgfSwKKysJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eyAic29tZWhvc3RuYW1lOjEyMzQiLCAxNywgVFJVRSB9LAorKwkJICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7ICJ0c3Y6Ly9zb21laG9zdG5hbWUiLCAxOCwgVFJVRSB9LAorKwkJ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICJ0c3Y6Ly9zb21laG9zdG5hbWUv cGF0aC9mb28vZ2FnYSIsIDMyLCBUUlVFIH0sCisrCQkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsgInRzdjovL3NvbWVob3N0bmFtZToxMjM0IiwgMjMsIFRSVUUgfSwKKysJCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAidHN2Oi8vc29tZWhvc3RuYW1lOjEy MzQvcGF0aC9mb28iLCAzMywgVFJVRSB9LAorKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7ICJsYWxhXHJnYWdhXG4iLCAxMiwgRkFMU0UgfSwKKysJCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeyAiMTkyLjE2OC4wLjEiLCAxMSwgVFJVRSB9LAorKwkJICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3sgIjE5Mi4xNjguMC4xOjEyMzQiLCAx NiwgRkFMU0UgfSwKKysJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy97ICIx OTIuMTY4LjAuMToxMjM0L2Zvby8iLCAyMSwgRkFMU0UgfSwKKysJCSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgeyAiMTkyLjE2OC4wLjEvYmFyL2Zvby8iLCAyMCwgVFJVRSB9LAor KwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICJbOjoxXSIsIDUsIEZBTFNF IH0sCisrCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgIls6OjFdOjEyMzQi LCA4LCBGQUxTRSB9LAorKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICJb MjAwMTpkYjg6MzMzMzo0NDQ0OjU1NTU6NjY2Njo3Nzc3Ojg4ODhdIiwgNDAsCisrCQkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UgfSwKKysJCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeyAiWzIwMDE6ZGI4OjoxXSIsIDEzLCBGQUxTRSB9IH07Cisr CUJPT0wgcmMgPSBUUlVFOworKwlmb3IgKHNpemVfdCB4ID0gMDsgeCA8IEFSUkFZU0laRSh0ZXN0 cyk7IHgrKykKKysJeworKwkJY29uc3Qgc3RydWN0IHRlc3RfdCogY3VyID0gJnRlc3RzW3hdOwor KworKwkJY29uc3QgQk9PTCByYzEgPSB3aW5wcl9zdHJfaXNfdmFsaWRfdXJsKGN1ci0+c3RyaW5n KTsKKysJCWNvbnN0IEJPT0wgcmMyID0gd2lucHJfc3RyX2lzX3ZhbGlkX3VybE4oY3VyLT5zdHJp bmcsIGN1ci0+bGVuKTsKKysKKysjaWYgZGVmaW5lZChXSU5QUl9IQVZFX1JFR0NPTVApIHx8IGRl ZmluZWQoV0lUSF9VUklQQVJTRVIpCisrCQlpZiAocmMxICE9IHJjMikKKysJCQlyYyA9IEZBTFNF OworKwkJaWYgKHJjMSAhPSBjdXItPmlzVXJsKQorKwkJCXJjID0gRkFMU0U7CisrI2Vsc2UKKysJ CWZwcmludGYoc3RkZXJyLCAiWyVzXSBUT0RPOiAhZGVmaW5lZChXSU5QUl9IQVZFX1JFR0NPTVAp ICYmICFkZWZpbmVkKFdJVEhfVVJJUEFSU0VSKVxuIiwKKysJCSAgICAgICAgX19mdW5jX18pOwor KyNlbmRpZgorKwl9CisrCisrCXJldHVybiByYzsKKyt9CisrCisrc3RhdGljIEJPT0wgdGVzdF9u ZXdsaW5lKHZvaWQpCisreworKwlzdHJ1Y3QgdGVzdF90CisrCXsKKysJCWNoYXIqIHN0cmluZzsK KysJCXNpemVfdCBsZW47CisrCQlCT09MIGhhc05ld2xpbmVzOworKwl9OworKworKwljb25zdCBz dHJ1Y3QgdGVzdF90IHRlc3RzW10gPSB7IHsgImZvby5iYXIuYmxhYmxhIiwgMTUsIEZBTFNFIH0s CisrCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAic29tZWhvc3RuYW1lIiwgMTIsIEZB TFNFIH0sCisrCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAibGFsYVxyZ2FnYVxuIiwg MTMsIFRSVUUgfSB9OworKworKwlmb3IgKHNpemVfdCB4ID0gMDsgeCA8IEFSUkFZU0laRSh0ZXN0 cyk7IHgrKykKKysJeworKwkJY29uc3Qgc3RydWN0IHRlc3RfdCogY3VyID0gJnRlc3RzW3hdOwor KworKwkJY29uc3QgQk9PTCByYzEgPSB3aW5wcl9zdHJfaGFzX25ld2xpbmVzKGN1ci0+c3RyaW5n KTsKKysJCWlmIChyYzEgIT0gY3VyLT5oYXNOZXdsaW5lcykKKysJCQlyZXR1cm4gRkFMU0U7Cisr CX0KKysKKysJcmV0dXJuIFRSVUU7CisrfQorKworIGludCBUZXN0U3RyaW5nKGludCBhcmdjLCBj aGFyKiBhcmd2W10pCisgeworIAlXQ0hBUiogcDsKK0BAIC0zNCw2ICsxMDcsMTUgQEAgaW50IFRl c3RTdHJpbmcoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKKyAJc2l6ZV90IGxlbmd0aDsKKyAJV0NI QVIqIGNvbnRleHQ7CisKKysJV0lOUFJfVU5VU0VEKGFyZ2MpOworKwlXSU5QUl9VTlVTRUQoYXJn dik7CisrCisrCWlmICghdGVzdF92YWxpZF91cmwoKSkKKysJCXJldHVybiAtMTsKKysKKysJaWYg KCF0ZXN0X25ld2xpbmUoKSkKKysJCXJldHVybiAtMTsKKysKKyAjaWZkZWYgX19CSUdfRU5ESUFO X18KKyAJLyogQmUgc3VyZSB0aGF0IHdlIGFsd2F5cyB1c2UgTEUgZW5jb2RlZCBzdHJpbmcgKi8K KyAJQnl0ZVN3YXBVbmljb2RlKHRlc3RTdHJpbmdXLCB0ZXN0U3RyaW5nV19MZW5ndGgpOwo=