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 1472C43018; Wed, 9 Aug 2023 10:48:17 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E10BC40DDB; Wed, 9 Aug 2023 10:48:16 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 5EFD3400D6; Wed, 9 Aug 2023 10:48:15 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 3A07020433; Wed, 9 Aug 2023 10:48:15 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: C11 atomics adoption blocked Date: Wed, 9 Aug 2023 10:48:09 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87AD8@smartserver.smartshare.dk> In-Reply-To: <20230808204944.GA3335@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: C11 atomics adoption blocked Thread-Index: AdnKOd1nMcKRpFXDQoiCZ+1MkTs44gAWK+dA References: <20230808175303.GA11006@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <20230808191949.GB18244@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <98CBD80474FA8B44BF855DF32C47DC35D87AD6@smartserver.smartshare.dk> <20230808204944.GA3335@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Tyler Retzlaff" Cc: "Bruce Richardson" , , , , , 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 PiBGcm9tOiBUeWxlciBSZXR6bGFmZiBbbWFpbHRvOnJvcmV0emxhQGxpbnV4Lm1pY3Jvc29mdC5j b21dDQo+IFNlbnQ6IFR1ZXNkYXksIDggQXVndXN0IDIwMjMgMjIuNTANCj4gDQo+IE9uIFR1ZSwg QXVnIDA4LCAyMDIzIGF0IDEwOjIyOjA5UE0gKzAyMDAsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0K PiA+ID4gRnJvbTogVHlsZXIgUmV0emxhZmYgW21haWx0bzpyb3JldHpsYUBsaW51eC5taWNyb3Nv ZnQuY29tXQ0KPiA+ID4gU2VudDogVHVlc2RheSwgOCBBdWd1c3QgMjAyMyAyMS4yMA0KPiA+ID4N Cj4gPiA+IE9uIFR1ZSwgQXVnIDA4LCAyMDIzIGF0IDA3OjIzOjQxUE0gKzAxMDAsIEJydWNlIFJp Y2hhcmRzb24gd3JvdGU6DQo+ID4gPiA+IE9uIFR1ZSwgQXVnIDA4LCAyMDIzIGF0IDEwOjUzOjAz QU0gLTA3MDAsIFR5bGVyIFJldHpsYWZmIHdyb3RlOg0KPiA+ID4gPiA+IEhpIGZvbGtzLA0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gTW92aW5nIHRoaXMgZGlzY3Vzc2lvbiB0byB0aGUgZGV2IG1haWxp bmcgbGlzdCBmb3IgYnJvYWRlcg0KPiBjb21tZW50Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVW5m b3J0dW5hdGVseSwgd2UndmUgaGl0IGEgcm9hZGJsb2NrIHdpdGggaW50ZWdyYXRpbmcgQzExDQo+ IGF0b21pY3MNCj4gPiA+ID4gPiBmb3IgRFBESy4gIFRoZSBtYWluIGlzc3VlIGlzIHRoYXQgR05V IEMrKyBwcmlvciB0byAtc3RkPWMrKzIzDQo+ID4gPiBleHBsaWNpdGx5DQo+ID4gPiA+ID4gY2Fu bm90IGJlIGludGVncmF0ZWQgd2l0aCBDMTEgc3RkYXRvbWljLmguICBCYXNpY2FsbHksIHlvdSBj YW4ndA0KPiA+ID4gaW5jbHVkZQ0KPiA+ID4gPiA+IHRoZSBoZWFkZXIgYW5kIHlvdSBjYW4ndCB1 c2UgYF9BdG9taWMnIHR5cGUgc3BlY2lmaWVyIHRvIGRlY2xhcmUNCj4gPiA+IGF0b21pYw0KPiA+ ID4gPiA+IHR5cGVzLiBUaGlzIGlzIG5vdCBhIHByb2JsZW0gd2l0aCBMTFZNIG9yIE1TVkMgYXMg dGhleSBib3RoDQo+IGFsbG93DQo+ID4gPiA+ID4gaW50ZWdyYXRpb24gd2l0aCBDMTEgc3RkYXRv bWljLmgsIGJ1dCBnb2luZyBmb3J3YXJkIHdpdGggQzExDQo+IGF0b21pY3MNCj4gPiA+ID4gPiB3 b3VsZCBicmVhayB1c2luZyBEUERLIGluIEMrKyBwcm9ncmFtcyB3aGVuIGJ1aWxkaW5nIHdpdGgg R05VDQo+IGcrKy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEVzc2VudGlhbGx5IHlvdSBjYW5ub3Qg Y29tcGlsZSB0aGUgZm9sbG93aW5nIHdpdGggZysrLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAj aW5jbHVkZSA8c3RkYXRvbWljLmg+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pIHsgcmV0dXJuIDA7IH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ ICAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGF0b21pYy5jcHA6MToNCj4gPiA+ID4gPiAgIC91c3Iv bGliL2djYy94ODZfNjQtcGMtY3lnd2luLzExL2luY2x1ZGUvc3RkYXRvbWljLmg6NDA6OToNCj4g ZXJyb3I6DQo+ID4gPiA+ID4gICDigJhfQXRvbWlj4oCZIGRvZXMgbm90IG5hbWUgYSB0eXBlDQo+ ID4gPiA+ID4gICAgICA0MCB8IHR5cGVkZWYgX0F0b21pYyBfQm9vbCBhdG9taWNfYm9vbDsNCj4g PiA+ID4gPg0KPiA+ID4gPiA+ICAgLi4uIG1vcmUgZXJyb3JzIG9mIHNhbWUgLi4uDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBJdCdzIGFsc28gYWNrbm93bGVkZ2VkIGFzIHNvbWV0aGluZyBrbm93biBh bmQgd29uJ3QgZml4IGJ5IEdOVQ0KPiBnKysNCj4gPiA+ID4gPiBtYWludGFpbmVycy4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dp P2lkPTYwOTMyDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBHaXZlbiB0aGUgdGltZWZyYW1lIEkgd291 bGQgbGlrZSB0byBwcm9wb3NlIHRoZSBtaW5pbWFsbHkNCj4gaW52YXNpdmUsDQo+ID4gPiA+ID4g bG93ZXN0IHJpc2sgc29sdXRpb24gYXMgZm9sbG93cy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IDEu ICBBZG9wdCBzdGRhdG9taWMuaCBmb3IgYWxsIFdpbmRvd3MgdGFyZ2V0cywgbGVhdmUgYWxsDQo+ IExpbnV4L0JTRA0KPiA+ID4gdGFyZ2V0cw0KPiA+ID4gPiA+ICAgICB1c2luZyBHQ0MgYnVpbHRp biBDKysxMSBtZW1vcnkgbW9kZWwgYXRvbWljcy4NCj4gPiA+ID4gPiAyLiAgSW50cm9kdWNlIGEg bWFjcm8gdGhhdCBhbGxvd3MgX0F0b21pYyB0eXBlIHNwZWNpZmllciB0byBiZQ0KPiA+ID4gYXBw bGllZCB0bw0KPiA+ID4gPiA+ICAgICBmdW5jdGlvbiBwYXJhbWV0ZXIsIHN0cnVjdHVyZSBmaWVs ZCB0eXBlcyBhbmQgdmFyaWFibGUNCj4gPiA+IGRlY2xhcmF0aW9ucy4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+ICAgICAqIFRoZSBtYWNybyB3b3VsZCBleHBhbmQgZW1wdHkgZm9yIExpbnV4L0JTRCB0 YXJnZXRzLg0KPiA+ID4gPiA+ICAgICAqIFRoZSBtYWNybyB3b3VsZCBleHBhbmQgdG8gQzExIF9B dG9taWMga2V5d29yZCBmb3IgV2luZG93cw0KPiA+ID4gdGFyZ2V0cy4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IDMuICBJbnRyb2R1Y2UgYmFzaWMgbWFjcm8gdGhhdCBhbGxvd3MgX19hdG9taWNfeHh4 ICBmb3INCj4gbm9ybWFsaXplZA0KPiA+ID4gdXNlDQo+ID4gPiA+ID4gICAgIGludGVybmFsIHRv IERQREsuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAgKiBUaGUgbWFjcm8gd291bGQgbm90IGJl IGRlZmluZWQgZm9yIExpbnV4L0JTRCB0YXJnZXRzLg0KPiA+ID4gPiA+ICAgICAqIFRoZSBtYWNy byB3b3VsZCBleHBhbmQgX19hdG9taWNfeHh4IHRvIGNvcnJlc3BvbmRpbmcNCj4gPiA+IHN0ZGF0 b21pYy5oDQo+ID4gPiA+ID4gICAgICAgYXRvbWljX3h4eCBvcGVyYXRpb25zIGZvciBXaW5kb3dz IHRhcmdldHMuDQo+ID4gPiA+ID4NCj4gPg0KPiA+IFJlZ2FyZGluZyBuYW1pbmcgb2YgdGhlc2Ug bWFjcm9zIChzdWdnZXN0ZWQgaW4gMi4gYW5kIDMuKSwgdGhleSBzaG91bGQNCj4gcHJvYmFibHkg YmVhciB0aGUgcnRlXyBwcmVmaXggaW5zdGVhZCBvZiBvdmVybGFwcGluZyBleGlzdGluZyBuYW1l cywgc28NCj4gYXBwbGljYXRpb25zIGNhbiBhbHNvIHVzZSB0aGVtIGRpcmVjdGx5Lg0KPiA+DQo+ ID4gRS5nLjoNCj4gPiAjZGVmaW5lIHJ0ZV9hdG9taWMgZm9yIF9BdG9taWMgb3Igbm90aGluZywN Cj4gPiAjZGVmaW5lIHJ0ZV9hdG9taWNfZmV0Y2hfYWRkKCkgZm9yIGF0b21pY19mZXRjaF9hZGQo KSBvcg0KPiBfX2F0b21pY19mZXRjaF9hZGQoKSwgYW5kDQo+ID4gI2RlZmluZSBSVEVfTUVNT1JZ X09SREVSX1NFUV9DU1QgZm9yIG1lbW9yeV9vcmRlcl9zZXFfY3N0IG9yDQo+IF9fQVRPTUlDX1NF UV9DU1QuDQo+ID4NCj4gPiBNYXliZSB0aGF0IGlzIHdoYXQgeW91IG1lYW50IGFscmVhZHkuIEkn bSBub3Qgc3VyZSBvZiB0aGUgc2NvcGUgYW5kDQo+IGRldGFpbHMgb2YgeW91ciBzdWdnZXN0aW9u IGhlcmUuDQo+IA0KPiBJJ20gc2h5IHRvIGRvIGFueXRoaW5nIGluIHRoZSBydGVfIG5hbWVzcGFj ZSBiZWNhdXNlIEkgZG9uJ3Qgd2FudCB0bw0KPiBmb3JtYWxpemUgaXQgYXMgYW4gQVBJLg0KPiAN Cj4gSSB3YXMgZW52aXNpb25pbmcgdGhlIGZvbGxvd2luZy4NCj4gDQo+IEludGVybmFsbHkgRFBE SyBjb2RlIGp1c3QgdXNlcyBfX2F0b21pY19mZXRjaF9hZGQgZGlyZWN0bHksIHRoZSBtYWNyb3MN Cj4gYXJlIHByb3ZpZGVkIGZvciBXaW5kb3dzIHRhcmdldHMgdG8gZXhwYW5kIHRvIF9fYXRvbWlj X2ZldGNoX2FkZC4NCj4gDQo+IEV4dGVybmFsbHkgRFBESyBhcHBsaWNhdGlvbnMgdGhhdCBkb24n dCBjYXJlIGFib3V0IGJlaW5nIHBvcnRhYmxlIG1heQ0KPiB1c2UgX19hdG9taWNfZmV0Y2hfYWRk IChCU0QvTGludXgpIG9yIGF0b21pY19mZXRjaF9hZGQgKFdpbmRvd3MpDQo+IGRpcmVjdGx5Lg0K PiANCj4gRXh0ZXJuYWxseSBEUERLIGFwcGxpY2F0aW9ucyB0aGF0IGNhcmUgdG8gYmUgcG9ydGFi bGUgbWF5IGRvIHdoYXQgaXMNCj4gZG9uZSBJbnRlcm5hbGx5IGFuZCA8PHVzZT4+IHRoZSBfX2F0 b21pY19mZXRjaF9hZGQgZGlyZWN0bHkuIEJ5DQo+IGluY2x1ZGluZyBzYXkgcnRlX3N0ZGF0b21p Yy5oIGluZGlyZWN0bHkgKFdpbmRvd3MpIGdldHMgdGhlIG1hY3Jvcw0KPiBleHBhbmRlZCB0byBh dG9taWNfZmV0Y2hfYWRkIGFuZCBmb3IgQlNEL0xpbnV4IGl0J3MgYSBub29wIGluY2x1ZGUuDQo+ IA0KPiBCYXNpY2FsbHkgSSdtIHBsYWNpbmcgYSBsaXR0bGUgdWdseSBpbnRvIFdpbmRvd3MgYnVp bHQgY29kZSBhbmQgaW4gdHJhZGUNCj4gd2UgZG9uJ3QgZW5kIHVwIHdpdGggYSBidW5jaCBvZiBy dGVfIEFQSXMgdGhhdCB3ZXJlIHN0cm9uZ2x5IG9iamVjdGVkIHRvDQo+IHByZXZpb3VzbHkuDQo+ IA0KPiBJdCdzIGEgY29tcHJvbWlzZS4NCg0KT0ssIHdlIHByb2JhYmx5IG5lZWQgdG8gb2ZmZXIg YSBwdWJsaWMgaGVhZGVyIGZpbGUgdG8gd3JhcCB0aGUgYXRvbWljcywgdXNpbmcgZWl0aGVyIG5h bWVzIHByZWZpeGVkIHdpdGggcnRlXyBvciBuYW1lcyBzaW1pbGFyIHRvIHRoZSBnY2MgYnVpbHRp biBhdG9taWNzLg0KDQpJIGd1ZXNzIHRoZSBvYmplY3Rpb25zIHdlcmUgYmFzZWQgb24gdGhlIGFz c3VtcHRpb24gdGhhdCB3ZSB3ZXJlIHN3aXRjaGluZyB0byBDMTEgYXRvbWljcyB3aXRoIERQREsg MjMuMTEsIHNvIHRoZSBydGVfIHByZWZpeGVkIGF0b21pYyBBUElzIHdvdWxkIGJlIHZlcnkgc2hv cnQgbGl2ZWQgKERQREsgMjMuMDcgdG8gMjMuMTEgb25seSkuIEJ1dCB3aXRoIHRoaXMgbmV3IGlu Zm9ybWF0aW9uIGFib3V0IEdOVSBDKysgaW5jb21wYXRpYmlsaXR5LCB0aGF0IHNlZW1zIG5vdCB0 byBiZSB0aGUgY2FzZSwgc28gdGhlIG5hbWluZyBkaXNjdXNzaW9uIGNhbiBiZSByZW9wZW5lZC4N Cg0KSWYgd2UgZG9uJ3QgaW50cm9kdWNlIHN1Y2ggYSB3cmFwcGVyIGhlYWRlciwgYWxsIHBvcnRh YmxlIGNvZGUgbmVlZHMgdG8gc3Vycm91bmQgdGhlIHVzZSBvZiBhdG9taWNzIHdpdGggI2lmZGVm IFVTRV9TVERBVE9NSUNfSC4NCg0KQlRXOiBDYW4gdGhlIGNvbXBpbGVycyB0aGF0IHVuZGVyc3Rh bmQgYm90aCBidWlsdGluIGF0b21pY3MgYW5kIEMxMSBzdGRhdG9taWNzLmggaGFuZGxlIGNvZGUg d2l0aCAjZGVmaW5lIF9fYXRvbWljX2ZldGNoX2FkZCBhdG9taWNfZmV0Y2hfYWRkIGFuZCAjZGVm aW5lIF9fQVRPTUlDX1NFUV9DU1QgbWVtb3J5X29yZGVyX3NlcV9jc3Q/IElmIG5vdCwgdGhlbiB3 ZSBuZWVkIHRvIHVzZSBydGVfIHByZWZpeGVkIGF0b21pY3MuDQoNCkFuZCB3aGF0IGFib3V0IEMr KyBhdG9taWNzLi4uIERvIHdlIHdhbnQgKG9yIG5lZWQ/KSBhIHRoaXJkIHZhcmlhbnQgdXNpbmcg QysrIGF0b21pY3MsIGUuZy4gImF0b21pYzxpbnQ+IHg7IiBpbnN0ZWFkIG9mICJfQXRvbWljIGlu dCB4OyI/IChJIGhvcGUgbm90ISkgRm9yIHJlZmVyZW5jZSwgdGhlICJhdG9taWNfaW50IiB0eXBl IGlzICJfQXRvbWljIGludCIgaW4gQywgYnV0ICJzdGQ6OmF0b21pYzxpbnQ+IiBpbiBDKysuDQoN CkMrKzIzIHByb3ZpZGVzIHRoZSBDMTEgY29tcGF0aWJpbGl0eSBtYWNybyAiX0F0b21pYyhUKSIs IHdoaWNoIG1lYW5zICJfQXRvbWljIFQiIGluIEMgYW5kICJzdGQ6OmF0b21pYzxUPiIgaW4gQysr LiBQZXJoYXBzIHdlIGNhbiBzb21ld2hhdCByZWx5IG9uIHRoaXMsIGFuZCB1cGRhdGUgb3VyIGNv ZGluZyBzdGFuZGFyZHMgdG8gcmVxdWlyZSB1c2luZyBlLmcuICJfQXRvbWljKGludCkiIGZvciBh dG9taWMgdHlwZXMsIGFuZCBkaXNhbGxvdyB1c2luZyAiX0F0b21pYyBpbnQiLg0KDQoNCj4gDQo+ ID4NCj4gPiA+ID4gPiA0LiAgV2UgcmUtZXZhbHVhdGUgYWRvcHRpb24gb2YgQzExIGF0b21pY3Mg YW5kIGNvcnJlc3BvbmRpbmcNCj4gPiA+IHJlcXVpcmVtZW50IG9mDQo+ID4gPiA+ID4gICAgIC1z dGQ9YysrMjMgY29tcGxpYW50IGNvbXBpbGVyIGF0IHRoZSBuZXh0IGxvbmcgdGVybSBBQkkNCj4g cHJvbWlzZQ0KPiA+ID4gcmVsZWFzZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFE6IFdoeSBub3Qg ZGVmaW5lIG1hY3JvcyB0aGF0IGxvb2sgbGlrZSB0aGUgc3RhbmRhcmQgYW5kIGV4cGFuZA0KPiA+ ID4gdGhvc2UNCj4gPiA+ID4gPiAgICBuYW1lcyB0byBidWlsdGlucz8NCj4gPiA+ID4gPiBBOiBC ZWNhdXNlIGludHJvZHVjaW5nIHRoZSBuYW1lcyBpcyBhIHZpb2xhdGlvbiBvZiB0aGUgQw0KPiBz dGFuZGFyZCwNCj4gPiA+IHdlDQo+ID4gPiA+ID4gICAgY2FuJ3QgLyBzaG91bGRuJ3QgZGVmaW5l IGF0b21pY194eHggbmFtZXMgaW4gdGhlIGFwcGxpY2F0aW9ucw0KPiA+ID4gbmFtZXNwYWNlDQo+ ID4gPiA+ID4gICAgYXMgd2UgYXJlIG5vdCBgYHRoZSBpbXBsZW1lbnRhdGlvbicnLg0KPiA+ID4g PiA+IEE6IEJlY2F1c2UgdGhlIGJ1aWx0aW5zIG9mZmVyIGEgc3Vic2V0IG9mIHN0ZGF0b21pYy5o IGNhcGFiaWxpdHkNCj4gPiA+IHRoZXkNCj4gPiA+ID4gPiAgICBjYW4gb25seSBvcGVyYXRlIG9u IHBvaW50ZXIgYW5kIGludGVnZXIgdHlwZXMuIElmIHdlDQo+IHByZXNlbnRlZA0KPiA+ID4gdGhl DQo+ID4gPiA+ID4gICAgc3RkYXRvbWljLmggbmFtZXMgdGhlcmUgbWlnaHQgYmUgc29tZSBjb25m dXNpb24gYXR0ZW1wdGluZyB0bw0KPiA+ID4gcGVyZm9ybQ0KPiA+ID4gPiA+ICAgIGF0b21pYyBv cGVyYXRpb25zIG9uIGUuZy4gX0F0b21pYyBzcGVjaWZpZWQgc3RydWN0IHdvdWxkIGZhaWwNCj4g YnV0DQo+ID4gPiBvbmx5DQo+ID4gPiA+ID4gICAgb24gQlNEL0xpbnV4IGJ1aWxkcyAod2l0aCB0 aGUgcHJvcG9zZWQgc29sdXRpb24pLg0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IE91dCBv ZiBpbnRlcmVzdCwgcmF0aGVyIHRoYW4gc3BsaXR0aW5nIG9uIFdpbmRvd3MgdnMgKm5peCBPUyBm b3INCj4gdGhlDQo+ID4gPiA+IGF0b21pY3MsIHdoYXQgd291bGQgaXQgbG9vayBsaWtlIGlmIHdl IHNwbGl0IGJlaGF2aW91ciBiYXNlZCBvbiBDDQo+IHZzDQo+ID4gPiBDKysNCj4gPiA+ID4gdXNl PyBXb3VsZCBzdWNoIGEgdGhpbmcgd29yaz8NCj4gPiA+DQo+ID4gPiBVbmZvcnR1bmF0ZWx5IG5v LiBUaGUgcmVhc29uIGlzIGJpbmFyeSBwYWNrYWdlcyBhbmQgd2UgZG9uJ3Qga25vdw0KPiB3aGlj aA0KPiA+ID4gdG9vbGNoYWluIGNvbnN1bWVzIHRoZW0uDQo+ID4gPg0KPiA+ID4gRm9yIGV4YW1w bGUuDQo+ID4gPg0KPiA+ID4gQXNzdW1lIHdlIGJ1aWxkIGxpYmVhbC1kZXYgcGFja2FnZSB3aXRo IGdjYy4gV2UnbGwgZW5kIHVwIHdpdGgNCj4gaGVhZGVycw0KPiA+ID4gdGhhdCBjb250YWluIHRo ZSBfQXRvbWljIHNwZWNpZmllci4NCj4gPiA+DQo+ID4gPiBOb3cgd2Ugd3JpdGUgYW4gYXBwbGlj YXRpb24gYW5kIGJ1aWxkIGl0IHdpdGgNCj4gPiA+ICAgKiBnY2MsIHN1cmUgd29ya3MgZmluZSBp dCBrbm93cyBhYm91dCBfQXRvbWljDQo+ID4gPiAgICogY2xhbmcsIHNhbWUgYXMgZ2NjDQo+ID4g PiAgICogY2xhbmcrKywgd29ya3MgYnV0IGlzIGltcGxlbWVudGF0aW9uIGRldGFpbCB0aGF0IGl0 IHdvcmtzIChpdA0KPiBpc24ndA0KPiA+ID4gc3RhbmRhcmQpDQo+ID4gPiAgICogZysrLCBkb2Vz IG5vdCB3b3JrDQo+ID4gPg0KPiA+ID4gU28gdGhlIExDRCBpcyBidWlsZCBwYWNrYWdlIHdpdGhv dXQgX0F0b21pYyBpLmUuIHdoYXQgd2UgYWxyZWFkeQ0KPiBoYXZlDQo+ID4gPiB0b2RheQ0KPiA+ ID4gb24gQlNEL0xpbnV4Lg0KPiA+ID4NCj4gPg0KPiA+IEkgYWdyZWUgd2l0aCBUeWxlcidzIGNv bmNlcHR1YWwgc29sdXRpb24gYXMgcHJvcG9zZWQgaW4gdGhlIGZpcnN0DQo+IGVtYWlsIGluIHRo aXMgdGhyZWFkLCBidXQgd2l0aCBhIHR3aXN0Og0KPiA+DQo+ID4gSW5zdGVhZCBvZiBzcGxpdHRp bmcgV2luZG93cyB2cy4gTGludXgvQlNELCB0aGUgc3BsaXQgc2hvdWxkIGJlIGENCj4gYnVpbGQg dGltZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciwgZS5nLiBVU0VfU1REQVRPTUlDX0guIFRoaXMg d291bGQgYmUNCj4gZGVmYXVsdCB0cnVlIGZvciBXaW5kb3dzLCBhbmQgZGVmYXVsdCBmYWxzZSBm b3IgTGludXgvQlNEIGRpc3Ryb3MgLSBpLmUuDQo+IGJlaGF2ZSBleGFjdGx5IGFzIFR5bGVyIGRl c2NyaWJlZC4NCj4gDQo+IEludGVyZXN0aW5nLCBzbyB0aGUgaW50ZW50aW9uIGhlcmUgaXMgZGVm YXVsdCBzdGRhdG9taWMgb2ZmIGZvcg0KPiBCU0QvTGludXggYW5kIGRlZmF1bHQgb24gZm9yIFdp bmRvd3MuIEJpbmFyeSBwYWNrYWdlcnMgY291bGQgdGhlbiBjaG9vc2UNCj4gaWYgdGhleSB3YW50 ZWQgdG8gYnVpbGQgYmluYXJ5IHBhY2thZ2VzIGluY29tcGF0aWJsZSB3aXRoIGcrKyA8IC0NCj4g c3RkPWMrKzIzDQo+IGJ5IG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgYW5kIGVuYWJsaW5nIHN0ZGF0 b21pYy4NCj4gDQo+IEkgZG9uJ3Qgb2JqZWN0IHRvIHRoaXMgaWYgbm9vbmUgZWxzZSBkb2VzIGFu ZCBpdCBkb2VzIHNlZW0gdG8gZ2l2ZSBtb3JlDQo+IG9wdGlvbnMgdG8gcGFja2FnZXJzIGFuZCB1 c2VycyB0byBkZWNpZGUgZm9yIHRoZWlyIGRpc3RyaWJ1dGlvbg0KPiBjaGFubmVscy4gT25lIG5v dGUgSSdsbCBtYWtlIGlzIHRoYXQgd2Ugd291bGQgb25seSBjb21taXQgdG8gdGVzdGluZyB0aGUN Cj4gZGVmYXVsdHMgaW4gdGhlIENJIHRvIGF2b2lkIGJsb3dpbmcgb3V0IHRoZSB0ZXN0IG1hdHJp eCB3aXRoIG5vbi1kZWZhdWx0DQo+IG9wdGlvbnMuDQoNClllcywgSSB0aGluayBldmVyeW9uZSBh Z3JlZXMgYWJvdXQgdGhpcyBmb3IgQ0kuDQoNCkFub3RoZXIgdGhpbmc6IEkganVzdCBsZWFybmVk IHRoYXQgRnJlZUJTRCB1c2VzIENMQU5HIGFzIGl0cyBkZWZhdWx0IGNvbXBpbGVyOg0KaHR0cHM6 Ly9kb2NzLmZyZWVic2Qub3JnL2VuL2Jvb2tzL2RldmVsb3BlcnMtaGFuZGJvb2svdG9vbHMvI3Rv b2xzLWNvbXBpbGluZw0KDQpTbyBzaG91bGQgdGhlIGRlZmF1bHQgYmUgV2luZG93cy9CU0QgdXNl IHN0ZGF0b21pYy5oLCBhbmQgb25seSBMaW51eCB1c2luZyBHQ0MgYnVpbHRpbiBhdG9taWNzPyBX ZSBhcmUgdXNpbmcgInRoZSBkZWZhdWx0IGNvbXBpbGVyIGluIHRoZSBkaXN0cm8iIGFzIHRoZSBh cmd1bWVudCwgc28gSSB0aGluayB5ZXMuDQoNCj4gDQo+ID4NCj4gPiBIYXZpbmcgYSBidWlsZCB0 aW1lIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHdvdWxkIGFsc28gYWxsb3cgdGhlIHVzZQ0KPiBv ZiBzdGRhdG9taWMuaCBmb3IgYXBwbGljYXRpb25zIHRoYXQgYnVpbGQgRFBESyBmcm9tIHNjcmF0 Y2gsIGluc3RlYWQgb2YNCj4gdXNpbmcgdGhlIERQREsgaW5jbHVkZWQgd2l0aCB0aGUgZGlzdHJv LiBUaGlzIGNvdWxkIGJlIEMgYXBwbGljYXRpb25zDQo+IGJ1aWx0IHdpdGggdGhlIGRpc3Rybydz IEMgY29tcGlsZXIgb3Igc29tZSBvdGhlciBDIGNvbXBpbGVyLCBvciBDKysNCj4gYXBwbGljYXRp b25zIGJ1aWx0IHdpdGggYSBuZXdlciBHTlUgQysrIGNvbXBpbGVyIG9yIENMQU5HKysuDQo+ID4N Cj4gPiBJdCBtaWdodCBhbHNvIGFsbG93IGJ1aWxkaW5nIEMrKyBhcHBsaWNhdGlvbnMgdXNpbmcg YW4gb2xkIEdOVSBDKysNCj4gY29tcGlsZXIgb24gV2luZG93cyAod2hlcmUgdGhlIGFwcGxpY2F0 aW9uIGlzIGJ1aWx0IHdpdGggRFBESyBmcm9tDQo+IHNjcmF0Y2gpLiBOb3QgcmVhbGx5IGFuIGFy Z3VtZW50LCBqdXN0IG1lbnRpb25pbmcgaXQuDQo+IA0KPiBZZXMsIGl0IHNlZW1zIGxpa2UgdGhp cyB3b3VsZCBzb2x2ZSB0aGF0IHByb2JsZW0gaW4gdGhhdCBvbiBXaW5kb3dzIHRoZQ0KPiBkZWZh dWx0IGNvdWxkIGJlIHNpbWlsYXJseSBvdmVycmlkZGVuIGFuZCB0dXJuIHN0ZGF0b21pYyBvZmYg aWYgYnVpbGRpbmcNCj4gd2l0aCBHTlUgZysrIG9uIFdpbmRvd3MuDQo+IA0KPiA+DQo+ID4gPiA+ IEFsc28sIGp1c3Qgd29uZGVyaW5nIGFib3V0IHRoZSBzY29wZSBvZiB0aGUgY2hhbmdlcyBoZXJl LiBIb3cgbWFueQ0KPiA+ID4gaGVhZGVyDQo+ID4gPiA+IGZpbGVzIGFyZSBhZmZlY3RlZCB3aGVy ZSB3ZSBwdWJsaWNseSBleHBvc2UgYXRvbWljcz8NCj4gPiA+DQo+ID4gPiBTbyB3aGF0IGlzIGlt cGFjdGVkIGlzIHJvdWdobHkgd2hhdCBpcyBpbiBteSB2NCBzZXJpZXMgdGhhdCByYWlzZWQNCj4g bXkNCj4gPiA+IGF0dGVudGlvbiB0byB0aGUgaXNzdWUuDQo+ID4gPg0KPiA+ID4gaHR0cHM6Ly9w YXRjaHdvcmsuZHBkay5vcmcvcHJvamVjdC9kcGRrL2xpc3QvP3Nlcmllcz0yOTA4Ng0KPiA+ID4N Cj4gPiA+IFdlIHJlYWxseSBjYW4ndCBzb2x2ZSB0aGUgcHJvYmxlbSBieSBub3QgdGFsa2luZyBh Ym91dCBhdG9taWNzIGluDQo+IHRoZQ0KPiA+ID4gQVBJIGJlY2F1c2Ugb2YgdGhlIHBlcmZvcm1h bmNlIHJlcXVpcmVtZW50cyBvZiB0aGUgQVBJcyBpbiBxdWVzdGlvbi4NCj4gPiA+DQo+ID4gPiBl LmcuIEl0IGlzIHN0dWZmIGxpa2UgcnRlX3J3bG9jaywgcnRlX3NwaW5sb2NrLCBydGVfcGF1c2Ug YWxsIHN0dWZmDQo+IHRoYXQNCj4gPiA+IGNhbid0IGhhdmUgYWRkaXRpb25hbCBsZXZlbHMgb2Yg aW5kaXJlY3Rpb24gYmVjYXVzZSBvZiB0aGUgb3ZlcmhlYWQNCj4gPiA+IGludm9sdmVkLg0KPiA+ DQo+ID4gSSBzdHJvbmdseSBzdXBwb3J0IHRoaXMgcG9zaXRpb24uIEhpZGluZyBhbGwgYXRvbWlj IG9wZXJhdGlvbnMgaW4gbm9uLQ0KPiBpbmxpbmUgZnVuY3Rpb25zIHdpbGwgaGF2ZSBhbiB1bmFj Y2VwdGFibGUgcGVyZm9ybWFuY2UgaW1wYWN0ISAoSSBrbm93DQo+IEJydWNlIHdhc24ndCBzdWdn ZXN0aW5nIHRoaXMgd2l0aCBoaXMgcXVlc3Rpb247IGJ1dCBzb21lb25lIG9uY2UNCj4gc3VnZ2Vz dGVkIHRoaXMgb24gYSB0ZWNoYm9hcmQgbWVldGluZywgYXJndWluZyB0aGF0IHRoZSBvdmVyaGVh ZCBvZg0KPiBjYWxsaW5nIGEgZnVuY3Rpb24gaXMgdmVyeSBzbWFsbC4pDQo+IA0KPiBZZWFoLCBJ IHRoaW5rIEJydWNlIGlzIGF3YXJlIGJ1dCB3YXMganVzdCBjdXJpb3VzLg0KPiANCj4gVGhlIG92 ZXJoZWFkIG9mIGNhbGxpbmcgYSBmdW5jdGlvbiBpcyBpbiBmYWN0IG5vdC1zbWFsbCBvbiBwb3J0 cyB0aGF0DQo+IGhhdmUNCj4gc2VjdXJpdHkgZmVhdHVyZXMgc2ltaWxhciB0byBXaW5kb3dzIGNv bnRyb2wgZmxvdyBndWFyZCAod2hpY2ggaXMNCj4gcmVxdWlyZWQNCj4gdG8gYmUgZW5hYmxlZCBm b3Igc29tZSBvZiBvdXIgY3VzdG9tZXJzIGluY2x1ZGluZyBvdXIgb3duIChNaWNyb3NvZnQpDQo+ IHNoaXBwZWQgY29kZSkuDQoNClZlcnkgZ29vZCB0byBrbm93LiBXZSBzaG91bGQga2VlcCB0aGlz IGluIG1pbmQgd2hlbiBzb21lb25lIHN1Z2dlc3RzIGRlLWlubGluaW5nIGZhc3QgcGF0aCBmdW5j dGlvbnMuDQoNCkFwcHJveGltYXRlbHkgaG93IG1hbnkgQ1BVIGN5Y2xlcyBkb2VzIGl0IGNvc3Qg dG8gY2FsbCBhIHNpbXBsZSBmdW5jdGlvbiB3aXRoIHRoaXMgc2VjdXJpdHkgZmVhdHVyZSBlbmFi bGVkICh2cy4gaW5saW5pbmcgdGhlIGZ1bmN0aW9uKT8NCg0KPiANCj4gPg0KPiA+ID4NCj4gPiA+ ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiAvQnJ1Y2UNCg==