From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Anholt Subject: [PATCH v2 5/5] drm/v3d: Add missing implicit synchronization. Date: Tue, 16 Apr 2019 15:58:56 -0700 Message-ID: <20190416225856.20264-6-eric@anholt.net> References: <20190416225856.20264-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from anholt.net (anholt.net [50.246.234.109]) by gabe.freedesktop.org (Postfix) with ESMTP id E116D89DD8 for ; Tue, 16 Apr 2019 22:59:16 +0000 (UTC) In-Reply-To: <20190416225856.20264-1-eric@anholt.net> 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: Maxime Ripard , thomas.spurden@broadcom.com, linux-kernel@vger.kernel.org, Paul Kocialkowski , david.emett@broadcom.com List-Id: dri-devel@lists.freedesktop.org SXQgaXMgdGhlIGV4cGVjdGF0aW9uIG9mIGV4aXN0aW5nIHVzZXJzcGFjZSAoWDExICsgTWVzYSwg aW4KcGFydGljdWxhcikgdGhhdCBqb2JzIHN1Ym1pdHRlZCB0byB0aGUga2VybmVsIGFnYWluc3Qg YSBzaGFyZWQgQk8gd2lsbApnZXQgaW1wbGljaXRseSBzeW5jaHJvbml6ZWQgYnkgdGhlaXIgc3Vi bWlzc2lvbiBvcmRlci4gIElmIHdlIHdhbnQgdG8KYWxsb3cgY2xldmVyIHVzZXJzcGFjZSB0byBk aXNhYmxlIGltcGxpY2l0IHN5bmNocm9uaXphdGlvbiwgd2Ugc2hvdWxkCmRvIHRoYXQgdW5kZXIg aXRzIG93biBzdWJtaXQgZmxhZyAoYXMgYW1kZ3B1IGFuZCBsaW1hIGRvKS4KCk5vdGUgdGhhdCB3 ZSBjdXJyZW50bHkgb25seSBpbXBsaWNpdGx5IHN5bmMgZm9yIHRoZSByZW5kZXJpbmcgcGFzcywK bm90IGJpbm5pbmcgLS0gaWYgeW91IHRleHR1cmUtZnJvbS1waXhtYXAgaW4gdGhlIGJpbm5pbmcg dmVydGV4IHNoYWRlcgoodmVydGV4IGNvb3JkaW5hdGUgZ2VuZXJhdGlvbiksIHlvdSdsbCBtaXNz IG91dCBvbiBzeW5jaHJvbml6YXRpb24uCgpGaXhlcyBmbGlja2VyaW5nIHdoZW4gbXVsdGlwbGUg Y2xpZW50cyBhcmUgcnVubmluZyBpbiBwYXJhbGxlbCwKcGFydGljdWxhcmx5IEdMIGFwcHMgYW5k IGNvbXBvc2l0b3JzLgoKdjI6IEZpeCBhIG1pc3NpbmcgcmVmY291bnQgb24gdGhlIENTRCBkb25l IGZlbmNlIGZvciBMMiBjbGVhbmluZy4KClNpZ25lZC1vZmYtYnk6IEVyaWMgQW5ob2x0IDxlcmlj QGFuaG9sdC5uZXQ+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmggICB8IDExICsr Ky0tLQogZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMgICB8IDYzICsrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYyB8IDQw ICsrKy0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCsp LCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5oCmluZGV4IGM0ZWY2NDBlZmZjMi4u NmQzMWE2YTVhMDhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaApAQCAtMTg4LDggKzE4OCwxMCBAQCBz dHJ1Y3QgdjNkX2pvYiB7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICoqYm87CiAJdTMyIGJvX2Nv dW50OwogCi0JLyogQW4gb3B0aW9uYWwgZmVuY2UgdXNlcnNwYWNlIGNhbiBwYXNzIGluIGZvciB0 aGUgam9iIHRvIGRlcGVuZCBvbi4gKi8KLQlzdHJ1Y3QgZG1hX2ZlbmNlICppbl9mZW5jZTsKKwkv KiBBcnJheSBvZiBzdHJ1Y3QgZG1hX2ZlbmNlICogdG8gYmxvY2sgb24gYmVmb3JlIHN1Ym1pdHRp bmcgdGhpcyBqb2IuCisJICovCisJc3RydWN0IHhhcnJheSBkZXBzOworCXVuc2lnbmVkIGxvbmcg bGFzdF9kZXA7CiAKIAkvKiB2M2QgZmVuY2UgdG8gYmUgc2lnbmFsZWQgYnkgSVJRIGhhbmRsZXIg d2hlbiB0aGUgam9iIGlzIGNvbXBsZXRlLiAqLwogCXN0cnVjdCBkbWFfZmVuY2UgKmlycV9mZW5j ZTsKQEAgLTIyMSwxMSArMjIzLDYgQEAgc3RydWN0IHYzZF9iaW5fam9iIHsKIHN0cnVjdCB2M2Rf cmVuZGVyX2pvYiB7CiAJc3RydWN0IHYzZF9qb2IgYmFzZTsKIAotCS8qIE9wdGlvbmFsIGZlbmNl IGZvciB0aGUgYmlubmVyLCB0byBkZXBlbmQgb24gYmVmb3JlIHN0YXJ0aW5nCi0JICogb3VyIGpv Yi4KLQkgKi8KLQlzdHJ1Y3QgZG1hX2ZlbmNlICpiaW5fZG9uZV9mZW5jZTsKLQogCS8qIEdQVSB2 aXJ0dWFsIGFkZHJlc3NlcyBvZiB0aGUgc3RhcnQvZW5kIG9mIHRoZSBDTCBqb2IuICovCiAJdTMy IHN0YXJ0LCBlbmQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMKaW5kZXggNjg3M2IxNGEwZDM4Li5mNzM2 ZTAyMTQ2N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jCkBAIC0yNDMsMTYgKzI0MywyNSBAQCB2M2Rf aW52YWxpZGF0ZV9jYWNoZXMoc3RydWN0IHYzZF9kZXYgKnYzZCkKICAqIHRvIHYzZCwgc28gd2Ug ZG9uJ3QgYXR0YWNoIGRtYS1idWYgZmVuY2VzIHRvIHRoZW0uCiAgKi8KIHN0YXRpYyBpbnQKLXYz ZF9sb2NrX2JvX3Jlc2VydmF0aW9ucyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKipib3MsCi0JCQkg aW50IGJvX2NvdW50LAordjNkX2xvY2tfYm9fcmVzZXJ2YXRpb25zKHN0cnVjdCB2M2Rfam9iICpq b2IsCiAJCQkgc3RydWN0IHd3X2FjcXVpcmVfY3R4ICphY3F1aXJlX2N0eCkKIHsKIAlpbnQgaSwg cmV0OwogCi0JcmV0ID0gZHJtX2dlbV9sb2NrX3Jlc2VydmF0aW9ucyhib3MsIGJvX2NvdW50LCBh Y3F1aXJlX2N0eCk7CisJcmV0ID0gZHJtX2dlbV9sb2NrX3Jlc2VydmF0aW9ucyhqb2ItPmJvLCBq b2ItPmJvX2NvdW50LCBhY3F1aXJlX2N0eCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAor CWZvciAoaSA9IDA7IGkgPCBqb2ItPmJvX2NvdW50OyBpKyspIHsKKwkJcmV0ID0gZHJtX2dlbV9m ZW5jZV9hcnJheV9hZGRfaW1wbGljaXQoJmpvYi0+ZGVwcywKKwkJCQkJCSAgICAgICBqb2ItPmJv W2ldLCB0cnVlKTsKKwkJaWYgKHJldCkgeworCQkJZHJtX2dlbV91bmxvY2tfcmVzZXJ2YXRpb25z KGpvYi0+Ym8sIGpvYi0+Ym9fY291bnQsCisJCQkJCQkgICAgYWNxdWlyZV9jdHgpOworCQkJcmV0 dXJuIHJldDsKKwkJfQorCX0KKwogCXJldHVybiAwOwogfQogCkBAIC0zMzksNiArMzQ4LDggQEAg c3RhdGljIHZvaWQKIHYzZF9qb2JfZnJlZShzdHJ1Y3Qga3JlZiAqcmVmKQogewogCXN0cnVjdCB2 M2Rfam9iICpqb2IgPSBjb250YWluZXJfb2YocmVmLCBzdHJ1Y3QgdjNkX2pvYiwgcmVmY291bnQp OworCXVuc2lnbmVkIGxvbmcgaW5kZXg7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAJaW50 IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgam9iLT5ib19jb3VudDsgaSsrKSB7CkBAIC0zNDcsNyAr MzU4LDExIEBAIHYzZF9qb2JfZnJlZShzdHJ1Y3Qga3JlZiAqcmVmKQogCX0KIAlrdmZyZWUoam9i LT5ibyk7CiAKLQlkbWFfZmVuY2VfcHV0KGpvYi0+aW5fZmVuY2UpOworCXhhX2Zvcl9lYWNoKCZq b2ItPmRlcHMsIGluZGV4LCBmZW5jZSkgeworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKKwl9CisJ eGFfZGVzdHJveSgmam9iLT5kZXBzKTsKKwogCWRtYV9mZW5jZV9wdXQoam9iLT5pcnFfZmVuY2Up OwogCWRtYV9mZW5jZV9wdXQoam9iLT5kb25lX2ZlbmNlKTsKIApAQCAtNDE0LDYgKzQyOSw3IEBA IHYzZF9qb2JfaW5pdChzdHJ1Y3QgdjNkX2RldiAqdjNkLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdiwKIAkgICAgIHN0cnVjdCB2M2Rfam9iICpqb2IsIHZvaWQgKCpmcmVlKShzdHJ1Y3Qga3Jl ZiAqcmVmKSwKIAkgICAgIHUzMiBpbl9zeW5jKQogeworCXN0cnVjdCBkbWFfZmVuY2UgKmluX2Zl bmNlID0gTlVMTDsKIAlpbnQgcmV0OwogCiAJam9iLT52M2QgPSB2M2Q7CkBAIC00MjMsMTUgKzQz OSwyMyBAQCB2M2Rfam9iX2luaXQoc3RydWN0IHYzZF9kZXYgKnYzZCwgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYsCiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBkcm1f c3luY29ial9maW5kX2ZlbmNlKGZpbGVfcHJpdiwgaW5fc3luYywgMCwgMCwgJmpvYi0+aW5fZmVu Y2UpOwotCWlmIChyZXQgPT0gLUVJTlZBTCkgewotCQlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVu ZCh2M2QtPmRldik7Ci0JCXJldHVybiByZXQ7Ci0JfQorCXhhX2luaXRfZmxhZ3MoJmpvYi0+ZGVw cywgWEFfRkxBR1NfQUxMT0MpOworCisJcmV0ID0gZHJtX3N5bmNvYmpfZmluZF9mZW5jZShmaWxl X3ByaXYsIGluX3N5bmMsIDAsIDAsICZpbl9mZW5jZSk7CisJaWYgKHJldCA9PSAtRUlOVkFMKQor CQlnb3RvIGZhaWw7CisKKwlyZXQgPSBkcm1fZ2VtX2ZlbmNlX2FycmF5X2FkZCgmam9iLT5kZXBz LCBpbl9mZW5jZSk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsOwogCiAJa3JlZl9pbml0KCZqb2It PnJlZmNvdW50KTsKIAogCXJldHVybiAwOworZmFpbDoKKwl4YV9kZXN0cm95KCZqb2ItPmRlcHMp OworCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKHYzZC0+ZGV2KTsKKwlyZXR1cm4gcmV0Owog fQogCiBzdGF0aWMgaW50CkBAIC01NTIsOCArNTc2LDcgQEAgdjNkX3N1Ym1pdF9jbF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChyZXQpCiAJCWdvdG8gZmFp bDsKIAotCXJldCA9IHYzZF9sb2NrX2JvX3Jlc2VydmF0aW9ucyhyZW5kZXItPmJhc2UuYm8sIHJl bmRlci0+YmFzZS5ib19jb3VudCwKLQkJCQkgICAgICAgJmFjcXVpcmVfY3R4KTsKKwlyZXQgPSB2 M2RfbG9ja19ib19yZXNlcnZhdGlvbnMoJnJlbmRlci0+YmFzZSwgJmFjcXVpcmVfY3R4KTsKIAlp ZiAocmV0KQogCQlnb3RvIGZhaWw7CiAKQEAgLTU2Myw3ICs1ODYsMTAgQEAgdjNkX3N1Ym1pdF9j bF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlpZiAocmV0KQog CQkJZ290byBmYWlsX3VucmVzZXJ2ZTsKIAotCQlyZW5kZXItPmJpbl9kb25lX2ZlbmNlID0gZG1h X2ZlbmNlX2dldChiaW4tPmJhc2UuZG9uZV9mZW5jZSk7CisJCXJldCA9IGRybV9nZW1fZmVuY2Vf YXJyYXlfYWRkKCZyZW5kZXItPmJhc2UuZGVwcywKKwkJCQkJICAgICAgZG1hX2ZlbmNlX2dldChi aW4tPmJhc2UuZG9uZV9mZW5jZSkpOworCQlpZiAocmV0KQorCQkJZ290byBmYWlsX3VucmVzZXJ2 ZTsKIAl9CiAKIAlyZXQgPSB2M2RfcHVzaF9qb2IodjNkX3ByaXYsICZyZW5kZXItPmJhc2UsIFYz RF9SRU5ERVIpOwpAQCAtNjYxLDggKzY4Nyw3IEBAIHYzZF9zdWJtaXRfdGZ1X2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJfQogCXNwaW5fdW5sb2NrKCZmaWxlX3By aXYtPnRhYmxlX2xvY2spOwogCi0JcmV0ID0gdjNkX2xvY2tfYm9fcmVzZXJ2YXRpb25zKGpvYi0+ YmFzZS5ibywgam9iLT5iYXNlLmJvX2NvdW50LAotCQkJCSAgICAgICAmYWNxdWlyZV9jdHgpOwor CXJldCA9IHYzZF9sb2NrX2JvX3Jlc2VydmF0aW9ucygmam9iLT5iYXNlLCAmYWNxdWlyZV9jdHgp OwogCWlmIChyZXQpCiAJCWdvdG8gZmFpbDsKIApAQCAtNzUxLDkgKzc3Niw3IEBAIHYzZF9zdWJt aXRfY3NkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYgKHJl dCkKIAkJZ290byBmYWlsOwogCi0JcmV0ID0gdjNkX2xvY2tfYm9fcmVzZXJ2YXRpb25zKGNsZWFu X2pvYi0+YmFzZS5ibywKLQkJCQkgICAgICAgY2xlYW5fam9iLT5iYXNlLmJvX2NvdW50LAotCQkJ CSAgICAgICAmYWNxdWlyZV9jdHgpOworCXJldCA9IHYzZF9sb2NrX2JvX3Jlc2VydmF0aW9ucyhj bGVhbl9qb2IsICZhY3F1aXJlX2N0eCk7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwogCkBAIC03 NjIsNyArNzg1LDExIEBAIHYzZF9zdWJtaXRfY3NkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJaWYgKHJldCkKIAkJZ290byBmYWlsX3VucmVzZXJ2ZTsKIAotCWNs ZWFuX2pvYi0+aW5fZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KGpvYi0+YmFzZS5kb25lX2ZlbmNlKTsK KwlyZXQgPSBkcm1fZ2VtX2ZlbmNlX2FycmF5X2FkZCgmY2xlYW5fam9iLT5kZXBzLAorCQkJCSAg ICAgIGRtYV9mZW5jZV9nZXQoam9iLT5iYXNlLmRvbmVfZmVuY2UpKTsKKwlpZiAocmV0KQorCQln b3RvIGZhaWxfdW5yZXNlcnZlOworCiAJcmV0ID0gdjNkX3B1c2hfam9iKHYzZF9wcml2LCBjbGVh bl9qb2IsIFYzRF9DQUNIRV9DTEVBTik7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsX3VucmVzZXJ2 ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX3NjaGVkLmMgYi9kcml2ZXJz L2dwdS9kcm0vdjNkL3YzZF9zY2hlZC5jCmluZGV4IDljYjNlMWIzYTAyNC4uZDY4OGYyMzhiMmI5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zY2hlZC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92M2QvdjNkX3NjaGVkLmMKQEAgLTc0LDQ3ICs3NCwxNSBAQCB2M2Rfam9iX2Rl cGVuZGVuY3koc3RydWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYiwKIAkJICAgc3RydWN0IGRy bV9zY2hlZF9lbnRpdHkgKnNfZW50aXR5KQogewogCXN0cnVjdCB2M2Rfam9iICpqb2IgPSB0b192 M2Rfam9iKHNjaGVkX2pvYik7Ci0Jc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Ci0KLQlmZW5jZSA9 IGpvYi0+aW5fZmVuY2U7Ci0JaWYgKGZlbmNlKSB7Ci0JCWpvYi0+aW5fZmVuY2UgPSBOVUxMOwot CQlyZXR1cm4gZmVuY2U7Ci0JfQogCiAJLyogWFhYOiBXYWl0IG9uIGEgZmVuY2UgZm9yIHN3aXRj aGluZyB0aGUgR01QIGlmIG5lY2Vzc2FyeSwKIAkgKiBhbmQgdGhlbiBkbyBzby4KIAkgKi8KIAot CXJldHVybiBOVUxMOwotfQorCWlmICgheGFfZW1wdHkoJmpvYi0+ZGVwcykpCisJCXJldHVybiB4 YV9lcmFzZSgmam9iLT5kZXBzLCBqb2ItPmxhc3RfZGVwKyspOwogCi0vKioKLSAqIFJldHVybnMg dGhlIGZlbmNlcyB0aGF0IHRoZSByZW5kZXIgam9iIGRlcGVuZHMgb24sIG9uZSBieSBvbmUuCi0g KiB2M2Rfam9iX3J1bigpIHdvbid0IGJlIGNhbGxlZCB1bnRpbCBhbGwgb2YgdGhlbSBoYXZlIGJl ZW4gc2lnbmFsZWQuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICoKLXYzZF9yZW5kZXJf am9iX2RlcGVuZGVuY3koc3RydWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYiwKLQkJCSAgc3Ry dWN0IGRybV9zY2hlZF9lbnRpdHkgKnNfZW50aXR5KQotewotCXN0cnVjdCB2M2RfcmVuZGVyX2pv YiAqam9iID0gdG9fcmVuZGVyX2pvYihzY2hlZF9qb2IpOwotCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlOwotCi0JZmVuY2UgPSB2M2Rfam9iX2RlcGVuZGVuY3koc2NoZWRfam9iLCBzX2VudGl0eSk7 Ci0JaWYgKGZlbmNlKQotCQlyZXR1cm4gZmVuY2U7Ci0KLQkvKiBJZiB3ZSBoYWQgYSBiaW4gam9i LCB0aGUgcmVuZGVyIGpvYiBkZWZpbml0ZWx5IGRlcGVuZHMgb24KLQkgKiBpdC4gV2UgZmlyc3Qg aGF2ZSB0byB3YWl0IGZvciBiaW4gdG8gYmUgc2NoZWR1bGVkLCBzbyB0aGF0Ci0JICogaXRzIGRv bmVfZmVuY2UgaXMgY3JlYXRlZC4KLQkgKi8KLQlmZW5jZSA9IGpvYi0+YmluX2RvbmVfZmVuY2U7 Ci0JaWYgKGZlbmNlKSB7Ci0JCWpvYi0+YmluX2RvbmVfZmVuY2UgPSBOVUxMOwotCQlyZXR1cm4g ZmVuY2U7Ci0JfQotCi0JcmV0dXJuIGZlbmNlOworCXJldHVybiBOVUxMOwogfQogCiBzdGF0aWMg c3RydWN0IGRtYV9mZW5jZSAqdjNkX2Jpbl9qb2JfcnVuKHN0cnVjdCBkcm1fc2NoZWRfam9iICpz Y2hlZF9qb2IpCkBAIC0zOTQsNyArMzYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fc2No ZWRfYmFja2VuZF9vcHMgdjNkX2Jpbl9zY2hlZF9vcHMgPSB7CiB9OwogCiBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9zY2hlZF9iYWNrZW5kX29wcyB2M2RfcmVuZGVyX3NjaGVkX29wcyA9IHsKLQku ZGVwZW5kZW5jeSA9IHYzZF9yZW5kZXJfam9iX2RlcGVuZGVuY3ksCisJLmRlcGVuZGVuY3kgPSB2 M2Rfam9iX2RlcGVuZGVuY3ksCiAJLnJ1bl9qb2IgPSB2M2RfcmVuZGVyX2pvYl9ydW4sCiAJLnRp bWVkb3V0X2pvYiA9IHYzZF9yZW5kZXJfam9iX3RpbWVkb3V0LAogCS5mcmVlX2pvYiA9IHYzZF9q b2JfZnJlZSwKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVs