From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH v9 1/6] drm: Add Content protection type property Date: Fri, 12 Jul 2019 10:13:45 +0530 Message-ID: <20190712044345.GA5608@intel.com> References: <20190708112116.1780-1-ramalingam.c@intel.com> <20190708112116.1780-2-ramalingam.c@intel.com> <20190709173110.1f18338d@eldfell.localdomain> <20190709124759.GA28326@intel.com> <20190710111624.08e527ed@eldfell.localdomain> <20190711055049.GA1552@intel.com> <20190712141105.3302a6fe@eldfell.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190712141105.3302a6fe@eldfell.localdomain> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Pekka Paalanen Cc: intel-gfx , dri-devel List-Id: dri-devel@lists.freedesktop.org T24gMjAxOS0wNy0xMiBhdCAxNDoxMTowNSArMDMwMCwgUGVra2EgUGFhbGFuZW4gd3JvdGU6Cj4g T24gVGh1LCAxMSBKdWwgMjAxOSAxMToyMDo0OSArMDUzMAo+IFJhbWFsaW5nYW0gQyA8cmFtYWxp bmdhbS5jQGludGVsLmNvbT4gd3JvdGU6Cj4gCj4gPiBPbiAyMDE5LTA3LTEwIGF0IDExOjE2OjI0 ICswMzAwLCBQZWtrYSBQYWFsYW5lbiB3cm90ZToKPiA+ID4gT24gVHVlLCA5IEp1bCAyMDE5IDE4 OjE3OjU5ICswNTMwCj4gPiA+IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4g d3JvdGU6Cj4gPiA+ICAgCj4gPiA+ID4gT24gMjAxOS0wNy0wOSBhdCAxNzozMToxMCArMDMwMCwg UGVra2EgUGFhbGFuZW4gd3JvdGU6ICAKPiA+ID4gPiA+IE9uIE1vbiwgIDggSnVsIDIwMTkgMTY6 NTE6MTEgKzA1MzAKPiA+ID4gPiA+IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNv bT4gd3JvdGU6Cj4gPiA+ID4gPiAgICAgCj4gPiA+ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBhIERS TSBFTlVNIHByb3BlcnR5IHRvIHRoZSBzZWxlY3RlZCBjb25uZWN0b3JzLgo+ID4gPiA+ID4gPiBU aGlzIHByb3BlcnR5IGlzIHVzZWQgZm9yIG1lbnRpb25pbmcgdGhlIHByb3RlY3RlZCBjb250ZW50 J3MgdHlwZQo+ID4gPiA+ID4gPiBmcm9tIHVzZXJzcGFjZSB0byBrZXJuZWwgSERDUCBhdXRoZW50 aWNhdGlvbi4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFR5cGUgb2YgdGhlIHN0cmVhbSBpcyBk ZWNpZGVkIGJ5IHRoZSBwcm90ZWN0ZWQgY29udGVudCBwcm92aWRlcnMuCj4gPiA+ID4gPiA+IFR5 cGUgMCBjb250ZW50IGNhbiBiZSByZW5kZXJlZCBvbiBhbnkgSERDUCBwcm90ZWN0ZWQgZGlzcGxh eSB3aXJlcy4KPiA+ID4gPiA+ID4gQnV0IFR5cGUgMSBjb250ZW50IGNhbiBiZSByZW5kZXJlZCBv bmx5IG9uIEhEQ1AyLjIgcHJvdGVjdGVkIHBhdGhzLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4g U28gd2hlbiBhIHVzZXJzcGFjZSBzZXRzIHRoaXMgcHJvcGVydHkgdG8gVHlwZSAxIGFuZCBzdGFy dHMgdGhlIEhEQ1AKPiA+ID4gPiA+ID4gZW5hYmxlLCBrZXJuZWwgd2lsbCBob25vdXIgaXQgb25s eSBpZiBIRENQMi4yIGF1dGhlbnRpY2F0aW9uIGlzIHRocm91Z2gKPiA+ID4gPiA+ID4gZm9yIHR5 cGUgMS4gRWxzZSBIRENQIGVuYWJsZSB3aWxsIGJlIGZhaWxlZC4KPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+IE5lZWQgQUNLIGZvciB0aGlzIG5ldyBjb25lbmN0b3IgcHJvcGVydHkgZnJvbSB1c2Vy c3BhY2UgY29uc3VtZXIuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiB2MjoKPiA+ID4gPiA+ID4g ICBjcF9jb250ZW50X3R5cGUgaXMgcmVwbGFjZWQgd2l0aCBjb250ZW50X3Byb3RlY3Rpb25fdHlw ZSBbZGFuaWVsXQo+ID4gPiA+ID4gPiAgIGNoZWNrIGF0IGF0b21pY19zZXRfcHJvcGVydHkgaXMg cmVtb3ZlZCBbTWFhcnRlbl0KPiA+ID4gPiA+ID4gdjM6Cj4gPiA+ID4gPiA+ICAgJXMvY29udGVu dF9wcm90ZWN0aW9uX3R5cGUvaGRjcF9jb250ZW50X3R5cGUgW1Bla2thXQo+ID4gPiA+ID4gPiB2 NDoKPiA+ID4gPiA+ID4gICBwcm9wZXJ0eSBpcyBjcmVhdGVkIGZvciB0aGUgZmlyc3QgcmVxdWVz dGVkIGNvbm5lY3RvciBhbmQgdGhlbiByZXVzZWQuCj4gPiA+ID4gPiA+IAlbRGFudmV0XQo+ID4g PiA+ID4gPiB2NToKPiA+ID4gPiA+ID4gICBrZXJuZWwgZG9jIG5pdHMgYWRkcmVzc2VkIFtEYW5p ZWxdCj4gPiA+ID4gPiA+ICAgUmViYXNlZCBhcyBwYXJ0IG9mIHBhdGNoIHJlb3JkZXJpbmcuCj4g PiA+ID4gPiA+IHY2Ogo+ID4gPiA+ID4gPiAgIEtlcm5lbCBkb2NzIGFyZSBtb2RpZmllZCBbcGVr a2FdCj4gPiA+ID4gPiA+IHY3Ogo+ID4gPiA+ID4gPiAgIE1vcmUgZGV0YWlscyBpbiBLZXJuZWwg ZG9jcy4gW3Bla2thXQo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUmFt YWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiBSZXZpZXdlZC1i eTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gPiA+ID4gLS0t Cj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgICAgICAgICB8 ICA0ICsrKwo+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAg ICAgICAgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiA+ID4gPiAgZHJpdmVycy9n cHUvZHJtL2RybV9oZGNwLmMgICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysr Ky0KPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5j IHwgIDQgKystCj4gPiA+ID4gPiA+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAgICAg ICAgICAgICB8ICA3ICsrKysKPiA+ID4gPiA+ID4gIGluY2x1ZGUvZHJtL2RybV9oZGNwLmggICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KPiA+ID4gPiA+ID4gIGluY2x1ZGUvZHJtL2RybV9tb2Rl X2NvbmZpZy5oICAgICAgICAgICAgIHwgIDYgKysrKwo+ID4gPiA+ID4gPiAgaW5jbHVkZS91YXBp L2RybS9kcm1fbW9kZS5oICAgICAgICAgICAgICAgfCAgNCArKysKPiA+ID4gPiA+ID4gIDggZmls ZXMgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBp LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+ID4gPiA+ID4gaW5kZXgg YWJlMzhiZGY4NWFlLi4xOWFlMTE5ZjFhNWQgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+ID4gPiA+ID4gQEAgLTc0Nyw2ICs3NDcsOCBAQCBz dGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiA+ID4gPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ ID4gPiA+ICAJCX0KPiA+ID4gPiA+ID4gIAkJc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9IHZh bDsKPiA+ID4gPiA+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+aGRjcF9jb250 ZW50X3R5cGVfcHJvcGVydHkpIHsKPiA+ID4gPiA+ID4gKwkJc3RhdGUtPmhkY3BfY29udGVudF90 eXBlID0gdmFsOwo+ID4gPiA+ID4gPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9y LT5jb2xvcnNwYWNlX3Byb3BlcnR5KSB7Cj4gPiA+ID4gPiA+ICAJCXN0YXRlLT5jb2xvcnNwYWNl ID0gdmFsOwo+ID4gPiA+ID4gPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0 ZWJhY2tfZmJfaWRfcHJvcGVydHkpIHsKPiA+ID4gPiA+ID4gQEAgLTgzMSw2ICs4MzMsOCBAQCBk cm1fYXRvbWljX2Nvbm5lY3Rvcl9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPiA+ID4gPiA+ID4gIAkJCXN0YXRlLT5oZHJfb3V0cHV0X21ldGFkYXRhLT5iYXNl LmlkIDogMDsKPiA+ID4gPiA+ID4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Y29u dGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KSB7Cj4gPiA+ID4gPiA+ICAJCSp2YWwgPSBzdGF0ZS0+ Y29udGVudF9wcm90ZWN0aW9uOwo+ID4gPiA+ID4gPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29uZmlnLT5oZGNwX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eSkgewo+ID4gPiA+ID4gPiArCQkqdmFs ID0gc3RhdGUtPmhkY3BfY29udGVudF90eXBlOwo+ID4gPiA+ID4gPiAgCX0gZWxzZSBpZiAocHJv cGVydHkgPT0gY29uZmlnLT53cml0ZWJhY2tfZmJfaWRfcHJvcGVydHkpIHsKPiA+ID4gPiA+ID4g IAkJLyogV3JpdGViYWNrIGZyYW1lYnVmZmVyIGlzIG9uZS1zaG90LCB3cml0ZSBhbmQgZm9yZ2V0 ICovCj4gPiA+ID4gPiA+ICAJCSp2YWwgPSAwOwo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVj dG9yLmMKPiA+ID4gPiA+ID4gaW5kZXggMDY4ZDRiMDVmMWJlLi43MzJmNjY0NTY0M2QgMTAwNjQ0 Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ID4g PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4gPiA+ID4gPiBA QCAtOTUyLDYgKzk1Miw0NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlz dCBoZG1pX2NvbG9yc3BhY2VzW10gPSB7Cj4gPiA+ID4gPiA+ICAgKgkgIGlzIG5vIGxvbmdlciBw cm90ZWN0ZWQgYW5kIHVzZXJzcGFjZSBzaG91bGQgdGFrZSBhcHByb3ByaWF0ZSBhY3Rpb24KPiA+ ID4gPiA+ID4gICAqCSAgKHdoYXRldmVyIHRoYXQgbWlnaHQgYmUpLgo+ID4gPiA+ID4gPiAgICoK PiA+ID4gPiA+ID4gKyAqIEhEQ1AgQ29udGVudCBUeXBlOgo+ID4gPiA+ID4gPiArICoJVGhpcyBF bnVtIHByb3BlcnR5IGlzIHVzZWQgYnkgdGhlIHVzZXJzcGFjZSB0byBkZWNsYXJlIHRoZSBjb250 ZW50IHR5cGUKPiA+ID4gPiA+ID4gKyAqCW9mIHRoZSBkaXNwbGF5IHN0cmVhbSwgdG8ga2VybmVs LiBIZXJlIGRpc3BsYXkgc3RyZWFtIHN0YW5kcyBmb3IgYW55Cj4gPiA+ID4gPiA+ICsgKglkaXNw bGF5IGNvbnRlbnQgdGhhdCB1c2Vyc3BhY2UgaW50ZW5kZWQgdG8gcmVuZGVyIHdpdGggSERDUCBl bmNyeXB0aW9uLiAgICAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gSGksCj4gPiA+ID4gPiAKPiA+ID4g PiA+IEknZCBzdWdnZXN0IHMvcmVuZGVyIHdpdGgvZGlzcGxheSB0aHJvdWdoLy4KPiA+ID4gPiA+ IAo+ID4gPiA+ID4gQXMgYSBnZnggZGV2LCByZW5kZXJpbmcgaXMgc29tZXRoaW5nIHF1aXRlIGRp ZmZlcmVudCB0byBtZS4gICAgCj4gPiA+ID4gT2suICAKPiA+ID4gPiA+ICAgICAKPiA+ID4gPiA+ ID4gKyAqCj4gPiA+ID4gPiA+ICsgKglDb250ZW50IFR5cGUgb2YgYSBzdHJlYW0gaXMgZGVjaWRl ZCBieSB0aGUgb3duZXIgb2YgdGhlIHN0cmVhbSwgYXMKPiA+ID4gPiA+ID4gKyAqCSJIRENQIFR5 cGUwIiBvciAiSERDUCBUeXBlMSIuCj4gPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gPiArICoJVGhl IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBjYW4gYmUgb25lIHRoZSBiZWxvdzogICAgCj4gPiA+ID4g PiAKPiA+ID4gPiA+ICpvbmUgb2YgdGhlIGJlbG93ICAgIAo+ID4gPiA+IFN1cmUuICAKPiA+ID4g PiA+ICAgICAKPiA+ID4gPiA+ID4gKyAqCSAgLSAiSERDUCBUeXBlMCI6IERSTV9NT0RFX0hEQ1Bf Q09OVEVOVF9UWVBFMCA9IDAKPiA+ID4gPiA+ID4gKyAqCSAgLSAiSERDUCBUeXBlMSI6IERSTV9N T0RFX0hEQ1BfQ09OVEVOVF9UWVBFMSA9IDEKPiA+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiA+ICsg KglXaGVuIGtlcm5lbCBzdGFydHMgdGhlIEhEQ1AgYXV0aGVudGljYXRpb24gdXBvbiB0aGUgIkRF U0lSRUQiIHN0YXRlIG9mCj4gPiA+ID4gPiA+ICsgKgl0aGUgIkNvbnRlbnQgUHJvdGVjdGlvbiIs IGl0IHJlZmVycyB0aGUgIkhEQ1AgQ29udGVudCBUeXBlIiBwcm9wZXJ0eQo+ID4gPiA+ID4gPiAr ICoJc3RhdGUuIEFuZCBwZXJmb3JtIHRoZSBIRENQIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIGRp c3BsYXkgc2luayBmb3IKPiA+ID4gPiA+ID4gKyAqCXRoZSBjb250ZW50IHR5cGUgbWVudGlvbmVk IGJ5ICJIRENQIENvbnRlbnQgVHlwZSIuICAgIAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBIb3cgYWJv dXQ6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IAlXaGVuIGtlcm5lbCBzdGFydHMgdGhlIEhEQ1AgYXV0 aGVudGljYXRpb24gKHNlZSAiQ29udGVudCBQcm90ZWN0aW9uIgo+ID4gPiA+ID4gCWZvciBkZXRh aWxzKSwgaXQgdXNlcyB0aGUgY29udGVudCB0eXBlIGluICJIRENQIENvbnRlbnQgVHlwZSIKPiA+ ID4gPiA+IAlmb3IgcGVyZm9ybWluZyB0aGUgSERDUCBhdXRoZW50aWNhdGlvbiB3aXRoIHRoZSBk aXNwbGF5IHNpbmsuICAgIAo+ID4gPiA+IGxlc3MgY29uZnVzaW5nIDopIFRoYW5rcy4gIAo+ID4g PiA+ID4gICAgIAo+ID4gPiA+ID4gPiArICoKPiA+ID4gPiA+ID4gKyAqCVN0cmVhbSBjbGFzc2lm aWVkIGFzIEhEQ1AgVHlwZTAgY2FuIGJlIHRyYW5zbWl0dGVkIG9uIGEgbGluayB3aGljaCBpcwo+ ID4gPiA+ID4gPiArICoJZW5jcnlwdGVkIHdpdGggSERDUCAxLjQgb3IgaGlnaGVyIHZlcnNpb25z IG9mIEhEQ1AoaS5lIEhEQ1AyLjIKPiA+ID4gPiA+ID4gKyAqCWFuZCBtb3JlKS4gICAgCj4gPiA+ ID4gPiAKPiA+ID4gPiA+IFRoaXMgaXMgd2hlcmUgSSBnZXQgY29uZnVzZWQsIHNlZSBteSBlYXJs aWVyIGVtYWlsIGZyb20gdG9kYXkgb24gdGhlCj4gPiA+ID4gPiBwcmV2aW91cyByZXZpc2lvbiBv ZiB0aGlzIHBhdGNoIHNlcmllcy4gSXMgaXQgbmVjZXNzYXJ5IHRvIHRhbGsgYWJvdXQKPiA+ID4g PiA+IEhEQ1AgdmVyc2lvbnMgaGVyZT8gVGhlIG9ubHkgdGhpbmcgdGhhdCBtYXR0ZXJzIGZvciBV QVBJIGlzIHRoZSBjb250ZW50Cj4gPiA+ID4gPiB0eXBlLCByaWdodD8KPiA+ID4gPiA+IAo+ID4g PiA+ID4gUHJldmlvdXNseSB5b3Ugc2FpZCB0aGF0IHRoZSBrZXJuZWwgd2lsbCBub3QgdXNlIFR5 cGUxIGlmIHVzZXJzcGFjZQo+ID4gPiA+ID4gb25seSBhc2tlZCBmb3IgVHlwZTAsIGJ1dCB0byBt ZSB0aGlzIHRleHQgcmVhZHMgYXMgcXVpdGUgdGhlIG9wcG9zaXRlLiAgICAKPiA+ID4gPiBTaW1w bGUuIEhEQ1AyLjIgaXRzZWxmIHN1cHBvcnQgYm90aCBUeXBlIDAgYW5kIFR5cGUgMS4gd2hlcmUg YXMgSERDUDEuNAo+ID4gPiA+IGJ5IGRlZmF1bHQgc3VwcG9ydHMgdGhlIFR5cGUgMCBhbmQgZG9l c24ndCBzdXBwb3J0IHRoZSBUeXBlIDEuCj4gPiA+ID4gCj4gPiA+ID4gSSBndWVzcyB5b3UgYXJl IGdldHRpbmcgY29uZnVzZWQgYnkgYXNzaWduaW5nIHRoZSB0eXBlIHRvIHRoZSB2ZXJzaW9ucy4g IAo+ID4gPiAKPiA+ID4gSGksCj4gPiA+IAo+ID4gPiB5ZXMsIEkgYW0gaW5kZWVkLgo+ID4gPiAK PiA+ID4gSXMgdGhlIEhEQ1AgdmVyc2lvbiBldmVyIGV4cG9zZWQgdG8gdXNlcnNwYWNlIGluIGFu eSB3YXk/Cj4gPiA+IAo+ID4gPiBJZiBpdCBpcywgdGhlbiBleHBsYWluaW5nIGhvdyB0aGUgdHlw ZXMgcmVsYXRlIHRvIHRoZSB2ZXJzaW9ucyBtYXkgd2VsbAo+ID4gPiBiZSB1c2VmdWwuIEJ1dCBp ZiB1c2Vyc3BhY2UgY2Fubm90IGV2ZW4ga25vdyB3aGF0IEhEQ1AgdmVyc2lvbiBpcyBiZWluZwo+ ID4gPiB1c2VkIG9yIGF2YWlsYWJsZSwgIAo+ID4gSGksCj4gPiAKPiA+IEltcGxpY2l0bHkgY29u dGVudCB0eXBlIGNhcGFiaWxpdHkgaXMgZXhwb3NpbmcgdGhlIEhEQ1AgdmVyc2lvbiBjYXBhYmls aXR5Lgo+ID4gU2F5IGlmIEhEQ1AgVHlwZSAxIGlzIHN1cHBvcnRlZCB3ZSBpbmZlciB0aGF0IHVu ZGVybHlpbmcga2VybmVsIHN1cHBvcnQKPiA+IEhEQ1AyLjIuCj4gCj4gSGksCj4gCj4gdGhpcyBp cyBraW5kIG9mIGEgY2lyY3VsYXIgYXJndW1lbnQuIDstKQo+IAo+IERvIHlvdSB0aGluayB0aGF0 IHVzZXJzcGFjZSB3b3VsZCBhY3R1YWxseSB1c2UgdGhlIEhEQ1AgdmVyc2lvbgo+IGluZm9ybWF0 aW9uIGZvciBhbnl0aGluZz8KPiAKPiBFLmcuIHRlbGxpbmcgdGhlIGVuZCB1c2VyIHRoYXQgSERD UCAyLjIgaXMgYXZhaWxhYmxlIGlmIHRoZSBkaXNwbGF5Cj4gc2VydmVyIGZpbmRzICJIRENQIENv bnRlbnQgVHlwZSIgcHJvcGVydHk/IElzIHRoaXMgZXhwZWN0ZWQgdXNlIG9mIHRoZQo+IHByb3Bl cnR5Pwo+IAo+IEkgYWxzbyB1bmRlcnN0YW5kIHRoYXQgdGhpcyB3b3VsZCBvbmx5IG1lYW4gSERD UCAyLjIgc3VwcG9ydCBpbiB0aGUKPiBkaXNwbGF5IGRyaXZlciBhbmQgaGFyZHdhcmUsIGJ1dCBp dCBzYXlzIG5vdGhpbmcgYWJvdXQgdGhlIHNpbmtzLCBzbwo+IHVzZXJzcGFjZSBjYW5ub3Qga25v dyBpZiBIRENQIDIuMiBpcyBhY3R1YWxseSBiZWluZyB1c2VkIHVubGVzcyBpdAo+IGNvbmZpZ3Vy ZXMgVHlwZTEgZW5jcnlwdGlvbiBhbmQgc3VjY2VlZHMuCj4gCj4gU28gaWYgdGhlIEhEQ1AgdmVy c2lvbiBpcyB1c2VmdWwgdG8gdXNlcnNwYWNlLCB0aGVuIHRoaXMgcHJvcGVydHkgaXMKPiBub3Qg ZW5vdWdoIHRvIGNvbW11bmljYXRlIGl0LiBCdXQgaWYgaXQgaXMgbm90IHVzZWZ1bCB0byB1c2Vy c3BhY2UsCj4gdGhlbiB3aHkgbWVudGlvbiBpdCBhdCBhbGw/Cj4gCj4gPiBBbmQgY29udGVudCB0 eXBlIGlzIGludHJvZHVjZWQgdG8gcmVzdHJpY3QgZmV3IGNhdGFnb3JpZXMgb2YgdGhlIGNvbnRl bnQKPiA+IHdpdGggZmV3IEhEQ1AgdmVyc2lvbnMnIHByb3RlY3Rpb24sIElNSE8gaXQgaXMgYmV0 dGVyIHRvIGNhcHR1cmUgdGhlCj4gPiByZWxhdGlvbnNoaXAgYmV0d2VlbiBUeXBlIGFuZCB0aGUg dW5kZXJseWluZyBIRENQIHZlcnNpb25zLgo+ID4gCj4gPiBTZWUgaWYgdGhlIGJlbG93IHBhcmEg d2lsbCBkbyB0aGlzIHRhc2sgd2l0aCBvdXQgYW55IGFtYmlndW91cy4KPiA+IAo+ID4gICogSERD UCBDb250ZW50IFR5cGU6Cj4gPiAgKiAgICAgIFRoaXMgRW51bSBwcm9wZXJ0eSBpcyB1c2VkIGJ5 IHRoZSB1c2Vyc3BhY2UgdG8gZGVjbGFyZSB0aGUgY29udGVudCB0eXBlCj4gPiAgKiAgICAgIG9m IHRoZSBkaXNwbGF5IHN0cmVhbSwgdG8ga2VybmVsLiBIZXJlIGRpc3BsYXkgc3RyZWFtIHN0YW5k cyBmb3IgYW55Cj4gPiAgKiAgICAgIGRpc3BsYXkgY29udGVudCB0aGF0IHVzZXJzcGFjZSBpbnRl bmRlZCB0byBkaXNwbGF5IHRocm91Z2ggSERDUAo+ID4gICogICAgICBlbmNyeXB0aW9uLgo+ID4g ICoKPiA+ICAqICAgICAgQ29udGVudCBUeXBlIG9mIGEgc3RyZWFtIGlzIGRlY2lkZWQgYnkgdGhl IG93bmVyIG9mIHRoZSBzdHJlYW0sIGFzCj4gPiAgKiAgICAgICJIRENQIFR5cGUwIiBvciAiSERD UCBUeXBlMSIuCj4gPiAgKgo+ID4gICogICAgICBUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGNh biBiZSBvbmUgb2YgdGhlIGJlbG93Ogo+ID4gICogICAgICAgIC0gIkhEQ1AgVHlwZTAiOiBEUk1f TU9ERV9IRENQX0NPTlRFTlRfVFlQRTAgPSAwCj4gPiAgKiAgICAgICAgLSAiSERDUCBUeXBlMSI6 IERSTV9NT0RFX0hEQ1BfQ09OVEVOVF9UWVBFMSA9IDEKPiA+ICAqCj4gPiAgKiAgICAgIFdoZW4g a2VybmVsIHN0YXJ0cyB0aGUgSERDUCBhdXRoZW50aWNhdGlvbiAoc2VlICJDb250ZW50IFByb3Rl Y3Rpb24iCj4gPiAgKiAgICAgIGZvciBkZXRhaWxzKSwgaXQgdXNlcyB0aGUgY29udGVudCB0eXBl IGluICJIRENQIENvbnRlbnQgVHlwZSIKPiA+ICAqICAgICAgZm9yIHBlcmZvcm1pbmcgdGhlIEhE Q1AgYXV0aGVudGljYXRpb24gd2l0aCB0aGUgZGlzcGxheSBzaW5rLgo+ID4gICoKPiA+ICAqICAg ICAgUGxlYXNlIG5vdGUgaW4gSERDUCBzcGVjIHZlcnNpb25zLCBhIGxpbmsgY2FuIGJlIGF1dGhl bnRpY2F0ZWQgd2l0aAo+ID4gICogICAgICBIRENQIDIuMiBmb3IgQ29udGVudCBUeXBlIDAvQ29u dGVudCBUeXBlIDEuIFdoZXJlIGFzIGEgbGluayBjYW4gYmUKPiA+ICAqICAgICAgYXV0aGVudGlj YXRlZCB3aXRoIEhEQ1AxLjQgb25seSBmb3IgQ29udGVudCBUeXBlIDAodGhvdWdoIGl0IGlzIGlt cGxpY2l0Cj4gPiAgKiAgICAgIGluIG5hdHVyZS4gQXMgdGhlcmUgaXMgbm8gcmVmZXJlbmNlIGZv ciBDb250ZW50IFR5cGUgaW4gSERDUDEuNCkuCj4gCj4gT2ssIHRoaXMgbWFrZXMgaXQgcGVyZmVj dGx5IGNsZWFyIHRvIG1lLgo+IAo+ID4gICoKPiA+ICAqICAgICBIRENQMi4yIGF1dGhlbnRpY2F0 aW9uIHByb3RvY29sIGl0c2VsZiB0YWtlcyB0aGUgIkNvbnRlbnQgVHlwZSIgYXMgYQo+ID4gICog ICAgICBwYXJhbWV0ZXIsIHdoaWNoIGlzIGEgaW5wdXQgZm9yIHRoZSBEUCBIRENQMi4yIGVuY3J5 cHRpb24gYWxnby4KPiA+ICAqCj4gPiAgKiAgICAgIEluIGNhc2Ugb2YgVHlwZSAwIGNvbnRlbnQg cHJvdGVjdGlvbiByZXF1ZXN0LCBrZXJuZWwgZHJpdmVyIGNhbiBjaG9vc2UKPiA+ICAqICAgICAg ZWl0aGVyIG9mIEhEQ1Agc3BlYyB2ZXJzaW9ucyAxLjQgYW5kIDIuMi4gV2hlbiBIRENQMi4yIGlz IHVzZWQgZm9yCj4gPiAgKiAgICAgICJIRENQIFR5cGUgMCIsIGEgSERDUCAyLjIgY2FwYWJsZSBy ZXBlYXRlciBpbiB0aGUgZG93bnN0cmVhbSBjYW4gc2VuZAo+ID4gICogICAgICB0aGF0IGNvbnRl bnQgdG8gYSBIRENQIDEuNCBhdXRoZW50aWNhdGVkIEhEQ1Agc2luayAoVHlwZTAgbGluaykuCj4g PiAgKiAgICAgIEJ1dCBpZiB0aGUgY29udGVudCBpcyBjbGFzc2lmaWVkIGFzICJIRENQIFR5cGUg MSIsIGFib3ZlIG1lbnRpb25lZAo+ID4gICogICAgICBIRENQIDIuMiByZXBlYXRlciB3b250IHNl bmQgdGhlIGNvbnRlbnQgdG8gdGhlIEhEQ1Agc2luayBhcyBpdCBjYW4ndAo+ID4gICogICAgICBh dXRoZW50aWNhdGUgdGhlIEhEQ1AxLjQgY2FwYWJsZSBzaW5rIGZvciAiSERDUCBUeXBlIDEiLgo+ ID4gICoKPiAKPiBSaWdodCwgYnV0IGFyZSB0aGVzZSBkZXRhaWxzIG1lYW5pbmdmdWwgdG8gdGhl IHVzZXJzcGFjZSB1c2luZyB0aGlzCj4gQVBJPyBJIG1lYW4sIGFyZSB0aGVzZSB0aGUgcHJvcGVy dHkgb2YgdGhpcyBBUEkgcmF0aGVyIHRoYW4ganVzdAo+IG1hbmRhdGVkIGJ5IEhEQ1Agc3BlYyAy LjIgaW4gZ2VuZXJhbD8KPiAKPiA+ICAqICAgICAgUGxlYXNlIG5vdGUgdXNlcnNwYWNlIGNhbiBi ZSBpZ25vcmFudCBvZiB0aGUgSERDUCB2ZXJzaW9ucyB1c2VkIGJ5IHRoZQo+ID4gICogICAgICBr ZXJuZWwgZHJpdmVyIHRvIGFjaGlldmUgdGhlICJIRENQIENvbnRlbnQgVHlwZSIuCj4gPiAgKgo+ ID4gICogICAgICBBdCBjdXJyZW50IHNjZW5hcmlvLCBjbGFzc2lmeWluZyBhIGNvbnRlbnQgYXMg VHlwZSAxIGVuc3VyZXMgdGhhdCB0aGUKPiA+ICAqICAgICAgY29udGVudCB3aWxsIGJlIGRpc3Bs YXllZCBvbmx5IHRocm91Z2ggdGhlIEhEQ1AyLjIgZW5jcnlwdGVkIGxpbmsuCj4gPiAgKgo+ID4g ICogICAgICBOb3RlIHRoYXQgdGhlIEhEQ1AgQ29udGVudCBUeXBlIHByb3BlcnR5IGlzIGludHJv ZHVjZWQgYXQgSERDUCAyLjIsIGFuZAo+ID4gICogICAgICBkZWZhdWx0cyB0byB0eXBlIDAuIEl0 IGlzIG9ubHkgZXhwb3NlZCBieSBkcml2ZXJzIHN1cHBvcnRpbmcgSERDUCAyLjIKPiA+ICAqICAg ICAgKGhlbmNlIHN1cHBvcnRpbmcgVHlwZSAwIGFuZCBUeXBlIDEpLiBCYXNlZCBvbiBob3cgbmV4 dCB2ZXJzaW9ucyBvZgo+ID4gICogICAgICBIRENQIHNwZWNzIGFyZSBkZWZpbmVkIGNvbnRlbnQg VHlwZSBjb3VsZCBiZSB1c2VkIGZvciBoaWdoZXIgdmVyc2lvbnMgdG9vLgo+ID4gICoKPiA+ICAq ICAgICAgSWYgY29udGVudCB0eXBlIGlzIGNoYW5nZWQgd2hlbiAiQ29udGVudCBQcm90ZWN0aW9u IiBpcyBub3QgVU5ERVNJUkVELAo+ID4gICogICAgICB0aGVuIGtlcm5lbCB3aWxsIGRpc2FibGUg dGhlIEhEQ1AgYW5kIHJlLWVuYWJsZSB3aXRoIG5ldyB0eXBlIGluIHRoZQo+ID4gICogICAgICBz YW1lIGF0b21pYyBjb21taXQuIEFuZCB3aGVuICJDb250ZW50IFByb3RlY3Rpb24iIGlzIEVOQUJM RUQsIGl0IG1lYW5zCj4gPiAgKiAgICAgIHRoYXQgbGluayBpcyBIRENQIGF1dGhlbnRpY2F0ZWQg YW5kIGVuY3J5cHRlZCwgZm9yIHRoZSB0cmFuc21pc3Npb24gb2YKPiA+ICAqICAgICAgdGhlIFR5 cGUgb2Ygc3RyZWFtIG1lbnRpb25lZCBhdCAiSERDUCBDb250ZW50IFR5cGUiLgo+ID4gCj4gPiBQ bGVhc2Ugc2hhcmUgeW91ciB2aWV3IG9uIHRoaXMuCj4gCj4gVGhhdCBpcyBhIGJpZyBwaWVjZSBv ZiB3ZWxsLXdyaXR0ZW4gZG9jLiBJZiB5b3UgYmVsaWV2ZSBhbGwgdGhlc2UKPiBkZXRhaWxzIGNh biBiZSByZWxldmFudCB0byB1c2Vyc3BhY2UgdXNpbmcgdGhpcyBwcm9wZXJ0eSwgdGhlbiBJIGFt Cj4gaGFwcHkgc2VlIHRoaXMgaW4gdGhlIFVBUEkgZG9jLiBJdCBpcyBkZXRhaWxlZCBhbmQgY2xl YXIuIE15IG9ubHkKPiBvYmplY3Rpb24gaXMgd2hldGhlciBpdCBpcyBhbGwgcmVsZXZhbnQsIGFu ZCBJJ20gb2sgZ2l2aW5nIHRoYXQgdXAuCgpUaGVzZSBpbmZvcm1hdGlvbiBtaWdodCBiZSBuZWVk ZWQgZm9yIGEgdXNlcnNwYWNlIHdobyB3YW50IHRvIGNsYXNzaWZ5CnRoZWlyIGNvbnRlbnQsIGFz IGltcGxpY2F0aW9uIG9mIHRoZSBlYWNoIGNsYXNzaWZpY2F0aW9uIGlzIGNhbGxlZCBvdXQKaGVy ZS4gQWdyZWVkIG5vdCBldmVyeW9uZSB3aWxsIHNlZWsgZm9yIHRoaXMgcGllY2Ugb2YgaW5mbywg YnV0IGJpdCBtb3JlCmlzIG9rIGluIGRvYyBJIGd1ZXNzLgoKVGhhbmtzIGZvciBhcHByb3Zpbmcg dGhpcy4gSSB3aWxsIHJlc3BpbiB0aGlzIHBhdGNoLgoKLVJhbS4KPiAKPiAKPiBUaGFua3MsCj4g cHEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=