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 A1BF5E82CBD for ; Wed, 27 Sep 2023 18:31:37 +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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=OalOsRvWj895hBicnCKnMUvrZtSyPsmIzENUoumVGeQ=; b=NOvCDXJbEnkoRY vADy7EXys+SFQ5AOaObejBOWGjDY4vt3Kd0e/O5hYOiYbuQ00NlpUgtHp5+4t+YckPjXiCasntYoW kaPajRLZgZ6iUI8nq7NxE9ivQ2+dUpR0X3NE1I3S67ScEfjgVHxJVDroBHbbo3IiDtKOCCMT+ZZNC XwVJArNb2UeOAF9rbnZZcUME+oBnOgk3O0Gtjpv4qk1q+iJ2oy3fMGl0yZvREMEFi15evDfshv+Bc BbFA7+aw0RJ2rNXfcSm+209pLYlXKTi8IXfXkfiiiRk+vj+VNH4xm8mZalooVwy3Extce2m2vHkmF VdLwehEHXrbDb2iWTZqg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qlZJP-001a9d-1v; Wed, 27 Sep 2023 18:31:03 +0000 Received: from mail-il1-x133.google.com ([2607:f8b0:4864:20::133]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qlZJL-001a8w-15 for linux-arm-kernel@lists.infradead.org; Wed, 27 Sep 2023 18:31:01 +0000 Received: by mail-il1-x133.google.com with SMTP id e9e14a558f8ab-3514ece5ed4so22085ab.1 for ; Wed, 27 Sep 2023 11:30:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1695839456; x=1696444256; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=MIjAuBLH35Ezjhzsj4X9szK/gj5rFSWTPmQeixZLFj8=; b=Y1+Tl1jFUwYymOkuussDJsy0+axXi82/Np/hL+ijnT9XSNpLPJryDmz9NdJiXNAdOp J0MmHD/SZ51rstNLo1HZlGYnlhlglKpid6m3FLJTVzowMOBCmZ3KTfEqYXymdA4W4xTE 7thAwtll2P7rYn+dP0Tr5CIwWDdDgmY1L3Q6Fb8tJaDlbEu5bwhSedQm66FJbuj1wr5J X6kkPL5DLRWVR02Ar1pNqCI+pwXisnpk73/1cjO/wEyySGktTijEDpiMhY/aX8hYB7wX 4x2J4+l3OG0KpVkFiqJi6ReXxonL58fITY2bUpmQjtP4VR/BD+PaQPTmZS7G+ZRg5Ld2 rE5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695839456; x=1696444256; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MIjAuBLH35Ezjhzsj4X9szK/gj5rFSWTPmQeixZLFj8=; b=SAd/EL0pubEIy+d9u6URLsFMlwbCeyedg6XPWDppeSIpxE34Y08lwFqWGvvtIna65X /ctsaEfj8wu4Fi6CHodgOMqkD06WxrTSHgILlnwUxqFZ8jE71rpuS+gZz/yG8we8/GSc LunU12mTgbxUhYf8tYU/vJslzFPv1lwNsUeh4DUAuCLEVWAheiRK6TAWOxUuebPpRfj4 rU7q559nHq1atBaKH9bmRXaw0YUgg6IEpqkDGr3Cc7PhSOz86b7wZqgGeOjIQAhEJfIi 8UEJWfEcf55RnN7HAsYmi3NPgGy45twdCNYlfkZ+NQeHuO3Fo1YzGvK8HIyxP3pE9LiK 0M+g== X-Gm-Message-State: AOJu0YzzS5fxgdtj+zLGh6S45KY+h5QOwAspemyIK0lyrAKzi7uasehR LrLwaf9ks86UkerO77zAUyzix80pngvqDnp+iBj7 X-Google-Smtp-Source: AGHT+IEBzfsnNoqmTprE6FHEsgZGaX4uGBHU2VwOFBRqtTLDhWDti9N+DZ17As3ZWOEqg/HPosXrOSIPTqYDQHRd+Gc= X-Received: by 2002:a05:6e02:214c:b0:348:d358:467c with SMTP id d12-20020a056e02214c00b00348d358467cmr723464ilv.2.1695839455522; Wed, 27 Sep 2023 11:30:55 -0700 (PDT) MIME-Version: 1.0 References: <20230911125936.10648-1-yunfei.dong@mediatek.com> <20230911125936.10648-13-yunfei.dong@mediatek.com> <1df3e79b84933dda0313d0d9719220dbc06c9022.camel@collabora.com> <5307203d79c0d90cc742a315bb161fa796b9960f.camel@mediatek.com> <00302ac675af858eb11d8398f100921af806bc30.camel@mediatek.com> <3e053387-4ba6-49bc-a59a-46854e0a7c26@xs4all.nl> <71cadec5-06df-4490-9b06-e3af6bb43498@xs4all.nl> In-Reply-To: From: Jeffrey Kardatzke Date: Wed, 27 Sep 2023 11:30:39 -0700 Message-ID: Subject: Re: [PATCH 12/14] media: medkatek: vcodec: set secure mode to decoder driver To: Hans Verkuil Cc: =?UTF-8?B?WXVuZmVpIERvbmcgKOiRo+S6kemjnik=?= , "nicolas.dufresne@collabora.com" , "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "frkoenig@chromium.org" , "stevecho@chromium.org" , "wenst@chromium.org" , "nhebert@chromium.org" , "linux-media@vger.kernel.org" , "devicetree@vger.kernel.org" , "daniel@ffwll.ch" , Project_Global_Chrome_Upstream_Group , "benjamin.gaignard@collabora.com" , "hsinyi@chromium.org" , "linux-arm-kernel@lists.infradead.org" , "angelogioacchino.delregno@collabora.com" , "nfraprado@collabora.com" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230927_113059_380107_AFCA3C99 X-CRM114-Status: GOOD ( 79.28 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org U291bmRzIGdyZWF0IEhhbnMhIEknbGwgd29yayB3aXRoIE1lZGlhdGVrIHRvIHVwZGF0ZSB0aGVp ciBjb2RlIGZvciB0aGF0LgoKT24gV2VkLCBTZXAgMjcsIDIwMjMgYXQgMTI6MjbigK9BTSBIYW5z IFZlcmt1aWwgPGh2ZXJrdWlsLWNpc2NvQHhzNGFsbC5ubD4gd3JvdGU6Cj4KPiBPbiAyNi8wOS8y MDIzIDIyOjU5LCBKZWZmcmV5IEthcmRhdHprZSB3cm90ZToKPiA+IEhhbnMsCj4gPgo+ID4gSSd2 ZSBiZWVuIGxvb2tpbmcgdGhyb3VnaCB0aGUgdjRsMi92YnVmMiBjb2RlIHRvIGdldCBhbiBpZGVh IG9mIHRoZQo+ID4gZGV0YWlscyBmb3IgaW1wbGVtZW50aW5nIGEgbmV3IG1lbW9yeSB0eXBlIGZv ciBzZWN1cmUgYnVmZmVycy4gIFdoYXQKPiA+IGl0IGNvbWVzIGRvd24gdG8gZXNzZW50aWFsbHkg aXMgdGhhdCBpdCB3b3VsZCBiZWhhdmUganVzdCBsaWtlCj4gPiBWNEwyX01FTU9SWV9ETUFCVUYs IGJ1dCB0aGVuIHRoZXJlIHdvdWxkIGJlIGFuIGV4dHJhIGNoZWNrIGluCj4gPiBfX3ByZXBhcmVf ZG1hYnVmIChpbiB2aWRlb2J1ZjItY29yZS5jKSB3aGVuIHRoZSBtZW1vcnkgdHlwZSBpcyBTRUNV UkUKPiA+IHRvIGVuc3VyZSB0aGF0IGl0IGlzIGFjdHVhbGx5IGZyb20gYSBzZWN1cmUgZG1hLWJ1 ZiBhbGxvY2F0aW9uLiAgU28KPiA+IEknbSB0aGlua2luZyBhbiBhbHRlcm5hdGUgc29sdXRpb24g bWlnaHQgYmUgY2xlYW5lciBzbyB3ZSBkb24ndCBoYXZlCj4gPiB0d28gbWVtb3J5IHR5cGVzIHRo YXQgYXJlIGhhbmRsZWQgbmVhcmx5IGlkZW50aWNhbGx5IGluIG1vc3Qgb2YgdGhlCj4gPiBjb2Rl LiBXaGF0IGRvIHlvdSB0aGluayBhYm91dCBhIG5ldyBtZW1vcnkgZmxhZyBsaWtlCj4gPiBWNEwy X01FTU9SWV9GTEFHX1NFQ1VSRT8gIFRoaXMgd291bGQgYmUgc2V0IGluIHZiMl9xdWV1ZSBzdHJ1 Y3QgbGlrZQo+ID4gdGhlIG90aGVyIGV4aXN0aW5nIG1lbW9yeSBmbGFnLiBUaGVuIHdoZW4gaXQg Z2V0cyBpbnRvCj4gPiBfX3ByZXBhcmVfZG1hYnVmIGFuZCBpbnZva2VzIGF0dGFjaF9kbWFidWYg b24gZWFjaCBidWZmZXIuLi50aGF0IGNhbGwKPiA+IGNvdWxkIHRoZW4gY2hlY2sgZm9yIHRoZSBl eGlzdGVuY2Ugb2YgdGhhdCBmbGFnLCBhbmQgaWYgaXQncyB0aGVyZSBpdAo+ID4gY291bGQgdmFs aWRhdGUgaXQgaXMgYWN0dWFsbHkgc2VjdXJlIG1lbW9yeS4gIFRoZW4gaW4gdmFyaW91cyBvdGhl cgo+ID4gZG1hYnVmIHZiMl9tZW1fb3BzIChtYXliZSBhbGxvYywgZ2V0X3VzZXJwdHIsIHZhZGRy IGFuZCBtbWFwKSB0aG9zZQo+ID4gY291bGQgYWxzbyBjaGVjayBmb3IgdGhlIHNlY3VyZSBmbGFn LCBhbmQgaWYgcHJlc2VudCByZXR1cm4gYW4KPiA+IGVycm9yL251bGwuICBUaGVuIGFsc28gaW4g dGhlIGRyaXZlciBzcGVjaWZpYyB2YjJfb3BzIGZvciBxdWV1ZV9zZXR1cCwKPiA+IHRoZSBNVEsg ZHJpdmVyIGNvdWxkIHJlY29nbml6ZSB0aGUgZmxhZyB0aGVyZSBhbmQgdGhlbiBjb25maWd1cmUK PiA+IGl0c2VsZiBmb3Igc2VjdXJlIG1vZGUuCj4gPgo+ID4gSG93IGRvZXMgdGhhdCBzb3VuZCBh cyBhbiBvdmVyYWxsIHN0cmF0ZWd5Pwo+Cj4gWWVzLCBJIGFjdHVhbGx5IGhhZCB0aGUgc2FtZSB0 aG91Z2h0Lgo+Cj4gWW91IHdvdWxkIGFsc28gbmVlZCBhIG5ldyBjYXBhYmlsaXR5OiBWNEwyX0JV Rl9DQVBfU1VQUE9SVFNfU0VDVVJFX01FTU9SWQo+Cj4gSXQgbWFrZXMgbW9yZSBzZW5zZSB0aGFu IGNyZWF0aW5nIGEgbmV3IFY0TDJfTUVNT1JZXyB0eXBlLCBhbmQgaXQgc3RpbGwKPiBpcyBoYW5k bGVkIGF0IHRoZSByaWdodCBwbGFjZSAoY3JlYXRpbmcgdGhlIGJ1ZmZlcnMpLgo+Cj4gUmVnYXJk cywKPgo+ICAgICAgICAgSGFucwo+Cj4gPgo+ID4gQ2hlZXJzLAo+ID4gSmVmZgo+ID4KPiA+IE9u IE1vbiwgU2VwIDI1LCAyMDIzIGF0IDk6NTHigK9BTSBKZWZmcmV5IEthcmRhdHprZSA8amthcmRh dHprZUBnb29nbGUuY29tPiB3cm90ZToKPiA+Pgo+ID4+IE9uIE1vbiwgU2VwIDI1LCAyMDIzIGF0 IDI6MDDigK9BTSBIYW5zIFZlcmt1aWwgPGh2ZXJrdWlsLWNpc2NvQHhzNGFsbC5ubD4gd3JvdGU6 Cj4gPj4+Cj4gPj4+IE9uIDIyLzA5LzIwMjMgMjE6MTcsIEplZmZyZXkgS2FyZGF0emtlIHdyb3Rl Ogo+ID4+Pj4gT24gRnJpLCBTZXAgMjIsIDIwMjMgYXQgMTo0NOKAr0FNIEhhbnMgVmVya3VpbCA8 aHZlcmt1aWwtY2lzY29AeHM0YWxsLm5sPiB3cm90ZToKPiA+Pj4+Pgo+ID4+Pj4+IE9uIDIyLzA5 LzIwMjMgMDU6MjgsIFl1bmZlaSBEb25nICjokaPkupHpo54pIHdyb3RlOgo+ID4+Pj4+PiBIaSBI YW5zLAo+ID4+Pj4+Pgo+ID4+Pj4+PiBUaGFua3MgZm9yIHlvdXIgaGVscCB0byBnaXZlIHNvbWUg Z29vZCBhZHZpY2UuCj4gPj4+Pj4+IE9uIFdlZCwgMjAyMy0wOS0yMCBhdCAwOToyMCArMDIwMCwg SGFucyBWZXJrdWlsIHdyb3RlOgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBJbiBhbnkgY2FzZSwg dXNpbmcgYSBjb250cm9sIHRvIHN3aXRjaCB0byBzZWN1cmUgbW9kZSBhbmQgdXNpbmcKPiA+Pj4+ Pj4+IGEgY29udHJvbAo+ID4+Pj4+Pj4+Pj4+IHRvIGNvbnZlcnQgYSBkbWFidWYgZmQgdG8gYSBz ZWN1cmUgaGFuZGxlIHNlZW1zIGEgcG9vciBjaG9pY2UgdG8KPiA+Pj4+Pj4+IG1lLgo+ID4+Pj4+ Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gSSB3YXMgd29uZGVyaW5nIGlmIGl0IHdvdWxkbid0IGJlIGJl dHRlciB0byBjcmVhdGUgYSBuZXcKPiA+Pj4+Pj4+IFY0TDJfTUVNT1JZXyB0eXBlLAo+ID4+Pj4+ Pj4+Pj4+IGUuZy4gVjRMMl9NRU1PUllfRE1BQlVGX1NFQ1VSRSAob3IgcGVyaGFwcyBfRE1BQlVG X09QVEVFKS4gVGhhdAo+ID4+Pj4+Pj4gZW5zdXJlcyB0aGF0Cj4gPj4+Pj4+Pj4+Pj4gb25jZSB5 b3UgY3JlYXRlIGJ1ZmZlcnMgZm9yIHRoZSBmaXJzdCB0aW1lLCB0aGUgZHJpdmVyIGNhbgo+ID4+ Pj4+Pj4gc3dpdGNoIGludG8gc2VjdXJlCj4gPj4+Pj4+Pj4+Pj4gbW9kZSwgYW5kIHVudGlsIGFs bCBidWZmZXJzIGFyZSByZWxlYXNlZCBhZ2FpbiB5b3Uga25vdyB0aGF0IHRoZQo+ID4+Pj4+Pj4g ZHJpdmVyIHdpbGwKPiA+Pj4+Pj4+Pj4+PiBzdGF5IGluIHNlY3VyZSBtb2RlLgo+ID4+Pj4+Pj4+ Pj4KPiA+Pj4+Pj4+Pj4+IFdoeSBkbyB5b3UgdGhpbmsgdGhlIGNvbnRyb2wgZm9yIHNldHRpbmcg c2VjdXJlIG1vZGUgaXMgYSBwb29yCj4gPj4+Pj4+PiBjaG9pY2U/Cj4gPj4+Pj4+Pj4+PiBUaGVy ZSdzIHZhcmlvdXMgcGxhY2VzIGluIHRoZSBkcml2ZXIgY29kZSB3aGVyZSBmdW5jdGlvbmFsaXR5 Cj4gPj4+Pj4+PiBjaGFuZ2VzCj4gPj4+Pj4+Pj4+PiBiYXNlZCBvbiBiZWluZyBzZWN1cmUvbm9u LXNlY3VyZSBtb2RlLCBzbyB0aGlzIGlzIHZlcnkgbXVjaCBhCj4gPj4+Pj4+PiAnZ2xvYmFsJwo+ ID4+Pj4+Pj4+Pj4gc2V0dGluZyBmb3IgdGhlIGRyaXZlci4gSXQgY291bGQgYmUgaW5mZXJyZWQg YmFzZWQgb2ZmIGEgbmV3Cj4gPj4+Pj4+PiBtZW1vcnkKPiA+Pj4+Pj4+Pj4+IHR5cGUgZm9yIHRo ZSBxdWV1ZXMuLi53aGljaCB0aGVuIHNldHMgdGhhdCBmbGFnIGluIHRoZSBkcml2ZXI7Cj4gPj4+ Pj4+PiBidXQKPiA+Pj4+Pj4+Pj4+IHRoYXQgc2VlbXMgbGlrZSBpdCB3b3VsZCBiZSBtb3JlIGZy YWdpbGUgYW5kIHdvdWxkIHJlcXVpcmUKPiA+Pj4+Pj4+IGNoZWNraW5nCj4gPj4+Pj4+Pj4+PiBm b3IgaW5jb21wYXRpYmxlIG91dHB1dC9jYXB0dXJlIG1lbW9yeSB0eXBlcy4gSSdtIG5vdCBhZ2Fp bnN0Cj4gPj4+Pj4+PiBhbm90aGVyCj4gPj4+Pj4+Pj4+PiB3YXkgb2YgZG9pbmcgdGhpczsgYnV0 IGRpZG4ndCBzZWUgd2h5IHlvdSB0aGluayB0aGUgcHJvcG9zZWQKPiA+Pj4+Pj4+IG1ldGhvZCBp cwo+ID4+Pj4+Pj4+Pj4gYSBwb29yIGNob2ljZS4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gSSBh c3N1bWUgeW91IGFyZSBlaXRoZXIgZGVjb2RpbmcgdG8gc2VjdXJlIG1lbW9yeSBhbGwgdGhlIHRp bWUsIG9yCj4gPj4+Pj4+PiBub3QKPiA+Pj4+Pj4+Pj4gYXQgYWxsLiBUaGF0J3Mgc29tZXRoaW5n IHlvdSB3b3VsZCB3YW50IHRvIHNlbGVjdCB0aGUgbW9tZW50IHlvdQo+ID4+Pj4+Pj4gYWxsb2Nh dGUKPiA+Pj4+Pj4+Pj4gdGhlIGZpcnN0IGJ1ZmZlci4gVXNpbmcgdGhlIFY0TDJfTUVNT1JZXyB2 YWx1ZSB3b3VsZCBiZSB0aGUKPiA+Pj4+Pj4+IG5hdHVyYWwgcGxhY2UKPiA+Pj4+Pj4+Pj4gZm9y IHRoYXQuIEEgY29udHJvbCBjYW4gdHlwaWNhbGx5IGJlIHRvZ2dsZWQgYXQgYW55IHRpbWUsIGFu ZCBpdAo+ID4+Pj4+Pj4gbWFrZXMKPiA+Pj4+Pj4+Pj4gbm8gc2Vuc2UgdG8gZG8gdGhhdCBmb3Ig c2VjdXJlIHN0cmVhbWluZy4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gUmVsYXRlZCB0byB0aGF0 OiBpZiB5b3UgcGFzcyBhIGRtYWJ1ZiBmZCB5b3Ugd2lsbCBuZWVkIHRvIGNoZWNrCj4gPj4+Pj4+ PiBzb21ld2hlcmUKPiA+Pj4+Pj4+Pj4gaWYgdGhlIGZkIHBvaW50cyB0byBzZWN1cmUgbWVtb3J5 IG9yIG5vdC4gWW91IGRvbid0IHdhbnQgdG8gbWl4Cj4gPj4+Pj4+PiB0aGUgdHdvCj4gPj4+Pj4+ Pj4+IGJ1dCB5b3Ugd2FudCB0byBjaGVjayB0aGF0IGF0IFZJRElPQ19RQlVGIHRpbWUuCj4gPj4+ Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IE5vdGUgdGhhdCB0aGUgVjRMMl9NRU1PUllfIHZhbHVlIGlzIGFs cmVhZHkgY2hlY2tlZCBpbiB0aGUgdjRsMgo+ID4+Pj4+Pj4gY29yZSwKPiA+Pj4+Pj4+Pj4gZHJp dmVycyBkbyBub3QgbmVlZCB0byBkbyB0aGF0Lgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gSnVzdCB0 byBjbGFyaWZ5IGEgYml0LCBhbmQgbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGlzIHRvby4gWW91 IGFyZQo+ID4+Pj4+Pj4gcHJvcG9zaW5nIHRvCj4gPj4+Pj4+Pj4gaW50cm9kdWNlIHNvbWV0aGlu ZyBsaWtlOgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gICAgVjRMMl9NRU1PUllfU0VDVVJFX0RNQUJV Rgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gV2hpY2ggbGlrZSBWNEwyX01FTU9SWV9ETUFCVUYgaXMg bWVhbnQgdG8gaW1wb3J0IGRtYWJ1Ziwgd2hpbGUKPiA+Pj4+Pj4+IHRlbGxpbmcgdGhlCj4gPj4+ Pj4+Pj4gZHJpdmVyIHRoYXQgdGhlIG1lbW9yeSBpcyBzZWN1cmUgYWNjb3JkaW5nIHRvIHRoZSBk ZWZpbml0aW9uIG9mCj4gPj4+Pj4+PiAic2VjdXJlIiBmb3IgdGhlCj4gPj4+Pj4+Pj4gcGxhdGZv cm0gaXRzIHJ1bm5pbmcgb24uCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBUaGlzIGRyaXZlcnMgYWxz byBhbGxvY2F0ZSBzZWN1cmUgU0hNIChhIHN0YW5kYXJkIHRlZSBjb25jZXB0KSBhbmQKPiA+Pj4+ Pj4+IGhhdmUgaW50ZXJuYWwKPiA+Pj4+Pj4+PiBhbGxvY2F0aW9uIGZvciByZWNvbnN0cnVjdGlv biBidWZmZXIgYW5kIHNvbWUgaHcgc3BlY2lmaWMgcmVmZXJlbmNlCj4gPj4+Pj4+PiBtZXRhZGF0 YS4gU28KPiA+Pj4+Pj4+PiB0aGUgaWRlYSB3b3VsZCBiZSB0aGF0IGl0IHdvdWxkIGtlZXAgYWxs b2NhdGlvbiB1c2luZyB0aGUgZG1hYnVmCj4gPj4+Pj4+PiBoZWFwIGludGVybmFsCj4gPj4+Pj4+ Pj4gQVBJcyA/IEFuZCBkZWNpZGUgd2hpY2ggdHlwZSBvZiBtZW1vcnkgYmFzZWQgb24gdGhlIG1l bW9yeSB0eXBlCj4gPj4+Pj4+PiBmb3VuZCBpbiB0aGUKPiA+Pj4+Pj4+PiBxdWV1ZT8KPiA+Pj4+ Pj4+Cj4gPj4+Pj4+PiBZZXMuIE9uY2UgeW91IHJlcXVlc3QgdGhlIGZpcnN0IGJ1ZmZlciB5b3Ug YmFzaWNhbGx5IHRlbGwgdGhlIGRyaXZlcgo+ID4+Pj4+Pj4gd2hldGhlciBpdAo+ID4+Pj4+Pj4g d2lsbCBvcGVyYXRlIGluIHNlY3VyZSBvciBub24tc2VjdXJlIG1vZGUsIGFuZCB0aGF0IHN0YXlz IHRoYXQgd2F5Cj4gPj4+Pj4+PiB1bnRpbCBhbGwKPiA+Pj4+Pj4+IGJ1ZmZlcnMgYXJlIGZyZWVk LiBJIHRoaW5rIHRoYXQgbWFrZXMgc2Vuc2UuCj4gPj4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+PiBB Y2NvcmRpbmcgdG8gaW9tbXUncyBpbmZvcm1hdGlvbiwgdGhlIGRtYSBvcGVyYXRpb24gZm9yIHNl Y3VyZSBhbmQgbm9uLQo+ID4+Pj4+PiBzZWN1cmUgYXJlIHRoZSBzYW1lLCB3aGV0aGVyIGp1c3Qg bmVlZCB0byBhZGQgb25lIG1lbW9yeSB0eXBlIGluIHY0bDIKPiA+Pj4+Pj4gZnJhbWV3b3JrIHRo ZSBzYW1lIGFzIFY0TDJfTUVNT1JZX0RNQUJVRj8gVGhlIGRtYSBvcGVyYXRpb24gaW4KPiA+Pj4+ Pj4gdmlkZW9idWYyLWRtYS1jb250aWcuYyBjYW4gdXNlIHRoZSBzYW1lIGZ1bmN0aW9ucy4KPiA+ Pj4+Pgo+ID4+Pj4+IFNvIGlmIEkgcGFzcyBhIG5vbi1zZWN1cmUgZG1hIGZkIHRvIHRoZSBjYXB0 dXJlIHF1ZXVlIG9mIHRoZSBjb2RlYywgd2hvCj4gPj4+Pj4gd2lsbCBjaGVjayB0aGF0IGl0IGNh bid0IHdyaXRlIHRoZSBkYXRhIHRvIHRoYXQgZmQ/IFNpbmNlIGRvaW5nIHNvIHdvdWxkCj4gPj4+ Pj4gZXhwb3NlIHRoZSB2aWRlby4gUHJlc3VtYWJseSBhdCBzb21lIHBvaW50IHRoZSB0ZWUgY29k ZSB3aWxsIHByZXZlbnQgdGhhdD8KPiA+Pj4+PiAoSSBzaW5jZXJlbHkgaG9wZSBzbyEpCj4gPj4+ Pgo+ID4+Pj4gSXQgaXMgZW50aXJlbHkgdGhlIGpvYiBvZiB0aGUgVEVFIHRvIHByZXZlbnQgdGhp cy4gTm90aGluZyBpbiB0aGUKPiA+Pj4+IGtlcm5lbCBzaG91bGQgYWxsb3cgZXhwbG9pdGF0aW9u IG9mIHdoYXQgaGFwcGVucyBpbiB0aGUgVEVFIG5vIG1hdHRlcgo+ID4+Pj4gd2hhdCBnb2VzIG9u IGluIHRoZSBrZXJuZWwKPiA+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBIYXZpbmcgYSBzZXBhcmF0ZSBW NEwyX01FTU9SWV9ETUFCVUZfU0VDVVJFIHR5cGUgaXMgdG8gaW5kaWNhdGUgdG8gdGhlCj4gPj4+ Pj4gZHJpdmVyIHRoYXQgMSkgaXQgY2FuIGV4cGVjdCBzZWN1cmUgZG1hYnVmIGZkcywgMikgaXQg Y2FuIGNvbmZpZ3VyZSBpdHNlbGYKPiA+Pj4+PiBmb3IgdGhhdCAodGhhdCBhdm9pZHMgdXNpbmcg YSBjb250cm9sIHRvIHRvZ2dsZSBiZXR3ZWVuIG5vcm1hbCBhbmQgc2VjdXJlIG1vZGUpLAo+ID4+ Pj4+IGFuZCBhdCBWSURJT0NfUUJVRiB0aW1lIGl0IGlzIGVhc3kgZm9yIHRoZSBWNEwyIGNvcmUg dG8gdmVyaWZ5IHRoYXQgdGhlCj4gPj4+Pj4gZmQgdGhhdCBpcyBwYXNzZWQgaW4gaXMgZm9yIHNl Y3VyZSBtZW1vcnkuIFRoaXMgbWVhbnMgdGhhdCBtaXN0YWtlcyBieQo+ID4+Pj4+IHVzZXJzcGFj ZSBhcmUgY2F1Z2h0IGF0IFFCVUYgdGltZS4KPiA+Pj4+Pgo+ID4+Pj4+IE9mIGNvdXJzZSwgdGhp cyB3aWxsIG5vdCBwcm90ZWN0IHlvdSAocGVvcGxlIGNhbiBkaXNhYmxlIHRoaXMgY2hlY2sgYnkK PiA+Pj4+PiByZWNvbXBpbGluZyB0aGUga2VybmVsKSwgdGhhdCBzdGlsbCBoYXMgdG8gYmUgZG9u ZSBieSB0aGUgZmlybXdhcmUsIGJ1dAo+ID4+Pj4+IGl0IGNhdGNoZXMgdXNlcnNwYWNlIGVycm9y cyBlYXJseSBvbi4KPiA+Pj4+Pgo+ID4+Pj4+IEFsc28sIHdoaWxlIGZvciB0aGlzIGhhcmR3YXJl IHRoZSBETUEgb3BlcmF0aW9uIGlzIHRoZSBzYW1lLCB0aGF0IG1pZ2h0Cj4gPj4+Pj4gbm90IGJl IHRoZSBjYXNlIGZvciBvdGhlciBoYXJkd2FyZS4KPiA+Pj4+Cj4gPj4+PiBUaGF0J3MgYSByZWFs bHkgZ29vZCBwb2ludC4gU28gb25lIG9mIHRoZSBvdGhlciBtb2RlbHMgdGhhdCBpcyB1c2VkCj4g Pj4+PiBmb3Igc2VjdXJlIHZpZGVvIGRlY29kaW5nIGlzIHRvIHNlbmQgdGhlIGVuY3J5cHRlZCBi dWZmZXIgaW50byB0aGUKPiA+Pj4+IHZpZGVvIGRlY29kZXIgZGlyZWN0bHkgKGkuZS4gVjRMMl9N RU1PUllfTU1BUCkgYW5kIHRoZW4gYWxzbyBzZW5kIGluCj4gPj4+PiBhbGwgdGhlIGNvcnJlc3Bv bmRpbmcgY3J5cHRvIHBhcmFtZXRlcnMgKGkuZS4gYWxnb3JpdGhtLCBJViwKPiA+Pj4+IGVuY3J5 cHRpb24gcGF0dGVybiwgZXRjLikuIFRoZW4gdGhlIHZpZGVvIGRyaXZlciBpbnRlcm5hbGx5IGRv ZXMgdGhlCj4gPj4+PiBkZWNyeXB0aW9uIGFuZCBkZWNvZGUgaW4gb25lIG9wZXJhdGlvbi4gIFRo YXQncyBub3Qgd2hhdCB3ZSB3YW50IHRvCj4gPj4+PiB1c2UgaGVyZSBmb3IgTWVkaWF0ZWs7IGJ1 dCBJJ3ZlIGRvbmUgb3RoZXIgaW50ZWdyYXRpb25zIHRoYXQgd29yayB0aGF0Cj4gPj4+PiB3YXkg KHRoYXQgd2FzIGZvciBWQUFQSSBbMV0sIG5vdCBWNEwyLi4uYnV0IHRoZXJlIGFyZSBvdGhlciBB Uk0KPiA+Pj4+IGltcGxlbWVudGF0aW9ucyB0aGF0IGRvIG9wZXJhdGUgdGhhdCB3YXkpLiAgU28g aWYgd2UgZW5kIHVwIHJlcXVpcmluZwo+ID4+Pj4gVjRMMl9NRU1PUllfRE1BQlVGX1NFQ1VSRSB0 byBpbmRpY2F0ZSBzZWN1cmUgbW9kZSBhbmQgZW5mb3JjZSBpdCBvbgo+ID4+Pj4gb3V0cHV0K2Nh cHR1cmUsIHRoYXQnbGwgY2xvc2Ugb2ZmIG90aGVyIHBvdGVudGlhbCBzb2x1dGlvbnMgaW4gdGhl Cj4gPj4+PiBmdXR1cmUuCj4gPj4+Pgo+ID4+Pj4gRXhwYW5kaW5nIG9uIHlvdXIgcG9pbnQgYWJv dXQgRE1BIG9wZXJhdGlvbnMgYmVpbmcgZGlmZmVyZW50IG9uCj4gPj4+PiB2YXJpb3VzIGhhcmR3 YXJlLCB0aGF0IGFsc28gbWFrZXMgbWUgdGhpbmsgYSBnZW5lcmFsIGNoZWNrIGZvciB0aGlzIGlu Cj4gPj4+PiB2NGwyIGNvZGUgbWF5IGFsc28gYmUgbGltaXRpbmcuIFRoZXJlIGFyZSB2YXJpb3Vz IHdheXMgc2VjdXJlIHZpZGVvCj4gPj4+PiBwaXBlbGluZXMgYXJlIGRvbmUsIHNvIGxlYXZpbmcg dGhlc2UgY2hlY2tzIHVwIHRvIHRoZSBpbmRpdmlkdWFsCj4gPj4+PiBkcml2ZXJzIHRoYXQgaW1w bGVtZW50IHNlY3VyZSB2aWRlbyBkZWNvZGUgbWF5IGJlIG1vcmUgcHJhZ21hdGljLiBJZgo+ID4+ Pj4gdGhlcmUncyBhIGdlbmVyaWMgVjRMMiBfQ0lEX1NFQ1VSRV9NT0RFIGNvbnRyb2wsIHRoYXQg bWFrZXMgaXQgbW9yZQo+ID4+Pj4gZ2VuZXJhbCBmb3IgaG93IGRyaXZlcnMgY2FuIGhhbmRsZSBz ZWN1cmUgdmlkZW8gZGVjb2RlLgo+ID4+Pgo+ID4+PiBObywgdXNpbmcgYSBjb250cm9sIGZvciB0 aGlzIGlzIHJlYWxseSB3cm9uZy4KPiA+Pj4KPiA+Pj4gVGhlIHJlYXNvbiB3aHkgSSB3YW50IGl0 IGFzIGEgc2VwYXJhdGUgbWVtb3J5IHR5cGUgaXMgdGhhdCB0aGF0IGlzCj4gPj4+IHdoYXQgeW91 IHVzZSB3aGVuIHlvdSBjYWxsIFZJRElPQ19SRVFCVUZTLCBhbmQgdGhhdCBpb2N0bCBpcyBhbHNv Cj4gPj4+IHdoZW4gdGhpbmdzIGFyZSBsb2NrZWQgZG93biBpbiBhIGRyaXZlci4gQXMgbG9uZyBh cyBubyBidWZmZXJzIGhhdmUKPiA+Pj4gYmVlbiBhbGxvY2F0ZWQsIHlvdSBjYW4gc3RpbGwgY2hh bmdlIGZvcm1hdHMsIHBhcmFtZXRlcnMsIGV0Yy4gQnV0Cj4gPj4+IG9uY2UgYnVmZmVycyBhcmUg YWxsb2NhdGVkLCBtb3N0IG9mIHRoYXQgY2FuJ3QgYmUgY2hhbmdlZCwgc2luY2UKPiA+Pj4gY2hh bmdpbmcgZS5nLiB0aGUgZm9ybWF0IHdvdWxkIGFsc28gY2hhbmdlIHRoZSBidWZmZXIgc2l6ZXMu Cj4gPj4+Cj4gPj4+IEl0IGFsc28gbG9ja3MgZG93biB3aG8gb3ducyB0aGUgYnVmZmVycyBieSBz dG9yaW5nIHRoZSBmaWxlIGRlc2NyaXB0b3IuCj4gPj4+IFRoaXMgcHJldmVudHMgb3RoZXIgcHJv Y2Vzc2VzIGZyb20gaGlqYWNraW5nIHRoZSBJL08gc3RyZWFtaW5nLCBvbmx5Cj4gPj4+IHRoZSBv d25lciBjYW4gc3RyZWFtIGJ1ZmZlcnMuCj4gPj4+Cj4gPj4+IFNvIGl0IGlzIGEgbmF0dXJhbCBw b2ludCBpbiB0aGUgc2VxdWVuY2UgZm9yIHNlbGVjdGluZyBzZWN1cmUKPiA+Pj4gYnVmZmVycy4K PiA+Pj4KPiA+Pj4gSWYgeW91IHJlcXVlc3QgVjRMMl9NRU1PUllfRE1BQlVGX1NFQ1VSRSBmb3Ig dGhlIG91dHB1dCwgdGhlbiB0aGUKPiA+Pj4gY2FwdHVyZSBzaWRlIG11c3QgYWxzbyB1c2UgRE1B QlVGX1NFQ1VSRS4gV2hldGhlciBvciBub3QgeW91IGNhbgo+ID4+PiB1c2UgcmVndWxhciBETUFC VUYgZm9yIHRoZSBvdXRwdXQgc2lkZSBhbmQgc2VsZWN0IERNQUJVRl9TRUNVUkUKPiA+Pj4gb24g dGhlIGNhcHR1cmUgc2lkZSBpcyBhIGRyaXZlciBkZWNpc2lvbi4gSXQgY2FuIGJlIHVzZWZ1bCB0 bwo+ID4+PiBzdXBwb3J0IHRoaXMgZm9yIHRlc3RpbmcgdGhlIHNlY3VyZSBjYXB0dXJlIHVzaW5n IHJlZ3VsYXIgdmlkZW8KPiA+Pj4gc3RyZWFtcyAoc29tZXRoaW5nIE5pY29sYXMgZGlzY3Vzc2Vk IGFzIHdlbGwpLCBidXQgaXQgZGVwZW5kcyBvbgo+ID4+PiB0aGUgaGFyZHdhcmUgd2hldGhlciB5 b3UgY2FuIHVzZSB0aGF0IHRlY2huaXF1ZS4KPiA+Pgo+ID4+IE9LLCB0aGF0IGRvZXMgd29yayBm b3IgdGhlIGFkZGl0aW9uYWwgY2FzZXMgSSBtZW50aW9uZWQuICBBbmQgZm9yCj4gPj4gdGVzdGlu Zy4uLndlIHdvdWxkIHN0aWxsIHdhbnQgdG8gdXNlIERNQUJVRl9TRUNVUkUgb24gYm90aCBlbmRz IGZvcgo+ID4+IE1lZGlhdGVrIGF0IGxlYXN0ICh0aGF0J3MgdGhlIG9ubHkgd2F5IHRoZXkgc3Vw cG9ydCBpdCkuIEJ1dCByYXRoZXIKPiA+PiB0aGFuIGhhdmluZyB0byBib3RoZXIgd2l0aCBhIGNs ZWFya2V5IGltcGxlbWVudGF0aW9uLi4ud2UgY2FuIGp1c3QgZG8KPiA+PiBzb21ldGhpbmcgdGhh dCBkaXJlY3RseSBjb3BpZXMgY29tcHJlc3NlZCB2aWRlbyBpbnRvIHRoZSBzZWN1cmUKPiA+PiBk bWFidWZzIGFuZCB0aGVuIGV4ZXJjaXNlcyB0aGUgd2hvbGUgcGlwZWxpbmUgZnJvbSB0aGVyZS4g VGhpcyBzYW1lCj4gPj4gdGhpbmcgaGFwcGVucyB3aXRoIHRoZSAnY2xlYXIgbGVhZCcgdGhhdCBp cyBzb21ldGltZXMgdGhlcmUgd2l0aAo+ID4+IGVuY3J5cHRlZCB2aWRlbyAod2hlcmUgdGhlIGZp cnN0IFggc2Vjb25kcyBhcmUgdW5lbmNyeXB0ZWQgYW5kIHRoZW4gaXQKPiA+PiBzd2l0Y2hlcyB0 byBlbmNyeXB0ZWQuLi5idXQgeW91J3JlIHN0aWxsIHVzaW5nIHRoZSBzZWN1cmUgdmlkZW8KPiA+ PiBwaXBlbGluZSBvbiB0aGUgdW5lbmNyeXB0ZWQgZnJhbWVzIGluIHRoYXQgY2FzZSkuCj4gPj4K PiA+Pgo+ID4+Pgo+ID4+PiBSZWdhcmRzLAo+ID4+Pgo+ID4+PiAgICAgICAgIEhhbnMKPiA+Pj4K PiA+Pj4+Cj4gPj4+PiBbMV0gLSBodHRwczovL2dpdGh1Yi5jb20vaW50ZWwvbGlidmEvYmxvYi9t YXN0ZXIvdmEvdmEuaCNMMjE3Nwo+ID4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IFJlZ2FyZHMsCj4gPj4+ Pj4KPiA+Pj4+PiAgICAgICAgIEhhbnMKPiA+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+PiBCZXN0IFJl Z2FyZHMsCj4gPj4+Pj4+IFl1bmZlaSBEb25nCj4gPj4+Pj4+Cj4gPj4+Pj4KPiA+Pj4KPgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=