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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C845C433EF for ; Tue, 14 Jun 2022 07:32:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354603AbiFNHcx (ORCPT ); Tue, 14 Jun 2022 03:32:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354557AbiFNHcw (ORCPT ); Tue, 14 Jun 2022 03:32:52 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0582617E0E; Tue, 14 Jun 2022 00:32:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1655191970; x=1686727970; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=TOtIzRiWPPZjuRv2kWjuiQ5s0/C/zak331RlOyFVykk=; b=ebBP85SgRYPpeJNXzpk6DSHlSfkHsCmo0dOKEPB01r171AqA3dkHHfCq ufd71Ncux3YN5oMSggnoWZBpULXhiQ4ehxkftMdstKZ2RZWh3viTfj1PO UEi7EW9mfbPgD6z/CNGNzedNj/mIKgpXWaZXSGxkuWUezaKKNBdsHkKz7 SW8OY17xdi+vAqpTiwj54aEL3otOi+/97monbe1v1Q1I0Fng5yN5U/yct q3bDASi0IO81gWXZrE3F0JCtu5mLbl7mlooH4RmUiamZd3bNtRi092TfT t/LC3PfaihG5ZCZx8FnyTG+MtMD2H7UweofkUTbtuKrcTJpot/aw6RiyS g==; X-IronPort-AV: E=Sophos;i="5.91,299,1647327600"; d="scan'208";a="168007707" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 14 Jun 2022 00:32:48 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex04.mchp-main.com (10.10.85.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Tue, 14 Jun 2022 00:32:46 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Tue, 14 Jun 2022 00:32:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tu/wTSOI9qBAL/S6OvlwvywAfCR08QNT2Wm+6HVuE+5pfWsn93+8IjGRz6bnXWMJzEsOHVSBdVig3xRY2Dc1FFKynfeDDGnF+dvCMO5ZsZYHtnPPnP9rd8TNjXVMzkoirAUnynOHfNV8Ap3g4IGe7JEvjgjgxHhI21DGkhcGXfM8EvIVcsvDnf73oYtRKH00bm0Z+me75o8CjFL6J3mX4vdj3MrY/5H5Wwu7lgtI5krBDs+lbyHBK2h9+EBvJPI9sXFCQ2vuGFVh8U/eG855N0jGNUrj6g/fLNEiPUAgZGySwMQ8JF0PwykGint+fL8jdMxwk2xkB1cVf6hBnM3g9A== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TOtIzRiWPPZjuRv2kWjuiQ5s0/C/zak331RlOyFVykk=; b=Hv2GTkZl55nwcui+gfU+jiDkpgR3tuofw050dOFADgaSHNOb2nuUZdTTk7C4h3Dug+3YczLMf+F1y2jPCstQzHcbbPJ0uvDe2odt5kEOhs3tFm+2hBa5kGSyR6ddEg1FYWx7QLSGLJD8dXurGh0QB+aJVxGZyA/3TLKfIEzKWpwPkG9BaPC83DFKJBabmddCi3cKeU7WRYWOEqQKDwU3kph6H/0Q2mGzleHy0yOrwDSleuvBJ1WboE6r8S/YiYu0i9gVwxgGRtusqm5v6kRvqohtE1TejZbbHK6Df/cxDmcXHK2TRRtsGhUwhCzWgeCXuyfrNb5ZavC2V42B8wqQGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TOtIzRiWPPZjuRv2kWjuiQ5s0/C/zak331RlOyFVykk=; b=kDuMuOX+fguBYPnDh+ABadt9EogzaXiqu5WeLrq+BxIt6f4wml4EPk/TqpxmgemER/B1c2/UjwA5qNCaaReUILPC7WAVoSBWoYhW3mFcCxYQ6MQ0PP8HEfMs+NSqxtoBvYekWlhEFjUy1wYUl3fCya9TKzNddVU0I9sIvllaWC0= Received: from CO1PR11MB5154.namprd11.prod.outlook.com (2603:10b6:303:99::15) by SA1PR11MB5778.namprd11.prod.outlook.com (2603:10b6:806:231::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12; Tue, 14 Jun 2022 07:32:41 +0000 Received: from CO1PR11MB5154.namprd11.prod.outlook.com ([fe80::699b:5c23:de4f:2bfa]) by CO1PR11MB5154.namprd11.prod.outlook.com ([fe80::699b:5c23:de4f:2bfa%4]) with mapi id 15.20.5332.022; Tue, 14 Jun 2022 07:32:40 +0000 From: To: , CC: , , , Subject: Re: [PATCH v5] i2c: add support for microchip fpga i2c controllers Thread-Topic: [PATCH v5] i2c: add support for microchip fpga i2c controllers Thread-Index: AQHYdxoPkKkfdywmQkemQDufRsMXu61OkzgA Date: Tue, 14 Jun 2022 07:32:40 +0000 Message-ID: References: <20220603071601.1849562-1-conor.dooley@microchip.com> In-Reply-To: <20220603071601.1849562-1-conor.dooley@microchip.com> Accept-Language: en-IE, en-US Content-Language: en-IE X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5087be27-8069-4570-b469-08da4dd81011 x-ms-traffictypediagnostic: SA1PR11MB5778:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: efFfralD5vxkQcHjY/GIxbVhPmowm9sSOpmalJ7/mjKFNBYCBHWtbcjiS1QRBw/gFzh1vgo6kYROIek0ApzTRvrvbsKZ6mdZvG0mhYXPwY//HktGqboyjIrNaZrHLUChmlUEtY+W1aDkfSxI9mAoRBJMQwMhCy194ji3zPYxejBdh+wfr828hgv2x1La9N2Uc1SHyGM4whtJLVUbgODqYzONTeYsICN1kmXe3AKsWA2YPT4sCWfqn1J7LlzjJ+YdP3rV5qYYtN6E3ZWgbo4sNUwsQpPJS1/DOpJkcJ2i/d76TJaT1tsP6wG0+pXy2CILbF+HhvapU6nTB2K6L9gODtuqGLVlWWFL8MX1264RRNy1pJB92QIkf3m/X9vK0KYIQElNP6NIuWGOFnBJPODZ9G9URxNStUMx64IuFuFmgRF3lwy6jg+q6O+UR7NQycF+hEnOeaNhok/ELwXhShs7GNTIWgNngfElRCS4aPzPjj7IdFSyfkWHbcw7xDBqcA70XcEN4kl13umqUbu5f2Ve28/pLAZGH6oPHM8TqY6hplfJIYu2sY6B+mWsS2q/97M3zTM/lVYqsQuuReU/+/rWKQQrWWEUHNN4UH29tLp5K979C0CFpszdXTJj1PVXa+USf1Y7PzEUFbeKF69874PDb3qBzLDI7ypZlkXNmtSWE+qowRii7Zx3l8N/4qdJbtrOtynGOUzbH8qTjpXnwKIdzO8y04XOCz8726psKl7CoQ6o0CysBATZMtE7+OMYfPnRoTS+PFQxSUFS8o87T37QIw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB5154.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(86362001)(31696002)(91956017)(4326008)(8936002)(64756008)(66946007)(5660300002)(83380400001)(53546011)(71200400001)(76116006)(38070700005)(8676002)(508600001)(2906002)(6506007)(30864003)(66556008)(66476007)(66446008)(36756003)(316002)(122000001)(6486002)(186003)(31686004)(26005)(107886003)(54906003)(110136005)(2616005)(6512007)(38100700002)(43740500002)(45980500001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M2ovOUVybm1DT1Zpa2dyRmFpV1VCNTFHWUNobVM3Z1U3VU9YaG1vSzVwd0tD?= =?utf-8?B?NlZzRW1hcCtVLzUvOVp4UE9tTlkrTVh0YWhZOGZXaXhoek05Y2VBVnRoK3Vm?= =?utf-8?B?R0tidGRlNVJPYkF5VTlmQitEWUkzcEVmUC9kTC9CVVVCMnE5YXhMR3N5YjJM?= =?utf-8?B?MVhCb2hEaGRYS0wyKzhJdXdKU1pTM2Urd3p1bThZYlA1ZzBSN2FxMjcvV2pQ?= =?utf-8?B?bG5pSVlBNDdFaWo3dEFDb3J4Yy9ma05RZGNaUE1CQjIxSWNuOEVuYzE0Qkhh?= =?utf-8?B?djJYUXpRRzBmdURvV1c1WEFJd2s3Sk1Fd2VKVGphdUdKRlNTUjJlWWd4djBY?= =?utf-8?B?QXFuaUdBczZGSHFVTXY5bUpNU0FCUUZvTzlyYVhZQ3hTeEFnZnRCbWxIMzdZ?= =?utf-8?B?WVR5YVVNTm9qUkRjVDY5OXhXWFA4eEZuVit6dThLTmkzbVBlZHdhejYyNnMw?= =?utf-8?B?Ui9FUXRRZWNKbHVkMVRSYmpaNThKc3FyYnFmeFhHdm1CVENsQThtR3lMRXVn?= =?utf-8?B?ZU9GdlUyK0lFZnNhTFBtZFRHTlcyaVhScktDeVN4bkxwTHluNXNkM3JzNXhC?= =?utf-8?B?Zm8zQVRJOTNJMmpqWERWUncxZUhMYlJyTThrcWUrQlRJTGlKSFljcDdjTlpo?= =?utf-8?B?WFVTRmt0SEZDT2tKa2pSMVRkVTRZY2IvSFFmTHNHRHZTbVdldWF3aitlMlRl?= =?utf-8?B?b0tsZ1lQWXZXRUlLYjArNFpLaHdLS3o3N2RJRG5udEVLK1F6MzNVck0zYXhN?= =?utf-8?B?WHdUZ0ZaTVFxY2YzdXRuNTFIOHFRS1VMTTFYTlBSZXd4c0ZiMTZYM3JCUE13?= =?utf-8?B?T01aWERleVBWWjNNQ3E5b3hJYTZiZjdTeHBIYXFHTFo4SUlYZm5TWHpla3JL?= =?utf-8?B?N2l1MlZ4MlhOaWx0WnVMdVFYUCtYVUR6NHlIUWgvaURUbCtDSXplbnBCSTN4?= =?utf-8?B?THVXMXovNDV5ekFIejJnUGxNL0FMdFBNSkluVGowYTRRMm5YNE44cE1YOFhv?= =?utf-8?B?dDVESFcvRUpRS1RTWlFnRzh2SGNnSmdUNEVLNXZlTldDZ1lESG12clB5djFP?= =?utf-8?B?WTdaSUZtNHpHbUNWcFY5UUNCM0FGdk9Na3poYWptSndvN1ZPenNraDNnTUg4?= =?utf-8?B?czNodk9FNS9COXF5TGY2WWtPNUduZk43aG92YVczNFhPbk4rZktEZFRDVDVL?= =?utf-8?B?cWNZalpuNDBicllBdmxDYTlGN2h5cXNmbVRKNHBzeUZJemI5QzlhRnhud2Rw?= =?utf-8?B?b2ZhWmFGVTA5a2FiWjA4RjU1TkdBeFVYVHgxUi92cnlPSm1JRkZBS0NVK2h2?= =?utf-8?B?M3prL1J5RG8rSTB5VHNkaC8yMlBTMFVVeGUrNUU4Y3ArZVpWOVFMRlRXU3I3?= =?utf-8?B?SUFUajVsTC9kNFN2UHRkcWhhVDJTNEJEeGlaVmJnY0xVaW10Vi93ZGVzeVlD?= =?utf-8?B?a3JoSzArRTRNN2MzeEV2cmU5T3pFemt6OGhMd1UvbGg4TFRJaXVaWHZmaEk5?= =?utf-8?B?NzZoZlJuWmtzRy9jNWlLdGxSSFRtK29WYTNaTHRiL3JrN1M5VVQzb05SK0lz?= =?utf-8?B?STdOUzhXV3pkOGJHK3lKdjFOOUpDaG1odXRId2lPVjByd1p0WWVldTh4UmEz?= =?utf-8?B?dXJrSHdQaGFiOERHWjJTVUlYTk9STDdwRWM4Mkxub2N1akVjSXRQMVNWS0tU?= =?utf-8?B?ZGtSS1hGZEVXOEl1OElmVldXWUZvcVp5ZWFzM21aZ3FYQVZzaThhL3lLZU1L?= =?utf-8?B?WWViWGxsVE53enE5Rnk2UDhha0U0QXg0QVVIZytvUzFkalRnQkhRc205Ti9r?= =?utf-8?B?YjV1eDFxSWM2SFBCKzJQeTFiYytmYmxwT3NIM21XMnYrVVJhVG80ZHZPRnJr?= =?utf-8?B?UHhCSnhjcUwvbjJPTzFOU1I1cGdaUEdSU3U0c0drdXNERTJhb1hOYnFMTHgv?= =?utf-8?B?QWRoQjdrK05JQ1pMU2N4cXQxMnhRa3hObFJRQll2djM2QU5UOHdicnZzLzNk?= =?utf-8?B?QVEyY1lUVnU1dU5oOGpKWDJObFVJTktMY2dUc1NFakExT1djb0VZb3N5ZlJu?= =?utf-8?B?aThYMFQ1VTlWK1BoOGlTMTR0ZU9SM2RqZzdRb2R0T1RLUWUxWDJMSDFYUzI1?= =?utf-8?B?allhQXBVSEFNcEpyVTBjTVdPUHVkREtwbHk2Lzg2M2NuY3Q5VE9PamRMNTRV?= =?utf-8?B?ZEE5dnlPQmtkQTUvUzRhWktocVlBK000U1BUV0paWkQvM1NtNTRmd0djYjZO?= =?utf-8?B?aUIwdzh2eDdLOVBQNWJBblBWQ3paTlZQZzJVQ1Z1Zm1zMUdDdFFsU20zU05x?= =?utf-8?B?YUhJM1lpV1FMRzl3d1NVUnFUVTlBTUZVNUhBdUZPaEdkNlZjbHY5dz09?= Content-Type: text/plain; charset="utf-8" Content-ID: <5F0600D4DD57604BB369037DA005A568@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB5154.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5087be27-8069-4570-b469-08da4dd81011 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2022 07:32:40.3688 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: vFpgp+2O4t0F6TcAtX8gNNxdMwzQRgmRxNVWAoFEhJzmzi/JIVCVtUN4AqIAi+r8AcO9VtweYKDn7lhEypsa7EpMls1tJ2RmddE5P3srlUk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB5778 Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org T24gMDMvMDYvMjAyMiAwODoxNiwgQ29ub3IgRG9vbGV5IHdyb3RlOg0KPiBBZGQgTWljcm9jaGlw IENvcmVJMkMgaTJjIGNvbnRyb2xsZXIgc3VwcG9ydC4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhl DQo+ICJoYXJkIiBpMmMgY29udHJvbGxlciBvbiB0aGUgTWljcm9jaGlwIFBvbGFyRmlyZSBTb0Mg JiB0aGUgYmFzaWMgZmVhdHVyZQ0KPiBzZXQgZm9yICJzb2Z0IiBpMmMgY29udHJvbGxlciBpbXBs ZW10YXRpb25zIGluIHRoZSBGUEdBIGZhYnJpYy4NCj4gDQo+IENvLWRldmVsb3BlZC1ieTogRGFp cmUgTWNOYW1hcmEgPGRhaXJlLm1jbmFtYXJhQG1pY3JvY2hpcC5jb20+DQo+IFNpZ25lZC1vZmYt Ynk6IERhaXJlIE1jTmFtYXJhIDxkYWlyZS5tY25hbWFyYUBtaWNyb2NoaXAuY29tPg0KPiBTaWdu ZWQtb2ZmLWJ5OiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPg0KPiAt LS0NCj4gQ2hhbmdlcyBmcm9tIHY0Og0KPiAtIHJlc2V0IHRoZSBjb250cm9sbGVyIG9uIHhmZXIg dGltZW91dA0KPiAtIHNvcnQgdGhlIGhlYWRlcnMgYWxwaGFiZXRpY2FsbHkNCj4gDQo+IENoYW5n ZXMgZnJvbSB2MzoNCj4gLSB1cGRhdGUgbWVtYmVycyBpbiBzdHJ1Y3QgZG9jIGNvbW1lbnQNCj4g LSBtb3ZlIG1jaHBfY29yZWkyY190cmFuc2ZlciBpbiBpdHMgY2FsbGVyDQo+IC0gY2hhbmdlIG1z Z19sZW4gdG8gYSB1MTYNCj4gLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlIG1zZ19yZWFkDQo+IC0g dXNlIGFkYXBhdGVyLnRpbWVvdXQgZm9yIGNvbXBsZXRpb24NCj4gLSBkb250IHVzZSBsYXN0X2J5 dGUgZ290bw0KPiAtIHJlbW92ZSBibG9jayBvbiB6ZXJvIGxlbmd0aCBtZXNzYWdlcw0KPiAgICAo dGhlIGhhcmR3YXJlIGNhbiBkbyB0aGVtLCB3YXMgYSBjYXJyeW92ZXIgZnJvbSB0aGUgYmFyZW1l dGFsIGRyaXZlcikNCj4gLSBwcm9iZToNCj4gICAgLSBkcm9wIHVubmVlZGVkIGluaXRpYWxpc2F0 aW9uDQo+ICAgIC0gdXNlIHJldCBub3QgdmFsDQo+ICAgIC0gZXhwbGFpbiBzaGFyZWQgaXJxDQo+ ICAgIC0gZGlzYWxsb3cgMCBidXNfY2xvY2tfcmF0ZQ0KPiAgICAtIGluY2x1ZGUgYmFzZSBpbiBk ZXZpY2UgbmFtZQ0KPiAgICAtIGRyb3BwZWQgdGhlIGR1cGxpY2F0ZSAibWljcm9jaGlwIiBpbiB0 aGUgcmVnaXN0ZXJlZCBwcmludA0KPiAgICAgIChpdHMgaW4gZHJpdmVyLm5hbWUpDQo+IA0KPiBD aGFuZ2VzIGZyb20gdjI6DQo+IC0gRml4ZWQgd2hpdGVzcGFjZSBpbiBkZWZpbmVzIHRoYXQgSSBy ZW1vdmVkIGFjY2lkZW50YWxseQ0KPiANCj4gQ2hhbmdlcyBmcm9tIHYxOg0KPiAtIFVzZSBieXRl IHdyaXRlIGFuZCByZWFkIGZ1bmN0aW9ucw0KPiAtIFJldHVybiBJUlFfTk9ORSBhbmQgZG9uJ3Qg d2FybiBpZiBub3QgdGhpcyBkcml2ZXJzIGludGVycnVwdA0KPiAtIEFkZCBhIGNsa19kaXNhYmxl X3VucHJlcGFyZSB0byBhdm9pZCBsZWFraW5nIGEgY2xvY2sgaW4gdGhlIHByb2JlDQo+IC0tLQ0K PiAgIGRyaXZlcnMvaTJjL2J1c3Nlcy9LY29uZmlnICAgICAgICAgICAgICB8ICAxMSArDQo+ICAg ZHJpdmVycy9pMmMvYnVzc2VzL01ha2VmaWxlICAgICAgICAgICAgIHwgICAxICsNCj4gICBkcml2 ZXJzL2kyYy9idXNzZXMvaTJjLW1pY3JvY2hpcC1jb3JlLmMgfCA0ODYgKysrKysrKysrKysrKysr KysrKysrKysrDQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCA0OTggaW5zZXJ0aW9ucygrKQ0KPiAgIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2kyYy9idXNzZXMvaTJjLW1pY3JvY2hpcC1jb3JlLmMN Cj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZyBiL2RyaXZlcnMv aTJjL2J1c3Nlcy9LY29uZmlnDQo+IGluZGV4IGExYmFlNTkyMDhlMy4uM2Q0ZDhlMGU5ZGU3IDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZw0KPiArKysgYi9kcml2ZXJz L2kyYy9idXNzZXMvS2NvbmZpZw0KPiBAQCAtNzgxLDYgKzc4MSwxNyBAQCBjb25maWcgSTJDX01F U09ODQo+ICAgCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1cHBvcnQgd2lsbCBi ZSBpbmNsdWRlZCBmb3IgdGhlDQo+ICAgCSAgSTJDIGludGVyZmFjZSBvbiB0aGUgQW1sb2dpYyBN ZXNvbiBmYW1pbHkgb2YgU29Dcy4NCj4gICANCj4gK2NvbmZpZyBJMkNfTUlDUk9DSElQX0NPUkUN Cj4gKwl0cmlzdGF0ZSAiTWljcm9jaGlwIEZQR0EgSTJDIGNvbnRyb2xsZXIiDQo+ICsJZGVwZW5k cyBvbiBTT0NfTUlDUk9DSElQX1BPTEFSRklSRSB8fCBDT01QSUxFX1RFU1QNCj4gKwlkZXBlbmRz IG9uIE9GDQo+ICsJaGVscA0KPiArCSAgSWYgeW91IHNheSB5ZXMgdG8gdGhpcyBvcHRpb24sIHN1 cHBvcnQgd2lsbCBiZSBpbmNsdWRlZCBmb3IgdGhlDQo+ICsJICBJMkMgaW50ZXJmYWNlIG9uIE1p Y3JvY2hpcCBGUEdBcy4NCj4gKw0KPiArCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQg YXMgYSBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlIHdpbGwgYmUNCj4gKwkgIGNhbGxlZCBpMmMt bWljcm9jaGlwLWNvcmUuDQo+ICsNCj4gICBjb25maWcgSTJDX01QQw0KPiAgIAl0cmlzdGF0ZSAi TVBDMTA3LzgyNHgvODV4eC81MTJ4LzUyeHgvODN4eC84Nnh4Ig0KPiAgIAlkZXBlbmRzIG9uIFBQ Qw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL01ha2VmaWxlIGIvZHJpdmVycy9p MmMvYnVzc2VzL01ha2VmaWxlDQo+IGluZGV4IDQ3OWY2MGU0ZWUzZC4uNzU4NjliMTg5ZTQzIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvTWFrZWZpbGUNCj4gKysrIGIvZHJpdmVy cy9pMmMvYnVzc2VzL01ha2VmaWxlDQo+IEBAIC03OCw2ICs3OCw3IEBAIG9iai0kKENPTkZJR19J MkNfSlo0NzgwKQkrPSBpMmMtano0NzgwLm8NCj4gICBvYmotJChDT05GSUdfSTJDX0tFTVBMRCkJ Kz0gaTJjLWtlbXBsZC5vDQo+ICAgb2JqLSQoQ09ORklHX0kyQ19MUEMySykJCSs9IGkyYy1scGMy ay5vDQo+ICAgb2JqLSQoQ09ORklHX0kyQ19NRVNPTikJCSs9IGkyYy1tZXNvbi5vDQo+ICtvYmot JChDT05GSUdfSTJDX01JQ1JPQ0hJUF9DT1JFKQkrPSBpMmMtbWljcm9jaGlwLWNvcmUubw0KPiAg IG9iai0kKENPTkZJR19JMkNfTVBDKQkJKz0gaTJjLW1wYy5vDQo+ICAgb2JqLSQoQ09ORklHX0ky Q19NVDY1WFgpCSs9IGkyYy1tdDY1eHgubw0KPiAgIG9iai0kKENPTkZJR19JMkNfTVQ3NjIxKQkr PSBpMmMtbXQ3NjIxLm8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbWlj cm9jaGlwLWNvcmUuYyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbWljcm9jaGlwLWNvcmUuYw0K PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjZkYThlOTczNWM4 Mw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbWljcm9j aGlwLWNvcmUuYw0KPiBAQCAtMCwwICsxLDQ4NiBAQA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjANCj4gKy8qDQo+ICsgKiBNaWNyb2NoaXAgQ29yZUkyQyBJMkMgY29udHJv bGxlciBkcml2ZXINCj4gKyAqDQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTggLSAyMDIyIE1pY3Jv Y2hpcCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKyAqDQo+ICsgKiBBdXRo b3I6IERhaXJlIE1jTmFtYXJhIDxkYWlyZS5tY25hbWFyYUBtaWNyb2NoaXAuY29tPg0KPiArICog QXV0aG9yOiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBtaWNyb2NoaXAuY29tPg0KPiArICov DQo+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvY2xrZGV2Lmg+ DQo+ICsjaW5jbHVkZSA8bGludXgvZXJyLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvaTJjLmg+DQo+ ICsjaW5jbHVkZSA8bGludXgvaW9wb2xsLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0 Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvaW8u aD4NCj4gKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9wbGF0 Zm9ybV9kZXZpY2UuaD4NCj4gKw0KPiArI2RlZmluZSBNSUNST0NISVBfSTJDX1RJTUVPVVQgKG1z ZWNzX3RvX2ppZmZpZXMoMTAwMCkpDQo+ICsNCj4gKyNkZWZpbmUgQ09SRV9JMkNfQ1RSTAkoMHgw MCkNCj4gKyNkZWZpbmUgIENUUkxfQ1IwCUJJVCgwKQ0KPiArI2RlZmluZSAgQ1RSTF9DUjEJQklU KDEpDQo+ICsjZGVmaW5lICBDVFJMX0FBCUJJVCgyKQ0KPiArI2RlZmluZSAgQ1RSTF9TSQlCSVQo MykNCj4gKyNkZWZpbmUgIENUUkxfU1RPCUJJVCg0KQ0KPiArI2RlZmluZSAgQ1RSTF9TVEEJQklU KDUpDQo+ICsjZGVmaW5lICBDVFJMX0VOUzEJQklUKDYpDQo+ICsjZGVmaW5lICBDVFJMX0NSMglC SVQoNykNCj4gKw0KPiArI2RlZmluZSBTVEFUVVNfQlVTX0VSUk9SCQkJKDB4MDApDQo+ICsjZGVm aW5lIFNUQVRVU19NX1NUQVJUX1NFTlQJCQkoMHgwOCkNCj4gKyNkZWZpbmUgU1RBVFVTX01fUkVQ RUFURURfU1RBUlRfU0VOVAkJKDB4MTApDQo+ICsjZGVmaW5lIFNUQVRVU19NX1NMQVdfQUNLCQkJ KDB4MTgpDQo+ICsjZGVmaW5lIFNUQVRVU19NX1NMQVdfTkFDSwkJCSgweDIwKQ0KPiArI2RlZmlu ZSBTVEFUVVNfTV9UWF9EQVRBX0FDSwkJCSgweDI4KQ0KPiArI2RlZmluZSBTVEFUVVNfTV9UWF9E QVRBX05BQ0sJCQkoMHgzMCkNCj4gKyNkZWZpbmUgU1RBVFVTX01fQVJCX0xPU1QJCQkoMHgzOCkN Cj4gKyNkZWZpbmUgU1RBVFVTX01fU0xBUl9BQ0sJCQkoMHg0MCkNCj4gKyNkZWZpbmUgU1RBVFVT X01fU0xBUl9OQUNLCQkJKDB4NDgpDQo+ICsjZGVmaW5lIFNUQVRVU19NX1JYX0RBVEFfQUNLRUQJ CQkoMHg1MCkNCj4gKyNkZWZpbmUgU1RBVFVTX01fUlhfREFUQV9OQUNLRUQJCQkoMHg1OCkNCj4g KyNkZWZpbmUgU1RBVFVTX1NfU0xBV19BQ0tFRAkJCSgweDYwKQ0KPiArI2RlZmluZSBTVEFUVVNf U19BUkJfTE9TVF9TTEFXX0FDS0VECQkoMHg2OCkNCj4gKyNkZWZpbmUgU1RBVFVTX1NfR0VORVJB TF9DQUxMX0FDS0VECQkoMHg3MCkNCj4gKyNkZWZpbmUgU1RBVFVTX1NfQVJCX0xPU1RfR0VORVJB TF9DQUxMX0FDS0VECSgweDc4KQ0KPiArI2RlZmluZSBTVEFUVVNfU19SWF9EQVRBX0FDS0VECQkJ KDB4ODApDQo+ICsjZGVmaW5lIFNUQVRVU19TX1JYX0RBVEFfTkFDS0VECQkJKDB4ODgpDQo+ICsj ZGVmaW5lIFNUQVRVU19TX0dFTkVSQUxfQ0FMTF9SWF9EQVRBX0FDS0VECSgweDkwKQ0KPiArI2Rl ZmluZSBTVEFUVVNfU19HRU5FUkFMX0NBTExfUlhfREFUQV9OQUNLRUQJKDB4OTgpDQo+ICsjZGVm aW5lIFNUQVRVU19TX1JYX1NUT1AJCQkoMHhBMCkNCj4gKyNkZWZpbmUgU1RBVFVTX1NfU0xBUl9B Q0tFRAkJCSgweEE4KQ0KPiArI2RlZmluZSBTVEFUVVNfU19BUkJfTE9TVF9TTEFSX0FDS0VECQko MHhCMCkNCj4gKyNkZWZpbmUgU1RBVFVTX1NfVFhfREFUQV9BQ0sJCQkoMHhCOCkNCj4gKyNkZWZp bmUgU1RBVFVTX1NfVFhfREFUQV9OQUNLCQkJKDB4QzApDQo+ICsjZGVmaW5lIFNUQVRVU19MQVNU X0RBVEFfQUNLCQkJKDB4QzgpDQo+ICsjZGVmaW5lIFNUQVRVU19NX1NNQl9NQVNURVJfUkVTRVQJ CSgweEQwKQ0KPiArI2RlZmluZSBTVEFUVVNfU19TQ0xfTE9XX1RJTUVPVVQJCSgweEQ4KSAvKiAy NSBtcyAqLw0KPiArI2RlZmluZSBTVEFUVVNfTk9fU1RBVEVfSU5GTwkJCSgweEY4KQ0KPiArDQo+ ICsjZGVmaW5lIENPUkVfSTJDX1NUQVRVUwkJKDB4MDQpDQo+ICsjZGVmaW5lIENPUkVfSTJDX0RB VEEJCSgweDA4KQ0KPiArI2RlZmluZSBXUklURV9CSVQJCSgweDApDQo+ICsjZGVmaW5lIFJFQURf QklUCQkoMHgxKQ0KPiArI2RlZmluZSBTTEFWRV9BRERSX1NISUZUCSgxKQ0KPiArI2RlZmluZSBD T1JFX0kyQ19TTEFWRTBfQUREUgkoMHgwYykNCj4gKyNkZWZpbmUgR0VORVJBTF9DQUxMX0JJVAko MHgwKQ0KPiArI2RlZmluZSBDT1JFX0kyQ19TTUJVUwkJKDB4MTApDQo+ICsjZGVmaW5lIFNNQkFM RVJUX0lOVF9FTkIJKDB4MCkNCj4gKyNkZWZpbmUgU01CU1VTX0lOVF9FTkIJCSgweDEpDQo+ICsj ZGVmaW5lIFNNQlVTX0VOQgkJKDB4MikNCj4gKyNkZWZpbmUgU01CQUxFUlRfTklfU1RBVFVTCSgw eDMpDQo+ICsjZGVmaW5lIFNNQkFMRVJUX05PX0NUUkwJKDB4NCkNCj4gKyNkZWZpbmUgU01CU1VT X05JX1NUQVRVUwkoMHg1KQ0KPiArI2RlZmluZSBTTUJTVVNfTk9fQ1RSTAkJKDB4NikNCj4gKyNk ZWZpbmUgU01CVVNfUkVTRVQJCSgweDcpDQo+ICsjZGVmaW5lIENPUkVfSTJDX0ZSRVEJCSgweDE0 KQ0KPiArI2RlZmluZSBDT1JFX0kyQ19HTElUQ0hSRUcJKDB4MTgpDQo+ICsjZGVmaW5lIENPUkVf STJDX1NMQVZFMV9BRERSCSgweDFjKQ0KPiArDQo+ICsjZGVmaW5lIFBDTEtfRElWXzk2MAkoQ1RS TF9DUjIpDQo+ICsjZGVmaW5lIFBDTEtfRElWXzI1NgkoMCkNCj4gKyNkZWZpbmUgUENMS19ESVZf MjI0CShDVFJMX0NSMCkNCj4gKyNkZWZpbmUgUENMS19ESVZfMTkyCShDVFJMX0NSMSkNCj4gKyNk ZWZpbmUgUENMS19ESVZfMTYwCShDVFJMX0NSMCB8IENUUkxfQ1IxKQ0KPiArI2RlZmluZSBQQ0xL X0RJVl8xMjAJKENUUkxfQ1IwIHwgQ1RSTF9DUjIpDQo+ICsjZGVmaW5lIFBDTEtfRElWXzYwCShD VFJMX0NSMSB8IENUUkxfQ1IyKQ0KPiArI2RlZmluZSBCQ0xLX0RJVl84CShDVFJMX0NSMCB8IENU UkxfQ1IxIHwgQ1RSTF9DUjIpDQo+ICsjZGVmaW5lIENMS19NQVNLCShDVFJMX0NSMCB8IENUUkxf Q1IxIHwgQ1RSTF9DUjIpDQo+ICsNCj4gKy8qKg0KPiArICogc3RydWN0IG1jaHBfY29yZWkyY19k ZXYgLSBNaWNyb2NoaXAgQ29yZUkyQyBkZXZpY2UgcHJpdmF0ZSBkYXRhDQo+ICsgKg0KPiArICog QGJhc2U6CQlwb2ludGVyIHRvIHJlZ2lzdGVyIHN0cnVjdA0KPiArICogQGRldjoJCWRldmljZSBy ZWZlcmVuY2UNCj4gKyAqIEBpMmNfY2xrOgkJY2xvY2sgcmVmZXJlbmNlIGZvciBpMmMgaW5wdXQg Y2xvY2sNCj4gKyAqIEBidWY6CQlwb2ludGVyIHRvIG1zZyBidWZmZXIgZm9yIGVhc2llciB1c2UN Cj4gKyAqIEBtc2dfY29tcGxldGU6CXhmZXIgY29tcGxldGlvbiBvYmplY3QNCj4gKyAqIEBhZGFw dGVyOgkJY29yZSBpMmMgYWJzdHJhY3Rpb24NCj4gKyAqIEBsb2NrOgkJc3BpbmxvY2sgZm9yIElS USBzeW5jaHJvbml6YXRpb24NCj4gKyAqIEBtc2dfZXJyOgkJZXJyb3IgY29kZSBmb3IgY29tcGxl dGVkIG1lc3NhZ2UNCj4gKyAqIEBidXNfY2xrX3JhdGU6CWN1cnJlbnQgaTJjIGJ1cyBjbG9jayBy YXRlDQo+ICsgKiBAaXNyX3N0YXR1czoJCWNhY2hlZCBjb3B5IG9mIGxvY2FsIElTUiBzdGF0dXMN Cj4gKyAqIEBtc2dfbGVuOgkJbnVtYmVyIG9mIGJ5dGVzIHRyYW5zZmVycmVkIGluIG1zZw0KPiAr ICogQGFkZHI6CQlhZGRyZXNzIG9mIHRoZSBjdXJyZW50IHNsYXZlDQo+ICsgKi8NCj4gK3N0cnVj dCBtY2hwX2NvcmVpMmNfZGV2IHsNCj4gKwl2b2lkIF9faW9tZW0gKmJhc2U7DQo+ICsJc3RydWN0 IGRldmljZSAqZGV2Ow0KPiArCXN0cnVjdCBjbGsgKmkyY19jbGs7DQo+ICsJdTggKmJ1ZjsNCj4g KwlzdHJ1Y3QgY29tcGxldGlvbiBtc2dfY29tcGxldGU7DQo+ICsJc3RydWN0IGkyY19hZGFwdGVy IGFkYXB0ZXI7DQo+ICsJc3BpbmxvY2tfdCBsb2NrOyAvKiBJUlEgc3luY2hyb25pemF0aW9uICov DQo+ICsJaW50IG1zZ19lcnI7DQo+ICsJdTMyIGJ1c19jbGtfcmF0ZTsNCj4gKwl1MzIgaXNyX3N0 YXR1czsNCj4gKwl1MTYgbXNnX2xlbjsNCj4gKwl1OCBhZGRyOw0KPiArfTsNCj4gKw0KPiArc3Rh dGljIHZvaWQgbWNocF9jb3JlaTJjX2NvcmVfZGlzYWJsZShzdHJ1Y3QgbWNocF9jb3JlaTJjX2Rl diAqaWRldikNCj4gK3sNCj4gKwl1OCBjdHJsID0gcmVhZGIoaWRldi0+YmFzZSArIENPUkVfSTJD X0NUUkwpOw0KPiArDQo+ICsJY3RybCAmPSB+Q1RSTF9FTlMxOw0KPiArCXdyaXRlYihjdHJsLCBp ZGV2LT5iYXNlICsgQ09SRV9JMkNfQ1RSTCk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIG1j aHBfY29yZWkyY19jb3JlX2VuYWJsZShzdHJ1Y3QgbWNocF9jb3JlaTJjX2RldiAqaWRldikNCj4g K3sNCj4gKwl1OCBjdHJsID0gcmVhZGIoaWRldi0+YmFzZSArIENPUkVfSTJDX0NUUkwpOw0KPiAr DQo+ICsJY3RybCB8PSBDVFJMX0VOUzE7DQo+ICsJd3JpdGViKGN0cmwsIGlkZXYtPmJhc2UgKyBD T1JFX0kyQ19DVFJMKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgbWNocF9jb3JlaTJjX3Jl c2V0KHN0cnVjdCBtY2hwX2NvcmVpMmNfZGV2ICppZGV2KQ0KPiArew0KPiArCW1jaHBfY29yZWky Y19jb3JlX2Rpc2FibGUoaWRldik7DQo+ICsJbWNocF9jb3JlaTJjX2NvcmVfZW5hYmxlKGlkZXYp Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW5saW5lIHZvaWQgbWNocF9jb3JlaTJjX3N0b3Aoc3Ry dWN0IG1jaHBfY29yZWkyY19kZXYgKmlkZXYpDQo+ICt7DQo+ICsJdTggY3RybCA9IHJlYWRiKGlk ZXYtPmJhc2UgKyBDT1JFX0kyQ19DVFJMKTsNCj4gKw0KPiArCWN0cmwgfD0gQ1RSTF9TVE87DQo+ ICsJd3JpdGViKGN0cmwsIGlkZXYtPmJhc2UgKyBDT1JFX0kyQ19DVFJMKTsNCj4gK30NCj4gKw0K PiArc3RhdGljIGlubGluZSBpbnQgbWNocF9jb3JlaTJjX3NldF9kaXZpc29yKHUzMiByYXRlLA0K PiArCQkJCQkgICBzdHJ1Y3QgbWNocF9jb3JlaTJjX2RldiAqaWRldikNCj4gK3sNCj4gKwl1OCBj bGt2YWwsIGN0cmw7DQo+ICsNCj4gKwlpZiAocmF0ZSA+PSA5NjApDQo+ICsJCWNsa3ZhbCA9IFBD TEtfRElWXzk2MDsNCj4gKwllbHNlIGlmIChyYXRlID49IDI1NikNCj4gKwkJY2xrdmFsID0gUENM S19ESVZfMjU2Ow0KPiArCWVsc2UgaWYgKHJhdGUgPj0gMjI0KQ0KPiArCQljbGt2YWwgPSBQQ0xL X0RJVl8yMjQ7DQo+ICsJZWxzZSBpZiAocmF0ZSA+PSAxOTIpDQo+ICsJCWNsa3ZhbCA9IFBDTEtf RElWXzE5MjsNCj4gKwllbHNlIGlmIChyYXRlID49IDE2MCkNCj4gKwkJY2xrdmFsID0gUENMS19E SVZfMTYwOw0KPiArCWVsc2UgaWYgKHJhdGUgPj0gMTIwKQ0KPiArCQljbGt2YWwgPSBQQ0xLX0RJ Vl8xMjA7DQo+ICsJZWxzZSBpZiAocmF0ZSA+PSA2MCkNCj4gKwkJY2xrdmFsID0gUENMS19ESVZf NjA7DQo+ICsJZWxzZSBpZiAocmF0ZSA+PSA4KQ0KPiArCQljbGt2YWwgPSBCQ0xLX0RJVl84Ow0K PiArCWVsc2UNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwljdHJsID0gcmVhZGIoaWRl di0+YmFzZSArIENPUkVfSTJDX0NUUkwpOw0KPiArCWN0cmwgJj0gfkNMS19NQVNLOw0KPiArCWN0 cmwgfD0gY2xrdmFsOw0KPiArCXdyaXRlYihjdHJsLCBpZGV2LT5iYXNlICsgQ09SRV9JMkNfQ1RS TCk7DQo+ICsNCj4gKwljdHJsID0gcmVhZGIoaWRldi0+YmFzZSArIENPUkVfSTJDX0NUUkwpOw0K PiArCWlmICgoY3RybCAmIENMS19NQVNLKSAhPSBjbGt2YWwpDQo+ICsJCXJldHVybiAtRUlPOw0K PiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgbWNocF9jb3JlaTJj X2luaXQoc3RydWN0IG1jaHBfY29yZWkyY19kZXYgKmlkZXYpDQo+ICt7DQo+ICsJdTMyIGNsa19y YXRlID0gY2xrX2dldF9yYXRlKGlkZXYtPmkyY19jbGspOw0KPiArCXUzMiBkaXZpc29yID0gY2xr X3JhdGUgLyBpZGV2LT5idXNfY2xrX3JhdGU7DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCXJldCA9 IG1jaHBfY29yZWkyY19zZXRfZGl2aXNvcihkaXZpc29yLCBpZGV2KTsNCj4gKwlpZiAocmV0KQ0K PiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJbWNocF9jb3JlaTJjX3Jlc2V0KGlkZXYpOw0KPiAr DQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIG1jaHBfY29yZWkyY19l bXB0eV9yeChzdHJ1Y3QgbWNocF9jb3JlaTJjX2RldiAqaWRldikNCj4gK3sNCj4gKwl1OCBjdHJs Ow0KPiArDQo+ICsJaWYgKGlkZXYtPm1zZ19sZW4gPiAwKSB7DQo+ICsJCSppZGV2LT5idWYrKyA9 IHJlYWRiKGlkZXYtPmJhc2UgKyBDT1JFX0kyQ19EQVRBKTsNCj4gKwkJaWRldi0+bXNnX2xlbi0t Ow0KPiArCX0NCj4gKw0KPiArCWlmIChpZGV2LT5tc2dfbGVuID09IDApIHsNCj4gKwkJY3RybCA9 IHJlYWRiKGlkZXYtPmJhc2UgKyBDT1JFX0kyQ19DVFJMKTsNCj4gKwkJY3RybCAmPSB+Q1RSTF9B QTsNCj4gKwkJd3JpdGViKGN0cmwsIGlkZXYtPmJhc2UgKyBDT1JFX0kyQ19DVFJMKTsNCj4gKwl9 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgbWNocF9jb3JlaTJjX2ZpbGxfdHgoc3RydWN0IG1j aHBfY29yZWkyY19kZXYgKmlkZXYpDQo+ICt7DQo+ICsJaWYgKGlkZXYtPm1zZ19sZW4gPiAwKQ0K PiArCQl3cml0ZWIoKmlkZXYtPmJ1ZisrLCBpZGV2LT5iYXNlICsgQ09SRV9JMkNfREFUQSk7DQo+ ICsJaWRldi0+bXNnX2xlbi0tOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0 YXRpYyBpcnFyZXR1cm5fdCBtY2hwX2NvcmVpMmNfaGFuZGxlX2lzcihzdHJ1Y3QgbWNocF9jb3Jl aTJjX2RldiAqaWRldikNCj4gK3sNCj4gKwl1MzIgc3RhdHVzID0gaWRldi0+aXNyX3N0YXR1czsN Cj4gKwl1OCBjdHJsOw0KPiArCWJvb2wgbGFzdF9ieXRlID0gZmFsc2UsIGZpbmlzaGVkID0gZmFs c2U7DQo+ICsNCj4gKwlpZiAoIWlkZXYtPmJ1ZikNCj4gKwkJcmV0dXJuIElSUV9OT05FOw0KPiAr DQo+ICsJc3dpdGNoIChzdGF0dXMpIHsNCj4gKwljYXNlIFNUQVRVU19NX1NUQVJUX1NFTlQ6DQo+ ICsJY2FzZSBTVEFUVVNfTV9SRVBFQVRFRF9TVEFSVF9TRU5UOg0KPiArCQljdHJsID0gcmVhZGIo aWRldi0+YmFzZSArIENPUkVfSTJDX0NUUkwpOw0KPiArCQljdHJsICY9IH5DVFJMX1NUQTsNCj4g KwkJd3JpdGViKGlkZXYtPmFkZHIsIGlkZXYtPmJhc2UgKyBDT1JFX0kyQ19EQVRBKTsNCj4gKwkJ d3JpdGViKGN0cmwsIGlkZXYtPmJhc2UgKyBDT1JFX0kyQ19DVFJMKTsNCj4gKwkJaWYgKGlkZXYt Pm1zZ19sZW4gPD0gMCkNCj4gKwkJCWZpbmlzaGVkID0gdHJ1ZTsNCj4gKwkJYnJlYWs7DQo+ICsJ Y2FzZSBTVEFUVVNfTV9BUkJfTE9TVDoNCj4gKwkJaWRldi0+bXNnX2VyciA9IC1FQUdBSU47DQo+ ICsJCWZpbmlzaGVkID0gdHJ1ZTsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBTVEFUVVNfTV9TTEFX X0FDSzoNCj4gKwljYXNlIFNUQVRVU19NX1RYX0RBVEFfQUNLOg0KPiArCQlpZiAoaWRldi0+bXNn X2xlbiA+IDApDQo+ICsJCQltY2hwX2NvcmVpMmNfZmlsbF90eChpZGV2KTsNCj4gKwkJZWxzZQ0K PiArCQkJbGFzdF9ieXRlID0gdHJ1ZTsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBTVEFUVVNfTV9U WF9EQVRBX05BQ0s6DQo+ICsJY2FzZSBTVEFUVVNfTV9TTEFSX05BQ0s6DQo+ICsJY2FzZSBTVEFU VVNfTV9TTEFXX05BQ0s6DQo+ICsJCWlkZXYtPm1zZ19lcnIgPSAtRU5YSU87DQo+ICsJCWxhc3Rf Ynl0ZSA9IHRydWU7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgU1RBVFVTX01fU0xBUl9BQ0s6DQo+ ICsJCWN0cmwgPSByZWFkYihpZGV2LT5iYXNlICsgQ09SRV9JMkNfQ1RSTCk7DQo+ICsJCWlmIChp ZGV2LT5tc2dfbGVuID09IDF1KSB7DQo+ICsJCQljdHJsICY9IH5DVFJMX0FBOw0KPiArCQkJd3Jp dGViKGN0cmwsIGlkZXYtPmJhc2UgKyBDT1JFX0kyQ19DVFJMKTsNCj4gKwkJfSBlbHNlIHsNCj4g KwkJCWN0cmwgfD0gQ1RSTF9BQTsNCj4gKwkJCXdyaXRlYihjdHJsLCBpZGV2LT5iYXNlICsgQ09S RV9JMkNfQ1RSTCk7DQo+ICsJCX0NCj4gKwkJaWYgKGlkZXYtPm1zZ19sZW4gPCAxdSkNCj4gKwkJ CWxhc3RfYnl0ZSA9IHRydWU7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgU1RBVFVTX01fUlhfREFU QV9BQ0tFRDoNCj4gKwkJbWNocF9jb3JlaTJjX2VtcHR5X3J4KGlkZXYpOw0KPiArCQlicmVhazsN Cj4gKwljYXNlIFNUQVRVU19NX1JYX0RBVEFfTkFDS0VEOg0KPiArCQltY2hwX2NvcmVpMmNfZW1w dHlfcngoaWRldik7DQo+ICsJCWlmIChpZGV2LT5tc2dfbGVuID09IDApDQo+ICsJCQlsYXN0X2J5 dGUgPSB0cnVlOw0KPiArCQlicmVhazsNCj4gKwlkZWZhdWx0Og0KPiArCQlicmVhazsNCj4gKwl9 DQo+ICsNCj4gKwkvKiBPbiB0aGUgbGFzdCBieXRlIHRvIGJlIHRyYW5zbWl0dGVkLCBzZW5kIFNU T1AgKi8NCj4gKwlpZiAobGFzdF9ieXRlKQ0KPiArCQltY2hwX2NvcmVpMmNfc3RvcChpZGV2KTsN Cj4gKw0KPiArCWlmIChsYXN0X2J5dGUgfHwgZmluaXNoZWQpDQo+ICsJCWNvbXBsZXRlKCZpZGV2 LT5tc2dfY29tcGxldGUpOw0KPiArDQo+ICsJcmV0dXJuIElSUV9IQU5ETEVEOw0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgaXJxcmV0dXJuX3QgbWNocF9jb3JlaTJjX2lzcihpbnQgaXJxLCB2b2lkICpf ZGV2KQ0KPiArew0KPiArCXN0cnVjdCBtY2hwX2NvcmVpMmNfZGV2ICppZGV2ID0gX2RldjsNCj4g KwlpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTsNCj4gKwl1OCBjdHJsOw0KPiArDQo+ICsJY3Ry bCA9IHJlYWRiKGlkZXYtPmJhc2UgKyBDT1JFX0kyQ19DVFJMKTsNCj4gKwlpZiAoY3RybCAmIENU UkxfU0kpIHsNCj4gKwkJaWRldi0+aXNyX3N0YXR1cyA9IHJlYWRiKGlkZXYtPmJhc2UgKyBDT1JF X0kyQ19TVEFUVVMpOw0KPiArCQlyZXQgPSBtY2hwX2NvcmVpMmNfaGFuZGxlX2lzcihpZGV2KTsN Cj4gKwl9DQo+ICsNCj4gKwljdHJsID0gcmVhZGIoaWRldi0+YmFzZSArIENPUkVfSTJDX0NUUkwp Ow0KPiArCWN0cmwgJj0gfkNUUkxfU0k7DQo+ICsJd3JpdGViKGN0cmwsIGlkZXYtPmJhc2UgKyBD T1JFX0kyQ19DVFJMKTsNCj4gKw0KPiArCXJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBpbnQgbWNocF9jb3JlaTJjX3hmZXJfbXNnKHN0cnVjdCBtY2hwX2NvcmVpMmNfZGV2ICppZGV2 LA0KPiArCQkJCSBzdHJ1Y3QgaTJjX21zZyAqbXNnKQ0KPiArew0KPiArCXU4IGN0cmw7DQo+ICsJ dW5zaWduZWQgbG9uZyB0aW1lX2xlZnQ7DQo+ICsNCj4gKwlpZGV2LT5hZGRyID0gaTJjXzhiaXRf YWRkcl9mcm9tX21zZyhtc2cpOw0KPiArCWlkZXYtPm1zZ19sZW4gPSBtc2ctPmxlbjsNCj4gKwlp ZGV2LT5idWYgPSBtc2ctPmJ1ZjsNCj4gKwlpZGV2LT5tc2dfZXJyID0gMDsNCj4gKw0KPiArCXJl aW5pdF9jb21wbGV0aW9uKCZpZGV2LT5tc2dfY29tcGxldGUpOw0KPiArDQo+ICsJbWNocF9jb3Jl aTJjX2NvcmVfZW5hYmxlKGlkZXYpOw0KPiArDQo+ICsJY3RybCA9IHJlYWRiKGlkZXYtPmJhc2Ug KyBDT1JFX0kyQ19DVFJMKTsNCj4gKwljdHJsIHw9IENUUkxfU1RBOw0KPiArCXdyaXRlYihjdHJs LCBpZGV2LT5iYXNlICsgQ09SRV9JMkNfQ1RSTCk7DQo+ICsNCj4gKwl0aW1lX2xlZnQgPSB3YWl0 X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmlkZXYtPm1zZ19jb21wbGV0ZSwNCj4gKwkJCQkJCWlk ZXYtPmFkYXB0ZXIudGltZW91dCk7DQo+ICsJaWYgKCF0aW1lX2xlZnQpDQo+ICsJCXJldHVybiAt RVRJTUVET1VUOw0KPiArDQo+ICsJcmV0dXJuIGlkZXYtPm1zZ19lcnI7DQo+ICt9DQo+ICsNCj4g K3N0YXRpYyBpbnQgbWNocF9jb3JlaTJjX3hmZXIoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCBz dHJ1Y3QgaTJjX21zZyAqbXNncywNCj4gKwkJCSAgICAgaW50IG51bSkNCj4gK3sNCj4gKwlzdHJ1 Y3QgbWNocF9jb3JlaTJjX2RldiAqaWRldiA9IGkyY19nZXRfYWRhcGRhdGEoYWRhcCk7DQo+ICsJ aW50IGksIHJldDsNCj4gKw0KPiArCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgew0KPiArCQly ZXQgPSBtY2hwX2NvcmVpMmNfeGZlcl9tc2coaWRldiwgbXNncysrKTsNCj4gKwkJaWYgKHJldCkN Cj4gKwkJCXJldHVybiByZXQ7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIG51bTsNCj4gK30NCj4g Kw0KPiArc3RhdGljIHUzMiBtY2hwX2NvcmVpMmNfZnVuYyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFk YXApDQo+ICt7DQo+ICsJcmV0dXJuIEkyQ19GVU5DX0kyQyB8IEkyQ19GVU5DX1NNQlVTX0VNVUw7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2FsZ29yaXRobSBtY2hwX2Nv cmVpMmNfYWxnbyA9IHsNCj4gKwkubWFzdGVyX3hmZXIgPSBtY2hwX2NvcmVpMmNfeGZlciwNCj4g KwkuZnVuY3Rpb25hbGl0eSA9IG1jaHBfY29yZWkyY19mdW5jLA0KPiArfTsNCj4gKw0KPiArc3Rh dGljIGludCBtY2hwX2NvcmVpMmNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikN Cj4gK3sNCj4gKwlzdHJ1Y3QgbWNocF9jb3JlaTJjX2RldiAqaWRldjsNCj4gKwlzdHJ1Y3QgcmVz b3VyY2UgKnJlczsNCj4gKwlpbnQgaXJxLCByZXQ7DQo+ICsNCj4gKwlpZGV2ID0gZGV2bV9remFs bG9jKCZwZGV2LT5kZXYsIHNpemVvZigqaWRldiksIEdGUF9LRVJORUwpOw0KPiArCWlmICghaWRl dikNCj4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ICsNCj4gKwlpZGV2LT5iYXNlID0gZGV2bV9wbGF0 Zm9ybV9nZXRfYW5kX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCwgJnJlcyk7DQo+ICsJaWYgKElT X0VSUihpZGV2LT5iYXNlKSkNCj4gKwkJcmV0dXJuIFBUUl9FUlIoaWRldi0+YmFzZSk7DQo+ICsN Cj4gKwlpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOw0KPiArCWlmIChpcnEgPCAwKQ0K DQpUaGlzIGNoZWNrIHNob3VsZCBiZSA8PSAwLCBJJ2xsIGhvbGQgb2ZmIG9uIHY2IGZvciBhIGZl dyBkYXlzIHBlbmRpbmcgd2hhdGV2ZXINCm90aGVyIHJldmlldyBjb21lcyBpbi4NClRoYW5rcywN CkNvbm9yLg0KDQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYsIGlycSwNCj4g KwkJCQkgICAgICJtaXNzaW5nIGludGVycnVwdCByZXNvdXJjZVxuIik7DQo+ICsNCj4gKwlpZGV2 LT5pMmNfY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsIE5VTEwpOw0KPiArCWlmIChJU19F UlIoaWRldi0+aTJjX2NsaykpDQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZwZGV2LT5kZXYs IFBUUl9FUlIoaWRldi0+aTJjX2NsayksDQo+ICsJCQkJICAgICAibWlzc2luZyBjbG9ja1xuIik7 DQo+ICsNCj4gKwlpZGV2LT5kZXYgPSAmcGRldi0+ZGV2Ow0KPiArCWluaXRfY29tcGxldGlvbigm aWRldi0+bXNnX2NvbXBsZXRlKTsNCj4gKwlzcGluX2xvY2tfaW5pdCgmaWRldi0+bG9jayk7DQo+ ICsNCj4gKwlyZXQgPSBkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoaWRldi0+ZGV2LCAiY2xvY2st ZnJlcXVlbmN5IiwNCj4gKwkJCQkgICAgICAgJmlkZXYtPmJ1c19jbGtfcmF0ZSk7DQo+ICsJaWYg KHJldCB8fCAhaWRldi0+YnVzX2Nsa19yYXRlKSB7DQo+ICsJCWRldl9pbmZvKCZwZGV2LT5kZXYs ICJkZWZhdWx0IHRvIDEwMGtIelxuIik7DQo+ICsJCWlkZXYtPmJ1c19jbGtfcmF0ZSA9IDEwMDAw MDsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoaWRldi0+YnVzX2Nsa19yYXRlID4gNDAwMDAwKQ0KPiAr CQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2LCAtRUlOVkFMLA0KPiArCQkJCSAgICAg ImNsb2NrLWZyZXF1ZW5jeSB0b28gaGlnaDogJWRcbiIsDQo+ICsJCQkJICAgICBpZGV2LT5idXNf Y2xrX3JhdGUpOw0KPiArDQo+ICsJLyoNCj4gKwkgKiBUaGlzIGRyaXZlciBzdXBwb3J0cyBib3Ro IHRoZSBoYXJkIHBlcmlwaGVyYWxzICYgc29mdCBGUEdBIGNvcmVzLg0KPiArCSAqIFRoZSBoYXJk IHBlcmlwaGVyYWxzIGRvIG5vdCBoYXZlIHNoYXJlZCBJUlFzLCBidXQgd2UgZG9uJ3QgaGF2ZQ0K PiArCSAqIGNvbnRyb2wgb3ZlciB3aGF0IHdheSB0aGUgaW50ZXJydXB0cyBhcmUgd2lyZWQgZm9y IHRoZSBzb2Z0IGNvcmVzLg0KPiArCSAqLw0KPiArCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBk ZXYtPmRldiwgaXJxLCBtY2hwX2NvcmVpMmNfaXNyLCBJUlFGX1NIQVJFRCwNCj4gKwkJCSAgICAg ICBwZGV2LT5uYW1lLCBpZGV2KTsNCj4gKwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gZGV2X2Vycl9w cm9iZSgmcGRldi0+ZGV2LCByZXQsDQo+ICsJCQkJICAgICAiZmFpbGVkIHRvIGNsYWltIGlycSAl ZFxuIiwgaXJxKTsNCj4gKw0KPiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShpZGV2LT5pMmNf Y2xrKTsNCj4gKwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmcGRldi0+ZGV2 LCByZXQsDQo+ICsJCQkJICAgICAiZmFpbGVkIHRvIGVuYWJsZSBjbG9ja1xuIik7DQo+ICsNCj4g KwlyZXQgPSBtY2hwX2NvcmVpMmNfaW5pdChpZGV2KTsNCj4gKwlpZiAocmV0KSB7DQo+ICsJCWNs a19kaXNhYmxlX3VucHJlcGFyZShpZGV2LT5pMmNfY2xrKTsNCj4gKwkJcmV0dXJuIGRldl9lcnJf cHJvYmUoJnBkZXYtPmRldiwgcmV0LCAiZmFpbGVkIHRvIHByb2dyYW0gY2xvY2sgZGl2aWRlclxu Iik7DQo+ICsJfQ0KPiArDQo+ICsJaTJjX3NldF9hZGFwZGF0YSgmaWRldi0+YWRhcHRlciwgaWRl dik7DQo+ICsJc25wcmludGYoaWRldi0+YWRhcHRlci5uYW1lLCBzaXplb2YoaWRldi0+YWRhcHRl ci5uYW1lKSwNCj4gKwkJICJNaWNyb2NoaXAgSTJDIGh3IGJ1cyBhdCAlMDhseCIsICh1bnNpZ25l ZCBsb25nKXJlcy0+c3RhcnQpOw0KPiArCWlkZXYtPmFkYXB0ZXIub3duZXIgPSBUSElTX01PRFVM RTsNCj4gKwlpZGV2LT5hZGFwdGVyLmFsZ28gPSAmbWNocF9jb3JlaTJjX2FsZ287DQo+ICsJaWRl di0+YWRhcHRlci5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsNCj4gKwlpZGV2LT5hZGFwdGVyLmRl di5vZl9ub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7DQo+ICsJaWRldi0+YWRhcHRlci50aW1lb3V0 ID0gTUlDUk9DSElQX0kyQ19USU1FT1VUOw0KPiArDQo+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEo cGRldiwgaWRldik7DQo+ICsNCj4gKwlyZXQgPSBpMmNfYWRkX2FkYXB0ZXIoJmlkZXYtPmFkYXB0 ZXIpOw0KPiArCWlmIChyZXQpIHsNCj4gKwkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGlkZXYtPmky Y19jbGspOw0KPiArCQlyZXR1cm4gcmV0Ow0KPiArCX0NCj4gKw0KPiArCWRldl9pbmZvKCZwZGV2 LT5kZXYsICJyZWdpc3RlcmVkIENvcmVJMkMgYnVzIGRyaXZlclxuIik7DQo+ICsNCj4gKwlyZXR1 cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBtY2hwX2NvcmVpMmNfcmVtb3ZlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ICt7DQo+ICsJc3RydWN0IG1jaHBfY29yZWkyY19k ZXYgKmlkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsNCj4gKw0KPiArCWNsa19kaXNh YmxlX3VucHJlcGFyZShpZGV2LT5pMmNfY2xrKTsNCj4gKwlpMmNfZGVsX2FkYXB0ZXIoJmlkZXYt PmFkYXB0ZXIpOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1jaHBfY29yZWkyY19vZl9tYXRjaFtdID0gew0KPiArCXsg LmNvbXBhdGlibGUgPSAibWljcm9jaGlwLG1wZnMtaTJjIiB9LA0KPiArCXsgLmNvbXBhdGlibGUg PSAibWljcm9jaGlwLGNvcmVpMmMtcnRsLXY3IiB9LA0KPiArCXt9LA0KPiArfTsNCj4gK01PRFVM RV9ERVZJQ0VfVEFCTEUob2YsIG1jaHBfY29yZWkyY19vZl9tYXRjaCk7DQo+ICsNCj4gK3N0YXRp YyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG1jaHBfY29yZWkyY19kcml2ZXIgPSB7DQo+ICsJLnBy b2JlID0gbWNocF9jb3JlaTJjX3Byb2JlLA0KPiArCS5yZW1vdmUgPSBtY2hwX2NvcmVpMmNfcmVt b3ZlLA0KPiArCS5kcml2ZXIgPSB7DQo+ICsJCS5uYW1lID0gIm1pY3JvY2hpcC1jb3JlaTJjIiwN Cj4gKwkJLm9mX21hdGNoX3RhYmxlID0gbWNocF9jb3JlaTJjX29mX21hdGNoLA0KPiArCX0sDQo+ ICt9Ow0KPiArDQo+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKG1jaHBfY29yZWkyY19kcml2ZXIp Ow0KPiArDQo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1pY3JvY2hpcCBDb3JlSTJDIGJ1cyBkcml2 ZXIiKTsNCj4gK01PRFVMRV9BVVRIT1IoIkRhaXJlIE1jTmFtYXJhIDxkYWlyZS5tY25hbWFyYUBt aWNyb2NoaXAuY29tPiIpOw0KPiArTU9EVUxFX0FVVEhPUigiQ29ub3IgRG9vbGV5IDxjb25vci5k b29sZXlAbWljcm9jaGlwLmNvbT4iKTsNCj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCg0K