From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 84315C432C0 for ; Thu, 21 Nov 2019 13:05:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4509B2089D for ; Thu, 21 Nov 2019 13:05:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="k0oxV9vA" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726869AbfKUNFz (ORCPT ); Thu, 21 Nov 2019 08:05:55 -0500 Received: from mail-eopbgr20069.outbound.protection.outlook.com ([40.107.2.69]:9702 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726293AbfKUNFz (ORCPT ); Thu, 21 Nov 2019 08:05:55 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R+2wFDq+dgSAdVv5hP5n+EFQG22TqxlgqYMobdoJQ5OOmcymYreKxuT2Y3dyn564LaB8AU79tdmQkZh9pmWGYC5i3dL5qi/N0nScnEVzjajyJezjwrWz2PJOAi/PR2ue9ZR6xrE441Bunk3SDuv52DCK5PHYeZ92M5H3cYCo2J5QY1/MyXAZiFdc1oijB1UsP/l1S5Chi/P5hRKeP4u92vk7zsJoGuxf3PRlHFWcYmTUMh7j77hdEcrw04PQ/DYN/7invBBVrfjpaa3myaxoQ9rBn4G/97il5vZDKR2+1IWGs+zJTgtYkuUsGzuvH9esvskeeQelnIvp20NQrafeJg== 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=7hONVtqt5zlnBxR2jFJLPKx4jmD1TCEyUN4QznupP6E=; b=LTd4IiVHKsI0CZO2h25QodJNg6II3h5RrfdsEfrd2F2MfZ+bejeaf+6n1vCsrwn7WI/sH0jzwW6MnnRrWxo2esum5XbVGVeAQ2BhuKRhbdaKEd1BBKCTgXBqNkWN2B7Cdxiy9L9Yy6uW87sZD1Rn7C9WeTO/Apk7rdNCan3FW0uivytW+0De/a5ZZHqTXpI3P97Xf9F2rlqL24YPURIFdQ3MNAyi99zKtOpwkLE25iV9lg7/i0vDJyq3V4oEBHj3XGlxrw+zpxAKk1mDrdKpsA6FnhySscRraCkiIvHDLhL+eIO6JbJzbL2BsLCA2CsgBttOpqmdNU1X9/0AoyTN3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7hONVtqt5zlnBxR2jFJLPKx4jmD1TCEyUN4QznupP6E=; b=k0oxV9vA9VO0YzeCrBswofxRzJKGjNJan8ULybGuFLFM6TnxSeA0j545Bl/mU0OIVNezJIlV8PonVD4zysSODD2kiHSslsXc8IurVM78gNwX1doA+6IGAM+XHFOTdOl6Eot7FovHdjMgVUHcbm10uSvuNoYm0g1Ezz6aCiptBfs= Received: from VI1PR05MB3422.eurprd05.prod.outlook.com (10.170.235.159) by VI1PR05MB4831.eurprd05.prod.outlook.com (20.177.49.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2451.29; Thu, 21 Nov 2019 13:05:49 +0000 Received: from VI1PR05MB3422.eurprd05.prod.outlook.com ([fe80::e9ca:a1b7:1197:936f]) by VI1PR05MB3422.eurprd05.prod.outlook.com ([fe80::e9ca:a1b7:1197:936f%6]) with mapi id 15.20.2451.029; Thu, 21 Nov 2019 13:05:49 +0000 From: Paul Blakey To: wenxu CC: "pablo@netfilter.org" , "netdev@vger.kernel.org" , Mark Bloch Subject: RE: Question about flow table offload in mlx5e Thread-Topic: Question about flow table offload in mlx5e Thread-Index: AQHVoD2I/ci1XqDAS0+ihzjR81tg26eVO/4ggAAO9ACAAAbLAIAAPhcAgAAIURA= Date: Thu, 21 Nov 2019 13:05:48 +0000 Message-ID: References: <1574147331-31096-1-git-send-email-wenxu@ucloud.cn> <20191119.163923.660983355933809356.davem@davemloft.net> <2a08a1aa-6aa8-c361-f825-458d234d975f@ucloud.cn> <746ba973-3c58-31f8-42ce-db880fd1d8f4@ucloud.cn> In-Reply-To: <746ba973-3c58-31f8-42ce-db880fd1d8f4@ucloud.cn> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=paulb@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 34e2cb58-b569-4194-4dde-08d76e8387a3 x-ms-traffictypediagnostic: VI1PR05MB4831:|VI1PR05MB4831: x-ms-exchange-purlcount: 2 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-forefront-prvs: 0228DDDDD7 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(396003)(136003)(39850400004)(366004)(376002)(346002)(13464003)(199004)(189003)(71200400001)(6116002)(6306002)(3846002)(186003)(6506007)(5660300002)(52536014)(7736002)(71190400001)(478600001)(11346002)(55016002)(14454004)(102836004)(66066001)(107886003)(229853002)(6436002)(53546011)(966005)(446003)(25786009)(66946007)(26005)(6246003)(8936002)(2906002)(76176011)(86362001)(54906003)(9686003)(64756008)(81156014)(66556008)(81166006)(8676002)(66446008)(33656002)(4326008)(305945005)(316002)(76116006)(6916009)(74316002)(7696005)(66476007)(256004)(14444005)(99286004)(32563001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR05MB4831;H:VI1PR05MB3422.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9iR8pepZdASZiAA1FIZUQif9713OjfLzdSpjg2Tf5bLBtR1t9VebiZkcQYCUN2G8EZu3QzDIGPpCGaHa1vFZmnWlCYmHLNuFAz921hAssbMO8nsE7dXl7HE1qD0V5mKdKFtrap4vygm+1E+pGmnlXNW9rFDoJZ8y+BMy0bw3ntopMjnfzXe3xW6NXaaZGOwtmQvgDw+f6vIXh6HDgbK/XAhwtslqelsDRhIdUGkusWlJhrfsBvKNdsoHJJs+vY1VhKHfjENTgXx2dOeLttINIn2ElXo9CH+rNy8yeyCO43zi1dsqj/xqDQlitT94hMrswp9Xi/kNwCexhTrgqrXmCeGdJYaNa6XxE7kytEKG2A14uCIX6/0ohzwWOW+3qPX1xTy1FbvwsHNvFRdG0blPrNTxZTyn1qOFih13wyFtIBcdy7/VQUGNXzxGVEJiTYkLZgS8NkhM7lr9Qsiz9/VBr7NPJWpErl5Ype08JggSQFk= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34e2cb58-b569-4194-4dde-08d76e8387a3 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2019 13:05:48.9266 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: X+K8dycG+av7eac7KHDGOPjcr2yxqJu/S/QUuvY7SVWIXh57mdWu7kynQtXGoI3njLVgH5AiQIvSCwDgfJ1dvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4831 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org SSBzZWUsIEkgd2lsbCB0ZXN0IHRoYXQsIGFuZCBob3cgYWJvdXQgbm9ybWFsIEZXRCBydWxlcz8N Cg0KUGF1bC4NCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IHdlbnh1 IDx3ZW54dUB1Y2xvdWQuY24+DQo+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAyMSwgMjAxOSAy OjM1IFBNDQo+IFRvOiBQYXVsIEJsYWtleSA8cGF1bGJAbWVsbGFub3guY29tPg0KPiBDYzogcGFi bG9AbmV0ZmlsdGVyLm9yZzsgbmV0ZGV2QHZnZXIua2VybmVsLm9yZzsgTWFyayBCbG9jaA0KPiA8 bWFya2JAbWVsbGFub3guY29tPg0KPiBTdWJqZWN0OiBSZTogUXVlc3Rpb24gYWJvdXQgZmxvdyB0 YWJsZSBvZmZsb2FkIGluIG1seDVlDQo+IA0KPiANCj4g5ZyoIDIwMTkvMTEvMjEgMTk6MzksIFBh dWwgQmxha2V5IOWGmemBkzoNCj4gPiBUaGV5IGFyZSBnb29kIGZpeGVzLCBleGFjdGx5IHdoYXQg d2UgaGFkIHdoZW4gd2UgdGVzdGVkIHRoaXMsIHRoYW5rcy4NCj4gPg0KPiA+IFJlZ2FyZGluZyBl bmNhcCwgSSBkb24ndCBrbm93IHdoYXQgY2hhbmdlcyB5b3UgZGlkLCBob3cgZG9lcyB0aGUgZW5j YXANCj4gcnVsZSBsb29rPyBJcyBpdCBhIEZXRCB0byB2eGxhbiBkZXZpY2U/IElmIG5vdCBpdCBz aG91bGQgYmUsIGFzIG91ciBkcml2ZXINCj4gZXhwZWN0cyB0aGF0Lg0KPiBJdCBpcyBmd2QgdG8g YSBncmV0YXAgZGV2aWNlcw0KPiA+DQo+ID4gSSB0cmllZCBpdCBvbiBteSBzZXR1cCB2aWEgdGMs IGJ5IGNoYW5naW5nIHRoZSBjYWxsYmFjayBvZiB0Yw0KPiAobWx4NWVfcmVwX3NldHVwX3RjX2Ni KSB0byB0aGF0IG9mIGZ0IChtbHg1ZV9yZXBfc2V0dXBfZnRfY2IpLA0KPiA+IGFuZCB0ZXN0aW5n IGEgdnhsYW4gZW5jYXAgcnVsZToNCj4gPiBzdWRvIHRjIHFkaXNjIGFkZCBkZXYgZW5zMWYwXzAg aW5ncmVzcw0KPiA+IHN1ZG8gaWZjb25maWcgZW5zMWYwIDcuNy43LjcvMjQgdXANCj4gPiBzdWRv IGlwIGxpbmsgYWRkIG5hbWUgdnhsYW4wIHR5cGUgdnhsYW4gZGV2IGVuczFmMCByZW1vdGUgNy43 LjcuOCBkc3Rwb3J0DQo+IDQ3ODkgZXh0ZXJuYWwNCj4gPiBzdWRvIGlmY29uZmlnIHZ4bGFuMCB1 cA0KPiA+IHN1ZG8gdGMgZmlsdGVyIGFkZCBkZXYgZW5zMWYwXzAgaW5ncmVzcyBwcmlvIDEgY2hh aW4gMCBwcm90b2NvbCBpcCBmbG93ZXINCj4gZHN0X21hYyBhYTpiYjpjYzpkZDplZTpmZiBpcF9w cm90byB1ZHAgc2tpcF9zdyAgYWN0aW9uIHR1bm5lbF9rZXkgc2V0DQo+IHNyY19pcCAwLjAuMC4w IGRzdF9pcCA3LjcuNy44IGlkIDEyMzQgZHN0X3BvcnQgNDc4OSBwaXBlIGFjdGlvbiBtaXJyZWQg ZWdyZXNzDQo+IHJlZGlyZWN0IGRldiB2eGxhbg0KPiA+DQo+ID4gdGhlbiB0YyBzaG93Og0KPiA+ IGZpbHRlciBwcm90b2NvbCBpcCBwcmVmIDEgZmxvd2VyIGNoYWluIDAgaGFuZGxlIDB4MSBkc3Rf bWFjIGFhOmJiOmNjOmRkOmVlOmZmDQo+IGlwX3Byb3RvIHVkcCBza2lwX3N3IGluX2h3IGluX2h3 X2NvdW50IDENCj4gPiAgICAgICAgIHR1bm5lbF9rZXkgc2V0IHNyY19pcCAwLjAuMC4wIGRzdF9p cCA3LjcuNy44IGtleV9pZCAxMjM0IGRzdF9wb3J0IDQ3ODkNCj4gY3N1bSBwaXBlDQo+ID4gICAg ICAgICBTdGF0czogdXNlZCAxMTkgc2VjICAgICAgMCBwa3QNCj4gPiAgICAgICAgIG1pcnJlZCAo RWdyZXNzIFJlZGlyZWN0IHRvIGRldmljZSB2eGxhbjApDQo+ID4gICAgICAgICBTdGF0czogdXNl ZCAxMTkgc2VjICAgICAgMCBwa3QNCj4gDQo+IENhbiB5b3Ugc2VuZCBwYWNrZXQgdGhhdCBtYXRj aCB0aGlzIG9mZmxvYWRlZCBmbG93IHRvIGNoZWNrIGl0IGlzIHJlYWwNCj4gb2ZmbG9hZGVkPw0K PiANCj4gSW4gdGhlIGZsb3d0YWJsZSBvZmZsb2FkIHdpdGggbXkgcGF0Y2hlcyBib3RoIFRDX1NF VFVQX0JMT0NLIGFuZA0KPiBUQ19TRVRVUF9GVCBjYW4gb2ZmbG9hZCB0aGUgcnVsZSBzdWNjZXNz DQo+IA0KPiBCdXQgaW4gdGhlIFRDX1NFVFVQX0ZUIGNhc2UgdGhlIHBhY2tldCBpcyBub3QgcmVh bCBvZmZsb2FkZWQuDQo+IA0KPiANCj4gScKgIHdpbGwgdGVzdCBsaWtlIHUgZGlkLg0KPiANCj4g Pg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTog d2VueHUgPHdlbnh1QHVjbG91ZC5jbj4NCj4gPj4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDIx LCAyMDE5IDEwOjI5IEFNDQo+ID4+IFRvOiBQYXVsIEJsYWtleSA8cGF1bGJAbWVsbGFub3guY29t Pg0KPiA+PiBDYzogcGFibG9AbmV0ZmlsdGVyLm9yZzsgbmV0ZGV2QHZnZXIua2VybmVsLm9yZzsg TWFyayBCbG9jaA0KPiA+PiA8bWFya2JAbWVsbGFub3guY29tPg0KPiA+PiBTdWJqZWN0OiBSZTog UXVlc3Rpb24gYWJvdXQgZmxvdyB0YWJsZSBvZmZsb2FkIGluIG1seDVlDQo+ID4+DQo+ID4+DQo+ ID4+IE9uIDExLzIxLzIwMTkgMzo0MiBQTSwgUGF1bCBCbGFrZXkgd3JvdGU6DQo+ID4+PiBIaSwN Cj4gPj4+DQo+ID4+PiBUaGUgb3JpZ2luYWwgZGVzaWduIHdhcyB0aGUgYmxvY2sgc2V0dXAgdG8g dXNlIFRDX1NFVFVQX0ZUIHR5cGUsIGFuZA0KPiB0aGUNCj4gPj4gdGMgZXZlbnQgdHlwZSB0byBi ZSBjYXNlIFRDX1NFVFVQX0NMU0ZMT1dFUi4NCj4gPj4+IFdlIHdpbGwgcG9zdCBhIHBhdGNoIHRv IGNoYW5nZSB0aGF0LiBJIHdvdWxkIGFkdmlzZSB0byB3YWl0IHRpbGwgd2UgZml4IHRoYXQNCj4g Pj4g8J+Yig0KPiA+Pj4gSSdtIG5vdCBzdXJlIGhvdyB5b3UgZ2V0IHRvIHRoaXMgZnVuY3Rpb24g bWx4NWVfcmVwX3NldHVwX2Z0X2NiKCkgaWYgaXQNCj4gdGhlDQo+ID4+IG5mX2Zsb3dfdGFibGVf b2ZmbG9hZCBuZG9fc2V0dXBfdGMgZXZlbnQgd2FzIFRDX1NFVFVQX0JMT0NLLCBhbmQNCj4gbm90 DQo+ID4+IFRDX1NFVFVQX0ZULg0KPiA+Pg0KPiA+Pg0KPiA+PiBZZXMgSSBjaGFuZ2UgdGhlIFRD X1NFVFVQX0JMT0NLIHRvIFRDX1NFVFVQX0ZUIGluIHRoZQ0KPiA+PiBuZl9mbG93X3RhYmxlX29m ZmxvYWRfc2V0dXAuDQo+ID4+DQo+ID4+IFR3byBmaXhlcyBwYXRjaCBwcm92aWRlOg0KPiA+Pg0K PiA+PiBodHRwOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcGF0Y2gvMTE5NzgxOC8NCj4gPj4NCj4g Pj4gaHR0cDovL3BhdGNod29yay5vemxhYnMub3JnL3BhdGNoLzExOTc4NzYvDQo+ID4+DQo+ID4+ IFNvIHRoaXMgY2hhbmdlIG1hZGUgYnkgbWUgaXMgbm90IGNvcnJlY3QgY3VycmVudGx5Pw0KPiA+ Pg0KPiA+Pj4gSW4gb3VyIGRyaXZlciBlbl9yZXAuYyB3ZSBoYXZlOg0KPiA+Pj4+IC0tLS0tLS1z d2l0Y2ggKHR5cGUpIHsNCj4gPj4+PiAtLS0tLS0tY2FzZSBUQ19TRVRVUF9CTE9DSzoNCj4gPj4+ PiAtLS0tLS0tPi0tLS0tLS1yZXR1cm4gZmxvd19ibG9ja19jYl9zZXR1cF9zaW1wbGUodHlwZV9k YXRhLA0KPiA+Pj4+IC0tLS0tLS0+LS0tLS0tLT4tLS0tLS0tPi0tLS0tLS0+LS0tLS0tLT4tLS0t LS0tDQo+ICZtbHg1ZV9yZXBfYmxvY2tfdGNfY2JfbGlzdCwNCj4gPj4+PiAtLS0tLS0tPi0tLS0t LS0+LS0tLS0tLT4tLS0tLS0tPi0tLS0tLS0+LS0tLS0tLSAgbWx4NWVfcmVwX3NldHVwX3RjX2Ni LA0KPiA+Pj4+IC0tLS0tLS0+LS0tLS0tLT4tLS0tLS0tPi0tLS0tLS0+LS0tLS0tLT4tLS0tLS0t ICBwcml2LCBwcml2LCB0cnVlKTsNCj4gPj4+PiAtLS0tLS0tY2FzZSBUQ19TRVRVUF9GVDoNCj4g Pj4+PiAtLS0tLS0tPi0tLS0tLS1yZXR1cm4gZmxvd19ibG9ja19jYl9zZXR1cF9zaW1wbGUodHlw ZV9kYXRhLA0KPiA+Pj4+IC0tLS0tLS0+LS0tLS0tLT4tLS0tLS0tPi0tLS0tLS0+LS0tLS0tLT4t LS0tLS0tDQo+ICZtbHg1ZV9yZXBfYmxvY2tfZnRfY2JfbGlzdCwNCj4gPj4+PiAtLS0tLS0tPi0t LS0tLS0+LS0tLS0tLT4tLS0tLS0tPi0tLS0tLS0+LS0tLS0tLSAgbWx4NWVfcmVwX3NldHVwX2Z0 X2NiLA0KPiA+Pj4+IC0tLS0tLS0+LS0tLS0tLT4tLS0tLS0tPi0tLS0tLS0+LS0tLS0tLT4tLS0t LS0tICBwcml2LCBwcml2LCB0cnVlKTsNCj4gPj4+PiAtLS0tLS0tZGVmYXVsdDoNCj4gPj4+PiAt LS0tLS0tPi0tLS0tLS1yZXR1cm4gLUVPUE5PVFNVUFA7DQo+ID4+Pj4gLS0tLS0tLX0NCj4gPj4+ IEluIG5mX2Zsb3dfdGFibGVfb2ZmbG9hZC5jOg0KPiA+Pj4+IC0tLS0tLS1iby5iaW5kZXJfdHlw ZT4tPQ0KPiBGTE9XX0JMT0NLX0JJTkRFUl9UWVBFX0NMU0FDVF9JTkdSRVNTOw0KPiA+Pj4+IC0t LS0tLS1iby5leHRhY2s+LS0tLS0tPSAmZXh0YWNrOw0KPiA+Pj4+IC0tLS0tLS1JTklUX0xJU1Rf SEVBRCgmYm8uY2JfbGlzdCk7DQo+ID4+Pj4gLS0tLS0tLWVyciA9IGRldi0+bmV0ZGV2X29wcy0+ bmRvX3NldHVwX3RjKGRldiwgVENfU0VUVVBfQkxPQ0ssDQo+ID4+ICZibyk7DQo+ID4+Pj4gLS0t LS0tLWlmIChlcnIgPCAwKQ0KPiA+Pj4+IC0tLS0tLS0+LS0tLS0tLXJldHVybiBlcnI7DQo+ID4+ Pj4gLS0tLS0tLXJldHVybiBuZl9mbG93X3RhYmxlX2Jsb2NrX3NldHVwKGZsb3d0YWJsZSwgJmJv LCBjbWQpOw0KPiA+Pj4gfQ0KPiA+Pj4gRVhQT1JUX1NZTUJPTF9HUEwobmZfZmxvd190YWJsZV9v ZmZsb2FkX3NldHVwKTsNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gU28gdW5sZXNzIHlvdSBjaGFuZ2Vk IHRoYXQgYXMgd2VsbCwgeW91IHNob3VsZCBoYXZlIGdvdHRlbiB0bw0KPiA+PiBtbHg1ZV9yZXBf c2V0dXBfdGNfY2IgYW5kIG5vdCBtbHg1ZV9yZXBfc2V0dXBfdGNfZnQuDQo+ID4+PiBSZWdhcmRp bmcgdGhlIGVuY2FwIGFjdGlvbiwgdGhlcmUgc2hvdWxkIGJlIG5vIGRpZmZlcmVuY2Ugb24gd2hp Y2gNCj4gY2hhaW4NCj4gPj4gdGhlIHJ1bGUgaXMgb24uDQo+ID4+DQo+ID4+DQo+ID4+IEJ1dCBm b3IgdGhlIHNhbWUgZW5jYXAgcnVsZSBjYW4gYmUgcmVhbCBvZmZsb2FkZWQgd2hlbiBzZXR1cCB0 aHJvdWdoDQo+ID4+IHRocm91Z2ggVENfU0VUVVBfQkxPQ0suIEJ1dCBUQ19TRVRVUF9GVCBjYW4n dC4NCj4gPj4NCj4gPj4gU28gaXQgaXMgdGhlIHByb2JsZW0gb2YgVENfU0VUVVBfRlQgaW4gbWx4 NWVfcmVwX3NldHVwX2Z0X2NiID8NCj4gPj4NCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiB3ZW54dSA8d2VueHVAdWNsb3VkLmNuPg0KPiA+Pj4+ IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAyMSwgMjAxOSA5OjMwIEFNDQo+ID4+Pj4gVG86IFBh dWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+DQo+ID4+Pj4gQ2M6IHBhYmxvQG5ldGZpbHRl ci5vcmc7IG5ldGRldkB2Z2VyLmtlcm5lbC5vcmc7IE1hcmsgQmxvY2gNCj4gPj4+PiA8bWFya2JA bWVsbGFub3guY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFF1ZXN0aW9uIGFib3V0IGZsb3cgdGFibGUg b2ZmbG9hZCBpbiBtbHg1ZQ0KPiA+Pj4+DQo+ID4+Pj4gSGnCoCBwYXVsLA0KPiA+Pj4+DQo+ID4+ Pj4gVGhlIGZsb3cgdGFibGUgb2ZmbG9hZCBpbiB0aGUgbWx4NWUgaXMgYmFzZWQgb24gVENfU0VU VVBfRlQuDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEl0IGlzIGFsbW9zdCB0aGUgc2FtZSBhcyBU Q19TRVRVUF9CTE9DSy4NCj4gPj4+Pg0KPiA+Pj4+IEl0IGp1c3Qgc2V0IE1MWDVfVENfRkxBRyhG VF9PRkZMT0FEKSBmbGFncyBhbmQgY2hhbmdlDQo+ID4+Pj4gY2xzX2Zsb3dlci5jb21tb24uY2hh aW5faW5kZXggPSBGREJfRlRfQ0hBSU47DQo+ID4+Pj4NCj4gPj4+PiBJbiBmb2xsb3dpbmcgY29k ZXMgbGluZSAxMzgwIGFuZCAxMzkyDQo+ID4+Pj4NCj4gPj4+PiAxMzY4IHN0YXRpYyBpbnQgbWx4 NWVfcmVwX3NldHVwX2Z0X2NiKGVudW0gdGNfc2V0dXBfdHlwZSB0eXBlLCB2b2lkDQo+ID4+Pj4g KnR5cGVfZGF0YSwNCj4gPj4+PiAxMzY5wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKmNiX3ByaXYpDQo+ID4+Pj4g MTM3MCB7DQo+ID4+Pj4gMTM3McKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGZsb3dfY2xzX29mZmxv YWQgKmYgPSB0eXBlX2RhdGE7DQo+ID4+Pj4gMTM3MsKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGZs b3dfY2xzX29mZmxvYWQgY2xzX2Zsb3dlcjsNCj4gPj4+PiAxMzczwqDCoMKgwqDCoMKgwqDCoCBz dHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiA9IGNiX3ByaXY7DQo+ID4+Pj4gMTM3NMKgwqDCoMKgwqDC oMKgwqAgc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3Ow0KPiA+Pj4+IDEzNzXCoMKgwqDCoMKgwqDC oMKgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4+Pj4gMTM3NsKgwqDCoMKgwqDCoMKgwqAgaW50 IGVycjsNCj4gPj4+PiAxMzc3DQo+ID4+Pj4gMTM3OMKgwqDCoMKgwqDCoMKgwqAgZmxhZ3MgPSBN TFg1X1RDX0ZMQUcoSU5HUkVTUykgfA0KPiA+Pj4+IDEzNznCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBNTFg1X1RDX0ZMQUcoRVNXX09GRkxPQUQpIHwNCj4gPj4+PiAxMzgwwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTUxYNV9UQ19GTEFHKEZUX09GRkxPQUQpOw0KPiA+ Pj4+IDEzODHCoMKgwqDCoMKgwqDCoMKgIGVzdyA9IHByaXYtPm1kZXYtPnByaXYuZXN3aXRjaDsN Cj4gPj4+PiAxMzgyDQo+ID4+Pj4gMTM4M8KgwqDCoMKgwqDCoMKgwqAgc3dpdGNoICh0eXBlKSB7 DQo+ID4+Pj4gMTM4NMKgwqDCoMKgwqDCoMKgwqAgY2FzZSBUQ19TRVRVUF9DTFNGTE9XRVI6DQo+ ID4+Pj4gMTM4NcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghbWx4NV9lc3dp dGNoX3ByaW9zX3N1cHBvcnRlZChlc3cpIHx8IGYtDQo+ID4+Pj4+IGNvbW1vbi5jaGFpbl9pbmRl eCkNCj4gPj4+PiAxMzg2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHJldHVybiAtRU9QTk9UU1VQUDsNCj4gPj4+PiAxMzg3DQo+ID4+Pj4gMTM4OMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFJlLXVzZSB0YyBvZmZsb2FkIHBhdGggYnkg bW92aW5nIHRoZSBmdCBmbG93IHRvIHRoZQ0KPiA+Pj4+IDEzODnCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICogcmVzZXJ2ZWQgZnQgY2hhaW4uDQo+ID4+Pj4gMTM5MMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8NCj4gPj4+PiAxMzkxwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgbWVtY3B5KCZjbHNfZmxvd2VyLCBmLCBzaXplb2YoKmYpKTsNCj4g Pj4+PiAxMzkywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNsc19mbG93ZXIuY29tbW9u LmNoYWluX2luZGV4ID0gRkRCX0ZUX0NIQUlOOw0KPiA+Pj4+IDEzOTPCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBlcnIgPSBtbHg1ZV9yZXBfc2V0dXBfdGNfY2xzX2Zsb3dlcihwcml2 LCAmY2xzX2Zsb3dlciwNCj4gPj4gZmxhZ3MpOw0KPiA+Pj4+IDEzOTTCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBtZW1jcHkoJmYtPnN0YXRzLCAmY2xzX2Zsb3dlci5zdGF0cywgc2l6 ZW9mKGYtPnN0YXRzKSk7DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEkgd2FudCB0byBhZGQgdHVu bmVsIG9mZmxvYWQgc3VwcG9ydCBpbiB0aGUgZmxvdyB0YWJsZSwgScKgIGFkZCBzb21lDQo+IHBh dGNoZXMNCj4gPj4gaW4NCj4gPj4+PiBuZl9mbG93X3RhYmxlX29mZmxvYWQuDQo+ID4+Pj4NCj4g Pj4+PiBBbHNvIGFkZCB0aGUgaW5kciBzZXR1cCBzdXBwb3J0IGluIHRoZSBtbHggZHJpdmVyLiBB bmQgTm93IEkgY2FuwqAgZmxvdw0KPiA+PiB0YWJsZQ0KPiA+Pj4+IG9mZmxvYWQgd2l0aCBkZWNh cC4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gQnV0IEkgbWVldCBhIHByb2JsZW0gd2l0aCB0aGUg ZW5jYXAuwqAgVGhlIGVuY2FwIHJ1bGUgY2FuIGJlIGFkZGVkIGluDQo+ID4+Pj4gaGFyZHdhcmXC oCBzdWNjZXNzZnVsbHkgQnV0IGl0IGNhbid0IGJlIG9mZmxvYWRlZC4NCj4gPj4+Pg0KPiA+Pj4+ IEJ1dCBJIHRoaW5rIHRoZSBydWxlIEkgYWRkZWQgaXMgY29ycmVjdC7CoCBJZiBJIG1hc2sgdGhl IGxpbmUgMTM5Mi4gVGhlIHJ1bGUNCj4gYWxzbw0KPiA+PiBjYW4NCj4gPj4+PiBiZSBhZGQgc3Vj Y2VzcyBhbmQgY2FuIGJlIG9mZmxvYWRlZC4NCj4gPj4+Pg0KPiA+Pj4+IFNvIHRoZXJlIGFyZSBz b21lIGxpbWl0IGZvciBlbmNhcCBvcGVyYXRpb24gZm9yIEZUX09GRkxPQUQgaW4NCj4gPj4+PiBG REJfRlRfQ0hBSU4/DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEJSDQo+ID4+Pj4NCj4gPj4+PiB3 ZW54dQ0KPiA+Pj4+DQo=