From mboxrd@z Thu Jan 1 00:00:00 1970 From: "james qian wang (Arm Technology China)" Subject: Re: [PATCH] drm/komeda: Added AFBC support for komeda driver Date: Tue, 21 May 2019 08:45:58 +0000 Message-ID: <20190521084552.GA20625@james-ThinkStation-P300> References: <20190404110552.15778-1-james.qian.wang@arm.com> <20190516135748.GC1372@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50056.outbound.protection.outlook.com [40.107.5.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8644D89206 for ; Tue, 21 May 2019 08:46:02 +0000 (UTC) In-Reply-To: <20190516135748.GC1372@arm.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ayan Halder Cc: nd , "Tiannan Zhu (Arm Technology China)" , "airlied@linux.ie" , Liviu Dudau , "Jonathan Chai (Arm Technology China)" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Julien Yin (Arm Technology China)" , "Yiqi Kang (Arm Technology China)" , "thomas Sun (Arm Technology China)" , "Lowry Li (Arm Technology China)" , "sean@poorly.run" List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXkgMTYsIDIwMTkgYXQgMDk6NTc6NDlQTSArMDgwMCwgQXlhbiBIYWxkZXIgd3Jv dGU6Cj4gT24gVGh1LCBBcHIgMDQsIDIwMTkgYXQgMTI6MDY6MTRQTSArMDEwMCwgamFtZXMgcWlh biB3YW5nIChBcm0gVGVjaG5vbG9neSBDaGluYSkgd3JvdGU6Cj4gPiBGb3Igc3VwcG9ydGluZyBB RkJDOgo+ID4gMS4gQ2hlY2sgaWYgdGhlIHVzZXIgcmVxdWVzdGVkIG1vZGlmaWVyIGNhbiBiZSBz dXBwb3J0ZWQgYnkgZGlzcGxheSBIVy4KPiA+IDIuIENoZWNrIHRoZSBvYmotPnNpemUgd2l0aCBB RkJDJ3MgcmVxdWlyZW1lbnQuCj4gPiAzLiBDb25maWd1cmUgSFcgYWNjb3JkaW5nIHRvIHRoZSBt b2RpZmllciAoYWZiYyBmZWF0dXJlcykKPiBDYW4gd2UgaGF2ZSBhIGJpdCBtb3JlIGRldGFpbGVk IGNvbW1pdCBtZXNzYWdlIGxpc3RpbmcgdGhlIHZhcmlvdXMKPiBjb25zdHJhaW50cyAoYWJvdXQg d2hpY2ggY29tYmluYXRpb24gb2YgbW9kaWZpZXJzLCBmb3JtYXQgYW5kIGJsb2NrCj4gc2l6ZXMg YXJlIHZhbGlkKSA/CgotIEZpcnN0IGZvciB0aGUgYWNjZXB0YWJsZSBjb21iaW5hdGlvbiBvZiBt b2RpZmllcnMgZm9yIHRoZSBzcGVjaWZpYyBmb3JtYXQKICB3aGljaCBpcyBkZXNyaWJlZCBieSBr b21lZGEgZm9ybWF0IGhhbmRsaW5nIHBhdGNoIAogIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNr dG9wLm9yZy9wYXRjaC8yNzQwNTcvP3Nlcmllcz01NDY4MSZyZXY9MQoKICBhbmQgdGhlIHN0cnVj dCBrb21lZGFfZm9ybWF0X2NhcHMgaGFzIGEgZGV0YWlsZWQgZG9jIGluZm9ybWF0aW9uLiAgCgo+ ID4gCj4gPiBUaGlzIHBhdGNoIGRlcGVuZHMgb246Cj4gPiAtIGh0dHBzOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9zZXJpZXMvNTQ0NDgvCj4gPiAtIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVk ZXNrdG9wLm9yZy9zZXJpZXMvNTQ0NDkvCj4gPiAtIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNr dG9wLm9yZy9zZXJpZXMvNTQ0NTAvCj4gPiAtIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9w Lm9yZy9zZXJpZXMvNTg5NzYvCj4gPiAtIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9y Zy9zZXJpZXMvNTkwMDAvCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEphbWVzIFFpYW4gV2FuZyAo QXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxqYW1lcy5xaWFuLndhbmdAYXJtLmNvbT4KPiA+IC0tLQo+ ID4gIC4uLi9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3MV9jb21wb25lbnQuYyAgICB8IDM5ICsr KysrKysrKysKPiA+ICAuLi4vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mb3JtYXRfY2Fwcy5j ICAgfCA1MyArKysrKysrKysrKysrCj4gPiAgLi4uL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFf Zm9ybWF0X2NhcHMuaCAgIHwgIDUgKysKPiA+ICAuLi4vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVk YV9mcmFtZWJ1ZmZlci5jICAgfCA3NCArKysrKysrKysrKysrKysrKystCj4gPiAgLi4uL2FybS9k aXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuaCAgIHwgIDQgKwo+ID4gIC4uLi9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmMgICB8ICAyICstCj4gPiAgLi4uL2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmggIHwgIDQgKwo+ID4gIC4uLi9k aXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYyAgICB8IDE4ICsrKystCj4gPiAg Li4uL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9wbGFuZS5jIHwgMTUgKysrLQo+ ID4gIDkgZmlsZXMgY2hhbmdlZCwgMjA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4g PiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3 MS9kNzFfY29tcG9uZW50LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2Q3 MS9kNzFfY29tcG9uZW50LmMKPiA+IGluZGV4IGI1ODJhZmNmOTIxMC4uMzNjYTE3MThiNWNkIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcx X2NvbXBvbmVudC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRh L2Q3MS9kNzFfY29tcG9uZW50LmMKPiA+IEBAIC0xMzQsNiArMTM0LDI3IEBAIHN0YXRpYyB1MzIg dG9fcm90X2N0cmwodTMyIHJvdCkKPiA+ICAJcmV0dXJuIGxyX2N0cmw7Cj4gPiAgfQo+ID4gIAo+ ID4gK3N0YXRpYyB1MzIgdG9fYWRfY3RybCh1NjQgbW9kaWZpZXIpCj4gPiArewo+ID4gKwl1MzIg YWZiY19jdHJsID0gQURfQUVOOwo+ID4gKwo+ID4gKwlpZiAoIW1vZGlmaWVyKQo+ID4gKwkJcmV0 dXJuIDA7Cj4gPiArCj4gPiArCWlmICgobW9kaWZpZXIgJiBBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tf U0laRV9NQVNLKSA9PQo+ID4gKwkgICAgQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJWkVfMzJ4OCkK PiA+ICsJCWFmYmNfY3RybCB8PSBBRF9XQjsKPiA+ICsKPiA+ICsJaWYgKG1vZGlmaWVyICYgQUZC Q19GT1JNQVRfTU9EX1lUUikKPiA+ICsJCWFmYmNfY3RybCB8PSBBRF9ZVDsKPiA+ICsJaWYgKG1v ZGlmaWVyICYgQUZCQ19GT1JNQVRfTU9EX1NQTElUKQo+ID4gKwkJYWZiY19jdHJsIHw9IEFEX0JT Owo+ID4gKwlpZiAobW9kaWZpZXIgJiBBRkJDX0ZPUk1BVF9NT0RfVElMRUQpCj4gPiArCQlhZmJj X2N0cmwgfD0gQURfVEg7Cj4gPiArCj4gPiArCXJldHVybiBhZmJjX2N0cmw7Cj4gPiArfQo+ID4g Kwo+ID4gIHN0YXRpYyBpbmxpbmUgdTMyIHRvX2Q3MV9pbnB1dF9pZChzdHJ1Y3Qga29tZWRhX2Nv bXBvbmVudF9vdXRwdXQgKm91dHB1dCkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBrb21lZGFfY29tcG9u ZW50ICpjb21wID0gb3V0cHV0LT5jb21wb25lbnQ7Cj4gPiBAQCAtMTczLDYgKzE5NCwyNCBAQCBz dGF0aWMgdm9pZCBkNzFfbGF5ZXJfdXBkYXRlKHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICpjLAo+ ID4gIAkJCSAgICAgICBmYi0+cGl0Y2hlc1tpXSAmIDB4RkZGRik7Cj4gPiAgCX0KPiA+ICAKPiA+ ICsJbWFsaWRwX3dyaXRlMzIocmVnLCBBRF9DT05UUk9MLCB0b19hZF9jdHJsKGZiLT5tb2RpZmll cikpOwo+ID4gKwlpZiAoZmItPm1vZGlmaWVyKSB7Cj4gPiArCQl1NjQgYWRkcjsKPiA+ICsKPiA+ ICsJCW1hbGlkcF93cml0ZTMyKHJlZywgTEFZRVJfQURfSF9DUk9QLCBIVl9DUk9QKHN0LT5hZmJj X2Nyb3BfbCwKPiA+ICsJCQkJCQkJICAgICBzdC0+YWZiY19jcm9wX3IpKTsKPiA+ICsJCW1hbGlk cF93cml0ZTMyKHJlZywgTEFZRVJfQURfVl9DUk9QLCBIVl9DUk9QKHN0LT5hZmJjX2Nyb3BfdCwK PiA+ICsJCQkJCQkJICAgICBzdC0+YWZiY19jcm9wX2IpKTsKPiA+ICsJCS8qIGFmYmMgMS4yIHdh bnRzIHBheWxvYWQsIGFmYmMgMS4wLzEuMSB3YW50cyBlbmRfYWRkciAqLwo+ID4gKwkJaWYgKGZi LT5tb2RpZmllciAmIEFGQkNfRk9STUFUX01PRF9USUxFRCkKPiA+ICsJCQlhZGRyID0gc3QtPmFk ZHJbMF0gKyBrZmItPm9mZnNldF9wYXlsb2FkOwo+ID4gKwkJZWxzZQo+ID4gKwkJCWFkZHIgPSBz dC0+YWRkclswXSArIGtmYi0+YWZiY19zaXplIC0gMTsKPiA+ICsKPiA+ICsJCW1hbGlkcF93cml0 ZTMyKHJlZywgQkxLX1AxX1BUUl9MT1csIGxvd2VyXzMyX2JpdHMoYWRkcikpOwo+ID4gKwkJbWFs aWRwX3dyaXRlMzIocmVnLCBCTEtfUDFfUFRSX0hJR0gsIHVwcGVyXzMyX2JpdHMoYWRkcikpOwo+ ID4gKwl9Cj4gPiArCj4gPiAgCW1hbGlkcF93cml0ZTMyKHJlZywgTEFZRVJfRk1ULCBrZmItPmZv cm1hdF9jYXBzLT5od19pZCk7Cj4gPiAgCW1hbGlkcF93cml0ZTMyKHJlZywgQkxLX0lOX1NJWkUs IEhWX1NJWkUoc3QtPmhzaXplLCBzdC0+dnNpemUpKTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mb3JtYXRfY2Fwcy5jIGIv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZm9ybWF0X2NhcHMuYwo+ ID4gaW5kZXggMWUxN2JkNjEwN2E0Li5iMjE5NTE0MmUzZjMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mb3JtYXRfY2Fwcy5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9mb3JtYXRfY2Fw cy5jCj4gPiBAQCAtMzUsNiArMzUsNTkgQEAga29tZWRhX2dldF9mb3JtYXRfY2FwcyhzdHJ1Y3Qg a29tZWRhX2Zvcm1hdF9jYXBzX3RhYmxlICp0YWJsZSwKPiA+ICAJcmV0dXJuIE5VTEw7Cj4gPiAg fQo+ID4gIAo+ID4gKy8qIFR3byBhc3N1bXB0aW9ucwo+ID4gKyAqIDEuIFJHQiBhbHdheXMgaGFz IFlUUgo+ID4gKyAqIDIuIFRpbGVkIFJHQiBhbHdheXMgaGFzIFNDCj4gPiArICovCj4gPiArdTY0 IGtvbWVkYV9zdXBwb3J0ZWRfbW9kaWZpZXJzW10gPSB7Cj4gPiArCS8qIEFGQkNfMTZ4MTYgKyBm ZWF0dXJlczogWVVWK1JHQiBib3RoICovCj4gPiArCUFGQkNfMTZ4MTYoMCksCj4gPiArCS8qIFNQ QVJTRSAqLwo+ID4gKwlBRkJDXzE2eDE2KF9TUEFSU0UpLAo+ID4gKwkvKiBZVFIgKyAoU1BBUlNF KSAqLwo+ID4gKwlBRkJDXzE2eDE2KF9ZVFIgfCBfU1BBUlNFKSwKPiA+ICsJQUZCQ18xNngxNihf WVRSKSwKPiA+ICsJLyogU1BMSVQgKyBTUEFSU0UgKyBZVFIgUkdCIG9ubHkgKi8KPiA+ICsJLyog c3BsaXQgbW9kZSBpcyBvbmx5IGFsbG93ZWQgZm9yIHNwYXJzZSBtb2RlICovCj4gPiArCUFGQkNf MTZ4MTYoX1NQTElUIHwgX1NQQVJTRSB8IF9ZVFIpLAo+ID4gKwkvKiBUSUxFRCArIChTUEFSU0Up ICovCj4gPiArCS8qIFRJTEVEIFlVViBmb3JtYXQgb25seSAqLwo+ID4gKwlBRkJDXzE2eDE2KF9U SUxFRCB8IF9TUEFSU0UpLAo+ID4gKwlBRkJDXzE2eDE2KF9USUxFRCksCj4gPiArCS8qIFRJTEVE ICsgU0MgKyAoU1BMSVQrU1BBUlNFIHwgU1BBUlNFKSArIChZVFIpICovCj4gPiArCUFGQkNfMTZ4 MTYoX1RJTEVEIHwgX1NDIHwgX1NQTElUIHwgX1NQQVJTRSB8IF9ZVFIpLAo+ID4gKwlBRkJDXzE2 eDE2KF9USUxFRCB8IF9TQyB8IF9TUEFSU0UgfCBfWVRSKSwKPiA+ICsJQUZCQ18xNngxNihfVElM RUQgfCBfU0MgfCBfWVRSKSwKPiA+ICsJLyogQUZCQ18zMng4ICsgZmVhdHVyZXM6IHdoaWNoIGFy ZSBSR0IgZm9ybWF0cyBvbmx5ICovCj4gPiArCS8qIFlUUiArIChTUEFSU0UpICovCj4gPiArCUFG QkNfMzJ4OChfWVRSIHwgX1NQQVJTRSksCj4gPiArCUFGQkNfMzJ4OChfWVRSKSwKPiA+ICsJLyog U1BMSVQgKyBTUEFSU0UgKyAoWVRSKSAqLwo+ID4gKwkvKiBzcGxpdCBtb2RlIGlzIG9ubHkgYWxs b3dlZCBmb3Igc3BhcnNlIG1vZGUgKi8KPiA+ICsJQUZCQ18zMng4KF9TUExJVCB8IF9TUEFSU0Ug fCBfWVRSKSwKPiA+ICsJLyogVElMRUQgKyBTQyArIChTUExJVCtTUEFSU0UgfCBTUEFSU0UpICsg WVRSICovCj4gPiArCUFGQkNfMzJ4OChfVElMRUQgfCBfU0MgfCBfU1BMSVQgfCBfU1BBUlNFIHwg X1lUUiksCj4gPiArCUFGQkNfMzJ4OChfVElMRUQgfCBfU0MgfCBfU1BBUlNFIHwgX1lUUiksCj4g PiArCUFGQkNfMzJ4OChfVElMRUQgfCBfU0MgfCBfWVRSKSwKPiA+ICsJRFJNX0ZPUk1BVF9NT0Rf TElORUFSLAo+ID4gKwlEUk1fRk9STUFUX01PRF9JTlZBTElECj4gPiArfTsKPiA+ICsKPiA+ICti b29sIGtvbWVkYV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3Qga29tZWRhX2Zvcm1hdF9jYXBz X3RhYmxlICp0YWJsZSwKPiA+ICsJCQkJIHUzMiBsYXllcl90eXBlLCB1MzIgZm91cmNjLCB1NjQg bW9kaWZpZXIpCj4gPiArewo+ID4gKwljb25zdCBzdHJ1Y3Qga29tZWRhX2Zvcm1hdF9jYXBzICpj YXBzOwo+ID4gKwo+IERvIHdlIGhhdmUgYSBOVUxMIGNoZWNrIG9uICd0YWJsZScgYW55d2hlcmU/ IEkgc2VlIGl0IGdldHMKPiBkZXJlZmVyZW5jZWQgaW4gdGhlIGZ1bmN0aW9uIGNhbGwgYmVsb3cu CgpObyBuZWVkIGNoZWNrLCBzaW5jZSB0YWJsZSBpcyBlbWJlYmJlZCBpbiBrb21lZGFfZGV2LCB3 aGljaCBpcyAKa29tZWRhX2RldiBpcyByZWZlcmVuY2VkIGJ5ICZtZGV2LT50YWJsZS4KCkFueSBk ZXJlZmVyZW5jZWQgc2hvdWxkIGJlIGEgYnVnLCBjYW4geW91IHBvaW50IG1lIHRoZSBwbGFjZS4K Cj4gPiArCWNhcHMgPSBrb21lZGFfZ2V0X2Zvcm1hdF9jYXBzKHRhYmxlLCBmb3VyY2MsIG1vZGlm aWVyKTsKPiA+ICsJaWYgKCFjYXBzKQo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwlp ZiAoIShjYXBzLT5zdXBwb3J0ZWRfbGF5ZXJfdHlwZXMgJiBsYXllcl90eXBlKSkKPiA+ICsJCXJl dHVybiBmYWxzZTsKPiA+ICsKPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiArfQo+ID4gKwo+ID4gIHUz MiAqa29tZWRhX2dldF9sYXllcl9mb3VyY2NfbGlzdChzdHJ1Y3Qga29tZWRhX2Zvcm1hdF9jYXBz X3RhYmxlICp0YWJsZSwKPiA+ICAJCQkJICB1MzIgbGF5ZXJfdHlwZSwgdTMyICpuX2ZtdHMpCj4g PiAgewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX2Zvcm1hdF9jYXBzLmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRh L2tvbWVkYV9mb3JtYXRfY2Fwcy5oCj4gPiBpbmRleCA2MGYzOWU3N2IwOTguLmJjM2IyZGYzNjFi OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29t ZWRhX2Zvcm1hdF9jYXBzLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9r b21lZGEva29tZWRhX2Zvcm1hdF9jYXBzLmgKPiA+IEBAIC03Nyw2ICs3Nyw4IEBAIHN0cnVjdCBr b21lZGFfZm9ybWF0X2NhcHNfdGFibGUgewo+ID4gIAljb25zdCBzdHJ1Y3Qga29tZWRhX2Zvcm1h dF9jYXBzICpmb3JtYXRfY2FwczsKPiA+ICB9Owo+ID4gIAo+ID4gK2V4dGVybiB1NjQga29tZWRh X3N1cHBvcnRlZF9tb2RpZmllcnNbXTsKPiA+ICsKPiA+ICBjb25zdCBzdHJ1Y3Qga29tZWRhX2Zv cm1hdF9jYXBzICoKPiA+ICBrb21lZGFfZ2V0X2Zvcm1hdF9jYXBzKHN0cnVjdCBrb21lZGFfZm9y bWF0X2NhcHNfdGFibGUgKnRhYmxlLAo+ID4gIAkJICAgICAgIHUzMiBmb3VyY2MsIHU2NCBtb2Rp Zmllcik7Cj4gPiBAQCAtODYsNCArODgsNyBAQCB1MzIgKmtvbWVkYV9nZXRfbGF5ZXJfZm91cmNj X2xpc3Qoc3RydWN0IGtvbWVkYV9mb3JtYXRfY2Fwc190YWJsZSAqdGFibGUsCj4gPiAgCj4gPiAg dm9pZCBrb21lZGFfcHV0X2ZvdXJjY19saXN0KHUzMiAqZm91cmNjX2xpc3QpOwo+ID4gIAo+ID4g K2Jvb2wga29tZWRhX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHN0cnVjdCBrb21lZGFfZm9ybWF0X2Nh cHNfdGFibGUgKnRhYmxlLAo+ID4gKwkJCQkgdTMyIGxheWVyX3R5cGUsIHUzMiBmb3VyY2MsIHU2 NCBtb2RpZmllcik7Cj4gPiArCj4gPiAgI2VuZGlmCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVmZmVyLmMKPiA+IGluZGV4 IDRkODE2MGNmMDljMy4uZjg0MmM4ODZjNzNjIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIuYwo+ID4g QEAgLTM2LDYgKzM2LDc1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1 bmNzIGtvbWVkYV9mYl9mdW5jcyA9IHsKPiA+ICAJLmNyZWF0ZV9oYW5kbGUJPSBrb21lZGFfZmJf Y3JlYXRlX2hhbmRsZSwKPiA+ICB9Owo+ID4gIAo+ID4gK3N0YXRpYyBpbnQKPiA+ICtrb21lZGFf ZmJfYWZiY19zaXplX2NoZWNrKHN0cnVjdCBrb21lZGFfZmIgKmtmYiwgc3RydWN0IGRybV9maWxl ICpmaWxlLAo+ID4gKwkJCSAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKm1vZGVfY21k KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSAma2ZiLT5iYXNlOwo+ ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZvID0gZmItPmZvcm1hdDsKPiA+ ICsJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Cj4gPiArCXUzMiBhbGlnbm1lbnRfdyA9IDAs IGFsaWdubWVudF9oID0gMCwgYWxpZ25tZW50X2hlYWRlcjsKPiA+ICsJdTMyIG5fYmxvY2tzID0g MCwgbWluX3NpemUgPSAwOwo+ID4gKwo+ID4gKwlvYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAo ZmlsZSwgbW9kZV9jbWQtPmhhbmRsZXNbMF0pOwo+ID4gKwlpZiAoIW9iaikgewo+ID4gKwkJRFJN X0RFQlVHX0tNUygiRmFpbGVkIHRvIGxvb2t1cCBHRU0gb2JqZWN0XG4iKTsKPiA+ICsJCXJldHVy biAtRU5PRU5UOwo+ID4gKwl9Cj4gPiArCj4gPiArCXN3aXRjaCAoZmItPm1vZGlmaWVyICYgQUZC Q19GT1JNQVRfTU9EX0JMT0NLX1NJWkVfTUFTSykgewo+ID4gKwljYXNlIEFGQkNfRk9STUFUX01P RF9CTE9DS19TSVpFXzMyeDg6Cj4gPiArCQlhbGlnbm1lbnRfdyA9IDMyOwo+ID4gKwkJYWxpZ25t ZW50X2ggPSA4Owo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2UgQUZCQ19GT1JNQVRfTU9EX0JMT0NL X1NJWkVfMTZ4MTY6Cj4gPiArCQlhbGlnbm1lbnRfdyA9IDE2Owo+ID4gKwkJYWxpZ25tZW50X2gg PSAxNjsKPiA+ICsJCWJyZWFrOwo+ID4gKwlkZWZhdWx0Ogo+IENhbiB3ZSBoYXZlIHNvbWV0aGlu ZyBsaWtlIGEgd2FybiBoZXJlID8KCndpbGwgYWRkIGEgV0FSTiBoZXJlLgoKPiA+ICsJCWJyZWFr Owo+ID4gKwl9Cj4gPiArCj4gPiArCS8qIHRpbGVkIGhlYWRlciBhZmJjICovCj4gPiArCWlmIChm Yi0+bW9kaWZpZXIgJiBBRkJDX0ZPUk1BVF9NT0RfVElMRUQpIHsKPiA+ICsJCWFsaWdubWVudF93 ICo9IEFGQkNfVEhfTEFZT1VUX0FMSUdOTUVOVDsKPiA+ICsJCWFsaWdubWVudF9oICo9IEFGQkNf VEhfTEFZT1VUX0FMSUdOTUVOVDsKPiA+ICsJCWFsaWdubWVudF9oZWFkZXIgPSBBRkJDX1RIX0JP RFlfU1RBUlRfQUxJR05NRU5UOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJYWxpZ25tZW50X2hlYWRl ciA9IEFGQkNfQk9EWV9TVEFSVF9BTElHTk1FTlQ7Cj4gPiArCX0KPiA+ICsKPiA+ICsJa2ZiLT5h bGlnbmVkX3cgPSBBTElHTihmYi0+d2lkdGgsIGFsaWdubWVudF93KTsKPiA+ICsJa2ZiLT5hbGln bmVkX2ggPSBBTElHTihmYi0+aGVpZ2h0LCBhbGlnbm1lbnRfaCk7Cj4gPiArCj4gPiArCWlmIChm Yi0+b2Zmc2V0c1swXSAlIGFsaWdubWVudF9oZWFkZXIpIHsKPiA+ICsJCURSTV9ERUJVR19LTVMo ImFmYmMgb2Zmc2V0IGFsaWdubWVudCBjaGVjayBmYWlsZWQuXG4iKTsKPiA+ICsJCWdvdG8gYWZi Y191bnJlZmVyZW5jZTsKPiA+ICsJfQo+ID4gKwo+ID4gKwluX2Jsb2NrcyA9IChrZmItPmFsaWdu ZWRfdyAqIGtmYi0+YWxpZ25lZF9oKSAvIEFGQkNfU1VQRVJCTEtfUElYRUxTOwo+ID4gKwlrZmIt Pm9mZnNldF9wYXlsb2FkID0gQUxJR04obl9ibG9ja3MgKiBBRkJDX0hFQURFUl9TSVpFLAo+ID4g KwkJCQkgICAgYWxpZ25tZW50X2hlYWRlcik7Cj4gPiArCj4gPiArCWtmYi0+YWZiY19zaXplID0g a2ZiLT5vZmZzZXRfcGF5bG9hZCArIG5fYmxvY2tzICoKPiA+ICsJCQkgQUxJR04oaW5mby0+Y3Bw WzBdICogQUZCQ19TVVBFUkJMS19QSVhFTFMsCj4gPiArCQkJICAgICAgIEFGQkNfU1VQRVJCTEtf QUxJR05NRU5UKTsKPiA+ICsJbWluX3NpemUgPSBrZmItPmFmYmNfc2l6ZSArIGZiLT5vZmZzZXRz WzBdOwo+ID4gKwlpZiAobWluX3NpemUgPiBvYmotPnNpemUpIHsKPiA+ICsJCURSTV9ERUJVR19L TVMoImFmYmMgc2l6ZSBjaGVjayBmYWlsZWQsIG9ial9zaXplOiAweCVseC4gbWluX3NpemUgMHgl eC5cbiIsCj4gPiArCQkJICAgICAgb2JqLT5zaXplLCBtaW5fc2l6ZSk7Cj4gPiArCQlnb3RvIGFm YmNfdW5yZWZlcmVuY2U7Cj4gPiArCX0KPiA+ICsKPiA+ICsJZmItPm9ialswXSA9IG9iajsKPiA+ ICsJcmV0dXJuIDA7Cj4gPiArCj4gPiArYWZiY191bnJlZmVyZW5jZToKPiBXaHkgbm90IGNhbGwg aXQgYWZiY19mYWlsID8KCm5vIHByb2JsZW0gOikKCj4gPiArCWRybV9nZW1fb2JqZWN0X3B1dF91 bmxvY2tlZChvYmopOwo+ID4gKwlmYi0+b2JqWzBdID0gTlVMTDsKPiA+ICsJcmV0dXJuIC1FSU5W QUw7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQKPiA+ICBrb21lZGFfZmJfbm9uZV9hZmJj X3NpemVfY2hlY2soc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYsIHN0cnVjdCBrb21lZGFfZmIgKmtm YiwKPiA+ICAJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlLAo+ID4gQEAgLTExOCw3ICsx ODcsMTAgQEAga29tZWRhX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUsCj4gPiAgCj4gPiAgCWRybV9oZWxwZXJfbW9kZV9maWxsX2ZiX3N0cnVj dChkZXYsICZrZmItPmJhc2UsIG1vZGVfY21kKTsKPiA+ICAKPiA+IC0JcmV0ID0ga29tZWRhX2Zi X25vbmVfYWZiY19zaXplX2NoZWNrKG1kZXYsIGtmYiwgZmlsZSwgbW9kZV9jbWQpOwo+ID4gKwlp ZiAoa2ZiLT5iYXNlLm1vZGlmaWVyKQo+ID4gKwkJcmV0ID0ga29tZWRhX2ZiX2FmYmNfc2l6ZV9j aGVjayhrZmIsIGZpbGUsIG1vZGVfY21kKTsKPiA+ICsJZWxzZQo+ID4gKwkJcmV0ID0ga29tZWRh X2ZiX25vbmVfYWZiY19zaXplX2NoZWNrKG1kZXYsIGtmYiwgZmlsZSwgbW9kZV9jbWQpOwo+ID4g IAlpZiAocmV0IDwgMCkKPiA+ICAJCWdvdG8gZXJyX2NsZWFudXA7Cj4gPiAgCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZm ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ZyYW1lYnVm ZmVyLmgKPiA+IGluZGV4IGVhMmZlMTkwYzFlMy4uZTNiYWIwZGVmZDcyIDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJhbWVidWZmZXIu aAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfZnJh bWVidWZmZXIuaAo+ID4gQEAgLTI1LDYgKzI1LDEwIEBAIHN0cnVjdCBrb21lZGFfZmIgewo+ID4g IAl1MzIgYWxpZ25lZF93Owo+ID4gIAkvKiogQGFsaWduZWRfaDogYWxpZ25lZCBmcmFtZSBidWZm ZXIgaGVpZ2h0ICovCj4gPiAgCXUzMiBhbGlnbmVkX2g7Cj4gPiArCS8qKiBAYWZiY19zaXplOiBt aW5pbXVtIHNpemUgb2YgYWZiYyAqLwo+ID4gKwl1MzIgYWZiY19zaXplOwo+ID4gKwkvKiogQG9m ZnNldF9wYXlsb2FkOiBzdGFydCBvZiBhZmJjIGJvZHkgYnVmZmVyICovCj4gPiArCXUzMiBvZmZz ZXRfcGF5bG9hZDsKPiA+ICB9Owo+ID4gIAo+ID4gICNkZWZpbmUgdG9fa2ZiKGRmYikJY29udGFp bmVyX29mKGRmYiwgc3RydWN0IGtvbWVkYV9mYiwgYmFzZSkKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5jCj4gPiBpbmRleCAzZTU4OTAxZmI3 NzYuLjMwNmVhMDY5YTFiNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX2ttcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rp c3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYwo+ID4gQEAgLTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMg dm9pZCBrb21lZGFfa21zX21vZGVfY29uZmlnX2luaXQoc3RydWN0IGtvbWVkYV9rbXNfZGV2ICpr bXMsCj4gPiAgCWNvbmZpZy0+bWluX2hlaWdodAk9IDA7Cj4gPiAgCWNvbmZpZy0+bWF4X3dpZHRo CT0gNDA5NjsKPiA+ICAJY29uZmlnLT5tYXhfaGVpZ2h0CT0gNDA5NjsKPiA+IC0JY29uZmlnLT5h bGxvd19mYl9tb2RpZmllcnMgPSBmYWxzZTsKPiA+ICsJY29uZmlnLT5hbGxvd19mYl9tb2RpZmll cnMgPSB0cnVlOwo+ID4gIAo+ID4gIAljb25maWctPmZ1bmNzID0gJmtvbWVkYV9tb2RlX2NvbmZp Z19mdW5jczsKPiA+ICAJY29uZmlnLT5oZWxwZXJfcHJpdmF0ZSA9ICZrb21lZGFfbW9kZV9jb25m aWdfaGVscGVyczsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9waXBlbGluZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfcGlwZWxpbmUuaAo+ID4gaW5kZXggNzk5OGExZTQ1NmI3Li5iYTViYzA4MTBj ODEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tv bWVkYV9waXBlbGluZS5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29t ZWRhL2tvbWVkYV9waXBlbGluZS5oCj4gPiBAQCAtMjM1LDYgKzIzNSwxMCBAQCBzdHJ1Y3Qga29t ZWRhX2xheWVyX3N0YXRlIHsKPiA+ICAJLyogbGF5ZXIgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBz dGF0ZSAqLwo+ID4gIAl1MTYgaHNpemUsIHZzaXplOwo+ID4gIAl1MzIgcm90Owo+ID4gKwl1MTYg YWZiY19jcm9wX2w7Cj4gPiArCXUxNiBhZmJjX2Nyb3BfcjsKPiA+ICsJdTE2IGFmYmNfY3JvcF90 Owo+ID4gKwl1MTYgYWZiY19jcm9wX2I7Cj4gPiAgCWRtYV9hZGRyX3QgYWRkclszXTsKPiA+ICB9 Owo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21l ZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9waXBlbGluZV9zdGF0ZS5jCj4gPiBpbmRleCA5NDRkY2EyZTMzNzkuLjli MjllOWE5ZjQ5YyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9r b21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h cm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMKPiA+IEBAIC0yODksOCAr Mjg5LDIyIEBAIGtvbWVkYV9sYXllcl92YWxpZGF0ZShzdHJ1Y3Qga29tZWRhX2xheWVyICpsYXll ciwKPiA+ICAJc3QgPSB0b19sYXllcl9zdChjX3N0KTsKPiA+ICAKPiA+ICAJc3QtPnJvdCA9IGRm bG93LT5yb3Q7Cj4gPiAtCXN0LT5oc2l6ZSA9IGtmYi0+YWxpZ25lZF93Owo+ID4gLQlzdC0+dnNp emUgPSBrZmItPmFsaWduZWRfaDsKPiA+ICsKPiBDYW4geW91IHB1dCBzb21lIGNvbW1lbnRzIGhl cmUgZXhwbGFpbmluZyB0aGUgc25pcHBldCBiZWxvdz8KPiA+ICsJaWYgKGZiLT5tb2RpZmllcikg ewo+ID4gKwkJc3QtPmhzaXplID0ga2ZiLT5hbGlnbmVkX3c7Cj4gPiArCQlzdC0+dnNpemUgPSBr ZmItPmFsaWduZWRfaDsKPiA+ICsJCXN0LT5hZmJjX2Nyb3BfbCA9IGRmbG93LT5pbl94Owo+ID4g KwkJc3QtPmFmYmNfY3JvcF9yID0ga2ZiLT5hbGlnbmVkX3cgLSBkZmxvdy0+aW5feCAtIGRmbG93 LT5pbl93Owo+ID4gKwkJc3QtPmFmYmNfY3JvcF90ID0gZGZsb3ctPmluX3k7Cj4gPiArCQlzdC0+ YWZiY19jcm9wX2IgPSBrZmItPmFsaWduZWRfaCAtIGRmbG93LT5pbl95IC0gZGZsb3ctPmluX2g7 Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlzdC0+aHNpemUgPSBkZmxvdy0+aW5fdzsKPiA+ICsJCXN0 LT52c2l6ZSA9IGRmbG93LT5pbl9oOwo+ID4gKwkJc3QtPmFmYmNfY3JvcF9sID0gMDsKPiA+ICsJ CXN0LT5hZmJjX2Nyb3BfciA9IDA7Cj4gPiArCQlzdC0+YWZiY19jcm9wX3QgPSAwOwo+ID4gKwkJ c3QtPmFmYmNfY3JvcF9iID0gMDsKPiA+ICsJfQo+ID4gIAo+ID4gIAlmb3IgKGkgPSAwOyBpIDwg ZmItPmZvcm1hdC0+bnVtX3BsYW5lczsgaSsrKQo+ID4gIAkJc3QtPmFkZHJbaV0gPSBrb21lZGFf ZmJfZ2V0X3BpeGVsX2FkZHIoa2ZiLCBkZmxvdy0+aW5feCwKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9wbGFuZS5jIGIvZHJpdmVycy9n cHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYwo+ID4gaW5kZXggYWFlNWU4 MDBiZWQ0Li4xNGQ2ODYxMjA1MmYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJt L2Rpc3BsYXkva29tZWRhL2tvbWVkYV9wbGFuZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9wbGFuZS5jCj4gPiBAQCAtMTUwLDYgKzE1MCwxOCBA QCBrb21lZGFfcGxhbmVfYXRvbWljX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gPiAgCWtmcmVlKHRvX2twbGFuZV9zdChzdGF0ZSkpOwo+ID4gIH0KPiA+ICAKPiA+ICtz dGF0aWMgYm9vbAo+ID4gK2tvbWVkYV9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiA+ICsJCQkJICB1MzIgZm9ybWF0LCB1NjQgbW9kaWZpZXIpCj4g PiArewo+ID4gKwlzdHJ1Y3Qga29tZWRhX2RldiAqbWRldiA9IHBsYW5lLT5kZXYtPmRldl9wcml2 YXRlOwo+ID4gKwlzdHJ1Y3Qga29tZWRhX3BsYW5lICprcGxhbmUgPSB0b19rcGxhbmUocGxhbmUp Owo+ID4gKwl1MzIgbGF5ZXJfdHlwZSA9IGtwbGFuZS0+bGF5ZXItPmxheWVyX3R5cGU7Cj4gPiAr Cj4gPiArCXJldHVybiBrb21lZGFfZm9ybWF0X21vZF9zdXBwb3J0ZWQoJm1kZXYtPmZtdF90Ymws IGxheWVyX3R5cGUsCj4gPiArCQkJCQkgICBmb3JtYXQsIG1vZGlmaWVyKTsKPiA+ICt9Cj4gPiAr Cj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3Mga29tZWRhX3BsYW5lX2Z1 bmNzID0gewo+ID4gIAkudXBkYXRlX3BsYW5lCQk9IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9w bGFuZSwKPiA+ICAJLmRpc2FibGVfcGxhbmUJCT0gZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9w bGFuZSwKPiA+IEBAIC0xNTcsNiArMTY5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxh bmVfZnVuY3Mga29tZWRhX3BsYW5lX2Z1bmNzID0gewo+ID4gIAkucmVzZXQJCQk9IGtvbWVkYV9w bGFuZV9yZXNldCwKPiA+ICAJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUJPSBrb21lZGFfcGxhbmVf YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSwKPiA+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlCT0ga29t ZWRhX3BsYW5lX2F0b21pY19kZXN0cm95X3N0YXRlLAo+ID4gKwkuZm9ybWF0X21vZF9zdXBwb3J0 ZWQJPSBrb21lZGFfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQsCj4gPiAgfTsKPiA+ICAKPiA+ ICAvKiBmb3Iga29tZWRhLCB3aGljaCBpcyBwaXBlbGluZSBjYW4gYmUgc2hhcmUgYmV0d2VlbiBj cnRjcyAqLwo+ID4gQEAgLTIwOSw3ICsyMjIsNyBAQCBzdGF0aWMgaW50IGtvbWVkYV9wbGFuZV9h ZGQoc3RydWN0IGtvbWVkYV9rbXNfZGV2ICprbXMsCj4gPiAgCWVyciA9IGRybV91bml2ZXJzYWxf cGxhbmVfaW5pdCgma21zLT5iYXNlLCBwbGFuZSwKPiA+ICAJCQlnZXRfcG9zc2libGVfY3J0Y3Mo a21zLCBjLT5waXBlbGluZSksCj4gPiAgCQkJJmtvbWVkYV9wbGFuZV9mdW5jcywKPiA+IC0JCQlm b3JtYXRzLCBuX2Zvcm1hdHMsIE5VTEwsCj4gPiArCQkJZm9ybWF0cywgbl9mb3JtYXRzLCBrb21l ZGFfc3VwcG9ydGVkX21vZGlmaWVycywKPiA+ICAJCQlnZXRfcGxhbmVfdHlwZShrbXMsIGMpLAo+ ID4gIAkJCSIlcyIsIGMtPm5hbWUpOwo+ID4gIAo+ID4gLS0gCj4gPiAyLjE3LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==