From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v6 3/3] drm/i915: Enable HDCP 1.4 and 2.2 on Gen12+ Date: Tue, 20 Aug 2019 13:00:34 +0530 Message-ID: <20190820073034.15911-4-ramalingam.c@intel.com> References: <20190820073034.15911-1-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190820073034.15911-1-ramalingam.c@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 , dri-devel Cc: tomas.winkler@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbSBHZW4xMiBvbndhcmRzLCBIRENQIEhXIGJsb2NrIGlzIGltcGxlbWVudGVkIHdpdGhpbiB0 cmFuc2NvZGVycy4KVGlsbCBHZW4xMSBIRENQIEhXIGJsb2NrIHdhcyBwYXJ0IG9mIERESS4KCkhl bmNlIHJlcXVpcmVkIGNoYW5nZXMgaW4gSFcgcHJvZ3JhbW1pbmcgaXMgaGFuZGxlZCBoZXJlLgoK QXMgTUUgRlcgbmVlZHMgdGhlIHRyYW5zY29kZXIgZGV0YWlsIG9uIHdoaWNoIEhEQ1AgaXMgZW5h YmxlZApvbiBHZW4xMisgcGxhdGZvcm0sIHdlIGFyZSBwb3B1bGF0aW5nIHRoZSBkZXRhaWwgaW4g aGRjcF9wb3J0X2RhdGEuCgp2MjoKICBfTU1JT19UUkFOUyBpcyB1c2VkIFtMdWNhcyBhbmQgRGFu aWVsXQogIHBsYXRmb3JtIGNoZWNrIGlzIG1vdmVkIGludG8gdGhlIGNhbGxlciBbTHVjYXNdCnYz OgogIHBsYXRmb3JtIGNoZWNrIGlzIG1vdmVkIGludG8gYSBtYWNybyBbU2hhc2hhbmtdCnY0Ogog IEZldyBvcHRpbWl6YXRpb25zIGluIHRoZSBjb2RpbmcgW1NoYXNoYW5rXQp2NToKICBGaXhlZCBh bGlnbm1lbnQgaW4gbWFjcm8gZGVmaW5pdGlvbiBpbiBpOTE1X3JlZy5oIFtTaGFzaGFua10KICB1 bnVzZWQgdmFyaWFibGVzICJyZWciIGlzIHJlbW92ZWQuCnY2OgogIENvbmZpZ3VyaW5nIHRoZSB0 cmFuc2NvZGVyIGF0IGNvbXB1dGVfY29uZmlnLgogIHRyYW5zY29kZXIgaXMgdXNlZCBpbnN0ZWFk IG9mIHBpcGUgaW4gbWFjcm9zLgogIFJlYmFzZWQuCgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2Ft IEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBTaGFzaGFuayBTaGFybWEg PHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+IFt2NV0KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RwLmMgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2hkY3AuYyB8IDE1OCArKysrKysrKysrKysrKystLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkY3AuaCB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYyB8ICAxMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCAgICAgICAgICAgfCAxMjQgKysrKysrKysrKysrKysrLS0KIDUgZmlsZXMgY2hh bmdlZCwgMjM1IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwppbmRleCA1YzQ1YTNiYjEwMmQuLjVmMDBhYzg3MjgxNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwpAQCAtMjI0NCw2ICsyMjQ0 LDkgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAKIAlpbnRlbF9wc3JfY29tcHV0ZV9jb25maWcoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsK IAorCWludGVsX2hkY3BfdHJhbnNjb2Rlcl9jb25maWcoaW50ZWxfY29ubmVjdG9yLAorCQkJCSAg ICAgcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyKTsKKwogCXJldHVybiAwOwogfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkY3AuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5jCmluZGV4IDZlYzVjZWVhYjYwMS4u NTYwNGI2NjllNWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2hkY3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkY3Au YwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNp bmNsdWRlICJpbnRlbF9oZGNwLmgiCiAjaW5jbHVkZSAiaW50ZWxfc2lkZWJhbmQuaCIKKyNpbmNs dWRlICJpbnRlbF9jb25uZWN0b3IuaCIKIAogI2RlZmluZSBLRVlfTE9BRF9UUklFUwk1CiAjZGVm aW5lIEVOQ1JZUFRfU1RBVFVTX0NIQU5HRV9USU1FT1VUX01TCTUwCkBAIC0xMDUsMjQgKzEwNiwx NyBAQCBib29sIGludGVsX2hkY3AyX2NhcGFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQogCXJldHVybiBjYXBhYmxlOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxf aGRjcF9pbl91c2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQorc3RhdGljIGlu bGluZSBib29sIGludGVsX2hkY3BfaW5fdXNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKKwkJCQkgICAgIGVudW0gdHJhbnNjb2RlciB0YywgZW51bSBwb3J0IHBvcnQpCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJh c2UuZGV2KTsKLQllbnVtIHBvcnQgcG9ydCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsKLQl1 MzIgcmVnOwotCi0JcmVnID0gSTkxNV9SRUFEKFBPUlRfSERDUF9TVEFUVVMocG9ydCkpOwotCXJl dHVybiByZWcgJiBIRENQX1NUQVRVU19FTkM7CisJcmV0dXJuIEk5MTVfUkVBRChIRENQX1NUQVRV UyhkZXZfcHJpdiwgdGMsIHBvcnQpKSAmIEhEQ1BfU1RBVFVTX0VOQzsKIH0KIAotc3RhdGljIGlu bGluZSBib29sIGludGVsX2hkY3AyX2luX3VzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCitzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfaGRjcDJfaW5fdXNlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgICBlbnVtIHRyYW5zY29kZXIgdGMsIGVu dW0gcG9ydCBwb3J0KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Ci0JZW51bSBwb3J0IHBvcnQgPSBjb25uZWN0b3It PmVuY29kZXItPnBvcnQ7Ci0JdTMyIHJlZzsKLQotCXJlZyA9IEk5MTVfUkVBRChIRENQMl9TVEFU VVNfRERJKHBvcnQpKTsKLQlyZXR1cm4gcmVnICYgTElOS19FTkNSWVBUSU9OX1NUQVRVUzsKKwly ZXR1cm4gSTkxNV9SRUFEKEhEQ1AyX1NUQVRVUyhkZXZfcHJpdiwgdGMsIHBvcnQpKSAmCisJICAg ICAgIExJTktfRU5DUllQVElPTl9TVEFUVVM7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfaGRjcF9w b2xsX2tzdl9maWZvKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LApA QCAtMjUzLDkgKzI0NywyOCBAQCBzdGF0aWMgaW50IGludGVsX3dyaXRlX3NoYV90ZXh0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHNoYV90ZXh0KQogfQogCiBzdGF0aWMK LXUzMiBpbnRlbF9oZGNwX2dldF9yZXBlYXRlcl9jdGwoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQpCit1MzIgaW50ZWxfaGRjcF9nZXRfcmVwZWF0ZXJfY3RsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQllbnVtIHRyYW5zY29kZXIgdGMsIGVu dW0gcG9ydCBwb3J0KQogewotCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2Uu cG9ydDsKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCQlzd2l0Y2ggKHRjKSB7 CisJCWNhc2UgVFJBTlNDT0RFUl9BOgorCQkJcmV0dXJuIEhEQ1BfVFJBTlNBX1JFUF9QUkVTRU5U IHwKKwkJCSAgICAgICBIRENQX1RSQU5TQV9TSEExX00wOworCQljYXNlIFRSQU5TQ09ERVJfQjoK KwkJCXJldHVybiBIRENQX1RSQU5TQl9SRVBfUFJFU0VOVCB8CisJCQkgICAgICAgSERDUF9UUkFO U0JfU0hBMV9NMDsKKwkJY2FzZSBUUkFOU0NPREVSX0M6CisJCQlyZXR1cm4gSERDUF9UUkFOU0Nf UkVQX1BSRVNFTlQgfAorCQkJICAgICAgIEhEQ1BfVFJBTlNDX1NIQTFfTTA7CisJCS8qIEZJWE1F OiBBZGQgYSBjYXNlIGZvciBQSVBFX0QgKi8KKwkJZGVmYXVsdDoKKwkJCURSTV9FUlJPUigiVW5r bm93biB0cmFuc2NvZGVyICVkXG4iLCB0Yyk7CisJCQlicmVhazsKKwkJfQorCQlyZXR1cm4gLUVJ TlZBTDsKKwl9CisKIAlzd2l0Y2ggKHBvcnQpIHsKIAljYXNlIFBPUlRfQToKIAkJcmV0dXJuIEhE Q1BfRERJQV9SRVBfUFJFU0VOVCB8IEhEQ1BfRERJQV9TSEExX00wOwpAQCAtMjY4LDE4ICsyODEs MjEgQEAgdTMyIGludGVsX2hkY3BfZ2V0X3JlcGVhdGVyX2N0bChzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKIAljYXNlIFBPUlRfRToKIAkJcmV0dXJuIEhEQ1BfRERJ RV9SRVBfUFJFU0VOVCB8IEhEQ1BfRERJRV9TSEExX00wOwogCWRlZmF1bHQ6CisJCURSTV9FUlJP UigiVW5rbm93biBwb3J0ICVkXG4iLCBwb3J0KTsKIAkJYnJlYWs7CiAJfQotCURSTV9FUlJPUigi VW5rbm93biBwb3J0ICVkXG4iLCBwb3J0KTsKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAogc3RhdGlj Ci1pbnQgaW50ZWxfaGRjcF92YWxpZGF0ZV92X3ByaW1lKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0LAoraW50IGludGVsX2hkY3BfdmFsaWRhdGVfdl9wcmltZShzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJY29uc3Qgc3RydWN0IGludGVsX2hk Y3Bfc2hpbSAqc2hpbSwKIAkJCQl1OCAqa3N2X2ZpZm8sIHU4IG51bV9kb3duc3RyZWFtLCB1OCAq YnN0YXR1cykKIHsKKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXY7CisJZW51bSB0cmFuc2NvZGVyIHRjID0gY29ubmVjdG9yLT5oZGNwLnBvcnRfZGF0 YS50YzsKKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7CiAJdTMy IHZwcmltZSwgc2hhX3RleHQsIHNoYV9sZWZ0b3ZlcnMsIHJlcF9jdGw7CiAJaW50IHJldCwgaSwg aiwgc2hhX2lkeDsKIApAQCAtMzA2LDcgKzMyMiw3IEBAIGludCBpbnRlbF9oZGNwX3ZhbGlkYXRl X3ZfcHJpbWUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJc2hh X2lkeCA9IDA7CiAJc2hhX3RleHQgPSAwOwogCXNoYV9sZWZ0b3ZlcnMgPSAwOwotCXJlcF9jdGwg PSBpbnRlbF9oZGNwX2dldF9yZXBlYXRlcl9jdGwoaW50ZWxfZGlnX3BvcnQpOworCXJlcF9jdGwg PSBpbnRlbF9oZGNwX2dldF9yZXBlYXRlcl9jdGwoZGV2X3ByaXYsIHRjLCBwb3J0KTsKIAlJOTE1 X1dSSVRFKEhEQ1BfUkVQX0NUTCwgcmVwX2N0bCB8IEhEQ1BfU0hBMV9URVhUXzMyKTsKIAlmb3Ig KGkgPSAwOyBpIDwgbnVtX2Rvd25zdHJlYW07IGkrKykgewogCQl1bnNpZ25lZCBpbnQgc2hhX2Vt cHR5OwpAQCAtNTQ4LDcgKzU2NCw3IEBAIGludCBpbnRlbF9oZGNwX2F1dGhfZG93bnN0cmVhbShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJICogViBwcmltZSBhdGxlYXN0IHR3 aWNlLgogCSAqLwogCWZvciAoaSA9IDA7IGkgPCB0cmllczsgaSsrKSB7Ci0JCXJldCA9IGludGVs X2hkY3BfdmFsaWRhdGVfdl9wcmltZShpbnRlbF9kaWdfcG9ydCwgc2hpbSwKKwkJcmV0ID0gaW50 ZWxfaGRjcF92YWxpZGF0ZV92X3ByaW1lKGNvbm5lY3Rvciwgc2hpbSwKIAkJCQkJCSAga3N2X2Zp Zm8sIG51bV9kb3duc3RyZWFtLAogCQkJCQkJICBic3RhdHVzKTsKIAkJaWYgKCFyZXQpCkBAIC01 NzYsNiArNTkyLDcgQEAgc3RhdGljIGludCBpbnRlbF9oZGNwX2F1dGgoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmJhc2UuZGV2OwogCWNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0gPSBoZGNwLT5z aGltOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdjsKKwllbnVtIHRyYW5zY29k ZXIgdGMgPSBjb25uZWN0b3ItPmhkY3AucG9ydF9kYXRhLnRjOwogCWVudW0gcG9ydCBwb3J0Owog CXVuc2lnbmVkIGxvbmcgcjBfcHJpbWVfZ2VuX3N0YXJ0OwogCWludCByZXQsIGksIHRyaWVzID0g MjsKQEAgLTYxNSwxOCArNjMyLDE4IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRjcF9hdXRoKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAogCS8qIEluaXRpYWxpemUgQW4gd2l0aCAy IHJhbmRvbSB2YWx1ZXMgYW5kIGFjcXVpcmUgaXQgKi8KIAlmb3IgKGkgPSAwOyBpIDwgMjsgaSsr KQotCQlJOTE1X1dSSVRFKFBPUlRfSERDUF9BTklOSVQocG9ydCksIGdldF9yYW5kb21fdTMyKCkp OwotCUk5MTVfV1JJVEUoUE9SVF9IRENQX0NPTkYocG9ydCksIEhEQ1BfQ09ORl9DQVBUVVJFX0FO KTsKKwkJSTkxNV9XUklURShIRENQX0FOSU5JVChkZXZfcHJpdiwgdGMsIHBvcnQpLCBnZXRfcmFu ZG9tX3UzMigpKTsKKwlJOTE1X1dSSVRFKEhEQ1BfQ09ORihkZXZfcHJpdiwgdGMsIHBvcnQpLCBI RENQX0NPTkZfQ0FQVFVSRV9BTik7CiAKIAkvKiBXYWl0IGZvciBBbiB0byBiZSBhY3F1aXJlZCAq LwotCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIFBPUlRfSERDUF9TVEFUVVMo cG9ydCksCisJaWYgKGludGVsX2RlX3dhaXRfZm9yX3NldChkZXZfcHJpdiwgSERDUF9TVEFUVVMo ZGV2X3ByaXYsIHRjLCBwb3J0KSwKIAkJCQkgIEhEQ1BfU1RBVFVTX0FOX1JFQURZLCAxKSkgewog CQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBBblxuIik7CiAJCXJldHVybiAtRVRJ TUVET1VUOwogCX0KIAotCWFuLnJlZ1swXSA9IEk5MTVfUkVBRChQT1JUX0hEQ1BfQU5MTyhwb3J0 KSk7Ci0JYW4ucmVnWzFdID0gSTkxNV9SRUFEKFBPUlRfSERDUF9BTkhJKHBvcnQpKTsKKwlhbi5y ZWdbMF0gPSBJOTE1X1JFQUQoSERDUF9BTkxPKGRldl9wcml2LCB0YywgcG9ydCkpOworCWFuLnJl Z1sxXSA9IEk5MTVfUkVBRChIRENQX0FOSEkoZGV2X3ByaXYsIHRjLCBwb3J0KSk7CiAJcmV0ID0g c2hpbS0+d3JpdGVfYW5fYWtzdihpbnRlbF9kaWdfcG9ydCwgYW4uc2hpbSk7CiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKQEAgLTY0NCwyNCArNjYxLDI0IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRj cF9hdXRoKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJcmV0dXJuIC1FUEVS TTsKIAl9CiAKLQlJOTE1X1dSSVRFKFBPUlRfSERDUF9CS1NWTE8ocG9ydCksIGJrc3YucmVnWzBd KTsKLQlJOTE1X1dSSVRFKFBPUlRfSERDUF9CS1NWSEkocG9ydCksIGJrc3YucmVnWzFdKTsKKwlJ OTE1X1dSSVRFKEhEQ1BfQktTVkxPKGRldl9wcml2LCB0YywgcG9ydCksIGJrc3YucmVnWzBdKTsK KwlJOTE1X1dSSVRFKEhEQ1BfQktTVkhJKGRldl9wcml2LCB0YywgcG9ydCksIGJrc3YucmVnWzFd KTsKIAogCXJldCA9IHNoaW0tPnJlcGVhdGVyX3ByZXNlbnQoaW50ZWxfZGlnX3BvcnQsICZyZXBl YXRlcl9wcmVzZW50KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCWlmIChyZXBlYXRlcl9w cmVzZW50KQogCQlJOTE1X1dSSVRFKEhEQ1BfUkVQX0NUTCwKLQkJCSAgIGludGVsX2hkY3BfZ2V0 X3JlcGVhdGVyX2N0bChpbnRlbF9kaWdfcG9ydCkpOworCQkJICAgaW50ZWxfaGRjcF9nZXRfcmVw ZWF0ZXJfY3RsKGRldl9wcml2LCB0YywgcG9ydCkpOwogCiAJcmV0ID0gc2hpbS0+dG9nZ2xlX3Np Z25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIHRydWUpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7 CiAKLQlJOTE1X1dSSVRFKFBPUlRfSERDUF9DT05GKHBvcnQpLCBIRENQX0NPTkZfQVVUSF9BTkRf RU5DKTsKKwlJOTE1X1dSSVRFKEhEQ1BfQ09ORihkZXZfcHJpdiwgdGMsIHBvcnQpLCBIRENQX0NP TkZfQVVUSF9BTkRfRU5DKTsKIAogCS8qIFdhaXQgZm9yIFIwIHJlYWR5ICovCi0JaWYgKHdhaXRf Zm9yKEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSAmCisJaWYgKHdhaXRfZm9yKEk5 MTVfUkVBRChIRENQX1NUQVRVUyhkZXZfcHJpdiwgdGMsIHBvcnQpKSAmCiAJCSAgICAgKEhEQ1Bf U1RBVFVTX1IwX1JFQURZIHwgSERDUF9TVEFUVVNfRU5DKSwgMSkpIHsKIAkJRFJNX0VSUk9SKCJU aW1lZCBvdXQgd2FpdGluZyBmb3IgUjAgcmVhZHlcbiIpOwogCQlyZXR1cm4gLUVUSU1FRE9VVDsK QEAgLTY4OSwyMiArNzA2LDIyIEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRjcF9hdXRoKHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJcmV0ID0gc2hpbS0+cmVhZF9yaV9wcmltZShp bnRlbF9kaWdfcG9ydCwgcmkuc2hpbSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwotCQlJ OTE1X1dSSVRFKFBPUlRfSERDUF9SUFJJTUUocG9ydCksIHJpLnJlZyk7CisJCUk5MTVfV1JJVEUo SERDUF9SUFJJTUUoZGV2X3ByaXYsIHRjLCBwb3J0KSwgcmkucmVnKTsKIAogCQkvKiBXYWl0IGZv ciBSaSBwcmltZSBtYXRjaCAqLwotCQlpZiAoIXdhaXRfZm9yKEk5MTVfUkVBRChQT1JUX0hEQ1Bf U1RBVFVTKHBvcnQpKSAmCisJCWlmICghd2FpdF9mb3IoSTkxNV9SRUFEKEhEQ1BfU1RBVFVTKGRl dl9wcml2LCB0YywgcG9ydCkpICYKIAkJICAgIChIRENQX1NUQVRVU19SSV9NQVRDSCB8IEhEQ1Bf U1RBVFVTX0VOQyksIDEpKQogCQkJYnJlYWs7CiAJfQogCiAJaWYgKGkgPT0gdHJpZXMpIHsKIAkJ RFJNX0RFQlVHX0tNUygiVGltZWQgb3V0IHdhaXRpbmcgZm9yIFJpIHByaW1lIG1hdGNoICgleClc biIsCi0JCQkgICAgICBJOTE1X1JFQUQoUE9SVF9IRENQX1NUQVRVUyhwb3J0KSkpOworCQkJICAg ICAgSTkxNV9SRUFEKEhEQ1BfU1RBVFVTKGRldl9wcml2LCB0YywgcG9ydCkpKTsKIAkJcmV0dXJu IC1FVElNRURPVVQ7CiAJfQogCiAJLyogV2FpdCBmb3IgZW5jcnlwdGlvbiBjb25maXJtYXRpb24g Ki8KLQlpZiAoaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBQT1JUX0hEQ1BfU1RBVFVT KHBvcnQpLAorCWlmIChpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIEhEQ1BfU1RBVFVT KGRldl9wcml2LCB0YywgcG9ydCksCiAJCQkJICBIRENQX1NUQVRVU19FTkMsCiAJCQkJICBFTkNS WVBUX1NUQVRVU19DSEFOR0VfVElNRU9VVF9NUykpIHsKIAkJRFJNX0VSUk9SKCJUaW1lZCBvdXQg d2FpdGluZyBmb3IgZW5jcnlwdGlvblxuIik7CkBAIC03MjksMTUgKzc0NiwxNiBAQCBzdGF0aWMg aW50IF9pbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNvbm5lY3Rvci0+YmFzZS5k ZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0ID0gY29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpOwogCWVudW0gcG9ydCBwb3J0ID0gaW50 ZWxfZGlnX3BvcnQtPmJhc2UucG9ydDsKKwllbnVtIHRyYW5zY29kZXIgdGMgPSBoZGNwLT5wb3J0 X2RhdGEudGM7CiAJaW50IHJldDsKIAogCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUCBpcyBi ZWluZyBkaXNhYmxlZC4uLlxuIiwKIAkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5l Y3Rvci0+YmFzZS5iYXNlLmlkKTsKIAogCWhkY3AtPmhkY3BfZW5jcnlwdGVkID0gZmFsc2U7Ci0J STkxNV9XUklURShQT1JUX0hEQ1BfQ09ORihwb3J0KSwgMCk7Ci0JaWYgKGludGVsX2RlX3dhaXRf Zm9yX2NsZWFyKGRldl9wcml2LCBQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpLCB+MCwKLQkJCQkgICAg RU5DUllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpKSB7CisJSTkxNV9XUklURShIRENQX0NP TkYoZGV2X3ByaXYsIHRjLCBwb3J0KSwgMCk7CisJaWYgKGludGVsX2RlX3dhaXRfZm9yX2NsZWFy KGRldl9wcml2LCBIRENQX1NUQVRVUyhkZXZfcHJpdiwgdGMsIHBvcnQpLAorCQkJCSAgICB+MCwg RU5DUllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpKSB7CiAJCURSTV9FUlJPUigiRmFpbGVk IHRvIGRpc2FibGUgSERDUCwgdGltZW91dCBjbGVhcmluZyBzdGF0dXNcbiIpOwogCQlyZXR1cm4g LUVUSU1FRE9VVDsKIAl9CkBAIC04MDgsOSArODI2LDExIEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRj cF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2LT5kZXZfcHJp dmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5f dG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0 LT5iYXNlLnBvcnQ7CisJZW51bSB0cmFuc2NvZGVyIHRjOwogCWludCByZXQgPSAwOwogCiAJbXV0 ZXhfbG9jaygmaGRjcC0+bXV0ZXgpOworCXRjID0gaGRjcC0+cG9ydF9kYXRhLnRjOwogCiAJLyog Q2hlY2tfbGluayB2YWxpZCBvbmx5IHdoZW4gSERDUDEuNCBpcyBlbmFibGVkICovCiAJaWYgKGhk Y3AtPnZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9FTkFCTEVEIHx8CkBAIC04 MTksMTAgKzgzOSwxMCBAQCBzdGF0aWMgaW50IGludGVsX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJCWdvdG8gb3V0OwogCX0KIAotCWlmIChXQVJO X09OKCFpbnRlbF9oZGNwX2luX3VzZShjb25uZWN0b3IpKSkgeworCWlmIChXQVJOX09OKCFpbnRl bF9oZGNwX2luX3VzZShkZXZfcHJpdiwgdGMsIHBvcnQpKSkgewogCQlEUk1fRVJST1IoIiVzOiVk IEhEQ1AgbGluayBzdG9wcGVkIGVuY3J5cHRpb24sJXhcbiIsCiAJCQkgIGNvbm5lY3Rvci0+YmFz ZS5uYW1lLCBjb25uZWN0b3ItPmJhc2UuYmFzZS5pZCwKLQkJCSAgSTkxNV9SRUFEKFBPUlRfSERD UF9TVEFUVVMocG9ydCkpKTsKKwkJCSAgSTkxNV9SRUFEKEhEQ1BfU1RBVFVTKGRldl9wcml2LCB0 YywgcG9ydCkpKTsKIAkJcmV0ID0gLUVOWElPOwogCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NP TlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEOwogCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dv cmspOwpAQCAtMTQ5MywxMCArMTUxMywxMSBAQCBzdGF0aWMgaW50IGhkY3AyX2VuYWJsZV9lbmNy eXB0aW9uKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0 cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKIAllbnVtIHBvcnQgcG9y dCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsKKwllbnVtIHRyYW5zY29kZXIgdGMgPSBoZGNw LT5wb3J0X2RhdGEudGM7CiAJaW50IHJldDsKIAotCVdBUk5fT04oSTkxNV9SRUFEKEhEQ1AyX1NU QVRVU19EREkocG9ydCkpICYgTElOS19FTkNSWVBUSU9OX1NUQVRVUyk7Ci0KKwlXQVJOX09OKEk5 MTVfUkVBRChIRENQMl9TVEFUVVMoZGV2X3ByaXYsIHRjLCBwb3J0KSkgJgorCQlMSU5LX0VOQ1JZ UFRJT05fU1RBVFVTKTsKIAlpZiAoaGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcpIHsKIAkJ cmV0ID0gaGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIHRydWUp OwogCQlpZiAocmV0KSB7CkBAIC0xNTA2LDE0ICsxNTI3LDE0IEBAIHN0YXRpYyBpbnQgaGRjcDJf ZW5hYmxlX2VuY3J5cHRpb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQl9 CiAJfQogCi0JaWYgKEk5MTVfUkVBRChIRENQMl9TVEFUVVNfRERJKHBvcnQpKSAmIExJTktfQVVU SF9TVEFUVVMpIHsKKwlpZiAoSTkxNV9SRUFEKEhEQ1AyX1NUQVRVUyhkZXZfcHJpdiwgdGMsIHBv cnQpKSAmIExJTktfQVVUSF9TVEFUVVMpIHsKIAkJLyogTGluayBpcyBBdXRoZW50aWNhdGVkLiBO b3cgc2V0IGZvciBFbmNyeXB0aW9uICovCi0JCUk5MTVfV1JJVEUoSERDUDJfQ1RMX0RESShwb3J0 KSwKLQkJCSAgIEk5MTVfUkVBRChIRENQMl9DVExfRERJKHBvcnQpKSB8CisJCUk5MTVfV1JJVEUo SERDUDJfQ1RMKGRldl9wcml2LCB0YywgcG9ydCksCisJCQkgICBJOTE1X1JFQUQoSERDUDJfQ1RM KGRldl9wcml2LCB0YywgcG9ydCkpIHwKIAkJCSAgIENUTF9MSU5LX0VOQ1JZUFRJT05fUkVRKTsK IAl9CiAKLQlyZXQgPSBpbnRlbF9kZV93YWl0X2Zvcl9zZXQoZGV2X3ByaXYsIEhEQ1AyX1NUQVRV U19EREkocG9ydCksCisJcmV0ID0gaW50ZWxfZGVfd2FpdF9mb3Jfc2V0KGRldl9wcml2LCBIRENQ Ml9TVEFUVVMoZGV2X3ByaXYsIHRjLCBwb3J0KSwKIAkJCQkgICAgTElOS19FTkNSWVBUSU9OX1NU QVRVUywKIAkJCQkgICAgRU5DUllQVF9TVEFUVVNfQ0hBTkdFX1RJTUVPVVRfTVMpOwogCkBAIC0x NTI2LDE0ICsxNTQ3LDE4IEBAIHN0YXRpYyBpbnQgaGRjcDJfZGlzYWJsZV9lbmNyeXB0aW9uKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRl bF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKIAllbnVtIHBvcnQgcG9ydCA9IGNvbm5l Y3Rvci0+ZW5jb2Rlci0+cG9ydDsKKwllbnVtIHRyYW5zY29kZXIgdGMgPSBoZGNwLT5wb3J0X2Rh dGEudGM7CiAJaW50IHJldDsKIAotCVdBUk5fT04oIShJOTE1X1JFQUQoSERDUDJfU1RBVFVTX0RE SShwb3J0KSkgJiBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTKSk7CisJV0FSTl9PTighKEk5MTVfUkVB RChIRENQMl9TVEFUVVMoZGV2X3ByaXYsIHRjLCBwb3J0KSkgJgorCQkJICAgIExJTktfRU5DUllQ VElPTl9TVEFUVVMpKTsKIAotCUk5MTVfV1JJVEUoSERDUDJfQ1RMX0RESShwb3J0KSwKLQkJICAg STkxNV9SRUFEKEhEQ1AyX0NUTF9EREkocG9ydCkpICYgfkNUTF9MSU5LX0VOQ1JZUFRJT05fUkVR KTsKKwlJOTE1X1dSSVRFKEhEQ1AyX0NUTChkZXZfcHJpdiwgdGMsIHBvcnQpLAorCQkgICBJOTE1 X1JFQUQoSERDUDJfQ1RMKGRldl9wcml2LCB0YywgcG9ydCkpICYKKwkJICAgfkNUTF9MSU5LX0VO Q1JZUFRJT05fUkVRKTsKIAotCXJldCA9IGludGVsX2RlX3dhaXRfZm9yX2NsZWFyKGRldl9wcml2 LCBIRENQMl9TVEFUVVNfRERJKHBvcnQpLAorCXJldCA9IGludGVsX2RlX3dhaXRfZm9yX2NsZWFy KGRldl9wcml2LAorCQkJCSAgICAgIEhEQ1AyX1NUQVRVUyhkZXZfcHJpdiwgdGMsIHBvcnQpLAog CQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsCiAJCQkJICAgICAgRU5DUllQVF9TVEFU VVNfQ0hBTkdFX1RJTUVPVVRfTVMpOwogCWlmIChyZXQgPT0gLUVUSU1FRE9VVCkKQEAgLTE2MzIs OSArMTY1NywxMSBAQCBzdGF0aWMgaW50IGludGVsX2hkY3AyX2NoZWNrX2xpbmsoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2hkY3Ag KmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwogCWVudW0gcG9ydCBwb3J0ID0gY29ubmVjdG9yLT5l bmNvZGVyLT5wb3J0OworCWVudW0gdHJhbnNjb2RlciB0YzsKIAlpbnQgcmV0ID0gMDsKIAogCW11 dGV4X2xvY2soJmhkY3AtPm11dGV4KTsKKwl0YyA9IGhkY3AtPnBvcnRfZGF0YS50YzsKIAogCS8q IGhkY3AyX2NoZWNrX2xpbmsgaXMgZXhwZWN0ZWQgb25seSB3aGVuIEhEQ1AyLjIgaXMgRW5hYmxl ZCAqLwogCWlmIChoZGNwLT52YWx1ZSAhPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5B QkxFRCB8fApAQCAtMTY0Myw5ICsxNjcwLDkgQEAgc3RhdGljIGludCBpbnRlbF9oZGNwMl9jaGVj a19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJZ290byBvdXQ7CiAJ fQogCi0JaWYgKFdBUk5fT04oIWludGVsX2hkY3AyX2luX3VzZShjb25uZWN0b3IpKSkgeworCWlm IChXQVJOX09OKCFpbnRlbF9oZGNwMl9pbl91c2UoZGV2X3ByaXYsIHRjLCBwb3J0KSkpIHsKIAkJ RFJNX0VSUk9SKCJIRENQMi4yIGxpbmsgc3RvcHBlZCB0aGUgZW5jcnlwdGlvbiwgJXhcbiIsCi0J CQkgIEk5MTVfUkVBRChIRENQMl9TVEFUVVNfRERJKHBvcnQpKSk7CisJCQkgIEk5MTVfUkVBRChI RENQMl9TVEFUVVMoZGV2X3ByaXYsIHRjLCBwb3J0KSkpOwogCQlyZXQgPSAtRU5YSU87CiAJCWhk Y3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQ7CiAJCXNjaGVk dWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7CkBAIC0xNzUyLDEwICsxNzc5LDIxIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X29wcyBpOTE1X2hkY3BfY29tcG9uZW50X29wcyA9IHsK IHN0YXRpYyBpbmxpbmUgaW50IGluaXRpYWxpemVfaGRjcF9wb3J0X2RhdGEoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bf c2hpbSAqc2hpbSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNv bm5lY3Rvci0+aGRjcDsKIAlzdHJ1Y3QgaGRjcF9wb3J0X2RhdGEgKmRhdGEgPSAmaGRjcC0+cG9y dF9kYXRhOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOworCisJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPCAxMikgeworCQlkYXRhLT5wb3J0ID0gY29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0Owor CQlkYXRhLT50YyA9IElOVkFMSURfVFJBTlNDT0RFUjsKKwl9IGVsc2UgeworCQljcnRjID0gdG9f aW50ZWxfY3J0Yyhjb25uZWN0b3ItPmJhc2Uuc3RhdGUtPmNydGMpOworCQlpZiAoY3J0YykKKwkJ CWRhdGEtPnRjID0gY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKKwkJZGF0YS0+cG9ydCA9 IFBPUlRfTk9ORTsKKwl9CiAKLQlkYXRhLT5wb3J0ID0gY29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0 OwogCWRhdGEtPnBvcnRfdHlwZSA9ICh1OClIRENQX1BPUlRfVFlQRV9JTlRFR1JBVEVEOwogCWRh dGEtPnByb3RvY29sID0gKHU4KXNoaW0tPnByb3RvY29sOwogCkBAIC0xODIyLDYgKzE4NjAsMjIg QEAgc3RhdGljIHZvaWQgaW50ZWxfaGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsCiAJaGRjcC0+aGRjcDJfc3VwcG9ydGVkID0gdHJ1ZTsKIH0KIAordm9pZCBpbnRl bF9oZGNwX3RyYW5zY29kZXJfY29uZmlnKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKKwkJCQkgZW51bSB0cmFuc2NvZGVyIHRyYW5zKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CisJc3RydWN0IGlu dGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOworCisJaWYgKCFoZGNwLT5zaGltKQor CQlyZXR1cm47CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCQltdXRleF9s b2NrKCZoZGNwLT5tdXRleCk7CisJCWhkY3AtPnBvcnRfZGF0YS50YyA9IHRyYW5zOworCQltdXRl eF91bmxvY2soJmhkY3AtPm11dGV4KTsKKwl9Cit9CisKIGludCBpbnRlbF9oZGNwX2luaXQoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkgICAgY29uc3Qgc3RydWN0IGludGVs X2hkY3Bfc2hpbSAqc2hpbSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfaGRjcC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9o ZGNwLmgKaW5kZXggMTM1NTViMDU0OTMwLi4xMDQxYjJjMTFmZTkgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRjcC5oCkBAIC0xOSw2ICsxOSw4IEBAIHN0cnVjdCBpbnRl bF9oZGNwX3NoaW07CiB2b2lkIGludGVsX2hkY3BfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCiAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpv bGRfc3RhdGUsCiAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUp Owordm9pZCBpbnRlbF9oZGNwX3RyYW5zY29kZXJfY29uZmlnKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvciwKKwkJCQkgIGVudW0gdHJhbnNjb2RlciB0cmFucyk7CiBpbnQgaW50ZWxf aGRjcF9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJICAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKmhkY3Bfc2hpbSk7CiBpbnQgaW50ZWxfaGRjcF9lbmFi bGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1OCBjb250ZW50X3R5cGUpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYwppbmRleCBiMWNhOGU1YmRi NTYuLmIyZWI4MGZjOWZmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9o ZG1pLmMKQEAgLTE0OTEsNyArMTQ5MSwxMCBAQCBib29sIGludGVsX2hkbWlfaGRjcF9jaGVja19s aW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCWludGVsX2RpZ19wb3J0LT5iYXNlLmJh c2UuZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ig PQorCQlpbnRlbF9kaWdfcG9ydC0+aGRtaS5hdHRhY2hlZF9jb25uZWN0b3I7CiAJZW51bSBwb3J0 IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0OworCWVudW0gdHJhbnNjb2RlciB0YyA9 IGNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGEudGM7CiAJaW50IHJldDsKIAl1bmlvbiB7CiAJCXUz MiByZWc7CkBAIC0xNTAyLDEzICsxNTA1LDEzIEBAIGJvb2wgaW50ZWxfaGRtaV9oZGNwX2NoZWNr X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCiAJaWYgKHJl dCkKIAkJcmV0dXJuIGZhbHNlOwogCi0JSTkxNV9XUklURShQT1JUX0hEQ1BfUlBSSU1FKHBvcnQp LCByaS5yZWcpOworCUk5MTVfV1JJVEUoSERDUF9SUFJJTUUoZGV2X3ByaXYsIHRjLCBwb3J0KSwg cmkucmVnKTsKIAogCS8qIFdhaXQgZm9yIFJpIHByaW1lIG1hdGNoICovCi0JaWYgKHdhaXRfZm9y KEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSAmCisJaWYgKHdhaXRfZm9yKEk5MTVf UkVBRChIRENQX1NUQVRVUyhkZXZfcHJpdiwgdGMsIHBvcnQpKSAmCiAJCSAgICAgKEhEQ1BfU1RB VFVTX1JJX01BVENIIHwgSERDUF9TVEFUVVNfRU5DKSwgMSkpIHsKIAkJRFJNX0VSUk9SKCJSaScg bWlzbWF0Y2ggZGV0ZWN0ZWQsIGxpbmsgY2hlY2sgZmFpbGVkICgleClcbiIsCi0JCQkgIEk5MTVf UkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSk7CisJCQkgIEk5MTVfUkVBRChIRENQX1NUQVRV UyhkZXZfcHJpdiwgdGMsIHBvcnQpKSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAJcmV0dXJuIHRy dWU7CkBAIC0yNDMyLDYgKzI0MzUsOSBAQCBpbnQgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJ aW50ZWxfaGRjcF90cmFuc2NvZGVyX2NvbmZpZyhpbnRlbF9oZG1pLT5hdHRhY2hlZF9jb25uZWN0 b3IsCisJCQkJICAgICBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIpOworCiAJcmV0dXJuIDA7 CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IGVhMmYwZmEyNDAyZC4uOWU1NzAxZjZl NzRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTkyNTUsMTIgKzkyNTUsMjAgQEAgZW51 bSBza2xfcG93ZXJfZ2F0ZSB7CiAKIC8qIEhEQ1AgUmVwZWF0ZXIgUmVnaXN0ZXJzICovCiAjZGVm aW5lIEhEQ1BfUkVQX0NUTAkJCV9NTUlPKDB4NjZkMDApCisjZGVmaW5lICBIRENQX1RSQU5TQV9S RVBfUFJFU0VOVAlCSVQoMzEpCisjZGVmaW5lICBIRENQX1RSQU5TQl9SRVBfUFJFU0VOVAlCSVQo MzApCisjZGVmaW5lICBIRENQX1RSQU5TQ19SRVBfUFJFU0VOVAlCSVQoMjkpCisjZGVmaW5lICBI RENQX1RSQU5TRF9SRVBfUFJFU0VOVAlCSVQoMjgpCiAjZGVmaW5lICBIRENQX0RESUJfUkVQX1BS RVNFTlQJCUJJVCgzMCkKICNkZWZpbmUgIEhEQ1BfRERJQV9SRVBfUFJFU0VOVAkJQklUKDI5KQog I2RlZmluZSAgSERDUF9ERElDX1JFUF9QUkVTRU5UCQlCSVQoMjgpCiAjZGVmaW5lICBIRENQX0RE SURfUkVQX1BSRVNFTlQJCUJJVCgyNykKICNkZWZpbmUgIEhEQ1BfRERJRl9SRVBfUFJFU0VOVAkJ QklUKDI2KQogI2RlZmluZSAgSERDUF9ERElFX1JFUF9QUkVTRU5UCQlCSVQoMjUpCisjZGVmaW5l ICBIRENQX1RSQU5TQV9TSEExX00wCQkoMSA8PCAyMCkKKyNkZWZpbmUgIEhEQ1BfVFJBTlNCX1NI QTFfTTAJCSgyIDw8IDIwKQorI2RlZmluZSAgSERDUF9UUkFOU0NfU0hBMV9NMAkJKDMgPDwgMjAp CisjZGVmaW5lICBIRENQX1RSQU5TRF9TSEExX00wCQkoNCA8PCAyMCkKICNkZWZpbmUgIEhEQ1Bf RERJQl9TSEExX00wCQkoMSA8PCAyMCkKICNkZWZpbmUgIEhEQ1BfRERJQV9TSEExX00wCQkoMiA8 PCAyMCkKICNkZWZpbmUgIEhEQ1BfRERJQ19TSEExX00wCQkoMyA8PCAyMCkKQEAgLTkzMDAsMTUg KzkzMDgsOTIgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7CiAJCQkJCSAgX1BPUlRFX0hEQ1BfQVVU SEVOQywgXAogCQkJCQkgIF9QT1JURl9IRENQX0FVVEhFTkMpICsgKHgpKQogI2RlZmluZSBQT1JU X0hEQ1BfQ09ORihwb3J0KQkJX1BPUlRfSERDUF9BVVRIRU5DKHBvcnQsIDB4MCkKKyNkZWZpbmUg X1RSQU5TQV9IRENQX0NPTkYJCTB4NjY0MDAKKyNkZWZpbmUgX1RSQU5TQl9IRENQX0NPTkYJCTB4 NjY1MDAKKyNkZWZpbmUgVFJBTlNfSERDUF9DT05GKHRyYW5zKQkJX01NSU9fVFJBTlModHJhbnMs IF9UUkFOU0FfSERDUF9DT05GLCBcCisJCQkJCQkgICAgX1RSQU5TQl9IRENQX0NPTkYpCisjZGVm aW5lIEhEQ1BfQ09ORihkZXZfcHJpdiwgdHJhbnMsIHBvcnQpIFwKKwkJCQkJKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gMTIgPyBcCisJCQkJCSBUUkFOU19IRENQX0NPTkYodHJhbnMpIDogXAorCQkJ CQkgUE9SVF9IRENQX0NPTkYocG9ydCkpCisKICNkZWZpbmUgIEhEQ1BfQ09ORl9DQVBUVVJFX0FO CQlCSVQoMCkKICNkZWZpbmUgIEhEQ1BfQ09ORl9BVVRIX0FORF9FTkMJCShCSVQoMSkgfCBCSVQo MCkpCiAjZGVmaW5lIFBPUlRfSERDUF9BTklOSVQocG9ydCkJCV9QT1JUX0hEQ1BfQVVUSEVOQyhw b3J0LCAweDQpCisjZGVmaW5lIF9UUkFOU0FfSERDUF9BTklOSVQJCTB4NjY0MDQKKyNkZWZpbmUg X1RSQU5TQl9IRENQX0FOSU5JVAkJMHg2NjUwNAorI2RlZmluZSBUUkFOU19IRENQX0FOSU5JVCh0 cmFucykJX01NSU9fVFJBTlModHJhbnMsIFwKKwkJCQkJCSAgICBfVFJBTlNBX0hEQ1BfQU5JTklU LCBcCisJCQkJCQkgICAgX1RSQU5TQl9IRENQX0FOSU5JVCkKKyNkZWZpbmUgSERDUF9BTklOSVQo ZGV2X3ByaXYsIHRyYW5zLCBwb3J0KSBcCisJCQkJCShJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEy ID8gXAorCQkJCQkgVFJBTlNfSERDUF9BTklOSVQodHJhbnMpIDogXAorCQkJCQkgUE9SVF9IRENQ X0FOSU5JVChwb3J0KSkKKwogI2RlZmluZSBQT1JUX0hEQ1BfQU5MTyhwb3J0KQkJX1BPUlRfSERD UF9BVVRIRU5DKHBvcnQsIDB4OCkKKyNkZWZpbmUgX1RSQU5TQV9IRENQX0FOTE8JCTB4NjY0MDgK KyNkZWZpbmUgX1RSQU5TQl9IRENQX0FOTE8JCTB4NjY1MDgKKyNkZWZpbmUgVFJBTlNfSERDUF9B TkxPKHRyYW5zKQkJX01NSU9fVFJBTlModHJhbnMsIF9UUkFOU0FfSERDUF9BTkxPLCBcCisJCQkJ CQkgICAgX1RSQU5TQl9IRENQX0FOTE8pCisjZGVmaW5lIEhEQ1BfQU5MTyhkZXZfcHJpdiwgdHJh bnMsIHBvcnQpIFwKKwkJCQkJKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIgPyBcCisJCQkJCSBU UkFOU19IRENQX0FOTE8odHJhbnMpIDogXAorCQkJCQkgUE9SVF9IRENQX0FOTE8ocG9ydCkpCisK ICNkZWZpbmUgUE9SVF9IRENQX0FOSEkocG9ydCkJCV9QT1JUX0hEQ1BfQVVUSEVOQyhwb3J0LCAw eEMpCisjZGVmaW5lIF9UUkFOU0FfSERDUF9BTkhJCQkweDY2NDBDCisjZGVmaW5lIF9UUkFOU0Jf SERDUF9BTkhJCQkweDY2NTBDCisjZGVmaW5lIFRSQU5TX0hEQ1BfQU5ISSh0cmFucykJCV9NTUlP X1RSQU5TKHRyYW5zLCBfVFJBTlNBX0hEQ1BfQU5ISSwgXAorCQkJCQkJICAgIF9UUkFOU0JfSERD UF9BTkhJKQorI2RlZmluZSBIRENQX0FOSEkoZGV2X3ByaXYsIHRyYW5zLCBwb3J0KSBcCisJCQkJ CShJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyID8gXAorCQkJCQkgVFJBTlNfSERDUF9BTkhJKHRy YW5zKSA6IFwKKwkJCQkJIFBPUlRfSERDUF9BTkhJKHBvcnQpKQorCiAjZGVmaW5lIFBPUlRfSERD UF9CS1NWTE8ocG9ydCkJCV9QT1JUX0hEQ1BfQVVUSEVOQyhwb3J0LCAweDEwKQorI2RlZmluZSBf VFJBTlNBX0hEQ1BfQktTVkxPCQkweDY2NDEwCisjZGVmaW5lIF9UUkFOU0JfSERDUF9CS1NWTE8J CTB4NjY1MTAKKyNkZWZpbmUgVFJBTlNfSERDUF9CS1NWTE8odHJhbnMpCV9NTUlPX1RSQU5TKHRy YW5zLCBcCisJCQkJCQkgICAgX1RSQU5TQV9IRENQX0JLU1ZMTywgXAorCQkJCQkJICAgIF9UUkFO U0JfSERDUF9CS1NWTE8pCisjZGVmaW5lIEhEQ1BfQktTVkxPKGRldl9wcml2LCB0cmFucywgcG9y dCkgXAorCQkJCQkoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMiA/IFwKKwkJCQkJIFRSQU5TX0hE Q1BfQktTVkxPKHRyYW5zKSA6IFwKKwkJCQkJIFBPUlRfSERDUF9CS1NWTE8ocG9ydCkpCisKICNk ZWZpbmUgUE9SVF9IRENQX0JLU1ZISShwb3J0KQkJX1BPUlRfSERDUF9BVVRIRU5DKHBvcnQsIDB4 MTQpCisjZGVmaW5lIF9UUkFOU0FfSERDUF9CS1NWSEkJCTB4NjY0MTQKKyNkZWZpbmUgX1RSQU5T Ql9IRENQX0JLU1ZISQkJMHg2NjUxNAorI2RlZmluZSBUUkFOU19IRENQX0JLU1ZISSh0cmFucykJ X01NSU9fVFJBTlModHJhbnMsIFwKKwkJCQkJCSAgICBfVFJBTlNBX0hEQ1BfQktTVkhJLCBcCisJ CQkJCQkgICAgX1RSQU5TQl9IRENQX0JLU1ZISSkKKyNkZWZpbmUgSERDUF9CS1NWSEkoZGV2X3By aXYsIHRyYW5zLCBwb3J0KSBcCisJCQkJCShJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyID8gXAor CQkJCQkgVFJBTlNfSERDUF9CS1NWSEkodHJhbnMpIDogXAorCQkJCQkgUE9SVF9IRENQX0JLU1ZI SShwb3J0KSkKKwogI2RlZmluZSBQT1JUX0hEQ1BfUlBSSU1FKHBvcnQpCQlfUE9SVF9IRENQX0FV VEhFTkMocG9ydCwgMHgxOCkKKyNkZWZpbmUgX1RSQU5TQV9IRENQX1JQUklNRQkJMHg2NjQxOAor I2RlZmluZSBfVFJBTlNCX0hEQ1BfUlBSSU1FCQkweDY2NTE4CisjZGVmaW5lIFRSQU5TX0hEQ1Bf UlBSSU1FKHRyYW5zKQlfTU1JT19UUkFOUyh0cmFucywgXAorCQkJCQkJICAgIF9UUkFOU0FfSERD UF9SUFJJTUUsIFwKKwkJCQkJCSAgICBfVFJBTlNCX0hEQ1BfUlBSSU1FKQorI2RlZmluZSBIRENQ X1JQUklNRShkZXZfcHJpdiwgdHJhbnMsIHBvcnQpIFwKKwkJCQkJKElOVEVMX0dFTihkZXZfcHJp dikgPj0gMTIgPyBcCisJCQkJCSBUUkFOU19IRENQX1JQUklNRSh0cmFucykgOiBcCisJCQkJCSBQ T1JUX0hEQ1BfUlBSSU1FKHBvcnQpKQorCiAjZGVmaW5lIFBPUlRfSERDUF9TVEFUVVMocG9ydCkJ CV9QT1JUX0hEQ1BfQVVUSEVOQyhwb3J0LCAweDFDKQorI2RlZmluZSBfVFJBTlNBX0hEQ1BfU1RB VFVTCQkweDY2NDFDCisjZGVmaW5lIF9UUkFOU0JfSERDUF9TVEFUVVMJCTB4NjY1MUMKKyNkZWZp bmUgVFJBTlNfSERDUF9TVEFUVVModHJhbnMpCV9NTUlPX1RSQU5TKHRyYW5zLCBcCisJCQkJCQkg ICAgX1RSQU5TQV9IRENQX1NUQVRVUywgXAorCQkJCQkJICAgIF9UUkFOU0JfSERDUF9TVEFUVVMp CisjZGVmaW5lIEhEQ1BfU1RBVFVTKGRldl9wcml2LCB0cmFucywgcG9ydCkgXAorCQkJCQkoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMiA/IFwKKwkJCQkJIFRSQU5TX0hEQ1BfU1RBVFVTKHRyYW5z KSA6IFwKKwkJCQkJIFBPUlRfSERDUF9TVEFUVVMocG9ydCkpCisKICNkZWZpbmUgIEhEQ1BfU1RB VFVTX1NUUkVBTV9BX0VOQwlCSVQoMzEpCiAjZGVmaW5lICBIRENQX1NUQVRVU19TVFJFQU1fQl9F TkMJQklUKDMwKQogI2RlZmluZSAgSERDUF9TVEFUVVNfU1RSRUFNX0NfRU5DCUJJVCgyOSkKQEAg LTkzMzUsMjMgKzk0MjAsNDQgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7CiAJCQkJCSAgX1BPUlRE X0hEQ1AyX0JBU0UsIFwKIAkJCQkJICBfUE9SVEVfSERDUDJfQkFTRSwgXAogCQkJCQkgIF9QT1JU Rl9IRENQMl9CQVNFKSArICh4KSkKLQotI2RlZmluZSBIRENQMl9BVVRIX0RESShwb3J0KQkJX1BP UlRfSERDUDJfQkFTRShwb3J0LCAweDk4KQorI2RlZmluZSBQT1JUX0hEQ1AyX0FVVEgocG9ydCkJ CV9QT1JUX0hEQ1AyX0JBU0UocG9ydCwgMHg5OCkKKyNkZWZpbmUgX1RSQU5TQV9IRENQMl9BVVRI CQkweDY2NDk4CisjZGVmaW5lIF9UUkFOU0JfSERDUDJfQVVUSAkJMHg2NjU5OAorI2RlZmluZSBU UkFOU19IRENQMl9BVVRIKHRyYW5zKQkJX01NSU9fVFJBTlModHJhbnMsIF9UUkFOU0FfSERDUDJf QVVUSCwgXAorCQkJCQkJICAgIF9UUkFOU0JfSERDUDJfQVVUSCkKICNkZWZpbmUgICBBVVRIX0xJ TktfQVVUSEVOVElDQVRFRAlCSVQoMzEpCiAjZGVmaW5lICAgQVVUSF9MSU5LX1RZUEUJCUJJVCgz MCkKICNkZWZpbmUgICBBVVRIX0ZPUkNFX0NMUl9JTlBVVENUUglCSVQoMTkpCiAjZGVmaW5lICAg QVVUSF9DTFJfS0VZUwkJCUJJVCgxOCkKLQotI2RlZmluZSBIRENQMl9DVExfRERJKHBvcnQpCQlf UE9SVF9IRENQMl9CQVNFKHBvcnQsIDB4QjApCisjZGVmaW5lIEhEQ1AyX0FVVEgoZGV2X3ByaXYs IHRyYW5zLCBwb3J0KSBcCisJCQkJCShJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyID8gXAorCQkJ CQkgVFJBTlNfSERDUDJfQVVUSCh0cmFucykgOiBcCisJCQkJCSBQT1JUX0hEQ1AyX0FVVEgocG9y dCkpCisKKyNkZWZpbmUgUE9SVF9IRENQMl9DVEwocG9ydCkJCV9QT1JUX0hEQ1AyX0JBU0UocG9y dCwgMHhCMCkKKyNkZWZpbmUgX1RSQU5TQV9IRENQMl9DVEwJCTB4NjY0QjAKKyNkZWZpbmUgX1RS QU5TQl9IRENQMl9DVEwJCTB4NjY1QjAKKyNkZWZpbmUgVFJBTlNfSERDUDJfQ1RMKHRyYW5zKQkJ X01NSU9fVFJBTlModHJhbnMsIF9UUkFOU0FfSERDUDJfQ1RMLCBcCisJCQkJCQkgICAgX1RSQU5T Ql9IRENQMl9DVEwpCiAjZGVmaW5lICAgQ1RMX0xJTktfRU5DUllQVElPTl9SRVEJQklUKDMxKQot Ci0jZGVmaW5lIEhEQ1AyX1NUQVRVU19EREkocG9ydCkJCV9QT1JUX0hEQ1AyX0JBU0UocG9ydCwg MHhCNCkKLSNkZWZpbmUgICBTVFJFQU1fRU5DUllQVElPTl9TVEFUVVNfQQlCSVQoMzEpCi0jZGVm aW5lICAgU1RSRUFNX0VOQ1JZUFRJT05fU1RBVFVTX0IJQklUKDMwKQotI2RlZmluZSAgIFNUUkVB TV9FTkNSWVBUSU9OX1NUQVRVU19DCUJJVCgyOSkKKyNkZWZpbmUgSERDUDJfQ1RMKGRldl9wcml2 LCB0cmFucywgcG9ydCkgXAorCQkJCQkoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMiA/IFwKKwkJ CQkJIFRSQU5TX0hEQ1AyX0NUTCh0cmFucykgOiBcCisJCQkJCSBQT1JUX0hEQ1AyX0NUTChwb3J0 KSkKKworI2RlZmluZSBQT1JUX0hEQ1AyX1NUQVRVUyhwb3J0KQkJX1BPUlRfSERDUDJfQkFTRShw b3J0LCAweEI0KQorI2RlZmluZSBfVFJBTlNBX0hEQ1AyX1NUQVRVUwkJMHg2NjRCNAorI2RlZmlu ZSBfVFJBTlNCX0hEQ1AyX1NUQVRVUwkJMHg2NjVCNAorI2RlZmluZSBUUkFOU19IRENQMl9TVEFU VVModHJhbnMpCV9NTUlPX1RSQU5TKHRyYW5zLCBcCisJCQkJCQkgICAgX1RSQU5TQV9IRENQMl9T VEFUVVMsIFwKKwkJCQkJCSAgICBfVFJBTlNCX0hEQ1AyX1NUQVRVUykKICNkZWZpbmUgICBMSU5L X1RZUEVfU1RBVFVTCQlCSVQoMjIpCiAjZGVmaW5lICAgTElOS19BVVRIX1NUQVRVUwkJQklUKDIx KQogI2RlZmluZSAgIExJTktfRU5DUllQVElPTl9TVEFUVVMJQklUKDIwKQorI2RlZmluZSBIRENQ Ml9TVEFUVVMoZGV2X3ByaXYsIHRyYW5zLCBwb3J0KSBcCisJCQkJCShJTlRFTF9HRU4oZGV2X3By aXYpID49IDEyID8gXAorCQkJCQkgVFJBTlNfSERDUDJfU1RBVFVTKHRyYW5zKSA6IFwKKwkJCQkJ IFBPUlRfSERDUDJfU1RBVFVTKHBvcnQpKQogCiAvKiBQZXItcGlwZSBEREkgRnVuY3Rpb24gQ29u dHJvbCAqLwogI2RlZmluZSBfVFJBTlNfRERJX0ZVTkNfQ1RMX0EJCTB4NjA0MDAKLS0gCjIuMjAu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4