From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH] drm/i915: tame the chattermouth (v2) Date: Mon, 15 Dec 2014 13:56:32 -0500 Message-ID: <1418669792-25949-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f48.google.com (mail-qa0-f48.google.com [209.85.216.48]) by gabe.freedesktop.org (Postfix) with ESMTP id 30F216E09D for ; Mon, 15 Dec 2014 10:56:42 -0800 (PST) Received: by mail-qa0-f48.google.com with SMTP id v10so8416197qac.7 for ; Mon, 15 Dec 2014 10:56:41 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org TWFueSBkaXN0cm8ncyBoYXZlIG1lY2hhbmlzbSBpbiBwbGFjZSB0byBjb2xsZWN0IGFuZCBhdXRv bWF0aWNhbGx5IGZpbGUKYnVncyBmb3IgZmFpbGVkIFdBUk4oKXMuICBBbmQgc2luY2UgaTkxNSBo YXMgYSBsb3Qgb2YgaHcgc3RhdGUgc2FuaXR5CmNoZWNrcyB3aGljaCByZXN1bHQgaW4gV0FSTigp LCBpdCBnZW5lcmF0ZXMgcXVpdGUgYSBsb3Qgb2Ygbm9pc2Ugd2hpY2gKaXMgc29tZXdoYXQgZGlz Y29uY2VydGluZyB0byB0aGUgZW5kIHVzZXIuCgpTZXBhcmF0ZSBvdXQgdGhlIGludGVybmFsIGh3 LWlzLWluLXRoZS1zdGF0ZS1JLWV4cGVjdGVkIGNoZWNrcyBpbnRvCkk5MTVfU1RBVEVfV0FSTigp cyBhbmQgYWxsb3cgY29uZmlndXJhdGlvbiB2aWEgaTkxNS52ZXJib3NlX2NoZWNrcyBtb2R1bGUK cGFyYW0gYWJvdXQgd2hldGhlciB0aGlzIHdpbGwgZ2VuZXJhdGUgYSBmdWxsIGJsb3duIHN0YWNr dHJhY2Ugb3IganVzdApEUk1fRVJST1IoKS4gIFRoZSBuZXcgbW9kdWxlcGFyYW0gZGVmYXVsdHMg dG8gdHJ1ZSwgc28gYnkgZGVmYXVsdCB0aGVyZQppcyBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuICBB bmQgZXZlbiB3aGVuIGRpc2FibGVkLCB5b3Ugd2lsbCBzdGlsbCBnZXQKYW4gZXJyb3IgbWVzc2Fn ZSBsb2dnZWQuCgp2MjogcGFpbnQgdGhlIG1hY3JvIG5hbWVzIGJsdWUsIGNsYXJpZnkgdGhhdCB0 aGUgZGVmYXVsdCBiZWhhdmlvcgogICAgcmVtYWlucyB0aGUgc2FtZSBhcyBiZWZvcmUKClNpZ25l ZC1vZmYtYnk6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMzAgKysrKysrKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wYXJhbXMuYyAgICAgIHwgICA1ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgICAgfCAxMzQgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgICB8ICAgNCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgICAyICstCiA1IGZpbGVzIGNo YW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAppbmRleCBiYjE4OTJkLi5hOTc5M2U5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTYwLDYgKzYwLDM1IEBACiAjdW5kZWYgV0FSTl9PTgogI2RlZmluZSBXQVJOX09OKHgpCQlX QVJOKHgsICJXQVJOX09OKCIgI3ggIikiKQogCisvKiBVc2UgSTkxNV9TVEFURV9XQVJOKHgpIGFu ZCBJOTE1X1NUQVRFX1dBUk5fT04oKSAocmF0aGVyIHRoYW4gV0FSTigpIGFuZAorICogV0FSTl9P TigpKSBmb3IgaHcgc3RhdGUgc2FuaXR5IGNoZWNrcyB0byBjaGVjayBmb3IgdW5leHBlY3RlZCBj b25kaXRpb25zCisgKiB3aGljaCBtYXkgbm90IG5lY2Vzc2FyaWx5IGJlIGEgdXNlciB2aXNpYmxl IHByb2JsZW0uICBUaGlzIHdpbGwgZWl0aGVyCisgKiBXQVJOKCkgb3IgRFJNX0VSUk9SKCkgZGVw ZW5kaW5nIG9uIHRoZSB2ZXJib3NlX2NoZWNrcyBtb2R1bGVwYXJhbSwgdG8KKyAqIGVuYWJsZSBk aXN0cm9zIGFuZCB1c2VycyB0byB0YWlsb3IgdGhlaXIgcHJlZmVycmVkIGFtb3VudCBvZiBpOTE1 IGFicnQKKyAqIHNwYW0uCisgKi8KKyNkZWZpbmUgSTkxNV9TVEFURV9XQVJOKGNvbmRpdGlvbiwg Zm9ybWF0Li4uKSAoewkJCVwKKwlpbnQgX19yZXRfd2Fybl9vbiA9ICEhKGNvbmRpdGlvbik7CQkJ CVwKKwlpZiAodW5saWtlbHkoX19yZXRfd2Fybl9vbikpIHsJCQkJCVwKKwkJaWYgKGk5MTUudmVy Ym9zZV9zdGF0ZV9jaGVja3MpCQkJCVwKKwkJCV9fV0FSTl9wcmludGYoZm9ybWF0KTsJCQkJXAor CQllbHNlIAkJCQkJCQlcCisJCQlEUk1fRVJST1IoZm9ybWF0KTsJCQkJXAorCX0JCQkJCQkJCVwK Kwl1bmxpa2VseShfX3JldF93YXJuX29uKTsJCQkJCVwKK30pCisKKyNkZWZpbmUgSTkxNV9TVEFU RV9XQVJOX09OKGNvbmRpdGlvbikgKHsJCQkJXAorCWludCBfX3JldF93YXJuX29uID0gISEoY29u ZGl0aW9uKTsJCQkJXAorCWlmICh1bmxpa2VseShfX3JldF93YXJuX29uKSkgewkJCQkJXAorCQlp ZiAoaTkxNS52ZXJib3NlX3N0YXRlX2NoZWNrcykJCQkJXAorCQkJX19XQVJOX3ByaW50ZigiV0FS Tl9PTigiICNjb25kaXRpb24gIilcbiIpOwlcCisJCWVsc2UgCQkJCQkJCVwKKwkJCURSTV9FUlJP UigiV0FSTl9PTigiICNjb25kaXRpb24gIilcbiIpOwkJXAorCX0JCQkJCQkJCVwKKwl1bmxpa2Vs eShfX3JldF93YXJuX29uKTsJCQkJCVwKK30pCisKIGVudW0gcGlwZSB7CiAJSU5WQUxJRF9QSVBF ID0gLTEsCiAJUElQRV9BID0gMCwKQEAgLTIzMTEsNiArMjM0MCw3IEBAIHN0cnVjdCBpOTE1X3Bh cmFtcyB7CiAJYm9vbCBkaXNhYmxlX3Z0ZF93YTsKIAlpbnQgdXNlX21taW9fZmxpcDsKIAlib29s IG1taW9fZGVidWc7CisJYm9vbCB2ZXJib3NlX3N0YXRlX2NoZWNrczsKIH07CiBleHRlcm4gc3Ry dWN0IGk5MTVfcGFyYW1zIGk5MTUgX19yZWFkX21vc3RseTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGFyYW1zLmMKaW5kZXggYzkxY2IyMC4uZGIwNzE1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wYXJhbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bh cmFtcy5jCkBAIC01MSw2ICs1MSw3IEBAIHN0cnVjdCBpOTE1X3BhcmFtcyBpOTE1IF9fcmVhZF9t b3N0bHkgPSB7CiAJLmRpc2FibGVfdnRkX3dhID0gMCwKIAkudXNlX21taW9fZmxpcCA9IDAsCiAJ Lm1taW9fZGVidWcgPSAwLAorCS52ZXJib3NlX3N0YXRlX2NoZWNrcyA9IDEsCiB9OwogCiBtb2R1 bGVfcGFyYW1fbmFtZWQobW9kZXNldCwgaTkxNS5tb2Rlc2V0LCBpbnQsIDA0MDApOwpAQCAtMTcz LDMgKzE3NCw3IEBAIG1vZHVsZV9wYXJhbV9uYW1lZChtbWlvX2RlYnVnLCBpOTE1Lm1taW9fZGVi dWcsIGJvb2wsIDA2MDApOwogTU9EVUxFX1BBUk1fREVTQyhtbWlvX2RlYnVnLAogCSJFbmFibGUg dGhlIE1NSU8gZGVidWcgY29kZSAoZGVmYXVsdDogZmFsc2UpLiBUaGlzIG1heSBuZWdhdGl2ZWx5 ICIKIAkiYWZmZWN0IHBlcmZvcm1hbmNlLiIpOworCittb2R1bGVfcGFyYW1fbmFtZWQodmVyYm9z ZV9zdGF0ZV9jaGVja3MsIGk5MTUudmVyYm9zZV9zdGF0ZV9jaGVja3MsIGJvb2wsIDA2MDApOwor TU9EVUxFX1BBUk1fREVTQyh2ZXJib3NlX3N0YXRlX2NoZWNrcywKKwkiRW5hYmxlIHZlcmJvc2Ug bG9ncyAoaWUuIFdBUk5fT04oKSkgaW4gY2FzZSBvZiB1bmV4cGVjdGVkIGh3IHN0YXRlIGNvbmRp dGlvbnMuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNjMyNDdjNi4u ZWVjOWU2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTAyNCw3ICsx MDI0LDcgQEAgdm9pZCBhc3NlcnRfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlyZWcgPSBEUExMKHBpcGUpOwogCXZhbCA9IEk5MTVfUkVBRChyZWcpOwogCWN1cl9zdGF0 ZSA9ICEhKHZhbCAmIERQTExfVkNPX0VOQUJMRSk7Ci0JV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUs CisJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKIAkgICAgICJQTEwgc3RhdGUg YXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKIAkgICAgIHN0 YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKIH0KQEAgLTEwNDAs NyArMTA0MCw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9kc2lfcGxsKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgYm9vbCBzdGF0ZSkKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5k cGlvX2xvY2spOwogCiAJY3VyX3N0YXRlID0gdmFsICYgRFNJX1BMTF9WQ09fRU47Ci0JV0FSTihj dXJfc3RhdGUgIT0gc3RhdGUsCisJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwK IAkgICAgICJEU0kgUExMIHN0YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3Vy cmVudCAlcylcbiIsCiAJICAgICBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3Vy X3N0YXRlKSk7CiB9CkBAIC0xMDcxLDcgKzEwNzEsNyBAQCB2b2lkIGFzc2VydF9zaGFyZWRfZHBs bChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXJldHVybjsKIAogCWN1cl9z dGF0ZSA9IHBsbC0+Z2V0X2h3X3N0YXRlKGRldl9wcml2LCBwbGwsICZod19zdGF0ZSk7Ci0JV0FS TihjdXJfc3RhdGUgIT0gc3RhdGUsCisJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0 ZSwKIAkgICAgICIlcyBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0ZWQgJXMsIGN1cnJlbnQgJXMp XG4iLAogCSAgICAgcGxsLT5uYW1lLCBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmco Y3VyX3N0YXRlKSk7CiB9CkBAIC0xMDk1LDcgKzEwOTUsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRf ZmRpX3R4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJdmFsID0gSTkxNV9S RUFEKHJlZyk7CiAJCWN1cl9zdGF0ZSA9ICEhKHZhbCAmIEZESV9UWF9FTkFCTEUpOwogCX0KLQlX QVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKKwlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0 YXRlLAogCSAgICAgIkZESSBUWCBzdGF0ZSBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0ZWQgJXMs IGN1cnJlbnQgJXMpXG4iLAogCSAgICAgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5n KGN1cl9zdGF0ZSkpOwogfQpAQCAtMTExMiw3ICsxMTEyLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0 X2ZkaV9yeChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmVnID0gRkRJX1JY X0NUTChwaXBlKTsKIAl2YWwgPSBJOTE1X1JFQUQocmVnKTsKIAljdXJfc3RhdGUgPSAhISh2YWwg JiBGRElfUlhfRU5BQkxFKTsKLQlXQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKKwlJOTE1X1NUQVRF X1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAogCSAgICAgIkZESSBSWCBzdGF0ZSBhc3NlcnRpb24g ZmFpbHVyZSAoZXhwZWN0ZWQgJXMsIGN1cnJlbnQgJXMpXG4iLAogCSAgICAgc3RhdGVfc3RyaW5n KHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwogfQpAQCAtMTEzNSw3ICsxMTM1LDcg QEAgc3RhdGljIHZvaWQgYXNzZXJ0X2ZkaV90eF9wbGxfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlyZWcgPSBGRElfVFhfQ1RMKHBpcGUpOwogCXZhbCA9IEk5 MTVfUkVBRChyZWcpOwotCVdBUk4oISh2YWwgJiBGRElfVFhfUExMX0VOQUJMRSksICJGREkgVFgg UExMIGFzc2VydGlvbiBmYWlsdXJlLCBzaG91bGQgYmUgYWN0aXZlIGJ1dCBpcyBkaXNhYmxlZFxu Iik7CisJSTkxNV9TVEFURV9XQVJOKCEodmFsICYgRkRJX1RYX1BMTF9FTkFCTEUpLCAiRkRJIFRY IFBMTCBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJlIGFjdGl2ZSBidXQgaXMgZGlzYWJsZWRc biIpOwogfQogCiB2b2lkIGFzc2VydF9mZGlfcnhfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKQEAgLTExNDgsNyArMTE0OCw3IEBAIHZvaWQgYXNzZXJ0X2ZkaV9yeF9wbGwo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJlZyA9IEZESV9SWF9DVEwocGlw ZSk7CiAJdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAJY3VyX3N0YXRlID0gISEodmFsICYgRkRJX1JY X1BMTF9FTkFCTEUpOwotCVdBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAorCUk5MTVfU1RBVEVfV0FS TihjdXJfc3RhdGUgIT0gc3RhdGUsCiAJICAgICAiRkRJIFJYIFBMTCBhc3NlcnRpb24gZmFpbHVy ZSAoZXhwZWN0ZWQgJXMsIGN1cnJlbnQgJXMpXG4iLAogCSAgICAgc3RhdGVfc3RyaW5nKHN0YXRl KSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwogfQpAQCAtMTE5MCw3ICsxMTkwLDcgQEAgdm9p ZCBhc3NlcnRfcGFuZWxfdW5sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCSAgICAoKHZhbCAmIFBBTkVMX1VOTE9DS19NQVNLKSA9PSBQQU5FTF9VTkxPQ0tfUkVHUykp CiAJCWxvY2tlZCA9IGZhbHNlOwogCi0JV0FSTihwYW5lbF9waXBlID09IHBpcGUgJiYgbG9ja2Vk LAorCUk5MTVfU1RBVEVfV0FSTihwYW5lbF9waXBlID09IHBpcGUgJiYgbG9ja2VkLAogCSAgICAg InBhbmVsIGFzc2VydGlvbiBmYWlsdXJlLCBwaXBlICVjIHJlZ3MgbG9ja2VkXG4iLAogCSAgICAg cGlwZV9uYW1lKHBpcGUpKTsKIH0KQEAgLTEyMDYsNyArMTIwNiw3IEBAIHN0YXRpYyB2b2lkIGFz c2VydF9jdXJzb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWVsc2UKIAkJ Y3VyX3N0YXRlID0gSTkxNV9SRUFEKENVUkNOVFIocGlwZSkpICYgQ1VSU09SX01PREU7CiAKLQlX QVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKKwlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0 YXRlLAogCSAgICAgImN1cnNvciBvbiBwaXBlICVjIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3Rl ZCAlcywgY3VycmVudCAlcylcbiIsCiAJICAgICBwaXBlX25hbWUocGlwZSksIHN0YXRlX3N0cmlu ZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKIH0KQEAgLTEyMzYsNyArMTIzNiw3 IEBAIHZvaWQgYXNzZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CQljdXJfc3RhdGUgPSAhISh2YWwgJiBQSVBFQ09ORl9FTkFCTEUpOwogCX0KIAotCVdBUk4oY3Vy X3N0YXRlICE9IHN0YXRlLAorCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCiAJ ICAgICAicGlwZSAlYyBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0ZWQgJXMsIGN1cnJlbnQgJXMp XG4iLAogCSAgICAgcGlwZV9uYW1lKHBpcGUpLCBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9z dHJpbmcoY3VyX3N0YXRlKSk7CiB9CkBAIC0xMjUxLDcgKzEyNTEsNyBAQCBzdGF0aWMgdm9pZCBh c3NlcnRfcGxhbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJlZyA9IERT UENOVFIocGxhbmUpOwogCXZhbCA9IEk5MTVfUkVBRChyZWcpOwogCWN1cl9zdGF0ZSA9ICEhKHZh bCAmIERJU1BMQVlfUExBTkVfRU5BQkxFKTsKLQlXQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKKwlJ OTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAogCSAgICAgInBsYW5lICVjIGFzc2Vy dGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCiAJICAgICBwbGFuZV9u YW1lKHBsYW5lKSwgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkp OwogfQpAQCAtMTI3MSw3ICsxMjcxLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3BsYW5lc19kaXNh YmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDQpIHsKIAkJcmVnID0gRFNQQ05UUihwaXBlKTsKIAkJdmFsID0gSTkxNV9S RUFEKHJlZyk7Ci0JCVdBUk4odmFsICYgRElTUExBWV9QTEFORV9FTkFCTEUsCisJCUk5MTVfU1RB VEVfV0FSTih2YWwgJiBESVNQTEFZX1BMQU5FX0VOQUJMRSwKIAkJICAgICAicGxhbmUgJWMgYXNz ZXJ0aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBkaXNhYmxlZCBidXQgbm90XG4iLAogCQkgICAgIHBs YW5lX25hbWUocGlwZSkpOwogCQlyZXR1cm47CkBAIC0xMjgzLDcgKzEyODMsNyBAQCBzdGF0aWMg dm9pZCBhc3NlcnRfcGxhbmVzX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAJCWN1cl9waXBlID0gKHZhbCAmIERJU1BQ TEFORV9TRUxfUElQRV9NQVNLKSA+PgogCQkJRElTUFBMQU5FX1NFTF9QSVBFX1NISUZUOwotCQlX QVJOKCh2YWwgJiBESVNQTEFZX1BMQU5FX0VOQUJMRSkgJiYgcGlwZSA9PSBjdXJfcGlwZSwKKwkJ STkxNV9TVEFURV9XQVJOKCh2YWwgJiBESVNQTEFZX1BMQU5FX0VOQUJMRSkgJiYgcGlwZSA9PSBj dXJfcGlwZSwKIAkJICAgICAicGxhbmUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBv ZmYgb24gcGlwZSAlYyBidXQgaXMgc3RpbGwgYWN0aXZlXG4iLAogCQkgICAgIHBsYW5lX25hbWUo aSksIHBpcGVfbmFtZShwaXBlKSk7CiAJfQpAQCAtMTI5OSw3ICsxMjk5LDcgQEAgc3RhdGljIHZv aWQgYXNzZXJ0X3Nwcml0ZXNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7CiAJCWZvcl9lYWNoX3Nwcml0 ZShwaXBlLCBzcHJpdGUpIHsKIAkJCXZhbCA9IEk5MTVfUkVBRChQTEFORV9DVEwocGlwZSwgc3By aXRlKSk7Ci0JCQlXQVJOKHZhbCAmIFBMQU5FX0NUTF9FTkFCTEUsCisJCQlJOTE1X1NUQVRFX1dB Uk4odmFsICYgUExBTkVfQ1RMX0VOQUJMRSwKIAkJCSAgICAgInBsYW5lICVkIGFzc2VydGlvbiBm YWlsdXJlLCBzaG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwK IAkJCSAgICAgc3ByaXRlLCBwaXBlX25hbWUocGlwZSkpOwogCQl9CkBAIC0xMzA3LDIwICsxMzA3 LDIwIEBAIHN0YXRpYyB2b2lkIGFzc2VydF9zcHJpdGVzX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJZm9yX2VhY2hfc3ByaXRlKHBpcGUsIHNwcml0ZSkgewog CQkJcmVnID0gU1BDTlRSKHBpcGUsIHNwcml0ZSk7CiAJCQl2YWwgPSBJOTE1X1JFQUQocmVnKTsK LQkJCVdBUk4odmFsICYgU1BfRU5BQkxFLAorCQkJSTkxNV9TVEFURV9XQVJOKHZhbCAmIFNQX0VO QUJMRSwKIAkJCSAgICAgInNwcml0ZSAlYyBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJlIG9m ZiBvbiBwaXBlICVjIGJ1dCBpcyBzdGlsbCBhY3RpdmVcbiIsCiAJCQkgICAgIHNwcml0ZV9uYW1l KHBpcGUsIHNwcml0ZSksIHBpcGVfbmFtZShwaXBlKSk7CiAJCX0KIAl9IGVsc2UgaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuID49IDcpIHsKIAkJcmVnID0gU1BSQ1RMKHBpcGUpOwogCQl2YWwgPSBJ OTE1X1JFQUQocmVnKTsKLQkJV0FSTih2YWwgJiBTUFJJVEVfRU5BQkxFLAorCQlJOTE1X1NUQVRF X1dBUk4odmFsICYgU1BSSVRFX0VOQUJMRSwKIAkJICAgICAic3ByaXRlICVjIGFzc2VydGlvbiBm YWlsdXJlLCBzaG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwK IAkJICAgICBwbGFuZV9uYW1lKHBpcGUpLCBwaXBlX25hbWUocGlwZSkpOwogCX0gZWxzZSBpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSkgewogCQlyZWcgPSBEVlNDTlRSKHBpcGUpOwogCQl2 YWwgPSBJOTE1X1JFQUQocmVnKTsKLQkJV0FSTih2YWwgJiBEVlNfRU5BQkxFLAorCQlJOTE1X1NU QVRFX1dBUk4odmFsICYgRFZTX0VOQUJMRSwKIAkJICAgICAic3ByaXRlICVjIGFzc2VydGlvbiBm YWlsdXJlLCBzaG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwK IAkJICAgICBwbGFuZV9uYW1lKHBpcGUpLCBwaXBlX25hbWUocGlwZSkpOwogCX0KQEAgLTEzMjgs NyArMTMyOCw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9zcHJpdGVzX2Rpc2FibGVkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogc3RhdGljIHZvaWQgYXNzZXJ0X3ZibGFua19k aXNhYmxlZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0JaWYgKFdBUk5fT04oZHJtX2NydGNf dmJsYW5rX2dldChjcnRjKSA9PSAwKSkKKwlpZiAoSTkxNV9TVEFURV9XQVJOX09OKGRybV9jcnRj X3ZibGFua19nZXQoY3J0YykgPT0gMCkpCiAJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7CiB9 CiAKQEAgLTEzMzcsMTIgKzEzMzcsMTIgQEAgc3RhdGljIHZvaWQgaWJ4X2Fzc2VydF9wY2hfcmVm Y2xrX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXUzMiB2YWw7 CiAJYm9vbCBlbmFibGVkOwogCi0JV0FSTl9PTighKEhBU19QQ0hfSUJYKGRldl9wcml2LT5kZXYp IHx8IEhBU19QQ0hfQ1BUKGRldl9wcml2LT5kZXYpKSk7CisJSTkxNV9TVEFURV9XQVJOX09OKCEo SEFTX1BDSF9JQlgoZGV2X3ByaXYtPmRldikgfHwgSEFTX1BDSF9DUFQoZGV2X3ByaXYtPmRldikp KTsKIAogCXZhbCA9IEk5MTVfUkVBRChQQ0hfRFJFRl9DT05UUk9MKTsKIAllbmFibGVkID0gISEo dmFsICYgKERSRUZfU1NDX1NPVVJDRV9NQVNLIHwgRFJFRl9OT05TUFJFQURfU09VUkNFX01BU0sg fAogCQkJICAgIERSRUZfU1VQRVJTUFJFQURfU09VUkNFX01BU0spKTsKLQlXQVJOKCFlbmFibGVk LCAiUENIIHJlZmNsayBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJlIGFjdGl2ZSBidXQgaXMg ZGlzYWJsZWRcbiIpOworCUk5MTVfU1RBVEVfV0FSTighZW5hYmxlZCwgIlBDSCByZWZjbGsgYXNz ZXJ0aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBhY3RpdmUgYnV0IGlzIGRpc2FibGVkXG4iKTsKIH0K IAogc3RhdGljIHZvaWQgYXNzZXJ0X3BjaF90cmFuc2NvZGVyX2Rpc2FibGVkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTEzNTUsNyArMTM1NSw3IEBAIHN0YXRpYyB2b2lk IGFzc2VydF9wY2hfdHJhbnNjb2Rlcl9kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJcmVnID0gUENIX1RSQU5TQ09ORihwaXBlKTsKIAl2YWwgPSBJOTE1X1JFQUQo cmVnKTsKIAllbmFibGVkID0gISEodmFsICYgVFJBTlNfRU5BQkxFKTsKLQlXQVJOKGVuYWJsZWQs CisJSTkxNV9TVEFURV9XQVJOKGVuYWJsZWQsCiAJICAgICAidHJhbnNjb2RlciBhc3NlcnRpb24g ZmFpbGVkLCBzaG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwK IAkgICAgIHBpcGVfbmFtZShwaXBlKSk7CiB9CkBAIC0xNDM1LDExICsxNDM1LDExIEBAIHN0YXRp YyB2b2lkIGFzc2VydF9wY2hfZHBfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCQkJCSAgIGVudW0gcGlwZSBwaXBlLCBpbnQgcmVnLCB1MzIgcG9ydF9zZWwpCiB7 CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwotCVdBUk4oZHBfcGlwZV9lbmFibGVkKGRldl9w cml2LCBwaXBlLCBwb3J0X3NlbCwgdmFsKSwKKwlJOTE1X1NUQVRFX1dBUk4oZHBfcGlwZV9lbmFi bGVkKGRldl9wcml2LCBwaXBlLCBwb3J0X3NlbCwgdmFsKSwKIAkgICAgICJQQ0ggRFAgKDB4JTA4 eCkgZW5hYmxlZCBvbiB0cmFuc2NvZGVyICVjLCBzaG91bGQgYmUgZGlzYWJsZWRcbiIsCiAJICAg ICByZWcsIHBpcGVfbmFtZShwaXBlKSk7CiAKLQlXQVJOKEhBU19QQ0hfSUJYKGRldl9wcml2LT5k ZXYpICYmICh2YWwgJiBEUF9QT1JUX0VOKSA9PSAwCisJSTkxNV9TVEFURV9XQVJOKEhBU19QQ0hf SUJYKGRldl9wcml2LT5kZXYpICYmICh2YWwgJiBEUF9QT1JUX0VOKSA9PSAwCiAJICAgICAmJiAo dmFsICYgRFBfUElQRUJfU0VMRUNUKSwKIAkgICAgICJJQlggUENIIGRwIHBvcnQgc3RpbGwgdXNp bmcgdHJhbnNjb2RlciBCXG4iKTsKIH0KQEAgLTE0NDgsMTEgKzE0NDgsMTEgQEAgc3RhdGljIHZv aWQgYXNzZXJ0X3BjaF9oZG1pX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJCQkgICAgIGVudW0gcGlwZSBwaXBlLCBpbnQgcmVnKQogewogCXUzMiB2YWwgPSBJ OTE1X1JFQUQocmVnKTsKLQlXQVJOKGhkbWlfcGlwZV9lbmFibGVkKGRldl9wcml2LCBwaXBlLCB2 YWwpLAorCUk5MTVfU1RBVEVfV0FSTihoZG1pX3BpcGVfZW5hYmxlZChkZXZfcHJpdiwgcGlwZSwg dmFsKSwKIAkgICAgICJQQ0ggSERNSSAoMHglMDh4KSBlbmFibGVkIG9uIHRyYW5zY29kZXIgJWMs IHNob3VsZCBiZSBkaXNhYmxlZFxuIiwKIAkgICAgIHJlZywgcGlwZV9uYW1lKHBpcGUpKTsKIAot CVdBUk4oSEFTX1BDSF9JQlgoZGV2X3ByaXYtPmRldikgJiYgKHZhbCAmIFNEVk9fRU5BQkxFKSA9 PSAwCisJSTkxNV9TVEFURV9XQVJOKEhBU19QQ0hfSUJYKGRldl9wcml2LT5kZXYpICYmICh2YWwg JiBTRFZPX0VOQUJMRSkgPT0gMAogCSAgICAgJiYgKHZhbCAmIFNEVk9fUElQRV9CX1NFTEVDVCks CiAJICAgICAiSUJYIFBDSCBoZG1pIHBvcnQgc3RpbGwgdXNpbmcgdHJhbnNjb2RlciBCXG4iKTsK IH0KQEAgLTE0NjksMTMgKzE0NjksMTMgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3BjaF9wb3J0c19k aXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlyZWcgPSBQQ0hf QURQQTsKIAl2YWwgPSBJOTE1X1JFQUQocmVnKTsKLQlXQVJOKGFkcGFfcGlwZV9lbmFibGVkKGRl dl9wcml2LCBwaXBlLCB2YWwpLAorCUk5MTVfU1RBVEVfV0FSTihhZHBhX3BpcGVfZW5hYmxlZChk ZXZfcHJpdiwgcGlwZSwgdmFsKSwKIAkgICAgICJQQ0ggVkdBIGVuYWJsZWQgb24gdHJhbnNjb2Rl ciAlYywgc2hvdWxkIGJlIGRpc2FibGVkXG4iLAogCSAgICAgcGlwZV9uYW1lKHBpcGUpKTsKIAog CXJlZyA9IFBDSF9MVkRTOwogCXZhbCA9IEk5MTVfUkVBRChyZWcpOwotCVdBUk4obHZkc19waXBl X2VuYWJsZWQoZGV2X3ByaXYsIHBpcGUsIHZhbCksCisJSTkxNV9TVEFURV9XQVJOKGx2ZHNfcGlw ZV9lbmFibGVkKGRldl9wcml2LCBwaXBlLCB2YWwpLAogCSAgICAgIlBDSCBMVkRTIGVuYWJsZWQg b24gdHJhbnNjb2RlciAlYywgc2hvdWxkIGJlIGRpc2FibGVkXG4iLAogCSAgICAgcGlwZV9uYW1l KHBpcGUpKTsKIApAQCAtNTM4MiwyNSArNTM4MiwyNSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25u ZWN0b3JfY2hlY2tfc3RhdGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQlp ZiAoY29ubmVjdG9yLT5tc3RfcG9ydCkKIAkJCXJldHVybjsKIAotCQlXQVJOKGNvbm5lY3Rvci0+ YmFzZS5kcG1zID09IERSTV9NT0RFX0RQTVNfT0ZGLAorCQlJOTE1X1NUQVRFX1dBUk4oY29ubmVj dG9yLT5iYXNlLmRwbXMgPT0gRFJNX01PREVfRFBNU19PRkYsCiAJCSAgICAgIndyb25nIGNvbm5l Y3RvciBkcG1zIHN0YXRlXG4iKTsKLQkJV0FSTihjb25uZWN0b3ItPmJhc2UuZW5jb2RlciAhPSAm ZW5jb2Rlci0+YmFzZSwKKwkJSTkxNV9TVEFURV9XQVJOKGNvbm5lY3Rvci0+YmFzZS5lbmNvZGVy ICE9ICZlbmNvZGVyLT5iYXNlLAogCQkgICAgICJhY3RpdmUgY29ubmVjdG9yIG5vdCBsaW5rZWQg dG8gZW5jb2RlclxuIik7CiAKIAkJaWYgKGVuY29kZXIpIHsKLQkJCVdBUk4oIWVuY29kZXItPmNv bm5lY3RvcnNfYWN0aXZlLAorCQkJSTkxNV9TVEFURV9XQVJOKCFlbmNvZGVyLT5jb25uZWN0b3Jz X2FjdGl2ZSwKIAkJCSAgICAgImVuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlIG5vdCBzZXRcbiIp OwogCiAJCQllbmNvZGVyX2VuYWJsZWQgPSBlbmNvZGVyLT5nZXRfaHdfc3RhdGUoZW5jb2Rlciwg JnBpcGUpOwotCQkJV0FSTighZW5jb2Rlcl9lbmFibGVkLCAiZW5jb2RlciBub3QgZW5hYmxlZFxu Iik7Ci0JCQlpZiAoV0FSTl9PTighZW5jb2Rlci0+YmFzZS5jcnRjKSkKKwkJCUk5MTVfU1RBVEVf V0FSTighZW5jb2Rlcl9lbmFibGVkLCAiZW5jb2RlciBub3QgZW5hYmxlZFxuIik7CisJCQlpZiAo STkxNV9TVEFURV9XQVJOX09OKCFlbmNvZGVyLT5iYXNlLmNydGMpKQogCQkJCXJldHVybjsKIAog CQkJY3J0YyA9IGVuY29kZXItPmJhc2UuY3J0YzsKIAotCQkJV0FSTighY3J0Yy0+ZW5hYmxlZCwg ImNydGMgbm90IGVuYWJsZWRcbiIpOwotCQkJV0FSTighdG9faW50ZWxfY3J0YyhjcnRjKS0+YWN0 aXZlLCAiY3J0YyBub3QgYWN0aXZlXG4iKTsKLQkJCVdBUk4ocGlwZSAhPSB0b19pbnRlbF9jcnRj KGNydGMpLT5waXBlLAorCQkJSTkxNV9TVEFURV9XQVJOKCFjcnRjLT5lbmFibGVkLCAiY3J0YyBu b3QgZW5hYmxlZFxuIik7CisJCQlJOTE1X1NUQVRFX1dBUk4oIXRvX2ludGVsX2NydGMoY3J0Yykt PmFjdGl2ZSwgImNydGMgbm90IGFjdGl2ZVxuIik7CisJCQlJOTE1X1NUQVRFX1dBUk4ocGlwZSAh PSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlLAogCQkJICAgICAiZW5jb2RlciBhY3RpdmUgb24g dGhlIHdyb25nIHBpcGVcbiIpOwogCQl9CiAJfQpAQCAtNzgxMCwyNCArNzgxMCwyNCBAQCBzdGF0 aWMgdm9pZCBhc3NlcnRfY2FuX2Rpc2FibGVfbGNwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCiAJZm9yX2VhY2hfaW50ZWxf Y3J0YyhkZXYsIGNydGMpCi0JCVdBUk4oY3J0Yy0+YWN0aXZlLCAiQ1JUQyBmb3IgcGlwZSAlYyBl bmFibGVkXG4iLAorCQlJOTE1X1NUQVRFX1dBUk4oY3J0Yy0+YWN0aXZlLCAiQ1JUQyBmb3IgcGlw ZSAlYyBlbmFibGVkXG4iLAogCQkgICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7CiAKLQlXQVJO KEk5MTVfUkVBRChIU1dfUFdSX1dFTExfRFJJVkVSKSwgIlBvd2VyIHdlbGwgb25cbiIpOwotCVdB Uk4oSTkxNV9SRUFEKFNQTExfQ1RMKSAmIFNQTExfUExMX0VOQUJMRSwgIlNQTEwgZW5hYmxlZFxu Iik7Ci0JV0FSTihJOTE1X1JFQUQoV1JQTExfQ1RMMSkgJiBXUlBMTF9QTExfRU5BQkxFLCAiV1JQ TEwxIGVuYWJsZWRcbiIpOwotCVdBUk4oSTkxNV9SRUFEKFdSUExMX0NUTDIpICYgV1JQTExfUExM X0VOQUJMRSwgIldSUExMMiBlbmFibGVkXG4iKTsKLQlXQVJOKEk5MTVfUkVBRChQQ0hfUFBfU1RB VFVTKSAmIFBQX09OLCAiUGFuZWwgcG93ZXIgb25cbiIpOwotCVdBUk4oSTkxNV9SRUFEKEJMQ19Q V01fQ1BVX0NUTDIpICYgQkxNX1BXTV9FTkFCTEUsCisJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVB RChIU1dfUFdSX1dFTExfRFJJVkVSKSwgIlBvd2VyIHdlbGwgb25cbiIpOworCUk5MTVfU1RBVEVf V0FSTihJOTE1X1JFQUQoU1BMTF9DVEwpICYgU1BMTF9QTExfRU5BQkxFLCAiU1BMTCBlbmFibGVk XG4iKTsKKwlJOTE1X1NUQVRFX1dBUk4oSTkxNV9SRUFEKFdSUExMX0NUTDEpICYgV1JQTExfUExM X0VOQUJMRSwgIldSUExMMSBlbmFibGVkXG4iKTsKKwlJOTE1X1NUQVRFX1dBUk4oSTkxNV9SRUFE KFdSUExMX0NUTDIpICYgV1JQTExfUExMX0VOQUJMRSwgIldSUExMMiBlbmFibGVkXG4iKTsKKwlJ OTE1X1NUQVRFX1dBUk4oSTkxNV9SRUFEKFBDSF9QUF9TVEFUVVMpICYgUFBfT04sICJQYW5lbCBw b3dlciBvblxuIik7CisJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChCTENfUFdNX0NQVV9DVEwy KSAmIEJMTV9QV01fRU5BQkxFLAogCSAgICAgIkNQVSBQV00xIGVuYWJsZWRcbiIpOwogCWlmIChJ U19IQVNXRUxMKGRldikpCi0JCVdBUk4oSTkxNV9SRUFEKEhTV19CTENfUFdNMl9DVEwpICYgQkxN X1BXTV9FTkFCTEUsCisJCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQoSFNXX0JMQ19QV00yX0NU TCkgJiBCTE1fUFdNX0VOQUJMRSwKIAkJICAgICAiQ1BVIFBXTTIgZW5hYmxlZFxuIik7Ci0JV0FS TihJOTE1X1JFQUQoQkxDX1BXTV9QQ0hfQ1RMMSkgJiBCTE1fUENIX1BXTV9FTkFCTEUsCisJSTkx NV9TVEFURV9XQVJOKEk5MTVfUkVBRChCTENfUFdNX1BDSF9DVEwxKSAmIEJMTV9QQ0hfUFdNX0VO QUJMRSwKIAkgICAgICJQQ0ggUFdNMSBlbmFibGVkXG4iKTsKLQlXQVJOKEk5MTVfUkVBRChVVElM X1BJTl9DVEwpICYgVVRJTF9QSU5fRU5BQkxFLAorCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQo VVRJTF9QSU5fQ1RMKSAmIFVUSUxfUElOX0VOQUJMRSwKIAkgICAgICJVdGlsaXR5IHBpbiBlbmFi bGVkXG4iKTsKLQlXQVJOKEk5MTVfUkVBRChQQ0hfR1RDX0NUTCkgJiBQQ0hfR1RDX0VOQUJMRSwg IlBDSCBHVEMgZW5hYmxlZFxuIik7CisJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChQQ0hfR1RD X0NUTCkgJiBQQ0hfR1RDX0VOQUJMRSwgIlBDSCBHVEMgZW5hYmxlZFxuIik7CiAKIAkvKgogCSAq IEluIHRoZW9yeSB3ZSBjYW4gc3RpbGwgbGVhdmUgSVJRcyBlbmFibGVkLCBhcyBsb25nIGFzIG9u bHkgdGhlIEhQRApAQCAtNzgzNSw3ICs3ODM1LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9k aXNhYmxlX2xjcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBnZW4t c3BlY2lmaWMgYW5kIHNpbmNlIHdlIG9ubHkgZGlzYWJsZSBMQ1BMTCBhZnRlciB3ZSBmdWxseSBk aXNhYmxlCiAJICogdGhlIGludGVycnVwdHMsIHRoZSBjaGVjayBiZWxvdyBzaG91bGQgYmUgZW5v dWdoLgogCSAqLwotCVdBUk4oaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSwgIklSUXMgZW5h YmxlZFxuIik7CisJSTkxNV9TVEFURV9XQVJOKGludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdiks ICJJUlFzIGVuYWJsZWRcbiIpOwogfQogCiBzdGF0aWMgdWludDMyX3QgaHN3X3JlYWRfZGNvbXAo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMTA3NDIsNyArMTA3NDIsNyBA QCBjaGVja19jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJICogLT5n ZXRfaHdfc3RhdGUgY2FsbGJhY2tzLiAqLwogCQlpbnRlbF9jb25uZWN0b3JfY2hlY2tfc3RhdGUo Y29ubmVjdG9yKTsKIAotCQlXQVJOKCZjb25uZWN0b3ItPm5ld19lbmNvZGVyLT5iYXNlICE9IGNv bm5lY3Rvci0+YmFzZS5lbmNvZGVyLAorCQlJOTE1X1NUQVRFX1dBUk4oJmNvbm5lY3Rvci0+bmV3 X2VuY29kZXItPmJhc2UgIT0gY29ubmVjdG9yLT5iYXNlLmVuY29kZXIsCiAJCSAgICAgImNvbm5l Y3RvcidzIHN0YWdlZCBlbmNvZGVyIGRvZXNuJ3QgbWF0Y2ggY3VycmVudCBlbmNvZGVyXG4iKTsK IAl9CiB9CkBAIC0xMDc2Miw5ICsxMDc2Miw5IEBAIGNoZWNrX2VuY29kZXJfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJCSAgICAgIGVuY29kZXItPmJhc2UuYmFzZS5pZCwKIAkJCSAg ICAgIGVuY29kZXItPmJhc2UubmFtZSk7CiAKLQkJV0FSTigmZW5jb2Rlci0+bmV3X2NydGMtPmJh c2UgIT0gZW5jb2Rlci0+YmFzZS5jcnRjLAorCQlJOTE1X1NUQVRFX1dBUk4oJmVuY29kZXItPm5l d19jcnRjLT5iYXNlICE9IGVuY29kZXItPmJhc2UuY3J0YywKIAkJICAgICAiZW5jb2RlcidzIHN0 YWdlIGNydGMgZG9lc24ndCBtYXRjaCBjdXJyZW50IGNydGNcbiIpOwotCQlXQVJOKGVuY29kZXIt PmNvbm5lY3RvcnNfYWN0aXZlICYmICFlbmNvZGVyLT5iYXNlLmNydGMsCisJCUk5MTVfU1RBVEVf V0FSTihlbmNvZGVyLT5jb25uZWN0b3JzX2FjdGl2ZSAmJiAhZW5jb2Rlci0+YmFzZS5jcnRjLAog CQkgICAgICJlbmNvZGVyJ3MgYWN0aXZlX2Nvbm5lY3RvcnMgc2V0LCBidXQgbm8gY3J0Y1xuIik7 CiAKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNv bm5lY3Rvcl9saXN0LApAQCAtMTA3ODMsMTkgKzEwNzgzLDE5IEBAIGNoZWNrX2VuY29kZXJfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJaWYgKCFlbmFibGVkICYmIGVuY29kZXItPmJh c2UuZW5jb2Rlcl90eXBlID09IERSTV9NT0RFX0VOQ09ERVJfRFBNU1QpCiAJCQljb250aW51ZTsK IAotCQlXQVJOKCEhZW5jb2Rlci0+YmFzZS5jcnRjICE9IGVuYWJsZWQsCisJCUk5MTVfU1RBVEVf V0FSTighIWVuY29kZXItPmJhc2UuY3J0YyAhPSBlbmFibGVkLAogCQkgICAgICJlbmNvZGVyJ3Mg ZW5hYmxlZCBzdGF0ZSBtaXNtYXRjaCAiCiAJCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkp XG4iLAogCQkgICAgICEhZW5jb2Rlci0+YmFzZS5jcnRjLCBlbmFibGVkKTsKLQkJV0FSTihhY3Rp dmUgJiYgIWVuY29kZXItPmJhc2UuY3J0YywKKwkJSTkxNV9TVEFURV9XQVJOKGFjdGl2ZSAmJiAh ZW5jb2Rlci0+YmFzZS5jcnRjLAogCQkgICAgICJhY3RpdmUgZW5jb2RlciB3aXRoIG5vIGNydGNc biIpOwogCi0JCVdBUk4oZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUgIT0gYWN0aXZlLAorCQlJ OTE1X1NUQVRFX1dBUk4oZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUgIT0gYWN0aXZlLAogCQkg ICAgICJlbmNvZGVyJ3MgY29tcHV0ZWQgYWN0aXZlIHN0YXRlIGRvZXNuJ3QgbWF0Y2ggdHJhY2tl ZCBhY3RpdmUgc3RhdGUgIgogCQkgICAgICIoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwgYWN0 aXZlLCBlbmNvZGVyLT5jb25uZWN0b3JzX2FjdGl2ZSk7CiAKIAkJYWN0aXZlID0gZW5jb2Rlci0+ Z2V0X2h3X3N0YXRlKGVuY29kZXIsICZwaXBlKTsKLQkJV0FSTihhY3RpdmUgIT0gZW5jb2Rlci0+ Y29ubmVjdG9yc19hY3RpdmUsCisJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgIT0gZW5jb2Rlci0+ Y29ubmVjdG9yc19hY3RpdmUsCiAJCSAgICAgImVuY29kZXIncyBodyBzdGF0ZSBkb2Vzbid0IG1h dGNoIHN3IHRyYWNraW5nICIKIAkJICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsCiAJ CSAgICAgZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUsIGFjdGl2ZSk7CkBAIC0xMDgwNCw3ICsx MDgwNCw3IEBAIGNoZWNrX2VuY29kZXJfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJ CWNvbnRpbnVlOwogCiAJCXRyYWNrZWRfcGlwZSA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFz ZS5jcnRjKS0+cGlwZTsKLQkJV0FSTihhY3RpdmUgJiYgcGlwZSAhPSB0cmFja2VkX3BpcGUsCisJ CUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgJiYgcGlwZSAhPSB0cmFja2VkX3BpcGUsCiAJCSAgICAg ImFjdGl2ZSBlbmNvZGVyJ3MgcGlwZSBkb2Vzbid0IG1hdGNoIgogCQkgICAgICIoZXhwZWN0ZWQg JWksIGZvdW5kICVpKVxuIiwKIAkJICAgICB0cmFja2VkX3BpcGUsIHBpcGUpOwpAQCAtMTA4Mjks NyArMTA4MjksNyBAQCBjaGVja19jcnRjX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ CURSTV9ERUJVR19LTVMoIltDUlRDOiVkXVxuIiwKIAkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5p ZCk7CiAKLQkJV0FSTihjcnRjLT5hY3RpdmUgJiYgIWNydGMtPmJhc2UuZW5hYmxlZCwKKwkJSTkx NV9TVEFURV9XQVJOKGNydGMtPmFjdGl2ZSAmJiAhY3J0Yy0+YmFzZS5lbmFibGVkLAogCQkgICAg ICJhY3RpdmUgY3J0YywgYnV0IG5vdCBlbmFibGVkIGluIHN3IHRyYWNraW5nXG4iKTsKIAogCQlm b3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRldiwgZW5jb2RlcikgewpAQCAtMTA4NDAsMTAgKzEwODQw LDEwIEBAIGNoZWNrX2NydGNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCQlhY3Rp dmUgPSB0cnVlOwogCQl9CiAKLQkJV0FSTihhY3RpdmUgIT0gY3J0Yy0+YWN0aXZlLAorCQlJOTE1 X1NUQVRFX1dBUk4oYWN0aXZlICE9IGNydGMtPmFjdGl2ZSwKIAkJICAgICAiY3J0YydzIGNvbXB1 dGVkIGFjdGl2ZSBzdGF0ZSBkb2Vzbid0IG1hdGNoIHRyYWNrZWQgYWN0aXZlIHN0YXRlICIKIAkJ ICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIGFjdGl2ZSwgY3J0Yy0+YWN0aXZlKTsK LQkJV0FSTihlbmFibGVkICE9IGNydGMtPmJhc2UuZW5hYmxlZCwKKwkJSTkxNV9TVEFURV9XQVJO KGVuYWJsZWQgIT0gY3J0Yy0+YmFzZS5lbmFibGVkLAogCQkgICAgICJjcnRjJ3MgY29tcHV0ZWQg ZW5hYmxlZCBzdGF0ZSBkb2Vzbid0IG1hdGNoIHRyYWNrZWQgZW5hYmxlZCBzdGF0ZSAiCiAJCSAg ICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBlbmFibGVkLCBjcnRjLT5iYXNlLmVuYWJs ZWQpOwogCkBAIC0xMDg2MywxMyArMTA4NjMsMTMgQEAgY2hlY2tfY3J0Y19zdGF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCQkJCWVuY29kZXItPmdldF9jb25maWcoZW5jb2RlciwgJnBpcGVf Y29uZmlnKTsKIAkJfQogCi0JCVdBUk4oY3J0Yy0+YWN0aXZlICE9IGFjdGl2ZSwKKwkJSTkxNV9T VEFURV9XQVJOKGNydGMtPmFjdGl2ZSAhPSBhY3RpdmUsCiAJCSAgICAgImNydGMgYWN0aXZlIHN0 YXRlIGRvZXNuJ3QgbWF0Y2ggd2l0aCBodyBzdGF0ZSAiCiAJCSAgICAgIihleHBlY3RlZCAlaSwg Zm91bmQgJWkpXG4iLCBjcnRjLT5hY3RpdmUsIGFjdGl2ZSk7CiAKIAkJaWYgKGFjdGl2ZSAmJgog CQkgICAgIWludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoZGV2LCAmY3J0Yy0+Y29uZmlnLCAmcGlw ZV9jb25maWcpKSB7Ci0JCQlXQVJOKDEsICJwaXBlIHN0YXRlIGRvZXNuJ3QgbWF0Y2ghXG4iKTsK KwkJCUk5MTVfU1RBVEVfV0FSTigxLCAicGlwZSBzdGF0ZSBkb2Vzbid0IG1hdGNoIVxuIik7CiAJ CQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKGNydGMsICZwaXBlX2NvbmZpZywKIAkJCQkJICAgICAg ICJbaHcgc3RhdGVdIik7CiAJCQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKGNydGMsICZjcnRjLT5j b25maWcsCkBAIC0xMDg5NywxNCArMTA4OTcsMTQgQEAgY2hlY2tfc2hhcmVkX2RwbGxfc3RhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCQlhY3RpdmUgPSBwbGwtPmdldF9od19zdGF0ZShk ZXZfcHJpdiwgcGxsLCAmZHBsbF9od19zdGF0ZSk7CiAKLQkJV0FSTihwbGwtPmFjdGl2ZSA+IGh3 ZWlnaHQzMihwbGwtPmNvbmZpZy5jcnRjX21hc2spLAorCQlJOTE1X1NUQVRFX1dBUk4ocGxsLT5h Y3RpdmUgPiBod2VpZ2h0MzIocGxsLT5jb25maWcuY3J0Y19tYXNrKSwKIAkJICAgICAibW9yZSBh Y3RpdmUgcGxsIHVzZXJzIHRoYW4gcmVmZXJlbmNlczogJWkgdnMgJWlcbiIsCiAJCSAgICAgcGxs LT5hY3RpdmUsIGh3ZWlnaHQzMihwbGwtPmNvbmZpZy5jcnRjX21hc2spKTsKLQkJV0FSTihwbGwt PmFjdGl2ZSAmJiAhcGxsLT5vbiwKKwkJSTkxNV9TVEFURV9XQVJOKHBsbC0+YWN0aXZlICYmICFw bGwtPm9uLAogCQkgICAgICJwbGwgaW4gYWN0aXZlIHVzZSBidXQgbm90IG9uIGluIHN3IHRyYWNr aW5nXG4iKTsKLQkJV0FSTihwbGwtPm9uICYmICFwbGwtPmFjdGl2ZSwKKwkJSTkxNV9TVEFURV9X QVJOKHBsbC0+b24gJiYgIXBsbC0+YWN0aXZlLAogCQkgICAgICJwbGwgaW4gb24gYnV0IG5vdCBv biBpbiB1c2UgaW4gc3cgdHJhY2tpbmdcbiIpOwotCQlXQVJOKHBsbC0+b24gIT0gYWN0aXZlLAor CQlJOTE1X1NUQVRFX1dBUk4ocGxsLT5vbiAhPSBhY3RpdmUsCiAJCSAgICAgInBsbCBvbiBzdGF0 ZSBtaXNtYXRjaCAoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwKIAkJICAgICBwbGwtPm9uLCBh Y3RpdmUpOwogCkBAIC0xMDkxNCwxNCArMTA5MTQsMTQgQEAgY2hlY2tfc2hhcmVkX2RwbGxfc3Rh dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCWlmIChjcnRjLT5hY3RpdmUgJiYgaW50ZWxf Y3J0Y190b19zaGFyZWRfZHBsbChjcnRjKSA9PSBwbGwpCiAJCQkJYWN0aXZlX2NydGNzKys7CiAJ CX0KLQkJV0FSTihwbGwtPmFjdGl2ZSAhPSBhY3RpdmVfY3J0Y3MsCisJCUk5MTVfU1RBVEVfV0FS TihwbGwtPmFjdGl2ZSAhPSBhY3RpdmVfY3J0Y3MsCiAJCSAgICAgInBsbCBhY3RpdmUgY3J0Y3Mg bWlzbWF0Y2ggKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsCiAJCSAgICAgcGxsLT5hY3RpdmUs IGFjdGl2ZV9jcnRjcyk7Ci0JCVdBUk4oaHdlaWdodDMyKHBsbC0+Y29uZmlnLmNydGNfbWFzaykg IT0gZW5hYmxlZF9jcnRjcywKKwkJSTkxNV9TVEFURV9XQVJOKGh3ZWlnaHQzMihwbGwtPmNvbmZp Zy5jcnRjX21hc2spICE9IGVuYWJsZWRfY3J0Y3MsCiAJCSAgICAgInBsbCBlbmFibGVkIGNydGNz IG1pc21hdGNoIChleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLAogCQkgICAgIGh3ZWlnaHQzMihw bGwtPmNvbmZpZy5jcnRjX21hc2spLCBlbmFibGVkX2NydGNzKTsKIAotCQlXQVJOKHBsbC0+b24g JiYgbWVtY21wKCZwbGwtPmNvbmZpZy5od19zdGF0ZSwgJmRwbGxfaHdfc3RhdGUsCisJCUk5MTVf U1RBVEVfV0FSTihwbGwtPm9uICYmIG1lbWNtcCgmcGxsLT5jb25maWcuaHdfc3RhdGUsICZkcGxs X2h3X3N0YXRlLAogCQkJCSAgICAgICBzaXplb2YoZHBsbF9od19zdGF0ZSkpLAogCQkgICAgICJw bGwgaHcgc3RhdGUgbWlzbWF0Y2hcbiIpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4 IDVjZWNjMjAuLjg0MWUzZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMTU1OCw3ICsx NTU4LDcgQEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCiAJdmRkID0gZWRwX3BhbmVsX3ZkZF9vbihpbnRlbF9kcCk7CiAJcHBzX3VubG9jayhp bnRlbF9kcCk7CiAKLQlXQVJOKCF2ZGQsICJlRFAgcG9ydCAlYyBWREQgYWxyZWFkeSByZXF1ZXN0 ZWQgb25cbiIsCisJSTkxNV9TVEFURV9XQVJOKCF2ZGQsICJlRFAgcG9ydCAlYyBWREQgYWxyZWFk eSByZXF1ZXN0ZWQgb25cbiIsCiAJICAgICBwb3J0X25hbWUoZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApLT5wb3J0KSk7CiB9CiAKQEAgLTE2NDIsNyArMTY0Miw3IEBAIHN0YXRpYyB2b2lkIGVkcF9w YW5lbF92ZGRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgc3luYykKIAlpZiAo IWlzX2VkcChpbnRlbF9kcCkpCiAJCXJldHVybjsKIAotCVdBUk4oIWludGVsX2RwLT53YW50X3Bh bmVsX3ZkZCwgImVEUCBwb3J0ICVjIFZERCBub3QgZm9yY2VkIG9uIiwKKwlJOTE1X1NUQVRFX1dB Uk4oIWludGVsX2RwLT53YW50X3BhbmVsX3ZkZCwgImVEUCBwb3J0ICVjIFZERCBub3QgZm9yY2Vk IG9uIiwKIAkgICAgIHBvcnRfbmFtZShkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQpKTsK IAogCWludGVsX2RwLT53YW50X3BhbmVsX3ZkZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcnVudGltZV9wbS5jCmluZGV4IGY1YTc4ZDUuLjQ2OTA5OTM1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBAIC02MzMsNyArNjMzLDcgQEAgc3RhdGljIHZv aWQgY2hlY2tfcG93ZXJfd2VsbF9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJcmV0dXJuOwogCiBtaXNtYXRjaDoKLQlXQVJOKDEsICJzdGF0ZSBtaXNtYXRjaCBmb3Ig JyVzJyAoYWx3YXlzX29uICVkIGh3IHN0YXRlICVkIHVzZS1jb3VudCAlZCBkaXNhYmxlX3Bvd2Vy X3dlbGwgJWRcbiIsCisJSTkxNV9TVEFURV9XQVJOKDEsICJzdGF0ZSBtaXNtYXRjaCBmb3IgJyVz JyAoYWx3YXlzX29uICVkIGh3IHN0YXRlICVkIHVzZS1jb3VudCAlZCBkaXNhYmxlX3Bvd2VyX3dl bGwgJWRcbiIsCiAJCSAgcG93ZXJfd2VsbC0+bmFtZSwgcG93ZXJfd2VsbC0+YWx3YXlzX29uLCBl bmFibGVkLAogCQkgIHBvd2VyX3dlbGwtPmNvdW50LCBpOTE1LmRpc2FibGVfcG93ZXJfd2VsbCk7 CiB9Ci0tIAoyLjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK