From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [CI 10/21] drm/i915: Mark up all locked waiters Date: Mon, 12 Sep 2016 19:17:42 +0000 Message-ID: <1473707859.2435.56.camel@intel.com> References: <20160909131201.16673-1-chris@chris-wilson.co.uk> <20160909131201.16673-10-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 304716E569 for ; Mon, 12 Sep 2016 19:17:44 +0000 (UTC) In-Reply-To: <20160909131201.16673-10-chris@chris-wilson.co.uk> Content-Language: en-US Content-ID: <08D49582435357479923443B4084913A@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "intel-gfx@lists.freedesktop.org" , "chris@chris-wilson.co.uk" List-Id: intel-gfx@lists.freedesktop.org SGkNCg0KRW0gU2V4LCAyMDE2LTA5LTA5IMOgcyAxNDoxMSArMDEwMCwgQ2hyaXMgV2lsc29uIGVz Y3JldmV1Og0KPiBJbiB0aGUgbmV4dCBwYXRjaCB3ZSB3YW50IHRvIGhhbmRsZSByZXNldCBkaXJl Y3RseSBieSBhIGxvY2tlZCB3YWl0ZXINCj4gaW4NCj4gb3JkZXIgdG8gYXZvaWQgaXNzdWVzIHdp dGggcmV0dXJuaW5nIGJlZm9yZSB0aGUgcmVzZXQgaXMgaGFuZGxlZC4gVG8NCj4gaGFuZGxlIHRo ZSByZXNldCwgd2UgbXVzdCBmaXJzdCBrbm93IHdoZXRoZXIgd2UgaG9sZCB0aGUNCj4gc3RydWN0 X211dGV4Lg0KPiBJZiB3ZSBkbyBub3QgaG9sZCB0aGUgc3RydWN0X210dWV4IHdlIGNhbiBub3Qg cGVyZm9ybSB0aGUgcmVzZXQsIGJ1dA0KPiB3ZSBkbw0KPiBub3QgYmxvY2sgdGhlIHJlc2V0IHdv cmtlciBlaXRoZXIgKGFuZCBzbyB3ZSBjYW4ganVzdCBjb250aW51ZSB0bw0KPiB3YWl0IGZvcg0K PiByZXF1ZXN0IGNvbXBsZXRpb24pIC0gb3RoZXJ3aXNlIHdlIG11c3QgcmVsaW5xdWlzaCB0aGUg bXV0ZXguDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4NCj4gUmV2aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFA aW50ZWwuY29tPg0KPiAtLS0NCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Y8KgwqDCoMKgwqDCoHzCoMKgNCArKystDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uY8KgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqA3ICsrKysrLS0NCj4gwqBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jwqDCoMKgwqB8wqDCoDggKysrKysrLS0NCj4gwqBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuY8KgwqDCoMKgwqDCoHzCoMKgMiArLQ0KPiDC oGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuY8KgwqB8IDE1ICsrKysrKysr KysrKy0tLQ0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaMKgwqB8 IDExICsrKysrKysrLS0tDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5r ZXIuYyB8wqDCoDIgKy0NCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmPCoMKgfMKgwqAzICsrLQ0KPiDCoDggZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwg MTQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYw0K PiBpbmRleCA2MjBlN2RhYTEzM2IuLjY0NzAyY2M2OGUzYSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMNCj4gQEAgLTQ4MDMsNyArNDgwMyw5IEBAIGk5MTVfZHJvcF9jYWNo ZXNfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpDQo+IMKgCQlyZXR1cm4gcmV0Ow0KPiDCoA0KPiDC oAlpZiAodmFsICYgRFJPUF9BQ1RJVkUpIHsNCj4gLQkJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3Jf aWRsZShkZXZfcHJpdiwNCj4gSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUpOw0KPiArCQlyZXQgPSBp OTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LA0KPiArCQkJCQnCoMKgwqDCoMKgSTkxNV9X QUlUX0lOVEVSUlVQVElCTEUNCj4gfA0KPiArCQkJCQnCoMKgwqDCoMKgSTkxNV9XQUlUX0xPQ0tF RCk7DQo+IMKgCQlpZiAocmV0KQ0KPiDCoAkJCWdvdG8gdW5sb2NrOw0KPiDCoAl9DQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jDQo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYw0KPiBpbmRleCA0NjE3MjUwYzMwMDAuLjIzMDY5YTJkMjg1MCAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jDQo+IEBAIC0yODAyLDcgKzI4MDIsOCBAQCBf X2k5MTVfZ2VtX29iamVjdF9zeW5jKHN0cnVjdA0KPiBkcm1faTkxNV9nZW1fcmVxdWVzdCAqdG8s DQo+IMKgDQo+IMKgCWlmICghaTkxNS5zZW1hcGhvcmVzKSB7DQo+IMKgCQlyZXQgPSBpOTE1X3dh aXRfcmVxdWVzdChmcm9tLA0KPiAtCQkJCQlmcm9tLT5pOTE1LQ0KPiA+bW0uaW50ZXJydXB0aWJs ZSwNCj4gKwkJCQkJZnJvbS0+aTkxNS0+bW0uaW50ZXJydXB0aWJsZSANCj4gfA0KPiArCQkJCQlJ OTE1X1dBSVRfTE9DS0VELA0KPiDCoAkJCQkJTlVMTCwNCj4gwqAJCQkJCU5PX1dBSVRCT09TVCk7 DQo+IMKgCQlpZiAocmV0KQ0KPiBAQCAtNDMwNCw3ICs0MzA1LDkgQEAgaW50IGk5MTVfZ2VtX3N1 c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikNCj4gwqAJaWYgKHJldCkNCj4gwqAJCWdvdG8g ZXJyOw0KPiDCoA0KPiAtCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYsDQo+ IEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFKTsNCj4gKwlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9p ZGxlKGRldl9wcml2LA0KPiArCQkJCcKgwqDCoMKgwqBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSB8 DQo+ICsJCQkJwqDCoMKgwqDCoEk5MTVfV0FJVF9MT0NLRUQpOw0KPiDCoAlpZiAocmV0KQ0KPiDC oAkJZ290byBlcnI7DQo+IMKgDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ldmljdC5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3Qu Yw0KPiBpbmRleCAxMDMwODUyNDY5NzUuLjViNmY4MWMxZGJjYSAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jDQo+IEBAIC0xNzAsNyArMTcwLDkgQEAgc2VhcmNoX2Fn YWluOg0KPiDCoAlpZiAocmV0KQ0KPiDCoAkJcmV0dXJuIHJldDsNCj4gwqANCj4gLQlyZXQgPSBp OTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LA0KPiBJOTE1X1dBSVRfSU5URVJSVVBUSUJM RSk7DQo+ICsJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShkZXZfcHJpdiwNCj4gKwkJCQnC oMKgwqDCoMKgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgfA0KPiArCQkJCcKgwqDCoMKgwqBJOTE1 X1dBSVRfTE9DS0VEKTsNCj4gwqAJaWYgKHJldCkNCj4gwqAJCXJldHVybiByZXQ7DQo+IMKgDQo+ IEBAIC0yNzUsNyArMjc3LDkgQEAgaW50IGk5MTVfZ2VtX2V2aWN0X3ZtKHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UNCj4gKnZtLCBib29sIGRvX2lkbGUpDQo+IMKgCQkJCXJldHVybiByZXQ7DQo+ IMKgCQl9DQo+IMKgDQo+IC0JCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYs DQo+IEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFKTsNCj4gKwkJcmV0ID0gaTkxNV9nZW1fd2FpdF9m b3JfaWRsZShkZXZfcHJpdiwNCj4gKwkJCQkJwqDCoMKgwqDCoEk5MTVfV0FJVF9JTlRFUlJVUFRJ QkxFDQo+IHwNCj4gKwkJCQkJwqDCoMKgwqDCoEk5MTVfV0FJVF9MT0NLRUQpOw0KPiDCoAkJaWYg KHJldCkNCj4gwqAJCQlyZXR1cm4gcmV0Ow0KPiDCoA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYw0KPiBpbmRleCA5YmNhYzUyYjgyNjguLmYzYzY4NzZkYTUyMSAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMNCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMNCj4gQEAgLTI2ODMsNyArMjY4Myw3IEBAIHZv aWQgaTkxNV9nZW1fZ3R0X2ZpbmlzaF9vYmplY3Qoc3RydWN0DQo+IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaikNCj4gwqAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsN Cj4gwqANCj4gwqAJaWYgKHVubGlrZWx5KGdndHQtPmRvX2lkbGVfbWFwcykpIHsNCj4gLQkJaWYg KGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYsIDApKSB7DQo+ICsJCWlmIChpOTE1X2dl bV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LA0KPiBJOTE1X1dBSVRfTE9DS0VEKSkgew0KPiDCoAkJ CURSTV9FUlJPUigiRmFpbGVkIHRvIHdhaXQgZm9yIGlkbGU7IFZUJ2QgbWF5DQo+IGhhbmcuXG4i KTsNCj4gwqAJCQkvKiBXYWl0IGEgYml0LCBpbiBob3BlcyBpdCBhdm9pZHMgdGhlIGhhbmcNCj4g Ki8NCj4gwqAJCQl1ZGVsYXkoMTApOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fcmVxdWVzdC5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f cmVxdWVzdC5jDQo+IGluZGV4IGY0YzE1ZjMxOWQwOC4uNWY4OTgwMWU2YTE2IDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMNCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jDQo+IEBAIC0yNjAsNyArMjYwLDkg QEAgc3RhdGljIGludCBpOTE1X2dlbV9pbml0X3NlcW5vKHN0cnVjdA0KPiBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgdTMyIHNlcW5vKQ0KPiDCoA0KPiDCoAkvKiBDYXJlZnVsbHkgcmV0aXJl IGFsbCByZXF1ZXN0cyB3aXRob3V0IHdyaXRpbmcgdG8gdGhlDQo+IHJpbmdzICovDQo+IMKgCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2KSB7DQo+IC0JCXJldCA9IGludGVsX2VuZ2lu ZV9pZGxlKGVuZ2luZSwNCj4gSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUpOw0KPiArCQlyZXQgPSBp bnRlbF9lbmdpbmVfaWRsZShlbmdpbmUsDQo+ICsJCQkJCUk5MTVfV0FJVF9JTlRFUlJVUFRJQkxF IHwNCj4gKwkJCQkJSTkxNV9XQUlUX0xPQ0tFRCk7DQo+IMKgCQlpZiAocmV0KQ0KPiDCoAkJCXJl dHVybiByZXQ7DQo+IMKgCX0NCj4gQEAgLTYyNSw2ICs2MjcsMTAgQEAgaW50IGk5MTVfd2FpdF9y ZXF1ZXN0KHN0cnVjdA0KPiBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLA0KPiDCoAlpbnQgcmV0 ID0gMDsNCj4gwqANCj4gwqAJbWlnaHRfc2xlZXAoKTsNCj4gKyNpZiBJU19FTkFCTEVEKENPTkZJ R19MT0NLREVQKQ0KPiArCUdFTV9CVUdfT04oISFsb2NrZGVwX2lzX2hlbGQoJnJlcS0+aTkxNS0+ ZHJtLnN0cnVjdF9tdXRleCkNCj4gIT0NCj4gKwkJwqDCoMKgISEoZmxhZ3MgJiBJOTE1X1dBSVRf TE9DS0VEKSk7DQo+ICsjZW5kaWYNCg0KSSdtIGhpdHRpbmcgdGhpcyBvbiBteSBTS0wuIEl0IHVz dWFsbHkgaGFwcGVucyByaWdodCBhZnRlciB0aGUgbG9naW4sDQp3aGVuIEkgY2xpY2sgdGhlIHRl cm1pbmFsIGljb24gb24gdGhlIHRvb2xiYXIgaW4gb3JkZXIgdG8gb3BlbiBpdCAob24NCkNpbm5h bW9uKS4gV2hlbiBpdCBkb2Vzbid0IGhhcHBlbiBhdCB0aGF0IHRpbWUsIEkganVzdCBvcGVuIGEg YnJvd3Nlcg0KYW5kIGJyb3dzZSBmb3IgbGlrZSAzMCBzZWNvbmRzIHVudGlsIGl0IGhhcHBlbnMu DQoNCkkgZGlkIG1hbnVhbCByZXZlcnRzIG9mIHRoaXMgc2VyaWVzIHVwIHRvIHRoaXMgcGF0Y2gg YW5kIG9idmlvdXNseSB0aGUNCnByb2JsZW0gZ29lcyBhd2F5IChubyBtb3JlIEdFTV9CVUdfT04g dG8gaGl0KS4gSSBkaWRuJ3QgdHJ5IHRvIGRvIGENCnJlYWwgYmlzZWN0IHRvIGNoZWNrIGlmIHRo aXMgaXMgdGhlIGZpcnN0IGJhZCBjb21taXQgb3IgaWYgaXQncw0Kc29tZXRoaW5nIGxhdGVyIG9u IHRoZSBzZXJpZXMuIEl0IGNvdWxkIGV2ZW4gYmUgYW4gb2xkZXIgcHJvYmxlbSB0aGF0DQpqdXN0 IGdvdCBleHBvc2VkIGJ5IHRoZSBuZXcgQlVHKCkuIEknbSBhdmFpbGFibGUgdG8gdGVzdCBwYXRj aGVzLCBqdXN0DQpzZW5kIHRoZW0gdG8gbWUuDQoNCkhlcmUncyB0aGUgYmFja3RyYWNlOg0KDQpb wqDCoMKgNzEuMzQxMjcyXSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0NClvC oMKgwqA3MS4zNDEzMDVdIGtlcm5lbCBCVUcgYXQNCmRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlcXVlc3QuYzo3NjMhDQpbwqDCoMKgNzEuMzQxMzMxXSBpbnZhbGlkIG9wY29kZTogMDAw MCBbIzFdIFNNUA0KW8KgwqDCoDcxLjM0MTM0OF0gTW9kdWxlcyBsaW5rZWQgaW46IHNuZF9oZGFf Y29kZWNfaGRtaQ0Kc25kX2hkYV9jb2RlY19yZWFsdGVrIHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBz bmRfc29jX3NrbCBzbmRfc29jX3NrbF9pcGMNCnNuZF9zb2Nfc3N0X21hdGNoIHNuZF9oZGFfZXh0 X2NvcmUgc25kX3NvY19zc3RfZHNwIHNuZF9zb2Nfc3N0X2lwYw0KbmxzX3V0ZjggbmxzX2NwNDM3 IHZmYXQgZmF0IGVmaV9wc3RvcmUgZWZpdmFycyBpd2xtdm0gc2cgc25kX2hkYV9pbnRlbA0KaTkx NSBpd2x3aWZpIHNuZF9oZGFfY29kZWMgc25kX2h3ZGVwIHNuZF9oZGFfY29yZSBkcm1fa21zX2hl bHBlciBpZG1hNjQNCnZpcnRfZG1hIHN5c2NvcHlhcmVhIHN5c2ZpbGxyZWN0IHN5c2ltZ2JsdCBm Yl9zeXNfZm9wcyBkcm0NCmludGVsX2xwc3NfcGNpIGludGVsX3BjaF90aGVybWFsIHdtaSBpbnRl bF9scHNzX2FjcGkgaW50ZWxfbHBzcw0KaW50ZWxfaGlkIGFjcGlfcGFkIHNwYXJzZV9rZXltYXAg c2RoY2lfcGNpIHBpbmN0cmxfc3VucmlzZXBvaW50DQpwaW5jdHJsX2ludGVsDQpbwqDCoMKgNzEu MzQxNjA4XSBDUFU6IDMgUElEOiAzMDI1IENvbW06IFhvcmcgVGFpbnRlZDoNCkfCoMKgwqDCoMKg VcKgwqDCoMKgwqDCoMKgwqDCoMKgNC44LjAtcmM1cHorICM1Mg0KW8KgwqDCoDcxLjM0MTYzN10g SGFyZHdhcmUgbmFtZTogSW50ZWwgQ29ycG9yYXRpb24gU2t5bGFrZSBDbGllbnQNCnBsYXRmb3Jt L1NreWxha2UgWSBMUEREUjMgUlZQMywgQklPUyBTS0xTRTJSMS44NkMuQjA3NC5SMDAuMTUwMjI0 MDYwNw0KMDIvMjQvMjAxNQ0KW8KgwqDCoDcxLjM0MTY4NF0gdGFzazogZmZmZjg4MDE2NTAwNjE0 MCB0YXNrLnN0YWNrOiBmZmZmODgwMTY0Mzk0MDAwDQpbwqDCoMKgNzEuMzQxNzA4XSBSSVA6IDAw MTA6WzxmZmZmZmZmZmEwMWQwMzc3Pl3CoMKgWzxmZmZmZmZmZmEwMWQwMzc3Pl0NCmk5MTVfd2Fp dF9yZXF1ZXN0KzB4NDE3LzB4OGUwIFtpOTE1XQ0KW8KgwqDCoDcxLjM0MTc3NV0gUlNQOiAwMDE4 OmZmZmY4ODAxNjQzOTc5MjjCoMKgRUZMQUdTOiAwMDAxMDIwMg0KW8KgwqDCoDcxLjM0MTc5NV0g UkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAwMDAwMCBSQ1g6DQpmZmZmZmZm ZmZmZmZmZmZmDQpbwqDCoMKgNzEuMzQxODIxXSBSRFg6IDAwMDAwMDAwMDAwMDA0MDEgUlNJOiBm ZmZmODgwMTY1ODkwMGQwIFJESToNCmZmZmY4ODAxNjUwMDY4ZDgNClvCoMKgwqA3MS4zNDE4NDld IFJCUDogZmZmZjg4MDE2NDM5NzlkOCBSMDg6IDAwMDAwMDAwMDAwMDAwMDMgUjA5Og0KMDAwMDAw MDAwMDAwMDAwMA0KW8KgwqDCoDcxLjM0MTg3NV0gUjEwOiAwMDAwMDAwMDAwMDAwMDAxIFIxMTog MDAwMDAwMDAwMDAwMDAwMCBSMTI6DQowMDAwMDAwMDAwMDAwMDAxDQpbwqDCoMKgNzEuMzQxOTEz XSBSMTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAxIFIxNToNCmZmZmY4 ODAxNTliMTI1YzANClvCoMKgwqA3MS4zNDE5NDBdIEZTOsKgwqAwMDAwN2ZhNDkyMmVjYTQwKDAw MDApIEdTOmZmZmY4ODAxNmQ0YzAwMDAoMDAwMCkNCmtubEdTOjAwMDAwMDAwMDAwMDAwMDANClvC oMKgwqA3MS4zNDE5NzBdIENTOsKgwqAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAw MDA4MDA1MDAzMw0KW8KgwqDCoDcxLjM0MTk5Ml0gQ1IyOiAwMDAwNTYwYjk5YTA3MDAwIENSMzog MDAwMDAwMDE2NDFlYjAwMCBDUjQ6DQowMDAwMDAwMDAwMzQwNmUwDQpbwqDCoMKgNzEuMzQyMDE5 XSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjoNCjAwMDAw MDAwMDAwMDAwMDANClvCoMKgwqA3MS4zNDIwNDZdIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6 IDAwMDAwMDAwZmZmZTBmZjAgRFI3Og0KMDAwMDAwMDAwMDAwMDQwMA0KW8KgwqDCoDcxLjM0MjA3 M10gU3RhY2s6DQpbwqDCoMKgNzEuMzQyMDgzXcKgwqAwMDAwMDAwMDAwMDAwMDQ2IDAwMDAwMDAw MDAwMDAwMDQgZmZmZjg4MDEwMDAwMDAyMA0KZmZmZmZmZmY4MjdiNDBlMA0KW8KgwqDCoDcxLjM0 MjEyMl3CoMKgZmZmZmZmZmZmZmZmZmZmZiBmZmZmODgwMTY1MDA2ODg4IDAwMDAwMDAwMDAwMDAw MDENCjAwMDAwMDAwMDAwMDAwMDANClvCoMKgwqA3MS4zNDIxNTZdwqDCoGZmZmY4ODAxNjUwMDYx NDAgZmZmZmZmZmY4MTBkNTU2MCBmZmZmODgwMTY0Mzk3OTc4DQpmZmZmODgwMTY0Mzk3OTc4DQpb wqDCoMKgNzEuMzQyMTkwXSBDYWxsIFRyYWNlOg0KW8KgwqDCoDcxLjM0MjIwNV3CoMKgWzxmZmZm ZmZmZjgxMGQ1NTYwPl0gPyBwcmVwYXJlX3RvX3dhaXRfZXZlbnQrMHhmMC8weGYwDQpbwqDCoMKg NzEuMzQyMjY3XcKgwqBbPGZmZmZmZmZmYTAxZDA4OTg+XSBpOTE1X2ZlbmNlX3dhaXQrMHg1OC8w eGIwIFtpOTE1XQ0KW8KgwqDCoDcxLjM0MjI5NF3CoMKgWzxmZmZmZmZmZjgxNTVlNmNmPl0gZmVu Y2Vfd2FpdF90aW1lb3V0KzB4OGYvMHgyYTANClvCoMKgwqA3MS4zNDIzMTddwqDCoFs8ZmZmZmZm ZmY4MTU2MDFjYz5dDQpyZXNlcnZhdGlvbl9vYmplY3Rfd2FpdF90aW1lb3V0X3JjdSsweDFiYy8w eDU3MA0KW8KgwqDCoDcxLjM0MjM0Nl3CoMKgWzxmZmZmZmZmZjgxNTYwMGFmPl0gPw0KcmVzZXJ2 YXRpb25fb2JqZWN0X3dhaXRfdGltZW91dF9yY3UrMHg5Zi8weDU3MA0KW8KgwqDCoDcxLjM0MjM5 OV3CoMKgWzxmZmZmZmZmZmEwMjE4ZmNhPl0gaW50ZWxfcHJlcGFyZV9wbGFuZV9mYisweGNhLzB4 MmYwDQpbaTkxNV0NClvCoMKgwqA3MS4zNDI0MjZdwqDCoFs8ZmZmZmZmZmY4MTEyMTI0Nz5dID8g X19tb2R1bGVfYWRkcmVzcysweDI3LzB4ZjANClvCoMKgwqA3MS4zNDI0NTVdwqDCoFs8ZmZmZmZm ZmZhMDBlMzUyMT5dDQpkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcysweDYxLzB4ZjAg W2RybV9rbXNfaGVscGVyXQ0KW8KgwqDCoDcxLjM0MjUxMF3CoMKgWzxmZmZmZmZmZmEwMjExNWFl Pl0gaW50ZWxfYXRvbWljX2NvbW1pdCsweDI1ZS8weDRlMA0KW2k5MTVdDQpbwqDCoMKgNzEuMzQy NTQ5XcKgwqBbPGZmZmZmZmZmYTAwOTI5ZDI+XSBkcm1fYXRvbWljX2NvbW1pdCsweDUyLzB4NjAg W2RybV0NClvCoMKgwqA3MS4zNDI1OTJdwqDCoFs8ZmZmZmZmZmZhMDBlNDQ4Nz5dDQpkcm1fYXRv bWljX2hlbHBlcl91cGRhdGVfcGxhbmUrMHhlNy8weDEzMCBbZHJtX2ttc19oZWxwZXJdDQpbwqDC oMKgNzEuMzQyNjMzXcKgwqBbPGZmZmZmZmZmYTAwODRlMTk+XSBfX3NldHBsYW5lX2ludGVybmFs KzB4MWI5LzB4MmEwDQpbZHJtXQ0KW8KgwqDCoDcxLjM0MjY2N13CoMKgWzxmZmZmZmZmZmEwMDg1 MDE3Pl0NCmRybV9tb2RlX2N1cnNvcl91bml2ZXJzYWwrMHgxMTcvMHgyMDAgW2RybV0NClvCoMKg wqA3MS4zNDI3MDNdwqDCoFs8ZmZmZmZmZmZhMDA4NTE4ND5dIGRybV9tb2RlX2N1cnNvcl9jb21t b24rMHg4NC8weDE4MA0KW2RybV0NClvCoMKgwqA3MS4zNDI3MzhdwqDCoFs8ZmZmZmZmZmZhMDA4 NmE5OT5dIGRybV9tb2RlX2N1cnNvcjJfaW9jdGwrMHg5LzB4MTANCltkcm1dDQpbwqDCoMKgNzEu MzQyNzkzXcKgwqBbPGZmZmZmZmZmYTAwN2JlNDk+XSBkcm1faW9jdGwrMHgzODkvMHg0ZTAgW2Ry bV0NClvCoMKgwqA3MS4zNDI4MjNdwqDCoFs8ZmZmZmZmZmZhMDA4NmE5MD5dID8gZHJtX21vZGVf Y3Vyc29yX2lvY3RsKzB4NDAvMHg0MA0KW2RybV0NClvCoMKgwqA3MS4zNDI4NTBdwqDCoFs8ZmZm ZmZmZmY4MTI0ZWE0OT5dID8gbW50cHV0X25vX2V4cGlyZSsweDg5LzB4M2MwDQpbwqDCoMKgNzEu MzQyODczXcKgwqBbPGZmZmZmZmZmODEyNGU5YzA+XSA/IG1udF9nZXRfY291bnQrMHg2MC8weDYw DQpbwqDCoMKgNzEuMzQyODk2XcKgwqBbPGZmZmZmZmZmODEyM2U4MWY+XSBkb192ZnNfaW9jdGwr MHg4Zi8weDY5MA0KW8KgwqDCoDcxLjM0MjkyNl3CoMKgWzxmZmZmZmZmZjgxMGFkNzg0Pl0gPyB0 YXNrX3dvcmtfcnVuKzB4OTQvMHhiMA0KW8KgwqDCoDcxLjM0Mjk0OF3CoMKgWzxmZmZmZmZmZjgx MGRmMjRkPl0gPw0KdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKzB4ZWQvMHgxYjANClvCoMKgwqA3 MS4zNDI5NzRdwqDCoFs8ZmZmZmZmZmY4MTIzZWU5ND5dIFN5U19pb2N0bCsweDc0LzB4ODANClvC oMKgwqA3MS4zNDI5OTVdwqDCoFs8ZmZmZmZmZmY4MTkzZjhlNT5dDQplbnRyeV9TWVNDQUxMXzY0 X2Zhc3RwYXRoKzB4MTgvMHhhOA0KW8KgwqDCoDcxLjM0MzAxOV0gQ29kZTogZjAgZTAgNDggODUg ZGIgNzQgMTggNDggOGIgMDMgNDggOGIgN2IgMDggNDggODMgYzMNCjE4IDRjIDg5IGZlIGZmIGQw IDQ4IDhiIDAzIDQ4IDg1IGMwIDc1IGViIDY1IGZmIDBkIDVlIGMxIGUzIDVmIGU5IDNhIGZlDQpm ZiBmZiA8MGY+IDBiIDY1IDQ4IDhiIDA0IDI1IDQwIGM1IDAwIDAwIDQ4IGM3IDgwIGE4IDExIDAw IDAwIDc5IDAzIDFkwqANClvCoMKgwqA3MS4zNDMxOTVdIFJJUMKgwqBbPGZmZmZmZmZmYTAxZDAz Nzc+XSBpOTE1X3dhaXRfcmVxdWVzdCsweDQxNy8weDhlMA0KW2k5MTVdDQpbwqDCoMKgNzEuMzQz MjQ2XcKgwqBSU1AgPGZmZmY4ODAxNjQzOTc5Mjg+DQpbwqDCoMKgNzEuMzY2Nzg2XSAtLS1bIGVu ZCB0cmFjZSA3MTVkYmFlNzE3ZDIxODdmIF0tLS0NCg0KUmVtZW1iZXIgdGhhdCB0aGlzIG1ha2Vz IHRoZSBkZXNrdG9wIDEwMCUgdW51c2FibGUuDQoNClRoYW5rcywNClBhdWxvDQoNCj4gwqANCj4g wqAJaWYgKGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJlcSkpDQo+IMKgCQlyZXR1cm4gMDsN Cj4gQEAgLTY2Nyw3ICs2NzMsOCBAQCBpbnQgaTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0DQo+ICpyZXEsDQo+IMKgCQlnb3RvIGNvbXBsZXRlOw0KPiDCoA0KPiDC oAlzZXRfY3VycmVudF9zdGF0ZShzdGF0ZSk7DQo+IC0JYWRkX3dhaXRfcXVldWUoJnJlcS0+aTkx NS0+Z3B1X2Vycm9yLndhaXRfcXVldWUsICZyZXNldCk7DQo+ICsJaWYgKGZsYWdzICYgSTkxNV9X QUlUX0xPQ0tFRCkNCj4gKwkJYWRkX3dhaXRfcXVldWUoJnJlcS0+aTkxNS0+Z3B1X2Vycm9yLndh aXRfcXVldWUsDQo+ICZyZXNldCk7DQo+IMKgDQo+IMKgCWludGVsX3dhaXRfaW5pdCgmd2FpdCwg cmVxLT5mZW5jZS5zZXFubyk7DQo+IMKgCWlmIChpbnRlbF9lbmdpbmVfYWRkX3dhaXQocmVxLT5l bmdpbmUsICZ3YWl0KSkNCj4gQEAgLTcwNywxMCArNzE0LDEyIEBAIHdha2V1cDoNCj4gwqAJCWlm IChpOTE1X3NwaW5fcmVxdWVzdChyZXEsIHN0YXRlLCAyKSkNCj4gwqAJCQlicmVhazsNCj4gwqAJ fQ0KPiAtCXJlbW92ZV93YWl0X3F1ZXVlKCZyZXEtPmk5MTUtPmdwdV9lcnJvci53YWl0X3F1ZXVl LCAmcmVzZXQpOw0KPiDCoA0KPiDCoAlpbnRlbF9lbmdpbmVfcmVtb3ZlX3dhaXQocmVxLT5lbmdp bmUsICZ3YWl0KTsNCj4gKwlpZiAoZmxhZ3MgJiBJOTE1X1dBSVRfTE9DS0VEKQ0KPiArCQlyZW1v dmVfd2FpdF9xdWV1ZSgmcmVxLT5pOTE1LT5ncHVfZXJyb3Iud2FpdF9xdWV1ZSwNCj4gJnJlc2V0 KTsNCj4gwqAJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOw0KPiArDQo+IMKgY29t cGxldGU6DQo+IMKgCXRyYWNlX2k5MTVfZ2VtX3JlcXVlc3Rfd2FpdF9lbmQocmVxKTsNCj4gwqAN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaA0K PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaA0KPiBpbmRleCA0Nzk4 OTZlZjc5MWUuLmRlZjM1NzIxZTllZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fcmVxdWVzdC5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlcXVlc3QuaA0KPiBAQCAtMjIyLDcgKzIyMiw4IEBAIGludCBpOTE1X3dhaXRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QNCj4gKnJlcSwNCj4gwqAJCcKgwqDCoMKgwqDC oHM2NCAqdGltZW91dCwNCj4gwqAJCcKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9ycHNfY2xpZW50 ICpycHMpDQo+IMKgCV9fYXR0cmlidXRlX18oKG5vbm51bGwoMSkpKTsNCj4gLSNkZWZpbmUgSTkx NV9XQUlUX0lOVEVSUlVQVElCTEUgQklUKDApDQo+ICsjZGVmaW5lIEk5MTVfV0FJVF9JTlRFUlJV UFRJQkxFCUJJVCgwKQ0KPiArI2RlZmluZSBJOTE1X1dBSVRfTE9DS0VECUJJVCgxKSAvKiBzdHJ1 Y3RfbXV0ZXggaGVsZCwgaGFuZGxlDQo+IEdQVSByZXNldCAqLw0KPiDCoA0KPiDCoHN0YXRpYyBp bmxpbmUgdTMyIGludGVsX2VuZ2luZV9nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcw0K PiAqZW5naW5lKTsNCj4gwqANCj4gQEAgLTU3Niw3ICs1NzcsOSBAQCBpOTE1X2dlbV9hY3RpdmVf d2FpdChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlDQo+ICphY3RpdmUsIHN0cnVjdCBtdXRl eCAqbXV0ZXgpDQo+IMKgCWlmICghcmVxdWVzdCkNCj4gwqAJCXJldHVybiAwOw0KPiDCoA0KPiAt CXJldHVybiBpOTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0LCBJOTE1X1dBSVRfSU5URVJSVVBUSUJM RSwNCj4gTlVMTCwgTlVMTCk7DQo+ICsJcmV0dXJuIGk5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3Qs DQo+ICsJCQkJwqBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSB8DQo+IEk5MTVfV0FJVF9MT0NLRUQs DQo+ICsJCQkJwqBOVUxMLCBOVUxMKTsNCj4gwqB9DQo+IMKgDQo+IMKgLyoqDQo+IEBAIC02Mzks NyArNjQyLDkgQEAgaTkxNV9nZW1fYWN0aXZlX3JldGlyZShzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZl DQo+ICphY3RpdmUsDQo+IMKgCWlmICghcmVxdWVzdCkNCj4gwqAJCXJldHVybiAwOw0KPiDCoA0K PiAtCXJldCA9IGk5MTVfd2FpdF9yZXF1ZXN0KHJlcXVlc3QsIEk5MTVfV0FJVF9JTlRFUlJVUFRJ QkxFLA0KPiBOVUxMLCBOVUxMKTsNCj4gKwlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdChyZXF1ZXN0 LA0KPiArCQkJCUk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFIHwNCj4gSTkxNV9XQUlUX0xPQ0tFRCwN Cj4gKwkJCQlOVUxMLCBOVUxMKTsNCj4gwqAJaWYgKHJldCkNCj4gwqAJCXJldHVybiByZXQ7DQo+ IMKgDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtl ci5jDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYw0KPiBpbmRl eCAzNWEwNWY0YzUxYzEuLjFjMjM3ZDAyZjMwYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9zaHJpbmtlci5jDQo+IEBAIC00MTQsNyArNDE0LDcgQEAgaTkxNV9nZW1fc2hy aW5rZXJfdm1hcChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLA0KPiB1bnNpZ25lZCBsb25nIGV2 ZW50LCB2b2lkICpwdHINCj4gwqAJCXJldHVybiBOT1RJRllfRE9ORTsNCj4gwqANCj4gwqAJLyog Rm9yY2UgZXZlcnl0aGluZyBvbnRvIHRoZSBpbmFjdGl2ZSBsaXN0cyAqLw0KPiAtCXJldCA9IGk5 MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYsIDApOw0KPiArCXJldCA9IGk5MTVfZ2VtX3dh aXRfZm9yX2lkbGUoZGV2X3ByaXYsIEk5MTVfV0FJVF9MT0NLRUQpOw0KPiDCoAlpZiAocmV0KQ0K PiDCoAkJZ290byBvdXQ7DQo+IMKgDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMNCj4gaW5kZXggYTViZjE4ODc3MDY4Li44Njg3YTg0YTdmZjMgMTAwNjQ0DQo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYw0KPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMNCj4gQEAgLTIyMjMsNyArMjIyMyw4 IEBAIHN0YXRpYyBpbnQgd2FpdF9mb3Jfc3BhY2Uoc3RydWN0DQo+IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsIGludCBieXRlcykNCj4gwqAJaWYgKFdBUk5fT04oJnRhcmdldC0+cmluZ19saW5r ID09ICZyaW5nLT5yZXF1ZXN0X2xpc3QpKQ0KPiDCoAkJcmV0dXJuIC1FTk9TUEM7DQo+IMKgDQo+ IC0JcmV0ID0gaTkxNV93YWl0X3JlcXVlc3QodGFyZ2V0LCBJOTE1X1dBSVRfSU5URVJSVVBUSUJM RSwNCj4gKwlyZXQgPSBpOTE1X3dhaXRfcmVxdWVzdCh0YXJnZXQsDQo+ICsJCQkJSTkxNV9XQUlU X0lOVEVSUlVQVElCTEUgfA0KPiBJOTE1X1dBSVRfTE9DS0VELA0KPiDCoAkJCQlOVUxMLCBOT19X QUlUQk9PU1QpOw0KPiDCoAlpZiAocmV0KQ0KPiDCoAkJcmV0dXJuIHJldDsKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==