Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp782231ybz; Fri, 17 Apr 2020 09:57:10 -0700 (PDT) X-Google-Smtp-Source: APiQypLrtPA5Xwkz2vgBfIMeY1ot8nyRfxBeAxaIIY5yoPDI4eVoy2BrqAcz90k+yD4Ejr4h541O X-Received: by 2002:a17:906:4f8f:: with SMTP id o15mr3834429eju.175.1587142630401; Fri, 17 Apr 2020 09:57:10 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1587142630; cv=pass; d=google.com; s=arc-20160816; b=m7L+4ufblYjlhlQDTNg3s603QoQVenFUOz4uQp7hTOvQVvYVRtyMTZm8nnKXuEgMGv xabcws8qsYmZEue86xkzqpusv0BPv5ksDuouX7dsYhKwBVQU94UZ73QRBzLACWVq1tco 4DK/a5MO3ggeHHCzf6gRU8ONhsAlp2pHEMWeCPoFHWsbJjje6CJVwRBr7MEm0yfW2w/F d62/tPrx6xj4OMQjMgAsgbJZ6tAPPeyf84t45mDTMG0Ngz+gBOqvpDHMjmNi2AT/4F7W FAin0unfoaLhmoR1vBip11EGeDnNiDtuqM5SHYGeume+181aM9ck/1qKQ2uRsGjt4MKg NrsQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=/Hx57acP3rHGWe2w8fP7DbNQz3sjBZN8p/OP8hZ51X4=; b=jhoROY2AmGe+DO/YdbzOyAM8OHHGXeHYK1Rz7sSKq2iS2CXy4S1nmMIXiBbqjRGFQQ 1B8qHzYh0iK2QMDZUyjIAcGMGvrbk6raZ5McuD/+jaSMoVqtr/1RZE59g5ScfuhMXS9a 3ZMz1jMEtxfKId3nfG3WxFsaIGTM0Plv6BTkz9WV1dpJZskhyoSQniPbolVO03q+Erne WRgN9IrV+6E4TT/Zl7LB+pL+wBbjqDFOZ54iJQRhxqnaSh5n3an8nIs2bMITr5GzLBET 4CIwaJPjqskg+GTt6QR98wfmGhj99Cf0NbGf+Foeyc7LgkKgGbA6dDs7tMhqHF2oJCIx v7Mg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=P17tc7O2; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ci23si14241766ejb.133.2020.04.17.09.56.45; Fri, 17 Apr 2020 09:57:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=P17tc7O2; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726753AbgDQQxh (ORCPT + 99 others); Fri, 17 Apr 2020 12:53:37 -0400 Received: from mail-eopbgr750094.outbound.protection.outlook.com ([40.107.75.94]:42209 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726420AbgDQQxf (ORCPT ); Fri, 17 Apr 2020 12:53:35 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=any7NVdsV1IAhKK2a1g39BpbAhiA4GuReRy0rWoln1DZtdZJi9twGj48jVvuOsuhc71YYMNBtJTENq6/WMgWsjZxR658LA8yOaSNhotthX5QG0PwYWQnWKEhcCqY8EhPeRblL0VV+6AEodtiKIURVO/OmJi5HOQm+mgPfn2HnJRENXKPuKd1qVKmlqVdftMRP1qQ+y1NhlZQYo2k/HPrnXBmuHqgqtw7zTuA0+YBmknUXU7eBtOU6n2tkTCPlmZeme9h3pCDsnKW8xjV7OjHNwArXRuRF8ZRqh18FCbwUlVIn4aaI4vCuNVsFUl/MmDMHM+hHbSam/rzm/SZEolXLw== 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=/Hx57acP3rHGWe2w8fP7DbNQz3sjBZN8p/OP8hZ51X4=; b=Hjv7c7H/2rSFytioPoNpllWCOJP4hsKG6t+3PnwS95z/BlPjcnZWPMmW+5WG5X/BvUTCdBH72bO/ZdLmLfXi+cdOGJbyTqP/2Pkwvv9QD7sUJDoiaMF7qLwLQ5tG93mxvoO/joNBp/AyU95sxbqwyolpZYKdSUJPcWS+Tsw9tAiGh9hVwugp1SvMLYtWG/CmtpJ6+gRbsTzr2HUHxCWBGdwondzwuBQRddd9bvJg3ffX6Gt32p2ThvsnrFrXfLqd/Z7/RZ7SiRfGHJublcAjUSCKzk4LwFCLJ5BbzdZF/HJi2XHW0TRTeRvTNKD0pOhOvsOCBsFCU+82i4+uw/Q1xw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/Hx57acP3rHGWe2w8fP7DbNQz3sjBZN8p/OP8hZ51X4=; b=P17tc7O2Iy3y4wnEidkqVpoI4s26kIlOukuuvPCszRA3SxetXEBB0tSeb/UYPhILBSLNA60qAEK/KrOgmY/FJWoLXFlcuwQtgVmj58LCaAta90wz3yqosOQw3d2rcYhVdff577XvNYcrWYA1XKFROPTAYm92HvxUfO4ZbuR3DNs= Received: from CH2PR13MB3398.namprd13.prod.outlook.com (2603:10b6:610:2a::33) by CH2PR13MB3750.namprd13.prod.outlook.com (2603:10b6:610:93::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.6; Fri, 17 Apr 2020 16:53:32 +0000 Received: from CH2PR13MB3398.namprd13.prod.outlook.com ([fe80::49f6:ce9b:9803:2493]) by CH2PR13MB3398.namprd13.prod.outlook.com ([fe80::49f6:ce9b:9803:2493%6]) with mapi id 15.20.2937.007; Fri, 17 Apr 2020 16:53:32 +0000 From: Trond Myklebust To: "olga.kornievskaia@gmail.com" CC: "linux-nfs@vger.kernel.org" , "anna.schumaker@netapp.com" Subject: Re: [PATCH 1/1] NFSv4.1: fix lone sequence transport assignment Thread-Topic: [PATCH 1/1] NFSv4.1: fix lone sequence transport assignment Thread-Index: AQHWFMsRjFm2JNXk8kav0WOkI+SUpah9cM+AgAADbACAAApfgIAAB24AgAAB0wA= Date: Fri, 17 Apr 2020 16:53:32 +0000 Message-ID: <52b65780986192bb635638d4615176bbc1ad579c.camel@hammerspace.com> References: <20200417151540.22111-1-olga.kornievskaia@gmail.com> <9c6c72708f360f543e2b8caaf56cc074aa825c96.camel@hammerspace.com> <7dd1b9300d2a0ec1a31fb3879c62a94f535ccad5.camel@hammerspace.com> In-Reply-To: Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=trondmy@hammerspace.com; x-originating-ip: [68.36.133.222] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9f81233f-3068-4b09-8a49-08d7e2efdcd5 x-ms-traffictypediagnostic: CH2PR13MB3750: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0376ECF4DD x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR13MB3398.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(366004)(376002)(39840400004)(346002)(396003)(136003)(81156014)(8676002)(316002)(71200400001)(26005)(6506007)(53546011)(8936002)(6916009)(4326008)(186003)(2616005)(86362001)(6486002)(36756003)(6512007)(66446008)(64756008)(76116006)(478600001)(54906003)(66946007)(2906002)(91956017)(66556008)(66476007)(5660300002);DIR:OUT;SFP:1102; received-spf: None (protection.outlook.com: hammerspace.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hTqvmudQomFtj2V/l0jApIk8yRYd9ICflASSz4xLCzCuTc7HIpddjNUgW1Q938iO24m/LgdEfwciCMDF5SnB5st1zq5/fJar7ydMQfupqI2IfkLqxJfv0qrlAWpTFTfi33Qf5MalJYsLKCwnZ7xvd5Mdf8VNy9OpIMbhmAcMVJJsT+ytdQ/joJU2t0u8vbQt6o3tlFfIUJHdrS1CwpEe8c1bBRuWbXHSHmbJxTBgKYkJUjUJeJK3QyUoJ5R07u03g6DyRd2uW16MVtdEkHDEWqCNg6x/SYy1cUk6+EZejhaYftkDMEmuFW6BLgVyHV1HwBqqsd+S3Z7m8O9wB1+mspPc/XrBYaQUeyjoF0E9TEawXc0Jjk083C3eW15uwlduOBYo8Wb/z/l0d99fMZOvKyAbR2hoiUHpU8OFuuBWMvQf1Jg26OixbfYxWmguHdIX x-ms-exchange-antispam-messagedata: Um8s9IlFZWwH9/QuWqpSkn2nW5pzue0xqHPxdFOKMFO3nAY8xBYUKPo4S4FBD8zO7Mb9sTwtMio9o4flIvbZGi2Aeo9dviOxMscJzYBCGmBD2uRlKyuygknH3I7geUvnPod5vGhnwxuJN5TU2wNm5Y1fuQVIP+73nH1BYV0c5lnrpo4cDCSOiT+s8rRA1V+lP09eOTC1eT0h+R8k6Ht4C5xhhR9vqnfSAkk2lWcuH00nHfu3sFoecj5CqqFthQgWOj+KSetMJNkSLZAYtCgP75cGyKHql/KfT7acno59WkWTRO/MK4b7vItspLSSIAUxmZ6J1rK/dTQOtQT9ReuCmBX9cWXaDOWhNilDqZmZLYn+yXXnbPFku0ua5jh72eBr71h+hSJ9lqr0eFzGcLj4frm9PbVi3kngqVYlROhev8QWcUZ6s3sZNSJTAg9iiryiM4t4ERZN92lktTdGmJRMN52NBkUNQLVHP515Z9LIfWoOLj0yjTh/n/uAw4EM++NxEpnzUaGwSalqWw/yfA0b/bqJhUnMPTJgwK6cRhWVf60mPd3CzfNruGZUgIMAxV9PvbTSyDz2qDDDjUVWZ67Cdss9bo89eXKjDeTUlx1v+lOBamp+6QMI+iIBOLfo5U0LIhifiP8s2vIyK5bCECdN6zNChzH+UOdyALs5UB0/rZVgtKvxu6o7kxgcSl5g45OppKzqrfs9TbjsoDv65uhzqR7YEEU9vY1SkChvkVz+1/EvolGRt735TILeM/p47Gk4p51aaQje8Vj7LEY9x1wfkaZeleH1V1bE9URtj93ZYIU= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <8E5D1CB3C6E27547A3CF02F3BD7150EE@namprd13.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f81233f-3068-4b09-8a49-08d7e2efdcd5 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2020 16:53:32.5048 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0dkqsh2MnPXtXwNCiynzk75/AHkVjn8n0p/mMPtVZPS87oFwTZswlsnXmMPJ5w9MJ3Y4zZIWFpZDOeXP0ifVIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR13MB3750 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gRnJpLCAyMDIwLTA0LTE3IGF0IDEyOjQ2IC0wNDAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90 ZToNCj4gT24gRnJpLCBBcHIgMTcsIDIwMjAgYXQgMTI6MjAgUE0gVHJvbmQgTXlrbGVidXN0DQo+ IDx0cm9uZG15QGhhbW1lcnNwYWNlLmNvbT4gd3JvdGU6DQo+ID4gT24gRnJpLCAyMDIwLTA0LTE3 IGF0IDExOjQzIC0wNDAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90ZToNCj4gPiA+IEhpIFRyb25k LA0KPiA+ID4gDQo+ID4gPiBPbiBGcmksIEFwciAxNywgMjAyMCBhdCAxMTozMSBBTSBUcm9uZCBN eWtsZWJ1c3QNCj4gPiA+IDx0cm9uZG15QGhhbW1lcnNwYWNlLmNvbT4gd3JvdGU6DQo+ID4gPiA+ IEhpIE9sZ2EsDQo+ID4gPiA+IA0KPiA+ID4gPiBPbiBGcmksIDIwMjAtMDQtMTcgYXQgMTE6MTUg LTA0MDAsIE9sZ2EgS29ybmlldnNrYWlhIHdyb3RlOg0KPiA+ID4gPiA+IFdoZW4gbmNvbm5lY3Qg aXMgdXNlZCwgU0VRVUVOQ0Ugb3BlcmF0aW9uIGN1cnJlbnRseSBpc24ndA0KPiA+ID4gPiA+IGJv dW5kDQo+ID4gPiA+ID4gdG8NCj4gPiA+ID4gPiBhIHBhcnRpY3VsYXIgdHJhbnNwb3J0LiBUaGUg cHJvYmxlbSBpcyBjcmVhdGVkIG9uIGFuIGlkbGUNCj4gPiA+ID4gPiBtb3VudCwNCj4gPiA+ID4g PiB3aGVyZSBTRVFVRU5DRSBpcyB0aGUgb25seSBvcGVyYXRpb24gYmVpbmcgc2VudCBhbmQgb3Bl bmVkDQo+ID4gPiA+ID4gVFBDDQo+ID4gPiA+ID4gY29ubmVjdGlvbnMgYXJlIHNsb3dseSBiZWlu ZyBjbG9zZSBmcm9tIHRoZSBsYWNrIG9mIHVzZS4gSWYNCj4gPiA+ID4gPiBTRVFVRU5DRQ0KPiA+ ID4gPiA+IGlzIG5vdCBhc3NpZ25lZCB0byB0aGUgbWFpbiBjb25uZWN0aW9uLCB0aGUgbWFpbiBj b25uZWN0aW9uDQo+ID4gPiA+ID4gY2FuDQo+ID4gPiA+ID4gYmUgY2xvc2VkIGFuZCB3aXRoIHRo YXQgc28gaXMgdGhlIGJhY2sgY2hhbm5lbCBib3VuZCB0byB0aGF0DQo+ID4gPiA+ID4gY29ubmVj dGlvbi4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBTaW5jZSB0aGUgb25seSB3YXkgY2xpZW50IGhh bmRsZXMgY2FsbGJhY2tfcGF0aCBkb3duIGlzIGJ5DQo+ID4gPiA+ID4gc2VuZGluZw0KPiA+ID4g PiA+IEJJTkRfQ09OTl9UT19TRVNTSU9OIHJlcXVlc3RpbmcgdG8gYmluZCBib3RoIGJhY2tjaGFu bmVsIGFuZA0KPiA+ID4gPiA+IGZvcmUNCj4gPiA+ID4gPiBjaGFubmVsIG9uIHRoZSBjb25uZWN0 aW9uIHRoYXQgd2FzIGxlZnQgZ29pbmcsIGJ1dCB0aGF0DQo+ID4gPiA+ID4gY29ubmVjdGlvbg0K PiA+ID4gPiA+IHdhcyBhbHJlYWR5IGJvdW5kIHRvIG9ubHkgZm9yZWNoYW5uZWwuIEFjY29yZGlu ZyB0byB0aGUgc3BlYywNCj4gPiA+ID4gPiBpdCdzDQo+ID4gPiA+ID4gbm90IGFsbG93ZWQgdG8g Y2hhbmdlIGNoYW5uZWwgYmluZGluZyBhZnRlciB0aGV5IGFyZSBkb25lLg0KPiA+ID4gPiA+IA0K PiA+ID4gPiA+IFRoZSBmaXggaXMgdG8gbWFrZSBzdXJlIHRoYXQgYSBsb25lIFNFUVVFTkNFIGFs d2F5cyBnb2VzIG9uDQo+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gbWFpbiBjb25uZWN0aW9uLCBr ZWVwaW5nIGJhY2tjaGFubmVsIGFsaXZlLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEZpeGVzOiA1 YTBjMjU3ZjggKCJORlM6IHNlbmQgc3RhdGUgbWFuYWdlbWVudCBvbiBhIHNpbmdsZQ0KPiA+ID4g PiA+IGNvbm5lY3Rpb24iKQ0KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE9sZ2EgS29ybmlldnNr YWlhIDxrb2xnYUBuZXRhcHAuY29tPg0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ICBmcy9uZnMv bmZzNHByb2MuYyB8IDIgKy0NCj4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2Zz L25mcy9uZnM0cHJvYy5jIGIvZnMvbmZzL25mczRwcm9jLmMNCj4gPiA+ID4gPiBpbmRleCA5OWU5 ZjJlLi40NjFmODVkIDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBhL2ZzL25mcy9uZnM0cHJvYy5jDQo+ ID4gPiA+ID4gKysrIGIvZnMvbmZzL25mczRwcm9jLmMNCj4gPiA+ID4gPiBAQCAtODg1Nyw3ICs4 ODU3LDcgQEAgc3RhdGljIHN0cnVjdCBycGNfdGFzaw0KPiA+ID4gPiA+ICpfbmZzNDFfcHJvY19z ZXF1ZW5jZShzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwLA0KPiA+ID4gPiA+ICAgICAgICAgICAgICAg LnJwY19jbGllbnQgPSBjbHAtPmNsX3JwY2NsaWVudCwNCj4gPiA+ID4gPiAgICAgICAgICAgICAg IC5ycGNfbWVzc2FnZSA9ICZtc2csDQo+ID4gPiA+ID4gICAgICAgICAgICAgICAuY2FsbGJhY2tf b3BzID0gJm5mczQxX3NlcXVlbmNlX29wcywNCj4gPiA+ID4gPiAtICAgICAgICAgICAgIC5mbGFn cyA9IFJQQ19UQVNLX0FTWU5DIHwgUlBDX1RBU0tfVElNRU9VVCwNCj4gPiA+ID4gPiArICAgICAg ICAgICAgIC5mbGFncyA9IFJQQ19UQVNLX0FTWU5DIHwgUlBDX1RBU0tfVElNRU9VVCB8DQo+ID4g PiA+ID4gUlBDX1RBU0tfTk9fUk9VTkRfUk9CSU4sDQo+ID4gPiA+ID4gICAgICAgfTsNCj4gPiA+ ID4gPiAgICAgICBzdHJ1Y3QgcnBjX3Rhc2sgKnJldDsNCj4gPiA+ID4gPiANCj4gPiA+ID4gDQo+ ID4gPiA+IFRoaXMgd29ya3Mgb25seSBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgY2xpZW50IGlzIG9u bHkgc2VuZGluZw0KPiA+ID4gPiBTRVFVRU5DRQ0KPiA+ID4gPiBpbnN0cnVjdGlvbnMuIFRoZXJl IGFyZSBvdGhlciBjYXNlcyB3aGVyZSBpdCBjb3VsZCBiZSBzZW5kaW5nDQo+ID4gPiA+IG91dA0K PiA+ID4gPiBvdGhlcg0KPiA+ID4gPiBvcGVyYXRpb25zIHRoYXQgYWxzbyByZW5ldyB0aGUgbGVh c2UsIGJ1dCBpcyBkb2luZyBpdCB2ZXJ5DQo+ID4gPiA+IGluZnJlcXVlbnRseS4gV29uJ3QgdGhh dCBhbHNvIHJ1biBpbnRvIHRoZSBzYW1lIHByb2JsZW0/DQo+ID4gPiANCj4gPiA+IEhtLi4uIEkg c2VlIHNvIG1haW4gY2hhbm5lbCBjYW4gc3RpbGwgZ28gaWRsZSBhbmQgY2xvc2UsIHdoZW4NCj4g PiA+IGluZnJlcXVlbnQgb3BlcmF0aW9ucyBhcmUgaGFwcGVuaW5nIG9uIHRoZSBvdGhlciBjb25u ZWN0aW9ucw0KPiA+ID4gYmVmb3JlDQo+ID4gPiByb3VuZC1yb2Jpbi1pbmcgdG8gdGhlIG1haW4g Y29ubmVjdGlvbi4uLi4NCj4gPiA+IA0KPiA+ID4gPiBJcyB0aGUgZnVuZGFtZW50YWwgcHJvYmxl bSBoZXJlIHRoYXQgd2UncmUgbm90IGhhbmRsaW5nIHRoZQ0KPiA+ID4gPiBTRVE0X1NUQVRVU19D Ql9QQVRIX0RPV04gLyBTRVE0X1NUQVRVU19DQl9QQVRIX0RPV05fU0VTU0lPTg0KPiA+ID4gPiBm bGFncw0KPiA+ID4gPiBjb3JyZWN0bHkgb3IgaXMgdGhlcmUgc29tZXRoaW5nIGVsc2UgZ29pbmcg b24/DQo+ID4gPiANCj4gPiA+IFllcyB0aGUgY2xpZW50IGRvZXNuJ3QgcmVjb3ZlciBwcm9wZXJs eS4gQnV0IHRoZSBmaXggd2Fzbid0DQo+ID4gPiB0cml2aWFsDQo+ID4gPiB0bw0KPiA+ID4gbWUg KHNvIEkgdGhvdWdodCBteSBwYXRjaCB3YXMgZW5vdWdoIGJ1dCBJIHNlZSBpdCdzIG5vdCkuIFNh eQ0KPiA+ID4gY2xpZW50DQo+ID4gPiBzaHV0cyBkb3duIHRoZSBtYWluIGNvbm5lY3Rpb24gYmVj YXVzZSBpdCB3YXMgaWRsZS4gTm93IHdoYXRldmVyDQo+ID4gPiBvcGVyYXRpb25zIGdvZXMgb24g YSBkaWZmZXJlbnQgY29ubmVjdGlvbiBpcyBnb2luZyB0byBnZXQNCj4gPiA+IGNhbGxiYWNrDQo+ ID4gPiBkb3duLiBUaGUgb25seSB3YXkgdGhlIGNsaWVudCBjYW4gY3JlYXRlIGEgbmV3IGJhY2tj aGFubmVsDQo+ID4gPiAoYWNjb3JkaW5nDQo+ID4gPiB0byB0aGUgc3BlYykgaXMgaWYgaXQgY3Jl YXRlcyBhIGJyYW5kIG5ldyBjb25uZWN0aW9uIGFuZCBzZW5kcw0KPiA+ID4gQklORF9DT05OX1RP X1NFU1NJT04gdGhlcmUgKGFsbCBleGlzdGluZyBjb25uZWN0aW9ucyBhcmUgYWxyZWFkeQ0KPiA+ ID4gYm91bmQNCj4gPiA+IHRvIGZvcmUgY2hhbm5lbCBhbmQgYWNjb3JkaW5nIHRvIHRoZSBzcGVj IHlvdSBjYW4ndCBtb2RpZnkgdGhlDQo+ID4gPiBleGlzdGluZyBiaW5kaW5nKS4gQnV0IHRoZW4g d2UnZCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGl0J3MgdGhlDQo+ID4gPiBmaXJzdA0KPiA+ID4g b25lIGluIHRoZSBsaXN0IG9mIGNvbm5lY3Rpb25zIHdlIGl0ZXJhdGUgdGhydSAoYXMgaSB0aGlu ayAxc3QNCj4gPiA+IG1hcmtzDQo+ID4gPiB0aGUgbWFpbiBjb25uZWN0aW9uPykgYXMgdGhlIG90 aGVyIG9wZXJhdGlvbnMgdGhhdCBzdXBwb3NlZCB0bw0KPiA+ID4gb25seQ0KPiA+ID4gZ28NCj4g PiA+IG9uIG1haW4gY29ubmVjdGlvbiBuZWVkIHRvIGtub3cgd2hpY2ggY29ubmVjdGlvbiB0byBw aWNrLg0KPiA+ID4gDQo+ID4gPiBUaGUgcmVhc29uIGl0J3Mgbm90IHNlZW4gYWdhaW5zdCBsaW51 eCBpcyBiZWNhdXNlIGl0IGRvZXNuJ3QNCj4gPiA+IGZvbGxvdw0KPiA+ID4gdGhlIHNwZWMgaXMg ZG9lc24ndCByZWplY3QgYXR0ZW1wdHMgdG8gYmluZCBhIGJhY2tjaGFubmVsIHRvIGFuDQo+ID4g PiBhbHJlYWR5IGV4aXN0aW5nIGNvbm5lY3Rpb24gdGhhdCB3YXMgb25seSBib3VuZCBmb3IgZm9y ZSBjaGFubmVsLg0KPiA+ID4gDQo+ID4gDQo+ID4gT2gsIEkgc2VlLiBTbyB0aGUgc2VydmVyIGlz IHJlcGx5aW5nIE5GUzRFUlJfSU5WQUwgaW4gb3JkZXIgdG8gbGV0DQo+ID4gdGhlDQo+ID4gY2xp ZW50IGtub3cgdGhhdCBpdCBpcyB0cnlpbmcgdG8gY2hhbmdlIHRoZSBjaGFubmVsIGJpbmRpbmdz IGZvcg0KPiA+IHRoYXQNCj4gPiBjb25uZWN0aW9uLg0KPiANCj4gV2VsbCBzZXJ2ZXIgaXNuJ3Qg ZmFpbGluZyBiZWNhdXNlIGNsaWVudCBpcyBhc2tpbmcgZm9yIEZPUkVfT1JfQk9USA0KPiBhbmQg aXQncyBhIGNob2ljZSBzbyBzZXJ2ZXIgaXMgcmV0dXJuaW5nIEZPUkUuIEknbSBub3Qgc3VyZSB3 ZSBjYW4NCj4gYXNrDQo+IHRoZSBzZXJ2ZXIgdG8gZmFpbCB0aGUgcmVxdWVzdCB3aXRoIEVSUl9J TlZBTC4uLi4gKHJhdGhlciBJIGNhbiBhc2sNCj4gYnV0ICkgcmF0aGVyIGNhbiB3ZSBleHBlY3Qg dGhlIHNlcnZlciB0byBkbyB0aGF0IGFsd2F5cz8NCg0KSW4gUkZDNTY2MSwgU2VjdGlvbiAxOC4z NC4zIEkgZm91bmQgdGhlIGZvbGxvd2luZyBub3JtYXRpdmUgdGV4dDoNCg0KICAgSW52b2tpbmcg QklORF9DT05OX1RPX1NFU1NJT04gb24gYSBjb25uZWN0aW9uIGFscmVhZHkgYXNzb2NpYXRlZCB3 aXRoDQogICB0aGUgc3BlY2lmaWVkIHNlc3Npb24gaGFzIG5vIGVmZmVjdCwgYW5kIHRoZSBzZXJ2 ZXIgTVVTVCByZXNwb25kIHdpdGgNCiAgIE5GUzRfT0ssIHVubGVzcyB0aGUgY2xpZW50IGlzIGRl bWFuZGluZyBjaGFuZ2VzIHRvIHRoZSBzZXQgb2YNCiAgIGNoYW5uZWxzIHRoZSBjb25uZWN0aW9u IGlzIGFzc29jaWF0ZWQgd2l0aC4gIElmIHNvLCB0aGUgc2VydmVyIE1VU1QNCiAgIHJldHVybiBO RlM0RVJSX0lOVkFMLg0KDQoNCklPVzogaXQgc291bmRzIGxpa2UgeW91ciBzZXJ2ZXIgaXNuJ3Qg Zm9sbG93aW5nIHRoZSBzcGVjIGVpdGhlci4g8J+Zgg0KDQo+ID4gSG1tLi4uIElzIHRoZXJlIGFu eSByZWFzb24gd2h5IHdlIGNhbid0IGp1c3QgYWRkIGEgaGFuZGxlciB0bw0KPiA+IG5mczRfYmlu ZF9vbmVfY29ubl90b19zZXNzaW9uX2RvbmUoKSB0aGF0IGludGVyY2VwdHMgTkZTNEVSUl9JTlZB TCwNCj4gPiBhbmQNCj4gPiBkaXNjb25uZWN0cyB0aGUgeHBydCBiZWZvcmUgcmV0cnlpbmc/DQo+ ID4gV2Ugc2hvdWxkIHByb2JhYmx5IGFkZCBhIHdyYXBwZXIgdG8geHBydF9mb3JjZV9kaXNjb25u ZWN0KCkgaW4NCj4gPiBpbmNsdWRlL2xpbnV4L3N1bnJwYy9jbG50LmguIFNvbWV0aGluZyBsaWtl IHRoZSBmb2xsb3dpbmc/DQo+ID4gDQo+ID4gDQo+ID4gc3RhdGljIGlubGluZSB2b2lkIHJwY190 YXNrX2Nsb3NlX2Nvbm5lY3Rpb24oc3RydWN0IHJwY190YXNrICp0YXNrKQ0KPiA+IHsNCj4gPiAg ICAgICAgIGlmICh0YXNrLT50a194cHJ0KQ0KPiA+ICAgICAgICAgICAgICAgICB4cHJ0X2ZvcmNl X2Rpc2Nvbm5lY3QodGFzay0+dGtfeHBydCk7DQo+ID4gfQ0KPiA+IA0KDQotLSANClRyb25kIE15 a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVyLCBIYW1tZXJzcGFjZQ0KdHJvbmQu bXlrbGVidXN0QGhhbW1lcnNwYWNlLmNvbQ0KDQoNCg==