From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/2] drm/i915: Merge duplicate gen4 and vlv/chv enable vblank callbacks Date: Thu, 13 Oct 2016 16:19:49 +0200 Message-ID: <20161013141949.GA20761@phenom.ffwll.local> References: <20161007194953.15616-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-x242.google.com (mail-qk0-x242.google.com [IPv6:2607:f8b0:400d:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D6816EAA9 for ; Thu, 13 Oct 2016 14:19:53 +0000 (UTC) Received: by mail-qk0-x242.google.com with SMTP id n189so6174137qke.1 for ; Thu, 13 Oct 2016 07:19:53 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20161007194953.15616-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMDcsIDIwMTYgYXQgMDg6NDk6NTJQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IGdlbjQvdmx2L2NodiBhbGwgdXNlIHRoZSBzYW1lIGJpdHMgaW4gcGlwZXN0YXQgdG8g ZW5hYmxlIHRoZSB2YmxhbmsKPiBpbnRlcnJ1cHQsIHNvIHRoZXkgY2FuIHNoYXJlIHRoZSBzYW1l IGNhbGxiYWNrcyB0byBlbmFibGUvZGlzYWJsZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCklycmVzcGVjdGl2ZSBvZiBwYXRjaCAyIHRo aXMgc2VlbXMgbmljZS4gZ2l0IG1hZGUgYSBtZXNzIG9mIHRoZSBkaWZmLCBidXQKSSB0aGluayBp dCBhbGwgY2hlY2tzIG91dC4KClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyB8 IDU5ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBj aGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfaXJxLmMKPiBpbmRleCBiZDZjOGIwZWVhZWYuLjFlNDNmZTMwZGExMSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC0yNzE4LDQ1ICsyNzE4LDQwIEBAIHZvaWQgaTkxNV9o YW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAvKiBDYWxs ZWQgZnJvbSBkcm0gZ2VuZXJpYyBjb2RlLCBwYXNzZWQgJ2NydGMnIHdoaWNoCj4gICAqIHdlIHVz ZSBhcyBhIHBpcGUgaW5kZXgKPiAgICovCj4gLXN0YXRpYyBpbnQgaTkxNV9lbmFibGVfdmJsYW5r KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICtzdGF0aWMgaW50 IGk4eHhfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQg cGlwZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwo+ICAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiAgCj4gIAlzcGluX2xvY2tfaXJx c2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7Cj4gLQlpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPj0gNCkKPiAtCQlpOTE1X2VuYWJsZV9waXBlc3RhdChkZXZfcHJpdiwgcGlwZSwK PiAtCQkJCSAgICAgUElQRV9TVEFSVF9WQkxBTktfSU5URVJSVVBUX1NUQVRVUyk7Cj4gLQllbHNl Cj4gLQkJaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2X3ByaXYsIHBpcGUsCj4gLQkJCQkgICAgIFBJ UEVfVkJMQU5LX0lOVEVSUlVQVF9TVEFUVVMpOwo+ICsJaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2 X3ByaXYsIHBpcGUsIFBJUEVfVkJMQU5LX0lOVEVSUlVQVF9TVEFUVVMpOwo+ICAJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7Cj4gIAo+ICAJcmV0 dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaXJvbmxha2VfZW5hYmxlX3ZibGFuayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiArc3RhdGljIGludCBpOTY1 X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUp Cj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gLQl1aW50MzJfdCBiaXQgPSAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gNykgPyBERV9QSVBFX1ZCTEFOS19JVkIocGlwZSkgOgo+IC0JCQkJ CQkgICAgIERFX1BJUEVfVkJMQU5LKHBpcGUpOwo+ICAKPiAgCXNwaW5fbG9ja19pcnFzYXZlKCZk ZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiAtCWlsa19lbmFibGVfZGlzcGxheV9pcnEo ZGV2X3ByaXYsIGJpdCk7Cj4gKwlpOTE1X2VuYWJsZV9waXBlc3RhdChkZXZfcHJpdiwgcGlwZSwK PiArCQkJICAgICBQSVBFX1NUQVJUX1ZCTEFOS19JTlRFUlJVUFRfU1RBVFVTKTsKPiAgCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+ICAKPiAg CXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHZhbGxleXZpZXdfZW5hYmxlX3ZibGFu ayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiArc3RhdGljIGlu dCBpcm9ubGFrZV9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBwaXBlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwo+ICsJdWludDMyX3QgYml0 ID0gSU5URUxfR0VOKGRldikgPj0gNyA/Cj4gKwkJREVfUElQRV9WQkxBTktfSVZCKHBpcGUpIDog REVfUElQRV9WQkxBTksocGlwZSk7Cj4gIAo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2 LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+IC0JaTkxNV9lbmFibGVfcGlwZXN0YXQoZGV2X3ByaXYs IHBpcGUsCj4gLQkJCSAgICAgUElQRV9TVEFSVF9WQkxBTktfSU5URVJSVVBUX1NUQVRVUyk7Cj4g KwlpbGtfZW5hYmxlX2Rpc3BsYXlfaXJxKGRldl9wcml2LCBiaXQpOwo+ICAJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7Cj4gIAo+ICAJcmV0dXJu IDA7Cj4gQEAgLTI3NzcsMzggKzI3NzIsMzYgQEAgc3RhdGljIGludCBnZW44X2VuYWJsZV92Ymxh bmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIC8qIENhbGxl ZCBmcm9tIGRybSBnZW5lcmljIGNvZGUsIHBhc3NlZCAnY3J0Yycgd2hpY2gKPiAgICogd2UgdXNl IGFzIGEgcGlwZSBpbmRleAo+ICAgKi8KPiAtc3RhdGljIHZvaWQgaTkxNV9kaXNhYmxlX3ZibGFu ayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiArc3RhdGljIHZv aWQgaTh4eF9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOwo+ICAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiAgCj4gIAlzcGluX2xvY2tf aXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7Cj4gLQlpOTE1X2Rpc2FibGVf cGlwZXN0YXQoZGV2X3ByaXYsIHBpcGUsCj4gLQkJCSAgICAgIFBJUEVfVkJMQU5LX0lOVEVSUlVQ VF9TVEFUVVMgfAo+IC0JCQkgICAgICBQSVBFX1NUQVJUX1ZCTEFOS19JTlRFUlJVUFRfU1RBVFVT KTsKPiArCWk5MTVfZGlzYWJsZV9waXBlc3RhdChkZXZfcHJpdiwgcGlwZSwgUElQRV9WQkxBTktf SU5URVJSVVBUX1NUQVRVUyk7Cj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+ aXJxX2xvY2ssIGlycWZsYWdzKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaXJvbmxha2VfZGlz YWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4g K3N0YXRpYyB2b2lkIGk5NjVfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dW5zaWduZWQgaW50IHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gLQl1aW50 MzJfdCBiaXQgPSAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNykgPyBERV9QSVBFX1ZCTEFOS19J VkIocGlwZSkgOgo+IC0JCQkJCQkgICAgIERFX1BJUEVfVkJMQU5LKHBpcGUpOwo+ICAKPiAgCXNw aW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiAtCWlsa19k aXNhYmxlX2Rpc3BsYXlfaXJxKGRldl9wcml2LCBiaXQpOwo+ICsJaTkxNV9kaXNhYmxlX3BpcGVz dGF0KGRldl9wcml2LCBwaXBlLAo+ICsJCQkgICAgICBQSVBFX1NUQVJUX1ZCTEFOS19JTlRFUlJV UFRfU1RBVFVTKTsKPiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9j aywgaXJxZmxhZ3MpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2Rpc2FibGVf dmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICtzdGF0 aWMgdm9pZCBpcm9ubGFrZV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwo+ICAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiArCXVpbnQz Ml90IGJpdCA9IElOVEVMX0dFTihkZXYpID49IDcgPwo+ICsJCURFX1BJUEVfVkJMQU5LX0lWQihw aXBlKSA6IERFX1BJUEVfVkJMQU5LKHBpcGUpOwo+ICAKPiAgCXNwaW5fbG9ja19pcnFzYXZlKCZk ZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiAtCWk5MTVfZGlzYWJsZV9waXBlc3RhdChk ZXZfcHJpdiwgcGlwZSwKPiAtCQkJICAgICAgUElQRV9TVEFSVF9WQkxBTktfSU5URVJSVVBUX1NU QVRVUyk7Cj4gKwlpbGtfZGlzYWJsZV9kaXNwbGF5X2lycShkZXZfcHJpdiwgYml0KTsKPiAgCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+ICB9 Cj4gIAo+IEBAIC00NTc5LDE2ICs0NTcyLDE2IEBAIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5z dGFsbCA9IGNoZXJyeXZpZXdfaXJxX3ByZWluc3RhbGw7Cj4gIAkJZGV2LT5kcml2ZXItPmlycV9w b3N0aW5zdGFsbCA9IGNoZXJyeXZpZXdfaXJxX3Bvc3RpbnN0YWxsOwo+ICAJCWRldi0+ZHJpdmVy LT5pcnFfdW5pbnN0YWxsID0gY2hlcnJ5dmlld19pcnFfdW5pbnN0YWxsOwo+IC0JCWRldi0+ZHJp dmVyLT5lbmFibGVfdmJsYW5rID0gdmFsbGV5dmlld19lbmFibGVfdmJsYW5rOwo+IC0JCWRldi0+ ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IHZhbGxleXZpZXdfZGlzYWJsZV92Ymxhbms7Cj4gKwkJ ZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBpOTY1X2VuYWJsZV92Ymxhbms7Cj4gKwkJZGV2 LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gaTk2NV9kaXNhYmxlX3ZibGFuazsKPiAgCQlkZXZf cHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gaTkxNV9ocGRfaXJxX3NldHVwOwo+ICAJfSBl bHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkgewo+ICAJCWRldi0+ZHJpdmVyLT5pcnFf aGFuZGxlciA9IHZhbGxleXZpZXdfaXJxX2hhbmRsZXI7Cj4gIAkJZGV2LT5kcml2ZXItPmlycV9w cmVpbnN0YWxsID0gdmFsbGV5dmlld19pcnFfcHJlaW5zdGFsbDsKPiAgCQlkZXYtPmRyaXZlci0+ aXJxX3Bvc3RpbnN0YWxsID0gdmFsbGV5dmlld19pcnFfcG9zdGluc3RhbGw7Cj4gIAkJZGV2LT5k cml2ZXItPmlycV91bmluc3RhbGwgPSB2YWxsZXl2aWV3X2lycV91bmluc3RhbGw7Cj4gLQkJZGV2 LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSB2YWxsZXl2aWV3X2VuYWJsZV92Ymxhbms7Cj4gLQkJ ZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gdmFsbGV5dmlld19kaXNhYmxlX3ZibGFuazsK PiArCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGk5NjVfZW5hYmxlX3ZibGFuazsKPiAr CQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBpOTY1X2Rpc2FibGVfdmJsYW5rOwo+ICAJ CWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBpOTE1X2hwZF9pcnFfc2V0dXA7Cj4g IAl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gOCkgewo+ICAJCWRldi0+ ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGdlbjhfaXJxX2hhbmRsZXI7Cj4gQEAgLTQ2MTcsMjEgKzQ2 MTAsMjUgQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIAkJCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBpOHh4X2lycV9wb3N0 aW5zdGFsbDsKPiAgCQkJZGV2LT5kcml2ZXItPmlycV9oYW5kbGVyID0gaTh4eF9pcnFfaGFuZGxl cjsKPiAgCQkJZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBpOHh4X2lycV91bmluc3RhbGw7 Cj4gKwkJCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJsYW5rID0gaTh4eF9lbmFibGVfdmJsYW5rOwo+ ICsJCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBpOHh4X2Rpc2FibGVfdmJsYW5rOwo+ ICAJCX0gZWxzZSBpZiAoSVNfR0VOMyhkZXZfcHJpdikpIHsKPiAgCQkJZGV2LT5kcml2ZXItPmly cV9wcmVpbnN0YWxsID0gaTkxNV9pcnFfcHJlaW5zdGFsbDsKPiAgCQkJZGV2LT5kcml2ZXItPmly cV9wb3N0aW5zdGFsbCA9IGk5MTVfaXJxX3Bvc3RpbnN0YWxsOwo+ICAJCQlkZXYtPmRyaXZlci0+ aXJxX3VuaW5zdGFsbCA9IGk5MTVfaXJxX3VuaW5zdGFsbDsKPiAgCQkJZGV2LT5kcml2ZXItPmly cV9oYW5kbGVyID0gaTkxNV9pcnFfaGFuZGxlcjsKPiArCQkJZGV2LT5kcml2ZXItPmVuYWJsZV92 YmxhbmsgPSBpOHh4X2VuYWJsZV92Ymxhbms7Cj4gKwkJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3Zi bGFuayA9IGk4eHhfZGlzYWJsZV92Ymxhbms7Cj4gIAkJfSBlbHNlIHsKPiAgCQkJZGV2LT5kcml2 ZXItPmlycV9wcmVpbnN0YWxsID0gaTk2NV9pcnFfcHJlaW5zdGFsbDsKPiAgCQkJZGV2LT5kcml2 ZXItPmlycV9wb3N0aW5zdGFsbCA9IGk5NjVfaXJxX3Bvc3RpbnN0YWxsOwo+ICAJCQlkZXYtPmRy aXZlci0+aXJxX3VuaW5zdGFsbCA9IGk5NjVfaXJxX3VuaW5zdGFsbDsKPiAgCQkJZGV2LT5kcml2 ZXItPmlycV9oYW5kbGVyID0gaTk2NV9pcnFfaGFuZGxlcjsKPiArCQkJZGV2LT5kcml2ZXItPmVu YWJsZV92YmxhbmsgPSBpOTY1X2VuYWJsZV92Ymxhbms7Cj4gKwkJCWRldi0+ZHJpdmVyLT5kaXNh YmxlX3ZibGFuayA9IGk5NjVfZGlzYWJsZV92Ymxhbms7Cj4gIAkJfQo+ICAJCWlmIChJOTE1X0hB U19IT1RQTFVHKGRldl9wcml2KSkKPiAgCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1 cCA9IGk5MTVfaHBkX2lycV9zZXR1cDsKPiAtCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9 IGk5MTVfZW5hYmxlX3ZibGFuazsKPiAtCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBp OTE1X2Rpc2FibGVfdmJsYW5rOwo+ICAJfQo+ICB9Cj4gIAo+IC0tIAo+IDIuOS4zCj4gCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZngg bWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==