From mboxrd@z Thu Jan 1 00:00:00 1970 From: Umesh Nerlige Ramappa Subject: [PATCH] drm/i915/perf: Refactor oa object to better manage resources Date: Tue, 6 Aug 2019 16:30:02 -0700 Message-ID: <20190806233002.984-1-umesh.nerlige.ramappa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5515A6E57A for ; Tue, 6 Aug 2019 23:30:19 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIG9hIG9iamVjdCBtYW5hZ2VzIHRoZSBvYSBidWZmZXIgYW5kIG11c3QgYmUgYWxsb2NhdGVk IHdoZW4gdGhlIHVzZXIKaW50ZW5kcyB0byByZWFkIHBlcmZvcm1hbmNlIGNvdW50ZXIgc25hcHNo b3RzLiBUaGlzIGNhbiBiZSBhY2hpZXZlZCBieQptYWtpbmcgdGhlIG9hIG9iamVjdCBwYXJ0IG9m IHRoZSBzdHJlYW0gb2JqZWN0IHdoaWNoIGlzIGFsbG9jYXRlZCB3aGVuIGEKc3RyZWFtIGlzIG9w ZW5lZCBieSB0aGUgdXNlci4KCkF0dHJpYnV0ZXMgaW4gdGhlIG9hIG9iamVjdCB0aGF0IGFyZSBn ZW4tc3BlY2lmaWMgYXJlIG1vdmVkIHRvIHRoZSBwZXJmCm9iamVjdCBzbyB0aGF0IHRoZXkgY2Fu IGJlIGluaXRpYWxpemVkIG9uIGRyaXZlciBsb2FkLgoKVGhlIHNwbGl0IHByb3ZpZGVzIGEgYmV0 dGVyIHNlcGFyYXRpb24gb2YgdGhlIG9iamVjdHMgdXNlZCBpbiBwZXJmCmltcGxlbWVudGF0aW9u IG9mIGk5MTUgZHJpdmVyIHNvIHRoYXQgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgYW5kCmluaXRp YWxpemVkIG9ubHkgd2hlbiBuZWVkZWQuCgp2MjogRml4IGNoZWNrcGF0Y2ggd2FybmluZ3MKdjM6 IEFkZHJlc3NlZCBMaW9uZWwncyByZXZpZXcgY29tbWVudAp2NDogUmViYXNlCnY1OiBGaXggcmVi YXNlL21lcmdlIGlzc3VlIHdpdGggcmF0ZWxpbWl0X3N0YXRlX2luaXQKClNpZ25lZC1vZmYtYnk6 IFVtZXNoIE5lcmxpZ2UgUmFtYXBwYSA8dW1lc2gubmVybGlnZS5yYW1hcHBhQGludGVsLmNvbT4K UmV2aWV3ZWQtYnk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMgICAgIHwgICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMgICAgIHwgICA0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgMjE5ICsrKysrLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAgICAgICB8IDU0MiArKysrKysrKysr KystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9iZHcuYyAgICB8 ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9ieHQuYyAgICB8ICAzMCAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDIuYyB8ICAzMCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDMuYyB8ICAzMCArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jaHYuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvb2EvaTkxNV9vYV9jbmwuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv b2EvaTkxNV9vYV9nbGsuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9oc3cuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9p Y2wuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDIu YyB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxndDMuYyB8ICAz MCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDIuYyB8ICAzMCArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDMuYyB8ICAzMCArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9za2xndDQuYyB8ICAzMCArLQogMTggZmlsZXMgY2hh bmdlZCwgNTk4IGluc2VydGlvbnMoKyksIDU4OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9zc2V1LmMKaW5kZXggYTA3NTZmMDA2ZjVmLi42YmYyZDg3ZGExMDkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMKQEAgLTQ5LDcgKzQ5LDcgQEAgdTMyIGludGVs X3NzZXVfbWFrZV9ycGNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAqIGNhc2Vz IHdoaWNoIGRpc2FibGUgc2xpY2VzIGZvciBmdW5jdGlvbmFsLCBhcGFydCBmb3IgcGVyZm9ybWFu Y2UKIAkgKiByZWFzb25zLiBTbyBpbiB0aGlzIGNhc2Ugd2Ugc2VsZWN0IGEga25vd24gc3RhYmxl IHN1YnNldC4KIAkgKi8KLQlpZiAoIWk5MTUtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSkgewor CWlmICghaTkxNS0+cGVyZi5leGNsdXNpdmVfc3RyZWFtKSB7CiAJCWN0eF9zc2V1ID0gKnJlcV9z c2V1OwogCX0gZWxzZSB7CiAJCWN0eF9zc2V1ID0gaW50ZWxfc3NldV9mcm9tX2RldmljZV9pbmZv KHNzZXUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jCmluZGV4IDMyYWU2YjViN2Ux Ni4uM2VmOGJlZmE4OTBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2No ZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jCkBAIC04 NCw4ICs4NCw4IEBAIHN0YXRpYyB2b2lkIHNyX29hX3JlZ3Moc3RydWN0IGludGVsX3ZncHVfd29y a2xvYWQgKndvcmtsb2FkLAogCQl1MzIgKnJlZ19zdGF0ZSwgYm9vbCBzYXZlKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHdvcmtsb2FkLT52Z3B1LT5ndnQtPmRldl9w cml2OwotCXUzMiBjdHhfb2FjdHhjdHJsID0gZGV2X3ByaXYtPnBlcmYub2EuY3R4X29hY3R4Y3Ry bF9vZmZzZXQ7Ci0JdTMyIGN0eF9mbGV4ZXUwID0gZGV2X3ByaXYtPnBlcmYub2EuY3R4X2ZsZXhl dTBfb2Zmc2V0OworCXUzMiBjdHhfb2FjdHhjdHJsID0gZGV2X3ByaXYtPnBlcmYuY3R4X29hY3R4 Y3RybF9vZmZzZXQ7CisJdTMyIGN0eF9mbGV4ZXUwID0gZGV2X3ByaXYtPnBlcmYuY3R4X2ZsZXhl dTBfb2Zmc2V0OwogCWludCBpID0gMDsKIAl1MzIgZmxleF9tbWlvW10gPSB7CiAJCWk5MTVfbW1p b19yZWdfb2Zmc2V0KEVVX1BFUkZfQ05UTDApLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXgg ZDFhNDAwZjY1NDMyLi5iNTU4OTk0OGYwY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAt MTI0MCw2ICsxMjQwLDg2IEBAIHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtIHsKIAkgKiBAb2FfY29u ZmlnOiBUaGUgT0EgY29uZmlndXJhdGlvbiB1c2VkIGJ5IHRoZSBzdHJlYW0uCiAJICovCiAJc3Ry dWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWc7CisKKwkvKioKKwkgKiBUaGUgT0EgY29udGV4 dCBzcGVjaWZpYyBpbmZvcm1hdGlvbi4KKwkgKi8KKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqcGlu bmVkX2N0eDsKKwl1MzIgc3BlY2lmaWNfY3R4X2lkOworCXUzMiBzcGVjaWZpY19jdHhfaWRfbWFz azsKKworCXN0cnVjdCBocnRpbWVyIHBvbGxfY2hlY2tfdGltZXI7CisJd2FpdF9xdWV1ZV9oZWFk X3QgcG9sbF93cTsKKwlib29sIHBvbGxpbjsKKworCWJvb2wgcGVyaW9kaWM7CisJaW50IHBlcmlv ZF9leHBvbmVudDsKKworCS8qKgorCSAqIFN0YXRlIG9mIHRoZSBPQSBidWZmZXIuCisJICovCisJ c3RydWN0IHsKKwkJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJCXU4ICp2YWRkcjsKKwkJdTMyIGxh c3RfY3R4X2lkOworCQlpbnQgZm9ybWF0OworCQlpbnQgZm9ybWF0X3NpemU7CisJCWludCBzaXpl X2V4cG9uZW50OworCisJCS8qKgorCQkgKiBMb2NrcyByZWFkcyBhbmQgd3JpdGVzIHRvIGFsbCBo ZWFkL3RhaWwgc3RhdGUKKwkJICoKKwkJICogQ29uc2lkZXI6IHRoZSBoZWFkIGFuZCB0YWlsIHBv aW50ZXIgc3RhdGUgbmVlZHMgdG8gYmUgcmVhZAorCQkgKiBjb25zaXN0ZW50bHkgZnJvbSBhIGhy dGltZXIgY2FsbGJhY2sgKGF0b21pYyBjb250ZXh0KSBhbmQKKwkJICogcmVhZCgpIGZvcCAodXNl ciBjb250ZXh0KSB3aXRoIHRhaWwgcG9pbnRlciB1cGRhdGVzIGhhcHBlbmluZworCQkgKiBpbiBh dG9taWMgY29udGV4dCBhbmQgaGVhZCB1cGRhdGVzIGluIHVzZXIgY29udGV4dCBhbmQgdGhlCisJ CSAqICh1bmxpa2VseSkgcG9zc2liaWxpdHkgb2YgcmVhZCgpIGVycm9ycyBuZWVkaW5nIHRvIHJl c2V0IGFsbAorCQkgKiBoZWFkL3RhaWwgc3RhdGUuCisJCSAqCisJCSAqIE5vdGU6IENvbnRlbnRp b24vcGVyZm9ybWFuY2UgYXJlbid0IGN1cnJlbnRseSBhIHNpZ25pZmljYW50CisJCSAqIGNvbmNl cm4gaGVyZSBjb25zaWRlcmluZyB0aGUgcmVsYXRpdmVseSBsb3cgZnJlcXVlbmN5IG9mCisJCSAq IGhydGltZXIgY2FsbGJhY2tzICg1bXMgcGVyaW9kKSBhbmQgdGhhdCByZWFkcyB0eXBpY2FsbHkg b25seQorCQkgKiBoYXBwZW4gaW4gcmVzcG9uc2UgdG8gYSBocnRpbWVyIGV2ZW50IGFuZCBsaWtl bHkgY29tcGxldGUKKwkJICogYmVmb3JlIHRoZSBuZXh0IGNhbGxiYWNrLgorCQkgKgorCQkgKiBO b3RlOiBUaGlzIGxvY2sgaXMgbm90IGhlbGQgKndoaWxlKiByZWFkaW5nIGFuZCBjb3B5aW5nIGRh dGEKKwkJICogdG8gdXNlcnNwYWNlIHNvIHRoZSB2YWx1ZSBvZiBoZWFkIG9ic2VydmVkIGluIGh0 cmltZXIKKwkJICogY2FsbGJhY2tzIHdvbid0IHJlcHJlc2VudCBhbnkgcGFydGlhbCBjb25zdW1w dGlvbiBvZiBkYXRhLgorCQkgKi8KKwkJc3BpbmxvY2tfdCBwdHJfbG9jazsKKworCQkvKioKKwkJ ICogT25lICdhZ2luZycgdGFpbCBwb2ludGVyIGFuZCBvbmUgJ2FnZWQnIHRhaWwgcG9pbnRlciBy ZWFkeSB0bworCQkgKiB1c2VkIGZvciByZWFkaW5nLgorCQkgKgorCQkgKiBJbml0aWFsIHZhbHVl cyBvZiAweGZmZmZmZmZmIGFyZSBpbnZhbGlkIGFuZCBpbXBseSB0aGF0IGFuCisJCSAqIHVwZGF0 ZSBpcyByZXF1aXJlZCAoYW5kIHNob3VsZCBiZSBpZ25vcmVkIGJ5IGFuIGF0dGVtcHRlZAorCQkg KiByZWFkKQorCQkgKi8KKwkJc3RydWN0IHsKKwkJCXUzMiBvZmZzZXQ7CisJCX0gdGFpbHNbMl07 CisKKwkJLyoqCisJCSAqIEluZGV4IGZvciB0aGUgYWdlZCB0YWlsIHJlYWR5IHRvIHJlYWQoKSBk YXRhIHVwIHRvLgorCQkgKi8KKwkJdW5zaWduZWQgaW50IGFnZWRfdGFpbF9pZHg7CisKKwkJLyoq CisJCSAqIEEgbW9ub3RvbmljIHRpbWVzdGFtcCBmb3Igd2hlbiB0aGUgY3VycmVudCBhZ2luZyB0 YWlsIHBvaW50ZXIKKwkJICogd2FzIHJlYWQ7IHVzZWQgdG8gZGV0ZXJtaW5lIHdoZW4gaXQgaXMg b2xkIGVub3VnaCB0byB0cnVzdC4KKwkJICovCisJCXU2NCBhZ2luZ190aW1lc3RhbXA7CisKKwkJ LyoqCisJCSAqIEFsdGhvdWdoIHdlIGNhbiBhbHdheXMgcmVhZCBiYWNrIHRoZSBoZWFkIHBvaW50 ZXIgcmVnaXN0ZXIsCisJCSAqIHdlIHByZWZlciB0byBhdm9pZCB0cnVzdGluZyB0aGUgSFcgc3Rh dGUsIGp1c3QgdG8gYXZvaWQgYW55CisJCSAqIHJpc2sgdGhhdCBzb21lIGhhcmR3YXJlIGNvbmRp dGlvbiBjb3VsZCAqIHNvbWVob3cgYnVtcCB0aGUKKwkJICogaGVhZCBwb2ludGVyIHVucHJlZGlj dGFibHkgYW5kIGNhdXNlIHVzIHRvIGZvcndhcmQgdGhlIHdyb25nCisJCSAqIE9BIGJ1ZmZlciBk YXRhIHRvIHVzZXJzcGFjZS4KKwkJICovCisJCXUzMiBoZWFkOworCX0gb2FfYnVmZmVyOwogfTsK IAogLyoqCkBAIC0xMjc3LDcgKzEzNTcsNyBAQCBzdHJ1Y3QgaTkxNV9vYV9vcHMgewogCSAqIEBk aXNhYmxlX21ldHJpY19zZXQ6IFJlbW92ZSBzeXN0ZW0gY29uc3RyYWludHMgYXNzb2NpYXRlZCB3 aXRoIHVzaW5nCiAJICogdGhlIE9BIHVuaXQuCiAJICovCi0Jdm9pZCAoKmRpc2FibGVfbWV0cmlj X3NldCkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKwl2b2lkICgqZGlzYWJs ZV9tZXRyaWNfc2V0KShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKTsKIAogCS8qKgog CSAqIEBvYV9lbmFibGU6IEVuYWJsZSBwZXJpb2RpYyBzYW1wbGluZwpAQCAtMTMwNSw3ICsxMzg1 LDcgQEAgc3RydWN0IGk5MTVfb2Ffb3BzIHsKIAkgKiBoYW5kbGluZyB0aGUgT0EgdW5pdCB0YWls IHBvaW50ZXIgcmFjZSB0aGF0IGFmZmVjdHMgbXVsdGlwbGUKIAkgKiBnZW5lcmF0aW9ucy4KIAkg Ki8KLQl1MzIgKCpvYV9od190YWlsX3JlYWQpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7CisJdTMyICgqb2FfaHdfdGFpbF9yZWFkKShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAq c3RyZWFtKTsKIH07CiAKIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSB7CkBAIC0xNzA0LDEyMCAr MTc4NCwzNSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJCXN0cnVjdCBtdXRleCBsb2Nr OwogCQlzdHJ1Y3QgbGlzdF9oZWFkIHN0cmVhbXM7CiAKLQkJc3RydWN0IHsKLQkJCS8qCi0JCQkg KiBUaGUgc3RyZWFtIGN1cnJlbnRseSB1c2luZyB0aGUgT0EgdW5pdC4gSWYgYWNjZXNzZWQKLQkJ CSAqIG91dHNpZGUgYSBzeXNjYWxsIGFzc29jaWF0ZWQgdG8gaXRzIGZpbGUKLQkJCSAqIGRlc2Ny aXB0b3IsIHlvdSBuZWVkIHRvIGhvbGQKLQkJCSAqIGRldl9wcml2LT5kcm0uc3RydWN0X211dGV4 LgotCQkJICovCi0JCQlzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqZXhjbHVzaXZlX3N0cmVhbTsK KwkJLyoKKwkJICogVGhlIHN0cmVhbSBjdXJyZW50bHkgdXNpbmcgdGhlIE9BIHVuaXQuIElmIGFj Y2Vzc2VkCisJCSAqIG91dHNpZGUgYSBzeXNjYWxsIGFzc29jaWF0ZWQgdG8gaXRzIGZpbGUKKwkJ ICogZGVzY3JpcHRvciwgeW91IG5lZWQgdG8gaG9sZAorCQkgKiBkZXZfcHJpdi0+ZHJtLnN0cnVj dF9tdXRleC4KKwkJICovCisJCXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpleGNsdXNpdmVfc3Ry ZWFtOworCisJCS8qKgorCQkgKiBGb3IgcmF0ZSBsaW1pdGluZyBhbnkgbm90aWZpY2F0aW9ucyBv ZiBzcHVyaW91cworCQkgKiBpbnZhbGlkIE9BIHJlcG9ydHMKKwkJICovCisJCXN0cnVjdCByYXRl bGltaXRfc3RhdGUgc3B1cmlvdXNfcmVwb3J0X3JzOwogCi0JCQlzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqcGlubmVkX2N0eDsKLQkJCXUzMiBzcGVjaWZpY19jdHhfaWQ7Ci0JCQl1MzIgc3BlY2lmaWNf Y3R4X2lkX21hc2s7CisJCXN0cnVjdCBpOTE1X29hX2NvbmZpZyB0ZXN0X2NvbmZpZzsKIAotCQkJ c3RydWN0IGhydGltZXIgcG9sbF9jaGVja190aW1lcjsKLQkJCXdhaXRfcXVldWVfaGVhZF90IHBv bGxfd3E7Ci0JCQlib29sIHBvbGxpbjsKKwkJdTMyIGdlbjdfbGF0Y2hlZF9vYXN0YXR1czE7CisJ CXUzMiBjdHhfb2FjdHhjdHJsX29mZnNldDsKKwkJdTMyIGN0eF9mbGV4ZXUwX29mZnNldDsKIAot CQkJLyoqCi0JCQkgKiBGb3IgcmF0ZSBsaW1pdGluZyBhbnkgbm90aWZpY2F0aW9ucyBvZiBzcHVy aW91cwotCQkJICogaW52YWxpZCBPQSByZXBvcnRzCi0JCQkgKi8KLQkJCXN0cnVjdCByYXRlbGlt aXRfc3RhdGUgc3B1cmlvdXNfcmVwb3J0X3JzOwotCi0JCQlib29sIHBlcmlvZGljOwotCQkJaW50 IHBlcmlvZF9leHBvbmVudDsKLQotCQkJc3RydWN0IGk5MTVfb2FfY29uZmlnIHRlc3RfY29uZmln OwotCi0JCQlzdHJ1Y3QgewotCQkJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCQkJCXU4ICp2YWRk cjsKLQkJCQl1MzIgbGFzdF9jdHhfaWQ7Ci0JCQkJaW50IGZvcm1hdDsKLQkJCQlpbnQgZm9ybWF0 X3NpemU7Ci0KLQkJCQkvKioKLQkJCQkgKiBMb2NrcyByZWFkcyBhbmQgd3JpdGVzIHRvIGFsbCBo ZWFkL3RhaWwgc3RhdGUKLQkJCQkgKgotCQkJCSAqIENvbnNpZGVyOiB0aGUgaGVhZCBhbmQgdGFp bCBwb2ludGVyIHN0YXRlCi0JCQkJICogbmVlZHMgdG8gYmUgcmVhZCBjb25zaXN0ZW50bHkgZnJv bSBhIGhydGltZXIKLQkJCQkgKiBjYWxsYmFjayAoYXRvbWljIGNvbnRleHQpIGFuZCByZWFkKCkg Zm9wCi0JCQkJICogKHVzZXIgY29udGV4dCkgd2l0aCB0YWlsIHBvaW50ZXIgdXBkYXRlcwotCQkJ CSAqIGhhcHBlbmluZyBpbiBhdG9taWMgY29udGV4dCBhbmQgaGVhZCB1cGRhdGVzCi0JCQkJICog aW4gdXNlciBjb250ZXh0IGFuZCB0aGUgKHVubGlrZWx5KQotCQkJCSAqIHBvc3NpYmlsaXR5IG9m IHJlYWQoKSBlcnJvcnMgbmVlZGluZyB0bwotCQkJCSAqIHJlc2V0IGFsbCBoZWFkL3RhaWwgc3Rh dGUuCi0JCQkJICoKLQkJCQkgKiBOb3RlOiBDb250ZW50aW9uIG9yIHBlcmZvcm1hbmNlIGFyZW4n dAotCQkJCSAqIGN1cnJlbnRseSBhIHNpZ25pZmljYW50IGNvbmNlcm4gaGVyZQotCQkJCSAqIGNv bnNpZGVyaW5nIHRoZSByZWxhdGl2ZWx5IGxvdyBmcmVxdWVuY3kgb2YKLQkJCQkgKiBocnRpbWVy IGNhbGxiYWNrcyAoNW1zIHBlcmlvZCkgYW5kIHRoYXQKLQkJCQkgKiByZWFkcyB0eXBpY2FsbHkg b25seSBoYXBwZW4gaW4gcmVzcG9uc2UgdG8gYQotCQkJCSAqIGhydGltZXIgZXZlbnQgYW5kIGxp a2VseSBjb21wbGV0ZSBiZWZvcmUgdGhlCi0JCQkJICogbmV4dCBjYWxsYmFjay4KLQkJCQkgKgot CQkJCSAqIE5vdGU6IFRoaXMgbG9jayBpcyBub3QgaGVsZCAqd2hpbGUqIHJlYWRpbmcKLQkJCQkg KiBhbmQgY29weWluZyBkYXRhIHRvIHVzZXJzcGFjZSBzbyB0aGUgdmFsdWUKLQkJCQkgKiBvZiBo ZWFkIG9ic2VydmVkIGluIGh0cmltZXIgY2FsbGJhY2tzIHdvbid0Ci0JCQkJICogcmVwcmVzZW50 IGFueSBwYXJ0aWFsIGNvbnN1bXB0aW9uIG9mIGRhdGEuCi0JCQkJICovCi0JCQkJc3BpbmxvY2tf dCBwdHJfbG9jazsKLQotCQkJCS8qKgotCQkJCSAqIE9uZSAnYWdpbmcnIHRhaWwgcG9pbnRlciBh bmQgb25lICdhZ2VkJwotCQkJCSAqIHRhaWwgcG9pbnRlciByZWFkeSB0byB1c2VkIGZvciByZWFk aW5nLgotCQkJCSAqCi0JCQkJICogSW5pdGlhbCB2YWx1ZXMgb2YgMHhmZmZmZmZmZiBhcmUgaW52 YWxpZAotCQkJCSAqIGFuZCBpbXBseSB0aGF0IGFuIHVwZGF0ZSBpcyByZXF1aXJlZAotCQkJCSAq IChhbmQgc2hvdWxkIGJlIGlnbm9yZWQgYnkgYW4gYXR0ZW1wdGVkCi0JCQkJICogcmVhZCkKLQkJ CQkgKi8KLQkJCQlzdHJ1Y3QgewotCQkJCQl1MzIgb2Zmc2V0OwotCQkJCX0gdGFpbHNbMl07Ci0K LQkJCQkvKioKLQkJCQkgKiBJbmRleCBmb3IgdGhlIGFnZWQgdGFpbCByZWFkeSB0byByZWFkKCkK LQkJCQkgKiBkYXRhIHVwIHRvLgotCQkJCSAqLwotCQkJCXVuc2lnbmVkIGludCBhZ2VkX3RhaWxf aWR4OwotCi0JCQkJLyoqCi0JCQkJICogQSBtb25vdG9uaWMgdGltZXN0YW1wIGZvciB3aGVuIHRo ZSBjdXJyZW50Ci0JCQkJICogYWdpbmcgdGFpbCBwb2ludGVyIHdhcyByZWFkOyB1c2VkIHRvCi0J CQkJICogZGV0ZXJtaW5lIHdoZW4gaXQgaXMgb2xkIGVub3VnaCB0byB0cnVzdC4KLQkJCQkgKi8K LQkJCQl1NjQgYWdpbmdfdGltZXN0YW1wOwotCi0JCQkJLyoqCi0JCQkJICogQWx0aG91Z2ggd2Ug Y2FuIGFsd2F5cyByZWFkIGJhY2sgdGhlIGhlYWQKLQkJCQkgKiBwb2ludGVyIHJlZ2lzdGVyLCB3 ZSBwcmVmZXIgdG8gYXZvaWQKLQkJCQkgKiB0cnVzdGluZyB0aGUgSFcgc3RhdGUsIGp1c3QgdG8g YXZvaWQgYW55Ci0JCQkJICogcmlzayB0aGF0IHNvbWUgaGFyZHdhcmUgY29uZGl0aW9uIGNvdWxk Ci0JCQkJICogc29tZWhvdyBidW1wIHRoZSBoZWFkIHBvaW50ZXIgdW5wcmVkaWN0YWJseQotCQkJ CSAqIGFuZCBjYXVzZSB1cyB0byBmb3J3YXJkIHRoZSB3cm9uZyBPQSBidWZmZXIKLQkJCQkgKiBk YXRhIHRvIHVzZXJzcGFjZS4KLQkJCQkgKi8KLQkJCQl1MzIgaGVhZDsKLQkJCX0gb2FfYnVmZmVy OwotCi0JCQl1MzIgZ2VuN19sYXRjaGVkX29hc3RhdHVzMTsKLQkJCXUzMiBjdHhfb2FjdHhjdHJs X29mZnNldDsKLQkJCXUzMiBjdHhfZmxleGV1MF9vZmZzZXQ7Ci0KLQkJCS8qKgotCQkJICogVGhl IFJQVF9JRC9yZWFzb24gZmllbGQgZm9yIEdlbjgrIGluY2x1ZGVzIGEgYml0Ci0JCQkgKiB0byBk ZXRlcm1pbmUgaWYgdGhlIENUWCBJRCBpbiB0aGUgcmVwb3J0IGlzIHZhbGlkCi0JCQkgKiBidXQg dGhlIHNwZWNpZmljIGJpdCBkaWZmZXJzIGJldHdlZW4gR2VuIDggYW5kIDkKLQkJCSAqLwotCQkJ dTMyIGdlbjhfdmFsaWRfY3R4X2JpdDsKKwkJLyoqCisJCSAqIFRoZSBSUFRfSUQvcmVhc29uIGZp ZWxkIGZvciBHZW44KyBpbmNsdWRlcyBhIGJpdAorCQkgKiB0byBkZXRlcm1pbmUgaWYgdGhlIENU WCBJRCBpbiB0aGUgcmVwb3J0IGlzIHZhbGlkCisJCSAqIGJ1dCB0aGUgc3BlY2lmaWMgYml0IGRp ZmZlcnMgYmV0d2VlbiBHZW4gOCBhbmQgOQorCQkgKi8KKwkJdTMyIGdlbjhfdmFsaWRfY3R4X2Jp dDsKIAotCQkJc3RydWN0IGk5MTVfb2Ffb3BzIG9wczsKLQkJCWNvbnN0IHN0cnVjdCBpOTE1X29h X2Zvcm1hdCAqb2FfZm9ybWF0czsKLQkJfSBvYTsKKwkJc3RydWN0IGk5MTVfb2Ffb3BzIG9wczsK KwkJY29uc3Qgc3RydWN0IGk5MTVfb2FfZm9ybWF0ICpvYV9mb3JtYXRzOwogCX0gcGVyZjsKIAog CS8qIEFic3RyYWN0IHRoZSBzdWJtaXNzaW9uIG1lY2hhbmlzbSAobGVnYWN5IHJpbmdidWZmZXIg b3IgZXhlY2xpc3RzKSBhd2F5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCmluZGV4IDJiY2Yw ZDZlMmVlMi4uNzE4ZmM5NzY3NDg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BlcmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwpAQCAtMzY0 LDYgKzM2NCw4IEBAIHN0cnVjdCBwZXJmX29wZW5fcHJvcGVydGllcyB7CiAJaW50IG9hX3Blcmlv ZF9leHBvbmVudDsKIH07CiAKK3N0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBvYV9wb2xsX2No ZWNrX3RpbWVyX2NiKHN0cnVjdCBocnRpbWVyICpocnRpbWVyKTsKKwogc3RhdGljIHZvaWQgZnJl ZV9vYV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgc3Ry dWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCiB7CkBAIC0zOTIsOCArMzk0LDggQEAgc3Rh dGljIGludCBnZXRfb2FfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAlpbnQgcmV0OwogCiAJaWYgKG1ldHJpY3Nfc2V0ID09IDEpIHsKLQkJKm91dF9jb25maWcgPSAm ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWc7Ci0JCWF0b21pY19pbmMoJmRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLnJlZl9jb3VudCk7CisJCSpvdXRfY29uZmlnID0gJmRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnOworCQlhdG9taWNfaW5jKCZkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5yZWZfY291bnQpOwogCQlyZXR1cm4gMDsKIAl9CiAKQEAgLTQxMiwxMyArNDE0LDE2IEBA IHN0YXRpYyBpbnQgZ2V0X29hX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHUzMiBnZW44X29hX2h3X3RhaWxfcmVhZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdTMyIGdlbjhfb2FfaHdf dGFpbF9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwogCXJldHVybiBJ OTE1X1JFQUQoR0VOOF9PQVRBSUxQVFIpICYgR0VOOF9PQVRBSUxQVFJfTUFTSzsKIH0KIAotc3Rh dGljIHUzMiBnZW43X29hX2h3X3RhaWxfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCitzdGF0aWMgdTMyIGdlbjdfb2FfaHdfdGFpbF9yZWFkKHN0cnVjdCBpOTE1X3BlcmZf c3RyZWFtICpzdHJlYW0pCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g c3RyZWFtLT5kZXZfcHJpdjsKIAl1MzIgb2FzdGF0dXMxID0gSTkxNV9SRUFEKEdFTjdfT0FTVEFU VVMxKTsKIAogCXJldHVybiBvYXN0YXR1czEgJiBHRU43X09BU1RBVFVTMV9UQUlMX01BU0s7CkBA IC00MjYsNyArNDMxLDcgQEAgc3RhdGljIHUzMiBnZW43X29hX2h3X3RhaWxfcmVhZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIC8qKgogICogb2FfYnVmZmVyX2NoZWNrX3Vu bG9ja2VkIC0gY2hlY2sgZm9yIGRhdGEgYW5kIHVwZGF0ZSB0YWlsIHB0ciBzdGF0ZQotICogQGRl dl9wcml2OiBpOTE1IGRldmljZSBpbnN0YW5jZQorICogQHN0cmVhbTogaTkxNSBzdHJlYW0gaW5z dGFuY2UKICAqCiAgKiBUaGlzIGlzIGVpdGhlciBjYWxsZWQgdmlhIGZvcHMgKGZvciBibG9ja2lu ZyByZWFkcyBpbiB1c2VyIGN0eCkgb3IgdGhlIHBvbGwKICAqIGNoZWNrIGhydGltZXIgKGF0b21p YyBjdHgpIHRvIGNoZWNrIHRoZSBPQSBidWZmZXIgdGFpbCBwb2ludGVyIGFuZCBjaGVjawpAQCAt NDQ4LDkgKzQ1MywxMCBAQCBzdGF0aWMgdTMyIGdlbjdfb2FfaHdfdGFpbF9yZWFkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqCiAgKiBSZXR1cm5zOiAldHJ1ZSBpZiB0aGUg T0EgYnVmZmVyIGNvbnRhaW5zIGRhdGEsIGVsc2UgJWZhbHNlCiAgKi8KLXN0YXRpYyBib29sIG9h X2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CitzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSkKIHsKLQlpbnQgcmVwb3J0X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIuZm9ybWF0X3NpemU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwlpbnQgcmVwb3J0X3NpemUgPSBzdHJlYW0tPm9hX2J1ZmZl ci5mb3JtYXRfc2l6ZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXVuc2lnbmVkIGludCBhZ2Vk X2lkeDsKIAl1MzIgaGVhZCwgaHdfdGFpbCwgYWdlZF90YWlsLCBhZ2luZ190YWlsOwpAQCAtNDYw LDE5ICs0NjYsMTkgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBjb3VsZCByZXN1bHQgaW4gYW4gT0Eg YnVmZmVyIHJlc2V0IHdoaWNoIG1pZ2h0IHJlc2V0IHRoZSBoZWFkLAogCSAqIHRhaWxzW10gYW5k IGFnZWRfdGFpbCBzdGF0ZS4KIAkgKi8KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBl cmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnN0 cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkvKiBOQjogVGhlIGhlYWQgd2Ug b2JzZXJ2ZSBoZXJlIG1pZ2h0IGVmZmVjdGl2ZWx5IGJlIGEgbGl0dGxlIG91dCBvZgogCSAqIGRh dGUgKGJldHdlZW4gaGVhZCBhbmQgdGFpbHNbYWdlZF9pZHhdLm9mZnNldCBpZiB0aGVyZSBpcyBj dXJyZW50bHkKIAkgKiBhIHJlYWQoKSBpbiBwcm9ncmVzcy4KIAkgKi8KLQloZWFkID0gZGV2X3By aXYtPnBlcmYub2Eub2FfYnVmZmVyLmhlYWQ7CisJaGVhZCA9IHN0cmVhbS0+b2FfYnVmZmVyLmhl YWQ7CiAKLQlhZ2VkX2lkeCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2VkX3RhaWxf aWR4OwotCWFnZWRfdGFpbCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1thZ2Vk X2lkeF0ub2Zmc2V0OwotCWFnaW5nX3RhaWwgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIu dGFpbHNbIWFnZWRfaWR4XS5vZmZzZXQ7CisJYWdlZF9pZHggPSBzdHJlYW0tPm9hX2J1ZmZlci5h Z2VkX3RhaWxfaWR4OworCWFnZWRfdGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzW2FnZWRf aWR4XS5vZmZzZXQ7CisJYWdpbmdfdGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWyFhZ2Vk X2lkeF0ub2Zmc2V0OwogCi0JaHdfdGFpbCA9IGRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9od190 YWlsX3JlYWQoZGV2X3ByaXYpOworCWh3X3RhaWwgPSBkZXZfcHJpdi0+cGVyZi5vcHMub2FfaHdf dGFpbF9yZWFkKHN0cmVhbSk7CiAKIAkvKiBUaGUgdGFpbCBwb2ludGVyIGluY3JlYXNlcyBpbiA2 NCBieXRlIGluY3JlbWVudHMsCiAJICogbm90IGluIHJlcG9ydF9zaXplIHN0ZXBzLi4uCkBAIC00 OTIsMTYgKzQ5OCwxNiBAQCBzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIGF2YWlsYWJsZSkgd2l0aG91dCBu ZWVkaW5nIHRvIHdhaXQgZm9yIGEgbGF0ZXIgaHJ0aW1lciBjYWxsYmFjay4KIAkgKi8KIAlpZiAo YWdpbmdfdGFpbCAhPSBJTlZBTElEX1RBSUxfUFRSICYmCi0JICAgICgobm93IC0gZGV2X3ByaXYt PnBlcmYub2Eub2FfYnVmZmVyLmFnaW5nX3RpbWVzdGFtcCkgPgorCSAgICAoKG5vdyAtIHN0cmVh bS0+b2FfYnVmZmVyLmFnaW5nX3RpbWVzdGFtcCkgPgogCSAgICAgT0FfVEFJTF9NQVJHSU5fTlNF QykpIHsKIAogCQlhZ2VkX2lkeCBePSAxOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIu YWdlZF90YWlsX2lkeCA9IGFnZWRfaWR4OworCQlzdHJlYW0tPm9hX2J1ZmZlci5hZ2VkX3RhaWxf aWR4ID0gYWdlZF9pZHg7CiAKIAkJYWdlZF90YWlsID0gYWdpbmdfdGFpbDsKIAogCQkvKiBNYXJr IHRoYXQgd2UgbmVlZCBhIG5ldyBwb2ludGVyIHRvIHN0YXJ0IGFnaW5nLi4uICovCi0JCWRldl9w cml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldCA9IElOVkFMSURf VEFJTF9QVFI7CisJCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0ID0g SU5WQUxJRF9UQUlMX1BUUjsKIAkJYWdpbmdfdGFpbCA9IElOVkFMSURfVEFJTF9QVFI7CiAJfQog CkBAIC01MTYsNyArNTIyLDcgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2Vk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAoYWdpbmdfdGFpbCA9PSBJ TlZBTElEX1RBSUxfUFRSICYmCiAJICAgIChhZ2VkX3RhaWwgPT0gSU5WQUxJRF9UQUlMX1BUUiB8 fAogCSAgICAgT0FfVEFLRU4oaHdfdGFpbCwgYWdlZF90YWlsKSA+PSByZXBvcnRfc2l6ZSkpIHsK LQkJc3RydWN0IGk5MTVfdm1hICp2bWEgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1h OworCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSA9IHN0cmVhbS0+b2FfYnVmZmVyLnZtYTsKIAkJdTMy IGd0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7CiAKIAkJLyogQmUgcGFyYW5vaWQg YW5kIGRvIGEgYm91bmRzIGNoZWNrIG9uIHRoZSBwb2ludGVyIHJlYWQgYmFjawpAQCAtNTI1LDE2 ICs1MzEsMTYgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJICovCiAJCWlmIChod190YWlsID49IGd0dF9v ZmZzZXQgJiYKIAkJICAgIGh3X3RhaWwgPCAoZ3R0X29mZnNldCArIE9BX0JVRkZFUl9TSVpFKSkg ewotCQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0 ID0KKwkJCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0ID0KIAkJCQlh Z2luZ190YWlsID0gaHdfdGFpbDsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2lu Z190aW1lc3RhbXAgPSBub3c7CisJCQlzdHJlYW0tPm9hX2J1ZmZlci5hZ2luZ190aW1lc3RhbXAg PSBub3c7CiAJCX0gZWxzZSB7CiAJCQlEUk1fRVJST1IoIklnbm9yaW5nIHNwdXJpb3VzIG91dCBv ZiByYW5nZSBPQSBidWZmZXIgdGFpbCBwb2ludGVyID0gJXVcbiIsCiAJCQkJICBod190YWlsKTsK IAkJfQogCX0KIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9h X2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0cmVh bS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gYWdlZF90YWlsID09IElO VkFMSURfVEFJTF9QVFIgPwogCQlmYWxzZSA6IE9BX1RBS0VOKGFnZWRfdGFpbCwgaGVhZCkgPj0g cmVwb3J0X3NpemU7CkBAIC01OTcsOCArNjAzLDcgQEAgc3RhdGljIGludCBhcHBlbmRfb2Ffc2Ft cGxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCQkgICAgc2l6ZV90ICpvZmZz ZXQsCiAJCQkgICAgY29uc3QgdTggKnJlcG9ydCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCWludCByZXBvcnRfc2l6ZSA9IGRldl9w cml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKKwlpbnQgcmVwb3J0X3NpemUgPSBz dHJlYW0tPm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9yZWNv cmRfaGVhZGVyIGhlYWRlcjsKIAl1MzIgc2FtcGxlX2ZsYWdzID0gc3RyZWFtLT5zYW1wbGVfZmxh Z3M7CiAKQEAgLTY1MCw5ICs2NTUsOSBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9y dHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCQkgIHNpemVfdCAqb2Zmc2V0 KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3By aXY7Ci0JaW50IHJlcG9ydF9zaXplID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1h dF9zaXplOwotCXU4ICpvYV9idWZfYmFzZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52 YWRkcjsKLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoZGV2X3ByaXYtPnBlcmYu b2Eub2FfYnVmZmVyLnZtYSk7CisJaW50IHJlcG9ydF9zaXplID0gc3RyZWFtLT5vYV9idWZmZXIu Zm9ybWF0X3NpemU7CisJdTggKm9hX2J1Zl9iYXNlID0gc3RyZWFtLT5vYV9idWZmZXIudmFkZHI7 CisJdTMyIGd0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHN0cmVhbS0+b2FfYnVmZmVyLnZt YSk7CiAJdTMyIG1hc2sgPSAoT0FfQlVGRkVSX1NJWkUgLSAxKTsKIAlzaXplX3Qgc3RhcnRfb2Zm c2V0ID0gKm9mZnNldDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtNjY0LDEzICs2NjksMTMg QEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3Ry ZWFtICpzdHJlYW0sCiAJaWYgKFdBUk5fT04oIXN0cmVhbS0+ZW5hYmxlZCkpCiAJCXJldHVybiAt RUlPOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5w dHJfbG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZlci5w dHJfbG9jaywgZmxhZ3MpOwogCi0JaGVhZCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5o ZWFkOwotCWFnZWRfdGFpbF9pZHggPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuYWdlZF90 YWlsX2lkeDsKLQl0YWlsID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzW2FnZWRf dGFpbF9pZHhdLm9mZnNldDsKKwloZWFkID0gc3RyZWFtLT5vYV9idWZmZXIuaGVhZDsKKwlhZ2Vk X3RhaWxfaWR4ID0gc3RyZWFtLT5vYV9idWZmZXIuYWdlZF90YWlsX2lkeDsKKwl0YWlsID0gc3Ry ZWFtLT5vYV9idWZmZXIudGFpbHNbYWdlZF90YWlsX2lkeF0ub2Zmc2V0OwogCi0Jc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFn cyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ss IGZsYWdzKTsKIAogCS8qCiAJICogQW4gaW52YWxpZCB0YWlsIHBvaW50ZXIgaGVyZSBtZWFucyB3 ZSdyZSBzdGlsbCB3YWl0aW5nIGZvciB0aGUgcG9sbApAQCAtNzM0LDEyICs3MzksMTIgQEAgc3Rh dGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpz dHJlYW0sCiAJCXJlYXNvbiA9ICgocmVwb3J0MzJbMF0gPj4gT0FSRVBPUlRfUkVBU09OX1NISUZU KSAmCiAJCQkgIE9BUkVQT1JUX1JFQVNPTl9NQVNLKTsKIAkJaWYgKHJlYXNvbiA9PSAwKSB7Ci0J CQlpZiAoX19yYXRlbGltaXQoJmRldl9wcml2LT5wZXJmLm9hLnNwdXJpb3VzX3JlcG9ydF9ycykp CisJCQlpZiAoX19yYXRlbGltaXQoJmRldl9wcml2LT5wZXJmLnNwdXJpb3VzX3JlcG9ydF9ycykp CiAJCQkJRFJNX05PVEUoIlNraXBwaW5nIHNwdXJpb3VzLCBpbnZhbGlkIE9BIHJlcG9ydFxuIik7 CiAJCQljb250aW51ZTsKIAkJfQogCi0JCWN0eF9pZCA9IHJlcG9ydDMyWzJdICYgZGV2X3ByaXYt PnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkX21hc2s7CisJCWN0eF9pZCA9IHJlcG9ydDMyWzJdICYg c3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzazsKIAogCQkvKgogCQkgKiBTcXVhc2ggd2hhdGV2 ZXIgaXMgaW4gdGhlIENUWF9JRCBmaWVsZCBpZiBpdCdzIG1hcmtlZCBhcwpAQCAtNzQ5LDcgKzc1 NCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtLAogCQkgKiBOb3RlOiB0aGF0IHdlIGRvbid0IGNsZWFyIHRoZSB2YWxp ZF9jdHhfYml0IHNvIHVzZXJzcGFjZSBjYW4KIAkJICogdW5kZXJzdGFuZCB0aGF0IHRoZSBJRCBo YXMgYmVlbiBzcXVhc2hlZCBieSB0aGUga2VybmVsLgogCQkgKi8KLQkJaWYgKCEocmVwb3J0MzJb MF0gJiBkZXZfcHJpdi0+cGVyZi5vYS5nZW44X3ZhbGlkX2N0eF9iaXQpKQorCQlpZiAoIShyZXBv cnQzMlswXSAmIGRldl9wcml2LT5wZXJmLmdlbjhfdmFsaWRfY3R4X2JpdCkpCiAJCQljdHhfaWQg PSByZXBvcnQzMlsyXSA9IElOVkFMSURfQ1RYX0lEOwogCiAJCS8qCkBAIC03ODMsMTggKzc4OCwx OCBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSwKIAkJICogc3dpdGNoZXMgc2luY2UgaXQncyBub3QtdW5jb21tb24gZm9y IHBlcmlvZGljIHNhbXBsZXMgdG8KIAkJICogaWRlbnRpZnkgYSBzd2l0Y2ggYmVmb3JlIGFueSAn Y29udGV4dCBzd2l0Y2gnIHJlcG9ydC4KIAkJICovCi0JCWlmICghZGV2X3ByaXYtPnBlcmYub2Eu ZXhjbHVzaXZlX3N0cmVhbS0+Y3R4IHx8Ci0JCSAgICBkZXZfcHJpdi0+cGVyZi5vYS5zcGVjaWZp Y19jdHhfaWQgPT0gY3R4X2lkIHx8Ci0JCSAgICAoZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVy Lmxhc3RfY3R4X2lkID09Ci0JCSAgICAgZGV2X3ByaXYtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lk KSB8fAorCQlpZiAoIWRldl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCB8fAorCQkg ICAgc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQgPT0gY3R4X2lkIHx8CisJCSAgICAoc3RyZWFtLT5v YV9idWZmZXIubGFzdF9jdHhfaWQgPT0KKwkJICAgIHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkKSB8 fAogCQkgICAgcmVhc29uICYgT0FSRVBPUlRfUkVBU09OX0NUWF9TV0lUQ0gpIHsKIAogCQkJLyoK IAkJCSAqIFdoaWxlIGZpbHRlcmluZyBmb3IgYSBzaW5nbGUgY29udGV4dCB3ZSBhdm9pZAogCQkJ ICogbGVha2luZyB0aGUgSURzIG9mIG90aGVyIGNvbnRleHRzLgogCQkJICovCi0JCQlpZiAoZGV2 X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbS0+Y3R4ICYmCi0JCQkgICAgZGV2X3ByaXYt PnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkICE9IGN0eF9pZCkgeworCQkJaWYgKGRldl9wcml2LT5w ZXJmLmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCAmJgorCQkJICAgIHN0cmVhbS0+c3BlY2lmaWNfY3R4 X2lkICE9IGN0eF9pZCkgewogCQkJCXJlcG9ydDMyWzJdID0gSU5WQUxJRF9DVFhfSUQ7CiAJCQl9 CiAKQEAgLTgwMyw3ICs4MDgsNyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMo c3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCWlmIChyZXQpCiAJCQkJYnJlYWs7 CiAKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5sYXN0X2N0eF9pZCA9IGN0eF9pZDsK KwkJCXN0cmVhbS0+b2FfYnVmZmVyLmxhc3RfY3R4X2lkID0gY3R4X2lkOwogCQl9CiAKIAkJLyoK QEAgLTgxNyw3ICs4MjIsNyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3Ry dWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAl9CiAKIAlpZiAoc3RhcnRfb2Zmc2V0ICE9 ICpvZmZzZXQpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1 ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9i dWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKIAogCQkvKgogCQkgKiBXZSByZW1vdmVkIHRoZSBndHRf b2Zmc2V0IGZvciB0aGUgY29weSBsb29wIGFib3ZlLCBpbmRleGluZwpAQCAtODI2LDkgKzgzMSw5 IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtLAogCQloZWFkICs9IGd0dF9vZmZzZXQ7CiAKIAkJSTkxNV9XUklURShHRU44 X09BSEVBRFBUUiwgaGVhZCAmIEdFTjhfT0FIRUFEUFRSX01BU0spOwotCQlkZXZfcHJpdi0+cGVy Zi5vYS5vYV9idWZmZXIuaGVhZCA9IGhlYWQ7CisJCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQgPSBo ZWFkOwogCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1 ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0t Pm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC04NjMs NyArODY4LDcgQEAgc3RhdGljIGludCBnZW44X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJl YW0gKnN0cmVhbSwKIAl1MzIgb2FzdGF0dXM7CiAJaW50IHJldDsKIAotCWlmIChXQVJOX09OKCFk ZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIpKQorCWlmIChXQVJOX09OKCFzdHJlYW0t Pm9hX2J1ZmZlci52YWRkcikpCiAJCXJldHVybiAtRUlPOwogCiAJb2FzdGF0dXMgPSBJOTE1X1JF QUQoR0VOOF9PQVNUQVRVUyk7CkBAIC04ODksMTAgKzg5NCwxMCBAQCBzdGF0aWMgaW50IGdlbjhf b2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJcmV0dXJuIHJldDsK IAogCQlEUk1fREVCVUcoIk9BIGJ1ZmZlciBvdmVyZmxvdyAoZXhwb25lbnQgPSAlZCk6IGZvcmNl IHJlc3RhcnRcbiIsCi0JCQkgIGRldl9wcml2LT5wZXJmLm9hLnBlcmlvZF9leHBvbmVudCk7CisJ CQkgIHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50KTsKIAotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMu b2FfZGlzYWJsZShzdHJlYW0pOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZW5hYmxlKHN0 cmVhbSk7CisJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9kaXNhYmxlKHN0cmVhbSk7CisJCWRldl9w cml2LT5wZXJmLm9wcy5vYV9lbmFibGUoc3RyZWFtKTsKIAogCQkvKgogCQkgKiBOb3RlOiAub2Ff ZW5hYmxlKCkgaXMgZXhwZWN0ZWQgdG8gcmUtaW5pdCB0aGUgb2FidWZmZXIgYW5kCkBAIC05Mzks OSArOTQ0LDkgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCQkJICBzaXplX3QgKm9mZnNldCkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCWludCByZXBv cnRfc2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKLQl1OCAq b2FfYnVmX2Jhc2UgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHI7Ci0JdTMyIGd0 dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52 bWEpOworCWludCByZXBvcnRfc2l6ZSA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9zaXplOwor CXU4ICpvYV9idWZfYmFzZSA9IHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyOworCXUzMiBndHRfb2Zm c2V0ID0gaTkxNV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1ZmZlci52bWEpOwogCXUzMiBtYXNr ID0gKE9BX0JVRkZFUl9TSVpFIC0gMSk7CiAJc2l6ZV90IHN0YXJ0X29mZnNldCA9ICpvZmZzZXQ7 CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTk1MywxMyArOTU4LDEzIEBAIHN0YXRpYyBpbnQg Z2VuN19hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAog CWlmIChXQVJOX09OKCFzdHJlYW0tPmVuYWJsZWQpKQogCQlyZXR1cm4gLUVJTzsKIAotCXNwaW5f bG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdz KTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdz KTsKIAotCWhlYWQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVhZDsKLQlhZ2VkX3Rh aWxfaWR4ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7Ci0JdGFp bCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1thZ2VkX3RhaWxfaWR4XS5vZmZz ZXQ7CisJaGVhZCA9IHN0cmVhbS0+b2FfYnVmZmVyLmhlYWQ7CisJYWdlZF90YWlsX2lkeCA9IHN0 cmVhbS0+b2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7CisJdGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVy LnRhaWxzW2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkv KiBBbiBpbnZhbGlkIHRhaWwgcG9pbnRlciBoZXJlIG1lYW5zIHdlJ3JlIHN0aWxsIHdhaXRpbmcg Zm9yIHRoZSBwb2xsCiAJICogaHJ0aW1lciBjYWxsYmFjayB0byBnaXZlIHVzIGEgcG9pbnRlcgpA QCAtMTAxMiw3ICsxMDE3LDcgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0 cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCSAqIGNvcHlpbmcgaXQgdG8gdXNlcnNw YWNlLi4uCiAJCSAqLwogCQlpZiAocmVwb3J0MzJbMF0gPT0gMCkgewotCQkJaWYgKF9fcmF0ZWxp bWl0KCZkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBvcnRfcnMpKQorCQkJaWYgKF9fcmF0 ZWxpbWl0KCZkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMpKQogCQkJCURSTV9OT1RF KCJTa2lwcGluZyBzcHVyaW91cywgaW52YWxpZCBPQSByZXBvcnRcbiIpOwogCQkJY29udGludWU7 CiAJCX0KQEAgLTEwMzEsNyArMTAzNiw3IEBAIHN0YXRpYyBpbnQgZ2VuN19hcHBlbmRfb2FfcmVw b3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCX0KIAogCWlmIChzdGFydF9v ZmZzZXQgIT0gKm9mZnNldCkgewotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBlcmYu b2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJl YW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJCS8qIFdlIHJlbW92ZWQgdGhlIGd0 dF9vZmZzZXQgZm9yIHRoZSBjb3B5IGxvb3AgYWJvdmUsIGluZGV4aW5nCiAJCSAqIHJlbGF0aXZl IHRvIG9hX2J1Zl9iYXNlIHNvIHB1dCBiYWNrIGhlcmUuLi4KQEAgLTEwNDEsOSArMTA0Niw5IEBA IHN0YXRpYyBpbnQgZ2VuN19hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVh bSAqc3RyZWFtLAogCQlJOTE1X1dSSVRFKEdFTjdfT0FTVEFUVVMyLAogCQkJICAgKChoZWFkICYg R0VON19PQVNUQVRVUzJfSEVBRF9NQVNLKSB8CiAJCQkgICAgR0VON19PQVNUQVRVUzJfTUVNX1NF TEVDVF9HR1RUKSk7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5oZWFkID0gaGVhZDsK KwkJc3RyZWFtLT5vYV9idWZmZXIuaGVhZCA9IGhlYWQ7CiAKLQkJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7 CiAJfQogCiAJcmV0dXJuIHJldDsKQEAgLTEwNzQsNyArMTA3OSw3IEBAIHN0YXRpYyBpbnQgZ2Vu N19vYV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJdTMyIG9hc3RhdHVz MTsKIAlpbnQgcmV0OwogCi0JaWYgKFdBUk5fT04oIWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZl ci52YWRkcikpCisJaWYgKFdBUk5fT04oIXN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyKSkKIAkJcmV0 dXJuIC1FSU87CiAKIAlvYXN0YXR1czEgPSBJOTE1X1JFQUQoR0VON19PQVNUQVRVUzEpOwpAQCAt MTA4NCw3ICsxMDg5LDcgQEAgc3RhdGljIGludCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVy Zl9zdHJlYW0gKnN0cmVhbSwKIAkgKiBtYXkgYmUgdXBkYXRlZCBhc3luY2hyb25vdXNseSkgc28g d2UgaWdub3JlIHN0YXR1cyBiaXRzCiAJICogdGhhdCBoYXZlIGFscmVhZHkgYmVlbiByZXBvcnRl ZCB0byB1c2Vyc3BhY2UuCiAJICovCi0Jb2FzdGF0dXMxICY9IH5kZXZfcHJpdi0+cGVyZi5vYS5n ZW43X2xhdGNoZWRfb2FzdGF0dXMxOworCW9hc3RhdHVzMSAmPSB+ZGV2X3ByaXYtPnBlcmYuZ2Vu N19sYXRjaGVkX29hc3RhdHVzMTsKIAogCS8qIFdlIHRyZWF0IE9BQlVGRkVSX09WRVJGTE9XIGFz IGEgc2lnbmlmaWNhbnQgZXJyb3I6CiAJICoKQEAgLTExMTMsMTAgKzExMTgsMTAgQEAgc3RhdGlj IGludCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCXJl dHVybiByZXQ7CiAKIAkJRFJNX0RFQlVHKCJPQSBidWZmZXIgb3ZlcmZsb3cgKGV4cG9uZW50ID0g JWQpOiBmb3JjZSByZXN0YXJ0XG4iLAotCQkJICBkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RfZXhw b25lbnQpOworCQkJICBzdHJlYW0tPnBlcmlvZF9leHBvbmVudCk7CiAKLQkJZGV2X3ByaXYtPnBl cmYub2Eub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9h X2VuYWJsZShzdHJlYW0pOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZShzdHJlYW0p OworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZW5hYmxlKHN0cmVhbSk7CiAKIAkJb2FzdGF0dXMx ID0gSTkxNV9SRUFEKEdFTjdfT0FTVEFUVVMxKTsKIAl9CkBAIC0xMTI2LDcgKzExMzEsNyBAQCBz dGF0aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAog CQkJCSAgICAgICBEUk1fSTkxNV9QRVJGX1JFQ09SRF9PQV9SRVBPUlRfTE9TVCk7CiAJCWlmIChy ZXQpCiAJCQlyZXR1cm4gcmV0OwotCQlkZXZfcHJpdi0+cGVyZi5vYS5nZW43X2xhdGNoZWRfb2Fz dGF0dXMxIHw9CisJCWRldl9wcml2LT5wZXJmLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgfD0KIAkJ CUdFTjdfT0FTVEFUVVMxX1JFUE9SVF9MT1NUOwogCX0KIApAQCAtMTE0OSwxNCArMTE1NCwxMiBA QCBzdGF0aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFt LAogICovCiBzdGF0aWMgaW50IGk5MTVfb2Ffd2FpdF91bmxvY2tlZChzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHN0cmVhbS0+ZGV2X3ByaXY7Ci0KIAkvKiBXZSB3b3VsZCB3YWl0IGluZGVmaW5pdGVseSBpZiBw ZXJpb2RpYyBzYW1wbGluZyBpcyBub3QgZW5hYmxlZCAqLwotCWlmICghZGV2X3ByaXYtPnBlcmYu b2EucGVyaW9kaWMpCisJaWYgKCFzdHJlYW0tPnBlcmlvZGljKQogCQlyZXR1cm4gLUVJTzsKIAot CXJldHVybiB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoZGV2X3ByaXYtPnBlcmYub2EucG9sbF93 cSwKLQkJCQkJb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKGRldl9wcml2KSk7CisJcmV0dXJuIHdh aXRfZXZlbnRfaW50ZXJydXB0aWJsZShzdHJlYW0tPnBvbGxfd3EsCisJCQkJCW9hX2J1ZmZlcl9j aGVja191bmxvY2tlZChzdHJlYW0pKTsKIH0KIAogLyoqCkBAIC0xMTczLDkgKzExNzYsNyBAQCBz dGF0aWMgdm9pZCBpOTE1X29hX3BvbGxfd2FpdChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3Ry ZWFtLAogCQkJICAgICAgc3RydWN0IGZpbGUgKmZpbGUsCiAJCQkgICAgICBwb2xsX3RhYmxlICp3 YWl0KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2 X3ByaXY7Ci0KLQlwb2xsX3dhaXQoZmlsZSwgJmRldl9wcml2LT5wZXJmLm9hLnBvbGxfd3EsIHdh aXQpOworCXBvbGxfd2FpdChmaWxlLCAmc3RyZWFtLT5wb2xsX3dxLCB3YWl0KTsKIH0KIAogLyoq CkBAIC0xMTk3LDEzICsxMTk4LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9yZWFkKHN0cnVjdCBp OTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAotCXJldHVybiBkZXZfcHJpdi0+cGVyZi5vYS5v cHMucmVhZChzdHJlYW0sIGJ1ZiwgY291bnQsIG9mZnNldCk7CisJcmV0dXJuIGRldl9wcml2LT5w ZXJmLm9wcy5yZWFkKHN0cmVhbSwgYnVmLCBjb3VudCwgb2Zmc2V0KTsKIH0KIAotc3RhdGljIHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpvYV9waW5fY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwKLQkJCQkJICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCitzdGF0aWMg c3RydWN0IGludGVsX2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0KHN0cnVjdCBpOTE1X3BlcmZfc3Ry ZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHN0cmVhbS0+ZGV2X3ByaXY7CisJc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCA9IHN0cmVhbS0+Y3R4OwogCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZTsKIAlpbnQgZXJyOwogCkBAIC0xMjIxLDcgKzEyMjMsNyBAQCBzdGF0aWMgc3RydWN0IGlu dGVsX2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAogCQkgKi8KIAkJZXJyID0gaW50ZWxfY29udGV4dF9waW4oY2UpOwogCQlpZiAoZXJyID09IDAp IHsKLQkJCWk5MTUtPnBlcmYub2EucGlubmVkX2N0eCA9IGNlOworCQkJc3RyZWFtLT5waW5uZWRf Y3R4ID0gY2U7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTEyMzEsNyArMTIzMyw3IEBAIHN0YXRp YyBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqb2FfcGluX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCiAJaWYgKGVycikKIAkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIAotCXJldHVy biBpOTE1LT5wZXJmLm9hLnBpbm5lZF9jdHg7CisJcmV0dXJuIHN0cmVhbS0+cGlubmVkX2N0eDsK IH0KIAogLyoqCkBAIC0xMjQ5LDcgKzEyNTEsNyBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJf Y3R4X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZTsKIAotCWNlID0gb2FfcGluX2NvbnRleHQoaTkxNSwgc3RyZWFtLT5jdHgpOworCWNlID0g b2FfcGluX2NvbnRleHQoc3RyZWFtKTsKIAlpZiAoSVNfRVJSKGNlKSkKIAkJcmV0dXJuIFBUUl9F UlIoY2UpOwogCkBAIC0xMjU5LDggKzEyNjEsOCBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJf Y3R4X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJCSAqIE9uIEhhc3dlbGwg d2UgZG9uJ3QgZG8gYW55IHBvc3QgcHJvY2Vzc2luZyBvZiB0aGUgcmVwb3J0cwogCQkgKiBhbmQg ZG9uJ3QgbmVlZCB0byB1c2UgdGhlIG1hc2suCiAJCSAqLwotCQlpOTE1LT5wZXJmLm9hLnNwZWNp ZmljX2N0eF9pZCA9IGk5MTVfZ2d0dF9vZmZzZXQoY2UtPnN0YXRlKTsKLQkJaTkxNS0+cGVyZi5v YS5zcGVjaWZpY19jdHhfaWRfbWFzayA9IDA7CisJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkID0g aTkxNV9nZ3R0X29mZnNldChjZS0+c3RhdGUpOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9t YXNrID0gMDsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMjc4LDMzICsxMjgwLDMzIEBAIHN0YXRpYyBp bnQgb2FfZ2V0X3JlbmRlcl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkK IAkJCSAqIGRyb3BwZWQgYnkgR3VDLiBUaGV5IHdvbid0IGJlIHBhcnQgb2YgdGhlIGNvbnRleHQK IAkJCSAqIElEIGluIHRoZSBPQSByZXBvcnRzLCBzbyBzcXVhc2ggdGhvc2UgbG93ZXIgYml0cy4K IAkJCSAqLwotCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQgPQorCQkJc3RyZWFtLT5z cGVjaWZpY19jdHhfaWQgPQogCQkJCWxvd2VyXzMyX2JpdHMoY2UtPmxyY19kZXNjKSA+PiAxMjsK IAogCQkJLyoKIAkJCSAqIEd1QyB1c2VzIHRoZSB0b3AgYml0IHRvIHNpZ25hbCBwcm94eSBzdWJt aXNzaW9uLCBzbwogCQkJICogaWdub3JlIHRoYXQgYml0LgogCQkJICovCi0JCQlpOTE1LT5wZXJm Lm9hLnNwZWNpZmljX2N0eF9pZF9tYXNrID0KKwkJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkX21h c2sgPQogCQkJCSgxVSA8PCAoR0VOOF9DVFhfSURfV0lEVEggLSAxKSkgLSAxOwogCQl9IGVsc2Ug ewotCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzayA9CisJCQlzdHJlYW0tPnNw ZWNpZmljX2N0eF9pZF9tYXNrID0KIAkJCQkoMVUgPDwgR0VOOF9DVFhfSURfV0lEVEgpIC0gMTsK LQkJCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID0KKwkJCXN0cmVhbS0+c3BlY2lmaWNf Y3R4X2lkID0KIAkJCQl1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Ci0JCQlpOTE1LT5wZXJm Lm9hLnNwZWNpZmljX2N0eF9pZCAmPQotCQkJCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lk X21hc2s7CisJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCAmPQorCQkJCXN0cmVhbS0+c3BlY2lm aWNfY3R4X2lkX21hc2s7CiAJCX0KIAkJYnJlYWs7CiAKIAljYXNlIDExOiB7Ci0JCWk5MTUtPnBl cmYub2Euc3BlY2lmaWNfY3R4X2lkX21hc2sgPQorCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9t YXNrID0KIAkJCSgoMVUgPDwgR0VOMTFfU1dfQ1RYX0lEX1dJRFRIKSAtIDEpIDw8IChHRU4xMV9T V19DVFhfSURfU0hJRlQgLSAzMikgfAogCQkJKCgxVSA8PCBHRU4xMV9FTkdJTkVfSU5TVEFOQ0Vf V0lEVEgpIC0gMSkgPDwgKEdFTjExX0VOR0lORV9JTlNUQU5DRV9TSElGVCAtIDMyKSB8CiAJCQko KDEgPDwgR0VOMTFfRU5HSU5FX0NMQVNTX1dJRFRIKSAtIDEpIDw8IChHRU4xMV9FTkdJTkVfQ0xB U1NfU0hJRlQgLSAzMik7Ci0JCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID0gdXBwZXJf MzJfYml0cyhjZS0+bHJjX2Rlc2MpOwotCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCAm PQotCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzazsKKwkJc3RyZWFtLT5zcGVj aWZpY19jdHhfaWQgPSB1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7CisJCXN0cmVhbS0+c3Bl Y2lmaWNfY3R4X2lkICY9CisJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrOwogCQlicmVh azsKIAl9CiAKQEAgLTEzMTMsOCArMTMxNSw4IEBAIHN0YXRpYyBpbnQgb2FfZ2V0X3JlbmRlcl9j dHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAl9CiAKIAlEUk1fREVCVUdf RFJJVkVSKCJmaWx0ZXJpbmcgb24gY3R4X2lkPTB4JXggY3R4X2lkX21hc2s9MHgleFxuIiwKLQkJ CSBpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCwKLQkJCSBpOTE1LT5wZXJmLm9hLnNwZWNp ZmljX2N0eF9pZF9tYXNrKTsKKwkJCSBzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCwKKwkJCSBzdHJl YW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTMzMSwxMCAr MTMzMywxMCBAQCBzdGF0aWMgdm9pZCBvYV9wdXRfcmVuZGVyX2N0eF9pZChzdHJ1Y3QgaTkxNV9w ZXJmX3N0cmVhbSAqc3RyZWFtKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHN0cmVhbS0+ZGV2X3ByaXY7CiAJc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwogCi0JZGV2X3By aXYtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID0gSU5WQUxJRF9DVFhfSUQ7Ci0JZGV2X3ByaXYt PnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkX21hc2sgPSAwOworCXN0cmVhbS0+c3BlY2lmaWNfY3R4 X2lkID0gSU5WQUxJRF9DVFhfSUQ7CisJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzayA9IDA7 CiAKLQljZSA9IGZldGNoX2FuZF96ZXJvKCZkZXZfcHJpdi0+cGVyZi5vYS5waW5uZWRfY3R4KTsK KwljZSA9IGZldGNoX2FuZF96ZXJvKCZzdHJlYW0tPnBpbm5lZF9jdHgpOwogCWlmIChjZSkgewog CQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJCWludGVsX2NvbnRl eHRfdW5waW4oY2UpOwpAQCAtMTM0MywzNCArMTM0NSwzNiBAQCBzdGF0aWMgdm9pZCBvYV9wdXRf cmVuZGVyX2N0eF9pZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogfQogCiBzdGF0 aWMgdm9pZAotZnJlZV9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitm cmVlX29hX2J1ZmZlcihzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogeworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwogCW11dGV4X2xv Y2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JaTkxNV92bWFfdW5waW5fYW5kX3JlbGVh c2UoJmk5MTUtPnBlcmYub2Eub2FfYnVmZmVyLnZtYSwKKwlpOTE1X3ZtYV91bnBpbl9hbmRfcmVs ZWFzZSgmc3RyZWFtLT5vYV9idWZmZXIudm1hLAogCQkJCSAgIEk5MTVfVk1BX1JFTEVBU0VfTUFQ KTsKIAogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQlpOTE1LT5w ZXJmLm9hLm9hX2J1ZmZlci52YWRkciA9IE5VTEw7CisJc3RyZWFtLT5vYV9idWZmZXIudmFkZHIg PSBOVUxMOwogfQogCiBzdGF0aWMgdm9pZCBpOTE1X29hX3N0cmVhbV9kZXN0cm95KHN0cnVjdCBp OTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAotCUJVR19PTihzdHJlYW0gIT0gZGV2X3ByaXYt PnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSk7CisJQlVHX09OKHN0cmVhbSAhPSBkZXZfcHJpdi0+ cGVyZi5leGNsdXNpdmVfc3RyZWFtKTsKIAogCS8qCiAJICogVW5zZXQgZXhjbHVzaXZlX3N0cmVh bSBmaXJzdCwgaXQgd2lsbCBiZSBjaGVja2VkIHdoaWxlIGRpc2FibGluZwogCSAqIHRoZSBtZXRy aWMgc2V0IG9uIGdlbjgrLgogCSAqLwogCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0 X211dGV4KTsKLQlkZXZfcHJpdi0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtID0gTlVMTDsKLQlk ZXZfcHJpdi0+cGVyZi5vYS5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0KGRldl9wcml2KTsKKwlkZXZf cHJpdi0+cGVyZi5leGNsdXNpdmVfc3RyZWFtID0gTlVMTDsKKwlkZXZfcHJpdi0+cGVyZi5vcHMu ZGlzYWJsZV9tZXRyaWNfc2V0KHN0cmVhbSk7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJt LnN0cnVjdF9tdXRleCk7CiAKLQlmcmVlX29hX2J1ZmZlcihkZXZfcHJpdik7CisJZnJlZV9vYV9i dWZmZXIoc3RyZWFtKTsKIAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KCZkZXZfcHJpdi0+ dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKIAlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYt PnJ1bnRpbWVfcG0sIHN0cmVhbS0+d2FrZXJlZik7CkBAIC0xMzgwLDQxICsxMzg0LDQyIEBAIHN0 YXRpYyB2b2lkIGk5MTVfb2Ffc3RyZWFtX2Rlc3Ryb3koc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSkKIAogCXB1dF9vYV9jb25maWcoZGV2X3ByaXYsIHN0cmVhbS0+b2FfY29uZmlnKTsK IAotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBvcnRfcnMubWlzc2VkKSB7CisJ aWYgKGRldl9wcml2LT5wZXJmLnNwdXJpb3VzX3JlcG9ydF9ycy5taXNzZWQpIHsKIAkJRFJNX05P VEUoIiVkIHNwdXJpb3VzIE9BIHJlcG9ydCBub3RpY2VzIHN1cHByZXNzZWQgZHVlIHRvIHJhdGVs aW1pdGluZ1xuIiwKLQkJCSBkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBvcnRfcnMubWlz c2VkKTsKKwkJCSBkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMubWlzc2VkKTsKIAl9 CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgZ2VuN19pbml0X29hX2J1ZmZlcihzdHJ1Y3Qg aTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogewotCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0 X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hKTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OworCXUzMiBndHRfb2Zmc2V0 ID0gaTkxNV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1ZmZlci52bWEpOwogCXVuc2lnbmVkIGxv bmcgZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVm ZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnN0cmVhbS0+b2FfYnVm ZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkvKiBQcmUtRGV2QkRXOiBPQUJVRkZFUiBtdXN0IGJl IHNldCB3aXRoIGNvdW50ZXJzIG9mZiwKIAkgKiBiZWZvcmUgT0FTVEFUVVMxLCBidXQgYWZ0ZXIg T0FTVEFUVVMyCiAJICovCiAJSTkxNV9XUklURShHRU43X09BU1RBVFVTMiwKIAkJICAgZ3R0X29m ZnNldCB8IEdFTjdfT0FTVEFUVVMyX01FTV9TRUxFQ1RfR0dUVCk7IC8qIGhlYWQgKi8KLQlkZXZf cHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVhZCA9IGd0dF9vZmZzZXQ7CisJc3RyZWFtLT5vYV9i dWZmZXIuaGVhZCA9IGd0dF9vZmZzZXQ7CiAKIAlJOTE1X1dSSVRFKEdFTjdfT0FCVUZGRVIsIGd0 dF9vZmZzZXQpOwogCiAJSTkxNV9XUklURShHRU43X09BU1RBVFVTMSwgZ3R0X29mZnNldCB8IE9B QlVGRkVSX1NJWkVfMTZNKTsgLyogdGFpbCAqLwogCiAJLyogTWFyayB0aGF0IHdlIG5lZWQgdXBk YXRlZCB0YWlsIHBvaW50ZXJzIHRvIHJlYWQgZnJvbS4uLiAqLwotCWRldl9wcml2LT5wZXJmLm9h Lm9hX2J1ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwotCWRldl9wcml2 LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1sxXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwor CXN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWzBdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7CisJ c3RyZWFtLT5vYV9idWZmZXIudGFpbHNbMV0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKIAot CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJf bG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVy LnB0cl9sb2NrLCBmbGFncyk7CiAKIAkvKiBPbiBIYXN3ZWxsIHdlIGhhdmUgdG8gdHJhY2sgd2hp Y2ggT0FTVEFUVVMxIGZsYWdzIHdlJ3ZlCiAJICogYWxyZWFkeSBzZWVuIHNpbmNlIHRoZXkgY2Fu J3QgYmUgY2xlYXJlZCB3aGlsZSBwZXJpb2RpYwogCSAqIHNhbXBsaW5nIGlzIGVuYWJsZWQuCiAJ ICovCi0JZGV2X3ByaXYtPnBlcmYub2EuZ2VuN19sYXRjaGVkX29hc3RhdHVzMSA9IDA7CisJZGV2 X3ByaXYtPnBlcmYuZ2VuN19sYXRjaGVkX29hc3RhdHVzMSA9IDA7CiAKIAkvKiBOQjogYWx0aG91 Z2ggdGhlIE9BIGJ1ZmZlciB3aWxsIGluaXRpYWxseSBiZSBhbGxvY2F0ZWQKIAkgKiB6ZXJvZWQg dmlhIHNobWZzIChhbmQgc28gdGhpcyBtZW1zZXQgaXMgcmVkdW5kYW50IHdoZW4KQEAgLTE0Mjcs MjQgKzE0MzIsMjUgQEAgc3RhdGljIHZvaWQgZ2VuN19pbml0X29hX2J1ZmZlcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogdGhlIGFzc3VtcHRpb24gdGhhdCBuZXcgcmVw b3J0cyBhcmUgYmVpbmcgd3JpdHRlbiB0byB6ZXJvZWQKIAkgKiBtZW1vcnkuLi4KIAkgKi8KLQlt ZW1zZXQoZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyLCAwLCBPQV9CVUZGRVJfU0la RSk7CisJbWVtc2V0KHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyLCAwLCBPQV9CVUZGRVJfU0laRSk7 CiAKIAkvKiBNYXliZSBtYWtlIC0+cG9sbGluIHBlci1zdHJlYW0gc3RhdGUgaWYgd2Ugc3VwcG9y dCBtdWx0aXBsZQogCSAqIGNvbmN1cnJlbnQgc3RyZWFtcyBpbiB0aGUgZnV0dXJlLgogCSAqLwot CWRldl9wcml2LT5wZXJmLm9hLnBvbGxpbiA9IGZhbHNlOworCXN0cmVhbS0+cG9sbGluID0gZmFs c2U7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjhfaW5pdF9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgZ2VuOF9pbml0X29hX2J1ZmZlcihzdHJ1 Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogewotCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9n Z3R0X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hKTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OworCXUzMiBndHRfb2Zm c2V0ID0gaTkxNV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1ZmZlci52bWEpOwogCXVuc2lnbmVk IGxvbmcgZmxhZ3M7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBlcmYub2Eub2Ff YnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnN0cmVhbS0+b2Ff YnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAlJOTE1X1dSSVRFKEdFTjhfT0FTVEFUVVMsIDAp OwogCUk5MTVfV1JJVEUoR0VOOF9PQUhFQURQVFIsIGd0dF9vZmZzZXQpOwotCWRldl9wcml2LT5w ZXJmLm9hLm9hX2J1ZmZlci5oZWFkID0gZ3R0X29mZnNldDsKKwlzdHJlYW0tPm9hX2J1ZmZlci5o ZWFkID0gZ3R0X29mZnNldDsKIAogCUk5MTVfV1JJVEUoR0VOOF9PQUJVRkZFUl9VRFcsIDApOwog CkBAIC0xNDYxLDE3ICsxNDY3LDE3IEBAIHN0YXRpYyB2b2lkIGdlbjhfaW5pdF9vYV9idWZmZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCUk5MTVfV1JJVEUoR0VOOF9PQVRB SUxQVFIsIGd0dF9vZmZzZXQgJiBHRU44X09BVEFJTFBUUl9NQVNLKTsKIAogCS8qIE1hcmsgdGhh dCB3ZSBuZWVkIHVwZGF0ZWQgdGFpbCBwb2ludGVycyB0byByZWFkIGZyb20uLi4gKi8KLQlkZXZf cHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbMF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BU UjsKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbMV0ub2Zmc2V0ID0gSU5WQUxJ RF9UQUlMX1BUUjsKKwlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElE X1RBSUxfUFRSOworCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWzFdLm9mZnNldCA9IElOVkFMSURf VEFJTF9QVFI7CiAKIAkvKgogCSAqIFJlc2V0IHN0YXRlIHVzZWQgdG8gcmVjb2duaXNlIGNvbnRl eHQgc3dpdGNoZXMsIGFmZmVjdGluZyB3aGljaAogCSAqIHJlcG9ydHMgd2Ugd2lsbCBmb3J3YXJk IHRvIHVzZXJzcGFjZSB3aGlsZSBmaWx0ZXJpbmcgZm9yIGEgc2luZ2xlCiAJICogY29udGV4dC4K IAkgKi8KLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIubGFzdF9jdHhfaWQgPSBJTlZBTElE X0NUWF9JRDsKKwlzdHJlYW0tPm9hX2J1ZmZlci5sYXN0X2N0eF9pZCA9IElOVkFMSURfQ1RYX0lE OwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVy LnB0cl9sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5vYV9i dWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKIAogCS8qCiAJICogTkI6IGFsdGhvdWdoIHRoZSBPQSBi dWZmZXIgd2lsbCBpbml0aWFsbHkgYmUgYWxsb2NhdGVkCkBAIC0xNDg1LDIyICsxNDkxLDIzIEBA IHN0YXRpYyB2b2lkIGdlbjhfaW5pdF9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCSAqIHRoZSBhc3N1bXB0aW9uIHRoYXQgbmV3IHJlcG9ydHMgYXJlIGJlaW5n IHdyaXR0ZW4gdG8gemVyb2VkCiAJICogbWVtb3J5Li4uCiAJICovCi0JbWVtc2V0KGRldl9wcml2 LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVSX1NJWkUpOworCW1lbXNldChz dHJlYW0tPm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVSX1NJWkUpOwogCiAJLyoKIAkgKiBN YXliZSBtYWtlIC0+cG9sbGluIHBlci1zdHJlYW0gc3RhdGUgaWYgd2Ugc3VwcG9ydCBtdWx0aXBs ZQogCSAqIGNvbmN1cnJlbnQgc3RyZWFtcyBpbiB0aGUgZnV0dXJlLgogCSAqLwotCWRldl9wcml2 LT5wZXJmLm9hLnBvbGxpbiA9IGZhbHNlOworCXN0cmVhbS0+cG9sbGluID0gZmFsc2U7CiB9CiAK LXN0YXRpYyBpbnQgYWxsb2Nfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKK3N0YXRpYyBpbnQgYWxsb2Nfb2FfYnVmZmVyKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFt ICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJvOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAJc3RydWN0IGk5 MTVfdm1hICp2bWE7CiAJaW50IHJldDsKIAotCWlmIChXQVJOX09OKGRldl9wcml2LT5wZXJmLm9h Lm9hX2J1ZmZlci52bWEpKQorCWlmIChXQVJOX09OKHN0cmVhbS0+b2FfYnVmZmVyLnZtYSkpCiAJ CXJldHVybiAtRU5PREVWOwogCiAJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUo JmRldl9wcml2LT5kcm0pOwpAQCAtMTUyNSwxOCArMTUzMiwxOCBAQCBzdGF0aWMgaW50IGFsbG9j X29hX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXJldCA9IFBU Ul9FUlIodm1hKTsKIAkJZ290byBlcnJfdW5yZWY7CiAJfQotCWRldl9wcml2LT5wZXJmLm9hLm9h X2J1ZmZlci52bWEgPSB2bWE7CisJc3RyZWFtLT5vYV9idWZmZXIudm1hID0gdm1hOwogCi0JZGV2 X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyID0KKwlzdHJlYW0tPm9hX2J1ZmZlci52YWRk ciA9CiAJCWk5MTVfZ2VtX29iamVjdF9waW5fbWFwKGJvLCBJOTE1X01BUF9XQik7Ci0JaWYgKElT X0VSUihkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIpKSB7Ci0JCXJldCA9IFBUUl9F UlIoZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyKTsKKwlpZiAoSVNfRVJSKHN0cmVh bS0+b2FfYnVmZmVyLnZhZGRyKSkgeworCQlyZXQgPSBQVFJfRVJSKHN0cmVhbS0+b2FfYnVmZmVy LnZhZGRyKTsKIAkJZ290byBlcnJfdW5waW47CiAJfQogCiAJRFJNX0RFQlVHX0RSSVZFUigiT0Eg QnVmZmVyIGluaXRpYWxpemVkLCBndHQgb2Zmc2V0ID0gMHgleCwgdmFkZHIgPSAlcFxuIiwKLQkJ CSBpOTE1X2dndHRfb2Zmc2V0KGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52bWEpLAotCQkJ IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkcik7CisJCQkgaTkxNV9nZ3R0X29mZnNl dChzdHJlYW0tPm9hX2J1ZmZlci52bWEpLAorCQkJIHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyKTsK IAogCWdvdG8gdW5sb2NrOwogCkBAIC0xNTQ2LDggKzE1NTMsOCBAQCBzdGF0aWMgaW50IGFsbG9j X29hX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBlcnJfdW5yZWY6 CiAJaTkxNV9nZW1fb2JqZWN0X3B1dChibyk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZm ZXIudmFkZHIgPSBOVUxMOwotCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52bWEgPSBOVUxM OworCXN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyID0gTlVMTDsKKwlzdHJlYW0tPm9hX2J1ZmZlci52 bWEgPSBOVUxMOwogCiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVj dF9tdXRleCk7CkBAIC0xNjIzLDggKzE2MzAsMTAgQEAgc3RhdGljIGludCBoc3dfZW5hYmxlX21l dHJpY19zZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBoc3dfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVj dCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwogCUk5MTVfV1JJVEUoR0VONl9VQ0dDVEwx LCAoSTkxNV9SRUFEKEdFTjZfVUNHQ1RMMSkgJgogCQkJCSAgfkdFTjZfQ1NVTklUX0NMT0NLX0dB VEVfRElTQUJMRSkpOwogCUk5MTVfV1JJVEUoR0VON19NSVNDQ1BDVEwsIChJOTE1X1JFQUQoR0VO N19NSVNDQ1BDVEwpIHwKQEAgLTE2NjMsMTMgKzE2NzIsMTQgQEAgc3RhdGljIHUzMiBvYV9jb25m aWdfZmxleF9yZWcoY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcsCiAgKiBp biB0aGUgY2FzZSB0aGF0IHRoZSBPQSB1bml0IGhhcyBiZWVuIGRpc2FibGVkLgogICovCiBzdGF0 aWMgdm9pZAotZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSwKK2dlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtLAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkJ CSAgICAgICB1MzIgKnJlZ19zdGF0ZSwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9j b25maWcgKm9hX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGNl LT5lbmdpbmUtPmk5MTU7Ci0JdTMyIGN0eF9vYWN0eGN0cmwgPSBpOTE1LT5wZXJmLm9hLmN0eF9v YWN0eGN0cmxfb2Zmc2V0OwotCXUzMiBjdHhfZmxleGV1MCA9IGk5MTUtPnBlcmYub2EuY3R4X2Zs ZXhldTBfb2Zmc2V0OworCXUzMiBjdHhfb2FjdHhjdHJsID0gaTkxNS0+cGVyZi5jdHhfb2FjdHhj dHJsX29mZnNldDsKKwl1MzIgY3R4X2ZsZXhldTAgPSBpOTE1LT5wZXJmLmN0eF9mbGV4ZXUwX29m ZnNldDsKIAkvKiBUaGUgTU1JTyBvZmZzZXRzIGZvciBGbGV4IEVVIHJlZ2lzdGVycyBhcmVuJ3Qg Y29udGlndW91cyAqLwogCWk5MTVfcmVnX3QgZmxleF9yZWdzW10gPSB7CiAJCUVVX1BFUkZfQ05U TDAsCkBAIC0xNjgzLDggKzE2OTMsOCBAQCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQo c3RydWN0IGludGVsX2NvbnRleHQgKmNlLAogCWludCBpOwogCiAJQ1RYX1JFRyhyZWdfc3RhdGUs IGN0eF9vYWN0eGN0cmwsIEdFTjhfT0FDVFhDT05UUk9MLAotCQkoaTkxNS0+cGVyZi5vYS5wZXJp b2RfZXhwb25lbnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKLQkJKGk5MTUtPnBl cmYub2EucGVyaW9kaWMgPyBHRU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKKwkJKHN0cmVhbS0+ cGVyaW9kX2V4cG9uZW50IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8CisJCShzdHJl YW0tPnBlcmlvZGljID8gR0VOOF9PQV9USU1FUl9FTkFCTEUgOiAwKSB8CiAJCUdFTjhfT0FfQ09V TlRFUl9SRVNVTUUpOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmxleF9yZWdzKTsg aSsrKSB7CkBAIC0xODQ2LDExICsxODU2LDEyIEBAIHN0YXRpYyBpbnQgZ2VuOF9jb25maWd1cmVf Y29udGV4dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAogICoKICAqIE5vdGU6IGl0J3Mg b25seSB0aGUgUkNTL1JlbmRlciBjb250ZXh0IHRoYXQgaGFzIGFueSBPQSBzdGF0ZS4KICAqLwot c3RhdGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCitzdGF0aWMgaW50IGdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1 Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTkx NV9vYV9jb25maWcgKm9hX2NvbmZpZykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAJLyogVGhlIE1NSU8gb2Zmc2V0cyBmb3IgRmxleCBFVSBy ZWdpc3RlcnMgYXJlbid0IGNvbnRpZ3VvdXMgKi8KLQljb25zdCB1MzIgY3R4X2ZsZXhldTAgPSBp OTE1LT5wZXJmLm9hLmN0eF9mbGV4ZXUwX29mZnNldDsKKwljb25zdCB1MzIgY3R4X2ZsZXhldTAg PSBpOTE1LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldDsKICNkZWZpbmUgY3R4X2ZsZXhldU4oTikg KGN0eF9mbGV4ZXUwICsgMiAqIChOKSkKIAlzdHJ1Y3QgZmxleCByZWdzW10gPSB7CiAJCXsKQEAg LTE4NTksOSArMTg3MCw5IEBAIHN0YXRpYyBpbnQgZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQl9LAogCQl7CiAJCQlHRU44X09BQ1RY Q09OVFJPTCwKLQkJCWk5MTUtPnBlcmYub2EuY3R4X29hY3R4Y3RybF9vZmZzZXQsCi0JCQkoKGk5 MTUtPnBlcmYub2EucGVyaW9kX2V4cG9uZW50IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZU KSB8Ci0JCQkgKGk5MTUtPnBlcmYub2EucGVyaW9kaWMgPyBHRU44X09BX1RJTUVSX0VOQUJMRSA6 IDApIHwKKwkJCWk5MTUtPnBlcmYuY3R4X29hY3R4Y3RybF9vZmZzZXQsCisJCQkoKHN0cmVhbS0+ cGVyaW9kX2V4cG9uZW50IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8CisJCQkgKHN0 cmVhbS0+cGVyaW9kaWMgPyBHRU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKIAkJCSBHRU44X09B X0NPVU5URVJfUkVTVU1FKQogCQl9LAogCQl7IEVVX1BFUkZfQ05UTDAsIGN0eF9mbGV4ZXVOKDAp IH0sCkBAIC0xOTcxLDcgKzE5ODIsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX21ldHJpY19z ZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkgKiB0byBtYWtlIHN1cmUgYWxs IHNsaWNlcy9zdWJzbGljZXMgYXJlIE9OIGJlZm9yZSB3cml0aW5nIHRvIE5PQQogCSAqIHJlZ2lz dGVycy4KIAkgKi8KLQlyZXQgPSBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoZGV2X3ByaXYs IG9hX2NvbmZpZyk7CisJcmV0ID0gZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKHN0cmVhbSwg b2FfY29uZmlnKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0xOTg0LDE5ICsxOTk1 LDIzIEBAIHN0YXRpYyBpbnQgZ2VuOF9lbmFibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBnZW44X2Rpc2Fi bGVfbWV0cmljX3NldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMg dm9pZCBnZW44X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3Ry ZWFtKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2 X3ByaXY7CisKIAkvKiBSZXNldCBhbGwgY29udGV4dHMnIHNsaWNlcy9zdWJzbGljZXMgY29uZmln dXJhdGlvbnMuICovCi0JZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKGRldl9wcml2LCBOVUxM KTsKKwlnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RyZWFtLCBOVUxMKTsKIAogCUk5MTVf V1JJVEUoR0RUX0NISUNLRU5fQklUUywgKEk5MTVfUkVBRChHRFRfQ0hJQ0tFTl9CSVRTKSAmCiAJ CQkJICAgICAgfkdUX05PQV9FTkFCTEUpKTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuMTBfZGlzYWJs ZV9tZXRyaWNfc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2 b2lkIGdlbjEwX2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3Ry ZWFtKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2 X3ByaXY7CisKIAkvKiBSZXNldCBhbGwgY29udGV4dHMnIHNsaWNlcy9zdWJzbGljZXMgY29uZmln dXJhdGlvbnMuICovCi0JZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKGRldl9wcml2LCBOVUxM KTsKKwlnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RyZWFtLCBOVUxMKTsKIAogCS8qIE1h a2Ugc3VyZSB3ZSBkaXNhYmxlIG5vYSB0byBzYXZlIHBvd2VyLiAqLwogCUk5MTVfV1JJVEUoUlBN X0NPTkZJRzEsCkBAIC0yMDA3LDEwICsyMDIyLDEwIEBAIHN0YXRpYyB2b2lkIGdlbjdfb2FfZW5h YmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAlzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4ID0gc3RyZWFtLT5jdHg7Ci0JdTMyIGN0eF9pZCA9IGRldl9wcml2LT5wZXJm Lm9hLnNwZWNpZmljX2N0eF9pZDsKLQlib29sIHBlcmlvZGljID0gZGV2X3ByaXYtPnBlcmYub2Eu cGVyaW9kaWM7Ci0JdTMyIHBlcmlvZF9leHBvbmVudCA9IGRldl9wcml2LT5wZXJmLm9hLnBlcmlv ZF9leHBvbmVudDsKLQl1MzIgcmVwb3J0X2Zvcm1hdCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1 ZmZlci5mb3JtYXQ7CisJdTMyIGN0eF9pZCA9IHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkOworCWJv b2wgcGVyaW9kaWMgPSBzdHJlYW0tPnBlcmlvZGljOworCXUzMiBwZXJpb2RfZXhwb25lbnQgPSBz dHJlYW0tPnBlcmlvZF9leHBvbmVudDsKKwl1MzIgcmVwb3J0X2Zvcm1hdCA9IHN0cmVhbS0+b2Ff YnVmZmVyLmZvcm1hdDsKIAogCS8qCiAJICogUmVzZXQgYnVmIHBvaW50ZXJzIHNvIHdlIGRvbid0 IGZvcndhcmQgcmVwb3J0cyBmcm9tIGJlZm9yZSBub3cuCkBAIC0yMDIxLDcgKzIwMzYsNyBAQCBz dGF0aWMgdm9pZCBnZW43X29hX2VuYWJsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFt KQogCSAqIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgY2VydGFpbiBmaWVsZHMgYXJlIHdyaXR0ZW4g dG8gemVyb2VkCiAJICogbWVtb3J5IHdoaWNoIHRoaXMgaGVscHMgbWFpbnRhaW5zLgogCSAqLwot CWdlbjdfaW5pdF9vYV9idWZmZXIoZGV2X3ByaXYpOworCWdlbjdfaW5pdF9vYV9idWZmZXIoc3Ry ZWFtKTsKIAogCUk5MTVfV1JJVEUoR0VON19PQUNPTlRST0wsCiAJCSAgIChjdHhfaWQgJiBHRU43 X09BQ09OVFJPTF9DVFhfTUFTSykgfApAQCAtMjAzNiw3ICsyMDUxLDcgQEAgc3RhdGljIHZvaWQg Z2VuN19vYV9lbmFibGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHN0YXRpYyB2 b2lkIGdlbjhfb2FfZW5hYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKLQl1 MzIgcmVwb3J0X2Zvcm1hdCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXQ7CisJ dTMyIHJlcG9ydF9mb3JtYXQgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXQ7CiAKIAkvKgogCSAq IFJlc2V0IGJ1ZiBwb2ludGVycyBzbyB3ZSBkb24ndCBmb3J3YXJkIHJlcG9ydHMgZnJvbSBiZWZv cmUgbm93LgpAQCAtMjA0Nyw3ICsyMDYyLDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9vYV9lbmFibGUo c3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkgKiBvbiB0aGUgYXNzdW1wdGlvbiB0 aGF0IGNlcnRhaW4gZmllbGRzIGFyZSB3cml0dGVuIHRvIHplcm9lZAogCSAqIG1lbW9yeSB3aGlj aCB0aGlzIGhlbHBzIG1haW50YWlucy4KIAkgKi8KLQlnZW44X2luaXRfb2FfYnVmZmVyKGRldl9w cml2KTsKKwlnZW44X2luaXRfb2FfYnVmZmVyKHN0cmVhbSk7CiAKIAkvKgogCSAqIE5vdGU6IHdl IGRvbid0IHJlbHkgb24gdGhlIGhhcmR3YXJlIHRvIHBlcmZvcm0gc2luZ2xlIGNvbnRleHQKQEAg LTIwNzIsMTAgKzIwODcsMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9zdHJlYW1fZW5hYmxlKHN0 cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAotCWRldl9wcml2LT5wZXJmLm9hLm9w cy5vYV9lbmFibGUoc3RyZWFtKTsKKwlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZW5hYmxlKHN0cmVh bSk7CiAKLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMpCi0JCWhydGltZXJfc3RhcnQo JmRldl9wcml2LT5wZXJmLm9hLnBvbGxfY2hlY2tfdGltZXIsCisJaWYgKHN0cmVhbS0+cGVyaW9k aWMpCisJCWhydGltZXJfc3RhcnQoJnN0cmVhbS0+cG9sbF9jaGVja190aW1lciwKIAkJCSAgICAg IG5zX3RvX2t0aW1lKFBPTExfUEVSSU9EKSwKIAkJCSAgICAgIEhSVElNRVJfTU9ERV9SRUxfUElO TkVEKTsKIH0KQEAgLTIxMTQsMTAgKzIxMjksMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9zdHJl YW1fZGlzYWJsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAKLQlkZXZfcHJp di0+cGVyZi5vYS5vcHMub2FfZGlzYWJsZShzdHJlYW0pOworCWRldl9wcml2LT5wZXJmLm9wcy5v YV9kaXNhYmxlKHN0cmVhbSk7CiAKLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMpCi0J CWhydGltZXJfY2FuY2VsKCZkZXZfcHJpdi0+cGVyZi5vYS5wb2xsX2NoZWNrX3RpbWVyKTsKKwlp ZiAoc3RyZWFtLT5wZXJpb2RpYykKKwkJaHJ0aW1lcl9jYW5jZWwoJnN0cmVhbS0+cG9sbF9jaGVj a190aW1lcik7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbV9vcHMg aTkxNV9vYV9zdHJlYW1fb3BzID0gewpAQCAtMjE2OSw3ICsyMTg0LDcgQEAgc3RhdGljIGludCBp OTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIAotCWlmICghZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9t ZXRyaWNfc2V0KSB7CisJaWYgKCFkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQp IHsKIAkJRFJNX0RFQlVHKCJPQSB1bml0IG5vdCBzdXBwb3J0ZWRcbiIpOwogCQlyZXR1cm4gLUVO T0RFVjsKIAl9CkBAIC0yMTc4LDcgKzIxOTMsNyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFt X2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkgKiBjb3VudGVyIHJlcG9y dHMgYW5kIG1hcnNoYWwgdG8gdGhlIGFwcHJvcHJpYXRlIGNsaWVudAogCSAqIHdlIGN1cnJlbnRs eSBvbmx5IGFsbG93IGV4Y2x1c2l2ZSBhY2Nlc3MKIAkgKi8KLQlpZiAoZGV2X3ByaXYtPnBlcmYu b2EuZXhjbHVzaXZlX3N0cmVhbSkgeworCWlmIChkZXZfcHJpdi0+cGVyZi5leGNsdXNpdmVfc3Ry ZWFtKSB7CiAJCURSTV9ERUJVRygiT0EgdW5pdCBhbHJlYWR5IGluIHVzZVxuIik7CiAJCXJldHVy biAtRUJVU1k7CiAJfQpAQCAtMjE4OCw0MyArMjIwMywyMyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ff c3RyZWFtX2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCi0JLyogV2Ugc2V0IHVwIHNvbWUgcmF0ZWxpbWl0IHN0YXRlIHRvIHBvdGVu dGlhbGx5IHRocm90dGxlIGFueSBfTk9URVMKLQkgKiBhYm91dCBzcHVyaW91cywgaW52YWxpZCBP QSByZXBvcnRzIHdoaWNoIHdlIGRvbid0IGZvcndhcmQgdG8KLQkgKiB1c2Vyc3BhY2UuCi0JICoK LQkgKiBUaGUgaW5pdGlhbGl6YXRpb24gaXMgYXNzb2NpYXRlZCB3aXRoIG9wZW5pbmcgdGhlIHN0 cmVhbSAobm90IGRyaXZlcgotCSAqIGluaXQpIGNvbnNpZGVyaW5nIHdlIHByaW50IGEgX05PVEUg YWJvdXQgYW55IHRocm90dGxpbmcgd2hlbiBjbG9zaW5nCi0JICogdGhlIHN0cmVhbSBpbnN0ZWFk IG9mIHdhaXRpbmcgdW50aWwgZHJpdmVyIF9maW5pIHdoaWNoIG5vIG9uZSB3b3VsZAotCSAqIGV2 ZXIgc2VlLgotCSAqCi0JICogVXNpbmcgdGhlIHNhbWUgbGltaXRpbmcgZmFjdG9ycyBhcyBwcmlu dGtfcmF0ZWxpbWl0KCkKLQkgKi8KLQlyYXRlbGltaXRfc3RhdGVfaW5pdCgmZGV2X3ByaXYtPnBl cmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzLAotCQkJICAgICA1ICogSFosIDEwKTsKLQkvKiBTaW5j ZSB3ZSB1c2UgYSBEUk1fTk9URSBmb3Igc3B1cmlvdXMgcmVwb3J0cyBpdCB3b3VsZCBiZQotCSAq IGluY29uc2lzdGVudCB0byBsZXQgX19yYXRlbGltaXQoKSBhdXRvbWF0aWNhbGx5IHByaW50IGEg d2FybmluZyBmb3IKLQkgKiB0aHJvdHRsaW5nLgotCSAqLwotCXJhdGVsaW1pdF9zZXRfZmxhZ3Mo JmRldl9wcml2LT5wZXJmLm9hLnNwdXJpb3VzX3JlcG9ydF9ycywKLQkJCSAgICBSQVRFTElNSVRf TVNHX09OX1JFTEVBU0UpOwotCiAJc3RyZWFtLT5zYW1wbGVfc2l6ZSA9IHNpemVvZihzdHJ1Y3Qg ZHJtX2k5MTVfcGVyZl9yZWNvcmRfaGVhZGVyKTsKIAotCWZvcm1hdF9zaXplID0gZGV2X3ByaXYt PnBlcmYub2Eub2FfZm9ybWF0c1twcm9wcy0+b2FfZm9ybWF0XS5zaXplOworCWZvcm1hdF9zaXpl ID0gZGV2X3ByaXYtPnBlcmYub2FfZm9ybWF0c1twcm9wcy0+b2FfZm9ybWF0XS5zaXplOwogCiAJ c3RyZWFtLT5zYW1wbGVfZmxhZ3MgfD0gU0FNUExFX09BX1JFUE9SVDsKIAlzdHJlYW0tPnNhbXBs ZV9zaXplICs9IGZvcm1hdF9zaXplOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZv cm1hdF9zaXplID0gZm9ybWF0X3NpemU7Ci0JaWYgKFdBUk5fT04oZGV2X3ByaXYtPnBlcmYub2Eu b2FfYnVmZmVyLmZvcm1hdF9zaXplID09IDApKQorCXN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9z aXplID0gZm9ybWF0X3NpemU7CisJaWYgKFdBUk5fT04oc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0 X3NpemUgPT0gMCkpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub2Ff YnVmZmVyLmZvcm1hdCA9Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9hX2Zvcm1hdHNbcHJvcHMtPm9h X2Zvcm1hdF0uZm9ybWF0OworCXN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdCA9CisJCWRldl9wcml2 LT5wZXJmLm9hX2Zvcm1hdHNbcHJvcHMtPm9hX2Zvcm1hdF0uZm9ybWF0OwogCi0JZGV2X3ByaXYt PnBlcmYub2EucGVyaW9kaWMgPSBwcm9wcy0+b2FfcGVyaW9kaWM7Ci0JaWYgKGRldl9wcml2LT5w ZXJmLm9hLnBlcmlvZGljKQotCQlkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RfZXhwb25lbnQgPSBw cm9wcy0+b2FfcGVyaW9kX2V4cG9uZW50OworCXN0cmVhbS0+cGVyaW9kaWMgPSBwcm9wcy0+b2Ff cGVyaW9kaWM7CisJaWYgKHN0cmVhbS0+cGVyaW9kaWMpCisJCXN0cmVhbS0+cGVyaW9kX2V4cG9u ZW50ID0gcHJvcHMtPm9hX3BlcmlvZF9leHBvbmVudDsKIAogCWlmIChzdHJlYW0tPmN0eCkgewog CQlyZXQgPSBvYV9nZXRfcmVuZGVyX2N0eF9pZChzdHJlYW0pOwpAQCAtMjI1NSw3ICsyMjUwLDcg QEAgc3RhdGljIGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFt ICpzdHJlYW0sCiAJc3RyZWFtLT53YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmRldl9w cml2LT5ydW50aW1lX3BtKTsKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgmZGV2X3ByaXYt PnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAKLQlyZXQgPSBhbGxvY19vYV9idWZmZXIoZGV2X3By aXYpOworCXJldCA9IGFsbG9jX29hX2J1ZmZlcihzdHJlYW0pOwogCWlmIChyZXQpCiAJCWdvdG8g ZXJyX29hX2J1Zl9hbGxvYzsKIApAQCAtMjI2NCw5ICsyMjU5LDkgQEAgc3RhdGljIGludCBpOTE1 X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCWdvdG8g ZXJyX2xvY2s7CiAKIAlzdHJlYW0tPm9wcyA9ICZpOTE1X29hX3N0cmVhbV9vcHM7Ci0JZGV2X3By aXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSA9IHN0cmVhbTsKKwlkZXZfcHJpdi0+cGVyZi5l eGNsdXNpdmVfc3RyZWFtID0gc3RyZWFtOwogCi0JcmV0ID0gZGV2X3ByaXYtPnBlcmYub2Eub3Bz LmVuYWJsZV9tZXRyaWNfc2V0KHN0cmVhbSk7CisJcmV0ID0gZGV2X3ByaXYtPnBlcmYub3BzLmVu YWJsZV9tZXRyaWNfc2V0KHN0cmVhbSk7CiAJaWYgKHJldCkgewogCQlEUk1fREVCVUcoIlVuYWJs ZSB0byBlbmFibGUgbWV0cmljIHNldFxuIik7CiAJCWdvdG8gZXJyX2VuYWJsZTsKQEAgLTIyNzQs MTUgKzIyNjksMjEgQEAgc3RhdGljIGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3Ry dWN0X211dGV4KTsKIAorCWhydGltZXJfaW5pdCgmc3RyZWFtLT5wb2xsX2NoZWNrX3RpbWVyLAor CQkgICAgIENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX1JFTCk7CisJc3RyZWFtLT5wb2xs X2NoZWNrX3RpbWVyLmZ1bmN0aW9uID0gb2FfcG9sbF9jaGVja190aW1lcl9jYjsKKwlpbml0X3dh aXRxdWV1ZV9oZWFkKCZzdHJlYW0tPnBvbGxfd3EpOworCXNwaW5fbG9ja19pbml0KCZzdHJlYW0t Pm9hX2J1ZmZlci5wdHJfbG9jayk7CisKIAlyZXR1cm4gMDsKIAogZXJyX2VuYWJsZToKLQlkZXZf cHJpdi0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtID0gTlVMTDsKLQlkZXZfcHJpdi0+cGVyZi5v YS5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0KGRldl9wcml2KTsKKwlkZXZfcHJpdi0+cGVyZi5leGNs dXNpdmVfc3RyZWFtID0gTlVMTDsKKwlkZXZfcHJpdi0+cGVyZi5vcHMuZGlzYWJsZV9tZXRyaWNf c2V0KHN0cmVhbSk7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7 CiAKIGVycl9sb2NrOgotCWZyZWVfb2FfYnVmZmVyKGRldl9wcml2KTsKKwlmcmVlX29hX2J1ZmZl cihzdHJlYW0pOwogCiBlcnJfb2FfYnVmX2FsbG9jOgogCXB1dF9vYV9jb25maWcoZGV2X3ByaXYs IHN0cmVhbS0+b2FfY29uZmlnKTsKQEAgLTIzMDYsOSArMjMwNyw5IEBAIHZvaWQgaTkxNV9vYV9p bml0X3JlZ19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJaWYgKGVuZ2lu ZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNTKQogCQlyZXR1cm47CiAKLQlzdHJlYW0gPSBlbmdpbmUt Pmk5MTUtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbTsKKwlzdHJlYW0gPSBlbmdpbmUtPmk5MTUt PnBlcmYuZXhjbHVzaXZlX3N0cmVhbTsKIAlpZiAoc3RyZWFtKQotCQlnZW44X3VwZGF0ZV9yZWdf c3RhdGVfdW5sb2NrZWQoY2UsIHJlZ3MsIHN0cmVhbS0+b2FfY29uZmlnKTsKKwkJZ2VuOF91cGRh dGVfcmVnX3N0YXRlX3VubG9ja2VkKHN0cmVhbSwgY2UsIHJlZ3MsIHN0cmVhbS0+b2FfY29uZmln KTsKIH0KIAogLyoqCkBAIC0yNDI0LDcgKzI0MjUsNyBAQCBzdGF0aWMgc3NpemVfdCBpOTE1X3Bl cmZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJLyogTWF5YmUgbWFrZSAtPnBvbGxpbiBwZXIt c3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUKIAkJICogY29uY3VycmVudCBzdHJl YW1zIGluIHRoZSBmdXR1cmUuCiAJCSAqLwotCQlkZXZfcHJpdi0+cGVyZi5vYS5wb2xsaW4gPSBm YWxzZTsKKwkJc3RyZWFtLT5wb2xsaW4gPSBmYWxzZTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAt MjQzMiwxMyArMjQzMywxMyBAQCBzdGF0aWMgc3NpemVfdCBpOTE1X3BlcmZfcmVhZChzdHJ1Y3Qg ZmlsZSAqZmlsZSwKIAogc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IG9hX3BvbGxfY2hlY2tf dGltZXJfY2Ioc3RydWN0IGhydGltZXIgKmhydGltZXIpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0KLQkJY29udGFpbmVyX29mKGhydGltZXIsIHR5cGVvZigqZGV2X3By aXYpLAotCQkJICAgICBwZXJmLm9hLnBvbGxfY2hlY2tfdGltZXIpOworCXN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0gPQorCQljb250YWluZXJfb2YoaHJ0aW1lciwgdHlwZW9mKCpzdHJl YW0pLAorCQkgICAgICAgICAgICAgcG9sbF9jaGVja190aW1lcik7CiAKLQlpZiAob2FfYnVmZmVy X2NoZWNrX3VubG9ja2VkKGRldl9wcml2KSkgewotCQlkZXZfcHJpdi0+cGVyZi5vYS5wb2xsaW4g PSB0cnVlOwotCQl3YWtlX3VwKCZkZXZfcHJpdi0+cGVyZi5vYS5wb2xsX3dxKTsKKwlpZiAob2Ff YnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0cmVhbSkpIHsKKwkJc3RyZWFtLT5wb2xsaW4gPSB0cnVl OworCQl3YWtlX3VwKCZzdHJlYW0tPnBvbGxfd3EpOwogCX0KIAogCWhydGltZXJfZm9yd2FyZF9u b3coaHJ0aW1lciwgbnNfdG9fa3RpbWUoUE9MTF9QRVJJT0QpKTsKQEAgLTI0NzcsNyArMjQ3OCw3 IEBAIHN0YXRpYyBfX3BvbGxfdCBpOTE1X3BlcmZfcG9sbF9sb2NrZWQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIHRoZSBocnRpbWVyL29hX3BvbGxfY2hlY2tfdGltZXJf Y2IgdG8gbm90aWZ5IHVzIHdoZW4gdGhlcmUgYXJlCiAJICogc2FtcGxlcyB0byByZWFkLgogCSAq LwotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5wb2xsaW4pCisJaWYgKHN0cmVhbS0+cG9sbGluKQog CQlldmVudHMgfD0gRVBPTExJTjsKIAogCXJldHVybiBldmVudHM7CkBAIC0yOTAzLDcgKzI5MDQs NyBAQCBzdGF0aWMgaW50IHJlYWRfcHJvcGVydGllc191bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCSAgdmFsdWUpOwogCQkJCXJldHVybiAtRUlOVkFMOwog CQkJfQotCQkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5vYV9mb3JtYXRzW3ZhbHVlXS5zaXplKSB7 CisJCQlpZiAoIWRldl9wcml2LT5wZXJmLm9hX2Zvcm1hdHNbdmFsdWVdLnNpemUpIHsKIAkJCQlE Uk1fREVCVUcoIlVuc3VwcG9ydGVkIE9BIHJlcG9ydCBmb3JtYXQgJWxsdVxuIiwKIAkJCQkJICB2 YWx1ZSk7CiAJCQkJcmV0dXJuIC1FSU5WQUw7CkBAIC0zMDQ3LDcgKzMwNDgsNyBAQCB2b2lkIGk5 MTVfcGVyZl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYg KCFkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmopCiAJCWdvdG8gZXhpdDsKIAotCXN5c2ZzX2F0 dHJfaW5pdCgmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0 dHIpOworCXN5c2ZzX2F0dHJfaW5pdCgmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLmF0dHIpOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKIAkJ aTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaWNsKGRldl9wcml2KTsKQEAgLTMwODIsMTUgKzMw ODMsMTUgQEAgdm9pZCBpOTE1X3BlcmZfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19oc3coZGV2X3ByaXYpOwog fQogCi0JaWYgKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID09IDApCisJaWYgKGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID09IDApCiAJCWdvdG8gc3lzZnNfZXJyb3I7CiAK IAlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLAot CQkJCSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljKTsKKwkJCQkg JmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYyk7CiAJaWYgKHJldCkKIAkJ Z290byBzeXNmc19lcnJvcjsKIAotCWF0b21pY19zZXQoJmRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnJlZl9jb3VudCwgMSk7CisJYXRvbWljX3NldCgmZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcucmVmX2NvdW50LCAxKTsKIAogCWdvdG8gZXhpdDsKIApAQCAtMzExNyw3ICszMTE4LDcg QEAgdm9pZCBpOTE1X3BlcmZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJCXJldHVybjsKIAogCXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5t ZXRyaWNzX2tvYmosCi0JCQkgICAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNf bWV0cmljKTsKKwkJCSAgICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMp OwogCiAJa29iamVjdF9wdXQoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqKTsKIAlkZXZfcHJp di0+cGVyZi5tZXRyaWNzX2tvYmogPSBOVUxMOwpAQCAtMzM2Miw3ICszMzYzLDcgQEAgaW50IGk5 MTVfcGVyZl9hZGRfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJb2FfY29uZmlnLT5tdXhfcmVnc19sZW4gPSBhcmdzLT5uX211eF9yZWdzOwogCW9hX2Nv bmZpZy0+bXV4X3JlZ3MgPQogCQlhbGxvY19vYV9yZWdzKGRldl9wcml2LAotCQkJICAgICAgZGV2 X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX211eF9yZWcsCisJCQkgICAgICBkZXZfcHJpdi0+ cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZywKIAkJCSAgICAgIHU2NF90b191c2VyX3B0cihhcmdz LT5tdXhfcmVnc19wdHIpLAogCQkJICAgICAgYXJncy0+bl9tdXhfcmVncyk7CiAKQEAgLTMzNzUs NyArMzM3Niw3IEBAIGludCBpOTE1X3BlcmZfYWRkX2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCW9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3NfbGVuID0g YXJncy0+bl9ib29sZWFuX3JlZ3M7CiAJb2FfY29uZmlnLT5iX2NvdW50ZXJfcmVncyA9CiAJCWFs bG9jX29hX3JlZ3MoZGV2X3ByaXYsCi0JCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNf dmFsaWRfYl9jb3VudGVyX3JlZywKKwkJCSAgICAgIGRldl9wcml2LT5wZXJmLm9wcy5pc192YWxp ZF9iX2NvdW50ZXJfcmVnLAogCQkJICAgICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmJvb2xlYW5f cmVnc19wdHIpLAogCQkJICAgICAgYXJncy0+bl9ib29sZWFuX3JlZ3MpOwogCkBAIC0zMzk0LDcg KzMzOTUsNyBAQCBpbnQgaTkxNV9wZXJmX2FkZF9jb25maWdfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJb2FfY29uZmlnLT5mbGV4X3JlZ3NfbGVuID0gYXJncy0+ bl9mbGV4X3JlZ3M7CiAJCW9hX2NvbmZpZy0+ZmxleF9yZWdzID0KIAkJCWFsbG9jX29hX3JlZ3Mo ZGV2X3ByaXYsCi0JCQkJICAgICAgZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2ZsZXhf cmVnLAorCQkJCSAgICAgIGRldl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9mbGV4X3JlZywKIAkJ CQkgICAgICB1NjRfdG9fdXNlcl9wdHIoYXJncy0+ZmxleF9yZWdzX3B0ciksCiAJCQkJICAgICAg YXJncy0+bl9mbGV4X3JlZ3MpOwogCkBAIC0zNTYxLDIwICszNTYyLDIwIEBAIHN0YXRpYyBzdHJ1 Y3QgY3RsX3RhYmxlIGRldl9yb290W10gPSB7CiB2b2lkIGk5MTVfcGVyZl9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikp IHsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQorCQlk ZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9CiAJCQlnZW43X2lzX3Zh bGlkX2JfY291bnRlcl9hZGRyOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4 X3JlZyA9CisJCWRldl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9tdXhfcmVnID0KIAkJCWhzd19p c192YWxpZF9tdXhfYWRkcjsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2ZsZXhf cmVnID0gTlVMTDsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0ID0g aHN3X2VuYWJsZV9tZXRyaWNfc2V0OwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZGlzYWJsZV9t ZXRyaWNfc2V0ID0gaHN3X2Rpc2FibGVfbWV0cmljX3NldDsKLQkJZGV2X3ByaXYtPnBlcmYub2Eu b3BzLm9hX2VuYWJsZSA9IGdlbjdfb2FfZW5hYmxlOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMu b2FfZGlzYWJsZSA9IGdlbjdfb2FfZGlzYWJsZTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLnJl YWQgPSBnZW43X29hX3JlYWQ7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9od190YWlsX3Jl YWQgPQorCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfZmxleF9yZWcgPSBOVUxMOworCQlk ZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQgPSBoc3dfZW5hYmxlX21ldHJpY19z ZXQ7CisJCWRldl9wcml2LT5wZXJmLm9wcy5kaXNhYmxlX21ldHJpY19zZXQgPSBoc3dfZGlzYWJs ZV9tZXRyaWNfc2V0OworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZW5hYmxlID0gZ2VuN19vYV9l bmFibGU7CisJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9kaXNhYmxlID0gZ2VuN19vYV9kaXNhYmxl OworCQlkZXZfcHJpdi0+cGVyZi5vcHMucmVhZCA9IGdlbjdfb2FfcmVhZDsKKwkJZGV2X3ByaXYt PnBlcmYub3BzLm9hX2h3X3RhaWxfcmVhZCA9CiAJCQlnZW43X29hX2h3X3RhaWxfcmVhZDsKIAot CQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9mb3JtYXRzID0gaHN3X29hX2Zvcm1hdHM7CisJCWRldl9w cml2LT5wZXJmLm9hX2Zvcm1hdHMgPSBoc3dfb2FfZm9ybWF0czsKIAl9IGVsc2UgaWYgKEhBU19M T0dJQ0FMX1JJTkdfQ09OVEVYVFMoZGV2X3ByaXYpKSB7CiAJCS8qIE5vdGU6IHRoYXQgYWx0aG91 Z2ggd2UgY291bGQgdGhlb3JldGljYWxseSBhbHNvIHN1cHBvcnQgdGhlCiAJCSAqIGxlZ2FjeSBy aW5nYnVmZmVyIG1vZGUgb24gQkRXIChhbmQgZWFybGllciBpdGVyYXRpb25zIG9mCkBAIC0zNTgy LDcxICszNTgzLDY1IEBAIHZvaWQgaTkxNV9wZXJmX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCQkgKiB3b3J0aCB0aGUgY29tcGxleGl0eSB0byBtYWludGFpbiBub3cg dGhhdCBCRFcrIGVuYWJsZQogCQkgKiBleGVjbGlzdCBtb2RlIGJ5IGRlZmF1bHQuCiAJCSAqLwot CQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9mb3JtYXRzID0gZ2VuOF9wbHVzX29hX2Zvcm1hdHM7CisJ CWRldl9wcml2LT5wZXJmLm9hX2Zvcm1hdHMgPSBnZW44X3BsdXNfb2FfZm9ybWF0czsKIAotCQlk ZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZW5hYmxlID0gZ2VuOF9vYV9lbmFibGU7Ci0JCWRldl9w cml2LT5wZXJmLm9hLm9wcy5vYV9kaXNhYmxlID0gZ2VuOF9vYV9kaXNhYmxlOwotCQlkZXZfcHJp di0+cGVyZi5vYS5vcHMucmVhZCA9IGdlbjhfb2FfcmVhZDsKLQkJZGV2X3ByaXYtPnBlcmYub2Eu b3BzLm9hX2h3X3RhaWxfcmVhZCA9IGdlbjhfb2FfaHdfdGFpbF9yZWFkOworCQlkZXZfcHJpdi0+ cGVyZi5vcHMub2FfZW5hYmxlID0gZ2VuOF9vYV9lbmFibGU7CisJCWRldl9wcml2LT5wZXJmLm9w cy5vYV9kaXNhYmxlID0gZ2VuOF9vYV9kaXNhYmxlOworCQlkZXZfcHJpdi0+cGVyZi5vcHMucmVh ZCA9IGdlbjhfb2FfcmVhZDsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2h3X3RhaWxfcmVhZCA9 IGdlbjhfb2FfaHdfdGFpbF9yZWFkOwogCiAJCWlmIChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDgs IDkpKSB7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9 CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9CiAJCQkJZ2Vu N19pc192YWxpZF9iX2NvdW50ZXJfYWRkcjsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192 YWxpZF9tdXhfcmVnID0KKwkJCWRldl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9tdXhfcmVnID0K IAkJCQlnZW44X2lzX3ZhbGlkX211eF9hZGRyOwotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlz X3ZhbGlkX2ZsZXhfcmVnID0KKwkJCWRldl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9mbGV4X3Jl ZyA9CiAJCQkJZ2VuOF9pc192YWxpZF9mbGV4X2FkZHI7CiAKIAkJCWlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSkgewotCQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9tdXhfcmVn ID0KKwkJCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CiAJCQkJCWNodl9p c192YWxpZF9tdXhfYWRkcjsKIAkJCX0KIAotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJs ZV9tZXRyaWNfc2V0ID0gZ2VuOF9lbmFibGVfbWV0cmljX3NldDsKLQkJCWRldl9wcml2LT5wZXJm Lm9hLm9wcy5kaXNhYmxlX21ldHJpY19zZXQgPSBnZW44X2Rpc2FibGVfbWV0cmljX3NldDsKKwkJ CWRldl9wcml2LT5wZXJmLm9wcy5lbmFibGVfbWV0cmljX3NldCA9IGdlbjhfZW5hYmxlX21ldHJp Y19zZXQ7CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0gZ2VuOF9k aXNhYmxlX21ldHJpY19zZXQ7CiAKIAkJCWlmIChJU19HRU4oZGV2X3ByaXYsIDgpKSB7Ci0JCQkJ ZGV2X3ByaXYtPnBlcmYub2EuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyMDsKLQkJCQlkZXZf cHJpdi0+cGVyZi5vYS5jdHhfZmxleGV1MF9vZmZzZXQgPSAweDJjZTsKKwkJCQlkZXZfcHJpdi0+ cGVyZi5jdHhfb2FjdHhjdHJsX29mZnNldCA9IDB4MTIwOworCQkJCWRldl9wcml2LT5wZXJmLmN0 eF9mbGV4ZXUwX29mZnNldCA9IDB4MmNlOwogCi0JCQkJZGV2X3ByaXYtPnBlcmYub2EuZ2VuOF92 YWxpZF9jdHhfYml0ID0gKDE8PDI1KTsKKwkJCQlkZXZfcHJpdi0+cGVyZi5nZW44X3ZhbGlkX2N0 eF9iaXQgPSAoMTw8MjUpOwogCQkJfSBlbHNlIHsKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5jdHhf b2FjdHhjdHJsX29mZnNldCA9IDB4MTI4OwotCQkJCWRldl9wcml2LT5wZXJmLm9hLmN0eF9mbGV4 ZXUwX29mZnNldCA9IDB4M2RlOworCQkJCWRldl9wcml2LT5wZXJmLmN0eF9vYWN0eGN0cmxfb2Zm c2V0ID0gMHgxMjg7CisJCQkJZGV2X3ByaXYtPnBlcmYuY3R4X2ZsZXhldTBfb2Zmc2V0ID0gMHgz ZGU7CiAKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5nZW44X3ZhbGlkX2N0eF9iaXQgPSAoMTw8MTYp OworCQkJCWRldl9wcml2LT5wZXJmLmdlbjhfdmFsaWRfY3R4X2JpdCA9ICgxPDwxNik7CiAJCQl9 CiAJCX0gZWxzZSBpZiAoSVNfR0VOX1JBTkdFKGRldl9wcml2LCAxMCwgMTEpKSB7Ci0JCQlkZXZf cHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9CisJCQlkZXZfcHJpdi0+ cGVyZi5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9CiAJCQkJZ2VuN19pc192YWxpZF9iX2Nv dW50ZXJfYWRkcjsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9tdXhfcmVnID0K KwkJCWRldl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9tdXhfcmVnID0KIAkJCQlnZW4xMF9pc192 YWxpZF9tdXhfYWRkcjsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9mbGV4X3Jl ZyA9CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfZmxleF9yZWcgPQogCQkJCWdlbjhf aXNfdmFsaWRfZmxleF9hZGRyOwogCi0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZW5hYmxlX21l dHJpY19zZXQgPSBnZW44X2VuYWJsZV9tZXRyaWNfc2V0OwotCQkJZGV2X3ByaXYtPnBlcmYub2Eu b3BzLmRpc2FibGVfbWV0cmljX3NldCA9IGdlbjEwX2Rpc2FibGVfbWV0cmljX3NldDsKKwkJCWRl dl9wcml2LT5wZXJmLm9wcy5lbmFibGVfbWV0cmljX3NldCA9IGdlbjhfZW5hYmxlX21ldHJpY19z ZXQ7CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0gZ2VuMTBfZGlz YWJsZV9tZXRyaWNfc2V0OwogCiAJCQlpZiAoSVNfR0VOKGRldl9wcml2LCAxMCkpIHsKLQkJCQlk ZXZfcHJpdi0+cGVyZi5vYS5jdHhfb2FjdHhjdHJsX29mZnNldCA9IDB4MTI4OwotCQkJCWRldl9w cml2LT5wZXJmLm9hLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4M2RlOworCQkJCWRldl9wcml2LT5w ZXJmLmN0eF9vYWN0eGN0cmxfb2Zmc2V0ID0gMHgxMjg7CisJCQkJZGV2X3ByaXYtPnBlcmYuY3R4 X2ZsZXhldTBfb2Zmc2V0ID0gMHgzZGU7CiAJCQl9IGVsc2UgewotCQkJCWRldl9wcml2LT5wZXJm Lm9hLmN0eF9vYWN0eGN0cmxfb2Zmc2V0ID0gMHgxMjQ7Ci0JCQkJZGV2X3ByaXYtPnBlcmYub2Eu Y3R4X2ZsZXhldTBfb2Zmc2V0ID0gMHg3OGU7CisJCQkJZGV2X3ByaXYtPnBlcmYuY3R4X29hY3R4 Y3RybF9vZmZzZXQgPSAweDEyNDsKKwkJCQlkZXZfcHJpdi0+cGVyZi5jdHhfZmxleGV1MF9vZmZz ZXQgPSAweDc4ZTsKIAkJCX0KLQkJCWRldl9wcml2LT5wZXJmLm9hLmdlbjhfdmFsaWRfY3R4X2Jp dCA9ICgxPDwxNik7CisJCQlkZXZfcHJpdi0+cGVyZi5nZW44X3ZhbGlkX2N0eF9iaXQgPSAoMTw8 MTYpOwogCQl9CiAJfQogCi0JaWYgKGRldl9wcml2LT5wZXJmLm9hLm9wcy5lbmFibGVfbWV0cmlj X3NldCkgewotCQlocnRpbWVyX2luaXQoJmRldl9wcml2LT5wZXJmLm9hLnBvbGxfY2hlY2tfdGlt ZXIsCi0JCQkJQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVSX01PREVfUkVMKTsKLQkJZGV2X3ByaXYt PnBlcmYub2EucG9sbF9jaGVja190aW1lci5mdW5jdGlvbiA9IG9hX3BvbGxfY2hlY2tfdGltZXJf Y2I7Ci0JCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldl9wcml2LT5wZXJmLm9hLnBvbGxfd3EpOwot CisJaWYgKGRldl9wcml2LT5wZXJmLm9wcy5lbmFibGVfbWV0cmljX3NldCkgewogCQlJTklUX0xJ U1RfSEVBRCgmZGV2X3ByaXYtPnBlcmYuc3RyZWFtcyk7CiAJCW11dGV4X2luaXQoJmRldl9wcml2 LT5wZXJmLmxvY2spOwotCQlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVm ZmVyLnB0cl9sb2NrKTsKIAogCQlvYV9zYW1wbGVfcmF0ZV9oYXJkX2xpbWl0ID0gMTAwMCAqCiAJ CQkoUlVOVElNRV9JTkZPKGRldl9wcml2KS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHogLyAy KTsKQEAgLTM2NTUsNiArMzY1MCwyNSBAQCB2b2lkIGk5MTVfcGVyZl9pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnBlcmYubWV0 cmljc19sb2NrKTsKIAkJaWRyX2luaXQoJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfaWRyKTsKIAor IAkJLyogV2Ugc2V0IHVwIHNvbWUgcmF0ZWxpbWl0IHN0YXRlIHRvIHBvdGVudGlhbGx5IHRocm90 dGxlIGFueQorIAkJICogX05PVEVTIGFib3V0IHNwdXJpb3VzLCBpbnZhbGlkIE9BIHJlcG9ydHMg d2hpY2ggd2UgZG9uJ3QKKyAJCSAqIGZvcndhcmQgdG8gdXNlcnNwYWNlLgorIAkJICoKKyAJCSAq IFdlIHByaW50IGEgX05PVEUgYWJvdXQgYW55IHRocm90dGxpbmcgd2hlbiBjbG9zaW5nIHRoZQor IAkJICogc3RyZWFtIGluc3RlYWQgb2Ygd2FpdGluZyB1bnRpbCBkcml2ZXIgX2Zpbmkgd2hpY2gg bm8gb25lCisgCQkgKiB3b3VsZCBldmVyIHNlZS4KKyAJCSAqCisgCQkgKiBVc2luZyB0aGUgc2Ft ZSBsaW1pdGluZyBmYWN0b3JzIGFzIHByaW50a19yYXRlbGltaXQoKQorIAkJICovCisgCQlyYXRl bGltaXRfc3RhdGVfaW5pdCgmZGV2X3ByaXYtPnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzLAorIAkJ CQkgICAgIDUgKiBIWiwgMTApOworIAkJLyogU2luY2Ugd2UgdXNlIGEgRFJNX05PVEUgZm9yIHNw dXJpb3VzIHJlcG9ydHMgaXQgd291bGQgYmUKKyAJCSAqIGluY29uc2lzdGVudCB0byBsZXQgX19y YXRlbGltaXQoKSBhdXRvbWF0aWNhbGx5IHByaW50IGEKKyAJCSAqIHdhcm5pbmcgZm9yIHRocm90 dGxpbmcuCisgCQkgKi8KKyAJCXJhdGVsaW1pdF9zZXRfZmxhZ3MoJmRldl9wcml2LT5wZXJmLnNw dXJpb3VzX3JlcG9ydF9ycywKKyAJCQkJICAgIFJBVEVMSU1JVF9NU0dfT05fUkVMRUFTRSk7CisK IAkJZGV2X3ByaXYtPnBlcmYuaW5pdGlhbGl6ZWQgPSB0cnVlOwogCX0KIH0KQEAgLTM2ODMsNyAr MzY5Nyw3IEBAIHZvaWQgaTkxNV9wZXJmX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCiAJdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUoZGV2X3ByaXYtPnBlcmYuc3lzY3Rs X2hlYWRlcik7CiAKLQltZW1zZXQoJmRldl9wcml2LT5wZXJmLm9hLm9wcywgMCwgc2l6ZW9mKGRl dl9wcml2LT5wZXJmLm9hLm9wcykpOworCW1lbXNldCgmZGV2X3ByaXYtPnBlcmYub3BzLCAwLCBz aXplb2YoZGV2X3ByaXYtPnBlcmYub3BzKSk7CiAKIAlkZXZfcHJpdi0+cGVyZi5pbml0aWFsaXpl ZCA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9v YV9iZHcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfYmR3LmMKaW5kZXggNDQw YjZiOTA1OGRhLi4xNGRhNWMzYjU2OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L29hL2k5MTVfb2FfYmR3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9i ZHcuYwpAQCAtNjUsMjYgKzY1LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICpr ZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogdm9pZAogaTkx NV9wZXJmX2xvYWRfdGVzdF9jb25maWdfYmR3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCisJ c3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAogCQkiZDZkZTZmNTUtZTUy Ni00Zjc5LWE2YTYtZDczMTVjMDkwNDRlIiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7 CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwor CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29h OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUo bXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJf Y291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVy X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJf cmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVz dF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4 X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhf cmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxl eF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWMubmFtZSA9ICJkNmRlNmY1NS1lNTI2LTRmNzktYTZhNi1kNzMxNWMwOTA0NGUi OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1 YzA5MDQ0ZSI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJz ID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1sw XSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKIAot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUg PSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5h dHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9ieHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfYnh0LmMKaW5kZXggMGIyNjhlM2ZlMmFiLi4z ZTc4NWJhZmNmOTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ff Ynh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9ieHQuYwpAQCAtNjMs MjYgKzYzLDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogdm9pZAogaTkxNV9wZXJmX2xvYWRf dGVzdF9jb25maWdfYnh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlz dHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCisJc3RybGNweShkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAogCQkiNWVlNzJmNWMtMDkyZi00MjFlLThiNzAt MjI1ZjdjM2U5NjEyIiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1 aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7CisJCXNpemVvZihk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3Mg PSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4 X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190 ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdz ID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0 X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291 bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50 ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CiAKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190 ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBB UlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdf dGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMu bmFtZSA9ICI1ZWU3MmY1Yy0wOTJmLTQyMWUtOGI3MC0yMjVmN2MzZTk2MTIiOwotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpYy5uYW1lID0gIjVlZTcyZjVjLTA5MmYtNDIxZS04YjcwLTIyNWY3YzNlOTYxMiI7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKIAotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAw NDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93 ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwogfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QyLmMKaW5kZXggODk1NDJkMzBjNTVjLi4wZWE4NmY3 MGEwNmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3Qy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDIuYwpAQCAtNjQs MjYgKzY0LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogdm9pZAogaTkxNV9wZXJmX2xvYWRf dGVzdF9jb25maWdfY2ZsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK LQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCisJc3RybGNweShk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAogCQkiNzRmYjQ5MDItZDNkMy00MjM3LTll OTAtY2JkYzY4ZDBhNDQ2IiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7CisJCXNpemVv ZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3Jl Z3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu bXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZp Z190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9y ZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190 ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJf Y291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2Nv dW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CiAK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZp Z190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4g PSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25m aWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWMubmFtZSA9ICI3NGZiNDkwMi1kM2QzLTQyMzctOWU5MC1jYmRjNjhkMGE0NDYiOwotCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpYy5uYW1lID0gIjc0ZmI0OTAyLWQzZDMtNDIzNy05ZTkwLWNiZGM2OGQwYTQ0NiI7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKIAotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUg PSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5z aG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwogfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2ZsZ3QzLmMKaW5kZXggNTFiMTE4YjAzNzE2Li5mYzYz MmRkODkwYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2Zs Z3QzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jZmxndDMuYwpAQCAt NjQsMjYgKzY0LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogdm9pZAogaTkxNV9wZXJmX2xv YWRfdGVzdF9jb25maWdfY2ZsZ3QzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCisJc3RybGNw eShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAogCQkiNTc3ZThlMmMtM2ZhMC00ODc1 LTg3NDMtMzUzOGQ1ODVlM2IwIiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7CisJCXNp emVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4 X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2Nv bmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRl cl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZp Z190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9 IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5i X2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7 CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2Nv bmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19s ZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9j b25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWMubmFtZSA9ICI1NzdlOGUyYy0zZmEwLTQ4NzUtODc0My0zNTM4ZDU4NWUzYjAiOwotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LnN5c2ZzX21ldHJpYy5uYW1lID0gIjU3N2U4ZTJjLTNmYTAtNDg3NS04NzQzLTM1MzhkNTg1ZTNi MCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKIAotCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQi OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1v ZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19p ZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwogfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jaHYuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2h2LmMKaW5kZXggYzcwYzVhZjhhNzY1Li42Y2Q0ZTk5 MjFhOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY2h2LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jaHYuYwpAQCAtNjQsMjYgKzY0 LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNl X2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogdm9pZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9j b25maWdfY2h2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5 KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy51dWlkLAogCQkiNGE1MzRiMDctY2JhMy00MTRkLThkNjAtODc0ODMw ZTg4M2FhIiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu aWQgPSAxOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhf Y29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3Nf bGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29h KTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9j b3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJf Y291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsK KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9j b25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVn c19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29h OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9T SVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9v YSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9 ICI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiOwotCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmF0dHJzOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Yy5uYW1lID0gIjRhNTM0YjA3LWNiYTMtNDE0ZC04ZDYwLTg3NDgzMGU4ODNhYSI7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuYXR0cnM7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRy c1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0 cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hv d190ZXN0X29hX2lkOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19p ZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jbmwuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L29hL2k5MTVfb2FfY25sLmMKaW5kZXggNmQxMzk4MzYwMGU3Li4xMDQxZTg5MTQ5OTMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfY25sLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9jbmwuYwpAQCAtNzYsMjYgKzc2LDI2IEBAIHNob3df dGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAq YXR0ciwgY2hhciAqYnVmKQogdm9pZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY25sKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy51dWlkLAogCQkiZGI0MWVkZDQtZDhlNy00NzMwLWFkMTEtYjlhMmQ2ODMzNTAzIiwKLQkJ c2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rf b2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlf U0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11 eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln Lm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZp Z190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdz X2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9v YTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJB WV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVf Y29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9 IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxl eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJkYjQxZWRkNC1k OGU3LTQ3MzAtYWQxMS1iOWEyZDY4MzM1MDMiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0 dHJzOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImRi NDFlZGQ0LWQ4ZTctNDczMC1hZDExLWI5YTJkNjgzMzUwMyI7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu YXR0cnM7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lk OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUg PSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy Lm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19p ZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvb2EvaTkxNV9vYV9nbGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ff Z2xrLmMKaW5kZXggNjY4YzlhYTE1YmM1Li5iZDE1ZWJlOWFlZWIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfZ2xrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvb2EvaTkxNV9vYV9nbGsuYwpAQCAtNjMsMjYgKzYzLDI2IEBAIHNob3dfdGVzdF9vYV9pZChz dHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAq YnVmKQogdm9pZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfZ2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAog CQkiZGQzZmQ3ODktZTc4My00MjA0LThjZDAtYjY3MWJiY2NiMGNmIiwKLQkJc2l6ZW9mKGRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlk KSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29u ZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4 X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xl biA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5m bGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rf b2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29u ZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJkZDNmZDc4OS1lNzgzLTQyMDQtOGNk MC1iNjcxYmJjY2IwY2YiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImRkM2ZkNzg5LWU3ODMt NDIwNC04Y2QwLWI2NzFiYmNjYjBjZiI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWNfaWQuYXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0 OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hv d190ZXN0X29hX2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9oc3cuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaHN3LmMKaW5kZXgg MmUxMGE3MzEyN2EyLi4xMzM3MjFhODYxOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L29hL2k5MTVfb2FfaHN3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9v YV9oc3cuYwpAQCAtOTMsMjYgKzkzLDI2IEBAIHNob3dfcmVuZGVyX2Jhc2ljX2lkKHN0cnVjdCBk ZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpiCiB2b2lk CiBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19oc3coc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVp ZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJCSI0MDNkODgz Mi0xYTI3LTRhYTYtYTY0ZS1mNTM4OWNlN2IyMTIiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlk ID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfcmVuZGVyX2Jhc2ljOwotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19y ZW5kZXJfYmFzaWMpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4 X2NvbmZpZ19yZW5kZXJfYmFzaWM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3Jl Z3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3JlbmRlcl9iYXNpYyk7CiAKLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdf cmVuZGVyX2Jhc2ljOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9y ZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWMpOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZp Z19yZW5kZXJfYmFzaWM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3Jl Z3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpYyk7CiAKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ19y ZW5kZXJfYmFzaWM7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xl biA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ19yZW5kZXJfYmFzaWM7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUo ZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjQwM2Q4ODMyLTFhMjctNGFhNi1hNjRlLWY1Mzg5 Y2U3YjIxMiI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0 dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNDAzZDg4MzItMWEyNy00YWE2LWE2 NGUtZjUzODljZTdiMjEyIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5h dHRyOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0 dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu c3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3JlbmRlcl9iYXNpY19pZDsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsK KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3df cmVuZGVyX2Jhc2ljX2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2Ev aTkxNV9vYV9pY2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2FfaWNsLmMKaW5k ZXggNmRjMzg4ZGU0NTE4Li4yZDkyMDQxYjc1NGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L29hL2k5MTVfb2FfaWNsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9pY2wuYwpAQCAtNzMsMjYgKzczLDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2 aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogdm9p ZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaWNsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1 aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAogCQkiYTI5MTY2 NWUtMjQ0Yi00Yjc2LTliOWEtMDFkZTlkM2M4MDY4IiwKLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5p ZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rf b2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190 ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZ X1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9j b3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2Nv dW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25m aWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3Mg PSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rf b2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJ WkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJhMjkxNjY1ZS0yNDRiLTRiNzYtOWI5YS0wMWRlOWQz YzgwNjgiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRy cyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImEyOTE2NjVlLTI0NGItNGI3Ni05Yjlh LTAxZGU5ZDNjODA2OCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj LmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5h dHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0 cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy Lm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29h X2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9rYmxn dDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QyLmMKaW5kZXggNDVi NzYzNjZjNGYzLi4xYzNhNjdjOWNmZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L29hL2k5MTVfb2Ffa2JsZ3QyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9v YV9rYmxndDIuYwpAQCAtNjQsMjYgKzY0LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2 aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogdm9p ZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAogCQkiYmFh M2M3ZTQtNTJiNi00Yjg1LTgwMWUtNDY1YTk0Yjc0NmRkIiwKLQkJc2l6ZW9mKGRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rl c3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZp Z190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFS UkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUo Yl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5i X2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9j b25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3Jl Z3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwor CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rl c3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZ X1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJiYWEzYzdlNC01MmI2LTRiODUtODAxZS00NjVh OTRiNzQ2ZGQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5h dHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImJhYTNjN2U0LTUyYjYtNGI4NS04 MDFlLTQ2NWE5NGI3NDZkZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQu YXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5h dHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0 X29hX2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9vYV9r YmxndDMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffa2JsZ3QzLmMKaW5kZXgg MzVhMzQwZjQ4MzUzLi5lYmJlNWE5YzlmZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L29hL2k5MTVfb2Ffa2JsZ3QzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9rYmxndDMuYwpAQCAtNjQsMjYgKzY0LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3Qg ZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQog dm9pZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAogCQki ZjE3OTJmMzItNmRiMi00YjUwLWI0YjItNTU3MTI4ZjE2ODhkIiwKLQkJc2l6ZW9mKGRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmln X3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2Nv bmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJ WkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRl cl9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4 X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2Ep OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmln X3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFS UkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJmMTc5MmYzMi02ZGIyLTRiNTAtYjRiMi01 NTcxMjhmMTY4OGQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Yy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImYxNzkyZjMyLTZkYjItNGI1 MC1iNGIyLTU1NzEyOGYxNjg4ZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19p ZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owor CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190 ZXN0X29hX2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkxNV9v YV9za2xndDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QyLmMKaW5k ZXggMzA5YmI0OWQyMzRjLi4xYmMzNTllZDM0ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2Ev aTkxNV9vYV9za2xndDIuYwpAQCAtNjMsMjYgKzYzLDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1 Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVm KQogdm9pZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3QyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAog CQkiMTY1MTk0OWYtMGFjMC00Y2IxLWEwNmYtZGFmZDc0YTQwN2QxIiwKLQkJc2l6ZW9mKGRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlk KSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29u ZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4 X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xl biA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5m bGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rf b2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29u ZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICIxNjUxOTQ5Zi0wYWMwLTRjYjEtYTA2 Zi1kYWZkNzRhNDA3ZDEiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjE2NTE5NDlmLTBhYzAt NGNiMS1hMDZmLWRhZmQ3NGE0MDdkMSI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWNfaWQuYXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0 OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hv d190ZXN0X29hX2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2EvaTkx NV9vYV9za2xndDMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QzLmMK aW5kZXggNDA5NmUzYmE1YmI1Li42ZTM1MmY4ODEzMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3QzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv b2EvaTkxNV9vYV9za2xndDMuYwpAQCAtNjQsMjYgKzY0LDI2IEBAIHNob3dfdGVzdF9vYV9pZChz dHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAq YnVmKQogdm9pZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3QzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlk LAogCQkiMmI5ODU4MDMtZDNjOS00NjI5LThhNGYtNjM0YmZlY2JhMGU4IiwKLQkJc2l6ZW9mKGRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51 dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhf Y29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0g bXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdz X2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29h OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFS UkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJf Y291bnRlcl9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rl c3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVf Y29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xl biA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICIyYjk4NTgwMy1kM2M5LTQ2Mjkt OGE0Zi02MzRiZmVjYmEwZTgiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjJiOTg1ODAzLWQz YzktNDYyOS04YTRmLTYzNGJmZWNiYTBlOCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWNfaWQuYXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwor CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAw NDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0g c2hvd190ZXN0X29hX2lkOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvb2Ev aTkxNV9vYV9za2xndDQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Q0 LmMKaW5kZXggYjk1NzViMDRmNzUyLi44ZjM0NTExNWEzMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L29hL2k5MTVfb2Ffc2tsZ3Q0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvb2EvaTkxNV9vYV9za2xndDQuYwpAQCAtNjQsMjYgKzY0LDI2IEBAIHNob3dfdGVzdF9vYV9p ZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hh ciAqYnVmKQogdm9pZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3Q0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51 dWlkLAogCQkiODgyZmE0MzMtMWY0YS00YTY3LWE5NjItYzc0MTg4OGZlNWY1IiwKLQkJc2l6ZW9m KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy51dWlkKSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRSht dXhfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdz ID0gbXV4X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9y ZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0 X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKKwlk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmln X3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhf ZXVfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdz X2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI4ODJmYTQzMy0xZjRhLTRh NjctYTk2Mi1jNzQxODg4ZmU1ZjUiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOwor CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjg4MmZhNDMz LTFmNGEtNGE2Ny1hOTYyLWM3NDE4ODhmZTVmNSI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7 CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuYXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQi OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUg PSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93 ID0gc2hvd190ZXN0X29hX2lkOwogfQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=