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 73E87C64EC7 for ; Wed, 1 Mar 2023 06:23:53 +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=MRxToj9RHCr1K9uL44woJmEO/DWCGRflUGVTdTvA7dc=; b=OGioDRlmFHxIlZ EkgogfIVyBgmDmY9pjxoZGjfoeFM29qIYzh/8WGPBkqAvt8Dl1VQXNKr/IwGrunw74DNfXaEArugM iCo13ExmN4bGMEY9dHlYQOrJl8IUYCLpcScVjqkBtsZAL8qpw9q05JSm6rgNGHkTeuvKiqwr1o4Ud /eSycVQvScH+v38ENCoNTWIPyoxhhg+xztCr6Na1vtSqnTcfpdnkmHUtwSUG6OpmogcSNs3Rznb1X yNsnVoirrpS1Cp2uVPmkqdCIYVH9aO12pJ2Wse+WrTZhM7MujWnmzmxedKjGxUrLKv8UMOJeeB/x0 AvF+78xFq3vKUS6haapw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pXFsP-00FEX8-By; Wed, 01 Mar 2023 06:23:45 +0000 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5] helo=mx0a-001b2d01.pphosted.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pXFsL-00FEWM-18 for kexec@lists.infradead.org; Wed, 01 Mar 2023 06:23:43 +0000 Received: from pps.filterd (m0098420.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3213hguM005643; Wed, 1 Mar 2023 06:23:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=Hp6ZoU5w1ZSyH+/PEpslrh7C+rHEhfRfF4vwFAiLRhM=; b=G0IN7K6PBRnr5TkcjPGywn7GQWSNeDy1My7lKlRWcNjjvldEeCHuSA14z0ENQaeFzzUa lxy3VgOmiEH0QvWRGX/d6gLKcw5Np2fln3SzmKGA3TcwWyT/8PHOcjmGq/iM1tHwc02H 5hGbXDWX2hlCoLCTIQIg9D/fzVx7UYT5nZc8EMo2Jl9bpKubQmaeYN+XWRtfk05Dmc2q Hb63bn255igDyMdD8ZpgxQB03ozubDTO5Vp7NO13mfcPbc0dooqGSOwEj09N/K0+xwxc OiXH0qQ2XzNY0AdHVnDNXK1vOOE2NtegOzr3bwibIzxxIv2eiAtAyIqtFmquaWV4mBzC QQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3p1y2734vw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 06:23:09 +0000 Received: from m0098420.ppops.net (m0098420.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3216N810011694; Wed, 1 Mar 2023 06:23:08 GMT Received: from ppma02fra.de.ibm.com (47.49.7a9f.ip4.static.sl-reverse.com [159.122.73.71]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3p1y2734v9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 06:23:08 +0000 Received: from pps.filterd (ppma02fra.de.ibm.com [127.0.0.1]) by ppma02fra.de.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 31SBkOtW008599; Wed, 1 Mar 2023 06:23:06 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma02fra.de.ibm.com (PPS) with ESMTPS id 3nybe2k0b3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 06:23:06 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3216N4sC41419236 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 1 Mar 2023 06:23:04 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 51BDD20040; Wed, 1 Mar 2023 06:23:04 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DDE8C20063; Wed, 1 Mar 2023 06:22:59 +0000 (GMT) Received: from [9.43.41.8] (unknown [9.43.41.8]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 1 Mar 2023 06:22:59 +0000 (GMT) Message-ID: <38b4e70b-00b6-8e9c-e98a-77df4454aee7@linux.ibm.com> Date: Wed, 1 Mar 2023 11:52:58 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v18 5/7] kexec: exclude hot remove cpu from elfcorehdr notes Content-Language: en-US To: Eric DeVolder , Thomas Gleixner , linux-kernel@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, ebiederm@xmission.com, dyoung@redhat.com, bhe@redhat.com, vgoyal@redhat.com Cc: mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, nramas@linux.microsoft.com, thomas.lendacky@amd.com, robh@kernel.org, efault@gmx.de, rppt@kernel.org, david@redhat.com, konrad.wilk@oracle.com, boris.ostrovsky@oracle.com References: <20230131224236.122805-1-eric.devolder@oracle.com> <20230131224236.122805-6-eric.devolder@oracle.com> <87sffpzkle.ffs@tglx> <87h6vw2rwf.ffs@tglx> <7580421a-648a-2c4b-3c33-82e7622d9585@oracle.com> <24034f33-739b-e5f5-40c0-8d5abeb1ad89@oracle.com> <18c57fd0-2ad0-361a-9a53-ac49c372f021@linux.ibm.com> <4eeda077-c578-791b-8e48-e418744a7615@oracle.com> <8aa21721-6951-80d1-ae20-db4198b743ff@linux.ibm.com> <4fbdbb3a-dcab-cbf1-0d24-a7be1858b048@oracle.com> From: Sourabh Jain In-Reply-To: <4fbdbb3a-dcab-cbf1-0d24-a7be1858b048@oracle.com> X-TM-AS-GCONF: 00 X-Proofpoint-GUID: Ec3wp583yL2nyjsVC7KATPAf51AWonDd X-Proofpoint-ORIG-GUID: ffQcOzxKoGc0USdAcMhepDk3OlRiFddn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_02,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 mlxscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 mlxlogscore=999 impostorscore=0 priorityscore=1501 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010047 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230228_222341_225125_3ACE5BFB X-CRM114-Status: GOOD ( 40.48 ) X-BeenThere: kexec@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: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org Ck9uIDAxLzAzLzIzIDAzOjIwLCBFcmljIERlVm9sZGVyIHdyb3RlOgo+Cj4KPiBPbiAyLzI3LzIz IDAwOjExLCBTb3VyYWJoIEphaW4gd3JvdGU6Cj4+Cj4+IE9uIDI1LzAyLzIzIDAxOjQ2LCBFcmlj IERlVm9sZGVyIHdyb3RlOgo+Pj4KPj4+Cj4+PiBPbiAyLzI0LzIzIDAyOjM0LCBTb3VyYWJoIEph aW4gd3JvdGU6Cj4+Pj4KPj4+PiBPbiAyNC8wMi8yMyAwMjowNCwgRXJpYyBEZVZvbGRlciB3cm90 ZToKPj4+Pj4KPj4+Pj4KPj4+Pj4gT24gMi8xMC8yMyAwMDoyOSwgU291cmFiaCBKYWluIHdyb3Rl Ogo+Pj4+Pj4KPj4+Pj4+IE9uIDEwLzAyLzIzIDAxOjA5LCBFcmljIERlVm9sZGVyIHdyb3RlOgo+ Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBPbiAyLzkvMjMgMTI6NDMsIFNvdXJhYmggSmFpbiB3cm90 ZToKPj4+Pj4+Pj4gSGVsbG8gRXJpYywKPj4+Pj4+Pj4KPj4+Pj4+Pj4gT24gMDkvMDIvMjMgMjM6 MDEsIEVyaWMgRGVWb2xkZXIgd3JvdGU6Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE9u IDIvOC8yMyAwNzo0NCwgVGhvbWFzIEdsZWl4bmVyIHdyb3RlOgo+Pj4+Pj4+Pj4+IEVyaWMhCj4+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBPbiBUdWUsIEZlYiAwNyAyMDIzIGF0IDExOjIzLCBFcmljIERl Vm9sZGVyIHdyb3RlOgo+Pj4+Pj4+Pj4+PiBPbiAyLzEvMjMgMDU6MzMsIFRob21hcyBHbGVpeG5l ciB3cm90ZToKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gU28gbXkgbGF0ZXN0IHNvbHV0aW9uIGlz IGludHJvZHVjZSB0d28gbmV3IENQVUhQIHN0YXRlcywgCj4+Pj4+Pj4+Pj4+IENQVUhQX0FQX0VM RkNPUkVIRFJfT05MSU5FCj4+Pj4+Pj4+Pj4+IGZvciBvbmxpbmluZyBhbmQgQ1BVSFBfQlBfRUxG Q09SRUhEUl9PRkZMSU5FIGZvciBvZmZsaW5pbmcuIAo+Pj4+Pj4+Pj4+PiBJJ20gb3BlbiB0byBi ZXR0ZXIgbmFtZXMuCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IFRoZSBDUFVIUF9BUF9FTEZDT1JF SERSX09OTElORSBuZWVkcyB0byBiZSBwbGFjZWQgYWZ0ZXIgCj4+Pj4+Pj4+Pj4+IENQVUhQX0JS SU5HVVBfQ1BVLiBNeQo+Pj4+Pj4+Pj4+PiBhdHRlbXB0cyBhdCBsb2NhdGluZyB0aGlzIHN0YXRl IGZhaWxlZCB3aGVuIGluc2lkZSB0aGUgCj4+Pj4+Pj4+Pj4+IFNUQVJUSU5HIHNlY3Rpb24sIHNv IEkgbG9jYXRlZAo+Pj4+Pj4+Pj4+PiB0aGlzIGp1c3QgaW5zaWRlIHRoZSBPTkxJTkUgc2VjdG9p bi4gVGhlIGNyYXNoIGhvdHBsdWcgCj4+Pj4+Pj4+Pj4+IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZCBv bgo+Pj4+Pj4+Pj4+PiB0aGlzIHN0YXRlIGFzIHRoZSBjYWxsYmFjayBmb3IgdGhlIC5zdGFydHVw IG1ldGhvZC4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gVGhlIENQVUhQX0JQX0VMRkNPUkVIRFJf T0ZGTElORSBuZWVkcyB0byBiZSBwbGFjZWQgYmVmb3JlIAo+Pj4+Pj4+Pj4+PiBDUFVIUF9URUFS RE9XTl9DUFUsIGFuZCBJCj4+Pj4+Pj4+Pj4+IHBsYWNlZCBpdCBhdCB0aGUgZW5kIG9mIHRoZSBQ UkVQQVJFIHNlY3Rpb24uIFRoaXMgY3Jhc2ggCj4+Pj4+Pj4+Pj4+IGhvdHBsdWcgaGFuZGxlciBp cyBhbHNvCj4+Pj4+Pj4+Pj4+IHJlZ2lzdGVyZWQgb24gdGhpcyBzdGF0ZSBhcyB0aGUgY2FsbGJh Y2sgZm9yIHRoZSAudGVhcmRvd24gCj4+Pj4+Pj4+Pj4+IG1ldGhvZC4KPj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+IFRCSCwgdGhhdCdzIHN0aWxsIG92ZXJlbmdpbmVlcmVkLiBTb21ldGhpbmcgbGlrZSB0 aGlzOgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gYm9vbCBjcHVfaXNfYWxpdmUodW5zaWduZWQgaW50 IGNwdSkKPj4+Pj4+Pj4+PiB7Cj4+Pj4+Pj4+Pj4gwqDCoMKgwqBzdHJ1Y3QgY3B1aHBfY3B1X3N0 YXRlICpzdCA9IHBlcl9jcHVfcHRyKCZjcHVocF9zdGF0ZSwgY3B1KTsKPj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+IMKgwqDCoMKgcmV0dXJuIGRhdGFfcmFjZShzdC0+c3RhdGUpIDw9IENQVUhQX0FQX0lE TEVfREVBRDsKPj4+Pj4+Pj4+PiB9Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBhbmQgdXNlIHRoaXMg dG8gcXVlcnkgdGhlIGFjdHVhbCBzdGF0ZSBhdCBjcmFzaCB0aW1lLiBUaGF0IAo+Pj4+Pj4+Pj4+ IHNwYXJlcyBhbGwKPj4+Pj4+Pj4+PiB0aG9zZSBjYWxsYmFjayBoZXVyaXN0aWNzLgo+Pj4+Pj4+ Pj4+Cj4+Pj4+Pj4+Pj4+IEknbSBtYWtpbmcgbXkgd2F5IHRob3VnaCBwZXJjcHUgY3Jhc2hfbm90 ZXMsIGVsZmNvcmVoZHIsIAo+Pj4+Pj4+Pj4+PiB2bWNvcmVpbmZvLAo+Pj4+Pj4+Pj4+PiBtYWtl ZHVtcGZpbGUgYW5kICh0aGUgY29uc3VtZXIgb2YgaXQgYWxsKSB0aGUgdXNlcnNwYWNlIAo+Pj4+ Pj4+Pj4+PiBjcmFzaCB1dGlsaXR5LAo+Pj4+Pj4+Pj4+PiBpbiBvcmRlciB0byB1bmRlcnN0YW5k IHRoZSBpbXBhY3Qgb2YgbW92aW5nIGZyb20gCj4+Pj4+Pj4+Pj4+IGZvcl9lYWNoX3ByZXNlbnRf Y3B1KCkKPj4+Pj4+Pj4+Pj4gdG8gZm9yX2VhY2hfb25saW5lX2NwdSgpLgo+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4gSXMgdGhlIHBhY2tpbmcgYWN0dWFsbHkgd29ydGggdGhlIHRyb3VibGU/IFdoYXQn cyB0aGUgYWN0dWFsIAo+Pj4+Pj4+Pj4+IHdpbj8KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFRoYW5r cywKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgdGdseAo+Pj4+Pj4+Pj4+ Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBUaG9tYXMsCj4+Pj4+Pj4+PiBJJ3ZlIGlu dmVzdGlnYXRlZCB0aGUgcGFzc2luZyBvZiBjcmFzaCBub3RlcyB0aHJvdWdoIHRoZSAKPj4+Pj4+ Pj4+IHZtY29yZS4gV2hhdCBJJ3ZlIGxlYXJuZWQgaXMgdGhhdDoKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ PiAtIGxpbnV4L2ZzL3Byb2Mvdm1jb3JlLmMgKHdoaWNoIG1ha2VkdW1wZmlsZSByZWZlcmVuY2Vz IHRvIGRvIAo+Pj4+Pj4+Pj4gaXRzIGpvYikgZG9lcwo+Pj4+Pj4+Pj4gwqAgbm90IGNhcmUgd2hh dCB0aGUgY29udGVudHMgb2YgY3B1IFBUX05PVEVTIGFyZSwgYnV0IGl0IGRvZXMgCj4+Pj4+Pj4+ PiBjb2FsZXNjZSB0aGVtIHRvZ2V0aGVyLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IC0gbWFrZWR1bXBm aWxlIHdpbGwgY291bnQgdGhlIG51bWJlciBvZiBjcHUgUFRfTk9URVMgaW4gb3JkZXIgCj4+Pj4+ Pj4+PiB0byBkZXRlcm1pbmUgaXRzCj4+Pj4+Pj4+PiDCoCBucl9jcHVzIHZhcmlhYmxlLCB3aGlj aCBpcyByZXBvcnRlZCBpbiBhIGhlYWRlciwgYnV0IAo+Pj4+Pj4+Pj4gb3RoZXJ3aXNlIHVudXNl ZCAoZXhjZXB0Cj4+Pj4+Pj4+PiDCoCBmb3Igc2FkdW1wIG1ldGhvZCkuCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gLSB0aGUgY3Jhc2ggdXRpbGl0eSwgZm9yIHRoZSBwdXJwb3NlcyBvZiBkZXRlcm1pbmlu ZyB0aGUgY3B1cywgCj4+Pj4+Pj4+PiBkb2VzIG5vdCBhcHBlYXIgdG8KPj4+Pj4+Pj4+IMKgIHJl ZmVyZW5jZSB0aGUgZWxmY29yZWhkciBQVF9OT1RFcy4gSW5zdGVhZCBpdCBsb2NhdGVzIHRoZSAK Pj4+Pj4+Pj4+IHZhcmlvdXMKPj4+Pj4+Pj4+IMKgIGNwdV9bcG9zc2libGV8cHJlc2VudHxvbmxp bmVdX21hc2sgYW5kIGNvbXB1dGVzIG5yX2NwdXMgZnJvbSAKPj4+Pj4+Pj4+IHRoYXQsIGFuZCBh bHNvIG9mCj4+Pj4+Pj4+PiDCoCBjb3Vyc2Ugd2hpY2ggYXJlIG9ubGluZS4gSW4gYWRkaXRpb24s IHdoZW4gY3Jhc2ggZG9lcyAKPj4+Pj4+Pj4+IHJlZmVyZW5jZSB0aGUgY3B1IFBUX05PVEUsCj4+ Pj4+Pj4+PiDCoCB0byBnZXQgaXRzIHByc3RhdHVzLCBpdCBkb2VzIHNvIGJ5IHVzaW5nIGEgcGVy Y3B1IHRlY2huaXF1ZSAKPj4+Pj4+Pj4+IGRpcmVjdGx5IGluIHRoZSB2bWNvcmUKPj4+Pj4+Pj4+ IMKgIGltYWdlIG1lbW9yeSwgbm90IHZpYSB0aGUgRUxGIHN0cnVjdHVyZS4gU2FpZCBkaWZmZXJl bnRseSwgCj4+Pj4+Pj4+PiBpdCBhcHBlYXJzIHRvIG1lIHRoYXQKPj4+Pj4+Pj4+IMKgIGNyYXNo IHV0aWxpdHkgZG9lc24ndCByZWx5IG9uIHRoZSBFTEYgUFRfTk9URXMgZm9yIGNwdXM7IAo+Pj4+ Pj4+Pj4gcmF0aGVyIGl0IG9idGFpbnMgdGhlbQo+Pj4+Pj4+Pj4gwqAgdmlhIGtlcm5lbCBjcHVt YXNrcyBhbmQgdGhlIG1lbW9yeSB3aXRoaW4gdGhlIHZtY29yZS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ PiBXaXRoIHRoaXMgdW5kZXJzdGFuZGluZywgSSBkaWQgc29tZSB0ZXN0aW5nLiBQZXJoYXBzIHRo ZSBtb3N0IAo+Pj4+Pj4+Pj4gdGVsbGluZyB0ZXN0IHdhcyB0aGF0IEkKPj4+Pj4+Pj4+IGNoYW5n ZWQgdGhlIG51bWJlciBvZiBjcHUgUFRfTk9URXMgZW1pdHRlZCBpbiB0aGUgCj4+Pj4+Pj4+PiBj cmFzaF9wcmVwYXJlX2VsZjY0X2hlYWRlcnMoKSB0byBqdXN0IDEsCj4+Pj4+Pj4+PiBob3QgcGx1 Z2dlZCBzb21lIGNwdXMsIHRoZW4gYWxzbyB0b29rIGEgZmV3IG9mZmxpbmUgc3BhcnNlbHkgCj4+ Pj4+Pj4+PiB2aWEgY2hjcHUsIHRoZW4gZ2VuZXJhdGVkIGEKPj4+Pj4+Pj4+IHZtY29yZS4gVGhl IGNyYXNoIHV0aWxpdHkgaGFkIG5vIHByb2JsZW0gbG9hZGluZyB0aGUgdm1jb3JlLCAKPj4+Pj4+ Pj4+IGl0IHJlcG9ydGVkIHRoZSBwcm9wZXIgbnVtYmVyCj4+Pj4+Pj4+PiBvZiBjcHVzIGFuZCB0 aGUgbnVtYmVyIG9mZmxpbmUgKGRlc3BpdGUgb25seSBvbmUgY3B1IFBUX05PVEUpLCAKPj4+Pj4+ Pj4+IGFuZCBjaGFuZ2luZyB0byBhIGRpZmZlcmVudAo+Pj4+Pj4+Pj4gY3B1IHZpYSAnc2V0IC1j IDMwJyBhbmQgdGhlIGJhY2t0cmFjZSB3YXMgY29tcGxldGVseSB2YWxpZC4KPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+PiBNeSB0YWtlIGF3YXkgaXMgdGhhdCBjcmFzaCB1dGlsaXR5IGRvZXMgbm90IHJlbHkg dXBvbiBFTEYgY3B1IAo+Pj4+Pj4+Pj4gUFRfTk9URXMsIGl0IG9idGFpbnMgdGhlCj4+Pj4+Pj4+ PiBjcHUgaW5mb3JtYXRpb24gZGlyZWN0bHkgZnJvbSBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLiBQ ZXJoYXBzIAo+Pj4+Pj4+Pj4gYXQgb25lIHRpbWUgY3Jhc2ggcmVsaWVkCj4+Pj4+Pj4+PiB1cG9u IHRoZSBFTEYgaW5mb3JtYXRpb24sIGJ1dCBubyBtb3JlLiAoUGVyaGFwcyB0aGVyZSBhcmUgCj4+ Pj4+Pj4+PiBvdGhlciBjcmFzaCBkdW1wIGFuYWx5emVycwo+Pj4+Pj4+Pj4gdGhhdCBtaWdodCBy ZWx5IG9uIHRoZSBFTEYgaW5mbz8pCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU28sIGFsbCB0aGlzIHRv IHNheSB0aGF0IEkgc2VlIG5vIG5lZWQgdG8gY2hhbmdlIAo+Pj4+Pj4+Pj4gY3Jhc2hfcHJlcGFy ZV9lbGY2NF9oZWFkZXJzKCkuIFRoZXJlCj4+Pj4+Pj4+PiBpcyBubyBjb21wZWxsaW5nIHJlYXNv biB0byBtb3ZlIGF3YXkgZnJvbSAKPj4+Pj4+Pj4+IGZvcl9lYWNoX3ByZXNlbnRfY3B1KCksIG9y IG1vZGlmeSB0aGUgbGlzdCBmb3IKPj4+Pj4+Pj4+IG9ubGluZS9vZmZsaW5lLgo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+IFdoaWNoIHRoZW4gbGVhdmVzIHRoZSB0b3BpYyBvZiB0aGUgY3B1aHAgc3RhdGUg b24gd2hpY2ggdG8gCj4+Pj4+Pj4+PiByZWdpc3Rlci4gUGVyaGFwcyByZXZlcnRpbmcKPj4+Pj4+ Pj4+IGJhY2sgdG8gdGhlIHVzZSBvZiBDUFVIUF9CUF9QUkVQQVJFX0RZTiBpcyB0aGUgcmlnaHQg YW5zd2VyLiAKPj4+Pj4+Pj4+IFRoZXJlIGRvZXMgbm90IGFwcGVhciB0bwo+Pj4+Pj4+Pj4gYmUg YSBjb21wZWxsaW5nIG5lZWQgdG8gYWNjdXJhdGVseSB0cmFjayB3aGV0aGVyIHRoZSBjcHUgd2Vu dCAKPj4+Pj4+Pj4+IG9ubGluZS9vZmZsaW5lIGZvciB0aGUKPj4+Pj4+Pj4+IHB1cnBvc2VzIG9m IGNyZWF0aW5nIHRoZSBlbGZjb3JlaGRyLCBhcyB1bHRpbWF0ZWx5IHRoZSBjcmFzaCAKPj4+Pj4+ Pj4+IHV0aWxpdHkgcHVsbHMgdGhhdCBmcm9tCj4+Pj4+Pj4+PiBrZXJuZWwgZGF0YSBzdHJ1Y3R1 cmVzLCBub3QgdGhlIGVsZmNvcmVoZHIuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSSB0aGluayB0aGlz IGlzIHdoYXQgU291cmFiaCBoYXMga25vd24gYW5kIGhhcyBiZWVuIGFkdm9jYXRpbmcgCj4+Pj4+ Pj4+PiBmb3IgYW4gb3B0aW1pemF0aW9uCj4+Pj4+Pj4+PiBwYXRoIHRoYXQgYWxsb3dzIG5vdCBy ZWdlbmVyYXRpbmcgdGhlIGVsZmNvcmVoZHIgb24gY3B1IAo+Pj4+Pj4+Pj4gY2hhbmdlcyAoYmVj YXVzZSBhbGwgdGhlIHBlcmNwdQo+Pj4+Pj4+Pj4gc3RydWN0cyBhcmUgYWxsIGxhaWQgb3V0KS4g SSBkbyB0aGluayBpdCBiZXN0IHRvIGxlYXZlIHRoYXQgYXMgCj4+Pj4+Pj4+PiBhbiBhcmNoIGNo b2ljZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gU2luY2UgdGhpbmdzIGFyZSBjbGVhciBvbiBob3cgdGhl IFBUX05PVEVTIGFyZSBjb25zdW1lZCBpbiAKPj4+Pj4+Pj4ga2R1bXAga2VybmVsIFtmcy9wcm9j L3ZtY29yZS5jXSwKPj4+Pj4+Pj4gbWFrZWR1bXBmaWxlLCBhbmQgY3Jhc2ggdG9vbCBJIG5lZWQg eW91ciBvcGluaW9uIG9uIHRoaXM6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IERvIHdlIHJlYWxseSBuZWVk IHRvIHJlZ2VuZXJhdGUgZWxmY29yZWhkciBmb3IgQ1BVIGhvdHBsdWcgZXZlbnRzPwo+Pj4+Pj4+ PiBJZiB5ZXMsIGNhbiB5b3UgcGxlYXNlIGxpc3QgdGhlIGVsZmNvcmVoZHIgY29tcG9uZW50cyB0 aGF0IAo+Pj4+Pj4+PiBjaGFuZ2VzIGR1ZSB0byBDUFUgaG90cGx1Zy4KPj4+Pj4+PiBEdWUgdG8g dGhlIHVzZSBvZiBmb3JfZWFjaF9wcmVzZW50X2NwdSgpLCBpdCBpcyBwb3NzaWJsZSBmb3IgdGhl IAo+Pj4+Pj4+IG51bWJlciBvZiBjcHUgUFRfTk9URXMKPj4+Pj4+PiB0byBmbHVjdHVhdGUgYXMg Y3B1cyBhcmUgdW4vcGx1Z2dlZC4gT25saW5pbmcvb2ZmbGluaW5nIG9mIGNwdXMgCj4+Pj4+Pj4g ZG9lcyBub3QgaW1wYWN0IHRoZQo+Pj4+Pj4+IG51bWJlciBvZiBjcHUgUFRfTk9URXMgKGFzIHRo ZSBjcHVzIGFyZSBzdGlsbCBwcmVzZW50KS4KPj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiDCoEZy b20gd2hhdCBJIHVuZGVyc3Rvb2QsIGNyYXNoIG5vdGVzIGFyZSBwcmVwYXJlZCBmb3IgcG9zc2li bGUgCj4+Pj4+Pj4+IENQVXMgYXMgc3lzdGVtIGJvb3RzIGFuZAo+Pj4+Pj4+PiBjb3VsZCBiZSB1 c2VkIHRvIGNyZWF0ZSBhIFBUX05PVEUgc2VjdGlvbiBmb3IgZWFjaCBwb3NzaWJsZSBDUFUgCj4+ Pj4+Pj4+IHdoaWxlIGdlbmVyYXRpbmcgdGhlIGVsZmNvcmVoZHIKPj4+Pj4+Pj4gZHVyaW5nIHRo ZSBrZHVtcCBrZXJuZWwgbG9hZC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gTm93IG9uY2UgdGhlIGVsZmNv cmVoZHIgaXMgbG9hZGVkIHdpdGggUFRfTk9URXMgZm9yIGV2ZXJ5IAo+Pj4+Pj4+PiBwb3NzaWJs ZSBDUFUgdGhlcmUgaXMgbm8gbmVlZCB0bwo+Pj4+Pj4+PiByZWdlbmVyYXRlIGl0IGZvciBDUFUg aG90cGx1ZyBldmVudHMuIE9yIGRvIHdlPwo+Pj4+Pj4+Cj4+Pj4+Pj4gRm9yIG9ubGluaW5nL29m ZmxpbmluZyBvZiBjcHVzLCB0aGVyZSBpcyBubyBuZWVkIHRvIHJlZ2VuZXJhdGUgCj4+Pj4+Pj4g dGhlIGVsZmNvcmVoZHIuIEhvd2V2ZXIsCj4+Pj4+Pj4gZm9yIGFjdHVhbCBob3QgdW4vcGx1ZyBv ZiBjcHVzLCB0aGUgYW5zd2VyIGlzIHllcyBkdWUgdG8gCj4+Pj4+Pj4gZm9yX2VhY2hfcHJlc2Vu dF9jcHUoKS4gVGhlCj4+Pj4+Pj4gY2F2ZWF0IGhlcmUgb2YgY291cnNlIGlzIHRoYXQgaWYgY3Jh c2ggdXRpbGl0eSBpcyB0aGUgb25seSAKPj4+Pj4+PiBjb3JlZHVtcCBhbmFseXplciBvZiBjb25j ZXJuLAo+Pj4+Pj4+IHRoZW4gaXQgZG9lc24ndCBjYXJlIGFib3V0IHRoZXNlIGNwdSBQVF9OT1RF cyBhbmQgdGhlcmUgd291bGQgYmUgCj4+Pj4+Pj4gbm8gbmVlZCB0byByZS1nZW5lcmF0ZSB0aGVt Lgo+Pj4+Pj4+Cj4+Pj4+Pj4gQWxzbywgSSdtIG5vdCBzdXJlIGlmIEFSTSBjcHUgaG90cGx1Zywg d2hpY2ggaXMganVzdCBub3cgY29taW5nIAo+Pj4+Pj4+IGludG8gbWFpbnN0cmVhbSwgaW1wYWN0 cwo+Pj4+Pj4+IGFueSBvZiB0aGlzLgo+Pj4+Pj4+Cj4+Pj4+Pj4gUGVyaGFwcyB0aGUgb25lIGl0 ZW0gdGhhdCBtaWdodCBoZWxwIGhlcmUgaXMgdG8gZGlzdGluZ3Vpc2ggCj4+Pj4+Pj4gYmV0d2Vl biBhY3R1YWwgaG90IHVuL3BsdWcgb2YKPj4+Pj4+PiBjcHVzLCB2ZXJzdXMgb25saW5pbmcvb2Zm bGluaW5nLiBBdCB0aGUgbW9tZW50LCBJIGNhbiBub3QgCj4+Pj4+Pj4gZGlzdGluZ3Vpc2ggYmV0 d2VlbiBhIGhvdCBwbHVnCj4+Pj4+Pj4gZXZlbnQgYW5kIGFuIG9ubGluZSBldmVudCAoYW5kIHVu cGx1Zy9vZmZsaW5lKS4gSWYgdGhvc2Ugd2VyZSAKPj4+Pj4+PiBkaXN0aW5ndWlzaGFibGUsIHRo ZW4gd2UKPj4+Pj4+PiBjb3VsZCBvbmx5IHJlZ2VuZXJhdGUgb24gdW4vcGx1ZyBldmVudHMuCj4+ Pj4+Pj4KPj4+Pj4+PiBPciBwZXJoYXBzIG1vdmluZyB0byBmb3JfZWFjaF9wb3NzaWJsZV9jcHUo KSBpcyB0aGUgYmV0dGVyIGNob2ljZT8KPj4+Pj4+Cj4+Pj4+PiBZZXMsIGJlY2F1c2Ugb25jZSBl bGZjb3JlaGRyIGlzIGJ1aWx0IHdpdGggcG9zc2libGUgQ1BVcyB3ZSBkb24ndCAKPj4+Pj4+IGhh dmUgdG8gd29ycnkgYWJvdXQKPj4+Pj4+IGhvdFt1bl1wbHVnIGNhc2UuCj4+Pj4+Pgo+Pj4+Pj4g SGVyZSBpcyBteSB2aWV3IG9uIGhvdyB0aGluZ3Mgc2hvdWxkIGJlIGhhbmRsZWQgaWYgYSBjb3Jl LWR1bXAgCj4+Pj4+PiBhbmFseXplciBpcyBkZXBlbmRlbnQgb24KPj4+Pj4+IGVsZmNvcmVoZHIg UFRfTk9URXMgdG8gZmluZCBvbmxpbmUvb2ZmbGluZSBDUFVzLgo+Pj4+Pj4KPj4+Pj4+IEEgUFRf Tk9URSBpbiBlbGZjb3JlaGRyIGhvbGRzIHRoZSBhZGRyZXNzIG9mIHRoZSBjb3JyZXNwb25kaW5n IAo+Pj4+Pj4gY3Jhc2ggbm90ZXMgKGtlcm5lbCBoYXMKPj4+Pj4+IG9uZSBjcmFzaCBub3RlIHBl ciBDUFUgZm9yIGV2ZXJ5IHBvc3NpYmxlIENQVSkuIFRob3VnaCB0aGUgY3Jhc2ggCj4+Pj4+PiBu b3RlcyBhcmUgYWxsb2NhdGVkCj4+Pj4+PiBkdXJpbmcgdGhlIGJvb3QgdGltZSB0aGV5IGFyZSBw b3B1bGF0ZWQgd2hlbiB0aGUgc3lzdGVtIGlzIG9uIHRoZSAKPj4+Pj4+IGNyYXNoIHBhdGguCj4+ Pj4+Pgo+Pj4+Pj4gVGhpcyBpcyBob3cgY3Jhc2ggbm90ZXMgYXJlIHBvcHVsYXRlZCBvbiBQb3dl clBDIGFuZCBJIGFtIAo+Pj4+Pj4gZXhwZWN0aW5nIGl0IHdvdWxkIGJlIHNvbWV0aGluZwo+Pj4+ Pj4gc2ltaWxhciBvbiBvdGhlciBhcmNoaXRlY3R1cmVzIHRvby4KPj4+Pj4+Cj4+Pj4+PiBUaGUg Y3Jhc2hpbmcgQ1BVIHNlbmRzIElQSSB0byBldmVyeSBvdGhlciBvbmxpbmUgQ1BVIHdpdGggYSAK Pj4+Pj4+IGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgdXBkYXRlcyB0aGUKPj4+Pj4+IGNyYXNoIG5v dGVzIG9mIHRoYXQgc3BlY2lmaWMgQ1BVLiBPbmNlIHRoZSBJUEkgY29tcGxldGVzIHRoZSAKPj4+ Pj4+IGNyYXNoaW5nIENQVSB1cGRhdGVzIGl0cyBvd24gY3Jhc2gKPj4+Pj4+IG5vdGUgYW5kIHBy b2NlZWRzIGZ1cnRoZXIuCj4+Pj4+Pgo+Pj4+Pj4gVGhlIGNyYXNoIG5vdGVzIG9mIENQVXMgcmVt YWluIHVuaW5pdGlhbGl6ZWQgaWYgdGhlIENQVXMgd2VyZSAKPj4+Pj4+IG9mZmxpbmUgb3IgaG90 IHVucGx1Z2dlZCBhdCB0aGUgdGltZQo+Pj4+Pj4gc3lzdGVtIGNyYXNoLiBUaGUgY29yZS1kdW1w IGFuYWx5emVyIHNob3VsZCBiZSBhYmxlIHRvIGlkZW50aWZ5IAo+Pj4+Pj4gW3VuXS9pbml0aWFs aXplZCBjcmFzaCBub3Rlcwo+Pj4+Pj4gYW5kIGRpc3BsYXkgdGhlIGluZm9ybWF0aW9uIGFjY29y ZGluZ2x5Lgo+Pj4+Pj4KPj4+Pj4+IFRob3VnaHRzPwo+Pj4+Pj4KPj4+Pj4+IC0gU291cmFiaAo+ Pj4+Pgo+Pj4+PiBJJ3ZlIGJlZW4gZXhhbWluaW5nIHdoYXQgaXQgd291bGQgbWVhbiB0byBtb3Zl IHRvIAo+Pj4+PiBmb3JfZWFjaF9wb3NzaWJsZV9jcHUoKSBpbiBjcmFzaF9wcmVwYXJlX2VsZjY0 X2hlYWRlcnMoKS4gSSB0aGluayAKPj4+Pj4gaXQgbWVhbnM6Cj4+Pj4+Cj4+Pj4+IC0gQ2hhbmdp bmcgZm9yX2VhY2hfcHJlc2VudF9jcHUoKSB0byBmb3JfZWFjaF9wb3NzaWJsZV9jcHUoKSBpbiAK Pj4+Pj4gY3Jhc2hfcHJlcGFyZV9lbGY2NF9oZWFkZXJzKCkuCj4+Pj4+IC0gRm9yIGtleGVjX2xv YWQoKSBzeXNjYWxsIHBhdGgsIHJld3JpdGUgdGhlIGluY29taW5nL3N1cHBsaWVkIAo+Pj4+PiBl bGZjb3JlaGRyIGltbWVkaWF0ZWx5IG9uIHRoZSBsb2FkIHdpdGggdGhlIGVsZmNvcmVoZHIgZ2Vu ZXJhdGVkIAo+Pj4+PiBieSBjcmFzaF9wcmVwYXJlX2VsZjY0X2hlYWRlcnMoKS4KPj4+Pj4gLSBF bGltaW5hdGUvcmVtb3ZlIHRoZSBjcHVocCBtYWNoaW5lcnkgZm9yIGhhbmRsaW5nIGNyYXNoIGhv dHBsdWcgCj4+Pj4+IGV2ZW50cy4KPj4+Pgo+Pj4+IElmIGZvcl9lYWNoX3ByZXNlbnRfY3B1IGlz IHJlcGxhY2VkIHdpdGggZm9yX2VhY2hfcG9zc2libGVfY3B1IEkgCj4+Pj4gc3RpbGwgbmVlZCBj cHVocCBtYWNoaW5lcnkKPj4+PiB0byB1cGRhdGUgRkRUIGtleGVjIHNlZ21lbnQgZm9yIENQVSBo b3QgYWRkIGNhc2UuCj4+Pgo+Pj4gQWgsIG9rLCB0aGF0J3MgaW1wb3J0YW50ISBTbyB0aGUgY3B1 aHAgY2FsbGJhY2tzIGFyZSBzdGlsbCBuZWVkZWQuCj4+Pj4KPj4+Pgo+Pj4+Pgo+Pj4+PiBUaGlz IHdvdWxkIHRoZW4gc2V0dXAgUFRfTk9URXMgZm9yIGFsbCBwb3NzaWJsZSBjcHVzLCB3aGljaCBz aG91bGQgCj4+Pj4+IGluIHRoZW9yeSBhY2NvbW1vZGF0ZSBjcmFzaCBhbmFseXplcnMgdGhhdCBy ZWx5IG9uIEVMRiBQVF9OT1RFcyAKPj4+Pj4gZm9yIGNyYXNoX25vdGVzLgo+Pj4+Pgo+Pj4+PiBJ ZiBzdGF5aW5nIHdpdGggZm9yX2VhY2hfcHJlc2VudF9jcHUoKSBpcyB1bHRpbWF0ZWx5IGRlY2lk ZWQsIHRoZW4gCj4+Pj4+IEkgdGhpbmsgbGVhdmluZyB0aGUgY3B1aHAgbWFjaGluZXJ5IGluIHBs YWNlIGFuZCBlYWNoIGFyY2ggY291bGQgCj4+Pj4+IGRlY2lkZSBob3cgdG8gaGFuZGxlIGNyYXNo IGNwdSBob3RwbHVnIGV2ZW50cy4gVGhlIG92ZXJoZWFkIGZvciAKPj4+Pj4gZG9pbmcgdGhpcyBp cyB2ZXJ5IG1pbmltYWwsIGFuZCB0aGUgZXZlbnRzIGFyZSBsaWtlbHkgdmVyeSAKPj4+Pj4gaW5m cmVxdWVudC4KPj4+Pgo+Pj4+IEkgYWdyZWUuIFNvbWUgYXJjaGl0ZWN0dXJlcyBtYXkgbmVlZCBj cHVocCBtYWNoaW5lcnkgdG8gdXBkYXRlIAo+Pj4+IGtleGVjIHNlZ21lbnRbc10gb3RoZXIgdGhl biBlbGZjb3JlaGRyLiBGb3IgZXhhbXBsZSBGRFQgb24gUG93ZXJQQy4KPj4+Pgo+Pj4+IC0gU291 cmFiaCBKYWluCj4+Pgo+Pj4gT0ssIEkgd2FzIHRoaW5raW5nIHRoYXQgdGhlIGRlc2lyZSB3YXMg dG8gZWxpbWluYXRlIHRoZSBjcHVocCAKPj4+IGNhbGxiYWNrcy4gSW4gcmVhbGl0eSwgdGhlIGRl c2lyZSBpcyB0byBjaGFuZ2UgdG8gCj4+PiBmb3JfZWFjaF9wb3NzaWJsZV9jcHUoKS4gR2l2ZW4g dGhhdCB0aGUga2VybmVsIGNyZWF0ZXMgY3Jhc2hfbm90ZXMgCj4+PiBmb3IgYWxsIHBvc3NpYmxl IGNwdXMgdXBvbiBrZXJuZWwgYm9vdCwgdGhlcmUgc2VlbXMgdG8gYmUgbm8gcmVhc29uIAo+Pj4g dG8gbm90IGRvIHRoaXM/Cj4+Pgo+Pj4gSE9XRVZFUi4uLgo+Pj4KPj4+IEl0J3Mgbm90IGNsZWFy IHRvIG1lIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIGNoYW5nZSBuZWVkcyB0byBiZSBwYXJ0IG9mIAo+ Pj4gdGhpcyBzZXJpZXMuIEl0J3MgaW5jbHVzaW9uIHdvdWxkIGZhY2lsaXRhdGUgUFBDIHN1cHBv cnQsIGJ1dCAKPj4+IGRvZXNuJ3QgInNvbHZlIiBhbnl0aGluZyBpbiBnZW5lcmFsLiBJbiBmYWN0 IGl0IGNhdXNlcyBrZXhlY19sb2FkIAo+Pj4gYW5kIGtleGVjX2ZpbGVfbG9hZCB0byBkZXZpYXRl IChrZXhlY19sb2FkIHZpYSB1c2Vyc3BhY2Uga2V4ZWMgZG9lcyAKPj4+IHRoZSBlcXVpdmFsZW50 IG9mIGZvcl9lYWNoX3ByZXNlbnRfY3B1KCkgd2hlcmUgYXMgd2l0aCB0aGlzIGNoYW5nZSAKPj4+ IGtleGVjX2ZpbGVfbG9hZCB3b3VsZCBkbyBmb3JfZWFjaF9wb3NzaWJsZV9jcHUoKTsgdW50aWwg YSBob3QgcGx1ZyAKPj4+IGV2ZW50IHRoZW4gYm90aCB3b3VsZCBkbyBmb3JfZWFjaF9wb3NzaWJs ZV9jcHUoKSkuIEFuZCBpZiB0aGlzIAo+Pj4gY2hhbmdlIHdlcmUgdG8gYXJyaXZlIGFzIHBhcnQg b2YgU291cmFiaCdzIFBQQyBzdXBwb3J0LCB0aGVuIGl0IGRvZXMgCj4+PiBub3QgYXBwZWFyIHRv IGltcGFjdCB4ODYgKG5vdCBzdXJlIGFib3V0IG90aGVyIGFyY2hlcykuIEFuZCB0aGUgCj4+PiAn Y3Jhc2gnIGR1bXAgYW5hbHl6ZXIgZG9lc24ndCBjYXJlIGVpdGhlciB3YXkuCj4+Pgo+Pj4gSW5j bHVkaW5nIHRoaXMgY2hhbmdlIHdvdWxkIGVuYWJsZSBhbiBvcHRpbWl6YXRpb24gcGF0aCAoZm9y IHg4NiBhdCAKPj4+IGxlYXN0KSB0aGF0IHNob3J0LWNpcmN1aXRzIGNwdSBob3RwbHVnIGNoYW5n ZXMgaW4gdGhlIGFyY2ggY3Jhc2ggCj4+PiBoYW5kbGVyLCBmb3IgZXhhbXBsZToKPj4+Cj4+PiBk aWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NyYXNoLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3Jh c2guYwo+Pj4gaW5kZXggYWNhM2YxODE3Njc0Li4wODgzZjZiMTFkZTQgMTAwNjQ0Cj4+PiAtLS0g YS9hcmNoL3g4Ni9rZXJuZWwvY3Jhc2guYwo+Pj4gKysrIGIvYXJjaC94ODYva2VybmVsL2NyYXNo LmMKPj4+IEBAIC00NzMsNiArNDczLDExIEBAIHZvaWQgYXJjaF9jcmFzaF9oYW5kbGVfaG90cGx1 Z19ldmVudChzdHJ1Y3QgCj4+PiBraW1hZ2UgKmltYWdlKQo+Pj4gwqDCoMKgIHVuc2lnbmVkIGxv bmcgbWVtLCBtZW1zejsKPj4+IMKgwqDCoCB1bnNpZ25lZCBsb25nIGVsZnN6ID0gMDsKPj4+Cj4+ PiArwqDCoCBpZiAoaW1hZ2UtPmZpbGVfbW9kZSAmJiAoCj4+PiArwqDCoMKgwqDCoMKgIGltYWdl LT5ocF9hY3Rpb24gPT0gS0VYRUNfQ1JBU0hfSFBfQUREX0NQVSB8fAo+Pj4gK8KgwqDCoMKgwqDC oCBpbWFnZS0+aHBfYWN0aW9uID09IEtFWEVDX0NSQVNIX0hQX1JFTU9WRV9DUFUpKQo+Pj4gK8Kg wqDCoMKgwqDCoCByZXR1cm47Cj4+PiArCj4+PiDCoMKgwqAgLyoKPj4+IMKgwqDCoMKgICogQ3Jl YXRlIHRoZSBuZXcgZWxmY29yZWhkciByZWZsZWN0aW5nIHRoZSBjaGFuZ2VzIHRvIENQVSBhbmQv b3IKPj4+IMKgwqDCoMKgICogbWVtb3J5IHJlc291cmNlcy4KPj4+Cj4+PiBJJ20gbm90IHN1cmUg dGhhdCBpcyBjb21wZWxsaW5nIGdpdmVuIHRoZSBpbmZyZXF1ZW50IG5hdHVyZSBvZiBjcHUgCj4+ PiBob3RwbHVnIGV2ZW50cy4KPj4gSXQgY2VydGFpbmx5IGNsb3Nlcy9yZWR1Y2VzIHRoZSB3aW5k b3cgd2hlcmUga2R1bXAgaXMgbm90IGFjdGl2ZSBkdWUgCj4+IGtleGVjIHNlZ21lbnQgdXBkYXRl LnwKPgo+IEZhaXIgZW5vdWdoLiBJIHBsYW4gdG8gaW5jbHVkZSB0aGlzIGNoYW5nZSBpbiB2MTku Cj4KPj4KPj4+Cj4+PiBJbiBteSBtaW5kIEkgc3RpbGwgaGF2ZSBhIHF1ZXN0aW9uIGFib3V0IGtl eGVjX2xvYWQoKSBwYXRoLiBUaGUgCj4+PiB1c2Vyc3BhY2Uga2V4ZWMgY2FuIG5vdCBkbyB0aGUg ZXF1aXZhbGVudCBvZiAKPj4+IGZvcl9lYWNoX3Bvc3NpYmxlX2NwdSgpLiBJdCBjYW4gb2J0YWlu IG1heCBwb3NzaWJsZSBjcHVzIGZyb20gCj4+PiAvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9wb3Nz aWJsZSwgYnV0IGZvciB0aG9zZSBjcHVzIG5vdCBwcmVzZW50IHRoZSAKPj4+IC9zeXMvZGV2aWNl cy9zeXN0ZW0vY3B1L2NwdVhYIGlzIG5vdCBhdmFpbGFibGUgYW5kIHNvIHRoZSAKPj4+IGNyYXNo X25vdGVzIGVudHJpZXMgaXMgbm90IGF2YWlsYWJsZS4gTXkgYXR0ZW1wdHMgdG8gZXhwb3NlIGFs bCAKPj4+IGNwdVhYIGxlYWQgdG8gb2RkIGJlaGF2aW9yIHRoYXQgd2FzIHJlcXVpcmluZyBjaGFu Z2VzIGluIEFDUEkgYW5kIAo+Pj4gYXJjaCBjb2RlIHRoYXQgbG9va2VkIHVudGVuYWJsZS4KPj4+ Cj4+PiBUaGVyZSBzZWVtIHRvIGJlIHRoZXNlIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBrZXhlY19s b2FkKCkgcGF0aDoKPj4+IC0gaW1tZWRpYXRlbHkgcmV3cml0ZSB0aGUgZWxmY29yZWhkciB1cG9u IGxvYWQgdmlhIGEgY2FsbCB0byAKPj4+IGNyYXNoX3ByZXBhcmVfZWxmNjRfaGVhZGVycygpLiBJ J3ZlIG1hZGUgdGhpcyB3b3JrIHdpdGggdGhlIAo+Pj4gZm9sbG93aW5nLCBhcyBwcm9vZiBvZiBj b25jZXB0Ogo+PiBZZXMgcmVnZW5lcmF0aW5nL3BhdGNoaW5nIHRoZSBlbGZjb3JlaGRyIGNvdWxk IGJlIGFuIG9wdGlvbiBmb3IgCj4+IGtleGVjX2xvYWQgc3lzY2FsbC4KPiBTbyB0aGlzIGlzIG5v dCBuZWVkZWQgYnkgeDg2LCBidXQgbW9yZSBzbyBieSBwcGMuIFNob3VsZCB0aGlzIGNoYW5nZSAK PiBiZSBpbiB0aGUgcHBjIHNldCBvciB0aGlzIHNldD8KU2luY2UgL3N5cy9kZXZpY2VzL3N5c3Rl bS9jcHUvY3B1WFggcmVwcmVzZW50cyBwb3NzaWJsZSBDUFVzIG9uIFBvd2VyUEMsIAp0aGVyZSBp cyBubyBuZWVkIGZvciBlbGZjb3JlaGRyIHJlZ2VuZXJhdGlvbiBvbiBQb3dlclBDIGZvciBrZXhl Y19sb2FkIGNhc2UKZm9yIENQVSBob3RwbHVnIGV2ZW50cy4KCk15IGFzayBpcywga2VlcCB0aGUg Y3B1aHAgbWFjaGluZXJ5IHNvIHRoYXQgYXJjaGl0ZWN0dXJlcyBjYW4gdXBkYXRlIApvdGhlciBr ZXhlYyBzZWdtZW50cyBpZiBuZWVkZWQgb2YgQ1BVIGFkZC9yZW1vdmUgY2FzZS4KCkluIGNhc2Ug eDg2IGhhcyBub3RoaW5nIHRvIHVwZGF0ZSBvbiBDUFUgaG90cGx1ZyBldmVudHMgYW5kIHlvdSB3 YW50IApyZW1vdmUgdGhlIENQVSBocCBtYWNoaW5lcnkgSSBjYW4gYWRkIHRoZSBzYW1lCmluIHBw YyBwYXRjaCBzZXJpZXMuCgpUaGFua3MsClNvdXJhYmggSmFpbgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18Ka2V4ZWMgbWFpbGluZyBsaXN0CmtleGVjQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9rZXhlYwo=