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 9370CA0501; Tue, 26 Apr 2022 15:45:46 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 51C2840E78; Tue, 26 Apr 2022 15:45:46 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id CB10440C35 for ; Tue, 26 Apr 2022 15:45:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650980744; x=1682516744; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=JYNyTOM57B0/ZoB5d19V0AZf0mHqqFIN/6ta/gYItck=; b=N2ff4IjxS3Vdmue4ZTc+xSZb/YGBTUd8JlhDQk7S8FzrfxyFnUS9lAhw 2TYq+UYH3kxTINN4Ypdmcx1leR9h+dvLSahgreRx3AzGoHfLNQ1mn9hkZ 3MCEo9wX69XeL3hK48ekOABND2g5MiLA8hJakrhYwbpud99nok+F95N5S +LDNHHG08Lmx9C05u+aVG/fLCEmjwVu219R45ZD/fyZR7sW/vkA8GSsT0 lW6M3FTxtUaXlQ3RUsqwQWqeILYtUBlpU8at7NP7Qm+yVt5EswKaFG6Ha bTBSbSARmYJ8L1rRVSrYNoufaS8SHI+8X0ApIxuyI0Dcvia9J08jGlnFn Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10328"; a="252957037" X-IronPort-AV: E=Sophos;i="5.90,291,1643702400"; d="scan'208";a="252957037" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 06:45:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,291,1643702400"; d="scan'208";a="705058975" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga001.fm.intel.com with ESMTP; 26 Apr 2022 06:45:42 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Tue, 26 Apr 2022 06:45:42 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Tue, 26 Apr 2022 06:45:42 -0700 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.42) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Tue, 26 Apr 2022 06:45:41 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c32FXErHxJJpmNPdhmkKoZeYUqbCMN9d50DP3E1gYUvlv6pzXBIkjCUeypyydM4AArfsLKuEnlypePMk1Lft43eZjBkBAO/LNsgMHOOAQXnfTCF2hLxvpscDA9vRD4iTFXR5E3NwwBWFU0bliLhwxcwqs6pYxgKRxsvC51FXLF1yq0Yxa1hIvTcHfKwM1OMz2fwuzfrZCGnHbE3mz67CM2WapjjOLq1CumNxSJ4HgbI/E/tM9AUjnhcD+iSM6qf+vzAFWGNEg53Db8kJvNGBSN0xxd3QNpFGYifWNOURRTSF6AbgE2SQoLQ8wJZ0ZBYSHX/XUjw3v0ehwWqnCOr2Wg== 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=JYNyTOM57B0/ZoB5d19V0AZf0mHqqFIN/6ta/gYItck=; b=T+96wHI4W1Moy/yG9/HrPVQk0vzQw8OhlwjKlkFmCCzRcbVEPVlnPIxQhj0efMTH22ZGftF8iqcl6+f2eukMz+R1LQDHSQTW0/2+1rq7qQ/uPPmcIQfL7hWHlQi2oQu+cnH9Bs+3QwPwvGM8aomBW1875/jK2IrqwSpp/kr8wfYVzsYBCdT6JfmzM7ccctafg98GlrGEZWnbeQuWVdr1StdHr65uGYm+i3E49CFVGkzgrWqsezKGX2y8OKFlYZW6nXiBIWX2Esul7HxX2i3R2lDwp0UuyvsOS3dGoPnMgiy+CBT+uaTVBDbbREI1kf3lwc5IslXRCHy28/xHbF5TtA== 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 DM8PR11MB5670.namprd11.prod.outlook.com (2603:10b6:8:37::12) by DM5PR11MB1657.namprd11.prod.outlook.com (2603:10b6:4:c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.15; Tue, 26 Apr 2022 13:45:39 +0000 Received: from DM8PR11MB5670.namprd11.prod.outlook.com ([fe80::5dc9:53d7:3ece:fa2d]) by DM8PR11MB5670.namprd11.prod.outlook.com ([fe80::5dc9:53d7:3ece:fa2d%2]) with mapi id 15.20.5186.021; Tue, 26 Apr 2022 13:45:39 +0000 From: "Dumitrescu, Cristian" To: Jerin Jacob , Alexander Kozyrev CC: dpdk-dev , Ori Kam , Thomas Monjalon , Ivan Malov , Andrew Rybchenko , "'Yigit, Ferruh'" , "Awal, Mohammad Abdul" , "Zhang, Qi Z" , Jerin Jacob , Ajit Khaparde , "Richardson, Bruce" Subject: RE: [RFC] ethdev: datapath-focused meter actions Thread-Topic: [RFC] ethdev: datapath-focused meter actions Thread-Index: AQHYSvMNHDxQ/Ff61USTqtdNbkYLPazlrVMAgByZCHCAAAs6UA== Date: Tue, 26 Apr 2022 13:45:39 +0000 Message-ID: References: <20220408024658.2004918-1-akozyrev@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.401.20 dlp-reaction: no-action dlp-product: dlpe-windows 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: 78aecf18-dcd7-4364-148b-08da278b0ce7 x-ms-traffictypediagnostic: DM5PR11MB1657:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr 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: Dy24oJkpHhFx78sMP+fS6LKa5xRCuO2fc/sxlWra/nJF6OgStdJSSg7wzeUkOL+k1IHhJKAZilcrxHt2CuOO7i23HDB6gg7hHvY1lFdEcWOHjHXfB/dUldbIxp7v1uW3kzThK1eGzeHNYF8bNX+LZQbrY7jbC0Impp69SNfd1ulnXMgTRycG2zw6rJEeMxYL4dasZ0FOTZnoDGjGV8QwkZdW98g/HRcBS+odv3vIeiyh2NPt2l+RspU/6hfsWMHus1MaC+zuL/1qIm8+O2lyf48R+xkIw1C6aM/4/Ch1cK0KmgL62Rgx/mWTGUEZdx4J1tKbIaPGILM+uNJ6y+2aL2iG16eSrE03+m0MPN147qfeBUWeK7EzIS1PXmT8EqeuO7ixb17L7/OcDJ9Q79F8V13niQIx2ezUxnsrmk0TeP0QX1PHj2pT1OVsipVZIfsOH5uguInQ0Y7eobcLl+8FrtkwmuvLi6hEC8ae/XUtDSXheUudsFGz8FfonMFVmMFY63sTvnYPEB+LRnjKtiONBBSjOadrxjQv7x5T0gjwjYvuDs+oHp6FiV7diMqJnxGqQEuilRz/SLKUTS+jhVIrxgukr16q28O74hJ+Rpot3x3IRSHgVJDmTknjZRXiz2y9rNGa3lLY7c0+FjMs5vmTAzsv/+7ghQPoCnoNJtL6h6KASE+tVG4dz7WPyeFB7q+FwC7H0Ti7A5hlr4H8F1kNXQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5670.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(8676002)(64756008)(66556008)(186003)(2940100002)(66476007)(66446008)(4326008)(5660300002)(66946007)(38070700005)(38100700002)(26005)(6506007)(7696005)(9686003)(53546011)(316002)(76116006)(86362001)(54906003)(122000001)(33656002)(110136005)(107886003)(55016003)(2906002)(82960400001)(83380400001)(30864003)(52536014)(8936002)(508600001)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U2ZhanFZRnRQUGgxbXhzdElrTVFYekFjdTRpcW9OSUpiNk1CUXVMNlMwUFAz?= =?utf-8?B?L2p5cTdRTnlrZVU5dTFLWkFUWE1sOXRVa0FBa2VmaG9QYUtYSk5PRjlOaEFI?= =?utf-8?B?QVoyY1RKWW8xUVdKUXJhMEx4ZSs0ek9qeFRpcGg4ZEpoTURFdXZYRlpIbkx2?= =?utf-8?B?b296RGdXVEVFZk8zZjl2am15VVc1TW5hWW91aUNiTWtMcG5TaER3VGhKWG5O?= =?utf-8?B?ZmM1bjcrYmNteFhPNEt1aFRsNHRUZHRJNG16dVlzcEZtK2M3YWtJbHRSSGNY?= =?utf-8?B?TFA1djlVcEZnRHg2cUhwN3VIaDdzTHBKa3JtK2RBWjBmdnI5K1FJSko5TGlU?= =?utf-8?B?MDJhMDIxM1VpNmpra3JZZlZpQmowWm5KQzA0NlV3SmNXUThCbXhIdUdwZW1G?= =?utf-8?B?T085Um5IVHM5SWtuMExzS3kzaHh4N3h2SkRmRTJzUzdTdkJUdWF1a2IrVFBR?= =?utf-8?B?ZjlaY1E5VU5hWElTWnVydTNWLzl6dTRvd3kwVVl6Wk5zcTV5Vys1TWxrRCtK?= =?utf-8?B?WWFqeDJDcGRnanZqbmZSVGFNWHMzTkVVL1hlUlZjUENVWmt6NGJVY25qdmhD?= =?utf-8?B?QXhFMlRmeWtoTHBPUjM5VXlLMXk3MFBnNWFxSXZ2bUdESElMVXpINVdOOEFB?= =?utf-8?B?WTN2UmZhdGJRWWNhRUM1VG5wNTRGcUhIYXF3ZjBnSTJJQXo3UXltd1o1Q1NV?= =?utf-8?B?QmRMVUdVRWFSRVkxdFZScXlKMVRXZVAzeFo3M3V4MDBkYWxZMzluazRnL2lw?= =?utf-8?B?SVN1Qy84RkxsdzJCdnM5MUpGSEJPaS9RZW1nbjg0V1pqTGRpdTdTNmEzOU5K?= =?utf-8?B?a0VUZmZ0Z3pOaFlNSlNVaTBaMUQxZlFTQS9pOTFhQ3lzeEx0OTNzeVVlUFR0?= =?utf-8?B?UDZka1BRN2Z4VDVrL1ZreW1EV0xJZVUra2piZHpSdUx0NnZjZlhxV3ZDdjRq?= =?utf-8?B?amZaY2dpOGNEN3FkRmkxbG5hOFkzbCtOUHgrZjBoREVPZTY0ZDY4Rm8vOWJ2?= =?utf-8?B?V2RjbFpWdnNWWENVM3AvQmR0ZExoMjROb0dZZTF0OUMreTZBaXh1MVdWR0g1?= =?utf-8?B?QVB0UGxjSjhTSm9nWk9ITk5RRXZESXd4VEQ5R2dEQ2JZZnhOc05HSC9QdU8x?= =?utf-8?B?ckN1Zm1wTTZKcHl6Z1dsUWsvSlZvSG5KaWNnZWUxb0h0TExud3FBOUVwOTIv?= =?utf-8?B?ekg4dllEU3gwZSt6bzgvNVBIR1NXZFdkZC9UN0xLK1pwVTJPWDd1TmNKNmFm?= =?utf-8?B?LzFHeEhNK1VVejVjMFRlYlVnMHdJVXFIdEY3bnduL0EwNHAyaWd1eE55R2Zx?= =?utf-8?B?blQ0ekZ2S3NpcytDZ2E0SnM3cW95eVN3NGJoYVlxek5MTHo4OTlMMm5XSlkr?= =?utf-8?B?L01tOWxEWGFyd3Y0UForODE2M0t2UndDQStYVy9GOGkrZFlrQ0pYRVp0SkxB?= =?utf-8?B?KzM1dHljbkJvQ05yV2RBT0txVllYUlYxSTlqeUNBSUpLeUVhTWJRMHJpd1FV?= =?utf-8?B?SjlBNnRvY1VreXJKVCsrU2tjNVFkaDNReDJFRW9VeDE2a3o1VytwdER4WW8r?= =?utf-8?B?czhKVWtCbk5XV0RyNHI3YnI3SUhMcjdVeE1YZ3lrdEsvdjJ4b2xUbVFUcEor?= =?utf-8?B?RzQ5SUNlUENaUStMMjJvTGRPWTJ2WTFkT0liTGhZcGVoMVZzNSszSytpVmNx?= =?utf-8?B?OERyUHFaNlZrSGI4LzB2bllLVUNTOHV0QkNnVjRYZ1FzSkxRVW5WeWtCaXY3?= =?utf-8?B?TWRFdGgrc1dBZStGejl2bS9nZVg4b1JIdEp5d0gzNDQwc1g4djc2eGFia1p0?= =?utf-8?B?WmV1UzhHQ0dNV3FUb3IvdXh0c0ZtbTB1Y3AvaFpPNmowZUVKSFRGVkd2WERQ?= =?utf-8?B?NnNyRVRISkNJOVVRY0NwMG1JUndlZXZiSmN5Rm8xK2Y4ejY5RTkraitMdHVV?= =?utf-8?B?Q2pTU2Rwcm8rQ0V5UVArWW1LWUZGTGFSRXZhbmtEeW5YclB6OCtvRUYrN1hO?= =?utf-8?B?WmczZTR0MHdjdVJNanRGektzOXpQbTBMa3EvK0Y4VHYrWFhhWFpuQ3VDZ0tQ?= =?utf-8?B?aDZkMmwzRy9pR3JhMmxHK0RHODB4Z0c4N0Z4c2NObHJURWNtMCtxeFdydHVL?= =?utf-8?B?TXNUWTVJQ3l5S2hjVEh3VUVySy9BakVhUHdVaVFCakMxSkJ1Uk9BS0NmNEhN?= =?utf-8?B?UkZmMGpQaVRkK2EvSWt4Q01mY25hWURXRXRFUlpqN0ZTRFFaMHhBVTM2ellX?= =?utf-8?B?bXZXSnB4ZEYyQUw4dXRCNjJNQld1UWMyNzFVMjZhNy92ZGVKQmYxQ0JUczg2?= =?utf-8?B?YlMrYWt6VTRHU0lZMHNYWmRIRkZYNlo5T09PK2tCRDQ5VWxQN0s4SFlxZEFl?= =?utf-8?Q?CAyRw6Tx6A++3Guc=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: DM8PR11MB5670.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78aecf18-dcd7-4364-148b-08da278b0ce7 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2022 13:45:39.6598 (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: Sxlq2+geDur9pTVA+YLJ3xo/E+ef1TWuFt6Nmuf+0La5tQ17p8VlmPJn2hCjRD6ncMdRv33PlCM/rpdlFQ0hJejhn0IT6/dFNg8POwxX0hw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1657 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 SSBmb3Jnb3QgdG8gbWVudGlvbjogYmVzaWRlcyB0aGUgbXkgc3RhdGVtZW50IGF0IHRoZSB0b3Ag b2YgbXkgcmVwbHksIHRoZXJlIGFyZSBtYW55IGNvbW1lbnRzIGlubGluZSBiZWxvdyA6KQ0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IER1bWl0cmVzY3UsIENyaXN0aWFu DQo+IFNlbnQ6IFR1ZXNkYXksIEFwcmlsIDI2LCAyMDIyIDI6NDQgUE0NCj4gVG86IEplcmluIEph Y29iIDxqZXJpbmphY29ia0BnbWFpbC5jb20+OyBBbGV4YW5kZXIgS296eXJldg0KPiA8YWtvenly ZXZAbnZpZGlhLmNvbT4NCj4gQ2M6IGRwZGstZGV2IDxkZXZAZHBkay5vcmc+OyBPcmkgS2FtIDxv cmlrYUBudmlkaWEuY29tPjsgVGhvbWFzDQo+IE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0 PjsgSXZhbiBNYWxvdiA8aXZhbi5tYWxvdkBva3RldGxhYnMucnU+Ow0KPiBBbmRyZXcgUnliY2hl bmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0bGFicy5ydT47IFlpZ2l0LCBGZXJydWgNCj4gPGZl cnJ1aC55aWdpdEBpbnRlbC5jb20+OyBBd2FsLCBNb2hhbW1hZCBBYmR1bA0KPiA8bW9oYW1tYWQu YWJkdWwuYXdhbEBpbnRlbC5jb20+OyBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+ Ow0KPiBKZXJpbiBKYWNvYiA8amVyaW5qQG1hcnZlbGwuY29tPjsgQWppdCBLaGFwYXJkZQ0KPiA8 YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20+OyBSaWNoYXJkc29uLCBCcnVjZQ0KPiA8YnJ1Y2Uu cmljaGFyZHNvbkBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUkZDXSBldGhkZXY6IGRhdGFw YXRoLWZvY3VzZWQgbWV0ZXIgYWN0aW9ucw0KPiANCj4gSGkgQWxleGFuZGVyLA0KPiANCj4gQWZ0 ZXIgcmV2aWV3aW5nIHRoaXMgUkZDLCBJIGhhdmUgdG8gc2F5IHRoYXQgeW91ciBwcm9wb3NhbCBp cyB2ZXJ5IHVuY2xlYXIgdG8gbWUuDQo+IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IGlzIHRoZSBw cm9ibGVtIHlvdSdyZSB0cnlpbmcgdG8gc29sdmUgYW5kIHdoYXQgZXhhY3RseQ0KPiBpcyB0aGF0 IHlvdSBjYW5ub3QgZG8gd2l0aCB0aGUgY3VycmVudCBtZXRlciBhbmQgZmxvdyBBUElzLg0KPiAN Cj4gSSBzdWdnZXN0IHdlIGdldCB0b2dldGhlciBmb3IgYSBjb21tdW5pdHkgY2FsbCB3aXRoIGFs bCB0aGUgaW50ZXJlc3RlZCBmb2xrcw0KPiBpbnZpdGVkIGluIG9yZGVyIHRvIGdldCBtb3JlIGNs YXJpdHkgb24geW91ciBwcm9wb3NhbCwgdGhhbmsgeW91IQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFpbC5j b20+DQo+ID4gU2VudDogRnJpZGF5LCBBcHJpbCA4LCAyMDIyIDk6MjEgQU0NCj4gPiBUbzogQWxl eGFuZGVyIEtvenlyZXYgPGFrb3p5cmV2QG52aWRpYS5jb20+OyBEdW1pdHJlc2N1LCBDcmlzdGlh bg0KPiA+IDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVsLmNvbT4NCj4gPiBDYzogZHBkay1kZXYg PGRldkBkcGRrLm9yZz47IE9yaSBLYW0gPG9yaWthQG52aWRpYS5jb20+OyBUaG9tYXMNCj4gPiBN b25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IEl2YW4gTWFsb3YgPGl2YW4ubWFsb3ZAb2t0 ZXRsYWJzLnJ1PjsNCj4gPiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hlbmtvQG9rdGV0 bGFicy5ydT47IFlpZ2l0LCBGZXJydWgNCj4gPiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IEF3 YWwsIE1vaGFtbWFkIEFiZHVsDQo+ID4gPG1vaGFtbWFkLmFiZHVsLmF3YWxAaW50ZWwuY29tPjsg WmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsNCj4gPiBKZXJpbiBKYWNvYiA8amVy aW5qQG1hcnZlbGwuY29tPjsgQWppdCBLaGFwYXJkZQ0KPiA+IDxhaml0LmtoYXBhcmRlQGJyb2Fk Y29tLmNvbT47IFJpY2hhcmRzb24sIEJydWNlDQo+ID4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwu Y29tPg0KPiA+IFN1YmplY3Q6IFJlOiBbUkZDXSBldGhkZXY6IGRhdGFwYXRoLWZvY3VzZWQgbWV0 ZXIgYWN0aW9ucw0KPiA+DQo+ID4gKyBAQ3Jpc3RpYW4gRHVtaXRyZXNjdSBtZXRlciBtYWludGFp bmVyLg0KPiA+DQo+ID4NCj4gPiBPbiBGcmksIEFwciA4LCAyMDIyIGF0IDg6MTcgQU0gQWxleGFu ZGVyIEtvenlyZXYgPGFrb3p5cmV2QG52aWRpYS5jb20+DQo+ID4gd3JvdGU6DQo+ID4gPg0KPiA+ ID4gVGhlIGludHJvZHVjdGlvbiBvZiBhc3luY2hyb25vdXMgZmxvdyBydWxlcyBvcGVyYXRpb25z IGFsbG93ZWQgdXNlcnMNCj4gPiA+IHRvIGNyZWF0ZS9kZXN0cm95IGZsb3cgcnVsZXMgYXMgcGFy dCBvZiB0aGUgZGF0YXBhdGggd2l0aG91dCBibG9ja2luZw0KPiA+ID4gb24gRmxvdyBBUEkgYW5k IHNsb3dpbmcgdGhlIHBhY2tldCBwcm9jZXNzaW5nIGRvd24uDQo+ID4gPg0KPiA+ID4gVGhhdCBh cHBsaWVzIHRvIGV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiB0aGF0IGhhcyBubyBwcmVwYXJhdGlvbiBz dGVwcy4NCj4gPiA+IFVuZm9ydHVuYXRlbHksIG9uZSBub3RhYmxlIGV4Y2VwdGlvbiBpcyB0aGUg bWV0ZXIgYWN0aW9uLg0KPiA+ID4gVGhlcmUgaXMgYSBzZXBhcmF0ZSBBUEkgdG8gcHJlcGFyZSBh IG1ldGVyIHByb2ZpbGUgYW5kIGEgbWV0ZXIgcG9saWN5DQo+ID4gPiBiZWZvcmUgYW55IG1ldGVy IG9iamVjdCBjYW4gYmUgdXNlZCBhcyBhIGZsb3cgcnVsZSBhY3Rpb24uDQo+IA0KPiBJIGRpc2Fn cmVlLiBDcmVhdGlvbiBvZiBtZXRlciBwb2xpY2llcyBhbmQgbWV0ZXIgb2JqZWN0cyBpcyBkZWNv dXBsZWQgZnJvbSB0aGUNCj4gZmxvdyBjcmVhdGlvbi4gTWV0ZXIgcG9saWNpZXMgYW5kIG1ldGVy IG9iamVjdHMgY2FuIGFsbCBiZSBjcmVhdGVkIGF0DQo+IGluaXRpYWxpemF0aW9uIG9yIG9uLXRo ZS1mbHksIGFuZCB0aGVpciBjcmVhdGlvbiBkb2VzIG5vdCBkaXJlY3RseSByZXF1aXJlIHRoZSBk YXRhDQo+IHBsYW5lIHRvIGJlIHN0b3BwZWQuDQo+IA0KPiBQbGVhc2UgZXhwbGFpbiB3aGF0IHBy b2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gZml4IGhlcmUuIEkgc3VnZ2VzdCB5b3UgcHJvdmlkZQ0K PiB0aGUgc2VxdWVuY2UgZGlhZ3JhbSBhbmQgdGVsbCB1cyB3aGVyZSB0aGUgcHJvYmxlbSBpcy4N Cj4gDQo+ID4gPg0KPiA+ID4gVGhlIGFwcGxpY2F0aW9uIGxvZ2ljIGlzIHRoZSBmb2xsb3dpbmc6 DQo+ID4gPiAxLiBydGVfbXRyX21ldGVyX3Byb2ZpbGVfYWRkKCkgaXMgY2FsbGVkIHRvIGNyZWF0 ZSB0aGUgbWV0ZXIgcHJvZmlsZQ0KPiA+ID4gZmlyc3QgdG8gZGVmaW5lIGhvdyB0byBjbGFzc2lm eSBpbmNvbWluZyBwYWNrZXRzIGFuZCB0byBhc3NpZ24gYW4NCj4gPiA+IGFwcHJvcHJpYXRlIGNv bG9yIHRvIHRoZW0uDQo+ID4gPiAyLiBydGVfbXRyX21ldGVyX3BvbGljeV9hZGQoKSBpcyBpbnZv a2VkIHRvIGRlZmluZSB0aGUgZmF0ZSBvZiBhIHBhY2tldCwNCj4gPiA+IGJhc2VkIG9uIGl0cyBj b2xvciAocHJhY3RpY2FsbHkgY3JlYXRpbmcgZmxvdyBydWxlcywgbWF0Y2hpbmcgY29sb3JzKS4N Cj4gDQo+IE5vcGUsIHRoZSBwb2xpY3kgYWRkIGRvZXMgbm90IGNyZWF0ZSBhbnkgZmxvd3MuIElu IGZhY3QsIGl0IGRvZXMgbm90IGNyZWF0ZSBhbnkNCj4gbWV0ZXIgb2JqZWN0cyBlaXRoZXIuIEl0 IHNpbXBseSBkZWZpbmVzIGEgY29uZmlndXJhdGlvbiBwYXR0ZXJuIHRoYXQgY2FuIGJlDQo+IHJl dXNlZCBtYW55IHRpbWVzIHdoZW4gbWV0ZXIgb2JqZWN0cyBhcmUgY3JlYXRlZCBhZnRlcndhcmRz Lg0KPiANCj4gPiA+IDMuIHJ0ZV9tdHJfY3JlYXRlKCkgaXMgdGhlbiBuZWVkZWQgdG8gc2VhcmNo ICh3aXRoIGxvY2tzKSBmb3IgcHJldmlvdXNseQ0KPiA+ID4gY3JlYXRlZCBwcm9maWxlIGFuZCBw b2xpY3kgaW4gb3JkZXIgdG8gY3JlYXRlIHRoZSBtZXRlciBvYmplY3QuDQo+IA0KPiBUaGUgcnRl X210cl9jcmVhdGUoKSBpcyBub3QgY3JlYXRlZCBhdCB0aGUgdGltZSB0aGUgZmxvdyBpcyBjcmVh dGVkLCBidXQgYXQgYQ0KPiBwcmlvciBkZWNvdXBsZWQgbW9tZW50LiBJIGRvbid0IHNlZSBhbnkg aXNzdWUgaGVyZS4NCj4gDQo+ID4gPiA0LiBydGVfZmxvd19jcmVhdGUoKSBpcyBub3cgZmluYWxs eSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjcmVhdGVkDQo+ID4gPiBtZXRlciBhcyBhbiBh Y3Rpb24uDQo+ID4gPg0KPiA+ID4gVGhpcyBhcHByb2FjaCBkb2Vzbid0IGZpdCBpbnRvIHRoZSBh c3luY2hyb25vdXMgcnVsZSBjcmVhdGlvbiBtb2RlbA0KPiA+ID4gYW5kIGNhbiBiZSBpbXByb3Zl ZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcG9zYWw6DQo+IA0KPiBBZ2FpbiwgdGhlIGNyZWF0aW9u IG9mIG1ldGVyIHBvbGljaWVzIGFuZCBvYmplY3RzIGlzIGRlY291cGxlZCBmcm9tIHRoZSBmbG93 DQo+IGNyZWF0aW9uOyBpbiBmYWN0LCB0aGUgbWV0ZXIgcG9saWNpZXMgYW5kIG9iamVjdHMgbXVz dCBiZSBjcmVhdGVkIGJlZm9yZSB0aGUNCj4gZmxvd3MgdXNpbmcgdGhlbSBhcmUgY3JlYXRlZC4N Cj4gDQo+ID4gPiAxLiBDcmVhdGluZyBhIHBvbGljeSBtYXkgYmUgcmVwbGFjZWQgd2l0aCB0aGUg Y3JlYXRpb24gb2YgYSBncm91cCB3aXRoDQo+ID4gPiB1cCB0byAzIGRpZmZlcmVudCBydWxlcyBm b3IgZXZlcnkgY29sb3IgdXNpbmcgYXN5bmNocm9ub3VzIEZsb3cgQVBJLg0KPiA+ID4gVGhhdCBy ZXF1aXJlcyB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbmV3IHBhdHRlcm4gaXRlbSAtIG1ldGVyIGNv bG9yLg0KPiA+ID4gVGhlbiBjcmVhdGlvbiBhIGZsb3cgcnVsZSB3aXRoIHRoZSBtZXRlciBtZWFu cyBhIHNpbXBsZSBqdW1wIHRvIGEgZ3JvdXA6DQo+ID4gPiBydGVfZmxvd19hc3luY19jcmVhdGUo Z3JvdXA9MSwgcGF0dGVybj1jb2xvciwgYWN0aW9ucz0uLi4pOw0KPiA+ID4gcnRlX2Zsb3dfYXN5 bmNfY3JlYXRlKGdyb3VwPTAsIHBhdHRlcm49NS10dXBsZSwNCj4gPiA+ICAgICAgICAgICAgICAg ICAgICAgICBhY3Rpb25zPW1ldGVyLGp1bXAgZ3JvdXAgMSk7DQo+ID4gPiBUaGlzIGFsbG93cyB0 byBjbGFzc2lmeSBwYWNrZXRzIGFuZCBhY3QgdXBvbiB0aGVpciBjb2xvciBjbGFzc2lmaWNhdGlv bnMuDQo+ID4gPiBUaGUgTWV0ZXIgYWN0aW9uIGFzc2lnbnMgYSBjb2xvciB0byBhIHBhY2tldCBh bmQgYW4gYXBwcm9wcmlhdGUgYWN0aW9uDQo+ID4gPiBpcyBzZWxlY3RlZCBiYXNlZCBvbiB0aGUg TWV0ZXIgY29sb3IgaW4gZ3JvdXAgMS4NCj4gPiA+DQo+IA0KPiBUaGUgbWV0ZXIgb2JqZWN0cyBy ZXF1aXJlcyBhIHJlbGF0aXZlbHkgY29tcGxleCBjb25maWd1cmF0aW9uIHByb2NlZHVyZS4gVGhp cw0KPiBpcyBvbmUgb2YgdGhlIHJlYXNvbnMgbWV0ZXJzIGhhdmUgdGhlaXIgb3duIEFQSSwgc28g d2UgY2FuIGtlZXAgdGhhdA0KPiBjb21wbGV4aXR5IGF3YXkgZnJvbSB0aGUgZmxvdyBBUEkuDQo+ IA0KPiBZb3Ugc2VlbSB0byBpbmRpY2F0ZSB0aGF0IHlvdXIgZGVzaXJlZCBiZWhhdmlvciBpcyB0 byBjcmVhdGUgdGhlIG1ldGVyIG9iamVjdHMNCj4gd2hlbiB0aGUgZmxvdyBpcyBjcmVhdGVkIHJh dGhlciB0aGFuIGluIGFkdmFuY2UuIERpZCBJIGdldCBpdCBjb3JyZWN0bHk/IFRoaXMgaXMNCj4g cG9zc2libGUgd2l0aCB0aGUgY3VycmVudCBBUEkgYXMgd2VsbCBieSBzaW1wbHkgY3JlYXRpbmcg dGhlIG1ldGVyIG9iamVjdA0KPiBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGZsb3cgZ2V0cyBjcmVh dGVkLg0KPiANCj4gU3RpdGNoaW5nIHRoZSBjcmVhdGlvbiBvZiBuZXcgbWV0ZXIgb2JqZWN0IHRv IHRoZSBmbG93IGNyZWF0aW9uIChpZiBJIHVuZGVyc3RhbmQNCj4geW91ciBhcHByb2FjaCByaWdo dCkgZG9lIG5vdCBhbGxvdyBmb3Igc29tZSBpbXBvcnRhbnQgZmVhdHVyZXMsIHN1Y2ggYXM6DQo+ IC1yZXVzaW5nIG1ldGVyIG9iamVjdHMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgY3JlYXRlZCBieSBy ZWFzc2lnbmluZyB0aGVtIHRvIGENCj4gZGlmZmVyZW50IGZsb3cNCj4gLWhhdmluZyBtdWx0aXBs ZSBmbG93cyB1c2UgdGhlIHNhbWUgc2hhcmVkIG1ldGVyLg0KPiANCj4gPiA+IDIuIFByZXBhcmlu ZyBhIG1ldGVyIG9iamVjdCBzaG91bGQgYmUgdGhlIHBhcnQgb2YgZmxvdyBydWxlIGNyZWF0aW9u DQo+IA0KPiBXaHk/PyBQbGVhc2UgdGFrZSBzb21lIHRpbWUgdG8gY2xlYXJseSBleHBsYWluIHRo aXMsIHlvdXIgZW50aXJlIHByb3Bvc2FsDQo+IHNlZW1zIHRvIGJlIHByZWRpY2F0ZWQgb24gdGhp cyBhc3NlcnRpb24gYmVpbmcgdHJ1ZS4NCj4gDQo+ID4gPiBhbmQgdXNlIHRoZSBzYW1lIGZsb3cg cXVldWUgdG8gYmVuZWZpdCBmcm9tIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zOg0KPiA+ID4gcnRl X2Zsb3dfYXN5bmNfY3JlYXRlKGdyb3VwPTAsIHBhdHRlcm49NS10dXBsZSwNCj4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICBhY3Rpb25zPW1ldGVyIGlkIDEgcHJvZmlsZSByZmMyNjk3LCBqdW1w IGdyb3VwIDEpOw0KPiA+ID4gQ3JlYXRpb24gb2YgdGhlIG1ldGVyIG9iamVjdCB0YWtlcyB0aW1l IGFuZCBmbG93IGNyZWF0aW9uIG11c3Qgd2FpdA0KPiA+ID4gdW50aWwgaXQgaXMgcmVhZHkgYmVm b3JlIGluc2VydGluZyB0aGUgcnVsZS4gVXNpbmcgdGhlIHNhbWUgcXVldWUgYWxsb3dzDQo+ID4g PiBlbnN1cmluZyB0aGF0LiBUaGVyZSBpcyBubyBuZWVkIHRvIGNyZWF0ZSBhIG1ldGVyIG9iamVj dCBvdXRzaWRlIG9mIHRoZQ0KPiA+ID4gRmxvdyBBUEksIGJ1dCB0aGlzIGFwcHJvYWNoIHdvbid0 IGFmZmVjdCB0aGUgb2xkIE1ldGVyIEFQSSBpbiBhbnkgd2F5Lg0KPiA+ID4NCj4gPiA+IDMuIEFu b3RoZXIgcG9pbnQgb2Ygb3B0aW1pemF0aW9uIGlzIHRvIHByZXBhcmUgYWxsIHRoZSByZXNvdXJj ZXMgbmVlZGVkDQo+ID4gPiBpbiBhZHZhbmNlIGluIHJ0ZV9mbG93X2NvbmZpZ3VyZSgpLg0KPiAN Cj4gVGhpcyBzZWVtcyB0byBkaXJlY3RseSBjb250cmFkaWN0IHlvdSBwcmV2aW91cyBzdGF0ZW1l bnQgdGhhdCBtZXRlciBvYmplY3RzDQo+IG5lZWQgdG8gYmUgY3JlYXRlZCBhdCB0aGUgc2FtZSB0 aW1lIHdoZW4gdGhlIGZsb3cgaXMgY3JlYXRlZCAoZXhhY3QgcXVvdGUgb2YNCj4geW91ciBzdGF0 ZW1lbnQgZnJvbSBhYm92ZTogIiBQcmVwYXJpbmcgYSBtZXRlciBvYmplY3Qgc2hvdWxkIGJlIHRo ZSBwYXJ0IG9mDQo+IGZsb3cgcnVsZSBjcmVhdGlvbiIpLg0KPiANCj4gQWxsIHRoZSBwb2xpY3kg cnVsZXMgY2FuIGJlIGNyZWF0ZWQNCj4gPiA+IGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gc3Rh Z2UgZWFzaWx5IGFuZCBwdXQgaW50byBzZXZlcmFsIGdyb3Vwcy4NCj4gPiA+IFRoZXNlIGdyb3Vw cyBjYW4gYmUgdXNlZCBieSBtYW55IG1ldGVyIG9iamVjdHMgYnkgc2ltcGxlIGp1bXAgYWN0aW9u IHRvDQo+ID4gPiBhbiBhcHByb3ByaWF0ZSBncm91cC4gTWV0ZXIgb2JqZWN0cyBjYW4gYmUgcHJl YWxsb2NhdGVkIGFzIHdlbGwgYW5kDQo+ID4gPiBjb25maWd1cmVkIHdpdGggcmVxdWlyZWQgcHJv ZmlsZSBwYXJhbWV0ZXJzIGxhdGVyIGF0IHRoZSBmbG93IHJ1bGUNCj4gPiA+IGNyZWF0aW9uIHN0 YWdlLiBUaGUgbnVtYmVyIG9mIHByZS1hbGxvY2F0ZWQgcHJvZmlsZXMvcG9saWNpZXMgaXMNCj4g PiA+IHNwZWNpZmllZCBpbiB0aGUgRmxvdyBlbmdpbmUgcmVzb3VyY2VzIHNldHRpbmdzLg0KPiA+ ID4NCj4gPiA+IFRoZXNlIG9wdGltaXphdGlvbnMgYWxvbmdzaWRlIGFscmVhZHkgZXhpc3Rpbmcg cGF0dGVybi9hY3Rpb25zIHRlbXBsYXRlcw0KPiA+ID4gY2FuIGltcHJvdmUgdGhlIGluc2VydGlv biByYXRlIHNpZ25pZmljYW50bHkgYW5kIGFsbG93IG1ldGVyIHVzYWdlIGFzDQo+ID4gPiBwYXJ0 IG9mIHRoZSBkYXRhcGF0aC4gVGhlIGludHJvZHVjdGlvbiBvZiB0aGUgbmV3IEFQSSBpcyBpbnRl bmRlZCB0byBiZQ0KPiA+ID4gdXNlZCB3aXRoIHRoZSBhc3luY2hyb25vdXMgRmxvdyBBUEkuIERl cHJlY2F0aW9uIG9mIHRoZSBvbGQgTWV0ZXIgQVBJDQo+ID4gPiBpcyBub3QgcGxhbm5lZCBhdCB0 aGlzIHBvaW50Lg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBLb3p5cmV2 IDxha296eXJldkBudmlkaWEuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgbGliL2V0aGRldi9ydGVf Zmxvdy5oIHwgNzENCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystDQo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZmxvdy5oIGIvbGli L2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gPiBpbmRleCBkODgyN2RkMTg0Li5hZWMzNmE5ZjBhIDEw MDY0NA0KPiA+ID4gLS0tIGEvbGliL2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gPiArKysgYi9saWIv ZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiA+IEBAIC0zMyw2ICszMyw3IEBADQo+ID4gPiAgI2luY2x1 ZGUgPHJ0ZV9iaXRvcHMuaD4NCj4gPiA+ICAjaW5jbHVkZSA8cnRlX21idWYuaD4NCj4gPiA+ICAj aW5jbHVkZSA8cnRlX21idWZfZHluLmg+DQo+ID4gPiArI2luY2x1ZGUgPHJ0ZV9tdHIuaD4NCj4g PiA+ICAjaW5jbHVkZSA8cnRlX21ldGVyLmg+DQo+ID4gPiAgI2luY2x1ZGUgPHJ0ZV9ndHAuaD4N Cj4gPiA+ICAjaW5jbHVkZSA8cnRlX2wydHB2Mi5oPg0KPiA+ID4gQEAgLTY3MSw2ICs2NzIsMTMg QEAgZW51bSBydGVfZmxvd19pdGVtX3R5cGUgew0KPiA+ID4gICAgICAgICAgKiBTZWUgc3RydWN0 IHJ0ZV9mbG93X2l0ZW1fZ3JlX29wdC4NCj4gPiA+ICAgICAgICAgICovDQo+ID4gPiAgICAgICAg IFJURV9GTE9XX0lURU1fVFlQRV9HUkVfT1BUSU9OLA0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAv KioNCj4gPiA+ICsgICAgICAgICogTWF0Y2hlcyBNZXRlciBDb2xvci4NCj4gPiA+ICsgICAgICAg ICoNCj4gPiA+ICsgICAgICAgICogU2VlIHN0cnVjdCBydGVfZmxvd19pdGVtX21ldGVyX2NvbG9y Lg0KPiA+ID4gKyAgICAgICAgKi8NCj4gPiA+ICsgICAgICAgUlRFX0ZMT1dfSVRFTV9UWVBFX01F VEVSX0NPTE9SLA0KPiANCj4gQXMgZGlzY3Vzc2VkIGluIHRoZSBwcmV2aW91cyBjb21tdW5pdHkg Y2FsbCBvbiBtZXRlcnMsIGl0IG1ha2VzIHBlcmZlY3Qgc2Vuc2UNCj4gdG8gbWUgdG8gYmUgYWJs ZSB0byB1c2UgdGhlIG1ldGVyIGNvbG9yIGFzIG9uZSBvZiB0aGUgZmxvdyBtYXRjaCBmaWVsZHMu DQo+IA0KPiBXZSBqdXN0IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB0aGlzIGlzIG5lZWRl ZCwgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IHRoZQ0KPiBwYWNrZXQgaGFzIGEgY29sb3IsIGkuZS4g dGhlcmUgaXMgYSBtZXRlciBhY3Rpb24gcHJldmlvdXNseSBpbiB0aGlzIGNoYWluIHRoYXQgZ290 DQo+IGV4ZWN1dGVkLCBvciB0aGVyZSBpcyBhIGRlZmF1bHQgcGFja2V0IGNvbG9yIGlmIG5vdC4g SG93IGRvIHdlIG1ha2Ugc3VyZSBvZg0KPiB0aGlzPw0KPiANCj4gPiA+ICB9Ow0KPiA+ID4NCj4g PiA+ICAvKioNCj4gPiA+IEBAIC0xOTkwLDYgKzE5OTgsMjYgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBydGVfZmxvd19pdGVtX3BwcA0KPiA+IHJ0ZV9mbG93X2l0ZW1fcHBwX21hc2sgPSB7DQo+ID4g PiAgfTsNCj4gPiA+ICAjZW5kaWYNCj4gPiA+DQo+ID4gPiArLyoqDQo+ID4gPiArICogQHdhcm5p bmcNCj4gPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ug d2l0aG91dCBwcmlvciBub3RpY2UNCj4gPiA+ICsgKg0KPiA+ID4gKyAqIFJURV9GTE9XX0lURU1f VFlQRV9NRVRFUl9DT0xPUg0KPiA+ID4gKyAqDQo+ID4gPiArICogTWF0Y2hlcyBhIG1ldGVyIGNv bG9yIHNldCBpbiB0aGUgcGFja2V0IG1ldGEtZGF0YQ0KPiA+ID4gKyAqIChpLmUuIHN0cnVjdCBy dGVfbWJ1Zjo6c2NoZWQ6OmNvbG9yKS4NCj4gPiA+ICsgKi8NCj4gPiA+ICtzdHJ1Y3QgcnRlX2Zs b3dfaXRlbV9tZXRlcl9jb2xvciB7DQo+ID4gPiArICAgICAgIGVudW0gcnRlX2NvbG9yIGNvbG9y OyAvKio8IFBhY2tldCBjb2xvci4gKi8NCj4gPiA+ICt9Ow0KPiA+ID4gKw0KPiA+ID4gKy8qKiBE ZWZhdWx0IG1hc2sgZm9yIFJURV9GTE9XX0lURU1fVFlQRV9NRVRFUl9DT0xPUi4gKi8NCj4gPiA+ ICsjaWZuZGVmIF9fY3BsdXNwbHVzDQo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBydGVfZmxv d19pdGVtX21ldGVyX2NvbG9yDQo+ID4gcnRlX2Zsb3dfaXRlbV9tZXRlcl9jb2xvcl9tYXNrID0g ew0KPiA+ID4gKyAgICAgICAuY29sb3IgPSAweDMsDQo+ID4gPiArfTsNCj4gPiA+ICsjZW5kaWYN Cj4gPiA+ICsNCj4gPiA+ICAvKioNCj4gPiA+ICAgKiBNYXRjaGluZyBwYXR0ZXJuIGl0ZW0gZGVm aW5pdGlvbi4NCj4gPiA+ICAgKg0KPiA+ID4gQEAgLTIzNzYsNiArMjQwNCwxNCBAQCBlbnVtIHJ0 ZV9mbG93X2FjdGlvbl90eXBlIHsNCj4gPiA+ICAgICAgICAgICovDQo+ID4gPiAgICAgICAgIFJU RV9GTE9XX0FDVElPTl9UWVBFX01FVEVSLA0KPiA+ID4NCj4gPiA+ICsgICAgICAgLyoqDQo+ID4g PiArICAgICAgICAqIEV4dGVuZGVkIFRyYWZmaWMgbWV0ZXJpbmcgYW5kIHBvbGljaW5nIChNVFIp Lg0KPiA+ID4gKyAgICAgICAgKg0KPiA+ID4gKyAgICAgICAgKiBTZWUgc3RydWN0IHJ0ZV9mbG93 X2FjdGlvbl9tZXRlcl9leHQuDQo+ID4gPiArICAgICAgICAqIFNlZSBmaWxlIHJ0ZV9tdHIuaCBm b3IgTVRSIG9iamVjdCBjb25maWd1cmF0aW9uLg0KPiA+ID4gKyAgICAgICAgKi8NCj4gPiA+ICsg ICAgICAgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVURVJfRVhULA0KPiA+ID4gKw0KPiA+ID4gICAg ICAgICAvKioNCj4gPiA+ICAgICAgICAgICogUmVkaXJlY3RzIHBhY2tldHMgdG8gc2VjdXJpdHkg ZW5naW5lIG9mIGN1cnJlbnQgZGV2aWNlIGZvciBzZWN1cml0eQ0KPiA+ID4gICAgICAgICAgKiBw cm9jZXNzaW5nIGFzIHNwZWNpZmllZCBieSBzZWN1cml0eSBzZXNzaW9uLg0KPiA+ID4gQEAgLTMx MjgsNiArMzE2NCwxOSBAQCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX21ldGVyIHsNCj4gPiA+ICAg ICAgICAgdWludDMyX3QgbXRyX2lkOyAvKio8IE1UUiBvYmplY3QgSUQgY3JlYXRlZCB3aXRoIHJ0 ZV9tdHJfY3JlYXRlKCkuICovDQo+ID4gPiAgfTsNCj4gPiA+DQo+ID4gPiArLyoqDQo+ID4gPiAr ICogUlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVURVJfRVhUDQo+ID4gPiArICoNCj4gPiA+ICsgKiBF eHRlbmRlZCBUcmFmZmljIG1ldGVyaW5nIGFuZCBwb2xpY2luZyAoTVRSKS4NCj4gPiA+ICsgKg0K PiA+ID4gKyAqIFBhY2tldHMgbWF0Y2hlZCBieSBpdGVtcyBvZiB0aGlzIHR5cGUgY2FuIGJlIGVp dGhlciBkcm9wcGVkIG9yIHBhc3NlZA0KPiB0bw0KPiA+IHRoZQ0KPiA+ID4gKyAqIG5leHQgaXRl bSB3aXRoIHRoZWlyIGNvbG9yIHNldCBieSB0aGUgTVRSIG9iamVjdC4NCj4gPiA+ICsgKi8NCj4g PiA+ICtzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX21ldGVyX2V4dCB7DQo+ID4gPiArICAgICAgIHVp bnQzMl90IG10cl9pZDsgLyoqPCBNVFIgb2JqZWN0IElELiAqLw0KPiA+ID4gKyAgICAgICBzdHJ1 Y3QgcnRlX21ldGVyX3Byb2ZpbGUgKnByb2ZpbGU7IC8qKjwgTVRSIHByb2ZpbGUuICovDQo+ID4g PiArfTsNCj4gPiA+ICsNCj4gDQo+IEhvdyBpcyB0aGlzIHByb3Bvc2VkIG1ldGVyIGV4dGVuZGVk IGFjdGlvbiBkaWZmZXJlbnQgZnJvbSB0aGUgZXhpc3RpbmcgbWV0ZXINCj4gYWN0aW9uPyBUaGlz IGlzIG5vdCBleHBsYWluZWQgYXQgYWxsIGhlcmUsIHBsZWFzZSBleHBsYWluLg0KPiANCj4gVGhl IGNvbW1lbnQgc2VlbXMgdG8gaW5kaWNhdGUgYSBjb3B5ICYgcGFzdGUgZXJyb3IsIGFzICJwYWNr ZXRzIG1hdGNoZWQgYnkNCj4gaXRlbXMgb2YgdGhpcyB0eXBlIC4uLiIgaW5kaWNhdGVzIGEgbWF0 Y2ggaXRlbSwgYW5kIHRoaXMgaXMgYW4gYWN0aW9uIGl0ZW0uDQo+IA0KPiA+ID4gIC8qKg0KPiA+ ID4gICAqIFJURV9GTE9XX0FDVElPTl9UWVBFX1NFQ1VSSVRZDQo+ID4gPiAgICoNCj4gPiA+IEBA IC00ODk5LDEwICs0OTQ4LDIwIEBAIHN0cnVjdCBydGVfZmxvd19wb3J0X2luZm8gew0KPiA+ID4g ICAgICAgICAgKi8NCj4gPiA+ICAgICAgICAgdWludDMyX3QgbWF4X25iX2FnaW5nX29iamVjdHM7 DQo+ID4gPiAgICAgICAgIC8qKg0KPiA+ID4gLSAgICAgICAgKiBNYXhpbXVtIG51bWJlciB0cmFm ZmljIG1ldGVycy4NCj4gPiA+ICsgICAgICAgICogTWF4aW11bSBudW1iZXIgb2YgdHJhZmZpYyBt ZXRlcnMuDQo+ID4gPiAgICAgICAgICAqIEBzZWUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVURVIN Cj4gPiA+ICAgICAgICAgICovDQo+ID4gPiAgICAgICAgIHVpbnQzMl90IG1heF9uYl9tZXRlcnM7 DQo+ID4gPiArICAgICAgIC8qKg0KPiA+ID4gKyAgICAgICAgKiBNYXhpbXVtIG51bWJlciBvZiB0 cmFmZmljIG1ldGVyIHByb2ZpbGVzLg0KPiA+ID4gKyAgICAgICAgKiBAc2VlIFJURV9GTE9XX0FD VElPTl9UWVBFX01FVEVSDQo+ID4gPiArICAgICAgICAqLw0KPiA+ID4gKyAgICAgICB1aW50MzJf dCBtYXhfbmJfbWV0ZXJfcHJvZmlsZXM7DQo+ID4gPiArICAgICAgIC8qKg0KPiA+ID4gKyAgICAg ICAgKiBNYXhpbXVtIG51bWJlciBvZiB0cmFmZmljIG1ldGVycyBwb2xpY2ljZXMuDQo+ID4gPiAr ICAgICAgICAqIEBzZWUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVURVINCj4gPiA+ICsgICAgICAg ICovDQo+ID4gPiArICAgICAgIHVpbnQzMl90IG1heF9uYl9tZXRlcl9wb2xpY2llczsNCj4gPiA+ ICB9Ow0KPiA+ID4NCj4gPiA+ICAvKioNCj4gPiA+IEBAIC00OTcyLDYgKzUwMzEsMTYgQEAgc3Ry dWN0IHJ0ZV9mbG93X3BvcnRfYXR0ciB7DQo+ID4gPiAgICAgICAgICAqIEBzZWUgUlRFX0ZMT1df QUNUSU9OX1RZUEVfTUVURVINCj4gPiA+ICAgICAgICAgICovDQo+ID4gPiAgICAgICAgIHVpbnQz Ml90IG5iX21ldGVyczsNCj4gPiA+ICsgICAgICAgLyoqDQo+ID4gPiArICAgICAgICAqIE51bWJl ciBvZiBtZXRlciBwcm9maWxlcyB0byBjb25maWd1cmUuDQo+ID4gPiArICAgICAgICAqIEBzZWUg UlRFX0ZMT1dfQUNUSU9OX1RZUEVfTUVURVINCj4gPiA+ICsgICAgICAgICovDQo+ID4gPiArICAg ICAgIHVpbnQzMl90IG5iX21ldGVyX3Byb2ZpbGVzOw0KPiA+ID4gKyAgICAgICAvKioNCj4gPiA+ ICsgICAgICAgICogTnVtYmVyIG9mIG1ldGVyIHBvbGljaWVzIHRvIGNvbmZpZ3VyZS4NCj4gPiA+ ICsgICAgICAgICogQHNlZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9NRVRFUg0KPiA+ID4gKyAgICAg ICAgKi8NCj4gPiA+ICsgICAgICAgdWludDMyX3QgbmJfbWV0ZXJfcG9saWNpZXM7DQo+ID4gPiAg fTsNCj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4gPiAtLQ0KPiA+ID4gMi4xOC4yDQo+ID4gPg0KPiAN Cj4gUmVnYXJkcywNCj4gQ3Jpc3RpYW4NCg==