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 588DDC4332F for ; Thu, 14 Dec 2023 06:20:33 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=rp3PeEWRnrblhROylF+8XlrDamZh74xosGCSLYuA3Fw=; b=zs00MGYHo0+CNU PeuCin8VUcFtYnfv4EZs/t16v/rgUF/+OocBSp1zmQby4JXdX7XXM1wztwzTc6sXA+Rs0y9yL6eIW vp9fSwUvYlujULmEgBK/VUNxdz0CL3CzRsZ0fsHgz1KgZ1U0k0LRVClmrjnLgIJDVJvMBfI/PRUN7 yWKSlSGSKsuLpJ+etZslZ2VfHDQgscFQkP3uh2+o3taIixinPJ36dJe6WGngGlh4zlkRcMi5tDPme RUFD6J4oOAvic0Xs/uAMewZXFSMZDdRTIFEM+9iEDkM3h1CHOh08koVi8tIniLEya0YcMEUPwXGxR xknvx0OqOHHefiQq5osA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDf55-00GxFJ-0L; Thu, 14 Dec 2023 06:20:23 +0000 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDf4y-00GxC4-0Z for linux-riscv@lists.infradead.org; Thu, 14 Dec 2023 06:20:21 +0000 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-28af2f9a0f6so801242a91.0 for ; Wed, 13 Dec 2023 22:20:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brainfault-org.20230601.gappssmtp.com; s=20230601; t=1702534812; x=1703139612; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=usZae7pl3MvjhAJt7mCoCrwHfAUEYl7EAGJsUOY2M9Q=; b=SlVdkRA98iUczpAD4nSncx4rSbPrJLclfvD4Am7j0edjdOIY+L1Sg50PgI8MBxShWD Vu108029nHf8mThqjegQWQrIxffCHvgGAy50kLXNODmht79BVDajpVA4MlF2bdeW8Gt6 nezTOuXrMVTX8+DJU+wO6Cuvqgsm6H/WJfw+VlIr3enChSKeQkK+Hutpe360JaNj7o6a MIBAjq3np1C/Kemt/Vbe66lRvGLEECeASuEr6gecQ1E/5Qhwb2Fg4ikCO9iwoXuKVUMW RotJ0xX+jncxrTBMd5nMBkaA+nSXiC7pcVyHtFSCQsCbBY91b0KoutyE8tt+TICU6oKk e6ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702534812; x=1703139612; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=usZae7pl3MvjhAJt7mCoCrwHfAUEYl7EAGJsUOY2M9Q=; b=aV8y3p7+kQlTXFKF93pXjqkqDu2urUZ089NnsiCl8Yom4NjKcEGnKmBhkahNDT0MiL bO+UkoCuJouT/AxBCK9wpZTylnlE27UoYWoDyY9S7LWljC2ueXr+U5QTnylL2RXvO3rp uRppN+UuAbM+qCNwRNyRq3pyNcg5hnFqJpiGmyT97oO2+/CvK7XVKxNUFUc1ZC3dW+zE BOWazYwu+Xs0jF3U4IZpsZ5WO3LxddXvQRSqYVo4IveXizQCT2J3WgDCfiZ0GZgfWwcL 5KobwJbNXQ+8Qtzxh1n0VrFCSD/Wu1rShKdpNeRfOvW4On17AyE62jcV2KKdGLcLsOj3 1XPA== X-Gm-Message-State: AOJu0YzaUtALxExbvemCdcRroTCjR8fd9VPj9MhCk0Mibqj67BhH7hpE OugBZfjqERkpDv4tKeJd4O5sIpW3dRedIwMy5KKYHQ== X-Google-Smtp-Source: AGHT+IHoDEzaeNTBz3an7Avgk3ETv+Yw0lQ+h7PpO6QDmPdjjkoy+XCzIThEdNUah62czl7MeVMvKdc99zVQSiKEZvk= X-Received: by 2002:a17:90a:b012:b0:28a:e58d:fbd0 with SMTP id x18-20020a17090ab01200b0028ae58dfbd0mr864277pjq.72.1702534811859; Wed, 13 Dec 2023 22:20:11 -0800 (PST) MIME-Version: 1.0 References: <20230916003118.2540661-1-seanjc@google.com> <20230916003118.2540661-27-seanjc@google.com> In-Reply-To: <20230916003118.2540661-27-seanjc@google.com> From: Anup Patel Date: Thu, 14 Dec 2023 11:50:00 +0530 Message-ID: Subject: Re: [PATCH 26/26] KVM: Hide KVM internal data structures and values from kernel at-large To: Sean Christopherson Cc: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Paul Walmsley , Palmer Dabbelt , Albert Ou , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Peter Zijlstra , Arnaldo Carvalho de Melo , Paolo Bonzini , Tony Krowiak , Halil Pasic , Jason Herne , Harald Freudenberger , Alex Williamson , Andy Lutomirski , linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, kvm@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Anish Ghulati , Venkatesh Srinivas , Andrew Thornton X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_222016_239729_A769EF4A X-CRM114-Status: GOOD ( 33.12 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gU2F0LCBTZXAgMTYsIDIwMjMgYXQgNjowMuKAr0FNIFNlYW4gQ2hyaXN0b3BoZXJzb24gPHNl YW5qY0Bnb29nbGUuY29tPiB3cm90ZToKPgo+IFdyYXAgYWxsIEtWTSBpbnRlcm5hbCBBUElzLCBk YXRhIHN0cnVjdHVyZXMsIHZhbHVlcywgZXRjLiBpbiBwdWJsaWMKPiBoZWFkZXJzIHdpdGggIiNp ZmRlZiBfX0tWTV9fIiB0byBlZmZlY3RpdmVseSBoaWRlIEtWTSdzIGludGVybmFsIGRldGFpbHMK PiBmcm9tIG90aGVyIHN1YnN5c3RlbXMgYW5kIHRoZSBrZXJuZWwgYXQtbGFyZ2UuICBIaWRpbmcg S1ZNIGRldGFpbHMgZm9yCj4gYWxsIGFyY2hpdGVjdHVyZXMgd2lsbCwgaW4gdGhlIHZlcnkgZGlz dGFudCBmdXR1cmUsIGFsbG93IGxvYWRpbmcgYSBuZXcKPiAob3Igb2xkKSBLVk0gbW9kdWxlIHdp dGhvdXQgbmVlZGluZyB0byByZWJ1aWxkIGFuZCByZWJvb3QgdGhlIGVudGlyZQo+IGtlcm5lbCwg b3IgdG8gZXZlbiBhbGxvdyBsb2FkaW5nIGFuZCBydW5uaW5nIG11bHRpcGxlIHZlcnNpb25zIG9m IEtWTQo+IHNpbXVsdGFuZW91c2x5IG9uIGEgc2luZ2xlIGhvc3QuCj4KPiBUbyBhbGxvdyBkaWZm ZXJlbnQgaW5zdGFuY2VzIG9mIEtWTSBtb2R1bGVzIHRvIGZyZWVseSBtb2RpZnkgS1ZNIGRhdGEK PiBzdHJ1Y3R1cmVzLCBlbnVtcywgI2RlZmluZXMsIGV0Yy4sIGUuZy4gdGhlIHN0cnVjdCBrdm1f dmNwdSBsYXlvdXQsIHRoZXJlCj4gbXVzdCBiZSBleGFjdGx5IHplcm8gZGVyZWZlcmVuY2VzIG9m IEtWTS1kZWZpbmVkIHN0cnVjdHVyZXMvdmFsdWVzIGluCj4gbm9uLUtWTSBjb2RlIChleGNlcHRp bmcgY29kZSBmb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IHN1cHBvcnQgc3VjaAo+IHNoZW5h bmlnYW5zKS4gIEFueSBzdWNoIHJlZmVyZW5jZXMgY291bGQgbGVhZCB0byBsYXRlbnQgYnVncywg ZS5nLiBhcyB0aGUKPiBrZXJuZWwgd291bGQgdGhpbmsgYSBLVk0gc3RydWN0dXJlIGhhcyBsYXlv dXQgWCwgYnV0IGluIHJlYWxpdHkgdGhlCj4gY3VycmVudCBpbmNhcm5hdGlvbiBvZiBLVk0gdXNl cyBsYXlvdXQgWS4KPgo+IEluIEtWTSB4ODYsIGFsbCByZW1haW5pbmcgbm9uLUtWTSByZWZlcmVu Y2VzIHRvIEtWTSBkZXRhaWxzIGhhdmUgYmVlbiBub3cKPiBlbGltaW5hdGVkLiAgVG8gaGFyZGVu IEtWTSBhZ2FpbnN0IG5ldyByZWZlcmVuY2VzIGJlaW5nIGludHJvZHVjZWQsIGhpZGUKPiBLVk0n cyBkZXRhaWxzIHRvIGVuc3VyZSB0aGF0IEtWTSBkb2VzbuKAmXQgY3JlYXRlIGEgZGUgZmFjdG8g QUJJIHdpdGggdGhlCj4gcmVzdCBvZiB0aGUga2VybmVsLgo+Cj4gVXNlICNpZmRlZmZlcnkgdG8g aGlkZSBLVk0gZGV0YWlscyBhcyBkb2luZyBzbyByZXF1aXJlcywgYnkgZmFyLCB0aGUgbGVhc3QK PiBhbW91bnQgb2YgY2h1cm4gYW5kIGltcGFjdCBvbiBhcmNoaXRlY3R1cmVzIHRoYXQgZnJlZWx5 IHNoYXJlIHNlbGVjdCBLVk0KPiBkZXRhaWxzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGtlcm5lbCwg ZS5nLiBzMzkwLCBBUk02NCBhbmQgUFBDLCBoYXZlCj4gc2lnbmlmaWNhbnQgdXNhZ2Ugb2YgS1ZN LWRlZmluZWQgQVBJcywgc3RydWN0dXJlcywgdmFsdWVzLCBldGMuICBFLmcuCj4gYXR0ZW1wdGlu ZyB0byBleHRyYWN0IHRoZSAicHJpdmF0ZSIgY2h1bmtzIGludG8gZGVkaWNhdGVkIEtWTS1pbnRl cm5hbAo+IGhlYWRlcnMgd291bGQgcmVxdWlyZSBtYXNzaXZlIGNodXJuLCBldmVuIG9uIHg4Niwg YW5kIGl0J3Mgbm90IG9idmlvdXMgdGhlCj4gZW5kIHJlc3VsdCB3b3VsZCBiZSBhIG5ldCBwb3Np dGl2ZSAoYWxsIGF0dGVtcHRzIGF0IG1vdmluZyBjb2RlIGFyb3VuZAo+IGZhaWxlZCBsb25nIGJl Zm9yZSBnZXR0aW5nIGFueXdoZXJlIG5lYXIgY29tcGlsaW5nIGNsZWFubHkpLgo+Cj4gQW5vdGhl ciAoYmFkKSBhbHRlcm5hdGl2ZSB0aGF0IHdvdWxkIGJlIHJlbGF0aXZlIGNodXJuLWZyZWUgd291 bGQgYmUgdG8KPiBtb3ZlIHRoZSBLVk0gaGVhZGVycyB0byBhIGRlZGljYXRlZCBLVk0tc3BlY2lm aWMgcGF0aCB3aGlsZSBtYWludGFpbmluZwo+IHRoZSBnZW5lcmljIGxheW91dCwgZS5nLiBzb21l dGhpbmcgbGlrZSB2aXJ0L2t2bS9pbmNsdWRlL2xpbnV4LiAgVGhhdAo+IHdvdWxkIGFsbG93IHg4 NiB0byBzaW1wbHkgb21pdCB0aGUgS1ZNLXNwZWNpZmljIGluY2x1ZGUgcGF0aC4gIEJ1dCB0aGF0 Cj4gd291bGQgcmVxdWlyZSBtb2RpZnlpbmcgdGhlIGdsb2JhbCBpbmNsdWRlIHBhdGgsIGkuZS4g d291bGQgbWFrZSBLVk0gYQo+IHJlYWxseSBzcGVjaWFsIHNub3dmbGFrZSBhbmQgc2V0IHRoZSBh d2Z1bCBwcmVjZWRlbnQgdGhhdCBpdCdzICJvayIgdG8KPiBhZGQgc3Vic3lzdGVtIHNwZWNpZmlj IGRpcmVjdG9yaWVzIHRvIHRoZSBnbG9iYWwgaW5jbHVkZSBwYXRoLgo+Cj4gR3JhbnQgZXhjZXB0 aW9ucyB0byBhc20tb2Zmc2V0cy5jIGFzIG5lZWRlZCwgYW5kIHRvIHMzOTAncyBWRklPIEFQIGRy aXZlci4KPiBDcmVhdGluZyBhIEtWTS1zcGVjaWZpYyBhc20tb2Zmc2V0cywgYXMgd2FzIGRvbmUg Zm9yIHg4NiwgYWRkcyBubyB2YWx1ZQo+ICh4ODYgZGlkIHNvIHRvIGF2b2lkIGV4cG9zaW5nIHZl bmRvciBzcGVjaWZpYyBoZWFkZXJzKSBhbmQgZG9lc24ndCBjcmVhdGUKPiBtdWNoIG9mIGEgInNs aXBwZXJ5IHNsb3BlIiByaXNrLiAgczM5MCdzIFZGSU8gQVAgZHJpdmVyIG9uIHRoZSBvdGhlciBo YW5kCj4gaXMgc2ltcGx5IHRvbyBpbnRlcnR3aW5lZCB3aXRoIEtWTSB0byByZWFsaXN0aWNhbGx5 IHRyZWF0IGl0IGFzIGFueXRoaW5nCj4gb3RoZXIgdGhhbiBLVk0gY29kZSwgZGVzcGl0ZSBpdCBs aXZpbmcgaW4gY3J5cHRvIGRyaXZlcnMsIGUuZy4gdGhlIGRyaXZlcgo+IGhhcyBzb21lIHJhdGhl ciBjcmF6eSBsb2NrIG9yZGVyaW5nIHJ1bGVzIGJldHdlZW4gdGhlIGRldmljZSBhbmQgS1ZNLgo+ Cj4gQWRkIGEgc3RhdGljIGFzc2VydCB0aGF0IF9fS1ZNX18gaXMgZGVmaW5lZCBpbiB0cmFjZS9l dmVudHMva3ZtLmgsIGFzIHRoYXQKPiBpcyBlZmZlY3RpdmVseSBhIHByaXZhdGUgS1ZNIGhlYWRl ciB0aGF0IGp1c3QgaGFwcGVucyB0byBsaXZlIGluIGEgcHVibGljCj4gcGF0aC4KPgo+IFNodWZm bGUgYSBmZXcgUFBDIGluY2x1ZGVzIGFuZCBhbiBzMzkwIGRlY2xhcmF0aW9uIGFzIG5lZWRlZCwg YW5kCj4gb3Bwb3J0dW5pc3RpY2FsbHkgaW5jbHVkZSBrdm1faG9zdC5oIGluIHRyYWNlL2V2ZW50 cy5rdm0uaCBpbnN0ZWFkIG9mCj4gcmVseWluZyBvbiB0aGUgcGFyZW50IHRvIHByb3ZpZGUgdGhl IHJpZ2h0IGluY2x1ZGVzLgo+Cj4gQ2M6IEFuaXNoIEdodWxhdGkgPGFnaHVsYXRpQGdvb2dsZS5j b20+Cj4gQ2M6IFZlbmthdGVzaCBTcmluaXZhcyA8dmVua2F0ZXNoc0BjaHJvbWl1bS5vcmc+Cj4g Q2M6IEFuZHJldyBUaG9ybnRvbiA8YW5kcmV3dGhAZ29vZ2xlLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBTZWFuIENocmlzdG9waGVyc29uIDxzZWFuamNAZ29vZ2xlLmNvbT4KCkZvciBLVk0gUklTQy1W OgpBbnVwIFBhdGVsIDxhbnVwQGJyYWluZmF1bHQub3JnPgoKUmVnYXJkcywKQW51cAoKPiAtLS0K PiAgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fZW11bGF0ZS5oICAgICB8IDMgKysrCj4gIGFy Y2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCAgICAgICAgfCAyICsrCj4gIGFyY2gvYXJt NjQvaW5jbHVkZS9hc20va3ZtX21tdS5oICAgICAgICAgfCA0ICsrKysKPiAgYXJjaC9hcm02NC9r ZXJuZWwvYXNtLW9mZnNldHMuYyAgICAgICAgICB8IDIgKysKPiAgYXJjaC9hcm02NC9rdm0vaHlw L01ha2VmaWxlICAgICAgICAgICAgICB8IDIgKy0KPiAgYXJjaC9hcm02NC9rdm0vaHlwL252aGUv TWFrZWZpbGUgICAgICAgICB8IDMgKystCj4gIGFyY2gvYXJtNjQva3ZtL2h5cC92aGUvTWFrZWZp bGUgICAgICAgICAgfCAyICstCj4gIGFyY2gvbWlwcy9pbmNsdWRlL2FzbS9rdm1faG9zdC5oICAg ICAgICAgfCAyICsrCj4gIGFyY2gvbWlwcy9rZXJuZWwvYXNtLW9mZnNldHMuYyAgICAgICAgICAg fCAyICsrCj4gIGFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9rdm1fYm9vazNzLmggICAgfCAzICsr Kwo+ICBhcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2szc182NC5oIHwgMiArKwo+ICBh cmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2tlLmggICAgIHwgNCArKysrCj4gIGFyY2gv cG93ZXJwYy9pbmNsdWRlL2FzbS9rdm1faG9zdC5oICAgICAgfCA3ICsrKystLS0KPiAgYXJjaC9w b3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9wcGMuaCAgICAgICB8IDIgKysKPiAgYXJjaC9wb3dlcnBj L2tlcm5lbC9hc20tb2Zmc2V0cy5jICAgICAgICB8IDEgKwo+ICBhcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL2t2bV9ob3N0LmggICAgICAgIHwgMyArKysKPiAgYXJjaC9yaXNjdi9rZXJuZWwvYXNtLW9m ZnNldHMuYyAgICAgICAgICB8IDEgKwo+ICBhcmNoL3MzOTAvaW5jbHVkZS9hc20va3ZtX2hvc3Qu aCAgICAgICAgIHwgNyArKysrKy0tCj4gIGFyY2gvczM5MC9rZXJuZWwvYXNtLW9mZnNldHMuYyAg ICAgICAgICAgfCAxICsKPiAgYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCAgICAgICAg ICB8IDMgKysrCj4gIGRyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9kcnYuYyAgICAgICAgfCAx ICsKPiAgZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX29wcy5jICAgICAgICB8IDIgKysKPiAg aW5jbHVkZS9saW51eC9rdm1faG9zdC5oICAgICAgICAgICAgICAgICB8IDQgKysrKwo+ICBpbmNs dWRlL2xpbnV4L2t2bV90eXBlcy5oICAgICAgICAgICAgICAgIHwgMyArKysKPiAgaW5jbHVkZS90 cmFjZS9ldmVudHMva3ZtLmggICAgICAgICAgICAgICB8IDUgKysrKysKPiAgdmlydC9rdm0vTWFr ZWZpbGUua3ZtICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiAgMjYgZmlsZXMgY2hhbmdlZCwg NjQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9hcmNoL2Fy bTY0L2luY2x1ZGUvYXNtL2t2bV9lbXVsYXRlLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2 bV9lbXVsYXRlLmgKPiBpbmRleCAzZDY3MjVmZjBiZjYuLjU4NjFmYTAwNzYzYiAxMDA2NDQKPiAt LS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9lbXVsYXRlLmgKPiArKysgYi9hcmNoL2Fy bTY0L2luY2x1ZGUvYXNtL2t2bV9lbXVsYXRlLmgKPiBAQCAtMjEsNiArMjEsOCBAQAo+ICAjaW5j bHVkZSA8YXNtL2NwdXR5cGUuaD4KPiAgI2luY2x1ZGUgPGFzbS92aXJ0Lmg+Cj4KPiArI2lmZGVm IF9fS1ZNX18KPiArCj4gICNkZWZpbmUgQ1VSUkVOVF9FTF9TUF9FTDBfVkVDVE9SICAgICAgIDB4 MAo+ICAjZGVmaW5lIENVUlJFTlRfRUxfU1BfRUx4X1ZFQ1RPUiAgICAgICAweDIwMAo+ICAjZGVm aW5lIExPV0VSX0VMX0FBcmNoNjRfVkVDVE9SICAgICAgICAgICAgICAgIDB4NDAwCj4gQEAgLTYx NSw0ICs2MTcsNSBAQCBzdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQga3ZtX3Jlc2V0X2NwdHJf ZWwyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPgo+ICAgICAgICAga3ZtX3dyaXRlX2NwdHJfZWwy KHZhbCk7Cj4gIH0KPiArI2VuZGlmIC8qIF9fS1ZNX18gKi8KPiAgI2VuZGlmIC8qIF9fQVJNNjRf S1ZNX0VNVUxBVEVfSF9fICovCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20v a3ZtX2hvc3QuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAo+IGluZGV4IDg5 YjQwYzM0ZjBhZi4uYmE0MDY1ZGI1ZDVjIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtNjQvaW5jbHVk ZS9hc20va3ZtX2hvc3QuaAo+ICsrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3Qu aAo+IEBAIC05Myw2ICs5Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBrdm1fcG11X2NvdW50ZXJf ZGVmZXJyZWQoc3RydWN0IHBlcmZfZXZlbnRfYXR0ciAqYXR0cikKPiAgICAgICAgIHJldHVybiAo IWhhc192aGUoKSAmJiBhdHRyLT5leGNsdWRlX2hvc3QpOwo+ICB9Cj4KPiArI2lmZGVmIF9fS1ZN X18KPiAgREVDTEFSRV9TVEFUSUNfS0VZX0ZBTFNFKHVzZXJzcGFjZV9pcnFjaGlwX2luX3VzZSk7 Cj4KPiAgZXh0ZXJuIHVuc2lnbmVkIGludCBfX3JvX2FmdGVyX2luaXQga3ZtX3N2ZV9tYXhfdmw7 Cj4gQEAgLTExNDksNCArMTE1MCw1IEBAIGludCBrdm1fdHJuZ19jYWxsKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSk7Cj4gIHZvaWQga3ZtX2FybV92Y3B1X3Bvd2VyX29mZihzdHJ1Y3Qga3ZtX3ZjcHUg KnZjcHUpOwo+ICBib29sIGt2bV9hcm1fdmNwdV9zdG9wcGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNw dSk7Cj4KPiArI2VuZGlmIC8qIF9fS1ZNX18gKi8KPiAgI2VuZGlmIC8qIF9fQVJNNjRfS1ZNX0hP U1RfSF9fICovCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX21tdS5o IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fbW11LmgKPiBpbmRleCA5NmE4MGU4ZjYyMjYu LjlkOGM5MmNkYTNiNiAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9t bXUuaAo+ICsrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX21tdS5oCj4gQEAgLTEyNSw2 ICsxMjUsOCBAQCB2b2lkIGt2bV91cGRhdGVfdmFfbWFzayhzdHJ1Y3QgYWx0X2luc3RyICphbHQs Cj4gIHZvaWQga3ZtX2NvbXB1dGVfbGF5b3V0KHZvaWQpOwo+ICB2b2lkIGt2bV9hcHBseV9oeXBf cmVsb2NhdGlvbnModm9pZCk7Cj4KPiArI2lmZGVmIF9fS1ZNX18KPiArCj4gICNkZWZpbmUgX19o eXBfcGEoeCkgKCgocGh5c19hZGRyX3QpKHgpKSArIGh5cF9waHlzdmlydF9vZmZzZXQpCj4KPiAg c3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBsb25nIF9fa2Vybl9oeXBfdmEodW5zaWdu ZWQgbG9uZyB2KQo+IEBAIC0zMTQsNSArMzE2LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qga3Zt ICprdm1fczJfbW11X3RvX2t2bShzdHJ1Y3Qga3ZtX3MyX21tdSAqbW11KQo+ICB7Cj4gICAgICAg ICByZXR1cm4gY29udGFpbmVyX29mKG1tdS0+YXJjaCwgc3RydWN0IGt2bSwgYXJjaCk7Cj4gIH0K PiArCj4gKyNlbmRpZiAvKiBfX0tWTV9fICovCj4gICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8K PiAgI2VuZGlmIC8qIF9fQVJNNjRfS1ZNX01NVV9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9h cm02NC9rZXJuZWwvYXNtLW9mZnNldHMuYyBiL2FyY2gvYXJtNjQva2VybmVsL2FzbS1vZmZzZXRz LmMKPiBpbmRleCA1ZmYxOTQyYjA0ZmMuLmRjMDJlYTlhMDAyYyAxMDA2NDQKPiAtLS0gYS9hcmNo L2FybTY0L2tlcm5lbC9hc20tb2Zmc2V0cy5jCj4gKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvYXNt LW9mZnNldHMuYwo+IEBAIC03LDYgKzcsOCBAQAo+ICAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQVJN IEx0ZC4KPiAgICovCj4KPiArI2RlZmluZSBfX0tWTV9fCj4gKwo+ICAjaW5jbHVkZSA8bGludXgv YXJtX3NkZWkuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Cj4gICNpbmNsdWRlIDxsaW51 eC9mdHJhY2UuaD4KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwL01ha2VmaWxlIGIv YXJjaC9hcm02NC9rdm0vaHlwL01ha2VmaWxlCj4gaW5kZXggNGNlOGM4Njk2N2I1Li45OTk4MmI3 NTY3MWEgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm02NC9rdm0vaHlwL01ha2VmaWxlCj4gKysrIGIv YXJjaC9hcm02NC9rdm0vaHlwL01ha2VmaWxlCj4gQEAgLTUsNiArNSw2IEBACj4KPiAgaW5jZGly IDo9ICQoc3JjdHJlZSkvJChzcmMpL2luY2x1ZGUKPiAgc3ViZGlyLWFzZmxhZ3MteSA6PSAtSSQo aW5jZGlyKSAtSSQoc3JjdHJlZSkvYXJjaC9hcm02NC9rdm0KPiAtc3ViZGlyLWNjZmxhZ3MteSA6 PSAtSSQoaW5jZGlyKSAtSSQoc3JjdHJlZSkvYXJjaC9hcm02NC9rdm0KPiArc3ViZGlyLWNjZmxh Z3MteSA6PSAtSSQoaW5jZGlyKSAtSSQoc3JjdHJlZSkvYXJjaC9hcm02NC9rdm0gLURfX0tWTV9f Cj4KPiAgb2JqLSQoQ09ORklHX0tWTSkgKz0gdmhlLyBudmhlLyBwZ3RhYmxlLm8KPiBkaWZmIC0t Z2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwL252aGUvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2t2bS9o eXAvbnZoZS9NYWtlZmlsZQo+IGluZGV4IDIyNTAyNTNhNjQyOS4uYjVmNDc1MGZhMTZlIDEwMDY0 NAo+IC0tLSBhL2FyY2gvYXJtNjQva3ZtL2h5cC9udmhlL01ha2VmaWxlCj4gKysrIGIvYXJjaC9h cm02NC9rdm0vaHlwL252aGUvTWFrZWZpbGUKPiBAQCAtOSw3ICs5LDggQEAgYXNmbGFncy15IDo9 IC1EX19LVk1fTlZIRV9IWVBFUlZJU09SX18gLURfX0RJU0FCTEVfRVhQT1JUUwo+ICAjIHRoZXJl IGlzIG5vIHdheSB0byBleGVjdXRlIHRoZW0gYW5kIGFueSBzdWNoIE1NSU8gYWNjZXNzIGZyb20g blZIRSBLVk0KPiAgIyB3aWxsIGV4cGxvZGUgaW5zdGFudGx5IChXb3JkcyBvZiBNYXJjIFp5bmdp ZXIpLiBTbyBpbnRyb2R1Y2UgYSBnZW5lcmljIGZsYWcKPiAgIyBfX0RJU0FCTEVfVFJBQ0VfTU1J T19fIHRvIGRpc2FibGUgTU1JTyB0cmFjaW5nIGZvciBuVkhFIEtWTS4KPiAtY2NmbGFncy15IDo9 IC1EX19LVk1fTlZIRV9IWVBFUlZJU09SX18gLURfX0RJU0FCTEVfRVhQT1JUUyAtRF9fRElTQUJM RV9UUkFDRV9NTUlPX18KPiArY2NmbGFncy15IDo9IC1EX19LVk1fTlZIRV9IWVBFUlZJU09SX18g LURfX0RJU0FCTEVfRVhQT1JUUyBcCj4gKyAgICAgICAgICAgIC1EX19ESVNBQkxFX1RSQUNFX01N SU9fXyAgLURfX0tWTV9fCj4gIGNjZmxhZ3MteSArPSAtZm5vLXN0YWNrLXByb3RlY3RvciAgICAg IFwKPiAgICAgICAgICAgICAgLURESVNBQkxFX0JSQU5DSF9QUk9GSUxJTkcgXAo+ICAgICAgICAg ICAgICAkKERJU0FCTEVfU1RBQ0tMRUFLX1BMVUdJTikKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02 NC9rdm0vaHlwL3ZoZS9NYWtlZmlsZSBiL2FyY2gvYXJtNjQva3ZtL2h5cC92aGUvTWFrZWZpbGUK PiBpbmRleCAzYjllNTQ2NGI1YjMuLjU0Y2QzYzQ0NDEwMiAxMDA2NDQKPiAtLS0gYS9hcmNoL2Fy bTY0L2t2bS9oeXAvdmhlL01ha2VmaWxlCj4gKysrIGIvYXJjaC9hcm02NC9rdm0vaHlwL3ZoZS9N YWtlZmlsZQo+IEBAIC00LDcgKzQsNyBAQAo+ICAjCj4KPiAgYXNmbGFncy15IDo9IC1EX19LVk1f VkhFX0hZUEVSVklTT1JfXwo+IC1jY2ZsYWdzLXkgOj0gLURfX0tWTV9WSEVfSFlQRVJWSVNPUl9f Cj4gK2NjZmxhZ3MteSA6PSAtRF9fS1ZNX1ZIRV9IWVBFUlZJU09SX18gLURfX0tWTV9fCj4KPiAg b2JqLXkgOj0gdGltZXItc3IubyBzeXNyZWctc3IubyBkZWJ1Zy1zci5vIHN3aXRjaC5vIHRsYi5v Cj4gIG9iai15ICs9IC4uL3ZnaWMtdjMtc3IubyAuLi9hYXJjaDMyLm8gLi4vdmdpYy12Mi1jcHVp Zi1wcm94eS5vIC4uL2VudHJ5Lm8gXAo+IGRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5jbHVkZS9h c20va3ZtX2hvc3QuaCBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCj4gaW5kZXgg ZjhmNjNkMGFhMzk5Li42ZmQ3Yzk5OGQ3YjkgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9taXBzL2luY2x1 ZGUvYXNtL2t2bV9ob3N0LmgKPiArKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20va3ZtX2hvc3Qu aAo+IEBAIC0yNSw2ICsyNSw3IEBACj4gICNpbmNsdWRlIDxhc20vaW5zdC5oPgo+ICAjaW5jbHVk ZSA8YXNtL21pcHNyZWdzLmg+Cj4KPiArI2lmZGVmIF9fS1ZNX18KPiAgLyogTUlQUyBLVk0gcmVn aXN0ZXIgaWRzICovCj4gICNkZWZpbmUgTUlQU19DUDBfMzIoX1IsIF9TKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKPiAgICAgICAgIChLVk1fUkVHX01JUFNfQ1AwIHwgS1ZN X1JFR19TSVpFX1UzMiB8ICg4ICogKF9SKSArIChfUykpKQo+IEBAIC04OTcsNCArODk4LDUgQEAg c3RhdGljIGlubGluZSB2b2lkIGt2bV9hcmNoX3ZjcHVfdW5ibG9ja2luZyhzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUpIHt9Cj4KPiAgI2RlZmluZSBfX0tWTV9IQVZFX0FSQ0hfRkxVU0hfUkVNT1RFX1RM QlMKPgo+ICsjZW5kaWYgLyogX19LVk1fXyAqLwo+ICAjZW5kaWYgLyogX19NSVBTX0tWTV9IT1NU X0hfXyAqLwo+IGRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL2FzbS1vZmZzZXRzLmMgYi9h cmNoL21pcHMva2VybmVsL2FzbS1vZmZzZXRzLmMKPiBpbmRleCBkMWIxMWY2NmY3NDguLjhhMjMz YmRkZmVhMCAxMDA2NDQKPiAtLS0gYS9hcmNoL21pcHMva2VybmVsL2FzbS1vZmZzZXRzLmMKPiAr KysgYi9hcmNoL21pcHMva2VybmVsL2FzbS1vZmZzZXRzLmMKPiBAQCAtOSw2ICs5LDggQEAKPiAg ICogS2V2aW4gS2lzc2VsbCwga2V2aW5rQG1pcHMuY29tIGFuZCBDYXJzdGVuIExhbmdnYWFyZCwg Y2Fyc3RlbmxAbWlwcy5jb20KPiAgICogQ29weXJpZ2h0IChDKSAyMDAwIE1JUFMgVGVjaG5vbG9n aWVzLCBJbmMuCj4gICAqLwo+ICsjZGVmaW5lIF9fS1ZNX18KPiArCj4gICNpbmNsdWRlIDxsaW51 eC9jb21wYXQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gICNpbmNsdWRlIDxsaW51 eC9zY2hlZC5oPgo+IGRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jv b2szcy5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9ib29rM3MuaAo+IGluZGV4IGJi ZjVlMmM1ZmUwOS4uODg4MGJjN2M4YTMyIDEwMDY0NAo+IC0tLSBhL2FyY2gvcG93ZXJwYy9pbmNs dWRlL2FzbS9rdm1fYm9vazNzLmgKPiArKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3Zt X2Jvb2szcy5oCj4gQEAgLTEzLDYgKzEzLDggQEAKPiAgI2luY2x1ZGUgPGxpbnV4L2t2bV9ob3N0 Lmg+Cj4gICNpbmNsdWRlIDxhc20va3ZtX2Jvb2szc19hc20uaD4KPgo+ICsjaWZkZWYgX19LVk1f Xwo+ICsKPiAgc3RydWN0IGt2bXBwY19iYXQgewo+ICAgICAgICAgdTY0IHJhdzsKPiAgICAgICAg IHUzMiBiZXBpOwo+IEBAIC00ODMsNCArNDg1LDUgQEAgc3RhdGljIGlubGluZSB1MzIga3ZtcHBj X3BhY2tfdmNwdV9pZChzdHJ1Y3Qga3ZtICprdm0sIHUzMiBpZCkKPiAgICAgICAgIHJldHVybiBw YWNrZWRfaWQ7Cj4gIH0KPgo+ICsjZW5kaWYgLyogX19LVk1fXyAqLwo+ICAjZW5kaWYgLyogX19B U01fS1ZNX0JPT0szU19IX18gKi8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUv YXNtL2t2bV9ib29rM3NfNjQuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9rdm1fYm9vazNz XzY0LmgKPiBpbmRleCBkNDkwNjVhZjA4ZTkuLmE4MDc3MTZjY2FlNiAxMDA2NDQKPiAtLS0gYS9h cmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2szc182NC5oCj4gKysrIGIvYXJjaC9wb3dl cnBjL2luY2x1ZGUvYXNtL2t2bV9ib29rM3NfNjQuaAo+IEBAIC0xNiw2ICsxNiw3IEBACj4gICNp bmNsdWRlIDxhc20vcHBjLW9wY29kZS5oPgo+ICAjaW5jbHVkZSA8YXNtL3B0ZS13YWxrLmg+Cj4K PiArI2lmZGVmIF9fS1ZNX18KPiAgLyoKPiAgICogU3RydWN0dXJlIGZvciBhIG5lc3RlZCBndWVz dCwgdGhhdCBpcywgZm9yIGEgZ3Vlc3QgdGhhdCBpcyBtYW5hZ2VkIGJ5Cj4gICAqIG9uZSBvZiBv dXIgZ3Vlc3RzLgo+IEBAIC02NzksNCArNjgwLDUgQEAgZXh0ZXJuIHB0ZV90ICpmaW5kX2t2bV9u ZXN0ZWRfZ3Vlc3RfcHRlKHN0cnVjdCBrdm0gKmt2bSwgdW5zaWduZWQgbG9uZyBscGlkLAo+Cj4g ICNlbmRpZiAvKiBDT05GSUdfS1ZNX0JPT0szU19IVl9QT1NTSUJMRSAqLwo+Cj4gKyNlbmRpZiAv KiBfX0tWTV9fICovCj4gICNlbmRpZiAvKiBfX0FTTV9LVk1fQk9PSzNTXzY0X0hfXyAqLwo+IGRp ZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2tlLmggYi9hcmNoL3Bv d2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2tlLmgKPiBpbmRleCAwYzM0MDFiMmUxOWUuLjg1ZWJj MDMxNDUzOSAxMDA2NDQKPiAtLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2tl LmgKPiArKysgYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX2Jvb2tlLmgKPiBAQCAtMTIs NiArMTIsOCBAQAo+ICAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiAgI2luY2x1ZGUgPGxpbnV4 L2t2bV9ob3N0Lmg+Cj4KPiArI2lmZGVmIF9fS1ZNX18KPiArCj4gIC8qCj4gICAqIE51bWJlciBv ZiBhdmFpbGFibGUgbHBpZHMuIE9ubHkgdGhlIGxvdy1vcmRlciA2IGJpdHMgb2YgTFBJRCByZ2lz dGVyIGFyZQo+ICAgKiBpbXBsZW1lbnRlZCBvbiBlNTAwbWMrIGNvcmVzLgo+IEBAIC0xMDUsNCAr MTA3LDYgQEAgc3RhdGljIGlubGluZSBib29sIGt2bXBwY19zdXBwb3J0c19tYWdpY19wYWdlKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiAgICAgICAgIHJldHVybiBmYWxzZTsKPiAgI2VuZGlmCj4g IH0KPiArCj4gKyNlbmRpZiAvKiBfX0tWTV9fICovCj4gICNlbmRpZiAvKiBfX0FTTV9LVk1fQk9P S0VfSF9fICovCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9rdm1faG9z dC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKPiBpbmRleCAxNGVlMGRl Y2U4NTMuLjFlN2EwMDhjZTA4NSAxMDA2NDQKPiAtLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9h c20va3ZtX2hvc3QuaAo+ICsrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9rdm1faG9zdC5o Cj4gQEAgLTE0LDYgKzE0LDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+ICAj aW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2t2bV90eXBlcy5oPgo+ ICsjaW5jbHVkZSA8bGludXgvbW11X25vdGlmaWVyLmg+Cj4gICNpbmNsdWRlIDxsaW51eC90aHJl YWRzLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgo+ICAjaW5jbHVkZSA8bGludXgv a3ZtX3BhcmEuaD4KPiBAQCAtMjUsMTMgKzI2LDE0IEBACj4gICNpbmNsdWRlIDxhc20vY2FjaGVm bHVzaC5oPgo+ICAjaW5jbHVkZSA8YXNtL2h2Y2FsbC5oPgo+ICAjaW5jbHVkZSA8YXNtL21jZS5o Pgo+ICsjaW5jbHVkZSA8YXNtL2NwdXRocmVhZHMuaD4KPgo+ICsjaWZkZWYgX19LVk1fXwo+ICAj ZGVmaW5lIF9fS1ZNX0hBVkVfQVJDSF9WQ1BVX0RFQlVHRlMKPgo+ICAjZGVmaW5lIEtWTV9NQVhf VkNQVVMgICAgICAgICAgTlJfQ1BVUwo+ICAjZGVmaW5lIEtWTV9NQVhfVkNPUkVTICAgICAgICAg TlJfQ1BVUwo+Cj4gLSNpbmNsdWRlIDxhc20vY3B1dGhyZWFkcy5oPgo+Cj4gICNpZmRlZiBDT05G SUdfS1ZNX0JPT0szU19IVl9QT1NTSUJMRQo+ICAjaW5jbHVkZSA8YXNtL2t2bV9ib29rM3NfYXNt Lmg+ICAgICAgICAgICAgICAgIC8qIGZvciBNQVhfU01UX1RIUkVBRFMgKi8KPiBAQCAtNjAsOCAr NjIsNiBAQAo+ICAjZGVmaW5lIEtWTV9SRVFfRVBSX0VYSVQgICAgICAgS1ZNX0FSQ0hfUkVRKDEp Cj4gICNkZWZpbmUgS1ZNX1JFUV9QRU5ESU5HX1RJTUVSICBLVk1fQVJDSF9SRVEoMikKPgo+IC0j aW5jbHVkZSA8bGludXgvbW11X25vdGlmaWVyLmg+Cj4gLQo+ICAjZGVmaW5lIEtWTV9BUkNIX1dB TlRfTU1VX05PVElGSUVSCj4KPiAgI2RlZmluZSBIUFRFR19DQUNIRV9OVU0gICAgICAgICAgICAg ICAgICAgICAgICAoMSA8PCAxNSkKPiBAQCAtODgzLDQgKzg4Myw1IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBrdm1fYXJjaF9zY2hlZF9pbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBjcHUpIHt9 Cj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBrdm1fYXJjaF92Y3B1X2Jsb2NraW5nKHN0cnVjdCBrdm1f dmNwdSAqdmNwdSkge30KPiAgc3RhdGljIGlubGluZSB2b2lkIGt2bV9hcmNoX3ZjcHVfdW5ibG9j a2luZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpIHt9Cj4KPiArI2VuZGlmIC8qIF9fS1ZNX18gKi8K PiAgI2VuZGlmIC8qIF9fUE9XRVJQQ19LVk1fSE9TVF9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvYXJj aC9wb3dlcnBjL2luY2x1ZGUvYXNtL2t2bV9wcGMuaCBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2Fz bS9rdm1fcHBjLmgKPiBpbmRleCBlYWQyYWQ4OTJlYmMuLjAzZDk5OThkMDExMSAxMDA2NDQKPiAt LS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20va3ZtX3BwYy5oCj4gKysrIGIvYXJjaC9wb3dl cnBjL2luY2x1ZGUvYXNtL2t2bV9wcGMuaAo+IEBAIC0xODMsNiArMTgzLDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIGt2bXBwY19jbGVhcl9ob3N0X2lwaShpbnQgY3B1KQo+ICBzdGF0aWMgaW5saW5l IGJvb2wga3ZtX2h2X21vZGVfYWN0aXZlKHZvaWQpICAgICAgICAgICAgeyByZXR1cm4gZmFsc2U7 IH0KPiAgI2VuZGlmCj4KPiArI2lmZGVmIF9fS1ZNX18KPiAgLyoKPiAgICogS1ZNUFBDX0lOU1Rf U1dfQlJFQUtQT0lOVCBpcyBkZWJ1ZyBJbnN0cnVjdGlvbgo+ICAgKiBmb3Igc3VwcG9ydGluZyBz b2Z0d2FyZSBicmVha3BvaW50Lgo+IEBAIC0xMDc2LDQgKzEwNzcsNSBAQCBzdGF0aWMgaW5saW5l IHVsb25nIGt2bXBwY19nZXRfZWFfaW5kZXhlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBy YSwgaW50IHJiKQo+ICAgICAgICAgcmV0dXJuIGVhOwo+ICB9Cj4KPiArI2VuZGlmIC8qIF9fS1ZN X18gKi8KPiAgI2VuZGlmIC8qIF9fUE9XRVJQQ19LVk1fUFBDX0hfXyAqLwo+IGRpZmYgLS1naXQg YS9hcmNoL3Bvd2VycGMva2VybmVsL2FzbS1vZmZzZXRzLmMgYi9hcmNoL3Bvd2VycGMva2VybmVs L2FzbS1vZmZzZXRzLmMKPiBpbmRleCA5ZjE0ZDk1YjhiMzIuLjg3MmQ0NDk3MTUzNiAxMDA2NDQK PiAtLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2FzbS1vZmZzZXRzLmMKPiArKysgYi9hcmNoL3Bv d2VycGMva2VybmVsL2FzbS1vZmZzZXRzLmMKPiBAQCAtOCw2ICs4LDcgQEAKPiAgICogY29tcGls ZSB0aGlzIGZpbGUgdG8gYXNzZW1ibGVyLCBhbmQgdGhlbiBleHRyYWN0IHRoZQo+ICAgKiAjZGVm aW5lcyBmcm9tIHRoZSBhc3NlbWJseS1sYW5ndWFnZSBvdXRwdXQuCj4gICAqLwo+ICsjZGVmaW5l IF9fS1ZNX18KPgo+ICAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+Cj4gICNpbmNsdWRlIDxsaW51 eC9zaWduYWwuaD4KPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1faG9z dC5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCj4gaW5kZXggMWViZjIwZGZi YWE2Li5hODFhZThjNGI3MzkgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9r dm1faG9zdC5oCj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCj4gQEAg LTIyLDYgKzIyLDggQEAKPiAgI2luY2x1ZGUgPGFzbS9rdm1fdmNwdV90aW1lci5oPgo+ICAjaW5j bHVkZSA8YXNtL2t2bV92Y3B1X3BtdS5oPgo+Cj4gKyNpZmRlZiBfX0tWTV9fCj4gKwo+ICAjZGVm aW5lIEtWTV9NQVhfVkNQVVMgICAgICAgICAgICAgICAgICAxMDI0Cj4KPiAgI2RlZmluZSBLVk1f SEFMVF9QT0xMX05TX0RFRkFVTFQgICAgICAgNTAwMDAwCj4gQEAgLTM1NCw0ICszNTYsNSBAQCBi b29sIGt2bV9yaXNjdl92Y3B1X2hhc19pbnRlcnJ1cHRzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwg dTY0IG1hc2spOwo+ICB2b2lkIGt2bV9yaXNjdl92Y3B1X3Bvd2VyX29mZihzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUpOwo+ICB2b2lkIGt2bV9yaXNjdl92Y3B1X3Bvd2VyX29uKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSk7Cj4KPiArI2VuZGlmIC8qIF9fS1ZNX18gKi8KPiAgI2VuZGlmIC8qIF9fUklTQ1Zf S1ZNX0hPU1RfSF9fICovCj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2FzbS1vZmZz ZXRzLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9hc20tb2Zmc2V0cy5jCj4gaW5kZXggZDZhNzVhYWMx ZDI3Li40NzYyNjNlNzhmMzkgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvYXNtLW9m ZnNldHMuYwo+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2FzbS1vZmZzZXRzLmMKPiBAQCAtNSw2 ICs1LDcgQEAKPiAgICovCj4KPiAgI2RlZmluZSBHRU5FUkFUSU5HX0FTTV9PRkZTRVRTCj4gKyNk ZWZpbmUgX19LVk1fXwo+Cj4gICNpbmNsdWRlIDxsaW51eC9rYnVpbGQuaD4KPiAgI2luY2x1ZGUg PGxpbnV4L21tLmg+Cj4gZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9rdm1faG9z dC5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKPiBpbmRleCA0MjdmOTUyOGE3 YjYuLjkxNTM0MjBiYjVhYyAxMDA2NDQKPiAtLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20va3Zt X2hvc3QuaAo+ICsrKyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCj4gQEAgLTM4 MCw2ICszODAsMTAgQEAgc3RydWN0IHNpZV9wYWdlIHsKPiAgICAgICAgIF9fdTggcmVzZXJ2ZWQ3 MDBbMjMwNF07ICAgICAgICAgLyogMHgwNzAwICovCj4gIH07Cj4KPiArZXh0ZXJuIGNoYXIgc2ll X2V4aXQ7Cj4gKwo+ICsjaWZkZWYgX19LVk1fXwo+ICsKPiAgc3RydWN0IGt2bV92Y3B1X3N0YXQg ewo+ICAgICAgICAgc3RydWN0IGt2bV92Y3B1X3N0YXRfZ2VuZXJpYyBnZW5lcmljOwo+ICAgICAg ICAgdTY0IGV4aXRfdXNlcnNwYWNlOwo+IEBAIC0xMDI4LDggKzEwMzIsNiBAQCBzdGF0aWMgaW5s aW5lIGludCBzaWU2NGEoc3RydWN0IGt2bV9zMzkwX3NpZV9ibG9jayAqc2llX2Jsb2NrLCB1NjQg KnJzYSkKPiAgICAgICAgIHJldHVybiBfX3NpZTY0YSh2aXJ0X3RvX3BoeXMoc2llX2Jsb2NrKSwg c2llX2Jsb2NrLCByc2EpOwo+ICB9Cj4KPiAtZXh0ZXJuIGNoYXIgc2llX2V4aXQ7Cj4gLQo+ICBi b29sIGt2bV9zMzkwX3B2X2lzX3Byb3RlY3RlZChzdHJ1Y3Qga3ZtICprdm0pOwo+ICBib29sIGt2 bV9zMzkwX3B2X2NwdV9pc19wcm90ZWN0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPgo+IEBA IC0xMDQ5LDYgKzEwNTEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQga3ZtX2FyY2hfdmNwdV91bmJs b2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkge30KPgo+ICAjZGVmaW5lIF9fS1ZNX0hBVkVf QVJDSF9WTV9GUkVFCj4gIHZvaWQga3ZtX2FyY2hfZnJlZV92bShzdHJ1Y3Qga3ZtICprdm0pOwo+ ICsjZW5kaWYgLyogX19LVk1fXyAqLwo+Cj4gIHN0cnVjdCB6cGNpX2t2bV9ob29rIHsKPiAgICAg ICAgIGludCAoKmt2bV9yZWdpc3Rlcikodm9pZCAqb3BhcXVlLCBzdHJ1Y3Qga3ZtICprdm0pOwo+ IGRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2FzbS1vZmZzZXRzLmMgYi9hcmNoL3MzOTAv a2VybmVsL2FzbS1vZmZzZXRzLmMKPiBpbmRleCBmYTVmNjg4NWM3NGEuLjIyZWQ2NzM4NzFlZSAx MDA2NDQKPiAtLS0gYS9hcmNoL3MzOTAva2VybmVsL2FzbS1vZmZzZXRzLmMKPiArKysgYi9hcmNo L3MzOTAva2VybmVsL2FzbS1vZmZzZXRzLmMKPiBAQCAtNiw2ICs2LDcgQEAKPiAgICovCj4KPiAg I2RlZmluZSBBU01fT0ZGU0VUU19DCj4gKyNkZWZpbmUgX19LVk1fXwo+Cj4gICNpbmNsdWRlIDxs aW51eC9rYnVpbGQuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2t2bV9ob3N0Lmg+Cj4gZGlmZiAtLWdp dCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9rdm1faG9zdC5oCj4gaW5kZXggMjlkYjg3MGRiYWFlLi5lZGE0NWE5Mzc2NjYgMTAwNjQ0Cj4g LS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAo+ICsrKyBiL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL2t2bV9ob3N0LmgKPiBAQCAtMzcsNiArMzcsOCBAQAo+ICAjaW5jbHVkZSA8YXNt L2t2bV92Y3B1X3JlZ3MuaD4KPiAgI2luY2x1ZGUgPGFzbS9oeXBlcnYtdGxmcy5oPgo+Cj4gKyNp ZmRlZiBfX0tWTV9fCj4gKwo+ICAjZGVmaW5lIF9fS1ZNX0hBVkVfQVJDSF9WQ1BVX0RFQlVHRlMK Pgo+ICAjZGVmaW5lIEtWTV9NQVhfVkNQVVMgMTAyNAo+IEBAIC0yMjI5LDQgKzIyMzEsNSBAQCBp bnQgbWVtc2xvdF9ybWFwX2FsbG9jKHN0cnVjdCBrdm1fbWVtb3J5X3Nsb3QgKnNsb3QsIHVuc2ln bmVkIGxvbmcgbnBhZ2VzKTsKPiAgICovCj4gICNkZWZpbmUgS1ZNX0VYSVRfSFlQRVJDQUxMX01C WiAgICAgICAgIEdFTk1BU0tfVUxMKDMxLCAxKQo+Cj4gKyNlbmRpZiAvKiBfX0tWTV9fICovCj4g ICNlbmRpZiAvKiBfQVNNX1g4Nl9LVk1fSE9TVF9IICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv czM5MC9jcnlwdG8vdmZpb19hcF9kcnYuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9k cnYuYwo+IGluZGV4IGE1YWIwM2U0MmZmMS4uNTU3NDRmMGY0NzU4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvczM5MC9jcnlw dG8vdmZpb19hcF9kcnYuYwo+IEBAIC03LDYgKzcsNyBAQAo+ICAgKiBBdXRob3Iocyk6IFRvbnkg S3Jvd2lhayA8YWtyb3dpYWtAbGludXguaWJtLmNvbT4KPiAgICogICAgICAgICAgIFBpZXJyZSBN b3JlbCA8cG1vcmVsQGxpbnV4LmlibS5jb20+Cj4gICAqLwo+ICsjZGVmaW5lIF9fS1ZNX18KPgo+ ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNl dGFibGUuaD4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX29wcy5j IGIvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX29wcy5jCj4gaW5kZXggNGRiNTM4YTU1MTky Li4wZGQ5OGY0MmU5ZDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2Fw X29wcy5jCj4gKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX29wcy5jCj4gQEAgLTgs NiArOCw4IEBACj4gICAqICAgICAgICAgICBIYWxpbCBQYXNpYyA8cGFzaWNAbGludXguaWJtLmNv bT4KPiAgICogICAgICAgICAgIFBpZXJyZSBNb3JlbCA8cG1vcmVsQGxpbnV4LmlibS5jb20+Cj4g ICAqLwo+ICsjZGVmaW5lIF9fS1ZNX18KPiArCj4gICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4K PiAgI2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmggYi9pbmNsdWRlL2xpbnV4L2t2 bV9ob3N0LmgKPiBpbmRleCBkNTIwZDY4MDEwNzAuLmYwYWZlNTQ5YzBkNiAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0 LmgKPiBAQCAtNDUsNiArNDUsOCBAQAo+ICAjaW5jbHVkZSA8YXNtL2t2bV9ob3N0Lmg+Cj4gICNp bmNsdWRlIDxsaW51eC9rdm1fZGlydHlfcmluZy5oPgo+Cj4gKyNpZmRlZiBfX0tWTV9fCj4gKwo+ ICAjaWZuZGVmIEtWTV9NQVhfVkNQVV9JRFMKPiAgI2RlZmluZSBLVk1fTUFYX1ZDUFVfSURTIEtW TV9NQVhfVkNQVVMKPiAgI2VuZGlmCj4gQEAgLTIzMjksNCArMjMzMSw2IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBrdm1fYWNjb3VudF9wZ3RhYmxlX3BhZ2VzKHZvaWQgKnZpcnQsIGludCBucikKPiAg LyogTWF4IG51bWJlciBvZiBlbnRyaWVzIGFsbG93ZWQgZm9yIGVhY2gga3ZtIGRpcnR5IHJpbmcg Ki8KPiAgI2RlZmluZSAgS1ZNX0RJUlRZX1JJTkdfTUFYX0VOVFJJRVMgIDY1NTM2Cj4KPiArI2Vu ZGlmIC8qIF9fS1ZNX18gKi8KPiArCj4gICNlbmRpZgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2t2bV90eXBlcy5oIGIvaW5jbHVkZS9saW51eC9rdm1fdHlwZXMuaAo+IGluZGV4IDZmNDcz N2Q1MDQ2YS4uNDgwNGJjZTJhNjU1IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgva3ZtX3R5 cGVzLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L2t2bV90eXBlcy5oCj4gQEAgLTQ4LDYgKzQ4LDgg QEAgdHlwZWRlZiB1NjQgICAgICAgICAgICBoZm5fdDsKPgo+ICB0eXBlZGVmIGhmbl90IGt2bV9w Zm5fdDsKPgo+ICsjaWZkZWYgX19LVk1fXwo+ICsKPiAgZW51bSBwZm5fY2FjaGVfdXNhZ2Ugewo+ ICAgICAgICAgS1ZNX0dVRVNUX1VTRVNfUEZOID0gQklUKDApLAo+ICAgICAgICAgS1ZNX0hPU1Rf VVNFU19QRk4gID0gQklUKDEpLAo+IEBAIC0xMjMsNCArMTI1LDUgQEAgc3RydWN0IGt2bV92Y3B1 X3N0YXRfZ2VuZXJpYyB7Cj4KPiAgI2RlZmluZSBLVk1fU1RBVFNfTkFNRV9TSVpFICAgIDQ4Cj4K PiArI2VuZGlmIC8qIF9fS1ZNX18gKi8KPiAgI2VuZGlmIC8qIF9fS1ZNX1RZUEVTX0hfXyAqLwo+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9rdm0uaCBiL2luY2x1ZGUvdHJhY2Uv ZXZlbnRzL2t2bS5oCj4gaW5kZXggM2JkMzFlYTIzZmVlLi5hZWU4NTUyN2JiNzQgMTAwNjQ0Cj4g LS0tIGEvaW5jbHVkZS90cmFjZS9ldmVudHMva3ZtLmgKPiArKysgYi9pbmNsdWRlL3RyYWNlL2V2 ZW50cy9rdm0uaAo+IEBAIC0yLDggKzIsMTMgQEAKPiAgI2lmICFkZWZpbmVkKF9UUkFDRV9LVk1f TUFJTl9IKSB8fCBkZWZpbmVkKFRSQUNFX0hFQURFUl9NVUxUSV9SRUFEKQo+ICAjZGVmaW5lIF9U UkFDRV9LVk1fTUFJTl9ICj4KPiArI2luY2x1ZGUgPGxpbnV4L2t2bV9ob3N0Lmg+Cj4gICNpbmNs dWRlIDxsaW51eC90cmFjZXBvaW50Lmg+Cj4KPiArI2lmbmRlZiBfX0tWTV9fCj4gK3N0YXRpY19h c3NlcnQoMCwgIkRvIG5vdCBpbmNsdWRlIHRyYWNlL2V2ZW50cy9rdm0uaCBmcm9tIG5vbi1LVk0g Y29kZSIpOwo+ICsjZW5kaWYKPiArCj4gICN1bmRlZiBUUkFDRV9TWVNURU0KPiAgI2RlZmluZSBU UkFDRV9TWVNURU0ga3ZtCj4KPiBkaWZmIC0tZ2l0IGEvdmlydC9rdm0vTWFrZWZpbGUua3ZtIGIv dmlydC9rdm0vTWFrZWZpbGUua3ZtCj4gaW5kZXggZTg1MDc5YWQyNDVkLi40ZGUxMGQ0NDdlZjMg MTAwNjQ0Cj4gLS0tIGEvdmlydC9rdm0vTWFrZWZpbGUua3ZtCj4gKysrIGIvdmlydC9rdm0vTWFr ZWZpbGUua3ZtCj4gQEAgLTMsNyArMyw3IEBACj4gICMgTWFrZWZpbGUgZm9yIEtlcm5lbC1iYXNl ZCBWaXJ0dWFsIE1hY2hpbmUgbW9kdWxlCj4gICMKPgo+IC1jY2ZsYWdzLXkgKz0gLUkkKHNyY3Ry ZWUpLyQoc3JjKQo+ICtjY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpLyQoc3JjKSAtRF9fS1ZNX18K Pgo+ICBLVk0gPz0gLi4vLi4vLi4vdmlydC9rdm0KPgo+IC0tCj4gMi40Mi4wLjQ1OS5nZTRlMzk2 ZmQ1ZS1nb29nCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlz Y3YK