From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93603C43603 for ; Wed, 4 Dec 2019 18:06:13 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 688BF2081B for ; Wed, 4 Dec 2019 18:06:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 688BF2081B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EE50D6F4E6; Wed, 4 Dec 2019 18:06:12 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9F2606F4BB for ; Wed, 4 Dec 2019 18:06:11 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Dec 2019 10:06:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,278,1571727600"; d="scan'208";a="208913314" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by fmsmga007.fm.intel.com with SMTP; 04 Dec 2019 10:06:09 -0800 Received: by stinkbox (sSMTP sendmail emulation); Wed, 04 Dec 2019 20:06:08 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Wed, 4 Dec 2019 20:05:45 +0200 Message-Id: <20191204180549.1267-6-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191204180549.1267-1-ville.syrjala@linux.intel.com> References: <20191204180549.1267-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkl0 J3MgZWFzeSB0byBjb25mdXNlIHRoZSBkcm1fY29ubmVjdG9yLT5lbmNvZGVyIChsZWdhY3kgc3Rh dGUKYWRqdXN0ZWQgZHVyaW5nIG1vZGVzZXQpIGFuZCBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXIg KHRoZSBzdGF0aWNhbGx5CihzYW5zLiBNU1QpIGF0dGFjaGVkIGVuY29kZXIgb2YgdGhlIGNvbm5l Y3RvcikuIEZvciB0aGUgbGF0dGVyCmxldCdzIHVzZSBpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKCkg Y29uc2lzdGVudGx5LgoKQEAKaWRlbnRpZmllciBGICF+ICJeaW50ZWxfYXR0YWNoZWRfZW5jb2Rl ciQiOwpzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpDOwpleHByZXNzaW9uIEU7CkBACkYoLi4uKQp7 CjwuLi4KKAogIEMtPmVuY29kZXIgPSBFCnwKLSBDLT5lbmNvZGVyCisgaW50ZWxfYXR0YWNoZWRf ZW5jb2RlcihDKQopCi4uLj4KfQoKQEAKaWRlbnRpZmllciBGICF+ICJeaW50ZWxfYXR0YWNoZWRf ZW5jb2RlciQiOwpzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqQzsKZXhwcmVzc2lvbiBFOwpAQApGKC4u LikKewo8Li4uCigKICB0b19pbnRlbF9jb25uZWN0b3IoQyktPmVuY29kZXIgPSBFCnwKLSB0b19p bnRlbF9jb25uZWN0b3IoQyktPmVuY29kZXIKKyBpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKHRvX2lu dGVsX2Nvbm5lY3RvcihDKSkKKQouLi4+Cn0KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICAgICAgICAgfCAgNCArKy0tCiAu Li4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jICAgIHwgMTIg KysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5j ICAgICAgICAgIHwgIDQgKystLQogLi4uL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RzaV9k Y3NfYmFja2xpZ2h0LmMgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfaGRjcC5jICAgICAgICAgICAgfCAgOCArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmMgICAgICAgICB8IDEwICsrKysrLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jICAgICAgICAgICAgICAgfCAgMiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgICAgICAgICB8ICA2 ICsrKy0tLQogMTAgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb25u ZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVjdG9yLmMK aW5kZXggMTEzM2M0ZTk3YmI0Li41NDg5MWE0ZWQyZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29ubmVjdG9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9jb25uZWN0b3IuYwpAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQg aW50ZWxfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvciwKIGJvb2wgaW50ZWxfY29ubmVjdG9yX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJZW51bSBwaXBlIHBpcGUgPSAwOwotCXN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOworCXN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyID0gaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uZWN0b3IpOwog CiAJcmV0dXJuIGVuY29kZXItPmdldF9od19zdGF0ZShlbmNvZGVyLCAmcGlwZSk7CiB9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwppbmRleCA1MmQxODdkYjMyMGYuLjNl NDYwMTcxNTBiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCkBA IC0yMDAzLDcgKzIwMDMsNyBAQCBib29sIGludGVsX2RkaV9jb25uZWN0b3JfZ2V0X2h3X3N0YXRl KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKIHsKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gaW50ZWxfY29ubmVjdG9yLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIgPSBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXI7CisJc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIgPSBpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGludGVsX2Nvbm5lY3Rvcik7 CiAJaW50IHR5cGUgPSBpbnRlbF9jb25uZWN0b3ItPmJhc2UuY29ubmVjdG9yX3R5cGU7CiAJZW51 bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNj b2RlcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5k ZXggNDU1NjhhN2M2NTc5Li5kZjFiODAzODcxMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCkBAIC03Mjc5LDcgKzcyNzksNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQkgICAgICBjb25uZWN0b3ItPmJhc2UubmFtZSk7CiAKIAlpZiAoY29ubmVj dG9yLT5nZXRfaHdfc3RhdGUoY29ubmVjdG9yKSkgewotCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKKwkJc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIgPSBpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNvbm5lY3Rvcik7CiAKIAkJSTkxNV9TVEFU RV9XQVJOKCFjcnRjX3N0YXRlLAogCQkJICJjb25uZWN0b3IgZW5hYmxlZCB3aXRob3V0IGF0dGFj aGVkIGNydGNcbiIpOwpAQCAtMTc1MjksNyArMTc1MjksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9t b2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCQkJY29u bmVjdG9yLT5iYXNlLmRwbXMgPSBEUk1fTU9ERV9EUE1TX09OOwogCi0JCQllbmNvZGVyID0gY29u bmVjdG9yLT5lbmNvZGVyOworCQkJZW5jb2RlciA9IGludGVsX2F0dGFjaGVkX2VuY29kZXIoY29u bmVjdG9yKTsKIAkJCWNvbm5lY3Rvci0+YmFzZS5lbmNvZGVyID0gJmVuY29kZXItPmJhc2U7CiAK IAkJCWNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jCmlu ZGV4IDdjNjUzZjhjMzA3Zi4uNzcxZTIyYTBiMmE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYwpAQCAtNTcsNyArNTcs NyBAQCBzdGF0aWMgdm9pZCBzZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwgYm9vbCBlbmFibGUpCiAgKi8KIHN0YXRpYyB1MzIgaW50ZWxfZHBfYXV4X2dl dF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoY29ubmVjdG9yLT5lbmNvZGVy KTsKKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGludGVsX2F0 dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKSk7CiAJdTggcmVhZF92YWxbMl0gPSB7IDB4MCB9Owog CXUxNiBsZXZlbCA9IDA7CiAKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIHZvaWQKIGludGVsX2Rw X2F1eF9zZXRfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u X3N0YXRlLCB1MzIgbGV2ZWwpCiB7CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y ID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Ci0Jc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChjb25uZWN0b3ItPmVuY29kZXIpOwor CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoaW50ZWxfYXR0YWNo ZWRfZW5jb2Rlcihjb25uZWN0b3IpKTsKIAl1OCB2YWxzWzJdID0geyAweDAgfTsKIAogCXZhbHNb MF0gPSBsZXZlbDsKQEAgLTExMCw3ICsxMTAsNyBAQCBpbnRlbF9kcF9hdXhfc2V0X2JhY2tsaWdo dChjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwgdTMyIGxldgog c3RhdGljIGJvb2wgaW50ZWxfZHBfYXV4X3NldF9wd21fZnJlcShzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gZW5jX3RvX2ludGVsX2RwKGNvbm5lY3Rvci0+ZW5jb2Rlcik7CisJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNvbm5l Y3RvcikpOwogCWludCBmcmVxLCBmeHAsIGZ4cF9taW4sIGZ4cF9tYXgsIGZ4cF9hY3R1YWwsIGYg PSAxOwogCXU4IHBuLCBwbl9taW4sIHBuX21heDsKIApAQCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2RwX2F1eF9lbmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0CiAJCQkJCSAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0g dG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Ci0Jc3RydWN0IGludGVs X2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChjb25uZWN0b3ItPmVuY29kZXIpOworCXN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoaW50ZWxfYXR0YWNoZWRf ZW5jb2Rlcihjb25uZWN0b3IpKTsKIAl1OCBkcGNkX2J1ZiwgbmV3X2RwY2RfYnVmLCBlZHBfYmFj a2xpZ2h0X21vZGU7CiAKIAlpZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsCkBA IC0yMjksNyArMjI5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4X2Rpc2FibGVfYmFja2xp Z2h0KGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGQKIHN0YXRpYyBpbnQgaW50 ZWxfZHBfYXV4X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IsCiAJCQkJCWVudW0gcGlwZSBwaXBlKQogewotCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoY29ubmVjdG9yLT5lbmNvZGVyKTsKKwlzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVj dG9yKSk7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwog CiAJaWYgKGludGVsX2RwLT5lZHBfZHBjZFsyXSAmIERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVT U19CWVRFX0NPVU5UKQpAQCAtMjQ4LDcgKzI0OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfYXV4 X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCiBzdGF0 aWMgYm9vbAogaW50ZWxfZHBfYXV4X2Rpc3BsYXlfY29udHJvbF9jYXBhYmxlKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g ZW5jX3RvX2ludGVsX2RwKGNvbm5lY3Rvci0+ZW5jb2Rlcik7CisJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNvbm5lY3Rv cikpOwogCiAJLyogQ2hlY2sgdGhlIGVEUCBEaXNwbGF5IGNvbnRyb2wgY2FwYWJpbGl0aWVzIHJl Z2lzdGVycyB0byBkZXRlcm1pbmUgaWYKIAkgKiB0aGUgcGFuZWwgY2FuIHN1cHBvcnQgYmFja2xp Z2h0IGNvbnRyb2wgb3ZlciB0aGUgYXV4IGNoYW5uZWwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwX21zdC5jCmluZGV4IGFmN2Y2ZDY3MGUwNy4uMWE3ZDY5ODQzYzEyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKQEAgLTUwMyw5 ICs1MDMsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGludGVsX2Rw X21zdF9lbmNfZnVuY3MgPSB7CiAKIHN0YXRpYyBib29sIGludGVsX2RwX21zdF9nZXRfaHdfc3Rh dGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewotCWlmIChjb25uZWN0b3It PmVuY29kZXIgJiYgY29ubmVjdG9yLT5iYXNlLnN0YXRlLT5jcnRjKSB7CisJaWYgKGludGVsX2F0 dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKSAmJiBjb25uZWN0b3ItPmJhc2Uuc3RhdGUtPmNydGMp IHsKIAkJZW51bSBwaXBlIHBpcGU7Ci0JCWlmICghY29ubmVjdG9yLT5lbmNvZGVyLT5nZXRfaHdf c3RhdGUoY29ubmVjdG9yLT5lbmNvZGVyLCAmcGlwZSkpCisJCWlmICghaW50ZWxfYXR0YWNoZWRf ZW5jb2Rlcihjb25uZWN0b3IpLT5nZXRfaHdfc3RhdGUoaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihj b25uZWN0b3IpLCAmcGlwZSkpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCXJldHVybiB0cnVlOwogCX0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX2Rjc19i YWNrbGlnaHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX2Rjc19i YWNrbGlnaHQuYwppbmRleCBjODc4Mzg4NDNkMGIuLmFjM2VmZjI2ZGYxMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2lfZGNzX2JhY2tsaWdodC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpX2Rjc19iYWNrbGlnaHQu YwpAQCAtNDUsNyArNDUsNyBAQAogCiBzdGF0aWMgdTMyIGRjc19nZXRfYmFja2xpZ2h0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciA9IGludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKTsKIAlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwogCXN0cnVjdCBtaXBp X2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7CiAJdTggZGF0YSA9IDA7CkBAIC0xNjAsNyArMTYwLDcg QEAgaW50IGludGVsX2RzaV9kY3NfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nv bm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBp bnRlbF9jb25uZWN0b3ItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IGlu dGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9 IGludGVsX2F0dGFjaGVkX2VuY29kZXIoaW50ZWxfY29ubmVjdG9yKTsKIAlzdHJ1Y3QgaW50ZWxf cGFuZWwgKnBhbmVsID0gJmludGVsX2Nvbm5lY3Rvci0+cGFuZWw7CiAKIAlpZiAoZGV2X3ByaXYt PnZidC5iYWNrbGlnaHQudHlwZSAhPSBJTlRFTF9CQUNLTElHSFRfRFNJX0RDUykKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZGNwLmMKaW5kZXggMGZkYmQzOWY2NjQxLi4yODU5 MjMwNjcxYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf aGRjcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5jCkBA IC0xNTI3LDcgKzE1MjcsNyBAQCBzdGF0aWMgaW50IGhkY3AyX2VuYWJsZV9lbmNyeXB0aW9uKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5k ZXYpOwogCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKLQllbnVt IHBvcnQgcG9ydCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsKKwllbnVtIHBvcnQgcG9ydCA9 IGludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKS0+cG9ydDsKIAllbnVtIHRyYW5zY29k ZXIgY3B1X3RyYW5zY29kZXIgPSBoZGNwLT5jcHVfdHJhbnNjb2RlcjsKIAlpbnQgcmV0OwogCkBA IC0xNTY1LDcgKzE1NjUsNyBAQCBzdGF0aWMgaW50IGhkY3AyX2Rpc2FibGVfZW5jcnlwdGlvbihz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2Uu ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Ci0JZW51 bSBwb3J0IHBvcnQgPSBjb25uZWN0b3ItPmVuY29kZXItPnBvcnQ7CisJZW51bSBwb3J0IHBvcnQg PSBpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNvbm5lY3RvciktPnBvcnQ7CiAJZW51bSB0cmFuc2Nv ZGVyIGNwdV90cmFuc2NvZGVyID0gaGRjcC0+Y3B1X3RyYW5zY29kZXI7CiAJaW50IHJldDsKIApA QCAtMTY3Niw3ICsxNjc2LDcgQEAgc3RhdGljIGludCBpbnRlbF9oZGNwMl9jaGVja19saW5rKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5k ZXYpOwogCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKLQllbnVt IHBvcnQgcG9ydCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsKKwllbnVtIHBvcnQgcG9ydCA9 IGludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKS0+cG9ydDsKIAllbnVtIHRyYW5zY29k ZXIgY3B1X3RyYW5zY29kZXI7CiAJaW50IHJldCA9IDA7CiAKQEAgLTE4MzAsNyArMTgzMCw3IEBA IHN0YXRpYyBpbmxpbmUgaW50IGluaXRpYWxpemVfaGRjcF9wb3J0X2RhdGEoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMikK IAkJZGF0YS0+ZndfZGRpID0KLQkJCWludGVsX2dldF9tZWlfZndfZGRpX2luZGV4KGNvbm5lY3Rv ci0+ZW5jb2Rlci0+cG9ydCk7CisJCQlpbnRlbF9nZXRfbWVpX2Z3X2RkaV9pbmRleChpbnRlbF9h dHRhY2hlZF9lbmNvZGVyKGNvbm5lY3RvciktPnBvcnQpOwogCWVsc2UKIAkJLyoKIAkJICogQXMg cGVyIE1FIEZXIEFQSSBleHBlY3RhdGlvbiwgZm9yIEdFTiAxMissIGZ3X2RkaSBpcyBmaWxsZWQK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmMKaW5kZXggOTlk M2EzYzc5ODllLi5jM2E0OGFmMzU5OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfaG90cGx1Zy5jCkBAIC0yMDAsNyArMjAwLDcgQEAgaW50ZWxfaHBkX2lycV9zdG9y bV9zd2l0Y2hfdG9fcG9sbGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ CQljb250aW51ZTsKIAogCQlpbnRlbF9jb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29u bmVjdG9yKTsKLQkJaW50ZWxfZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rvci0+ZW5jb2RlcjsKKwkJ aW50ZWxfZW5jb2RlciA9IGludGVsX2F0dGFjaGVkX2VuY29kZXIoaW50ZWxfY29ubmVjdG9yKTsK IAkJaWYgKCFpbnRlbF9lbmNvZGVyKQogCQkJY29udGludWU7CiAKQEAgLTI1NSw3ICsyNTUsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9ocGRfaXJxX3N0b3JtX3JlZW5hYmxlX3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogCiAJCQkvKiBEb24ndCBjaGVjayBNU1QgcG9ydHMsIHRoZXkgZG9u J3QgaGF2ZSBwaW5zICovCiAJCQlpZiAoIWludGVsX2Nvbm5lY3Rvci0+bXN0X3BvcnQgJiYKLQkJ CSAgICBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXItPmhwZF9waW4gPT0gcGluKSB7CisJCQkgICAg aW50ZWxfYXR0YWNoZWRfZW5jb2RlcihpbnRlbF9jb25uZWN0b3IpLT5ocGRfcGluID09IHBpbikg ewogCQkJCWlmIChjb25uZWN0b3ItPnBvbGxlZCAhPSBpbnRlbF9jb25uZWN0b3ItPnBvbGxlZCkK IAkJCQkJRFJNX0RFQlVHX0RSSVZFUigiUmVlbmFibGluZyBIUEQgb24gY29ubmVjdG9yICVzXG4i LAogCQkJCQkJCSBjb25uZWN0b3ItPm5hbWUpOwpAQCAtMzg5LDkgKzM4OSw5IEBAIHN0YXRpYyB2 b2lkIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQl1 MzIgaHBkX2JpdDsKIAogCQlpbnRlbF9jb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29u bmVjdG9yKTsKLQkJaWYgKCFpbnRlbF9jb25uZWN0b3ItPmVuY29kZXIpCisJCWlmICghaW50ZWxf YXR0YWNoZWRfZW5jb2RlcihpbnRlbF9jb25uZWN0b3IpKQogCQkJY29udGludWU7Ci0JCWludGVs X2VuY29kZXIgPSBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXI7CisJCWludGVsX2VuY29kZXIgPSBp bnRlbF9hdHRhY2hlZF9lbmNvZGVyKGludGVsX2Nvbm5lY3Rvcik7CiAJCWhwZF9iaXQgPSBCSVQo aW50ZWxfZW5jb2Rlci0+aHBkX3Bpbik7CiAJCWlmICgoaHBkX2V2ZW50X2JpdHMgfCBocGRfcmV0 cnlfYml0cykgJiBocGRfYml0KSB7CiAJCQlEUk1fREVCVUdfS01TKCJDb25uZWN0b3IgJXMgKHBp biAlaSkgcmVjZWl2ZWQgaG90cGx1ZyBldmVudC5cbiIsCkBAIC02MjEsNyArNjIxLDcgQEAgc3Rh dGljIHZvaWQgaTkxNV9ocGRfcG9sbF9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQogCQkJY29udGludWU7CiAKIAkJaWYgKCFjb25uZWN0b3ItPnBvbGxlZCAmJiBJOTE1X0hBU19I T1RQTFVHKGRldl9wcml2KSAmJgotCQkgICAgaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVyLT5ocGRf cGluID4gSFBEX05PTkUpIHsKKwkJICAgIGludGVsX2F0dGFjaGVkX2VuY29kZXIoaW50ZWxfY29u bmVjdG9yKS0+aHBkX3BpbiA+IEhQRF9OT05FKSB7CiAJCQljb25uZWN0b3ItPnBvbGxlZCA9IGVu YWJsZWQgPwogCQkJCURSTV9DT05ORUNUT1JfUE9MTF9DT05ORUNUIHwKIAkJCQlEUk1fQ09OTkVD VE9SX1BPTExfRElTQ09OTkVDVCA6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L3Zsdl9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5j CmluZGV4IDBjMTkwNjRlNDJlMC4uNTM1YjMzMmIwNjdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L3Zsdl9kc2kuYwpAQCAtMTU2Nyw3ICsxNTY3LDcgQEAgc3RhdGljIGVudW0gZHJtX3Bh bmVsX29yaWVudGF0aW9uCiB2bHZfZHNpX2dldF9od19wYW5lbF9vcmllbnRhdGlvbihzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciA9IGNvbm5lY3Rvci0+ZW5jb2RlcjsKKwlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciA9IGludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKTsKIAllbnVt IGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKIAllbnVtIGRybV9wYW5l bF9vcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCAzYmM4ZDVjMGU4OGEuLmQ4YzJmYTI2 NzJiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTI0MzEsNyArMjQzMSw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkY3BfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiBzdGF0 aWMgdm9pZCBpbnRlbF9kcF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAkJCSAgc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQogewotCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyID0gaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVyOworCXN0cnVjdCBpbnRl bF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gaW50ZWxfYXR0YWNoZWRfZW5jb2RlcihpbnRlbF9j b25uZWN0b3IpOwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAo aW50ZWxfZW5jb2Rlcik7CiAKIAlzZXFfcHJpbnRmKG0sICJcdERQQ0QgcmV2OiAleFxuIiwgaW50 ZWxfZHAtPmRwY2RbRFBfRFBDRF9SRVZdKTsKQEAgLTI0NTAsNyArMjQ1MCw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2RwX2luZm8oc3RydWN0IHNlcV9maWxlICptLAogc3RhdGljIHZvaWQgaW50ZWxf ZHBfbXN0X2luZm8oc3RydWN0IHNlcV9maWxlICptLAogCQkJICBzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICppbnRlbF9jb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIgPSBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXI7CisJc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIgPSBpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGludGVsX2Nvbm5lY3Rvcik7 CiAJc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9tc3QgPQogCQllbmNfdG9fbXN0 KGludGVsX2VuY29kZXIpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0ID0gaW50ZWxfbXN0LT5wcmltYXJ5OwpAQCAtMjQ2NCw3ICsyNDY0LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHBfbXN0X2luZm8oc3RydWN0IHNlcV9maWxlICptLAogc3RhdGljIHZvaWQgaW50 ZWxfaGRtaV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAkJCSAgICBzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICppbnRlbF9jb25uZWN0b3IpCiB7Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIgPSBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXI7CisJc3RydWN0IGludGVsX2VuY29k ZXIgKmludGVsX2VuY29kZXIgPSBpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGludGVsX2Nvbm5lY3Rv cik7CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaShp bnRlbF9lbmNvZGVyKTsKIAogCXNlcV9wcmludGYobSwgIlx0YXVkaW8gc3VwcG9ydDogJXNcbiIs IHllc25vKGludGVsX2hkbWktPmhhc19hdWRpbykpOwotLSAKMi4yMy4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=