Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp181626ybk; Thu, 14 May 2020 20:29:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxmjwGAwmGjQTvoyfU1jMuwjqdbW2iJFitQlgRbL52+Y1Y89DA+gYtgya4J9f3MnpI3CSCO X-Received: by 2002:a50:c3c2:: with SMTP id i2mr1042427edf.227.1589513366502; Thu, 14 May 2020 20:29:26 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d13si478998edt.406.2020.05.14.20.28.47; Thu, 14 May 2020 20:29:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@qti.qualcomm.com header.s=qcdkim header.b="LsnTZ2e/"; dkim=neutral (body hash did not verify) header.i=@qualcomm.onmicrosoft.com header.s=selector1-qualcomm-onmicrosoft-com header.b=WzYezoLj; arc=fail (body hash mismatch); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=qti.qualcomm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728271AbgEOD2k (ORCPT + 99 others); Thu, 14 May 2020 23:28:40 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:45810 "EHLO alexa-out-sd-01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728166AbgEOD2j (ORCPT ); Thu, 14 May 2020 23:28:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1589513318; x=1621049318; h=from:to:cc:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version:subject; bh=4nTa8GXqYMvvuXLK/mxdIoLIKz+S49bVHAggYGP23YM=; b=LsnTZ2e/txwgH6EkjRpCUcbrv3cHO9/rGYyIBMhopV+3jMv2G5gGn2o8 9t6FaqyXH6CoZ38FqCCatN0VBCgoj/p3JbkcZCc5IixfD8PoCy4ChyrVm BmZtQ2FNTCH83xzh2KqrllLYoHmgRsXmmf8sNdbiuCKNq04UYuwbojYZF 8=; Subject: RE: [PATCH 4/4] ath11k: Register mhi controller device for qca6390 Thread-Topic: [PATCH 4/4] ath11k: Register mhi controller device for qca6390 Received: from unknown (HELO ironmsg04-sd.qualcomm.com) ([10.53.140.144]) by alexa-out-sd-01.qualcomm.com with ESMTP; 14 May 2020 20:28:37 -0700 Received: from nasanexm03h.na.qualcomm.com ([10.85.0.50]) by ironmsg04-sd.qualcomm.com with ESMTP/TLS/AES256-SHA; 14 May 2020 20:28:37 -0700 Received: from nasanexm03g.na.qualcomm.com (10.85.0.49) by nasanexm03h.na.qualcomm.com (10.85.0.50) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 14 May 2020 20:28:36 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (199.106.107.6) by nasanexm03g.na.qualcomm.com (10.85.0.49) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Thu, 14 May 2020 20:28:36 -0700 Received: from MN2PR02MB7055.namprd02.prod.outlook.com (2603:10b6:208:202::18) by MN2PR02MB5950.namprd02.prod.outlook.com (2603:10b6:208:10f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.28; Fri, 15 May 2020 03:28:33 +0000 Received: from MN2PR02MB7055.namprd02.prod.outlook.com ([fe80::75d4:16e5:b6d2:d28b]) by MN2PR02MB7055.namprd02.prod.outlook.com ([fe80::75d4:16e5:b6d2:d28b%8]) with mapi id 15.20.3000.022; Fri, 15 May 2020 03:28:33 +0000 From: Carl Huang To: Govind Singh , "ath11k@lists.infradead.org" CC: "linux-wireless@vger.kernel.org" Thread-Index: AQHWJRb0Mo+PvD0xsEOm0Rx9NCrnBqioh1fA Date: Fri, 15 May 2020 03:28:33 +0000 Message-ID: References: <20200508085850.23363-1-govinds@codeaurora.org> <20200508085850.23363-5-govinds@codeaurora.org> In-Reply-To: <20200508085850.23363-5-govinds@codeaurora.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: codeaurora.org; dkim=none (message not signed) header.d=none;codeaurora.org; dmarc=none action=none header.from=qti.qualcomm.com; x-originating-ip: [103.229.16.25] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 14b9f959-2654-4d9f-4183-08d7f8800bf5 x-ms-traffictypediagnostic: MN2PR02MB5950: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:15; x-forefront-prvs: 04041A2886 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: H2rH0pxg5k6Sq4jtbE1J4O7oqqmezP176j/MUDUhJcgSubF8iH/VVsY3UHX6Ek7Ac2KYs/jcNDBukpqyB/fHa870Q+68qtCS5ZFSZUO3wM1GYILF5yZiFkN9TyFVpAo55ZmQ4G7XcqrtiVx7VjeXjjNcay2ibLvL26UxClX2FLn7AzJpXxdigmIX5sI6ilS4uKxk+6YvZXu+ucf2dL6uVd2d8M+3viaCkoA9Eo/R1nckD1eeRDkvHwHXP5hsOr/tNCRIUOaBhXWUv4r3S7xDxK2AoTtv6Cax6XJAG62WVMNpz4KuWBHKBF9SnhDschpaDj5DxuMECmiHl8eQ9uSDCiKq6ByeV6/qKDvK2ELkWRHTCjScMGzWyMUoTJ5A6L+OhvzEheirKQAozKQjzyz4V03R88bNFGFTiKww3XF9L/NxmrYna5kv0RQyWdpgZp0Lt6EJmZh81u5WBNddkQdlwwpK91BQ8upkLtO8BSYSALCogqWS9eKGTw/lMSZ3dOwEg0LW/q6CrH6NiGyQS7J+cw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR02MB7055.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(39860400002)(366004)(346002)(136003)(376002)(66946007)(6506007)(26005)(110136005)(30864003)(53546011)(7696005)(8936002)(5660300002)(186003)(4326008)(8676002)(52536014)(478600001)(86362001)(66476007)(66556008)(64756008)(66446008)(2906002)(316002)(966005)(9686003)(76116006)(55016002)(71200400001)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: FbbdAZY/sJC/uMmwGlUp2vjDt7giWgblyjiPxtgr2GjtPO3lZjqMW/4NXE2OCxnmO4P5QXoBlhpSwia4MeaxktWZYkwagH1g7xBovX8BnaBn3mg4Kru+NrmNsYoTUas6MQgOXvUEZBSheBMEioc4MnsR/ollsUK8gl5/jA912+6kcp6fOeo9Pdy7cr+4jsC8q92s1NGyJ39mxM/Jt0ybsxlL+fa8Sh6vLrO4y9zBYskYaEeryHC89I8HtbhqUEC6RoReHI9xCpZYSTwuyUl3WH/R98ZJDdbi5FgAEjsWWK+OqquOqO75sM7DGKW1h0W9IruP0GrnwIJTPzaciOO+EXwR2IfM2bfAjSYWrq+nFiWrBWRsU/YoLKkkeRcL/EI0Y2T3CQC+nXV3XtRSIEOQl8p9nVfxfSQWlj78o+fgwDp/odvudR5fHuonsomgWJHeQ78oSJb3M84wi35VRVL4j3koze4Qyt8mpNhN9pj2KRVPQqop/dodB8CGyF+ye7OH x-ms-exchange-transport-forked: True arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ByVbRbJu4+qCx/T469Dp8oYBsgKMZyVI5WzSIRORcIE3b3K1snxLPvpnlYY6XtEO16+KvQ6+it6H8LLdR6bhxKnxWjhi1hQ0GX9nKpOYYPXJ3P2WktyDqFavY0lkoidrZPUxNomS2KBr2qmv+6irkmrSTLCbsRncEChPpntwNDDc9zYurn6om6Ui0IeQjLGNIR3ixgw2wMmP4qSxuVND4CaZlzFp6l97MPMbuSq0mwoUWKE0z9G18qvaufcenUHl936LfD9HKCc//r+f3KZE7NyqtrVB8nJC3qDQ1t78kLthpvy4ZOeemtGISwtimSl8nFYnqxyMqN6CEtFskLcCaw== 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=IKkJy6ColvNJNqnRpK9UH6319u6uJBJqKv7YCbFlngA=; b=j2UftUHTtWkhUN1mwNvshXXtO1UYRyuNhpaIxzI/eWEKRGd7i154LtcAuxaeL4RXWkC9i9bzm8ptea35vh1iiniIUZAydwyHHGgj+91YRk49EffQfyvIef0gggoK9jwFo+8eZskYEMu8eLqhTmFfHkezF8LHdHQmFvC9DNqWZ3QcdDbHzHtqJUcgcVIk93vouniYkCnBv6MdA8LxuHoDBmXHqvl7IkW4kmXBWf7G+SH2u0AvOvV6EAoWZGKx0YEkhVd8uB0q9CAUl2cUuppPF0yUCLno+3+QZmbzPRKpK3QzqR1PMkuRqMoXkq4dLlP1Kay5E2hPCwTAOO1Dwh++jw== arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=qti.qualcomm.com; dmarc=pass action=none header.from=qti.qualcomm.com; dkim=pass header.d=qti.qualcomm.com; arc=none dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.onmicrosoft.com; s=selector1-qualcomm-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IKkJy6ColvNJNqnRpK9UH6319u6uJBJqKv7YCbFlngA=; b=WzYezoLjV2mg2lS0blOnIy9QYlfJhSKtuAWUuNxsZ52cIqwlYzrlExoiikDKi15wL6dJq/H3YzimxF2ClvKN0w/znZQsvh2aqQKnnZFuWbCA6Zr5DPtUUzT+KF/4tvm0CMsJH5L/e/dQP28EQgYkZqGFBn8XXCbYgWl+yeo1Qm0= x-ms-exchange-crosstenant-network-message-id: 14b9f959-2654-4d9f-4183-08d7f8800bf5 x-ms-exchange-crosstenant-originalarrivaltime: 15 May 2020 03:28:33.4865 (UTC) x-ms-exchange-crosstenant-fromentityheader: Hosted x-ms-exchange-crosstenant-id: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d x-ms-exchange-crosstenant-mailboxtype: HOSTED x-ms-exchange-crosstenant-userprincipalname: g6Q5hLydUXX8f3bHLAdB1Pcs9vSkdaArvrYiSWXAw30/cwzHTksswlPuBZhjaJ85X1fdxfSh83K5DjNhgTFl3B7fq5AQDMI05t0QFyJ98dY= x-ms-exchange-transport-crosstenantheadersstamped: MN2PR02MB5950 x-originatororg: qti.qualcomm.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogYXRoMTFrIDxhdGgxMWst Ym91bmNlc0BsaXN0cy5pbmZyYWRlYWQub3JnPiBPbiBCZWhhbGYgT2YgR292aW5kDQo+IFNpbmdo DQo+IFNlbnQ6IEZyaWRheSwgTWF5IDgsIDIwMjAgNDo1OSBQTQ0KPiBUbzogYXRoMTFrQGxpc3Rz LmluZnJhZGVhZC5vcmcNCj4gQ2M6IEdvdmluZCBTaW5naCA8Z292aW5kc0Bjb2RlYXVyb3JhLm9y Zz47IGxpbnV4LQ0KPiB3aXJlbGVzc0B2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogW0VYVF0g W1BBVENIIDQvNF0gYXRoMTFrOiBSZWdpc3RlciBtaGkgY29udHJvbGxlciBkZXZpY2UgZm9yDQo+ IHFjYTYzOTANCj4NCj4gTUhJIGlzIGEgY29tbXVuaWNhdGlvbiBwcm90b2NvbCB0byBjb21tdW5p Y2F0ZSB3aXRoIGV4dGVybmFsIFF1YWxjb21tDQo+IG1vZGVtcyBhbmQgV2ktRmkgY2hpcHNldHMg b3ZlciBoaWdoIHNwZWVkIHBlcmlwaGVyYWwgYnVzZXMuIEV2ZW4gdGhvdWdoDQo+IE1ISSBkb2Vz buKAmXQgZGljdGF0ZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGxheWVyLCBwcm90b2NvbCBhbmQgbWhp IHN0YWNrIGlzDQo+IHN0cnVjdHVyZWQgZm9yIFBDSWUgYmFzZWQgZGV2aWNlcy4NCj4NCj4gUmVn aXN0ZXIgZGlyZWN0bHkgd2l0aCBtaGkgY29yZSBsYXllciBhcyBhIG1oaSBkZXZpY2UgZHJpdmVy IGZvciBmaXJtd2FyZQ0KPiBkb3dubG9hZC4NCj4NCj4gVGVzdGVkIFFDQTYzOTAgb24gWDg2IHBs YXRmb3JtLg0KPiBUZXN0ZWQgZmlybXdhcmUgV0xBTi5IU1QuMS4wLjEuYzEtMDA0NDAtUUNBSFNU U1dQTFpfVjJfVE9fWDg2LTEuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IEdvdmluZCBTaW5naCA8Z292 aW5kc0Bjb2RlYXVyb3JhLm9yZz4NCj4gLS0tDQo+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgv YXRoMTFrL0tjb25maWcgIHwgICA1ICstDQo+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTFrL01ha2VmaWxlIHwgICAyICstDQo+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFr L21oaS5jICAgIHwgMzc5ICsrKysrKysrKysrKysrKysrKysrKysrDQo+ICBkcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTFrL21oaS5oICAgIHwgIDI4ICsrDQo+ICBkcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoMTFrL3BjaS5jICAgIHwgIDk3ICsrKysrKw0KPiAgZHJpdmVycy9uZXQvd2ly ZWxlc3MvYXRoL2F0aDExay9wY2kuaCAgICB8ICAxMyArDQo+ICA2IGZpbGVzIGNoYW5nZWQsIDUy MCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKSAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IGRy aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWhpLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21oaS5oDQo+DQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWcNCj4gYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWcNCj4gaW5kZXggMzIwYjNiMTUxYmNlLi5iZDQ4 Nzk2NzQyYmIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsv S2NvbmZpZw0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWcN Cj4gQEAgLTIsNyArMiw2IEBADQo+ICBjb25maWcgQVRIMTFLDQo+ICB0cmlzdGF0ZSAiUXVhbGNv bW0gVGVjaG5vbG9naWVzIDgwMi4xMWF4IGNoaXBzZXQgc3VwcG9ydCINCj4gIGRlcGVuZHMgb24g TUFDODAyMTEgJiYgSEFTX0RNQQ0KPiAtZGVwZW5kcyBvbiBSRU1PVEVQUk9DDQo+ICBkZXBlbmRz IG9uIENSWVBUT19NSUNIQUVMX01JQw0KPiAgZGVwZW5kcyBvbiBBUkNIX1FDT00gfHwgQ09NUElM RV9URVNUDQo+ICBzZWxlY3QgQVRIX0NPTU1PTg0KPiBAQCAtMTUsMTMgKzE0LDEzIEBAIGNvbmZp ZyBBVEgxMUsNCj4NCj4gIGNvbmZpZyBBVEgxMUtfQUhCDQo+ICB0cmlzdGF0ZSAiUXVhbGNvbW0g VGVjaG5vbG9naWVzIDgwMi4xMWF4IGNoaXBzZXQgQUhCIHN1cHBvcnQiDQo+IC1kZXBlbmRzIG9u IEFUSDExSw0KPiArZGVwZW5kcyBvbiBBVEgxMUsgJiYgUkVNT1RFUFJPQw0KPiAgLS0taGVscC0t LQ0KPiAgICBUaGlzIG1vZHVsZSBhZGRzIHN1cHBvcnQgZm9yIEFIQiBidXMNCj4NCj4gIGNvbmZp ZyBBVEgxMUtfUENJDQo+ICB0cmlzdGF0ZSAiUXVhbGNvbW0gVGVjaG5vbG9naWVzIDgwMi4xMWF4 IGNoaXBzZXQgUENJIHN1cHBvcnQiDQo+IC1kZXBlbmRzIG9uIEFUSDExSyAmJiBQQ0kNCj4gK2Rl cGVuZHMgb24gQVRIMTFLICYmIFBDSSAmJiBNSElfQlVTDQo+ICAtLS1oZWxwLS0tDQo+ICAgIFRo aXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgUENJRSBidXMNCj4NCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUNCj4gYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlDQo+IGluZGV4IDkzM2ZjYjJmZDU1ZC4uODM0M2M3 ZGZhYWUzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01h a2VmaWxlDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUN Cj4gQEAgLTI1LDcgKzI1LDcgQEAgb2JqLSQoQ09ORklHX0FUSDExS19BSEIpICs9IGF0aDExa19h aGIubw0KPiBhdGgxMWtfYWhiLXkgKz0gYWhiLm8NCj4NCj4gIG9iai0kKENPTkZJR19BVEgxMUtf UENJKSArPSBhdGgxMWtfcGNpLm8gLWF0aDExa19wY2kteSArPSBwY2kubw0KPiArYXRoMTFrX3Bj aS15ICs9IG1oaS5vIHBjaS5vDQo+DQo+ICAjIGZvciB0cmFjaW5nIGZyYW1ld29yayB0byBmaW5k IHRyYWNlLmggIENGTEFHU190cmFjZS5vIDo9IC1JJChzcmMpIGRpZmYgLS1naXQNCj4gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21oaS5jDQo+IGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDExay9taGkuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAw MDAwMDAwMDAuLjFjYTQzMjQzZTI2NQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWhpLmMNCj4gQEAgLTAsMCArMSwzNzkgQEANCj4gKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXINCj4gKy8qIENvcHly aWdodCAoYykgMjAyMCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g Ki8NCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L21zaS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3Bj aS5oPg0KPiArDQo+ICsjaW5jbHVkZSAiZGVidWcuaCINCj4gKyNpbmNsdWRlICJtaGkuaCINCj4g Kw0KPiArI2RlZmluZSBNSElfVElNRU9VVF9ERUZBVUxUX01TOTAwMDANCj4gKw0KPiArc3RhdGlj IHN0cnVjdCBtaGlfY2hhbm5lbF9jb25maWcgYXRoMTFrX21oaV9jaGFubmVsc1tdID0gew0KPiAr ew0KPiArLm51bSA9IDAsDQo+ICsubmFtZSA9ICJMT09QQkFDSyIsDQo+ICsubnVtX2VsZW1lbnRz ID0gMzIsDQo+ICsuZXZlbnRfcmluZyA9IDAsDQo+ICsuZGlyID0gRE1BX1RPX0RFVklDRSwNCj4g Ky5lZV9tYXNrID0gMHg0LA0KPiArLnBvbGxjZmcgPSAwLA0KPiArLmRvb3JiZWxsID0gTUhJX0RC X0JSU1RfRElTQUJMRSwNCj4gKy5scG1fbm90aWZ5ID0gZmFsc2UsDQo+ICsub2ZmbG9hZF9jaGFu bmVsID0gZmFsc2UsDQo+ICsuZG9vcmJlbGxfbW9kZV9zd2l0Y2ggPSBmYWxzZSwNCj4gKy5hdXRv X3F1ZXVlID0gZmFsc2UsDQo+ICsuYXV0b19zdGFydCA9IGZhbHNlLA0KPiArfSwNCj4gK3sNCj4g Ky5udW0gPSAxLA0KPiArLm5hbWUgPSAiTE9PUEJBQ0siLA0KPiArLm51bV9lbGVtZW50cyA9IDMy LA0KPiArLmV2ZW50X3JpbmcgPSAwLA0KPiArLmRpciA9IERNQV9GUk9NX0RFVklDRSwNCj4gKy5l ZV9tYXNrID0gMHg0LA0KPiArLnBvbGxjZmcgPSAwLA0KPiArLmRvb3JiZWxsID0gTUhJX0RCX0JS U1RfRElTQUJMRSwNCj4gKy5scG1fbm90aWZ5ID0gZmFsc2UsDQo+ICsub2ZmbG9hZF9jaGFubmVs ID0gZmFsc2UsDQo+ICsuZG9vcmJlbGxfbW9kZV9zd2l0Y2ggPSBmYWxzZSwNCj4gKy5hdXRvX3F1 ZXVlID0gZmFsc2UsDQo+ICsuYXV0b19zdGFydCA9IGZhbHNlLA0KPiArfSwNCj4gK3sNCj4gKy5u dW0gPSAyMCwNCj4gKy5uYW1lID0gIklQQ1IiLA0KPiArLm51bV9lbGVtZW50cyA9IDY0LA0KPiAr LmV2ZW50X3JpbmcgPSAxLA0KPiArLmRpciA9IERNQV9UT19ERVZJQ0UsDQo+ICsuZWVfbWFzayA9 IDB4NCwNCj4gKy5wb2xsY2ZnID0gMCwNCj4gKy5kb29yYmVsbCA9IE1ISV9EQl9CUlNUX0RJU0FC TEUsDQo+ICsubHBtX25vdGlmeSA9IGZhbHNlLA0KPiArLm9mZmxvYWRfY2hhbm5lbCA9IGZhbHNl LA0KPiArLmRvb3JiZWxsX21vZGVfc3dpdGNoID0gZmFsc2UsDQo+ICsuYXV0b19xdWV1ZSA9IGZh bHNlLA0KPiArLmF1dG9fc3RhcnQgPSB0cnVlLA0KPiArfSwNCj4gK3sNCj4gKy5udW0gPSAyMSwN Cj4gKy5uYW1lID0gIklQQ1IiLA0KPiArLm51bV9lbGVtZW50cyA9IDY0LA0KPiArLmV2ZW50X3Jp bmcgPSAxLA0KPiArLmRpciA9IERNQV9GUk9NX0RFVklDRSwNCj4gKy5lZV9tYXNrID0gMHg0LA0K PiArLnBvbGxjZmcgPSAwLA0KPiArLmRvb3JiZWxsID0gTUhJX0RCX0JSU1RfRElTQUJMRSwNCj4g Ky5scG1fbm90aWZ5ID0gZmFsc2UsDQo+ICsub2ZmbG9hZF9jaGFubmVsID0gZmFsc2UsDQo+ICsu ZG9vcmJlbGxfbW9kZV9zd2l0Y2ggPSBmYWxzZSwNCj4gKy5hdXRvX3F1ZXVlID0gdHJ1ZSwNCj4g Ky5hdXRvX3N0YXJ0ID0gdHJ1ZSwNCj4gK30sDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgc3RydWN0 IG1oaV9ldmVudF9jb25maWcgYXRoMTFrX21oaV9ldmVudHNbXSA9IHsNCj4gK3sNCj4gKy5udW1f ZWxlbWVudHMgPSAzMiwNCj4gKy5pcnFfbW9kZXJhdGlvbl9tcyA9IDAsDQo+ICsuaXJxID0gMSwN Cj4gKy5tb2RlID0gTUhJX0RCX0JSU1RfRElTQUJMRSwNCg0KRm9yIHRoaXMgZXZlcm4gcmluZywg bmVlZCB0byBzcGVjaWZ5ICAuZGF0YV90eXBlID0gTUhJX0VSX0NUUkwsDQoNCj4gKy5oYXJkd2Fy ZV9ldmVudCA9IGZhbHNlLA0KPiArLmNsaWVudF9tYW5hZ2VkID0gZmFsc2UsDQo+ICsub2ZmbG9h ZF9jaGFubmVsID0gZmFsc2UsDQo+ICt9LA0KPiArew0KPiArLm51bV9lbGVtZW50cyA9IDI1NiwN Cj4gKy5pcnFfbW9kZXJhdGlvbl9tcyA9IDEsDQo+ICsuaXJxID0gMiwNCj4gKy5tb2RlID0gTUhJ X0RCX0JSU1RfRElTQUJMRSwNCj4gKy5wcmlvcml0eSA9IDEsDQo+ICsuaGFyZHdhcmVfZXZlbnQg PSBmYWxzZSwNCj4gKy5jbGllbnRfbWFuYWdlZCA9IGZhbHNlLA0KPiArLm9mZmxvYWRfY2hhbm5l bCA9IGZhbHNlLA0KPiArfSwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgbWhpX2NvbnRy b2xsZXJfY29uZmlnIGF0aDExa19taGlfY29uZmlnID0gew0KPiArLm1heF9jaGFubmVscyA9IDEy OCwNCj4gKy50aW1lb3V0X21zID0gMjAwMCwNCj4gKy51c2VfYm91bmNlX2J1ZiA9IGZhbHNlLA0K PiArLmJ1Zl9sZW4gPSAwLA0KPiArLm51bV9jaGFubmVscyA9IEFSUkFZX1NJWkUoYXRoMTFrX21o aV9jaGFubmVscyksDQo+ICsuY2hfY2ZnID0gYXRoMTFrX21oaV9jaGFubmVscywNCj4gKy5udW1f ZXZlbnRzID0gQVJSQVlfU0laRShhdGgxMWtfbWhpX2V2ZW50cyksDQo+ICsuZXZlbnRfY2ZnID0g YXRoMTFrX21oaV9ldmVudHMsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50IGF0aDExa19wY2lf Z2V0X21oaV9tc2koc3RydWN0IGF0aDExa19wY2kgKmFiX3BjaSkgew0KPiArc3RydWN0IGF0aDEx a19iYXNlICphYiA9IGFiX3BjaS0+YWI7DQo+ICt1MzIgdXNlcl9iYXNlX2RhdGEsIGJhc2VfdmVj dG9yOw0KPiAraW50IHJldCwgbnVtX3ZlY3RvcnMsIGk7DQo+ICtpbnQgKmlycTsNCj4gKw0KPiAr cmV0ID0gYXRoMTFrX3BjaV9nZXRfdXNlcl9tc2lfYXNzaWdubWVudChhYl9wY2ksDQo+ICsgIk1I SSIsICZudW1fdmVjdG9ycywNCj4gKyAmdXNlcl9iYXNlX2RhdGEsDQo+ICZiYXNlX3ZlY3Rvcik7 DQo+ICtpZiAocmV0KQ0KPiArcmV0dXJuIHJldDsNCj4gKw0KPiArYXRoMTFrX2RiZyhhYiwgQVRI MTFLX0RCR19QQ0ksICJOdW1iZXIgb2YgYXNzaWduZWQgTVNJIGZvciBNSEkNCj4gaXMgJWQsIGJh c2UgdmVjdG9yIGlzICVkXG4iLA0KPiArICAgbnVtX3ZlY3RvcnMsIGJhc2VfdmVjdG9yKTsNCj4g Kw0KPiAraXJxID0ga2NhbGxvYyhudW1fdmVjdG9ycywgc2l6ZW9mKGludCksIEdGUF9LRVJORUwp Ow0KPiAraWYgKCFpcnEpDQo+ICtyZXR1cm4gLUVOT01FTTsNCj4gKw0KPiArZm9yIChpID0gMDsg aSA8IG51bV92ZWN0b3JzOyBpKyspDQo+ICtpcnFbaV0gPSBhdGgxMWtfcGNpX2dldF9tc2lfaXJx KGFiX3BjaS0+ZGV2LA0KPiArYmFzZV92ZWN0b3IgKyBpKTsNCj4gKw0KPiArYWJfcGNpLT5taGlf Y3RybC0+aXJxID0gaXJxOw0KPiArYWJfcGNpLT5taGlfY3RybC0+bnJfaXJxcyA9IG51bV92ZWN0 b3JzOw0KPiArDQo+ICtyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAraW50IGF0aDExa19wY2lfcmVn aXN0ZXJfbWhpKHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2kpIHsNCj4gK3N0cnVjdCBhdGgxMWtf YmFzZSAqYWIgPSBhYl9wY2ktPmFiOw0KPiArc3RydWN0IG1oaV9jb250cm9sbGVyICptaGlfY3Ry bDsNCj4gK2ludCByZXQ7DQo+ICsNCj4gK21oaV9jdHJsID0ga3phbGxvYyhzaXplb2YoKm1oaV9j dHJsKSwgR0ZQX0tFUk5FTCk7DQo+ICtpZiAoIW1oaV9jdHJsKQ0KPiArcmV0dXJuIFBUUl9FUlIo bWhpX2N0cmwpOw0KPiArDQo+ICthYl9wY2ktPm1oaV9jdHJsID0gbWhpX2N0cmw7DQo+ICttaGlf Y3RybC0+ZndfaW1hZ2UgPSBBVEgxMUtfUENJX0ZXX0ZJTEVfTkFNRTsNCj4gK21oaV9jdHJsLT5y ZWdzID0gYWJfcGNpLT5tZW07DQo+ICsNCj4gK3JldCA9IGF0aDExa19wY2lfZ2V0X21oaV9tc2ko YWJfcGNpKTsNCj4gK2lmIChyZXQpIHsNCj4gK2F0aDExa19lcnIoYWIsICJmYWlsZWQgdG8gZ2V0 IG1zaSBmb3IgbWhpXG4iKTsNCj4gK2tmcmVlKG1oaV9jdHJsKTsNCj4gK3JldHVybiByZXQ7DQo+ ICt9DQo+ICsNCj4gK21oaV9jdHJsLT5pb3ZhX3N0YXJ0ID0gMDsNCj4gK21oaV9jdHJsLT5pb3Zh X3N0b3AgPSAweGZmZmZmZmZmOw0KPiArbWhpX2N0cmwtPnNibF9zaXplID0gU1pfNTEySzsNCj4g K21oaV9jdHJsLT5zZWdfbGVuID0gU1pfNTEySzsNCj4gK21oaV9jdHJsLT5mYmNfZG93bmxvYWQg PSB0cnVlOw0KPiArDQo+ICtyZXQgPSBtaGlfcmVnaXN0ZXJfY29udHJvbGxlcihtaGlfY3RybCwg JmF0aDExa19taGlfY29uZmlnKTsNCj4gK2lmIChyZXQpIHsNCj4gK2F0aDExa19lcnIoYWIsICJm YWlsZWQgdG8gcmVnaXN0ZXIgdG8gbWhpIGJ1cywgZXJyID0gJWRcbiIsIHJldCk7DQo+ICtrZnJl ZShtaGlfY3RybCk7DQo+ICtyZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICtyZXR1cm4gMDsNCj4g K30NCj4gKw0KPiArdm9pZCBhdGgxMWtfcGNpX3VucmVnaXN0ZXJfbWhpKHN0cnVjdCBhdGgxMWtf cGNpICphYl9wY2kpIHsNCj4gK3N0cnVjdCBtaGlfY29udHJvbGxlciAqbWhpX2N0cmwgPSBhYl9w Y2ktPm1oaV9jdHJsOw0KPiArDQo+ICttaGlfdW5yZWdpc3Rlcl9jb250cm9sbGVyKG1oaV9jdHJs KTsNCj4gK2tmcmVlKG1oaV9jdHJsLT5pcnEpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgY2hhciAq YXRoMTFrX21oaV9zdGF0ZV90b19zdHIoZW51bSBhdGgxMWtfbWhpX3N0YXRlIG1oaV9zdGF0ZSkg ew0KPiArc3dpdGNoIChtaGlfc3RhdGUpIHsNCj4gK2Nhc2UgQVRIMTFLX01ISV9JTklUOg0KPiAr cmV0dXJuICJJTklUIjsNCj4gK2Nhc2UgQVRIMTFLX01ISV9ERUlOSVQ6DQo+ICtyZXR1cm4gIkRF SU5JVCI7DQo+ICtjYXNlIEFUSDExS19NSElfUE9XRVJfT046DQo+ICtyZXR1cm4gIlBPV0VSX09O IjsNCj4gK2Nhc2UgQVRIMTFLX01ISV9QT1dFUl9PRkY6DQo+ICtyZXR1cm4gIlBPV0VSX09GRiI7 DQo+ICtjYXNlIEFUSDExS19NSElfRk9SQ0VfUE9XRVJfT0ZGOg0KPiArcmV0dXJuICJGT1JDRV9Q T1dFUl9PRkYiOw0KPiArY2FzZSBBVEgxMUtfTUhJX1NVU1BFTkQ6DQo+ICtyZXR1cm4gIlNVU1BF TkQiOw0KPiArY2FzZSBBVEgxMUtfTUhJX1JFU1VNRToNCj4gK3JldHVybiAiUkVTVU1FIjsNCj4g K2Nhc2UgQVRIMTFLX01ISV9UUklHR0VSX1JERE06DQo+ICtyZXR1cm4gIlRSSUdHRVJfUkRETSI7 DQo+ICtjYXNlIEFUSDExS19NSElfUkRETV9ET05FOg0KPiArcmV0dXJuICJSRERNX0RPTkUiOw0K PiArZGVmYXVsdDoNCj4gK3JldHVybiAiVU5LTk9XTiI7DQo+ICt9DQo+ICt9Ow0KPiArDQo+ICtz dGF0aWMgdm9pZCBhdGgxMWtfcGNpX3NldF9taGlfc3RhdGVfYml0KHN0cnVjdCBhdGgxMWtfcGNp ICphYl9wY2ksDQo+ICsgZW51bSBhdGgxMWtfbWhpX3N0YXRlIG1oaV9zdGF0ZSkNCj4gK3sNCj4g K3N0cnVjdCBhdGgxMWtfYmFzZSAqYWIgPSBhYl9wY2ktPmFiOw0KPiArDQo+ICtzd2l0Y2ggKG1o aV9zdGF0ZSkgew0KPiArY2FzZSBBVEgxMUtfTUhJX0lOSVQ6DQo+ICtzZXRfYml0KEFUSDExS19N SElfSU5JVCwgJmFiX3BjaS0+bWhpX3N0YXRlKTsNCj4gK2JyZWFrOw0KPiArY2FzZSBBVEgxMUtf TUhJX0RFSU5JVDoNCj4gK2NsZWFyX2JpdChBVEgxMUtfTUhJX0lOSVQsICZhYl9wY2ktPm1oaV9z dGF0ZSk7DQo+ICticmVhazsNCj4gK2Nhc2UgQVRIMTFLX01ISV9QT1dFUl9PTjoNCj4gK3NldF9i aXQoQVRIMTFLX01ISV9QT1dFUl9PTiwgJmFiX3BjaS0+bWhpX3N0YXRlKTsNCj4gK2JyZWFrOw0K PiArY2FzZSBBVEgxMUtfTUhJX1BPV0VSX09GRjoNCj4gK2Nhc2UgQVRIMTFLX01ISV9GT1JDRV9Q T1dFUl9PRkY6DQo+ICtjbGVhcl9iaXQoQVRIMTFLX01ISV9QT1dFUl9PTiwgJmFiX3BjaS0+bWhp X3N0YXRlKTsNCj4gK2NsZWFyX2JpdChBVEgxMUtfTUhJX1RSSUdHRVJfUkRETSwgJmFiX3BjaS0N Cj4gPm1oaV9zdGF0ZSk7DQo+ICtjbGVhcl9iaXQoQVRIMTFLX01ISV9SRERNX0RPTkUsICZhYl9w Y2ktPm1oaV9zdGF0ZSk7DQo+ICticmVhazsNCj4gK2Nhc2UgQVRIMTFLX01ISV9TVVNQRU5EOg0K PiArc2V0X2JpdChBVEgxMUtfTUhJX1NVU1BFTkQsICZhYl9wY2ktPm1oaV9zdGF0ZSk7DQo+ICti cmVhazsNCj4gK2Nhc2UgQVRIMTFLX01ISV9SRVNVTUU6DQo+ICtjbGVhcl9iaXQoQVRIMTFLX01I SV9TVVNQRU5ELCAmYWJfcGNpLT5taGlfc3RhdGUpOw0KPiArYnJlYWs7DQo+ICtjYXNlIEFUSDEx S19NSElfVFJJR0dFUl9SRERNOg0KPiArc2V0X2JpdChBVEgxMUtfTUhJX1RSSUdHRVJfUkRETSwg JmFiX3BjaS0+bWhpX3N0YXRlKTsNCj4gK2JyZWFrOw0KPiArY2FzZSBBVEgxMUtfTUhJX1JERE1f RE9ORToNCj4gK3NldF9iaXQoQVRIMTFLX01ISV9SRERNX0RPTkUsICZhYl9wY2ktPm1oaV9zdGF0 ZSk7DQo+ICticmVhazsNCj4gK2RlZmF1bHQ6DQo+ICthdGgxMWtfZXJyKGFiLCAidW5oYW5kbGVk IG1oaSBzdGF0ZSAoJWQpXG4iLCBtaGlfc3RhdGUpOw0KPiArfQ0KPiArfQ0KPiArDQo+ICtzdGF0 aWMgaW50IGF0aDExa19wY2lfY2hlY2tfbWhpX3N0YXRlX2JpdChzdHJ1Y3QgYXRoMTFrX3BjaSAq YWJfcGNpLA0KPiArICBlbnVtIGF0aDExa19taGlfc3RhdGUgbWhpX3N0YXRlKQ0KPiB7DQo+ICtz dHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiID0gYWJfcGNpLT5hYjsNCj4gKw0KPiArc3dpdGNoIChtaGlf c3RhdGUpIHsNCj4gK2Nhc2UgQVRIMTFLX01ISV9JTklUOg0KPiAraWYgKCF0ZXN0X2JpdChBVEgx MUtfTUhJX0lOSVQsICZhYl9wY2ktPm1oaV9zdGF0ZSkpDQo+ICtyZXR1cm4gMDsNCj4gK2JyZWFr Ow0KPiArY2FzZSBBVEgxMUtfTUhJX0RFSU5JVDoNCj4gK2Nhc2UgQVRIMTFLX01ISV9QT1dFUl9P TjoNCj4gK2lmICh0ZXN0X2JpdChBVEgxMUtfTUhJX0lOSVQsICZhYl9wY2ktPm1oaV9zdGF0ZSkg JiYNCj4gKyAgICAhdGVzdF9iaXQoQVRIMTFLX01ISV9QT1dFUl9PTiwgJmFiX3BjaS0+bWhpX3N0 YXRlKSkNCj4gK3JldHVybiAwOw0KPiArYnJlYWs7DQo+ICtjYXNlIEFUSDExS19NSElfRk9SQ0Vf UE9XRVJfT0ZGOg0KPiAraWYgKHRlc3RfYml0KEFUSDExS19NSElfUE9XRVJfT04sICZhYl9wY2kt Pm1oaV9zdGF0ZSkpDQo+ICtyZXR1cm4gMDsNCj4gK2JyZWFrOw0KPiArY2FzZSBBVEgxMUtfTUhJ X1BPV0VSX09GRjoNCj4gK2Nhc2UgQVRIMTFLX01ISV9TVVNQRU5EOg0KPiAraWYgKHRlc3RfYml0 KEFUSDExS19NSElfUE9XRVJfT04sICZhYl9wY2ktPm1oaV9zdGF0ZSkNCj4gJiYNCj4gKyAgICAh dGVzdF9iaXQoQVRIMTFLX01ISV9TVVNQRU5ELCAmYWJfcGNpLT5taGlfc3RhdGUpKQ0KPiArcmV0 dXJuIDA7DQo+ICticmVhazsNCj4gK2Nhc2UgQVRIMTFLX01ISV9SRVNVTUU6DQo+ICtpZiAodGVz dF9iaXQoQVRIMTFLX01ISV9TVVNQRU5ELCAmYWJfcGNpLT5taGlfc3RhdGUpKQ0KPiArcmV0dXJu IDA7DQo+ICticmVhazsNCj4gK2Nhc2UgQVRIMTFLX01ISV9UUklHR0VSX1JERE06DQo+ICtpZiAo dGVzdF9iaXQoQVRIMTFLX01ISV9QT1dFUl9PTiwgJmFiX3BjaS0+bWhpX3N0YXRlKQ0KPiAmJg0K PiArICAgICF0ZXN0X2JpdChBVEgxMUtfTUhJX1RSSUdHRVJfUkRETSwgJmFiX3BjaS0NCj4gPm1o aV9zdGF0ZSkpDQo+ICtyZXR1cm4gMDsNCj4gK2JyZWFrOw0KPiArY2FzZSBBVEgxMUtfTUhJX1JE RE1fRE9ORToNCj4gK3JldHVybiAwOw0KPiArZGVmYXVsdDoNCj4gK2F0aDExa19lcnIoYWIsICJ1 bmhhbmRsZWQgbWhpIHN0YXRlOiAlcyglZClcbiIsDQo+ICsgICBhdGgxMWtfbWhpX3N0YXRlX3Rv X3N0cihtaGlfc3RhdGUpLCBtaGlfc3RhdGUpOw0KPiArfQ0KPiArDQo+ICthdGgxMWtfZXJyKGFi LCAiZmFpbGVkIHRvIHNldCBtaGkgc3RhdGUgJXMoJWQpIGluIGN1cnJlbnQgbWhpIHN0YXRlDQo+ ICgweCVseClcbiIsDQo+ICsgICBhdGgxMWtfbWhpX3N0YXRlX3RvX3N0cihtaGlfc3RhdGUpLCBt aGlfc3RhdGUsDQo+ICsgICBhYl9wY2ktPm1oaV9zdGF0ZSk7DQo+ICsNCj4gK3JldHVybiAtRUlO VkFMOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGF0aDExa19wY2lfc2V0X21oaV9zdGF0ZShz dHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpLA0KPiArICAgIGVudW0gYXRoMTFrX21oaV9zdGF0ZSBt aGlfc3RhdGUpIHsNCj4gK3N0cnVjdCBhdGgxMWtfYmFzZSAqYWIgPSBhYl9wY2ktPmFiOw0KPiAr aW50IHJldDsNCj4gKw0KPiArcmV0ID0gYXRoMTFrX3BjaV9jaGVja19taGlfc3RhdGVfYml0KGFi X3BjaSwgbWhpX3N0YXRlKTsNCj4gK2lmIChyZXQpDQo+ICtnb3RvIG91dDsNCj4gKw0KPiArYXRo MTFrX2RiZyhhYiwgQVRIMTFLX0RCR19QQ0ksICJzZXR0aW5nIG1oaSBzdGF0ZTogJXMoJWQpXG4i LA0KPiArICAgYXRoMTFrX21oaV9zdGF0ZV90b19zdHIobWhpX3N0YXRlKSwgbWhpX3N0YXRlKTsN Cj4gKw0KPiArc3dpdGNoIChtaGlfc3RhdGUpIHsNCj4gK2Nhc2UgQVRIMTFLX01ISV9JTklUOg0K PiArcmV0ID0gbWhpX3ByZXBhcmVfZm9yX3Bvd2VyX3VwKGFiX3BjaS0+bWhpX2N0cmwpOw0KPiAr YnJlYWs7DQo+ICtjYXNlIEFUSDExS19NSElfREVJTklUOg0KPiArbWhpX3VucHJlcGFyZV9hZnRl cl9wb3dlcl9kb3duKGFiX3BjaS0+bWhpX2N0cmwpOw0KPiArcmV0ID0gMDsNCj4gK2JyZWFrOw0K PiArY2FzZSBBVEgxMUtfTUhJX1BPV0VSX09OOg0KPiArcmV0ID0gbWhpX2FzeW5jX3Bvd2VyX3Vw KGFiX3BjaS0+bWhpX2N0cmwpOw0KPiArYnJlYWs7DQo+ICtjYXNlIEFUSDExS19NSElfUE9XRVJf T0ZGOg0KPiArbWhpX3Bvd2VyX2Rvd24oYWJfcGNpLT5taGlfY3RybCwgdHJ1ZSk7DQo+ICtyZXQg PSAwOw0KPiArYnJlYWs7DQo+ICtjYXNlIEFUSDExS19NSElfRk9SQ0VfUE9XRVJfT0ZGOg0KPiAr bWhpX3Bvd2VyX2Rvd24oYWJfcGNpLT5taGlfY3RybCwgZmFsc2UpOw0KPiArcmV0ID0gMDsNCj4g K2JyZWFrOw0KPiArY2FzZSBBVEgxMUtfTUhJX1NVU1BFTkQ6DQo+ICticmVhazsNCj4gK2Nhc2Ug QVRIMTFLX01ISV9SRVNVTUU6DQo+ICticmVhazsNCj4gK2Nhc2UgQVRIMTFLX01ISV9UUklHR0VS X1JERE06DQo+ICtyZXQgPSBtaGlfZm9yY2VfcmRkbV9tb2RlKGFiX3BjaS0+bWhpX2N0cmwpOw0K PiArYnJlYWs7DQo+ICtjYXNlIEFUSDExS19NSElfUkRETV9ET05FOg0KPiArYnJlYWs7DQo+ICtk ZWZhdWx0Og0KPiArYXRoMTFrX2VycihhYiwgInVuaGFuZGxlZCBNSEkgc3RhdGUgKCVkKVxuIiwg bWhpX3N0YXRlKTsNCj4gK3JldCA9IC1FSU5WQUw7DQo+ICt9DQo+ICsNCj4gK2lmIChyZXQpDQo+ ICtnb3RvIG91dDsNCj4gKw0KPiArYXRoMTFrX3BjaV9zZXRfbWhpX3N0YXRlX2JpdChhYl9wY2ks IG1oaV9zdGF0ZSk7DQo+ICsNCj4gK3JldHVybiAwOw0KPiArDQo+ICtvdXQ6DQo+ICthdGgxMWtf ZXJyKGFiLCAiZmFpbGVkIHRvIHNldCBtaGkgc3RhdGU6ICVzKCVkKVxuIiwNCj4gKyAgIGF0aDEx a19taGlfc3RhdGVfdG9fc3RyKG1oaV9zdGF0ZSksIG1oaV9zdGF0ZSk7DQo+ICtyZXR1cm4gcmV0 Ow0KPiArfQ0KPiArDQo+ICtpbnQgYXRoMTFrX3BjaV9zdGFydF9taGkoc3RydWN0IGF0aDExa19w Y2kgKmFiX3BjaSkgew0KPiArc3RydWN0IGF0aDExa19iYXNlICphYiA9IGFiX3BjaS0+YWI7DQo+ ICtpbnQgcmV0Ow0KPiArDQo+ICthYl9wY2ktPm1oaV9jdHJsLT50aW1lb3V0X21zID0gTUhJX1RJ TUVPVVRfREVGQVVMVF9NUzsNCj4gKw0KPiArcmV0ID0gYXRoMTFrX3BjaV9zZXRfbWhpX3N0YXRl KGFiX3BjaSwgQVRIMTFLX01ISV9JTklUKTsNCj4gK2lmIChyZXQpDQo+ICthdGgxMWtfZXJyKGFi LCAiZmFpbGVkIHRvIHNldCBtaGkgaW5pdCBzdGF0ZTogJWRcbiIsIHJldCk7DQo+ICsNCj4gK3Jl dCA9IGF0aDExa19wY2lfc2V0X21oaV9zdGF0ZShhYl9wY2ksIEFUSDExS19NSElfUE9XRVJfT04p Ow0KPiAraWYgKHJldCkNCj4gK2F0aDExa19lcnIoYWIsICJmYWlsZWQgdG8gc2V0IG1oaSBwb3dl ciBvbiBzdGF0ZTogJWRcbiIsIHJldCk7DQo+ICsNCj4gK3JldHVybiByZXQ7DQo+ICt9DQo+ICsN Cj4gK3ZvaWQgYXRoMTFrX3BjaV9zdG9wX21oaShzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpKSB7 DQo+ICthdGgxMWtfcGNpX3NldF9taGlfc3RhdGUoYWJfcGNpLCBBVEgxMUtfTUhJX1JFU1VNRSk7 DQo+ICthdGgxMWtfcGNpX3NldF9taGlfc3RhdGUoYWJfcGNpLCBBVEgxMUtfTUhJX1BPV0VSX09G Rik7DQo+ICthdGgxMWtfcGNpX3NldF9taGlfc3RhdGUoYWJfcGNpLCBBVEgxMUtfTUhJX0RFSU5J VCk7IH0NCj4gKw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEx ay9taGkuaA0KPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWhpLmgNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi4zNTVkZTVhMmMyNDENCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21o aS5oDQo+IEBAIC0wLDAgKzEsMjggQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMy1DbGF1c2UtQ2xlYXIgKi8NCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjAgVGhl IExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ICsgKi8NCj4gKyNpZm5k ZWYgX0FUSDExS19NSElfSA0KPiArI2RlZmluZSBfQVRIMTFLX01ISV9IDQo+ICsNCj4gKyNpbmNs dWRlICJwY2kuaCINCj4gKyNkZWZpbmUgQVRIMTFLX1BDSV9GV19GSUxFX05BTUUiYW1zcy5iaW4i DQo+ICsNCj4gK2VudW0gYXRoMTFrX21oaV9zdGF0ZSB7DQo+ICtBVEgxMUtfTUhJX0lOSVQsDQo+ ICtBVEgxMUtfTUhJX0RFSU5JVCwNCj4gK0FUSDExS19NSElfUE9XRVJfT04sDQo+ICtBVEgxMUtf TUhJX1BPV0VSX09GRiwNCj4gK0FUSDExS19NSElfRk9SQ0VfUE9XRVJfT0ZGLA0KPiArQVRIMTFL X01ISV9TVVNQRU5ELA0KPiArQVRIMTFLX01ISV9SRVNVTUUsDQo+ICtBVEgxMUtfTUhJX1RSSUdH RVJfUkRETSwNCj4gK0FUSDExS19NSElfUkRETSwNCj4gK0FUSDExS19NSElfUkRETV9ET05FLA0K PiArfTsNCj4gKw0KPiAraW50IGF0aDExa19wY2lfc3RhcnRfbWhpKHN0cnVjdCBhdGgxMWtfcGNp ICphcl9wY2kpOyB2b2lkDQo+ICthdGgxMWtfcGNpX3N0b3BfbWhpKHN0cnVjdCBhdGgxMWtfcGNp ICphcl9wY2kpOyBpbnQNCj4gK2F0aDExa19wY2lfcmVnaXN0ZXJfbWhpKHN0cnVjdCBhdGgxMWtf cGNpICphcl9wY2kpOyB2b2lkDQo+ICthdGgxMWtfcGNpX3VucmVnaXN0ZXJfbWhpKHN0cnVjdCBh dGgxMWtfcGNpICphcl9wY2kpOyAjZW5kaWYNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMNCj4gYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo MTFrL3BjaS5jDQo+IGluZGV4IGQ4OWRjYjVmZTgxZS4uOTM4MDc4ZWU4ZDgwIDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jDQo+ICsrKyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMNCj4gQEAgLTksNiArOSw4IEBADQo+DQo+ ICAjaW5jbHVkZSAiYWhiLmgiDQo+ICAjaW5jbHVkZSAiY29yZS5oIg0KPiArI2luY2x1ZGUgImhp Zi5oIg0KPiArI2luY2x1ZGUgIm1oaS5oIg0KPiAgI2luY2x1ZGUgInBjaS5oIg0KPiAgI2luY2x1 ZGUgImRlYnVnLmgiDQo+DQo+IEBAIC0zMSw2ICszMyw2MCBAQCBzdGF0aWMgc3RydWN0IGF0aDEx a19tc2lfY29uZmlnIG1zaV9jb25maWcgPSB7DQo+ICB9LA0KPiAgfTsNCj4NCj4gK2ludCBhdGgx MWtfcGNpX2dldF9tc2lfaXJxKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHZlY3Rv cikgew0KPiArc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSB0b19wY2lfZGV2KGRldik7DQo+ICtp bnQgaXJxX251bTsNCj4gKw0KPiAraXJxX251bSA9IHBjaV9pcnFfdmVjdG9yKHBjaV9kZXYsIHZl Y3Rvcik7DQo+ICsNCj4gK3JldHVybiBpcnFfbnVtOw0KPiArfQ0KPiArDQo+ICtpbnQgYXRoMTFr X3BjaV9nZXRfdXNlcl9tc2lfYXNzaWdubWVudChzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpLCBj aGFyDQo+ICp1c2VyX25hbWUsDQo+ICsgICAgICAgaW50ICpudW1fdmVjdG9ycywgdTMyICp1c2Vy X2Jhc2VfZGF0YSwNCj4gKyAgICAgICB1MzIgKmJhc2VfdmVjdG9yKQ0KPiArew0KPiArc3RydWN0 IGF0aDExa19iYXNlICphYiA9IGFiX3BjaS0+YWI7DQo+ICtzdHJ1Y3QgYXRoMTFrX21zaV9jb25m aWcgKm1zaV9jb25maWc7DQo+ICtpbnQgaWR4Ow0KPiArDQo+ICttc2lfY29uZmlnID0gYWJfcGNp LT5tc2lfY29uZmlnOw0KPiAraWYgKCFtc2lfY29uZmlnKSB7DQo+ICthdGgxMWtfZXJyKGFiLCAi TVNJIGlzIG5vdCBzdXBwb3J0ZWQuXG4iKTsNCj4gK3JldHVybiAtRUlOVkFMOw0KPiArfQ0KPiAr DQo+ICtmb3IgKGlkeCA9IDA7IGlkeCA8IG1zaV9jb25maWctPnRvdGFsX3VzZXJzOyBpZHgrKykg ew0KPiAraWYgKHN0cmNtcCh1c2VyX25hbWUsIG1zaV9jb25maWctPnVzZXJzW2lkeF0ubmFtZSkg PT0gMCkgew0KPiArKm51bV92ZWN0b3JzID0gbXNpX2NvbmZpZy0+dXNlcnNbaWR4XS5udW1fdmVj dG9yczsNCj4gKyp1c2VyX2Jhc2VfZGF0YSA9IG1zaV9jb25maWctDQo+ID51c2Vyc1tpZHhdLmJh c2VfdmVjdG9yDQo+ICsrIGFiX3BjaS0+bXNpX2VwX2Jhc2VfZGF0YTsNCj4gKypiYXNlX3ZlY3Rv ciA9IG1zaV9jb25maWctPnVzZXJzW2lkeF0uYmFzZV92ZWN0b3I7DQo+ICsNCj4gK2F0aDExa19k YmcoYWIsIEFUSDExS19EQkdfUENJLCAiQXNzaWduIE1TSSB0bw0KPiB1c2VyOiAlcywgbnVtX3Zl Y3RvcnM6ICVkLCB1c2VyX2Jhc2VfZGF0YTogJXUsIGJhc2VfdmVjdG9yOiAldVxuIiwNCj4gKyAg IHVzZXJfbmFtZSwgKm51bV92ZWN0b3JzLA0KPiAqdXNlcl9iYXNlX2RhdGEsDQo+ICsgICAqYmFz ZV92ZWN0b3IpOw0KPiArDQo+ICtyZXR1cm4gMDsNCj4gK30NCj4gK30NCj4gKw0KPiArYXRoMTFr X2VycihhYiwgIkZhaWxlZCB0byBmaW5kIE1TSSBhc3NpZ25tZW50IGZvciAlcyFcbiIsDQo+IHVz ZXJfbmFtZSk7DQo+ICsNCj4gK3JldHVybiAtRUlOVkFMOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg aW50IGF0aDExa19wY2lfcWNhNng5MF9wb3dlcnVwKHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2kp IHsNCj4gK3JldHVybiBhdGgxMWtfcGNpX3N0YXJ0X21oaShhYl9wY2kpOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgdm9pZCBhdGgxMWtfcGNpX3FjYTZ4OTBfcG93ZXJkb3duKHN0cnVjdCBhdGgxMWtf cGNpICphYl9wY2kpIHsNCj4gK2F0aDExa19wY2lfc3RvcF9taGkoYWJfcGNpKTsNCj4gK30NCj4g Kw0KPiAgc3RhdGljIGludCBhdGgxMWtfcGNpX2dldF9tc2lfYXNzaWdubWVudChzdHJ1Y3QgYXRo MTFrX3BjaSAqYWJfcGNpKSAgew0KPiAgYWJfcGNpLT5tc2lfY29uZmlnID0gJm1zaV9jb25maWc7 DQo+IEBAIC0xODQsNiArMjQwLDM0IEBAIHN0YXRpYyB2b2lkIGF0aDExa19wY2lfZnJlZV9yZWdp b24oc3RydWN0DQo+IGF0aDExa19wY2kgKmFiX3BjaSkNCj4gIHBjaV9kaXNhYmxlX2RldmljZShw Y2lfZGV2KTsNCj4gIH0NCj4NCj4gK3N0YXRpYyBpbnQgYXRoMTFrX3BjaV9wb3dlcl91cChzdHJ1 Y3QgYXRoMTFrX2Jhc2UgKmFiKSB7DQo+ICtzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpOw0KPiAr aW50IHJldDsNCj4gKw0KPiArYWJfcGNpID0gYXRoMTFrX3BjaV9wcml2KGFiKTsNCj4gK3JldCA9 IGF0aDExa19wY2lfcWNhNng5MF9wb3dlcnVwKGFiX3BjaSk7DQo+ICtpZiAocmV0KSB7DQo+ICth dGgxMWtfZXJyKGFiLCAiZmFpbGVkIHRvIHBvd2VyIG9uICBtaGk6ICVkXG4iLCByZXQpOw0KPiAr cmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyB2b2lkIGF0aDExa19wY2lfcG93ZXJfZG93bihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKSB7DQo+ ICtzdHJ1Y3QgYXRoMTFrX3BjaSAqYWJfcGNpOw0KPiArDQo+ICthYl9wY2kgPSBhdGgxMWtfcGNp X3ByaXYoYWIpOw0KPiArYXRoMTFrX3BjaV9xY2E2eDkwX3Bvd2VyZG93bihhYl9wY2kpOw0KPiAr fQ0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGF0aDExa19oaWZfb3BzIGF0aDExa19wY2lf aGlmX29wcyA9IHsNCj4gKy5wb3dlcl9kb3duID0gYXRoMTFrX3BjaV9wb3dlcl9kb3duLA0KPiAr LnBvd2VyX3VwID0gYXRoMTFrX3BjaV9wb3dlcl91cCwNCj4gK307DQo+ICsNCj4gIHN0YXRpYyBp bnQgYXRoMTFrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gICAgICBjb25zdCBz dHJ1Y3QgcGNpX2RldmljZV9pZCAqcGNpX2RldikgIHsgQEAgLTIyOSwxNA0KPiArMzEzLDI2IEBA IHN0YXRpYyBpbnQgYXRoMTFrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gIGdv dG8gZXJyX2ZyZWVfY29yZTsNCj4gIH0NCj4NCj4gK2FiLT5tZW0gPSBhYl9wY2ktPm1lbTsNCj4g K2FiLT5tZW1fbGVuID0gYWJfcGNpLT5tZW1fbGVuOw0KPiArDQo+ICByZXQgPSBhdGgxMWtfcGNp X2VuYWJsZV9tc2koYWJfcGNpKTsNCj4gIGlmIChyZXQpIHsNCj4gIGF0aDExa19lcnIoYWIsICJm YWlsZWQgdG8gZW5hYmxlICBtc2k6ICVkXG4iLCByZXQpOw0KPiAgZ290byBlcnJfcGNpX2ZyZWVf cmVnaW9uOw0KPiAgfQ0KPg0KPiArcmV0ID0gYXRoMTFrX3BjaV9yZWdpc3Rlcl9taGkoYWJfcGNp KTsNCj4gK2lmIChyZXQpIHsNCj4gK2F0aDExa19lcnIoYWIsICJmYWlsZWQgdG8gcmVnaXN0ZXIg IG1oaTogJWRcbiIsIHJldCk7DQo+ICtnb3RvIGVycl9wY2lfZGlzYWJsZV9tc2k7DQo+ICt9DQo+ ICsNCj4gIHJldHVybiAwOw0KPg0KPiArZXJyX3BjaV9kaXNhYmxlX21zaToNCj4gK2F0aDExa19w Y2lfZGlzYWJsZV9tc2koYWJfcGNpKTsNCj4gKw0KPiAgZXJyX3BjaV9mcmVlX3JlZ2lvbjoNCj4g IGF0aDExa19wY2lfZnJlZV9yZWdpb24oYWJfcGNpKTsNCj4NCj4gQEAgLTI1Miw2ICszNDgsNyBA QCBzdGF0aWMgdm9pZCBhdGgxMWtfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCj4g IHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2kgPSBhdGgxMWtfcGNpX3ByaXYoYWIpOw0KPg0KPiAg c2V0X2JpdChBVEgxMUtfRkxBR19VTlJFR0lTVEVSSU5HLCAmYWItPmRldl9mbGFncyk7DQo+ICth dGgxMWtfcGNpX3VucmVnaXN0ZXJfbWhpKGFiX3BjaSk7DQo+ICBhdGgxMWtfcGNpX2Rpc2FibGVf bXNpKGFiX3BjaSk7DQo+ICBhdGgxMWtfcGNpX2ZyZWVfcmVnaW9uKGFiX3BjaSk7DQo+ICBhdGgx MWtfY29yZV9mcmVlKGFiKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGgxMWsvcGNpLmgNCj4gYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5o DQo+IGluZGV4IDdjN2ZhMTk2NWFhNi4uODNiNDg1YmU2YzUwIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2F0aC9hdGgxMWsvcGNpLmgNCj4gQEAgLTIsNiArMiwxMCBAQA0KPiAgLyoNCj4gICAq IENvcHlyaWdodCAoYykgMjAxOS0yMDIwIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLg0KPiAgICovDQo+ICsjaWZuZGVmIF9BVEgxMUtfUENJX0gNCj4gKyNkZWZpbmUg X0FUSDExS19QQ0lfSA0KPiArDQo+ICsjaW5jbHVkZSA8bGludXgvbWhpLmg+DQo+DQo+ICAjZGVm aW5lIFFDQTYyOTBfVkVORE9SX0lEMHgxN0NCDQo+ICAjZGVmaW5lIFFDQTYyOTBfREVWSUNFX0lE MHgxMTAwDQo+IEBAIC0zMyw0ICszNywxMyBAQCBzdHJ1Y3QgYXRoMTFrX3BjaSB7DQo+ICB1MzIg Y2hpcF9pZDsNCj4gIHN0cnVjdCBhdGgxMWtfbXNpX2NvbmZpZyAqbXNpX2NvbmZpZzsNCj4gIHUz MiBtc2lfZXBfYmFzZV9kYXRhOw0KPiArc3RydWN0IG1oaV9jb250cm9sbGVyICptaGlfY3RybDsN Cj4gK3Vuc2lnbmVkIGxvbmcgbWhpX3N0YXRlOw0KPiAgfTsNCj4gKw0KPiAraW50IGF0aDExa19w Y2lfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQoc3RydWN0IGF0aDExa19wY2kgKmFyX3BjaSwgY2hh cg0KPiAqdXNlcl9uYW1lLA0KPiArICAgICAgIGludCAqbnVtX3ZlY3RvcnMsIHUzMiAqdXNlcl9i YXNlX2RhdGEsDQo+ICsgICAgICAgdTMyICpiYXNlX3ZlY3Rvcik7DQo+ICsNCj4gK2ludCBhdGgx MWtfcGNpX2dldF9tc2lfaXJxKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHZlY3Rv cik7DQo+ICsjZW5kaWYNCj4gLS0NCj4gMi4yMi4wDQo+DQo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGF0aDExayBtYWlsaW5nIGxpc3QNCj4gYXRo MTFrQGxpc3RzLmluZnJhZGVhZC5vcmcNCj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9hdGgxMWsNCg==