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=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,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 4AF01C47082 for ; Tue, 8 Jun 2021 07:36:34 +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 173A0610C7 for ; Tue, 8 Jun 2021 07:36:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 173A0610C7 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 B5F196EAE3; Tue, 8 Jun 2021 07:36:33 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 07B246EAE2 for ; Tue, 8 Jun 2021 07:36:31 +0000 (UTC) IronPort-SDR: MDbxc9UxiVI8U9akqKMcy0r2xQiNJvKe6L9KTCdazSkxHzzhlu0SBWiZv+dcpRpwpdfJ+O84p2 6iGm5ng4G6NA== X-IronPort-AV: E=McAfee;i="6200,9189,10008"; a="204756037" X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="204756037" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2021 00:36:31 -0700 IronPort-SDR: 0oX1xYeQ6Nsypxmqo7xFt1ekvau21BU1jSPrO6RozOVw79P5Ox/lMx8ONNBUO73In99NnpwRXX 3B+vGahltGhw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,257,1616482800"; d="scan'208";a="476504252" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.171]) by FMSMGA003.fm.intel.com with SMTP; 08 Jun 2021 00:36:28 -0700 Received: by stinkbox (sSMTP sendmail emulation); Tue, 08 Jun 2021 10:36:28 +0300 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Tue, 8 Jun 2021 10:35:53 +0300 Message-Id: <20210608073603.2408-8-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210608073603.2408-1-ville.syrjala@linux.intel.com> References: <20210608073603.2408-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 07/17] drm/i915; Return the whole buf_trans struct from get_buf_trans() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jani Nikula Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJh aXNlIHRoZSBhYnN0cmFjdGlvbiBsZXZlbCBvZiB0aGUgZ2V0X2J1Zl90cmFucygpIGZ1bmN0aW9u cwphIGJpdCBtb3JlIGJ5IHJldHVybmluZyB0aGUgd2hvbGUgd3JhcHBlciBpbnRlbF9kZGlfYnVm X3RyYW5zCnN0cnVjdC4KCnYyOiBIYW5kbGUgYWRsLXAKClJldmlld2VkLWJ5OiBKYW5pIE5pa3Vs YSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPiAjdjEKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCA3NiArKysrKysrLS0tLS0tLQogLi4uL2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5jICAgIHwgOTggKysrKysrKysrLS0t LS0tLS0tLQogLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpX2J1Zl90cmFucy5oICAgIHwg MjIgKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgOTggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKaW5kZXggZjNmYmE1 MzU4MTJjLi4zNzQ0NWNlYzBjMjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGkuYwpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgaHN3X3ByZXBhcmVfZHBfZGRpX2J1ZmZl cnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJdTMyIGlib29zdF9iaXQgPSAwOwog CWludCBpLCBuX2VudHJpZXM7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwotCWNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKmRkaV90cmFuc2xhdGlvbnM7CisJ Y29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnM7CiAKIAlk ZGlfdHJhbnNsYXRpb25zID0gaHN3X2dldF9idWZfdHJhbnMoZW5jb2RlciwgY3J0Y19zdGF0ZSwg Jm5fZW50cmllcyk7CiAKQEAgLTExNiw5ICsxMTYsOSBAQCB2b2lkIGhzd19wcmVwYXJlX2RwX2Rk aV9idWZmZXJzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJZm9yIChpID0gMDsg aSA8IG5fZW50cmllczsgaSsrKSB7CiAJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBERElfQlVG X1RSQU5TX0xPKHBvcnQsIGkpLAotCQkJICAgICAgIGRkaV90cmFuc2xhdGlvbnNbaV0uaHN3LnRy YW5zMSB8IGlib29zdF9iaXQpOworCQkJICAgICAgIGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNb aV0uaHN3LnRyYW5zMSB8IGlib29zdF9iaXQpOwogCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwg RERJX0JVRl9UUkFOU19ISShwb3J0LCBpKSwKLQkJCSAgICAgICBkZGlfdHJhbnNsYXRpb25zW2ld Lmhzdy50cmFuczIpOworCQkJICAgICAgIGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbaV0uaHN3 LnRyYW5zMik7CiAJfQogfQogCkBAIC0xMzUsNyArMTM1LDcgQEAgc3RhdGljIHZvaWQgaHN3X3By ZXBhcmVfaGRtaV9kZGlfYnVmZmVycyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl1 MzIgaWJvb3N0X2JpdCA9IDA7CiAJaW50IG5fZW50cmllczsKIAllbnVtIHBvcnQgcG9ydCA9IGVu Y29kZXItPnBvcnQ7Ci0JY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqZGRp X3RyYW5zbGF0aW9uczsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqZGRpX3Ry YW5zbGF0aW9uczsKIAogCWRkaV90cmFuc2xhdGlvbnMgPSBoc3dfZ2V0X2J1Zl90cmFucyhlbmNv ZGVyLCBjcnRjX3N0YXRlLCAgJm5fZW50cmllcyk7CiAKQEAgLTE1MSw5ICsxNTEsOSBAQCBzdGF0 aWMgdm9pZCBoc3dfcHJlcGFyZV9oZG1pX2RkaV9idWZmZXJzKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCiAJLyogRW50cnkgOSBpcyBmb3IgSERNSTogKi8KIAlpbnRlbF9kZV93cml0 ZShkZXZfcHJpdiwgRERJX0JVRl9UUkFOU19MTyhwb3J0LCA5KSwKLQkJICAgICAgIGRkaV90cmFu c2xhdGlvbnNbbGV2ZWxdLmhzdy50cmFuczEgfCBpYm9vc3RfYml0KTsKKwkJICAgICAgIGRkaV90 cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmhzdy50cmFuczEgfCBpYm9vc3RfYml0KTsKIAlp bnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRERJX0JVRl9UUkFOU19ISShwb3J0LCA5KSwKLQkJICAg ICAgIGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmhzdy50cmFuczIpOworCQkgICAgICAgZGRpX3Ry YW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0uaHN3LnRyYW5zMik7CiB9CiAKIHZvaWQgaW50ZWxf d2FpdF9kZGlfYnVmX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAt OTQ0LDcgKzk0NCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9kZGlfc2V0X2lib29zdChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJaWJvb3N0ID0gaW50ZWxfYmlvc19lbmNvZGVyX2RwX2Jv b3N0X2xldmVsKGVuY29kZXItPmRldmRhdGEpOwogCiAJaWYgKGlib29zdCA9PSAwKSB7Ci0JCWNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKmRkaV90cmFuc2xhdGlvbnM7CisJ CWNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zOwogCQlp bnQgbl9lbnRyaWVzOwogCiAJCWRkaV90cmFuc2xhdGlvbnMgPSBoc3dfZ2V0X2J1Zl90cmFucyhl bmNvZGVyLCBjcnRjX3N0YXRlLCAmbl9lbnRyaWVzKTsKQEAgLTk1NCw3ICs5NTQsNyBAQCBzdGF0 aWMgdm9pZCBza2xfZGRpX3NldF9pYm9vc3Qoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJCWlmIChkcm1fV0FSTl9PTl9PTkNFKCZkZXZfcHJpdi0+ZHJtLCBsZXZlbCA+PSBuX2VudHJp ZXMpKQogCQkJbGV2ZWwgPSBuX2VudHJpZXMgLSAxOwogCi0JCWlib29zdCA9IGRkaV90cmFuc2xh dGlvbnNbbGV2ZWxdLmhzdy5pX2Jvb3N0OworCQlpYm9vc3QgPSBkZGlfdHJhbnNsYXRpb25zLT5l bnRyaWVzW2xldmVsXS5oc3cuaV9ib29zdDsKIAl9CiAKIAkvKiBNYWtlIHN1cmUgdGhhdCB0aGUg cmVxdWVzdGVkIElfYm9vc3QgaXMgdmFsaWQgKi8KQEAgLTk3NCw3ICs5NzQsNyBAQCBzdGF0aWMg dm9pZCBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCQkgICAgaW50IGxldmVsKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCWNvbnN0IHVuaW9uIGludGVsX2Rk aV9idWZfdHJhbnNfZW50cnkgKmRkaV90cmFuc2xhdGlvbnM7CisJY29uc3Qgc3RydWN0IGludGVs X2RkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnM7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNv ZGVyLT5wb3J0OwogCWludCBuX2VudHJpZXM7CiAKQEAgLTk4NSwxMCArOTg1LDEwIEBAIHN0YXRp YyB2b2lkIGJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCQlsZXZlbCA9IG5fZW50cmllcyAtIDE7CiAKIAlieHRfZGRpX3BoeV9zZXRfc2lnbmFs X2xldmVsKGRldl9wcml2LCBwb3J0LAotCQkJCSAgICAgZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0u Ynh0Lm1hcmdpbiwKLQkJCQkgICAgIGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmJ4dC5zY2FsZSwK LQkJCQkgICAgIGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmJ4dC5lbmFibGUsCi0JCQkJICAgICBk ZGlfdHJhbnNsYXRpb25zW2xldmVsXS5ieHQuZGVlbXBoYXNpcyk7CisJCQkJICAgICBkZGlfdHJh bnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5ieHQubWFyZ2luLAorCQkJCSAgICAgZGRpX3RyYW5z bGF0aW9ucy0+ZW50cmllc1tsZXZlbF0uYnh0LnNjYWxlLAorCQkJCSAgICAgZGRpX3RyYW5zbGF0 aW9ucy0+ZW50cmllc1tsZXZlbF0uYnh0LmVuYWJsZSwKKwkJCQkgICAgIGRkaV90cmFuc2xhdGlv bnMtPmVudHJpZXNbbGV2ZWxdLmJ4dC5kZWVtcGhhc2lzKTsKIH0KIAogc3RhdGljIHU4IGludGVs X2RkaV9kcF92b2x0YWdlX21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLApAQCAtMTA0OSw3 ICsxMDQ5LDcgQEAgc3RhdGljIHZvaWQgY25sX2RkaV92c3dpbmdfcHJvZ3JhbShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICBpbnQgbGV2ZWwpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0JY29u c3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqZGRpX3RyYW5zbGF0aW9uczsKKwlj b25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsKIAllbnVt IHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJaW50IG5fZW50cmllcywgbG47CiAJdTMyIHZh bDsKQEAgLTEwNzEsOCArMTA3MSw4IEBAIHN0YXRpYyB2b2lkIGNubF9kZGlfdnN3aW5nX3Byb2dy YW0oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJdmFsID0gaW50ZWxfZGVfcmVhZChk ZXZfcHJpdiwgQ05MX1BPUlRfVFhfRFcyX0xOMChwb3J0KSk7CiAJdmFsICY9IH4oU1dJTkdfU0VM X0xPV0VSX01BU0sgfCBTV0lOR19TRUxfVVBQRVJfTUFTSyB8CiAJCSBSQ09NUF9TQ0FMQVJfTUFT Syk7Ci0JdmFsIHw9IFNXSU5HX1NFTF9VUFBFUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5jbmwu ZHcyX3N3aW5nX3NlbCk7Ci0JdmFsIHw9IFNXSU5HX1NFTF9MT1dFUihkZGlfdHJhbnNsYXRpb25z W2xldmVsXS5jbmwuZHcyX3N3aW5nX3NlbCk7CisJdmFsIHw9IFNXSU5HX1NFTF9VUFBFUihkZGlf dHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5jbmwuZHcyX3N3aW5nX3NlbCk7CisJdmFsIHw9 IFNXSU5HX1NFTF9MT1dFUihkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5jbmwuZHcy X3N3aW5nX3NlbCk7CiAJLyogUmNvbXAgc2NhbGFyIGlzIGZpeGVkIGFzIDB4OTggZm9yIGV2ZXJ5 IHRhYmxlIGVudHJ5ICovCiAJdmFsIHw9IFJDT01QX1NDQUxBUigweDk4KTsKIAlpbnRlbF9kZV93 cml0ZShkZXZfcHJpdiwgQ05MX1BPUlRfVFhfRFcyX0dSUChwb3J0KSwgdmFsKTsKQEAgLTEwODMs OSArMTA4Myw5IEBAIHN0YXRpYyB2b2lkIGNubF9kZGlfdnN3aW5nX3Byb2dyYW0oc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIENO TF9QT1JUX1RYX0RXNF9MTihsbiwgcG9ydCkpOwogCQl2YWwgJj0gfihQT1NUX0NVUlNPUl8xX01B U0sgfCBQT1NUX0NVUlNPUl8yX01BU0sgfAogCQkJIENVUlNPUl9DT0VGRl9NQVNLKTsKLQkJdmFs IHw9IFBPU1RfQ1VSU09SXzEoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uY25sLmR3NF9wb3N0X2N1 cnNvcl8xKTsKLQkJdmFsIHw9IFBPU1RfQ1VSU09SXzIoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0u Y25sLmR3NF9wb3N0X2N1cnNvcl8yKTsKLQkJdmFsIHw9IENVUlNPUl9DT0VGRihkZGlfdHJhbnNs YXRpb25zW2xldmVsXS5jbmwuZHc0X2N1cnNvcl9jb2VmZik7CisJCXZhbCB8PSBQT1NUX0NVUlNP Ul8xKGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmNubC5kdzRfcG9zdF9jdXJzb3Jf MSk7CisJCXZhbCB8PSBQT1NUX0NVUlNPUl8yKGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2 ZWxdLmNubC5kdzRfcG9zdF9jdXJzb3JfMik7CisJCXZhbCB8PSBDVVJTT1JfQ09FRkYoZGRpX3Ry YW5zbGF0aW9ucy0+ZW50cmllc1tsZXZlbF0uY25sLmR3NF9jdXJzb3JfY29lZmYpOwogCQlpbnRl bF9kZV93cml0ZShkZXZfcHJpdiwgQ05MX1BPUlRfVFhfRFc0X0xOKGxuLCBwb3J0KSwgdmFsKTsK IAl9CiAKQEAgLTExMDAsNyArMTEwMCw3IEBAIHN0YXRpYyB2b2lkIGNubF9kZGlfdnN3aW5nX3By b2dyYW0oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJLyogUHJvZ3JhbSBQT1JUX1RY X0RXNyAqLwogCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIENOTF9QT1JUX1RYX0RXN19M TjAocG9ydCkpOwogCXZhbCAmPSB+Tl9TQ0FMQVJfTUFTSzsKLQl2YWwgfD0gTl9TQ0FMQVIoZGRp X3RyYW5zbGF0aW9uc1tsZXZlbF0uY25sLmR3N19uX3NjYWxhcik7CisJdmFsIHw9IE5fU0NBTEFS KGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmNubC5kdzdfbl9zY2FsYXIpOwogCWlu dGVsX2RlX3dyaXRlKGRldl9wcml2LCBDTkxfUE9SVF9UWF9EVzdfR1JQKHBvcnQpLCB2YWwpOwog fQogCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBzdGF0aWMgdm9pZCBpY2xfZGRpX2NvbWJvX3Zzd2lu Z19wcm9ncmFtKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkgaW50IGxldmVs KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwotCWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKmRk aV90cmFuc2xhdGlvbnM7CisJY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRkaV90 cmFuc2xhdGlvbnM7CiAJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYs IGVuY29kZXItPnBvcnQpOwogCWludCBuX2VudHJpZXMsIGxuOwogCXUzMiB2YWw7CkBAIC0xMjEx LDggKzEyMTEsOCBAQCBzdGF0aWMgdm9pZCBpY2xfZGRpX2NvbWJvX3Zzd2luZ19wcm9ncmFtKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2X3By aXYsIElDTF9QT1JUX1RYX0RXMl9MTjAocGh5KSk7CiAJdmFsICY9IH4oU1dJTkdfU0VMX0xPV0VS X01BU0sgfCBTV0lOR19TRUxfVVBQRVJfTUFTSyB8CiAJCSBSQ09NUF9TQ0FMQVJfTUFTSyk7Ci0J dmFsIHw9IFNXSU5HX1NFTF9VUFBFUihkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5jbmwuZHcyX3N3 aW5nX3NlbCk7Ci0JdmFsIHw9IFNXSU5HX1NFTF9MT1dFUihkZGlfdHJhbnNsYXRpb25zW2xldmVs XS5jbmwuZHcyX3N3aW5nX3NlbCk7CisJdmFsIHw9IFNXSU5HX1NFTF9VUFBFUihkZGlfdHJhbnNs YXRpb25zLT5lbnRyaWVzW2xldmVsXS5jbmwuZHcyX3N3aW5nX3NlbCk7CisJdmFsIHw9IFNXSU5H X1NFTF9MT1dFUihkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5jbmwuZHcyX3N3aW5n X3NlbCk7CiAJLyogUHJvZ3JhbSBSY29tcCBzY2FsYXIgZm9yIGV2ZXJ5IHRhYmxlIGVudHJ5ICov CiAJdmFsIHw9IFJDT01QX1NDQUxBUigweDk4KTsKIAlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwg SUNMX1BPUlRfVFhfRFcyX0dSUChwaHkpLCB2YWwpOwpAQCAtMTIyMywxNiArMTIyMywxNiBAQCBz dGF0aWMgdm9pZCBpY2xfZGRpX2NvbWJvX3Zzd2luZ19wcm9ncmFtKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQl2YWwgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBJQ0xfUE9SVF9U WF9EVzRfTE4obG4sIHBoeSkpOwogCQl2YWwgJj0gfihQT1NUX0NVUlNPUl8xX01BU0sgfCBQT1NU X0NVUlNPUl8yX01BU0sgfAogCQkJIENVUlNPUl9DT0VGRl9NQVNLKTsKLQkJdmFsIHw9IFBPU1Rf Q1VSU09SXzEoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uY25sLmR3NF9wb3N0X2N1cnNvcl8xKTsK LQkJdmFsIHw9IFBPU1RfQ1VSU09SXzIoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uY25sLmR3NF9w b3N0X2N1cnNvcl8yKTsKLQkJdmFsIHw9IENVUlNPUl9DT0VGRihkZGlfdHJhbnNsYXRpb25zW2xl dmVsXS5jbmwuZHc0X2N1cnNvcl9jb2VmZik7CisJCXZhbCB8PSBQT1NUX0NVUlNPUl8xKGRkaV90 cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmNubC5kdzRfcG9zdF9jdXJzb3JfMSk7CisJCXZh bCB8PSBQT1NUX0NVUlNPUl8yKGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmNubC5k dzRfcG9zdF9jdXJzb3JfMik7CisJCXZhbCB8PSBDVVJTT1JfQ09FRkYoZGRpX3RyYW5zbGF0aW9u cy0+ZW50cmllc1tsZXZlbF0uY25sLmR3NF9jdXJzb3JfY29lZmYpOwogCQlpbnRlbF9kZV93cml0 ZShkZXZfcHJpdiwgSUNMX1BPUlRfVFhfRFc0X0xOKGxuLCBwaHkpLCB2YWwpOwogCX0KIAogCS8q IFByb2dyYW0gUE9SVF9UWF9EVzcgKi8KIAl2YWwgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBJ Q0xfUE9SVF9UWF9EVzdfTE4wKHBoeSkpOwogCXZhbCAmPSB+Tl9TQ0FMQVJfTUFTSzsKLQl2YWwg fD0gTl9TQ0FMQVIoZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0uY25sLmR3N19uX3NjYWxhcik7CisJ dmFsIHw9IE5fU0NBTEFSKGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmNubC5kdzdf bl9zY2FsYXIpOwogCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBJQ0xfUE9SVF9UWF9EVzdfR1JQ KHBoeSksIHZhbCk7CiB9CiAKQEAgLTEzMDMsNyArMTMwMyw3IEBAIHN0YXRpYyB2b2lkIGljbF9t Z19waHlfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2 X3ByaXYsIGVuY29kZXItPnBvcnQpOwotCWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNf ZW50cnkgKmRkaV90cmFuc2xhdGlvbnM7CisJY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJh bnMgKmRkaV90cmFuc2xhdGlvbnM7CiAJaW50IG5fZW50cmllcywgbG47CiAJdTMyIHZhbDsKIApA QCAtMTMzMywxMyArMTMzMywxMyBAQCBzdGF0aWMgdm9pZCBpY2xfbWdfcGh5X2RkaV92c3dpbmdf c2VxdWVuY2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXZhbCA9IGludGVsX2Rl X3JlYWQoZGV2X3ByaXYsIE1HX1RYMV9TV0lOR0NUUkwobG4sIHRjX3BvcnQpKTsKIAkJdmFsICY9 IH5DUklfVFhERUVNUEhfT1ZFUlJJREVfMTdfMTJfTUFTSzsKIAkJdmFsIHw9IENSSV9UWERFRU1Q SF9PVkVSUklERV8xN18xMigKLQkJCWRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLm1nLmNyaV90eGRl ZW1waF9vdmVycmlkZV8xN18xMik7CisJCQlkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xldmVs XS5tZy5jcmlfdHhkZWVtcGhfb3ZlcnJpZGVfMTdfMTIpOwogCQlpbnRlbF9kZV93cml0ZShkZXZf cHJpdiwgTUdfVFgxX1NXSU5HQ1RSTChsbiwgdGNfcG9ydCksIHZhbCk7CiAKIAkJdmFsID0gaW50 ZWxfZGVfcmVhZChkZXZfcHJpdiwgTUdfVFgyX1NXSU5HQ1RSTChsbiwgdGNfcG9ydCkpOwogCQl2 YWwgJj0gfkNSSV9UWERFRU1QSF9PVkVSUklERV8xN18xMl9NQVNLOwogCQl2YWwgfD0gQ1JJX1RY REVFTVBIX09WRVJSSURFXzE3XzEyKAotCQkJZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0ubWcuY3Jp X3R4ZGVlbXBoX292ZXJyaWRlXzE3XzEyKTsKKwkJCWRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNb bGV2ZWxdLm1nLmNyaV90eGRlZW1waF9vdmVycmlkZV8xN18xMik7CiAJCWludGVsX2RlX3dyaXRl KGRldl9wcml2LCBNR19UWDJfU1dJTkdDVFJMKGxuLCB0Y19wb3J0KSwgdmFsKTsKIAl9CiAKQEAg LTEzNDksOSArMTM0OSw5IEBAIHN0YXRpYyB2b2lkIGljbF9tZ19waHlfZGRpX3Zzd2luZ19zZXF1 ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJdmFsICY9IH4oQ1JJX1RYREVF TVBIX09WRVJSSURFXzExXzZfTUFTSyB8CiAJCQkgQ1JJX1RYREVFTVBIX09WRVJSSURFXzVfMF9N QVNLKTsKIAkJdmFsIHw9IENSSV9UWERFRU1QSF9PVkVSUklERV81XzAoCi0JCQlkZGlfdHJhbnNs YXRpb25zW2xldmVsXS5tZy5jcmlfdHhkZWVtcGhfb3ZlcnJpZGVfNV8wKSB8CisJCQlkZGlfdHJh bnNsYXRpb25zLT5lbnRyaWVzW2xldmVsXS5tZy5jcmlfdHhkZWVtcGhfb3ZlcnJpZGVfNV8wKSB8 CiAJCQlDUklfVFhERUVNUEhfT1ZFUlJJREVfMTFfNigKLQkJCQlkZGlfdHJhbnNsYXRpb25zW2xl dmVsXS5tZy5jcmlfdHhkZWVtcGhfb3ZlcnJpZGVfMTFfNikgfAorCQkJCWRkaV90cmFuc2xhdGlv bnMtPmVudHJpZXNbbGV2ZWxdLm1nLmNyaV90eGRlZW1waF9vdmVycmlkZV8xMV82KSB8CiAJCQlD UklfVFhERUVNUEhfT1ZFUlJJREVfRU47CiAJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBNR19U WDFfRFJWQ1RSTChsbiwgdGNfcG9ydCksIHZhbCk7CiAKQEAgLTEzNTksOSArMTM1OSw5IEBAIHN0 YXRpYyB2b2lkIGljbF9tZ19waHlfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJdmFsICY9IH4oQ1JJX1RYREVFTVBIX09WRVJSSURFXzExXzZfTUFT SyB8CiAJCQkgQ1JJX1RYREVFTVBIX09WRVJSSURFXzVfMF9NQVNLKTsKIAkJdmFsIHw9IENSSV9U WERFRU1QSF9PVkVSUklERV81XzAoCi0JCQlkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5tZy5jcmlf dHhkZWVtcGhfb3ZlcnJpZGVfNV8wKSB8CisJCQlkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzW2xl dmVsXS5tZy5jcmlfdHhkZWVtcGhfb3ZlcnJpZGVfNV8wKSB8CiAJCQlDUklfVFhERUVNUEhfT1ZF UlJJREVfMTFfNigKLQkJCQlkZGlfdHJhbnNsYXRpb25zW2xldmVsXS5tZy5jcmlfdHhkZWVtcGhf b3ZlcnJpZGVfMTFfNikgfAorCQkJCWRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLm1n LmNyaV90eGRlZW1waF9vdmVycmlkZV8xMV82KSB8CiAJCQlDUklfVFhERUVNUEhfT1ZFUlJJREVf RU47CiAJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBNR19UWDJfRFJWQ1RSTChsbiwgdGNfcG9y dCksIHZhbCk7CiAKQEAgLTE0NDEsNyArMTQ0MSw3IEBAIHRnbF9ka2xfcGh5X2RkaV92c3dpbmdf c2VxdWVuY2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJZW51 bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBlbmNvZGVyLT5w b3J0KTsKLQljb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICpkZGlfdHJhbnNs YXRpb25zOworCWNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRp b25zOwogCXUzMiB2YWwsIGRwY250X21hc2ssIGRwY250X3ZhbDsKIAlpbnQgbl9lbnRyaWVzLCBs bjsKIApAQCAtMTQ2MSw5ICsxNDYxLDkgQEAgdGdsX2RrbF9waHlfZGRpX3Zzd2luZ19zZXF1ZW5j ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlkcGNudF9tYXNrID0gKERLTF9UWF9Q UkVTSE9PVF9DT0VGRl9NQVNLIHwKIAkJICAgICAgREtMX1RYX0RFX0VNUEFIU0lTX0NPRUZGX01B U0sgfAogCQkgICAgICBES0xfVFhfVlNXSU5HX0NPTlRST0xfTUFTSyk7Ci0JZHBjbnRfdmFsID0g REtMX1RYX1ZTV0lOR19DT05UUk9MKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmRrbC5ka2xfdnN3 aW5nX2NvbnRyb2wpOwotCWRwY250X3ZhbCB8PSBES0xfVFhfREVfRU1QSEFTSVNfQ09FRkYoZGRp X3RyYW5zbGF0aW9uc1tsZXZlbF0uZGtsLmRrbF9kZV9lbXBoYXNpc19jb250cm9sKTsKLQlkcGNu dF92YWwgfD0gREtMX1RYX1BSRVNIT09UX0NPRUZGKGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmRr bC5ka2xfcHJlc2hvb3RfY29udHJvbCk7CisJZHBjbnRfdmFsID0gREtMX1RYX1ZTV0lOR19DT05U Uk9MKGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNbbGV2ZWxdLmRrbC5ka2xfdnN3aW5nX2NvbnRy b2wpOworCWRwY250X3ZhbCB8PSBES0xfVFhfREVfRU1QSEFTSVNfQ09FRkYoZGRpX3RyYW5zbGF0 aW9ucy0+ZW50cmllc1tsZXZlbF0uZGtsLmRrbF9kZV9lbXBoYXNpc19jb250cm9sKTsKKwlkcGNu dF92YWwgfD0gREtMX1RYX1BSRVNIT09UX0NPRUZGKGRkaV90cmFuc2xhdGlvbnMtPmVudHJpZXNb bGV2ZWxdLmRrbC5ka2xfcHJlc2hvb3RfY29udHJvbCk7CiAKIAlmb3IgKGxuID0gMDsgbG4gPCAy OyBsbisrKSB7CiAJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBISVBfSU5ERVhfUkVHKHRjX3Bv cnQpLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGlf YnVmX3RyYW5zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZf dHJhbnMuYwppbmRleCAzMTQ5YjAxYWFjYTcuLjk1YjhmOWI0M2VhMiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5zLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGlfYnVmX3RyYW5zLmMKQEAgLTEwMjcs MTkgKzEwMjcsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIGFk bHBfZGtsX3BoeV9kZGlfdHJhbnNsYXRpb25zX2RwX2hicjJfaGIKIAkubnVtX2VudHJpZXMgPSBB UlJBWV9TSVpFKF9hZGxwX2RrbF9waHlfZGRpX3RyYW5zbGF0aW9uc19kcF9oYnIyX2hicjMpLAog fTsKIAotYm9vbCBpc19ob2JsX2J1Zl90cmFucyhjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3Ry YW5zX2VudHJ5ICp0YWJsZSkKK2Jvb2wgaXNfaG9ibF9idWZfdHJhbnMoY29uc3Qgc3RydWN0IGlu dGVsX2RkaV9idWZfdHJhbnMgKnRhYmxlKQogewotCXJldHVybiB0YWJsZSA9PSB0Z2xfY29tYm9f cGh5X2RkaV90cmFuc2xhdGlvbnNfZWRwX2hicjJfaG9ibC5lbnRyaWVzOworCXJldHVybiB0YWJs ZSA9PSAmdGdsX2NvbWJvX3BoeV9kZGlfdHJhbnNsYXRpb25zX2VkcF9oYnIyX2hvYmw7CiB9CiAK LXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiBpbnRlbF9nZXRfYnVmX3RyYW5zKGNv bnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRpb25zLCBpbnQgKm51 bV9lbnRyaWVzKQogewogCSpudW1fZW50cmllcyA9IGRkaV90cmFuc2xhdGlvbnMtPm51bV9lbnRy aWVzOwotCXJldHVybiBkZGlfdHJhbnNsYXRpb25zLT5lbnRyaWVzOworCXJldHVybiBkZGlfdHJh bnNsYXRpb25zOwogfQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19l bnRyeSAqCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogYmR3X2dl dF9idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50 cmllcykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVu Y29kZXItPmJhc2UuZGV2KTsKQEAgLTEwNTMsNyArMTA1Myw3IEBAIGJkd19nZXRfYnVmX3RyYW5z X2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiAJfQog fQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogc2tsX2dldF9idWZfdHJhbnNf ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogewogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOwpAQCAtMTA3MCw3ICsxMDcwLDcgQEAgc2tsX2dldF9idWZfdHJhbnNfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogCX0KIH0KIAotc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGtibF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKQEAgLTEwOTEs NyArMTA5MSw3IEBAIGtibF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLCBpbnQgKm5fZW50cmllcykKIAl9CiB9CiAKLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRl bF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1 Zl90cmFucyAqCiBza2xfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsIGludCAqbl9lbnRyaWVzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwpAQCAtMTEyMyw3ICsxMTIzLDcgQEAg c2tsX2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQg Km5fZW50cmllcykKIAkJcmV0dXJuIHNrbF9nZXRfYnVmX3RyYW5zX2RwKGVuY29kZXIsIG5fZW50 cmllcyk7CiB9CiAKLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 ICoKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiBza2xfZ2V0X2J1 Zl90cmFuc19oZG1pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpuX2Vu dHJpZXMpCiB7CiAJaWYgKElTX1NLTF9VTFgoZGV2X3ByaXYpIHx8CkBAIC0xMTQ3LDcgKzExNDcs NyBAQCBzdGF0aWMgaW50IHNrbF9idWZfdHJhbnNfbnVtX2VudHJpZXMoZW51bSBwb3J0IHBvcnQs IGludCBuX2VudHJpZXMpCiAJCXJldHVybiBtaW4obl9lbnRyaWVzLCA5KTsKIH0KIAotc3RhdGlj IGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGhzd19nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKQEAgLTEx NTUsMTIgKzExNTUsMTIgQEAgaHN3X2dldF9idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogCWlmIChJU19LQUJZTEFLRShkZXZfcHJpdikg fHwKIAkgICAgSVNfQ09GRkVFTEFLRShkZXZfcHJpdikgfHwKIAkgICAgSVNfQ09NRVRMQUtFKGRl dl9wcml2KSkgewotCQljb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICpkZGlf dHJhbnNsYXRpb25zID0KKwkJY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKmRkaV90 cmFuc2xhdGlvbnMgPQogCQkJa2JsX2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9lbnRyaWVz KTsKIAkJKm5fZW50cmllcyA9IHNrbF9idWZfdHJhbnNfbnVtX2VudHJpZXMoZW5jb2Rlci0+cG9y dCwgKm5fZW50cmllcyk7CiAJCXJldHVybiBkZGlfdHJhbnNsYXRpb25zOwogCX0gZWxzZSBpZiAo SVNfU0tZTEFLRShkZXZfcHJpdikpIHsKLQkJY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFu c19lbnRyeSAqZGRpX3RyYW5zbGF0aW9ucyA9CisJCWNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVm X3RyYW5zICpkZGlfdHJhbnNsYXRpb25zID0KIAkJCXNrbF9nZXRfYnVmX3RyYW5zX2RwKGVuY29k ZXIsIG5fZW50cmllcyk7CiAJCSpuX2VudHJpZXMgPSBza2xfYnVmX3RyYW5zX251bV9lbnRyaWVz KGVuY29kZXItPnBvcnQsICpuX2VudHJpZXMpOwogCQlyZXR1cm4gZGRpX3RyYW5zbGF0aW9uczsK QEAgLTExNzYsMTMgKzExNzYsMTMgQEAgaHN3X2dldF9idWZfdHJhbnNfZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogCXJldHVybiBOVUxMOwogfQogCi1z dGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogaHN3X2dldF9idWZfdHJhbnNfZWRwKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK IAogCWlmIChESVNQTEFZX1ZFUihkZXZfcHJpdikgPT0gOSAmJiAhSVNfQlJPWFRPTihkZXZfcHJp dikpIHsKLQkJY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqZGRpX3RyYW5z bGF0aW9ucyA9CisJCWNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNs YXRpb25zID0KIAkJCXNrbF9nZXRfYnVmX3RyYW5zX2VkcChlbmNvZGVyLCBuX2VudHJpZXMpOwog CQkqbl9lbnRyaWVzID0gc2tsX2J1Zl90cmFuc19udW1fZW50cmllcyhlbmNvZGVyLT5wb3J0LCAq bl9lbnRyaWVzKTsKIAkJcmV0dXJuIGRkaV90cmFuc2xhdGlvbnM7CkBAIC0xMTk3LDcgKzExOTcs NyBAQCBoc3dfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs IGludCAqbl9lbnRyaWVzKQogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgY29uc3QgdW5pb24g aW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rk aV9idWZfdHJhbnMgKgogaHN3X2dldF9idWZfdHJhbnNfZmRpKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQkgICAgICBpbnQgKm5fZW50cmllcykKIHsKQEAgLTEyMTUsNyArMTIxNSw3 IEBAIGhzd19nZXRfYnVmX3RyYW5zX2ZkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJh bnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGhz d19nZXRfYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAg ICAgICBpbnQgKm5fZW50cmllcykKIHsKQEAgLTEyMzUsNyArMTIzNSw3IEBAIGhzd19nZXRfYnVm X3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJcmV0dXJuIE5VTEw7 CiB9CiAKLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorY29uc3Qgc3Ry dWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogaHN3X2dldF9idWZfdHJhbnMoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJCSAgaW50ICpuX2VudHJpZXMpCkBAIC0xMjUwLDEzICsxMjUwLDEzIEBAIGhz d19nZXRfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQlyZXR1cm4g aHN3X2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9lbnRyaWVzKTsKIH0KIAotc3RhdGljIGNv bnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0cnVj dCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGJ4dF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIHsKIAlyZXR1cm4gaW50ZWxfZ2V0 X2J1Zl90cmFucygmYnh0X2RkaV90cmFuc2xhdGlvbnNfZHAsIG5fZW50cmllcyk7CiB9CiAKLXN0 YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiBieHRfZ2V0X2J1Zl90cmFuc19lZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwpA QCAtMTI2OSwxMyArMTI2OSwxMyBAQCBieHRfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsIGludCAqbl9lbnRyaWVzKQogCXJldHVybiBieHRfZ2V0X2J1Zl90 cmFuc19kcChlbmNvZGVyLCBuX2VudHJpZXMpOwogfQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50 ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9i dWZfdHJhbnMgKgogYnh0X2dldF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwgaW50ICpuX2VudHJpZXMpCiB7CiAJcmV0dXJuIGludGVsX2dldF9idWZfdHJhbnMo JmJ4dF9kZGlfdHJhbnNsYXRpb25zX2hkbWksIG5fZW50cmllcyk7CiB9CiAKLWNvbnN0IHVuaW9u IGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZf dHJhbnMgKgogYnh0X2dldF9idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgaW50 ICpuX2VudHJpZXMpCkBAIC0xMjg3LDcgKzEyODcsNyBAQCBieHRfZ2V0X2J1Zl90cmFucyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlyZXR1cm4gYnh0X2dldF9idWZfdHJhbnNfZHAo ZW5jb2Rlciwgbl9lbnRyaWVzKTsKIH0KIAotc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9i dWZfdHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5z ICoKIGNubF9nZXRfYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs IGludCAqbl9lbnRyaWVzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwpAQCAtMTMwOSw3ICsxMzA5LDcgQEAgY25sX2dl dF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2Vu dHJpZXMpCiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlf YnVmX3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFu cyAqCiBjbmxfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlciwg aW50ICpuX2VudHJpZXMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CkBAIC0xMzMxLDcgKzEzMzEsNyBAQCBjbmxfZ2V0 X2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50ICpuX2VudHJp ZXMpCiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVm X3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAq CiBjbmxfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGlu dCAqbl9lbnRyaWVzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwpAQCAtMTM1Nyw3ICsxMzU3LDcgQEAgY25sX2dldF9i dWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmll cykKIAl9CiB9CiAKLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorY29u c3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogY25sX2dldF9idWZfdHJhbnMoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJCSAgaW50ICpuX2VudHJpZXMpCkBAIC0xMzY5LDcgKzEzNjksNyBA QCBjbmxfZ2V0X2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlyZXR1 cm4gY25sX2dldF9idWZfdHJhbnNfZHAoZW5jb2Rlciwgbl9lbnRyaWVzKTsKIH0KIAotc3RhdGlj IGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zX2hkbWko c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICBpbnQgKm5fZW50cmllcykKQEAgLTEz NzgsNyArMTM3OCw3IEBAIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgbl9lbnRyaWVzKTsKIH0KIAotc3RhdGljIGNvbnN0 IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9kZGlfYnVmX3RyYW5zICoKIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJCQkgICBpbnQgKm5fZW50cmllcykKQEAgLTEzODcsNyArMTM4Nyw3 IEBAIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCQkJCSAgIG5fZW50cmllcyk7CiB9CiAKLXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9k ZGlfYnVmX3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90 cmFucyAqCiBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCQkgICAgaW50ICpuX2VudHJpZXMpCkBAIC0xNDExLDcgKzE0MTEsNyBAQCBpY2xfZ2V0 X2NvbWJvX2J1Zl90cmFuc19lZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJcmV0 dXJuIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50 cmllcyk7CiB9CiAKLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorY29u c3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogaWNsX2dldF9jb21ib19idWZfdHJhbnMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCWludCAqbl9lbnRyaWVzKQpAQCAtMTQyNCw3ICsxNDI0 LDcgQEAgaWNsX2dldF9jb21ib19idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJCXJldHVybiBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0 YXRlLCBuX2VudHJpZXMpOwogfQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSAqCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgog aWNsX2dldF9tZ19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgIGlu dCAqbl9lbnRyaWVzKQpAQCAtMTQzMyw3ICsxNDMzLDcgQEAgaWNsX2dldF9tZ19idWZfdHJhbnNf aGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICBuX2VudHJpZXMpOwog fQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogaWNsX2dldF9tZ19idWZfdHJh bnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQljb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCWludCAqbl9lbnRyaWVzKQpAQCAtMTQ0Nyw3 ICsxNDQ3LDcgQEAgaWNsX2dldF9tZ19idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJfQogfQogCi1jb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 ICoKK2NvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGljbF9nZXRfbWdfYnVmX3Ry YW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkgICAgIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgICAgIGludCAqbl9lbnRyaWVzKQpAQCAt MTQ1OCw3ICsxNDU4LDcgQEAgaWNsX2dldF9tZ19idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJCXJldHVybiBpY2xfZ2V0X21nX2J1Zl90cmFuc19kcChlbmNvZGVyLCBj cnRjX3N0YXRlLCBuX2VudHJpZXMpOwogfQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSAqCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJh bnMgKgogZWhsX2dldF9jb21ib19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCQkgICAgIGludCAqbl9lbnRyaWVzKQpAQCAtMTQ2Nyw3ICsxNDY3LDcgQEAgZWhsX2dl dF9jb21ib19idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ CQkgICBuX2VudHJpZXMpOwogfQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90 cmFuc19lbnRyeSAqCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgog ZWhsX2dldF9jb21ib19idWZfdHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAg IGludCAqbl9lbnRyaWVzKQpAQCAtMTQ3Niw3ICsxNDc2LDcgQEAgZWhsX2dldF9jb21ib19idWZf dHJhbnNfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgbl9lbnRyaWVz KTsKIH0KIAotc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgor c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGVobF9nZXRfY29tYm9f YnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICBpbnQgKm5fZW50 cmllcykKQEAgLTE0OTEsNyArMTQ5MSw3IEBAIGVobF9nZXRfY29tYm9fYnVmX3RyYW5zX2VkcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlyZXR1cm4gZWhsX2dldF9jb21ib19idWZf dHJhbnNfZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsKIH0KIAotY29uc3QgdW5p b24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1 Zl90cmFucyAqCiBlaGxfZ2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQkJaW50ICpuX2VudHJpZXMpCkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBlaGxfZ2V0X2NvbWJvX2J1 Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJcmV0dXJuIGVobF9nZXRf Y29tYm9fYnVmX3RyYW5zX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7CiB9CiAK LXN0YXRpYyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFu c19oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgaW50ICpuX2VudHJpZXMp CkBAIC0xNTEzLDcgKzE1MTMsNyBAQCBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19oZG1pKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgIG5fZW50cmllcyk7CiB9CiAKLXN0YXRp YyBjb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgaW50ICpuX2VudHJpZXMpCkBAIC0xNTIyLDcg KzE1MjIsNyBAQCBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAkJCQkgICBuX2VudHJpZXMpOwogfQogCi1zdGF0aWMgY29uc3QgdW5pb24g aW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rk aV9idWZfdHJhbnMgKgoganNsX2dldF9jb21ib19idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQkJICAgIGludCAqbl9lbnRyaWVzKQpAQCAtMTU0Miw3ICsxNTQyLDcgQEAg anNsX2dldF9jb21ib19idWZfdHJhbnNfZWRwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCXJldHVybiBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0YXRl LCBuX2VudHJpZXMpOwogfQogCi1jb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5 ICoKK2NvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGpzbF9nZXRfY29tYm9fYnVm X3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQlpbnQgKm5fZW50cmllcykKQEAgLTE1NTUs NyArMTU1NSw3IEBAIGpzbF9nZXRfY29tYm9fYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQlyZXR1cm4ganNsX2dldF9jb21ib19idWZfdHJhbnNfZHAoZW5jb2Rlciwg Y3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsKIH0KIAotc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2Rk aV9idWZfdHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3Ry YW5zICoKIHRnbF9nZXRfY29tYm9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogCQkJICAgICBpbnQgKm5fZW50cmllcykKQEAgLTE1NjQsNyArMTU2NCw3IEBAIHRnbF9n ZXRfY29tYm9fYnVmX3RyYW5zX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ CQkJICAgbl9lbnRyaWVzKTsKIH0KIAotc3RhdGljIGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZf dHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoK IHRnbF9nZXRfY29tYm9fYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkg ICBpbnQgKm5fZW50cmllcykKQEAgLTE1OTMsNyArMTU5Myw3IEBAIHRnbF9nZXRfY29tYm9fYnVm X3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCX0KIH0KIAotc3RhdGlj IGNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorc3RhdGljIGNvbnN0IHN0 cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIHRnbF9nZXRfY29tYm9fYnVmX3RyYW5zX2VkcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICBpbnQgKm5fZW50cmllcykKQEAgLTE2MTUs NyArMTYxNSw3IEBAIHRnbF9nZXRfY29tYm9fYnVmX3RyYW5zX2VkcChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAlyZXR1cm4gdGdsX2dldF9jb21ib19idWZfdHJhbnNfZHAoZW5jb2Rl ciwgY3J0Y19zdGF0ZSwgbl9lbnRyaWVzKTsKIH0KIAotY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1 Zl90cmFuc19lbnRyeSAqCitjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiB0Z2xf Z2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCWNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJaW50ICpuX2VudHJp ZXMpCkBAIC0xNjI4LDcgKzE2MjgsNyBAQCB0Z2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJcmV0dXJuIHRnbF9nZXRfY29tYm9fYnVmX3RyYW5z X2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIG5fZW50cmllcyk7CiB9CiAKLXN0YXRpYyBjb25zdCB1 bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50 ZWxfZGRpX2J1Zl90cmFucyAqCiB0Z2xfZ2V0X2RrbF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCQkJICAgaW50ICpuX2VudHJpZXMpCkBAIC0xNjM3LDcgKzE2MzcsNyBA QCB0Z2xfZ2V0X2RrbF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCQkgICBuX2VudHJpZXMpOwogfQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSAqCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJh bnMgKgogdGdsX2dldF9ka2xfYnVmX3RyYW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJ IGludCAqbl9lbnRyaWVzKQpAQCAtMTY1MSw3ICsxNjUxLDcgQEAgdGdsX2dldF9ka2xfYnVmX3Ry YW5zX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCX0KIH0KIAotY29uc3QgdW5p b24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1 Zl90cmFucyAqCiB0Z2xfZ2V0X2RrbF9idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCQkgICAgICBpbnQgKm5fZW50cmllcykKQEAgLTE2NjIsNyArMTY2Miw3IEBAIHRnbF9nZXRf ZGtsX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJcmV0dXJuIHRn bF9nZXRfZGtsX2J1Zl90cmFuc19kcChlbmNvZGVyLCBjcnRjX3N0YXRlLCBuX2VudHJpZXMpOwog fQogCi1zdGF0aWMgY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogYWRscF9nZXRfZGtsX2J1Zl90 cmFuc19kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgIGludCAqbl9lbnRyaWVzKQpAQCAt MTY3Niw3ICsxNjc2LDcgQEAgYWRscF9nZXRfZGtsX2J1Zl90cmFuc19kcChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAl9CiB9CiAKLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJh bnNfZW50cnkgKgorY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogYWRscF9nZXRf ZGtsX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICAgICAgIGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgICAgICAgaW50ICpu X2VudHJpZXMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RkaV9idWZfdHJhbnMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRp X2J1Zl90cmFucy5oCmluZGV4IGFhNjEyNzI1ZDUxMC4uMmZmYTUzNDAxMGIzIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaV9idWZfdHJhbnMuaApAQCAt NTgsNTIgKzU4LDUyIEBAIHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zIHsKIAl1OCBudW1fZW50 cmllczsKIH07CiAKLWJvb2wgaXNfaG9ibF9idWZfdHJhbnMoY29uc3QgdW5pb24gaW50ZWxfZGRp X2J1Zl90cmFuc19lbnRyeSAqdGFibGUpOworYm9vbCBpc19ob2JsX2J1Zl90cmFucyhjb25zdCBz dHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqdGFibGUpOwogCiBpbnQgaW50ZWxfZGRpX2hkbWlf bnVtX2VudHJpZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICAgICAgaW50ICpk ZWZhdWx0X2VudHJ5KTsKIAotY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAq Citjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiBoc3dfZ2V0X2J1Zl90cmFucyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICBpbnQgKm5fZW50cmllcyk7CiAKLWNvbnN0IHVuaW9u IGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZf dHJhbnMgKgogYnh0X2dldF9idWZfdHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgaW50 ICpuX2VudHJpZXMpOwogCi1jb25zdCB1bmlvbiBpbnRlbF9kZGlfYnVmX3RyYW5zX2VudHJ5ICoK K2NvbnN0IHN0cnVjdCBpbnRlbF9kZGlfYnVmX3RyYW5zICoKIGFkbHBfZ2V0X2RrbF9idWZfdHJh bnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAgICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgICAgIGludCAqbl9lbnRyaWVzKTsK LWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNfZW50cnkgKgorY29uc3Qgc3RydWN0IGlu dGVsX2RkaV9idWZfdHJhbnMgKgogdGdsX2dldF9jb21ib19idWZfdHJhbnMoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIAkJCWludCAqbl9lbnRyaWVzKTsKLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZf dHJhbnNfZW50cnkgKgorY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogdGdsX2dl dF9ka2xfYnVmX3RyYW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkgICAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgICAgaW50ICpu X2VudHJpZXMpOwotY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitjb25z dCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiBqc2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJaW50ICpuX2VudHJpZXMpOwotY29uc3QgdW5pb24gaW50 ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFu cyAqCiBlaGxfZ2V0X2NvbWJvX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJaW50 ICpuX2VudHJpZXMpOwotY29uc3QgdW5pb24gaW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitj b25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90cmFucyAqCiBpY2xfZ2V0X2NvbWJvX2J1Zl90cmFu cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJaW50ICpuX2VudHJpZXMpOwotY29uc3QgdW5pb24g aW50ZWxfZGRpX2J1Zl90cmFuc19lbnRyeSAqCitjb25zdCBzdHJ1Y3QgaW50ZWxfZGRpX2J1Zl90 cmFucyAqCiBpY2xfZ2V0X21nX2J1Zl90cmFucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJ ICAgICBpbnQgKm5fZW50cmllcyk7CiAKLWNvbnN0IHVuaW9uIGludGVsX2RkaV9idWZfdHJhbnNf ZW50cnkgKgorY29uc3Qgc3RydWN0IGludGVsX2RkaV9idWZfdHJhbnMgKgogY25sX2dldF9idWZf dHJhbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgaW50ICpuX2VudHJpZXMpOwotLSAKMi4z MS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK