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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2FCACC982ED for ; Mon, 21 Sep 2026 20:34:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:References:Cc:To:Subject:From: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lvYhpMOtzats3Q+yh3N8cC+9MjlhtQPt3CLHKlcDWls=; b=IW/SiVosCNMrCE /nOwkMklIedv5ldiQ7FaGmk3v+PTcIM8+IYc6Kvajr3WNMiRp230HN60GeRprKraOFusZ+d54Eonb 8FggDPtp27O9he30d1dNb68ugQ/L8BxDJHlKwMieBVc/dcAeuXCTEjwEiUL7mCHnUps63wIRiM2hD LBKnvQ0QRjaPzNqYfqJqElK+8gmj6klHQV8lCNY9DM3DJ4GGMKWq1dtTBl+S20C2DsiJz4XhKDuqN /AyflLQRzvijuaDT6LAMQz6UYXYA2k7m4OMbfJPzFoyfGIqiKu95SqQXGnCRzwStJbLchG9nE62VY xFONOEuIxUtHwfSqFYXA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x8ki8-00000003MRk-35yH; Mon, 21 Sep 2026 20:34:00 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x8ki6-00000003MOC-0qZj for linux-i3c@bombadil.infradead.org; Mon, 21 Sep 2026 20:33:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :In-Reply-To:References:Cc:To:Subject:From:MIME-Version:Date:Message-ID: Sender:Reply-To:Content-ID:Content-Description; bh=iy80AsOZHRNcUBTubyA96vqdJ7FUw9bhktjWiGsE8rM=; b=eeiZvnQoUXs/CsKi+j3M18L3N5 F3mfOBBqZDVCSNw2oE//kGtJj58ttJBuiHfUg7FtR3KUSm+J045OpbcxAo7eb9U3K8tsEHEjzocL8 F7VLYdYBM6hmcl1nJ5X0vmVUzOGkBPewXhMLAJ0Iz6kHH2dKZJe+cTEzlJTqFUdp9T3pmLryeq4pl WExzEV04D9wF3FL+y73DZlD6WX3tuFhCYj8Vy13FkGCBDNaFj14l+v7ADMg23utWQ1ranytr0Tpfe gJq0ltEfw3DzHbTVmsbXt0wiMDzSb67UrZSSdbvOWaD1NgvC/ag9J3Oe8LbnHjGzjsbaAZaNMWe8H 3N3ni5VQ==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by desiato.infradead.org with esmtps (Exim 4.99.2 #2 (Red Hat Linux)) id 1x8ki1-0000000CnRP-0uyq for linux-i3c@lists.infradead.org; Mon, 21 Sep 2026 20:33:56 +0000 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68LJnlNx2050701 for ; Mon, 21 Sep 2026 20:33:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= iy80AsOZHRNcUBTubyA96vqdJ7FUw9bhktjWiGsE8rM=; b=lsBSXam1yb95DOHH 1ZF0xQDaQsg0Mmic3yvbj8Ue33E+lhtur34wgJyXQ8mlnH0hCSVrVfFkof6oegO+ j3HrTTgn54HR/6O1r1SPvgeavEa4SgdG911Raf2TsftjlSH/57x8WIdZgYLBewgE 7T3OFUVruuKrJ9kkL13sHwZYlNKkG2CgN6k3mwR1gYyhQMng2qjzFvER6efrEeZM 78fLBhwlaAXGSEJtUmfqIS4ojpmTa7F15i8/QSOQn+PT8RidHizqiVe2Pk+FG8hT CvioYO2+QiWVnKRl4WkzeKs2YV/Wxaclx+D+UqX4M7UsybjloiH1oPpImne9crec CZlmxA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gub3284ys-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 21 Sep 2026 20:33:48 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2d6fb956002so46644485ad.1 for ; Mon, 21 Sep 2026 13:33:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1790022828; x=1790627628; darn=lists.infradead.org; h=content-transfer-encoding:content-type:in-reply-to:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to:content-type; bh=iy80AsOZHRNcUBTubyA96vqdJ7FUw9bhktjWiGsE8rM=; b=gn67BgrIZmBv8RFvkn0sHBIWEA8E6YHNXCZq6YD81LZxMwDjn8ivn+yLEbaumVXlb5 FJQ8iZ8OCOuCc1JNhJBr0ANg7+dlTPvrcbhc2ORxyAsBf2XuAYC+c2x02rjuuGD9HxHT uRxDVeArnCSVvY3l11l+zzeX+qbpwgYr1tA5Fvp7BHB3XvG4FCzNDiNMOWEkiY5qGOua ZOdaKou9yV/qPLjxPf+WnFuODgLJX4gQV+7YxMpXX9Wk/IZG1jSJY+v0RfuH5V6Vk40f 8ei43wUP0VnRdca4OVA7Wkb5tnmA7tMORQ1jmIVvqXr+MJjwF+PxMBTaul7fsmfcj/CX +zTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790022828; x=1790627628; h=content-transfer-encoding:content-type:in-reply-to:content-language :references:cc:to:subject:from:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iy80AsOZHRNcUBTubyA96vqdJ7FUw9bhktjWiGsE8rM=; b=RKTWUnbJftS5vw7420efcZYFxNpNdXQsQM8K3wM/+n++8utyufDu3QpLxgMgM/pzg5 8YIzHkTJszBjwF+VJjMgbFmCeP3S8aX8R5xTxSg77Hr9Z+hMGk1amMt4fnKItXhY8Ej/ /KVbU0MkLRr93z0POyx3TZ+P65on0u7y+gJrRYPW7FxRfI20S8nVTd3qZZg/Plhvi9nG yzbhbJ8OkrCrxA482QOHL5DEa5eQeb6kbQLzKxAghBkOfmHUDUUA8zPeu9gwI3/6TuzF 00JtI9b23VlTUpSrfEan0HBf18VdPsCOwsrCaFOBqUx68dG23LuEbVPfXBOPaxt+aLlJ exKA== X-Forwarded-Encrypted: i=1; AKwUvBwhTuZjuZVvKLeBWohya1I+TsftU1Qds1QVNT3PVshiJ42cOOePCfcgW9L7rovZxIoA4EqspFF9rTo=@lists.infradead.org X-Gm-Message-State: AFuF++lIw1xcxULyqDcj3KRKH9YZGuwBlbAZqN3aWx585MGDKcQ8ZBR/ OeMtHLUAoGX2ZcU6nkS9O838BK2WsmL4WerAKomX2vCCv9vHXlqyJfqTMCi5gwXHtFiA5BzX8Ic j1x7pv0zWIuvHWlASAVf1zXywJSr/VEK6lr3AH9aYnbAMpefuBefolM/gFtjYkOg8ayiX X-Gm-Gg: AYBFou3qQLLmFp/N1rF5p9uWhWFXT5RYefOlZQtxgKy8Yzx6Ja1hz9A0UuRAYMoGloy byrPIxwth3v38/HVGC3s+ELIKAP2xSTU1AzthnVURiRI6w8hc41XbWnMTntv92fAnnyT6i3SwqC GwCbnD/2S4C1hncPqnCnkeAqN1o6ihaRViUKN6QmLaCHw2/Q06IRwBJkjnuRJv8+CX47KGzjty4 Nyd+mgPc54gWMCISWHsLULUOFo6b+Mhy1WAyf7MLXZ8N0binZSFX8q1G4h1gYNNlhDCwh+6+Eg0 3lK8zr3/iWcclrCZwtlbagnchACbKRulG6qmvGij+Ofp4TdtuHX3nz2z33nGnTbk+6g5S8RCuac UotluTXzzErtM5Vmv59Jac6qYhag+p+/p X-Received: by 2002:a17:902:fc85:b0:2dd:c053:d73c with SMTP id d9443c01a7336-2ddc053d7f6mr109463615ad.35.1790022827923; Mon, 21 Sep 2026 13:33:47 -0700 (PDT) X-Received: by 2002:a17:902:fc85:b0:2dd:c053:d73c with SMTP id d9443c01a7336-2ddc053d7f6mr109463265ad.35.1790022827293; Mon, 21 Sep 2026 13:33:47 -0700 (PDT) Received: from [192.168.1.5] ([106.222.229.14]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-33e5ec4e584sm414448eec.27.2026.09.21.13.33.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Sep 2026 13:33:46 -0700 (PDT) Message-ID: <5fd459ab-0ce7-46f8-a296-7c063055922a@oss.qualcomm.com> Date: Tue, 22 Sep 2026 02:03:40 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Mukesh Savaliya Subject: Re: [PATCH v6 2/3] i3c: master: Add Qualcomm I3C controller driver To: Krzysztof Kozlowski , alexandre.belloni@bootlin.com, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, jarkko.nikula@linux.intel.com, linux-i3c@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Frank.Li@nxp.com, wsa+renesas@sang-engineering.com, alok.a.tiwari@oracle.com Cc: andersson@kernel.org, konradybcio@kernel.org References: <20250701071852.2107800-1-mukesh.savaliya@oss.qualcomm.com> <20250701071852.2107800-3-mukesh.savaliya@oss.qualcomm.com> <010c05cf-66dc-4288-ba3f-81f8f4634525@kernel.org> Content-Language: en-US In-Reply-To: <010c05cf-66dc-4288-ba3f-81f8f4634525@kernel.org> X-Authority-Analysis: v=2.4 cv=B8ssQ+tM c=1 sm=1 tr=0 ts=6ab194ac cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=LKvw4eQ66EqDTtCUdPbf+g==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=OgTVopdsg-nk9eQGwA0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-ORIG-GUID: g2JskPbEHwnVjS-m1OXXUjByjcIfm_iA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTIxMDMwMCBTYWx0ZWRfX+GKcQFusDxa2 SwHwsA7UKp+zjDwsMjCiyCG/f2PxORrbMenODae0Gn7HTKXuNoj+YgCUEn+0kNn2XiLqnr9KcF0 6bXTsPuGS7b6VdMC6b+sTzInk3Fq4G+RBlcdvzzxdknlGzWzSqsGYUA5/bVHCF6TLEzuXG0eVi0 vD06fWhVAQYwVHNJTjxXT53Z8Q2EcdltdV7H8tnxyx0O83zsD3AKgdAMajkRrBR4F9CsjkCXzPG D4N005euNQ89NF3iTbtujD72yLqZSXzjWg5YlURWh515nKh9Ye5KSnMo9TmRuSk7In5WYYqdaHi F48Ei8WyDXGmflq7FPHP41k1Qa5qPCe3uGESPYjzBEdKWmIdJMfBCFp3BRxxrTr4IxO0daztWFk IyoUmdxFBSBEDohHjvL+hIedKZ+VY3IkEg7YN2l6iXeImGLijoCvw390fieFSpLrKavXev8WNh0 LBrQCuW1tmdmxV3W7QA== X-Proofpoint-GUID: g2JskPbEHwnVjS-m1OXXUjByjcIfm_iA X-Proofpoint-Spam-Info: AW1haW4tMjYwOTIxMDMwMCBTYWx0ZWRfXysfcHDynGQ83 1U8bqVNQjmORcj1qkZWdK3DT+BgVvY/H4vo1fDcUxFJNiLNL22CzfSUQ5aZUP+D7Og4yLqIjEZQ DfkuN80fygakSuopOXQqfjn+L03l/Oo= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-21_05,2026-09-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 spamscore=0 phishscore=0 impostorscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609210300 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260921_213353_632096_B02D18DB X-CRM114-Status: GOOD ( 20.34 ) X-BeenThere: linux-i3c@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org VGhhbmtzIEtyeXpzenRvZiBmb3IgdGhlIHJldmlldyAhCgpBcG9sb2dpZXMgZm9yIHRoZSBkZWxh eWVkIHJlc3BvbnNlLiBJIHdhcyB3YWl0aW5nIHRvIHZlcmlmeSB0aGUgY2hhbmdlcyAKYW5kIGVu c3VyZSBhbGwgdGhlIHN1Z2dlc3RlZCB1cGRhdGVzIHdlcmUgcHJvcGVybHkgaW5jb3Jwb3JhdGVk LiBUaGUgCmVmZm9ydCB3YXMgZnVydGhlciBkZWxheWVkIGR1ZSB0byBzb21lIHNsYXZlLXNpZGUg c2V0dXAgaXNzdWVzLgoKSSBoYXZlIG5vdyBhZGRyZXNzZWQgYW5kIHZhbGlkYXRlZCBhbGwgdGhl IHN1Z2dlc3RlZCBjaGFuZ2VzIGV4Y2VwdCBvbmUsIAp3aGljaCBJIGhhdmUgcmVzcG9uZGVkIHRv IHNlcGFyYXRlbHkgYmVsb3cuIEkgc2hhbGwgdXBsb2FkIFY3IHNvb24gd2l0aCAKYWxsIHRoZSBz dWdnZXN0ZWQgY2hhbmdlcy4KCgpPbiA3LzEvMjAyNSAyOjEzIFBNLCBLcnp5c3p0b2YgS296bG93 c2tpIHdyb3RlOgo+IE9uIDAxLzA3LzIwMjUgMDk6MTgsIE11a2VzaCBLdW1hciBTYXZhbGl5YSB3 cm90ZToKPj4gKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvY2xr Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvZXJyLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvaTNjL21h c3Rlci5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+PiArI2luY2x1ZGUgPGxp bnV4L2lvLmg+Cj4gCj4gd2hlcmUgZG8geW91IHVzZSBpdD8KPiAKUmVtb3ZlZCBpdC4KPiAKPj4g KyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4K Pj4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPgo+IAo+IHdoZXJlIGRvIHlvdSB1c2UgaXQ/Cj4gClJl bW92ZWQgaXQKPiAKPj4gKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgo+IAo+IHdoZXJl IGRvIHlvdSB1c2UgaXQ/Cj4gClJlbW92ZWQgaXQKCj4+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZv cm1fZGV2aWNlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPgo+PiArI2luY2x1 ZGUgPGxpbnV4L3NsYWIuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9zb2MvcWNvbS9nZW5pLXNlLmg+ Cj4+ICsjaW5jbHVkZSA8bGludXgvdW5pdHMuaD4KPiAKPiB3aGVyZSBkbyB5b3UgdXNlIGl0PwpV c2luZyBmb3IgZnJlcXVlbmN5IHVuaXRzIC0gSFpfUEVSX0tIWiwgSFpfUEVSX01IWi4KZ2VuaV9p M2NfY2xrX21hcFtdIHRhYmxlLgoKPj4gKyNkZWZpbmUgU0VfSTNDX1NDTF9ISUdIICAgICAgICAg ICAgICAgICAweDI2OAo+PiArI2RlZmluZSBTRV9JM0NfVFhfVFJBTlNfTEVOICAgICAgICAgICAg IDB4MjZjCj4+ICsjZGVmaW5lIFNFX0kzQ19SWF9UUkFOU19MRU4gICAgICAgICAgICAgMHgyNzAK Pj4gKyNkZWZpbmUgU0VfSTNDX0RFTEFZX0NPVU5URVIgICAgICAgICAgICAweDI3NAo+PiArI2Rl ZmluZSBTRV9JMkNfU0NMX0NPVU5URVJTICAgICAgICAgICAgIDB4Mjc4Cj4+ICsjZGVmaW5lIFNF X0kzQ19TQ0xfQ1lDTEUgICAgICAgICAgICAgICAgMHgyN2MKPj4gKyNkZWZpbmUgU0VfR0VOSV9I V19JUlFfRU4gICAgICAgICAgICAgICAweDkyMAo+PiArI2RlZmluZSBTRV9HRU5JX0hXX0lSUV9J R05PUkVfT05fQUNUSVZFIDB4OTI0Cj4+ICsjZGVmaW5lIFNFX0dFTklfSFdfSVJRX0NNRF9QQVJB TV8wICAgICAgMHg5MzAKPj4gKwo+PiArLyogSFcgSTNDIElCSSBpbnRlcnJ1cHQgZW5hYmxlICov Cj4+ICsjZGVmaW5lIE1fSUJJX0lSUV9FTgkJCUJJVCgwKQo+PiArCj4+ICsvKiBNX0lCSV9JUlFf SUdOT1JFICovCj4+ICsjZGVmaW5lIE1fSUJJX0lSUV9JR05PUkUJCUJJVCgwKQo+PiArCj4+ICsv KiBTRV9HRU5JX01fQ0xLX0NGRyBmaWVsZCBzaGlmdHMgKi8KPj4gKyNkZWZpbmUJQ0xLX0RJVl9W QUxVRV9NQVNLCQlHRU5NQVNLKDIzLCA0KQo+PiArI2RlZmluZSBTRVJfQ0xLX0VOCQkJQklUKDAp Cj4+ICsKPj4gKy8qIFNFX0dFTklfSFdfSVJRX0NNRF9QQVJBTV8wIGZpZWxkIGJpdHMgKi8KPj4g KyNkZWZpbmUgTV9JQklfSVJRX1BBUkFNXzdFCQlCSVQoMCkKPj4gKyNkZWZpbmUgTV9JQklfSVJR X1BBUkFNX1NUT1BfU1RBTEwJQklUKDEpCj4+ICsKPj4gKy8qIFNFX0kyQ19TQ0xfQ09VTlRFUlMg ZmllbGQgc2hpZnRzICovCj4+ICsjZGVmaW5lIEkyQ19TQ0xfSElHSF9DT1VOVEVSX01BU0sJR0VO TUFTSygyOSwgMjApCj4+ICsjZGVmaW5lIEkyQ19TQ0xfTE9XX0NPVU5URVJfTUFTSwlHRU5NQVNL KDE5LCAxMCkKPj4gKyNkZWZpbmUgSTJDX1NDTF9DWUNMRV9DT1VOVEVSX01BU0sJR0VOTUFTSyg5 LCAwKQo+PiArCj4+ICsjZGVmaW5lIFNFX0kzQ19FUlIgIChNX0NNRF9PVkVSUlVOX0VOIHwgTV9J TExFR0FMX0NNRF9FTiB8IE1fQ01EX0ZBSUxVUkVfRU4gfFwKPj4gKwlNX0NNRF9BQk9SVF9FTiB8 IE1fR1BfSVJRXzBfRU4gfCBNX0dQX0lSUV8xX0VOIHwgTV9HUF9JUlFfMl9FTiB8IFwKPj4gKwlN X0dQX0lSUV8zX0VOIHwgTV9HUF9JUlFfNF9FTikKPj4gKwo+PiArLyogTV9DTUQgT1AgY29kZXMg Zm9yIEkyQy9JM0MgKi8KPj4gKyNkZWZpbmUgSTNDX1JFQURfSUJJX0hXICAgICAgICAgIDAKPj4g KyNkZWZpbmUgSTJDX1dSSVRFICAgICAgICAgICAgICAgIDEKPj4gKyNkZWZpbmUgSTJDX1JFQUQg ICAgICAgICAgICAgICAgIDIKPj4gKyNkZWZpbmUgSTJDX1dSSVRFX1JFQUQgICAgICAgICAgIDMK Pj4gKyNkZWZpbmUgSTJDX0FERFJfT05MWSAgICAgICAgICAgIDQKPj4gKyNkZWZpbmUgSTNDX0lO QkFORF9SRVNFVCAgICAgICAgIDUKPj4gKyNkZWZpbmUgSTJDX0JVU19DTEVBUiAgICAgICAgICAg IDYKPj4gKyNkZWZpbmUgSTJDX1NUT1BfT05fQlVTICAgICAgICAgIDcKPj4gKyNkZWZpbmUgSTND X0hEUl9ERFJfRVhJVCAgICAgICAgIDgKPj4gKyNkZWZpbmUgSTNDX1BSSVZBVEVfV1JJVEUgICAg ICAgIDkKPj4gKyNkZWZpbmUgSTNDX1BSSVZBVEVfUkVBRCAgICAgICAgIDEwCj4+ICsjZGVmaW5l IEkzQ19IRFJfRERSX1dSSVRFICAgICAgICAxMQo+PiArI2RlZmluZSBJM0NfSERSX0REUl9SRUFE ICAgICAgICAgMTIKPj4gKyNkZWZpbmUgSTNDX0RJUkVDVF9DQ0NfQUREUl9PTkxZIDEzCj4+ICsj ZGVmaW5lIEkzQ19CQ0FTVF9DQ0NfQUREUl9PTkxZICAxNAo+PiArI2RlZmluZSBJM0NfUkVBRF9J QkkgICAgICAgICAgICAgMTUKPj4gKyNkZWZpbmUgSTNDX0JDQVNUX0NDQ19XUklURSAgICAgIDE2 Cj4+ICsjZGVmaW5lIEkzQ19ESVJFQ1RfQ0NDX1dSSVRFICAgICAxNwo+PiArI2RlZmluZSBJM0Nf RElSRUNUX0NDQ19SRUFEICAgICAgMTgKPj4gKwo+PiArLyogTV9DTUQgcGFyYW1zIGZvciBJM0Mg Ki8KPj4gKyNkZWZpbmUgUFJFX0NNRF9ERUxBWQkJQklUKDApCj4+ICsjZGVmaW5lIFRJTUVTVEFN UF9CRUZPUkUJQklUKDEpCj4+ICsjZGVmaW5lIFNUT1BfU1RSRVRDSAkJQklUKDIpCj4+ICsjZGVm aW5lIFRJTUVTVEFNUF9BRlRFUgkJQklUKDMpCj4+ICsjZGVmaW5lIFBPU1RfQ09NTUFORF9ERUxB WQlCSVQoNCkKPj4gKyNkZWZpbmUgSUdOT1JFX0FERF9OQUNLCQlCSVQoNikKPj4gKyNkZWZpbmUg UkVBRF9GSU5JU0hFRF9XSVRIX0FDSwlCSVQoNykKPj4gKyNkZWZpbmUgQ09OVElOVU9VU19NT0RF X0RBQQlCSVQoOCkKPj4gKwo+PiArI2RlZmluZSBTTEFWRV9BRERSX01BU0sJCUdFTk1BU0soMTUs IDkpCj4+ICsKPj4gKyNkZWZpbmUgQ0NDX0hEUl9DTURfTVNLCQlHRU5NQVNLKDIzLCAxNikKPj4g KyNkZWZpbmUgSUJJX05BQ0tfVEJMX0NUUkwJQklUKDI0KQo+PiArI2RlZmluZSBVU0VfN0UJCQlC SVQoMjUpCj4+ICsjZGVmaW5lIEJZUEFTU19BRERSX1BIQVNFCUJJVCgyNikKPj4gKwo+PiArLyog R1NJIGNhbGxiYWNrIGVycm9yIGZpZWxkcyAtIERNQV9UWF9JUlFfU1RBVCAqLwo+PiArI2RlZmlu ZSBHUF9JUlEwCQkJQklUKDUpCj4+ICsjZGVmaW5lIEdQX0lSUTEJCQlCSVQoNikKPj4gKyNkZWZp bmUgR1BfSVJRMgkJCUJJVCg3KQo+PiArI2RlZmluZSBHUF9JUlEzCQkJQklUKDgpCj4+ICsjZGVm aW5lIEdQX0lSUTQJCQlCSVQoOSkKPj4gKyNkZWZpbmUgR1BfSVJRNQkJCUJJVCgxMCkKPj4gKyNk ZWZpbmUgRE1fSTNDX0NCX0VSUgkJR0VOTUFTSygxMCwgNSkKPj4gKwo+PiArI2RlZmluZSBJM0Nf QVVUT19TVVNQRU5EX0RFTEFZCTI1MAo+PiArI2RlZmluZSBQQUNLSU5HX0JZVEVTX1BFUl9XT1JE CTQKPj4gKyNkZWZpbmUgWEZFUl9USU1FT1VUCQkyNTAKPj4gKyNkZWZpbmUgREZTX0lOREVYX01B WAkJNwo+PiArCj4+ICsjZGVmaW5lIEkzQ19BRERSX01BU0sJCUkyQ19NQVhfQUREUgo+PiArCj4+ ICtlbnVtIGdlbmlfaTNjX2Vycl9jb2RlIHsKPj4gKwlSRF9URVJNLAo+PiArCU5BQ0ssCj4+ICsJ Q1JDX0VSUiwKPj4gKwlCVVNfUFJPVE8sCj4+ICsJTkFDS183RSwKPj4gKwlOQUNLX0lCSSwKPj4g KwlHRU5JX09WRVJSVU4sCj4+ICsJR0VOSV9JTExFR0FMX0NNRCwKPj4gKwlHRU5JX0FCT1JUX0RP TkUsCj4+ICsJR0VOSV9USU1FT1VULAo+PiArfTsKPj4gKwo+PiArZW51bSBpM2NfYnVzX3BoYXNl IHsKPj4gKwlPUEVOX0RSQUlOX01PREUgID0gMCwKPj4gKwlQVVNIX1BVTExfTU9ERSAgID0gMQo+ PiArfTsKPj4gKwo+PiArc3RydWN0IGdlbmlfaTNjX2RldiB7Cj4+ICsJc3RydWN0IGdlbmlfc2Ug c2U7Cj4+ICsJdW5zaWduZWQgaW50IHR4X3dtOwo+PiArCWludCBpcnE7Cj4+ICsJaW50IGVycjsK Pj4gKwlzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9sbGVyIGN0cmxyOwo+PiArCXN0cnVjdCBjb21w bGV0aW9uIGRvbmU7Cj4+ICsJLyogUHJvdGVjdHMgcGVyIGRldmljZSBDQ0MgY29tbWFuZCBvciB0 cmFuc2ZlciBmcm9tIGdldF9tdXRleF9sb2NrKCkvdW5sb2NrKCkgd3JhcHBlciAqLwo+PiArCXN0 cnVjdCBtdXRleCBsb2NrOwo+PiArCS8qIFBlciBkZXZpY2UgcHJvdGVjdGlvbiBiZXR3ZWVuIHBy b2Nlc3MgYW5kIElSUSBjb250ZXh0ICovCj4+ICsJc3BpbmxvY2tfdCBpcnFfbG9jazsKPj4gKwl1 MzIgY2xrX3NyY19mcmVxOwo+PiArCXU4ICpjdXJfYnVmOwo+PiArCWJvb2wgY3VyX2lzX3dyaXRl Owo+PiArCWludCBjdXJfbGVuOwo+PiArCWludCBjdXJfaWR4Owo+PiArCURFQ0xBUkVfQklUTUFQ KG5ld2FkZHJzbG90cywgNjQpOwo+PiArCj4+ICsJY29uc3Qgc3RydWN0IGdlbmlfaTNjX2Nsa19z ZXR0aW5ncyAqY2xrX2NmZzsKPj4gKwljb25zdCBzdHJ1Y3QgZ2VuaV9pM2NfY2xrX3NldHRpbmdz ICpjbGtfb2RfY2ZnOwo+PiArfTsKPj4gKwo+PiArc3RydWN0IGdlbmlfaTNjX2kyY19kZXZfZGF0 YSB7Cj4+ICsJdTMyIGliaV9rZWVwaW5nOyAgLyogUGxhbiB0byBzYXZlIElCSSBpbmZvcm1hdGlv biwga2VlcCBhcyBkdW1teSBmb3Igbm93ICovCj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgZ2VuaV9p M2NfeGZlcl9wYXJhbXMgewo+PiArCWVudW0gZ2VuaV9zZV94ZmVyX21vZGUgbW9kZTsKPj4gKwl1 MzIgbV9jbWQ7Cj4+ICsJdTMyIG1fcGFyYW07Cj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgaW5saW5l IHN0cnVjdCBnZW5pX2kzY19kZXYgKnRvX2dlbmlfaTNjX21hc3RlcihzdHJ1Y3QgaTNjX21hc3Rl cl9jb250cm9sbGVyCj4+ICsJCQkJCQkJKm1hc3RlcikKPj4gK3sKPj4gKwlyZXR1cm4gY29udGFp bmVyX29mKG1hc3Rlciwgc3RydWN0IGdlbmlfaTNjX2RldiwgY3RybHIpOwo+PiArfQo+PiArCj4+ ICtzdHJ1Y3QgZ2VuaV9pM2NfY2xrX3NldHRpbmdzIHsKPj4gKwl1MzIgY2xrX2ZyZXFfb3V0Owo+ PiArCXUzMiBjbGtfc3JjX2ZyZXE7Cj4+ICsJdTggIGNsa19kaXY7Cj4+ICsJdTggIGkyY190X2hp Z2hfY250Owo+PiArCXU4ICBpMmNfdF9sb3dfY250Owo+PiArCXU4ICBpM2NfdF9oaWdoX2NudDsK Pj4gKwl1OCAgaTNjX3RfY3ljbGVfY250Owo+PiArCXU4ICBpMmNfdF9jeWNsZV9jbnQ7Cj4+ICt9 Owo+PiArCj4+ICsvKgo+PiArICogVGhlIGhhcmR3YXJlIHVzZXMgdGhlIGZvbGxvd2luZyBmb3Jt dWxhcyB0byBjYWxjdWxhdGUgdGhlIHRpbWUgcGVyaW9kcwo+PiArICogb2YgdGhlIFNDTCBjbG9j ayBjeWNsZS4gVGhlIGZpcm13YXJlIGFkZHMgYSBmZXcgZXh0cmEgY3ljbGVzIHRoYXQgYXJlIG5v dAo+PiArICogaW5jbHVkZWQgaW4gdGhlIGZvcm11bGFzIGJlbG93LiBJdCBoYXMgYmVlbiB2ZXJp ZmllZCB0aGF0IHRoZSByZXN1bHRpbmcKPj4gKyAqIHRpbWluZ3MgcmVtYWluIHdpdGhpbiB0aGUg STJDL0kzQyBzcGVjaWZpY2F0aW9uIGxpbWl0cy4KPj4gKyAqCj4+ICsgKiBJMkMgU0NMIGhpZ2gg cGVyaW9kOgo+PiArICogICAgIGkyY190X2hpZ2ggPSAoaTJjX3RfaGlnaF9jbnQgKiBjbGtfZGl2 KSAvIHNvdXJjZV9jbG9jawo+PiArICoKPj4gKyAqIEkyQyBTQ0wgbG93IHBlcmlvZDoKPj4gKyAq ICAgICBpMmNfdF9sb3cgPSAoaTJjX3RfbG93X2NudCAqIGNsa19kaXYpIC8gc291cmNlX2Nsb2Nr Cj4+ICsgKgo+PiArICogSTJDIFNDTCBmdWxsIGN5Y2xlOgo+PiArICogICAgIGkyY190X2N5Y2xl ID0gKGkyY190X2N5Y2xlX2NudCAqIGNsa19kaXYpIC8gc291cmNlX2Nsb2NrCj4+ICsgKgo+PiAr ICogSTNDIFNDTCBoaWdoIHBlcmlvZDoKPj4gKyAqICAgICBpM2NfdF9oaWdoID0gKGkzY190X2hp Z2hfY250ICogY2xrX2RpdikgLyBzb3VyY2VfY2xvY2sKPj4gKyAqCj4+ICsgKiBJM0MgU0NMIGZ1 bGwgY3ljbGU6Cj4+ICsgKiAgICAgaTNjX3RfY3ljbGUgPSAoaTNjX3RfY3ljbGVfY250ICogY2xr X2RpdikgLyBzb3VyY2VfY2xvY2sKPj4gKyAqCj4+ICsgKiBPdXRwdXQgY2xvY2sgZnJlcXVlbmN5 Ogo+PiArICogICAgIGNsa19mcmVxX291dCA9IHQgLyB0X2N5Y2xlCj4+ICsgKi8KPj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZ2VuaV9pM2NfY2xrX3NldHRpbmdzIGdlbmlfaTNjX2Nsa19tYXBbXSA9 IHsKPj4gKwl7Cj4+ICsJCS5jbGtfZnJlcV9vdXQgPSAxMDAgKiBIWl9QRVJfS0haLAo+PiArCQku Y2xrX3NyY19mcmVxID0gMTkyMDAgKiBIWl9QRVJfS0haLAo+PiArCQkuY2xrX2RpdiA9IDEsCj4+ ICsJCS5pMmNfdF9oaWdoX2NudCA9IDc2LAo+PiArCQkuaTJjX3RfbG93X2NudCA9IDkwLAo+PiAr CQkuaTNjX3RfaGlnaF9jbnQgPSA3LAo+PiArCQkuaTNjX3RfY3ljbGVfY250ID0gOCwKPj4gKwkJ LmkyY190X2N5Y2xlX2NudCA9IDE5MiwKPj4gKwl9LAo+PiArCXsKPj4gKwkJLmNsa19mcmVxX291 dCA9IDQwMCAqIEhaX1BFUl9LSFosCj4+ICsJCS5jbGtfc3JjX2ZyZXEgPSAxOTIwMCAqIEhaX1BF Ul9LSFosCj4+ICsJCS5jbGtfZGl2ID0gMSwKPj4gKwkJLmkyY190X2hpZ2hfY250ID0gMTIsCj4+ ICsJCS5pMmNfdF9sb3dfY250ID0gMjQsCj4+ICsJCS5pM2NfdF9oaWdoX2NudCA9IDcsCj4+ICsJ CS5pM2NfdF9jeWNsZV9jbnQgPSA4LAo+PiArCQkuaTJjX3RfY3ljbGVfY250ID0gNDgKPj4gKwl9 LAo+PiArCXsKPj4gKwkJLmNsa19mcmVxX291dCA9IDEwMDAgKiBIWl9QRVJfS0haLAo+PiArCQku Y2xrX3NyY19mcmVxID0gMTkyMDAgKiBIWl9QRVJfS0haLAo+PiArCQkuY2xrX2RpdiA9IDEsCj4+ ICsJCS5pMmNfdF9oaWdoX2NudCA9IDQsCj4+ICsJCS5pMmNfdF9sb3dfY250ID0gOSwKPj4gKwkJ LmkzY190X2hpZ2hfY250ID0gNywKPj4gKwkJLmkzY190X2N5Y2xlX2NudCA9IDAsCj4+ICsJCS5p MmNfdF9jeWNsZV9jbnQgPSAxOQo+PiArCX0sCj4+ICsJewo+PiArCQkuY2xrX2ZyZXFfb3V0ID0g MTI1MDAgKiBIWl9QRVJfS0haLAo+PiArCQkuY2xrX3NyY19mcmVxID0gMTAwMDAwICogSFpfUEVS X0tIWiwKPj4gKwkJLmNsa19kaXYgPSAxLAo+PiArCQkuaTJjX3RfaGlnaF9jbnQgPSA0NSwKPj4g KwkJLmkyY190X2xvd19jbnQgPSA2MywKPj4gKwkJLmkzY190X2hpZ2hfY250ID0gNiwKPj4gKwkJ LmkzY190X2N5Y2xlX2NudCA9IDcsCj4+ICsJCS5pMmNfdF9jeWNsZV9jbnQgPSAxMTAKPj4gKwl9 Cj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgaW50IGdlbmlfaTNjX2Nsa19tYXBfaWR4KHN0cnVjdCBn ZW5pX2kzY19kZXYgKmdpM2MpCj4+ICt7Cj4+ICsJY29uc3Qgc3RydWN0IGdlbmlfaTNjX2Nsa19z ZXR0aW5ncyAqY2xrX2lkeCA9IGdlbmlfaTNjX2Nsa19tYXA7Cj4+ICsJc3RydWN0IGkzY19tYXN0 ZXJfY29udHJvbGxlciAqbSA9ICZnaTNjLT5jdHJscjsKPj4gKwlzdHJ1Y3QgaTNjX2J1cyAqYnVz ID0gaTNjX21hc3Rlcl9nZXRfYnVzKG0pOwo+PiArCWludCBpOwo+PiArCj4+ICsJZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUoZ2VuaV9pM2NfY2xrX21hcCk7IGkrKywgY2xrX2lkeCsrKSB7Cj4+ ICsJCWlmIChjbGtfaWR4LT5jbGtfZnJlcV9vdXQgPT0gYnVzLT5zY2xfcmF0ZS5pM2MgJiYKPj4g KwkJICAgIGNsa19pZHgtPmNsa19zcmNfZnJlcSA9PSBnaTNjLT5jbGtfc3JjX2ZyZXEpCj4+ICsJ CQlnaTNjLT5jbGtfY2ZnID0gY2xrX2lkeDsKPj4gKwo+PiArCQlpZiAoY2xrX2lkeC0+Y2xrX2Zy ZXFfb3V0ID09IGJ1cy0+c2NsX3JhdGUuaTJjKQo+PiArCQkJZ2kzYy0+Y2xrX29kX2NmZyA9IGNs a19pZHg7Cj4+ICsJfQo+PiArCj4+ICsJaWYgKCFnaTNjLT5jbGtfY2ZnIHx8ICFnaTNjLT5jbGtf b2RfY2ZnKQo+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+ PiArCj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgc2V0X25ld19hZGRyX3Nsb3QodW5zaWduZWQgbG9u ZyAqYWRkcnNsb3QsIHU4IGFkZHIpCj4gCj4gV2h5IGRvIHlvdSBtYXJrIGZ1bmN0aW9ucyBpbmxp bmU/IERyb3AsIGl0J3Mgbm90IHJlY29tbWVuZGVkIHN0eWxlLgo+IApTdXJlLCBEb25lLgo+PiAr ewo+PiArCWlmIChhZGRyID4gSTNDX0FERFJfTUFTSykKPj4gKwkJcmV0dXJuOwo+IAo+IFRoaXMg c2VlbXMgcmVkdW5kYW50LiBXaHkgYXJlIHlvdSBjaGVja2luZyBpdCBldmVyeSB0aW1lIGhlcmUs IGJ1dCBub3QKPiBvbmNlIGluIHRoZSBsb29wIHdoZXJlIHRoaXMgaXMgZXhlY3V0ZWQ/Cj4gCj4g VGhpcyBpcyBjb25mdXNpbmcgLSB5b3UgZ290IGluY29ycmVjdCBhZGRyZXNzIGluIHRoZSBwbGFj ZSB3aGVyZSB0aGlzIGlzCj4gY2FsbGVkICgiaWYgKG5ld19kZXZpY2UpIHsiKSBidXQgeW91IGRv IG5vdCBoYW5kbGUgaW5jb3JyZWN0IGFkZHJlc3MsCj4gZG9uJ3QgZmFpbCwgZG9uJ3QgdW53aW5k LCBkb24ndCBoYW5kbGUgdGhlIGVycm9yLiBJbnN0ZWFkIHRoaXMgcGFydAo+IHNpbGVudGx5IHNr aXBzIHRoZSBpc3N1ZSBidXQgcmVzdCBvZiBjb2RlIHdpbGwgd29yayB3aXRoIHRoYXQgaW5jb3Jy ZWN0Cj4gYWRkcmVzcy4KPiAKSeKAmWxsIGRyb3AgaW5saW5lLiBJ4oCZbGwgdmFsaWRhdGUgdGhl IG5ldyBkeW5hbWljIGFkZHJlc3Mgb25jZSBhdCB0aGUgCm5ld19kZXZpY2UgaGFuZGxpbmcgc2l0 ZSBhbmQgdHJlYXQgaW52YWxpZCBhZGRyZXNzZXMgYXMgYW4gZXJyb3IsIHNvIHdlIApkb27igJl0 IHNpbGVudGx5IHByb2NlZWQgd2l0aCBhIGJhZCBhZGRyZXNzLiBIZWxwZXJzIHdpbGwgYXNzdW1l IHZhbGlkYXRlZCAKaW5wdXQgYW5kIHdvbuKAmXQgaGlkZSBlcnJvciBwYXRocy4KPiAKPiAKPj4g Kwo+PiArCXNldF9iaXQoYWRkciwgYWRkcnNsb3QpOz4gK30KPj4gKwo+PiArc3RhdGljIGlubGlu ZSB2b2lkIGNsZWFyX25ld19hZGRyX3Nsb3QodW5zaWduZWQgbG9uZyAqYWRkcnNsb3QsIHU4IGFk ZHIpCj4+ICt7Cj4+ICsJaWYgKGFkZHIgPiBJM0NfQUREUl9NQVNLKQo+PiArCQlyZXR1cm47Cj4g Cj4gQW5kIGlzX25ld19hZGRyX3Nsb3Rfc2V0KCkgZG9lcyBub3QgaGF2ZSB0aGUgdGVzdD8gQW5k IGhvdyBpcyB0aGlzIGV2ZW4KPiBwb3NzaWJsZSwgYXJlbid0IHlvdSBsb29waW5nIHRpbGwgSTND X0FERFJfTUFTSz8KPiAKCkZpeGVkIHRoZSBlcnJvciBoYW5kbGluZyBhdCB0aGUgY2FsbGVyLgoK PiBJIHVuZGVyc3RhbmQgd2h5IHlvdSB3YW50ZWQgc29tZSBhYnN0cmFjdGlvbnMsIGJ1dCB0aGlz IGNhdXNlZCBoaWRpbmcKPiBhY3R1YWwgaXNzdWVzIGJlY2F1c2UgeW91IGRvIG5vdCBzZWUgYmln IHBpY3R1cmUuClN1cmUsIG1hZGUgdGhlIGNoYW5nZXMgYWNjb3JkaW5nbHkuCj4+ICsKPj4gKwlj bGVhcl9iaXQoYWRkciwgYWRkcnNsb3QpOwo+PiArfQo+IAo+IAo+IAo+IC4uLgo+IAo+IAo+PiAr Cj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGkzY19tYXN0ZXJfY29udHJvbGxlcl9vcHMgZ2VuaV9p M2NfbWFzdGVyX29wcyA9IHsKPj4gKwkuYnVzX2luaXQgPSBnZW5pX2kzY19tYXN0ZXJfYnVzX2lu aXQsCj4+ICsJLmJ1c19jbGVhbnVwID0gTlVMTCwKPj4gKwkuZG9fZGFhID0gZ2VuaV9pM2NfbWFz dGVyX2RvX2RhYSwKPj4gKwkuYXR0YWNoX2kzY19kZXYgPSBnZW5pX2kzY19tYXN0ZXJfYXR0YWNo X2kzY19kZXYsCj4+ICsJLnJlYXR0YWNoX2kzY19kZXYgPSBOVUxMLAo+PiArCS5kZXRhY2hfaTNj X2RldiA9IGdlbmlfaTNjX21hc3Rlcl9kZXRhY2hfaTNjX2RldiwKPj4gKwkuYXR0YWNoX2kyY19k ZXYgPSBnZW5pX2kzY19tYXN0ZXJfYXR0YWNoX2kyY19kZXYsCj4+ICsJLmRldGFjaF9pMmNfZGV2 ID0gZ2VuaV9pM2NfbWFzdGVyX2RldGFjaF9pMmNfZGV2LAo+PiArCS5zdXBwb3J0c19jY2NfY21k ID0gZ2VuaV9pM2NfbWFzdGVyX3N1cHBvcnRzX2NjY19jbWQsCj4+ICsJLnNlbmRfY2NjX2NtZCA9 IGdlbmlfaTNjX21hc3Rlcl9zZW5kX2NjY19jbWQsCj4+ICsJLnByaXZfeGZlcnMgPSBnZW5pX2kz Y19tYXN0ZXJfcHJpdl94ZmVycywKPj4gKwkuaTJjX3hmZXJzID0gZ2VuaV9pM2NfbWFzdGVyX2ky Y194ZmVycywKPj4gKwkuZW5hYmxlX2liaSA9IE5VTEwsCj4+ICsJLmRpc2FibGVfaWJpID0gTlVM TCwKPj4gKwkucmVxdWVzdF9pYmkgPSBOVUxMLAo+PiArCS5mcmVlX2liaSA9IE5VTEwsCj4+ICsJ LnJlY3ljbGVfaWJpX3Nsb3QgPSBOVUxMLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGludCBpM2Nf Z2VuaV9yZXNvdXJjZXNfaW5pdChzdHJ1Y3QgZ2VuaV9pM2NfZGV2ICpnaTNjLCBzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQo+PiArewo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwlnaTNjLT5z ZS5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwo+PiArCWlm IChJU19FUlIoZ2kzYy0+c2UuYmFzZSkpCj4+ICsJCXJldHVybiBQVFJfRVJSKGdpM2MtPnNlLmJh c2UpOwo+PiArCj4+ICsJZ2kzYy0+c2UuY2xrID0gZGV2bV9jbGtfZ2V0KCZwZGV2LT5kZXYsIE5V TEwpOwo+PiArCWlmIChJU19FUlIoZ2kzYy0+c2UuY2xrKSkKPj4gKwkJcmV0dXJuIGRldl9lcnJf cHJvYmUoJnBkZXYtPmRldiwgUFRSX0VSUihnaTNjLT5zZS5jbGspLAo+PiArCQkJCQkJCSJVbmFi bGUgdG8gZ2V0IHNlcmlhbCBlbmdpbmUgY29yZSBjbG9jazogJXBlXG4iLAo+IAo+IE1lc3NlZCBh bGlnbm1lbnQuCj4gCkZpeGVkLgoKPj4gKwkJCQkJCQlnaTNjLT5zZS5jbGspOwo+PiArCXJldCA9 IGdlbmlfaWNjX2dldCgmZ2kzYy0+c2UsIE5VTEwpOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVy biByZXQ7Cj4+ICsKPiBCZXN0IHJlZ2FyZHMsCj4gS3J6eXN6dG9mCgoKLS0gCmxpbnV4LWkzYyBt YWlsaW5nIGxpc3QKbGludXgtaTNjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1pM2MK