From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Szyprowski Subject: [PATCH v2 21/22] drm/exynos: ipp: make framework context global Date: Mon, 30 Nov 2015 14:53:36 +0100 Message-ID: <1448891617-18830-22-git-send-email-m.szyprowski@samsung.com> References: <1448891617-18830-1-git-send-email-m.szyprowski@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1448891617-18830-1-git-send-email-m.szyprowski@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org Cc: Javier Martinez Canillas , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Seung-Woo Kim , Andrzej Hajda , Tobias Jakobi , Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org SVBQIGZyYW1ld29yayBzdG9yZWQgZ2xvYmFsIGNvbnRleHQgaW4gZHJpdmVyIGRhdGEgb2YgaXRz IHBsYXRmb3JtIGRldmljZS4KVGhpcyBwYXRjaCBtb3ZlcyBpdCB0byBnbG9iYWwgdmFyaWFibGUg dG8gc2ltcGxpZnkgYWNjZXNzLiBUaGVyZSBleGlzdHMKb25seSBvbmUgc3VjaCBmcmFtZXdvcmss IHNvIHRoZXJlIGlzIG5vIGRyYXdiYWNrIG9mIHRoaXMgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTog TWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9pcHAuYyB8IDUwICsrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDM1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9p cHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9pcHAuYwppbmRleCAwNDA0 ZTE4ZDg0Y2MuLjQ0YTY2ODllMGY0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX2lwcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Ry bV9pcHAuYwpAQCAtNDIsNyArNDIsNiBAQAogICogNy4gbmVlZCB0byBwb3dlcl9vbiBpbXBsZW1l bnQgcG93ZXIgYW5kIHN5c21tdSBjdHJsLgogICovCiAKLSNkZWZpbmUgZ2V0X2lwcF9jb250ZXh0 KGRldikJcGxhdGZvcm1fZ2V0X2RydmRhdGEodG9fcGxhdGZvcm1fZGV2aWNlKGRldikpCiAjZGVm aW5lIGlwcF9pc19tMm1fY21kKGMpCShjID09IElQUF9DTURfTTJNKQogCiAvKgpAQCAtOTUsNiAr OTQsNyBAQCBzdHJ1Y3QgaXBwX2NvbnRleHQgewogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0CSpj bWRfd29ya3E7CiB9OwogCitzdGF0aWMgc3RydWN0IGlwcF9jb250ZXh0ICpjdHg7CiBzdGF0aWMg TElTVF9IRUFEKGV4eW5vc19kcm1faXBwZHJ2X2xpc3QpOwogc3RhdGljIERFRklORV9NVVRFWChl eHlub3NfZHJtX2lwcGRydl9sb2NrKTsKIHN0YXRpYyBCTE9DS0lOR19OT1RJRklFUl9IRUFEKGV4 eW5vc19kcm1faXBwbmJfbGlzdCk7CkBAIC0yMjYsOSArMjI2LDYgQEAgc3RhdGljIHN0cnVjdCBl eHlub3NfZHJtX2lwcGRydiAqaXBwX2ZpbmRfZHJ2X2J5X2hhbmRsZSh1MzIgcHJvcF9pZCkKIGlu dCBleHlub3NfZHJtX2lwcF9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYs IHZvaWQgKmRhdGEsCiAJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIHsKLQlzdHJ1Y3QgZHJtX2V4 eW5vc19maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2OwotCXN0cnVj dCBkZXZpY2UgKmRldiA9IGZpbGVfcHJpdi0+aXBwX2RldjsKLQlzdHJ1Y3QgaXBwX2NvbnRleHQg KmN0eCA9IGdldF9pcHBfY29udGV4dChkZXYpOwogCXN0cnVjdCBkcm1fZXh5bm9zX2lwcF9wcm9w X2xpc3QgKnByb3BfbGlzdCA9IGRhdGE7CiAJc3RydWN0IGV4eW5vc19kcm1faXBwZHJ2ICppcHBk cnY7CiAJaW50IGNvdW50ID0gMDsKQEAgLTMyMCw5ICszMTcsNiBAQCBzdGF0aWMgc3RydWN0IGRy bV9leHlub3NfaXBwX2V2ZW50X3dvcmsgKmlwcF9jcmVhdGVfZXZlbnRfd29yayh2b2lkKQogaW50 IGV4eW5vc19kcm1faXBwX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rldiwg dm9pZCAqZGF0YSwKIAkJc3RydWN0IGRybV9maWxlICpmaWxlKQogewotCXN0cnVjdCBkcm1fZXh5 bm9zX2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7Ci0Jc3RydWN0 IGRldmljZSAqZGV2ID0gZmlsZV9wcml2LT5pcHBfZGV2OwotCXN0cnVjdCBpcHBfY29udGV4dCAq Y3R4ID0gZ2V0X2lwcF9jb250ZXh0KGRldik7CiAJc3RydWN0IGRybV9leHlub3NfaXBwX3Byb3Bl cnR5ICpwcm9wZXJ0eSA9IGRhdGE7CiAJc3RydWN0IGV4eW5vc19kcm1faXBwZHJ2ICppcHBkcnY7 CiAJc3RydWN0IGRybV9leHlub3NfaXBwX2NtZF9ub2RlICpjX25vZGU7CkBAIC04MDMsMjIgKzc5 NywxOCBAQCBzdGF0aWMgaW50IGlwcF9zZXRfbWVtX25vZGUoc3RydWN0IGV4eW5vc19kcm1faXBw ZHJ2ICppcHBkcnYsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgaXBwX2hhbmRsZV9j bWRfd29yayhzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JCXN0cnVjdCBleHlub3NfZHJtX2lwcGRydiAq aXBwZHJ2LAotCQlzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfY21kX3dvcmsgKmNtZF93b3JrLAotCQlz dHJ1Y3QgZHJtX2V4eW5vc19pcHBfY21kX25vZGUgKmNfbm9kZSkKK3N0YXRpYyB2b2lkIGlwcF9o YW5kbGVfY21kX3dvcmsoc3RydWN0IGV4eW5vc19kcm1faXBwZHJ2ICppcHBkcnYsCisJCQkJc3Ry dWN0IGRybV9leHlub3NfaXBwX2NtZF93b3JrICpjbWRfd29yaywKKwkJCQlzdHJ1Y3QgZHJtX2V4 eW5vc19pcHBfY21kX25vZGUgKmNfbm9kZSkKIHsKLQlzdHJ1Y3QgaXBwX2NvbnRleHQgKmN0eCA9 IGdldF9pcHBfY29udGV4dChkZXYpOwotCiAJY21kX3dvcmstPmlwcGRydiA9IGlwcGRydjsKIAlj bWRfd29yay0+Y19ub2RlID0gY19ub2RlOwogCXF1ZXVlX3dvcmsoY3R4LT5jbWRfd29ya3EsICZj bWRfd29yay0+d29yayk7CiB9CiAKLXN0YXRpYyBpbnQgaXBwX3F1ZXVlX2J1Zl93aXRoX3J1bihz dHJ1Y3QgZGV2aWNlICpkZXYsCi0JCXN0cnVjdCBkcm1fZXh5bm9zX2lwcF9jbWRfbm9kZSAqY19u b2RlLAotCQlzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfbWVtX25vZGUgKm1fbm9kZSwKLQkJc3RydWN0 IGRybV9leHlub3NfaXBwX3F1ZXVlX2J1ZiAqcWJ1ZikKK3N0YXRpYyBpbnQgaXBwX3F1ZXVlX2J1 Zl93aXRoX3J1bihzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfY21kX25vZGUgKmNfbm9kZSwKKwkJCQkg IHN0cnVjdCBkcm1fZXh5bm9zX2lwcF9tZW1fbm9kZSAqbV9ub2RlLAorCQkJCSAgc3RydWN0IGRy bV9leHlub3NfaXBwX3F1ZXVlX2J1ZiAqcWJ1ZikKIHsKIAlzdHJ1Y3QgZXh5bm9zX2RybV9pcHBk cnYgKmlwcGRydjsKIAlzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfcHJvcGVydHkgKnByb3BlcnR5OwpA QCAtODU5LDcgKzg0OSw3IEBAIHN0YXRpYyBpbnQgaXBwX3F1ZXVlX2J1Zl93aXRoX3J1bihzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJCXN0cnVjdCBkcm1fZXh5bm9zX2lwcF9jbWRfd29yayAqY21kX3dv cmsgPSBjX25vZGUtPnN0YXJ0X3dvcms7CiAKIAkJY21kX3dvcmstPmN0cmwgPSBJUFBfQ1RSTF9Q TEFZOwotCQlpcHBfaGFuZGxlX2NtZF93b3JrKGRldiwgaXBwZHJ2LCBjbWRfd29yaywgY19ub2Rl KTsKKwkJaXBwX2hhbmRsZV9jbWRfd29yayhpcHBkcnYsIGNtZF93b3JrLCBjX25vZGUpOwogCX0g ZWxzZSB7CiAJCXJldCA9IGlwcF9zZXRfbWVtX25vZGUoaXBwZHJ2LCBjX25vZGUsIG1fbm9kZSk7 CiAJCWlmIChyZXQpIHsKQEAgLTg5Myw5ICs4ODMsNiBAQCBzdGF0aWMgdm9pZCBpcHBfY2xlYW5f cXVldWVfYnVmKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAogaW50IGV4eW5vc19kcm1faXBw X3F1ZXVlX2J1ZihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rldiwgdm9pZCAqZGF0YSwKIAkJc3Ry dWN0IGRybV9maWxlICpmaWxlKQogewotCXN0cnVjdCBkcm1fZXh5bm9zX2ZpbGVfcHJpdmF0ZSAq ZmlsZV9wcml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7Ci0Jc3RydWN0IGRldmljZSAqZGV2ID0gZmls ZV9wcml2LT5pcHBfZGV2OwotCXN0cnVjdCBpcHBfY29udGV4dCAqY3R4ID0gZ2V0X2lwcF9jb250 ZXh0KGRldik7CiAJc3RydWN0IGRybV9leHlub3NfaXBwX3F1ZXVlX2J1ZiAqcWJ1ZiA9IGRhdGE7 CiAJc3RydWN0IGRybV9leHlub3NfaXBwX2NtZF9ub2RlICpjX25vZGU7CiAJc3RydWN0IGRybV9l eHlub3NfaXBwX21lbV9ub2RlICptX25vZGU7CkBAIC05NTAsNyArOTM3LDcgQEAgaW50IGV4eW5v c19kcm1faXBwX3F1ZXVlX2J1ZihzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rldiwgdm9pZCAqZGF0 YSwKIAkJCSAqIE0yTSBjYXNlIHJ1biBwbGF5IGNvbnRyb2wgZm9yIHN0cmVhbWluZyBmZWF0dXJl LgogCQkJICogb3RoZXIgY2FzZSBzZXQgYWRkcmVzcyBhbmQgd2FpdGluZy4KIAkJCSAqLwotCQkJ cmV0ID0gaXBwX3F1ZXVlX2J1Zl93aXRoX3J1bihkZXYsIGNfbm9kZSwgbV9ub2RlLCBxYnVmKTsK KwkJCXJldCA9IGlwcF9xdWV1ZV9idWZfd2l0aF9ydW4oY19ub2RlLCBtX25vZGUsIHFidWYpOwog CQkJaWYgKHJldCkgewogCQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIHJ1biBjb21tYW5kLlxuIik7 CiAJCQkJZ290byBlcnJfY2xlYW5fbm9kZTsKQEAgLTEwMjQsMTAgKzEwMTEsNyBAQCBlcnJfc3Rh dHVzOgogaW50IGV4eW5vc19kcm1faXBwX2NtZF9jdHJsKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1f ZGV2LCB2b2lkICpkYXRhLAogCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7Ci0Jc3RydWN0IGRy bV9leHlub3NfZmlsZV9wcml2YXRlICpmaWxlX3ByaXYgPSBmaWxlLT5kcml2ZXJfcHJpdjsKIAlz dHJ1Y3QgZXh5bm9zX2RybV9pcHBkcnYgKmlwcGRydiA9IE5VTEw7Ci0Jc3RydWN0IGRldmljZSAq ZGV2ID0gZmlsZV9wcml2LT5pcHBfZGV2OwotCXN0cnVjdCBpcHBfY29udGV4dCAqY3R4ID0gZ2V0 X2lwcF9jb250ZXh0KGRldik7CiAJc3RydWN0IGRybV9leHlub3NfaXBwX2NtZF9jdHJsICpjbWRf Y3RybCA9IGRhdGE7CiAJc3RydWN0IGRybV9leHlub3NfaXBwX2NtZF93b3JrICpjbWRfd29yazsK IAlzdHJ1Y3QgZHJtX2V4eW5vc19pcHBfY21kX25vZGUgKmNfbm9kZTsKQEAgLTEwNzMsMTIgKzEw NTcsMTIgQEAgaW50IGV4eW5vc19kcm1faXBwX2NtZF9jdHJsKHN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2LCB2b2lkICpkYXRhLAogCiAJCWNtZF93b3JrID0gY19ub2RlLT5zdGFydF93b3JrOwog CQljbWRfd29yay0+Y3RybCA9IGNtZF9jdHJsLT5jdHJsOwotCQlpcHBfaGFuZGxlX2NtZF93b3Jr KGRldiwgaXBwZHJ2LCBjbWRfd29yaywgY19ub2RlKTsKKwkJaXBwX2hhbmRsZV9jbWRfd29yayhp cHBkcnYsIGNtZF93b3JrLCBjX25vZGUpOwogCQlicmVhazsKIAljYXNlIElQUF9DVFJMX1NUT1A6 CiAJCWNtZF93b3JrID0gY19ub2RlLT5zdG9wX3dvcms7CiAJCWNtZF93b3JrLT5jdHJsID0gY21k X2N0cmwtPmN0cmw7Ci0JCWlwcF9oYW5kbGVfY21kX3dvcmsoZGV2LCBpcHBkcnYsIGNtZF93b3Jr LCBjX25vZGUpOworCQlpcHBfaGFuZGxlX2NtZF93b3JrKGlwcGRydiwgY21kX3dvcmssIGNfbm9k ZSk7CiAKIAkJaWYgKCF3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmNfbm9kZS0+c3RvcF9j b21wbGV0ZSwKIAkJICAgIG1zZWNzX3RvX2ppZmZpZXMoMzAwKSkpIHsKQEAgLTEwOTgsNyArMTA4 Miw3IEBAIGludCBleHlub3NfZHJtX2lwcF9jbWRfY3RybChzdHJ1Y3QgZHJtX2RldmljZSAqZHJt X2Rldiwgdm9pZCAqZGF0YSwKIAljYXNlIElQUF9DVFJMX1BBVVNFOgogCQljbWRfd29yayA9IGNf bm9kZS0+c3RvcF93b3JrOwogCQljbWRfd29yay0+Y3RybCA9IGNtZF9jdHJsLT5jdHJsOwotCQlp cHBfaGFuZGxlX2NtZF93b3JrKGRldiwgaXBwZHJ2LCBjbWRfd29yaywgY19ub2RlKTsKKwkJaXBw X2hhbmRsZV9jbWRfd29yayhpcHBkcnYsIGNtZF93b3JrLCBjX25vZGUpOwogCiAJCWlmICghd2Fp dF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZjX25vZGUtPnN0b3BfY29tcGxldGUsCiAJCSAgICBt c2Vjc190b19qaWZmaWVzKDIwMCkpKSB7CkBAIC0xMTEyLDcgKzEwOTYsNyBAQCBpbnQgZXh5bm9z X2RybV9pcHBfY21kX2N0cmwoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsIHZvaWQgKmRhdGEs CiAJCWNfbm9kZS0+c3RhdGUgPSBJUFBfU1RBVEVfU1RBUlQ7CiAJCWNtZF93b3JrID0gY19ub2Rl LT5zdGFydF93b3JrOwogCQljbWRfd29yay0+Y3RybCA9IGNtZF9jdHJsLT5jdHJsOwotCQlpcHBf aGFuZGxlX2NtZF93b3JrKGRldiwgaXBwZHJ2LCBjbWRfd29yaywgY19ub2RlKTsKKwkJaXBwX2hh bmRsZV9jbWRfd29yayhpcHBkcnYsIGNtZF93b3JrLCBjX25vZGUpOwogCQlicmVhazsKIAlkZWZh dWx0OgogCQlEUk1fRVJST1IoImNvdWxkIG5vdCBzdXBwb3J0IHRoaXMgc3RhdGUgY3VycmVudGx5 LlxuIik7CkBAIC0xNTk3LDcgKzE1ODEsNiBAQCBlcnJfY29tcGxldGlvbjoKIAogc3RhdGljIGlu dCBpcHBfc3ViZHJ2X3Byb2JlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBzdHJ1Y3QgZGV2 aWNlICpkZXYpCiB7Ci0Jc3RydWN0IGlwcF9jb250ZXh0ICpjdHggPSBnZXRfaXBwX2NvbnRleHQo ZGV2KTsKIAlzdHJ1Y3QgZXh5bm9zX2RybV9pcHBkcnYgKmlwcGRydjsKIAlpbnQgcmV0LCBjb3Vu dCA9IDA7CiAKQEAgLTE2NDksNyArMTYzMiw2IEBAIGVycjoKIHN0YXRpYyB2b2lkIGlwcF9zdWJk cnZfcmVtb3ZlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCBzdHJ1Y3QgZGV2aWNlICpkZXYp CiB7CiAJc3RydWN0IGV4eW5vc19kcm1faXBwZHJ2ICppcHBkcnYsICp0OwotCXN0cnVjdCBpcHBf Y29udGV4dCAqY3R4ID0gZ2V0X2lwcF9jb250ZXh0KGRldik7CiAKIAkvKiBnZXQgaXBwIGRyaXZl ciBlbnRyeSAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShpcHBkcnYsIHQsICZleHlub3Nf ZHJtX2lwcGRydl9saXN0LCBkcnZfbGlzdCkgewpAQCAtMTY3OSw3ICsxNjYxLDYgQEAgc3RhdGlj IHZvaWQgaXBwX3N1YmRydl9jbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rldiwgc3RydWN0 IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7CiAJc3RydWN0IGV4eW5v c19kcm1faXBwZHJ2ICppcHBkcnYgPSBOVUxMOwotCXN0cnVjdCBpcHBfY29udGV4dCAqY3R4ID0g Z2V0X2lwcF9jb250ZXh0KGRldik7CiAJc3RydWN0IGRybV9leHlub3NfaXBwX2NtZF9ub2RlICpj X25vZGUsICp0Y19ub2RlOwogCWludCBjb3VudCA9IDA7CiAKQEAgLTE3MTgsNyArMTY5OSw2IEBA IHN0YXRpYyB2b2lkIGlwcF9zdWJkcnZfY2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYs IHN0cnVjdCBkZXZpY2UgKmRldiwKIHN0YXRpYyBpbnQgaXBwX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKLQlz dHJ1Y3QgaXBwX2NvbnRleHQgKmN0eDsKIAlzdHJ1Y3QgZXh5bm9zX2RybV9zdWJkcnYgKnN1YmRy djsKIAlpbnQgcmV0OwogCkBAIC0xNzg3LDggKzE3NjcsNiBAQCBlcnJfZXZlbnRfd29ya3E6CiAK IHN0YXRpYyBpbnQgaXBwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewot CXN0cnVjdCBpcHBfY29udGV4dCAqY3R4ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Ci0K IAkvKiB1bnJlZ2lzdGVyIHN1YiBkcml2ZXIgKi8KIAlleHlub3NfZHJtX3N1YmRydl91bnJlZ2lz dGVyKCZjdHgtPnN1YmRydik7CiAKQEAgLTE4MDMsNiArMTc4MSw4IEBAIHN0YXRpYyBpbnQgaXBw X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWRlc3Ryb3lfd29ya3F1ZXVl KGN0eC0+Y21kX3dvcmtxKTsKIAlkZXN0cm95X3dvcmtxdWV1ZShjdHgtPmV2ZW50X3dvcmtxKTsK IAorCWN0eCA9IE5VTEw7CisKIAlyZXR1cm4gMDsKIH0KIAotLSAKMS45LjIKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==