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=-13.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 8C541C3F2CE for ; Sat, 29 Feb 2020 10:09:45 +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 539F02087F for ; Sat, 29 Feb 2020 10:09:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="h+ZhSe+r"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="SZALlPK6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 539F02087F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kwiboo.se Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-amlogic-bounces+linux-amlogic=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:To:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Subject:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=P76gcY6nWWTa7uDdh4TeBSFrHivu2EKH3MqeaqEa2zQ=; b=h+ZhSe+r5LXVxM BV91LxVqDUIU+984pEr2wbT5p6GbeArM/NTJPPO3cdOONaiZgZVx/UDt8RgFFdgPz5TpNepFAMi9d +GVyCYgp9QcX+5O3CubIYRy6Lm/Tw3k8mzJ5LqzuAyB3Ad/P4ZegauDBC5lTKsLOhdOYlFuXbrRHm tZim4YRRwgPzg7leKQGCz7ISUl7S8pwrUIuAq2rg6xQcCykOGRcXgKGPLjDTe5Nn3sfVxm4B3QtX+ 9a+XDiRPMqTNbLjmhilyGWDxbFGJ00RaLJn6h37/R4LajGo+oP1+IkUW7wgXw0p07FQVG5U0ePobP i9EoDWkoPlPPpuHSILNg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j7z3s-0005L3-Us; Sat, 29 Feb 2020 10:09:32 +0000 Received: from o1.b.az.sendgrid.net ([208.117.55.133]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1j7z3p-0005Jz-Pl for linux-amlogic@lists.infradead.org; Sat, 29 Feb 2020 10:09:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=subject:references:from:mime-version:in-reply-to:to:cc:content-type: content-transfer-encoding; s=001; bh=I5KakeKa3fDbyDI6+KHFFZdQT3lXSpUAyAoIa7r04Qo=; b=SZALlPK6sMrRuDNBrCZu99vbu5X1xHPk0dhzc6MuFIu2gSkgwZq1l9QvRpbdxcInkRJ9 nEnxfuvaHZg0vZP3h9v9edWGYAx8qCqI66o0BQGU0Qr6eEvMedpW5+B2bkzDs3roNHGHs4 zTlDmiPYMY7b0tuNKXAljnjvYdaXF4WEE= Received: by filterdrecv-p3las1-9564bb6d7-rdd6m with SMTP id filterdrecv-p3las1-9564bb6d7-rdd6m-18-5E5A3849-2C 2020-02-29 10:09:13.973227294 +0000 UTC m=+1956412.834445182 Received: from [192.168.1.14] (unknown [98.128.173.80]) by ismtpd0002p1lon1.sendgrid.net (SG) with ESMTP id suFZazrLTxKfiCcjv-TsvA Sat, 29 Feb 2020 10:09:13.496 +0000 (UTC) Subject: Re: [PATCH v4 04/11] drm/bridge: synopsys: dw-hdmi: add bus format negociation References: <20200206191834.6125-1-narmstrong@baylibre.com> <20200206191834.6125-5-narmstrong@baylibre.com> <5330543.DvuYhMxLoT@jernej-laptop> From: Jonas Karlman Message-ID: <64b6ef10-b2e2-02f3-56dd-14dd0782a7aa@kwiboo.se> Date: Sat, 29 Feb 2020 10:09:14 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <5330543.DvuYhMxLoT@jernej-laptop> X-SG-EID: =?us-ascii?Q?TdbjyGynYnRZWhH+7lKUQJL+ZxmxpowvO2O9SQF5CwCVrYgcwUXgU5DKUU3QxA?= =?us-ascii?Q?fZekEeQsTe+RrMu3cja6a0hy98vFa07aQayK3Gq?= =?us-ascii?Q?C7cRqQVentfxwaF6auGQt66uxwzAU8K7+sEoVev?= =?us-ascii?Q?1w5oqoPhhXC34LL+Z37etj9Pc9AEG4UzVtiFiny?= =?us-ascii?Q?pLy3hwHwIw67L6c6GfG+rH1oGt6lixR9cirCioe?= =?us-ascii?Q?zC2L5h5vA5bKc0CBg=2FayHaEUCfeZz=2FD0tKF7mq4?= =?us-ascii?Q?ktRShDlkWOnds2YcuJL8Q=3D=3D?= To: Jernej =?iso-8859-2?q?=A9krabec?= , a.hajda@samsung.com, Laurent.pinchart@ideasonboard.com, boris.brezillon@collabora.com, Neil Armstrong Content-Language: sv X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200229_020930_191607_78E993D9 X-CRM114-Status: GOOD ( 19.90 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGkgSmVybmVqLAoKT24gMjAyMC0wMi0yOSAwODo0MiwgSmVybmVqIMWga3JhYmVjIHdyb3RlOgo+ IEhpIE5laWwhCj4gCj4gRG5lIMSNZXRydGVrLCAwNi4gZmVicnVhciAyMDIwIG9iIDIwOjE4OjI3 IENFVCBqZSBOZWlsIEFybXN0cm9uZyBuYXBpc2FsKGEpOgo+PiBBZGQgdGhlIGF0b21pY19nZXRf b3V0cHV0X2J1c19mbXRzLCBhdG9taWNfZ2V0X2lucHV0X2J1c19mbXRzIHRvIG5lZ29jaWF0ZQo+ PiB0aGUgcG9zc2libGUgb3V0cHV0IGFuZCBpbnB1dCBmb3JtYXRzIGZvciB0aGUgY3VycmVudCBt b2RlIGFuZCBtb25pdG9yLAo+PiBhbmQgdXNlIHRoZSBuZWdvdGlhdGVkIGZvcm1hdHMgaW4gYSBi YXNpYyBhdG9taWNfY2hlY2sgY2FsbGJhY2suCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE5laWwgQXJt c3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9k cm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYyB8IDI3MiArKysrKysrKysrKysrKysrKysrKyst Cj4+ICAxIGZpbGUgY2hhbmdlZCwgMjY4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4+ Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWku Ywo+PiBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jIGluZGV4Cj4+ IGZlYzRhNGJjZDFmZS4uMTUwNDhhZDY5NGJjIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+PiBAQCAtMjA5NSwxMSArMjA5NSwxMCBAQCBzdGF0aWMg aW50IGR3X2hkbWlfc2V0dXAoc3RydWN0IGR3X2hkbWkgKmhkbWksCj4+IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlKQo+PiBoZG1pLT5oZG1pX2RhdGEudmlkZW9fbW9kZS5tcGl4ZWxyZXBl dGl0aW9ub3V0cHV0ID0gMDsKPj4gIAloZG1pLT5oZG1pX2RhdGEudmlkZW9fbW9kZS5tcGl4ZWxy ZXBldGl0aW9uaW5wdXQgPSAwOwo+Pgo+PiAtCS8qIFRPRklYOiBHZXQgaW5wdXQgZm9ybWF0IGZy b20gcGxhdCBkYXRhIG9yIGZhbGxiYWNrIHRvIFJHQjg4OCAqLwo+PiAgCWlmIChoZG1pLT5wbGF0 X2RhdGEtPmlucHV0X2J1c19mb3JtYXQpCj4+ICAJCWhkbWktPmhkbWlfZGF0YS5lbmNfaW5fYnVz X2Zvcm1hdCA9Cj4+ICAJCQloZG1pLT5wbGF0X2RhdGEtPmlucHV0X2J1c19mb3JtYXQ7Cj4+IC0J ZWxzZQo+PiArCWVsc2UgaWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfaW5fYnVzX2Zvcm1hdCA9PSBN RURJQV9CVVNfRk1UX0ZJWEVEKQo+PiAgCQloZG1pLT5oZG1pX2RhdGEuZW5jX2luX2J1c19mb3Jt YXQgPSAKPiBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0Owo+Pgo+PiAgCS8qIFRPRklYOiBHZXQg aW5wdXQgZW5jb2RpbmcgZnJvbSBwbGF0IGRhdGEgb3IgZmFsbGJhY2sgdG8gbm9uZSAqLwo+PiBA QCAtMjEwOSw4ICsyMTA4LDggQEAgc3RhdGljIGludCBkd19oZG1pX3NldHVwKHN0cnVjdCBkd19o ZG1pICpoZG1pLCBzdHJ1Y3QKPj4gZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkgZWxzZQo+PiAgCQlo ZG1pLT5oZG1pX2RhdGEuZW5jX2luX2VuY29kaW5nID0gCj4gVjRMMl9ZQ0JDUl9FTkNfREVGQVVM VDsKPj4KPj4gLQkvKiBUT0ZJWDogRGVmYXVsdCB0byBSR0I4ODggb3V0cHV0IGZvcm1hdCAqLwo+ PiAtCWhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2J1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JH Qjg4OF8xWDI0Owo+PiArCWlmIChoZG1pLT5oZG1pX2RhdGEuZW5jX291dF9idXNfZm9ybWF0ID09 IE1FRElBX0JVU19GTVRfRklYRUQpCj4+ICsJCWhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2J1c19m b3JtYXQgPSAKPiBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0Owo+Pgo+PiAgCWhkbWktPmhkbWlf ZGF0YS5waXhfcmVwZXRfZmFjdG9yID0gMDsKPj4gIAloZG1pLT5oZG1pX2RhdGEuaGRjcF9lbmFi bGUgPSAwOwo+PiBAQCAtMjM4OCw2ICsyMzg3LDI2NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzCj4+IGR3X2hkbWlfY29ubmVjdG9yX2hlbHBlcl9mdW5j cyA9IC5hdG9taWNfY2hlY2sgPQo+PiBkd19oZG1pX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2ssCj4+ ICB9Owo+Pgo+PiArLyoKPj4gKyAqIFBvc3NpYmxlIG91dHB1dCBmb3JtYXRzIDoKPj4gKyAqIC0g TUVESUFfQlVTX0ZNVF9VWVlWWVkxNl8wXzVYNDgsCj4+ICsgKiAtIE1FRElBX0JVU19GTVRfVVlZ VllZMTJfMF81WDM2LAo+PiArICogLSBNRURJQV9CVVNfRk1UX1VZWVZZWTEwXzBfNVgzMCwKPj4g KyAqIC0gTUVESUFfQlVTX0ZNVF9VWVlWWVk4XzBfNVgyNCwKPj4gKyAqIC0gTUVESUFfQlVTX0ZN VF9ZVVYxNl8xWDQ4LAo+PiArICogLSBNRURJQV9CVVNfRk1UX1JHQjE2MTYxNl8xWDQ4LAo+PiAr ICogLSBNRURJQV9CVVNfRk1UX1VZVlkxMl8xWDI0LAo+PiArICogLSBNRURJQV9CVVNfRk1UX1lV VjEyXzFYMzYsCj4+ICsgKiAtIE1FRElBX0JVU19GTVRfUkdCMTIxMjEyXzFYMzYsCj4+ICsgKiAt IE1FRElBX0JVU19GTVRfVVlWWTEwXzFYMjAsCj4+ICsgKiAtIE1FRElBX0JVU19GTVRfWVVWMTBf MVgzMCwKPj4gKyAqIC0gTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBfMVgzMCwKPj4gKyAqIC0gTUVE SUFfQlVTX0ZNVF9VWVZZOF8xWDE2LAo+PiArICogLSBNRURJQV9CVVNfRk1UX1lVVjhfMVgyNCwK Pj4gKyAqIC0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNCwKPj4gKyAqLwo+PiArCj4+ICsvKiBD YW4gcmV0dXJuIGEgbWF4aW11bSBvZiAxMiBwb3NzaWJsZSBvdXRwdXQgZm9ybWF0cyBmb3IgYSBt b2RlL2Nvbm5lY3Rvcgo+PiAqLyArI2RlZmluZSBNQVhfT1VUUFVUX1NFTF9GT1JNQVRTCTEyCj4+ ICsKPj4gK3N0YXRpYyB1MzIgKmR3X2hkbWlfYnJpZGdlX2F0b21pY19nZXRfb3V0cHV0X2J1c19m bXRzKHN0cnVjdCBkcm1fYnJpZGdlCj4+ICpicmlkZ2UsICsJCQkJCXN0cnVjdCAKPiBkcm1fYnJp ZGdlX3N0YXRlICpicmlkZ2Vfc3RhdGUsCj4+ICsJCQkJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAK PiAqY3J0Y19zdGF0ZSwKPj4gKwkJCQkJc3RydWN0IAo+IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUsCj4+ICsJCQkJCXVuc2lnbmVkIGludCAKPiAqbnVtX291dHB1dF9mbXRzKQo+PiAr ewo+PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9y Owo+PiArCXN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm4tPmRpc3BsYXlfaW5m bzsKPj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjcnRjX3N0YXRlLT5tb2Rl Owo+PiArCXU4IG1heF9icGMgPSBjb25uX3N0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYzsKPj4gKwli b29sIGlzX2hkbWkyX3NpbmsgPSBpbmZvLT5oZG1pLnNjZGMuc3VwcG9ydGVkIHx8Cj4+ICsJCQkg ICAgIChpbmZvLT5jb2xvcl9mb3JtYXRzICYgCj4gRFJNX0NPTE9SX0ZPUk1BVF9ZQ1JDQjQyMCk7 Cj4+ICsJdTMyICpvdXRwdXRfZm10czsKPj4gKwlpbnQgaSA9IDA7Cj4+ICsKPj4gKwkqbnVtX291 dHB1dF9mbXRzID0gMDsKPj4gKwo+PiArCW91dHB1dF9mbXRzID0ga2NhbGxvYyhNQVhfT1VUUFVU X1NFTF9GT1JNQVRTLCBzaXplb2YoKm91dHB1dF9mbXRzKSwKPj4gKwkJCSAgICAgIEdGUF9LRVJO RUwpOwo+PiArCWlmICghb3V0cHV0X2ZtdHMpCj4+ICsJCXJldHVybiBOVUxMOwo+PiArCj4+ICsJ LyoKPj4gKwkgKiBJZiB0aGUgY3VycmVudCBtb2RlIGVuZm9yY2VzIDQ6MjowLCBmb3JjZSB0aGUg b3V0cHV0IGJ1dCBmb3JtYXQKPj4gKwkgKiB0byA0OjI6MCBhbmQgZG8gbm90IGFkZCB0aGUgWVVW NDIyLzQ0NC9SR0IgZm9ybWF0cwo+PiArCSAqLwo+PiArCWlmIChjb25uLT55Y2Jjcl80MjBfYWxs b3dlZCAmJgo+PiArCSAgICAoZHJtX21vZGVfaXNfNDIwX29ubHkoaW5mbywgbW9kZSkgfHwKPj4g KwkgICAgICgpKSkgewo+PiArCj4+ICsJCS8qIE9yZGVyIGJ1cyBmb3JtYXRzIGZyb20gMTZiaXQg dG8gOGJpdCBpZiBzdXBwb3J0ZWQgKi8KPj4gKwkJaWYgKG1heF9icGMgPj0gMTYgJiYgaW5mby0+ YnBjID09IDE2ICYmCj4+ICsJCSAgICAoaW5mby0+aGRtaS55NDIwX2RjX21vZGVzICYgCj4gRFJN X0VESURfWUNCQ1I0MjBfRENfNDgpKQo+PiArCQkJb3V0cHV0X2ZtdHNbaSsrXSA9IAo+IE1FRElB X0JVU19GTVRfVVlZVllZMTZfMF81WDQ4Owo+PiArCj4+ICsJCWlmIChtYXhfYnBjID49IDEyICYm IGluZm8tPmJwYyA+PSAxMiAmJgo+PiArCQkgICAgKGluZm8tPmhkbWkueTQyMF9kY19tb2RlcyAm IAo+IERSTV9FRElEX1lDQkNSNDIwX0RDXzM2KSkKPj4gKwkJCW91dHB1dF9mbXRzW2krK10gPSAK PiBNRURJQV9CVVNfRk1UX1VZWVZZWTEyXzBfNVgzNjsKPj4gKwo+PiArCQlpZiAobWF4X2JwYyA+ PSAxMCAmJiBpbmZvLT5icGMgPj0gMTAgJiYKPj4gKwkJICAgIChpbmZvLT5oZG1pLnk0MjBfZGNf bW9kZXMgJiAKPiBEUk1fRURJRF9ZQ0JDUjQyMF9EQ18zMCkpCj4+ICsJCQlvdXRwdXRfZm10c1tp KytdID0gCj4gTUVESUFfQlVTX0ZNVF9VWVlWWVkxMF8wXzVYMzA7Cj4+ICsKPj4gKwkJLyogRGVm YXVsdCA4Yml0IGZhbGxiYWNrICovCj4+ICsJCW91dHB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNf Rk1UX1VZWVZZWThfMF81WDI0Owo+PiArCj4+ICsJCSpudW1fb3V0cHV0X2ZtdHMgPSBpOwo+PiAr Cj4+ICsJCXJldHVybiBvdXRwdXRfZm10czsKPiAKPiBEcml2ZXIgc2hvdWxkbid0IHJldHVybiBq dXN0IHlldCBmb3IgY2FzZSAiaXNfaGRtaTJfc2luayAmJiAKPiBkcm1fbW9kZV9pc180MjBfYWxz byhpbmZvLCBtb2RlKSIsIGJlY2F1c2UgbW9uaXRvci9UViBhbHNvIHN1cHBvcnRzIFlDYkNyIAo+ IDQ6NDo0IGluIHRoYXQgY2FzZS4gSU1PIFlDYkNyIDQ6NDo0IHNob3VsZCBiZSBldmVuIHByZWZl cmVkLiBXaGF0IGRvIHlvdSAKPiB0aGluaz8KCkkgdGhpbmsgd2UgbmVlZCB0byBoYXZlIHNvbWUg d2F5IGZvciBjb250cm9sbGVyIGRyaXZlciBhbmQgdXNlcnNwYWNlIHRvIGNvbnRyb2wgd2hhdApo ZG1pIG91dHB1dCBmb3JtYXQgZ2V0cyBzZWxlY3RlZC4gSSBrbm93IGZvciBhIGZhY3QgdGhhdCBz b21lIFNhbXN1bmcgVFYgaGF2ZSBpc3N1ZXMKd2l0aCA0NDQgWUNiQ3IgbW9kZXMgYXQgNGsgNTAv NjBoeiBidXQgaGF2ZSBubyBwcm9ibGVtcyB3aXRoIDQyMCBtb2Rlcy4KVGhlIFNhbXN1bmcgVFYg ZWRpZCBsaWUgYW5kL29yIHRoZSBUViBpcyBub3QgZnVsbHkgZm9sbG93aW5nIEhETUkgc3BlY3Mu CgpGcm9tIGEgcGVyc29uYWwgYW5kIG1lZGlhcGxheWVyIHVzZXJzcGFjZSBwZXJzcGVjdGl2ZSBJ IHdvdWxkIGxpa2UgdG8gcHJlZmVyCjQyMC80NDQgWUNiQ3IgbW9kZSBhcyBzb29uIGFzIGFueSB5 dXYgZHJtIHBsYW5lIGlzIGFjdGl2ZSBhbmQgcmdiIDQ0NCBhbnl0aW1lIGVsc2UuCgpPbiBSb2Nr Y2hpcCBTb0NzIHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIgY2Fubm90IG91dHB1dCB5dXY0MjIgdG8g ZHctaGRtaSBibG9jaywKdGhlIG9wdGltYWwgb3V0cHV0IGZvcm1hdCBzZWxlY3Rpb24gaW4gc3Vj aCBjYXNlIHNob3VsZCBwdXQgeXV2NDIyIGxhc3QuCgpNYXliZSBkdy1oZG1pIGNhbiBjYWxsIGEg ZHctaGRtaSBnbHVlIGRyaXZlciBjYWxsYmFjayB0byBnZXQgdGhlIHByZWZlcnJlZCBvdXRwdXQg Zm9ybWF0IG9yZGVyPwoKT24gYSBzaWRlIG5vdGUgYnV0IHJlbGF0ZWQgaXNzdWUsIHRoZSBkdy1o ZG1pIGZvcm1hdCBuZWdvdGlhdGlvbiBjb2RlIHNob3VsZCAKcHJvYmFibHkgYWxzbyBmaWx0ZXIg bW9kZXMgb24gdG1kcyByYXRlLCBzb21ldGhpbmcgbGlrZSBbMV0uCkl0IGlzIG5lZWRlZCB0byBm aWx0ZXIgb3V0IGRlZXAgY29sb3IgbW9kZXMgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBz aW5rIG9yIGhkbWkgc3BlYy4KClsxXSBodHRwczovL2dpdGh1Yi5jb20vS3dpYm9vL2xpbnV4LXJv Y2tjaGlwL2NvbW1pdC9mYzNkZjY5MDMzODRlNzY0YWI2YWM1OTg3OWM0ODljYmVmNTVmY2JlCgpC ZXN0IHJlZ2FyZHMsCkpvbmFzCgo+IAo+IEJlc3QgcmVnYXJkcywKPiBKZXJuZWoKPiAKPj4gKwl9 Cj4+ICsKPj4gKwkvKgo+PiArCSAqIE9yZGVyIGJ1cyBmb3JtYXRzIGZyb20gMTZiaXQgdG8gOGJp dCBhbmQgZnJvbSBZVVY0MjIgdG8gUkdCCj4+ICsJICogaWYgc3VwcG9ydGVkLiBJbiBhbnkgY2Fz ZSB0aGUgZGVmYXVsdCBSR0I4ODggZm9ybWF0IGlzIGFkZGVkCj4+ICsJICovCj4+ICsKPj4gKwlp ZiAobWF4X2JwYyA+PSAxNiAmJiBpbmZvLT5icGMgPT0gMTYpIHsKPj4gKwkJaWYgKGluZm8tPmNv bG9yX2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDQ0KQo+PiArCQkJb3V0cHV0X2Zt dHNbaSsrXSA9IE1FRElBX0JVU19GTVRfWVVWMTZfMVg0ODsKPj4gKwo+PiArCQlvdXRwdXRfZm10 c1tpKytdID0gTUVESUFfQlVTX0ZNVF9SR0IxNjE2MTZfMVg0ODsKPj4gKwl9Cj4+ICsKPj4gKwlp ZiAobWF4X2JwYyA+PSAxMiAmJiBpbmZvLT5icGMgPj0gMTIpIHsKPj4gKwkJaWYgKGluZm8tPmNv bG9yX2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIyKQo+PiArCQkJb3V0cHV0X2Zt dHNbaSsrXSA9IE1FRElBX0JVU19GTVRfVVlWWTEyXzFYMjQ7Cj4+ICsKPj4gKwkJaWYgKGluZm8t PmNvbG9yX2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDQ0KQo+PiArCQkJb3V0cHV0 X2ZtdHNbaSsrXSA9IE1FRElBX0JVU19GTVRfWVVWMTJfMVgzNjsKPj4gKwo+PiArCQlvdXRwdXRf Zm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9SR0IxMjEyMTJfMVgzNjsKPj4gKwl9Cj4+ICsKPj4g KwlpZiAobWF4X2JwYyA+PSAxMCAmJiBpbmZvLT5icGMgPj0gMTApIHsKPj4gKwkJaWYgKGluZm8t PmNvbG9yX2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIyKQo+PiArCQkJb3V0cHV0 X2ZtdHNbaSsrXSA9IE1FRElBX0JVU19GTVRfVVlWWTEwXzFYMjA7Cj4+ICsKPj4gKwkJaWYgKGlu Zm8tPmNvbG9yX2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDQ0KQo+PiArCQkJb3V0 cHV0X2ZtdHNbaSsrXSA9IE1FRElBX0JVU19GTVRfWVVWMTBfMVgzMDsKPj4gKwo+PiArCQlvdXRw dXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBfMVgzMDsKPj4gKwl9Cj4+ICsK Pj4gKwlpZiAoaW5mby0+Y29sb3JfZm9ybWF0cyAmIERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0MjIp Cj4+ICsJCW91dHB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1VZVlk4XzFYMTY7Cj4+ICsK Pj4gKwlpZiAoaW5mby0+Y29sb3JfZm9ybWF0cyAmIERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0NDQp Cj4+ICsJCW91dHB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1lVVjhfMVgyNDsKPj4gKwo+ PiArCS8qIERlZmF1bHQgOGJpdCBSR0IgZmFsbGJhY2sgKi8KPj4gKwlvdXRwdXRfZm10c1tpKytd ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKPj4gKwo+PiArCSpudW1fb3V0cHV0X2ZtdHMg PSBpOwo+PiArCj4+ICsJcmV0dXJuIG91dHB1dF9mbXRzOwo+PiArfQo+PiArCj4+ICsvKgo+PiAr ICogUG9zc2libGUgaW5wdXQgZm9ybWF0cyA6Cj4+ICsgKiAtIE1FRElBX0JVU19GTVRfUkdCODg4 XzFYMjQKPj4gKyAqIC0gTUVESUFfQlVTX0ZNVF9ZVVY4XzFYMjQKPj4gKyAqIC0gTUVESUFfQlVT X0ZNVF9VWVZZOF8xWDE2Cj4+ICsgKiAtIE1FRElBX0JVU19GTVRfVVlZVllZOF8wXzVYMjQKPj4g KyAqIC0gTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBfMVgzMAo+PiArICogLSBNRURJQV9CVVNfRk1U X1lVVjEwXzFYMzAKPj4gKyAqIC0gTUVESUFfQlVTX0ZNVF9VWVZZMTBfMVgyMAo+PiArICogLSBN RURJQV9CVVNfRk1UX1VZWVZZWTEwXzBfNVgzMAo+PiArICogLSBNRURJQV9CVVNfRk1UX1JHQjEy MTIxMl8xWDM2Cj4+ICsgKiAtIE1FRElBX0JVU19GTVRfWVVWMTJfMVgzNgo+PiArICogLSBNRURJ QV9CVVNfRk1UX1VZVlkxMl8xWDI0Cj4+ICsgKiAtIE1FRElBX0JVU19GTVRfVVlZVllZMTJfMF81 WDM2Cj4+ICsgKiAtIE1FRElBX0JVU19GTVRfUkdCMTYxNjE2XzFYNDgKPj4gKyAqIC0gTUVESUFf QlVTX0ZNVF9ZVVYxNl8xWDQ4Cj4+ICsgKiAtIE1FRElBX0JVU19GTVRfVVlZVllZMTZfMF81WDQ4 Cj4+ICsgKi8KPj4gKwo+PiArLyogQ2FuIHJldHVybiBhIG1heGltdW0gb2YgNCBwb3NzaWJsZSBp bnB1dCBmb3JtYXRzIGZvciBhbiBvdXRwdXQgZm9ybWF0ICovCj4+ICsjZGVmaW5lIE1BWF9JTlBV VF9TRUxfRk9STUFUUwk0Cj4+ICsKPj4gK3N0YXRpYyB1MzIgKmR3X2hkbWlfYnJpZGdlX2F0b21p Y19nZXRfaW5wdXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2UKPj4gKmJyaWRnZSwgKwkJCQkJ c3RydWN0IAo+IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9zdGF0ZSwKPj4gKwkJCQkJc3RydWN0 IGRybV9jcnRjX3N0YXRlIAo+ICpjcnRjX3N0YXRlLAo+PiArCQkJCQlzdHJ1Y3QgCj4gZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPj4gKwkJCQkJdTMyIG91dHB1dF9mbXQsCj4+ICsJ CQkJCXVuc2lnbmVkIGludCAKPiAqbnVtX2lucHV0X2ZtdHMpCj4+ICt7Cj4+ICsJdTMyICppbnB1 dF9mbXRzOwo+PiArCWludCBpID0gMDsKPj4gKwo+PiArCSpudW1faW5wdXRfZm10cyA9IDA7Cj4+ ICsKPj4gKwlpbnB1dF9mbXRzID0ga2NhbGxvYyhNQVhfSU5QVVRfU0VMX0ZPUk1BVFMsIHNpemVv ZigqaW5wdXRfZm10cyksCj4+ICsJCQkgICAgIEdGUF9LRVJORUwpOwo+PiArCWlmICghaW5wdXRf Zm10cykKPj4gKwkJcmV0dXJuIE5VTEw7Cj4+ICsKPj4gKwlzd2l0Y2ggKG91dHB1dF9mbXQpIHsK Pj4gKwkvKiA4Yml0ICovCj4+ICsJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0Ogo+PiAr CQlpbnB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0Owo+PiArCQlpbnB1 dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1lVVjhfMVgyNDsKPj4gKwkJaW5wdXRfZm10c1tp KytdID0gTUVESUFfQlVTX0ZNVF9VWVZZOF8xWDE2Owo+PiArCQlicmVhazsKPj4gKwljYXNlIE1F RElBX0JVU19GTVRfWVVWOF8xWDI0Ogo+PiArCQlpbnB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNf Rk1UX1lVVjhfMVgyNDsKPj4gKwkJaW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9VWVZZ OF8xWDE2Owo+PiArCQlpbnB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0 Owo+PiArCQlicmVhazsKPj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlWWThfMVgxNjoKPj4gKwkJ aW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9VWVZZOF8xWDE2Owo+PiArCQlpbnB1dF9m bXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1lVVjhfMVgyNDsKPj4gKwkJaW5wdXRfZm10c1tpKytd ID0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKPj4gKwkJYnJlYWs7Cj4+ICsKPj4gKwkvKiAx MGJpdCAqLwo+PiArCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBfMVgzMDoKPj4gKwkJaW5w dXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBfMVgzMDsKPj4gKwkJaW5wdXRf Zm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9ZVVYxMF8xWDMwOwo+PiArCQlpbnB1dF9mbXRzW2kr K10gPSBNRURJQV9CVVNfRk1UX1VZVlkxMF8xWDIwOwo+PiArCQlicmVhazsKPj4gKwljYXNlIE1F RElBX0JVU19GTVRfWVVWMTBfMVgzMDoKPj4gKwkJaW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVT X0ZNVF9ZVVYxMF8xWDMwOwo+PiArCQlpbnB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1VZ VlkxMF8xWDIwOwo+PiArCQlpbnB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1JHQjEwMTAx MF8xWDMwOwo+PiArCQlicmVhazsKPj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlWWTEwXzFYMjA6 Cj4+ICsJCWlucHV0X2ZtdHNbaSsrXSA9IE1FRElBX0JVU19GTVRfVVlWWTEwXzFYMjA7Cj4+ICsJ CWlucHV0X2ZtdHNbaSsrXSA9IE1FRElBX0JVU19GTVRfWVVWMTBfMVgzMDsKPj4gKwkJaW5wdXRf Zm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBfMVgzMDsKPj4gKwkJYnJlYWs7Cj4+ ICsKPj4gKwkvKiAxMmJpdCAqLwo+PiArCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0IxMjEyMTJfMVgz NjoKPj4gKwkJaW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9SR0IxMjEyMTJfMVgzNjsK Pj4gKwkJaW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9ZVVYxMl8xWDM2Owo+PiArCQlp bnB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1VZVlkxMl8xWDI0Owo+PiArCQlicmVhazsK Pj4gKwljYXNlIE1FRElBX0JVU19GTVRfWVVWMTJfMVgzNjoKPj4gKwkJaW5wdXRfZm10c1tpKytd ID0gTUVESUFfQlVTX0ZNVF9ZVVYxMl8xWDM2Owo+PiArCQlpbnB1dF9mbXRzW2krK10gPSBNRURJ QV9CVVNfRk1UX1VZVlkxMl8xWDI0Owo+PiArCQlpbnB1dF9mbXRzW2krK10gPSBNRURJQV9CVVNf Rk1UX1JHQjEyMTIxMl8xWDM2Owo+PiArCQlicmVhazsKPj4gKwljYXNlIE1FRElBX0JVU19GTVRf VVlWWTEyXzFYMjQ6Cj4+ICsJCWlucHV0X2ZtdHNbaSsrXSA9IE1FRElBX0JVU19GTVRfVVlWWTEy XzFYMjQ7Cj4+ICsJCWlucHV0X2ZtdHNbaSsrXSA9IE1FRElBX0JVU19GTVRfWVVWMTJfMVgzNjsK Pj4gKwkJaW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9SR0IxMjEyMTJfMVgzNjsKPj4g KwkJYnJlYWs7Cj4+ICsKPj4gKwkvKiAxNmJpdCAqLwo+PiArCWNhc2UgTUVESUFfQlVTX0ZNVF9S R0IxNjE2MTZfMVg0ODoKPj4gKwkJaW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9SR0Ix NjE2MTZfMVg0ODsKPj4gKwkJaW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9ZVVYxNl8x WDQ4Owo+PiArCQlicmVhazsKPj4gKwljYXNlIE1FRElBX0JVU19GTVRfWVVWMTZfMVg0ODoKPj4g KwkJaW5wdXRfZm10c1tpKytdID0gTUVESUFfQlVTX0ZNVF9ZVVYxNl8xWDQ4Owo+PiArCQlpbnB1 dF9mbXRzW2krK10gPSBNRURJQV9CVVNfRk1UX1JHQjE2MTYxNl8xWDQ4Owo+PiArCQlicmVhazsK Pj4gKwo+PiArCS8qIDQyMCAqLwo+PiArCWNhc2UgTUVESUFfQlVTX0ZNVF9VWVlWWVk4XzBfNVgy NDoKPj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlZVllZMTBfMF81WDMwOgo+PiArCWNhc2UgTUVE SUFfQlVTX0ZNVF9VWVlWWVkxMl8wXzVYMzY6Cj4+ICsJY2FzZSBNRURJQV9CVVNfRk1UX1VZWVZZ WTE2XzBfNVg0ODoKPj4gKwkJaW5wdXRfZm10c1tpKytdID0gb3V0cHV0X2ZtdDsKPj4gKwkJYnJl YWs7Cj4+ICsJfQo+PiArCj4+ICsJKm51bV9pbnB1dF9mbXRzID0gaTsKPj4gKwo+PiArCWlmICgq bnVtX2lucHV0X2ZtdHMgPT0gMCkgewo+PiArCQlrZnJlZShpbnB1dF9mbXRzKTsKPj4gKwkJaW5w dXRfZm10cyA9IE5VTEw7Cj4+ICsJfQo+PiArCj4+ICsJcmV0dXJuIGlucHV0X2ZtdHM7Cj4+ICt9 Cj4+ICsKPj4gK3N0YXRpYyBpbnQgZHdfaGRtaV9icmlkZ2VfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UsCj4+ICsJCQkJICAgICAgIHN0cnVjdCBkcm1fYnJpZGdlX3N0YXRl IAo+ICpicmlkZ2Vfc3RhdGUsCj4+ICsJCQkJICAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAK PiAqY3J0Y19zdGF0ZSwKPj4gKwkJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg Cj4gKmNvbm5fc3RhdGUpCj4+ICt7Cj4+ICsJc3RydWN0IGR3X2hkbWkgKmhkbWkgPSBicmlkZ2Ut PmRyaXZlcl9wcml2YXRlOwo+PiArCj4+ICsJZGV2X2RiZyhoZG1pLT5kZXYsICJzZWxlY3RlZCBv dXRwdXQgZm9ybWF0ICV4XG4iLAo+PiArCQkJYnJpZGdlX3N0YXRlLT5vdXRwdXRfYnVzX2NmZy5m b3JtYXQpOwo+PiArCj4+ICsJaGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfYnVzX2Zvcm1hdCA9Cj4+ ICsJCQlicmlkZ2Vfc3RhdGUtPm91dHB1dF9idXNfY2ZnLmZvcm1hdDsKPj4gKwo+PiArCWRldl9k YmcoaGRtaS0+ZGV2LCAic2VsZWN0ZWQgaW5wdXQgZm9ybWF0ICV4XG4iLAo+PiArCQkJYnJpZGdl X3N0YXRlLT5pbnB1dF9idXNfY2ZnLmZvcm1hdCk7Cj4+ICsKPj4gKwloZG1pLT5oZG1pX2RhdGEu ZW5jX2luX2J1c19mb3JtYXQgPQo+PiArCQkJYnJpZGdlX3N0YXRlLT5pbnB1dF9idXNfY2ZnLmZv cm1hdDsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICBzdGF0aWMgaW50IGR3X2hk bWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+PiAgewo+PiAgCXN0 cnVjdCBkd19oZG1pICpoZG1pID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKPj4gQEAgLTI0OTks NiArMjc1OSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcwo+PiBkd19o ZG1pX2JyaWRnZV9mdW5jcyA9IHsgLmF0b21pY19yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Jy aWRnZV9yZXNldCwKPj4gIAkuYXR0YWNoID0gZHdfaGRtaV9icmlkZ2VfYXR0YWNoLAo+PiAgCS5k ZXRhY2ggPSBkd19oZG1pX2JyaWRnZV9kZXRhY2gsCj4+ICsJLmF0b21pY19jaGVjayA9IGR3X2hk bWlfYnJpZGdlX2F0b21pY19jaGVjaywKPj4gKwkuYXRvbWljX2dldF9vdXRwdXRfYnVzX2ZtdHMg PSAKPiBkd19oZG1pX2JyaWRnZV9hdG9taWNfZ2V0X291dHB1dF9idXNfZm10cywKPj4gKwkuYXRv bWljX2dldF9pbnB1dF9idXNfZm10cyA9IAo+IGR3X2hkbWlfYnJpZGdlX2F0b21pY19nZXRfaW5w dXRfYnVzX2ZtdHMsCj4+ICAJLmVuYWJsZSA9IGR3X2hkbWlfYnJpZGdlX2VuYWJsZSwKPj4gIAku ZGlzYWJsZSA9IGR3X2hkbWlfYnJpZGdlX2Rpc2FibGUsCj4+ICAJLm1vZGVfc2V0ID0gZHdfaGRt aV9icmlkZ2VfbW9kZV9zZXQsCj4+IEBAIC0yOTYzLDYgKzMyMjYsNyBAQCBfX2R3X2hkbWlfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPj4KPj4gIAloZG1pLT5icmlkZ2UuZHJp dmVyX3ByaXZhdGUgPSBoZG1pOwo+PiAgCWhkbWktPmJyaWRnZS5mdW5jcyA9ICZkd19oZG1pX2Jy aWRnZV9mdW5jczsKPj4gKwo+PiAgI2lmZGVmIENPTkZJR19PRgo+PiAgCWhkbWktPmJyaWRnZS5v Zl9ub2RlID0gcGRldi0+ZGV2Lm9mX25vZGU7Cj4+ICAjZW5kaWYKPiAKPiAKPiAKPiAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFtbG9naWMg bWFpbGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9naWMK