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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (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 16976C43327 for ; Mon, 29 Jun 2026 13:17:51 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1weBoC-0005zT-Ip; Mon, 29 Jun 2026 09:13:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBoB-0005x7-AY for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:55 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1weBo8-0003HZ-Re for qemu-devel@nongnu.org; Mon, 29 Jun 2026 09:13:55 -0400 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65TAT4td2627852 for ; Mon, 29 Jun 2026 13:13:42 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= 7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=DSciRph8DalIbZPU W0eevYJETbLJK3I5Wpv4a1O2ket2YbdlxuquT3AQB0Gr0q/SaPsKohLMAfjLX7k+ gxqC6pvVLUhbiuj9Vj0pcd4qvF2TU4N88fTlielO6TWyVkzQelkZvqzAGcTdWIJZ sjyDMOQUy5wzV8J2RBDBqOY/PXh6NZufYdCqkNHtpDqrj5DimCkx/aErqUIlPJRv 45ZShqAeWuInZh8h4MCEERpEYqC87Ss47/lT+39+zB0e7l8UznIMjClgq/K2t7jc hUPrkYWH9IXFNe9U1Jx0IHqfwFmHsCORzLmUWXzc142wn2rUlpg5u3dBYeaU/mGs RuYySg== Received: from mail-dl1-f72.google.com (mail-dl1-f72.google.com [74.125.82.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f3nbgs1b8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 29 Jun 2026 13:13:41 +0000 (GMT) Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-138acbc0e69so16086481c88.0 for ; Mon, 29 Jun 2026 06:13:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782738821; x=1783343621; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=U2weeELgXhsqMVaGizqdLZqzpV/4+YS8M1Rc4w2UMDgj3yNTyTv3h4VO0GLzHHFfGD 6jzeCdI00UumV/s6vyXUiXpJOQW5KKwasJuPvSC8vS/x90rHCCt3AIiGlDgTJhbaq36w 8KreBrgK4H7752XxNEVslpUFg9jSVckoivOdADv8Cm/3lIhkn4cf46ZWbcz7bieG1CY7 +kf6Q7vzo9WGeELjM1ItpEHWKg2KoMiW/CEF8augzluvdFPeXXIcaw7fATXo/E4GM6rS DekOrvL6/Tm4rKise6OAcap0LeE1uyPOrbyDkzoVpfaei7OKmirBSu5T/N+ui4Wi1jsy xZKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782738821; x=1783343621; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7mMKASCyM5y7fHIpILH7Fqqeizn/+r4LwxCWOb6jddk=; b=e2bjumdmQ/OPtLmzQL53IVIBTpVaWYgLXz6tiliaOhu9QblhzV/7PUgAa47zMpVUon BtyWKc5nf7lEsX/VC9l9/U6NNCuISlmtjsk3QbAYVfmnVmzc7NE1nBRTlQsdlRgePuMo 34eNsLcAtzepFW2hk9mQr4fu25acLn+JdMc+VX+meVeaL0TkKEEbvElgdrgA2xRaZGEH eKBbjINguNP7eZ9BCGbOAQTP4bdOTDQujz0q7UF6iMcDH2NDyWNueTapBkRnKbY5JsEB 1NP8r/NwrOz3fIvUXSnUTf4qVMfoO3msmXOdEpiVTS5bc6vZ+es1tBOfteHU6zTMvWzX XxYQ== X-Gm-Message-State: AOJu0YxMxVTghcRXRgjb2uShr+CIXO0oQP8u1o781xm11zlmJrAFbGWK Wk3+ITTRXKzR1QhLZJcOljJzvtcwnpGSPSB+BlPSdMB5m87m1qNgPMhRGiwmIQAO9FNHuYTriJd jhikZXln9iUsqgN6YLKVJXc1eFtEPzfFPljWCE1PH1AIn0kGTzOJR0YGn6alqIfcv2w== X-Gm-Gg: AfdE7clCB0uYIVV6M2PR/LHj/NVWarhnz6mSyKMf4lmw6Xo0YilqWJTcckS0PoMZ/KR 4USgbZBuPaa3P/3ZVtCTDYJLgDc93sxwNcPgehSRyxYFJUpZj6Uakwv+iZMVao3HPVjQlv/9EVQ DPq9wIRtrR2Lx95itkkhrjT9ru5eiTuHDqxv5RjBl9mHK8FHVMpbNvtucnDvxQQjvnGpAxSLxG3 gW8H/ocrlkAzKZSkdR/n0xGswfcHS9D6k+HARIyhJ6VBZE9mfJtYai1CPhC4s2HR9QB/EyG6OGS PJfB0nXFtdLaAM110iuDu1mzCZvDW69GWpY3H7xQxm9vc/wDz/MqZybEUj6lNt0m9yR6Ml8alBd SC9/MqO4/ZM4AWHEMLClbQcHxdF7WFmeeUqxbIBa9C2GcQ/POJz/kNBcD508= X-Received: by 2002:a05:7022:6194:b0:13a:363:ff6c with SMTP id a92af1059eb24-13a03640543mr1909579c88.24.1782738820728; Mon, 29 Jun 2026 06:13:40 -0700 (PDT) X-Received: by 2002:a05:7022:6194:b0:13a:363:ff6c with SMTP id a92af1059eb24-13a03640543mr1909547c88.24.1782738820027; Mon, 29 Jun 2026 06:13:40 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-139e78317f3sm28459106c88.9.2026.06.29.06.13.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 06:13:38 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org, stefanha@redhat.com, peter.maydell@linaro.org Cc: brian.cain@oss.qualcomm.com, Pierrick Bouvier Subject: [PULL v5 38/77] target/hexagon: Update TARGET_PAGE_BITS, stubs for modify_ssr/get_exe_mode Date: Mon, 29 Jun 2026 06:11:53 -0700 Message-Id: <20260629131232.2487780-39-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> References: <20260629131232.2487780-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Proofpoint-ORIG-GUID: RA9KAQShuFAAD_vk404VlacSHND54kLR X-Authority-Analysis: v=2.4 cv=Z4Hc2nRA c=1 sm=1 tr=0 ts=6a426f85 cx=c_pps a=bS7HVuBVfinNPG3f6cIo3Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=1eS9DRoYkSOUxsN_X7IA:9 a=QEXdDO2ut3YA:10 a=vBUdepa8ALXHeOFLBtFW:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX3WTK0fHBdKfA NZcnZYPuUYqsMZhxj2qGVljJdQ4zFnLUwrhuiWsOqsZlM20oXfxQIj5dn0hVhuDFebGRn3GcU6n LZOsY+SuOIwpCFCThLuf6BglRsmG8fQ= X-Proofpoint-GUID: RA9KAQShuFAAD_vk404VlacSHND54kLR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI5MDEwOSBTYWx0ZWRfX0LpE0ivG3ez0 arWzlljG4KQ8yzRSTL5obXPsbCSrsd48S2kal4BpKCh/1Ff9gsMbFWDmNqf3soPNPIG5EExgDw8 e+SS9FmrVQrbYYhlP87EDL8PDs4qBe+NQswLmhtu1c60FwdzkBDG2rOUQmP3jPL1vxmrnL2OtdJ mfWALN4l62FS3rIdH6WF+y8/aXDXFk9EWEqaL8i1bOzBxIFu9PUk6eik1wAopU/2g4qJ4B1Q7J5 isPJuS9vcKiKgNzJHJl2ebsvm+hZ/WxmZsIeC59RSes3J4gnXA29CfaKC3G8nleYtozpL5MY8Ze 5AIMXKhJBCrhb/UfwXHVHIJ+EXprTyAkHeCMkA0NZRRV1xO/4nIzpJ9T62s/hUKxwRIEqU1mTRF CmSaUgORUQBlJlMIDbt04BI64CHHjyMTwwCItK0ZY7xJdTpLV2nlagll/AIusXPnsqHME+LWUsy ezKBr1Pr38VeSzjw97g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-29_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 bulkscore=0 spamscore=0 impostorscore=0 phishscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606290109 Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org QWRkIGhleF9tbXUuW2NoXSwgY3B1IG1vZGUgaGVscGVycywgYW5kIGFkZGl0aW9uYWwgaW5jbHVk ZXMvc3R1YnMKdGhhdCBpbnRlZ3JhdGUgdGhlIFRMQiBkZXZpY2Ugd2l0aCB0aGUgQ1BVIG1vZGVs LgoKUmV2aWV3ZWQtYnk6IFBpZXJyaWNrIEJvdXZpZXIgPHBpZXJyaWNrLmJvdXZpZXJAb3NzLnF1 YWxjb21tLmNvbT4KU2lnbmVkLW9mZi1ieTogQnJpYW4gQ2FpbiA8YnJpYW4uY2FpbkBvc3MucXVh bGNvbW0uY29tPgotLS0KIHRhcmdldC9oZXhhZ29uL2NwdS1wYXJhbS5oICB8ICAgMiArLQogdGFy Z2V0L2hleGFnb24vY3B1LmggICAgICAgIHwgIDIxICsrKwogdGFyZ2V0L2hleGFnb24vaGV4X21t dS5oICAgIHwgIDI2ICsrKysKIHRhcmdldC9oZXhhZ29uL2ludGVybmFsLmggICB8ICAgOSArKwog dGFyZ2V0L2hleGFnb24vc3lzX21hY3Jvcy5oIHwgICAzICsKIHRhcmdldC9oZXhhZ29uL2NwdS5j ICAgICAgICB8ICAzNiArKysrKwogdGFyZ2V0L2hleGFnb24vaGV4X21tdS5jICAgIHwgMjcwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAzNjYg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9o ZXhhZ29uL2hleF9tbXUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhhZ29uL2hleF9t bXUuYwoKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2NwdS1wYXJhbS5oIGIvdGFyZ2V0L2hl eGFnb24vY3B1LXBhcmFtLmgKaW5kZXggMWYwZjIyYTc5NjguLmJmZTlhODY4ZDYzIDEwMDY0NAot LS0gYS90YXJnZXQvaGV4YWdvbi9jcHUtcGFyYW0uaAorKysgYi90YXJnZXQvaGV4YWdvbi9jcHUt cGFyYW0uaApAQCAtMTgsNyArMTgsNyBAQAogI2lmbmRlZiBIRVhBR09OX0NQVV9QQVJBTV9ICiAj ZGVmaW5lIEhFWEFHT05fQ1BVX1BBUkFNX0gKIAotI2RlZmluZSBUQVJHRVRfUEFHRV9CSVRTIDE2 ICAgICAvKiA2NEsgcGFnZXMgKi8KKyNkZWZpbmUgVEFSR0VUX1BBR0VfQklUUyAxMiAgICAgLyog NEsgcGFnZXMgKi8KIAogI2RlZmluZSBUQVJHRVRfVklSVF9BRERSX1NQQUNFX0JJVFMgMzIKIApk aWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vY3B1LmggYi90YXJnZXQvaGV4YWdvbi9jcHUuaApp bmRleCA3YmExZDMwNDdkZi4uZGJkYzQ1NmQ3MzIgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29u L2NwdS5oCisrKyBiL3RhcmdldC9oZXhhZ29uL2NwdS5oCkBAIC0yNyw2ICsyNyw5IEBACiAjZGVm aW5lIFNSRUdfV1JJVEVTX01BWCAyCiAjZW5kaWYKIAordHlwZWRlZiBzdHJ1Y3QgSGV4YWdvblRM QlN0YXRlIEhleGFnb25UTEJTdGF0ZTsKK3R5cGVkZWYgc3RydWN0IEhleGFnb25HbG9iYWxSZWdT dGF0ZSBIZXhhZ29uR2xvYmFsUmVnU3RhdGU7CisKICNpbmNsdWRlICJjcHUtcW9tLmgiCiAjaW5j bHVkZSAiZXhlYy9jcHUtY29tbW9uLmgiCiAjaW5jbHVkZSAiZXhlYy90YXJnZXRfbG9uZy5oIgpA QCAtMzksNiArNDIsNyBAQAogI2Vycm9yICJIZXhhZ29uIGRvZXMgbm90IHN1cHBvcnQgc3lzdGVt IGVtdWxhdGlvbiIKICNlbmRpZgogCisKICNkZWZpbmUgTlVNX1BSRUdTIDQKICNkZWZpbmUgVE9U QUxfUEVSX1RIUkVBRF9SRUdTIDY0CiAKQEAgLTQ3LDEwICs1MSwxMyBAQAogI2RlZmluZSBSRUdf V1JJVEVTX01BWCAzMgogI2RlZmluZSBQUkVEX1dSSVRFU19NQVggNSAgICAgICAgICAgICAgICAg ICAvKiA0IGluc25zICsgZW5kbG9vcCAqLwogI2RlZmluZSBWU1RPUkVTX01BWCAyCisjZGVmaW5l IE1BWF9UTEJfRU5UUklFUyAxMDI0CiAKICNkZWZpbmUgQ1BVX1JFU09MVklOR19UWVBFIFRZUEVf SEVYQUdPTl9DUFUKICNpZm5kZWYgQ09ORklHX1VTRVJfT05MWQogI2RlZmluZSBDUFVfSU5URVJS VVBUX1NXSSAgICAgIENQVV9JTlRFUlJVUFRfVEdUX0lOVF8wCisjZGVmaW5lIENQVV9JTlRFUlJV UFRfSzBfVU5MT0NLIENQVV9JTlRFUlJVUFRfVEdUX0lOVF8xCisjZGVmaW5lIENQVV9JTlRFUlJV UFRfVExCX1VOTE9DSyBDUFVfSU5URVJSVVBUX1RHVF9JTlRfMgogCiAjZGVmaW5lIEhFWF9DUFVf TU9ERV9VU0VSICAgIDEKICNkZWZpbmUgSEVYX0NQVV9NT0RFX0dVRVNUICAgMgpAQCAtNjcsNiAr NzQsMTIgQEAKICNkZWZpbmUgTU1VX0dVRVNUX0lEWCAgICAgICAgMQogI2RlZmluZSBNTVVfS0VS TkVMX0lEWCAgICAgICAyCiAKK3R5cGVkZWYgZW51bSB7CisgICAgSEVYX0xPQ0tfVU5MT0NLRUQg ICAgICAgPSAwLAorICAgIEhFWF9MT0NLX1dBSVRJTkcgICAgICAgID0gMSwKKyAgICBIRVhfTE9D S19PV05FUiAgICAgICAgICA9IDIsCisgICAgSEVYX0xPQ0tfUVVFVUVEICAgICAgICA9IDMKK30g aGV4X2xvY2tfc3RhdGVfdDsKICNlbmRpZgogCiAKQEAgLTEyOCw2ICsxNDEsMTAgQEAgdHlwZWRl ZiBzdHJ1Y3QgQ1BVQXJjaFN0YXRlIHsKIAogICAgIC8qIFRoaXMgYWxpYXMgb2YgQ1BVU3RhdGUu Y3B1X2luZGV4IGlzIHVzZWQgYnkgaW1wb3J0ZWQgc291cmNlczogKi8KICAgICB1aW50MzJfdCB0 aHJlYWRJZDsKKyAgICBoZXhfbG9ja19zdGF0ZV90IHRsYl9sb2NrX3N0YXRlOworICAgIGhleF9s b2NrX3N0YXRlX3QgazBfbG9ja19zdGF0ZTsKKyAgICB1aW50MzJfdCB0bGJfbG9ja19jb3VudDsK KyAgICB1aW50MzJfdCBrMF9sb2NrX2NvdW50OwogICAgIHVpbnQ2NF90IHRfY3ljbGVfY291bnQ7 CiAjZW5kaWYKICAgICB1aW50MzJfdCBuZXh0X1BDOwpAQCAtMTc4LDYgKzE5NSwxMCBAQCBzdHJ1 Y3QgQXJjaENQVSB7CiAgICAgYm9vbCBsbGRiX2NvbXBhdDsKICAgICB0YXJnZXRfdWxvbmcgbGxk Yl9zdGFja19hZGp1c3Q7CiAgICAgYm9vbCBzaG9ydF9jaXJjdWl0OworI2lmbmRlZiBDT05GSUdf VVNFUl9PTkxZCisgICAgSGV4YWdvblRMQlN0YXRlICp0bGI7CisgICAgdWludDMyX3QgaHRpZDsK KyNlbmRpZgogfTsKIAogI2luY2x1ZGUgImNwdV9iaXRzLmgiCmRpZmYgLS1naXQgYS90YXJnZXQv aGV4YWdvbi9oZXhfbW11LmggYi90YXJnZXQvaGV4YWdvbi9oZXhfbW11LmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRmNTU2YzcxNWE5Ci0tLSAvZGV2L251bGwKKysr IGIvdGFyZ2V0L2hleGFnb24vaGV4X21tdS5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5 cmlnaHQgKGMpIFF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlh cmllcy4KKyAqCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgor ICovCisKKyNpZm5kZWYgSEVYQUdPTl9NTVVfSAorI2RlZmluZSBIRVhBR09OX01NVV9ICisKKyNp bmNsdWRlICJjcHUuaCIKKyNpbmNsdWRlICJtb25pdG9yL21vbml0b3IuaCIKKworZXh0ZXJuIHZv aWQgaGV4X3RsYncoQ1BVSGV4YWdvblN0YXRlICplbnYsIHVpbnQzMl90IGluZGV4LCB1aW50NjRf dCB2YWx1ZSk7CitleHRlcm4gdWludDMyX3QgaGV4X3RsYl9sb29rdXAoQ1BVSGV4YWdvblN0YXRl ICplbnYsIHVpbnQzMl90IHNzciwgdWludDMyX3QgVkEpOworZXh0ZXJuIHZvaWQgaGV4X21tdV9v bihDUFVIZXhhZ29uU3RhdGUgKmVudik7CitleHRlcm4gdm9pZCBoZXhfbW11X29mZihDUFVIZXhh Z29uU3RhdGUgKmVudik7CitleHRlcm4gdm9pZCBoZXhfbW11X21vZGVfY2hhbmdlKENQVUhleGFn b25TdGF0ZSAqZW52KTsKK2V4dGVybiBib29sIGhleF90bGJfZmluZF9tYXRjaChDUFVIZXhhZ29u U3RhdGUgKmVudiwgdWludDMyX3QgVkEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TU1VQWNjZXNzVHlwZSBhY2Nlc3NfdHlwZSwgaHdhZGRyICpQQSwgaW50ICpwcm90LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpzaXplLCBpbnQzMl90ICpleGNwLCBp bnQgbW11X2lkeCk7CitleHRlcm4gaW50IGhleF90bGJfY2hlY2tfb3ZlcmxhcChDUFVIZXhhZ29u U3RhdGUgKmVudiwgdWludDY0X3QgZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50NjRfdCBpbmRleCk7CitleHRlcm4gdm9pZCBoZXhfdGxiX2xvY2soQ1BVSGV4YWdv blN0YXRlICplbnYpOworZXh0ZXJuIHZvaWQgaGV4X3RsYl91bmxvY2soQ1BVSGV4YWdvblN0YXRl ICplbnYpOwordm9pZCBkdW1wX21tdShNb25pdG9yICptb24sIENQVUhleGFnb25TdGF0ZSAqZW52 KTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaW50ZXJuYWwuaCBiL3Rhcmdl dC9oZXhhZ29uL2ludGVybmFsLmgKaW5kZXggMzNkNzNlZDE4ZDEuLjQzMzg5MTRlZmI1IDEwMDY0 NAotLS0gYS90YXJnZXQvaGV4YWdvbi9pbnRlcm5hbC5oCisrKyBiL3RhcmdldC9oZXhhZ29uL2lu dGVybmFsLmgKQEAgLTM2LDYgKzM2LDE1IEBAIHZvaWQgR19OT1JFVFVSTiBkb19yYWlzZV9leGNl cHRpb24oQ1BVSGV4YWdvblN0YXRlICplbnYsCiAgICAgICAgIHVpbnQzMl90IFBDLAogICAgICAg ICB1aW50cHRyX3QgcmV0YWRkcik7CiAKKyNkZWZpbmUgaGV4YWdvbl9jcHVfbW11X2VuYWJsZWQo ZW52KSAoeyBcCisgICAgSGV4YWdvbkNQVSAqY3B1ID0gZW52X2FyY2hjcHUoZW52KTsgXAorICAg IGNwdS0+Z2xvYmFscmVncyA/IFwKKyAgICAgICAgR0VUX1NZU0NGR19GSUVMRChTWVNDRkdfTU1V RU4sIFwKKyAgICAgICAgICAgIGhleGFnb25fZ2xvYmFscmVnX3JlYWQoY3B1LT5nbG9iYWxyZWdz LCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFWF9TUkVHX1NZU0NGRywg KGVudiktPnRocmVhZElkKSkgOiBcCisgICAgICAgIDA7IFwKK30pCisKICNpZm5kZWYgQ09ORklH X1VTRVJfT05MWQogZXh0ZXJuIGNvbnN0IFZNU3RhdGVEZXNjcmlwdGlvbiB2bXN0YXRlX2hleGFn b25fY3B1OwogI2VuZGlmCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9zeXNfbWFjcm9zLmgg Yi90YXJnZXQvaGV4YWdvbi9zeXNfbWFjcm9zLmgKaW5kZXggZThiYmVhZGZkZmIuLmFkZTU3Mjkw MTY2IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9zeXNfbWFjcm9zLmgKKysrIGIvdGFyZ2V0 L2hleGFnb24vc3lzX21hY3Jvcy5oCkBAIC0xNDEsNiArMTQxLDkgQEAKICNkZWZpbmUgZkRDSU5W SURYKFJFRykKICNkZWZpbmUgZkRDSU5WQShSRUcpIGRvIHsgUkVHID0gUkVHOyB9IHdoaWxlICgw KSAvKiBOb3RoaW5nIHRvIGRvIGluIHFlbXUgKi8KIAorI2RlZmluZSBmU0VUX1RMQl9MT0NLKCkg ICAgICAgaGV4X3RsYl9sb2NrKGVudik7CisjZGVmaW5lIGZDTEVBUl9UTEJfTE9DSygpICAgICBo ZXhfdGxiX3VubG9jayhlbnYpOworCiAjZGVmaW5lIGZUTEJfSURYTUFTSyhJTkRFWCkgXAogICAg ICgoSU5ERVgpICYgKGZQT1cyX1JPVU5EVVAoIFwKICAgICAgICAgZkNBU1Q0dShoZXhhZ29uX3Rs Yl9nZXRfbnVtX2VudHJpZXMoZW52X2FyY2hjcHUoZW52KS0+dGxiKSkpIC0gMSkpCmRpZmYgLS1n aXQgYS90YXJnZXQvaGV4YWdvbi9jcHUuYyBiL3RhcmdldC9oZXhhZ29uL2NwdS5jCmluZGV4IDYy NjEwMGQ0M2ZkLi43M2FjYTBhNDIxNyAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vY3B1LmMK KysrIGIvdGFyZ2V0L2hleGFnb24vY3B1LmMKQEAgLTIzLDkgKzIzLDE3IEBACiAjaW5jbHVkZSAi cWFwaS9lcnJvci5oIgogI2luY2x1ZGUgImh3L2NvcmUvcWRldi1wcm9wZXJ0aWVzLmgiCiAjaW5j bHVkZSAiZnB1L3NvZnRmbG9hdC1oZWxwZXJzLmgiCisjaW5jbHVkZSAiaHcvaGV4YWdvbi9oZXhh Z29uX3RsYi5oIgogI2luY2x1ZGUgInRjZy90Y2cuaCIKICNpbmNsdWRlICJleGVjL2dkYnN0dWIu aCIKICNpbmNsdWRlICJhY2NlbC90Y2cvY3B1LW9wcy5oIgorI2luY2x1ZGUgImNwdV9oZWxwZXIu aCIKKyNpbmNsdWRlICJoZXhfbW11LmgiCisKKyNpZm5kZWYgQ09ORklHX1VTRVJfT05MWQorI2lu Y2x1ZGUgInN5c19tYWNyb3MuaCIKKyNpbmNsdWRlICJhY2NlbC90Y2cvY3B1LWxkc3QuaCIKKyNl bmRpZgogCiBzdGF0aWMgT2JqZWN0Q2xhc3MgKmhleGFnb25fY3B1X2NsYXNzX2J5X25hbWUoY29u c3QgY2hhciAqY3B1X21vZGVsKQogewpAQCAtNDMsNiArNTEsMTEgQEAgc3RhdGljIE9iamVjdENs YXNzICpoZXhhZ29uX2NwdV9jbGFzc19ieV9uYW1lKGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKIH0K IAogc3RhdGljIGNvbnN0IFByb3BlcnR5IGhleGFnb25fY3B1X3Byb3BlcnRpZXNbXSA9IHsKKyNp Zm5kZWYgQ09ORklHX1VTRVJfT05MWQorICAgIERFRklORV9QUk9QX0xJTksoInRsYiIsIEhleGFn b25DUFUsIHRsYiwgVFlQRV9IRVhBR09OX1RMQiwKKyAgICAgICAgICAgICAgICAgICAgIEhleGFn b25UTEJTdGF0ZSAqKSwKKyAgICBERUZJTkVfUFJPUF9VSU5UMzIoImh0aWQiLCBIZXhhZ29uQ1BV LCBodGlkLCAwKSwKKyNlbmRpZgogICAgIERFRklORV9QUk9QX0JPT0woImxsZGItY29tcGF0Iiwg SGV4YWdvbkNQVSwgbGxkYl9jb21wYXQsIGZhbHNlKSwKICAgICBERUZJTkVfUFJPUF9VTlNJR05F RCgibGxkYi1zdGFjay1hZGp1c3QiLCBIZXhhZ29uQ1BVLCBsbGRiX3N0YWNrX2FkanVzdCwgMCwK ICAgICAgICAgICAgICAgICAgICAgICAgICBxZGV2X3Byb3BfdWludDMyLCB0YXJnZXRfdWxvbmcp LApAQCAtMjY5LDcgKzI4MiwxMSBAQCBzdGF0aWMgVENHVEJDUFVTdGF0ZSBoZXhhZ29uX2dldF90 Yl9jcHVfc3RhdGUoQ1BVU3RhdGUgKmNzKQogICAgIH0KIAogI2lmbmRlZiBDT05GSUdfVVNFUl9P TkxZCisgICAgaGV4X2ZsYWdzID0gRklFTERfRFAzMihoZXhfZmxhZ3MsIFRCX0ZMQUdTLCBNTVVf SU5ERVgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVfbW11X2luZGV4KGVudl9jcHUo ZW52KSwgZmFsc2UpKTsKICAgICBoZXhfZmxhZ3MgPSBGSUVMRF9EUDMyKGhleF9mbGFncywgVEJf RkxBR1MsIFBDWUNMRV9FTkFCTEVELCAxKTsKKyNlbHNlCisgICAgaGV4X2ZsYWdzID0gRklFTERf RFAzMihoZXhfZmxhZ3MsIFRCX0ZMQUdTLCBNTVVfSU5ERVgsIE1NVV9VU0VSX0lEWCk7CiAjZW5k aWYKIAogICAgIHJldHVybiAoVENHVEJDUFVTdGF0ZSl7IC5wYyA9IHBjLCAuZmxhZ3MgPSBoZXhf ZmxhZ3MgfTsKQEAgLTI4OSwxMSArMzA2LDE1IEBAIHN0YXRpYyB2b2lkIGhleGFnb25fcmVzdG9y ZV9zdGF0ZV90b19vcGMoQ1BVU3RhdGUgKmNzLAogICAgIGNwdV9lbnYoY3MpLT5ncHJbSEVYX1JF R19QQ10gPSBkYXRhWzBdOwogfQogCisKIHN0YXRpYyB2b2lkIGhleGFnb25fY3B1X3Jlc2V0X2hv bGQoT2JqZWN0ICpvYmosIFJlc2V0VHlwZSB0eXBlKQogewogICAgIENQVVN0YXRlICpjcyA9IENQ VShvYmopOwogICAgIEhleGFnb25DUFVDbGFzcyAqbWNjID0gSEVYQUdPTl9DUFVfR0VUX0NMQVNT KG9iaik7CiAgICAgQ1BVSGV4YWdvblN0YXRlICplbnYgPSBjcHVfZW52KGNzKTsKKyNpZm5kZWYg Q09ORklHX1VTRVJfT05MWQorICAgIEhleGFnb25DUFUgKmNwdSA9IEhFWEFHT05fQ1BVKGNzKTsK KyNlbmRpZgogCiAgICAgaWYgKG1jYy0+cGFyZW50X3BoYXNlcy5ob2xkKSB7CiAgICAgICAgIG1j Yy0+cGFyZW50X3BoYXNlcy5ob2xkKG9iaiwgdHlwZSk7CkBAIC0zMDcsNyArMzI4LDE0IEBAIHN0 YXRpYyB2b2lkIGhleGFnb25fY3B1X3Jlc2V0X2hvbGQoT2JqZWN0ICpvYmosIFJlc2V0VHlwZSB0 eXBlKQogICAgIG1lbXNldChlbnYtPnRfc3JlZywgMCwgc2l6ZW9mKHVpbnQzMl90KSAqIE5VTV9T UkVHUyk7CiAgICAgbWVtc2V0KGVudi0+Z3JlZywgMCwgc2l6ZW9mKHVpbnQzMl90KSAqIE5VTV9H UkVHUyk7CiAgICAgZW52LT53YWl0X25leHRfcGMgPSAwOworICAgIGVudi0+dGxiX2xvY2tfc3Rh dGUgPSBIRVhfTE9DS19VTkxPQ0tFRDsKKyAgICBlbnYtPmswX2xvY2tfc3RhdGUgPSBIRVhfTE9D S19VTkxPQ0tFRDsKKyAgICBlbnYtPnRsYl9sb2NrX2NvdW50ID0gMDsKKyAgICBlbnYtPmswX2xv Y2tfY291bnQgPSAwOwogICAgIGVudi0+bmV4dF9QQyA9IDA7CisKKyAgICBlbnYtPnRfc3JlZ1tI RVhfU1JFR19IVElEXSA9IGNwdS0+aHRpZDsKKyAgICBlbnYtPnRocmVhZElkID0gY3B1LT5odGlk OwogI2VuZGlmCiAgICAgZW52LT5jYXVzZV9jb2RlID0gSEVYX0VWRU5UX05PTkU7CiB9CkBAIC0z MzcsNyArMzY1LDE1IEBAIHN0YXRpYyB2b2lkIGhleGFnb25fY3B1X3JlYWxpemUoRGV2aWNlU3Rh dGUgKmRldiwgRXJyb3IgKiplcnJwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXhh Z29uX2h2eF9nZGJfd3JpdGVfcmVnaXN0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdkYl9maW5kX3N0YXRpY19mZWF0dXJlKCJoZXhhZ29uLWh2eC54bWwiKSk7CiAKKyNpZm5kZWYg Q09ORklHX1VTRVJfT05MWQorICAgIGlmICghSEVYQUdPTl9DUFUoZGV2KS0+dGxiKSB7CisgICAg ICAgIGVycm9yX3NldGcoZXJycCwgImhleGFnb24gY3B1IHJlcXVpcmVzICd0bGInIGxpbmsgcHJv cGVydHkgdG8gYmUgc2V0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAg IHFlbXVfaW5pdF92Y3B1KGNzKTsKKwogICAgIGNwdV9yZXNldChjcyk7CiAgICAgbWNjLT5wYXJl bnRfcmVhbGl6ZShkZXYsIGVycnApOwogfQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2hleGFnb24vaGV4 X21tdS5jIGIvdGFyZ2V0L2hleGFnb24vaGV4X21tdS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi4xYzhjY2VjNjllZgotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9o ZXhhZ29uL2hleF9tbXUuYwpAQCAtMCwwICsxLDI3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg UXVhbGNvbW0gVGVjaG5vbG9naWVzLCBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLgorICoK KyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2lu Y2x1ZGUgInFlbXUvb3NkZXAuaCIKKyNpbmNsdWRlICJxZW11L2xvZy5oIgorI2luY2x1ZGUgInFl bXUvbWFpbi1sb29wLmgiCisjaW5jbHVkZSAicWVtdS9xZW11LXByaW50LmgiCisjaW5jbHVkZSAi Y3B1LmgiCisjaW5jbHVkZSAic3lzdGVtL2NwdXMuaCIKKyNpbmNsdWRlICJpbnRlcm5hbC5oIgor I2luY2x1ZGUgImV4ZWMvY3B1LWludGVycnVwdC5oIgorI2luY2x1ZGUgImNwdV9oZWxwZXIuaCIK KyNpbmNsdWRlICJleGVjL2NwdXRsYi5oIgorI2luY2x1ZGUgImhleF9tbXUuaCIKKyNpbmNsdWRl ICJtYWNyb3MuaCIKKyNpbmNsdWRlICJzeXNfbWFjcm9zLmgiCisjaW5jbHVkZSAiaHcvaGV4YWdv bi9oZXhhZ29uX3RsYi5oIgorI2luY2x1ZGUgImh3L2hleGFnb24vaGV4YWdvbl9nbG9iYWxyZWcu aCIKKworc3RhdGljIGlubGluZSB2b2lkIGhleF9sb2dfdGxidyh1aW50MzJfdCBpbmRleCwgdWlu dDY0X3QgZW50cnkpCit7CisgICAgcWVtdV9sb2dfbWFzayhDUFVfTE9HX01NVSwKKyAgICAgICAg ICAgICAgICAgICJ0bGJ3WyUwMyIgUFJJdTMyICJdOiAweCUwMTYiIFBSSXg2NCAiXG4iLAorICAg ICAgICAgICAgICAgICAgaW5kZXgsIGVudHJ5KTsKK30KKwordm9pZCBoZXhfdGxidyhDUFVIZXhh Z29uU3RhdGUgKmVudiwgdWludDMyX3QgaW5kZXgsIHVpbnQ2NF90IHZhbHVlKQoreworICAgIHVp bnQzMl90IG15aWR4ID0gZlRMQl9OT05QT1cyV1JBUChmVExCX0lEWE1BU0soaW5kZXgpKTsKKyAg ICBIZXhhZ29uVExCU3RhdGUgKnRsYiA9IGVudl9hcmNoY3B1KGVudiktPnRsYjsKKyAgICB1aW50 NjRfdCBvbGRfZW50cnkgPSBoZXhhZ29uX3RsYl9yZWFkKHRsYiwgbXlpZHgpOworCisgICAgYm9v bCBvbGRfZW50cnlfdmFsaWQgPSBleHRyYWN0NjQob2xkX2VudHJ5LCA2MywgMSk7CisgICAgaWYg KG9sZF9lbnRyeV92YWxpZCAmJiBoZXhhZ29uX2NwdV9tbXVfZW5hYmxlZChlbnYpKSB7CisgICAg ICAgIENQVVN0YXRlICpjcyA9IGVudl9jcHUoZW52KTsKKyAgICAgICAgdGxiX2ZsdXNoKGNzKTsK KyAgICB9CisgICAgaGV4YWdvbl90bGJfd3JpdGUodGxiLCBteWlkeCwgdmFsdWUpOworICAgIGhl eF9sb2dfdGxidyhteWlkeCwgdmFsdWUpOworfQorCit2b2lkIGhleF9tbXVfb24oQ1BVSGV4YWdv blN0YXRlICplbnYpCit7CisgICAgQ1BVU3RhdGUgKmNzID0gZW52X2NwdShlbnYpOworICAgIHFl bXVfbG9nX21hc2soQ1BVX0xPR19NTVUsICJIZXhhZ29uIE1NVSB0dXJuZWQgb24hXG4iKTsKKyAg ICB0bGJfZmx1c2goY3MpOworfQorCit2b2lkIGhleF9tbXVfb2ZmKENQVUhleGFnb25TdGF0ZSAq ZW52KQoreworICAgIENQVVN0YXRlICpjcyA9IGVudl9jcHUoZW52KTsKKyAgICBxZW11X2xvZ19t YXNrKENQVV9MT0dfTU1VLCAiSGV4YWdvbiBNTVUgdHVybmVkIG9mZiFcbiIpOworICAgIHRsYl9m bHVzaChjcyk7Cit9CisKK3ZvaWQgaGV4X21tdV9tb2RlX2NoYW5nZShDUFVIZXhhZ29uU3RhdGUg KmVudikKK3sKKyAgICBxZW11X2xvZ19tYXNrKENQVV9MT0dfTU1VLCAiSGV4YWdvbiBtb2RlIGNo YW5nZSFcbiIpOworICAgIENQVVN0YXRlICpjcyA9IGVudl9jcHUoZW52KTsKKyAgICB0bGJfZmx1 c2goY3MpOworfQorCitib29sIGhleF90bGJfZmluZF9tYXRjaChDUFVIZXhhZ29uU3RhdGUgKmVu diwgdWludDMyX3QgVkEsCisgICAgICAgICAgICAgICAgICAgICAgICBNTVVBY2Nlc3NUeXBlIGFj Y2Vzc190eXBlLCBod2FkZHIgKlBBLCBpbnQgKnByb3QsCisgICAgICAgICAgICAgICAgICAgICAg ICB1aW50NjRfdCAqc2l6ZSwgaW50MzJfdCAqZXhjcCwgaW50IG1tdV9pZHgpCit7CisgICAgSGV4 YWdvbkNQVSAqY3B1ID0gZW52X2FyY2hjcHUoZW52KTsKKyAgICB1aW50MzJfdCBzc3IgPSBlbnYt PnRfc3JlZ1tIRVhfU1JFR19TU1JdOworICAgIHVpbnQ4X3QgYXNpZCA9IEdFVF9TU1JfRklFTEQo U1NSX0FTSUQsIHNzcik7CisgICAgaW50IGNhdXNlX2NvZGUgPSAwOworCisgICAgYm9vbCBmb3Vu ZCA9IGhleGFnb25fdGxiX2ZpbmRfbWF0Y2goY3B1LT50bGIsIGFzaWQsIFZBLCBhY2Nlc3NfdHlw ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQSwgcHJvdCwgc2l6 ZSwgZXhjcCwgJmNhdXNlX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbW11X2lkeCk7CisgICAgaWYgKGNhdXNlX2NvZGUpIHsKKyAgICAgICAgZW52LT5jYXVz ZV9jb2RlID0gY2F1c2VfY29kZTsKKyAgICB9CisgICAgcmV0dXJuIGZvdW5kOworfQorCisvKiBD YWxsZWQgZnJvbSB0bGJwIGluc3RydWN0aW9uICovCit1aW50MzJfdCBoZXhfdGxiX2xvb2t1cChD UFVIZXhhZ29uU3RhdGUgKmVudiwgdWludDMyX3Qgc3NyLCB1aW50MzJfdCBWQSkKK3sKKyAgICBI ZXhhZ29uQ1BVICpjcHUgPSBlbnZfYXJjaGNwdShlbnYpOworICAgIHVpbnQ4X3QgYXNpZCA9IEdF VF9TU1JfRklFTEQoU1NSX0FTSUQsIHNzcik7CisgICAgaW50IGNhdXNlX2NvZGUgPSAwOworCisg ICAgdWludDMyX3QgcmVzdWx0ID0gaGV4YWdvbl90bGJfbG9va3VwKGNwdS0+dGxiLCBhc2lkLCBW QSwgJmNhdXNlX2NvZGUpOworICAgIGlmIChjYXVzZV9jb2RlKSB7CisgICAgICAgIGVudi0+Y2F1 c2VfY29kZSA9IGNhdXNlX2NvZGU7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8q CisgKiBSZXR1cm4gY29kZXM6CisgKiAwIG9yIHBvc2l0aXZlICAgICAgICAgICAgIGluZGV4IG9m IG1hdGNoCisgKiAtMSAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlIG1hdGNoZXMKKyAq IC0yICAgICAgICAgICAgICAgICAgICAgICAgbm8gbWF0Y2gKKyAqLworaW50IGhleF90bGJfY2hl Y2tfb3ZlcmxhcChDUFVIZXhhZ29uU3RhdGUgKmVudiwgdWludDY0X3QgZW50cnksIHVpbnQ2NF90 IGluZGV4KQoreworICAgIEhleGFnb25DUFUgKmNwdSA9IGVudl9hcmNoY3B1KGVudik7CisgICAg cmV0dXJuIGhleGFnb25fdGxiX2NoZWNrX292ZXJsYXAoY3B1LT50bGIsIGVudHJ5LCBpbmRleCk7 Cit9CisKK3ZvaWQgZHVtcF9tbXUoTW9uaXRvciAqbW9uLCBDUFVIZXhhZ29uU3RhdGUgKmVudikK K3sKKyAgICBIZXhhZ29uQ1BVICpjcHUgPSBlbnZfYXJjaGNwdShlbnYpOworICAgIGhleGFnb25f dGxiX2R1bXAobW9uLCBjcHUtPnRsYik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwcmludF90 aHJlYWQoY29uc3QgY2hhciAqc3RyLCBDUFVTdGF0ZSAqY3MpCit7CisgICAgZ19hc3NlcnQoYnFs X2xvY2tlZCgpKTsKKyAgICBDUFVIZXhhZ29uU3RhdGUgKnRocmVhZCA9IGNwdV9lbnYoY3MpOwor ICAgIGJvb2wgaXNfc3RvcHBlZCA9IGNwdV9pc19zdG9wcGVkKGNzKTsKKyAgICBpbnQgZXhlX21v ZGUgPSBnZXRfZXhlX21vZGUodGhyZWFkKTsKKyAgICBoZXhfbG9ja19zdGF0ZV90IGxvY2tfc3Rh dGUgPSB0aHJlYWQtPnRsYl9sb2NrX3N0YXRlOworICAgIHFlbXVfbG9nX21hc2soQ1BVX0xPR19N TVUsCisgICAgICAgICAgICIlczogdGhyZWFkSWQgPSAlIiBQUkl1MzIgIjogJXMsIgorICAgICAg ICAgICAiIGV4ZV9tb2RlID0gJXMsIHRsYl9sb2NrX3N0YXRlID0gJXNcbiIsCisgICAgICAgICAg IHN0ciwKKyAgICAgICAgICAgdGhyZWFkLT50aHJlYWRJZCwKKyAgICAgICAgICAgaXNfc3RvcHBl ZCA/ICJzdG9wcGVkIiA6ICJydW5uaW5nIiwKKyAgICAgICAgICAgZXhlX21vZGUgPT0gSEVYX0VY RV9NT0RFX09GRiA/ICJvZmYiIDoKKyAgICAgICAgICAgZXhlX21vZGUgPT0gSEVYX0VYRV9NT0RF X1JVTiA/ICJydW4iIDoKKyAgICAgICAgICAgZXhlX21vZGUgPT0gSEVYX0VYRV9NT0RFX1dBSVQg PyAid2FpdCIgOgorICAgICAgICAgICBleGVfbW9kZSA9PSBIRVhfRVhFX01PREVfREVCVUcgPyAi ZGVidWciIDoKKyAgICAgICAgICAgInVua25vd24iLAorICAgICAgICAgICBsb2NrX3N0YXRlID09 IEhFWF9MT0NLX1VOTE9DS0VEID8gInVubG9ja2VkIiA6CisgICAgICAgICAgIGxvY2tfc3RhdGUg PT0gSEVYX0xPQ0tfV0FJVElORyA/ICJ3YWl0aW5nIiA6CisgICAgICAgICAgIGxvY2tfc3RhdGUg PT0gSEVYX0xPQ0tfT1dORVIgPyAib3duZXIiIDoKKyAgICAgICAgICAgInVua25vd24iKTsKK30K Kworc3RhdGljIGlubGluZSB2b2lkIHByaW50X3RocmVhZF9zdGF0ZXMoY29uc3QgY2hhciAqc3Ry KQoreworICAgIENQVVN0YXRlICpjczsKKyAgICBDUFVfRk9SRUFDSChjcykgeworICAgICAgICBw cmludF90aHJlYWQoc3RyLCBjcyk7CisgICAgfQorfQorCit2b2lkIGhleF90bGJfbG9jayhDUFVI ZXhhZ29uU3RhdGUgKmVudikKK3sKKyAgICBxZW11X2xvZ19tYXNrKENQVV9MT0dfTU1VLCAiaGV4 X3RsYl9sb2NrOiAiIFRBUkdFVF9GTVRfbGQgIlxuIiwKKyAgICAgICAgICAgICAgICAgIGVudi0+ dGhyZWFkSWQpOworICAgIEJRTF9MT0NLX0dVQVJEKCk7CisgICAgZ19hc3NlcnQoKGVudi0+dGxi X2xvY2tfY291bnQgPT0gMCkgfHwgKGVudi0+dGxiX2xvY2tfY291bnQgPT0gMSkpOworCisgICAg SGV4YWdvbkNQVSAqY3B1ID0gZW52X2FyY2hjcHUoZW52KTsKKyAgICB1aW50MzJfdCBzeXNjZmcg PSBjcHUtPmdsb2JhbHJlZ3MgPworICAgICAgICBoZXhhZ29uX2dsb2JhbHJlZ19yZWFkKGNwdS0+ Z2xvYmFscmVncywgSEVYX1NSRUdfU1lTQ0ZHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudi0+dGhyZWFkSWQpIDogMDsKKyAgICB1aW50OF90IHRsYl9sb2NrID0gR0VUX1NZU0NG R19GSUVMRChTWVNDRkdfVExCTE9DSywgc3lzY2ZnKTsKKyAgICBpZiAodGxiX2xvY2spIHsKKyAg ICAgICAgaWYgKGVudi0+dGxiX2xvY2tfc3RhdGUgPT0gSEVYX0xPQ0tfUVVFVUVEKSB7CisgICAg ICAgICAgICBlbnYtPm5leHRfUEMgKz0gNDsKKyAgICAgICAgICAgIGVudi0+dGxiX2xvY2tfY291 bnQrKzsKKyAgICAgICAgICAgIGVudi0+dGxiX2xvY2tfc3RhdGUgPSBIRVhfTE9DS19PV05FUjsK KyAgICAgICAgICAgIFNFVF9TWVNDRkdfRklFTEQoZW52LCBTWVNDRkdfVExCTE9DSywgMSk7Cisg ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVudi0+dGxiX2xvY2tf c3RhdGUgPT0gSEVYX0xPQ0tfT1dORVIpIHsKKyAgICAgICAgICAgIHFlbXVfbG9nX21hc2soQ1BV X0xPR19NTVUgfCBMT0dfR1VFU1RfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJE b3VibGUgdGxibG9jayBhdCBQQzogMHglIiBQUkl4MzIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIiwgdGhyZWFkIG1heSBoYW5nXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBlbnYt Pm5leHRfUEMpOworICAgICAgICAgICAgZW52LT5uZXh0X1BDICs9IDQ7CisgICAgICAgICAgICBD UFVTdGF0ZSAqY3MgPSBlbnZfY3B1KGVudik7CisgICAgICAgICAgICBjcHVfaW50ZXJydXB0KGNz LCBDUFVfSU5URVJSVVBUX0hBTFQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg ICAgICAgIGVudi0+dGxiX2xvY2tfc3RhdGUgPSBIRVhfTE9DS19XQUlUSU5HOworICAgICAgICBD UFVTdGF0ZSAqY3MgPSBlbnZfY3B1KGVudik7CisgICAgICAgIGNwdV9pbnRlcnJ1cHQoY3MsIENQ VV9JTlRFUlJVUFRfSEFMVCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZW52LT5uZXh0X1BDICs9 IDQ7CisgICAgICAgIGVudi0+dGxiX2xvY2tfY291bnQrKzsKKyAgICAgICAgZW52LT50bGJfbG9j a19zdGF0ZSA9IEhFWF9MT0NLX09XTkVSOworICAgICAgICBTRVRfU1lTQ0ZHX0ZJRUxEKGVudiwg U1lTQ0ZHX1RMQkxPQ0ssIDEpOworICAgIH0KKworICAgIGlmIChxZW11X2xvZ2xldmVsX21hc2so Q1BVX0xPR19NTVUpKSB7CisgICAgICAgIHFlbXVfbG9nX21hc2soQ1BVX0xPR19NTVUsICJUaHJl YWRzIGFmdGVyIGhleF90bGJfbG9jazpcbiIpOworICAgICAgICBwcmludF90aHJlYWRfc3RhdGVz KCJcdFRocmVhZCIpOworICAgIH0KK30KKwordm9pZCBoZXhfdGxiX3VubG9jayhDUFVIZXhhZ29u U3RhdGUgKmVudikKK3sKKyAgICBCUUxfTE9DS19HVUFSRCgpOworICAgIGdfYXNzZXJ0KChlbnYt PnRsYl9sb2NrX2NvdW50ID09IDApIHx8IChlbnYtPnRsYl9sb2NrX2NvdW50ID09IDEpKTsKKwor ICAgIC8qIE5vdGhpbmcgdG8gZG8gaWYgdGhlIFRMQiBpc24ndCBsb2NrZWQgYnkgdGhpcyB0aHJl YWQgKi8KKyAgICBIZXhhZ29uQ1BVICpjcHUgPSBlbnZfYXJjaGNwdShlbnYpOworICAgIHVpbnQz Ml90IHN5c2NmZyA9IGNwdS0+Z2xvYmFscmVncyA/CisgICAgICAgIGhleGFnb25fZ2xvYmFscmVn X3JlYWQoY3B1LT5nbG9iYWxyZWdzLCBIRVhfU1JFR19TWVNDRkcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW52LT50aHJlYWRJZCkgOiAwOworICAgIHVpbnQ4X3QgdGxiX2xvY2sg PSBHRVRfU1lTQ0ZHX0ZJRUxEKFNZU0NGR19UTEJMT0NLLCBzeXNjZmcpOworICAgIGlmICgodGxi X2xvY2sgPT0gMCkgfHwKKyAgICAgICAgKGVudi0+dGxiX2xvY2tfc3RhdGUgIT0gSEVYX0xPQ0tf T1dORVIpKSB7CisgICAgICAgIHFlbXVfbG9nX21hc2soTE9HX0dVRVNUX0VSUk9SLAorICAgICAg ICAgICAgICAgICAgICAgICJ0aHJlYWQgJSIgUFJJdTMyICIgYXR0ZW1wdGVkIHRvIHRsYnVubG9j ayIKKyAgICAgICAgICAgICAgICAgICAgICAiIHdpdGhvdXQgaGF2aW5nIHRoZSBsb2NrLCB0bGJf bG9jayBzdGF0ZSA9ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgIGVudi0+dGhyZWFkSWQs IGVudi0+dGxiX2xvY2tfc3RhdGUpOworICAgICAgICBnX2Fzc2VydChlbnYtPnRsYl9sb2NrX3N0 YXRlICE9IEhFWF9MT0NLX1dBSVRJTkcpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg ZW52LT50bGJfbG9ja19jb3VudC0tOworICAgIGVudi0+dGxiX2xvY2tfc3RhdGUgPSBIRVhfTE9D S19VTkxPQ0tFRDsKKyAgICBTRVRfU1lTQ0ZHX0ZJRUxEKGVudiwgU1lTQ0ZHX1RMQkxPQ0ssIDAp OworCisgICAgLyogTG9vayBmb3IgYSB0aHJlYWQgdG8gdW5sb2NrICovCisgICAgdW5zaWduZWQg aW50IHRoaXNfdGhyZWFkSWQgPSBlbnYtPnRocmVhZElkOworICAgIENQVUhleGFnb25TdGF0ZSAq dW5sb2NrX3RocmVhZCA9IE5VTEw7CisgICAgQ1BVU3RhdGUgKmNzOworICAgIENQVV9GT1JFQUNI KGNzKSB7CisgICAgICAgIENQVUhleGFnb25TdGF0ZSAqdGhyZWFkID0gY3B1X2Vudihjcyk7CisK KyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIGhhcmR3YXJlIGltcGxlbWVudHMgcm91bmQtcm9i aW4gZmFpcm5lc3MsIHNvIHdlIGxvb2sgZm9yIHRocmVhZHMKKyAgICAgICAgICogc3RhcnRpbmcg YXQgZW52LT50aHJlYWRJZCArIDEgYW5kIGluY3JlbWVudGluZyBtb2R1bG8gdGhlIG51bWJlciBv ZgorICAgICAgICAgKiB0aHJlYWRzLgorICAgICAgICAgKgorICAgICAgICAgKiBUbyBpbXBsZW1l bnQgdGhpcywgd2UgY2hlY2sgaWYgdGhyZWFkIGlzIGEgZWFybGllciBpbiB0aGUgbW9kdWxvCisg ICAgICAgICAqIHNlcXVlbmNlIHRoYW4gdW5sb2NrX3RocmVhZC4KKyAgICAgICAgICogICAgIGlm IHVubG9jayB0aHJlYWQgaXMgaGlnaGVyIHRoYW4gdGhpcyB0aHJlYWQKKyAgICAgICAgICogICAg ICAgICB0aHJlYWQgbXVzdCBiZSBiZXR3ZWVuIHRoaXMgdGhyZWFkIGFuZCB1bmxvY2tfdGhyZWFk CisgICAgICAgICAqICAgICBlbHNlCisgICAgICAgICAqICAgICAgICAgdGhyZWFkIGhpZ2hlciB0 aGFuIHRoaXMgdGhyZWFkIGlzIGFoZWFkIG9mIHVubG9ja190aHJlYWQKKyAgICAgICAgICogICAg ICAgICB0aHJlYWQgbXVzdCBiZSBsb3dlciB0aGVuIHVubG9jayB0aHJlYWQKKyAgICAgICAgICov CisgICAgICAgIGlmICh0aHJlYWQtPnRsYl9sb2NrX3N0YXRlID09IEhFWF9MT0NLX1dBSVRJTkcp IHsKKyAgICAgICAgICAgIGlmICghdW5sb2NrX3RocmVhZCkgeworICAgICAgICAgICAgICAgIHVu bG9ja190aHJlYWQgPSB0aHJlYWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHVubG9ja190aHJl YWQtPnRocmVhZElkID4gdGhpc190aHJlYWRJZCkgeworICAgICAgICAgICAgICAgIGlmICh0aGlz X3RocmVhZElkIDwgdGhyZWFkLT50aHJlYWRJZCAmJgorICAgICAgICAgICAgICAgICAgICB0aHJl YWQtPnRocmVhZElkIDwgdW5sb2NrX3RocmVhZC0+dGhyZWFkSWQpIHsKKyAgICAgICAgICAgICAg ICAgICAgdW5sb2NrX3RocmVhZCA9IHRocmVhZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICh0aHJlYWQtPnRocmVhZElkID4gdGhp c190aHJlYWRJZCkgeworICAgICAgICAgICAgICAgICAgICB1bmxvY2tfdGhyZWFkID0gdGhyZWFk OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGhyZWFkLT50aHJlYWRJ ZCA8IHVubG9ja190aHJlYWQtPnRocmVhZElkKSB7CisgICAgICAgICAgICAgICAgICAgIHVubG9j a190aHJlYWQgPSB0aHJlYWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg ICAgICB9CisgICAgfQorICAgIGlmICh1bmxvY2tfdGhyZWFkKSB7CisgICAgICAgIGNzID0gZW52 X2NwdSh1bmxvY2tfdGhyZWFkKTsKKyAgICAgICAgcHJpbnRfdGhyZWFkKCJcdFdhaXRpbmcgdGhy ZWFkIGZvdW5kIiwgY3MpOworICAgICAgICB1bmxvY2tfdGhyZWFkLT50bGJfbG9ja19zdGF0ZSA9 IEhFWF9MT0NLX1FVRVVFRDsKKyAgICAgICAgU0VUX1NZU0NGR19GSUVMRCh1bmxvY2tfdGhyZWFk LCBTWVNDRkdfVExCTE9DSywgMSk7CisgICAgICAgIGNwdV9pbnRlcnJ1cHQoY3MsIENQVV9JTlRF UlJVUFRfVExCX1VOTE9DSyk7CisgICAgfQorCisgICAgaWYgKHFlbXVfbG9nbGV2ZWxfbWFzayhD UFVfTE9HX01NVSkpIHsKKyAgICAgICAgcWVtdV9sb2dfbWFzayhDUFVfTE9HX01NVSwgIlRocmVh ZHMgYWZ0ZXIgaGV4X3RsYl91bmxvY2s6XG4iKTsKKyAgICAgICAgcHJpbnRfdGhyZWFkX3N0YXRl cygiXHRUaHJlYWQiKTsKKyAgICB9CisKK30KLS0gCjIuMzQuMQoK