From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rongrong Zou Subject: Re: [PATCH v6 1/9] drm/hisilicon/hibmc: Add hisilicon hibmc drm master driver Date: Fri, 11 Nov 2016 11:10:47 +0800 Message-ID: <582536B7.4060209@huawei.com> References: <1477639682-22520-1-git-send-email-zourongrong@gmail.com> <1477639682-22520-2-git-send-email-zourongrong@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Sean Paul , Rongrong Zou Cc: Mark Rutland , Archit , shenhui@huawei.com, Tomeu Vizoso , Jonathan Corbet , Dave Airlie , catalin.marinas@arm.com, Emil Velikov , linuxarm@huawei.com, dri-devel , xinliang.liu@linaro.org, james.xiong@huawei.com, daniel@fooishbar.org, Daniel Vetter , Will Deacon , lijianhua@huawei.com, Linux ARM Kernel , Benjamin Gaignard List-Id: dri-devel@lists.freedesktop.org SGkgU2VhbiwKClRoYW5rcyBmb3IgcmV2aWV3aW5nISBBbGwgY29tbWVudHMgaXMgaGVscGZ1bC4K CuWcqCAyMDE2LzExLzExIDE6MzUsIFNlYW4gUGF1bCDlhpnpgZM6Cj4gT24gRnJpLCBPY3QgMjgs IDIwMTYgYXQgMzoyNyBBTSwgUm9uZ3JvbmcgWm91IDx6b3Vyb25ncm9uZ0BnbWFpbC5jb20+IHdy b3RlOgo+PiBBZGQgRFJNIG1hc3RlciBkcml2ZXIgZm9yIEhpc2lsaWNvbiBIaWJtYyBTb0Mgd2hp Y2ggdXNlZCBmb3IKPj4gT3V0LW9mLWJhbmQgbWFuYWdlbWVudC4gQmxvdyBpcyB0aGUgZ2VuZXJh bCBoYXJkd2FyZSBjb25uZWN0aW9uLAo+PiBib3RoIHRoZSBIaWJtYyBhbmQgdGhlIGhvc3QgQ1BV IGFyZSBvbiB0aGUgc2FtZSBtb3RoZXIgYm9hcmQuCj4+Cj4+ICstLS0tLS0tLS0tKyAgICAgICAr LS0tLS0tLS0tLSsKPj4gfCAgICAgICAgICB8IFBDSWUgIHwgIEhpYm1jICAgfAo+PiB8aG9zdCBD UFUoIHw8LS0tLS0+fCBkaXNwbGF5ICB8Cj4+IHxhcm02NCx4ODYpfCAgICAgICB8c3Vic3lzdGVt IHwKPj4gKy0tLS0tLS0tLS0rICAgICAgICstLS0tLS0tLS0tKwo+Pgo+PiBTaWduZWQtb2ZmLWJ5 OiBSb25ncm9uZyBab3UgPHpvdXJvbmdyb25nQGdtYWlsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVy cy9ncHUvZHJtL2hpc2lsaWNvbi9LY29uZmlnICAgICAgICAgICAgICAgICB8ICAgMSArCj4+ICAg ZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICAgMSAr Cj4+ICAgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnICAgICAgICAgICB8 ICAgNyArCj4+ICAgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9NYWtlZmlsZSAgICAg ICAgICB8ICAgNSArCj4+ICAgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19k cm1fZHJ2LmMgICB8IDI2OSArKysrKysrKysrKysrKysrKysrKysrCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmggICB8ICAzNSArKysKPj4gICBkcml2 ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9wb3dlci5jIHwgIDg1ICsrKysr KysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9wb3dlci5o IHwgIDI4ICsrKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJt X3JlZ3MuaCAgfCAyMTIgKysrKysrKysrKysrKysrKysKPj4gICA5IGZpbGVzIGNoYW5nZWQsIDY0 MyBpbnNlcnRpb25zKCspCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9o aXNpbGljb24vaGlibWMvS2NvbmZpZwo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vaGlzaWxpY29uL2hpYm1jL01ha2VmaWxlCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5jCj4+ICAgY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Ry di5oCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGli bWMvaGlibWNfZHJtX3Bvd2VyLmMKPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fcG93ZXIuaAo+PiAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9yZWdzLmgKPj4K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vS2NvbmZpZyBiL2RyaXZl cnMvZ3B1L2RybS9oaXNpbGljb24vS2NvbmZpZwo+PiBpbmRleCA1NThjNjFiLi4yZmQyNzI0IDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL0tjb25maWcKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9LY29uZmlnCj4+IEBAIC0yLDQgKzIsNSBAQAo+PiAg ICMgaGlzaWxpY29uIGRybSBkZXZpY2UgY29uZmlndXJhdGlvbi4KPj4gICAjIFBsZWFzZSBrZWVw IHRoaXMgbGlzdCBzb3J0ZWQgYWxwaGFiZXRpY2FsbHkKPj4KPj4gK3NvdXJjZSAiZHJpdmVycy9n cHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnIgo+PiAgIHNvdXJjZSAiZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnIgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vTWFrZWZp bGUKPj4gaW5kZXggZTNmNmQ0OS4uYzgxNTViZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9NYWtlZmlsZQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L01ha2VmaWxlCj4+IEBAIC0yLDQgKzIsNSBAQAo+PiAgICMgTWFrZWZpbGUgZm9yIGhpc2lsaWNv biBkcm0gZHJpdmVycy4KPj4gICAjIFBsZWFzZSBrZWVwIHRoaXMgbGlzdCBzb3J0ZWQgYWxwaGFi ZXRpY2FsbHkKPj4KPj4gK29iai0kKENPTkZJR19EUk1fSElTSV9ISUJNQykgKz0gaGlibWMvCj4+ ICAgb2JqLSQoQ09ORklHX0RSTV9ISVNJX0tJUklOKSArPSBraXJpbi8KPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvS2NvbmZpZwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRl eCAwMDAwMDAwLi5hOWFmOTBkCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnCj4+IEBAIC0wLDAgKzEsNyBAQAo+PiArY29uZmln IERSTV9ISVNJX0hJQk1DCj4+ICsgICAgICAgdHJpc3RhdGUgIkRSTSBTdXBwb3J0IGZvciBIaXNp bGljb24gSGlibWMiCj4+ICsgICAgICAgZGVwZW5kcyBvbiBEUk0gJiYgUENJCj4+ICsKPj4gKyAg ICAgICBoZWxwCj4+ICsgICAgICAgICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBI aXNpbGljb24gSGlibWMgc29jIGNoaXBzZXQuCj4+ICsgICAgICAgICBJZiBNIGlzIHNlbGVjdGVk IHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaGlibWMtZHJtLgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9o aXNpbGljb24vaGlibWMvTWFrZWZpbGUKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXgg MDAwMDAwMC4uOTdjZjRhMAo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvTWFrZWZpbGUKPj4gQEAgLTAsMCArMSw1IEBACj4+ICtjY2ZsYWdz LXkgOj0gLUlpbmNsdWRlL2RybQo+PiAraGlibWMtZHJtLXkgOj0gaGlibWNfZHJtX2Rydi5vIGhp Ym1jX2RybV9wb3dlci5vCj4+ICsKPj4gK29iai0kKENPTkZJR19EUk1fSElTSV9ISUJNQykgICAr PWhpYm1jLWRybS5vCj4KPiBuaXQ6IEltcHJvcGVyIHNwYWNpbmcgaGVyZQoKc2VlbXMgYSBzcGFj ZSB3YXMgbWlzc2VkLCB0aGFua3MuCgo+Cj4+ICsjb2JqLXkgKz0gaGlibWMtZHJtLm8KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5j IGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMKPj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4uNDY2OWQ0Mgo+PiAtLS0gL2Rldi9u dWxsCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Ry di5jCj4+IEBAIC0wLDAgKzEsMjY5IEBACj4+ICsvKiBIaXNpbGljb24gSGlibWMgU29DIGRybSBk cml2ZXIKPj4gKyAqCj4+ICsgKiBCYXNlZCBvbiB0aGUgYm9jaHMgZHJtIGRyaXZlci4KPj4gKyAq Cj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVhd2VpIExpbWl0ZWQuCj4+ICsgKgo+PiArICog QXV0aG9yOgo+PiArICogICAgIFJvbmdyb25nIFpvdSA8em91cm9uZ3JvbmdAaHVhd2VpLmNvbT4K Pj4gKyAqICAgICBSb25ncm9uZyBab3UgPHpvdXJvbmdyb25nQGdtYWlsLmNvbT4KPj4gKyAqICAg ICBKaWFuaHVhIExpIDxsaWppYW5odWFAaHVhd2VpLmNvbT4KPj4gKyAqCj4+ICsgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQo+PiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4+ICsgKiAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+PiArICoKPj4gKyAqLwo+PiArCj4+ICsjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgo+PiArCj4+ ICsjaW5jbHVkZSAiaGlibWNfZHJtX2Rydi5oIgo+PiArI2luY2x1ZGUgImhpYm1jX2RybV9yZWdz LmgiCj4+ICsjaW5jbHVkZSAiaGlibWNfZHJtX3Bvd2VyLmgiCj4KPiBuaXQ6IEFscGhhYmV0aXpl IGhlYWRlcnMKCmFncmVlZCwgdGhhbmtzLgoKPgo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IGZpbGVfb3BlcmF0aW9ucyBoaWJtY19mb3BzID0gewo+PiArICAgICAgIC5vd25lciAgICAgICAg ICA9IFRISVNfTU9EVUxFLAo+PiArICAgICAgIC5vcGVuICAgICAgICAgICA9IGRybV9vcGVuLAo+ PiArICAgICAgIC5yZWxlYXNlICAgICAgICA9IGRybV9yZWxlYXNlLAo+PiArICAgICAgIC51bmxv Y2tlZF9pb2N0bCA9IGRybV9pb2N0bCwKPj4gKyNpZmRlZiBDT05GSUdfQ09NUEFUCj4KPiBkcm1f Y29tcGF0X2lvY3RsIGlzIG5vdyBpbml0aWFsaXplZCB0byBOVUxMLCBzbyB5b3UgY2FuIHJlbW92 ZSB0aGUgI2lmZGVmCj4KdW5kZXJzdG9vZCwgd2lsbCByZW1vdmUgaXQgbmV4dCB2ZXJzaW9uLgoK Pj4gKyAgICAgICAuY29tcGF0X2lvY3RsICAgPSBkcm1fY29tcGF0X2lvY3RsLAo+PiArI2VuZGlm Cj4+ICsgICAgICAgLnBvbGwgICAgICAgICAgID0gZHJtX3BvbGwsCj4+ICsgICAgICAgLnJlYWQg ICAgICAgICAgID0gZHJtX3JlYWQsCj4+ICsgICAgICAgLmxsc2VlayAgICAgICAgID0gbm9fbGxz ZWVrLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGludCBoaWJtY19lbmFibGVfdmJsYW5rKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+PiArewo+PiArICAgICAgIHJl dHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBoaWJtY19kaXNhYmxlX3ZibGFuayhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPj4gK3sKPj4gK30KPj4g Kwo+PiArc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGhpYm1jX2RyaXZlciA9IHsKPj4gKyAgICAg ICAuZm9wcyAgICAgICAgICAgICAgICAgICA9ICZoaWJtY19mb3BzLAo+PiArICAgICAgIC5uYW1l ICAgICAgICAgICAgICAgICAgID0gImhpYm1jIiwKPj4gKyAgICAgICAuZGF0ZSAgICAgICAgICAg ICAgICAgICA9ICIyMDE2MDgyOCIsCj4+ICsgICAgICAgLmRlc2MgICAgICAgICAgICAgICAgICAg PSAiaGlibWMgZHJtIGRyaXZlciIsCj4+ICsgICAgICAgLm1ham9yICAgICAgICAgICAgICAgICAg PSAxLAo+PiArICAgICAgIC5taW5vciAgICAgICAgICAgICAgICAgID0gMCwKPj4gKyAgICAgICAu Z2V0X3ZibGFua19jb3VudGVyICAgICA9IGRybV92Ymxhbmtfbm9faHdfY291bnRlciwKPj4gKyAg ICAgICAuZW5hYmxlX3ZibGFuayAgICAgICAgICA9IGhpYm1jX2VuYWJsZV92YmxhbmssCj4+ICsg ICAgICAgLmRpc2FibGVfdmJsYW5rICAgICAgICAgPSBoaWJtY19kaXNhYmxlX3ZibGFuaywKPj4g K307Cj4+ICsKPj4gK3N0YXRpYyBpbnQgaGlibWNfcG1fc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4+ICt7Cj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQg aGlibWNfcG1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPj4gK3sKPj4gKyAgICAgICByZXR1 cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGhpYm1j X3BtX29wcyA9IHsKPj4gKyAgICAgICBTRVRfU1lTVEVNX1NMRUVQX1BNX09QUyhoaWJtY19wbV9z dXNwZW5kLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpYm1jX3BtX3Jlc3Vt ZSkKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBpbnQgaGlibWNfaHdfY29uZmlnKHN0cnVjdCBoaWJt Y19kcm1fZGV2aWNlICpoaWRldikKPj4gK3sKPj4gKyAgICAgICB1bnNpZ25lZCBpbnQgcmVnOwo+ PiArCj4+ICsgICAgICAgLyogT24gaGFyZHdhcmUgcmVzZXQsIHBvd2VyIG1vZGUgMCBpcyBkZWZh dWx0LiAqLwo+PiArICAgICAgIGhpYm1jX3NldF9wb3dlcl9tb2RlKGhpZGV2LCBISUJNQ19QV19N T0RFX0NUTF9NT0RFX01PREUwKTsKPj4gKwo+PiArICAgICAgIC8qIEVuYWJsZSBkaXNwbGF5IHBv d2VyIGdhdGUgJiBMT0NBTE1FTSBwb3dlciBnYXRlKi8KPj4gKyAgICAgICByZWcgPSByZWFkbCho aWRldi0+bW1pbyArIEhJQk1DX0NVUlJFTlRfR0FURSk7Cj4+ICsgICAgICAgcmVnICY9IH5ISUJN Q19DVVJSX0dBVEVfRElTUExBWV9NQVNLOwo+PiArICAgICAgIHJlZyAmPSB+SElCTUNfQ1VSUl9H QVRFX0xPQ0FMTUVNX01BU0s7Cj4+ICsgICAgICAgcmVnIHw9IEhJQk1DX0NVUlJfR0FURV9ESVNQ TEFZKE9OKTsKPj4gKyAgICAgICByZWcgfD0gSElCTUNfQ1VSUl9HQVRFX0xPQ0FMTUVNKE9OKTsK Pj4gKwo+PiArICAgICAgIGhpYm1jX3NldF9jdXJyZW50X2dhdGUoaGlkZXYsIHJlZyk7Cj4+ICsK Pj4gKyAgICAgICAvKiBSZXNldCB0aGUgbWVtb3J5IGNvbnRyb2xsZXIuIElmIHRoZSBtZW1vcnkg Y29udHJvbGxlcgo+PiArICAgICAgICAqIGlzIG5vdCByZXNldCBpbiBjaGlwLHRoZSBzeXN0ZW0g bWlnaHQgaGFuZyB3aGVuIHN3IGFjY2Vzc2VzCj4+ICsgICAgICAgICogdGhlIG1lbW9yeS5UaGUg bWVtb3J5IHNob3VsZCBiZSByZXNldHRlZCBhZnRlcgo+PiArICAgICAgICAqIGNoYW5naW5nIHRo ZSBNWENMSy4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICByZWcgPSByZWFkbChoaWRldi0+bW1p byArIEhJQk1DX01JU0NfQ1RSTCk7Cj4+ICsgICAgICAgcmVnICY9IH5ISUJNQ19NU0NDVExfTE9D QUxNRU1fUkVTRVRfTUFTSzsKPj4gKyAgICAgICByZWcgfD0gSElCTUNfTVNDQ1RMX0xPQ0FMTUVN X1JFU0VUKFJFU0VUKTsKPj4gKyAgICAgICB3cml0ZWwocmVnLCBoaWRldi0+bW1pbyArIEhJQk1D X01JU0NfQ1RSTCk7Cj4+ICsKPj4gKyAgICAgICByZWcgJj0gfkhJQk1DX01TQ0NUTF9MT0NBTE1F TV9SRVNFVF9NQVNLOwo+PiArICAgICAgIHJlZyB8PSBISUJNQ19NU0NDVExfTE9DQUxNRU1fUkVT RVQoTk9STUFMKTsKPj4gKwo+PiArICAgICAgIHdyaXRlbChyZWcsIGhpZGV2LT5tbWlvICsgSElC TUNfTUlTQ19DVFJMKTsKPj4gKwo+PiArICAgICAgIC8qIFdlIGNhbiBhZGQgbW9yZSBpbml0aWFs aXphdGlvbiBhcyBuZWVkZWQuICovCj4+ICsKPj4gKyAgICAgICByZXR1cm4gMDsKPgo+IENvbnNp ZGVyIHVzaW5nIHZvaWQgcmV0dXJuIHR5cGUgaGVyZSB0byBzaW1wbGlmeSBlcnJvciBjaGVja2lu ZyBpbiB0aGUKPiBjYWxsZXIsIGVzcGVjaWFsbHkgc2luY2UgaXQgbG9va3MgbGlrZSB5b3UgYXJl bid0IGNoZWNraW5nIHRoZSByZXR1cm4KPiBjb2RlLCBhbnl3YXlzIDopCgpZZXMsIHlvdSBhcmUg cmlnaHQuIGkgZGlkIG5vdCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlLCBzbyB2b2lkIHR5cGUKaXMg YmV0dGVyLCB0aGFua3MuCgo+Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgaGlibWNfaHdfbWFw KHN0cnVjdCBoaWJtY19kcm1fZGV2aWNlICpoaWRldikKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gaGlkZXYtPmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IGRldi0+cGRldjsKPj4gKyAgICAgICByZXNvdXJjZV9zaXplX3QgYWRkciwgc2l6ZSwg aW9hZGRyLCBpb3NpemU7Cj4+ICsKPj4gKyAgICAgICBpb2FkZHIgPSBwY2lfcmVzb3VyY2Vfc3Rh cnQocGRldiwgMSk7Cj4+ICsgICAgICAgaW9zaXplID0gTUIoMik7Cj4+ICsKPj4gKyAgICAgICBo aWRldi0+bW1pbyA9IGlvcmVtYXBfbm9jYWNoZShpb2FkZHIsIGlvc2l6ZSk7Cj4KPiBVc2UgZGV2 bV9pb3JlbWFwX25vY2FjaGUgdG8gYXZvaWQgbWFuYWdpbmcgdGhlIHJlc291cmNlIGRpcmVjdGx5 CgphZ3JlZWQsIHRoYW5rcwoKPgo+PiArCj4KPiBuaXQ6IGV4dHJhIHNwYWNlCj4KPj4gKyAgICAg ICBpZiAoIWhpZGV2LT5tbWlvKSB7Cj4+ICsgICAgICAgICAgICAgICBEUk1fRVJST1IoIkNhbm5v dCBtYXAgbW1pbyByZWdpb25cbiIpOwo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07 Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAgICAgYWRkciA9IHBjaV9yZXNvdXJjZV9zdGFydChw ZGV2LCAwKTsKPj4gKyAgICAgICBzaXplID0gTUIoMzIpOwo+Cj4gUHVsbCBzaXplIGFuZCBpb3Np emUgb3V0IGludG8gI2RlZmluZXMgd2l0aCBkZXNjcmlwdGl2ZSBuYW1lcwoKYWdyZWVkLCB0aGFu a3MKCj4KPj4gKwo+PiArICAgICAgIGhpZGV2LT5mYl9tYXAgPSBpb3JlbWFwKGFkZHIsIHNpemUp Owo+Cj4gVXNlIGRldm1faW9yZW1hcCB0byBhdm9pZCBtYW5hZ2luZyB0aGUgcmVzb3VyY2UgZGly ZWN0bHkuCgphZ3JlZWQsIHRoYW5rcwoKPgo+PiArICAgICAgIGlmICghaGlkZXYtPmZiX21hcCkg ewo+PiArICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJDYW5ub3QgbWFwIGZyYW1lYnVmZmVyXG4i KTsKPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiArICAgICAgIH0KPj4gKyAg ICAgICBoaWRldi0+ZmJfYmFzZSA9IGFkZHI7Cj4+ICsgICAgICAgaGlkZXYtPmZiX3NpemUgPSBz aXplOwo+PiArCj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lk IGhpYm1jX2h3X2Zpbmkoc3RydWN0IGhpYm1jX2RybV9kZXZpY2UgKmhpZGV2KQo+PiArewo+PiAr ICAgICAgIGlmIChoaWRldi0+bW1pbykKPj4gKyAgICAgICAgICAgICAgIGlvdW5tYXAoaGlkZXYt Pm1taW8pOwo+PiArICAgICAgIGlmIChoaWRldi0+ZmJfbWFwKQo+PiArICAgICAgICAgICAgICAg aW91bm1hcChoaWRldi0+ZmJfbWFwKTsKPj4gK30KPgo+IFlvdSBkb24ndCBuZWVkIHRoaXMgZnVu Y3Rpb24gaWYgeW91IHVzZSB0aGUgZGV2bSB2YXJpYW50cyBhYm92ZQoKeWVzLCBpdCBzZWVtcyBt b3JlIHNpbXBsZSA6KQoKPgo+PiArCj4+ICtzdGF0aWMgaW50IGhpYm1jX2h3X2luaXQoc3RydWN0 IGhpYm1jX2RybV9kZXZpY2UgKmhpZGV2KQo+PiArewo+PiArICAgICAgIGludCByZXQ7Cj4+ICsK Pj4gKyAgICAgICByZXQgPSBoaWJtY19od19tYXAoaGlkZXYpOwo+PiArICAgICAgIGlmIChyZXQp Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+PiArCj4+ICsgICAgICAgaGlibWNfaHdf Y29uZmlnKGhpZGV2KTsKPj4gKwo+PiArICAgICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICtz dGF0aWMgaW50IGhpYm1jX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiArewo+PiAr ICAgICAgIHN0cnVjdCBoaWJtY19kcm1fZGV2aWNlICpoaWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4+ICsKPj4gKyAgICAgICBoaWJtY19od19maW5pKGhpZGV2KTsKPj4gKyAgICAgICBkZXYtPmRl dl9wcml2YXRlID0gTlVMTDsKPj4gKyAgICAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3Rh dGljIGludCBoaWJtY19sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcg ZmxhZ3MpCj4KPiBmbGFncyBpc24ndCB1c2VkIGFueXdoZXJlPwoKSW5pdGlhbGx5LCBoaWJtY19s b2FkIGlzIGFzc2lnbmVkIHRvICIubG9hZCIsIHNvIHNlY29uZCBwYXJhbWV0ZXIgaXMgcmVzZXJ2 ZWQuCkluIGZhY3QgaXQgaXMgbm90IHVzZWQuCgo+Cj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGhp Ym1jX2RybV9kZXZpY2UgKmhpZGV2Owo+PiArICAgICAgIGludCByZXQ7Cj4+ICsKPj4gKyAgICAg ICBoaWRldiA9IGRldm1fa3phbGxvYyhkZXYtPmRldiwgc2l6ZW9mKCpoaWRldiksIEdGUF9LRVJO RUwpOwo+PiArICAgICAgIGlmICghaGlkZXYpCj4KPiBQcmludCBlcnJvciBoZXJlPwoKYXBwbGll ZCwgdGhhbmtzLgoKPgo+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+ICsgICAg ICAgZGV2LT5kZXZfcHJpdmF0ZSA9IGhpZGV2Owo+PiArICAgICAgIGhpZGV2LT5kZXYgPSBkZXY7 Cj4+ICsKPj4gKyAgICAgICByZXQgPSBoaWJtY19od19pbml0KGhpZGV2KTsKPj4gKyAgICAgICBp ZiAocmV0KQo+PiArICAgICAgICAgICAgICAgZ290byBlcnI7Cj4+ICsKPj4gKyAgICAgICByZXR1 cm4gMDsKPj4gKwo+PiArZXJyOgo+PiArICAgICAgIGhpYm1jX3VubG9hZChkZXYpOwo+PiArICAg ICAgIERSTV9FUlJPUigiZmFpbGVkIHRvIGluaXRpYWxpemUgZHJtIGRyaXZlci5cbiIpOwo+Cj4g UHJpbnQgdGhlIHJldHVybiB2YWx1ZQoKZGl0dG8KCj4KPj4gKyAgICAgICByZXR1cm4gcmV0Owo+ PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGhpYm1jX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAq cGRldiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZp Y2VfaWQgKmVudCkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+PiAr ICAgICAgIGludCByZXQ7Cj4+ICsKPj4gKyAgICAgICBkZXYgPSBkcm1fZGV2X2FsbG9jKCZoaWJt Y19kcml2ZXIsICZwZGV2LT5kZXYpOwo+PiArICAgICAgIGlmICghZGV2KQo+Cj4gUHJpbnQgZXJy b3IgaGVyZQoKZGl0dG8KCj4KPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiAr Cj4+ICsgICAgICAgZGV2LT5wZGV2ID0gcGRldjsKPj4gKyAgICAgICBwY2lfc2V0X2RydmRhdGEo cGRldiwgZGV2KTsKPj4gKwo+PiArICAgICAgIHJldCA9IHBjaV9lbmFibGVfZGV2aWNlKHBkZXYp Owo+PiArICAgICAgIGlmIChyZXQpCj4KPiBhbmQgaGVyZSwgYW5kIGluIG90aGVyIGZhaWx1cmUg cGF0aHMKCmRpdHRvCgo+Cj4+ICsgICAgICAgICAgICAgICBnb3RvIGVycl9mcmVlOwo+PiArCj4+ ICsgICAgICAgcmV0ID0gaGlibWNfbG9hZChkZXYsIDApOwo+PiArICAgICAgIGlmIChyZXQpCj4+ ICsgICAgICAgICAgICAgICBnb3RvIGVycl9kaXNhYmxlOwo+PiArCj4+ICsgICAgICAgcmV0ID0g ZHJtX2Rldl9yZWdpc3RlcihkZXYsIDApOwo+PiArICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAg ICAgICAgICBnb3RvIGVycl91bmxvYWQ7Cj4+ICsKPj4gKyAgICAgICByZXR1cm4gMDsKPj4gKwo+ PiArZXJyX3VubG9hZDoKPj4gKyAgICAgICBoaWJtY191bmxvYWQoZGV2KTsKPj4gK2Vycl9kaXNh YmxlOgo+PiArICAgICAgIHBjaV9kaXNhYmxlX2RldmljZShwZGV2KTsKPj4gK2Vycl9mcmVlOgo+ PiArICAgICAgIGRybV9kZXZfdW5yZWYoZGV2KTsKPj4gKwo+PiArICAgICAgIHJldHVybiByZXQ7 Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGhpYm1jX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9k ZXYgKnBkZXYpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBjaV9n ZXRfZHJ2ZGF0YShwZGV2KTsKPj4gKwo+PiArICAgICAgIGRybV9kZXZfdW5yZWdpc3RlcihkZXYp Owo+PiArICAgICAgIGhpYm1jX3VubG9hZChkZXYpOwo+PiArICAgICAgIGRybV9kZXZfdW5yZWYo ZGV2KTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIGhpYm1jX3Bj aV90YWJsZVtdID0gewo+PiArICAgICAgIHsweDE5ZTUsIDB4MTcxMSwgUENJX0FOWV9JRCwgUENJ X0FOWV9JRCwgMCwgMCwgMH0sCj4+ICsgICAgICAgezAsfQo+PiArfTsKPj4gKwo+PiArc3RhdGlj IHN0cnVjdCBwY2lfZHJpdmVyIGhpYm1jX3BjaV9kcml2ZXIgPSB7Cj4+ICsgICAgICAgLm5hbWUg PSAgICAgICAgICJoaWJtYy1kcm0iLAo+PiArICAgICAgIC5pZF90YWJsZSA9ICAgICBoaWJtY19w Y2lfdGFibGUsCj4+ICsgICAgICAgLnByb2JlID0gICAgICAgIGhpYm1jX3BjaV9wcm9iZSwKPj4g KyAgICAgICAucmVtb3ZlID0gICAgICAgaGlibWNfcGNpX3JlbW92ZSwKPj4gKyAgICAgICAuZHJp dmVyLnBtID0gICAgJmhpYm1jX3BtX29wcywKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBpbnQgX19p bml0IGhpYm1jX2luaXQodm9pZCkKPj4gK3sKPj4gKyAgICAgICByZXR1cm4gcGNpX3JlZ2lzdGVy X2RyaXZlcigmaGlibWNfcGNpX2RyaXZlcik7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIF9f ZXhpdCBoaWJtY19leGl0KHZvaWQpCj4+ICt7Cj4+ICsgICAgICAgcmV0dXJuIHBjaV91bnJlZ2lz dGVyX2RyaXZlcigmaGlibWNfcGNpX2RyaXZlcik7Cj4+ICt9Cj4+ICsKPj4gK21vZHVsZV9pbml0 KGhpYm1jX2luaXQpOwo+PiArbW9kdWxlX2V4aXQoaGlibWNfZXhpdCk7Cj4+ICsKPj4gK01PRFVM RV9ERVZJQ0VfVEFCTEUocGNpLCBoaWJtY19wY2lfdGFibGUpOwo+PiArTU9EVUxFX0FVVEhPUigi Um9uZ3Jvbmdab3UgPHpvdXJvbmdyb25nQGh1YXdlaS5jb20+Iik7Cj4+ICtNT0RVTEVfREVTQ1JJ UFRJT04oIkRSTSBEcml2ZXIgZm9yIEhpc2lsaWNvbiBIaWJtYyIpOwo+PiArTU9EVUxFX0xJQ0VO U0UoIkdQTCB2MiIpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9o aWJtYy9oaWJtY19kcm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hp Ym1jX2RybV9kcnYuaAo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi4w MDM3MzQxCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNv bi9oaWJtYy9oaWJtY19kcm1fZHJ2LmgKPj4gQEAgLTAsMCArMSwzNSBAQAo+PiArLyogSGlzaWxp Y29uIEhpYm1jIFNvQyBkcm0gZHJpdmVyCj4+ICsgKgo+PiArICogQmFzZWQgb24gdGhlIGJvY2hz IGRybSBkcml2ZXIuCj4+ICsgKgo+PiArICogQ29weXJpZ2h0IChjKSAyMDE2IEh1YXdlaSBMaW1p dGVkLgo+PiArICoKPj4gKyAqIEF1dGhvcjoKPj4gKyAqICAgICBSb25ncm9uZyBab3UgPHpvdXJv bmdyb25nQGh1YXdlaS5jb20+Cj4+ICsgKiAgICAgUm9uZ3JvbmcgWm91IDx6b3Vyb25ncm9uZ0Bn bWFpbC5jb20+Cj4+ICsgKiAgICAgSmlhbmh1YSBMaSA8bGlqaWFuaHVhQGh1YXdlaS5jb20+Cj4+ ICsgKgo+PiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4+ICsgKiB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv cgo+PiArICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4gKyAqCj4+ICsg Ki8KPj4gKwo+PiArI2lmbmRlZiBISUJNQ19EUk1fRFJWX0gKPj4gKyNkZWZpbmUgSElCTUNfRFJN X0RSVl9ICj4+ICsKPj4gKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+PiArCj4+ICtzdHJ1Y3QgaGli bWNfZHJtX2RldmljZSB7Cj4KPiBuaXQ6IENhbGxpbmcgdGhpcyBoaWJtY19kcm1fcHJpdiB3b3Vs ZCBwcm9iYWJseSBtYWtlIHRoaW5ncyBlYXNpZXIgdG8KPiByZWFkLiBXaGVuIEkgcmVhZCBoaWJt Y19kcm1fZGV2aWNlLCBpdCBtYWtlcyBtZSB0aGluayB0aGF0IGl0J3MgYW4KPiBleHRlbnNpb24g b2YgZHJtX2RldmljZSwgd2hpY2ggdGhpcyBpc24ndC4KCm9rYXksIHdpbGwgcmVwbGFjZSBoaWJt Y19kcm1fZGV2aWNlIHdpdGggaGlibWNfZHJtX3ByaXYsIHRoYW5rcy4KCj4KPgo+PiArICAgICAg IC8qIGh3ICovCj4+ICsgICAgICAgdm9pZCBfX2lvbWVtICAgKm1taW87Cj4+ICsgICAgICAgdm9p ZCBfX2lvbWVtICAgKmZiX21hcDsKPj4gKyAgICAgICB1bnNpZ25lZCBsb25nICBmYl9iYXNlOwo+ PiArICAgICAgIHVuc2lnbmVkIGxvbmcgIGZiX3NpemU7Cj4+ICsKPj4gKyAgICAgICAvKiBkcm0g Ki8KPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAgKmRldjsKPj4gK307Cj4+ICsKPj4gKyNl bmRpZgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJt Y19kcm1fcG93ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJt X3Bvd2VyLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4uMTAzNjU0 Mgo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGli bWMvaGlibWNfZHJtX3Bvd2VyLmMKPgo+IEkgZG9uJ3QgdGhpbmsgeW91IG5lZWQgYSBuZXcgZmls ZSBmb3IgdGhlc2UgZnVuY3Rpb25zLiBKdXN0IHN0YXNoIHRoZW0KPiBpbiBoaWJtY19kcm1fZHJ2 LmMKCm9rYXksIHRoYW5rcy4KCj4KPj4gQEAgLTAsMCArMSw4NSBAQAo+PiArLyogSGlzaWxpY29u IEhpYm1jIFNvQyBkcm0gZHJpdmVyCj4+ICsgKgo+PiArICogQmFzZWQgb24gdGhlIGJvY2hzIGRy bSBkcml2ZXIuCj4+ICsgKgo+PiArICogQ29weXJpZ2h0IChjKSAyMDE2IEh1YXdlaSBMaW1pdGVk Lgo+PiArICoKPj4gKyAqIEF1dGhvcjoKPj4gKyAqICAgICBSb25ncm9uZyBab3UgPHpvdXJvbmdy b25nQGh1YXdlaS5jb20+Cj4+ICsgKiAgICAgUm9uZ3JvbmcgWm91IDx6b3Vyb25ncm9uZ0BnbWFp bC5jb20+Cj4+ICsgKiAgICAgSmlhbmh1YSBMaSA8bGlqaWFuaHVhQGh1YXdlaS5jb20+Cj4+ICsg Kgo+PiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKPj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4+ICsgKiB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgo+ PiArICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4gKyAqCj4+ICsgKi8K Pj4gKwo+PiArI2luY2x1ZGUgImhpYm1jX2RybV9kcnYuaCIKPj4gKyNpbmNsdWRlICJoaWJtY19k cm1fcmVncy5oIgo+PiArCj4+ICsvKgo+PiArICogSXQgY2FuIG9wZXJhdGUgaW4gb25lIG9mIHRo cmVlIG1vZGVzOiAwLCAxIG9yIFNsZWVwLgo+PiArICovCj4+ICt2b2lkIGhpYm1jX3NldF9wb3dl cl9tb2RlKHN0cnVjdCBoaWJtY19kcm1fZGV2aWNlICpoaWRldiwKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgcG93ZXJfbW9kZSkKPj4gK3sKPj4gKyAgICAgICB1bnNp Z25lZCBpbnQgY29udHJvbF92YWx1ZSA9IDA7Cj4+ICsgICAgICAgdm9pZCBfX2lvbWVtICAgKm1t aW8gPSBoaWRldi0+bW1pbzsKPj4gKwo+PiArICAgICAgIGlmIChwb3dlcl9tb2RlID4gSElCTUNf UFdfTU9ERV9DVExfTU9ERV9TTEVFUCkKPj4gKyAgICAgICAgICAgICAgIHJldHVybjsKPj4gKwo+ PiArICAgICAgIGNvbnRyb2xfdmFsdWUgPSByZWFkbChtbWlvICsgSElCTUNfUE9XRVJfTU9ERV9D VFJMKTsKPj4gKyAgICAgICBjb250cm9sX3ZhbHVlICY9IH5ISUJNQ19QV19NT0RFX0NUTF9NT0RF X01BU0s7Cj4+ICsKPj4gKyAgICAgICBjb250cm9sX3ZhbHVlIHw9IEhJQk1DX1BXX01PREVfQ1RM X01PREUocG93ZXJfbW9kZSkgJgo+PiArICAgICAgICAgICAgICAgICAgICAgICAgSElCTUNfUFdf TU9ERV9DVExfTU9ERV9NQVNLOwo+PiArCj4+ICsgICAgLyogU2V0IHVwIG90aGVyIGZpZWxkcyBp biBQb3dlciBDb250cm9sIFJlZ2lzdGVyICovCj4+ICsgICAgICAgaWYgKHBvd2VyX21vZGUgPT0g SElCTUNfUFdfTU9ERV9DVExfTU9ERV9TTEVFUCkgewo+PiArICAgICAgICAgICAgICAgY29udHJv bF92YWx1ZSAmPSB+SElCTUNfUFdfTU9ERV9DVExfT1NDX0lOUFVUX01BU0s7Cj4KPiBZb3UgZG8g dGhpcyBpbiBib3RoIGJyYW5jaGVzIG9mIHRoZSBjb25kaXRpb25hbAoKc291bmRzIGdvb2QgdG8g bWUsIHRoYW5rcyA6KQoKPgo+PiArICAgICAgICAgICAgICAgY29udHJvbF92YWx1ZSB8PSBISUJN Q19QV19NT0RFX0NUTF9PU0NfSU5QVVQoMCkgJgo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBISUJNQ19QV19NT0RFX0NUTF9PU0NfSU5QVVRfTUFTSzsKPj4gKyAgICAgICB9IGVs c2Ugewo+PiArICAgICAgICAgICAgICAgY29udHJvbF92YWx1ZSAmPSB+SElCTUNfUFdfTU9ERV9D VExfT1NDX0lOUFVUX01BU0s7Cj4+ICsgICAgICAgICAgICAgICBjb250cm9sX3ZhbHVlIHw9IEhJ Qk1DX1BXX01PREVfQ1RMX09TQ19JTlBVVCgxKSAmCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEhJQk1DX1BXX01PREVfQ1RMX09TQ19JTlBVVF9NQVNLOwo+PiArICAgICAgIH0K Pgo+IEkgdGhpbmsgeW91IGNvdWxkIHNpbXBsaWZ5IHRoaXMgYnkgYWRkaW5nIGEgbmV3IGxvY2Fs Lgo+Cj4gdW5zaWduZWQgaW50IGlucHV0ID0gMTsKPgo+IGlmIChwb3dlcl9tb2RlID09IEhJQk1D X1BXX01PREVfQ1RMX01PREVfU0xFRVApCj4gICAgICAgICAgaW5wdXQgPSAwOwo+Cj4gY29udHJv bF92YWx1ZSA9IHJlYWRsKG1taW8gKyBISUJNQ19QT1dFUl9NT0RFX0NUUkwpOwo+IGNvbnRyb2xf dmFsdWUgJj0gfihISUJNQ19QV19NT0RFX0NUTF9NT0RFX01BU0sgfAo+ICAgICAgICAgICAgICAg ICAgICAgSElCTUNfUFdfTU9ERV9DVExfT1NDX0lOUFVUX01BU0spOwo+IGNvbnRyb2xfdmFsdWUg fD0gSElCTUNfUFdfTU9ERV9DVExfTU9ERShwb3dlcl9tb2RlKSAmCj4gICAgICAgICAgICAgICAg ICAgSElCTUNfUFdfTU9ERV9DVExfTU9ERV9NQVNLOwo+IGNvbnRyb2xfdmFsdWUgfD0gSElCTUNf UFdfTU9ERV9DVExfT1NDX0lOUFVUKGlucHV0KSAmCj4gICAgICAgICAgICAgICAgICAgSElCTUNf UFdfTU9ERV9DVExfT1NDX0lOUFVUX01BU0s7CgphZ3JlZWQuCgo+Cj4KPj4gKyAgICAgICAvKiBQ cm9ncmFtIG5ldyBwb3dlciBtb2RlLiAqLwo+PiArICAgICAgIHdyaXRlbChjb250cm9sX3ZhbHVl LCBtbWlvICsgSElCTUNfUE9XRVJfTU9ERV9DVFJMKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHVu c2lnbmVkIGludCBoaWJtY19nZXRfcG93ZXJfbW9kZShzdHJ1Y3QgaGlibWNfZHJtX2RldmljZSAq aGlkZXYpCj4+ICt7Cj4+ICsgICAgICAgdm9pZCBfX2lvbWVtICAgKm1taW8gPSBoaWRldi0+bW1p bzsKPj4gKwo+PiArICAgICAgIHJldHVybiAocmVhZGwobW1pbyArIEhJQk1DX1BPV0VSX01PREVf Q1RSTCkgJgo+PiArICAgICAgICAgICAgICAgSElCTUNfUFdfTU9ERV9DVExfTU9ERV9NQVNLKSA+ PiBISUJNQ19QV19NT0RFX0NUTF9NT0RFX1NISUZUOwo+Cj4gbml0OiBZb3UncmUgZG9pbmcgYSBs b3Qgb2Ygd29yayBpbiB0aGUgcmV0dXJuIHN0YXRlbWVudCBoZXJlLgoKc28gaSBuZWVkIHRvIGRl ZmluZSBhbiBleHRyYSB2YXJpYWJsZS4KCj4KPj4gK30KPj4gKwo+PiArdm9pZCBoaWJtY19zZXRf Y3VycmVudF9nYXRlKHN0cnVjdCBoaWJtY19kcm1fZGV2aWNlICpoaWRldiwgdW5zaWduZWQgaW50 IGdhdGUpCj4+ICt7Cj4+ICsgICAgICAgdW5zaWduZWQgaW50IGdhdGVfcmVnOwo+PiArICAgICAg IHVuc2lnbmVkIGludCBtb2RlOwo+PiArICAgICAgIHZvaWQgX19pb21lbSAgICptbWlvID0gaGlk ZXYtPm1taW87Cj4+ICsKPj4gKyAgICAgICAvKiBHZXQgY3VycmVudCBwb3dlciBtb2RlLiAqLwo+ Cj4gbml0OiB0cnkgdG8gYXZvaWQgY29tbWVudHMgdGhhdCBkb24ndCBhZGQgdmFsdWUKCm9rYXks IHRoYW5rcy4KCj4KPj4gKyAgICAgICBtb2RlID0gaGlibWNfZ2V0X3Bvd2VyX21vZGUoaGlkZXYp Owo+PiArCj4+ICsgICAgICAgc3dpdGNoIChtb2RlKSB7Cj4+ICsgICAgICAgY2FzZSBISUJNQ19Q V19NT0RFX0NUTF9NT0RFX01PREUwOgo+PiArICAgICAgICAgICAgICAgZ2F0ZV9yZWcgPSBISUJN Q19NT0RFMF9HQVRFOwo+PiArICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICsKPj4gKyAgICAgICBj YXNlIEhJQk1DX1BXX01PREVfQ1RMX01PREVfTU9ERTE6Cj4+ICsgICAgICAgICAgICAgICBnYXRl X3JlZyA9IEhJQk1DX01PREUxX0dBVEU7Cj4+ICsgICAgICAgICAgICAgICBicmVhazsKPj4gKwo+ PiArICAgICAgIGRlZmF1bHQ6Cj4+ICsgICAgICAgICAgICAgICBnYXRlX3JlZyA9IEhJQk1DX01P REUwX0dBVEU7Cj4+ICsgICAgICAgICAgICAgICBicmVhazsKPj4gKyAgICAgICB9Cj4+ICsgICAg ICAgd3JpdGVsKGdhdGUsIG1taW8gKyBnYXRlX3JlZyk7Cj4+ICt9Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9wb3dlci5oIGIvZHJpdmVy cy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fcG93ZXIuaAo+PiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi5lMjBlMWFhCj4+IC0tLSAvZGV2L251bGwKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fcG93ZXIuaAo+ PiBAQCAtMCwwICsxLDI4IEBACj4+ICsvKiBIaXNpbGljb24gSGlibWMgU29DIGRybSBkcml2ZXIK Pj4gKyAqCj4+ICsgKiBCYXNlZCBvbiB0aGUgYm9jaHMgZHJtIGRyaXZlci4KPj4gKyAqCj4+ICsg KiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVhd2VpIExpbWl0ZWQuCj4+ICsgKgo+PiArICogQXV0aG9y Ogo+PiArICogICAgIFJvbmdyb25nIFpvdSA8em91cm9uZ3JvbmdAaHVhd2VpLmNvbT4KPj4gKyAq ICAgICBSb25ncm9uZyBab3UgPHpvdXJvbmdyb25nQGdtYWlsLmNvbT4KPj4gKyAqICAgICBKaWFu aHVhIExpIDxsaWppYW5odWFAaHVhd2VpLmNvbT4KPj4gKyAqCj4+ICsgKiBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ PiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKPj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4+ICsgKiAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgo+PiArICoKPj4gKyAqLwo+PiArCj4+ICsjaWZuZGVmIEhJQk1D X0RSTV9QT1dFUl9ICj4+ICsjZGVmaW5lIEhJQk1DX0RSTV9QT1dFUl9ICj4+ICsKPj4gKyNpbmNs dWRlICJoaWJtY19kcm1fZHJ2LmgiCj4+ICsKPj4gK3ZvaWQgaGlibWNfc2V0X3Bvd2VyX21vZGUo c3RydWN0IGhpYm1jX2RybV9kZXZpY2UgKmhpZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBwb3dlcl9tb2RlKTsKPj4gK3ZvaWQgaGlibWNfc2V0X2N1cnJlbnRf Z2F0ZShzdHJ1Y3QgaGlibWNfZHJtX2RldmljZSAqaGlkZXYsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgZ2F0ZSk7Cj4+ICsjZW5kaWYKPj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3JlZ3MuaCBiL2RyaXZl cnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3JlZ3MuaAo+PiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi45YzgwNGNhCj4+IC0tLSAvZGV2L251bGwKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fcmVncy5oCj4+ IEBAIC0wLDAgKzEsMjEyIEBACj4+ICsvKiBIaXNpbGljb24gSGlibWMgU29DIGRybSBkcml2ZXIK Pj4gKyAqCj4+ICsgKiBCYXNlZCBvbiB0aGUgYm9jaHMgZHJtIGRyaXZlci4KPj4gKyAqCj4+ICsg KiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVhd2VpIExpbWl0ZWQuCj4+ICsgKgo+PiArICogQXV0aG9y Ogo+PiArICogICAgIFJvbmdyb25nIFpvdSA8em91cm9uZ3JvbmdAaHVhd2VpLmNvbT4KPj4gKyAq ICAgICBSb25ncm9uZyBab3UgPHpvdXJvbmdyb25nQGdtYWlsLmNvbT4KPj4gKyAqICAgICBKaWFu aHVhIExpIDxsaWppYW5odWFAaHVhd2VpLmNvbT4KPj4gKyAqCj4+ICsgKiBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ PiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKPj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4+ICsgKiAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgo+PiArICoKPj4gKyAqLwo+PiArCj4+ICsjaWZuZGVmIEhJQk1D X0RSTV9IV19ICj4+ICsjZGVmaW5lIEhJQk1DX0RSTV9IV19ICj4+ICsKPj4gKyNkZWZpbmUgT0ZG IDAKPj4gKyNkZWZpbmUgT04gIDEKPj4gKyNkZWZpbmUgRElTQUJMRSAgICAgICAgICAgICAgIDAK Pj4gKyNkZWZpbmUgRU5BQkxFICAgICAgICAgICAgICAgIDEKPgo+IFRoZXNlIGFyZSBub3QgZ29v ZCBuYW1lcy4gSSB0aGluayB5b3UgY2FuIHByb2JhYmx5IGhhcmRjb2RlIHRoZSAwJ3MKPiBhbmQg MSdzIGluIHRoZSBjb2RlIGluc3RlYWQgb2YgdGhlc2UuIEhvd2V2ZXIsIGlmIHlvdSB3YW50IHRv IHVzZQo+IHRoZW0sIGF0IGxlYXN0IGFkZCBhIEhJQk1DXyBwcmVmaXgKCkkgbGlrZSBoYXJkY29k ZSBoZXJlLCB0aGFua3MuCgo+Cj4+ICsKPj4gKy8qIHJlZ2lzdGVyIGRlZmluaXRpb24gKi8KPj4g KyNkZWZpbmUgSElCTUNfTUlTQ19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDQKPj4gKwo+PiArI2RlZmluZSBISUJNQ19NU0NDVExfTE9DQUxNRU1fUkVTRVQoeCkgICAgICAg ICAoKHgpIDw8IDYpCj4+ICsjZGVmaW5lIEhJQk1DX01TQ0NUTF9MT0NBTE1FTV9SRVNFVF9NQVNL ICAgICAgIDB4NDAKPj4gKwo+PiArI2RlZmluZSBSRVNFVCAgICAgICAgICAgICAgICAwCj4+ICsj ZGVmaW5lIE5PUk1BTCAgICAgICAgICAgICAgIDEKPgo+IFNhbWUgbmFtaW5nIG5pdCBoZXJlLiBB ZGQgYSBwcmVmaXgKCmRpdHRvLgoKPgo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX0NVUlJFTlRfR0FU RSAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwCj4+ICsjZGVmaW5lIEhJQk1DX0NVUlJfR0FU RV9ESVNQTEFZKHgpICAgICAgICAgICAgICgoeCkgPDwgMikKPj4gKyNkZWZpbmUgSElCTUNfQ1VS Ul9HQVRFX0RJU1BMQVlfTUFTSyAgICAgICAgICAgMHg0Cj4+ICsKPj4gKyNkZWZpbmUgSElCTUNf Q1VSUl9HQVRFX0xPQ0FMTUVNKHgpICAgICAgICAgICAgKCh4KSA8PCAxKQo+PiArI2RlZmluZSBI SUJNQ19DVVJSX0dBVEVfTE9DQUxNRU1fTUFTSyAgICAgICAgICAweDIKPj4gKwo+PiArI2RlZmlu ZSBISUJNQ19NT0RFMF9HQVRFICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0NAo+PiArI2Rl ZmluZSBISUJNQ19NT0RFMV9HQVRFICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0OAo+PiAr I2RlZmluZSBISUJNQ19QT1dFUl9NT0RFX0NUUkwgICAgICAgICAgICAgICAgICAweDAwMDA0Qwo+ PiArCj4+ICsjZGVmaW5lIEhJQk1DX1BXX01PREVfQ1RMX09TQ19JTlBVVCh4KSAgICAgICAgICgo eCkgPDwgMykKPj4gKyNkZWZpbmUgSElCTUNfUFdfTU9ERV9DVExfT1NDX0lOUFVUX01BU0sgICAg ICAgMHg4Cj4+ICsKPj4gKyNkZWZpbmUgSElCTUNfUFdfTU9ERV9DVExfTU9ERSh4KSAgICAgICAg ICAgICAgKCh4KSA8PCAwKQo+PiArI2RlZmluZSBISUJNQ19QV19NT0RFX0NUTF9NT0RFX01BU0sg ICAgICAgICAgICAweDAzCj4+ICsjZGVmaW5lIEhJQk1DX1BXX01PREVfQ1RMX01PREVfU0hJRlQg ICAgICAgICAgIDAKPj4gKwo+PiArI2RlZmluZSBISUJNQ19QV19NT0RFX0NUTF9NT0RFX01PREUw ICAgICAgICAgICAwCj4+ICsjZGVmaW5lIEhJQk1DX1BXX01PREVfQ1RMX01PREVfTU9ERTEgICAg ICAgICAgIDEKPj4gKyNkZWZpbmUgSElCTUNfUFdfTU9ERV9DVExfTU9ERV9TTEVFUCAgICAgICAg ICAgMgo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX1BBTkVMX1BMTF9DVFJMICAgICAgICAgICAgICAg ICAgIDB4MDAwMDVDCj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9QTExfQ1RSTCAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMDYwCj4+ICsKPj4gKyNkZWZpbmUgSElCTUNfUExMX0NUUkxfQllQQVNTKHgp ICAgICAgICAgICAgICAgKCh4KSA8PCAxOCkKPj4gKyNkZWZpbmUgSElCTUNfUExMX0NUUkxfQllQ QVNTX01BU0sgICAgICAgICAgICAgMHg0MDAwMAo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX1BMTF9D VFJMX1BPV0VSKHgpICAgICAgICAgICAgICAgICAgICAgICAgKCh4KSA8PCAxNykKPj4gKyNkZWZp bmUgSElCTUNfUExMX0NUUkxfUE9XRVJfTUFTSyAgICAgICAgICAgICAgMHgyMDAwMAo+PiArCj4+ ICsjZGVmaW5lIEhJQk1DX1BMTF9DVFJMX0lOUFVUKHgpICAgICAgICAgICAgICAgICAgICAgICAg KCh4KSA8PCAxNikKPj4gKyNkZWZpbmUgSElCTUNfUExMX0NUUkxfSU5QVVRfTUFTSyAgICAgICAg ICAgICAgMHgxMDAwMAo+PiArCj4+ICsjZGVmaW5lIE9TQyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDAKPgo+IE5hbWluZwoKZGl0dG8uCgo+Cj4+ICsjZGVmaW5lIFRFU1RDTEsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMQo+Cj4gVGhpcyBkb2Vzbid0 IHNlZW0gdG8gYmUgdXNlZD8KCndpbGwgcmVtb3ZlIGl0IGluIG5leHQgdmVyc2lvbi4KCj4KPj4g Kwo+PiArI2RlZmluZSBISUJNQ19QTExfQ1RSTF9QT0QoeCkgICAgICAgICAgICAgICAgICAoKHgp IDw8IDE0KQo+PiArI2RlZmluZSBISUJNQ19QTExfQ1RSTF9QT0RfTUFTSyAgICAgICAgICAgICAg ICAgICAgICAgIDB4QzAwMAo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX1BMTF9DVFJMX09EKHgpICAg ICAgICAgICAgICAgICAgICgoeCkgPDwgMTIpCj4+ICsjZGVmaW5lIEhJQk1DX1BMTF9DVFJMX09E X01BU0sgICAgICAgICAgICAgICAgIDB4MzAwMAo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX1BMTF9D VFJMX04oeCkgICAgICAgICAgICAgICAgICAgICgoeCkgPDwgOCkKPj4gKyNkZWZpbmUgSElCTUNf UExMX0NUUkxfTl9NQVNLICAgICAgICAgICAgICAgICAgMHhGMDAKPj4gKwo+PiArI2RlZmluZSBI SUJNQ19QTExfQ1RSTF9NKHgpICAgICAgICAgICAgICAgICAgICAoKHgpIDw8IDApCj4+ICsjZGVm aW5lIEhJQk1DX1BMTF9DVFJMX01fTUFTSyAgICAgICAgICAgICAgICAgIDB4RkYKPj4gKwo+PiAr I2RlZmluZSBISUJNQ19DUlRfRElTUF9DVEwgICAgICAgICAgICAgICAgICAgICAweDgwMjAwCj4+ ICsKPj4gKyNkZWZpbmUgSElCTUNfQ1JUX0RJU1BfQ1RMX0NSVFNFTEVDVCh4KSAgICAgICAgICAg ICAgICAoKHgpIDw8IDI1KQo+PiArI2RlZmluZSBISUJNQ19DUlRfRElTUF9DVExfQ1JUU0VMRUNU X01BU0sgICAgICAweDIwMDAwMDAKPj4gKwo+PiArI2RlZmluZSBDUlRTRUxFQ1RfVkdBICAgICAg ICAgICAgICAgIDAKPj4gKyNkZWZpbmUgQ1JUU0VMRUNUX0NSVCAgICAgICAgICAgICAgICAxCj4+ ICsKPj4gKyNkZWZpbmUgSElCTUNfQ1JUX0RJU1BfQ1RMX0NMT0NLX1BIQVNFKHgpICAgICAgKCh4 KSA8PCAxNCkKPj4gKyNkZWZpbmUgSElCTUNfQ1JUX0RJU1BfQ1RMX0NMT0NLX1BIQVNFX01BU0sg ICAgMHg0MDAwCj4+ICsKPj4gKyNkZWZpbmUgUEhBU0VfQUNUSVZFX0hJR0ggICAgICAwCj4+ICsj ZGVmaW5lIFBIQVNFX0FDVElWRV9MT1cgICAgICAgMQo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX0NS VF9ESVNQX0NUTF9WU1lOQ19QSEFTRSh4KSAgICAgICgoeCkgPDwgMTMpCj4+ICsjZGVmaW5lIEhJ Qk1DX0NSVF9ESVNQX0NUTF9WU1lOQ19QSEFTRV9NQVNLICAgIDB4MjAwMAo+PiArCj4+ICsjZGVm aW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9IU1lOQ19QSEFTRSh4KSAgICAgICgoeCkgPDwgMTIpCj4+ ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9IU1lOQ19QSEFTRV9NQVNLICAgIDB4MTAwMAo+ PiArCj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9USU1JTkcoeCkgICAgICAgICAgICgo eCkgPDwgOCkKPj4gKyNkZWZpbmUgSElCTUNfQ1JUX0RJU1BfQ1RMX1RJTUlOR19NQVNLICAgICAg ICAgMHgxMDAKPj4gKwo+PiArI2RlZmluZSBISUJNQ19DUlRfRElTUF9DVExfUExBTkUoeCkgICAg ICAgICAgICAoKHgpIDw8IDIpCj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9QTEFORV9N QVNLICAgICAgICAgIDQKPj4gKwo+PiArI2RlZmluZSBISUJNQ19DUlRfRElTUF9DVExfRk9STUFU KHgpICAgICAgICAgICAoKHgpIDw8IDApCj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9G T1JNQVRfTUFTSyAgICAgICAgIDB4MDMKPj4gKwo+PiArI2RlZmluZSBISUJNQ19DUlRfRkJfQURE UkVTUyAgICAgICAgICAgICAgICAgICAweDA4MDIwNAo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX0NS VF9GQl9XSURUSCAgICAgICAgICAgICAgICAgICAgIDB4MDgwMjA4Cj4+ICsjZGVmaW5lIEhJQk1D X0NSVF9GQl9XSURUSF9XSURUSCh4KSAgICAgICAgICAgICgoeCkgPDwgMTYpCj4+ICsjZGVmaW5l IEhJQk1DX0NSVF9GQl9XSURUSF9XSURUSF9NQVNLICAgICAgICAgIDB4M0ZGRjAwMDAKPj4gKyNk ZWZpbmUgSElCTUNfQ1JUX0ZCX1dJRFRIX09GRlMoeCkgICAgICAgICAgICAgKCh4KSA8PCAwKQo+ PiArI2RlZmluZSBISUJNQ19DUlRfRkJfV0lEVEhfT0ZGU19NQVNLICAgICAgICAgICAweDNGRkYK Pj4gKwo+PiArI2RlZmluZSBISUJNQ19DUlRfSE9SWl9UT1RBTCAgICAgICAgICAgICAgICAgICAw eDA4MDIwQwo+PiArI2RlZmluZSBISUJNQ19DUlRfSE9SWl9UT1RBTF9UT1RBTCh4KSAgICAgICAg ICAoKHgpIDw8IDE2KQo+PiArI2RlZmluZSBISUJNQ19DUlRfSE9SWl9UT1RBTF9UT1RBTF9NQVNL ICAgICAgICAgICAgICAgIDB4RkZGMDAwMAo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9IT1Ja X1RPVEFMX0RJU1BMQVlfRU5EKHgpICAgICgoeCkgPDwgMCkKPj4gKyNkZWZpbmUgSElCTUNfQ1JU X0hPUlpfVE9UQUxfRElTUExBWV9FTkRfTUFTSyAgMHhGRkYKPj4gKwo+PiArI2RlZmluZSBISUJN Q19DUlRfSE9SWl9TWU5DICAgICAgICAgICAgICAgICAgICAweDA4MDIxMAo+PiArI2RlZmluZSBI SUJNQ19DUlRfSE9SWl9TWU5DX1dJRFRIKHgpICAgICAgICAgICAoKHgpIDw8IDE2KQo+PiArI2Rl ZmluZSBISUJNQ19DUlRfSE9SWl9TWU5DX1dJRFRIX01BU0sgICAgICAgICAweEZGMDAwMAo+PiAr Cj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9IT1JaX1NZTkNfU1RBUlQoeCkgICAgICAgICAgICgoeCkg PDwgMCkKPj4gKyNkZWZpbmUgSElCTUNfQ1JUX0hPUlpfU1lOQ19TVEFSVF9NQVNLICAgICAgICAg MHhGRkYKPj4gKwo+PiArI2RlZmluZSBISUJNQ19DUlRfVkVSVF9UT1RBTCAgICAgICAgICAgICAg ICAgICAweDA4MDIxNAo+PiArI2RlZmluZSBISUJNQ19DUlRfVkVSVF9UT1RBTF9UT1RBTCh4KSAg ICAgICAgICAoKHgpIDw8IDE2KQo+PiArI2RlZmluZSBISUJNQ19DUlRfVkVSVF9UT1RBTF9UT1RB TF9NQVNLICAgICAgICAgICAgICAgIDB4N0ZGRjAwMDAKPj4gKwo+PiArI2RlZmluZSBISUJNQ19D UlRfVkVSVF9UT1RBTF9ESVNQTEFZX0VORCh4KSAgICAoKHgpIDw8IDApCj4+ICsjZGVmaW5lIEhJ Qk1DX0NSVF9WRVJUX1RPVEFMX0RJU1BMQVlfRU5EX01BU0sgIDB4N0ZGCj4+ICsKPj4gKyNkZWZp bmUgSElCTUNfQ1JUX1ZFUlRfU1lOQyAgICAgICAgICAgICAgICAgICAgMHgwODAyMTgKPj4gKyNk ZWZpbmUgSElCTUNfQ1JUX1ZFUlRfU1lOQ19IRUlHSFQoeCkgICAgICAgICAgKCh4KSA8PCAxNikK Pj4gKyNkZWZpbmUgSElCTUNfQ1JUX1ZFUlRfU1lOQ19IRUlHSFRfTUFTSyAgICAgICAgICAgICAg ICAweDNGMDAwMAo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9WRVJUX1NZTkNfU1RBUlQoeCkg ICAgICAgICAgICgoeCkgPDwgMCkKPj4gKyNkZWZpbmUgSElCTUNfQ1JUX1ZFUlRfU1lOQ19TVEFS VF9NQVNLICAgICAgICAgMHg3RkYKPj4gKwo+PiArLyogQXV0byBDZW50ZXJpbmcgKi8KPj4gKyNk ZWZpbmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX1RMICAgICAgICAgICAgMHgwODAyODAKPj4g KyNkZWZpbmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX1RMX1RPUCh4KSAgICAgKCh4KSA8PCAx NikKPj4gKyNkZWZpbmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX1RMX1RPUF9NU0sgICAgMHg3 RkYwMDAwCj4+ICsKPj4gKyNkZWZpbmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX1RMX0xFRlQo eCkgICAgKCh4KSA8PCAwKQo+PiArI2RlZmluZSBISUJNQ19DUlRfQVVUT19DRU5URVJJTkdfVExf TEVGVF9NU0sgICAweDdGRgo+PiArCj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9BVVRPX0NFTlRFUklO R19CUiAgICAgICAgICAgIDB4MDgwMjg0Cj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9BVVRPX0NFTlRF UklOR19CUl9CT1RUT00oeCkgICgoeCkgPDwgMTYpCj4+ICsjZGVmaW5lIEhJQk1DX0NSVF9BVVRP X0NFTlRFUklOR19CUl9CT1RUT01fTUFTSyAgICAgICAgMHg3RkYwMDAwCj4+ICsKPj4gKyNkZWZp bmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX0JSX1JJR0hUKHgpICAgKCh4KSA8PCAwKQo+PiAr I2RlZmluZSBISUJNQ19DUlRfQVVUT19DRU5URVJJTkdfQlJfUklHSFRfTUFTSyAweDdGRgo+PiAr Cj4+ICsvKiByZWdpc3RlciB0byBjb250cm9sIHBhbmVsIG91dHB1dCAqLwo+PiArI2RlZmluZSBE SVNQTEFZX0NPTlRST0xfSElTSUxFICAgICAgICAgICAgICAgICAweDgwMjg4Cj4+ICsKPj4gKyNk ZWZpbmUgSElCTUNfUkFXX0lOVEVSUlVQVCAgICAgICAgICAgICAgICAgICAgMHg4MDI5MAo+PiAr I2RlZmluZSBISUJNQ19SQVdfSU5URVJSVVBUX1ZCTEFOSyh4KSAgICAgICAgICAoKHgpIDw8IDIp Cj4+ICsjZGVmaW5lIEhJQk1DX1JBV19JTlRFUlJVUFRfVkJMQU5LX01BU0sgICAgICAgICAgICAg ICAgMHg0Cj4+ICsKPj4gKyNkZWZpbmUgSElCTUNfUkFXX0lOVEVSUlVQVF9FTiAgICAgICAgICAg ICAgICAgMHg4MDI5OAo+PiArI2RlZmluZSBISUJNQ19SQVdfSU5URVJSVVBUX0VOX1ZCTEFOSyh4 KSAgICAgICAoKHgpIDw8IDIpCj4+ICsjZGVmaW5lIEhJQk1DX1JBV19JTlRFUlJVUFRfRU5fVkJM QU5LX01BU0sgICAgIDB4NAo+PiArCj4+ICsvKiByZWdpc3RlciBhbmQgdmFsdWVzIGZvciBQTEwg Y29udHJvbCAqLwo+PiArI2RlZmluZSBDUlRfUExMMV9IUyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDgwMmE4Cj4+ICsjZGVmaW5lIENSVF9QTEwxX0hTXzI1TUhaICAgICAgICAgICAgICAg ICAgICAgIDB4MjNkNDBmMDIKPj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNfNDBNSFogICAgICAgICAg ICAgICAgICAgICAgMHgyMzk0MDgwMQo+PiArI2RlZmluZSBDUlRfUExMMV9IU182NU1IWiAgICAg ICAgICAgICAgICAgICAgICAweDIzOTQwZDAxCj4+ICsjZGVmaW5lIENSVF9QTEwxX0hTXzc4TUha ICAgICAgICAgICAgICAgICAgICAgIDB4MjM1NDBGODIKPj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNf NzRNSFogICAgICAgICAgICAgICAgICAgICAgMHgyMzk0MWRjMgo+PiArI2RlZmluZSBDUlRfUExM MV9IU184ME1IWiAgICAgICAgICAgICAgICAgICAgICAweDIzOTQxMDAxCj4+ICsjZGVmaW5lIENS VF9QTEwxX0hTXzgwTUhaXzExNTIgICAgICAgICAgICAgICAgIDB4MjM1NDBmYzIKPj4gKyNkZWZp bmUgQ1JUX1BMTDFfSFNfMTA4TUhaICAgICAgICAgICAgICAgICAgICAgMHgyM2I0MWIwMQo+PiAr I2RlZmluZSBDUlRfUExMMV9IU18xNjJNSFogICAgICAgICAgICAgICAgICAgICAweDIzNDgwNjgx Cj4+ICsjZGVmaW5lIENSVF9QTEwxX0hTXzE0OE1IWiAgICAgICAgICAgICAgICAgICAgIDB4MjM1 NDFkYzIKPj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNfMTkzTUhaICAgICAgICAgICAgICAgICAgICAg MHgyMzQ4MDdjMQo+PiArCj4+ICsjZGVmaW5lIENSVF9QTEwyX0hTICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4ODAyYWMKPj4gKyNkZWZpbmUgQ1JUX1BMTDJfSFNfMjVNSFogICAgICAgICAg ICAgICAgICAgICAgMHgyMDZCODUxRQo+PiArI2RlZmluZSBDUlRfUExMMl9IU180ME1IWiAgICAg ICAgICAgICAgICAgICAgICAweDMwMDAwMDAwCj4+ICsjZGVmaW5lIENSVF9QTEwyX0hTXzY1TUha ICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDAKPj4gKyNkZWZpbmUgQ1JUX1BMTDJfSFNf NzhNSFogICAgICAgICAgICAgICAgICAgICAgMHg1MEUxNDdBRQo+PiArI2RlZmluZSBDUlRfUExM Ml9IU183NE1IWiAgICAgICAgICAgICAgICAgICAgICAweDYwMkI2QUU3Cj4+ICsjZGVmaW5lIENS VF9QTEwyX0hTXzgwTUhaICAgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDAKPj4gKyNkZWZp bmUgQ1JUX1BMTDJfSFNfMTA4TUhaICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAo+PiAr I2RlZmluZSBDUlRfUExMMl9IU18xNjJNSFogICAgICAgICAgICAgICAgICAgICAweEEwMDAwMDAw Cj4+ICsjZGVmaW5lIENSVF9QTEwyX0hTXzE0OE1IWiAgICAgICAgICAgICAgICAgICAgIDB4QjBD Q0NDQ0QKPj4gKyNkZWZpbmUgQ1JUX1BMTDJfSFNfMTkzTUhaICAgICAgICAgICAgICAgICAgICAg MHhDMDg3MkIwMgo+PiArCj4+ICsvKiBHbG9iYWwgbWFjcm9zICovCj4+ICsjZGVmaW5lIFJHQihy LCBnLCBiKSBcCj4KPiBOb3QgdXNlZCBhbnl3aGVyZT8KCndpbGwgcmVtb3ZlIGl0IGluIG5leHQg dmVyc2lvbi4KCj4KPj4gKyggXAo+PiArICAgICAgICh1bnNpZ25lZCBsb25nKSgoKHIpIDw8IDE2 KSB8ICgoZykgPDwgOCkgfCAoYikpIFwKPj4gKykKPj4gKwo+PiArI2RlZmluZSBQQURESU5HKGFs aWduLCBkYXRhKSAoKChkYXRhKSArIChhbGlnbikgLSAxKSAmICh+KChhbGlnbikgLSAxKSkpCj4+ ICsKPgo+IFRoaXMgaXMgb25seSB1c2VkIGluIGhpYm1jX2RybV9kZS5jLCBtb3ZlIGl0IGluIHRo ZXJlLiBJdCBtaWdodCBhbHNvCj4gYmUgbmljZSB0byBtYWtlIGl0IGEgdHlwZS1jaGVja2VkIGZ1 bmN0aW9uIHdoaWxlIHlvdSdyZSBhdCBpdC4KCmFncmVlZCwgdGhhbmtzLgoKPgo+Cj4+ICsjZGVm aW5lIE1CKHgpICgoeCkgPDwgMjApCj4+ICsKPgo+IFRoaXMgaXMgb25seSB1c2VkIGluIDIgcGxh Y2VzLCBJIHRoaW5rIHlvdSBjYW4ganVzdCBoYXJkY29kZSB0aGUgdmFsdWUKPiBpbiB0aGVpciBy ZXNwZWN0aXZlICNkZWZpbmVzCgphZ3JlZWQsIHRoYW5rcy4KClJlZ2FyZHMsClJvbmdyb25nLgoK Pgo+PiArI2VuZGlmCj4+IC0tCj4+IDEuOS4xCj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0Cj4+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+PiBodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGxpbnV4YXJtIG1h aWxpbmcgbGlzdAo+IGxpbnV4YXJtQGh1YXdlaS5jb20KPiBodHRwOi8vcm5kLW9wZW5ldWxlci5o dWF3ZWkuY29tL21haWxtYW4vbGlzdGluZm8vbGludXhhcm0KPgo+IC4KPgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=