From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jose Abreu Subject: Re: [PATCH v2 4/6] drm: scrambling support in drm layer Date: Wed, 8 Feb 2017 11:31:29 +0000 Message-ID: References: <1486389566-28613-1-git-send-email-shashank.sharma@intel.com> <1486389566-28613-5-git-send-email-shashank.sharma@intel.com> <1a4bbd16-9238-df63-15dc-c48f22287eb8@synopsys.com> <3b7a6dc5-a868-4867-b884-e5eb02bdac6c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <3b7a6dc5-a868-4867-b884-e5eb02bdac6c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" , Jose Abreu , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com, treding@nvidia.com Cc: daniel.vetter@intel.com List-Id: dri-devel@lists.freedesktop.org SGkgU2hhc2hhbmssCgoKCk9uIDA3LTAyLTIwMTcgMTY6MTksIFNoYXJtYSwgU2hhc2hhbmsgd3Jv dGU6Cj4gUmVnYXJkcwo+Cj4gU2hhc2hhbmsKPgo+Cj4gT24gMi83LzIwMTcgNDo0NCBQTSwgSm9z ZSBBYnJldSB3cm90ZToKPj4gSGkgU2hhc2hhbmssCj4+Cj4+Cj4+Cj4+IE9uIDA2LTAyLTIwMTcg MTM6NTksIFNoYXNoYW5rIFNoYXJtYSB3cm90ZToKPj4+IEhETUkgMi4wIHNwZWMgbWFuZGF0ZXMg c2NyYW1ibGluZyBmb3IgbW9kZXMgd2l0aCBwaXhlbCBjbG9jawo+Pj4gaGlnaGVyCj4+PiB0aGFu IDM0MCBNSHouIFRoaXMgcGF0Y2ggYWRkcyBmZXcgbmV3IGZ1bmN0aW9ucyBpbiBkcm0gbGF5ZXIg Zm9yCj4+PiBjb3JlIGRyaXZlcnMgdG8gZW5hYmxlL2Rpc2FibGUgc2NyYW1ibGluZy4KPj4+Cj4+ PiBUaGlzIHBhdGNoIGFkZHM6Cj4+PiAtIEEgZnVuY3Rpb24gdG8gZGV0ZWN0IHNjcmFtYmxpbmcg c3VwcG9ydCBwYXJzaW5nIEhGLVZTREIKPj4+IC0gQSBmdW5jdGlvbiB0byBjaGVjayBzY3JhbWJs aW5nIHN0YXR1cyBydW50aW1lIHVzaW5nIFNDREMgcmVhZC4KPj4+IC0gVHdvIGZ1bmN0aW9ucyB0 byBlbmFibGUvZGlzYWJsZSBzY3JhbWJsaW5nIHVzaW5nIFNDREMKPj4+IHJlYWQvd3JpdGUuCj4+ PiAtIEZldyBuZXcgYm9vbHMgdG8gcmVmbGVjdCBzY3JhbWJsaW5nIHN1cHBvcnQgYW5kIHN0YXR1 cy4KPj4+Cj4+PiBWMjogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFRoaWVycnksIFZp bGxlIGFuZCBEaGluYWthcmFuCj4+PiBUaGllcnJ5Ogo+Pj4gLSBNaHogLT4gTUh6IGluIGNvbW1l bnRzIGFuZCBjb21taXQgbWVzc2FnZS4KPj4+IC0gaTJjIC0+IEkyQyBpbiBjb21tZW50cy4KPj4+ IC0gRml4IHRoZSBmdW5jdGlvbiBkb2N1bWVudGF0aW9ucywga2VlcCBpbiBzeW5jIHdpdGgKPj4+ IGRybV9zY2RjX2hlbHBlci5jCj4+PiAtIGRybV9jb25uZWN0b3IgLT4gRFJNIGNvbm5lY3Rvci4K Pj4+IC0gQ3JlYXRlIHN0cnVjdHVyZSBmb3IgU0NEQywgYW5kIHNhdmUgc2NyYW1ibGluZyBzdGF0 dXMKPj4+IGluc2lkZSB0aGF0LAo+Pj4gICAgaW4gYSBzdWItc3RydWN0dXJlLgo+Pj4gLSBDYWxs IHRoaXMgc3ViLXN0cnVjdHVyZSBzY3JhbWJsaW5nIGluc3RlYWQgb2Ygc2NyX2luZm8uCj4+PiAt IGxvd19yYXRlcyAtPiBsb3dfY2xvY2tzIGluIHNjcmFtYmxpbmcgc3RhdHVzIHN0cnVjdHVyZS4K Pj4+IC0gU3RvcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBJMkMgcmVhZC93cml0ZSBhbmQgcHJpbnQg dGhlCj4+PiBlcnJvciBjb2RlCj4+PiAgICAgIGluIGNhc2Ugb2YgZmFpbHVyZS4KPj4+Cj4+PiBU aGllcnJ5IGFuZCBWaWxsZToKPj4+IC0gTW92ZSB0aGUgc2NyYW1ibGluZyBlbmFibGUvZGlzYWJs ZS9xdWVyeSBmdW5jdGlvbnMgaW4KPj4+ICAgIGRybV9zY2RjX2hlbHBlci5jIGZpbGUuCj4+PiAt IEFkZCBkcm1fU0NEQyBwcmVmaXggZm9yIHRoZSBmdW5jdGlvbnMuCj4+PiAtIE9wdGltaXplIHRo ZSByZXR1cm4gc3RhdGVtZW50IGZyb20gZnVuY3Rpb24KPj4+ICAgIGRybV9TQ0RDX2NoZWNrX3Nj cmFtYmxpbmdfc3RhdHVzLgo+Pj4KPj4+IFZpbGxlOgo+Pj4gLSBEb250IG92ZXJ3cml0ZSBzYXZl ZCBtYXggVE1EUyBjbG9jayB2YWx1ZSBpbiBkaXNwbGF5X2luZm8sCj4+PiAgICBpZiBtYXggdG1k cyBjbG9jayBmcm9tIEhGLVZTREIgaXMgbm90ID4gMzQwIE1Iei4KPj4+IC0gZHJtX2RldGVjdF9o ZG1pX3NjcmFtYmxpbmcgLT4gZHJtX3BhcnNlX2hkbWlfZm9ydW1fdnNkYi4KPj4+IC0gUmVtb3Zl IGR5bmFtaWMgdHJhY2tpbmcgb2YgU0NEQyBzdGF0dXMgZnJvbSBEUk0gbGF5ZXIsCj4+PiBmb3Jj ZSBib29sLgo+Pj4gLSBQcm9ncmFtIGNsb2NrIHJhdGlvIGJpdCBhbHNvLCB3aGlsZSBlbmFibGlu ZyBzY3JhbWJsaW5nLgo+Pj4KPj4+IERoaW5ha2FyYW46Cj4+PiAgIC0gQWRkIGEgY29tbWVudCBh Ym91dCAqNTAwMCB3aGlsZSBleHRyYWN0aW5nIG1heCBjbG9jawo+Pj4gc3VwcG9ydGVkLgo+Pj4K Pj4+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVs LmNvbT4KPj4+IC0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyAgICAgICAgfCAg MzMgKysrKysrKysrKysrLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX3NjZGNfaGVscGVyLmMg fCAxMDAKPj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+PiAgIGlu Y2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICB8ICAxOSArKysrKysrKwo+Pj4gICBpbmNs dWRlL2RybS9kcm1fZWRpZC5oICAgICAgICAgICAgfCAgIDYgKystCj4+PiAgIGluY2x1ZGUvZHJt L2RybV9zY2RjX2hlbHBlci5oICAgICB8ICAyMCArKysrKysrKwo+Pj4gICA1IGZpbGVzIGNoYW5n ZWQsIDE3NiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Vk aWQuYwo+Pj4gaW5kZXggYTQ4N2I4MC4uZGM4NWViOSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZWRpZC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ Pj4gQEAgLTM3LDYgKzM3LDcgQEAKPj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+Pj4g ICAjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+Cj4+PiAgICNpbmNsdWRlIDxkcm0vZHJtX2Rp c3BsYXlpZC5oPgo+Pj4gKyNpbmNsdWRlIDxkcm0vZHJtX3NjZGNfaGVscGVyLmg+Cj4+PiAgICAg I2RlZmluZSB2ZXJzaW9uX2dyZWF0ZXIoZWRpZCwgbWFqLCBtaW4pIFwKPj4+ICAgICAgICgoKGVk aWQpLT52ZXJzaW9uID4gKG1haikpIHx8IFwKPj4+IEBAIC0zODA1LDEzICszODA2LDQzIEBAIGVu dW0gaGRtaV9xdWFudGl6YXRpb25fcmFuZ2UKPj4+ICAgc3RhdGljIHZvaWQgZHJtX3BhcnNlX2hk bWlfZm9ydW1fdnNkYihzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+Pj4gKmNvbm5lY3RvciwKPj4+ICAg ICAgICAgICAgICAgICAgICBjb25zdCB1OCAqaGZfdnNkYikKPj4+ICAgewo+Pj4gLSAgICBzdHJ1 Y3QgZHJtX2hkbWlfaW5mbyAqaGRtaSA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pOwo+ Pj4gKyAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqZGlzcGxheSA9Cj4+PiAmY29ubmVjdG9y LT5kaXNwbGF5X2luZm87Cj4+PiArICAgIHN0cnVjdCBkcm1faGRtaV9pbmZvICpoZG1pID0gJmRp c3BsYXktPmhkbWk7Cj4+PiAgICAgICAgIGlmIChoZl92c2RiWzZdICYgMHg4MCkgewo+Pj4gICAg ICAgICAgIGhkbWktPnNjZGMuc3VwcG9ydGVkID0gdHJ1ZTsKPj4+ICAgICAgICAgICBpZiAoaGZf dnNkYls2XSAmIDB4NDApCj4+PiAgICAgICAgICAgICAgIGhkbWktPnNjZGMucmVhZF9yZXF1ZXN0 ID0gdHJ1ZTsKPj4+ICAgICAgIH0KPj4+ICsKPj4+ICsgICAgLyoKPj4+ICsgICAgICogQWxsIEhE TUkgMi4wIG1vbml0b3JzIG11c3Qgc3VwcG9ydCBzY3JhbWJsaW5nIGF0Cj4+PiByYXRlcyA+IDM0 MCBNSHouCj4+PiArICAgICAqIEFuZCBhcyBwZXIgdGhlIHNwZWMsIHRocmVlIGZhY3RvcnMgY29u ZmlybSB0aGlzOgo+Pj4gKyAgICAgKiAqIEF2YWlsYWJpbGl0eSBvZiBhIEhGLVZTREIgYmxvY2sg aW4gRURJRCAoY2hlY2spCj4+PiArICAgICAqICogTm9uIHplcm8gTWF4X1RNRFNfQ2hhcl9SYXRl IGZpbGVkIGluIEhGLVZTREIgKGxldCdzCj4+PiBjaGVjaykKPj4+ICsgICAgICogKiBTQ0RDIHN1 cHBvcnQgYXZhaWxhYmxlIChsZXQncyBjaGVjaykKPj4+ICsgICAgICogTGV0cyBjaGVjayBpdCBv dXQuCj4+PiArICAgICAqLwo+Pj4gKwo+Pj4gKyAgICBpZiAoaGZfdnNkYls1XSkgewo+Pj4gKyAg ICAgICAgLyogbWF4IGNsb2NrIGlzIDUwMDAgS0h6IHRpbWVzIGJsb2NrIHZhbHVlICovCj4+PiAr ICAgICAgICB1MzIgbWF4X3RtZHNfY2xvY2sgPSBoZl92c2RiWzVdICogNTAwMDsKPj4+ICsgICAg ICAgIHN0cnVjdCBkcm1fc2NkYyAqc2NkYyA9ICZoZG1pLT5zY2RjOwo+Pj4gKwo+Pj4gKyAgICAg ICAgaWYgKG1heF90bWRzX2Nsb2NrID4gMzQwMDAwKSB7Cj4+PiArICAgICAgICAgICAgZGlzcGxh eS0+bWF4X3RtZHNfY2xvY2sgPSBtYXhfdG1kc19jbG9jazsKPj4+ICsgICAgICAgICAgICBEUk1f REVCVUdfS01TKCJIRi1WU0RCOiBtYXggVE1EUyBjbG9jayAlZCBrSHpcbiIsCj4+PiArICAgICAg ICAgICAgICAgIGRpc3BsYXktPm1heF90bWRzX2Nsb2NrKTsKPj4+ICsgICAgICAgIH0KPj4+ICsK Pj4+ICsgICAgICAgIGlmIChzY2RjLT5zdXBwb3J0ZWQpIHsKPj4+ICsgICAgICAgICAgICBzY2Rj LT5zY3JhbWJsaW5nLnN1cHBvcnRlZCA9IHRydWU7Cj4+PiArCj4+PiArICAgICAgICAgICAgLyog RmV3IHNpbmtzIHN1cHBvcnQgc2NyYW1ibGluZyBmb3IgY2xva3MgPCAzNDBNICovCj4+PiArICAg ICAgICAgICAgaWYgKChoZl92c2RiWzZdICYgMHg4KSkKPj4gQklUKDMpID8KPiBZZXMsIGJpdCAz IGlzIExURV8zNDBNY3NjX3NjcmFtYmxlLCBpbmRpY2F0aW5nIHRoYXQgdGhlIHNpbmsKPiBzdXBw b3J0IHNjcmFtYmxpbmcgYXQgcmF0ZXMgYmVsb3cgMzQwTWh6IHRvbywgaXNuJ3QgaXQgPwo+Pgo+ Pj4gKyAgICAgICAgICAgICAgICBzY2RjLT5zY3JhbWJsaW5nLmxvd19yYXRlcyA9IHRydWU7Cj4+ PiArICAgICAgICB9Cj4+PiArICAgIH0KPj4+ICAgfQo+Pj4gICAgIHN0YXRpYyB2b2lkIGRybV9w YXJzZV9oZG1pX2RlZXBfY29sb3JfaW5mbyhzdHJ1Y3QKPj4+IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3NjZGNfaGVscGVyLmMK Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hlbHBlci5jCj4+PiBpbmRleCBmZTBlMTIx Li4zMTFmNjJlIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hlbHBl ci5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3NjZGNfaGVscGVyLmMKPj4+IEBAIC0y Miw4ICsyMiwxMCBAQAo+Pj4gICAgKi8KPj4+ICAgICAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ Pj4gKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgo+Pj4gICAgICNpbmNsdWRlIDxkcm0vZHJtX3Nj ZGNfaGVscGVyLmg+Cj4+PiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4+PiAgICAgLyoqCj4+PiAg ICAqIERPQzogc2NkYyBoZWxwZXJzCj4+PiBAQCAtMTA5LDMgKzExMSwxMDEgQEAgc3NpemVfdCBk cm1fc2NkY193cml0ZShzdHJ1Y3QKPj4+IGkyY19hZGFwdGVyICphZGFwdGVyLCB1OCBvZmZzZXQs Cj4+PiAgICAgICByZXR1cm4gZXJyOwo+Pj4gICB9Cj4+PiAgIEVYUE9SVF9TWU1CT0woZHJtX3Nj ZGNfd3JpdGUpOwo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIGRybV9zY2RjX2NoZWNrX3NjcmFtYmxp bmdfc3RhdHVzIC0gd2hhdCBpcyBzdGF0dXMgb2YKPj4+IHNjcmFtYmxpbmc/Cj4+PiArICogQGFk YXB0ZXI6IEkyQyBhZGFwdGVyIGZvciBEREMgY2hhbm5lbAo+Pj4gKyAqCj4+PiArICogUmVhZHMg dGhlIHNjcmFtYmxlciBzdGF0dXMgb3ZlciBTQ0RDLCBhbmQgY2hlY2tzIHRoZQo+Pj4gKyAqIHNj cmFtYmxpbmcgc3RhdHVzLgo+Pj4gKyAqCj4+PiArICogUmV0dXJuczoKPj4+ICsgKiBUcnVlIGlm IHRoZSBzY3JhbWJsaW5nIGlzIGVuYWJsZWQsIGZhbHNlIG90aGVyd2lzZS4KPj4+ICsgKi8KPj4+ ICsKPj4+ICtib29sIGRybV9zY2RjX2NoZWNrX3NjcmFtYmxpbmdfc3RhdHVzKHN0cnVjdCBpMmNf YWRhcHRlcgo+Pj4gKmFkYXB0ZXIpCj4+PiArewo+Pj4gKyAgICB1OCBzdGF0dXM7Cj4+PiArICAg IGludCByZXQ7Cj4+PiArCj4+PiArICAgIHJldCA9IGRybV9zY2RjX3JlYWRiKGFkYXB0ZXIsIFND RENfU0NSQU1CTEVSX1NUQVRVUywKPj4+ICZzdGF0dXMpOwo+Pj4gKyAgICBpZiAocmV0IDwgMCkg ewo+Pj4gKyAgICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVhZCBzY3JhbWJsaW5nIHN0YXR1 cywgZXJyb3IKPj4+ICVkXG4iLCByZXQpOwo+Pj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOwo+Pj4g KyAgICB9Cj4+PiArCj4+PiArICAgIHJldHVybiBzdGF0dXMgJiBTQ0RDX1NDUkFNQkxJTkdfU1RB VFVTOwo+PiAicmV0dXJuIChzdGF0dXMgJiBTQ0RDX1NDUkFNQkxJTkdfU1RBVFVTKSA+IDA7IiA/ Cj4gSSB0aGluayBKYW5pIGhhcyBtYWRlIGFuIGFncmVlbWVudCBhbHJlYWR5IG9uIHRoaXMuCj4+ Cj4+PiArfQo+Pj4gK0VYUE9SVF9TWU1CT0woZHJtX3NjZGNfY2hlY2tfc2NyYW1ibGluZ19zdGF0 dXMpOwo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIGRybV9zY2RjX2VuYWJsZV9zY3JhbWJsaW5nIC0g ZW5hYmxlIHNjcmFtYmxpbmcKPj4+ICsgKiBAYWRhcHRlcjogSTJDIGFkYXB0ZXIgZm9yIEREQyBj aGFubmVsCj4+PiArICoKPj4+ICsgKiBXcml0ZXMgdGhlIFRNRFMgY29uZmlnIG92ZXIgU0NEQyBj aGFubmVsLCBhbmQgZW5hYmxlcwo+Pj4gc2NyYW1ibGluZwo+Pj4gKyAqIFJldHVybnM6Cj4+PiAr ICogVHJ1ZSBpZiBzY3JhbWJsaW5nIGlzIHN1Y2Nlc3NmdWxseSBlbmFibGVkLCBmYWxzZSBvdGhl cndpc2UuCj4+PiArICovCj4+PiArCj4+PiArYm9vbCBkcm1fc2NkY19lbmFibGVfc2NyYW1ibGlu ZyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpCj4+PiArewo+Pj4gKyAgICB1OCBjb25maWc7 Cj4+PiArICAgIGludCByZXQ7Cj4+PiArCj4+PiArICAgIHJldCA9IGRybV9zY2RjX3JlYWRiKGFk YXB0ZXIsIFNDRENfVE1EU19DT05GSUcsICZjb25maWcpOwo+Pj4gKyAgICBpZiAocmV0IDwgMCkg ewo+Pj4gKyAgICAgICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gcmVhZCB0bWRzIGNvbmZpZywgZXJy PSVkXG4iLCByZXQpOwo+Pj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOwo+Pj4gKyAgICB9Cj4+PiAr Cj4+PiArICAgIGNvbmZpZyB8PSAoU0NEQ19TQ1JBTUJMSU5HX0VOQUJMRSB8Cj4+PiBTQ0RDX1RN RFNfQklUX0NMT0NLX1JBVElPX0JZXzQwKTsKPj4gSG1tLCBJIGRpZCBub3QgcmVhZCB0aGUgc3Bl YyBleGhhdXN0aXZlbHkgYnV0IHNob3VsZG4ndCB0aGUgY2xvY2sKPj4gcmF0aW8gYnkgNDAgb25s eSBiZSBzZXQgZm9yIGRhdGEgcmF0ZXMgYWJvdmUgMy40R2Jwcz8KPiBZb3UgYXJlIHJpZ2h0LCBm b3IgZmV3IG1vbml0b3JzIHNjcmFtYmxpbmcgY2FuIGJlIGRvbmUgYmVsb3cKPiAzNDAgTUh6IHRv bywgYW5kIEkgYW0gbm90IHN1cmUgaWYgd2Ugc2hvdWxkCj4gc2V0IHRoZSBjbG9jayByYXRpbyBi aXQgb24gdGhhdC4gTGV0IG1lIGNoZWNrIHRoZSBzcGVjIGZvcgo+IHRob3NlIGNhc2VzLgo+Pj4g Kwo+Pj4gKyAgICByZXQgPSBkcm1fc2NkY193cml0ZWIoYWRhcHRlciwgU0NEQ19UTURTX0NPTkZJ RywgY29uZmlnKTsKPj4+ICsgICAgaWYgKHJldCA8IDApIHsKPj4+ICsgICAgICAgIERSTV9FUlJP UigiRmFpbGVkIHRvIGVuYWJsZSBzY3JhbWJsaW5nLCBlcnJvciAlZFxuIiwKPj4+IHJldCk7Cj4+ PiArICAgICAgICByZXR1cm4gZmFsc2U7Cj4+PiArICAgIH0KPj4+ICsKPj4+ICsgICAgLyoKPj4+ ICsgICAgICogVGhlIHNwZWMgc2F5cyB0aGF0IHRoZSBzb3VyY2Ugc2hvdWxkIHdhaXQgbWluIDFt cyBhbmQKPj4+IG1heCAxMDBtcwo+Pj4gKyAgICAgKiBhZnRlciB3cml0aW5nIHRoZSBUTURTIGNv bmZpZyBmb3IgY2xvY2sgcmF0aW8uIExldHMKPj4+IG9iZXkgdGhlIHNwZWMuCj4+PiArICAgICAq Lwo+Pj4gKyAgICB1c2xlZXBfcmFuZ2UoMTAwMCwgMTAwMDAwKTsKPj4gU2hhbGwgd2UgcmVhZCBo ZXJlIHRoZSBjbG9ja19kZXRlY3RlZCBzdGF0dXMgdG8gbWFrZSBzdXJlIHRoZQo+PiBzaW5rIGlz IG9rYXk/Cj4gVGhpcyBpcyBvcHRpb25hbCBpbiBzcGVjLCBzbyBJIGFtIGFmcmFpZCBmZXcgbW9u aXRvcnMgd29udAo+IGltcGxlbWVudCB0aGlzLCBhbmQgd2Ugd2lsbCB1bm5lY2Vzc2FyeSBhZGQK PiBsb3Qgb2Ygbm9pc2UgaW4gY29kZS4gRG8geW91IHRoaW5rIHNvID8KCkhtbSwgb2suIEl0IHdh cyB0aGUgc2FmZXN0IHRoaW5nIHRvIGRvIGJ1dCBpZiB3ZSBoYXZlIG1vbml0b3JzCndpdGggc2Ny YW1ibGluZyBzdXBwb3J0IGFuZCB3aXRob3V0IHRoaXMgdGhlbiBpdHMgYmV0dGVyIG5vdCB0by4K CkJlc3QgcmVnYXJkcywKSm9zZSBNaWd1ZWwgQWJyZXUKCj4KPiAtIFNoYXNoYW5rCj4+PiArICAg IHJldHVybiB0cnVlOwo+Pj4gK30KPj4+ICtFWFBPUlRfU1lNQk9MKGRybV9zY2RjX2VuYWJsZV9z Y3JhbWJsaW5nKTsKPj4+ICsKPj4+ICsvKioKPj4+ICsgKiBkcm1fc2NkY19kaXNhYmxlX3NjcmFt YmxpbmcgLSBkaXNhYmxlIHNjcmFtYmxpbmcKPj4+ICsgKiBAYWRhcHRlcjogSTJDIGFkYXB0ZXIg Zm9yIEREQyBjaGFubmVsCj4+PiArICoKPj4+ICsgKiBXcml0ZSB0aGUgVE1EUyBjb25maWcgb3Zl ciBTQ0RDIGNoYW5uZWwsIGFuZCBkaXNhYmxlCj4+PiBzY3JhbWJsaW5nCj4+PiArICogUmV0dXJu OiBUcnVlIGlmIHNjcmFtYmxpbmcgaXMgc3VjY2Vzc2Z1bGx5IGRpc2FibGVkLAo+Pj4gZmFsc2Ug b3RoZXJ3aXNlLgo+Pj4gKyAqLwo+Pj4gK2Jvb2wgZHJtX3NjZGNfZGlzYWJsZV9zY3JhbWJsaW5n KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKPj4+ICt7Cj4+PiArICAgIHU4IGNvbmZpZzsK Pj4+ICsgICAgaW50IHJldDsKPj4+ICsKPj4+ICsgICAgcmV0ID0gZHJtX3NjZGNfcmVhZGIoYWRh cHRlciwgU0NEQ19UTURTX0NPTkZJRywgJmNvbmZpZyk7Cj4+PiArICAgIGlmIChyZXQgPCAwKSB7 Cj4+PiArICAgICAgICBEUk1fRVJST1IoIkZhaWxlZCB0byByZWFkIHRtZHMgY29uZmlnLCBlcnJv ciAlZFxuIiwKPj4+IHJldCk7Cj4+PiArICAgICAgICByZXR1cm4gZmFsc2U7Cj4+PiArICAgIH0K Pj4+ICsKPj4+ICsgICAgY29uZmlnICY9IH4oU0NEQ19TQ1JBTUJMSU5HX0VOQUJMRSB8Cj4+PiBT Q0RDX1RNRFNfQklUX0NMT0NLX1JBVElPX0JZXzQwKTsKPj4+ICsKPj4+ICsgICAgcmV0ID0gZHJt X3NjZGNfd3JpdGViKGFkYXB0ZXIsIFNDRENfVE1EU19DT05GSUcsIGNvbmZpZyk7Cj4+PiArICAg IGlmIChyZXQgPCAwKSB7Cj4+PiArICAgICAgICBEUk1fRVJST1IoIkZhaWxlZCB0byBlbmFibGUg c2NyYW1ibGluZywgZXJyb3IgJWRcbiIsCj4+PiByZXQpOwo+Pj4gKyAgICAgICAgcmV0dXJuIGZh bHNlOwo+Pj4gKyAgICB9Cj4+PiArCj4+PiArICAgIC8qCj4+PiArICAgICAqIFRoZSBzcGVjIHNh eXMgdGhhdCB0aGUgc291cmNlIHNob3VsZCB3YWl0IG1pbiAxbXMgYW5kCj4+PiBtYXggMTAwbXMK Pj4+ICsgICAgICogYWZ0ZXIgd3JpdGluZyB0aGUgVE1EUyBjb25maWcgZm9yIGNsb2NrIHJhdGlv LiBMZXRzCj4+PiBvYmV5IHRoZSBzcGVjLgo+Pj4gKyAgICAgKi8KPj4+ICsgICAgdXNsZWVwX3Jh bmdlKDEwMDAsIDEwMDAwMCk7Cj4+PiArICAgIHJldHVybiB0cnVlOwo+Pj4gK30KPj4+ICtFWFBP UlRfU1lNQk9MKGRybV9zY2RjX2Rpc2FibGVfc2NyYW1ibGluZyk7Cj4+PiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+PiBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0 b3IuaAo+Pj4gaW5kZXggNmQ1MzA0ZS4uNzg2MTgzMDggMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRl L2RybS9kcm1fY29ubmVjdG9yLmgKPj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAo+Pj4gQEAgLTkwLDYgKzkwLDIwIEBAIGVudW0gc3VicGl4ZWxfb3JkZXIgewo+Pj4gICAgIH07 Cj4+PiAgICsvKioKPj4+ICsgKiBzdHJ1Y3QgZHJtX3NjcmFtYmxpbmc6IHNpbmsncyBzY3JhbWJs aW5nIHN1cHBvcnQuCj4+PiArICovCj4+PiArc3RydWN0IGRybV9zY3JhbWJsaW5nIHsKPj4+ICsg ICAgLyoqCj4+PiArICAgICAqIEBzdXBwb3J0ZWQ6IHNjcmFtYmxpbmcgc3VwcG9ydGVkIGZvciBy YXRlcyA+IDM0MCBNaHouCj4+PiArICAgICAqLwo+Pj4gKyAgICBib29sIHN1cHBvcnRlZDsKPj4+ ICsgICAgLyoqCj4+PiArICAgICAqIEBsb3dfcmF0ZXM6IHNjcmFtYmxpbmcgc3VwcG9ydGVkIGZv ciByYXRlcyA8PSAzNDAgTWh6Lgo+Pj4gKyAgICAgKi8KPj4+ICsgICAgYm9vbCBsb3dfcmF0ZXM7 Cj4+PiArfTsKPj4+ICsKPj4+ICAgLyoKPj4+ICAgICogc3RydWN0IGRybV9zY2RjIC0gSW5mb3Jt YXRpb24gYWJvdXQgc2NkYyBjYXBhYmlsaXRpZXMgb2YKPj4+IGEgSERNSSAyLjAgc2luawo+Pj4g ICAgKgo+Pj4gQEAgLTEwNSw4ICsxMTksMTMgQEAgc3RydWN0IGRybV9zY2RjIHsKPj4+ICAgICAg ICAqIEByZWFkX3JlcXVlc3Q6IHNpbmsgaXMgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHNjZGMKPj4+ IHJlYWQgcmVxdWVzdC4KPj4+ICAgICAgICAqLwo+Pj4gICAgICAgYm9vbCByZWFkX3JlcXVlc3Q7 Cj4+PiArICAgIC8qKgo+Pj4gKyAgICAgKiBAc2NyYW1ibGluZzogc2luaydzIHNjcmFtYmxpbmcg Y2FwYWJpbGl0aWVzCj4+PiArICAgICAqLwo+Pj4gKyAgICBzdHJ1Y3QgZHJtX3NjcmFtYmxpbmcg c2NyYW1ibGluZzsKPj4+ICAgfTsKPj4+ICAgKwo+Pj4gICAvKioKPj4+ICAgICogc3RydWN0IGRy bV9oZG1pX2luZm8gLSBydW50aW1lIGluZm9ybWF0aW9uIGFib3V0IHRoZQo+Pj4gY29ubmVjdGVk IEhETUkgc2luawo+Pj4gICAgKgo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9lZGlk LmggYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4+PiBpbmRleCA0M2ZiMGFjLi5kMjRjOTc0IDEw MDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAo+Pj4gKysrIGIvaW5jbHVkZS9k cm0vZHJtX2VkaWQuaAo+Pj4gQEAgLTQ2Miw1ICs0NjIsOSBAQCB2b2lkIGRybV9lZGlkX2dldF9t b25pdG9yX25hbWUoc3RydWN0Cj4+PiBlZGlkICplZGlkLCBjaGFyICpuYW1lLAo+Pj4gICBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZHJtX21vZGVfZmluZF9kbXQoc3RydWN0Cj4+PiBkcm1fZGV2 aWNlICpkZXYsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhzaXplLCBpbnQgdnNp emUsIGludCBmcmVzaCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJiKTsKPj4+ IC0KPj4+ICtib29sIGRybV9lbmFibGVfc2NyYW1ibGluZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAo+Pj4gKyAgICAgICAgICAgICAgICBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0 ZXIsIGJvb2wgZm9yY2UpOwo+Pj4gK2Jvb2wgZHJtX2Rpc2FibGVfc2NyYW1ibGluZyhzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4gKyAgICAgICAgICAgICAgICBzdHJ1Y3QgaTJj X2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZm9yY2UpOwo+Pj4gK2Jvb2wgZHJtX2NoZWNrX3NjcmFt Ymxpbmdfc3RhdHVzKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcik7Cj4+PiAgICNlbmRpZiAv KiBfX0RSTV9FRElEX0hfXyAqLwo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9zY2Rj X2hlbHBlci5oCj4+PiBiL2luY2x1ZGUvZHJtL2RybV9zY2RjX2hlbHBlci5oCj4+PiBpbmRleCA5 M2IwN2JjLi5kYzcyN2E1IDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3NjZGNfaGVs cGVyLmgKPj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9zY2RjX2hlbHBlci5oCj4+PiBAQCAtMTI5 LDQgKzEyOSwyNCBAQCBzdGF0aWMgaW5saW5lIGludCBkcm1fc2NkY193cml0ZWIoc3RydWN0Cj4+ PiBpMmNfYWRhcHRlciAqYWRhcHRlciwgdTggb2Zmc2V0LAo+Pj4gICAgICAgcmV0dXJuIGRybV9z Y2RjX3dyaXRlKGFkYXB0ZXIsIG9mZnNldCwgJnZhbHVlLAo+Pj4gc2l6ZW9mKHZhbHVlKSk7Cj4+ PiAgIH0KPj4+ICAgKy8qKgo+Pj4gKyAqIGRybV9zY2RjX2VuYWJsZV9zY3JhbWJsaW5nIC0gZW5h YmxlIHNjcmFtYmxpbmcKPj4+ICsgKiBAYWRhcHRlcjogSTJDIGFkYXB0ZXIgZm9yIEREQyBjaGFu bmVsCj4+PiArICoKPj4+ICsgKiBXcml0ZXMgdGhlIFRNRFMgY29uZmlnIG92ZXIgU0NEQyBjaGFu bmVsLCBhbmQgZW5hYmxlcwo+Pj4gc2NyYW1ibGluZwo+Pj4gKyAqIFJldHVybnM6Cj4+PiArICog VHJ1ZSBpZiBzY3JhbWJsaW5nIGlzIHN1Y2Nlc3NmdWxseSBlbmFibGVkLCBmYWxzZSBvdGhlcndp c2UuCj4+PiArICovCj4+PiArCj4+PiArYm9vbCBkcm1fc2NkY19lbmFibGVfc2NyYW1ibGluZyhz dHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIpOwo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIGRybV9z Y2RjX2Rpc2FibGVfc2NyYW1ibGluZyAtIGRpc2FibGUgc2NyYW1ibGluZwo+Pj4gKyAqIEBhZGFw dGVyOiBJMkMgYWRhcHRlciBmb3IgRERDIGNoYW5uZWwKPj4+ICsgKgo+Pj4gKyAqIFdyaXRlIHRo ZSBUTURTIGNvbmZpZyBvdmVyIFNDREMgY2hhbm5lbCwgYW5kIGRpc2FibGUKPj4+IHNjcmFtYmxp bmcKPj4+ICsgKiBSZXR1cm46IFRydWUgaWYgc2NyYW1ibGluZyBpcyBzdWNjZXNzZnVsbHkgZGlz YWJsZWQsCj4+PiBmYWxzZSBvdGhlcndpc2UuCj4+PiArICovCj4+PiArYm9vbCBkcm1fc2NkY19k aXNhYmxlX3NjcmFtYmxpbmcoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKTsKPj4+ICsKPj4+ ICAgI2VuZGlmCj4+IEJlc3QgcmVnYXJkcywKPj4gSm9zZSBNaWd1ZWwgQWJyZXUKPj4KPgo+Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK