From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 13974A054D; Thu, 26 May 2022 00:08:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AB81740146; Thu, 26 May 2022 00:08:04 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id F36DA40143 for ; Thu, 26 May 2022 00:08:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653516483; x=1685052483; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=vFF7tglx0cdIy+FvX+1g0zZYYcASGrvzLp/G4CIeh+o=; b=lWwVY1Z1karX5XbvgDjcUoa5bFjy4hEgU1ov8C8jN7K2CDfAuwZfwy1M wsNdnYt+0Nx7OzEVYpj699cudP4QU+yM4MY0NXRUDHuRiglVlgyw8bv9k oWNzBN52UAbY9O17kYyjzpsAK/aaNVBLppOdkq142dmrCb+crqB3lqAX+ P/YZU6bItzC+P73lB9y1tRRPW0dkH5G3vamvCiSBGUihCF/8JXAGj0DY6 unvlYTeqru8sxqEb8PygTiiTbJGW4evt141jRC93ElAShP6AQUtmlcgcy srlpgz4uqI/jSZC5pXNuJ9OPSn/FXmvqPk53GQ5srj7DwxLJl24TKYCDt A==; X-IronPort-AV: E=McAfee;i="6400,9594,10358"; a="273948387" X-IronPort-AV: E=Sophos;i="5.91,252,1647327600"; d="scan'208";a="273948387" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 May 2022 15:08:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,252,1647327600"; d="scan'208";a="704194139" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga004.jf.intel.com with ESMTP; 25 May 2022 15:08:01 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 25 May 2022 15:08:00 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 25 May 2022 15:08:00 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.174) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 25 May 2022 15:08:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O6eaBab111tkFKH0sXa1xAOgsUmZ1q6r2x1nR/yB4o4xae2O+T6pY8+2aUTOJ91Uf2Gr7L6P+SFRFVa5L2PAci1JpLE74tHU2Z71rhRSYmedZtqH/JpAIXDUclfNAkEA2Fr3OV1KqJSsNFFq96Bx7aoWq16f2CpQTdPbM59TsK7jVNevRJiTmda5p1eL4UgnARwGh8mPsEfjlJ+qUBKITfDoMDIgq5L5EEVtOQnjAOZDCKCEOzjPzPfIvq68ovhPj/6iBCN8WfR0g5wkOYbL+PbUY1wJBxUXZX75Oa4+O2JU/jnj1Zi3Rl40pPz5wTQA8bNSX4vsse/cbx+G6x9p7Q== 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=vFF7tglx0cdIy+FvX+1g0zZYYcASGrvzLp/G4CIeh+o=; b=Jfrr5mVuKp2nizZ8Dtl90aIZqWQ0sRTEbeTkoHGf81Tg7XrSPI6dL6vieS/3RTpPfkSO2+jgczNjy6+qVJeBMxlLMpKOw3ywgWeS4CJJ++n4/CypQ69c4tFdcMTV2tXvFE6k+f70t/1Kft2MGOrHMBOVVKye+mEr8xY2tNHjm0rpC3a+KVGmC+MajpJG1KaLND+YRsAtwKO3tzZY6qmo/YWI8yr6LdRE1HeTmNH/mx8vblxDM292sV04pcxmsaH3HMs9X5XWGV+c/aXZP37NtDMYlMvdj2rXnwrqZF/xvV4CQhuDgnsHmmg/jdMtH3rPWAUS9TocvLGtSZ/X4aN0yg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB2885.namprd11.prod.outlook.com (2603:10b6:a03:87::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13; Wed, 25 May 2022 22:07:58 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::40f:170c:c586:7219]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::40f:170c:c586:7219%2]) with mapi id 15.20.5273.023; Wed, 25 May 2022 22:07:58 +0000 From: "Chautru, Nicolas" To: "hemant.agrawal@nxp.com" CC: "thomas@monjalon.net" , "Zhang, Mingshan" , "david.marchand@redhat.com" , "dev@dpdk.org" , "gakhil@marvell.com" , "trix@redhat.com" , "Vargas, Hernan" Subject: RE: [PATCH v1] bbdev: add new operation for FFT processing Thread-Topic: [PATCH v1] bbdev: add new operation for FFT processing Thread-Index: AQHYNNwtFAfoThWsJ0qXGYYGKOaEYKy5STCAgHdT1WA= Date: Wed, 25 May 2022 22:07:58 +0000 Message-ID: References: <1646956157-245769-1-git-send-email-nicolas.chautru@intel.com> <1646956157-245769-2-git-send-email-nicolas.chautru@intel.com> In-Reply-To: <1646956157-245769-2-git-send-email-nicolas.chautru@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9c5668ef-0a0b-42a7-4065-08da3e9b0703 x-ms-traffictypediagnostic: BYAPR11MB2885: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: ixxmXJD3827nQggshw0sukirXVUw/AKdwiU2sPwA6fbHM1yYubfAeuLX5nz6EuryM1ZTeat4X4Ai8RF1JTKHxiWb+GffJlIQFJky9P578hM+ZnASP3yBNZyhTvt0qrdd1CLNZ0ioRIqwWERgfwdU6VPgGblRAGeSUjEatuR79MvCZ1VEmGRKrh4IRjHMZ+DSh2ph4GaIyxLi5WQtRme3jKUdRDa8TT6vEVtrPtoeYx4Z3L7bFChOoFCAyn8ZLr8Uh50omDzrMjCpeuHtxuwB89NYGQzHvcfSzbjnNnwD7dS37MqYvOXKhbmVMSmSY7Z/nWMp8vWhl9nRVrjOGuUVoFi5fLxe/ukqGbYIzosAWThd9xdDAQSJ4AQUksjc0DeZdnfY3fywPeHU/G1aU9+zTR55Z2ZJfMnEeWpLaSnVcYxPSNU+3I/1bICqdeAhSDFY2fCfjgKCm22uJXI8hab3UL4qG+GIJ1IEowOICx1gtv3LpLW+aRakS8R2qmHa3zqsKxXaEUEmKRX83OS+dDTKvDAr5Sz76fPlH4nOfd/ULeyCJ4oW+o9QuBM91TELbWU8dQw1tBthhwS/LDXzWdO9rxRVHylH+9Xf7SGXNRbCWDXpmN1+VaJVIOd3tr6H23qhQfObEunAezQ9m9Q/4z4j3b96ep6g8KXDs5ygMcbudNs2mO5DhY0NOqEc/Dn0h35v7PL0GLwxVa8jIf82qK56FA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(66946007)(316002)(107886003)(76116006)(6506007)(38070700005)(33656002)(8676002)(55016003)(38100700002)(6916009)(54906003)(4326008)(82960400001)(122000001)(5660300002)(83380400001)(8936002)(9686003)(52536014)(66556008)(64756008)(66476007)(66446008)(30864003)(2906002)(71200400001)(186003)(86362001)(53546011)(26005)(7696005)(508600001)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dndRcElSTWkxS2EwYWI1dEdUSFhOWTI5bm1IaGszMTZxOTdMaFZoUGV3cXhI?= =?utf-8?B?RGlFUnNMNnlBTG1BMXJTdUxVeThRUDlmaVR0YVAxV2tRZlR5dWJ6SkdSdWtm?= =?utf-8?B?c1dXMHpJZXIwdnZ5dDhjVWowRzZyVElyVVFTcU16QTRPaXE1aFIzWVE0REh4?= =?utf-8?B?Z0krZ2wxYUlzWHZ0Q3FsUXA4emU2WHFFckNSZHNQWFg1Mm1MNE9pelFNRE1B?= =?utf-8?B?SDBucTg1cEtCWmlidW9UU3JxYTN5THp4MFRxWllORG00SDZvVGdjQjJudENJ?= =?utf-8?B?SW5Ld3ByMGJ5d3BJdVQ2UDdpbUxwN1ZuU3licHh4VW5zazNiVUF1bHpwaWJy?= =?utf-8?B?MDV5aFNaRkJpRlBIWmViSnFXdmZQYnM2RW9tNzlpZHpzUExHL2xGdGt1OHVU?= =?utf-8?B?OTB1NGc0cFpFb2QrcVh1bUlYR0RQUTRXd1NBZjFDMFYvY0NTb1dOQmUrR2gx?= =?utf-8?B?YTlXbFJPb1FMZ2ZnSE4wbkVGN0xBZUFEZE9PWUNhV1hiWm5mMCtOV0xkN1pB?= =?utf-8?B?eEpKdnd0Qm43Zzh6OEVmeXAwcXpwQjgzdDlVdzBzNis5T1RFbXlVWCtSS2JP?= =?utf-8?B?ZUtTQ0p1YVdlU1ZJQ2lDQTdHdlFuajRCaUgyY21vZmtOblBUY2twbnNBNk04?= =?utf-8?B?ZGhHcUZ6SG1mbmM1VElPamlmNWJlZks4TjEzZ0V4SHo0UlROWm9xT3Q2Ny8x?= =?utf-8?B?eGM5YytDQ3MzcExGWVFEZVBPTE52QTV4Z0MzTDNrK0ZJTFZQTHl0Uy8rZEFr?= =?utf-8?B?TnFUeGFpQlZ4Q251OG9hdWllOGd6cit1V1VudXYrWk9oc3BUZ2U0RzhBb2tS?= =?utf-8?B?ekMwOVpjbGtHSmtrbTBSRk02LytOQ3p4VlZ1WDNvMEFubko5UFNlZ0Z4WVUw?= =?utf-8?B?cVo3b1JCRDhxQmpQQjhBMERPbDB5aE9wSFVRQmhrdVhVS1NDbUlkT29xU0g1?= =?utf-8?B?VGtlcERrdFdESlg5RSsvN3dRK21RSWF2NDBpTTF0VW5LdjJUTEcySHUyWmhv?= =?utf-8?B?dWtqYjAvUW1VUkF3bG5zaVRhVkFzcEVCalEyajhGN3JXcHdpV25jd2RqRlZq?= =?utf-8?B?dlhzZ0dJYUtaTzN0THNpS3JMU3Z4YWZEYVdKQ1NxZG8wS0JrQzJwdks2c2xC?= =?utf-8?B?QUpMWUNvQUxXaERWeTB0ZCs5YWJKTkpzSjgrbzZacFAyVVlyYldyNERtTUox?= =?utf-8?B?V0M5cFN2TE5WZldzQ3FHSy9Gb0hpSGV1SWNPNDgreVY2dUdSd0NDa3ZBUUl4?= =?utf-8?B?d1VTaW1NektaOERUbzBzVmZ5K3U3SW1ERWUrYzJ5dERiVmN1UnA2Y3BGMUFI?= =?utf-8?B?eEZVaGF4aEpkYzdxSXNTcVNzWkJkYTdWNWhEelgzdWxoNTdpaFZPT0lLS3Qr?= =?utf-8?B?SlRsZGR2Rk1oTFBkTkM4YldiOE1jVzloM3F1RDdaTWl2YnpSMEdtNjJFT3BC?= =?utf-8?B?TTJYUjVNeEZsK09mUWljMmFmc1FmTlRlbHh1RFFwYjAwc0x4NlAzcm8rdEpo?= =?utf-8?B?T1NlamZJRXZUSFUxYm5sbnNQdkE0dE0wNUIzTklUbTQ0aVQzUXRWTVFoRUNx?= =?utf-8?B?ayt1ZnVDUlZzYXdjdHhoamdCTVVGSENsbzhOMjZpUlppQkFtS2cwdThBNkFt?= =?utf-8?B?eHdzWTliM3FSUFBCbFpNcFVPUkZITmxzbnMrUE1ZYUZJOGdKemRoZkpGZ0pD?= =?utf-8?B?ZWVSUnZvWDJPbFJmcHlqTnBFMVhSbi85c0xXd0ZlQUdUVzdCbVo2bWVubUhD?= =?utf-8?B?M3p1THBRaVFNVDlUSEpsTmduYlFDSzZIS2psTzdXSkNHNUp1b2tJR0w0MXdm?= =?utf-8?B?WXRIbm45ZlpYR05veFFxUXpnb2F1UGowZjhXNTF2RDc1YWtpNG90OFNvNlFX?= =?utf-8?B?V0E0UkwrMDd0dTVudG0rY2FwcHBNQVBIUFA0Z21ZWmgxS1BwemdZdkl4K0M5?= =?utf-8?B?NFNlZ1R5T3FDOHBNKzBpeXZEOVBUVmpkQ2hkK0V6Y0pnWUtuYUVoWVpiN1lS?= =?utf-8?B?bEFiRGNrUjFNT3Fmd1V2VDRKRGZxUGsvVU1QeGh6SlpSV0xnZkNUN2RjeTBS?= =?utf-8?B?UUhqVjdaWHVqT1Zsem9qa2ljV3liNUhLTUFYaHhBSXpOT0lqYUIva0pUZEpJ?= =?utf-8?B?SGRnbVJFR2g0aW12QkNrd2ZEYlhLNUhyeWZPWCtUSkQ1MU9LaTZ5YTJTODNY?= =?utf-8?B?NWtxWXgzVkd1ZUxxaXg3RXc5YW9NTjJ0eGtqVjRpdlhFeDN6ZnNOWElLc2th?= =?utf-8?B?S01jRGg0WFVnY0dqY0loUTA4WWdXQTdKenlyTE1tZmt2QkZJZWhrS0xjWmhW?= =?utf-8?B?RzNERFg4UVlQUTkzSWpxa1dSVDNtYXdSdHJCb2ZtSmdYdDFUZFV3MCtVanJS?= =?utf-8?Q?HZkwetTXG72WGB4I=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c5668ef-0a0b-42a7-4065-08da3e9b0703 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2022 22:07:58.4696 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KGTMrznkp2A7eGSzA70U3RDltyfZurR7G+zFbb3aFqVqfXP1ZR0khpAiKeTdM5/9DrBGiUJW0b5dEW2pj4Ki0vK756Ggid71LEVKzJh8cUM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2885 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgSGVybmFudCwgDQpHZW50bGUgcmVtaW5kZXIgaW4gY2FzZSB5b3UgY2FuIGZpbmQgdGhlIHRp bWUuIENvdWxkIHBsZWFzZSBoYXZlIGEgbG9vayB0aGlzIHBhdGNoIGZvciBiYmRldiBhcGkgZXh0 ZW5zaW9uLiBUaGlzIGlzIHRhcmdldGluZyAyMi4xMS4NCk5ldyBvcGVyYXRpb24gdHlwZSBmb3Ig RkZUIHByb2Nlc3NpbmcgKE9uIHRvcCBvZiA0IGV4aXN0aW5nIG9wZXJhdGlvbnMgdHlwZXMpLiBU aGVyZSBpcyBubyBpbXBhY3QgdG8gdGhlIGxhMTJ4eCBQTUQgYnV0IHdvdWxkIGJlIGdvb2QgdG8g Z2V0IHJldmlldy9mZWVkYmFjay4gDQpUaGlzIGNhbiBiZSB1c2VkIGZvciB2YW5pbGxhIEZGVCBh bmQvb3IgY2hhaW5lZCBGRlQvaUZGVCArIHBvaW50LXdpc2UgbXVsdGlwbGljYXRpb24gbWFraW5n IGl0IGFwcGxpY2FibGUgZm9yIFNSUyBwcm9jZXNzaW5nLg0KVGhhbmtzLCANCk5pYw0KDQo+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IENoYXV0cnUsIE5pY29sYXMgPG5pY29s YXMuY2hhdXRydUBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCAxMCwgMjAyMiAz OjQ5IFBNDQo+IFRvOiBkZXZAZHBkay5vcmc7IGdha2hpbEBtYXJ2ZWxsLmNvbTsgdHJpeEByZWRo YXQuY29tDQo+IENjOiB0aG9tYXNAbW9uamFsb24ubmV0OyBoZW1hbnQuYWdyYXdhbEBueHAuY29t OyBaaGFuZywgTWluZ3NoYW4NCj4gPG1pbmdzaGFuLnpoYW5nQGludGVsLmNvbT47IGRhdmlkLm1h cmNoYW5kQHJlZGhhdC5jb207IENoYXV0cnUsDQo+IE5pY29sYXMgPG5pY29sYXMuY2hhdXRydUBp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2MV0gYmJkZXY6IGFkZCBuZXcgb3BlcmF0aW9u IGZvciBGRlQgcHJvY2Vzc2luZw0KPiANCj4gRXh0ZW5zaW9uIG9mIGJiZGV2IG9wZXJhdGlvbiB0 byBzdXBwb3J0IEZGVCBiYXNlZCBvcGVyYXRpb25zLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTmlj b2xhcyBDaGF1dHJ1IDxuaWNvbGFzLmNoYXV0cnVAaW50ZWwuY29tPg0KPiAtLS0NCj4gIGRvYy9n dWlkZXMvcHJvZ19ndWlkZS9iYmRldi5yc3QgfCAxMzANCj4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysNCj4gIGxpYi9iYmRldi9ydGVfYmJkZXYuYyAgICAgICAgICAgfCAgIDgg KysrDQo+ICBsaWIvYmJkZXYvcnRlX2JiZGV2LmggICAgICAgICAgIHwgIDc2ICsrKysrKysrKysr KysrKysrKysrDQo+ICBsaWIvYmJkZXYvcnRlX2JiZGV2X29wLmggICAgICAgIHwgMTQ5DQo+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxpYi9iYmRldi92ZXJz aW9uLm1hcCAgICAgICAgICAgfCAgMTAgKysrDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDM3MyBpbnNl cnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2JiZGV2 LnJzdA0KPiBiL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9iYmRldi5yc3QgaW5kZXggNzBmYTAxYS4u Mjc5MTI4NiAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2JiZGV2LnJzdA0K PiArKysgYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvYmJkZXYucnN0DQo+IEBAIC0xMTE4LDYgKzEx MTgsMTM2IEBAIEZpZ3VyZSA6bnVtcmVmOmBmaWd1cmVfdHVyYm9fdGJfZGVjb2RlYCBhYm92ZQ0K PiBzaG93aW5nIHRoZSBUdXJibyBkZWNvZGluZyBvZiBDQnMgdXNpbmcgQkJERVYgaW50ZXJmYWNl IGluIFRCLW1vZGUgIGlzIGFsc28NCj4gdmFsaWQgZm9yIExEUEMgZGVjb2RlLg0KPiANCj4gK0JC REVWIEZGVCBPcGVyYXRpb24NCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gKw0K PiArVGhpcyBvcGVyYXRpb24gYWxsb3dzIHRvIHJ1biBhIGNvbWJpbmF0aW9uIG9mIERGVCBhbmQv b3IgSURGVCBhbmQvb3IgdGltZS0NCj4gZG9tYWluIHdpbmRvd2luZy4NCj4gK1RoZXNlIGNhbiBi ZSB1c2VkIGluIGEgbW9kdWxhciBmYXNoaW9uICh1c2luZyBieXBhc3MgbW9kZXMpIG9yIGFzIGEN Cj4gK3Byb2Nlc3NpbmcgcGlwZWxpbmUgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIEZGVC1iYXNlZCBi YXNlYmFuZCBzaWduYWwNCj4gcHJvY2Vzc2luZy4NCj4gK0luIG1vcmUgZGV0YWlscyBpdCBhbGxv d3MgOg0KPiArLSB0byBwcm9jZXNzIHRoZSBkYXRhIGZpcnN0IHRocm91Z2ggYW4gSURGVCBvZiBh ZGp1c3RhYmxlIHNpemUgYW5kDQo+ICtwYWRkaW5nOw0KPiArLSB0byBwZXJmb3JtIHRoZSB3aW5k b3dpbmcgYXMgYSBwcm9ncmFtbWFibGUgY3ljbGljIHNoaWZ0IG9mZnNldCBvZiB0aGUNCj4gK2Rh dGEgZm9sbG93ZWQgYnkgYSBwb2ludHdpc2UgbXVsdGlwbGljYXRpb24gYnkgYSB0aW1lIGRvbWFp biB3aW5kb3c7DQo+ICstIHRvIHByb2Nlc3MgdGhlIHJlbGF0ZWQgZGF0YSB0aHJvdWdoIGEgREZU IG9mIGFkanVzdGFibGUgc2l6ZSBhbmQNCj4gK2RlcGFkZGluZyBmb3IgZWFjaCBzdWNoIGN5Y2xp YyBzaGlmdCBvdXRwdXQuDQo+ICsNCj4gK0EgZmxleGlibGUgbnVtYmVyIG9mIFJ4IGFudGVubmFz IGFyZSBiZWluZyBwcm9jZXNzZWQgaW4gcGFyYWxsZWwgd2l0aCB0aGUNCj4gc2FtZSBjb25maWd1 cmF0aW9uLg0KPiArVGhlIEFQSSBhbGxvd3MgbW9yZSBnZW5lcmFsbHkgZm9yIGZsZXhpYmlsaXR5 IGluIHdoYXQgdGhlIFBNRCBtYXkNCj4gK3N1cHBvcnQgKGNhYmFiaWxpdHkgZmxhZ3MpIGFuZCBm bGV4aWJpbGl0eSB0byBhZGp1c3Qgc29tZSBvZiB0aGUgcGFyYW1ldGVycyBvZg0KPiB0aGUgcHJv Y2Vzc2luZy4NCj4gKw0KPiArVGhlIG9wZXJhdGlvbi9jYXBhYmlsaXR5IGZsYWdzIHRoYXQgY2Fu IGJlIHNldCBmb3IgZWFjaCBGRlQgb3BlcmF0aW9uIGFyZQ0KPiBnaXZlbiBiZWxvdy4NCj4gKw0K PiArICAqKk5PVEU6KiogVGhlIGFjdHVhbCBvcGVyYXRpb24gZmxhZ3MgdGhhdCBtYXkgYmUgdXNl ZCB3aXRoIGEgc3BlY2lmaWMNCj4gKyBCQkRFViBQTUQgYXJlIGRlcGVuZGVudCBvbiB0aGUgZHJp dmVyIGNhcGFiaWxpdGllcyBhcyByZXBvcnRlZCB2aWENCj4gKyBgYHJ0ZV9iYmRldl9pbmZvX2dl dCgpYGAsIGFuZCBtYXkgYmUgYSBzdWJzZXQgb2YgdGhvc2UgYmVsb3cuDQo+ICsNCj4gKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsNCj4gK3xEZXNjcmlwdGlvbiBvZiBGRlQgY2FwYWJpbGl0eSBmbGFncyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKys9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT0rDQo+ICt8UlRF X0JCREVWX0ZGVF9XSU5ET1dJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8DQo+ICt8IFNldCB0byBlbmFibGUvc3VwcG9ydCB3aW5kb3dpbmcgaW4gdGltZSBk b21haW4gICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JC REVWX0ZGVF9DU19BREpVU1RNRU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8DQo+ICt8IFNldCB0byBlbmFibGUvc3VwcG9ydCAgdGhlIGN5Y2xpYyBzaGlmdCB0aW1l IG9mZnNldCBhZGp1c3RtZW50ICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVW X0ZGVF9ERlRfQllQQVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8DQo+ICt8IFNldCB0byBieXBhc3MgdGhlIERGVCBhbmQgdXNlIGRpcmVjdGx5IHRoZSBJREZU IGFzIGFuIG9wdGlvbiAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZG VF9JREZUX0JZUEFTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 DQo+ICt8IFNldCB0byBieXBhc3MgdGhlIElERlQgYW5kIHVzZSBkaXJlY3RseSB0aGUgREZUIGFz IGFuIG9wdGlvbiAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZGVF9X SU5ET1dJTkdfQllQQVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ ICt8IFNldCB0byBieXBhc3MgdGhlIHRpbWUgZG9tYWluIHdpbmRvd2luZyAgYXMgYW4gb3B0aW9u ICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZGVF9QT1dF Ul9NRUFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICt8 IFNldCB0byBwcm92aWRlIGFuIG9wdGlvbmFsIHBvd2VyIG1lYXN1bWVudCBvZiB0aGUgREZUIG91 dHB1dCAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZGVF9GUDE2X0lO UFVUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICt8IFNl dCBpZiB0aGUgaW5wdXQgZGF0YSBzaGFsbCB1c2UgRlAxNiBmb3JtYXQgaW5zdGVhZCBvZiBJTlQx NiAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UlRFX0JCREVWX0ZGVF9GUDE2X09VVFBV VCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICt8IFNldCBp ZiB0aGUgb3V0cHV0IGRhdGEgc2hhbGwgdXNlIEZQMTYgZm9ybWF0IGluc3RlYWQgb2YgSU5UMTYg ICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gK1RoZSBzdHJ1Y3R1cmUgcGFzc2VkIGZv ciBlYWNoIEZGVCBvcGVyYXRpb24gaXMgZ2l2ZW4gYmVsb3csIHdpdGggdGhlDQo+ICtvcGVyYXRp b24gZmxhZ3MgZm9ybWluZyBhIGJpdG1hc2sgaW4gdGhlIGBgb3BfZmxhZ3NgYCBmaWVsZC4NCj4g Kw0KPiArLi4gY29kZS1ibG9jazo6IGMNCj4gKw0KPiArICAgIHN0cnVjdCBydGVfYmJkZXZfb3Bf ZmZ0IHsNCj4gKyAgICAgICAgc3RydWN0IHJ0ZV9iYmRldl9vcF9kYXRhIGJhc2VfaW5wdXQ7DQo+ ICsgICAgICAgIHN0cnVjdCBydGVfYmJkZXZfb3BfZGF0YSBiYXNlX291dHB1dDsNCj4gKyAgICAg ICAgc3RydWN0IHJ0ZV9iYmRldl9vcF9kYXRhIHBvd2VyX21lYXNfb3V0cHV0Ow0KPiArICAgICAg ICB1aW50MzJfdCBvcF9mbGFnczsNCj4gKyAgICAgICAgdWludDE2X3QgaW5wdXRfc2VxdWVuY2Vf c2l6ZTsNCj4gKyAgICAgICAgdWludDE2X3QgaW5wdXRfbGVhZGluZ19wYWRkaW5nOw0KPiArICAg ICAgICB1aW50MTZfdCBvdXRwdXRfc2VxdWVuY2Vfc2l6ZTsNCj4gKyAgICAgICAgdWludDE2X3Qg b3V0cHV0X2xlYWRpbmdfZGVwYWRkaW5nOw0KPiArICAgICAgICB1aW50OF90IHdpbmRvd19pbmRl eFtSVEVfQkJERVZfTUFYX0NTXzJdOw0KPiArICAgICAgICB1aW50MTZfdCBjc19iaXRtYXA7DQo+ ICsgICAgICAgIHVpbnQ4X3QgbnVtX2FudGVubmFzX2xvZzI7DQo+ICsgICAgICAgIHVpbnQ4X3Qg aWRmdF9sb2cyOw0KPiArICAgICAgICB1aW50OF90IGRmdF9sb2cyOw0KPiArICAgICAgICBpbnQ4 X3QgY3NfdGltZV9hZGp1c3RtZW50Ow0KPiArICAgICAgICBpbnQ4X3QgaWRmdF9zaGlmdDsNCj4g KyAgICAgICAgaW50OF90IGRmdF9zaGlmdDsNCj4gKyAgICAgICAgdWludDE2X3QgbmNzX3JlY2lw cm9jYWw7DQo+ICsgICAgICAgIHVpbnQxNl90IHBvd2VyX3NoaWZ0Ow0KPiArICAgICAgICB1aW50 MTZfdCBmcDE2X2V4cF9hZGp1c3Q7DQo+ICsgICAgfTsNCj4gKw0KPiArVGhlIEZGVCBwYXJhbWV0 ZXJzIGFyZSBzZXQgb3V0IGluIHRoZSB0YWJsZSBiZWxvdy4NCj4gKw0KPiArKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8UGFyYW1ldGVyICAgICAgICAgICAgIHxEZXNjcmlwdGlv biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4g Kys9PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KPiA9PT09PT09PQ0KPiArKz09PT09PT09PT09PT09PSsNCj4gK3xiYXNlX2lucHV0 ICAgICAgICAgICAgfGlucHV0IGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICt8YmFzZV9vdXRwdXQgICAgICAgICAgIHxvdXRwdXQgZGF0YSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiArfHBvd2VyX21lYXNfb3V0cHV0ICAgICB8b3B0aW9uYWwgb3V0cHV0IGRh dGEgd2l0aCBwb3dlciBtZWFzdXJlbWVudA0KPiBvbiBERlQgb3V0cHV0ICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfG9wX2ZsYWdzICAgICAgICAgICAgICB8Yml0bWFz ayBvZiBhbGwgYWN0aXZlIG9wZXJhdGlvbiBjYXBhYmlsaXRpZXMgICAgICAgICAgICAgICAgICB8 DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xpbnB1dF9zZXF1ZW5jZV9z aXplICAgfHNpemUgb2YgdGhlIGlucHV0IHNlcXVlbmNlIGluIDMyLWJpdHMgcG9pbnRzIHBlcg0K PiBhbnRlbm5hICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8 aW5wdXRfbGVhZGluZ19wYWRkaW5nIHxudW1iZXIgb2YgcG9pbnRzIHBhZGRlZCBhdCB0aGUgc3Rh cnQgb2YgaW5wdXQNCj4gZGF0YSAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiArfG91dHB1dF9zZXF1ZW5jZV9zaXplICB8c2l6ZSBvZiB0aGUgb3V0cHV0 IHNlcXVlbmNlIHBlciBhbnRlbm5hIGFuZA0KPiBjeWNsaWMgc2hpZnQgICAgICB8DQo+ICsrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xvdXRwdXRfZGVwYWRkaW5nICAgICAgfG51 bWJlciBvZiBwb2ludHMgZGVwYWRkZWQgYXQgdGhlIHN0YXJ0IG9mIG91dHB1dA0KPiBkYXRhICAg ICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8d2luZG93X2lu ZGV4ICAgICAgICAgIHxvcHRpb25hbCB3aW5kb3dpbmcgcHJvZmlsZSBpbmRleCB1c2VkIGZvciBl YWNoIGN5Y2xpYw0KPiBzaGlmdCAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiArfGNzX2JpdG1hcCAgICAgICAgICAgICB8Yml0bWFwIG9mIHRoZSBjeWNsaWMgc2hpZnQg b3V0cHV0IHJlcXVlc3RlZCAoTFNCIGZvcg0KPiBpbmRleCAwKSB8DQo+ICsrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xudW1fYW50ZW5uYXNfbG9nMiAgICAgfG51bWJlciBvZiBh bnRlbm5hcyBhcyBhIGxvZzIgKDEwIG1hcHMgdG8gMTAyNC4uLikNCj4gfA0KPiArKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8aWRmdF9sb2cyICAgICAgICAgICAgIHxpREZUIHNp emUgYXMgYSBsb2cyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwN Cj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfGRmdF9sb2cyICAgICAgICAg ICAgICB8REZUIHNpemUgYXMgYSBsb2cyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xjc190 aW1lX2FkanVzdG1lbnQgICAgfGFkanVzdG1lbnQgb2YgdGltZSBwb3NpdGlvbiBvZiBhbGwgdGhl IGN5Y2xpYyBzaGlmdA0KPiBvdXRwdXQgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ICt8aWRmdF9zaGlmdCAgICAgICAgICAgIHxzaGlmdCBkb3duIG9mIHNpZ25hbCBs ZXZlbCBwb3N0IGlERlQgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfGRmdF9zaGlmdCAgICAgICAgICAgICB8c2hpZnQgZG93 biBvZiBzaWduYWwgbGV2ZWwgcG9zdCBERlQgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3xuY3NfcmVjaXByb2NhbCAgICAg ICAgfGludmVyc2Ugb2YgbWF4IG51bWJlciBvZiBDUyBub3JtYWxpemVkIHRvIDE1YiAoaWUuDQo+ IDIzMSBmb3IgMTIpfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8cG93 ZXJfc2hpZnQgICAgICAgICAgIHxzaGlmdCBkb3duIG9mIGxldmVsIG9mIHBvd2VyIG1lYXN1cmVt ZW50IHdoZW4NCj4gZW5hYmxlZCAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKw0KPiArfGZwMTZfZXhwX2FkanVzdCAgICAgICB8dmFsdWUgYWRkZWQgdG8gRlAxNiBl eHBvbmVudCBhdCBjb252ZXJzaW9uIGZyb20NCj4gSU5UMTYgICAgICAgICB8DQo+ICsrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKw0KPiArVGhlIG1idWYgaW5wdXQgYGBiYXNlX2lu cHV0YGAgaXMgbWFuZGF0b3J5IGZvciBhbGwgQkJERVYgUE1EcyBhbmQgaXMNCj4gK3RoZSBpbmNv bWluZyBkYXRhIGZvciB0aGUgcHJvY2Vzc2luZy4gSXRzIHNpemUgbWF5IG5vdCBmaXQgaW50byBh bg0KPiArYWN0dWFsIG1idWYsIGJ1dCB0aGUgc3R1Y3R1cmUgaXMgdXNlZCB0byBwYXNzIGlvdmEg YWRkcmVzcy4NCj4gK1RoZSBtYnVmIG91dHB1dCBgYG91dHB1dGBgIGlzIG1hbmRhdG9yeSBhbmQg aXMgb3V0cHV0IG9mIHRoZSBGRlQgcHJvY2Vzc2luZw0KPiBjaGFpbi4NCj4gK0VhY2ggcG9pbnQg aXMgYSBjb21wbGV4IG51bWJlciBvZiAzMmJpdHMgOiBlaXRoZXIgYXMgMiBJTlQxNiBvciBhcyAy DQo+ICtGUDE2IGJhc2VkIHdoZW4gdGhlIG9wdGlvbiBzdXBwb3J0ZWQuDQo+ICtUaGUgZGF0YSBs YXlvdXQgaXMgYmFzZWQgb24gY29udGlndW91cyBjb25jYXRlbmF0aW9uIG9mIG91dHB1dCBkYXRh DQo+ICtmaXJzdCBieSBjeWNsaWMgc2hpZnQgdGhlbiBieSBhbnRlbm5hLg0KPiANCj4gIFNhbXBs ZSBjb2RlDQo+ICAtLS0tLS0tLS0tLQ0KPiBkaWZmIC0tZ2l0IGEvbGliL2JiZGV2L3J0ZV9iYmRl di5jIGIvbGliL2JiZGV2L3J0ZV9iYmRldi5jIGluZGV4DQo+IGFhZWU3YjcuLmE3MmVjYmEgMTAw NjQ0DQo+IC0tLSBhL2xpYi9iYmRldi9ydGVfYmJkZXYuYw0KPiArKysgYi9saWIvYmJkZXYvcnRl X2JiZGV2LmMNCj4gQEAgLTg1MCw2ICs4NTAsOSBAQCBzdHJ1Y3QgcnRlX2JiZGV2ICoNCj4gIAlj YXNlIFJURV9CQkRFVl9PUF9MRFBDX0VOQzoNCj4gIAkJcmVzdWx0ID0gc2l6ZW9mKHN0cnVjdCBy dGVfYmJkZXZfZW5jX29wKTsNCj4gIAkJYnJlYWs7DQo+ICsJY2FzZSBSVEVfQkJERVZfT1BfRkZU Og0KPiArCQlyZXN1bHQgPSBzaXplb2Yoc3RydWN0IHJ0ZV9iYmRldl9mZnRfb3ApOw0KPiArCQli cmVhazsNCj4gIAlkZWZhdWx0Og0KPiAgCQlicmVhazsNCj4gIAl9DQo+IEBAIC04NzMsNiArODc2 LDEwIEBAIHN0cnVjdCBydGVfYmJkZXYgKg0KPiAgCQlzdHJ1Y3QgcnRlX2JiZGV2X2VuY19vcCAq b3AgPSBlbGVtZW50Ow0KPiAgCQltZW1zZXQob3AsIDAsIG1lbXBvb2wtPmVsdF9zaXplKTsNCj4g IAkJb3AtPm1lbXBvb2wgPSBtZW1wb29sOw0KPiArCX0gZWxzZSBpZiAodHlwZSA9PSBSVEVfQkJE RVZfT1BfRkZUKSB7DQo+ICsJCXN0cnVjdCBydGVfYmJkZXZfZmZ0X29wICpvcCA9IGVsZW1lbnQ7 DQo+ICsJCW1lbXNldChvcCwgMCwgbWVtcG9vbC0+ZWx0X3NpemUpOw0KPiArCQlvcC0+bWVtcG9v bCA9IG1lbXBvb2w7DQo+ICAJfQ0KPiAgfQ0KPiANCj4gQEAgLTExMjMsNiArMTEzMCw3IEBAIHN0 cnVjdCBydGVfbWVtcG9vbCAqDQo+ICAJCSJSVEVfQkJERVZfT1BfVFVSQk9fRU5DIiwNCj4gIAkJ IlJURV9CQkRFVl9PUF9MRFBDX0RFQyIsDQo+ICAJCSJSVEVfQkJERVZfT1BfTERQQ19FTkMiLA0K PiArCQkiUlRFX0JCREVWX09QX0ZGVCIsDQo+ICAJfTsNCj4gDQo+ICAJaWYgKG9wX3R5cGUgPCBS VEVfQkJERVZfT1BfVFlQRV9DT1VOVCkgZGlmZiAtLWdpdA0KPiBhL2xpYi9iYmRldi9ydGVfYmJk ZXYuaCBiL2xpYi9iYmRldi9ydGVfYmJkZXYuaCBpbmRleCBiODhjODgxLi5lOWNhNjczDQo+IDEw MDY0NA0KPiAtLS0gYS9saWIvYmJkZXYvcnRlX2JiZGV2LmgNCj4gKysrIGIvbGliL2JiZGV2L3J0 ZV9iYmRldi5oDQo+IEBAIC0zODAsNiArMzgwLDEyIEBAIHR5cGVkZWYgdWludDE2X3QNCj4gKCpy dGVfYmJkZXZfZW5xdWV1ZV9kZWNfb3BzX3QpKA0KPiAgCQlzdHJ1Y3QgcnRlX2JiZGV2X2RlY19v cCAqKm9wcywNCj4gIAkJdWludDE2X3QgbnVtKTsNCj4gDQo+ICsvKiogQGludGVybmFsIEVucXVl dWUgZmZ0IG9wZXJhdGlvbnMgZm9yIHByb2Nlc3Npbmcgb24gcXVldWUgb2YgYQ0KPiArZGV2aWNl LiAqLyB0eXBlZGVmIHVpbnQxNl90ICgqcnRlX2JiZGV2X2VucXVldWVfZmZ0X29wc190KSgNCj4g KwkJc3RydWN0IHJ0ZV9iYmRldl9xdWV1ZV9kYXRhICpxX2RhdGEsDQo+ICsJCXN0cnVjdCBydGVf YmJkZXZfZmZ0X29wICoqb3BzLA0KPiArCQl1aW50MTZfdCBudW0pOw0KPiArDQo+ICAvKiogQGlu dGVybmFsIERlcXVldWUgZW5jb2RlIG9wZXJhdGlvbnMgZnJvbSBhIHF1ZXVlIG9mIGEgZGV2aWNl LiAqLw0KPiB0eXBlZGVmIHVpbnQxNl90ICgqcnRlX2JiZGV2X2RlcXVldWVfZW5jX29wc190KSgN Cj4gIAkJc3RydWN0IHJ0ZV9iYmRldl9xdWV1ZV9kYXRhICpxX2RhdGEsDQo+IEBAIC0zOTAsNiAr Mzk2LDExIEBAIHR5cGVkZWYgdWludDE2X3QNCj4gKCpydGVfYmJkZXZfZGVxdWV1ZV9kZWNfb3Bz X3QpKA0KPiAgCQlzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSwNCj4gIAkJc3Ry dWN0IHJ0ZV9iYmRldl9kZWNfb3AgKipvcHMsIHVpbnQxNl90IG51bSk7DQo+IA0KPiArLyoqIEBp bnRlcm5hbCBEZXF1ZXVlIGZmdCBvcGVyYXRpb25zIGZyb20gYSBxdWV1ZSBvZiBhIGRldmljZS4g Ki8NCj4gK3R5cGVkZWYgdWludDE2X3QgKCpydGVfYmJkZXZfZGVxdWV1ZV9mZnRfb3BzX3QpKA0K PiArCQlzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSwNCj4gKwkJc3RydWN0IHJ0 ZV9iYmRldl9mZnRfb3AgKipvcHMsIHVpbnQxNl90IG51bSk7DQo+ICsNCj4gICNkZWZpbmUgUlRF X0JCREVWX05BTUVfTUFYX0xFTiAgNjQgIC8qKjwgTWF4IGxlbmd0aCBvZiBkZXZpY2UgbmFtZQ0K PiAqLw0KPiANCj4gIC8qKg0KPiBAQCAtNDM4LDYgKzQ0OSwxMCBAQCBzdHJ1Y3QgX19ydGVfY2Fj aGVfYWxpZ25lZCBydGVfYmJkZXYgew0KPiAgCXJ0ZV9iYmRldl9kZXF1ZXVlX2VuY19vcHNfdCBk ZXF1ZXVlX2xkcGNfZW5jX29wczsNCj4gIAkvKiogRGVxdWV1ZSBkZWNvZGUgZnVuY3Rpb24gKi8N Cj4gIAlydGVfYmJkZXZfZGVxdWV1ZV9kZWNfb3BzX3QgZGVxdWV1ZV9sZHBjX2RlY19vcHM7DQo+ ICsJLyoqIEVucXVldWUgRkZUIGZ1bmN0aW9uICovDQo+ICsJcnRlX2JiZGV2X2VucXVldWVfZmZ0 X29wc190IGVucXVldWVfZmZ0X29wczsNCj4gKwkvKiogRGVxdWV1ZSBGRlQgZnVuY3Rpb24gKi8N Cj4gKwlydGVfYmJkZXZfZGVxdWV1ZV9mZnRfb3BzX3QgZGVxdWV1ZV9mZnRfb3BzOw0KPiAgCWNv bnN0IHN0cnVjdCBydGVfYmJkZXZfb3BzICpkZXZfb3BzOyAgLyoqPCBGdW5jdGlvbnMgZXhwb3J0 ZWQgYnkNCj4gUE1EICovDQo+ICAJc3RydWN0IHJ0ZV9iYmRldl9kYXRhICpkYXRhOyAgLyoqPCBQ b2ludGVyIHRvIGRldmljZSBkYXRhICovDQo+ICAJZW51bSBydGVfYmJkZXZfc3RhdGUgc3RhdGU7 ICAvKio8IElmIGRldmljZSBpcyBjdXJyZW50bHkgdXNlZCBvciBub3QNCj4gKi8gQEAgLTU3MCw2 ICs1ODUsMzYgQEAgc3RydWN0IF9fcnRlX2NhY2hlX2FsaWduZWQgcnRlX2JiZGV2IHsNCj4gIAly ZXR1cm4gZGV2LT5lbnF1ZXVlX2xkcGNfZGVjX29wcyhxX2RhdGEsIG9wcywgbnVtX29wcyk7ICB9 DQo+IA0KPiArLyoqDQo+ICsgKiBFbnF1ZXVlIGEgYnVyc3Qgb2YgZmZ0IG9wZXJhdGlvbnMgdG8g YSBxdWV1ZSBvZiB0aGUgZGV2aWNlLg0KPiArICogVGhpcyBmdW5jdGlvbnMgb25seSBlbnF1ZXVl cyBhcyBtYW55IG9wZXJhdGlvbnMgYXMgY3VycmVudGx5DQo+ICtwb3NzaWJsZSBhbmQNCj4gKyAq IGRvZXMgbm90IGJsb2NrIHVudGlsIEBwIG51bV9vcHMgZW50cmllcyBpbiB0aGUgcXVldWUgYXJl IGF2YWlsYWJsZS4NCj4gKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcHJvdmlkZSBhbnkgZXJy b3Igbm90aWZpY2F0aW9uIHRvIGF2b2lkIHRoZQ0KPiArICogY29ycmVzcG9uZGluZyBvdmVyaGVh ZC4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gZGV2X2lkDQo+ICsgKiAgIFRoZSBpZGVudGlmaWVyIG9m IHRoZSBkZXZpY2UuDQo+ICsgKiBAcGFyYW0gcXVldWVfaWQNCj4gKyAqICAgVGhlIGluZGV4IG9m IHRoZSBxdWV1ZS4NCj4gKyAqIEBwYXJhbSBvcHMNCj4gKyAqICAgUG9pbnRlciBhcnJheSBjb250 YWluaW5nIG9wZXJhdGlvbnMgdG8gYmUgZW5xdWV1ZWQgTXVzdCBoYXZlIGF0IGxlYXN0DQo+ICsg KiAgIEBwIG51bV9vcHMgZW50cmllcw0KPiArICogQHBhcmFtIG51bV9vcHMNCj4gKyAqICAgVGhl IG1heGltdW0gbnVtYmVyIG9mIG9wZXJhdGlvbnMgdG8gZW5xdWV1ZS4NCj4gKyAqDQo+ICsgKiBA cmV0dXJuDQo+ICsgKiAgIFRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBhY3R1YWxseSBlbnF1ZXVl ZCAodGhpcyBpcyB0aGUgbnVtYmVyIG9mDQo+IHByb2Nlc3NlZA0KPiArICogICBlbnRyaWVzIGlu IHRoZSBAcCBvcHMgYXJyYXkpLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK3N0 YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gK3J0ZV9iYmRldl9lbnF1ZXVlX2ZmdF9vcHModWludDE2 X3QgZGV2X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gKwkJc3RydWN0IHJ0ZV9iYmRldl9mZnRf b3AgKipvcHMsIHVpbnQxNl90IG51bV9vcHMpIHsNCj4gKwlzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYg PSAmcnRlX2JiZGV2X2RldmljZXNbZGV2X2lkXTsNCj4gKwlzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVl X2RhdGEgKnFfZGF0YSA9ICZkZXYtPmRhdGEtDQo+ID5xdWV1ZXNbcXVldWVfaWRdOw0KPiArCXJl dHVybiBkZXYtPmVucXVldWVfZmZ0X29wcyhxX2RhdGEsIG9wcywgbnVtX29wcyk7IH0NCj4gDQo+ ICAvKioNCj4gICAqIERlcXVldWUgYSBidXJzdCBvZiBwcm9jZXNzZWQgZW5jb2RlIG9wZXJhdGlv bnMgZnJvbSBhIHF1ZXVlIG9mIHRoZQ0KPiBkZXZpY2UuDQo+IEBAIC02OTUsNiArNzQwLDM3IEBA IHN0cnVjdCBfX3J0ZV9jYWNoZV9hbGlnbmVkIHJ0ZV9iYmRldiB7DQo+ICAJcmV0dXJuIGRldi0+ ZGVxdWV1ZV9sZHBjX2RlY19vcHMocV9kYXRhLCBvcHMsIG51bV9vcHMpOyAgfQ0KPiANCj4gKy8q Kg0KPiArICogRGVxdWV1ZSBhIGJ1cnN0IG9mIGZmdCBvcGVyYXRpb25zIGZyb20gYSBxdWV1ZSBv ZiB0aGUgZGV2aWNlLg0KPiArICogVGhpcyBmdW5jdGlvbnMgcmV0dXJucyBvbmx5IHRoZSBjdXJy ZW50IGNvbnRlbnRzIG9mIHRoZSBxdWV1ZSwgYW5kDQo+ICtkb2VzIG5vdA0KPiArICogYmxvY2sg dW50aWwgQCBudW1fb3BzIGlzIGF2YWlsYWJsZS4NCj4gKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBu b3QgcHJvdmlkZSBhbnkgZXJyb3Igbm90aWZpY2F0aW9uIHRvIGF2b2lkIHRoZQ0KPiArICogY29y cmVzcG9uZGluZyBvdmVyaGVhZC4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gZGV2X2lkDQo+ICsgKiAg IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBkZXZpY2UuDQo+ICsgKiBAcGFyYW0gcXVldWVfaWQNCj4g KyAqICAgVGhlIGluZGV4IG9mIHRoZSBxdWV1ZS4NCj4gKyAqIEBwYXJhbSBvcHMNCj4gKyAqICAg UG9pbnRlciBhcnJheSB3aGVyZSBvcGVyYXRpb25zIHdpbGwgYmUgZGVxdWV1ZWQgdG8uIE11c3Qg aGF2ZSBhdCBsZWFzdA0KPiArICogICBAcCBudW1fb3BzIGVudHJpZXMNCj4gKyAqIEBwYXJhbSBu dW1fb3BzDQo+ICsgKiAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvcGVyYXRpb25zIHRvIGRlcXVl dWUuDQo+ICsgKg0KPiArICogQHJldHVybg0KPiArICogICBUaGUgbnVtYmVyIG9mIG9wZXJhdGlv bnMgYWN0dWFsbHkgZGVxdWV1ZWQgKHRoaXMgaXMgdGhlIG51bWJlciBvZg0KPiBlbnRyaWVzDQo+ ICsgKiAgIGNvcGllZCBpbnRvIHRoZSBAcCBvcHMgYXJyYXkpLg0KPiArICovDQo+ICtfX3J0ZV9l eHBlcmltZW50YWwNCj4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gK3J0ZV9iYmRldl9kZXF1 ZXVlX2ZmdF9vcHModWludDE2X3QgZGV2X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gKwkJc3Ry dWN0IHJ0ZV9iYmRldl9mZnRfb3AgKipvcHMsIHVpbnQxNl90IG51bV9vcHMpIHsNCj4gKwlzdHJ1 Y3QgcnRlX2JiZGV2ICpkZXYgPSAmcnRlX2JiZGV2X2RldmljZXNbZGV2X2lkXTsNCj4gKwlzdHJ1 Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSA9ICZkZXYtPmRhdGEtDQo+ID5xdWV1ZXNb cXVldWVfaWRdOw0KPiArCXJldHVybiBkZXYtPmRlcXVldWVfZmZ0X29wcyhxX2RhdGEsIG9wcywg bnVtX29wcyk7IH0NCj4gKw0KPiAgLyoqIERlZmluaXRpb25zIG9mIGRldmljZSBldmVudCB0eXBl cyAqLyAgZW51bSBydGVfYmJkZXZfZXZlbnRfdHlwZSB7DQo+ICAJUlRFX0JCREVWX0VWRU5UX1VO S05PV04sICAvKio8IHVua25vd24gZXZlbnQgdHlwZSAqLyBkaWZmIC0tDQo+IGdpdCBhL2xpYi9i YmRldi9ydGVfYmJkZXZfb3AuaCBiL2xpYi9iYmRldi9ydGVfYmJkZXZfb3AuaCBpbmRleA0KPiA2 ZDU2MTMzLi41N2UzNWY0IDEwMDY0NA0KPiAtLS0gYS9saWIvYmJkZXYvcnRlX2JiZGV2X29wLmgN Cj4gKysrIGIvbGliL2JiZGV2L3J0ZV9iYmRldl9vcC5oDQo+IEBAIC00Nyw2ICs0Nyw4IEBADQo+ ICAjZGVmaW5lIFJURV9CQkRFVl9UVVJCT19NQVhfQ09ERV9CTE9DS1MgKDY0KQ0KPiAgLyogTERQ QzogIE1heGltdW0gbnVtYmVyIG9mIENvZGUgQmxvY2tzIGluIFRyYW5zcG9ydCBCbG9jay4qLyAg I2RlZmluZQ0KPiBSVEVfQkJERVZfTERQQ19NQVhfQ09ERV9CTE9DS1MgKDI1NikNCj4gKy8qIDEy IENTIG1heGltdW0gKi8NCj4gKyNkZWZpbmUgUlRFX0JCREVWX01BWF9DU18yICg2KQ0KPiANCj4g IC8qKiBGbGFncyBmb3IgdHVyYm8gZGVjb2RlciBvcGVyYXRpb24gYW5kIGNhcGFiaWxpdHkgc3Ry dWN0dXJlICovICBlbnVtDQo+IHJ0ZV9iYmRldl9vcF90ZF9mbGFnX2JpdG1hc2tzIHsgQEAgLTIx MSw2ICsyMTMsMjYgQEAgZW51bQ0KPiBydGVfYmJkZXZfb3BfbGRwY2VuY19mbGFnX2JpdG1hc2tz IHsNCj4gIAlSVEVfQkJERVZfTERQQ19FTkNfQ09OQ0FURU5BVElPTiA9ICgxVUxMIDw8IDcpICB9 Ow0KPiANCj4gKy8qKiBGbGFncyBmb3IgREZUIG9wZXJhdGlvbiBhbmQgY2FwYWJpbGl0eSBzdHJ1 Y3R1cmUgKi8gZW51bQ0KPiArcnRlX2JiZGV2X29wX2ZmdF9mbGFnX2JpdG1hc2tzIHsNCj4gKwkv KiogRmxleGlibGUgd2luZG93aW5nIGNhcGFiaWxpdHkgKi8NCj4gKwlSVEVfQkJERVZfRkZUX1dJ TkRPV0lORyA9ICgxVUxMIDw8IDApLA0KPiArCS8qKiBGbGV4aWJsZSBhZGp1c3RtZW50IG9mIEN5 Y2xpYyBTaGlmdCB0aW1lIG9mZnNldCAqLw0KPiArCVJURV9CQkRFVl9GRlRfQ1NfQURKVVNUTUVO VCA9ICgxVUxMIDw8IDEpLA0KPiArCS8qKiBTZXQgZm9yIGJ5cGFzcyB0aGUgREZUIGFuZCBnZXQg ZGlyZWN0bHkgaW50byBpREZUIGlucHV0ICovDQo+ICsJUlRFX0JCREVWX0ZGVF9ERlRfQllQQVNT ID0gKDFVTEwgPDwgMiksDQo+ICsJLyoqIFNldCBmb3IgYnlwYXNzIHRoZSBJREZUIGFuZCBnZXQg ZGlyZWN0bHkgdGhlIERGVCBvdXRwdXQgKi8NCj4gKwlSVEVfQkJERVZfRkZUX0lERlRfQllQQVNT ID0gKDFVTEwgPDwgMyksDQo+ICsJLyoqIFNldCBmb3IgYnlwYXNzIHRpbWUgZG9tYWluIHdpbmRv d2luZyAqLw0KPiArCVJURV9CQkRFVl9GRlRfV0lORE9XSU5HX0JZUEFTUyA9ICgxVUxMIDw8IDQp LA0KPiArCS8qKiBTZXQgZm9yIG9wdGlvbmFsIHBvd2VyIG1lYXN1cmVtZW50IG9uIERGVCBvdXRw dXQgKi8NCj4gKwlSVEVfQkJERVZfRkZUX1BPV0VSX01FQVMgPSAoMVVMTCA8PCA1KSwNCj4gKwkv KiogU2V0IGlmIHRoZSB0aGUgaW5wdXQgZGF0YSB1c2VkIEZQMTYgZm9ybWF0ICovDQo+ICsJUlRF X0JCREVWX0ZGVF9GUDE2X0lOUFVUID0gKDFVTEwgPDwgNiksDQo+ICsJLyoqICBTZXQgaWYgdGhl IHRoZSBvdXRwdXQgZGF0YSB1c2VzIEZQMTYgZm9ybWF0ICAqLw0KPiArCVJURV9CQkRFVl9GRlRf RlAxNl9PVVRQVVQgPSAoMVVMTCA8PCA3KSB9Ow0KPiArDQo+ICAvKiogRmxhZ3MgZm9yIHRoZSBD b2RlIEJsb2NrL1RyYW5zcG9ydCBibG9jayBtb2RlICAqLyAgZW51bQ0KPiBydGVfYmJkZXZfb3Bf Y2JfbW9kZSB7DQo+ICAJLyoqIE9uZSBvcGVyYXRpb24gaXMgb25lIG9yIGZyYWN0aW9uIG9mIG9u ZSB0cmFuc3BvcnQgYmxvY2sgICovIEBAIC0NCj4gNjg5LDYgKzcxMSw1NSBAQCBzdHJ1Y3QgcnRl X2JiZGV2X29wX2xkcGNfZW5jIHsNCj4gIAl9Ow0KPiAgfTsNCj4gDQo+ICsvKiogT3BlcmF0aW9u IHN0cnVjdHVyZSBmb3IgRkZUIHByb2Nlc3NpbmcuDQo+ICsgKg0KPiArICogVGhlIG9wZXJhdGlv biBwcm9jZXNzZXMgdGhlIGRhdGEgZm9yIG11bHRpcGxlIGFudGVubmFzIGluIGEgc2luZ2xlDQo+ ICtjYWxsDQo+ICsgKiAoLmkuZSBmb3IgYWxsIHRoZSBSRXMgYmVsb25naW5nIHRvIGEgZ2l2ZW4g U1JTIHNlcXVlbmNlIGZvcg0KPiAraW5zdGFuY2UpDQo+ICsgKg0KPiArICogVGhlIG91dHB1dCBt YnVmIGRhdGEgc3RydWN0dXJlIGlzIGV4cGVjdGVkIHRvIGJlIGFsbG9jYXRlZCBieSB0aGUNCj4g KyAqIGFwcGxpY2F0aW9uIHdpdGggZW5vdWdoIHJvb20gZm9yIHRoZSBvdXRwdXQgZGF0YS4NCj4g KyAqLw0KPiArc3RydWN0IHJ0ZV9iYmRldl9vcF9mZnQgew0KPiArCS8qKiBJbnB1dCBkYXRhIHN0 YXJ0aW5nIGZyb20gZmlyc3QgYW50ZW5uYSAqLw0KPiArCXN0cnVjdCBydGVfYmJkZXZfb3BfZGF0 YSBiYXNlX2lucHV0Ow0KPiArCS8qKiBPdXRwdXQgZGF0YSBzdGFydGluZyBmcm9tIGZpcnN0IGFu dGVubmEgYW5kIGZpcnN0IGN5Y2xpYyBzaGlmdCAqLw0KPiArCXN0cnVjdCBydGVfYmJkZXZfb3Bf ZGF0YSBiYXNlX291dHB1dDsNCj4gKwkvKiogT3B0aW9uYWwgcG93ZXIgbWVhc3VyZW1lbnQgb3V0 cHV0IGRhdGEgKi8NCj4gKwlzdHJ1Y3QgcnRlX2JiZGV2X29wX2RhdGEgcG93ZXJfbWVhc19vdXRw dXQ7DQo+ICsJLyoqIEZsYWdzIGZyb20gcnRlX2JiZGV2X29wX2ZmdF9mbGFnX2JpdG1hc2tzICov DQo+ICsJdWludDMyX3Qgb3BfZmxhZ3M7DQo+ICsJLyoqIElucHV0IHNlcXVlbmNlIHNpemUgaW4g MzItYml0cyBwb2ludHMgKi8NCj4gKwl1aW50MTZfdCBpbnB1dF9zZXF1ZW5jZV9zaXplOw0KPiAr CS8qKiBQYWRkaW5nIGF0IHRoZSBzdGFydCBvZiB0aGUgc2VxdWVuY2UgKi8NCj4gKwl1aW50MTZf dCBpbnB1dF9sZWFkaW5nX3BhZGRpbmc7DQo+ICsJLyoqIE91dHB1dCBzZXF1ZW5jZSBzaXplIGlu IDMyLWJpdHMgcG9pbnRzICovDQo+ICsJdWludDE2X3Qgb3V0cHV0X3NlcXVlbmNlX3NpemU7DQo+ ICsJLyoqIERlcGFkZGluZyBhdCB0aGUgc3RhcnQgb2YgdGhlIERGVCBvdXRwdXQgKi8NCj4gKwl1 aW50MTZfdCBvdXRwdXRfbGVhZGluZ19kZXBhZGRpbmc7DQo+ICsJLyoqIFdpbmRvdyBpbmRleCBi ZWluZyB1c2VkIGZvciBlYWNoIGN5Y2xpYyBzaGlmdCBvdXRwdXQgKi8NCj4gKwl1aW50OF90IHdp bmRvd19pbmRleFtSVEVfQkJERVZfTUFYX0NTXzJdOw0KPiArCS8qKiBCaXRtYXAgb2YgdGhlIGN5 Y2xpYyBzaGlmdCBvdXRwdXQgcmVxdWVzdGVkICovDQo+ICsJdWludDE2X3QgY3NfYml0bWFwOw0K PiArCS8qKiBOdW1iZXIgb2YgYW50ZW5uYXMgYXMgYSBsb2cyIMOi4oKs4oCcIDggdG8gMTI4ICov DQo+ICsJdWludDhfdCBudW1fYW50ZW5uYXNfbG9nMjsNCj4gKwkvKiogaURGVCBzaXplIGFzIGEg bG9nMiAtIDMyIHRvIDIwNDggKi8NCj4gKwl1aW50OF90IGlkZnRfbG9nMjsNCj4gKwkvKiogREZU IHNpemUgYXMgYSBsb2cyIC0gOCB0byAyMDQ4ICovDQo+ICsJdWludDhfdCBkZnRfbG9nMjsNCj4g KwkvKiogQWRqdXN0bWVudCBvZiBwb3NpdGlvbiBvZiB0aGUgY3ljbGljIHNoaWZ0cyAtIC0zMSB0 byAzMSAqLw0KPiArCWludDhfdCBjc190aW1lX2FkanVzdG1lbnQ7DQo+ICsJLyoqIGlERlQgc2hp ZnQgZG93biAqLw0KPiArCWludDhfdCBpZGZ0X3NoaWZ0Ow0KPiArCS8qKiBERlQgc2hpZnQgZG93 biAqLw0KPiArCWludDhfdCBkZnRfc2hpZnQ7DQo+ICsJLyoqIE5DUyByZWNpcHJvY2FsIGZhY3Rv ciAgKi8NCj4gKwl1aW50MTZfdCBuY3NfcmVjaXByb2NhbDsNCj4gKwkvKiogcG93ZXIgbWVhc3Vy ZW1lbnQgb3V0IHNoaWZ0IGRvd24gKi8NCj4gKwl1aW50MTZfdCBwb3dlcl9zaGlmdDsNCj4gKwkv KiogQWRqdXN0IHRoZSBGUDYgZXhwb25lbnQgZm9yIElOVDwtPkZQMTYgY29udmVyc2lvbiAqLw0K PiArCXVpbnQxNl90IGZwMTZfZXhwX2FkanVzdDsNCj4gK307DQo+ICsNCj4gIC8qKiBMaXN0IG9m IHRoZSBjYXBhYmlsaXRpZXMgZm9yIHRoZSBUdXJibyBEZWNvZGVyICovICBzdHJ1Y3QNCj4gcnRl X2JiZGV2X29wX2NhcF90dXJib19kZWMgew0KPiAgCS8qKiBGbGFncyBmcm9tIHJ0ZV9iYmRldl9v cF90ZF9mbGFnX2JpdG1hc2tzICovIEBAIC03NDEsNg0KPiArODEyLDE2IEBAIHN0cnVjdCBydGVf YmJkZXZfb3BfY2FwX2xkcGNfZW5jIHsNCj4gIAl1aW50MTZfdCBudW1fYnVmZmVyc19kc3Q7DQo+ ICB9Ow0KPiANCj4gKy8qKiBMaXN0IG9mIHRoZSBjYXBhYmlsaXRpZXMgZm9yIHRoZSBGRlQgKi8g c3RydWN0IHJ0ZV9iYmRldl9vcF9jYXBfZmZ0DQo+ICt7DQo+ICsJLyoqIEZsYWdzIGZyb20gcnRl X2JiZGV2X29wX2xkcGNlbmNfZmxhZ19iaXRtYXNrcyAqLw0KPiArCXVpbnQzMl90IGNhcGFiaWxp dHlfZmxhZ3M7DQo+ICsJLyoqIE51bSBpbnB1dCBjb2RlIGJsb2NrIGJ1ZmZlcnMgKi8NCj4gKwl1 aW50MTZfdCBudW1fYnVmZmVyc19zcmM7DQo+ICsJLyoqIE51bSBvdXRwdXQgY29kZSBibG9jayBi dWZmZXJzICovDQo+ICsJdWludDE2X3QgbnVtX2J1ZmZlcnNfZHN0Ow0KPiArfTsNCj4gKw0KPiAg LyoqIERpZmZlcmVudCBvcGVyYXRpb24gdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgKi8g IGVudW0NCj4gcnRlX2JiZGV2X29wX3R5cGUgew0KPiAgCVJURV9CQkRFVl9PUF9OT05FLCAgLyoq PCBEdW1teSBvcGVyYXRpb24gdGhhdCBkb2VzIG5vdGhpbmcgKi8NCj4gQEAgLTc0OCw2ICs4Mjks NyBAQCBlbnVtIHJ0ZV9iYmRldl9vcF90eXBlIHsNCj4gIAlSVEVfQkJERVZfT1BfVFVSQk9fRU5D LCAgLyoqPCBUdXJibyBlbmNvZGUgKi8NCj4gIAlSVEVfQkJERVZfT1BfTERQQ19ERUMsICAvKio8 IExEUEMgZGVjb2RlICovDQo+ICAJUlRFX0JCREVWX09QX0xEUENfRU5DLCAgLyoqPCBMRFBDIGVu Y29kZSAqLw0KPiArCVJURV9CQkRFVl9PUF9GRlQsICAvKio8IEZGVCAqLw0KPiAgCVJURV9CQkRF Vl9PUF9UWVBFX0NPVU5ULCAgLyoqPCBDb3VudCBvZiBkaWZmZXJlbnQgb3AgdHlwZXMgKi8NCj4g fTsNCj4gDQo+IEBAIC03OTEsNiArODczLDE4IEBAIHN0cnVjdCBydGVfYmJkZXZfZGVjX29wIHsN Cj4gIAl9Ow0KPiAgfTsNCj4gDQo+ICsvKiogU3RydWN0dXJlIHNwZWNpZnlpbmcgYSBzaW5nbGUg ZmZ0IG9wZXJhdGlvbiAqLyBzdHJ1Y3QNCj4gK3J0ZV9iYmRldl9mZnRfb3Agew0KPiArCS8qKiBT dGF0dXMgb2Ygb3BlcmF0aW9uIHRoYXQgd2FzIHBlcmZvcm1lZCAqLw0KPiArCWludCBzdGF0dXM7 DQo+ICsJLyoqIE1lbXBvb2wgd2hpY2ggb3AgaW5zdGFuY2UgaXMgaW4gKi8NCj4gKwlzdHJ1Y3Qg cnRlX21lbXBvb2wgKm1lbXBvb2w7DQo+ICsJLyoqIE9wYXF1ZSBwb2ludGVyIGZvciB1c2VyIGRh dGEgKi8NCj4gKwl2b2lkICpvcGFxdWVfZGF0YTsNCj4gKwkvKiogQ29udGFpbnMgdHVyYm8gZGVj b2RlciBzcGVjaWZpYyBwYXJhbWV0ZXJzICovDQo+ICsJc3RydWN0IHJ0ZV9iYmRldl9vcF9mZnQg ZmZ0Ow0KPiArfTsNCj4gKw0KPiAgLyoqIE9wZXJhdGlvbiBjYXBhYmlsaXRpZXMgc3VwcG9ydGVk IGJ5IGEgZGV2aWNlICovICBzdHJ1Y3QNCj4gcnRlX2JiZGV2X29wX2NhcCB7DQo+ICAJZW51bSBy dGVfYmJkZXZfb3BfdHlwZSB0eXBlOyAgLyoqPCBUeXBlIG9mIG9wZXJhdGlvbiAqLyBAQCAtDQo+ IDc5OSw2ICs4OTMsNyBAQCBzdHJ1Y3QgcnRlX2JiZGV2X29wX2NhcCB7DQo+ICAJCXN0cnVjdCBy dGVfYmJkZXZfb3BfY2FwX3R1cmJvX2VuYyB0dXJib19lbmM7DQo+ICAJCXN0cnVjdCBydGVfYmJk ZXZfb3BfY2FwX2xkcGNfZGVjIGxkcGNfZGVjOw0KPiAgCQlzdHJ1Y3QgcnRlX2JiZGV2X29wX2Nh cF9sZHBjX2VuYyBsZHBjX2VuYzsNCj4gKwkJc3RydWN0IHJ0ZV9iYmRldl9vcF9jYXBfZmZ0IGZm dDsNCj4gIAl9IGNhcDsgIC8qKjwgT3BlcmF0aW9uLXR5cGUgc3BlY2lmaWMgY2FwYWJpbGl0aWVz ICovICB9Ow0KPiANCj4gQEAgLTkxOCw2ICsxMDEzLDQyIEBAIHN0cnVjdCBydGVfbWVtcG9vbCAq ICB9DQo+IA0KPiAgLyoqDQo+ICsgKiBCdWxrIGFsbG9jYXRlIGZmdCBvcGVyYXRpb25zIGZyb20g YSBtZW1wb29sIHdpdGggcGFyYW1ldGVyIGRlZmF1bHRzDQo+IHJlc2V0Lg0KPiArICoNCj4gKyAq IEBwYXJhbSBtZW1wb29sDQo+ICsgKiAgIE9wZXJhdGlvbiBtZW1wb29sLCBjcmVhdGVkIGJ5IHJ0 ZV9iYmRldl9vcF9wb29sX2NyZWF0ZSgpLg0KPiArICogQHBhcmFtIG9wcw0KPiArICogICBPdXRw dXQgYXJyYXkgdG8gcGxhY2UgYWxsb2NhdGVkIG9wZXJhdGlvbnMNCj4gKyAqIEBwYXJhbSBudW1f b3BzDQo+ICsgKiAgIE51bWJlciBvZiBvcGVyYXRpb25zIHRvIGFsbG9jYXRlDQo+ICsgKg0KPiAr ICogQHJldHVybnMNCj4gKyAqICAgLSAwIG9uIHN1Y2Nlc3MNCj4gKyAqICAgLSBFSU5WQUwgaWYg aW52YWxpZCBtZW1wb29sIGlzIHByb3ZpZGVkDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRh bA0KPiArc3RhdGljIGlubGluZSBpbnQNCj4gK3J0ZV9iYmRldl9mZnRfb3BfYWxsb2NfYnVsayhz dHJ1Y3QgcnRlX21lbXBvb2wgKm1lbXBvb2wsDQo+ICsJCXN0cnVjdCBydGVfYmJkZXZfZmZ0X29w ICoqb3BzLCB1aW50MTZfdCBudW1fb3BzKSB7DQo+ICsJc3RydWN0IHJ0ZV9iYmRldl9vcF9wb29s X3ByaXZhdGUgKnByaXY7DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCS8qIENoZWNrIHR5cGUgKi8N Cj4gKwlwcml2ID0gKHN0cnVjdCBydGVfYmJkZXZfb3BfcG9vbF9wcml2YXRlICopDQo+ICsJCQly dGVfbWVtcG9vbF9nZXRfcHJpdihtZW1wb29sKTsNCj4gKwlpZiAodW5saWtlbHkocHJpdi0+dHlw ZSAhPSBSVEVfQkJERVZfT1BfRkZUKSkNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwkv KiBHZXQgZWxlbWVudHMgKi8NCj4gKwlyZXQgPSBydGVfbWVtcG9vbF9nZXRfYnVsayhtZW1wb29s LCAodm9pZCAqKilvcHMsIG51bV9vcHMpOw0KPiArCWlmICh1bmxpa2VseShyZXQgPCAwKSkNCj4g KwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICsvKioNCj4g ICAqIEZyZWUgZGVjb2RlIG9wZXJhdGlvbiBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSBhbGxvY2F0ZWQg YnkNCj4gICAqIHJ0ZV9iYmRldl9kZWNfb3BfYWxsb2NfYnVsaygpLg0KPiAgICogQWxsIHN0cnVj dHVyZXMgbXVzdCBiZWxvbmcgdG8gdGhlIHNhbWUgbWVtcG9vbC4NCj4gQEAgLTk1MSw2ICsxMDgy LDI0IEBAIHN0cnVjdCBydGVfbWVtcG9vbCAqDQo+ICAJCXJ0ZV9tZW1wb29sX3B1dF9idWxrKG9w c1swXS0+bWVtcG9vbCwgKHZvaWQgKiopb3BzLA0KPiBudW1fb3BzKTsgIH0NCj4gDQo+ICsvKioN Cj4gKyAqIEZyZWUgZW5jb2RlIG9wZXJhdGlvbiBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSBhbGxvY2F0 ZWQgYnkNCj4gKyAqIHJ0ZV9iYmRldl9mZnRfb3BfYWxsb2NfYnVsaygpLg0KPiArICogQWxsIHN0 cnVjdHVyZXMgbXVzdCBiZWxvbmcgdG8gdGhlIHNhbWUgbWVtcG9vbC4NCj4gKyAqDQo+ICsgKiBA cGFyYW0gb3BzDQo+ICsgKiAgIE9wZXJhdGlvbiBzdHJ1Y3R1cmVzDQo+ICsgKiBAcGFyYW0gbnVt X29wcw0KPiArICogICBOdW1iZXIgb2Ygc3RydWN0dXJlcw0KPiArICovDQo+ICtfX3J0ZV9leHBl cmltZW50YWwNCj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPiArcnRlX2JiZGV2X2ZmdF9vcF9mcmVl X2J1bGsoc3RydWN0IHJ0ZV9iYmRldl9mZnRfb3AgKipvcHMsIHVuc2lnbmVkIGludA0KPiArbnVt X29wcykgew0KPiArCWlmIChudW1fb3BzID4gMCkNCj4gKwkJcnRlX21lbXBvb2xfcHV0X2J1bGso b3BzWzBdLT5tZW1wb29sLCAodm9pZCAqKilvcHMsDQo+IG51bV9vcHMpOyB9DQo+ICsNCj4gICNp ZmRlZiBfX2NwbHVzcGx1cw0KPiAgfQ0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9saWIvYmJk ZXYvdmVyc2lvbi5tYXAgYi9saWIvYmJkZXYvdmVyc2lvbi5tYXAgaW5kZXgNCj4gY2NlM2YzYy4u MTZhMTZkYyAxMDA2NDQNCj4gLS0tIGEvbGliL2JiZGV2L3ZlcnNpb24ubWFwDQo+ICsrKyBiL2xp Yi9iYmRldi92ZXJzaW9uLm1hcA0KPiBAQCAtMzksMyArMzksMTMgQEAgRFBES18yMiB7DQo+IA0K PiAgCWxvY2FsOiAqOw0KPiAgfTsNCj4gKw0KPiArRVhQRVJJTUVOVEFMIHsNCj4gKwlnbG9iYWw6 DQo+ICsNCj4gKwkjIGFkZGVkIGluIDIyLjA2DQo+ICsJcnRlX2JiZGV2X2VucXVldWVfZmZ0X29w czsNCj4gKwlydGVfYmJkZXZfZGVxdWV1ZV9mZnRfb3BzOw0KPiArCXJ0ZV9iYmRldl9mZnRfb3Bf YWxsb2NfYnVsazsNCj4gKwlydGVfYmJkZXZfZmZ0X29wX2ZyZWVfYnVsazsNCj4gK307DQo+IC0t DQo+IDEuOC4zLjENCg0K