Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp3928496ybb; Mon, 6 Apr 2020 19:35:24 -0700 (PDT) X-Google-Smtp-Source: APiQypKnODKhvuNwhxbbGPpfpXIcrf0yBLT8jnc6xMCqp9MsBxe1WBCwgL5VUy5LG/6N7C5PWJzi X-Received: by 2002:a9d:67c6:: with SMTP id c6mr20060341otn.11.1586226924781; Mon, 06 Apr 2020 19:35:24 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1586226924; cv=pass; d=google.com; s=arc-20160816; b=WL6HduvXrGRr0CYYWRYSV8TUAVOZwX813jQl/0xhU6sp91Q+XU8LqKbdaWv8kZk2YC hHHtTo2OOt5G6DcHpSlZZ+PuvOsHck3qX2hOAgro8JRwmwVUI0Pba14iK7OQl32Pq3L9 Foae50nYmYlsrNUCsZDdhNZ59TQWkbea6XluMe677ts/SV57sci9tvB8d+gtQoXEJSvL 7ihiXpRQGgwsL6dTY02I9E5c1igWq9VlnJvPC6ODjGB751fcx7AwjNQR9FmP9eGCQsCz iu1AfVoZrCgFVE0DQiggWiM2HrIHn+C+peHcEXKwO4x2mBhNot6OQFGHxRp/y2ejMcCT ECcw== 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=M2a1vBWonvOGDPu2JAl6/YAjXFU+bIXzAPwQuMQfJsg=; b=rbhhczI8od6Q4D1QS4WSxQquXEKxIGoDOLdgSRve++DCnjmYlN1wd6KH5xHwCbaqps l9zm2K23bwzc6+qAJo3NPWGuHoi4xrXl3GLxm7ev0itMeJ68FpvW4d+aliAgPF9CNFH3 FuDO0qYR/RZCrfVwsvUOgVd+luGIn+A0VkYtvGY/x13Cm/PCGxPWyIP8SgMGNzLsOAqP wFXkBvCHDfImJ1PYaSzc2yUyIz4CdxLDCpCykovZFooOesD4ALXnD2Ch9EMJ1dfoCZGa gsWOMA36euOpX76YdukmWV3da9ItLkrF9EodcIMJoUiMwTmVjlJ+sTzv++Baov0y7tjP VcuQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b="GlsTc/2B"; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id w16si580153oti.167.2020.04.06.19.35.00; Mon, 06 Apr 2020 19:35:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b="GlsTc/2B"; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 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 S1726582AbgDGCey (ORCPT + 99 others); Mon, 6 Apr 2020 22:34:54 -0400 Received: from mail-bn7nam10on2112.outbound.protection.outlook.com ([40.107.92.112]:14080 "EHLO NAM10-BN7-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726396AbgDGCey (ORCPT ); Mon, 6 Apr 2020 22:34:54 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X0XHhCCqm9UhpZBAncH+XdDYBmR0p4txEmhO7FNIWqYdxRvTN6BPGWytB36XfN5al43DiDAH0mftLKFG83vKnIWC/cfeNSX2ZDLU3qVP78mF+KzJ+zjUiJaYI6yAMPzq+lr7e0fYkcDWaD3lurCiZ0B8+mUofCuUX8kEIXKrEREeRIjEd5XiOMyMAeXgFoTlnoNRcQRumrrBLLA8SQFm+Vw4gnJLTK/kRJqPiS+02ICMxTUa05e/bIBOTXDRSV0pWWPf65B0qU4YzxpZNGxWbY97m9lkn0Q+1kbt/uegjOtZcHuwERzdZ0OKGHB5ztaljiWlMMqbZLJdSCDu7au+0Q== 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=M2a1vBWonvOGDPu2JAl6/YAjXFU+bIXzAPwQuMQfJsg=; b=T3Nkm39NT6azuCSOa90ZkbbcvMpNxH5Vtb9gWbUpndDV5+H1bTydyHxlkj9yLv3VX5zNP9ieDCSkWnLuHjrpTqm+T/pFo1Bhc81Iw++Pbfs20bZ1H8B+1Sa2jBN0y8+RfgA5UxdhSBd2dUUqCvI3p1kSTeawkqi0/qyILT6uKx29sqZmUQKpARhjas5IFnTLZpPDyrsehd8K46tsEopD7A+xaxAxcCqiEhqVuTMD5OsBQb0sq0duFybdg6R1ogfbzTCejR6P5sLZc3IlZMP1ZGYph0txpwVvVVRrucRFgFOz0+QCXE51ehP+B/k5bymAFR9fxpA8f5d9EoHqCbmHcw== 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=M2a1vBWonvOGDPu2JAl6/YAjXFU+bIXzAPwQuMQfJsg=; b=GlsTc/2Bkd/75uHegc0V2Xh3miyumtZgyFo8MtDYpRK0rOUfRapKaJ2byEhZkR/KoVMLzUhjdI7dMRNpV4vyqrX3Q6Bvhb1VnvivvDn6OP0P8y1I3PBUED6D9KgMU4kEZilIwg/adI15u9Tx252Gy5d/eTMIL5895EF0GIFNDv4= Received: from CH2PR13MB3398.namprd13.prod.outlook.com (2603:10b6:610:2a::33) by CH2PR13MB3830.namprd13.prod.outlook.com (2603:10b6:610:9e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.14; Tue, 7 Apr 2020 02:34:48 +0000 Received: from CH2PR13MB3398.namprd13.prod.outlook.com ([fe80::9570:c1b8:9eb3:1c36]) by CH2PR13MB3398.namprd13.prod.outlook.com ([fe80::9570:c1b8:9eb3:1c36%7]) with mapi id 15.20.2900.012; Tue, 7 Apr 2020 02:34:48 +0000 From: Trond Myklebust To: "mhocko@kernel.org" , "jack@suse.cz" , "neilb@suse.de" , "Anna.Schumaker@Netapp.com" , "akpm@linux-foundation.org" CC: "linux-mm@kvack.org" , "linux-nfs@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 2/2] MM: Discard NR_UNSTABLE_NFS, use NR_WRITEBACK instead. Thread-Topic: [PATCH 2/2] MM: Discard NR_UNSTABLE_NFS, use NR_WRITEBACK instead. Thread-Index: AQHWDG1WJxTRQF9yvUCrz4AKCHpbhahs8ViA Date: Tue, 7 Apr 2020 02:34:48 +0000 Message-ID: <8f1b8d9b31ae07c68661ebc3f49158cd4e8b93e2.camel@hammerspace.com> References: <878sj8w55y.fsf@notabene.neil.brown.name> In-Reply-To: <878sj8w55y.fsf@notabene.neil.brown.name> 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: f8b77cc4-452d-40b5-cc48-08d7da9c3e1c x-ms-traffictypediagnostic: CH2PR13MB3830: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3383; x-forefront-prvs: 036614DD9C 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:(10019020)(366004)(136003)(376002)(346002)(81166006)(66476007)(66946007)(508600001)(66556008)(8676002)(66446008)(8936002)(54906003)(64756008)(110136005)(6486002)(81156014)(2616005)(36756003)(186003)(6512007)(4326008)(71200400001)(26005)(6506007)(2906002)(76116006)(5660300002)(91956017)(86362001)(30864003);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: USglwc/HAyPWOx+2gX+LlkP7J72eJXU2JTfLIM3ctceRvTB7xM7kPkxsNBeiuIAsZRg0Q4vy0cc2SJAbTgvZZm0xVqVYlSjcmb3w31IE3XUaNbKghJ5DyPGk9t/0J02Vb9QMBIXeYW4mz9fNglExCZXMzzS3UxwTy2iUzwkNFsm7snv+UgHnQTAAnHHKr25q/9CiOVbRger8XlzqeozEtViin65/p9ybt5FEWxqYCyCJPlop6yYjcqJnp0BOK1FOEp53wALs8v0YdCWy/RsU39JFJtP+jHONFVKpkyuJP/E8v7Z67uciaSsjwRuhqdtPLsO/u3ERJWtuF+eEAUU3ZmbnFMvuBAEiik02ledJSDCE0EBeGGesjJMXbb+qo+8tj3TlSXBigJ99q2r+OrI1YYnRjKRse2EElqH2Dad6AJgKmMzKZ1jsClYuZHi6DGHr x-ms-exchange-antispam-messagedata: rPF+Le3ScR5a4sSZBb47PX6zy+YiU3Q8aPl4W0zUUEvHVo5lWy+TqtMThj/PVPpZ0IOW4JtTfQlngpvsoYrKqXMTyLWqZFlrNYoUS8kjRl1tFcaI+kSHHy2HipMnbqWKEpHgQkpb9JLi62YG3N1MRw== 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-Network-Message-Id: f8b77cc4-452d-40b5-cc48-08d7da9c3e1c X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2020 02:34:48.6203 (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: XfZR+HKqqXOdkGvmv25F/sszUn3+f9yQKYPCay9SZ88SZwkhG4htyQDjA1yIwoq000B1f0DgyFm0hA+L9yDFAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR13MB3830 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gVHVlLCAyMDIwLTA0LTA3IGF0IDA5OjQ0ICsxMDAwLCBOZWlsQnJvd24gd3JvdGU6DQo+IEFm dGVyIGFuIE5GUyBwYWdlIGhhcyBiZWVuIHdyaXR0ZW4gaXQgaXMgY29uc2lkZXJlZCAidW5zdGFi bGUiIHVudGlsDQo+IGENCj4gQ09NTUlUIHJlcXVlc3Qgc3VjY2VlZHMuICBJZiB0aGUgQ09NTUlU IGZhaWxzLCB0aGUgcGFnZSB3aWxsIGJlDQo+IHJlLXdyaXR0ZW4uDQo+IA0KPiBUaGVzZSAidW5z dGFibGUiIHBhZ2VzIGFyZSBjdXJyZW50bHkgYWNjb3VudGVkIGFzICJyZWNsYWltYWJsZSIsDQo+ IGVpdGhlcg0KPiBpbiBXQl9SRUNMQUlNQUJMRSwgb3IgaW4gTlJfVU5TVEFCTEVfTkZTIHdoaWNo IGlzIGluY2x1ZGVkIGluIGENCj4gJ3JlY2xhaW1hYmxlJyBjb3VudC4gIFRoaXMgbWlnaHQgaGF2 ZSBtYWRlIHNlbnNlIHdoZW4gc2VuZGluZyB0aGUNCj4gQ09NTUlUDQo+IHJlcXVpcmVkIGEgc2Vw YXJhdGUgYWN0aW9uIGJ5IHRoZSBWRlMvTU0gKGUuZy4gIHJlbGVhc2VwYWdlKCkgdXNlZCB0bw0K PiBzZW5kIGEgQ09NTUlUKS4gIEhvd2V2ZXIgbm93IHRoYXQgYWxsIHdyaXRlcyBnZW5lcmF0ZWQg YnkNCj4gLT53cml0ZXBhZ2VzKCkNCj4gd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGZvbGxvd2VkIGJ5 IGEgQ09NTUlUIChzaW5jZSBjb21taXQgOTE5ZTNiZDlhODc1DQo+ICgiTkZTOiBFbnN1cmUgd2Ug Y29tbWl0IGFmdGVyIHdyaXRlYmFjayBpcyBjb21wbGV0ZSIpKSBpdCBtYWtlcyBtb3JlDQo+IHNl bnNlIHRvIHRyZWF0IHRoZW0gYXMgd3JpdGViYWNrIHBhZ2VzLg0KPiANCj4gU28gdGhpcyBwYXRj aCByZW1vdmVzIE5SX1VOU1RBQkxFX05GUyBhbmQgYWNjb3VudHMgdW5zdGFibGUgcGFnZXMgaW4N Cj4gTlJfV1JJVEVCQUNLIGFuZCBXQl9XUklURUJBQ0suDQo+IA0KPiBBIHBhcnRpY3VsYXIgZWZm ZWN0IG9mIHRoaXMgY2hhbmdlIGlzIHRoYXQgd2hlbg0KPiB3Yl9jaGVja19iYWNrZ3JvdW5kX2Zs dXNoKCkgY2FsbHMgd2Jfb3Zlcl9iZ190aHJlc2hvbGQoKSwgdGhlIGxhdHRlcg0KPiB3aWxsIHJl cG9ydCAndHJ1ZScgYSBsb3QgbGVzcyBvZnRlbiBhcyB0aGUgJ3Vuc3RhYmxlJyBwYWdlcyBhcmUg bm8NCj4gbG9uZ2VyIGNvbnNpZGVyZWQgJ2RpcnR5JyAoYXMgdGhlcmUgaXMgbm90aGluZyB0aGF0 IHdyaXRlYmFjayBjYW4gZG8NCj4gYWJvdXQgdGhlbSBhbnl3YXkpLg0KPiANCj4gQ3VycmVudGx5 IHdiX2NoZWNrX2JhY2tncm91bmRfZmx1c2goKSB3aWxsIHRyaWdnZXIgd3JpdGViYWNrIHRvIE5G Uw0KPiBldmVuDQo+IHdoZW4gdGhlcmUgYXJlIHJlbGF0aXZlbHkgZmV3IGRpcnR5IHBhZ2VzIChp ZiB0aGVyZSBhcmUgbG90cyBvZg0KPiB1bnN0YWJsZQ0KPiBwYWdlcyksIHRoaXMgY2FuIHJlc3Vs dCBpbiBzbWFsbCB3cml0ZXMgZ29pbmcgdG8gdGhlIHNlcnZlciAoMTBzIG9mDQo+IEtpbG9ieXRl cyByYXRoZXIgdGhhbiBhIE1lZ2FieXRlKSB3aGljaCBodXJ0cyB0aHJvdWdocHV0Lg0KPiBXaXRo IHRoaXMgcGF0Y2gsIHRoZXJlIGFyZSBmZXdlciB3cml0ZXMgd2hpY2ggYXJlIGVhY2ggbGFyZ2Vy IG9uDQo+IGF2ZXJhZ2UuDQo+IA0KPiBXaGVyZSB0aGUgTlJfVU5TVEFCTEVfTkZTIGNvdW50IHdh cyBpbmNsdWRlZCBpbiBzdGF0aXN0aWNzDQo+IHZpcnR1YWwtZmlsZXMsIHRoZSBlbnRyeSBpcyBy ZXRhaW5lZCwgYnV0IHRoZSB2YWx1ZSBpcyBoYXJkLWNvZGVkIGFzDQo+IHplcm8uICBzdGF0aWMg dHJhY2UgcG9pbnRzIHdoaWNoIHJlY29yZCB0aGlzIGNvdW50ZXIgbm8gbG9uZ2VyIHJlcG9ydA0K PiBpdC4NCg0KSSdtIE9LIHdpdGggdGhpcy4gSXQgcHV0cyB0aGUgY29udHJvbCBhdCB0aGUgcmln aHQgbGV2ZWwgSU1PLiBJJ20NCmFzc3VtaW5nIGl0IHdpbGwgZ28gdGhyb3VnaCB0aGUgTU0gbWFp bnRhaW5lcnMsIHNvOg0KDQpBY2tlZC1ieTogVHJvbmQgTXlrbGVidXN0IDx0cm9uZC5teWtsZWJ1 c3RAaGFtbWVyc3BhY2UuY29tPg0KDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBOZWlsQnJvd24gPG5l aWxiQHN1c2UuZGU+DQo+IC0tLQ0KPiAgRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnJz dCB8ICA0ICsrLS0NCj4gIGRyaXZlcnMvYmFzZS9ub2RlLmMgICAgICAgICAgICAgICAgfCAgMiAr LQ0KPiAgZnMvZnMtd3JpdGViYWNrLmMgICAgICAgICAgICAgICAgICB8ICAxIC0NCj4gIGZzL25m cy9pbnRlcm5hbC5oICAgICAgICAgICAgICAgICAgfCAxMCArKysrKysrLS0tDQo+ICBmcy9uZnMv d3JpdGUuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQ0KPiAgZnMvcHJvYy9tZW1pbmZv LmMgICAgICAgICAgICAgICAgICB8ICAzICstLQ0KPiAgaW5jbHVkZS9saW51eC9tbXpvbmUuaCAg ICAgICAgICAgICB8ICAxIC0NCj4gIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3dyaXRlYmFjay5oICAg fCAgNSArLS0tLQ0KPiAgbW0vbWVtY29udHJvbC5jICAgICAgICAgICAgICAgICAgICB8ICAxIC0N Cj4gIG1tL3BhZ2Utd3JpdGViYWNrLmMgICAgICAgICAgICAgICAgfCAxNyArKysrLS0tLS0tLS0t LS0tLQ0KPiAgbW0vcGFnZV9hbGxvYy5jICAgICAgICAgICAgICAgICAgICB8ICA2ICsrLS0tLQ0K PiAgbW0vdm1zdGF0LmMgICAgICAgICAgICAgICAgICAgICAgICB8IDEzICsrKysrKysrKystLS0N Cj4gIDEyIGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQ0K PiANCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcHJvYy5yc3QNCj4g Yi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3Byb2MucnN0DQo+IGluZGV4IDM4YjYwNjk5MTA2 NS4uMDkyYjdiNDRkMTU4IDEwMDY0NA0KPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1z L3Byb2MucnN0DQo+ICsrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcHJvYy5yc3QNCj4g QEAgLTEwNDIsOCArMTA0Miw4IEBAIFBhZ2VUYWJsZXMNCj4gICAgICAgICAgICAgICAgYW1vdW50 IG9mIG1lbW9yeSBkZWRpY2F0ZWQgdG8gdGhlIGxvd2VzdCBsZXZlbCBvZiBwYWdlDQo+ICAgICAg ICAgICAgICAgIHRhYmxlcy4NCj4gIE5GU19VbnN0YWJsZQ0KPiAtICAgICAgICAgICAgICBORlMg cGFnZXMgc2VudCB0byB0aGUgc2VydmVyLCBidXQgbm90IHlldCBjb21taXR0ZWQgdG8NCj4gc3Rh YmxlDQo+IC0JICAgICAgc3RvcmFnZQ0KPiArICAgICAgICAgICAgICBBbHdheXMgemVyby4gUHJl dmlvdXMgY291bnRlZCBwYWdlcyB3aGljaCBoYWQgYmVlbg0KPiB3cml0dGVuIHRvDQo+ICsgICAg ICAgICAgICAgIHRoZSBzZXJ2ZXIsIGJ1dCBoYXMgbm90IGJlZW4gY29tbWl0dGVkIHRvIHN0YWJs ZQ0KPiBzdG9yYWdlLg0KPiAgQm91bmNlDQo+ICAgICAgICAgICAgICAgIE1lbW9yeSB1c2VkIGZv ciBibG9jayBkZXZpY2UgImJvdW5jZSBidWZmZXJzIg0KPiAgV3JpdGViYWNrVG1wDQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2Jhc2Uvbm9kZS5jIGIvZHJpdmVycy9iYXNlL25vZGUuYw0KPiBpbmRl eCAxMGQ3ZTgxOGUxMTguLjE1ZjVlZDZhODgzMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9iYXNl L25vZGUuYw0KPiArKysgYi9kcml2ZXJzL2Jhc2Uvbm9kZS5jDQo+IEBAIC00MzksNyArNDM5LDcg QEAgc3RhdGljIHNzaXplX3Qgbm9kZV9yZWFkX21lbWluZm8oc3RydWN0IGRldmljZQ0KPiAqZGV2 LA0KPiAgCQkgICAgICAgbmlkLCBLKGkuc2hhcmVkcmFtKSwNCj4gIAkJICAgICAgIG5pZCwgc3Vt X3pvbmVfbm9kZV9wYWdlX3N0YXRlKG5pZCwNCj4gTlJfS0VSTkVMX1NUQUNLX0tCKSwNCj4gIAkJ ICAgICAgIG5pZCwgSyhzdW1fem9uZV9ub2RlX3BhZ2Vfc3RhdGUobmlkLA0KPiBOUl9QQUdFVEFC TEUpKSwNCj4gLQkJICAgICAgIG5pZCwgSyhub2RlX3BhZ2Vfc3RhdGUocGdkYXQsIE5SX1VOU1RB QkxFX05GUykpLA0KPiArCQkgICAgICAgbmlkLCAwLA0KPiAgCQkgICAgICAgbmlkLCBLKHN1bV96 b25lX25vZGVfcGFnZV9zdGF0ZShuaWQsDQo+IE5SX0JPVU5DRSkpLA0KPiAgCQkgICAgICAgbmlk LCBLKG5vZGVfcGFnZV9zdGF0ZShwZ2RhdCwNCj4gTlJfV1JJVEVCQUNLX1RFTVApKSwNCj4gIAkJ ICAgICAgIG5pZCwgSyhzcmVjbGFpbWFibGUgKw0KPiBkaWZmIC0tZ2l0IGEvZnMvZnMtd3JpdGVi YWNrLmMgYi9mcy9mcy13cml0ZWJhY2suYw0KPiBpbmRleCA3NmFjOWM3ZDMyZWMuLmM1YmRmNDZl M2I0YiAxMDA2NDQNCj4gLS0tIGEvZnMvZnMtd3JpdGViYWNrLmMNCj4gKysrIGIvZnMvZnMtd3Jp dGViYWNrLmMNCj4gQEAgLTEwNzAsNyArMTA3MCw2IEBAIHN0YXRpYyB2b2lkIGJkaV9zcGxpdF93 b3JrX3RvX3dicyhzdHJ1Y3QNCj4gYmFja2luZ19kZXZfaW5mbyAqYmRpLA0KPiAgc3RhdGljIHVu c2lnbmVkIGxvbmcgZ2V0X25yX2RpcnR5X3BhZ2VzKHZvaWQpDQo+ICB7DQo+ICAJcmV0dXJuIGds b2JhbF9ub2RlX3BhZ2Vfc3RhdGUoTlJfRklMRV9ESVJUWSkgKw0KPiAtCQlnbG9iYWxfbm9kZV9w YWdlX3N0YXRlKE5SX1VOU1RBQkxFX05GUykgKw0KPiAgCQlnZXRfbnJfZGlydHlfaW5vZGVzKCk7 DQo+ICB9DQo+ICANCj4gZGlmZiAtLWdpdCBhL2ZzL25mcy9pbnRlcm5hbC5oIGIvZnMvbmZzL2lu dGVybmFsLmgNCj4gaW5kZXggZjgwYzQ3ZDVmZjI3Li43NDlkYTAyYjU0N2EgMTAwNjQ0DQo+IC0t LSBhL2ZzL25mcy9pbnRlcm5hbC5oDQo+ICsrKyBiL2ZzL25mcy9pbnRlcm5hbC5oDQo+IEBAIC02 NTIsNyArNjUyLDggQEAgdm9pZCBuZnNfc3VwZXJfc2V0X21heGJ5dGVzKHN0cnVjdCBzdXBlcl9i bG9jaw0KPiAqc2IsIF9fdTY0IG1heGZpbGVzaXplKQ0KPiAgfQ0KPiAgDQo+ICAvKg0KPiAtICog UmVjb3JkIHRoZSBwYWdlIGFzIHVuc3RhYmxlIGFuZCBtYXJrIGl0cyBpbm9kZSBhcyBkaXJ0eS4N Cj4gKyAqIFJlY29yZCB0aGUgcGFnZSBhcyB1bnN0YWJsZSAoYW4gZXh0cmEgd3JpdGViYWNrIHBl cmlvZCkgYW5kIG1hcmsNCj4gaXRzDQo+ICsgKiBpbm9kZSBhcyBkaXJ0eS4NCj4gICAqLw0KPiAg c3RhdGljIGlubGluZQ0KPiAgdm9pZCBuZnNfbWFya19wYWdlX3Vuc3RhYmxlKHN0cnVjdCBwYWdl ICpwYWdlLCBzdHJ1Y3QNCj4gbmZzX2NvbW1pdF9pbmZvICpjaW5mbykNCj4gQEAgLTY2MCw4ICs2 NjEsMTEgQEAgdm9pZCBuZnNfbWFya19wYWdlX3Vuc3RhYmxlKHN0cnVjdCBwYWdlICpwYWdlLA0K PiBzdHJ1Y3QgbmZzX2NvbW1pdF9pbmZvICpjaW5mbykNCj4gIAlpZiAoIWNpbmZvLT5kcmVxKSB7 DQo+ICAJCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlX2ZpbGVfbWFwcGluZyhwYWdlKS0+aG9z dDsNCj4gIA0KPiAtCQlpbmNfbm9kZV9wYWdlX3N0YXRlKHBhZ2UsIE5SX1VOU1RBQkxFX05GUyk7 DQo+IC0JCWluY193Yl9zdGF0KCZpbm9kZV90b19iZGkoaW5vZGUpLT53YiwgV0JfUkVDTEFJTUFC TEUpOw0KPiArCQkvKiBUaGlzIHBhZ2UgaXMgcmVhbGx5IHN0aWxsIGluIHdyaXRlLWJhY2sgLSBq dXN0IHRoYXQNCj4gdGhlDQo+ICsJCSAqIHdyaXRlYmFjayBpcyBoYXBwZW5pbmcgb24gdGhlIHNl cnZlciBub3cuDQo+ICsJCSAqLw0KPiArCQlpbmNfbm9kZV9wYWdlX3N0YXRlKHBhZ2UsIE5SX1dS SVRFQkFDSyk7DQo+ICsJCWluY193Yl9zdGF0KCZpbm9kZV90b19iZGkoaW5vZGUpLT53YiwgV0Jf V1JJVEVCQUNLKTsNCj4gIAkJX19tYXJrX2lub2RlX2RpcnR5KGlub2RlLCBJX0RJUlRZX0RBVEFT WU5DKTsNCj4gIAl9DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9mcy9uZnMvd3JpdGUuYyBiL2ZzL25m cy93cml0ZS5jDQo+IGluZGV4IGM0NzhiNzcyY2M0OS4uMmUxNWE1NjYyMGIzIDEwMDY0NA0KPiAt LS0gYS9mcy9uZnMvd3JpdGUuYw0KPiArKysgYi9mcy9uZnMvd3JpdGUuYw0KPiBAQCAtOTU4LDkg Kzk1OCw5IEBAIG5mc19tYXJrX3JlcXVlc3RfY29tbWl0KHN0cnVjdCBuZnNfcGFnZSAqcmVxLA0K PiBzdHJ1Y3QgcG5mc19sYXlvdXRfc2VnbWVudCAqbHNlZywNCj4gIHN0YXRpYyB2b2lkDQo+ICBu ZnNfY2xlYXJfcGFnZV9jb21taXQoc3RydWN0IHBhZ2UgKnBhZ2UpDQo+ICB7DQo+IC0JZGVjX25v ZGVfcGFnZV9zdGF0ZShwYWdlLCBOUl9VTlNUQUJMRV9ORlMpOw0KPiArCWRlY19ub2RlX3BhZ2Vf c3RhdGUocGFnZSwgTlJfV1JJVEVCQUNLKTsNCj4gIAlkZWNfd2Jfc3RhdCgmaW5vZGVfdG9fYmRp KHBhZ2VfZmlsZV9tYXBwaW5nKHBhZ2UpLT5ob3N0KS0+d2IsDQo+IC0JCSAgICBXQl9SRUNMQUlN QUJMRSk7DQo+ICsJCSAgICBXQl9XUklURUJBQ0spOw0KPiAgfQ0KPiAgDQo+ICAvKiBDYWxsZWQg aG9sZGluZyB0aGUgcmVxdWVzdCBsb2NrIG9uIEByZXEgKi8NCj4gZGlmZiAtLWdpdCBhL2ZzL3By b2MvbWVtaW5mby5jIGIvZnMvcHJvYy9tZW1pbmZvLmMNCj4gaW5kZXggOGMxZjFiYjFhNWNlLi45 YmQ5NGI1YTk2NTggMTAwNjQ0DQo+IC0tLSBhL2ZzL3Byb2MvbWVtaW5mby5jDQo+ICsrKyBiL2Zz L3Byb2MvbWVtaW5mby5jDQo+IEBAIC0xMDYsOCArMTA2LDcgQEAgc3RhdGljIGludCBtZW1pbmZv X3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sDQo+IHZvaWQgKnYpDQo+ICAJc2hvd192YWxf a2IobSwgIlBhZ2VUYWJsZXM6ICAgICAiLA0KPiAgCQkgICAgZ2xvYmFsX3pvbmVfcGFnZV9zdGF0 ZShOUl9QQUdFVEFCTEUpKTsNCj4gIA0KPiAtCXNob3dfdmFsX2tiKG0sICJORlNfVW5zdGFibGU6 ICAgIiwNCj4gLQkJICAgIGdsb2JhbF9ub2RlX3BhZ2Vfc3RhdGUoTlJfVU5TVEFCTEVfTkZTKSk7 DQo+ICsJc2hvd192YWxfa2IobSwgIk5GU19VbnN0YWJsZTogICAiLCAwKTsNCj4gIAlzaG93X3Zh bF9rYihtLCAiQm91bmNlOiAgICAgICAgICIsDQo+ICAJCSAgICBnbG9iYWxfem9uZV9wYWdlX3N0 YXRlKE5SX0JPVU5DRSkpOw0KPiAgCXNob3dfdmFsX2tiKG0sICJXcml0ZWJhY2tUbXA6ICAgIiwN Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW16b25lLmggYi9pbmNsdWRlL2xpbnV4L21t em9uZS5oDQo+IGluZGV4IGU4NGQ0NDg5ODhiNi4uMzkzN2YyYmUyN2Q4IDEwMDY0NA0KPiAtLS0g YS9pbmNsdWRlL2xpbnV4L21tem9uZS5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgvbW16b25lLmgN Cj4gQEAgLTIzNyw3ICsyMzcsNiBAQCBlbnVtIG5vZGVfc3RhdF9pdGVtIHsNCj4gIAlOUl9GSUxF X1RIUFMsDQo+ICAJTlJfRklMRV9QTURNQVBQRUQsDQo+ICAJTlJfQU5PTl9USFBTLA0KPiAtCU5S X1VOU1RBQkxFX05GUywJLyogTkZTIHVuc3RhYmxlIHBhZ2VzICovDQo+ICAJTlJfVk1TQ0FOX1dS SVRFLA0KPiAgCU5SX1ZNU0NBTl9JTU1FRElBVEUsCS8qIFByaW9yaXRpc2UgZm9yIHJlY2xhaW0g d2hlbg0KPiB3cml0ZWJhY2sgZW5kcyAqLw0KPiAgCU5SX0RJUlRJRUQsCQkvKiBwYWdlIGRpcnR5 aW5ncyBzaW5jZSBib290dXAgKi8NCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdHJhY2UvZXZlbnRz L3dyaXRlYmFjay5oDQo+IGIvaW5jbHVkZS90cmFjZS9ldmVudHMvd3JpdGViYWNrLmgNCj4gaW5k ZXggZDk0ZGVmMjVlNGRjLi40NWI1ZmJkYjFmNjIgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvdHJh Y2UvZXZlbnRzL3dyaXRlYmFjay5oDQo+ICsrKyBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3dyaXRl YmFjay5oDQo+IEBAIC01NDIsNyArNTQyLDYgQEAgVFJBQ0VfRVZFTlQoZ2xvYmFsX2RpcnR5X3N0 YXRlLA0KPiAgCVRQX1NUUlVDVF9fZW50cnkoDQo+ICAJCV9fZmllbGQodW5zaWduZWQgbG9uZywJ bnJfZGlydHkpDQo+ICAJCV9fZmllbGQodW5zaWduZWQgbG9uZywJbnJfd3JpdGViYWNrKQ0KPiAt CQlfX2ZpZWxkKHVuc2lnbmVkIGxvbmcsCW5yX3Vuc3RhYmxlKQ0KPiAgCQlfX2ZpZWxkKHVuc2ln bmVkIGxvbmcsCWJhY2tncm91bmRfdGhyZXNoKQ0KPiAgCQlfX2ZpZWxkKHVuc2lnbmVkIGxvbmcs CWRpcnR5X3RocmVzaCkNCj4gIAkJX19maWVsZCh1bnNpZ25lZCBsb25nLAlkaXJ0eV9saW1pdCkN Cj4gQEAgLTU1Myw3ICs1NTIsNiBAQCBUUkFDRV9FVkVOVChnbG9iYWxfZGlydHlfc3RhdGUsDQo+ ICAJVFBfZmFzdF9hc3NpZ24oDQo+ICAJCV9fZW50cnktPm5yX2RpcnR5CT0NCj4gZ2xvYmFsX25v ZGVfcGFnZV9zdGF0ZShOUl9GSUxFX0RJUlRZKTsNCj4gIAkJX19lbnRyeS0+bnJfd3JpdGViYWNr CT0NCj4gZ2xvYmFsX25vZGVfcGFnZV9zdGF0ZShOUl9XUklURUJBQ0spOw0KPiAtCQlfX2VudHJ5 LT5ucl91bnN0YWJsZQk9DQo+IGdsb2JhbF9ub2RlX3BhZ2Vfc3RhdGUoTlJfVU5TVEFCTEVfTkZT KTsNCj4gIAkJX19lbnRyeS0+bnJfZGlydGllZAk9DQo+IGdsb2JhbF9ub2RlX3BhZ2Vfc3RhdGUo TlJfRElSVElFRCk7DQo+ICAJCV9fZW50cnktPm5yX3dyaXR0ZW4JPQ0KPiBnbG9iYWxfbm9kZV9w YWdlX3N0YXRlKE5SX1dSSVRURU4pOw0KPiAgCQlfX2VudHJ5LT5iYWNrZ3JvdW5kX3RocmVzaCA9 IGJhY2tncm91bmRfdGhyZXNoOw0KPiBAQCAtNTYxLDEyICs1NTksMTEgQEAgVFJBQ0VfRVZFTlQo Z2xvYmFsX2RpcnR5X3N0YXRlLA0KPiAgCQlfX2VudHJ5LT5kaXJ0eV9saW1pdAk9DQo+IGdsb2Jh bF93Yl9kb21haW4uZGlydHlfbGltaXQ7DQo+ICAJKSwNCj4gIA0KPiAtCVRQX3ByaW50aygiZGly dHk9JWx1IHdyaXRlYmFjaz0lbHUgdW5zdGFibGU9JWx1ICINCj4gKwlUUF9wcmludGsoImRpcnR5 PSVsdSB3cml0ZWJhY2s9JWx1ICINCj4gIAkJICAiYmdfdGhyZXNoPSVsdSB0aHJlc2g9JWx1IGxp bWl0PSVsdSAiDQo+ICAJCSAgImRpcnRpZWQ9JWx1IHdyaXR0ZW49JWx1IiwNCj4gIAkJICBfX2Vu dHJ5LT5ucl9kaXJ0eSwNCj4gIAkJICBfX2VudHJ5LT5ucl93cml0ZWJhY2ssDQo+IC0JCSAgX19l bnRyeS0+bnJfdW5zdGFibGUsDQo+ICAJCSAgX19lbnRyeS0+YmFja2dyb3VuZF90aHJlc2gsDQo+ ICAJCSAgX19lbnRyeS0+ZGlydHlfdGhyZXNoLA0KPiAgCQkgIF9fZW50cnktPmRpcnR5X2xpbWl0 LA0KPiBkaWZmIC0tZ2l0IGEvbW0vbWVtY29udHJvbC5jIGIvbW0vbWVtY29udHJvbC5jDQo+IGlu ZGV4IGNhMTk0ODY0ZDgwMi4uNDFiNDUwYjBjYTI5IDEwMDY0NA0KPiAtLS0gYS9tbS9tZW1jb250 cm9sLmMNCj4gKysrIGIvbW0vbWVtY29udHJvbC5jDQo+IEBAIC00MzI2LDcgKzQzMjYsNiBAQCB2 b2lkIG1lbV9jZ3JvdXBfd2Jfc3RhdHMoc3RydWN0IGJkaV93cml0ZWJhY2sNCj4gKndiLCB1bnNp Z25lZCBsb25nICpwZmlsZXBhZ2VzLA0KPiAgDQo+ICAJKnBkaXJ0eSA9IG1lbWNnX2V4YWN0X3Bh Z2Vfc3RhdGUobWVtY2csIE5SX0ZJTEVfRElSVFkpOw0KPiAgDQo+IC0JLyogdGhpcyBzaG91bGQg ZXZlbnR1YWxseSBpbmNsdWRlIE5SX1VOU1RBQkxFX05GUyAqLw0KPiAgCSpwd3JpdGViYWNrID0g bWVtY2dfZXhhY3RfcGFnZV9zdGF0ZShtZW1jZywgTlJfV1JJVEVCQUNLKTsNCj4gIAkqcGZpbGVw YWdlcyA9IG1lbWNnX2V4YWN0X3BhZ2Vfc3RhdGUobWVtY2csIE5SX0lOQUNUSVZFX0ZJTEUpICsN Cj4gIAkJCW1lbWNnX2V4YWN0X3BhZ2Vfc3RhdGUobWVtY2csIE5SX0FDVElWRV9GSUxFKTsNCj4g ZGlmZiAtLWdpdCBhL21tL3BhZ2Utd3JpdGViYWNrLmMgYi9tbS9wYWdlLXdyaXRlYmFjay5jDQo+ IGluZGV4IDRjOTg3NTk3MWRlNS4uZDE2ZjZhNTliY2U0IDEwMDY0NA0KPiAtLS0gYS9tbS9wYWdl LXdyaXRlYmFjay5jDQo+ICsrKyBiL21tL3BhZ2Utd3JpdGViYWNrLmMNCj4gQEAgLTUwNCw3ICs1 MDQsNiBAQCBib29sIG5vZGVfZGlydHlfb2soc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdCkNCj4g IAl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzID0gMDsNCj4gIA0KPiAgCW5yX3BhZ2VzICs9IG5vZGVf cGFnZV9zdGF0ZShwZ2RhdCwgTlJfRklMRV9ESVJUWSk7DQo+IC0JbnJfcGFnZXMgKz0gbm9kZV9w YWdlX3N0YXRlKHBnZGF0LCBOUl9VTlNUQUJMRV9ORlMpOw0KPiAgCW5yX3BhZ2VzICs9IG5vZGVf cGFnZV9zdGF0ZShwZ2RhdCwgTlJfV1JJVEVCQUNLKTsNCj4gIA0KPiAgCXJldHVybiBucl9wYWdl cyA8PSBsaW1pdDsNCj4gQEAgLTc1OCw3ICs3NTcsNyBAQCBzdGF0aWMgdm9pZCBtZHRjX2NhbGNf YXZhaWwoc3RydWN0DQo+IGRpcnR5X3Rocm90dGxlX2NvbnRyb2wgKm1kdGMsDQo+ICAgKiBib3Vu ZGVkIGJ5IHRoZSBiZGktPm1pbl9yYXRpbyBhbmQvb3IgYmRpLT5tYXhfcmF0aW8gcGFyYW1ldGVy cywNCj4gaWYgc2V0Lg0KPiAgICoNCj4gICAqIFJldHVybjogQHdiJ3MgZGlydHkgbGltaXQgaW4g cGFnZXMuIFRoZSB0ZXJtICJkaXJ0eSIgaW4gdGhlDQo+IGNvbnRleHQgb2YNCj4gLSAqIGRpcnR5 IGJhbGFuY2luZyBpbmNsdWRlcyBhbGwgUEdfZGlydHksIFBHX3dyaXRlYmFjayBhbmQgTkZTDQo+ IHVuc3RhYmxlIHBhZ2VzLg0KPiArICogZGlydHkgYmFsYW5jaW5nIGluY2x1ZGVzIGFsbCBQR19k aXJ0eSBhbmQgUEdfd3JpdGViYWNrIHBhZ2VzLg0KPiAgICovDQo+ICBzdGF0aWMgdW5zaWduZWQg bG9uZyBfX3diX2NhbGNfdGhyZXNoKHN0cnVjdCBkaXJ0eV90aHJvdHRsZV9jb250cm9sDQo+ICpk dGMpDQo+ICB7DQo+IEBAIC0xNTY2LDcgKzE1NjUsNyBAQCBzdGF0aWMgdm9pZCBiYWxhbmNlX2Rp cnR5X3BhZ2VzKHN0cnVjdA0KPiBiZGlfd3JpdGViYWNrICp3YiwNCj4gIAlzdHJ1Y3QgZGlydHlf dGhyb3R0bGVfY29udHJvbCAqIGNvbnN0IG1kdGMgPQ0KPiBtZHRjX3ZhbGlkKCZtZHRjX3N0b3Ip ID8NCj4gIAkJCQkJCSAgICAgJm1kdGNfc3RvciA6IE5VTEw7DQo+ICAJc3RydWN0IGRpcnR5X3Ro cm90dGxlX2NvbnRyb2wgKnNkdGM7DQo+IC0JdW5zaWduZWQgbG9uZyBucl9yZWNsYWltYWJsZTsJ LyogPSBmaWxlX2RpcnR5ICsNCj4gdW5zdGFibGVfbmZzICovDQo+ICsJdW5zaWduZWQgbG9uZyBu cl9yZWNsYWltYWJsZTsJLyogPSBmaWxlX2RpcnR5ICovDQo+ICAJbG9uZyBwZXJpb2Q7DQo+ICAJ bG9uZyBwYXVzZTsNCj4gIAlsb25nIG1heF9wYXVzZTsNCj4gQEAgLTE1ODksMTQgKzE1ODgsNyBA QCBzdGF0aWMgdm9pZCBiYWxhbmNlX2RpcnR5X3BhZ2VzKHN0cnVjdA0KPiBiZGlfd3JpdGViYWNr ICp3YiwNCj4gIAkJdW5zaWduZWQgbG9uZyBtX3RocmVzaCA9IDA7DQo+ICAJCXVuc2lnbmVkIGxv bmcgbV9iZ190aHJlc2ggPSAwOw0KPiAgDQo+IC0JCS8qDQo+IC0JCSAqIFVuc3RhYmxlIHdyaXRl cyBhcmUgYSBmZWF0dXJlIG9mIGNlcnRhaW4gbmV0d29ya2VkDQo+IC0JCSAqIGZpbGVzeXN0ZW1z IChpLmUuIE5GUykgaW4gd2hpY2ggZGF0YSBtYXkgaGF2ZSBiZWVuDQo+IC0JCSAqIHdyaXR0ZW4g dG8gdGhlIHNlcnZlcidzIHdyaXRlIGNhY2hlLCBidXQgaGFzIG5vdCB5ZXQNCj4gLQkJICogYmVl biBmbHVzaGVkIHRvIHBlcm1hbmVudCBzdG9yYWdlLg0KPiAtCQkgKi8NCj4gLQkJbnJfcmVjbGFp bWFibGUgPSBnbG9iYWxfbm9kZV9wYWdlX3N0YXRlKE5SX0ZJTEVfRElSVFkpDQo+ICsNCj4gLQkJ CQkJZ2xvYmFsX25vZGVfcGFnZV9zdGF0ZShOUl9VTlNUQQ0KPiBCTEVfTkZTKTsNCj4gKwkJbnJf cmVjbGFpbWFibGUgPSBnbG9iYWxfbm9kZV9wYWdlX3N0YXRlKE5SX0ZJTEVfRElSVFkpOw0KPiAg CQlnZHRjLT5hdmFpbCA9IGdsb2JhbF9kaXJ0eWFibGVfbWVtb3J5KCk7DQo+ICAJCWdkdGMtPmRp cnR5ID0gbnJfcmVjbGFpbWFibGUgKw0KPiBnbG9iYWxfbm9kZV9wYWdlX3N0YXRlKE5SX1dSSVRF QkFDSyk7DQo+ICANCj4gQEAgLTE5NDAsOCArMTkzMiw3IEBAIGJvb2wgd2Jfb3Zlcl9iZ190aHJl c2goc3RydWN0IGJkaV93cml0ZWJhY2sNCj4gKndiKQ0KPiAgCSAqIGFzIHdlJ3JlIHRyeWluZyB0 byBkZWNpZGUgd2hldGhlciB0byBwdXQgbW9yZSB1bmRlcg0KPiB3cml0ZWJhY2suDQo+ICAJICov DQo+ICAJZ2R0Yy0+YXZhaWwgPSBnbG9iYWxfZGlydHlhYmxlX21lbW9yeSgpOw0KPiAtCWdkdGMt PmRpcnR5ID0gZ2xvYmFsX25vZGVfcGFnZV9zdGF0ZShOUl9GSUxFX0RJUlRZKSArDQo+IC0JCSAg ICAgIGdsb2JhbF9ub2RlX3BhZ2Vfc3RhdGUoTlJfVU5TVEFCTEVfTkZTKTsNCj4gKwlnZHRjLT5k aXJ0eSA9IGdsb2JhbF9ub2RlX3BhZ2Vfc3RhdGUoTlJfRklMRV9ESVJUWSk7DQo+ICAJZG9tYWlu X2RpcnR5X2xpbWl0cyhnZHRjKTsNCj4gIA0KPiAgCWlmIChnZHRjLT5kaXJ0eSA+IGdkdGMtPmJn X3RocmVzaCkNCj4gZGlmZiAtLWdpdCBhL21tL3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2Mu Yw0KPiBpbmRleCBlNWY3NmRhOGNkNGUuLjI0Njc4ZDZlMzA4ZCAxMDA2NDQNCj4gLS0tIGEvbW0v cGFnZV9hbGxvYy5jDQo+ICsrKyBiL21tL3BhZ2VfYWxsb2MuYw0KPiBAQCAtNTIzNyw3ICs1MjM3 LDcgQEAgdm9pZCBzaG93X2ZyZWVfYXJlYXModW5zaWduZWQgaW50IGZpbHRlciwNCj4gbm9kZW1h c2tfdCAqbm9kZW1hc2spDQo+ICANCj4gIAlwcmludGsoImFjdGl2ZV9hbm9uOiVsdSBpbmFjdGl2 ZV9hbm9uOiVsdSBpc29sYXRlZF9hbm9uOiVsdVxuIg0KPiAgCQkiIGFjdGl2ZV9maWxlOiVsdSBp bmFjdGl2ZV9maWxlOiVsdQ0KPiBpc29sYXRlZF9maWxlOiVsdVxuIg0KPiAtCQkiIHVuZXZpY3Rh YmxlOiVsdSBkaXJ0eTolbHUgd3JpdGViYWNrOiVsdQ0KPiB1bnN0YWJsZTolbHVcbiINCj4gKwkJ IiB1bmV2aWN0YWJsZTolbHUgZGlydHk6JWx1IHdyaXRlYmFjazolbHUgdW5zdGFibGU6MFxuIg0K PiAgCQkiIHNsYWJfcmVjbGFpbWFibGU6JWx1IHNsYWJfdW5yZWNsYWltYWJsZTolbHVcbiINCj4g IAkJIiBtYXBwZWQ6JWx1IHNobWVtOiVsdSBwYWdldGFibGVzOiVsdSBib3VuY2U6JWx1XG4iDQo+ ICAJCSIgZnJlZTolbHUgZnJlZV9wY3A6JWx1IGZyZWVfY21hOiVsdVxuIiwNCj4gQEAgLTUyNTAs NyArNTI1MCw2IEBAIHZvaWQgc2hvd19mcmVlX2FyZWFzKHVuc2lnbmVkIGludCBmaWx0ZXIsDQo+ IG5vZGVtYXNrX3QgKm5vZGVtYXNrKQ0KPiAgCQlnbG9iYWxfbm9kZV9wYWdlX3N0YXRlKE5SX1VO RVZJQ1RBQkxFKSwNCj4gIAkJZ2xvYmFsX25vZGVfcGFnZV9zdGF0ZShOUl9GSUxFX0RJUlRZKSwN Cj4gIAkJZ2xvYmFsX25vZGVfcGFnZV9zdGF0ZShOUl9XUklURUJBQ0spLA0KPiAtCQlnbG9iYWxf bm9kZV9wYWdlX3N0YXRlKE5SX1VOU1RBQkxFX05GUyksDQo+ICAJCWdsb2JhbF9ub2RlX3BhZ2Vf c3RhdGUoTlJfU0xBQl9SRUNMQUlNQUJMRSksDQo+ICAJCWdsb2JhbF9ub2RlX3BhZ2Vfc3RhdGUo TlJfU0xBQl9VTlJFQ0xBSU1BQkxFKSwNCj4gIAkJZ2xvYmFsX25vZGVfcGFnZV9zdGF0ZShOUl9G SUxFX01BUFBFRCksDQo+IEBAIC01MjgzLDcgKzUyODIsNyBAQCB2b2lkIHNob3dfZnJlZV9hcmVh cyh1bnNpZ25lZCBpbnQgZmlsdGVyLA0KPiBub2RlbWFza190ICpub2RlbWFzaykNCj4gIAkJCSIg YW5vbl90aHA6ICVsdWtCIg0KPiAgI2VuZGlmDQo+ICAJCQkiIHdyaXRlYmFja190bXA6JWx1a0Ii DQo+IC0JCQkiIHVuc3RhYmxlOiVsdWtCIg0KPiArCQkJIiB1bnN0YWJsZTowa0IiDQo+ICAJCQki IGFsbF91bnJlY2xhaW1hYmxlPyAlcyINCj4gIAkJCSJcbiIsDQo+ICAJCQlwZ2RhdC0+bm9kZV9p ZCwNCj4gQEAgLTUzMDUsNyArNTMwNCw2IEBAIHZvaWQgc2hvd19mcmVlX2FyZWFzKHVuc2lnbmVk IGludCBmaWx0ZXIsDQo+IG5vZGVtYXNrX3QgKm5vZGVtYXNrKQ0KPiAgCQkJSyhub2RlX3BhZ2Vf c3RhdGUocGdkYXQsIE5SX0FOT05fVEhQUykgKg0KPiBIUEFHRV9QTURfTlIpLA0KPiAgI2VuZGlm DQo+ICAJCQlLKG5vZGVfcGFnZV9zdGF0ZShwZ2RhdCwgTlJfV1JJVEVCQUNLX1RFTVApKSwNCj4g LQkJCUsobm9kZV9wYWdlX3N0YXRlKHBnZGF0LCBOUl9VTlNUQUJMRV9ORlMpKSwNCj4gIAkJCXBn ZGF0LT5rc3dhcGRfZmFpbHVyZXMgPj0gTUFYX1JFQ0xBSU1fUkVUUklFUyA/DQo+ICAJCQkJInll cyIgOiAibm8iKTsNCj4gIAl9DQo+IGRpZmYgLS1naXQgYS9tbS92bXN0YXQuYyBiL21tL3Ztc3Rh dC5jDQo+IGluZGV4IGM5YzBkNzFmOTE3Zi4uMjI4ZDlmNmUxYzVjIDEwMDY0NA0KPiAtLS0gYS9t bS92bXN0YXQuYw0KPiArKysgYi9tbS92bXN0YXQuYw0KPiBAQCAtMTEwOCw3ICsxMTA4LDcgQEAg aW50IGZyYWdtZW50YXRpb25faW5kZXgoc3RydWN0IHpvbmUgKnpvbmUsDQo+IHVuc2lnbmVkIGlu dCBvcmRlcikNCj4gIAkJCQkJVEVYVF9GT1JfSElHSE1FTSh4eCkgeHgNCj4gIl9tb3ZhYmxlIiwN Cj4gIA0KPiAgY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7DQo+IC0JLyogZW51 bSB6b25lX3N0YXRfaXRlbSBjb3VudGVzICovDQo+ICsJLyogZW51bSB6b25lX3N0YXRfaXRlbSBj b3VudGVycyAqLw0KPiAgCSJucl9mcmVlX3BhZ2VzIiwNCj4gIAkibnJfem9uZV9pbmFjdGl2ZV9h bm9uIiwNCj4gIAkibnJfem9uZV9hY3RpdmVfYW5vbiIsDQo+IEBAIC0xMTYyLDcgKzExNjIsNiBA QCBjb25zdCBjaGFyICogY29uc3Qgdm1zdGF0X3RleHRbXSA9IHsNCj4gIAkibnJfZmlsZV9odWdl cGFnZXMiLA0KPiAgCSJucl9maWxlX3BtZG1hcHBlZCIsDQo+ICAJIm5yX2Fub25fdHJhbnNwYXJl bnRfaHVnZXBhZ2VzIiwNCj4gLQkibnJfdW5zdGFibGUiLA0KPiAgCSJucl92bXNjYW5fd3JpdGUi LA0KPiAgCSJucl92bXNjYW5faW1tZWRpYXRlX3JlY2xhaW0iLA0KPiAgCSJucl9kaXJ0aWVkIiwN Cj4gQEAgLTE3MDcsOCArMTcwNiwxNiBAQCBzdGF0aWMgdm9pZCAqdm1zdGF0X3N0YXJ0KHN0cnVj dCBzZXFfZmlsZSAqbSwNCj4gbG9mZl90ICpwb3MpDQo+ICBzdGF0aWMgdm9pZCAqdm1zdGF0X25l eHQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICphcmcsIGxvZmZfdCAqcG9zKQ0KPiAgew0KPiAg CSgqcG9zKSsrOw0KPiAtCWlmICgqcG9zID49IE5SX1ZNU1RBVF9JVEVNUykNCj4gKwlpZiAoKnBv cyA+PSBOUl9WTVNUQVRfSVRFTVMpIHsNCj4gKwkJLyoNCj4gKwkJICogRGVwcmVjYXRlZCBjb3Vu dGVycyB3aGljaCBhcmUgbm8gbG9uZ2VyIHJlcHJlc2VudGVkDQo+ICsJCSAqIGluIHZtc3RhdCBh cnJheXMuIFdlIGp1c3QgbGllIGFib3V0IHRoZW0gdG8gYmUNCj4gYWx3YXlzDQo+ICsJCSAqIDAg dG8gbm90IGJyZWFrIHVzZXJzcGFjZSB3aGljaCBtaWdodCBleHBlY3QgdGhlbSBpbg0KPiArCQkg KiB0aGUgb3V0cHV0Lg0KPiArCQkgKi8NCj4gKwkJc2VxX3B1dHMobSwgIm5yX3Vuc3RhYmxlIDAi KTsNCj4gIAkJcmV0dXJuIE5VTEw7DQo+ICsJfQ0KPiAgCXJldHVybiAodW5zaWduZWQgbG9uZyAq KW0tPnByaXZhdGUgKyAqcG9zOw0KPiAgfQ0KPiAgDQotLSANClRyb25kIE15a2xlYnVzdA0KTGlu dXggTkZTIGNsaWVudCBtYWludGFpbmVyLCBIYW1tZXJzcGFjZQ0KdHJvbmQubXlrbGVidXN0QGhh bW1lcnNwYWNlLmNvbQ0KDQoNCg==