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 D1AC3C433F5 for ; Tue, 11 Jan 2022 08:54:07 +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:MIME-Version:Date:Message-ID:From: References:CC:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=tQJwMMcWn4Kmt2vhVzD41BhsyaZEzxJeKgv52yW5rhk=; b=v93+XhlG3pxu2tfmsixUaTksQO cXjuZ750jTO8uXkgZh/utLgCubu4SqIL72LdP+WmG6Hy371x+EQ8wGumKAVp2zbInK3eJjvtpWcm9 u0JjYUZKvhSdX91Kq+groBX9CWBCT5me9MkpbW0wbMHNoJUCqsHtx4cZF863V8b96z7tCVN6Bo8gX PlZxsySWZ4jZLrEeDj+3sEjrht9gpr2aekDV8U05JLeBrf8buzVPfE4T4BmdQX3/ad5ziEQf5446A 0yykx7YbuBCrDTkBb3KXiVbztBvS5k3KfMxTQela9Z3MqkNr2/oP2b85OIwrXUFmP9UDIqRwSOpXe NuSrfhlA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n7CtZ-00FQ0r-6h; Tue, 11 Jan 2022 08:52:45 +0000 Received: from szxga08-in.huawei.com ([45.249.212.255]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n7CtT-00FPx8-TU for linux-arm-kernel@lists.infradead.org; Tue, 11 Jan 2022 08:52:42 +0000 Received: from dggeme758-chm.china.huawei.com (unknown [172.30.72.56]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4JY49j49n7z1FCbl; Tue, 11 Jan 2022 16:48:57 +0800 (CST) Received: from [10.67.110.136] (10.67.110.136) by dggeme758-chm.china.huawei.com (10.3.19.104) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.20; Tue, 11 Jan 2022 16:52:32 +0800 Subject: Re: [PATCH] arm64: Make CONFIG_ARM64_PSEUDO_NMI macro wrap all the pseudo-NMI code To: Mark Rutland CC: , , , , , , , References: <20220107085536.214501-1-heying24@huawei.com> From: He Ying Message-ID: <168f7e83-e815-f10e-3a43-8529aab77f1e@huawei.com> Date: Tue, 11 Jan 2022 16:52:32 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [10.67.110.136] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To dggeme758-chm.china.huawei.com (10.3.19.104) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220111_005240_346176_595AC001 X-CRM114-Status: GOOD ( 59.25 ) 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 SGkgTWFyaywKCuWcqCAyMDIyLzEvMTAgMTk6MjYsIE1hcmsgUnV0bGFuZCDlhpnpgZM6Cj4gT24g TW9uLCBKYW4gMTAsIDIwMjIgYXQgMTE6MDA6NDNBTSArMDgwMCwgSGUgWWluZyB3cm90ZToKPj4g SGkgTWFyaywKPj4KPj4gSSdtIGp1c3QgYmFjayBmcm9tIHRoZSB3ZWVrZW5kIGFuZCBzb3JyeSBm b3IgdGhlIGRlbGF5ZWQgcmVwbHkuCj4+Cj4+Cj4+IOWcqCAyMDIyLzEvNyAyMToxOSwgTWFyayBS dXRsYW5kIOWGmemBkzoKPj4+IE9uIEZyaSwgSmFuIDA3LCAyMDIyIGF0IDAzOjU1OjM2QU0gLTA1 MDAsIEhlIFlpbmcgd3JvdGU6Cj4+Pj4gT3VyIHByb2R1Y3QgaGFzIGJlZW4gdXBkYXRpbmcgaXRz IGtlcm5lbCBmcm9tIDQuNCB0byA1LjEwIHJlY2VudGx5IGFuZAo+Pj4+IGZvdW5kIGEgcGVyZm9y bWFuY2UgaXNzdWUuIFdlIGRvIGEgYnVzc2luZXNzIHRlc3QgY2FsbGVkIEFSUCB0ZXN0LCB3aGlj aAo+Pj4+IHRlc3RzIHRoZSBsYXRlbmN5IGZvciBhIHBpbmctcG9uZyBwYWNrZXRzIHRyYWZmaWMg d2l0aCBhIGNlcnRhaW4gcGF5bG9hZC4KPj4+PiBUaGUgcmVzdWx0IGlzIGFzIGZvbGxvd2luZy4K Pj4+Pgo+Pj4+ICAgIC0gNC40IGtlcm5lbDogYXZnID0gfjIwcwo+Pj4+ICAgIC0gNS4xMCBrZXJu ZWwgKENPTkZJR19BUk02NF9QU0VVRE9fTk1JIGlzIG5vdCBzZXQpOiBhdmcgPSB+NDBzCj4+PiBI YXZlIHlvdSB0ZXN0ZWQgd2l0aCBhIHJlY2VudCBtYWlubGluZSBrZXJuZWwsIGUuZy4gdjUuMTU/ Cj4+IEFjdHVhbGxseSBubywgdGhhdCdzIGJlY2F1c2UgdGhpcyB0ZXN0IGlzIG9ubHkgYXZhaWxh YmxlIGZvciB0aGUgcHJvZHVjdAo+PiBlbnZpcm9ubWVudCBhbmQKPj4KPj4gd2UgZG9uJ3QgaGF2 ZSBhbiBhdmFpbGFibGUgNS4xNSBrZXJuZWwgZm9yIGl0IHlldC4KPiBPazsgZG8geW91IHNlZSBh bnl0aGluZyBjb21wYXJhYmxlIHdpdGggYW55IHRlc3RzIGF2YWlsYWJsZSB0byB1cHN0cmVhbQo+ IGRldmVsb3BlcnM/IGUuZy4gaGFja2JlbmNoIG9yIGBwZXJmIGJlbmNoIHNjaGVkYCA/CgpJJ20g bm90IHN1cmUuIFRoZSB0ZXN0IGlzIHNvbWUga2luZCBvZiBuZXR3b3JrIHRlc3QuIEFuZCBJIGRv bid0IGtub3cgd2hpY2gKCmJlbmNoIHRlc3QgaXMgY29tcGFyYWJsZS4KCj4KPj4+IElzIHRoaXMg dGVzdCBwdWJsaWNseSBhdmFpbGFibGUsIGFuZCBjYW4geW91IHNheSB3aGljaCBoYXJkcndhcmUg KGUuZy4gd2hpY2gKPj4+IENQVSBpbXBsZW1lbnRhdGlvbikgeW91J3JlIHRlc3Rpbmcgd2l0aD8K Pj4gQWN0dWFsbHkgbm8uIFRoZSB0ZXN0IGlzIG9ubHkgYXZhaWxhYmxlIGZvciBvdXIgcHJvZHVj dCBlbnZpcm9ubWVudCBub3cuIFdlCj4+IGFyZSB0ZXN0aW5nCj4+Cj4+IHdpdGggaGlzaWxpY29u IDEyMTMgKDQgQVJNIENvcnRleC1BNzIgY29yZXMpLgo+IFRoYW5rcyBmb3IgdGhlIENQVSBpbmZv OyB0aGVyZSBhcmUgYSBudW1iZXIgb2Ygb3RoZXIgQ29ydGV4LUE3MiBwbGF0Zm9ybXMgb3V0Cj4g dGhlcmUsIHNvIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvIHJlcHJvZHVjZSB0aGUgYmVoYXZpb3Vy IGVsc2V3aGVyZS4KCkkgYXNrZWQgb3VyIGNvbGxlZ3VlcyBob3cgdGhleSBkaWQgdGhlIHRlc3Qu IEFjdHVhbGx5IGl0J3MgYSBwcml2YXRlIAp0ZXN0IGFuZAoKZGlmZmljdWx0IHRvIGJlIHJlcHJv ZHVjZWQgZWxzZXdoZXJlLiBCdXQgSSBnb3QgYW5vdGhlciBpbXBvcnRhbnQgCmluZm9ybWF0aW9u LgoKU2VlIGJlbG93LgoKPgo+Pj4+IEkgaGF2ZSBiZWVuIGp1c3QgbGVhcm5pbmcgYXJtNjQgcHNl dWRvLU5NSSBjb2RlIGFuZCBoYXZlIGEgcXVlc3Rpb24sCj4+Pj4gd2h5IGlzIHRoZSByZWxhdGVk IGNvZGUgbm90IHdyYXBwZWQgYnkgQ09ORklHX0FSTTY0X1BTRVVET19OTUk/Cj4+PiBUaGUgY29k ZSBpbiBxdWVzdGlvbiBpcyBhbGwgcGF0Y2hlZCB2aWEgYWx0ZXJuYXRpdmVzLCBhbmQgd2hlbgo+ Pj4gQ09ORklHX0FSTTY0X1BTRVVET19OTUkgaXMgbm90IHNlbGVjdGVkLCB0aGUgY29kZSB3YXMg ZXhwZWN0ZWQgdG8gb25seSBoYXZlIHRoZQo+Pj4gb3ZlcmhlYWQgb2YgdGhlIHJlZ3VsYXIgREFJ RiBtYW5pcHVsYXRpb24uCj4+IEkgZG9uJ3QgdW5kZXJzdGFuZCBhbGVybmF0aXZlcyB2ZXJ5IHdl bGwgYW5kIEknbGwgYXByZWNpYXRlIGl0IGlmIHlvdSBjYW4KPj4gZXhwbGFpbiBpdCBhIGJpdCBt b3JlLgo+IENvZGUgdXNpbmcgYWx0ZXJuYXRpdmVzIGlzIHBhdGNoZWQgYXQgcnVudGltZSwgc28g Zm9yOgo+Cj4gCUFMVEVSTkFUSVZFKHgsIHksIGNhcCkKPgo+IC4uLiB0aGUgYHhgIGluc3RydWN0 aW9ucyB3aWxsIGJlIGlubGluZSBpbiB0aGUgY29kZSwgYW5kIHRoZSBgeWAgaW5zdHJ1Y3Rpb25z Cj4gd2lsbCBiZSBwbGFjZWQgaW4gYSBzZXBhcmF0ZSBsaW5rZXIgc2VjdGlvbi4gSWYgdGhlIGBj YXBgIGNhcGFiaWxpdHkgaXMKPiBkZXRlY3RlZCwgdGhlIGB5YCBpbnN0cnVjdGlvbnMgd2lsbCBi ZSBjb3BpZWQgb3ZlciB0aGUgYHhgIGluc3RydWN0aW9ucy4KPgo+IFNvIGZvcjoKPgo+IHwgYXNt IHZvbGF0aWxlKEFMVEVSTkFUSVZFKAo+IHwgICAgICAgICAibXNyICAgIGRhaWZjbHIsICMzICAg ICAgICAgICAgIC8vIGFyY2hfbG9jYWxfaXJxX2VuYWJsZSIsCj4gfCAgICAgICAgIF9fbXNyX3Mo U1lTX0lDQ19QTVJfRUwxLCAiJTAiKSwKPiB8ICAgICAgICAgQVJNNjRfSEFTX0lSUV9QUklPX01B U0tJTkcpCj4gfCAgICAgICAgIDoKPiB8ICAgICAgICAgOiAiciIgKCh1bnNpZ25lZCBsb25nKSBH SUNfUFJJT19JUlFPTikKPiB8ICAgICAgICAgOiAibWVtb3J5Iik7Cj4KPiAuLi4gd2hlcmUgQVJN NjRfSEFTX0lSUV9QUklPX01BU0tJTkcgaXMgbm90IGRldGVjdGVkLCB0aGUgaW5saW5lIGluc3Ry dWN0aW9ucwo+IHdpbGwgYmU6Cj4KPiB8IG1zciAgICBkYWlmY2xyLCAjMyAgICAgICAgICAgICAv LyBhcmNoX2xvY2FsX2lycV9lbmFibGUKPgo+IEEgc2VwYXJhdGUgbGlua2VyIHNlY3Rpb24gd2ls bCBjb250YWluOgo+IC4uLiBhbmQgYSBzZXBhcmF0ZSBsaW5rZXIgc2VjdGlvbiB3aWxsIGNvbnRh aW46Cj4KPiB8IF9fbXNyX3MoU1lTX0lDQ19QTVJfRUwxLCAiJTAiCj4KPiAuLi4gYW5kIHNvbWUg bWV0YWRhdGEgd2lsbCBiZSByZWNvcmRlZCBpbiBhIGBzdHJ1Y3QgYWx0X2luc3RyYCwgd2hpY2gg d2lsbCBiZQo+IHVudXNlZCBhbmQgd2lsbCB0YWtlIHNvbWUgc3BhY2UsIGJ1dCBzaG91bGQgaGF2 ZSBubyBydW50aW1lIG92ZXJoZWFkIC0tIHRoZQo+IHJ1bnRpbWUgY29zdCBzaG91bGQgb25seSBi ZSB0aGUgYG1zciBkYWlmY2xyLCAjM2AgaW5zdHJ1Y3Rpb24uCgpUaGFuayB5b3UgdmVyeSBtdWNo IGZvciB0aGUgZGV0YWlsZWQgZXhwbGFuYXRpb24uIEkgdGhpbmsgSSB1bmRlcnN0YW5kIAppdCBi ZXR0ZXIuCgpJIGFncmVlIHRoYXQgdGhlc2UgQUxFUk5BVElWRXMgbWlnaHQgb25seSBicmluZyBz b21lIGFkZGl0aW9uYWwgc3BhY2UgYnV0IG5vCgpydW50aW1lIG92ZXJoZWFkLgoKPgo+Pj4+IEkg d29uZGVyIGlmIHRoaXMgYnJpbmdzIHNvbWUgcGVyZm9ybWFuY2UgcmVncmVzc2lvbi4KPj4+Pgo+ Pj4+IEZpcnN0LCBJIG1ha2UgdGhpcyBwYXRjaCBhbmQgdGhlbiBkbyB0aGUgdGVzdCBhZ2Fpbi4g SGVyZSdzIHRoZSByZXN1bHQuCj4+Pj4KPj4+PiAgICAtIDUuMTAga2VybmVsIHdpdGggdGhpcyBw YXRjaCBub3QgYXBwbGllZDogYXZnID0gfjQwcwo+Pj4+ICAgIC0gNS4xMCBrZXJuZWwgd2l0aCB0 aGlzIHBhdGNoIGFwcGxpZWQ6IGF2ZyA9IH4yM3MKPj4+Pgo+Pj4+IEFtYXppbmchIE5vdGUgdGhh dCBhbGwga2VybmVsIGlzIGJ1aWx0IHdpdGggQ09ORklHX0FSTTY0X1BTRVVET19OTUkgbm90Cj4+ Pj4gc2V0LiBJdCBzZWVtcyB0aGUgcHNldWRvLU5NSSBmZWF0dXJlIGFjdHVhbGx5IGJyaW5ncyBz b21lIG92ZXJoZWFkIHRvCj4+Pj4gcGVyZm9ybWFuY2UgZXZlbnQgaWYgQ09ORklHX0FSTTY0X1BT RVVET19OTUkgaXMgbm90IHNldC4KPj4+IEknbSBzdXJwcmlzZWQgdGhlIG92ZXJoZWFkIGlzIHNv IHNpZ25pZmljYW50OyBhcyBhYm92ZSB0aGlzIGlzIGFsbCBwYXRjaGVkIGluCj4+PiBhbmQgc28g dGhlIG92ZXJoZWFkIHdoZW4gdGhpcyBpcyBkaXNhYmxlZCBpcyBleHBlY3RlZCB0byBiZSAqZXh0 cmVtZWx5KiBzbWFsbC4KPj4+Cj4+PiBGb3IgZXhhbXBsZSwgd2plbiBDT05GSUdfQVJNNjRfUFNF VURPX05NSSwgaW4gYXJjaF9sb2NhbF9pcnFfZW5hYmxlKCk6Cj4+Pgo+Pj4gKiBUaGUgcG9ydGlv biB1bmRlciB0aGUgc3lzdGVtX2hhc19wcmlvX21hc2tfZGVidWdnaW5nKCkgdGVzdCB3aWxsIGJl IHJlbW92ZWQKPj4+ICAgICBlbnRpcmVseSBieSB0aGUgY29tcGlsZXIsIGFzIHRoaXMgaW50ZXJu YWxseSBjaGVja3MKPj4+ICAgICBJU19FTkFCTEVEKENPTkZJR19BUk02NF9QU0VVRE9fTk1JKS4K Pj4+Cj4+PiAqIFRoZSBhc3NlbWJseSB3aWxsIGJlIGxlZnQgYXMgYSB3cml0ZSB0byBEQUlGQ2xy LiBUaGUgb25seSBhZGRpdGlvbmFsIGNvc3QKPj4+ICAgICBzaG91bGQgYmUgdGhhdCBvZiBnZW5l cmF0aW5nIEdJQ19QUklPX0lSUU9OIGludG8gYSByZWdpc3Rlci4KPj4+Cj4+PiAqIFRoZSBwbXJf c3luYygpIHdpbGwgYmUgcmVtb3ZlZCBlbnRpcmVseSBieSB0aGUgY29tcGlsZXIgYXMgaXMgZGVm aW5lZAo+Pj4gICAgIGNvbmRpdGlvbmFsbHkgZGVwZW5kZW50IG9uIENPTkZJR19BUk02NF9QU0VV RE9fTk1JLgo+Pj4KPj4+IEkgY2FuJ3Qgc3BvdCBhbiBvYnZpb3VzIGlzc3VlIHdpdGggdGhhdCBv ciB0aGVyIG90aGVyIGNhc2VzLiBJbiB0aGUgY29tbW9uIGNhc2UKPj4+IHRob3NlIGFkZCBubyBu ZXcgaW5zdHJ1Y3Rpb25zLCBhbmQgaW4gdGhlIHdvcnN0IGNhc2UgdGhleSBvbmx5IGFkZCBOT1Bz Lgo+PiBUaGFua3MgZm9yIHlvdXIgZGV0YWlsZWQgZXhwbGFpbmF0aW9uISBBY3R1YWxseSBJIGNh bid0IHVuZGVyc3RhbmQgdGhlCj4+IHJlc3VsdCBleGFjdGx5Lgo+Pgo+PiBJIGJ1aWxkIHR3byA1 LjEwIGtlcm5lbCBpbWFnZXMgd2l0aCB0aGlzIHBhdGNoIGFwcGxpZWQgb3Igbm90IGFuZCBvYmpk dW1wCj4+IHRoZW0uIEluZGVlZCwgdGhlIGRpc2Fzc2VtYmxlcyBvZiAnYXJjaF9sb2NhbF9pcnFf cmVzdG9yZScgYXJlIHRoZSBzYW1lLiBEbwo+PiB5b3UgaGF2ZSBhbnkgaWRlYXMgaG93IHdlIGNh biBmaW5kIHRoZSByb290IGNhdXNlIHdoeSB0aGlzIHBhdGNoIGltcHJvdmVzIHRoZQo+PiBwZXJm b3JtYW5jZSBzbyBtdWNoPwo+Pgo+PiBIb3dldmVyLCB0aGUgdGVzdCByZXN1bHQgaXMgdHJ1c3R3 b3J0aHkgYmVjYXVzZSB3ZSBkbyBpdCBtYW55IHRpbWVzIGFuZCB0aGUKPj4gcmVzdWx0IGlzIGFs d2F5cyByZXBlYXRhYmxlLgo+IER1ZSB0byB0aGUgbGFyZ2UgbnVtYmVycywgSSBzdXNwZWN0IHRo aXMgbXVzdCBiZSBkdWUgdG8gYSBzcGVjaWZpYyBmYXN0LXBhdGgsCj4gYW5kIGl0J3MgcG9zc2li bGUgdGhhdCB0aGlzIGlzIGR1ZSB0byBzZWNvbmRhcnkgZmFjdG9ycyAoZS5nLiBhbGlnbm1lbnQg b2YKPiBjb2RlKSByYXRoZXIgdGhhbiB0aGUgcHNldWRvLU5NSyBjb2RlIGl0c2VsZi4KPgo+IFdl IG5lZWQgdG8gbmFycm93IGRvd24gKndoZXJlKiB0aW1lIGlzIGJlaW5nIHNwZW50LiBTaW5jZSBp dCBhcHBlYXJzIHRoYXQgdGhpcwo+IGlzIHJlbGF0ZWQgdG8gdGhlIGxvY2FsIElSUSBzdGF0ZSBt YW5hZ2VtZW50LCBpdCBpc24ndCBsaWtlbHkgdGhhdCB3ZSBjYW4KPiBkZXRlcm1pbmUgdGhhdCBy ZWxpYWJseSB3aXRoIHRoZSBQTVUuIEdpdmVuIHRoYXQsIEkgdGhpbmsgdGhlIGZpcnN0IHN0ZXAg aXMgdG8KPiByZXByb2R1Y2UgdGhlIHJlc3VsdCBlbHNld2hlcmUsIGZvciB3aGljaCB3ZSB3aWxs IG5lZWQgc29tZSBwbHVibGljbHkgYXZhaWxhYmxlCj4gdGVzdC1jYXNlLgoKQXMgc2FpZCBiZWZv cmUsIEkgYXNrZWQgb3VyIGNvbGxlZ3VlcyBob3cgdGhleSBkaWQgdGhlIEFSUCB0ZXN0LiBJbiBv bmUgCndvcmQsCgphIHZlcnkgc21hbGwgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBtYXkgYnJpbmcg dGhlIGJpZyBjaGFuZ2UgdG8gdGhlIHRlc3QgCnJlc3VsdC4KCkkgZmVlbCB2ZXJ5IHNvcnJ5IGZv ciBtaXNzaW5nIHRoaXMgaW1wb3J0YW50IGluZm9ybWF0aW9uLiBTbywgdGhpcyBwYXRjaCBtYXkK CmltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIGEgbGl0dGxlIGFuZCB0aGVuIGxlYWQgdG8gdGhlIGJp ZyBjaGFuZ2UgdG8gdGhlCgp0ZXN0IHJlc3VsdC4KCj4KPj4+PiBGdXJ0aGVybW9yZSwgSSBmaW5k IHRoZSBmZWF0dXJlIGFsc28gYnJpbmdzIHNvbWUgb3ZlcmhlYWQgdG8gdm1saW51eCBzaXplLgo+ Pj4+IEkgYnVpbGQgNS4xMCBrZXJuZWwgd2l0aCB0aGlzIHBhdGNoIGFwcGxpZWQgb3Igbm90IHdo aWxlCj4+Pj4gQ09ORklHX0FSTTY0X1BTRVVET19OTUkgaXMgbm90IHNldC4KPj4+Pgo+Pj4+ICAg IC0gNS4xMCBrZXJuZWwgd2l0aCB0aGlzIHBhdGNoIG5vdCBhcHBsaWVkOiB2bWxpbnV4IHNpemUg aXMgMzg0MDYwNjAwIEJ5dGVzLgo+Pj4+ICAgIC0gNS4xMCBrZXJuZWwgd2l0aCB0aGlzIHBhdGNo IGFwcGxpZWQ6IHZtbGludXggc2l6ZSBpcyAzODM4NDI5MzYgQnl0ZXMuCj4+Pj4KPj4+PiBUaGF0 IG1lYW5zIGFybTY0IHBzZXVkby1OTUkgZmVhdHVyZSBtYXkgYnJpbmcgfjIwMEtCIG92ZXJoZWFk IHRvCj4+Pj4gdm1saW51eCBzaXplLgo+Pj4gSSBzdXNwZWN0IHRoYXQncyBqdXN0IHRoZSAodW51 c2VkKSBhbHRlcm5hdGl2ZXMsIGFuZCB3ZSBjb3VsZCBpbXByb3ZlIHRoYXQgYnkKPj4+IHBhc3Np bmcgdGhlIGNvbmZpZyBpbnRvIHRoZSBhbHRlcm5hdGl2ZSBibG9ja3MuCj4+IERvIHlvdSBtZWFu IHRoZSBzZWN0aW9ucyBnZW5lcmF0ZWQgYnkgdGhlIGFsdGVybmF0aXZlcz8gSSBkb24ndCB1bmRl cnN0YW5kCj4+IGFsZXJuYXRpdmVzIHZlcnkgd2VsbCBhbmQgSSdsbCBhcHJlY2lhdGUgaXQgaWYg eW91IGNhbiBleHBsYWluIGl0IGEgYml0Cj4+IG1vcmUuCj4gWWVzOyBJIG1lYW50IHRoZSBzZWN0 aW9ucyBnZW5lcmF0ZWQgdG8gaG9sZCB0aGUgYWx0ZXJuYXRpdmVzIGNvZGUgYW5kIHRoZQo+IGFs dGVybmF0aXZlcyBtZXRhZGF0YS4KSSBnb3QgaXQuIFRoYW5rcy4KPgo+Cj4+Pj4gQWJvdmUgYWxs LCBhcm02NCBwc2V1ZG8tTk1JIGZlYXR1cmUgYnJpbmdzIHNvbWUgb3ZlcmhlYWQgdG8gdm1saW51 eCBzaXplCj4+Pj4gYW5kIHBlcmZvcm1hbmNlIGV2ZW4gaWYgY29uZmlnIGlzIG5vdCBzZXQuIFRv IGF2b2lkIGl0LCBhZGQgbWFjcm8gY29udHJvbAo+Pj4+IGFsbCBhcm91bmQgdGhlIHJlbGF0ZWQg Y29kZS4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IEhlIFlpbmcgPGhleWluZzI0QGh1YXdlaS5j b20+Cj4+Pj4gLS0tCj4+Pj4gICAgYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9pcnFmbGFncy5oIHwg MzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+Pj4+ICAgIGFyY2gvYXJtNjQva2Vy bmVsL2VudHJ5LlMgICAgICAgICB8ICA0ICsrKysKPj4+PiAgICAyIGZpbGVzIGNoYW5nZWQsIDQw IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvYXJj aC9hcm02NC9pbmNsdWRlL2FzbS9pcnFmbGFncy5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9p cnFmbGFncy5oCj4+Pj4gaW5kZXggYjU3YjliMWU0MzQ0Li44MmY3NzFiNDFjZjUgMTAwNjQ0Cj4+ Pj4gLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9pcnFmbGFncy5oCj4+Pj4gKysrIGIvYXJj aC9hcm02NC9pbmNsdWRlL2FzbS9pcnFmbGFncy5oCj4+Pj4gQEAgLTI2LDYgKzI2LDcgQEAKPj4+ PiAgICAgKi8KPj4+PiAgICBzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9sb2NhbF9pcnFfZW5hYmxl KHZvaWQpCj4+Pj4gICAgewo+Pj4+ICsjaWZkZWYgQ09ORklHX0FSTTY0X1BTRVVET19OTUkKPj4+ PiAgICAJaWYgKHN5c3RlbV9oYXNfcHJpb19tYXNrX2RlYnVnZ2luZygpKSB7Cj4+Pj4gICAgCQl1 MzIgcG1yID0gcmVhZF9zeXNyZWdfcyhTWVNfSUNDX1BNUl9FTDEpOwo+Pj4+IEBAIC00MSwxMCAr NDIsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfbG9jYWxfaXJxX2VuYWJsZSh2b2lkKQo+ Pj4+ICAgIAkJOiAibWVtb3J5Iik7Cj4+Pj4gICAgCXBtcl9zeW5jKCk7Cj4+Pj4gKyNlbHNlCj4+ Pj4gKwlhc20gdm9sYXRpbGUoCj4+Pj4gKwkJIm1zcglkYWlmY2xyLCAjMwkJLy8gYXJjaF9sb2Nh bF9pcnFfZW5hYmxlIgo+Pj4+ICsJCToKPj4+PiArCQk6Cj4+Pj4gKwkJOiAibWVtb3J5Iik7Cj4+ Pj4gKyNlbmRpZgo+Pj4gSSdtIGhhcHB5IHRvIHJld29yayB0aGlzIHRvIGltcHJvdmUgbWF0dGVy cywgYnV0IEkgYW0gdmVyeSBtdWNoIG5vdCBoYXBweSB3aXRoCj4+PiBkdXBsaWNhdGluZyB0aGUg bG9naWMgZm9yIHRoZSAhUFNFVURPX05NSSBjYXNlLiBBZGRpbmcgbW9yZSBpZmRlZmZlcnkgYW5k Cj4+PiBjb3BpZXMgb2YgdGhhdCBpcyBub3QgYWNjZXB0YWJsZS4KPj4gSSBhZ3JlZS4gQWRkaW5n IHRoZXNlIGlmZGVmZmVyeSBpcyBhIGJpdCB1Z2x5LiBMZXQncyBzZWUgaWYgdGhlcmUgYXJlIHNv bWUKPj4gYmV0dGVyIHdheXMuCj4+PiBJbnN0ZWFkLCBjYW4geW91IHBsZWFzZSB0cnkgY2hhbmdp bmcgdGhlIGFsdGVybmF0aXZlIHRvIGFsc28gdGFrZSB0aGUgY29uZmlnLAo+Pj4gZS5nLiBoZXJl IGhhdmU6Cj4+Pgo+Pj4gfCAgICAgICBhc20gdm9sYXRpbGUoQUxURVJOQVRJVkUoCj4+PiB8ICAg ICAgICAgICAgICAgIm1zciAgICBkYWlmY2xyLCAjMyAgICAgICAgICAgICAvLyBhcmNoX2xvY2Fs X2lycV9lbmFibGUiLAo+Pj4gfCAgICAgICAgICAgICAgIF9fbXNyX3MoU1lTX0lDQ19QTVJfRUwx LCAiJTAiKSwKPj4+IHwgICAgICAgICAgICAgICBBUk02NF9IQVNfSVJRX1BSSU9fTUFTS0lORywK Pj4+IHwgICAgICAgICAgICAgICBDT05GSUdfQVJNNjRfUFNFVURPX05NSSkKPj4+IHwgICAgICAg ICAgICAgICA6Cj4+PiB8ICAgICAgICAgICAgICAgOiAiciIgKCh1bnNpZ25lZCBsb25nKSBHSUNf UFJJT19JUlFPTikKPj4+IHwgICAgICAgICAgICAgICA6ICJtZW1vcnkiKTsKPj4+Cj4+PiAuLi4g YW5kIHNlZSBpZiB0aGF0IG1ha2VzIGEgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZT8KPj4+Cj4+PiBM aWtld2lzZSBmb3IgdGhlIG90aGVyIGNhc2Vlcy4KPj4gT0ssIEknbGwgdHJ5IGl0LiBCdXQgSSBo YXZlIHNvbWUgcXVlc3Rpb25zLiBIZXJlJ3MgdGhlIGNvbW1lbnQgb2YKPj4gQUxFUk5BVElWRToK Pj4KPj4gLyoKPj4gIMKgKiBVc2FnZTogYXNtKEFMVEVSTkFUSVZFKG9sZGluc3RyLCBuZXdpbnN0 ciwgZmVhdHVyZSkpOwo+PiAgwqAqCj4+ICDCoCogVXNhZ2U6IGFzbShBTFRFUk5BVElWRShvbGRp bnN0ciwgbmV3aW5zdHIsIGZlYXR1cmUsIENPTkZJR19GT08pKTsKPj4gIMKgKiBOLkIuIElmIENP TkZJR19GT08gaXMgc3BlY2lmaWVkLCBidXQgbm90IHNlbGVjdGVkLCB0aGUgd2hvbGUgYmxvY2sK Pj4gIMKgKsKgwqDCoMKgwqAgd2lsbCBiZSBvbWl0dGVkLCBpbmNsdWRpbmcgb2xkaW5zdHIuCj4+ ICDCoCovCj4+Cj4+IElmIENPTkZJR19GT08gaXMgbm90IHNlbGVjdGVkLCB0aGUgd2hvbGUgYmxv Y2sgd2lsbCBiZSBvbWl0dGVkIGluY2x1ZGluZwo+PiBvbGRpbnN0ci4KPj4KPj4gQnV0IHdlIHN0 aWxsIHdhbnQgdGhlIG9sZGluc3RyIGluIHRoaXMgc2l0dWF0aW9uLiBEbyBJIG1pc3VuZGVyc3Rh bmQKPj4gc29tZXRoaW5nPwo+IFNvcnJ5OyB5b3UgYXJlIHJpZ2h0LCBhbmQgbXkgc3VnZ2VzdGlv biB3YXMgYnJva2VuLgo+Cj4gSSdsbCBuZWVkIHRvIGhhdmUgYSB0aGluayBhYm91dCB0aGlzOyB3 ZSBtaWdodCBiZSBhYmxlIHRvIHJld29yayB0aGlzIHRvIHVzZSBhCj4gc3RhdGljIGtleSBpbnN0 ZWFkLCBidXQgSUlSQyBsYXN0IHRpbWUgSSB0cmllZCB0aGVyZSB3ZXJlIGlzc3VlcyB3aXRoIHRo YXQKPiBhcHByb2FjaC4gSSBoYXZlIHNvbWUgKG9sZCkgd29yay1pbi1wcm9ncmVzcyBwYXRjaGVz IGF0Ogo+Cj4gICAgaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9n aXQvbWFyay9saW51eC5naXQvbG9nLz9oPWFybTY0L2RhaWYtcmV3b3JrCj4KPiBJIHN1c3BlY3Qg SSB3b24ndCBoYXZlIHRpbWUgdG8gcmVuZXcgdGhhdCBpbiB0aGUgbmVhciBmdXR1cmUsIGJ1dCBh biBhcHByb2FjaAo+IGxpa2UgdGhhdCBtaWdodCBiZSB3b3J0aHdoaWxlLgoKT0ssIEkgc2VlLiBX aGF0IGRvIHlvdSB0aGluayBpZiBJIHNlbmQgYSB2MiBwYXRjaCB0aGF0IG9ubHkgYWRkcyAKaWZk ZWZmZXJ5IHRvCgphcmNoL2FybTY0L2tlcm5lbC9lbnRyeS5TIGFuZCBsZWF2ZSB0aGUgcmV3b3Jr IHRvIEFMRVJOQVRJVkUgYmVoaW5kPwoKSSB0aGluayB0aGVzZSBtb2RpZmljYXRpb25zIGNhbiBz YXZlIHNvbWUgTk9QcyBkZWZpbml0ZWx5LgoKPgo+IFRoYW5rcywKPiBNYXJrLgo+IC4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJu ZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK