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 1DFDBA0C3F; Fri, 16 Apr 2021 02:57:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 846841624BA; Fri, 16 Apr 2021 02:57:22 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2070.outbound.protection.outlook.com [40.107.92.70]) by mails.dpdk.org (Postfix) with ESMTP id C154840140 for ; Fri, 16 Apr 2021 02:57:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jhkCb9u6Y/+f9CFv+oRDbj7ELbpGWpTR29IZtgZ/Q1PSWbCW3cJ1DyztnPc2wvdmmtEfQtABYN895syaLoMI2K3rqiIF1NZB6AS2UgDg/YNCpwpF29IyxHY2329u2PJo7THyEkUZPWORV+9/OqXKDZK8QS3h4Hv7+T5eO8KXCpzwNTDCBKZLqeGcjbBEs8DzvPaDOcVffhe70hugBA2uRr7nUc9pcBIEhQnRjKxHAlHxtJBsduVwENehpDLNpCLZTneybjH6y4/CD5lNcwWIMLHkqMc9Il1CYMRlqjDGebdhIYE2lp6D7PnEwBmgUiV7p/BNIXPkIWR0h74BNuIBqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Cn4AIs7S0/0oDuoaV5QvNVgjpK0G5RoC+ndCgiCPPsE=; b=SRXtwMyt1FRAsFSD2DcW220BgJ5Reryu99Z+xOVos9MvH5GDmKAGJnXaWl+ATcMgC94LQpCGa5u8lRxEuxu6IhCIchpK99A935YSGY2Q23Fp6FiZTTBvVfwhUSMHtZL+pe6NXj1QAbXFbSmHS0EZYnhzYTwSSrj3Lm9DGnN8uEDw7rnA3wwveYn7XTvzP+fmFyUR73FwfEepegiXG3/3bAUxSuEk5HZxxcaunQyar5ZPxQbglfaa3dFYgCjELF1K2PY4sbQCW3l9E7eiPrP+Z1EnwYKpDlcF56fg9qYBNT3qG1a7YokdgUKEhQhUJ2MTHMQdGhBYE53yWKl6EVotlA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Cn4AIs7S0/0oDuoaV5QvNVgjpK0G5RoC+ndCgiCPPsE=; b=Lf0pBrOD8+mDATYcKuuk6VEePv6y3DZkrQC726aNEEhDWdSaG0w/P/d9OjgG0NEfVB0gGPGQC2udE6HTDUJj9OX52AV1hNksXjoQZk2aDy7w6lQTTxDsuFeqBeD1YA6cNUhvpL+vOMkL2Cxpv7M+XejA1afWWCK4pN2Xtwp5WpnvxLGnR5pSHNm/j4Hh5l0CSh3V72D4madFU6wsS5bMG6x2gdiec+ruHOP6BIO/69id28eTsYUWHNQokY9YgO1QOplAowpgObCiiso5IJwfIDM7glyT+s5mjoHkxknpe3gWDE6+g8+zeh1OfUlTxgXwbe7Eiy0bggCG1z4pUvafvA== Received: from BL0PR12MB2577.namprd12.prod.outlook.com (2603:10b6:207:42::20) by MN2PR12MB4254.namprd12.prod.outlook.com (2603:10b6:208:1d0::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Fri, 16 Apr 2021 00:57:20 +0000 Received: from BL0PR12MB2577.namprd12.prod.outlook.com ([fe80::3c43:105f:fc60:7786]) by BL0PR12MB2577.namprd12.prod.outlook.com ([fe80::3c43:105f:fc60:7786%6]) with mapi id 15.20.3999.037; Fri, 16 Apr 2021 00:57:20 +0000 From: Suanming Mou To: Ferruh Yigit , Ori Kam , Andrew Rybchenko , NBU-Contact-Thomas Monjalon CC: "dev@dpdk.org" , Stephen Hemminger , Matan Azrad , Shahaf Shuler , Ajit Khaparde , Somnath Kotur Thread-Topic: [dpdk-dev] [PATCH 1/2] ethdev: make flow API primary/secondary process safe Thread-Index: AQHXGdFADj5ZuD6t+k2uF7tFjJdtR6qHRsYQgCzjsQCAANrBoIAAXPeAgAEguJA= Date: Fri, 16 Apr 2021 00:57:20 +0000 Message-ID: References: <20210315192722.35490-1-stephen@networkplumber.org> <20210315192722.35490-2-stephen@networkplumber.org> <7106da73-95a1-30ae-f949-87ecca05b24d@intel.com> <14c8924a-24cc-b857-2a5c-260b0fcc02ef@intel.com> In-Reply-To: <14c8924a-24cc-b857-2a5c-260b0fcc02ef@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [183.159.146.221] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4d6bf247-f662-47fd-1ec2-08d9007296b3 x-ms-traffictypediagnostic: MN2PR12MB4254: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:128; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OrS3dem6QEHBRMaabHRvZqyjOxaunFmwTIrQCrl0wvCgZ0zHGmIECAhWU4UZos960IgIUAjYceTyvFSKO6ikeYzIE1+Sl5OaoBPlnIr17BTj67H4aLpsrQGK2GJatXZeF4yLCnCH8r9g+PoPQcAij7boVthIybYVHILRI4+89zL79IF3s9gUAXo+y0h583TiCWv0N3cU7g/JuV1TLzahQTPYmCQS5SnxAW2ft82RHrIkdQfzkFybW1ZZYWrbcXB76qAaDhQvABx5mnkb4lbYNlu8LmdV9TJJDqkYunfGwAD28cPiBRx7cAjJ7lNNW4WWzijxcmq02VK33g3cpaOOa9bNpWQX3H1i8xitglGrwb8Lks3bkavTqrgWjAUk7u1hkXON/D4BweK/Dvr1JSeZ4yc7/c6mtT4vw5Uj/G4PPnQ/hJ16W8FIdIksWhYAE0zV4X/t9q4IJ1bvLMmAR1HqarI63cPNS2B+f77yFpNp6TuhFF/+dAAlo3ZvKaRsreAKOEhjTYI81mBx1hNomtAMBn9v+B8AWyE1iJYJxo6gNGfWr/BgS4aU7EZr9cvSDi1N8h4o5KLQuWDQcmyxmFBpIDv1GfTk4nz3Sp/teAFMdfo= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR12MB2577.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(39860400002)(366004)(346002)(376002)(396003)(9686003)(8936002)(66946007)(33656002)(4326008)(66476007)(66446008)(52536014)(122000001)(86362001)(64756008)(186003)(83380400001)(55016002)(76116006)(66556008)(38100700002)(6506007)(478600001)(5660300002)(53546011)(71200400001)(316002)(110136005)(26005)(7696005)(54906003)(8676002)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?T1B4eGVYQVA0NXRKVEdnTS9acDBPSE9QcmJoZTZpSzVmQ3NVSnlYNkk2eU15?= =?utf-8?B?WGJWRFhtRnkycE12cVYwWWlmSTY0SzNsQVhEN1FrakZsZWJGTVFvUTRDMXRD?= =?utf-8?B?aVU1WFMwL3JWRitRZzVXUCs5V24zc2xjSEJmZmNlMUlEdDFWODR4SG1oVktr?= =?utf-8?B?SW5VVVR0TzNCRFZXc3dPb0ZadG9YYnRHNVJqYXhjUlUrYU5FVjBJYlAvOTJ0?= =?utf-8?B?SjA1SllhTkxBOENRd2dqTnJjZ0hSWVpiMmtTdmN6OTR3N2pTellOYUoycnJy?= =?utf-8?B?TkVLOFh1c2xUR2RkMkk2MDhTV1ZSOTNyUmYxV3lwVkdMdG9hZ2tRV092emdk?= =?utf-8?B?bzVWcm9CaWVrd29mK2k1NU1jb3hXM2VrSytDeXpGcU91dDZUOERVcEdjbmJz?= =?utf-8?B?MG9DOE1iTkhZSkJlR0JrK3pjclhwRW1SV3QwTE9GbWpvblRuK3EzQlcraU5N?= =?utf-8?B?eVJ5NlJPQWVYZVJGR1VybGV3Y0pGVHdKYVF5MEhDakdxQUNFMjA1OWUwNEVi?= =?utf-8?B?Um1YQWJqdGRHYTZPVVdzdmpXVEZSdUp2eU9BekJKcXB6ZDFUTVdCMzF3U3pN?= =?utf-8?B?T1NXQm5PZUJVb3lYeHJXNjNHWW5SZnRYdDk4aFNvU3ErYWtkc2t6d3JKQzVy?= =?utf-8?B?VElqSjErQm5zZDZ2RlQ1SHFWT1FoUTNHbVowVklWbXR0WU5FdnlmT0dPTVM3?= =?utf-8?B?QjNVZjAvWW9HaHBDT2VhUzM3WGJXMCs4VlhZYUk2cjRQb1lYcUZhRWd6cmhG?= =?utf-8?B?djNncTQweGlZZVU5eFFBazNiK0FwaGlwN0FQOVMzWldCVlJ2WXBwREtoWFVp?= =?utf-8?B?YWpzendORWhoWWJQeVlnekRGV2lBSUZTQWZUQjFteStYTG5RaHl2dGVRSzU5?= =?utf-8?B?NzBCQ1JSMVp4d1F5U3hIUmRaaXM0a2ZxN2FlVVFJbTNKR29MTjZwdEtXYlNG?= =?utf-8?B?b3hhdCtzZGphZ0R4REI2ZU9kcEZjRitvLy9IOFQrNXJiSng5dUU4UjZmdVJs?= =?utf-8?B?RXUvZml4cElTcVNwUnVJWnMydjNJTEdwVlN2RHFJYm9HRXNnbC9sclFVdHB5?= =?utf-8?B?aEVsU0I5MVJIMThKQTF6QnhabTk3cTY2aGY0RDFLSHJna0JKOGsvaXIvZUcx?= =?utf-8?B?a3RFUVNxc0Zabkc4VUNOaXhlcjNoMVFSOGZKblRGTXZZbkJsRWlJYTlKZVFX?= =?utf-8?B?elZxS0FCd25ZQVExRjNNWkFCSFhhMmROd3RBMjEzRG9ERksxT0lLOUNEbXNs?= =?utf-8?B?c3RNZHVjL3M1RkkwRWxsNFZZSzFzTWY3TXlsSFhyQ3Z5dXY3akpiR0lQYTZ3?= =?utf-8?B?UTNTUFVDVFY5OWJ5S0VqZ0RJSG1jMGRxUlMybTMzSUI5WTl5dTFUY3IxV0lq?= =?utf-8?B?aEF4TWNxV3U0VXEybzNMNDdlTnBqRmd0NmJvM1RDb1lHQ2NzSXJKVVJuSWZT?= =?utf-8?B?cEFycHcvbXNZT05FaXY3ejlXc3ZYcUo4ZlI2ZWJMVk1QcnFWdUFpVUYxUzVr?= =?utf-8?B?L285ZmdGQzNWY01Mc2doN1U4eDlCbzFFeFMrcCtHSmlNcERQL05pdDJYTmNv?= =?utf-8?B?N01mOVlVKzIybWl3RWVHSk1OZTZaNGFvSmNOSm5BV0lHOWRISVhsSjBSRlUw?= =?utf-8?B?VWIxVjhQZFB1Z0R4YmhqUTVoRjZVOGRsem1Xc3VScWtXQmNBRm1BS3BPUFVu?= =?utf-8?B?Qm1vQUk0R1IzT2FUUy9GLzgwQVlYekwrWU9nSVZNcWRmZXY4ekJoZEVHb3V6?= =?utf-8?Q?v/QnSCs2b/H5mnvlQptXYjHE89d/B44WAIDieKo?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2577.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d6bf247-f662-47fd-1ec2-08d9007296b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2021 00:57:20.3179 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: g6xNCnWBAxG9Jc8EqBzyVHwoTqbGy2cIARuo7YNSYL01TRqSHBzcghA/SJq8avRu/K1tXAYQsekiavKNJbqfDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4254 Subject: Re: [dpdk-dev] [PATCH 1/2] ethdev: make flow API primary/secondary process safe 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 Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwgMTUsIDIwMjEg Mzo0MyBQTQ0KPiBUbzogU3Vhbm1pbmcgTW91IDxzdWFubWluZ21AbnZpZGlhLmNvbT47IE9yaSBL YW0gPG9yaWthQG52aWRpYS5jb20+Ow0KPiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hl bmtvQG9rdGV0bGFicy5ydT47IE5CVS1Db250YWN0LVRob21hcw0KPiBNb25qYWxvbiA8dGhvbWFz QG1vbmphbG9uLm5ldD4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgU3RlcGhlbiBIZW1taW5nZXIgPHN0 ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPjsNCj4gTWF0YW4gQXpyYWQgPG1hdGFuQG52aWRpYS5j b20+OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+OyBBaml0DQo+IEtoYXBhcmRl IDxhaml0LmtoYXBhcmRlQGJyb2FkY29tLmNvbT47IFNvbW5hdGggS290dXINCj4gPHNvbW5hdGgu a290dXJAYnJvYWRjb20uY29tPg0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggMS8y XSBldGhkZXY6IG1ha2UgZmxvdyBBUEkgcHJpbWFyeS9zZWNvbmRhcnkNCj4gcHJvY2VzcyBzYWZl DQo+IA0KPiBPbiA0LzE1LzIwMjEgMzo1NSBBTSwgU3Vhbm1pbmcgTW91IHdyb3RlOg0KPiA+IEhp LA0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IEZlcnJ1 aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gPj4gU2VudDogV2VkbmVzZGF5LCBB cHJpbCAxNCwgMjAyMSA5OjA3IFBNDQo+ID4+IFRvOiBTdWFubWluZyBNb3UgPHN1YW5taW5nbUBu dmlkaWEuY29tPjsgT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT47DQo+ID4+IEFuZHJldyBSeWJj aGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1PjsgTkJVLUNvbnRhY3QtDQo+IFRo b21hcw0KPiA+PiBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gPj4gQ2M6IGRldkBk cGRrLm9yZzsgU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPg0K PiA+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggMS8yXSBldGhkZXY6IG1ha2UgZmxv dyBBUEkNCj4gPj4gcHJpbWFyeS9zZWNvbmRhcnkgcHJvY2VzcyBzYWZlDQo+ID4+DQo+ID4+IE9u IDMvMTYvMjAyMSAxMTo0OCBQTSwgU3Vhbm1pbmcgTW91IHdyb3RlOg0KPiA+Pj4gSGkgU3RlcGhl biwNCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9t OiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+DQo+ID4+Pj4g U2VudDogVHVlc2RheSwgTWFyY2ggMTYsIDIwMjEgMzoyNyBBTQ0KPiA+Pj4+IFRvOiBkZXZAZHBk ay5vcmcNCj4gPj4+PiBDYzogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1i ZXIub3JnPjsgU3Vhbm1pbmcgTW91DQo+ID4+Pj4gPHN1YW5taW5nbUBudmlkaWEuY29tPg0KPiA+ Pj4+IFN1YmplY3Q6IFtQQVRDSCAxLzJdIGV0aGRldjogbWFrZSBmbG93IEFQSSBwcmltYXJ5L3Nl Y29uZGFyeQ0KPiA+Pj4+IHByb2Nlc3Mgc2FmZQ0KPiA+Pj4+DQo+ID4+Pj4gUG9zaXggbXV0ZXgg YXJlIG5vdCBieSBkZWZhdWx0IHNhZmUgZm9yIHByb3RlY3RpbmcgZm9yIHVzYWdlIGZyb20NCj4g Pj4+PiBtdWx0aXBsZSBwcm9jZXNzZXMuIFRoZSBmbG93IG9wcyBtdXRleCBjb3VsZCBiZSB1c2Vk IGJ5IGJvdGgNCj4gPj4+PiBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgcHJvY2Vzc2VzLg0KPiA+Pj4N Cj4gPj4+IFByb2Nlc3Mgc2FmZSBpcyBzb21ldGhpbmcgbW9yZSB3aWRlbHkgc2NvcGUuIEkgYXNz dW1lIGl0IHNob3VsZCBiZQ0KPiA+Pj4gYW5vdGhlcg0KPiA+PiBmZWF0dXJlIGJ1dCBub3QgYSBi dWdmaXggZm9yIHRocmVhZC1zYWZlPw0KPiA+Pj4gQW5kIHRoZSBmYWcgUlRFX0VUSF9ERVZfRkxP V19PUFNfVEhSRUFEX1NBRkUgd2UgaGF2ZSBhZGRlZCBpcyBqdXN0DQo+ID4+IHRocmVhZCBzYWZl Lg0KPiA+Pj4NCj4gPj4NCj4gPj4gSGkgU3Vhbm1pbmcsDQo+ID4+DQo+ID4+IEkgdGhpbmsgJ1JU RV9FVEhfREVWX0ZMT1dfT1BTX1RIUkVBRF9TQUZFJyBmbGFnIGFuZCB3aGF0IHRoaXMgcGF0Y2gN Cj4gPj4gYWRkcmVzcyBhcmUgZGlmZmVyZW50IGlzc3Vlcy4NCj4gPj4NCj4gPj4gJ1JURV9FVEhf REVWX0ZMT1dfT1BTX1RIUkVBRF9TQUZFJyBpcyB0byBhZGQvcmVtb3ZlIHN5bmNocm9uaXphdGlv bg0KPiA+PiBzdXBwb3J0IGZvciBmbG93IEFQSXMsIHRoYXQgaXMgZm9yIHRocmVhZCBzYWZldHkg YXMgZmxhZyBuYW1lIHN1Z2dlc3RzLg0KPiA+Pg0KPiA+PiBUaGlzIHBhdGNoIGlzIHRvIHNvbHZl IHRoZSBwcm9ibGVtIGZvciBtdWx0aSBwcm9jZXNzLCB3aGVyZSBjb21taXQNCj4gPj4gbG9nIGRl c2NyaWJlcyBhcyBwb3NpeCBtdXRleCBpcyBub3Qgc2FmZSBmb3IgbXVsdGlwbGUgcHJvY2Vzcy4N Cj4gPg0KPiA+IFNvIGZvciBQTURzIHdoaWNoIG5vdCBzZXQgdGhlIFJURV9FVEhfREVWX0ZMT1df T1BTX1RIUkVBRF9TQUZFDQo+IGNhcGFiaWxpdHkgYml0LCB0aGV5IHdpbGwgaGF2ZSB0aGUgcHJv Y2VzcyBsZXZlbCBwcm90ZWN0aW9uIGluIG11bHRpLXByb2Nlc3MuDQo+ID4gRm9yIFBNRHMgd2hp Y2ggc2V0IHRoZSBSVEVfRVRIX0RFVl9GTE9XX09QU19USFJFQURfU0FGRSBjYXBhYmlsaXR5DQo+ IGJpdCwgdGhpcyBjaGFuZ2UgZG9lcyBub3QgaGVscCB3aXRoIHRoZXNlIFBNRHMuIElmIHRoZSBQ TUQgd2l0aA0KPiBSVEVfRVRIX0RFVl9GTE9XX09QU19USFJFQURfU0FGRSBjYXBhYmlsaXR5IGJp dCAgaW50ZXJuYWxseSBkb2VzIG5vdA0KPiBzdXBwb3J0IG11bHRpLXByb2Nlc3MsIHRoZXkgbWF5 IHN0aWxsIHN1ZmZlciBjcmFzaCBldGMuDQo+IA0KPiBDb3JyZWN0DQo+IA0KPiA+IChJZiBJIHVu ZGVyc3RhbmQgY29ycmVjdGx5LCBtbHggUE1EIGxldmVsIG5vdyBzaG91bGQgc3VwcG9ydCBtdWx0 aS1wcm9jZXNzLA0KPiBidXQgYmV0dGVyIHRvIGhhdmUgdGhlIGNvbmZpcm1hdGlvbiBmcm9tIG1h aW50YWluZXJzIHdpdGggbXVjaCBkZWVwZXIgbGV2ZWwpLg0KPiA+IEkgYXNzdW1lIHRoaXMgcGF0 Y2ggc29sdmVzIHRoZSBwb3NpeCBtdXRleCBmb3IgbXVsdGktcHJvY2VzcyBvbmx5LCBoYXJkIHRv IHNheQ0KPiB0aGUgZmxvdyBBUEkgcHJpbWFyeS9zZWNvbmRhcnkgcHJvY2VzcyBzYWZlIGFmdGVy IHRoYXQgcGF0Y2guDQo+ID4NCj4gDQo+IEkgYW0gYWxzbyBub3QgcXVpdGUgc3VyZSBob3cgUE1E cyB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBtdXRleCBhdCBhbGwsIChtbHg1LCBibnh0LA0KPiBzZmMp IGJlaGF2ZSBvbiBtdWx0aSBwcm9jZXNzLiBJcyBjYWxsaW5nIGZsb3cgQVBJcyBmcm9tIGJvdGgg cHJpbWFyeS9zZWNvbmRhcnkNCj4gc2FmZT8NCg0KVGhpcyBkZXBlbmRzIG9uIHRoZSB2ZW5kb3Ig ZHJpdmVyLiBGb3IgbWx4LCBpdCBzaG91bGQgYmUgc2FmZSwgbm90IHN1cmUgb3RoZXJzLg0KDQo+ IA0KPiA+Pg0KPiA+Pg0KPiA+PiBTdGVwaGVuLA0KPiA+PiBBcmUgeW91IGF3YXJlIG9mIGFueSBk b3duc2lkZSBzZXR0aW5nICdQVEhSRUFEX1BST0NFU1NfU0hBUkVEJw0KPiA+PiBhdHRyaWJ1dGUg dG8gdGhlIG11dGV4PyBBbnkgcG9zc2libGUgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zPw0KPiA+ Pg0KPiA+PiBPcmksDQo+ID4+IFNpbmNlIG1seCBpcyBoZWF2aWx5IHVzaW5nIHRoZSBmbG93IEFQ SSwgaXMgaXQgcG9zc2libGUgdG8gdGVzdCB0aGlzDQo+ID4+IHBhdGNoPyBJZiB0aGVyZSBpcyBu byBuZWdhdGl2ZSBpbXBhY3QsIEkgdGhpbmsgd2UgY2FuIGdldCB0aGlzIHBhdGNoLCB3aGF0IGRv DQo+IHlvdSB0aGluaz8NCj4gPj4NCj4gPj4+Pg0KDQo=