From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH v4] drm/i915: Add IOCTL Param to control data port coherency. Date: Mon, 9 Jul 2018 15:24:01 +0100 Message-ID: <70a6d85a-d2f7-5530-b79f-1d10323afa2f@intel.com> References: <1521463055-5325-2-git-send-email-tomasz.lis@intel.com> <1531142457-4232-1-git-send-email-tomasz.lis@intel.com> <240d73b8-9a9b-db78-92ff-0d9725c613d2@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id E41A16E4F1 for ; Mon, 9 Jul 2018 14:24:04 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Lis, Tomasz" , intel-gfx@lists.freedesktop.org Cc: bartosz.dunajski@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gMDkvMDcvMTggMTU6MDMsIExpcywgVG9tYXN6IHdyb3RlOgo+Cj4KPiBPbiAyMDE4LTA3LTA5 IDE1OjQ4LCBMaW9uZWwgTGFuZHdlcmxpbiB3cm90ZToKPj4gT24gMDkvMDcvMTggMTQ6MjAsIFRv bWFzeiBMaXMgd3JvdGU6Cj4+PiBUaGUgcGF0Y2ggYWRkcyBhIHBhcmFtZXRlciB0byBjb250cm9s IHRoZSBkYXRhIHBvcnQgY29oZXJlbmN5IAo+Pj4gZnVuY3Rpb25hbGl0eQo+Pj4gb24gYSBwZXIt Y29udGV4dCBsZXZlbC4gV2hlbiB0aGUgSU9DVEwgaXMgY2FsbGVkLCBhIGNvbW1hbmQgdG8gCj4+ PiBzd2l0Y2ggZGF0YQo+Pj4gcG9ydCBjb2hlcmVuY3kgc3RhdGUgaXMgYWRkZWQgdG8gdGhlIG9y ZGVyZWQgbGlzdC4gQWxsIHByaW9yIAo+Pj4gcmVxdWVzdHMgYXJlCj4+PiBleGVjdXRlZCBvbiBv bGQgY29oZXJlbmN5IHNldHRpbmdzLCBhbmQgYWxsIGV4ZWMgcmVxdWVzdHMgYWZ0ZXIgdGhlIAo+ Pj4gSU9DVEwKPj4+IHdpbGwgdXNlIG5ldyBzZXR0aW5ncy4KPj4+Cj4+PiBSYXRpb25hbGU6Cj4+ Pgo+Pj4gVGhlIE9wZW5DTCBkcml2ZXIgZGV2ZWxwZXJzIHJlcXVlc3RlZCBhIGZ1bmN0aW9uYWxp dHkgdG8gY29udHJvbCBjYWNoZQo+Pj4gY29oZXJlbmN5IGF0IGRhdGEgcG9ydCBsZXZlbC4gS2Vl cGluZyB0aGUgY29oZXJlbmN5IGF0IHRoYXQgbGV2ZWwgaXMgCj4+PiBkaXNhYmxlZAo+Pj4gYnkg ZGVmYXVsdCBkdWUgdG8gaXRzIHBlcmZvcm1hbmNlIGNvc3RzLiBPcGVuQ0wgZHJpdmVyIGlzIHBs YW5uaW5nIHRvCj4+PiBlbmFibGUgaXQgZm9yIGEgc21hbGwgc3Vic2V0IG9mIHN1Ym1pc3Npb25z LCB3aGVuIHN1Y2ggZnVuY3Rpb25hbGl0eSBpcwo+Pj4gcmVxdWlyZWQuIEJlbG93IGFyZSBhbnN3 ZXJzIHRvIGJhc2ljIHF1ZXN0aW9uIGV4cGxhaW5pbmcgYmFja2dyb3VuZAo+Pj4gb2YgdGhlIGZ1 bmN0aW9uYWxpdHkgYW5kIHJlYXNvbmluZyBmb3IgdGhlIHByb3Bvc2VkIGltcGxlbWVudGF0aW9u Ogo+Pj4KPj4+IDEuIFdoeSBkbyB3ZSBuZWVkIGEgY29oZXJlbmN5IGVuYWJsZS9kaXNhYmxlIHN3 aXRjaCBmb3IgbWVtb3J5IHRoYXQgCj4+PiBpcyBzaGFyZWQKPj4+IGJldHdlZW4gQ1BVIGFuZCBH RU4gKEdQVSk/Cj4+Pgo+Pj4gTWVtb3J5IGNvaGVyZW5jeSBiZXR3ZWVuIENQVSBhbmQgR0VOLCB3 aGlsZSBiZWluZyBhIGdyZWF0IGZlYXR1cmUgCj4+PiB0aGF0IGVuYWJsZXMKPj4+IENMX01FTV9T Vk1fRklORV9HUkFJTl9CVUZGRVIgT0NMIGNhcGFiaWxpdHkgb24gSW50ZWwgR0VOIAo+Pj4gYXJj aGl0ZWN0dXJlLCBhZGRzCj4+PiBvdmVyaGVhZCByZWxhdGVkIHRvIHRyYWNraW5nIChzbm9vcGlu ZykgbWVtb3J5IGluc2lkZSBkaWZmZXJlbnQgCj4+PiBjYWNoZSB1bml0cwo+Pj4gKEwxJCwgTDIk LCBMMyQsIExMQyQsIGV0Yy4pLiBBdCB0aGUgc2FtZSB0aW1lLCBtaW5vcml0eSBvZiBtb2Rlcm4g T0NMCj4+PiBhcHBsaWNhdGlvbnMgYWN0dWFsbHkgdXNlIENMX01FTV9TVk1fRklORV9HUkFJTl9C VUZGRVIgKGFuZCBoZW5jZSAKPj4+IHJlcXVpcmUKPj4+IG1lbW9yeSBjb2hlcmVuY3kgYmV0d2Vl biBDUFUgYW5kIEdQVSkuIFRoZSBnb2FsIG9mIGNvaGVyZW5jeSAKPj4+IGVuYWJsZS9kaXNhYmxl Cj4+PiBzd2l0Y2ggaXMgdG8gcmVtb3ZlIG92ZXJoZWFkIG9mIG1lbW9yeSBjb2hlcmVuY3kgd2hl biBtZW1vcnkgCj4+PiBjb2hlcmVuY3kgaXMgbm90Cj4+PiBuZWVkZWQuCj4+Pgo+Pj4gMi4gV2h5 IGRvIHdlIG5lZWQgYSBnbG9iYWwgY29oZXJlbmN5IHN3aXRjaD8KPj4+Cj4+PiBJbiBvcmRlciB0 byBzdXBwb3J0IEkvTyBjb21tYW5kcyBmcm9tIHdpdGhpbiBFVXMgKEV4ZWN1dGlvbiBVbml0cyks IAo+Pj4gSW50ZWwgR0VOCj4+PiBJU0EgKEdFTiBJbnN0cnVjdGlvbiBTZXQgQXNzZW1ibHkpIGNv bnRhaW5zIGRlZGljYXRlZCAic2VuZCIgCj4+PiBpbnN0cnVjdGlvbnMuCj4+PiBUaGVzZSBzZW5k IGluc3RydWN0aW9ucyBwcm92aWRlIHNldmVyYWwgYWRkcmVzc2luZyBtb2RlbHMuIE9uZSBvZiB0 aGVzZQo+Pj4gYWRkcmVzc2luZyBtb2RlbHMgKG5hbWVkICJzdGF0ZWxlc3MiKSBwcm92aWRlcyBt b3N0IGZsZXhpYmxlIEkvTyAKPj4+IHVzaW5nIHBsYWluCj4+PiB2aXJ0dWFsIGFkZHJlc3NlcyAo YXMgb3Bwb3NlZCB0byBidWZmZXJfaGFuZGxlK29mZnNldCBtb2RlbHMpLiBUaGlzIAo+Pj4gInN0 YXRlbGVzcyIKPj4+IG1vZGVsIGlzIHNpbWlsYXIgdG8gcmVndWxhciBtZW1vcnkgbG9hZC9zdG9y ZSBvcGVyYXRpb25zIGF2YWlsYWJsZSAKPj4+IG9uIHR5cGljYWwKPj4+IENQVXMuIFNpbmNlIHRo aXMgbW9kZWwgcHJvdmlkZXMgSS9PIHVzaW5nIGFyYml0cmFyeSB2aXJ0dWFsIAo+Pj4gYWRkcmVz c2VzLCBpdAo+Pj4gZW5hYmxlcyBhbGdvcml0aG1pYyBkZXNpZ25zIHRoYXQgYXJlIGJhc2VkIG9u IHBvaW50ZXItdG8tcG9pbnRlciAKPj4+IChlLmcuIGJ1ZmZlcgo+Pj4gb2YgcG9pbnRlcnMpIGNv bmNlcHRzLiBGb3IgaW5zdGFuY2UsIGl0IGFsbG93cyBjcmVhdGluZyB0cmVlLWxpa2UgZGF0YQo+ Pj4gc3RydWN0dXJlcyBzdWNoIGFzOgo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgX19fX19fX19fX19fX19fXwo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHzCoMKgwqDCoMKgIE5PREUxwqDCoMKgwqAgfAo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgdWludDY0X3QgZGF0YcKgIHwKPj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0tLXwKPj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IE5PREUqwqAgfMKgIE5PREUqfAo+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLSstLS0tLS0tKwo+Pj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgXAo+Pj4gwqDCoMKgIF9fX19fX19fX19fX19fX18vwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIFxfX19fX19fX19fX19fX19fCj4+PiDCoMKgIHzCoMKgwqDCoMKgIE5P REUywqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoCBO T0RFM8KgwqDCoMKgIHwKPj4+IMKgwqAgfCB1aW50NjRfdCBkYXRhwqAgfMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8IHVpbnQ2NF90IGRhdGHCoCB8Cj4+PiDCoMKgICstLS0tLS0tLS0t LS0tLS0tfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0tLXwK Pj4+IMKgwqAgfCBOT0RFKsKgIHzCoCBOT0RFKnzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfCBOT0RFKsKgIHzCoCBOT0RFKnwKPj4+IMKgwqAgKy0tLS0tLS0tKy0tLS0tLS0rwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS0tLSstLS0tLS0tKwo+Pj4KPj4+IFBsZWFz ZSBub3RlIHRoYXQgcG9pbnRlcnMgaW5zaWRlIHN1Y2ggc3RydWN0dXJlcyBjYW4gcG9pbnQgdG8g bWVtb3J5IAo+Pj4gbG9jYXRpb25zCj4+PiBpbiBkaWZmZXJlbnQgT0NMIGFsbG9jYXRpb25zwqAg LSBlLmcuIE5PREUxIGFuZCBOT0RFMiBjYW4gcmVzaWRlIGluIAo+Pj4gb25lIE9DTAo+Pj4gYWxs b2NhdGlvbiB3aGlsZSBOT0RFMyByZXNpZGVzIGluIGEgY29tcGxldGVseSBzZXBhcmF0ZSBPQ0wg YWxsb2NhdGlvbi4KPj4+IEFkZGl0aW9uYWxseSwgc3VjaCBwb2ludGVycyBjYW4gYmUgc2hhcmVk IHdpdGggQ1BVIChpLmUuIHVzaW5nIFNWTSAtIAo+Pj4gU2hhcmVkCj4+PiBWaXJ0dWFsIE1lbW9y eSBmZWF0dXJlKS4gVXNpbmcgcG9pbnRlcnMgZnJvbSBkaWZmZXJlbnQgYWxsb2NhdGlvbnMgCj4+ PiBkb2Vzbid0Cj4+PiBhZmZlY3QgdGhlIHN0YXRlbGVzcyBhZGRyZXNzaW5nIG1vZGVsIHdoaWNo IGV2ZW4gYWxsb3dzIHNjYXR0ZXJlZCAKPj4+IHJlYWRpbmcgZnJvbQo+Pj4gZGlmZmVyZW50IGFs bG9jYXRpb25zIGF0IHRoZSBzYW1lIHRpbWUgKGkuZS4gYnkgdXRpbGl6aW5nIAo+Pj4gU0lNRC1u YXR1cmUgb2Ygc2VuZAo+Pj4gaW5zdHJ1Y3Rpb25zKS4KPj4+Cj4+PiBXaGVuIGl0IGNvbWVzIHRv IGNvaGVyZW5jeSBwcm9ncmFtbWluZywgc2VuZCBpbnN0cnVjdGlvbnMgaW4gCj4+PiBzdGF0ZWxl c3MgbW9kZWwKPj4+IGNhbiBiZSBlbmNvZGVkIChhdCBJU0EgbGV2ZWwpIHRvIGVpdGhlciB1c2Ug b3IgZGlzYWJsZSBjb2hlcmVuY3kuIAo+Pj4gSG93ZXZlciwgZm9yCj4+PiBnZW5lcmljIE9DTCBh cHBsaWNhdGlvbnMgKHN1Y2ggYXMgZXhhbXBsZSB3aXRoIHRyZWUtbGlrZSBkYXRhIAo+Pj4gc3Ry dWN0dXJlKSwgT0NMCj4+PiBjb21waWxlciBpcyBub3QgYWJsZSB0byBkZXRlcm1pbmUgb3JpZ2lu IG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5IGFuIAo+Pj4gYXJiaXRyYXJ5Cj4+PiBwb2ludGVyIC0g aS5lLiBpcyBub3QgYWJsZSB0byB0cmFjayBnaXZlbiBwb2ludGVyIGJhY2sgdG8gYSBzcGVjaWZp Ywo+Pj4gYWxsb2NhdGlvbi4gQXMgc3VjaCwgaXQncyBub3QgYWJsZSB0byBkZWNpZGUgd2hldGhl ciBjb2hlcmVuY3kgaXMgCj4+PiBuZWVkZWQgb3Igbm90Cj4+PiBmb3Igc3BlY2lmaWMgcG9pbnRl ciAob3IgZm9yIHNwZWNpZmljIEkvTyBpbnN0cnVjdGlvbikuIEFzIGEgcmVzdWx0LCAKPj4+IGNv bXBpbGVyCj4+PiBlbmNvZGVzIGFsbCBzdGF0ZWxlc3Mgc2VuZHMgYXMgY29oZXJlbnQgKGRvaW5n IG90aGVyd2lzZSB3b3VsZCBsZWFkIHRvCj4+PiBmdW5jdGlvbmFsIGlzc3VlcyByZXN1bHRpbmcg ZnJvbSBkYXRhIGNvcnJ1cHRpb24pLiBQbGVhc2Ugbm90ZSB0aGF0IAo+Pj4gaXQgd291bGQgYmUK Pj4+IHBvc3NpYmxlIHRvIHdvcmthcm91bmQgdGhpcyAoZS5nLiBiYXNlZCBvbiBhbGxvY2F0aW9u cyBtYXAgYW5kIAo+Pj4gcG9pbnRlciBib3VuZHMKPj4+IGNoZWNraW5nIHByaW9yIHRvIGVhY2gg SS9PIGluc3RydWN0aW9uKSBidXQgdGhlIHBlcmZvcm1hbmNlIGNvc3Qgb2YgCj4+PiBzdWNoCj4+ PiB3b3JrYXJvdW5kIHdvdWxkIGJlIG1hbnkgdGltZXMgZ3JlYXRlciB0aGFuIHRoZSBjb3N0IG9m IGtlZXBpbmcgCj4+PiBjb2hlcmVuY3kKPj4+IGFsd2F5cyBlbmFibGVkLiBBcyBzdWNoLCBlbmFi bGluZy9kaXNhYmxpbmcgbWVtb3J5IGNvaGVyZW5jeSBhdCBHRU4gCj4+PiBJU0EgbGV2ZWwKPj4+ IGlzIG5vdCBmZWFzaWJsZSBhbmQgYWx0ZXJuYXRpdmUgbWV0aG9kIGlzIG5lZWRlZC4KPj4+Cj4+ PiBTdWNoIGFsdGVybmF0aXZlIHNvbHV0aW9uIGlzIHRvIGhhdmUgYSBnbG9iYWwgY29oZXJlbmN5 IHN3aXRjaCB0aGF0IAo+Pj4gYWxsb3dzCj4+PiBkaXNhYmxpbmcgY29oZXJlbmN5IGZvciBzaW5n bGUgKHRob3VnaCBlbnRpcmUpIEdQVSBzdWJtaXNzaW9uLiBUaGlzIGlzCj4+PiBiZW5lZmljaWFs IGJlY2F1c2UgdGhpcyB3YXkgd2U6Cj4+PiAqIGNhbiBlbmFibGUgKGFuZCBwYXkgZm9yKSBjb2hl cmVuY3kgb25seSBpbiBzdWJtaXNzaW9ucyB0aGF0IAo+Pj4gYWN0dWFsbHkgbmVlZAo+Pj4gY29o ZXJlbmN5IChzdWJtaXNzaW9ucyB0aGF0IHVzZSBDTF9NRU1fU1ZNX0ZJTkVfR1JBSU5fQlVGRkVS IHJlc291cmNlcykKPj4+ICogZG9uJ3QgY2FyZSBhYm91dCBjb2hlcmVuY3kgYXQgR0VOIElTQSBn cmFudWxhcml0eSAobm8gcGVyZm9ybWFuY2UgCj4+PiBpbXBhY3QpCj4+Pgo+Pj4gMy4gV2lsbCBj b2hlcmVuY3kgc3dpdGNoIGJlIHVzZWQgZnJlcXVlbnRseT8KPj4+Cj4+PiBUaGVyZSBhcmUgc2Nl bmFyaW9zIHRoYXQgd2lsbCByZXF1aXJlIGZyZXF1ZW50IHRvZ2dsaW5nIG9mIHRoZSAKPj4+IGNv aGVyZW5jeQo+Pj4gc3dpdGNoLgo+Pj4gRS5nLiBhbiBhcHBsaWNhdGlvbiBoYXMgdHdvIE9DTCBj b21wdXRlIGtlcm5lbHM6IGtlcm5fbWFzdGVyIGFuZCAKPj4+IGtlcm5fd29ya2VyLgo+Pj4ga2Vy bl9tYXN0ZXIgdXNlcywgY29uY3VycmVudGx5IHdpdGggQ1BVLCBzb21lIGZpbmUgZ3JhaW4gU1ZN IHJlc291cmNlcwo+Pj4gKENMX01FTV9TVk1fRklORV9HUkFJTl9CVUZGRVIpLiBUaGVzZSByZXNv dXJjZXMgY29udGFpbiBkZXNjcmlwdG9ycyBvZgo+Pj4gY29tcHV0YXRpb25hbCB3b3JrIHRoYXQg bmVlZHMgdG8gYmUgZXhlY3V0ZWQuIGtlcm5fbWFzdGVyIGFuYWx5emVzIAo+Pj4gaW5jb21pbmcK Pj4+IHdvcmsgZGVzY3JpcHRvcnMgYW5kIHBvcHVsYXRlcyBhIHBsYWluIE9DTCBidWZmZXIgKG5v bi1maW5lLWdyYWluKSAKPj4+IHdpdGggcGF5bG9hZAo+Pj4gZm9yIGtlcm5fd29ya2VyLiBPbmNl IGtlcm5fbWFzdGVyIGlzIGRvbmUsIGtlcm5fd29ya2VyIGtpY2tzLWluIGFuZCAKPj4+IHByb2Nl c3Nlcwo+Pj4gdGhlIHBheWxvYWQgdGhhdCBrZXJuX21hc3RlciBwcm9kdWNlZC4gVGhlc2UgdHdv IGtlcm5lbHMgd29yayBpbiBhIAo+Pj4gbG9vcCwgb25lCj4+PiBhZnRlciBhbm90aGVyLiBTaW5j ZSBvbmx5IGtlcm5fbWFzdGVyIHJlcXVpcmVzIGNvaGVyZW5jeSwgCj4+PiBrZXJuX3dvcmtlciBz aG91bGQKPj4+IG5vdCBiZSBmb3JjZWQgdG8gcGF5IGZvciBpdC4gVGhpcyBtZWFucyB0aGF0IHdl IG5lZWQgdG8gaGF2ZSB0aGUgCj4+PiBhYmlsaXR5IHRvCj4+PiB0b2dnbGUgY29oZXJlbmN5IHN3 aXRjaCBvbiBvciBvZmYgcGVyIGVhY2ggR1BVIHN1Ym1pc3Npb246Cj4+PiAoRU5BQkxFIENPSEVS RU5DWSkga2Vybl9tYXN0ZXIgLT4gKERJU0FCTEUgQ09IRVJFTkNZKWtlcm5fd29ya2VyIC0+IAo+ Pj4gKEVOQUJMRQo+Pj4gQ09IRVJFTkNZKSBrZXJuX21hc3RlciAtPiAoRElTQUJMRSBDT0hFUkVO Q1kpa2Vybl93b3JrZXIgLT4gLi4uCj4+Pgo+Pj4gdjI6IEZpeGVkIGNvbXBpbGF0aW9uIHdhcm5p bmcuCj4+PiB2MzogUmVmYWN0b3JlZCB0aGUgcGF0Y2ggdG8gYWRkIElPQ1RMIGluc3RlYWQgb2Yg ZXhlYyBmbGFnLgo+Pj4gdjQ6IFJlbmFtZWQgYW5kIGRvY3VtZW50ZWQgdGhlIEFQSSBmbGFnLiBV c2VkIHN0cmljdCB2YWx1ZXMuCj4+PiDCoMKgwqDCoCBSZW1vdmVkIHJlZHVuZGFudCBHRU1fV0FS Tl9PTigpcy4gSW1wcm92ZWQgdG8gY29kaW5nIHN0YW5kYXJkLgo+Pj4gwqDCoMKgwqAgSW50cm9k dWNlZCBhIG1hY3JvIGZvciBjaGVja2luZyB3aGV0aGVyIGhhcmR3YXJlIHN1cHBvcnRzIHRoZSAK Pj4+IGZlYXR1cmUuCj4+Pgo+Pj4gQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVu QGxpbnV4LmludGVsLmNvbT4KPj4+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgo+Pj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVr Pgo+Pj4gQ2M6IE1pY2hhbCBXaW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgo+ Pj4KPj4+IEJzcGVjOiAxMTQxOQo+Pj4gU2lnbmVkLW9mZi1ieTogVG9tYXN6IExpcyA8dG9tYXN6 Lmxpc0BpbnRlbC5jb20+Cj4+PiAtLS0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmjCoMKgwqDCoMKgwqDCoMKgIHzCoCAxICsKPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2NvbnRleHQuYyB8IDQxIAo+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggfMKgIDYgKysr Kwo+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmPCoMKgwqDCoMKgwqDCoCB8 IDQ5IAo+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+PiDCoCBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaMKgwqDCoMKgwqDCoMKgIHzCoCA0ICsrKwo+Pj4gwqAg aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA2 ICsrKysKPj4+IMKgIDYgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKykKPj4+Cj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAKPj4+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gaW5kZXggMDlhYjEyNC4uN2Q0YmJkNSAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IEBAIC0yNTI0LDYgKzI1MjQsNyBAQCBp bnRlbF9pbmZvKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIAo+Pj4gKmRldl9wcml2KQo+ Pj4gwqAgI2RlZmluZSBIQVNfRURSQU0oZGV2X3ByaXYpwqDCoMKgICghISgoZGV2X3ByaXYpLT5l ZHJhbV9jYXAgJiAKPj4+IEVEUkFNX0VOQUJMRUQpKQo+Pj4gwqAgI2RlZmluZSBIQVNfV1QoZGV2 X3ByaXYpwqDCoMKgICgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgXAo+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIElTX0JST0FEV0VMTChkZXZfcHJpdikpICYmIEhBU19F RFJBTShkZXZfcHJpdikpCj4+PiArI2RlZmluZSBIQVNfREFUQV9QT1JUX0NPSEVSRU5DWShkZXZf cHJpdikgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPj4KPj4gUmVhZGluZyB0aGUgZG9jdW1l bnRhdGlvbiBpdCBzZWVtcyB0aGF0IHRoZSBiaXQgeW91IHdhbnQgdG8gc2V0IGlzIAo+PiBnb25l IGluIElDTC9HZW4xMS4KPj4gTWF5YmUgbGltaXQgdGhpcyB0byA+PSA5ICYmIDwgMTE/Cj4gSWNl bGFrZSBhY3R1YWxseSBoYXMgdGhlIGJpdCBhcyB3ZWxsLCBqdXN0IHRoZSBhZGRyZXNzIGlzIGRp ZmZlcmVudC4KPiBJIHdpbGwgYWRkIGl0cyBzdXBwb3J0IGFzIGEgc2VwYXJhdGUgcGF0Y2ggYXMg c29vbiBhcyB0aGUgY2hhbmdlIHdoaWNoIAo+IGRlZmluZXMgSUNMX0hEQ19DSElDS0VOMCBpcyBh Y2NlcHRlZC4KPiBCdXQgaW4gdGhlIGN1cnJlbnQgZm9ybSAtIHlvdSBhcmUgcmlnaHQsIElDTCBp cyBub3Qgc3VwcG9ydGVkLgo+IEkgd2lsbCB1cGRhdGUgdGhlIGNvbmRpdGlvbi4KPiAtVG9tYXN6 CgpKdXN0IG91dCBvZiBjdXJpb3NpdHksIHdoYXQgYWRkcmVzcyBpcyBJQ0xfSERfQ0hJQ0tFTjAg YXQ/CgpUaGFua3MsCgotCkxpb25lbAoKPj4KPj4gQ2hlZXJzLAo+Pgo+PiAtCj4+IExpb25lbAo+ Pgo+Pj4gwqAgwqAgI2RlZmluZSBIV1NfTkVFRFNfUEhZU0lDQUwoZGV2X3ByaXYpIAo+Pj4gKChk ZXZfcHJpdiktPmluZm8uaHdzX25lZWRzX3BoeXNpY2FsKQo+Pj4gwqAgZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyAKPj4+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4+PiBpbmRleCBiMTA3NzBjLi42ZGIzNTJlIDEw MDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPj4+IEBAIC03 MTEsNiArNzExLDI2IEBAIHN0YXRpYyBib29sIGNsaWVudF9pc19iYW5uZWQoc3RydWN0IAo+Pj4g ZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYpCj4+PiDCoMKgwqDCoMKgIHJldHVybiBh dG9taWNfcmVhZCgmZmlsZV9wcml2LT5iYW5fc2NvcmUpID49IAo+Pj4gSTkxNV9DTElFTlRfU0NP UkVfQkFOTkVEOwo+Pj4gwqAgfQo+Pj4gwqAgK3N0YXRpYyBpbnQgaTkxNV9nZW1fY29udGV4dF9z ZXRfZGF0YV9wb3J0X2NvaGVyZW50KHN0cnVjdCAKPj4+IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkK Pj4+ICt7Cj4+PiArwqDCoMKgIGludCByZXQ7Cj4+PiArCj4+PiArwqDCoMKgIHJldCA9IGludGVs X2xyX2NvbnRleHRfbW9kaWZ5X2RhdGFfcG9ydF9jb2hlcmVuY3koY3R4LCB0cnVlKTsKPj4+ICvC oMKgwqAgaWYgKCFyZXQpCj4+PiArwqDCoMKgwqDCoMKgwqAgX19zZXRfYml0KENPTlRFWFRfREFU QV9QT1JUX0NPSEVSRU5ULCAmY3R4LT5mbGFncyk7Cj4+PiArwqDCoMKgIHJldHVybiByZXQ7Cj4+ PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgaTkxNV9nZW1fY29udGV4dF9jbGVhcl9kYXRhX3Bv cnRfY29oZXJlbnQoc3RydWN0IAo+Pj4gaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+Pj4gK3sKPj4+ ICvCoMKgwqAgaW50IHJldDsKPj4+ICsKPj4+ICvCoMKgwqAgcmV0ID0gaW50ZWxfbHJfY29udGV4 dF9tb2RpZnlfZGF0YV9wb3J0X2NvaGVyZW5jeShjdHgsIGZhbHNlKTsKPj4+ICvCoMKgwqAgaWYg KCFyZXQpCj4+PiArwqDCoMKgwqDCoMKgwqAgX19jbGVhcl9iaXQoQ09OVEVYVF9EQVRBX1BPUlRf Q09IRVJFTlQsICZjdHgtPmZsYWdzKTsKPj4+ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4+ICt9Cj4+ PiArCj4+PiDCoCBpbnQgaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPj4+IMKgIHsKPj4+IEBAIC03ODQsNiAr ODA0LDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZGVzdHJveV9pb2N0bChzdHJ1Y3QgCj4+PiBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+PiDCoCBpbnQgaTkxNV9nZW1fY29udGV4dF9n ZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkIAo+Pj4gKmRhdGEsCj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9m aWxlICpmaWxlKQo+Pj4gwqAgewo+Pj4gK8KgwqDCoCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+PiDCoMKgwqDCoMKgIHN0cnVjdCBkcm1faTkxNV9m aWxlX3ByaXZhdGUgKmZpbGVfcHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2Owo+Pj4gwqDCoMKgwqDC oCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmFyZ3MgPSBkYXRhOwo+Pj4gwqDC oMKgwqDCoCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+Pj4gQEAgLTgxOCw2ICs4Mzks MTIgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwoc3RydWN0IAo+Pj4gZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4gwqDCoMKgwqDCoCBjYXNlIEk5MTVfQ09OVEVY VF9QQVJBTV9QUklPUklUWToKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBhcmdzLT52YWx1ZSA9IGN0 eC0+c2NoZWQucHJpb3JpdHk7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+PiArwqDC oMKgIGNhc2UgSTkxNV9DT05URVhUX1BBUkFNX0RBVEFfUE9SVF9DT0hFUkVOQ1k6Cj4+PiArwqDC oMKgwqDCoMKgwqAgaWYgKCFIQVNfREFUQV9QT1JUX0NPSEVSRU5DWShkZXZfcHJpdikpCj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSAtRU5PREVWOwo+Pj4gK8KgwqDCoMKgwqDCoMKg IGVsc2UKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFyZ3MtPnZhbHVlID0gaTkxNV9nZW1f Y29udGV4dF9pc19kYXRhX3BvcnRfY29oZXJlbnQoY3R4KTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBi cmVhazsKPj4+IMKgwqDCoMKgwqAgZGVmYXVsdDoKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXQg PSAtRUlOVkFMOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4gQEAgLTgzMCw2ICs4 NTcsNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgCj4+PiBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+PiDCoCBpbnQgaTkxNV9nZW1fY29udGV4dF9z ZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkIAo+Pj4gKmRhdGEsCj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9m aWxlICpmaWxlKQo+Pj4gwqAgewo+Pj4gK8KgwqDCoCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+PiDCoMKgwqDCoMKgIHN0cnVjdCBkcm1faTkxNV9m aWxlX3ByaXZhdGUgKmZpbGVfcHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2Owo+Pj4gwqDCoMKgwqDC oCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmFyZ3MgPSBkYXRhOwo+Pj4gwqDC oMKgwqDCoCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+Pj4gQEAgLTg5Myw2ICs5MjEs MTkgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfc2V0cGFyYW1faW9jdGwoc3RydWN0IAo+Pj4gZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+IMKgICvCoMKgwqAgY2FzZSBJOTE1X0NPTlRFWFRf UEFSQU1fREFUQV9QT1JUX0NPSEVSRU5DWToKPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoYXJncy0+ c2l6ZSkKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IC1FSU5WQUw7Cj4+PiArwqDC oMKgwqDCoMKgwqAgZWxzZSBpZiAoIUhBU19EQVRBX1BPUlRfQ09IRVJFTkNZKGRldl9wcml2KSkK Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IC1FTk9ERVY7Cj4+PiArwqDCoMKgwqDC oMKgwqAgZWxzZSBpZiAoYXJncy0+dmFsdWUgPT0gMSkKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJldCA9IGk5MTVfZ2VtX2NvbnRleHRfc2V0X2RhdGFfcG9ydF9jb2hlcmVudChjdHgpOwo+ Pj4gK8KgwqDCoMKgwqDCoMKgIGVsc2UgaWYgKGFyZ3MtPnZhbHVlID09IDApCj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCByZXQgPSBpOTE1X2dlbV9jb250ZXh0X2NsZWFyX2RhdGFfcG9ydF9j b2hlcmVudChjdHgpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIGVsc2UKPj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHJldCA9IC1FSU5WQUw7Cj4+PiArwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+PiAr Cj4+PiDCoMKgwqDCoMKgIGRlZmF1bHQ6Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gLUVJ TlZBTDsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggCj4+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAo+Pj4gaW5kZXggYjExNmU0OS4uZThjY2I3MCAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAo+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCj4+PiBAQCAtMTI2 LDYgKzEyNiw3IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0IHsKPj4+IMKgICNkZWZpbmUgQ09O VEVYVF9CQU5OQUJMRcKgwqDCoMKgwqDCoMKgIDMKPj4+IMKgICNkZWZpbmUgQ09OVEVYVF9CQU5O RUTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDQKPj4+IMKgICNkZWZpbmUgQ09OVEVYVF9GT1JDRV9T SU5HTEVfU1VCTUlTU0lPTsKgwqDCoCA1Cj4+PiArI2RlZmluZSBDT05URVhUX0RBVEFfUE9SVF9D T0hFUkVOVMKgwqDCoCA2Cj4+PiDCoCDCoMKgwqDCoMKgIC8qKgo+Pj4gwqDCoMKgwqDCoMKgICog QGh3X2lkOiAtIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29udGV4dAo+Pj4gQEAgLTI1Nyw2 ICsyNTgsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIAo+Pj4gaTkxNV9nZW1fY29udGV4dF9zZXRf Zm9yY2Vfc2luZ2xlX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZ2VtXwo+Pj4gwqDCoMKgwqDCoCBf X3NldF9iaXQoQ09OVEVYVF9GT1JDRV9TSU5HTEVfU1VCTUlTU0lPTiwgJmN0eC0+ZmxhZ3MpOwo+ Pj4gwqAgfQo+Pj4gwqAgK3N0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9jb250ZXh0X2lzX2Rh dGFfcG9ydF9jb2hlcmVudChzdHJ1Y3QgCj4+PiBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4+PiAr ewo+Pj4gK8KgwqDCoCByZXR1cm4gdGVzdF9iaXQoQ09OVEVYVF9EQVRBX1BPUlRfQ09IRVJFTlQs ICZjdHgtPmZsYWdzKTsKPj4+ICt9Cj4+PiArCj4+PiDCoCBzdGF0aWMgaW5saW5lIGJvb2wgaTkx NV9nZW1fY29udGV4dF9pc19kZWZhdWx0KGNvbnN0IHN0cnVjdCAKPj4+IGk5MTVfZ2VtX2NvbnRl eHQgKmMpCj4+PiDCoCB7Cj4+PiDCoMKgwqDCoMKgIHJldHVybiBjLT51c2VyX2hhbmRsZSA9PSBE RUZBVUxUX0NPTlRFWFRfSEFORExFOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ Pj4gaW5kZXggYWI4OWRhYi4uMWYwMzdlMyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYwo+Pj4gQEAgLTI1OSw2ICsyNTksNTUgQEAgaW50ZWxfbHJfY29udGV4dF9kZXNjcmlwdG9y X3VwZGF0ZShzdHJ1Y3QgCj4+PiBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4+PiDCoMKgwqDCoMKg IGNlLT5scmNfZGVzYyA9IGRlc2M7Cj4+PiDCoCB9Cj4+PiDCoCArc3RhdGljIGludCBlbWl0X3Nl dF9kYXRhX3BvcnRfY29oZXJlbmN5KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcSwgCj4+PiBib29s IGVuYWJsZSkKPj4+ICt7Cj4+PiArwqDCoMKgIHUzMiAqY3M7Cj4+PiArwqDCoMKgIGk5MTVfcmVn X3QgcmVnOwo+Pj4gKwo+Pj4gK8KgwqDCoCBHRU1fQlVHX09OKHJlcS0+ZW5naW5lLT5jbGFzcyAh PSBSRU5ERVJfQ0xBU1MpOwo+Pj4gK8KgwqDCoCBHRU1fQlVHX09OKElOVEVMX0dFTihyZXEtPmk5 MTUpIDwgOSk7Cj4+PiArCj4+PiArwqDCoMKgIGNzID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQp Owo+Pj4gK8KgwqDCoCBpZiAoSVNfRVJSKGNzKSkKPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4g UFRSX0VSUihjcyk7Cj4+PiArCj4+PiArwqDCoMKgIGlmIChJTlRFTF9HRU4ocmVxLT5pOTE1KSA+ PSAxMCkKPj4+ICvCoMKgwqDCoMKgwqDCoCByZWcgPSBDTkxfSERDX0NISUNLRU4wOwo+Pj4gK8Kg wqDCoCBlbHNlCj4+PiArwqDCoMKgwqDCoMKgwqAgcmVnID0gSERDX0NISUNLRU4wOwo+Pj4gKwo+ Pj4gK8KgwqDCoCAqY3MrKyA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDEpOwo+Pj4gK8KgwqDCoCAq Y3MrKyA9IGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZyk7Cj4+PiArwqDCoMKgIC8qIEVuYWJsaW5n IGNvaGVyZW5jeSBtZWFucyBkaXNhYmxpbmcgdGhlIGJpdCB3aGljaCBmb3JjZXMgaXQgCj4+PiBv ZmYgKi8KPj4+ICvCoMKgwqAgaWYgKGVuYWJsZSkKPj4+ICvCoMKgwqDCoMKgwqDCoCAqY3MrKyA9 IF9NQVNLRURfQklUX0RJU0FCTEUoSERDX0ZPUkNFX05PTl9DT0hFUkVOVCk7Cj4+PiArwqDCoMKg IGVsc2UKPj4+ICvCoMKgwqDCoMKgwqDCoCAqY3MrKyA9IF9NQVNLRURfQklUX0VOQUJMRShIRENf Rk9SQ0VfTk9OX0NPSEVSRU5UKTsKPj4+ICvCoMKgwqAgKmNzKysgPSBNSV9OT09QOwo+Pj4gKwo+ Pj4gK8KgwqDCoCBpbnRlbF9yaW5nX2FkdmFuY2UocmVxLCBjcyk7Cj4+PiArCj4+PiArwqDCoMKg IHJldHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICtpbnQKPj4+ICtpbnRlbF9scl9jb250ZXh0X21v ZGlmeV9kYXRhX3BvcnRfY29oZXJlbmN5KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0IAo+Pj4gKmN0 eCwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJv b2wgZW5hYmxlKQo+Pj4gK3sKPj4+ICvCoMKgwqAgc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxOwo+ Pj4gK8KgwqDCoCBpbnQgcmV0Owo+Pj4gKwo+Pj4gK8KgwqDCoCByZXEgPSBpOTE1X3JlcXVlc3Rf YWxsb2MoY3R4LT5pOTE1LT5lbmdpbmVbUkNTXSwgY3R4KTsKPj4+ICvCoMKgwqAgaWYgKElTX0VS UihyZXEpKQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBQVFJfRVJSKHJlcSk7Cj4+PiArCj4+ PiArwqDCoMKgIHJldCA9IGVtaXRfc2V0X2RhdGFfcG9ydF9jb2hlcmVuY3kocmVxLCBlbmFibGUp Owo+Pj4gKwo+Pj4gK8KgwqDCoCBpOTE1X3JlcXVlc3RfYWRkKHJlcSk7Cj4+PiArCj4+PiArwqDC oMKgIHJldHVybiByZXQ7Cj4+PiArfQo+Pj4gKwo+Pj4gwqAgc3RhdGljIHN0cnVjdCBpOTE1X3By aW9saXN0ICoKPj4+IMKgIGxvb2t1cF9wcmlvbGlzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsIGludCBwcmlvKQo+Pj4gwqAgewo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5oIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu aAo+Pj4gaW5kZXggMTU5MzE5NC4uZjY5NjVhZSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaAo+Pj4gQEAgLTEwNCw0ICsxMDQsOCBAQCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dDsK Pj4+IMKgIMKgIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPj4+IMKgICtpbnQKPj4+ICtpbnRlbF9scl9jb250ZXh0X21vZGlm eV9kYXRhX3BvcnRfY29oZXJlbmN5KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0IAo+Pj4gKmN0eCwK Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJvb2wg ZW5hYmxlKTsKPj4+ICsKPj4+IMKgICNlbmRpZiAvKiBfSU5URUxfTFJDX0hfICovCj4+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oCj4+PiBpbmRleCA3ZjU2MzRjLi5lNjc3YmVhIDEwMDY0NAo+Pj4gLS0tIGEvaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4+PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmgKPj4+IEBAIC0xNDU2LDYgKzE0NTYsMTIgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250 ZXh0X3BhcmFtIHsKPj4+IMKgICNkZWZpbmXCoMKgIEk5MTVfQ09OVEVYVF9NQVhfVVNFUl9QUklP UklUWcKgwqDCoCAxMDIzIC8qIGluY2x1c2l2ZSAqLwo+Pj4gwqAgI2RlZmluZcKgwqAgSTkxNV9D T05URVhUX0RFRkFVTFRfUFJJT1JJVFnCoMKgwqDCoMKgwqDCoCAwCj4+PiDCoCAjZGVmaW5lwqDC oCBJOTE1X0NPTlRFWFRfTUlOX1VTRVJfUFJJT1JJVFnCoMKgwqAgLTEwMjMgLyogaW5jbHVzaXZl ICovCj4+PiArLyoKPj4+ICsgKiBXaGVuIGRhdGEgcG9ydCBsZXZlbCBjb2hlcmVuY3kgaXMgZW5h YmxlZCwgdGhlIEdQVSB3aWxsIHVwZGF0ZSAKPj4+IG1lbW9yeQo+Pj4gKyAqIGJ1ZmZlcnMgc2hh cmVkIHdpdGggQ1BVLCBieSBmb3JjaW5nIGludGVybmFsIGNhY2hlIHVuaXRzIHRvIHNlbmQgCj4+ PiBtZW1vcnkKPj4+ICsgKiB3cml0ZXMgdG8gcmVhbCBSQU0gZmFzdGVyLiBLZWVwaW5nIHN1Y2gg Y29oZXJlbmN5IGhhcyAKPj4+IHBlcmZvcm1hbmNlIGNvc3QuCj4+PiArICovCj4+PiArI2RlZmlu ZSBJOTE1X0NPTlRFWFRfUEFSQU1fREFUQV9QT1JUX0NPSEVSRU5DWcKgwqDCoCAweDcKPj4+IMKg wqDCoMKgwqAgX191NjQgdmFsdWU7Cj4+PiDCoCB9Owo+Pgo+Pgo+Cj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=