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 23A5249F95 for ; Wed, 17 Apr 2024 08:15:59 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 14CB068D2C4; Wed, 17 Apr 2024 11:15:57 +0300 (EEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0F2E368D29A for ; Wed, 17 Apr 2024 11:15:49 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713341755; x=1744877755; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=xyZY7dxh5+2jv4LKm5InPOsgDdZjTfytPYjM7Dd342k=; b=lGz9J6OE3fdPbck32Cz22xRdotU6+CUCxZ7CfdwVyUcer4MG//LzXaah 1yGBNmpTgpCcjPYhMHfppAGggsOkU+w7QuW8/qtxenwcuSemveM0C52NJ 98xgTHRVH0Ck3Bynjp6oYyDsT1Vb7GoEwW2Z6tXjUF0KlRtlM1VpwL6Ak 8VNukEhTfwofygXlfSjHwfikyWJ/oT3t6S3oioojqXhE45oxrSVly6k8L yQh8YDBVZAEwwahMo6iP+YGhpb//Fl3Y2VKaXoj35igFXJni7a1E97bxB ij15DxzofAzwqukqZuq3nT+IQFWh6887gy8a2NWV6YDQMyc5cghc0T2L0 g==; X-CSE-ConnectionGUID: uWA0SXmBSDCnOpjMCKEQUw== X-CSE-MsgGUID: xhdcSDt0SHWZCB1PTlOtvQ== X-IronPort-AV: E=McAfee;i="6600,9927,11046"; a="20209303" X-IronPort-AV: E=Sophos;i="6.07,208,1708416000"; d="scan'208";a="20209303" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Apr 2024 01:15:45 -0700 X-CSE-ConnectionGUID: Pz6SaeYmS4iwSSD8CaoUcA== X-CSE-MsgGUID: 2AIJLvEUQmaf7CO9ovqEmA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,208,1708416000"; d="scan'208";a="22551155" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orviesa009.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 17 Apr 2024 01:15:45 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 17 Apr 2024 01:15:44 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Wed, 17 Apr 2024 01:15:44 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Wed, 17 Apr 2024 01:15:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e4jQodFyzSBFOmkXBXkT72CFQL4eOyu3XP7lKDb0evE4gMUytNZqr0QtUDMQH5WtHZZ5ui2ykkvcD1PNUE2ww1OWq8q/ABGI9DJWJJANqQvu/cZsZc6XomCl2yEJ3zCA1T59tvKca+3x7ljNwqH3uxgtwlEcmJS9R879zpwVGUTgM6IYegH7WF8b2LPdIyim8lugrZb/IxrAJk+sKe0PPSwKac7iMz8TOkz6ETF3x+YYjEOEgk1D9gr5VjXLTfhVg/d56KzfkS+vOXpodhgxQ3koKT0FZCQ4y4zIVOm3qw+o0lZH42zj0S9tHAjVgxvpo1gyQsNRAHZl6afuR1ObCA== 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=xyZY7dxh5+2jv4LKm5InPOsgDdZjTfytPYjM7Dd342k=; b=YNmRi9nQO0gQxXhtMysH7NWNJMYZzlTSltGrJwZTh7JC+LaJmaz31IpdKG73RQW49qg4drih8jaGmhjgQZwReZrZuPsDijgmyEQhLTsjyzAKz0aZ++/MNxCnxyLtvesOsp0I+QSsHrzZOHINSsVdeePdt9Rn5QychueBnX9zU5dcDl89v3qVwFrXe36HqQaONxQpeZIb1JA9TAT6036eeKjph7JoVW0nZzEKGaOLAdHuP2rWv2u96K2HN+XPVp73jlR30aam4lOikKxhi13/3J6+Cg/zeFXjqnRhpv2yzsdUYyMdI0ojO4VKHeupT9xO6SUTL6Z+YW1ToQeT0pG2Hg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM3PR11MB8757.namprd11.prod.outlook.com (2603:10b6:8:1af::7) by DS0PR11MB8116.namprd11.prod.outlook.com (2603:10b6:8:12b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7430.46; Wed, 17 Apr 2024 08:15:41 +0000 Received: from DM3PR11MB8757.namprd11.prod.outlook.com ([fe80::103a:9795:6ae2:7c96]) by DM3PR11MB8757.namprd11.prod.outlook.com ([fe80::103a:9795:6ae2:7c96%4]) with mapi id 15.20.7430.045; Wed, 17 Apr 2024 08:15:41 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: Make qsv hardware transfers thread safe Thread-Index: AQHajaJc+nAVYB2PH0+k/79f47xtWLFsI5kA Date: Wed, 17 Apr 2024 08:15:41 +0000 Message-ID: References: <20240413125759.1427-1-samuelsonm@gmail.com> In-Reply-To: <20240413125759.1427-1-samuelsonm@gmail.com> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM3PR11MB8757:EE_|DS0PR11MB8116:EE_ x-ms-office365-filtering-correlation-id: 4679f5d7-9b08-4275-8464-08dc5eb692b3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: =?utf-8?B?ek0vVTlvNGx4YnliV1Y2bjRoemxuRFI1RGR6SC9wWlZveUY5YWpDWjAwMmR5?= =?utf-8?B?dWkwdk9GWkNZQi9Gem1hQ2RlUUFpSSsxdExOWUREeWNUNldXeFR3Tm5hOXk0?= =?utf-8?B?ZkZSbHFUVWszNHRzS1JvQW5zWmVVR214eTZSYiszQ2U2SGx5UWRqVXljRXlX?= =?utf-8?B?RGp6ODU4YW9zV2ZNdVZFZ2NmOGtneVJURnpiOGVHSVRHUDNEcUw1aW9keCtG?= =?utf-8?B?Qk5zcEJ6V3drak41MjRpSnBKcm1TNWwwa1d0MWhQM09CRm03Um00dmovWWFX?= =?utf-8?B?MW5zbnZiYlZSY3k5QllWTjRueHlVempmZzJGSHJOY3d3dTVvaFdVTzl3ajY3?= =?utf-8?B?c0JINWxtMzVaZ05RU3U1ZU1YcXRTNmQ5aVZDNjJra1NqNFlkMktBcytmbEZw?= =?utf-8?B?enN4V0JSVzNnSTErdzk1TU9FS1hkTXY2WWdoR3BsVzMza3ZrdUQ1WWxRVHZn?= =?utf-8?B?ZGJmUmtxNnV3OThJM2tRS29RdmhFS2FVU3ZnaWZvdDNzY0xKRGE3VDFxVXBY?= =?utf-8?B?OWJxWUdCa0RoK1B0WjhxRGM4WlliZEIydDJPTjdCUjE1d05hQWdnck1NSWxs?= =?utf-8?B?MmtITHM4NkM1cE5jbDFMUDFDczVKWU16OFdZOGU1d3lhUVJtSFFkZ21Jb2Rv?= =?utf-8?B?ejBlV0VKcnIvSTFvWERDMnc3QzNCaGlRUUpEVWl0VzhDNEhjTVZXUUt2NUpn?= =?utf-8?B?OW1ubERqWG9uSzI0T0JudWo0UUJJTEhPVHdoT0tVcWRydzNpVEdFbmNjLzlK?= =?utf-8?B?MFM1ekpxbTZidDZHSCtuZWxtZXhZTjBVQzZ3VWROcWc1ZWRIZG9DNVJsOXpB?= =?utf-8?B?Ui9ramIvUDVJSG04MFBDamROQW9RVXpWTEtLV2ZISTdJenN6VzRrMlgvN3U3?= =?utf-8?B?Z2x2cG52b0JFK0pISFRuTUo5RHdMQ0ZDcE5XbEhMR0VGZ3dma21TRDhtYllk?= =?utf-8?B?UnpzeGNtY1ZoMm8xRDlxdW9VUktpRnE2bjRWUGEvL0xzZGNZK1lNeVQ1a1RJ?= =?utf-8?B?Vk5OZGZqcHUyNlc3cDZSTzVxOVZrVEZ6UExHQTBQK1ByTVdRZWk4R2tEdXhB?= =?utf-8?B?SEp0L1ppdzZxM1czbzd0YnBmSkVWaFFaRW5pOHRRSFNVYTI0M0gycFBaT2Zt?= =?utf-8?B?SXp5a2RWRUpzSXlyUEhGeGRYS2d4SDJHcGt1czZ3MUNmekgwUmFNblRWU2o0?= =?utf-8?B?UkJXdWxBdzNmQWFSY05OUnZHTFhNRm9uTVJUdmsxd3g2ZlU3RVAwMFFzV3Ux?= =?utf-8?B?VTYwWkNpYTV0SmNpWVZNbXhNdUgwY3o5aHJUZVBnL3p4K0JmUTlNcENtc3kr?= =?utf-8?B?am82SVFGRVJoMzZRc1F1ZWtlSWM2cTNKL3FMYXpGMitwY0NPeEpuUi9xeHdr?= =?utf-8?B?YzEwRTl1UHh5cTFRVXRscXhrMXM3aUJTb25DaC9tL3UwTG1wa3ZkUGxwOE9o?= =?utf-8?B?dDMwbFNDN0o0a3pFUmFHcEVEYzNCMnJoNHc2WVFlcXd3Nll2WjIwRE16ZSty?= =?utf-8?B?YUJvd3ZsNXN5RzZ2QTFTQ0s5USsxS3B4UmJaRXZ2RnhOdjd0Q0ZMS1h6Qndh?= =?utf-8?B?aGlHbEZBaytSK1Q2ZTQvNW1HL2JrY25mNUkwb01WQmFhSTQ0ODgyQXFEWU5m?= =?utf-8?B?NG5ZL0p0U3dXK2R4T3A2ZVJUZWd4UTdhUktrQ2J5WWpaNFExbTZIZTBaOFJm?= =?utf-8?B?QlV5WCtXNG9pQWQ5dkh5QVFVSEtSMEpuMGhNaHJjdDB5SFVxUGUyUlRWU0Jo?= =?utf-8?B?UXgxdCtqSzBlbDBZWlNxVy9vTktGeEUwTThUL001dzNxS3ZwSDFrQTRwNkpV?= =?utf-8?B?YkJsOU1xc05IYUl6U3dFUT09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM3PR11MB8757.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a2wxUGUyMSt4QVpod0pkTnJsNHpvcllGNkhGL1VxbzVpMi9BVGJEYXRQYXdX?= =?utf-8?B?dUx0cGU1T0hTNnNRYXF1TWczcFdmcmo4S3I0c1JKUFlXVjU0akViSGZzcEhV?= =?utf-8?B?LzRYd0c3TURha3phbGhhb2Y2ZDdvQ0J1SUc0OE5zSmY5RXE2NE5WZmVqcEo2?= =?utf-8?B?aXB0UVJXTUNrWEZRcmlaQjJnVUI2S1BXYjBWMkNTMTByL25tUlp1czF3ZzJx?= =?utf-8?B?SXY2RW9TMDBnUW0zWHV1dXgvOEJrMXRpamFpbzVsZXpPbXU4dWZlQ05sUXVX?= =?utf-8?B?V1NoY0ltOXBGd1dmTjhKc1BhQjFTTVNVK3g4OFlPTzBLVGNZZ0xQK28zVCsy?= =?utf-8?B?R1FqM2p5aERIcHNZV2hjTXBHQmtWNjl3VFhiTTVsQ3FOYmUySDZrbFoyajA0?= =?utf-8?B?T2tTZ3VFWFV0UTNvdE9lWllSSXppN2xoSG5XS1FQemh0NXlGdTdEYnJnRDFL?= =?utf-8?B?SVp3cVM0VlgwcG4reXY1RDJ4bU5xQUxobVgzMTJCdmZRV0dJVGwzbG1RYmxK?= =?utf-8?B?THpmcENVWVZnZ1pyRHpqMUI2TzNLQzNrakwrbm1mY29nZlRxdUU2Mk9rcmpy?= =?utf-8?B?MkgyM1RaTTlpWUpEeUw3THVBdjNqVCt1V0U2U1BRN3pwSXFYc3poZjl1TDAv?= =?utf-8?B?V3FBTEEza0szUnZIUzlidG5jdkZFSHRmaHhjNEJFN2xsamtDK1duS2NyQUJO?= =?utf-8?B?d09iRlM4UHVtdUNsZFlzamQxYUV2dFNlUmM5KzZvdnAvQlE5UjVxVTZVMVRz?= =?utf-8?B?RHdQVXIrb0tDQlk0QUtHYWZNbTFLalpIY2lsN3hZRXBqYUJ5TlV3cHIyY0xD?= =?utf-8?B?N1gvUlA4elk2TlluWVd3cjh4R3JlUFZwK0tSL2FvNWttSkREQSs0UXFaQ0ZS?= =?utf-8?B?OUVWeWQxNW9aTjYwbUdvM2M5ckR0RlhTT1NTTUUvblpJUDlPeU9FSWdwZlpR?= =?utf-8?B?OUVHTHlNaHpRWG41YkRxT1JSaFN4NEpLaVcremMrY2hnYkxzVGZwT2VRL1RZ?= =?utf-8?B?SHVJNWNGQjc1cE0wNGNhRVR1eWtDZWNzOHZwcFUzRE9HZjQ2OXlFQWRJK2Ix?= =?utf-8?B?TFhyUlJDdXhKamEzUUNWaDkvYUt6TVV2QVNwODZLNllyQk0zUndEUTM0bGV3?= =?utf-8?B?SWZBRXVuV1hyNUxQbnczTUNmR2hjK05wZnMvNGM0U2ZYUS96U1RrWVU3MTZD?= =?utf-8?B?RHZFQ21CWUdtdjlLUVkzUHo5aXBNUkFCQ2pIYUxBbEpwWmx2STh2VmNCclBw?= =?utf-8?B?WkYrcTdXWEZIdU5wVVBRenJyQnZJTEJvMUd5VGNBZFMzWE1KVEVpTGVNeU9p?= =?utf-8?B?bHY3VE5wdy8zZWo4a3JSZmNiMTdQRG9nZXpUd0c0MHdITFhIQUh6YjdHTFlS?= =?utf-8?B?bnBnZW5YeFMyUkswWWxnOFY4ZHBpT3F2aDhXNEJGbG5TeDdCSWt5a2F0S1Fw?= =?utf-8?B?SHBVL0JaRTMzcHA3dE82MzVyYlJxRnhmcEtVTGl4VFY1OEFXdnNDalprbGFF?= =?utf-8?B?cEZ3Q3VNZ1hUTy9URTZwRU53NVJsN09haU5lVDZQYmQzWG9tNzczWkErbzBT?= =?utf-8?B?Zlk0RmVSN1VKN1ZlTzdTUGpiT3JNK2xIc25LL1NhZzdrN0o4bkxBVXRjMW5T?= =?utf-8?B?ajhrVnlYdkw4OHp6Y2VVbzJldUswWjREOHdPMG1RR1UwSTYxN0tzNE5KMkFi?= =?utf-8?B?blZzMnhEaTcxUm8vaU9ZQ2pYdlh6aFhZb1BRR3FOLzRHS3VuWGJZU09EUEkr?= =?utf-8?B?MkZRWTFTVmlYbC9sWWVVNUQ5b1VJcGRETWRXL29ROWZ0K2YrQ09teDFtcnF6?= =?utf-8?B?MEFjZUhKQVU2RWJTbE5BVXdlRzc2Q2hzb0ZReS9CQnl1dWdwV3hsdmNVTjRv?= =?utf-8?B?YlR3Y095eXZRZlNmc2FqbWhWYXBUdjJ3RlYrdW1YR081WVZoOVJjM2dHekhQ?= =?utf-8?B?NHMxU2JTYjVlWC81eXNyN2N1MDI1ckVvSVZGNzZWWVlrekt0Z2YxanNtVGxT?= =?utf-8?B?QnRGekVwZGxQU3NSeGdFUm0wc0ZEeHNZMVV1Z1pFc3ZNclpHZGRUUXdRY25O?= =?utf-8?B?eURxRWl4VE0zdEprUEFGOXRYYVNiQnpoanMycHhtVWYwVkR3ZHlISEdja0pY?= =?utf-8?B?bkRqYXNrVjlrY2ZCck5BdGtpTFpMRFY4eHRUd3BiTkhLQWRwSDBMY3Zpc2ZX?= =?utf-8?B?UFE9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM3PR11MB8757.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4679f5d7-9b08-4275-8464-08dc5eb692b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Apr 2024 08:15:41.7477 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fh2IukW90Gh5qDTjGmX7M27KFFX4Tc63KVywLUxhpg0aBtPZoFntw1ICXgRyqPeN9r+NbSj/x0eZ36Szkg3afA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB8116 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: Make qsv hardware transfers thread safe X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: "samuelsonm@gmail.com" 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: T24gU2EsIDIwMjQtMDQtMTMgYXQgMDc6NTcgLTA1MDAsIE1hcmsgU2FtdWVsc29uIHdyb3RlOgo+ IFRoZSBRU1YgaGFyZHdhcmUgY29udGV4dCBjdXJyZW50bHkgdXNlcyBwdGhyZWFkcyB0byBsb2Nr IGluaXRpbGl6YXRpb24sCj4gd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBvbiB3aW5kb3dzIGJ1aWxk cy7CoCBJbnN0ZWFkLCB1c2UgdGhlIEFWTXV0ZXgKPiBvYmplY3QuwqAgQWxzbyBsb2NrIHVzZXMg b2YgdGhlIHJlYWxpZ25lZF91cGxvYWRfZnJhbWUgYW5kCj4gcmVhbGlnbmVkX2Rvd25sb2FkX2Zy YW1lIG9iamVjdHMsIHNvIG11bHRpcGxlIHRocmVhZHMgZG8gbm90IGF0dGVtcHQKPiB0byB3cml0 ZSB0byB0aGVtIGF0IHRoZSBzYW1lIHRpbWUuCj4gLS0tCj4gwqBsaWJhdnV0aWwvaHdjb250ZXh0 X3Fzdi5jIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gwqAx IGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2xpYmF2dXRpbC9od2NvbnRleHRfcXN2LmMgYi9saWJhdnV0aWwvaHdjb250ZXh0 X3Fzdi5jCj4gaW5kZXggYzdjNzg3ODY0NC4uOTJiYWIxMzRlNCAxMDA2NDQKPiAtLS0gYS9saWJh dnV0aWwvaHdjb250ZXh0X3Fzdi5jCj4gKysrIGIvbGliYXZ1dGlsL2h3Y29udGV4dF9xc3YuYwo+ IEBAIC0yMywxMCArMjMsNyBAQAo+IMKgI2luY2x1ZGUgPG1meHZpZGVvLmg+Cj4gwqAKPiDCoCNp bmNsdWRlICJjb25maWcuaCIKPiAtCj4gLSNpZiBIQVZFX1BUSFJFQURTCj4gLSNpbmNsdWRlIDxw dGhyZWFkLmg+Cj4gLSNlbmRpZgo+ICsjaW5jbHVkZSAidGhyZWFkLmgiCj4gwqAKPiDCoCNkZWZp bmUgQ09CSk1BQ1JPUwo+IMKgI2lmIENPTkZJR19WQUFQSQo+IEBAIC05OCw5ICs5NSw3IEBAIHR5 cGVkZWYgc3RydWN0IFFTVkZyYW1lc0NvbnRleHQgewo+IMKgwqDCoMKgIGF0b21pY19pbnQgc2Vz c2lvbl9kb3dubG9hZF9pbml0Owo+IMKgwqDCoMKgIG1meFNlc3Npb24gc2Vzc2lvbl91cGxvYWQ7 Cj4gwqDCoMKgwqAgYXRvbWljX2ludCBzZXNzaW9uX3VwbG9hZF9pbml0Owo+IC0jaWYgSEFWRV9Q VEhSRUFEUwo+IC3CoMKgwqAgcHRocmVhZF9tdXRleF90IHNlc3Npb25fbG9jazsKPiAtI2VuZGlm Cj4gK8KgwqDCoCBBVk11dGV4IHNlc3Npb25fbG9jazsKPiDCoAo+IMKgwqDCoMKgIEFWQnVmZmVy UmVmICpjaGlsZF9mcmFtZXNfcmVmOwo+IMKgwqDCoMKgIG1meEZyYW1lU3VyZmFjZTEgKnN1cmZh Y2VzX2ludGVybmFsOwo+IEBAIC0zNTQsOSArMzQ5LDcgQEAgc3RhdGljIHZvaWQgcXN2X2ZyYW1l c191bmluaXQoQVZIV0ZyYW1lc0NvbnRleHQgKmN0eCkKPiDCoMKgwqDCoCBzLT5zZXNzaW9uX3Vw bG9hZCA9IE5VTEw7Cj4gwqDCoMKgwqAgcy0+c2Vzc2lvbl91cGxvYWRfaW5pdCA9IDA7Cj4gwqAK PiAtI2lmIEhBVkVfUFRIUkVBRFMKPiAtwqDCoMKgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmcy0+ c2Vzc2lvbl9sb2NrKTsKPiAtI2VuZGlmCj4gK8KgwqDCoCBmZl9tdXRleF9kZXN0cm95KCZzLT5z ZXNzaW9uX2xvY2spOwo+IMKgCj4gwqDCoMKgwqAgYXZfZnJlZXAoJnMtPm1lbV9pZHMpOwo+IMKg I2lmIFFTVl9IQVZFX09QQVFVRQo+IEBAIC0xMzAyLDkgKzEyOTUsNyBAQCBzdGF0aWMgaW50IHFz dl9mcmFtZXNfaW5pdChBVkhXRnJhbWVzQ29udGV4dCAqY3R4KQo+IMKgwqDCoMKgIHMtPnNlc3Np b25fZG93bmxvYWRfaW5pdCA9IDA7Cj4gwqDCoMKgwqAgcy0+c2Vzc2lvbl91cGxvYWRfaW5pdMKg wqAgPSAwOwo+IMKgCj4gLSNpZiBIQVZFX1BUSFJFQURTCj4gLcKgwqDCoCBwdGhyZWFkX211dGV4 X2luaXQoJnMtPnNlc3Npb25fbG9jaywgTlVMTCk7Cj4gLSNlbmRpZgo+ICvCoMKgwqAgZmZfbXV0 ZXhfaW5pdCgmcy0+c2Vzc2lvbl9sb2NrLCBOVUxMKTsKPiDCoAo+IMKgwqDCoMKgIHJldHVybiAw Owo+IMKgfQo+IEBAIC0xNjI5LDI0ICsxNjIwLDIwIEBAIHN0YXRpYyBpbnQKPiBxc3ZfaW50ZXJu YWxfc2Vzc2lvbl9jaGVja19pbml0KEFWSFdGcmFtZXNDb250ZXh0ICpjdHgsIGludCB1cGxvYWQp Cj4gwqDCoMKgwqAgaWYgKGF0b21pY19sb2FkKGluaXRlZCkpCj4gwqDCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gMDsKPiDCoAo+IC0jaWYgSEFWRV9QVEhSRUFEUwo+IC3CoMKgwqAgcHRocmVhZF9tdXRl eF9sb2NrKCZzLT5zZXNzaW9uX2xvY2spOwo+IC0jZW5kaWYKPiArwqDCoMKgIGZmX211dGV4X2xv Y2soJnMtPnNlc3Npb25fbG9jayk7CgpmZl9tdXRleF9sb2NrIGlzIGNhbGxlZCB0d2ljZSBpbiB0 aGUgc2FtZSB0aHJlYWQgd2hlbiByZWFsaWduZWQgaXMgMSwgdGhlCmN1cnJlbnQgdGhyZWFkIGlz IGJsb2NrZWQuIFlvdSBtYXkgcnVuIHRoZSBjb21tYW5kIGJlbG93IHRvIHJlcHJvZHVjZSB0aGlz Cmlzc3VlOgoKLi9mZm1wZWcgLWluaXRfaHdfZGV2aWNlIHFzdiAtZiBsYXZmaSAtaSB0ZXN0c3Jj PXNpemU9MzUyeDI4MCxmb3JtYXQ9bnYxMiAtdmYKImh3dXBsb2FkPWV4dHJhX2h3X2ZyYW1lcz0x NiIgLWYgbnVsbCAtCgo+IMKgCj4gwqDCoMKgwqAgaWYgKCFhdG9taWNfbG9hZChpbml0ZWQpKSB7 Cj4gwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBxc3ZfaW5pdF9pbnRlcm5hbF9zZXNzaW9uKGN0eCwg c2Vzc2lvbiwgdXBsb2FkKTsKPiDCoMKgwqDCoMKgwqDCoMKgIGF0b21pY19zdG9yZShpbml0ZWQs IDEpOwo+IMKgwqDCoMKgIH0KPiDCoAo+IC0jaWYgSEFWRV9QVEhSRUFEUwo+IC3CoMKgwqAgcHRo cmVhZF9tdXRleF91bmxvY2soJnMtPnNlc3Npb25fbG9jayk7Cj4gLSNlbmRpZgo+ICvCoMKgwqAg ZmZfbXV0ZXhfdW5sb2NrKCZzLT5zZXNzaW9uX2xvY2spOwo+IMKgCj4gwqDCoMKgwqAgcmV0dXJu IHJldDsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgaW50IHFzdl90cmFuc2Zlcl9kYXRhX2Zyb20oQVZI V0ZyYW1lc0NvbnRleHQgKmN0eCwgQVZGcmFtZSAqZHN0LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgQVZG cmFtZSAqc3JjKQo+ICtzdGF0aWMgaW50IHFzdl90cmFuc2Zlcl9kYXRhX2Zyb21faW50ZXJuYWwo QVZIV0ZyYW1lc0NvbnRleHQgKmN0eCwgQVZGcmFtZQo+ICpkc3QsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBjb25zdCBBVkZyYW1lICpzcmMsIGludCByZWFsaWduZWQpCj4gwqB7Cj4g wqDCoMKgwqAgUVNWRnJhbWVzQ29udGV4dMKgICpzID0gY3R4LT5od2N0eDsKPiDCoMKgwqDCoCBt ZnhGcmFtZVN1cmZhY2UxIG91dCA9IHt7IDAgfX07Cj4gQEAgLTE2NTgsNyArMTY0NSw2IEBAIHN0 YXRpYyBpbnQgcXN2X3RyYW5zZmVyX2RhdGFfZnJvbShBVkhXRnJhbWVzQ29udGV4dAo+ICpjdHgs IEFWRnJhbWUgKmRzdCwKPiDCoMKgwqDCoCAvKiBkb3dubG9hZCB0byB0ZW1wIGZyYW1lIGlmIHRo ZSBvdXRwdXQgaXMgbm90IHBhZGRlZCBhcyBsaWJtZnggcmVxdWlyZXMKPiAqLwo+IMKgwqDCoMKg IEFWRnJhbWUgKnRtcF9mcmFtZSA9ICZzLT5yZWFsaWduZWRfZG93bmxvYWRfZnJhbWU7Cj4gwqDC oMKgwqAgQVZGcmFtZSAqZHN0X2ZyYW1lOwo+IC3CoMKgwqAgaW50IHJlYWxpZ25lZCA9IDA7Cj4g wqAKPiDCoMKgwqDCoCByZXQgPSBxc3ZfaW50ZXJuYWxfc2Vzc2lvbl9jaGVja19pbml0KGN0eCwg MCk7Cj4gwqDCoMKgwqAgaWYgKHJldCA8IDApCj4gQEAgLTE2NjcsOCArMTY1Myw3IEBAIHN0YXRp YyBpbnQgcXN2X3RyYW5zZmVyX2RhdGFfZnJvbShBVkhXRnJhbWVzQ29udGV4dAo+ICpjdHgsIEFW RnJhbWUgKmRzdCwKPiDCoMKgwqDCoCAvKiBBY2NvcmRpbmcgdG8gTVNESyBzcGVjIGZvciBtZnhm cmFtZWluZm8sICJXaWR0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YKPiAxNi4KPiDCoMKgwqDCoMKg ICogSGVpZ2h0IG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNiBmb3IgcHJvZ3Jlc3NpdmUgZnJhbWUg c2VxdWVuY2UgYW5kIGEKPiDCoMKgwqDCoMKgICogbXVsdGlwbGUgb2YgMzIgb3RoZXJ3aXNlLiIs IHNvIGFsbGlnbiBhbGwgZnJhbWVzIHRvIDE2IGJlZm9yZQo+IGRvd25sb2FkaW5nLiAqLwo+IC3C oMKgwqAgaWYgKGRzdC0+aGVpZ2h0ICYgMTUgfHwgZHN0LT5saW5lc2l6ZVswXSAmIDE1KSB7Cj4g LcKgwqDCoMKgwqDCoMKgIHJlYWxpZ25lZCA9IDE7Cj4gK8KgwqDCoCBpZiAocmVhbGlnbmVkKSB7 Cj4gwqDCoMKgwqDCoMKgwqDCoCBpZiAodG1wX2ZyYW1lLT5mb3JtYXQgIT0gZHN0LT5mb3JtYXQg fHwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdG1wX2ZyYW1lLT53aWR0aMKgICE9IEZGQUxJ R04oZHN0LT5saW5lc2l6ZVswXSwgMTYpIHx8Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRt cF9mcmFtZS0+aGVpZ2h0ICE9IEZGQUxJR04oZHN0LT5oZWlnaHQsIDE2KSkgewo+IEBAIC0xNzI4 LDggKzE3MTMsMjUgQEAgc3RhdGljIGludCBxc3ZfdHJhbnNmZXJfZGF0YV9mcm9tKEFWSFdGcmFt ZXNDb250ZXh0Cj4gKmN0eCwgQVZGcmFtZSAqZHN0LAo+IMKgwqDCoMKgIHJldHVybiAwOwo+IMKg fQo+IMKgCj4gLXN0YXRpYyBpbnQgcXN2X3RyYW5zZmVyX2RhdGFfdG8oQVZIV0ZyYW1lc0NvbnRl eHQgKmN0eCwgQVZGcmFtZSAqZHN0LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCBBVkZyYW1lICpzcmMpCj4gK3N0 YXRpYyBpbnQgcXN2X3RyYW5zZmVyX2RhdGFfZnJvbShBVkhXRnJhbWVzQ29udGV4dCAqY3R4LCBB VkZyYW1lICpkc3QsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCBBVkZyYW1lICpzcmMpCj4gK3sKPiArwqDC oMKgwqDCoMKgwqBRU1ZGcmFtZXNDb250ZXh0ICpzID0gY3R4LT5od2N0eDsKClBsZWFzZSBkbyBu b3QgdXNlIHRhYiBmb3IgaW5kZW50YXRpb24uCgo+ICvCoMKgwqAgaW50IHJlYWxpZ25lZCA9IDA7 Cj4gK8KgwqDCoCBpZiAoZHN0LT5oZWlnaHQgJiAxNSB8fCBkc3QtPmxpbmVzaXplWzBdICYgMTUp Cj4gK8KgwqDCoCB7Cgp7IGFuZCBpZiBzdGF0ZW1lbnQgc2hvdWxkIGJlIG9uIHRoZSBzYW1lIGxp bmUgdG8ga2VlcCB0aGUgY29uc2lzdGVudCBjb2RlIHN0eWxlLgoKPiArwqDCoMKgwqDCoMKgwqAg cmVhbGlnbmVkID0gMTsKPiArwqDCoMKgwqDCoMKgwqAgZmZfbXV0ZXhfbG9jaygmcy0+c2Vzc2lv bl9sb2NrKTsKPiArwqDCoMKgIH0KPiArwqDCoMKgIGludCByZXQgPSBxc3ZfdHJhbnNmZXJfZGF0 YV9mcm9tX2ludGVybmFsKGN0eCwgZHN0LCBzcmMsIHJlYWxpZ25lZCk7CgpQbGVhc2UgZG8gbm90 IG1peCBkZWNsYXJhdGlvbiBhbmQgY29kZS4KCj4gK8KgwqDCoCBpZiAocmVhbGlnbmVkKQo+ICvC oMKgwqDCoMKgwqDCoCBmZl9tdXRleF91bmxvY2soJnMtPnNlc3Npb25fbG9jayk7Cj4gKwo+ICvC oMKgwqAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBxc3ZfdHJhbnNmZXJfZGF0 YV90b19pbnRlcm5hbChBVkhXRnJhbWVzQ29udGV4dCAqY3R4LCBBVkZyYW1lCj4gKmRzdCwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgY29uc3QgQVZGcmFtZSAqc3JjLCBpbnQgcmVhbGlnbmVkKQo+IMKgewo+IMKgwqDCoMKg IFFTVkZyYW1lc0NvbnRleHTCoMKgICpzID0gY3R4LT5od2N0eDsKPiDCoMKgwqDCoCBtZnhGcmFt ZVN1cmZhY2UxwqDCoCBpbiA9IHt7IDAgfX07Cj4gQEAgLTE3NDIsNyArMTc0NCw2IEBAIHN0YXRp YyBpbnQgcXN2X3RyYW5zZmVyX2RhdGFfdG8oQVZIV0ZyYW1lc0NvbnRleHQgKmN0eCwKPiBBVkZy YW1lICpkc3QsCj4gwqDCoMKgwqAgLyogbWFrZSBhIGNvcHkgaWYgdGhlIGlucHV0IGlzIG5vdCBw YWRkZWQgYXMgbGlibWZ4IHJlcXVpcmVzICovCj4gwqDCoMKgwqAgQVZGcmFtZSAqdG1wX2ZyYW1l ID0gJnMtPnJlYWxpZ25lZF91cGxvYWRfZnJhbWU7Cj4gwqDCoMKgwqAgY29uc3QgQVZGcmFtZSAq c3JjX2ZyYW1lOwo+IC3CoMKgwqAgaW50IHJlYWxpZ25lZCA9IDA7Cj4gwqAKPiDCoMKgwqDCoCBy ZXQgPSBxc3ZfaW50ZXJuYWxfc2Vzc2lvbl9jaGVja19pbml0KGN0eCwgMSk7Cj4gwqDCoMKgwqAg aWYgKHJldCA8IDApCj4gQEAgLTE3NTEsOCArMTc1Miw3IEBAIHN0YXRpYyBpbnQgcXN2X3RyYW5z ZmVyX2RhdGFfdG8oQVZIV0ZyYW1lc0NvbnRleHQgKmN0eCwKPiBBVkZyYW1lICpkc3QsCj4gwqDC oMKgwqAgLyogQWNjb3JkaW5nIHRvIE1TREsgc3BlYyBmb3IgbWZ4ZnJhbWVpbmZvLCAiV2lkdGgg bXVzdCBiZSBhIG11bHRpcGxlIG9mCj4gMTYuCj4gwqDCoMKgwqDCoCAqIEhlaWdodCBtdXN0IGJl IGEgbXVsdGlwbGUgb2YgMTYgZm9yIHByb2dyZXNzaXZlIGZyYW1lIHNlcXVlbmNlIGFuZCBhCj4g wqDCoMKgwqDCoCAqIG11bHRpcGxlIG9mIDMyIG90aGVyd2lzZS4iLCBzbyBhbGxpZ24gYWxsIGZy YW1lcyB0byAxNiBiZWZvcmUKPiB1cGxvYWRpbmcuICovCj4gLcKgwqDCoCBpZiAoc3JjLT5oZWln aHQgJiAxNSB8fCBzcmMtPmxpbmVzaXplWzBdICYgMTUpIHsKPiAtwqDCoMKgwqDCoMKgwqAgcmVh bGlnbmVkID0gMTsKPiArwqDCoMKgIGlmIChyZWFsaWduZWQpIHsKPiDCoMKgwqDCoMKgwqDCoMKg IGlmICh0bXBfZnJhbWUtPmZvcm1hdCAhPSBzcmMtPmZvcm1hdCB8fAo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB0bXBfZnJhbWUtPndpZHRowqAgIT0gRkZBTElHTihzcmMtPndpZHRoLCAxNikg fHwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdG1wX2ZyYW1lLT5oZWlnaHQgIT0gRkZBTElH TihzcmMtPmhlaWdodCwgMTYpKSB7Cj4gQEAgLTE4MjEsNiArMTgyMSwyMyBAQCBzdGF0aWMgaW50 IHFzdl90cmFuc2Zlcl9kYXRhX3RvKEFWSFdGcmFtZXNDb250ZXh0ICpjdHgsCj4gQVZGcmFtZSAq ZHN0LAo+IMKgwqDCoMKgIHJldHVybiAwOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyBpbnQgcXN2X3Ry YW5zZmVyX2RhdGFfdG8oQVZIV0ZyYW1lc0NvbnRleHQgKmN0eCwgQVZGcmFtZSAqZHN0LAo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgY29uc3QgQVZGcmFtZSAqc3JjKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgUVNWRnJh bWVzQ29udGV4dCAqcyA9IGN0eC0+aHdjdHg7CgpQbGVhc2UgZG8gbm90IHVzZSB0YWIgZm9yIGlu ZGVudGF0aW9uIHRvby4gCgo+ICvCoMKgwqAgaW50IHJlYWxpZ25lZCA9IDA7Cj4gK8KgwqDCoCBp ZiAoc3JjLT5oZWlnaHQgJiAxNSB8fCBzcmMtPmxpbmVzaXplWzBdICYgMTUpCj4gK8KgwqDCoCB7 Cgp7IGFuZCBpZiBzdGF0ZW1lbnQgc2hvdWxkIGJlIG9uIHRoZSBzYW1lIGxpbmUKCj4gK8KgwqDC oMKgwqDCoMKgIHJlYWxpZ25lZCA9IDE7Cj4gK8KgwqDCoMKgwqDCoMKgIGZmX211dGV4X2xvY2so JnMtPnNlc3Npb25fbG9jayk7Cj4gK8KgwqDCoCB9Cj4gK8KgwqDCoCBpbnQgcmV0ID0gcXN2X3Ry YW5zZmVyX2RhdGFfdG9faW50ZXJuYWwoY3R4LCBkc3QsIHNyYywgcmVhbGlnbmVkKTsKClBsZWFz ZSBkbyBub3QgbWl4IGRlY2xhcmF0aW9uIGFuZCBjb2RlLgoKVGhhbmtzCkhhaWhhbwoKCj4gK8Kg wqDCoCBpZiAocmVhbGlnbmVkKQo+ICvCoMKgwqDCoMKgwqDCoCBmZl9tdXRleF91bmxvY2soJnMt PnNlc3Npb25fbG9jayk7Cj4gKwo+ICvCoMKgwqAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiDCoHN0 YXRpYyBpbnQgcXN2X2ZyYW1lc19kZXJpdmVfdG8oQVZIV0ZyYW1lc0NvbnRleHQgKmRzdF9jdHgs Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBBVkhXRnJhbWVzQ29udGV4dCAqc3JjX2N0eCwgaW50IGZsYWdzKQo+IMKgewoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRl dmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5v cmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBs aW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGgg c3ViamVjdCAidW5zdWJzY3JpYmUiLgo=