From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 1A7D12C2F for ; Wed, 17 May 2017 18:10:21 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 May 2017 09:10:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,355,1491289200"; d="scan'208";a="969498020" Received: from irsmsx102.ger.corp.intel.com ([163.33.3.155]) by orsmga003.jf.intel.com with ESMTP; 17 May 2017 09:10:19 -0700 Received: from irsmsx109.ger.corp.intel.com ([169.254.13.12]) by IRSMSX102.ger.corp.intel.com ([169.254.2.153]) with mapi id 14.03.0319.002; Wed, 17 May 2017 17:10:18 +0100 From: "Ananyev, Konstantin" To: "Yigit, Ferruh" , "dev@dpdk.org" CC: "Mcnamara, John" , "Tahhan, Maryam" Thread-Topic: [dpdk-dev] [RFC 17.08] flow_classify: add librte_flow_classify library Thread-Index: AQHSzyN2p7AHQcWZE0CVB7+l3ceKLaH4qluA Date: Wed, 17 May 2017 16:10:17 +0000 Message-ID: <2601191342CEEE43887BDE71AB9772583FAF77CA@IRSMSX109.ger.corp.intel.com> References: <20170420185448.19162-1-ferruh.yigit@intel.com> <20170420185448.19162-2-ferruh.yigit@intel.com> <2601191342CEEE43887BDE71AB9772583FAF774A@IRSMSX109.ger.corp.intel.com> <23ee1b56-ded8-024d-9668-9a4b0b830130@intel.com> In-Reply-To: <23ee1b56-ded8-024d-9668-9a4b0b830130@intel.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC 17.08] flow_classify: add librte_flow_classify library X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 May 2017 16:10:22 -0000 PiA+IEhpIEZlcnJ1aCwNCj4gPiBQbGVhc2Ugc2VlIG15IGNvbW1lbnRzL3F1ZXN0aW9ucyBiZWxv dy4NCj4gPiBUaGFua3MNCj4gPiBLb25zdGFudGluDQo+ID4NCj4gPj4gKw0KPiA+PiArLyoqDQo+ ID4+ICsgKiBAZmlsZQ0KPiA+PiArICoNCj4gPj4gKyAqIFJURSBGbG93IENsYXNzaWZ5IExpYnJh cnkNCj4gPj4gKyAqDQo+ID4+ICsgKiBUaGlzIGxpYnJhcnkgcHJvdmlkZXMgZmxvdyByZWNvcmQg aW5mb3JtYXRpb24gd2l0aCBzb21lIG1lYXN1cmVkIHByb3BlcnRpZXMuDQo+ID4+ICsgKg0KPiA+ PiArICogQXBwbGljYXRpb24gY2FuIHNlbGVjdCB2YXJpZXR5IG9mIGZsb3cgdHlwZXMgYmFzZWQg b24gdmFyaW91cyBmbG93IGtleXMuDQo+ID4+ICsgKg0KPiA+PiArICogTGlicmFyeSBvbmx5IG1h aW50YWlucyBmbG93IHJlY29yZHMgYmV0d2VlbiBydGVfZmxvd19jbGFzc2lmeV9zdGF0c19nZXQo KQ0KPiA+PiArICogY2FsbHMgYW5kIHdpdGggYSBtYXhpbXVtIGxpbWl0Lg0KPiA+PiArICoNCj4g Pj4gKyAqIFByb3ZpZGVkIGZsb3cgcmVjb3JkIHdpbGwgYmUgbGlua2VkIGxpc3QgcnRlX2Zsb3df Y2xhc3NpZnlfc3RhdF94eHgNCj4gPj4gKyAqIHN0cnVjdHVyZS4NCj4gPj4gKyAqDQo+ID4+ICsg KiBMaWJyYXJ5IGlzIHJlc3BvbnNpYmxlIGZyb20gYWxsb2NhdGluZyBhbmQgZnJlZWluZyBtZW1v cnkgZm9yIGZsb3cgcmVjb3JkDQo+ID4+ICsgKiB0YWJsZS4gUHJldmlvdXMgdGFibGUgZnJlZWQg d2l0aCBuZXh0IHJ0ZV9mbG93X2NsYXNzaWZ5X3N0YXRzX2dldCgpIGNhbGwgYW5kDQo+ID4+ICsg KiBhbGwgdGFibGVzIGFyZSBmcmVlZCB3aXRoIHJ0ZV9mbG93X2NsYXNzaWZ5X3R5cGVfcmVzZXQo KSBvcg0KPiA+PiArICogcnRlX2Zsb3dfY2xhc3NpZnlfdHlwZV9zZXQoeCwgMCkuIE1lbW9yeSBm b3IgdGFibGUgYWxsb2NhdGVkIG9uIHRoZSBmbHkgd2hpbGUNCj4gPj4gKyAqIGNyZWF0aW5nIHJl Y29yZHMuDQo+ID4+ICsgKg0KPiA+PiArICogQSBydGVfZmxvd19jbGFzc2lmeV90eXBlX3NldCgp IHdpdGggYSB2YWxpZCB0eXBlIHdpbGwgcmVnaXN0ZXIgUngvVHgNCj4gPj4gKyAqIGNhbGxiYWNr cyBhbmQgc3RhcnQgZmlsbGluZyBmbG93IHJlY29yZCB0YWJsZS4NCj4gPj4gKyAqIFdpdGggcnRl X2Zsb3dfY2xhc3NpZnlfc3RhdHNfZ2V0KCksIHBvaW50ZXIgc2VudCB0byBjYWxsZXIgYW5kIG1l YW53aGlsZQ0KPiA+PiArICogbGlicmFyeSBjb250aW51ZXMgY29sbGVjdGluZyByZWNvcmRzLg0K PiA+PiArICoNCj4gPj4gKyAqICBVc2FnZToNCj4gPj4gKyAqICAtIGFwcGxpY2F0aW9uIGNhbGxz IHJ0ZV9mbG93X2NsYXNzaWZ5X3R5cGVfc2V0KCkgZm9yIGEgZGV2aWNlDQo+ID4+ICsgKiAgLSBs aWJyYXJ5IGNyZWF0ZXMgUngvVHggY2FsbGJhY2tzIGZvciBwYWNrZXRzIGFuZCBzdGFydCBmaWxs aW5nIGZsb3cgdGFibGUNCj4gPg0KPiA+IERvZXMgaXQgbmVjZXNzYXJ5IHRvIHVzZSBhbiAgUlgg Y2FsbGJhY2sgaGVyZT8NCj4gPiBDYW4gbGlicmFyeSBwcm92aWRlIGFuIEFQSSBsaWtlIGNvbGxl Y3QocG9ydF9pZCwgaW5wdXRfbWJ1ZltdLCBwa3RfbnVtKSBpbnN0ZWFkPw0KPiA+IFNvIHRoZSB1 c2VyIHdvdWxkIGhhdmUgYSBjaG9pY2UgZWl0aGVyIHNldHVwIGEgY2FsbGJhY2sgb3IgY2FsbCBj b2xsZWN0KCkgZGlyZWN0bHkuDQo+IA0KPiBUaGlzIHdhcyBhbHNvIGNvbW1lbnQgZnJvbSBNb3J0 ZW4sIEkgd2lsbCB1cGRhdGUgUkZDIHRvIHVzZSBkaXJlY3QgQVBJIGNhbGwuDQo+IA0KPiA+DQo+ ID4+ICsgKiAgICBmb3IgdGhhdCB0eXBlIG9mIGZsb3cgKGN1cnJlbnRseSBvbmx5IG9uZSBmbG93 IHR5cGUgc3VwcG9ydGVkKQ0KPiA+PiArICogIC0gYXBwbGljYXRpb24gY2FsbHMgcnRlX2Zsb3df Y2xhc3NpZnlfc3RhdHNfZ2V0KCkgdG8gZ2V0IHBvaW50ZXIgdG8gbGlua2VkDQo+ID4+ICsgKiAg ICBsaXN0ZWQgZmxvdyB0YWJsZS4gTGlicmFyeSBhc3NpZ25zIHRoaXMgcG9pbnRlciB0byBhbm90 aGVyIHZhbHVlIGFuZCBrZWVwcw0KPiA+PiArICogICAgY29sbGVjdGluZyBmbG93IGRhdGEuIElu IG5leHQgcnRlX2Zsb3dfY2xhc3NpZnlfc3RhdHNfZ2V0KCksIGxpYnJhcnkgZmlyc3QNCj4gPj4g KyAqICAgIGZyZWUgdGhlIHByZXZpb3VzIHRhYmxlLCBhbmQgcGFzcyBjdXJyZW50IHRhYmxlIHRv IHRoZSBhcHBsaWNhdGlvbiwga2VlcA0KPiA+PiArICogICAgY29sbGVjdGluZyBkYXRhLg0KPiA+ DQo+ID4gT2ssIGJ1dCB0aGF0IG1lYW5zIHRoYXQgeW91IGNhbid0IHVzZSBzdGF0c19nZXQoKSBm b3IgdGhlIHNhbWUgdHlwZQ0KPiA+IGZyb20gMiBkaWZmZXJlbnQgdGhyZWFkcyB3aXRob3V0IGV4 cGxpY2l0IHN5bmNocm9uaXphdGlvbj8NCj4gDQo+IENvcnJlY3QuDQo+IEFuZCBtdWx0aXBsZSB0 aHJlYWRzIHNob3VsZG4ndCBiZSBjYWxsaW5nIHRoaXMgQVBJLiBJdCBkb2Vzbid0IHN0b3JlDQo+ IHByZXZpb3VzIGZsb3cgZGF0YSwgc28gbXVsdGlwbGUgdGhyZWFkcyBjYWxsaW5nIHRoaXMgb25s eSBjYW4gaGF2ZSBwaWVjZQ0KPiBvZiBpbmZvcm1hdGlvbi4gRG8geW91IHNlZSBhbnkgdXNlIGNh c2UgdGhhdCBtdWx0aXBsZSB0aHJlYWRzIGNhbiBjYWxsDQo+IHRoaXMgQVBJPw0KDQpPbmUgZXhh bXBsZSB3b3VsZCBiZSB3aGVuIHlvdSBoYXZlIG11bHRpcGxlIHF1ZXVlcyBwZXIgcG9ydCwNCm1h bmFnZWQvbW9uaXRvcmVkIGJ5IGRpZmZlcmVudCBjb3Jlcy4NCkJUVywgaG93IGFyZSB5b3UgZ29p bmcgdG8gY29sbGVjdCB0aGUgc3RhdHMgaW4gdGhhdCB3YXk/DQoNCj4gDQo+ID4NCj4gPj4gKyAq ICAtIGFwcGxpY2F0aW9uIGNhbGxzIHJ0ZV9mbG93X2NsYXNzaWZ5X3R5cGVfcmVzZXQoKSwgbGli cmFyeSB1bnJlZ2lzdGVycyB0aGUNCj4gPj4gKyAqICAgIGNhbGxiYWNrcyBhbmQgZnJlZSBhbGwg ZmxvdyB0YWJsZSBkYXRhLg0KPiA+PiArICoNCj4gPj4gKyAqLw0KPiA+PiArDQo+ID4+ICtlbnVt IHJ0ZV9mbG93X2NsYXNzaWZ5X3R5cGUgew0KPiA+PiArCVJURV9GTE9XX0NMQVNTSUZZX1RZUEVf R0VORVJJQyA9ICgxIDw8IDApLA0KPiA+PiArCVJURV9GTE9XX0NMQVNTSUZZX1RZUEVfTUFYLA0K PiA+PiArfTsNCj4gPj4gKw0KPiA+PiArI2RlZmluZSBSVEVfRkxPV19DTEFTU0lGWV9UWVBFX01B U0sgPSAoKChSVEVfRkxPV19DTEFTU0lGWV9UWVBFX01BWCAtIDEpIDw8IDEpIC0gMSkNCj4gPj4g Kw0KPiA+PiArLyoqDQo+ID4+ICsgKiBHbG9iYWwgY29uZmlndXJhdGlvbiBzdHJ1Y3QNCj4gPj4g KyAqLw0KPiA+PiArc3RydWN0IHJ0ZV9mbG93X2NsYXNzaWZ5X2NvbmZpZyB7DQo+ID4+ICsJdWlu dDMyX3QgdHlwZTsgLyogYml0d2lzZSBlbnVtIHJ0ZV9mbG93X2NsYXNzaWZ5X3R5cGUgdmFsdWVz ICovDQo+ID4+ICsJdm9pZCAqZmxvd190YWJsZV9wcmV2Ow0KPiA+PiArCXVpbnQzMl90IGZsb3df dGFibGVfcHJldl9pdGVtX2NvdW50Ow0KPiA+PiArCXZvaWQgKmZsb3dfdGFibGVfY3VycmVudDsN Cj4gPj4gKwl1aW50MzJfdCBmbG93X3RhYmxlX2N1cnJlbnRfaXRlbV9jb3VudDsNCj4gPj4gK30g cnRlX2Zsb3dfY2xhc3NpZnlfY29uZmlnW1JURV9NQVhfRVRIUE9SVFNdOw0KPiA+PiArDQo+ID4+ ICsjZGVmaW5lIFJURV9GTE9XX0NMQVNTSUZZX1NUQVRfTUFYIFVJTlQxNl9NQVgNCj4gPj4gKw0K PiA+PiArLyoqDQo+ID4+ICsgKiBDbGFzc2lmaWNhdGlvbiBzdGF0cyBkYXRhIHN0cnVjdA0KPiA+ PiArICovDQo+ID4+ICtzdHJ1Y3QgcnRlX2Zsb3dfY2xhc3NpZnlfc3RhdF9nZW5lcmljIHsNCj4g Pj4gKwlzdHJ1Y3QgcnRlX2Zsb3dfY2xhc3NpZnlfc3RhdF9nZW5lcmljICpuZXh0Ow0KPiA+PiAr CXVpbnQzMl90IGlkOw0KPiA+PiArCXVpbnQ2NF90IHRpbWVzdGFtcDsNCj4gPj4gKw0KPiA+PiAr CXN0cnVjdCBldGhlcl9hZGRyIHNyY19tYWM7DQo+ID4+ICsJc3RydWN0IGV0aGVyX2FkZHIgZHN0 X21hYzsNCj4gPj4gKwl1aW50MzJfdCBzcmNfaXB2NDsNCj4gPj4gKwl1aW50MzJfdCBkc3RfaXB2 NDsNCj4gPj4gKwl1aW50OF90IGwzX3Byb3RvY29sX2lkOw0KPiA+PiArCXVpbnQxNl90IHNyY19w b3J0Ow0KPiA+PiArCXVpbnQxNl90IGRzdF9wb3J0Ow0KPiA+PiArDQo+ID4+ICsJdWludDY0X3Qg cGFja2V0X2NvdW50Ow0KPiA+PiArCXVpbnQ2NF90IHBhY2tldF9zaXplOyAvKiBieXRlcyAqLw0K PiA+PiArfTsNCj4gPg0KPiA+IE9rLCBzbyBpZiBJIHVuZGVyc3Rvb2QgdGhpbmdzIHJpZ2h0LCBm b3IgZ2VuZXJpYyB0eXBlIGl0IHdpbGwgYWx3YXlzIGNsYXNzaWZ5IGFsbCBpbmNvbWluZyBwYWNr ZXRzIGJ5Og0KPiA+IDxzcmNfbWFjLCBkc3RfbWFjLCBzcmNfaXB2NCwgZHN0X2lwdjQsIGwzX3By b3RvY29sX2lkLCBzcmNfcG9ydCwgZHN0X3BvcnQ+DQo+ID4gYWxsIGJ5IGFic29sdXRlIHZhbHVl cywgYW5kIHJlcHJlc2VudCByZXN1bHRzIGFzIGEgbGlua2VkIGxpc3QuDQo+ID4gSXMgdGhhdCBj b3JyZWN0LCBvciBJIG1pc3VuZGVyc3Rvb2QgeW91ciBpbnRlbnRpb25zIGhlcmU/DQo+IA0KPiBD b3JyZWN0Lg0KPiANCj4gPiBJZiBzbywgdGhlbiBJIHNlZSBzZXZlcmFsIGRpc2FkdmFudGFnZXMg aGVyZToNCj4gPiAxKSBJdCBpcyByZWFsbHkgaGFyZCB0byBwcmVkaWN0IHdoYXQga2luZCBvZiBz dGF0cyBpcyByZXF1aXJlZCBmb3IgdGhhdCBwYXJ0aWN1bGFyIGNhc2VzLg0KPiA+ICBMZXQgc2F5 IHNvbWUgcGVvcGxlIHdvdWxkIGxpa2UgdG8gY29sbGVjdCBzdGF0IGJ5IDxkc3RfbWFjLCwgdmxh bj4gLA0KPiA+IGFub3RoZXIgYnkgPGRzdF9pcHY0LHN1Ym5ldF9tYXNrPiwgdGhpcmQgb25lcyBi eSA8bDQgZHN0X3BvcnQ+IGFuZCBzbyBvbi4NCj4gPiBIYXZpbmcganVzdCBvbmUgaGFyZGNvZGVk IGZpbHRlciBkb2Vzbid0IHNlZW0gdmVyeSBmZWx4YWJsZS91c2FibGUuDQo+ID4gSSB0aGluayB5 b3UgbmVlZCB0byBmaW5kIGEgd2F5IHRvIGFsbG93IHVzZXIgdG8gZGVmaW5lIHdoYXQgdHlwZSBv ZiBmaWx0ZXIgdGhleSB3YW50IHRvIGFwcGx5Lg0KPiANCj4gVGhlIGZsb3cgdHlwZSBzaG91bGQg YmUgcHJvdmlkZWQgYnkgYXBwbGljYXRpb25zLCBhY2NvcmRpbmcgdGhlaXIgbmVlZHMsDQo+IGFu ZCBuZWVkcyB0byBiZSBpbXBsZW1lbnRlZCBpbiB0aGlzIGxpYnJhcnkuIFRoZSBnZW5lcmljIG9u ZSB3aWxsIGJlIHRoZQ0KPiBvbmx5IG9uZSBpbXBsZW1lbnRlZCBpbiBmaXJzdCB2ZXJzaW9uOg0K PiBlbnVtIHJ0ZV9mbG93X2NsYXNzaWZ5X3R5cGUgew0KPiAJUlRFX0ZMT1dfQ0xBU1NJRllfVFlQ RV9HRU5FUklDID0gKDEgPDwgMCksDQo+IAlSVEVfRkxPV19DTEFTU0lGWV9UWVBFX01BWCwNCj4g fTsNCj4gDQo+IA0KPiBBcHAgc2hvdWxkIHNldCB0aGUgdHlwZSBmaXJzdCB2aWEgdGhlIEFQSToN Cj4gcnRlX2Zsb3dfY2xhc3NpZnlfdHlwZV9zZXQodWludDhfdCBwb3J0X2lkLCB1aW50MzJfdCB0 eXBlKTsNCj4gDQo+IA0KPiBBbmQgdGhlIHN0YXRzIGZvciB0aGlzIHR5cGUgd2lsbCBiZSByZXR1 cm5lZCwgYmVjYXVzZSByZXR1cm5lZCB0eXBlIGNhbg0KPiBiZSBkaWZmZXJlbnQgdHlwZSBvZiBz dHJ1Y3QsIHJldHVybmVkIGFzIHZvaWQ6DQo+IHJ0ZV9mbG93X2NsYXNzaWZ5X3N0YXRzX2dldCh1 aW50OF90IHBvcnRfaWQsIHZvaWQgKnN0YXRzKTsNCg0KSSB1bmRlcnN0YW5kIHRoYXQsIGJ1dCBp dCBtZWFucyB0aGF0IGZvciBldmVyeSBkaWZmZXJlbnQgZmlsdGVyIHVzZXIgd2FudHMgdG8gdXNl LA0Kc29tZW9uZSBoYXMgdG8gdXBkYXRlIHRoZSBsaWJyYXJ5OiBkZWZpbmUgYSBuZXcgdHlwZSBh bmQgd3JpdGUgYSBuZXcgcGllY2Ugb2YgY29kZSB0byBoYW5kbGUgaXQuDQpUaGF0IHNlZW1zIG5v dCBmbGV4aWJsZSBhbmQgdG90YWxseSB1bi1leHRlbmRhYmxlIGZyb20gdXNlciBwZXJzcGVjdGl2 ZS4NCkV2ZW4gIEhXIGFsbG93cyBzb21lIGZsZXhpYmlsaXR5IHdpdGggUlggZmlsdGVycy4NCldo eSBub3QgYWxsb3cgdXNlciB0byBzcGVjaWZ5IGEgY2xhc3NpZmljYXRpb24gZmlsdGVyICBoZS9z aGUgd2FudHMgZm9yIHRoYXQgcGFydGljdWxhciBjYXNlPw0KSW4gYSB3YXkgYm90aCBydGVfZmxv dyBhbmQgcnRlX2FjbCB3b3JrPw0KDQo+IA0KPiA+IEkgdGhpbmsgaXQgd2FzIGRpc2N1c3NlZCBh bHJlYWR5LCBidXQgSSBzdGlsbCB3b25kZXIgd2h5IHJ0ZV9mbG93X2l0ZW0gY2FuJ3QgYmUgdXNl ZCBmb3IgdGhhdCBhcHByb2FjaD8NCj4gDQo+IA0KPiA+IDIpIEV2ZW4gIG9uZSAxMEcgcG9ydCBj YW4gcHJvZHVjZSB5b3UgfjE0TSBydGVfZmxvd19jbGFzc2lmeV9zdGF0X2dlbmVyaWMgZW50cmll cyBpbiBvbmUgc2Vjb25kDQo+ID4gKGFsbCBwYWNrZXRzIGhhdmUgZGlmZmVyZW50IGlwdjQvcG9y dHMgb3Igc28pLg0KPiA+IEFjY2Vzc2luZy9yZXRyaWV2aW5nIGl0ZW1zIG92ZXIgbGlua2VkIGxp c3Qgd2l0aCAxNE0gZW50cmllcyAtIGRvZXNuJ3Qgc291bmQgbGlrZSBhIGdvb2QgaWRlYS4NCj4g PiBJJ2Qgc2F5IHdlIG5lZWQgc29tZSBiZXR0ZXIgd2F5IHRvIHJldHJpZXZlL3ByZXNlbnQgY29s bGVjdGVkIGRhdGEuDQo+IA0KPiBUaGlzIGlzIHRvIGtlZXAgZmxvd3MsIHNvIEkgZXhwZWN0IHRo ZSBudW1iZXJzIHdpbGwgYmUgbGVzcyBjb21wYXJpbmcgdG8NCj4gdGhlIHBhY2tldCBudW1iZXJz Lg0KDQpUaGF0IHdhcyBhbiAgZXh0cmVtZSBleGFtcGxlIHRvIHNob3cgaG93IGJhZCB0aGUgc2Vs ZWN0ZWQgYXBwcm9hY2ggc2hvdWxkIGJlaGF2ZS4NCldoYXQgSSBhbSB0cnlpbmcgdG8gc2F5OiB3 ZSBuZWVkIGEgd2F5IHRvIGNvbGxlY3QgYW5kIHJldHJpZXZlIHN0YXRzIGluIGEgcXVpY2sgYW5k IGVhc3kgd2F5Lg0KTGV0IHNheSByaWdodCBub3cgdXNlciBpbnZva2VkIHN0YXRzX2dldChwb3J0 PTAsIHR5cGU9Z2VuZXJpYykuDQpOb3csIGhlIGlzIGludGVyZXN0ZWQgdG8gZ2V0IHN0YXRzIGZv ciBwYXJ0aWN1bGFyIGRzdF9pcCBvbmx5Lg0KVGhlIG9ubHkgd2F5IHRvIGdldCBpdDogd2FsayBv dmVyIHdob2xlIGxpc3Qgc3RhdHNfZ2V0KCkgcmV0dXJuZWQgYW5kIGV4YW1pbmUgZWFjaCBlbnRy eSBvbmUgYnkgb25lLg0KDQpJIHRoaW5rIHdvdWxkIGJlIG11Y2ggYmV0dGVyIHRvIGhhdmUgc29t ZXRoaW5nIGxpa2U6DQoNCnN0cnVjdCBydGVfZmxvd19zdGF0cyB7dGltZXN0YW1wOyBwYWNrZXRf Y291bnQ7IHBhY2tldF9ieXRlczsgLi59Ow0KDQo8ZmlsbCBydGVfZmxvd19pdGVtIChvciBzb21l dGhpbmcgZWxzZSkgdG8gZGVmaW5lIGRlc2lyZWQgZmlsdGVyPg0KDQpmaWx0ZXJfaWQgPSBydGVf Zmxvd19zdGF0c19yZWdpc3RlciguLiwgJnJ0ZV9mbG93X2l0ZW0pOw0KLi4uLg0Kc3RydWN0IHJ0 ZV9mbG93X3N0YXRzIHN0YXRzOw0KcnRlX2Zsb3dfc3RhdHNfZ2V0KC4uLiwgZmlsdGVyX2lkLCAm c3RhdHMpOw0KDQpUaGF0IGFsbG93cyB1c2VyIHRvIGRlZmluZSBmbG93cyB0byBjb2xsZWN0IHN0 YXRzIGZvci4NCkFnYWluIGluIHRoYXQgY2FzZSB5b3UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91 dCB3aGVuL3doZXJlIHRvIGRlc3Ryb3kgdGhlIHByZXZpb3VzDQp2ZXJzaW9uIG9mIHlvdXIgc3Rh dHMuDQpPZiBjb3Vyc2UgdGhlIG9wZW4gcXVlc3Rpb24gaXMgaG93IHRvIHRyZWF0IHBhY2tldHMg dGhhdCB3b3VsZCBtYXRjaCBtb3JlIHRoYW4gb25lIGZsb3cNCihwcmlvcml0eS9pbnNlcnRpb24g b3JkZXIvc29tZXRoaW5nIGVsc2U/KSwgYnV0IEkgc3VwcG9zZSB3ZSdsbCBuZWVkIHRvIGRlYWwg d2l0aCB0aGF0IHF1ZXN0aW9uIGFueXdheS4NCiANCktvbnN0YW50aW4NCg0KPiBJdCBpcyBwb3Nz aWJsZSB0byB1c2UgZml4ZWQgc2l6ZSBhcnJheXMgZm9yIHRoaXMuIEJ1dCBJIHRoaW5rIGl0IGlz IGVhc3kNCj4gdG8gbWFrZSB0aGlzIHN3aXRjaCBsYXRlciwgSSB3b3VsZCBsaWtlIHRvIHNlZSB0 aGUgcGVyZm9ybWFuY2UgZWZmZWN0DQo+IGJlZm9yZSBkb2luZyB0aGlzIHN3aXRjaC4gRG8geW91 IHRoaW5rIGlzIGl0IE9LIHRvIHN0YXJ0IGxpa2UgdGhpcyBhbmQNCj4gZ2l2ZSB0aGF0IGRlY2lz aW9uIGR1cmluZyBpbXBsZW1lbnRhdGlvbj8NCg==