From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 02/11] drm/i915: Do not acquire crtc state to check clock during modeset. Date: Thu, 22 Oct 2015 15:55:55 +0200 Message-ID: <20151022135555.GD16848@phenom.ffwll.local> References: <1445514996-18733-1-git-send-email-maarten.lankhorst@linux.intel.com> <1445514996-18733-3-git-send-email-maarten.lankhorst@linux.intel.com> <20151022130825.GT16848@phenom.ffwll.local> <5628E7E2.9060501@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3B4856E509 for ; Thu, 22 Oct 2015 06:56:00 -0700 (PDT) Received: by wicfx6 with SMTP id fx6so136960530wic.1 for ; Thu, 22 Oct 2015 06:55:58 -0700 (PDT) Content-Disposition: inline In-Reply-To: <5628E7E2.9060501@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 T24gVGh1LCBPY3QgMjIsIDIwMTUgYXQgMDM6NDI6NThQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMjItMTAtMTUgb20gMTU6MDggc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+ ID4gT24gVGh1LCBPY3QgMjIsIDIwMTUgYXQgMDE6NTY6MjdQTSArMDIwMCwgTWFhcnRlbiBMYW5r aG9yc3Qgd3JvdGU6Cj4gPj4gUGFyYWxsZWwgbW9kZXNldHMgYXJlIHN0aWxsIG5vdCBhbGxvd2Vk LCBidXQgdGhpcyB3aWxsIGFsbG93IHVwZGF0aW5nCj4gPj4gYSBkaWZmZXJlbnQgY3J0YyBkdXJp bmcgYSBtb2Rlc2V0IGlmIHRoZSBjbG9jayBpcyBub3QgY2hhbmdlZC4KPiA+Pgo+ID4+IEFkZGl0 aW9uYWxseSB3aGVuIGFsbCBwaXBlcyBhcmUgRFBNUyBvZmYgdGhlIGNkY2xrIHdpbGwgYmUgbG93 ZXJlZAo+ID4+IHRvIHRoZSBtaW5pbXVtIGFsbG93ZWQuCj4gPj4KPiA+PiBTaWduZWQtb2ZmLWJ5 OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ ID4+IC0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA5MCAr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDkgKysrKwo+ID4+ICAyIGZpbGVzIGNoYW5nZWQsIDY0 IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ID4+IGluZGV4IDAyMmU2MjhiODUyMC4uMDUxYTFlMmIxYzU1IDEw MDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+IEBAIC01MjM3 LDYgKzUyMzcsNyBAQCBzdGF0aWMgdm9pZCBtb2Rlc2V0X3B1dF9wb3dlcl9kb21haW5zKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+PiAgCj4gPj4gIHN0YXRpYyB2b2lkIG1v ZGVzZXRfdXBkYXRlX2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gPj4gIHsKPiA+PiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0 YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKPiA+PiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+ID4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+PiAgCXVuc2lnbmVkIGxvbmcgcHV0X2RvbWFp bnNbSTkxNV9NQVhfUElQRVNdID0ge307Cj4gPj4gQEAgLTUyNDUsMTMgKzUyNDYsMjAgQEAgc3Rh dGljIHZvaWQgbW9kZXNldF91cGRhdGVfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSkKPiA+PiAgCWludCBpOwo+ID4+ICAKPiA+PiAgCWZvcl9lYWNoX2Ny dGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKPiA+PiAtCQlpZiAobmVl ZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkpCj4gPj4gLQkJCXB1dF9kb21haW5zW3RvX2ludGVsX2Ny dGMoY3J0YyktPnBpcGVdID0KPiA+PiAtCQkJCW1vZGVzZXRfZ2V0X2NydGNfcG93ZXJfZG9tYWlu cyhjcnRjKTsKPiA+PiArCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9Cj4gPj4gKwkJ CXRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPj4gKwkJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwo+ID4+ICsKPiA+PiArCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQo+ ID4+ICsJCQljb250aW51ZTsKPiA+PiArCj4gPj4gKwkJaW50ZWxfY3J0Yy0+bWluX2NkY2xrID0g aW50ZWxfc3RhdGUtPnBpcGVfY2RjbGtbcGlwZV07Cj4gPj4gKwo+ID4+ICsJCXB1dF9kb21haW5z W3BpcGVdID0gbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKGNydGMpOwo+ID4+ICAJfQo+ ID4+ICAKPiA+PiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsaykg ewo+ID4+IC0JCXVuc2lnbmVkIGludCBjZGNsayA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0 ZSktPmNkY2xrOwo+ID4+ICsJCXVuc2lnbmVkIGludCBjZGNsayA9IGludGVsX3N0YXRlLT5jZGNs azsKPiA+PiAgCj4gPj4gIAkJaWYgKGNkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxICYmCj4g Pj4gIAkJICAgICFXQVJOX09OKCFzdGF0ZS0+YWxsb3dfbW9kZXNldCkpCj4gPj4gQEAgLTU5MTks NyArNTkyNyw2IEBAIHN0YXRpYyBpbnQgYnJveHRvbl9jYWxjX2NkY2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiA+PiAgCS8qCj4gPj4gIAkgKiBGSVhNRToKPiA+PiAgCSAq IC0gcmVtb3ZlIHRoZSBndWFyZGJhbmQsIGl0J3Mgbm90IG5lZWRlZCBvbiBCWFQKPiA+PiAtCSAq IC0gc2V0IDE5LjJNSHogYnlwYXNzIGZyZXF1ZW5jeSBpZiB0aGVyZSBhcmUgbm8gYWN0aXZlIHBp cGVzCj4gPj4gIAkgKi8KPiA+PiAgCWlmIChtYXhfcGl4Y2xrID4gNTc2MDAwKjkvMTApCj4gPj4g IAkJcmV0dXJuIDYyNDAwMDsKPiA+PiBAQCAtNTkyOSw4ICs1OTM2LDEwIEBAIHN0YXRpYyBpbnQg YnJveHRvbl9jYWxjX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ PiAgCQlyZXR1cm4gMzg0MDAwOwo+ID4+ICAJZWxzZSBpZiAobWF4X3BpeGNsayA+IDE0NDAwMCo5 LzEwKQo+ID4+ICAJCXJldHVybiAyODgwMDA7Cj4gPj4gLQllbHNlCj4gPj4gKwllbHNlIGlmICht YXhfcGl4Y2xrKQo+ID4+ICAJCXJldHVybiAxNDQwMDA7Cj4gPj4gKwllbHNlCj4gPj4gKwkJcmV0 dXJuIDE5MjAwOwo+ID4+ICB9Cj4gPj4gIAo+ID4+ICAvKiBDb21wdXRlIHRoZSBtYXggcGl4ZWwg Y2xvY2sgZm9yIG5ldyBjb25maWd1cmF0aW9uLiBVc2VzIGF0b21pYyBzdGF0ZSBpZgo+ID4+IEBA IC01OTM5LDIyICs1OTQ4LDMxIEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZV9tYXhfcGl4Y2xrKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPj4gIAkJCQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKQo+ID4+ICB7Cj4gPj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiA+ PiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ID4+IC0JaW50IG1heF9w aXhjbGsgPSAwOwo+ID4+ICsJaW50IG1heF9waXhlbF9yYXRlID0gMDsKPiA+PiArCWJvb2wgYW55 X2FjdGl2ZSA9IGZhbHNlOwo+ID4+ICAKPiA+PiAtCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBp bnRlbF9jcnRjKSB7Cj4gPj4gLQkJY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19z dGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7Cj4gPj4gLQkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkK PiA+PiAtCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Cj4gPj4gKwlmb3JfZWFjaF9pbnRl bF9jcnRjKHN0YXRlLT5kZXYsIGludGVsX2NydGMpIHsKPiA+PiArCQlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmRybV9jcnRjX3N0YXRlOwo+ID4+ICsJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZp bnRlbF9jcnRjLT5iYXNlOwo+ID4+ICsJCWludCBwaXhjbGsgPSAwOwo+ID4+ICAKPiA+PiAtCQlp ZiAoIWNydGNfc3RhdGUtPmJhc2UuZW5hYmxlKQo+ID4+IC0JCQljb250aW51ZTsKPiA+PiArCQlk cm1fY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUoc3RhdGUs IGNydGMpOwo+ID4+ICsJCWlmICghZHJtX2NydGNfc3RhdGUpIHsKPiA+PiArCQkJYW55X2FjdGl2 ZSB8PSBpbnRlbF9jcnRjLT5hY3RpdmU7Cj4gPj4gKwkJCXBpeGNsayA9IGludGVsX2NydGMtPm1p bl9jZGNsazsKPiA+PiArCQl9IGVsc2UgaWYgKGRybV9jcnRjX3N0YXRlLT5lbmFibGUpIHsKPiA+ PiArCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+ID4+ICsJCQkJdG9f aW50ZWxfY3J0Y19zdGF0ZShkcm1fY3J0Y19zdGF0ZSk7Cj4gPj4gKwo+ID4+ICsJCQlhbnlfYWN0 aXZlIHw9IGRybV9jcnRjX3N0YXRlLT5hY3RpdmU7Cj4gPj4gKwkJCXBpeGNsayA9IGNydGNfc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwo+ID4+ICsJCX0KPiA+PiAgCj4gPj4g LQkJbWF4X3BpeGNsayA9IG1heChtYXhfcGl4Y2xrLAo+ID4+IC0JCQkJIGNydGNfc3RhdGUtPmJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrKTsKPiA+PiArCQl0b19pbnRlbF9hdG9taWNfc3Rh dGUoc3RhdGUpLT5waXBlX2NkY2xrW2ludGVsX2NydGMtPnBpcGVdID0gcGl4Y2xrOwo+ID4+ICsJ CW1heF9waXhlbF9yYXRlID0gbWF4KG1heF9waXhlbF9yYXRlLCBwaXhjbGspOwo+ID4+ICAJfQo+ ID4+ICAKPiA+PiAtCXJldHVybiBtYXhfcGl4Y2xrOwo+ID4+ICsJcmV0dXJuIGFueV9hY3RpdmUg PyBtYXhfcGl4ZWxfcmF0ZSA6IDA7Cj4gPj4gIH0KPiA+PiAgCj4gPj4gIHN0YXRpYyBpbnQgdmFs bGV5dmlld19tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQo+ID4+IEBAIC05NDkxLDI5ICs5NTA5LDM1IEBAIHN0YXRpYyB2b2lkIGJyb3h0b25fbW9kZXNl dF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiA+PiAg c3RhdGljIGludCBpbGtfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQo+ID4+ICB7Cj4gPj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiA+PiAt CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ID4+ICAJaW50IG1heF9waXhl bF9yYXRlID0gMDsKPiA+PiArCWJvb2wgYW55X2FjdGl2ZSA9IGZhbHNlOwo+ID4+ICAKPiA+PiAg CWZvcl9lYWNoX2ludGVsX2NydGMoc3RhdGUtPmRldiwgaW50ZWxfY3J0Yykgewo+ID4+IC0JCWlu dCBwaXhlbF9yYXRlOwo+ID4+IC0KPiA+PiAtCQljcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dl dF9jcnRjX3N0YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKPiA+PiAtCQlpZiAoSVNfRVJSKGNydGNf c3RhdGUpKQo+ID4+IC0JCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKPiA+PiArCQlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmRybV9jcnRjX3N0YXRlOwo+ID4+ICsJCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwo+ID4+ICsJCWludCBwaXhlbF9yYXRlID0gMDsK PiA+PiAgCj4gPj4gLQkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKPiA+PiAtCQkJY29u dGludWU7Cj4gPj4gKwkJZHJtX2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9leGlzdGluZ19j cnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiA+PiArCQlpZiAoIWRybV9jcnRjX3N0YXRlKSB7Cj4g Pj4gKwkJCWFueV9hY3RpdmUgfD0gaW50ZWxfY3J0Yy0+YWN0aXZlOwo+ID4+ICsJCQlwaXhlbF9y YXRlID0gaW50ZWxfY3J0Yy0+bWluX2NkY2xrOwo+ID4+ICsJCX0gZWxzZSBpZiAoZHJtX2NydGNf c3RhdGUtPmVuYWJsZSkgewo+ID4+ICsJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSA9Cj4gPj4gKwkJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGRybV9jcnRjX3N0YXRlKTsKPiA+ PiAgCj4gPj4gLQkJcGl4ZWxfcmF0ZSA9IGlsa19waXBlX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7 Cj4gPj4gKwkJCWFueV9hY3RpdmUgfD0gZHJtX2NydGNfc3RhdGUtPmFjdGl2ZTsKPiA+PiArCQkJ cGl4ZWxfcmF0ZSA9IGlsa19waXBlX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7Cj4gPj4gIAo+ID4+ IC0JCS8qIHBpeGVsIHJhdGUgbXVzdG4ndCBleGNlZWQgOTUlIG9mIGNkY2xrIHdpdGggSVBTIG9u IEJEVyAqLwo+ID4+IC0JCWlmIChJU19CUk9BRFdFTEwoc3RhdGUtPmRldikgJiYgY3J0Y19zdGF0 ZS0+aXBzX2VuYWJsZWQpCj4gPj4gLQkJCXBpeGVsX3JhdGUgPSBESVZfUk9VTkRfVVAocGl4ZWxf cmF0ZSAqIDEwMCwgOTUpOwo+ID4+ICsJCQkvKiBwaXhlbCByYXRlIG11c3RuJ3QgZXhjZWVkIDk1 JSBvZiBjZGNsayB3aXRoIElQUyBvbiBCRFcgKi8KPiA+PiArCQkJaWYgKElTX0JST0FEV0VMTChz dGF0ZS0+ZGV2KSAmJiBjcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKPiA+PiArCQkJCXBpeGVsX3Jh dGUgPSBESVZfUk9VTkRfVVAocGl4ZWxfcmF0ZSAqIDEwMCwgOTUpOwo+ID4+ICsJCX0KPiA+PiAg Cj4gPj4gKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+cGlwZV9jZGNsa1tpbnRlbF9j cnRjLT5waXBlXSA9IHBpeGVsX3JhdGU7Cj4gPj4gIAkJbWF4X3BpeGVsX3JhdGUgPSBtYXgobWF4 X3BpeGVsX3JhdGUsIHBpeGVsX3JhdGUpOwo+ID4+ICAJfQo+ID4+ICAKPiA+PiAtCXJldHVybiBt YXhfcGl4ZWxfcmF0ZTsKPiA+PiArCXJldHVybiBhbnlfYWN0aXZlID8gbWF4X3BpeGVsX3JhdGUg OiAwOwo+ID4+ICB9Cj4gPj4gIAo+ID4+ICBzdGF0aWMgdm9pZCBicm9hZHdlbGxfc2V0X2NkY2xr KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjZGNsaykKPiA+PiBAQCAtOTYxMiwxNCArOTYz NiwxMCBAQCBzdGF0aWMgaW50IGJyb2Fkd2VsbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4+ICAJZWxzZQo+ID4+ICAJCWNkY2xrID0gMzM3NTAw Owo+ID4+ICAKPiA+PiAtCS8qCj4gPj4gLQkgKiBGSVhNRSBtb3ZlIHRoZSBjZGNsayBjYWNsdWxh dGlvbiB0bwo+ID4+IC0JICogY29tcHV0ZV9jb25maWcoKSBzbyB3ZSBjYW4gZmFpbCBncmFjZWd1 bGx5Lgo+ID4+IC0JICovCj4gPj4gIAlpZiAoY2RjbGsgPiBkZXZfcHJpdi0+bWF4X2NkY2xrX2Zy ZXEpIHsKPiA+PiAgCQlEUk1fRVJST1IoInJlcXVlc3RlZCBjZGNsayAoJWQga0h6KSBleGNlZWRz IG1heCAoJWQga0h6KVxuIiwKPiA+PiAgCQkJICBjZGNsaywgZGV2X3ByaXYtPm1heF9jZGNsa19m cmVxKTsKPiA+PiAtCQljZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKPiA+PiArCQly ZXR1cm4gLUVJTlZBTDsKPiA+PiAgCX0KPiA+PiAgCj4gPj4gIAl0b19pbnRlbF9hdG9taWNfc3Rh dGUoc3RhdGUpLT5jZGNsayA9IGNkY2xrOwo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g Pj4gaW5kZXggNTE3MjJlNjU3YjkxLi41NGEyYzBkYTJlY2UgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4+IEBAIC0yNTAsNiArMjUwLDcgQEAgc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSB7Cj4gPj4gIAl1bnNpZ25lZCBpbnQgY2RjbGs7Cj4gPj4gIAlib29sIGRwbGxf c2V0Owo+ID4+ICAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyBzaGFyZWRfZHBsbFtJ OTE1X05VTV9QTExTXTsKPiA+PiArCXVuc2lnbmVkIGludCBwaXBlX2NkY2xrW0k5MTVfTUFYX1BJ UEVTXTsKPiA+PiAgfTsKPiA+PiAgCj4gPj4gIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7Cj4g Pj4gQEAgLTUzNiw4ICs1MzcsMTYgQEAgc3RydWN0IGludGVsX2NydGMgewo+ID4+ICAJICogV2hl dGhlciB0aGUgY3J0YyBhbmQgdGhlIGNvbm5lY3RlZCBvdXRwdXQgcGlwZWxpbmUgaXMgYWN0aXZl LiBJbXBsaWVzCj4gPj4gIAkgKiB0aGF0IGNydGMtPmVuYWJsZWQgaXMgc2V0LCBpLmUuIHRoZSBj dXJyZW50IG1vZGUgY29uZmlndXJhdGlvbiBoYXMKPiA+PiAgCSAqIHNvbWUgb3V0cHV0cyBjb25u ZWN0ZWQgdG8gdGhpcyBjcnRjLgo+ID4+ICsJICoKPiA+PiArCSAqIFByb3RlY3RlZCBieSBjcnRj Lm11dGV4IGFuZCBjb25uZWN0aW9uX211dGV4Cj4gPiBUaGlzIG5lZWRzIHRvIGJlIGNsYXJpZmll ZCB0byBtZWFuOiByZWFkLXByb3RlY3RlZCBieSBjb25uZWN0aW9uX211dGV4LAo+ID4gd3JpdGVy cyBhZGRpdGlvbmFsbHkgbXVzdCBob2xkIGNydGMtPm11dGV4LiBTYW1lIGJlbG93Lgo+ID4KPiA+ IFRoaW5raW5nIGFib3V0IHRoaXMgYSBiaXQgbW9yZSB0aGUgdXN1YWwgZGVzaWduIHdlIGRvIGlz IHB1dCB0aGUgc3RhdGUKPiA+IGNvcGllcyBub3QgaW50byB0aGUgcGFyZW50IG9iamVjdCB3aXRo IGZ1bmt5IHJ1bGVzLCBidXQgaW5zdGVhZCBpbnRvIHRoZQo+ID4gc3RhdGUgb2YgdGhlIGhpZ2hl ci1sZXZlbCBvYmplY3RzLiBTbyBmb3IgZXhhbXBsZSB0aGUgcmVhZC1vbmx5Cj4gPiBwbGFuZV9h Y3RpdmUgc3RhdGUgaXMgaW4gY3J0Y19zdGF0ZS0+cGxhbmVfbWFzay4KPiA+Cj4gPiBTaW1pbGFy bHkgaW4gdGhpcyBjYXNlIGhlcmUgSSB0aGluayBpdCB3b3VsZCBiZSBjbGVhbmVyIGRlc2lnbiB0 byBoYXZlIGEKPiA+IG1pbl9jZGNsayBhcnJheSBpbiBpbnRlbF9zdGF0ZSwgc2V0dGluZyBpdCB0 byAwIGlmIHRoZSBwaXBlIGlzIHRvdGFsbHkKPiA+IG9mZi4gVGhhdCB3YXkgbG9ja2luZyBydWxl cyBhcmUgMTAwJSBjbGVhcjogSWYgeW91IG5lZWQgdG8gY2hhbmdlIGl0LCB5b3UKPiA+IG5lZWQg dG8gY29weSB0aGUgZ2xvYmFsIHN0YXRlIGFuZCBhY3F1aXJlIGNvbm5lY3Rpb25fbXV0ZXguIFRo YXQKPiA+IGF1dG9tYXRpY2FsbHkgZ2l2ZXMgeW91IHJlYWQtYWNjZXNzIHRvIGFsbCBjcnRjJ3Mg bWluX2NkY2xrLgo+IFNvcnJ5IHRoaXMgaXMgdGhlIG9ubHkgY2FzZSB3aGVyZSBhIGRlcGVuZGVu Y3kgb24gaW50ZWxfY3J0Yy0+YWN0aXZlIGlzIHZhbGlkLgo+IGZiYyBhbmQgd2F0ZXJtYXJrIHVz ZXJzIHNob3VsZCBzdG9wIGxvb2tpbmcgYXQgaXQuIChpbnRlbF9jcnRjX2FjdGl2ZSkKPiAKPiAy IGNydGMncywgIzEgcmVxdWlyZXMgY2xvY2sgYXQgMTAwLCAjMiByZXF1aXJlcyBjbG9jayBhdCAy MDAuCj4gWW91IGRvIGEgRFBNUyBtb2RlIG9mZiBvbiAjMiwgYW5kIGlmIHlvdSBkb24ndCB0cmFj ayBjcnRjX2Nsb2NrIHlvdSB3b3VsZCBzZXQgdGhlIGRpc3BsYXkgY2xvY2sgdG8gMTAwIGFuZCBm b3JjZSBhIG1vZGVzZXQgb24gIzEgdG9vLgo+IElmIHlvdSBpbW1lZGlhdGVseSBkbyBkcG1zIG9m ZiBvbiAjMSBhZnRlcndhcmRzIGl0IG1lYW5zIHRoYXQgdGhlIHVzZXIgd291bGQgc2VlICMxIGJl aW5nIGRpc2FibGVkLCByZS1lbmFibGVkIGFuZCBkaXNhYmxlZCBhZ2Fpbi4uCgpXZWxsIEkgYXNz dW1lZCBtaW5fY2RjbGsgIT0gMCBpZmYgYWN0aXZlLiBCdXQgdGhlIHBvaW50IGhlcmUgaXNuJ3Qg dG8Kb3V0cmlnaHQgcmVtb3ZlIHRoZSBkZXBlbmN5IHVwb24gdGhlIGFjdGl2ZSBzdGF0ZSAoSSBh Z3JlZSB3ZSBuZWVkIHRoYXQgdG8KYXZvaWQgbmVlZGxlc3MgZmxpY2tlcmluZyB3aGVuIG9ubHkg Y2hhbmdpbmcgYWN0aXZlIHN0YXRlKSwgYnV0IHRvIHJlbW92ZQp0aGUgc3BlY2lmaWMgbG9ja2lu ZyByZXN0cmljdGlvbnMgb24gc3R1ZmYgaW4gaW50ZWxfY3J0Yy4gSW5zdGVhZCBJIHRoaW5rCml0 J3MgYmV0dGVyIHRvIGhhdmUgdGhpcyBzdG9yZWQgaW4gdGhlIGdsb2JhbCBzdGF0ZSwgd2hpY2gg bmF0dXJhbGx5IGdpdmVzCnVzIGV4YWN0bHkgdGhlIGxvY2tpbmcgeW91IHdhbnQsIHdpdGhvdXQg aGF2aW5nIHRvIGV4cGxpY2l0bHkgZG9jdW1lbnQgaXQKKGFuZCBsb29rIGl0IHVwIGFsbCB0aGUg dGltZSkuCgo+ID4gVGhhdCB3YXkgd2UgZG9uJ3QgcGxheSB0cmlja3Mgd2l0aCBnZXRfZXhpc3Rp bmdfc3RhdGUsIGRvbid0IGFkZCBtb3JlCj4gPiBkZXBlbmNpZXMgb24gdGhlIGxlZ2FjeS1lbmN1 bWJlcmVkIGludGVsX2NydGMtPmFjdGl2ZSBhbmQgaXQncyBqdXN0Cj4gPiBnZW5lcmFsbHkgbW9y ZSBhd2Vzb21lLgo+IFRoZSB0cmlja3MgYXJlIG5lZWRlZCB0byBhbGxvdyBhIG1vZGVzZXQgdG8g cnVuIHBhcmFsbGVsIHRvIGFueSBwYWdlIGZsaXBzLgo+IFRob3VnaCBwZXJoYXBzIGl0IHdvdWxk IGJlIGJldHRlciB0byBhZGQgYSBzdHJ1Y3QgdG8gZGV2X3ByaXYgdGhhdCBjb250YWlucwo+IG1p biBjZGNsayBhbmQgYSBmbGFnIHRvIHNlZSBpZiB0aGUgY3J0YyBpcyBhY3RpdmUgb3Igbm90LgoK WXVwLCBJIGdldCB0aGUgdHJpY2suIEknbSBqdXN0IG5vdCBoYXBweSB3aXRoIHRoZSBpbXBsZW1l bnRhdGlvbiwgaXQgbG9va3MKd2F5IHRvbyBtdWNoIGxpa2UgbGVnYWN5LW1vZGVzZXN0LWxldHMt dHJhY2stc3R1ZmYtaW4tb2JqZWN0cyBpbnN0ZWFkIG9mCnByb3BlciBhIGF0b21pYyBzdGF0ZSBi YXNlZCBkZXNpZ24uCi1EYW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==