Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp4051867pxu; Mon, 30 Nov 2020 16:41:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJyLZcfWZZM6/74utUDv6rUXq/w97HxWOBCIlZvxi6+TUNSKBl6SgXV9fVQNLDSEF1y7XvNl X-Received: by 2002:a50:b002:: with SMTP id i2mr381859edd.99.1606783292337; Mon, 30 Nov 2020 16:41:32 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1606783292; cv=pass; d=google.com; s=arc-20160816; b=lqsyQp3kmULk4qbYA9w9ufUxyOKkHijl839pTJ8umw4QgT1MyJ+hQE+x+4DfcY9eDb dE+cEpN1InXEHWFD2J7BXsl5hnpw5Vc0aqOrghXEHO/vTQSi/+tTY0aCF6xV0UvZsAhI zFWuSfyO1km0ivJVOIcUwa8SMvoHSau91fXEgh1TE9BJkD0xHchcM8O8yf+avkCwT+2Z UuZ1szIjYcayNnQjwp4cRFISTTLU4Qj5290v+GYkGO+5shPM7gxZ5IEV4US1D1ir+rDQ J2CEnfna3gJjOUl9uC+0n9VQvolbG7yQCyyIPmwdIR6Mfu0RzY4sB3fs9i0UVhZL/Zh8 xuKg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence: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=t2Ln3VXGbA2MuACgNnl3kAp7Mk8cdnqkm6Qsm4OMIbI=; b=n0v6rFMwNM2LB5yFb06KnqtViIZjh9zhibSmCuk6A10YMCXZw6Sh0qRvUxBSHNrxPy mwP+HSrM4tTlogkGDXUG27SZ2u/zmd7HXwVcORgFyZZDwrBhHgjKQOpwjGGH/A3GEfVt W8jExU1WPTXIRedbkgNTa9dVdQeUmU/2FQJ/ApGcvgifzs/SLkAvu8NkxcOvlYiJLSfB JnMChLB8pNKEb4Xmhp4RWkQSx/U1ck7AYh2JOl7vysagBUbRcdMUUODlSc6FqEy2oFSC +61rUr+t8bMehrrVYRLagRF33WpS+S8K/HtpVni8c+VXjctqhfGz8aSb7Ij6ZwGbQxi1 zdRQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=SCoxZPWh; 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 q19si11994219ejt.514.2020.11.30.16.41.08; Mon, 30 Nov 2020 16:41:32 -0800 (PST) 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=SCoxZPWh; 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 S2387544AbgLAAkM (ORCPT + 99 others); Mon, 30 Nov 2020 19:40:12 -0500 Received: from mail-eopbgr770121.outbound.protection.outlook.com ([40.107.77.121]:29880 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728609AbgLAAkL (ORCPT ); Mon, 30 Nov 2020 19:40:11 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Md8Xi0B16CZcD01GvcMJivw3Hj6paM/YxwluoT6gzXOmQ81WYfpEfD6uQGL6y6JaC9+zRXiBf3IKeXepMeDHdFhPV9VXB7ekUM+iaGqgfbWH7onO2OXbV6tM7pwjuDurQXkoN7yh7YKOFpHrGFO0ys7fmZyOJILKbcLo77eUMS7+etCmBxV7kTnKjmjscI8bqfSoU++4RQRh6Iz2vma3AE+QNemxedssbPNRnnqdl8Knqy/ICbyH576Z6OstNGynUQf3rdhQZMnD94PQWW+nLhnQDOTBEz3Aj0BuTL2nTNjMoHknaNELMZtzR9TzjnRBAPW4uxIfqH66tV0BT5lqVg== 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=t2Ln3VXGbA2MuACgNnl3kAp7Mk8cdnqkm6Qsm4OMIbI=; b=GJY7FwMP6vqf5tJvxsLIY0aXHsnBovGoGzChoMQvPUaIjkGRJ3dXlgUnaTXQSvKoB/k1M1c+DGSkR2Avy6qmbXNilWpNNHN/6RCAbIK6vzu/74oSBKhT0ugxbzIWAAzu3JbBWu95jA3ZZNYQ/AiPPVmY84KlU2hbyCGFyRdvyN2/WMJPXirvX9c57m6F9cYQwyfrP51Pm8rgvuaqBGiOn4EWEZ7fmPU8BFsuTTPT7/23W/SVZB8T7tipBP+9BC7IaFkWfMRLoVgUDQ0t4OGnp6jL0VUvYzLELxXj0y07N3Wu5fY4GAYEL4EtelHVxk5OxvHPn3MoeicbE/SjF9C3Ew== 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=t2Ln3VXGbA2MuACgNnl3kAp7Mk8cdnqkm6Qsm4OMIbI=; b=SCoxZPWh5U2sdlcJ+wiTMW1Xnz68pzTI6aQKc+xwAydCA/LTeQPl64ISAX+X2Q7BwH8U92ZGcbA0WhBHKo81NPVGRIQ1jUI9CUfZYtnq4HkOmRX8PhqYjYUkonXa9vhjCnJmjO8kqUlT9kbaPTjm3tAkb3FJHCAJxRkQJalalWo= Received: from MN2PR13MB3957.namprd13.prod.outlook.com (2603:10b6:208:263::11) by MN2PR13MB3261.namprd13.prod.outlook.com (2603:10b6:208:152::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.8; Tue, 1 Dec 2020 00:39:11 +0000 Received: from MN2PR13MB3957.namprd13.prod.outlook.com ([fe80::e989:f666:131a:e210]) by MN2PR13MB3957.namprd13.prod.outlook.com ([fe80::e989:f666:131a:e210%9]) with mapi id 15.20.3632.016; Tue, 1 Dec 2020 00:39:11 +0000 From: Trond Myklebust To: "bfields@fieldses.org" , "trondmy@kernel.org" CC: "linux-nfs@vger.kernel.org" , "bfields@redhat.com" , "chuck.lever@oracle.com" Subject: Re: [PATCH 5/6] nfsd: Fix up nfsd to ensure that timeout errors don't result in ESTALE Thread-Topic: [PATCH 5/6] nfsd: Fix up nfsd to ensure that timeout errors don't result in ESTALE Thread-Index: AQHWx1+AE528dAfmoE2kLAvPiSVCOKnhS7eAgAAaTYA= Date: Tue, 1 Dec 2020 00:39:11 +0000 Message-ID: <03594580aeae8c7a94dcff16bcdb5a8049d654a7.camel@hammerspace.com> References: <20201130212455.254469-1-trondmy@kernel.org> <20201130212455.254469-2-trondmy@kernel.org> <20201130212455.254469-3-trondmy@kernel.org> <20201130212455.254469-4-trondmy@kernel.org> <20201130212455.254469-5-trondmy@kernel.org> <20201130212455.254469-6-trondmy@kernel.org> <20201130230501.GC22446@fieldses.org> In-Reply-To: <20201130230501.GC22446@fieldses.org> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: fieldses.org; dkim=none (message not signed) header.d=none;fieldses.org; dmarc=none action=none header.from=hammerspace.com; x-originating-ip: [68.36.133.222] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: eea3a12a-7a4d-4f20-7a08-08d895918566 x-ms-traffictypediagnostic: MN2PR13MB3261: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: lovi8jdfiZkex9OXOycfExujwIfCH3cBPgnZ/LX3l79FjLXCOVamDsUfZdd960s298HsH8trXVt6bu4DO/mIEHFOplWp7KyKms4RVJRUE7UY8S+jfFdG7Wd2pIve09SY6t2Vvm0uCUwt0ns4vTmJbCdznD6+2EnuoLjS63uxG+r4pLJMtEwkC2H3TVVtxbEpKby1/hEuwJhtGLDy7DUU6iuA2ukK+7UjnPEsTcEQ6OJyYAgP62PUDx9cX6sFOsMT/mnM9fsFMOQYODhRx7KT+VOvXAtY91dpAy72TQb2prqoLwGzZh1Lxobh+YKRqv2QjWfXjCvPVJ46W1cjf5IZuw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR13MB3957.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(136003)(376002)(346002)(39840400004)(396003)(2906002)(6486002)(8936002)(83380400001)(86362001)(5660300002)(4001150100001)(66946007)(316002)(2616005)(6512007)(6506007)(54906003)(76116006)(66476007)(71200400001)(91956017)(64756008)(110136005)(66446008)(66556008)(26005)(8676002)(36756003)(186003)(478600001)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?Wko3SmMyelBwaTBDVVR1aFAxa1lCMEFIRkRlRGE3UjV2TTg1QlBNU0NrdjBx?= =?utf-8?B?K2ZITklTWHpJbWVhYXhVMWJrcEJPbks1UDA4WUYrSlNwZExla0NmdFRtbk15?= =?utf-8?B?V0hXdmJuUmFuOHBUVHhOMHQxbnpJdkNmQUZCazh4ZXFTQU0wNDlHaFFSQ2kr?= =?utf-8?B?djB0WW9lTDh1Uys4SGZ0NWpZRi9OMjFPUVY3OStybDhhdW5hNmd3cjR4VmF5?= =?utf-8?B?OEwxbFoxa3c3alRBT3BjWVBSYW85SUdRS25ZNU1VTGJrb1pGS2NPenV2SmIx?= =?utf-8?B?OE9ONnQ5Zm01MnA4eHBCMzVBVHRZczFGQ1IrbXVwZks5WlZPM016TXBXQzhV?= =?utf-8?B?K0t6SmZiQU41UXFaS3N1eC8xZjI4YUdpSDhTaDgvVnF5VXNITGduUDU1UTQv?= =?utf-8?B?S25pWWJ2MFFqQW1SY08yU1RrRFBLeEUwZE5rSVdyU0hjOUg1aDFPL1dNc2RV?= =?utf-8?B?Tkc1cTR1VHZIaXJNMkFRbXlRRFFNQmN6L0tEWG9FTXV6RjcvR2NhWk03Tjly?= =?utf-8?B?eEhWbkpsREZnSW94RVZ6MkVYVmRTWi9QdnFwNGJHOElKbW52RUtCOXMrUHov?= =?utf-8?B?K29Nd3VWdEVsZEVTeE5ybE9sTVp0Sng4OVJCRjdNOFNRSFl0cVh6NmR4V2FC?= =?utf-8?B?eFNqWk5IeEsyc0dNc1pLYzdxY1BjTEJNbTVmbUN5Ri95ekk3OU1LbHk5RVJK?= =?utf-8?B?YVVMSlpjS0gzdjIwclg0M0s0WVJmS3Z6MUdoRnpQcEVUWUdhWXh5S3ZpSUhD?= =?utf-8?B?MnZsbmtsQnZjV3VKTGV6NVdMOVZBcGdTaFdHYW9DWkNYdkpMU09OaGdXNVgx?= =?utf-8?B?RzVTVEFEcmROL3VLUDRIRDQrUU9oazRpVTFGRW9xUTZvQ2dwUWZDRUQxeG03?= =?utf-8?B?RWtRcUpIOCtCNWl6ZmdkblB1OFdYMWhSYmdSVTdFQi9YOGtjaGxYK284ZWdS?= =?utf-8?B?L3NMdXphdmI4QnNDNTZiYVFLRG9zMHkrUlBlZDhLYWx5RURzVUgwR28ra2RQ?= =?utf-8?B?ak9uNWJybmNOYzd3TkRoTENJOE5iaFJBU05NQ2tDZG1naG55eUZYQnAzODBO?= =?utf-8?B?NEtacjdGK3RndDZucFpzVXZkbm53Z3BiZDlSUGNBZ1Z0VnBwaHl6cWQ2NExM?= =?utf-8?B?SzBCQUhrZXE5SHQ5SHl0Yy9jLzVNSUdNaDZrRGtjbzJoTHhrOWNTa2NlZTI0?= =?utf-8?B?NFIyb2lvd2dSTW5tRnBKZS9vSFU0RWc2SEluc0tZdU1ib045Y1Y3Ym9PbzJ5?= =?utf-8?B?aUtpMjl6RkZtTFBWSUs3WWxJYmwzMkx0YjcrNWllb1pkOWY3SEVZeTFSS2hJ?= =?utf-8?Q?fUM6/QkcjSoozX8nk3AOiUWGPDVogXezwc?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <78B7FC1A6E4CC74EBCDD5426BEB49C7A@namprd13.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR13MB3957.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: eea3a12a-7a4d-4f20-7a08-08d895918566 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2020 00:39:11.2722 (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: cSw/Opo1XXbFAQR1d/2VFz8XG/XMkQK0OZagF7/Dqmaeq/kDqPxr/+nHV6oTmvt+qNJTx+EiGNJjAqeJeh8BPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3261 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gTW9uLCAyMDIwLTExLTMwIGF0IDE4OjA1IC0wNTAwLCBKLiBCcnVjZSBGaWVsZHMgd3JvdGU6 DQo+IE9uIE1vbiwgTm92IDMwLCAyMDIwIGF0IDA0OjI0OjU0UE0gLTA1MDAsIHRyb25kbXlAa2Vy bmVsLm9yZ8Kgd3JvdGU6DQo+ID4gRnJvbTogVHJvbmQgTXlrbGVidXN0IDx0cm9uZC5teWtsZWJ1 c3RAaGFtbWVyc3BhY2UuY29tPg0KPiA+IA0KPiA+IElmIHRoZSB1bmRlcmx5aW5nIGZpbGVzeXN0 ZW0gdGltZXMgb3V0LCB0aGVuIHdlIHdhbnQga25mc2QgdG8NCj4gPiByZXR1cm4NCj4gPiBORlNF UlJfSlVLRUJPWC9ERUxBWSByYXRoZXIgdGhhbiBORlNFUlJfU1RBTEUuDQo+IA0KPiBPdXQgb2Yg Y3VyaW9zaXR5LCB3aGF0IHdhcyBjYXVzaW5nIEVUSU1FRE9VVCBpbiBwcmFjdGljZT8NCj4gDQoN CklmIHlvdSdyZSBvbmx5IHJlLWV4cG9ydGluZyBORlMgZnJvbSBhIHNpbmdsZSBzZXJ2ZXIsIHRo ZW4gaXQgaXMgT0sgdG8NCnVzZSBoYXJkIG1vdW50cy4gSG93ZXZlciBpZiB5b3UgYXJlIGV4cG9y dGluZyBmcm9tIG11bHRpcGxlIHNlcnZlcnMsIG9yDQp5b3UgaGF2ZSBsb2NhbCBmaWxlc3lzdGVt cyB0aGF0IGFyZSBhbHNvIGJlaW5nIGV4cG9ydGVkIGJ5IHRoZSBzYW1lDQprbmZzZCBzZXJ2ZXIs IHRoZW4geW91IHVzdWFsbHkgd2FudCB0byB1c2Ugc29mdGVyciBtb3VudHMgZm9yIE5GUyBzbw0K dGhhdCBvcGVyYXRpb25zIHRoYXQgdGFrZSBhbiBpbm9yZGluYXRlIGFtb3VudCBvZiB0aW1lIGR1 ZSB0byB0ZW1wb3JhcnkNCnNlcnZlciBvdXRhZ2VzIGdldCBjb252ZXJ0ZWQgaW50byBKVUtFQk9Y L0RFTEFZIGVycm9ycy4gT3RoZXJ3aXNlLCBpdA0KaXMgcmVhbGx5IHNpbXBsZSB0byBjYXVzZSBh bGwgdGhlIG5mc2QgdGhyZWFkcyB0byBoYW5nIG9uIHRoYXQgb25lDQpkZWxpbnF1ZW50IHNlcnZl ci4NCg0KPiAtLWIuDQo+IA0KPiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IFRyb25kIE15a2xlYnVz dCA8dHJvbmQubXlrbGVidXN0QGhhbW1lcnNwYWNlLmNvbT4NCj4gPiAtLS0NCj4gPiDCoGZzL25m c2QvbmZzZmguYyB8IDE2ICsrKysrKysrKysrKy0tLS0NCj4gPiDCoDEgZmlsZSBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9m cy9uZnNkL25mc2ZoLmMgYi9mcy9uZnNkL25mc2ZoLmMNCj4gPiBpbmRleCAwYzJlZTY1ZTQ2ZjMu LjQ2Yzg2ZjdiYzQyOSAxMDA2NDQNCj4gPiAtLS0gYS9mcy9uZnNkL25mc2ZoLmMNCj4gPiArKysg Yi9mcy9uZnNkL25mc2ZoLmMNCj4gPiBAQCAtMjY4LDEyICsyNjgsMjAgQEAgc3RhdGljIF9fYmUz MiBuZnNkX3NldF9maF9kZW50cnkoc3RydWN0DQo+ID4gc3ZjX3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qg c3ZjX2ZoICpmaHApDQo+ID4gwqDCoMKgwqDCoMKgwqDCoGlmIChmaWxlaWRfdHlwZSA9PSBGSUxF SURfUk9PVCkNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRlbnRyeSA9IGRn ZXQoZXhwLT5leF9wYXRoLmRlbnRyeSk7DQo+ID4gwqDCoMKgwqDCoMKgwqDCoGVsc2Ugew0KPiA+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZW50cnkgPSBleHBvcnRmc19kZWNvZGVf ZmgoZXhwLT5leF9wYXRoLm1udCwgZmlkLA0KPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGFfbGVmdCwgZmlsZWlkX3R5 cGUsDQo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgbmZzZF9hY2NlcHRhYmxlLCBleHApOw0KPiA+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZiAoSVNfRVJSX09SX05VTEwoZGVudHJ5KSkNCj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVudHJ5ID0gZXhwb3J0ZnNfZGVjb2RlX2ZoX3Jhdyhl eHAtPmV4X3BhdGgubW50LA0KPiA+IGZpZCwNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRhdGFfbGVmdCwNCj4gPiBmaWxlaWRfdHlwZSwNCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5mc2RfYWNjZXB0YWJsZSwNCj4gPiBleHApOw0K PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoSVNfRVJSX09SX05VTEwoZGVu dHJ5KSkgew0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHRyYWNlX25mc2Rfc2V0X2ZoX2RlbnRyeV9iYWRoYW5kbGUocnFzdHAsDQo+ID4gZmhwLA0K PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVudHJ5ID/CoCBQVFJfRVJSKGRlbnRyeSkgOg0K PiA+IC1FU1RBTEUpOw0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgc3dpdGNoIChQVFJfRVJSKGRlbnRyeSkpIHsNCj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhc2UgLUVOT01FTToNCj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhc2UgLUVUSU1FRE9VVDoN Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBicmVhazsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRlZmF1bHQ6DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVudHJ5ID0gRVJSX1BUUigtRVNUQUxF KTsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0N Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiA+IMKgwqDCoMKgwqDCoMKg wqB9DQo+ID4gwqDCoMKgwqDCoMKgwqDCoGlmIChkZW50cnkgPT0gTlVMTCkNCj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gb3V0Ow0KPiA+IC0tIA0KPiA+IDIuMjguMA0K DQotLSANClRyb25kIE15a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVyLCBIYW1t ZXJzcGFjZQ0KdHJvbmQubXlrbGVidXN0QGhhbW1lcnNwYWNlLmNvbQ0KDQoNCg==