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 7B18DC3DA6E for ; Wed, 20 Dec 2023 10:00:47 +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=+DzGGny2AIDRgFdWAHCCb3u9kMxnmmYYrwafM73Es3I=; b=TXU5xuSTs1pX1E DaKRuileg0Vs+GWEBCNIoSkKk0Kqwpfn/lDmtb4JPmbLKX1aVCTXUTLMAcR6w/9Tji/VIDLRskpEL W8hsa7De/vPX8Zr2FbyF//XREumyCQbSn/jeJ1oX6kbdJDbJY1Tzn8eqmzC4ToUbX/Rw13Vm+b1yx iVF19othLt12jE54DEqT3vZ7GEYgqY6KMFEORx6Pmb0s1YnOG1SblKVxDiP73WJbxYRhf04uKi/M7 ArIF8a3szID27dBzjWIflIac+Hl5kq/sGQAvcmiJ4ksm4Oxze0I03xZerZ7rpd/lOLUlYPcQS7kdT 3+zejmZYtjw16ygGWNTg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rFtNC-00Gni9-1y; Wed, 20 Dec 2023 10:00:18 +0000 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rFtN9-00GnhI-0D for linux-arm-kernel@lists.infradead.org; Wed, 20 Dec 2023 10:00:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1703066414; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=ZOwxbnKCqTvbPb7dNxZkb8DxBKBNfmgXfSTqXzu6wUU=; b=UDGsDI4iw/NOd+8jzxn6CG0osPL+WbQFXXFAiu35OSxpOBifkGfxInn+mgEUVGNpItqLet qTBXh6tb3KoRchgrFwYeauJFk8xKTOnII42UMUqw9l9C9jSce3fdQnWUo4epFRt2XPxdkL Wg/n3BLC/yyN9sEucYvn1q67eNUPDNM= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-378-3ejd_EJBMrKJInpJv1cJEg-1; Wed, 20 Dec 2023 05:00:10 -0500 X-MC-Unique: 3ejd_EJBMrKJInpJv1cJEg-1 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-40d38c09797so976575e9.0 for ; Wed, 20 Dec 2023 02:00:10 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703066409; x=1703671209; h=content-transfer-encoding:in-reply-to:organization:autocrypt:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ZOwxbnKCqTvbPb7dNxZkb8DxBKBNfmgXfSTqXzu6wUU=; b=FxA0L/7VeJ6GPn5UL93MQI2XGnTYlnP15pV6h+TIJDtYyQNRTjw6ga3iic8TYDFRaU eLnY1hlAd6wSZo3FY/pp5DVKMMgCH3JcU9a/LtY9b0pvaGCieFolXfzjRZxx3pFre0/P 1zPknx0Dji3gJyFMCOEhUHyaawH+PdQkY5zOY9iHHvhMVM5m75Xq9VeSaKSevAVF38YH Pwgml98Ccjy8rGLaK5pWRiMwkWKKG9PmuvQjRbeTROFmPcsQFLtHcleOoijUUfTrOxD4 XoXEfD3TlV0c9mJ3LRwEw8IAIr6mMYY9z5o7ZDyyuGh3ufrc6HwqgAVOx8+VJdl4AxIF aFZg== X-Gm-Message-State: AOJu0YxVCN0y9pyOlKL6Dg5pP25o7HJDM3nUqw51DqYBA/26sxSvYxLb Tu5n8BesK18z3YFRz5whd1KLYuuckdWeeoDFVx1dapvUsvDVCbBlrjV4pCH/06RPkd2f7ewp+2L uR5DoAn12+GRdYd8B2kdJh4/YT38BnfHSTMY= X-Received: by 2002:a05:600c:2b0e:b0:40c:337e:f059 with SMTP id y14-20020a05600c2b0e00b0040c337ef059mr10745626wme.65.1703066409273; Wed, 20 Dec 2023 02:00:09 -0800 (PST) X-Google-Smtp-Source: AGHT+IGmlriJkZ2QzWApV1tpgO8fpO242Eld4X51fAg1ZiS/sdUk8EW4LmIzTP59jEvTX3TSmIDZ8A== X-Received: by 2002:a05:600c:2b0e:b0:40c:337e:f059 with SMTP id y14-20020a05600c2b0e00b0040c337ef059mr10745599wme.65.1703066408736; Wed, 20 Dec 2023 02:00:08 -0800 (PST) Received: from ?IPV6:2003:cb:c73b:eb00:8e25:6953:927:1802? (p200300cbc73beb008e25695309271802.dip0.t-ipconnect.de. [2003:cb:c73b:eb00:8e25:6953:927:1802]) by smtp.gmail.com with ESMTPSA id d9-20020adffbc9000000b003367dd514d9sm554472wrs.15.2023.12.20.02.00.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 20 Dec 2023 02:00:08 -0800 (PST) Message-ID: <23638533-048f-4110-971f-bb359b39b60b@redhat.com> Date: Wed, 20 Dec 2023 11:00:06 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 02/16] mm: Batch-copy PTE ranges during fork() To: Ryan Roberts , Catalin Marinas , Will Deacon , Ard Biesheuvel , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Zenghui Yu , Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Dmitry Vyukov , Vincenzo Frascino , Andrew Morton , Anshuman Khandual , Matthew Wilcox , Yu Zhao , Mark Rutland , Kefeng Wang , John Hubbard , Zi Yan , Barry Song <21cnbao@gmail.com>, Alistair Popple , Yang Shi Cc: linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20231218105100.172635-1-ryan.roberts@arm.com> <20231218105100.172635-3-ryan.roberts@arm.com> <0bef5423-6eea-446b-8854-980e9c23a948@redhat.com> <7c0236ad-01f3-437f-8b04-125d69e90dc0@redhat.com> <9a58b1a2-2c13-4fa0-8ffa-2b3d9655f1b6@arm.com> <15177acd-8d75-46a8-9460-98ea313a7b2b@arm.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: <15177acd-8d75-46a8-9460-98ea313a7b2b@arm.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231220_020015_250508_1A3D8AA3 X-CRM114-Status: GOOD ( 27.84 ) 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 T24gMjAuMTIuMjMgMTA6NTcsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPiBPbiAyMC8xMi8yMDIzIDA5 OjUxLCBSeWFuIFJvYmVydHMgd3JvdGU6Cj4+IE9uIDIwLzEyLzIwMjMgMDk6MTcsIERhdmlkIEhp bGRlbmJyYW5kIHdyb3RlOgo+Pj4gT24gMTkuMTIuMjMgMTg6NDIsIFJ5YW4gUm9iZXJ0cyB3cm90 ZToKPj4+PiBPbiAxOS8xMi8yMDIzIDE3OjIyLCBEYXZpZCBIaWxkZW5icmFuZCB3cm90ZToKPj4+ Pj4gT24gMTkuMTIuMjMgMDk6MzAsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4+Pj4+IE9uIDE4LzEy LzIwMjMgMTc6NDcsIERhdmlkIEhpbGRlbmJyYW5kIHdyb3RlOgo+Pj4+Pj4+IE9uIDE4LjEyLjIz IDExOjUwLCBSeWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+Pj4+IENvbnZlcnQgY29weV9wdGVfcmFu Z2UoKSB0byBjb3B5IGEgYmF0Y2ggb2YgcHRlcyBpbiBvbmUgZ28uIEEgZ2l2ZW4KPj4+Pj4+Pj4g YmF0Y2ggaXMgZGV0ZXJtaW5lZCBieSB0aGUgYXJjaGl0ZWN0dXJlIHdpdGggdGhlIG5ldyBoZWxw ZXIsCj4+Pj4+Pj4+IHB0ZV9iYXRjaF9yZW1haW5pbmcoKSwgYW5kIG1hcHMgYSBwaHlzaWNhbGx5 IGNvbnRpZ3VvdXMgYmxvY2sgb2YgbWVtb3J5LAo+Pj4+Pj4+PiBhbGwgYmVsb25naW5nIHRvIHRo ZSBzYW1lIGZvbGlvLiBBIHB0ZSBiYXRjaCBpcyB0aGVuIHdyaXRlLXByb3RlY3RlZCBpbgo+Pj4+ Pj4+PiBvbmUgZ28gaW4gdGhlIHBhcmVudCB1c2luZyB0aGUgbmV3IGhlbHBlciwgcHRlcF9zZXRf d3Jwcm90ZWN0cygpIGFuZCBpcwo+Pj4+Pj4+PiBzZXQgaW4gb25lIGdvIGluIHRoZSBjaGlsZCB1 c2luZyB0aGUgbmV3IGhlbHBlciwgc2V0X3B0ZXNfZnVsbCgpLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBU aGUgcHJpbWFyeSBtb3RpdmF0aW9uIGZvciB0aGlzIGNoYW5nZSBpcyB0byByZWR1Y2UgdGhlIG51 bWJlciBvZiB0bGIKPj4+Pj4+Pj4gbWFpbnRlbmFuY2Ugb3BlcmF0aW9ucyB0aGF0IHRoZSBhcm02 NCBiYWNrZW5kIGhhcyB0byBwZXJmb3JtIGR1cmluZwo+Pj4+Pj4+PiBmb3JrLCBhcyBpdCBpcyBh Ym91dCB0byBhZGQgdHJhbnNwYXJlbnQgc3VwcG9ydCBmb3IgdGhlICJjb250aWd1b3VzIGJpdCIK Pj4+Pj4+Pj4gaW4gaXRzIHB0ZXMuIEJ5IHdyaXRlLXByb3RlY3RpbmcgdGhlIHBhcmVudCB1c2lu ZyB0aGUgbmV3Cj4+Pj4+Pj4+IHB0ZXBfc2V0X3dycHJvdGVjdHMoKSAobm90ZSB0aGUgJ3MnIGF0 IHRoZSBlbmQpIGZ1bmN0aW9uLCB0aGUgYmFja2VuZAo+Pj4+Pj4+PiBjYW4gYXZvaWQgaGF2aW5n IHRvIHVuZm9sZCBjb250aWcgcmFuZ2VzIG9mIFBURXMsIHdoaWNoIGlzIGV4cGVuc2l2ZSwKPj4+ Pj4+Pj4gd2hlbiBhbGwgcHRlcyBpbiB0aGUgcmFuZ2UgYXJlIGJlaW5nIHdyaXRlLXByb3RlY3Rl ZC4gU2ltaWxhcmx5LCBieQo+Pj4+Pj4+PiB1c2luZyBzZXRfcHRlc19mdWxsKCkgcmF0aGVyIHRo YW4gc2V0X3B0ZV9hdCgpIHRvIHNldCB1cCBwdGVzIGluIHRoZQo+Pj4+Pj4+PiBjaGlsZCwgdGhl IGJhY2tlbmQgZG9lcyBub3QgbmVlZCB0byBmb2xkIGEgY29udGlndW91cyByYW5nZSBvbmNlIHRo ZXkKPj4+Pj4+Pj4gYXJlIGFsbCBwb3B1bGF0ZWQgLSB0aGV5IGNhbiBiZSBpbml0aWFsbHkgcG9w dWxhdGVkIGFzIGEgY29udGlndW91cwo+Pj4+Pj4+PiByYW5nZSBpbiB0aGUgZmlyc3QgcGxhY2Uu Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFRoaXMgY29kZSBpcyB2ZXJ5IHBlcmZvcm1hbmNlIHNlbnNpdGl2 ZSwgYW5kIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mCj4+Pj4+Pj4+IGVmZm9ydCBoYXMgYmVlbiBw dXQgaW50byBub3QgcmVncmVzc2luZyBwZXJmb3JtYW5jZSBmb3IgdGhlIG9yZGVyLTAKPj4+Pj4+ Pj4gZm9saW8gY2FzZS4gQnkgZGVmYXVsdCwgcHRlX2JhdGNoX3JlbWFpbmluZygpIGlzIGNvbXBp bGUgY29uc3RhbnQgMSwKPj4+Pj4+Pj4gd2hpY2ggZW5hYmxlcyB0aGUgY29tcGlsZXIgdG8gc2lt cGxpZnkgdGhlIGV4dHJhIGxvb3BzIHRoYXQgYXJlIGFkZGVkCj4+Pj4+Pj4+IGZvciBiYXRjaGlu ZyBhbmQgcHJvZHVjZSBjb2RlIHRoYXQgaXMgZXF1aXZhbGVudCAoYW5kIGVxdWFsbHkKPj4+Pj4+ Pj4gcGVyZm9ybWFudCkgYXMgdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uLgo+Pj4+Pj4+Pgo+ Pj4+Pj4+PiBUaGlzIGNoYW5nZSBhZGRyZXNzZXMgdGhlIGNvcmUtbW0gcmVmYWN0b3Jpbmcgb25s eSBhbmQgYSBzZXBhcmF0ZSBjaGFuZ2UKPj4+Pj4+Pj4gd2lsbCBpbXBsZW1lbnQgcHRlX2JhdGNo X3JlbWFpbmluZygpLCBwdGVwX3NldF93cnByb3RlY3RzKCkgYW5kCj4+Pj4+Pj4+IHNldF9wdGVz X2Z1bGwoKSBpbiB0aGUgYXJtNjQgYmFja2VuZCB0byByZWFsaXplIHRoZSBwZXJmb3JtYW5jZQo+ Pj4+Pj4+PiBpbXByb3ZlbWVudCBhcyBwYXJ0IG9mIHRoZSB3b3JrIHRvIGVuYWJsZSBjb250cHRl IG1hcHBpbmdzLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBUbyBlbnN1cmUgdGhlIGFybTY0IGlzIHBlcmZv cm1hbnQgb25jZSBpbXBsZW1lbnRlZCwgdGhpcyBjaGFuZ2UgaXMgdmVyeQo+Pj4+Pj4+PiBjYXJl ZnVsIHRvIG9ubHkgY2FsbCBwdGVwX2dldCgpIG9uY2UgcGVyIHB0ZSBiYXRjaC4KPj4+Pj4+Pj4K Pj4+Pj4+Pj4gVGhlIGZvbGxvd2luZyBtaWNyb2JlbmNobWFyayByZXN1bHRzIGRlbW9uc3RhdGUg dGhhdCB0aGVyZSBpcyBubwo+Pj4+Pj4+PiBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBjaGFuZ2Ug YWZ0ZXIgdGhpcyBwYXRjaC4gRm9yayBpcyBjYWxsZWQgaW4gYQo+Pj4+Pj4+PiB0aWdodCBsb29w IGluIGEgcHJvY2VzcyB3aXRoIDFHIG9mIHBvcHVsYXRlZCBtZW1vcnkgYW5kIHRoZSB0aW1lIGZv ciB0aGUKPj4+Pj4+Pj4gZnVuY3Rpb24gdG8gZXhlY3V0ZSBpcyBtZWFzdXJlZC4gMTAwIGl0ZXJh dGlvbnMgcGVyIHJ1biwgOCBydW5zCj4+Pj4+Pj4+IHBlcmZvcm1lZCBvbiBib3RoIEFwcGxlIE0y IChWTSkgYW5kIEFtcGVyZSBBbHRyYSAoYmFyZSBtZXRhbCkuIFRlc3RzCj4+Pj4+Pj4+IHBlcmZv cm1lZCBmb3IgY2FzZSB3aGVyZSAxRyBtZW1vcnkgaXMgY29tcHJpc2VkIG9mIG9yZGVyLTAgZm9s aW9zIGFuZAo+Pj4+Pj4+PiBjYXNlIHdoZXJlIGNvbXByaXNlZCBvZiBwdGUtbWFwcGVkIG9yZGVy LTkgZm9saW9zLiBOZWdhdGl2ZSBpcyBmYXN0ZXIsCj4+Pj4+Pj4+IHBvc2l0aXZlIGlzIHNsb3dl ciwgY29tcGFyZWQgdG8gYmFzZWxpbmUgdXBvbiB3aGljaCB0aGUgc2VyaWVzIGlzIGJhc2VkOgo+ Pj4+Pj4+Pgo+Pj4+Pj4+PiB8IEFwcGxlIE0yIFZNwqDCoCB8IG9yZGVyLTAgKHB0ZS1tYXApIHwg b3JkZXItOSAocHRlLW1hcCkgfAo+Pj4+Pj4+PiB8IGZvcmvCoMKgwqDCoMKgwqDCoMKgwqAgfC0t LS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLXwKPj4+Pj4+Pj4gfCBtaWNyb2Jl bmNowqDCoMKgIHzCoMKgwqAgbWVhbiB8wqDCoCBzdGRldiB8wqDCoMKgIG1lYW4gfMKgwqAgc3Rk ZXYgfAo+Pj4+Pj4+PiB8LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0t LS0tfC0tLS0tLS0tLXwKPj4+Pj4+Pj4gfCBiYXNlbGluZcKgwqDCoMKgwqAgfMKgwqDCoCAwLjAl IHzCoMKgwqAgMS4xJSB8wqDCoMKgIDAuMCUgfMKgwqDCoCAxLjIlIHwKPj4+Pj4+Pj4gfCBhZnRl ci1jaGFuZ2XCoCB8wqDCoCAtMS4wJSB8wqDCoMKgIDIuMCUgfMKgwqAgLTAuMSUgfMKgwqDCoCAx LjElIHwKPj4+Pj4+Pj4KPj4+Pj4+Pj4gfCBBbXBlcmUgQWx0cmHCoCB8IG9yZGVyLTAgKHB0ZS1t YXApIHwgb3JkZXItOSAocHRlLW1hcCkgfAo+Pj4+Pj4+PiB8IGZvcmvCoMKgwqDCoMKgwqDCoMKg wqAgfC0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLXwKPj4+Pj4+Pj4gfCBt aWNyb2JlbmNowqDCoMKgIHzCoMKgwqAgbWVhbiB8wqDCoCBzdGRldiB8wqDCoMKgIG1lYW4gfMKg wqAgc3RkZXYgfAo+Pj4+Pj4+PiB8LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS18 LS0tLS0tLS0tfC0tLS0tLS0tLXwKPj4+Pj4+Pj4gfCBiYXNlbGluZcKgwqDCoMKgwqAgfMKgwqDC oCAwLjAlIHzCoMKgwqAgMS4wJSB8wqDCoMKgIDAuMCUgfMKgwqDCoCAwLjElIHwKPj4+Pj4+Pj4g fCBhZnRlci1jaGFuZ2XCoCB8wqDCoCAtMC4xJSB8wqDCoMKgIDEuMiUgfMKgwqAgLTAuMSUgfMKg wqDCoCAwLjElIHwKPj4+Pj4+Pj4KPj4+Pj4+Pj4gVGVzdGVkLWJ5OiBKb2huIEh1YmJhcmQgPGpo dWJiYXJkQG52aWRpYS5jb20+Cj4+Pj4+Pj4+IFJldmlld2VkLWJ5OiBBbGlzdGFpciBQb3BwbGUg PGFwb3BwbGVAbnZpZGlhLmNvbT4KPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogUnlhbiBSb2JlcnRz IDxyeWFuLnJvYmVydHNAYXJtLmNvbT4KPj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+ICDCoMKgwqAgaW5j bHVkZS9saW51eC9wZ3RhYmxlLmggfCA4MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+Pj4+Pj4+PiAgwqDCoMKgIG1tL21lbW9yeS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Pj4g IMKgwqDCoCAyIGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMo LSkKPj4+Pj4+Pj4KPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGd0YWJsZS5o IGIvaW5jbHVkZS9saW51eC9wZ3RhYmxlLmgKPj4+Pj4+Pj4gaW5kZXggYWY3NjM5YzNiMGEzLi5k YjkzZmI4MTQ2NWEgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL2luY2x1ZGUvbGludXgvcGd0YWJsZS5o Cj4+Pj4+Pj4+ICsrKyBiL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oCj4+Pj4+Pj4+IEBAIC0yMDUs NiArMjA1LDI3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBtZF95b3VuZyhwbWRfdCBwbWQpCj4+Pj4+ Pj4+ICDCoMKgwqAgI2RlZmluZSBhcmNoX2ZsdXNoX2xhenlfbW11X21vZGUoKcKgwqDCoCBkbyB7 fSB3aGlsZSAoMCkKPj4+Pj4+Pj4gIMKgwqDCoCAjZW5kaWYKPj4+Pj4+Pj4gIMKgwqDCoCArI2lm bmRlZiBwdGVfYmF0Y2hfcmVtYWluaW5nCj4+Pj4+Pj4+ICsvKioKPj4+Pj4+Pj4gKyAqIHB0ZV9i YXRjaF9yZW1haW5pbmcgLSBOdW1iZXIgb2YgcGFnZXMgZnJvbSBhZGRyIHRvIG5leHQgYmF0Y2gg Ym91bmRhcnkuCj4+Pj4+Pj4+ICsgKiBAcHRlOiBQYWdlIHRhYmxlIGVudHJ5IGZvciB0aGUgZmly c3QgcGFnZS4KPj4+Pj4+Pj4gKyAqIEBhZGRyOiBBZGRyZXNzIG9mIHRoZSBmaXJzdCBwYWdlLgo+ Pj4+Pj4+PiArICogQGVuZDogQmF0Y2ggY2VpbGluZyAoZS5nLiBlbmQgb2Ygdm1hKS4KPj4+Pj4+ Pj4gKyAqCj4+Pj4+Pj4+ICsgKiBTb21lIGFyY2hpdGVjdHVyZXMgKGFybTY0KSBjYW4gZWZmaWNp ZW50bHkgbW9kaWZ5IGEgY29udGlndW91cyBiYXRjaCBvZgo+Pj4+Pj4+PiBwdGVzLgo+Pj4+Pj4+ PiArICogSW4gc3VjaCBjYXNlcywgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZW1haW5pbmcg bnVtYmVyIG9mIHBhZ2VzIHRvCj4+Pj4+Pj4+IHRoZSBlbmQKPj4+Pj4+Pj4gKyAqIG9mIHRoZSBj dXJyZW50IGJhdGNoLCBhcyBkZWZpbmVkIGJ5IGFkZHIuIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVu Cj4+Pj4+Pj4+IGl0ZXJhdGluZwo+Pj4+Pj4+PiArICogb3ZlciBwdGVzLgo+Pj4+Pj4+PiArICoK Pj4+Pj4+Pj4gKyAqIE1heSBiZSBvdmVycmlkZGVuIGJ5IHRoZSBhcmNoaXRlY3R1cmUsIGVsc2Ug YmF0Y2ggc2l6ZSBpcyBhbHdheXMgMS4KPj4+Pj4+Pj4gKyAqLwo+Pj4+Pj4+PiArc3RhdGljIGlu bGluZSB1bnNpZ25lZCBpbnQgcHRlX2JhdGNoX3JlbWFpbmluZyhwdGVfdCBwdGUsIHVuc2lnbmVk IGxvbmcKPj4+Pj4+Pj4gYWRkciwKPj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBlbmQpCj4+Pj4+Pj4+ICt7Cj4+Pj4+ Pj4+ICvCoMKgwqAgcmV0dXJuIDE7Cj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+ICsjZW5kaWYKPj4+Pj4+ Pgo+Pj4+Pj4+IEl0J3MgYSBzaGFtZSB3ZSBub3cgbG9zZSB0aGUgb3B0aW1pemF0aW9uIGZvciBh bGwgb3RoZXIgYXJjaHRpZWN0dXJlcy4KPj4+Pj4+Pgo+Pj4+Pj4+IFdhcyB0aGVyZSBubyB3YXkg dG8gaGF2ZSBzb21lIGJhc2ljIGJhdGNoaW5nIG1lY2hhbmlzbSB0aGF0IGRvZXNuJ3QgcmVxdWly ZQo+Pj4+Pj4+IGFyY2gKPj4+Pj4+PiBzcGVjaWZpY3M/Cj4+Pj4+Pgo+Pj4+Pj4gSSB0cmllZCBh IGJ1bmNoIG9mIHRoaW5ncyBidXQgdWx0aW1hdGVseSB0aGUgd2F5IEkndmUgZG9uZSBpdCB3YXMg dGhlIG9ubHkgd2F5Cj4+Pj4+PiB0byByZWR1Y2UgdGhlIG9yZGVyLTAgZm9yayByZWdyZXNzaW9u IHRvIDAuCj4+Pj4+Pgo+Pj4+Pj4gTXkgb3JpZ2luYWwgdjMgcG9zdGluZyB3YXMgY29zdGluZyA1 JSBleHRyYSBhbmQgZXZlbiBteSBmaXJzdCBhdHRlbXB0IGF0IGFuCj4+Pj4+PiBhcmNoLXNwZWNp ZmljIHZlcnNpb24gdGhhdCBkaWRuJ3QgcmVzb2x2ZSB0byBhIGNvbXBpbGUtdGltZSBjb25zdGFu dCAxIHN0aWxsCj4+Pj4+PiBjb3N0IGFuIGV4dHJhIDMlLgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4K Pj4+Pj4+PiBJJ2QgaGF2ZSB0aG91Z2h0IHRoYXQgc29tZXRoaW5nIHZlcnkgYmFzaWMgd291bGQg aGF2ZSB3b3JrZWQgbGlrZToKPj4+Pj4+Pgo+Pj4+Pj4+ICogQ2hlY2sgaWYgUFRFIGlzIHRoZSBz YW1lIHdoZW4gc2V0dGluZyB0aGUgUEZOIHRvIDAuCj4+Pj4+Pj4gKiBDaGVjayB0aGF0IFBGTiBp cyBjb25zZWN1dGl2ZQo+Pj4+Pj4+ICogQ2hlY2sgdGhhdCBhbGwgUEZOcyBiZWxvbmcgdG8gdGhl IHNhbWUgZm9saW8KPj4+Pj4+Cj4+Pj4+PiBJIGhhdmVuJ3QgdHJpZWQgdGhpcyBleGFjdCBhcHBy b2FjaCwgYnV0IEknZCBiZSBzdXJwcmlzZWQgaWYgSSBjYW4gZ2V0IHRoZQo+Pj4+Pj4gcmVncmVz c2lvbiB1bmRlciA0JSB3aXRoIHRoaXMuIEZ1cnRoZXIgYWxvbmcgdGhlIHNlcmllcyBJIHNwZW50 IGEgbG90IG9mIHRpbWUKPj4+Pj4+IGhhdmluZyB0byBmaWRkbGUgd2l0aCB0aGUgYXJtNjQgaW1w bGVtZW50YXRpb247IGV2ZXJ5IGNvbmRpdGlvbmFsIGFuZCBldmVyeQo+Pj4+Pj4gbWVtb3J5IHJl YWQgKGV2ZW4gd2hlbiBpbiBjYWNoZSkgd2FzIGEgcHJvYmxlbS4gVGhlcmUgaXMganVzdCBzbyBs aXR0bGUgaW4gdGhlCj4+Pj4+PiBpbm5lciBsb29wIHRoYXQgZXZlcnkgaW5zdHJ1Y3Rpb24gbWF0 dGVycy4gKEF0IGxlYXN0IG9uIEFtcGVyZSBBbHRyYSBhbmQgQXBwbGUKPj4+Pj4+IE0yKS4KPj4+ Pj4+Cj4+Pj4+PiBPZiBjb3Vyc2UgaWYgeW91J3JlIHdpbGxpbmcgdG8gcGF5IHRoYXQgNC01JSBm b3Igb3JkZXItMCB0aGVuIHRoZSBiZW5lZml0IHRvCj4+Pj4+PiBvcmRlci05IGlzIGFyb3VuZCAx MCUgaW4gbXkgbWVhc3VyZW1lbnRzLiBQZXJzb25hbGx5IHRob3VnaCwgSSdkIHByZWZlciB0byBw bGF5Cj4+Pj4+PiBzYWZlIGFuZCBlbnN1cmUgdGhlIGNvbW1vbiBvcmRlci0wIGNhc2UgZG9lc24n dCByZWdyZXNzLCBhcyB5b3UgcHJldmlvdXNseQo+Pj4+Pj4gc3VnZ2VzdGVkLgo+Pj4+Pj4KPj4+ Pj4KPj4+Pj4gSSBqdXN0IGhhY2tlZCBzb21ldGhpbmcgdXAsIG9uIHRvcCBvZiBteSBiZWxvdmVk IHJtYXAgY2xlYW51cC9iYXRjaGluZyBzZXJpZXMuIEkKPj4+Pj4gaW1wbGVtZW50ZWQgdmVyeSBn ZW5lcmljIGFuZCBzaW1wbGUgYmF0Y2hpbmcgZm9yIGxhcmdlIGZvbGlvcyAoYWxsIFBURSBiaXRz Cj4+Pj4+IGV4Y2VwdCB0aGUgUEZOIGhhdmUgdG8gbWF0Y2gpLgo+Pj4+Pgo+Pj4+PiBTb21lIHZl cnkgcXVpY2sgdGVzdGluZyAoZG9uJ3QgdHJ1c3QgZWFjaCBsYXN0ICUgKSBvbiBJbnRlbChSKSBY ZW9uKFIpIFNpbHZlcgo+Pj4+PiA0MjEwUiBDUFUuCj4+Pj4+Cj4+Pj4+IG9yZGVyLTA6IDAuMDE0 MjEwIC0+IDAuMDEzOTY5Cj4+Pj4+Cj4+Pj4+IC0+IEFyb3VuZCAxLjcgJSBmYXN0ZXIKPj4+Pj4K Pj4+Pj4gb3JkZXItOTogMC4wMTQzNzMgLT4gMC4wMDkxNDkKPj4+Pj4KPj4+Pj4gLT4gQXJvdW5k IDM2LjMgJSBmYXN0ZXIKPj4+Pgo+Pj4+IFdlbGwgSSBndWVzcyB0aGF0IHNob3dzIG1lIDopCj4+ Pj4KPj4+PiBJJ2xsIGRvIGEgcmV2aWV3IGFuZCBydW4gdGhlIHRlc3RzIG9uIG15IEhXIHRvIHNl ZSBpZiBpdCBjb25jdXJzLgo+Pj4KPj4+Cj4+PiBJIHB1c2hlZCBhIHNpbXBsZSBjb21waWxlIGZp eHVwICh3ZSBuZWVkIHB0ZV9uZXh0X3BmbigpKS4KPj4KPj4gSSd2ZSBqdXN0IGJlZW4gdHJ5aW5n IHRvIGNvbXBpbGUgYW5kIG5vdGljZWQgdGhpcy4gV2lsbCB0YWtlIGEgbG9vayBhdCB5b3VyIHVw ZGF0ZS4KPiAKPiBUb29rIGEgbG9vazsgdGhlcmUgd2lsbCBzdGlsbCBiZSBhcmNoIHdvcmsgbmVl ZGVkOyBhcm02NCBkb2Vzbid0IGRlZmluZQo+IFBGTl9QVEVfU0hJRlQgYmVjYXVzZSBpdCBkZWZp bmVzIHNldF9wdGVzKCkuIEknbSBub3Qgc3VyZSBpZiB0aGVyZSBhcmUgb3RoZXIKPiBhcmNoZXMg dGhhdCBhbHNvIGRvbid0IGRlZmluZSBQRk5fUFRFX1NISUZUIChvciBwdGVfbmV4dF9wZm4oKSkg aWYgdGhlIG1hdGggaXMKPiBtb3JlIGNvbXBsZXgpIC0gaXQgd2lsbCBuZWVkIGFuIGF1ZGl0Lgo+ IAoKUmlnaHQsIGxpa2VseSBtYW55IHRoYXQgaGF2ZSB0aGVpciBvd24gc2V0X3B0ZXMoKSBpbXBs ZW1lbnRhdGlvbiByaWdodCBub3cuCgotLSAKQ2hlZXJzLAoKRGF2aWQgLyBkaGlsZGVuYgoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK