From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.4 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3F01DC433DF for ; Mon, 3 Aug 2020 06:23:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 16BC720719 for ; Mon, 3 Aug 2020 06:23:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="k1bV+uth" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728403AbgHCGXK (ORCPT ); Mon, 3 Aug 2020 02:23:10 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:37343 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725965AbgHCGXJ (ORCPT ); Mon, 3 Aug 2020 02:23:09 -0400 X-UUID: 6c3b5506e7c946888370b3420ff7006b-20200803 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=12BHCE2vfEXwwIMIMyUnGPJn1q3j4PEk4JE0VxRfC5M=; b=k1bV+uthV83tZTeDOlxtCXzcGBG2i8py4srHEYhHbsSysHrphW2vOuqE/I+vZNvgd4DkJ0whU2T7069WmUzODtNe2h9ZtxMW2YAu6aCmofI7BtqtCswGbW4fsRB/xCohdhgMH+ZsTo3VmEDXDT99IXK2bcyQ2TvZ1lZh8dMdW4Q=; X-UUID: 6c3b5506e7c946888370b3420ff7006b-20200803 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1288114947; Mon, 03 Aug 2020 14:23:03 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 3 Aug 2020 14:23:00 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 3 Aug 2020 14:23:01 +0800 From: Mark-PK Tsai To: CC: , , , , , , , , , , Subject: [PATCH 1/2] irqchip: irq-mt58xx: Add mt58xx interrupt controller support Date: Mon, 3 Aug 2020 14:22:13 +0800 Message-ID: <20200803062214.24076-2-mark-pk.tsai@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200803062214.24076-1-mark-pk.tsai@mediatek.com> References: <20200803062214.24076-1-mark-pk.tsai@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org QWRkIG10NTh4eCBpbnRlcnJ1cHQgY29udHJvbGxlciBzdXBwb3J0IHVzaW5nIGhpZXJhcmNoeSBp cnENCmRvbWFpbi4NCg0KU2lnbmVkLW9mZi1ieTogTWFyay1QSyBUc2FpIDxtYXJrLXBrLnRzYWlA bWVkaWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy9pcnFjaGlwL0tjb25maWcgICAgICB8ICAgNyAr Kw0KIGRyaXZlcnMvaXJxY2hpcC9NYWtlZmlsZSAgICAgfCAgIDEgKw0KIGRyaXZlcnMvaXJxY2hp cC9pcnEtbXQ1OHh4LmMgfCAxOTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysN CiAzIGZpbGVzIGNoYW5nZWQsIDIwNCBpbnNlcnRpb25zKCspDQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvaXJxY2hpcC9pcnEtbXQ1OHh4LmMNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXJx Y2hpcC9LY29uZmlnIGIvZHJpdmVycy9pcnFjaGlwL0tjb25maWcNCmluZGV4IDIxNmIzYjgzOTJi NS4uMDA0NTNhZjc4YmUwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pcnFjaGlwL0tjb25maWcNCisr KyBiL2RyaXZlcnMvaXJxY2hpcC9LY29uZmlnDQpAQCAtNTcyLDQgKzU3MiwxMSBAQCBjb25maWcg TE9PTkdTT05fUENIX01TSQ0KIAloZWxwDQogCSAgU3VwcG9ydCBmb3IgdGhlIExvb25nc29uIFBD SCBNU0kgQ29udHJvbGxlci4NCiANCitjb25maWcgTVQ1OFhYX0lSUQ0KKwlib29sICJNVDU4WFgg SVJRIg0KKwlzZWxlY3QgSVJRX0RPTUFJTg0KKwlzZWxlY3QgSVJRX0RPTUFJTl9ISUVSQVJDSFkN CisJaGVscA0KKwkgIFN1cHBvcnQgTWVkaWF0ZWsgTVQ1OFhYIEludGVycnVwdCBDb250cm9sbGVy Lg0KKw0KIGVuZG1lbnUNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lycWNoaXAvTWFrZWZpbGUgYi9k cml2ZXJzL2lycWNoaXAvTWFrZWZpbGUNCmluZGV4IDEzM2Y5YzQ1NzQ0YS4uNTA2MmU5YmZhOTJk IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pcnFjaGlwL01ha2VmaWxlDQorKysgYi9kcml2ZXJzL2ly cWNoaXAvTWFrZWZpbGUNCkBAIC0xMTEsMyArMTExLDQgQEAgb2JqLSQoQ09ORklHX0xPT05HU09O X0hUUElDKQkJKz0gaXJxLWxvb25nc29uLWh0cGljLm8NCiBvYmotJChDT05GSUdfTE9PTkdTT05f SFRWRUMpCQkrPSBpcnEtbG9vbmdzb24taHR2ZWMubw0KIG9iai0kKENPTkZJR19MT09OR1NPTl9Q Q0hfUElDKQkJKz0gaXJxLWxvb25nc29uLXBjaC1waWMubw0KIG9iai0kKENPTkZJR19MT09OR1NP Tl9QQ0hfTVNJKQkJKz0gaXJxLWxvb25nc29uLXBjaC1tc2kubw0KK29iai0kKENPTkZJR19NVDU4 WFhfSVJRKQkJKz0gaXJxLW10NTh4eC5vDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pcnFjaGlwL2ly cS1tdDU4eHguYyBiL2RyaXZlcnMvaXJxY2hpcC9pcnEtbXQ1OHh4LmMNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLmU0NWFkMDIzYWZhNg0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZHJpdmVycy9pcnFjaGlwL2lycS1tdDU4eHguYw0KQEAgLTAsMCArMSwxOTYgQEANCisv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogKEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlKQ0KKy8q DQorICogQ29weXJpZ2h0IChjKSAyMDIwIE1lZGlhVGVrIEluYy4NCisgKiBBdXRob3IgTWFyay1Q SyBUc2FpIDxtYXJrLXBrLnRzYWlAbWVkaWF0ZWsuY29tPg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxs aW51eC9pbnRlcnJ1cHQuaD4NCisjaW5jbHVkZSA8bGludXgvaW8uaD4NCisjaW5jbHVkZSA8bGlu dXgvaXJxLmg+DQorI2luY2x1ZGUgPGxpbnV4L2lycWNoaXAuaD4NCisjaW5jbHVkZSA8bGludXgv aXJxZG9tYWluLmg+DQorI2luY2x1ZGUgPGxpbnV4L29mLmg+DQorI2luY2x1ZGUgPGxpbnV4L29m X2FkZHJlc3MuaD4NCisjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+DQorI2luY2x1ZGUgPGxpbnV4 L3NsYWIuaD4NCisNCisjZGVmaW5lIElOVENfTUFTSwkweDANCisjZGVmaW5lIElOVENfRU9JCTB4 MjANCisNCitzdHJ1Y3QgbXRrX2ludGNfY2hpcF9kYXRhIHsNCisJY2hhciAqbmFtZTsNCisJc3Ry dWN0IGlycV9jaGlwIGNoaXA7DQorCXVuc2lnbmVkIGludCBpcnFfc3RhcnQsIG5yX2lycXM7DQor CXZvaWQgX19pb21lbSAqYmFzZTsNCit9Ow0KKw0KK3N0YXRpYyB2b2lkIG10a19wb2tlX2lycShz dHJ1Y3QgaXJxX2RhdGEgKmQsIHUzMiBvZmZzZXQpDQorew0KKwlzdHJ1Y3QgbXRrX2ludGNfY2hp cF9kYXRhICpjZCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpOw0KKwl2b2lkIF9faW9t ZW0gKmJhc2UgPSBjZC0+YmFzZTsNCisJdTggaW5kZXggPSAodTgpaXJxZF90b19od2lycShkKTsN CisJdTE2IHZhbCwgbWFzazsNCisNCisJbWFzayA9IDEgPDwgKGluZGV4ICUgMTYpOw0KKwl2YWwg PSByZWFkd19yZWxheGVkKGJhc2UgKyBvZmZzZXQgKyAoaW5kZXggLyAxNikgKiA0KSB8IG1hc2s7 DQorCXdyaXRld19yZWxheGVkKHZhbCwgYmFzZSArIG9mZnNldCArIChpbmRleCAvIDE2KSAqIDQp Ow0KK30NCisNCitzdGF0aWMgdm9pZCBtdGtfY2xlYXJfaXJxKHN0cnVjdCBpcnFfZGF0YSAqZCwg dTMyIG9mZnNldCkNCit7DQorCXN0cnVjdCBtdGtfaW50Y19jaGlwX2RhdGEgKmNkID0gaXJxX2Rh dGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7DQorCXZvaWQgX19pb21lbSAqYmFzZSA9IGNkLT5iYXNl Ow0KKwl1OCBpbmRleCA9ICh1OClpcnFkX3RvX2h3aXJxKGQpOw0KKwl1MTYgdmFsLCBtYXNrOw0K Kw0KKwltYXNrID0gMSA8PCAoaW5kZXggJSAxNik7DQorCXZhbCA9IHJlYWR3X3JlbGF4ZWQoYmFz ZSArIG9mZnNldCArIChpbmRleCAvIDE2KSAqIDQpICYgfm1hc2s7DQorCXdyaXRld19yZWxheGVk KHZhbCwgYmFzZSArIG9mZnNldCArIChpbmRleCAvIDE2KSAqIDQpOw0KK30NCisNCitzdGF0aWMg dm9pZCBtdGtfaW50Y19tYXNrX2lycShzdHJ1Y3QgaXJxX2RhdGEgKmQpDQorew0KKwltdGtfcG9r ZV9pcnEoZCwgSU5UQ19NQVNLKTsNCisJaXJxX2NoaXBfbWFza19wYXJlbnQoZCk7DQorfQ0KKw0K K3N0YXRpYyB2b2lkIG10a19pbnRjX3VubWFza19pcnEoc3RydWN0IGlycV9kYXRhICpkKQ0KK3sN CisJbXRrX2NsZWFyX2lycShkLCBJTlRDX01BU0spOw0KKwlpcnFfY2hpcF91bm1hc2tfcGFyZW50 KGQpOw0KK30NCisNCitzdGF0aWMgdm9pZCBtdGtfaW50Y19lb2lfaXJxKHN0cnVjdCBpcnFfZGF0 YSAqZCkNCit7DQorCW10a19wb2tlX2lycShkLCBJTlRDX0VPSSk7DQorCWlycV9jaGlwX2VvaV9w YXJlbnQoZCk7DQorfQ0KKw0KK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgbXRrX2ludGNfY2hpcCA9 IHsNCisJLmlycV9tYXNrCQk9IG10a19pbnRjX21hc2tfaXJxLA0KKwkuaXJxX3VubWFzawkJPSBt dGtfaW50Y191bm1hc2tfaXJxLA0KKwkuaXJxX2VvaQkJPSBtdGtfaW50Y19lb2lfaXJxLA0KKwku aXJxX2dldF9pcnFjaGlwX3N0YXRlCT0gaXJxX2NoaXBfZ2V0X3BhcmVudF9zdGF0ZSwNCisJLmly cV9zZXRfaXJxY2hpcF9zdGF0ZQk9IGlycV9jaGlwX3NldF9wYXJlbnRfc3RhdGUsDQorCS5pcnFf c2V0X2FmZmluaXR5CT0gaXJxX2NoaXBfc2V0X2FmZmluaXR5X3BhcmVudCwNCisJLmlycV9zZXRf dmNwdV9hZmZpbml0eQk9IGlycV9jaGlwX3NldF92Y3B1X2FmZmluaXR5X3BhcmVudCwNCisJLmly cV9zZXRfdHlwZQkJPSBpcnFfY2hpcF9zZXRfdHlwZV9wYXJlbnQsDQorCS5mbGFncwkJCT0gSVJR Q0hJUF9TRVRfVFlQRV9NQVNLRUQgfA0KKwkJCQkgIElSUUNISVBfU0tJUF9TRVRfV0FLRSB8DQor CQkJCSAgSVJRQ0hJUF9NQVNLX09OX1NVU1BFTkQsDQorfTsNCisNCitzdGF0aWMgaW50IG10NTh4 eF9pbnRjX2RvbWFpbl90cmFuc2xhdGUoc3RydWN0IGlycV9kb21haW4gKmQsDQorCQkJCQlzdHJ1 Y3QgaXJxX2Z3c3BlYyAqZndzcGVjLA0KKwkJCQkJdW5zaWduZWQgbG9uZyAqaHdpcnEsDQorCQkJ CQl1bnNpZ25lZCBpbnQgKnR5cGUpDQorew0KKwlpZiAoaXNfb2Zfbm9kZShmd3NwZWMtPmZ3bm9k ZSkpIHsNCisJCWlmIChmd3NwZWMtPnBhcmFtX2NvdW50ICE9IDMpDQorCQkJcmV0dXJuIC1FSU5W QUw7DQorDQorCQkvKiBObyBQUEkgc2hvdWxkIHBvaW50IHRvIHRoaXMgZG9tYWluICovDQorCQlp ZiAoZndzcGVjLT5wYXJhbVswXSAhPSAwKQ0KKwkJCXJldHVybiAtRUlOVkFMOw0KKw0KKwkJKmh3 aXJxID0gZndzcGVjLT5wYXJhbVsxXTsNCisJCSp0eXBlID0gZndzcGVjLT5wYXJhbVsyXSAmIElS UV9UWVBFX1NFTlNFX01BU0s7DQorCQlyZXR1cm4gMDsNCisJfQ0KKw0KKwlyZXR1cm4gLUVJTlZB TDsNCit9DQorDQorc3RhdGljIGludCBtdDU4eHhfaW50Y19kb21haW5fYWxsb2Moc3RydWN0IGly cV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IHZpcnEsDQorCQkJCSAgICB1bnNpZ25lZCBp bnQgbnJfaXJxcywgdm9pZCAqZGF0YSkNCit7DQorCWludCBpOw0KKwlpcnFfaHdfbnVtYmVyX3Qg aHdpcnE7DQorCXN0cnVjdCBpcnFfZndzcGVjIHBhcmVudF9md3NwZWMsICpmd3NwZWMgPSBkYXRh Ow0KKwlzdHJ1Y3QgbXRrX2ludGNfY2hpcF9kYXRhICpjZCA9IChzdHJ1Y3QgbXRrX2ludGNfY2hp cF9kYXRhICopZG9tYWluLT5ob3N0X2RhdGE7DQorDQorCS8qIE5vdCBHSUMgY29tcGxpYW50ICov DQorCWlmIChmd3NwZWMtPnBhcmFtX2NvdW50ICE9IDMpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisN CisJLyogTm8gUFBJIHNob3VsZCBwb2ludCB0byB0aGlzIGRvbWFpbiAqLw0KKwlpZiAoZndzcGVj LT5wYXJhbVswXSkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlpZiAoZndzcGVjLT5wYXJhbVsx XSA+PSBjZC0+bnJfaXJxcykNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwlod2lycSA9IGZ3c3Bl Yy0+cGFyYW1bMV07DQorCWZvciAoaSA9IDA7IGkgPCBucl9pcnFzOyBpKyspDQorCQlpcnFfZG9t YWluX3NldF9od2lycV9hbmRfY2hpcChkb21haW4sIHZpcnEgKyBpLCBod2lycSArIGksDQorCQkJ CQkgICAgICAmY2QtPmNoaXAsDQorCQkJCQkgICAgICBkb21haW4tPmhvc3RfZGF0YSk7DQorDQor CXBhcmVudF9md3NwZWMgPSAqZndzcGVjOw0KKwlwYXJlbnRfZndzcGVjLmZ3bm9kZSA9IGRvbWFp bi0+cGFyZW50LT5md25vZGU7DQorCXBhcmVudF9md3NwZWMucGFyYW1bMV0gPSBjZC0+aXJxX3N0 YXJ0ICsgaHdpcnE7DQorCXJldHVybiBpcnFfZG9tYWluX2FsbG9jX2lycXNfcGFyZW50KGRvbWFp biwgdmlycSwgbnJfaXJxcywgJnBhcmVudF9md3NwZWMpOw0KK30NCisNCitzdGF0aWMgY29uc3Qg c3RydWN0IGlycV9kb21haW5fb3BzIG10NTh4eF9pbnRjX2RvbWFpbl9vcHMgPSB7DQorCS50cmFu c2xhdGUJPSBtdDU4eHhfaW50Y19kb21haW5fdHJhbnNsYXRlLA0KKwkuYWxsb2MJCT0gbXQ1OHh4 X2ludGNfZG9tYWluX2FsbG9jLA0KKwkuZnJlZQkJPSBpcnFfZG9tYWluX2ZyZWVfaXJxc19jb21t b24sDQorfTsNCisNCitpbnQgX19pbml0DQorbXQ1OHh4X2ludGNfb2ZfaW5pdChzdHJ1Y3QgZGV2 aWNlX25vZGUgKmRuLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhcmVudCkNCit7DQorCXN0YXRpYyBp bnQgbnJfaW50YzsNCisJc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgKmRvbWFpbl9wYXJlbnQ7 DQorCXN0cnVjdCBtdGtfaW50Y19jaGlwX2RhdGEgKmNkOw0KKwl1bnNpZ25lZCBpbnQgaXJxX3N0 YXJ0LCBpcnFfZW5kOw0KKw0KKwlkb21haW5fcGFyZW50ID0gaXJxX2ZpbmRfaG9zdChwYXJlbnQp Ow0KKwlpZiAoIWRvbWFpbl9wYXJlbnQpIHsNCisJCXByX2VycigibXQ1OHh4LWludGM6IGludGVy cnVwdC1wYXJlbnQgbm90IGZvdW5kXG4iKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQor CWNkID0ga3phbGxvYyhzaXplb2YoKmNkKSwgR0ZQX0tFUk5FTCk7DQorCWlmICghY2QpDQorCQly ZXR1cm4gLUVOT01FTTsNCisNCisJY2QtPmNoaXAgPSBtdGtfaW50Y19jaGlwOw0KKwlpZiAob2Zf cHJvcGVydHlfcmVhZF91MzJfaW5kZXgoZG4sICJtZWRpYXRlayxpcnFzLW1hcC1yYW5nZSIsIDAs ICZpcnFfc3RhcnQpIHx8DQorCSAgICBvZl9wcm9wZXJ0eV9yZWFkX3UzMl9pbmRleChkbiwgIm1l ZGlhdGVrLGlycXMtbWFwLXJhbmdlIiwgMSwgJmlycV9lbmQpKSB7DQorCQlrZnJlZShjZCk7DQor CQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0KKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKGRu LCAibWVkaWF0ZWssaW50Yy1uby1lb2kiKSkNCisJCWNkLT5jaGlwLmlycV9lb2kgPSBpcnFfY2hp cF9lb2lfcGFyZW50Ow0KKw0KKwljZC0+aXJxX3N0YXJ0ID0gaXJxX3N0YXJ0Ow0KKwljZC0+bnJf aXJxcyA9IGlycV9lbmQgLSBpcnFfc3RhcnQgKyAxOw0KKwljZC0+Y2hpcC5uYW1lID0ga2FzcHJp bnRmKEdGUF9LRVJORUwsICJtdDU4eHgtaW50Yy0lZCIsIG5yX2ludGMrKyk7DQorCWlmICghY2Qt PmNoaXAubmFtZSkgew0KKwkJa2ZyZWUoY2QpOw0KKwkJcmV0dXJuIC1FTk9NRU07DQorCX0NCisN CisJY2QtPmJhc2UgPSBvZl9pb21hcChkbiwgMCk7DQorCWlmICghY2QtPmJhc2UpIHsNCisJCWtm cmVlKGNkLT5jaGlwLm5hbWUpOw0KKwkJa2ZyZWUoY2QpOw0KKwkJcmV0dXJuIC1FTk9NRU07DQor CX0NCisNCisJZG9tYWluID0gaXJxX2RvbWFpbl9hZGRfaGllcmFyY2h5KGRvbWFpbl9wYXJlbnQs IDAsIGNkLT5ucl9pcnFzLA0KKwkJCQkJICBkbiwgJm10NTh4eF9pbnRjX2RvbWFpbl9vcHMsIGNk KTsNCisJaWYgKCFkb21haW4pIHsNCisJCWtmcmVlKGNkLT5jaGlwLm5hbWUpOw0KKwkJaW91bm1h cChjZC0+YmFzZSk7DQorCQlrZnJlZShjZCk7DQorCQlyZXR1cm4gLUVOT01FTTsNCisJfQ0KKw0K KwlyZXR1cm4gMDsNCit9DQorDQorSVJRQ0hJUF9ERUNMQVJFKG10NTh4eF9pbnRjLCAibWVkaWF0 ZWssbXQ1OHh4LWludGMiLCBtdDU4eHhfaW50Y19vZl9pbml0KTsNCi0tIA0KMi4xOC4wDQo=