From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 6/6] drm: Add DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE/RELATIVE flags Date: Thu, 4 Aug 2016 12:56:09 +0200 Message-ID: <20160804105609.GG6232@phenom.ffwll.local> References: <1470281981-18172-1-git-send-email-michel@daenzer.net> <1470281981-18172-7-git-send-email-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470281981-18172-7-git-send-email-michel@daenzer.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Michel =?iso-8859-1?Q?D=E4nzer?= Cc: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org T24gVGh1LCBBdWcgMDQsIDIwMTYgYXQgMTI6Mzk6NDFQTSArMDkwMCwgTWljaGVsIETDpG56ZXIg d3JvdGU6Cj4gRnJvbTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+Cj4g Cj4gVGhlc2UgZmxhZ3MgYWxsb3cgdXNlcnNwYWNlIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUg dGFyZ2V0IHZlcnRpY2FsCj4gYmxhbmsgcGVyaW9kIHdoZW4gYSBmbGlwIHNob3VsZCB0YWtlIGVm ZmVjdC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJA YW1kLmNvbT4KPiAtLS0KPiAKPiBOb3RlIHRoYXQgdGhlIHByZXZpb3VzIHBhdGNoZXMgaW4gdGhp cyBzZXJpZXMgY2FuIGF2b2lkIGRlbGF5aW5nIHBhZ2UKPiBmbGlwcyBpbiBzb21lIGNhc2VzIGV2 ZW4gd2l0aG91dCB0aGlzIHBhdGNoIG9yIGFueSBjb3JyZXNwb25kaW5nCj4gdXNlcnNwYWNlIGNo YW5nZXMuIEhlcmUgYXJlIGV4YW1wbGVzIG9mIGhvdyB1c2Vyc3BhY2UgY2FuIHRha2UgYWR2YW50 YWdlCj4gb2YgdGhpcyBwYXRjaCB0byBhdm9pZCBkZWxheWluZyBwYWdlIGZsaXBzIGluIGV2ZW4g bW9yZSBjYXNlczoKPiAKPiBodHRwczovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL35kYWVuemVyL3hm ODYtdmlkZW8tYXRpL2NvbW1pdC8/aWQ9ZmM4ODRhOGFmMjUzNDVjMzJiZDQxMDRjODY0ZWNmZWI5 YmIzZGI5Ygo+IAo+IGh0dHBzOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvfmRhZW56ZXIveGY4Ni12 aWRlby1hbWRncHUvY29tbWl0Lz9pZD1iODYzMWE5YmE0OWMwZDBlYmU1ZGNkMWRiZmI2OGZjZmU5 MDcyOTZmCj4gCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICB8IDQ2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2lvY3RsLmMgfCAgOCArKysrKysrKwo+ICBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAgICAgfCAg MSArCj4gIGluY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCB8IDI0ICsrKysrKysrKysrKysrKysr KystLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jcnRjLmMKPiBpbmRleCAxNWFkN2UyLi5iMmZkODYwIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjLmMKPiBAQCAtNTQyMSwxMSArNTQyMSwxOSBAQCBpbnQgZHJtX21vZGVfcGFnZV9mbGlw X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7 Cj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IE5VTEw7Cj4gIAlzdHJ1Y3QgZHJtX3Bl bmRpbmdfdmJsYW5rX2V2ZW50ICplID0gTlVMTDsKPiAtCXUzMiB0YXJnZXRfdmJsYW5rID0gMDsK PiArCXUzMiB0YXJnZXRfdmJsYW5rID0gcGFnZV9mbGlwLT5zZXF1ZW5jZTsKPiAgCWludCByZXQg PSAtRUlOVkFMOwo+ICAKPiAtCWlmIChwYWdlX2ZsaXAtPmZsYWdzICYgfkRSTV9NT0RFX1BBR0Vf RkxJUF9GTEFHUyB8fAo+IC0JICAgIHBhZ2VfZmxpcC0+cmVzZXJ2ZWQgIT0gMCkKPiArCWlmIChw YWdlX2ZsaXAtPmZsYWdzICYgfkRSTV9NT0RFX1BBR0VfRkxJUF9GTEFHUykKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gKwlpZiAocGFnZV9mbGlwLT5zZXF1ZW5jZSAhPSAwICYmICEocGFnZV9m bGlwLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVQpKQo+ICsJCXJldHVybiAtRUlO VkFMOwo+ICsKPiArCS8qIE9ubHkgb25lIG9mIHRoZSBEUk1fTU9ERV9QQUdFX0ZMSVBfVEFSR0VU X0FCU09MVVRFL1JFTEFUSVZFIGZsYWdzCj4gKwkgKiBjYW4gYmUgc3BlY2lmaWVkCj4gKwkgKi8K PiArCWlmICgocGFnZV9mbGlwLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVQpID09 IERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVQpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ICAJ aWYgKChwYWdlX2ZsaXAtPmZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0FTWU5DKSAmJiAhZGV2 LT5tb2RlX2NvbmZpZy5hc3luY19wYWdlX2ZsaXApCj4gQEAgLTU0MzYsMTUgKzU0NDQsNDEgQEAg aW50IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJ CXJldHVybiAtRU5PRU5UOwo+ICAKPiAgCWlmIChjcnRjLT5mdW5jcy0+cGFnZV9mbGlwX3Rhcmdl dCkgewo+ICsJCXUzMiBjdXJyZW50X3ZibGFuazsKPiAgCQlpbnQgcjsKPiAgCj4gIAkJciA9IGRy bV9jcnRjX3ZibGFua19nZXQoY3J0Yyk7Cj4gIAkJaWYgKHIpCj4gIAkJCXJldHVybiByOwo+ICAK PiAtCQl0YXJnZXRfdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NvdW50KGNydGMpICsKPiAtCQkJ IShwYWdlX2ZsaXAtPmZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0FTWU5DKTsKPiAtCX0gZWxz ZSBpZiAoY3J0Yy0+ZnVuY3MtPnBhZ2VfZmxpcCA9PSBOVUxMKQo+ICsJCWN1cnJlbnRfdmJsYW5r ID0gZHJtX2NydGNfdmJsYW5rX2NvdW50KGNydGMpOwo+ICsKPiArCQlzd2l0Y2ggKHBhZ2VfZmxp cC0+ZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBfVEFSR0VUKSB7Cj4gKwkJY2FzZSBEUk1fTU9E RV9QQUdFX0ZMSVBfVEFSR0VUX0FCU09MVVRFOgo+ICsJCQlpZiAoKGludCkodGFyZ2V0X3ZibGFu ayAtIGN1cnJlbnRfdmJsYW5rKSA+IDEpIHsKPiArCQkJCURSTV9ERUJVRygiSW52YWxpZCBhYnNv bHV0ZSBmbGlwIHRhcmdldCAldSwgIgo+ICsJCQkJCSAgIm11c3QgYmUgPD0gJXVcbiIsIHRhcmdl dF92YmxhbmssCj4gKwkJCQkJICBjdXJyZW50X3ZibGFuayArIDEpOwo+ICsJCQkJZHJtX2NydGNf dmJsYW5rX3B1dChjcnRjKTsKPiArCQkJCXJldHVybiAtRUlOVkFMOwo+ICsJCQl9Cj4gKwkJCWJy ZWFrOwo+ICsJCWNhc2UgRFJNX01PREVfUEFHRV9GTElQX1RBUkdFVF9SRUxBVElWRToKPiArCQkJ aWYgKHRhcmdldF92YmxhbmsgIT0gMCAmJiB0YXJnZXRfdmJsYW5rICE9IDEpIHsKPiArCQkJCURS TV9ERUJVRygiSW52YWxpZCByZWxhdGl2ZSBmbGlwIHRhcmdldCAldSwgIgo+ICsJCQkJCSAgIm11 c3QgYmUgMCBvciAxXG4iLCB0YXJnZXRfdmJsYW5rKTsKPiArCQkJCWRybV9jcnRjX3ZibGFua19w dXQoY3J0Yyk7Cj4gKwkJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQkJfQo+ICsJCQl0YXJnZXRfdmJs YW5rICs9IGN1cnJlbnRfdmJsYW5rOwo+ICsJCQlicmVhazsKPiArCQlkZWZhdWx0Ogo+ICsJCQl0 YXJnZXRfdmJsYW5rID0gY3VycmVudF92YmxhbmsgKwo+ICsJCQkJIShwYWdlX2ZsaXAtPmZsYWdz ICYgRFJNX01PREVfUEFHRV9GTElQX0FTWU5DKTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsJfSBl bHNlIGlmIChjcnRjLT5mdW5jcy0+cGFnZV9mbGlwID09IE5VTEwgfHwKPiArCQkgICAocGFnZV9m bGlwLT5mbGFncyAmIERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVQpKQo+ICAJCXJldHVybiAtRUlO VkFMOwo+ICAKPiAgCWRybV9tb2Rlc2V0X2xvY2tfY3J0YyhjcnRjLCBjcnRjLT5wcmltYXJ5KTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9pb2N0bC5jCj4gaW5kZXggMzNhZjRhNS4uMDA5OWQyYSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lv Y3RsLmMKPiBAQCAtMjI4LDYgKzIyOCw3IEBAIHN0YXRpYyBpbnQgZHJtX2dldHN0YXRzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIHN0YXRpYyBpbnQgZHJtX2dldGNhcChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdikKPiAgewo+ICAJc3RydWN0IGRybV9nZXRfY2FwICpyZXEgPSBkYXRhOwo+ICsJc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+ICAKPiAgCXJlcS0+dmFsdWUgPSAwOwo+ICAJc3dpdGNoIChyZXEt PmNhcGFiaWxpdHkpIHsKPiBAQCAtMjU0LDYgKzI1NSwxMyBAQCBzdGF0aWMgaW50IGRybV9nZXRj YXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpm aWxlXwo+ICAJY2FzZSBEUk1fQ0FQX0FTWU5DX1BBR0VfRkxJUDoKPiAgCQlyZXEtPnZhbHVlID0g ZGV2LT5tb2RlX2NvbmZpZy5hc3luY19wYWdlX2ZsaXA7Cj4gIAkJYnJlYWs7Cj4gKwljYXNlIERS TV9DQVBfUEFHRV9GTElQX1RBUkdFVDoKPiArCQlyZXEtPnZhbHVlID0gMTsKPiArCQlkcm1fZm9y X2VhY2hfY3J0YyhjcnRjLCBkZXYpIHsKPiArCQkJaWYgKCFjcnRjLT5mdW5jcy0+cGFnZV9mbGlw X3RhcmdldCkKPiArCQkJCXJlcS0+dmFsdWUgPSAwOwo+ICsJCX0KPiArCQlicmVhazsKPiAgCWNh c2UgRFJNX0NBUF9DVVJTT1JfV0lEVEg6Cj4gIAkJaWYgKGRldi0+bW9kZV9jb25maWcuY3Vyc29y X3dpZHRoKQo+ICAJCQlyZXEtPnZhbHVlID0gZGV2LT5tb2RlX2NvbmZpZy5jdXJzb3Jfd2lkdGg7 Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJt L2RybS5oCj4gaW5kZXggNDUyNjc1Zi4uYjJjNTI4NCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3Vh cGkvZHJtL2RybS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaAo+IEBAIC02NDYsNiAr NjQ2LDcgQEAgc3RydWN0IGRybV9nZW1fb3BlbiB7Cj4gICNkZWZpbmUgRFJNX0NBUF9DVVJTT1Jf V0lEVEgJCTB4OAo+ICAjZGVmaW5lIERSTV9DQVBfQ1VSU09SX0hFSUdIVAkJMHg5Cj4gICNkZWZp bmUgRFJNX0NBUF9BRERGQjJfTU9ESUZJRVJTCTB4MTAKPiArI2RlZmluZSBEUk1fQ0FQX1BBR0Vf RkxJUF9UQVJHRVQJMHgxMQo+ICAKPiAgLyoqIERSTV9JT0NUTF9HRVRfQ0FQIGlvY3RsIGFyZ3Vt ZW50IHR5cGUgKi8KPiAgc3RydWN0IGRybV9nZXRfY2FwIHsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gaW5k ZXggNDlhNzI2NS4uMTc1YWExZiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9t b2RlLmgKPiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiBAQCAtNTIwLDcgKzUy MCwxMyBAQCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCB7Cj4gIAo+ICAjZGVmaW5lIERSTV9NT0RFX1BB R0VfRkxJUF9FVkVOVCAweDAxCj4gICNkZWZpbmUgRFJNX01PREVfUEFHRV9GTElQX0FTWU5DIDB4 MDIKPiAtI2RlZmluZSBEUk1fTU9ERV9QQUdFX0ZMSVBfRkxBR1MgKERSTV9NT0RFX1BBR0VfRkxJ UF9FVkVOVHxEUk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkMpCj4gKyNkZWZpbmUgRFJNX01PREVfUEFH RV9GTElQX1RBUkdFVF9BQlNPTFVURSAweDQKPiArI2RlZmluZSBEUk1fTU9ERV9QQUdFX0ZMSVBf VEFSR0VUX1JFTEFUSVZFIDB4OAo+ICsjZGVmaW5lIERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVQg KERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVRfQUJTT0xVVEUgfCBcCj4gKwkJCQkgICBEUk1fTU9E RV9QQUdFX0ZMSVBfVEFSR0VUX1JFTEFUSVZFKQo+ICsjZGVmaW5lIERSTV9NT0RFX1BBR0VfRkxJ UF9GTEFHUyAoRFJNX01PREVfUEFHRV9GTElQX0VWRU5UIHwgXAo+ICsJCQkJICBEUk1fTU9ERV9Q QUdFX0ZMSVBfQVNZTkMgfCBcCj4gKwkJCQkgIERSTV9NT0RFX1BBR0VfRkxJUF9UQVJHRVQpCj4g IAo+ICAvKgo+ICAgKiBSZXF1ZXN0IGEgcGFnZSBmbGlwIG9uIHRoZSBzcGVjaWZpZWQgY3J0Yy4K PiBAQCAtNTQzLDE1ICs1NDksMjUgQEAgc3RydWN0IGRybV9jb2xvcl9sdXQgewo+ICAgKiAnYXMg c29vbiBhcyBwb3NzaWJsZScsIG1lYW5pbmcgdGhhdCBpdCBub3QgZGVsYXkgd2FpdGluZyBmb3Ig dmJsYW5rLgo+ICAgKiBUaGlzIG1heSBjYXVzZSB0ZWFyaW5nIG9uIHRoZSBzY3JlZW4uCj4gICAq Cj4gLSAqIFRoZSByZXNlcnZlZCBmaWVsZCBtdXN0IGJlIHplcm8gdW50aWwgd2UgZmlndXJlIG91 dCBzb21ldGhpbmcKPiAtICogY2xldmVyIHRvIHVzZSBpdCBmb3IuCj4gKyAqIFRoZSBzZXF1ZW5j ZSBmaWVsZCBtdXN0IGJlIHplcm8gdW5sZXNzIGVpdGhlciBvZiB0aGUKPiArICogRFJNX01PREVf UEFHRV9GTElQX1RBUkdFVF9BQlNPTFVURS9SRUxBVElWRSBmbGFncyBpcyBzcGVjaWZpZWQuIFdo ZW4KPiArICogdGhlIEFCU09MVVRFIGZsYWcgaXMgc3BlY2lmaWVkLCB0aGUgc2VxdWVuY2UgZmll bGQgZGVub3RlcyB0aGUgYWJzb2x1dGUKPiArICogdmJsYW5rIHNlcXVlbmNlIHdoZW4gdGhlIGZs aXAgc2hvdWxkIHRha2UgZWZmZWN0LiBXaGVuIHRoZSBSRUxBVElWRQo+ICsgKiBmbGFnIGlzIHNw ZWNpZmllZCwgdGhlIHNlcXVlbmNlIGZpZWxkIGRlbm90ZXMgdGhlIHJlbGF0aXZlICh0byB0aGUK PiArICogY3VycmVudCBvbmUgd2hlbiB0aGUgaW9jdGwgaXMgY2FsbGVkKSB2Ymxhbmsgc2VxdWVu Y2Ugd2hlbiB0aGUgZmxpcAo+ICsgKiBzaG91bGQgdGFrZSBlZmZlY3QuIE5PVEU6IERSTV9JT0NU TF9XQUlUX1ZCTEFOSyBtdXN0IHN0aWxsIGJlIHVzZWQgdG8KPiArICogbWFrZSBzdXJlIHRoZSB2 Ymxhbmsgc2VxdWVuY2UgYmVmb3JlIHRoZSB0YXJnZXQgb25lIGhhcyBwYXNzZWQgYmVmb3JlCj4g KyAqIGNhbGxpbmcgdGhpcyBpb2N0bC4gVGhlIHB1cnBvc2Ugb2YgdGhlCj4gKyAqIERSTV9NT0RF X1BBR0VfRkxJUF9UQVJHRVRfQUJTT0xVVEUvUkVMQVRJVkUgZmxhZ3MgaXMgbWVyZWx5IHRvIGNs YXJpZnkKPiArICogdGhlIHRhcmdldCBmb3Igd2hlbiBjb2RlIGRlYWxpbmcgd2l0aCBhIHBhZ2Ug ZmxpcCBydW5zIGR1cmluZyBhCj4gKyAqIHZlcnRpY2FsIGJsYW5rIHBlcmlvZC4KPiAgICovCj4g IAo+ICBzdHJ1Y3QgZHJtX21vZGVfY3J0Y19wYWdlX2ZsaXAgewo+ICAJX191MzIgY3J0Y19pZDsK PiAgCV9fdTMyIGZiX2lkOwo+ICAJX191MzIgZmxhZ3M7Cj4gLQlfX3UzMiByZXNlcnZlZDsKPiAr CV9fdTMyIHNlcXVlbmNlOwoKTWlnaHQgYnJlYWsgYWJpIHNvbWV3aGVyZS4gSSB0aGluayBpdCdk IGJlIGJldHRlciB0byBjcmVhdGUgYQpzdHJ1Y3QgZHJtX21vZGVfY3J0Y19wYWdlX2ZsaXAyIHdp dGggdGhlIHJlbmFtZWQgZmllbGQuIE90aGVyd2lzZSB0aGlzCmxvb2tzIGdyZWF0LCBhbmQgdGhl IG9ubHkgb3RoZXIgcXVpYmJsZSBJIGhhdmUgaXMgdGhhdCB3ZSBleHRlbmQgdGhlIG9sZApwYWdl X2ZsaXAgcGF0aCBoZXJlIGluc3RlYWQgb2YgYXRvbWljLiBCdXQgZ2l2ZW4gYWxsIHRoZSBmdW4g d2UgaGF2ZQp0cnlpbmcgdG8gcG9ydCBpOTE1IHRvIGF0b21pYyBJIGZ1bGx5IHVuZGVyc3RhbmQg dGhhdCB5b3UgY2FuJ3Qgc2ltcGx5CmZpcnN0IHBvcnQgYW1kZ3B1IG92ZXIgOy0pCgpXaXRoIG9y IHdpdGhvdXQgdGhlIGFib3ZlIChidXQgc3Ryb25naW5nbHkgaW4gc3VwcG9ydCBvZiBhIG5ldyBz dHJ1Y3QpOgoKUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwu Y2g+Cgo+ICAJX191NjQgdXNlcl9kYXRhOwo+ICB9Owo+ICAKPiAtLSAKPiAyLjguMQo+IAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVs IG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRh bmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9i bG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=