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 X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AFEA4C10F06 for ; Thu, 14 Mar 2019 17:51:54 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 844C320811 for ; Thu, 14 Mar 2019 17:51:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="gD/Kb00P" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 844C320811 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AkNYYSsDGxeLnvRtUoOERhySX/XOpqwX+e7Pigz3Rw0=; b=gD/Kb00Pt9XDhZ kMnCG/4qUAcmW4ExvsAQyb0PXgIFtd/OKM2sKve5mkulvjc+4eP45CydWwTvxZe8CoU2iwJxwqroj oVzJivtjTOCDErhx9y+V+DjK1n6vDHVBtwWMfJ5dMzoXxRojZ0HSrYbBAXF1nwVvU8pdDzmymE77c QbjFQurbHfRc7jxRDqskCw6bjZdCTdmJjt7cmUfR2zpT3PkDe+vCYjHdlwYZYNarv+OMf711hWJgZ ZlpQYSWs08XhNzcePY+0+F+UehNnBJ8nXSwW4r7ML72V0Q6RDZWECz5xGJ1/v3vM8g2J8B298Secb fg3EwxwH5VWEtnaupFAw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4UW8-0005Mr-Jt; Thu, 14 Mar 2019 17:51:44 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h4UW5-0005MA-Gd; Thu, 14 Mar 2019 17:51:43 +0000 Received: from [IPv6:2804:431:9718:4c54:5b9b:61a:a071:48bc] (unknown [IPv6:2804:431:9718:4c54:5b9b:61a:a071:48bc]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: koike) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id E159F278FCF; Thu, 14 Mar 2019 17:51:31 +0000 (GMT) Subject: Re: [PATCH v2 1/5] drm/rockchip: fix fb references in async update To: =?UTF-8?Q?Michel_D=c3=a4nzer?= , Tomasz Figa , Boris Brezillon References: <20190312022204.2775-1-helen.koike@collabora.com> <20190312022204.2775-2-helen.koike@collabora.com> <20190312073438.05ad8173@collabora.com> <20190312165243.5b771e4a@collabora.com> <05750143-708b-b84e-af67-82ec6815bd89@daenzer.net> From: Helen Koike Openpgp: preference=signencrypt Autocrypt: addr=helen.koike@collabora.com; keydata= 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 Message-ID: Date: Thu, 14 Mar 2019 14:51:20 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190314_105141_815651_B8161CE4 X-CRM114-Status: GOOD ( 29.69 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?Q?St=c3=a9phane_Marchesin?= , Sean Paul , David Airlie , Daniel Vetter , Linux Kernel Mailing List , dri-devel , "open list:ARM/Rockchip SoC..." , "list@263.net:IOMMU DRIVERS" , kernel@collabora.com, nicholas.kazlauskas@amd.com, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAzLzE0LzE5IDY6MTUgQU0sIE1pY2hlbCBEw6RuemVyIHdyb3RlOgo+IE9uIDIwMTktMDMt MTMgNzowOCBwLm0uLCBIZWxlbiBLb2lrZSB3cm90ZToKPj4gT24gMy8xMy8xOSA2OjU4IEFNLCBN aWNoZWwgRMOkbnplciB3cm90ZToKPj4+IE9uIDIwMTktMDMtMTMgNDo0MiBhLm0uLCBUb21hc3og RmlnYSB3cm90ZToKPj4+PiBPbiBXZWQsIE1hciAxMywgMjAxOSBhdCAxMjo1MiBBTSBCb3JpcyBC cmV6aWxsb24KPj4+PiA8Ym9yaXMuYnJlemlsbG9uQGNvbGxhYm9yYS5jb20+IHdyb3RlOgo+Pj4+ PiBPbiBUdWUsIDEyIE1hciAyMDE5IDEyOjM0OjQ1IC0wMzAwCj4+Pj4+IEhlbGVuIEtvaWtlIDxo ZWxlbi5rb2lrZUBjb2xsYWJvcmEuY29tPiB3cm90ZToKPj4+Pj4+IE9uIDMvMTIvMTkgMzozNCBB TSwgQm9yaXMgQnJlemlsbG9uIHdyb3RlOgo+Pj4+Pj4+IE9uIE1vbiwgMTEgTWFyIDIwMTkgMjM6 MjE6NTkgLTAzMDAKPj4+Pj4+PiBIZWxlbiBLb2lrZSA8aGVsZW4ua29pa2VAY29sbGFib3JhLmNv bT4gd3JvdGU6Cj4+Pj4+Pj4KPj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2RybV92b3AuYwo+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX3ZvcC5jCj4+Pj4+Pj4+IEBAIC05MTIsMzAgKzkxMiwzMSBAQCBzdGF0 aWMgdm9pZCB2b3BfcGxhbmVfYXRvbWljX2FzeW5jX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSkKPj4+Pj4+Pj4gIHsKPj4+Pj4+Pj4gICAgc3Ry dWN0IHZvcCAqdm9wID0gdG9fdm9wKHBsYW5lLT5zdGF0ZS0+Y3J0Yyk7Cj4+Pj4+Pj4+IC0gIHN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+Pj4+Pj4+PiArICBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpvbGRfZmIgPSBwbGFuZS0+c3RhdGUtPmZiOwo+Pj4+Pj4+Pgo+Pj4+Pj4+ PiAtICBwbGFuZV9zdGF0ZSA9IHBsYW5lLT5mdW5jcy0+YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShw bGFuZSk7Cj4+Pj4+Pj4+IC0gIHBsYW5lX3N0YXRlLT5jcnRjX3ggPSBuZXdfc3RhdGUtPmNydGNf eDsKPj4+Pj4+Pj4gLSAgcGxhbmVfc3RhdGUtPmNydGNfeSA9IG5ld19zdGF0ZS0+Y3J0Y195Owo+ Pj4+Pj4+PiAtICBwbGFuZV9zdGF0ZS0+Y3J0Y19oID0gbmV3X3N0YXRlLT5jcnRjX2g7Cj4+Pj4+ Pj4+IC0gIHBsYW5lX3N0YXRlLT5jcnRjX3cgPSBuZXdfc3RhdGUtPmNydGNfdzsKPj4+Pj4+Pj4g LSAgcGxhbmVfc3RhdGUtPnNyY194ID0gbmV3X3N0YXRlLT5zcmNfeDsKPj4+Pj4+Pj4gLSAgcGxh bmVfc3RhdGUtPnNyY195ID0gbmV3X3N0YXRlLT5zcmNfeTsKPj4+Pj4+Pj4gLSAgcGxhbmVfc3Rh dGUtPnNyY19oID0gbmV3X3N0YXRlLT5zcmNfaDsKPj4+Pj4+Pj4gLSAgcGxhbmVfc3RhdGUtPnNy Y193ID0gbmV3X3N0YXRlLT5zcmNfdzsKPj4+Pj4+Pj4gLQo+Pj4+Pj4+PiAtICBpZiAocGxhbmVf c3RhdGUtPmZiICE9IG5ld19zdGF0ZS0+ZmIpCj4+Pj4+Pj4+IC0gICAgICAgICAgZHJtX2F0b21p Y19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBuZXdfc3RhdGUtPmZiKTsKPj4+Pj4+Pj4g LQo+Pj4+Pj4+PiAtICBzd2FwKHBsYW5lX3N0YXRlLCBwbGFuZS0+c3RhdGUpOwo+Pj4+Pj4+PiAt Cj4+Pj4+Pj4+IC0gIGlmIChwbGFuZS0+c3RhdGUtPmZiICYmIHBsYW5lLT5zdGF0ZS0+ZmIgIT0g bmV3X3N0YXRlLT5mYikgewo+Pj4+Pj4+PiArICAvKgo+Pj4+Pj4+PiArICAgKiBBIHNjYW5vdXQg Y2FuIHN0aWxsIGJlIG9jY3VycmluZywgc28gd2UgY2FuJ3QgZHJvcCB0aGUgcmVmZXJlbmNlIHRv Cj4+Pj4+Pj4+ICsgICAqIHRoZSBvbGQgZnJhbWVidWZmZXIuIFRvIHNvbHZlIHRoaXMgd2UgZ2V0 IGEgcmVmZXJlbmNlIHRvIG9sZF9mYiBhbmQKPj4+Pj4+Pj4gKyAgICogc2V0IGEgd29ya2VyIHRv IHJlbGVhc2UgaXQgbGF0ZXIuCj4+Pj4+Pj4KPj4+Pj4+PiBIbSwgZG9lc24ndCBsb29rIGxpa2Ug YW4gYXN5bmMgdXBkYXRlIHRvIG1lIGlmIHdlIGhhdmUgdG8gd2FpdCBmb3IgdGhlCj4+Pj4+Pj4g bmV4dCBWQkxBTksgdG8gaGFwcGVuIHRvIGdldCB0aGUgbmV3IGNvbnRlbnQgb24gdGhlIHNjcmVl bi4gTWF5YmUgd2UKPj4+Pj4+PiBzaG91bGQgcmVqZWN0IGFzeW5jIHVwZGF0ZXMgd2hlbiBvbGRf ZmIgIT0gbmV3X2ZiIGluIHRoZSByawo+Pj4+Pj4+IC0+YXN5bmNfY2hlY2soKSBob29rLgo+Pj4+ Pj4KPj4+Pj4+IFVubGVzcyBJIGFtIG1pc3VuZGVyc3RhbmRpbmcgdGhpcywgd2UgZG9uJ3Qgd2Fp dCBoZXJlLCB3ZSBqdXN0IGdyYWIgYQo+Pj4+Pj4gcmVmZXJlbmNlIHRvIHRoZSBmYiBpbiBjYXNl IGl0IGlzIGJlaW5nIHN0aWxsIHVzZWQgYnkgdGhlIGh3LCBzbyBpdAo+Pj4+Pj4gZG9lc24ndCBn ZXQgcmVsZWFzZWQgcHJlbWF0dXJlbHkuCj4+Pj4+Cj4+Pj4+IEkgd2FzIGp1c3QgcmVhY3Rpbmcg dG8gdGhlIGNvbW1lbnQgdGhhdCBzYXlzIHRoZSBuZXcgRkIgc2hvdWxkIHN0YXkKPj4+Pj4gYXJv dW5kIHVudGlsIHRoZSBuZXh0IFZCTEFOSyBldmVudCBoYXBwZW5zLiBJZiB0aGUgRkIgbXVzdCBz dGF5IGFyb3VuZAo+Pj4+PiB0aGF0IHByb2JhYmx5IG1lYW5zIHRoZSBIVyBpcyBzdGlsbCB1c2lu Zywgd2hpY2ggbWFkZSBtZSB3b25kZXIgaWYgdGhpcwo+Pj4+PiBIVyBhY3R1YWxseSBzdXBwb3J0 cyBhc3luYyB1cGRhdGUgKHdoZXJlIGFzeW5jIG1lYW5zICJ1cGRhdGUgbm93IGFuZAo+Pj4+PiBk b24ndCBjYXJlIGFib3V0IGFib3V0IHRlYXJpbmciKS4gT3IgbWF5YmUgaXQgdGFrZXMgc29tZSB0 aW1lIHRvIHN3aXRjaAo+Pj4+PiB0byB0aGUgbmV3IEZCIGFuZCB3YWl0aW5nIGZvciB0aGUgbmV4 dCBWQkxBTksgdG8gcmVsZWFzZSB0aGUgb2xkIEZCIHdhcwo+Pj4+PiBhbiBlYXN5IHNvbHV0aW9u IHRvIG5vdCB3YWl0IGZvciB0aGUgZmxpcCB0byBhY3R1YWxseSBoYXBwZW4gaW4KPj4+Pj4gLT5h c3luY191cGRhdGUoKSAod2hpY2ggaXMga2luZCBvZiBhIGNvbWJpbmF0aW9uIG9mIGFzeW5jK25v bi1ibG9ja2luZykuCj4+Pj4KPj4+PiBUaGUgaGFyZHdhcmUgc3dpdGNoZXMgZnJhbWVidWZmZXJz IG9uIHZibGFuaywgc28gd2hhdGV2ZXIgZnJhbWVidWZmZXIKPj4+PiBpcyBjdXJyZW50bHkgYmVp bmcgc2Nhbm5lZCBvdXQgZnJvbSBuZWVkcyB0byBzdGF5IHRoZXJlIHVudGlsIHRoZQo+Pj4+IGhh cmR3YXJlIHN3aXRjaGVzIHRvIHRoZSBuZXcgb25lIGluIHNoYWRvdyByZWdpc3RlcnMuIElmIHRo YXQgZG9lc24ndAo+Pj4+IGhhcHBlbiwgeW91IGdldCBJT01NVSBmYXVsdHMgYW5kIHRoZSBkaXNw bGF5IGNvbnRyb2xsZXIgc3RvcHMgd29ya2luZwo+Pj4+IHNpbmNlIHdlIGRvbid0IGhhdmUgYW55 IGZhdWx0IGhhbmRsaW5nIGN1cnJlbnRseSwganVzdCBwcmludGluZyBhCj4+Pj4gbWVzc2FnZS4K Pj4+Cj4+PiBTb3VuZHMgbGlrZSB5b3VyIGhhcmR3YXJlIGRvZXNuJ3QgYWN0dWFsbHkgc3VwcG9y dCBhc3luYyBmbGlwcy4gSXQncwo+Pj4gcHJvYmFibHkgYmV0dGVyIGZvciB0aGUgZHJpdmVyIG5v dCB0byBwcmV0ZW5kIG90aGVyd2lzZS4KPj4KPj4gSSB0aGluayB3ZWUgbmVlZCB0byBjbGFyaWZ5 IHRoZSBtZWFuaW5nIG9mIHRoZSBhc3luY191cGRhdGUgY2FsbGJhY2sKPj4gKGFuZCB3ZSBzaG91 bGQgY2xhcmlmeSBpdCBpbiB0aGUgZG9jcykuCj4+Cj4+IFRoZSB3YXkgSSB1bmRlcnN0YW5kIHdo YXQgdGhlIGFzeW5jX3VwZGF0ZSBjYWxsYmFjayBzaG91bGQgZG8gaXM6IGRvbid0Cj4+IGJsb2Nr IChpLmUuIGRvbid0IHdhaXQgZm9yIHRoZSBuZXh0IHZibGFuayksCj4gCj4gTm90ZSB0aGF0IHRo b3NlIGFyZSB0d28gc2VwYXJhdGUgdGhpbmdzLiAiQXN5bmMgZmxpcHMiIGFyZSBhYm91dCAiZG9u J3QKPiB3YWl0IGZvciB2YmxhbmsiLCBub3QgYWJvdXQgImRvbid0IGJsb2NrIi4KPiAKPiAKPj4g YW5kIHVwZGF0ZSB0aGUgaHcgc3RhdGUgYXQgc29tZSBwb2ludCB3aXRoIHRoZSBsYXRlc3Qgc3Rh dGUgZnJvbSB0aGUKPj4gbGFzdCBjYWxsIHRvIGFzeW5jX3VwZGF0ZS4KPj4KPj4gV2hpY2ggbWVh bnMgdGhhdDogYW55IGRyaXZlciBjYW4gaW1wbGVtZW50IHRoZSBhc3luY191cGRhdGUgY2FsbGJh Y2ssCj4+IGluZGVwZW5kZW50bHkgaWYgaXQgc3VwcG9ydHMgY2hhbmdpbmcgaXRzIHN0YXRlIHJp Z2h0IGF3YXkgb3Igbm90Lgo+PiBJZiBodyBzdXBwb3J0cywgYXN5bmNfdXBkYXRlIGNhbiBjaGFu Z2UgdGhlIGh3IHN0YXRlIHJpZ2h0IGF3YXksIGlmIG5vdCwKPj4gdGhlbiBjaGFuZ2VzIHdpbGwg YmUgYXBwbGllZCBpbiB0aGUgbmV4dCB2YmxhbmsgKGl0IGNhbiBldmVuIGFtZW5kIHRoZQo+PiBw ZW5kaW5nIGNvbW1pdCBpZiB0aGVyZSBpcyBvbmUpLgo+PiBXaXRoIHRoaXMsIHdlIGNhbiByZW1v dmUgYWxsIHRoZSBsZWdhY3kgY3Vyc29yIGNvZGUgdG8gdXNlIHRoZQo+PiBhc3luY191cGRhdGUg Y2FsbGJhY2ssIHNpbmNlIGFzeW5jX3VwZGF0ZSBjYW4gYmUgY2FsbGVkIDEwMCB0aW1lcyBiZWZv cmUKPj4gdGhlIG5leHQgdmJsYW5rLCBhbmQgdGhlIGxhdGVzdCBzdGF0ZSB3aWxsIGJlIHNldCB0 byB0aGUgaHcgd2l0aG91dAo+PiB3YWl0aW5nIDEwMCB2YmxhbmtzLgo+Pgo+PiBQbGVhc2UsIGxl dCBtZSBrbm93IGlmIHRoaXMgaXMgeW91ciB1bmRlcnN0YW5kaW5nIGFzIHdlbGwuIElmIG5vdCwg dGhlbgo+PiB3ZSBuZWVkIHRvIHJlbW9kZWwgdGhpbmdzLgo+IAo+IFdoaWxlIHRoaXMgbWF5IG1h a2Ugc2Vuc2UgZm9yIGN1cnNvciB1cGRhdGVzLCBJIGRvbid0IHRoaW5rIGl0IGRvZXMgZm9yCj4g YXN5bmMgZmxpcHMuIElmIHRoZSBmbGlwIG9ubHkgYWN0dWFsbHkgdGFrZXMgZWZmZWN0IGR1cmlu ZyB0aGUgbmV4dAo+IHZibGFuaywgaXQgZG9lc24ndCByZWFsbHkgZml0IHRoZSBkZWZpbml0aW9u IGFuZCB1c2Vyc3BhY2UgZXhwZWN0YXRpb24KPiBvZiBhbiBhc3luYyBmbGlwLiBJdCdzIGJldHRl ciB0byBjbGVhcmx5IGNvbW11bmljYXRlIHRvIHVzZXJzcGFjZSB0aGF0Cj4gdGhlIGhhcmR3YXJl IGNhbm5vdCBkbyBhc3luYyBmbGlwcywgdGhhbiB0byBwcmV0ZW5kIGl0IGNhbiBhbmQgZmFrZQo+ IHRoZW0uIFVzZXJzcGFjZSBoYXMgdG8gZGVhbCB3aXRoIHRoaXMgYW55d2F5LCBzaW5jZSBhc3lu YyBmbGlwcyB3ZXJlbid0Cj4gYWx3YXlzIHN1cHBvcnRlZCBpbiBnZW5lcmFsLgo+IAo+IAoKV2hh dCBkbyB5b3UgdGhpbmsgaWYgd2Ugc2VwYXJhdGUgdHdvIGNvbmNlcHRzIGhlcmU6CgotIGFtZW5k IG1vZGU6IHdvcmtzIGxpa2UgY3Vyc29yIHVwZGF0ZXMsIGkuZSwgdXBkYXRlIHRoZSBodyBzdGF0 ZSBhdApzb21lIHBvaW50IHdpdGggdGhlIGxhdGVzdCBzdGF0ZSBmcm9tIHRoZSBsYXN0IGNhbGwg dG8gYXN5bmNfdXBkYXRlLiBObwpzcGVjaWFsIGhhcmR3YXJlIHN1cHBvcnQgaXMgcmVxdWlyZWQu CgotIGFzeW5jIHVwZGF0ZTogdXBkYXRlIGh3IHN0YXRlIGltbWVkaWF0ZWx5LiBUaGlzIGRlcGVu ZHMgaWYgdGhlIGh3CnN1cHBvcnRzIGl0IG9yIG5vdC4KCkV2ZXJ5IGFzeW5jIHVwZGF0ZSBpcyBh biBhbWVuZCwgYnV0IHRoZSBvcHBvc2l0ZSBpcyBub3QgbmVjZXNzYXJpbHkgdHJ1ZS4KCldoYXQg ZG8geW91IHRoaW5rIGlmIHdlIHJlbmFtZSB0aGUgY3VycmVudCBhc3luY191cGRhdGUgdG8gYW1l bmRfdXBkYXRlLAphbmQgd2UgYWRkIGEgcGFyYW1ldGVyICJmb3JjZV9hc3luYyIgdG8gaXQ/IChv ciBtYXliZQpmb3JjZV9pbW1lZGlhdGVfdXBkYXRlPykKVGhlbiBhbWVuZF9jaGVjayB3aXRoIGZv cmNlX2FzeW5jPTEgd291bGQgZmFpbCBpZiB0aGUgaGFyZHdhcmUgZG9lc24ndApzdXBwb3J0IGl0 ICh3ZSBjb3VsZCBhbHNvIGFkZCBmbGFncyBpbiB0aGUgY2FwYWJpbGl0aWVzIHRvIGluZm9ybQp1 c2Vyc3BhY2UgdGhlIGV4cGVjdGVkIGJlaGF2aW91ciBvZiB0aGluZ3MgYW5kIGlmIHRoZSBodyBz dXBwb3J0cwpmb3JjZV9zeW5jKS4KCkxpa2UgdGhpcywgd2UgY2FuIGltcGxlbWVudCB0aGUgY3Vy c29ycyB1c2luZyB0aGUgYW1lbmRfdXBkYXRlICh3aGljaCBpcwpub3cgY2FsbGVkIGFzeW5jX3Vw ZGF0ZSksIGFuZCBhc3luY19mbGlwcyB3aXRoIGFtZW5kX3VwZGF0ZSB3aXRoCmZvcmNlX2FzeW5j PTEuCgpJZiB0aGlzIHNvdW5kcyBhIHJlYXNvbmFibGUgcHJvcG9zYWwgSSBjYW4gdHJ5IHRvIHdv cmsgb24gYSBwcm9mIG9mCmNvbmNlcHQuIFdoYXQgZG8geW91IHRoaW5rPyBMZXQgbWUga25vdyBp ZiB5b3UgaGF2ZSBhbnkgb3RoZXIgaWRlYXMuCgpUaGFua3MsCkhlbGVuCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==