From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 08/24] drm/i915: Do not add planes from intel_atomic_setup_scalers. Date: Mon, 15 Jun 2015 13:48:04 +0200 Message-ID: <20150615114804.GF8341@phenom.ffwll.local> References: <1433165247-15928-1-git-send-email-maarten.lankhorst@linux.intel.com> <1433165247-15928-9-git-send-email-maarten.lankhorst@linux.intel.com> <20150603012954.GF17555@intel.com> <76A9B330A4D78C4D99CB292C4CC06C0E36FF00AA@fmsmsx101.amr.corp.intel.com> <556EA667.8020004@linux.intel.com> <76A9B330A4D78C4D99CB292C4CC06C0E36FF0A9B@fmsmsx101.amr.corp.intel.com> <20150603233324.GH17555@intel.com> <556FC888.2080702@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 311E96E750 for ; Mon, 15 Jun 2015 04:45:19 -0700 (PDT) Received: by wiga1 with SMTP id a1so74642040wig.0 for ; Mon, 15 Jun 2015 04:45:18 -0700 (PDT) Content-Disposition: inline In-Reply-To: <556FC888.2080702@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdW4gMDQsIDIwMTUgYXQgMDU6Mzk6NTJBTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gSGV5LAo+IAo+IE9wIDA0LTA2LTE1IG9tIDAxOjMzIHNjaHJlZWYgTWF0dCBS b3BlcjoKPiA+IE9uIFdlZCwgSnVuIDAzLCAyMDE1IGF0IDEyOjMyOjQzUE0gLTA3MDAsIEtvbmR1 cnUsIENoYW5kcmEgd3JvdGU6Cj4gPj4KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0K PiA+Pj4gRnJvbTogTWFhcnRlbiBMYW5raG9yc3QgW21haWx0bzptYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb21dCj4gPj4+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAwMywgMjAxNSAxMjow MiBBTQo+ID4+PiBUbzogS29uZHVydSwgQ2hhbmRyYTsgUm9wZXIsIE1hdHRoZXcgRAo+ID4+PiBD YzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4+PiBTdWJqZWN0OiBSZTogW0lu dGVsLWdmeF0gW1BBVENIIDA4LzI0XSBkcm0vaTkxNTogRG8gbm90IGFkZCBwbGFuZXMgZnJvbQo+ ID4+PiBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycy4KPiA+Pj4KPiA+Pj4gT3AgMDMtMDYtMTUg b20gMDM6NTIgc2NocmVlZiBLb25kdXJ1LCBDaGFuZHJhOgo+ID4+Pj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tCj4gPj4+Pj4gRnJvbTogUm9wZXIsIE1hdHRoZXcgRAo+ID4+Pj4+IFNlbnQ6 IFR1ZXNkYXksIEp1bmUgMDIsIDIwMTUgNjozMCBQTQo+ID4+Pj4+IFRvOiBNYWFydGVuIExhbmto b3JzdAo+ID4+Pj4+IENjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBLb25kdXJ1 LCBDaGFuZHJhCj4gPj4+Pj4gU3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFtQQVRDSCAwOC8yNF0g ZHJtL2k5MTU6IERvIG5vdCBhZGQgcGxhbmVzIGZyb20KPiA+Pj4+PiBpbnRlbF9hdG9taWNfc2V0 dXBfc2NhbGVycy4KPiA+Pj4+Pgo+ID4+Pj4+IE9uIE1vbiwgSnVuIDAxLCAyMDE1IGF0IDAzOjI3 OjExUE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ID4+Pj4+PiBUaGlzIG1heSBw b3N0cG9uZSBnb2luZyB0byBIUSBtb2RlIHVudGlsIHRoZSBwbGFuZSBpcyBpbiB0aGUKPiA+Pj4+ Pj4gZHJtX2F0b21pY19zdGF0ZSBpZiBpdCdzIG5vdCB1c2luZyBzY2FsZXIgMCwgYnV0IGl0IGRv ZXMgYWxsb3cgbW92aW5nCj4gPj4+Pj4+IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzIHRvIHRo ZSBjcnRjIGNoZWNrIGZ1bmN0aW9uLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBN YWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4+ Pj4+PiAtLS0KPiA+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8 IDQxICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiA+Pj4gLS0tCj4gPj4+Pj4gLS0K PiA+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDI3ICsrKysr KysrKysrKysrKy0tLS0tLS0tLQo+ID4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgIHwgIDIgKysKPiA+Pj4+Pj4gIDMgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9u cygrKSwgMzEgZGVsZXRpb25zKC0pCj4gPj4+Pj4+Cj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ID4+Pj4+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXRvbWljLmMKPiA+Pj4+Pj4gaW5kZXggMWVkZDE2NTFjMDQ1Li5hODIwMmZh MGRhYTggMTAwNjQ0Cj4gPj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pYy5jCj4gPj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5j Cj4gPj4+Pj4+IEBAIC0xMDAsMTQgKzEwMCw2IEBAIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiA+Pj4+Pj4gIAlpZiAocmV0KQo+ID4+Pj4+PiAgCQlyZXR1 cm4gcmV0Owo+ID4+Pj4+Pgo+ID4+Pj4+PiAtCS8qCj4gPj4+Pj4+IC0JICogRklYTUU6IG1vdmUg dG8gY3J0YyBhdG9taWMgY2hlY2sgZnVuY3Rpb24gb25jZSB0aGlzIGlzCj4gPj4+Pj4+IC0JICog bW9yZSBhdG9taWMgZnJpZW5kbHkuCj4gPj4+Pj4+IC0JICovCj4gPj4+Pj4+IC0JcmV0ID0gaW50 ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoZGV2LCBudWNsZWFyX2NydGMsIGNydGNfc3RhdGUpOwo+ ID4+Pj4+PiAtCWlmIChyZXQpCj4gPj4+Pj4+IC0JCXJldHVybiByZXQ7Cj4gPj4+Pj4+IC0KPiA+ Pj4+Pj4gIAlyZXR1cm4gcmV0Owo+ID4+Pj4+PiAgfQo+ID4+Pj4+Pgo+ID4+Pj4+PiBAQCAtMzM2 LDIxICszMjgsMTAgQEAgaW50IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1f ZGV2aWNlCj4gPj4+Pj4gKmRldiwKPiA+Pj4+Pj4gIAkJCS8qIGZpbmQgdGhlIHBsYW5lIHRoYXQg c2V0IHRoZSBiaXQgYXMgc2NhbGVyX3VzZXIgKi8KPiA+Pj4+Pj4gIAkJCXBsYW5lID0gZHJtX3N0 YXRlLT5wbGFuZXNbaV07Cj4gPj4+Pj4+Cj4gPj4+Pj4+IC0JCQkvKgo+ID4+Pj4+PiAtCQkJICog dG8gZW5hYmxlL2Rpc2FibGUgaHEgbW9kZSwgYWRkIHBsYW5lcyB0aGF0IGFyZSB1c2luZwo+ID4+ Pj4+IHNjYWxlcgo+ID4+Pj4+PiAtCQkJICogaW50byB0aGlzIHRyYW5zYWN0aW9uCj4gPj4+Pj4+ IC0JCQkgKi8KPiA+Pj4+Pj4gIAkJCWlmICghcGxhbmUpIHsKPiA+Pj4+Pj4gLQkJCQlzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpzdGF0ZTsKPiA+Pj4+Pj4gLQkJCQlwbGFuZSA9IGRybV9wbGFuZV9m cm9tX2luZGV4KGRldiwgaSk7Cj4gPj4+Pj4+IC0JCQkJc3RhdGUgPQo+ID4+Pj4+IGRybV9hdG9t aWNfZ2V0X3BsYW5lX3N0YXRlKGRybV9zdGF0ZSwgcGxhbmUpOwo+ID4+Pj4+PiAtCQkJCWlmIChJ U19FUlIoc3RhdGUpKSB7Cj4gPj4+Pj4+IC0JCQkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBh ZGQKPiA+Pj4+PiBbUExBTkU6JWRdIHRvIGRybV9zdGF0ZVxuIiwKPiA+Pj4+Pj4gLQkJCQkJCXBs YW5lLT5iYXNlLmlkKTsKPiA+Pj4+Pj4gLQkJCQkJcmV0dXJuIFBUUl9FUlIoc3RhdGUpOwo+ID4+ Pj4+PiAtCQkJCX0KPiA+Pj4+Pj4gKwkJCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gZmluZCBb UExBTkU6JWRdCj4gPj4+Pj4gaW4gZHJtX3N0YXRlXG4iLCBwbGFuZS0+YmFzZS5pZCk7Cj4gPj4+ Pj4+ICsJCQkJY29udGludWU7Cj4gPj4+Pj4+ICAJCQl9Cj4gPj4+Pj4+IC0KPiA+Pj4+Pj4gIAkJ CWludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ID4+Pj4+Pgo+ID4+Pj4+PiAg CQkJLyogcGxhbmUgb24gZGlmZmVyZW50IGNydGMgY2Fubm90IGJlIGEgc2NhbGVyIHVzZXIgb2Yg dGhpcwo+ID4+Pj4+IGNydGMgKi8KPiA+Pj4+Pj4gQEAgLTM5Niw2ICszNzcsMjQgQEAgaW50IGlu dGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlCj4gPj4+Pj4gKmRldiwK PiA+Pj4+Pj4gIAkJfQo+ID4+Pj4+PiAgCX0KPiA+Pj4+Pj4KPiA+Pj4+Pj4gKwkvKiBwbGFuZSBu b3QgcGFydCBvZiBtYXNrIG11c3QgbGVhdmUgaHEgbW9kZT8gKi8KPiA+Pj4+Pj4gKwlpZiAobnVt X3NjYWxlcnNfbmVlZCA+IDEgJiYgc2NhbGVyX3N0YXRlLT5zY2FsZXJzWzBdLmluX3VzZSAmJgo+ ID4+Pj4+PiArCSAgICBzY2FsZXJfc3RhdGUtPnNjYWxlcnNbMF0ubW9kZSA9PSBQU19TQ0FMRVJf TU9ERV9IUSkgewo+ID4+Pj4+PiArCQlzY2FsZXJfc3RhdGUtPnNjYWxlcnNbMF0ubW9kZSA9IFBT X1NDQUxFUl9NT0RFX0RZTjsKPiA+Pj4+Pj4gKwo+ID4+Pj4+PiArCQlpbnRlbF9jcnRjLT5hdG9t aWMuc2tsX3VwZGF0ZV9zY2FsZXIwID0KPiA+Pj4+Pj4gKwkJCVBTX1NDQUxFUl9FTiB8IFBTX1ND QUxFUl9NT0RFX0RZTjsKPiA+Pj4+Pj4gKwl9Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gKwkvKiBwbGFu ZSBub3QgcGFydCBvZiBtYXNrIGNhbiBlbnRlciBocSBtb2RlPyAqLwo+ID4+Pj4+PiArCWlmIChu dW1fc2NhbGVyc19uZWVkID09IDEgJiYgc2NhbGVyX3N0YXRlLT5zY2FsZXJzWzBdLmluX3VzZSAm Jgo+ID4+Pj4+PiArCSAgICBpbnRlbF9jcnRjLT5waXBlICE9IFBJUEVfQyAmJiBzY2FsZXJfc3Rh dGUtPnNjYWxlcnNbMF0ubW9kZSAhPQo+ID4+Pj4+IFBTX1NDQUxFUl9NT0RFX0hRKSB7Cj4gPj4+ Pj4+ICsJCXNjYWxlcl9zdGF0ZS0+c2NhbGVyc1swXS5tb2RlID0gUFNfU0NBTEVSX01PREVfSFE7 Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gKwkJaW50ZWxfY3J0Yy0+YXRvbWljLnNrbF91cGRhdGVfc2Nh bGVyMCA9Cj4gPj4+Pj4+ICsJCQlQU19TQ0FMRVJfRU4gfCBQU19TQ0FMRVJfTU9ERV9IUTsKPiA+ Pj4+Pj4gKwl9Cj4gPj4+Pj4+ICsKPiA+Pj4+PiBJIGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBo dyBzcGVjIGF0IHRoZSBtb21lbnQ7IGlzIHNjYWxlciAjMCB0aGUgb25seQo+ID4+Pj4+IG9uZSB0 aGF0IGNhbiBldmVyIGdvIGludG8gSFEgbW9kZT8KPiA+Pj4+IFllcwo+ID4+Pj4KPiA+Pj4+PiBJ ZiB0aGVyZSBpc24ndCBhIGhhcmR3YXJlCj4gPj4+Pj4gcmVxdWlyZW1lbnQgYWJvdXQgdGhpcywg dGhlbiBpdCBzZWVtcyBsaWtlIHdlJ3JlIG1pc3NpbmcgdGhlIGNhc2Ugd2hlcmUKPiA+Pj4+PiBw bGFuZXMgQSBhbmQgQiBnZXQgc2NhbGVycyAwIGFuZCAxLiAgVGhlbiBwbGFuZSBBIChhbmQgdGh1 cyBzY2FsZXIgMCkgaXMKPiA+Pj4+PiBkaXNhYmxlZCwgd2hpY2ggc2hvdWxkIGFsbG93IHNjYWxl ciAxIHRvIGdvIGludG8gSFEgbW9kZS4KPiA+Pj4+IEluIHRoaXMgY2FzZSwgc2NhbGVyIDAgdG8g YmUgYWxsb2NhdGVkIHRvIHBsYW5lIEIgdG8gb3BlcmF0ZSBpbiBIUSBtb2RlLgo+ID4+PiBJcyBp dCByZWFsbHkgYmFkIHRvIGtlZXAgaXQgb24gc2NhbGVyIDEgZm9yIGEgd2hpbGUgdW50aWwgdGhl IG5leHQgdGltZSB0aGUgcGxhbmUgaXMKPiA+Pj4gYWRkZWQ/Cj4gPj4+Cj4gPj4+Pj4gSSBndWVz cyBpdCdzIG5vdCBpbW1lZGlhdGVseSBjbGVhciB0byBtZSB3aHkgd2UgbmVlZCB0byBub3QgcHVs bCB0aGUKPiA+Pj4+PiBvdGhlciBwbGFuZXMgaW50byB0aGUgdHJhbnNhY3Rpb24uICBJcyB0aGlz IGp1c3QgdG8gYXZvaWQgZG9pbmcgc29tZQo+ID4+Pj4+IGV4dHJhIHdvcmsgZm9yIGEgcGxhbmUg dGhhdCBoYXNuJ3QgY2hhbmdlZCwgb3IgZG9lcyBpdCBjYXVzZSBhIHByb2JsZW0KPiA+Pj4+PiBz b21laG93Pwo+ID4+Pj4gUGVyIGF0b21pYyBkZXNpZ24sIHVuY2hhbmdlZCBwbGFuZXMgY2FuIGJl IGFkZGVkIHRvIHRyYW5zYWN0aW9uLgo+ID4+Pj4gQW5kIHNjYWxlciBpbXBsZW1lbnRhdGlvbiBp cyB1c2luZyB0aGlzIGRlc2lnbiBmZWF0dXJlLgo+ID4+Pj4gTm90IHN1cmUgd2hhdCB0aGUgaXNz dWUgaGVyZSwgYnV0IHdlIG5lZWQgdGhpcyBmZWF0dXJlIGNvbnRpbnVlCj4gPj4+PiB0byBhdmFp bGFibGUuCj4gPj4+Pgo+ID4+PiBVbmNoYW5nZWQgcGxhbmVzIGNhbiBiZSBhZGRlZCwgYnV0IHRo aXMgY291bGQgcHVsbCBpbiBhIHByaW1hcnkgcGxhbmUsIHdoaWNoCj4gPj4+IHdvdWxkIG5lZWQK PiA+Pj4gdG8gc2V0IGF0b21pYy53YWl0X2Zvcl9mbGlwcyB0aGVuLiBJIGNhbiBkbyB0aGF0IGFz IHNwZWNpYWwgY2FzZSB3aGVuIGFkZGluZyBhCj4gPj4+IHBsYW5lIGlmCj4gPj4+IHRoYXQncyBw cmVmZXJyZWQuCj4gPj4gSGVyZSBwcmltYXJ5IHBsYW5lIGNhbiBnZXQgYWRkZWQgaWYgdGhhdCBp cyB0aGUgb25seSBwbGFuZSB1c2luZyBzY2FsZXIgd2hpY2gKPiA+PiBpc24ndCBwYXJ0IG9mIHRo ZSB0cmFuc2FjdGlvbi4gQnV0IGhlcmUgYWRkaXRpb24gb2YgcHJpbWFyeSBwbGFuZSBpc24ndCBh ZGRpbmcKPiA+PiBvciBjaGFuZ2luZyBpdHMgRkIuIFNvIHdoeSBpdCBuZWVkcyB0byBzZXQgYXRv bWljLndhaXRfZm9yX2ZsaXBzPwo+ID4gSW4gdGhlIGF0b21pYyBjYXNlLCBpbnRlbF9jaGVja19w cmltYXJ5X3BsYW5lKCkgc2V0cwo+ID4gYXRvbWljLndhaXRfZm9yX2ZsaXBzIGlmIHRoZSBwcmlt YXJ5IHBsYW5lIGlzIHBhcnQgb2YgdGhlIG9yaWdpbmFsCj4gPiB0cmFuc2FjdGlvbiAobm8gbWF0 dGVyIHdoYXQgYWJvdXQgdGhlIHByaW1hcnkgcGxhbmUgaXMgY2hhbmdpbmcpLgo+ID4gSG93ZXZl ciBpZiB3ZSBwdWxsIGluIHRoZSBwcmltYXJ5IHBsYW5lIHZpYQo+ID4gaW50ZWxfYXRvbWljX3Nl dHVwX3NjYWxlcnMoKSwgdGhhdCBnZXRzIGNhbGxlZCBhZnRlciB3ZSd2ZSBmaW5pc2hlZAo+ID4g Y2hlY2tpbmcgYWxsIG9mIHRoZSBwbGFuZXMgKHRoYXQgd2VyZSBvcmlnaW5hbGx5IHBhcnQgb2Yg dGhlCj4gPiB0cmFuc2FjdGlvbiksIHNvIEkgZG9uJ3QgdGhpbmsgd2FpdF9mb3JfZmxpcHMgd2ls bCBnZXQgc2V0IGluIHRoYXQgY2FzZS4KPiA+IFNvIEkgdGhpbmsgcHVsbGluZyBpbiB0aGUgcGxh bmUgYXMgQ2hhbmRyYSB3YXMgd2lsbCBzdGlsbCBhdm9pZCBhbgo+ID4gdW5uZWNlc3Nhcnkgd2Fp dC4gIEV2ZW4gdGhvdWdoIGl0J3MgaW4gdGhlIHRyYW5zYWN0aW9uLCBJIGJlbGlldmUgdGhlCj4g PiAnY2hlY2snIHN0ZXAgaXMgYnlwYXNzZWQgKHdoaWNoIG1lYW5zIHdlIG5lZWQgdG8gYmUgY2Fy ZWZ1bCBhYm91dCBkb2luZwo+ID4gc3R1ZmYgbGlrZSB0aGlzIGlmIGl0IGNvdWxkIGFmZmVjdCBk ZXJpdmVkIHN0YXRlLi4uYnV0IEkgdGhpbmsgaW4gdGhpcwo+ID4gY2FzZSBpdCdzIHNhZmUpLgo+ ID4KPiA+IE4uQi4gIFRoZSB3YWl0IHdlJ3JlIHRhbGtpbmcgYWJvdXQgaGVyZSB3aWxsIG9ubHkg YmUgdHJpZ2dlcmVkIHdoZW4gYQo+ID4gU0tMIG9yIEJYVCBwbGF0Zm9ybSBkaXNhYmxlcyBhICJz cHJpdGUiIHBsYW5lICh0aHVzIHRyaWdnZXJpbmcgdGhlCj4gPiBwcmltYXJ5J3Mgc2NhbGVyIHRv IHN3aXRjaCB0byBIUSBtb2RlKSB3aGlsZSB0aGVyZSdzIGEgcGVuZGluZyBsZWdhY3kKPiA+IHBh Z2VmbGlwIG9uIHRoZSBwcmltYXJ5IHBsYW5lLiAgSSBkb24ndCB0aGluayB3ZSBoYXZlIGEgdXNl cnNwYWNlIHRvZGF5Cj4gPiB0aGF0IGNhbiB0cmlnZ2VyIHRoaXMuLi5XZXN0b24gd29uJ3QgdXNl IHNwcml0ZXMgYXQgYWxsIGluIGEgbm9uLWF0b21pYwo+ID4gbWFubmVyIGFuZCBhbHRob3VnaCBT TkEgaGFzIGFuIFh2IHNwcml0ZSBhZGFwdGVyLCBpdCB3b24ndCBldmVyIGJlCj4gPiBwZXJmb3Jt aW5nIHNjYWxpbmcgb2YgdGhlIHByaW1hcnkgcGxhbmUgYWZhaWsuCj4gQ29ycmVjdC4gVGhlIHdh aXQgd2lsbCBiZSBhIG5vcCBpZiB0aGVyZSBhcmUgbm8gbGVnYWN5IHBhZ2UgZmxpcHMuIEJ1dCBm b3IgY29tcGxldGVuZXNzIHNha2UgSSBpbmNsdWRlZCBpdC4gOi0pCgpKdXN0IGFuIGFzaWRlOiBC ZW5kaW5nIG92ZXIgYmFja3dhcmRzIGZvciB3YWl0X2Zvcl9mbGlwcyBpcyBpbW8gcG9pbnRsZXNz CnNpbmNlIHdlJ2xsIGRpdGNoIGFsbCB0aGF0IGNvZGUgYW55d2F5LiBXZWxsIGFzIHNvb24gYXMg d2UndmUgbW92ZWQKcGFnZWZsaXBzIG92ZXIgdG8gYXRvbWljIGF0IGxlYXN0LiBTbyBhIGJpdCBv ZiB0ZW1wb3JhcnkgaGFja3Mgc2hvdWxkIGJlCmZpbmUgaGVyZS4KLURhbmllbAotLSAKRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK