From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 02/13] drm/amdgpu: add irq domain support Date: Fri, 4 Dec 2015 18:40:30 -0500 Message-ID: <1449272440-8735-3-git-send-email-alexander.deucher@amd.com> References: <1449272440-8735-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1449272440-8735-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: broonie@kernel.org, airlied@gmail.com, dri-devel@lists.freedesktop.org, alsa-devel@alsa-project.org, maruthi.bayyavarapu@amd.com, rajeevkumar.linux@gmail.com Cc: Alex Deucher , lgirdwood@gmail.com, perex@perex.cz List-Id: alsa-devel@alsa-project.org SGFyZHdhcmUgYmxvY2tzIG9uIHRoZSBHUFUgbGlrZSBBQ1AgZ2VuZXJhdGUgaW50ZXJydXB0cyBp bgp0aGUgR1BVIGludGVycnVwdCBjb250cm9sbGVyLCBidXQgYXJlIGRyaXZlbiBieSBhIHNlcGFy YXRlCmRyaXZlci4gIEFkZCBhbiBpcnEgZG9tYWluIHRvIHRoZSBHUFUgZHJpdmVyIHNvIHRoYXQK YmxvY2tzIGxpa2UgQUNQIGNhbiByZWdpc3RlciBhIExpbnV4IGludGVycnVwdC4KClNpZ25lZC1v ZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmMgfCAxMDggKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEu aCB8ICAgOSArKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19paC5jICAgICB8ICAg NiArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY3pfaWguYyAgICAgIHwgICA3ICsrKwog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvaWNlbGFuZF9paC5jIHwgICA3ICsrKwogZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWguYyAgIHwgICA3ICsrKwogNiBmaWxlcyBjaGFu Z2VkLCAxMzYgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfaXJxLmMKaW5kZXggN2M0MmZmNi4uMzAwNjE4MiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pcnEuYwpAQCAtMzEyLDYgKzMxMiw3IEBAIGludCBhbWRn cHVfaXJxX2FkZF9pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgc3JjX2lk LAogCX0KIAogCWFkZXYtPmlycS5zb3VyY2VzW3NyY19pZF0gPSBzb3VyY2U7CisKIAlyZXR1cm4g MDsKIH0KIApAQCAtMzM1LDE1ICszMzYsMTkgQEAgdm9pZCBhbWRncHVfaXJxX2Rpc3BhdGNoKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlyZXR1cm47CiAJfQogCi0Jc3JjID0gYWRldi0+ aXJxLnNvdXJjZXNbc3JjX2lkXTsKLQlpZiAoIXNyYykgewotCQlEUk1fREVCVUcoIlVuaGFuZGxl ZCBpbnRlcnJ1cHQgc3JjX2lkOiAlZFxuIiwgc3JjX2lkKTsKLQkJcmV0dXJuOwotCX0KKwlpZiAo YWRldi0+aXJxLnZpcnFbc3JjX2lkXSkgeworCQlnZW5lcmljX2hhbmRsZV9pcnEoaXJxX2ZpbmRf bWFwcGluZyhhZGV2LT5pcnEuZG9tYWluLCBzcmNfaWQpKTsKKwl9IGVsc2UgeworCQlzcmMgPSBh ZGV2LT5pcnEuc291cmNlc1tzcmNfaWRdOworCQlpZiAoIXNyYykgeworCQkJRFJNX0RFQlVHKCJV bmhhbmRsZWQgaW50ZXJydXB0IHNyY19pZDogJWRcbiIsIHNyY19pZCk7CisJCQlyZXR1cm47CisJ CX0KIAotCXIgPSBzcmMtPmZ1bmNzLT5wcm9jZXNzKGFkZXYsIHNyYywgZW50cnkpOwotCWlmIChy KQotCQlEUk1fRVJST1IoImVycm9yIHByb2Nlc3NpbmcgaW50ZXJydXB0ICglZClcbiIsIHIpOwor CQlyID0gc3JjLT5mdW5jcy0+cHJvY2VzcyhhZGV2LCBzcmMsIGVudHJ5KTsKKwkJaWYgKHIpCisJ CQlEUk1fRVJST1IoImVycm9yIHByb2Nlc3NpbmcgaW50ZXJydXB0ICglZClcbiIsIHIpOworCX0K IH0KIAogLyoqCkBAIC00NjEsMyArNDY2LDkwIEBAIGJvb2wgYW1kZ3B1X2lycV9lbmFibGVkKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKnNyYywKIAog CXJldHVybiAhIWF0b21pY19yZWFkKCZzcmMtPmVuYWJsZWRfdHlwZXNbdHlwZV0pOwogfQorCisv KiBnZW4gaXJxICovCitzdGF0aWMgdm9pZCBhbWRncHVfaXJxX21hc2soc3RydWN0IGlycV9kYXRh ICppcnFkKQoreworCS8qIFhYWCAqLworfQorCitzdGF0aWMgdm9pZCBhbWRncHVfaXJxX3VubWFz ayhzdHJ1Y3QgaXJxX2RhdGEgKmlycWQpCit7CisJLyogWFhYICovCit9CisKK3N0YXRpYyBzdHJ1 Y3QgaXJxX2NoaXAgYW1kZ3B1X2lycV9jaGlwID0geworCS5uYW1lID0gImFtZGdwdS1paCIsCisJ LmlycV9tYXNrID0gYW1kZ3B1X2lycV9tYXNrLAorCS5pcnFfdW5tYXNrID0gYW1kZ3B1X2lycV91 bm1hc2ssCit9OworCitzdGF0aWMgaW50IGFtZGdwdV9pcnFkb21haW5fbWFwKHN0cnVjdCBpcnFf ZG9tYWluICpkLAorCQkJCXVuc2lnbmVkIGludCBpcnEsIGlycV9od19udW1iZXJfdCBod2lycSkK K3sKKwlpZiAoaHdpcnEgPj0gQU1ER1BVX01BWF9JUlFfU1JDX0lEKQorCQlyZXR1cm4gLUVQRVJN OworCisJaXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKGlycSwKKwkJCQkgJmFtZGdwdV9pcnFfY2hp cCwgaGFuZGxlX3NpbXBsZV9pcnEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGly cV9kb21haW5fb3BzIGFtZGdwdV9od19pcnFkb21haW5fb3BzID0geworCS5tYXAgPSBhbWRncHVf aXJxZG9tYWluX21hcCwKK307CisKKy8qKgorICogYW1kZ3B1X2lycV9hZGRfZG9tYWluIC0gY3Jl YXRlIGEgbGluZWFyIGlycSBkb21haW4KKyAqCisgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2lu dGVyCisgKgorICogQ3JlYXRlIGFuIGlycSBkb21haW4gZm9yIEdQVSBpbnRlcnJ1cHQgc291cmNl cworICogdGhhdCBtYXkgYmUgZHJpdmVuIGJ5IGFub3RoZXIgZHJpdmVyIChlLmcuLCBBQ1ApLgor ICovCitpbnQgYW1kZ3B1X2lycV9hZGRfZG9tYWluKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQoreworCWFkZXYtPmlycS5kb21haW4gPSBpcnFfZG9tYWluX2FkZF9saW5lYXIoTlVMTCwgQU1E R1BVX01BWF9JUlFfU1JDX0lELAorCQkJCQkJICZhbWRncHVfaHdfaXJxZG9tYWluX29wcywgYWRl dik7CisJaWYgKCFhZGV2LT5pcnEuZG9tYWluKSB7CisJCURSTV9FUlJPUigiR1BVIGlycSBhZGQg ZG9tYWluIGZhaWxlZFxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXJldHVybiAwOwor fQorCisvKioKKyAqIGFtZGdwdV9pcnFfcmVtb3ZlX2RvbWFpbiAtIHJlbW92ZSB0aGUgaXJxIGRv bWFpbgorICoKKyAqIEBhZGV2OiBhbWRncHUgZGV2aWNlIHBvaW50ZXIKKyAqCisgKiBSZW1vdmUg dGhlIGlycSBkb21haW4gZm9yIEdQVSBpbnRlcnJ1cHQgc291cmNlcworICogdGhhdCBtYXkgYmUg ZHJpdmVuIGJ5IGFub3RoZXIgZHJpdmVyIChlLmcuLCBBQ1ApLgorICovCit2b2lkIGFtZGdwdV9p cnFfcmVtb3ZlX2RvbWFpbihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwlpZiAoYWRl di0+aXJxLmRvbWFpbikgeworCQlpcnFfZG9tYWluX3JlbW92ZShhZGV2LT5pcnEuZG9tYWluKTsK KwkJYWRldi0+aXJxLmRvbWFpbiA9IE5VTEw7CisJfQorfQorCisvKioKKyAqIGFtZGdwdV9pcnFf Y3JlYXRlX21hcHBpbmcgLSBjcmVhdGUgYSBtYXBwaW5nIGJldHdlZW4gYSBkb21haW4gaXJxIGFu ZCBhCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGludXggaXJxCisgKgorICogQGFk ZXY6IGFtZGdwdSBkZXZpY2UgcG9pbnRlcgorICogQHNyY19pZDogSUggc291cmNlIGlkCisgKgor ICogQ3JlYXRlIGEgbWFwcGluZyBiZXR3ZWVuIGEgZG9tYWluIGlycSAoR1BVIElIIHNyYyBpZCkg YW5kIGEgTGludXggaXJxCisgKiBVc2UgdGhpcyBmb3IgY29tcG9uZW50cyB0aGF0IGdlbmVyYXRl IGEgR1BVIGludGVycnVwdCwgYnV0IGFyZSBkcml2ZW4KKyAqIGJ5IGEgZGlmZmVyZW50IGRyaXZl ciAoZS5nLiwgQUNQKS4KKyAqIFJldHVybnMgdGhlIExpbnV4IGlycS4KKyAqLwordW5zaWduZWQg YW1kZ3B1X2lycV9jcmVhdGVfbWFwcGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5z aWduZWQgc3JjX2lkKQoreworCWFkZXYtPmlycS52aXJxW3NyY19pZF0gPSBpcnFfY3JlYXRlX21h cHBpbmcoYWRldi0+aXJxLmRvbWFpbiwgc3JjX2lkKTsKKworCXJldHVybiBhZGV2LT5pcnEudmly cVtzcmNfaWRdOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2lycS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2lycS5oCmluZGV4 IDE3YjAxYWVmLi5lMTI0YjU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfaXJxLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ly cS5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaWZuZGVmIF9fQU1ER1BVX0lSUV9IX18KICNkZWZpbmUg X19BTURHUFVfSVJRX0hfXwogCisjaW5jbHVkZSA8bGludXgvaXJxZG9tYWluLmg+CiAjaW5jbHVk ZSAiYW1kZ3B1X2loLmgiCiAKICNkZWZpbmUgQU1ER1BVX01BWF9JUlFfU1JDX0lECTB4MTAwCkBA IC02NSw2ICs2NiwxMCBAQCBzdHJ1Y3QgYW1kZ3B1X2lycSB7CiAJLyogaW50ZXJydXB0IHJpbmcg Ki8KIAlzdHJ1Y3QgYW1kZ3B1X2loX3JpbmcJCWloOwogCWNvbnN0IHN0cnVjdCBhbWRncHVfaWhf ZnVuY3MJKmloX2Z1bmNzOworCisJLyogZ2VuIGlycSBzdHVmZiAqLworCXN0cnVjdCBpcnFfZG9t YWluCQkqZG9tYWluOyAvKiBHUFUgaXJxIGNvbnRyb2xsZXIgZG9tYWluICovCisJdW5zaWduZWQJ CQl2aXJxW0FNREdQVV9NQVhfSVJRX1NSQ19JRF07CiB9OwogCiB2b2lkIGFtZGdwdV9pcnFfcHJl aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKQEAgLTkwLDQgKzk1LDggQEAgaW50IGFt ZGdwdV9pcnFfcHV0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2ly cV9zcmMgKnNyYywKIGJvb2wgYW1kZ3B1X2lycV9lbmFibGVkKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKnNyYywKIAkJCXVuc2lnbmVkIHR5cGUpOwog CitpbnQgYW1kZ3B1X2lycV9hZGRfZG9tYWluKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsK K3ZvaWQgYW1kZ3B1X2lycV9yZW1vdmVfZG9tYWluKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KTsKK3Vuc2lnbmVkIGFtZGdwdV9pcnFfY3JlYXRlX21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsIHVuc2lnbmVkIHNyY19pZCk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvY2lrX2loLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9jaWtfaWguYwppbmRleCA4OTkzYzUwLi4zMGM5YjNiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvY2lrX2loLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvY2lrX2loLmMKQEAgLTI3NCw2ICsyNzQsMTEgQEAgc3RhdGljIHZvaWQgY2lrX2loX3NldF9y cHRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogc3RhdGljIGludCBjaWtfaWhfZWFybHlf aW5pdCh2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7CisJaW50IHJldDsKKworCXJldCA9IGFtZGdwdV9p cnFfYWRkX2RvbWFpbihhZGV2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCiAJY2lrX2lo X3NldF9pbnRlcnJ1cHRfZnVuY3MoYWRldik7CiAKQEAgLTMwMCw2ICszMDUsNyBAQCBzdGF0aWMg aW50IGNpa19paF9zd19maW5pKHZvaWQgKmhhbmRsZSkKIAogCWFtZGdwdV9pcnFfZmluaShhZGV2 KTsKIAlhbWRncHVfaWhfcmluZ19maW5pKGFkZXYpOworCWFtZGdwdV9pcnFfcmVtb3ZlX2RvbWFp bihhZGV2KTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvY3pfaWguYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2N6X2loLmMKaW5k ZXggYmM3NTFiZi4uYzc5NjM4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvY3pfaWguYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jel9paC5jCkBAIC0y NTMsOCArMjUzLDE0IEBAIHN0YXRpYyB2b2lkIGN6X2loX3NldF9ycHRyKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQogc3RhdGljIGludCBjel9paF9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkK IHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq KWhhbmRsZTsKKwlpbnQgcmV0OworCisJcmV0ID0gYW1kZ3B1X2lycV9hZGRfZG9tYWluKGFkZXYp OworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAljel9paF9zZXRfaW50ZXJydXB0X2Z1bmNz KGFkZXYpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI3OCw2ICsyODQsNyBAQCBzdGF0aWMgaW50 IGN6X2loX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQogCiAJYW1kZ3B1X2lycV9maW5pKGFkZXYpOwog CWFtZGdwdV9paF9yaW5nX2ZpbmkoYWRldik7CisJYW1kZ3B1X2lycV9yZW1vdmVfZG9tYWluKGFk ZXYpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9pY2VsYW5kX2loLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9pY2VsYW5kX2lo LmMKaW5kZXggNzc5NTMyZC4uNjc5ZTczOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvaWNlbGFuZF9paC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2lj ZWxhbmRfaWguYwpAQCAtMjUzLDggKzI1MywxNCBAQCBzdGF0aWMgdm9pZCBpY2VsYW5kX2loX3Nl dF9ycHRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogc3RhdGljIGludCBpY2VsYW5kX2lo X2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOworCWludCByZXQ7CisKKwlyZXQgPSBh bWRncHVfaXJxX2FkZF9kb21haW4oYWRldik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAog CWljZWxhbmRfaWhfc2V0X2ludGVycnVwdF9mdW5jcyhhZGV2KTsKKwogCXJldHVybiAwOwogfQog CkBAIC0yNzgsNiArMjg0LDcgQEAgc3RhdGljIGludCBpY2VsYW5kX2loX3N3X2Zpbmkodm9pZCAq aGFuZGxlKQogCiAJYW1kZ3B1X2lycV9maW5pKGFkZXYpOwogCWFtZGdwdV9paF9yaW5nX2Zpbmko YWRldik7CisJYW1kZ3B1X2lycV9yZW1vdmVfZG9tYWluKGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS90b25nYV9paC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdG9uZ2FfaWguYwppbmRleCA3NDNjMzcyLi5iNmY3ZDdi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS90b25nYV9paC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3RvbmdhX2loLmMKQEAgLTI3Myw4ICsyNzMsMTQg QEAgc3RhdGljIHZvaWQgdG9uZ2FfaWhfc2V0X3JwdHIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpCiBzdGF0aWMgaW50IHRvbmdhX2loX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQogewogCXN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxl OworCWludCByZXQ7CisKKwlyZXQgPSBhbWRncHVfaXJxX2FkZF9kb21haW4oYWRldik7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKIAogCXRvbmdhX2loX3NldF9pbnRlcnJ1cHRfZnVuY3MoYWRl dik7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzAxLDYgKzMwNyw3IEBAIHN0YXRpYyBpbnQgdG9u Z2FfaWhfc3dfZmluaSh2b2lkICpoYW5kbGUpCiAKIAlhbWRncHVfaXJxX2ZpbmkoYWRldik7CiAJ YW1kZ3B1X2loX3JpbmdfZmluaShhZGV2KTsKKwlhbWRncHVfaXJxX2FkZF9kb21haW4oYWRldik7 CiAKIAlyZXR1cm4gMDsKIH0KLS0gCjEuOC4zLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==