From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v14 06/11] x86/hvm/ioreq: add a new mappable resource type... Date: Thu, 14 Dec 2017 10:31:20 +0000 Message-ID: <193e413bf8be42548beedf216b34ada1@AMSPEX02CL03.citrite.net> References: <20171128150853.1927-1-paul.durrant@citrix.com> <20171128150853.1927-7-paul.durrant@citrix.com> <0ba2e22fae3b424cb63a3743b0a59c63@AMSPEX02CL03.citrite.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ePQna-0001yl-CX for xen-devel@lists.xenproject.org; Thu, 14 Dec 2017 10:31:30 +0000 In-Reply-To: <0ba2e22fae3b424cb63a3743b0a59c63@AMSPEX02CL03.citrite.net> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: "xen-devel@lists.xenproject.org" Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , Julien Grall , Ian Jackson List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFBhdWwgRHVycmFudAo+IFNlbnQ6 IDE0IERlY2VtYmVyIDIwMTcgMDk6NTIKPiBUbzogUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRA Y2l0cml4LmNvbT47IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwo+IENjOiBHZW9yZ2Ug RHVubGFwIDxHZW9yZ2UuRHVubGFwQGNpdHJpeC5jb20+OyBXZWkgTGl1Cj4gPHdlaS5saXUyQGNp dHJpeC5jb20+OyBBbmRyZXcgQ29vcGVyIDxBbmRyZXcuQ29vcGVyM0BjaXRyaXguY29tPjsgSWFu Cj4gSmFja3NvbiA8SWFuLkphY2tzb25AY2l0cml4LmNvbT47IEtvbnJhZCBSemVzenV0ZWsgV2ls awo+IDxrb25yYWQud2lsa0BvcmFjbGUuY29tPjsgU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVs bGluaUBrZXJuZWwub3JnPjsgVGltCj4gKFhlbi5vcmcpIDx0aW1AeGVuLm9yZz47IEp1bGllbiBH cmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cj4gU3ViamVjdDogUkU6IFtQQVRDSCB2MTQgMDYv MTFdIHg4Ni9odm0vaW9yZXE6IGFkZCBhIG5ldyBtYXBwYWJsZQo+IHJlc291cmNlIHR5cGUuLi4K PiAKPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiBQYXVsIER1cnJhbnQg W21haWx0bzpwYXVsLmR1cnJhbnRAY2l0cml4LmNvbV0KPiA+IFNlbnQ6IDI4IE5vdmVtYmVyIDIw MTcgMTU6MDkKPiA+IFRvOiB4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKPiA+IENjOiBQ YXVsIER1cnJhbnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPjsgR2VvcmdlIER1bmxhcAo+ID4g PEdlb3JnZS5EdW5sYXBAY2l0cml4LmNvbT47IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+ OyBBbmRyZXcKPiA+IENvb3BlciA8QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT47IElhbiBKYWNr c29uCj4gPiA8SWFuLkphY2tzb25AY2l0cml4LmNvbT47IEtvbnJhZCBSemVzenV0ZWsgV2lsawo+ ID4gPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+OyBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxs aW5pQGtlcm5lbC5vcmc+Owo+IFRpbQo+ID4gKFhlbi5vcmcpIDx0aW1AeGVuLm9yZz47IEp1bGll biBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cj4gPiBTdWJqZWN0OiBbUEFUQ0ggdjE0IDA2 LzExXSB4ODYvaHZtL2lvcmVxOiBhZGQgYSBuZXcgbWFwcGFibGUgcmVzb3VyY2UKPiA+IHR5cGUu Li4KPiA+Cj4gPiAuLi4gWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcgo+ID4KPiA+IFRoaXMg cGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyByZXNvdXJjZSB0eXBlIHRoYXQgY2FuIGJlIG1h cHBlZCB1c2luZwo+ID4gdGhlIFhFTk1FTV9hY3F1aXJlX3Jlc291cmNlIG1lbW9yeSBvcC4KPiA+ Cj4gPiBJZiBhbiBlbXVsYXRvciBtYWtlcyB1c2Ugb2YgdGhpcyByZXNvdXJjZSB0eXBlIHRoZW4s IGluc3RlYWQgb2YgbWFwcGluZwo+ID4gZ2ZucywgdGhlIElPUkVRIHNlcnZlciB3aWxsIGFsbG9j YXRlIHBhZ2VzIGZyb20gdGhlIGhlYXAuIFRoZXNlIHBhZ2VzCj4gPiB3aWxsIG5ldmVyIGJlIHBy ZXNlbnQgaW4gdGhlIFAyTSBvZiB0aGUgZ3Vlc3QgYXQgYW55IHBvaW50IGFuZCBzbyBhcmUKPiA+ IG5vdCB2dWxuZXJhYmxlIHRvIGFueSBkaXJlY3QgYXR0YWNrIGJ5IHRoZSBndWVzdC4gVGhleSBh cmUgb25seSBldmVyCj4gPiBhY2Nlc3NpYmxlIGJ5IFhlbiBhbmQgYW55IGRvbWFpbiB0aGF0IGhh cyBtYXBwaW5nIHByaXZpbGVnZSBvdmVyIHRoZQo+ID4gZ3Vlc3QgKHdoaWNoIG1heSBvciBtYXkg bm90IGJlIGxpbWl0ZWQgdG8gdGhlIGRvbWFpbiBydW5uaW5nIHRoZQo+ID4gZW11bGF0b3IpLgo+ ID4KPiA+IE5PVEU6IFVzZSBvZiB0aGUgbmV3IHJlc291cmNlIHR5cGUgaXMgbm90IGNvbXBhdGli bGUgd2l0aCB1c2Ugb2YKPiA+ICAgICAgIFhFTl9ETU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyB1 bmxlc3MgdGhlIFhFTl9ETU9QX25vX2dmbnMKPiBmbGFnCj4gPiBpcwo+ID4gICAgICAgc2V0Lgo+ ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j b20+Cj4gPiBSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgo+ID4g LS0tCj4gPiBDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgo+ ID4gQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cj4gPiBDYzogQW5kcmV3IENvb3Bl ciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KPiA+IENjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KPiA+IENjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJh ZC53aWxrQG9yYWNsZS5jb20+Cj4gPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGlu aUBrZXJuZWwub3JnPgo+ID4gQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgo+ID4gQ2M6IEp1 bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cj4gPgo+ID4gdjE0Ogo+ID4gIC0gQWRk cmVzc2VkIG1vcmUgY29tbWVudHMgZnJvbSBKYW4uCj4gPgo+ID4gdjEzOgo+ID4gIC0gSW50cm9k dWNlIGFuIGFyY2hfYWNxdWlyZV9yZXNvdXJjZSgpIGFzIHN1Z2dlc3RlZCBieSBKdWxpZW4gKGFu ZCBoYXZlCj4gPiAgICB0aGUgQVJNIHZhcmllbnQgc2ltcGx5IHJldHVybiAtRU9QTk9UU1VQUCku Cj4gPiAgLSBDaGVjayBmb3IgaW9yZXEgc2VydmVyIGlkIHRydW5jYXRpb24gYXMgcmVxdWVzdGVk IGJ5IEphbi4KPiA+ICAtIE5vdCBhZGRlZCBKYW4ncyBSLWIgZHVlIHRvIHN1YnN0YW50aXZlIGNo YW5nZSBmcm9tIHYxMi4KPiA+Cj4gPiB2MTI6Cj4gPiAgLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50 cyBmcm9tIEphbi4KPiA+ICAtIERyb3BwZWQgR2VvcmdlJ3MgQS1iIGFuZCBXZWkncyBSLWIgYmVj YXVzZSBvZiBtYXRlcmlhbCBjaGFuZ2UuCj4gPgo+ID4gdjExOgo+ID4gIC0gQWRkcmVzc2VkIG1v cmUgY29tbWVudHMgZnJvbSBKYW4uCj4gPgo+ID4gdjEwOgo+ID4gIC0gQWRkcmVzc2VkIGNvbW1l bnRzIGZyb20gSmFuLgo+ID4KPiA+IHY4Ogo+ID4gIC0gUmUtYmFzZSBvbiBuZXcgYm9pbGVycGxh dGUuCj4gPiAgLSBBZGp1c3QgZnVuY3Rpb24gc2lnbmF0dXJlIG9mIGh2bV9nZXRfaW9yZXFfc2Vy dmVyX2ZyYW1lKCksIGFuZCB0ZXN0Cj4gPiAgICB3aGV0aGVyIHRoZSBidWZpb3JlcSBwYWdlIGlz IHByZXNlbnQuCj4gPgo+ID4gdjU6Cj4gPiAgLSBVc2UgZ2V0X2lvcmVxX3NlcnZlcigpIGZ1bmN0 aW9uIHJhdGhlciB0aGFuIGluZGV4aW5nIGFycmF5IGRpcmVjdGx5Lgo+ID4gIC0gQWRkIG1vcmUg ZXhwbGFuYXRpb24gaW50byBjb21tZW50cyB0byBzdGF0ZSB0aGFuIG1hcHBpbmcgZ3Vlc3QKPiBm cmFtZXMKPiA+ICAgIGFuZCBhbGxvY2F0aW9uIG9mIHBhZ2VzIGZvciBpb3JlcSBzZXJ2ZXJzIGFy ZSBub3Qgc2ltdWx0YW5lb3VzbHkKPiA+ICAgIHBlcm1pdHRlZC4KPiA+ICAtIEFkZCBhIGNvbW1l bnQgaW50byBhc20vaW9yZXEuaCBzdGF0aW5nIHRoZSBtZWFuaW5nIG9mIHRoZSBpbmRleAo+ID4g ICAgdmFsdWUgcGFzc2VkIHRvIGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1lKCkuCj4gPiAtLS0K PiA+ICB4ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgICAgICAgIHwgMTU2Cj4gPiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgeGVuL2FyY2gveDg2L21tLmMgICAg ICAgICAgICAgICB8ICA0MSArKysrKysrKysrKwo+ID4gIHhlbi9jb21tb24vbWVtb3J5LmMgICAg ICAgICAgICAgfCAgIDMgKy0KPiA+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL21tLmggICAgICAgIHwg ICA3ICsrCj4gPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW9yZXEuaCB8ICAgMiArCj4gPiAg eGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oICAgICAgICB8ICAgNSArKwo+ID4gIHhlbi9pbmNsdWRl L3B1YmxpYy9odm0vZG1fb3AuaCAgfCAgIDQgKysKPiA+ICB4ZW4vaW5jbHVkZS9wdWJsaWMvbWVt b3J5LmggICAgIHwgICA5ICsrKwo+ID4gIDggZmlsZXMgY2hhbmdlZCwgMjI2IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9p b3JlcS5jIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCj4gPiBpbmRleCAzOWRlNjU5ZGRmLi5k OTkxYWM5Y2RjIDEwMDY0NAo+ID4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCj4gPiAr KysgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKPiA+IEBAIC0yNTksNiArMjU5LDE5IEBAIHN0 YXRpYyBpbnQgaHZtX21hcF9pb3JlcV9nZm4oc3RydWN0Cj4gPiBodm1faW9yZXFfc2VydmVyICpz LCBib29sIGJ1ZikKPiA+ICAgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdlICppb3JwID0gYnVmID8g JnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOwo+ID4gICAgICBpbnQgcmM7Cj4gPgo+ID4gKyAgICBp ZiAoIGlvcnAtPnBhZ2UgKQo+ID4gKyAgICB7Cj4gPiArICAgICAgICAvKgo+ID4gKyAgICAgICAg ICogSWYgYSBwYWdlIGhhcyBhbHJlYWR5IGJlZW4gYWxsb2NhdGVkICh3aGljaCB3aWxsIGhhcHBl biBvbgo+ID4gKyAgICAgICAgICogZGVtYW5kIGlmIGh2bV9nZXRfaW9yZXFfc2VydmVyX2ZyYW1l KCkgaXMgY2FsbGVkKSwgdGhlbgo+ID4gKyAgICAgICAgICogbWFwcGluZyBhIGd1ZXN0IGZyYW1l IGlzIG5vdCBwZXJtaXR0ZWQuCj4gPiArICAgICAgICAgKi8KPiA+ICsgICAgICAgIGlmICggZ2Zu X2VxKGlvcnAtPmdmbiwgSU5WQUxJRF9HRk4pICkKPiA+ICsgICAgICAgICAgICByZXR1cm4gLUVQ RVJNOwo+ID4gKwo+ID4gKyAgICAgICAgcmV0dXJuIDA7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICAg ICAgaWYgKCBkLT5pc19keWluZyApCj4gPiAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+Cj4g PiBAQCAtMjgxLDYgKzI5NCw3MCBAQCBzdGF0aWMgaW50IGh2bV9tYXBfaW9yZXFfZ2ZuKHN0cnVj dAo+ID4gaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCj4gPiAgICAgIHJldHVybiByYzsK PiA+ICB9Cj4gPgo+ID4gK3N0YXRpYyBpbnQgaHZtX2FsbG9jX2lvcmVxX21mbihzdHJ1Y3QgaHZt X2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCj4gPiArewo+ID4gKyAgICBzdHJ1Y3QgZG9tYWlu ICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKPiA+ICsgICAgc3RydWN0IGh2bV9pb3JlcV9wYWdl ICppb3JwID0gYnVmID8gJnMtPmJ1ZmlvcmVxIDogJnMtPmlvcmVxOwo+ID4gKwo+ID4gKyAgICBp ZiAoIGlvcnAtPnBhZ2UgKQo+ID4gKyAgICB7Cj4gPiArICAgICAgICAvKgo+ID4gKyAgICAgICAg ICogSWYgYSBndWVzdCBmcmFtZSBoYXMgYWxyZWFkeSBiZWVuIG1hcHBlZCAod2hpY2ggbWF5IGhh cHBlbgo+ID4gKyAgICAgICAgICogb24gZGVtYW5kIGlmIGh2bV9nZXRfaW9yZXFfc2VydmVyX2lu Zm8oKSBpcyBjYWxsZWQpLCB0aGVuCj4gPiArICAgICAgICAgKiBhbGxvY2F0aW5nIGEgcGFnZSBp cyBub3QgcGVybWl0dGVkLgo+ID4gKyAgICAgICAgICovCj4gPiArICAgICAgICBpZiAoICFnZm5f ZXEoaW9ycC0+Z2ZuLCBJTlZBTElEX0dGTikgKQo+ID4gKyAgICAgICAgICAgIHJldHVybiAtRVBF Uk07Cj4gPiArCj4gPiArICAgICAgICByZXR1cm4gMDsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAg ICAvKgo+ID4gKyAgICAgKiBBbGxvY2F0ZWQgSU9SRVEgc2VydmVyIHBhZ2VzIGFyZSBhc3NpZ25l ZCB0byB0aGUgZW11bGF0aW5nCj4gPiArICAgICAqIGRvbWFpbiwgbm90IHRoZSB0YXJnZXQgZG9t YWluLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGVtdWxhdG9yIGlzCj4gPiArICAgICAqIGxpa2VseSB0 byBiZSBkZXN0cm95ZWQgYWZ0ZXIgdGhlIHRhcmdldCBkb21haW4gaGFzIGJlZW4gdG9ybgo+ID4g KyAgICAgKiBkb3duLCBhbmQgd2UgbXVzdCB1c2UgTUVNRl9ub19yZWZjb3VudCBvdGhlcndpc2Ug cGFnZQo+IGFsbG9jYXRpb24KPiA+ICsgICAgICogY291bGQgZmFpbCBpZiB0aGUgZW11bGF0aW5n IGRvbWFpbiBoYXMgYWxyZWFkeSByZWFjaGVkIGl0cwo+ID4gKyAgICAgKiBtYXhpbXVtIGFsbG9j YXRpb24uCj4gPiArICAgICAqLwo+ID4gKyAgICBpb3JwLT5wYWdlID0gYWxsb2NfZG9taGVhcF9w YWdlKGN1cnJkLCBNRU1GX25vX3JlZmNvdW50KTsKPiAKPiBUaGlzIGlzIG5vIGxvbmdlciBnb2lu ZyB0byB3b3JrIGFzIGl0IGlzIHByZWRpY2F0ZWQgb24gbXkgb3JpZ2luYWwgbW9kaWZpY2F0aW9u Cj4gdG8gSFlQRVJWSVNPUl9tbXVfdXBkYXRlICh3aGljaCBhbGxvd2VkIGEgUFYgZG9tYWluIHRv IG1hcCBhIGZvcmVpZ24KPiBNRk4gZnJvbSBhIGRvbWFpbiBvdmVyIHdoaWNoIGl0IGhhZCBwcml2 aWxlZ2UgYXMgaWYgdGhlIE1GTiB3YXMgbG9jYWwpLgo+IEJlY2F1c2UgdGhhdCBtZWNoYW5pc20g d2FzIGRlY2lkZWQgYWdhaW5zdCwgdGhpcyBjb2RlIG5lZWRzIHRvIGNoYW5nZSB0bwo+IHVzZSB0 aGUgdGFyZ2V0IGRvbWFpbiBvZiB0aGUgaW9yZXEgc2VydmVyIHJhdGhlciB0aGFuIHRoZSBjYWxs aW5nIGRvbWFpbi4gSQo+IHdpbGwgdmVyZnkgdGhpcyBtb2RpZmljYXRpb24gYW5kIHN1Ym1pdCB2 MTUgb2YgdGhlIHNlcmllcy4KCkFjdHVhbGx5LCBJIHNob3VsZCByZWFkIG15IG93biBjb21tZW50 cyBtb3JlIGNsb3NlbHkuLi4KCkkgY2FuJ3QgdXNlIHRoZSB0YXJnZXQgZG9tYWluIG90aGVyd2lz ZSB0aGUgcGFnZSBnZXRzIHlhbmtlZCBmcm9tIHVuZGVybmVhdGggdGhlIGlvcmVxIHNlcnZlciAo YmVjYXVzZSB0aGUgcGFnZSBlbmRzIHVwIGluIHRoZSB0YXJnZXQgZG9tYWluJ3MgcGFnZSBsaXN0 KSBzbyB0aGUgYmVzdCBvcHRpb24gSSBzZWUgaXMgdG8gbGVhdmUgdGhpcyBhcyBpdCBpcyBhbmQg Y2FsbCBwYWdlX3NldF9vd25lciguLi4sIHMtPmRvbWFpbikgb24gdGhlIHBhZ2UgZGlyZWN0bHku CgogIFBhdWwKCj4gCj4gSmFuLCBhcmUgeW91IG9rIGZvciBtZSB0byBrZWVwIHlvdXIgUi1iPwo+ IAo+ICAgUGF1bAo+IAo+ID4gKyAgICBpZiAoICFpb3JwLT5wYWdlICkKPiA+ICsgICAgICAgIHJl dHVybiAtRU5PTUVNOwo+ID4gKwo+ID4gKyAgICBpZiAoICFnZXRfcGFnZV90eXBlKGlvcnAtPnBh Z2UsIFBHVF93cml0YWJsZV9wYWdlKSApCj4gPiArICAgIHsKPiA+ICsgICAgICAgIEFTU0VSVF9V TlJFQUNIQUJMRSgpOwo+ID4gKyAgICAgICAgcHV0X3BhZ2UoaW9ycC0+cGFnZSk7Cj4gPiArICAg ICAgICBpb3JwLT5wYWdlID0gTlVMTDsKPiA+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ID4g KyAgICB9Cj4gPiArCj4gPiArICAgIGlvcnAtPnZhID0gX19tYXBfZG9tYWluX3BhZ2VfZ2xvYmFs KGlvcnAtPnBhZ2UpOwo+ID4gKyAgICBpZiAoICFpb3JwLT52YSApCj4gPiArICAgIHsKPiA+ICsg ICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKGlvcnAtPnBhZ2UpOwo+ID4gKyAgICAgICAgaW9ycC0+ cGFnZSA9IE5VTEw7Cj4gPiArICAgICAgICByZXR1cm4gLUVOT01FTTsKPiA+ICsgICAgfQo+ID4g Kwo+ID4gKyAgICBjbGVhcl9wYWdlKGlvcnAtPnZhKTsKPiA+ICsgICAgcmV0dXJuIDA7Cj4gPiAr fQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGh2bV9mcmVlX2lvcmVxX21mbihzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciAqcywgYm9vbCBidWYpCj4gPiArewo+ID4gKyAgICBzdHJ1Y3QgaHZtX2lvcmVx X3BhZ2UgKmlvcnAgPSBidWYgPyAmcy0+YnVmaW9yZXEgOiAmcy0+aW9yZXE7Cj4gPiArCj4gPiAr ICAgIGlmICggIWlvcnAtPnBhZ2UgKQo+ID4gKyAgICAgICAgcmV0dXJuOwo+ID4gKwo+ID4gKyAg ICB1bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoaW9ycC0+dmEpOwo+ID4gKyAgICBpb3JwLT52YSA9 IE5VTEw7Cj4gPiArCj4gPiArICAgIHB1dF9wYWdlX2FuZF90eXBlKGlvcnAtPnBhZ2UpOwo+ID4g KyAgICBpb3JwLT5wYWdlID0gTlVMTDsKPiA+ICt9Cj4gPiArCj4gPiAgYm9vbCBpc19pb3JlcV9z ZXJ2ZXJfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgcGFnZV9pbmZvCj4gKnBh Z2UpCj4gPiAgewo+ID4gICAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqczsKPiA+ IEBAIC00ODQsNiArNTYxLDI3IEBAIHN0YXRpYyB2b2lkCj4gaHZtX2lvcmVxX3NlcnZlcl91bm1h cF9wYWdlcyhzdHJ1Y3QKPiA+IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCj4gPiAgICAgIGh2bV91bm1h cF9pb3JlcV9nZm4ocywgZmFsc2UpOwo+ID4gIH0KPiA+Cj4gPiArc3RhdGljIGludCBodm1faW9y ZXFfc2VydmVyX2FsbG9jX3BhZ2VzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQo+ID4gK3sK PiA+ICsgICAgaW50IHJjOwo+ID4gKwo+ID4gKyAgICByYyA9IGh2bV9hbGxvY19pb3JlcV9tZm4o cywgZmFsc2UpOwo+ID4gKwo+ID4gKyAgICBpZiAoICFyYyAmJiAocy0+YnVmaW9yZXFfaGFuZGxp bmcgIT0gSFZNX0lPUkVRU1JWX0JVRklPUkVRX09GRikgKQo+ID4gKyAgICAgICAgcmMgPSBodm1f YWxsb2NfaW9yZXFfbWZuKHMsIHRydWUpOwo+ID4gKwo+ID4gKyAgICBpZiAoIHJjICkKPiA+ICsg ICAgICAgIGh2bV9mcmVlX2lvcmVxX21mbihzLCBmYWxzZSk7Cj4gPiArCj4gPiArICAgIHJldHVy biByYzsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgaHZtX2lvcmVxX3NlcnZlcl9mcmVl X3BhZ2VzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQo+ID4gK3sKPiA+ICsgICAgaHZtX2Zy ZWVfaW9yZXFfbWZuKHMsIHRydWUpOwo+ID4gKyAgICBodm1fZnJlZV9pb3JlcV9tZm4ocywgZmFs c2UpOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVyX2ZyZWVf cmFuZ2VzZXRzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyCj4gKnMpCj4gPiAgewo+ID4gICAgICB1 bnNpZ25lZCBpbnQgaTsKPiA+IEBAIC02MTIsNyArNzEwLDE4IEBAIHN0YXRpYyBpbnQgaHZtX2lv cmVxX3NlcnZlcl9pbml0KHN0cnVjdAo+ID4gaHZtX2lvcmVxX3NlcnZlciAqcywKPiA+Cj4gPiAg IGZhaWxfYWRkOgo+ID4gICAgICBodm1faW9yZXFfc2VydmVyX3JlbW92ZV9hbGxfdmNwdXMocyk7 Cj4gPiArCj4gPiArICAgIC8qCj4gPiArICAgICAqIE5PVEU6IEl0IGlzIHNhZmUgdG8gY2FsbCBi b3RoIGh2bV9pb3JlcV9zZXJ2ZXJfdW5tYXBfcGFnZXMoKSBhbmQKPiA+ICsgICAgICogICAgICAg aHZtX2lvcmVxX3NlcnZlcl9mcmVlX3BhZ2VzKCkgaW4gdGhhdCBvcmRlci4KPiA+ICsgICAgICog ICAgICAgVGhpcyBpcyBiZWNhdXNlIHRoZSBmb3JtZXIgd2lsbCBkbyBub3RoaW5nIGlmIHRoZSBw YWdlcwo+ID4gKyAgICAgKiAgICAgICBhcmUgbm90IG1hcHBlZCwgbGVhdmluZyB0aGUgcGFnZSB0 byBiZSBmcmVlZCBieSB0aGUgbGF0dGVyLgo+ID4gKyAgICAgKiAgICAgICBIb3dldmVyIGlmIHRo ZSBwYWdlcyBhcmUgbWFwcGVkIHRoZW4gdGhlIGZvcm1lciB3aWxsIHNldAo+ID4gKyAgICAgKiAg ICAgICB0aGUgcGFnZV9pbmZvIHBvaW50ZXIgdG8gTlVMTCwgbWVhbmluZyB0aGUgbGF0dGVyIHdp bGwgZG8KPiA+ICsgICAgICogICAgICAgbm90aGluZy4KPiA+ICsgICAgICovCj4gPiAgICAgIGh2 bV9pb3JlcV9zZXJ2ZXJfdW5tYXBfcGFnZXMocyk7Cj4gPiArICAgIGh2bV9pb3JlcV9zZXJ2ZXJf ZnJlZV9wYWdlcyhzKTsKPiA+Cj4gPiAgICAgIHJldHVybiByYzsKPiA+ICB9Cj4gPiBAQCAtNjIy LDYgKzczMSw3IEBAIHN0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfZGVpbml0KHN0cnVjdAo+ ID4gaHZtX2lvcmVxX3NlcnZlciAqcykKPiA+ICAgICAgQVNTRVJUKCFzLT5lbmFibGVkKTsKPiA+ ICAgICAgaHZtX2lvcmVxX3NlcnZlcl9yZW1vdmVfYWxsX3ZjcHVzKHMpOwo+ID4gICAgICBodm1f aW9yZXFfc2VydmVyX3VubWFwX3BhZ2VzKHMpOwo+ID4gKyAgICBodm1faW9yZXFfc2VydmVyX2Zy ZWVfcGFnZXMocyk7Cj4gPiAgICAgIGh2bV9pb3JlcV9zZXJ2ZXJfZnJlZV9yYW5nZXNldHMocyk7 Cj4gPiAgfQo+ID4KPiA+IEBAIC03NzcsNiArODg3LDUyIEBAIGludCBodm1fZ2V0X2lvcmVxX3Nl cnZlcl9pbmZvKHN0cnVjdCBkb21haW4gKmQsCj4gPiBpb3NlcnZpZF90IGlkLAo+ID4gICAgICBy ZXR1cm4gcmM7Cj4gPiAgfQo+ID4KPiA+ICtpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfZnJhbWUo c3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBpZHgsIG1mbl90ICptZm4pCj4gPiArewo+ID4gKyAg ICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqczsKPiA+ICsgICAgaW50IHJjOwo+ID4gKwo+ID4g KyAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2VydmVy LmxvY2spOwo+ID4gKwo+ID4gKyAgICBpZiAoIGlkID09IERFRkFVTFRfSU9TRVJWSUQgKQo+ID4g KyAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwo+ID4gKwo+ID4gKyAgICBzID0gZ2V0X2lvcmVx X3NlcnZlcihkLCBpZCk7Cj4gPiArCj4gPiArICAgIEFTU0VSVCghSVNfREVGQVVMVChzKSk7Cj4g PiArCj4gPiArICAgIHJjID0gaHZtX2lvcmVxX3NlcnZlcl9hbGxvY19wYWdlcyhzKTsKPiA+ICsg ICAgaWYgKCByYyApCj4gPiArICAgICAgICBnb3RvIG91dDsKPiA+ICsKPiA+ICsgICAgc3dpdGNo ICggaWR4ICkKPiA+ICsgICAgewo+ID4gKyAgICBjYXNlIFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9z ZXJ2ZXJfZnJhbWVfYnVmaW9yZXE6Cj4gPiArICAgICAgICByYyA9IC1FTk9FTlQ7Cj4gPiArICAg ICAgICBpZiAoICFIQU5ETEVfQlVGSU9SRVEocykgKQo+ID4gKyAgICAgICAgICAgIGdvdG8gb3V0 Owo+ID4gKwo+ID4gKyAgICAgICAgKm1mbiA9IF9tZm4ocGFnZV90b19tZm4ocy0+YnVmaW9yZXEu cGFnZSkpOwo+ID4gKyAgICAgICAgcmMgPSAwOwo+ID4gKyAgICAgICAgYnJlYWs7Cj4gPiArCj4g PiArICAgIGNhc2UgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9pb3JlcSgwKToK PiA+ICsgICAgICAgICptZm4gPSBfbWZuKHBhZ2VfdG9fbWZuKHMtPmlvcmVxLnBhZ2UpKTsKPiA+ ICsgICAgICAgIHJjID0gMDsKPiA+ICsgICAgICAgIGJyZWFrOwo+ID4gKwo+ID4gKyAgICBkZWZh dWx0Ogo+ID4gKyAgICAgICAgcmMgPSAtRUlOVkFMOwo+ID4gKyAgICAgICAgYnJlYWs7Cj4gPiAr ICAgIH0KPiA+ICsKPiA+ICsgb3V0Ogo+ID4gKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQt PmFyY2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7Cj4gPiArCj4gPiArICAgIHJldHVy biByYzsKPiA+ICt9Cj4gPiArCj4gPiAgaW50IGh2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2Vy dmVyKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGUsIHVpbnQ2NF90IHN0YXJ0LAo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBlbmQpCj4gPiBk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwo+ID4gaW5k ZXggNmVjNmU2OGFmZS4uMjY1NmViMTgxYSAxMDA2NDQKPiA+IC0tLSBhL3hlbi9hcmNoL3g4Ni9t bS5jCj4gPiArKysgYi94ZW4vYXJjaC94ODYvbW0uYwo+ID4gQEAgLTEyMiw2ICsxMjIsNyBAQAo+ ID4gICNpbmNsdWRlIDxhc20vZml4bWFwLmg+Cj4gPiAgI2luY2x1ZGUgPGFzbS9pb19hcGljLmg+ Cj4gPiAgI2luY2x1ZGUgPGFzbS9wY2kuaD4KPiA+ICsjaW5jbHVkZSA8YXNtL2h2bS9pb3JlcS5o Pgo+ID4KPiA+ICAjaW5jbHVkZSA8YXNtL2h2bS9ncmFudF90YWJsZS5oPgo+ID4gICNpbmNsdWRl IDxhc20vcHYvZ3JhbnRfdGFibGUuaD4KPiA+IEBAIC00MTcwLDYgKzQxNzEsNDYgQEAgaW50IHhl bm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoCj4gPiAgICAgIHJldHVybiByYzsKPiA+ICB9Cj4gPgo+ ID4gK2ludCBhcmNoX2FjcXVpcmVfcmVzb3VyY2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg aW50IHR5cGUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaWQs IHVuc2lnbmVkIGxvbmcgZnJhbWUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgbnJfZnJhbWVzLCB4ZW5fcGZuX3QgbWZuX2xpc3RbXSkKPiA+ICt7Cj4gPiArICAg IGludCByYzsKPiA+ICsKPiA+ICsgICAgc3dpdGNoICggdHlwZSApCj4gPiArICAgIHsKPiA+ICsg ICAgY2FzZSBYRU5NRU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyOgo+ID4gKyAgICB7Cj4gPiArICAg ICAgICBpb3NlcnZpZF90IGlvc2VydmlkID0gaWQ7Cj4gPiArICAgICAgICB1bnNpZ25lZCBpbnQg aTsKPiA+ICsKPiA+ICsgICAgICAgIHJjID0gLUVJTlZBTDsKPiA+ICsgICAgICAgIGlmICggaWQg IT0gKHVuc2lnbmVkIGludClpb3NlcnZpZCApCj4gPiArICAgICAgICAgICAgYnJlYWs7Cj4gPiAr Cj4gPiArICAgICAgICByYyA9IDA7Cj4gPiArICAgICAgICBmb3IgKCBpID0gMDsgaSA8IG5yX2Zy YW1lczsgaSsrICkKPiA+ICsgICAgICAgIHsKPiA+ICsgICAgICAgICAgICBtZm5fdCBtZm47Cj4g PiArCj4gPiArICAgICAgICAgICAgcmMgPSBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZShkLCBp ZCwgZnJhbWUgKyBpLCAmbWZuKTsKPiA+ICsgICAgICAgICAgICBpZiAoIHJjICkKPiA+ICsgICAg ICAgICAgICAgICAgYnJlYWs7Cj4gPiArCj4gPiArICAgICAgICAgICAgbWZuX2xpc3RbaV0gPSBt Zm5feChtZm4pOwo+ID4gKyAgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAgYnJlYWs7Cj4gPiAr ICAgIH0KPiA+ICsKPiA+ICsgICAgZGVmYXVsdDoKPiA+ICsgICAgICAgIHJjID0gLUVPUE5PVFNV UFA7Cj4gPiArICAgICAgICBicmVhazsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICByZXR1cm4g cmM7Cj4gPiArfQo+ID4gKwo+ID4gIGxvbmcgYXJjaF9tZW1vcnlfb3AodW5zaWduZWQgbG9uZyBj bWQsCj4gPiBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKPiA+ICB7Cj4gPiAgICAg IGludCByYzsKPiA+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL21lbW9yeS5jIGIveGVuL2NvbW1v bi9tZW1vcnkuYwo+ID4gaW5kZXggNmMzODVhMjMyOC4uMDE2N2Q5Nzg4YiAxMDA2NDQKPiA+IC0t LSBhL3hlbi9jb21tb24vbWVtb3J5LmMKPiA+ICsrKyBiL3hlbi9jb21tb24vbWVtb3J5LmMKPiA+ IEBAIC0xMDE2LDcgKzEwMTYsOCBAQCBzdGF0aWMgaW50IGFjcXVpcmVfcmVzb3VyY2UoCj4gPiAg ICAgIHN3aXRjaCAoIHhtYXIudHlwZSApCj4gPiAgICAgIHsKPiA+ICAgICAgZGVmYXVsdDoKPiA+ IC0gICAgICAgIHJjID0gLUVPUE5PVFNVUFA7Cj4gPiArICAgICAgICByYyA9IGFyY2hfYWNxdWly ZV9yZXNvdXJjZShkLCB4bWFyLnR5cGUsIHhtYXIuaWQsIHhtYXIuZnJhbWUsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWFyLm5yX2ZyYW1lcywgbWZuX2xpc3QpOwo+ ID4gICAgICAgICAgYnJlYWs7Cj4gPiAgICAgIH0KPiA+Cj4gPiBkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLWFybS9tbS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCj4gPiBpbmRleCBh ZDJmMmE0M2RjLi5iZDE0NmRlZTNjIDEwMDY0NAo+ID4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFy bS9tbS5oCj4gPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKPiA+IEBAIC0zODEsNiAr MzgxLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfcGFnZV9hbmRfdHlwZShzdHJ1Y3QKPiA+ IHBhZ2VfaW5mbyAqcGFnZSkKPiA+Cj4gPiAgdm9pZCBjbGVhcl9hbmRfY2xlYW5fcGFnZShzdHJ1 Y3QgcGFnZV9pbmZvICpwYWdlKTsKPiA+Cj4gPiArc3RhdGljIGlubGluZSBpbnQgYXJjaF9hY3F1 aXJlX3Jlc291cmNlKAo+ID4gKyAgICBzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdHlw ZSwgdW5zaWduZWQgaW50IGlkLAo+ID4gKyAgICB1bnNpZ25lZCBsb25nIGZyYW1lLHVuc2lnbmVk IGludCBucl9mcmFtZXMsIHhlbl9wZm5fdCBtZm5fbGlzdFtdKQo+ID4gK3sKPiA+ICsgICAgcmV0 dXJuIC1FT1BOT1RTVVBQOwo+ID4gK30KPiA+ICsKPiA+ICAjZW5kaWYgLyogIF9fQVJDSF9BUk1f TU1fXyAqLwo+ID4gIC8qCj4gPiAgICogTG9jYWwgdmFyaWFibGVzOgo+ID4gZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmggYi94ZW4vaW5jbHVkZS9hc20tCj4gPiB4 ODYvaHZtL2lvcmVxLmgKPiA+IGluZGV4IDE4MjlmY2Y0M2UuLjllMzdjOTdhMzcgMTAwNjQ0Cj4g PiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5oCj4gPiArKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9pb3JlcS5oCj4gPiBAQCAtMzEsNiArMzEsOCBAQCBpbnQgaHZtX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAo+ID4gaW9zZXJ2aWRfdCBpZCwK PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICppb3JlcV9n Zm4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqYnVm aW9yZXFfZ2ZuLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dGNobl9wb3J0 X3QgKmJ1ZmlvcmVxX3BvcnQpOwo+ID4gK2ludCBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZShz dHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGlkeCwgbWZuX3QgKm1mbik7Cj4gPiAgaW50IGh2bV9t YXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3Qg aWQsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5 cGUsIHVpbnQ2NF90IHN0YXJ0LAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50NjRfdCBlbmQpOwo+ID4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv bW0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaAo+ID4gaW5kZXggODM2MjYwODVlMC4uMTBl NWI2Y2QxNCAxMDA2NDQKPiA+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaAo+ID4gKysr IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCj4gPiBAQCAtNjI5LDQgKzYyOSw5IEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBhcmNoX21mbl9pbl9kaXJlY3RtYXAodW5zaWduZWQKPiA+IGxvbmcgbWZu KQo+ID4gICAgICByZXR1cm4gbWZuIDw9ICh2aXJ0X3RvX21mbihldmEgLSAxKSArIDEpOwo+ID4g IH0KPiA+Cj4gPiAraW50IGFyY2hfYWNxdWlyZV9yZXNvdXJjZShzdHJ1Y3QgZG9tYWluICpkLCB1 bnNpZ25lZCBpbnQgdHlwZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBpZCwgdW5zaWduZWQgbG9uZyBmcmFtZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBucl9mcmFtZXMsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICB4ZW5fcGZuX3QgbWZuX2xpc3RbXSk7Cj4gPiArCj4gPiAgI2VuZGlmIC8qIF9fQVNNX1g4Nl9N TV9IX18gKi8KPiA+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgK PiA+IGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCj4gPiBpbmRleCAxM2IzNzM3YzJm Li5hZGQ2OGVhMTkyIDEwMDY0NAo+ID4gLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9v cC5oCj4gPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKPiA+IEBAIC05MCw2 ICs5MCwxMCBAQCBzdHJ1Y3QgeGVuX2RtX29wX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgewo+ID4gICAq IHRoZSBmcmFtZSBudW1iZXJzIHBhc3NlZCBiYWNrIGluIGdmbnMgPGlvcmVxX2dmbj4gYW5kCj4g PGJ1ZmlvcmVxX2dmbj4KPiA+ICAgKiByZXNwZWN0aXZlbHkuIChJZiB0aGUgSU9SRVEgU2VydmVy IGlzIG5vdCBoYW5kbGluZyBidWZmZXJlZCBlbXVsYXRpb24KPiA+ICAgKiBvbmx5IDxpb3JlcV9n Zm4+IHdpbGwgYmUgdmFsaWQpLgo+ID4gKyAqCj4gPiArICogTk9URTogVG8gYWNjZXNzIHRoZSBz eW5jaHJvbm91cyBpb3JlcSBzdHJ1Y3R1cmVzIGFuZCBidWZmZXJlZCBpb3JlcQo+ID4gKyAqICAg ICAgIHJpbmcsIGl0IGlzIHByZWZlcmFibGUgdG8gdXNlIHRoZSBYRU5NRU1fYWNxdWlyZV9yZXNv dXJjZSBtZW1vcnkKPiA+ICsgKiAgICAgICBvcCBzcGVjaWZ5aW5nIHJlc291cmNlIHR5cGUgWEVO TUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlci4KPiA+ICAgKi8KPiA+ICAjZGVmaW5lIFhFTl9ETU9Q X2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyAyCj4gPgo+ID4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3B1YmxpYy9tZW1vcnkuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaAo+ID4gaW5kZXgg ODNlNjBiNjYwMy4uODM4ZjI0OGE1OSAxMDA2NDQKPiA+IC0tLSBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9tZW1vcnkuaAo+ID4gKysrIGIveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCj4gPiBAQCAt NjA5LDkgKzYwOSwxNCBAQCBzdHJ1Y3QgeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlIHsKPiA+ICAg ICAgZG9taWRfdCBkb21pZDsKPiA+ICAgICAgLyogSU4gLSB0aGUgdHlwZSBvZiByZXNvdXJjZSAq Lwo+ID4gICAgICB1aW50MTZfdCB0eXBlOwo+ID4gKwo+ID4gKyNkZWZpbmUgWEVOTUVNX3Jlc291 cmNlX2lvcmVxX3NlcnZlciAwCj4gPiArCj4gPiAgICAgIC8qCj4gPiAgICAgICAqIElOIC0gYSB0 eXBlLXNwZWNpZmljIHJlc291cmNlIGlkZW50aWZpZXIsIHdoaWNoIG11c3QgYmUgemVybwo+ID4g ICAgICAgKiAgICAgIHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlLgo+ID4gKyAgICAgKgo+ID4gKyAg ICAgKiB0eXBlID09IFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXIgLT4gaWQgPT0gaW9yZXEg c2VydmVyIGlkCj4gPiAgICAgICAqLwo+ID4gICAgICB1aW50MzJfdCBpZDsKPiA+ICAgICAgLyog SU4vT1VUIC0gQXMgYW4gSU4gcGFyYW1ldGVyIG51bWJlciBvZiBmcmFtZXMgb2YgdGhlIHJlc291 cmNlCj4gPiBAQCAtNjI1LDYgKzYzMCwxMCBAQCBzdHJ1Y3QgeGVuX21lbV9hY3F1aXJlX3Jlc291 cmNlIHsKPiA+ICAgICAgICogICAgICBpcyBpZ25vcmVkIGlmIG5yX2ZyYW1lcyBpcyAwLgo+ID4g ICAgICAgKi8KPiA+ICAgICAgdWludDY0X2FsaWduZWRfdCBmcmFtZTsKPiA+ICsKPiA+ICsjZGVm aW5lIFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXJfZnJhbWVfYnVmaW9yZXEgMAo+ID4gKyNk ZWZpbmUgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9pb3JlcShuKSAoMSArIChu KSkKPiA+ICsKPiA+ICAgICAgLyogSU4vT1VUIC0gSWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBQViB0 aGVuLCB1cG9uIHJldHVybiwgZnJhbWVfbGlzdAo+ID4gICAgICAgKiAgICAgICAgICB3aWxsIGJl IHBvcHVsYXRlZCB3aXRoIHRoZSBNRk5zIG9mIHRoZSByZXNvdXJjZS4KPiA+ICAgICAgICogICAg ICAgICAgSWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBIVk0gdGhlbiBpdCBpcyBleHBlY3RlZCB0aGF0 LCBvbgo+ID4gLS0KPiA+IDIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=