From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v13 12/17] drm/i915: Upscale scaler max scale for NV12 Date: Wed, 14 Mar 2018 16:55:08 +0100 Message-ID: <0f5f4851-1112-3f02-4426-a7c95462a409@linux.intel.com> References: <1520585344-10094-1-git-send-email-vidya.srinivas@intel.com> <1520585344-10094-13-git-send-email-vidya.srinivas@intel.com> <2d058367-1ec8-2401-d04e-f50decd92111@linux.intel.com> <20180314153554.GK5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1C6486E68D for ; Wed, 14 Mar 2018 15:55:11 +0000 (UTC) In-Reply-To: <20180314153554.GK5453@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , "Srinivas, Vidya" Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "Lankhorst, Maarten" List-Id: intel-gfx@lists.freedesktop.org T3AgMTQtMDMtMTggb20gMTY6MzUgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6Cj4gT24gV2VkLCBN YXIgMTQsIDIwMTggYXQgMTA6MzY6MzJBTSArMDAwMCwgU3Jpbml2YXMsIFZpZHlhIHdyb3RlOgo+ Pgo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4+IEZyb206IE1hYXJ0ZW4gTGFua2hv cnN0IFttYWlsdG86bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tXQo+Pj4gU2VudDog V2VkbmVzZGF5LCBNYXJjaCAxNCwgMjAxOCA0OjAzIFBNCj4+PiBUbzogU3Jpbml2YXMsIFZpZHlh IDx2aWR5YS5zcmluaXZhc0BpbnRlbC5jb20+OyBpbnRlbC0KPj4+IGdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPj4+IENjOiBTeXJqYWxhLCBWaWxsZSA8dmlsbGUuc3lyamFsYUBpbnRlbC5jb20+ OyBMYW5raG9yc3QsIE1hYXJ0ZW4KPj4+IDxtYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4+ PiBTdWJqZWN0OiBSZTogW0ludGVsLWdmeF0gW1BBVENIIHYxMyAxMi8xN10gZHJtL2k5MTU6IFVw c2NhbGUgc2NhbGVyIG1heCBzY2FsZQo+Pj4gZm9yIE5WMTIKPj4+Cj4+PiBPcCAxNC0wMy0xOCBv bSAxMTozMSBzY2hyZWVmIFNyaW5pdmFzLCBWaWR5YToKPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0KPj4+Pj4gRnJvbTogTWFhcnRlbiBMYW5raG9yc3QgW21haWx0bzptYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb21dCj4+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgTWFyY2ggMTQs IDIwMTggMzo1NSBQTQo+Pj4+PiBUbzogU3Jpbml2YXMsIFZpZHlhIDx2aWR5YS5zcmluaXZhc0Bp bnRlbC5jb20+OyBpbnRlbC0KPj4+Pj4gZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4+PiBD YzogU3lyamFsYSwgVmlsbGUgPHZpbGxlLnN5cmphbGFAaW50ZWwuY29tPjsgTGFua2hvcnN0LCBN YWFydGVuCj4+Pj4+IDxtYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4+Pj4+IFN1YmplY3Q6 IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0ggdjEzIDEyLzE3XSBkcm0vaTkxNTogVXBzY2FsZSBzY2Fs ZXIKPj4+Pj4gbWF4IHNjYWxlIGZvciBOVjEyCj4+Pj4+Cj4+Pj4+IE9wIDE0LTAzLTE4IG9tIDEw OjUyIHNjaHJlZWYgTWFhcnRlbiBMYW5raG9yc3Q6Cj4+Pj4+PiBPcCAwOS0wMy0xOCBvbSAwOTo0 OCBzY2hyZWVmIFZpZHlhIFNyaW5pdmFzOgo+Pj4+Pj4+IEZyb206IENoYW5kcmEgS29uZHVydSA8 Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNvbT4KPj4+Pj4+Pgo+Pj4+Pj4+IFRoaXMgcGF0Y2ggdXBk YXRlcyBzY2FsZXIgbWF4IGxpbWl0IHN1cHBvcnQgZm9yIE5WMTIKPj4+Pj4+Pgo+Pj4+Pj4+IHYy OiBSZWJhc2VkIChtZSkKPj4+Pj4+Pgo+Pj4+Pj4+IHYzOiBSZWJhc2VkIChtZSkKPj4+Pj4+Pgo+ Pj4+Pj4+IHY0OiBNaXNzZWQgdGhlIFRlc3RlZC1ieS9SZXZpZXdlZC1ieSBpbiB0aGUgcHJldmlv dXMgc2VyaWVzIEFkZGluZwo+Pj4+Pj4+IHRoZSBzYW1lIHRvIGNvbW1pdCBtZXNzYWdlIGluIHRo aXMgdmVyc2lvbi4KPj4+Pj4+Pgo+Pj4+Pj4+IHY1OiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRz IGZyb20gVmlsbGUgYW5kIHJlYmFzZWQKPj4+Pj4+PiAtIGNhbGN1bGF0aW9uIG9mIG1heF9zY2Fs ZSB0byBiZSBtYWRlIGxlc3MgY29udm9sdXRlZCBieSBzcGxpdHRpbmcKPj4+Pj4+PiBpdCB1cCBh IGJpdAo+Pj4+Pj4+IC0gSW5kZW50YXRpb24gZXJyb3JzIHRvIGJlIGZpeGVkIGluIHRoZSBzZXJp ZXMKPj4+Pj4+Pgo+Pj4+Pj4+IHY2OiBSZWJhc2VkIChtZSkKPj4+Pj4+PiBGaXhlZCByZXZpZXcg Y29tbWVudHMgZnJvbSBQYWF1d2UsIEJvYiBKIFByZXZpb3VzIHZlcnNpb24sIHdoZXJlIGEKPj4+ Pj4+PiBzcGxpdCBvZiBjYWxjdWxhdGlvbiB3YXMgZG9uZSwgd2FzIHdyb25nLiBGaXhlZCB0aGF0 IGlzc3VlIGhlcmUuCj4+Pj4+Pj4KPj4+Pj4+PiB2NzogUmViYXNlZCAobWUpCj4+Pj4+Pj4KPj4+ Pj4+PiB2ODogUmViYXNlZCAobWUpCj4+Pj4+Pj4KPj4+Pj4+PiB2OTogUmViYXNlZCAobWUpCj4+ Pj4+Pj4KPj4+Pj4+PiB2MTA6IFJlYmFzZWQgKG1lKQo+Pj4+Pj4+Cj4+Pj4+Pj4gdjExOiBBZGRy ZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gU2hhc2hhbmsgU2hhcm1hIEFsaWdubWVudAo+Pj4+ PiBpc3N1ZXMKPj4+Pj4+PiBmaXhlZC4KPj4+Pj4+PiBXaGVuIGNhbGwgdG8gc2tsX3VwZGF0ZV9z Y2FsZXIgaXMgbWFkZSwgMCB3YXMgYmVpbmcgc2VudCBpbnN0ZWFkIG9mCj4+Pj4+Pj4gcGl4ZWxf Zm9ybWF0Lgo+Pj4+Pj4+IFdoZW4gY3J0YyB1cGRhdGUgc2NhbGVyIGlzIGNhbGxlZCwgd2UgZG9u dCBoYXZlIHRoZSBmYiB0byBkZXJpdmUKPj4+Pj4+PiB0aGUgcGl4ZWwgZm9ybWF0LiBBZGRlZCB0 aGUgZnVuY3Rpb24gcGFyYW1ldGVyIGJvb2wKPj4+Pj4+PiBwbGFuZV9zY2FsZXJfY2hlY2sgdG8g YWNjb3VudCBmb3IgdGhpcy4KPj4+Pj4+Pgo+Pj4+Pj4+IHYxMjogRml4ZWQgZmFpbHVyZSBpbiBJ R1QgZGVidWdmc190ZXN0Lgo+Pj4+Pj4+IGZiIGlzIE5VTEwgaW4gc2tsX3VwZGF0ZV9zY2FsZXJf cGxhbmUgRHVlIHRvIHRoaXMsIGFjY2Vzc2luZwo+Pj4+Pj4+IGZiLT5mb3JtYXQgY2F1c2VkIGZh aWx1cmUuCj4+Pj4+Pj4gUGF0Y2ggY2hlY2tzIGZiIGJlZm9yZSB1c2luZy4KPj4+Pj4+Pgo+Pj4+ Pj4+IHYxMzogSW4gdGhlIHByZXZpb3VzIHZlcnNpb24gdGhlcmUgd2FzIGEgZmxhdy4KPj4+Pj4+ PiBJbiBza2xfdXBkYXRlX3NjYWxlciBkdXJpbmcgcGxhbmVfc2NhbGVyX2NoZWNrIGlmIHRoZSBm b3JtYXQgd2FzCj4+Pj4+Pj4gbm9uLU5WMTIsIGl0IHdvdWxkIHNldCBuZWVkX3NjYWxpbmcgdG8g ZmFsc2UuIFRoaXMgY291bGQgcmVzZXQgdGhlCj4+Pj4+Pj4gcHJldmlvdXNseSBzZXQgbmVlZF9z Y2FsaW5nIGZyb20gYSBwcmV2aW91cyBjb25kaXRpb24gY2hlY2suIFBhdGNoCj4+Pj4+Pj4gZml4 ZXMgdGhpcy4KPj4+Pj4+PiBQYXRjaCBhbHNvIGFkZHMgbWluaW11bSBzcmMgaGVpZ2h0IGZvciBZ VVYgNDIwIGZvcm1hdHMgdG8gMTYgKGFzCj4+Pj4+Pj4gZGVmaW5lZCBpbiBCU3BlYykgYW5kIGFk ZHMgZm9yIGNoZWNraW5nIHRoaXMgcmFuZ2UuCj4+Pj4+Pj4KPj4+Pj4+PiBUZXN0ZWQtYnk6IENs aW50b24gVGF5bG9yIDxjbGludG9uLmEudGF5bG9yQGludGVsLmNvbT4KPj4+Pj4+PiBSZXZpZXdl ZC1ieTogQ2xpbnRvbiBUYXlsb3IgPGNsaW50b24uYS50YXlsb3JAaW50ZWwuY29tPgo+Pj4+Pj4+ IFNpZ25lZC1vZmYtYnk6IENoYW5kcmEgS29uZHVydSA8Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNv bT4KPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBOYWJlbmR1IE1haXRpIDxuYWJlbmR1LmJpa2FzaC5t YWl0aUBpbnRlbC5jb20+Cj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5z aGFua2FyQGludGVsLmNvbT4KPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBWaWR5YSBTcmluaXZhcyA8 dmlkeWEuc3Jpbml2YXNAaW50ZWwuY29tPgo+Pj4+Pj4+IC0tLQo+Pj4+Pj4+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA3OAo+Pj4+PiArKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KPj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgIHwgIDQgKy0KPj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMgIHwgIDMgKy0KPj4+Pj4+PiAgMyBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAy NCBkZWxldGlvbnMoLSkKPj4+Pj4+Pgo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+Pj4+Pj4+IGluZGV4IDM0ZjcyMjUuLjdmZDgzNTQgMTAwNjQ0Cj4+Pj4+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+Pj4+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+Pj4+Pj4gQEAgLTM0NjYs NiArMzQ2Niw4IEBAIHN0YXRpYyB1MzIgc2tsX3BsYW5lX2N0bF9mb3JtYXQodWludDMyX3QKPj4+ Pj4gcGl4ZWxfZm9ybWF0KQo+Pj4+Pj4+ICAJCXJldHVybiBQTEFORV9DVExfRk9STUFUX1lVVjQy MiB8Cj4+Pj4+IFBMQU5FX0NUTF9ZVVY0MjJfVVlWWTsKPj4+Pj4+PiAgCWNhc2UgRFJNX0ZPUk1B VF9WWVVZOgo+Pj4+Pj4+ICAJCXJldHVybiBQTEFORV9DVExfRk9STUFUX1lVVjQyMiB8Cj4+Pj4+ IFBMQU5FX0NUTF9ZVVY0MjJfVllVWTsKPj4+Pj4+PiArCWNhc2UgRFJNX0ZPUk1BVF9OVjEyOgo+ Pj4+Pj4+ICsJCXJldHVybiBQTEFORV9DVExfRk9STUFUX05WMTI7Cj4+Pj4+Pj4gIAlkZWZhdWx0 Ogo+Pj4+Pj4+ICAJCU1JU1NJTkdfQ0FTRShwaXhlbF9mb3JtYXQpOwo+Pj4+Pj4+ICAJfQo+Pj4+ Pj4+IEBAIC00NzA1LDcgKzQ3MDcsOSBAQCBzdGF0aWMgdm9pZCBjcHRfdmVyaWZ5X21vZGVzZXQo c3RydWN0Cj4+Pj4+Pj4gZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSkgIHN0YXRpYyBpbnQgIHNr bF91cGRhdGVfc2NhbGVyKHN0cnVjdAo+Pj4+Pj4+IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsIGJvb2wgZm9yY2VfZGV0YWNoLAo+Pj4+Pj4+ICAJCSAgdW5zaWduZWQgaW50IHNjYWxlcl91 c2VyLCBpbnQgKnNjYWxlcl9pZCwKPj4+Pj4+PiAtCQkgIGludCBzcmNfdywgaW50IHNyY19oLCBp bnQgZHN0X3csIGludCBkc3RfaCkKPj4+Pj4+PiArCQkgIGludCBzcmNfdywgaW50IHNyY19oLCBp bnQgZHN0X3csIGludCBkc3RfaCwKPj4+Pj4+PiArCQkgIGJvb2wgcGxhbmVfc2NhbGVyX2NoZWNr LAo+Pj4+Pj4+ICsJCSAgdWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+Pj4+Pj4+ICB7Cj4+Pj4+Pj4g IAlzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9Cj4+Pj4+Pj4g IAkJJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKPj4+Pj4+PiBAQCAtNDcyMyw2ICs0NzI3LDEw IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+Pj4+ICpjcnRj X3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPj4+Pj4+PiAgCSAqLwo+Pj4+Pj4+ICAJbmVlZF9z Y2FsaW5nID0gc3JjX3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0X2g7Cj4+Pj4+Pj4KPj4+Pj4+ PiArCWlmIChwbGFuZV9zY2FsZXJfY2hlY2spCj4+Pj4+Pj4gKwkJaWYgKHBpeGVsX2Zvcm1hdCA9 PSBEUk1fRk9STUFUX05WMTIpCj4+Pj4+Pj4gKwkJCW5lZWRfc2NhbGluZyA9IHRydWU7Cj4+Pj4+ PiBTZWVtcyByZWR1bmRhbnQgdG8gYWRkIHBsYW5lX3NjYWxlcl9jaGVjaywgaWYgeW91IGNhbiBq dXN0IGNoZWNrIGZvcgo+Pj4+PiBzY2FsZXJfdXNlciAhPSBTS0xfQ1JUQ19JTkRFWC4KPj4+Pj4+ IEJ1dCBzaW5jZSBwaXhlbF9mb3JtYXQgaXMgYWx3YXlzIDAgZm9yIGNydGMgaW5kZXgsIHlvdSBj YW4ganVzdAo+Pj4+Pj4gY2hlY2sKPj4+Pj4gcGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfTlYx MiBkaXJlY3RseS4uCj4+Pj4+Pj4gIAlpZiAoY3J0Y19zdGF0ZS0+eWNiY3I0MjAgJiYgc2NhbGVy X3VzZXIgPT0gU0tMX0NSVENfSU5ERVgpCj4+Pj4+Pj4gIAkJbmVlZF9zY2FsaW5nID0gdHJ1ZTsK Pj4+Pj4+Pgo+Pj4+Pj4+IEBAIC00NzYzLDE3ICs0NzcxLDMyIEBAIHNrbF91cGRhdGVfc2NhbGVy KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+Pj4+ICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2Rl dGFjaCwKPj4+Pj4+PiAgCX0KPj4+Pj4+Pgo+Pj4+Pj4+ICAJLyogcmFuZ2UgY2hlY2tzICovCj4+ Pj4+Pj4gLQlpZiAoc3JjX3cgPCBTS0xfTUlOX1NSQ19XIHx8IHNyY19oIDwgU0tMX01JTl9TUkNf SCB8fAo+Pj4+Pj4+IC0JCWRzdF93IDwgU0tMX01JTl9EU1RfVyB8fCBkc3RfaCA8IFNLTF9NSU5f RFNUX0ggfHwKPj4+Pj4+PiAtCj4+Pj4+Pj4gLQkJc3JjX3cgPiBTS0xfTUFYX1NSQ19XIHx8IHNy Y19oID4gU0tMX01BWF9TUkNfSCB8fAo+Pj4+Pj4+IC0JCWRzdF93ID4gU0tMX01BWF9EU1RfVyB8 fCBkc3RfaCA+IFNLTF9NQVhfRFNUX0gpIHsKPj4+Pj4+PiAtCQlEUk1fREVCVUdfS01TKCJzY2Fs ZXJfdXNlciBpbmRleCAldS4ldTogc3JjICV1eCV1Cj4+Pj4+IGRzdCAldXgldSAiCj4+Pj4+Pj4g LQkJCSJzaXplIGlzIG91dCBvZiBzY2FsZXIgcmFuZ2VcbiIsCj4+Pj4+Pj4gLQkJCWludGVsX2Ny dGMtPnBpcGUsIHNjYWxlcl91c2VyLCBzcmNfdywgc3JjX2gsIGRzdF93LAo+Pj4+PiBkc3RfaCk7 Cj4+Pj4+Pj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+Pj4gLQl9Cj4+Pj4+Pj4gLQo+Pj4+Pj4+ ICsJaWYgKHBsYW5lX3NjYWxlcl9jaGVjayAmJiBwaXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9O VjEyKSB7Cj4+Pj4+Pj4gKwkJaWYgKHNyY19oID4gU0tMX01JTl9ZVVZfNDIwX1NSQ19IKQo+Pj4+ Pj4+ICsJCQlnb3RvIGNoZWNrX3NjYWxlcl9yYW5nZTsKPj4+Pj4+PiArCQllbHNlCj4+Pj4+Pj4g KwkJCWdvdG8gZmFpbGVkX3JhbmdlOwo+Pj4+Pj4+ICsJfSBlbHNlIHsKPj4+Pj4+PiArCQlpZiAo c3JjX2ggPj0gU0tMX01JTl9TUkNfSCkKPj4+Pj4+PiArCQkJZ290byBjaGVja19zY2FsZXJfcmFu Z2U7Cj4+Pj4+Pj4gKwkJZWxzZQo+Pj4+Pj4+ICsJCQlnb3RvIGZhaWxlZF9yYW5nZTsKPj4+Pj4+ PiArCX0KPj4+Pj4+IFNpbmNlIG52MTIgYWx3YXlzIG5lZWRzIHNjYWxpbmcsIGNvdWxkIHdlIHJl ZnVzZSB0byBjcmVhdGUgTlYxMiBmYidzCj4+Pj4+PiB3aXRoCj4+Pj4+IGhlaWdodCA8IDE2IGlu IGludGVsX2ZyYW1lYnVmZmVyX2luaXQ/Cj4+Pj4+IEhtIHdlIHNob3VsZCBwcm9iYWJseSByZWpl Y3QgdGhpcyBpbiB0aGF0IHBsYWNlIGFueXdheSwgYnV0IHNpbmNlCj4+Pj4+IHNyY19oID49IFNL TF9NSU5fWVVWXzQyMF9TUkNfSCBpbXBsaWVzIHNyY19oID49IFNLTF9NSU5fU1JDX0gKPj4+IHdl Cj4+Pj4+IGRvbid0IG5lZWQgc3BlY2lhbCBoYW5kbGluZywgYW5kIGNhbiBqdXN0IGRvIGlmIChw aXhlbF9mb3JtYXQgPT0gTlYxMgo+Pj4+PiAmJiBzcmNfaCA+PSAxNikgcmV0dXJuIC1FSU5WQUw7 IGFuZCBrZWVwIHRoZSBleGlzdGluZyBjaGVja3MuCj4+Pj4+Cj4+Pj4+IH5NYWFydGVuCj4+Pj4g VGhhbmsgeW91LCBJIHdpbGwgbWFrZSB0aGlzIGNoYW5nZSBhbmQgZmxvYXQgdGhlIHBhdGNoLgo+ Pj4+Cj4+Pj4gUmVnYXJkcwo+Pj4+IFZpZHlhCj4+PiBGb3IgdGhlIGZyYW1lYnVmZmVyIGNyZWF0 aW9uIGFsc28gcmVxdWlyZSBtaW5pbXVtIHdpZHRoIHRoZW4sIHNpbmNlIGl0Cj4+PiBuZWVkcyB0 byBiZSBTS0xfTUlOX1NSQ19XIHRvby4uCj4+IEFzIHN1Y2ggdGhlcmUgaXMgbm8gcmVzdHJpY3Rp b24gb24gd2lkdGggZm9yIFlVViBpbiBCc3BlYy4gSXQgb25seSBtZW50aW9ucwo+PiBhYm91dCB0 aGUgaGVpZ2h0Lgo+IERvIHJlbWVtYmVyIHRvIGNvbnNpZGVyIDkwLzI3MCBkZWdyZWUgcm90YXRp b24uIFRoYXQncyBzdGlsbCBzdXBwb3J0ZWQKPiB3aXRoIE5WMTIgaXMgaXQgbm90Pwo+ClNob3Vs ZCB3ZSBhbHNvIGZvcmNlIGEgbWluaW11bSB3aWR0aCBvZiAxNiB0aGVuPwoKTWluaW11bSB3aWR0 aCBvZiA4IHdhcyBiYXNlZCBvbiBTS0xfTUlOX1NSQ19XLCBzaW5jZSBzY2FsZXIgaXMgYWx3YXlz IGVuYWJsZWQgZm9yIE5WMTIgdGhhdCBlbmRzIHVwIGJlaW5nIGEgcmVzdHJpY3Rpb24gZm9yIHRo ZSBmb3JtYXQuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK