From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH v2 1/1] drm/amdgpu: Enable scatter gather display support Date: Thu, 12 Apr 2018 20:00:29 +0200 Message-ID: References: <1522189371-13767-1-git-send-email-Samuel.Li@amd.com> <7cc47f78-66eb-148d-96a2-b97760f767bf@gmail.com> <15196bc3-76cb-0a52-c05f-f23131f77e7f@amd.com> <20bdb4b1-1986-22e4-b0d1-1713b8794f83@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20bdb4b1-1986-22e4-b0d1-1713b8794f83-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Samuel Li , Alexander.Deucher-5C7GfCeVMHo@public.gmane.org, Michel.Daenzer-5C7GfCeVMHo@public.gmane.org, =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= Cc: amd-gfx mailing list PiAxKSBUdXJuIG9mZiBpbW1lZGlhdGUgbW9kZSB3aGVuIGZsaXBwaW5nIGJldHdlZW4gVlJBTS9H VFQuClRoYXQgbXVzdCBiZSBpbXBsZW1lbnRlZCBpbmRlcGVuZGVudGx5LgoKU2VlIHdvcmtpbmcg YXJvdW5kIHRoZSBoYXJkd2FyZSBidWcgc2hvdWxkIGJlIGEgZGlmZmVyZW50IHBhdGNoIHRoYW4g CmltcGxlbWVudGluZyBhIHBsYWNlbWVudCBwb2xpY3kuCgo+IEFzIHBlciBkaXNjdXNzaW9uLCB0 aGUgM3JkIG9uZSwgd2hpY2ggaXMgdGhlIGN1cnJlbnQgcGF0Y2gsIHNlZW1zIHRoZSBiZXN0IHNv IGZhci4KQW5kIEkgY2FuIG9ubHkgcmVwZWF0IG15c2VsZi4gQWxleCBhbmQgSSBhcmUgdGhlIG1h aW50YWluZXJzIG9mIHRoZSAKa2VybmVsIG1vZHVsZSwgc28gd2UgYXJlIHRoZSBvbmUgd2hvIGRl Y2lkZSBvbiBob3cgdG8gaW1wbGVtZW50IHRoaW5ncyBoZXJlLgoKQW5kIHdlIGJvdGggbm90ZWQg dGhhdCB0aGlzIGFwcHJvYWNoIG9mIG92ZXJyaWRpbmcgdXNlciBzcGFjZSBkZWNpc2lvbnMgCmlz IG5vdCBhIGdvb2QgZGVzaWduLgoKVGhlIHBsYWNlbWVudCBwb2xpY3kgSSBzdWdnZXN0IGJ5IHBy ZWZlcnJpbmcgR1RUIG92ZXIgVlJBTSBvbiBBUFVzIApzaG91bGQgYmUgdHJpdmlhbCB0byBpbXBs ZW1lbnQgYW5kIGFzIGZhciBhcyBJIGNhbiBzZWUgYXZvaWRzIGFsbCAKbmVnYXRpdmUgc2lkZSBl ZmZlY3RzLgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKQW0gMTIuMDQuMjAxOCB1bSAxOToyMSBzY2hy aWViIFNhbXVlbCBMaToKPj4gVGhlIHBvaW50IGlzIHRoaXMga2VybmVsIGNoYW5nZSBub3cgbmVl ZHMgdG8gYmUgcmV3b3JrZWQgYW5kIGFkYXB0ZWQgdG8gd2hhdCBNZXNhIGlzIGRvaW5nLgo+IFRo cmVlIG9wdGlvbnMgaGF2ZSBiZWVuIGJyb3VnaHQgdXAgZm9yIGtlcm5lbCwKPiAxKSBUdXJuIG9m ZiBpbW1lZGlhdGUgbW9kZSB3aGVuIGZsaXBwaW5nIGJldHdlZW4gVlJBTS9HVFQuCj4gMikgQ2hl Y2sgdGhlIGRvbWFpbiBvZiB0aGUgY3VycmVudCBmYiBhbmQgdGhlbiBhZGp1c3QgdGhlIG5ldyBv bmUgYmVmb3JlIHBpbm5pbmcgaXQuCj4gMykgVXNlIG9ubHkgVlJBTSBvciBHVFQgZGVwZW5kaW5n IG9uIGEgdGhyZXNoaG9sZC4KPgo+IEFzIHBlciBkaXNjdXNzaW9uLCB0aGUgM3JkIG9uZSwgd2hp Y2ggaXMgdGhlIGN1cnJlbnQgcGF0Y2gsIHNlZW1zIHRoZSBiZXN0IHNvIGZhci4KPgo+IFJlZ2Fy ZHMsCj4gU2FtdWVsIExpCj4KPgo+Cj4gT24gMjAxOC0wNC0xMiAwMTowMyBQTSwgQ2hyaXN0aWFu IEvDtm5pZyB3cm90ZToKPj4+IENhbiB5b3UgYmUgbW9yZSBzcGVjaWZpYywgQ2hyaXN0aWFuPyBN ZXNhIGhhcyB0aGlzLCBJIGRvbid0IHRoaW5rIGl0IG5lZWRzIGFueXRoaW5nIGVsc2U6Cj4+IENv bXBsZXRlbHkgYWdyZWUsIHRoYXQncyB3aGF0IEkgc3VnZ2VzdGVkIHRvIGltcGxlbWVudC4KPj4K Pj4gVGhlIHBvaW50IGlzIHRoaXMga2VybmVsIGNoYW5nZSBub3cgbmVlZHMgdG8gYmUgcmV3b3Jr ZWQgYW5kIGFkYXB0ZWQgdG8gd2hhdCBNZXNhIGlzIGRvaW5nLgo+Pgo+PiBSZWdhcmRzLAo+PiBD aHJpc3RpYW4uCj4+Cj4+IEFtIDEyLjA0LjIwMTggdW0gMTg6NDAgc2NocmllYiBNYXJlayBPbMWh w6FrOgo+Pj4gQ2FuIHlvdSBiZSBtb3JlIHNwZWNpZmljLCBDaHJpc3RpYW4/IE1lc2EgaGFzIHRo aXMsIEkgZG9uJ3QgdGhpbmsgaXQgbmVlZHMgYW55dGhpbmcgZWxzZToKPj4+IGh0dHBzOi8vY2dp dC5mcmVlZGVza3RvcC5vcmcvbWVzYS9tZXNhL2NvbW1pdC8/aWQ9N2QyMDc5OTA4ZDllZjA1ZWMz ZjM1YjcwNzg4MzNlNTc4NDZjYWI1Ygo+Pj4KPj4+IE1hcmVrCj4+Pgo+Pj4gT24gV2VkLCBNYXIg MjgsIDIwMTggYXQgMzo0NiBBTSwgQ2hyaXN0aWFuIEvDtm5pZyA8Y2tvZW5pZy5sZWljaHR6dW1l cmtlbkBnbWFpbC5jb20gPG1haWx0bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbT4+ IHdyb3RlOgo+Pj4KPj4+ICDCoMKgwqAgQW0gMjguMDMuMjAxOCB1bSAwMDoyMiBzY2hyaWViIFNh bXVlbCBMaToKPj4+Cj4+PiAgwqDCoMKgwqDCoMKgwqAgSXQncyBhdXRvIGJ5IGRlZmF1bHQuIEZv ciBDWi9TVCwgYXV0byBzZXR0aW5nIGVuYWJsZXMgc2cgZGlzcGxheQo+Pj4gIMKgwqDCoMKgwqDC oMKgIHdoZW4gdnJhbSBzaXplIGlzIHNtYWxsOyBvdGhlcndpc2Ugc3RpbGwgdXNlcyB2cmFtLgo+ Pj4gIMKgwqDCoMKgwqDCoMKgIFRoaXMgcGF0Y2ggZml4ZWQgc29tZSBwb3RlbnRpYWwgaGFuZyBp c3N1ZSBpbnRyb2R1Y2VkIGJ5IGNoYW5nZQo+Pj4gIMKgwqDCoMKgwqDCoMKgICJhbGxvdyBmcmFt ZWJ1ZmZlciBpbiBHQVJUIG1lbW9yeSBhcyB3ZWxsIiBkdWUgdG8gQ1ovU1QgaGFyZHdhcmUKPj4+ ICDCoMKgwqDCoMKgwqDCoCBsaW1pdGF0aW9uLgo+Pj4KPj4+Cj4+PiAgwqDCoMKgIFdlbGwgdGhh dCBpcyBzdGlsbCBhIE5BSy4KPj4+Cj4+PiAgwqDCoMKgIEFzIGRpc2N1c3NlZCBub3cgbXVsdGlw bGUgdGltZXMgcGxlYXNlIGltcGxlbWVudCB0aGUgbmVjZXNzYXJ5Cj4+PiAgwqDCoMKgIGNoYW5n ZXMgaW4gTWVzYS4KPj4+Cj4+PiAgwqDCoMKgIFJlZ2FyZHMsCj4+PiAgwqDCoMKgIENocmlzdGlh bi4KPj4+Cj4+Pgo+Pj4KPj4+ICDCoMKgwqDCoMKgwqDCoCB2MjogQ2hhbmdlIGRlZmF1bHQgc2V0 dGluZyB0byBhdXRvLCBhbHNvIHNvbWUgbWlzYyBjaGFuZ2VzLgo+Pj4gIMKgwqDCoMKgwqDCoMKg IFNpZ25lZC1vZmYtYnk6IFNhbXVlbCBMaSA8U2FtdWVsLkxpQGFtZC5jb20KPj4+ICDCoMKgwqDC oMKgwqDCoCA8bWFpbHRvOlNhbXVlbC5MaUBhbWQuY29tPj4KPj4+ICDCoMKgwqDCoMKgwqDCoCAt LS0KPj4+ICDCoMKgwqDCoMKgwqDCoCDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHUuaCDCoCDCoHzCoCAxICsKPj4+ICDCoMKgwqDCoMKgwqDCoCDCoCBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jIMKgIMKgfCAxMCArKysrKysrKy0tCj4+PiAgwqDC oMKgwqDCoMKgwqAgwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rpc3BsYXku aCDCoCDCoHzCoCAyICsrCj4+PiAgwqDCoMKgwqDCoMKgwqAgwqAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2Rydi5jIMKgIMKgfMKgIDQgKysrKwo+Pj4gIMKgwqDCoMKgwqDCoMKg IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mYi5jIMKgIHzCoCAyICsrCj4+ PiAgwqDCoMKgwqDCoMKgwqAgwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9k bS9hbWRncHVfZG0uYyB8wqAgMyArKy0KPj4+ICDCoMKgwqDCoMKgwqDCoCDCoCA2IGZpbGVzIGNo YW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gIMKgwqDCoMKg wqDCoMKgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+ Pj4gIMKgwqDCoMKgwqDCoMKgIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgK Pj4+ICDCoMKgwqDCoMKgwqDCoCBpbmRleCBhN2UyMjI5Li5jOTQyMzYyIDEwMDY0NAo+Pj4gIMKg wqDCoMKgwqDCoMKgIC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+ PiAgwqDCoMKgwqDCoMKgwqAgKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 LmgKPj4+ICDCoMKgwqDCoMKgwqDCoCBAQCAtMTI5LDYgKzEyOSw3IEBAIGV4dGVybiBpbnQgYW1k Z3B1X2xicHc7Cj4+PiAgwqDCoMKgwqDCoMKgwqAgwqAgZXh0ZXJuIGludCBhbWRncHVfY29tcHV0 ZV9tdWx0aXBpcGU7Cj4+PiAgwqDCoMKgwqDCoMKgwqAgwqAgZXh0ZXJuIGludCBhbWRncHVfZ3B1 X3JlY292ZXJ5Owo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIGV4dGVybiBpbnQgYW1kZ3B1X2VtdV9t b2RlOwo+Pj4gIMKgwqDCoMKgwqDCoMKgICtleHRlcm4gaW50IGFtZGdwdV9zZ19kaXNwbGF5Owo+ Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKgICNpZmRlZiBDT05GSUdfRFJNX0FNREdQVV9TSQo+Pj4g IMKgwqDCoMKgwqDCoMKgIMKgIGV4dGVybiBpbnQgYW1kZ3B1X3NpX3N1cHBvcnQ7Cj4+PiAgwqDC oMKgwqDCoMKgwqAgZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kaXNwbGF5LmMKPj4+ICDCoMKgwqDCoMKgwqDCoCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kaXNwbGF5LmMKPj4+ICDCoMKgwqDCoMKgwqDCoCBpbmRleCA1NDk1YjI5Li4x ZTdiOTUwIDEwMDY0NAo+Pj4gIMKgwqDCoMKgwqDCoMKgIC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKPj4+ICDCoMKgwqDCoMKgwqDCoCArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCj4+PiAgwqDCoMKgwqDCoMKg wqAgQEAgLTUxMyw4ICs1MTMsMTQgQEAgdWludDMyX3QKPj4+ICDCoMKgwqDCoMKgwqDCoCBhbWRn cHVfZGlzcGxheV9mcmFtZWJ1ZmZlcl9kb21haW5zKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDKQo+ Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKgIMKgIGlmIChhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJ UF9DQVJSSVpPICYmIGFkZXYtPmFzaWNfdHlwZQo+Pj4gIMKgwqDCoMKgwqDCoMKgIDwgQ0hJUF9S QVZFTiAmJgo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgIGFkZXYtPmZsYWdz ICYgQU1EX0lTX0FQVSAmJgo+Pj4gIMKgwqDCoMKgwqDCoMKgIC3CoCDCoCDCoCDCoCDCoCDCoGFt ZGdwdV9kZXZpY2VfYXNpY19oYXNfZGNfc3VwcG9ydChhZGV2LT5hc2ljX3R5cGUpKQo+Pj4gIMKg wqDCoMKgwqDCoMKgIC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGRvbWFpbiB8PSBBTURHUFVfR0VN X0RPTUFJTl9HVFQ7Cj4+PiAgwqDCoMKgwqDCoMKgwqAgK8KgIMKgIMKgIMKgIMKgIMKgYW1kZ3B1 X2RldmljZV9hc2ljX2hhc19kY19zdXBwb3J0KGFkZXYtPmFzaWNfdHlwZSkpIHsKPj4+ICDCoMKg wqDCoMKgwqDCoCArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpZiAoYW1kZ3B1X3NnX2Rpc3BsYXkg PT0gMSkKPj4+ICDCoMKgwqDCoMKgwqDCoCArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqBkb21haW4gPSBBTURHUFVfR0VNX0RPTUFJTl9HVFQ7Cj4+PiAgwqDCoMKgwqDCoMKgwqAg K8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZWxzZSBpZiAoYW1kZ3B1X3NnX2Rpc3BsYXkgPT0gLTEp IHsKPj4+ICDCoMKgwqDCoMKgwqDCoCArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqBpZiAoYWRldi0+Z21jLnJlYWxfdnJhbV9zaXplIDwKPj4+ICDCoMKgwqDCoMKgwqDCoCBBTURH UFVfU0dfVEhSRVNIT0xEKQo+Pj4gIMKgwqDCoMKgwqDCoMKgICvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGRvbWFpbiA9IEFNREdQVV9HRU1fRE9NQUlOX0dU VDsKPj4+ICDCoMKgwqDCoMKgwqDCoCArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9Cj4+PiAgwqDC oMKgwqDCoMKgwqAgK8KgIMKgIMKgIMKgfQo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgICNlbmRpZgo+ Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKgIMKgIHJldHVybiBkb21haW47Cj4+PiAgwqDCoMKg wqDCoMKgwqAgZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k aXNwbGF5LmgKPj4+ICDCoMKgwqDCoMKgwqDCoCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kaXNwbGF5LmgKPj4+ICDCoMKgwqDCoMKgwqDCoCBpbmRleCAyYjExZDgwLi4yYjI1 MzkzIDEwMDY0NAo+Pj4gIMKgwqDCoMKgwqDCoMKgIC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmgKPj4+ICDCoMKgwqDCoMKgwqDCoCArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5oCj4+PiAgwqDCoMKgwqDCoMKgwqAg QEAgLTIzLDYgKzIzLDggQEAKPj4+ICDCoMKgwqDCoMKgwqDCoCDCoCAjaWZuZGVmIF9fQU1ER1BV X0RJU1BMQVlfSF9fCj4+PiAgwqDCoMKgwqDCoMKgwqAgwqAgI2RlZmluZSBfX0FNREdQVV9ESVNQ TEFZX0hfXwo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgICsjZGVmaW5lIEFNREdQVV9TR19USFJFU0hP TETCoCAoMjU2KjEwMjQqMTAyNCkKPj4+ICDCoMKgwqDCoMKgwqDCoCArCj4+PiAgwqDCoMKgwqDC oMKgwqAgwqAgdWludDMyX3QgYW1kZ3B1X2Rpc3BsYXlfZnJhbWVidWZmZXJfZG9tYWlucyhzdHJ1 Y3QKPj4+ICDCoMKgwqDCoMKgwqDCoCBhbWRncHVfZGV2aWNlICphZGV2KTsKPj4+ICDCoMKgwqDC oMKgwqDCoCDCoCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICoKPj4+ICDCoMKgwqDCoMKgwqDCoCDC oCBhbWRncHVfZGlzcGxheV91c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+Pj4gIMKgwqDCoMKgwqDCoMKgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKPj4+ICDCoMKgwqDCoMKgwqDCoCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+Pj4gIMKgwqDCoMKgwqDCoMKgIGluZGV4IDFi ZmNlNzkuLjE5ZjExYTUgMTAwNjQ0Cj4+PiAgwqDCoMKgwqDCoMKgwqAgLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCj4+PiAgwqDCoMKgwqDCoMKgwqAgKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCj4+PiAgwqDCoMKgwqDCoMKg wqAgQEAgLTEzMiw2ICsxMzIsNyBAQCBpbnQgYW1kZ3B1X2xicHcgPSAtMTsKPj4+ICDCoMKgwqDC oMKgwqDCoCDCoCBpbnQgYW1kZ3B1X2NvbXB1dGVfbXVsdGlwaXBlID0gLTE7Cj4+PiAgwqDCoMKg wqDCoMKgwqAgwqAgaW50IGFtZGdwdV9ncHVfcmVjb3ZlcnkgPSAtMTsgLyogYXV0byAqLwo+Pj4g IMKgwqDCoMKgwqDCoMKgIMKgIGludCBhbWRncHVfZW11X21vZGUgPSAwOwo+Pj4gIMKgwqDCoMKg wqDCoMKgICtpbnQgYW1kZ3B1X3NnX2Rpc3BsYXkgPSAtMTsKPj4+ICDCoMKgwqDCoMKgwqDCoCDC oCDCoCBNT0RVTEVfUEFSTV9ERVNDKHZyYW1saW1pdCwgIlJlc3RyaWN0IFZSQU0gZm9yIHRlc3Rp bmcsIGluCj4+PiAgwqDCoMKgwqDCoMKgwqAgbWVnYWJ5dGVzIik7Cj4+PiAgwqDCoMKgwqDCoMKg wqAgwqAgbW9kdWxlX3BhcmFtX25hbWVkKHZyYW1saW1pdCwgYW1kZ3B1X3ZyYW1fbGltaXQsIGlu dCwgMDYwMCk7Cj4+PiAgwqDCoMKgwqDCoMKgwqAgQEAgLTI5MCw2ICsyOTEsOSBAQCBtb2R1bGVf cGFyYW1fbmFtZWQoZ3B1X3JlY292ZXJ5LAo+Pj4gIMKgwqDCoMKgwqDCoMKgIGFtZGdwdV9ncHVf cmVjb3ZlcnksIGludCwgMDQ0NCk7Cj4+PiAgwqDCoMKgwqDCoMKgwqAgwqAgTU9EVUxFX1BBUk1f REVTQyhlbXVfbW9kZSwgIkVtdWxhdGlvbiBtb2RlLCAoMSA9IGVuYWJsZSwgMCA9Cj4+PiAgwqDC oMKgwqDCoMKgwqAgZGlzYWJsZSkiKTsKPj4+ICDCoMKgwqDCoMKgwqDCoCDCoCBtb2R1bGVfcGFy YW1fbmFtZWQoZW11X21vZGUsIGFtZGdwdV9lbXVfbW9kZSwgaW50LCAwNDQ0KTsKPj4+ICDCoMKg wqDCoMKgwqDCoCDCoCArTU9EVUxFX1BBUk1fREVTQyhzZ19kaXNwbGF5LCAiRW5hYmxlIHNjYXR0 ZXIgZ2F0aGVyCj4+PiAgwqDCoMKgwqDCoMKgwqAgZGlzcGxheSwgKDEgPSBlbmFibGUsIDAgPSBk aXNhYmxlLCAtMSA9IGF1dG8iKTsKPj4+ICDCoMKgwqDCoMKgwqDCoCArbW9kdWxlX3BhcmFtX25h bWVkKHNnX2Rpc3BsYXksIGFtZGdwdV9zZ19kaXNwbGF5LCBpbnQsIDA0NDQpOwo+Pj4gIMKgwqDC oMKgwqDCoMKgICsKPj4+ICDCoMKgwqDCoMKgwqDCoCDCoCAjaWZkZWYgQ09ORklHX0RSTV9BTURH UFVfU0kKPj4+ICDCoMKgwqDCoMKgwqDCoCDCoCDCoCAjaWYgZGVmaW5lZChDT05GSUdfRFJNX1JB REVPTikgfHwKPj4+ICDCoMKgwqDCoMKgwqDCoCBkZWZpbmVkKENPTkZJR19EUk1fUkFERU9OX01P RFVMRSkKPj4+ICDCoMKgwqDCoMKgwqDCoCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2ZiLmMKPj4+ICDCoMKgwqDCoMKgwqDCoCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9mYi5jCj4+PiAgwqDCoMKgwqDCoMKgwqAgaW5kZXggMTIwNjMw MS4uZjU3YzM1NSAxMDA2NDQKPj4+ICDCoMKgwqDCoMKgwqDCoCAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYwo+Pj4gIMKgwqDCoMKgwqDCoMKgICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mYi5jCj4+PiAgwqDCoMKgwqDCoMKgwqAgQEAg LTEzOCw2ICsxMzgsOCBAQCBzdGF0aWMgaW50Cj4+PiAgwqDCoMKgwqDCoMKgwqAgYW1kZ3B1ZmJf Y3JlYXRlX3Bpbm5lZF9vYmplY3Qoc3RydWN0IGFtZGdwdV9mYmRldiAqcmZiZGV2LAo+Pj4gIMKg wqDCoMKgwqDCoMKgIMKgIMKgIMKgIMKgIG1vZGVfY21kLT5waXRjaGVzWzBdID0gYW1kZ3B1X2Fs aWduX3BpdGNoKGFkZXYsCj4+PiAgwqDCoMKgwqDCoMKgwqAgbW9kZV9jbWQtPndpZHRoLCBjcHAs Cj4+PiAgwqDCoMKgwqDCoMKgwqAgZmJfdGlsZWQpOwo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKg IMKgIMKgIGRvbWFpbiA9IGFtZGdwdV9kaXNwbGF5X2ZyYW1lYnVmZmVyX2RvbWFpbnMoYWRldik7 Cj4+PiAgwqDCoMKgwqDCoMKgwqAgK8KgIMKgIMKgIMKgaWYgKGRvbWFpbiAmIEFNREdQVV9HRU1f RE9NQUlOX0dUVCkKPj4+ICDCoMKgwqDCoMKgwqDCoCArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBE Uk1fREVCVUdfRFJJVkVSKCJTY2F0dGVyIGdhdGhlciBkaXNwbGF5Ogo+Pj4gIMKgwqDCoMKgwqDC oMKgIGVuYWJsZWRcbiIpOwo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKgIMKgIGhlaWdodCA9 IEFMSUdOKG1vZGVfY21kLT5oZWlnaHQsIDgpOwo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKg IMKgIHNpemUgPSBtb2RlX2NtZC0+cGl0Y2hlc1swXSAqIGhlaWdodDsKPj4+ICDCoMKgwqDCoMKg wqDCoCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9h bWRncHVfZG0uYwo+Pj4gIMKgwqDCoMKgwqDCoMKgIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwo+Pj4gIMKgwqDCoMKgwqDCoMKgIGluZGV4IDY4YWIz MjUuLjdlOWYyNDcgMTAwNjQ0Cj4+PiAgwqDCoMKgwqDCoMKgwqAgLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwo+Pj4gIMKgwqDCoMKgwqDCoMKg ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMK Pj4+ICDCoMKgwqDCoMKgwqDCoCBAQCAtMzA3NCw3ICszMDc0LDggQEAgc3RhdGljIGludAo+Pj4g IMKgwqDCoMKgwqDCoMKgIGRtX3BsYW5lX2hlbHBlcl9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGRv bWFpbiA9IEFNREdQVV9HRU1fRE9NQUlOX1ZSQU07Cj4+PiAgwqDCoMKgwqDCoMKgwqAgwqAgwqAg wqAgwqAgciA9IGFtZGdwdV9ib19waW4ocmJvLCBkb21haW4sICZhZmItPmFkZHJlc3MpOwo+Pj4g IMKgwqDCoMKgwqDCoMKgIC0KPj4+ICDCoMKgwqDCoMKgwqDCoCArwqAgwqAgwqAgwqByYm8tPnBy ZWZlcnJlZF9kb21haW5zID0gZG9tYWluOwo+Pj4gIMKgwqDCoMKgwqDCoMKgICvCoCDCoCDCoCDC oHJiby0+YWxsb3dlZF9kb21haW5zID0gZG9tYWluOwo+Pj4gIMKgwqDCoMKgwqDCoMKgIMKgIMKg IMKgIMKgIGFtZGdwdV9ib191bnJlc2VydmUocmJvKTsKPj4+ICDCoMKgwqDCoMKgwqDCoCDCoCDC oCDCoCDCoCBpZiAodW5saWtlbHkociAhPSAwKSkgewo+Pj4KPj4+Cj4+PiAgwqDCoMKgIF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiAgwqDCoMKgIGFt ZC1nZnggbWFpbGluZyBsaXN0Cj4+PiAgwqDCoMKgIGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnIDxtYWlsdG86YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+Cj4+PiAgwqDCoMKgIGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Pj4g IMKgwqDCoCA8aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9h bWQtZ2Z4Pgo+Pj4KPj4+Cj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1n ZngK