From mboxrd@z Thu Jan 1 00:00:00 1970
From: Philipp Zabel
Subject: Re: [PATCH v2 17/21] drm/imx: pd: Use bus format/flags provided by
the bridge when available
Date: Tue, 27 Aug 2019 10:15:19 +0200
Message-ID: <1566893719.4102.1.camel@pengutronix.de>
References: <20190826152649.13820-1-boris.brezillon@collabora.com>
<20190826152649.13820-18-boris.brezillon@collabora.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path:
Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de
[IPv6:2001:67c:670:201:290:27ff:fe1d:cc33])
by gabe.freedesktop.org (Postfix) with ESMTPS id BDC2D8999A
for ; Tue, 27 Aug 2019 08:15:24 +0000 (UTC)
In-Reply-To: <20190826152649.13820-18-boris.brezillon@collabora.com>
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel"
To: Boris Brezillon , dri-devel@lists.freedesktop.org
Cc: Nikita Yushchenko , Jernej Skrabec , Laurent Pinchart , Neil Armstrong , Andrey Smirnov , Jonas Karlman , Seung-Woo Kim , Kyungmin Park , Thierry Reding , Chris Healy , kernel@collabora.com, Sam Ravnborg
List-Id: dri-devel@lists.freedesktop.org
SGkgQm9yaXMsCgpPbiBNb24sIDIwMTktMDgtMjYgYXQgMTc6MjYgKzAyMDAsIEJvcmlzIEJyZXpp
bGxvbiB3cm90ZToKPiBOb3cgdGhhdCBicmlkZ2VzIGNhbiBleHBvc2UgdGhlIGJ1cyBmb3JtYXQv
ZmxhZ3MgdGhleSBleHBlY3QsIHdlIGNhbgo+IHVzZSB0aG9zZSBpbnN0ZWFkIG9mIHRoZSByZWx5
aW5nIG9uIHRoZSBkaXNwbGF5X2luZm8gcHJvdmlkZWQgYnkgdGhlCj4gY29ubmVjdG9yICh3aGlj
aCBpcyBvbmx5IHZhbGlkIGlmIHRoZSBlbmNvZGVyIGlzIGRpcmVjdGx5IGNvbm5lY3RlZAo+IHRv
IGJyaWRnZSBlbGVtZW50IGRyaXZpbmcgdGhlIHBhbmVsL2Rpc3BsYXkpLgo+IAo+IFdlIGFsc28g
ZXhwbGljaXRseSBleHBvc2UgdGhlIGJ1cyBmb3JtYXRzIHN1cHBvcnRlZCBieSBvdXIgZW5jb2Rl
ciBieQo+IGZpbGxpbmcgZW5jb2Rlci0+b3V0cHV0X2J1c19jYXBzIHdpdGggcHJvcGVyIGluZm8u
Cj4gCj4gU2lnbmVkLW9mZi1ieTogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AY29s
bGFib3JhLmNvbT4KPiAtLS0KPiBDaGFuZ2VzIGluIHYyOgo+ICogQWRqdXN0IHRoaW5ncyB0byBt
YXRjaCB0aGUgbmV3IGJ1cy1mb3JtYXQgbmVnb3RpYXRpb24gaW5mcmEKPiAtLS0KPiAgZHJpdmVy
cy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMgfCAxMzYgKysrKysrKysrKysrKysrKysr
KysrKy0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9u
cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3Bs
YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gaW5kZXggMzU1
MThlNWRlMzU2Li5kZjQ3Y2I3NDc1OWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lt
eC9wYXJhbGxlbC1kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVs
LWRpc3BsYXkuYwo+IEBAIC04OSwzNyArODksMTM5IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29k
ZXIgKmlteF9wZF9jb25uZWN0b3JfYmVzdF9lbmNvZGVyKAo+ICAJcmV0dXJuICZpbXhwZC0+ZW5j
b2RlcjsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW14X3BkX2VuY29kZXJfZW5hYmxlKHN0cnVj
dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgaW14X3BkX2JyaWRnZV9lbmFi
bGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgewo+ICsJc3RydWN0IGRybV9lbmNvZGVy
ICplbmNvZGVyID0gYnJpZGdlX3RvX2VuY29kZXIoYnJpZGdlKTsKPiAgCXN0cnVjdCBpbXhfcGFy
YWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNfdG9faW14cGQoZW5jb2Rlcik7Cj4gIAo+ICAJZHJt
X3BhbmVsX3ByZXBhcmUoaW14cGQtPnBhbmVsKTsKPiAgCWRybV9wYW5lbF9lbmFibGUoaW14cGQt
PnBhbmVsKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW14X3BkX2VuY29kZXJfZGlzYWJsZShz
dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyB2b2lkIGlteF9wZF9icmlkZ2Vf
ZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2Vu
Y29kZXIgKmVuY29kZXIgPSBicmlkZ2VfdG9fZW5jb2RlcihicmlkZ2UpOwo+ICAJc3RydWN0IGlt
eF9wYXJhbGxlbF9kaXNwbGF5ICppbXhwZCA9IGVuY190b19pbXhwZChlbmNvZGVyKTsKPiAgCj4g
IAlkcm1fcGFuZWxfZGlzYWJsZShpbXhwZC0+cGFuZWwpOwo+ICAJZHJtX3BhbmVsX3VucHJlcGFy
ZShpbXhwZC0+cGFuZWwpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGlteF9wZF9lbmNvZGVyX2F0
b21pY19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCQkgICAgICAgc3Ry
dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IC0JCQkJICAgICAgIHN0cnVjdCBkcm1f
Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICtzdGF0aWMgY29uc3QgdTMyIGlteF9wZF9i
dXNfZm10c1tdID0gewo+ICsJTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNCwKPiArCU1FRElBX0JV
U19GTVRfUkdCNTY1XzFYMTYsCj4gKwlNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4LAo+ICsJTUVE
SUFfQlVTX0ZNVF9SR0I2NjZfMVgyNF9DUEFESEksCgppcHUtZGMuYyBhbHNvIHN1cHBvcnRzIE1F
RElBX0JVU19GTVRfQkdSODg4XzFYMjQuCgo+ICt9Owo+ICsKPiArc3RhdGljIHZvaWQKPiAraW14
X3BkX2JyaWRnZV9hdG9taWNfZ2V0X291dHB1dF9idXNfZm10cyhzdHJ1Y3QgZHJtX2JyaWRnZSAq
YnJpZGdlLAo+ICsJCQkJCSBzdHJ1Y3QgZHJtX2JyaWRnZV9zdGF0ZSAqYnJpZGdlX3N0YXRlLAo+
ICsJCQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCQkJIHN0cnVj
dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAo+ICsJCQkJCSB1bnNpZ25lZCBpbnQg
Km51bV9vdXRwdXRfZm10cywKPiArCQkJCQkgdTMyICpvdXRwdXRfZm10cykKPiAgewo+ICsJc3Ry
dWN0IGRybV9kaXNwbGF5X2luZm8gKmRpID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxh
eV9pbmZvOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gYnJpZGdlX3RvX2VuY29k
ZXIoYnJpZGdlKTsKPiArCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBlbmNf
dG9faW14cGQoZW5jb2Rlcik7Cj4gKwo+ICsJKm51bV9vdXRwdXRfZm10cyA9IDE7Cj4gKwlpZiAo
aW14cGQtPmJ1c19mb3JtYXQpIHsKPiArCQlpZiAob3V0cHV0X2ZtdHMpCj4gKwkJCW91dHB1dF9m
bXRzWzBdID0gaW14cGQtPmJ1c19mb3JtYXQ7CgpUaGlzIGlzIHRoZSBsZWdhY3kgRFQgY29uZmln
dXJlZCBpbnRlcmZhY2UtcGl4LWZtdC4gTWF5YmUgdGhpcyBzaG91bGQgYmUKbW92ZWQgdG8gdGhl
IGxhc3QgcGxhY2UuCgo+ICsJfSBlbHNlIGlmIChkaS0+bnVtX2J1c19mb3JtYXRzKSB7Cj4gKwkJ
Km51bV9vdXRwdXRfZm10cyA9IDE7CgpudW1fb3V0cHV0X2ZtdHMgaXMgYWxyZWFkeSBzZXQgdG8g
b25lIGFib3ZlLgoKPiArCQlpZiAob3V0cHV0X2ZtdHMpCj4gKwkJCW91dHB1dF9mbXRzWzBdID0g
ZGktPmJ1c19mb3JtYXRzWzBdOwo+ICsJfSBlbHNlIHsKPiArCQkqbnVtX291dHB1dF9mbXRzID0g
QVJSQVlfU0laRShpbXhfcGRfYnVzX2ZtdHMpOwo+ICsJCWlmIChvdXRwdXRfZm10cykKPiArCQkJ
bWVtY3B5KG91dHB1dF9mbXRzLCBpbXhfcGRfYnVzX2ZtdHMsCj4gKwkJCSAgICAgICBBUlJBWV9T
SVpFKGlteF9wZF9idXNfZm10cykpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtp
bXhfcGRfYnJpZGdlX2F0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2Ug
KmJyaWRnZSwKPiArCQkJCQlzdHJ1Y3QgZHJtX2JyaWRnZV9zdGF0ZSAqYnJpZGdlX3N0YXRlLAo+
ICsJCQkJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJCQlzdHJ1Y3Qg
ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArCQkJCQl1MzIgb3V0cHV0X2ZtdCwK
PiArCQkJCQl1bnNpZ25lZCBpbnQgKm51bV9pbnB1dF9mbXRzLAo+ICsJCQkJCXUzMiAqaW5wdXRf
Zm10cykKPiArewo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gYnJpZGdlX3RvX2Vu
Y29kZXIoYnJpZGdlKTsKPiArCXN0cnVjdCBpbXhfcGFyYWxsZWxfZGlzcGxheSAqaW14cGQgPSBl
bmNfdG9faW14cGQoZW5jb2Rlcik7Cj4gKwo+ICsJKm51bV9pbnB1dF9mbXRzID0gMDsKPiArCWlm
IChvdXRwdXRfZm10ID09IE1FRElBX0JVU19GTVRfRklYRUQpIHsKPiArCQkqbnVtX2lucHV0X2Zt
dHMgPSAxOwoKSSBkb24ndCB1bmRlcnN0YW5kIHRoaXMuIFRoZSBidXMgZm9ybWF0IHN0b3JlZCBp
biBpbXhfY3J0Y19zdGF0ZSBieQphdG9taWNfY2hlY2sgaXMgdXNlZCB0byBjb25maWd1cmUgdGhl
IERDIGxhdGVyLiBUaGlzIHNob3VsZCBuZXZlciBiZQpNRURJQV9CVVNfRk1UX0ZJWEVELCB0aGF0
IHdvdWxkIHRyaWdnZXIgYSBXQVJOX09OIGluCmlwdV9idXNfZm9ybWF0X3RvX21hcCgpLgoKPiAr
CX0gZWxzZSBpZiAoIWlteHBkLT5idXNfZm9ybWF0KSB7Cj4gKwkJdW5zaWduZWQgaW50IGk7Cj4g
Kwo+ICsJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGlteF9wZF9idXNfZm10cyk7IGkrKykg
ewo+ICsJCQlpZiAoaW14X3BkX2J1c19mbXRzW2ldID09IG91dHB1dF9mbXQpIHsKPiArCQkJCSpu
dW1faW5wdXRfZm10cyA9IDE7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICsJCX0KPiArCX0gZWxz
ZSBpZiAoaW14cGQtPmJ1c19mb3JtYXQgPT0gb3V0cHV0X2ZtdCkgewo+ICsJCSpudW1faW5wdXRf
Zm10cyA9IDE7Cj4gKwl9Cj4gKwo+ICsJaWYgKCpudW1faW5wdXRfZm10cyAmJiBpbnB1dF9mbXRz
KQo+ICsJCWlucHV0X2ZtdHNbMF0gPSBNRURJQV9CVVNfRk1UX0ZJWEVEOwoKVGhlIHBhcmFsbGVs
LWRpc3BsYXkgZHJpdmVyIGJhc2ljYWxseSByZXByZXNlbnRzIHRoZSB3aXJpbmcsIHBpbm11eCwg
YW5kCmRyaXZlcnMgYmV0d2VlbiB0aGUgSVBVIERJIGFuZCB0aGUgRElTUCBwYWRzLiBUaGUgaW5w
dXQgZm9ybWF0IHNob3VsZAphbHdheXMgYmUgaWRlbnRpY2FsIHRvIHRoZSBvdXRwdXQgZm9ybWF0
LgoKPiArfQo+ICsKPiArc3RhdGljIGludCBpbXhfcGRfYnJpZGdlX2F0b21pY19jaGVjayhzdHJ1
Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3Rh
dGUgKmJyaWRnZV9zdGF0ZSwKPiArCQkJCSAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0
Y19zdGF0ZSwKPiArCQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0
YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBicmlkZ2VfdG9fZW5j
b2RlcihicmlkZ2UpOwo+ICAJc3RydWN0IGlteF9jcnRjX3N0YXRlICppbXhfY3J0Y19zdGF0ZSA9
IHRvX2lteF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwo+ICAJc3RydWN0IGRybV9kaXNwbGF5X2lu
Zm8gKmRpID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICAJc3RydWN0
IGlteF9wYXJhbGxlbF9kaXNwbGF5ICppbXhwZCA9IGVuY190b19pbXhwZChlbmNvZGVyKTsKPiAr
CXN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpuZXh0X2JyaWRnZV9zdGF0ZSA9IE5VTEw7Cj4gKwlz
dHJ1Y3QgZHJtX2JyaWRnZSAqbmV4dF9icmlkZ2U7Cj4gKwl1MzIgYnVzX2ZsYWdzLCBidXNfZm10
Owo+ICsJdW5zaWduZWQgaW50IGk7Cj4gIAo+IC0JaWYgKCFpbXhwZC0+YnVzX2Zvcm1hdCAmJiBk
aS0+bnVtX2J1c19mb3JtYXRzKSB7Cj4gLQkJaW14X2NydGNfc3RhdGUtPmJ1c19mbGFncyA9IGRp
LT5idXNfZmxhZ3M7Cj4gLQkJaW14X2NydGNfc3RhdGUtPmJ1c19mb3JtYXQgPSBkaS0+YnVzX2Zv
cm1hdHNbMF07Cj4gLQl9IGVsc2Ugewo+IC0JCWlteF9jcnRjX3N0YXRlLT5idXNfZmxhZ3MgPSBp
bXhwZC0+YnVzX2ZsYWdzOwo+IC0JCWlteF9jcnRjX3N0YXRlLT5idXNfZm9ybWF0ID0gaW14cGQt
PmJ1c19mb3JtYXQ7Cj4gKwluZXh0X2JyaWRnZSA9IGRybV9icmlkZ2VfY2hhaW5fZ2V0X25leHRf
YnJpZGdlKGJyaWRnZSk7Cj4gKwlpZiAobmV4dF9icmlkZ2UpCj4gKwkJbmV4dF9icmlkZ2Vfc3Rh
dGUgPSBkcm1fYXRvbWljX2dldF9uZXdfYnJpZGdlX3N0YXRlKGNydGNfc3RhdGUtPnN0YXRlLAo+
ICsJCQkJCQkJCSAgICBuZXh0X2JyaWRnZSk7Cj4gKwo+ICsJYnVzX2ZtdCA9IGJyaWRnZV9zdGF0
ZS0+b3V0cHV0X2J1c19jZmcuZm10Owo+ICsJaWYgKGJ1c19mbXQgPT0gTUVESUFfQlVTX0ZNVF9G
SVhFRCkKPiArCQlidXNfZm10ID0gMDsKCkkgd291bGQgZXhwZWN0IHRoaXMgdG8gcmV0dXJuIHdp
dGggLUVJTlZBTCBpZiBicmlkZ2Vfc3RhdGUtCj5vdXRwdXRfYnVzX2NmZy5mbXQgaXMgbm90IGlu
IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBmb3JtYXRzLgoKPiArCj4gKwlpZiAobmV4dF9icmlkZ2Vf
c3RhdGUpCj4gKwkJYnVzX2ZsYWdzID0gbmV4dF9icmlkZ2Vfc3RhdGUtPmlucHV0X2J1c19jZmcu
ZmxhZ3M7Cj4gKwllbHNlIGlmICghaW14cGQtPmJ1c19mb3JtYXQgJiYgZGktPm51bV9idXNfZm9y
bWF0cykKPiArCQlidXNfZmxhZ3MgPSBkaS0+YnVzX2ZsYWdzOwo+ICsJZWxzZQo+ICsJCWJ1c19m
bGFncyA9IGlteHBkLT5idXNfZmxhZ3M7Cj4gKwo+ICsJZm9yIChpID0gMDsgYnVzX2ZtdCAmJiBp
IDwgQVJSQVlfU0laRShpbXhfcGRfYnVzX2ZtdHMpOyBpKyspIHsKPiArCQlpZiAoaW14X3BkX2J1
c19mbXRzW2ldID09IGJyaWRnZV9zdGF0ZS0+b3V0cHV0X2J1c19jZmcuZm10KQo+ICsJCQlicmVh
azsKPiAgCX0KPiArCj4gKwlpZiAoaSA9PSBBUlJBWV9TSVpFKGlteF9wZF9idXNfZm10cykpCj4g
KwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJaWYgKGJ1c19mbGFncyAmCj4gKwkgICAgfihEUk1f
QlVTX0ZMQUdfREVfTE9XIHwgRFJNX0JVU19GTEFHX0RFX0hJR0ggfAo+ICsJICAgICAgRFJNX0JV
U19GTEFHX1BJWERBVEFfRFJJVkVfUE9TRURHRSB8Cj4gKwkgICAgICBEUk1fQlVTX0ZMQUdfUElY
REFUQV9EUklWRV9ORUdFREdFKSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKClRoaXMgY291bGQgYWxs
b3cgRFJNX0JVU19GTEFHX1NZTkNfRFJJVkVfUE9TRURHRS9ORUdFREdFIGFzIHdlbGwsIGlmCnRo
ZXkgYXJlIG5vdCBvcHBvc2l0ZSB0byBQSVhEQVRBX0RSSVZFLgoKPiArCWJyaWRnZV9zdGF0ZS0+
b3V0cHV0X2J1c19jZmcuZmxhZ3MgPSBidXNfZmxhZ3M7Cj4gKwlicmlkZ2Vfc3RhdGUtPmlucHV0
X2J1c19jZmcuZmxhZ3MgPSBidXNfZmxhZ3M7Cj4gKwlpbXhfY3J0Y19zdGF0ZS0+YnVzX2ZsYWdz
ID0gYnVzX2ZsYWdzOwo+ICsJaW14X2NydGNfc3RhdGUtPmJ1c19mb3JtYXQgPSBicmlkZ2Vfc3Rh
dGUtPm91dHB1dF9idXNfY2ZnLmZtdDsKClRoaXMgc2hvdWxkIGJlIHRoZSBpbnB1dCBidXMgZm9y
bWF0LgoKPiAgCWlteF9jcnRjX3N0YXRlLT5kaV9oc3luY19waW4gPSAyOwo+ICAJaW14X2NydGNf
c3RhdGUtPmRpX3ZzeW5jX3BpbiA9IDM7Cj4gIAo+IEBAIC0xNDMsMTAgKzI0NSwxMiBAQCBzdGF0
aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGlteF9wZF9lbmNvZGVyX2Z1bmNzID0g
ewo+ICAJLmRlc3Ryb3kgPSBpbXhfZHJtX2VuY29kZXJfZGVzdHJveSwKPiAgfTsKPiAgCj4gLXN0
YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIGlteF9wZF9lbmNvZGVy
X2hlbHBlcl9mdW5jcyA9IHsKPiAtCS5lbmFibGUgPSBpbXhfcGRfZW5jb2Rlcl9lbmFibGUsCj4g
LQkuZGlzYWJsZSA9IGlteF9wZF9lbmNvZGVyX2Rpc2FibGUsCj4gLQkuYXRvbWljX2NoZWNrID0g
aW14X3BkX2VuY29kZXJfYXRvbWljX2NoZWNrLAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9i
cmlkZ2VfZnVuY3MgaW14X3BkX2JyaWRnZV9mdW5jcyA9IHsKPiArCS5lbmFibGUgPSBpbXhfcGRf
YnJpZGdlX2VuYWJsZSwKPiArCS5kaXNhYmxlID0gaW14X3BkX2JyaWRnZV9kaXNhYmxlLAo+ICsJ
LmF0b21pY19jaGVjayA9IGlteF9wZF9icmlkZ2VfYXRvbWljX2NoZWNrLAo+ICsJLmF0b21pY19n
ZXRfaW5wdXRfYnVzX2ZtdHMgPSBpbXhfcGRfYnJpZGdlX2F0b21pY19nZXRfaW5wdXRfYnVzX2Zt
dHMsCj4gKwkuYXRvbWljX2dldF9vdXRwdXRfYnVzX2ZtdHMgPSBpbXhfcGRfYnJpZGdlX2F0b21p
Y19nZXRfb3V0cHV0X2J1c19mbXRzLAo+ICB9Owo+ICAKPiAgc3RhdGljIGludCBpbXhfcGRfcmVn
aXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiBAQCAtMTY2LDcgKzI3MCw3IEBAIHN0YXRp
YyBpbnQgaW14X3BkX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gIAkgKi8KPiAg
CWlteHBkLT5jb25uZWN0b3IuZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwo+ICAKPiAtCWRybV9l
bmNvZGVyX2hlbHBlcl9hZGQoZW5jb2RlciwgJmlteF9wZF9lbmNvZGVyX2hlbHBlcl9mdW5jcyk7
Cj4gKwllbmNvZGVyLT5icmlkZ2UuZnVuY3MgPSAmaW14X3BkX2JyaWRnZV9mdW5jczsKPiAgCWRy
bV9lbmNvZGVyX2luaXQoZHJtLCBlbmNvZGVyLCAmaW14X3BkX2VuY29kZXJfZnVuY3MsCj4gIAkJ
CSBEUk1fTU9ERV9FTkNPREVSX05PTkUsIE5VTEwpOwoKcmVnYXJkcwpQaGlsaXBwCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n
IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk
ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==