From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lis, Tomasz" Subject: Re: [PATCH v4] drm/i915: Add IOCTL Param to control data port coherency. Date: Tue, 10 Jul 2018 20:03:50 +0200 Message-ID: <1c7685b7-a1bf-37a0-d3d7-19e5c0847317@intel.com> References: <1521463055-5325-2-git-send-email-tomasz.lis@intel.com> <1531142457-4232-1-git-send-email-tomasz.lis@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id E58276E71E for ; Tue, 10 Jul 2018 18:03:59 +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: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org Cc: bartosz.dunajski@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiAyMDE4LTA3LTA5IDE4OjI4LCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPgo+IE9uIDA5LzA3 LzIwMTggMTQ6MjAsIFRvbWFzeiBMaXMgd3JvdGU6Cj4+IFRoZSBwYXRjaCBhZGRzIGEgcGFyYW1l dGVyIHRvIGNvbnRyb2wgdGhlIGRhdGEgcG9ydCBjb2hlcmVuY3kgCj4+IGZ1bmN0aW9uYWxpdHkK Pj4gb24gYSBwZXItY29udGV4dCBsZXZlbC4gV2hlbiB0aGUgSU9DVEwgaXMgY2FsbGVkLCBhIGNv bW1hbmQgdG8gc3dpdGNoIAo+PiBkYXRhCj4+IHBvcnQgY29oZXJlbmN5IHN0YXRlIGlzIGFkZGVk IHRvIHRoZSBvcmRlcmVkIGxpc3QuIEFsbCBwcmlvciByZXF1ZXN0cyAKPj4gYXJlCj4+IGV4ZWN1 dGVkIG9uIG9sZCBjb2hlcmVuY3kgc2V0dGluZ3MsIGFuZCBhbGwgZXhlYyByZXF1ZXN0cyBhZnRl ciB0aGUgCj4+IElPQ1RMCj4+IHdpbGwgdXNlIG5ldyBzZXR0aW5ncy4KPj4KPj4gUmF0aW9uYWxl Ogo+Pgo+PiBUaGUgT3BlbkNMIGRyaXZlciBkZXZlbHBlcnMgcmVxdWVzdGVkIGEgZnVuY3Rpb25h bGl0eSB0byBjb250cm9sIGNhY2hlCj4+IGNvaGVyZW5jeSBhdCBkYXRhIHBvcnQgbGV2ZWwuIEtl ZXBpbmcgdGhlIGNvaGVyZW5jeSBhdCB0aGF0IGxldmVsIGlzIAo+PiBkaXNhYmxlZAo+PiBieSBk ZWZhdWx0IGR1ZSB0byBpdHMgcGVyZm9ybWFuY2UgY29zdHMuIE9wZW5DTCBkcml2ZXIgaXMgcGxh bm5pbmcgdG8KPj4gZW5hYmxlIGl0IGZvciBhIHNtYWxsIHN1YnNldCBvZiBzdWJtaXNzaW9ucywg d2hlbiBzdWNoIGZ1bmN0aW9uYWxpdHkgaXMKPj4gcmVxdWlyZWQuIEJlbG93IGFyZSBhbnN3ZXJz IHRvIGJhc2ljIHF1ZXN0aW9uIGV4cGxhaW5pbmcgYmFja2dyb3VuZAo+PiBvZiB0aGUgZnVuY3Rp b25hbGl0eSBhbmQgcmVhc29uaW5nIGZvciB0aGUgcHJvcG9zZWQgaW1wbGVtZW50YXRpb246Cj4+ Cj4+IDEuIFdoeSBkbyB3ZSBuZWVkIGEgY29oZXJlbmN5IGVuYWJsZS9kaXNhYmxlIHN3aXRjaCBm b3IgbWVtb3J5IHRoYXQgCj4+IGlzIHNoYXJlZAo+PiBiZXR3ZWVuIENQVSBhbmQgR0VOIChHUFUp Pwo+Pgo+PiBNZW1vcnkgY29oZXJlbmN5IGJldHdlZW4gQ1BVIGFuZCBHRU4sIHdoaWxlIGJlaW5n IGEgZ3JlYXQgZmVhdHVyZSAKPj4gdGhhdCBlbmFibGVzCj4+IENMX01FTV9TVk1fRklORV9HUkFJ Tl9CVUZGRVIgT0NMIGNhcGFiaWxpdHkgb24gSW50ZWwgR0VOIAo+PiBhcmNoaXRlY3R1cmUsIGFk ZHMKPj4gb3ZlcmhlYWQgcmVsYXRlZCB0byB0cmFja2luZyAoc25vb3BpbmcpIG1lbW9yeSBpbnNp ZGUgZGlmZmVyZW50IGNhY2hlIAo+PiB1bml0cwo+PiAoTDEkLCBMMiQsIEwzJCwgTExDJCwgZXRj LikuIEF0IHRoZSBzYW1lIHRpbWUsIG1pbm9yaXR5IG9mIG1vZGVybiBPQ0wKPj4gYXBwbGljYXRp b25zIGFjdHVhbGx5IHVzZSBDTF9NRU1fU1ZNX0ZJTkVfR1JBSU5fQlVGRkVSIChhbmQgaGVuY2Ug Cj4+IHJlcXVpcmUKPj4gbWVtb3J5IGNvaGVyZW5jeSBiZXR3ZWVuIENQVSBhbmQgR1BVKS4gVGhl IGdvYWwgb2YgY29oZXJlbmN5IAo+PiBlbmFibGUvZGlzYWJsZQo+PiBzd2l0Y2ggaXMgdG8gcmVt b3ZlIG92ZXJoZWFkIG9mIG1lbW9yeSBjb2hlcmVuY3kgd2hlbiBtZW1vcnkgCj4+IGNvaGVyZW5j eSBpcyBub3QKPj4gbmVlZGVkLgo+Pgo+PiAyLiBXaHkgZG8gd2UgbmVlZCBhIGdsb2JhbCBjb2hl cmVuY3kgc3dpdGNoPwo+Pgo+PiBJbiBvcmRlciB0byBzdXBwb3J0IEkvTyBjb21tYW5kcyBmcm9t IHdpdGhpbiBFVXMgKEV4ZWN1dGlvbiBVbml0cyksIAo+PiBJbnRlbCBHRU4KPj4gSVNBIChHRU4g SW5zdHJ1Y3Rpb24gU2V0IEFzc2VtYmx5KSBjb250YWlucyBkZWRpY2F0ZWQgInNlbmQiIAo+PiBp bnN0cnVjdGlvbnMuCj4+IFRoZXNlIHNlbmQgaW5zdHJ1Y3Rpb25zIHByb3ZpZGUgc2V2ZXJhbCBh ZGRyZXNzaW5nIG1vZGVscy4gT25lIG9mIHRoZXNlCj4+IGFkZHJlc3NpbmcgbW9kZWxzIChuYW1l ZCAic3RhdGVsZXNzIikgcHJvdmlkZXMgbW9zdCBmbGV4aWJsZSBJL08gCj4+IHVzaW5nIHBsYWlu Cj4+IHZpcnR1YWwgYWRkcmVzc2VzIChhcyBvcHBvc2VkIHRvIGJ1ZmZlcl9oYW5kbGUrb2Zmc2V0 IG1vZGVscykuIFRoaXMgCj4+ICJzdGF0ZWxlc3MiCj4+IG1vZGVsIGlzIHNpbWlsYXIgdG8gcmVn dWxhciBtZW1vcnkgbG9hZC9zdG9yZSBvcGVyYXRpb25zIGF2YWlsYWJsZSBvbiAKPj4gdHlwaWNh bAo+PiBDUFVzLiBTaW5jZSB0aGlzIG1vZGVsIHByb3ZpZGVzIEkvTyB1c2luZyBhcmJpdHJhcnkg dmlydHVhbCAKPj4gYWRkcmVzc2VzLCBpdAo+PiBlbmFibGVzIGFsZ29yaXRobWljIGRlc2lnbnMg dGhhdCBhcmUgYmFzZWQgb24gcG9pbnRlci10by1wb2ludGVyIAo+PiAoZS5nLiBidWZmZXIKPj4g b2YgcG9pbnRlcnMpIGNvbmNlcHRzLiBGb3IgaW5zdGFuY2UsIGl0IGFsbG93cyBjcmVhdGluZyB0 cmVlLWxpa2UgZGF0YQo+PiBzdHJ1Y3R1cmVzIHN1Y2ggYXM6Cj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fX19fX19fX19fX19fX18KPj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgIE5PREUxwqDCoMKgwqAgfAo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB1aW50NjRfdCBkYXRhwqAgfAo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tLS0tLS0tLS18Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IE5PREUqwqAgfMKgIE5PREUq fAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLS0tKy0tLS0t LS0rCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgL8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIFwKPj4gwqDCoMKgIF9fX19fX19fX19fX19fX18vwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIFxfX19fX19fX19fX19fX19fCj4+IMKgwqAgfMKgwqDCoMKg wqAgTk9ERTLCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDC oMKgIE5PREUzwqDCoMKgwqAgfAo+PiDCoMKgIHwgdWludDY0X3QgZGF0YcKgIHzCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfCB1aW50NjRfdCBkYXRhwqAgfAo+PiDCoMKgICstLS0tLS0t LS0tLS0tLS0tfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLS0t LXwKPj4gwqDCoCB8IE5PREUqwqAgfMKgIE5PREUqfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB8IE5PREUqwqAgfMKgIE5PREUqfAo+PiDCoMKgICstLS0tLS0tLSstLS0tLS0tK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0rLS0tLS0tLSsKPj4KPj4gUGxlYXNl IG5vdGUgdGhhdCBwb2ludGVycyBpbnNpZGUgc3VjaCBzdHJ1Y3R1cmVzIGNhbiBwb2ludCB0byBt ZW1vcnkgCj4+IGxvY2F0aW9ucwo+PiBpbiBkaWZmZXJlbnQgT0NMIGFsbG9jYXRpb25zwqAgLSBl LmcuIE5PREUxIGFuZCBOT0RFMiBjYW4gcmVzaWRlIGluIAo+PiBvbmUgT0NMCj4+IGFsbG9jYXRp b24gd2hpbGUgTk9ERTMgcmVzaWRlcyBpbiBhIGNvbXBsZXRlbHkgc2VwYXJhdGUgT0NMIGFsbG9j YXRpb24uCj4+IEFkZGl0aW9uYWxseSwgc3VjaCBwb2ludGVycyBjYW4gYmUgc2hhcmVkIHdpdGgg Q1BVIChpLmUuIHVzaW5nIFNWTSAtIAo+PiBTaGFyZWQKPj4gVmlydHVhbCBNZW1vcnkgZmVhdHVy ZSkuIFVzaW5nIHBvaW50ZXJzIGZyb20gZGlmZmVyZW50IGFsbG9jYXRpb25zIAo+PiBkb2Vzbid0 Cj4+IGFmZmVjdCB0aGUgc3RhdGVsZXNzIGFkZHJlc3NpbmcgbW9kZWwgd2hpY2ggZXZlbiBhbGxv d3Mgc2NhdHRlcmVkIAo+PiByZWFkaW5nIGZyb20KPj4gZGlmZmVyZW50IGFsbG9jYXRpb25zIGF0 IHRoZSBzYW1lIHRpbWUgKGkuZS4gYnkgdXRpbGl6aW5nIFNJTUQtbmF0dXJlIAo+PiBvZiBzZW5k Cj4+IGluc3RydWN0aW9ucykuCj4+Cj4+IFdoZW4gaXQgY29tZXMgdG8gY29oZXJlbmN5IHByb2dy YW1taW5nLCBzZW5kIGluc3RydWN0aW9ucyBpbiAKPj4gc3RhdGVsZXNzIG1vZGVsCj4+IGNhbiBi ZSBlbmNvZGVkIChhdCBJU0EgbGV2ZWwpIHRvIGVpdGhlciB1c2Ugb3IgZGlzYWJsZSBjb2hlcmVu Y3kuIAo+PiBIb3dldmVyLCBmb3IKPj4gZ2VuZXJpYyBPQ0wgYXBwbGljYXRpb25zIChzdWNoIGFz IGV4YW1wbGUgd2l0aCB0cmVlLWxpa2UgZGF0YSAKPj4gc3RydWN0dXJlKSwgT0NMCj4+IGNvbXBp bGVyIGlzIG5vdCBhYmxlIHRvIGRldGVybWluZSBvcmlnaW4gb2YgbWVtb3J5IHBvaW50ZWQgdG8g YnkgYW4gCj4+IGFyYml0cmFyeQo+PiBwb2ludGVyIC0gaS5lLiBpcyBub3QgYWJsZSB0byB0cmFj ayBnaXZlbiBwb2ludGVyIGJhY2sgdG8gYSBzcGVjaWZpYwo+PiBhbGxvY2F0aW9uLiBBcyBzdWNo LCBpdCdzIG5vdCBhYmxlIHRvIGRlY2lkZSB3aGV0aGVyIGNvaGVyZW5jeSBpcyAKPj4gbmVlZGVk IG9yIG5vdAo+PiBmb3Igc3BlY2lmaWMgcG9pbnRlciAob3IgZm9yIHNwZWNpZmljIEkvTyBpbnN0 cnVjdGlvbikuIEFzIGEgcmVzdWx0LCAKPj4gY29tcGlsZXIKPj4gZW5jb2RlcyBhbGwgc3RhdGVs ZXNzIHNlbmRzIGFzIGNvaGVyZW50IChkb2luZyBvdGhlcndpc2Ugd291bGQgbGVhZCB0bwo+PiBm dW5jdGlvbmFsIGlzc3VlcyByZXN1bHRpbmcgZnJvbSBkYXRhIGNvcnJ1cHRpb24pLiBQbGVhc2Ug bm90ZSB0aGF0IAo+PiBpdCB3b3VsZCBiZQo+PiBwb3NzaWJsZSB0byB3b3JrYXJvdW5kIHRoaXMg KGUuZy4gYmFzZWQgb24gYWxsb2NhdGlvbnMgbWFwIGFuZCAKPj4gcG9pbnRlciBib3VuZHMKPj4g Y2hlY2tpbmcgcHJpb3IgdG8gZWFjaCBJL08gaW5zdHJ1Y3Rpb24pIGJ1dCB0aGUgcGVyZm9ybWFu Y2UgY29zdCBvZiBzdWNoCj4+IHdvcmthcm91bmQgd291bGQgYmUgbWFueSB0aW1lcyBncmVhdGVy IHRoYW4gdGhlIGNvc3Qgb2Yga2VlcGluZyAKPj4gY29oZXJlbmN5Cj4+IGFsd2F5cyBlbmFibGVk LiBBcyBzdWNoLCBlbmFibGluZy9kaXNhYmxpbmcgbWVtb3J5IGNvaGVyZW5jeSBhdCBHRU4gCj4+ IElTQSBsZXZlbAo+PiBpcyBub3QgZmVhc2libGUgYW5kIGFsdGVybmF0aXZlIG1ldGhvZCBpcyBu ZWVkZWQuCj4+Cj4+IFN1Y2ggYWx0ZXJuYXRpdmUgc29sdXRpb24gaXMgdG8gaGF2ZSBhIGdsb2Jh bCBjb2hlcmVuY3kgc3dpdGNoIHRoYXQgCj4+IGFsbG93cwo+PiBkaXNhYmxpbmcgY29oZXJlbmN5 IGZvciBzaW5nbGUgKHRob3VnaCBlbnRpcmUpIEdQVSBzdWJtaXNzaW9uLiBUaGlzIGlzCj4+IGJl bmVmaWNpYWwgYmVjYXVzZSB0aGlzIHdheSB3ZToKPj4gKiBjYW4gZW5hYmxlIChhbmQgcGF5IGZv cikgY29oZXJlbmN5IG9ubHkgaW4gc3VibWlzc2lvbnMgdGhhdCAKPj4gYWN0dWFsbHkgbmVlZAo+ PiBjb2hlcmVuY3kgKHN1Ym1pc3Npb25zIHRoYXQgdXNlIENMX01FTV9TVk1fRklORV9HUkFJTl9C VUZGRVIgcmVzb3VyY2VzKQo+PiAqIGRvbid0IGNhcmUgYWJvdXQgY29oZXJlbmN5IGF0IEdFTiBJ U0EgZ3JhbnVsYXJpdHkgKG5vIHBlcmZvcm1hbmNlIAo+PiBpbXBhY3QpCj4+Cj4+IDMuIFdpbGwg Y29oZXJlbmN5IHN3aXRjaCBiZSB1c2VkIGZyZXF1ZW50bHk/Cj4+Cj4+IFRoZXJlIGFyZSBzY2Vu YXJpb3MgdGhhdCB3aWxsIHJlcXVpcmUgZnJlcXVlbnQgdG9nZ2xpbmcgb2YgdGhlIGNvaGVyZW5j eQo+PiBzd2l0Y2guCj4+IEUuZy4gYW4gYXBwbGljYXRpb24gaGFzIHR3byBPQ0wgY29tcHV0ZSBr ZXJuZWxzOiBrZXJuX21hc3RlciBhbmQgCj4+IGtlcm5fd29ya2VyLgo+PiBrZXJuX21hc3RlciB1 c2VzLCBjb25jdXJyZW50bHkgd2l0aCBDUFUsIHNvbWUgZmluZSBncmFpbiBTVk0gcmVzb3VyY2Vz Cj4+IChDTF9NRU1fU1ZNX0ZJTkVfR1JBSU5fQlVGRkVSKS4gVGhlc2UgcmVzb3VyY2VzIGNvbnRh aW4gZGVzY3JpcHRvcnMgb2YKPj4gY29tcHV0YXRpb25hbCB3b3JrIHRoYXQgbmVlZHMgdG8gYmUg ZXhlY3V0ZWQuIGtlcm5fbWFzdGVyIGFuYWx5emVzIAo+PiBpbmNvbWluZwo+PiB3b3JrIGRlc2Ny aXB0b3JzIGFuZCBwb3B1bGF0ZXMgYSBwbGFpbiBPQ0wgYnVmZmVyIChub24tZmluZS1ncmFpbikg Cj4+IHdpdGggcGF5bG9hZAo+PiBmb3Iga2Vybl93b3JrZXIuIE9uY2Uga2Vybl9tYXN0ZXIgaXMg ZG9uZSwga2Vybl93b3JrZXIga2lja3MtaW4gYW5kIAo+PiBwcm9jZXNzZXMKPj4gdGhlIHBheWxv YWQgdGhhdCBrZXJuX21hc3RlciBwcm9kdWNlZC4gVGhlc2UgdHdvIGtlcm5lbHMgd29yayBpbiBh IAo+PiBsb29wLCBvbmUKPj4gYWZ0ZXIgYW5vdGhlci4gU2luY2Ugb25seSBrZXJuX21hc3RlciBy ZXF1aXJlcyBjb2hlcmVuY3ksIGtlcm5fd29ya2VyIAo+PiBzaG91bGQKPj4gbm90IGJlIGZvcmNl ZCB0byBwYXkgZm9yIGl0LiBUaGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0byBoYXZlIHRoZSAKPj4g YWJpbGl0eSB0bwo+PiB0b2dnbGUgY29oZXJlbmN5IHN3aXRjaCBvbiBvciBvZmYgcGVyIGVhY2gg R1BVIHN1Ym1pc3Npb246Cj4+IChFTkFCTEUgQ09IRVJFTkNZKSBrZXJuX21hc3RlciAtPiAoRElT QUJMRSBDT0hFUkVOQ1kpa2Vybl93b3JrZXIgLT4gCj4+IChFTkFCTEUKPj4gQ09IRVJFTkNZKSBr ZXJuX21hc3RlciAtPiAoRElTQUJMRSBDT0hFUkVOQ1kpa2Vybl93b3JrZXIgLT4gLi4uCj4+Cj4+ IHYyOiBGaXhlZCBjb21waWxhdGlvbiB3YXJuaW5nLgo+PiB2MzogUmVmYWN0b3JlZCB0aGUgcGF0 Y2ggdG8gYWRkIElPQ1RMIGluc3RlYWQgb2YgZXhlYyBmbGFnLgo+PiB2NDogUmVuYW1lZCBhbmQg ZG9jdW1lbnRlZCB0aGUgQVBJIGZsYWcuIFVzZWQgc3RyaWN0IHZhbHVlcy4KPj4gwqDCoMKgwqAg UmVtb3ZlZCByZWR1bmRhbnQgR0VNX1dBUk5fT04oKXMuIEltcHJvdmVkIHRvIGNvZGluZyBzdGFu ZGFyZC4KPj4gwqDCoMKgwqAgSW50cm9kdWNlZCBhIG1hY3JvIGZvciBjaGVja2luZyB3aGV0aGVy IGhhcmR3YXJlIHN1cHBvcnRzIHRoZSAKPj4gZmVhdHVyZS4KPj4KPj4gQ2M6IEpvb25hcyBMYWh0 aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6IFR2cnRrbyBVcnN1 bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+IENjOiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KPj4gQ2M6IE1pY2hhbCBXaW5pYXJza2kgPG1pY2hhbC53aW5p YXJza2lAaW50ZWwuY29tPgo+Pgo+PiBCc3BlYzogMTE0MTkKPj4gU2lnbmVkLW9mZi1ieTogVG9t YXN6IExpcyA8dG9tYXN6Lmxpc0BpbnRlbC5jb20+Cj4+IC0tLQo+PiDCoCBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5owqDCoMKgwqDCoMKgwqDCoCB8wqAgMSArCj4+IMKgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyB8IDQxIAo+PiArKysrKysrKysrKysrKysr KysrKysrKysrKysKPj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5o IHzCoCA2ICsrKysKPj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmPCoMKgwqDC oMKgwqDCoCB8IDQ5IAo+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmjCoMKgwqDCoMKgwqDCoCB8wqAgNCArKysK Pj4gwqAgaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCA2ICsrKysKPj4gwqAgNiBmaWxlcyBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKQo+Pgo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAKPj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IGluZGV4IDA5YWIxMjQuLjdkNGJiZDUgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBAQCAtMjUyNCw2ICsyNTI0LDcgQEAgaW50 ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAKPj4gKmRldl9wcml2KQo+PiDC oCAjZGVmaW5lIEhBU19FRFJBTShkZXZfcHJpdinCoMKgwqAgKCEhKChkZXZfcHJpdiktPmVkcmFt X2NhcCAmIAo+PiBFRFJBTV9FTkFCTEVEKSkKPj4gwqAgI2RlZmluZSBIQVNfV1QoZGV2X3ByaXYp wqDCoMKgICgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgXAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgJiYgSEFTX0VEUkFNKGRl dl9wcml2KSkKPj4gKyNkZWZpbmUgSEFTX0RBVEFfUE9SVF9DT0hFUkVOQ1koZGV2X3ByaXYpIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4+IMKgIMKgICNkZWZpbmUgSFdTX05FRURTX1BIWVNJ Q0FMKGRldl9wcml2KSAKPj4gKChkZXZfcHJpdiktPmluZm8uaHdzX25lZWRzX3BoeXNpY2FsKQo+ PiDCoCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j IAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+PiBpbmRleCBi MTA3NzBjLi42ZGIzNTJlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCj4+IEBAIC03MTEsNiArNzExLDI2IEBAIHN0YXRpYyBib29sIGNsaWVudF9pc19iYW5u ZWQoc3RydWN0IAo+PiBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdikKPj4gwqDCoMKg wqDCoCByZXR1cm4gYXRvbWljX3JlYWQoJmZpbGVfcHJpdi0+YmFuX3Njb3JlKSA+PSAKPj4gSTkx NV9DTElFTlRfU0NPUkVfQkFOTkVEOwo+PiDCoCB9Cj4+IMKgICtzdGF0aWMgaW50IGk5MTVfZ2Vt X2NvbnRleHRfc2V0X2RhdGFfcG9ydF9jb2hlcmVudChzdHJ1Y3QgCj4+IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCkKPj4gK3sKPj4gK8KgwqDCoCBpbnQgcmV0Owo+PiArCj4+ICvCoMKgwqAgcmV0ID0g aW50ZWxfbHJfY29udGV4dF9tb2RpZnlfZGF0YV9wb3J0X2NvaGVyZW5jeShjdHgsIHRydWUpOwo+ PiArwqDCoMKgIGlmICghcmV0KQo+PiArwqDCoMKgwqDCoMKgwqAgX19zZXRfYml0KENPTlRFWFRf REFUQV9QT1JUX0NPSEVSRU5ULCAmY3R4LT5mbGFncyk7Cj4+ICvCoMKgwqAgcmV0dXJuIHJldDsK Pj4gK30KPj4gKwo+PiArc3RhdGljIGludCBpOTE1X2dlbV9jb250ZXh0X2NsZWFyX2RhdGFfcG9y dF9jb2hlcmVudChzdHJ1Y3QgCj4+IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPj4gK3sKPj4gK8Kg wqDCoCBpbnQgcmV0Owo+PiArCj4+ICvCoMKgwqAgcmV0ID0gaW50ZWxfbHJfY29udGV4dF9tb2Rp ZnlfZGF0YV9wb3J0X2NvaGVyZW5jeShjdHgsIGZhbHNlKTsKPj4gK8KgwqDCoCBpZiAoIXJldCkK Pj4gK8KgwqDCoMKgwqDCoMKgIF9fY2xlYXJfYml0KENPTlRFWFRfREFUQV9QT1JUX0NPSEVSRU5U LCAmY3R4LT5mbGFncyk7Cj4+ICvCoMKgwqAgcmV0dXJuIHJldDsKPgo+IElzIHRoZXJlIGEgZ29v ZCByZWFzb24geW91IGFsbG93IHVzZXJzcGFjZSB0byBrZWVwIGVtaXR0aW5nIHVubGltaXRlZCAK PiBudW1iZXIgb2YgY29tbWFuZHMgd2hpY2ggYWN0dWFsbHkgZG8gbm90IGNoYW5nZSB0aGUgc3Rh dHVzPyBJZiBub3QgCj4gcGxlYXNlIGNvbnNpZGVyIGdhdGluZyB0aGUgY29tbWFuZCBlbWlzc2lv biB3aXRoIAo+IHRlc3RfYW5kX3NldF9iaXQvdGVzdF9hbmRfY2xlYXJfYml0LiBIbS4uIGFwYXJ0 IGV2ZW4gd2l0aCB0aGF0IHRoZXkgCj4gY291bGQga2VlcCB0b2dnbGluZyBhZCBpbmZpbml0dW0g d2l0aCBubyByZWFsIHdvcmsgaW4gYmV0d2Vlbi4gSGFzIGl0IAo+IGJlZW4gY29uc2lkZXJlZCB0 byBvbmx5IHNhdmUgdGhlIGRlc2lyZWQgc3RhdGUgaW4gc2V0IHBhcmFtIGFuZCB0aGVuIAo+IGVt aXQgaXQsIGlmIG5lZWRlZCwgYmVmb3JlIG5leHQgZXhlY2J1Zj8gTWlub3IgdGhpbmcgaW4gYW55 IGNhc2UsIGp1c3QgCj4gY3VyaW91cyBzaW5jZSBJIHdhc24ndCBmb2xsb3dpbmcgdGhlIHRocmVh ZHMuCj4KKGRpc2N1c3NlZCBmdXJ0aGVyIGluIHNlcGFyYXRlIHRocmVhZCkKPj4gK30KPj4gKwo+ PiDCoCBpbnQgaTkxNV9nZW1fY29udGV4dF9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc3RydWN0IGRybV9maWxlICpmaWxlKQo+PiDCoCB7Cj4+IEBAIC03ODQsNiArODA0LDcgQEAg aW50IGk5MTVfZ2VtX2NvbnRleHRfZGVzdHJveV9pb2N0bChzdHJ1Y3QgCj4+IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPj4gwqAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAKPj4gKmRhdGEsCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4+ IMKgIHsKPj4gK8KgwqDCoCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4KPiBGZWVsIGZyZWUgdG8gdXNlIHRoZSBsb2NhbCBmb3IgdGhlIG90aGVyIGV4 aXN0aW5nIHRvX2k5MTUoZGV2KSBjYWxsIAo+IHNpdGVzIGluIGhlcmUuCj4KPiBBbHNvIHVzZSBp OTE1IGZvciB0aGUgbG9jYWwgbmFtZS4gVW5sZXNzIEk5MTVfUkVBRC9XUklURSBpcyB1c2VkIGk5 MTUgCj4gaXMgcHJlZmVycmVkIG5vd2FkYXlzLgpXaWxsIGRvLgo+Cj4+IMKgwqDCoMKgwqAgc3Ry dWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7 Cj4+IMKgwqDCoMKgwqAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICphcmdzID0g ZGF0YTsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+PiBAQCAt ODE4LDYgKzgzOSwxMiBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1 Y3QgCj4+IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4gwqDCoMKgwqDCoCBjYXNlIEk5 MTVfQ09OVEVYVF9QQVJBTV9QUklPUklUWToKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGFyZ3MtPnZh bHVlID0gY3R4LT5zY2hlZC5wcmlvcml0eTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+ PiArwqDCoMKgIGNhc2UgSTkxNV9DT05URVhUX1BBUkFNX0RBVEFfUE9SVF9DT0hFUkVOQ1k6Cj4+ ICvCoMKgwqDCoMKgwqDCoCBpZiAoIUhBU19EQVRBX1BPUlRfQ09IRVJFTkNZKGRldl9wcml2KSkK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gLUVOT0RFVjsKPj4gK8KgwqDCoMKgwqDC oMKgIGVsc2UKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJncy0+dmFsdWUgPSBpOTE1X2dl bV9jb250ZXh0X2lzX2RhdGFfcG9ydF9jb2hlcmVudChjdHgpOwo+PiArwqDCoMKgwqDCoMKgwqAg YnJlYWs7Cj4+IMKgwqDCoMKgwqAgZGVmYXVsdDoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9 IC1FSU5WQUw7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4gQEAgLTgzMCw2ICs4NTcs NyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgCj4+IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4gwqAgaW50IGk5MTVfZ2VtX2NvbnRleHRfc2V0cGFy YW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAKPj4gKmRhdGEsCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUpCj4+IMKgIHsKPj4gK8KgwqDCoCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7Cj4KPiBBcyB3aXRoIGdldF9wYXJhbS4KQWNrLgo+Cj4+IMKgwqDCoMKg wqAgc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0gZmlsZS0+ZHJpdmVy X3ByaXY7Cj4+IMKgwqDCoMKgwqAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICph cmdzID0gZGF0YTsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+ PiBAQCAtODkzLDYgKzkyMSwxOSBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9zZXRwYXJhbV9pb2N0 bChzdHJ1Y3QgCj4+IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+PiDCoCArwqDCoMKgIGNhc2Ug STkxNV9DT05URVhUX1BBUkFNX0RBVEFfUE9SVF9DT0hFUkVOQ1k6Cj4+ICvCoMKgwqDCoMKgwqDC oCBpZiAoYXJncy0+c2l6ZSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gLUVJTlZB TDsKPj4gK8KgwqDCoMKgwqDCoMKgIGVsc2UgaWYgKCFIQVNfREFUQV9QT1JUX0NPSEVSRU5DWShk ZXZfcHJpdikpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IC1FTk9ERVY7Cj4+ICvC oMKgwqDCoMKgwqDCoCBlbHNlIGlmIChhcmdzLT52YWx1ZSA9PSAxKQo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCByZXQgPSBpOTE1X2dlbV9jb250ZXh0X3NldF9kYXRhX3BvcnRfY29oZXJlbnQo Y3R4KTsKPj4gK8KgwqDCoMKgwqDCoMKgIGVsc2UgaWYgKGFyZ3MtPnZhbHVlID09IDApCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IGk5MTVfZ2VtX2NvbnRleHRfY2xlYXJfZGF0YV9w b3J0X2NvaGVyZW50KGN0eCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBlbHNlCj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHJldCA9IC1FSU5WQUw7Cj4+ICvCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4g Kwo+PiDCoMKgwqDCoMKgIGRlZmF1bHQ6Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSAtRUlO VkFMOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5oCj4+IGluZGV4IGIxMTZlNDkuLmU4Y2NiNzAgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKPj4gQEAgLTEyNiw2ICsxMjYs NyBAQCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCB7Cj4+IMKgICNkZWZpbmUgQ09OVEVYVF9CQU5O QUJMRcKgwqDCoMKgwqDCoMKgIDMKPj4gwqAgI2RlZmluZSBDT05URVhUX0JBTk5FRMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgNAo+PiDCoCAjZGVmaW5lIENPTlRFWFRfRk9SQ0VfU0lOR0xFX1NVQk1J U1NJT07CoMKgwqAgNQo+PiArI2RlZmluZSBDT05URVhUX0RBVEFfUE9SVF9DT0hFUkVOVMKgwqDC oCA2Cj4+IMKgIMKgwqDCoMKgwqAgLyoqCj4+IMKgwqDCoMKgwqDCoCAqIEBod19pZDogLSB1bmlx dWUgaWRlbnRpZmllciBmb3IgdGhlIGNvbnRleHQKPj4gQEAgLTI1Nyw2ICsyNTgsMTEgQEAgc3Rh dGljIGlubGluZSB2b2lkIAo+PiBpOTE1X2dlbV9jb250ZXh0X3NldF9mb3JjZV9zaW5nbGVfc3Vi bWlzc2lvbihzdHJ1Y3QgaTkxNV9nZW1fCj4+IMKgwqDCoMKgwqAgX19zZXRfYml0KENPTlRFWFRf Rk9SQ0VfU0lOR0xFX1NVQk1JU1NJT04sICZjdHgtPmZsYWdzKTsKPj4gwqAgfQo+PiDCoCArc3Rh dGljIGlubGluZSBib29sIGk5MTVfZ2VtX2NvbnRleHRfaXNfZGF0YV9wb3J0X2NvaGVyZW50KHN0 cnVjdCAKPj4gaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+PiArewo+PiArwqDCoMKgIHJldHVybiB0 ZXN0X2JpdChDT05URVhUX0RBVEFfUE9SVF9DT0hFUkVOVCwgJmN0eC0+ZmxhZ3MpOwo+PiArfQo+ PiArCj4+IMKgIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X2dlbV9jb250ZXh0X2lzX2RlZmF1bHQo Y29uc3Qgc3RydWN0IAo+PiBpOTE1X2dlbV9jb250ZXh0ICpjKQo+PiDCoCB7Cj4+IMKgwqDCoMKg wqAgcmV0dXJuIGMtPnVzZXJfaGFuZGxlID09IERFRkFVTFRfQ09OVEVYVF9IQU5ETEU7Cj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAKPj4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiBpbmRleCBhYjg5ZGFiLi4xZjAzN2UzIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiBAQCAtMjU5LDYgKzI1OSw1NSBAQCBpbnRl bF9scl9jb250ZXh0X2Rlc2NyaXB0b3JfdXBkYXRlKHN0cnVjdCAKPj4gaTkxNV9nZW1fY29udGV4 dCAqY3R4LAo+PiDCoMKgwqDCoMKgIGNlLT5scmNfZGVzYyA9IGRlc2M7Cj4+IMKgIH0KPj4gwqAg K3N0YXRpYyBpbnQgZW1pdF9zZXRfZGF0YV9wb3J0X2NvaGVyZW5jeShzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpyZXEsIAo+PiBib29sIGVuYWJsZSkKPgo+IEFmdGVyIG11Y2ggZGlzYWdyZWVtZW50IHdl IGVuZGVkIHVwIHdpdGggcnEgYXMgdGhlIGNvbnNpc3RlbnQgbmFtaW5nIAo+IGZvciByZXF1ZXN0 cy4KOikKb2suCj4KPj4gK3sKPj4gK8KgwqDCoCB1MzIgKmNzOwo+PiArwqDCoMKgIGk5MTVfcmVn X3QgcmVnOwo+PiArCj4+ICvCoMKgwqAgR0VNX0JVR19PTihyZXEtPmVuZ2luZS0+Y2xhc3MgIT0g UkVOREVSX0NMQVNTKTsKPj4gK8KgwqDCoCBHRU1fQlVHX09OKElOVEVMX0dFTihyZXEtPmk5MTUp IDwgOSk7Cj4+ICsKPj4gK8KgwqDCoCBjcyA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKPj4g K8KgwqDCoCBpZiAoSVNfRVJSKGNzKSkKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBQVFJfRVJS KGNzKTsKPj4gKwo+PiArwqDCoMKgIGlmIChJTlRFTF9HRU4ocmVxLT5pOTE1KSA+PSAxMCkKPj4g K8KgwqDCoMKgwqDCoMKgIHJlZyA9IENOTF9IRENfQ0hJQ0tFTjA7Cj4+ICvCoMKgwqAgZWxzZQo+ PiArwqDCoMKgwqDCoMKgwqAgcmVnID0gSERDX0NISUNLRU4wOwo+PiArCj4+ICvCoMKgwqAgKmNz KysgPSBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKTsKPj4gK8KgwqDCoCAqY3MrKyA9IGk5MTVfbW1p b19yZWdfb2Zmc2V0KHJlZyk7Cj4+ICvCoMKgwqAgLyogRW5hYmxpbmcgY29oZXJlbmN5IG1lYW5z IGRpc2FibGluZyB0aGUgYml0IHdoaWNoIGZvcmNlcyBpdCAKPj4gb2ZmICovCj4+ICvCoMKgwqAg aWYgKGVuYWJsZSkKPj4gK8KgwqDCoMKgwqDCoMKgICpjcysrID0gX01BU0tFRF9CSVRfRElTQUJM RShIRENfRk9SQ0VfTk9OX0NPSEVSRU5UKTsKPj4gK8KgwqDCoCBlbHNlCj4+ICvCoMKgwqDCoMKg wqDCoCAqY3MrKyA9IF9NQVNLRURfQklUX0VOQUJMRShIRENfRk9SQ0VfTk9OX0NPSEVSRU5UKTsK Pj4gK8KgwqDCoCAqY3MrKyA9IE1JX05PT1A7Cj4+ICsKPj4gK8KgwqDCoCBpbnRlbF9yaW5nX2Fk dmFuY2UocmVxLCBjcyk7Cj4+ICsKPj4gK8KgwqDCoCByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiAr aW50Cj4+ICtpbnRlbF9scl9jb250ZXh0X21vZGlmeV9kYXRhX3BvcnRfY29oZXJlbmN5KHN0cnVj dCBpOTE1X2dlbV9jb250ZXh0IAo+PiAqY3R4LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib29sIGVuYWJsZSkKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpyZXE7Cj4KPiBycSBhcyBhYm92ZS4KYWNrCj4KPj4gK8KgwqDCoCBp bnQgcmV0Owo+PiArCj4+ICvCoMKgwqAgcmVxID0gaTkxNV9yZXF1ZXN0X2FsbG9jKGN0eC0+aTkx NS0+ZW5naW5lW1JDU10sIGN0eCk7Cj4+ICvCoMKgwqAgaWYgKElTX0VSUihyZXEpKQo+PiArwqDC oMKgwqDCoMKgwqAgcmV0dXJuIFBUUl9FUlIocmVxKTsKPj4gKwo+PiArwqDCoMKgIHJldCA9IGVt aXRfc2V0X2RhdGFfcG9ydF9jb2hlcmVuY3kocmVxLCBlbmFibGUpOwo+PiArCj4+ICvCoMKgwqAg aTkxNV9yZXF1ZXN0X2FkZChyZXEpOwo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4gK30K Pj4gKwo+PiDCoCBzdGF0aWMgc3RydWN0IGk5MTVfcHJpb2xpc3QgKgo+PiDCoCBsb29rdXBfcHJp b2xpc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcHJpbykKPj4gwqAgewo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggCj4+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPj4gaW5kZXggMTU5MzE5NC4uZjY5NjVhZSAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPj4gQEAgLTEwNCw0ICsxMDQsOCBAQCBz dHJ1Y3QgaTkxNV9nZW1fY29udGV4dDsKPj4gwqAgwqAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3Jl c3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiDCoCAraW50Cj4+ICtp bnRlbF9scl9jb250ZXh0X21vZGlmeV9kYXRhX3BvcnRfY29oZXJlbmN5KHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0IAo+PiAqY3R4LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBib29sIGVuYWJsZSk7Cj4+ICsKPj4gwqAgI2VuZGlmIC8qIF9JTlRFTF9M UkNfSF8gKi8KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+PiBpbmRleCA3ZjU2MzRjLi5lNjc3YmVhIDEwMDY0 NAo+PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPj4gKysrIGIvaW5jbHVkZS91 YXBpL2RybS9pOTE1X2RybS5oCj4+IEBAIC0xNDU2LDYgKzE0NTYsMTIgQEAgc3RydWN0IGRybV9p OTE1X2dlbV9jb250ZXh0X3BhcmFtIHsKPj4gwqAgI2RlZmluZcKgwqAgSTkxNV9DT05URVhUX01B WF9VU0VSX1BSSU9SSVRZwqDCoMKgIDEwMjMgLyogaW5jbHVzaXZlICovCj4+IMKgICNkZWZpbmXC oMKgIEk5MTVfQ09OVEVYVF9ERUZBVUxUX1BSSU9SSVRZwqDCoMKgwqDCoMKgwqAgMAo+PiDCoCAj ZGVmaW5lwqDCoCBJOTE1X0NPTlRFWFRfTUlOX1VTRVJfUFJJT1JJVFnCoMKgwqAgLTEwMjMgLyog aW5jbHVzaXZlICovCj4+ICsvKgo+PiArICogV2hlbiBkYXRhIHBvcnQgbGV2ZWwgY29oZXJlbmN5 IGlzIGVuYWJsZWQsIHRoZSBHUFUgd2lsbCB1cGRhdGUgCj4+IG1lbW9yeQo+PiArICogYnVmZmVy cyBzaGFyZWQgd2l0aCBDUFUsIGJ5IGZvcmNpbmcgaW50ZXJuYWwgY2FjaGUgdW5pdHMgdG8gc2Vu ZCAKPj4gbWVtb3J5Cj4+ICsgKiB3cml0ZXMgdG8gcmVhbCBSQU0gZmFzdGVyLiBLZWVwaW5nIHN1 Y2ggY29oZXJlbmN5IGhhcyBwZXJmb3JtYW5jZSAKPj4gY29zdC4KPgo+IElzIHRoaXMgY29tbWVu dCBjb3JyZWN0PyBJcyBpdCBhY3R1YWxseSBzZW5kaW5nIG1lbW9yeSB3cml0ZXMgdG8gCj4gX1JB TV8sIG9yIGp1c3QgdGhlIGNvaGVyZW5jeSBtb2RlIGVuYWJsZWQsIGV2ZW4gaWYgb25seSB0YXJn ZXR0aW5nIENQVSAKPiBvciBzaGFyZWQgY2FjaGUsIHdoaWNoIGFkZHMgYSBjb3N0PwpJJ20gbm90 IHN1cmUgd2hldGhlciB0aGVyZSBhcmUgZnVydGhlciBjb2hlcmVuY3kgbW9kZXMgdG8gY2hvb3Nl IGhvdyAKImRlZXAiIGNvaGVyZW5jeSBnb2VzLiBUaGUgdXNlIGNhc2Ugb2YgT0NMIFRlYW0gaXMg dG8gc2VlIGdyYWR1YWwgCmNoYW5nZXMgaW4gdGhlIGJ1ZmZlcnMgb24gQ1BVIHNpZGUgd2hpbGUg dGhlIGV4ZWN1dGlvbiBwcm9ncmVzc2VzLiBXcml0ZSAKdG8gUkFNIGlzIG5lZWRlZCB0byBhY2hp ZXZlIHRoYXQuIEFuZCB0aGF0IGxpbWl0cyBwZXJmb3JtYW5jZSBieSB1c2luZyAKUkFNIGJhbmR3 aWR0aC4KPgo+IHMvS2VlcGluZyBzdWNoIGNvaGVyZW5jeSBoYXMgcGVyZm9ybWFuY2UgY29zdC4v RW5hYmxpbmcgZGF0YSBwb3J0IAo+IGNvaGVyZW5jeSBoYXMgYSBwZXJmb3JtYW5jZSBjb3N0Li8g PyBPciAiY2FuIGhhdmUgYSBwZXJmb3JtYW5jZSBjb3N0Ij8KSSB3b3VsZCBwcmVmZXIgIkVuYWJs aW5nIGRhdGEgcG9ydCBjb2hlcmVuY3kgaGFzIGEgcGVyZm9ybWFuY2UgY29zdC4iLiAKVGhlcmUg bGlrZWx5IGFyZSB3b3JrbG9hZHMgd2l0aCB1bm1lYXN1cmVhYmxlIHBlcmZvcm1hbmNlIGltcGFj dCwgYnV0IGluIApyZWFsIHdvcmxkIHVzaW5nIG1vcmUgbWVtb3J5IHdyaXRlcyB3aWxsIGFsd2F5 cyBzbG93IGRvd24gc29tZXRoaW5nLgo+Cj4+ICsgKi8KPj4gKyNkZWZpbmUgSTkxNV9DT05URVhU X1BBUkFNX0RBVEFfUE9SVF9DT0hFUkVOQ1nCoMKgwqAgMHg3Cj4+IMKgwqDCoMKgwqAgX191NjQg dmFsdWU7Cj4+IMKgIH07Cj4+Cj4KPiBTaW5jZSBJIHVuZGVyc3RhbmQgdGhpcyBkZXNpZ24gaGFz IGJlZW4gYXBwcm92ZWQgYWxyZWFkeSBvbiB0aGUgaGlnaCAKPiBsZXZlbCwgYW5kIGFzIHlvdSBj YW4gc2VlIEkgb25seSBoYWQgc29tZSBtaW5vciBjb21tZW50cyB0byBhZGQsIEkgY2FuIAo+IHNh eSB0aGF0IHRoZSBwYXRjaCBpbiBwcmluY2lwbGUgbG9va3Mgb2theSB0byBtZS4KR3JlYXQ7IHdp bGwgcHJvZHVjZSBhIHY1IHNvb24uCi1Ub21hc3oKPgo+IFJlZ2FyZHMsCj4KPiBUdnJ0a28KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=