From mboxrd@z Thu Jan 1 00:00:00 1970 From: "james qian wang (Arm Technology China)" Subject: Re: [PATCH] drm/komeda: Adds error event print functionality Date: Mon, 22 Jul 2019 11:15:12 +0000 Message-ID: <20190722111506.GA8212@jamwan02-TSP300> References: <1561604994-26925-1-git-send-email-lowry.li@arm.com> <20190718131737.GD5942@e110455-lin.cambridge.arm.com> <20190719090816.GA4133@lowry.li@arm.com> <20190719114009.GA16673@e110455-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60056.outbound.protection.outlook.com [40.107.6.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1298289B66 for ; Mon, 22 Jul 2019 11:15:31 +0000 (UTC) In-Reply-To: <20190719114009.GA16673@e110455-lin.cambridge.arm.com> Content-Language: en-US Content-ID: <1AD7968F826E054BBF54E8750A2697DE@eurprd08.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau Cc: nd , Ayan Halder , "airlied@linux.ie" , "Jonathan Chai (Arm Technology China)" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Julien Yin (Arm Technology China)" , "seanpaul@chromium.org" , "Lowry Li (Arm Technology China)" List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBKdWwgMTksIDIwMTkgYXQgMTE6NDA6MTFBTSArMDAwMCwgTGl2aXUgRHVkYXUgd3Jv dGU6DQo+IE9uIEZyaSwgSnVsIDE5LCAyMDE5IGF0IDA5OjA5OjMwQU0gKzAwMDAsIExvd3J5IExp IChBcm0gVGVjaG5vbG9neSBDaGluYSkgd3JvdGU6DQo+ID4gSGkgTGl2aXUsDQo+ID4gDQo+ID4g T24gVGh1LCBKdWwgMTgsIDIwMTkgYXQgMDE6MTc6MzdQTSArMDAwMCwgTGl2aXUgRHVkYXUgd3Jv dGU6DQo+ID4gPiBPbiBUaHUsIEp1biAyNywgMjAxOSBhdCAwNDoxMDozNkFNICswMTAwLCBMb3dy eSBMaSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIHdyb3RlOg0KPiA+ID4gPiBBZGRzIHRvIHByaW50 IHRoZSBldmVudCBtZXNzYWdlIHdoZW4gZXJyb3IgaGFwcGVucyBhbmQgdGhlIHNhbWUgZXZlbnQN Cj4gPiA+ID4gd2lsbCBub3QgYmUgcHJpbnRlZCB1bnRpbCBuZXh0IHZzeW5jLg0KPiA+ID4gPiAN Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTG93cnkgTGkgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8 bG93cnkubGlAYXJtLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxlICAgICAgIHwgICAxICsNCj4gPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rldi5oICAgfCAgMTMgKysNCj4g PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2V2ZW50LmMg fCAxNDQgKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2Fy bS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmMgICB8ICAgMiArDQo+ID4gPiA+ICA0IGZpbGVz IGNoYW5nZWQsIDE2MCBpbnNlcnRpb25zKCspDQo+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZXZlbnQuYw0KPiA+ID4g PiANCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21l ZGEvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL01ha2VmaWxl DQo+ID4gPiA+IGluZGV4IDM4YWE1ODQuLjNmNTNkMmQgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvTWFrZWZpbGUNCj4gPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9NYWtlZmlsZQ0KPiA+ID4gPiBAQCAt Nyw2ICs3LDcgQEAgY2NmbGFncy15IDo9IFwNCj4gPiA+ID4gIGtvbWVkYS15IDo9IFwNCj4gPiA+ ID4gIAlrb21lZGFfZHJ2Lm8gXA0KPiA+ID4gPiAgCWtvbWVkYV9kZXYubyBcDQo+ID4gPiA+ICsJ a29tZWRhX2V2ZW50Lm8gXA0KPiA+ID4gPiAgCWtvbWVkYV9mb3JtYXRfY2Fwcy5vIFwNCj4gPiA+ ID4gIAlrb21lZGFfY29lZmZzLm8gXA0KPiA+ID4gPiAgCWtvbWVkYV9jb2xvcl9tZ210Lm8gXA0K PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9r b21lZGFfZGV2LmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9k ZXYuaA0KPiA+ID4gPiBpbmRleCAwOTZmOWY3Li5lODYzZWMzIDEwMDY0NA0KPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuaA0KPiA+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuaA0K PiA+ID4gPiBAQCAtNDAsNiArNDAsMTcgQEANCj4gPiA+ID4gICNkZWZpbmUgS09NRURBX0VSUl9U VE5HCQkJQklUX1VMTCgzMCkNCj4gPiA+ID4gICNkZWZpbmUgS09NRURBX0VSUl9UVEYJCQlCSVRf VUxMKDMxKQ0KPiA+ID4gPiAgDQo+ID4gPiA+ICsjZGVmaW5lIEtPTUVEQV9FUlJfRVZFTlRTCVwN Cj4gPiA+ID4gKwkoS09NRURBX0VWRU5UX1VSVU4JfCBLT01FREFfRVZFTlRfSUJTWQl8IEtPTUVE QV9FVkVOVF9PVlIgfFwNCj4gPiA+ID4gKwlLT01FREFfRVJSX1RFVE8JCXwgS09NRURBX0VSUl9U RU1SCXwgS09NRURBX0VSUl9USVRSIHxcDQo+ID4gPiA+ICsJS09NRURBX0VSUl9DUEUJCXwgS09N RURBX0VSUl9DRkdFCXwgS09NRURBX0VSUl9BWElFIHxcDQo+ID4gPiA+ICsJS09NRURBX0VSUl9B Q0UwCQl8IEtPTUVEQV9FUlJfQUNFMQl8IEtPTUVEQV9FUlJfQUNFMiB8XA0KPiA+ID4gPiArCUtP TUVEQV9FUlJfQUNFMwkJfCBLT01FREFfRVJSX0RSSUZUVE8JfCBLT01FREFfRVJSX0ZSQU1FVE8g fFwNCj4gPiA+ID4gKwlLT01FREFfRVJSX1pNRQkJfCBLT01FREFfRVJSX01FUlIJfCBLT01FREFf RVJSX1RDRiB8XA0KPiA+ID4gPiArCUtPTUVEQV9FUlJfVFRORwkJfCBLT01FREFfRVJSX1RURikN Cj4gPiA+ID4gKw0KPiA+ID4gPiArI2RlZmluZSBLT01FREFfV0FSTl9FVkVOVFMJS09NRURBX0VS Ul9DU0NFDQo+ID4gPiA+ICsNCj4gPiA+ID4gIC8qIG1hbGlkcCBkZXZpY2UgaWQgKi8NCj4gPiA+ ID4gIGVudW0gew0KPiA+ID4gPiAgCU1BTElfRDcxID0gMCwNCj4gPiA+ID4gQEAgLTIwNyw2ICsy MTgsOCBAQCBzdHJ1Y3Qga29tZWRhX2RldiB7DQo+ID4gPiA+ICANCj4gPiA+ID4gIHN0cnVjdCBr b21lZGFfZGV2ICpkZXZfdG9fbWRldihzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ID4gPiAgDQo+ ID4gPiA+ICt2b2lkIGtvbWVkYV9wcmludF9ldmVudHMoc3RydWN0IGtvbWVkYV9ldmVudHMgKmV2 dHMpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICBpbnQga29tZWRhX2Rldl9yZXN1bWUoc3RydWN0IGtv bWVkYV9kZXYgKm1kZXYpOw0KPiA+ID4gPiAgaW50IGtvbWVkYV9kZXZfc3VzcGVuZChzdHJ1Y3Qg a29tZWRhX2RldiAqbWRldik7DQo+ID4gPiA+ICAjZW5kaWYgLypfS09NRURBX0RFVl9IXyovDQo+ ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tv bWVkYV9ldmVudC5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFf ZXZlbnQuYw0KPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiBpbmRleCAwMDAw MDAwLi4zMDlkYmUyDQo+ID4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZXZlbnQuYw0KPiA+ID4gPiBAQCAt MCwwICsxLDE0NCBAQA0KPiA+ID4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjANCj4gPiA+ID4gKy8qDQo+ID4gPiA+ICsgKiAoQykgQ09QWVJJR0hUIDIwMTkgQVJNIExpbWl0 ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ID4gPiA+ICsgKiBBdXRob3I6IEphbWVzLlFpYW4u V2FuZyA8amFtZXMucWlhbi53YW5nQGFybS5jb20+DQo+ID4gPiA+ICsgKg0KPiA+ID4gPiArICov DQo+ID4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPg0KPiA+ID4gPiArDQo+ID4gPiA+ ICsjaW5jbHVkZSAia29tZWRhX2Rldi5oIg0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdHJ1Y3Qga29t ZWRhX3N0ciB7DQo+ID4gPiA+ICsJY2hhciAqc3RyOw0KPiA+ID4gPiArCXUzMiBzejsNCj4gPiA+ ID4gKwl1MzIgbGVuOw0KPiA+ID4gPiArfTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArLyogcmV0dXJu IDAgb24gc3VjY2VzcywgIDwgMCBvbiBubyBzcGFjZS4NCj4gPiA+ID4gKyAqLw0KPiA+ID4gPiAr c3RhdGljIGludCBrb21lZGFfc3ByaW50ZihzdHJ1Y3Qga29tZWRhX3N0ciAqc3RyLCBjb25zdCBj aGFyICpmbXQsIC4uLikNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKwl2YV9saXN0IGFyZ3M7DQo+ID4g PiA+ICsJaW50IG51bSwgZnJlZV9zejsNCj4gPiA+ID4gKwlpbnQgZXJyOw0KPiA+ID4gPiArDQo+ ID4gPiA+ICsJZnJlZV9zeiA9IHN0ci0+c3ogLSBzdHItPmxlbjsNCj4gPiA+ID4gKwlpZiAoZnJl ZV9zeiA8PSAwKQ0KPiA+ID4gPiArCQlyZXR1cm4gLUVOT1NQQzsNCj4gPiA+ID4gKw0KPiA+ID4g PiArCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwludW0gPSB2c25w cmludGYoc3RyLT5zdHIgKyBzdHItPmxlbiwgZnJlZV9zeiwgZm10LCBhcmdzKTsNCj4gPiA+ID4g Kw0KPiA+ID4gPiArCXZhX2VuZChhcmdzKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCWlmIChudW0g PD0gZnJlZV9zeikgew0KPiA+ID4gPiArCQlzdHItPmxlbiArPSBudW07DQo+ID4gPiA+ICsJCWVy ciA9IDA7DQo+ID4gPiA+ICsJfSBlbHNlIHsNCj4gPiA+ID4gKwkJc3RyLT5sZW4gPSBzdHItPnN6 Ow0KPiA+ID4gPiArCQllcnIgPSAtRU5PU1BDOw0KPiA+ID4gPiArCX0NCj4gPiA+ID4gKw0KPiA+ ID4gPiArCXJldHVybiBlcnI7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRp YyB2b2lkIGV2dF9zcHJpbnRmKHN0cnVjdCBrb21lZGFfc3RyICpzdHIsIHU2NCBldnQsIGNvbnN0 IGNoYXIgKm1zZykNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKwlpZiAoZXZ0KQ0KPiA+ID4gPiArCQlr b21lZGFfc3ByaW50ZihzdHIsIG1zZyk7DQo+ID4gPiA+ICt9DQo+ID4gPiANCj4gPiA+IFdoeSBk byB3ZSBuZWVkIHRoaXMgd3JhcHBlcj8NCj4gPiBUaGUga29tZWRhX3NwcmludGYgaXMgYSBnZW5l cmljIGZ1bmN0aW9uIGFuZCB3aWxsIGJlIHVzZWQgYnkgb3RoZXINCj4gPiBwbGFjZXMsIHdoaWxl IGV2dF9zcHJpbnRmIGlzIHdvcmtpbmcgZm9yIHRoZSBkZXRhaWwgZXZlbnQgbXNnLg0KPiANCj4g WWVhaCwgSSdtIG5vdCBidXlpbmcgdGhpcyBhcmd1bWVudCBhbnkgbW9yZS4gV2Ugc2hvdWxkIG5v dCBjcmVhdGUgbmV3IGZ1bmN0aW9ucw0KPiBqdXN0IGJlY2F1c2Ugd2Ugd2FudCB0byBzYXZlIHR5 cGluZyBvbmUgaWYgKCkgY29uZGl0aW9uLiBldnRfc3ByaW50ZiBkb2VzDQo+IG5vdGhpbmcgd2l0 aCB0aGUgZXh0cmEgZXZ0IGFyZ3VtZW50IG90aGVyIHRoYW4gY2hlY2tpbmcgdGhhdCBpdCBpcyBu b3QgemVyby4NCg0KSGkgTGl2aXUNCg0KQnV0IEkgdGhpbmsgd2UnZCBiZXR0ZXIgdG8gaGF2ZSB0 aGlzIGZ1bmN0aW9uIHdoaWNoIGNhbiByZW1vdmUNCm1hbnkgZHVwbGljYXRlIGlmICgpIGNoZWNr cywgYW5kIG1ha2VzIHRoZSBjb2RlIGVsZWdhbnQgYW5kIGVhc3kgdG8NCnJlYWQuIGFuZCBJIHRo aW5rIHRoYXQgd2h5IHRoZSBjb25jZXB0IG9mIGZ1bmN0aW9uIGhhcyBiZWVuDQppbnRyb2R1Y2Vk Lg0KDQpBbmQgaW4gbGludXggd2UgY2FuIHNlZSBsb3Qgb2YgZnVuY3Rpb25zIG9yIE1BQ1JPIHRo YXQganVzdCBmb3Igc2F2ZSBvbmUNCndvcmQgbGlrZToNCg0KICBzdGF0aWMgaW5saW5lIHZvaWQg Kmt6YWxsb2Moc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQ0KICB7DQoJcmV0dXJuIGttYWxsb2Mo c2l6ZSwgZmxhZ3MgfCBfX0dGUF9aRVJPKTsNCiAgfQ0KDQpBbmQgZm9yIHRoaXMgImlmICgpIGNo ZWNrIiBzcGVjaWZpYywgSSB0aGluayB0aGlzIGlzIGFsc28gdmVyeSBwb3B1bGFyDQppbiBsaW51 eCBsaWtlOg0KDQogIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3JjdV9yZWFkX2xvY2sodm9pZCkNCiAg ew0KIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJFRU1QVF9DT1VOVCkpDQoJCXByZWVtcHRfZGlz YWJsZSgpOw0KICB9DQoNCiAgc3RhdGljIGlubGluZSB2b2lkIF9fcmN1X3JlYWRfdW5sb2NrKHZv aWQpDQogIHsNCglpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJFRU1QVF9DT1VOVCkpDQoJCXByZWVt cHRfZW5hYmxlKCk7DQogIH0NCg0KdGhhbmtzDQpKYW1lcw0KDQo+ID4gDQo+ID4gPiA+ICsNCj4g PiA+ID4gK3N0YXRpYyB2b2lkIGV2dF9zdHIoc3RydWN0IGtvbWVkYV9zdHIgKnN0ciwgdTY0IGV2 ZW50cykNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKwlpZiAoZXZlbnRzID09IDBVTEwpIHsNCj4gPiA+ ID4gKwkJZXZ0X3NwcmludGYoc3RyLCAxLCAiTm9uZSIpOw0KPiA+ID4gPiArCQlyZXR1cm47DQo+ ID4gPiA+ICsJfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsJZXZ0X3NwcmludGYoc3RyLCBldmVudHMg JiBLT01FREFfRVZFTlRfVlNZTkMsICJWU1lOQ3wiKTsNCj4gPiA+ID4gKwlldnRfc3ByaW50Zihz dHIsIGV2ZW50cyAmIEtPTUVEQV9FVkVOVF9GTElQLCAiRkxJUHwiKTsNCj4gPiA+ID4gKwlldnRf c3ByaW50ZihzdHIsIGV2ZW50cyAmIEtPTUVEQV9FVkVOVF9FT1csICJFT1d8Iik7DQo+ID4gPiA+ ICsJZXZ0X3NwcmludGYoc3RyLCBldmVudHMgJiBLT01FREFfRVZFTlRfTU9ERSwgIk9QLU1PREV8 Iik7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlldnRfc3ByaW50ZihzdHIsIGV2ZW50cyAmIEtPTUVE QV9FVkVOVF9VUlVOLCAiVU5ERVJSVU58Iik7DQo+ID4gPiA+ICsJZXZ0X3NwcmludGYoc3RyLCBl dmVudHMgJiBLT01FREFfRVZFTlRfT1ZSLCAiT1ZFUlJVTnwiKTsNCj4gPiA+ID4gKw0KPiA+ID4g PiArCS8qIEdMQiBlcnJvciAqLw0KPiA+ID4gPiArCWV2dF9zcHJpbnRmKHN0ciwgZXZlbnRzICYg S09NRURBX0VSUl9NRVJSLCAiTUVSUnwiKTsNCj4gPiA+ID4gKwlldnRfc3ByaW50ZihzdHIsIGV2 ZW50cyAmIEtPTUVEQV9FUlJfRlJBTUVUTywgIkZSQU1FVE98Iik7DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKwkvKiBET1UgZXJyb3IgKi8NCj4gPiA+ID4gKwlldnRfc3ByaW50ZihzdHIsIGV2ZW50cyAm IEtPTUVEQV9FUlJfRFJJRlRUTywgIkRSSUZUVE98Iik7DQo+ID4gPiA+ICsJZXZ0X3NwcmludGYo c3RyLCBldmVudHMgJiBLT01FREFfRVJSX0ZSQU1FVE8sICJGUkFNRVRPfCIpOw0KPiA+ID4gPiAr CWV2dF9zcHJpbnRmKHN0ciwgZXZlbnRzICYgS09NRURBX0VSUl9URVRPLCAiVEVUT3wiKTsNCj4g PiA+ID4gKwlldnRfc3ByaW50ZihzdHIsIGV2ZW50cyAmIEtPTUVEQV9FUlJfQ1NDRSwgIkNTQ0V8 Iik7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwkvKiBMUFUgZXJyb3JzIG9yIGV2ZW50cyAqLw0KPiA+ ID4gPiArCWV2dF9zcHJpbnRmKHN0ciwgZXZlbnRzICYgS09NRURBX0VWRU5UX0lCU1ksICJJQlNZ fCIpOw0KPiA+ID4gPiArCWV2dF9zcHJpbnRmKHN0ciwgZXZlbnRzICYgS09NRURBX0VSUl9BWElF LCAiQVhJRXwiKTsNCj4gPiA+ID4gKwlldnRfc3ByaW50ZihzdHIsIGV2ZW50cyAmIEtPTUVEQV9F UlJfQUNFMCwgIkFDRTB8Iik7DQo+ID4gPiA+ICsJZXZ0X3NwcmludGYoc3RyLCBldmVudHMgJiBL T01FREFfRVJSX0FDRTEsICJBQ0UxfCIpOw0KPiA+ID4gPiArCWV2dF9zcHJpbnRmKHN0ciwgZXZl bnRzICYgS09NRURBX0VSUl9BQ0UyLCAiQUNFMnwiKTsNCj4gPiA+ID4gKwlldnRfc3ByaW50Zihz dHIsIGV2ZW50cyAmIEtPTUVEQV9FUlJfQUNFMywgIkFDRTN8Iik7DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKwkvKiBMUFUgVEJVIGVycm9ycyovDQo+ID4gPiA+ICsJZXZ0X3NwcmludGYoc3RyLCBldmVu dHMgJiBLT01FREFfRVJSX1RDRiwgIlRDRnwiKTsNCj4gPiA+ID4gKwlldnRfc3ByaW50ZihzdHIs IGV2ZW50cyAmIEtPTUVEQV9FUlJfVFRORywgIlRUTkd8Iik7DQo+ID4gPiA+ICsJZXZ0X3Nwcmlu dGYoc3RyLCBldmVudHMgJiBLT01FREFfRVJSX1RJVFIsICJUSVRSfCIpOw0KPiA+ID4gPiArCWV2 dF9zcHJpbnRmKHN0ciwgZXZlbnRzICYgS09NRURBX0VSUl9URU1SLCAiVEVNUnwiKTsNCj4gPiA+ ID4gKwlldnRfc3ByaW50ZihzdHIsIGV2ZW50cyAmIEtPTUVEQV9FUlJfVFRGLCAiVFRGfCIpOw0K PiA+ID4gPiArDQo+ID4gPiA+ICsJLyogQ1UgZXJyb3JzKi8NCj4gPiA+ID4gKwlldnRfc3ByaW50 ZihzdHIsIGV2ZW50cyAmIEtPTUVEQV9FUlJfQ1BFLCAiQ09QUk9DfCIpOw0KPiA+ID4gPiArCWV2 dF9zcHJpbnRmKHN0ciwgZXZlbnRzICYgS09NRURBX0VSUl9aTUUsICJaTUV8Iik7DQo+ID4gPiA+ ICsJZXZ0X3NwcmludGYoc3RyLCBldmVudHMgJiBLT01FREFfRVJSX0NGR0UsICJDRkdFfCIpOw0K PiA+ID4gPiArCWV2dF9zcHJpbnRmKHN0ciwgZXZlbnRzICYgS09NRURBX0VSUl9URU1SLCAiVEVN UnwiKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCWlmIChzdHItPmxlbiA+IDAgJiYgKHN0ci0+c3Ry W3N0ci0+bGVuIC0gMV0gPT0gJ3wnKSkgew0KPiA+ID4gPiArCQlzdHItPnN0cltzdHItPmxlbiAt IDFdID0gMDsNCj4gPiA+ID4gKwkJc3RyLT5sZW4tLTsNCj4gPiA+ID4gKwl9DQo+ID4gPiA+ICt9 DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRpYyBib29sIGlzX25ld19mcmFtZShzdHJ1Y3Qga29t ZWRhX2V2ZW50cyAqYSkNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKwlyZXR1cm4gKGEtPnBpcGVzWzBd IHwgYS0+cGlwZXNbMV0pICYgS09NRURBX0VWRU5UX0ZMSVA7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ ICsNCj4gPiA+ID4gK3ZvaWQga29tZWRhX3ByaW50X2V2ZW50cyhzdHJ1Y3Qga29tZWRhX2V2ZW50 cyAqZXZ0cykNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKwl1NjQgcHJpbnRfZXZ0cyA9IEtPTUVEQV9F UlJfRVZFTlRTOw0KPiA+ID4gPiArCXN0YXRpYyBib29sIGVuX3ByaW50ID0gdHJ1ZTsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArCS8qIHJlZHVjZSB0aGUgc2FtZSBtc2cgcHJpbnQsIG9ubHkgcHJpbnQg dGhlIGZpcnN0IGV2dCBmb3Igb25lIGZyYW1lICovDQo+ID4gPiA+ICsJaWYgKGV2dHMtPmdsb2Jh bCB8fCBpc19uZXdfZnJhbWUoZXZ0cykpDQo+ID4gPiA+ICsJCWVuX3ByaW50ID0gdHJ1ZTsNCj4g PiA+ID4gKwlpZiAoIWVuX3ByaW50KQ0KPiA+ID4gPiArCQlyZXR1cm47DQo+ID4gPiANCj4gPiA+ IFdoZW4gZG9lcyBlbl9wcmludCBldmVyIGdldCBmYWxzZT8NCj4gPiBPbmNlIHRoZSBldmVudHMg cHJpbnRlZCwgaXQgd2lsbCBiZSBzZXQgZmFsc2UgKHBscyBmaW5kIGF0IHRoZSBsYXN0DQo+ID4g bGluZSBvZiB0aGlzIGZ1bmN0aW9uKS4NCj4gDQo+IFdoYXQgaXMgdGhlIHBvaW50IG9mIG1ha2lu ZyBlbl9wcmludCBhIHN0YXRpYyB2YXJpYWJsZT8gV2UgcHJpbnQgYWxsIHRoZSB0aW1lDQo+IHdo ZW4gd2UgaGF2ZSBhIGdsb2JhbCBldmVudCBhbnl3YXkuDQoNCkhpIExpdml1Og0KDQp8IHdoeSBt YWtlIGVuX3ByaW50IGEgc3RhdGljLg0KDQpDb25zaWRlciB5b3UgY29tbWl0IGEgc2NlbmUgd2hp Y2ggbWF5IGxlYWRzIGEgVU5ERVJVTi4gYW5kIGl0IHdpbGwNCnRyaWdnZXIgSFcgVU5ERVJSVU4g aW4gZXZlcnkgdnN5bmMgcGVyb2lkIHVudGlsbCB0aGlzIHNjZWVuIGhhdmUgYmVlbg0KcmVwbGFj ZSBieSBhbm90aGVyIHNjZW5lLiBmb3IgYSBzY2VuZSBpdCB3aWxsIHRyaWdnZXIgc2FtZSBlcnJv ciBhZ2Fpbg0KYW5kIGFnYWluLiB3ZSBkb24ndCBuZWVkIHByaW50IHRoZW0gYWxsIGZvciBhIHNj ZW5lIG9uZSBtc2cgaXMgZW5vdWdoLg0KDQp8IHdlIHByaW50IGFsbCB0aGUgdGltZSB3aGVuIHdl IGhhdmUgYSBnbG9iYWwgZXZlbnQuDQpTaW5jZSB3ZSBvbmx5IHJlZHVjZSB0aGUgZHVwbGljYXRl IGVycm9yLCBidXQgd2FudCBwcmludCBhbGwgZGlmZmVyZW50IGVycm9yLg0KQW5kIHBlciBvdXIg SFcgZGVzaWduLCB0aGUgZXZlbnQgcmVwb3J0ZWQgYnkgZGlmZmVyZW50IGNvbXBvbmVudC4NCnRo aXMgZ2xvYmFsIGZvciBjb2xsZWN0IHRoZSBHQ1UgZXJyb3IuIHRoZSBwaXBlbGluZV9ldmVudCBp cyBmb3INCkxQVS9DVS9ET1UuIGxpa2UgVU5ERVJVTiB3aGljaCBpcyBvbmx5IERPVSBlcnJvci4N Cg0KYW5kIGN1cnJlbnQgR0NVIG9ubHkgaGF2ZSBvbmUgZXJyb3IgdHlwZTogb3Btb2RlIGNoYW5n ZSBlcnJvciB3aGljaCBvbmx5DQpjYW4gYmUgaGFwcGVuZWQgb24gd2hlbiB3ZSBjYWxsIGNoYW5n ZV9vcG1vZGUgaW4gY3J0Y19lbmFibGUvZGlzYWJsZS4NCg0KU28gZG9uJ3Qgd29ycnksIGdsb2Js IGV2ZW50IHdoaWNoIGNhbiBub3QgbWFrZSBlbl9wcmludCBoYXMgYmVlbiBzZXQgdG8NCnRydWUg aW4gZXZlcnkgaXJxIGhhbmRsaW5nLg0KDQpUaGFua3MNCkphbWVzDQoNCj4gDQo+ID4gPiA+ICsN Cj4gPiA+ID4gKyNpZmRlZiBERUJVRw0KPiA+ID4gPiArCXByaW50X2V2dHMgfD0gS09NRURBX1dB Uk5fRVZFTlRTOw0KPiA+ID4gPiArI2VuZGlmDQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlpZiAoKGV2 dHMtPmdsb2JhbCB8IGV2dHMtPnBpcGVzWzBdIHwgZXZ0cy0+cGlwZXNbMV0pICYgcHJpbnRfZXZ0 cykgew0KPiA+ID4gPiArCQkjZGVmaW5lIFNUUl9TWgkJMTI4DQo+ID4gPiA+ICsJCWNoYXIgbXNn W1NUUl9TWl07DQo+ID4gPiANCj4gPiA+IEkndmUgY291bnRlZCBhYm91dCAyNyBldnRfc3ByaW50 ZigpIGNhbGxzIGluIGV2dF9zdHIoKSBmdW5jdGlvbiwgd2l0aCBhbg0KPiA+ID4gYXZlcmFnZSBv ZiA1IGNoYXJhY3RlcnMgZWFjaCwgc28gdGhhdHMgMTM1IGNoYXJhY3RlcnMgcHJpbnRlZCBpbnRv IGEgYnVmZmVyDQo+ID4gPiB0aGF0IGlzIG9ubHkgMTI4IGJ5dGVzLiBQbGVhc2UgZG9uJ3QgZG8g dGhpcyENCj4gPiBrb21lZGFfc3ByaW50ZigpIHdpbGwgY2hlY2sgdGhlIHNpemUgYW5kIGFsc28g SSB0aG91Z2h0IHRob3NlIGV2dA0KPiA+IHdpbGwgbm90IHBvcHVsYXQgdG9nZXRoZXIuIEJ1dCB5 ZXMsIEknZCBiZXR0ZXIgY2hhbmdlIHRoaXMgdG8gMjU2Lg0KPiA+IFdpbGwgY2hhbmdlIHRoaXMu DQo+ID4gDQo+ID4gPiA+ICsJCXN0cnVjdCBrb21lZGFfc3RyIHN0cjsNCj4gPiA+ID4gKw0KPiA+ ID4gPiArCQlzdHIuc3RyID0gbXNnOw0KPiA+ID4gPiArCQlzdHIuc3ogID0gU1RSX1NaOw0KPiA+ ID4gPiArCQlzdHIubGVuID0gMDsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCQlrb21lZGFfc3ByaW50 Zigmc3RyLCAiZ2N1OiAiKTsNCj4gPiA+ID4gKwkJZXZ0X3N0cigmc3RyLCBldnRzLT5nbG9iYWwp Ow0KPiA+ID4gPiArCQlrb21lZGFfc3ByaW50Zigmc3RyLCAiLCBwaXBlc1swXTogIik7DQo+ID4g PiA+ICsJCWV2dF9zdHIoJnN0ciwgZXZ0cy0+cGlwZXNbMF0pOw0KPiA+ID4gPiArCQlrb21lZGFf c3ByaW50Zigmc3RyLCAiLCBwaXBlc1sxXTogIik7DQo+ID4gPiA+ICsJCWV2dF9zdHIoJnN0ciwg ZXZ0cy0+cGlwZXNbMV0pOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJCURSTV9FUlJPUigiZXJyIGRl dGVjdDogJXNcbiIsIG1zZyk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwkJZW5fcHJpbnQgPSBmYWxz ZTsNCj4gPiA+ID4gKwl9DQo+ID4gPiA+ICt9DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5jDQo+ID4gPiA+IGluZGV4IDY0N2JjZTUu LjE0NjJiYWMgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxh eS9rb21lZGEva29tZWRhX2ttcy5jDQo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0v ZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5jDQo+ID4gPiA+IEBAIC00Nyw2ICs0Nyw4IEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCBrb21lZGFfa21zX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRh dGEpDQo+ID4gPiA+ICAJbWVtc2V0KCZldnRzLCAwLCBzaXplb2YoZXZ0cykpOw0KPiA+ID4gPiAg CXN0YXR1cyA9IG1kZXYtPmZ1bmNzLT5pcnFfaGFuZGxlcihtZGV2LCAmZXZ0cyk7DQo+ID4gPiA+ ICANCj4gPiA+ID4gKwlrb21lZGFfcHJpbnRfZXZlbnRzKCZldnRzKTsNCj4gPiA+IA0KPiA+ID4g Q2FsbGluZyB0aGlzIGZ1bmN0aW9uIGZyb20gdGhlIElSUSBoYW5kbGVyIGlzIGEgYmFkIGlkZWEu IFdlIHNob3VsZCB1c2UgZGVidWdmcw0KPiA+ID4gaWYgeW91IHJlYWxseSB3YW50IHRvIGhhdmUg YSB0cmFjZSBvZiB0aGUgZXZlbnRzLCBidXQgSSBwZXJzb25hbGx5IGRvbid0IHNlZQ0KPiA+ID4g dmFsdWUgaW4gaGF2aW5nIHRoaXMgZnVuY3Rpb25hbGl0eSBpbiB0aGUga2VybmVsIGF0IGFsbC4g WW91IGNhbiBleHBvc2UgdGhlDQo+ID4gPiB2YWx1ZSBvZiB0aGUgZXZ0cy0+Z2xvYmFsIGFuZCBl dnRzLT5waXBlc1tdIGFzIGludGVnZXJzIGFuZCBkZWNvZGUgdGhhdCBpbg0KPiA+ID4gdXNlcnNw YWNlIG9yIGFzIGEgZGVidWdmcyBlbnRyeS4NCj4gPiA+IA0KPiA+ID4gQmVzdCByZWdhcmRzLA0K PiA+ID4gTGl2aXUNCj4gPiANCj4gPiBUaGUgbmFtZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG1pc2xl YWRpbmcsIGJ1dCB0aGlzIGlzIHByaW50aW5nIG91dCB0aGUNCj4gPiBoYXJkd2FyZSBkZXRlY3Rl ZCBlcnJvcnMsIGZyb20gd2hpY2ggd2UgY2FuIGtub3cgZGlyZWN0bHkgb25jZSB0aGUNCj4gPiBl cnJvcnMgaGFwcGVuZWQgb24gdGhlIGhhcmR3YXJlLiBMaWtlIGlmIHRoZSBkcml2ZXIgY29kZSB3 YXMgYXQNCj4gPiBicmluZy11cCBzdGFnZSwgdGhlIGxvZ3MgZnJvbSB0aGlzIGxheWVyIGlzIGhl bHBmdWwuIFNvIGNhbiB3ZSBrZWVwDQo+ID4gdGhpcz8NCj4gDQo+IFdlIHNob3VsZCBwcm9iYWJs eSBqdXN0IGNvbGxlY3QgdGhlIGdsb2JhbCBhbmQgcGlwZXMgdmFsdWVzIGFuZCBleHBvc2UNCj4g dGhlbSB0byB1c2Vyc3BhY2Ugc28gdGhhdCB0aGUgcHJpbnRpbmcgYW5kIGRlY29kaW5nIG9mIHRo ZSBtZXNzYWdlcyBoYXBwZW5zDQo+IHRoZXJlLg0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiBMaXZp dQ0KDQpIaSBMaXZpdToNCg0KQW55IHNwZWNpYWwgcmVzb25zLg0KDQpTaW5jZSBzdWNoIGVycm9y IHByaW50IGlzIG5vdCBvbmx5IHdhbnRlZCBieSB1cywgbW9zdGx5IGl0IGlzIHJlcXVpcmVkDQph bmQgdXNlZCBieSBvdXIgY3VzdG9tZXIgdG8gZWFzaWx5IGNhcHR1cmUgdGhlIHByb2JsZW0uDQpJ ZiBubyBzcGVjaWFsIHJlYXNvbnMsIEkgd2FudCB0byBrZWVwIGl0IGZvciBhdm9pZGluZyB0aGUg Y29tcGxhaW50DQpmcm9tIG91ciBjdXN0b21lci4gDQoNClRoYW5rcw0KSmFtZXMNCj4gDQo+ID4g DQo+ID4gQmVzdCByZWdhcmRzLA0KPiA+IExvd3J5DQo+ID4gDQo+ID4gPiA+ICsNCj4gPiA+ID4g IAkvKiBOb3RpZnkgdGhlIGNydGMgdG8gaGFuZGxlIHRoZSBldmVudHMgKi8NCj4gPiA+ID4gIAlm b3IgKGkgPSAwOyBpIDwga21zLT5uX2NydGNzOyBpKyspDQo+ID4gPiA+ICAJCWtvbWVkYV9jcnRj X2hhbmRsZV9ldmVudCgma21zLT5jcnRjc1tpXSwgJmV2dHMpOw0KPiA+ID4gPiAtLSANCj4gPiA+ ID4gMS45LjENCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IC0tIA0KPiA+ID4gPT09PT09PT09PT09 PT09PT09PT0NCj4gPiA+IHwgSSB3b3VsZCBsaWtlIHRvIHwNCj4gPiA+IHwgZml4IHRoZSB3b3Js ZCwgIHwNCj4gPiA+IHwgYnV0IHRoZXkncmUgbm90IHwNCj4gPiA+IHwgZ2l2aW5nIG1lIHRoZSAg IHwNCj4gPiA+ICBcIHNvdXJjZSBjb2RlISAgLw0KPiA+ID4gICAtLS0tLS0tLS0tLS0tLS0NCj4g PiA+ICAgICDCr1xfKOODhClfL8KvDQo+ID4gDQo+ID4gLS0gDQo+ID4gUmVnYXJkcywNCj4gPiBM b3dyeQ0KPiANCj4gLS0gDQo+ID09PT09PT09PT09PT09PT09PT09DQo+IHwgSSB3b3VsZCBsaWtl IHRvIHwNCj4gfCBmaXggdGhlIHdvcmxkLCAgfA0KPiB8IGJ1dCB0aGV5J3JlIG5vdCB8DQo+IHwg Z2l2aW5nIG1lIHRoZSAgIHwNCj4gIFwgc291cmNlIGNvZGUhICAvDQo+ICAgLS0tLS0tLS0tLS0t LS0tDQo+ICAgICDCr1xfKOODhClfL8KvDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=