From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [Intel-gfx] [PATCH 06/26] drm/atomic: Add __drm_atomic_get_current_plane_state Date: Tue, 31 May 2016 10:35:13 +0200 Message-ID: <1638f409-fdb1-1b09-e795-a47e48771a17@linux.intel.com> References: <1464546923-13439-1-git-send-email-daniel.vetter@ffwll.ch> <1464546923-13439-7-git-send-email-daniel.vetter@ffwll.ch> <978d29cc-6ac1-66ba-542b-2fa9afdbf5d9@linux.intel.com> <20160530150512.GN27098@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160530150512.GN27098@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , DRI Development , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T3AgMzAtMDUtMTYgb20gMTc6MDUgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIE1vbiwgTWF5 IDMwLCAyMDE2IGF0IDAxOjQyOjQwUE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBPcCAyOS0wNS0xNiBvbSAyMDozNSBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4+PiAuLi4gYW5k IHVzZSBpdCBpbiBtc20mdmM0LiBBZ2FpbiBqdXN0IHdhbnQgdG8gZW5jYXBzdWxhdGUKPj4+IGRy bV9hdG9taWNfc3RhdGUgaW50ZXJuYWxzIGEgYml0Lgo+Pj4KPj4+IFRoZSBjb25zdCB0aHJlYWRp bmcgaXMgYSBiaXQgYXdrd2FyZCBpbiB2YzQgc2luY2UgQyBzdWNrcywgYnV0IEkgc3RpbGwKPj4+ IHRoaW5rIGl0J3Mgd29ydGggdG8gZW5mb3JjZSB0aGlzLiBFdmVudHVhbGx5IEkgd2FudCB0byBt YWtlIGFsbCB0aGUKPj4+IG9iai0+c3RhdGUgcG9pbnRlcnMgY29uc3QgdG9vLCBidXQgdGhhdCdz IGEgbG90IG1vcmUgd29yayAuLi4KPj4+Cj4+PiBDYzogRXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0 Lm5ldD4KPj4+IENjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4+PiBTaWduZWQt b2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPj4+IC0tLQo+ Pj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRjLmMgfCAxMCArKystLS0t LS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMgICAgICAgICAgIHwgMTEgKysr LS0tLS0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oICAgICAgICAgICAgfCAg MiArLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMgICAgICAgICAgfCAgNSAr KystLQo+Pj4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWMuaCAgICAgICAgICAgICAgICAgfCAzNiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gIDUgZmlsZXMgY2hhbmdlZCwgNDYg aW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21kcC9tZHA1L21kcDVfY3J0Yy5jCj4+PiBpbmRleCA4OGZlMjU2YzE5MzEuLjZkNDA4NmVlMDUw MyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRj LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRjLmMKPj4+ IEBAIC0zODMsMTkgKzM4MywxNSBAQCBzdGF0aWMgaW50IG1kcDVfY3J0Y19hdG9taWNfY2hlY2so c3RydWN0IGRybV9jcnRjICpjcnRjLAo+Pj4gIAkgKi8KPj4+ICAJaHdfY2ZnID0gbWRwNV9jZmdf Z2V0X2h3X2NvbmZpZyhtZHA1X2ttcy0+Y2ZnKTsKPj4+ICAJZHJtX2F0b21pY19jcnRjX3N0YXRl X2Zvcl9lYWNoX3BsYW5lKHBsYW5lLCBzdGF0ZSkgewo+Pj4gLQkJc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcHN0YXRlOwo+Pj4gKwkJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRl Owo+Pj4gIAkJaWYgKGNudCA+PSAoaHdfY2ZnLT5sbS5uYl9zdGFnZXMpKSB7Cj4+PiAgCQkJZGV2 X2VycihkZXYtPmRldiwgInRvbyBtYW55IHBsYW5lcyFcbiIpOwo+Pj4gIAkJCXJldHVybiAtRUlO VkFMOwo+Pj4gIAkJfQo+Pj4gIAo+Pj4gLQkJcHN0YXRlID0gc3RhdGUtPnN0YXRlLT5wbGFuZV9z dGF0ZXNbZHJtX3BsYW5lX2luZGV4KHBsYW5lKV07Cj4+PiArCQlwc3RhdGUgPSBfX2RybV9hdG9t aWNfZ2V0X2N1cnJlbnRfcGxhbmVfc3RhdGUoc3RhdGUtPnN0YXRlLAo+Pj4gKwkJCQkJCQkgICAg ICBwbGFuZSk7Cj4+PiAgCj4+PiAtCQkvKiBwbGFuZSBtaWdodCBub3QgaGF2ZSBjaGFuZ2VkLCBp biB3aGljaCBjYXNlIHRha2UKPj4+IC0JCSAqIGN1cnJlbnQgc3RhdGU6Cj4+PiAtCQkgKi8KPj4+ IC0JCWlmICghcHN0YXRlKQo+Pj4gLQkJCXBzdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKPj4+ICAJCXBz dGF0ZXNbY250XS5wbGFuZSA9IHBsYW5lOwo+Pj4gIAkJcHN0YXRlc1tjbnRdLnN0YXRlID0gdG9f bWRwNV9wbGFuZV9zdGF0ZShwc3RhdGUpOwo+Pj4gIAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYwo+ Pj4gaW5kZXggOTA0ZDA3NTRhZDc4Li43MDNiZGExNzAxMDUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2NydGMuYwo+Pj4gQEAgLTQwNSwxNCArNDA1LDkgQEAgc3RhdGljIGludCB2YzRfY3J0Y19h dG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAo+Pj4gIAkJcmV0dXJuIC1FSU5WQUw7 Cj4+PiAgCj4+PiAgCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZShwbGFuZSwg c3RhdGUpIHsKPj4+IC0JCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KPj4+ IC0JCQlzdGF0ZS0+c3RhdGUtPnBsYW5lX3N0YXRlc1tkcm1fcGxhbmVfaW5kZXgocGxhbmUpXTsK Pj4+IC0KPj4+IC0JCS8qIHBsYW5lIG1pZ2h0IG5vdCBoYXZlIGNoYW5nZWQsIGluIHdoaWNoIGNh c2UgdGFrZQo+Pj4gLQkJICogY3VycmVudCBzdGF0ZToKPj4+IC0JCSAqLwo+Pj4gLQkJaWYgKCFw bGFuZV9zdGF0ZSkKPj4+IC0JCQlwbGFuZV9zdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKPj4+ICsJCWNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KPj4+ICsJCQlfX2RybV9h dG9taWNfZ2V0X2N1cnJlbnRfcGxhbmVfc3RhdGUoc3RhdGUtPnN0YXRlLAo+Pj4gKwkJCQkJCQkg ICAgIHBsYW5lKTsKPj4+ICAKPj4+ICAJCWRsaXN0X2NvdW50ICs9IHZjNF9wbGFuZV9kbGlzdF9z aXplKHBsYW5lX3N0YXRlKTsKPj4+ICAJfQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92YzQvdmM0X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgKPj4+IGluZGV4 IDM3Y2FjNTk0MDFkNy4uYzc5OWJhYWJjMDA4IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZjNC92YzRfZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5o Cj4+PiBAQCAtNDY5LDcgKzQ2OSw3IEBAIGludCB2YzRfa21zX2xvYWQoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4+PiAgc3RydWN0IGRybV9wbGFuZSAqdmM0X3BsYW5lX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPj4+ICAJCQkJIGVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZSk7Cj4+PiAg dTMyIHZjNF9wbGFuZV93cml0ZV9kbGlzdChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgdTMyIF9f aW9tZW0gKmRsaXN0KTsKPj4+IC11MzIgdmM0X3BsYW5lX2RsaXN0X3NpemUoc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqc3RhdGUpOwo+Pj4gK3UzMiB2YzRfcGxhbmVfZGxpc3Rfc2l6ZShjb25zdCBz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSk7Cj4+PiAgdm9pZCB2YzRfcGxhbmVfYXN5bmNf c2V0X2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+Pj4gIAkJCSAgICBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYik7Cj4+PiAgCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zj NC92YzRfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMKPj4+IGluZGV4 IDQwMzdiNTJmZGUzMS4uNWQyYzNkOWZkMTdhIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZjNC92YzRfcGxhbmUuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxh bmUuYwo+Pj4gQEAgLTY5MCw5ICs2OTAsMTAgQEAgdTMyIHZjNF9wbGFuZV93cml0ZV9kbGlzdChz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgdTMyIF9faW9tZW0gKmRsaXN0KQo+Pj4gIAlyZXR1cm4g dmM0X3N0YXRlLT5kbGlzdF9jb3VudDsKPj4+ICB9Cj4+PiAgCj4+PiAtdTMyIHZjNF9wbGFuZV9k bGlzdF9zaXplKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+Pj4gK3UzMiB2YzRfcGxh bmVfZGxpc3Rfc2l6ZShjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPj4+ICB7 Cj4+PiAtCXN0cnVjdCB2YzRfcGxhbmVfc3RhdGUgKnZjNF9zdGF0ZSA9IHRvX3ZjNF9wbGFuZV9z dGF0ZShzdGF0ZSk7Cj4+PiArCWNvbnN0IHN0cnVjdCB2YzRfcGxhbmVfc3RhdGUgKnZjNF9zdGF0 ZSA9Cj4+PiArCQljb250YWluZXJfb2Yoc3RhdGUsIHR5cGVvZigqdmM0X3N0YXRlKSwgYmFzZSk7 Cj4+PiAgCj4+PiAgCXJldHVybiB2YzRfc3RhdGUtPmRsaXN0X2NvdW50Owo+Pj4gIH0KPj4+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmggYi9pbmNsdWRlL2RybS9kcm1fYXRv bWljLmgKPj4+IGluZGV4IDkyYzg0ZTlhYjA5YS4uNGU5NzE4NjI5M2JlIDEwMDY0NAo+Pj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRv bWljLmgKPj4+IEBAIC0xMDksNiArMTA5LDQyIEBAIGRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2Nv bm5lY3Rvcl9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+PiAgCXJldHVy biBzdGF0ZS0+Y29ubmVjdG9yX3N0YXRlc1tpbmRleF07Cj4+PiAgfQo+Pj4gIAo+Pj4gKy8qKgo+ Pj4gKyAqIF9fZHJtX2F0b21pY19nZXRfY3VycmVudF9wbGFuZV9zdGF0ZSAtIGdldCBjdXJyZW50 IHBsYW5lIHN0YXRlCj4+PiArICogQHN0YXRlOiBnbG9iYWwgYXRvbWljIHN0YXRlIG9iamVjdAo+ Pj4gKyAqIEBwbGFuZTogcGxhbmUgdG8gZ3JhYgo+Pj4gKyAqCj4+PiArICogVGhpcyBmdW5jdGlv biByZXR1cm5zIHRoZSBwbGFuZSBzdGF0ZSBmb3IgdGhlIGdpdmVuIHBsYW5lLCBlaXRoZXIgZnJv bQo+Pj4gKyAqIEBzdGF0ZSwgb3IgaWYgdGhlIHBsYW5lIGlzbid0IHBhcnQgb2YgdGhlIGF0b21p YyBzdGF0ZSB1cGRhdGUsIGZyb20gQHBsYW5lLgo+Pj4gKyAqIFRoaXMgaXMgdXNlZnVsIGluIGF0 b21pYyBjaGVjayBjYWxsYmFja3MsIHdoZW4gZHJpdmVycyBuZWVkIHRvIHBlZWsgYXQsIGJ1dAo+ Pj4gKyAqIG5vdCBjaGFuZ2UsIHN0YXRlIG9mIG90aGVyIHBsYW5lcywgc2luY2UgaXQgYXZvaWRz IHRocmVhZGluZyBhbiBlcnJvciBjb2RlCj4+PiArICogYmFjayB1cCB0aGUgY2FsbCBjaGFpbi4K Pj4+ICsgKgo+Pj4gKyAqIFdBUk5JTkc6Cj4+PiArICoKPj4+ICsgKiBOb3RlIHRoYXQgdGhpcyBm dW5jdGlvbiBpcyBpbiBnZW5lcmFsIHVuc2FmZSBzaW5jZSBpdCBkb2Vzbid0IGNoZWNrIGZvciB0 aGUKPj4+ICsgKiByZXF1aXJlZCBsb2NraW5nIGZvciBhY2Nlc3Mgc3RhdGUgc3RydWN0dXJlcy4g RHJpdmVycyBtdXN0IGVuc3VyZSB0aGF0IGl0IGlzCj4+PiArICogc2F2ZSB0byBhY2Nlc3MgdGhl IHJldHVybmVkIHN0YXRlIHN0cnVjdHVyZSB0aHJvdWdoIG90aGVyIG1lYW5zLiBPbmUgY29tbW9u ZQo+Pj4gKyAqIGV4YW1wbGUgaXMgd2hlbiBwbGFuZXMgYXJlIGZpeGVkIHRvIGEgc2luZ2xlIENS VEMsIGFuZCB0aGUgZHJpdmVyIGtub3dzIHRoYXQKPj4+ICsgKiB0aGUgQ1JUQyBsb2NrcyBpcyBo ZWxkIGFscmVhZHkuIEluIHRoYXQgY2FzZSBob2xkaW5nIHRoZSBDUlRDIGxvY2tzIGdpdmVzIGEK Pj4+ICsgKiByZWFkLWxvY2sgb24gYWxsIHBsYW5lcyBjb25uZWN0ZWQgdG8gdGhhdCBDUlRDLiBC dXQgaWYgcGxhbmVzIGNhbiBiZQo+Pj4gKyAqIHJlYXNzaWduZWQgdGhpbmdzIGdldCBtb3JlIHRy aWNreS4gSW4gdGhhdCBjYXNlIGl0J3MgYmV0dGVyIHRvIHVzZQo+Pj4gKyAqIGRybV9hdG9taWNf Z2V0X3BsYW5lX3N0YXRlIGFuZCB3aXJlIHVwIGZ1bGwgZXJyb3IgaGFuZGxpbmcuCj4+PiArICoK Pj4+ICsgKiBSZXR1cm5zOgo+Pj4gKyAqCj4+PiArICogUmVhZC1vbmx5IHBvaW50ZXIgdG8gdGhl IGN1cnJlbnQgcGxhbmUgc3RhdGUuCj4+PiArICovCj4+PiArc3RhdGljIGlubGluZSBjb25zdCBz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICoKPj4+ICtfX2RybV9hdG9taWNfZ2V0X2N1cnJlbnRfcGxh bmVfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+Pj4gKwkJCQkgICAgIHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+Pj4gK3sKPj4+ICsJaWYgKHN0YXRlLT5wbGFuZV9zdGF0 ZXNbZHJtX3BsYW5lX2luZGV4KHBsYW5lKV0pCj4+PiArCQlyZXR1cm4gc3RhdGUtPnBsYW5lX3N0 YXRlc1tkcm1fcGxhbmVfaW5kZXgocGxhbmUpXTsKPj4gQ291bGQgdXNlIGEgZGVidWcgV0FSTl9P TiBoZXJlLiBKdXN0IGluIGNhc2Ugc29tZW9uZSB0cmllcyB0byB1c2UgdGhpcyBmb3IgYSBwbGFu ZSB0aGF0IGNhbid0IGJlIHNhZmVseSBjaGVja2VkOgo+Pgo+PiBXQVJOX09OKCFwbGFuZS0+c3Rh dGUtPmNydGMgfHwgIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmcGxhbmUtPnN0YXRlLT5jcnRjLT5t dXRleCkpOwo+IElmIHlvdSBoYXZlIGh3IGxpa2UgaTkxNSwgd2hlcmUgeW91IGNhbid0IG1vdmUg cGxhbmVzLCB0aGlzIGNoZWNrIGlzbid0Cj4gZ29vZCBlbm91Z2gsIGJlY2F1c2UgcGxhbmUtPnN0 YXRlLT5jcnRjIG1pZ2h0IGJlIE5VTEwsIGJ1dCBpZiB5b3UgaG9sZCB0aGUKPiByaWdodCBjcnRj IG11dGV4IGl0J3Mgc3RpbGwgcGVyZmVjdGx5IHNhZmUuIFRoYXQncyB3aHkgSSBkaWRuJ3QgYWRk IHRoYXQKPiBjaGVjaywgYW5kIGluc3RlYWQgdHlwZWQgdGhlIHJlYWxseSBsb25nIHdhcm5pbmcu Cldyb25nISBJZiBjcnRjID09IE5VTEwsIHlvdSBjYW4gc2V0IGZvciBleGFtcGxlIGEgZGlmZmVy ZW50IHNvdXJjZSByZWN0YW5nbGUsIGFuZCBwbGFuZS0+c3RhdGUgd291bGQgY2hhbmdlIGZyb20K dW5kZXJuZWF0aCB5b3Ugc2luY2UgeW91IGRvbid0IGhvbGQgdGhlIHBsYW5lIG11dGV4Lgo+PiBB bHNvIHVzZSBkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZT8KPiBIbSwgZmVlbHMg bGlrZSBvdmVya2lsbCBzaW5jZSB0aGlzIGlzIGEgY29yZSBhdG9taWMgZnVuY3Rpb24uIFdlIGRv bid0IHVzZQo+IGdldF9leGlzdGluZ18qIGluIGRybV9hdG9taWMuYyBtdWNoIGVpdGhlci4KT2ss IGJ1dCB0aGF0J3MgYW4gb3ZlcnNpZ2h0Li4KCkxvb2tpbmcgYXQgZHJtX2F0b21pYy5jIGl0IHNl ZW1zIHRvIG1lIHRoYXQgZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X2NsZWFyIHNob3VsZCB1c2Ug Zm9yX2VhY2hfeHhfaW4gdG9vLi4KCmRybV9hdG9taWNfZ2V0X3tjcnRjLHBsYW5lfV9zdGF0ZSB1 c2VzIGdldF9leGlzdGluZ19zdGF0ZSwgZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlIGRv ZXMgbm90LCBzaW5jZSBpdCBkdXBsaWNhdGVkIHNvbWUgY2hlY2tzIGluIGRybV9hdG9taWNfZ2V0 X2Nvbm5lY3Rvcl9zdGF0ZS4KSXQgaXMgcHJvYmFibHkgd29ydGggaXQgdG8gY29udmVydCBkcm1f YXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUgdG9vLgoKQXBhcnQgZnJvbSB0aGF0IEkgZG9uJ3Qg c2VlIHdoYXQgeW91IG1lYW4uLgoKfk1hYXJ0ZW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=