From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 14/26] drm/radeon: fix a bug with the ring syncing code Date: Wed, 25 Apr 2012 14:46:31 +0200 Message-ID: <1335358003-2987-15-git-send-email-deathsimple@vodafone.de> References: <1335358003-2987-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from outgoing.email.vodafone.de (outgoing.email.vodafone.de [139.7.28.128]) by gabe.freedesktop.org (Postfix) with ESMTP id 5C1BA9ECDE for ; Wed, 25 Apr 2012 05:46:53 -0700 (PDT) In-Reply-To: <1335358003-2987-1-git-send-email-deathsimple@vodafone.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org UmluZ3MgbmVlZCB0byBsb2NrIGluIG9yZGVyLCBvdGhlcndpc2UKdGhlIHJpbmcgc3Vic3lzdGVt IGNhbiBkZWFkbG9jay4KCnYyOiBmaXggZXJyb3IgaGFuZGxpbmcgYW5kIG51bWJlciBvZiBsb2Nr ZWQgZG91Ymxld29yZHMuCnYzOiBzdG9wIGNyZWF0aW5nIHVubmVlZGVkIHNlbWFwaG9yZXMuCgpT aWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxkZWF0aHNpbXBsZUB2b2RhZm9uZS5kZT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oICAgICAgICAgICB8ICAgIDQgKysK IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgICAgICAgIHwgICAzNSArKysrKyst LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3NlbWFwaG9yZS5jIHwg ICA1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdHRtLmMgICAgICAgfCAgIDQ2ICsrKysrKysrKystLS0tLS0tLS0tLS0tCiA0IGZp bGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbi5oCmluZGV4IGI5NDZjOTYuLjc5YTM4ZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b24uaApAQCAtNDQyLDYgKzQ0MiwxMCBAQCB2b2lkIHJhZGVvbl9zZW1hcGhvcmVfZW1pdF9zaWdu YWwoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByaW5nLAogCQkJCSAgc3RydWN0IHJh ZGVvbl9zZW1hcGhvcmUgKnNlbWFwaG9yZSk7CiB2b2lkIHJhZGVvbl9zZW1hcGhvcmVfZW1pdF93 YWl0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZywKIAkJCQlzdHJ1Y3QgcmFk ZW9uX3NlbWFwaG9yZSAqc2VtYXBob3JlKTsKK2ludCByYWRlb25fc2VtYXBob3JlX3N5bmNfcmlu Z3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCisJCQkJc3RydWN0IHJhZGVvbl9zZW1hcGhv cmUgKnNlbWFwaG9yZSwKKwkJCQlib29sIHN5bmNfdG9bUkFERU9OX05VTV9SSU5HU10sCisJCQkJ aW50IGRzdF9yaW5nKTsKIHZvaWQgcmFkZW9uX3NlbWFwaG9yZV9mcmVlKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAogCQkJICAgc3RydWN0IHJhZGVvbl9zZW1hcGhvcmUgKnNlbWFwaG9yZSk7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jCmluZGV4IGU3YjBiNWQuLjI0ZmIwMDEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3MuYwpAQCAtMTE4LDYgKzExOCw3IEBAIHN0YXRpYyBp bnQgcmFkZW9uX2NzX2dldF9yaW5nKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLCB1MzIgcmlu ZywgczMyIHByaW9yaXR5CiBzdGF0aWMgaW50IHJhZGVvbl9jc19zeW5jX3JpbmdzKHN0cnVjdCBy YWRlb25fY3NfcGFyc2VyICpwKQogewogCWJvb2wgc3luY190b19yaW5nW1JBREVPTl9OVU1fUklO R1NdID0geyB9OworCWJvb2wgbmVlZF9zeW5jID0gZmFsc2U7CiAJaW50IGksIHI7CiAKIAlmb3Ig KGkgPSAwOyBpIDwgcC0+bnJlbG9jczsgaSsrKSB7CkBAIC0xMjYsMzYgKzEyNywyNCBAQCBzdGF0 aWMgaW50IHJhZGVvbl9jc19zeW5jX3JpbmdzKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwKQog CiAJCWlmICghKHAtPnJlbG9jc1tpXS5mbGFncyAmIFJBREVPTl9SRUxPQ19ET05UX1NZTkMpKSB7 CiAJCQlzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSA9IHAtPnJlbG9jc1tpXS5yb2JqLT50Ym8u c3luY19vYmo7Ci0JCQlpZiAoIXJhZGVvbl9mZW5jZV9zaWduYWxlZChmZW5jZSkpIHsKKwkJCWlm IChmZW5jZS0+cmluZyAhPSBwLT5yaW5nICYmICFyYWRlb25fZmVuY2Vfc2lnbmFsZWQoZmVuY2Up KSB7CiAJCQkJc3luY190b19yaW5nW2ZlbmNlLT5yaW5nXSA9IHRydWU7CisJCQkJbmVlZF9zeW5j ID0gdHJ1ZTsKIAkJCX0KIAkJfQogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTlVNX1JJ TkdTOyArK2kpIHsKLQkJLyogbm8gbmVlZCB0byBzeW5jIHRvIG91ciBvd24gb3IgdW51c2VkIHJp bmdzICovCi0JCWlmIChpID09IHAtPnJpbmcgfHwgIXN5bmNfdG9fcmluZ1tpXSB8fCAhcC0+cmRl di0+cmluZ1tpXS5yZWFkeSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmICghcC0+aWItPmZlbmNlLT5z ZW1hcGhvcmUpIHsKLQkJCXIgPSByYWRlb25fc2VtYXBob3JlX2NyZWF0ZShwLT5yZGV2LCAmcC0+ aWItPmZlbmNlLT5zZW1hcGhvcmUpOwotCQkJaWYgKHIpCi0JCQkJcmV0dXJuIHI7Ci0JCX0KLQot CQlyID0gcmFkZW9uX3JpbmdfbG9jayhwLT5yZGV2LCAmcC0+cmRldi0+cmluZ1tpXSwgMyk7Ci0J CWlmIChyKQotCQkJcmV0dXJuIHI7Ci0JCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF9zaWduYWwocC0+ cmRldiwgaSwgcC0+aWItPmZlbmNlLT5zZW1hcGhvcmUpOwotCQlyYWRlb25fcmluZ191bmxvY2tf Y29tbWl0KHAtPnJkZXYsICZwLT5yZGV2LT5yaW5nW2ldKTsKKwlpZiAoIW5lZWRfc3luYykgewor CQlyZXR1cm4gMDsKKwl9CiAKLQkJciA9IHJhZGVvbl9yaW5nX2xvY2socC0+cmRldiwgJnAtPnJk ZXYtPnJpbmdbcC0+cmluZ10sIDMpOwotCQlpZiAocikKLQkJCXJldHVybiByOwotCQlyYWRlb25f c2VtYXBob3JlX2VtaXRfd2FpdChwLT5yZGV2LCBwLT5yaW5nLCBwLT5pYi0+ZmVuY2UtPnNlbWFw aG9yZSk7Ci0JCXJhZGVvbl9yaW5nX3VubG9ja19jb21taXQocC0+cmRldiwgJnAtPnJkZXYtPnJp bmdbcC0+cmluZ10pOworCXIgPSByYWRlb25fc2VtYXBob3JlX2NyZWF0ZShwLT5yZGV2LCAmcC0+ aWItPmZlbmNlLT5zZW1hcGhvcmUpOworCWlmIChyKSB7CisJCXJldHVybiByOwogCX0KLQlyZXR1 cm4gMDsKKworCXJldHVybiByYWRlb25fc2VtYXBob3JlX3N5bmNfcmluZ3MocC0+cmRldiwgcC0+ aWItPmZlbmNlLT5zZW1hcGhvcmUsCisJCQkJCSAgIHN5bmNfdG9fcmluZywgcC0+cmluZyk7CiB9 CiAKIGludCByYWRlb25fY3NfcGFyc2VyX2luaXQoc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAs IHZvaWQgKmRhdGEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9z ZW1hcGhvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3NlbWFwaG9yZS5jCmlu ZGV4IDMwNDE3NzYuLjY0NGIxZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3NlbWFwaG9yZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3Nl bWFwaG9yZS5jCkBAIC03NSw2ICs3NSw2MiBAQCB2b2lkIHJhZGVvbl9zZW1hcGhvcmVfZW1pdF93 YWl0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZywKIAlyYWRlb25fc2VtYXBo b3JlX3JpbmdfZW1pdChyZGV2LCByaW5nLCAmcmRldi0+cmluZ1tyaW5nXSwgc2VtYXBob3JlLCB0 cnVlKTsKIH0KIAoraW50IHJhZGVvbl9zZW1hcGhvcmVfc3luY19yaW5ncyhzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwKKwkJCQlzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9yZSAqc2VtYXBob3JlLAor CQkJCWJvb2wgc3luY190b1tSQURFT05fTlVNX1JJTkdTXSwKKwkJCQlpbnQgZHN0X3JpbmcpCit7 CisJaW50IGksIHI7CisKKwlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX05VTV9SSU5HUzsgKytpKSB7 CisJCXVuc2lnbmVkIG51bV9vcHMgPSBpID09IGRzdF9yaW5nID8gUkFERU9OX05VTV9SSU5HUyA6 IDE7CisKKwkJLyogZG9uJ3QgbG9jayB1bnVzZWQgcmluZ3MgKi8KKwkJaWYgKCFzeW5jX3RvW2ld ICYmIGkgIT0gZHN0X3JpbmcpCisJCQljb250aW51ZTsKKworCQkvKiBwcmV2ZW50IEdQVSBkZWFk bG9ja3MgKi8KKwkJaWYgKCFyZGV2LT5yaW5nW2ldLnJlYWR5KSB7CisJCQlkZXZfZXJyKHJkZXYt PmRldiwgIlRyeWluZyB0byBzeW5jIHRvIGEgZGlzYWJsZWQgcmluZyEiKTsKKwkJCXIgPSAtRUlO VkFMOworCQkJZ290byBlcnJvcjsKKwkJfQorCisgICAgICAgICAgICAgICAgciA9IHJhZGVvbl9y aW5nX2xvY2socmRldiwgJnJkZXYtPnJpbmdbaV0sIG51bV9vcHMgKiA4KTsKKyAgICAgICAgICAg ICAgICBpZiAocikKKwkJCWdvdG8gZXJyb3I7CisJfQorCisJZm9yIChpID0gMDsgaSA8IFJBREVP Tl9OVU1fUklOR1M7ICsraSkgeworCQkvKiBubyBuZWVkIHRvIHN5bmMgdG8gb3VyIG93biBvciB1 bnVzZWQgcmluZ3MgKi8KKwkJaWYgKCFzeW5jX3RvW2ldIHx8IGkgPT0gZHN0X3JpbmcpCisgICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworCQlyYWRlb25fc2VtYXBob3JlX2VtaXRf c2lnbmFsKHJkZXYsIGksIHNlbWFwaG9yZSk7CisJCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF93YWl0 KHJkZXYsIGRzdF9yaW5nLCBzZW1hcGhvcmUpOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBSQURF T05fTlVNX1JJTkdTOyArK2kpIHsKKworCQkvKiBkb24ndCB1bmxvY2sgdW51c2VkIHJpbmdzICov CisJCWlmICghc3luY190b1tpXSAmJiBpICE9IGRzdF9yaW5nKQorCQkJY29udGludWU7CisKKwkJ cmFkZW9uX3JpbmdfdW5sb2NrX2NvbW1pdChyZGV2LCAmcmRldi0+cmluZ1tpXSk7CisJfQorCisJ cmV0dXJuIDA7CisKK2Vycm9yOgorCS8qIHVubG9jayBhbGwgbG9ja3MgdGFrZW4gc28gZmFyICov CisJZm9yICgtLWk7IGkgPj0gMDsgLS1pKSB7CisJCWlmIChzeW5jX3RvW2ldIHx8IGkgPT0gZHN0 X3JpbmcpIHsKKwkJCXJhZGVvbl9yaW5nX3VubG9ja191bmRvKHJkZXYsICZyZGV2LT5yaW5nW2ld KTsKKwkJfQorCX0KKwlyZXR1cm4gcjsKK30KKwogdm9pZCByYWRlb25fc2VtYXBob3JlX2ZyZWUo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkgICBzdHJ1Y3QgcmFkZW9uX3NlbWFwaG9y ZSAqc2VtYXBob3JlKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwppbmRleCBmNDkz YzY0Li41ZTNkNTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90 dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwpAQCAtMjIyLDgg KzIyMiw4IEBAIHN0YXRpYyBpbnQgcmFkZW9uX21vdmVfYmxpdChzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAogewogCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2OwogCXVpbnQ2NF90IG9s ZF9zdGFydCwgbmV3X3N0YXJ0OwotCXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlOwotCWludCBy LCBpOworCXN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlLCAqb2xkX2ZlbmNlOworCWludCByOwog CiAJcmRldiA9IHJhZGVvbl9nZXRfcmRldihiby0+YmRldik7CiAJciA9IHJhZGVvbl9mZW5jZV9j cmVhdGUocmRldiwgJmZlbmNlLCByYWRlb25fY29weV9yaW5nX2luZGV4KHJkZXYpKTsKQEAgLTI0 Miw2ICsyNDIsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9tb3ZlX2JsaXQoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJVbmtub3du IHBsYWNlbWVudCAlZFxuIiwgb2xkX21lbS0+bWVtX3R5cGUpOworCQlyYWRlb25fZmVuY2VfdW5y ZWYoJmZlbmNlKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXN3aXRjaCAobmV3X21lbS0+bWVt X3R5cGUpIHsKQEAgLTI1Myw0MiArMjU0LDM1IEBAIHN0YXRpYyBpbnQgcmFkZW9uX21vdmVfYmxp dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlicmVhazsKIAlkZWZhdWx0OgogCQlE Uk1fRVJST1IoIlVua25vd24gcGxhY2VtZW50ICVkXG4iLCBvbGRfbWVtLT5tZW1fdHlwZSk7CisJ CXJhZGVvbl9mZW5jZV91bnJlZigmZmVuY2UpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJaWYg KCFyZGV2LT5yaW5nW3JhZGVvbl9jb3B5X3JpbmdfaW5kZXgocmRldildLnJlYWR5KSB7CiAJCURS TV9FUlJPUigiVHJ5aW5nIHRvIG1vdmUgbWVtb3J5IHdpdGggcmluZyB0dXJuZWQgb2ZmLlxuIik7 CisJCXJhZGVvbl9mZW5jZV91bnJlZigmZmVuY2UpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAK IAlCVUlMRF9CVUdfT04oKFBBR0VfU0laRSAlIFJBREVPTl9HUFVfUEFHRV9TSVpFKSAhPSAwKTsK IAogCS8qIHN5bmMgb3RoZXIgcmluZ3MgKi8KLQlpZiAocmRldi0+ZmFtaWx5ID49IENISVBfUjYw MCkgewotCQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX05VTV9SSU5HUzsgKytpKSB7Ci0JCQkvKiBu byBuZWVkIHRvIHN5bmMgdG8gb3VyIG93biBvciB1bnVzZWQgcmluZ3MgKi8KLQkJCWlmIChpID09 IHJhZGVvbl9jb3B5X3JpbmdfaW5kZXgocmRldikgfHwgIXJkZXYtPnJpbmdbaV0ucmVhZHkpCi0J CQkJY29udGludWU7Ci0KLQkJCWlmICghZmVuY2UtPnNlbWFwaG9yZSkgewotCQkJCXIgPSByYWRl b25fc2VtYXBob3JlX2NyZWF0ZShyZGV2LCAmZmVuY2UtPnNlbWFwaG9yZSk7Ci0JCQkJLyogRklY TUU6IGhhbmRsZSBzZW1hcGhvcmUgZXJyb3IgKi8KLQkJCQlpZiAocikKLQkJCQkJY29udGludWU7 Ci0JCQl9CisJb2xkX2ZlbmNlID0gYm8tPnN5bmNfb2JqOworCWlmIChvbGRfZmVuY2UgJiYgb2xk X2ZlbmNlLT5yaW5nICE9IGZlbmNlLT5yaW5nCisJICAgICYmICFyYWRlb25fZmVuY2Vfc2lnbmFs ZWQob2xkX2ZlbmNlKSkgeworCQlib29sIHN5bmNfdG9fcmluZ1tSQURFT05fTlVNX1JJTkdTXSA9 IHsgfTsKKwkJc3luY190b19yaW5nW29sZF9mZW5jZS0+cmluZ10gPSB0cnVlOworCisJCXIgPSBy YWRlb25fc2VtYXBob3JlX2NyZWF0ZShyZGV2LCAmZmVuY2UtPnNlbWFwaG9yZSk7CisJCWlmIChy KSB7CisJCQlyYWRlb25fZmVuY2VfdW5yZWYoJmZlbmNlKTsKKwkJCXJldHVybiByOworCQl9CiAK LQkJCXIgPSByYWRlb25fcmluZ19sb2NrKHJkZXYsICZyZGV2LT5yaW5nW2ldLCAzKTsKLQkJCS8q IEZJWE1FOiBoYW5kbGUgcmluZyBsb2NrIGVycm9yICovCi0JCQlpZiAocikKLQkJCQljb250aW51 ZTsKLQkJCXJhZGVvbl9zZW1hcGhvcmVfZW1pdF9zaWduYWwocmRldiwgaSwgZmVuY2UtPnNlbWFw aG9yZSk7Ci0JCQlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHJkZXYsICZyZGV2LT5yaW5nW2ld KTsKLQotCQkJciA9IHJhZGVvbl9yaW5nX2xvY2socmRldiwgJnJkZXYtPnJpbmdbcmFkZW9uX2Nv cHlfcmluZ19pbmRleChyZGV2KV0sIDMpOwotCQkJLyogRklYTUU6IGhhbmRsZSByaW5nIGxvY2sg ZXJyb3IgKi8KLQkJCWlmIChyKQotCQkJCWNvbnRpbnVlOwotCQkJcmFkZW9uX3NlbWFwaG9yZV9l bWl0X3dhaXQocmRldiwgcmFkZW9uX2NvcHlfcmluZ19pbmRleChyZGV2KSwgZmVuY2UtPnNlbWFw aG9yZSk7Ci0JCQlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHJkZXYsICZyZGV2LT5yaW5nW3Jh ZGVvbl9jb3B5X3JpbmdfaW5kZXgocmRldildKTsKKwkJciA9IHJhZGVvbl9zZW1hcGhvcmVfc3lu Y19yaW5ncyhyZGV2LCBmZW5jZS0+c2VtYXBob3JlLAorCQkJCQkJc3luY190b19yaW5nLCBmZW5j ZS0+cmluZyk7CisJCWlmIChyKSB7CisJCQlyYWRlb25fZmVuY2VfdW5yZWYoJmZlbmNlKTsKKwkJ CXJldHVybiByOwogCQl9CiAJfQogCi0tIAoxLjcuNS40CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=