From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 2/2] drm/i915: Only recalculate wm's for planes part of the state, v2. Date: Tue, 1 Mar 2016 14:28:05 -0800 Message-ID: <20160301222804.GC12786@intel.com> References: <1456826842-32553-1-git-send-email-maarten.lankhorst@linux.intel.com> <1456826842-32553-2-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E57376E73F for ; Tue, 1 Mar 2016 22:28:05 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1456826842-32553-2-git-send-email-maarten.lankhorst@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 T24gVHVlLCBNYXIgMDEsIDIwMTYgYXQgMTE6MDc6MjJBTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT25seSBwbGFuZXMgdGhhdCBhcmUgcGFydCBvZiB0aGUgc3RhdGUgc2hvdWxk IGJlIHVzZWQgZm9yIHJlY2FsY3VsYXRpbmcKPiB3YXRlcm1hcmtzLiBGb3IgcGxhbmVzIG5vdCBw YXJ0IG9mIHRoZSBzdGF0ZSB0aGUgcHJldmlvdXMgcGF0Y2ggYWxsb3dzCj4gdXMgdG8gcmUtdXNl IHRoZSBvbGQgdmFsdWVzIHNpbmNlIHRoZXkncmUgY2FsY3VsYXRlZCBldmVuIGZvciBsZXZlbHMK PiB0aGF0IGFyZSBub3QgYWN0aXZlbHkgdXNlZC4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+IC0g UmVtb3ZlIGJpZyBpZiBmcm9tIGludGVsX2NydGNfYXRvbWljX2NoZWNrLgo+IC0gUmVtb3ZlIGV4 dHJhIG5ld2xpbmUuCj4gLSBSZW1vdmUgbWVtc2V0IGluIGlsa19jb21wdXRlX3BpcGVfd20uCj4g Cj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KPiBDYzogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNv bT4KCkkgaGF2ZW4ndCB0aG91Z2h0IHRocm91Z2ggdGhpcyB0b28gY2FyZWZ1bGx5IHlldCwgYnV0 IG9mZiB0aGUgdG9wIG9mIG15CmhlYWQgSSdtIG5vdCBzdXJlIGlmIHRoaXMgd2lsbCB3b3JrIGZv ciBTS0wgb25jZSB3ZSB0cmFuc2l0aW9uIGl0IHRvCmFsc28gdXNlIGEgbW9yZSBhdG9taWMgc3R5 bGUuICBDaGFuZ2VzIHRvIG90aGVyIHN0YXRlIG1pZ2h0IHJlc3VsdCBpbgpjaGFuZ2VzIHRvIERE QiBhbGxvY2F0aW9uLCBtYWtpbmcgb3VyIHByZXZpb3VzbHktY2FsY3VsYXRlZCB2YWx1ZXMKaW52 YWxpZC4KCkkgdGhpbmsgdGhpcyBpcyBva2F5IGZvciB0aGUgY3VycmVudCBjb2RlICh3aGVyZSBv bmx5IElMSyBpcyBhdG9taWMpLCBzbwoKICAgIEFja25vd2xlZGdlZC1ieTogTWF0dCBSb3BlciA8 bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KCmZvciB0aGUgdGltZSBiZWluZy4gIEknbGwgYmUg YmFjayB0byBsb29raW5nIGF0IFNLTC1zdHlsZSB3YXRlcm1hcmtzIGluCnRoZSBuZXh0IGRheSBv ciB0d28gYW5kIEkgbWlnaHQgaGF2ZSB0byBiYWNrdHJhY2sgc29tZXdoYXQgaW4gY2FzZXMKd2hl cmUgYSBEREIgcGFydGl0aW9uaW5nIGNoYW5nZXMgcmVzdWx0cyBpbiBhIGZ1bGwgcmVjb21wdXRl LCBidXQgSSBuZWVkCnRvIHRoaW5rIHRocm91Z2ggdGhlIGRldGFpbHMgYSBiaXQgbW9yZSBhYm91 dCBob3cgYmVzdCB0byBoYW5kbGUgdGhhdC4KCgpNYXR0CgoKPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgIHwgMTIgKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAg ICAgIHwgNTkgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIDQgZmlsZXMg Y2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gaW5kZXggNjcxMjk1NTIzMzE3Li40YjhmNDQ2Y2RmNDQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNjI5LDggKzYyOSw3IEBAIHN0cnVjdCBkcm1faTkx NV9kaXNwbGF5X2Z1bmNzIHsKPiAgCQkJICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLAo+ICAJCQkg IHN0cnVjdCBkcGxsICptYXRjaF9jbG9jaywKPiAgCQkJICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9j ayk7Cj4gLQlpbnQgKCpjb21wdXRlX3BpcGVfd20pKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ IC0JCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiArCWludCAoKmNv bXB1dGVfcGlwZV93bSkoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7Cj4gIAlpbnQg KCpjb21wdXRlX2ludGVybWVkaWF0ZV93bSkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCQkJCSAgICAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiBpbmRleCA3OWJmNTI3ZTBhNzMuLjIwYTRjYjNmNjlkMSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTE5OTQsNyArMTE5OTQsNyBAQCBzdGF0 aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAg Cj4gIAlyZXQgPSAwOwo+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfcGlwZV93bSkg ewo+IC0JCXJldCA9IGRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfcGlwZV93bShpbnRlbF9jcnRj LCBzdGF0ZSk7Cj4gKwkJcmV0ID0gZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9waXBlX3dtKHBp cGVfY29uZmlnKTsKPiAgCQlpZiAocmV0KSB7Cj4gIAkJCURSTV9ERUJVR19LTVMoIlRhcmdldCBw aXBlIHdhdGVybWFya3MgYXJlIGludmFsaWRcbiIpOwo+ICAJCQlyZXR1cm4gcmV0Owo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNWRhZjUzYzA4MGUxLi4wM2I3ZDAzMWU5MTAgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNjMwLDYgKzE2MzAsMTggQEAgaW50 ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwK PiAgCj4gIAlyZXR1cm4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPiAgfQo+ICsK PiArc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKgo+ICtpbnRlbF9hdG9t aWNfZ2V0X2V4aXN0aW5nX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSwKPiArCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiArCXN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ICsKPiArCXBsYW5lX3N0YXRlID0gZHJt X2F0b21pY19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUoc3RhdGUsICZwbGFuZS0+YmFzZSk7Cj4g Kwo+ICsJcmV0dXJuIHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKTsKPiArfQo+ICsK PiAgaW50IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCAxYjhi YTc3N2QyYjMuLmRjMWUxNjgzZjRhMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBA IC0xOTk2LDExICsxOTk2LDE4IEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX2xldmVsKGNv bnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQljdXJfbGF0ZW5jeSAq PSA1Owo+ICAJfQo+ICAKPiAtCXJlc3VsdC0+cHJpX3ZhbCA9IGlsa19jb21wdXRlX3ByaV93bShj c3RhdGUsIHByaXN0YXRlLAo+IC0JCQkJCSAgICAgcHJpX2xhdGVuY3ksIGxldmVsKTsKPiAtCXJl c3VsdC0+c3ByX3ZhbCA9IGlsa19jb21wdXRlX3Nwcl93bShjc3RhdGUsIHNwcnN0YXRlLCBzcHJf bGF0ZW5jeSk7Cj4gLQlyZXN1bHQtPmN1cl92YWwgPSBpbGtfY29tcHV0ZV9jdXJfd20oY3N0YXRl LCBjdXJzdGF0ZSwgY3VyX2xhdGVuY3kpOwo+IC0JcmVzdWx0LT5mYmNfdmFsID0gaWxrX2NvbXB1 dGVfZmJjX3dtKGNzdGF0ZSwgcHJpc3RhdGUsIHJlc3VsdC0+cHJpX3ZhbCk7Cj4gKwlpZiAocHJp c3RhdGUpIHsKPiArCQlyZXN1bHQtPnByaV92YWwgPSBpbGtfY29tcHV0ZV9wcmlfd20oY3N0YXRl LCBwcmlzdGF0ZSwKPiArCQkJCQkJICAgICBwcmlfbGF0ZW5jeSwgbGV2ZWwpOwo+ICsJCXJlc3Vs dC0+ZmJjX3ZhbCA9IGlsa19jb21wdXRlX2ZiY193bShjc3RhdGUsIHByaXN0YXRlLCByZXN1bHQt PnByaV92YWwpOwo+ICsJfQo+ICsKPiArCWlmIChzcHJzdGF0ZSkKPiArCQlyZXN1bHQtPnNwcl92 YWwgPSBpbGtfY29tcHV0ZV9zcHJfd20oY3N0YXRlLCBzcHJzdGF0ZSwgc3ByX2xhdGVuY3kpOwo+ ICsKPiArCWlmIChjdXJzdGF0ZSkKPiArCQlyZXN1bHQtPmN1cl92YWwgPSBpbGtfY29tcHV0ZV9j dXJfd20oY3N0YXRlLCBjdXJzdGF0ZSwgY3VyX2xhdGVuY3kpOwo+ICsKPiAgCXJlc3VsdC0+ZW5h YmxlID0gdHJ1ZTsKPiAgfQo+ICAKPiBAQCAtMjI4OCw1MSArMjI5NSw1MSBAQCBzdGF0aWMgYm9v bCBpbGtfdmFsaWRhdGVfcGlwZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICB9Cj4gIAo+ ICAvKiBDb21wdXRlIG5ldyB3YXRlcm1hcmtzIGZvciB0aGUgcGlwZSAqLwo+IC1zdGF0aWMgaW50 IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gLQkJ CSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gK3N0YXRpYyBpbnQgaWxr X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICB7Cj4g KwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPmJhc2Uuc3RhdGU7Cj4g KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5i YXNlLmNydGMpOwo+ICAJc3RydWN0IGludGVsX3BpcGVfd20gKnBpcGVfd207Cj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPiAgCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlID0gTlVMTDsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmU7Cj4g LQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwczsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqcHJpc3RhdGUgPSBOVUxMOwo+ICAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzcHJzdGF0 ZSA9IE5VTEw7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmN1cnN0YXRlID0gTlVMTDsK PiAgCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpLCB1c2FibGVf bGV2ZWw7Cj4gIAlzdHJ1Y3QgaWxrX3dtX21heGltdW1zIG1heDsKPiAgCj4gLQljc3RhdGUgPSBp bnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwo+IC0JaWYgKElT X0VSUihjc3RhdGUpKQo+IC0JCXJldHVybiBQVFJfRVJSKGNzdGF0ZSk7Cj4gLQo+ICAJcGlwZV93 bSA9ICZjc3RhdGUtPndtLm9wdGltYWwuaWxrOwo+ICAKPiAgCWZvcl9lYWNoX2ludGVsX3BsYW5l X29uX2NydGMoZGV2LCBpbnRlbF9jcnRjLCBpbnRlbF9wbGFuZSkgewo+IC0JCXBzID0gZHJtX2F0 b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsCj4gLQkJCQkJCSZpbnRlbF9wbGFuZS0+YmFzZSk7 Cj4gLQkJaWYgKElTX0VSUihwcykpCj4gLQkJCXJldHVybiBQVFJfRVJSKHBzKTsKPiArCQlzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzOwo+ICsKPiArCQlwcyA9IGludGVsX2F0b21pY19nZXRf ZXhpc3RpbmdfcGxhbmVfc3RhdGUoc3RhdGUsCj4gKwkJCQkJCQkgICBpbnRlbF9wbGFuZSk7Cj4g KwkJaWYgKCFwcykKPiArCQkJY29udGludWU7Cj4gIAo+ICAJCWlmIChpbnRlbF9wbGFuZS0+YmFz ZS50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpCj4gLQkJCXByaXN0YXRlID0gdG9faW50 ZWxfcGxhbmVfc3RhdGUocHMpOwo+ICsJCQlwcmlzdGF0ZSA9IHBzOwo+ICAJCWVsc2UgaWYgKGlu dGVsX3BsYW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkKPiAtCQkJc3By c3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwcyk7Cj4gKwkJCXNwcnN0YXRlID0gcHM7Cj4g IAkJZWxzZSBpZiAoaW50ZWxfcGxhbmUtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJT T1IpCj4gLQkJCWN1cnN0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocHMpOwo+ICsJCQljdXJz dGF0ZSA9IHBzOwo+ICAJfQo+ICAKPiAgCXBpcGVfd20tPnBpcGVfZW5hYmxlZCA9IGNzdGF0ZS0+ YmFzZS5hY3RpdmU7Cj4gLQlwaXBlX3dtLT5zcHJpdGVzX2VuYWJsZWQgPSBzcHJzdGF0ZS0+dmlz aWJsZTsKPiAtCXBpcGVfd20tPnNwcml0ZXNfc2NhbGVkID0gc3Byc3RhdGUtPnZpc2libGUgJiYK PiAtCQkoZHJtX3JlY3Rfd2lkdGgoJnNwcnN0YXRlLT5kc3QpICE9IGRybV9yZWN0X3dpZHRoKCZz cHJzdGF0ZS0+c3JjKSA+PiAxNiB8fAo+IC0JCWRybV9yZWN0X2hlaWdodCgmc3Byc3RhdGUtPmRz dCkgIT0gZHJtX3JlY3RfaGVpZ2h0KCZzcHJzdGF0ZS0+c3JjKSA+PiAxNik7Cj4gKwlpZiAoc3By c3RhdGUpIHsKPiArCQlwaXBlX3dtLT5zcHJpdGVzX2VuYWJsZWQgPSBzcHJzdGF0ZS0+dmlzaWJs ZTsKPiArCQlwaXBlX3dtLT5zcHJpdGVzX3NjYWxlZCA9IHNwcnN0YXRlLT52aXNpYmxlICYmCj4g KwkJCShkcm1fcmVjdF93aWR0aCgmc3Byc3RhdGUtPmRzdCkgIT0gZHJtX3JlY3Rfd2lkdGgoJnNw cnN0YXRlLT5zcmMpID4+IDE2IHx8Cj4gKwkJCSBkcm1fcmVjdF9oZWlnaHQoJnNwcnN0YXRlLT5k c3QpICE9IGRybV9yZWN0X2hlaWdodCgmc3Byc3RhdGUtPnNyYykgPj4gMTYpOwo+ICsJfQo+ICsK PiAgCj4gIAl1c2FibGVfbGV2ZWwgPSBtYXhfbGV2ZWw7Cj4gIAo+ICAJLyogSUxLL1NOQjogTFAy KyB3YXRlcm1hcmtzIG9ubHkgdy9vIHNwcml0ZXMgKi8KPiAtCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA8PSA2ICYmIHNwcnN0YXRlLT52aXNpYmxlKQo+ICsJaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuIDw9IDYgJiYgcGlwZV93bS0+c3ByaXRlc19lbmFibGVkKQo+ICAJCXVzYWJsZV9sZXZlbCA9 IDE7Cj4gIAo+ICAJLyogSUxLL1NOQi9JVkI6IExQMSsgd2F0ZXJtYXJrcyBvbmx5IHcvbyBzY2Fs aW5nICovCj4gLS0gCj4gMi4xLjAKPiAKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJl IEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jw b3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK