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 85E35A0A0C; Mon, 29 Mar 2021 18:09:10 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 17CB6140E32; Mon, 29 Mar 2021 18:09:10 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id BE797140E30 for ; Mon, 29 Mar 2021 18:09:07 +0200 (CEST) IronPort-SDR: ug8vN0Ls7GD0qrnwp7gFLSfO0UrMKv7WnCWYpjOgCauRRcTKNbGHOjI2avDgdi1qPAg/YQEN/a dLwodSIx2O4Q== X-IronPort-AV: E=McAfee;i="6000,8403,9938"; a="252923962" X-IronPort-AV: E=Sophos;i="5.81,288,1610438400"; d="scan'208";a="252923962" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2021 09:08:55 -0700 IronPort-SDR: SHsxUhFBXBGGr3kGtKh5U2dVeWuUmb0visHxnM3aq2sMA7FdBBK33aJw0H675QIomjt+jfqP2a ni9q9q5H623A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,288,1610438400"; d="scan'208";a="527009696" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga004.jf.intel.com with ESMTP; 29 Mar 2021 09:08:55 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 29 Mar 2021 09:08:55 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Mon, 29 Mar 2021 09:08:55 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Mon, 29 Mar 2021 09:08:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g3/xjgWhVBB8hMF606BxXhNbRMISBFR5VY5769Q0uQLiUVfpzxw4QuPGFMxIeq9fqdyQEbPCJziWtqmwtoVMg1xZTOYaMFOSp4YZqnLtFUCn9r7niUoTdvRhPatV79lqSrxPlJ7RqN1C19mKAvWSI7zCqjeExE98A0zPNDA6znO99f3JN/2I64POapYpngngFyjLUT5fEoUw6c53AnqfhllT9LncQyLVXs8/Ez3iM8WqVPnWybQHFi3ib5njV2Wt3ald0HGU8zx5qSofRQXex8Yx+raiXylHgYSqAcYpNb+hSReT6CKzHOHd58qz4yD8PRGsiddMberQWQVG2X8myw== 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=8j/gAx6t/whgrairO8MsnSPvq9RGR6TfQgEsq0m51cI=; b=Xt0GJ6LTCs4Bo/mQmq5XWHDmsfjX5y3G1xhZdli3djyoo7ulkG0aaU4etaPbAPSZsjyd4Ay/09NSRhRu+R1375/21/6vLKHuH7+0vC3CmYMETH61havPc2c1lEx38iUlWqA82m6g8G5OP7AvVK2Ykdkn0tyDvO5IBWqx1rjElk8DSPOwZn58C8MmFAqcKqt/JJXUenvrG9TW7nkQGmXcq3YW9BmVPb9OQT2ReGvcu9DbGpj+VAO5qyXlId6YPyNTQKHIPqa0ep87pSl0jrHXC9Ni2btO+dZc97p6ef2tLMEV2roTguQIKUVTu05oXcDTCZm8r04JPvs05J/LwtNywQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8j/gAx6t/whgrairO8MsnSPvq9RGR6TfQgEsq0m51cI=; b=aVoKXhs58JmEwZxkmmUmGTYMhBvYdzN7AaQ43VE5goxhQfZswrn1T0otLhxaVySnPav6fJjCMcDuXhLw7yo/M9Q1og0wC4Rviaf3HcaGLoHV9yhTAumUu9lfNYerGg+entoGIYBqaRtj5bojRsiWjKkHeUTdTveH5CtC/eL1ltY= Received: from DM6PR11MB2796.namprd11.prod.outlook.com (2603:10b6:5:c8::23) by DM5PR11MB1276.namprd11.prod.outlook.com (2603:10b6:3:14::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.32; Mon, 29 Mar 2021 16:08:51 +0000 Received: from DM6PR11MB2796.namprd11.prod.outlook.com ([fe80::b5d2:6f20:3c0:3627]) by DM6PR11MB2796.namprd11.prod.outlook.com ([fe80::b5d2:6f20:3c0:3627%7]) with mapi id 15.20.3977.033; Mon, 29 Mar 2021 16:08:51 +0000 From: "Dumitrescu, Cristian" To: Matan Azrad , Li Zhang , Dekel Peled , Ori Kam , Slava Ovsiienko , Shahaf Shuler , "lironh@marvell.com" , "Singh, Jasvinder" , NBU-Contact-Thomas Monjalon , "Yigit, Ferruh" , "Andrew Rybchenko" , Jerin Jacob , Hemant Agrawal , "Ajit Khaparde" CC: "dev@dpdk.org" , Raslan Darawsheh , Roni Bar Yanai Thread-Topic: [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API Thread-Index: AQHXG9Tf/DPc1Me1jEakhj0VntDGc6qR9aKwgAJatoCABt/gwA== Date: Mon, 29 Mar 2021 16:08:50 +0000 Message-ID: References: <20210318085815.804896-1-lizh@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [51.37.64.137] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3356a094-7935-4bc6-cbdc-08d8f2ccf191 x-ms-traffictypediagnostic: DM5PR11MB1276: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr 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: /Bf/YMrCQuGHAiAAoUmyu2pcwB1J0AQDYNTbQSc5ZDBDTDDZSsC2FzuiIPpAd7jn9Fa7RQLBaemfPs4slKqFMJW7+M659KxyWPidlIaUiKLZHgQgKzEnK1RbQeqyTEvf9zqCmhDWLJ0MLGdTQnMigG7bpAzukaiAdfH6i3zPX5qnT3RDO/Fmf0489ubFQ4tGRRhQEZ5d3IqYN9B89ICNmbOn2EqbM39cVdDjqLGG58qZJ/RsKae8nkeD9zhCKjienRT87BxrTGaTR5XS8hi+ubzfeIZc3Qgx8MB/HpyRBqm7I1SRtpjCETVUfGEU5MgzG2NH6JlUyPjbZJc962fy+pYyvTJDVLUDwatDlbd6C9OcLhJlXmXipjklo3QXgqugYdq3x483bYe4nuyLf+SSbH9+hAUm4CosqFlnSnvy+KELHUH7CDrgIelBOODZgCCIdJFeJHfUVVPbgYxyK9xhtQ/AYF6Q4HifUlF/vOCxCtT1CqRqNkWHZLC49451BK7uBjpP4iELBiMmp6i+lwv31tbPIhZS3iKLeL27NY7P4TaN1Tq8ODUOwF4Hkzxic+pFv/pRgXNzzLiUCbM2lxO/DTFDtc+/azrtSk6XXQqGLAhvh7ZSsV6YFsAoC1VXvltZu6NdBX0m28n3/FUUMA5Bs10htSnWv1cTsCOp3LUNK2DJTaDnjxTZnNRig9SkVqoC x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB2796.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(136003)(376002)(346002)(366004)(39860400002)(478600001)(7696005)(2906002)(8676002)(71200400001)(921005)(7416002)(5660300002)(9686003)(30864003)(76116006)(64756008)(66446008)(86362001)(83380400001)(26005)(4326008)(186003)(52536014)(8936002)(66946007)(55016002)(33656002)(66556008)(38100700001)(54906003)(316002)(110136005)(66476007)(6506007)(53546011)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?SEhCVy9aQUFkSUdGbEhPNXdRd0MyUDIrWXR6VDVQbmNmeGVTK3NpODBYeUUy?= =?utf-8?B?V2dUaVg0RWtXRDdaeXpUeTcyMS9BYnJMT2Z5dXh5bzBYQ0gxek01L09IaVhY?= =?utf-8?B?U1VWdk9QUzEza1pxOWdoQndqS0YzYk5sdFRkVzhpd2JGWkN3V3dMcTJUOEll?= =?utf-8?B?OC9EdlNwK1pJaWkwSXRaZEhveXU4ODRZR01pWlJFTk5hMGttRnJwL0Jqb1NK?= =?utf-8?B?QXg3cnhOaER3Rld1S01OaWdyWjV5UU9RS3poNkZZOFluWTdRMG9nSE44ZmR1?= =?utf-8?B?L1g0VVlxS2orRXhKY1RkclBmektyU1ZlaWJCL2FNL3ZQMVN3VHdCRmZUSDZR?= =?utf-8?B?QnJqMVNtRFQ1V01FcVYxVFJLeXhiWnRObnMxK3pQV01WTmlNcFBCeXJOSzBw?= =?utf-8?B?M3UxelFWT0FQYUV6Umd2alBXZmlGYzFkNVY2UnJFN0JlUTFqOGdZQUV4Z3Z1?= =?utf-8?B?Yk1UNnRFTnJwNVN5ZGl1NUkrOUkyQ2hZa3c5RXNBSytEUzlrb0tpd3hSa0xa?= =?utf-8?B?SmU5a2wwR2M3bWozcE9mVXJMaU5nUWdwc2hXN0c0MThpZnNna0NiejMzdGJW?= =?utf-8?B?US8yMWtidmNpWjB4Q2JRT3lPVDdHcVVRL3RUT2w3SHhHRUVPMUhHTXY2dklR?= =?utf-8?B?S3FUR24wSVJ3TnhhMXNsZmNwVHBYR2VxTTQvYjRqRUgxN0NpT090VVRoZit3?= =?utf-8?B?LytUaHFCMkFpWG5wZWJveEhVUVVkT3NaU3Y3RlBJUkFTRjNIdmJJVmxROXMv?= =?utf-8?B?MDM0V1ZFa0Y4bk9ZNG9uRkFWblk0ZjFpdlhoQU1xbExsOW84VXk3WlZBWita?= =?utf-8?B?YlYyVkl6YXJGc1VoNVhtcHovc3BmL3FscitPQnlaaHlhWGRXMDdXdEpoeWNk?= =?utf-8?B?ZWNPMDRCSktiRWlreUJsYkhqejFvN05WN2xPK3N3YjBpOCs0TU84cytzV3Z3?= =?utf-8?B?ZGdIMVJReGhSQ1Mwc3NwbFNnb3pNOWhuaHRVSkQ2VGRNd0liTm9DMEpiVzIv?= =?utf-8?B?aWZMZVgrUnRiRFlGdWRNK0ljWG9uNGRpdmV6VW5kZDZWcTAxWnpoaUNhTFNU?= =?utf-8?B?QWFWN2poRWtPUEpOVEVVRXY3TnMrRmpsUExsMXpOd0JoUU00UXJHMWFvSDlq?= =?utf-8?B?WHhGZVNTWUo3d2dlazd5ZUhIQlV1UXlmdlNmajhwV1NYWFg0UzRGMnVnNXRL?= =?utf-8?B?SktNa3FJNkJYR3JrSkc1OGNaL0Vmc1RJVEgvRWlvN0ppWU5lQ1B0U0tEbXZZ?= =?utf-8?B?N3l2Q2UveFg4TmZZUDRoVE1kUVdMOWE1cFJhREJoc0FBeWlGcEsyd1lta2NW?= =?utf-8?B?WmZjMCtTUW9nTGdMWUxWbEd1dzRjbGUzU1lXR0hWdndPSUZWQ0hMQTdFOWtS?= =?utf-8?B?OWtpVHhzU3dKeit6MWNlcHYxKzRTbWFEenVJOVBEUzRPbXRqb2dDM3R0ZXov?= =?utf-8?B?dWxEOVRrK0tmVW1iZlFDRnlrTGY1ZDRWOER0WHRhQjdKelRqNW1kYWRaelp5?= =?utf-8?B?UmtYc3lad295bUFrdnZlaUdINFdQNFNCUlNneEJza2xjUlB5UXo1a1dVRmZt?= =?utf-8?B?UHg5RnRpY2dlckdEcWpacDFXbXI3bFRvNlh4NURnR2hCSEJIakhXM1JCQ0hl?= =?utf-8?B?VUZrcGtrRGdUdWJVRUZ5MmdXeXZCLzhnV2R4YkRvTjNEZG5nYWk3Rys4cjht?= =?utf-8?B?WmZTYW8vUnY4K21kYWc3RUs4VUNhb2JsQUJnRlJYWTVqTFFqWjJvVURIVjJ6?= =?utf-8?Q?lN3KvnlqsymgYC4FAc=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: DM6PR11MB2796.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3356a094-7935-4bc6-cbdc-08d8f2ccf191 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2021 16:08:51.1560 (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: C6ElwyuBw3iYJVHH5A1Boevl6U5U+eAF4aTlH/C8N76tQax2HKifHe/lBf+EMwROJ8eLK4YNo/SAxcbUzQVTpAZ6XlL6n2VAuVDYwkjpzXM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1276 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API 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 Sender: "dev" SGkgTWF0YW4sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWF0YW4g QXpyYWQgPG1hdGFuQG52aWRpYS5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCAyNSwgMjAy MSA2OjU3IEFNDQo+IFRvOiBEdW1pdHJlc2N1LCBDcmlzdGlhbiA8Y3Jpc3RpYW4uZHVtaXRyZXNj dUBpbnRlbC5jb20+OyBMaSBaaGFuZw0KPiA8bGl6aEBudmlkaWEuY29tPjsgRGVrZWwgUGVsZWQg PGRla2VscEBudmlkaWEuY29tPjsgT3JpIEthbQ0KPiA8b3Jpa2FAbnZpZGlhLmNvbT47IFNsYXZh IE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IFNoYWhhZg0KPiBTaHVsZXIgPHNo YWhhZnNAbnZpZGlhLmNvbT47IGxpcm9uaEBtYXJ2ZWxsLmNvbTsgU2luZ2gsIEphc3ZpbmRlcg0K PiA8amFzdmluZGVyLnNpbmdoQGludGVsLmNvbT47IE5CVS1Db250YWN0LVRob21hcyBNb25qYWxv bg0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBp bnRlbC5jb20+OyBBbmRyZXcNCj4gUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFi cy5ydT47IEplcmluIEphY29iDQo+IDxqZXJpbmphY29ia0BnbWFpbC5jb20+OyBIZW1hbnQgQWdy YXdhbCA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT47DQo+IEFqaXQgS2hhcGFyZGUgPGFqaXQua2hh cGFyZGVAYnJvYWRjb20uY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBSYXNsYW4gRGFyYXdzaGVo IDxyYXNsYW5kQG52aWRpYS5jb20+OyBSb25pIEJhciBZYW5haQ0KPiA8cm9uaWJhQG52aWRpYS5j b20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMS8yXSBbUkZDXTogZXRoZGV2OiBhZGQgcHJlLWRl ZmluZWQgbWV0ZXIgcG9saWN5IEFQSQ0KPiANCj4gSGkgQ3Jpc3RpYW4NCj4gDQo+IFRoYW5rIHlv dSBmb3IgeW91ciBpbXBvcnRhbnQgcmV2aWV3IQ0KPiBJIGFncmVlIHdpdGggYWxsIHlvdXIgY29t bWVudHMgZXhjZXB0IG9uZSwgcGxlYXNlIHNlZSBpbmxpbmUuDQo+IA0KPiBGcm9tOiBEdW1pdHJl c2N1LCBDcmlzdGlhbg0KPiA+IEhpIExpIGFuZCBNYXRhbiwNCj4gPg0KPiA+IFRoYW5rIHlvdSBm b3IgeW91ciBwcm9wb3NhbCwgc29tZSBjb21tZW50cyBiZWxvdy4NCj4gPg0KPiA+IEkgYW0gYWxz byBhZGRpbmcgSmVyaW4gYW5kIEhlbWFudCB0byB0aGlzIHRocmVhZCwgYXMgdGhleSBhbHNvIHBh cnRpY2lwYXRlZA0KPiBpbg0KPiA+IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBydGVfbXRyIEFQSSBp biAyMDE3LiBBbHNvIEFqaXQgZXhwcmVzc2VkIHNvbWUgaW50ZXJlc3QNCj4gaW4gYQ0KPiA+IHBy ZXZpb3VzIGVtYWlsLg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ ID4gRnJvbTogTGkgWmhhbmcgPGxpemhAbnZpZGlhLmNvbT4NCj4gPiA+IFNlbnQ6IFRodXJzZGF5 LCBNYXJjaCAxOCwgMjAyMSA4OjU4IEFNDQo+ID4gPiBUbzogZGVrZWxwQG52aWRpYS5jb207IG9y aWthQG52aWRpYS5jb207IHZpYWNoZXNsYXZvQG52aWRpYS5jb207DQo+ID4gPiBtYXRhbkBudmlk aWEuY29tOyBzaGFoYWZzQG52aWRpYS5jb207IGxpcm9uaEBtYXJ2ZWxsLmNvbTsgU2luZ2gsDQo+ ID4gPiBKYXN2aW5kZXIgPGphc3ZpbmRlci5zaW5naEBpbnRlbC5jb20+OyBUaG9tYXMgTW9uamFs b24NCj4gPiA+IDx0aG9tYXNAbW9uamFsb24ubmV0PjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlp Z2l0QGludGVsLmNvbT47DQo+IEFuZHJldw0KPiA+ID4gUnliY2hlbmtvIDxhbmRyZXcucnliY2hl bmtvQG9rdGV0bGFicy5ydT47IER1bWl0cmVzY3UsIENyaXN0aWFuDQo+ID4gPiA8Y3Jpc3RpYW4u ZHVtaXRyZXNjdUBpbnRlbC5jb20+DQo+ID4gPiBDYzogZGV2QGRwZGsub3JnOyByYXNsYW5kQG52 aWRpYS5jb207IHJvbmliYUBudmlkaWEuY29tDQo+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggMS8yXSBb UkZDXTogZXRoZGV2OiBhZGQgcHJlLWRlZmluZWQgbWV0ZXIgcG9saWN5IEFQSQ0KPiA+ID4NCj4g PiA+IEN1cnJlbnRseSwgdGhlIGZsb3cgbWV0ZXIgcG9saWN5IGRvZXMgbm90IHN1cHBvcnQgbXVs dGlwbGUgYWN0aW9ucyBwZXINCj4gPiA+IGNvbG9yOyBhbHNvIHRoZSBhbGxvd2VkIGFjdGlvbiB0 eXBlcyBwZXIgY29sb3IgYXJlIHZlcnkgbGltaXRlZC4NCj4gPiA+IEluIGFkZGl0aW9uLCB0aGUg cG9saWN5IGNhbm5vdCBiZSBwcmUtZGVmaW5lZC4NCj4gPiA+DQo+ID4gPiBEdWUgdG8gdGhlIGdy b3dpbmcgaW4gZmxvdyBhY3Rpb25zIG9mZmxvYWQgYWJpbGl0aWVzIHRoZXJlIGlzIGENCj4gPiA+ IHBvdGVudGlhbCBmb3IgdGhlIHVzZXIgdG8gdXNlIHZhcmlldHkgb2YgYWN0aW9ucyBwZXIgY29s b3IgZGlmZmVyZW50bHkuDQo+ID4gPiBUaGlzIG5ldyBtZXRlciBwb2xpY3kgQVBJIGNvbWVzIHRv IGFsbG93IHRoaXMgcG90ZW50aWFsIGluIHRoZSBtb3N0DQo+ID4gPiBldGhkZXYgY29tbW9uIHdh eSB1c2luZyBydGVfZmxvdyBhY3Rpb24gZGVmaW5pdGlvbi4NCj4gPiA+IEEgbGlzdCBvZiBydGVf ZmxvdyBhY3Rpb25zIHdpbGwgYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIgcGVyIGNvbG9yIGluDQo+ ID4gPiBvcmRlciB0byBjcmVhdGUgYSBtZXRlciBwb2xpY3kuDQo+ID4gPiBJbiBhZGRpdGlvbiwg dGhlIEFQSSBmb3JjZXMgdG8gcHJlLWRlZmluZSB0aGUgcG9saWN5IGJlZm9yZSB0aGUgbWV0ZXJz DQo+ID4gPiBjcmVhdGlvbiBpbiBvcmRlciB0byBhbGxvdyBzaGFyaW5nIG9mIHNpbmdsZSBwb2xp Y3kgd2l0aCBtdWx0aXBsZQ0KPiA+ID4gbWV0ZXJzIGVmZmljaWVudGx5Lg0KPiA+ID4NCj4gPiA+ IG1ldGVyX3BvbGljeV9pZCBpcyBhZGRlZCBpbnRvIHN0cnVjdCBydGVfbXRyX3BhcmFtcy4NCj4g PiA+IFNvIHRoYXQgaXQgY2FuIGdldCB0aGUgcG9saWN5IGR1cmluZyB0aGUgbWV0ZXJzIGNyZWF0 aW9uLg0KPiA+ID4NCj4gPiA+IFBvbGljeSBpZCAwIGlzIGRlZmF1bHQgcG9saWN5LiBBY3Rpb24g cGVyIGNvbG9yIGFzIGJlbG93Og0KPiA+ID4gZ3JlZW4gLSBubyBhY3Rpb24sIHllbGxvdyAtIG5v IGFjdGlvbiwgcmVkIC0gZHJvcA0KPiA+ID4NCj4gPiA+IEFsbG93IGNvbG9yaW5nIHRoZSBwYWNr ZXQgdXNpbmcgYSBuZXcgcnRlX2Zsb3dfYWN0aW9uX2NvbG9yIGFzIGNvdWxkDQo+ID4gPiBiZSBk b25lIGJ5IHRoZSBvbGQgcG9saWN5IEFQSSwNCj4gPiA+DQo+ID4NCj4gPiBUaGUgcHJvcG9zYWwg ZXNzZW50aWFsbHkgaXMgdG8gZGVmaW5lIHRoZSBtZXRlciBwb2xpY3kgYmFzZWQgb24gcnRlX2Zs b3cNCj4gYWN0aW9ucw0KPiA+IHJhdGhlciB0aGFuIGEgcmVkdWNlZCBhY3Rpb24gc2V0IGRlZmlu ZWQgc3BlY2lmaWNhbGx5IGp1c3QgZm9yIG1ldGVyIG9iamVjdC4NCj4gVGhpcw0KPiA+IG1ha2Vz IHNlbnNlIHRvIG1lLg0KPiA+DQo+ID4gPiBUaGUgbmV4dCBBUEkgZnVuY3Rpb24gd2VyZSBhZGRl ZDoNCj4gPiA+IC0gcnRlX210cl9tZXRlcl9wb2xpY3lfYWRkDQo+ID4gPiAtIHJ0ZV9tdHJfbWV0 ZXJfcG9saWN5X2RlbGV0ZQ0KPiA+ID4gLSBydGVfbXRyX21ldGVyX3BvbGljeV91cGRhdGUNCj4g PiA+IC0gcnRlX210cl9tZXRlcl9wb2xpY3lfdmFsaWRhdGUNCj4gPiA+IFRoZSBuZXh0IHN0cnVj dCB3YXMgY2hhbmdlZDoNCj4gPiA+IC0gcnRlX210cl9wYXJhbXMNCj4gPiA+IC0gcnRlX210cl9j YXBhYmlsaXRpZXMNCj4gPiA+IFRoZSBuZXh0IEFQSSB3YXMgZGVsZXRlZDoNCj4gPiA+IC0gcnRl X210cl9wb2xpY2VyX2FjdGlvbnNfdXBkYXRlDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTog TGkgWmhhbmcgPGxpemhAbnZpZGlhLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIGxpYi9saWJydGVf ZXRoZGV2L3J0ZV9mbG93LmggICAgICAgfCAgMTggKysrKw0KPiA+ID4gIGxpYi9saWJydGVfZXRo ZGV2L3J0ZV9tdHIuYyAgICAgICAgfCAgNTUgKysrKysrKystLQ0KPiA+ID4gIGxpYi9saWJydGVf ZXRoZGV2L3J0ZV9tdHIuaCAgICAgICAgfCAxNjYgKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0NCj4gPiA+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfbXRyX2RyaXZlci5oIHwgIDQ1ICsrKysr Ky0tDQo+ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRp b25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9m bG93LmgNCj4gPiA+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaCBpbmRleCA2NjllNjc3 ZTkxLi41ZjM4YWE3ZmE0IDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRl X2Zsb3cuaA0KPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ID4g QEAgLTMxLDYgKzMxLDcgQEANCj4gPiA+ICAjaW5jbHVkZSA8cnRlX2VjcHJpLmg+DQo+ID4gPiAg I2luY2x1ZGUgPHJ0ZV9tYnVmLmg+DQo+ID4gPiAgI2luY2x1ZGUgPHJ0ZV9tYnVmX2R5bi5oPg0K PiA+ID4gKyNpbmNsdWRlIDxydGVfbWV0ZXIuaD4NCj4gPiA+DQo+ID4gPiAgI2lmZGVmIF9fY3Bs dXNwbHVzDQo+ID4gPiAgZXh0ZXJuICJDIiB7DQo+ID4gPiBAQCAtMjIzNiw2ICsyMjM3LDEzIEBA IGVudW0gcnRlX2Zsb3dfYWN0aW9uX3R5cGUgew0KPiA+ID4gICAgICAgICogU2VlIHN0cnVjdCBy dGVfZmxvd19hY3Rpb25fbW9kaWZ5X2ZpZWxkLg0KPiA+ID4gICAgICAgICovDQo+ID4gPiAgICAg ICBSVEVfRkxPV19BQ1RJT05fVFlQRV9NT0RJRllfRklFTEQsDQo+ID4gPiArDQo+ID4gPiArICAg ICAvKioNCj4gPiA+ICsgICAgICAqIENvbG9yIHRoZSBwYWNrZXQgdG8gcmVmbGVjdCB0aGUgbWV0 ZXIgY29sb3IgcmVzdWx0Lg0KPiA+ID4gKyAgICAgICoNCj4gPiA+ICsgICAgICAqIFNlZSBzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uX2NvbG9yLg0KPiA+ID4gKyAgICAgICovDQo+ID4gPiArICAgICBS VEVfRkxPV19BQ1RJT05fVFlQRV9DT2xPUiwNCj4gPg0KPiA+IFR5cG8gaGVyZSwgaXQgc2hvdWxk IGJlIFJURV9GTE9XX0FDVElPTl9UWVBFX0NPTE9SLg0KPiA+DQo+ID4gPiAgfTsNCj4gPiA+DQo+ ID4gPiAgLyoqDQo+ID4gPiBAQCAtMjgyOCw2ICsyODM2LDE2IEBAIHN0cnVjdCBydGVfZmxvd19h Y3Rpb25fc2V0X2RzY3Agew0KPiA+ID4gICAqLw0KPiA+ID4gIHN0cnVjdCBydGVfZmxvd19zaGFy ZWRfYWN0aW9uOw0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+ICsgKiBSVEVfRkxPV19BQ1RJT05f VFlQRV9DT0xPUg0KPiA+ID4gKyAqDQo+ID4gPiArICogVGhlIG1ldGVyIGNvbG9yIHNob3VsZCBi ZSBzZXQgaW4gdGhlIHBhY2tldCBtZXRhLWRhdGENCj4gPiA+ICsgKiAoaS5lLiBzdHJ1Y3QgcnRl X21idWY6OnNjaGVkOjpjb2xvcikuDQo+ID4gPiArICovDQo+ID4gPiArc3RydWN0IHJ0ZV9mbG93 X2FjdGlvbl9jb2xvciB7DQo+ID4gPiArICAgICBlbnVtIHJ0ZV9jb2xvciBjb2xvcjsgLyoqPCBH cmVlbi9ZZWxsb3cvUmVkLiAqLw0KPiA+DQo+ID4gSSB3b3VsZCBhdm9pZCBleHBhbmRpbmcgdGhl IGxpc3Qgb2YgY29sb3JzIGluIHRoZSBjb21tZW50LCBhcyB3ZSBtaWdodA0KPiBoYXZlIHRvDQo+ ID4gc3VwcG9ydCBtb3JlIHRoYW4gMyBjb2xvcnMgaW4gdGhlIGZ1dHVyZS4gSSB3b3VsZCBzaW1w bHkgd3JpdGU6ICJQYWNrZXQNCj4gY29sb3IuIg0KPiA+DQo+ID4gPiArfTsNCj4gPiA+ICsNCj4g PiA+ICAvKioNCj4gPiA+ICAgKiBGaWVsZCBJRHMgZm9yIE1PRElGWV9GSUVMRCBhY3Rpb24uDQo+ ID4gPiAgICovDQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX210ci5j IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX210ci5jDQo+ID4gPiBpbmRleCAzMDczYWMwM2YyLi5m Y2NlYzM3NjBiIDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX210ci5j DQo+ID4gPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfbXRyLmMNCj4gPiA+IEBAIC05MSw2 ICs5MSw0MCBAQCBydGVfbXRyX21ldGVyX3Byb2ZpbGVfZGVsZXRlKHVpbnQxNl90IHBvcnRfaWQs DQo+ID4gPiAgICAgICAgICAgICAgIG1ldGVyX3Byb2ZpbGVfaWQsIGVycm9yKTsgIH0NCj4gPiA+ DQo+ID4gPiArLyogTVRSIG1ldGVyIHBvbGljeSB2YWxpZGF0ZSAqLw0KPiA+ID4gK2ludA0KPiA+ ID4gK3J0ZV9tdHJfbWV0ZXJfcG9saWN5X3ZhbGlkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4g PiArICAgICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb25zW1JURV9DT0xPUlNd LA0KPiA+ID4gKyAgICAgc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKQ0KPiA+ID4gK3sNCj4g PiA+ICsgICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0 X2lkXTsNCj4gPiA+ICsgICAgIHJldHVybiBSVEVfTVRSX0ZVTkMocG9ydF9pZCwgbWV0ZXJfcG9s aWN5X3ZhbGlkYXRlKShkZXYsDQo+ID4gPiArICAgICAgICAgICAgIGFjdGlvbnMsIGVycm9yKTsN Cj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArLyogTVRSIG1ldGVyIHBvbGljeSBhZGQgKi8NCj4g PiA+ICtpbnQNCj4gPiA+ICtydGVfbXRyX21ldGVyX3BvbGljeV9hZGQodWludDE2X3QgcG9ydF9p ZCwNCj4gPiA+ICsgICAgIHVpbnQzMl90IHBvbGljeV9pZCwNCj4gPiA+ICsgICAgIGNvbnN0IHN0 cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnNbUlRFX0NPTE9SU10sDQo+ID4gPiArICAgICBz dHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpDQo+ID4gPiArew0KPiA+ID4gKyAgICAgc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiA+ID4gKyAg ICAgcmV0dXJuIFJURV9NVFJfRlVOQyhwb3J0X2lkLCBtZXRlcl9wb2xpY3lfYWRkKShkZXYsDQo+ ID4gPiArICAgICAgICAgICAgIHBvbGljeV9pZCwgYWN0aW9ucywgZXJyb3IpOyB9DQo+ID4gPiAr DQo+ID4gPiArLyoqIE1UUiBtZXRlciBwb2xpY3kgZGVsZXRlICovDQo+ID4gPiAraW50DQo+ID4g PiArcnRlX210cl9tZXRlcl9wb2xpY3lfZGVsZXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gPiAr ICAgICB1aW50MzJfdCBwb2xpY3lfaWQsDQo+ID4gPiArICAgICBzdHJ1Y3QgcnRlX210cl9lcnJv ciAqZXJyb3IpDQo+ID4gPiArew0KPiA+ID4gKyAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYg PSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiA+ID4gKyAgICAgcmV0dXJuIFJURV9NVFJf RlVOQyhwb3J0X2lkLCBtZXRlcl9wb2xpY3lfZGVsZXRlKShkZXYsDQo+ID4gPiArICAgICAgICAg ICAgIHBvbGljeV9pZCwgZXJyb3IpOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICAvKiogTVRS IG9iamVjdCBjcmVhdGUgKi8NCj4gPiA+ICBpbnQNCj4gPiA+ICBydGVfbXRyX2NyZWF0ZSh1aW50 MTZfdCBwb3J0X2lkLA0KPiA+ID4gQEAgLTE0OSwyOSArMTgzLDI4IEBAIHJ0ZV9tdHJfbWV0ZXJf cHJvZmlsZV91cGRhdGUodWludDE2X3QNCj4gcG9ydF9pZCwNCj4gPiA+ICAgICAgICAgICAgICAg bXRyX2lkLCBtZXRlcl9wcm9maWxlX2lkLCBlcnJvcik7ICB9DQo+ID4gPg0KPiA+ID4gLS8qKiBN VFIgb2JqZWN0IG1ldGVyIERTQ1AgdGFibGUgdXBkYXRlICovDQo+ID4gPiArLyoqIE1UUiBvYmpl Y3QgbWV0ZXIgcG9saWN5IHVwZGF0ZSAqLw0KPiA+ID4gIGludA0KPiA+ID4gLXJ0ZV9tdHJfbWV0 ZXJfZHNjcF90YWJsZV91cGRhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiA+ICtydGVfbXRyX21l dGVyX3BvbGljeV91cGRhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gPiA+ICAgICAgIHVpbnQzMl90 IG10cl9pZCwNCj4gPiA+IC0gICAgIGVudW0gcnRlX2NvbG9yICpkc2NwX3RhYmxlLA0KPiA+ID4g KyAgICAgdWludDMyX3QgbWV0ZXJfcG9saWN5X2lkLA0KPiA+ID4gICAgICAgc3RydWN0IHJ0ZV9t dHJfZXJyb3IgKmVycm9yKQ0KPiA+ID4gIHsNCj4gPiA+ICAgICAgIHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gPiA+IC0gICAgIHJldHVybiBS VEVfTVRSX0ZVTkMocG9ydF9pZCwgbWV0ZXJfZHNjcF90YWJsZV91cGRhdGUpKGRldiwNCj4gPiA+ IC0gICAgICAgICAgICAgbXRyX2lkLCBkc2NwX3RhYmxlLCBlcnJvcik7DQo+ID4gPiArICAgICBy ZXR1cm4gUlRFX01UUl9GVU5DKHBvcnRfaWQsIG1ldGVyX3BvbGljeV91cGRhdGUpKGRldiwNCj4g PiA+ICsgICAgICAgICAgICAgbXRyX2lkLCBtZXRlcl9wb2xpY3lfaWQsIGVycm9yKTsNCj4gPiA+ ICB9DQo+ID4gPg0KPiA+ID4gLS8qKiBNVFIgb2JqZWN0IHBvbGljZXIgYWN0aW9uIHVwZGF0ZSAq Lw0KPiA+ID4gKy8qKiBNVFIgb2JqZWN0IG1ldGVyIERTQ1AgdGFibGUgdXBkYXRlICovDQo+ID4g PiAgaW50DQo+ID4gPiAtcnRlX210cl9wb2xpY2VyX2FjdGlvbnNfdXBkYXRlKHVpbnQxNl90IHBv cnRfaWQsDQo+ID4gPiArcnRlX210cl9tZXRlcl9kc2NwX3RhYmxlX3VwZGF0ZSh1aW50MTZfdCBw b3J0X2lkLA0KPiA+ID4gICAgICAgdWludDMyX3QgbXRyX2lkLA0KPiA+ID4gLSAgICAgdWludDMy X3QgYWN0aW9uX21hc2ssDQo+ID4gPiAtICAgICBlbnVtIHJ0ZV9tdHJfcG9saWNlcl9hY3Rpb24g KmFjdGlvbnMsDQo+ID4gPiArICAgICBlbnVtIHJ0ZV9jb2xvciAqZHNjcF90YWJsZSwNCj4gPiA+ ICAgICAgIHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcikNCj4gPiA+ICB7DQo+ID4gPiAgICAg ICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ ID4gPiAtICAgICByZXR1cm4gUlRFX01UUl9GVU5DKHBvcnRfaWQsIHBvbGljZXJfYWN0aW9uc191 cGRhdGUpKGRldiwNCj4gPiA+IC0gICAgICAgICAgICAgbXRyX2lkLCBhY3Rpb25fbWFzaywgYWN0 aW9ucywgZXJyb3IpOw0KPiA+ID4gKyAgICAgcmV0dXJuIFJURV9NVFJfRlVOQyhwb3J0X2lkLCBt ZXRlcl9kc2NwX3RhYmxlX3VwZGF0ZSkoZGV2LA0KPiA+ID4gKyAgICAgICAgICAgICBtdHJfaWQs IGRzY3BfdGFibGUsIGVycm9yKTsNCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4gIC8qKiBNVFIgb2Jq ZWN0IGVuYWJsZWQgc3RhdHMgdXBkYXRlICovIGRpZmYgLS1naXQNCj4gPiA+IGEvbGliL2xpYnJ0 ZV9ldGhkZXYvcnRlX210ci5oIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX210ci5oIGluZGV4DQo+ ID4gPiA5MTZhMDljNWMzLi4wNzk2MWYyNzc3IDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2xpYnJ0 ZV9ldGhkZXYvcnRlX210ci5oDQo+ID4gPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfbXRy LmgNCj4gPiA+IEBAIC00OSw2ICs0OSw3IEBADQo+ID4gPiAgI2luY2x1ZGUgPHJ0ZV9jb21wYXQu aD4NCj4gPiA+ICAjaW5jbHVkZSA8cnRlX2NvbW1vbi5oPg0KPiA+ID4gICNpbmNsdWRlIDxydGVf bWV0ZXIuaD4NCj4gPiA+ICsjaW5jbHVkZSA8cnRlX2Zsb3cuaD4NCj4gPiA+DQo+ID4gPiAgI2lm ZGVmIF9fY3BsdXNwbHVzDQo+ID4gPiAgZXh0ZXJuICJDIiB7DQo+ID4gPiBAQCAtMTc0LDIzICsx NzUsNiBAQCBzdHJ1Y3QgcnRlX210cl9tZXRlcl9wcm9maWxlIHsNCj4gPiA+ICAgICAgIH07DQo+ ID4gPiAgfTsNCj4gPiA+DQo+ID4gPiAtLyoqDQo+ID4gPiAtICogUG9saWNlciBhY3Rpb25zDQo+ ID4gPiAtICovDQo+ID4gPiAtZW51bSBydGVfbXRyX3BvbGljZXJfYWN0aW9uIHsNCj4gPiA+IC0g ICAgIC8qKiBSZWNvbG9yIHRoZSBwYWNrZXQgYXMgZ3JlZW4uICovDQo+ID4gPiAtICAgICBNVFJf UE9MSUNFUl9BQ1RJT05fQ09MT1JfR1JFRU4gPSAwLA0KPiA+ID4gLQ0KPiA+ID4gLSAgICAgLyoq IFJlY29sb3IgdGhlIHBhY2tldCBhcyB5ZWxsb3cuICovDQo+ID4gPiAtICAgICBNVFJfUE9MSUNF Ul9BQ1RJT05fQ09MT1JfWUVMTE9XLA0KPiA+ID4gLQ0KPiA+ID4gLSAgICAgLyoqIFJlY29sb3Ig dGhlIHBhY2tldCBhcyByZWQuICovDQo+ID4gPiAtICAgICBNVFJfUE9MSUNFUl9BQ1RJT05fQ09M T1JfUkVELA0KPiA+ID4gLQ0KPiA+ID4gLSAgICAgLyoqIERyb3AgdGhlIHBhY2tldC4gKi8NCj4g PiA+IC0gICAgIE1UUl9QT0xJQ0VSX0FDVElPTl9EUk9QLA0KPiA+ID4gLX07DQo+ID4gPiAtDQo+ ID4gPiAgLyoqDQo+ID4gPiAgICogUGFyYW1ldGVycyBmb3IgZWFjaCB0cmFmZmljIG1ldGVyaW5n ICYgcG9saWNpbmcgb2JqZWN0DQo+ID4gPiAgICoNCj4gPiA+IEBAIC0yMzIsMTMgKzIxNiwxMyBA QCBzdHJ1Y3QgcnRlX210cl9wYXJhbXMgew0KPiA+ID4gICAgICAgICovDQo+ID4gPiAgICAgICBp bnQgbWV0ZXJfZW5hYmxlOw0KPiA+ID4NCj4gPiA+IC0gICAgIC8qKiBQb2xpY2VyIGFjdGlvbnMg KHBlciBtZXRlciBvdXRwdXQgY29sb3IpLiAqLw0KPiA+ID4gLSAgICAgZW51bSBydGVfbXRyX3Bv bGljZXJfYWN0aW9uIGFjdGlvbltSVEVfQ09MT1JTXTsNCj4gPiA+IC0NCj4gPiA+ICAgICAgIC8q KiBTZXQgb2Ygc3RhdHMgY291bnRlcnMgdG8gYmUgZW5hYmxlZC4NCj4gPiA+ICAgICAgICAqIEBz ZWUgZW51bSBydGVfbXRyX3N0YXRzX3R5cGUNCj4gPiA+ICAgICAgICAqLw0KPiA+ID4gICAgICAg dWludDY0X3Qgc3RhdHNfbWFzazsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIC8qKiBNZXRlciBwb2xp Y3kgSUQuICovDQo+ID4gPiArICAgICB1aW50MzJfdCBtZXRlcl9wb2xpY3lfaWQ7DQo+ID4gPiAg fTsNCj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4gPiBAQCAtMzI0LDYgKzMwOCwxMyBAQCBzdHJ1Y3Qg cnRlX210cl9jYXBhYmlsaXRpZXMgew0KPiA+ID4gICAgICAgICovDQo+ID4gPiAgICAgICB1aW50 NjRfdCBtZXRlcl9yYXRlX21heDsNCj4gPiA+DQo+ID4gPiArICAgICAvKioNCj4gPiA+ICsgICAg ICAqIE1heGltdW0gbnVtYmVyIG9mIHBvbGljeSBvYmplY3RzIHRoYXQgY2FuIGhhdmUuDQo+ID4g PiArICAgICAgKiBUaGUgdmFsdWUgb2YgMCBpcyBpbnZhbGlkLiBQb2xpY3kgbXVzdCBiZSBzdXBw b3J0ZWQgZm9yIG1ldGVyLg0KPiA+ID4gKyAgICAgICogVGhlIG1heGltdW0gdmFsdWUgaXMgKm5f bWF4Ki4NCj4gPiA+ICsgICAgICAqLw0KPiA+ID4gKyAgICAgdWludDY0X3QgbWV0ZXJfcG9saWN5 X25fbWF4Ow0KPiA+ID4gKw0KPiA+ID4gICAgICAgLyoqDQo+ID4gPiAgICAgICAgKiBXaGVuIG5v bi16ZXJvLCBpdCBpbmRpY2F0ZXMgdGhhdCBjb2xvciBhd2FyZSBtb2RlIGlzDQo+ID4gPiBzdXBw b3J0ZWQgZm9yDQo+ID4gPiAgICAgICAgKiB0aGUgc3JUQ00gUkZDIDI2OTcgbWV0ZXJpbmcgYWxn b3JpdGhtLg0KPiA+ID4gQEAgLTM0MiwxOCArMzMzLDYgQEAgc3RydWN0IHJ0ZV9tdHJfY2FwYWJp bGl0aWVzIHsNCj4gPiA+ICAgICAgICAqLw0KPiA+ID4gICAgICAgaW50IGNvbG9yX2F3YXJlX3Ry dGNtX3JmYzQxMTVfc3VwcG9ydGVkOw0KPiA+ID4NCj4gPiA+IC0gICAgIC8qKiBXaGVuIG5vbi16 ZXJvLCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgcG9saWNlciBwYWNrZXQgcmVjb2xvcg0KPiA+ID4g YWN0aW9ucw0KPiA+ID4gLSAgICAgICogYXJlIHN1cHBvcnRlZC4NCj4gPiA+IC0gICAgICAqIEBz ZWUgZW51bSBydGVfbXRyX3BvbGljZXJfYWN0aW9uDQo+ID4gPiAtICAgICAgKi8NCj4gPiA+IC0g ICAgIGludCBwb2xpY2VyX2FjdGlvbl9yZWNvbG9yX3N1cHBvcnRlZDsNCj4gPiA+IC0NCj4gPiA+ IC0gICAgIC8qKiBXaGVuIG5vbi16ZXJvLCBpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgcG9saWNlciBw YWNrZXQgZHJvcCBhY3Rpb24gaXMNCj4gPiA+IC0gICAgICAqIHN1cHBvcnRlZC4NCj4gPiA+IC0g ICAgICAqIEBzZWUgZW51bSBydGVfbXRyX3BvbGljZXJfYWN0aW9uDQo+ID4gPiAtICAgICAgKi8N Cj4gPiA+IC0gICAgIGludCBwb2xpY2VyX2FjdGlvbl9kcm9wX3N1cHBvcnRlZDsNCj4gPiA+IC0N Cj4gPiA+ICAgICAgIC8qKiBTZXQgb2Ygc3VwcG9ydGVkIHN0YXRpc3RpY3MgY291bnRlciB0eXBl cy4NCj4gPiA+ICAgICAgICAqIEBzZWUgZW51bSBydGVfbXRyX3N0YXRzX3R5cGUNCj4gPiA+ICAg ICAgICAqLw0KPiA+ID4gQEAgLTQ2Miw2ICs0NDEsOTQgQEAgcnRlX210cl9tZXRlcl9wcm9maWxl X2RlbGV0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ID4gICAgICAgdWludDMyX3QgbWV0ZXJfcHJv ZmlsZV9pZCwNCj4gPiA+ICAgICAgIHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ID4g Pg0KPiA+ID4gKy8qKg0KPiA+ID4gKyAqIFBvbGljeSBpZCAwIGlzIGRlZmF1bHQgcG9saWN5Lg0K PiA+DQo+ID4gSSBzdWdnZXN0IHlvdSBkbyBub3QgcmVkdW5kYW50bHkgc3BlY2lmeSB0aGUgdmFs dWUgb2YgdGhlIGRlZmF1bHQgcG9saWN5IElEDQo+IGluIHRoZQ0KPiA+IGNvbW1lbnQuIFJlcGxh Y2UgYnkgIkRlZmF1bHQgcG9saWN5IElELiINCj4gPg0KPiA+ID4gKyAqIEFjdGlvbiBwZXIgY29s b3IgYXMgYmVsb3c6DQo+ID4gPiArICogZ3JlZW4gLSBubyBhY3Rpb24sIHllbGxvdyAtIG5vIGFj dGlvbiwgcmVkIC0gZHJvcA0KPiA+DQo+ID4gVGhpcyBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIG1l IGFzIHRoZSBkZWZhdWx0IHBvbGljeS4gVGhlIGRlZmF1bHQgcG9saWN5DQo+IHNob3VsZA0KPiA+ IGJlICJubyBjaGFuZ2UiLCBpLmUuIGdyZWVuIC0+IGdyZWVuIChubyBjaGFuZ2UpLCB5ZWxsb3cg LT4geWVsbG93IChubw0KPiBjaGFuZ2UpLA0KPiA+IHJlZCAtPiByZWQgKG5vIGNoYW5nZSkuDQo+ IA0KPiBDYW4geW91IGV4cGxhaW4gd2h5IGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byB5b3U/DQo+ IA0KPiBNZXRlciB3aXRoICJubyBjaGFuZ2UiIGZvciBhbGwgY29sb3JzIGhhcyBubyBlZmZlY3Qg b24gdGhlIHBhY2tldHMgc28gaXQgaXMNCj4gcmVkdW5kYW50IGFjdGlvbiB3aGljaCBqdXN0IGNv c3RzIHBlcmZvcm1hbmNlIGFuZCByZXNvdXJjZXMgLSBwcm9iYWJseQ0KPiBuZXZlciBiZSB1c2Vk Lg0KPiANCg0KVGhlIG1idWY6OnNjaGVkOjpjb2xvciBuZWVkcyB0byBiZSBzZXQgZm9yIHRoZSBw YWNrZXQsIGFuZCB0aGUgb25seSB3YXkgdG8gZG8gdGhpcyBpcyBieSBhcHBseWluZyB0aGUgUlRF X0ZMT1dfQUNUSU9OX1RZUEVfQ09MT1IgQWN0aW9uLCByaWdodD8gSXQgd291bGQgbWFrZSBzZW5z ZSB0aGF0IHRoZSBkZWZhdWx0IHBvbGljeSBpcyB0byBzaW1wbHkgYXBwbHkgdG8gdGhlIHBhY2tl dCB0aGUgY29sb3IgdGhhdCB0aGUgbWV0ZXIganVzdCBjb21wdXRlZCBmb3IgdGhlIGN1cnJlbnQg cGFja2V0IHdpdGggbm8gY2hhbmdlLCByaWdodD8NCg0KPiBUaGUgbW9zdCBjb21tb24gdXNhZ2Ug Zm9yIG1ldGVyIGlzIHRvIGRyb3AgYWxsIHRoZSBwYWNrZXRzIGNvbWUgYWJvdmUgdGhlDQo+IGRl ZmluZWQgcmF0ZSBsaW1pdCAtIHNvIGl0IG1ha2VzIHNlbnNlIHRvIHRha2UgdGhpcyBiZWhhdmlv ciBhcyBkZWZhdWx0Lg0KPiANCg0KSSBkb24ndCBhZ3JlZSB3aXRoIHRoaXMgYXNzZXJ0aW9uIGVp dGhlci4gT25lIHR5cGljYWwgdXNhZ2Ugb2YgdGhlIGNvbG9yIGlzIHRvIGFjY2VwdCBhbGwgaW5w dXQgcGFja2V0cyBmcm9tIHRoZSB1c2VyLCBlaXRoZXIgZ3JlZW4sIHllbGxvdyBvciByZWQgaW4g dGhlIGFic2VuY2Ugb2YgYW55IGNvbmdlc3Rpb24sIGFuZCBjaGFyZ2UgdGhlIHVzZXIgZm9yIHRo aXMgdHJhZmZpYzsgaW4gY2FzZSBvZiBjb25nZXN0aW9uLCBhcyB0eXBpY2FsbHkgZGV0ZWN0ZWQg bGF0ZXIgKHR5cGljYWxseSBvbiBzY2hlZHVsaW5nIGFuZCBtYXliZSBvbiBhIGRpZmZlcmVudCBu ZXR3b3JrIG5vZGUsIGRlcGVuZGluZyBvbiB0aGUgYXBwbGljYXRpb24pLCB0aGUgcGFja2V0IGNv bG9yIGlzIHVzZWQgdG8gcHJpb3JpdGl6ZSBiZXR3ZWVuIHBhY2tldHMsIGkuZS4gZHJvcCByZWQg cGFja2V0cyBmaXJzdCBiZWZvcmUgZHJvcHBpbmcgYW55IHllbGxvdyBvciBncmVlbiBwYWNrZXRz LiBJbiB0aGlzIGNhc2UsIHRoZXJlIGlzIG5vIHByZS1kZWZpbmVkICJkcm9wIGFsbCByZWQgcGFj a2V0cyBzdHJhaWdodCBhd2F5IiBwb2xpY3kuDQoNCj4gDQo+ID4gSSBzdWdnZXN0IHdlIGF2b2lk IHRoZSAibm8gYWN0aW9uIiBzdGF0ZW1lbnQsIGFzIGl0IG1pZ2h0IGJlIGNvbmZ1c2luZy4NCj4g DQo+IE1heWJlICJkbyBub3RoaW5nIiBpcyBiZXR0ZXI/DQo+IA0KDQpZZXMsIG1ha2VzIHNlbnNl IHRvIG1lLg0KDQo+IA0KPiA+ID4gKyAqIEl0IGNhbiBiZSB1c2VkIHdpdGhvdXQgY3JlYXRpbmcg aXQgYnkgdGhlIHJ0ZV9tdHJfbWV0ZXJfcG9saWN5X2FkZA0KPiA+ID4gZnVuY3Rpb24uDQo+ID4g PiArICovDQo+ID4gPiArI2RlZmluZSBSVEVfTVRSX0RFRkFVTFRfUE9MSUNZX0lEIDANCj4gPiA+ ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgKiBDaGVjayB3aGV0aGVyIGEgbWV0ZXIgcG9saWN5IGNh biBiZSBjcmVhdGVkIG9uIGEgZ2l2ZW4gcG9ydC4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIFRoZSBt ZXRlciBwb2xpY3kgaXMgdmFsaWRhdGVkIGZvciBjb3JyZWN0bmVzcyBhbmQNCj4gPiA+ICsgKiB3 aGV0aGVyIGl0IGNvdWxkIGJlIGFjY2VwdGVkIGJ5IHRoZSBkZXZpY2UgZ2l2ZW4gc3VmZmljaWVu dCByZXNvdXJjZXMuDQo+ID4gPiArICogVGhlIHBvbGljeSBpcyBjaGVja2VkIGFnYWluc3QgdGhl IGN1cnJlbnQgY2FwYWJpbGl0eSBpbmZvcm1hdGlvbg0KPiA+ID4gKyAqIG1ldGVyX3BvbGljeV9u X21heCBjb25maWd1cmF0aW9uLg0KPiA+ID4gKyAqIFRoZSBwb2xpY3kgbWF5IGFsc28gb3B0aW9u YWxseSBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBleGlzdGluZw0KPiA+ID4gKyAqIGRldmljZSBwb2xp Y3kgcmVzb3VyY2VzLg0KPiA+ID4gKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiB0 aGUgdGFyZ2V0IGRldmljZS4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEBwYXJhbVtpbl0gcG9ydF9p ZA0KPiA+ID4gKyAqICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNl Lg0KPiA+ID4gKyAqIEBwYXJhbVtpbl0gcG9saWN5X2lkDQo+ID4gPiArICogICBQb2xpY3kgaWRl bnRpZmllciBmb3IgdGhlIG5ldyBtZXRlciBwb2xpY3kuDQo+ID4gPiArICogQHBhcmFtW2luXSBh Y3Rpb25zDQo+ID4gPiArICogICBBc3NvY2lhdGVkIGFjdGlvbiBsaXN0IHBlciBjb2xvci4NCj4g PiA+ICsgKiAgIGxpc3QgTlVMTCBpcyBsZWdhbCBhbmQgbWVhbnMgbm8gc3BlY2lhbCBhY3Rpb24u DQo+ID4gPiArICogICAobGlzdCB0ZXJtaW5hdGVkIGJ5IHRoZSBFTkQgYWN0aW9uKS4NCj4gPiA+ ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiA+ID4gKyAqICAgRXJyb3IgZGV0YWlscy4gRmlsbGVk IGluIG9ubHkgb24gZXJyb3IsIHdoZW4gbm90IE5VTEwuDQo+ID4gPiArICoNCj4gPiA+ICsgKiBA cmV0dXJuDQo+ID4gPiArICogICAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIGVycm9yIGNvZGUgb3Ro ZXJ3aXNlLg0KPiA+ID4gKyAqDQo+ID4gPiArICovDQo+ID4gPiArX19ydGVfZXhwZXJpbWVudGFs DQo+ID4gPiAraW50DQo+ID4gPiArcnRlX210cl9tZXRlcl9wb2xpY3lfdmFsaWRhdGUodWludDE2 X3QgcG9ydF9pZCwNCj4gPiA+ICsgICAgIHVpbnQzMl90IHBvbGljeV9pZCwNCj4gPiA+ICsgICAg IGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnNbUlRFX0NPTE9SU10sDQo+ID4g PiArICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0KPiA+ID4gKw0KPiA+DQo+ID4g VGhpcyBlbnRpcmUgcHJvcG9zYWwgaXMgYWJvdXQgZGVmaW5pbmcgYSBtZXRlciBwb2xpY3ksIHll dCB0aGVyZSBpcyBubw0KPiBzdHJ1Y3R1cmUNCj4gPiBkZWZpbmluZyB3aGF0IGV4YWN0bHkgdGhl IG1ldGVyIHBvbGljeSBpcyENCj4gPg0KPiA+IFBsZWFzZSBsZXQncyB1c2UgdGhlIGZvbGxvd2lu ZyBzdHJ1Y3R1cmUgZm9yIHRoZSBwb2xpY3kgcGFyYW1ldGVycyBmb3IgdGhlDQo+IHBvbGljeQ0K PiA+IHZhbGlkYXRlL2FkZC9kZWxldGUgQVBJIGZ1bmN0aW9uczoNCj4gPg0KPiA+IHN0cnVjdCBy dGVfbXRyX21ldGVyX3BvbGljeV9wYXJhbXMgew0KPiA+ICAgICAgICAgc3RydWN0IHJ0ZV9mbG93 X2FjdGlvbiAqYWN0aW9uc1tSVEVfQ09MT1JTXTsgfTsNCj4gPg0KPiA+IFRoaXMgd291bGQgYWxz byBnaXZlIHVzIHRoZSBjaGFuY2UgdG8gZG9jdW1lbnQgdGhlIHBvbGljeSBjb25jZXB0IGluIGRl dGFpbA0KPiA+IG9uY2UgYW5kIG5vdCByZXBlYXQgdGhlIHNhbWUgZXhwbGFuYXRpb24gb3ZlciBh bmQgb3Zlci4gRm9yIGV4YW1wbGUsIHdlDQo+ID4gbmVlZCB0byBleHBsYWluIGNsZWFybHkgdGhh dCBhY3Rpb25zW2ldIHBvdGVudGlhbGx5IHJlcHJlc2VudHMgYSBjaGFpbiBvZg0KPiBydGVfZmxv dw0KPiA+IGFjdGlvbnMgdGVybWluYXRlZCBieSB0aGUgRU5EIGFjdGlvbiwgZXhhY3RseSBhcyBz cGVjaWZpZWQgYnkgdGhlIHJ0ZV9mbG93DQo+IEFQSQ0KPiA+IGZvciB0aGUgZmxvdyBkZWZpbml0 aW9uLCBhbmQgbm90IGp1c3QgYSBzaW5nbGUgYWN0aW9uLiBUaGlzIGlzIHZlcnkgaW1wb3J0YW50 DQo+IGFuZA0KPiA+IHlldCBub3QgZW50aXJlbHkgY2xlYXIgZnJvbSB0aGUgYWJvdmUgZGVzY3Jp cHRpb24uDQo+ID4NCj4gPiBUaGlzIHdvdWxkIGFsc28gZ2l2ZSB1cyB0aGUgY2hhbmNlIHRvIGFk ZCBtb3JlIGF0dHJpYnV0ZXMgdG8gdGhlIG1ldGVyDQo+IHBvbGljeQ0KPiA+IGxhdGVyLCBpZi93 aGVuIG5lZWRlZCwgd2l0aCBtaW5pbWFsIGltcGFjdCB0byB0aGUgQVBJLg0KPiA+DQo+ID4gPiAr LyoqDQo+ID4gPiArICogTWV0ZXIgcG9saWN5IGFkZA0KPiA+ID4gKyAqDQo+ID4gPiArICogQ3Jl YXRlIGEgbmV3IG1ldGVyIHBvbGljeS4gVGhlIG5ldyBwb2xpY3kNCj4gPiA+ICsgKiBpcyB1c2Vk IHRvIGNyZWF0ZSBzaW5nbGUgb3IgbXVsdGlwbGUgTVRSIG9iamVjdHMuDQo+ID4gPiArICoNCj4g PiA+ICsgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gPiA+ICsgKiAgIFRoZSBwb3J0IGlkZW50aWZp ZXIgb2YgdGhlIEV0aGVybmV0IGRldmljZS4NCj4gPiA+ICsgKiBAcGFyYW1baW5dIHBvbGljeV9p ZA0KPiA+ID4gKyAqICAgUG9saWN5IGlkZW50aWZpZXIgZm9yIHRoZSBuZXcgbWV0ZXIgcG9saWN5 Lg0KPiA+ID4gKyAqIEBwYXJhbVtpbl0gYWN0aW9ucw0KPiA+ID4gKyAqICAgQXNzb2NpYXRlZCBh Y3Rpb25zIHBlciBjb2xvci4NCj4gPiA+ICsgKiAgIGxpc3QgTlVMTCBpcyBsZWdhbCBhbmQgbWVh bnMgbm8gc3BlY2lhbCBhY3Rpb24uDQo+ID4gPiArICogICAobGlzdCB0ZXJtaW5hdGVkIGJ5IHRo ZSBFTkQgYWN0aW9uKS4NCj4gPiA+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiA+ID4gKyAqICAg RXJyb3IgZGV0YWlscy4gRmlsbGVkIGluIG9ubHkgb24gZXJyb3IsIHdoZW4gbm90IE5VTEwuDQo+ ID4gPiArICogQHJldHVybg0KPiA+ID4gKyAqICAgMCBvbiBzdWNjZXNzLCBub24temVybyBlcnJv ciBjb2RlIG90aGVyd2lzZS4NCj4gPiA+ICsgKi8NCj4gPiA+ICtfX3J0ZV9leHBlcmltZW50YWwN Cj4gPiA+ICtpbnQNCj4gPiA+ICtydGVfbXRyX21ldGVyX3BvbGljeV9hZGQodWludDE2X3QgcG9y dF9pZCwNCj4gPiA+ICsgICAgIHVpbnQzMl90IHBvbGljeV9pZCwNCj4gPiA+ICsgICAgIGNvbnN0 IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnNbUlRFX0NPTE9SU10sDQo+ID4gPiArICAg ICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ ID4gKyAqIE1ldGVyIHBvbGljeSBkZWxldGUNCj4gPiA+ICsgKg0KPiA+ID4gKyAqIERlbGV0ZSBh biBleGlzdGluZyBtZXRlciBwb2xpY3kuIFRoaXMgb3BlcmF0aW9uIGZhaWxzIHdoZW4gdGhlcmUN Cj4gPiA+ICtpcw0KPiA+ID4gKyAqIGN1cnJlbnRseSBhdCBsZWFzdCBvbmUgdXNlciAoaS5lLiBN VFIgb2JqZWN0KSBvZiB0aGlzIHBvbGljeS4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEBwYXJhbVtp bl0gcG9ydF9pZA0KPiA+ID4gKyAqICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJu ZXQgZGV2aWNlLg0KPiA+ID4gKyAqIEBwYXJhbVtpbl0gcG9saWN5X2lkDQo+ID4gPiArICogICBQ b2xpY3kgaWRlbnRpZmllci4NCj4gPiA+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiA+ID4gKyAq ICAgRXJyb3IgZGV0YWlscy4gRmlsbGVkIGluIG9ubHkgb24gZXJyb3IsIHdoZW4gbm90IE5VTEwu DQo+ID4gPiArICogQHJldHVybg0KPiA+ID4gKyAqICAgMCBvbiBzdWNjZXNzLCBub24temVybyBl cnJvciBjb2RlIG90aGVyd2lzZS4NCj4gPiA+ICsgKi8NCj4gPiA+ICtfX3J0ZV9leHBlcmltZW50 YWwNCj4gPiA+ICtpbnQNCj4gPiA+ICtydGVfbXRyX21ldGVyX3BvbGljeV9kZWxldGUodWludDE2 X3QgcG9ydF9pZCwNCj4gPiA+ICsgICAgIHVpbnQzMl90IHBvbGljeV9pZCwNCj4gPiA+ICsgICAg IHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ID4gPiArDQo+ID4gPiAgLyoqDQo+ID4g PiAgICogTVRSIG9iamVjdCBjcmVhdGUNCj4gPiA+ICAgKg0KPiA+ID4gQEAgLTU4NywxOCArNjU0 LDE0IEBAIHJ0ZV9tdHJfbWV0ZXJfcHJvZmlsZV91cGRhdGUodWludDE2X3QNCj4gcG9ydF9pZCwN Cj4gPiA+ICAgICAgIHN0cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ID4gPg0KPiA+ID4g IC8qKg0KPiA+ID4gLSAqIE1UUiBvYmplY3QgRFNDUCB0YWJsZSB1cGRhdGUNCj4gPiA+ICsgKiBN VFIgb2JqZWN0IG1ldGVyIHBvbGljeSB1cGRhdGUNCj4gPiA+ICAgKg0KPiA+ID4gICAqIEBwYXJh bVtpbl0gcG9ydF9pZA0KPiA+ID4gICAqICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgRXRo ZXJuZXQgZGV2aWNlLg0KPiA+ID4gICAqIEBwYXJhbVtpbl0gbXRyX2lkDQo+ID4gPiAgICogICBN VFIgb2JqZWN0IElELiBOZWVkcyB0byBiZSB2YWxpZC4NCj4gPiA+IC0gKiBAcGFyYW1baW5dIGRz Y3BfdGFibGUNCj4gPiA+IC0gKiAgIFdoZW4gbm9uLU5VTEw6IGl0IHBvaW50cyB0byBhIHByZS1h bGxvY2F0ZWQgYW5kIHByZS1wb3B1bGF0ZWQgdGFibGUNCj4gPiA+IHdpdGgNCj4gPiA+IC0gKiAg IGV4YWN0bHkgNjQgZWxlbWVudHMgcHJvdmlkaW5nIHRoZSBpbnB1dCBjb2xvciBmb3IgZWFjaCB2 YWx1ZSBvZiB0aGUNCj4gPiA+IC0gKiAgIElQdjQvSVB2NiBEaWZmZXJlbnRpYXRlZCBTZXJ2aWNl cyBDb2RlIFBvaW50IChEU0NQKSBpbnB1dCBwYWNrZXQNCj4gZmllbGQuDQo+ID4gPiAtICogICBX aGVuIE5VTEw6IGl0IGlzIGVxdWl2YWxlbnQgdG8gc2V0dGluZyB0aGlzIHBhcmFtZXRlciB0byBh biDDouKCrMWTYWxsLQ0KPiA+ID4gZ3JlZW7DouKCrMKdDQo+ID4gPiAtICogICBwb3B1bGF0ZWQg dGFibGUgKGkuZS4gdGFibGUgd2l0aCBhbGwgdGhlIDY0IGVsZW1lbnRzIHNldCB0byBncmVlbg0K PiBjb2xvcikuDQo+ID4gPiArICogQHBhcmFtW2luXSBtZXRlcl9wb2xpY3lfaWQNCj4gPiA+ICsg KiAgIE1ldGVyIHBvbGljeSBJRCBmb3IgdGhlIGN1cnJlbnQgTVRSIG9iamVjdC4gTmVlZHMgdG8g YmUgdmFsaWQuDQo+ID4gPiAgICogQHBhcmFtW291dF0gZXJyb3INCj4gPiA+ICAgKiAgIEVycm9y IGRldGFpbHMuIEZpbGxlZCBpbiBvbmx5IG9uIGVycm9yLCB3aGVuIG5vdCBOVUxMLg0KPiA+ID4g ICAqIEByZXR1cm4NCj4gPiA+IEBAIC02MDYsMjYgKzY2OSwyNCBAQCBydGVfbXRyX21ldGVyX3By b2ZpbGVfdXBkYXRlKHVpbnQxNl90DQo+IHBvcnRfaWQsDQo+ID4gPiAgICovDQo+ID4gPiAgX19y dGVfZXhwZXJpbWVudGFsDQo+ID4gPiAgaW50DQo+ID4gPiAtcnRlX210cl9tZXRlcl9kc2NwX3Rh YmxlX3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ID4gK3J0ZV9tdHJfbWV0ZXJfcG9saWN5 X3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ID4gICAgICAgdWludDMyX3QgbXRyX2lkLA0K PiA+ID4gLSAgICAgZW51bSBydGVfY29sb3IgKmRzY3BfdGFibGUsDQo+ID4gPiArICAgICB1aW50 MzJfdCBtZXRlcl9wb2xpY3lfaWQsDQo+ID4gPiAgICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAq ZXJyb3IpOw0KPiA+ID4NCj4gPiA+ICAvKioNCj4gPiA+IC0gKiBNVFIgb2JqZWN0IHBvbGljZXIg YWN0aW9ucyB1cGRhdGUNCj4gPiA+ICsgKiBNVFIgb2JqZWN0IERTQ1AgdGFibGUgdXBkYXRlDQo+ ID4gPiAgICoNCj4gPiA+ICAgKiBAcGFyYW1baW5dIHBvcnRfaWQNCj4gPiA+ICAgKiAgIFRoZSBw b3J0IGlkZW50aWZpZXIgb2YgdGhlIEV0aGVybmV0IGRldmljZS4NCj4gPiA+ICAgKiBAcGFyYW1b aW5dIG10cl9pZA0KPiA+ID4gICAqICAgTVRSIG9iamVjdCBJRC4gTmVlZHMgdG8gYmUgdmFsaWQu DQo+ID4gPiAtICogQHBhcmFtW2luXSBhY3Rpb25fbWFzaw0KPiA+ID4gLSAqICAgQml0IG1hc2sg aW5kaWNhdGluZyB3aGljaCBwb2xpY2VyIGFjdGlvbnMgbmVlZCB0byBiZSB1cGRhdGVkLiBPbmUg b3INCj4gPiA+IG1vcmUNCj4gPiA+IC0gKiAgIHBvbGljZXIgYWN0aW9ucyBjYW4gYmUgdXBkYXRl ZCBpbiBhIHNpbmdsZSBmdW5jdGlvbiBpbnZvY2F0aW9uLiBUbw0KPiB1cGRhdGUNCj4gPiA+IC0g KiAgIHRoZSBwb2xpY2VyIGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggY29sb3IgQywgYml0ICgxIDw8 IEMpIG5lZWRzIHRvIGJlIHNldA0KPiBpbg0KPiA+ID4gLSAqICAgKmFjdGlvbl9tYXNrKiBhbmQg ZWxlbWVudCBhdCBwb3NpdGlvbiBDIGluIHRoZSAqYWN0aW9ucyogYXJyYXkNCj4gbmVlZHMgdG8N Cj4gPiA+IGJlDQo+ID4gPiAtICogICB2YWxpZC4NCj4gPiA+IC0gKiBAcGFyYW1baW5dIGFjdGlv bnMNCj4gPiA+IC0gKiAgIFByZS1hbGxvY2F0ZWQgYW5kIHByZS1wb3B1bGF0ZWQgYXJyYXkgb2Yg cG9saWNlciBhY3Rpb25zLg0KPiA+ID4gKyAqIEBwYXJhbVtpbl0gZHNjcF90YWJsZQ0KPiA+ID4g KyAqICAgV2hlbiBub24tTlVMTDogaXQgcG9pbnRzIHRvIGEgcHJlLWFsbG9jYXRlZCBhbmQgcHJl LXBvcHVsYXRlZCB0YWJsZQ0KPiA+ID4gd2l0aA0KPiA+ID4gKyAqICAgZXhhY3RseSA2NCBlbGVt ZW50cyBwcm92aWRpbmcgdGhlIGlucHV0IGNvbG9yIGZvciBlYWNoIHZhbHVlIG9mIHRoZQ0KPiA+ ID4gKyAqICAgSVB2NC9JUHY2IERpZmZlcmVudGlhdGVkIFNlcnZpY2VzIENvZGUgUG9pbnQgKERT Q1ApIGlucHV0IHBhY2tldA0KPiBmaWVsZC4NCj4gPiA+ICsgKiAgIFdoZW4gTlVMTDogaXQgaXMg ZXF1aXZhbGVudCB0byBzZXR0aW5nIHRoaXMgcGFyYW1ldGVyIHRvIGFuIMOi4oKsxZNhbGwtDQo+ ID4gPiBncmVlbsOi4oKswp0NCj4gPiA+ICsgKiAgIHBvcHVsYXRlZCB0YWJsZSAoaS5lLiB0YWJs ZSB3aXRoIGFsbCB0aGUgNjQgZWxlbWVudHMgc2V0IHRvIGdyZWVuDQo+IGNvbG9yKS4NCj4gPiA+ ICAgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiA+ID4gICAqICAgRXJyb3IgZGV0YWlscy4gRmlsbGVk IGluIG9ubHkgb24gZXJyb3IsIHdoZW4gbm90IE5VTEwuDQo+ID4gPiAgICogQHJldHVybg0KPiA+ ID4gQEAgLTYzMywxMCArNjk0LDkgQEAgcnRlX210cl9tZXRlcl9kc2NwX3RhYmxlX3VwZGF0ZSh1 aW50MTZfdA0KPiA+ID4gcG9ydF9pZCwNCj4gPiA+ICAgKi8NCj4gPiA+ICBfX3J0ZV9leHBlcmlt ZW50YWwNCj4gPiA+ICBpbnQNCj4gPiA+IC1ydGVfbXRyX3BvbGljZXJfYWN0aW9uc191cGRhdGUo dWludDE2X3QgcG9ydF9pZCwNCj4gPiA+ICtydGVfbXRyX21ldGVyX2RzY3BfdGFibGVfdXBkYXRl KHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gPiAgICAgICB1aW50MzJfdCBtdHJfaWQsDQo+ID4gPiAt ICAgICB1aW50MzJfdCBhY3Rpb25fbWFzaywNCj4gPiA+IC0gICAgIGVudW0gcnRlX210cl9wb2xp Y2VyX2FjdGlvbiAqYWN0aW9ucywNCj4gPiA+ICsgICAgIGVudW0gcnRlX2NvbG9yICpkc2NwX3Rh YmxlLA0KPiA+ID4gICAgICAgc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4gPiA+DQo+ ID4gPiAgLyoqDQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX210cl9k cml2ZXIuaA0KPiA+ID4gYi9saWIvbGlicnRlX2V0aGRldi9ydGVfbXRyX2RyaXZlci5oDQo+ID4g PiBpbmRleCBhMGRkYzJiNWY0Li4xYWQ4ZmI0YzQwIDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2xp YnJ0ZV9ldGhkZXYvcnRlX210cl9kcml2ZXIuaA0KPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9ldGhk ZXYvcnRlX210cl9kcml2ZXIuaA0KPiA+ID4gQEAgLTQxLDYgKzQxLDIzIEBAIHR5cGVkZWYgaW50 DQo+ID4gPiAoKnJ0ZV9tdHJfbWV0ZXJfcHJvZmlsZV9kZWxldGVfdCkoc3RydWN0DQo+ID4gPiBy dGVfZXRoX2RldiAqZGV2LA0KPiA+ID4gICAgICAgc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9y KTsNCj4gPiA+ICAvKio8IEBpbnRlcm5hbCBNVFIgbWV0ZXIgcHJvZmlsZSBkZWxldGUgKi8NCj4g PiA+DQo+ID4gPiArdHlwZWRlZiBpbnQgKCpydGVfbXRyX21ldGVyX3BvbGljeV92YWxpZGF0ZV90 KShzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4gKmRldiwNCj4gPiA+ICsgICAgIHVpbnQzMl90IHBvbGlj eV9pZCwNCj4gPiA+ICsgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnNb UlRFX0NPTE9SU10sDQo+ID4gPiArICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0K PiA+ID4gKy8qKjwgQGludGVybmFsIE1UUiBtZXRlciBwb2xpY3kgdmFsaWRhdGUgKi8NCj4gPiA+ ICsNCj4gPiA+ICt0eXBlZGVmIGludCAoKnJ0ZV9tdHJfbWV0ZXJfcG9saWN5X2FkZF90KShzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+ICsgICAgIHVpbnQzMl90IHBvbGljeV9pZCwNCj4g PiA+ICsgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnNbUlRFX0NPTE9S U10sDQo+ID4gPiArICAgICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0KPiA+ID4gKy8q KjwgQGludGVybmFsIE1UUiBtZXRlciBwb2xpY3kgYWRkICovDQo+ID4gPiArDQo+ID4gPiArdHlw ZWRlZiBpbnQgKCpydGVfbXRyX21ldGVyX3BvbGljeV9kZWxldGVfdCkoc3RydWN0IHJ0ZV9ldGhf ZGV2DQo+ICpkZXYsDQo+ID4gPiArICAgICB1aW50MzJfdCBwb2xpY3lfaWQsDQo+ID4gPiArICAg ICBzdHJ1Y3QgcnRlX210cl9lcnJvciAqZXJyb3IpOw0KPiA+ID4gKy8qKjwgQGludGVybmFsIE1U UiBtZXRlciBwb2xpY3kgZGVsZXRlICovDQo+ID4gPiArDQo+ID4gPiAgdHlwZWRlZiBpbnQgKCpy dGVfbXRyX2NyZWF0ZV90KShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+ICAgICAgIHVp bnQzMl90IG10cl9pZCwNCj4gPiA+ICAgICAgIHN0cnVjdCBydGVfbXRyX3BhcmFtcyAqcGFyYW1z LA0KPiA+ID4gQEAgLTY5LDE4ICs4NiwxNyBAQCB0eXBlZGVmIGludA0KPiA+ID4gKCpydGVfbXRy X21ldGVyX3Byb2ZpbGVfdXBkYXRlX3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ID4g ICAgICAgc3RydWN0IHJ0ZV9tdHJfZXJyb3IgKmVycm9yKTsNCj4gPiA+ICAvKio8IEBpbnRlcm5h bCBNVFIgb2JqZWN0IG1ldGVyIHByb2ZpbGUgdXBkYXRlICovDQo+ID4gPg0KPiA+ID4gLXR5cGVk ZWYgaW50ICgqcnRlX210cl9tZXRlcl9kc2NwX3RhYmxlX3VwZGF0ZV90KShzdHJ1Y3QNCj4gcnRl X2V0aF9kZXYNCj4gPiA+ICpkZXYsDQo+ID4gPiArdHlwZWRlZiBpbnQgKCpydGVfbXRyX21ldGVy X3BvbGljeV91cGRhdGVfdCkoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYsDQo+ID4gPiAgICAg ICB1aW50MzJfdCBtdHJfaWQsDQo+ID4gPiAtICAgICBlbnVtIHJ0ZV9jb2xvciAqZHNjcF90YWJs ZSwNCj4gPiA+ICsgICAgIHVpbnQzMl90IG1ldGVyX3BvbGljeV9pZCwNCj4gPiA+ICAgICAgIHN0 cnVjdCBydGVfbXRyX2Vycm9yICplcnJvcik7DQo+ID4gPiAtLyoqPCBAaW50ZXJuYWwgTVRSIG9i amVjdCBtZXRlciBEU0NQIHRhYmxlIHVwZGF0ZSAqLw0KPiA+ID4gKy8qKjwgQGludGVybmFsIE1U UiBvYmplY3QgbWV0ZXIgcG9saWN5IHVwZGF0ZSAqLw0KPiA+ID4NCj4gPiA+IC10eXBlZGVmIGlu dCAoKnJ0ZV9tdHJfcG9saWNlcl9hY3Rpb25zX3VwZGF0ZV90KShzdHJ1Y3QgcnRlX2V0aF9kZXYN Cj4gPiA+ICpkZXYsDQo+ID4gPiArdHlwZWRlZiBpbnQgKCpydGVfbXRyX21ldGVyX2RzY3BfdGFi bGVfdXBkYXRlX3QpKHN0cnVjdA0KPiBydGVfZXRoX2Rldg0KPiA+ID4gKmRldiwNCj4gPiA+ICAg ICAgIHVpbnQzMl90IG10cl9pZCwNCj4gPiA+IC0gICAgIHVpbnQzMl90IGFjdGlvbl9tYXNrLA0K PiA+ID4gLSAgICAgZW51bSBydGVfbXRyX3BvbGljZXJfYWN0aW9uICphY3Rpb25zLA0KPiA+ID4g KyAgICAgZW51bSBydGVfY29sb3IgKmRzY3BfdGFibGUsDQo+ID4gPiAgICAgICBzdHJ1Y3QgcnRl X210cl9lcnJvciAqZXJyb3IpOw0KPiA+ID4gLS8qKjwgQGludGVybmFsIE1UUiBvYmplY3QgcG9s aWNlciBhY3Rpb24gdXBkYXRlKi8NCj4gPiA+ICsvKio8IEBpbnRlcm5hbCBNVFIgb2JqZWN0IG1l dGVyIERTQ1AgdGFibGUgdXBkYXRlICovDQo+ID4gPg0KPiA+ID4gIHR5cGVkZWYgaW50ICgqcnRl X210cl9zdGF0c191cGRhdGVfdCkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiAgICAg ICB1aW50MzJfdCBtdHJfaWQsDQo+ID4gPiBAQCAtMTI0LDE0ICsxNDAsMjMgQEAgc3RydWN0IHJ0 ZV9tdHJfb3BzIHsNCj4gPiA+ICAgICAgIC8qKiBNVFIgb2JqZWN0IG1ldGVyIERTQ1AgdGFibGUg dXBkYXRlICovDQo+ID4gPiAgICAgICBydGVfbXRyX21ldGVyX2RzY3BfdGFibGVfdXBkYXRlX3Qg bWV0ZXJfZHNjcF90YWJsZV91cGRhdGU7DQo+ID4gPg0KPiA+ID4gLSAgICAgLyoqIE1UUiBvYmpl Y3QgcG9saWNlciBhY3Rpb24gdXBkYXRlICovDQo+ID4gPiAtICAgICBydGVfbXRyX3BvbGljZXJf YWN0aW9uc191cGRhdGVfdCBwb2xpY2VyX2FjdGlvbnNfdXBkYXRlOw0KPiA+ID4gLQ0KPiA+ID4g ICAgICAgLyoqIE1UUiBvYmplY3QgZW5hYmxlZCBzdGF0cyB1cGRhdGUgKi8NCj4gPiA+ICAgICAg IHJ0ZV9tdHJfc3RhdHNfdXBkYXRlX3Qgc3RhdHNfdXBkYXRlOw0KPiA+ID4NCj4gPiA+ICAgICAg IC8qKiBNVFIgb2JqZWN0IHN0YXRzIHJlYWQgKi8NCj4gPiA+ICAgICAgIHJ0ZV9tdHJfc3RhdHNf cmVhZF90IHN0YXRzX3JlYWQ7DQo+ID4gPiArDQo+ID4gPiArICAgICAvKiogTVRSIG1ldGVyIHBv bGljeSB2YWxpZGF0ZSAqLw0KPiA+ID4gKyAgICAgcnRlX210cl9tZXRlcl9wb2xpY3lfdmFsaWRh dGVfdCBtZXRlcl9wb2xpY3lfdmFsaWRhdGU7DQo+ID4gPiArDQo+ID4gPiArICAgICAvKiogTVRS IG1ldGVyIHBvbGljeSBhZGQgKi8NCj4gPiA+ICsgICAgIHJ0ZV9tdHJfbWV0ZXJfcG9saWN5X2Fk ZF90IG1ldGVyX3BvbGljeV9hZGQ7DQo+ID4gPiArDQo+ID4gPiArICAgICAvKiogTVRSIG1ldGVy IHBvbGljeSBkZWxldGUgKi8NCj4gPiA+ICsgICAgIHJ0ZV9tdHJfbWV0ZXJfcG9saWN5X2RlbGV0 ZV90IG1ldGVyX3BvbGljeV9kZWxldGU7DQo+ID4gPiArDQo+ID4gPiArICAgICAvKiogTVRSIG9i amVjdCBtZXRlciBwb2xpY3kgdXBkYXRlICovDQo+ID4gPiArICAgICBydGVfbXRyX21ldGVyX3Bv bGljeV91cGRhdGVfdCBtZXRlcl9wb2xpY3lfdXBkYXRlOw0KPiA+ID4gIH07DQo+ID4gPg0KPiA+ ID4gIC8qKg0KPiA+ID4gLS0NCj4gPiA+IDIuMjEuMA0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBD cmlzdGlhbg0KPiBUaGFua3MhDQoNClJlZ2FyZHMsDQpDcmlzdGlhbg0K