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 63FB0C433FE for ; Tue, 8 Mar 2022 03:32:53 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version: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=6DjKFWIAm8lOPGtNsjhuHHpKdyFq0T8k+kJUEupF6w0=; b=dkix5CgcnMfnxW ewAuIoQnAbJE+6TG4T9Wljlk8tloFJTuhvCBF3xDDph7zrLTYmOQheBVkWjx2RMzAIkGu3wmiN3bA hNZ9qMyELg14JbyPs99mPePzNpi9UtLpi7U1RfEN69peAuq5L03kxpxJ8Nt8fep8Mn0netq04auMw HrW+/ErVj+x8KkagpJwQxUUWtAqDXofiLWMJ0dwJTo/npvaJ6WmEe7MvsOWEJpSyy5el22L0mfXUL c5M7gssYr5gKAOlPfFjV88gxhvvL71RQmDnRBvZoAQeySql117323OMB3cN9fpG8GHKzXHyCM1vEC Us2vnV5xitobJn6nmG8w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nRQZN-002Xgh-V5; Tue, 08 Mar 2022 03:31:30 +0000 Received: from mail-m121144.qiye.163.com ([115.236.121.144]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nRQZJ-002Xg3-S3; Tue, 08 Mar 2022 03:31:28 +0000 Received: from [172.16.12.141] (unknown [58.22.7.114]) by mail-m121144.qiye.163.com (Hmail) with ESMTPA id 1E19CAC03A0; Tue, 8 Mar 2022 11:31:23 +0800 (CST) Message-ID: <035f2dfd-bf35-abca-32bf-2be85cc88f8a@rock-chips.com> Date: Tue, 8 Mar 2022 11:31:22 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v7 10/24] drm/rockchip: dw_hdmi: Add support for hclk Content-Language: en-US To: Dmitry Osipenko , Sascha Hauer , Robin Murphy , elaine.zhang@rock-chips.com Cc: devicetree@vger.kernel.org, Benjamin Gaignard , kernel@pengutronix.de, Sandy Huang , dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Michael Riesch , Peter Geis , Dmitry Osipenko , linux-arm-kernel@lists.infradead.org, Kever Yang , algea.cao@rock-chips.com, huangtao@rock-chips.com References: <20220225075150.2729401-1-s.hauer@pengutronix.de> <20220225075150.2729401-11-s.hauer@pengutronix.de> <47ddcaf3-4544-2b7c-a2f6-1f6346907f33@gmail.com> <20220225104924.GC19585@pengutronix.de> <78207d97-b5a1-9792-8ec9-11fcf2e00370@gmail.com> <90c61299-f02c-607b-4734-7134852ef0a6@arm.com> <20220225131154.GE19585@pengutronix.de> <20220228141921.GN19585@pengutronix.de> <5184ecf2-8734-3121-cbbc-5dcfcf0d02f8@arm.com> <20220302112528.GV19585@pengutronix.de> <20220304142235.GL22780@pengutronix.de> <9ea0134e-aac7-60e1-5c58-ae31b4e1c422@collabora.com> From: Andy Yan In-Reply-To: <9ea0134e-aac7-60e1-5c58-ae31b4e1c422@collabora.com> X-HM-Spam-Status: e1kfGhgUHx5ZQUtXWQgPGg8OCBgUHx5ZQUlOS1dZCBgUCR5ZQVlLVUtZV1 kWDxoPAgseWUFZKDYvK1lXWShZQUlKS0tKN1dZLVlBSVdZDwkaFQgSH1lBWRpNSE5WSRhDHRpKGB hLGUpKVRMBExYaEhckFA4PWVdZFhoPEhUdFFlBWU9LSFVKSktISkNVS1kG X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6PBQ6Ayo4PT5RNzItAx8xDhYL N1FPC0tVSlVKTU9NTEpLSUNIQk5LVTMWGhIXVRoVHwJVAhoVOwkUGBBWGBMSCwhVGBQWRVlXWRIL WUFZTkNVSUlVTFVKSk9ZV1kIAVlBQkNPQjcG X-HM-Tid: 0a7f6794dd93b039kuuu1e19cac03a0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220307_193126_253449_579387D9 X-CRM114-Status: GOOD ( 34.18 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgOgoKT24gMy81LzIyIDA3OjU1LCBEbWl0cnkgT3NpcGVua28gd3JvdGU6Cj4gT24gMy80LzIy IDE3OjIyLCBTYXNjaGEgSGF1ZXIgd3JvdGU6Cj4+IE9uIFdlZCwgTWFyIDAyLCAyMDIyIGF0IDEy OjI1OjI4UE0gKzAxMDAsIFNhc2NoYSBIYXVlciB3cm90ZToKPj4+IE9uIFR1ZSwgTWFyIDAxLCAy MDIyIGF0IDAxOjM5OjMxUE0gKzAwMDAsIFJvYmluIE11cnBoeSB3cm90ZToKPj4+PiBPbiAyMDIy LTAyLTI4IDE0OjE5LCBTYXNjaGEgSGF1ZXIgd3JvdGU6Cj4+Pj4+IE9uIEZyaSwgRmViIDI1LCAy MDIyIGF0IDAyOjExOjU0UE0gKzAxMDAsIFNhc2NoYSBIYXVlciB3cm90ZToKPj4+Pj4+IE9uIEZy aSwgRmViIDI1LCAyMDIyIGF0IDEyOjQxOjIzUE0gKzAwMDAsIFJvYmluIE11cnBoeSB3cm90ZToK Pj4+Pj4+PiBPbiAyMDIyLTAyLTI1IDExOjEwLCBEbWl0cnkgT3NpcGVua28gd3JvdGU6Cj4+Pj4+ Pj4+IDI1LjAyLjIwMjIgMTM6NDksIFNhc2NoYSBIYXVlciDQv9C40YjQtdGCOgo+Pj4+Pj4+Pj4g T24gRnJpLCBGZWIgMjUsIDIwMjIgYXQgMDE6MjY6MTRQTSArMDMwMCwgRG1pdHJ5IE9zaXBlbmtv IHdyb3RlOgo+Pj4+Pj4+Pj4+IDI1LjAyLjIwMjIgMTA6NTEsIFNhc2NoYSBIYXVlciDQv9C40YjQ tdGCOgo+Pj4+Pj4+Pj4+PiBUaGUgcmszNTY4IEhETUkgaGFzIGFuIGFkZGl0aW9uYWwgY2xvY2sg dGhhdCBuZWVkcyB0byBiZSBlbmFibGVkIGZvciB0aGUKPj4+Pj4+Pj4+Pj4gSERNSSBjb250cm9s bGVyIHRvIHdvcmsuIFRoZSBwdXJwb3NlIG9mIHRoYXQgY2xvY2sgaXMgbm90IGNsZWFyLiBJdCBp cwo+Pj4+Pj4+Pj4+PiBuYW1lZCAiaGNsayIgaW4gdGhlIGRvd25zdHJlYW0gZHJpdmVyLCBzbyB1 c2UgdGhlIHNhbWUgbmFtZS4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTog U2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgo+Pj4+Pj4+Pj4+PiAtLS0KPj4+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gTm90ZXM6Cj4+Pj4+Pj4+Pj4+ICAgICAgICBDaGFuZ2VzIHNp bmNlIHY1Ogo+Pj4+Pj4+Pj4+PiAgICAgICAgLSBVc2UgZGV2bV9jbGtfZ2V0X29wdGlvbmFsIHJh dGhlciB0aGFuIGRldm1fY2xrX2dldAo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiAgICAgZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYyB8IDE2ICsrKysrKysrKysrKysr KysKPj4+Pj4+Pj4+Pj4gICAgIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspCj4+Pj4+ Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv ZHdfaGRtaS1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9j a2NoaXAuYwo+Pj4+Pj4+Pj4+PiBpbmRleCBmZTRmOTU1NjIzOWFjLi5jNmMwMGU4Nzc5YWI1IDEw MDY0NAo+Pj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1y b2NrY2hpcC5jCj4+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19o ZG1pLXJvY2tjaGlwLmMKPj4+Pj4+Pj4+Pj4gQEAgLTc2LDYgKzc2LDcgQEAgc3RydWN0IHJvY2tj aGlwX2hkbWkgewo+Pj4+Pj4+Pj4+PiAgICAgCWNvbnN0IHN0cnVjdCByb2NrY2hpcF9oZG1pX2No aXBfZGF0YSAqY2hpcF9kYXRhOwo+Pj4+Pj4+Pj4+PiAgICAgCXN0cnVjdCBjbGsgKnJlZl9jbGs7 Cj4+Pj4+Pj4+Pj4+ICAgICAJc3RydWN0IGNsayAqZ3JmX2NsazsKPj4+Pj4+Pj4+Pj4gKwlzdHJ1 Y3QgY2xrICpoY2xrX2NsazsKPj4+Pj4+Pj4+Pj4gICAgIAlzdHJ1Y3QgZHdfaGRtaSAqaGRtaTsK Pj4+Pj4+Pj4+Pj4gICAgIAlzdHJ1Y3QgcmVndWxhdG9yICphdmRkXzB2OTsKPj4+Pj4+Pj4+Pj4g ICAgIAlzdHJ1Y3QgcmVndWxhdG9yICphdmRkXzF2ODsKPj4+Pj4+Pj4+Pj4gQEAgLTIyOSw2ICsy MzAsMTQgQEAgc3RhdGljIGludCByb2NrY2hpcF9oZG1pX3BhcnNlX2R0KHN0cnVjdCByb2NrY2hp cF9oZG1pICpoZG1pKQo+Pj4+Pj4+Pj4+PiAgICAgCQlyZXR1cm4gUFRSX0VSUihoZG1pLT5ncmZf Y2xrKTsKPj4+Pj4+Pj4+Pj4gICAgIAl9Cj4+Pj4+Pj4+Pj4+ICsJaGRtaS0+aGNsa19jbGsgPSBk ZXZtX2Nsa19nZXRfb3B0aW9uYWwoaGRtaS0+ZGV2LCAiaGNsayIpOwo+Pj4+Pj4+Pj4+PiArCWlm IChQVFJfRVJSKGhkbWktPmhjbGtfY2xrKSA9PSAtRVBST0JFX0RFRkVSKSB7Cj4+Pj4+Pj4+Pj4g SGF2ZSB5b3UgdHJpZWQgdG8gaW52ZXN0aWdhdGUgdGhlIGhjbGs/IEknbSBzdGlsbCB0aGlua2lu ZyB0aGF0J3Mgbm90Cj4+Pj4+Pj4+Pj4gb25seSBIRE1JIHRoYXQgbmVlZHMgdGhpcyBjbG9jayBh bmQgdGhlbiB0aGUgaGFyZHdhcmUgZGVzY3JpcHRpb24KPj4+Pj4+Pj4+PiBkb2Vzbid0IGxvb2sg Y29ycmVjdC4KPj4+Pj4+Pj4+IEkgYW0gc3RpbGwgbm90IHN1cmUgd2hhdCB5b3UgbWVhbi4gWWVz LCBpdCdzIG5vdCBvbmx5IHRoZSBIRE1JIHRoYXQKPj4+Pj4+Pj4+IG5lZWRzIHRoaXMgY2xvY2su IFRoZSBWT1AyIG5lZWRzIGl0IGFzIHdlbGwgYW5kIHRoZSBkcml2ZXIgaGFuZGxlcyB0aGF0Lgo+ Pj4+Pj4+PiBJJ20gY3VyaW91cyB3aGV0aGVyIERTSS9EUCBhbHNvIG5lZWQgdGhhdCBjbG9jayB0 byBiZSBlbmFibGVkLiBJZiB0aGV5Cj4+Pj4+Pj4+IGRvLCB0aGVuIHlvdSBhcmVuJ3QgbW9kZWxp bmcgaC93IHByb3Blcmx5IEFGQUlDUy4KPj4+Pj4+PiBBc3N1bWluZyBub2JvZHkgYXQgUm9ja2No aXAgZGVjaWRlZCB0byBtYWtlIHRoaW5ncyBuZWVkbGVzc2x5IGluY29uc2lzdGVudAo+Pj4+Pj4+ IHdpdGggcHJldmlvdXMgU29DcywgSENMS19WT1Agc2hvdWxkIGJlIHRoZSBjbG9jayBmb3IgdGhl IFZPUCdzIEFIQiBzbGF2ZQo+Pj4+Pj4+IGludGVyZmFjZS4gVXN1YWxseSwgaWYgdGhhdCBhZmZl Y3RlZCBhbnl0aGluZyBvdGhlciB0aGFuIGFjY2Vzc2luZyBWT1AKPj4+Pj4+PiByZWdpc3RlcnMs IGluZGVlZCBpdCB3b3VsZCBzbWVsbCBvZiBzb21ldGhpbmcgYmVpbmcgd3JvbmcgaW4gdGhlIGNs b2NrIHRyZWUsCj4+Pj4+Pj4gYnV0IGluIHRoaXMgY2FzZSBJJ2QgYWxzbyBiZSBzdXNwaWNpb3Vz IG9mIHdoZXRoZXIgaXQgbWlnaHQgaGF2ZSBlbmRlZCB1cAo+Pj4+Pj4+IGNsb2NraW5nIHJlbGF0 ZWQgR1JGIHJlZ2lzdGVycyBhcyB3ZWxsIChlaXRoZXIgZGlyZWN0bHksIG9yIGluZGlyZWN0bHkg dmlhCj4+Pj4+Pj4gc29tZSBnYXRlIHRoYXQgdGhlIGNsb2NrIGRyaXZlciBoYXNuJ3QgbW9kZWxs ZWQgeWV0KS4KPj4+Pj4+IE9rLCBJIGFtIGJlZ2lubmluZyB0byB1bmRlcnN0YW5kLiBJIHZlcmlm aWVkIHRoYXQgaGRtaSwgbWlwaSBhbmQgZHAgYXJlCj4+Pj4+PiBoYW5naW5nIHdoZW4gSENMS19W T1AgaXMgZGlzYWJsZWQgYnkgZGlzYWJsaW5nIHRoYXQgY2xvY2sgdmlhIHN5c2ZzCj4+Pj4+PiB1 c2luZyBDTE9DS19BTExPV19XUklURV9ERUJVR0ZTLiBXaGVuIGl0J3MgZGlzYWJsZWQgdGhlbiB0 aGUgcmVnaXN0ZXJzCj4+Pj4+PiBvZiB0aGF0IHVuaXRzIGNhbid0IGJlIGFjY2Vzc2VkLiBIb3dl dmVyLCB3aGVuIEkgZGlzYWJsZSBIQ0xLX1ZPUCBieQo+Pj4+Pj4gZGlyZWN0bHkgd3JpdGluZyB0 byB0aGUgZ2F0ZSBiaXQgUkszNTY4X0NMS0dBVEVfQ09OKDIwKSB0aGVuIG9ubHkKPj4+Pj4+IGFj Y2Vzc2luZyBWT1AgcmVnaXN0ZXJzIGhhbmdzLCB0aGUgb3RoZXIgdW5pdHMgc3RheSBmdW5jdGlv bmFsLgo+Pj4+Pj4gU28gaXQgc2VlbXMgaXQgbXVzdCBiZSB0aGUgcGFyZW50IGNsb2NrIHdoaWNo IG11c3QgYmUgZW5hYmxlZC4gVGhlCj4+Pj4+PiBwYXJlbnQgY2xvY2sgaXMgaGNsa192by4gVGhp cyBjbG9jayBzaG91bGQgYmUgaGFuZGxlZCBhcyBwYXJ0IG9mIHRoZQo+Pj4+Pj4gUkszNTY4X1BE X1ZPIHBvd2VyIGRvbWFpbjoKPj4+Pj4+Cj4+Pj4+PiAJcG93ZXItZG9tYWluQFJLMzU2OF9QRF9W TyB7Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICByZWcgPSA8UkszNTY4X1BEX1ZPPjsKPj4+Pj4+ ICAgICAgICAgICAgICAgICAgIGNsb2NrcyA9IDwmY3J1IEhDTEtfVk8+LAo+Pj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPCZjcnUgUENMS19WTz4sCj4+Pj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8JmNydSBBQ0xLX1ZPUF9QUkU+Owo+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgIHBtX3FvcyA9IDwmcW9zX2hkY3A+LAo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDwmcW9zX3ZvcF9tMD4sCj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCZx b3Nfdm9wX20xPjsKPj4+Pj4+ICAgICAgICAgICAgICAgICAgICAjcG93ZXItZG9tYWluLWNlbGxz ID0gPDA+Owo+Pj4+Pj4gICAgICAgICAgIH07Cj4+Pj4+IEZvcmdldCB0aGlzLiBUaGUgY2xvY2tz IGluIHRoaXMgbm9kZSBhcmUgb25seSBlbmFibGVkIGR1cmluZyBlbmFibGluZyBvcgo+Pj4+PiBk aXNhYmxpbmcgdGhlIHBvd2VyIGRvbWFpbiwgdGhleSBhcmUgZGlzYWJsZWQgYWdhaW4gaW1tZWRp YXRlbHkgYWZ0ZXJ3YXJkcy4KPj4+Pj4KPj4+Pj4gT0ssIEkgbmVlZCBIQ0xLX1ZPIHRvIGFjY2Vz cyB0aGUgSERNSSByZWdpc3RlcnMuIEkgdmVyaWZpZWQgdGhhdCBieQo+Pj4+PiBkaXNhYmxpbmcg SENMS19WTyBhdCByZWdpc3RlciBsZXZlbCAoQ1JVX0dBVEVfQ09OKDIwKSBCSVQoMSkpLiBUaGUK Pj4+Pj4gSERNSSByZWdpc3RlcnMgYmVjb21lIGluYWNjZXNzaWJsZSB0aGVuLiBUaGlzIG1lYW5z IEknbGwgcmVwbGFjZQo+Pj4+PiBIQ0xLX1ZPUCBpbiB0aGUgSERNSSBub2RlIHdpdGggSENMS19W Ty4gRG9lcyB0aGlzIHNvdW5kIHNhbmU/Cj4+Pj4gV2VsbCwgaXQncyBzdGlsbCBhIG15c3Rlcnkg aGFjayBvdmVyYWxsLCBhbmQgaW4gc29tZSB3YXlzIGl0IHNlZW1zIGV2ZW4gbW9yZQo+Pj4+IHN1 c3BlY3QgdG8gYmUgY2xhaW1pbmcgYSB3aG9sZSBicmFuY2ggb2YgdGhlIGNsb2NrIHRyZWUgcmF0 aGVyIHRoYW4gYSBsZWFmCj4+Pj4gZ2F0ZSB3aXRoIGEgc3BlY2lmaWMgcHVycG9zZS4gSSdtIHJl YWxseSBzdGFydGluZyB0byB0aGluayB0aGF0IHRoZQo+Pj4+IHVuZGVybHlpbmcgaXNzdWUgaGVy ZSBpcyBhIGJ1ZyBpbiB0aGUgY2xvY2sgZHJpdmVyLCBvciBhIGhhcmR3YXJlIG1pc2hhcAo+Pj4+ IHRoYXQgc2hvdWxkIGxvZ2ljYWxseSBiZSB3b3JrZWQgYXJvdW5kIGJ5IHRoZSBjbG9jayBkcml2 ZXIsIHJhdGhlciB0aGFuCj4+Pj4gaW5kaXZpZHVhbCB0aGUgY29uc3VtZXJzLgo+Pj4+Cj4+Pj4g RG9lcyBpdCB3b3JrIGlmIHlvdSBoYWNrIHRoZSBjbG9jayBkcml2ZXIgdG8gdGhpbmsgdGhhdCBQ Q0xLX1ZPIGlzIGEgY2hpbGQKPj4+PiBvZiBIQ0xLX1ZPPyBFdmVuIGlmIHRoYXQncyBub3QgdGVj aG5pY2FsbHkgdHJ1ZSwgaXQgd291bGQgc2VlbSB0bwo+Pj4+IGVmZmVjdGl2ZWx5IG1hdGNoIHRo ZSBvYnNlcnZlZCBiZWhhdmlvdXIgKGkuZS4gYWxsIDMgdGhpbmdzIHdob3NlIHJlZ2lzdGVyCj4+ Pj4gYWNjZXNzIGFwcGFyZW50bHkgKnNob3VsZCogYmUgZW5hYmxlZCBieSBhIGdhdGUgb2ZmIFBD TEtfVk8sIHNlZW0gdG8gYWxzbwo+Pj4+IHJlcXVpcmUgSENMS19WTykuCj4+PiBZZXMsIHRoYXQg d29ya3MgYXMgZXhwZWN0ZWQuIEkgYW0gbm90IHN1cmUgdGhvdWdoIGlmIHdlIHJlYWxseSB3YW50 IHRvCj4+PiBnbyB0aGF0IHBhdGguIFRoZSBwY2xrIHJhdGVzIHdpbGwgYmVjb21lIGNvbXBsZXRl bHkgYm9ndXMgd2l0aCB0aGlzIGFuZAo+Pj4gc2hvdWxkIHdlIGhhdmUgdG8gcGxheSB3aXRoIHRo ZSByYXRlcyBpbiB0aGUgZnV0dXJlIHdlIG1pZ2h0IHJlZ3JldCB0aGlzCj4+PiBzdGVwLgo+PiBI b3cgZG8gd2UgcHJvY2VlZCBoZXJlPyBJIGNhbiBpbmNsdWRlIGEgcGF0Y2ggd2hpY2ggbWFrZXMg UENMS19WTyBhCj4+IGNoaWxkIG9mIEhDTEtfVk8gaWYgdGhhdCdzIHdoYXQgd2UgYWdyZWUgdXBv bi4KPiBDb3VsZG4ndCBBbmR5IGNsYXJpZnkgdGhlIGFjdHVhbCBjbG9jayB0cmVlIHN0cnVjdHVy ZSBvZiB0aGUgaC93IGZvciB1cz8KPgo+IFRoaXMgd2lsbCBiZSB0aGUgYmVzdCBvcHRpb24gYmVj YXVzZSBkYXRhc2hlZXQgZG9lc24ndCBnaXZlIHRoZSBjbGVhcgo+IGFuc3dlciwgb3IgYXQgbGVh c3QgSSBjb3VsZG4ndCBmaW5kIGl0LiBUZWNobmljYWxseSwgUENMSyBpbmRlZWQgc2hvdWxkCj4g YmUgYSBjaGlsZCBvZiB0aGUgSENMSyBpbiBnZW5lcmFsLCBzbyBSb2JpbiBjb3VsZCBiZSByaWdo dC4KCgpBZGQgb3VyIGNsayBleHBlcnQgRWxhaW5lLCBzaGUgd2lsbCBzaGFyZSBzb21lIGluZm9y bWF0aW9uIGFib3V0IHRoZSAKYWN0dWFsIGNsb2NrIHN0cnVjdHVyZS4KCgo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTGludXgtcm9ja2NoaXAgbWFp bGluZyBsaXN0Cj4gTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IGh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJu ZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK