From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2] drm/ioctl: Add a ioctl to label GEM objects Date: Tue, 8 Oct 2019 18:31:32 +0200 Message-ID: <20191008163132.GQ16989@phenom.ffwll.local> References: <20190919125321.22880-1-rohan.garg@collabora.com> <20190920152510.GB10973@ulmo> <2300656.u1qCu661Xg@solembum> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id C4D626E85E for ; Tue, 8 Oct 2019 16:31:38 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id v8so16233221eds.2 for ; Tue, 08 Oct 2019 09:31:38 -0700 (PDT) Content-Disposition: inline In-Reply-To: <2300656.u1qCu661Xg@solembum> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rohan Garg Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBTZXAgMjYsIDIwMTkgYXQgMTA6NDc6MzVBTSArMDIwMCwgUm9oYW4gR2FyZyB3cm90 ZToKPiBPbiB2aWVybmVzLCAyMCBkZSBzZXB0aWVtYnJlIGRlIDIwMTkgMTc6MjU6MTAgKENFU1Qp IFRoaWVycnkgUmVkaW5nIHdyb3RlOgo+ID4gT24gVGh1LCBTZXAgMTksIDIwMTkgYXQgMDI6NTM6 MjFQTSArMDIwMCwgUm9oYW4gR2FyZyB3cm90ZToKPiA+ID4gRFJNX0lPQ1RMX0JPX1NFVF9MQUJF TCBsZXRzIHlvdSBsYWJlbCBHRU0gb2JqZWN0cywgbWFraW5nIGl0Cj4gPiA+IGVhc2llciB0byBk ZWJ1ZyBpc3N1ZXMgaW4gdXNlcnNwYWNlIGFwcGxpY2F0aW9ucy4KPiA+ID4gCj4gPiA+IENoYW5n ZXMgaW4gdjI6Cj4gPiA+ICAgLSBIb2lzdCB0aGUgSU9DVEwgdXAgaW50byB0aGUgZHJtX2RyaXZl ciBmcmFtZXdvcmsKPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFJvaGFuIEdhcmcgPHJvaGFu LmdhcmdAY29sbGFib3JhLmNvbT4KPiA+ID4gLS0tCj4gPiA+IAo+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9nZW0uYyAgICAgIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIHwgIDQgKysrCj4gPiA+ICBk cml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgICAgfCAgMSArCj4gPiA+ICBpbmNsdWRlL2RybS9k cm1fZHJ2LmggICAgICAgICAgfCAxOCArKysrKysrKysrCj4gPiA+ICBpbmNsdWRlL2RybS9kcm1f Z2VtLmggICAgICAgICAgfCAgNyArKysrCj4gPiA+ICBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAg ICAgICAgfCAyMCArKysrKysrKysrKwo+ID4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0 aW9ucygrKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2Vt LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jCj4gPiA+IGluZGV4IDY4NTRmNTg2N2Q1MS4u Nzg1YWM1NjE2MTlhIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5j Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKPiA+ID4gQEAgLTk0MSw2ICs5 NDEsNjUgQEAgZHJtX2dlbV9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdAo+ ID4gPiBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKT4gCj4gPiA+ICAJaWRyX2Rlc3Ryb3koJmZpbGVf cHJpdmF0ZS0+b2JqZWN0X2lkcik7Cj4gPiA+ICAKPiA+ID4gIH0KPiA+ID4gCj4gPiA+ICtpbnQg ZHJtX2JvX3NldF9sYWJlbF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAo+ID4gPiArCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gPiAKPiA+IFBl cmhhcHMgY2FsbCB0aGlzIGRybV9nZW1fc2V0X2xhYmVsX2lvY3RsKCkgc28gdGhhdCBpdCdzIGNv bnNpc3RlbnQgd2l0aAo+ID4gdGhlIG90aGVyIEdFTSByZWxhdGVkIElPQ1RMcz8KPiA+IAo+ID4g PiArewo+ID4gPiArCXN0cnVjdCBkcm1fbGFiZWxfb2JqZWN0ICphcmdzID0gZGF0YTsKPiA+IAo+ ID4gU2ltaWxhcmx5LCBwZXJoYXBzIG1ha2UgdGhpcyBzdHJ1Y3QgZHJtX2dlbV9zZXRfbGFiZWwg Zm9yIGNvbnNpc3RlbmN5Lgo+ID4gCj4gPiA+ICsKPiA+ID4gKwlpZiAoIWFyZ3MtPmxlbiB8fCAh YXJncy0+bmFtZSkKPiA+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICsKPiA+ID4gKwlpZiAo ZGV2LT5kcml2ZXItPmxhYmVsKQo+ID4gPiArCQlyZXR1cm4gZGV2LT5kcml2ZXItPmxhYmVsKGRl diwgYXJncywgZmlsZV9wcml2KTsKPiA+ID4gKwo+ID4gPiArCXJldHVybiAtRU9QTk9UU1VQUDsK PiA+ID4gK30KPiA+ID4gKwo+ID4gPiArLyoqCj4gPiA+ICsgKiBkcm1fZ2VtX2xhYmVsIC0gbGFi ZWwgYSBnaXZlbiBHRU0gb2JqZWN0Cj4gPiA+ICsgKiBAZGV2OiBkcm1fZGV2aWNlIGZvciB0aGUg YXNzb2NpYXRlZCBHRU0gb2JqZWN0Cj4gPiA+ICsgKiBAZGF0YTogZHJtX2xhYmVsX2JvIHN0cnVj dCB3aXRoIGEgbGFiZWwsIGxhYmVsIGxlbmd0aCBhbmQgYW55IHJlbGV2YW50Cj4gPiA+IGZsYWdz ICsgKiBAZmlsZV9wcml2YXRlOiBkcm0gZmlsZS1wcml2YXRlIHN0cnVjdHVyZSB0byBjbGVhbiB1 cAo+ID4gPiArICovCj4gPiA+ICsKPiA+ID4gK2ludCBkcm1fZ2VtX3NldF9sYWJlbChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2xhYmVsX29iamVjdAo+ID4gPiAqYXJncywgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gPiBGdW5jdGlvbiBuYW1lIGRvZXNuJ3QgbWF0Y2gg dGhlIGtlcm5lbGRvYy4KPiA+IAo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1fZ2VtX29iamVj dCAqZ2VtX29iajsKPiA+ID4gKwlpbnQgZXJyID0gMDsKPiA+ID4gKwljaGFyICpsYWJlbDsKPiA+ ID4gKwo+ID4gPiArCWlmIChhcmdzLT5sZW4gPiAwKQo+ID4gPiArCQlsYWJlbCA9IHN0cm5kdXBf dXNlcih1NjRfdG9fdXNlcl9wdHIoYXJncy0+bmFtZSksIGFyZ3MtCj4gPmxlbik7Cj4gPiA+ICsK PiA+ID4gKwlnZW1fb2JqID0gZHJtX2dlbV9vYmplY3RfbG9va3VwKGZpbGVfcHJpdiwgYXJncy0+ aGFuZGxlKTsKPiA+ID4gKwlpZiAoIWdlbV9vYmopIHsKPiA+ID4gKwkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gbG9vayB1cCBHRU0gQk8gJWRcbiIsIGFyZ3MtCj4gPmhhbmRsZSk7Cj4gPiAKPiA+IFBl b3BsZSBjb3VsZCBhYnVzZSB0aGlzIHRvIHNwYW0gdGhlIHN5c3RlbSBsb2dzIHdpdGggdGhlc2Ug ZXJyb3IKPiA+IG1lc3NhZ2VzLiBCZXR0ZXIgbWFrZSB0aGlzIERSTV9ERUJVRygpIG9yIGxlYXZl IGl0IG91dCBjb21wbGV0ZWx5Lgo+ID4gCj4gPiA+ICsJCWVyciA9IC1FTk9FTlQ7Cj4gPiA+ICsJ CWdvdG8gZXJyOwo+ID4gCj4gPiBJIHRoaW5rIHlvdSdyZSBsZWFraW5nIHRoZSBsYWJlbCBzdHJp bmcgaGVyZS4KPiA+IAo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWlmICgoYXJncy0+bGVuID09 IDAgJiYgYXJncy0+bmFtZSA9PSBOVUxMKSB8fCBnZW1fb2JqLT5sYWJlbCkgewo+ID4gPiArCQlr ZnJlZShnZW1fb2JqLT5sYWJlbCk7Cj4gPiA+ICsJCWdlbV9vYmotPmxhYmVsID0gTlVMTDsKPiA+ ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlnZW1fb2JqLT5sYWJlbCA9IGxhYmVsOwo+ID4gPiArCj4g PiA+ICsJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGdlbV9vYmopOwo+ID4gPiArCj4gPiA+ ICsJaWYgKElTX0VSUihnZW1fb2JqLT5sYWJlbCkpIHsKPiA+ID4gKwkJZXJyID0gUFRSX0VSUihn ZW1fb2JqLT5sYWJlbCk7Cj4gPiA+ICsJCWdvdG8gZXJyOwo+ID4gPiArCX0KPiA+IAo+ID4gV2h5 IGRvbid0IHlvdSBjaGVjayBmb3IgdGhpcyBlYXJsaWVyPyBUaGF0IHNlZW1zIHN1Ym9wdGltYWwg YmVjYXVzZSBub3cKPiA+IHlvdSd2ZSBnb3Qgc29tZSBlcnJvciB2YWx1ZSBpbiBnZW1fb2JqLT5s YWJlbCB0aGF0IHlvdSdyZSBnb2luZyB0byBoYXZlCj4gPiB0byBzcGVjaWFsIGNhc2UgYXQgZXZl cnkgc3RlcCBvZiB0aGUgd2F5Lgo+ID4gCj4gPiA+ICsKPiA+ID4gK2VycjoKPiA+ID4gKwlpZiAo ZXJyICE9IDApCj4gPiA+ICsJCWFyZ3MtPmZsYWdzID0gZXJyOwo+ID4gCj4gPiBXaHkgdGhlIGZs YWdzPyBXZSB0eXBpY2FsbHkganVzdCByZXR1cm4gdGhlIGVycm9yLi4uCj4gPiAKPiA+ID4gKwo+ ID4gPiArCXJldHVybiBlcnI7Cj4gPiAKPiA+IC4uLiBsaWtlIGhlcmUuCj4gPiAKPiA+ID4gK30K PiA+IAo+ID4gRG8gd2Ugd2FudCB0byBleHBvcnQgdGhpcyBzbyB0aGF0IGRyaXZlcnMgY2FuIHVz ZSBpdD8KPiA+IAo+ID4gPiArCj4gPiA+ICsKPiA+ID4gCj4gPiA+ICAvKioKPiA+ID4gIAo+ID4g PiAgICogZHJtX2dlbV9vYmplY3RfcmVsZWFzZSAtIHJlbGVhc2UgR0VNIGJ1ZmZlciBvYmplY3Qg cmVzb3VyY2VzCj4gPiA+ICAgKiBAb2JqOiBHRU0gYnVmZmVyIG9iamVjdAo+ID4gPiAKPiA+ID4g QEAgLTk1OCw2ICsxMDE3LDExIEBAIGRybV9nZW1fb2JqZWN0X3JlbGVhc2Uoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmopCj4gPiA+IAo+ID4gPiAgCWRtYV9yZXN2X2ZpbmkoJm9iai0+X3Jlc3Yp Owo+ID4gPiAgCWRybV9nZW1fZnJlZV9tbWFwX29mZnNldChvYmopOwo+ID4gPiAKPiA+ID4gKwo+ ID4gPiArCWlmIChvYmotPmxhYmVsKSB7Cj4gPiA+ICsJCWtmcmVlKG9iai0+bGFiZWwpOwo+ID4g PiArCQlvYmotPmxhYmVsID0gTlVMTDsKPiA+ID4gKwl9Cj4gPiA+IAo+ID4gPiAgfQo+ID4gPiAg RVhQT1JUX1NZTUJPTChkcm1fZ2VtX29iamVjdF9yZWxlYXNlKTsKPiA+ID4gCj4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ludGVybmFsLmggaW5kZXggNTFhMjA1NWM4ZjE4Li44MjU5NjIyZjlhYjYgMTAw NjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKPiA+ID4gQEAgLTEzNyw2ICsxMzcsMTAg QEAgaW50IGRybV9nZW1fcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiA+ID4gCj4g PiA+ICB2b2lkIGRybV9nZW1fdW5waW4oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ID4g PiAgdm9pZCAqZHJtX2dlbV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiA+ID4g IHZvaWQgZHJtX2dlbV92dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZh ZGRyKTsKPiA+ID4gCj4gPiA+ICtpbnQgZHJtX2JvX3NldF9sYWJlbF9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ID4gPiArCQkJc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYpOwo+ID4gPiAraW50IGRybV9nZW1fc2V0X2xhYmVsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBkcm1fbGFiZWxfb2JqZWN0Cj4gPiA+ICphcmdzLCArCQkJc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYpOwo+ID4gCj4gPiBUaGlzIG9uZSBzZWVtcyB0byBiZSB1bnVzZWQgbm93 Lgo+ID4gCj4gPiA+ICAvKiBkcm1fZGVidWdmcy5jIGRybV9kZWJ1Z2ZzX2NyYy5jICovCj4gPiA+ ICAjaWYgZGVmaW5lZChDT05GSUdfREVCVUdfRlMpCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5j Cj4gPiA+IGluZGV4IGY2NzVhM2JiMmM4OC4uMDc5ZDE0MjJmOWM1IDEwMDY0NAo+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9pb2N0bC5jCj4gPiA+IEBAIC03MDksNiArNzA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7Cj4gPiA+IAo+ID4gPiAgCURSTV9JT0NU TF9ERUYoRFJNX0lPQ1RMX01PREVfTElTVF9MRVNTRUVTLCAKPiBkcm1fbW9kZV9saXN0X2xlc3Nl ZXNfaW9jdGwsCj4gPiA+ICAJRFJNX01BU1RFUiksIERSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01P REVfR0VUX0xFQVNFLAo+ID4gPiAgCWRybV9tb2RlX2dldF9sZWFzZV9pb2N0bCwgRFJNX01BU1RF UiksCj4gPiA+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9SRVZPS0VfTEVBU0UsIAo+ IGRybV9tb2RlX3Jldm9rZV9sZWFzZV9pb2N0bCwKPiA+ID4gIAlEUk1fTUFTVEVSKSw+IAo+ID4g PiArCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0JPX1NFVF9MQUJFTCwgZHJtX2JvX3NldF9sYWJl bF9pb2N0bCwKPiA+ID4gRFJNX1JFTkRFUl9BTExPVyksPiAKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ ID4gICNkZWZpbmUgRFJNX0NPUkVfSU9DVExfQ09VTlQJQVJSQVlfU0laRSggZHJtX2lvY3RscyAp Cj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Rydi5oIGIvaW5jbHVk ZS9kcm0vZHJtX2Rydi5oCj4gPiA+IGluZGV4IDg5NzZhZmU0OGMxYy4uZjczNmJhMWY0MmE2IDEw MDY0NAo+ID4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZHJ2LmgKPiA+ID4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX2Rydi5oCj4gPiA+IEBAIC03MTUsNiArNzE1LDI0IEBAIHN0cnVjdCBkcm1fZHJp dmVyIHsKPiA+ID4gCj4gPiA+ICAJCQkgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4g IAkJCSAgICB1aW50MzJfdCBoYW5kbGUpOwo+ID4gPiAKPiA+ID4gKwo+ID4gPiArCS8qKgo+ID4g PiArCSAqIEBsYWJlbDoKPiA+ID4gKwkgKgo+ID4gPiArCSAqIFRoaXMgbGFiZWwncyBhIGJ1ZmZl ciBvYmplY3QuCj4gPiA+ICsJICoKPiA+ID4gKwkgKiBDYWxsZWQgYnkgdGhlIHVzZXIgdmlhIGlv Y3RsLgo+ID4gPiArCSAqCj4gPiA+ICsJICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMg ZHJtX2dlbV9sYWJlbCgpLiBHRU0gYmFzZWQgCj4gZHJpdmVycwo+ID4gPiArCSAqIG11c3Qgbm90 IG92ZXJ3cml0ZSB0aGlzLgo+ID4gPiArCj4gPiAKPiA+IFNwdXJpb3VzIGJsYW5rIGxpbmUuCj4g PiAKPiAKPiBBY2sgdG8gYWxsIHRoZSBhYm92ZS4gSSdsbCBhZGRyZXNzIHRoZXNlIGluIHYzIQo+ IAo+ID4gPiArCSAqIFJldHVybnM6Cj4gPiA+ICsJICoKPiA+ID4gKwkgKiBaZXJvIG9uIHN1Y2Nl c3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCj4gPiA+ICsJICovCj4gPiA+ICsJaW50ICgq bGFiZWwpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbGFiZWxfb2JqZWN0IAo+ ICphcmdzLAo+ID4gPiArCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiA+IAo+ID4g SWYgSSB1bmRlcnN0YW5kIGNvcnJlY3RseSwgeW91IHVzZSB0aGlzIHNvIHRoYXQgbm9uLUdFTSBk cml2ZXJzIGNhbiB1c2UKPiA+IHRoaXMgSU9DVEwgdG8gbGFiZWwgdGhlaXIgbm9uLUdFTSBvYmpl Y3RzLiBEbyB5b3UgdGhpbmsgdGhhdCdzIHJlYWxseQo+ID4gdXNlZnVsPyBJIG1lYW4gdGhleSd2 ZSBhbHJlYWR5IGdvdCBxdWl0ZSBhIGJpdCBvZiBzcGVjaWFsIGNvZGUgdG8gZGVhbAo+ID4gd2l0 aCB0aGVpciBvYmplY3RzLCBzbyBzaW5nbGluZyBvdXQgdGhpcyBJT0NUTCBzZWVtcyBhIGJpdCBv ZGQuCj4gPiAKPiA+IFRoZW4gYWdhaW4sIEkgZ3Vlc3MgaXQgZG9lc24ndCByZWFsbHkgaHVydCBz aW5jZSBHRU0tYmFzZWQgZHJpdmVycyB3aWxsCj4gPiBhbHdheXMgdXNlIHRoZSBzdGFuZGFyZCBp bXBsZW1lbnRhdGlvbi4KPiA+IAo+IAo+IFBsZWFzZSByZWZlciB0byBUaG9tYXMgWmltbWVybWFu bidzIHJlcGx5IGVhcmxpZXIgaW4gdGhpcyB0aHJlYWQuIFRoaXMgd2FzIAo+IGFsc28gc3BlY2lm aWNhbGx5IHJlcXVlc3RlZCBhcyBwYXJ0IG9mIHRoZSB2MSByZXZpZXcgb2YgdGhpcyBwYXRjaC4K CkltbyBkaXRjaCB0aGlzLiBUaGVyZSdzIGEgZ3JhbnQgdG90YWwgb2YgMSBub24tZ2VtIGRyaXZl ciwgYW5kIHRoYXQgb25lCnVzZXMgMCBvZiB0aGUgb3RoZXIgZ2VtIHJlbGF0ZWQgc2hhcmluZyBp bmZyYXN0cnVjdHVyZS4gSSBkb24ndCBleHBlY3QgYW55Cm5ldyBub24tZ2VtIGRyaXZlciB0byBn ZXQgbWVyZ2VkLCBldmVyICh3ZSdyZSBtZXJnaW5nIHR0bSBhbmQgZ2VtCmludGVybmFsbHksIHdo aWNoIHdhcyByZWFsbHkgdGhlIG9ubHkgcmVhc29uKS4KCkFuZCBpZiB2bXdnZnggd2FudHMgdG8g bGFiZWwgb2JqZWN0cywgdGhleSBjYW4gZG8gdGhhdCB0aHJvdWdoIHRoZWlyIG93bgppb2N0bC4K LURhbmllbAoKPiAKPiA+ID4gKwo+ID4gPiAKPiA+ID4gIAkvKioKPiA+ID4gIAkKPiA+ID4gIAkg KiBAZ2VtX3ZtX29wczogRHJpdmVyIHByaXZhdGUgb3BzIGZvciB0aGlzIG9iamVjdAo+ID4gPiAg CSAqCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2dlbS5oIGIvaW5j bHVkZS9kcm0vZHJtX2dlbS5oCj4gPiA+IGluZGV4IDZhYWJhMTRmNTk3Mi4uZjgwMWMwNTRlOTcy IDEwMDY0NAo+ID4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKPiA+ID4gKysrIGIvaW5j bHVkZS9kcm0vZHJtX2dlbS5oCj4gPiA+IEBAIC0yMzcsNiArMjM3LDEzIEBAIHN0cnVjdCBkcm1f Z2VtX29iamVjdCB7Cj4gPiA+IAo+ID4gPiAgCSAqLwo+ID4gPiAgCQo+ID4gPiAgCWludCBuYW1l Owo+ID4gPiAKPiA+ID4gKwkvKioKPiA+ID4gKwkgKiBAbGFiZWw6Cj4gPiA+ICsJICoKPiA+ID4g KwkgKiBMYWJlbCBmb3IgdGhpcyBvYmplY3QsIHNob3VsZCBiZSBhIGh1bWFuIHJlYWRhYmxlIHN0 cmluZy4KPiA+ID4gKwkgKi8KPiA+ID4gKwljaGFyICpsYWJlbDsKPiA+ID4gKwo+ID4gPiAKPiA+ ID4gIAkvKioKPiA+ID4gIAkKPiA+ID4gIAkgKiBAZG1hX2J1ZjoKPiA+ID4gIAkgKgo+ID4gPiAK PiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkv ZHJtL2RybS5oCj4gPiA+IGluZGV4IDhhNWIyZjhmOGViOS4uMjNiNTA3ZjVjNTcxIDEwMDY0NAo+ ID4gPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCj4gPiA+ICsrKyBiL2luY2x1ZGUvdWFw aS9kcm0vZHJtLmgKPiA+ID4gQEAgLTYyNiw2ICs2MjYsMjUgQEAgc3RydWN0IGRybV9nZW1fb3Bl biB7Cj4gPiA+IAo+ID4gPiAgCV9fdTY0IHNpemU7Cj4gPiA+ICAKPiA+ID4gIH07Cj4gPiA+IAo+ ID4gPiArLyoqIHN0cnVjdCBkcm1fbGFiZWxfb2JqZWN0IC0gaW9jdGwgYXJndW1lbnQgZm9yIGxh YmVsbGluZyBCT3MuCj4gPiA+ICsgKgo+ID4gPiArICogVGhpcyBsYWJlbCdzIGEgQk8gd2l0aCBh IHVzZXJzcGFjZSBsYWJlbAo+ID4gPiArICoKPiA+ID4gKyAqLwo+ID4gPiArc3RydWN0IGRybV9s YWJlbF9vYmplY3Qgewo+ID4gPiArCS8qKiBIYW5kbGUgZm9yIHRoZSBvYmplY3QgYmVpbmcgbGFi ZWxsZWQuICovCj4gPiA+ICsJX191MzIgaGFuZGxlOwo+ID4gPiArCj4gPiA+ICsJLyoqIExhYmVs IGFuZCBsYWJlbCBsZW5ndGguCj4gPiA+ICsJICogIGxlbmd0aCBpbmNsdWRlcyB0aGUgdHJhaWxp bmcgTlVMTC4KPiA+IAo+ID4gTml0OiBJIHRoaW5rIHlvdSBtZWFuICJ0cmFpbGluZyBOVUwiLiBB bHNvLCB0aGUgcGFyYW1ldGVyIGlzIGNhbGxlZCBsZW4KPiA+IGJlbG93LCBzbyB0aGUgY29tbWVu dCBoZXJlIHNob3VsZCBtYXRjaC4KPiA+IAo+IAo+IEFjay4KPiAKPiBUaGFua3MgZm9yIHRoZSBy ZXZpZXchCj4gCj4gQ2hlZXJzCj4gUm9oYW4gR2FyZwoKCgo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=