From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sandeep Panda Subject: [[RFC]DPU PATCH 3/4] drm/panel: add Innolux TV123WAM eDP panel driver Date: Wed, 18 Apr 2018 17:50:01 +0530 Message-ID: <1524054002-17869-4-git-send-email-spanda@codeaurora.org> References: <1524054002-17869-1-git-send-email-spanda@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1524054002-17869-1-git-send-email-spanda-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, Sandeep Panda , abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: devicetree@vger.kernel.org QWRkIHN1cHBvcnQgZm9yIElubm9sdXggVFYxMjNXQU0gMTIuMyIgcGFuZWwgd2hpY2gKaXMgYW4g ZURQIHBhbmVsLgoKU2lnbmVkLW9mZi1ieTogU2FuZGVlcCBQYW5kYSA8c3BhbmRhQGNvZGVhdXJv cmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbm5vbHV4LXR2MTIzd2Ft LmMgfCAyOTkgKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI5OSBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLWlubm9sdXgtdHYxMjN3YW0uYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1pbm5vbHV4LXR2MTIzd2FtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt aW5ub2x1eC10djEyM3dhbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYx NDlmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaW5u b2x1eC10djEyM3dhbS5jCkBAIC0wLDAgKzEsMjk5IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMCAqLworCisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1lci5oPgorI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+Cisj aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVndWxh dG9yL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJt X3BhbmVsLmg+CisjaW5jbHVkZSA8dmlkZW8vZGlzcGxheV90aW1pbmcuaD4KKyNpbmNsdWRlIDx2 aWRlby92aWRlb21vZGUuaD4KKworc3RydWN0IHBhbmVsX2VkcF8ya19kZXNjIHsKKwljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZXM7CisJdW5zaWduZWQgaW50IG51bV9tb2RlczsK KwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBpbnQgd2lkdGg7CisJCXVuc2lnbmVkIGludCBoZWlnaHQ7 CisJfSBzaXplOworCXUzMiBicGM7CisJdTMyIGJ1c19mbGFnczsKK307CisKK3N0cnVjdCBwYW5l bF9lZHBfMmtfZGF0YSB7CisJc3RydWN0IGRybV9wYW5lbCBiYXNlOworCWJvb2wgZW5hYmxlZDsK Kwlib29sIHByZXBhcmVkOworCisJY29uc3Qgc3RydWN0IHBhbmVsX2VkcF8ya19kZXNjICpkZXNj OworCisJc3RydWN0IHJlZ3VsYXRvciAqc3VwcGx5OworCXN0cnVjdCBncGlvX2Rlc2MgKmVuYWJs ZV9ncGlvOworCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiYWNrbGlnaHQ7Cit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgaW5ub2x1eF9lZHBfMmtfbW9kZSA9IHsK KwkuY2xvY2sgPSAyMDYwMTYsCisJLmhkaXNwbGF5ID0gMjE2MCwKKwkuaHN5bmNfc3RhcnQgPSAy MTYwICsgODAsCisJLmhzeW5jX2VuZCA9IDIxNjAgKyA4MCArIDQ4LAorCS5odG90YWwgPSAyMTYw ICsgODAgKyA0OCArIDMyLAorCS52ZGlzcGxheSA9IDE0NDAsCisJLnZzeW5jX3N0YXJ0ID0gMTQ0 MCArIDI3LAorCS52c3luY19lbmQgPSAxNDQwICsgMjcgKyAzLAorCS52dG90YWwgPSAxNDQwICsg MjcgKyAzICsgMTAsCisJLnZyZWZyZXNoID0gNjAsCisJLmZsYWdzID0gRFJNX01PREVfRkxBR19Q SFNZTkMgfCBEUk1fTU9ERV9GTEFHX1BWU1lOQywKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg cGFuZWxfZWRwXzJrX2Rlc2MgaW5ub2x1eF9lZHBfMmsgPSB7CisJLm1vZGVzID0gJmlubm9sdXhf ZWRwXzJrX21vZGUsCisJLm51bV9tb2RlcyA9IDEsCisJLnNpemUgPSB7CisJCS53aWR0aCA9IDIy MywKKwkJLmhlaWdodCA9IDEyNSwKKwl9LAorCS5icGMgPSA4LAorCS5idXNfZmxhZ3MgPSBEUk1f QlVTX0ZMQUdfUElYREFUQV9QT1NFREdFLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9k ZXZpY2VfaWQgcGxhdGZvcm1fb2ZfbWF0Y2hbXSA9IHsKKwl7CisJCS5jb21wYXRpYmxlID0gImlu bm9sdXgsIGVkcF8ya19wYW5lbCIsCisJCS5kYXRhID0gJmlubm9sdXhfZWRwXzJrLAorCX0sCit9 OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBwYW5lbF9lZHBfMmtfZGF0YSAqCit0b19wYW5lbF9l ZHBfMmtfZGF0YShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlyZXR1cm4gY29udGFpbmVy X29mKHBhbmVsLCBzdHJ1Y3QgcGFuZWxfZWRwXzJrX2RhdGEsIGJhc2UpOworfQorCitzdGF0aWMg aW50IHBhbmVsX2VkcF8ya19kaXNhYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0 cnVjdCBwYW5lbF9lZHBfMmtfZGF0YSAqcGRhdGEgPSB0b19wYW5lbF9lZHBfMmtfZGF0YShwYW5l bCk7CisKKwlpZiAoIXBkYXRhLT5lbmFibGVkKQorCQlyZXR1cm4gMDsKKworCWlmIChwZGF0YS0+ YmFja2xpZ2h0KSB7CisJCXBkYXRhLT5iYWNrbGlnaHQtPnByb3BzLnBvd2VyID0gRkJfQkxBTktf UE9XRVJET1dOOworCQlwZGF0YS0+YmFja2xpZ2h0LT5wcm9wcy5zdGF0ZSB8PSBCTF9DT1JFX0ZC QkxBTks7CisJCWJhY2tsaWdodF91cGRhdGVfc3RhdHVzKHBkYXRhLT5iYWNrbGlnaHQpOworCX0K KworCXBkYXRhLT5lbmFibGVkID0gZmFsc2U7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBwYW5lbF9lZHBfMmtfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0 cnVjdCBwYW5lbF9lZHBfMmtfZGF0YSAqcGRhdGEgPSB0b19wYW5lbF9lZHBfMmtfZGF0YShwYW5l bCk7CisKKwlpZiAoIXBkYXRhLT5wcmVwYXJlZCkKKwkJcmV0dXJuIDA7CisKKwlpZiAocGRhdGEt PmVuYWJsZV9ncGlvKQorCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAocGRhdGEtPmVuYWJsZV9n cGlvLCAwKTsKKworCXJlZ3VsYXRvcl9kaXNhYmxlKHBkYXRhLT5zdXBwbHkpOworCisJcGRhdGEt PnByZXBhcmVkID0gZmFsc2U7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwYW5lbF9l ZHBfMmtfcHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKK3sKKwlzdHJ1Y3QgcGFuZWxf ZWRwXzJrX2RhdGEgKnBkYXRhID0gdG9fcGFuZWxfZWRwXzJrX2RhdGEocGFuZWwpOworCWludCBy ZXQ7CisKKwlpZiAocGRhdGEtPnByZXBhcmVkKQorCQlyZXR1cm4gMDsKKworCXJldCA9IHJlZ3Vs YXRvcl9lbmFibGUocGRhdGEtPnN1cHBseSk7CisJaWYgKHJldCA8IDApIHsKKwkJZGV2X2Vycihw YW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBzdXBwbHk6ICVkXG4iLCByZXQpOworCQlyZXR1 cm4gcmV0OworCX0KKworCWlmIChwZGF0YS0+ZW5hYmxlX2dwaW8pCisJCWdwaW9kX3NldF92YWx1 ZV9jYW5zbGVlcChwZGF0YS0+ZW5hYmxlX2dwaW8sIDEpOworCisJcGRhdGEtPnByZXBhcmVkID0g dHJ1ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBhbmVsX2VkcF8ya19lbmFibGUo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IHBhbmVsX2VkcF8ya19kYXRhICpw ZGF0YSA9IHRvX3BhbmVsX2VkcF8ya19kYXRhKHBhbmVsKTsKKworCWlmIChwZGF0YS0+ZW5hYmxl ZCkKKwkJcmV0dXJuIDA7CisKKwlpZiAocGRhdGEtPmJhY2tsaWdodCkgeworCQlwZGF0YS0+YmFj a2xpZ2h0LT5wcm9wcy5zdGF0ZSAmPSB+QkxfQ09SRV9GQkJMQU5LOworCQlwZGF0YS0+YmFja2xp Z2h0LT5wcm9wcy5wb3dlciA9IEZCX0JMQU5LX1VOQkxBTks7CisJCWJhY2tsaWdodF91cGRhdGVf c3RhdHVzKHBkYXRhLT5iYWNrbGlnaHQpOworCX0KKworCXBkYXRhLT5lbmFibGVkID0gdHJ1ZTsK KworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBhbmVsX2VkcF8ya19nZXRfbW9kZXMoc3Ry dWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IHBhbmVsX2VkcF8ya19kYXRhICpwZGF0 YSA9IHRvX3BhbmVsX2VkcF8ya19kYXRhKHBhbmVsKTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yID0gcGRhdGEtPmJhc2UuY29ubmVjdG9yOworCXN0cnVjdCBkcm1fZGV2aWNlICpk cm0gPSBwZGF0YS0+YmFzZS5kcm07CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisJ dW5zaWduZWQgaW50IGksIG51bSA9IDA7CisKKwlpZiAoIXBkYXRhLT5kZXNjIHx8ICFjb25uZWN0 b3IgfHwgIWRybSkKKwkJcmV0dXJuIDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgcGRhdGEtPmRlc2Mt Pm51bV9tb2RlczsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0g JnBkYXRhLT5kZXNjLT5tb2Rlc1tpXTsKKworCQltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRy bSwgbSk7CisJCWlmICghbW9kZSkgeworCQkJZGV2X2Vycihkcm0tPmRldiwgImZhaWxlZCB0byBh ZGQgbW9kZSAldXgldUAldVxuIiwKKwkJCQltLT5oZGlzcGxheSwgbS0+dmRpc3BsYXksIG0tPnZy ZWZyZXNoKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJbW9kZS0+dHlwZSB8PSBEUk1fTU9ERV9U WVBFX0RSSVZFUjsKKworCQlpZiAocGRhdGEtPmRlc2MtPm51bV9tb2RlcyA9PSAxKQorCQkJbW9k ZS0+dHlwZSB8PSBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKKworCQlkcm1fbW9kZV9zZXRfbmFt ZShtb2RlKTsKKworCQlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7CisJCW51 bSsrOworCX0KKworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJwYyA9IHBkYXRhLT5kZXNjLT5i cGM7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBwZGF0YS0+ZGVzYy0+c2l6 ZS53aWR0aDsKKwljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBwZGF0YS0+ZGVz Yy0+c2l6ZS5oZWlnaHQ7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdzID0gcGRh dGEtPmRlc2MtPmJ1c19mbGFnczsKKworCXJldHVybiBudW07Cit9CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIHBhbmVsX2VkcF8ya19mdW5jcyA9IHsKKwkuZGlzYWJsZSA9 IHBhbmVsX2VkcF8ya19kaXNhYmxlLAorCS51bnByZXBhcmUgPSBwYW5lbF9lZHBfMmtfdW5wcmVw YXJlLAorCS5wcmVwYXJlID0gcGFuZWxfZWRwXzJrX3ByZXBhcmUsCisJLmVuYWJsZSA9IHBhbmVs X2VkcF8ya19lbmFibGUsCisJLmdldF9tb2RlcyA9IHBhbmVsX2VkcF8ya19nZXRfbW9kZXMsCit9 OworCitzdGF0aWMgaW50IHBhbmVsX2VkcF8ya19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisJY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCAqaWQ7CisJc3RydWN0IGRldmljZV9ub2RlICpiYWNrbGlnaHQ7CisJ c3RydWN0IHBhbmVsX2VkcF8ya19kYXRhICpwZGF0YTsKKwlpbnQgcmV0OworCisJaWQgPSBvZl9t YXRjaF9ub2RlKHBsYXRmb3JtX29mX21hdGNoLCBwZGV2LT5kZXYub2Zfbm9kZSk7CisJaWYgKCFp ZCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlwZGF0YSA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVv ZigqcGRhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXBkYXRhKQorCQlyZXR1cm4gLUVOT01FTTsK KworCXBkYXRhLT5lbmFibGVkID0gZmFsc2U7CisJcGRhdGEtPmRlc2MgPSBpZC0+ZGF0YTsKKwor CXBkYXRhLT5zdXBwbHkgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoZGV2LCAicG93ZXIiKTsKKwlpZiAo SVNfRVJSKHBkYXRhLT5zdXBwbHkpKQorCQlyZXR1cm4gUFRSX0VSUihwZGF0YS0+c3VwcGx5KTsK KworCXBkYXRhLT5lbmFibGVfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0KGRldiwgImVuYWJsZSIsIEdQ SU9EX09VVF9MT1cpOworCWlmIChJU19FUlIocGRhdGEtPmVuYWJsZV9ncGlvKSkgeworCQlyZXQg PSBQVFJfRVJSKHBkYXRhLT5lbmFibGVfZ3Bpbyk7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRv IHJlcXVlc3QgR1BJTzogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJYmFja2xp Z2h0ID0gb2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJiYWNrbGlnaHQiLCAwKTsKKwlp ZiAoYmFja2xpZ2h0KSB7CisJCXBkYXRhLT5iYWNrbGlnaHQgPSBvZl9maW5kX2JhY2tsaWdodF9i eV9ub2RlKGJhY2tsaWdodCk7CisJCW9mX25vZGVfcHV0KGJhY2tsaWdodCk7CisKKwkJaWYgKCFw ZGF0YS0+YmFja2xpZ2h0KQorCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7CisJfQorCisJZHJtX3Bh bmVsX2luaXQoJnBkYXRhLT5iYXNlKTsKKwlwZGF0YS0+YmFzZS5kZXYgPSBkZXY7CisJcGRhdGEt PmJhc2UuZnVuY3MgPSAmcGFuZWxfZWRwXzJrX2Z1bmNzOworCisJcmV0ID0gZHJtX3BhbmVsX2Fk ZCgmcGRhdGEtPmJhc2UpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZyZWVfYmFja2xpZ2h0Owor CisJZGV2X3NldF9kcnZkYXRhKGRldiwgcGRhdGEpOworCisJcmV0dXJuIDA7CisKK2ZyZWVfYmFj a2xpZ2h0OgorCWlmIChwZGF0YS0+YmFja2xpZ2h0KQorCQlwdXRfZGV2aWNlKCZwZGF0YS0+YmFj a2xpZ2h0LT5kZXYpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwYW5lbF9lZHBf MmtfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRldmlj ZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlzdHJ1Y3QgcGFuZWxfZWRwXzJrX2RhdGEgKnBkYXRhID0g ZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlkcm1fcGFuZWxfZGV0YWNoKCZwZGF0YS0+YmFzZSk7 CisJZHJtX3BhbmVsX3JlbW92ZSgmcGRhdGEtPmJhc2UpOworCisJcGFuZWxfZWRwXzJrX2Rpc2Fi bGUoJnBkYXRhLT5iYXNlKTsKKwlwYW5lbF9lZHBfMmtfdW5wcmVwYXJlKCZwZGF0YS0+YmFzZSk7 CisKKwlpZiAocGRhdGEtPmJhY2tsaWdodCkKKwkJcHV0X2RldmljZSgmcGRhdGEtPmJhY2tsaWdo dC0+ZGV2KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl ciBwYW5lbF9lZHBfMmtfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImlubm9s dXgtMmstZWRwLXBhbmVsIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gcGxhdGZvcm1fb2ZfbWF0Y2gs CisJfSwKKwkucHJvYmUgPSBwYW5lbF9lZHBfMmtfcHJvYmUsCisJLnJlbW92ZSA9IHBhbmVsX2Vk cF8ya19yZW1vdmUsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBwYW5lbF9lZHBfMmtfaW5pdCh2 b2lkKQoreworCWludCByZXQ7CisKKwlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnBh bmVsX2VkcF8ya19kcml2ZXIpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0 dXJuIDA7Cit9Cittb2R1bGVfaW5pdChwYW5lbF9lZHBfMmtfaW5pdCk7CisKK3N0YXRpYyB2b2lk IF9fZXhpdCBwYW5lbF9lZHBfMmtfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJl Z2lzdGVyKCZwYW5lbF9lZHBfMmtfZHJpdmVyKTsKK30KK21vZHVsZV9leGl0KHBhbmVsX2VkcF8y a19leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJJbm5vbHV4IDJrIGVEUCBwYW5lbCBkcml2 ZXIiKTsKLS0gClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJl ciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCmEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0 aXZlIFByb2plY3QKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVu bwo=