From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: =?utf-8?q?=5BPATCH_09/15=5D_drm/i915=3A_GuC_submissio?= =?utf-8?q?n_setup=2C_phase_1?= Date: Mon, 15 Jun 2015 19:36:27 +0100 Message-ID: <1434393394-21002-10-git-send-email-david.s.gordon@intel.com> References: <1434393394-21002-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id C2AFE6E897 for ; Mon, 15 Jun 2015 11:38:26 -0700 (PDT) In-Reply-To: <1434393394-21002-1-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpUaGlzIGFkZHMgdGhlIGZpcnN0IG9m IHRoZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZQpHdUMgKHRo ZSBwb29sIG9mIGd1Y19jb250ZXh0IHN0cnVjdHVyZXMpLgoKV2UgY3JlYXRlIGEgR3VDLXNwZWNp ZmljIHdyYXBwZXIgcm91bmQgdGhlIEdFTSBvYmplY3QgYWxsb2NhdG9yIGFzIGFsbApHRU0gb2Jq ZWN0cyBzaGFyZWQgd2l0aCB0aGUgR3VDIG11c3QgYmUgcGlubmVkIGludG8gR0dUVCBzcGFjZSBh dCBhbgphZGRyZXNzIHRoYXQgaXMgTk9UIGluIHRoZSByYW5nZSBbMC4uV09QQ01fU0laRSksIGFz IHRoYXQgcmFuZ2Ugb2YgR0dUVAphZGRyZXNzZXMgaXMgbm90IGFjY2Vzc2libGUgdG8gdGhlIEd1 QyAoZnJvbSB0aGUgR3VDJ3MgcG9pbnQgb2YgdmlldywKaXQncyBwZXJtYW5lbnRseSByZXNlcnZl ZCBmb3Igb3RoZXIgb2JqZWN0cyBzdWNoIGFzIHRoZSBCb290Uk9NICYgU1JBTSkuCgpMYXRlciwg d2Ugd2lsbCBuZWVkIHRvIGFsbG9jYXRlIGFkZGl0aW9uYWwgR3VDLXNoYXJhYmxlIG9iamVjdHMg Zm9yIHRoZQpzdWJtaXNzaW9uIGNsaWVudChzKSBhbmQgdGhlIEd1QydzIGRlYnVnIGxvZy4KCklz c3VlOiBWSVotNDg4NApTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgICAzICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAgMTIyICsrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oICAg ICAgICAgICB8ICAgIDQgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5j ICAgIHwgICAyMSArKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3VjX3N1Ym1pc3Npb24uYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggMTU4MThkZi4uNGRiZDZi NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTQyLDcgKzQyLDggQEAgaTkxNS15ICs9IGk5MTVf Y21kX3BhcnNlci5vIFwKIGk5MTUteSArPSBpbnRlbF91Y19sb2FkZXIubwogCiAjIGdlbmVyYWwt cHVycG9zZSBtaWNyb2NvbnRyb2xsZXIgKEd1Qykgc3VwcG9ydAotaTkxNS15ICs9IGludGVsX2d1 Y19sb2FkZXIubworaTkxNS15ICs9IGludGVsX2d1Y19sb2FkZXIubyBcCisJICBpOTE1X2d1Y19z dWJtaXNzaW9uLm8KIAogIyBhdXRvZ2VuZXJhdGVkIG51bGwgcmVuZGVyIHN0YXRlCiBpOTE1LXkg Kz0gaW50ZWxfcmVuZGVyc3RhdGVfZ2VuNi5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3VjX3N1Ym1pc3Npb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzNj ZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3Vi bWlzc2lvbi5jCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQgSW50 ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNl bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFw aCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdB UkUuCisgKgorICovCisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51 eC9jaXJjX2J1Zi5oPgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaW50ZWxfZ3Vj LmgiCisKKy8qKgorICogZ2VtX2FsbG9jYXRlX2d1Y19vYmooKSAtIEFsbG9jYXRlIGdlbSBvYmpl Y3QgZm9yIEd1QyB1c2FnZQorICogQGRldjoJZHJtIGRldmljZQorICogQHNpemU6CXNpemUgb2Yg b2JqZWN0CisgKgorICogVGhpcyBpcyBhIHdyYXBwZXIgdG8gY3JlYXRlIGEgZ2VtIG9iai4gSW4g b3JkZXIgdG8gdXNlIGl0IGluc2lkZSBHdUMsIHRoZQorICogb2JqZWN0IG5lZWRzIHRvIGJlIHBp bm5lZCBsaWZldGltZS4gQWxzbyB3ZSBtdXN0IHBpbiBpdCB0byBndHQgc3BhY2Ugb3RoZXIKKyAq IHRoYW4gWzAsIEdVQ19XT1BDTV9TSVpFXSBiZWNhdXNlIHRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQg aW5zaWRlIEd1Qy4KKyAqCisgKiBSZXR1cm46CUEgZHJtX2k5MTVfZ2VtX29iamVjdCBpZiBzdWNj ZXNzZnVsLCBvdGhlcndpc2UgTlVMTC4KKyAqLworc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpnZW1fYWxsb2NhdGVfZ3VjX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJ CQkJCXUzMiBzaXplKQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisKKwlv YmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3QoZGV2LCBzaXplKTsKKwlpZiAoIW9iaikKKwkJcmV0 dXJuIE5VTEw7CisKKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlcyhvYmopKSB7CisJCWRy bV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOworCQlyZXR1cm4gTlVMTDsKKwl9 CisKKwlpZiAoaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFHRV9TSVpFLAorCQkJUElOX09G RlNFVF9CSUFTIHwgR1VDX1dPUENNX1NJWkVfVkFMVUUpKSB7CisJCWRybV9nZW1fb2JqZWN0X3Vu cmVmZXJlbmNlKCZvYmotPmJhc2UpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gb2Jq OworfQorCisvKioKKyAqIGdlbV9yZWxlYXNlX2d1Y19vYmooKSAtIFJlbGVhc2UgZ2VtIG9iamVj dCBhbGxvY2F0ZWQgZm9yIEd1QyB1c2FnZQorICogQG9iajoJZ2VtIG9iaiB0byBiZSByZWxlYXNl ZAorICAqLworc3RhdGljIHZvaWQgZ2VtX3JlbGVhc2VfZ3VjX29iaihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQoreworCWlmICghb2JqKQorCQlyZXR1cm47CisKKwlpZiAoaTkxNV9n ZW1fb2JqX2lzX3Bpbm5lZChvYmopKQorCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmop OworCisJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7Cit9CisKKy8qCisg KiBTZXQgdXAgdGhlIG1lbW9yeSByZXNvdXJjZXMgdG8gYmUgc2hhcmVkIHdpdGggdGhlIEd1Qy4g IEF0IHRoaXMgcG9pbnQsCisgKiB3ZSByZXF1aXJlIGp1c3Qgb25lIG9iamVjdCB0aGF0IGNhbiBi ZSBtYXBwZWQgdGhyb3VnaCB0aGUgR0dUVC4KKyAqLworaW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25f aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJY29uc3Qgc2l6ZV90IGN0eHNpemUgPSBz aXplb2Yoc3RydWN0IGd1Y19jb250ZXh0X2Rlc2MpOworCWNvbnN0IHNpemVfdCBwb29sc2l6ZSA9 IE1BWF9HVUNfR1BVX0NPTlRFWFRTICogY3R4c2l6ZTsKKwljb25zdCBzaXplX3QgZ2Vtc2l6ZSA9 IHJvdW5kX3VwKHBvb2xzaXplLCBQQUdFX1NJWkUpOworCXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9 ICZkZXZfcHJpdi0+Z3VjOworCisJaWYgKCFpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lvbikKKwkJ cmV0dXJuIDA7IC8qIG5vdCBlbmFibGVkICAqLworCisJaWYgKGd1Yy0+Y3R4X3Bvb2xfb2JqKQor CQlyZXR1cm4gMDsgLyogYWxyZWFkeSBhbGxvY2F0ZWQgKi8KKworCWd1Yy0+Y3R4X3Bvb2xfb2Jq ID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2X3ByaXYtPmRldiwgZ2Vtc2l6ZSk7CisJaWYgKCFn dWMtPmN0eF9wb29sX29iaikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzcGluX2xvY2tfaW5pdCgm ZGV2X3ByaXYtPmd1Yy5ob3N0Mmd1Y19sb2NrKTsKKworCWlkYV9pbml0KCZndWMtPmN0eF9pZHMp OworCisJbWVtc2V0KGd1Yy0+ZG9vcmJlbGxfYml0bWFwLCAwLCBzaXplb2YoZ3VjLT5kb29yYmVs bF9iaXRtYXApKTsKKwlndWMtPmRiX2NhY2hlbGluZSA9IDA7CisKKwlyZXR1cm4gMDsKK30KKwor dm9pZCBpOTE1X2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwor CXN0cnVjdCBpbnRlbF9ndWMgKmd1YyA9ICZkZXZfcHJpdi0+Z3VjOworCisJZ2VtX3JlbGVhc2Vf Z3VjX29iaihkZXZfcHJpdi0+Z3VjLmxvZ19vYmopOworCWd1Yy0+bG9nX29iaiA9IE5VTEw7CisK KwlpZiAoZ3VjLT5jdHhfcG9vbF9vYmopCisJCWlkYV9kZXN0cm95KCZndWMtPmN0eF9pZHMpOwor CWdlbV9yZWxlYXNlX2d1Y19vYmooZ3VjLT5jdHhfcG9vbF9vYmopOworCWd1Yy0+Y3R4X3Bvb2xf b2JqID0gTlVMTDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKaW5kZXggMGI0NDI2NS4uMDZi NjhjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKQEAgLTE3MSw0ICsxNzEsOCBAQCBleHRl cm4gdm9pZCBpbnRlbF9ndWNfdWNvZGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4 dGVybiBpbnQgaW50ZWxfZ3VjX3Vjb2RlX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9v bCB3YWl0KTsKIGV4dGVybiB2b2lkIGludGVsX2d1Y191Y29kZV9maW5pKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwogCisvKiBpOTE1X2d1Y19zdWJtaXNzaW9uLmMgKi8KK2ludCBpOTE1X2d1Y19z dWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cit2b2lkIGk5MTVfZ3VjX3N1 Ym1pc3Npb25fZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKwogI2VuZGlmCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKaW5kZXggMTZlZWY0Yy4uMGY3NDg3NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwpAQCAtMTExLDYgKzExMSwyMSBA QCBzdGF0aWMgdm9pZCBzZXRfZ3VjX2luaXRfcGFyYW1zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAkJCWk5MTUuZ3VjX2xvZ19sZXZlbCA8PCBHVUNfTE9HX1ZFUkJPU0lUWV9T SElGVDsKIAl9CiAKKwkvKiBJZiBHdUMgc2NoZWR1bGluZyBpcyBlbmFibGVkLCBzZXR1cCBwYXJh bXMgaGVyZS4gKi8KKwlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Npb24pIHsKKwkJdTMyIHBn cyA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChkZXZfcHJpdi0+Z3VjLmN0eF9wb29sX29iaik7 CisJCXUzMiBjdHhfaW5fMTYgPSBNQVhfR1VDX0dQVV9DT05URVhUUyAvIDE2OworCisJCXBncyA+ Pj0gUEFHRV9TSElGVDsKKwkJcGFyYW1zW0dVQ19DVExfQ1RYSU5GT10gPSAocGdzIDw8IEdVQ19D VExfQkFTRV9BRERSX1NISUZUKSB8CisJCQkoY3R4X2luXzE2IDw8IEdVQ19DVExfQ1RYTlVNX0lO MTZfU0hJRlQpOworCisJCXBhcmFtc1tHVUNfQ1RMX0ZFQVRVUkVdIHw9IEdVQ19DVExfS0VSTkVM X1NVQk1JU1NJT05TOworCisJCS8qIFVubWFzayB0aGlzIGJpdCB0byBlbmFibGUgR3VDIHNjaGVk dWxlciAqLworCQlwYXJhbXNbR1VDX0NUTF9GRUFUVVJFXSAmPSB+R1VDX0NUTF9ESVNBQkxFX1ND SEVEVUxFUjsKKwl9CisKIAlJOTE1X1dSSVRFKFNPRlRfU0NSQVRDSCgwKSwgMCk7CiAKIAlmb3Ig KGkgPSAwOyBpIDwgR1VDX0NUTF9NQVhfRFdPUkRTOyBpKyspCkBAIC0zODcsNiArNDAyLDEwIEBA IGludCBpbnRlbF9ndWNfdWNvZGVfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHdh aXQpCiAJaWYgKGVycikKIAkJZ290byBmYWlsOwogCisJZXJyID0gaTkxNV9ndWNfc3VibWlzc2lv bl9pbml0KGRldik7CisJaWYgKGVycikKKwkJZ290byBmYWlsOworCiAJZXJyID0gZ3VjX3Vjb2Rl X3hmZXIoZGV2KTsKIAlpZiAoZXJyKQogCQlnb3RvIGZhaWw7CkBAIC00MTIsNSArNDMxLDcgQEAg dm9pZCBpbnRlbF9ndWNfdWNvZGVfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0 IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7CiAKKwlpOTE1X2d1 Y19zdWJtaXNzaW9uX2ZpbmkoZGV2KTsKKwogCWludGVsX3VjX2Z3X2ZpbmkoZ3VjX2Z3KTsKIH0K LS0gCjEuNy45LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==