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 5260A438C4 for ; Tue, 2 Aug 2022 17:10:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7FB4C68BAB2; Tue, 2 Aug 2022 20:10:34 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2082.outbound.protection.outlook.com [40.92.89.82]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 65CA468B972 for ; Tue, 2 Aug 2022 20:10:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ECYIaneBkt+/EdiHCnwy5WYiEJmCYplKgJs0Bwj1LhiYczuvFayACJ770xny6tLpE86sXfVu9m4AbRMGNkTD1h42MB64v5ydwCdfo5QzT8NOslwdmoiMGdaXrb+pAUT1IimbK/sj4ZUmZFfeEzSmF5BdFEiR1t4gqJUAx63B/MlVQHez/JSiCJ4ZrHMHHm0hO86rjtrRLQxBX2IsVzw5Mtg+YMf4fh+JHQmm44+KXzcRaCfZtpbOJ4B84DX9YW8eVjcsd6KDg/NMSjJCTx62xfpNABYUSDJnSWmsEjp/tTDbAcjfL/zKDld4gBFjbBh0IOf3xtuOy4gkVpG5H529DQ== 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=ObZGKF7rbGpnMezhJ7lrWA3Cy9cjsJuJ6UOSiIPJKtI=; b=Gr9z2z/1qP/eOWEnScxKTtEfjtovLFa9E8rp75q9HDbN+6SmCOIhZ8X/acrfyqRz6k2Yiv/KQIG/hnI5f4E14RQ6q2NuOuu5yZ1kfw/nF7gbwM56BNekIn+k10Fm6L0FNggG1GPAAaF9O0VTwlMjEWWMNGKNWeH2+tIEN8XK0h1QjmrNXdsoN/ZEznt3Y67R4LM3PnEhCjmXKQOkY4jUTqK4ntM5Db3klTilbJLMCtaoNyUBL7ZbL1B+5uGSr/x9byTuqxgcW0brw5HetWvsv5MihF8xTsv99mlWMEY6LldSHgT93I/s7W/OqWAuVm+UqYUphYud4zNoPNhOiZhPCQ== 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=ObZGKF7rbGpnMezhJ7lrWA3Cy9cjsJuJ6UOSiIPJKtI=; b=FFm4wtxZTFWsBZISXNdoHTTlZvE+D1syUDYM2FjJxUGi2QTa0aQP+c57fG+AumRowrXN/EXDOvq9+eklQ3lrINeQOxqXTkfobKsXrqrNaF5z9Sr9H43bIlHPop6IXkRnwydSaQeZ/jz/u0hhaiAIoxzFrlVlt7Ck4h0/tehyKl+41cX8c3pm9Pa/0U2YEiYnK5xHzvsxYidsabbf/88UYqKAjdbfbVEc0RFYCkaA5WJ1WnfJyszLAAGmveV1t+eLKauehEh+NhXX5sjumMSAixLCHXt6kUhmrb8/y1Ubgt3ByBsXQhh6BfW3xo/YfinHTbEX5L4dcog7yCo/xOrmJQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB7PR01MB4920.eurprd01.prod.exchangelabs.com (2603:10a6:10:58::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.14; Tue, 2 Aug 2022 17:10:26 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Tue, 2 Aug 2022 17:10:26 +0000 Message-ID: Date: Tue, 2 Aug 2022 19:10:24 +0200 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org References: <20220518180454.53301-1-jeebjp@gmail.com> <41dcff20-36db-c4e7-5d7f-36c4dc911a2c@gyani.pro> <64c6b7ce-671a-1a03-45e1-cad08a8cf04c@mail.de> <64edef9e-5052-d335-5dc3-97aa9e23f989@gyani.pro> Content-Language: en-US In-Reply-To: X-TMN: [grqriYe0Jm6MjxnIeE23hu90QKokblDa] X-ClientProxiedBy: ZR0P278CA0161.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::19) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d9892d94-6e9d-4f12-e9bc-08da74a9e461 X-MS-TrafficTypeDiagnostic: DB7PR01MB4920:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vsVpF6OGnGmCE+nswPNfMSZRXdo1uV2OM9/pzOLGQyqW3NidcwlhW3Vnh2/y6VI4EX6aaaqQKLuSU9dcG6b/jRiC9PzNarsLstq1UyXJOToWJef8ARzuu1MNCx9JWIiwWL0cq8lZhx9FIbwqzmzOV31FWVY5KRZIYolBTVRFN/UaJU8SvneJSqSbJ0p0wvR3+WfELxXlKVnwEcYtcTNBzq/UnQKd6MpUNqF/jHQ/LN2qKkRWiJFwJr4H5KSIp7eMTj+aIYhSF5LjtTkNHsxJGaiZ670iNLSkAaxvyTTB7nWsniRDyonePmKM4hpy+TNjU7DnKdFDIQBYDu1BW1cIFxHqCJxH+LtpShJwsKwAyMVmjHP8tQX4xMu29YvkPI2COO4otwgXOCYOiDaKZm2HzB7CIZ1H7CSeJfK/GbDwiiZPLjrytIqCtGZQfUC5aeE/mlUCBMZoLbwaFeCPgJcNO9UYG4pn8nJ31fLlzIQDivScUrBQQeUFFeAc8kNqeEP2HSckxgqVzBLOjbKp9HtpC4YQzZ2/PJGhMLmRJ0Pz5JoqxPvGOmzlacbe9dHS0FMyQqKEKqcHotu1rnTKbb9eI6t8bNCX5pQhHD58s+k9Nv6q5ASJhPeoUbVNXzWmGvzPjEPAUcFTF4uBniaooXFRtB1QzXutK6MEzS9W63SPdzBBHisWJy8Nn19B3C8h9Qq7 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZHczSU53dEo1SzYxeTJmTGVHTGdkb3JtVkNQeXltVEd2bit6ZDV3MmlrZS9U?= =?utf-8?B?TUV2SWVpK2VlbFpJMzFVSVdMU0lEalNCQVRNbzErR1dVVElBN1NSV043UXdk?= =?utf-8?B?R2ltcmtqWUwrVkpoN05EMmVlWjZlTk96MlBkTUVkcURMcDBtK0w0RXJpN29w?= =?utf-8?B?WGh5anFkLzFDNUQ2S0RzY0tNQXVxRmtSNStkRVpSTVIzdU9oNzc3MTloekVN?= =?utf-8?B?dFFyc0lJK1JnYU9Mb2dEWGR3WUtaekpWVDRhS21uNW9TZTFiaE9TSHA5d2hj?= =?utf-8?B?d1hSU3lPNVJlVnVJVnlVMUtGQUgvSzN2WCtqbkQrVVdadWRMZ1BKTHc3N252?= =?utf-8?B?S09aRDltelNzdzVXb0s0eVZPb3R3aDNJenNJSXFsWVlDRzZZZ1pudHVERUo5?= =?utf-8?B?eUQvbWhYY0sxWkE1L3d6K2Vic0d0UUNZL2haT3dPaFkzcHZHT1dFK1lXMWZY?= =?utf-8?B?bzluQnFjK08rNVhtK29MVFE5RFNnNUcrQlh2MklWRlEyWDh0bDhiZHdsazg1?= =?utf-8?B?cFNndW0wMDYrandqNmFJWk9CM2wxc2JVSkE4Mm1JUkxMekNOL1Z1MjZ6d2RP?= =?utf-8?B?cE0rRDZaenJGZWJwRUlNSXFwSFBuczE4eE9rTGVxQzVINUtwSWJTUUxTbkls?= =?utf-8?B?ekZ4TzFoZkdNMnE3ZGx0V2FvUnB2bDJ0Unh1TFpJNkNmNkpjdTYxQWdSeWdR?= =?utf-8?B?VFNqcytSRERjZ3c2SFArMTFxcVlidzl2dE42bk8vY1ZwbFMrT2F6THlHMHht?= =?utf-8?B?WUM4a2ZSR2RzL1pXRElwbHA3U29QK2JXNWVKenNpMEhOMEplbWV1MEhReXlI?= =?utf-8?B?YWk5L0xseGt6VU9Cd3NMRWtCQXJMQmVUa3RodGd1VmU3UmhCRUE3emp1YndC?= =?utf-8?B?Ri9tQ05NRmp1NnZZU2NQdDZqL3Vjc3BOczJrOGtHOGZUaHBRdnh0TUxLY2x1?= =?utf-8?B?ZG9nS0YzVnRGYytZeG9DR2pGMkFNMktjYlY5Y0RINFdIckQwS2VyZFJ3U1pW?= =?utf-8?B?N29iMTkzWWphZytIeG1lUFpid2ZxV3lHYUVNUmN3UGdlRU95bzVkRENHQTNq?= =?utf-8?B?dG4zT0lJVGJUQllnYUMxSjNwU3ZTc2dGUzFGcU90emJGZno5VlBGcHgvV2E0?= =?utf-8?B?QTVBRmxqSnhZc04rKzdESDBEZFEzNEhDbndGaW15Vks0VFB2Zk5yK0twRmxh?= =?utf-8?B?NTBaSXF4VzdNV244VjVwNDJna3YyR2ZpdVViZk5sRmlNR1d3a1crNzdpTWdV?= =?utf-8?B?elp4STJoaHlOUExNYXQ4SC8xaU9xTXh5dVNuQnB2bkF3dmc5M3FiKzFDOFpz?= =?utf-8?B?dWI1N2RFaWdsTXVQc3Ntamd2NTVMM1I1NTNUNjhJWDBsNjJ3U3RRTEs4RVNi?= =?utf-8?B?NWVaYzZvR3VISlhrbjQ2T292WWhoczRJc3RiSDg0TzE0MjJHV1pTYU1FWlJD?= =?utf-8?B?cnFMem1oMVRTN3JmUFNCNmo0ZFF2dTB5cGlFeDZMQXhhTWlPcmMzS2NxVGto?= =?utf-8?B?MFBIYTR0YXFGdjZkcE0wYXZLNVRWbUF6clJMcDRLeWpTelZzRlE3dTBhOXQr?= =?utf-8?B?WTl6QmZ0YmNydzNpWDB5L2d4NkRJQzBqdGg2SE55ZEhkdmRXR2dEb3ZYd1d3?= =?utf-8?B?bTNwVnhJM3BOSWlvanJkK0poK2x0WkZLZzlYNGR2NWVsRUtCcHg4d1FtVzZv?= =?utf-8?B?MGlVS0diWnZYNW9VbmpabFZEdTlub3JHdDBsYVhYbEFCUDN3akwvNHd1RCt1?= =?utf-8?Q?W7aNu3MH/PUK8fXvTU=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d9892d94-6e9d-4f12-e9bc-08da74a9e461 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2022 17:10:26.0169 (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: DB7PR01MB4920 Subject: Re: [FFmpeg-devel] [PATCH 1/2] ffmpeg: add display_{rotation, hflip, vflip} options 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: VGhpbG8gQm9yZ21hbm46Cj4gSGksCj4gCj4+Pj4+PiBPbiAyMDIyLTA1LTE4IDExOjM0IHBtLCBK YW4gRWtzdHLDtm0gd3JvdGU6Cj4+Pj4+Pj4gVGhpcyBlbmFibGVzIG92ZXJyaWRpbmcgdGhlIHJv dGF0aW9uIGFzIHdlbGwgYXMgaG9yaXpvbnRhbC92ZXJ0aWNhbAo+Pj4+Pj4+IGZsaXAgc3RhdGUg b2YgYSBzcGVjaWZpYyB2aWRlbyBzdHJlYW0gb24gZWl0aGVyIHRoZSBpbnB1dCBvciBvdXRwdXQK Pj4+Pj4+PiBzaWRlLgo+Pj4+Pj4KPj4+Pj4+IFNpbmNlIHJvdGF0aW9uLCBmbGlwIGFuZCBzY2Fs ZSBhcmUgc3RvcmVkIGluIGEgc2luZ2xlIGRhdGEgc3RydWN0dXJlLAo+Pj4+Pj4gaG93IGFib3V0 IGEgc2luZ2xlIG9wdGlvbiBpLmUuIC1kaXNwbGF5ICJyb3RhdGU9OTAsZmxpcD1odixzY2FsZT0y Igo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBJIGRpZCB0aGluayBhYm91dCB0aGF0LCBhbmQgSSBldmVuIGlt cGxlbWVudGVkIEFWRGljdCBiYXNlZCBvcHRpb25zCj4+Pj4+IGZvciBmZm1wZWcuYyBpbiBhIGJy YW5jaC4gQnV0IHRoZW4gcHJldHR5IG11Y2ggZ290IHRpcmVkIG9mIGxhY2sgb2YKPj4+Pj4gQVZP cHRpb24gYXV0b21hdGlvbiAoZi5leC4gZm9yIHRoZSBmbGlwIGZsYWdnaW5nIGV0YyksIGFuZCBk ZWNpZGVkCj4+Pj4+IHRoYXQgc2luY2UgdGhlc2UgYXJlIHJlbGF0aXZlbHkgYmFzaWMgYW5kIHNp bXBsZSwgdGhlIG5vbi1nZW5lcmljCj4+Pj4+IG9wdGlvbiBmb3IgdGhpcyBjb3VsZCBiZSBqdXN0 IHRocmVlIG9wdGlvbnMgaW4gdGhlIGluaXRpYWwgc3VibWlzc2lvbi4KPj4+Pgo+Pj4+IEluIHRo ZSBlbmQgSSBkaWQgaW1wbGVtZW50IHRoaXMgd2l0aCBhIHNpbmdsZSBkaWN0LWJhc2VkIHRoaW5n IGluIGEKPj4+PiBicmFuY2ggYnV0IG5ldmVyIGdvdCB0byBwb3N0aW5nIGl0IHRvIHRoaXMgdGhy ZWFkOgo+Pj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9qZWViL2ZmbXBlZy9jb21taXRzL2ZmbXBlZ19j X2Rpc3BsYXlfbWF0cml4X3dpdGhfZGljdHMKPj4+Pgo+Pj4+Cj4+Pj4gU28gZm9yIHRoZSBwb3Np dGl2ZTogTm93IGl0J3MgYWxsIGluIGEgc2luZ2xlIG9wdGlvbiBzbyBpdCdzIGNsZWFyCj4+Pj4g dGhhdCBpdCdzIGRlZmluaW5nIGEgc2luZ2xlIHN0cnVjdHVyZS4KPj4+PiBBbmQgdGhlIG5lZ2F0 aXZlOiBOZWVkcyBhIHN0cnVjdCBkZWZpbml0aW9uLCBzdHJ1Y3QsIEFWT3B0aW9uIGxpc3QsCj4+ Pj4gQVZDbGFzcyBhbmQgYWN0dWFsbHkgaWYgeW91IGFscmVhZHkgbWFkZSBhIGRpY3Qgb3V0IG9m IHRoZSBvcHRpb25zCj4+Pj4gYmVmb3JlLCBhcyB0aGUgZnVuY3Rpb25zIHdpbGwgZnJlZSB0aGUg b3JpZ2luYWwgYWZ0ZXIgdXNhZ2UgYW5kCj4+Pj4gZ2VuZXJhdGUgYSBuZXcgb25lLCBpdCBkZXN0 cm95cyB0aGUgbGlmZSB0aW1lIGV4cGVjdGF0aW9ucyBvZiB0aGUgZGljdAo+Pj4+IGFuZCB0aHVz IGl0IGlzIGp1c3Qgc2ltcGxlciB0byBjb3B5IHRoZSBkaWN0IHdoZW4gZW50ZXJpbmcgdGhlCj4+ Pj4gZnVuY3Rpb24gKEkgdGhpbmsgdGhlcmUgaXMgYW4gYXJndW1lbnRzIHN0cmluZyBiYXNlZCBB UEkgd2hpY2ggbWlnaHQKPj4+PiBvciBtaWdodCBub3QgYWN0dWFsbHkgYmUgc2ltcGxlciBmb3Ig dGhpcyBjYXNlKS4KPj4+Pgo+Pj4+IFNvIHllYSwgbm90IHN1cmUgaWYgSSBwcmVmZXIgdGhpcyB2 ZXJzaW9uLgo+Pj4KPj4+IFBpbmcuCj4+Pgo+Pj4gRGlkIHRoaXMgc3RhbGwgZm9yIGEgcmVhc29u PyBIb3cgY2FuIHdlIGl0ZXJhdGUgb24gaXQ/Cj4+Cj4+IFNpbmNlIHRoZSByb3RhdGlvbi9mbGlw L3NjYWxlIGhpbnRzIGFyZSBzdG9yZWQgaW4gYSBzaW5nbGUgZGF0YQo+PiBzdHJ1Y3R1cmUsIEkg cHJlZmVyIGEgc2luZ2xlIHVzZXIgb3B0aW9uIHRvIHNldCB0aG9zZSB2YWx1ZXMuCj4gCj4gYXR0 YWNoZWQgcGF0Y2ggYWxsb3dzIGZvciBwcmludGluZyB0aGUgYXJndW1lbnRzIG9mIHRoZSBuZXcK PiAtZGlzcGxheV9yb3RhdGlvbiAob3IgYW55KSBvcHRpb24uCj4gCj4gSSB3cm90ZSB0aGlzIGlu IGplZWIncyBnaXRodWIgYnJhbmNoIFsxXSB3aGVyZSBpdCBhcHBsaWVzIG9uLXRvcC4gRGlkbid0 Cj4gdGVzdCB3aXRoIEZGbXBlZy9IRUFEIGFzIHRoaXMgc3RpbGwgbmVlZHMgY2xlYW51cCBhbnl3 YXlzLgo+IE5ldmVyIHRvdWNoZWQgdGhpcyB3aG9sZSBvcHRpb25zIHRoaW5nIGJlZm9yZSwgSSBn dWVzcyB0aGVyZSdzIGxvdCB0bwo+IGNvbXBsYWluIGFib3V0Li4uCj4gCgpJbmRlZWQuIEkgaG9w ZSB5b3UgZG9uJ3QgZXhwZWN0IHVzIHRvIGFwcGx5IHRoaXMgY2xvbmUgb2Ygb3B0X2xpc3QgKHRo ZQpvbmx5IGRpZmZlcmVuY2UgSSBmb3VuZCB3ZXJlIHRoYXQgeW91IGFyZSBub3QgcHJpbnRpbmcg dGhlIEFWX09QVF9GTEFHXyoKdmFsdWVzKS4KCj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9vcHQu YyBiL2xpYmF2dXRpbC9vcHQuYwo+IGluZGV4IDhmZmIxMDQ0OWIuLjQyOGRhMjMxOWYgMTAwNjQ0 Cj4gLS0tIGEvbGliYXZ1dGlsL29wdC5jCj4gKysrIGIvbGliYXZ1dGlsL29wdC5jCj4gQEAgLTE0 NDMsNiArMTQ0MywyMDEgQEAgRkZfRU5BQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTCj4gICAgICB9 Cj4gIH0KPiAgCj4gK3N0YXRpYyB2b2lkIGFyZ19saXN0KHZvaWQgKm9iaiwgdm9pZCAqYXZfbG9n X29iaiwgY29uc3QgY2hhciAqdW5pdCwgZW51bSBBVk9wdGlvblR5cGUgcGFyZW50X3R5cGUpCj4g K3sKPiArICAgIGNvbnN0IEFWT3B0aW9uICpvcHQgPSBOVUxMOwo+ICsgICAgQVZPcHRpb25SYW5n ZXMgKnI7Cj4gKyAgICBpbnQgaTsKPiArCj4gKyAgICB3aGlsZSAoKG9wdCA9IGF2X29wdF9uZXh0 KG9iaiwgb3B0KSkpIHsKPiArICAgICAgICAvKiBEb24ndCBwcmludCBDT05TVCdzIG9uIGxldmVs IG9uZS4KPiArICAgICAgICAgKiBEb24ndCBwcmludCBhbnl0aGluZyBidXQgQ09OU1QncyBvbiBs ZXZlbCB0d28uCj4gKyAgICAgICAgICogT25seSBwcmludCBpdGVtcyBmcm9tIHRoZSByZXF1ZXN0 ZWQgdW5pdC4KPiArICAgICAgICAgKi8KPiArICAgICAgICBpZiAoIXVuaXQgJiYgb3B0LT50eXBl ID09IEFWX09QVF9UWVBFX0NPTlNUKQo+ICsgICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAg ICBlbHNlIGlmICh1bml0ICYmIG9wdC0+dHlwZSAhPSBBVl9PUFRfVFlQRV9DT05TVCkKPiArICAg ICAgICAgICAgY29udGludWU7Cj4gKyAgICAgICAgZWxzZSBpZiAodW5pdCAmJiBvcHQtPnR5cGUg PT0gQVZfT1BUX1RZUEVfQ09OU1QgJiYgc3RyY21wKHVuaXQsIG9wdC0+dW5pdCkpCj4gKyAgICAg ICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgIGVsc2UgaWYgKHVuaXQgJiYgb3B0LT50eXBlID09 IEFWX09QVF9UWVBFX0NPTlNUKQo+ICsgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZf TE9HX0lORk8sICIgICAgICUtMTVzICIsIG9wdC0+bmFtZSk7Cj4gKyAgICAgICAgZWxzZQo+ICsg ICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIgICAlLTE3cyAiLCBv cHQtPm5hbWUpOwo+ICsKPiArICAgICAgICBzd2l0Y2ggKG9wdC0+dHlwZSkgewo+ICsgICAgICAg ICAgICBjYXNlIEFWX09QVF9UWVBFX0ZMQUdTOgo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKGF2 X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjxmbGFncz4iKTsKPiArICAgICAgICAg ICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0lOVDoKPiArICAg ICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiUtMTJzICIsICI8 aW50PiIpOwo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIGNhc2UgQVZf T1BUX1RZUEVfSU5UNjQ6Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZf TE9HX0lORk8sICIlLTEycyAiLCAiPGludDY0PiIpOwo+ICsgICAgICAgICAgICAgICAgYnJlYWs7 Cj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfVUlOVDY0Ogo+ICsgICAgICAgICAgICAg ICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjx1aW50NjQ+Iik7 Cj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQ RV9ET1VCTEU6Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lO Rk8sICIlLTEycyAiLCAiPGRvdWJsZT4iKTsKPiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsg ICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0ZMT0FUOgo+ICsgICAgICAgICAgICAgICAgYXZf bG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjxmbG9hdD4iKTsKPiArICAg ICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX1NUUklO RzoKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiUt MTJzICIsICI8c3RyaW5nPiIpOwo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAg ICAgIGNhc2UgQVZfT1BUX1RZUEVfUkFUSU9OQUw6Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2co YXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlLTEycyAiLCAiPHJhdGlvbmFsPiIpOwo+ICsgICAg ICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfQklOQVJZ Ogo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJS0x MnMgIiwgIjxiaW5hcnk+Iik7Cj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAg ICAgY2FzZSBBVl9PUFRfVFlQRV9ESUNUOgo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xv Z19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjxkaWN0aW9uYXJ5PiIpOwo+ICsgICAgICAg ICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfSU1BR0VfU0la RToKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiUt MTJzICIsICI8aW1hZ2Vfc2l6ZT4iKTsKPiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAg ICAgICAgICBjYXNlIEFWX09QVF9UWVBFX1ZJREVPX1JBVEU6Cj4gKyAgICAgICAgICAgICAgICBh dl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlLTEycyAiLCAiPHZpZGVvX3JhdGU+Iik7 Cj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQ RV9QSVhFTF9GTVQ6Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9H X0lORk8sICIlLTEycyAiLCAiPHBpeF9mbXQ+Iik7Cj4gKyAgICAgICAgICAgICAgICBicmVhazsK PiArICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9TQU1QTEVfRk1UOgo+ICsgICAgICAgICAg ICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiJS0xMnMgIiwgIjxzYW1wbGVf Zm10PiIpOwo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIGNhc2UgQVZf T1BUX1RZUEVfRFVSQVRJT046Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwg QVZfTE9HX0lORk8sICIlLTEycyAiLCAiPGR1cmF0aW9uPiIpOwo+ICsgICAgICAgICAgICAgICAg YnJlYWs7Cj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfQ09MT1I6Cj4gKyAgICAgICAg ICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlLTEycyAiLCAiPGNvbG9y PiIpOwo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BU X1RZUEVfQ0hMQVlPVVQ6Cj4gKyNpZiBGRl9BUElfT0xEX0NIQU5ORUxfTEFZT1VUCj4gK0ZGX0RJ U0FCTEVfREVQUkVDQVRJT05fV0FSTklOR1MKPiArICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQ RV9DSEFOTkVMX0xBWU9VVDoKPiArRkZfRU5BQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTCj4gKyNl bmRpZgo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAi JS0xMnMgIiwgIjxjaGFubmVsX2xheW91dD4iKTsKPiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0JPT0w6Cj4gKyAgICAgICAgICAgICAgICBh dl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlLTEycyAiLCAiPGJvb2xlYW4+Iik7Cj4g KyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9D T05TVDoKPiArICAgICAgICAgICAgICAgIGlmIChwYXJlbnRfdHlwZSA9PSBBVl9PUFRfVFlQRV9J TlQpCj4gKyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZP LCAiJS0xMiJQUklkNjQiICIsIG9wdC0+ZGVmYXVsdF92YWwuaTY0KTsKPiArICAgICAgICAgICAg ICAgIGVsc2UKPiArICAgICAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9H X0lORk8sICIlLTEycyAiLCAiIik7Cj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAg ICAgICAgZGVmYXVsdDoKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9M T0dfSU5GTywgIiUtMTJzICIsICIiKTsKPiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAg ICAgIH0KPiArCj4gKyAgICAgICAgaWYgKG9wdC0+aGVscCkKPiArICAgICAgICAgICAgYXZfbG9n KGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiICVzIiwgb3B0LT5oZWxwKTsKPiArCj4gKyAgICAg ICAgaWYgKGF2X29wdF9xdWVyeV9yYW5nZXMoJnIsIG9iaiwgb3B0LT5uYW1lLCBBVl9PUFRfU0VB UkNIX0ZBS0VfT0JKKSA+PSAwKSB7Cj4gKyAgICAgICAgICAgIHN3aXRjaCAob3B0LT50eXBlKSB7 Cj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfSU5UOgo+ICsgICAgICAgICAgICBjYXNl IEFWX09QVF9UWVBFX0lOVDY0Ogo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX1VJTlQ2 NDoKPiArICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9ET1VCTEU6Cj4gKyAgICAgICAgICAg IGNhc2UgQVZfT1BUX1RZUEVfRkxPQVQ6Cj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVf UkFUSU9OQUw6Cj4gKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgci0+bmJfcmFuZ2Vz OyBpKyspIHsKPiArICAgICAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9H X0lORk8sICIgKGZyb20gIik7Cj4gKyAgICAgICAgICAgICAgICAgICAgbG9nX3ZhbHVlKGF2X2xv Z19vYmosIEFWX0xPR19JTkZPLCByLT5yYW5nZVtpXS0+dmFsdWVfbWluKTsKPiArICAgICAgICAg ICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIgdG8gIik7Cj4gKyAg ICAgICAgICAgICAgICAgICAgbG9nX3ZhbHVlKGF2X2xvZ19vYmosIEFWX0xPR19JTkZPLCByLT5y YW5nZVtpXS0+dmFsdWVfbWF4KTsKPiArICAgICAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9n X29iaiwgQVZfTE9HX0lORk8sICIpIik7Cj4gKyAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAg ICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICBhdl9vcHRfZnJl ZXBfcmFuZ2VzKCZyKTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIGlmIChvcHQtPnR5cGUg IT0gQVZfT1BUX1RZUEVfQ09OU1QgICYmCj4gKyAgICAgICAgICAgIG9wdC0+dHlwZSAhPSBBVl9P UFRfVFlQRV9CSU5BUlkgJiYKPiArICAgICAgICAgICAgICAgICEoKG9wdC0+dHlwZSA9PSBBVl9P UFRfVFlQRV9DT0xPUiAgICAgIHx8Cj4gKyAgICAgICAgICAgICAgICAgICBvcHQtPnR5cGUgPT0g QVZfT1BUX1RZUEVfSU1BR0VfU0laRSB8fAo+ICsgICAgICAgICAgICAgICAgICAgb3B0LT50eXBl ID09IEFWX09QVF9UWVBFX1NUUklORyAgICAgfHwKPiArICAgICAgICAgICAgICAgICAgIG9wdC0+ dHlwZSA9PSBBVl9PUFRfVFlQRV9ESUNUICAgICAgIHx8Cj4gKyAgICAgICAgICAgICAgICAgICBv cHQtPnR5cGUgPT0gQVZfT1BUX1RZUEVfQ0hMQVlPVVQgICB8fAo+ICsgICAgICAgICAgICAgICAg ICAgb3B0LT50eXBlID09IEFWX09QVF9UWVBFX1ZJREVPX1JBVEUpICYmCj4gKyAgICAgICAgICAg ICAgICAgICFvcHQtPmRlZmF1bHRfdmFsLnN0cikpIHsKPiArICAgICAgICAgICAgYXZfbG9nKGF2 X2xvZ19vYmosIEFWX0xPR19JTkZPLCAiIChkZWZhdWx0ICIpOwo+ICsgICAgICAgICAgICBzd2l0 Y2ggKG9wdC0+dHlwZSkgewo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0JPT0w6Cj4g KyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlcyIsIChj aGFyICopYXZfeF9pZl9udWxsKGdldF9ib29sX25hbWUob3B0LT5kZWZhdWx0X3ZhbC5pNjQpLCAi aW52YWxpZCIpKTsKPiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICBjYXNl IEFWX09QVF9UWVBFX0ZMQUdTOiB7Cj4gKyAgICAgICAgICAgICAgICBjaGFyICpkZWZfZmxhZ3Mg PSBnZXRfb3B0X2ZsYWdzX3N0cmluZyhvYmosIG9wdC0+dW5pdCwgb3B0LT5kZWZhdWx0X3ZhbC5p NjQpOwo+ICsgICAgICAgICAgICAgICAgaWYgKGRlZl9mbGFncykgewo+ICsgICAgICAgICAgICAg ICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgIiVzIiwgZGVmX2ZsYWdzKTsK PiArICAgICAgICAgICAgICAgICAgICBhdl9mcmVlcCgmZGVmX2ZsYWdzKTsKPiArICAgICAgICAg ICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmos IEFWX0xPR19JTkZPLCAiJSJQUklYNjQsIG9wdC0+ZGVmYXVsdF92YWwuaTY0KTsKPiArICAgICAg ICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICB9Cj4g KyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfRFVSQVRJT046IHsKPiArICAgICAgICAgICAg ICAgIGNoYXIgYnVmWzI1XTsKPiArICAgICAgICAgICAgICAgIGZvcm1hdF9kdXJhdGlvbihidWYs IHNpemVvZihidWYpLCBvcHQtPmRlZmF1bHRfdmFsLmk2NCk7Cj4gKyAgICAgICAgICAgICAgICBh dl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlcyIsIGJ1Zik7Cj4gKyAgICAgICAgICAg ICAgICBicmVhazsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9U WVBFX0lOVDoKPiArICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9VSU5UNjQ6Cj4gKyAgICAg ICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfSU5UNjQ6IHsKPiArICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKmRlZl9jb25zdCA9IGdldF9vcHRfY29uc3RfbmFtZShvYmosIG9wdC0+dW5pdCwgb3B0 LT5kZWZhdWx0X3ZhbC5pNjQpOwo+ICsgICAgICAgICAgICAgICAgaWYgKGRlZl9jb25zdCkKPiAr ICAgICAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlcyIs IGRlZl9jb25zdCk7Cj4gKyAgICAgICAgICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgICAg ICAgbG9nX2ludF92YWx1ZShhdl9sb2dfb2JqLCBBVl9MT0dfSU5GTywgb3B0LT5kZWZhdWx0X3Zh bC5pNjQpOwo+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgIH0KPiArICAg ICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9ET1VCTEU6Cj4gKyAgICAgICAgICAgIGNhc2UgQVZf T1BUX1RZUEVfRkxPQVQ6Cj4gKyAgICAgICAgICAgICAgICBsb2dfdmFsdWUoYXZfbG9nX29iaiwg QVZfTE9HX0lORk8sIG9wdC0+ZGVmYXVsdF92YWwuZGJsKTsKPiArICAgICAgICAgICAgICAgIGJy ZWFrOwo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX1JBVElPTkFMOiB7Cj4gKyAgICAg ICAgICAgICAgICBBVlJhdGlvbmFsIHEgPSBhdl9kMnEob3B0LT5kZWZhdWx0X3ZhbC5kYmwsIElO VF9NQVgpOwo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKGF2X2xvZ19vYmosIEFWX0xPR19JTkZP LCAiJWQvJWQiLCBxLm51bSwgcS5kZW4pOyB9Cj4gKyAgICAgICAgICAgICAgICBicmVhazsKPiAr ICAgICAgICAgICAgY2FzZSBBVl9PUFRfVFlQRV9QSVhFTF9GTVQ6Cj4gKyAgICAgICAgICAgICAg ICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9HX0lORk8sICIlcyIsIChjaGFyICopYXZfeF9pZl9u dWxsKGF2X2dldF9waXhfZm10X25hbWUob3B0LT5kZWZhdWx0X3ZhbC5pNjQpLCAibm9uZSIpKTsK PiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBF X1NBTVBMRV9GTVQ6Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwgQVZfTE9H X0lORk8sICIlcyIsIChjaGFyICopYXZfeF9pZl9udWxsKGF2X2dldF9zYW1wbGVfZm10X25hbWUo b3B0LT5kZWZhdWx0X3ZhbC5pNjQpLCAibm9uZSIpKTsKPiArICAgICAgICAgICAgICAgIGJyZWFr Owo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0NPTE9SOgo+ICsgICAgICAgICAgICBj YXNlIEFWX09QVF9UWVBFX0lNQUdFX1NJWkU6Cj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZ UEVfU1RSSU5HOgo+ICsgICAgICAgICAgICBjYXNlIEFWX09QVF9UWVBFX0RJQ1Q6Cj4gKyAgICAg ICAgICAgIGNhc2UgQVZfT1BUX1RZUEVfVklERU9fUkFURToKPiArICAgICAgICAgICAgY2FzZSBB Vl9PUFRfVFlQRV9DSExBWU9VVDoKPiArICAgICAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2Jq LCBBVl9MT0dfSU5GTywgIlwiJXNcIiIsIG9wdC0+ZGVmYXVsdF92YWwuc3RyKTsKPiArICAgICAg ICAgICAgICAgIGJyZWFrOwo+ICsjaWYgRkZfQVBJX09MRF9DSEFOTkVMX0xBWU9VVAo+ICtGRl9E SVNBQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTCj4gKyAgICAgICAgICAgIGNhc2UgQVZfT1BUX1RZ UEVfQ0hBTk5FTF9MQVlPVVQ6Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2coYXZfbG9nX29iaiwg QVZfTE9HX0lORk8sICIweCUiUFJJeDY0LCBvcHQtPmRlZmF1bHRfdmFsLmk2NCk7Cj4gKyAgICAg ICAgICAgICAgICBicmVhazsKPiArRkZfRU5BQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTCj4gKyNl bmRpZgo+ICsgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgIGF2X2xvZyhhdl9sb2dfb2JqLCBB Vl9MT0dfSU5GTywgIikiKTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIGF2X2xvZyhhdl9s b2dfb2JqLCBBVl9MT0dfSU5GTywgIlxuIik7Cj4gKyAgICAgICAgaWYgKG9wdC0+dW5pdCAmJiBv cHQtPnR5cGUgIT0gQVZfT1BUX1RZUEVfQ09OU1QpCj4gKyAgICAgICAgICAgIGFyZ19saXN0KG9i aiwgYXZfbG9nX29iaiwgb3B0LT51bml0LCBvcHQtPnR5cGUpOwo+ICsgICAgfQo+ICt9Cj4gKwoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1k ZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcu b3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQg bGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRo IHN1YmplY3QgInVuc3Vic2NyaWJlIi4K