From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 0D6E41FF15D for ; Thu, 5 Sep 2024 12:32:53 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5965E39C49; Thu, 5 Sep 2024 12:33:26 +0200 (CEST) From: Fiona Ebner To: pve-devel@lists.proxmox.com Date: Thu, 5 Sep 2024 11:49:53 +0200 Message-Id: <20240905094953.40410-2-f.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240905094953.40410-1-f.ebner@proxmox.com> References: <20240905094953.40410-1-f.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.728 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LOTSOFHASH 0.25 Emails with lots of hash-like gibberish SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record THIS_AD 1.099 "This ad" and variants T_SCC_BODY_TEXT_LINE -0.01 - X-Mailman-Approved-At: Thu, 05 Sep 2024 12:33:25 +0200 Subject: [pve-devel] [PATCH qemu 2/2] pick up stable fixes for 9.0 X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" SW5jbHVkZXMgZml4ZXMgZm9yIFZpcnRJTy1uZXQsIEFSTSBhbmQgeDg2KF82NCkgZW11bGF0aW9u LCBDVkVzIHRvCmhhcmRlbiBOQkQgc2VydmVyIGFnYWluc3QgbWFsaWNpb3VzIGNsaWVudHMsIGFz IHdlbGwgYXMgYSBmZXcgb3RoZXJzCihWTkMsIHBoeXNtZW0sIEludGVsIElPTU1VLCAuLi4pLgoK U2lnbmVkLW9mZi1ieTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+Ci0tLQogLi4u bmV0LUVuc3VyZS1xdWV1ZS1pbmRleC1maXRzLXdpdGgtUlNTLnBhdGNoIHwgIDM1ICsrCiAuLi5l dHdvcmstc3RhbGwtYXQtdGhlLWhvc3Qtc2lkZS13YWl0aW4ucGF0Y2ggfCAzMzggKysrKysrKysr KysrKysrKysrCiAuLi50LW5pYy1tb2RlbC1oZWxwLW91dHB1dC1hcy1kb2N1bWVudGUucGF0Y2gg fCAgNzAgKysrKwogLi4ubmV0LW5pYy1tb2RlbC1mb3Itbm9uLWhlbHAtYXJndW1lbnRzLnBhdGNo IHwgIDMyICsrCiAuLi4tYXNzZXJ0LWZvci0xMjgtYml0LXRpbGUtYWNjZXNzZXMtd2gucGF0Y2gg fCAgNTcgKysrCiAuLi5hcm0tRml4LVVNT1BBLVVNT1BTLW9mLTE2LWJpdC12YWx1ZXMucGF0Y2gg fCAgNTkgKysrCiAuLi4tc2hpZnRzLWJ5LTEtaW4tdHN6aW1tX3Noci1hbmQtdHN6aW0ucGF0Y2gg fCAgNjIgKysrKwogLi4uZS1TTUNSX0VMMi5MRU4tYW5kLVNWQ1JfRUwyLkxFTi1pZi1FLnBhdGNo IHwgIDQxICsrKwogLi4uZS1kZW5vcm1hbHMtY29ycmVjdGx5LWZvci1GTU9QQS13aWRlLnBhdGNo IHwgMTY0ICsrKysrKysrKwogLi4uZWxfaW9tbXUtZml4LUZSQ0QtY29uc3RydWN0aW9uLW1hY3Jv LnBhdGNoIHwgIDM5ICsrCiAuLi4zODYtRG8tbm90LWFwcGx5LVJFWC10by1NTVgtb3BlcmFuZHMu cGF0Y2ggfCAgMzMgKysKIC4uLnJhc2gtYnktcmVzZXR0aW5nLWxvY2FsX2Vyci1pbi1tb2R1bC5w YXRjaCB8ICA0MiArKysKIC4uLi1QbHVtYi1pbi1uZXctYXJncy10by1uYmRfY2xpZW50X2FkZC5w YXRjaCB8IDE2NCArKysrKysrKysKIC4uLjAyNC03NDA5LUNhcC1kZWZhdWx0LW1heC1jb25uZWN0 aW9ucy5wYXRjaCB8IDE3MiArKysrKysrKysKIC4uLjAyNC03NDA5LURyb3Atbm9uLW5lZ290aWF0 aW5nLWNsaWVudC5wYXRjaCB8IDEyMyArKysrKysrCiAuLi4wMjQtNzQwOS1DbG9zZS1zdHJheS1j bGllbnRzLWF0LXNlcnYucGF0Y2ggfCAxNjEgKysrKysrKysrCiAuLi5jLWZpeC1jcmFzaC13aGVu LW5vLWNvbnNvbGUtYXR0YWNoZWQucGF0Y2ggfCAgNDcgKysrCiAuLi4wMjQtNzQwOS1Bdm9pZC11 c2UtYWZ0ZXItZnJlZS13aGVuLWMucGF0Y2ggfCAgODkgKysrKysKIC4uLmZpeC1tZW1vcnktbGVh ay1pbi1kaXJ0eV9tZW1vcnlfZXh0ZS5wYXRjaCB8IDEzNCArKysrKysrCiAuLi5ja3VwLVByb3ht b3gtYmFja3VwLXBhdGNoZXMtZm9yLVFFTVUucGF0Y2ggfCAgIDQgKy0KIC4uLi8wMDQ2LVBWRS1i YWNrdXAtYWRkLWZsZWVjaW5nLW9wdGlvbi5wYXRjaCB8ICAgNCArLQogZGViaWFuL3BhdGNoZXMv c2VyaWVzICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsKIDIyIGZpbGVzIGNoYW5nZWQs IDE4ODUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk ZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDE4LXZpcnRpby1uZXQtRW5zdXJlLXF1ZXVlLWluZGV4LWZp dHMtd2l0aC1SU1MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkZWJpYW4vcGF0Y2hlcy9leHRy YS8wMDE5LXZpcnRpby1uZXQtRml4LW5ldHdvcmstc3RhbGwtYXQtdGhlLWhvc3Qtc2lkZS13YWl0 aW4ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDIwLW5l dC1SZWluc3RhdGUtbmV0LW5pYy1tb2RlbC1oZWxwLW91dHB1dC1hcy1kb2N1bWVudGUucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBkZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDIxLW5ldC1GaXgtbmV0 LW5pYy1tb2RlbC1mb3Itbm9uLWhlbHAtYXJndW1lbnRzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyMi10YXJnZXQtYXJtLURvbi10LWFzc2VydC1mb3It MTI4LWJpdC10aWxlLWFjY2Vzc2VzLXdoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZGViaWFu L3BhdGNoZXMvZXh0cmEvMDAyMy10YXJnZXQtYXJtLUZpeC1VTU9QQS1VTU9QUy1vZi0xNi1iaXQt dmFsdWVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAy NC10YXJnZXQtYXJtLUF2b2lkLXNoaWZ0cy1ieS0xLWluLXRzemltbV9zaHItYW5kLXRzemltLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyNS10YXJnZXQt YXJtLUlnbm9yZS1TTUNSX0VMMi5MRU4tYW5kLVNWQ1JfRUwyLkxFTi1pZi1FLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyNi10YXJnZXQtYXJtLUhhbmRs ZS1kZW5vcm1hbHMtY29ycmVjdGx5LWZvci1GTU9QQS13aWRlLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyNy1pbnRlbF9pb21tdS1maXgtRlJDRC1jb25z dHJ1Y3Rpb24tbWFjcm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkZWJpYW4vcGF0Y2hlcy9l eHRyYS8wMDI4LXRhcmdldC1pMzg2LURvLW5vdC1hcHBseS1SRVgtdG8tTU1YLW9wZXJhbmRzLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyOS1tb2R1bGUt UHJldmVudC1jcmFzaC1ieS1yZXNldHRpbmctbG9jYWxfZXJyLWluLW1vZHVsLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzMC1uYmQtc2VydmVyLVBsdW1i LWluLW5ldy1hcmdzLXRvLW5iZF9jbGllbnRfYWRkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzMS1uYmQtc2VydmVyLUNWRS0yMDI0LTc0MDktQ2FwLWRl ZmF1bHQtbWF4LWNvbm5lY3Rpb25zLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZGViaWFuL3Bh dGNoZXMvZXh0cmEvMDAzMi1uYmQtc2VydmVyLUNWRS0yMDI0LTc0MDktRHJvcC1ub24tbmVnb3Rp YXRpbmctY2xpZW50LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZGViaWFuL3BhdGNoZXMvZXh0 cmEvMDAzMy1uYmQtc2VydmVyLUNWRS0yMDI0LTc0MDktQ2xvc2Utc3RyYXktY2xpZW50cy1hdC1z ZXJ2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzNC12 bmMtZml4LWNyYXNoLXdoZW4tbm8tY29uc29sZS1hdHRhY2hlZC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMzUtbmJkLXNlcnZlci1DVkUtMjAyNC03NDA5 LUF2b2lkLXVzZS1hZnRlci1mcmVlLXdoZW4tYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRl Ymlhbi9wYXRjaGVzL2V4dHJhLzAwMzYtc29mdG1tdS1waHlzbWVtLWZpeC1tZW1vcnktbGVhay1p bi1kaXJ0eV9tZW1vcnlfZXh0ZS5wYXRjaAoKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2V4 dHJhLzAwMTgtdmlydGlvLW5ldC1FbnN1cmUtcXVldWUtaW5kZXgtZml0cy13aXRoLVJTUy5wYXRj aCBiL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMTgtdmlydGlvLW5ldC1FbnN1cmUtcXVldWUtaW5k ZXgtZml0cy13aXRoLVJTUy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4xZGNiMTI5Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAxOC12 aXJ0aW8tbmV0LUVuc3VyZS1xdWV1ZS1pbmRleC1maXRzLXdpdGgtUlNTLnBhdGNoCkBAIC0wLDAg KzEsMzUgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFraWhpa28gT2Rha2kgPGFraWhpa28ub2Rh a2lAZGF5bml4LmNvbT4KK0RhdGU6IE1vbiwgMSBKdWwgMjAyNCAyMDo1ODowNCArMDkwMAorU3Vi amVjdDogW1BBVENIXSB2aXJ0aW8tbmV0OiBFbnN1cmUgcXVldWUgaW5kZXggZml0cyB3aXRoIFJT UworCitFbnN1cmUgdGhlIHF1ZXVlIGluZGV4IHBvaW50cyB0byBhIHZhbGlkIHF1ZXVlIHdoZW4g c29mdHdhcmUgUlNTCitlbmFibGVkLiBUaGUgbmV3IGNhbGN1bGF0aW9uIG1hdGNoZXMgd2l0aCB0 aGUgYmVoYXZpb3Igb2YgTGludXgncyBUQVAKK2RldmljZSB3aXRoIHRoZSBSU1MgZUJQRiBwcm9n cmFtLgorCitGaXhlczogNDQ3NGUzN2E1YjNhICgidmlydGlvLW5ldDogaW1wbGVtZW50IFJYIFJT UyBwcm9jZXNzaW5nIikKK1JlcG9ydGVkLWJ5OiBaaGliaW4gSHUgPGh1emhpYmluNUBodWF3ZWku Y29tPgorQ2M6IHFlbXUtc3RhYmxlQG5vbmdudS5vcmcKK1NpZ25lZC1vZmYtYnk6IEFraWhpa28g T2Rha2kgPGFraWhpa28ub2Rha2lAZGF5bml4LmNvbT4KK1Jldmlld2VkLWJ5OiBNaWNoYWVsIFMu IFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFz b3dhbmdAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGYxNTk1Y2ViOWFh ZDM2YTZjMWRhOTViY2I3N2FiOTUwOWIzODgyMmQpCitTaWduZWQtb2ZmLWJ5OiBGaW9uYSBFYm5l ciA8Zi5lYm5lckBwcm94bW94LmNvbT4KKy0tLQorIGh3L25ldC92aXJ0aW8tbmV0LmMgfCAzICsr LQorIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlm ZiAtLWdpdCBhL2h3L25ldC92aXJ0aW8tbmV0LmMgYi9ody9uZXQvdmlydGlvLW5ldC5jCitpbmRl eCAzNjQ0YmZkOTFiLi5mNDg1ODg2MzhkIDEwMDY0NAorLS0tIGEvaHcvbmV0L3ZpcnRpby1uZXQu YworKysrIGIvaHcvbmV0L3ZpcnRpby1uZXQuYworQEAgLTE5NDksNyArMTk0OSw4IEBAIHN0YXRp YyBzc2l6ZV90IHZpcnRpb19uZXRfcmVjZWl2ZV9yY3UoTmV0Q2xpZW50U3RhdGUgKm5jLCBjb25z dCB1aW50OF90ICpidWYsCisgICAgIGlmICghbm9fcnNzICYmIG4tPnJzc19kYXRhLmVuYWJsZWQg JiYgbi0+cnNzX2RhdGEuZW5hYmxlZF9zb2Z0d2FyZV9yc3MpIHsKKyAgICAgICAgIGludCBpbmRl eCA9IHZpcnRpb19uZXRfcHJvY2Vzc19yc3MobmMsIGJ1Ziwgc2l6ZSk7CisgICAgICAgICBpZiAo aW5kZXggPj0gMCkgeworLSAgICAgICAgICAgIE5ldENsaWVudFN0YXRlICpuYzIgPSBxZW11X2dl dF9zdWJxdWV1ZShuLT5uaWMsIGluZGV4KTsKKysgICAgICAgICAgICBOZXRDbGllbnRTdGF0ZSAq bmMyID0KKysgICAgICAgICAgICAgICAgcWVtdV9nZXRfc3VicXVldWUobi0+bmljLCBpbmRleCAl IG4tPmN1cnJfcXVldWVfcGFpcnMpOworICAgICAgICAgICAgIHJldHVybiB2aXJ0aW9fbmV0X3Jl Y2VpdmVfcmN1KG5jMiwgYnVmLCBzaXplLCB0cnVlKTsKKyAgICAgICAgIH0KKyAgICAgfQpkaWZm IC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAxOS12aXJ0aW8tbmV0LUZpeC1uZXR3b3Jr LXN0YWxsLWF0LXRoZS1ob3N0LXNpZGUtd2FpdGluLnBhdGNoIGIvZGViaWFuL3BhdGNoZXMvZXh0 cmEvMDAxOS12aXJ0aW8tbmV0LUZpeC1uZXR3b3JrLXN0YWxsLWF0LXRoZS1ob3N0LXNpZGUtd2Fp dGluLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4ZjY3ZDQKLS0t IC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDE5LXZpcnRpby1uZXQtRml4 LW5ldHdvcmstc3RhbGwtYXQtdGhlLWhvc3Qtc2lkZS13YWl0aW4ucGF0Y2gKQEAgLTAsMCArMSwz MzggQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHRob21hcyA8ZWFzdC5tb3V0YWluLnlhbmdAZ21h aWwuY29tPgorRGF0ZTogRnJpLCAxMiBKdWwgMjAyNCAxMToxMDo1MyArMDgwMAorU3ViamVjdDog W1BBVENIXSB2aXJ0aW8tbmV0OiBGaXggbmV0d29yayBzdGFsbCBhdCB0aGUgaG9zdCBzaWRlIHdh aXRpbmcgZm9yCisga2ljaworCitQYXRjaCAwNmIxMjk3MDE3NCAoInZpcnRpby1uZXQ6IGZpeCBu ZXR3b3JrIHN0YWxsIHVuZGVyIGxvYWQiKQorYWRkZWQgZG91YmxlLWNoZWNrIHRvIHRlc3Qgd2hl dGhlciB0aGUgYXZhaWxhYmxlIGJ1ZmZlciBzaXplCitjYW4gc2F0aXNmeSB0aGUgcmVxdWVzdCBv ciBub3QsIGluIGNhc2UgdGhlIGd1ZXN0IGhhcyBhZGRlZAorc29tZSBidWZmZXJzIHRvIHRoZSBh dmFpbCByaW5nIHNpbXVsdGFuZW91c2x5IGFmdGVyIHRoZSBmaXJzdAorY2hlY2suIEl0IHdpbGwg YmUgbHVja3kgaWYgdGhlIGF2YWlsYWJsZSBidWZmZXIgc2l6ZSBiZWNvbWVzCitva2F5IGFmdGVy IHRoZSBkb3VibGUtY2hlY2ssIHRoZW4gdGhlIGhvc3QgY2FuIHNlbmQgdGhlIHBhY2tldAordG8g dGhlIGd1ZXN0LiBJZiB0aGUgYnVmZmVyIHNpemUgc3RpbGwgY2FuJ3Qgc2F0aXNmeSB0aGUgcmVx dWVzdCwKK2V2ZW4gaWYgdGhlIGd1ZXN0IGhhcyBhZGRlZCBzb21lIGJ1ZmZlcnMsIHZpcml0aW8t bmV0IHdvdWxkCitzdGFsbCBhdCB0aGUgaG9zdCBzaWRlIGZvcmV2ZXIuCisKK1RoZSBwYXRjaCBl bmFibGVzIG5vdGlmaWNhdGlvbiBhbmQgY2hlY2tzIHdoZXRoZXIgdGhlIGd1ZXN0IGhhcworYWRk ZWQgc29tZSBidWZmZXJzIHNpbmNlIGxhc3QgY2hlY2sgb2YgYXZhaWxhYmxlIGJ1ZmZlcnMgd2hl bgordGhlIGF2YWlsYWJsZSBidWZmZXJzIGFyZSBpbnN1ZmZpY2llbnQuIElmIG5vIGJ1ZmZlciBp cyBhZGRlZCwKK3JldHVybiBmYWxzZSwgZWxzZSByZWNoZWNrIHRoZSBhdmFpbGFibGUgYnVmZmVy cyBpbiB0aGUgbG9vcC4KK0lmIHRoZSBhdmFpbGFibGUgYnVmZmVycyBhcmUgc3VmZmljaWVudCwg ZGlzYWJsZSBub3RpZmljYXRpb24KK2FuZCByZXR1cm4gdHJ1ZS4KKworQ2hhbmdlczoKKzEuIENo YW5nZSB0aGUgcmV0dXJuIHR5cGUgb2YgdmlydHF1ZXVlX2dldF9hdmFpbF9ieXRlcygpIGZyb20g dm9pZAorICAgdG8gaW50LCBpdCByZXR1cm5zIGFuIG9wYXF1ZSB0aGF0IHJlcHJlc2VudHMgdGhl IHNoYWRvd19hdmFpbF9pZHgKKyAgIG9mIHRoZSB2aXJ0cXVldWUgb24gc3VjY2VzcywgZWxzZSAt MSBvbiBlcnJvci4KKzIuIEFkZCBhIG5ldyBBUEk6IHZpcnRpb19xdWV1ZV9lbmFibGVfbm90aWZp Y2F0aW9uX2FuZF9jaGVjaygpLAorICAgaXQgdGFrZXMgYW4gb3BhcXVlIGFzIGlucHV0IGFyZyB3 aGljaCBpcyByZXR1cm5lZCBmcm9tCisgICB2aXJ0cXVldWVfZ2V0X2F2YWlsX2J5dGVzKCkuIEl0 IGVuYWJsZXMgbm90aWZpY2F0aW9uIGZpcnN0bHksCisgICB0aGVuIGNoZWNrcyB3aGV0aGVyIHRo ZSBndWVzdCBoYXMgYWRkZWQgc29tZSBidWZmZXJzIHNpbmNlCisgICBsYXN0IGNoZWNrIG9mIGF2 YWlsYWJsZSBidWZmZXJzIG9yIG5vdCBieSB2aXJ0aW9fcXVldWVfcG9sbCgpLAorICAgcmV0dXJu IHR1cmUgaWYgeWVzLgorCitUaGUgcGF0Y2ggYWxzbyByZXZlcnRzIHBhdGNoICIwNmIxMjk3MDE3 NCIuCisKK1RoZSBjYXNlIGJlbG93IGNhbiByZXByb2R1Y2UgdGhlIHN0YWxsLgorCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdWVzdCAwCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgaXBlcmYgIHwKKyAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0t LS0tPiB8IHNlcnZlciB8CisgICAgICAgICBIb3N0ICAgICAgIHwgICAgICAgICAgICAgICAgKy0t LS0tLS0tKworICAgICAgICstLS0tLS0tLSsgICB8ICAgICAgICAgICAgICAgICAgICAuLi4KKyAg ICAgICB8IGlwZXJmICB8LS0tLQorICAgICAgIHwgY2xpZW50IHwtLS0tICAgICAgICAgICAgICAg ICAgR3Vlc3QgbgorICAgICAgICstLS0tLS0tLSsgICB8ICAgICAgICAgICAgICAgICstLS0tLS0t LSsKKyAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8IGlwZXJmICB8CisgICAg ICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLT4gfCBzZXJ2ZXIgfAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLSsKKworQm9vdCBtYW55IGd1ZXN0cyBm cm9tIHFlbXUgd2l0aCB2aXJ0aW8gbmV0d29yazoKKyBxZW11IC4uLiAtbmV0ZGV2IHRhcCxpZD1u ZXRfeCBcCisgICAgLWRldmljZSB2aXJ0aW8tbmV0LXBjaS1ub24tdHJhbnNpdGlvbmFsLFwKKyAg ICBpb21tdV9wbGF0Zm9ybT1vbixtYWM9eHg6eHg6eHg6eHg6eHg6eHgsbmV0ZGV2PW5ldF94CisK K0VhY2ggZ3Vlc3QgYWN0cyBhcyBpcGVyZiBzZXJ2ZXIgd2l0aCBjb21tYW5kcyBiZWxvdzoKKyBp cGVyZjMgLXMgLUQgLWkgMTAgLXAgODAwMQorIGlwZXJmMyAtcyAtRCAtaSAxMCAtcCA4MDAyCisK K1RoZSBob3N0IGFzIGlwZXJmIGNsaWVudDoKKyBpcGVyZjMgLWMgZ3Vlc3RfSVAgLXAgODAwMSAt aSAzMCAtdyAyNTZrIC1QIDIwIC10IDQwMDAwCisgaXBlcmYzIC1jIGd1ZXN0X0lQIC1wIDgwMDIg LWkgMzAgLXcgMjU2ayAtUCAyMCAtdCA0MDAwMAorCitBZnRlciBzb21lIHRpbWUsIHRoZSBob3N0 IGxvc2VzIGNvbm5lY3Rpb24gdG8gdGhlIGd1ZXN0LAordGhlIGd1ZXN0IGNhbiBzZW5kIHBhY2tl dCB0byB0aGUgaG9zdCwgYnV0IGNhbid0IHJlY2VpdmUKK3BhY2tldCBmcm9tIHRoZSBob3N0Lgor CitJdCdzIG1vcmUgbGlrZWx5IHRvIGhhcHBlbiBpZiBTV0lPVExCIGlzIGVuYWJsZWQgaW4gdGhl IGd1ZXN0LAorYWxsb2NhdGluZyBhbmQgZnJlZWluZyBib3VuY2UgYnVmZmVyIHRha2VzIHNvbWUg Q1BVIHRpY2tzLAorY29weWluZyBmcm9tL3RvIGJvdW5jZSBidWZmZXIgdGFrZXMgbW9yZSBDUFUg dGlja3MsIGNvbXBhcmVkCit3aXRoIHRoYXQgdGhlcmUgaXMgbm8gYm91bmNlIGJ1ZmZlciBpbiB0 aGUgZ3Vlc3QuCitPbmNlIHRoZSByYXRlIG9mIHByb2R1Y2luZyBwYWNrZXRzIGZyb20gdGhlIGhv c3QgYXBwcm94aW1hdGVzCit0aGUgcmF0ZSBvZiByZWNlaXZlaW5nIHBhY2tldHMgaW4gdGhlIGd1 ZXN0LCB0aGUgZ3Vlc3Qgd291bGQKK2xvb3AgaW4gTkFQSS4KKworICAgICAgICAgcmVjZWl2ZSBw YWNrZXRzICAgIC0tLQorICAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8CisgICAgICAgICAg ICAgICB2ICAgICAgICAgICAgIHwKKyAgICAgICAgICAgZnJlZSBidWYgICAgICB2aXJ0bmV0X3Bv bGwKKyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgdiAgICAg ICAgICAgICB8CisgICAgIGFkZCBidWYgdG8gYXZhaWwgcmluZyAgLS0tCisgICAgICAgICAgICAg ICB8CisgICAgICAgICAgICAgICB8ICBuZWVkIGtpY2sgdGhlIGhvc3Q/CisgICAgICAgICAgICAg ICB8ICBOQVBJIGNvbnRpbnVlcworICAgICAgICAgICAgICAgdgorICAgICAgICAgcmVjZWl2ZSBw YWNrZXRzICAgIC0tLQorICAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8CisgICAgICAgICAg ICAgICB2ICAgICAgICAgICAgIHwKKyAgICAgICAgICAgZnJlZSBidWYgICAgICB2aXJ0bmV0X3Bv bGwKKyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgdiAgICAg ICAgICAgICB8CisgICAgIGFkZCBidWYgdG8gYXZhaWwgcmluZyAgLS0tCisgICAgICAgICAgICAg ICB8CisgICAgICAgICAgICAgICB2CisgICAgICAgICAgICAgIC4uLiAgICAgICAgICAgLi4uCisK K09uIHRoZSBvdGhlciBoYW5kLCB0aGUgaG9zdCBmZXRjaGVzIGZyZWUgYnVmIGZyb20gYXZhaWwK K3JpbmcsIGlmIHRoZSBidWYgaW4gdGhlIGF2YWlsIHJpbmcgaXMgbm90IGVub3VnaCwgdGhlCito b3N0IG5vdGlmaWVzIHRoZSBndWVzdCB0aGUgZXZlbnQgYnkgd3JpdGluZyB0aGUgYXZhaWwKK2lk eCByZWFkIGZyb20gYXZhaWwgcmluZyB0byB0aGUgZXZlbnQgaWR4IG9mIHVzZWQgcmluZywKK3Ro ZW4gdGhlIGhvc3QgZ29lcyB0byBzbGVlcCwgd2FpdGluZyBmb3IgdGhlIGtpY2sgc2lnbmFsCitm cm9tIHRoZSBndWVzdC4KKworT25jZSB0aGUgZ3Vlc3QgZmluZHMgdGhlIGhvc3QgaXMgd2FpdGlu ZyBmb3Iga2ljayBzaW5nYWwKKyhpbiB2aXJ0cXVldWVfa2lja19wcmVwYXJlX3NwbGl0KCkpLCBp dCBraWNrcyB0aGUgaG9zdC4KKworVGhlIGhvc3QgbWF5IHN0YWxsIGZvcmV2ZXIgYXQgdGhlIHNl cXVlbmNlcyBiZWxvdzoKKworICAgICAgICAgSG9zdCAgICAgICAgICAgICAgICAgICAgICAgIEd1 ZXN0CisgICAgIC0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0KKyBmZXRj aCBidWYsIHNlbmQgcGFja2V0ICAgICAgICAgICByZWNlaXZlIHBhY2tldCAtLS0KKyAgICAgICAg IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uICAgICAgICAgfAorIGZldGNoIGJ1Ziwg c2VuZCBwYWNrZXQgICAgICAgICAgICAgYWRkIGJ1ZiAgICAgICB8CisgICAgICAgICAuLi4gICAg ICAgICAgICAgICAgICAgICAgICBhZGQgYnVmICAgdmlydG5ldF9wb2xsCisgICAgYnVmIG5vdCBl bm91Z2ggICAgICBhdmFpbCBpZHgtPiBhZGQgYnVmICAgICAgIHwKKyAgICByZWFkIGF2YWlsIGlk eCAgICAgICAgICAgICAgICAgIGFkZCBidWYgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYWRkIGJ1ZiAgICAgIC0tLQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlY2VpdmUgcGFja2V0IC0tLQorICAgIHdyaXRlIGV2ZW50IGlkeCAgICAgICAg ICAgICAgICAgICAuLi4gICAgICAgICB8CisgICAgd2FpdCBmb3Iga2ljayAgICAgICAgICAgICAg ICAgICBhZGQgYnVmICAgdmlydG5ldF9wb2xsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC4uLiAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5v IG1vcmUgcGFja2V0LCBleGl0IE5BUEkKKworSW4gdGhlIGZpcnN0IGxvb3Agb2YgTkFQSSBhYm92 ZSwgaW5kaWNhdGVkIGluIHRoZSByYW5nZSBvZgordmlydG5ldF9wb2xsIGFib3ZlLCB0aGUgaG9z dCBpcyBzZW5kaW5nIHBhY2tldHMgd2hpbGUgdGhlCitndWVzdCBpcyByZWNlaXZpbmcgcGFja2V0 cyBhbmQgYWRkaW5nIGJ1ZmZlcnMuCisgc3RlcCAxOiBUaGUgYnVmIGlzIG5vdCBlbm91Z2gsIGZv ciBleGFtcGxlLCBhIGJpZyBwYWNrZXQKKyAgICAgICAgIG5lZWRzIDUgYnVmLCBidXQgdGhlIGF2 YWlsYWJsZSBidWYgY291bnQgaXMgMy4KKyAgICAgICAgIFRoZSBob3N0IHJlYWQgY3VycmVudCBh dmFpbCBpZHguCisgc3RlcCAyOiBUaGUgZ3Vlc3QgYWRkcyBzb21lIGJ1ZiwgdGhlbiBjaGVja3Mg d2hldGhlciB0aGUKKyAgICAgICAgIGhvc3QgaXMgd2FpdGluZyBmb3Iga2ljayBzaWduYWwsIG5v dCBhdCB0aGlzIHRpbWUuCisgICAgICAgICBUaGUgdXNlZCByaW5nIGlzIG5vdCBlbXB0eSwgdGhl IGd1ZXN0IGNvbnRpbnVlcworICAgICAgICAgdGhlIHNlY29uZCBsb29wIG9mIE5BUEkuCisgc3Rl cCAzOiBUaGUgaG9zdCB3cml0ZXMgdGhlIGF2YWlsIGlkeCByZWFkIGZyb20gYXZhaWwKKyAgICAg ICAgIHJpbmcgdG8gdXNlZCByaW5nIGFzIGV2ZW50IGlkeCB2aWEKKyAgICAgICAgIHZpcnRpb19x dWV1ZV9zZXRfbm90aWZpY2F0aW9uKHEtPnJ4X3ZxLCAxKS4KKyBzdGVwIDQ6IEF0IHRoZSBlbmQg b2YgdGhlIHNlY29uZCBsb29wIG9mIE5BUEksIHJlY2hlY2sKKyAgICAgICAgIHdoZXRoZXIga2lj ayBpcyBuZWVkZWQsIGFzIHRoZSBldmVudCBpZHggaW4gdGhlCisgICAgICAgICB1c2VkIHJpbmcg d3JpdHRlbiBieSB0aGUgaG9zdCBpcyBiZXlvdW5kIHRoZQorICAgICAgICAgcmFuZ2Ugb2Yga2lj ayBjb25kaXRpb24sIHRoZSBndWVzdCB3aWxsIG5vdAorICAgICAgICAgc2VuZCBraWNrIHNpZ25h bCB0byB0aGUgaG9zdC4KKworRml4ZXM6IDA2YjEyOTcwMTc0ICgidmlydGlvLW5ldDogZml4IG5l dHdvcmsgc3RhbGwgdW5kZXIgbG9hZCIpCitDYzogcWVtdS1zdGFibGVAbm9uZ251Lm9yZworU2ln bmVkLW9mZi1ieTogV2VuY2hlbmcgWWFuZyA8ZWFzdC5tb3V0YWluLnlhbmdAZ21haWwuY29tPgor UmV2aWV3ZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+CitTaWduZWQt b2ZmLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgZjkzNzMwOWZiZGJiNDhjMzU0MjIwYTNlNzExMGMyMDJhZTRhYTdmYSkKK1Np Z25lZC1vZmYtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHByb3htb3guY29tPgorLS0tCisgaHcv bmV0L3ZpcnRpby1uZXQuYyAgICAgICAgfCAyOCArKysrKysrKysrLS0tLS0tLQorIGh3L3ZpcnRp by92aXJ0aW8uYyAgICAgICAgIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KKyBpbmNsdWRlL2h3L3ZpcnRpby92aXJ0aW8uaCB8IDIxICsrKysrKysrKysrLS0KKyAz IGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvaHcvbmV0L3ZpcnRpby1uZXQuYyBiL2h3L25ldC92aXJ0aW8tbmV0LmMKK2luZGV4 IGY0ODU4ODYzOGQuLmQ0Yjk3OWQzNDMgMTAwNjQ0CistLS0gYS9ody9uZXQvdmlydGlvLW5ldC5j CisrKysgYi9ody9uZXQvdmlydGlvLW5ldC5jCitAQCAtMTY4MCwyNCArMTY4MCwyOCBAQCBzdGF0 aWMgYm9vbCB2aXJ0aW9fbmV0X2Nhbl9yZWNlaXZlKE5ldENsaWVudFN0YXRlICpuYykKKyAKKyBz dGF0aWMgaW50IHZpcnRpb19uZXRfaGFzX2J1ZmZlcnMoVmlydElPTmV0UXVldWUgKnEsIGludCBi dWZzaXplKQorIHsKKysgICAgaW50IG9wYXF1ZTsKKysgICAgdW5zaWduZWQgaW50IGluX2J5dGVz OworICAgICBWaXJ0SU9OZXQgKm4gPSBxLT5uOworLSAgICBpZiAodmlydGlvX3F1ZXVlX2VtcHR5 KHEtPnJ4X3ZxKSB8fAorLSAgICAgICAgKG4tPm1lcmdlYWJsZV9yeF9idWZzICYmCistICAgICAg ICAgIXZpcnRxdWV1ZV9hdmFpbF9ieXRlcyhxLT5yeF92cSwgYnVmc2l6ZSwgMCkpKSB7CistICAg ICAgICB2aXJ0aW9fcXVldWVfc2V0X25vdGlmaWNhdGlvbihxLT5yeF92cSwgMSk7CistCistICAg ICAgICAvKiBUbyBhdm9pZCBhIHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZSBndWVzdCBoYXMgbWFk ZSBzb21lIGJ1ZmZlcnMKKy0gICAgICAgICAqIGF2YWlsYWJsZSBhZnRlciB0aGUgYWJvdmUgY2hl Y2sgYnV0IGJlZm9yZSBub3RpZmljYXRpb24gd2FzCistICAgICAgICAgKiBlbmFibGVkLCBjaGVj ayBmb3IgYXZhaWxhYmxlIGJ1ZmZlcnMgYWdhaW4uCistICAgICAgICAgKi8KKy0gICAgICAgIGlm ICh2aXJ0aW9fcXVldWVfZW1wdHkocS0+cnhfdnEpIHx8CistICAgICAgICAgICAgKG4tPm1lcmdl YWJsZV9yeF9idWZzICYmCistICAgICAgICAgICAgICF2aXJ0cXVldWVfYXZhaWxfYnl0ZXMocS0+ cnhfdnEsIGJ1ZnNpemUsIDApKSkgeworKworKyAgICB3aGlsZSAodmlydGlvX3F1ZXVlX2VtcHR5 KHEtPnJ4X3ZxKSB8fCBuLT5tZXJnZWFibGVfcnhfYnVmcykgeworKyAgICAgICAgb3BhcXVlID0g dmlydHF1ZXVlX2dldF9hdmFpbF9ieXRlcyhxLT5yeF92cSwgJmluX2J5dGVzLCBOVUxMLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZzaXplLCAwKTsKKysg ICAgICAgIC8qIEJ1ZmZlciBpcyBlbm91Z2gsIGRpc2FibGUgbm90aWZpYWN0aW9uICovCisrICAg ICAgICBpZiAoYnVmc2l6ZSA8PSBpbl9ieXRlcykgeworKyAgICAgICAgICAgIGJyZWFrOworKyAg ICAgICAgfQorKworKyAgICAgICAgaWYgKHZpcnRpb19xdWV1ZV9lbmFibGVfbm90aWZpY2F0aW9u X2FuZF9jaGVjayhxLT5yeF92cSwgb3BhcXVlKSkgeworKyAgICAgICAgICAgIC8qIEd1ZXN0IGhh cyBhZGRlZCBzb21lIGJ1ZmZlcnMsIHRyeSBhZ2FpbiAqLworKyAgICAgICAgICAgIGNvbnRpbnVl OworKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgIH0K KyAgICAgfQorIAorICAgICB2aXJ0aW9fcXVldWVfc2V0X25vdGlmaWNhdGlvbihxLT5yeF92cSwg MCk7CisrCisgICAgIHJldHVybiAxOworIH0KKyAKK2RpZmYgLS1naXQgYS9ody92aXJ0aW8vdmly dGlvLmMgYi9ody92aXJ0aW8vdmlydGlvLmMKK2luZGV4IGZkMmRmZTNhNmIuLjA4ZmJhNmIyZDgg MTAwNjQ0CistLS0gYS9ody92aXJ0aW8vdmlydGlvLmMKKysrKyBiL2h3L3ZpcnRpby92aXJ0aW8u YworQEAgLTc0Myw2ICs3NDMsNjAgQEAgaW50IHZpcnRpb19xdWV1ZV9lbXB0eShWaXJ0UXVldWUg KnZxKQorICAgICB9CisgfQorIAorK3N0YXRpYyBib29sIHZpcnRpb19xdWV1ZV9zcGxpdF9wb2xs KFZpcnRRdWV1ZSAqdnEsIHVuc2lnbmVkIHNoYWRvd19pZHgpCisreworKyAgICBpZiAodW5saWtl bHkoIXZxLT52cmluZy5hdmFpbCkpIHsKKysgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQor KworKyAgICByZXR1cm4gKHVpbnQxNl90KXNoYWRvd19pZHggIT0gdnJpbmdfYXZhaWxfaWR4KHZx KTsKKyt9CisrCisrc3RhdGljIGJvb2wgdmlydGlvX3F1ZXVlX3BhY2tlZF9wb2xsKFZpcnRRdWV1 ZSAqdnEsIHVuc2lnbmVkIHNoYWRvd19pZHgpCisreworKyAgICBWUmluZ1BhY2tlZERlc2MgZGVz YzsKKysgICAgVlJpbmdNZW1vcnlSZWdpb25DYWNoZXMgKmNhY2hlczsKKysKKysgICAgaWYgKHVu bGlrZWx5KCF2cS0+dnJpbmcuZGVzYykpIHsKKysgICAgICAgIHJldHVybiBmYWxzZTsKKysgICAg fQorKworKyAgICBjYWNoZXMgPSB2cmluZ19nZXRfcmVnaW9uX2NhY2hlcyh2cSk7CisrICAgIGlm ICghY2FjaGVzKSB7CisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysKKysgICAgdnJp bmdfcGFja2VkX2Rlc2NfcmVhZCh2cS0+dmRldiwgJmRlc2MsICZjYWNoZXMtPmRlc2MsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93X2lkeCwgdHJ1ZSk7CisrCisrICAgIHJldHVy biBpc19kZXNjX2F2YWlsKGRlc2MuZmxhZ3MsIHZxLT5zaGFkb3dfYXZhaWxfd3JhcF9jb3VudGVy KTsKKyt9CisrCisrc3RhdGljIGJvb2wgdmlydGlvX3F1ZXVlX3BvbGwoVmlydFF1ZXVlICp2cSwg dW5zaWduZWQgc2hhZG93X2lkeCkKKyt7CisrICAgIGlmICh2aXJ0aW9fZGV2aWNlX2Rpc2FibGVk KHZxLT52ZGV2KSkgeworKyAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisrICAgIGlm ICh2aXJ0aW9fdmRldl9oYXNfZmVhdHVyZSh2cS0+dmRldiwgVklSVElPX0ZfUklOR19QQUNLRUQp KSB7CisrICAgICAgICByZXR1cm4gdmlydGlvX3F1ZXVlX3BhY2tlZF9wb2xsKHZxLCBzaGFkb3df aWR4KTsKKysgICAgfSBlbHNlIHsKKysgICAgICAgIHJldHVybiB2aXJ0aW9fcXVldWVfc3BsaXRf cG9sbCh2cSwgc2hhZG93X2lkeCk7CisrICAgIH0KKyt9CisrCisrYm9vbCB2aXJ0aW9fcXVldWVf ZW5hYmxlX25vdGlmaWNhdGlvbl9hbmRfY2hlY2soVmlydFF1ZXVlICp2cSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3BhcXVlKQorK3sKKysg ICAgdmlydGlvX3F1ZXVlX3NldF9ub3RpZmljYXRpb24odnEsIDEpOworKworKyAgICBpZiAob3Bh cXVlID49IDApIHsKKysgICAgICAgIHJldHVybiB2aXJ0aW9fcXVldWVfcG9sbCh2cSwgKHVuc2ln bmVkKW9wYXF1ZSk7CisrICAgIH0gZWxzZSB7CisrICAgICAgICByZXR1cm4gZmFsc2U7CisrICAg IH0KKyt9CisrCisgc3RhdGljIHZvaWQgdmlydHF1ZXVlX3VubWFwX3NnKFZpcnRRdWV1ZSAqdnEs IGNvbnN0IFZpcnRRdWV1ZUVsZW1lbnQgKmVsZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBsZW4pCisgeworQEAgLTEzMzAsOSArMTM4NCw5IEBAIGVycjoK KyAgICAgZ290byBkb25lOworIH0KKyAKKy12b2lkIHZpcnRxdWV1ZV9nZXRfYXZhaWxfYnl0ZXMo VmlydFF1ZXVlICp2cSwgdW5zaWduZWQgaW50ICppbl9ieXRlcywKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpvdXRfYnl0ZXMsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1heF9pbl9ieXRlcywgdW5zaWduZWQgbWF4X291dF9i eXRlcykKKytpbnQgdmlydHF1ZXVlX2dldF9hdmFpbF9ieXRlcyhWaXJ0UXVldWUgKnZxLCB1bnNp Z25lZCBpbnQgKmluX2J5dGVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCAqb3V0X2J5dGVzLCB1bnNpZ25lZCBtYXhfaW5fYnl0ZXMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWF4X291dF9ieXRlcykKKyB7CisgICAgIHVpbnQx Nl90IGRlc2Nfc2l6ZTsKKyAgICAgVlJpbmdNZW1vcnlSZWdpb25DYWNoZXMgKmNhY2hlczsKK0BA IC0xMzY1LDcgKzE0MTksNyBAQCB2b2lkIHZpcnRxdWV1ZV9nZXRfYXZhaWxfYnl0ZXMoVmlydFF1 ZXVlICp2cSwgdW5zaWduZWQgaW50ICppbl9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2FjaGVzKTsKKyAgICAgfQorIAorLSAgICByZXR1cm47CisrICAg IHJldHVybiAoaW50KXZxLT5zaGFkb3dfYXZhaWxfaWR4OworIGVycjoKKyAgICAgaWYgKGluX2J5 dGVzKSB7CisgICAgICAgICAqaW5fYnl0ZXMgPSAwOworQEAgLTEzNzMsNiArMTQyNyw4IEBAIGVy cjoKKyAgICAgaWYgKG91dF9ieXRlcykgeworICAgICAgICAgKm91dF9ieXRlcyA9IDA7CisgICAg IH0KKysKKysgICAgcmV0dXJuIC0xOworIH0KKyAKKyBpbnQgdmlydHF1ZXVlX2F2YWlsX2J5dGVz KFZpcnRRdWV1ZSAqdnEsIHVuc2lnbmVkIGludCBpbl9ieXRlcywKK2RpZmYgLS1naXQgYS9pbmNs dWRlL2h3L3ZpcnRpby92aXJ0aW8uaCBiL2luY2x1ZGUvaHcvdmlydGlvL3ZpcnRpby5oCitpbmRl eCAyZWFmYWQxN2I4Li44YjRkYTkyODg5IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9ody92aXJ0aW8v dmlydGlvLmgKKysrKyBiL2luY2x1ZGUvaHcvdmlydGlvL3ZpcnRpby5oCitAQCAtMjcxLDkgKzI3 MSwxMyBAQCB2b2lkIHFlbXVfcHV0X3ZpcnRxdWV1ZV9lbGVtZW50KFZpcnRJT0RldmljZSAqdmRl diwgUUVNVUZpbGUgKmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaXJ0UXVl dWVFbGVtZW50ICplbGVtKTsKKyBpbnQgdmlydHF1ZXVlX2F2YWlsX2J5dGVzKFZpcnRRdWV1ZSAq dnEsIHVuc2lnbmVkIGludCBpbl9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBvdXRfYnl0ZXMpOworLXZvaWQgdmlydHF1ZXVlX2dldF9hdmFpbF9ieXRlcyhW aXJ0UXVldWUgKnZxLCB1bnNpZ25lZCBpbnQgKmluX2J5dGVzLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKm91dF9ieXRlcywKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbWF4X2luX2J5dGVzLCB1bnNpZ25lZCBtYXhfb3V0X2J5 dGVzKTsKKysvKioKKysgKiBSZXR1cm4gPDAgb24gZXJyb3Igb3IgYW4gb3BhcXVlID49MCB0byBw YXNzIHRvCisrICogdmlydGlvX3F1ZXVlX2VuYWJsZV9ub3RpZmljYXRpb25fYW5kX2NoZWNrIG9u IHN1Y2Nlc3MuCisrICovCisraW50IHZpcnRxdWV1ZV9nZXRfYXZhaWxfYnl0ZXMoVmlydFF1ZXVl ICp2cSwgdW5zaWduZWQgaW50ICppbl9ieXRlcywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgKm91dF9ieXRlcywgdW5zaWduZWQgbWF4X2luX2J5dGVzLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1heF9vdXRfYnl0ZXMpOworIAor IHZvaWQgdmlydGlvX25vdGlmeV9pcnFmZChWaXJ0SU9EZXZpY2UgKnZkZXYsIFZpcnRRdWV1ZSAq dnEpOworIHZvaWQgdmlydGlvX25vdGlmeShWaXJ0SU9EZXZpY2UgKnZkZXYsIFZpcnRRdWV1ZSAq dnEpOworQEAgLTMwNyw2ICszMTEsMTcgQEAgaW50IHZpcnRpb19xdWV1ZV9yZWFkeShWaXJ0UXVl dWUgKnZxKTsKKyAKKyBpbnQgdmlydGlvX3F1ZXVlX2VtcHR5KFZpcnRRdWV1ZSAqdnEpOworIAor Ky8qKgorKyAqIEVuYWJsZSBub3RpZmljYXRpb24gYW5kIGNoZWNrIHdoZXRoZXIgZ3Vlc3QgaGFz IGFkZGVkIHNvbWUKKysgKiBidWZmZXJzIHNpbmNlIGxhc3QgY2FsbCB0byB2aXJ0cXVldWVfZ2V0 X2F2YWlsX2J5dGVzLgorKyAqCisrICogQG9wYXF1ZTogdmFsdWUgcmV0dXJuZWQgZnJvbSB2aXJ0 cXVldWVfZ2V0X2F2YWlsX2J5dGVzCisrICovCisrYm9vbCB2aXJ0aW9fcXVldWVfZW5hYmxlX25v dGlmaWNhdGlvbl9hbmRfY2hlY2soVmlydFF1ZXVlICp2cSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3BhcXVlKTsKKysKKyt2b2lkIHZpcnRp b19xdWV1ZV9zZXRfc2hhZG93X2F2YWlsX2lkeChWaXJ0UXVldWUgKnZxLCB1aW50MTZfdCBpZHgp OworKworIC8qIEhvc3QgYmluZGluZyBpbnRlcmZhY2UuICAqLworIAorIHVpbnQzMl90IHZpcnRp b19jb25maWdfcmVhZGIoVmlydElPRGV2aWNlICp2ZGV2LCB1aW50MzJfdCBhZGRyKTsKZGlmZiAt LWdpdCBhL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMjAtbmV0LVJlaW5zdGF0ZS1uZXQtbmljLW1v ZGVsLWhlbHAtb3V0cHV0LWFzLWRvY3VtZW50ZS5wYXRjaCBiL2RlYmlhbi9wYXRjaGVzL2V4dHJh LzAwMjAtbmV0LVJlaW5zdGF0ZS1uZXQtbmljLW1vZGVsLWhlbHAtb3V0cHV0LWFzLWRvY3VtZW50 ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTliN2E1Ci0tLSAv ZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyMC1uZXQtUmVpbnN0YXRlLW5l dC1uaWMtbW9kZWwtaGVscC1vdXRwdXQtYXMtZG9jdW1lbnRlLnBhdGNoCkBAIC0wLDAgKzEsNzAg QEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhdmlkIFdvb2Rob3VzZSA8ZHdtd0BhbWF6b24uY28u dWs+CitEYXRlOiBUdWUsIDkgSnVsIDIwMjQgMTM6MzQ6NDQgKzAxMDAKK1N1YmplY3Q6IFtQQVRD SF0gbmV0OiBSZWluc3RhdGUgJy1uZXQgbmljLCBtb2RlbD1oZWxwJyBvdXRwdXQgYXMgZG9jdW1l bnRlZCBpbgorIG1hbiBwYWdlCisKK1doaWxlIHJlZmFjdG9yaW5nIHRoZSBOSUMgaW5pdGlhbGl6 YXRpb24gY29kZSwgSSBicm9rZSAnLW5ldCBuaWMsbW9kZWw9aGVscCcKK3doaWNoIG5vIGxvbmdl ciBvdXRwdXRzIGEgbGlzdCBvZiBhdmFpbGFibGUgTklDIG1vZGVscy4KKworRml4ZXM6IDJjZGVj YTA0YWRhYiAoIm5ldDogcmVwb3J0IGxpc3Qgb2YgYXZhaWxhYmxlIG1vZGVscyBhY2NvcmRpbmcg dG8gcGxhdGZvcm0iKQorQ2M6IHFlbXUtc3RhYmxlQG5vbmdudS5vcmcKK1NpZ25lZC1vZmYtYnk6 IERhdmlkIFdvb2Rob3VzZSA8ZHdtd0BhbWF6b24uY28udWs+CitSZXZpZXdlZC1ieTogTWljaGFl bCBUb2thcmV2IDxtanRAdGxzLm1zay5ydT4KK1NpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGph c293YW5nQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA2NGY3NWY1N2Y5 ZDJjOGMxMmFjNmQ5MzU1ZmE1ZDNhMmFmNTg3OWNhKQorU2lnbmVkLW9mZi1ieTogRmlvbmEgRWJu ZXIgPGYuZWJuZXJAcHJveG1veC5jb20+CistLS0KKyBuZXQvbmV0LmMgfCAyNSArKysrKysrKysr KysrKysrKysrKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9uZXQvbmV0LmMgYi9uZXQvbmV0LmMKK2luZGV4IGEy ZjBjODI4YmIuLmU2Y2EyNTI5YmIgMTAwNjQ0CistLS0gYS9uZXQvbmV0LmMKKysrKyBiL25ldC9u ZXQuYworQEAgLTExNTAsNiArMTE1MCwyMSBAQCBOSUNJbmZvICpxZW11X2ZpbmRfbmljX2luZm8o Y29uc3QgY2hhciAqdHlwZW5hbWUsIGJvb2wgbWF0Y2hfZGVmYXVsdCwKKyAgICAgcmV0dXJuIE5V TEw7CisgfQorIAorK3N0YXRpYyBib29sIGlzX25pY19tb2RlbF9oZWxwX29wdGlvbihjb25zdCBj aGFyICptb2RlbCkKKyt7CisrICAgIGlmIChtb2RlbCAmJiBpc19oZWxwX29wdGlvbihtb2RlbCkp IHsKKysgICAgICAgIC8qCisrICAgICAgICAgKiBUcmlnZ2VyIHRoZSBoZWxwIG91dHB1dCBieSBp bnN0YW50aWF0aW5nIHRoZSBoYXNoIHRhYmxlIHdoaWNoCisrICAgICAgICAgKiB3aWxsIGdhdGhl ciB0aGEgYXZhaWxhYmxlIG1vZGVscyBhcyB0aGV5IGdldCByZWdpc3RlcmVkLgorKyAgICAgICAg ICovCisrICAgICAgICBpZiAoIW5pY19tb2RlbF9oZWxwKSB7CisrICAgICAgICAgICAgbmljX21v ZGVsX2hlbHAgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWws CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19m cmVlLCBOVUxMKTsKKysgICAgICAgIH0KKysgICAgICAgIHJldHVybiB0cnVlOworKyAgICB9Cisr ICAgIHJldHVybiBmYWxzZTsKKyt9CisgCisgLyogIkkgaGF2ZSBjcmVhdGVkIGEgZGV2aWNlLiBQ bGVhc2UgY29uZmlndXJlIGl0IGlmIHlvdSBjYW4iICovCisgYm9vbCBxZW11X2NvbmZpZ3VyZV9u aWNfZGV2aWNlKERldmljZVN0YXRlICpkZXYsIGJvb2wgbWF0Y2hfZGVmYXVsdCwKK0BAIC0xNzMz LDYgKzE3NDgsMTIgQEAgdm9pZCBuZXRfY2hlY2tfY2xpZW50cyh2b2lkKQorIAorIHN0YXRpYyBp bnQgbmV0X2luaXRfY2xpZW50KHZvaWQgKmR1bW15LCBRZW11T3B0cyAqb3B0cywgRXJyb3IgKipl cnJwKQorIHsKKysgICAgY29uc3QgY2hhciAqbW9kZWwgPSBxZW11X29wdF9nZXRfZGVsKG9wdHMs ICJtb2RlbCIpOworKworKyAgICBpZiAoaXNfbmljX21vZGVsX2hlbHBfb3B0aW9uKG1vZGVsKSkg eworKyAgICAgICAgcmV0dXJuIDA7CisrICAgIH0KKysKKyAgICAgcmV0dXJuIG5ldF9jbGllbnRf aW5pdChvcHRzLCBmYWxzZSwgZXJycCk7CisgfQorIAorQEAgLTE3ODksOSArMTgxMCw3IEBAIHN0 YXRpYyBpbnQgbmV0X3BhcmFtX25pYyh2b2lkICpkdW1teSwgUWVtdU9wdHMgKm9wdHMsIEVycm9y ICoqZXJycCkKKyAgICAgbWVtc2V0KG5pLCAwLCBzaXplb2YoKm5pKSk7CisgICAgIG5pLT5tb2Rl bCA9IHFlbXVfb3B0X2dldF9kZWwob3B0cywgIm1vZGVsIik7CisgCistICAgIGlmICghbmljX21v ZGVsX2hlbHAgJiYgIWdfc3RyY21wMChuaS0+bW9kZWwsICJoZWxwIikpIHsKKy0gICAgICAgIG5p Y19tb2RlbF9oZWxwID0gZ19oYXNoX3RhYmxlX25ld19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2Vx dWFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19m cmVlLCBOVUxMKTsKKysgICAgaWYgKGlzX25pY19tb2RlbF9oZWxwX29wdGlvbihuaS0+bW9kZWwp KSB7CisgICAgICAgICByZXR1cm4gMDsKKyAgICAgfQorIApkaWZmIC0tZ2l0IGEvZGViaWFuL3Bh dGNoZXMvZXh0cmEvMDAyMS1uZXQtRml4LW5ldC1uaWMtbW9kZWwtZm9yLW5vbi1oZWxwLWFyZ3Vt ZW50cy5wYXRjaCBiL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMjEtbmV0LUZpeC1uZXQtbmljLW1v ZGVsLWZvci1ub24taGVscC1hcmd1bWVudHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uM2FiMjQwNwotLS0gL2Rldi9udWxsCisrKyBiL2RlYmlhbi9wYXRjaGVzL2V4 dHJhLzAwMjEtbmV0LUZpeC1uZXQtbmljLW1vZGVsLWZvci1ub24taGVscC1hcmd1bWVudHMucGF0 Y2gKQEAgLTAsMCArMSwzMiBAQAorRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGF2aWQgV29vZGhvdXNl IDxkd213QGFtYXpvbi5jby51az4KK0RhdGU6IFR1ZSwgNiBBdWcgMjAyNCAxODoyMTozNyArMDEw MAorU3ViamVjdDogW1BBVENIXSBuZXQ6IEZpeCAnLW5ldCBuaWMsbW9kZWw9JyBmb3Igbm9uLWhl bHAgYXJndW1lbnRzCisKK09vcHMsIGRvbid0ICpkZWxldGUqIHRoZSBtb2RlbCBvcHRpb24gd2hl biBjaGVja2luZyBmb3IgJ2hlbHAnLgorCitGaXhlczogNjRmNzVmNTdmOWQyICgibmV0OiBSZWlu c3RhdGUgJy1uZXQgbmljLCBtb2RlbD1oZWxwJyBvdXRwdXQgYXMgZG9jdW1lbnRlZCBpbiBtYW4g cGFnZSIpCitSZXBvcnRlZC1ieTogSGFucyA8c3VuZ2RnZGh0cnlydEBnbWFpbC5jb20+CitTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBXb29kaG91c2UgPGR3bXdAYW1hem9uLmNvLnVrPgorQ2M6IHFlbXUt c3RhYmxlQG5vbmdudS5vcmcKK1Jldmlld2VkLWJ5OiBNaWNoYWVsIFRva2FyZXYgPG1qdEB0bHMu bXNrLnJ1PgorU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4K KyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGZhNjJjYjk4OWE5MTQ2YzgyZjhmMTcyNzE1MDQy ODUyZjVkMzYyMDApCitTaWduZWQtb2ZmLWJ5OiBGaW9uYSBFYm5lciA8Zi5lYm5lckBwcm94bW94 LmNvbT4KKy0tLQorIG5ldC9uZXQuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL25ldC9uZXQuYyBiL25ldC9uZXQu YworaW5kZXggZTZjYTI1MjliYi4uODk3YmI5MzZjZiAxMDA2NDQKKy0tLSBhL25ldC9uZXQuYwor KysrIGIvbmV0L25ldC5jCitAQCAtMTc0OCw3ICsxNzQ4LDcgQEAgdm9pZCBuZXRfY2hlY2tfY2xp ZW50cyh2b2lkKQorIAorIHN0YXRpYyBpbnQgbmV0X2luaXRfY2xpZW50KHZvaWQgKmR1bW15LCBR ZW11T3B0cyAqb3B0cywgRXJyb3IgKiplcnJwKQorIHsKKy0gICAgY29uc3QgY2hhciAqbW9kZWwg PSBxZW11X29wdF9nZXRfZGVsKG9wdHMsICJtb2RlbCIpOworKyAgICBjb25zdCBjaGFyICptb2Rl bCA9IHFlbXVfb3B0X2dldChvcHRzLCAibW9kZWwiKTsKKyAKKyAgICAgaWYgKGlzX25pY19tb2Rl bF9oZWxwX29wdGlvbihtb2RlbCkpIHsKKyAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv ZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyMi10YXJnZXQtYXJtLURvbi10LWFzc2VydC1mb3ItMTI4 LWJpdC10aWxlLWFjY2Vzc2VzLXdoLnBhdGNoIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyMi10 YXJnZXQtYXJtLURvbi10LWFzc2VydC1mb3ItMTI4LWJpdC10aWxlLWFjY2Vzc2VzLXdoLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2NjdlZjQKLS0tIC9kZXYvbnVs bAorKysgYi9kZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDIyLXRhcmdldC1hcm0tRG9uLXQtYXNzZXJ0 LWZvci0xMjgtYml0LXRpbGUtYWNjZXNzZXMtd2gucGF0Y2gKQEAgLTAsMCArMSw1NyBAQAorRnJv bSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3Jn PgorRGF0ZTogTW9uLCAyMiBKdWwgMjAyNCAxODoyOTo1NCArMDEwMAorU3ViamVjdDogW1BBVENI XSB0YXJnZXQvYXJtOiBEb24ndCBhc3NlcnQgZm9yIDEyOC1iaXQgdGlsZSBhY2Nlc3NlcyB3aGVu IFNWTAorIGlzIDEyOAorCitGb3IgYW4gaW5zdHJ1Y3Rpb24gd2hpY2ggYWNjZXNzZXMgYSAxMjgt Yml0IGVsZW1lbnQgdGlsZSB3aGVuCit0aGUgU1ZMIGlzIGFsc28gMTI4IChmb3IgZXhhbXBsZSBN T1YgejAuUSwgcDAvTSwgWkEwSC5RW3cwLDBdKSwKK3dlIHdpbGwgYXNzZXJ0IGluIGdldF90aWxl X3Jvd2NvbCgpOgorCitxZW11LXN5c3RlbS1hYXJjaDY0OiAuLi8uLi90Y2cvdGNnLW9wLmM6OTI2 OiB0Y2dfZ2VuX2RlcG9zaXRfel9pMzI6IEFzc2VydGlvbiBgbGVuID4gMCcgZmFpbGVkLgorCitU aGlzIGhhcHBlbnMgYmVjYXVzZSB3ZSBjYWxjdWxhdGUKKyAgICBsZW4gPSBjdHozMihzdHJlYW1p bmdfdmVjX3JlZ19zaXplKHMpKSAtIGVzejskCitidXQgaWYgdGhlIFNWTCBhbmQgdGhlIGVsZW1l bnQgc2l6ZSBhcmUgdGhlIHNhbWUgbGVuIGlzIDAsIGFuZAordGhlIGRlcG9zaXQgb3BlcmF0aW9u IGFzc2VydHMuCisKK0luIHRoaXMgY2FzZSB0aGUgWkEgc3RvcmFnZSBjb250YWlucyBleGFjdGx5 IG9uZSAxMjggYml0CitlbGVtZW50IFpBIHRpbGUsIGFuZCB0aGUgaG9yaXpvbnRhbCBvciB2ZXJ0 aWNhbCBzbGljZSBpcyBqdXN0Cit0aGF0IHRpbGUuIFRoaXMgbWVhbnMgdGhhdCByZWdhcmRsZXNz IG9mIHRoZSBpbmRleCB2YWx1ZSBpbgordGhlIFdzIHJlZ2lzdGVyLCB3ZSBhbHdheXMgYWNjZXNz IHRoYXQgdGlsZS4gKEluIHBzZXVkb2NvZGUgdGVybXMsCit3ZSBjYWxjdWxhdGUgKGluZGV4ICsg b2Zmc2V0KSBNT0QgMSwgd2hpY2ggaXMgMC4pCisKK1NwZWNpYWwgY2FzZSB0aGUgbGVuID09IDAg Y2FzZSB0byBhdm9pZCBoaXR0aW5nIHRoZSBhc3NlcnRpb24KK2luIHRjZ19nZW5fZGVwb3NpdF96 X2kzMigpLgorCitDYzogcWVtdS1zdGFibGVAbm9uZ251Lm9yZworU2lnbmVkLW9mZi1ieTogUGV0 ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorUmV2aWV3ZWQtYnk6IFJpY2hh cmQgSGVuZGVyc29uIDxyaWNoYXJkLmhlbmRlcnNvbkBsaW5hcm8ub3JnPgorTWVzc2FnZS1pZDog MjAyNDA3MjIxNzI5NTcuMTA0MTIzMS0yLXBldGVyLm1heWRlbGxAbGluYXJvLm9yZworKGNoZXJy eSBwaWNrZWQgZnJvbSBjb21taXQgNTZmMWMwZGI5MjhhYWUwYjgzZmQ5MWM4OWRkYjIyNmIxMzdl MmIyMSkKK1NpZ25lZC1vZmYtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHByb3htb3guY29tPgor LS0tCisgdGFyZ2V0L2FybS90Y2cvdHJhbnNsYXRlLXNtZS5jIHwgMTAgKysrKysrKysrLQorIDEg ZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdp dCBhL3RhcmdldC9hcm0vdGNnL3RyYW5zbGF0ZS1zbWUuYyBiL3RhcmdldC9hcm0vdGNnL3RyYW5z bGF0ZS1zbWUuYworaW5kZXggMTg1YThhOTE3Yi4uYTUwYTQxOWFmMiAxMDA2NDQKKy0tLSBhL3Rh cmdldC9hcm0vdGNnL3RyYW5zbGF0ZS1zbWUuYworKysrIGIvdGFyZ2V0L2FybS90Y2cvdHJhbnNs YXRlLXNtZS5jCitAQCAtNDksNyArNDksMTUgQEAgc3RhdGljIFRDR3ZfcHRyIGdldF90aWxlX3Jv d2NvbChEaXNhc0NvbnRleHQgKnMsIGludCBlc3osIGludCBycywKKyAgICAgLyogUHJlcGFyZSBh IHBvd2VyLW9mLXR3byBtb2R1bG8gdmlhIGV4dHJhY3Rpb24gb2YgQGxlbiBiaXRzLiAqLworICAg ICBsZW4gPSBjdHozMihzdHJlYW1pbmdfdmVjX3JlZ19zaXplKHMpKSAtIGVzejsKKyAKKy0gICAg aWYgKHZlcnRpY2FsKSB7CisrICAgIGlmICghbGVuKSB7CisrICAgICAgICAvKgorKyAgICAgICAg ICogU1ZMIGlzIDEyOCBhbmQgdGhlIGVsZW1lbnQgc2l6ZSBpcyAxMjguIFRoZXJlIGlzIGV4YWN0 bHkKKysgICAgICAgICAqIG9uZSAxMjh4MTI4IHRpbGUgaW4gdGhlIFpBIHN0b3JhZ2UsIGFuZCBz byB3ZSBjYWxjdWxhdGUKKysgICAgICAgICAqIChScyArIGltbSkgTU9EIDEsIHdoaWNoIGlzIGFs d2F5cyAwLiBXZSBuZWVkIHRvIHNwZWNpYWwgY2FzZQorKyAgICAgICAgICogdGhpcyBiZWNhdXNl IFRDRyBkb2Vzbid0IGFsbG93IGRlcG9zaXQgb3BzIHdpdGggbGVuIDAuCisrICAgICAgICAgKi8K KysgICAgICAgIHRjZ19nZW5fbW92aV9pMzIodG1wLCAwKTsKKysgICAgfSBlbHNlIGlmICh2ZXJ0 aWNhbCkgeworICAgICAgICAgLyoKKyAgICAgICAgICAqIENvbXB1dGUgdGhlIGJ5dGUgb2Zmc2V0 IG9mIHRoZSBpbmRleCB3aXRoaW4gdGhlIHRpbGU6CisgICAgICAgICAgKiAgICAgKGluZGV4ICUg KHN2bCAvIHNpemUpKSAqIHNpemUKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAw MjMtdGFyZ2V0LWFybS1GaXgtVU1PUEEtVU1PUFMtb2YtMTYtYml0LXZhbHVlcy5wYXRjaCBiL2Rl Ymlhbi9wYXRjaGVzL2V4dHJhLzAwMjMtdGFyZ2V0LWFybS1GaXgtVU1PUEEtVU1PUFMtb2YtMTYt Yml0LXZhbHVlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDYw YjMwCi0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyMy10YXJnZXQt YXJtLUZpeC1VTU9QQS1VTU9QUy1vZi0xNi1iaXQtdmFsdWVzLnBhdGNoCkBAIC0wLDAgKzEsNTkg QEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIE1heWRlbGwgPHBldGVyLm1heWRlbGxAbGlu YXJvLm9yZz4KK0RhdGU6IE1vbiwgMjIgSnVsIDIwMjQgMTg6Mjk6NTUgKzAxMDAKK1N1YmplY3Q6 IFtQQVRDSF0gdGFyZ2V0L2FybTogRml4IFVNT1BBL1VNT1BTIG9mIDE2LWJpdCB2YWx1ZXMKKwor VGhlIFVNT1BBL1VNT1BTIGluc3RydWN0aW9ucyBhcmUgc3VwcG9zZWQgdG8gbXVsdGlwbHkgdW5z aWduZWQgOCBvcgorMTYgYml0IGVsZW1lbnRzIGFuZCBhY2N1bXVsYXRlIHRoZSBwcm9kdWN0cyBp bnRvIGEgNjQtYml0IGVsZW1lbnQuCitJbiB0aGUgQXJtIEFSTSBwc2V1ZG9jb2RlLCB0aGlzIGlz IGRvbmUgd2l0aCB0aGUgdXN1YWwKK2luZmluaXRlLXByZWNpc2lvbiBzaWduZWQgYXJpdGhtZXRp Yy4gIEhvd2V2ZXIgb3VyIGltcGxlbWVudGF0aW9uCitkb2Vzbid0IHF1aXRlIGdldCBpdCByaWdo dCwgYmVjYXVzZSBpbiB0aGUgREVGX0lNT1BfNjQoKSBtYWNybyB3ZSBkbzoKKyAgc3VtICs9IChO VFlQRSkobiA+PiAwKSAqIChNVFlQRSkobSA+PiAwKTsKKword2hlcmUgTlRZUEUgYW5kIE1UWVBF IGFyZSB1aW50MTZfdCBvciBpbnQxNl90LiAgSW4gdGhlIHVpbnQxNl90IGNhc2UsCit0aGUgQyB1 c3VhbCBhcml0aG1ldGljIGNvbnZlcnNpb25zIG1lYW4gdGhlIHZhbHVlcyBhcmUgY29udmVydGVk IHRvCisiaW50IiB0eXBlIGFuZCB0aGUgbXVsdGlwbHkgaXMgZG9uZSBhcyBhIDMyLWJpdCBtdWx0 aXBseS4gIFRoaXMgbWVhbnMKK3RoYXQgaWYgdGhlIGlucHV0cyBhcmUsIGZvciBleGFtcGxlLCAw eGZmZmYgYW5kIDB4ZmZmZiB0aGVuIHRoZQorcmVzdWx0IGlzIDB4RkZGRTAwMDEgYXMgYW4gaW50 LCB3aGljaCBpcyB0aGVuIHByb21vdGVkIHRvIHVpbnQ2NF90Citmb3IgdGhlIGFjY3VtdWxhdGlv biBpbnRvIHN1bTsgdGhpcyBwcm9tb3Rpb24gaW5jb3JyZWN0bHkgc2lnbgorZXh0ZW5kcyB0aGUg bXVsdGlwbHkuCisKK0F2b2lkIHRoZSBpbmNvcnJlY3Qgc2lnbiBleHRlbnNpb24gYnkgY2FzdGlu ZyB0byBpbnQ2NF90IGJlZm9yZQordGhlIG11bHRpcGx5LCBzbyB3ZSBkbyB0aGUgbXVsdGlwbHkg YXMgNjQtYml0IHNpZ25lZCBhcml0aG1ldGljLAord2hpY2ggaXMgYSB0eXBlIGxhcmdlIGVub3Vn aCB0aGF0IHRoZSBtdWx0aXBseSBjYW4gbmV2ZXIKK292ZXJmbG93IGludG8gdGhlIHNpZ24gYml0 LgorCisoVGhlIGVxdWl2YWxlbnQgOC1iaXQgb3BlcmF0aW9ucyBpbiBERUZfSU1PUF8zMigpIGFy ZSBmaW5lLCBiZWNhdXNlCit0aGUgOC1iaXQgbXVsdGlwbGllcyBjYW4gbmV2ZXIgb3ZlcmZsb3cg aW50byB0aGUgc2lnbiBiaXQgb2YgYQorMzItYml0IGludGVnZXIuKQorCitDYzogcWVtdS1zdGFi bGVAbm9uZ251Lm9yZworUmVzb2x2ZXM6IGh0dHBzOi8vZ2l0bGFiLmNvbS9xZW11LXByb2plY3Qv cWVtdS8tL2lzc3Vlcy8yMzcyCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBNYXlkZWxsIDxwZXRlci5t YXlkZWxsQGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogUmljaGFyZCBIZW5kZXJzb24gPHJpY2hh cmQuaGVuZGVyc29uQGxpbmFyby5vcmc+CitNZXNzYWdlLWlkOiAyMDI0MDcyMjE3Mjk1Ny4xMDQx MjMxLTMtcGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1p dCBlYTNmNWE5MGYwMzY3MzQ1MjJlOWFmM2JmZmQ3N2U2OWU5ZjQ3MzU1KQorU2lnbmVkLW9mZi1i eTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+CistLS0KKyB0YXJnZXQvYXJtL3Rj Zy9zbWVfaGVscGVyLmMgfCA4ICsrKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3RhcmdldC9hcm0vdGNnL3NtZV9o ZWxwZXIuYyBiL3RhcmdldC9hcm0vdGNnL3NtZV9oZWxwZXIuYworaW5kZXggNWE2ZGQ3NjQ4OS4u ZjkwMDFmNTIxMyAxMDA2NDQKKy0tLSBhL3RhcmdldC9hcm0vdGNnL3NtZV9oZWxwZXIuYworKysr IGIvdGFyZ2V0L2FybS90Y2cvc21lX2hlbHBlci5jCitAQCAtMTE0NiwxMCArMTE0NiwxMCBAQCBz dGF0aWMgdWludDY0X3QgTkFNRSh1aW50NjRfdCBuLCB1aW50NjRfdCBtLCB1aW50NjRfdCBhLCB1 aW50OF90IHAsIGJvb2wgbmVnKSBcCisgICAgIHVpbnQ2NF90IHN1bSA9IDA7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgLyogQXBw bHkgUCB0byBOIGFzIGEgbWFzaywgbWFraW5nIHRoZSBpbmFjdGl2ZSBlbGVtZW50cyAwLiAqLyAg ICAgICAgICAgXAorICAgICBuICY9IGV4cGFuZF9wcmVkX2gocCk7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHN1bSArPSAoTlRZUEUpKG4g Pj4gMCkgKiAoTVRZUEUpKG0gPj4gMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK Ky0gICAgc3VtICs9IChOVFlQRSkobiA+PiAxNikgKiAoTVRZUEUpKG0gPj4gMTYpOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorLSAgICBzdW0gKz0gKE5UWVBFKShuID4+IDMyKSAqIChN VFlQRSkobSA+PiAzMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIHN1bSAr PSAoTlRZUEUpKG4gPj4gNDgpICogKE1UWVBFKShtID4+IDQ4KTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysgICAgc3VtICs9IChpbnQ2NF90KShOVFlQRSkobiA+PiAwKSAqIChNVFlQ RSkobSA+PiAwKTsgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBzdW0gKz0gKGludDY0X3Qp KE5UWVBFKShuID4+IDE2KSAqIChNVFlQRSkobSA+PiAxNik7ICAgICAgICAgICAgICAgICAgICBc CisrICAgIHN1bSArPSAoaW50NjRfdCkoTlRZUEUpKG4gPj4gMzIpICogKE1UWVBFKShtID4+IDMy KTsgICAgICAgICAgICAgICAgICAgIFwKKysgICAgc3VtICs9IChpbnQ2NF90KShOVFlQRSkobiA+ PiA0OCkgKiAoTVRZUEUpKG0gPj4gNDgpOyAgICAgICAgICAgICAgICAgICAgXAorICAgICByZXR1 cm4gbmVnID8gYSAtIHN1bSA6IGEgKyBzdW07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgfQorIApkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAy NC10YXJnZXQtYXJtLUF2b2lkLXNoaWZ0cy1ieS0xLWluLXRzemltbV9zaHItYW5kLXRzemltLnBh dGNoIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyNC10YXJnZXQtYXJtLUF2b2lkLXNoaWZ0cy1i eS0xLWluLXRzemltbV9zaHItYW5kLXRzemltLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjUyY2E3NjUKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hlcy9l eHRyYS8wMDI0LXRhcmdldC1hcm0tQXZvaWQtc2hpZnRzLWJ5LTEtaW4tdHN6aW1tX3Noci1hbmQt dHN6aW0ucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGV0ZXIg TWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorRGF0ZTogTW9uLCAyMiBKdWwgMjAy NCAxODoyOTo1NiArMDEwMAorU3ViamVjdDogW1BBVENIXSB0YXJnZXQvYXJtOiBBdm9pZCBzaGlm dHMgYnkgLTEgaW4gdHN6aW1tX3NocigpIGFuZAorIHRzemltbV9zaGwoKQorCitUaGUgZnVuY3Rp b24gdHN6aW1tX2VzeigpIHJldHVybnMgYSBzaGlmdCBhbW91bnQsIG9yIHBvc3NpYmx5IC0xIGlu CitjZXJ0YWluIGNhc2VzIHRoYXQgY29ycmVzcG9uZCB0byB1bmFsbG9jYXRlZCBlbmNvZGluZ3Mg aW4gdGhlCitpbnN0cnVjdGlvbiBzZXQuICBXZSBjYXRjaCB0aGVzZSBsYXRlciBpbiB0aGUgdHJh bnNfIGZ1bmN0aW9ucworKGdlbmVyYWxseSB3aXRoIGFuICJhLWVzeiA8IDAiIGNoZWNrKSwgYnV0 IGJlZm9yZSB3ZSBkbyB0aGUKK2RlY29kZXRyZWUtZ2VuZXJhdGVkIGNvZGUgd2lsbCBhbHNvIGNh bGwgdHN6aW1tX3NocigpIG9yIHRzemltbV9zbCgpLAord2hpY2ggd2lsbCB1c2UgdGhlIHRzemlt bV9lc3ooKSByZXR1cm4gdmFsdWUgYXMgYSBzaGlmdCBjb3VudCB3aXRob3V0CitjaGVja2luZyB0 aGF0IGl0IGlzIG5vdCBuZWdhdGl2ZSwgd2hpY2ggaXMgdW5kZWZpbmVkIGJlaGF2aW91ci4KKwor QXZvaWQgdGhlIFVCIGJ5IGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgaW4gdHN6aW1tX3Nocigp IGFuZAordHN6aW1tX3NobCgpLgorCitDYzogcWVtdS1zdGFibGVAbm9uZ251Lm9yZworUmVzb2x2 ZXM6IENvdmVyaXR5IENJRCAxNTQ3NjE3LCAxNTQ3Njk0CitTaWduZWQtb2ZmLWJ5OiBQZXRlciBN YXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogUmljaGFyZCBI ZW5kZXJzb24gPHJpY2hhcmQuaGVuZGVyc29uQGxpbmFyby5vcmc+CitNZXNzYWdlLWlkOiAyMDI0 MDcyMjE3Mjk1Ny4xMDQxMjMxLTQtcGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnCisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCA3NjkxNmRmYTg5ZTg5MDA2MzljMTA1NWMwN2EyOTVjMDY2MjhhMGJj KQorU2lnbmVkLW9mZi1ieTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+CistLS0K KyB0YXJnZXQvYXJtL3RjZy90cmFuc2xhdGUtc3ZlLmMgfCAxOCArKysrKysrKysrKysrKysrLS0K KyAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBhL3RhcmdldC9hcm0vdGNnL3RyYW5zbGF0ZS1zdmUuYyBiL3RhcmdldC9hcm0vdGNn L3RyYW5zbGF0ZS1zdmUuYworaW5kZXggYWRhMDVhYTUzMC4uNDY2YTE5YzI1YSAxMDA2NDQKKy0t LSBhL3RhcmdldC9hcm0vdGNnL3RyYW5zbGF0ZS1zdmUuYworKysrIGIvdGFyZ2V0L2FybS90Y2cv dHJhbnNsYXRlLXN2ZS5jCitAQCAtNTAsMTMgKzUwLDI3IEBAIHN0YXRpYyBpbnQgdHN6aW1tX2Vz eihEaXNhc0NvbnRleHQgKnMsIGludCB4KQorIAorIHN0YXRpYyBpbnQgdHN6aW1tX3NocihEaXNh c0NvbnRleHQgKnMsIGludCB4KQorIHsKKy0gICAgcmV0dXJuICgxNiA8PCB0c3ppbW1fZXN6KHMs IHgpKSAtIHg7CisrICAgIC8qCisrICAgICAqIFdlIHdvbid0IHVzZSB0aGUgdHN6aW1tX3Nocigp IHZhbHVlIGlmIHRzemltbV9lc3ooKSByZXR1cm5zIC0xICh0aGUKKysgICAgICogdHJhbnMgZnVu Y3Rpb24gd2lsbCBjaGVjayBmb3IgZXN6IDwgMCksIHNvIHdlIGNhbiByZXR1cm4gYW55CisrICAg ICAqIHZhbHVlIHdlIGxpa2UgZnJvbSBoZXJlIGluIHRoYXQgY2FzZSBhcyBsb25nIGFzIHdlIGF2 b2lkIFVCLgorKyAgICAgKi8KKysgICAgaW50IGVzeiA9IHRzemltbV9lc3oocywgeCk7CisrICAg IGlmIChlc3ogPCAwKSB7CisrICAgICAgICByZXR1cm4gZXN6OworKyAgICB9CisrICAgIHJldHVy biAoMTYgPDwgZXN6KSAtIHg7CisgfQorIAorIC8qIFNlZSBlLmcuIExTTCAoaW1tZWRpYXRlLCBw cmVkaWNhdGVkKS4gICovCisgc3RhdGljIGludCB0c3ppbW1fc2hsKERpc2FzQ29udGV4dCAqcywg aW50IHgpCisgeworLSAgICByZXR1cm4geCAtICg4IDw8IHRzemltbV9lc3oocywgeCkpOworKyAg ICAvKiBBcyB3aXRoIHRzemltbV9zaHIoKSwgdmFsdWUgd2lsbCBiZSB1bnVzZWQgaWYgZXN6IDwg MCAqLworKyAgICBpbnQgZXN6ID0gdHN6aW1tX2VzeihzLCB4KTsKKysgICAgaWYgKGVzeiA8IDAp IHsKKysgICAgICAgIHJldHVybiBlc3o7CisrICAgIH0KKysgICAgcmV0dXJuIHggLSAoOCA8PCBl c3opOworIH0KKyAKKyAvKiBUaGUgU0ggYml0IGlzIGluIGJpdCA4LiAgRXh0cmFjdCB0aGUgbG93 IDggYW5kIHNoaWZ0LiAgKi8KZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMjUt dGFyZ2V0LWFybS1JZ25vcmUtU01DUl9FTDIuTEVOLWFuZC1TVkNSX0VMMi5MRU4taWYtRS5wYXRj aCBiL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMjUtdGFyZ2V0LWFybS1JZ25vcmUtU01DUl9FTDIu TEVOLWFuZC1TVkNSX0VMMi5MRU4taWYtRS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5iYzhiZDM5Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvZXh0 cmEvMDAyNS10YXJnZXQtYXJtLUlnbm9yZS1TTUNSX0VMMi5MRU4tYW5kLVNWQ1JfRUwyLkxFTi1p Zi1FLnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIE1h eWRlbGwgPHBldGVyLm1heWRlbGxAbGluYXJvLm9yZz4KK0RhdGU6IE1vbiwgMjIgSnVsIDIwMjQg MTg6Mjk6NTcgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gdGFyZ2V0L2FybTogSWdub3JlIFNNQ1Jf RUwyLkxFTiBhbmQgU1ZDUl9FTDIuTEVOIGlmIEVMMiBpcworIG5vdCBlbmFibGVkCisKK1doZW4g ZGV0ZXJtaW5pbmcgdGhlIGN1cnJlbnQgdmVjdG9yIGxlbmd0aCwgdGhlIFNNQ1JfRUwyLkxFTiBh bmQKK1NWQ1JfRUwyLkxFTiBzZXR0aW5ncyBzaG91bGQgb25seSBiZSBjb25zaWRlcmVkIGlmIEVM MiBpcyBlbmFibGVkCisoY29tcGFyZSB0aGUgcHNldWRvY29kZSBDdXJyZW50U1ZMIGFuZCBDdXJy ZW50TlNWTCB3aGljaCBjYWxsCitFTDJFbmFibGVkKCkpLgorCitXZSB3ZXJlIGNoZWNraW5nIGFn YWluc3QgQVJNX0ZFQVRVUkVfRUwyIHJhdGhlciB0aGFuIGNhbGxpbmcKK2FybV9pc19lbDJfZW5h YmxlZCgpLCB3aGljaCBtZWFudCB0aGF0IHdlIHdvdWxkIGxvb2sgYXQKK1NNQ1JfRUwyL1NWQ1Jf RUwyIHdoZW4gaW4gU2VjdXJlIEVMMSBvciBTZWN1cmUgRUwwIGV2ZW4gaWYgU2VjdXJlIEVMMgor d2FzIG5vdCBlbmFibGVkLgorCitVc2UgdGhlIGNvcnJlY3QgY2hlY2sgaW4gc3ZlX3ZxbTFfZm9y X2VsX3NtKCkuCisKK0NjOiBxZW11LXN0YWJsZUBub25nbnUub3JnCitTaWduZWQtb2ZmLWJ5OiBQ ZXRlciBNYXlkZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CitSZXZpZXdlZC1ieTogUmlj aGFyZCBIZW5kZXJzb24gPHJpY2hhcmQuaGVuZGVyc29uQGxpbmFyby5vcmc+CitNZXNzYWdlLWlk OiAyMDI0MDcyMjE3Mjk1Ny4xMDQxMjMxLTUtcGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnCisoY2hl cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBmNTczYWMwNTllZDA2MDIzNGZjZWY0Mjk5ZmFlOWU1MDBk MzU3YzMzKQorU2lnbmVkLW9mZi1ieTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+ CistLS0KKyB0YXJnZXQvYXJtL2hlbHBlci5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvdGFyZ2V0L2FybS9oZWxw ZXIuYyBiL3RhcmdldC9hcm0vaGVscGVyLmMKK2luZGV4IGE2MjA0ODFkN2MuLjQyMDQ0YWUxNGIg MTAwNjQ0CistLS0gYS90YXJnZXQvYXJtL2hlbHBlci5jCisrKysgYi90YXJnZXQvYXJtL2hlbHBl ci5jCitAQCAtNzE5MSw3ICs3MTkxLDcgQEAgdWludDMyX3Qgc3ZlX3ZxbTFfZm9yX2VsX3NtKENQ VUFSTVN0YXRlICplbnYsIGludCBlbCwgYm9vbCBzbSkKKyAgICAgaWYgKGVsIDw9IDEgJiYgIWVs X2lzX2luX2hvc3QoZW52LCBlbCkpIHsKKyAgICAgICAgIGxlbiA9IE1JTihsZW4sIDB4ZiAmICh1 aW50MzJfdCljclsxXSk7CisgICAgIH0KKy0gICAgaWYgKGVsIDw9IDIgJiYgYXJtX2ZlYXR1cmUo ZW52LCBBUk1fRkVBVFVSRV9FTDIpKSB7CisrICAgIGlmIChlbCA8PSAyICYmIGFybV9pc19lbDJf ZW5hYmxlZChlbnYpKSB7CisgICAgICAgICBsZW4gPSBNSU4obGVuLCAweGYgJiAodWludDMyX3Qp Y3JbMl0pOworICAgICB9CisgICAgIGlmIChhcm1fZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX0VM MykpIHsKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMjYtdGFyZ2V0LWFybS1I YW5kbGUtZGVub3JtYWxzLWNvcnJlY3RseS1mb3ItRk1PUEEtd2lkZS5wYXRjaCBiL2RlYmlhbi9w YXRjaGVzL2V4dHJhLzAwMjYtdGFyZ2V0LWFybS1IYW5kbGUtZGVub3JtYWxzLWNvcnJlY3RseS1m b3ItRk1PUEEtd2lkZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i MWE1NWU4Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyNi10YXJn ZXQtYXJtLUhhbmRsZS1kZW5vcm1hbHMtY29ycmVjdGx5LWZvci1GTU9QQS13aWRlLnBhdGNoCkBA IC0wLDAgKzEsMTY0IEBACitGcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZXRlciBNYXlkZWxsIDxwZXRl ci5tYXlkZWxsQGxpbmFyby5vcmc+CitEYXRlOiBUaHUsIDEgQXVnIDIwMjQgMTA6MTU6MDMgKzAx MDAKK1N1YmplY3Q6IFtQQVRDSF0gdGFyZ2V0L2FybTogSGFuZGxlIGRlbm9ybWFscyBjb3JyZWN0 bHkgZm9yIEZNT1BBICh3aWRlbmluZykKKworVGhlIEZNT1BBICh3aWRlbmluZykgU01FIGluc3Ry dWN0aW9uIHRha2VzIHBhaXJzIG9mIGhhbGYtcHJlY2lzaW9uCitmbG9hdGluZyBwb2ludCB2YWx1 ZXMsIHdpZGVucyB0aGVtIHRvIHNpbmdsZS1wcmVjaXNpb24sIGRvZXMgYQordHdvLXdheSBkb3Qg cHJvZHVjdCBhbmQgYWNjdW11bGF0ZXMgdGhlIHJlc3VsdHMgaW50byBhCitzaW5nbGUtcHJlY2lz aW9uIGRlc3RpbmF0aW9uLiAgV2UgZG9uJ3QgcXVpdGUgY29ycmVjdGx5IGhhbmRsZSB0aGUKK0ZQ Q1IgYml0cyBGWiBhbmQgRloxNiB3aGljaCBjb250cm9sIGZsdXNoaW5nIG9mIGRlbm9ybWFsIGlu cHV0cyBhbmQKK291dHB1dHMuICBUaGlzIGlzIGJlY2F1c2UgYXQgdGhlIG1vbWVudCB3ZSBwYXNz IGEgc2luZ2xlIGZsb2F0X3N0YXR1cwordmFsdWUgdG8gdGhlIGhlbHBlciBmdW5jdGlvbiwgd2hp Y2ggdGhlbiB1c2VzIHRoYXQgY29uZmlndXJhdGlvbiBmb3IKK2FsbCB0aGUgZnAgb3BlcmF0aW9u cyBpdCBkb2VzLiAgSG93ZXZlciwgYmVjYXVzZSB0aGUgaW5wdXRzIHRvIHRoaXMKK29wZXJhdGlv biBhcmUgZmxvYXQxNiBhbmQgdGhlIG91dHB1dHMgYXJlIGZsb2F0MzIgd2UgbmVlZCB0byB1c2Ug dGhlCitmcF9zdGF0dXNfZjE2IGZvciB0aGUgZmxvYXQxNiBpbnB1dCB3aWRlbmluZyBidXQgdGhl IG5vcm1hbCBmcF9zdGF0dXMKK2ZvciBldmVyeXRoaW5nIGVsc2UuICBPdGhlcndpc2Ugd2Ugd2ls bCBhcHBseSB0aGUgZmx1c2hpbmcgY29udHJvbAorRlBDUi5GWjE2IHRvIHRoZSAzMi1iaXQgb3V0 cHV0IHJhdGhlciB0aGFuIHRoZSBGUENSLkZaIGNvbnRyb2wsIGFuZAoraW5jb3JyZWN0bHkgZmx1 c2ggYSBkZW5vcm1hbCBvdXRwdXQgdG8gemVybyB3aGVuIHdlIHNob3VsZCBub3QgKG9yCit2aWNl LXZlcnNhKS4KKworKEluIGNvbW1pdCAyMDdkMzBiNWZkYjViIHdlIHRyaWVkIHRvIGZpeCB0aGUg RlogaGFuZGxpbmcgYnV0CitkaWRuJ3QgZ2V0IGl0IHJpZ2h0LCBzd2l0Y2hpbmcgZnJvbSAidXNl IEZQQ1IuRlogZm9yIGV2ZXJ5dGhpbmciIHRvCisidXNlIEZQQ1IuRloxNiBmb3IgZXZlcnl0aGlu ZyIuKQorCitQYXNzIHRoZSBDUFUgZW52IHRvIHRoZSBzbWVfZm1vcGFfaCBoZWxwZXIgaW5zdGVh ZCBvZiBhbiBmcF9zdGF0dXMKK3BvaW50ZXIsIGFuZCBoYXZlIHRoZSBoZWxwZXIgcGFzcyBhbiBl eHRyYSBmcF9zdGF0dXMgaW50byB0aGUKK2YxNl9kb3RhZGQoKSBmdW5jdGlvbiBzbyB0aGF0IHdl IGNhbiB1c2UgdGhlIHJpZ2h0IHN0YXR1cyBmb3IgdGhlCityaWdodCBwYXJ0cyBvZiB0aGlzIG9w ZXJhdGlvbi4KKworQ2M6IHFlbXUtc3RhYmxlQG5vbmdudS5vcmcKK0ZpeGVzOiAyMDdkMzBiNWZk YjUgKCJ0YXJnZXQvYXJtOiBVc2UgRlBTVF9GMTYgZm9yIFNNRSBGTU9QQSAod2lkZW5pbmcpIikK K1Jlc29sdmVzOiBodHRwczovL2dpdGxhYi5jb20vcWVtdS1wcm9qZWN0L3FlbXUvLS9pc3N1ZXMv MjM3MworU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWF5ZGVsbCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8u b3JnPgorUmV2aWV3ZWQtYnk6IFJpY2hhcmQgSGVuZGVyc29uIDxyaWNoYXJkLmhlbmRlcnNvbkBs aW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNTVmOWY0ZWUwMThjNWNjZWE4 MWQ4YzhjNTg2NzU2ZDc3MTFhZTQ2ZikKK1NpZ25lZC1vZmYtYnk6IEZpb25hIEVibmVyIDxmLmVi bmVyQHByb3htb3guY29tPgorLS0tCisgdGFyZ2V0L2FybS90Y2cvaGVscGVyLXNtZS5oICAgIHwg IDIgKy0KKyB0YXJnZXQvYXJtL3RjZy9zbWVfaGVscGVyLmMgICAgfCAzOSArKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tCisgdGFyZ2V0L2FybS90Y2cvdHJhbnNsYXRlLXNtZS5jIHwg MjUgKysrKysrKysrKysrKysrKysrKystLQorIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9u cygrKSwgMTUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90YXJnZXQvYXJtL3RjZy9oZWxw ZXItc21lLmggYi90YXJnZXQvYXJtL3RjZy9oZWxwZXItc21lLmgKK2luZGV4IDI3ZWVmNDlhMTEu LmQyMmJmOWQyMWIgMTAwNjQ0CistLS0gYS90YXJnZXQvYXJtL3RjZy9oZWxwZXItc21lLmgKKysr KyBiL3RhcmdldC9hcm0vdGNnL2hlbHBlci1zbWUuaAorQEAgLTEyMSw3ICsxMjEsNyBAQCBERUZf SEVMUEVSX0ZMQUdTXzUoc21lX2FkZGhhX2QsIFRDR19DQUxMX05PX1JXRywgdm9pZCwgcHRyLCBw dHIsIHB0ciwgcHRyLCBpMzIpCisgREVGX0hFTFBFUl9GTEFHU181KHNtZV9hZGR2YV9kLCBUQ0df Q0FMTF9OT19SV0csIHZvaWQsIHB0ciwgcHRyLCBwdHIsIHB0ciwgaTMyKQorIAorIERFRl9IRUxQ RVJfRkxBR1NfNyhzbWVfZm1vcGFfaCwgVENHX0NBTExfTk9fUldHLAorLSAgICAgICAgICAgICAg ICAgICB2b2lkLCBwdHIsIHB0ciwgcHRyLCBwdHIsIHB0ciwgcHRyLCBpMzIpCisrICAgICAgICAg ICAgICAgICAgIHZvaWQsIHB0ciwgcHRyLCBwdHIsIHB0ciwgcHRyLCBlbnYsIGkzMikKKyBERUZf SEVMUEVSX0ZMQUdTXzcoc21lX2Ztb3BhX3MsIFRDR19DQUxMX05PX1JXRywKKyAgICAgICAgICAg ICAgICAgICAgdm9pZCwgcHRyLCBwdHIsIHB0ciwgcHRyLCBwdHIsIHB0ciwgaTMyKQorIERFRl9I RUxQRVJfRkxBR1NfNyhzbWVfZm1vcGFfZCwgVENHX0NBTExfTk9fUldHLAorZGlmZiAtLWdpdCBh L3RhcmdldC9hcm0vdGNnL3NtZV9oZWxwZXIuYyBiL3RhcmdldC9hcm0vdGNnL3NtZV9oZWxwZXIu YworaW5kZXggZjkwMDFmNTIxMy4uMzkwNmJiNTFjMCAxMDA2NDQKKy0tLSBhL3RhcmdldC9hcm0v dGNnL3NtZV9oZWxwZXIuYworKysrIGIvdGFyZ2V0L2FybS90Y2cvc21lX2hlbHBlci5jCitAQCAt OTc2LDEyICs5NzYsMjMgQEAgc3RhdGljIGlubGluZSB1aW50MzJfdCBmMTZtb3BfYWRqX3BhaXIo dWludDMyX3QgcGFpciwgdWludDMyX3QgcGcsIHVpbnQzMl90IG5lZykKKyB9CisgCisgc3RhdGlj IGZsb2F0MzIgZjE2X2RvdGFkZChmbG9hdDMyIHN1bSwgdWludDMyX3QgZTEsIHVpbnQzMl90IGUy LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXRfc3RhdHVzICpzX3N0ZCwgZmxvYXRf c3RhdHVzICpzX29kZCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0X3N0YXR1cyAq c19mMTYsIGZsb2F0X3N0YXR1cyAqc19zdGQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBm bG9hdF9zdGF0dXMgKnNfb2RkKQorIHsKKy0gICAgZmxvYXQ2NCBlMXIgPSBmbG9hdDE2X3RvX2Zs b2F0NjQoZTEgJiAweGZmZmYsIHRydWUsIHNfc3RkKTsKKy0gICAgZmxvYXQ2NCBlMWMgPSBmbG9h dDE2X3RvX2Zsb2F0NjQoZTEgPj4gMTYsIHRydWUsIHNfc3RkKTsKKy0gICAgZmxvYXQ2NCBlMnIg PSBmbG9hdDE2X3RvX2Zsb2F0NjQoZTIgJiAweGZmZmYsIHRydWUsIHNfc3RkKTsKKy0gICAgZmxv YXQ2NCBlMmMgPSBmbG9hdDE2X3RvX2Zsb2F0NjQoZTIgPj4gMTYsIHRydWUsIHNfc3RkKTsKKysg ICAgLyoKKysgICAgICogV2UgbmVlZCB0aHJlZSBkaWZmZXJlbnQgZmxvYXRfc3RhdHVzIGZvciBk aWZmZXJlbnQgcGFydHMgb2YgdGhpcworKyAgICAgKiBvcGVyYXRpb246CisrICAgICAqICAtIHRo ZSBpbnB1dCBjb252ZXJzaW9uIG9mIHRoZSBmbG9hdDE2IHZhbHVlcyBtdXN0IHVzZSB0aGUKKysg ICAgICogICAgZjE2LXNwZWNpZmljIGZsb2F0X3N0YXR1cywgc28gdGhhdCB0aGUgRlBDUi5GWjE2 IGNvbnRyb2wgaXMgYXBwbGllZAorKyAgICAgKiAgLSBvcGVyYXRpb25zIG9uIGZsb2F0MzIgaW5j bHVkaW5nIHRoZSBmaW5hbCBhY2N1bXVsYXRpb24gbXVzdCB1c2UKKysgICAgICogICAgdGhlIG5v cm1hbCBmbG9hdF9zdGF0dXMsIHNvIHRoYXQgRlBDUi5GWiBpcyBhcHBsaWVkCisrICAgICAqICAt IHdlIGhhdmUgcHJlLXNldC11cCBjb3B5IG9mIHNfc3RkIHdoaWNoIGlzIHNldCB0byByb3VuZC10 by1vZGQsCisrICAgICAqICAgIGZvciB0aGUgbXVsdGlwbHkgKHNlZSBiZWxvdykKKysgICAgICov CisrICAgIGZsb2F0NjQgZTFyID0gZmxvYXQxNl90b19mbG9hdDY0KGUxICYgMHhmZmZmLCB0cnVl LCBzX2YxNik7CisrICAgIGZsb2F0NjQgZTFjID0gZmxvYXQxNl90b19mbG9hdDY0KGUxID4+IDE2 LCB0cnVlLCBzX2YxNik7CisrICAgIGZsb2F0NjQgZTJyID0gZmxvYXQxNl90b19mbG9hdDY0KGUy ICYgMHhmZmZmLCB0cnVlLCBzX2YxNik7CisrICAgIGZsb2F0NjQgZTJjID0gZmxvYXQxNl90b19m bG9hdDY0KGUyID4+IDE2LCB0cnVlLCBzX2YxNik7CisgICAgIGZsb2F0NjQgdDY0OworICAgICBm bG9hdDMyIHQzMjsKKyAKK0BAIC0xMDAzLDIwICsxMDE0LDIzIEBAIHN0YXRpYyBmbG9hdDMyIGYx Nl9kb3RhZGQoZmxvYXQzMiBzdW0sIHVpbnQzMl90IGUxLCB1aW50MzJfdCBlMiwKKyB9CisgCisg dm9pZCBIRUxQRVIoc21lX2Ztb3BhX2gpKHZvaWQgKnZ6YSwgdm9pZCAqdnpuLCB2b2lkICp2em0s IHZvaWQgKnZwbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqdnBtLCB2b2lkICp2 c3QsIHVpbnQzMl90IGRlc2MpCisrICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnZwbSwg Q1BVQVJNU3RhdGUgKmVudiwgdWludDMyX3QgZGVzYykKKyB7CisgICAgIGludHB0cl90IHJvdywg Y29sLCBvcHJzeiA9IHNpbWRfbWF4c3ooZGVzYyk7CisgICAgIHVpbnQzMl90IG5lZyA9IHNpbWRf ZGF0YShkZXNjKSAqIDB4ODAwMDgwMDB1OworICAgICB1aW50MTZfdCAqcG4gPSB2cG4sICpwbSA9 IHZwbTsKKy0gICAgZmxvYXRfc3RhdHVzIGZwc3Rfb2RkLCBmcHN0X3N0ZDsKKysgICAgZmxvYXRf c3RhdHVzIGZwc3Rfb2RkLCBmcHN0X3N0ZCwgZnBzdF9mMTY7CisgCisgICAgIC8qCistICAgICAq IE1ha2UgYSBjb3B5IG9mIGZsb2F0X3N0YXR1cyBiZWNhdXNlIHRoaXMgb3BlcmF0aW9uIGRvZXMg bm90CistICAgICAqIHVwZGF0ZSB0aGUgY3VtdWxhdGl2ZSBmcCBleGNlcHRpb24gc3RhdHVzLiAg SXQgYWxzbyBwcm9kdWNlcworLSAgICAgKiBkZWZhdWx0IG5hbnMuICBNYWtlIGEgc2Vjb25kIGNv cHkgd2l0aCByb3VuZC10by1vZGQgLS0gc2VlIGFib3ZlLgorKyAgICAgKiBNYWtlIGNvcGllcyBv ZiBmcF9zdGF0dXMgYW5kIGZwX3N0YXR1c19mMTYsIGJlY2F1c2UgdGhpcyBvcGVyYXRpb24KKysg ICAgICogZG9lcyBub3QgdXBkYXRlIHRoZSBjdW11bGF0aXZlIGZwIGV4Y2VwdGlvbiBzdGF0dXMu ICBJdCBhbHNvCisrICAgICAqIHByb2R1Y2VzIGRlZmF1bHQgTmFOcy4gV2UgYWxzbyBuZWVkIGEg c2Vjb25kIGNvcHkgb2YgZnBfc3RhdHVzIHdpdGgKKysgICAgICogcm91bmQtdG8tb2RkIC0tIHNl ZSBhYm92ZS4KKyAgICAgICovCistICAgIGZwc3Rfc3RkID0gKihmbG9hdF9zdGF0dXMgKil2c3Q7 CisrICAgIGZwc3RfZjE2ID0gZW52LT52ZnAuZnBfc3RhdHVzX2YxNjsKKysgICAgZnBzdF9zdGQg PSBlbnYtPnZmcC5mcF9zdGF0dXM7CisgICAgIHNldF9kZWZhdWx0X25hbl9tb2RlKHRydWUsICZm cHN0X3N0ZCk7CisrICAgIHNldF9kZWZhdWx0X25hbl9tb2RlKHRydWUsICZmcHN0X2YxNik7Cisg ICAgIGZwc3Rfb2RkID0gZnBzdF9zdGQ7CisgICAgIHNldF9mbG9hdF9yb3VuZGluZ19tb2RlKGZs b2F0X3JvdW5kX3RvX29kZCwgJmZwc3Rfb2RkKTsKKyAKK0BAIC0xMDM2LDcgKzEwNTAsOCBAQCB2 b2lkIEhFTFBFUihzbWVfZm1vcGFfaCkodm9pZCAqdnphLCB2b2lkICp2em4sIHZvaWQgKnZ6bSwg dm9pZCAqdnBuLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG0gPSAqKHVpbnQz Ml90ICopKHZ6bSArIEgxXzQoY29sKSk7CisgCisgICAgICAgICAgICAgICAgICAgICAgICAgbSA9 IGYxNm1vcF9hZGpfcGFpcihtLCBwY29sLCAwKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAq YSA9IGYxNl9kb3RhZGQoKmEsIG4sIG0sICZmcHN0X3N0ZCwgJmZwc3Rfb2RkKTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAqYSA9IGYxNl9kb3RhZGQoKmEsIG4sIG0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmcHN0X2YxNiwgJmZwc3Rfc3RkLCAmZnBzdF9v ZGQpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgY29sICs9 IDQ7CisgICAgICAgICAgICAgICAgICAgICBwY29sID4+PSA0OworZGlmZiAtLWdpdCBhL3Rhcmdl dC9hcm0vdGNnL3RyYW5zbGF0ZS1zbWUuYyBiL3RhcmdldC9hcm0vdGNnL3RyYW5zbGF0ZS1zbWUu YworaW5kZXggYTUwYTQxOWFmMi4uYWU0MmRkZWY3YiAxMDA2NDQKKy0tLSBhL3RhcmdldC9hcm0v dGNnL3RyYW5zbGF0ZS1zbWUuYworKysrIGIvdGFyZ2V0L2FybS90Y2cvdHJhbnNsYXRlLXNtZS5j CitAQCAtMzM0LDggKzMzNCwyOSBAQCBzdGF0aWMgYm9vbCBkb19vdXRwcm9kX2Zwc3QoRGlzYXND b250ZXh0ICpzLCBhcmdfb3AgKmEsIE1lbU9wIGVzeiwKKyAgICAgcmV0dXJuIHRydWU7CisgfQor IAorLVRSQU5TX0ZFQVQoRk1PUEFfaCwgYWE2NF9zbWUsIGRvX291dHByb2RfZnBzdCwgYSwKKy0g ICAgICAgICAgIE1PXzMyLCBGUFNUX0ZQQ1JfRjE2LCBnZW5faGVscGVyX3NtZV9mbW9wYV9oKQor K3N0YXRpYyBib29sIGRvX291dHByb2RfZW52KERpc2FzQ29udGV4dCAqcywgYXJnX29wICphLCBN ZW1PcCBlc3osCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX2hlbHBlcl9ndmVjXzVf cHRyICpmbikKKyt7CisrICAgIGludCBzdmwgPSBzdHJlYW1pbmdfdmVjX3JlZ19zaXplKHMpOwor KyAgICB1aW50MzJfdCBkZXNjID0gc2ltZF9kZXNjKHN2bCwgc3ZsLCBhLT5zdWIpOworKyAgICBU Q0d2X3B0ciB6YSwgem4sIHptLCBwbiwgcG07CisrCisrICAgIGlmICghc21lX3NtemFfZW5hYmxl ZF9jaGVjayhzKSkgeworKyAgICAgICAgcmV0dXJuIHRydWU7CisrICAgIH0KKysKKysgICAgemEg PSBnZXRfdGlsZShzLCBlc3osIGEtPnphZCk7CisrICAgIHpuID0gdmVjX2Z1bGxfcmVnX3B0cihz LCBhLT56bik7CisrICAgIHptID0gdmVjX2Z1bGxfcmVnX3B0cihzLCBhLT56bSk7CisrICAgIHBu ID0gcHJlZF9mdWxsX3JlZ19wdHIocywgYS0+cG4pOworKyAgICBwbSA9IHByZWRfZnVsbF9yZWdf cHRyKHMsIGEtPnBtKTsKKysKKysgICAgZm4oemEsIHpuLCB6bSwgcG4sIHBtLCB0Y2dfZW52LCB0 Y2dfY29uc3RhbnRfaTMyKGRlc2MpKTsKKysgICAgcmV0dXJuIHRydWU7CisrfQorKworK1RSQU5T X0ZFQVQoRk1PUEFfaCwgYWE2NF9zbWUsIGRvX291dHByb2RfZW52LCBhLAorKyAgICAgICAgICAg TU9fMzIsIGdlbl9oZWxwZXJfc21lX2Ztb3BhX2gpCisgVFJBTlNfRkVBVChGTU9QQV9zLCBhYTY0 X3NtZSwgZG9fb3V0cHJvZF9mcHN0LCBhLAorICAgICAgICAgICAgTU9fMzIsIEZQU1RfRlBDUiwg Z2VuX2hlbHBlcl9zbWVfZm1vcGFfcykKKyBUUkFOU19GRUFUKEZNT1BBX2QsIGFhNjRfc21lX2Y2 NGY2NCwgZG9fb3V0cHJvZF9mcHN0LCBhLApkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvZXh0 cmEvMDAyNy1pbnRlbF9pb21tdS1maXgtRlJDRC1jb25zdHJ1Y3Rpb24tbWFjcm8ucGF0Y2ggYi9k ZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDI3LWludGVsX2lvbW11LWZpeC1GUkNELWNvbnN0cnVjdGlv bi1tYWNyby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTBjZmY3 Ci0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyNy1pbnRlbF9pb21t dS1maXgtRlJDRC1jb25zdHJ1Y3Rpb24tbWFjcm8ucGF0Y2gKQEAgLTAsMCArMSwzOSBAQAorRnJv bSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0NsPUMzPUE5bWVudD0yME1hdGhpZXUtLURyaWY/ PQorIDxjbGVtZW50Lm1hdGhpZXUtLWRyaWZAZXZpZGVuLmNvbT4KK0RhdGU6IFR1ZSwgOSBKdWwg MjAyNCAxNDoyNjowOCArMDAwMAorU3ViamVjdDogW1BBVENIXSBpbnRlbF9pb21tdTogZml4IEZS Q0QgY29uc3RydWN0aW9uIG1hY3JvCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CisKK1RoZSBjb25zdGFudCBtdXN0IGJlIHVuc2lnbmVkLCBvdGhlcndpc2UgdGhlIHR3bydzIGNv bXBsZW1lbnQKK292ZXJyaWRlcyB0aGUgb3RoZXIgZmllbGRzIHdoZW4gYSBQQVNJRCBpcyBwcmVz ZW50LgorCitGaXhlczogMWIyYjEyMzc2YzhhICgiaW50ZWwtaW9tbXU6IFBBU0lEIHN1cHBvcnQi KQorU2lnbmVkLW9mZi1ieTogQ2zDqW1lbnQgTWF0aGlldS0tRHJpZiA8Y2xlbWVudC5tYXRoaWV1 LS1kcmlmQGV2aWRlbi5jb20+CitSZXZpZXdlZC1ieTogWWkgTGl1IDx5aS5sLmxpdUBpbnRlbC5j b20+CitSZXZpZXdlZC1ieTogWmhlbnpob25nIER1YW4gPHpoZW56aG9uZy5kdWFuQGludGVsLmNv bT4KK1Jldmlld2VkLWJ5OiBNaW53b28gSW0gPG1pbndvby5pbUBzYW1zdW5nLmNvbT4KK01lc3Nh Z2UtSWQ6IDwyMDI0MDcwOTE0MjU1Ny4zMTcyNzEtMi1jbGVtZW50Lm1hdGhpZXUtLWRyaWZAZXZp ZGVuLmNvbT4KK1Jldmlld2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29t PgorU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KKyhj aGVycnkgcGlja2VkIGZyb20gY29tbWl0IGEzYzhkN2UzODU1MGMzZDVhNDZlNmZhOTRmZmFkZmE2 MjVhNDg2MWQpCitTaWduZWQtb2ZmLWJ5OiBGaW9uYSBFYm5lciA8Zi5lYm5lckBwcm94bW94LmNv bT4KKy0tLQorIGh3L2kzODYvaW50ZWxfaW9tbXVfaW50ZXJuYWwuaCB8IDIgKy0KKyAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2h3 L2kzODYvaW50ZWxfaW9tbXVfaW50ZXJuYWwuaCBiL2h3L2kzODYvaW50ZWxfaW9tbXVfaW50ZXJu YWwuaAoraW5kZXggZjhjZjk5YmRkZi4uY2JjNDAzMDAzMSAxMDA2NDQKKy0tLSBhL2h3L2kzODYv aW50ZWxfaW9tbXVfaW50ZXJuYWwuaAorKysrIGIvaHcvaTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5h bC5oCitAQCAtMjY3LDcgKzI2Nyw3IEBACisgLyogRm9yIHRoZSBsb3cgNjQtYml0IG9mIDEyOC1i aXQgKi8KKyAjZGVmaW5lIFZURF9GUkNEX0ZJKHZhbCkgICAgICAgICgodmFsKSAmIH4weGZmZlVM TCkKKyAjZGVmaW5lIFZURF9GUkNEX1BWKHZhbCkgICAgICAgICgoKHZhbCkgJiAweGZmZmZVTEwp IDw8IDQwKQorLSNkZWZpbmUgVlREX0ZSQ0RfUFAodmFsKSAgICAgICAgKCgodmFsKSAmIDB4MSkg PDwgMzEpCisrI2RlZmluZSBWVERfRlJDRF9QUCh2YWwpICAgICAgICAoKCh2YWwpICYgMHgxVUxM KSA8PCAzMSkKKyAjZGVmaW5lIFZURF9GUkNEX0lSX0lEWCh2YWwpICAgICgoKHZhbCkgJiAweGZm ZmZVTEwpIDw8IDQ4KQorIAorIC8qIERNQSBSZW1hcHBpbmcgRmF1bHQgQ29uZGl0aW9ucyAqLwpk aWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyOC10YXJnZXQtaTM4Ni1Eby1ub3Qt YXBwbHktUkVYLXRvLU1NWC1vcGVyYW5kcy5wYXRjaCBiL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAw MjgtdGFyZ2V0LWkzODYtRG8tbm90LWFwcGx5LVJFWC10by1NTVgtb3BlcmFuZHMucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRjZTkzYgotLS0gL2Rldi9udWxsCisr KyBiL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMjgtdGFyZ2V0LWkzODYtRG8tbm90LWFwcGx5LVJF WC10by1NTVgtb3BlcmFuZHMucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAorRnJvbSAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogUmljaGFyZCBIZW5kZXJzb24gPHJpY2hhcmQuaGVuZGVyc29uQGxpbmFyby5vcmc+CitE YXRlOiBNb24sIDEyIEF1ZyAyMDI0IDEyOjU4OjQyICsxMDAwCitTdWJqZWN0OiBbUEFUQ0hdIHRh cmdldC9pMzg2OiBEbyBub3QgYXBwbHkgUkVYIHRvIE1NWCBvcGVyYW5kcworCitDYzogcWVtdS1z dGFibGVAbm9uZ251Lm9yZworRml4ZXM6IGIzZTIyYjIzMThhICgidGFyZ2V0L2kzODY6IGFkZCBj b3JlIG9mIG5ldyBpMzg2IGRlY29kZXIiKQorUmVzb2x2ZXM6IGh0dHBzOi8vZ2l0bGFiLmNvbS9x ZW11LXByb2plY3QvcWVtdS8tL2lzc3Vlcy8yNDk1CitTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIEhl bmRlcnNvbiA8cmljaGFyZC5oZW5kZXJzb25AbGluYXJvLm9yZz4KK0xpbms6IGh0dHBzOi8vbG9y ZS5rZXJuZWwub3JnL3IvMjAyNDA4MTIwMjU4NDQuNTg5NTYtMi1yaWNoYXJkLmhlbmRlcnNvbkBs aW5hcm8ub3JnCitTaWduZWQtb2ZmLWJ5OiBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQu Y29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNDE2ZjJiMTZjMDJjNjE4YzBmMjMzMzcy ZWJmZTM0M2Y5ZWU2NjdkNCkKK1NpZ25lZC1vZmYtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHBy b3htb3guY29tPgorLS0tCisgdGFyZ2V0L2kzODYvdGNnL2RlY29kZS1uZXcuYy5pbmMgfCA1ICsr KystCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitk aWZmIC0tZ2l0IGEvdGFyZ2V0L2kzODYvdGNnL2RlY29kZS1uZXcuYy5pbmMgYi90YXJnZXQvaTM4 Ni90Y2cvZGVjb2RlLW5ldy5jLmluYworaW5kZXggNDIwOWQ1OWNhOC4uMDliOGQyMzE0YSAxMDA2 NDQKKy0tLSBhL3RhcmdldC9pMzg2L3RjZy9kZWNvZGUtbmV3LmMuaW5jCisrKysgYi90YXJnZXQv aTM4Ni90Y2cvZGVjb2RlLW5ldy5jLmluYworQEAgLTEyNzEsNyArMTI3MSwxMCBAQCBzdGF0aWMg Ym9vbCBkZWNvZGVfb3AoRGlzYXNDb250ZXh0ICpzLCBDUFVYODZTdGF0ZSAqZW52LCBYODZEZWNv ZGVkSW5zbiAqZGVjb2RlLAorICAgICAgICAgICAgIG9wLT51bml0ID0gWDg2X09QX1NTRTsKKyAg ICAgICAgIH0KKyAgICAgZ2V0X3JlZzoKKy0gICAgICAgIG9wLT5uID0gKChnZXRfbW9kcm0ocywg ZW52KSA+PiAzKSAmIDcpIHwgUkVYX1Iocyk7CisrICAgICAgICBvcC0+biA9ICgoZ2V0X21vZHJt KHMsIGVudikgPj4gMykgJiA3KTsKKysgICAgICAgIGlmIChvcC0+dW5pdCAhPSBYODZfT1BfTU1Y KSB7CisrICAgICAgICAgICAgb3AtPm4gfD0gUkVYX1Iocyk7CisrICAgICAgICB9CisgICAgICAg ICBicmVhazsKKyAKKyAgICAgY2FzZSBYODZfVFlQRV9FOiAgLyogQUxVIG1vZHJtIG9wZXJhbmQg Ki8KZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMjktbW9kdWxlLVByZXZlbnQt Y3Jhc2gtYnktcmVzZXR0aW5nLWxvY2FsX2Vyci1pbi1tb2R1bC5wYXRjaCBiL2RlYmlhbi9wYXRj aGVzL2V4dHJhLzAwMjktbW9kdWxlLVByZXZlbnQtY3Jhc2gtYnktcmVzZXR0aW5nLWxvY2FsX2Vy ci1pbi1tb2R1bC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2E4 NjEyCi0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAyOS1tb2R1bGUt UHJldmVudC1jcmFzaC1ieS1yZXNldHRpbmctbG9jYWxfZXJyLWluLW1vZHVsLnBhdGNoCkBAIC0w LDAgKzEsNDIgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsZXhhbmRlciBJdmFub3YgPGFsZXhh bmRlci5pdmFub3ZAdmlydHVvenpvLmNvbT4KK0RhdGU6IEZyaSwgOSBBdWcgMjAyNCAxNDoxMzo0 MCArMDIwMAorU3ViamVjdDogW1BBVENIXSBtb2R1bGU6IFByZXZlbnQgY3Jhc2ggYnkgcmVzZXR0 aW5nIGxvY2FsX2VyciBpbgorIG1vZHVsZV9sb2FkX3FvbV9hbGwoKQorCitTZXQgbG9jYWxfZXJy IHRvIE5VTEwgYWZ0ZXIgaXQgaGFzIGJlZW4gZnJlZWQgaW4gZXJyb3JfcmVwb3J0X2VycigpLiBU aGlzCithdm9pZHMgdHJpZ2dlcmluZyBhc3NlcnQoKmVycnAgPT0gTlVMTCkgZmFpbHVyZSBpbiBl cnJvcl9zZXR2KCkgd2hlbgorbG9jYWxfZXJyIGlzIHJldXNlZCBpbiB0aGUgbG9vcC4KKworU2ln bmVkLW9mZi1ieTogQWxleGFuZGVyIEl2YW5vdiA8YWxleGFuZGVyLml2YW5vdkB2aXJ0dW96em8u Y29tPgorUmV2aWV3ZWQtYnk6IENsYXVkaW8gRm9udGFuYSA8Y2ZvbnRhbmFAc3VzZS5kZT4KK1Jl dmlld2VkLWJ5OiBEZW5pcyBWLiBMdW5ldiA8ZGVuQG9wZW52ei5vcmc+CitMaW5rOiBodHRwczov L2xvcmUua2VybmVsLm9yZy9yLzIwMjQwODA5MTIxMzQwLjk5MjA0OS0yLWFsZXhhbmRlci5pdmFu b3ZAdmlydHVvenpvLmNvbQorW0RvIHRoZSBzYW1lIGJ5IG1vdmluZyB0aGUgZGVjbGFyYXRpb24g aW5zdGVhZC4gLSBQYW9sb10KK0NjOiBxZW11LXN0YWJsZUBub25nbnUub3JnCitTaWduZWQtb2Zm LWJ5OiBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgOTQwZDgwMmIyNGU2MzY1MGUwZWFjYWQzNzE0ZTJjZTE3MWNiYTE3YykKK1Np Z25lZC1vZmYtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHByb3htb3guY29tPgorLS0tCisgdXRp bC9tb2R1bGUuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3V0aWwvbW9kdWxlLmMgYi91dGlsL21vZHVsZS5jCitp bmRleCAzMmUyNjMxNjNjLi4zZWIwZjA2ZGYxIDEwMDY0NAorLS0tIGEvdXRpbC9tb2R1bGUuYwor KysrIGIvdXRpbC9tb2R1bGUuYworQEAgLTM1NCwxMyArMzU0LDEzIEBAIGludCBtb2R1bGVfbG9h ZF9xb20oY29uc3QgY2hhciAqdHlwZSwgRXJyb3IgKiplcnJwKQorIHZvaWQgbW9kdWxlX2xvYWRf cW9tX2FsbCh2b2lkKQorIHsKKyAgICAgY29uc3QgUWVtdU1vZGluZm8gKm1vZGluZm87CistICAg IEVycm9yICpsb2NhbF9lcnIgPSBOVUxMOworIAorICAgICBpZiAobW9kdWxlX2xvYWRlZF9xb21f YWxsKSB7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAKKyAgICAgZm9yIChtb2RpbmZvID0g bW9kdWxlX2luZm87IG1vZGluZm8tPm5hbWUgIT0gTlVMTDsgbW9kaW5mbysrKSB7CisrICAgICAg ICBFcnJvciAqbG9jYWxfZXJyID0gTlVMTDsKKyAgICAgICAgIGlmICghbW9kaW5mby0+b2Jqcykg eworICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvZGViaWFu L3BhdGNoZXMvZXh0cmEvMDAzMC1uYmQtc2VydmVyLVBsdW1iLWluLW5ldy1hcmdzLXRvLW5iZF9j bGllbnRfYWRkLnBhdGNoIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzMC1uYmQtc2VydmVyLVBs dW1iLWluLW5ldy1hcmdzLXRvLW5iZF9jbGllbnRfYWRkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjU3ZWI0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0 Y2hlcy9leHRyYS8wMDMwLW5iZC1zZXJ2ZXItUGx1bWItaW4tbmV3LWFyZ3MtdG8tbmJkX2NsaWVu dF9hZGQucGF0Y2gKQEAgLTAsMCArMSwxNjQgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVyaWMg Qmxha2UgPGVibGFrZUByZWRoYXQuY29tPgorRGF0ZTogV2VkLCA3IEF1ZyAyMDI0IDA4OjUwOjAx IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIG5iZC9zZXJ2ZXI6IFBsdW1iIGluIG5ldyBhcmdzIHRv IG5iZF9jbGllbnRfYWRkKCkKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKwor VXBjb21pbmcgcGF0Y2hlcyB0byBmaXggYSBDVkUgbmVlZCB0byB0cmFjayBhbiBvcGFxdWUgcG9p bnRlciBwYXNzZWQKK2luIGJ5IHRoZSBvd25lciBvZiBhIGNsaWVudCBvYmplY3QsIGFzIHdlbGwg YXMgcmVxdWVzdCBmb3IgYSB0aW1lCitsaW1pdCBvbiBob3cgZmFzdCBuZWdvdGlhdGlvbiBtdXN0 IGNvbXBsZXRlLiAgUHJlcGFyZSBmb3IgdGhhdCBieQorY2hhbmdpbmcgdGhlIHNpZ25hdHVyZSBv ZiBuYmRfY2xpZW50X25ldygpIGFuZCBhZGRpbmcgYW4gYWNjZXNzb3IgdG8KK2dldCBhdCB0aGUg b3BhcXVlIHBvaW50ZXIsIGFsdGhvdWdoIGZvciBub3cgdGhlIHR3byBzZXJ2ZXJzCisocWVtdS1u YmQuYyBhbmQgYmxvY2tkZXYtbmJkLmMpIGRvIG5vdCBjaGFuZ2UgYmVoYXZpb3IgZXZlbiB0aG91 Z2gKK3RoZXkgcGFzcyBpbiBhIG5ldyBkZWZhdWx0IHRpbWVvdXQgdmFsdWUuCisKK1N1Z2dlc3Rl ZC1ieTogVmxhZGltaXIgU2VtZW50c292LU9naWV2c2tpeSA8dnNlbWVudHNvdkB5YW5kZXgtdGVh bS5ydT4KK1NpZ25lZC1vZmYtYnk6IEVyaWMgQmxha2UgPGVibGFrZUByZWRoYXQuY29tPgorTWVz c2FnZS1JRDogPDIwMjQwODA3MTc0OTQzLjc3MTYyNC0xMS1lYmxha2VAcmVkaGF0LmNvbT4KK1Jl dmlld2VkLWJ5OiBEYW5pZWwgUC4gQmVycmFuZ8OpIDxiZXJyYW5nZUByZWRoYXQuY29tPgorW2Vi bGFrZTogcy9MSU1JVC9NQVhfU0VDUy8gYXMgc3VnZ2VzdGVkIGJ5IERhbl0KK1NpZ25lZC1vZmYt Ynk6IEVyaWMgQmxha2UgPGVibGFrZUByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBj b21taXQgZmIxYzJhYWE5ODFlMGEyZmE2MzYyYzk5ODVmMTI5NmI3NGYwNTVhYykKK1NpZ25lZC1v ZmYtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHByb3htb3guY29tPgorLS0tCisgYmxvY2tkZXYt bmJkLmMgICAgICB8ICA2ICsrKystLQorIGluY2x1ZGUvYmxvY2svbmJkLmggfCAxMSArKysrKysr KysrLQorIG5iZC9zZXJ2ZXIuYyAgICAgICAgfCAyMCArKysrKysrKysrKysrKysrKy0tLQorIHFl bXUtbmJkLmMgICAgICAgICAgfCAgNCArKystCisgNCBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYmxvY2tkZXYtbmJkLmMgYi9i bG9ja2Rldi1uYmQuYworaW5kZXggMjEzMDEyNDM1Zi4uMjY3YTFkZTkwMyAxMDA2NDQKKy0tLSBh L2Jsb2NrZGV2LW5iZC5jCisrKysgYi9ibG9ja2Rldi1uYmQuYworQEAgLTY0LDggKzY0LDEwIEBA IHN0YXRpYyB2b2lkIG5iZF9hY2NlcHQoUUlPTmV0TGlzdGVuZXIgKmxpc3RlbmVyLCBRSU9DaGFu bmVsU29ja2V0ICpjaW9jLAorICAgICBuYmRfdXBkYXRlX3NlcnZlcl93YXRjaChuYmRfc2VydmVy KTsKKyAKKyAgICAgcWlvX2NoYW5uZWxfc2V0X25hbWUoUUlPX0NIQU5ORUwoY2lvYyksICJuYmQt c2VydmVyIik7CistICAgIG5iZF9jbGllbnRfbmV3KGNpb2MsIG5iZF9zZXJ2ZXItPnRsc2NyZWRz LCBuYmRfc2VydmVyLT50bHNhdXRoeiwKKy0gICAgICAgICAgICAgICAgICAgbmJkX2Jsb2NrZGV2 X2NsaWVudF9jbG9zZWQpOworKyAgICAvKiBUT0RPIC0gZXhwb3NlIGhhbmRzaGFrZSB0aW1lb3V0 IGFzIFFNUCBvcHRpb24gKi8KKysgICAgbmJkX2NsaWVudF9uZXcoY2lvYywgTkJEX0RFRkFVTFRf SEFORFNIQUtFX01BWF9TRUNTLAorKyAgICAgICAgICAgICAgICAgICBuYmRfc2VydmVyLT50bHNj cmVkcywgbmJkX3NlcnZlci0+dGxzYXV0aHosCisrICAgICAgICAgICAgICAgICAgIG5iZF9ibG9j a2Rldl9jbGllbnRfY2xvc2VkLCBOVUxMKTsKKyB9CisgCisgc3RhdGljIHZvaWQgbmJkX3VwZGF0 ZV9zZXJ2ZXJfd2F0Y2goTkJEU2VydmVyRGF0YSAqcykKK2RpZmYgLS1naXQgYS9pbmNsdWRlL2Js b2NrL25iZC5oIGIvaW5jbHVkZS9ibG9jay9uYmQuaAoraW5kZXggNGU3YmQ2MzQyZi4uMWQ0ZDY1 OTIyZCAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvYmxvY2svbmJkLmgKKysrKyBiL2luY2x1ZGUvYmxv Y2svbmJkLmgKK0BAIC0zMyw2ICszMywxMiBAQCB0eXBlZGVmIHN0cnVjdCBOQkRNZXRhQ29udGV4 dHMgTkJETWV0YUNvbnRleHRzOworIAorIGV4dGVybiBjb25zdCBCbG9ja0V4cG9ydERyaXZlciBi bGtfZXhwX25iZDsKKyAKKysvKgorKyAqIE5CRF9ERUZBVUxUX0hBTkRTSEFLRV9NQVhfU0VDUzog TnVtYmVyIG9mIHNlY29uZHMgaW4gd2hpY2ggY2xpZW50IG11c3QKKysgKiBzdWNjZWVkIGF0IE5C RF9PUFRfR08gYmVmb3JlIGJlaW5nIGZvcmNlZnVsbHkgZHJvcHBlZCBhcyB0b28gc2xvdy4KKysg Ki8KKysjZGVmaW5lIE5CRF9ERUZBVUxUX0hBTkRTSEFLRV9NQVhfU0VDUyAxMAorKworIC8qIEhh bmRzaGFrZSBwaGFzZSBzdHJ1Y3RzIC0gdGhpcyBzdHJ1Y3QgaXMgcGFzc2VkIG9uIHRoZSB3aXJl ICovCisgCisgdHlwZWRlZiBzdHJ1Y3QgTkJET3B0aW9uIHsKK0BAIC00MDMsOSArNDA5LDEyIEBA IEFpb0NvbnRleHQgKm5iZF9leHBvcnRfYWlvX2NvbnRleHQoTkJERXhwb3J0ICpleHApOworIE5C REV4cG9ydCAqbmJkX2V4cG9ydF9maW5kKGNvbnN0IGNoYXIgKm5hbWUpOworIAorIHZvaWQgbmJk X2NsaWVudF9uZXcoUUlPQ2hhbm5lbFNvY2tldCAqc2lvYywKKysgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGhhbmRzaGFrZV9tYXhfc2VjcywKKyAgICAgICAgICAgICAgICAgICAgIFFDcnlw dG9UTFNDcmVkcyAqdGxzY3JlZHMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp0 bHNhdXRoeiwKKy0gICAgICAgICAgICAgICAgICAgIHZvaWQgKCpjbG9zZV9mbikoTkJEQ2xpZW50 ICosIGJvb2wpKTsKKysgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpjbG9zZV9mbikoTkJEQ2xp ZW50ICosIGJvb2wpLAorKyAgICAgICAgICAgICAgICAgICAgdm9pZCAqb3duZXIpOworK3ZvaWQg Km5iZF9jbGllbnRfb3duZXIoTkJEQ2xpZW50ICpjbGllbnQpOworIHZvaWQgbmJkX2NsaWVudF9n ZXQoTkJEQ2xpZW50ICpjbGllbnQpOworIHZvaWQgbmJkX2NsaWVudF9wdXQoTkJEQ2xpZW50ICpj bGllbnQpOworIAorZGlmZiAtLWdpdCBhL25iZC9zZXJ2ZXIuYyBiL25iZC9zZXJ2ZXIuYworaW5k ZXggODkyNzk3YmIxMS4uZTUwMDEyNDk5ZiAxMDA2NDQKKy0tLSBhL25iZC9zZXJ2ZXIuYworKysr IGIvbmJkL3NlcnZlci5jCitAQCAtMTI0LDEyICsxMjQsMTQgQEAgc3RydWN0IE5CRE1ldGFDb250 ZXh0cyB7Cisgc3RydWN0IE5CRENsaWVudCB7CisgICAgIGludCByZWZjb3VudDsgLyogYXRvbWlj ICovCisgICAgIHZvaWQgKCpjbG9zZV9mbikoTkJEQ2xpZW50ICpjbGllbnQsIGJvb2wgbmVnb3Rp YXRlZCk7CisrICAgIHZvaWQgKm93bmVyOworIAorICAgICBRZW11TXV0ZXggbG9jazsKKyAKKyAg ICAgTkJERXhwb3J0ICpleHA7CisgICAgIFFDcnlwdG9UTFNDcmVkcyAqdGxzY3JlZHM7CisgICAg IGNoYXIgKnRsc2F1dGh6OworKyAgICB1aW50MzJfdCBoYW5kc2hha2VfbWF4X3NlY3M7CisgICAg IFFJT0NoYW5uZWxTb2NrZXQgKnNpb2M7IC8qIFRoZSB1bmRlcmx5aW5nIGRhdGEgY2hhbm5lbCAq LworICAgICBRSU9DaGFubmVsICppb2M7IC8qIFRoZSBjdXJyZW50IEkvTyBjaGFubmVsIHdoaWNo IG1heSBkaWZmZXIgKGVnIFRMUykgKi8KKyAKK0BAIC0zMTkxLDYgKzMxOTMsNyBAQCBzdGF0aWMg Y29yb3V0aW5lX2ZuIHZvaWQgbmJkX2NvX2NsaWVudF9zdGFydCh2b2lkICpvcGFxdWUpCisgCisg ICAgIHFlbXVfY29fbXV0ZXhfaW5pdCgmY2xpZW50LT5zZW5kX2xvY2spOworIAorKyAgICAvKiBU T0RPIC0gdXRpbGl6ZSBjbGllbnQtPmhhbmRzaGFrZV9tYXhfc2VjcyAqLworICAgICBpZiAobmJk X25lZ290aWF0ZShjbGllbnQsICZsb2NhbF9lcnIpKSB7CisgICAgICAgICBpZiAobG9jYWxfZXJy KSB7CisgICAgICAgICAgICAgZXJyb3JfcmVwb3J0X2Vycihsb2NhbF9lcnIpOworQEAgLTMyMDUs MTQgKzMyMDgsMTcgQEAgc3RhdGljIGNvcm91dGluZV9mbiB2b2lkIG5iZF9jb19jbGllbnRfc3Rh cnQodm9pZCAqb3BhcXVlKQorIH0KKyAKKyAvKgorLSAqIENyZWF0ZSBhIG5ldyBjbGllbnQgbGlz dGVuZXIgdXNpbmcgdGhlIGdpdmVuIGNoYW5uZWwgQHNpb2MuCisrICogQ3JlYXRlIGEgbmV3IGNs aWVudCBsaXN0ZW5lciB1c2luZyB0aGUgZ2l2ZW4gY2hhbm5lbCBAc2lvYyBhbmQgQG93bmVyLgor ICAqIEJlZ2luIHNlcnZpY2luZyBpdCBpbiBhIGNvcm91dGluZS4gIFdoZW4gdGhlIGNvbm5lY3Rp b24gY2xvc2VzLCBjYWxsCistICogQGNsb3NlX2ZuIHdpdGggYW4gaW5kaWNhdGlvbiBvZiB3aGV0 aGVyIHRoZSBjbGllbnQgY29tcGxldGVkIG5lZ290aWF0aW9uLgorKyAqIEBjbG9zZV9mbiB3aXRo IGFuIGluZGljYXRpb24gb2Ygd2hldGhlciB0aGUgY2xpZW50IGNvbXBsZXRlZCBuZWdvdGlhdGlv bgorKyAqIHdpdGhpbiBAaGFuZHNoYWtlX21heF9zZWNzIHNlY29uZHMgKDAgZm9yIHVuYm91bmRl ZCkuCisgICovCisgdm9pZCBuYmRfY2xpZW50X25ldyhRSU9DaGFubmVsU29ja2V0ICpzaW9jLAor KyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaGFuZHNoYWtlX21heF9zZWNzLAorICAgICAg ICAgICAgICAgICAgICAgUUNyeXB0b1RMU0NyZWRzICp0bHNjcmVkcywKKyAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKnRsc2F1dGh6LAorLSAgICAgICAgICAgICAgICAgICAgdm9pZCAo KmNsb3NlX2ZuKShOQkRDbGllbnQgKiwgYm9vbCkpCisrICAgICAgICAgICAgICAgICAgICB2b2lk ICgqY2xvc2VfZm4pKE5CRENsaWVudCAqLCBib29sKSwKKysgICAgICAgICAgICAgICAgICAgIHZv aWQgKm93bmVyKQorIHsKKyAgICAgTkJEQ2xpZW50ICpjbGllbnQ7CisgICAgIENvcm91dGluZSAq Y287CitAQCAtMzIyNSwxMyArMzIzMSwyMSBAQCB2b2lkIG5iZF9jbGllbnRfbmV3KFFJT0NoYW5u ZWxTb2NrZXQgKnNpb2MsCisgICAgICAgICBvYmplY3RfcmVmKE9CSkVDVChjbGllbnQtPnRsc2Ny ZWRzKSk7CisgICAgIH0KKyAgICAgY2xpZW50LT50bHNhdXRoeiA9IGdfc3RyZHVwKHRsc2F1dGh6 KTsKKysgICAgY2xpZW50LT5oYW5kc2hha2VfbWF4X3NlY3MgPSBoYW5kc2hha2VfbWF4X3NlY3M7 CisgICAgIGNsaWVudC0+c2lvYyA9IHNpb2M7CisgICAgIHFpb19jaGFubmVsX3NldF9kZWxheShR SU9fQ0hBTk5FTChzaW9jKSwgZmFsc2UpOworICAgICBvYmplY3RfcmVmKE9CSkVDVChjbGllbnQt PnNpb2MpKTsKKyAgICAgY2xpZW50LT5pb2MgPSBRSU9fQ0hBTk5FTChzaW9jKTsKKyAgICAgb2Jq ZWN0X3JlZihPQkpFQ1QoY2xpZW50LT5pb2MpKTsKKyAgICAgY2xpZW50LT5jbG9zZV9mbiA9IGNs b3NlX2ZuOworKyAgICBjbGllbnQtPm93bmVyID0gb3duZXI7CisgCisgICAgIGNvID0gcWVtdV9j b3JvdXRpbmVfY3JlYXRlKG5iZF9jb19jbGllbnRfc3RhcnQsIGNsaWVudCk7CisgICAgIHFlbXVf Y29yb3V0aW5lX2VudGVyKGNvKTsKKyB9CisrCisrdm9pZCAqCisrbmJkX2NsaWVudF9vd25lcihO QkRDbGllbnQgKmNsaWVudCkKKyt7CisrICAgIHJldHVybiBjbGllbnQtPm93bmVyOworK30KK2Rp ZmYgLS1naXQgYS9xZW11LW5iZC5jIGIvcWVtdS1uYmQuYworaW5kZXggZDdiM2NjYWIyMS4uNDhl MmZhNTg1OCAxMDA2NDQKKy0tLSBhL3FlbXUtbmJkLmMKKysrKyBiL3FlbXUtbmJkLmMKK0BAIC0z OTAsNyArMzkwLDkgQEAgc3RhdGljIHZvaWQgbmJkX2FjY2VwdChRSU9OZXRMaXN0ZW5lciAqbGlz dGVuZXIsIFFJT0NoYW5uZWxTb2NrZXQgKmNpb2MsCisgCisgICAgIG5iX2ZkcysrOworICAgICBu YmRfdXBkYXRlX3NlcnZlcl93YXRjaCgpOworLSAgICBuYmRfY2xpZW50X25ldyhjaW9jLCB0bHNj cmVkcywgdGxzYXV0aHosIG5iZF9jbGllbnRfY2xvc2VkKTsKKysgICAgLyogVE9ETyAtIGV4cG9z ZSBoYW5kc2hha2UgdGltZW91dCBhcyBjb21tYW5kIGxpbmUgb3B0aW9uICovCisrICAgIG5iZF9j bGllbnRfbmV3KGNpb2MsIE5CRF9ERUZBVUxUX0hBTkRTSEFLRV9NQVhfU0VDUywKKysgICAgICAg ICAgICAgICAgICAgdGxzY3JlZHMsIHRsc2F1dGh6LCBuYmRfY2xpZW50X2Nsb3NlZCwgTlVMTCk7 CisgfQorIAorIHN0YXRpYyB2b2lkIG5iZF91cGRhdGVfc2VydmVyX3dhdGNoKHZvaWQpCmRpZmYg LS1naXQgYS9kZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDMxLW5iZC1zZXJ2ZXItQ1ZFLTIwMjQtNzQw OS1DYXAtZGVmYXVsdC1tYXgtY29ubmVjdGlvbnMucGF0Y2ggYi9kZWJpYW4vcGF0Y2hlcy9leHRy YS8wMDMxLW5iZC1zZXJ2ZXItQ1ZFLTIwMjQtNzQwOS1DYXAtZGVmYXVsdC1tYXgtY29ubmVjdGlv bnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY4MDRmOQotLS0g L2Rldi9udWxsCisrKyBiL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMzEtbmJkLXNlcnZlci1DVkUt MjAyNC03NDA5LUNhcC1kZWZhdWx0LW1heC1jb25uZWN0aW9ucy5wYXRjaApAQCAtMCwwICsxLDE3 MiBAQAorRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+ CitEYXRlOiBUdWUsIDYgQXVnIDIwMjQgMTM6NTM6MDAgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0g bmJkL3NlcnZlcjogQ1ZFLTIwMjQtNzQwOTogQ2FwIGRlZmF1bHQgbWF4LWNvbm5lY3Rpb25zIHRv IDEwMAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitBbGxvd2luZyBhbiB1 bmxpbWl0ZWQgbnVtYmVyIG9mIGNsaWVudHMgdG8gYW55IHdlYiBzZXJ2aWNlIGlzIGEgcmVjaXBl Citmb3IgYSBydWRpbWVudGFyeSBkZW5pYWwgb2Ygc2VydmljZSBhdHRhY2s6IHRoZSBjbGllbnQg bWVyZWx5IG5lZWRzIHRvCitvcGVuIGxvdHMgb2Ygc29ja2V0cyB3aXRob3V0IGNsb3NpbmcgdGhl bSwgdW50aWwgcWVtdSBubyBsb25nZXIgaGFzCithbnkgbW9yZSBmZHMgYXZhaWxhYmxlIHRvIGFs bG9jYXRlLgorCitGb3IgcWVtdS1uYmQsIHdlIGRlZmF1bHQgdG8gYWxsb3dpbmcgb25seSAxIGNv bm5lY3Rpb24gdW5sZXNzIG1vcmUgYXJlCitleHBsaWNpdGx5IGFza2VkIGZvciAoLWUgb3IgLS1z aGFyZWQpOyB0aGlzIHdhcyBoaXN0b3JpY2FsbHkgcGlja2VkIGFzCithIG5pY2UgZGVmYXVsdCAo d2l0aG91dCBhbiBleHBsaWNpdCAtdCwgYSBub24tcGVyc2lzdGVudCBxZW11LW5iZCBnb2VzCith d2F5IGFmdGVyIGEgY2xpZW50IGRpc2Nvbm5lY3RzLCB3aXRob3V0IG5lZWRpbmcgYW55IGFkZGl0 aW9uYWwKK2ZvbGxvdy11cCBjb21tYW5kcyksIGFuZCB3ZSBhcmUgbm90IGdvaW5nIHRvIGNoYW5n ZSB0aGF0IGludGVyZmFjZSBub3cKKyhiZXNpZGVzLCBzb21lZGF5IHdlIHdhbnQgdG8gcG9pbnQg cGVvcGxlIHRvd2FyZHMgcWVtdS1zdG9yYWdlLWRhZW1vbgoraW5zdGVhZCBvZiBxZW11LW5iZCku CisKK0J1dCBmb3IgcWVtdSBwcm9wZXIsIGFuZCB0aGUgbmV3ZXIgcWVtdS1zdG9yYWdlLWRhZW1v biwgdGhlIFFNUAorbmJkLXNlcnZlci1zdGFydCBjb21tYW5kIGhhcyBoaXN0b3JpY2FsbHkgaGFk IGEgZGVmYXVsdCBvZiB1bmxpbWl0ZWQKK251bWJlciBvZiBjb25uZWN0aW9ucywgaW4gcGFydCBi ZWNhdXNlIHVubGlrZSBxZW11LW5iZCBpdCBpcworaW5oZXJlbnRseSBwZXJzaXN0ZW50IHVudGls IG5iZC1zZXJ2ZXItc3RvcC4gIEFsbG93aW5nIG11bHRpcGxlIGNsaWVudAorc29ja2V0cyBpcyBw YXJ0aWN1bGFybHkgdXNlZnVsIGZvciBjbGllbnRzIHRoYXQgY2FuIHRha2UgYWR2YW50YWdlIG9m CitNVUxUSV9DT05OIChjcmVhdGluZyBwYXJhbGxlbCBzb2NrZXRzIHRvIGluY3JlYXNlIHRocm91 Z2hwdXQpLAorYWx0aG91Z2gga25vd24gY2xpZW50cyB0aGF0IGRvIHNvIChzdWNoIGFzIGxpYm5i ZCdzIG5iZGNvcHkpIHR5cGljYWxseQordXNlIG9ubHkgOCBvciAxNiBjb25uZWN0aW9ucyAodGhl IGJlbmVmaXRzIG9mIHNjYWxpbmcgZGltaW5pc2ggb25jZQorbW9yZSBzb2NrZXRzIGFyZSBjb21w ZXRpbmcgZm9yIGtlcm5lbCBhdHRlbnRpb24pLiAgUGlja2luZyBhIG51bWJlcgorbGFyZ2UgZW5v dWdoIGZvciB0eXBpY2FsIHVzZSBjYXNlcywgYnV0IG5vdCB1bmxpbWl0ZWQsIG1ha2VzIGl0Citz bGlnaHRseSBoYXJkZXIgZm9yIGEgbWFsaWNpb3VzIGNsaWVudCB0byBwZXJmb3JtIGEgZGVuaWFs IG9mIHNlcnZpY2UKK21lcmVseSBieSBvcGVuaW5nIGxvdHMgb2YgY29ubmVjdGlvbnMgd2l0aG90 IHByb2dyZXNzaW5nIHRocm91Z2ggdGhlCitoYW5kc2hha2UuCisKK1RoaXMgY2hhbmdlIGRvZXMg bm90IGVsaW1pbmF0ZSBDVkUtMjAyNC03NDA5IG9uIGl0cyBvd24sIGJ1dCByZWR1Y2VzCit0aGUg Y2hhbmNlIGZvciBmZCBleGhhdXN0aW9uIG9yIHVubGltaXRlZCBtZW1vcnkgdXNhZ2UgYXMgYW4g YXR0YWNrCitzdXJmYWNlLiAgT24gdGhlIG90aGVyIGhhbmQsIGJ5IGl0c2VsZiwgaXQgbWFrZXMg aXQgbW9yZSBvYnZpb3VzIHRoYXQKK3dpdGggYSBmaW5pdGUgbGltaXQsIHdlIGhhdmUgdGhlIHBy b2JsZW0gb2YgYW4gdW5hdXRoZW50aWNhdGVkIGNsaWVudAoraG9sZGluZyAxMDAgZmRzIG9wZW5l ZCBhcyBhIHdheSB0byBibG9jayBvdXQgYSBsZWdpdGltYXRlIGNsaWVudCBmcm9tCitiZWluZyBh YmxlIHRvIGNvbm5lY3Q7IHRodXMsIGxhdGVyIHBhdGNoZXMgd2lsbCBmdXJ0aGVyIGFkZCB0aW1l b3V0cwordG8gcmVqZWN0IGNsaWVudHMgdGhhdCBhcmUgbm90IG1ha2luZyBwcm9ncmVzcy4KKwor VGhpcyBpcyBhbiBJTlRFTlRJT05BTCBjaGFuZ2UgaW4gYmVoYXZpb3IsIGFuZCB3aWxsIGJyZWFr IGFueSBjbGllbnQKK29mIG5iZC1zZXJ2ZXItc3RhcnQgdGhhdCB3YXMgbm90IHBhc3NpbmcgYW4g ZXhwbGljaXQgbWF4LWNvbm5lY3Rpb25zCitwYXJhbWV0ZXIsIHlldCBleHBlY3RzIG1vcmUgdGhh biAxMDAgc2ltdWx0YW5lb3VzIGNvbm5lY3Rpb25zLiAgV2UgYXJlCitub3QgYXdhcmUgb2YgYW55 IHN1Y2ggY2xpZW50IChhcyBzdGF0ZWQgYWJvdmUsIG1vc3QgY2xpZW50cyBhd2FyZSBvZgorTVVM VElfQ09OTiBnZXQgYnkganVzdCBmaW5lIG9uIDggb3IgMTYgY29ubmVjdGlvbnMsIGFuZCBwcm9i YWJseSBjb3BlCit3aXRoIGxhdGVyIGNvbm5lY3Rpb25zIGZhaWxpbmcgYnkgcmVseWluZyBvbiB0 aGUgZWFybGllciBjb25uZWN0aW9uczsKK2xpYnZpcnQgaGFzIG5vdCB5ZXQgYmVlbiBwYXNzaW5n IG1heC1jb25uZWN0aW9ucywgYnV0IGdlbmVyYWxseQorY3JlYXRlcyBOQkQgc2VydmVycyB3aXRo IHRoZSBpbnRlbnQgZm9yIGEgc2luZ2xlIGNsaWVudCBmb3IgdGhlIHNha2UKK29mIGxpdmUgc3Rv cmFnZSBtaWdyYXRpb247IG1lYW53aGlsZSwgdGhlIEt1YmVTQU4gcHJvamVjdCBhbnRpY2lwYXRl cworYSBsYXJnZSBjbHVzdGVyIHNoYXJpbmcgbXVsdGlwbGUgY2xpZW50cyBbdXAgdG8gOCBwZXIg bm9kZSwgYW5kIHVwIHRvCisxMDAgbm9kZXMgaW4gYSBjbHVzdGVyXSwgYnV0IGl0IGN1cnJlbnRs eSB1c2VzIHFlbXUtbmJkIHdpdGggYW4KK2V4cGxpY2l0IC0tc2hhcmVkPTAgcmF0aGVyIHRoYW4g cWVtdS1zdG9yYWdlLWRhZW1vbiB3aXRoCituYmQtc2VydmVyLXN0YXJ0KS4KKworV2UgY29uc2lk ZXJlZCB1c2luZyBhIGRlcHJlY2F0aW9uIHBlcmlvZCAoZGVjbGFyZSB0aGF0IG9taXR0aW5nCitt YXgtcGFyYW1ldGVycyBpcyBkZXByZWNhdGVkLCBhbmQgbWFrZSBpdCBtYW5kYXRvcnkgaW4gMyBy ZWxlYXNlcyAtCit0aGVuIHdlIGRvbid0IG5lZWQgdG8gcGljayBhbiBhcmJpdHJhcnkgZGVmYXVs dCk7IHRoYXQgaGFzIHplcm8gcmlzaworb2YgYnJlYWtpbmcgYW55IGFwcHMgdGhhdCBhY2NpZGVu dGFsbHkgZGVwZW5kZWQgb24gbW9yZSB0aGFuIDEwMAorY29ubmVjdGlvbnMsIGFuZCB3aGVyZSBz dWNoIGJyZWFrYWdlIG1pZ2h0IG5vdCBiZSBub3RpY2VkIHVuZGVyIHVuaXQKK3Rlc3RpbmcgYnV0 IG9ubHkgdW5kZXIgdGhlIGxhcmdlciBsb2FkcyBvZiBwcm9kdWN0aW9uIHVzYWdlLiAgQnV0IGl0 Citkb2VzIG5vdCBjbG9zZSB0aGUgZGVuaWFsLW9mLXNlcnZpY2UgaG9sZSB1bnRpbCBmYXIgaW50 byB0aGUgZnV0dXJlLAorYW5kIHJlcXVpcmVzIGFsbCBhcHBzIHRvIGNoYW5nZSB0byBhZGQgdGhl IHBhcmFtZXRlciBldmVuIGlmIDEwMCB3YXMKK2dvb2QgZW5vdWdoLiAgSXQgYWxzbyBoYXMgYSBk cmF3YmFjayB0aGF0IGFueSBhcHAgKGxpa2UgbGlidmlydCkgdGhhdAoraXMgYWNjaWRlbnRhbGx5 IHJlbHlpbmcgb24gYW4gdW5saW1pdGVkIGRlZmF1bHQgc2hvdWxkIHNlcmlvdXNseQorY29uc2lk ZXIgdGhlaXIgb3duIENWRSBub3csIGF0IHdoaWNoIHBvaW50IHRoZXkgYXJlIGdvaW5nIHRvIGNo YW5nZSB0bworcGFzcyBleHBsaWNpdCBtYXgtY29ubmVjdGlvbnMgc29vbmVyIHRoYW4gd2FpdGlu ZyBmb3IgMyBxZW11IHJlbGVhc2VzLgorRmluYWxseSwgaWYgb3VyIGNoYW5nZWQgZGVmYXVsdCBi cmVha3MgYW4gYXBwLCB0aGF0IGFwcCBjYW4gYWx3YXlzCitwYXNzIGluIGFuIGV4cGxpY2l0IG1h eC1wYXJhbWV0ZXJzIHdpdGggYSBsYXJnZXIgdmFsdWUuCisKK0l0IGlzIGFsc28gaW50ZW50aW9u YWwgdGhhdCB0aGUgSE1QIGludGVyZmFjZSB0byBuYmQtc2VydmVyLXN0YXJ0IGlzCitub3QgY2hh bmdlZCB0byBleHBvc2UgbWF4LWNvbm5lY3Rpb25zIChhbnkgY2xpZW50IG5lZWRpbmcgdG8gZmlu ZS10dW5lCit0aGluZ3Mgc2hvdWxkIGJlIHVzaW5nIFFNUCkuCisKK1N1Z2dlc3RlZC1ieTogRGFu aWVsIFAuIEJlcnJhbmfDqSA8YmVycmFuZ2VAcmVkaGF0LmNvbT4KK1NpZ25lZC1vZmYtYnk6IEVy aWMgQmxha2UgPGVibGFrZUByZWRoYXQuY29tPgorTWVzc2FnZS1JRDogPDIwMjQwODA3MTc0OTQz Ljc3MTYyNC0xMi1lYmxha2VAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBEYW5pZWwgUC4gQmVy cmFuZ8OpIDxiZXJyYW5nZUByZWRoYXQuY29tPgorW2VyaWNiOiBFeHBhbmQgY29tbWl0IG1lc3Nh Z2UgdG8gc3VtbWFyaXplIERhbidzIGFyZ3VtZW50IGZvciB3aHkgd2UKK2JyZWFrIGNvcm5lci1j YXNlIGJhY2stY29tcGF0IGJlaGF2aW9yIHdpdGhvdXQgYSBkZXByZWNhdGlvbiBwZXJpb2RdCitT aWduZWQtb2ZmLWJ5OiBFcmljIEJsYWtlIDxlYmxha2VAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlj a2VkIGZyb20gY29tbWl0IGM4YTc2ZGJkOTBjMmY0OGRmODliNzViZWY3NDkxN2Y5MGE1OWI2MjMp CitTaWduZWQtb2ZmLWJ5OiBGaW9uYSBFYm5lciA8Zi5lYm5lckBwcm94bW94LmNvbT4KKy0tLQor IGJsb2NrL21vbml0b3IvYmxvY2staG1wLWNtZHMuYyB8IDMgKystCisgYmxvY2tkZXYtbmJkLmMg ICAgICAgICAgICAgICAgIHwgOCArKysrKysrKworIGluY2x1ZGUvYmxvY2svbmJkLmggICAgICAg ICAgICB8IDcgKysrKysrKworIHFhcGkvYmxvY2stZXhwb3J0Lmpzb24gICAgICAgICB8IDQgKyst LQorIDQgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL2Jsb2NrL21vbml0b3IvYmxvY2staG1wLWNtZHMuYyBiL2Jsb2NrL21vbml0 b3IvYmxvY2staG1wLWNtZHMuYworaW5kZXggZDk1NGJlYzZmMS4uYmRmMmViNTBiNiAxMDA2NDQK Ky0tLSBhL2Jsb2NrL21vbml0b3IvYmxvY2staG1wLWNtZHMuYworKysrIGIvYmxvY2svbW9uaXRv ci9ibG9jay1obXAtY21kcy5jCitAQCAtNDAyLDcgKzQwMiw4IEBAIHZvaWQgaG1wX25iZF9zZXJ2 ZXJfc3RhcnQoTW9uaXRvciAqbW9uLCBjb25zdCBRRGljdCAqcWRpY3QpCisgICAgICAgICBnb3Rv IGV4aXQ7CisgICAgIH0KKyAKKy0gICAgbmJkX3NlcnZlcl9zdGFydChhZGRyLCBOVUxMLCBOVUxM LCAwLCAmbG9jYWxfZXJyKTsKKysgICAgbmJkX3NlcnZlcl9zdGFydChhZGRyLCBOVUxMLCBOVUxM LCBOQkRfREVGQVVMVF9NQVhfQ09OTkVDVElPTlMsCisrICAgICAgICAgICAgICAgICAgICAgJmxv Y2FsX2Vycik7CisgICAgIHFhcGlfZnJlZV9Tb2NrZXRBZGRyZXNzKGFkZHIpOworICAgICBpZiAo bG9jYWxfZXJyICE9IE5VTEwpIHsKKyAgICAgICAgIGdvdG8gZXhpdDsKK2RpZmYgLS1naXQgYS9i bG9ja2Rldi1uYmQuYyBiL2Jsb2NrZGV2LW5iZC5jCitpbmRleCAyNjdhMWRlOTAzLi4yNGJhNTM4 MmRiIDEwMDY0NAorLS0tIGEvYmxvY2tkZXYtbmJkLmMKKysrKyBiL2Jsb2NrZGV2LW5iZC5jCitA QCAtMTcwLDYgKzE3MCwxMCBAQCB2b2lkIG5iZF9zZXJ2ZXJfc3RhcnQoU29ja2V0QWRkcmVzcyAq YWRkciwgY29uc3QgY2hhciAqdGxzX2NyZWRzLAorIAorIHZvaWQgbmJkX3NlcnZlcl9zdGFydF9v cHRpb25zKE5iZFNlcnZlck9wdGlvbnMgKmFyZywgRXJyb3IgKiplcnJwKQorIHsKKysgICAgaWYg KCFhcmctPmhhc19tYXhfY29ubmVjdGlvbnMpIHsKKysgICAgICAgIGFyZy0+bWF4X2Nvbm5lY3Rp b25zID0gTkJEX0RFRkFVTFRfTUFYX0NPTk5FQ1RJT05TOworKyAgICB9CisrCisgICAgIG5iZF9z ZXJ2ZXJfc3RhcnQoYXJnLT5hZGRyLCBhcmctPnRsc19jcmVkcywgYXJnLT50bHNfYXV0aHosCisg ICAgICAgICAgICAgICAgICAgICAgYXJnLT5tYXhfY29ubmVjdGlvbnMsIGVycnApOworIH0KK0BA IC0xODIsNiArMTg2LDEwIEBAIHZvaWQgcW1wX25iZF9zZXJ2ZXJfc3RhcnQoU29ja2V0QWRkcmVz c0xlZ2FjeSAqYWRkciwKKyB7CisgICAgIFNvY2tldEFkZHJlc3MgKmFkZHJfZmxhdCA9IHNvY2tl dF9hZGRyZXNzX2ZsYXR0ZW4oYWRkcik7CisgCisrICAgIGlmICghaGFzX21heF9jb25uZWN0aW9u cykgeworKyAgICAgICAgbWF4X2Nvbm5lY3Rpb25zID0gTkJEX0RFRkFVTFRfTUFYX0NPTk5FQ1RJ T05TOworKyAgICB9CisrCisgICAgIG5iZF9zZXJ2ZXJfc3RhcnQoYWRkcl9mbGF0LCB0bHNfY3Jl ZHMsIHRsc19hdXRoeiwgbWF4X2Nvbm5lY3Rpb25zLCBlcnJwKTsKKyAgICAgcWFwaV9mcmVlX1Nv Y2tldEFkZHJlc3MoYWRkcl9mbGF0KTsKKyB9CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ibG9jay9u YmQuaCBiL2luY2x1ZGUvYmxvY2svbmJkLmgKK2luZGV4IDFkNGQ2NTkyMmQuLmQ0ZjhiMjFhZWMg MTAwNjQ0CistLS0gYS9pbmNsdWRlL2Jsb2NrL25iZC5oCisrKysgYi9pbmNsdWRlL2Jsb2NrL25i ZC5oCitAQCAtMzksNiArMzksMTMgQEAgZXh0ZXJuIGNvbnN0IEJsb2NrRXhwb3J0RHJpdmVyIGJs a19leHBfbmJkOworICAqLworICNkZWZpbmUgTkJEX0RFRkFVTFRfSEFORFNIQUtFX01BWF9TRUNT IDEwCisgCisrLyoKKysgKiBOQkRfREVGQVVMVF9NQVhfQ09OTkVDVElPTlM6IE51bWJlciBvZiBj bGllbnQgc29ja2V0cyB0byBhbGxvdyBhdAorKyAqIG9uY2U7IG11c3QgYmUgbGFyZ2UgZW5vdWdo IHRvIGFsbG93IGEgTVVMVElfQ09OTi1hd2FyZSBjbGllbnQgbGlrZQorKyAqIG5iZGNvcHkgdG8g Y3JlYXRlIGl0cyB0eXBpY2FsIG51bWJlciBvZiA4LTE2IHNvY2tldHMuCisrICovCisrI2RlZmlu ZSBOQkRfREVGQVVMVF9NQVhfQ09OTkVDVElPTlMgMTAwCisrCisgLyogSGFuZHNoYWtlIHBoYXNl IHN0cnVjdHMgLSB0aGlzIHN0cnVjdCBpcyBwYXNzZWQgb24gdGhlIHdpcmUgKi8KKyAKKyB0eXBl ZGVmIHN0cnVjdCBOQkRPcHRpb24geworZGlmZiAtLWdpdCBhL3FhcGkvYmxvY2stZXhwb3J0Lmpz b24gYi9xYXBpL2Jsb2NrLWV4cG9ydC5qc29uCitpbmRleCAzOTE5YTJkNWI5Li5mNDVlNGZkNDgx IDEwMDY0NAorLS0tIGEvcWFwaS9ibG9jay1leHBvcnQuanNvbgorKysrIGIvcWFwaS9ibG9jay1l eHBvcnQuanNvbgorQEAgLTI4LDcgKzI4LDcgQEAKKyAjIEBtYXgtY29ubmVjdGlvbnM6IFRoZSBt YXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9ucyB0byBhbGxvdyBhdCB0aGUKKyAjICAgICBzYW1l IHRpbWUsIDAgZm9yIHVubGltaXRlZC4gIFNldHRpbmcgdGhpcyB0byAxIGFsc28gc3RvcHMgdGhl CisgIyAgICAgc2VydmVyIGZyb20gYWR2ZXJ0aXNpbmcgbXVsdGlwbGUgY2xpZW50IHN1cHBvcnQg KHNpbmNlIDUuMjsKKy0jICAgICBkZWZhdWx0OiAwKQorKyMgICAgIGRlZmF1bHQ6IDEwMCkKKyAj CisgIyBTaW5jZTogNC4yCisgIyMKK0BAIC02Myw3ICs2Myw3IEBACisgIyBAbWF4LWNvbm5lY3Rp b25zOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29ubmVjdGlvbnMgdG8gYWxsb3cgYXQgdGhlCisg IyAgICAgc2FtZSB0aW1lLCAwIGZvciB1bmxpbWl0ZWQuICBTZXR0aW5nIHRoaXMgdG8gMSBhbHNv IHN0b3BzIHRoZQorICMgICAgIHNlcnZlciBmcm9tIGFkdmVydGlzaW5nIG11bHRpcGxlIGNsaWVu dCBzdXBwb3J0IChzaW5jZSA1LjI7CistIyAgICAgZGVmYXVsdDogMCkuCisrIyAgICAgZGVmYXVs dDogMTAwKS4KKyAjCisgIyBFcnJvcnM6CisgIyAgICAgLSBpZiB0aGUgc2VydmVyIGlzIGFscmVh ZHkgcnVubmluZwpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzMi1uYmQtc2Vy dmVyLUNWRS0yMDI0LTc0MDktRHJvcC1ub24tbmVnb3RpYXRpbmctY2xpZW50LnBhdGNoIGIvZGVi aWFuL3BhdGNoZXMvZXh0cmEvMDAzMi1uYmQtc2VydmVyLUNWRS0yMDI0LTc0MDktRHJvcC1ub24t bmVnb3RpYXRpbmctY2xpZW50LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjBiMTEzZTUKLS0tIC9kZXYvbnVsbAorKysgYi9kZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDMy LW5iZC1zZXJ2ZXItQ1ZFLTIwMjQtNzQwOS1Ecm9wLW5vbi1uZWdvdGlhdGluZy1jbGllbnQucGF0 Y2gKQEAgLTAsMCArMSwxMjMgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEVyaWMgQmxha2UgPGVi bGFrZUByZWRoYXQuY29tPgorRGF0ZTogVGh1LCA4IEF1ZyAyMDI0IDE2OjA1OjA4IC0wNTAwCitT dWJqZWN0OiBbUEFUQ0hdIG5iZC9zZXJ2ZXI6IENWRS0yMDI0LTc0MDk6IERyb3Agbm9uLW5lZ290 aWF0aW5nIGNsaWVudHMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworQSBj bGllbnQgdGhhdCBvcGVucyBhIHNvY2tldCBidXQgZG9lcyBub3QgbmVnb3RpYXRlIGlzIG1lcmVs eSBob2dnaW5nCitxZW11J3MgcmVzb3VyY2VzIChhbiBvcGVuIGZkIGFuZCBhIHNtYWxsIGFtb3Vu dCBvZiBtZW1vcnkpOyBhbmQgYQorbWFsaWNpb3VzIGNsaWVudCB0aGF0IGNhbiBhY2Nlc3MgdGhl IHBvcnQgd2hlcmUgTkJEIGlzIGxpc3RlbmluZyBjYW4KK2F0dGVtcHQgYSBkZW5pYWwgb2Ygc2Vy dmljZSBhdHRhY2sgYnkgaW50ZW50aW9uYWxseSBvcGVuaW5nIGFuZAorYWJhbmRvbmluZyBsb3Rz IG9mIHVuZmluaXNoZWQgY29ubmVjdGlvbnMuICBUaGUgcHJldmlvdXMgcGF0Y2ggcHV0IGEKK2Rl ZmF1bHQgYm91bmQgb24gdGhlIG51bWJlciBvZiBzdWNoIG9uZ29pbmcgY29ubmVjdGlvbnMsIGJ1 dCBvbmNlIHRoYXQKK2xpbWl0IGlzIGhpdCwgbm8gbW9yZSBjbGllbnRzIGNhbiBjb25uZWN0IChp bmNsdWRpbmcgbGVnaXRpbWF0ZSBvbmVzKS4KK1RoZSBzb2x1dGlvbiBpcyB0byBpbnNpc3QgdGhh dCBjbGllbnRzIGNvbXBsZXRlIGhhbmRzaGFrZSB3aXRoaW4gYQorcmVhc29uYWJsZSB0aW1lIGxp bWl0LCBkZWZhdWx0aW5nIHRvIDEwIHNlY29uZHMuICBBIGNsaWVudCB0aGF0IGhhcworbm90IHN1 Y2Nlc3NmdWxseSBjb21wbGV0ZWQgTkJEX09QVF9HTyBieSB0aGVuIChpbmNsdWRpbmcgdGhlIGNh c2Ugb2YKK3doZXJlIHRoZSBjbGllbnQgZGlkbid0IGtub3cgVExTIGNyZWRlbnRpYWxzIHRvIGV2 ZW4gcmVhY2ggdGhlIHBvaW50CitvZiBOQkRfT1BUX0dPKSBpcyB3YXN0aW5nIG91ciB0aW1lIGFu ZCBkb2VzIG5vdCBkZXNlcnZlIHRvIHN0YXkKK2Nvbm5lY3RlZC4gIExhdGVyIHBhdGNoZXMgd2ls bCBhbGxvdyBmaW5lLXR1bmluZyB0aGUgbGltaXQgYXdheSBmcm9tCit0aGUgZGVmYXVsdCB2YWx1 ZSAoaW5jbHVkaW5nIGRpc2FibGluZyBpdCBmb3IgZG9pbmcgaW50ZWdyYXRpb24KK3Rlc3Rpbmcg b2YgdGhlIGhhbmRzaGFrZSBwcm9jZXNzIGl0c2VsZikuCisKK05vdGUgdGhhdCB0aGlzIHBhdGNo IGluIGlzb2xhdGlvbiBhY3R1YWxseSBtYWtlcyBpdCBtb3JlIGxpa2VseSB0byBzZWUKK3FlbXUg U0VHViBhZnRlciBuYmQtc2VydmVyLXN0b3AsIGFzIGFueSBjbGllbnQgc29ja2V0IHN0aWxsIGNv bm5lY3RlZAord2hlbiB0aGUgc2VydmVyIHNodXRzIGRvd24gd2lsbCBub3cgYmUgY2xvc2VkIGFm dGVyIDEwIHNlY29uZHMgcmF0aGVyCit0aGFuIGF0IHRoZSBjbGllbnQncyB3aGltcy4gIFRoYXQg d2lsbCBiZSBhZGRyZXNzZWQgaW4gdGhlIG5leHQgcGF0Y2guCisKK0ZvciBhIGRlbW8gb2YgdGhp cyBwYXRjaCBpbiBhY3Rpb246CiskIHFlbXUtbmJkIC1mIHJhdyAtciAtdCAtZSAxMCBmaWxlICYK KyQgbmJkc2ggLS1vcHQtbW9kZSAtYyAnCitIID0gbGlzdCgpCitmb3IgaSBpbiByYW5nZSgyMCk6 CisgIHByaW50KGkpCisgIEguaW5zZXJ0KGksIG5iZC5OQkQoKSkKKyAgSFtpXS5zZXRfb3B0X21v ZGUoVHJ1ZSkKKyAgSFtpXS5jb25uZWN0X3VyaSgibmJkOi8vbG9jYWxob3N0IikKKycKKyQga2ls bCAkIQorCit3aGVyZSBsYXRlciBjb25uZWN0aW9ucyBnZXQgdG8gc3RhcnQgcHJvZ3Jlc3Npbmcg b25jZSBlYXJsaWVyIG9uZXMgYXJlCitmb3JjZWZ1bGx5IGRyb3BwZWQgZm9yIHRha2luZyB0b28g bG9uZywgcmF0aGVyIHRoYW4gaGFuZ2luZy4KKworU3VnZ2VzdGVkLWJ5OiBEYW5pZWwgUC4gQmVy cmFuZ8OpIDxiZXJyYW5nZUByZWRoYXQuY29tPgorU2lnbmVkLW9mZi1ieTogRXJpYyBCbGFrZSA8 ZWJsYWtlQHJlZGhhdC5jb20+CitNZXNzYWdlLUlEOiA8MjAyNDA4MDcxNzQ5NDMuNzcxNjI0LTEz LWVibGFrZUByZWRoYXQuY29tPgorUmV2aWV3ZWQtYnk6IERhbmllbCBQLiBCZXJyYW5nw6kgPGJl cnJhbmdlQHJlZGhhdC5jb20+CitbZWJsYWtlOiByZWJhc2UgdG8gY2hhbmdlcyBlYXJsaWVyIGlu IHNlcmllcywgcmVkdWNlIHNjb3BlIG9mIHRpbWVyXQorU2lnbmVkLW9mZi1ieTogRXJpYyBCbGFr ZSA8ZWJsYWtlQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiOWI3MmNi M2NlMTViNjkzMTQ4YmQwOWNlZjdlNTAxMTA1NjZkOGEwKQorU2lnbmVkLW9mZi1ieTogRmlvbmEg RWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+CistLS0KKyBuYmQvc2VydmVyLmMgICAgIHwgMjgg KysrKysrKysrKysrKysrKysrKysrKysrKysrLQorIG5iZC90cmFjZS1ldmVudHMgfCAgMSArCisg MiBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYg LS1naXQgYS9uYmQvc2VydmVyLmMgYi9uYmQvc2VydmVyLmMKK2luZGV4IGU1MDAxMjQ5OWYuLjM5 Mjg1Y2M5NzEgMTAwNjQ0CistLS0gYS9uYmQvc2VydmVyLmMKKysrKyBiL25iZC9zZXJ2ZXIuYwor QEAgLTMxODYsMjIgKzMxODYsNDggQEAgc3RhdGljIHZvaWQgbmJkX2NsaWVudF9yZWNlaXZlX25l eHRfcmVxdWVzdChOQkRDbGllbnQgKmNsaWVudCkKKyAgICAgfQorIH0KKyAKKytzdGF0aWMgdm9p ZCBuYmRfaGFuZHNoYWtlX3RpbWVyX2NiKHZvaWQgKm9wYXF1ZSkKKyt7CisrICAgIFFJT0NoYW5u ZWwgKmlvYyA9IG9wYXF1ZTsKKysKKysgICAgdHJhY2VfbmJkX2hhbmRzaGFrZV90aW1lcl9jYigp OworKyAgICBxaW9fY2hhbm5lbF9zaHV0ZG93bihpb2MsIFFJT19DSEFOTkVMX1NIVVRET1dOX0JP VEgsIE5VTEwpOworK30KKysKKyBzdGF0aWMgY29yb3V0aW5lX2ZuIHZvaWQgbmJkX2NvX2NsaWVu dF9zdGFydCh2b2lkICpvcGFxdWUpCisgeworICAgICBOQkRDbGllbnQgKmNsaWVudCA9IG9wYXF1 ZTsKKyAgICAgRXJyb3IgKmxvY2FsX2VyciA9IE5VTEw7CisrICAgIFFFTVVUaW1lciAqaGFuZHNo YWtlX3RpbWVyID0gTlVMTDsKKyAKKyAgICAgcWVtdV9jb19tdXRleF9pbml0KCZjbGllbnQtPnNl bmRfbG9jayk7CisgCistICAgIC8qIFRPRE8gLSB1dGlsaXplIGNsaWVudC0+aGFuZHNoYWtlX21h eF9zZWNzICovCisrICAgIC8qCisrICAgICAqIENyZWF0ZSBhIHRpbWVyIHRvIGJvdW5kIHRoZSB0 aW1lIHNwZW50IGluIG5lZ290aWF0aW9uLiBJZiB0aGUKKysgICAgICogdGltZXIgZXhwaXJlcywg aXQgaXMgbGlrZWx5IG5iZF9uZWdvdGlhdGUgd2lsbCBmYWlsIGJlY2F1c2UgdGhlCisrICAgICAq IHNvY2tldCB3YXMgc2h1dGRvd24uCisrICAgICAqLworKyAgICBpZiAoY2xpZW50LT5oYW5kc2hh a2VfbWF4X3NlY3MgPiAwKSB7CisrICAgICAgICBoYW5kc2hha2VfdGltZXIgPSBhaW9fdGltZXJf bmV3KHFlbXVfZ2V0X2Fpb19jb250ZXh0KCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFFTVVfQ0xPQ0tfUkVBTFRJTUUsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNDQUxFX05TLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYmRfaGFuZHNoYWtlX3RpbWVyX2NiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQtPnNpb2MpOworKyAgICAgICAgdGltZXJfbW9k KGhhbmRzaGFrZV90aW1lciwKKysgICAgICAgICAgICAgICAgICBxZW11X2Nsb2NrX2dldF9ucyhR RU1VX0NMT0NLX1JFQUxUSU1FKSArCisrICAgICAgICAgICAgICAgICAgY2xpZW50LT5oYW5kc2hh a2VfbWF4X3NlY3MgKiBOQU5PU0VDT05EU19QRVJfU0VDT05EKTsKKysgICAgfQorKworICAgICBp ZiAobmJkX25lZ290aWF0ZShjbGllbnQsICZsb2NhbF9lcnIpKSB7CisgICAgICAgICBpZiAobG9j YWxfZXJyKSB7CisgICAgICAgICAgICAgZXJyb3JfcmVwb3J0X2Vycihsb2NhbF9lcnIpOworICAg ICAgICAgfQorKyAgICAgICAgdGltZXJfZnJlZShoYW5kc2hha2VfdGltZXIpOworICAgICAgICAg Y2xpZW50X2Nsb3NlKGNsaWVudCwgZmFsc2UpOworICAgICAgICAgcmV0dXJuOworICAgICB9Cisg CisrICAgIHRpbWVyX2ZyZWUoaGFuZHNoYWtlX3RpbWVyKTsKKyAgICAgV0lUSF9RRU1VX0xPQ0tf R1VBUkQoJmNsaWVudC0+bG9jaykgeworICAgICAgICAgbmJkX2NsaWVudF9yZWNlaXZlX25leHRf cmVxdWVzdChjbGllbnQpOworICAgICB9CitkaWZmIC0tZ2l0IGEvbmJkL3RyYWNlLWV2ZW50cyBi L25iZC90cmFjZS1ldmVudHMKK2luZGV4IDAwYWUzMjE2YTEuLmNiZDBhNGFiN2UgMTAwNjQ0Cist LS0gYS9uYmQvdHJhY2UtZXZlbnRzCisrKysgYi9uYmQvdHJhY2UtZXZlbnRzCitAQCAtNzYsNiAr NzYsNyBAQCBuYmRfY29fcmVjZWl2ZV9yZXF1ZXN0X3BheWxvYWRfcmVjZWl2ZWQodWludDY0X3Qg Y29va2llLCB1aW50NjRfdCBsZW4pICJQYXlsb2FkCisgbmJkX2NvX3JlY2VpdmVfZXh0X3BheWxv YWRfY29tcGxpYW5jZSh1aW50NjRfdCBmcm9tLCB1aW50NjRfdCBsZW4pICJjbGllbnQgc2VudCBu b24tY29tcGxpYW50IHdyaXRlIHdpdGhvdXQgcGF5bG9hZCBmbGFnOiBmcm9tPTB4JSIgUFJJeDY0 ICIsIGxlbj0weCUiIFBSSXg2NAorIG5iZF9jb19yZWNlaXZlX2FsaWduX2NvbXBsaWFuY2UoY29u c3QgY2hhciAqb3AsIHVpbnQ2NF90IGZyb20sIHVpbnQ2NF90IGxlbiwgdWludDMyX3QgYWxpZ24p ICJjbGllbnQgc2VudCBub24tY29tcGxpYW50IHVuYWxpZ25lZCAlcyByZXF1ZXN0OiBmcm9tPTB4 JSIgUFJJeDY0ICIsIGxlbj0weCUiIFBSSXg2NCAiLCBhbGlnbj0weCUiIFBSSXgzMgorIG5iZF90 cmlwKHZvaWQpICJSZWFkaW5nIHJlcXVlc3QiCisrbmJkX2hhbmRzaGFrZV90aW1lcl9jYih2b2lk KSAiY2xpZW50IHRvb2sgdG9vIGxvbmcgdG8gbmVnb3RpYXRlIgorIAorICMgY2xpZW50LWNvbm5l Y3Rpb24uYworIG5iZF9jb25uZWN0X3RocmVhZF9zbGVlcCh1aW50NjRfdCB0aW1lb3V0KSAidGlt ZW91dCAlIiBQUkl1NjQKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMzMtbmJk LXNlcnZlci1DVkUtMjAyNC03NDA5LUNsb3NlLXN0cmF5LWNsaWVudHMtYXQtc2Vydi5wYXRjaCBi L2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMzMtbmJkLXNlcnZlci1DVkUtMjAyNC03NDA5LUNsb3Nl LXN0cmF5LWNsaWVudHMtYXQtc2Vydi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4xZDE2YTUyCi0tLSAvZGV2L251bGwKKysrIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEv MDAzMy1uYmQtc2VydmVyLUNWRS0yMDI0LTc0MDktQ2xvc2Utc3RyYXktY2xpZW50cy1hdC1zZXJ2 LnBhdGNoCkBAIC0wLDAgKzEsMTYxIEBACitGcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFcmljIEJsYWtl IDxlYmxha2VAcmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwgNyBBdWcgMjAyNCAxMjoyMzoxMyAtMDUw MAorU3ViamVjdDogW1BBVENIXSBuYmQvc2VydmVyOiBDVkUtMjAyNC03NDA5OiBDbG9zZSBzdHJh eSBjbGllbnRzIGF0IHNlcnZlci1zdG9wCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4 Yml0CisKK0EgbWFsaWNpb3VzIGNsaWVudCBjYW4gYXR0ZW1wdCB0byBjb25uZWN0IHRvIGFuIE5C RCBzZXJ2ZXIsIGFuZCB0aGVuCitpbnRlbnRpb25hbGx5IGRlbGF5IHByb2dyZXNzIGluIHRoZSBo YW5kc2hha2UsIGluY2x1ZGluZyBpZiBpdCBkb2VzCitub3Qga25vdyB0aGUgVExTIHNlY3JldHMu ICBBbHRob3VnaCB0aGUgcHJldmlvdXMgdHdvIHBhdGNoZXMgcmVkdWNlCit0aGlzIGJlaGF2aW9y IGJ5IGNhcHBpbmcgdGhlIGRlZmF1bHQgbWF4LWNvbm5lY3Rpb25zIHBhcmFtZXRlciBhbmQKK2tp bGxpbmcgc2xvdyBjbGllbnRzLCB0aGV5IGRpZCBub3QgZWxpbWluYXRlIHRoZSBwb3NzaWJpbGl0 eSBvZiBhCitjbGllbnQgd2FpdGluZyB0byBjbG9zZSB0aGUgc29ja2V0IHVudGlsIGFmdGVyIHRo ZSBRTVAgbmJkLXNlcnZlci1zdG9wCitjb21tYW5kIGlzIGV4ZWN1dGVkLCBhdCB3aGljaCBwb2lu dCBxZW11IHdvdWxkIFNFR1Ygd2hlbiB0cnlpbmcgdG8KK2RlcmVmZXJlbmNlIHRoZSBOVUxMIG5i ZF9zZXJ2ZXIgZ2xvYmFsIHdoaWNoIGlzIG5vIGxvbmdlciBwcmVzZW50LgorVGhpcyBhbW91bnRz IHRvIGEgZGVuaWFsIG9mIHNlcnZpY2UgYXR0YWNrLiAgV29yc2UsIGlmIGFub3RoZXIgTkJECitz ZXJ2ZXIgaXMgc3RhcnRlZCBiZWZvcmUgdGhlIG1hbGljaW91cyBjbGllbnQgZGlzY29ubmVjdHMs IEkgY2Fubm90CitydWxlIG91dCBhZGRpdGlvbmFsIGFkdmVyc2UgZWZmZWN0cyB3aGVuIHRoZSBv bGQgY2xpZW50IGludGVyZmVyZXMKK3dpdGggdGhlIGNvbm5lY3Rpb24gY291bnQgb2YgdGhlIG5l dyBzZXJ2ZXIgKGFsdGhvdWdoIHRoZSBtb3N0IGxpa2VseQoraXMgYSBjcmFzaCBkdWUgdG8gYW4g YXNzZXJ0aW9uIGZhaWx1cmUgd2hlbiBjaGVja2luZworbmJkX3NlcnZlci0+Y29ubmVjdGlvbnMg PiAwKS4KKworRm9yIGVudmlyb25tZW50cyB3aXRob3V0IHRoaXMgcGF0Y2gsIHRoZSBDVkUgY2Fu IGJlIG1pdGlnYXRlZCBieQorZW5zdXJpbmcgKHN1Y2ggYXMgdmlhIGEgZmlyZXdhbGwpIHRoYXQg b25seSB0cnVzdGVkIGNsaWVudHMgY2FuCitjb25uZWN0IHRvIGFuIE5CRCBzZXJ2ZXIuICBOb3Rl IHRoYXQgdXNpbmcgZnJhbWV3b3JrcyBsaWtlIGxpYnZpcnQKK3RoYXQgZW5zdXJlIHRoYXQgVExT IGlzIHVzZWQgYW5kIHRoYXQgbmJkLXNlcnZlci1zdG9wIGlzIG5vdCBleGVjdXRlZAord2hpbGUg YW55IHRydXN0ZWQgY2xpZW50cyBhcmUgc3RpbGwgY29ubmVjdGVkIHdpbGwgb25seSBoZWxwIGlm IHRoZXJlCitpcyBhbHNvIG5vIHBvc3NpYmlsaXR5IGZvciBhbiB1bnRydXN0ZWQgY2xpZW50IHRv IG9wZW4gYSBjb25uZWN0aW9uCitidXQgdGhlbiBzdGFsbCBvbiB0aGUgTkJEIGhhbmRzaGFrZS4K KworR2l2ZW4gdGhlIHByZXZpb3VzIHBhdGNoZXMsIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGd1 YXJhbnRlZSB0aGF0IG5vCitjbGllbnRzIHJlbWFpbiBjb25uZWN0ZWQgYnkgaGF2aW5nIG5iZC1z ZXJ2ZXItc3RvcCBzbGVlcCBmb3IgbG9uZ2VyCit0aGFuIHRoZSBkZWZhdWx0IGhhbmRzaGFrZSBk ZWFkbGluZSBiZWZvcmUgZmluYWxseSBmcmVlaW5nIHRoZSBnbG9iYWwKK25iZF9zZXJ2ZXIgb2Jq ZWN0LCBidXQgdGhhdCBjb3VsZCBtYWtlIFFNUCBub24tcmVzcG9uc2l2ZSBmb3IgYSBsb25nCit0 aW1lLiAgU28gaW50ZWFkLCB0aGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtIGJ5IHRyYWNraW5n IGFsbCBjbGllbnQKK3NvY2tldHMgb3BlbmVkIHdoaWxlIHRoZSBzZXJ2ZXIgaXMgcnVubmluZywg YW5kIGZvcmNlZnVsbHkgY2xvc2luZyBhbnkKK3N1Y2ggc29ja2V0cyByZW1haW5pbmcgd2l0aG91 dCBhIGNvbXBsZXRlZCBoYW5kc2hha2UgYXQgdGhlIHRpbWUgb2YKK25iZC1zZXJ2ZXItc3RvcCwg dGhlbiB3YWl0aW5nIHVudGlsIHRoZSBjb3JvdXRpbmVzIHNlcnZpY2luZyB0aG9zZQorc29ja2V0 cyBub3RpY2UgdGhlIHN0YXRlIGNoYW5nZS4gIG5iZC1zZXJ2ZXItc3RvcCBub3cgaGFzIGEgc2Vj b25kCitBSU9fV0FJVF9XSElMRV9VTkxPQ0tFRCAodGhlIGZpcnN0IGlzIGluZGlyZWN0bHkgdGhy b3VnaCB0aGUKK2Jsa19leHBfY2xvc2VfYWxsX3R5cGUoKSB0aGF0IGRpc2Nvbm5lY3RzIGFsbCBj bGllbnRzIHRoYXQgY29tcGxldGVkCitoYW5kc2hha2VzKSwgYnV0IGZvcmNlZCBzb2NrZXQgc2h1 dGRvd24gaXMgZW5vdWdoIHRvIHByb2dyZXNzIHRoZQorY29yb3V0aW5lcyBhbmQgcXVpY2tseSB0 ZWFyIGRvd24gYWxsIGNsaWVudHMgYmVmb3JlIHRoZSBzZXJ2ZXIgaXMKK2ZyZWVkLCB0aHVzIGZp bmFsbHkgZml4aW5nIHRoZSBDVkUuCisKK1RoaXMgcGF0Y2ggcmVsaWVzIGhlYXZpbHkgb24gdGhl IGZhY3QgdGhhdCBuYmQvc2VydmVyLmMgZ3VhcmFudGVlcwordGhhdCBpdCBvbmx5IGNhbGxzIG5i ZF9ibG9ja2Rldl9jbGllbnRfY2xvc2VkKCkgZnJvbSB0aGUgbWFpbiBsb29wCisoc2VlIHRoZSBh c3NlcnRpb24gaW4gbmJkX2NsaWVudF9wdXQoKSBhbmQgdGhlIGhvb3BzIHVzZWQgaW4KK25iZF9j bGllbnRfcHV0X25vbnplcm8oKSB0byBhY2hpZXZlIHRoYXQpOyBpZiB3ZSBkaWQgbm90IGhhdmUg dGhhdAorZ3VhcmFudGVlLCB3ZSB3b3VsZCBhbHNvIG5lZWQgYSBtdXRleCBwcm90ZWN0aW5nIG91 ciBhY2Nlc3NlcyBvZiB0aGUKK2xpc3Qgb2YgY29ubmVjdGlvbnMgdG8gc3Vydml2ZSByZS1lbnRy YW5jeSBmcm9tIGluZGVwZW5kZW50IGlvdGhyZWFkcy4KKworQWx0aG91Z2ggSSBkaWQgbm90IGFj dHVhbGx5IHRyeSB0byB0ZXN0IG9sZCBidWlsZHMsIGl0IGxvb2tzIGxpa2UgdGhpcworcHJvYmxl bSBoYXMgZXhpc3RlZCBzaW5jZSBhdCBsZWFzdCBjb21taXQgODYyMTcyZjQ1YyAodjIuMTIuMCwg MjAxNykgLQorZXZlbiBiYWNrIHdoZW4gdGhhdCBwYXRjaCBzdGFydGVkIHVzaW5nIGEgUUlPTmV0 TGlzdGVuZXIgdG8gaGFuZGxlCitsaXN0ZW5pbmcgb24gbXVsdGlwbGUgc29ja2V0cywgbmJkX3Nl cnZlcl9mcmVlKCkgd2FzIGFscmVhZHkgdW5hd2FyZQordGhhdCB0aGUgbmJkX2Jsb2NrZGV2X2Ns aWVudF9jbG9zZWQgY2FsbGJhY2sgY2FuIGJlIHJlYWNoZWQgbGF0ZXIgYnkgYQorY2xpZW50IHRo cmVhZCB0aGF0IGhhcyBub3QgY29tcGxldGVkIGhhbmRzaGFrZXMgKGFuZCB0aGVyZWZvcmUgdGhl CitjbGllbnQncyBzb2NrZXQgbmV2ZXIgZ290IGFkZGVkIHRvIHRoZSBsaXN0IGNsb3NlZCBpbgor bmJkX2V4cG9ydF9jbG9zZV9hbGwpLCBkZXNwaXRlIHRoYXQgcGF0Y2ggaW50ZW50aW9uYWxseSB0 ZWFyaW5nIGRvd24KK3RoZSBRSU9OZXRMaXN0ZW5lciB0byBwcmV2ZW50IG5ldyBjbGllbnRzLgor CitSZXBvcnRlZC1ieTogQWxleGFuZGVyIEl2YW5vdiA8YWxleGFuZGVyLml2YW5vdkB2aXJ0dW96 em8uY29tPgorRml4ZXM6IENWRS0yMDI0LTc0MDkKK0NDOiBxZW11LXN0YWJsZUBub25nbnUub3Jn CitTaWduZWQtb2ZmLWJ5OiBFcmljIEJsYWtlIDxlYmxha2VAcmVkaGF0LmNvbT4KK01lc3NhZ2Ut SUQ6IDwyMDI0MDgwNzE3NDk0My43NzE2MjQtMTQtZWJsYWtlQHJlZGhhdC5jb20+CitSZXZpZXdl ZC1ieTogRGFuaWVsIFAuIEJlcnJhbmfDqSA8YmVycmFuZ2VAcmVkaGF0LmNvbT4KKyhjaGVycnkg cGlja2VkIGZyb20gY29tbWl0IDNlN2VmNzM4Yzg0NjJjNDUwNDNhMWQzOWY3MDJhMDk5MDQwNmEz YjMpCitTaWduZWQtb2ZmLWJ5OiBGaW9uYSBFYm5lciA8Zi5lYm5lckBwcm94bW94LmNvbT4KKy0t LQorIGJsb2NrZGV2LW5iZC5jIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KKyAxIGZpbGUgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitk aWZmIC0tZ2l0IGEvYmxvY2tkZXYtbmJkLmMgYi9ibG9ja2Rldi1uYmQuYworaW5kZXggMjRiYTUz ODJkYi4uZjczNDA5YWU0OSAxMDA2NDQKKy0tLSBhL2Jsb2NrZGV2LW5iZC5jCisrKysgYi9ibG9j a2Rldi1uYmQuYworQEAgLTIxLDEyICsyMSwxOCBAQAorICNpbmNsdWRlICJpby9jaGFubmVsLXNv Y2tldC5oIgorICNpbmNsdWRlICJpby9uZXQtbGlzdGVuZXIuaCIKKyAKKyt0eXBlZGVmIHN0cnVj dCBOQkRDb25uIHsKKysgICAgUUlPQ2hhbm5lbFNvY2tldCAqY2lvYzsKKysgICAgUUxJU1RfRU5U UlkoTkJEQ29ubikgbmV4dDsKKyt9IE5CRENvbm47CisrCisgdHlwZWRlZiBzdHJ1Y3QgTkJEU2Vy dmVyRGF0YSB7CisgICAgIFFJT05ldExpc3RlbmVyICpsaXN0ZW5lcjsKKyAgICAgUUNyeXB0b1RM U0NyZWRzICp0bHNjcmVkczsKKyAgICAgY2hhciAqdGxzYXV0aHo7CisgICAgIHVpbnQzMl90IG1h eF9jb25uZWN0aW9uczsKKyAgICAgdWludDMyX3QgY29ubmVjdGlvbnM7CisrICAgIFFMSVNUX0hF QUQoLCBOQkRDb25uKSBjb25uczsKKyB9IE5CRFNlcnZlckRhdGE7CisgCisgc3RhdGljIE5CRFNl cnZlckRhdGEgKm5iZF9zZXJ2ZXI7CitAQCAtNTEsNiArNTcsMTQgQEAgaW50IG5iZF9zZXJ2ZXJf bWF4X2Nvbm5lY3Rpb25zKHZvaWQpCisgCisgc3RhdGljIHZvaWQgbmJkX2Jsb2NrZGV2X2NsaWVu dF9jbG9zZWQoTkJEQ2xpZW50ICpjbGllbnQsIGJvb2wgaWdub3JlZCkKKyB7CisrICAgIE5CRENv bm4gKmNvbm4gPSBuYmRfY2xpZW50X293bmVyKGNsaWVudCk7CisrCisrICAgIGFzc2VydChxZW11 X2luX21haW5fdGhyZWFkKCkgJiYgbmJkX3NlcnZlcik7CisrCisrICAgIG9iamVjdF91bnJlZihP QkpFQ1QoY29ubi0+Y2lvYykpOworKyAgICBRTElTVF9SRU1PVkUoY29ubiwgbmV4dCk7CisrICAg IGdfZnJlZShjb25uKTsKKysKKyAgICAgbmJkX2NsaWVudF9wdXQoY2xpZW50KTsKKyAgICAgYXNz ZXJ0KG5iZF9zZXJ2ZXItPmNvbm5lY3Rpb25zID4gMCk7CisgICAgIG5iZF9zZXJ2ZXItPmNvbm5l Y3Rpb25zLS07CitAQCAtNjAsMTQgKzc0LDIwIEBAIHN0YXRpYyB2b2lkIG5iZF9ibG9ja2Rldl9j bGllbnRfY2xvc2VkKE5CRENsaWVudCAqY2xpZW50LCBib29sIGlnbm9yZWQpCisgc3RhdGljIHZv aWQgbmJkX2FjY2VwdChRSU9OZXRMaXN0ZW5lciAqbGlzdGVuZXIsIFFJT0NoYW5uZWxTb2NrZXQg KmNpb2MsCisgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBvcGFxdWUpCisgeworKyAg ICBOQkRDb25uICpjb25uID0gZ19uZXcwKE5CRENvbm4sIDEpOworKworKyAgICBhc3NlcnQocWVt dV9pbl9tYWluX3RocmVhZCgpICYmIG5iZF9zZXJ2ZXIpOworICAgICBuYmRfc2VydmVyLT5jb25u ZWN0aW9ucysrOworKyAgICBvYmplY3RfcmVmKE9CSkVDVChjaW9jKSk7CisrICAgIGNvbm4tPmNp b2MgPSBjaW9jOworKyAgICBRTElTVF9JTlNFUlRfSEVBRCgmbmJkX3NlcnZlci0+Y29ubnMsIGNv bm4sIG5leHQpOworICAgICBuYmRfdXBkYXRlX3NlcnZlcl93YXRjaChuYmRfc2VydmVyKTsKKyAK KyAgICAgcWlvX2NoYW5uZWxfc2V0X25hbWUoUUlPX0NIQU5ORUwoY2lvYyksICJuYmQtc2VydmVy Iik7CisgICAgIC8qIFRPRE8gLSBleHBvc2UgaGFuZHNoYWtlIHRpbWVvdXQgYXMgUU1QIG9wdGlv biAqLworICAgICBuYmRfY2xpZW50X25ldyhjaW9jLCBOQkRfREVGQVVMVF9IQU5EU0hBS0VfTUFY X1NFQ1MsCisgICAgICAgICAgICAgICAgICAgIG5iZF9zZXJ2ZXItPnRsc2NyZWRzLCBuYmRfc2Vy dmVyLT50bHNhdXRoeiwKKy0gICAgICAgICAgICAgICAgICAgbmJkX2Jsb2NrZGV2X2NsaWVudF9j bG9zZWQsIE5VTEwpOworKyAgICAgICAgICAgICAgICAgICBuYmRfYmxvY2tkZXZfY2xpZW50X2Ns b3NlZCwgY29ubik7CisgfQorIAorIHN0YXRpYyB2b2lkIG5iZF91cGRhdGVfc2VydmVyX3dhdGNo KE5CRFNlcnZlckRhdGEgKnMpCitAQCAtODEsMTIgKzEwMSwyNSBAQCBzdGF0aWMgdm9pZCBuYmRf dXBkYXRlX3NlcnZlcl93YXRjaChOQkRTZXJ2ZXJEYXRhICpzKQorIAorIHN0YXRpYyB2b2lkIG5i ZF9zZXJ2ZXJfZnJlZShOQkRTZXJ2ZXJEYXRhICpzZXJ2ZXIpCisgeworKyAgICBOQkRDb25uICpj b25uLCAqdG1wOworKworICAgICBpZiAoIXNlcnZlcikgeworICAgICAgICAgcmV0dXJuOworICAg ICB9CisgCisrICAgIC8qCisrICAgICAqIEZvcmNlZnVsbHkgY2xvc2UgdGhlIGxpc3RlbmVyIHNv Y2tldCwgYW5kIGFueSBjbGllbnRzIHRoYXQgaGF2ZQorKyAgICAgKiBub3QgeWV0IGRpc2Nvbm5l Y3RlZCBvbiB0aGVpciBvd24uCisrICAgICAqLworICAgICBxaW9fbmV0X2xpc3RlbmVyX2Rpc2Nv bm5lY3Qoc2VydmVyLT5saXN0ZW5lcik7CisgICAgIG9iamVjdF91bnJlZihPQkpFQ1Qoc2VydmVy LT5saXN0ZW5lcikpOworKyAgICBRTElTVF9GT1JFQUNIX1NBRkUoY29ubiwgJnNlcnZlci0+Y29u bnMsIG5leHQsIHRtcCkgeworKyAgICAgICAgcWlvX2NoYW5uZWxfc2h1dGRvd24oUUlPX0NIQU5O RUwoY29ubi0+Y2lvYyksIFFJT19DSEFOTkVMX1NIVVRET1dOX0JPVEgsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMKTsKKysgICAgfQorKworKyAgICBBSU9fV0FJVF9XSElMRV9V TkxPQ0tFRChOVUxMLCBzZXJ2ZXItPmNvbm5lY3Rpb25zID4gMCk7CisrCisgICAgIGlmIChzZXJ2 ZXItPnRsc2NyZWRzKSB7CisgICAgICAgICBvYmplY3RfdW5yZWYoT0JKRUNUKHNlcnZlci0+dGxz Y3JlZHMpKTsKKyAgICAgfQpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzNC12 bmMtZml4LWNyYXNoLXdoZW4tbm8tY29uc29sZS1hdHRhY2hlZC5wYXRjaCBiL2RlYmlhbi9wYXRj aGVzL2V4dHJhLzAwMzQtdm5jLWZpeC1jcmFzaC13aGVuLW5vLWNvbnNvbGUtYXR0YWNoZWQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjViNWJlMAotLS0gL2Rldi9u dWxsCisrKyBiL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMzQtdm5jLWZpeC1jcmFzaC13aGVuLW5v LWNvbnNvbGUtYXR0YWNoZWQucGF0Y2gKQEAgLTAsMCArMSw0NyBAQAorRnJvbSAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogPT9VVEYtOD9xP01hcmMtQW5kcj1DMz1BOT0yMEx1cmVhdT89IDxtYXJjYW5kcmUubHVy ZWF1QHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDIwIEF1ZyAyMDI0IDE3OjExOjEyICswNDAwCitT dWJqZWN0OiBbUEFUQ0hdIHZuYzogZml4IGNyYXNoIHdoZW4gbm8gY29uc29sZSBhdHRhY2hlZAor TUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitTaW5jZSBjb21taXQgZTk5NDQx YTM3OTNiNSAoInVpL2N1cnNlczogRG8gbm90IHVzZSBjb25zb2xlX3NlbGVjdCgpIikKK3FlbXVf dGV4dF9jb25zb2xlX3B1dF9rZXlzeW0oKSBubyBsb25nZXIgY2hlY2tzIGZvciBOVUxMIGNvbnNv bGUKK2FyZ3VtZW50LCB3aGljaCBsZWFkcyB0byBhIGxhdGVyIGNyYXNoOgorCitUaHJlYWQgMSAi cWVtdS1zeXN0ZW0teDg2IiByZWNlaXZlZCBzaWduYWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZh dWx0LgorMHgwMDAwNTU1NTU1OWVlMTg2IGluIHFlbXVfdGV4dF9jb25zb2xlX2hhbmRsZV9rZXlz eW0gKHM9MHgwLCBrZXlzeW09MzEpIGF0IC4uL3VpL2NvbnNvbGUtdmMuYzozMzIKKzMzMgkgICAg ICAgIH0gZWxzZSBpZiAocy0+ZWNobyAmJiAoa2V5c3ltID09ICdccicgfHwga2V5c3ltID09ICdc bicpKSB7CisoZ2RiKSBidAorICMwICAweDAwMDA1NTU1NTU5ZWUxODYgaW4gcWVtdV90ZXh0X2Nv bnNvbGVfaGFuZGxlX2tleXN5bSAocz0weDAsIGtleXN5bT0zMSkgYXQgLi4vdWkvY29uc29sZS12 Yy5jOjMzMgorICMxICAweDAwMDA1NTU1NTU5ZTE4ZTUgaW4gcWVtdV90ZXh0X2NvbnNvbGVfcHV0 X2tleXN5bSAocz08b3B0aW1pemVkIG91dD4sIGtleXN5bT08b3B0aW1pemVkIG91dD4pIGF0IC4u L3VpL2NvbnNvbGUuYzozMDMKKyAjMiAgMHgwMDAwNTU1NTU1OWYyZTg4IGluIGRvX2tleV9ldmVu dCAodnM9dnNAZW50cnk9MHg1NTU1NTc5MDQ1YzAsIGRvd249ZG93bkBlbnRyeT0xLCBrZXljb2Rl PWtleWNvZGVAZW50cnk9NjAsIHN5bT1zeW1AZW50cnk9NjU0NzEpIGF0IC4uL3VpL3ZuYy5jOjIw MzQKKyAjMyAgMHgwMDAwNTU1NTU1OWY4NDVjIGluIGV4dF9rZXlfZXZlbnQgKHZzPTB4NTU1NTU3 OTA0NWMwLCBkb3duPTEsIHN5bT02NTQ3MSwga2V5Y29kZT08b3B0aW1pemVkIG91dD4pIGF0IC4u L3VpL3ZuYy5jOjIwNzAKKyAjNCAgcHJvdG9jb2xfY2xpZW50X21zZyAodnM9MHg1NTU1NTc5MDQ1 YzAsIGRhdGE9PG9wdGltaXplZCBvdXQ+LCBsZW49PG9wdGltaXplZCBvdXQ+KSBhdCAuLi91aS92 bmMuYzoyNTE0CisgIzUgIDB4MDAwMDU1NTU1NTlmNTE1YyBpbiB2bmNfY2xpZW50X3JlYWQgKHZz PTB4NTU1NTU3OTA0NWMwKSBhdCAuLi91aS92bmMuYzoxNjA3CisKK0ZpeGVzOiBlOTk0NDFhMzc5 M2I1ICgidWkvY3Vyc2VzOiBEbyBub3QgdXNlIGNvbnNvbGVfc2VsZWN0KCkiKQorRml4ZXM6IGh0 dHBzOi8vaXNzdWVzLnJlZGhhdC5jb20vYnJvd3NlL1JIRUwtNTA1MjkKK0NjOiBxZW11LXN0YWJs ZUBub25nbnUub3JnCitTaWduZWQtb2ZmLWJ5OiBNYXJjLUFuZHLDqSBMdXJlYXUgPG1hcmNhbmRy ZS5sdXJlYXVAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBBa2loaWtvIE9kYWtpIDxha2loaWtv Lm9kYWtpQGRheW5peC5jb20+CisocGlja2VkIGZyb20gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv cWVtdS1kZXZlbC8yMDI0MDgyMDEzMTExMi4xMjY3OTU0LTEtbWFyY2FuZHJlLmx1cmVhdUByZWRo YXQuY29tLykKK1NpZ25lZC1vZmYtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHByb3htb3guY29t PgorLS0tCisgdWkvdm5jLmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS91aS92bmMuYyBiL3VpL3ZuYy5jCitpbmRl eCBiM2ZkNzgwMjJiLi45NTNlYTM4MzE4IDEwMDY0NAorLS0tIGEvdWkvdm5jLmMKKysrKyBiL3Vp L3ZuYy5jCitAQCAtMTkzNSw3ICsxOTM1LDcgQEAgc3RhdGljIHZvaWQgZG9fa2V5X2V2ZW50KFZu Y1N0YXRlICp2cywgaW50IGRvd24sIGludCBrZXljb2RlLCBpbnQgc3ltKQorICAgICB9CisgCisg ICAgIHFrYmRfc3RhdGVfa2V5X2V2ZW50KHZzLT52ZC0+a2JkLCBxY29kZSwgZG93bik7CistICAg IGlmICghcWVtdV9jb25zb2xlX2lzX2dyYXBoaWModnMtPnZkLT5kY2wuY29uKSkgeworKyAgICBp ZiAoUUVNVV9JU19URVhUX0NPTlNPTEUodnMtPnZkLT5kY2wuY29uKSkgeworICAgICAgICAgUWVt dVRleHRDb25zb2xlICpjb24gPSBRRU1VX1RFWFRfQ09OU09MRSh2cy0+dmQtPmRjbC5jb24pOwor ICAgICAgICAgYm9vbCBudW1sb2NrID0gcWtiZF9zdGF0ZV9tb2RpZmllcl9nZXQodnMtPnZkLT5r YmQsIFFLQkRfTU9EX05VTUxPQ0spOworICAgICAgICAgYm9vbCBjb250cm9sID0gcWtiZF9zdGF0 ZV9tb2RpZmllcl9nZXQodnMtPnZkLT5rYmQsIFFLQkRfTU9EX0NUUkwpOwpkaWZmIC0tZ2l0IGEv ZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzNS1uYmQtc2VydmVyLUNWRS0yMDI0LTc0MDktQXZvaWQt dXNlLWFmdGVyLWZyZWUtd2hlbi1jLnBhdGNoIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzNS1u YmQtc2VydmVyLUNWRS0yMDI0LTc0MDktQXZvaWQtdXNlLWFmdGVyLWZyZWUtd2hlbi1jLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MGE0MzgKLS0tIC9kZXYvbnVs bAorKysgYi9kZWJpYW4vcGF0Y2hlcy9leHRyYS8wMDM1LW5iZC1zZXJ2ZXItQ1ZFLTIwMjQtNzQw OS1Bdm9pZC11c2UtYWZ0ZXItZnJlZS13aGVuLWMucGF0Y2gKQEAgLTAsMCArMSw4OSBAQAorRnJv bSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+CitEYXRlOiBU aHUsIDIyIEF1ZyAyMDI0IDA5OjM1OjI5IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIG5iZC9zZXJ2 ZXI6IENWRS0yMDI0LTc0MDk6IEF2b2lkIHVzZS1hZnRlci1mcmVlIHdoZW4gY2xvc2luZworIHNl cnZlcgorCitDb21taXQgM2U3ZWY3MzggcGx1Z2dlZCB0aGUgdXNlLWFmdGVyLWZyZWUgb2YgdGhl IGdsb2JhbCBuYmRfc2VydmVyCitvYmplY3QsIGJ1dCBvdmVybG9va2VkIGEgdXNlLWFmdGVyLWZy ZWUgb2YgbmJkX3NlcnZlci0+bGlzdGVuZXIuCitBbHRob3VnaCB0aGlzIHJhY2UgaXMgaGFyZGVy IHRvIGhpdCwgbm90aWNlIHRoYXQgb3VyIHNodXRkb3duIHBhdGgKK2ZpcnN0IGRyb3BzIHRoZSBy ZWZlcmVuY2UgY291bnQgb2YgbmJkX3NlcnZlci0+bGlzdGVuZXIsIHRoZW4gdHJpZ2dlcnMKK2Fj dGlvbnMgdGhhdCBjYW4gcmVzdWx0IGluIGEgcGVuZGluZyBjbGllbnQgcmVhY2hpbmcgdGhlCitu YmRfYmxvY2tkZXZfY2xpZW50X2Nsb3NlZCgpIGNhbGxiYWNrLCB3aGljaCBpbiB0dXJuIGNhbGxz CitxaW9fbmV0X2xpc3RlbmVyX3NldF9jbGllbnRfZnVuYyBvbiBhIHBvdGVudGlhbGx5IHN0YWxl IG9iamVjdC4KKworSWYgd2Uga25vdyB3ZSBkb24ndCB3YW50IGFueSBtb3JlIGNsaWVudHMgdG8g Y29ubmVjdCwgYW5kIGhhdmUgYWxyZWFkeQordG9sZCB0aGUgbGlzdGVuZXIgc29ja2V0IHRvIHNo dXQgZG93biwgdGhlbiB3ZSBzaG91bGQgbm90IGJlIHRyeWluZyB0bwordXBkYXRlIHRoZSBsaXN0 ZW5lciBzb2NrZXQncyBhc3NvY2lhdGVkIGZ1bmN0aW9uLgorCitSZXByb2R1Y2VyOgorCis+ICMh L3Vzci9iaW4vcHl0aG9uMworPgorPiBpbXBvcnQgb3MKKz4gZnJvbSB0aHJlYWRpbmcgaW1wb3J0 IFRocmVhZAorPgorPiBkZWYgc3RhcnRfc3RvcCgpOgorPiAgICAgd2hpbGUgMToKKz4gICAgICAg ICBvcy5zeXN0ZW0oJ3ZpcnNoIHFlbXUtbW9uaXRvci1jb21tYW5kIFZNIFwneyJleGVjdXRlIjog Im5iZC1zZXJ2ZXItc3RhcnQiLAorKyJhcmd1bWVudHMiOnsiYWRkciI6eyJ0eXBlIjoidW5peCIs ImRhdGEiOnsicGF0aCI6Ii90bXAvbmJkLXNvY2sifX19fVwnJykKKz4gICAgICAgICBvcy5zeXN0 ZW0oJ3ZpcnNoIHFlbXUtbW9uaXRvci1jb21tYW5kIFZNIFwneyJleGVjdXRlIjogIm5iZC1zZXJ2 ZXItc3RvcCJ9XCcnKQorPgorPiBkZWYgbmJkX2xpc3QoKToKKz4gICAgIHdoaWxlIDE6Cis+ICAg ICAgICAgb3Muc3lzdGVtKCcvcGF0aC90by9idWlsZC9xZW11LW5iZCAtTCAtayAvdG1wL25iZC1z b2NrJykKKz4KKz4gZGVmIHRlc3QoKToKKz4gICAgIHNzdCA9IFRocmVhZCh0YXJnZXQ9c3RhcnRf c3RvcCkKKz4gICAgIHNzdC5zdGFydCgpCis+ICAgICBubHQgPSBUaHJlYWQodGFyZ2V0PW5iZF9s aXN0KQorPiAgICAgbmx0LnN0YXJ0KCkKKz4KKz4gICAgIHNzdC5qb2luKCkKKz4gICAgIG5sdC5q b2luKCkKKz4KKz4gdGVzdCgpCisKK0ZpeGVzOiBDVkUtMjAyNC03NDA5CitGaXhlczogM2U3ZWY3 MzhjOCAoIm5iZC9zZXJ2ZXI6IENWRS0yMDI0LTc0MDk6IENsb3NlIHN0cmF5IGNsaWVudHMgYXQg c2VydmVyLXN0b3AiKQorQ0M6IHFlbXUtc3RhYmxlQG5vbmdudS5vcmcKK1JlcG9ydGVkLWJ5OiBB bmRyZXkgRHJvYnlzaGV2IDxhbmRyZXkuZHJvYnlzaGV2QHZpcnR1b3p6by5jb20+CitTaWduZWQt b2ZmLWJ5OiBFcmljIEJsYWtlIDxlYmxha2VAcmVkaGF0LmNvbT4KK01lc3NhZ2UtSUQ6IDwyMDI0 MDgyMjE0MzYxNy44MDA0MTktMi1lYmxha2VAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBTdGVm YW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNv bW1pdCAzODc0ZjVmNzNjNDQxYzUyZjFjNjk5Yzg0OGQ0NjNiMGVkYTAxZTRjKQorU2lnbmVkLW9m Zi1ieTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+CistLS0KKyBibG9ja2Rldi1u YmQuYyB8IDEyICsrKysrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ibG9ja2Rldi1uYmQuYyBiL2Jsb2NrZGV2 LW5iZC5jCitpbmRleCBmNzM0MDlhZTQ5Li5iMzZmNDFiN2M1IDEwMDY0NAorLS0tIGEvYmxvY2tk ZXYtbmJkLmMKKysrKyBiL2Jsb2NrZGV2LW5iZC5jCitAQCAtOTIsMTAgKzkyLDEzIEBAIHN0YXRp YyB2b2lkIG5iZF9hY2NlcHQoUUlPTmV0TGlzdGVuZXIgKmxpc3RlbmVyLCBRSU9DaGFubmVsU29j a2V0ICpjaW9jLAorIAorIHN0YXRpYyB2b2lkIG5iZF91cGRhdGVfc2VydmVyX3dhdGNoKE5CRFNl cnZlckRhdGEgKnMpCisgeworLSAgICBpZiAoIXMtPm1heF9jb25uZWN0aW9ucyB8fCBzLT5jb25u ZWN0aW9ucyA8IHMtPm1heF9jb25uZWN0aW9ucykgeworLSAgICAgICAgcWlvX25ldF9saXN0ZW5l cl9zZXRfY2xpZW50X2Z1bmMocy0+bGlzdGVuZXIsIG5iZF9hY2NlcHQsIE5VTEwsIE5VTEwpOwor LSAgICB9IGVsc2UgeworLSAgICAgICAgcWlvX25ldF9saXN0ZW5lcl9zZXRfY2xpZW50X2Z1bmMo cy0+bGlzdGVuZXIsIE5VTEwsIE5VTEwsIE5VTEwpOworKyAgICBpZiAocy0+bGlzdGVuZXIpIHsK KysgICAgICAgIGlmICghcy0+bWF4X2Nvbm5lY3Rpb25zIHx8IHMtPmNvbm5lY3Rpb25zIDwgcy0+ bWF4X2Nvbm5lY3Rpb25zKSB7CisrICAgICAgICAgICAgcWlvX25ldF9saXN0ZW5lcl9zZXRfY2xp ZW50X2Z1bmMocy0+bGlzdGVuZXIsIG5iZF9hY2NlcHQsIE5VTEwsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisrICAgICAgICB9IGVsc2Ugewor KyAgICAgICAgICAgIHFpb19uZXRfbGlzdGVuZXJfc2V0X2NsaWVudF9mdW5jKHMtPmxpc3RlbmVy LCBOVUxMLCBOVUxMLCBOVUxMKTsKKysgICAgICAgIH0KKyAgICAgfQorIH0KKyAKK0BAIC0xMTMs NiArMTE2LDcgQEAgc3RhdGljIHZvaWQgbmJkX3NlcnZlcl9mcmVlKE5CRFNlcnZlckRhdGEgKnNl cnZlcikKKyAgICAgICovCisgICAgIHFpb19uZXRfbGlzdGVuZXJfZGlzY29ubmVjdChzZXJ2ZXIt Pmxpc3RlbmVyKTsKKyAgICAgb2JqZWN0X3VucmVmKE9CSkVDVChzZXJ2ZXItPmxpc3RlbmVyKSk7 CisrICAgIHNlcnZlci0+bGlzdGVuZXIgPSBOVUxMOworICAgICBRTElTVF9GT1JFQUNIX1NBRkUo Y29ubiwgJnNlcnZlci0+Y29ubnMsIG5leHQsIHRtcCkgeworICAgICAgICAgcWlvX2NoYW5uZWxf c2h1dGRvd24oUUlPX0NIQU5ORUwoY29ubi0+Y2lvYyksIFFJT19DSEFOTkVMX1NIVVRET1dOX0JP VEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKZGlmZiAtLWdpdCBhL2Rl Ymlhbi9wYXRjaGVzL2V4dHJhLzAwMzYtc29mdG1tdS1waHlzbWVtLWZpeC1tZW1vcnktbGVhay1p bi1kaXJ0eV9tZW1vcnlfZXh0ZS5wYXRjaCBiL2RlYmlhbi9wYXRjaGVzL2V4dHJhLzAwMzYtc29m dG1tdS1waHlzbWVtLWZpeC1tZW1vcnktbGVhay1pbi1kaXJ0eV9tZW1vcnlfZXh0ZS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTg1NzQ0Ci0tLSAvZGV2L251bGwK KysrIGIvZGViaWFuL3BhdGNoZXMvZXh0cmEvMDAzNi1zb2Z0bW11LXBoeXNtZW0tZml4LW1lbW9y eS1sZWFrLWluLWRpcnR5X21lbW9yeV9leHRlLnBhdGNoCkBAIC0wLDAgKzEsMTM0IEBACitGcm9t IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBEYXZpZCBIaWxkZW5icmFuZCA8ZGF2aWRAcmVkaGF0LmNvbT4KK0Rh dGU6IFdlZCwgMjggQXVnIDIwMjQgMTE6MDc6NDMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gc29m dG1tdS9waHlzbWVtOiBmaXggbWVtb3J5IGxlYWsgaW4gZGlydHlfbWVtb3J5X2V4dGVuZCgpCitN SU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0FzIHJlcG9ydGVkIGJ5IFBldGVy LCB3ZSBtaWdodCBiZSBsZWFraW5nIG1lbW9yeSB3aGVuIHJlbW92aW5nIHRoZQoraGlnaGVzdCBS QU1CbG9jayAoaW4gdGhlIHdlaXJkIHJhbV9hZGRyX3Qgc3BhY2UpLCBhbmQgYWRkaW5nIGEgbmV3 IG9uZS4KKworV2Ugd2lsbCBmYWlsIHRvIHJlYWxpemUgdGhhdCB3ZSBhbHJlYWR5IGFsbG9jYXRl ZCBiaXRtYXBzIGZvciBtb3JlCitkaXJ0eSBtZW1vcnkgYmxvY2tzLCBhbmQgZWZmZWN0aXZlbHkg ZGlzY2FyZCB0aGUgcG9pbnRlcnMgdG8gdGhlbS4KKworRml4IGl0IGJ5IGdldHRpbmcgcmlkIG9m IGxhc3RfcmFtX3BhZ2UoKSBhbmQgYnkgcmVtZW1iZXJpbmcgdGhlIG51bWJlcgorb2YgZGlydHkg bWVtb3J5IGJsb2NrcyB0aGF0IGhhdmUgYmVlbiBhbGxvY2F0ZWQgYWxyZWFkeS4KKworV2hpbGUg YXQgaXQsIGxldCdzIHVzZSAidW5zaWduZWQgaW50IiBmb3IgdGhlIG51bWJlciBvZiBibG9ja3Ms IHdoaWNoCitzaG91bGQgYmUgc3VmZmljaWVudCB1bnRpbCB3ZSByZWFjaCB+MzIgZXhhYnl0ZXMu CisKK0xvb2tzIGxpa2UgdGhpcyBsZWFrIHdhcyBpbnRyb2R1Y2VkIGFzIHdlIHN3aXRjaGVkIGZy b20gdXNpbmcgYSBzaW5nbGUKK2JpdG1hcF96ZXJvX2V4dGVuZCgpIHRvIGFsbG9jYXRpbmcgbXVs dGlwbGUgYml0bWFwczoKK2JpdG1hcF96ZXJvX2V4dGVuZCgpIHJlbGllcyBvbiBnX3JlbmV3KCkg d2hpY2ggc2hvdWxkIGhhdmUgdGFrZW4gY2FyZSBvZgordGhpcy4KKworUmVzb2x2ZXM6IGh0dHBz Oi8vbGttbC5rZXJuZWwub3JnL3IvQ0FGRUFjQS1rN2ErVk9iR0FmQ0ZOeWdRTmZDS0w9QWZYNkE0 a1NjcT1WU1NLMHBlcVBnQG1haWwuZ21haWwuY29tCitSZXBvcnRlZC1ieTogUGV0ZXIgTWF5ZGVs bCA8cGV0ZXIubWF5ZGVsbEBsaW5hcm8ub3JnPgorRml4ZXM6IDViODJiNzAzYjY5YSAoIm1lbW9y eTogUkNVIHJhbV9saXN0LmRpcnR5X21lbW9yeVtdIGZvciBzYWZlIFJBTSBob3RwbHVnIikKK1Jl dmlld2VkLWJ5OiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+CitSZXZpZXdl ZC1ieTogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBQZXRlciBNYXlk ZWxsIDxwZXRlci5tYXlkZWxsQGxpbmFyby5vcmc+CitDYzogcWVtdS1zdGFibGVAbm9uZ251Lm9y ZworQ2M6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT4KK0NjOiBQYW9sbyBC b256aW5pIDxwYm9uemluaUByZWRoYXQuY29tPgorQ2M6IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0 LmNvbT4KK0NjOiAiUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kiIDxwaGlsbWRAbGluYXJvLm9yZz4K K1NpZ25lZC1vZmYtYnk6IERhdmlkIEhpbGRlbmJyYW5kIDxkYXZpZEByZWRoYXQuY29tPgorKHBp Y2tlZCBmcm9tIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3FlbXUtZGV2ZWwvMjAyNDA4MjgwOTA3 NDMuMTI4NjQ3LTEtZGF2aWRAcmVkaGF0LmNvbS8pCitbRkU6IGJhY2twb3J0IC0gcmVtb3ZlIG5v dC15ZXQtZXhpc3RpbmcgdmFyaWFibGUgaW4gY29udGV4dCBvZiBodW5rIHRvdWNoaW5nIHJhbV9i bG9ja19hZGQoKV0KK1NpZ25lZC1vZmYtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHByb3htb3gu Y29tPgorLS0tCisgaW5jbHVkZS9leGVjL3JhbWxpc3QuaCB8ICAxICsKKyBzeXN0ZW0vcGh5c21l bS5jICAgICAgIHwgMzUgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyIGZp bGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvaW5jbHVkZS9leGVjL3JhbWxpc3QuaCBiL2luY2x1ZGUvZXhlYy9yYW1saXN0LmgKK2lu ZGV4IDJhZDJhODFhY2MuLmQ5Y2ZlNTMwYmUgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2V4ZWMvcmFt bGlzdC5oCisrKysgYi9pbmNsdWRlL2V4ZWMvcmFtbGlzdC5oCitAQCAtNTAsNiArNTAsNyBAQCB0 eXBlZGVmIHN0cnVjdCBSQU1MaXN0IHsKKyAgICAgLyogUkNVLWVuYWJsZWQsIHdyaXRlcyBwcm90 ZWN0ZWQgYnkgdGhlIHJhbWxpc3QgbG9jay4gKi8KKyAgICAgUUxJU1RfSEVBRCgsIFJBTUJsb2Nr KSBibG9ja3M7CisgICAgIERpcnR5TWVtb3J5QmxvY2tzICpkaXJ0eV9tZW1vcnlbRElSVFlfTUVN T1JZX05VTV07CisrICAgIHVuc2lnbmVkIGludCBudW1fZGlydHlfYmxvY2tzOworICAgICB1aW50 MzJfdCB2ZXJzaW9uOworICAgICBRTElTVF9IRUFEKCwgUkFNQmxvY2tOb3RpZmllcikgcmFtYmxv Y2tfbm90aWZpZXJzOworIH0gUkFNTGlzdDsKK2RpZmYgLS1naXQgYS9zeXN0ZW0vcGh5c21lbS5j IGIvc3lzdGVtL3BoeXNtZW0uYworaW5kZXggYTRmZTNkMmJmOC4uNzhmN2RiMTEyMSAxMDA2NDQK Ky0tLSBhL3N5c3RlbS9waHlzbWVtLmMKKysrKyBiL3N5c3RlbS9waHlzbWVtLmMKK0BAIC0xNDk3 LDE4ICsxNDk3LDYgQEAgc3RhdGljIHJhbV9hZGRyX3QgZmluZF9yYW1fb2Zmc2V0KHJhbV9hZGRy X3Qgc2l6ZSkKKyAgICAgcmV0dXJuIG9mZnNldDsKKyB9CisgCistc3RhdGljIHVuc2lnbmVkIGxv bmcgbGFzdF9yYW1fcGFnZSh2b2lkKQorLXsKKy0gICAgUkFNQmxvY2sgKmJsb2NrOworLSAgICBy YW1fYWRkcl90IGxhc3QgPSAwOworLQorLSAgICBSQ1VfUkVBRF9MT0NLX0dVQVJEKCk7CistICAg IFJBTUJMT0NLX0ZPUkVBQ0goYmxvY2spIHsKKy0gICAgICAgIGxhc3QgPSBNQVgobGFzdCwgYmxv Y2stPm9mZnNldCArIGJsb2NrLT5tYXhfbGVuZ3RoKTsKKy0gICAgfQorLSAgICByZXR1cm4gbGFz dCA+PiBUQVJHRVRfUEFHRV9CSVRTOworLX0KKy0KKyBzdGF0aWMgdm9pZCBxZW11X3JhbV9zZXR1 cF9kdW1wKHZvaWQgKmFkZHIsIHJhbV9hZGRyX3Qgc2l6ZSkKKyB7CisgICAgIGludCByZXQ7CitA QCAtMTc2MiwxMyArMTc1MCwxMSBAQCB2b2lkIHFlbXVfcmFtX21zeW5jKFJBTUJsb2NrICpibG9j aywgcmFtX2FkZHJfdCBzdGFydCwgcmFtX2FkZHJfdCBsZW5ndGgpCisgfQorIAorIC8qIENhbGxl ZCB3aXRoIHJhbV9saXN0Lm11dGV4IGhlbGQgKi8KKy1zdGF0aWMgdm9pZCBkaXJ0eV9tZW1vcnlf ZXh0ZW5kKHJhbV9hZGRyX3Qgb2xkX3JhbV9zaXplLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmFtX2FkZHJfdCBuZXdfcmFtX3NpemUpCisrc3RhdGljIHZvaWQgZGlydHlfbWVt b3J5X2V4dGVuZChyYW1fYWRkcl90IG5ld19yYW1fc2l6ZSkKKyB7CistICAgIHJhbV9hZGRyX3Qg b2xkX251bV9ibG9ja3MgPSBESVZfUk9VTkRfVVAob2xkX3JhbV9zaXplLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJUlRZX01FTU9SWV9CTE9DS19TSVpF KTsKKy0gICAgcmFtX2FkZHJfdCBuZXdfbnVtX2Jsb2NrcyA9IERJVl9ST1VORF9VUChuZXdfcmFt X3NpemUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElS VFlfTUVNT1JZX0JMT0NLX1NJWkUpOworKyAgICB1bnNpZ25lZCBpbnQgb2xkX251bV9ibG9ja3Mg PSByYW1fbGlzdC5udW1fZGlydHlfYmxvY2tzOworKyAgICB1bnNpZ25lZCBpbnQgbmV3X251bV9i bG9ja3MgPSBESVZfUk9VTkRfVVAobmV3X3JhbV9zaXplLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRElSVFlfTUVNT1JZX0JMT0NLX1NJWkUpOworICAg ICBpbnQgaTsKKyAKKyAgICAgLyogT25seSBuZWVkIHRvIGV4dGVuZCBpZiBibG9jayBjb3VudCBp bmNyZWFzZWQgKi8KK0BAIC0xODAwLDYgKzE3ODYsOCBAQCBzdGF0aWMgdm9pZCBkaXJ0eV9tZW1v cnlfZXh0ZW5kKHJhbV9hZGRyX3Qgb2xkX3JhbV9zaXplLAorICAgICAgICAgICAgIGdfZnJlZV9y Y3Uob2xkX2Jsb2NrcywgcmN1KTsKKyAgICAgICAgIH0KKyAgICAgfQorKworKyAgICByYW1fbGlz dC5udW1fZGlydHlfYmxvY2tzID0gbmV3X251bV9ibG9ja3M7CisgfQorIAorIHN0YXRpYyB2b2lk IHJhbV9ibG9ja19hZGQoUkFNQmxvY2sgKm5ld19ibG9jaywgRXJyb3IgKiplcnJwKQorQEAgLTE4 MDgsMTEgKzE3OTYsOSBAQCBzdGF0aWMgdm9pZCByYW1fYmxvY2tfYWRkKFJBTUJsb2NrICpuZXdf YmxvY2ssIEVycm9yICoqZXJycCkKKyAgICAgY29uc3QgYm9vbCBzaGFyZWQgPSBxZW11X3JhbV9p c19zaGFyZWQobmV3X2Jsb2NrKTsKKyAgICAgUkFNQmxvY2sgKmJsb2NrOworICAgICBSQU1CbG9j ayAqbGFzdF9ibG9jayA9IE5VTEw7CistICAgIHJhbV9hZGRyX3Qgb2xkX3JhbV9zaXplLCBuZXdf cmFtX3NpemU7CisrICAgIHJhbV9hZGRyX3QgcmFtX3NpemU7CisgICAgIEVycm9yICplcnIgPSBO VUxMOworIAorLSAgICBvbGRfcmFtX3NpemUgPSBsYXN0X3JhbV9wYWdlKCk7CistCisgICAgIHFl bXVfbXV0ZXhfbG9ja19yYW1saXN0KCk7CisgICAgIG5ld19ibG9jay0+b2Zmc2V0ID0gZmluZF9y YW1fb2Zmc2V0KG5ld19ibG9jay0+bWF4X2xlbmd0aCk7CisgCitAQCAtMTg0MCwxMSArMTgyNiw4 IEBAIHN0YXRpYyB2b2lkIHJhbV9ibG9ja19hZGQoUkFNQmxvY2sgKm5ld19ibG9jaywgRXJyb3Ig KiplcnJwKQorICAgICAgICAgfQorICAgICB9CisgCistICAgIG5ld19yYW1fc2l6ZSA9IE1BWChv bGRfcmFtX3NpemUsCistICAgICAgICAgICAgICAobmV3X2Jsb2NrLT5vZmZzZXQgKyBuZXdfYmxv Y2stPm1heF9sZW5ndGgpID4+IFRBUkdFVF9QQUdFX0JJVFMpOworLSAgICBpZiAobmV3X3JhbV9z aXplID4gb2xkX3JhbV9zaXplKSB7CistICAgICAgICBkaXJ0eV9tZW1vcnlfZXh0ZW5kKG9sZF9y YW1fc2l6ZSwgbmV3X3JhbV9zaXplKTsKKy0gICAgfQorKyAgICByYW1fc2l6ZSA9IChuZXdfYmxv Y2stPm9mZnNldCArIG5ld19ibG9jay0+bWF4X2xlbmd0aCkgPj4gVEFSR0VUX1BBR0VfQklUUzsK KysgICAgZGlydHlfbWVtb3J5X2V4dGVuZChyYW1fc2l6ZSk7CisgICAgIC8qIEtlZXAgdGhlIGxp c3Qgc29ydGVkIGZyb20gYmlnZ2VzdCB0byBzbWFsbGVzdCBibG9jay4gIFVubGlrZSBRVEFJTFEs CisgICAgICAqIFFMSVNUICh3aGljaCBoYXMgYW4gUkNVLWZyaWVuZGx5IHZhcmlhbnQpIGRvZXMg bm90IGhhdmUgaW5zZXJ0aW9uIGF0CisgICAgICAqIHRhaWwsIHNvIHNhdmUgdGhlIGxhc3QgZWxl bWVudCBpbiBsYXN0X2Jsb2NrLgpkaWZmIC0tZ2l0IGEvZGViaWFuL3BhdGNoZXMvcHZlLzAwMzAt UFZFLUJhY2t1cC1Qcm94bW94LWJhY2t1cC1wYXRjaGVzLWZvci1RRU1VLnBhdGNoIGIvZGViaWFu L3BhdGNoZXMvcHZlLzAwMzAtUFZFLUJhY2t1cC1Qcm94bW94LWJhY2t1cC1wYXRjaGVzLWZvci1R RU1VLnBhdGNoCmluZGV4IGZlZTU3ZmEuLjRjYzljOTcgMTAwNjQ0Ci0tLSBhL2RlYmlhbi9wYXRj aGVzL3B2ZS8wMDMwLVBWRS1CYWNrdXAtUHJveG1veC1iYWNrdXAtcGF0Y2hlcy1mb3ItUUVNVS5w YXRjaAorKysgYi9kZWJpYW4vcGF0Y2hlcy9wdmUvMDAzMC1QVkUtQmFja3VwLVByb3htb3gtYmFj a3VwLXBhdGNoZXMtZm9yLVFFTVUucGF0Y2gKQEAgLTEyMCwxMCArMTIwLDEwIEBAIGluZGV4IGU5 OTkxNGVhYTQuLjZiYmE4MDNmOTQgMTAwNjQ0CiAgc3lzdGVtX3NzLmFkZCh3aGVuOiAnQ09ORklH X1RDRycsIGlmX3RydWU6IGZpbGVzKCdibGtyZXBsYXkuYycpKQogIHN5c3RlbV9zcy5hZGQoZmls ZXMoJ2Jsb2NrLXJhbS1yZWdpc3RyYXIuYycpKQogZGlmZiAtLWdpdCBhL2Jsb2NrL21vbml0b3Iv YmxvY2staG1wLWNtZHMuYyBiL2Jsb2NrL21vbml0b3IvYmxvY2staG1wLWNtZHMuYwotaW5kZXgg ZDk1NGJlYzZmMS4uNTAwMGMwODRjNSAxMDA2NDQKK2luZGV4IGJkZjJlYjUwYjYuLjQzOWE3YTE0 YzggMTAwNjQ0CiAtLS0gYS9ibG9jay9tb25pdG9yL2Jsb2NrLWhtcC1jbWRzLmMKICsrKyBiL2Js b2NrL21vbml0b3IvYmxvY2staG1wLWNtZHMuYwotQEAgLTEwMDgsMyArMTAwOCw0MiBAQCB2b2lk IGhtcF9jaGFuZ2VfbWVkaXVtKE1vbml0b3IgKm1vbiwgY29uc3QgY2hhciAqZGV2aWNlLCBjb25z dCBjaGFyICp0YXJnZXQsCitAQCAtMTAwOSwzICsxMDA5LDQyIEBAIHZvaWQgaG1wX2NoYW5nZV9t ZWRpdW0oTW9uaXRvciAqbW9uLCBjb25zdCBjaGFyICpkZXZpY2UsIGNvbnN0IGNoYXIgKnRhcmdl dCwKICAgICAgcW1wX2Jsb2NrZGV2X2NoYW5nZV9tZWRpdW0oZGV2aWNlLCBOVUxMLCB0YXJnZXQs IGFyZywgdHJ1ZSwgZm9yY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEhcmVh ZF9vbmx5LCByZWFkX29ubHlfbW9kZSwgZXJycCk7CiAgfQpkaWZmIC0tZ2l0IGEvZGViaWFuL3Bh dGNoZXMvcHZlLzAwNDYtUFZFLWJhY2t1cC1hZGQtZmxlZWNpbmctb3B0aW9uLnBhdGNoIGIvZGVi aWFuL3BhdGNoZXMvcHZlLzAwNDYtUFZFLWJhY2t1cC1hZGQtZmxlZWNpbmctb3B0aW9uLnBhdGNo CmluZGV4IDFhZjNlMDQuLjJmNjNiYzAgMTAwNjQ0Ci0tLSBhL2RlYmlhbi9wYXRjaGVzL3B2ZS8w MDQ2LVBWRS1iYWNrdXAtYWRkLWZsZWVjaW5nLW9wdGlvbi5wYXRjaAorKysgYi9kZWJpYW4vcGF0 Y2hlcy9wdmUvMDA0Ni1QVkUtYmFja3VwLWFkZC1mbGVlY2luZy1vcHRpb24ucGF0Y2gKQEAgLTY4 LDEwICs2OCwxMCBAQCBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgTGFtcHJlY2h0IDx0LmxhbXByZWNo dEBwcm94bW94LmNvbT4KICAzIGZpbGVzIGNoYW5nZWQsIDE0MiBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvYmxvY2svbW9uaXRvci9ibG9jay1obXAtY21kcy5j IGIvYmxvY2svbW9uaXRvci9ibG9jay1obXAtY21kcy5jCi1pbmRleCA1MDAwYzA4NGM1Li43MGIz ZGU0YzdlIDEwMDY0NAoraW5kZXggNDM5YTdhMTRjOC4uZDBlNzc3MWRjYyAxMDA2NDQKIC0tLSBh L2Jsb2NrL21vbml0b3IvYmxvY2staG1wLWNtZHMuYwogKysrIGIvYmxvY2svbW9uaXRvci9ibG9j ay1obXAtY21kcy5jCi1AQCAtMTA0Myw2ICsxMDQzLDcgQEAgdm9pZCBjb3JvdXRpbmVfZm4gaG1w X2JhY2t1cChNb25pdG9yICptb24sIGNvbnN0IFFEaWN0ICpxZGljdCkKK0BAIC0xMDQ0LDYgKzEw NDQsNyBAQCB2b2lkIGNvcm91dGluZV9mbiBobXBfYmFja3VwKE1vbml0b3IgKm1vbiwgY29uc3Qg UURpY3QgKnFkaWN0KQogICAgICAgICAgTlVMTCwgTlVMTCwKICAgICAgICAgIGRldmxpc3QsIHFk aWN0X2hhc2tleShxZGljdCwgInNwZWVkIiksIHNwZWVkLAogICAgICAgICAgZmFsc2UsIDAsIC8v IEJhY2t1cFBlcmYgbWF4LXdvcmtlcnMKZGlmZiAtLWdpdCBhL2RlYmlhbi9wYXRjaGVzL3Nlcmll cyBiL2RlYmlhbi9wYXRjaGVzL3NlcmllcwppbmRleCBmMDIyODk3Li45MjgzMTU2IDEwMDY0NAot LS0gYS9kZWJpYW4vcGF0Y2hlcy9zZXJpZXMKKysrIGIvZGViaWFuL3BhdGNoZXMvc2VyaWVzCkBA IC0xNSw2ICsxNSwyNSBAQCBleHRyYS8wMDE0LWh3LXNjc2ktbHNpNTNjODk1YS1idW1wLWluc3Ry dWN0aW9uLWxpbWl0LWluLXNjcmlwdHMucGF0Y2gKIGV4dHJhLzAwMTUtYmxvY2stY29weS1GaXgt bWlzc2luZy1ncmFwaC1sb2NrLnBhdGNoCiBleHRyYS8wMDE2LVJldmVydC1xZW11LWNoYXItZG8t bm90LW9wZXJhdGUtb24tc291cmNlcy1mcm9tLWZpbmEucGF0Y2gKIGV4dHJhLzAwMTctdmlydGlv LXBjaS1GaXgtdGhlLXVzZS1vZi1hbi11bmluaXRpYWxpemVkLWlycWZkLnBhdGNoCitleHRyYS8w MDE4LXZpcnRpby1uZXQtRW5zdXJlLXF1ZXVlLWluZGV4LWZpdHMtd2l0aC1SU1MucGF0Y2gKK2V4 dHJhLzAwMTktdmlydGlvLW5ldC1GaXgtbmV0d29yay1zdGFsbC1hdC10aGUtaG9zdC1zaWRlLXdh aXRpbi5wYXRjaAorZXh0cmEvMDAyMC1uZXQtUmVpbnN0YXRlLW5ldC1uaWMtbW9kZWwtaGVscC1v dXRwdXQtYXMtZG9jdW1lbnRlLnBhdGNoCitleHRyYS8wMDIxLW5ldC1GaXgtbmV0LW5pYy1tb2Rl bC1mb3Itbm9uLWhlbHAtYXJndW1lbnRzLnBhdGNoCitleHRyYS8wMDIyLXRhcmdldC1hcm0tRG9u LXQtYXNzZXJ0LWZvci0xMjgtYml0LXRpbGUtYWNjZXNzZXMtd2gucGF0Y2gKK2V4dHJhLzAwMjMt dGFyZ2V0LWFybS1GaXgtVU1PUEEtVU1PUFMtb2YtMTYtYml0LXZhbHVlcy5wYXRjaAorZXh0cmEv MDAyNC10YXJnZXQtYXJtLUF2b2lkLXNoaWZ0cy1ieS0xLWluLXRzemltbV9zaHItYW5kLXRzemlt LnBhdGNoCitleHRyYS8wMDI1LXRhcmdldC1hcm0tSWdub3JlLVNNQ1JfRUwyLkxFTi1hbmQtU1ZD Ul9FTDIuTEVOLWlmLUUucGF0Y2gKK2V4dHJhLzAwMjYtdGFyZ2V0LWFybS1IYW5kbGUtZGVub3Jt YWxzLWNvcnJlY3RseS1mb3ItRk1PUEEtd2lkZS5wYXRjaAorZXh0cmEvMDAyNy1pbnRlbF9pb21t dS1maXgtRlJDRC1jb25zdHJ1Y3Rpb24tbWFjcm8ucGF0Y2gKK2V4dHJhLzAwMjgtdGFyZ2V0LWkz ODYtRG8tbm90LWFwcGx5LVJFWC10by1NTVgtb3BlcmFuZHMucGF0Y2gKK2V4dHJhLzAwMjktbW9k dWxlLVByZXZlbnQtY3Jhc2gtYnktcmVzZXR0aW5nLWxvY2FsX2Vyci1pbi1tb2R1bC5wYXRjaAor ZXh0cmEvMDAzMC1uYmQtc2VydmVyLVBsdW1iLWluLW5ldy1hcmdzLXRvLW5iZF9jbGllbnRfYWRk LnBhdGNoCitleHRyYS8wMDMxLW5iZC1zZXJ2ZXItQ1ZFLTIwMjQtNzQwOS1DYXAtZGVmYXVsdC1t YXgtY29ubmVjdGlvbnMucGF0Y2gKK2V4dHJhLzAwMzItbmJkLXNlcnZlci1DVkUtMjAyNC03NDA5 LURyb3Atbm9uLW5lZ290aWF0aW5nLWNsaWVudC5wYXRjaAorZXh0cmEvMDAzMy1uYmQtc2VydmVy LUNWRS0yMDI0LTc0MDktQ2xvc2Utc3RyYXktY2xpZW50cy1hdC1zZXJ2LnBhdGNoCitleHRyYS8w MDM0LXZuYy1maXgtY3Jhc2gtd2hlbi1uby1jb25zb2xlLWF0dGFjaGVkLnBhdGNoCitleHRyYS8w MDM1LW5iZC1zZXJ2ZXItQ1ZFLTIwMjQtNzQwOS1Bdm9pZC11c2UtYWZ0ZXItZnJlZS13aGVuLWMu cGF0Y2gKK2V4dHJhLzAwMzYtc29mdG1tdS1waHlzbWVtLWZpeC1tZW1vcnktbGVhay1pbi1kaXJ0 eV9tZW1vcnlfZXh0ZS5wYXRjaAogYml0bWFwLW1pcnJvci8wMDAxLWRyaXZlLW1pcnJvci1hZGQt c3VwcG9ydC1mb3Itc3luYy1iaXRtYXAtbW9kZS1uZXZlci5wYXRjaAogYml0bWFwLW1pcnJvci8w MDAyLWRyaXZlLW1pcnJvci1hZGQtc3VwcG9ydC1mb3ItY29uZGl0aW9uYWwtYW5kLWFsd2F5cy0u cGF0Y2gKIGJpdG1hcC1taXJyb3IvMDAwMy1taXJyb3ItYWRkLWNoZWNrLWZvci1iaXRtYXAtbW9k ZS13aXRob3V0LWJpdG1hcC5wYXRjaAotLSAKMi4zOS4yCgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRl dmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9t YWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=