From nobody Thu Sep 21 15:02:51 2023 X-Original-To: freebsd-fs@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RrzF21w6rz4tXMD for ; Thu, 21 Sep 2023 15:03:50 +0000 (UTC) (envelope-from jfc@mit.edu) Received: from outgoing-exchange-5.mit.edu (outgoing-exchange-5.mit.edu [18.9.28.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.outgoing-exchange.mit.edu", Issuer "InCommon RSA Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RrzF141pBz4K8m for ; Thu, 21 Sep 2023 15:03:49 +0000 (UTC) (envelope-from jfc@mit.edu) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=mit.edu header.s=outgoing header.b=K0Stytjv; spf=pass (mx1.freebsd.org: domain of jfc@mit.edu designates 18.9.28.59 as permitted sender) smtp.mailfrom=jfc@mit.edu; dmarc=pass (policy=none) header.from=mit.edu Received: from oc11exedge1.exchange.mit.edu (OC11EXEDGE1.EXCHANGE.MIT.EDU [18.9.3.17]) by outgoing-exchange-5.mit.edu (8.14.7/8.12.4) with ESMTP id 38LF3kVI015033; Thu, 21 Sep 2023 11:03:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=outgoing; t=1695308627; bh=G+bm+N5cotAwMcZwB8skb7UuJTOBbwO9xEvfdGnk12g=; h=From:Subject:Date:Message-ID:Content-Type:MIME-Version; b=K0Stytjv9rDNvwGmzBXLOJ68MwM4LvUoQyOLFNuKMqv/yYf4pXb+T0RsNXoqFBSXM j37II6seqh26EDJsmh4Fcld74dK2XYcag0hVlKlRX6SOa12yL4t+y24jj6CczfRE1H tc0PWvdKtXjEK7YfxsCHHmFq4jaIhtlRyH9d8dqYqtyoXxhAURr7ClkFJM+jDzeKYa 1TlnFU7bkk54Luzw5/fZQ1B6msmrNddWdBpBvK3XGaZlbda6vuO0yaUejRdBuShIzF FWklkCJ44bkSclD3mlmKNdTpzvnjos7Z0883WJrQ11cXGAnuCwBjgBa4qQHMkqzZc5 CUImoilGNvfKg== Received: from w92expo20.exchange.mit.edu (18.7.74.74) by oc11exedge1.exchange.mit.edu (18.9.3.17) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Thu, 21 Sep 2023 11:02:36 -0400 Received: from oc11exhyb7.exchange.mit.edu (18.9.1.112) by w92expo20.exchange.mit.edu (18.7.74.74) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Thu, 21 Sep 2023 11:02:53 -0400 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by oc11exhyb7.exchange.mit.edu (18.9.1.112) with Microsoft SMTP Server (TLS) id 15.0.1497.48 via Frontend Transport; Thu, 21 Sep 2023 11:02:53 -0400 Received: from SA3PR01MB8450.prod.exchangelabs.com (2603:10b6:806:382::17) by DM8PR01MB6901.prod.exchangelabs.com (2603:10b6:8:12::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.28; Thu, 21 Sep 2023 15:02:52 +0000 Received: from SA3PR01MB8450.prod.exchangelabs.com ([fe80::ee32:19a8:b83e:efbf]) by SA3PR01MB8450.prod.exchangelabs.com ([fe80::ee32:19a8:b83e:efbf%7]) with mapi id 15.20.6813.018; Thu, 21 Sep 2023 15:02:51 +0000 From: "John F Carr" To: Rick Macklem CC: Freebsd fs Subject: Re: RFC: Should copy_file_range(2) work for shared memory objects? Thread-Topic: RFC: Should copy_file_range(2) work for shared memory objects? Thread-Index: AQHZ7AO5tx62EIf6Uki/4rnO3/jzpbAkY2AAgAAMpICAAPFKgA== Date: Thu, 21 Sep 2023 15:02:51 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA3PR01MB8450:EE_|DM8PR01MB6901:EE_ x-ms-office365-filtering-correlation-id: 9a743168-782b-49e2-735e-08dbbab3d3d6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LDRdQa5s6aOIhust4QYL+HWN+IAMNvwfgiOAPSjSp3lX7sdm3N7A6zqgV0TC6Yjo1adnf8p+YdNmhDhhSxlzCg3OLUEkGV9KKeIB+EO0QDDk6DDBIgSZZpXmL+7tBIHHmBjsHUUa6puBnvPdC0YY5BNahwEozpo0srMSNRcOUCC+szJHcDRBwfcitWfZv6nwBe+YvjAY5qEfSFGXnHHYdReV/kAvGXx/Zwoi+1aUxhYTOkw+xpd3Oj1vabiFvXshHoYSZd+4ckQ2A2aBvVAkH0R+LK/GN1yRXnrE/enVA7ySR9GIsjiOm6oyl0P185k5hSzRLnXFq0owgnphq19/ZKniViIEIGFEsU8FbG8deVmBJh7A/ROQG6VGWgsOGPRiZxQ68imOIf0A6VEyndKyTE+2auBClIKLVxA2446JyXllB04cwFhbKoNFgExQoWmjQevB+vF1GMJu3tiXs0ljuIdBbd5+NHf73qvL/TsrUVJl6gUcFqL57dRVKVL7rrd3kC20TzY3Q21CMAOKamlhaS8BikHXaLnNLeMV2p1mCYuXFSl2Kst8xuiPJutOR0HOSC9O0G96Zov/uvkx+B5EYo8jB0LXKiS3skbpBstHQ3jqy5y8/TuBFZ14W8XRixBz x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR01MB8450.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(346002)(376002)(366004)(39860400002)(396003)(451199024)(1800799009)(186009)(26005)(2616005)(2906002)(5660300002)(83380400001)(8936002)(64756008)(786003)(66446008)(316002)(66476007)(76116006)(66556008)(91956017)(6916009)(4326008)(8676002)(41300700001)(86362001)(33656002)(38100700002)(478600001)(38070700005)(36756003)(75432002)(66946007)(6506007)(6486002)(71200400001)(53546011)(6512007)(122000001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aTBsOEczYXFweXI2Y0ltc25xZmZyVjVNYWx0NEFGb3FhOWxYdkdBVHlsRktl?= =?utf-8?B?QmxQWG5SZjlpTmZrQWkrRU5pSXdhRElDYk8yck14MnZoa2FLTGtFbnYvbkkx?= =?utf-8?B?eXhES1BoVVM2N09JRzd0U3RmSkdlMW5MMGQ3Sk4weStVRXMxTWczT2doU1Nz?= =?utf-8?B?MHVDQ0RpRTluY2d1MHcvbFBSRXZZNHpZRGd5V3pIeDVDTVpSbDdXNlBWZGxI?= =?utf-8?B?d0padnZDRzdydGREYnZZeEh4TVZQMFBuYnFmcERseDY1Q0lRL1pic0Ura0Q2?= =?utf-8?B?b015YUxha2VMdmlGR0FzQjlOUzZ1dVdJOXpjOW5tYWd6UU92QWNPWk1aNkFJ?= =?utf-8?B?MUlqR3VyTW95RzJ4T0NuTXJDU3lURkFhMGE0WTBUMUtCWUh6YThpSGN5S1l4?= =?utf-8?B?cmwxYXVFL3BFVllna1NKeTRJYzR4ZlNNdGN6YWpvczR4UFVuZGo1dHUzeGJF?= =?utf-8?B?SG9yU0ZxWWIvOG9ybGFYazZRUGw0OTNIc3ZRTi9UQWc5ais3UzJueXFKaEVX?= =?utf-8?B?bG5SaHRFT0JtMGlvNHJzME1FekJZMUg2WnBLV01VK0JlWEtERDFlMVUyNDhi?= =?utf-8?B?Rk5ESUhjNlgxTWZ3eFBpQ2lOT3BaUVo5N0FQTDlEQ2NRZ25oZ3Bsd1BabDJO?= =?utf-8?B?NzFzRTVySU5uVHdxRFQwUUkzNkNYS3oxNFFBclFHY0VnVG5wZTdxS3pScWxW?= =?utf-8?B?S0g1T3VOYjdmWElyb0JxR3JBK3pEdFhJUXlpbDY4aU9jWGlIdnBVTGgxTkhR?= =?utf-8?B?aGdJL2lJNnVQSVgvSjRUbGVRczI3UE9rYnM1L2ZFTnR1WVdZZ3JhRWkyeFVr?= =?utf-8?B?UkNTbW55SU1ZcXJSaEVnRTJsaW5wZWRFU2NsNmhmNkJJeWlwY1JCYlB1ZlF6?= =?utf-8?B?MC9adllEZTdOK3Jkc2EzSHc5NmFBeWRRdGN2OFNlZnBORFA4NlQwZkVzL0hL?= =?utf-8?B?dUNVR1BTWUowZnFSdDJyZ21oZlFtdzBEMDdWTFVhc2dsbUpTRDZGVlcrYnNB?= =?utf-8?B?bC94M2ZQU3pyUWU1QVo2UzVHSXpEWHNXeHRCMHZYY2xTdm5FTktSWFMyN3RC?= =?utf-8?B?YkdUMGxMeXdVOWdIUllzTkdKODNqdGdDaVlPMVZzUTdxaWZVSFZ4eFpRMzZ4?= =?utf-8?B?cnM3QTBFU3RVRnFjQ0tBd1p2U3hLd1hsMkVRdnJQU3o2eGNIcFJmeUdrRlJC?= =?utf-8?B?V3VPS3drZGFpSjhwYWdmR291dUZQSERLS3ByeUZDQUZaWndIM2tXVldMK2pn?= =?utf-8?B?MTFkUVFjRlpNZkc1VFlHa01UcXkxRWl1ejFqaXkxTmZFRkpBWXhSQ0lLQmtl?= =?utf-8?B?N1JPbGQwRm9WZTlKVC9YL1ZDN1cvdm95bVltVnRsa3pISzVGdkdvMGNEYTdh?= =?utf-8?B?NnI2VzhycWRJMWxDbCttODI4bng0YmNNNjgrbkdhK3FMa2VMUXV0THo3L0NQ?= =?utf-8?B?a0RZUnRybFg5YzkvRmJ1Yjh0RXFhNGV4cDg4OVFRM1lmeFUwcE1WUEJrdlRh?= =?utf-8?B?Kzl3WUFYamkzQlBOTGpIejFjRHRuNVU5a0hLTlcwa3JzMVZtcDg0VmxHeW0r?= =?utf-8?B?M0ovRXZmcHBSbngvYnpYeTFEaWZNTWprK0dIMGJBVlVNbDg2S1VLOHFHWDlw?= =?utf-8?B?ekxaTTlVOWNVOFcyUXBuanVsYURvN1lPcGFjc2Q1QURnYWpuK2crUC9HYjZp?= =?utf-8?B?aElYZXRyemkxSUtLRDZ0cWQvRHloK01mZ3pEVkZMRzJ3bmFNd09hV3ZJMTR0?= =?utf-8?B?MW9WL29MbmJxcElWdGRwaXZEejdnZHBBTXI5NjdvWGN2Uk5TdWhhekViTzVT?= =?utf-8?B?NlhkQnczYndsOEJJMmtoMmZRUkZCeUJBdnRuSTZuVjVlenRNQ3p0TXlkUWNL?= =?utf-8?B?S0tKY2xRT0Y4eE9mQ1N1d3AwRkdSRzJQeHBRMFZac3RKa2FHa205eThZWncz?= =?utf-8?B?MVczdXBhZXFneTJUWTBXWGVLcisxTThRVGp5c0p0aGNaS3cyd0RuZ1hGS0ll?= =?utf-8?B?aWcyaFRxbU92MUhwaThPSlgwSG1JN2J6dTJnRjNqVU83QWJUNlN3ZVhmcnN0?= =?utf-8?B?bkxBYlNZQkZkZ0wxUklOcVdhOUJhanp3eW1LSUY3K2lwbHlRV1o1bGNxeE9J?= =?utf-8?Q?2w4Q=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <2A5427E3848B23429CB428CAFA5AD01D@prod.exchangelabs.com> Content-Transfer-Encoding: base64 List-Id: Filesystems List-Archive: https://lists.freebsd.org/archives/freebsd-fs List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-fs@freebsd.org MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA3PR01MB8450.prod.exchangelabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a743168-782b-49e2-735e-08dbbab3d3d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Sep 2023 15:02:51.8740 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ToUa7VZLmE3MyM1/JC14OIUU1EGgi9JpCtYd6KNZYrZl6aBEFbd6HXtoErHaV+i7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR01MB6901 X-OriginatorOrg: mit.edu X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.90 / 15.00]; DWL_DNSWL_LOW(-1.00)[mit.edu:dkim]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999]; NEURAL_HAM_SHORT(-1.00)[-0.998]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; DMARC_POLICY_ALLOW(-0.50)[mit.edu,none]; RCVD_IN_DNSWL_MED(-0.40)[18.9.28.59:from,18.9.3.17:received]; R_SPF_ALLOW(-0.20)[+ip4:18.9.28.0/24]; R_DKIM_ALLOW(-0.20)[mit.edu:s=outgoing]; RCVD_IN_DNSWL_LOW(-0.10)[18.9.1.112:received]; MIME_BASE64_TEXT(0.10)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_COUNT_FIVE(0.00)[6]; TAGGED_RCPT(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[104.47.58.169:received]; RCPT_COUNT_TWO(0.00)[2]; DKIM_TRACE(0.00)[mit.edu:+]; TO_DN_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:3, ipnet:18.9.0.0/16, country:US]; MLMMJ_DEST(0.00)[freebsd-fs@freebsd.org] X-Rspamd-Queue-Id: 4RrzF141pBz4K8m DQo+IE9uIFNlcCAyMCwgMjAyMywgYXQgMjA6MzksIFJpY2sgTWFja2xlbSA8cmljay5tYWNrbGVt QGdtYWlsLmNvbT4gd3JvdGU6DQo+IA0KPiBPbiBXZWQsIFNlcCAyMCwgMjAyMyBhdCA0OjU04oCv UE0gSm9obiBGIENhcnIgPGpmY0BtaXQuZWR1PiB3cm90ZToNCj4+IA0KPj4gT24gU2VwIDIwLCAy MDIzLCBhdCAxNjo0NywgUmljayBNYWNrbGVtIDxyaWNrLm1hY2tsZW1AZ21haWwuY29tPiB3cm90 ZToNCj4+PiANCj4+PiBSaWdodCBub3cgKGFzIG5vdGVkIGJ5IFBSIzI3Mzk2MikgY29weV9maWxl X3JhbmdlKDIpDQo+Pj4gZmFpbHMgZm9yIHNoYXJlZCBtZW1vcnkgb2JqZWN0cyBiZWNhdXNlIHRo ZXJlIGlzIG5vDQo+Pj4gdm5vZGUgKGZfdm5vZGUgPT0gTlVMTCkgZm9yIHRoZW0gYW5kIHRoZSBj b2RlIHVzZXMNCj4+PiB2bm9kZXMgKGluY2x1ZGluZyBhIGZpbGUgc3lzdGVtIHNwZWNpZmljIFZP UF9DT1BZX0ZJTEVfUkFOR0UoOSkpLg0KPj4+IA0KPj4+IERvIHlvdSB0aGluayBjb3B5X2ZpbGVf cmFuZ2UoMikgc2hvdWxkIHdvcmsgZm9yIHNoYXJlZCBtZW1vcnkgb2JqZWN0cz8NCj4+PiANCj4+ PiBUaGlzIHdvdWxkIHJlcXVpcmUgc3BlY2lmaWMgaGFuZGxpbmcgaW4ga2Vybl9jb3B5X2ZpbGVf cmFuZ2UoKQ0KPj4+IHRvIHdvcmsuICBJIGRvIG5vdCB0aGluayB0aGUgcGF0Y2ggd291bGQgYmUg YSBsb3Qgb2Ygd29yaywgYnV0DQo+Pj4gSSBhbSBub3QgZmFtaWxpYXIgd2l0aCB0aGUgZl9vcHMg YW5kIHNoYXJlZCBtZW1vcnkgY29kZS4NCj4+PiANCj4+PiByaWNrDQo+Pj4gDQo+PiANCj4+IEFj Y29yZGluZyB0byBhIExpbnV4IG1hbiBwYWdlLCBzb21lIGZhaWx1cmUgbW9kZXMgYXJlDQo+PiAN Cj4+ICAgICAgIEVJTlZBTCBFaXRoZXIgZmRfaW4gb3IgZmRfb3V0IGlzIG5vdCBhIHJlZ3VsYXIg ZmlsZS4NCj4+IA0KPj4gICAgICAgRU9QTk9UU1VQUCAoc2luY2UgTGludXggNS4xOSkgVGhlIGZp bGVzeXN0ZW0gZG9lcyBub3Qgc3VwcG9ydCB0aGlzIG9wZXJhdGlvbi4NCj4+IA0KPj4gICAgICAg RVhERVYgKHNpbmNlIExpbnV4IDUuMTkpDQo+PiAgICAgICAgICAgIFRoZSBmaWxlcyByZWZlcnJl ZCB0byBieSBmZF9pbiBhbmQgZmRfb3V0IGFyZSBub3Qgb24gdGhlDQo+PiAgICAgICAgICAgIHNh bWUgZmlsZXN5c3RlbSwgYW5kIHRoZSBzb3VyY2UgYW5kIHRhcmdldCBmaWxlc3lzdGVtcyBhcmUN Cj4+ICAgICAgICAgICAgbm90IG9mIHRoZSBzYW1lIHR5cGUsIG9yIGRvIG5vdCBzdXBwb3J0IGNy b3NzLWZpbGVzeXN0ZW0gY29weS4NCj4+IA0KPj4gQWNjb3JkaW5nIHRvIHRoZSBGcmVlQlNEIG1h biBwYWdlDQo+PiANCj4+ICAgICBUaGUgY29weV9maWxlX3JhbmdlKCkgc3lzdGVtIGNhbGwgaXMg ZXhwZWN0ZWQgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHRoZQ0KPj4gICAgIExpbnV4IHN5c3RlbSBj YWxsIG9mIHRoZSBzYW1lIG5hbWUuDQo+PiANCj4gU28sIEkgZ3Vlc3MgeW91IGFyZSBhZHZvY2F0 aW5nIGZvciBzdGlja2luZyB3aXRoICJMaW51eCBjb21wYXRpYmxlIj8NCj4gSSdtIGZpbmUgd2l0 aCB0aGF0LCBidXQgd2UnbGwgc2VlIHdoYXQgb3RoZXJzIHNheS4NCj4gDQo+IFRoYW5rcyBmb3Ig eW91ciBjb21tZW50cywgcmljaw0KPiBwczsgV2hlbiBJIGdvIGxvb2sgYXQgdGhlIExpbnV4IG1h biBwYWdlLCBJIG9mdGVuIGdldCBhbiBvdXQtb2YtZGF0DQo+ICAgICBvbmUsIHNvIEkgYW0gbmV2 ZXIgc3VyZSB3aGF0IExpbnV4IGN1cnJlbnRseSBkb2VzLiAoSXQgaXMgYWxzbw0KPiAgICAgY29u ZnVzaW5nIGJlY2F1c2Ugc29tZSBkaXN0cm9zIGltcGxlbWVudCBjb3B5X2ZpbGVfcmFuZ2UoKQ0K PiAgICAgaW4gdGhlaXIgbGliYyBpbnN0ZWFkIG9mIHRoZSBrZXJuZWwuIEkgdGhpbmsgbW9yZSBy ZWNlbnQgTGludXgga2VybmVscw0KPiAgICAgZG8gc3VwcG9ydCB0aGUgc3lzY2FsbC4pDQoNCkkg dGhpbmsgTGludXggY29tcGF0aWJsZSBvciBhIGJpdCBiZXR0ZXIgaXMgZ29vZCBlbm91Z2ggZm9y IHRoZSBzeXN0ZW0gY2FsbC4NCklmIHdlIHdhbnQgdG8gc3VwcG9ydCBhbGwgc2FuZSBjb3B5IG9w ZXJhdGlvbnMgdGhlIGxpYmMgZnVuY3Rpb24gY2FuIGhhbmRsZQ0Kd2hhdCB0aGUga2VybmVsIGRv ZXMgbm90LiAgSSBkb24ndCBrbm93IGlmIGVtdWxhdGlvbiBzaG91bGQgYmUgdGhlIGRlZmF1bHQN CmJlaGF2aW9yLiAgVGhlIExpbnV4IG1hbiBwYWdlIHNheXMgImdsaWJjIDIuMjcgcHJvdmlkZXMg YSB1c2VyLXNwYWNlDQplbXVsYXRpb24gd2hlbiBpdCBpcyBub3QgYXZhaWxhYmxlLiINCg0KV2Ug Y2FuIG5vdCBwcm9wZXJseSBzdXBwb3J0IGFsbCBjYXNlcyB3aXRoIG9yIHdpdGhvdXQgYSBsaWJy YXJ5IHdyYXBwZXIuDQpXaGF0IGlmIHRoZSBjYWxsZXIgc3BlY2lmaWVzIGEgc2VlayBvZmZzZXQg b24gYSBub24tc2Vla2FibGUgb2JqZWN0Pw0KKEkgcmVjYWxsIGEgcmVhbGx5IG9ibm94aW91cyBw cm9ncmFtIHRoYXQgd291bGQgc2lnbmFsIGl0cyBkaXNwbGVhc3VyZQ0Kd2l0aCB5b3VyIGVudmly b25tZW50IGJ5IGNhbGxpbmcgbHNlZWsoKSBvbiAvZGV2L3R0eSwgY2F1c2luZyB5b3UgdG8NCmJl IGxvZ2dlZCBvdXQgd2hlbiB0aGUgc2hlbGwgY291bGQgbm90IHJlYWQgaW5wdXQuKQ0KDQoNCg==