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 98E4843616 for ; Sun, 19 Jun 2022 05:57:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2187C68B415; Sun, 19 Jun 2022 08:57:06 +0300 (EEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11olkn2090.outbound.protection.outlook.com [40.92.18.90]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2325A68B3C7 for ; Sun, 19 Jun 2022 08:57:00 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A22ltr2Z05WWpKlfzGKUbynSaSjcklGgN7gzyRaRXq9374uRPpdu/rK9jLMDfK1EnghayU9YrEBKKJZMKRlYecuiR9os0nbTSiaix4EdCMBsb13VvYyPscuxixqzI+X9ywzE3FPkKS4nwyBONmmnrY5ZsaHgeeeC8Wy9IdsNePd0CUPH07BvqTrKPtex0GYEu5zqeYWJPzw9VxTldXpkI7QqaWXtYIYEAmCdSUUDlouRLl+gfQcpYnjCBwQUIWB+ac3xRYUMPEJUB6b2ICoQmO4Bgkq7lc0wbCTrCNyumGs2FAvMw6Tpns/8KpMGQTB8UAMq/aFBER92i+k9gGAi8g== 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=sDnFqeSd+K1z3v2qs0EXeIwsYkOFKvfnmGRDfPD1P3k=; b=MtZdAyj02xt4V329Dqxfz3ivN91zJZkgXe9o2TyBWsu/So4SybGjTnSir3jJaTOc3VuTyObukQTHaqLawIKBvPJLz/zhMgGgUW62IfiqNCWyNd/IU+ClSn+pZw9w3hfUPWoMH4wPHE4if8O2jIfYEWv1gjUgS3B0Pdrbu3MNWn1H9f1wXP0s/ZOQZ2Fy+9N5OCER8ReAP84OjrOJWdoeO1cKZ1NkoXHAcVYMEujpD5HfMdwJaYIGviQshTXos5rUs3a04yV9SHpWOogmzSGY4A1IlgG4Fhb54tGPDzSHhKDSK4WXxx/+EtPdVlOPLzFuzjq6FGsd/zYWc3DfqnXBuA== 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=sDnFqeSd+K1z3v2qs0EXeIwsYkOFKvfnmGRDfPD1P3k=; b=V0j3LHbqAUb1Qr5pJLMNj+Om72Es6AR0ZH2y/Mfua/srsqCNbAiCJ2Roywy6LMkQ0Nls38XjuYqBxgl4VNyqiSedEyHBm19Ei5nB8OVnbeXYEYkZTnJaF+nhKAY0Vd2VEdCZySFSf8WfjsKwpyMvftqOz2sQ3Wx/Uppp0Z4dZ16CFGF9uo+T5q+d12S3+yekv1NiZv7H/HAnT+l0ekF/d7D+puTBNIbPNiiAjOUK7wjr258xOOpSDREr6/D9mxgYvuo9PWvQDSTaObzkAxdDoOD4uMpZ4sid3nTb2lweyeQtidmEqBewO76esuE0Dkya7++gbqfQhbwGym6AEGCNRw== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by BN0P223MB0197.NAMP223.PROD.OUTLOOK.COM (2603:10b6:408:147::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14; Sun, 19 Jun 2022 05:56:55 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::d08c:b865:df15:6a]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::d08c:b865:df15:6a%6]) with mapi id 15.20.5353.020; Sun, 19 Jun 2022 05:56:55 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v17 1/5] libavutil: Add wchartoutf8(), wchartoansi(), utf8toansi() and getenv_utf8() Thread-Index: AQHYgi0jPoSArUYG2Um2Cp3MFxsjlq1WLhoAgAANloA= Date: Sun, 19 Jun 2022 05:56:55 +0000 Message-ID: References: <20220617093141.9826-1-nil-admirari@mailo.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [HNvJwYrp5B3pMibxBWEgHkx6tPuBdeGj] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 354f50be-bda9-461c-03db-08da51b88405 x-ms-traffictypediagnostic: BN0P223MB0197:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hbbDK8WOFEIuCBnKJE2s/XMTvxIoAhJIibngzJKXdPwPtUarycmegD3YbyVUqqubQeYiARgHWIzBJNxjZ3v0ZErWS98L8PwY6+GnuPc7URrDrNl7Akj1UjiTJcXN6ItrSvmViZ/Zpe8RlqYqgJ8R6JFpKmmj4v0qrBqigAXC7LRQdWT7gpNd6Z33HwmMhr1vFt1ilClKqVrsZmEQetvqmPzRW0Mb4mOmV5VjNpGJIjraH4LIRrAtEgoxHp7ZkS318WWrbEeWbU2qQc6Z0tjjafypeRY0IHsR7AbAVfmiCwrf47Lt8babp2F/+FBn1qmMjT+PwhYQVE76/WvO3dI/E5IGLA4LrBHaFA6MWjGMNa7tkXEoFCmdRc1K0DY5IB9Mlgq922j0EPvHVAUyIn2PVbZVeNRVUN5YXq2y7+SY5eaw90T7FojQMeMPKsLYYcg1fLQrAArowxA7wssX9go/msRYkobU5KVip2hxaQuX/ZGhRa75hRLfkKPMRYLuJCtKoxFiOF5o1EuCfC5z3WMScBCzM4ykNpTaZ8LNkZs4Bd5lMS59AQc7HKblXrNg9ZlOzlNaJ/zjDcCqA79O++zJDw== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aW1kVy90VklhOVZVMnplM21vTGFhR2NGZU4yOTBJMHo3WDFUOWxtOHl6dnh4?= =?utf-8?B?eEtWYkdCaVE0a2ZvQXB2WURtQUY3ZmtjK2JEeFNLNWhZZkFqZGhvMjJBTDYv?= =?utf-8?B?dTc2d3k1bWtzc25rbmlFQXJFS3gxQWpidUZYcU1namRQdzE3bW91Rkg5bnA1?= =?utf-8?B?MTJFZUJRekVIaTRDdHZraitSK2hPaXZRQSs0Y3F2UTZoUWRNdXlrbCtnZHdk?= =?utf-8?B?d3hKcXYyUUhCNkdNeXc5MUx2WDlRLzhiWDdsd3NiSHlPc3NXUUF1aTdOMGxt?= =?utf-8?B?cHZRZ0tyR0pwMFFwM0huN3BOK1JsOVFCM2tVSUcvUEZWKzVscG0vM0VWUEY3?= =?utf-8?B?WS81NTlOYzh5WmxlckhocTdzR29HbCtoSzVTdXI0VlcrUTJpcGlJZUlpdGxu?= =?utf-8?B?SHQ4YUY4UmxDSTF3cHl0dHczODA1dEdjSGZ1d1hXSVJ3T3RuUWVEV01TejVF?= =?utf-8?B?Yzk1UXcyMkN4N3lGb1lxbGRTYnRWdHM3SXlFSUFQWEtEdWNlY1hZdmFyLytm?= =?utf-8?B?ZFE5UEpYV1JkWUpQNFZweUwwRU1OaG5KMUdmY0prcW5oY1NMWWRZS0pXWHI1?= =?utf-8?B?aHovcWFmRHJFVG5uWUNtTWdJb3oyTnE3TkNLNk42TGtiK1liWkpzMU5CTmVG?= =?utf-8?B?QjZnUDg1U3VmNklobmNtdGVob2xBcXhWSURSSXg2Q3V0bmg1NzVCUnZHb0Jy?= =?utf-8?B?d3Z0bHVDMnFOOUpjTWF1MS96OER0M29iTy8zY2JlZWFsa3h4ZGJKWmVZOU4x?= =?utf-8?B?QmwrYnloUEtRVjRWY1NydUNQb3ZQUUFuOGhMOEt2YWJzbWplZHV0Uk1XQUFE?= =?utf-8?B?SGloeU93blBjTXFXd2NGZEpkMEJmRVljYmV1V0pMQkd4cFg0bzh3T2xhSEhl?= =?utf-8?B?d0g0NDc2NlgwaHdjVjdNQm5uM3lKRjBaVEJiY1hrYnd6dXFIcmJFL0wvVjlX?= =?utf-8?B?Z09DalF2clJVODdTQlUySCt6ZDVNcXlQQ2tFUVMyN0lwRHk4VVRhdUdLNHVN?= =?utf-8?B?bk84QXNjUVU2UUxNVW1xQkZ5MGNsUnJ4Z0lLZFkxZjZUbnVyNklhUEVOdjdQ?= =?utf-8?B?V3dKTGExUGx1Qy95WjVzUExjdVIzVURwL3h5MFVKdVZxYWlYN2x4UjBzbFdO?= =?utf-8?B?N00zMjUveE1rbjJWTEpTU1VQNkVIampCVEt6VldrUFE2eFZpbXVMdFNuaGdk?= =?utf-8?B?d2draHVGSWNHUkpsbHd0RHUvMFpNZEg0VXNWOWlXWldYZUNEdEpnWjlKRndr?= =?utf-8?B?YkZXTmw0Sk9md0tqZ1VEQTZVd1VMeWtJV3JENW50eGZCVWNtSk9iYkRURlNI?= =?utf-8?B?YmcreTVoSURDbWdSYVRFNCtkWUNidE4rM1V2ZDMwNTNFR3lZSldZeXFiTlhw?= =?utf-8?B?ZDdyMXpDa1pEUnhMam95RWZQR0lWYWllUHZsbDEyUlBaNURTRFNvdk1hWjR5?= =?utf-8?B?VzNaU09ES3BDZGxNOXlvbXp1M0liK2pmcWNZRHB1N2dQZ21XVUxMMTZkK0dt?= =?utf-8?B?akZuNUwvbFZBUTFQMXdrT3NCNmZXcFdFWlhFM09QNXhwVWtjdStvMjlyMUlZ?= =?utf-8?B?T1pLVnRmcEt5ZjhTa0FKRzBDckdGcHo0b0h6cEg3VExIV0lZc2l1RDFaMFEx?= =?utf-8?B?bkpYUklsdjZLUVVvUVlLYW5lRkFIdGxHR0grOTkzN05obGwwMFZ2UDB2a0ha?= =?utf-8?B?d1FPN2ZUUTF5N3NvK0QrL1Q0Q3p3eWVvUnFONmh5eVBNTXZCcHlmcUFKbmgv?= =?utf-8?B?dlozc2hFRU0xUmVGd0tvMUJWNzhBS2ZybkpKUGdIQk11NW1WYy9TN0dJSGZW?= =?utf-8?B?dXlEY0lZOXZUbWJaNTJGenFUa3pCRG9VcXFIZnltZXl2eWpRUVZCbFZZM3Bq?= =?utf-8?B?eXVjZlpINEJpTThGZ3Rac3lDU1RERVlSME8wYmF2SEx1VTYyaVNkSmcvY1FY?= =?utf-8?Q?b5GD854ltSI=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.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: 354f50be-bda9-461c-03db-08da51b88405 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2022 05:56:55.6475 (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: BN0P223MB0197 Subject: Re: [FFmpeg-devel] [PATCH v17 1/5] libavutil: Add wchartoutf8(), wchartoansi(), utf8toansi() and getenv_utf8() 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 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: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZmZtcGVnLWRldmVsIDxm Zm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3JnPiBPbiBCZWhhbGYgT2YNCj4gQW5kcmVhcyBS aGVpbmhhcmR0DQo+IFNlbnQ6IFN1bmRheSwgSnVuZSAxOSwgMjAyMiA2OjU5IEFNDQo+IFRvOiBm Zm1wZWctZGV2ZWxAZmZtcGVnLm9yZw0KPiBTdWJqZWN0OiBSZTogW0ZGbXBlZy1kZXZlbF0gW1BB VENIIHYxNyAxLzVdIGxpYmF2dXRpbDogQWRkDQo+IHdjaGFydG91dGY4KCksIHdjaGFydG9hbnNp KCksIHV0Zjh0b2Fuc2koKSBhbmQgZ2V0ZW52X3V0ZjgoKQ0KPiANCj4gTmlsIEFkbWlyYXJpOg0K PiA+IHdjaGFydG91dGY4KCkgY29udmVydHMgc3RyaW5ncyByZXR1cm5lZCBieSBXaW5BUEkgaW50 byBVVEYtOCwNCj4gPiB3aGljaCBpcyBGRm1wZWcncyBwcmVmZmVyZWQgZW5jb2RpbmcuDQo+ID4N Cj4gPiBTb21lIGV4dGVybmFsIGRlcGVuZGVuY2llcywgc3VjaCBhcyBBdmlTeW50aCwgYXJlIHN0 aWxsDQo+ID4gbm90IFVuaWNvZGUtZW5hYmxlZC4gdXRmOHRvYW5zaSgpIGNvbnZlcnRzIFVURi04 IHN0cmluZ3MNCj4gPiBpbnRvIEFOU0kgaW4gdHdvIHN0ZXBzOiBVVEYtOCAtPiB3Y2hhcl90IC0+ IEFOU0kuDQo+ID4gd2NoYXJ0b2Fuc2koKSBpcyByZXNwb25zaWJsZSBmb3IgdGhlIHNlY29uZCBz dGVwIG9mIHRoZSBjb252ZXJzaW9uLg0KPiA+IENvbnZlcnNpb24gaW4ganVzdCBvbmUgc3RlcCBp cyBub3Qgc3VwcG9ydGVkIGJ5IFdpbkFQSS4NCj4gPg0KPiA+IFNpbmNlIHRoZXNlIGNoYXJhY3Rl ciBjb252ZXJ0aW5nIGZ1bmN0aW9ucyBhbGxvY2F0ZSB0aGUgYnVmZmVyDQo+ID4gb2YgbmVjZXNz YXJ5IHNpemUsIHRoZXkgYWxzbyBmYWNpbGl0YXRlIHRoZSByZW1vdmFsIG9mIE1BWF9QQVRIDQo+ IGxpbWl0DQo+ID4gaW4gcGxhY2VzIHdoZXJlIGZpeGVkLXNpemUgQU5TSS9XQ0hBUiBzdHJpbmdz IHdlcmUgdXNlZA0KPiA+IGFzIGZpbGVuYW1lIGJ1ZmZlcnMuDQo+ID4NCj4gPiBnZXRlbnZfdXRm OCgpIHdyYXBzIF93Z2V0ZW52KCkgY29udmVydGluZyBpdHMgaW5wdXQgZnJvbQ0KPiA+IGFuZCBp dHMgb3V0cHV0IHRvIFVURi04LiBDb21wYXJlZCB0byBwbGFpbiBnZXRlbnYoKSwNCj4gPiBnZXRl bnZfdXRmOCgpIHJlcXVpcmVzIGEgY2xlYW51cC4NCj4gPg0KPiA+IEJlY2F1c2Ugb2YgdGhhdCwg aW4gcGxhY2VzIHRoYXQgb25seSB0ZXN0IHRoZSBleGlzdGVuY2Ugb2YNCj4gPiBhbiBlbnZpcm9u bWVudCB2YXJpYWJsZSBvciBjb21wYXJlIGl0cyB2YWx1ZSB3aXRoIGEgc3RyaW5nDQo+ID4gY29u c2lzdGluZyBlbnRpcmVseSBvZiBBU0NJSSBjaGFyYWN0ZXJzLCB0aGUgdXNlIG9mIHBsYWluIGdl dGVudigpDQo+ID4gaXMgc3RpbGwgcHJlZmVycmVkLiAobGliYXZ1dGlsL2xvZy5jIGNoZWNrX2Nv bG9yX3Rlcm1pbmFsKCkNCj4gPiBpcyBhbiBleGFtcGxlIG9mIHN1Y2ggYSBwbGFjZS4pDQo+ID4N Cj4gPiBQbGFpbiBnZXRlbnYoKSBpcyBhbHNvIHByZWZmZXJlZCBpbiBVTklYLW9ubHkgY29kZSwN Cj4gPiBzdWNoIGFzIGJrdHIuYywgZmJkZXZfY29tbW9uLmMsIG9zcy5jIGluIGxpYmF2ZGV2aWNl DQo+ID4gb3IgYWZfbGFkc3BhLmMgaW4gbGliYXZmaWx0ZXIuDQo+ID4gLS0tDQo+ID4gIGNvbmZp Z3VyZSAgICAgICAgICAgICAgICAgIHwgIDEgKw0KPiA+ICBsaWJhdnV0aWwvZ2V0ZW52X3V0Zjgu aCAgICB8IDcxDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4g IGxpYmF2dXRpbC93Y2hhcl9maWxlbmFtZS5oIHwgNTEgKysrKysrKysrKysrKysrKysrKysrKysr KysrDQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKykNCj4gPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYmF2dXRpbC9nZXRlbnZfdXRmOC5oDQo+ID4NCj4gPiBkaWZmIC0tZ2l0 IGEvY29uZmlndXJlIGIvY29uZmlndXJlDQo+ID4gaW5kZXggM2RjYTFjNGJkMy4uZmEzN2E3NDUz MSAxMDA3NTUNCj4gPiAtLS0gYS9jb25maWd1cmUNCj4gPiArKysgYi9jb25maWd1cmUNCj4gPiBA QCAtMjI3Miw2ICsyMjcyLDcgQEAgU1lTVEVNX0ZVTkNTPSINCj4gPiAgICAgIGZjbnRsDQo+ID4g ICAgICBnZXRhZGRyaW5mbw0KPiA+ICAgICAgZ2V0YXV4dmFsDQo+ID4gKyAgICBnZXRlbnYNCj4g PiAgICAgIGdldGhydGltZQ0KPiA+ICAgICAgZ2V0b3B0DQo+ID4gICAgICBHZXRNb2R1bGVIYW5k bGUNCj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2dldGVudl91dGY4LmggYi9saWJhdnV0aWwv Z2V0ZW52X3V0ZjguaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAw MDAwMC4uMTYxZTNlNjIwMg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9saWJhdnV0aWwv Z2V0ZW52X3V0ZjguaA0KPiA+IEBAIC0wLDAgKzEsNzEgQEANCj4gPiArLyoNCj4gPiArICogVGhp cyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLg0KPiA+ICsgKg0KPiA+ICsgKiBGRm1wZWcgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yDQo+ID4gKyAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCj4g PiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyDQo+ID4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlcg0KPiB2ZXJzaW9uLg0KPiA+ICsgKg0KPiA+ICsgKiBGRm1wZWcg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gPiAr ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YNCj4gPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiBHTlUNCj4gPiArICogTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gPiArICoNCj4gPiArICogWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsDQo+IFB1Ymxp Yw0KPiA+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlDQo+ID4gKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0 cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUENCj4gMDIxMTAtMTMwMSBVU0ENCj4gPiArICov DQo+ID4gKw0KPiA+ICsjaWZuZGVmIEFWVVRJTF9HRVRFTlZfVVRGOF9IDQo+ID4gKyNkZWZpbmUg QVZVVElMX0dFVEVOVl9VVEY4X0gNCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxzdGRsaWIuaD4NCj4g PiArDQo+ID4gKyNpbmNsdWRlICJtZW0uaCINCj4gPiArDQo+ID4gKyNpZmRlZiBIQVZFX0dFVEVO Vg0KPiA+ICsNCj4gPiArI2lmZGVmIF9XSU4zMg0KPiA+ICsNCj4gPiArI2luY2x1ZGUgImxpYmF2 dXRpbC93Y2hhcl9maWxlbmFtZS5oIg0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSBjaGFyICpn ZXRlbnZfdXRmOChjb25zdCBjaGFyICp2YXJuYW1lKQ0KPiA+ICt7DQo+ID4gKyAgICB3Y2hhcl90 ICp2YXJuYW1lX3csICp2YXJfdzsNCj4gPiArICAgIGNoYXIgKnZhcjsNCj4gPiArDQo+ID4gKyAg ICBpZiAodXRmOHRvd2NoYXIodmFybmFtZSwgJnZhcm5hbWVfdykpDQo+ID4gKyAgICAgICAgcmV0 dXJuIE5VTEw7DQo+ID4gKyAgICBpZiAoIXZhcm5hbWVfdykNCj4gPiArICAgICAgICByZXR1cm4g TlVMTDsNCj4gPiArDQo+ID4gKyAgICB2YXJfdyA9IF93Z2V0ZW52KHZhcm5hbWVfdyk7DQo+ID4g KyAgICBhdl9mcmVlKHZhcm5hbWVfdyk7DQo+ID4gKw0KPiA+ICsgICAgaWYgKCF2YXJfdykNCj4g PiArICAgICAgICByZXR1cm4gTlVMTDsNCj4gPiArICAgIGlmICh3Y2hhcnRvdXRmOCh2YXJfdywg JnZhcikpDQo+ID4gKyAgICAgICAgcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ICsgICAgcmV0dXJu IHZhcjsNCj4gPiArDQo+ID4gKyAgICAvLyBObyBDUF9BQ1AgZmFsbGJhY2sgY29tcGFyZWQgdG8g b3RoZXIgKl91dGY4KCkgZnVuY3Rpb25zOg0KPiA+ICsgICAgLy8gbm9uIFVURi04IHN0cmluZ3Mg bXVzdCBub3QgYmUgcmV0dXJuZWQuDQo+ID4gK30NCj4gPiArDQo+ID4gKyNlbHNlDQo+ID4gKw0K PiA+ICtzdGF0aWMgaW5saW5lIGNoYXIgKmdldGVudl91dGY4KGNvbnN0IGNoYXIgKnZhcm5hbWUp DQo+ID4gK3sNCj4gPiArICAgIHJldHVybiBhdl9zdHJkdXAoZ2V0ZW52KHZhcm5hbWUpKTsNCj4g DQo+IFRoaXMgZm9yY2VzIGFsbG9jYXRpb25zIGFuZCBmcmVlcyBpbiBzY2VuYXJpb3Mgd2hlcmUg dGhpcyBpcyB3aG9sbHkNCj4gdW5uZWNlc3NhcnkuIA0KDQpXaHkgZG8geW91IHRoaW5rIHRoaXMg aXMgdW5uZWNlc3Nhcnk/IEF0IGxlYXN0IG9uIFdpbmRvd3MsIHRoZXJlIGlzDQpubyBndWFyYW50 ZWUgcmVnYXJkaW5nIHRoZSBsaWZldGltZSBvZiBzdHJpbmdzIHJldHVybmVkIGZyb20NCmdldGVu digpLiBJbiBjYXNlIHdoZW4gc29tZSBvdGhlciBjb2RlIHdvdWxkIGNhbGwgX3B1dGVudiB0byBz ZXQgdGhlDQplbnYgdmFyaWFibGUsIHRoaXMgY2FuIGNhdXNlIHRoZSBwcmV2aW91c2x5IHJldHVy bmVkIHN0cmluZyB0byBiZWNvbWUgDQppbnZhbGlkIHdpdGhvdXQgdGhlIGNhbGxlciBiZWluZyBh YmxlIHRvIGtub3cuDQoNCg0KPiBUaGlzIGNhbiBiZSBhdm9pZGVkIGJ5IGFkZGluZyBhIGN1c3Rv bSBkZWFsbG9jYXRvciBmb3INCj4gc3RyaW5ncyByZXR1cm5lZCB2aWEgZ2V0ZW52X3V0Zjg6IE5h bWVseSBhIGRlZmluZS93cmFwcGVyIGFyb3VuZA0KPiBhdl9mcmVlIGluIHRoZSBfV0lOMzIgYW5k IGEgbm8tb3AgZWxzZS4NCg0KSSBkb24ndCB0aGluayBJIHJlYWxseSB1bmRlcnN0YW5kIHdoYXQg eW91IG1lYW4sIGJ5IHRoZSBhYm92ZSDwn5iJDQoNCg0KQmVzdCByZWdhcmRzLA0Kc3cNCg0KDQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2 ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxp bmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBz dWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==