From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 417C9C46CD2 for ; Tue, 30 Jan 2024 13:50:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:CC:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=c3uk+ibFCaebLYq3K8wwlSLauiP1GzRbrzu/CyGPBU0=; b=rcjtZvnmjdi5FF hw3JAerEx+5hofmTAcrbWcPpuGbkuxJZWzgyBNepYkeoaZVXvPH8wWfgTVh2FLtRoAnv09al5e6y6 e7MZNJ0G+8QEuUdiuNZPV8uHOB4DlBatNt5I0MUQnSDdcCTWASfVnmO+DqmSA73ZMu6fCLiGOBqxs cal0X/FDQTm3DZec4ql59Nz2+/xwKzYQcrfxQiuFAeWDLlTVeX8j1D4KP1FxNH2AMZTtZ2TnDjuwY q4nAEco1JE+0+yctQU4arXq5IrzjeCMDZTPdmTb78pcFx0Aipe4Af4gidv18pRR/4Oy730K6Fe4lR U0Aq9xb8kf6ujQBn+qtA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUoVD-0000000GtWa-14S5; Tue, 30 Jan 2024 13:50:15 +0000 Received: from szxga03-in.huawei.com ([45.249.212.189]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUoVA-0000000GtVG-1QSW for linux-arm-kernel@lists.infradead.org; Tue, 30 Jan 2024 13:50:14 +0000 Received: from mail.maildlp.com (unknown [172.19.88.194]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4TPRNM5yv9zJpQM; Tue, 30 Jan 2024 21:49:07 +0800 (CST) Received: from kwepemm600017.china.huawei.com (unknown [7.193.23.234]) by mail.maildlp.com (Postfix) with ESMTPS id 454CD1400FF; Tue, 30 Jan 2024 21:50:07 +0800 (CST) Received: from [10.174.179.234] (10.174.179.234) by kwepemm600017.china.huawei.com (7.193.23.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Jan 2024 21:50:05 +0800 Message-ID: <5227661e-da3b-6cff-37c5-5ddb7825e7b8@huawei.com> Date: Tue, 30 Jan 2024 21:50:04 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH v10 5/6] arm64: support copy_mc_[user]_highpage() To: Mark Rutland CC: Catalin Marinas , Will Deacon , James Morse , Robin Murphy , Andrey Ryabinin , Alexander Potapenko , Alexander Viro , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Andrew Morton , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Aneesh Kumar K.V , "Naveen N. Rao" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , , "H. Peter Anvin" , , , , , , , Guohanjun References: <20240129134652.4004931-1-tongtiangen@huawei.com> <20240129134652.4004931-6-tongtiangen@huawei.com> From: Tong Tiangen In-Reply-To: X-Originating-IP: [10.174.179.234] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemm600017.china.huawei.com (7.193.23.234) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240130_055012_778186_F5F7FD23 X-CRM114-Status: GOOD ( 32.31 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgrlnKggMjAyNC8xLzMwIDE4OjMxLCBNYXJrIFJ1dGxhbmQg5YaZ6YGTOgo+IE9uIE1vbiwgSmFu IDI5LCAyMDI0IGF0IDA5OjQ2OjUxUE0gKzA4MDAsIFRvbmcgVGlhbmdlbiB3cm90ZToKPj4gQ3Vy cmVudGx5LCBtYW55IHNjZW5hcmlvcyB0aGF0IGNhbiB0b2xlcmF0ZSBtZW1vcnkgZXJyb3JzIHdo ZW4gY29weWluZyBwYWdlCj4+IGhhdmUgYmVlbiBzdXBwb3J0ZWQgaW4gdGhlIGtlcm5lbFsxXVsy XVszXSwgYWxsIG9mIHdoaWNoIGFyZSBpbXBsZW1lbnRlZCBieQo+PiBjb3B5X21jX1t1c2VyXV9o aWdocGFnZSgpLiBhcm02NCBzaG91bGQgYWxzbyBzdXBwb3J0IHRoaXMgbWVjaGFuaXNtLgo+Pgo+ PiBEdWUgdG8gbXRlLCBhcm02NCBuZWVkcyB0byBoYXZlIGl0cyBvd24gY29weV9tY19bdXNlcl1f aGlnaHBhZ2UoKQo+PiBhcmNoaXRlY3R1cmUgaW1wbGVtZW50YXRpb24sIG1hY3JvcyBfX0hBVkVf QVJDSF9DT1BZX01DX0hJR0hQQUdFIGFuZAo+PiBfX0hBVkVfQVJDSF9DT1BZX01DX1VTRVJfSElH SFBBR0UgaGF2ZSBiZWVuIGFkZGVkIHRvIGNvbnRyb2wgaXQuCj4+Cj4+IEFkZCBuZXcgaGVscGVy IGNvcHlfbWNfcGFnZSgpIHdoaWNoIHByb3ZpZGUgYSBwYWdlIGNvcHkgaW1wbGVtZW50YXRpb24g d2l0aAo+PiBtYWNoaW5lIGNoZWNrIHNhZmUuIFRoZSBjb3B5X21jX3BhZ2UoKSBpbiBjb3B5X21j X3BhZ2UuUyBpcyBsYXJnZWx5IGJvcnJvd3MKPj4gZnJvbSBjb3B5X3BhZ2UoKSBpbiBjb3B5X3Bh Z2UuUyBhbmQgdGhlIG1haW4gZGlmZmVyZW5jZSBpcyBjb3B5X21jX3BhZ2UoKQo+PiBhZGQgZXh0 YWJsZSBlbnRyeSB0byBldmVyeSBsb2FkL3N0b3JlIGluc24gdG8gc3VwcG9ydCBtYWNoaW5lIGNo ZWNrIHNhZmUuCj4+Cj4+IEFkZCBuZXcgZXh0YWJsZSB0eXBlIEVYX1RZUEVfQ09QWV9NQ19QQUdF X0VSUl9aRVJPIHdoaWNoIHVzZWQgaW4KPj4gY29weV9tY19wYWdlKCkuCj4+Cj4+IFsxXWE4NzNk ZmUxMDMyYSAoIm1tLCBod3BvaXNvbjogdHJ5IHRvIHJlY292ZXIgZnJvbSBjb3B5LW9uIHdyaXRl IGZhdWx0cyIpCj4+IFsyXTVmMjUwMGI5M2NjOSAoIm1tL2todWdlcGFnZWQ6IHJlY292ZXIgZnJv bSBwb2lzb25lZCBhbm9ueW1vdXMgbWVtb3J5IikKPj4gWzNdNmI5NzA1OTllODA3ICgibW06IGh3 cG9pc29uOiBzdXBwb3J0IHJlY292ZXJ5IGZyb20ga3NtX21pZ2h0X25lZWRfdG9fY29weSgpIikK Pj4KPj4gU2lnbmVkLW9mZi1ieTogVG9uZyBUaWFuZ2VuIDx0b25ndGlhbmdlbkBodWF3ZWkuY29t Pgo+PiAtLS0KPj4gICBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2FzbS1leHRhYmxlLmggfCAxNSAr KysrKysKPj4gICBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Fzc2VtYmxlci5oICAgfCAgNCArKwo+ PiAgIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vbXRlLmggICAgICAgICB8ICA1ICsrCj4+ICAgYXJj aC9hcm02NC9pbmNsdWRlL2FzbS9wYWdlLmggICAgICAgIHwgMTAgKysrKwo+PiAgIGFyY2gvYXJt NjQvbGliL01ha2VmaWxlICAgICAgICAgICAgICB8ICAyICsKPj4gICBhcmNoL2FybTY0L2xpYi9j b3B5X21jX3BhZ2UuUyAgICAgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ ICAgYXJjaC9hcm02NC9saWIvbXRlLlMgICAgICAgICAgICAgICAgIHwgMjcgKysrKysrKysrKwo+ PiAgIGFyY2gvYXJtNjQvbW0vY29weXBhZ2UuYyAgICAgICAgICAgICB8IDY2ICsrKysrKysrKysr KysrKysrKysrLS0tCj4+ICAgYXJjaC9hcm02NC9tbS9leHRhYmxlLmMgICAgICAgICAgICAgIHwg IDcgKy0tCj4+ICAgaW5jbHVkZS9saW51eC9oaWdobWVtLmggICAgICAgICAgICAgIHwgIDggKysr Cj4+ICAgMTAgZmlsZXMgY2hhbmdlZCwgMjEzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p Cj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtNjQvbGliL2NvcHlfbWNfcGFnZS5TCj4+ Cj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2FzbS1leHRhYmxlLmggYi9h cmNoL2FybTY0L2luY2x1ZGUvYXNtL2FzbS1leHRhYmxlLmgKPj4gaW5kZXggOTgwZDFkZDhlMWEz Li44MTkwNDRmZWZiZTcgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXNt LWV4dGFibGUuaAo+PiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2FzbS1leHRhYmxlLmgK Pj4gQEAgLTEwLDYgKzEwLDcgQEAKPj4gICAjZGVmaW5lIEVYX1RZUEVfVUFDQ0VTU19FUlJfWkVS TwkyCj4+ICAgI2RlZmluZSBFWF9UWVBFX0tBQ0NFU1NfRVJSX1pFUk8JMwo+PiAgICNkZWZpbmUg RVhfVFlQRV9MT0FEX1VOQUxJR05FRF9aRVJPUEFECTQKPj4gKyNkZWZpbmUgRVhfVFlQRV9DT1BZ X01DX1BBR0VfRVJSX1pFUk8JNQo+PiAgIAo+PiAgIC8qIERhdGEgZmllbGRzIGZvciBFWF9UWVBF X1VBQ0NFU1NfRVJSX1pFUk8gKi8KPj4gICAjZGVmaW5lIEVYX0RBVEFfUkVHX0VSUl9TSElGVAkw Cj4+IEBAIC01MSw2ICs1MiwxNiBAQAo+PiAgICNkZWZpbmUgX0FTTV9FWFRBQkxFX1VBQ0NFU1Mo aW5zbiwgZml4dXApCQkJCVwKPj4gICAJX0FTTV9FWFRBQkxFX1VBQ0NFU1NfRVJSX1pFUk8oaW5z biwgZml4dXAsIHd6ciwgd3pyKQo+PiAgIAo+PiArI2RlZmluZSBfQVNNX0VYVEFCTEVfQ09QWV9N Q19QQUdFX0VSUl9aRVJPKGluc24sIGZpeHVwLCBlcnIsIHplcm8pCVwKPj4gKwlfX0FTTV9FWFRB QkxFX1JBVyhpbnNuLCBmaXh1cCwgCQkJCQlcCj4+ICsJCQkgIEVYX1RZUEVfQ09QWV9NQ19QQUdF X0VSUl9aRVJPLAkJXAo+PiArCQkJICAoCQkJCQkJXAo+PiArCQkJICAgIEVYX0RBVEFfUkVHKEVS UiwgZXJyKSB8CQkJXAo+PiArCQkJICAgIEVYX0RBVEFfUkVHKFpFUk8sIHplcm8pCQkJXAo+PiAr CQkJICApKQo+PiArCj4+ICsjZGVmaW5lIF9BU01fRVhUQUJMRV9DT1BZX01DX1BBR0UoaW5zbiwg Zml4dXApCQkJCVwKPj4gKwlfQVNNX0VYVEFCTEVfQ09QWV9NQ19QQUdFX0VSUl9aRVJPKGluc24s IGZpeHVwLCB3enIsIHd6cikKPj4gICAvKgo+PiAgICAqIENyZWF0ZSBhbiBleGNlcHRpb24gdGFi bGUgZW50cnkgZm9yIHVhY2Nlc3MgYGluc25gLCB3aGljaCB3aWxsIGJyYW5jaCB0byBgZml4dXBg Cj4+ICAgICogd2hlbiBhbiB1bmhhbmRsZWQgZmF1bHQgaXMgdGFrZW4uCj4+IEBAIC01OSw2ICs3 MCwxMCBAQAo+PiAgIAlfQVNNX0VYVEFCTEVfVUFDQ0VTUyhcaW5zbiwgXGZpeHVwKQo+PiAgIAku ZW5kbQo+PiAgIAo+PiArCS5tYWNybyAgICAgICAgICBfYXNtX2V4dGFibGVfY29weV9tY19wYWdl LCBpbnNuLCBmaXh1cAo+PiArCV9BU01fRVhUQUJMRV9DT1BZX01DX1BBR0UoXGluc24sIFxmaXh1 cCkKPj4gKwkuZW5kbQo+PiArCj4gCj4gVGhpcyBzaG91bGQgc2hhcmUgYSBjb21tb24gRVhfVFlQ RV8gd2l0aCB0aGUgb3RoZXIgImthY2Nlc3Mgd2hlcmUgbWVtb3J5IGVycm9yCj4gaXMgaGFuZGxl ZCBidXQgb3RoZXIgZmF1bHRzIGFyZSBmYXRhbCIgY2FzZXMuCgpPSywgcmVhc29uYWJsZS4KPiAK Pj4gICAvKgo+PiAgICAqIENyZWF0ZSBhbiBleGNlcHRpb24gdGFibGUgZW50cnkgZm9yIGBpbnNu YCBpZiBgZml4dXBgIGlzIHByb3ZpZGVkLiBPdGhlcndpc2UKPj4gICAgKiBkbyBub3RoaW5nLgo+ PiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hc3NlbWJsZXIuaCBiL2FyY2gv YXJtNjQvaW5jbHVkZS9hc20vYXNzZW1ibGVyLmgKPj4gaW5kZXggNTEzNzg3ZTQzMzI5Li5lMWQ4 Y2UxNTU4NzggMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vYXNzZW1ibGVy LmgKPj4gKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9hc3NlbWJsZXIuaAo+PiBAQCAtMTU0 LDYgKzE1NCwxMCBAQCBscgkucmVxCXgzMAkJLy8gbGluayByZWdpc3Rlcgo+PiAgICNkZWZpbmUg Q1BVX0xFKGNvZGUuLi4pIGNvZGUKPj4gICAjZW5kaWYKPj4gICAKPj4gKyNkZWZpbmUgQ1BZX01D KGwsIHguLi4pCQlcCj4+ICs5OTk5OiAgIHg7CQkJXAo+PiArCV9hc21fZXh0YWJsZV9jb3B5X21j X3BhZ2UgICAgOTk5OWIsIGwKPj4gKwo+PiAgIC8qCj4+ICAgICogRGVmaW5lIGEgbWFjcm8gdGhh dCBjb25zdHJ1Y3RzIGEgNjQtYml0IHZhbHVlIGJ5IGNvbmNhdGVuYXRpbmcgdHdvCj4+ICAgICog MzItYml0IHJlZ2lzdGVycy4gTm90ZSB0aGF0IG9uIGJpZyBlbmRpYW4gc3lzdGVtcyB0aGUgb3Jk ZXIgb2YgdGhlCj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL210ZS5oIGIv YXJjaC9hcm02NC9pbmNsdWRlL2FzbS9tdGUuaAo+PiBpbmRleCA5MWZiZDVjOGEzOTEuLjljZGRl ZDA4MmRkNCAxMDA2NDQKPj4gLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9tdGUuaAo+PiAr KysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL210ZS5oCj4+IEBAIC05Miw2ICs5Miw3IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCB0cnlfcGFnZV9tdGVfdGFnZ2luZyhzdHJ1Y3QgcGFnZSAqcGFnZSkK Pj4gICB2b2lkIG10ZV96ZXJvX2NsZWFyX3BhZ2VfdGFncyh2b2lkICphZGRyKTsKPj4gICB2b2lk IG10ZV9zeW5jX3RhZ3MocHRlX3QgcHRlLCB1bnNpZ25lZCBpbnQgbnJfcGFnZXMpOwo+PiAgIHZv aWQgbXRlX2NvcHlfcGFnZV90YWdzKHZvaWQgKmt0bywgY29uc3Qgdm9pZCAqa2Zyb20pOwo+PiAr aW50IG10ZV9jb3B5X21jX3BhZ2VfdGFncyh2b2lkICprdG8sIGNvbnN0IHZvaWQgKmtmcm9tKTsK Pj4gICB2b2lkIG10ZV90aHJlYWRfaW5pdF91c2VyKHZvaWQpOwo+PiAgIHZvaWQgbXRlX3RocmVh ZF9zd2l0Y2goc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0KTsKPj4gICB2b2lkIG10ZV9jcHVfc2V0 dXAodm9pZCk7Cj4+IEBAIC0xMjgsNiArMTI5LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtdGVf c3luY190YWdzKHB0ZV90IHB0ZSwgdW5zaWduZWQgaW50IG5yX3BhZ2VzKQo+PiAgIHN0YXRpYyBp bmxpbmUgdm9pZCBtdGVfY29weV9wYWdlX3RhZ3Modm9pZCAqa3RvLCBjb25zdCB2b2lkICprZnJv bSkKPj4gICB7Cj4+ICAgfQo+PiArc3RhdGljIGlubGluZSBpbnQgbXRlX2NvcHlfbWNfcGFnZV90 YWdzKHZvaWQgKmt0bywgY29uc3Qgdm9pZCAqa2Zyb20pCj4+ICt7Cj4+ICsJcmV0dXJuIDA7Cj4+ ICt9Cj4+ICAgc3RhdGljIGlubGluZSB2b2lkIG10ZV90aHJlYWRfaW5pdF91c2VyKHZvaWQpCj4+ ICAgewo+PiAgIH0KPj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGFnZS5o IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wYWdlLmgKPj4gaW5kZXggMjMxMmU2ZWU1OTVmLi4z MDRjYzg2YjhhMTAgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGFnZS5o Cj4+ICsrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGFnZS5oCj4+IEBAIC0yOSw2ICsyOSwx NiBAQCB2b2lkIGNvcHlfdXNlcl9oaWdocGFnZShzdHJ1Y3QgcGFnZSAqdG8sIHN0cnVjdCBwYWdl ICpmcm9tLAo+PiAgIHZvaWQgY29weV9oaWdocGFnZShzdHJ1Y3QgcGFnZSAqdG8sIHN0cnVjdCBw YWdlICpmcm9tKTsKPj4gICAjZGVmaW5lIF9fSEFWRV9BUkNIX0NPUFlfSElHSFBBR0UKPj4gICAK Pj4gKyNpZmRlZiBDT05GSUdfQVJDSF9IQVNfQ09QWV9NQwo+PiAraW50IGNvcHlfbWNfcGFnZSh2 b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSk7Cj4+ICtpbnQgY29weV9tY19oaWdocGFnZShzdHJ1 Y3QgcGFnZSAqdG8sIHN0cnVjdCBwYWdlICpmcm9tKTsKPj4gKyNkZWZpbmUgX19IQVZFX0FSQ0hf Q09QWV9NQ19ISUdIUEFHRQo+PiArCj4+ICtpbnQgY29weV9tY191c2VyX2hpZ2hwYWdlKHN0cnVj dCBwYWdlICp0bywgc3RydWN0IHBhZ2UgKmZyb20sCj4+ICsJCXVuc2lnbmVkIGxvbmcgdmFkZHIs IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPj4gKyNkZWZpbmUgX19IQVZFX0FSQ0hfQ09Q WV9NQ19VU0VSX0hJR0hQQUdFCj4+ICsjZW5kaWYKPj4gKwo+PiAgIHN0cnVjdCBmb2xpbyAqdm1h X2FsbG9jX3plcm9lZF9tb3ZhYmxlX2ZvbGlvKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+ PiAgIAkJCQkJCXVuc2lnbmVkIGxvbmcgdmFkZHIpOwo+PiAgICNkZWZpbmUgdm1hX2FsbG9jX3pl cm9lZF9tb3ZhYmxlX2ZvbGlvIHZtYV9hbGxvY196ZXJvZWRfbW92YWJsZV9mb2xpbwo+PiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm02NC9saWIvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2xpYi9NYWtlZmls ZQo+PiBpbmRleCAyOTQ5MGJlMjU0NmIuLmEyZmQ4NjViODE2ZCAxMDA2NDQKPj4gLS0tIGEvYXJj aC9hcm02NC9saWIvTWFrZWZpbGUKPj4gKysrIGIvYXJjaC9hcm02NC9saWIvTWFrZWZpbGUKPj4g QEAgLTE1LDYgKzE1LDggQEAgZW5kaWYKPj4gICAKPj4gICBsaWItJChDT05GSUdfQVJDSF9IQVNf VUFDQ0VTU19GTFVTSENBQ0hFKSArPSB1YWNjZXNzX2ZsdXNoY2FjaGUubwo+PiAgIAo+PiArbGli LSQoQ09ORklHX0FSQ0hfSEFTX0NPUFlfTUMpICs9IGNvcHlfbWNfcGFnZS5vCj4+ICsKPj4gICBv YmotJChDT05GSUdfQ1JDMzIpICs9IGNyYzMyLm8KPj4gICAKPj4gICBvYmotJChDT05GSUdfRlVO Q1RJT05fRVJST1JfSU5KRUNUSU9OKSArPSBlcnJvci1pbmplY3Qubwo+PiBkaWZmIC0tZ2l0IGEv YXJjaC9hcm02NC9saWIvY29weV9tY19wYWdlLlMgYi9hcmNoL2FybTY0L2xpYi9jb3B5X21jX3Bh Z2UuUwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjUyNDUz NGQyNmQ4Ngo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2FyY2gvYXJtNjQvbGliL2NvcHlfbWNf cGFnZS5TCj4+IEBAIC0wLDAgKzEsNzggQEAKPj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkgKi8KPj4gKy8qCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQVJNIEx0 ZC4KPj4gKyAqLwo+PiArCj4+ICsjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgo+PiArI2luY2x1 ZGUgPGxpbnV4L2NvbnN0Lmg+Cj4+ICsjaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgo+PiArI2lu Y2x1ZGUgPGFzbS9wYWdlLmg+Cj4+ICsjaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmUuaD4KPj4gKyNp bmNsdWRlIDxhc20vYWx0ZXJuYXRpdmUuaD4KPj4gKyNpbmNsdWRlIDxhc20vYXNtLWV4dGFibGUu aD4KPj4gKwo+PiArLyoKPj4gKyAqIENvcHkgYSBwYWdlIGZyb20gc3JjIHRvIGRlc3QgKGJvdGgg YXJlIHBhZ2UgYWxpZ25lZCkgd2l0aCBtYWNoaW5lIGNoZWNrCj4+ICsgKgo+PiArICogUGFyYW1l dGVyczoKPj4gKyAqCXgwIC0gZGVzdAo+PiArICoJeDEgLSBzcmMKPj4gKyAqIFJldHVybnM6Cj4+ ICsgKiAJeDAgLSBSZXR1cm4gMCBpZiBjb3B5IHN1Y2Nlc3MsIG9yIC1FRkFVTFQgaWYgYW55dGhp bmcgZ29lcyB3cm9uZwo+PiArICoJICAgICB3aGlsZSBjb3B5aW5nLgo+PiArICovCj4+ICtTWU1f RlVOQ19TVEFSVChfX3BpX2NvcHlfbWNfcGFnZSkKPj4gK0NQWV9NQyg5OTk4ZiwgbGRwCXgyLCB4 MywgW3gxXSkKPj4gK0NQWV9NQyg5OTk4ZiwgbGRwCXg0LCB4NSwgW3gxLCAjMTZdKQo+PiArQ1BZ X01DKDk5OThmLCBsZHAJeDYsIHg3LCBbeDEsICMzMl0pCj4+ICtDUFlfTUMoOTk5OGYsIGxkcAl4 OCwgeDksIFt4MSwgIzQ4XSkKPj4gK0NQWV9NQyg5OTk4ZiwgbGRwCXgxMCwgeDExLCBbeDEsICM2 NF0pCj4+ICtDUFlfTUMoOTk5OGYsIGxkcAl4MTIsIHgxMywgW3gxLCAjODBdKQo+PiArQ1BZX01D KDk5OThmLCBsZHAJeDE0LCB4MTUsIFt4MSwgIzk2XSkKPj4gK0NQWV9NQyg5OTk4ZiwgbGRwCXgx NiwgeDE3LCBbeDEsICMxMTJdKQo+PiArCj4+ICsJYWRkCXgwLCB4MCwgIzI1Ngo+PiArCWFkZAl4 MSwgeDEsICMxMjgKPj4gKzE6Cj4+ICsJdHN0CXgwLCAjKFBBR0VfU0laRSAtIDEpCj4+ICsKPj4g K0NQWV9NQyg5OTk4Ziwgc3RucAl4MiwgeDMsIFt4MCwgIy0yNTZdKQo+PiArQ1BZX01DKDk5OThm LCBsZHAJeDIsIHgzLCBbeDFdKQo+PiArQ1BZX01DKDk5OThmLCBzdG5wCXg0LCB4NSwgW3gwLCAj MTYgLSAyNTZdKQo+PiArQ1BZX01DKDk5OThmLCBsZHAJeDQsIHg1LCBbeDEsICMxNl0pCj4+ICtD UFlfTUMoOTk5OGYsIHN0bnAJeDYsIHg3LCBbeDAsICMzMiAtIDI1Nl0pCj4+ICtDUFlfTUMoOTk5 OGYsIGxkcAl4NiwgeDcsIFt4MSwgIzMyXSkKPj4gK0NQWV9NQyg5OTk4Ziwgc3RucAl4OCwgeDks IFt4MCwgIzQ4IC0gMjU2XSkKPj4gK0NQWV9NQyg5OTk4ZiwgbGRwCXg4LCB4OSwgW3gxLCAjNDhd KQo+PiArQ1BZX01DKDk5OThmLCBzdG5wCXgxMCwgeDExLCBbeDAsICM2NCAtIDI1Nl0pCj4+ICtD UFlfTUMoOTk5OGYsIGxkcAl4MTAsIHgxMSwgW3gxLCAjNjRdKQo+PiArQ1BZX01DKDk5OThmLCBz dG5wCXgxMiwgeDEzLCBbeDAsICM4MCAtIDI1Nl0pCj4+ICtDUFlfTUMoOTk5OGYsIGxkcAl4MTIs IHgxMywgW3gxLCAjODBdKQo+PiArQ1BZX01DKDk5OThmLCBzdG5wCXgxNCwgeDE1LCBbeDAsICM5 NiAtIDI1Nl0pCj4+ICtDUFlfTUMoOTk5OGYsIGxkcAl4MTQsIHgxNSwgW3gxLCAjOTZdKQo+PiAr Q1BZX01DKDk5OThmLCBzdG5wCXgxNiwgeDE3LCBbeDAsICMxMTIgLSAyNTZdKQo+PiArQ1BZX01D KDk5OThmLCBsZHAJeDE2LCB4MTcsIFt4MSwgIzExMl0pCj4+ICsKPj4gKwlhZGQJeDAsIHgwLCAj MTI4Cj4+ICsJYWRkCXgxLCB4MSwgIzEyOAo+PiArCj4+ICsJYi5uZQkxYgo+PiArCj4+ICtDUFlf TUMoOTk5OGYsIHN0bnAJeDIsIHgzLCBbeDAsICMtMjU2XSkKPj4gK0NQWV9NQyg5OTk4Ziwgc3Ru cAl4NCwgeDUsIFt4MCwgIzE2IC0gMjU2XSkKPj4gK0NQWV9NQyg5OTk4Ziwgc3RucAl4NiwgeDcs IFt4MCwgIzMyIC0gMjU2XSkKPj4gK0NQWV9NQyg5OTk4Ziwgc3RucAl4OCwgeDksIFt4MCwgIzQ4 IC0gMjU2XSkKPj4gK0NQWV9NQyg5OTk4Ziwgc3RucAl4MTAsIHgxMSwgW3gwLCAjNjQgLSAyNTZd KQo+PiArQ1BZX01DKDk5OThmLCBzdG5wCXgxMiwgeDEzLCBbeDAsICM4MCAtIDI1Nl0pCj4+ICtD UFlfTUMoOTk5OGYsIHN0bnAJeDE0LCB4MTUsIFt4MCwgIzk2IC0gMjU2XSkKPj4gK0NQWV9NQyg5 OTk4Ziwgc3RucAl4MTYsIHgxNywgW3gwLCAjMTEyIC0gMjU2XSkKPj4gKwo+PiArCW1vdiB4MCwg IzAKPj4gKwlyZXQKPj4gKwo+PiArOTk5ODoJbW92IHgwLCAjLUVGQVVMVAo+PiArCXJldAo+PiAr Cj4+ICtTWU1fRlVOQ19FTkQoX19waV9jb3B5X21jX3BhZ2UpCj4+ICtTWU1fRlVOQ19BTElBUyhj b3B5X21jX3BhZ2UsIF9fcGlfY29weV9tY19wYWdlKQo+PiArRVhQT1JUX1NZTUJPTChjb3B5X21j X3BhZ2UpCj4gCj4gVGhpcyBpcyBhIGR1cGxpY2F0ZSBvZiB0aGUgZXhpc3RpbmcgY29weV9wYWdl IGxvZ2ljOyBpdCBzaG91bGQgYmUgcmVmYWN0b3JlZAo+IHN1Y2ggdGhhdCB0aGUgbG9naWMgY2Fu IGJlIHNoYXJlZC4KCk9LLCBJJ2xsIHRoaW5rIGFib3V0IGhvdyB0byBkbyBpdC4KCj4gCj4+IGRp ZmYgLS1naXQgYS9hcmNoL2FybTY0L2xpYi9tdGUuUyBiL2FyY2gvYXJtNjQvbGliL210ZS5TCj4+ IGluZGV4IDUwMThhYzAzYjZiZi4uMmI3NDhlODNmNmNmIDEwMDY0NAo+PiAtLS0gYS9hcmNoL2Fy bTY0L2xpYi9tdGUuUwo+PiArKysgYi9hcmNoL2FybTY0L2xpYi9tdGUuUwo+PiBAQCAtODAsNiAr ODAsMzMgQEAgU1lNX0ZVTkNfU1RBUlQobXRlX2NvcHlfcGFnZV90YWdzKQo+PiAgIAlyZXQKPj4g ICBTWU1fRlVOQ19FTkQobXRlX2NvcHlfcGFnZV90YWdzKQo+PiAgIAo+PiArLyoKPj4gKyAqIENv cHkgdGhlIHRhZ3MgZnJvbSB0aGUgc291cmNlIHBhZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIG9uZSB3 aWh0IG1hY2hpbmUgY2hlY2sgc2FmZQo+PiArICogICB4MCAtIGFkZHJlc3Mgb2YgdGhlIGRlc3Rp bmF0aW9uIHBhZ2UKPj4gKyAqICAgeDEgLSBhZGRyZXNzIG9mIHRoZSBzb3VyY2UgcGFnZQo+PiAr ICogUmV0dXJuczoKPj4gKyAqICAgeDAgLSBSZXR1cm4gMCBpZiBjb3B5IHN1Y2Nlc3MsIG9yCj4+ ICsgKiAgICAgICAgLUVGQVVMVCBpZiBhbnl0aGluZyBnb2VzIHdyb25nIHdoaWxlIGNvcHlpbmcu Cj4+ICsgKi8KPj4gK1NZTV9GVU5DX1NUQVJUKG10ZV9jb3B5X21jX3BhZ2VfdGFncykKPj4gKwlt b3YJeDIsIHgwCj4+ICsJbW92CXgzLCB4MQo+PiArCW11bHRpdGFnX3RyYW5zZmVyX3NpemUgeDUs IHg2Cj4+ICsxOgo+PiArQ1BZX01DKDJmLCBsZGdtCXg0LCBbeDNdKQo+PiArQ1BZX01DKDJmLCBz dGdtCXg0LCBbeDJdKQo+PiArCWFkZAl4MiwgeDIsIHg1Cj4+ICsJYWRkCXgzLCB4MywgeDUKPj4g Kwl0c3QJeDIsICMoUEFHRV9TSVpFIC0gMSkKPj4gKwliLm5lCTFiCj4+ICsKPj4gKwltb3YgeDAs ICMwCj4+ICsJcmV0Cj4+ICsKPj4gKzI6CW1vdiB4MCwgIy1FRkFVTFQKPj4gKwlyZXQKPj4gK1NZ TV9GVU5DX0VORChtdGVfY29weV9tY19wYWdlX3RhZ3MpCj4+ICsKPj4gICAvKgo+PiAgICAqIFJl YWQgdGFncyBmcm9tIGEgdXNlciBidWZmZXIgKG9uZSB0YWcgcGVyIGJ5dGUpIGFuZCBzZXQgdGhl IGNvcnJlc3BvbmRpbmcKPj4gICAgKiB0YWdzIGF0IHRoZSBnaXZlbiBrZXJuZWwgYWRkcmVzcy4g VXNlZCBieSBQVFJBQ0VfUE9LRU1URVRBR1MuCj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L21t L2NvcHlwYWdlLmMgYi9hcmNoL2FybTY0L21tL2NvcHlwYWdlLmMKPj4gaW5kZXggYTdiYjIwMDU1 Y2UwLi45NzY1ZTQwY2RlNmMgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvYXJtNjQvbW0vY29weXBhZ2Uu Ywo+PiArKysgYi9hcmNoL2FybTY0L21tL2NvcHlwYWdlLmMKPj4gQEAgLTE0LDYgKzE0LDI1IEBA Cj4+ICAgI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlLmg+Cj4+ICAgI2luY2x1ZGUgPGFzbS9tdGUu aD4KPj4gICAKPj4gK3N0YXRpYyBpbnQgZG9fbXRlKHN0cnVjdCBwYWdlICp0bywgc3RydWN0IHBh Z2UgKmZyb20sIHZvaWQgKmt0bywgdm9pZCAqa2Zyb20sIGJvb2wgbWMpCj4+ICt7Cj4+ICsJaW50 IHJldCA9IDA7Cj4+ICsKPj4gKwlpZiAoc3lzdGVtX3N1cHBvcnRzX210ZSgpICYmIHBhZ2VfbXRl X3RhZ2dlZChmcm9tKSkgewo+PiArCQkvKiBJdCdzIGEgbmV3IHBhZ2UsIHNob3VsZG4ndCBoYXZl IGJlZW4gdGFnZ2VkIHlldCAqLwo+PiArCQlXQVJOX09OX09OQ0UoIXRyeV9wYWdlX210ZV90YWdn aW5nKHRvKSk7Cj4+ICsJCWlmIChtYykKPj4gKwkJCXJldCA9IG10ZV9jb3B5X21jX3BhZ2VfdGFn cyhrdG8sIGtmcm9tKTsKPj4gKwkJZWxzZQo+PiArCQkJbXRlX2NvcHlfcGFnZV90YWdzKGt0bywg a2Zyb20pOwo+PiArCj4+ICsJCWlmICghcmV0KQo+PiArCQkJc2V0X3BhZ2VfbXRlX3RhZ2dlZCh0 byk7Cj4+ICsJfQo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPiAKPiBUaGUgYm9vbGVhbiAn bWMnIGFyZ3VtZW50IG1ha2VzIHRoaXMgcGFpbmZ1bCB0byByZWFkLCBhbmQgSSBkb24ndCB0aGlu ayBpdCdzCj4gbmVjZXNzYXJ5IHRvIGhhdmUgdGhpcyBoZWxwZXIgYW55d2F5Lgo+IAo+IEl0J2Qg YmUgY2xlYXJlciB0byBoYXZlIHRoaXMgZXhwYW5kZWQgaW5saW5lIGluIHRoZSBjYWxsZXJzLCBl LmcuCj4gCj4gCS8vIGluIGNvcHlfaGlnaHBhZ2UoKSwgYXMtaXMgdG9kYXkKPiAJaWYgKHN5c3Rl bV9zdXBwb3J0c19tdGUoKSAmJiBwYWdlX210ZV90YWdnZWQoZnJvbSkpIHsKPiAJCS8qIEl0J3Mg YSBuZXcgcGFnZSwgc2hvdWxkbid0IGhhdmUgYmVlbiB0YWdnZWQgeWV0ICovCj4gCQlXQVJOX09O X09OQ0UoIXRyeV9wYWdlX210ZV90YWdnaW5nKHRvKSk7Cj4gCQltdGVfY29weV9wYWdlX3RhZ3Mo a3RvLCBrZnJvbSk7Cj4gCQlzZXRfcGFnZV9tdGVfdGFnZ2VkKHRvKTsKPiAJfQo+IAo+IAkvLyBp biBjb3B5X21jX2hpZ2hwYWdlKCkKPiAJaWYgKHN5c3RlbV9zdXBwb3J0c19tdGUoKSAmJiBwYWdl X210ZV90YWdnZWQoZnJvbSkpIHsKPiAJCS8qIEl0J3MgYSBuZXcgcGFnZSwgc2hvdWxkbid0IGhh dmUgYmVlbiB0YWdnZWQgeWV0ICovCj4gCQlXQVJOX09OX09OQ0UoIXRyeV9wYWdlX210ZV90YWdn aW5nKHRvKSk7Cj4gCQlyZXQgPSBtdGVfY29weV9tY19wYWdlX3RhZ3Moa3RvLCBrZnJvbSk7Cj4g CQlpZiAocmV0KQo+IAkJCXJldHVybiAtRUZBVUxUOwo+IAkJc2V0X3BhZ2VfbXRlX3RhZ2dlZCh0 byk7Cj4gCX0KCk9LLCAgZm9sbG93IHRoaXMgaWRlYSBpbiB0aGUgbmV4dCB2ZXJzaW9uLgoKPiAK PiBNYXJrLgo+IAo+PiArCj4+ICAgdm9pZCBjb3B5X2hpZ2hwYWdlKHN0cnVjdCBwYWdlICp0bywg c3RydWN0IHBhZ2UgKmZyb20pCj4+ICAgewo+PiAgIAl2b2lkICprdG8gPSBwYWdlX2FkZHJlc3Mo dG8pOwo+PiBAQCAtMjQsMTIgKzQzLDcgQEAgdm9pZCBjb3B5X2hpZ2hwYWdlKHN0cnVjdCBwYWdl ICp0bywgc3RydWN0IHBhZ2UgKmZyb20pCj4+ICAgCWlmIChrYXNhbl9od190YWdzX2VuYWJsZWQo KSkKPj4gICAJCXBhZ2Vfa2FzYW5fdGFnX3Jlc2V0KHRvKTsKPj4gICAKPj4gLQlpZiAoc3lzdGVt X3N1cHBvcnRzX210ZSgpICYmIHBhZ2VfbXRlX3RhZ2dlZChmcm9tKSkgewo+PiAtCQkvKiBJdCdz IGEgbmV3IHBhZ2UsIHNob3VsZG4ndCBoYXZlIGJlZW4gdGFnZ2VkIHlldCAqLwo+PiAtCQlXQVJO X09OX09OQ0UoIXRyeV9wYWdlX210ZV90YWdnaW5nKHRvKSk7Cj4+IC0JCW10ZV9jb3B5X3BhZ2Vf dGFncyhrdG8sIGtmcm9tKTsKPj4gLQkJc2V0X3BhZ2VfbXRlX3RhZ2dlZCh0byk7Cj4+IC0JfQo+ PiArCWRvX210ZSh0bywgZnJvbSwga3RvLCBrZnJvbSwgZmFsc2UpOwo+PiAgIH0KPj4gICBFWFBP UlRfU1lNQk9MKGNvcHlfaGlnaHBhZ2UpOwo+PiAgIAo+PiBAQCAtNDAsMyArNTQsNDMgQEAgdm9p ZCBjb3B5X3VzZXJfaGlnaHBhZ2Uoc3RydWN0IHBhZ2UgKnRvLCBzdHJ1Y3QgcGFnZSAqZnJvbSwK Pj4gICAJZmx1c2hfZGNhY2hlX3BhZ2UodG8pOwo+PiAgIH0KPj4gICBFWFBPUlRfU1lNQk9MX0dQ TChjb3B5X3VzZXJfaGlnaHBhZ2UpOwo+PiArCj4+ICsjaWZkZWYgQ09ORklHX0FSQ0hfSEFTX0NP UFlfTUMKPj4gKy8qCj4+ICsgKiBSZXR1cm4gLUVGQVVMVCBpZiBhbnl0aGluZyBnb2VzIHdyb25n IHdoaWxlIGNvcHlpbmcgcGFnZSBvciBtdGUuCj4+ICsgKi8KPj4gK2ludCBjb3B5X21jX2hpZ2hw YWdlKHN0cnVjdCBwYWdlICp0bywgc3RydWN0IHBhZ2UgKmZyb20pCj4+ICt7Cj4+ICsJdm9pZCAq a3RvID0gcGFnZV9hZGRyZXNzKHRvKTsKPj4gKwl2b2lkICprZnJvbSA9IHBhZ2VfYWRkcmVzcyhm cm9tKTsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJcmV0ID0gY29weV9tY19wYWdlKGt0bywga2Zy b20pOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVybiAtRUZBVUxUOwo+PiArCj4+ICsJaWYgKGth c2FuX2h3X3RhZ3NfZW5hYmxlZCgpKQo+PiArCQlwYWdlX2thc2FuX3RhZ19yZXNldCh0byk7Cj4+ ICsKPj4gKwlyZXQgPSBkb19tdGUodG8sIGZyb20sIGt0bywga2Zyb20sIHRydWUpOwo+PiArCWlm IChyZXQpCj4+ICsJCXJldHVybiAtRUZBVUxUOwo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ ICtFWFBPUlRfU1lNQk9MKGNvcHlfbWNfaGlnaHBhZ2UpOwo+PiArCj4+ICtpbnQgY29weV9tY191 c2VyX2hpZ2hwYWdlKHN0cnVjdCBwYWdlICp0bywgc3RydWN0IHBhZ2UgKmZyb20sCj4+ICsJCQl1 bnNpZ25lZCBsb25nIHZhZGRyLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPj4gK3sKPj4g KwlpbnQgcmV0Owo+PiArCj4+ICsJcmV0ID0gY29weV9tY19oaWdocGFnZSh0bywgZnJvbSk7Cj4+ ICsKPj4gKwlpZiAoIXJldCkKPj4gKwkJZmx1c2hfZGNhY2hlX3BhZ2UodG8pOwo+PiArCj4+ICsJ cmV0dXJuIHJldDsKPj4gK30KPj4gK0VYUE9SVF9TWU1CT0xfR1BMKGNvcHlfbWNfdXNlcl9oaWdo cGFnZSk7Cj4+ICsjZW5kaWYKPj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvbW0vZXh0YWJsZS5j IGIvYXJjaC9hcm02NC9tbS9leHRhYmxlLmMKPj4gaW5kZXggMjhlYzM1ZTNkMjEwLi5iZGM4MTUx OGQyMDcgMTAwNjQ0Cj4+IC0tLSBhL2FyY2gvYXJtNjQvbW0vZXh0YWJsZS5jCj4+ICsrKyBiL2Fy Y2gvYXJtNjQvbW0vZXh0YWJsZS5jCj4+IEBAIC0xNiw3ICsxNiw3IEBAIGdldF9leF9maXh1cChj b25zdCBzdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5ICpleCkKPj4gICAJcmV0dXJuICgodW5z aWduZWQgbG9uZykmZXgtPmZpeHVwICsgZXgtPmZpeHVwKTsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0 aWMgYm9vbCBleF9oYW5kbGVyX3VhY2Nlc3NfZXJyX3plcm8oY29uc3Qgc3RydWN0IGV4Y2VwdGlv bl90YWJsZV9lbnRyeSAqZXgsCj4+ICtzdGF0aWMgYm9vbCBleF9oYW5kbGVyX2ZpeHVwX2Vycl96 ZXJvKGNvbnN0IHN0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgKmV4LAo+PiAgIAkJCQkJc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ICAgewo+PiAgIAlpbnQgcmVnX2VyciA9IEZJRUxEX0dFVChF WF9EQVRBX1JFR19FUlIsIGV4LT5kYXRhKTsKPj4gQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBmaXh1 cF9leGNlcHRpb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ICAgCQlyZXR1cm4gZXhfaGFuZGxl cl9icGYoZXgsIHJlZ3MpOwo+PiAgIAljYXNlIEVYX1RZUEVfVUFDQ0VTU19FUlJfWkVSTzoKPj4g ICAJY2FzZSBFWF9UWVBFX0tBQ0NFU1NfRVJSX1pFUk86Cj4+IC0JCXJldHVybiBleF9oYW5kbGVy X3VhY2Nlc3NfZXJyX3plcm8oZXgsIHJlZ3MpOwo+PiArCQlyZXR1cm4gZXhfaGFuZGxlcl9maXh1 cF9lcnJfemVybyhleCwgcmVncyk7Cj4+ICAgCWNhc2UgRVhfVFlQRV9MT0FEX1VOQUxJR05FRF9a RVJPUEFEOgo+PiAgIAkJcmV0dXJuIGV4X2hhbmRsZXJfbG9hZF91bmFsaWduZWRfemVyb3BhZChl eCwgcmVncyk7Cj4+ICAgCX0KPj4gQEAgLTg3LDcgKzg3LDggQEAgYm9vbCBmaXh1cF9leGNlcHRp b25fbWMoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCj4+ICAgCj4+ICAgCXN3aXRjaCAoZXgtPnR5cGUp IHsKPj4gICAJY2FzZSBFWF9UWVBFX1VBQ0NFU1NfRVJSX1pFUk86Cj4+IC0JCXJldHVybiBleF9o YW5kbGVyX3VhY2Nlc3NfZXJyX3plcm8oZXgsIHJlZ3MpOwo+PiArCWNhc2UgRVhfVFlQRV9DT1BZ X01DX1BBR0VfRVJSX1pFUk86Cj4+ICsJCXJldHVybiBleF9oYW5kbGVyX2ZpeHVwX2Vycl96ZXJv KGV4LCByZWdzKTsKPj4gICAJfQo+PiAgIAo+PiAgIAlyZXR1cm4gZmFsc2U7Cj4+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L2hpZ2htZW0uaCBiL2luY2x1ZGUvbGludXgvaGlnaG1lbS5oCj4+ IGluZGV4IGM1Y2ExYTFmYzRmNS4uYTQyNDcwY2E0MmYyIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRl L2xpbnV4L2hpZ2htZW0uaAo+PiArKysgYi9pbmNsdWRlL2xpbnV4L2hpZ2htZW0uaAo+PiBAQCAt MzMyLDYgKzMzMiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5X2hpZ2hwYWdlKHN0cnVjdCBw YWdlICp0bywgc3RydWN0IHBhZ2UgKmZyb20pCj4+ICAgI2VuZGlmCj4+ICAgCj4+ICAgI2lmZGVm IGNvcHlfbWNfdG9fa2VybmVsCj4+ICsjaWZuZGVmIF9fSEFWRV9BUkNIX0NPUFlfTUNfVVNFUl9I SUdIUEFHRQo+PiAgIC8qCj4+ICAgICogSWYgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzIG1hY2hpbmUg Y2hlY2sgZXhjZXB0aW9uIGhhbmRsaW5nLCBkZWZpbmUgdGhlCj4+ICAgICogI01DIHZlcnNpb25z IG9mIGNvcHlfdXNlcl9oaWdocGFnZSBhbmQgY29weV9oaWdocGFnZS4gVGhleSBjb3B5IGEgbWVt b3J5Cj4+IEBAIC0zNTQsNyArMzU1LDkgQEAgc3RhdGljIGlubGluZSBpbnQgY29weV9tY191c2Vy X2hpZ2hwYWdlKHN0cnVjdCBwYWdlICp0bywgc3RydWN0IHBhZ2UgKmZyb20sCj4+ICAgCj4+ICAg CXJldHVybiByZXQgPyAtRUZBVUxUIDogMDsKPj4gICB9Cj4+ICsjZW5kaWYKPj4gICAKPj4gKyNp Zm5kZWYgX19IQVZFX0FSQ0hfQ09QWV9NQ19ISUdIUEFHRQo+PiAgIHN0YXRpYyBpbmxpbmUgaW50 IGNvcHlfbWNfaGlnaHBhZ2Uoc3RydWN0IHBhZ2UgKnRvLCBzdHJ1Y3QgcGFnZSAqZnJvbSkKPj4g ICB7Cj4+ICAgCXVuc2lnbmVkIGxvbmcgcmV0Owo+PiBAQCAtMzcwLDIwICszNzMsMjUgQEAgc3Rh dGljIGlubGluZSBpbnQgY29weV9tY19oaWdocGFnZShzdHJ1Y3QgcGFnZSAqdG8sIHN0cnVjdCBw YWdlICpmcm9tKQo+PiAgIAo+PiAgIAlyZXR1cm4gcmV0ID8gLUVGQVVMVCA6IDA7Cj4+ICAgfQo+ PiArI2VuZGlmCj4+ICAgI2Vsc2UKPj4gKyNpZm5kZWYgX19IQVZFX0FSQ0hfQ09QWV9NQ19VU0VS X0hJR0hQQUdFCj4+ICAgc3RhdGljIGlubGluZSBpbnQgY29weV9tY191c2VyX2hpZ2hwYWdlKHN0 cnVjdCBwYWdlICp0bywgc3RydWN0IHBhZ2UgKmZyb20sCj4+ICAgCQkJCQl1bnNpZ25lZCBsb25n IHZhZGRyLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPj4gICB7Cj4+ICAgCWNvcHlfdXNl cl9oaWdocGFnZSh0bywgZnJvbSwgdmFkZHIsIHZtYSk7Cj4+ICAgCXJldHVybiAwOwo+PiAgIH0K Pj4gKyNlbmRpZgo+PiAgIAo+PiArI2lmbmRlZiBfX0hBVkVfQVJDSF9DT1BZX01DX0hJR0hQQUdF Cj4+ICAgc3RhdGljIGlubGluZSBpbnQgY29weV9tY19oaWdocGFnZShzdHJ1Y3QgcGFnZSAqdG8s IHN0cnVjdCBwYWdlICpmcm9tKQo+PiAgIHsKPj4gICAJY29weV9oaWdocGFnZSh0bywgZnJvbSk7 Cj4+ICAgCXJldHVybiAwOwo+PiAgIH0KPj4gICAjZW5kaWYKPj4gKyNlbmRpZgo+PiAgIAo+PiAg IHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1jcHlfcGFnZShzdHJ1Y3QgcGFnZSAqZHN0X3BhZ2UsIHNp emVfdCBkc3Rfb2ZmLAo+PiAgIAkJCSAgICAgICBzdHJ1Y3QgcGFnZSAqc3JjX3BhZ2UsIHNpemVf dCBzcmNfb2ZmLAo+PiAtLSAKPj4gMi4yNS4xCj4+Cj4gLgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=