From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id CB11748CD9 for ; Sun, 23 Jun 2024 04:46:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3A02368D4BA; Sun, 23 Jun 2024 07:46:42 +0300 (EEST) Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01olkn2150.outbound.protection.outlook.com [40.92.63.150]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7F40D68D13F for ; Sun, 23 Jun 2024 07:46:35 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bdru6r9UgopTiBclSARmsLcE5shbdghWQ0/wHdRnJBUc0PN0X4+2r7KQTmNHhwJASMuOmfoPhMXDrouxoJMFNZ+2+WhTPqfgdOtbP3+set08KJr9sQ1tT4VO1+rjYU/cI94j9QvazUX+vDa0dHRT6z0UaDopmdX0flvA2cJHdqZhe1nZ6Ey0BS8lwXDbT5RNobTgCA/ZQU3Hlfb3febhs/722I2EwIEfSMa+S2dlYpA/1gXrr6tcFhonsuNSJu05Fn5LxIcN0SaJPdGid6BMNX/wRe1xwZzG9chYZxiv4fN5DUR+qhvDplOCbrlw8d9RYGnU499zhs5hLnymliYRrg== 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=BNMJWjOC/ZdPAat3JwsYHPr8//J7qb/WSfzMOo9lfYQ=; b=Pq710Bsx929/RM17mGWvS+cAEZHFvAVepQlltJ4qoM7UnhAIgi+n3wBB+H1yuwbx6Wg2Cevz813Y5KCjoaKkl3Ycv01njoNKfX5nBMjX7p8dc4iFh3vhLFAdSPXKXNmIH+JSSKj1fP8KEx/kR+/fVDr+Wqvc1+OR+vGGe0mAOBjKPJE2pCIjU90qJos4HzFJ4P7p08XKH8ndrQ+8PPkEdsqX3CxzhZRTSkNzYUvHh1ohe5NmZNx9vAEsWfvNAlEyiFRx4SV6D90JMFDudX+5vIxDGzhterktrLpvlfHkX9ZeTmQLT0EzFul5akNYdb1feUSOhGqmdJbP2I4wD+aOPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BNMJWjOC/ZdPAat3JwsYHPr8//J7qb/WSfzMOo9lfYQ=; b=kRGvWNNsVUvB3QCVkE00XN7084DOEcQVuIWjVbk78CVWVk1Ercu009uhP8ektDucbOh07C+sjMGsaLxKSCb49Vpci1236/LGWtiW/MzaOk4ylSrAJ1XrHGsBtSEmYqnFlj6Y+ezXYgNGl9SICIysVM4hrJs8NVMwDWGcYUaKZuI7MrscX02pN2tEScY1aPtiuclKw9odP0L+w7NHlwmd9FiSAZCLRQ6mmJxbDr6K2COQN+TyySAWwhde4rff9RpbFrMuiwF0YJTnMHzmXMhh7GJh4UMMuUz4uebYDPxdaW5/ULhfdMOvmnJkmuprxe6mRx5rUEj+tRa38dQd0bFJ0g== Received: from SY7P282MB4502.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:27a::13) by SY7P282MB4332.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:279::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.26; Sun, 23 Jun 2024 04:46:29 +0000 Received: from SY7P282MB4502.AUSP282.PROD.OUTLOOK.COM ([fe80::81f7:34e4:ff6f:239d]) by SY7P282MB4502.AUSP282.PROD.OUTLOOK.COM ([fe80::81f7:34e4:ff6f:239d%6]) with mapi id 15.20.7633.033; Sun, 23 Jun 2024 04:46:29 +0000 From: Wu Tong To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v13 06/15] avcodec/vaapi_encode: move the dpb logic from VAAPI to base layer Thread-Index: AQHatZd9q01OMpOj40uhXHX2ybSPbrG8bkEAgAADkICAABgjgIADvtAAgAOVZgCAAwo5AIACKCIQgAvUvrA= Date: Sun, 23 Jun 2024 04:46:29 +0000 Message-ID: References: <20240603091909.1161-1-tong1.wu@intel.com> <20240603091909.1161-6-tong1.wu@intel.com> <6c6c3292-f7a9-4862-8ac7-ad40f457b4b5@lynne.ee> <739da263-f7f6-4747-a6eb-ab74a934c7cc@lynne.ee> <3498433c-94e8-48d3-97b2-0f1fe328e7e8@lynne.ee> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [uy/RtRzqpANub1MVgQzPsDDGkGM1vjuP] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SY7P282MB4502:EE_|SY7P282MB4332:EE_ x-ms-office365-filtering-correlation-id: a305e99c-54c1-4bde-95cf-08dc933f725e x-microsoft-antispam: BCL:0; ARA:14566002|461199025|1602099009|440099025|3412199022|4302099010|102099029; x-microsoft-antispam-message-info: AvJlb7AiCAg6YXPGAmaXk1RUxy0epoVDCrYiujfFrdnNVx6AAOwi/C28Za4MEju6Xp/4aguA99A3psBJC8z5knOvcYyQxjEIci9hKRHmRzeLU6OmFlSdp0ben0XxBekuTgBUPQJ5FXx41fPJ7COlgz4nzbFUzVENlmTG48CPHzBlViDW/wzeLerYGSl1PdXjvKz5z0DbivRCa+NHaU/T/gZoQagdcBmMGqC3tVnPD4WRG8q8z3tLOZVKAicJSP9J5PmGcGzqvMaO49PM28jTIM6a8YS2wFqzepaajjAEPEGBOucpvCtdEVCb/0Zd6PABs8eMN3Ft0yxQPk02CKTUb7yJje4cXglKPyMvyepinDHELZ7mSICF4PHCLFrafetRCxNd9lnTg+mcE/UUkpO1H0qL9etq5wH9X69hi3bt2xmsczIuE8LXg+KUefKB91gyc2l3KcyweAu2LFfoWbUsm7nHtuYILfMYto48sGlqLIbMVMPk1A27HVBj9oJzWUCtoPQ/arFUnpXnsUtoU7cUT5tcTwm6JnQPI9nrdeZG+IcdJtImfaaxlWa7wed/XuqNHA9DnVXRKRpOLCjxe+uOLEfLC1/THRtjAcH6Jb0RrMzHHNPooPZnekQmbJkj3zXbEP562gPjb2NtKv1F1lbuqj+ziDy3fukU7HhXJ5QBw7Mw27cOZQNO76hvLSxyVG3X x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MlRJU1huRTd5SE5wTTZ1ZGJpMWhzM1V0UzlONTBxekRySG1JN1ZaWjM0RXY4?= =?utf-8?B?VUpLK1NRUEtBemVObWdwa2tTV0wvd002UkE4RGhzaUNYK0g3dzlhazVzWWgz?= =?utf-8?B?T0dkUEd1amNlbTNGcFhQSTEwa1Jnc0F4SlhvSlRIalUybWlCN291RC9SVE83?= =?utf-8?B?bHRRcmVWK2MzVWxVRWpSNHdiUjI0UTBGalgwSCtHK1JjV2w2YmtXVHhLcy9y?= =?utf-8?B?N0c4TEJqUTExVGhsQUFyZHIxa0RxM3NiOEJzVVh0dTUzaU8xZE1sVU15emxn?= =?utf-8?B?RWFrOWV1NFpNYWp1QWJKL0RYS2U0Slg2cldHR3dpclhQZ2YyeXEwd2FqY254?= =?utf-8?B?WUNvR3kvcHZDMlIrVS9rL2hld2hVTVBkaXJjdCt6WElsVjR4MHRXN2p1WnNr?= =?utf-8?B?RC9jSFVCdUFWaUFDZHdmM0FRMTFQcEtCS2p5eE5acDRWNXpyelRMZVB5Mk9x?= =?utf-8?B?SDZmK2duV25pSllxZnRqYllRNHdob2w4b1hscUZhZGlXT1llRUxjalF1RmhH?= =?utf-8?B?S3dzc2xZaWk0NkdqaE5ZTWwyMi9YS1ZuelFKYWRsZFE0VWdacFpCcUxrYWZ3?= =?utf-8?B?M0szaXVSUTR1ajE0aWhENDhYMHlCemgvZ0daREx5VVVPSjd2blF1aTJ5aFkx?= =?utf-8?B?RlFPZkxXdWNyNkxvL1QzektBbWpFbEFOTmxJRlZlbnMrV2dJcUplbnBtTFdn?= =?utf-8?B?OGVCSzI4aHR6Y0FxcDBKYzZsb213WnM2cFBqSzI1UGZFeVppOEc2aEFuZUcy?= =?utf-8?B?Nm4zOXdVaHY3bE4xQ2dnNk15VW5rSGZsdGJadGt5SHNtSUlvTHptZTlBem1E?= =?utf-8?B?cDAwZE9uTVlBM25vazV0Q0ZJK3ZzeGFUTnRHY3BRaWszM2ZjR0RxN1FiZkl4?= =?utf-8?B?NlF2amRlS3F2Q0daVUE2eE51eElKVTJtTXRzTll2bHhNeXRnTm9xRS9pVnBo?= =?utf-8?B?RUpCbS9XRGt4ZVJpY21oOHhINnl2eTNJS05XMDVsdTF4OFNrOGJXcmlBUlB0?= =?utf-8?B?bG0zQ0U0aW9uM3NnSG9meEkxQitUVzBZK0F6YTQ4dWkyYkdMMnFhenR5MHh3?= =?utf-8?B?S3JZOFFyNFhZS1JFcmdTY1pxLytESkwzRGdEZER6Z2RPSnJQUWtJV2RpcWVQ?= =?utf-8?B?VmFJOWtCYmlBRms5NFNwSHBrb3dHRDZTTGJGS1d2cHZ5TDFnN1N5cm5JbC9Y?= =?utf-8?B?UC95NDFYNmpNQ2ppNFpPNTY5cmlBM1dkZDBSVlVsaE5qK0lTL1hFeStYN1lr?= =?utf-8?B?UTBFa3pTUEpxa1RFbzRNek9CdllJRnBnalBId1V0NC9OZlpsV0cwVlhOVzhI?= =?utf-8?B?OEQ1NXBZdFhuWk85NHFYWmFCT05zUHFWVnhJeTM5dDdBYWNXSHJwc1ZLdjNZ?= =?utf-8?B?ZHdiL1I0N1VzNmNhRXRwbW00RzBXYTdEcE5nVTlqRU4rNmExVnhwRnRyWTZm?= =?utf-8?B?YXFrUXlPNk5wYkFwRkM1SWdnMW5Xa1Z0Z0hVYU1xQ2huMC9HS3RhRjlUYTdk?= =?utf-8?B?U0w3SHUxNGFwclJhcStVUnRNVU9NTDJGUVpNRENOUHRSaVJ3ellmdVRHcEd6?= =?utf-8?B?M3JOMDZ3VStzNUE5OGJnaDlWaUlYSHhNYzhJT2EvenNPTUwyTUpOSWtHQkl4?= =?utf-8?Q?6+Pxt6r1YH7GVSeCKB4GrIOgXENJCY4+EodbgPfJ7R+Q=3D?= MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SY7P282MB4502.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: a305e99c-54c1-4bde-95cf-08dc933f725e X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jun 2024 04:46:29.0261 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: SY7P282MB4332 Subject: Re: [FFmpeg-devel] [PATCH v13 06/15] avcodec/vaapi_encode: move the dpb logic from VAAPI to base layer X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Lynne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: PkZyb206IGZmbXBlZy1kZXZlbCA8ZmZtcGVnLWRldmVsLWJvdW5jZXNAZmZtcGVnLm9yZz4gT24g QmVoYWxmIE9mIFRvbmcNCj5XdQ0KPlNlbnQ6IDIwMjTlubQ25pyIMTbml6UgMDowNg0KPlRvOiBG Rm1wZWcgZGV2ZWxvcG1lbnQgZGlzY3Vzc2lvbnMgYW5kIHBhdGNoZXMgPGZmbXBlZy0NCj5kZXZl bEBmZm1wZWcub3JnPg0KPkNjOiBMeW5uZSA8ZGV2QGx5bm5lLmVlPg0KPlN1YmplY3Q6IFJlOiBb RkZtcGVnLWRldmVsXSBbUEFUQ0ggdjEzIDA2LzE1XSBhdmNvZGVjL3ZhYXBpX2VuY29kZTogbW92 ZQ0KPnRoZSBkcGIgbG9naWMgZnJvbSBWQUFQSSB0byBiYXNlIGxheWVyDQo+DQo+PiA+PiBGcm9t OiBmZm1wZWctZGV2ZWwgPGZmbXBlZy1kZXZlbC1ib3VuY2VzQGZmbXBlZy5vcmc+IE9uIEJlaGFs ZiBPZg0KPj4gPj4gTHlubmUgdmlhIGZmbXBlZy1kZXZlbA0KPj4gPj4gU2VudDogTW9uZGF5LCBK dW5lIDEwLCAyMDI0IDEwOjAxIEFNDQo+PiA+PiBUbzogRkZtcGVnIGRldmVsb3BtZW50IGRpc2N1 c3Npb25zIGFuZCBwYXRjaGVzIDxmZm1wZWctDQo+PiA+PiBkZXZlbEBmZm1wZWcub3JnPg0KPj4g Pj4gQ2M6IEx5bm5lIDxkZXZAbHlubmUuZWU+DQo+PiA+PiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1k ZXZlbF0gW1BBVENIIHYxMyAwNi8xNV0gYXZjb2RlYy92YWFwaV9lbmNvZGU6DQo+PiA+PiBtb3Zl IHRoZSBkcGIgbG9naWMgZnJvbSBWQUFQSSB0byBiYXNlIGxheWVyDQo+PiA+Pg0KPj4gPj4gT24g MDcvMDYvMjAyNCAxODo0OCwgTHlubmUgd3JvdGU6DQo+PiA+Pj4gT24gMDcvMDYvMjAyNCAxNzoy MiwgV3UsIFRvbmcxIHdyb3RlOg0KPj4gPj4+Pj4gRnJvbTogZmZtcGVnLWRldmVsIDxmZm1wZWct ZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYNCj4+ID4+Pj4+IE9mDQo+PiA+PiBM eW5uZQ0KPj4gPj4+Pj4gdmlhIGZmbXBlZy1kZXZlbA0KPj4gPj4+Pj4gU2VudDogRnJpZGF5LCBK dW5lIDcsIDIwMjQgMTE6MTAgUE0NCj4+ID4+Pj4+IFRvOiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9y Zw0KPj4gPj4+Pj4gQ2M6IEx5bm5lIDxkZXZAbHlubmUuZWU+DQo+PiA+Pj4+PiBTdWJqZWN0OiBS ZTogW0ZGbXBlZy1kZXZlbF0gW1BBVENIIHYxMyAwNi8xNV0NCj4+IGF2Y29kZWMvdmFhcGlfZW5j b2RlOg0KPj4gPj4gbW92ZQ0KPj4gPj4+Pj4gdGhlIGRwYiBsb2dpYyBmcm9tIFZBQVBJIHRvIGJh c2UgbGF5ZXINCj4+ID4+Pj4+DQo+PiA+Pj4+PiBPbiAwMy8wNi8yMDI0IDExOjE4LCB0b25nMS53 dS1hdC1pbnRlbC5jb21AZmZtcGVnLm9yZyB3cm90ZToNCj4+ID4+Pj4+PiBGcm9tOiBUb25nIFd1 IDx0b25nMS53dUBpbnRlbC5jb20+DQo+PiA+Pj4+Pj4NCj4+ID4+Pj4+PiBNb3ZlIHJlY2VpdmVf cGFja2V0IGZ1bmN0aW9uIHRvIGJhc2UuIFRoaXMgcmVxdWlyZXMgYWRkaW5nDQo+PiA+Pj4+Pj4g KmFsbG9jLCAqaXNzdWUsICpvdXRwdXQsICpmcmVlIGFzIGhhcmR3YXJlIGNhbGxiYWNrcy4NCj4+ ID4+Pj4+PiBIV0Jhc2VFbmNvZGVQaWN0dXJlIGlzIGludHJvZHVjZWQgYXMgdGhlIGJhc2UgbGF5 ZXIgc3RydWN0dXJlLg0KPj4gPj4+Pj4+IFRoZSByZWxhdGVkIHBhcmFtZXRlcnMgaW4gVkFBUElF bmNvZGVDb250ZXh0IGFyZSBhbHNvIGV4dHJhY3RlZA0KPj4gPj4+Pj4+IHRvIEhXQmFzZUVuY29k ZUNvbnRleHQuIFRoZW4NCj4+ID4+IERQQg0KPj4gPj4+Pj4+IG1hbmFnZW1lbnQgbG9naWMgY2Fu IGJlIGZ1bGx5IGV4dHJhY3RlZCB0byBiYXNlIGxheWVyIGFzLWlzLg0KPj4gPj4+Pj4+DQo+PiA+ Pj4+Pj4gU2lnbmVkLW9mZi1ieTogVG9uZyBXdSA8dG9uZzEud3VAaW50ZWwuY29tPg0KPj4gPj4+ Pj4+IC0tLQ0KPj4gPj4+Pj4+ICDCoMKgIGxpYmF2Y29kZWMvTWFrZWZpbGXCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfMKgwqAgMiArLQ0KPj4gPj4+Pj4+ICDCoMKgIGxpYmF2Y29kZWMvaHdfYmFz ZV9lbmNvZGUuY8KgwqDCoMKgIHwgNTk0DQo+PiA+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysr KysrDQo+PiA+Pj4+Pj4gIMKgwqAgbGliYXZjb2RlYy9od19iYXNlX2VuY29kZS5owqDCoMKgwqAg fCAxMjQgKysrKysNCj4+ID4+Pj4+PiAgwqDCoCBsaWJhdmNvZGVjL3ZhYXBpX2VuY29kZS5jwqDC oMKgwqDCoMKgIHwgNzkzICsrKysrDQo+PiA+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+PiA+Pj4+Pj4gIMKgwqAgbGliYXZjb2RlYy92YWFwaV9lbmNvZGUuaMKgwqDCoMKgwqDC oCB8IDEwMiArLS0tDQo+PiA+Pj4+Pj4gIMKgwqAgbGliYXZjb2RlYy92YWFwaV9lbmNvZGVfYXYx LmPCoMKgIHzCoCAzNSArLQ0KPj4gPj4+Pj4+ICDCoMKgIGxpYmF2Y29kZWMvdmFhcGlfZW5jb2Rl X2gyNjQuY8KgIHzCoCA4NCArKy0tDQo+PiA+Pj4+Pj4gIMKgwqAgbGliYXZjb2RlYy92YWFwaV9l bmNvZGVfaDI2NS5jwqAgfMKgIDUzICsrLQ0KPj4gPj4+Pj4+ICDCoMKgIGxpYmF2Y29kZWMvdmFh cGlfZW5jb2RlX21qcGVnLmMgfMKgIDEzICstDQo+PiA+Pj4+Pj4gIMKgwqAgbGliYXZjb2RlYy92 YWFwaV9lbmNvZGVfbXBlZzIuYyB8wqAgMzMgKy0NCj4+ID4+Pj4+PiAgwqDCoCBsaWJhdmNvZGVj L3ZhYXBpX2VuY29kZV92cDguY8KgwqAgfMKgIDE4ICstDQo+PiA+Pj4+Pj4gIMKgwqAgbGliYXZj b2RlYy92YWFwaV9lbmNvZGVfdnA5LmPCoMKgIHzCoCAyNCArLQ0KPj4gPj4+Pj4+ICDCoMKgIDEy IGZpbGVzIGNoYW5nZWQsIDk4NSBpbnNlcnRpb25zKCspLCA4OTAgZGVsZXRpb25zKC0pDQo+PiA+ Pj4+Pj4gIMKgwqAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvaHdfYmFzZV9lbmNvZGUu Yw0KPj4gPj4+Pj4NCj4+ID4+Pj4+IFRoaXMgcGF0Y2ggZG9lc24ndCBhcHBseSwNCj4+ID4+Pj4+ DQo+PiA+Pj4+PiBlcnJvcjogc2hhMSBpbmZvcm1hdGlvbiBpcyBsYWNraW5nIG9yIHVzZWxlc3Mg KGxpYmF2Y29kZWMvDQo+PiA+Pj4+PiBod19iYXNlX2VuY29kZS5jKS4NCj4+ID4+Pj4+IGVycm9y OiBjb3VsZCBub3QgYnVpbGQgZmFrZSBhbmNlc3Rvcg0KPj4gPj4+Pj4NCj4+ID4+Pj4+IENvdWxk IHlvdSByZXNlbnQgdGhlIHBhdGNoc2V0IG9yIGxpbmsgbWUgYSByZXBvIHNvIEkgY2FuIHdvcmsg d2l0aCBpdD8NCj4+ID4+Pj4NCj4+ID4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2ludGVsLW1lZGlh LWNpL2ZmbXBlZy9wdWxsLzY4OSBUaGlzIGlzIHRoZQ0KPj4gPj4+PiBzYW1lIGFzDQo+PiA+Pj4+ IHYxMyBwbGVhc2UgaGF2ZSBhIHRyeS4NCj4+ID4+Pg0KPj4gPj4+IFRoYXQgd29ya2VkLCB0aGFu a3MuDQo+PiA+Pg0KPj4gPj4gSSBkb24ndCB0aGluayB0aGUgYmVoYXZpb3VyIGlzIGNvcnJlY3Qg d2hlbiB0aGUgZW5jb2RpbmcgbGVuZ3RoIGlzDQo+PiA+PiBsZXNzIHRoYW4gdGhlIGRlY29kZSBk ZWxheS4gSW4gbXkgb2xkIFZ1bGthbiBjb2RlLCBJIGhhZCB0aGlzIHBpZWNlDQo+PiA+PiBvZiBj b2RlIGluIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbjoNCj4+ID4+DQo+PiA+Pj4gaWYgKCFz cmMpIHsNCj4+ID4+PiAgICAgIGN0eC0+ZW5kX29mX3N0cmVhbSA9IDE7DQo+PiA+Pj4gICAgICAv KiBGaXggdGltZXN0YW1wcyBpZiB3ZSBoaXQgZW5kLW9mLXN0cmVhbSBiZWZvcmUgdGhlIGluaXRp YWwNCj4+ID4+PiAgICAgICAqIGRlY29kZSBkZWxheSBoYXMgZWxhcHNlZC4gKi8NCj4+ID4+PiAg ICAgIGlmIChjdHgtPmlucHV0X29yZGVyIDwgY3R4LT5kZWNvZGVfZGVsYXkpDQo+PiA+Pj4gICAg ICAgICAgY3R4LT5kdHNfcHRzX2RpZmYgPSBjdHgtPnBpY19lbmQtPnB0cyAtIGN0eC0+Zmlyc3Rf cHRzOw0KPj4gPj4+ICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOw0KPj4gPj4+IH0NCj4+ID4+DQo+ PiA+PiBJIHRoaW5rIGEgZmx1c2ggZnVuY3Rpb24gc2hvdWxkIGJlIGFkZGVkLCB0byBiZSBjYWxs ZWQgYnkgZWFjaA0KPj4gPj4gZW5jb2RlciwgdG8gbWFrZSBzdXJlIHRoZSB0aW1lc3RhbXBzIHJl bWFpbiBjb3JyZWN0Lg0KPj4gPj4NCj4+ID4NCj4+ID4gRm9yIHRoZSBjdXJyZW50IHBhdGNoIHNl dCwgdGhpcyBwaWVjZSBpcyBpbg0KPj4gPiBod19iYXNlX2VuY29kZV9zZW5kX2ZyYW1lIGFuZA0K Pj4gd29ya3Mgd2VsbCBmb3IgdmFhcGkgYW5kIGQzZDEyIGV4Y2VwdCB3aGVuIHRoZSBlbmNvZGlu ZyBsZW5ndGggaXMNCj4+IGVxdWFsIHRvIHRoZSBkZWNvZGUgZGVsYXksIHdoaWNoIEknbGwgc2Vu dCBhIGZpeCBsYXRlci4gRG8geW91IG1lYW4NCj4+IFZ1bGthbiBjYW5ub3QgaW50ZWdyYXRlIGlu dG8gdGhpcyBwYXJ0IGFuZCB3ZSBoYXZlIHRvIG1ha2UgYSBjYWxsYmFjayBmb3IgaXQ/DQo+Pg0K Pj4gTm8sIEkgd2FzIGp1c3QgY3VyaW91cy4gRmFpciBlbm91Z2gsIGl0IGNhbiBiZSBpbXBsZW1l bnRlZCBpbiBhIGxhdGVyIHBhdGNoLg0KPj4NCj4+ID4NCj4+ID4+IEFsc28sIHRoZSBEM0QxMlZB IHN0cnVjdHVyZXMgbmVlZCBhbiBGRiBwcmVmaXgsIGUuZy4NCj4+ID4+IEQzRDEyVkFFbmNvZGVD b250ZXh0IC0+IEZGRDNEMTJWQUVuY29kZUNvbnRleHQuDQo+PiA+DQo+PiA+IFRoZSBjdXJyZW50 IFZBQVBJRW5jb2RlQ29udGV4dCBoYXMgZXhpc3RlZCBmb3IgYSBsb25nIHRpbWUuIERvZXMgaXQN Cj4+ID4gaGF2ZQ0KPj4gYW55IGRpZmZlcmVuY2UgZm9yIEQzRDEyVkFFbmNvZGVDb250ZXh0PyBJ IG1lYW4gYm90aA0KPj4gVkFBUElFbmNvZGVDb250ZXh0IGFuZCBEM0QxMlZBRW5jb2RlQ29udGV4 dCBhcmUgcGFyYWxsZWwgYW5kIG9ubHkNCj4+IHJlZmVyZW5jZWQgaW4gdmFhcGlfZW5jb2RlXyou YyAoZDNkMTJ2YV9lbmNvZGVfKi5jKS4NCj4+ID4NCj4+ID4gVGhhbmtzLA0KPj4gPiBUb25nDQo+ Pg0KPj4gSSdtIGZpbmlzaGluZyB1cCBvbiB0aGUgVnVsa2FuIHRlc3QgaW1wbGVtZW50YXRpb24s IEknbGwgc2VlIHRvDQo+PiBwdXNoaW5nIHRoaXMgcGF0Y2ggb3ZlciB0aGUgd2Vla2VuZC4NCj4N Cj5TdXJlLiBUaGFuayB5b3UuDQo+DQoNCktpbmRseSBwaW5nLiBDb3VsZCB3ZSBwdXNoIHRoaXMg cGF0Y2ggc2V0Pw0KDQpUaGFua3MsDQpUb25nDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZl bEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k ZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1k ZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==