From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: Re: [PATCH v3 1/3] drm: Add live source object Date: Tue, 31 Jan 2017 15:41:57 +0000 Message-ID: <20170131154156.GC11506@e106950-lin.cambridge.arm.com> References: <1542778.dcWpka5Jpx@wasted.cogentembedded.com> <2140645.srHrqXCQUP@wasted.cogentembedded.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 2131C6E604 for ; Tue, 31 Jan 2017 15:42:00 +0000 (UTC) Content-Disposition: inline In-Reply-To: <2140645.srHrqXCQUP@wasted.cogentembedded.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sergei Shtylyov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, laurent.pinchart@ideasonboard.com, daniel.vetter@intel.com List-Id: dri-devel@lists.freedesktop.org SGkgU2VyZ2VpLAoKSSB3YXNuJ3QgYXJvdW5kIHRvIHNlZSB2MS92MiBidXQgSSd2ZSB0YWtlbiBh IHF1aWNrIGxvb2sgaW4gdGhlCmFyY2hpdmVzLgoKQXMgY29udGV4dCBmb3IgbXkgY29tbWVudHMg YmVsb3csIEknbSBrZWVuIHRvIHB1c2ggZm9yIHNvbWV0aGluZyB3aGljaApjYW4gYmUgcmV1c2Vk IGZvciBsaXZlLXNpbmtzLCBzbyB0aGF0IHdlIGNhbiBob29rIGEgd3JpdGViYWNrCmNvbm5lY3Rv ciAod2hlbiBJIGxhbmQgdGhhdCkgaW50byBhIHY0bDIgZGV2aWNlIGZvciB2aWRlbyBjYXB0dXJl LgoKSW4gdGhhdCBjYXNlLCBpdCdzIG5vdCBhIGRpcmVjdCBoYXJkd2FyZSBjb25uZWN0aW9uLCBh cyB0aGUgd3JpdGViYWNrCmNvbm5lY3RvciBpcyBzdGlsbCBoaXR0aW5nIG1lbW9yeSAtIGJ1dCBp dCBpcyBhIGRpcmVjdCBzdHJlYW1pbmcgbGluawpiZXR3ZWVuIHR3byBkaWZmZXJlbnQga2VybmVs IGRldmljZXMuIEkgZG9uJ3QgdGhpbmsgbGl2ZS1zb3VyY2VzIChhbmQKc2lua3MpIHNob3VsZCBi ZSBsaW1pdGVkIHRvIGNhc2VzIHdoZXJlIG5vIG1lbW9yeSBidWZmZXIgaXMgaW52b2x2ZWQuClRo ZXJlIGNvdWxkIGJlIGNhc2VzIHdoZXJlIGEgdmlkZW8gZW5jb2Rlci9kZWNvZGVyIGlzIHRpZ2h0 bHkgY291cGxlZAp3aXRoIGEgZGlzcGxheSBlbmdpbmUsIGFuZCBpcyBhYmxlIHRvIHN0cmVhbSB3 aXRob3V0IHVzZXJzcGFjZQppbnZvbHZlbWVudCBidXQgc3RpbGwgZ28gdmlhIGEgbWVtb3J5IGJ1 ZmZlci4KCldpdGggd3JpdGViYWNrIGluIG1pbmQgKGFuZCBJIHRoaW5rIEknbSBlY2hvaW5nIG9u ZSBvZiBEYW5pZWwncwpjb21tZW50cyBmcm9tIHYyKSwgc29tZSBzaW1wbGUgcmVuYW1pbmcgdG8g cmVwbGFjZSAic291cmNlIiB3aXRoCnNvbWV0aGluZyB0aGF0IHN1aXRzIGJvdGggc291cmNlcyBh bmQgc2lua3Mgd291bGQgYmUgZ29vZCBJTU8uCgpJIGFsc28gdGhpbmsgaXQncyBwcmV0dHkgaGFy ZCB0byByZXZpZXcgdGhpcyBwcm9wZXJseSB3aXRob3V0IHNlZWluZwp0aGUgdjRsMiBzaWRlIGFz LXdlbGwuIERvZXMgdGhhdCBleGlzdCBzb21ld2hlcmU/IERlZmluaXRlbHkgYXMgYQptaW5pbXVt IHRoZXJlIG5lZWRzIHRvIGJlIGFuIGVzdGFibGlzaGVkIHdheSBmb3IgdXNlcnNwYWNlIHRvIG1h cCBhCkRSTSBsaXZlLXNvdXJjZSBvYmplY3QgdG8gYSB2NGwyIGRldmljZS4gSSBndWVzcyB0aGVy ZSdzIGFsc28gc29tZQppbnRlcmNvbW11bmljYXRpb24gbmVlZGVkIHRvIGFncmVlIG9uIHNpemVz LCBmb3JtYXRzIGV0Yy4gSSBkb24ndCBrbm93CmhvdyBtdWNoIG9mIHRoYXQgY2FuIGJlIGdlbmVy aWMsIGJ1dCBsZWF2aW5nIGl0IGVudGlyZWx5IHVwIHRvIGRyaXZlcnMKd2l0aG91dCBhbnkgZXhh bXBsZXMvaGVscGVycyBzb3VuZHMgbGlrZSBhIHJlY2lwZSBmb3IgbG90cyBvZgpzaW1pbGFyLWJ1 dC1pbmNvbXBhdGlibGUgaW50ZXJmYWNlcy4KCldoYXQncyB0aGUgZXhwZWN0ZWQgc2VxdWVuY2Ug b2Ygc2V0dGluZyB1cCBhIHY0bDIgZGV2aWNlICsgbGl2ZQpzb3VyY2U/IFNvbWV0aGluZyBsaWtl Li4uPwoKMSkgVklESU9DX1NfRk1UIGV0YwoyKSBEUk1fSU9DVExfTU9ERV9BRERGQjIKMykgVklE SU9DX1NUUkVBTU9OCjQpIERSTV9JT0NUTF9NT0RFX0FUT01JQwoKVGhlIHNlcXVlbmNlIGFib3Zl IHdvdWxkIGltcGx5IHRoYXQgdGhlIHY0bDIgZGV2aWNlIGdldHMgY29uZmlndXJlZApmaXJzdCwg YW5kIHRoZW4gQURERkIyIG11c3QgdXNlIHNldHRpbmdzIHdoaWNoIGFncmVlLiBBbiBhbHRlcm5h dGl2ZQp3b3VsZCBiZSB0byBjYWxsIEFEREZCMiBmaXJzdCB0byAibG9jayIgdGhlIHBhcmFtZXRl cnMgb2YgdGhlIHY0bDIKZGV2aWNlLCBzbyBzdWJzZXF1ZW50IGNhbGxzIHRvIFZJRElPQ19HX0ZN VCwgVklESU9DX0VOVU1fRlJBTVNJWkVTIGV0Ywp3b3VsZCBvbmx5IHJldHVybiB0aGUgc2FtZSB2 YWx1ZXMgYXMgdXNlZCB0byBjcmVhdGUgdGhlIGxpdmUgZmIgLSB0aGF0CnNvdW5kcyBuZWF0ZXIg dG8gbWUuIEFueXdheSBJIHRoaW5rIHRoaXMgaXMgc29tZXRoaW5nIHRoYXQgbmVlZHMgdG8gYmUK ZmlndXJlZCBvdXQgYW5kIGRvY3VtZW50ZWQgYXMgcGFydCBvZiB0aGlzIGltcGxlbWVudGF0aW9u LgoKU29tZSBtb3JlIGNvbW1lbnRzIGlubGluZS4KCk9uIFRodSwgSmFuIDI2LCAyMDE3IGF0IDEy OjM1OjMwQU0gKzAzMDAsIFNlcmdlaSBTaHR5bHlvdiB3cm90ZToKPkZyb206IExhdXJlbnQgUGlu Y2hhcnQgPGxhdXJlbnQucGluY2hhcnQrcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgo+Cj5MaXZl IHNvdXJjZXMgcmVwcmVzZW50IGEgaGFyZHdhcmUgY29ubmVjdGlvbiBiZXR3ZWVuIGEgdmlkZW8g c3RyZWFtCj5zb3VyY2UgYW5kIGEgQ1JUQywgZ29pbmcgdGhyb3VnaCBhIHBsYW5lLiBUaGUga2Vy bmVsIEFQSSBsZXRzIGRyaXZlcgo+cmVnaXN0ZXIgbGl2ZSBzb3VyY2VzLCBhbmQgdGhlIHVzZXJz cGFjZSBBUEkgbGV0cyBhcHBsaWNhdGlvbnMgZW51bWVyYXRlCj50aGVtLgo+Cj5bU2VyZ2VpOiBw b3J0ZWQgdG8gdGhlIG1vZGVybiBrZXJuZWwuXQo+Cj5TaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBp bmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0K3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4KPlNpZ25l ZC1vZmYtYnk6IFNlcmdlaSBTaHR5bHlvdiA8c2VyZ2VpLnNodHlseW92QGNvZ2VudGVtYmVkZGVk LmNvbT4KPgo+LS0tCj5DaGFuZ2VzIGluIHZlcnNpb24gMzoKPi0gbW92ZWQgZHJtX2xpdmVfc291 cmNlX3tpbml0fGNsZWFudXB9KCkgZnJvbSBkcm1fY3J0Yy5jIHRvIGRybV9wbGFuZS5jIGFuZAo+ ICB0aGVpciBwcm90b3R5cGVzIGZyb20gPGRybS9kcm1fY3J0Yy5oPiB0byA8ZHJtL2RybV9wbGFu ZS5oPiAoYWxvbmcgd2l0aAo+ICAqc3RydWN0KiBkcm1fbGl2ZV9zb3VyY2VbX2Z1bmNzXSk7Cj4t IG1vdmVkIGRybV9tb2RlX2dldHNvdXJjZVtfcmVzXSgpIHByb3RvdHlwZXMgZnJvbSA8ZHJtL2Ry bV9jcnRjLmg+IHRvCj4gIGRybV9jcnRjX2ludGVybmFsLmg7Cj4tIHVwZGF0ZWQgdGhlIGlvY3Rs KCkgbnVtYmVyczsKPi0gZ2VuZXJhbGx5IGZvbGxvd2VkIHRoZSB1cHN0cmVhbSBzb3VyY2UgY29k ZSBtb3ZlczsKPi0gYWRkZWQgbXkgc2lnbm9mZi4KPgo+IGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Yy5jICAgICAgICAgIHwgICA5MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaCB8ICAgIDQgKwo+IGRyaXZlcnMv Z3B1L2RybS9kcm1faW9jdGwuYyAgICAgICAgIHwgICAgMgo+IGRyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZV9jb25maWcuYyAgIHwgICAgNyArKwo+IGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAg ICAgICAgIHwgICA2MiArKysrKysrKysrKysrKysrKysrKysrKysKPiBpbmNsdWRlL2RybS9kcm1f bW9kZV9jb25maWcuaCAgICAgICB8ICAgIDIKPiBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAg ICAgICAgICB8ICAgMjkgKysrKysrKysrKysKPiBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAgICAg ICAgICAgICB8ICAgIDMgKwo+IGluY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCAgICAgICAgIHwg ICAxNyArKysrKysKPiA5IGZpbGVzIGNoYW5nZWQsIDIxOSBpbnNlcnRpb25zKCspCj4KPkluZGV4 OiBsaW51eC9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGxpbnV4 Lm9yaWcvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPisrKyBsaW51eC9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYwo+QEAgLTQxNSw2ICs0MTUsOTkgQEAgaW50IGRybV9tb2RlX2dldGNydGMo c3RydWN0IGRybV9kZXZpY2UgKgo+IH0KPgo+IC8qKgo+KyAqIGRybV9tb2RlX2dldHNvdXJjZV9y ZXMgLSBnZXQgbGl2ZSBzb3VyY2UgaW5mbwo+KyAqIEBkZXY6IERSTSBkZXZpY2UKPisgKiBAZGF0 YTogaW9jdGwgZGF0YQo+KyAqIEBmaWxlX3ByaXY6IERSTSBmaWxlIGluZm8KPisgKgo+KyAqIFJl dHVybiBhIGxpdmUgc291cmNlIGFuZCBzZXQgb2YgSURzLgo+KyAqLwo+K2ludCBkcm1fbW9kZV9n ZXRzb3VyY2VfcmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4rCQkJICAg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4rewo+KwlzdHJ1Y3QgZHJtX21vZGVfZ2V0X2xp dmVfc291cmNlX3JlcyAqc3JjX3Jlc3AgPSBkYXRhOwo+KwlzdHJ1Y3QgZHJtX21vZGVfY29uZmln ICpjb25maWc7Cj4rCXN0cnVjdCBkcm1fbGl2ZV9zb3VyY2UgKnNyYzsKPisJdWludDMyX3QgX191 c2VyICpzcmNfcHRyOwo+KwlpbnQgY29waWVkID0gMCwgcmV0ID0gMDsKPisKPisJaWYgKCFkcm1f Y29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpKQo+KwkJcmV0dXJuIC1FSU5W QUw7Cj4rCj4rCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Cj4rCWNvbmZpZyA9ICZkZXYtPm1v ZGVfY29uZmlnOwo+Kwo+KwkvKgo+KwkgKiBUaGlzIGlvY3RsIGlzIGNhbGxlZCB0d2ljZSwgb25j ZSB0byBkZXRlcm1pbmUgaG93IG11Y2ggc3BhY2UgaXMKPisJICogbmVlZGVkLCBhbmQgdGhlIDJu ZCB0aW1lIHRvIGZpbGwgaXQuCj4rCSAqLwo+KwlpZiAoY29uZmlnLT5udW1fbGl2ZV9zb3VyY2Ug JiYKPisJICAgIChzcmNfcmVzcC0+Y291bnRfc291cmNlcyA+PSBjb25maWctPm51bV9saXZlX3Nv dXJjZSkpIHsKPisJCXNyY19wdHIgPSAodWludDMyX3QgX191c2VyICopKHVuc2lnbmVkIGxvbmcp c3JjX3Jlc3AtPnNvdXJjZV9pZF9wdHI7Cj4rCj4rCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNyYywg JmNvbmZpZy0+bGl2ZV9zb3VyY2VfbGlzdCwgaGVhZCkgewo+KwkJCWlmIChwdXRfdXNlcihzcmMt PmJhc2UuaWQsIHNyY19wdHIgKyBjb3BpZWQpKSB7Cj4rCQkJCXJldCA9IC1FRkFVTFQ7Cj4rCQkJ CWdvdG8gb3V0Owo+KwkJCX0KPisJCQljb3BpZWQrKzsKPisJCX0KPisJfQo+KwlzcmNfcmVzcC0+ Y291bnRfc291cmNlcyA9IGNvbmZpZy0+bnVtX2xpdmVfc291cmNlOwo+Kwo+K291dDoKPisJZHJt X21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwo+KwlyZXR1cm4gcmV0Owo+K30KPisKPisvKioKPisg KiBkcm1fbW9kZV9nZXRzb3VyY2UgLSBnZXQgbGl2ZSBzb3VyY2UgaW5mbwo+KyAqIEBkZXY6IERS TSBkZXZpY2UKPisgKiBAZGF0YTogaW9jdGwgZGF0YQo+KyAqIEBmaWxlX3ByaXY6IERSTSBmaWxl IGluZm8KPisgKgo+KyAqIFJldHVybiBsaXZlIHNvdXJjZSBpbmZvLCBpbmNsdWRpbmcgZm9ybWF0 cyBzdXBwb3J0ZWQsIC4uLgo+KyAqLwo+K2ludCBkcm1fbW9kZV9nZXRzb3VyY2Uoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdikKPit7Cj4rCXN0cnVjdCBkcm1fbW9kZV9nZXRfbGl2ZV9zb3VyY2UgKnNyY19yZXNw ID0gZGF0YTsKPisJc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqOwo+KwlzdHJ1Y3QgZHJtX2xp dmVfc291cmNlICpzcmM7Cj4rCj4rCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERS SVZFUl9NT0RFU0VUKSkKPisJCXJldHVybiAtRUlOVkFMOwo+Kwo+KwlvYmogPSBkcm1fbW9kZV9v YmplY3RfZmluZChkZXYsIHNyY19yZXNwLT5zb3VyY2VfaWQsCj4rCQkJCSAgIERSTV9NT0RFX09C SkVDVF9MSVZFX1NPVVJDRSk7Cj4rCWlmICghb2JqKQo+KwkJcmV0dXJuIC1FTk9FTlQ7Cj4rCXNy YyA9IG9ial90b19saXZlX3NvdXJjZShvYmopOwo+Kwo+KwlzcmNfcmVzcC0+c291cmNlX2lkID0g c3JjLT5iYXNlLmlkOwo+KwlzdHJsY3B5KHNyY19yZXNwLT5uYW1lLCBzcmMtPm5hbWUsIERSTV9T T1VSQ0VfTkFNRV9MRU4pOwo+KwlzcmNfcmVzcC0+cG9zc2libGVfcGxhbmVzID0gc3JjLT5wb3Nz aWJsZV9wbGFuZXM7Cj4rCj4rCS8qCj4rCSAqIFRoaXMgaW9jdGwgaXMgY2FsbGVkIHR3aWNlLCBv bmNlIHRvIGRldGVybWluZSBob3cgbXVjaCBzcGFjZSBpcwo+KwkgKiBuZWVkZWQsIGFuZCB0aGUg Mm5kIHRpbWUgdG8gZmlsbCBpdC4KPisJICovCj4rCWlmIChzcmMtPmZvcm1hdF9jb3VudCAmJgo+ KwkgICAgKHNyY19yZXNwLT5jb3VudF9mb3JtYXRfdHlwZXMgPj0gc3JjLT5mb3JtYXRfY291bnQp KSB7Cj4rCQl1aW50MzJfdCBfX3VzZXIgKmZvcm1hdF9wdHI7Cj4rCj4rCQlmb3JtYXRfcHRyID0g KHVpbnQzMl90IF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKXNyY19yZXNwLT5mb3JtYXRfdHlwZV9w dHI7Cj4rCQlpZiAoY29weV90b191c2VyKGZvcm1hdF9wdHIsIHNyYy0+Zm9ybWF0X3R5cGVzLAo+ KwkJCQkgc2l6ZW9mKHVpbnQzMl90KSAqIHNyYy0+Zm9ybWF0X2NvdW50KSkgewo+KwkJCXJldHVy biAtRUZBVUxUOwo+KwkJfQo+Kwl9Cj4rCXNyY19yZXNwLT5jb3VudF9mb3JtYXRfdHlwZXMgPSBz cmMtPmZvcm1hdF9jb3VudDsKPisKPisJcmV0dXJuIDA7Cj4rfQo+Kwo+Ky8qKgo+ICAqIGRybV9t b2RlX3NldF9jb25maWdfaW50ZXJuYWwgLSBoZWxwZXIgdG8gY2FsbCAtPnNldF9jb25maWcKPiAg KiBAc2V0OiBtb2Rlc2V0IGNvbmZpZyB0byBzZXQKPiAgKgo+SW5kZXg6IGxpbnV4L2RyaXZlcnMv Z3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gbGludXgub3JpZy9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAo+KysrIGxpbnV4L2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCj5AQCAtNTAsNiArNTAsMTAgQEAgaW50IGRybV9tb2Rl X2dldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKgo+IAkJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gaW50IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAJCSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpOwo+K2ludCBkcm1fbW9kZV9nZXRzb3VyY2VfcmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCj4rCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+K2ludCBk cm1fbW9kZV9nZXRzb3VyY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPisJ CSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4KPgo+IC8qIGRybV9tb2RlX2Nv bmZpZy5jICovCj5JbmRleDogbGludXgvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj49PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Cj4tLS0gbGludXgub3JpZy9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPisrKyBs aW51eC9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPkBAIC02MTIsMTAgKzYxMiwxMiBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pCj4gCURSTV9JT0NUTF9ERUYo RFJNX0lPQ1RMX1BSSU1FX0ZEX1RPX0hBTkRMRSwgZHJtX3ByaW1lX2ZkX3RvX2hhbmRsZV9pb2N0 bCwgRFJNX0FVVEh8RFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAo+Cj4gCURSTV9JT0NU TF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUExBTkVSRVNPVVJDRVMsIGRybV9tb2RlX2dldHBsYW5l X3JlcywgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPisJRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfTU9ERV9HRVRTT1VSQ0VSRVNPVVJDRVMsIGRybV9tb2RlX2dldHNvdXJjZV9yZXMs IERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCj4gCURSTV9JT0NUTF9ERUYoRFJNX0lP Q1RMX01PREVfR0VUQ1JUQywgZHJtX21vZGVfZ2V0Y3J0YywgRFJNX0NPTlRST0xfQUxMT1d8RFJN X1VOTE9DS0VEKSwKPiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9TRVRDUlRDLCBkcm1f bW9kZV9zZXRjcnRjLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCks Cj4gCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUExBTkUsIGRybV9tb2RlX2dldHBs YW5lLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+IAlEUk1fSU9DVExfREVGKERS TV9JT0NUTF9NT0RFX1NFVFBMQU5FLCBkcm1fbW9kZV9zZXRwbGFuZSwgRFJNX01BU1RFUnxEUk1f Q09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+KwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9N T0RFX0dFVFNPVVJDRSwgZHJtX21vZGVfZ2V0c291cmNlLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1f VU5MT0NLRUQpLAo+IAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NVUlNPUiwgZHJtX21v ZGVfY3Vyc29yX2lvY3RsLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tF RCksCj4gCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUR0FNTUEsIGRybV9tb2RlX2dh bW1hX2dldF9pb2N0bCwgRFJNX1VOTE9DS0VEKSwKPiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf TU9ERV9TRVRHQU1NQSwgZHJtX21vZGVfZ2FtbWFfc2V0X2lvY3RsLCBEUk1fTUFTVEVSfERSTV9V TkxPQ0tFRCksCj5JbmRleDogbGludXgvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5j Cj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Cj4tLS0gbGludXgub3JpZy9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29u ZmlnLmMKPisrKyBsaW51eC9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKPkBAIC0z NjYsNiArMzY2LDcgQEAgdm9pZCBkcm1fbW9kZV9jb25maWdfaW5pdChzdHJ1Y3QgZHJtX2Rldgo+ IAlJTklUX0xJU1RfSEVBRCgmZGV2LT5tb2RlX2NvbmZpZy5wcm9wZXJ0eV9saXN0KTsKPiAJSU5J VF9MSVNUX0hFQUQoJmRldi0+bW9kZV9jb25maWcucHJvcGVydHlfYmxvYl9saXN0KTsKPiAJSU5J VF9MSVNUX0hFQUQoJmRldi0+bW9kZV9jb25maWcucGxhbmVfbGlzdCk7Cj4rCUlOSVRfTElTVF9I RUFEKCZkZXYtPm1vZGVfY29uZmlnLmxpdmVfc291cmNlX2xpc3QpOwo+IAlpZHJfaW5pdCgmZGV2 LT5tb2RlX2NvbmZpZy5jcnRjX2lkcik7Cj4gCWlkcl9pbml0KCZkZXYtPm1vZGVfY29uZmlnLnRp bGVfaWRyKTsKPiAJaWRhX2luaXQoJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2lkYSk7Cj5A QCAtNDA2LDYgKzQwNyw3IEBAIHZvaWQgZHJtX21vZGVfY29uZmlnX2NsZWFudXAoc3RydWN0IGRy bV8KPiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksICpwdDsKPiAJc3RydWN0IGRybV9w cm9wZXJ0eV9ibG9iICpibG9iLCAqYnQ7Cj4gCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCAqcGx0 Owo+KwlzdHJ1Y3QgZHJtX2xpdmVfc291cmNlICpzcmMsICpwc3JjOwo+Cj4gCWxpc3RfZm9yX2Vh Y2hfZW50cnlfc2FmZShlbmNvZGVyLCBlbmN0LCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xp c3QsCj4gCQkJCSBoZWFkKSB7Cj5AQCAtNDMzLDYgKzQzNSwxMSBAQCB2b2lkIGRybV9tb2RlX2Nv bmZpZ19jbGVhbnVwKHN0cnVjdCBkcm1fCj4gCQlwbGFuZS0+ZnVuY3MtPmRlc3Ryb3kocGxhbmUp Owo+IAl9Cj4KPisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNyYywgcHNyYywgJmRldi0+bW9k ZV9jb25maWcubGl2ZV9zb3VyY2VfbGlzdCwKPisJCQkJIGhlYWQpIHsKPisJCXNyYy0+ZnVuY3Mt PmRlc3Ryb3koc3JjKTsKPisJfQo+Kwo+IAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY3J0Yywg Y3QsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkgewo+IAkJY3J0Yy0+ZnVuY3Mt PmRlc3Ryb3koY3J0Yyk7Cj4gCX0KPkluZGV4OiBsaW51eC9kcml2ZXJzL2dwdS9kcm0vZHJtX3Bs YW5lLmMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KPi0tLSBsaW51eC5vcmlnL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxh bmUuYwo+KysrIGxpbnV4L2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+QEAgLTI0OCw2ICsy NDgsNjggQEAgdm9pZCBkcm1fcGxhbmVfY2xlYW51cChzdHJ1Y3QgZHJtX3BsYW5lCj4gfQo+IEVY UE9SVF9TWU1CT0woZHJtX3BsYW5lX2NsZWFudXApOwo+Cj4raW50IGRybV9saXZlX3NvdXJjZV9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbGl2ZV9zb3VyY2UgKnNyYywK PisJCQkgY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyBwb3NzaWJsZV9wbGFuZXMsCj4r CQkJIGNvbnN0IHVpbnQzMl90ICpmb3JtYXRzLCB1aW50MzJfdCBmb3JtYXRfY291bnQsCj4rCQkJ IGNvbnN0IHN0cnVjdCBkcm1fbGl2ZV9zb3VyY2VfZnVuY3MgKmZ1bmNzKQo+K3sKPisJdW5zaWdu ZWQgaW50IGk7Cj4rCWludCByZXQ7Cj4rCj4rCS8qIE11bHRpLXBsYW5hciBsaXZlIHNvdXJjZXMg YXJlIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdy4gKi8KPisJZm9yIChpID0gMDsgaSA8IGZvcm1hdF9j b3VudDsgKytpKSB7Cj4rCQlpZiAoZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZvcm1hdHNbaV0pICE9 IDEpIHsKPisJCQlEUk1fREVCVUdfS01TKCJtdWx0aXBsYW5hciBsaXZlIHNvdXJjZXMgdW5zdXBw b3J0ZWRcbiIpOwo+KwkJCXJldHVybiAtRUlOVkFMOwo+KwkJfQo+Kwl9Cj4rCj4rCWRybV9tb2Rl c2V0X2xvY2tfYWxsKGRldik7Cj4rCj4rCXJldCA9IGRybV9tb2RlX29iamVjdF9nZXQoZGV2LCAm c3JjLT5iYXNlLCBEUk1fTU9ERV9PQkpFQ1RfTElWRV9TT1VSQ0UpOwo+KwlpZiAocmV0KQo+KwkJ Z290byBvdXQ7Cj4rCj4rCXNyYy0+ZGV2ID0gZGV2Owo+KwlzcmMtPmZ1bmNzID0gZnVuY3M7Cj4r CWlmIChuYW1lKQo+KwkJc3RybGNweShzcmMtPm5hbWUsIG5hbWUsIERSTV9TT1VSQ0VfTkFNRV9M RU4pOwo+KwlzcmMtPnBvc3NpYmxlX3BsYW5lcyA9IHBvc3NpYmxlX3BsYW5lczsKPisKPisJc3Jj LT5mb3JtYXRfdHlwZXMgPSBrbWFsbG9jX2FycmF5KGZvcm1hdF9jb3VudCwKPisJCQkJCSAgc2l6 ZW9mKCpzcmMtPmZvcm1hdF90eXBlcyksCj4rCQkJCQkgIEdGUF9LRVJORUwpOwo+KwlpZiAoIXNy Yy0+Zm9ybWF0X3R5cGVzKSB7Cj4rCQlEUk1fREVCVUdfS01TKCJvdXQgb2YgbWVtb3J5IHdoZW4g YWxsb2NhdGluZyBzb3VyY2UgZm9yYW10c1xuIik7Cj4rCQlyZXQgPSAtRU5PTUVNOwo+KwkJZ290 byBvdXQ7Cj4rCX0KPisKPisJbWVtY3B5KHNyYy0+Zm9ybWF0X3R5cGVzLCBmb3JtYXRzLAo+Kwkg ICAgICAgZm9ybWF0X2NvdW50ICogc2l6ZW9mKCpzcmMtPmZvcm1hdF90eXBlcykpOwo+KwlzcmMt PmZvcm1hdF9jb3VudCA9IGZvcm1hdF9jb3VudDsKPisKPisJbGlzdF9hZGRfdGFpbCgmc3JjLT5o ZWFkLCAmZGV2LT5tb2RlX2NvbmZpZy5saXZlX3NvdXJjZV9saXN0KTsKPisJZGV2LT5tb2RlX2Nv bmZpZy5udW1fbGl2ZV9zb3VyY2UrKzsKPisKPisgb3V0Ogo+Kwlkcm1fbW9kZXNldF91bmxvY2tf YWxsKGRldik7Cj4rCj4rCXJldHVybiByZXQ7Cj4rfQo+K0VYUE9SVF9TWU1CT0woZHJtX2xpdmVf c291cmNlX2luaXQpOwo+Kwo+K3ZvaWQgZHJtX2xpdmVfc291cmNlX2NsZWFudXAoc3RydWN0IGRy bV9saXZlX3NvdXJjZSAqc3JjKQo+K3sKPisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHNyYy0+ ZGV2Owo+Kwo+Kwlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwo+KwlsaXN0X2RlbCgmc3JjLT5o ZWFkKTsKPisJZGV2LT5tb2RlX2NvbmZpZy5udW1fbGl2ZV9zb3VyY2UtLTsKPisJZHJtX21vZGVz ZXRfdW5sb2NrX2FsbChkZXYpOwo+K30KPitFWFBPUlRfU1lNQk9MKGRybV9saXZlX3NvdXJjZV9j bGVhbnVwKTsKPisKPiAvKioKPiAgKiBkcm1fcGxhbmVfZnJvbV9pbmRleCAtIGZpbmQgdGhlIHJl Z2lzdGVyZWQgcGxhbmUgYXQgYW4gaW5kZXgKPiAgKiBAZGV2OiBEUk0gZGV2aWNlCj5JbmRleDog bGludXgvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBsaW51 eC5vcmlnL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4rKysgbGludXgvaW5jbHVkZS9k cm0vZHJtX21vZGVfY29uZmlnLmgKPkBAIC0zOTYsNiArMzk2LDggQEAgc3RydWN0IGRybV9tb2Rl X2NvbmZpZyB7Cj4gCWludCBudW1fb3ZlcmxheV9wbGFuZTsKPiAJaW50IG51bV90b3RhbF9wbGFu ZTsKPiAJc3RydWN0IGxpc3RfaGVhZCBwbGFuZV9saXN0Owo+KwlpbnQgbnVtX2xpdmVfc291cmNl Owo+KwlzdHJ1Y3QgbGlzdF9oZWFkIGxpdmVfc291cmNlX2xpc3Q7Cj4KPiAJaW50IG51bV9jcnRj Owo+IAlzdHJ1Y3QgbGlzdF9oZWFkIGNydGNfbGlzdDsKPkluZGV4OiBsaW51eC9pbmNsdWRlL2Ry bS9kcm1fcGxhbmUuaAo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGxpbnV4Lm9yaWcvaW5jbHVkZS9kcm0vZHJt X3BsYW5lLmgKPisrKyBsaW51eC9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+QEAgLTI5LDYgKzI5 LDcgQEAKPgo+IHN0cnVjdCBkcm1fY3J0YzsKPiBzdHJ1Y3QgZHJtX3ByaW50ZXI7Cj4rc3RydWN0 IGRybV9saXZlX3NvdXJjZTsKPgo+IC8qKgo+ICAqIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgLSBt dXRhYmxlIHBsYW5lIHN0YXRlCj5AQCAtNTI3LDYgKzUyOCwzNCBAQCBleHRlcm4gaW50IGRybV9w bGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2Cj4gCQkJICBib29sIGlzX3ByaW1hcnkpOwo+IGV4dGVy biB2b2lkIGRybV9wbGFuZV9jbGVhbnVwKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKPgo+K3N0 cnVjdCBkcm1fbGl2ZV9zb3VyY2VfZnVuY3Mgewo+Kwl2b2lkICgqZGVzdHJveSkoc3RydWN0IGRy bV9saXZlX3NvdXJjZSAqc3JjKTsKPit9Owo+Kwo+K3N0cnVjdCBkcm1fbGl2ZV9zb3VyY2Ugewo+ KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+KwlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7Cj4rCj4r CXN0cnVjdCBkcm1fbW9kZV9vYmplY3QgYmFzZTsKPisKPisJY2hhciBuYW1lW0RSTV9TT1VSQ0Vf TkFNRV9MRU5dOwo+Kwo+Kwl1aW50MzJfdCBwb3NzaWJsZV9wbGFuZXM7Cj4rCXVpbnQzMl90ICpm b3JtYXRfdHlwZXM7Cj4rCXVpbnQzMl90IGZvcm1hdF9jb3VudDsKPisKPisJY29uc3Qgc3RydWN0 IGRybV9saXZlX3NvdXJjZV9mdW5jcyAqZnVuY3M7Cj4rfTsKPisKPisjZGVmaW5lIG9ial90b19s aXZlX3NvdXJjZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGRybV9saXZlX3NvdXJjZSwgYmFz ZSkKPisKPitleHRlcm4gaW50IGRybV9saXZlX3NvdXJjZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4rCQkJCXN0cnVjdCBkcm1fbGl2ZV9zb3VyY2UgKnNyYywgY29uc3QgY2hhciAqbmFt ZSwKPisJCQkJdW5zaWduZWQgbG9uZyBwb3NzaWJsZV9wbGFuZXMsCj4rCQkJCWNvbnN0IHVpbnQz Ml90ICpmb3JtYXRzLCB1aW50MzJfdCBmb3JtYXRfY291bnQsCj4rCQkJCWNvbnN0IHN0cnVjdCBk cm1fbGl2ZV9zb3VyY2VfZnVuY3MgKmZ1bmNzKTsKPitleHRlcm4gdm9pZCBkcm1fbGl2ZV9zb3Vy Y2VfY2xlYW51cChzdHJ1Y3QgZHJtX2xpdmVfc291cmNlICpzcmMpOwo+Kwo+IC8qKgo+ICAqIGRy bV9wbGFuZV9pbmRleCAtIGZpbmQgdGhlIGluZGV4IG9mIGEgcmVnaXN0ZXJlZCBwbGFuZQo+ICAq IEBwbGFuZTogcGxhbmUgdG8gZmluZCBpbmRleCBmb3IKPkluZGV4OiBsaW51eC9pbmNsdWRlL3Vh cGkvZHJtL2RybS5oCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gbGludXgub3JpZy9pbmNsdWRlL3VhcGkvZHJt L2RybS5oCj4rKysgbGludXgvaW5jbHVkZS91YXBpL2RybS9kcm0uaAo+QEAgLTgxNCw2ICs4MTQs OSBAQCBleHRlcm4gIkMiIHsKPiAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0NSRUFURVBST1BCTE9C CURSTV9JT1dSKDB4QkQsIHN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfYmxvYikKPiAjZGVmaW5lIERS TV9JT0NUTF9NT0RFX0RFU1RST1lQUk9QQkxPQglEUk1fSU9XUigweEJFLCBzdHJ1Y3QgZHJtX21v ZGVfZGVzdHJveV9ibG9iKQo+Cj4rI2RlZmluZSBEUk1fSU9DVExfTU9ERV9HRVRTT1VSQ0VSRVNP VVJDRVMgRFJNX0lPV1IoMHhCRiwgc3RydWN0IGRybV9tb2RlX2dldF9saXZlX3NvdXJjZV9yZXMp Cj4rI2RlZmluZSBEUk1fSU9DVExfTU9ERV9HRVRTT1VSQ0UJRFJNX0lPV1IoMHhDMCwgc3RydWN0 IGRybV9tb2RlX2dldF9saXZlX3NvdXJjZSkKPisKPiAvKioKPiAgKiBEZXZpY2Ugc3BlY2lmaWMg aW9jdGxzIHNob3VsZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycwo+ICAqIFRo ZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMgZnJvbSAweDQwIHRvIDB4OWYuCj5JbmRl eDogbGludXgvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gbGlu dXgub3JpZy9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPisrKyBsaW51eC9pbmNsdWRlL3Vh cGkvZHJtL2RybV9tb2RlLmgKPkBAIC0zNyw2ICszNyw3IEBAIGV4dGVybiAiQyIgewo+ICNkZWZp bmUgRFJNX0NPTk5FQ1RPUl9OQU1FX0xFTgkzMgo+ICNkZWZpbmUgRFJNX0RJU1BMQVlfTU9ERV9M RU4JMzIKPiAjZGVmaW5lIERSTV9QUk9QX05BTUVfTEVOCTMyCj4rI2RlZmluZSBEUk1fU09VUkNF X05BTUVfTEVOCTMyCj4KPiAjZGVmaW5lIERSTV9NT0RFX1RZUEVfQlVJTFRJTgkoMTw8MCkKPiAj ZGVmaW5lIERSTV9NT0RFX1RZUEVfQ0xPQ0tfQwkoKDE8PDEpIHwgRFJNX01PREVfVFlQRV9CVUlM VElOKQo+QEAgLTIxNCw2ICsyMTUsMjEgQEAgc3RydWN0IGRybV9tb2RlX2dldF9wbGFuZV9yZXMg ewo+IAlfX3UzMiBjb3VudF9wbGFuZXM7Cj4gfTsKPgo+K3N0cnVjdCBkcm1fbW9kZV9nZXRfbGl2 ZV9zb3VyY2Ugewo+KwlfX3UzMiBzb3VyY2VfaWQ7Cj4rCWNoYXIgbmFtZVtEUk1fU09VUkNFX05B TUVfTEVOXTsKPisKPisJX191MzIgcG9zc2libGVfcGxhbmVzOwoKTGltaXRpbmcgdGhpcyB0byBw bGFuZXMgd291bGQgcHJldmVudCBsaXZlIHNpbmtzIGNvbWluZyBvZmYgYQpjb25uZWN0b3IuIFNh bWUgcXVlc3Rpb24gYXMgRGFuaWVsIGZyb20gYmVmb3JlIC0gaXMgdGhlCnBvc3NpYmxlX3BsYW5l cyBpbnRlbmRlZCBmb3IgdXNlcnNwYWNlIHRvIGZpZ3VyZSBvdXQgcm91dGluZywgb3Igb25seQpm b3IgaW50ZXJuYWwgdmFsaWRhdGlvbj8KCj4rCj4rCV9fdTMyIGNvdW50X2Zvcm1hdF90eXBlczsK PisJX191NjQgZm9ybWF0X3R5cGVfcHRyOwoKQXMgdjRsMiBhbHNvIGhhcyBpdHMgb3duIGdldC9z ZXQgZm9ybWF0IGlvY3RscywgaG93IGRvIHlvdSBtYW5hZ2UgdGhlCnR3byB0b2dldGhlcj8gSWYg cG9zc2libGUsIG9ubHkgaGF2aW5nIHRvIHZhbGlkYXRlIGl0IGluIG9uZSBwbGFjZSBpcwpwcm9i YWJseSBiZXR0ZXIgdGhhbiB0d28uCgpDaGVlcnMsCi1CcmlhbgoKPit9Owo+Kwo+K3N0cnVjdCBk cm1fbW9kZV9nZXRfbGl2ZV9zb3VyY2VfcmVzIHsKPisJX191NjQgc291cmNlX2lkX3B0cjsKPisJ X191MzIgY291bnRfc291cmNlczsKPit9Owo+Kwo+ICNkZWZpbmUgRFJNX01PREVfRU5DT0RFUl9O T05FCTAKPiAjZGVmaW5lIERSTV9NT0RFX0VOQ09ERVJfREFDCTEKPiAjZGVmaW5lIERSTV9NT0RF X0VOQ09ERVJfVE1EUwkyCj5AQCAtMzUyLDYgKzM2OCw3IEBAIHN0cnVjdCBkcm1fbW9kZV9jb25u ZWN0b3Jfc2V0X3Byb3BlcnR5IHsKPiAjZGVmaW5lIERSTV9NT0RFX09CSkVDVF9GQiAweGZiZmJm YmZiCj4gI2RlZmluZSBEUk1fTU9ERV9PQkpFQ1RfQkxPQiAweGJiYmJiYmJiCj4gI2RlZmluZSBE Uk1fTU9ERV9PQkpFQ1RfUExBTkUgMHhlZWVlZWVlZQo+KyNkZWZpbmUgRFJNX01PREVfT0JKRUNU X0xJVkVfU09VUkNFIDB4ZTFlMWUxZTEKPiAjZGVmaW5lIERSTV9NT0RFX09CSkVDVF9BTlkgMAo+ Cj4gc3RydWN0IGRybV9tb2RlX29ial9nZXRfcHJvcGVydGllcyB7Cj4KPl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj5kcmktZGV2ZWwgbWFpbGluZyBsaXN0 Cj5kcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj5odHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK