Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp296588pxf; Wed, 17 Mar 2021 05:42:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwl8B1/wMIqz4LOjTDqmQeFHjIE5cpn2+LhCvvDB7ekc6UB3EDzJxZSoyE3DjPoyeRNAcRL X-Received: by 2002:aa7:cf14:: with SMTP id a20mr41668639edy.49.1615984930971; Wed, 17 Mar 2021 05:42:10 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1615984930; cv=pass; d=google.com; s=arc-20160816; b=BT7iwY7wWxrARGGf35WsrvTsolKreEVyOM4JzrDON3Uc4fagFE6ZO7aRKgGEe0kmT+ UJxZV3ab1VXxODf7OB3tgHm97gLbKWUlwOI3cMEDJP5siVnJ+f3ISgO7UOQx9iTT9o3F 1Iy+bOBr3pcJ0U+c9wJacmgGLEerisOWobatQ2a9aYlr5PFdHpgZuTrHlqV8LynRsNl2 gYDaw1rRjgkQELKwfY7L82Pm+kKN0/yQ57UMH993g/r/byTCd6QsV6WtFiijp4Ovq33z K0AMedlFzaFjBNgqED4r8nC2RgQ71c+MBzM0Ja4XtbCdQRQDHKqib+WSDEkxoVLritM5 +rMw== 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=q8RaxnHinALQA5NcnuO4lv6aFqklYeqCFQJ/KMEacgE=; b=fIh10lTmn/gwThaWE1UJGc2DiGeezqRmM/lTVluhckp65g3uxp6vLctHYp/8401T7T +eqgbKKZ4OXjh3px6XhlE15AWq4aqnNIT3cPF8vJsXHxSkInaHzbnLf1k92YoXamzvOq /+YreNdvlNKZVWGXS8twnvuDCsQk74UMgjzMUH2TwJkBeCoZcDWsWHq6wV6GUZPZVlnJ RSVi259gKMgae0s/SXbAp0NEUrGmW6gaxfkNywXdSs9+glucOCAvW+Tll+ljrSgP7Wbq +LwP0gpByr8JzXyV3CnVhG0L7GItZ0pPIPp+CYBTg01uAtHHU+ATQ33HeqYI+Bukln0g 3wlQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=YMi0Nwsx; 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 lz12si17092222ejb.304.2021.03.17.05.41.39; Wed, 17 Mar 2021 05:42: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=YMi0Nwsx; 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 S229512AbhCQMkP (ORCPT + 99 others); Wed, 17 Mar 2021 08:40:15 -0400 Received: from mail-bn8nam12on2113.outbound.protection.outlook.com ([40.107.237.113]:9825 "EHLO NAM12-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230299AbhCQMjw (ORCPT ); Wed, 17 Mar 2021 08:39:52 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZgNYktUl4bvaXa8PPuiRZmoVLXVuRDtaQ4kjG6cOuZsgFmzwiYrVcegCJY7P/vXxWGEK/7GZG3qgTIm2rvSKoERiY5DQcD9EfTOpo7mD8ElejiIpHvPcPiM36o3n+VdSBPyw4WTPX73iXCldJ2nWXJK3/ZdmAK0MnVi/rCBx75OL4cc6DgTqzi6JJClMTR6xB15Q1KtJ0X44nHXe1/u6RVOeDb8DwzRVpH8lPmkY+d8AKG6vF9i/PnRxosBVgSIo9yLsWKfw1dXYsHPQOy+ziWaCVtBdEqn5e+auLIpAoEcQitOQ5YCL99ByxdCmx1vryvzqV+B0XvoHW6itX+vgZg== 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=q8RaxnHinALQA5NcnuO4lv6aFqklYeqCFQJ/KMEacgE=; b=PSD2nJq+pDaHdtuHjxOP38m0u2XFLjOINv5eA2v5w/yIO8ggkNbuR1ChE/rdICmjcOi3hEpjRt1pUSzeXlQue0hjKzh+motr4rDXSMeKHo/2SF9qK4c8f/5/Uq9Dc8ldkMn2FOy3XRx3+9mSnQo3tsNOMUH9vPRcyBn4H9+5twb7RKTEeC+s3n70/sHNWwEWtolxrOWWdnjwoWRvQyo4AixFHQstGRvdxRQzOc85zLASxvLNozm0AXwocBlHLbzoU/eQ7XYDvq6aSdgDmlBv42ZFerg4cgIOKVZF0wbEN5z1dF+VsuPvbPn9gI0QNbsQJgyqo23j4tmlHDQ8VVUDrw== 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=q8RaxnHinALQA5NcnuO4lv6aFqklYeqCFQJ/KMEacgE=; b=YMi0NwsxuD7WFRoi+uciByRgrIuyauE6eg11l4Z7kzcmrVNH/FVXqySZU2SnYFhao5gVR7lgBu7dFBGL/qgz9MUrLfys3UIgjkqmxH33mxRv0l58pgIYb62JvWMogRgoFG1gZ+5SzssupoKUb6OWp1+lpaJnmDuw4D0ZuZaRBaM= Received: from CH2PR13MB3525.namprd13.prod.outlook.com (2603:10b6:610:21::29) by CH2PR13MB3847.namprd13.prod.outlook.com (2603:10b6:610:99::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.11; Wed, 17 Mar 2021 12:39:49 +0000 Received: from CH2PR13MB3525.namprd13.prod.outlook.com ([fe80::f453:2dd2:675:d063]) by CH2PR13MB3525.namprd13.prod.outlook.com ([fe80::f453:2dd2:675:d063%3]) with mapi id 15.20.3955.010; Wed, 17 Mar 2021 12:39:49 +0000 From: Trond Myklebust To: "Nagendra.Tomar@microsoft.com" CC: "linux-nfs@vger.kernel.org" Subject: Re: [EXTERNAL] [PATCH] NFS: Fix handling of cookie verifier in uncached_readdir() Thread-Topic: [EXTERNAL] [PATCH] NFS: Fix handling of cookie verifier in uncached_readdir() Thread-Index: AQHXGoedmuSlqJ5rhEC513MAvHvh96qH6usAgAATpwCAACGaAA== Date: Wed, 17 Mar 2021 12:39:49 +0000 Message-ID: References: <20210316133603.1228154-1-trondmy@kernel.org> In-Reply-To: Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: microsoft.com; dkim=none (message not signed) header.d=none;microsoft.com; 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: 367f8cd4-240e-4b76-eb16-08d8e941c132 x-ms-traffictypediagnostic: CH2PR13MB3847: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kge8XlFDcIrP6fU+WEtZ9IbEO6t2vpeH4kTb6gFdAwWC/6Lugib+0uvK0168X9pbLe4ttxJOKgG6XZ2Q0FNSR3/TYA+dumnfXqR5VPm08ZMb6Gzcmcj8/ogBJm4UhQeHohiygjLGyOBxaYps1WCx3MtuMhteDZbpK5Ubi2dxaRjNLAdQCpQY00fjfJpoyvFicVV2X340dhPk6HyzDgKLONvcFXW4csqtiTmM+lCChgWeI8oRYD4slViiprIURT1cuZAM36300Zkivbg8ar7y10wWeaOh/toJrTfLCoDcLkxb3/y8H4qz8wPt75jk6u/RnWlxNoHEWruk7s16guQ31GoeGs1lw0mfJ2yRXSodxSZzA/7g6DckSjViGcy803CAJvVt/6WRldc2X3vUh6FVadqVsA3HzF7Uh3c5qhhEL/9cePP73WN/PXTGbSWvTMRI4Buca1HQ4qyxsFKoU5unF4w2GbKoahlF/bMNN5nKh13SI52CKzwU5gqFb00ebDBgEImW5nXrySep1gYoXNza4g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR13MB3525.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(136003)(346002)(396003)(366004)(39840400004)(6486002)(316002)(6916009)(8936002)(64756008)(36756003)(4326008)(2906002)(478600001)(66476007)(86362001)(83380400001)(76116006)(186003)(8676002)(66446008)(66556008)(26005)(5660300002)(71200400001)(6512007)(30864003)(2616005)(53546011)(6506007)(66946007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?TEswS1owVkZ5bm03UVVFREljQWlxNmYwalVGWWJQc1JDUWdFUkMxVWVtdHYx?= =?utf-8?B?aFZ0ZEluYUFXSW9YRThuYmJZTlJydmd2OFNXelpkYTBMUDA2eC9STkJpVzZk?= =?utf-8?B?bkpkU2FsL0FRSVpKbVhFVVhKWG93Vjl3SnNIczVGcmhndldSVHo2M1o2LzIx?= =?utf-8?B?bGx0VjFwTzl1NXUrVWNHRlVQY2RHa3RxYk5vd1ZhaUxYdG8xYXIwdHVCeU1u?= =?utf-8?B?eXpENW5WTDk1TTR5cFlBRlphN2RldkNaTHlpKzFzOGFDUjFTVTdBS3VYNVRK?= =?utf-8?B?NTV1RXJUZFovTmpMN1pnQ0dqcXJNWmxJTDVBeWY5Z01VK3RYbVZ1THZoZ1FG?= =?utf-8?B?Y05NdWozWXc0RGRrTTJYMXVDZHBzVkprQU1td2E5enIyMzdBdG8rallzNGRW?= =?utf-8?B?VTJKeHRhUW5QNmkvdEdlcnNvdHhXSGpFV1JISzgrYWFSMEpnVGZtODJTMEdD?= =?utf-8?B?dktMODZSdFk3V2tVaXMyUGhTS1ExbUxyU2VnSVZaWElUK3huUVk1a3p1ak1S?= =?utf-8?B?UDB3UXBMT0JaeWtqQW1mZnpNZytqSHlJNnlpUnIzT3hZTFY5ekxmWUV3T1Zh?= =?utf-8?B?RkdQaGUwQU5vbHBZcUZidEY3Q3VrR09FKzFDWEZ2VzcwOGpYcnNiV2wrajQ3?= =?utf-8?B?eXBJNGlHV0pIaC9Gb1ZaaWZkUG96OXR6OVIrUVlycEk5cWIwMXVtV2VuNGlV?= =?utf-8?B?Lyswb3BZMDYvSzhwcXBROVVjSkkwRUlpRDJVVjBKbXhDYk1DQnNZbXR5OGhV?= =?utf-8?B?UlhZQURMMy9uYnB1YXBhTnZUTjhEWVZCKzBwZmdYcFI1a1RiVGZKRS85Ty9K?= =?utf-8?B?Rm0wa25Qem1rOEdld1lTOTlSTUhQZmtEUkNYd3IvOEZCUHFTeG9ONWNqM2p6?= =?utf-8?B?RldRZVhWWXBUSWNNU0pZWDFmcURiTkVCTkhja1grVzhYTm1OdUxHWk9SWDVt?= =?utf-8?B?dWN2THJCL2dBWGVJWGoxc3lCZjZJK2Q4VXVCNnNyODFhblNhYmdha2U5Q3hJ?= =?utf-8?B?bjN5VGZORWhxTW12dlNjajlGSkxaSkh0cm5oVnoxUFBkYzV2V0R1R2FhTGhZ?= =?utf-8?B?TzdOc2V6Rkx3Z0pMaEZOTmcrYUF3dHNha2lLeFR4UlVPeFluTkVDMW9zcDl1?= =?utf-8?B?Rkh4VzJtRjlML0NXVlJFZ2VhclpIY1BIbHB6VzFpNXZRVklZNEEzQlk1RnFT?= =?utf-8?B?bngxWUxsZVk0S0IrSkNpcVBrNUZMOVQ0YnNOUVFKSThaWnlEV1ZVSndtRE91?= =?utf-8?B?cGxMckNoN1h6WkthZEpXTzhtaTI2bTlqSy8zWVhTaEtYZmloQUpTS2wwTHAv?= =?utf-8?B?ZFllNU5BVk1wSkdvRSs0aDdSUDFsZlpwNThxbFRwL2dSTVBFQlNwMGdmbzFp?= =?utf-8?B?R0tSZWhreE1RNU1DRmJMa3I0emxHYXYycnJ0bXFpaExod1pNS2tqcEhrVEl0?= =?utf-8?B?aDVWNVIwK293Z1BkaGs2Sk5JOXI3aHhybVM3STdzbmVBVGlrZVBKbEErdTNF?= =?utf-8?B?bHlORnNNbzgzMmF6SHlMbXBqeXNpSDVZM3pQb3gyb3NhMGovVFdqTTd1RGNr?= =?utf-8?B?c1BwZC9yTGN6TEJldXlTMmhndGYwVTFEakhaTDRzS0RjUVU5aW0yR3VuK2o4?= =?utf-8?B?cU5kOFVteWVtZHRKRnpNNWNkV3Zzek5vTStKbHZCZTR5MGo2QXNqV3JLTEYx?= =?utf-8?B?K2NNOVNvSFZ2c3FCbFl4b25kb0N3Z0RzU3pjL0VFTDlOSUJveVMyU0VCQjFk?= =?utf-8?Q?4GUJQ/p//mLBklGntJdQVai3pp59fHKMi4rtPTr?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR13MB3525.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 367f8cd4-240e-4b76-eb16-08d8e941c132 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Mar 2021 12:39:49.3692 (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: xoVEZN4lT3BgzmCt1f0T90huikkLfLUbhJ6bq1eW3IrnCjx5gZkopACBbSftgOYKMfGEQLrW5U0+s4au/TXW6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR13MB3847 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gV2VkLCAyMDIxLTAzLTE3IGF0IDEwOjM5ICswMDAwLCBOYWdlbmRyYSBUb21hciB3cm90ZToN Cj4gSWdub3JlIHRoaXMsIHdlIGRvIG5lZWQgdGhlIGlub2RlIGNvb2tpZXZlcmlmaWVyIGZvciB0 aGUgY2FjaGVkDQo+IGNvb2tpZXMgaW4gdGhlIGFic2VuY2UNCj4gb2YgYW55IG9wZW4gZGlyIGhh bmRsZS4gSSB3YXMgY2xlYXJseSBvdmVydGhpbmtpbmchDQo+IA0KDQpSaWdodC4gV2hlbiB3ZSdy ZSBjYWNoaW5nIGNvb2tpZXMsIHRoZW4gd2Ugc2hvdWxkIGFsc28gY2FjaGUgdGhlDQp2ZXJpZmll ciB0aGF0IGlzIG5lZWRlZCB0byB1c2UgdGhlbS4gVGhhdCdzIHdoeSB3ZSBjYWNoZSBpbiBib3Ro IHRoZQ0KaW5vZGUgYW5kIGluIHRoZSBkaXJlY3RvcnkgY29udGV4dC4NCg0KPiBJJ3ZlIGEgcXVl c3Rpb24gb24geW91ciBwYXRjaDoNCj4gSWYgdGhlIHNlcnZlciBjaGFuZ2VzIHRoZSBjb29raWV2 ZXJpZmllciBmb3IgYSBkaXJlY3RvcnksIHNob3VsZG4ndA0KPiB3ZSB6YXAgdGhlDQo+IGNhY2hl ZCBkaXJlY3RvcnkgcGFnZXMgc2luY2UgdGhlIGNhY2hlZCBjb29raWVzIGRvIG5vdCBjb3JyZXNw b25kIHRvDQo+IHRoaXMgbmV3IGNvb2tpZQ0KPiB2ZXJpZmllciBmb3IgdGhpcyBkaXJlY3Rvcnk/ IE9yLCBkbyB3ZSBkZXBlbmQgb24gdGhlIHNlcnZlciB0byByZXR1cm4NCj4gQkFEQ09PS0lFIHdo ZW4gd2UNCj4gcHJlc2VudCBhIGJhZCBjb29raWV2ZXJpZmllcitjb29raWUgY29tYm8sIGFuZCB0 aGVuIHdlIGludmFsaWRhdGUuIEkNCj4gZ3Vlc3MgdGhhdCdzIGZpbmUgdG9vLg0KPiANCg0KV2hl biB0aGUgc2VydmVyIGNoYW5nZXMgdGhlIHZlcmlmaWVyIGl0IHdpbGwgc3RhcnQgcmVwbHlpbmcg dG8gcmVxdWVzdHMNCnRoYXQgdXNlIHRoZSBvbGRlciB2ZXJpZmllciB3aXRoIE5GUzRFUlJfTk9U X1NBTUUgKE5GU3Y0KSwgd2hpY2ggd2UNCmNvbnZlcnQgaW50byBFTk9UU1lOQywgb3IgTkZTM0VS Ul9CQURfQ09PS0lFIChORlN2MyksIHdoaWNoIHdlIGNvbnZlcnQNCmludG8gRUJBRENPT0tJRS4N CkJvdGggZXJyb3JzIGFyZSBoYW5kbGVkIGluIHRoZSBnZW5lcmljIHJlYWRkaXIgY29kZS4NCg0K PiBBbHNvIG15IGVhcmxpZXIgY29tbWVudCBhYm91dCBmaW5kX2FuZF9sb2NrX2NhY2hlX3BhZ2Uo KSBhY2Nlc3NpbmcNCj4gbmZzaS0+Y29va2lldmVyZg0KPiB3L28gbG9ja2luZyB0aGUgaW5vZGUu IFRoaXMgb25lIGlzIG5vdCBpbnRyb2R1Y2VkIGJ5IHlvdXIgY3VycmVudA0KPiBwYXRjaC4NCg0K WWVzLiBJJ20gYXdhcmUgb2YgdGhhdCBpc3N1ZS4gV2UgY2FuIGp1c3QgYWRkIGEgY2hlY2sgZm9y IGRlc2MtDQo+cGFnZV9pbmRleCA9PSAwLiBOb3RoaW5nIHNob3VsZCBiZSBjaGFuZ2luZyB0aGUg dmVyaWZpZXIgdW5sZXNzIHRoZQ0KY2FjaGUgaXMgZW1wdHkuDQoNCj4gDQo+IFRoYW5rcywNCj4g VG9tYXIgDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBOYWdlbmRy YSBUb21hciANCj4gU2VudDogMTcgTWFyY2ggMjAyMSAxNDo1OQ0KPiBUbzogdHJvbmRteUBrZXJu ZWwub3JnDQo+IENjOiBsaW51eC1uZnNAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJFOiBb RVhURVJOQUxdIFtQQVRDSF0gTkZTOiBGaXggaGFuZGxpbmcgb2YgY29va2llIHZlcmlmaWVyDQo+ IGluIHVuY2FjaGVkX3JlYWRkaXIoKQ0KPiANCj4gSGkgVHJvbmQsDQo+IMKgwqDCoMKgIEkgdGhp bmsgaXQnbGwgYmUgYmV0dGVyIHRvIHJlbW92ZSBjb29raWV2ZXJpZmllciBmcm9tIG5mc19pbm9k ZSwNCj4gYXMgdHJ1bHkgc3BlYWtpbmcNCj4gaXQgZG9lc24ndCBiZWxvbmcgdGhlcmUuIEEgY29v a2llIHZlcmlmaWVyIChhbG9uZyB3aXRoIHRoZSBjb29raWUpIGlzDQo+IHBhcnQgb2YgYSByZWFk ZGlyDQo+IGNvbnRleHQsIGFuZCBjb250ZXh0IGlzIHBlciBvcGVuIGRpciBpbnN0YW5jZSBhbmQg bm90IHBlciBmaWxlLg0KPiBJZGVhbGx5IHdlIHNob3VsZCBoYXZlDQo+IHRoZSBmb2xsb3dpbmcg c2VxdWVuY2UNCj4gDQo+IDEuIEFwcGxpY2F0aW9uIG9wZW5zIGRpcmVjdG9yeSwgbmZzX29wZW5f ZGlyX2NvbnRleHQtPnZlcmYgaXMgc2V0IHRvDQo+IDAuDQo+IMKgwqDCoCBuZnNfb3Blbl9kaXJf Y29udGV4dC0+dmVyZiBpcyB1c2VkIHRvIHBvcHVsYXRlDQo+IG5mc19yZWFkZGlyX2Rlc2NyaXB0 b3ItPnZlcmYsIHdoaWNoIGlzIG91ciBjdXJzb3IuDQo+IDIuIFRoZSBmaXJzdCByZWFkZGlyIGNh bGwgdXNpbmcgdGhlIGFib3ZlIG5ld2x5IG9wZW5lZCBoYW5kbGUgY2Fycmllcw0KPiB0aGUgMCBj b29raWUgdmVyaWZpZXIgKHdpdGggY29va2llPT0wKS4NCj4gMy4gQSBjb29raWUgdmVyaWZpZXIg cmVjZWl2ZWQgYXPCoCBhIHJlc3BvbnNlIG9mICMyIGlzIHNhdmVkIGluDQo+IG5mc19yZWFkZGly X2Rlc2NyaXB0b3ItPnZlcmYsIHdoaWNoDQo+IMKgwqDCoCBpcyBsYXRlciBzYXZlZCBpbiBuZnNf b3Blbl9kaXJfY29udGV4dC0+dmVyZi4gVGh1cyBzdWJzZXF1ZW50DQo+IHJlYWRkaXIgY2FsbHMg Y2FycnkgdGhlIGNvb2tpZQ0KPiDCoMKgwqAgdmVyaWZpZXIgKGFuZCBjb29raWUpIHJldHVybmVk IGJ5IHRoZSBzZXJ2ZXIuDQo+IA0KPiBXaGF0IGRvIHlvdSB0aGluayBhYm91dCB0aGlzIHBhdGNo Pw0KPiBJdCBpbmNsdWRlcyB0aGUgcGF0Y2ggdGhhdCBJIHNlbnQgeSdkYXkgc28gb25seSB0aGlz IHNob3VsZCBiZQ0KPiBlbm91Z2guDQo+IA0KPiBQUzogQ3VycmVudGx5IGZpbmRfYW5kX2xvY2tf Y2FjaGVfcGFnZSgpIHNlZW1zIHRvIGJlIGFjY2Vzc2luZw0KPiBuZnNfaW5vZGUtPmNvb2tpZXZl cmlmaWVyDQo+IMKgwqDCoMKgwqDCoCB3L28gbG9ja2luZyB0aGUgaW5vZGUuDQo+IA0KPiBTaWdu ZWQtb2ZmLWJ5OiBOYWdlbmRyYSBTIFRvbWFyIDxuYXRvbWFyQHh4eHh4eHh4eHh4eHg+DQo+IC0t LQ0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL2Rpci5jIGIvZnMvbmZzL2Rpci5jDQo+IGluZGV4IGZj NGY0OTBmMmQ3OC4uYTUyOTE3ODAwZTM3IDEwMDY0NA0KPiAtLS0gYS9mcy9uZnMvZGlyLmMNCj4g KysrIGIvZnMvbmZzL2Rpci5jDQo+IEBAIC03Niw2ICs3Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgbmZz X29wZW5fZGlyX2NvbnRleHQNCj4gKmFsbG9jX25mc19vcGVuX2Rpcl9jb250ZXh0KHN0cnVjdCBp bm9kZSAqZGlyDQo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoY3R4ICE9IE5VTEwpIHsNCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjdHgtPmR1cGVkID0gMDsNCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBjdHgtPmF0dHJfZ2VuY291bnQgPSBuZnNpLT5hdHRyX2dlbmNv dW50Ow0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWVtc2V0KGN0eC0+dmVyZiwg MCwgc2l6ZW9mKGN0eC0+dmVyZikpOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGN0eC0+ZGlyX2Nvb2tpZSA9IDA7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg Y3R4LT5kdXBfY29va2llID0gMDsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBz cGluX2xvY2soJmRpci0+aV9sb2NrKTsNCj4gQEAgLTgyMCw3ICs4MjEsNiBAQCBzdGF0aWMgc3Ry dWN0IHBhZ2UNCj4gKipuZnNfcmVhZGRpcl9hbGxvY19wYWdlcyhzaXplX3QgbnBhZ2VzKQ0KPiDC oH0NCj4gwqANCj4gwqBzdGF0aWMgaW50IG5mc19yZWFkZGlyX3hkcl90b19hcnJheShzdHJ1Y3Qg bmZzX3JlYWRkaXJfZGVzY3JpcHRvcg0KPiAqZGVzYywNCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fYmUzMiAq dmVyZl9hcmcsIF9fYmUzMg0KPiAqdmVyZl9yZXMsDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHBh Z2UgKiphcnJheXMsIHNpemVfdA0KPiBuYXJyYXlzKQ0KPiDCoHsNCj4gwqDCoMKgwqDCoMKgwqDC oHN0cnVjdCBwYWdlICoqcGFnZXM7DQo+IEBAIC04MjksNiArODI5LDcgQEAgc3RhdGljIGludCBu ZnNfcmVhZGRpcl94ZHJfdG9fYXJyYXkoc3RydWN0DQo+IG5mc19yZWFkZGlyX2Rlc2NyaXB0b3Ig KmRlc2MsDQo+IMKgwqDCoMKgwqDCoMKgwqBzaXplX3QgYXJyYXlfc2l6ZTsNCj4gwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlX2lub2RlKGRlc2MtPmZpbGUpOw0KPiDC oMKgwqDCoMKgwqDCoMKgc2l6ZV90IGR0c2l6ZSA9IE5GU19TRVJWRVIoaW5vZGUpLT5kdHNpemU7 DQo+ICvCoMKgwqDCoMKgwqDCoF9fYmUzMiB2ZXJmW05GU19ESVJfVkVSSUZJRVJfU0laRV07DQo+ IMKgwqDCoMKgwqDCoMKgwqBpbnQgc3RhdHVzID0gLUVOT01FTTsNCj4gwqANCj4gwqDCoMKgwqDC oMKgwqDCoGVudHJ5ID0ga3phbGxvYyhzaXplb2YoKmVudHJ5KSwgR0ZQX0tFUk5FTCk7DQo+IEBA IC04NTQsOSArODU1LDkgQEAgc3RhdGljIGludCBuZnNfcmVhZGRpcl94ZHJfdG9fYXJyYXkoc3Ry dWN0DQo+IG5mc19yZWFkZGlyX2Rlc2NyaXB0b3IgKmRlc2MsDQo+IMKgDQo+IMKgwqDCoMKgwqDC oMKgwqBkbyB7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50 IHBnbGVuOw0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RhdHVzID0gbmZzX3Jl YWRkaXJfeGRyX2ZpbGxlcihkZXNjLCB2ZXJmX2FyZywNCj4gZW50cnktPmNvb2tpZSwNCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0YXR1cyA9IG5mc19yZWFkZGlyX3hkcl9maWxs ZXIoZGVzYywgZGVzYy0+dmVyZiwNCj4gZW50cnktPmNvb2tpZSwNCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFnZXMsIGR0c2l6ZSwNCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB2ZXJmX3Jlcyk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgdmVyZik7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgaWYgKHN0YXR1cyA8IDApDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGJyZWFrOw0KPiDCoA0KPiBAQCAtODY2LDYgKzg2Nyw4IEBAIHN0YXRpYyBp bnQgbmZzX3JlYWRkaXJfeGRyX3RvX2FycmF5KHN0cnVjdA0KPiBuZnNfcmVhZGRpcl9kZXNjcmlw dG9yICpkZXNjLA0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBicmVhazsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+IMKgDQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtZW1jcHkoZGVzYy0+dmVyZiwgdmVyZiwg c2l6ZW9mKGRlc2MtPnZlcmYpKTsNCj4gKw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHN0YXR1cyA9IG5mc19yZWFkZGlyX3BhZ2VfZmlsbGVyKGRlc2MsIGVudHJ5LCBwYWdlcywN Cj4gcGdsZW4sDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhcnJh eXMsIG5hcnJheXMpOw0KPiDCoMKgwqDCoMKgwqDCoMKgfSB3aGlsZSAoIXN0YXR1cyAmJiBuZnNf cmVhZGRpcl9wYWdlX25lZWRzX2ZpbGxpbmcocGFnZSkpOw0KPiBAQCAtOTA5LDE1ICs5MTIsMTMg QEAgc3RhdGljIGludCBmaW5kX2FuZF9sb2NrX2NhY2hlX3BhZ2Uoc3RydWN0DQo+IG5mc19yZWFk ZGlyX2Rlc2NyaXB0b3IgKmRlc2MpDQo+IMKgew0KPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGlu b2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZGVzYy0+ZmlsZSk7DQo+IMKgwqDCoMKgwqDCoMKgwqBz dHJ1Y3QgbmZzX2lub2RlICpuZnNpID0gTkZTX0koaW5vZGUpOw0KPiAtwqDCoMKgwqDCoMKgwqBf X2JlMzIgdmVyZltORlNfRElSX1ZFUklGSUVSX1NJWkVdOw0KPiDCoMKgwqDCoMKgwqDCoMKgaW50 IHJlczsNCj4gwqANCj4gwqDCoMKgwqDCoMKgwqDCoGRlc2MtPnBhZ2UgPSBuZnNfcmVhZGRpcl9w YWdlX2dldF9jYWNoZWQoZGVzYyk7DQo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoIWRlc2MtPnBhZ2Up DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FTk9NRU07DQo+IMKg wqDCoMKgwqDCoMKgwqBpZiAobmZzX3JlYWRkaXJfcGFnZV9uZWVkc19maWxsaW5nKGRlc2MtPnBh Z2UpKSB7DQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXMgPSBuZnNfcmVhZGRp cl94ZHJfdG9fYXJyYXkoZGVzYywgbmZzaS0NCj4gPmNvb2tpZXZlcmYsIHZlcmYsDQo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmRlc2MtPnBhZ2UsIDEpOw0KPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVzID0gbmZzX3JlYWRkaXJfeGRyX3RvX2FycmF5KGRl c2MsICZkZXNjLT5wYWdlLCAxKTsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBp ZiAocmVzIDwgMCkgew0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBuZnNfcmVhZGRpcl9wYWdlX3VubG9ja19hbmRfcHV0X2NhY2hlZChkZXNjKTsNCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJlcyA9 PSAtRUJBRENPT0tJRSB8fCByZXMgPT0gLUVOT1RTWU5DKSB7DQo+IEBAIC05MjcsNyArOTI4LDYg QEAgc3RhdGljIGludCBmaW5kX2FuZF9sb2NrX2NhY2hlX3BhZ2Uoc3RydWN0DQo+IG5mc19yZWFk ZGlyX2Rlc2NyaXB0b3IgKmRlc2MpDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoH0NCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgcmV0dXJuIHJlczsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB9DQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtZW1jcHkobmZzaS0+Y29va2ll dmVyZiwgdmVyZiwgc2l6ZW9mKG5mc2ktDQo+ID5jb29raWV2ZXJmKSk7DQo+IMKgwqDCoMKgwqDC oMKgwqB9DQo+IMKgwqDCoMKgwqDCoMKgwqByZXMgPSBuZnNfcmVhZGRpcl9zZWFyY2hfYXJyYXko ZGVzYyk7DQo+IMKgwqDCoMKgwqDCoMKgwqBpZiAocmVzID09IDApIHsNCj4gQEAgLTk3Nyw3ICs5 NzcsNiBAQCBzdGF0aWMgaW50IHJlYWRkaXJfc2VhcmNoX3BhZ2VjYWNoZShzdHJ1Y3QNCj4gbmZz X3JlYWRkaXJfZGVzY3JpcHRvciAqZGVzYykNCj4gwqBzdGF0aWMgdm9pZCBuZnNfZG9fZmlsbGRp cihzdHJ1Y3QgbmZzX3JlYWRkaXJfZGVzY3JpcHRvciAqZGVzYykNCj4gwqB7DQo+IMKgwqDCoMKg wqDCoMKgwqBzdHJ1Y3QgZmlsZcKgwqDCoMKgwqAqZmlsZSA9IGRlc2MtPmZpbGU7DQo+IC3CoMKg wqDCoMKgwqDCoHN0cnVjdCBuZnNfaW5vZGUgKm5mc2kgPSBORlNfSShmaWxlX2lub2RlKGZpbGUp KTsNCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBuZnNfY2FjaGVfYXJyYXkgKmFycmF5Ow0KPiDC oMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IGkgPSAwOw0KPiDCoA0KPiBAQCAtOTkxLDcgKzk5 MCw2IEBAIHN0YXRpYyB2b2lkIG5mc19kb19maWxsZGlyKHN0cnVjdA0KPiBuZnNfcmVhZGRpcl9k ZXNjcmlwdG9yICpkZXNjKQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBkZXNjLT5lb2YgPSB0cnVlOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB9DQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtZW1jcHkoZGVzYy0+ dmVyZiwgbmZzaS0+Y29va2lldmVyZiwgc2l6ZW9mKGRlc2MtDQo+ID52ZXJmKSk7DQo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGkgPCAoYXJyYXktPnNpemUtMSkpDQo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRlc2MtPmRpcl9j b29raWUgPSBhcnJheS0+YXJyYXlbaSsxXS5jb29raWU7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZWxzZQ0KPiBAQCAtMTAyNyw3ICsxMDI1LDYgQEAgc3RhdGljIGludCB1bmNh Y2hlZF9yZWFkZGlyKHN0cnVjdA0KPiBuZnNfcmVhZGRpcl9kZXNjcmlwdG9yICpkZXNjKQ0KPiDC oHsNCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBwYWdlwqDCoMKgwqDCoCoqYXJyYXlzOw0KPiDC oMKgwqDCoMKgwqDCoMKgc2l6ZV90wqDCoMKgwqDCoMKgwqDCoMKgwqBpLCBzeiA9IDUxMjsNCj4g LcKgwqDCoMKgwqDCoMKgX19iZTMywqDCoMKgwqDCoMKgwqDCoMKgwqB2ZXJmW05GU19ESVJfVkVS SUZJRVJfU0laRV07DQo+IMKgwqDCoMKgwqDCoMKgwqBpbnTCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHN0YXR1cyA9IC1FTk9NRU07DQo+IMKgDQo+IMKgwqDCoMKgwqDCoMKgwqBkZnByaW50ayhE SVJDQUNIRSwgIk5GUzogdW5jYWNoZWRfcmVhZGRpcigpIHNlYXJjaGluZyBmb3INCj4gY29va2ll ICVsbHVcbiIsDQo+IEBAIC0xMDQ0LDcgKzEwNDEsNyBAQCBzdGF0aWMgaW50IHVuY2FjaGVkX3Jl YWRkaXIoc3RydWN0DQo+IG5mc19yZWFkZGlyX2Rlc2NyaXB0b3IgKmRlc2MpDQo+IMKgwqDCoMKg wqDCoMKgwqBkZXNjLT5sYXN0X2Nvb2tpZSA9IGRlc2MtPmRpcl9jb29raWU7DQo+IMKgwqDCoMKg wqDCoMKgwqBkZXNjLT5kdXBlZCA9IDA7DQo+IMKgDQo+IC3CoMKgwqDCoMKgwqDCoHN0YXR1cyA9 IG5mc19yZWFkZGlyX3hkcl90b19hcnJheShkZXNjLCBkZXNjLT52ZXJmLCB2ZXJmLA0KPiBhcnJh eXMsIHN6KTsNCj4gK8KgwqDCoMKgwqDCoMKgc3RhdHVzID0gbmZzX3JlYWRkaXJfeGRyX3RvX2Fy cmF5KGRlc2MsIGFycmF5cywgc3opOw0KPiDCoA0KPiDCoMKgwqDCoMKgwqDCoMKgZm9yIChpID0g MDsgIWRlc2MtPmVvZiAmJiBpIDwgc3ogJiYgYXJyYXlzW2ldOyBpKyspIHsNCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkZXNjLT5wYWdlID0gYXJyYXlzW2ldOw0KPiBkaWZmIC0t Z2l0IGEvZnMvbmZzL2lub2RlLmMgYi9mcy9uZnMvaW5vZGUuYw0KPiBpbmRleCBhN2ZiMDc2YTVm NDQuLmFiM2U2NjZlZDA5NyAxMDA2NDQNCj4gLS0tIGEvZnMvbmZzL2lub2RlLmMNCj4gKysrIGIv ZnMvbmZzL2lub2RlLmMNCj4gQEAgLTUyMiw3ICs1MjIsNiBAQCBuZnNfZmhnZXQoc3RydWN0IHN1 cGVyX2Jsb2NrICpzYiwgc3RydWN0IG5mc19maA0KPiAqZmgsIHN0cnVjdCBuZnNfZmF0dHIgKmZh dHRyLCBzdA0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlub2RlLT5pX3VpZCA9 IG1ha2Vfa3VpZCgmaW5pdF91c2VyX25zLCAtMik7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgaW5vZGUtPmlfZ2lkID0gbWFrZV9rZ2lkKCZpbml0X3VzZXJfbnMsIC0yKTsNCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbm9kZS0+aV9ibG9ja3MgPSAwOw0KPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWVtc2V0KG5mc2ktPmNvb2tpZXZlcmYsIDAs IHNpemVvZihuZnNpLQ0KPiA+Y29va2lldmVyZikpOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoG5mc2ktPndyaXRlX2lvID0gMDsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBuZnNpLT5yZWFkX2lvID0gMDsNCj4gwqANCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvbmZzX2ZzLmggYi9pbmNsdWRlL2xpbnV4L25mc19mcy5oDQo+IGluZGV4IGVhZGFhYmQx OGRjNy4uNzUyZGU5ZTQzZTM2IDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL2xpbnV4L25mc19mcy5o DQo+ICsrKyBiL2luY2x1ZGUvbGludXgvbmZzX2ZzLmgNCj4gQEAgLTE1OCwxMiArMTU4LDYgQEAg c3RydWN0IG5mc19pbm9kZSB7DQo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgbGlzdF9oZWFkwqDC oMKgwqDCoMKgwqDCoGFjY2Vzc19jYWNoZV9lbnRyeV9scnU7DQo+IMKgwqDCoMKgwqDCoMKgwqBz dHJ1Y3QgbGlzdF9oZWFkwqDCoMKgwqDCoMKgwqDCoGFjY2Vzc19jYWNoZV9pbm9kZV9scnU7DQo+ IMKgDQo+IC3CoMKgwqDCoMKgwqDCoC8qDQo+IC3CoMKgwqDCoMKgwqDCoCAqIFRoaXMgaXMgdGhl IGNvb2tpZSB2ZXJpZmllciB1c2VkIGZvciBORlN2MyByZWFkZGlyDQo+IC3CoMKgwqDCoMKgwqDC oCAqIG9wZXJhdGlvbnMNCj4gLcKgwqDCoMKgwqDCoMKgICovDQo+IC3CoMKgwqDCoMKgwqDCoF9f YmUzMsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvb2tpZXZlcmZbTkZTX0RJ Ul9WRVJJRklFUl9TSVpFXTsNCj4gLQ0KPiDCoMKgwqDCoMKgwqDCoMKgYXRvbWljX2xvbmdfdMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBucmVxdWVzdHM7DQo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg bmZzX21kc19jb21taXRfaW5mbyBjb21taXRfaW5mbzsNCj4gDQo+IA0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB0cm9uZG15QGtlcm5lbC5vcmfCoDx0cm9uZG15QGtlcm5l bC5vcmc+IA0KPiBTZW50OiAxNiBNYXJjaCAyMDIxIDE5OjA2DQo+IFRvOiBOYWdlbmRyYSBUb21h ciA8TmFnZW5kcmEuVG9tYXJAbWljcm9zb2Z0LmNvbT4NCj4gQ2M6IGxpbnV4LW5mc0B2Z2VyLmtl cm5lbC5vcmcNCj4gU3ViamVjdDogW0VYVEVSTkFMXSBbUEFUQ0hdIE5GUzogRml4IGhhbmRsaW5n IG9mIGNvb2tpZSB2ZXJpZmllciBpbg0KPiB1bmNhY2hlZF9yZWFkZGlyKCkNCj4gDQo+IEZyb206 IFRyb25kIE15a2xlYnVzdCA8dHJvbmQubXlrbGVidXN0QGhhbW1lcnNwYWNlLmNvbT4NCj4gDQo+ IElmIHdlJ3JlIGRvaW5nIHVuY2FjaGVkIHJlYWRkaXIoKSwgdGhlbiB0aGUgcmVhZGRpciBjb29r aWUgY291bGQgYmUNCj4gZGlmZmVyZW50IGZyb20gdGhlIG9uZSBjYWNoZWQgaW4gdGhlIG5mc19p bm9kZS4gV2Ugc2hvdWxkIHRoZXJlZm9yZQ0KPiBlbnN1cmUgdGhhdCB3ZSBzYXZlIHRoYXQgb25l IGluIHRoZSBzdHJ1Y3QgbmZzX29wZW5fZGlyX2NvbnRleHQuDQo+IA0KPiBGaXhlczogMzVkZjU5 ZDNlZjY5ICgiTkZTOiBSZWR1Y2UgbnVtYmVyIG9mIFJQQyBjYWxscyB3aGVuIGRvaW5nDQo+IHVu Y2FjaGVkIHJlYWRkaXIiKQ0KPiBTaWduZWQtb2ZmLWJ5OiBUcm9uZCBNeWtsZWJ1c3QgPHRyb25k Lm15a2xlYnVzdEBoYW1tZXJzcGFjZS5jb20+DQo+IC0tLQ0KPiDCoGZzL25mcy9kaXIuYyB8IDEz ICsrKysrKystLS0tLS0NCj4gwqAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2ZzL25mcy9kaXIuYyBiL2ZzL25mcy9kaXIu Yw0KPiBpbmRleCAwOGExZTJlMzFkMGIuLjJjZjJhN2Q5MmZhZiAxMDA2NDQNCj4gLS0tIGEvZnMv bmZzL2Rpci5jDQo+ICsrKyBiL2ZzL25mcy9kaXIuYw0KPiBAQCAtOTc2LDEwICs5NzYsMTAgQEAg c3RhdGljIGludCByZWFkZGlyX3NlYXJjaF9wYWdlY2FjaGUoc3RydWN0DQo+IG5mc19yZWFkZGly X2Rlc2NyaXB0b3IgKmRlc2MpDQo+IMKgLyoNCj4gwqAgKiBPbmNlIHdlJ3ZlIGZvdW5kIHRoZSBz dGFydCBvZiB0aGUgZGlyZW50IHdpdGhpbiBhIHBhZ2U6IGZpbGwgJ2VyDQo+IHVwLi4uDQo+IMKg ICovDQo+IC1zdGF0aWMgdm9pZCBuZnNfZG9fZmlsbGRpcihzdHJ1Y3QgbmZzX3JlYWRkaXJfZGVz Y3JpcHRvciAqZGVzYykNCj4gK3N0YXRpYyB2b2lkIG5mc19kb19maWxsZGlyKHN0cnVjdCBuZnNf cmVhZGRpcl9kZXNjcmlwdG9yICpkZXNjLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgX19iZTMyICp2ZXJmKQ0KPiDCoHsNCj4gwqDC oMKgwqDCoMKgwqDCoHN0cnVjdCBmaWxlwqDCoMKgwqDCoCpmaWxlID0gZGVzYy0+ZmlsZTsNCj4g LcKgwqDCoMKgwqDCoMKgc3RydWN0IG5mc19pbm9kZSAqbmZzaSA9IE5GU19JKGZpbGVfaW5vZGUo ZmlsZSkpOw0KPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IG5mc19jYWNoZV9hcnJheSAqYXJyYXk7 DQo+IMKgwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgaSA9IDA7DQo+IMKgDQo+IEBAIC05OTMs NyArOTkzLDcgQEAgc3RhdGljIHZvaWQgbmZzX2RvX2ZpbGxkaXIoc3RydWN0DQo+IG5mc19yZWFk ZGlyX2Rlc2NyaXB0b3IgKmRlc2MpDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGRlc2MtPmVvZiA9IHRydWU7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoH0NCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1lbWNweShk ZXNjLT52ZXJmLCBuZnNpLT5jb29raWV2ZXJmLCBzaXplb2YoZGVzYy0NCj4gPnZlcmYpKTsNCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1lbWNweShkZXNjLT52ZXJmLCB2ZXJmLCBz aXplb2YoZGVzYy0+dmVyZikpOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlm IChpIDwgKGFycmF5LT5zaXplLTEpKQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBkZXNjLT5kaXJfY29va2llID0gYXJyYXktPmFycmF5W2krMV0uY29v a2llOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVsc2UNCj4gQEAgLTEwNTAs NyArMTA1MCw3IEBAIHN0YXRpYyBpbnQgdW5jYWNoZWRfcmVhZGRpcihzdHJ1Y3QNCj4gbmZzX3Jl YWRkaXJfZGVzY3JpcHRvciAqZGVzYykNCj4gwqANCj4gwqDCoMKgwqDCoMKgwqDCoGZvciAoaSA9 IDA7ICFkZXNjLT5lb2YgJiYgaSA8IHN6ICYmIGFycmF5c1tpXTsgaSsrKSB7DQo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVzYy0+cGFnZSA9IGFycmF5c1tpXTsNCj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5mc19kb19maWxsZGlyKGRlc2MpOw0KPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmZzX2RvX2ZpbGxkaXIoZGVzYywgdmVyZik7DQo+IMKg wqDCoMKgwqDCoMKgwqB9DQo+IMKgwqDCoMKgwqDCoMKgwqBkZXNjLT5wYWdlID0gTlVMTDsNCj4g wqANCj4gQEAgLTEwNzEsNiArMTA3MSw3IEBAIHN0YXRpYyBpbnQgbmZzX3JlYWRkaXIoc3RydWN0 IGZpbGUgKmZpbGUsDQo+IHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KPiDCoHsNCj4gwqDCoMKg wqDCoMKgwqDCoHN0cnVjdCBkZW50cnnCoMKgwqAqZGVudHJ5ID0gZmlsZV9kZW50cnkoZmlsZSk7 DQo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgaW5vZGXCoMKgwqDCoCppbm9kZSA9IGRfaW5vZGUo ZGVudHJ5KTsNCj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IG5mc19pbm9kZSAqbmZzaSA9IE5GU19J KGlub2RlKTsNCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBuZnNfb3Blbl9kaXJfY29udGV4dCAq ZGlyX2N0eCA9IGZpbGUtPnByaXZhdGVfZGF0YTsNCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBu ZnNfcmVhZGRpcl9kZXNjcmlwdG9yICpkZXNjOw0KPiDCoMKgwqDCoMKgwqDCoMKgaW50IHJlczsN Cj4gQEAgLTExMjQsNyArMTEyNSw3IEBAIHN0YXRpYyBpbnQgbmZzX3JlYWRkaXIoc3RydWN0IGZp bGUgKmZpbGUsDQo+IHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsNCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB9DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYg KHJlcyA9PSAtRVRPT1NNQUxMICYmIGRlc2MtPnBsdXMpIHsNCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjbGVhcl9iaXQoTkZTX0lOT19BRFZJU0VfUkRQ TFVTLA0KPiAmTkZTX0koaW5vZGUpLT5mbGFncyk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2xlYXJfYml0KE5GU19JTk9fQURWSVNFX1JEUExVUywg Jm5mc2ktDQo+ID5mbGFncyk7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoG5mc196YXBfY2FjaGVzKGlub2RlKTsNCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVzYy0+cGFnZV9pbmRleCA9IDA7DQo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRlc2MtPnBsdXMg PSBmYWxzZTsNCj4gQEAgLTExMzQsNyArMTEzNSw3IEBAIHN0YXRpYyBpbnQgbmZzX3JlYWRkaXIo c3RydWN0IGZpbGUgKmZpbGUsDQo+IHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChyZXMgPCAwKQ0KPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsNCj4gwqANCj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5mc19kb19maWxsZGlyKGRlc2MpOw0KPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgbmZzX2RvX2ZpbGxkaXIoZGVzYywgbmZzaS0+Y29va2lldmVy Zik7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmZzX3JlYWRkaXJfcGFnZV91 bmxvY2tfYW5kX3B1dF9jYWNoZWQoZGVzYyk7DQo+IMKgwqDCoMKgwqDCoMKgwqB9IHdoaWxlICgh ZGVzYy0+ZW9mKTsNCj4gwqANCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGll bnQgbWFpbnRhaW5lciwgSGFtbWVyc3BhY2UNCnRyb25kLm15a2xlYnVzdEBoYW1tZXJzcGFjZS5j b20NCg0KDQo=