From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4939C07E95 for ; Wed, 7 Jul 2021 15:58:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8E53761CC0 for ; Wed, 7 Jul 2021 15:58:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231665AbhGGQBa (ORCPT ); Wed, 7 Jul 2021 12:01:30 -0400 Received: from mail-sn1anam02on2074.outbound.protection.outlook.com ([40.107.96.74]:6307 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231533AbhGGQB3 (ORCPT ); Wed, 7 Jul 2021 12:01:29 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ANIgT9HJAEhYWh5TExLjz3o6LWOn3YFrSOWaIMkI3ILiq9mgZX7F6LkisJlHH2dHaPikPjHwcwelWql398HYV8T2V4KKR5z1VuQI2Gpb1sOT9K9vDOjVHYaVDwb7Ft5aiqvQVJofjl8aJMHOkqNdTSaV0z6Q2QTBzrpTy1qniD3ZLc9metR46Y+i3Gh7x6esLVo95KM+pq0BJH1Db0/0lXZ9NWM/WV+ZoraTgiTdKw7cY2t6fXFYBzagm72glPwWXxFAz4p91QQNi7bvWT0ZpW7gz4rGoTmpkNLPOORcHoJab88BDjADTVgvGUqFfix4PWrUq7Q1wkitPVK2ZKXxwg== 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=Tyx/94yATv95hmKPqM4ISOP7io8dH4JuPv6h5HkYHuc=; b=VGO1/EYOMRX0elV3ew3SHZsGnz2Pyvu21+xE71sTujl8cz6/BTFhntfDCxrTUED3apvfmE0KUksc3fgkANnC5IactrWEahhKmYQEa9n+KOxM3grxHgjMY4MQss+mv8bDXBh206gvvx4MI4lMLnaGpDtrRBkRa/ncIGOVwWxSVrzm1Dg0/x56ub7NSO3xUhcccZglLCRsMG70XYMsnsi20GppK0Zw4tOQcyr0j08Qo5yTDXebchzoHfdzk+pgg9vMeaT4P5QYxyVU5RZwgJOdq/SpYNEG6goPwIZfhz9T3OTyT2TKbgH3erTlKcq8asrkovlMe2RpPCcfku2l8MqhRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Tyx/94yATv95hmKPqM4ISOP7io8dH4JuPv6h5HkYHuc=; b=lZ4tpRwLJpuLFMNwgk+mpR+eLGwy4GEf0t6rb38MJ38Nwdg5eCY0z5jJmM9TU/St2MetZ8U5esr765JaoVwlL0+o+m+Uq6/C9V4T0xGg4tUCQgRJ9pdixi7GLfI5TxhRtw5vQtllKnOju+WyKDaDxq1EQnSvir6+Hp+BiVPDfdw= Received: from BL1PR12MB5286.namprd12.prod.outlook.com (2603:10b6:208:31d::6) by BL1PR12MB5079.namprd12.prod.outlook.com (2603:10b6:208:31a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.26; Wed, 7 Jul 2021 15:58:47 +0000 Received: from BL1PR12MB5286.namprd12.prod.outlook.com ([fe80::8ce:4339:7e20:7022]) by BL1PR12MB5286.namprd12.prod.outlook.com ([fe80::8ce:4339:7e20:7022%7]) with mapi id 15.20.4308.020; Wed, 7 Jul 2021 15:58:47 +0000 From: "Chatradhi, Naveen Krishna" To: Guenter Roeck , "linux-hwmon@vger.kernel.org" CC: "Gupta, Akshay" Subject: RE: [PATCH 1/3] hwmon: sbrmi: Add support for sbrmi power module Thread-Topic: [PATCH 1/3] hwmon: sbrmi: Add support for sbrmi power module Thread-Index: AQHXacWlGkqNXhICjESwI9Kq+YycUaspiKiAgAGT6mCADIMwcIAAA4mAgAAa4fA= Date: Wed, 7 Jul 2021 15:58:46 +0000 Message-ID: References: <20210625132544.18094-1-nchatrad@amd.com> <26e0f4b6-5a5d-bf79-7691-b9e3a8c7ec43@roeck-us.net> <34a69f1d-7e79-9813-3e02-0d830d8baabb@roeck-us.net> In-Reply-To: <34a69f1d-7e79-9813-3e02-0d830d8baabb@roeck-us.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Enabled=true; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SetDate=2021-07-07T15:58:42Z; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Method=Privileged; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Name=Public-AIP 2.0; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ActionId=4c8ca8bd-1ddc-4264-8a38-082697cda0d0; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ContentBits=1 authentication-results: roeck-us.net; dkim=none (message not signed) header.d=none;roeck-us.net; dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2bf23082-1163-472b-c214-08d941601ac1 x-ms-traffictypediagnostic: BL1PR12MB5079: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: o3p4ZONoaAlYH3gXwmjNjvhfiHJnJVvHXZkTv+7anZNrbGlKPCHlb+dnBuxHZLRO8V7/6cNWaWpR5job6bvB+862XE4X9UfCmoRS+neLB2556pYk6goWDh5G56hfRe7HrjBYqEAFzV63WqDkxRRcYECFtUn0436ZNCj+HPFxIk8ZY9L6Jgwlt1f+ekHGu0oi+y7s0QzsZ1H4n63G2Je+lW8ns/y0aVjdQDdCnBpyONY6QDaEIoi80IA14FqCwbtuOF4B8+gWoDPfAH2qKF2+NjcnMEILXXpRSzZsdwObz8t386XVFiHPWPiVM4Ppl6EIIzuSUKb14HyjgSQbk3y44ywoDz1WmS1SiLlhWjGNyAlJeLz6/uWiWgAy5ri0ckDorpLyy1X62dYfKDUGXV42YR5d4Y0oQVelaMGVTEkqVRKc9w2BaU3AcbWqPBlkFinc8uMo8MjmQdzelLqQAw1XIpIOFj/dSpIPFSJtmQZcZlVsBOCFiUj5STrd5LmZ5BSP97jRakMgEmnaDiW9HD/Swn/TjSm+HpRXP/Wi5s99wv+Is61GyATyqKGg6APP49Q65njcc4qzKWiDZB4TP/rs372/Sio6OQ9BJhIkooWBSerYuq56sJAFB1C0jtkfvCGDyv3C9ig4SHqA2lYLpdeZEQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR12MB5286.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(39860400002)(396003)(366004)(376002)(136003)(33656002)(52536014)(110136005)(55016002)(66946007)(6506007)(26005)(66556008)(66476007)(53546011)(9686003)(64756008)(86362001)(66446008)(76116006)(83380400001)(186003)(8936002)(478600001)(2906002)(71200400001)(122000001)(4326008)(55236004)(5660300002)(38100700002)(8676002)(7696005)(316002)(30864003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S21Bc3NiOUx3Z0lWaExzV0xLdittOHI5WTdSSzhFWUxjb1hDVldCUDUxQ0t1?= =?utf-8?B?YVFpL2xmMmVWWG1GSkFSMmVoOFZaRi9NdXZ1T0tEZWNzZk5LQjR5dktnVjBD?= =?utf-8?B?UFhHdDJPS1JUZWFUODhyU3YwaXpmaEJMeUpHa2Zka1V0ZWxrR3k2S0k2cHRY?= =?utf-8?B?K2tjdWZGRk9kR3RaTytaQnpYdlpXRjUyVFNWN3VyeDRnV3dlRk4rVE0xR2Iy?= =?utf-8?B?SnJoVFNIVG1kclNaWUNQaElHcWxjNmRDY2NCZG9HSXhXRUVvTDZJMVFXTllW?= =?utf-8?B?eWtSdEx1eEh5bGpUQ2dOL0hMdVg2N1d0dUpZbmtkdlRFNGxSZ2Qyb0gxUllU?= =?utf-8?B?SG5laXJDeU84dkRkdDFWNytURERBaFpteWt0cHljWlNBeC9FVnlhWCt1OUNT?= =?utf-8?B?S0pOajVUOUtLSW80U3RWS0VqZWtEcnJQVUFJWHh4UUhyc3ozSUd4amNpcG1T?= =?utf-8?B?UzB5amFMU1RHNUhFUUJxTThOaFFoUmd6eEVvRWhRRzd3ZUxlL2xCc3B4R1FC?= =?utf-8?B?Rm5ZUm55M1dwRU1sL2swVFhtcnVwMkFTN0dyYURmZFRGbnJEMmlpdk1jbmRq?= =?utf-8?B?bzd6WXZqTTRzZjlnbDZFeGRxTmlIckxkRm1DYkpxYW9lNjBTajFEV2FSUmYv?= =?utf-8?B?MlpYZTFIT0dmUG9lQ0JxSEZMVER5eFJUcElvMVg5QkJZVUpza3JiejRlL3J4?= =?utf-8?B?QmVxbVpRSmlCNjNUQWxHTlN5Y3Y1RTVrU0lTZGV4Tk5WUlMzYlhBVFljOU1R?= =?utf-8?B?Q3ZOTVU2cGRnNzhUUHFzaDVCa0FkTGtFdVpNQjRBa2Z6aXpNOUpzSFp4emxU?= =?utf-8?B?LzhLVVh2UEUzMlQzMzczaGthV2E2V1Y2QWtjTms1VXJPc0RTOFI4bkIvU09E?= =?utf-8?B?bE51UlozcE5KUCtGSXdrcnYzelhQdHN5elQ0SWVkcWIvZHpRc0ZjT2pXcmxO?= =?utf-8?B?Qmp3WGJoSFI3NVlqRDJsd3BTUzlkZHNOY20wa2crdmVSdDdiRitsL0dRQ2xp?= =?utf-8?B?SXJzYjdpSFI5MkttUVIyQS8wYXd6M0hQbmFmSkh6aHZkbXVRUmlWcFp5OG4r?= =?utf-8?B?dzFyV0JlVHRCZGJrajJKQU1qMnhEcFpXZmJsZWkrT0FUTkgxRjhrQm51NEVB?= =?utf-8?B?emVPZW90WjIzSkdiU3RYT2JORkhvL3FaNlBWa2YxSVRTZFBtdzBhemZDSGZE?= =?utf-8?B?S2IvSDJaMFZNUG9zVDh3NTdpYXFFY0hZSzVUeDB5MmxIUEhrUVEwM1IzSHJ5?= =?utf-8?B?TTdJMmlNcTQ4YUpNZDFOeEtQclRsMzRUeDFCMzc1SVJZaWRzS0g1bU5iTUxl?= =?utf-8?B?YVN2TXJmVU5rbHo2Y05hMHFJVzFYVGQxUmZrWTErbks2T1pnMVBSYXlyQnpJ?= =?utf-8?B?RzNNRk9TemQ1NHo2ZnBPU0xMSVZwSzZ0b3dvUW9tOE9nRXRQMkRHZGpnMUtR?= =?utf-8?B?MDhlZ2JscU5PcHArU08xMVJlcGd0TkNNYkdEQk9mdVdTUllnTkZYSDRjd2hC?= =?utf-8?B?M3BUUEZpOHlVSjlkSkZmeU4vWlM0N2U2amFZcXM5bE5ucGVZOU5LdkVwTEM2?= =?utf-8?B?OWR0aktWVnZreWlFYkFPQUl1a0k4UGZJNFB0dndwTVJUcjFEQ3Q1endjd3pu?= =?utf-8?B?Y28wTDlVVlVDTkdUemRLRUY5WjIwVUNBa1JENjBkV3gyRmxPTjREWFlGbjVs?= =?utf-8?B?Um9FdEVnMkpJR2VxM3VtVW9LeVVsbWs3aFZpckcyaFlrK3JSU1o0QW1TUXlj?= =?utf-8?Q?hwRxraeLYmFDZRUi3BFcZG5FXqySl/gFoAqKfu+?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5286.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2bf23082-1163-472b-c214-08d941601ac1 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jul 2021 15:58:46.9863 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CqdrbP31f8pot1MzlP6gDhv9nc2PX+LnMdfJT5RURfrCudd8lhsmEDoH+B5ZrdTzMWW/dXYBvKvNqxf/4MKxrw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5079 Precedence: bulk List-ID: X-Mailing-List: linux-hwmon@vger.kernel.org W1B1YmxpY10NCg0KSGkgR3VlbnRlcg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJv bTogR3VlbnRlciBSb2VjayA8Z3JvZWNrN0BnbWFpbC5jb20+IE9uIEJlaGFsZiBPZiBHdWVudGVy IFJvZWNrDQpTZW50OiBXZWRuZXNkYXksIEp1bHkgNywgMjAyMSA3OjUyIFBNDQpUbzogQ2hhdHJh ZGhpLCBOYXZlZW4gS3Jpc2huYSA8TmF2ZWVuS3Jpc2huYS5DaGF0cmFkaGlAYW1kLmNvbT47IGxp bnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZw0KQ2M6IEd1cHRhLCBBa3NoYXkgPEFrc2hheS5HdXB0 YUBhbWQuY29tPg0KU3ViamVjdDogUmU6IFtQQVRDSCAxLzNdIGh3bW9uOiBzYnJtaTogQWRkIHN1 cHBvcnQgZm9yIHNicm1pIHBvd2VyIG1vZHVsZQ0KDQpbQ0FVVElPTjogRXh0ZXJuYWwgRW1haWxd DQoNCk9uIDcvNy8yMSA3OjE0IEFNLCBDaGF0cmFkaGksIE5hdmVlbiBLcmlzaG5hIHdyb3RlOg0K PiBbUHVibGljXQ0KPg0KPiBIaSBHdWVudGVyLA0KPg0KPiBDb3VwbGUgb2YgcXVlc3Rpb25zIGlu bGluZSBiZWZvcmUgd2Ugc3VibWl0IHRoZSBuZXh0IHZlcnNpb24uIENvdWxkIHlvdSBhbnN3ZXIg dGhlbS4NCltuYXZlZW5rOl0gWWVzLCB0aGF0IHdhcyB0aGUgb25lLiBTdWJtaXR0aW5nIHRoZSBu ZXh0IHZlcnNpb24uIFRoYW5rIHlvdS4NCj4NCj4gUmVnYXJkcywNCj4gTmF2ZWVuaw0KPg0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaGF0cmFkaGksIE5hdmVlbiBLcmlz aG5hIDxOYXZlZW5LcmlzaG5hLkNoYXRyYWRoaUBhbWQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBK dW5lIDI5LCAyMDIxIDg6MzYgUE0NCj4gVG86IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJvZWNrLXVz Lm5ldD47IGxpbnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZw0KPiBDYzogR3VwdGEsIEFrc2hheSA8 QWtzaGF5Lkd1cHRhQGFtZC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMS8zXSBod21vbjog c2JybWk6IEFkZCBzdXBwb3J0IGZvciBzYnJtaSBwb3dlciANCj4gbW9kdWxlDQo+DQo+IFtDQVVU SU9OOiBFeHRlcm5hbCBFbWFpbF0NCj4NCj4gW0FNRCBPZmZpY2lhbCBVc2UgT25seV0NCj4NCj4g SGkgR3VlbnRlciwNCj4NCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR3Vl bnRlciBSb2VjayA8Z3JvZWNrN0BnbWFpbC5jb20+IE9uIEJlaGFsZiBPZiBHdWVudGVyIFJvZWNr DQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAyOCwgMjAyMSA4OjI5IFBNDQo+IFRvOiBDaGF0cmFkaGks IE5hdmVlbiBLcmlzaG5hIDxOYXZlZW5LcmlzaG5hLkNoYXRyYWRoaUBhbWQuY29tPjsgDQo+IGxp bnV4LWh3bW9uQHZnZXIua2VybmVsLm9yZw0KPiBDYzogR3VwdGEsIEFrc2hheSA8QWtzaGF5Lkd1 cHRhQGFtZC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMS8zXSBod21vbjogc2JybWk6IEFk ZCBzdXBwb3J0IGZvciBzYnJtaSBwb3dlciANCj4gbW9kdWxlDQo+DQo+IFtDQVVUSU9OOiBFeHRl cm5hbCBFbWFpbF0NCj4NCj4gT24gNi8yNS8yMSA2OjI1IEFNLCBOYXZlZW4gS3Jpc2huYSBDaGF0 cmFkaGkgd3JvdGU6DQo+PiBGcm9tOiBBa3NoYXkgR3VwdGEgPEFrc2hheS5HdXB0YUBhbWQuY29t Pg0KPj4NCj4+IE9uIEFNRCBwbGF0Zm9ybXMgdGhlIE91dC1vZi1iYW5kIGFjY2VzcyBpcyBwcm92 aWRlZCBieSBBZHZhbmNlZCANCj4+IFBsYXRmb3JtIE1hbmFnZW1lbnQNCj4NCj4gVGhpcyBpcyBh IGJpdCB0b28gbG9uZyBmb3IgY2hlY2twYXRjaC4NCj4gW25hdmVlbms6XSBTdXJlDQo+DQo+PiBM aW5rIChBUE1MKSwgQVBNTCBpcyBhIFNNQnVzIHYyLjAgY29tcGF0aWJsZSAyLXdpcmUgcHJvY2Vz c29yIGNsaWVudCBpbnRlcmZhY2UuDQo+PiBBUE1MIGlzIGFsc28gcmVmZXJyZWQgYXMgdGhlIHNp ZGViYW5kIGludGVyZmFjZSAoU0JJKS4NCj4+DQo+PiBBUE1MIGlzIHVzZWQgdG8gY29tbXVuaWNh dGUgd2l0aCB0aGUgUmVtb3RlIE1hbmFnZW1lbnQgSW50ZXJmYWNlIA0KPj4gKFNCLVJlbW90ZSBN YW5hZ2VtZW50IEludGVyZmFjZSAoU0ItUk1JKSB3aGljaCBwcm92aWRlcyBTb2Z0IE1haWxib3gg DQo+PiBtZXNzYWdlcyB0byByZXBvcnQgcG93ZXIgY29uc3VtcHRpb24gYW5kIHBvd2VyIGxpbWl0 cyBvZiB0aGUgQ1BVIHNvY2tldC4NCj4+DQo+PiAtIFRoaXMgbW9kdWxlIGFkZCBzdXBwb3J0IHRv IHJlYWQgcG93ZXIgY29uc3VtcHRpb24sDQo+PiAgICAgcG93ZXIgbGltaXQgJiBtYXggcG93ZXIg bGltaXQgYW5kIHdyaXRlIHBvd2VyIGxpbWl0Lg0KPj4gLSBUbyBpbnN0YW50aWF0ZSB0aGlzIGRy aXZlciBvbiBhbiBBTUQgQ1BVIHdpdGggU0ItUk1JIHN1cHBvcnQsDQo+PiAgICAgdGhlIGkyYyBi dXMgbnVtYmVyIHdvdWxkIGJlIHRoZSBidXMgY29ubmVjdGVkIGZyb20gdGhlIGJvYXJkDQo+PiAg ICAgbWFuYWdlbWVudCBjb250cm9sbGVyIChCTUMpIHRvIHRoZSBDUFUuDQo+Pg0KPg0KPiBUaGlz IGlzIGEgYml0IHZhZ3VlLiBXb3VsZCB0aGlzIGRyaXZlciBiZSBpbnN0YW50aWF0ZWQgb24gdGhl IGhvc3QgQ1BVIG9yIG9uIHRoZSBCTUMgPw0KPiBbbmF2ZWVuazpdIFRoaXMgZHJpdmVyIGlzIHRv IGJlIGluc3RhbnRpYXRlZCBvbiBhIEJNQyBjb25uZWN0ZWQgdG8gQU1EIENQVS4gV2lsbCBjb3Jy ZWN0IHRoZSBjb21tZW50Lg0KPg0KPj4gU2lnbmVkLW9mZi1ieTogQWtzaGF5IEd1cHRhIDxBa3No YXkuR3VwdGFAYW1kLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IE5hdmVlbiBLcmlzaG5hIENoYXRy YWRoaSA8bmNoYXRyYWRAYW1kLmNvbT4NCj4+IC0tLQ0KPj4gICAgZHJpdmVycy9od21vbi9LY29u ZmlnICB8ICAxMCArKw0KPj4gICAgZHJpdmVycy9od21vbi9NYWtlZmlsZSB8ICAgMSArDQo+PiAg ICBkcml2ZXJzL2h3bW9uL3Nicm1pLmMgIHwgMzk0ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrDQo+PiAgICAzIGZpbGVzIGNoYW5nZWQsIDQwNSBpbnNlcnRpb25zKCsp DQo+PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9od21vbi9zYnJtaS5jDQo+Pg0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vS2NvbmZpZyBiL2RyaXZlcnMvaHdtb24vS2NvbmZp ZyBpbmRleCANCj4+IDg3NjI0OTAyZWE4MC4uZDE4MTNlYTgzODJjIDEwMDY0NA0KPj4gLS0tIGEv ZHJpdmVycy9od21vbi9LY29uZmlnDQo+PiArKysgYi9kcml2ZXJzL2h3bW9uL0tjb25maWcNCj4+ IEBAIC0xNTUxLDYgKzE1NTEsMTYgQEAgY29uZmlnIFNFTlNPUlNfU0JUU0kNCj4+ICAgICAgICAg IFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbywgdGhlIG1v ZHVsZSB3aWxsDQo+PiAgICAgICAgICBiZSBjYWxsZWQgc2J0c2lfdGVtcC4NCj4+DQo+PiArY29u ZmlnIFNFTlNPUlNfU0JSTUkNCj4+ICsgICAgIHRyaXN0YXRlICJFbXVsYXRlZCBTQi1STUkgc2Vu c29yIg0KPj4gKyAgICAgZGVwZW5kcyBvbiBJMkMNCj4+ICsgICAgIGhlbHANCj4+ICsgICAgICAg SWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIGVtdWxhdGVkIFJNSQ0KPj4g KyAgICAgICBzZW5zb3JzIG9uIEFNRCBTb0NzIHdpdGggQVBNTCBpbnRlcmZhY2UgY29ubmVjdGVk IHRvIGEgQk1DIGRldmljZS4NCj4+ICsNCj4+ICsgICAgICAgVGhpcyBkcml2ZXIgY2FuIGFsc28g YmUgYnVpbHQgYXMgYSBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlIHdpbGwNCj4+ICsgICAgICAg YmUgY2FsbGVkIHNicm1pLg0KPj4gKw0KPj4gICAgY29uZmlnIFNFTlNPUlNfU0hUMTUNCj4+ICAg ICAgICB0cmlzdGF0ZSAiU2Vuc2lyb24gaHVtaWRpdHkgYW5kIHRlbXBlcmF0dXJlIHNlbnNvcnMu IFNIVDE1IGFuZCBjb21wYXQuIg0KPj4gICAgICAgIGRlcGVuZHMgb24gR1BJT0xJQiB8fCBDT01Q SUxFX1RFU1QgZGlmZiAtLWdpdCANCj4+IGEvZHJpdmVycy9od21vbi9NYWtlZmlsZSBiL2RyaXZl cnMvaHdtb24vTWFrZWZpbGUgaW5kZXgNCj4+IDU5ZTc4YmMyMTJjZi4uODAzMWFjZjU4OTM2IDEw MDY0NA0KPj4gLS0tIGEvZHJpdmVycy9od21vbi9NYWtlZmlsZQ0KPj4gKysrIGIvZHJpdmVycy9o d21vbi9NYWtlZmlsZQ0KPj4gQEAgLTE2NCw2ICsxNjQsNyBAQCBvYmotJChDT05GSUdfU0VOU09S U19QV01fRkFOKSAgICAgKz0gcHdtLWZhbi5vDQo+PiAgICBvYmotJChDT05GSUdfU0VOU09SU19S QVNQQkVSUllQSV9IV01PTikgICAgICs9IHJhc3BiZXJyeXBpLWh3bW9uLm8NCj4+ICAgIG9iai0k KENPTkZJR19TRU5TT1JTX1MzQykgICArPSBzM2MtaHdtb24ubw0KPj4gICAgb2JqLSQoQ09ORklH X1NFTlNPUlNfU0JUU0kpICs9IHNidHNpX3RlbXAubw0KPj4gK29iai0kKENPTkZJR19TRU5TT1JT X1NCUk1JKSAgKz0gc2JybWkubw0KPj4gICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfU0NINTZYWF9D T01NT04pKz0gc2NoNTZ4eC1jb21tb24ubw0KPj4gICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfU0NI NTYyNykgICAgICAgKz0gc2NoNTYyNy5vDQo+PiAgICBvYmotJChDT05GSUdfU0VOU09SU19TQ0g1 NjM2KSAgICAgICArPSBzY2g1NjM2Lm8NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL3Ni cm1pLmMgYi9kcml2ZXJzL2h3bW9uL3Nicm1pLmMgbmV3IGZpbGUgDQo+PiBtb2RlIDEwMDY0NCBp bmRleCAwMDAwMDAwMDAwMDAuLmMzNTgyOTUxMzQ1OQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysr IGIvZHJpdmVycy9od21vbi9zYnJtaS5jDQo+PiBAQCAtMCwwICsxLDM5NCBAQA0KPj4gKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyDQo+PiArLyoNCj4+ICsgKiBz YnJtaS5jIC0gaHdtb24gZHJpdmVyIGZvciBhIFNCLVJNSSBtYWlsYm94DQo+PiArICogICAgICAg ICAgIGNvbXBsaWFudCBBTUQgU29DIGRldmljZS4NCj4+ICsgKg0KPj4gKyAqIENvcHlyaWdodCAo QykgMjAyMC0yMDIxIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4NCj4+ICsgKi8NCj4+ICsN Cj4+ICsjaW5jbHVkZSA8bGludXgvZXJyLmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L2h3bW9uLmg+ DQo+PiArI2luY2x1ZGUgPGxpbnV4L2kyYy5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+ DQo+PiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9tdXRl eC5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9vZl9k ZXZpY2UuaD4NCj4NCj4gSSBkb24ndCBpbW1lZGlhdGVseSBzZWUgd2h5IHRoaXMgaW5jbHVkZSBp cyBuZWVkZWQuDQo+DQo+PiArI2luY2x1ZGUgPGFzbS1nZW5lcmljL2lvY3RsLmg+DQo+DQo+IFRo aXMgbG9va3Mgd3JvbmcsIGFuZCBJIGRvbid0IGltbWVkaWF0ZWx5IHNlZSB3aHkgaXQgd291bGQg YmUgbmVlZGVkLg0KPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KPg0KPiBBbHBoYWJl dGljIGluY2x1ZGUgZmlsZSBvcmRlciwgcGxlYXNlLg0KPiBbbmF2ZWVuazpdIFN1cmUNCj4+ICsN Cj4+ICsvKiBEbyBub3QgYWxsb3cgc2V0dGluZyBuZWdhdGl2ZSBwb3dlciBsaW1pdCAqLyAjZGVm aW5lIA0KPj4gK1NCUk1JX1BXUl9NSU4NCj4+ICswDQo+PiArLyogTWFzayBmb3IgU3RhdHVzIFJl Z2lzdGVyIGJpdFsxXSAqLyAjZGVmaW5lIFNXX0FMRVJUX01BU0sgMHgyDQo+PiArDQo+DQo+IFBs ZWFzZSBhbHdheXMgdXNlDQo+DQo+ICNkZWZpbmU8c3BhY2U+REVGSU5JVElPTjx0YWI+dmFsdWUN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXg0KPg0KPj4gKy8qIFNvZnR3YXJlIElu dGVycnVwdCBmb3IgdHJpZ2dlcmluZyAqLw0KPj4gKyNkZWZpbmUgU1RBUlRfQ01EICAgIDB4ODAN Cj4+ICsjZGVmaW5lIFRSSUdHRVJfTUFJTEJPWCAgICAgIDB4MDENCj4+ICsNCj4+ICsvKg0KPj4g KyAqIFNCLVJNSSBzdXBwb3J0cyBzb2Z0IG1haWxib3ggc2VydmljZSByZXF1ZXN0IHRvIE1QMSAo cG93ZXIgDQo+PiArbWFuYWdlbWVudA0KPj4gKyAqIGZpcm13YXJlKSB0aHJvdWdoIFNCUk1JIGlu Ym91bmQvb3V0Ym91bmQgbWVzc2FnZSByZWdpc3RlcnMuDQo+PiArICogU0ItUk1JIG1lc3NhZ2Ug SURzDQo+PiArICovDQo+PiArZW51bSBzYnJtaV9tc2dfaWQgew0KPj4gKyAgICAgU0JSTUlfUkVB RF9QS0dfUFdSX0NPTlNVTVBUSU9OID0gMHgxLA0KPj4gKyAgICAgU0JSTUlfV1JJVEVfUEtHX1BX Ul9MSU1JVCwNCj4+ICsgICAgIFNCUk1JX1JFQURfUEtHX1BXUl9MSU1JVCwNCj4+ICsgICAgIFNC Uk1JX1JFQURfUEtHX01BWF9QV1JfTElNSVQsDQo+PiArfTsNCj4+ICsNCj4+ICsvKiBTQi1STUkg cmVnaXN0ZXJzICovDQo+PiArZW51bSBzYnJtaV9yZWcgew0KPj4gKyAgICAgU0JSTUlfQ1RSTCAg ICAgICAgICAgICAgPSAweDAxLA0KPj4gKyAgICAgU0JSTUlfU1RBVFVTLA0KPj4gKyAgICAgU0JS TUlfT1VUQk5ETVNHMCAgICAgICAgPSAweDMwLA0KPj4gKyAgICAgU0JSTUlfT1VUQk5ETVNHMSwN Cj4+ICsgICAgIFNCUk1JX09VVEJORE1TRzIsDQo+PiArICAgICBTQlJNSV9PVVRCTkRNU0czLA0K Pj4gKyAgICAgU0JSTUlfT1VUQk5ETVNHNCwNCj4+ICsgICAgIFNCUk1JX09VVEJORE1TRzUsDQo+ PiArICAgICBTQlJNSV9PVVRCTkRNU0c2LA0KPj4gKyAgICAgU0JSTUlfT1VUQk5ETVNHNywNCj4+ ICsgICAgIFNCUk1JX0lOQk5ETVNHMCwNCj4+ICsgICAgIFNCUk1JX0lOQk5ETVNHMSwNCj4+ICsg ICAgIFNCUk1JX0lOQk5ETVNHMiwNCj4+ICsgICAgIFNCUk1JX0lOQk5ETVNHMywNCj4+ICsgICAg IFNCUk1JX0lOQk5ETVNHNCwNCj4+ICsgICAgIFNCUk1JX0lOQk5ETVNHNSwNCj4+ICsgICAgIFNC Uk1JX0lOQk5ETVNHNiwNCj4+ICsgICAgIFNCUk1JX0lOQk5ETVNHNywNCj4+ICsgICAgIFNCUk1J X1NXX0lOVEVSUlVQVCwNCj4+ICt9Ow0KPj4gKw0KPj4gKy8qDQo+PiArICogRWFjaCBjbGllbnQg aGFzIHRoaXMgYWRkaXRpb25hbCBkYXRhICAqLw0KPg0KPiBQbGVhc2UgYmUgY29uc2lzdGVudCB3 aXRoIGNvbW1lbnRzOiBUaGlzIGRvZXMgbm90IHJlYWxseSBuZWVkIHRvIGJlIGEgbXVsdGktbGlu ZSBjb21tZW50LiBXaGlsZSB0aGF0IGRvZXMgbm90IHJlYWxseSBtYXR0ZXIsIHlvdSB1c2UgYSBz aW5nbGUtbGluZSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0cnVjdHVyZS4gUGxlYXNl IG1ha2UgaXQgYm90aCBlaXRoZXIgc2luZ2xlLWxpbmUgb3IgbXVsdGktbGluZS4NCj4NCj4+ICtz dHJ1Y3Qgc2JybWlfZGF0YSB7DQo+PiArICAgICBzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50Ow0K Pj4gKyAgICAgc3RydWN0IG11dGV4IGxvY2s7DQo+PiArfTsNCj4+ICsNCj4+ICsvKiBNYWlsYm94 IG1lc3NhZ2UgZGF0YSBmb3JtYXQgKi8NCj4+ICt1bmlvbiBtYWlsYm94X3dvcmQgew0KPj4gKyAg ICAgdTggYnl0ZXNbNF07DQo+PiArICAgICB1MzIgdmFsdWU7DQo+DQo+IFRoYXQgc3Ryb25nbHkg c3VnZ2VzdHMgdGhhdCB0aGUgZHJpdmVyIHdpbGwgb25seSB3b3JrIG9uIGVpdGhlciBsaXR0bGUt ZW5kaWFuIG9yIGJpZy1lbmRpYW4gc3lzdGVtcywgZGVwZW5kaW5nIG9uIHRoZSBieXRlIG9yZGVy IG9mIHRyYW5zZmVycy4gUGxlYXNlIHJlc3RyaWN0IGl0IGFjY29yZGluZ2x5Lg0KPg0KPj4gK307 DQo+PiArDQo+PiArc3RydWN0IHNicm1pX21haWxib3hfbXNnIHsNCj4+ICsgICAgIHU4IGNtZDsN Cj4+ICsgICAgIGJvb2wgcmVhZDsNCj4+ICsgICAgIHVuaW9uIG1haWxib3hfd29yZCBkYXRhX2lu Ow0KPj4gKyAgICAgdW5pb24gbWFpbGJveF93b3JkIGRhdGFfb3V0Ow0KPj4gK307DQo+PiArDQo+ PiArc3RhdGljIGludCBwcmludF9tYWlsYm94X2Vycm9yKHN0cnVjdCBzYnJtaV9kYXRhICpkYXRh KSB7DQo+DQo+IE5pdD4gTWFueSBmdW5jdGlvbnMgb25seSB1c2UgZGF0YT5jbGllbnQgYW5kLCBp biBzb21lIGNhc2VzLCANCj4gTml0PiBkZXJlZmVyZW5jZSBpdA0KPiBzZXZlcmFsIHRpbWVzLiBJ dCBtaWdodCBiZSBlYXNpZXIgdG8ganVzdCBwYXNzICdjbGllbnQnLg0KPiBbbmF2ZWVuazpdIFN1 cmUNCj4NCj4+ICsgICAgIGludCBzdGF0dXM7DQo+PiArDQo+PiArICAgICAvKiBNYWlsYm94IGVy cm9yIGNvZGUgd2lsbCBiZSB3cml0dGVuIGJ5IEZpcm13YXJlIGluDQo+PiArICAgICAgKiBTQlJN STo6T3V0Qm5kTXNnX2luc3Q3IChTQlJNSV94MzcpDQo+PiArICAgICAgKi8NCj4NCj4gLyoNCj4g ICAgKiBQbGVhc2UgdXNlIHN0YW5kYXJkIG11bHRpLWxpbmUgY29tbWVudHMuIEFwcGxpZXMgdG8g ZW50aXJlIGRyaXZlci4NCj4gICAgKi8NCj4gW25hdmVlbms6XSBTdXJlDQo+DQo+PiArICAgICBz dGF0dXMgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoZGF0YS0+Y2xpZW50LCBTQlJNSV9PVVRC TkRNU0c3KTsNCj4+ICsgICAgIGlmIChzdGF0dXMgPCAwKSB7DQo+PiArICAgICAgICAgICAgIHBy X2VycigiU01CVVMgdHJhbnNsYXRpb24gZmFpbGVkXG4iKTsNCj4+ICsgICAgICAgICAgICAgcmV0 dXJuIHN0YXR1czsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICsgICAgIHN3aXRjaCAoc3RhdHVzKSB7 DQo+PiArICAgICBjYXNlIDB4MDogICAgICAgLyogU3VjY2VzcyAqLw0KPj4gKyAgICAgICAgICAg ICBicmVhazsNCj4+ICsgICAgIGNhc2UgMHgxOg0KPj4gKyAgICAgICAgICAgICBwcl9lcnIoIk1h aWxib3ggbWVzc2FnZSBjb21tYW5kIGlzIGFib3J0ZWRcbiIpOw0KPj4gKyAgICAgICAgICAgICBi cmVhazsNCj4+ICsgICAgIGNhc2UgMHgyOg0KPj4gKyAgICAgICAgICAgICBwcl9lcnIoIlVua25v d24gbWFpbGJveCBtZXNzYWdlXG4iKTsNCj4+ICsgICAgICAgICAgICAgYnJlYWs7DQo+PiArICAg ICBjYXNlIDB4MzoNCj4+ICsgICAgICAgICAgICAgcHJfZXJyKCJJbnZhbGlkIGNvcmUgaXMgc3Bl Y2lmaWVkIGluIG1haWxib3ggbWVzc2FnZSBwYXJhbWV0ZXJzXG4iKTsNCj4+ICsgICAgICAgICAg ICAgYnJlYWs7DQo+PiArICAgICBkZWZhdWx0Og0KPj4gKyAgICAgICAgICAgICBwcl9lcnIoIlVu a25vd24gRXJyb3JcbiIpOw0KPj4gKyAgICAgfQ0KPg0KPiBJcyB0aGlzIG5vaXNlIG5lY2Vzc2Fy eSA/IEkgYW0gY29uY2VybmVkIHRoYXQsIGlmIGl0IG9jY3VycywgaXQgd291bGQgYmUgcGVyc2lz dGVudCBhbmQgZmlsbCB1cCB0aGUga2VybmVsIGxvZyB3aXRoIG5vaXNlLg0KPiBbbmF2ZWVuazpd IFRoZXNlIGFyZSBmaXJtd2FyZSBkZWZpbmVkIGVycm9yIGNvZGVzLCBjYW4gd2UgY2hhbmdlIHRo ZW0gdG8gcHJfZGVidWcgYW5kIGtlZXAgdGhlbSA/DQo+DQoNCnByX2RlYnVnIGlzIG9rLCBidXQg Li4uDQoNCj4+ICsNCj4+ICsgICAgIHJldHVybiBzdGF0dXM7DQo+DQo+IEVycm9yIGNvZGVzIGFy ZSBzdXBwb3NlZCB0byBiZSBuZWdhdGl2ZSBhbmQgc3RhbmRhcmQgTGludXggZXJyb3IgY29kZXMu DQo+IFBsZWFzZSBjb252ZXJ0IHRoZSBhYm92ZSBlcnJvcnMgdG8gc3RhbmRhcmQgTGludXggZXJy b3IgY29kZXMuDQo+DQp5b3UnbGwgc3RpbGwgbmVlZCB0byBjb252ZXJ0IHRoZSBlcnJvciBjb2Rl cyB0byBzdGFuZGFyZCBlcnJvciBjb2Rlcy4NCg0KVGhpcyBpcyB0aGUgb25seSBxdWVzdGlvbiBJ IGZvdW5kLiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgSSBtaXNzZWQgc29tZXRoaW5nLg0KDQpUaGFu a3MsDQpHdWVudGVyDQoNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBzYnJtaV9lbmFibGVf YWxlcnQoc3RydWN0IHNicm1pX2RhdGEgKmRhdGEpIHsNCj4+ICsgICAgIGludCBjdHJsOw0KPj4g Kw0KPj4gKyAgICAgLyogRW5hYmxlIHRoZSBTQi1STUkgU29mdHdhcmUgYWxlcnQgc3RhdHVzDQo+ PiArICAgICAgKiBieSB3cml0aW5nIDAgdG8gYml0IDQgb2YgQ29udHJvbCByZWdpc3RlcigweDEp DQo+PiArICAgICAgKi8NCj4+ICsgICAgIGN0cmwgPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEo ZGF0YS0+Y2xpZW50LCBTQlJNSV9DVFJMKTsNCj4+ICsgICAgIGlmIChjdHJsIDwgMCkNCj4+ICsg ICAgICAgICAgICAgcmV0dXJuIGN0cmw7DQo+PiArDQo+PiArICAgICBpZiAoY3RybCAmIDB4MTAp IHsNCj4+ICsgICAgICAgICAgICAgY3RybCAmPSB+MHgxMDsNCj4+ICsgICAgICAgICAgICAgcmV0 dXJuIGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoZGF0YS0+Y2xpZW50LA0KPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQlJNSV9DVFJMLCBjdHJsKTsN Cj4+ICsgICAgIH0NCj4+ICsNCj4+ICsgICAgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICtz dGF0aWMgaW50IHJtaV9tYWlsYm94X3hmZXIoc3RydWN0IHNicm1pX2RhdGEgKmRhdGEsDQo+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzYnJtaV9tYWlsYm94X21zZyAqbXNnKSB7 DQo+PiArICAgICB1bmlvbiBtYWlsYm94X3dvcmQgb3V0cHV0LCBpbnB1dDsNCj4+ICsgICAgIGlu dCBpLCBlcnIgPSAwLCByZXRyeSA9IDEwOw0KPg0KPiBJbml0aWFsaXppbmcgJ2VycicgaXMgdW5u ZWNlc3NhcnkuDQo+DQo+PiArICAgICBpbnQgc3dfc3RhdHVzOw0KPj4gKw0KPj4gKyAgICAgbXV0 ZXhfbG9jaygmZGF0YS0+bG9jayk7DQo+PiArDQo+PiArICAgICBlcnIgPSBzYnJtaV9lbmFibGVf YWxlcnQoZGF0YSk7DQo+PiArICAgICBpZiAoZXJyIDwgMCkNCj4+ICsgICAgICAgICAgICAgZ290 byBleGl0X3VubG9jazsNCj4+ICsNCj4+ICsgICAgIC8qIEluZGljYXRlIGZpcm13YXJlIGEgY29t bWFuZCBpcyB0byBiZSBzZXJ2aWNlZCAqLw0KPj4gKyAgICAgZXJyID0gaTJjX3NtYnVzX3dyaXRl X2J5dGVfZGF0YShkYXRhLT5jbGllbnQsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNCUk1JX0lOQk5ETVNHNywgU1RBUlRfQ01EKTsNCj4+ICsgICAgIGlmIChlcnIg PCAwKQ0KPj4gKyAgICAgICAgICAgICBnb3RvIGV4aXRfdW5sb2NrOw0KPj4gKw0KPj4gKyAgICAg LyogV3JpdGUgdGhlIGNvbW1hbmQgdG8gU0JSTUk6OkluQm5kTXNnX2luc3QwICovDQo+PiArICAg ICBlcnIgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGRhdGEtPmNsaWVudCwNCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0JSTUlfSU5CTkRNU0cwLCBtc2ctPmNt ZCk7DQo+PiArICAgICBpZiAoZXJyIDwgMCkNCj4+ICsgICAgICAgICAgICAgZ290byBleGl0X21v ZDsNCj4+ICsNCj4+ICsgICAgIC8qDQo+PiArICAgICAgKiBGb3IgYm90aCByZWFkIGFuZCB3cml0 ZSB0aGUgaW5pdGlhdG9yIChCTUMpIHdyaXRlcw0KPj4gKyAgICAgICogQ29tbWFuZCBEYXRhIElu WzMxOjBdIHRvIFNCUk1JOjpJbkJuZE1zZ19pbnN0WzQ6MV0NCj4+ICsgICAgICAqIFNCUk1JX3gz QyhNU0IpOlNCUk1JX3gzOShMU0IpDQo+PiArICAgICAgKi8NCj4+ICsgICAgIGlucHV0ID0gbXNn LT5kYXRhX2luOw0KPj4gKyAgICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgew0KPg0KPiBUaGlz IHdyaXRlcyAzIGJ5dGVzLiBJcyB0aGF0IG9uIHB1cnBvc2UgPyBJZiBzbyBwbGVhc2UgZXhwbGFp biBzaW5jZSB0aGUgYWJvdmUgc3VnZ2VzdHMgdGhhdCA0IGJ5dGVzIHNob3VsZCBiZSB3cml0dGVu Lg0KPiBbbmF2ZWVuazpdIHRoaXMgd2FzIGEgbWlzdGFrZSwgaXQgaGFzIHRvIGJlIDQuDQo+DQo+ PiArICAgICAgICAgICAgIGVyciA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoZGF0YS0+Y2xp ZW50LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChT QlJNSV9JTkJORE1TRzEgKyBpKSwNCj4NCj4gVW5uZWNlc3NhcnkgKCApDQo+DQo+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQuYnl0ZXNbaV0pOw0K Pj4gKyAgICAgICAgICAgICBpZiAoZXJyIDwgMCkNCj4+ICsgICAgICAgICAgICAgICAgICAgICBn b3RvIGV4aXRfbW9kOw0KPj4gKyAgICAgfQ0KPj4gKw0KPj4gKyAgICAgLyoNCj4+ICsgICAgICAq IFdyaXRlIDB4MDEgdG8gU0JSTUk6OlNvZnR3YXJlSW50ZXJydXB0IHRvIG5vdGlmeSBmaXJtd2Fy ZSB0bw0KPj4gKyAgICAgICogcGVyZm9ybSB0aGUgcmVxdWVzdGVkIHJlYWQgb3Igd3JpdGUgY29t bWFuZA0KPj4gKyAgICAgICovDQo+PiArICAgICBlcnIgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9k YXRhKGRhdGEtPmNsaWVudCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0JSTUlfU1dfSU5URVJSVVBULCBUUklHR0VSX01BSUxCT1gpOw0KPj4gKyAgICAgaWYgKGVy ciA8IDApDQo+PiArICAgICAgICAgICAgIGdvdG8gZXhpdF9tb2Q7DQo+PiArDQo+PiArICAgICAv Kg0KPj4gKyAgICAgICogRmlybXdhcmUgd2lsbCB3cml0ZSBTQlJNSTo6U3RhdHVzW1N3QWxlcnRT dHNdPTEgdG8gZ2VuZXJhdGUNCj4+ICsgICAgICAqIGFuIEFMRVJUIChpZiBlbmFibGVkKSB0byBp bml0aWF0b3IgKEJNQykgdG8gaW5kaWNhdGUgY29tcGxldGlvbg0KPj4gKyAgICAgICogb2YgdGhl IHJlcXVlc3RlZCBjb21tYW5kDQo+PiArICAgICAgKi8NCj4+ICsgICAgIGRvIHsNCj4+ICsgICAg ICAgICAgICAgc3dfc3RhdHVzID0gaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGRhdGEtPmNsaWVu dCwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNCUk1JX1NUQVRVUyk7DQo+PiArICAgICAgICAgICAgIGlmIChzd19zdGF0dXMgPCAwKSB7DQo+ PiArICAgICAgICAgICAgICAgICAgICAgZXJyID0gc3dfc3RhdHVzOw0KPj4gKyAgICAgICAgICAg ICAgICAgICAgIGdvdG8gZXhpdF9tb2Q7DQo+PiArICAgICAgICAgICAgIH0NCj4+ICsgICAgICAg ICAgICAgaWYgKHN3X3N0YXR1cyAmIFNXX0FMRVJUX01BU0spDQo+PiArICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQo+PiArICAgICAgICAgICAgIHVzbGVlcF9yYW5nZSg1MCwgMTAwKTsNCj4+ ICsgICAgIH0gd2hpbGUgKHJldHJ5LS0pOw0KPj4gKw0KPj4gKyAgICAgaWYgKHJldHJ5IDwgMCkg ew0KPj4gKyAgICAgICAgICAgICBwcl9lcnIoIkZpcm13YXJlIGZhaWwgdG8gaW5kaWNhdGUgY29t bWFuZCANCj4+ICsgY29sbXBsZXRpb25cbiIpOw0KPg0KPiBjb21wbGV0aW9uDQo+DQo+PiArICAg ICAgICAgICAgIGVyciA9IC0xOw0KPj4gKyAgICAgICAgICAgICBnb3RvIGV4aXRfbW9kOw0KPj4g KyAgICAgfQ0KPj4gKw0KPj4gKyAgICAgLyoNCj4+ICsgICAgICAqIEZvciBhIHJlYWQgb3BlcmF0 aW9uLCB0aGUgaW5pdGlhdG9yIChCTUMpIHJlYWRzIHRoZSBmaXJtd2FyZSByZXNwb25zZQ0KPj4g KyAgICAgICogQ29tbWFuZCBEYXRhIE91dFszMTowXSBmcm9tIFNCUk1JOjpPdXRCbmRNc2dfaW5z dFs0OjFdDQo+PiArICAgICAgKiB7U0JSTUlfeDM0KE1TQik6U0JSTUlfeDMxKExTQil9Lg0KPj4g KyAgICAgICovDQo+PiArICAgICBpZiAobXNnLT5yZWFkKSB7DQo+PiArICAgICAgICAgICAgIGZv ciAoaSA9IDA7IGkgPCA0OyBpKyspIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICBvdXRwdXQu Ynl0ZXNbaV0gPSANCj4+ICsgaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGRhdGEtPmNsaWVudCwN Cj4+ICsNCj4+ICsgKFNCUk1JX09VVEJORE1TRzEgKyBpKSk7DQo+DQo+IFVubmVjZXNzYXJ5ICgp Lg0KPg0KPj4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChvdXRwdXQuYnl0ZXNbaV0gPCAwKSB7 DQo+DQo+IG91dHB1dC5ieXRlcyBpcyBkZWZpbmVkIGFzIHU4LiBUaGlzIHdpbGwgbm90IGNhdGNo IGVycm9ycy4NCj4NCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyciA9IG91dHB1 dC5ieXRlc1tpXTsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdF9t b2Q7DQo+PiArICAgICAgICAgICAgICAgICAgICAgfQ0KPj4gKyAgICAgICAgICAgICB9DQo+PiAr ICAgICB9DQo+PiArICAgICBtc2ctPmRhdGFfb3V0ID0gb3V0cHV0Ow0KPj4gKw0KPj4gKyAgICAg LyoNCj4+ICsgICAgICAqIEJNQyBtdXN0IHdyaXRlIDEnYjEgdG8gU0JSTUk6OlN0YXR1c1tTd0Fs ZXJ0U3RzXSB0byBjbGVhciB0aGUNCj4+ICsgICAgICAqIEFMRVJUIHRvIGluaXRpYXRvcg0KPj4g KyAgICAgICovDQo+PiArICAgICBlcnIgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGRhdGEt PmNsaWVudCwgU0JSTUlfU1RBVFVTLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3dfc3RhdHVzIHwgU1dfQUxFUlRfTUFTSykpOw0KPg0KPiBVbm5lY2Vzc2FyeSAo KS4NCj4NCj4+ICsNCj4+ICtleGl0X21vZDoNCj4+ICsgICAgIGlmIChlcnIgPCAwKQ0KPj4gKyAg ICAgICAgICAgICBwcl9lcnIoIlNNQlVTIHRyYW5zbGF0aW9uIGZhaWxlZFxuIik7DQo+PiArICAg ICBlbHNlDQo+PiArICAgICAgICAgICAgIGVyciA9IHByaW50X21haWxib3hfZXJyb3IoZGF0YSk7 DQo+PiArZXhpdF91bmxvY2s6DQo+PiArICAgICBtdXRleF91bmxvY2soJmRhdGEtPmxvY2spOw0K Pj4gKyAgICAgcmV0dXJuIGVycjsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBzYnJtaV9y ZWFkKHN0cnVjdCBkZXZpY2UgKmRldiwgZW51bSBod21vbl9zZW5zb3JfdHlwZXMgdHlwZSwNCj4+ ICsgICAgICAgICAgICAgICAgICAgdTMyIGF0dHIsIGludCBjaGFubmVsLCBsb25nICp2YWwpIHsN Cj4+ICsgICAgIHN0cnVjdCBzYnJtaV9kYXRhICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7 DQo+PiArICAgICBzdHJ1Y3Qgc2JybWlfbWFpbGJveF9tc2cgbXNnID0geyAwIH07DQo+PiArICAg ICBpbnQgcmV0Ow0KPj4gKw0KPj4gKyAgICAgaWYgKHR5cGUgIT0gaHdtb25fcG93ZXIpDQo+PiAr ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gKw0KPj4gKyAgICAgbXNnLnJlYWQgPSB0 cnVlOw0KPj4gKyAgICAgc3dpdGNoIChhdHRyKSB7DQo+PiArICAgICBjYXNlIGh3bW9uX3Bvd2Vy X2lucHV0Og0KPj4gKyAgICAgICAgICAgICBtc2cuY21kID0gU0JSTUlfUkVBRF9QS0dfUFdSX0NP TlNVTVBUSU9OOw0KPj4gKyAgICAgICAgICAgICByZXQgPSBybWlfbWFpbGJveF94ZmVyKGRhdGEs ICZtc2cpOw0KPj4gKyAgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgIGNhc2UgaHdtb25fcG93 ZXJfY2FwOg0KPj4gKyAgICAgICAgICAgICBtc2cuY21kID0gU0JSTUlfUkVBRF9QS0dfUFdSX0xJ TUlUOw0KPj4gKyAgICAgICAgICAgICByZXQgPSBybWlfbWFpbGJveF94ZmVyKGRhdGEsICZtc2cp Ow0KPj4gKyAgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgIGNhc2UgaHdtb25fcG93ZXJfY2Fw X21heDoNCj4+ICsgICAgICAgICAgICAgbXNnLmNtZCA9IFNCUk1JX1JFQURfUEtHX01BWF9QV1Jf TElNSVQ7DQo+PiArICAgICAgICAgICAgIHJldCA9IHJtaV9tYWlsYm94X3hmZXIoZGF0YSwgJm1z Zyk7DQo+PiArICAgICAgICAgICAgIGJyZWFrOw0KPj4gKyAgICAgZGVmYXVsdDoNCj4+ICsgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAgICB9DQo+PiArICAgICAvKg0KPj4gKyAg ICAgICogaHdtb24gcG93ZXIgYXR0cmlidXRlcyBhcmUgaW4gbWljcm9XYXR0DQo+PiArICAgICAg Ki8NCj4+ICsgICAgICp2YWwgPSAobG9uZyltc2cuZGF0YV9vdXQudmFsdWUgKiAxMDAwOw0KPj4g KyAgICAgcmV0dXJuIHJldDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBzYnJtaV93cml0 ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGVudW0gaHdtb25fc2Vuc29yX3R5cGVzIHR5cGUsDQo+PiAr ICAgICAgICAgICAgICAgICAgICB1MzIgYXR0ciwgaW50IGNoYW5uZWwsIGxvbmcgdmFsKSB7DQo+ PiArICAgICBzdHJ1Y3Qgc2JybWlfZGF0YSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0K Pj4gKyAgICAgc3RydWN0IHNicm1pX21haWxib3hfbXNnIG1zZyA9IHsgMCB9Ow0KPj4gKw0KPj4g KyAgICAgaWYgKHR5cGUgIT0gaHdtb25fcG93ZXIgJiYgYXR0ciAhPSBod21vbl9wb3dlcl9jYXAp DQo+PiArICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gKyAgICAgLyoNCj4+ICsgICAg ICAqIGh3bW9uIHBvd2VyIGF0dHJpYnV0ZXMgYXJlIGluIG1pY3JvV2F0dA0KPj4gKyAgICAgICog bWFpbGJveCByZWFkL3dyaXRlIGlzIGluIG1XYXR0DQo+PiArICAgICAgKi8NCj4+ICsgICAgIHZh bCAvPSAxMDAwOw0KPj4gKw0KPj4gKyAgICAgbXNnLmNtZCA9IFNCUk1JX1JFQURfUEtHX01BWF9Q V1JfTElNSVQ7DQo+PiArICAgICBtc2cuZGF0YV9pbi52YWx1ZSA9IDA7DQo+PiArICAgICBtc2cu cmVhZCA9IHRydWU7DQo+PiArICAgICBybWlfbWFpbGJveF94ZmVyKGRhdGEsICZtc2cpOw0KPj4g Kw0KPj4gKyAgICAgdmFsID0gY2xhbXBfdmFsKHZhbCwgU0JSTUlfUFdSX01JTiwgbXNnLmRhdGFf b3V0LnZhbHVlKTsNCj4+ICsNCj4+ICsgICAgIG1zZy5jbWQgPSBTQlJNSV9XUklURV9QS0dfUFdS X0xJTUlUOw0KPj4gKyAgICAgbXNnLmRhdGFfaW4udmFsdWUgPSB2YWw7DQo+PiArICAgICBtc2cu cmVhZCA9IGZhbHNlOw0KPj4gKw0KPj4gKyAgICAgcmV0dXJuIHJtaV9tYWlsYm94X3hmZXIoZGF0 YSwgJm1zZyk7IH0NCj4+ICsNCj4+ICtzdGF0aWMgdW1vZGVfdCBzYnJtaV9pc192aXNpYmxlKGNv bnN0IHZvaWQgKmRhdGEsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGh3 bW9uX3NlbnNvcl90eXBlcyB0eXBlLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dTMyIGF0dHIsIGludCBjaGFubmVsKSB7DQo+PiArICAgICBzd2l0Y2ggKHR5cGUpIHsNCj4+ICsg ICAgIGNhc2UgaHdtb25fcG93ZXI6DQo+PiArICAgICAgICAgICAgIHN3aXRjaCAoYXR0cikgew0K Pj4gKyAgICAgICAgICAgICBjYXNlIGh3bW9uX3Bvd2VyX2lucHV0Og0KPj4gKyAgICAgICAgICAg ICBjYXNlIGh3bW9uX3Bvd2VyX2NhcF9tYXg6DQo+PiArICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIDA0NDQ7DQo+PiArICAgICAgICAgICAgIGNhc2UgaHdtb25fcG93ZXJfY2FwOg0KPj4gKyAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAwNjQ0Ow0KPj4gKyAgICAgICAgICAgICB9DQo+PiAr ICAgICAgICAgICAgIGJyZWFrOw0KPj4gKyAgICAgZGVmYXVsdDoNCj4+ICsgICAgICAgICAgICAg YnJlYWs7DQo+PiArICAgICB9DQo+PiArICAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiAr c3RhdGljIGNvbnN0IHN0cnVjdCBod21vbl9jaGFubmVsX2luZm8gKnNicm1pX2luZm9bXSA9IHsN Cj4+ICsgICAgIEhXTU9OX0NIQU5ORUxfSU5GTyhwb3dlciwNCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICBIV01PTl9QX0lOUFVUIHwgSFdNT05fUF9DQVAgfCBIV01PTl9QX0NBUF9NQVgpLA0K Pj4gKyAgICAgTlVMTA0KPj4gK307DQo+PiArDQo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBod21v bl9vcHMgc2JybWlfaHdtb25fb3BzID0gew0KPj4gKyAgICAgLmlzX3Zpc2libGUgPSBzYnJtaV9p c192aXNpYmxlLA0KPj4gKyAgICAgLnJlYWQgPSBzYnJtaV9yZWFkLA0KPj4gKyAgICAgLndyaXRl ID0gc2JybWlfd3JpdGUsDQo+PiArfTsNCj4+ICsNCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGh3 bW9uX2NoaXBfaW5mbyBzYnJtaV9jaGlwX2luZm8gPSB7DQo+PiArICAgICAub3BzID0gJnNicm1p X2h3bW9uX29wcywNCj4+ICsgICAgIC5pbmZvID0gc2JybWlfaW5mbywNCj4+ICt9Ow0KPj4gKw0K Pj4gK3N0YXRpYyBpbnQgc2JybWlfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwNCj4+ ICsgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppZCkgew0K Pj4gKyAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJmNsaWVudC0+ZGV2Ow0KPj4gKyAgICAgc3Ry dWN0IGRldmljZSAqaHdtb25fZGV2Ow0KPj4gKyAgICAgc3RydWN0IHNicm1pX2RhdGEgKmRhdGE7 DQo+PiArDQo+PiArICAgICBpZiAoIWkyY19jaGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRh cHRlciwgSTJDX0ZVTkNfSTJDKSkgew0KPj4gKyAgICAgICAgICAgICBkZXZfZXJyKCZjbGllbnQt PmRldiwgImFkYXB0ZXIgZG9lcyBub3Qgc3VwcG9ydCB0cnVlIA0KPj4gKyBJMkNcbiIpOw0KPg0K PiBXaHkgd291bGQgdGhhdCBtYXR0ZXI/IEl0IG9ubHkgdXNlcyBTTUJ1cyBmdW5jdGlvbnMuDQo+ IFtuYXZlZW5rOl0geWVzLCB3aWxsIHJlbW92ZSB0aGlzLg0KPg0KPj4gKyAgICAgICAgICAgICBy ZXR1cm4gLUVOT0RFVjsNCj4+ICsgICAgIH0NCj4+ICsNCj4+ICsgICAgIGRhdGEgPSBkZXZtX2t6 YWxsb2MoZGV2LCBzaXplb2Yoc3RydWN0IHNicm1pX2RhdGEpLCBHRlBfS0VSTkVMKTsNCj4+ICsg ICAgIGlmICghZGF0YSkNCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+PiArDQo+ PiArICAgICBkYXRhLT5jbGllbnQgPSBjbGllbnQ7DQo+PiArICAgICBtdXRleF9pbml0KCZkYXRh LT5sb2NrKTsNCj4+ICsNCj4+ICsgICAgIGh3bW9uX2RldiA9IGRldm1faHdtb25fZGV2aWNlX3Jl Z2lzdGVyX3dpdGhfaW5mbyhkZXYsDQo+PiArIGNsaWVudC0+bmFtZSwgZGF0YSwNCj4+ICsNCj4+ ICsgJnNicm1pX2NoaXBfaW5mbywgTlVMTCk7DQo+PiArDQo+PiArICAgICByZXR1cm4gUFRSX0VS Ul9PUl9aRVJPKGh3bW9uX2Rldik7IH0NCj4+ICsNCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGky Y19kZXZpY2VfaWQgc2JybWlfaWRbXSA9IHsNCj4+ICsgICAgIHsic2JybWkiLCAwfSwNCj4+ICsg ICAgIHt9DQo+PiArfTsNCj4+ICtNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgc2JybWlfaWQpOw0K Pj4gKw0KPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIF9fbWF5YmVfdW51c2Vk IHNicm1pX29mX21hdGNoW10gPSB7DQo+PiArICAgICB7DQo+PiArICAgICAgICAgICAgIC5jb21w YXRpYmxlID0gImFtZCxzYnJtaSIsDQo+PiArICAgICB9LA0KPj4gKyAgICAgeyB9LA0KPj4gK307 DQo+PiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc2JybWlfb2ZfbWF0Y2gpOw0KPj4gKw0KPj4g K3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBzYnJtaV9kcml2ZXIgPSB7DQo+PiArICAgICAuY2xh c3MgPSBJMkNfQ0xBU1NfSFdNT04sDQo+PiArICAgICAuZHJpdmVyID0gew0KPj4gKyAgICAgICAg ICAgICAubmFtZSA9ICJzYnJtaSIsDQo+PiArICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9 IG9mX21hdGNoX3B0cihzYnJtaV9vZl9tYXRjaCksDQo+PiArICAgICB9LA0KPj4gKyAgICAgLnBy b2JlID0gc2JybWlfcHJvYmUsDQo+PiArICAgICAuaWRfdGFibGUgPSBzYnJtaV9pZCwNCj4+ICt9 Ow0KPj4gKw0KPj4gK21vZHVsZV9pMmNfZHJpdmVyKHNicm1pX2RyaXZlcik7DQo+PiArDQo+PiAr TU9EVUxFX0FVVEhPUigiQWtzaGF5IEd1cHRhIDxha3NoYXkuZ3VwdGFAYW1kLmNvbT4iKTsgDQo+ PiArTU9EVUxFX0RFU0NSSVBUSU9OKCJId21vbiBkcml2ZXIgZm9yIEFNRCBTQi1STUkgZW11bGF0 ZWQgc2Vuc29yIik7IA0KPj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCj4gW25hdmVlbms6XSBU aGFuayB5b3UgZm9yIHlvdXIgY29tbWVudHMsIHdlIHdpbGwgYWRkcmVzcyB5b3VyIGNvbW1lbnRz IGFuZCBzdWJtaXQgdjIgc29vbi4NCj4+DQo+IFtuYXZlZW5rOl0NCj4gUmVnYXJkcywNCj4gTmF2 ZWVuaw0KPg0K