From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rohan Garg Subject: Re: [PATCH v4] drm/ioctl: Add a ioctl to label GEM objects Date: Tue, 22 Oct 2019 10:58:02 +0200 Message-ID: <3179240.fNvyFBsHMD@saphira> References: <20191011143009.17503-1-rohan.garg@collabora.com> <20191014085938.GH11828@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 884966E499 for ; Tue, 22 Oct 2019 08:58:05 +0000 (UTC) In-Reply-To: <20191014085938.GH11828@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGV5IERhbmllbApPbiBsdW5lcywgMTQgZGUgb2N0dWJyZSBkZSAyMDE5IDEwOjU5OjM4IChDRVNU KSBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IE9uIEZyaSwgT2N0IDExLCAyMDE5IGF0IDA0OjMwOjA5 UE0gKzAyMDAsIFJvaGFuIEdhcmcgd3JvdGU6Cj4gPiBEUk1fSU9DVExfRFVNQl9TRVRfTEFCRUwg bGV0cyB5b3UgbGFiZWwgR0VNIG9iamVjdHMsIG1ha2luZyBpdAo+ID4gZWFzaWVyIHRvIGRlYnVn IGlzc3VlcyBpbiB1c2Vyc3BhY2UgYXBwbGljYXRpb25zLgo+ID4gCj4gPiBDaGFuZ2VzIGluIHYy Ogo+ID4gICAtIEhvaXN0IHRoZSBJT0NUTCB1cCBpbnRvIHRoZSBkcm1fZHJpdmVyIGZyYW1ld29y awo+ID4gCj4gPiBDaGFuZ2VzIGluIHYzOgo+ID4gICAtIEludHJvZHVjZSBhIGRybV9nZW1fc2V0 X2xhYmVsIGZvciBkcml2ZXJzIHRvIHVzZSBpbnRlcm5hbGx5Cj4gPiAgIAo+ID4gICAgIGluIG9y ZGVyIHRvIGxhYmVsIGEgR0VNIG9iamVjdAo+ID4gICAKPiA+ICAgLSBIb2lzdCBzdHJpbmcgY29w eWluZyB1cCBpbnRvIHRoZSBJT0NUTAo+ID4gICAtIEZpeCBkb2N1bWVudGF0aW9uCj4gPiAgIC0g TW92ZSBhY3R1YWwgZ2VtIGxhYmVsaW5nIGludG8gZHJtX2dlbV9hZG9wdF9sYWJlbAo+ID4gCj4g PiBDaGFuZ2VzIGluIHY0Ogo+ID4gICAtIFJlZmFjdG9yIElPQ1RMIGNhbGwgdG8gb25seSBwZXJm b3JtIHN0cmluZyBkdXBsaWNhdGlvbiBhbmQgbW92ZQo+ID4gICAKPiA+ICAgICBhbGwgZ2VtIGxv b2t1cCBsb2dpYyBpbnRvIEdFTSBzcGVjaWZpYyBjYWxsCj4gCj4gSSBzdGlsbCB0aGluayB3ZSBz aG91bGQganVzdCBtYWtlIHRoaXMgR0VNLW9ubHkgYW5kIGF2b2lkIHRoZSBpbmRpcmVjdGlvbi4K PiBFeGNlcHQgaWYgeW91ciB1c2Vyc3BhY2UgYWN0dWFsbHkgZG9lcyBydW4gb24gdm13Z2Z4LCBh bmQgeW91IGFic29sdXRlbHkKPiB3YW50L25lZWQgaXQgdG8gcnVuIHRoZXJlLiBFdmVyeXRoaW5n IGVsc2UgaXMgR0VNLW9ubHkuCj4gLURhbmllbAo+CgpUaGUgcGxhbiBmb3IgVFRNIGRyaXZlcnMg aXMgdG8gY2FsbCBkcm1fZ2VtX2Fkb3B0X2xhYmVsIGludGVybmFsbHkuIFNvIGluIApwcmFjdGlj ZSwgdGhlcmUgcmVhbGx5IHdvbid0IGJlIHRvbyBtdWNoIFRUTSBzcGVjaWZpYyBjb2RlLgoKVGhp cyBhcHByb2FjaCBhbHNvIGZ1dHVyZSBwcm9vZidzIHVzIHRvIGJlIGFibGUgdG8gbGFiZWwgYW55 IGhhbmRsZXMsIG5vdCBqdXN0IApHRU0gaGFuZGxlLgoKRm9yIHRoZSByZWFzb25zIGFib3ZlLCBJ J2QgbGlrZSB0byBzdGljayB3aXRoIG15IGFwcHJvYWNoLgoKQ2hlZXJzClJvaGFuIEdhcmcKIAo+ ID4gU2lnbmVkLW9mZi1ieTogUm9oYW4gR2FyZyA8cm9oYW4uZ2FyZ0Bjb2xsYWJvcmEuY29tPgo+ ID4gLS0tCj4gPiAKPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jICAgICAgfCA3MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9p bnRlcm5hbC5oIHwgIDggKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICB8 ICAxICsKPiA+ICBpbmNsdWRlL2RybS9kcm1fZHJ2LmggICAgICAgICAgfCAxNiArKysrKysrKwo+ ID4gIGluY2x1ZGUvZHJtL2RybV9nZW0uaCAgICAgICAgICB8ICA3ICsrKysKPiA+ICBpbmNsdWRl L3VhcGkvZHJtL2RybS5oICAgICAgICAgfCAyMCArKysrKysrKysrCj4gPiAgNiBmaWxlcyBjaGFu Z2VkLCAxMjIgaW5zZXJ0aW9ucygrKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKPiA+IGluZGV4IDY4NTRm NTg2N2Q1MS4uMGZhNDYwOWIyODE3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYwo+ID4gQEAgLTk0MSw2 ICs5NDEsNzEgQEAgZHJtX2dlbV9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dAo+ID4gZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk+IAo+ID4gIAlpZHJfZGVzdHJveSgmZmlsZV9w cml2YXRlLT5vYmplY3RfaWRyKTsKPiA+ICAKPiA+ICB9Cj4gPiAKPiA+ICtpbnQgZHJtX2R1bWJf c2V0X2xhYmVsX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiArCQkJCXZvaWQgKmRh dGEsIHN0cnVjdCBkcm1fZmlsZSAKKmZpbGVfcHJpdikKPiA+ICt7Cj4gPiArCWNoYXIgKmxhYmVs Owo+ID4gKwlzdHJ1Y3QgZHJtX2R1bWJfc2V0X2xhYmVsX29iamVjdCAqYXJncyA9IGRhdGE7Cj4g PiArCWludCByZXQgPSAwOwo+ID4gKwo+ID4gKwlpZiAoIWFyZ3MtPmxlbiB8fCAhYXJncy0+bmFt ZSkKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gKwlpZiAoIWRldi0+ZHJpdmVyLT5s YWJlbCkKPiA+ICsJCXJldHVybiAtRU9QTk9UU1VQUDsKPiA+ICsKPiA+ICsJbGFiZWwgPSBzdHJu ZHVwX3VzZXIodTY0X3RvX3VzZXJfcHRyKGFyZ3MtPm5hbWUpLCBhcmdzLT5sZW4pOwo+ID4gKwo+ ID4gKwlpZiAoSVNfRVJSKGxhYmVsKSkgewo+ID4gKwkJcmV0ID0gUFRSX0VSUihsYWJlbCk7Cj4g PiArCQlnb3RvIGVycjsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXQgPSBkZXYtPmRyaXZlci0+bGFi ZWwoZGV2LCBmaWxlX3ByaXYsIGFyZ3MtPmhhbmRsZSwgbGFiZWwpOwo+ID4gKwo+ID4gK2VycjoK PiA+ICsJa2ZyZWUobGFiZWwpOwo+ID4gKwlyZXR1cm4gcmV0Owo+ID4gK30KPiA+ICsKPiA+ICtp bnQgZHJtX2dlbV9zZXRfbGFiZWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICsJCSAgICAg ICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiA+ICsJCQkgICB1aW50MzJfdCBoYW5kbGUs Cj4gPiArCQkJICAgY29uc3QgY2hhciAqbGFiZWwpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKmdlbV9vYmo7Cj4gPiArCWludCByZXQgPSAwOwo+ID4gKwo+ID4gKwlnZW1fb2Jq ID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbGVfcHJpdiwgaGFuZGxlKTsKPiA+ICsJaWYgKCFn ZW1fb2JqKSB7Cj4gPiArCQlEUk1fREVCVUcoIkZhaWxlZCB0byBsb29rIHVwIEdFTSBCTyAlZFxu IiwgaGFuZGxlKTsKPiA+ICsJCXJldCA9IC1FTk9FTlQ7Cj4gPiArCQlnb3RvIGVycjsKPiA+ICsJ fQo+ID4gKwlkcm1fZ2VtX2Fkb3B0X2xhYmVsKGdlbV9vYmosIGxhYmVsKTsKPiA+ICsKPiA+ICtl cnI6Cj4gPiArCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChnZW1fb2JqKTsKPiA+ICsJcmV0 dXJuIHJldDsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3NldF9sYWJlbCk7Cj4g PiArCj4gPiArdm9pZCBkcm1fZ2VtX2Fkb3B0X2xhYmVsKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq Z2VtX29iaiwgY29uc3QgY2hhcgo+ID4gKmxhYmVsKSArewo+ID4gKwljaGFyICphZG9wdGVkX2xh YmVsID0gTlVMTDsKPiA+ICsKPiA+ICsJaWYgKGxhYmVsKQo+ID4gKwkJYWRvcHRlZF9sYWJlbCA9 IGtzdHJkdXAobGFiZWwsIEdGUF9LRVJORUwpOwo+ID4gKwo+ID4gKwlpZiAoZ2VtX29iai0+bGFi ZWwpIHsKPiA+ICsJCWtmcmVlKGdlbV9vYmotPmxhYmVsKTsKPiA+ICsJCWdlbV9vYmotPmxhYmVs ID0gTlVMTDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlnZW1fb2JqLT5sYWJlbCA9IGFkb3B0ZWRfbGFi ZWw7Cj4gPiArfQo+ID4gK0VYUE9SVF9TWU1CT0woZHJtX2dlbV9hZG9wdF9sYWJlbCk7Cj4gPiAr Cj4gPiAKPiA+ICAvKioKPiA+ICAKPiA+ICAgKiBkcm1fZ2VtX29iamVjdF9yZWxlYXNlIC0gcmVs ZWFzZSBHRU0gYnVmZmVyIG9iamVjdCByZXNvdXJjZXMKPiA+ICAgKiBAb2JqOiBHRU0gYnVmZmVy IG9iamVjdAo+ID4gCj4gPiBAQCAtOTU4LDYgKzEwMjMsMTEgQEAgZHJtX2dlbV9vYmplY3RfcmVs ZWFzZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPiA+IAo+ID4gIAlkbWFfcmVzdl9maW5p KCZvYmotPl9yZXN2KTsKPiA+ICAJZHJtX2dlbV9mcmVlX21tYXBfb2Zmc2V0KG9iaik7Cj4gPiAK PiA+ICsKPiA+ICsJaWYgKG9iai0+bGFiZWwpIHsKPiA+ICsJCWtmcmVlKG9iai0+bGFiZWwpOwo+ ID4gKwkJb2JqLT5sYWJlbCA9IE5VTEw7Cj4gPiArCX0KPiA+IAo+ID4gIH0KPiA+ICBFWFBPUlRf U1lNQk9MKGRybV9nZW1fb2JqZWN0X3JlbGVhc2UpOwo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50 ZXJuYWwuaCBpbmRleCA1MWEyMDU1YzhmMTguLmNiYzNmN2I3ZmI5YiAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9pbnRlcm5hbC5oCj4gPiBAQCAtMTM3LDYgKzEzNywxNCBAQCBpbnQgZHJtX2dlbV9waW4o c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ID4gCj4gPiAgdm9pZCBkcm1fZ2VtX3VucGlu KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiA+ICB2b2lkICpkcm1fZ2VtX3ZtYXAoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ID4gIHZvaWQgZHJtX2dlbV92dW5tYXAoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKPiA+IAo+ID4gK2ludCBkcm1fZHVt Yl9zZXRfbGFiZWxfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICsJCQl2b2lkICpk YXRhLAo+ID4gKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiA+ICtpbnQgZHJtX2dl bV9zZXRfbGFiZWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICsJCQlzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdiwKPiA+ICsJCQl1aW50MzJfdCBoYW5kbGUsCj4gPiArCQkJY29uc3QgY2hh ciAqbGFiZWwpOwo+ID4gK3ZvaWQgZHJtX2dlbV9hZG9wdF9sYWJlbChzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKmdlbV9vYmosIGNvbnN0IGNoYXIKPiA+ICpsYWJlbCk7PiAKPiA+ICAvKiBkcm1fZGVi dWdmcy5jIGRybV9kZWJ1Z2ZzX2NyYy5jICovCj4gPiAgI2lmIGRlZmluZWQoQ09ORklHX0RFQlVH X0ZTKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj4gPiBpbmRleCBmY2Q3MjhkN2NmNzIuLmYzNGUx NTcxZDcwZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj4gPiBAQCAtNzE0LDYgKzcxNCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewo+ID4g Cj4gPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfTElTVF9MRVNTRUVTLCAKZHJtX21v ZGVfbGlzdF9sZXNzZWVzX2lvY3RsLAo+ID4gIAlEUk1fTUFTVEVSKSwgRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfTU9ERV9HRVRfTEVBU0UsCj4gPiAgCWRybV9tb2RlX2dldF9sZWFzZV9pb2N0bCwg RFJNX01BU1RFUiksCj4gPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfUkVWT0tFX0xF QVNFLCAKZHJtX21vZGVfcmV2b2tlX2xlYXNlX2lvY3RsLAo+ID4gIAlEUk1fTUFTVEVSKSw+IAo+ ID4gKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9EVU1CX1NFVF9MQUJFTCwgZHJtX2R1bWJfc2V0 X2xhYmVsX2lvY3RsLAo+ID4gRFJNX1JFTkRFUl9BTExPVyksPiAKPiA+ICB9Owo+ID4gIAo+ID4g ICNkZWZpbmUgRFJNX0NPUkVfSU9DVExfQ09VTlQJQVJSQVlfU0laRSggZHJtX2lvY3RscyApCj4g PiAKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHJ2LmggYi9pbmNsdWRlL2RybS9k cm1fZHJ2LmgKPiA+IGluZGV4IGNmMTM0NzA4MTBhNS4uNTAxYTM5MjQzNTRhIDEwMDY0NAo+ID4g LS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Rydi5oCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZHJ2 LmgKPiA+IEBAIC03MTUsNiArNzE1LDIyIEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiA+IAo+ID4g IAkJCSAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJCSAgICB1aW50MzJfdCBoYW5k bGUpOwo+ID4gCj4gPiArCS8qKgo+ID4gKwkgKiBAbGFiZWw6Cj4gPiArCSAqCj4gPiArCSAqIFRo aXMgbGFiZWwncyBhIGJ1ZmZlciBvYmplY3QuCj4gPiArCSAqCj4gPiArCSAqIENhbGxlZCBieSB0 aGUgdXNlciB2aWEgaW9jdGwuCj4gPiArCSAqCj4gPiArCSAqIFJldHVybnM6Cj4gPiArCSAqCj4g PiArCSAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KPiA+ICsJ ICovCj4gPiArCWludCAoKmxhYmVsKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gKwkJCQlz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiA+ICsJCQkJdWludDMyX3QgaGFuZGxlLAo+ID4g KwkJCQljaGFyICpsYWJlbCk7Cj4gPiArCj4gPiAKPiA+ICAJLyoqCj4gPiAgCQo+ID4gIAkgKiBA Z2VtX3ZtX29wczogRHJpdmVyIHByaXZhdGUgb3BzIGZvciB0aGlzIG9iamVjdAo+ID4gIAkgKgo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2dlbS5oIGIvaW5jbHVkZS9kcm0v ZHJtX2dlbS5oCj4gPiBpbmRleCA2YWFiYTE0ZjU5NzIuLmY4MDFjMDU0ZTk3MiAxMDA2NDQKPiA+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9nZW0uaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2dl bS5oCj4gPiBAQCAtMjM3LDYgKzIzNywxMyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3Qgewo+ID4g Cj4gPiAgCSAqLwo+ID4gIAkKPiA+ICAJaW50IG5hbWU7Cj4gPiAKPiA+ICsJLyoqCj4gPiArCSAq IEBsYWJlbDoKPiA+ICsJICoKPiA+ICsJICogTGFiZWwgZm9yIHRoaXMgb2JqZWN0LCBzaG91bGQg YmUgYSBodW1hbiByZWFkYWJsZSBzdHJpbmcuCj4gPiArCSAqLwo+ID4gKwljaGFyICpsYWJlbDsK PiA+ICsKPiA+IAo+ID4gIAkvKioKPiA+ICAJCj4gPiAgCSAqIEBkbWFfYnVmOgo+ID4gIAkgKgo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaCBiL2luY2x1ZGUvdWFw aS9kcm0vZHJtLmgKPiA+IGluZGV4IDhhNWIyZjhmOGViOS4uMzA5YzNjMDkxMzg1IDEwMDY0NAo+ ID4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaAo+ID4gKysrIGIvaW5jbHVkZS91YXBpL2Ry bS9kcm0uaAo+ID4gQEAgLTYyNiw2ICs2MjYsMjUgQEAgc3RydWN0IGRybV9nZW1fb3BlbiB7Cj4g PiAKPiA+ICAJX191NjQgc2l6ZTsKPiA+ICAKPiA+ICB9Owo+ID4gCj4gPiArLyoqIHN0cnVjdCBk cm1fZHVtYl9zZXRfbGFiZWxfb2JqZWN0IC0gaW9jdGwgYXJndW1lbnQgZm9yIGxhYmVsbGluZyBC T3MuCj4gPiArICoKPiA+ICsgKiBUaGlzIGxhYmVsJ3MgYSBCTyB3aXRoIGEgdXNlcnNwYWNlIGxh YmVsCj4gPiArICoKPiA+ICsgKi8KPiA+ICtzdHJ1Y3QgZHJtX2R1bWJfc2V0X2xhYmVsX29iamVj dCB7Cj4gPiArCS8qKiBIYW5kbGUgZm9yIHRoZSBvYmplY3QgYmVpbmcgbGFiZWxsZWQuICovCj4g PiArCV9fdTMyIGhhbmRsZTsKPiA+ICsKPiA+ICsJLyoqIExhYmVsIGFuZCBsYWJlbCBsZW5ndGgu Cj4gPiArCSAqICBsZW4gaW5jbHVkZXMgdGhlIHRyYWlsaW5nIE5VTC4KPiA+ICsJICovCj4gPiAr CV9fdTMyIGxlbjsKPiA+ICsJX191NjQgbmFtZTsKPiA+ICsKPiA+ICsJLyoqIEZsYWdzICovCj4g PiArCWludCBmbGFnczsKPiA+ICt9Owo+ID4gKwo+ID4gCj4gPiAgI2RlZmluZSBEUk1fQ0FQX0RV TUJfQlVGRkVSCQkweDEKPiA+ICAjZGVmaW5lIERSTV9DQVBfVkJMQU5LX0hJR0hfQ1JUQwkweDIK PiA+ICAjZGVmaW5lIERSTV9DQVBfRFVNQl9QUkVGRVJSRURfREVQVEgJMHgzCj4gPiAKPiA+IEBA IC05NDYsNiArOTY1LDcgQEAgZXh0ZXJuICJDIiB7Cj4gPiAKPiA+ICAjZGVmaW5lIERSTV9JT0NU TF9TWU5DT0JKX1FVRVJZCQlEUk1fSU9XUigweENCLCBzdHJ1Y3QKPiA+ICBkcm1fc3luY29ial90 aW1lbGluZV9hcnJheSkgI2RlZmluZQo+ID4gIERSTV9JT0NUTF9TWU5DT0JKX1RSQU5TRkVSCURS TV9JT1dSKDB4Q0MsIHN0cnVjdCBkcm1fc3luY29ial90cmFuc2ZlcikKPiA+ICAjZGVmaW5lIERS TV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTAlEUk1fSU9XUigweENELCBzdHJ1Y3QKPiA+ ICBkcm1fc3luY29ial90aW1lbGluZV9hcnJheSk+IAo+ID4gKyNkZWZpbmUgRFJNX0lPQ1RMX0RV TUJfU0VUX0xBQkVMICAgICAgRFJNX0lPV1IoMHhDRSwgc3RydWN0Cj4gPiBkcm1fZHVtYl9zZXRf bGFiZWxfb2JqZWN0KT4gCj4gPiAgLyoqCj4gPiAgCj4gPiAgICogRGV2aWNlIHNwZWNpZmljIGlv Y3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs