From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A7F89FF886F for ; Thu, 30 Apr 2026 06:51:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From: References:Cc:To:Subject:Date:Message-ID:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=tAjpC4u3ToxFKVy4JuWJbDffz46YjIzGNmpT0lPMaog=; b=PpDn+jpv35bfCXf0bYF4Y3bMtJ eahzoxPO8hMswVEVbsN/ohuUMp1gSaDQY6Guo0j9+hHsjmgOjS++SwGiPkpr1MDRw6bTU14E4xNi5 bsFzZc0SHOFqt8skGWpMLwxtymoe6bFhkeAlXJ/XWjSORdrKHXi4+I+a7e0l0tG4Uld5XWcLl1x3l w3m4v84fVt0x0c2OZ13WrXb9fZpR9I/CdCT4CUZT5wqO6EKSoI+DHvSR2VSLgxcpiFmSltvSXP6G4 xqco39Ua512Ab/za7lPbqMqo+iTXf7g6XZaUw1ETJlDKi8H+Ou+TBpEwSDFdKjv53BcjWSQD9ZA28 tp4NyRLA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1wILF3-00000004oGC-12Lk; Thu, 30 Apr 2026 06:51:21 +0000 Received: from mail-westusazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c000::1] helo=BYAPR05CU005.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1wILEz-00000004oEv-1H0R; Thu, 30 Apr 2026 06:51:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Sr1K2OdvGTvgPdAwka6RyO2fZRnjvg5UI81YY3IM1+8AHjNjIq2YuAwuCY7OSONk0YWwkarjjozMpT92AT1itEXFKSMC3pHLR9aLiFqN0pdAytuSdVcFW4fv9rE/GSFH/lTfUY2NGlVbt7PbZ6uLJIZjWSCZVstkloTWZZy6hyk0nB/dp4aW8WDjTEzq1YV/je8dk8EHrE6VQOW+XY8n8o/MnxEca8JgMyLQGlM1ZGwxvbMQX4MMOGnfiT60L9IYIRYhEXKGUrNNwF3Ts/LobVKV6S5hltviWooVinZJYUgT6zN5LnUJ448OvEDYOvUgrKrxvfXzZ7pN82Miwm5Ffg== 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=5Krw4Q4OuXK0oCTY3JCtD5HpeU+6a7h2eI/rUyGjjeA=; b=mECEOsxk9wrVnArt4UdqQUozDwI1u0nrV0WKiq4kkrQLF2p0ijHGj2Ipx6ECpfFw58aGorr6c5rfnSc3baWLIzyGwoBXP0tRBJqu/ZDPuUSMcXHHR7NVplcxUw5ad1nT/PXKQSDmJI5y6wdMSJtXRxHM7Ffh3zGC+k5Qm5f1rjiJVvo/Ahpp7dlDejHCXmMVUgMjfIElDfPu+Ch9zdlywW9Q0KlDobeoZFgUICpx4Qp7w7D14cU30lOHoqNT4G5QG06TXg5P+77vorF4J1pmykhc49RSq7Uf662ZqcsT2LT1AxSdcehgEy3LcJD/8NOzGsYhECaEzNK2aX6bNJjveg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Krw4Q4OuXK0oCTY3JCtD5HpeU+6a7h2eI/rUyGjjeA=; b=aPQl8tf1lgTlHuBJkoDeIRNVgt5C7z72gKNjx/1vYv8xS3f/xaWUy88i8rqmZcZ6PiidZeP01QvEiTK5eE6+wp5od4tIAdtUQyEsDqfTsHDxYWslRe2OKJwC/roHqwV44hhfx+02e3AsVfb+VvB/33xVDRFycOl77dRF6aKIPj0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) by SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.16; Thu, 30 Apr 2026 06:51:11 +0000 Received: from PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c]) by PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c%5]) with mapi id 15.20.9870.020; Thu, 30 Apr 2026 06:51:09 +0000 Message-ID: <4c63c81b-14f7-4e6b-a733-2f98e6055ca8@amd.com> Date: Thu, 30 Apr 2026 08:51:02 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH RFC 0/3] media: videobuf2: opt-in dma_resv producer fences for V4L2 dmabuf exports To: Nicolas Dufresne , Markus Fritsche , Tomasz Figa , Marek Szyprowski , Mauro Carvalho Chehab , Sumit Semwal , Ezequiel Garcia , Philipp Zabel , Jacob Chen , Heiko Stuebner Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org References: <20260429195306.239666-1-mfritsche@reauktion.de> <3d8deeb15581b754e4c061d4c4a13657aa08bc3c.camel@ndufresne.ca> Content-Language: en-US From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: <3d8deeb15581b754e4c061d4c4a13657aa08bc3c.camel@ndufresne.ca> X-ClientProxiedBy: FR4P281CA0404.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:cf::6) To PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB5685:EE_|SN7PR12MB8059:EE_ X-MS-Office365-Filtering-Correlation-Id: 804581ca-52b4-4f80-6397-08dea684dc44 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: 4R8qL1A5Ok91ZSIsrixXzNbuo8WOy3G4vQy3xQ0irS1uOdFE7/neroH4jbE/Zjs1pz29l9Z11LQIrCZlihD9WzX74aYilRdSPK4hehnQAtGDecsZ5BK+mxTugDsvLc27z/eSiZofBLW6wHi2qWDCl5It4ZQZyZBxBk81UANqCUPEl4A7nksQLldDgLU9QXUuXUFyXBceZGvqcQMQgcDIe7AaNxlIan2KzJU2GgsrGxCueEqvOSMOsj31pDsJ3qCIDSVZ/PR31CqE4rZVMF+EyWoCSITip3laRtpU2DPJx2gnD4sMU2S8mwowxWWUhTa4K/0hG8E2fblCqXDfP+3MBbyn4K+ijwP3pe0uQQGozAmgCIwrAYgGYwuO01pX4zxXG2ygGWXbmbMewWVqqrmkRLnWOxCoaNLkmOpOkDatcmpEAax87aYS/LVbKhRXPbUtAkYQHLOCkDd6obYQ2tbVwwY9U9Pa+w3bNDFVIRUbQOvRg44ZzAz0hDItZdsnwRG2Tm7yvu+2KeDYEX2ORZbYYcU4tggmoM1hmzRfG8UL8nSnTlfJ6JiadkWX2uNBlx+owjgBm+uKK672UAi/9h+3jveLLRDO1Jpjnkh6VSK6/jxY3BdVoc1NgJcEsqB7jxKU8wjQl/22TCepKGFbjLLr1cunpp35zZbgHP7o2tBQjQ0REM7zOn/e0laFzZQJiwYtbf/d88coFefCR1UWYp8zUiB8ho7f1luoenClEnM2MRkzePBnp5lf4xdXTb+BklW5ghasq0ok2/+unF8zObm2fRwiEvPEcpycZUcte2Jatxs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB5685.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(921020)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SVdzeng5MUxEL2hwUDlZSVZTemNrQmQzYmdmUHhyK0lVRE9ySzdrcHNNR3Ji?= =?utf-8?B?cWpRL1hZdjVQQUdEMUYrcis3R3I2RWwzdTNOdlNvVlhWRUxtbjY1Z0E1M1Yv?= =?utf-8?B?UFUxU0NWYk94YS9wT0pmaUVQaDQ5UXM5KzB1V1VLOTZ5SlBvdzZST3lURVVR?= =?utf-8?B?clJpZDVvekc0U2R0MCtsYTdaZ1RTVkVsR3BRQStPcS9QZ1lacXRhOXE2SStC?= =?utf-8?B?c0tJNW1TNGJWci9DZ1BnRGNnT3p5MkJycHBiamlqVm5XVlo1NjdOdE16dGRB?= =?utf-8?B?U1pKTWNRelBZbXk4czdnUzQzYkVjWmVBV2ZyUW1qbDdkZG1PUXU4cnIweXd0?= =?utf-8?B?OXVWeGc4Nk1sdzdXblgxR1NxVEtGeGZDelIyYTQ3ZFZyaktUQnVtRFhDU1dq?= =?utf-8?B?YmNQbW8vc2d2Y2Z1djZldTNrUjd6Q3VJaFp0WjhCdGNFSnZWYjJGd1J0a0Vj?= =?utf-8?B?VHQxcC9UUzF5ZHcwT2JUS3JZTGRNOFJIdjMwNG1CVkdJVGRHNEphNHYvbm5p?= =?utf-8?B?THdrcHVOUXNuY3AvL1liRUxwakZNVWtPaUJiVlVjdzZ6R3lvdkJLRjJnVkFP?= =?utf-8?B?c2ZoT1A1Sm0yQlFvbzFwVVRXYXI0NXlQRXVsMnozQW5tTmtuRVZXUGdtQ2E2?= =?utf-8?B?ekVGRHVjTi9YQWFNeWNXLzlzT3JJd2ZyMllVeUUydlJGMEdrSkRVYzlPcHdP?= =?utf-8?B?TmxrbFZ3Uzd6RVRpUDJNZmdHdDFwUWRkUXA5NEFBckM3MXZXZGFKWGJ1VlRJ?= =?utf-8?B?MVN5VGt4WVdIV2hHUGxyN0p6d1grRVVhOWRidm42NzBOWEZpS3h2bTkvcXBZ?= =?utf-8?B?anRPaTlGY0g3V203NWwzZVFCNEEwMTFHZUszQkxuQkp0OFFqckNWTnBDMC9T?= =?utf-8?B?WGlad3U0ZWl4YkNPWU9tdkFiNm5laXpoRDU3WTBZclhIa3VFS3ZxZm9ZOXRx?= =?utf-8?B?S1E4TDdIQWFYVENWeEpjMHlzVXNuS0ZqRnVEbjZ4cGJoeUJyZkhmTGtMV1c4?= =?utf-8?B?NHBKajZJVHBVK1cvZG02Qi9WUnJCVDFaQjRLYmZzWVg2d1B5WWxsN0FvUnVQ?= =?utf-8?B?SUpaOHJmblIxZjdYZVRwVlB6KzZWQUtjamI3enNMT0phd3hyNmNMSU5HMzFo?= =?utf-8?B?MkE5MGhhdUpqY1FTdHZTMEovbkZmUlNhREszbzRrbkNXUDcxaHUycjBRN0Ir?= =?utf-8?B?aSt4Yk01K1lsR2FacHNwU3JnSFZlSmkrNGJmZFhmV0w3cDFCd2VFeG1GekVF?= =?utf-8?B?TVdhUnZtaXJNditDYUY1VWRPUUtsZ1RyN2hZOERFZzJKeXVQUFNpb2tCZFlU?= =?utf-8?B?TjMveC9DSXpvYis4cVRuM0g2ZmtsdzBuRW9ybExRb2RiMlhzNTRJVDZteVlD?= =?utf-8?B?WnlOMlNXNE5MdG9vRDQ4QmFGZVRhQTJIREtyTDFabzFHdW5jWkgrdWwwQjlG?= =?utf-8?B?cGdKdmM2eGhWbmtwZGpVcnQ1V0Q1L1RXQlVzcVhFSUxWL085UmwwT0xvWkhT?= =?utf-8?B?bFdZclNLQ2hnaWR3OEVVeGl1cE9XYjJjTmhGVWxTZDBCQ0g5bHQ5MUtnNFRj?= =?utf-8?B?OGlWdUN0VWM1bElEVWUzWi9UK2tmRk1tSTV1SzFJUStYMUpqa0RER0dnL3Ux?= =?utf-8?B?cUxETFpScTJjUTV0cEttVEY2bFJSMFptSUVKdVlPZVo0ZVNVeFQwL2VFNUFs?= =?utf-8?B?aE9zZVNXeDFBT3NoQkZ5ZXNRczg1NTNQOWEzVFcxeWsxYzJmOEtBVDcvb1F0?= =?utf-8?B?MHRVVGwzZGFXcmVhTGJoQkl0SEVTUmowMFlYRmh0VlRaaHRKdkNjNmlsTU5S?= =?utf-8?B?S0liQWYzdU1sdXRwYXBCeU8vekY5RmlsVVc0UlVMRjRLWUZqbXFndk5mMXJQ?= =?utf-8?B?T0doMzlNZDMyWGkwN3pqMk9ZN09NK3VGS0RPa2hhTjhOamhGeG5rWm1HaHJ3?= =?utf-8?B?VnI5SzVYU2R5YWQ4aUdYUlJVbXBYcUFHcklsTk1FN1kyZTRuRnZMYWNhbGo3?= =?utf-8?B?dkFTbmJiUmZhSi9uZTRUK1drakphSFVzSE10WTJhVm54ZTMwUGlXM3dzTGFV?= =?utf-8?B?VnZ1T0hjWDh0a1BOaExjSDJGUG5WU2MwOUg2Zkx3L2JoV0FSckdjSDdFVnB1?= =?utf-8?B?b3cyQ1BWaElDK051VldVWENlWWJ6SGdnY0E0dnE1NzJucHJEYXlvclIyZ0RG?= =?utf-8?B?Y2w2bU5wRWlRLzM3STZ1TnFxajR1QUUwQk9JdE5xZ3FMUVR6MEdRYU03dkpt?= =?utf-8?B?L3Y2WmhWS2ZPMDhtcmlqWjVZRit4V1NBeGw1d1U4S1UwSDhCZE5VMXdMa01p?= =?utf-8?Q?o4VYBt5QaT4rH4DJNY?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 804581ca-52b4-4f80-6397-08dea684dc44 X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5685.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2026 06:51:09.7266 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wt1eK0zZOMNaqCYjU19BNpzevHLBjE+RRdPn+rxUv5Sgci/aTLnz5oaJDRCPTJON X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8059 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260429_235117_428231_084D8604 X-CRM114-Status: GOOD ( 39.31 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gNC8yOS8yNiAyMzoyMiwgTmljb2xhcyBEdWZyZXNuZSB3cm90ZToKPiBIaSBNYXJrdXMsCj4g Cj4gTGUgbWVyY3JlZGkgMjkgYXZyaWwgMjAyNiDDoCAxOTo1MyArMDAwMCwgTWFya3VzIEZyaXRz Y2hlIGEgw6ljcml0wqA6Cj4+IEhpLAo+Pgo+PiBUaGlzIHNlcmllcyBwcm9wb3NlcyBhIHNtYWxs IG9wdC1pbiBBUEkgaW4gdmlkZW9idWYyLWNvcmUgdGhhdCBsZXRzIFY0TDIKPj4gZHJpdmVycyBw b3B1bGF0ZSBhIGRtYV9yZXN2IGV4Y2x1c2l2ZSB3cml0ZSBmZW5jZSBvbiB0aGUgZG1hYnVmcyB0 aGV5Cj4+IGV4cG9ydCB0byB1c2Vyc3BhY2UsIHNpZ25hbGxlZCB3aGVuIHRoZSBidWZmZXIgdHJh bnNpdGlvbnMgdG8KPj4gVkIyX0JVRl9TVEFURV9ET05FLiBUd28gZXhhbXBsZSBkcml2ZXJzICho YW50cm8sIHJvY2tjaGlwLXJnYSkgb3B0IGluCj4+IHRvIGRlbW9uc3RyYXRlIHRoZSBjYWxsIHNo YXBlOyB0aGUgY2hhbmdlIGlzIG5vLW9wIGZvciBldmVyeSBvdGhlcgo+PiBkcml2ZXIuCj4gCj4g VGhhbmtzIGZvciBhdHRlbXB0aW5nIGFnYWluIHRoaXMgZmVhdC4gSSBzZWUgeW91IHdlbnQgZm9y IGltcGxpY2l0IGZlbmNpbmcsIGJ1dAo+IGluIHRoZSBwYXN0IHdlJ3ZlIGJlZW4gcmVjb21tZW5k IHRvIHN0YXkgYXdheSBmcm9tIHRoZXNlIGFuZCBhZG9wdCBhbiBleHBsaWNpdAo+IGZlbmNpbmcg bW9kZWwuIElzIHRoaXMgc29tZXRoaW5nIHlvdSBoYXZlIHN0YXJ0ZWQgdG8gdGhpbmsgYWJvdXQs IGhhdmUgeW91Cj4gcmV2aWV3ZWQgcGFzdCBwcm9wb3NhbCBpbiByZWdhcmQgdG8gZmVuY2VzID8K ClllYWggYWdyZWUsIEkganVzdCB3YW50ZWQgdG8gbm90ZSBzb21ldGhpbmcgc2ltaWxhci4KCklt cGxpY2l0IGZlbmNpbmcgaXMgYmFzaWNhbGx5IGp1c3QgYSB3b3JrYXJvdW5kIGhvdyB0aGUgR1BV IEhXIHVzZWQgdG8gd29yayB+MjB5ZWFycyBhZ28gYW5kIG9ubHkgcmFyZWx5IG1ha2VzIHNlbnNl IHRvZGF5LgoKT24gdGhlIG90aGVyIGhhbmQgcHV0dGluZyBpdCBiZWhpbmQgYSBmbGFnIG1pZ2h0 IGJlIGFjY2VwdGFibGUgd2hlbiB5b3Ugd2FudCB0byBpbnRlcmFjdCB3aXRoIGltcGxpY2l0IHN5 bmNlZCBIVywgZS5nLiBhIEdQVS4KCklmIHlvdSB3YW50IHRvIGV4cG9zZSBhIGRtYV9mZW5jZSB0 byB1c2Vyc3BhY2UgdGhlbiB1c2luZyBhIHN5bmNfZmlsZSBhcyBvdXRwdXQgZnJvbSB0aGUgSU9D VEwgd2hpY2gga2lja3Mgb2YgdGhlIG9wZXJhdGlvbiBpcyB1c3VhbGx5IHRoZSBiZXR0ZXIgYXBw cm9hY2guCgo+Pgo+PiBXaHkKPj4gLS0tCj4+IE1vZGVybiBXYXlsYW5kIGNvbXBvc2l0b3JzIGFu ZCBhbnkgb3RoZXIgdXNlcnNwYWNlIGNvbnN1bWVycyB0aGF0Cj4+IGltcG9ydCBWNEwyLXByb2R1 Y2VkIGRtYWJ1ZnMgYW5kIHdhbnQgdG8gZG8gaW1wbGljaXQgc3luY2hyb25pemF0aW9uCj4+IHRo ZSBzcGVjLWNsZWFuIHdheSAocG9sbChQT0xMSU4pIG9uIHRoZSBkbWFidWYgZmQsIG9yCj4+IERN QV9CVUZfSU9DVExfRVhQT1JUX1NZTkNfRklMRSBmb3IgYSBzeW5jX2ZpbGUpIGN1cnJlbnRseSBn ZXQgZWl0aGVyOgo+Pgo+PiAxLiBBIHN0dWIgZmVuY2UgZnJvbSBkbWFfYnVmX2V4cG9ydF9zeW5j X2ZpbGUoKSwgYmVjYXVzZSB0aGUgZG1hYnVmJ3MKPj4gwqDCoCBkbWFfcmVzdiBoYXMgbm8gZmVu Y2VzIHBvcHVsYXRlZC4gVGhlIGtlcm5lbCBzdWJzdGl0dXRlcwo+PiDCoMKgIGRtYV9mZW5jZV9n ZXRfc3R1YigpIHdoaWNoIGlzIHBlcm1hbmVudGx5IHNpZ25hbGxlZC4gVGhlIGNvbXBvc2l0b3IK Pj4gwqDCoCAic3VjY2Vzc2Z1bGx5IiB3YWl0cyBvbiBhIGZlbmNlIHRoYXQgcmVwcmVzZW50cyBu b3RoaW5nIHJlYWwgYWJvdXQKPj4gwqDCoCB0aGUgcHJvZHVjZXIncyBzdGF0ZS4KPj4gMi4gQSBw b2xsKFBPTExJTikgb24gdGhlIGRtYWJ1ZiBmZCB0aGF0IHJldHVybnMgaW1tZWRpYXRlbHkgZm9y IHRoZQo+PiDCoMKgIHNhbWUgcmVhc29uIOKAlCBkbWFfYnVmX3BvbGxfYWRkX2NiIGZpbmRzIHpl cm8gZmVuY2VzIGluIHRoZSByZXN2LAo+PiDCoMKgIHRyaWdnZXJzIHRoZSB3YWtlIGNhbGxiYWNr IGlubGluZSwgYW5kIHJlcG9ydHMgUE9MTElOIHJlYWR5IGJlZm9yZQo+PiDCoMKgIHRoZSBwcm9k dWNlciBoYXMgYWN0dWFsbHkgc2FpZCBhbnl0aGluZy4KPj4KPj4gVG9kYXkgdGhpcyB3b3JrcyBh cyBhIGhhcHB5IGFjY2lkZW50IG9uIG1vc3QgcGF0aHMgYmVjYXVzZSBjbGllbnRzCj4+IGF0dGFj aCBidWZmZXJzIGFmdGVyIFZJRElPQ19EUUJVRiwgd2hpY2ggdGhlIHVzZXJzcGFjZSBWNEwyIGNv bnRyYWN0Cj4+IGd1YXJhbnRlZXMgb25seSByZXR1cm5zIGEgYnVmZmVyIGFmdGVyIHRoZSBwcm9k dWNlciBpcyBkb25lLiBTbyB0aGUKPj4gaW1wbGljaXQgInRoZSBrZXJuZWwncyBzdHViIGZlbmNl IGlzIGZpbmUgYmVjYXVzZSB0aGUgYnVmZmVyIGlzCj4+IGFscmVhZHkgY29tcGxldGUgYnkgdGhl IHRpbWUgYW55b25lIHBvbGxzIGl0IiBhc3N1bXB0aW9uIGhhcyBoZWxkLgo+IAo+IFRoZXJlIGlz IG5vIGFjY2lkZW50LCBqdXN0IHNheWluZy4gSGF2ZSB5b3Ugc3R1ZGllZCBhbHNvIHRoZSBvdGhl ciBzaWRlIG9mCj4gZmVuY2VzLCB0aGUgb25lIHRoYXQgYWN0dWFsbHkgY2F1c2UgcHJvYmxlbSB3 aXRoIEZyZWVkcmVubyBhbmQgRXRuYXZpdiA/IFRvIG1lCj4gdGhlc2Ugd291bGQgYmUgaGlnaGVy IHByaW9yaXR5IHNpbmNlIHRoZXkgYXJlIGtub3duIHRvIGNhdXNlICJiYWNrIGZsYXNoIiBraW5k Cj4gb2YgYnVncywgc3BlY2lhbGx5IGZvciBjb21wb3NpdG9yIHRoYXQgYXJlIG5vdCBleHBlY3Rp bmcgR0wgZHJpdmVyIHRvIHBsYWNlCj4gaW1wbGljaXQgZmVuY2VzIG9uIGltcG9ydGVkICh2NGwy IGFsbG9jYXRlZCkgYnVmZmVycy4KPiAKPj4KPj4gQnV0Ogo+Pgo+PiAtIEl0J3MgYSBjb250cmFj dCBnYXAuIFRoZSBrZXJuZWwgY2xhaW1zIHRvIGV4cG9zZSBpbXBsaWNpdCBzeW5jOyBpdAo+PiDC oCBkb2VzIG5vdCwgZm9yIFY0TDIgcHJvZHVjZXJzLgo+PiAtIEl0IHBhaWQgbGF0ZW5jeSBmb3Ig bm90aGluZy4gRXZlcnkgV2F5bGFuZCBmcmFtZSBmcm9tIGEgVjRMMgo+PiDCoCBwcm9kdWNlciBw YXlzIGEgRE1BX0JVRl9JT0NUTF9FWFBPUlRfU1lOQ19GSUxFIHJvdW5kLXRyaXAgZm9yIGEKPj4g wqAgZmVuY2UgdGhhdCdzIHN0dWItc2lnbmFsbGVkLiBPbiBNYWxpLWNsYXNzIGhhcmR3YXJlIChS SzM1NjYgV2F5bGFuZAo+PiDCoCBjaHJvbWUgdmlkZW8gcGxheWJhY2spLCB0aGlzIGNvbnRyaWJ1 dGVkIHRvIGNvbXBvc2l0b3Igc3RhbGxzLgo+PiDCoCBSZW1vdmluZyB0aGUgd2FpdCBhdCB0aGUg Y29tcG9zaXRvciBsZXZlbCBpcyBhIHdvcmthcm91bmQsIG5vdCBhCj4+IMKgIGZpeC4KPj4gLSBJ dCBibG9ja3MgZG93bnN0cmVhbSBjb25zdW1lcnMgZnJvbSBkb2luZyB0aGUgcmlnaHQgdGhpbmcu IEEKPj4gwqAgV2F5bGFuZCBjb21wb3NpdG9yIHRoYXQgZGVmZW5zaXZlbHkgd2FpdHMgb24gYSBz eW5jX2ZpbGUgZ2V0cyBhCj4+IMKgIHN0dWItZmVuY2UgcGFzcy10aHJvdWdoIHdpdGggbm8gYWN0 dWFsIGdhdGluZzsgaWYgdGhlIFY0TDIgZHJpdmVyCj4+IMKgIGV2ZXIgaGFzIGFuIG91dC1vZi1i YW5kIHBhdGggdGhhdCByZWxlYXNlcyB0aGUgYnVmZmVyIGJlZm9yZQo+PiDCoCBmaW5pc2hpbmcg dGhlIHdyaXRlLCB0aGVyZSBpcyBubyBmZW5jZSB0byBnYXRlIG9uLgo+IAo+IFNvbWUgdGhpbmdz IGRvbid0IGFkZCB1cCBoZXJlLiBJIHRoaW5rIEkgd2FudCB0byByZW1pbmQgdGhhdCB0aGVyZSBp cyBhIGNvbnRyYWN0Cj4gaW4gcmVnYXJkIHRvIGRlbGl2ZXJpbmcgYSBmZW5jZSB0byB1c2Vyc3Bh Y2UuIE9uZSBvZiB0aGUgbW9zdCBpbXBvcnRhbnQgYXNwZWN0Cj4gb2YgZmVuY2VzIGlzIHRoYXQg dGhleSBtdXN0IGluIGZpbml0IHRpbWUgYmUgc2lnbmFsZWQsIHJlZ2FyZGxlc3Mgd2hhdCB1c2Vy c3BhY2UKPiBkZWNpZGVkIHRvIGRvIG5leHQuIEFuZCBmb3IgdGhhdCByZWFzb24sIHlvdSBzaG91 bGRuJ3QgZGVsaXZlciBhIGZlbmNlIHRvCj4gdXNlcnNwYWNlIGlmIGl0cyBub3QgYXJtZWQuIElu IG15IHJlYWRpbmcsIHlvdSBhcmUgZGVsaXZlcmluZyB0aGF0IGZlbmNlIGF0Cj4gUUJVRihjYXB0 dXJlKSB0aW1lLCBqdXN0IGxpa2Ugd2hhdCBHdXN0YXZvIHdhcyB0cnlpbmcgdG8gZG8gcHJldmlv dXNseS4gSXRzIGV2ZW4KPiB3b3JzZSBpZiB5b3UgZGVsaXZlciBpdCB0byB5b3VyIGNvbXBvc2l0 b3IgYWxsb3dpbmcgdGhhdCBjb21wb3NpdG9yIHRvIGhhbmcKPiBmb3JldmVyIGJ5IG5vdCBmZWVk aW5nIGFueSBiaXRzdHJlYW0uCgorMQoKPiBMZXQncyB0YWtlIEhhbnRybyBkcml2ZXIgYXMgYW4g ZXhhbXBsZS4gVGhlIHJpZ2h0IG1vbWVudCB0byBkZWxpdmVyIHRoZSBmZW5jZSBpcwo+IGVpdGhl ciByaWdodCBiZWZvcmUgd2Ugc2V0IHRoZSBERUMgYml0IG9uIHRoZSBjb250cm9sIHJlZ2lzdGVy LCBvciBzb21ld2hlcmUKPiBiZWZvcmUgdGhhdCB3aGVuIHlvdSBoYXZlIGJpdHN0cmVhbSwgcGFy YW1ldGVycyBhbmQgcmVxdWVzdCBxdWV1ZWQuIEF0IHRoYXQKPiBtb21lbnQsIHlvdSBhcmUgZ3Vh cmFudGllZCB0aGF0IHRoZSBkZWNvZGUgd2lsbCBlaXRoZXIgZmluaXNoIG9yIGZhaWwgKHllcywg aXQKPiBjYW4gZmFpbCwgYW5kIGl0cyBleHRyZW1lbHkgY29tbW9uIHdpdGggbGl2ZSBzdHJlYW0s IG9yIHdoZW4gYXBwbGljYXRpb24gY2FsbHMKPiBzdHJlYW1vZmYsIHNpbmNlIGluIHY0bDIsIHdl IGNhbmNlbCB3b3JrKS4gUHJpb3IgdG8gdGhhdCwgdXNlciBtYXkgc3RhcnZlIHRoZQo+IE9VVFBV VCBxdWV1ZSAodGhlIGJpdHN0cmVhbSkgYW5kIGNhdXNlIHRoZSBmZW5jZSB0byBob2xkIGZvcmV2 ZXIuIFRoaXMgd291bGQKPiBicmVhayB0aGUgY29udHJhY3QgSSBtZW50aW9uIGVhcmxpZXIuCgpF eGFjdGx5IHRoYXQgeWVzLgoKUmVnYXJkaW5nIGZhaWxlZCBvciBjYW5jZWxlZCBzdWJtaXNzaW9u IGhhbmRsaW5nIHRoYXQgaXMgbm90IHNvIG11Y2ggb2YgYSBwcm9ibGVtIHNpbmNlIHdlIGFsc28g aGF2ZSBwcm9wZXIgZXJyb3Igc2lnbmFsaW5nIG9uIGZlbmNlcy4KCkJ1dCB3aGF0IGlzIHVzdWFs bHkgcHJvYmxlbWF0aWMgYXMgd2VsbCBhcmUgdGhpbmdzIGxpa2UgZHluYW1pYyBtZW1vcnkgbWFu YWdlbWVudCwgZS5nLiB3aGVuIEhXIHVzZXMgdGhlIFBDSWUgUFJJIGludGVyZmFjZSBvciBzaW1p bGFyIGZ1bmN0aW9uYWxpdHkgb24gb3RoZXIgYnVzIHN5c3RlbXMuCgpHZXR0aW5nIHRoZSBjb250 cmFjdCByaWdodCBpcyBpbmRlZWQgcmVhbGx5IHRyaWNreSBidXQgdW5mb3J0dW5hdGVseSBtYW5k YXRvcnkgYmVjYXVzZSB5b3Ugb3RoZXJ3aXNlIHJ1biBpbnRvIGRlYWRsb2NrcyBzb29uZXIgb3Ig bGF0ZXIuCgo+IFRob3VnaCwgaWYgeW91IGF0dGFjaCB0aGUgZmVuY2UgYXQgdGhhdCBtb21lbnQs IHlvdSB3aWxsIG5lZWQgdG8gZGVzaWduIGhvdyB0bwo+IHNpZ25hbCB0aGUgZmVuY2UgcmVhZGlu ZXNzIChyYXRoZXIgdGhlbiB0aGUgZGF0YSByZWFkaW5lc3MpLiBPbmUgaWRlYSB3b3VsZCBiZQo+ ICh3aXRoIHVzZXJzcGFjZSBvcHRpbmctaW4pIHRvIHNpZ25hbCB0aGUgcXVldWUgYXQgdGhhdCBt b21lbnQuIEJ1dCB0aGVuIHlvdQo+IGNhbid0IGRvIHRoZSBtZW1vcnkgbWFuYWdlbWVudCBvcGVy YXRpb24geW91IHdvdWxkIG5vcm1hbGx5IGRvIGluIERRQlVGLiBUaGlzIG9mCj4gY291cnNlIGRv bid0IGFwcGx5IHRvIGhhbnRybywgd2hpY2ggaGFzIG5vIGRldmljZSBjYWNoZSwgYnV0IHdlIGNh bid0IGRlc2lnbgo+IHNvbWV0aGluZyBpbiB2YjIgZm9yIHRoZSBvbGQgSFcuIFNvIHdlJ2QgbmVl ZCB0byBtb3ZlIG1lbW9yeSBtYW5hZ2VtZW50IHNvbXdoZXJlCj4gZWxzZSwgbWF5YmUgYnVmZmVy X2RvbmUsIHRob3VnaCB5b3UgaGF2ZSB0byBjYXJlZnVsbHkgbWFrZSBzdXJlIGluIHdoaWNoIGNv bnRleHQKPiB5b3UgZG8gdGhhdCwgeW91IGNhbid0IHNsZWVwIGluIGFuIElSUS4KPiAKPiBUaGVy ZSBpcyBhbiBvYnZpb3VzIGJlbmVmaXQgb2YgYmFzaW5nIHlvdXIgc29sdXRpb24gb24KPiBETUFf QlVGX0lPQ1RMX0VYUE9SVF9TWU5DX0ZJTEUsIG9uY2UgeW91IGdldCB0aGVyZSwgeW91J2xsIGRp c2NvdmVyIHRoYXQgdGhlcmUKPiBpcyB2ZXJ5IGxpdHRsZSByb29tIGluIHY0bDJfYnVmZmVyLCBh bmQgdGhhdCB3YXMgY2F1c2luZyBhIGxvdCBvZiBoZWFkYWNoZSB0bwo+IHByZXZpb3VzIHBlb3Bs ZSBhdHRlbXB0aW5nIHRoaXMuIFRob3VnaCwgaWYgd2UgbG9vayBmb3J3YXJkLCB3ZSBjb3VsZCBh bHNvCj4gY29uc2lkZXIgdGhpcyBhIGZlYXR1cmUgb2YgdGhlIG1lZGlhX3JlcXVlc3QuIFF1ZXVp bmcgYSByZXF1ZXN0IGNvdWxkIG1heWJlCj4gZGVsaXZlciBhIGZlbmNlLCBhc3N1bWluZyBmZXcg cHJlLWNvbmRpdGlvbiB0aGF0IGd1YXJhbnRlZSBleGVjdXRpb24gKG9yCj4gZmFpbHVyZSkgYXJl IG1ldC4gV2UndmUgc2VlbiB3aXRoIERXMTAwIHJlY2VudGx5IHRoYXQgaXRzIHJhdGhlciBlYXN5 IHRvIGNvbnZlcnQKPiBhbiBleGlzdGluZyBtMm0gZHJpdmVyIHRvIHJlcXVlc3QuIFRoZSBtZWRp YSBBUEkgaXMgYSBtdWNoIG1vcmUgb3BlbiBjYW52YXMgdG8KPiBkZXNpZ24gbmV3IG1lY2hhbmlz bS4gV2UgY291bGQgaGF2ZSBhIHJlYWxseSBzaW1wbGUgaW9jdGwgdGhhdCBhdHRhY2ggb3V0IGZl bmNlcwo+IHRvIHJlcXVlc3QsIGFuZCBpbiBhIGZ1dHVyZSBob29rIGl0IHRvIG91ciBvd24gZGVw ZWRlbmN5IG1hbmFnZXIuCgpNeSByZXF1ZXN0IHdpdGggdGhlIERNQS1idWYgbWFpbnRhaW5lciBo YXQgb24gd291bGQgYmUgdG8gY29ycmVjdGx5IGFubm90YXRlIHlvdXIgZmVuY2Ugc3VibWlzc2lv biBwYXRoIHRoZSB3aXRoIGxvY2tkZXAgcHJpbWl0aXZlcyBTaW1hIHdyb3RlIGFuZCB0aGVuIG1h a2UgYSBmZXcgdGVzdCBydW5zIHdpdGggbG9ja2RlcCBlbmFibGVkLgoKSXQncyBub3QgYSBwcm92 ZSBvZiBjb3JyZWN0bmVzcyBidXQgdGhpcyBhdCBsZWFzdCBnaXZlcyB5b3UgYSBnb29kIGhpbnQg aWYgeW91ciBsb2NraW5nIG9yZGVyIGFuZCBtZW1vcnkgYWxsb2NhdGlvbiBwYXRocyBhcmUgY29y cmVjdC4KClJlZ2FyZHMsCkNocmlzdGlhbi4KCj4gCj4gSSdtIHNpbXBseSB0aHJvd2luZyBpZGVh cywgSSBjb3VsZCBoYXZlIG1pc3NlZCBmZXcgdGhpbmdzIGluIHlvdXIgUG9DLCBsZXQgbWUKPiBr bm93Lgo+IAo+IE5pY29sYXMKPiAKPj4gV2hhdAo+PiAtLS0tCj4+IFBhdGNoIDEgYWRkczoKPj4K Pj4gLSBzdHJ1Y3QgZG1hX2ZlbmNlICpyZWxlYXNlX2ZlbmNlIHRvIHN0cnVjdCB2YjJfYnVmZmVy Cj4+IC0gdTY0IGRtYV9yZXN2X2ZlbmNlX2NvbnRleHQgKyBhdG9taWM2NF90IGRtYV9yZXN2X2Zl bmNlX3NlcW5vICsKPj4gwqAgc3BpbmxvY2tfdCBkbWFfcmVzdl9mZW5jZV9sb2NrIHRvIHN0cnVj dCB2YjJfcXVldWUKPj4gLSB2YjJfYnVmZmVyX2F0dGFjaF9yZWxlYXNlX2ZlbmNlKHZiKSDigJQg ZHJpdmVycyBjYWxsIHRoaXMgZnJvbSB0aGVpcgo+PiDCoCBidWZfcXVldWUgY2FsbGJhY2suIEFs bG9jYXRlcyBhIGRtYV9mZW5jZSBvbiB0aGUgcXVldWUncyBmZW5jZQo+PiDCoCBjb250ZXh0LCBh dHRhY2hlcyBpdCBhcyBETUFfUkVTVl9VU0FHRV9XUklURSBvbiBlYWNoIHBsYW5lJ3MKPj4gwqAg ZG1hYnVmLT5yZXN2LiBOby1vcCBmb3IgYnVmZmVycyB3aXRob3V0IGV4cG9ydGVkIGRtYWJ1ZnMu Cj4+IC0gdmIyX2J1ZmZlcl9kb25lKCkgZXh0ZW5kZWQgdG8gc2lnbmFsK3B1dCB0aGUgZmVuY2Ug aWYgYXR0YWNoZWQsCj4+IMKgIHNvIHRoZSBwcm9kdWNlcidzIGNvbXBsZXRpb24gc2lnbmFsIGxh bmRzIGluIHRoZSByZXN2IHN5bmNocm9ub3VzbHkKPj4gwqAgd2l0aCB0aGUgdXNlcnNwYWNlIERR QlVGIHdha2V1cC4KPj4KPj4gUGF0Y2hlcyAyIGFuZCAzIGFkZCBhIHNpbmdsZSBjYWxsIHRvIHRo ZSBoZWxwZXIgZnJvbSBoYW50cm9fYnVmX3F1ZXVlCj4+IGFuZCByZ2FfYnVmX3F1ZXVlIHJlc3Bl Y3RpdmVseS4gQm90aCBhcmUgZGVtb25zdHJhdGlvbiBkcml2ZXJzOyBvdGhlcgo+PiB2YjIgZHJp dmVycyBjYW4gb3B0IGluIGluY3JlbWVudGFsbHkgd2l0aCB0aGUgc2FtZSBvbmUtbGluZSBjaGFu Z2UuCj4+Cj4+IFRlc3RlZCBvbgo+PiAtLS0tLS0tLS0KPj4gUGluZVRhYjIgKFJLMzU2NiAvIE1h bGktRzUyIHBhbmZyb3N0IC8gbWFpbmxpbmUgNi4xOS4xMCwgdGhpcyBzZXJpZXMKPj4gYmFja3Bv cnRlZCksIHBsYXlpbmcgMTA4MHAzMCBILjI2NCBpbiBjaHJvbWl1bSB1bmRlciBLREUgUGxhc21h IDYuNi40Cj4+IFdheWxhbmQuIFRoZSB0ZXN0IGhhcm5lc3MgaXMgdGhlIGNocm9taXVtLWZvdXJp ZXIgcGF0Y2ggc2VyaWVzIGF0Cj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJmcml0L2ZvdXJpZXLC oOKAlCBjaHJvbWl1bSBwbHVzIGEgS1dpbiBwYXRjaAo+PiB0aGF0ICpwcmV2aW91c2x5IGJ5cGFz c2VkKiBUcmFuc2FjdGlvbjo6d2F0Y2hEbWFCdWYgYmVjYXVzZSB0aGUKPj4ga2VybmVsLXNpZGUg ZmVuY2Ugd2FzIHN0dWItc2lnbmFsbGVkLiBXaXRoIHRoaXMgc2VyaWVzIGFwcGxpZWQsIHRoZQo+ PiBieXBhc3MgYmVjb21lcyB1bm5lY2Vzc2FyeTsgS1dpbidzIGZlbmNlIHdhaXQgY29tcGxldGVz IGNvcnJlY3RseQo+PiBiZWNhdXNlIHRoZSBmZW5jZSBub3cgc2lnbmFscyB3aGVuIGhhbnRybyBj b21wbGV0ZXMgdGhlIGNhcHR1cmUKPj4gYnVmZmVyIHdyaXRlLgo+Pgo+PiBFbmQtdG8tZW5kIHJl c3VsdCBiZWZvcmUgdGhlIGtlcm5lbCBwYXRjaCAoY2hyb21pdW0gKyBRdCA2IHBhdGNoZXMgKwo+ PiBLV2luIHdhdGNoRG1hQnVmIGJ5cGFzcyk6IDEwODBwMzAgSC4yNjQgcGxheXMgdGhyb3VnaCwg fjgxJSBjb21iaW5lZAo+PiBjaHJvbWUgQ1BVLCBidXQgdGhlIHdhdGNoRG1hQnVmIGJ5cGFzcyB3 ZWFrZW5zIEtXaW4ncyBkZWZlbnNlcyBhZ2FpbnN0Cj4+IG1pc2JlaGF2aW5nIGNsaWVudHMuCj4+ Cj4+IEVuZC10by1lbmQgcmVzdWx0IGFmdGVyIHRoZSBrZXJuZWwgcGF0Y2ggKGNocm9taXVtICsg UXQgNiBwYXRjaGVzICsKPj4gcGxhaW4gdW5tb2RpZmllZCBLV2luKTogMTA4MHAzMCBILjI2NCBw bGF5cyB0aHJvdWdoIHdpdGggdGhlIHNhbWUgQ1BVCj4+IHByb2ZpbGUsIEtXaW4ncyB3YXRjaERt YUJ1ZiB3YWl0IGNvbXBsZXRlcyB3aXRoaW4gbWljcm9zZWNvbmRzIGFnYWluc3QKPj4gdGhlIG5v dy1yZWFsIHByb2R1Y2VyIGZlbmNlLCBubyBkZWZlbnNlcyB3ZWFrZW5lZC4KPj4KPj4gV2hhdCdz IG1pc3NpbmcgaW4gdGhpcyBSRkMKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gLSBP dGhlciB2YjItdXNpbmcgZHJpdmVycyBkb24ndCBvcHQgaW4uIEVhY2ggbWFpbnRhaW5lciBzaG91 bGQgbG9vawo+PiDCoCBhdCB0aGVpciBkcml2ZXIgYW5kIGRlY2lkZS4gVGhlIGhhbnRybyArIHJn YSBwYXRjaGVzIHNob3cgdGhlCj4+IMKgIHNoYXBlOyBjb3B5aW5nIGl0IHRvIG90aGVyIGRyaXZl cnMgc2hvdWxkIGJlIHN0cmFpZ2h0Zm9yd2FyZC4KPj4gLSBGb3IgZHJpdmVycyB0aGF0IGhhdmUg aW50ZXJtZWRpYXRlIGltYWdlLXByb2Nlc3NvciBzdGFnZXMgKGUuZy4KPj4gwqAgQ1NJIC0+IElT UCAtPiB1c2VyKSwgdGhlIGZlbmNlIHNlbWFudGljcyBhY3Jvc3Mgc3RhZ2UgYm91bmRhcmllcwo+ PiDCoCBhcmUgb3V0IG9mIHNjb3BlIGhlcmUuIFRoaXMgc2VyaWVzIG9ubHkgYWRkcmVzc2VzIHRo ZSBwcm9kdWNlci10by0KPj4gwqAgdXNlcnNwYWNlIGVkZ2UuCj4+IC0gTm8gc2VsZnRlc3QuIHZp ZGVvYnVmMiBkb2Vzbid0IGhhdmUgYSBncmVhdCBpbi10cmVlIHNlbGZ0ZXN0IGhhcm5lc3MKPj4g wqAgZm9yIGRtYWJ1ZiBmbG93czsgdGhlIHZhbGlkYXRpb24gaXMgZW5kLXRvLWVuZCBhdCB0aGUg dXNlcnNwYWNlCj4+IMKgIGNvbnN1bWVyIGxldmVsIChLV2luLCBpbiBvdXIgY2FzZSkuCj4+Cj4+ IFJldmlld3MgZXNwZWNpYWxseSB3ZWxjb21lIG9uOgo+Pgo+PiAtIFRoZSBkZWNpc2lvbiB0byBt YWtlIHRoaXMgb3B0LWluIHBlciBkcml2ZXIgdnMuIGF1dG9tYXRpYyBmb3IgYWxsCj4+IMKgIHZi Mi1DQVBUVVJFIHF1ZXVlcy4gQXV0by1vbiB3b3VsZCBmb3JjZSBldmVyeSBkcml2ZXIgdG8gYmUg YXVkaXRlZDsKPj4gwqAgb3B0LWluIGlzIGluY3JlbWVudGFsIGFuZCBzYWZlciBidXQgbGVhdmVz IHRoZSBjb250cmFjdCBnYXAgZm9yCj4+IMKgIGRyaXZlcnMgbm9ib2R5IHRvdWNoZXMuCj4+IC0g V2hldGhlciB2YjJfYnVmZmVyX2RvbmUgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHNpZ25hbCB2cy4g YW4gZWFybGllcgo+PiDCoCBob29rIChlLmcuIGltbWVkaWF0ZWx5IGFmdGVyIERNQS1mcm9tLWRl dmljZSBmaW5pc2hlcykuIEZvciBoYW50cm8KPj4gwqAgdGhlIHR3byBhcmUgZWZmZWN0aXZlbHkg dGhlIHNhbWU7IGZvciBkcml2ZXJzIHdpdGggYXN5bmNocm9ub3VzCj4+IMKgIHBvc3QtcHJvY2Vz c2luZyB0aGV5IG1heSBkaWZmZXIuCj4+IC0gVGhlIGNob2ljZSBvZiBETUFfUkVTVl9VU0FHRV9X UklURSDigJQgd2UgYXJlIGVtaXR0aW5nIHRoZSBwcm9kdWNlcidzCj4+IMKgIHdyaXRlIGNvbXBs ZXRpb24sIHNvIFdSSVRFIG1hdGNoZXMgZG1hLWJ1ZiBkb2N1bWVudGF0aW9uLCBidXQgYQo+PiDC oCBzYW5pdHkgY2hlY2sgaXMgd2VsY29tZS4KPj4KPj4gQ2hlZXJzLAo+PiBNYXJrdXMKPj4KPj4K Pj4gTWFya3VzIEZyaXRzY2hlICgzKToKPj4gwqAgbWVkaWE6IHZpZGVvYnVmMjogYWRkIGRtYV9y ZXN2IHJlbGVhc2UtZmVuY2UgaGVscGVyCj4+IMKgIG1lZGlhOiBoYW50cm86IGF0dGFjaCBkbWFf cmVzdiByZWxlYXNlIGZlbmNlIGF0IGJ1Zl9xdWV1ZQo+PiDCoCBtZWRpYTogcm9ja2NoaXAtcmdh OiBhdHRhY2ggZG1hX3Jlc3YgcmVsZWFzZSBmZW5jZSBhdCBidWZfcXVldWUKPj4KPj4gwqAuLi4v bWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5jwqDCoCB8IDk1ICsrKysrKysr KysrKysrKysrKysKPj4gwqBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwL3JnYS9yZ2Et YnVmLmMgfCAxMCArKwo+PiDCoC4uLi9tZWRpYS9wbGF0Zm9ybS92ZXJpc2lsaWNvbi9oYW50cm9f djRsMi5jwqAgfCAxMiArKysKPj4gwqBpbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmjCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyOSArKysrKysKPj4gwqA0IGZpbGVzIGNoYW5n ZWQsIDE0NiBpbnNlcnRpb25zKCspCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXgtcm9ja2NoaXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlw QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1yb2NrY2hpcAo=