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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5DEA2C4828F for ; Wed, 7 Feb 2024 14:45:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E22DF6B0074; Wed, 7 Feb 2024 09:45:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DD2D86B0075; Wed, 7 Feb 2024 09:45:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C742A6B0081; Wed, 7 Feb 2024 09:45:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id B1FBE6B0074 for ; Wed, 7 Feb 2024 09:45:56 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4D47A160E15 for ; Wed, 7 Feb 2024 14:45:56 +0000 (UTC) X-FDA: 81765282312.22.0718768 Received: from smtp-fw-2101.amazon.com (smtp-fw-2101.amazon.com [72.21.196.25]) by imf27.hostedemail.com (Postfix) with ESMTP id A288A40014 for ; Wed, 7 Feb 2024 14:45:53 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=pxKXSM5g; spf=pass (imf27.hostedemail.com: domain of "prvs=760a53031=jgowans@amazon.com" designates 72.21.196.25 as permitted sender) smtp.mailfrom="prvs=760a53031=jgowans@amazon.com"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707317153; h=from:from:sender: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:dkim-signature; bh=xnrWyx53VIUJEPzp2lM1BBf+Vnl0G17hwj5j4DVqdZc=; b=qowwj8lXG7T+1uc7Tb85IKt0kCP60SeCG5AwMM7rJ2cobsuXqmKNNpa8VNGvxW5alix0/5 d0KLK0oN89ZTRzsjBMjpzh8Do9ur0+4SNAcAULJgWmRXqRQowmigtlMGnpFw+SL4pCCT7K vdxgpOFNrFyVda0+trz0yOqdS+fejU4= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=pxKXSM5g; spf=pass (imf27.hostedemail.com: domain of "prvs=760a53031=jgowans@amazon.com" designates 72.21.196.25 as permitted sender) smtp.mailfrom="prvs=760a53031=jgowans@amazon.com"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707317153; a=rsa-sha256; cv=none; b=RqVGgNaHS1sQZl0pCPLBmF2r3ZOl6wJ1A+dgLGF68efniZ9Ctez92MVCMsPE616cZ4KCDp 7HeYr43SY8LwqQUnVmAv4kND1WrofOb7JTQWWia2vDdDEgS5SQF0P4774sTIzjRGYKgrSO a1FQrJ1h2Qm6d0Lhs9r23XVkhdi+n/I= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1707317153; x=1738853153; h=from:to:cc:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version:subject; bh=xnrWyx53VIUJEPzp2lM1BBf+Vnl0G17hwj5j4DVqdZc=; b=pxKXSM5gZAdcuZ935myFf5aeUlCUOJFZeCooGbSPjqbspe6vwHSBKLXb QSslc0f6FT/LeAKpieIsbIKHULuQ39G1xdy+saSSCOBz240Yywqp5SIfT 0CZdqeAp4fCdR9b2G7dLCWHkIzVAqo47cKa+bjSmhgMi0L6jjOGyo9RMT I=; X-IronPort-AV: E=Sophos;i="6.05,251,1701129600"; d="scan'208";a="379570168" Subject: Re: [RFC 00/18] Pkernfs: Support persistence for live update Thread-Topic: [RFC 00/18] Pkernfs: Support persistence for live update Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev) ([10.43.8.6]) by smtp-border-fw-2101.iad2.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Feb 2024 14:45:50 +0000 Received: from EX19MTAEUB001.ant.amazon.com [10.0.10.100:39014] by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.5.146:2525] with esmtp (Farcaster) id a3b64052-5a7a-41d6-a2eb-422b30db9435; Wed, 7 Feb 2024 14:45:49 +0000 (UTC) X-Farcaster-Flow-ID: a3b64052-5a7a-41d6-a2eb-422b30db9435 Received: from EX19D012EUC004.ant.amazon.com (10.252.51.220) by EX19MTAEUB001.ant.amazon.com (10.252.51.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Wed, 7 Feb 2024 14:45:43 +0000 Received: from EX19D014EUC004.ant.amazon.com (10.252.51.182) by EX19D012EUC004.ant.amazon.com (10.252.51.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Wed, 7 Feb 2024 14:45:42 +0000 Received: from EX19D014EUC004.ant.amazon.com ([fe80::76dd:4020:4ff2:1e41]) by EX19D014EUC004.ant.amazon.com ([fe80::76dd:4020:4ff2:1e41%3]) with mapi id 15.02.1118.040; Wed, 7 Feb 2024 14:45:42 +0000 From: "Gowans, James" To: "jgg@ziepe.ca" CC: "kexec@lists.infradead.org" , "kvm@vger.kernel.org" , "brauner@kernel.org" , "Graf (AWS), Alexander" , "iommu@lists.linux.dev" , "madvenka@linux.microsoft.com" , "anthony.yznaga@oracle.com" , "skinsburskii@linux.microsoft.com" , "steven.sistare@oracle.com" , "akpm@linux-foundation.org" , "linux-kernel@vger.kernel.org" , "seanjc@google.com" , "Woodhouse, David" , "pbonzini@redhat.com" , "linux-mm@kvack.org" , "joro@8bytes.org" , "ebiederm@xmission.com" , =?utf-8?B?U2Now7ZuaGVyciwgSmFuIEgu?= , "will@kernel.org" , "linux-fsdevel@vger.kernel.org" , "usama.arif@bytedance.com" Thread-Index: AQHaWFq1iDfmUo9FfU6oG+xq/LSkjrD+9+4A Date: Wed, 7 Feb 2024 14:45:42 +0000 Message-ID: <8e4cc7fd4c7cb14a8942e15a676e5b95e6f44b43.camel@amazon.com> References: <20240205120203.60312-1-jgowans@amazon.com> <20240205174238.GC31743@ziepe.ca> In-Reply-To: <20240205174238.GC31743@ziepe.ca> Accept-Language: en-ZA, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.95.74.199] Content-Type: text/plain; charset="utf-8" Content-ID: <3A237CC033D44A4F89212FB75F123760@amazon.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspamd-Queue-Id: A288A40014 X-Rspam-User: X-Stat-Signature: 9jfysz48tg1aqaq5yptk1mja8s7t83zj X-Rspamd-Server: rspam01 X-HE-Tag: 1707317153-16518 X-HE-Meta: U2FsdGVkX1+Q/s/VcYhuqzFY7CVscnptasDZMzvTimGc/wIpEQvPlpHsB+ArSVcCPH4bbPSi6pG7mUUJ2oAot1V8UY5IARKGS+HsDT06FonKzgd6meKphEN52K6QbMcHpa7vkSe0gWxkAVFdxdKCx9o4ycdFat/knuoZ7Oylzxn7SgkMX9yNP38Uzirp9San+ZhuBGvfdZO7Oqxo5qGJNV+mPXqVM5NznOSinnAXR7bz1t/RTwnCF57TjFvuNezpsdCBn0+8UjT5BhzNuW4VAI+coCtnFV4kR10YKSt1269hthf6JT7yDbp7rT31b3eGr1Uou5LjPlni8lfTUh4Ll2WzFk8Ydh31hWw/byA04GYOVQWhMME0r4Ig/LZ7EaXv/EVVYEBTShxOoObIvm6FIbmxNeRiDgQ23rFz0aaH75UmyWF8XXq4l4CUWDqjCM4WFVFB0uHmCn1D+xY0mrlnPhh29gzyrGkou06RSloG8gTcoiP7WPF7Lq046ziwUO5SIvbej/mlpy8QIn3nj+hQgWLPi63YuZgbX6PR1Tgj0NBZZVr5jTZ7x4xNGhsQUfXSiG9nCHLkU7gXH9MgfsLRcmw6PBFr1DsXVToCLjeQzXSXruArU5SqCAGaCmnj5uSis1e9JSCbmGWaCBrL+XbbnH1zM/zUBKt4nsHinGRZlwujZTimkgBr+34Kk3HWtyD21pdfAT4hAVXzBZHJ2/Y7juKVxBiOIt0IBVBt0p1KtEzY6igwTjMBEosyUnO0yD1R/1ZjmeirFjwCp/wKiQnAO9cmelErmlpTUr8FQTSHzsx0oLI1il8gFKBvTh23/WhKwi/2UvMuX5nGkX+kaRX/2VQp0yR1yG6FLNj4mLp0XygU33YImsCrQi2/rIpYIs6PxL12bCqtkhBlvC/dZZ1ksM8odRn/WpIg/HEqUr7SdWOYPHrXpRpf44PuSabmvNrdgfHUEWi5l1+AqzDnaYd oZxvV11N RgqulT6l+OgdDjSEJjqchcuX5R5KJ3PX1Ixfzn7+dtyx06YeCIVnIlICWXb7LwTfBX/33hiMJx/rn2FHZUtetQn4LMgLUl797+bE6mSJV3aYXGboFqNf9JZxlsfyXCBP1Foo0POJX2lUOVBoAnJgXdxyJVCutsBXU5FLsRM7NzFcgvR/w1szctmNh63EYmSlmtllRgLVqo9NSXFURbBeUDoNTkBc5oqtrxpcMps7SjIkSP0nP0/OfwJrGc4aSWUBKAw/pYd/eRmzLd5rXCQDLJVQyH4QoRWm3Yq/5Axn8kKv//oCKE9eEeF1EYnsVQ27pMwfiA3qXy0LibRp001uEnFAishgc8kuzbXM2GNkL8pAEGijKr1PRW+a0uI97UQTkS0kyojsV1XrwK7WKevW0lHcpVuanecn4ZuTi1UMkAfoP3GQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: SGkgSmFzb24sDQoNClRoYW5rcyBmb3IgdGhpcyBncmVhdCBmZWVkYmFjayBvbiB0aGUgYXBwcm9h Y2ggLSBpdCdzIGV4YWN0bHkgdGhlIHNvcnQNCm9mIHRoaW5nIHdlIHdlcmUgbG9va2luZyBmb3Iu DQoNCk9uIE1vbiwgMjAyNC0wMi0wNSBhdCAxMzo0MiAtMDQwMCwgSmFzb24gR3VudGhvcnBlIHdy b3RlOg0KPiANCj4gT24gTW9uLCBGZWIgMDUsIDIwMjQgYXQgMTI6MDE6NDVQTSArMDAwMCwgSmFt ZXMgR293YW5zIHdyb3RlOg0KPiANCj4gPiBUaGUgbWFpbiBhc3BlY3Qgd2XigJlyZSBsb29raW5n IGZvciBmZWVkYmFjay9vcGluaW9ucyBvbiBoZXJlIGlzIHRoZSBjb25jZXB0IG9mDQo+ID4gcHV0 dGluZyBhbGwgcGVyc2lzdGVudCBzdGF0ZSBpbiBhIHNpbmdsZSBmaWxlc3lzdGVtOiBjb21iaW5p bmcgZ3Vlc3QgUkFNIGFuZA0KPiA+IElPTU1VIHBndGFibGVzIGluIG9uZSBzdG9yZS4gQWxzbywg dGhlIHF1ZXN0aW9uIG9mIGEgaGFyZCBzZXBhcmF0aW9uIGJldHdlZW4NCj4gPiBwZXJzaXN0ZW50 IG1lbW9yeSBhbmQgZXBoZW1lcmFsIG1lbW9yeSwgY29tcGFyZWQgdG8gYWxsb3dpbmcgYXJiaXRy YXJ5IHBhZ2VzIHRvDQo+ID4gYmUgcGVyc2lzdGVkLiBQa2VybmZzIGRvZXMgaXQgdmlhIGEgaGFy ZCBzZXBhcmF0aW9uIGRlZmluZWQgYXQgYm9vdCB0aW1lLCBvdGhlcg0KPiA+IGFwcHJvYWNoZXMg Y291bGQgbWFrZSB0aGUgY2FydmluZyBvdXQgb2YgcGVyc2lzdGVudCBwYWdlcyBkeW5hbWljLg0K PiANCj4gSSB0aGluayBpZiB5b3UgYXJlIGdvaW5nIHRvIGF0dGVtcHQgc29tZXRoaW5nIGxpa2Ug dGhpcyB0aGVuIHRoZSBlbmQNCj4gcmVzdWx0IG11c3QgYnJpbmcgdGhpbmdzIGJhY2sgdG8gaGF2 aW5nIHRoZSBzYW1lIGRhdGEgc3RydWN0dXJlcyBmdWxseQ0KPiByZXN0b3JlZC4NCj4gDQo+IEl0 IGlzIGZpbmUgdGhhdCB0aGUgcGtlcm5mcyBob2xkcyBzb21lIHBlcnNpc3RhbnQgbWVtb3J5IHRo YXQNCj4gZ3VhcmVudGVlcyB0aGUgSU9NTVUgY2FuIHJlbWFpbiBwcm9ncmFtbWVkIGFuZCB0aGUg Vk0gcGFnZXMgY2FuIGJlY29tZQ0KPiBmaXhlZCBhY3Jvc3MgdGhlIGtleGVjDQo+IA0KPiBCdXQg b25jZSB0aGUgVk1NIHN0YXJ0cyB0byByZXN0b3JlIGl0IHNlbGYgd2UgbmVlZCB0byBnZXQgYmFj ayB0byB0aGUNCj4gb3JpZ2luYWwgY29uZmlndXJhdGlvbjoNCj4gIC0gQSBtbWFwIHRoYXQgcG9p bnRzIHRvIHRoZSBWTSdzIHBoeXNpY2FsIHBhZ2VzDQo+ICAtIEFuIGlvbW11ZmQgSU9BUyB0aGF0 IHBvaW50cyB0byB0aGUgYWJvdmUgbW1hcA0KPiAgLSBBbiBpb21tdWZkIEhXUFQgdGhhdCByZXBy ZXNlbnRzIHRoYXQgc2FtZSBtYXBwaW5nDQo+ICAtIEFuIGlvbW11X2RvbWFpbiBwcm9ncmFtbWVk IGludG8gSFcgdGhhdCB0aGUgSFdQVA0KDQooQSBxdWljayBub3RlIG9uIGlvbW11ZmQgdnMgVkZJ TzogSSdsbCBzdGlsbCBrZWVwIHJlZmVycmluZyB0byBWRklPIGZvcg0Kbm93IGJlY2F1c2UgdGhh dCdzIHdoYXQgSSBrbm93LCBidXQgd2lsbCBleHBsb3JlIGlvbW11ZmQgbW9yZSBhbmQgcmVwbHkN CmluIG1vcmUgZGV0YWlsIGFib3V0IGlvbW11ZmQgaW4gdGhlIG90aGVyIGVtYWlsIHRocmVhZC4p DQoNCkhvdyBtdWNoIG9mIHRoaXMgZG8geW91IHRoaW5rIHNob3VsZCBiZSBkb25lIGF1dG9tYXRp Y2FsbHksIHZzIGhvdyBtdWNoDQpzaG91bGQgdXNlcnNwYWNlIG5lZWQgdG8gZHJpdmU/IFdpdGgg dGhpcyBSRkMgdXNlcnNwYWNlIGJhc2ljYWxseSByZS0NCmRyaXZlcyBldmVyeXRoaW5nLCBpbmNs dWRpbmcgcmUtaW5qZWN0aW5nIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlDQpwZXJzaXN0ZW50IHBh Z2UgdGFibGVzIGludG8gdGhlIElPTU1VIGRvbWFpbiB2aWEgVkZJTy4NCg0KUGFydCBvZiB0aGUg cmVhc29uIGlzIHNpbXBsaWNpdHksIHRvIGF2b2lkIGhhdmluZyBhdXRvLWRlc2VyaWFsaXNlIGNv ZGUNCnBhdGhzIGluIHRoZSBkcml2ZXJzIGFuZCBtb2R1bGVzLiBBbm90aGVyIHBhcnQgb2YgdGhl IHJlYXNvbiBzbyB0aGF0DQp1c2Vyc3BhY2UgY2FuIGdldCBGRCBoYW5kbGVzIG9uIHRoZSByZXNv dXJjZXMuIFR5cGljYWxseSBGRHMgYXJlDQpyZXR1cm5lZCBieSBkb2luZyBhY3Rpb25zIGxpa2Ug Y3JlYXRpbmcgVkZJTyBjb250YWluZXJzLiBJZiB3ZSBtYWtlIGFsbA0KdGhhdCBhdXRvbWF0aWMg dGhlbiB0aGVyZSBuZWVkcyB0byBiZSBzb21lIG90aGVyIG1lY2hhbmlzbSBmb3IgYXV0by0NCnJl c3RvcmVkIHJlc291cmNlcyB0byBwcmVzZW50IHRoZW1zZWx2ZXMgdG8gdXNlcnNwYWNlIHNvIHRo YXQgdXNlcnNwYWNlDQpjYW4gZGlzY292ZXIgYW5kIHBpY2sgdGhlbSB1cCBhZ2Fpbi4NCg0KT25l IHBvc3NpYmxlIHdheSB0byBkbyB0aGlzIHdvdWxkIGJlIHRvIHBvcHVsYXRlIGEgYnVuY2ggb2Yg ZmlsZXMgaW4NCnByb2NmcyBmb3IgZWFjaCBwZXJzaXN0ZWQgSU9NTVUgZG9tYWluIHRoYXQgYWxs b3dzIHVzZXJzcGFjZSB0byBkaXNjb3Zlcg0KYW5kIHBpY2sgaXQgdXAuDQoNCkNhbiB5b3UgZXhw YW5kIG9uIHdoYXQgeW91IG1lYW4gYnkgIkEgbW1hcCB0aGF0IHBvaW50cyB0byB0aGUgVk0ncw0K cGh5c2ljYWwgcGFnZXM/IiBBcmUgeW91IHN1Z2dlc3RpbmcgdGhhdCB0aGUgUUVNVSBwcm9jZXNz IGF1dG9tYXRpY2FsbHkNCmdldHMgc29tZXRoaW5nIGFwcGVhcmluZyBpbiBpdCdzIGFkZHJlc3Mg c3BhY2U/IFBhcnQgb2YgdGhlIGxpdmUgdXBkYXRlDQpwcm9jZXNzIGludm9sdmVzIHBvdGVudGlh bGx5IGNoYW5naW5nIHRoZSB1c2Vyc3BhY2UgYmluYXJpZXM6IGRvaW5nDQprZXhlYyBhbmQgYm9v dGluZyBhIG5ldyBzeXN0ZW0gaXMgYW4gb3Bwb3J0dW5pdHkgdG8gYm9vdCBuZXcgdmVyc2lvbnMg b2YNCnRoZSB1c2Vyc3BhY2UgYmluYXJ5LiBTbyB3ZSBzaG91bGRuJ3QgdHJ5IHRvIHByZXNlcnZl IHRvbyBtdWNoIG9mDQp1c2Vyc3BhY2Ugc3RhdGU7IGl0J3MgYmV0dGVyIHRvIGxldCBpdCByZS1j cmVhdGUgaW50ZXJuYWwgZGF0YQ0Kc3RydWN0dXJlcyBkbyBmcmVzaCBtbWFwcy4NCg0KV2hhdCBJ J20gcmVhbGx5IGFza2luZyBpczogZG8geW91IGhhdmUgYSBzcGVjaWZpYyBzdWdnZXN0aW9uIGFi b3V0IGhvdw0KdGhlc2UgcGVyc2lzdGVudCByZXNvdXJjZXMgc2hvdWxkIHByZXNlbnQgdGhlbXNl bHZlcyB0byB1c2Vyc3BhY2UgYW5kDQpob3cgdXNlcnNwYWNlIGNhbiBkaXNjb3ZlciB0aGVtIGFu ZCBwaWNrIHRoZW0gdXA/DQoNCj4gDQo+IEllIHlvdSBjYW4ndCBqdXN0IHJlYm9vdCBhbmQgbGVh dmUgdGhlIElPTU1VIGhhbmdpbmcgb3V0IGluIHNvbWUNCj4gdW5kZWZpbmVkIGxhbmQgLSBlc3Bl Y2lhbGx5IGluIGxhdGVzdCBrZXJuZWxzIQ0KDQpOb3QgdG9vIHN1cmUgd2hhdCB5b3UgbWVhbiBi eSAidW5kZWZpbmVkIGxhbmQiIC0gdGhlIGlkZWEgaXMgdGhhdCB0aGUNCklPTU1VIGtlZXBzIGRv aW5nIHdoYXQgaXQgd2FzIGdvaW5nIHVudGlsIHVzZXJzcGFjZSBjb21lcyBhbG9uZyByZS0NCmNy ZWF0ZXMgdGhlIGhhbmRsZXMgdG8gdGhlIElPTU1VIGF0IHdoaWNoIHBvaW50IGl0IGNhbiBkbyBt b2RpZmljYXRpb25zDQpsaWtlIGNoYW5nZSBtYXBwaW5ncyBvciB0ZWFyIHRoZSBkb21haW4gZG93 bi4gVGhpcyBpcyB3aGF0IGRlZmVycmVkDQphdHRhY2hlZCBnaXZlcyB1cywgSSBiZWxpZXZlLCBh bmQgd2h5IEkgaGFkIHRvIGNoYW5nZSBpdCB0byBiZSBlbmFibGVkLg0KSnVzdCBsZWF2ZSB0aGUg SU9NTVUgZG9tYWluIGFsb25lIHVudGlsIHVzZXJzcGFjZSByZS1jcmVhdGVzIGl0IHdpdGggdGhl DQpvcmlnaW5hbCB0YWJsZXMuDQpQZXJoYXBzIEknbSBtaXNzaW5nIHlvdXIgcG9pbnQuIDotKQ0K DQo+IA0KPiBGb3IgdnQtZCB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGVudGlyZSByb290IHRhYmxl IGFuZCBhbGwgdGhlIHJlcXVpcmVkDQo+IGNvbnRleHQgZW50cmllcyB0b28sIFRoZSByZXN0YXJ0 aW5nIGlvbW11IG5lZWRzIHRvIHVuZGVyc3RhbmQgdGhhdCBpdA0KPiBoYXMgdG8gInJlc3RvcmUi IGEgdGVtcG9yYXJ5IGlvbW11X2RvbWFpbiBmcm9tIHRoZSBwa2VybmZzLg0KPiBZb3UgY2FuIGxh dGVyIHJlY29uc3RpdHV0ZSBhIHByb3BlciBpb21tdV9kb21haW4gZnJvbSB0aGUgVk1NIGFuZA0K PiBhdG9taWMgc3dpdGNoLg0KDQpXaHkgZG9lcyBpdCBuZWVkIHRvIGdvIHZpYSBhIHRlbXBvcmFy eSBkb21haW4/IFRoZSBjdXJyZW50IGFwcHJvYWNoIGlzDQpqdXN0IHRvIGxlYXZlIHRoZSBJT01N VSBkb21haW4gcnVubmluZyBhcy1pcyB2aWEgZGVmZXJyZWQgYXR0YWNoZWQsIGFuZA0KbGF0ZXIg d2hlbiB1c2Vyc3BhY2Ugc3RhcnRzIHVwIGl0IHdpbGwgY3JlYXRlIHRoZSBpb21tdV9kb21haW4g YmFja2VkIGJ5DQp0aGUgc2FtZSBwZXJzaXN0ZW50IHBhZ2UgdGFibGVzLg0KPiANCj4gU28sIEkn bSBzdXJwcmlzZWQgdG8gc2VlIHRoaXMgYXBwcm9hY2ggd2hlcmUgdGhpbmdzIGp1c3QgbGl2ZSBm b3JldmVyDQo+IGluIHRoZSBrZXJuZnMsIEkgZG9uJ3Qgc2VlIGhvdyAicmVzdG9yZSIgaXMgZ29p bmcgdG8gd29yayB2ZXJ5IHdlbGwNCj4gbGlrZSB0aGlzLg0KDQpDYW4geW91IGV4cGFuZCBvbiB3 aHkgdGhlIHN1Z2dlc3RlZCByZXN0b3JlIHBhdGggd2lsbCBiZSBwcm9ibGVtYXRpYz8gSW4NCnN1 bW1hcnkgdGhlIGlkZWEgaXMgdG8gcmUtY3JlYXRlIGFsbCBvZiB0aGUgImVwaGVtZXJhbCIgZGF0 YSBzdHJ1Y3R1cmVzDQpieSByZS1kb2luZyBpb2N0bHMgbGlrZSBNQVBfRE1BLCBidXQga2VlcGlu ZyB0aGUgcGVyc2lzdGVudCBJT01NVQ0Kcm9vdC9jb250ZXh0IHRhYmxlcyBwb2ludGVkIGF0IHRo ZSBvcmlnaW5hbCBwZXJzaXN0ZW50IHBhZ2UgdGFibGVzLiBUaGUNCmVwaGVtZXJhbCBkYXRhIHN0 cnVjdHVyZXMgYXJlIHJlLWNyZWF0ZWQgaW4gdXNlcnNwYWNlIGJ1dCB0aGUgcGVyc2lzdGVudA0K cGFnZSB0YWJsZXMgbGVmdCBhbG9uZS4gVGhpcyBpcyBvZiBjb3Vyc2UgZGVwZW5kZW50IG9uIHVz ZXJzcGFjZSByZS0NCmNyZWF0aW5nIHRoaW5ncyAqY29ycmVjdGx5KiAtIGl0IGNhbiBlYXNpbHkg ZG8gdGhlIHdyb25nIHRoaW5nLiBQZXJoYXBzDQp0aGlzIGlzIHRoZSBpc3N1ZT8gT3IgaXMgdGhl cmUgYSBwcm9ibGVtIGV2ZW4gaWYgdXNlcnNwYWNlIGlzIHNhbmUuDQoNCj4gSSB3b3VsZCB0aGlu ayB0aGF0IGEgc2F2ZS9yZXN0b3JlIG1lbnRhbGl0aXR5IHdvdWxkIG1ha2UgbW9yZQ0KPiBzZW5z ZS4gRm9yIGluc3RhbmNlIHlvdSBjb3VsZCBtYWtlIGEgc3BlY2lhbCBpb21tdV9kb21haW4gdGhh dCBpcyBmaXhlZA0KPiBhbmQgbGl2ZXMgaW4gdGhlIHBrZXJuZnMuIFRoZSBvcGVyYXRpb24gd291 bGQgYmUgdG8gY29weSBmcm9tIHRoZSBsaXZlDQo+IGlvbW11X2RvbWFpbiB0byB0aGUgZml4ZWQg b25lIGFuZCB0aGVuIHJlcGxhY2UgdGhlIGlvbW11IEhXIHRvIHRoZQ0KPiBmaXhlZCBvbmUuDQo+ IA0KPiBJbiB0aGUgcG9zdC1rZXhlYyB3b3JsZCB0aGUgaW9tbXUgd291bGQgcmVjcmVhdGUgdGhh dCBzcGVjaWFsIGRvbWFpbg0KPiBhbmQgcG9pbnQgdGhlIGlvbW11IGF0IGl0LiAoY29weWluZyB0 aGUgcm9vdCBhbmQgY29udGV4dCBkZXNjcmlwdGlvbnMNCj4gb3V0IG9mIHRoZSBwa2VybmZzKS4g VGhlbiBzb21laG93IHRoYXQgd291bGQgZ2V0IGludG8gaW9tbXVmZCBhbmQgVkZJTw0KPiBzbyB0 aGF0IGl0IGNvdWxkIHRha2Ugb3ZlciB0aGF0IHNwZWNpYWwgbWFwcGluZyBkdXJpbmcgaXRzIHN0 YXJ0dXAuDQoNClRoZSBzYXZlIGFuZCByZXN0b3JlIG1vZGVsIGlzIHN1cGVyIGludGVyZXN0aW5n IC0gSSdtIGtlZW4gdG8gZGlzY3Vzcw0KdGhpcyBhcyBhbiBhbHRlcm5hdGl2ZS4gWW91J3JlIHN1 Z2dlc3RpbmcgdGhhdCBJT01NVSBkcml2ZXIgaGF2ZSBhDQpzZXJpYWxpc2UgcGhhc2UganVzdCBi ZWZvcmUga2V4ZWMgd2hlcmUgaXQgZHVtcHMgZXZlcnl0aGluZyBpbnRvDQpwZXJzaXN0ZW50IG1l bW9yeSBhbmQgdGhlbiBhZnRlciBrZXhlYyBwdWxscyBpdCBiYWNrIGludG8gZXBoZW1lcmFsDQpt ZW1vcnkuIFRoYXQncyBwcm9iYWJseSBkby1hYmxlLCBidXQgaXQgbWF5IGluY3JlYXNlIHRoZSBj cml0aWNhbA0Kc2VjdGlvbiBsYXRlbmN5IG9mIGxpdmUgdXBkYXRlIChldmVyeSBtaWxsaXNlY29u ZCBjb3VudHMhKSBhbmQgSSdtIGFsc28NCm5vdCB0b28gc3VyZSB3aGF0IHRoYXQgYnV5cyBjb21w YXJlZCB0byBhbHdheXMgd29ya2luZyB3aXRoIHBlcnNpc3RlbnQNCm1lbW9yeSBhbmQganVzdCBh bHdheXMgYmVpbmcgaW4gYSBzdGF0ZSB3aGVyZSBwZXJzaXN0ZW50IGRhdGEgaXMgYWx3YXlzDQpi ZWluZyB1c2VkIGFuZCBjYW4gYmUgcGlja2VkIHVwIGFzLWlzLg0KDQpIb3dldmVyLCB0aGUgaWRl YSBvZiBhIHNlcmlhbGlzZSBhbmQgZGVzZXJpYWxpc2Ugb3BlcmF0aW9uIGlzIHJlbGV2YW50DQp0 byBhIHBvc3NpYmxlIGFsdGVybmF0aXZlIHRvIHRoaXMgUkZDLiBNeSBjb2xsZWFndWUgQWxleCBH cmFmIGlzIHdvcmtpbmcNCm9uIGEgZnJhbWV3b3JrIGNhbGxlZCBLZXhlYyBIYW5kIE92ZXIgKEtI Tyk6DQpodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvMjAyNDAxMTcxNDQ3MDQuNjAyLTEtZ3Jh ZkBhbWF6b24uY29tLyNyDQpUaGF0IGFsbG93cyBkcml2ZXJzL21vZHVsZXMgdG8gbWFyayBhcmJp dHJhcnkgbWVtb3J5IHBhZ2VzIGFzIHBlcnNpc3RlbnQNCihpZTogbm90IGFsbG9jYXRhYmxlIGJ5 IG5leHQga2VybmVsKSBhbmQgdG8gcGFzcyBvdmVyIHNvbWUgc2VyaWFsaXNlZA0Kc3RhdGUgYWNy b3NzIGtleGVjLg0KQW4gYWx0ZXJuYXRpdmUgdG8gSU9NTVUgZG9tYWluIHBlcnNpc3RlbmNlIGNv dWxkIGJlIHRvIHVzZSBLSE8gdG8gbWFyaw0KdGhlIElPTU1VIHJvb3QsIGNvbnRleHQgYW5kIGRv bWFpbiBwYWdlIHRhYmxlIHBhZ2VzIGFzIHBlcnNpc3RlbnQgdmlhDQpLSE8uDQoNCj4gDQo+IFRo ZW4geW91J2QgYnVpbGQgdGhlIG5vcm1hbCBvcGVyYXRpbmcgaW9hcyBhbmQgaHdwdCAod2l0aCBh bGwgdGhlDQo+IHJpZ2h0IHBhZ2UgcmVmY291bnRzL2V0YykgdGhlbiBzd2l0Y2ggdG8gaXQgYW5k IGZyZWUgdGhlIHBrZXJuZnMNCj4gbWVtb3J5Lg0KPiANCj4gSXQgc2VlbXMgYWxvdCBsZXNzIGlu dmFzaXZlIHRvIG1lLiBUaGUgc3BlY2lhbCBjYXNlIGlzIGNsZWFybHkgYQ0KPiBzcGVjaWFsIGNh c2UgYW5kIGRvZXNuJ3QgbWVzcyB1cCB0aGUgbm9ybWFsIG9wZXJhdGlvbiBvZiB0aGUgZHJpdmVy cy4NCg0KWWVzLCBhIHNlcmlhbGlzZS9kZXNlcmlhbGlzZSBhcHByb2FjaCBkb2VzIGhhdmUgdGhp cyBkaXN0aW5jdCBhZHZhbnRhZ2UNCm9mIG5vdCBuZWVkaW5nIHRvIGNoYW5nZSB0aGUgYWxsb2Mv ZnJlZSBjb2RlIHBhdGhzLiBQa2VybmZzIHJlcXVpcmVzIGENCnNoaW0gaW4gdGhlIGFsbG9jYXRv ciB0byB1c2UgcGVyc2lzdGVudCBtZW1vcnkuDQoNCg0KPiANCj4gPiAqIE5lZWRpbmcgdG8gZHJp dmUgYW5kIHJlLWh5ZHJhdGUgdGhlIElPTU1VIHBhZ2UgdGFibGVzIGJ5IGRlZmluaW5nIGFuIElP TU1VIGZpbGUuDQo+ID4gUmVhbGx5IHdlIHNob3VsZCBtb3ZlIHRoZSBhYnN0cmFjdGlvbiBvbmUg bGV2ZWwgdXAgYW5kIG1ha2UgdGhlIHdob2xlIFZGSU8NCj4gPiBjb250YWluZXIgcGVyc2lzdGVu dCB2aWEgYSBwa2VybmZzIGZpbGUuIFRoYXQgd2F5IHlvdeKAmWQgImp1c3QiIHJlLW9wZW4gdGhl IFZGSU8NCj4gPiBjb250YWluZXIgZmlsZSBhbmQgYWxsIG9mIHRoZSBETUEgbWFwcGluZ3MgaW5z aWRlIFZGSU8gd291bGQgYWxyZWFkeSBiZSBzZXQgdXAuDQo+IA0KPiBJIGRvdWJ0IHRoaXMuLiBJ dCBwcm9iYWJseSBuZWVkcyB0byBiZSBtdWNoIGZpbmVyIGdyYWluZWQgYWN0dWFsbHksDQo+IG90 aGVyd2lzZSB5b3UgYXJlIGdvaW5nIHRvIGJlIHNlcmlhbGl6aW5nIGV2ZXJ5dGhpbmcuIFNvbWVo b3cgSSB0aGluaw0KPiB5b3UgYXJlIGJldHRlciB0byBzZXJpYWxpemUgYSBtaW5pbXVtIGFuZCB0 cnkgdG8gcmVjb25zdHJ1Y3QNCj4gZXZlcnl0aGluZyBlbHNlIGluIHVzZXJzcGFjZS4gTGlrZSBj b25zZXJ2aW5nIGlvbW11ZmQgSURzIHdvdWxkIGJlIGENCj4gaHVnZSBQSVRBLg0KPiANCj4gVGhl cmUgYXJlIGFsc28gZ29pbmcgdG8gYmUgbG90cyBvZiBzZWN1cml0eSBxdWVzdGlvbnMgaGVyZSwg bGlrZSB3ZQ0KPiBjYW4ndCBqdXN0IGxldCB1c2Vyc3BhY2UgZmVlZCBpbiBhbnkgZ2FyYmFnZSBh bmQgdmlvbGF0ZSB2ZmlvIGFuZA0KPiBpb21tdSBpbnZhcmlhbnRzLg0KDQpSaWdodCEgVGhpcyBp cyBkZWZpbml0ZWx5IG9uZSBvZiB0aGUgYmlnIGdhcHMgYXQgdGhlIG1vbWVudDogdGhpcw0KYXBw cm9hY2ggcmVxdWlyZXMgdGhhdCBWRklPIGhhcyB0aGUgc2FtZSBzdGF0ZSByZS1kcml2ZW4gaW50 byBpdCBmcm9tDQp1c2Vyc3BhY2Ugc28gdGhhdCB0aGUgcGVyc2lzdGVudCBhbmQgZXBoZW1lcmFs IGRhdGEgbWF0Y2guIElmIHVzZXJzcGFjZQ0KZG9lcyBzb21ldGhpbmcgZG9kZ3ksIHdlbGwsIGl0 IG1heSBjYXVzZSBwcm9ibGVtcy4gOi0pDQpUaGF0J3MgZXhhY3RseSB3aHkgSSB0aG91Z2h0IHdl IHNob3VsZCBtb3ZlIHRoZSBhYnN0cmFjdGlvbiB1cCB0byBhDQpsZXZlbCB0aGF0IGRvZXNuJ3Qg ZGVwZW5kIG9uIHVzZXJzcGFjZSByZS1kcml2aW5nIGRhdGEuIEl0IHNvdW5kcyBsaWtlDQp5b3Ug d2VyZSBzdWdnZXN0aW5nIHNpbWlsYXIgaW4gdGhlIGZpcnN0IHBhcnQgb2YgeW91ciBjb21tZW50 LCBidXQgSQ0KZGlkbid0IGZ1bGx5IHVuZGVyc3RhbmQgaG93IHlvdSdkIGxpa2UgdG8gc2VlIGl0 IHByZXNlbnRlZCB0byB1c2Vyc3BhY2UuDQoNCkpHDQo=