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 X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0DE09C433DB for ; Tue, 16 Feb 2021 09:04:11 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 83A3D64DA8 for ; Tue, 16 Feb 2021 09:04:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 83A3D64DA8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:References: To:Subject:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=hdcP7XTUWtvRQ5KbBETI1gbN0+5Aq5iDGRkq0iymilg=; b=SxjG9QA5ZKsE++61iO1cfRQb4 rNiK3PnQFOVDJgvVn6RlHbIBbL6ig0Hlbk0xUU/gfCx45ufQIFQmM4GDa52XMJ3JLKwQ2JxwWZjDw Km6SWsY0HzWxF7uhqvFnAxorxCZ9+x4VmY6Tom5rzvN+x/OebJzqVD8/rCM/5CjUDLNqC0zgY9Kun dMTbE10X9iLJdjLAaksjxKyLPTneFCWjWoYQ8amTBs2BUXJk97C3sX0EFWCnkOTh8okhG2xACPBs4 ahNQWnmEPjrd8zJjozUleEIryIB0twx8o6FUlKUIXfyt1oGZvIOKadOAUQRHVoTPbqnOW0wQvrmOk 9+TrjJ9vg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lBwF0-0007Eh-2b; Tue, 16 Feb 2021 09:01:54 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lBwEx-0007Dh-QP for linux-arm-kernel@lists.infradead.org; Tue, 16 Feb 2021 09:01:53 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id ECD891FB; Tue, 16 Feb 2021 01:01:45 -0800 (PST) Received: from [192.168.0.130] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9738A3F694; Tue, 16 Feb 2021 01:01:41 -0800 (PST) From: Anshuman Khandual Subject: Re: [PATCH 0/3] mm/page_alloc: Fix pageblock_order with HUGETLB_PAGE_SIZE_VARIABLE To: David Hildenbrand , linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com, akpm@linux-foundation.org, will@kernel.org References: <1613024531-19040-1-git-send-email-anshuman.khandual@arm.com> <683c812a-ce3d-ef74-10d1-eaf8a3ae93d4@redhat.com> Message-ID: <0609df35-dd69-54a7-e839-2d97d77e0016@arm.com> Date: Tue, 16 Feb 2021 14:32:04 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210216_040151_983818_8953E28A X-CRM114-Status: GOOD ( 30.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, Robin Murphy , Christoph Hellwig , Marek Szyprowski Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Ck9uIDIvMTIvMjEgMzowOSBQTSwgRGF2aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4gT24gMTIuMDIu MjEgMDg6MDIsIEFuc2h1bWFuIEtoYW5kdWFsIHdyb3RlOgo+Pgo+PiBPbiAyLzExLzIxIDI6MDcg UE0sIERhdmlkIEhpbGRlbmJyYW5kIHdyb3RlOgo+Pj4gT24gMTEuMDIuMjEgMDc6MjIsIEFuc2h1 bWFuIEtoYW5kdWFsIHdyb3RlOgo+Pj4+IFRoZSBmb2xsb3dpbmcgd2FybmluZyBnZXRzIHRyaWdn ZXJlZCB3aGlsZSB0cnlpbmcgdG8gYm9vdCBhIDY0SyBwYWdlIHNpemUKPj4+PiB3aXRob3V0IFRI UCBjb25maWcga2VybmVsIG9uIGFybTY0IHBsYXRmb3JtLgo+Pj4+Cj4+Pj4gV0FSTklORzogQ1BV OiA1IFBJRDogMTI0IGF0IG1tL3Ztc3RhdC5jOjEwODAgX19mcmFnbWVudGF0aW9uX2luZGV4KzB4 YTQvMHhjMAo+Pj4+IE1vZHVsZXMgbGlua2VkIGluOgo+Pj4+IENQVTogNSBQSUQ6IDEyNCBDb21t OiBrc3dhcGQwIE5vdCB0YWludGVkIDUuMTEuMC1yYzYtMDAwMDQtZ2EwZWE3ZDYyMDAyICMxNTkK Pj4+PiBIYXJkd2FyZSBuYW1lOiBsaW51eCxkdW1teS12aXJ0IChEVCkKPj4+PiBbwqDCoMKgIDgu ODEwNjczXSBwc3RhdGU6IDIwNDAwMDA1IChuekN2IGRhaWYgK1BBTiAtVUFPIC1UQ08gQlRZUEU9 LS0pCj4+Pj4gW8KgwqDCoCA4LjgxMTczMl0gcGMgOiBfX2ZyYWdtZW50YXRpb25faW5kZXgrMHhh NC8weGMwCj4+Pj4gW8KgwqDCoCA4LjgxMjU1NV0gbHIgOiBmcmFnbWVudGF0aW9uX2luZGV4KzB4 ZjgvMHgxMzgKPj4+PiBbwqDCoMKgIDguODEzMzYwXSBzcCA6IGZmZmYwMDAwODY0MDc5YjAKPj4+ PiBbwqDCoMKgIDguODEzOTU4XSB4Mjk6IGZmZmYwMDAwODY0MDc5YjAgeDI4OiAwMDAwMDAwMDAw MDAwMzcyCj4+Pj4gW8KgwqDCoCA4LjgxNDkwMV0geDI3OiAwMDAwMDAwMDAwMDA3NjgyIHgyNjog ZmZmZjgwMDAxMzViMzk0OAo+Pj4+IFvCoMKgwqAgOC44MTU4NDddIHgyNTogMWZmZmUwMDAxMGM4 MGY0OCB4MjQ6IDAwMDAwMDAwMDAwMDAwMDAKPj4+PiBbwqDCoMKgIDguODE2ODA1XSB4MjM6IDAw MDAwMDAwMDAwMDAwMDAgeDIyOiAwMDAwMDAwMDAwMDAwMDBkCj4+Pj4gW8KgwqDCoCA4LjgxNzc2 NF0geDIxOiAwMDAwMDAwMDAwMDAwMDMwIHgyMDogZmZmZjAwMDVmZmNiNGQ1OAo+Pj4+IFvCoMKg wqAgOC44MTg3MTJdIHgxOTogMDAwMDAwMDAwMDAwMDAwYiB4MTg6IDAwMDAwMDAwMDAwMDAwMDAK Pj4+PiBbwqDCoMKgIDguODE5NjU2XSB4MTc6IDAwMDAwMDAwMDAwMDAwMDAgeDE2OiAwMDAwMDAw MDAwMDAwMDAwCj4+Pj4gW8KgwqDCoCA4LjgyMDYxM10geDE1OiAwMDAwMDAwMDAwMDAwMDAwIHgx NDogZmZmZjgwMDAxMTRjNjI1OAo+Pj4+IFvCoMKgwqAgOC44MjE1NjBdIHgxMzogZmZmZjYwMDBi ZmY5NjliYSB4MTI6IDFmZmZlMDAwYmZmOTY5YjkKPj4+PiBbwqDCoMKgIDguODIyNTE0XSB4MTE6 IDFmZmZlMDAwYmZmOTY5YjkgeDEwOiBmZmZmNjAwMGJmZjk2OWI5Cj4+Pj4gW8KgwqDCoCA4Ljgy MzQ2MV0geDkgOiBkZmZmODAwMDAwMDAwMDAwIHg4IDogZmZmZjAwMDVmZmNiNGRjZgo+Pj4+IFvC oMKgwqAgOC44MjQ0MTVdIHg3IDogMDAwMDAwMDAwMDAwMDAwMSB4NiA6IDAwMDAwMDAwNDFiNThh YjMKPj4+PiBbwqDCoMKgIDguODI1MzU5XSB4NSA6IGZmZmY2MDAwMTBjODBmNDggeDQgOiBkZmZm ODAwMDAwMDAwMDAwCj4+Pj4gW8KgwqDCoCA4LjgyNjMxM10geDMgOiBmZmZmODAwMDEwMmJlNjcw IHgyIDogMDAwMDAwMDAwMDAwMDAwNwo+Pj4+IFvCoMKgwqAgOC44MjcyNTldIHgxIDogZmZmZjAw MDA4NjQwN2E2MCB4MCA6IDAwMDAwMDAwMDAwMDAwMGQKPj4+PiBbwqDCoMKgIDguODI4MjE4XSBD YWxsIHRyYWNlOgo+Pj4+IFvCoMKgwqAgOC44Mjg2NjddwqAgX19mcmFnbWVudGF0aW9uX2luZGV4 KzB4YTQvMHhjMAo+Pj4+IFvCoMKgwqAgOC44Mjk0MzZdwqAgZnJhZ21lbnRhdGlvbl9pbmRleCsw eGY4LzB4MTM4Cj4+Pj4gW8KgwqDCoCA4LjgzMDE5NF3CoCBjb21wYWN0aW9uX3N1aXRhYmxlKzB4 OTgvMHhiOAo+Pj4+IFvCoMKgwqAgOC44MzA5MzRdwqAgd2FrZXVwX2tjb21wYWN0ZCsweGRjLzB4 MTI4Cj4+Pj4gW8KgwqDCoCA4LjgzMTY0MF3CoCBiYWxhbmNlX3BnZGF0KzB4NzFjLzB4N2EwCj4+ Pj4gW8KgwqDCoCA4LjgzMjMyN13CoCBrc3dhcGQrMHgzMWMvMHg1MjAKPj4+PiBbwqDCoMKgIDgu ODMyOTAyXcKgIGt0aHJlYWQrMHgyMjQvMHgyMzAKPj4+PiBbwqDCoMKgIDguODMzNDkxXcKgIHJl dF9mcm9tX2ZvcmsrMHgxMC8weDMwCj4+Pj4gW8KgwqDCoCA4LjgzNDE1MF0gLS0tWyBlbmQgdHJh Y2UgNDcyODM2Zjc5YzE1NTE2YiBdLS0tCj4+Pj4KPj4+PiBUaGlzIHdhcm5pbmcgY29tZXMgZnJv bSBfX2ZyYWdtZW50YXRpb25faW5kZXgoKSB3aGVuIHRoZSByZXF1ZXN0ZWQgb3JkZXIKPj4+PiBp cyBncmVhdGVyIHRoYW4gTUFYX09SREVSLgo+Pj4+Cj4+Pj4gc3RhdGljIGludCBfX2ZyYWdtZW50 YXRpb25faW5kZXgodW5zaWduZWQgaW50IG9yZGVyLAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc3RydWN0IGNvbnRpZ19wYWdlX2luZm8gKmluZm8pCj4+Pj4gewo+Pj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIHJlcXVlc3RlZCA9IDFVTCA8PCBvcmRl cjsKPj4+Pgo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoV0FSTl9PTl9PTkNFKG9yZGVyID49 IE1BWF9PUkRFUikpIDw9PT09PSBUcmlnZ2VyZWQgaGVyZQo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+Pj4KPj4+PiBEaWdnaW5nIGl0IGZ1cnRoZXIg cmV2ZWFscyB0aGF0IHBhZ2VibG9ja19vcmRlciBoYXMgYmVlbiBhc3NpZ25lZCBhIHZhbHVlCj4+ Pj4gd2hpY2ggaXMgZ3JlYXRlciB0aGFuIE1BWF9PUkRFUiBmYWlsaW5nIHRoZSBhYm92ZSBjaGVj ay4gQnV0IHdoeSB0aGlzCj4+Pj4gaGFwcGVuZWQgPyBCZWNhdXNlIEhVR0VUTEJfUEFHRV9PUkRF UiBmb3IgdGhlIGdpdmVuIGNvbmZpZyBvbiBhcm02NCBpcwo+Pj4+IGdyZWF0ZXIgdGhhbiBNQVhf T1JERVIuCj4+Pj4KPj4+PiBUaGUgc29sdXRpb24gaW52b2x2ZXMgZW5hYmxpbmcgSFVHRVRMQl9Q QUdFX1NJWkVfVkFSSUFCTEUgd2hpY2ggd291bGQgbWFrZQo+Pj4+IHBhZ2VibG9ja19vcmRlciBh IHZhcmlhYmxlIGluc3RlYWQgb2YgY29uc3RhbnQgSFVHRVRMQl9QQUdFX09SREVSLiBCdXQgdGhh dAo+Pj4+IGNoYW5nZSBhbG9uZSBhbHNvIGRpZCBub3QgcmVhbGx5IHdvcmsgYXMgcGFnZWJsb2Nr X29yZGVyIHN0aWxsIGdvdCBhc3NpZ25lZAo+Pj4+IGFzIEhVR0VUTEJfUEFHRV9PUkRFUiBpbiBz ZXRfcGFnZWJsb2NrX29yZGVyKCkuIEhVR0VUTEJfUEFHRV9PUkRFUiBuZWVkcyB0bwo+Pj4+IGJl IGxlc3MgdGhhbiBNQVhfT1JERVIgZm9yIGl0cyBhcHByb3ByaWF0ZW5lc3MgYXMgcGFnZWJsb2Nr X29yZGVyIG90aGVyd2lzZQo+Pj4+IGp1c3QgZmFsbGJhY2sgdG8gTUFYX09SREVSIC0gMSBhcyBi ZWZvcmUuIFdoaWxlIGhlcmUgaXQgYWxzbyBmaXhlcyBhIGJ1aWxkCj4+Pj4gcHJvYmxlbSB2aWEg dHlwZSBjYXN0aW5nIE1BWF9PUkRFUiBpbiBybWVtX2NtYV9zZXR1cCgpLgo+Pj4KPj4+IEknbSB3 b25kZXJpbmcsIGlzIHRoZXJlIGFueSByZWFsIHZhbHVlIGluIGFsbG93aW5nIEZPUkNFX01BWF9a T05FT1JERVIgdG8gYmUgIjExIiB3aXRoIEFSTTY0XzY0S19QQUdFUy9BUk02NF8xNktfUEFHRVM/ Cj4+Cj4+IE1BWF9PUkRFUiBzaG91bGQgYmUgYXMgaGlnaCBhcyB3b3VsZCBiZSByZXF1aXJlZCBm b3IgdGhlIGN1cnJlbnQgY29uZmlnLgo+PiBVbmxlc3MgVEhQIGlzIGVuYWJsZWQsIHRoZXJlIGlz IG5vIG5lZWQgZm9yIGl0IHRvIGJlIGFueSBoaWdoZXIgdGhhbiAxMS4KPj4gQnV0IEkgbWlnaHQg YmUgbWlzc2luZyBoaXN0b3JpY2FsIHJlYXNvbnMgYXJvdW5kIHRoaXMgYXMgd2VsbC4gUHJvYmFi bHkKPj4gb3RoZXJzIGZyb20gYXJtNjQgY291bGQgaGVscCBoZXJlLgo+IAo+IFRoZW9yZXRpY2Fs bHkgeWVzLCBwcmFjdGljYWxseSBuby4gSWYgbm9ib2R5IGNhcmVzIGFib3V0IGEgY29uZmlndXJh dGlvbiwgbm8gbmVlZCB0byBtYWtlIHRoZSBjb2RlIG1vcmUgY29tcGxpY2F0ZWQgZm9yIHRoYXQg Y29uZmlndXJhdGlvbi4KPiAKPj4KPj4+Cj4+PiBNZWFuaW5nOiBhcmUgdGhlcmUgYW55IHJlYWwg dXNlIGNhc2VzIHRoYXQgYWN0dWFsbHkgYnVpbGQgYSBrZXJuZWwgd2l0aG91dCBUUkFOU1BBUkVO VF9IVUdFUEFHRSBhbmQgd2l0aCBBUk02NF82NEtfUEFHRVMvQVJNNjRfMTZLX1BBR0VTPwo+Pgo+ PiBUSFAgaXMgYWx3YXlzIG9wdGlvbmFsLiBCZXNpZGVzIGtlcm5lbCBidWlsZHMgd2l0aG91dCBU SFAgc2hvdWxkIGFsd2F5cwo+PiBiZSBzdXBwb3J0ZWQuIEFzc3VtaW5nIHRoYXQgYWxsIGJ1aWxk cyB3aWxsIGhhdmUgVEhQIGVuYWJsZWQsIG1pZ2h0IG5vdAo+PiBiZSBhY2N1cmF0ZS4KPj4KPj4+ Cj4+PiBBcyBidWlsZHMgYXJlIGVzc2VudGlhbGx5IGJyb2tlbiwgSSBhc3N1bWUgdGhpcyBpcyBu b3QgdGhhdCByZWxldmFudD8gT3IgaG93IGxvbmcgaGFzIGl0IGJlZW4gYnJva2VuPwo+Pgo+PiBH aXQgYmxhbWUgc2hvd3MgdGhhdCBpdCdzIGJlZW4gdGhlcmUgZm9yIHNvbWUgdGltZSBub3cuIEJ1 dCBob3cgZG9lcwo+PiB0aGF0IG1ha2UgdGhpcyBpcnJlbGV2YW50ID8gQSBwcm9ibGVtIHNob3Vs ZCBiZSBmaXhlZCBub25ldGhlbGVzcy4KPiAKPiBXaGVuIGV4YWN0bHkgZGlkIEkgc2F5IG5vdCB0 byBmaXggaXQ/IEknbSBzYXlpbmcgaWYgbm9ib2R5IHVzZXMgaXQsIHdlIG1pZ2h0IGJlIGFibGUg dG8gc2ltcGxpZnkuCgpJIG1pZ2h0IGhhdmUgbWlzdW5kZXJzdG9vZCB0aGUgcmVsZXZhbmNlIG9m IGEgcHJvYmxlbWF0aWMgY29uZmlndXJhdGlvbgp3cnQgdGhlIG5lZWQgZm9yIGl0IHRvIGJlIGZp eGVkLiBNeSBiYWQsIG5ldmVyIG1pbmQgOikKCj4gCj4+Cj4+Pgo+Pj4gSXQgbWlnaHQgYmUgZWFz aWVyIHRvIGp1c3QgZHJvcCB0aGUgIlRSQU5TUEFSRU5UX0hVR0VQQUdFIiBwYXJ0IGZyb20gdGhl IEZPUkNFX01BWF9aT05FT1JERVIgY29uZmlnLgo+Pj4KPj4KPj4gTm90IHN1cmUgaWYgaXQgd291 bGQgYmUgYSBnb29kIGlkZWEgdG8gdW5uZWNlc3NhcmlseSBoYXZlIGxhcmdlciBNQVhfT1JERVIK Pj4gdmFsdWUgZm9yIGEgZ2l2ZW4gY29uZmlnLiBCdXQgSSBtaWdodCBiZSBtaXNzaW5nIG90aGVy IGNvbnRleHRzIGhlcmUuCj4gCj4gTXkgcG9pbnQgaXM6IGtlZXAgaXQgc2ltcGxlIGlmIHRoZXJl IGlzIG5vIG5lZWQgdG8gbWFrZSBpdCBjb21wbGljYXRlZC4gSWYgdGhlc2UgYXJtNjQgdmFyaWFu dHMgYXJlIHRoZSBvbmx5IGNhc2VzIHdoZXJlIHdlIHJ1biBpbnRvIHRoYXQgaXNzdWUgYW5kIG5v Ym9keSB1c2VzIHRoZW0gKCJoYXQgaXQncyBiZWVuIHRoZXJlIGZvciBzb21lIHRpbWUgbm93Iiks IHdoeSBtYWtlIHN0dWZmIGNvbXBsaWNhdGVkPwo+IAo+IFRoZSBjdXJyZW50IGNvZGUgc2VlbXMg dG8gYXNzdW1lIHRoYXQgSFVHRVRMQl9QQUdFX09SREVSIDw9IE1BWF9PUkRFUi4gSW5zdGVhZCBv ZiBjaGFuZ2luZyB0aGF0IGZvciBvcHRpbWl6aW5nIGFuIHVudXNlZCB1c2UgY2FzZSAoaXQgaXMg YnJva2VuKSwganVzdCBzaW1wbGlmeSB0aGUgYXJtNjQgY29uZGl0aW9ucy4gSSdkIGV2ZW4gc2F5 IGFkZCBhCgpXaWxsIHRyeSBhbmQgY2hhbmdlIE1BWF9PUkRFUiBvbiBhcm02NC4KCj4gCj4gLyoK PiDCoCogU29tZSBjb2RlIGFzc3VtZXMgdGhhdCBIVUdFVExCX1BBR0VfT1JERVIgPD0gTUFYX09S REVSLiBGb3Igbm93LCBvbmx5Cj4gwqAqICFUUkFOU1BBUkVOVF9IVUdFUEFHRSBjb3VsZCBsZWFk IGluIGFyY2hzIGNyZWF0aW5nIHN1Y2ggc2V0dXBzLgo+IMKgKiBGb3JiaWQgaXQgZm9yIG5vdzsg YW55Ym9keSB0aGF0IGhhcyBhIHZhbGlkIHVzZSBjYXNlIGhhcyB0byBzYW5pdGl6ZQo+IMKgKiB0 aGUgY29kZS4KPiDCoCovCj4gQlVJTERfQlVHX09OKEhVR0VUTEJfUEFHRV9PUkRFUiA8PSBNQVhf T1JERVIpOwoKQWxzbyBhZGQgYW5vdGhlciwgbWlnaHQgaGF2ZSB0byBmaW5kIGEgcHJvcGVyIHBs YWNlIHRvIHB1dCB0aGVzZS4KCkJVSUxEX0JVR19PTihIUEFHRV9QTURfT1JERVIgPD0gTUFYX09S REVSKQoKPiAKPiAKPiBCdXQgYWdhaW4sIGlmIHRoZXJlIGFyZSB2YWxpZCB1c2UgY2FzZXMgdGhl biBzdXJlLCBsZXQncyBtYWtlIHRoZSBjb2RlIGZ1bGx5IGNvbXBhdGlibGUgd2l0aCBIVUdFVExC X1BBR0VfT1JERVIgPiBNQVhfT1JERVIuCgpHaXZlbiB0aGF0IGdpZ2FudGljIEh1Z2VUTEIgYWxs b2NhdGlvbiBjYW4gZmFsbGJhY2sgb24gYWxsb2NfY29udGlnX3BhZ2VzKCkKb3IgQ01BIGlmL3do ZW4gYXZhaWxhYmxlLCBpcyB0aGVyZSBhIHJlYWwgbmVlZCBmb3IgSFVHRVRMQl9QQUdFX09SREVS IHRvIGJlCnVwdG8gTUFYX09SREVSLCB1c2VkIGFzIHBhZ2VibG9ja19vcmRlciBvciBhcyBDT01Q QUNUSU9OX0hQQUdFX09SREVSID8gV2l0aApnaWdhbnRpYyBIdWdlVExCIHBhZ2VzIGJlaW5nIGF2 YWlsYWJsZSwgSFVHRVRMQl9QQUdFX09SREVSIHNlZW1zIHRvIGJlIGp1c3QKZGV0YWNoZWQgZnJv bSB0aGUgYnVkZHkgYWxsb2NhdG9yLiBCdXQgSSBhbSBub3Qgc3VyZSwgd2lsbCBrZWVwIGxvb2tp bmcuCgo+IAo+IAo+IEJUVzogY2FuIHdlIGJlIHN1cmUgdGhhdCB5b3UgY2F1Z2h0IGFsbCBpc3N1 ZXM/IEZvciBleGFtcGxlOgo+IAo+ICNkZWZpbmUgQ09NUEFDVElPTl9IUEFHRV9PUkRFUsKgIEhV R0VUTEJfUEFHRV9PUkRFUgo+IAo+IEknbSBub3Qgc3VyZSBpZiBpdCB3aWxsIHdvcmsgYXMgZXhw ZWN0ZWQgaWYgSFVHRVRMQl9QQUdFX09SREVSID4gTUFYX09SREVSIC4uLiBmaWxsX2NvbnRpZ19w YWdlX2luZm8oKSB3aWxsIG5ldmVyIGZpbmQgYW55IHN1aXRhYmxlIGZyZWUgYmxvY2tzIC4uLgo+ IAoKUmlnaHQsIHRoZXJlIGlzIGFuIGFzc3VtcHRpb24gdGhhdCBDT01QQUNUSU9OX0hQQUdFX09S REVSIDwgTUFYX09SREVSIGluCmZpbGxfY29udGlnX3BhZ2VfaW5mbygpIGFuZCB3aWxsIG5ldmVy IGZpbmQgYW55IHN1aXRhYmxlIGZyZWUgYmxvY2tzLiBUaGlzCmFsb25nIHdpdGggcGFnZWJsb2Nr X29yZGVyIG5lZWRzIHRvIGNoYW5nZSB3aGVuIEhVR0VUTEJfUEFHRV9PUkRFUiBjYW4gYmUKZ3Jl YXRlciB0aGFuIGVxdWFsIHRvIE1BWF9PUkRFUi4KCi0gQW5zaHVtYW4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK