From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 92E5A43A0E; Tue, 30 Jan 2024 14:00:14 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 68A3540275; Tue, 30 Jan 2024 14:00:14 +0100 (CET) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 1AB374026C for ; Tue, 30 Jan 2024 14:00:13 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id E653E2011D; Tue, 30 Jan 2024 14:00:12 +0100 (CET) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH] RFC: use C11 alignas instead of GCC attribute aligned X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Tue, 30 Jan 2024 14:00:07 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35E9F1C7@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35E9F1C6@smartserver.smartshare.dk> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] RFC: use C11 alignas instead of GCC attribute aligned Thread-Index: AdpTXqZkANaBfHHXRi2WqhiEQU4J9gAAPDUgAAaklAA= References: <1700069997-4399-1-git-send-email-roretzla@linux.microsoft.com> <20240125183713.GA27715@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <98CBD80474FA8B44BF855DF32C47DC35E9F1A3@smartserver.smartshare.dk> <91ba1ece-10dd-4698-acd9-6b51cfc63cd9@lysator.liu.se> <98CBD80474FA8B44BF855DF32C47DC35E9F1A7@smartserver.smartshare.dk> <635f0d9f-6665-426b-b778-d61e5e732fbe@lysator.liu.se> <98CBD80474FA8B44BF855DF32C47DC35E9F1AA@smartserver.smartshare.dk> <413840c1-a263-4118-adfe-d4ae0ec0b52d@lysator.liu.se> <20240129194356.GA25654@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <98CBD80474FA8B44BF855DF32C47DC35E9F1C5@smartserver.smartshare.dk> <7d01357d-c843-4810-b12d-a692fa8b8102@lysator.liu.se> <98CBD80474FA8B44BF855DF32C47DC35E9F1C6@smartserver.smartshare.dk> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "Tyler Retzlaff" Cc: , =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= , "Anatoly Burakov" , "Bruce Richardson" , "David Christensen" , "Harry van Haaren" , "Konstantin Ananyev" , "Min Zhou" , "Ruifeng Wang" , "Stanislaw Kardach" , X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRvOm1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbV0N Cj4gU2VudDogVHVlc2RheSwgMzAgSmFudWFyeSAyMDI0IDExLjE3DQo+IA0KPiA+IEZyb206IE1h dHRpYXMgUsO2bm5ibG9tIFttYWlsdG86aG9mb3JzQGx5c2F0b3IubGl1LnNlXQ0KPiA+IFNlbnQ6 IFR1ZXNkYXksIDMwIEphbnVhcnkgMjAyNCAxMC4yOA0KPiA+DQo+ID4gT24gMjAyNC0wMS0zMCAw OTowOSwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4gPj4gRnJvbTogVHlsZXIgUmV0emxhZmYg W21haWx0bzpyb3JldHpsYUBsaW51eC5taWNyb3NvZnQuY29tXQ0KPiA+ID4+IFNlbnQ6IE1vbmRh eSwgMjkgSmFudWFyeSAyMDI0IDIwLjQ0DQo+ID4gPj4NCj4gPiA+PiBPbiBTdW4sIEphbiAyOCwg MjAyNCBhdCAxMTowMDozMUFNICswMTAwLCBNYXR0aWFzIFLDtm5uYmxvbSB3cm90ZToNCj4gPiA+ Pj4gT24gMjAyNC0wMS0yOCAwOTo1NywgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4gPj4+Pj4g RnJvbTogTWF0dGlhcyBSw7ZubmJsb20gW21haWx0bzpob2ZvcnNAbHlzYXRvci5saXUuc2VdDQo+ ID4gPj4+Pj4gU2VudDogU2F0dXJkYXksIDI3IEphbnVhcnkgMjAyNCAyMC4xNQ0KPiA+ID4+Pj4+ DQo+ID4gPj4+Pj4gT24gMjAyNC0wMS0yNiAxMToxOCwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ ID4gPj4+Pj4+PiBGcm9tOiBNYXR0aWFzIFLDtm5uYmxvbSBbbWFpbHRvOmhvZm9yc0BseXNhdG9y LmxpdS5zZV0NCj4gPiA+Pj4+Pj4+IFNlbnQ6IEZyaWRheSwgMjYgSmFudWFyeSAyMDI0IDExLjA1 DQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gT24gMjAyNC0wMS0yNSAyMzo1MywgTW9ydGVuIEJy w7hydXAgd3JvdGU6DQo+ID4gPj4+Pj4+Pj4+IEZyb206IFR5bGVyIFJldHpsYWZmIFttYWlsdG86 cm9yZXR6bGFAbGludXgubWljcm9zb2Z0LmNvbV0NCj4gPiA+Pj4+Pj4+Pj4gU2VudDogVGh1cnNk YXksIDI1IEphbnVhcnkgMjAyNCAxOS4zNw0KPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+PiBw aW5nLg0KPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+PiBQbGVhc2UgcmV2aWV3IHRoaXMgdGhy ZWFkIGlmIHlvdSBoYXZlIHRpbWUsIHRoZSBtYWluIHBvaW50DQo+IG9mDQo+ID4gPj4+Pj4+Pj4+ IGRpc2N1c3Npb24NCj4gPiA+Pj4+Pj4+Pj4gSSB3b3VsZCBsaWtlIHRvIHJlY2VpdmUgY29uc2Vu c3VzIG9uIHRoZSBmb2xsb3dpbmcNCj4gcXVlc3Rpb25zLg0KPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4+ Pj4+Pj4+PiAxLiBTaG91bGQgd2UgY29udGludWUgdG8gZXhwYW5kIGNvbW1vbiBhbGlnbm1lbnRz IGJlaGluZCBhbg0KPiA+ID4+Pj4+Pj4gX19ydGVfbWFjcm8NCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+ Pj4+Pj4+Pj4gICAgICBpLmUuIHdoYXQgZG8gd2UgcHJlZmVyIHRvIGFwcGVhciBpbiBjb2RlDQo+ ID4gPj4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4+ICAgICAgYWxpZ25hcyhSVEVfQ0FDSEVfTElORV9N SU5fU0laRSkNCj4gPiA+Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4gICAgICAtLSBvciAtLQ0KPiA+ ID4+Pj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4+PiAgICAgIF9fcnRlX2NhY2hlX2FsaWduZWQNCj4gPiA+ Pj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+Pj4gT25lIG9mIHRoZSBiZW5lZml0cyBvZiBkcm9wcGluZyB0 aGUgbWFjcm8gaXMgaXQgcHJvdmlkZXMgYQ0KPiA+ID4+IGNsZWFyDQo+ID4gPj4+Pj4+PiB2aXN1 YWwNCj4gPiA+Pj4+Pj4+Pj4gaW5kaWNhdG9yIHRoYXQgaXQgaXMgbm90IHBsYWNlZCBpbiB0aGUg c2FtZSBsb2NhdGlvbiBvciBnZXQNCj4gPiA+Pj4+PiBhcHBsaWVkDQo+ID4gPj4+Pj4+Pj4+IHRv IHR5cGVzIGFzIGlzIGRvbmUgd2l0aCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhuKSkpLg0K PiA+ID4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4gV2UgZG9uJ3Qgd2FudCBvdXIgb3duIHByb3ByaWV0 YXJ5IHZhcmlhbnQgb2Ygc29tZXRoaW5nIHRoYXQNCj4gPiA+PiBhbHJlYWR5DQo+ID4gPj4+Pj4+ PiBleGlzdHMgaW4gdGhlIEMgc3RhbmRhcmQuIE5vdyB0aGF0IHdlIGhhdmUgbW92ZWQgdG8gQzEx LCB0aGUNCj4gPiA+PiBfX3J0ZQ0KPiA+ID4+Pj4+Pj4gYWxpZ25tZW50IG1hY3JvcyBzaG91bGQg YmUgY29uc2lkZXJlZCBvYnNvbGV0ZS4NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PiBNYWtpbmcg c28gc29tZXRoaW5nIGNhY2hlLWxpbmUgYWxpZ25lZCBpcyBub3QgaW4gQzExLg0KPiA+ID4+Pj4+ Pg0KPiA+ID4+Pj4+PiBXZSBhcmUgdGFsa2luZyBhYm91dCB0aGUgX19ydGVfYWxpZ25lZCgpIG1h Y3JvLCBub3QgdGhlIGNhY2hlDQo+ID4gPj4+Pj4gYWxpZ25tZW50IG1hY3JvLg0KPiA+ID4+Pj4+ Pg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gT0ssIGluIHRoYXQgY2FzZSwgd2hhdCBpcyB0aGUgcmVs ZXZhbmNlIG9mIHF1ZXN0aW9uIDEgYWJvdmU/DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gV2l0aCB0aGlz IGluIG1pbmQsIHRyeSByZS1yZWFkaW5nIFR5bGVyJ3MgY2xhcmlmaWNhdGlvbnMgaW4gdGhpcw0K PiA+ID4+IHRyZWFkLg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IEJyaWVmbHk6IGFsaWduYXMoKSBjYW4g YmUgYXR0YWNoZWQgdG8gdmFyaWFibGVzIGFuZCBzdHJ1Y3R1cmUNCj4gPiA+PiBmaWVsZHMsIGJ1 dCBub3QgdG8gdHlwZXMgKGxpa2UgX19ydGVfYWxpZ25lZCgpKSwgc28gdG8gYWxpZ24gYQ0KPiA+ ID4+IHN0cnVjdHVyZToNCj4gPiA+Pj4+DQo+ID4gPj4+PiBzdHJ1Y3QgZm9vIHsNCj4gPiA+Pj4+ IAlpbnQgYWxpZ25hcyg2NCkgYmFyOyAvKiBhbGlnbmFzKDY0KSBtdXN0IGJlIGhlcmUgKi8NCj4g PiA+Pj4+IAlpbnQgICAgICAgICAgICAgYmF6Ow0KPiA+ID4+Pj4gfTsgLyogX19ydGVfYWxpZ25l ZCg2NCkgd2FzIGhlcmUsIGJ1dCBhbGlnbmFzKDY0KSBjYW5ub3QgYmUNCj4gaGVyZS4NCj4gPiAq Lw0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFNvIHRoZSBxdWVzdGlvbiBpczogRG8gd2Ugd2FudCB0byBl bGltaW5hdGUgdGhlIF9fcnRlX2FsaWduZWQoKQ0KPiA+ID4+IG1hY3JvIC0gd2hpY2ggcmVsaWVz IG9uIGNvbXBpbGVyIGF0dHJpYnV0ZXMgLSBhbmQgbWlncmF0ZSB0byB1c2luZw0KPiA+IHRoZQ0K PiA+ID4+IEMxMSBzdGFuZGFyZCBhbGlnbmFzKCk/DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gSSB0aGlu ayB5ZXM7IGFmdGVyIHVwZGF0aW5nIHRvIEMxMSwgdGhlIHdvcmthcm91bmQgZm9yIHByZS1DMTEN Cj4gbm90DQo+ID4gPj4gb2ZmZXJpbmcgYWxpZ25tZW50IGlzIG9ic29sZXRlLCBhbmQgaXRzIHJl bW92YWwgc2hvdWxkIGJlIG9uIHRoZQ0KPiA+ID4+IHJvYWRtYXAuDQo+ID4gPj4+Pg0KPiA+ID4+ Pg0KPiA+ID4+PiBPSywgdGhhbmtzIGZvciB0aGUgZXhwbGFuYXRpb24uIEludGVyZXN0aW5nIGxp bWl0YXRpb24gaW4gdGhlDQo+ID4gPj4gc3RhbmRhcmQuDQo+ID4gPj4+DQo+ID4gPj4+IElmIHRo ZSBjb25zdHJ1Y3QgdGhlIHN0YW5kYXJkIGlzIG9mZmVyaW5nIGlzIGxlc3MgZWZmZWN0aXZlIChp bg0KPiA+IHRoaXMNCj4gPiA+Pj4gY2FzZSwgbGVzcyByZWFkYWJsZSkgYW5kIHRoZSBub24tc3Rh bmRhcmQtYmFzZWQgb3B0aW9uIGlzDQo+IHBvc3NpYmxlDQo+ID4gPj4+IHRvIGltcGxlbWVudCBv biBhbGwgY29tcGlsZXJzIChpLmUuLCBvbiBNU1ZDIHRvbyksIHRoZW4gd2Ugc2hvdWxkDQo+ID4g Pj4+IGtlZXAgdGhlIGN1c3RvbSBvcHRpb24uIEVzcGVjaWFsbHkgaWYgaXQncyBhbHJlYWR5IHRo ZXJlLCBidXQNCj4gYWxzbw0KPiA+ID4+PiBpbiBjYXNlcyB3aGVyZSBpdCBpc24ndC4NCj4gPiA+ Pj4NCj4gPiA+Pj4gSW4gZmFjdCwgb25lIGNvdWxkIGFyZ3VlICpldmVyeXRoaW5nKiByZWxhdGVk IHRvIGFsaWdubWVudCBzaG91bGQNCj4gPiBnbw0KPiA+ID4+PiB0aHJvdWdoIHNvbWV0aGluZyBy dGVfLCBfX3J0ZV8gb3IgUlRFXy1wcmVmaXhlZC4gU28sICJpbnQNCj4gPiA+Pj4gUlRFX0FMSUdO QVMoNjQpIGJhcjsiLiBNYXliZSB0aGF0IHdvdWxkIGJlIHNpbGx5LCBidXQgaXQgd291bGQgYmUN Cj4gPiA+Pj4gY29uc2lzdGVudCB3aXRoIFJURV9DQUNIRV9BTElHTkFTLg0KPiA+ID4+Pg0KPiA+ ID4+PiBJIHdvdWxkIHdvcnJ5IG1vcmUgYWJvdXQgYWxsb3dpbmcgRFBESyBkZXZlbG9wZXJzIHdy aXRpbmcgY2xlYW4NCj4gYW5kDQo+ID4gPj4+IHJlYWRhYmxlIGNvZGUsIHRoYW4gdmVyeSBzbGln aHRseSBsb3dlcmluZyB0aGUgYmFyIGZvciB0aGUNCj4gZnJhY3Rpb24NCj4gPiA+Pj4gb2YgbmV3 Y29tZXJzIGV4cGVyaWVuY2VkIHdpdGggdGhlIGxhdGVzdCBhbmQgZ3JlYXRlc3QgZnJvbSB0aGUg Qw0KPiA+ID4+PiBzdGFuZGFyZCwgYW5kICpub3QqIGZhbWlsaWFyIHdpdGggYWdlLW9sZCBHQ0Mg ZXh0ZW5zaW9ucy4NCj4gPiA+Pg0KPiA+ID4+IEnigJlkIGp1c3QgbGlrZSB0byBzdW1tYXJpemUg d2hlcmUgbXkgdW5kZXJzdGFuZGluZyBpcyBhdCBhZnRlcg0KPiA+IHJldmlld2luZw0KPiA+ID4+ IHRoaXMgZGlzY3Vzc2lvbiBhbmQgbXkgZG93bnN0cmVhbSBicmFuY2guIEJ1dCBJIGFsc28gd2Fu dCB0byBtYWtlDQo+IGl0DQo+ID4gPj4gY2xlYXIgdGhhdCB3ZSBwcm9iYWJseSBuZWVkIHRvIHVz ZSBib3RoIHN0YW5kYXJkIEMgYW5kIG5vbi0NCj4gc3RhbmRhcmQNCj4gPiA+PiBhdHRyaWJ1dGUv ZGVjbHNwZWMgZm9yIG9iamVjdCBhbmQgc3RydWN0L3VuaW9uIHR5cGUgYWxpZ25tZW50DQo+ID4g Pj4gcmVzcGVjdGl2ZWx5Lg0KPiA+ID4+DQo+ID4gPj4gSSd2ZSBhc3N1bWVkIHdlIHByZWZlciBh dm9pZGluZyBwZXItY29tcGlsZXIgY29uZGl0aW9uYWwgZXhwYW5zaW9uDQo+ID4gd2hlbg0KPiA+ ID4+IHBvc3NpYmxlIHRocm91Z2ggdGhlIHVzZSBvZiBzdGFuZGFyZCBDIG1lY2hhbmlzbXMuIEJ1 dCB0aGVyZSBhcmUNCj4gPiA+PiBpbnN0YW5jZXMgd2hlbiBhbGlnbmFzIGlzIGF3a3dhcmQuDQo+ ID4gPj4NCj4gPiA+PiBTbyBJIHRoaW5rIHRoZSBmb2xsb3dpbmcgaXMgY29uc2lzdGVudCB3aXRo IHdoYXQgTWF0dGlhcyBpcw0KPiA+IGFkdm9jYXRpbmcNCj4gPiA+PiBzYW5zIGFueSBkaXNjdXNz aW9ucyByZWxhdGVkIHRvIGFjdHVhbCBuYW1pbmcgb2YgbWFjcm9zLg0KPiA+ID4+DQo+ID4gPj4g V2Ugc2hvdWxkIGhhdmUgMiBtYWNyb3MsIHVwb24gd2hpY2ggb3RoZXJzIG1heSBiZSBidWlsdCB0 byBleHBhbmQNCj4gdG8NCj4gPiA+PiB3ZWxsLWtub3duIHZhbHVlcyBmb3IgZS5nLiBjYWNoZSBs aW5lIHNpemUuDQo+ID4gPj4NCj4gPiA+PiBSVEVfQUxJR05BUyhuKSBvYmplY3Q7DQo+ID4gPj4N Cj4gPiA+PiAqIFRoaXMgbWFjcm8gaXMgdXNlZCB0byBhbGlnbiBDIG9iamVjdHMgaS5lLiB2YXJp YWJsZSwgYXJyYXksDQo+ID4gPj4gc3RydWN0L3VuaW9uDQo+ID4gPj4gICAgZmllbGRzIGV0Yy4N Cj4gPiA+PiAqIFRyaXZpYWxseSBleHBhbmRzIHRvIGFsaWduYXMobikgZm9yIGFsbCB0b29sY2hh aW5zLg0KPiA+ID4+ICogUGxhY2VkIGluIGEgbG9jYXRpb24gdGhhdCBib3RoIEMgYW5kIEMrKyB0 cmFuc2xhdGlvbiB1bml0cw0KPiBhY2NlcHQNCj4gPiA+PiB0aGF0DQo+ID4gPj4gICAgaXMgb24g dGhlIHNhbWUgbGluZSBwcmVjZWVkaW5nIHRoZSBvYmplY3QgdHlwZS4NCj4gPiA+PiAgICBleGFt cGxlOg0KPiA+ID4+ICAgIC8vIFJURV9BTElHTkFTKG4pIG9iamVjdDsNCj4gPiA+PiAgICBSVEVf QUxJR05BUygxNikgY2hhciBzb21lYXJyYXlbMTZdOw0KPiA+ID4NCj4gPiA+IFNob3VsZG4ndCB0 aGUgbG9jYXRpb24gYmU6DQo+ID4gPg0KPiA+ID4gW3N0YXRpY10gW2NvbnN0XSBjaGFyIFJURV9B TElHTkFTKDE2KSBzb21lYXJyYXlbMTZdOw0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+IFJURV9BTElH Tl9UWVBFKG4pDQo+ID4gPj4NCj4gPiA+PiAqIFRoaXMgbWFjcm8gaXMgdXNlZCB0byBhbGlnbiBz dHJ1Y3QvdW5pb24gdHlwZXMuDQo+ID4gPj4gKiBDb25kaXRpb25hbGx5IGV4cGFuZHMgdG8gX19k ZWNsc3BlYyhhbGlnbihuKSkgKG1zdmMpIGFuZA0KPiA+ID4+ICAgIF9fYXR0cmlidXRlX18oKF9f YWxpZ25lZF9fKG4pKSkgKGZvciBhbGwgb3RoZXIgdG9vbGNoYWlucykNCj4gPiA+PiAqIFBsYWNl ZCBpbiBhIGxvY2F0aW9uIHRoYXQgZm9yIGFsbCBnY2MsY2xhbmcsbXN2YyBhbmQgYm90aCBDIGFu ZA0KPiA+IEMrKw0KPiA+ID4+ICAgIHRyYW5zbGF0aW9uIHVuaXRzIGFjY2VwdC4NCj4gPiA+PiAg ICBleGFtcGxlOg0KPiA+ID4+ICAgIC8vIHtzdHJ1Y3QsdW5pb259IFJURV9BTElHTl9UWVBFKG4p IHRhZyB7IC4uLiB9Ow0KPiA+ID4+ICAgIHN0cnVjdCBSVEVfQUxJR05fVFlQRSg2NCkgc29tZXR5 cGUgeyAuLi4gfTsNCj4gPiA+Pg0KPiA+ID4+IEknbSBub3QgcGlja3kgYWJvdXQgd2hhdCB0aGUg bmFtZXMgYWN0dWFseSBhcmUgaWYgeW91IGhhdmUgYmV0dGVyDQo+ID4gPj4gc3VnZ2VzdGlvbnMg aSdtIGhhcHB5IHRvIGFkb3B0IHRoZW0uDQo+ID4gPg0KPiA+ID4gQmVpbmcgYWJsZSB0byBhbGln biB0eXBlcyBpcyB2ZXJ5IGNvbnZlbmllbnQsIGFuZCBzaW5jZSBpdCB3b3JrcyBvbg0KPiA+IGFs bCB0b29sY2hhaW5zLCByZXBsYWNpbmcgX19ydGVfYWxpZ25lZCgpIHdpdGggUlRFX0FMSUdOKCkg KGluDQo+IHByZXNlbnQNCj4gPiB0ZW5zZSwgbGlrZSAiaW5saW5lIiBub3QgcGFzdCB0ZW5zZSBs aWtlICJpbmxpbmVkIikgaXMgcGVyZmVjdGx5DQo+ID4gYWNjZXB0YWJsZSB3aXRoIG1lLiAoSSBz dXBwb3NlIE1TVkMgcmVxdWlyZXMgdGhpcyBvdGhlciBsb2NhdGlvbiB3aGVuDQo+ID4gdXNpbmcg aXQsIHNvIHdlIHNpbXBseSBoYXZlIHRvIGFjY2VwdCB0aGF0LiBJdCdzIGEgbWlub3IgY2hhbmdl IG9ubHksDQo+ID4gaXQgY291bGQgaGF2ZSBiZWVuIG11Y2ggd29yc2UhKQ0KPiA+ID4NCj4gPiA+ IE5vdywgaWYgd2UgaGF2ZSBSVEVfQUxJR05bX1RZUEVdKCksIHdoYXQgZG8gd2UgbmVlZCBSVEVf QUxJR05BUygpDQo+ID4gZm9yPw0KPiA+ID4NCj4gPiA+IEFuZCB3aGF0IGlzIHRoZSBwb2ludCBv ZiBpbnRyb2R1Y2luZyBSVEVfQUxJR05BUygpIHdoZW4gdGhlIEMNCj4gPiBzdGFuZGFyZCBhbHJl YWR5IGhhcyBhbGlnbmFzKCk/DQo+ID4gPg0KPiA+DQo+ID4gVGhlIGFyZ3VtZW50IEkgbWFkZSwg d2hpY2ggbWF5IG5vdCBiZSBhIHZlcnkgc3Ryb25nIG9uZSwgaXMgaWYgeW91DQo+ID4gbmVlZGVk IHR3byBjb25zdHJ1Y3RzIGZvciBhbGlnbm1lbnQtcmVsYXRlZCBwdXJwb3NlcywgdGhleSBzaG91 bGQNCj4gYm90aA0KPiA+IGhhdmUgdGhlIFJURV8gcHJlZml4LCBmb3IgY29uc2lzdGVuY3kgcmVh c29ucy4NCj4gDQo+IEkgZG9uJ3QgY29uc2lkZXIgc3VjaCBjb25zaXN0ZW5jeSBhIHN0cm9uZyBl bm91Z2ggcmVhc29uIHRvIGludHJvZHVjZSBhDQo+IG1hY3JvIChSVEVfQUxJR05BUygpKSBmb3Ig c29tZXRoaW5nIHRoYXQgZXhpc3RzIDE6MSBpbiB0aGUgQyBzdGFuZGFyZA0KPiAoYWxpZ25hcygp KS4gSXQgZG9lc24ndCBtYWtlIHRoZSBjb2RlIGFueSBjbGVhbmVyLiBBbmQgc2luY2Ugd2UgcmVx dWlyZQ0KPiBDMTEsIGFsaWduYXMoKSB3b3JrcyB3aXRoIGFsbCB0b29sY2hhaW5zLg0KPiANCj4g SSBndWVzcyBpdCdzIGEgbWF0dGVyIG9mIHRhc3RlLiBJbiB0aGlzIGNhc2UgSSB0aGluayBpdCBp cyBzdXBlcmZsdW91cywNCj4gYW5kIHByZWZlciBDMTEgcHVyaXNtLiA6LSkNCj4gDQo+ID4NCj4g PiA+IEkgZG9uJ3Qga25vdyB3aHkgdGhlIGV4aXN0aW5nIGFsaWdubWVudCBtYWNyb3MgYXJlIGxv d2VyIGNhc2UgYW5kDQo+ID4gcHJlZml4ZWQgd2l0aCBkb3VibGUgdW5kZXJzY29yZSAoX19ydGVf bWFjcm8pLCBpbnN0ZWFkIG9mIHVwcGVyIGNhc2UNCj4gPiBsaWtlIG90aGVyIG1hY3JvcyAoUlRF X01BQ1JPKS4gSWYgc29tZW9uZSBjYW4gZXhwbGFpbiB3aHkgdGhhdCBjb2RlDQo+ID4gY29udmVu dGlvbiBpcyBzdGlsbCByZWxldmFudCwgdGhlIG5ldyBtYWNyb3Mgc2hvdWxkIGZvbGxvdyBpdDsN Cj4gPiBvdGhlcndpc2UgZm9sbG93IHRoZSBjb2RlIGNvbnZlbnRpb24gZm9yIG1hY3JvcywgaS5l LiBSVEVfTUFDUk8uDQo+ID4gPg0KPiA+DQo+ID4gQSBsb3QgdGhlIGxvdy1sZXZlbCBEUERLIHN0 dWZmIGxvb2tzIGxpa2UgaXQncyBib3Jyb3dlZCBmcm9tIGVpdGhlcg0KPiA+IExpbnV4IG9yICpC U0Qga2VybmVscy4gX19hbGlnbmVkKDE2KSAoTGludXgsIEZyZWVCU0QpIC0+DQo+ID4gX19ydGVf YWxpZ25lZCgxNikuDQo+IA0KPiBUaGF0IHNlZW1zIGEgdmVyeSBsaWtlbHkgb3JpZ2luLg0KPiBT byB0aGUgcXVlc3Rpb25zIGFyZToNCj4gMS4gRG8gTGludXgga2VybmVsIGNvZGluZyBjb252ZW50 aW9ucyB0cnVtcCBEUERLIENvZGluZyBTdHlsZQ0KPiBndWlkZWxpbmVzPw0KPiAyLiBXZSBtdXN0 IGNoYW5nZSB0aGUgX19ydGVfYWxpZ25lZCgpIG1hY3JvLCBzbyBkbyB3ZSBrZWVwIHVzaW5nIGxv d2VyDQo+IGNhc2UgZm9yIHRoZSBuZXcgbWFjcm8sIG9yIGRvIHdlIHRha2UgdGhlIG9wcG9ydHVu aXR5IHRvIGZpeCBpdCBhbmQNCj4gbWFrZSBpdCB1cHBlciBjYXNlPw0KPiANCj4gSSB0aGluayBt YWNyb3MgZ2VuZXJhbGx5IHNob3VsZCBiZSB1cHBlciBjYXNlLCBzbyB3ZSBzaG91bGQgbWFrZSB0 aGlzDQo+IG9uZSB1cHBlciBjYXNlIHRvby4NCg0KSSBqdXN0IHJlYWxpemVkIHRoYXQgdGhlIG1h Y3JvcyBpbiBydGVfY29tbW9uLmggcmVsYXRlZCB0byBhdHRyaWJ1dGVzIGFyZSBhbGwgbG93ZXIg Y2FzZSBhbmQgIl9fIiBwcmVmaXhlZC4NCkkgZ3Vlc3MgaXQncyBhbiB1bmRvY3VtZW50ZWQgY29u dmVudGlvbiwgc28gd2Ugc2hvdWxkIHByb2JhYmx5IHN0aWNrIHdpdGggaXQuDQoNClRoYXQgd291 bGQgbWFrZSB0aGUgbmV3IG1hY3JvJ3MgbmFtZSAiX19ydGVfYWxpZ24oKSIsIHdoaWNoIGlzIHJl YWxseSBjbG9zZSB0byB0aGUgIl9fcnRlX2FsaWduZWQoKSIgaXQgcmVwbGFjZXMuIEl0IGRvZXNu J3QgYm90aGVyIG1lLCBidXQgbGV0J3Mgc2VlIGlmIGFueW9uZSBjb21wbGFpbnMgYWJvdXQgaXQu DQoNCj4gSWYgd2Ugd2FudCB0byBtYWtlIHNvbWUgbWFjcm9zIGxvd2VyIGNhc2UsIHdlIHNob3Vs ZCBkb2N1bWVudCB3aGVuIGENCj4gbWFjcm8gY2FuIGJlIGxvd2VyIGNhc2UuIEUuZy4gd2UgY291 bGQgYWxsb3cgaW5saW5lIGZ1bmN0aW9uLWxpa2UNCj4gbWFjcm9zICh3aGljaCAtIHVubGlrZSBp bmxpbmUgZnVuY3Rpb25zIC0gY2FuIHRha2UgdHlwZWxlc3MgcGFyYW1ldGVycykNCj4gdG8gYmUg bG93ZXIgY2FzZSwgaWYgdGhleSBzZWVuIGZyb20gdGhlIG91dHNpZGUgYmVoYXZlIGxpa2UgaW5s aW5lDQo+IGZ1bmN0aW9ucywgaS5lLiBpZiB0aGV5IHVzZSBlYWNoIG9mIHRoZWlyIHBhcmFtZXRl cnMgZXhhY3RseSBvbmNlLg0KPiANCj4gPGlyb255Pg0KPiBXZSBzaG91bGQgYWxzbyByZW5hbWUg bGlrZWx5KCkvdW5saWtlbHkoKSB0bw0KPiBSVEVfTElLRUxZKCkvUlRFX1VOTElLRUxZKCkhDQo+ IDwvaXJvbnk+DQo+IA0KPiA+DQo+ID4gPiBQUzogI2RlZmluZSBSVEVfQ0FDSEVfQUxJR04gUlRF X0FMSUdOKFJURV9DQUNIRV9MSU5FX1NJWkUpIGZvcg0KPiA+IGJyZXZpdHkgc3RpbGwgc2VlbXMg bGlrZSBhIGdvb2QgaWRlYSB0byBtZS4NCj4gPiA+DQo+ID4NCj4gPiBSVEVfQ0FDSEVfQUxJR04g b3IgUlRFX0NBQ0hFX0xJTkVfQUxJR04/DQo+ID4NCj4gPiBUaGUgZm9ybWVyIGlzIHNob3J0ZXIs IHRoZSBsYXR0ZXIgY29uc2lzdGVudCB3aXRoDQo+IFJURV9DQUNIRV9MSU5FX1NJWkUuDQo+ID4g SQ0KPiA+IHRoaW5rIEkgcHJlZmVyIHRoZSBmb3JtZXIuDQo+IA0KPiBJIHByZWZlciB0aGUgc2hv cnRlciBvbmUgdG9vLg0KPiANCj4gVGhlIG1lYW5pbmcgb2YgQ0FDSEVfQUxJR04gKHdpdGhvdXQg X0xJTkUpIGlzIHVubGlrZWx5IHRvIGJlDQo+IG1pc3VuZGVyc3Rvb2QuIEJ1dCBDQUNIRV9TSVpF ICh3aXRob3V0IF9MSU5FKSB3b3VsZCBtZWFuIHNvbWV0aGluZyBlbHNlDQo+IHRoYW4gQ0FDSEVf TElORV9TSVpFLg0KPiANCj4gTm8gc3Ryb25nIHByZWZlcmVuY2Ugb24gdGhpcyBuYW1lLCB0aG91 Z2guDQoNClRoZSBjb252ZW5pZW5jZSBtYWNybyBzaG91bGQgcHJvYmFibHkgZm9sbG93IHRoZSBh dHRyaWJ1dGUgbWFjcm8gbmFtaW5nIGNvbnZlbnRpb24gdG9vOg0KI2RlZmluZSBfX3J0ZV9jYWNo ZV9hbGlnbiBfX3J0ZV9hbGlnbihSVEVfQ0FDSEVfTElORV9TSVpFKQ0KDQoNCg==