From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King Subject: [PATCH 11/17] drm/armada: use old_state for update tracking in atomic_update() Date: Tue, 10 Jul 2018 11:33:05 +0100 Message-ID: References: <20180710103106.GI17271@n2100.armlinux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:3201:214:fdff:fe10:1be6]) by gabe.freedesktop.org (Postfix) with ESMTPS id 26EA16E8FE for ; Tue, 10 Jul 2018 10:33:11 +0000 (UTC) In-Reply-To: <20180710103106.GI17271@n2100.armlinux.org.uk> Content-Disposition: inline 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 Cc: David Airlie List-Id: dri-devel@lists.freedesktop.org UmF0aGVyIHRoYW4gdHJhY2tpbmcgdGhlIHJlZ2lzdGVyIHN0YXRlLCB3ZSBjYW4gbm93IGNoZWNr IHRoZSBwcmV2aW91cwpzdGF0ZSBhbmQgZGVjaWRlIHdoaWNoIHJlZ2lzdGVycyBuZWVkIHVwZGF0 aW5nIGZyb20gdGhhdCBzaW5jZSB0aGUgb2xkCnBsYW5lIHN0YXRlIGluZGljYXRlcyB0aGUgcHJl dmlvdXMgc3RhdGUgd2hpY2ggd2FzIHByb2dyYW1tZWQgaW50byB0aGUKaGFyZHdhcmUuCgpTaWdu ZWQtb2ZmLWJ5OiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYyAgICB8IDExNiArKysrKysrKysr LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfY3J0Yy5oICAgIHwgIDEy IC0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9vdmVybGF5LmMgfCAxODkgKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlv bnMoKyksIDE3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJt YWRhL2FybWFkYV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMK aW5kZXggMDU2NjczOTExODE4Li4xNDMzOWQ1YmVkMTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2Fy bWFkYV9jcnRjLmMKQEAgLTExMTQsNjQgKzExMTQsMTQgQEAgaW50IGFybWFkYV9kcm1fcGxhbmVf YXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXJldHVybiAwOwogfQogCi1z dGF0aWMgdW5zaWduZWQgaW50IGFybWFkYV9kcm1fcHJpbWFyeV91cGRhdGVfc3RhdGUoCi0Jc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUsIHN0cnVjdCBhcm1hZGFfcmVncyAqcmVncykKLXsK LQlzdHJ1Y3QgYXJtYWRhX3BsYW5lICpkcGxhbmUgPSBkcm1fdG9fYXJtYWRhX3BsYW5lKHN0YXRl LT5wbGFuZSk7Ci0Jc3RydWN0IGFybWFkYV9jcnRjICpkY3J0YyA9IGRybV90b19hcm1hZGFfY3J0 YyhzdGF0ZS0+Y3J0Yyk7Ci0Jc3RydWN0IGFybWFkYV9mcmFtZWJ1ZmZlciAqZGZiID0gZHJtX2Zi X3RvX2FybWFkYV9mYihzdGF0ZS0+ZmIpOwotCWJvb2wgd2FzX2Rpc2FibGVkOwotCXVuc2lnbmVk IGludCBpZHggPSAwOwotCXUzMiB2YWw7Ci0KLQl2YWwgPSBDRkdfR1JBX0ZNVChkZmItPmZtdCkg fCBDRkdfR1JBX01PRChkZmItPm1vZCk7Ci0JaWYgKGRmYi0+Zm10ID4gQ0ZHXzQyMCkKLQkJdmFs IHw9IENGR19QQUxFVFRFX0VOQTsKLQlpZiAoc3RhdGUtPnZpc2libGUpCi0JCXZhbCB8PSBDRkdf R1JBX0VOQTsKLQlpZiAoZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5zcmMpID4+IDE2ICE9IGRybV9y ZWN0X3dpZHRoKCZzdGF0ZS0+ZHN0KSkKLQkJdmFsIHw9IENGR19HUkFfSFNNT09USDsKLQlpZiAo ZGNydGMtPmludGVybGFjZWQpCi0JCXZhbCB8PSBDRkdfR1JBX0ZUT0dHTEU7Ci0KLQl3YXNfZGlz YWJsZWQgPSAhKGRwbGFuZS0+c3RhdGUuY3RybDAgJiBDRkdfR1JBX0VOQSk7Ci0JaWYgKHdhc19k aXNhYmxlZCkKLQkJYXJtYWRhX3JlZ19xdWV1ZV9tb2QocmVncywgaWR4LAotCQkJCSAgICAgMCwg Q0ZHX1BEV042NHg2NiwgTENEX1NQVV9TUkFNX1BBUkExKTsKLQotCWRwbGFuZS0+c3RhdGUuY3Ry bDAgPSB2YWw7Ci0JZHBsYW5lLT5zdGF0ZS5zcmNfaHcgPSBhcm1hZGFfcmVjdF9od19mcCgmc3Rh dGUtPnNyYyk7Ci0JZHBsYW5lLT5zdGF0ZS5kc3RfaHcgPSBhcm1hZGFfcmVjdF9odygmc3RhdGUt PmRzdCk7Ci0JZHBsYW5lLT5zdGF0ZS5kc3RfeXggPSBhcm1hZGFfcmVjdF95eCgmc3RhdGUtPmRz dCk7Ci0KLQlpZHggKz0gYXJtYWRhX2RybV9jcnRjX2NhbGNfZmIoJmRmYi0+ZmIsIHN0YXRlLT5z cmMueDEgPj4gMTYsCi0JCQkJICAgICAgIHN0YXRlLT5zcmMueTEgPj4gMTYsIHJlZ3MgKyBpZHgs Ci0JCQkJICAgICAgIGRjcnRjLT5pbnRlcmxhY2VkKTsKLQlhcm1hZGFfcmVnX3F1ZXVlX3NldChy ZWdzLCBpZHgsIGRwbGFuZS0+c3RhdGUuZHN0X3l4LAotCQkJICAgICBMQ0RfU1BVX0dSQV9PVlNB X0hQWExfVkxOKTsKLQlhcm1hZGFfcmVnX3F1ZXVlX3NldChyZWdzLCBpZHgsIGRwbGFuZS0+c3Rh dGUuc3JjX2h3LAotCQkJICAgICBMQ0RfU1BVX0dSQV9IUFhMX1ZMTik7Ci0JYXJtYWRhX3JlZ19x dWV1ZV9zZXQocmVncywgaWR4LCBkcGxhbmUtPnN0YXRlLmRzdF9odywKLQkJCSAgICAgTENEX1NQ VV9HWk1fSFBYTF9WTE4pOwotCWFybWFkYV9yZWdfcXVldWVfbW9kKHJlZ3MsIGlkeCwgZHBsYW5l LT5zdGF0ZS5jdHJsMCwgQ0ZHX0dSQUZPUk1BVCB8Ci0JCQkgICAgIENGR19HUkFfTU9EKENGR19T V0FQUkIgfCBDRkdfU1dBUFVWIHwKLQkJCQkJIENGR19TV0FQWVUgfCBDRkdfWVVWMlJHQikgfAot CQkJICAgICBDRkdfUEFMRVRURV9FTkEgfCBDRkdfR1JBX0ZUT0dHTEUgfAotCQkJICAgICBDRkdf R1JBX0hTTU9PVEggfCBDRkdfR1JBX0VOQSwKLQkJCSAgICAgTENEX1NQVV9ETUFfQ1RSTDApOwot Ci0JZHBsYW5lLT5zdGF0ZS52c3luY191cGRhdGUgPSAhd2FzX2Rpc2FibGVkOwotCWRwbGFuZS0+ c3RhdGUuY2hhbmdlZCA9IHRydWU7Ci0KLQlyZXR1cm4gaWR4OwotfQotCiBzdGF0aWMgdm9pZCBh cm1hZGFfZHJtX3ByaW1hcnlfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCiB7CiAJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7CiAJc3RydWN0IGFybWFkYV9jcnRj ICpkY3J0YzsKIAlzdHJ1Y3QgYXJtYWRhX3JlZ3MgKnJlZ3M7CisJdTMyIGNmZywgY2ZnX21hc2ss IHZhbDsKKwl1bnNpZ25lZCBpbnQgaWR4OwogCiAJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVz XVxuIiwgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lKTsKIApAQCAtMTE4NywxMyArMTEzNyw2 OSBAQCBzdGF0aWMgdm9pZCBhcm1hZGFfZHJtX3ByaW1hcnlfcGxhbmVfYXRvbWljX3VwZGF0ZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlkY3J0YyA9IGRybV90b19hcm1hZGFfY3J0YyhzdGF0 ZS0+Y3J0Yyk7CiAJcmVncyA9IGRjcnRjLT5yZWdzICsgZGNydGMtPnJlZ3NfaWR4OwogCi0JZGNy dGMtPnJlZ3NfaWR4ICs9IGFybWFkYV9kcm1fcHJpbWFyeV91cGRhdGVfc3RhdGUoc3RhdGUsIHJl Z3MpOworCWlkeCA9IDA7CisJaWYgKCFvbGRfc3RhdGUtPnZpc2libGUgJiYgc3RhdGUtPnZpc2li bGUpIHsKKwkJdmFsID0gQ0ZHX1BEV042NHg2NjsKKwkJaWYgKGRybV9mYl90b19hcm1hZGFfZmIo c3RhdGUtPmZiKS0+Zm10ID4gQ0ZHXzQyMCkKKwkJCXZhbCB8PSBDRkdfUERXTjI1NngyNDsKKwkJ YXJtYWRhX3JlZ19xdWV1ZV9tb2QocmVncywgaWR4LCAwLCB2YWwsIExDRF9TUFVfU1JBTV9QQVJB MSk7CisJfQorCXZhbCA9IGFybWFkYV9yZWN0X2h3X2ZwKCZzdGF0ZS0+c3JjKTsKKwlpZiAoYXJt YWRhX3JlY3RfaHdfZnAoJm9sZF9zdGF0ZS0+c3JjKSAhPSB2YWwpCisJCWFybWFkYV9yZWdfcXVl dWVfc2V0KHJlZ3MsIGlkeCwgdmFsLCBMQ0RfU1BVX0dSQV9IUFhMX1ZMTik7CisJdmFsID0gYXJt YWRhX3JlY3RfeXgoJnN0YXRlLT5kc3QpOworCWlmIChhcm1hZGFfcmVjdF95eCgmb2xkX3N0YXRl LT5kc3QpICE9IHZhbCkKKwkJYXJtYWRhX3JlZ19xdWV1ZV9zZXQocmVncywgaWR4LCB2YWwsIExD RF9TUFVfR1JBX09WU0FfSFBYTF9WTE4pOworCXZhbCA9IGFybWFkYV9yZWN0X2h3KCZzdGF0ZS0+ ZHN0KTsKKwlpZiAoYXJtYWRhX3JlY3RfaHcoJm9sZF9zdGF0ZS0+ZHN0KSAhPSB2YWwpCisJCWFy bWFkYV9yZWdfcXVldWVfc2V0KHJlZ3MsIGlkeCwgdmFsLCBMQ0RfU1BVX0daTV9IUFhMX1ZMTik7 CisJaWYgKG9sZF9zdGF0ZS0+c3JjLngxICE9IHN0YXRlLT5zcmMueDEgfHwKKwkgICAgb2xkX3N0 YXRlLT5zcmMueTEgIT0gc3RhdGUtPnNyYy55MSB8fAorCSAgICBvbGRfc3RhdGUtPmZiICE9IHN0 YXRlLT5mYikgeworCQlpZHggKz0gYXJtYWRhX2RybV9jcnRjX2NhbGNfZmIoc3RhdGUtPmZiLAor CQkJCQkgICAgICAgc3RhdGUtPnNyYy54MSA+PiAxNiwKKwkJCQkJICAgICAgIHN0YXRlLT5zcmMu eTEgPj4gMTYsCisJCQkJCSAgICAgICByZWdzICsgaWR4LAorCQkJCQkgICAgICAgZGNydGMtPmlu dGVybGFjZWQpOworCX0KKwlpZiAob2xkX3N0YXRlLT5mYiAhPSBzdGF0ZS0+ZmIpIHsKKwkJY2Zn ID0gQ0ZHX0dSQV9GTVQoZHJtX2ZiX3RvX2FybWFkYV9mYihzdGF0ZS0+ZmIpLT5mbXQpIHwKKwkJ ICAgICAgQ0ZHX0dSQV9NT0QoZHJtX2ZiX3RvX2FybWFkYV9mYihzdGF0ZS0+ZmIpLT5tb2QpOwor CQlpZiAoZHJtX2ZiX3RvX2FybWFkYV9mYihzdGF0ZS0+ZmIpLT5mbXQgPiBDRkdfNDIwKQorCQkJ Y2ZnIHw9IENGR19QQUxFVFRFX0VOQTsKKwkJaWYgKHN0YXRlLT52aXNpYmxlKQorCQkJY2ZnIHw9 IENGR19HUkFfRU5BOworCQlpZiAoZGNydGMtPmludGVybGFjZWQpCisJCQljZmcgfD0gQ0ZHX0dS QV9GVE9HR0xFOworCQljZmdfbWFzayA9IENGR19HUkFGT1JNQVQgfAorCQkJICAgQ0ZHX0dSQV9N T0QoQ0ZHX1NXQVBSQiB8IENGR19TV0FQVVYgfAorCQkJCSAgICAgICBDRkdfU1dBUFlVIHwgQ0ZH X1lVVjJSR0IpIHwKKwkJCSAgIENGR19QQUxFVFRFX0VOQSB8IENGR19HUkFfRlRPR0dMRSB8CisJ CQkgICBDRkdfR1JBX0VOQTsKKwl9IGVsc2UgaWYgKG9sZF9zdGF0ZS0+dmlzaWJsZSAhPSBzdGF0 ZS0+dmlzaWJsZSkgeworCQljZmcgPSBzdGF0ZS0+dmlzaWJsZSA/IENGR19HUkFfRU5BIDogMDsK KwkJY2ZnX21hc2sgPSBDRkdfR1JBX0VOQTsKKwl9IGVsc2UgeworCQljZmcgPSBjZmdfbWFzayA9 IDA7CisJfQorCWlmIChkcm1fcmVjdF93aWR0aCgmb2xkX3N0YXRlLT5zcmMpICE9IGRybV9yZWN0 X3dpZHRoKCZzdGF0ZS0+c3JjKSB8fAorCSAgICBkcm1fcmVjdF93aWR0aCgmb2xkX3N0YXRlLT5k c3QpICE9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+ZHN0KSkgeworCQljZmdfbWFzayB8PSBDRkdf R1JBX0hTTU9PVEg7CisJCWlmIChkcm1fcmVjdF93aWR0aCgmc3RhdGUtPnNyYykgPj4gMTYgIT0K KwkJICAgIGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+ZHN0KSkKKwkJCWNmZyB8PSBDRkdfR1JBX0hT TU9PVEg7CisJfQorCisJaWYgKGNmZ19tYXNrKQorCQlhcm1hZGFfcmVnX3F1ZXVlX21vZChyZWdz LCBpZHgsIGNmZywgY2ZnX21hc2ssCisJCQkJICAgICBMQ0RfU1BVX0RNQV9DVFJMMCk7CisKKwlk Y3J0Yy0+cmVnc19pZHggKz0gaWR4OwogfQogCiBzdGF0aWMgdm9pZCBhcm1hZGFfZHJtX3ByaW1h cnlfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQogewotCXN0cnVjdCBhcm1hZGFfcGxhbmUgKmRw bGFuZSA9IGRybV90b19hcm1hZGFfcGxhbmUocGxhbmUpOwogCXN0cnVjdCBhcm1hZGFfY3J0YyAq ZGNydGM7CiAJc3RydWN0IGFybWFkYV9yZWdzICpyZWdzOwogCXVuc2lnbmVkIGludCBpZHggPSAw OwpAQCAtMTIwOCw4ICsxMjE0LDYgQEAgc3RhdGljIHZvaWQgYXJtYWRhX2RybV9wcmltYXJ5X3Bs YW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlvbGRfc3RhdGUt PmNydGMtPmJhc2UuaWQsIG9sZF9zdGF0ZS0+Y3J0Yy0+bmFtZSwKIAkJb2xkX3N0YXRlLT5mYi0+ YmFzZS5pZCk7CiAKLQlkcGxhbmUtPnN0YXRlLmN0cmwwICY9IH5DRkdfR1JBX0VOQTsKLQogCWRj cnRjID0gZHJtX3RvX2FybWFkYV9jcnRjKG9sZF9zdGF0ZS0+Y3J0Yyk7CiAJcmVncyA9IGRjcnRj LT5yZWdzICsgZGNydGMtPnJlZ3NfaWR4OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YXJtYWRhL2FybWFkYV9jcnRjLmggYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRj LmgKaW5kZXggNGRhNTZhMTcxYjEzLi43OWFjMGRiMDQ3YzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRh L2FybWFkYV9jcnRjLmgKQEAgLTQ1LDI0ICs0NSwxMiBAQCBzdHJ1Y3QgYXJtYWRhX3BsYW5lX3dv cmsgewogCXN0cnVjdCBhcm1hZGFfcmVncyByZWdzWzE0XTsKIH07CiAKLXN0cnVjdCBhcm1hZGFf cGxhbmVfc3RhdGUgewotCXUxNiBzcmNfeDsKLQl1MTYgc3JjX3k7Ci0JdTMyIHNyY19odzsKLQl1 MzIgZHN0X2h3OwotCXUzMiBkc3RfeXg7Ci0JdTMyIGN0cmwwOwotCWJvb2wgY2hhbmdlZDsKLQli b29sIHZzeW5jX3VwZGF0ZTsKLX07Ci0KIHN0cnVjdCBhcm1hZGFfcGxhbmUgewogCXN0cnVjdCBk cm1fcGxhbmUJYmFzZTsKIAl3YWl0X3F1ZXVlX2hlYWRfdAlmcmFtZV93YWl0OwogCWJvb2wJCQlu ZXh0X3dvcms7CiAJc3RydWN0IGFybWFkYV9wbGFuZV93b3JrIHdvcmtzWzJdOwogCXN0cnVjdCBh cm1hZGFfcGxhbmVfd29yayAqd29yazsKLQlzdHJ1Y3QgYXJtYWRhX3BsYW5lX3N0YXRlIHN0YXRl OwogfTsKICNkZWZpbmUgZHJtX3RvX2FybWFkYV9wbGFuZShwKSBjb250YWluZXJfb2YocCwgc3Ry dWN0IGFybWFkYV9wbGFuZSwgYmFzZSkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Fy bWFkYS9hcm1hZGFfb3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfb3Zl cmxheS5jCmluZGV4IGJlOWRlNWQ4NWY5Zi4uYWEyYTEyYWVjM2NjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FybWFkYS9hcm1hZGFfb3ZlcmxheS5jCkBAIC0zNSw2ICszNSw3IEBAIHN0cnVjdCBhcm1hZGFf b3ZsX3BsYW5lX3Byb3BlcnRpZXMgewogCiBzdHJ1Y3QgYXJtYWRhX292bF9wbGFuZSB7CiAJc3Ry dWN0IGFybWFkYV9wbGFuZSBiYXNlOworCWJvb2wgd2FpdF92Ymxhbms7CiAJc3RydWN0IGFybWFk YV9vdmxfcGxhbmVfcHJvcGVydGllcyBwcm9wOwogfTsKICNkZWZpbmUgZHJtX3RvX2FybWFkYV9v dmxfcGxhbmUocCkgXApAQCAtODAsNTIgKzgxLDU1IEBAIHN0YXRpYyB2b2lkIGFybWFkYV9vdmxf cGxhbmVfd29yayhzdHJ1Y3QgYXJtYWRhX2NydGMgKmRjcnRjLAogCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmRjcnRjLT5pcnFfbG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50 IGFybWFkYV9vdmxfcGxhbmVfdXBkYXRlX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0 YXRlLAotCXN0cnVjdCBhcm1hZGFfcmVncyAqcmVncykKK3N0YXRpYyB2b2lkIGFybWFkYV9kcm1f b3ZlcmxheV9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCXN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKLQlzdHJ1Y3QgYXJtYWRhX292bF9w bGFuZSAqZHBsYW5lID0gZHJtX3RvX2FybWFkYV9vdmxfcGxhbmUoc3RhdGUtPnBsYW5lKTsKLQlz dHJ1Y3QgYXJtYWRhX2ZyYW1lYnVmZmVyICpkZmIgPSBkcm1fZmJfdG9fYXJtYWRhX2ZiKHN0YXRl LT5mYik7Ci0JY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqZm9ybWF0OwotCXVuc2lnbmVk IGludCBpZHggPSAwOwotCWJvb2wgZmJfY2hhbmdlZDsKLQl1MzIgdmFsLCBjdHJsMDsKLQl1MTYg c3JjX3gsIHNyY195OwotCi0JY3RybDAgPSBDRkdfRE1BX0ZNVChkZmItPmZtdCkgfCBDRkdfRE1B X01PRChkZmItPm1vZCkgfCBDRkdfQ0JTSF9FTkE7Ci0JaWYgKHN0YXRlLT52aXNpYmxlKQotCQlj dHJsMCB8PSBDRkdfRE1BX0VOQTsKLQlpZiAoZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5zcmMpID4+ IDE2ICE9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+ZHN0KSkKLQkJY3RybDAgfD0gQ0ZHX0RNQV9I U01PT1RIOwotCi0JLyoKLQkgKiBTaGlmdGluZyBhIFlVViBwYWNrZWQgZm9ybWF0IGltYWdlIGJ5 IG9uZSBwaXhlbCBjYXVzZXMgdGhlIFUvVgotCSAqIHBsYW5lcyB0byBzd2FwLiAgQ29tcGVuc2F0 ZSBmb3IgaXQgYnkgYWxzbyB0b2dnbGluZyB0aGUgVVYgc3dhcC4KLQkgKi8KLQlmb3JtYXQgPSBk ZmItPmZiLmZvcm1hdDsKLQlpZiAoZm9ybWF0LT5udW1fcGxhbmVzID09IDEgJiYgc3RhdGUtPnNy Yy54MSA+PiAxNiAmIChmb3JtYXQtPmhzdWIgLSAxKSkKLQkJY3RybDAgXj0gQ0ZHX0RNQV9NT0Qo Q0ZHX1NXQVBVVik7Ci0KLQlpZiAofmRwbGFuZS0+YmFzZS5zdGF0ZS5jdHJsMCAmIGN0cmwwICYg Q0ZHX0RNQV9FTkEpIHsKLQkJLyogUG93ZXIgdXAgdGhlIFkvVS9WIEZJRk9zIG9uIEVOQSAwLT4x IHRyYW5zaXRpb25zICovCi0JCWFybWFkYV9yZWdfcXVldWVfbW9kKHJlZ3MsIGlkeCwKLQkJCQkg ICAgIDAsIENGR19QRFdOMTZ4NjYgfCBDRkdfUERXTjMyeDY2LAotCQkJCSAgICAgTENEX1NQVV9T UkFNX1BBUkExKTsKLQl9CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+ c3RhdGU7CisJc3RydWN0IGFybWFkYV9jcnRjICpkY3J0YzsKKwlzdHJ1Y3QgYXJtYWRhX3JlZ3Mg KnJlZ3M7CisJdW5zaWduZWQgaW50IGlkeDsKKwl1MzIgY2ZnLCBjZmdfbWFzaywgdmFsOwogCi0J ZmJfY2hhbmdlZCA9IGRwbGFuZS0+YmFzZS5iYXNlLmZiICE9ICZkZmItPmZiIHx8Ci0JCSAgICAg ZHBsYW5lLT5iYXNlLnN0YXRlLnNyY194ICE9IHN0YXRlLT5zcmMueDEgPj4gMTYgfHwKLQkgICAg ICAgICAgICAgZHBsYW5lLT5iYXNlLnN0YXRlLnNyY195ICE9IHN0YXRlLT5zcmMueTEgPj4gMTY7 CisJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVzXVxuIiwgcGxhbmUtPmJhc2UuaWQsIHBsYW5l LT5uYW1lKTsKIAotCWRwbGFuZS0+YmFzZS5zdGF0ZS52c3luY191cGRhdGUgPSBmYl9jaGFuZ2Vk OworCWlmICghc3RhdGUtPmZiIHx8IFdBUk5fT04oIXN0YXRlLT5jcnRjKSkKKwkJcmV0dXJuOwog CisJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVzXSBpcyBvbiBbQ1JUQzolZDolc10gd2l0aCBb RkI6JWRdIHZpc2libGUgJXUtPiV1XG4iLAorCQlwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUs CisJCXN0YXRlLT5jcnRjLT5iYXNlLmlkLCBzdGF0ZS0+Y3J0Yy0+bmFtZSwKKwkJc3RhdGUtPmZi LT5iYXNlLmlkLAorCQlvbGRfc3RhdGUtPnZpc2libGUsIHN0YXRlLT52aXNpYmxlKTsKKworCWRj cnRjID0gZHJtX3RvX2FybWFkYV9jcnRjKHN0YXRlLT5jcnRjKTsKKwlyZWdzID0gZGNydGMtPnJl Z3MgKyBkY3J0Yy0+cmVnc19pZHg7CisKKwlkcm1fdG9fYXJtYWRhX292bF9wbGFuZShwbGFuZSkt PndhaXRfdmJsYW5rID0gZmFsc2U7CisKKwlpZHggPSAwOworCWlmICghb2xkX3N0YXRlLT52aXNp YmxlICYmIHN0YXRlLT52aXNpYmxlKQorCQlhcm1hZGFfcmVnX3F1ZXVlX21vZChyZWdzLCBpZHgs CisJCQkJICAgICAwLCBDRkdfUERXTjE2eDY2IHwgQ0ZHX1BEV04zMng2NiwKKwkJCQkgICAgIExD RF9TUFVfU1JBTV9QQVJBMSk7CisJdmFsID0gYXJtYWRhX3JlY3RfaHdfZnAoJnN0YXRlLT5zcmMp OworCWlmIChhcm1hZGFfcmVjdF9od19mcCgmb2xkX3N0YXRlLT5zcmMpICE9IHZhbCkKKwkJYXJt YWRhX3JlZ19xdWV1ZV9zZXQocmVncywgaWR4LCB2YWwsIExDRF9TUFVfRE1BX0hQWExfVkxOKTsK Kwl2YWwgPSBhcm1hZGFfcmVjdF95eCgmc3RhdGUtPmRzdCk7CisJaWYgKGFybWFkYV9yZWN0X3l4 KCZvbGRfc3RhdGUtPmRzdCkgIT0gdmFsKQorCQlhcm1hZGFfcmVnX3F1ZXVlX3NldChyZWdzLCBp ZHgsIHZhbCwgTENEX1NQVV9ETUFfT1ZTQV9IUFhMX1ZMTik7CisJdmFsID0gYXJtYWRhX3JlY3Rf aHcoJnN0YXRlLT5kc3QpOworCWlmIChhcm1hZGFfcmVjdF9odygmb2xkX3N0YXRlLT5kc3QpICE9 IHZhbCkKKwkJYXJtYWRhX3JlZ19xdWV1ZV9zZXQocmVncywgaWR4LCB2YWwsIExDRF9TUFVfRFpN X0hQWExfVkxOKTsKIAkvKiBGSVhNRTogb3ZlcmxheSBvbiBhbiBpbnRlcmxhY2VkIGRpc3BsYXkg Ki8KLQlpZiAoZmJfY2hhbmdlZCkgeworCWlmIChvbGRfc3RhdGUtPnNyYy54MSAhPSBzdGF0ZS0+ c3JjLngxIHx8CisJICAgIG9sZF9zdGF0ZS0+c3JjLnkxICE9IHN0YXRlLT5zcmMueTEgfHwKKwkg ICAgb2xkX3N0YXRlLT5mYiAhPSBzdGF0ZS0+ZmIpIHsKKwkJY29uc3Qgc3RydWN0IGRybV9mb3Jt YXRfaW5mbyAqZm9ybWF0OworCQl1MTYgc3JjX3ggPSBzdGF0ZS0+c3JjLngxID4+IDE2OworCQl1 MTYgc3JjX3kgPSBzdGF0ZS0+c3JjLnkxID4+IDE2OwogCQl1MzIgYWRkcnNbM107CiAKLQkJZHBs YW5lLT5iYXNlLnN0YXRlLnNyY195ID0gc3JjX3kgPSBzdGF0ZS0+c3JjLnkxID4+IDE2OwotCQlk cGxhbmUtPmJhc2Uuc3RhdGUuc3JjX3ggPSBzcmNfeCA9IHN0YXRlLT5zcmMueDEgPj4gMTY7Ci0K LQkJYXJtYWRhX2RybV9wbGFuZV9jYWxjX2FkZHJzKGFkZHJzLCAmZGZiLT5mYiwgc3JjX3gsIHNy Y195KTsKKwkJYXJtYWRhX2RybV9wbGFuZV9jYWxjX2FkZHJzKGFkZHJzLCBzdGF0ZS0+ZmIsIHNy Y194LCBzcmNfeSk7CiAKIAkJYXJtYWRhX3JlZ19xdWV1ZV9zZXQocmVncywgaWR4LCBhZGRyc1sw XSwKIAkJCQkgICAgIExDRF9TUFVfRE1BX1NUQVJUX0FERFJfWTApOwpAQCAtMTQwLDc5ICsxNDQs NTYgQEAgc3RhdGljIHVuc2lnbmVkIGludCBhcm1hZGFfb3ZsX3BsYW5lX3VwZGF0ZV9zdGF0ZShz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwKIAkJYXJtYWRhX3JlZ19xdWV1ZV9zZXQocmVn cywgaWR4LCBhZGRyc1syXSwKIAkJCQkgICAgIExDRF9TUFVfRE1BX1NUQVJUX0FERFJfVjEpOwog Ci0JCXZhbCA9IGRmYi0+ZmIucGl0Y2hlc1swXSA8PCAxNiB8IGRmYi0+ZmIucGl0Y2hlc1swXTsK LQkJYXJtYWRhX3JlZ19xdWV1ZV9zZXQocmVncywgaWR4LCB2YWwsCi0JCQkJICAgICBMQ0RfU1BV X0RNQV9QSVRDSF9ZQyk7Ci0JCXZhbCA9IGRmYi0+ZmIucGl0Y2hlc1sxXSA8PCAxNiB8IGRmYi0+ ZmIucGl0Y2hlc1syXTsKLQkJYXJtYWRhX3JlZ19xdWV1ZV9zZXQocmVncywgaWR4LCB2YWwsCi0J CQkJICAgICBMQ0RfU1BVX0RNQV9QSVRDSF9VVik7Ci0JfQotCi0JdmFsID0gYXJtYWRhX3JlY3Rf aHdfZnAoJnN0YXRlLT5zcmMpOwotCWlmIChkcGxhbmUtPmJhc2Uuc3RhdGUuc3JjX2h3ICE9IHZh bCkgewotCQlkcGxhbmUtPmJhc2Uuc3RhdGUuc3JjX2h3ID0gdmFsOwotCQlhcm1hZGFfcmVnX3F1 ZXVlX3NldChyZWdzLCBpZHgsIHZhbCwKLQkJCQkgICAgIExDRF9TUFVfRE1BX0hQWExfVkxOKTsK LQl9CisJCXZhbCA9IHN0YXRlLT5mYi0+cGl0Y2hlc1swXSA8PCAxNiB8IHN0YXRlLT5mYi0+cGl0 Y2hlc1swXTsKKwkJYXJtYWRhX3JlZ19xdWV1ZV9zZXQocmVncywgaWR4LCB2YWwsIExDRF9TUFVf RE1BX1BJVENIX1lDKTsKKwkJdmFsID0gc3RhdGUtPmZiLT5waXRjaGVzWzFdIDw8IDE2IHwgc3Rh dGUtPmZiLT5waXRjaGVzWzJdOworCQlhcm1hZGFfcmVnX3F1ZXVlX3NldChyZWdzLCBpZHgsIHZh bCwgTENEX1NQVV9ETUFfUElUQ0hfVVYpOwogCi0JdmFsID0gYXJtYWRhX3JlY3RfaHcoJnN0YXRl LT5kc3QpOwotCWlmIChkcGxhbmUtPmJhc2Uuc3RhdGUuZHN0X2h3ICE9IHZhbCkgewotCQlkcGxh bmUtPmJhc2Uuc3RhdGUuZHN0X2h3ID0gdmFsOwotCQlhcm1hZGFfcmVnX3F1ZXVlX3NldChyZWdz LCBpZHgsIHZhbCwKLQkJCQkgICAgIExDRF9TUFVfRFpNX0hQWExfVkxOKTsKLQl9CisJCWNmZyA9 IENGR19ETUFfRk1UKGRybV9mYl90b19hcm1hZGFfZmIoc3RhdGUtPmZiKS0+Zm10KSB8CisJCSAg ICAgIENGR19ETUFfTU9EKGRybV9mYl90b19hcm1hZGFfZmIoc3RhdGUtPmZiKS0+bW9kKSB8CisJ CSAgICAgIENGR19DQlNIX0VOQTsKKwkJaWYgKHN0YXRlLT52aXNpYmxlKQorCQkJY2ZnIHw9IENG R19ETUFfRU5BOwogCi0JdmFsID0gYXJtYWRhX3JlY3RfeXgoJnN0YXRlLT5kc3QpOwotCWlmIChk cGxhbmUtPmJhc2Uuc3RhdGUuZHN0X3l4ICE9IHZhbCkgewotCQlkcGxhbmUtPmJhc2Uuc3RhdGUu ZHN0X3l4ID0gdmFsOwotCQlhcm1hZGFfcmVnX3F1ZXVlX3NldChyZWdzLCBpZHgsIHZhbCwKLQkJ CQkgICAgIExDRF9TUFVfRE1BX09WU0FfSFBYTF9WTE4pOworCQkvKgorCQkgKiBTaGlmdGluZyBh IFlVViBwYWNrZWQgZm9ybWF0IGltYWdlIGJ5IG9uZSBwaXhlbCBjYXVzZXMgdGhlCisJCSAqIFUv ViBwbGFuZXMgdG8gc3dhcC4gIENvbXBlbnNhdGUgZm9yIGl0IGJ5IGFsc28gdG9nZ2xpbmcKKwkJ ICogdGhlIFVWIHN3YXAuCisJCSAqLworCQlmb3JtYXQgPSBzdGF0ZS0+ZmItPmZvcm1hdDsKKwkJ aWYgKGZvcm1hdC0+bnVtX3BsYW5lcyA9PSAxICYmIHNyY194ICYgKGZvcm1hdC0+aHN1YiAtIDEp KQorCQkJY2ZnIF49IENGR19ETUFfTU9EKENGR19TV0FQVVYpOworCQljZmdfbWFzayA9IENGR19D QlNIX0VOQSB8IENGR19ETUFGT1JNQVQgfAorCQkJICAgQ0ZHX0RNQV9NT0QoQ0ZHX1NXQVBSQiB8 IENGR19TV0FQVVYgfAorCQkJCSAgICAgICBDRkdfU1dBUFlVIHwgQ0ZHX1lVVjJSR0IpIHwKKwkJ CSAgIENGR19ETUFfRlRPR0dMRSB8IENGR19ETUFfVFNUTU9ERSB8CisJCQkgICBDRkdfRE1BX0VO QTsKKworCQlkcm1fdG9fYXJtYWRhX292bF9wbGFuZShwbGFuZSktPndhaXRfdmJsYW5rID0gdHJ1 ZTsKKwl9IGVsc2UgaWYgKG9sZF9zdGF0ZS0+dmlzaWJsZSAhPSBzdGF0ZS0+dmlzaWJsZSkgewor CQljZmcgPSBzdGF0ZS0+dmlzaWJsZSA/IENGR19ETUFfRU5BIDogMDsKKwkJY2ZnX21hc2sgPSBD RkdfRE1BX0VOQTsKKwl9IGVsc2UgeworCQljZmcgPSBjZmdfbWFzayA9IDA7CiAJfQotCi0JaWYg KGRwbGFuZS0+YmFzZS5zdGF0ZS5jdHJsMCAhPSBjdHJsMCkgewotCQlkcGxhbmUtPmJhc2Uuc3Rh dGUuY3RybDAgPSBjdHJsMDsKLQkJYXJtYWRhX3JlZ19xdWV1ZV9tb2QocmVncywgaWR4LCBjdHJs MCwKLQkJCUNGR19DQlNIX0VOQSB8IENGR19ETUFGT1JNQVQgfCBDRkdfRE1BX0ZUT0dHTEUgfAot CQkJQ0ZHX0RNQV9IU01PT1RIIHwgQ0ZHX0RNQV9UU1RNT0RFIHwKLQkJCUNGR19ETUFfTU9EKENG R19TV0FQUkIgfCBDRkdfU1dBUFVWIHwgQ0ZHX1NXQVBZVSB8Ci0JCQlDRkdfWVVWMlJHQikgfCBD RkdfRE1BX0VOQSwKLQkJCUxDRF9TUFVfRE1BX0NUUkwwKTsKLQkJZHBsYW5lLT5iYXNlLnN0YXRl LnZzeW5jX3VwZGF0ZSA9IHRydWU7CisJaWYgKGRybV9yZWN0X3dpZHRoKCZvbGRfc3RhdGUtPnNy YykgIT0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5zcmMpIHx8CisJICAgIGRybV9yZWN0X3dpZHRo KCZvbGRfc3RhdGUtPmRzdCkgIT0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5kc3QpKSB7CisJCWNm Z19tYXNrIHw9IENGR19ETUFfSFNNT09USDsKKwkJaWYgKGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+ c3JjKSA+PiAxNiAhPQorCQkgICAgZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5kc3QpKQorCQkJY2Zn IHw9IENGR19ETUFfSFNNT09USDsKIAl9CiAKLQlkcGxhbmUtPmJhc2Uuc3RhdGUuY2hhbmdlZCA9 IGlkeCAhPSAwOwotCi0JcmV0dXJuIGlkeDsKLX0KLQotc3RhdGljIHZvaWQgYXJtYWRhX2RybV9v dmVybGF5X3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0Jc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQotewotCXN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnN0YXRlID0gcGxhbmUtPnN0YXRlOwotCXN0cnVjdCBhcm1hZGFfY3J0YyAqZGNydGM7Ci0J c3RydWN0IGFybWFkYV9yZWdzICpyZWdzOworCWlmIChjZmdfbWFzaykKKwkJYXJtYWRhX3JlZ19x dWV1ZV9tb2QocmVncywgaWR4LCBjZmcsIGNmZ19tYXNrLAorCQkJCSAgICAgTENEX1NQVV9ETUFf Q1RSTDApOwogCi0JRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVzXVxuIiwgcGxhbmUtPmJhc2Uu aWQsIHBsYW5lLT5uYW1lKTsKLQotCWlmICghc3RhdGUtPmZiIHx8IFdBUk5fT04oIXN0YXRlLT5j cnRjKSkKLQkJcmV0dXJuOwotCi0JRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVzXSBpcyBvbiBb Q1JUQzolZDolc10gd2l0aCBbRkI6JWRdIHZpc2libGUgJXUtPiV1XG4iLAotCQlwbGFuZS0+YmFz ZS5pZCwgcGxhbmUtPm5hbWUsCi0JCXN0YXRlLT5jcnRjLT5iYXNlLmlkLCBzdGF0ZS0+Y3J0Yy0+ bmFtZSwKLQkJc3RhdGUtPmZiLT5iYXNlLmlkLAotCQlvbGRfc3RhdGUtPnZpc2libGUsIHN0YXRl LT52aXNpYmxlKTsKLQotCWRjcnRjID0gZHJtX3RvX2FybWFkYV9jcnRjKHN0YXRlLT5jcnRjKTsK LQlyZWdzID0gZGNydGMtPnJlZ3MgKyBkY3J0Yy0+cmVnc19pZHg7Ci0KLQlkY3J0Yy0+cmVnc19p ZHggKz0gYXJtYWRhX292bF9wbGFuZV91cGRhdGVfc3RhdGUoc3RhdGUsIHJlZ3MpOworCWRjcnRj LT5yZWdzX2lkeCArPSBpZHg7CiB9CiAKIHN0YXRpYyB2b2lkIGFybWFkYV9kcm1fb3ZlcmxheV9w bGFuZV9hdG9taWNfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCiB7Ci0Jc3RydWN0IGFybWFkYV9wbGFuZSAqZHBsYW5l ID0gZHJtX3RvX2FybWFkYV9wbGFuZShwbGFuZSk7CiAJc3RydWN0IGFybWFkYV9jcnRjICpkY3J0 YzsKIAlzdHJ1Y3QgYXJtYWRhX3JlZ3MgKnJlZ3M7CiAJdW5zaWduZWQgaW50IGlkeCA9IDA7CkBA IC0yMjcsOCArMjA4LDYgQEAgc3RhdGljIHZvaWQgYXJtYWRhX2RybV9vdmVybGF5X3BsYW5lX2F0 b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlvbGRfc3RhdGUtPmNydGMt PmJhc2UuaWQsIG9sZF9zdGF0ZS0+Y3J0Yy0+bmFtZSwKIAkJb2xkX3N0YXRlLT5mYi0+YmFzZS5p ZCk7CiAKLQlkcGxhbmUtPnN0YXRlLmN0cmwwICY9IH5DRkdfRE1BX0VOQTsKLQogCWRjcnRjID0g ZHJtX3RvX2FybWFkYV9jcnRjKG9sZF9zdGF0ZS0+Y3J0Yyk7CiAJcmVncyA9IGRjcnRjLT5yZWdz ICsgZGNydGMtPnJlZ3NfaWR4OwogCkBAIC0yODgsNyArMjY3LDcgQEAgc3RhdGljIGludCBhcm1h ZGFfb3ZlcmxheV9jb21taXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJcGxhbmVfZnVuY3Mt PmF0b21pY191cGRhdGUocGxhbmUsIHN0YXRlKTsKIAogCS8qIElmIG5vdGhpbmcgd2FzIHVwZGF0 ZWQsIHNob3J0LWNpcmN1aXQgKi8KLQlpZiAoIWRwbGFuZS0+YmFzZS5zdGF0ZS5jaGFuZ2VkKQor CWlmIChkY3J0Yy0+cmVnc19pZHggPT0gMCkKIAkJZ290byBwdXRfc3RhdGU7CiAKIAlhcm1hZGFf cmVnX3F1ZXVlX2VuZChkY3J0Yy0+cmVncywgZGNydGMtPnJlZ3NfaWR4KTsKQEAgLTI5OCw3ICsy NzcsNyBAQCBzdGF0aWMgaW50IGFybWFkYV9vdmVybGF5X2NvbW1pdChzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAkJYXJtYWRhX2RybV9wbGFuZV93b3JrX2NhbmNlbChkY3J0YywgJmRwbGFuZS0+ YmFzZSk7CiAKIAkvKiBKdXN0IHVwZGF0aW5nIHRoZSBwb3NpdGlvbi9zaXplPyAqLwotCWlmICgh ZHBsYW5lLT5iYXNlLnN0YXRlLnZzeW5jX3VwZGF0ZSkgeworCWlmICghZHBsYW5lLT53YWl0X3Zi bGFuaykgewogCQlhcm1hZGFfb3ZsX3BsYW5lX3dvcmsoZGNydGMsIHdvcmspOwogCQlnb3RvIHB1 dF9zdGF0ZTsKIAl9Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==