From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 664424E00D for <ffmpegdev@gitmailbox.com>; Sun, 27 Apr 2025 17:54:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A387268B144; Sun, 27 Apr 2025 20:54:33 +0300 (EEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10olkn2058.outbound.protection.outlook.com [40.92.42.58]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CD784687D95 for <ffmpeg-devel@ffmpeg.org>; Sun, 27 Apr 2025 20:54:26 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MSNQudGBFR9A/lr0q6E+Chlg5NN0SP6+Cr/jgFXOhMUdHPvGY04Hh+BPnYRfDAu4V0spaWvcldtFc0DJRw7Hk+cLF2Qrq95p6uNaG8lpd5kfSxQcgnOPDXz2EqUoQE17iBIS5A5bp0OgJgoHZttbMEPjPlD6D9Zc/aST7JFkU3bvOpatdoybYroVKXwZ0ly5peb5Isvi6yZlz2aDjQZDIpq+uozkJZocnRoLyNYMOqG2PNEPxCNj9WCJhJZK/EfqXrg027t3ZUxCJIC3Ui45zitediTgf52KvP94ohlCZhcfFcVk3P5GVpgzW+claINItlhJWPdGmrVXNKDp6eSp9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=CTU40LsLGw31iGmy+8uS+hmdaku+TnYE1njQDtvJdfo=; b=FrXFKUHqT75FM1Ju+dVbJZXeKVpl1SJOvwO/qveByeFShfhEzp7oyQXG2nRUX06r9jbdJav2xh9WQGOCx9hIrOY5j212YHBXoCk1lf64tTcTf4e7cqx6mckqvkNdXxfrYWyU/Oe1qnFF43tmeQepyY24qN2FRug5qF7te9+AClNKKUWiGXeQz23uBgU7V4hVPVASzSoViM5H1x0XWA8MnFRMJAsoMZ1G3bXBDU3wURIae+xRa8zCcS4SzXCWEEtaMrsqKVkxvvdMliKzTGZdkOUpS9h2kfiwEuq8YPsiyk+rJ+0R9x3SSfvcxUpb7JsWx0M9kmWusb7peiP3GryI9w== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CTU40LsLGw31iGmy+8uS+hmdaku+TnYE1njQDtvJdfo=; b=O+UVCCXJJJhLBla0TgwbTNUGv12yXVZX63zv3r3t2YMxY7gFU4nMBpLp8TLXQe70wdGmzdTMej5aaev0b2EnjYLZB90iA0tfbf0/GV9x8mywk6Sp/zsKrMJUQ8+rH3DwnmQX0l8s4Ado4XvtwE4YkBIY/dC6JRhRxqJz3CkFWjK/MH/O5EAy3Zm43/dui1IPwremrVf0xGHoMC2rgulYLrc0dSQT+zWUB84V+vKVs6ySDxt/RuU1u1sGYhnql6DmMDOrYlVIE/cVQzgNTA0+zsAEHUDCM9sk1PvOEaQdhaZS0DCMmw/uuqsUKvlK5BM06ZaXl4AdzxN+xGa2xqB1tw== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by PH7P223MB1015.NAMP223.PROD.OUTLOOK.COM (2603:10b6:510:303::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.30; Sun, 27 Apr 2025 17:54:22 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7%4]) with mapi id 15.20.8678.028; Sun, 27 Apr 2025 17:54:22 +0000 From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Thread-Topic: [FFmpeg-devel] [RFC] Shaping the AVTextFormat API Surface Thread-Index: AduzMDhGXdsgXHAcTguhmPiAzJ4vgQCFz10AACbdH6AAX4aHgAALTBgQ Date: Sun, 27 Apr 2025 17:54:21 +0000 Message-ID: <DM8P223MB036535B434099A2C30D82559BA862@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> References: <DM8P223MB036504CFC0521633C2ADCCE3BABB2@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <12650153.O9o76ZdvQC@basile.remlab.net> <DM8P223MB03656267310C697B2094F675BA842@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <aA4J/XYOzKKMouhn@mariano> In-Reply-To: <aA4J/XYOzKKMouhn@mariano> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8P223MB0365:EE_|PH7P223MB1015:EE_ x-ms-office365-filtering-correlation-id: 6383cbac-b36b-4a04-4575-08dd85b48a83 x-microsoft-antispam: BCL:0; ARA:14566002|8060799006|8062599003|461199028|19110799003|7092599003|15080799006|440099028|3412199025|41001999003|102099032; x-microsoft-antispam-message-info: =?utf-8?B?TGdsWW5pR1MwczB1Mm1ER0g1aVJ0ckR4Q3IybmpndEE3Y1k1MEZGZzZ1MFlq?= =?utf-8?B?R3ZZU2dxamx3RUFCUmZsS3lWU3lGQlFhZHNQSVppaXdDa2VtUlJYRHZaNUJu?= =?utf-8?B?QTZCM3U3NEVadjZ3VE9GcHV5dDc1NjlMR3pNZlQ2ak9GS3Bqak5nb1BTSnEw?= =?utf-8?B?U1NlaE1iUDJMWFNkWVgrZlQ3Z2I0NjNVbG1aVmc4VlBZODRuWnVYWGRMRU95?= =?utf-8?B?YmU2d3oyWmE3ZU1OTTBnVFBGdFhYU2J4TEwzeTNxdkZZUnNkUHp4MFA2STlG?= =?utf-8?B?QTZhL2l2cGVRWVhNZWJtSjNXWFVzY1IzY0t5TWhDWnVPbVUyVWZETVN4Njg2?= =?utf-8?B?bnpmMjBYZm9aMjk2THF6TUNlQWlhbTJZZTA2ZjY0Z2Z0TU1wN3ZwNnRmZGR1?= =?utf-8?B?eElMdnBoaTNDVHR1QnE4WTQ2WFN5L3BPSUlSNmZDRHMyQWhwdEV1UkpNajJL?= =?utf-8?B?S3hUdzdhRVZxSGtudTIvNGdqSWplYVRTcGlwcUZQZ0NoR2FBNXQ3Q0prOERH?= =?utf-8?B?SnJvMWNoWjZzU2UrbHhSVDU5MkVVVU9aNVB0ck13U3FZRE4vbk9kY252aURU?= =?utf-8?B?dmlmVUlmM3kzd2lwVUdiNVlRbzBZNkhVeG14Um9ZQzFDbTlObmxpOTI2SHpY?= =?utf-8?B?OHNwY3hxQytqc2I0LytOMTZTOVEvc3VtTS9HUHI5NVF5ZE5CZ3pERk5YeHU3?= =?utf-8?B?OUhTOEQ0c1MwNkQ5TkxzcmVYM0pWbndjeUdERmI1YTNhWm1ESFVrVFRpMDFG?= =?utf-8?B?S09jV2hLWW96eUNqU2NQR01Ub0lJVmhQSXFETmtLTTZRcFlKTVFFUjdUa0lh?= =?utf-8?B?dnVrYkFjUmM5VG9JZExxWmlic3B1eHk5bVovNXJOeXBvMnFVOFpQaW9HbVBa?= =?utf-8?B?TXkrM3BoaUVZQlVkZm42ZGhkejYvMGxFTUZKcEw2bGJSdE8vTERZY25Vd0ZB?= =?utf-8?B?b2dZUUQvNUc1cmxJVlNkSTdSMEFESWh3UHRhM1FXQU9TOVhDYjFhZUpjMnhB?= =?utf-8?B?TU42UlU5Tnd1MXE3Z0kzMll0aEV3ZXUzRTVpaEZjWHRGSFJ1YlYxZHJSbWJa?= =?utf-8?B?c0FTd2tCVjJPMjRrRnBxUE51anNHby83NkZoYkcrekI5Z0UvQTlsRVR3Y2sv?= =?utf-8?B?RlJsM2FTcG5lRldIdTF4UElqVGNTcEIrWGU0NVJmWXlJV0dQR2kxcGhqcXpQ?= =?utf-8?B?Ync4WDZ2MnVYM2JBL0NwZXJXTnlKTExmUDhZZFFzNjJobm9vaXhiSUFUNVp6?= =?utf-8?B?aCtwN3B0VGNib0hlOGVmV1BmKzhRYjVrMGxyUVQ5Y3ZjRjZweFVEL0hjV21t?= =?utf-8?B?UkpFZTJHT2F5a28xUEpKZXdRaVVGSm1GbVdjZ3lEYXpIQ0JTMWJKTWw1c05S?= =?utf-8?B?YkN2WXllZE5hVlRVc1JVaDBQNjBERjhZL0tUQWRuRy93c3IwKzZXemNpWlVa?= =?utf-8?B?OWxTZTVMRDY3aFFraGhRRXF1WFU3NnlHWTIzWDQ2eEdxN09iUy82RDdkYk9m?= =?utf-8?B?ZW9aSURIVWU0cDUweitGL3pDTXI3N05XYnVnOXhRTmFSRzl6aFovcjh0QkI1?= =?utf-8?B?Y3VtQT09?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OXdlSzhiUzdhNEhZWUNwUnRoOTJ3TVBLOFNka1ZMdk4wOTJORUl4Z0JKSUV3?= =?utf-8?B?L1lHT3hTWUhhTWdHcFNWMmNpeHBHcXpNZ0g5alBTZWNMdlhybmZpSHZpOHJ2?= =?utf-8?B?V3F4WmFjeFVDMzRYeFZHNklGVEFoaWt1ZDM5dytsZ05tdlExZjlTbUYyZnFG?= =?utf-8?B?NHpOOVRCWmlQaldzVUY0SThJcVUxamUxWHFHTW1BeTdNaTU2U3Q3MnhHNWpo?= =?utf-8?B?Qkw2WXRMc3ZZMmpaRFZxV2dTaG1JZFlvcXluRXRCRzZtZHA3VVVnRGZ0STha?= =?utf-8?B?U3o5WW9CT0x2bi9FNFIxdTdzSXZOQ3M0S3dCWS9qYnJPdjdQQWFlTE1pUlRY?= =?utf-8?B?RHFva2pDbFErQzNOZkpsNGh4bS9vY1lHUHk4OWtZOXRKZGhPbUlwMUY0RHJv?= =?utf-8?B?WlRqcUsxVTVYeElkS0lrSU5KalVLMTBqSGlVWVUrZHlraW12RkJFQ3BMTUJj?= =?utf-8?B?UGRPSVVPTTN5U3pyK21QY25lKytvbTdHc0RvUjEyTnFZd3VIelJkK1BlY1M2?= =?utf-8?B?aFZnVUNkUlpCdnFXV0l1VXVqVS9QL2Zhd2IwNStka290SlIvSlRBQUNXb0Mv?= =?utf-8?B?NWJmT01MbEcvdkJ5QjlGMmR4VGcyNkdRYUpzTTQ4RERKVEI1YXM4ckM5RU40?= =?utf-8?B?NHluSS8zUDlQRlM4NFZndlhuRGdMdjRZYTBQcnZNZHRrQ09Qc3NzSTZqaEJS?= =?utf-8?B?b3JVbldvQ08zMmh3bFg5L1pua3R3bmRMVTR5TGtjWkVvNUl1WG9UUk9aU09W?= =?utf-8?B?WHI2QVB6TE04bUw3OUFleTdqR2FEZUI3VW5KQWNBR2JyTGpxUFhRbWEvczVJ?= =?utf-8?B?QTUrVFFFVlovdDgrUFdlS2EzTGhwdnFGWFdUVmorSytjTmFzSFc1QStiVG4w?= =?utf-8?B?QkEvM1hRRWpoN3YvTVFsUnJ5WllPRFdzSlUzM1hMZ25Cc0x3bmJ5RUZpello?= =?utf-8?B?ZGxxOWd3ZGZFYXdGODlQWEdvb29uOUtBRUdoeHE2ajhtWWZFS01iVGVOYUZY?= =?utf-8?B?NURxeXgzM2tSODdNWUcvdVdGUDhySTRSZnJDQThRTE92OVZQaURMc3dNdkN6?= =?utf-8?B?eHRvQ1JzUVJRVkp6VHpXRmdDNkkxY1p0SERyTDh2U0FEM3pyK2VnMnpsYzli?= =?utf-8?B?RTdMZjNUMkgyWTRSRnFGNGtFOC9JNEJxc0NjSlhRQ2RMSjd0V1BLTWhDQm84?= =?utf-8?B?Q2xIT2VNR05KRm5vb1huT0pVdDNHVTBRSG9EdVJiM0xEbmlZeHZvYUJ4czJH?= =?utf-8?B?VFFicDRGcEhHR2oxSm9VM2w3bXNXU3RLa2l3VG1zZnBxMWdrTzFQUTRTM3lN?= =?utf-8?B?UzZjMHN6SkFENFBYdEl4TVp2eEFoQmZLTVRyWEVOYVY3QlowYUNvN0tVempq?= =?utf-8?B?aWMwWnd6VWVqTUJ1K2s5MlY2NmZyYjl3QmV3cUJPMlZVMHExVmpadTBlRU5v?= =?utf-8?B?RzZRbkU5S0F2Y1VUa1MvV2U5WnR1KzFCTzJ1ejFDSlh0Y0lUZFdlNUZTd2VT?= =?utf-8?B?R1k1WHloYTB5OUNsTTdOWGFNNFVaZGZWaGZYT3drd3dLYncvOThVOEprSTcr?= =?utf-8?B?bXpQY3dLUk0vb1VNYzF2Wit6MTI3NGIwZ043cUxxakR6Q2J1UUFQR1VUWk1L?= =?utf-8?Q?U3B+NwyAC1XzqRocotPmKjvAhoAgAfbmr/W8yrsmkZLw=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-92255.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 6383cbac-b36b-4a04-4575-08dd85b48a83 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2025 17:54:22.0439 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7P223MB1015 Subject: Re: [FFmpeg-devel] [RFC] Shaping the AVTextFormat API Surface X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/DM8P223MB036535B434099A2C30D82559BA862@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZmZtcGVnLWRldmVsIDxm Zm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYgT2YNCj4gU3RlZmFubyBT YWJhdGluaQ0KPiBTZW50OiBTb25udGFnLCAyNy4gQXByaWwgMjAyNSAxMjo0Mg0KPiBUbzogRkZt cGVnIGRldmVsb3BtZW50IGRpc2N1c3Npb25zIGFuZCBwYXRjaGVzIDxmZm1wZWctDQo+IGRldmVs QGZmbXBlZy5vcmc+DQo+IFN1YmplY3Q6IFJlOiBbRkZtcGVnLWRldmVsXSBbUkZDXSBTaGFwaW5n IHRoZSBBVlRleHRGb3JtYXQgQVBJIFN1cmZhY2UNCj4gDQo+IE9uIGRhdGUgRnJpZGF5IDIwMjUt MDQtMjUgMTM6MTY6NTkgKzAwMDAsIHNvZnR3b3JreiAuIHdyb3RlOg0KPiBbLi4uXQ0KPiA+IFRl bGwgbWUgd2hhdCBJIHNob3VsZCBjaGVjayBmb3IgYW5kIHdoYXQgbm90IGluIHRob3NlIGZvdXIg Z3JvdXBzIG9mDQo+ID4gZnVuY3Rpb25zIGFuZCBmb3IgdGhvc2UgdGhpbmdzIHdoaWNoIHNob3Vs ZCBiZSBjaGVja2VkLCB0ZWxsIG1lDQo+IHdoaWNoDQo+ID4gd2F5IChyZXR1cm4gZXJyb3IsIHJl dHVybiBzaWxlbnRseSwgYWxsb3cgc2VnZmF1bHQgb3IgdXNlIGFuDQo+IGFzc2VydGlvbikuDQo+ ID4NCj4gPiBUaGVuIEknbGwgYXBwbHkgdGhhdCB0byBhbGwgdGhvc2UgZnVuY3Rpb25zIGluIGEg dW5pZm9ybSBhbmQNCj4gY29uc2lzdGVudA0KPiA+IHdheSB3aXRob3V0IGV2ZW4gYXJndWluZyBh bmQgdGhlIGNhc2UgaXMgY2xvc2VkLg0KPiA+DQo+ID4gSSBqdXN0IGRvbid0IHdhbnQgdG8gbGVh dmUgaXQgYWxvbmUgbGlrZSBub3cgd2l0aG91dCBjbGVhciBwYXR0ZXJucywNCj4gPiB0aGF0J3Mg YWxsIPCfmIoNCj4gDQo+IEkgZG9uJ3QgcmVhbGx5IGhhdmUgYW4gYW5zd2VyLg0KDQouLi5zdGls bCBieSBmYXIgdGhlIGJlc3Qgb25lLg0KDQoNCj4gUHJvYmFibHkgaXQncyBnb29kIHRvIHN0YXJ0 IGZyb20gdGhlDQo+IGRvY3MsIHNvIHRoYXQgd2UgaGF2ZSBhIGRlZmluaXRpb24gb2YgdGhlIHNl bWFudGljcyBpbiBhZHZhbmNlLCBmb3INCj4gZXhhbXBsZSBzdGF0aW5nIHRoYXQgYSBwb2ludGVy IHNob3VsZCBub3QgYmUgTlVMTCBhbmQgc28gb24gc28gdGhhdCBhdA0KPiBsZWFzdCB3ZSBrbm93 IHdoYXQgaXMgdG8gYmUgY29uc2lkZXJlZCB1bmRlZmluZWQgYmVoYXZpb3IuIEFzIG5vdGVkIGJ5 DQo+IE5pY29sYXMsIHRoZSBwYXR0ZXJuIGlzIGRlcGVuZGFudCBvbiB0aGUgZnVuY3Rpb24gYmVo YXZpb3IgYW5kIG9uDQo+IHByYWN0aWNhbCBlcmdvbm9teSBjb25zaWRlcmF0aW9ucy4NCj4gDQo+ IEl0IGFsc28gd291bGQgYmUgbmljZSB0byBoYXZlIGEgZ29vZCBzZXQgb2YgZ3VpZGVsaW5lcy4N Cg0KRXhhY3RseS4gVGhhdCdzIG9uZSBvZiB0aGUgdGhpbmdzIEkgd291bGQgbGlrZSB0byB3b3Jr IG91dCBoZXJlLg0KDQoNClsuLl0NCg0KPiBUaGlzIG1pZ2h0IGZhaWwgaW4gc2V2ZXJhbCB3YXlz OiBiaWtlc2hlZCBtaWdodCBiZSBOVUxMIG9yIGludmFsaWQNCj4gKGUuZy4gYSBwb2ludGVyIHRv IGFuIHVucmVsYXRlZCBzdHJ1Y3R1cmUpLCBsZXZlbCBtaWdodCBiZSBpbnZhbGlkDQo+IChlLmcu IG5lZ2F0aXZlIG9yID5NQVhfU0xJQ0VfTEVWRUwpIG9yIHRoZSBiaWtlc2hlZCBtaWdodCBjb250 YWluDQo+IGFscmVhZHkgdG9vIG1hbnkgc2xpY2VzLg0KPiANCj4gVGhlIGxldmVsIG1pZ2h0IGJl IGNoZWNrZWQgYnkgdGhlIHByb2dyYW1tZXIsIHNvIHdlIG1pZ2h0IGRlY2lkZSB0bw0KPiBoYXZl IGFuIGFzc2VydC4gQWJvdXQgdGhlIGNvdW50IGNoZWNrIGl0IGlzIHZhbGlkYXRlZCBmcm9tIHdp dGhpbiB0aGUNCj4gZnVuY3Rpb24gKHNpbmNlIHdlIG5lZWQgdG8gYWNjZXNzIHRoZSBiaWtlc2hl ZCBjb250ZXh0KSBzbyB3ZSB3YW50IHRvDQo+IHByb3ZpZGUgZmVlZGJhY2sgYW5kIGZhaWwuDQo+ IA0KPiBGb3IgYm90aCBvZiB0aGVzZSB0d28gZXhhbXBsZXMsIGRvaW5nIG5vdGhpbmcgZG9lcyBu b3Qgc2VlbSBhIGdvb2QNCj4gaWRlYS4gVGhhdCdzIHByb2JhYmx5IG9ubHkgZ29vZCBpZiB3ZSB3 YW50IHRvIGVuYWJsZSBpZGVtLXBvdGVuY3kgb3INCj4gd2hlbiBvbmUgb2YgdGhlIHBhcmFtZXRl ciBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgYSAibm9uZSIgYXJndW1lbnQuDQo+IA0KPiBGb3IgZXhh bXBsZToNCj4gICAgaWYgKGNvbG9yID09IE5VTEwpIHsNCj4gICAgICAgIHJldHVybiAwOw0KPiAg ICB9DQo+IA0KPiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxkIHNwZWNpZnkgdGhlIGJlaGF2aW9yIGlu IHRoZSBkb2N1bWVudGF0aW9uLA0KPiBzaW5jZSB0aGF0IGRlZmluZXMgd2hhdCBpcyB0aGUgdW5k ZWZpbmVkIGJlaGF2aW9yIGFuZCB0aGUgaW5wdXQNCj4gZXhwZWN0YWN0aW9ucy4NCg0KVGhpcyBh bGwgbWFrZXMgc2Vuc2UgYW5kIHRoZSBwcmFjdGljYWwgcGFydCBpcyBub3cgdG8gYXBwbHkgdGhh dCBraW5kDQpvZiBjb25zaWRlcmF0aW9ucyB0byB0aGUgaW5kaXZpZHVhbCBBUElzIHdlIGhhdmUu DQoNClByb2JhYmx5IGl0J3MgYmVzdCB3aGVuIEkgc3RhcnQgYnkgbWFraW5nIGEgc3VnZ2VzdGlv biBhcyBhIHN0YXJ0aW5nDQpwb2ludCwgdGhlbiB3ZSBjYW4gcmVmaW5lIGl0IGZyb20gdGhlcmU6 DQoNCg0KMS4gQVZUZXh0Rm9ybWF0dGVyIEltcGxlbWVudGF0aW9ucw0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KDQpwcmludF9zZWN0aW9uX2hlYWRlcihBVlRleHRGb3JtYXRD b250ZXh0ICp0Y3R4LCBjb25zdCB2b2lkICpkYXRhKTsNCnByaW50X3NlY3Rpb25fZm9vdGVyKEFW VGV4dEZvcm1hdENvbnRleHQgKnRjdHgpOw0KcHJpbnRfaW50ZWdlcihBVlRleHRGb3JtYXRDb250 ZXh0ICp0Y3R4LCBjb25zdCBjaGFyICoga2V5LCBpbnQ2NF90KTsNCnByaW50X3N0cmluZyhBVlRl eHRGb3JtYXRDb250ZXh0ICp0Y3R4LCBjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnZhbHVl KTsNCg0KUnVsZXMNCg0KLSBhc3NlcnQgdGN0eCBhbmQga2V5DQotIGRhdGEgYW5kIHZhbHVlIGNh biBiZSBudWxsDQoNCg0KDQoyLiBBVlRleHRXcml0ZXIgSW1wbGVtZW50YXRpb25zDQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQoNCndyaXRlcl93OChBVlRleHRXcml0ZXJDb250ZXh0 ICp3Y3R4LCBpbnQgYik7DQp3cml0ZXJfcHV0X3N0cihBVlRleHRXcml0ZXJDb250ZXh0ICp3Y3R4 LCBjb25zdCBjaGFyICpzdHIpOw0Kd3JpdGVyX3ZwcmludGYoQVZUZXh0V3JpdGVyQ29udGV4dCAq d2N0eCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IHZsKTsNCg0KDQpSdWxlcw0KDQotIGFzc2Vy dCB3Y3R4DQotIHN0ciwgZm10LCB2bCAtID8NCg0KDQoNCg0KMy4gVGV4dEZvcm1hdCBBUEkNCj09 PT09PT09PT09PT09PT09DQoNCg0KYXZ0ZXh0X3ByaW50X3NlY3Rpb25faGVhZGVyKCp0Y3R4LCBj b25zdCB2b2lkICpkYXRhLCBpbnQgc2VjdGlvbl9pZCkNCmF2dGV4dF9wcmludF9zZWN0aW9uX2Zv b3RlcigqdGN0eCkNCmF2dGV4dF9wcmludF9pbnRlZ2VyKCp0Y3R4LCBjb25zdCBjaGFyICprZXks IGludDY0X3QgdmFsKQ0KYXZ0ZXh0X3ByaW50X2ludGVnZXJfZmxhZ3MoKnRjdHgsIGNvbnN0IGNo YXIgKmtleSwgaW50NjRfdCB2YWwsIGludCBmbGFncykNCmF2dGV4dF9wcmludF91bml0X2ludCgq dGN0eCwgY29uc3QgY2hhciAqa2V5LCBpbnQgdmFsdWUsIGNvbnN0IGNoYXIgKnVuaXQpDQphdnRl eHRfcHJpbnRfcmF0aW9uYWwoKnRjdHgsIGNvbnN0IGNoYXIgKmtleSwgQVZSYXRpb25hbCBxLCBj aGFyIHNlcCkNCmF2dGV4dF9wcmludF90aW1lKCp0Y3R4LCBjb25zdCBjaGFyICprZXksIGludDY0 X3QgdHMsIGNvbnN0IEFWUmF0aW9uYWwgKnRpbWVfYmFzZSwgaW50IGlzX2R1cmF0aW9uKQ0KYXZ0 ZXh0X3ByaW50X3RzKCp0Y3R4LCBjb25zdCBjaGFyICprZXksIGludDY0X3QgdHMsIGludCBpc19k dXJhdGlvbikNCmF2dGV4dF9wcmludF9zdHJpbmcoKnRjdHgsIGNvbnN0IGNoYXIgKmtleSwgY29u c3QgY2hhciAqdmFsLCBpbnQgZmxhZ3MpDQphdnRleHRfcHJpbnRfZGF0YSgqdGN0eCwgY29uc3Qg Y2hhciAqa2V5LCBjb25zdCB1aW50OF90ICpkYXRhLCBpbnQgc2l6ZSkNCmF2dGV4dF9wcmludF9k YXRhX2hhc2goKnRjdHgsIGNvbnN0IGNoYXIgKmtleSwgY29uc3QgdWludDhfdCAqZGF0YSwgaW50 IHNpemUpDQphdnRleHRfcHJpbnRfaW50ZWdlcnMoKnRjdHgsIGNvbnN0IGNoYXIgKmtleSwgdWlu dDhfdCAqZGF0YSwgaW50IHNpemUsDQogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq Zm9ybWF0LCBpbnQgY29sdW1ucywgaW50IGJ5dGVzLCBpbnQgb2Zmc2V0X2FkZCkNCg0KDQpSdWxl cw0KDQotIGFzc2VydCB0Y3R4IGFuZCBrZXkNCi0gaG93IGFib3V0IHVpbnQ4X3QgKmRhdGEsIHVu aXQgYW5kIHZhbCBpbiAuLnByaW50X3N0cmluZz8NCg0KDQoNCjQuIFRleHRXcml0ZXIgQVBJDQo9 PT09PT09PT09PT09PT09PQ0KDQphdnRleHR3cml0ZXJfY29udGV4dF9vcGVuKEFWVGV4dFdyaXRl ckNvbnRleHQgKipwd2N0eCwgY29uc3QgQVZUZXh0V3JpdGVyICp3cml0ZXIpDQphdnRleHR3cml0 ZXJfY29udGV4dF9jbG9zZShBVlRleHRXcml0ZXJDb250ZXh0ICoqcHdjdHgpDQphdnRleHR3cml0 ZXJfY3JlYXRlX3N0ZG91dChBVlRleHRXcml0ZXJDb250ZXh0ICoqcHdjdHgpDQphdnRleHR3cml0 ZXJfY3JlYXRlX2F2aW8oQVZUZXh0V3JpdGVyQ29udGV4dCAqKnB3Y3R4LCBBVklPQ29udGV4dCAq YXZpb19jdHgsIGludCBjbG9zZV9vbl91bmluaXQpDQphdnRleHR3cml0ZXJfY3JlYXRlX2ZpbGUo QVZUZXh0V3JpdGVyQ29udGV4dCAqKnB3Y3R4LCBjb25zdCBjaGFyICpvdXRwdXRfZmlsZW5hbWUp DQphdnRleHR3cml0ZXJfY3JlYXRlX2J1ZmZlcihBVlRleHRXcml0ZXJDb250ZXh0ICoqcHdjdHgs IEFWQlByaW50ICpidWZmZXIpDQoNCg0KUnVsZXMNCg0KLSAqKnB3Y3R4OiBsZWF2ZSB1bmNoZWNr ZWQNCi0gd3JpdGVyOiByZXR1cm4gQVZFUlJPUihFSU5WQUwpDQotIGF2aW9fY3R4OiBhc3NlcnQN Ci0gb3V0cHV0X2ZpbGVuYW1lOiBsb2cgZXJyb3IgYW5kIHJldHVybiBFSU5WQUwNCi0gYnVmZmVy OiBhc3NlcnQgPw0KDQoNCjUuIEdlbmVyYWwNCj09PT09PT09PT0NCg0KQXNzZXJ0aW9ucw0KDQpX aGljaCBhc3NlcnQgLSBhdl9hc3NlcnQwKCkgPw0KDQoNClB1YmxpYy9Qcml2YXRlDQoNCg0KTG9v a2luZyBhdCBBVlRleHRGb3JtYXRDb250ZXh0IC0gc2hvdWxkIHdlIHN0YXJ0IHRoaW5raW5nIGFi b3V0IA0Kd2hpY2ggbWVtYmVycyB3ZSB3b3VsZCAoYXQgbGVhc3QgbG9naWNhbGx5KSBjb25zaWRl ciBwdWJsaWMgYW5kDQp3aGljaCBhcyBub24tcHVibGljPw0KDQoNClRoYW5rcywNCnN3DQoNCg0K DQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpm Zm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8v ZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUs IHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5v cmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==