From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 9A4D44CD28 for <ffmpegdev@gitmailbox.com>; Wed, 28 May 2025 11:28:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 31ABD68D480; Wed, 28 May 2025 14:28:10 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2106.outbound.protection.outlook.com [40.92.89.106]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 2F9A068CA0E for <ffmpeg-devel@ffmpeg.org>; Wed, 28 May 2025 14:28:03 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=II58L49gClCfNUojL6HDRCI0B2EDeWFMU9cXcsC6kzw+5P3i0dJUcLy491U7OtnzmU8uHHHVnXNTlzcOEQ/lNE/58vNufSCzfPnee0mBmxo+4LuPHX1h8nuCectl8dpMyu0CXquASCHpI4b+vHeR4MYdLyyZNOuXCJTRMVSAjf30Pl4hhsVwLHg8HHsVfzdr5WKrmoz0JVs5jmQ61D7iKybSGscXZsHYrCE1/p7bYEqx2yecgebhRIOgWjgoys3qpB7TA6K+HlYBd2ddLe0dIYeVIUM4JmJecDr2ejdDKKNjgDc+nLgDW7+lLCoDgu82kAiJD8Yqxgnw5fyKWhTUKg== 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=aCSOlA0u4haZFbAPfjsQVElyHPtjWuL4h2lfOKl/uCc=; b=hgB40posIPqexmK8uS+61xLIVcsWNV7lC81/VgUjxLJnOmRwFaLyXaNN3A/88X6pINvHSDec/pOlxTew7JSyK7OSyUVi4fswKZ7BIyFKSwM7sWjt5pCyV/R/w1+lKazlb95mbV099hzlsmhxi1cjmzCQOjPSjJ74xQMYYqCTHRS16YiyUsnCAahR2AyQu7mLFTDOGweQsttWWhncn/YEOxO65lkVoo6uPYAXuwgRvINXv8YalSBvlnKMJixjJvFqqUuZ5MkN0vhuPy17a0ER+DCDEP/OSBrypMlER0hLn5yCpGgatYmdnspZMPG6b7zWHNreh2+Uuort4DDNYmZZdg== 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=aCSOlA0u4haZFbAPfjsQVElyHPtjWuL4h2lfOKl/uCc=; b=d8RtE2VO4nc9Hz2FRu5P4W+RB9UO3jnYlKHf8NCkNpCiW+NaoigNfl0wmyMY2IINbJJpLkmYLHCm/w52dJFKlQ4UhVxsBKkDZgXkgrwJa65M1NNQqqwzjgEOH72Iwj8AUDJQ6q3SQ2VhQHz1AifCFR3iwJvcmQS045yt49udTfHmQmDCLeo0O3Z56Z0gAlYNJ/MSVJAfYQY1OzCIfl46/VHCUFx9m/YSCNzbp5DJ5FsyfBf1Qb3qZ+QTwfLbriZ3ZZMEFneiuxeHHBa0T1mfQcxoLVj+rq33HPOqkYRlLY69HSQg0EHL5/d755SOyo6YmA2HgV+8m6vBD+oSNabTJw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PAXP250MB0625.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:28b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.29; Wed, 28 May 2025 11:28:01 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%4]) with mapi id 15.20.8769.019; Wed, 28 May 2025 11:28:01 +0000 Message-ID: <GV1P250MB07379ECF2EB48D156B3CB5638F67A@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> Date: Wed, 28 May 2025 13:27:59 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <MEYP282MB18784DCA03D764E54E08FC8D88BB2@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM> <AS8P250MB0744B9A650221901E60022778F842@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM> <MEYP282MB1878FF228716762A576B6BD38865A@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM> Content-Language: en-US From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> In-Reply-To: <MEYP282MB1878FF228716762A576B6BD38865A@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM> X-ClientProxiedBy: FR4P281CA0190.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ca::15) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <9c063a45-e3d0-447d-98c8-337a0cacacac@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PAXP250MB0625:EE_ X-MS-Office365-Filtering-Correlation-Id: 1a2ec8db-9560-4f26-b8be-08dd9ddab457 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmoaApi1aWVt9ILKZbGoHsd6QdPSUZcG+jpZ71gr/Ksi1DNkSnAa9cFmlTc8wXZX0bd4U1q44QNtnOS4u824mP0GAVxJjv6NoG0xEFjuJoe9jF/DoHrwbusUf7/N8d+Nvay7YEr2JO/C9l6iJlT5/6ygSddYNjKlL8mX580mJdAXK9mhuoVilQPwH2nMe2quX6Kj6KCds4kR0AKmmKsSd0tANS1qLbz8ZPQ/TM4BWX6Ff8PoxjdQrx0kNzrTD0posWDircwRQYBDTQJhljdN7gMiZoheY3kpX4cvwq+IinX4mIXSwvp7FP4XHKl6TIHGptgKFL4OQFBG+2m/iza888xsDbJC1JpkCrBmNS1nfmaA8wXLVte1M4UiOSN937WrIK/YnobHX4bvlksne87Q1V6PaJ+87wQGTkj5G6/J/42KGpTfmGYux6jdFqIGEzDTqFtZhVWWA+0JnKyO8tF9F9NxIt5tthaJznb2rnCkKY/C6fZ9nZg886MncbKkbeal87XO/v78Ut8anRenUQUec5AaOWxR1kb5hYe+0M4R6Bi0rg6zgoytxBWW/Ehc3blPi0HmIxivRWBQfcAXWy98ZqTitt8KJR/oYXk/2VqQcWBnfoBEU+oXNIZxfRivLjrqUIcMzE5HH5Lj3WqPQDxa8LQFtxDgkqSOzre2E+FMyGbe7VWuhXpeRyK67Wmfe+j5LV7slyw2AnSQkU42eohpSq+cM7wUxifq7lKUvxTcMT9Uk+HdvZ8RD2r/UBQOOam9ClI= X-Microsoft-Antispam: BCL:0; ARA:14566002|6090799003|5072599009|7092599006|15080799009|19110799006|41001999006|8060799009|461199028|440099028|3412199025|12091999003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?aFMzKytONWM2VHlPNDJmQ3ErWW5MWGx2cmlDSkRmamlZamRIVmp6Y0UrdkNq?= =?utf-8?B?dlNBc0lLRVd6aVZGbkN4MHFQdDlxTGxHVEFOcWRQdnN4M1FwYnpYRnZNTXZY?= =?utf-8?B?MCtLQzM3eU1TYVFTWTc2RmI2MGNGL3A0eWhaSmdQd01EczkvaS9ueTlHczdT?= =?utf-8?B?YURvNlVxeTZ5QTBFT2dpOUtMRmUxL2l0SkFKS0JqK3M5cFFtcEhTQ2YrZlBH?= =?utf-8?B?QkpDOGE4clZDZUhLSWtNdnE1QlNBRUR2c2JJai9Zbk1ZUWZsYmFUSDhrVzdT?= =?utf-8?B?M2ZCN0tmUkd0NG5DQnR2clhDcU5XbTRScTR4d0w5cHBLMURqaXpVbUNXcDZl?= =?utf-8?B?SUhEbVBYZXlGUVBoMisyNHZLWEdMcy8wakF0Q1pGaWx0LzU3UlBMVjlNV2E0?= =?utf-8?B?R3gwUHFqUEp0MGRuc2NzT0tIK1lld1pmK1NJVVRjM0tMNUpwNnhyeW9jSkhM?= =?utf-8?B?MW9GWHIyTHFVVUtMcDdCdmVoNHU2TTZ4QWd6RkpBbHJCUVhKNUFuRDlza2oz?= =?utf-8?B?SGh5NGluVUV0bE9qY0hQNjQxRjJuSUFYdUhEUFVlWTVleVF4aWlORFFvZmxW?= =?utf-8?B?OEh0YjRFK2gxQ1RjWENjb3h4ZGE3NXhDa1dMYkZVd0RzSm9wakJBd2FPZm90?= =?utf-8?B?UXhWRnplQndMZVYvdGIyaE5ubm00SENZd09jMVVQQlBsWGpSd0pocVR5UXdl?= =?utf-8?B?eVplV0U4Y1lYRDlJcnVJaEFOQ3RjaTFadVNBWnl0VWxpamVUWU9rT0ZaSVVX?= =?utf-8?B?d09MNERrU1p5N29sSTZENHJrV1JhZ0F3QzlxTUR6NXh3ZSswdUpJeUE2TDds?= =?utf-8?B?KzQzdGkwMG4xK05mekkzbjRsUnhPejJ3Vm1jYkRidFRrSHJHV1dxR2ZIT0NO?= =?utf-8?B?OGZjaVpvNFZKUGNtRzFwRzZaenRuTWhOU1RaMCtDWFhHa1p6NnVVMDVWZ0Fo?= =?utf-8?B?MDlPbHlQeXJQeE1vWVpyWVJZU3EweTgyVWpjd2JtSm1HMmhiekUybnBxQldr?= =?utf-8?B?NVdoNTQvSWhFb1lwVUVpdTUzMzYwVWx1VmM2RTNTYjVsd0c3UmRNRGhmZUZs?= =?utf-8?B?TnZiak9VcW1nSVJBczFLQUJKRjd4K2VuR2hPeDBqc3NRM05NdGxobVR2aVR5?= =?utf-8?B?d0NBZjdMTktNdEZxczRnZEs0eFB6OSs3bE55TjBncXFDWjBBcERuNk5FN0Nt?= =?utf-8?B?WGRWYmIxRFBML1BMRThZcnhnOE1rVy9XbzFKa0NDUDJ2d2NOaDc3VlFRaGNQ?= =?utf-8?B?ajZNOGlLNjR2MzZDR0VrYjF3WW55QnRJUWJiZXZsOWlzYVdWN0xzdTRFOUFY?= =?utf-8?B?VWZWZWNBa1VEakN0WmsySFdtUVNtWTV0R09qTWc3bWtHb3hkY2l1SWVaK1Zq?= =?utf-8?B?Y2RoWXhUN0plTTNBYkNreGxXdVFJZ3lDT2djdElaV2VXU3kzc0I2dmw4cTBT?= =?utf-8?B?T1FLaWY5Q0FhWEhCNWlSK2gzQzhXWmwreXpwTitiVGExelRBaDI3cHdtb21V?= =?utf-8?B?Z0FTaDFuV2xWZkVVR3RwaDFoMWo3QmYvLzNYR3lHdEkwWFUvSGo0Yklucytx?= =?utf-8?B?R0ZrTVhwS09ra2FFd0I2R2IvLzdhUlNiUGlsZDFVYXVTT1ArL3ZRT0U1YVZD?= =?utf-8?B?QndoTmF0aVByVFlGaTZzb0FCYlpscHc9PQ==?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y2RodWFZQWRLSm5wNWJ3MU53Y0FHM2l0OCtRbk43cjV4dkFHMWFvbXdBeG9w?= =?utf-8?B?ekRwNzJSVDVpaDV6SW4ya3U5bGZLUEw0Z0xhKy8xOFh2dXJLZHo3em9rRlRB?= =?utf-8?B?bmFSVDZpeXVrSHdSUDVqSml2NC9TSzFHRVc2OU5rbk1abk5RYUZkSlAxa3hE?= =?utf-8?B?MklRYmcrOTdEdGVQUU5RdUwvUXVZOVVzTnN2ZEZiVUNINDRQWkw2M0pSYTFx?= =?utf-8?B?TUgwYm4xeitZYnU2TGlXTWpUeDNENXlqd082M0hZR0cxbHJTTy8walpoSlg5?= =?utf-8?B?cHJQZTAyd285RUNwSlFSSndOczJHL1ZxR2pCN3VVbVdVOUtibkhjaHFsUGZL?= =?utf-8?B?STFEdWI1TlRPbGZTOGpwQnZZSW9FNUNCMEVsUFhCNHFkTHB2REIycjJ3Y1Jz?= =?utf-8?B?ajNFeVYyYXkrWWdPamRhWW5IazJMR1NCcmkxaTBIZDBJcGlFbTBEcHB5b01Z?= =?utf-8?B?emNHSmduL2xNYVl2REwrNXVoZlBiWU5YRExjK3dzbWt6elRESUpiU3gxQ25p?= =?utf-8?B?YlRuemgySjJsamNVTXJxdkhTdzhobGI0c3plQzlEQjR4Y1I4UmFaNTBwbmlO?= =?utf-8?B?allnenZPTlI0Mjh6cWlNaGFHMlVxRzBWb3JDcU5tdUp2bndvWVZWNzJFL21N?= =?utf-8?B?MXBRTVFVSDdscXd3NWZNdlh2VVF1U3lnbXZkN3pXOTMyeHo3NGlUZEIwVm1D?= =?utf-8?B?amFVcXJJZ2o4Z2xKQmNpcUViRU52eTh3WG4rbW1BZ0hncU5xNXBDWWlBVTFF?= =?utf-8?B?Skc1Ym5UN1c4bTB0bm1nZlFJMkJ2VEdmc1pEZE14aFUxc1MyZklaWDEzU2Zi?= =?utf-8?B?Q1BWaUdCWGp2MDdheTFnN2NRSG9JOE1mbEQ0VWx4bmtwamJneEp5dE1lRGVT?= =?utf-8?B?WUpOYXRIekNhTVBwM3RXT0RhZUFJVDltZHEyQjMwMGFBaGwxdTF1M0paem9H?= =?utf-8?B?bzVreXV5OE1lcjJJcXY0aTU2NkNMVVlYSHVrSjNBZ0l3M25zdkRab0hmMVJ4?= =?utf-8?B?S0JjUDBjZTJTYWNybkIzSldwYjBBd0kxMWhkU3pZWVQrby82WmdzbHFMVzBr?= =?utf-8?B?Wnpndy81SjRmekVVU1hCdjNVV01uQ05NSGNEYStzaXljMy9CNDdhenJzV29G?= =?utf-8?B?dmZvRUw3U2pzY2J6dVBseXY3OVBhaWwzelhYbUlkS2VmNXZFUE9Ba2FpOHBF?= =?utf-8?B?RmpOOW9ndlhGSTREbjAwUE5IWXdSdEVHYkNXY1k5MmplK2RjMVU1N2V5NDdU?= =?utf-8?B?b2x2UVZJVWNmbHYxQ3NDYjZDblM4L1VIWHpvdDlYTWZoRWNPYkRwSDUrN1lt?= =?utf-8?B?WXl0NGttSkxSc09rbXFFRzNzM1NjWXJLdXdTQWVDeHR4VkdPak5iRjZyMFFh?= =?utf-8?B?dXg1QTkwRExDTkJEcTNablQ4amhmWXhWZHU5a05PL3dBU3d0MStMTHRCenVa?= =?utf-8?B?d05pa3doTkRYZ1plYjFVZkoyRGhad1RJdXZGOGFuQWZWVWQ5RUExRWpDYU5J?= =?utf-8?B?T2dSWHZCSVhnZGFiYzc5Nm5yYzQwK0t6SzBvYnZrUjV1YlBTVzFEYlBhM2tw?= =?utf-8?B?UUVPVDZjR20yeFZQZUU2K1FDc0I0R05GelBkbDk3UkgzR2JJUDZITGhhT3E5?= =?utf-8?B?dWQ1RmhJdDdvRklpOCtKaXdSbHFMdXpFa3dxVE5xQ3hicStDeVlKZkg3cUQr?= =?utf-8?B?Rml0ZGJjZzNqQ0srOTJJRGVBdE1QSCtxMm5BdHVVZS9MLzlZUUo2L2lHaU1P?= =?utf-8?Q?I5ecBCd+lMuo+r4wHUOdq3QGNdwVWUVtdX4Wpgs?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a2ec8db-9560-4f26-b8be-08dd9ddab457 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2025 11:28:01.3949 (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: PAXP250MB0625 Subject: Re: [FFmpeg-devel] =?utf-8?b?5Zue5aSNOiBbUEFUQ0hdIGF2ZmlsdGVyOiBh?= =?utf-8?q?dd_PCM_dumping_between_filters_for_audio_debugging?= 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/GV1P250MB07379ECF2EB48D156B3CB5638F67A@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> RmFuZyBZaWJvOgo+IFJlOiBbRkZtcGVnLWRldmVsLHYyLDAvMl0gYXZmaWx0ZXI6IGFkZCBQQ00g ZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1ZGlvIGRlYnVnZ2luZwo+IAo+IEZyb206IFlp Ym8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4KPiBTdWJqZWN0OiBbRkZtcGVnLWRldmVs LHYyLDAvMl0gYXZmaWx0ZXI6IGFkZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1 ZGlvIGRlYnVnZ2luZwo+IERhdGU6IFdlZCwgMjMgQXByIDIwMjUgMTA6NTc6MDAgKzA4MDAKPiBN ZXNzYWdlLUlkOiA8Y292ZXIuMC4yQGZmbXBlZz4KPiAKPiBUaGlzIHNlcmllcyBhZGRzIGEgZGVi dWdnaW5nIGZlYXR1cmUgdGhhdCBsZXRzIGRldmVsb3BlcnMgZHVtcCByYXcKPiBQQ00gYXVkaW8g YmV0d2VlbiBmaWx0ZXJzLiAgVGhlIGRhdGEgYXJlIHdyaXR0ZW4gdG8gZmlsZXMgaW4gYSB1c2Vy LQo+IHNlbGVjdGVkIGRpcmVjdG9yeSB2aWEgdHdvIG5ldyBjb21tYW5kczoKPiAKPiAgICAgZHVt cF9yYXdfc3RhcnQgZmlsZT0vcGF0aC90by9kaXIvCj4gICAgIGR1bXBfcmF3X3N0b3AKPiAKPiBQ bGFuYXIgYXVkaW8gaXMgYXV0b21hdGljYWxseSBpbnRlcmxlYXZlZDsgb25seSBhdWRpbyBsaW5r cyBhcmUKPiBhZmZlY3RlZC4gIFBhdGNoIDEvMiBpbXBsZW1lbnRzIHRoZSBmZWF0dXJlLCBwYXRj aCAyLzIgZG9jdW1lbnRzIGl0Lgo+IAo+IFJlZ2FyZHMsCj4gWWlibyBGYW5nCj4gCj4gLS0tCj4g Cj4gRnJvbSAyZGY1NmU3NDI3M2Q0NzdhZTI3MDAzZTA5ODEyMjA3NDlhNmI1OGNmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQo+IEZyb206IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNv bT4KPiBEYXRlOiBXZWQsIDIzIEFwciAyMDI1IDEwOjU4OjU1ICswODAwCj4gU3ViamVjdDogW1BB VENIIDEvMl0gYXZmaWx0ZXI6IGFkZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1 ZGlvCj4gIGRlYnVnZ2luZwo+IAo+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBQQ00gZHVtcGluZyBz dXBwb3J0IGJldHdlZW4gQVZGaWx0ZXIgbGlua3MsCj4gaW50ZW5kZWQgZm9yIGF1ZGlvIGRlYnVn Z2luZyBhbmQgZmlsdGVyLWdyYXBoIGluc3BlY3Rpb24uCj4gCj4gVHdvIGZpbHRlciBjb21tYW5k cyBhcmUgYWRkZWQ6Cj4gCj4gICAgIGR1bXBfcmF3X3N0YXJ0IGZpbGU9L3BhdGgvdG8vb3V0cHV0 L2Rpci8KPiAgICAgZHVtcF9yYXdfc3RvcAo+IAo+IFdoZW4gZHVtcGluZyBpcyBlbmFibGVkLCBh dWRpbyBsZWF2aW5nIHRoZSBzZWxlY3RlZCBmaWx0ZXIgb3V0cHV0IGlzCj4gd3JpdHRlbiB0byBh biBhdXRvbWF0aWNhbGx5IG5hbWVkIGZpbGU6Cj4gCj4gICAgIDxzcmNfZmlsdGVyPi08ZHN0X2Zp bHRlcj4ucGNtCj4gCj4gUGxhbmFyIGZvcm1hdHMgYXJlIGNvbnZlcnRlZCB0byBwYWNrZWQuICBG aWxlIGRlc2NyaXB0b3JzIGFyZSBvcGVuZWQKPiBvbiBkZW1hbmQgYW5kIGNsb3NlZCBhdXRvbWF0 aWNhbGx5LiAgV29ya3Mgb25seSBvbiBhdWRpbyBsaW5rcy4KPiAKPiBFeGFtcGxlIChDIEFQSSk6 Cj4gICAgIGF2ZmlsdGVyX3Byb2Nlc3NfY29tbWFuZChmaWx0ZXIsICJkdW1wX3Jhd19zdGFydCIs Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZT0vdG1wLyIsIE5VTEwsIDAsIDAp Owo+IAo+IFNpZ25lZC1vZmYtYnk6IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4K PiAtLS0KPiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDE0NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICBsaWJhdmZpbHRlci9hdmZpbHRlci5oIHwgICA1ICsr Cj4gIDIgZmlsZXMgY2hhbmdlZCwgMTQ5IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEv bGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMKPiBpbmRleCA2 NGMxMDc1YzQwLi5iNzAzNDU2OWRiIDEwMDY0NAo+IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVy LmMKPiArKysgYi9saWJhdmZpbHRlci9hdmZpbHRlci5jCj4gQEAgLTE5LDYgKzE5LDkgQEAKPiAg ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAwMjExMC0xMzAxIFVTQQo+ICAgKi8KPiAKPiArI2luY2x1ZGUgPGZjbnRsLmg+Cj4g KyNpbmNsdWRlIDx1bmlzdGQuaD4KPiArCj4gICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQu aCIKPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgo+ICAjaW5jbHVkZSAibGliYXZ1 dGlsL2JwcmludC5oIgo+IEBACj4gICAgICByZXR1cm4gMDsKPiAgfQo+IAo+ICsvKiAtLS0tLS0t LS0tIFBDTSBkdW1wIGhlbHBlcnMgLS0tLS0tLS0tLSAqLwo+ICsKPiArc3RhdGljIGF2X2NvbGQg dm9pZCBsaW5rX3VuaW5pdF9kdW1wX3BjbShBVkZpbHRlckxpbmsgKmxpbmspCj4gK3sKPiArICAg IGlmIChsaW5rLT5kdW1wX3BjbV9mZHMpIHsKPiArICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw OyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRzOyBpKyspCj4gKyAgICAgICAgICAgIGlmIChsaW5r LT5kdW1wX3BjbV9mZHNbaV0gPj0gMCkKPiArICAgICAgICAgICAgICAgIGNsb3NlKGxpbmstPmR1 bXBfcGNtX2Zkc1tpXSk7Cj4gKyAgICAgICAgYXZfZnJlZXAoJmxpbmstPmR1bXBfcGNtX2Zkcyk7 Cj4gKyAgICAgICAgbGluay0+bmJfZHVtcF9wY21fZmRzID0gMDsKPiArICAgIH0KPiArICAgIGF2 X2ZyZWVwKCZsaW5rLT5kdW1wX3BjbV9wYXRoKTsKPiArICAgIGxpbmstPmR1bXBfcGNtID0gMDsK PiArfQo+ICsKPiArc3RhdGljIGF2X2NvbGQgaW50IGxpbmtfaW5pdF9kdW1wX3BjbShBVkZpbHRl ckxpbmsgKmxpbmspCj4gK3sKPiArICAgIC8qIGJ1aWxkIGZ1bGwgcGF0aCAiPGRpcj4vPHNyYz4t PGRzdD4ucGNtIiAqLwo+ICsgICAgY29uc3QgY2hhciAqZGlyID0gbGluay0+ZHVtcF9wY21fcGF0 aDsKPiArICAgIGNvbnN0IGNoYXIgKnNlcCA9IGRpcltzdHJsZW4oZGlyKSAtIDFdID09ICcvJyA/ ICIiIDogIi8iOwo+ICsgICAgY2hhciBwYXRoWzQwOTZdOwo+ICsgICAgc25wcmludGYocGF0aCwg c2l6ZW9mKHBhdGgpLCAiJXMlcyUuMTZzLSUuOHMucGNtIiwKPiArICAgICAgICAgICAgIGRpciwg c2VwLCBsaW5rLT5zcmMtPm5hbWUsIGxpbmstPmRzdC0+bmFtZSk7Cj4gKwo+ICsgICAgbGluay0+ bmJfZHVtcF9wY21fZmRzID0gMTsKPiArICAgIGxpbmstPmR1bXBfcGNtX2ZkcyA9IGF2X21hbGxv YyhzaXplb2YoaW50KSk7Cj4gKyAgICBpZiAoIWxpbmstPmR1bXBfcGNtX2ZkcykKPiArICAgICAg ICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICsKPiArICAgIGludCBmZCA9IG9wZW4ocGF0aCwg T19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQyB8IE9fRVhDTCwgMDY0NCk7Cj4gKyAgICBpZiAo ZmQgPCAwKSB7Cj4gKyAgICAgICAgbGlua191bmluaXRfZHVtcF9wY20obGluayk7Cj4gKyAgICAg ICAgcmV0dXJuIEFWRVJST1IoZXJybm8pOwo+ICsgICAgfQo+ICsgICAgbGluay0+ZHVtcF9wY21f ZmRzWzBdID0gZmQ7Cj4gKyAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9MT0dfSU5GTywgIlBDTSBk dW1wIGZpbGU6ICVzXG4iLCBwYXRoKTsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW50IGZpbHRlcl9zZXRfZHVtcF9wY20oQVZGaWx0ZXJDb250ZXh0ICpmLCBjb25zdCBjaGFy ICphcmcsIGludCBzZXQpCj4gK3sKPiArICAgIGNvbnN0IGNoYXIgKnByZWZpeCA9ICJmaWxlPSI7 Cj4gKyAgICBpZiAoIWFyZyB8fCBhdl9zdHJuY2FzZWNtcChhcmcsIHByZWZpeCwgc3RybGVuKHBy ZWZpeCkpKSB7Cj4gKyAgICAgICAgYXZfbG9nKGYsIEFWX0xPR19FUlJPUiwKPiArICAgICAgICAg ICAgICAgImR1bXBfcmF3XyogZXhwZWN0cyBhcmd1bWVudCBmaWxlPS9kaXIvXG4iKTsKPiArICAg ICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+ICsgICAgfQo+ICsgICAgY29uc3QgY2hhciAq ZGlyID0gYXJnICsgc3RybGVuKHByZWZpeCk7Cj4gKwo+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkg PCBmLT5uYl9vdXRwdXRzOyBpKyspIHsKPiArICAgICAgICBBVkZpbHRlckxpbmsgKmwgPSBmLT5v dXRwdXRzW2ldOwo+ICsgICAgICAgIGlmIChsLT50eXBlICE9IEFWTUVESUFfVFlQRV9BVURJTykK PiArICAgICAgICAgICAgY29udGludWU7Cj4gKyAgICAgICAgaWYgKHNldCkgewo+ICsgICAgICAg ICAgICBhdl9mcmVlcCgmbC0+ZHVtcF9wY21fcGF0aCk7Cj4gKyAgICAgICAgICAgIGwtPmR1bXBf cGNtX3BhdGggPSBhdl9zdHJkdXAoZGlyKTsKPiArICAgICAgICAgICAgaWYgKCFsLT5kdW1wX3Bj bV9wYXRoKQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiArICAg ICAgICAgICAgbC0+ZHVtcF9wY20gPSAxOwo+ICsgICAgICAgIH0gZWxzZQo+ICsgICAgICAgICAg ICBsaW5rX3VuaW5pdF9kdW1wX3BjbShsKTsKPiArICAgIH0KPiArICAgIHJldHVybiAwOwo+ICt9 Cj4gKwo+ICsvKiB3cml0ZSBvbmUgZnJhbWUgKi8KPiArc3RhdGljIGludCBsaW5rX2R1bXBfZnJh bWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFtZSkKPiArewo+ICsgICAgaW50IHJl dDsKPiArICAgIGlmICghbGluay0+ZHVtcF9wY21fZmRzICYmCj4gKyAgICAgICAgKHJldCA9IGxp bmtfaW5pdF9kdW1wX3BjbShsaW5rKSkgPCAwKQo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4gKwo+ ICsgICAgY29uc3QgaW50IGNoICAgICA9IGZyYW1lLT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7Cj4g KyAgICBjb25zdCBpbnQgYnBzICAgID0gYXZfZ2V0X2J5dGVzX3Blcl9zYW1wbGUoZnJhbWUtPmZv cm1hdCk7Cj4gKyAgICBjb25zdCBpbnQgbnMgICAgID0gZnJhbWUtPm5iX3NhbXBsZXM7Cj4gKyAg ICBjb25zdCBpbnQgdG90bGVuID0gY2ggKiBucyAqIGJwczsKPiArCj4gKyAgICAvKiBpbnRlcmxl YXZlIHBsYW5hciB0byBwYWNrZWQgaWYgbmVjZXNzYXJ5ICovCj4gKyAgICBpZiAoYXZfc2FtcGxl X2ZtdF9pc19wbGFuYXIoZnJhbWUtPmZvcm1hdCkpIHsKPiArICAgICAgICB1aW50OF90ICpidWYg PSBhdl9tYWxsb2ModG90bGVuKTsKPiArICAgICAgICBpZiAoIWJ1ZikKPiArICAgICAgICAgICAg cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiArICAgICAgICBmb3IgKGludCBzID0gMDsgcyA8IG5z OyBzKyspCj4gKyAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgY2g7IGMrKykKPiArICAg ICAgICAgICAgICAgIG1lbWNweShidWYgKyAocypjaCArIGMpKmJwcywKPiArICAgICAgICAgICAg ICAgICAgICAgICAodWludDhfdCopZnJhbWUtPmV4dGVuZGVkX2RhdGFbY10gKyBzKmJwcywKPiAr ICAgICAgICAgICAgICAgICAgICAgICBicHMpOwo+ICsgICAgICAgIHJldCA9IHdyaXRlKGxpbmst PmR1bXBfcGNtX2Zkc1swXSwgYnVmLCB0b3RsZW4pOwo+ICsgICAgICAgIGF2X2ZyZWUoYnVmKTsK PiArICAgIH0gZWxzZQo+ICsgICAgICAgIHJldCA9IHdyaXRlKGxpbmstPmR1bXBfcGNtX2Zkc1sw XSwgZnJhbWUtPmRhdGFbMF0sIHRvdGxlbik7Cj4gKwo+ICsgICAgaWYgKHJldCA8IDApIHsKPiAr ICAgICAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9MT0dfRVJST1IsICJQQ00gZHVtcCB3cml0ZSBm YWlsZWQ6ICVzXG4iLAo+ICsgICAgICAgICAgICAgICBhdl9lcnIyc3RyKHJldCkpOwo+ICsgICAg ICAgIGxpbmtfdW5pbml0X2R1bXBfcGNtKGxpbmspOwo+ICsgICAgICAgIHJldHVybiByZXQ7Cj4g KyAgICB9Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgbGlua19mcmVl KEFWRmlsdGVyTGluayAqKmxpbmspCj4gIHsKPiBAQAo+IAo+ICBpbnQgYXZmaWx0ZXJfcHJvY2Vz c19jb21tYW5kKEFWRmlsdGVyQ29udGV4dCAqZmlsdGVyLCBjb25zdCBjaGFyICpjbWQsCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYXJnLCBjaGFyICpyZXMsIGlu dCByZXNfbGVuLCBpbnQgZmxhZ3MpCj4gIHsKPiBAQAo+IC0gICAgICAgIGlmIChyZXMgPT0gbG9j YWxfcmVzKQo+IC0gICAgICAgICAgICBhdl9sb2coZmlsdGVyLCBBVl9MT0dfSU5GTywgIiVzIiwg cmVzKTsKPiAtICAgICAgICByZXR1cm4gMDsKPiArICAgICAgICBpZiAocmVzID09IGxvY2FsX3Jl cykKPiArICAgICAgICAgICAgYXZfbG9nKGZpbHRlciwgQVZfTE9HX0lORk8sICIlcyIsIHJlcyk7 Cj4gKyAgICAgICAgcmV0dXJuIDA7Cj4gKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoY21kLCAiZHVt cF9yYXdfc3RhcnQiKSkgewo+ICsgICAgICAgIHJldHVybiBmaWx0ZXJfc2V0X2R1bXBfcGNtKGZp bHRlciwgYXJnLCAxKTsKPiArICAgIH0gZWxzZSBpZiAoIXN0cmNtcChjbWQsICJkdW1wX3Jhd19z dG9wIikpIHsKPiArICAgICAgICByZXR1cm4gZmlsdGVyX3NldF9kdW1wX3BjbShmaWx0ZXIsIGFy ZywgMCk7Cj4gICAgICB9IGVsc2UgaWYoIXN0cmNtcChjbWQsICJlbmFibGUiKSkgewo+ICAgICAg ICAgIHJldHVybiBzZXRfZW5hYmxlX2V4cHIoZmZmaWx0ZXJjdHgoZmlsdGVyKSwgYXJnKTsKPiBA QAo+ICAgICAgLyogLi4uIGV4aXN0aW5nIGNvZGUgLi4uICovCj4gCj4gKyAgICBpZiAobGluay0+ ZHVtcF9wY20gJiYgbGluay0+dHlwZSA9PSBBVk1FRElBX1RZUEVfQVVESU8pIHsKPiArICAgICAg ICByZXQgPSBsaW5rX2R1bXBfZnJhbWUobGluaywgZnJhbWUpOwo+ICsgICAgICAgIGlmIChyZXQg PCAwKQo+ICsgICAgICAgICAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9MT0dfRVJST1IsCj4gKyAg ICAgICAgICAgICAgICAgICAiUENNIGR1bXAgZmFpbGVkIHdpdGggJXNcbiIsIGF2X2VycjJzdHIo cmV0KSk7Cj4gKyAgICB9Cj4gKwo+ICAgICAgbGktPmZyYW1lX2Jsb2NrZWRfaW4gPSBsaS0+ZnJh bWVfd2FudGVkX291dCA9IDA7Cj4gQEAKPiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvYXZmaWx0 ZXIuaCBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmgKPiBpbmRleCBhODlkM2NmNjU4Li4wZDRjOTFi YjZiIDEwMDY0NAo+IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmgKPiArKysgYi9saWJhdmZp bHRlci9hdmZpbHRlci5oCj4gQEAKPiAgICAgIEFWQ2hhbm5lbExheW91dCBjaF9sYXlvdXQ7ICAv Ly88IGNoYW5uZWwgbGF5b3V0IG9mIGN1cnJlbnQgYnVmZmVyCj4gCj4gKyAgICBpbnQgICAgICBk dW1wX3BjbTsgICAgICAgICAgLy8vPCBlbmFibGUgZHVtcGluZyBvbiB0aGlzIGxpbmsKPiArICAg IGludCAgICAgKmR1bXBfcGNtX2ZkczsgICAgICAvLy88IG9uZSBGRCBwZXIgbGluayAoY3VycmVu dGx5IDEpCj4gKyAgICB1bnNpZ25lZCBuYl9kdW1wX3BjbV9mZHM7ICAgLy8vPCBudW1iZXIgb2Yg RkRzCj4gKyAgICBjaGFyICAgICpkdW1wX3BjbV9wYXRoOyAgICAgLy8vPCB1c2VyLXN1cHBsaWVk IGRpcmVjdG9yeQo+ICsKPiAgICAgIC8qKgo+ICAgICAgICogRGVmaW5lIHRoZSB0aW1lIGJhc2Ug dXNlZCBieSB0aGUgUFRTIG9mIHRoZSBmcmFtZXMvc2FtcGxlcwo+ICAgICAgICogd2hpY2ggd2ls bCBwYXNzIHRocm91Z2ggdGhpcyBsaW5rLgo+IC0tCj4gMi4zNC4xCj4gCj4gLS0tCj4gCj4gRnJv bSA4Y2Y3YmZhNTJhMTBiZTg3ZTBmMTdiOTc4MzE1OWIwZTgzZjk2MGY3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQo+IEZyb206IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4KPiBE YXRlOiBXZWQsIDIzIEFwciAyMDI1IDEyOjM4OjAwICswODAwCj4gU3ViamVjdDogW1BBVENIIDIv Ml0gZG9jL2ZpbHRlcnM6IGRvY3VtZW50IGR1bXBfcmF3X3N0YXJ0IGFuZCBkdW1wX3Jhd19zdG9w Cj4gIGNvbW1hbmRzCj4gCj4gU2lnbmVkLW9mZi1ieTogWWlibyBGYW5nIDxibHVleWJmNzc3QG91 dGxvb2suY29tPgo+IC0tLQo+ICBkb2MvZmlsdGVycy50ZXhpIHwgNDUgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDEgZmlsZSBjaGFuZ2VkLCA0NSBpbnNl cnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RvYy9maWx0ZXJzLnRleGkgYi9kb2MvZmlsdGVy cy50ZXhpCj4gaW5kZXggNDViM2UwM2U1ZS4uNmEyZDIzZGYzZiAxMDA2NDQKPiAtLS0gYS9kb2Mv ZmlsdGVycy50ZXhpCj4gKysrIGIvZG9jL2ZpbHRlcnMudGV4aQo+IEBACj4gIEBzZWN0aW9uIGFk dW1wcGNtCj4gCj4gIER1bXAgcmF3IFBDTSBhdWRpbyBkYXRhIGZvciBkZWJ1Z2dpbmcgYmV0d2Vl biBmaWx0ZXJzLgo+IAo+ICBUaGlzIGZpbHRlciBhbGxvd3Mgd3JpdGluZyByYXcgYXVkaW8gZGF0 YSB0byBkaXNrIGZyb20gYW55IGF1ZGlvIGxpbmsKPiAgaW4gdGhlIGZpbHRlcmdyYXBoIGZvciBp bnNwZWN0aW9uLiBJdCBzdXBwb3J0cyBwbGFuYXIgYW5kIHBhY2tlZCBmb3JtYXRzLAo+ICBhdXRv bWF0aWNhbGx5IGludGVybGVhdmluZyBwbGFuYXIgZGF0YSBmb3Igd3JpdGluZy4KPiAKPiAgQHN1 YnNlY3Rpb24gU3ludGF4Cj4gCj4gIEBleGFtcGxlCj4gIGR1bXBfcmF3X3N0YXJ0PWZpbGU9L3lv dXIvZHVtcC9kaXJlY3RvcnkvCj4gIEBlbmQgZXhhbXBsZQo+IAo+ICBAc3Vic2VjdGlvbiBVc2Fn ZQo+IAo+ICBUbyBlbmFibGUgZHVtcGluZywgdXNlIHRoZSBAY29kZXtkdW1wX3Jhd19zdGFydH0g Y29tbWFuZDoKPiAKPiAgQGV4YW1wbGUKPiAgZmZtcGVnIC1pIGlucHV0LndhdiAtYWYgInZvbHVt ZSxhc2VuZGNtZD0nMC4wIGR1bXBfcmF3X3N0YXJ0IGZpbGU9L3RtcC9wY20vJyIgLWYgbnVsbCAt Cj4gIEBlbmQgZXhhbXBsZQo+IAo+ICBUbyBzdG9wIGR1bXBpbmc6Cj4gCj4gIEBleGFtcGxlCj4g IGFzZW5kY21kPSc1LjAgZHVtcF9yYXdfc3RvcCcKPiAgQGVuZCBleGFtcGxlCj4gCj4gIEBzdWJz ZWN0aW9uIE9wdGlvbnMKPiAKPiAgQHRhYmxlIEBvcHRpb24KPiAgQGl0ZW0gZmlsZQo+ICBTcGVj aWZ5IGEgZGlyZWN0b3J5IHBhdGggKG5vdCBhIGZpbGVuYW1lKSB3aGVyZSBQQ00gZGF0YSB3aWxs IGJlIGR1bXBlZC4KPiAgVGhlIGR1bXBlZCBmaWxlIGlzIG5hbWVkIEBjb2RlezxzcmM+LTxkc3Q+ LnBjbX0gYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4gaWYgaXQgYWxyZWFkeSBleGlzdHMuCj4gIEBl bmQgdGFibGUKPiAtLQo+IDIuMzQuMQo+IAo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gRnJvbTogZmZtcGVnLWRldmVsIDxmZm1wZWctZGV2ZWwtYm91bmNlc0BmZm1w ZWcub3JnPiBvbiBiZWhhbGYgb2YgQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFy ZHRAb3V0bG9vay5jb20+Cj4gU2VudDogMjYgQXByaWwgMjAyNSAzOjAwCj4gVG86IGZmbXBlZy1k ZXZlbEBmZm1wZWcub3JnIDxmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZz4KPiBTdWJqZWN0OiBSZTog W0ZGbXBlZy1kZXZlbF0gW1BBVENIXSBhdmZpbHRlcjogYWRkIFBDTSBkdW1waW5nIGJldHdlZW4g ZmlsdGVycyBmb3IgYXVkaW8gZGVidWdnaW5nCj4gCj4g5LiA5Y+q5aSnIOiCpeeMqzoKPj4gVGhp cyBwYXRjaCBpbnRyb2R1Y2VzIFBDTSBkdW1waW5nIHN1cHBvcnQgYmV0d2VlbiBBVkZpbHRlciBs aW5rcywgaW50ZW5kZWQgZm9yIGF1ZGlvIGRlYnVnZ2luZy4KPj4KPj4gSXQgYWRkcyBhIGNvbmZp Z3VyZS10aW1lIG9wdGlvbiBgLS1kdW1wZGlyPVBBVEhgIHRvIHNwZWNpZnkgdGhlIG91dHB1dCBk aXJlY3RvcnkgZm9yIHJhdyBQQ00gZGF0YSAoZGVmYXVsdDogL3RtcC8pLgo+Pgo+PiBUd28gY29t bWFuZHMgYXJlIGV4cG9zZWQgdG8gY29udHJvbCBkdW1waW5nOgo+PiAgIC0gZHVtcF9yYXdfc3Rh cnQgPGRzdF9maWx0ZXJfbmFtZT4KPj4gICAtIGR1bXBfcmF3X3N0b3AgPGRzdF9maWx0ZXJfbmFt ZT4KPj4KPj4gRHVtcCBmaWxlcyBhcmUgd3JpdHRlbiBhczogc3JjbmFtZS1kc3RuYW1lLWNoYW5u ZWwucGNtCj4+Cj4+IFN1cHBvcnRzIHBhY2tlZCBhbmQgcGxhbmFyIGZvcm1hdHMuIEZpbGUgZGVz Y3JpcHRvcnMgYXJlIG1hbmFnZWQgYXV0b21hdGljYWxseSBhbmQgd29yayBvbmx5IG9uIGF1ZGlv IGxpbmtzLgo+Pgo+PiBFeGFtcGxlIHVzYWdlOgo+PiAgICAgYXZmaWx0ZXJfcHJvY2Vzc19jb21t YW5kKGZpbHRlciwgImR1bXBfcmF3X3N0YXJ0IiwgInZvbHVtZSIsIE5VTEwsIDAsIDApOwo+Pgo+ PiBUaGlzIGZlYXR1cmUgaGVscHMgZGV2ZWxvcGVycyBkZWJ1ZyBmaWx0ZXIgYmVoYXZpb3IgYnkg aW5zcGVjdGluZyBpbnRlcm1lZGlhdGUgYXVkaW8gZGF0YS4KPj4gLS0tCj4+IEZyb20gNmEzMWM4 NWFmZDI4MDBjMDkwNzZjMWUyYjdjNzM0YzdiNzE5ZjczZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKPj4gRnJvbTogWWlibyBGYW5nIDxibHVleWJmNzc3QG91dGxvb2suY29tPgo+PiBEYXRlOiBX ZWQsIDIzIEFwciAyMDI1IDA5OjE3OjUxICswODAwCj4+IFN1YmplY3Q6IFtQQVRDSCAxLzFdIGF2 ZmlsdGVyOiBhZGQgUENNIGR1bXBpbmcgYmV0d2VlbiBmaWx0ZXJzIGZvciBhdWRpbwo+PiAgZGVi dWdnaW5nCj4+Cj4+IFRoaXMgcGF0Y2ggYWRkcyB0aGUgYWJpbGl0eSB0byBkdW1wIHJhdyBQQ00g YXVkaW8gZGF0YSBiZXR3ZWVuIEFWRmlsdGVyIGxpbmtzLgo+PiBJdCBpbnRyb2R1Y2VzIGEgY29u ZmlndXJlLXRpbWUgb3B0aW9uIGAtLWR1bXBkaXI9UEFUSGAgdG8gY29udHJvbCB0aGUgb3V0cHV0 Cj4+IGRpcmVjdG9yeSBvZiBkdW1wIGZpbGVzIChkZWZhdWx0OiAvdG1wLykuIFRoaXMgZmVhdHVy ZSBpcyBoZWxwZnVsIGZvciBkZWJ1Z2dpbmcKPj4gZmlsdGVyIGJlaGF2aW9yIGFuZCB2ZXJpZnlp bmcgYXVkaW8gcHJvY2Vzc2luZy4KPj4KPj4gVHdvIGZpbHRlciBjb21tYW5kcyBhcmUgYWRkZWQ6 Cj4+ICAgLSBkdW1wX3Jhd19zdGFydCA8ZHN0X2ZpbHRlcl9uYW1lPgo+PiAgIC0gZHVtcF9yYXdf c3RvcCA8ZHN0X2ZpbHRlcl9uYW1lPgo+Pgo+PiBUaGUgUENNIGZpbGVzIGFyZSB3cml0dGVuIGlu IHRoZSBmb3JtYXQ6IHNyY25hbWUtZHN0bmFtZS08Y2hhbm5lbD4ucGNtLgo+Pgo+PiBTdXBwb3J0 cyBib3RoIHBhY2tlZCBhbmQgcGxhbmFyIGZvcm1hdHMuIEZpbGUgZGVzY3JpcHRvcnMgYXJlIGF1 dG9tYXRpY2FsbHkKPj4gbWFuYWdlZC4gV29ya3Mgb25seSBvbiBhdWRpbyBsaW5rcy4KPj4KPj4g RXhhbXBsZSB1c2FnZToKPj4gICBhdmZpbHRlcl9wcm9jZXNzX2NvbW1hbmQoZmlsdGVyLCAiZHVt cF9yYXdfc3RhcnQiLCAidm9sdW1lIiwgTlVMTCwgMCwgMCk7Cj4+Cj4+IFNpZ25lZC1vZmYtYnk6 IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4KPj4gLS0tCj4+ICBjb25maWd1cmUg ICAgICAgICAgICAgIHwgICA3ICsrKwo+PiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDExMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgbGliYXZmaWx0ZXIv YXZmaWx0ZXIuaCB8ICAgNCArKwo+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygr KQo+Pgo+PiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4+IGluZGV4IGM5NGI4 ZWFjNDMuLjM4MTYzMzc0OWQgMTAwNzU1Cj4+IC0tLSBhL2NvbmZpZ3VyZQo+PiArKysgYi9jb25m aWd1cmUKPj4gQEAgLTUyNCw2ICs1MjQsNyBAQCBEZXZlbG9wZXIgb3B0aW9ucyAodXNlZnVsIHdo ZW4gd29ya2luZyBvbiBGRm1wZWcgaXRzZWxmKToKPj4gICAgLS1kaXNhYmxlLWxhcmdlLXRlc3Rz ICAgIGRpc2FibGUgdGVzdHMgdGhhdCB1c2UgYSBsYXJnZSBhbW91bnQgb2YgbWVtb3J5Cj4+ICAg IC0tZGlzYWJsZS1wdHgtY29tcHJlc3Npb24gZG9uJ3QgY29tcHJlc3MgQ1VEQSBQVFggY29kZSBl dmVuIHdoZW4gcG9zc2libGUKPj4gICAgLS1kaXNhYmxlLXZlcnNpb24tdHJhY2tpbmcgZG9uJ3Qg aW5jbHVkZSB0aGUgZ2l0L3JlbGVhc2UgdmVyc2lvbiBpbiB0aGUgYnVpbGQKPj4gKyAgLS1kdW1w ZGlyPVBBVEggICAgICAgICAgIGxvY2F0aW9uIG9mIHBjbSBkdW1wIGZpbGVzIHRvIHNhdmUuCj4+ Cj4+ICBOT1RFOiBPYmplY3QgZmlsZXMgYXJlIGJ1aWx0IGF0IHRoZSBwbGFjZSB3aGVyZSBjb25m aWd1cmUgaXMgbGF1bmNoZWQuCj4+ICBFT0YKPj4gQEAgLTI2OTAsNiArMjY5MSw3IEBAIFBBVEhT X0xJU1Q9Igo+PiAgICAgIHByZWZpeAo+PiAgICAgIHNobGliZGlyCj4+ICAgICAgaW5zdGFsbF9u YW1lX2Rpcgo+PiArICAgIGR1bXBkaXIKPj4gICIKPj4KPj4gIENNRExJTkVfU0VUPSIKPj4gQEAg LTQxMjMsNiArNDEyNSw5IEBAIGluY2Rpcl9kZWZhdWx0PScke3ByZWZpeH0vaW5jbHVkZScKPj4g IGxpYmRpcl9kZWZhdWx0PScke3ByZWZpeH0vbGliJwo+PiAgbWFuZGlyX2RlZmF1bHQ9JyR7cHJl Zml4fS9zaGFyZS9tYW4nCj4+Cj4+ICsjIHJ1bnRpbWUgcGF0aAo+PiArZHVtcGRpcl9kZWZhdWx0 PScvdG1wLycKPj4gKwo+PiAgIyB0b29sY2hhaW4KPj4gIGFyX2RlZmF1bHQ9ImFyIgo+PiAgY2Nf ZGVmYXVsdD0iZ2NjIgo+PiBAQCAtODExOCw2ICs4MTIzLDcgQEAgRE9DRElSPVwkKERFU1RESVIp JGRvY2Rpcgo+PiAgTUFORElSPVwkKERFU1RESVIpJG1hbmRpcgo+PiAgUEtHQ09ORklHRElSPVwk KERFU1RESVIpJHBrZ2NvbmZpZ2Rpcgo+PiAgSU5TVEFMTF9OQU1FX0RJUj0kaW5zdGFsbF9uYW1l X2Rpcgo+PiArRFVNUERJUj0kZHVtcGRpcgo+PiAgU1JDX1BBVEg9JHNvdXJjZV9wYXRoCj4+ICBT UkNfTElOSz0kc291cmNlX2xpbmsKPj4gIGlmbmRlZiBNQUlOX01BS0VGSUxFCj4+IEBAIC04MjY3 LDYgKzgyNzMsNyBAQCBjYXQgPiAkVE1QSCA8PEVPRgo+PiAgI2RlZmluZSBDT05GSUdfVEhJU19Z RUFSIDIwMjUKPj4gICNkZWZpbmUgRkZNUEVHX0RBVEFESVIgIiQoZXZhbCBjX2VzY2FwZSAkZGF0 YWRpcikiCj4+ICAjZGVmaW5lIEFWQ09OVl9EQVRBRElSICIkKGV2YWwgY19lc2NhcGUgJGRhdGFk aXIpIgo+PiArI2RlZmluZSBGRk1QRUdfRFVNUERJUiAiJChldmFsIGNfZXNjYXBlICRkdW1wZGly KSIKPj4gICNkZWZpbmUgQ0NfSURFTlQgIiQoY19lc2NhcGUgJHtjY19pZGVudDotVW5rbm93biBj b21waWxlcn0pIgo+PiAgI2RlZmluZSBPU19OQU1FICR0YXJnZXRfb3MKPj4gICNkZWZpbmUgRVhU RVJOX1BSRUZJWCAiJHtleHRlcm5fcHJlZml4fSIKPj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVy L2F2ZmlsdGVyLmMgYi9saWJhdmZpbHRlci9hdmZpbHRlci5jCj4+IGluZGV4IDY0YzEwNzVjNDAu LjlmYzYzMDg1NDQgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMKPj4gKysr IGIvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYwo+PiBAQCAtMTksNiArMTksOSBAQAo+PiAgICogRm91 bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN QSAwMjExMC0xMzAxIFVTQQo+PiAgICovCj4+Cj4+ICsjaW5jbHVkZSA8ZmNudGwuaD4KPj4gKyNp bmNsdWRlIDx1bmlzdGQuaD4KPj4gKwo+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5o Igo+PiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgo+PiAgI2luY2x1ZGUgImxpYmF2 dXRpbC9icHJpbnQuaCIKPj4gQEAgLTE5NSw2ICsxOTgsNjYgQEAgaW50IGF2ZmlsdGVyX2xpbmso QVZGaWx0ZXJDb250ZXh0ICpzcmMsIHVuc2lnbmVkIHNyY3BhZCwKPj4gICAgICByZXR1cm4gMDsK Pj4gIH0KPj4KPj4gK3N0YXRpYyBhdl9jb2xkIHZvaWQgbGlua191bmluaXRfZHVtcF9wY20oQVZG aWx0ZXJMaW5rICpsaW5rLCBpbnQgc3RvcCkKPj4gK3sKPj4gKyAgICBpZiAobGluay0+ZHVtcF9w Y21fZmRzKSB7Cj4+ICsgICAgICAgIGludCBpOwo+PiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwg bGluay0+bmJfZHVtcF9wY21fZmRzOyBpKyspIHsKPj4gKyAgICAgICAgICAgIGlmIChsaW5rLT5k dW1wX3BjbV9mZHNbaV0pCj4+ICsgICAgICAgICAgICAgICAgY2xvc2UobGluay0+ZHVtcF9wY21f ZmRzW2ldKTsKPj4gKyAgICAgICAgfQo+PiArICAgICAgICBhdl9mcmVlKGxpbmstPmR1bXBfcGNt X2Zkcyk7Cj4+ICsgICAgICAgIGxpbmstPmR1bXBfcGNtX2ZkcyAgICA9IE5VTEw7Cj4+ICsgICAg ICAgIGxpbmstPm5iX2R1bXBfcGNtX2ZkcyA9IDA7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgaWYg KHN0b3ApCj4+ICsgICAgICAgIGxpbmstPmR1bXBfcGNtID0gMDsKPj4gK30KPj4gKwo+PiArc3Rh dGljIGF2X2NvbGQgaW50IGxpbmtfaW5pdF9kdW1wX3BjbShBVkZpbHRlckxpbmsgKmxpbmspCj4+ ICt7Cj4+ICsgICAgY2hhciBwYXRoWzQwOTZdOwo+PiArICAgIGludCBmZCwgaTsKPj4gKwo+PiAr ICAgIGxpbmstPm5iX2R1bXBfcGNtX2ZkcyA9IGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGxpbmst PmZvcm1hdCk/IGxpbmstPmNoX2xheW91dC5uYl9jaGFubmVscyA6IDE7Cj4+ICsgICAgbGluay0+ ZHVtcF9wY21fZmRzID0gYXZfbWFsbG9jX2FycmF5KGxpbmstPm5iX2R1bXBfcGNtX2Zkcywgc2l6 ZW9mKGludCkpOwo+PiArICAgIGlmICghbGluay0+ZHVtcF9wY21fZmRzKQo+PiArICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+PiArCj4+ICsgICAgZm9yIChpID0gMDsgaSA8IGxpbmst Pm5iX2R1bXBfcGNtX2ZkczsgaSsrKSB7Cj4+ICsgICAgICAgIHNucHJpbnRmKHBhdGgsIHNpemVv ZihwYXRoKSwgRkZNUEVHX0RVTVBESVIiJS4xNnMtJS44cy0lZC5wY20iLCBsaW5rLT5zcmMtPm5h bWUsIGxpbmstPmRzdC0+bmFtZSwgaSk7Cj4+ICsgICAgICAgIGZkID0gb3BlbihwYXRoLCBPX1dS T05MWSB8IE9fQ1JFQVQgfCBPX1RSVU5DLCAwNjQ0KTsKPj4gKyAgICAgICAgaWYgKGZkIDwgMCkg ewo+PiArICAgICAgICAgICAgbGlua191bmluaXRfZHVtcF9wY20obGluaywgMSk7Cj4+ICsgICAg ICAgICAgICByZXR1cm4gQVZFUlJPUihlcnJubyk7Cj4+ICsgICAgICAgIH0KPj4gKyAgICAgICAg bGluay0+ZHVtcF9wY21fZmRzW2ldID0gZmQ7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJu IDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgZmlsdGVyX3NldF9kdW1wX3BjbShBVkZpbHRl ckNvbnRleHQgKmZpbHRlciwgY29uc3QgY2hhciAqdGFyZ2V0LCBpbnQgc2V0KQo+PiArewo+PiAr ICAgIGludCBpOwo+PiArCj4+ICsgICAgZm9yIChpID0gMDsgaSA8IGZpbHRlci0+bmJfb3V0cHV0 czsgaSsrKSB7Cj4+ICsgICAgICAgIEFWRmlsdGVyTGluayAqbGluayA9IGZpbHRlci0+b3V0cHV0 c1tpXTsKPj4gKyAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXN0cmNtcChsaW5rLT5kc3QtPm5hbWUs IHRhcmdldCkpIHsKPj4gKyAgICAgICAgICAgIGlmIChzZXQpIHsKPj4gKyAgICAgICAgICAgICAg ICBsaW5rLT5kdW1wX3BjbSA9IDE7Cj4+ICsgICAgICAgICAgICB9IGVsc2UKPj4gKyAgICAgICAg ICAgICAgICBsaW5rX3VuaW5pdF9kdW1wX3BjbShsaW5rLCAxKTsKPj4gKwo+PiArICAgICAgICAg ICAgaWYgKHRhcmdldCkKPj4gKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gKyAgICAgICAg fQo+PiArICAgIH0KPj4gKwo+PiArICAgIHJldHVybiB0YXJnZXQgPyBBVkVSUk9SKEVJTlZBTCkg OiAwOwo+PiArfQo+PiArCj4+ICBzdGF0aWMgdm9pZCBsaW5rX2ZyZWUoQVZGaWx0ZXJMaW5rICoq bGluaykKPj4gIHsKPj4gICAgICBGaWx0ZXJMaW5rSW50ZXJuYWwgKmxpOwo+PiBAQCAtMjA4LDYg KzI3MSw4IEBAIHN0YXRpYyB2b2lkIGxpbmtfZnJlZShBVkZpbHRlckxpbmsgKipsaW5rKQo+PiAg ICAgIGF2X2NoYW5uZWxfbGF5b3V0X3VuaW5pdCgmKCpsaW5rKS0+Y2hfbGF5b3V0KTsKPj4gICAg ICBhdl9mcmFtZV9zaWRlX2RhdGFfZnJlZSgmKCpsaW5rKS0+c2lkZV9kYXRhLCAmKCpsaW5rKS0+ bmJfc2lkZV9kYXRhKTsKPj4KPj4gKyAgICBsaW5rX3VuaW5pdF9kdW1wX3BjbSgqbGluaywgMSk7 Cj4+ICsKPj4gICAgICBhdl9idWZmZXJfdW5yZWYoJmxpLT5sLmh3X2ZyYW1lc19jdHgpOwo+Pgo+ PiAgICAgIGF2X2ZyZWVwKGxpbmspOwo+PiBAQCAtNjE3LDYgKzY4MiwxMCBAQCBpbnQgYXZmaWx0 ZXJfcHJvY2Vzc19jb21tYW5kKEFWRmlsdGVyQ29udGV4dCAqZmlsdGVyLCBjb25zdCBjaGFyICpj bWQsIGNvbnN0IGNoYQo+PiAgICAgICAgICBpZiAocmVzID09IGxvY2FsX3JlcykKPj4gICAgICAg ICAgICAgIGF2X2xvZyhmaWx0ZXIsIEFWX0xPR19JTkZPLCAiJXMiLCByZXMpOwo+PiAgICAgICAg ICByZXR1cm4gMDsKPj4gKyAgICB9ZWxzZSBpZighc3RyY21wKGNtZCwgImR1bXBfcmF3X3N0YXJ0 IikpIHsKPj4gKyAgICAgICAgcmV0dXJuIGZpbHRlcl9zZXRfZHVtcF9wY20oZmlsdGVyLCBhcmcs IDEpOwo+PiArICAgIH1lbHNlIGlmKCFzdHJjbXAoY21kLCAiZHVtcF9yYXdfc3RvcCIpKSB7Cj4+ ICsgICAgICAgIHJldHVybiBmaWx0ZXJfc2V0X2R1bXBfcGNtKGZpbHRlciwgYXJnLCAwKTsKPj4g ICAgICB9ZWxzZSBpZighc3RyY21wKGNtZCwgImVuYWJsZSIpKSB7Cj4+ICAgICAgICAgIHJldHVy biBzZXRfZW5hYmxlX2V4cHIoZmZmaWx0ZXJjdHgoZmlsdGVyKSwgYXJnKTsKPj4gICAgICB9ZWxz ZSBpZiAoZmZmaWx0ZXIoZmlsdGVyLT5maWx0ZXIpLT5wcm9jZXNzX2NvbW1hbmQpIHsKPj4gQEAg LTEwNTAsNiArMTExOSw0MSBAQCBmYWlsOgo+PiAgICAgIHJldHVybiByZXQ7Cj4+ICB9Cj4+Cj4+ ICtzdGF0aWMgaW50IGxpbmtfZHVtcF9mcmFtZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUg KmZyYW1lKQo+PiArewo+PiArICAgIGludCBzYW1wbGVzX3NpemUsIHJldDsKPj4gKwo+PiArICAg IGlmICghbGluay0+ZHVtcF9wY21fZmRzKSB7Cj4+ICsgICAgICAgIHJldCA9IGxpbmtfaW5pdF9k dW1wX3BjbShsaW5rKTsKPj4gKyAgICAgICAgaWYgKHJldCA8IDApCj4+ICsgICAgICAgICAgICBy ZXR1cm4gcmV0Owo+PiArICAgIH0KPj4gKwo+PiArICAgIHNhbXBsZXNfc2l6ZSA9IGF2X2dldF9i eXRlc19wZXJfc2FtcGxlKGZyYW1lLT5mb3JtYXQpICogZnJhbWUtPm5iX3NhbXBsZXM7Cj4+ICsg ICAgaWYgKGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpKSB7Cj4+ICsgICAg ICAgIGludCBpOwo+PiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21f ZmRzICYmIGkgPCBmcmFtZS0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOyBpKyspIHsKPj4gKyAgICAg ICAgICAgIGlmIChpIDwgQVZfTlVNX0RBVEFfUE9JTlRFUlMpIHsKPj4gKyAgICAgICAgICAgICAg ICByZXQgPSB3cml0ZShsaW5rLT5kdW1wX3BjbV9mZHNbaV0sIGZyYW1lLT5kYXRhW2ldLCBzYW1w bGVzX3NpemUpOwo+PiArICAgICAgICAgICAgfSBlbHNlCj4+ICsgICAgICAgICAgICAgICAgcmV0 ID0gd3JpdGUobGluay0+ZHVtcF9wY21fZmRzW2ldLCBmcmFtZS0+ZXh0ZW5kZWRfZGF0YVtpIC0g QVZfTlVNX0RBVEFfUE9JTlRFUlNdLCBzYW1wbGVzX3NpemUpOwo+PiArCj4+ICsgICAgICAgICAg ICBpZiAocmV0IDwgMCkKPj4gKyAgICAgICAgICAgICAgICBnb3RvIGVycjsKPj4gKyAgICAgICAg fQo+PiArICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgIHJldCA9IHdyaXRlKGxpbmstPmR1bXBfcGNt X2Zkc1swXSwgZnJhbWUtPmRhdGFbMF0sIHNhbXBsZXNfc2l6ZSAqIGZyYW1lLT5jaF9sYXlvdXQu bmJfY2hhbm5lbHMpOwo+PiArICAgICAgICBpZiAocmV0IDwgMCkKPj4gKyAgICAgICAgICAgIGdv dG8gZXJyOwo+PiArCj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJuIDA7Cj4+ICtlcnI6Cj4+ ICsgICAgbGlua191bmluaXRfZHVtcF9wY20obGluaywgMSk7Cj4+ICsgICAgcmV0dXJuIEFWRVJS T1IoZXJybm8pOwo+PiArfQo+PiArCj4+ICBpbnQgZmZfZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGlu ayAqbGluaywgQVZGcmFtZSAqZnJhbWUpCj4+ICB7Cj4+ICAgICAgRmlsdGVyTGlua0ludGVybmFs ICogY29uc3QgbGkgPSBmZl9saW5rX2ludGVybmFsKGxpbmspOwo+PiBAQCAtMTA4Nyw2ICsxMTkx LDEyIEBAIGludCBmZl9maWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpm cmFtZSkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmstPnRp bWVfYmFzZSk7Cj4+ICAgICAgfQo+Pgo+PiArICAgIGlmIChsaW5rLT5kdW1wX3BjbSAmJiBsaW5r LT50eXBlID09IEFWTUVESUFfVFlQRV9BVURJTykgewo+PiArICAgICAgICByZXQgPSBsaW5rX2R1 bXBfZnJhbWUobGluaywgZnJhbWUpOwo+PiArICAgICAgICBpZiAocmV0IDwgMCkKPj4gKyAgICAg ICAgICAgIGF2X2xvZyhsaW5rLT5kc3QsIEFWX0xPR19FUlJPUiwgIkR1bXAgcGNtIGZpbGVzIGZh aWxlZCB3aXRoICVkXG4iLCByZXQpOwo+PiArICAgIH0KPj4gKwo+PiAgICAgIGxpLT5mcmFtZV9i bG9ja2VkX2luID0gbGktPmZyYW1lX3dhbnRlZF9vdXQgPSAwOwo+PiAgICAgIGxpLT5sLmZyYW1l X2NvdW50X2luKys7Cj4+ICAgICAgbGktPmwuc2FtcGxlX2NvdW50X2luICs9IGZyYW1lLT5uYl9z YW1wbGVzOwo+PiBkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaCBiL2xpYmF2Zmls dGVyL2F2ZmlsdGVyLmgKPj4gaW5kZXggYTg5ZDNjZjY1OC4uNmQwNGI5ZGE3NyAxMDA2NDQKPj4g LS0tIGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaAo+PiArKysgYi9saWJhdmZpbHRlci9hdmZpbHRl ci5oCj4+IEBAIC00MDQsNiArNDA0LDEwIEBAIHN0cnVjdCBBVkZpbHRlckxpbmsgewo+PiAgICAg IGludCBzYW1wbGVfcmF0ZTsgICAgICAgICAgICAvLy88IHNhbXBsZXMgcGVyIHNlY29uZAo+PiAg ICAgIEFWQ2hhbm5lbExheW91dCBjaF9sYXlvdXQ7ICAvLy88IGNoYW5uZWwgbGF5b3V0IG9mIGN1 cnJlbnQgYnVmZmVyIChzZWUgbGliYXZ1dGlsL2NoYW5uZWxfbGF5b3V0LmgpCj4+Cj4+ICsgICAg aW50ICAgICAgICBkdW1wX3BjbTsgICAgICAgLy8vPCBmbGFnIHRvIGR1bXAgcGNtCj4+ICsgICAg aW50ICAgICAgICAqZHVtcF9wY21fZmRzOyAgIC8vLzwgZHVtcCBmaWxlcwo+PiArICAgIHVuc2ln bmVkIG5iX2R1bXBfcGNtX2ZkczsgICAvLy88IG51bWJlciBvZiBkdW1wIGZpbGUKPj4gKwo+PiAg ICAgIC8qKgo+PiAgICAgICAqIERlZmluZSB0aGUgdGltZSBiYXNlIHVzZWQgYnkgdGhlIFBUUyBv ZiB0aGUgZnJhbWVzL3NhbXBsZXMKPj4gICAgICAgKiB3aGljaCB3aWxsIHBhc3MgdGhyb3VnaCB0 aGlzIGxpbmsuCj4+IC0tCj4+IDIuMzQuMQo+Pgo+IAo+IENhbid0IHlvdSB1c2UgdGhlIGFzcGxp dCBmaWx0ZXIgdG8gZHVwbGljYXRlIHRoZSBhdWRpbz8KPiAKPiAtIEFuZHJlYXMKClBpbmcgZm9y IHRoYXQgcXVlc3Rpb24uCgotIEFuZHJlYXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRl dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K