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 C0AFCC88E65 for ; Sun, 13 Sep 2026 16:02:18 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x5mcO-0003Vj-Si; Sun, 13 Sep 2026 11:59:49 -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 1x5mcN-0003VJ-2L for qemu-devel@nongnu.org; Sun, 13 Sep 2026 11:59:47 -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 1x5mcI-0002ei-HH for qemu-devel@nongnu.org; Sun, 13 Sep 2026 11:59:46 -0400 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68DE041d1251573 for ; Sun, 13 Sep 2026 15:59:41 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= BH9AyyIfbw1tLJtubpnqq7BkuuRLGRvMwyMPS8zSiEI=; b=ah8gg4SuoyDLIP66 FSkcBA8dgGPLg/Mwd7CRxVGg8AUCL5QHlKVq47WCjoz/ebZHpOZANBcABYqCxpDi q6oyQzeSMTXLSCyND89PdFhFYgO5EKr/hIFT8OZ0ddhUeY8Koo/Ri5ZnE5eUT0oE X589ImuSGOBkAHDGiRHHIKJpywhhEiHvWI3AIY8soztuL0A2cBKz747LG4fglej7 0m9EdZJiMUvx2by35Ysaw9YBiYAkyi4Bn2yvKf1yORavoDgXRRW8fMwdm0C3cN+w DsJUQLT7oXsY0rkk1EDoEppR3lfJbEL4wrUE3vIMX/6Mmz+gOg/7uyCDwz1XF/iV E8pCbg== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gmy9cbjnc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 13 Sep 2026 15:59:41 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-39dc5d85a9cso1067310a91.2 for ; Sun, 13 Sep 2026 08:59:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789315180; x=1789919980; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=BH9AyyIfbw1tLJtubpnqq7BkuuRLGRvMwyMPS8zSiEI=; b=QMQIPy3StDlBHF3vqFQASwZwBaQorls/QY1FAnexiKz2JhFtfWCcTJ3ebESHOzoPFH MprrJNd90mNXEcqEgSmzI1dUAb2RwDLs7QoYUYgXO6rPbxPgckBU0F0ryZpAeq98vvpP sdKnV4HnC1M33owBNLZc8OY6dxhcVygWlM43Xyf1Cq1Gcj8RWxEIJFBMqam/r7rGgLhk 88qGvYeS/6nPADryfbGuy/dn0C4JkVhkuA/4r+qHQauVyl3NfZsDxIjiPKo74ExynB5R liS5YgSCsmgu9d19+hUdavo3/p4yEj0fnVNvrFU3TXiqpQVIm1NwUwDodsZ90SDrrwwA pTYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789315180; x=1789919980; h=content-transfer-encoding:content-type: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 :content-type; bh=BH9AyyIfbw1tLJtubpnqq7BkuuRLGRvMwyMPS8zSiEI=; b=qKqjUzE4J5iP3KBRs3VJ8e7I0IblcMMqdZOTP5txUG/DyZAa9Vf6QHGhXMb9+ZJBbg zi8GaJEFf2uEVIjyXVYwTBHl8JFtFIducReYkAuVvToEmOV2ajXlFZ1gkkyHy6bSDl6Y lIVOhW9pkPVtPtGFLzAZjwgbKvVsTbwS1bKd/kmDkp0ldywtcUKbEiE/8KfZ/pVw5yJL Sojtxg8SdYpRJFRYTzOpN1qZPF6C0zJM5PEAtISWPrh+INzHuTWqARvnNzXzFipRDfCK GYIrQicbeZyxGdoggBvNpj4QSOB1txf4C6FqNfrYuHnN7iyRK4syT87U0RC0D3vVt8Wn 3rdw== X-Gm-Message-State: AFuF++k7bShFAd+VUFR3mOfT1NwQiBuIcBjVz99Vz30uOEVn/ADgBARn ZEioAYqgqwsPrNmCxYVIeLhO87znzeNBnrB0U5gAgRaNFykquEf/pEpdfppqhoE3eyH5s4+8Lnz eMGfzyjUohFmv+GNF4q3uJfH5bbvHTspqhi3UfmktaQZ67a53B02tGhRVVYf68p7wsA== X-Gm-Gg: AYBFou0Y/1X8+IaDS+LKpRdi8+Zw/R1R7T0eu8LUJG7ubAH/Kyilf8mhRA/yZuAweCP tamECYBV5GJ24jQo65r9kAtGFVutwHzruJ17TSOz0tSVWrBbjNLM936eyT9cDlza+mWNBSWmUu+ 6kAb67eHakr2y70MTPAa7kaxORHO4h8X+SA6NBkScOy3gCXPSmP/us8OC0/gEzQ/in0iwJMSYnp 3TlHsJcT0q185kyGViFmXRZIvVvIhWrRRwMQzxKsX6wJjz2U6mFkRNzfifQ1YoEUr4Y53RssSB3 XSHXa2X3rr6HgzjiIeBPqgZsQtBhE0yJ6A4jCJOLAwLVG/P2gHpogs2K6EJqVZYw5PtTwRd3H78 cgCVVBqqMS+58Omr3VGhPCAMv15cwT1xskEzxpWyWHbyQ7Shq X-Received: by 2002:a17:90b:2f03:b0:398:c3ca:1ebc with SMTP id 98e67ed59e1d1-39d9c21b37bmr24055778a91.18.1789315179564; Sun, 13 Sep 2026 08:59:39 -0700 (PDT) X-Received: by 2002:a17:90b:2f03:b0:398:c3ca:1ebc with SMTP id 98e67ed59e1d1-39d9c21b37bmr24055571a91.18.1789315178199; Sun, 13 Sep 2026 08:59:38 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-33bbeb053a5sm8076380eec.27.2026.09.13.08.59.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Sep 2026 08:59:37 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Brian Cain , marco.liebel@oss.qualcomm.com, Helge Deller , Paolo Bonzini , richard.henderson@linaro.org, Laurent Vivier Subject: [PATCH v3 5/6] target/hexagon: share HVX contexts among CPUs Date: Sun, 13 Sep 2026 08:59:27 -0700 Message-Id: <20260913155928.365928-6-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260913155928.365928-1-brian.cain@oss.qualcomm.com> References: <20260913155928.365928-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Proofpoint-GUID: sRv8oAe5GOLgB9EaSvHHKIs8IB9bANCJ X-Authority-Analysis: v=2.4 cv=Pv4G/AM3 c=1 sm=1 tr=0 ts=6aa6c86d cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=VA4R_o8xKxnPebBt35UA:9 a=60zYHOP6Ns0h5CbI:21 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTEzMDIyNyBTYWx0ZWRfX35efxFwIyv4T g/h3Boggwr5oBb0DnntFCJ1Gy7SyTNZ5GRguxXO6WZlIgHyRgJns8h4elKlXKqHsYQiisd9EoOk JttO86ovproEGVlJOSlvdgtu4DXodyE= X-Proofpoint-ORIG-GUID: sRv8oAe5GOLgB9EaSvHHKIs8IB9bANCJ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTEzMDIyNyBTYWx0ZWRfXziqTh/TovS9C MDg7TsSFA73vt5Vfuxrqy75FXjJuwoDTKhPtjEu58LM4sTX53O4CgfT0CzmQJsOAJMo0fdxinPX cn8T50zG46jCc/7Gz4oF7x5Hy8UTz+zKQ2Z7eT7eB8bzOPNjhkt0ojKyz9RUNG53KaM9ZR4fbA6 A4d0Pc83BoKc/pBtNnm2peUcI1uA/9RpHCvYjmoxq5y03e+Jj+FPhRZBErONdeGLsUac7uyS4ME eG5TNfYWjeuofrikwsSJ4wHs+vLPFi8/SoEOHcDi5YGmJWpsgPz2KL9QLmLnAmqcjvvJnAlg5cA dYjuqAZ1FTpBwiLinqxkSRAv3+dgioMlZC1TopISbhy07o67H+v2gr1gC6zXsoZzmul2GpzdwkP 7vLiZXPVNQEGv5hPSzIZyI9dQbV5u1sk66JvjRJwbNxd9+35TpV1EYMEtZlv73vIeKVnXjK4WfK ewXTR1KKyZD1B2lUQMg== 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-13_05,2026-09-11_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 adultscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 spamscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609130227 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 VGhlIEhWWCByZWdpc3RlciBmaWxlIGJlbG9uZ3MgdG8gYW4gZXh0ZW5zaW9uIGNvbnRleHQsIG5v dCBhIGhhcmR3YXJlIHRocmVhZC4KTW9kZWwgZWFjaCBzeXN0ZW0tZW11bGF0aW9uIGNvbnRleHQg YXMgYSBRT00gZGV2aWNlLCBsaW5rIHRoZSBjb250ZXh0cyB0bwplYWNoIHZDUFUsIGFuZCB1c2Ug U1NSOlhBIHRvIHNlbGVjdCB0aGUgYWN0aXZlIGNvbnRleHQuCgpLZWVwIG9uZSBlbWJlZGRlZCBj b250ZXh0IHBlciBsaW51eC11c2VyIENQVS4gIENhcnJ5IHRoZSBzZWxlY3RlZCByZWdpc3Rlci1m aWxlCmJhc2Ugd2l0aCBIVlggb3BlcmFuZHMgc28gdHJhbnNsYXRlZCBjb2RlIGNhbiBhZGRyZXNz IHRoZSBzZWxlY3RlZCBjb250ZXh0CmF0IHJ1biB0aW1lLgoKU2lnbmVkLW9mZi1ieTogQnJpYW4g Q2FpbiA8YnJpYW4uY2FpbkBvc3MucXVhbGNvbW0uY29tPgotLS0KIGluY2x1ZGUvaHcvaGV4YWdv bi9oZXhhZ29uLmggICAgICAgICAgICAgfCAgIDEgKwogaW5jbHVkZS9ody9oZXhhZ29uL2hleGFn b25faHZ4X2NvbnRleHQuaCB8ICAyNyArCiB0YXJnZXQvaGV4YWdvbi9jcHUuaCAgICAgICAgICAg ICAgICAgICAgIHwgIDI3ICstCiB0YXJnZXQvaGV4YWdvbi9jcHVfaGVscGVyLmggICAgICAgICAg ICAgIHwgICAxICsKIHRhcmdldC9oZXhhZ29uL2dlbl90Y2dfaHZ4LmggICAgICAgICAgICAgfCA2 MDggKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHRhcmdldC9oZXhhZ29uL2dlbnB0ci5oICAgICAg ICAgICAgICAgICAgfCAgIDggKwogdGFyZ2V0L2hleGFnb24vbW12ZWMvbWFjcm9zLmggICAgICAg ICAgICB8ICAxNCArLQogdGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmggICAgICAgICAgICAgICB8 ICAxMiArLQogaHcvaGV4YWdvbi9oZXgtc3Vic3lzLmMgICAgICAgICAgICAgICAgICB8ICAzNiAr KwogaHcvaGV4YWdvbi9oZXhhZ29uX2h2eF9jb250ZXh0LmMgICAgICAgICB8ICA4NCArKysrCiBs aW51eC11c2VyL21haW4uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHRhcmdldC9o ZXhhZ29uL2NwdS5jICAgICAgICAgICAgICAgICAgICAgfCAgMzAgKy0KIHRhcmdldC9oZXhhZ29u L2NwdV9oZWxwZXIuYyAgICAgICAgICAgICAgfCAgNzIgKysrCiB0YXJnZXQvaGV4YWdvbi9nZGJz dHViLmMgICAgICAgICAgICAgICAgIHwgIDE2ICstCiB0YXJnZXQvaGV4YWdvbi9nZW5wdHIuYyAg ICAgICAgICAgICAgICAgIHwgMTAyICsrLS0KIHRhcmdldC9oZXhhZ29uL21hY2hpbmUuYyAgICAg ICAgICAgICAgICAgfCAgMTIgKwogdGFyZ2V0L2hleGFnb24vb3BfaGVscGVyLmMgICAgICAgICAg ICAgICB8ICAzNyArLQogdGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmMgICAgICAgICAgICAgICB8 ICA2MCArKy0KIGh3L2hleGFnb24vbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogdGFyZ2V0L2hleGFnb24vaGV4X2NvbW1vbi5weSAgICAgICAgICAgICB8IDE3OSArKysrLS0t CiAyMCBmaWxlcyBjaGFuZ2VkLCA4ODEgaW5zZXJ0aW9ucygrKSwgNDQ5IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvaHcvaGV4YWdvbi9oZXhhZ29uX2h2eF9jb250ZXh0 LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBody9oZXhhZ29uL2hleGFnb25faHZ4X2NvbnRleHQuYwoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcvaGV4YWdvbi9oZXhhZ29uLmggYi9pbmNsdWRlL2h3L2hl eGFnb24vaGV4YWdvbi5oCmluZGV4IDYyMzk4ZWViMzU5Li45YjVkMzNmZmMzYiAxMDA2NDQKLS0t IGEvaW5jbHVkZS9ody9oZXhhZ29uL2hleGFnb24uaAorKysgYi9pbmNsdWRlL2h3L2hleGFnb24v aGV4YWdvbi5oCkBAIC0xNzMsNiArMTczLDcgQEAgc3RydWN0IEhleGFnb25Db21tb25NYWNoaW5l U3RhdGUgewogICAgIERldmljZVN0YXRlICpxdGltZXI7CiAgICAgRGV2aWNlU3RhdGUgKmdsb2Jf cmVnczsKICAgICBEZXZpY2VTdGF0ZSAqdGxiOworICAgIHVuc2lnbmVkIG51bV9odnhfY3R4Owog fTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2hleGFnb24vaGV4YWdvbl9odnhf Y29udGV4dC5oIGIvaW5jbHVkZS9ody9oZXhhZ29uL2hleGFnb25faHZ4X2NvbnRleHQuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWI4NTgxNmE3ZmYKLS0tIC9kZXYv bnVsbAorKysgYi9pbmNsdWRlL2h3L2hleGFnb24vaGV4YWdvbl9odnhfY29udGV4dC5oCkBAIC0w LDAgKzEsMjcgQEAKKy8qCisgKiBIZXhhZ29uIEhWWCBFeHRlbnNpb24gQ29udGV4dCBRT00gT2Jq ZWN0CisgKgorICogQ29weXJpZ2h0IChjKSBRdWFsY29tbSBUZWNobm9sb2dpZXMsIEluYy4gYW5k L29yIGl0cyBzdWJzaWRpYXJpZXMuCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MC1vci1sYXRlcgorICovCisKKyNpZm5kZWYgSEVYQUdPTl9IVlhfQ09OVEVYVF9ICisjZGVmaW5l IEhFWEFHT05fSFZYX0NPTlRFWFRfSAorCisjaW5jbHVkZSAiaHcvY29yZS9zeXNidXMuaCIKKyNp bmNsdWRlICJxb20vb2JqZWN0LmgiCisjaW5jbHVkZSAidGFyZ2V0L2hleGFnb24vY3B1LmgiCisK KyNkZWZpbmUgVFlQRV9IRVhBR09OX0hWWF9DT05URVhUICJoZXhhZ29uLWh2eC1jb250ZXh0Igor T0JKRUNUX0RFQ0xBUkVfU0lNUExFX1RZUEUoSGV4YWdvbkhWWENvbnRleHRTdGF0ZSwgSEVYQUdP Tl9IVlhfQ09OVEVYVCkKKworc3RydWN0IEhleGFnb25IVlhDb250ZXh0U3RhdGUgeworICAgIFN5 c0J1c0RldmljZSBwYXJlbnRfb2JqOworCisgICAgLyogUGh5c2ljYWwgY29udGV4dCBudW1iZXIs IGFzIFNTUjpYQSBtYXBzIHRvIGl0LiAqLworICAgIHVpbnQzMl90IGluZGV4OworCisgICAgSGV4 YWdvbkhWWENvbnRleHQgcmVnczsKK307CisKKyNlbmRpZiAvKiBIRVhBR09OX0hWWF9DT05URVhU X0ggKi8KZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2NwdS5oIGIvdGFyZ2V0L2hleGFnb24v Y3B1LmgKaW5kZXggOTdmNjg5ZmRhMjIuLjQ4NDAxY2M3MWViIDEwMDY0NAotLS0gYS90YXJnZXQv aGV4YWdvbi9jcHUuaAorKysgYi90YXJnZXQvaGV4YWdvbi9jcHUuaApAQCAtMjksNiArMjksNyBA QAogCiB0eXBlZGVmIHN0cnVjdCBIZXhhZ29uVExCU3RhdGUgSGV4YWdvblRMQlN0YXRlOwogdHlw ZWRlZiBzdHJ1Y3QgSGV4YWdvbkdsb2JhbFJlZ1N0YXRlIEhleGFnb25HbG9iYWxSZWdTdGF0ZTsK K3R5cGVkZWYgc3RydWN0IEhleGFnb25IVlhDb250ZXh0U3RhdGUgSGV4YWdvbkhWWENvbnRleHRT dGF0ZTsKIAogI2luY2x1ZGUgImNwdS1xb20uaCIKICNpbmNsdWRlICJleGVjL2NwdS1jb21tb24u aCIKQEAgLTQ5LDYgKzUwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSGV4YWdvbkdsb2JhbFJlZ1N0YXRl IEhleGFnb25HbG9iYWxSZWdTdGF0ZTsKICNkZWZpbmUgUkVHX1dSSVRFU19NQVggMzIKICNkZWZp bmUgUFJFRF9XUklURVNfTUFYIDUgICAgICAgICAgICAgICAgICAgLyogNCBpbnNucyArIGVuZGxv b3AgKi8KICNkZWZpbmUgVlNUT1JFU19NQVggMgorI2RlZmluZSBIVlhfQ09OVEVYVFNfTUFYIDgK ICNkZWZpbmUgTUFYX1RMQl9FTlRSSUVTIDEwMjQKICNkZWZpbmUgVEhSRUFEU19NQVggMTYKIApA QCAtMTIwLDYgKzEyMiwxMSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAvKiBNYXhpbXVtIG51bWJlciBv ZiB2ZWN0b3IgdGVtcHMgaW4gYSBwYWNrZXQgKi8KICNkZWZpbmUgVkVDVE9SX1RFTVBTX01BWCAg ICAgICAgICAgIDQKIAordHlwZWRlZiBzdHJ1Y3QgSGV4YWdvbkhWWENvbnRleHQgeworICAgIE1N VmVjdG9yIFZSZWdzW05VTV9WUkVHU107CisgICAgTU1RUmVnIFFSZWdzW05VTV9RUkVHU107Cit9 IFFFTVVfQUxJR05FRCgxNikgSGV4YWdvbkhWWENvbnRleHQ7CisKIHR5cGVkZWYgc3RydWN0IENQ VUFyY2hTdGF0ZSB7CiAgICAgdGFyZ2V0X3Vsb25nIGdwcltUT1RBTF9QRVJfVEhSRUFEX1JFR1Nd OwogICAgIHRhcmdldF91bG9uZyBwcmVkW05VTV9QUkVHU107CkBAIC0xNTksMTEgKzE2NiwxMyBA QCB0eXBlZGVmIHN0cnVjdCBDUFVBcmNoU3RhdGUgewogICAgIHRhcmdldF91bG9uZyBsbHNjX3Zh bDsKICAgICB1aW50NjRfdCAgICAgbGxzY192YWxfaTY0OwogCi0gICAgTU1WZWN0b3IgVlJlZ3Nb TlVNX1ZSRUdTXSBRRU1VX0FMSUdORUQoMTYpOworI2lmbmRlZiBDT05GSUdfVVNFUl9PTkxZCisg ICAgSGV4YWdvbkhWWENvbnRleHQgKmh2eDsKKyNlbmRpZgorCiAgICAgTU1WZWN0b3IgZnV0dXJl X1ZSZWdzW1ZFQ1RPUl9URU1QU19NQVhdIFFFTVVfQUxJR05FRCgxNik7CiAgICAgTU1WZWN0b3Ig dG1wX1ZSZWdzW1ZFQ1RPUl9URU1QU19NQVhdIFFFTVVfQUxJR05FRCgxNik7CiAKLSAgICBNTVFS ZWcgUVJlZ3NbTlVNX1FSRUdTXSBRRU1VX0FMSUdORUQoMTYpOwogICAgIE1NUVJlZyBmdXR1cmVf UVJlZ3NbTlVNX1FSRUdTXSBRRU1VX0FMSUdORUQoMTYpOwogCiAgICAgLyogVGVtcG9yYXJpZXMg dXNlZCB3aXRoaW4gaW5zdHJ1Y3Rpb25zICovCkBAIC0xOTUsNyArMjA0LDEwIEBAIHN0cnVjdCBB cmNoQ1BVIHsKIAogICAgIENQVUhleGFnb25TdGF0ZSBlbnY7CiAgICAgSGV4YWdvbkNQVUNvbmZp ZyBjZmc7Ci0jaWZuZGVmIENPTkZJR19VU0VSX09OTFkKKyNpZmRlZiBDT05GSUdfVVNFUl9PTkxZ CisgICAgSGV4YWdvbkhWWENvbnRleHQgaHZ4X2N0eDsKKyNlbHNlCisgICAgSGV4YWdvbkhWWENv bnRleHRTdGF0ZSAqaHZ4X2N0eFtIVlhfQ09OVEVYVFNfTUFYXTsKICAgICBIZXhhZ29uVExCU3Rh dGUgKnRsYjsKICAgICB1aW50MzJfdCBib290X2FkZHI7CiAgICAgSGV4YWdvbkdsb2JhbFJlZ1N0 YXRlICpnbG9iYWxyZWdzOwpAQCAtMjA0LDYgKzIxNiwxNSBAQCBzdHJ1Y3QgQXJjaENQVSB7CiAj ZW5kaWYKIH07CiAKK3N0YXRpYyBpbmxpbmUgSGV4YWdvbkhWWENvbnRleHQgKmhleF9odngoQ1BV SGV4YWdvblN0YXRlICplbnYpCit7CisjaWZkZWYgQ09ORklHX1VTRVJfT05MWQorICAgIHJldHVy biAmZW52X2FyY2hjcHUoZW52KS0+aHZ4X2N0eDsKKyNlbHNlCisgICAgcmV0dXJuIGVudi0+aHZ4 OworI2VuZGlmCit9CisKIEZJRUxEKFRCX0ZMQUdTLCBJU19USUdIVF9MT09QLCAwLCAxKQogRklF TEQoVEJfRkxBR1MsIE1NVV9JTkRFWCwgMSwgMykKIEZJRUxEKFRCX0ZMQUdTLCBQQ1lDTEVfRU5B QkxFRCwgNCwgMSkKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2NwdV9oZWxwZXIuaCBiL3Rh cmdldC9oZXhhZ29uL2NwdV9oZWxwZXIuaAppbmRleCAxMjUxMmVmZDc0Zi4uYWZiNGRmNTlmODAg MTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2NwdV9oZWxwZXIuaAorKysgYi90YXJnZXQvaGV4 YWdvbi9jcHVfaGVscGVyLmgKQEAgLTE1LDYgKzE1LDcgQEAgdm9pZCBoZXhhZ29uX3BlZWtfbWVt b3J5X3JhbmdlKENQVUhleGFnb25TdGF0ZSAqZW52LCB1aW50MzJfdCBzdGFydF9hZGRyLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGxlbmd0aCwgdWludHB0cl90IHJl dGFkZHIpOwogdWludDMyX3QgaGV4YWdvbl9nZXRfcG11X2NvdW50ZXIoQ1BVSGV4YWdvblN0YXRl ICpjdXJfZW52LCBpbnQgaW5kZXgpOwogdm9pZCBoZXhhZ29uX21vZGlmeV9zc3IoQ1BVSGV4YWdv blN0YXRlICplbnYsIHVpbnQzMl90IG5ldywgdWludDMyX3Qgb2xkKTsKK3Vuc2lnbmVkIGhleGFn b25faHZ4X3NlbGVjdF9jb250ZXh0KENQVUhleGFnb25TdGF0ZSAqZW52LCB1aW50MzJfdCBzc3Ip OwogaW50IGdldF9jcHVfbW9kZShjb25zdCBDUFVIZXhhZ29uU3RhdGUgKmVudik7CiBpbnQgZ2V0 X2V4ZV9tb2RlKGNvbnN0IENQVUhleGFnb25TdGF0ZSAqZW52KTsKIHZvaWQgY2xlYXJfd2FpdF9t b2RlKENQVUhleGFnb25TdGF0ZSAqZW52KTsKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2dl bl90Y2dfaHZ4LmggYi90YXJnZXQvaGV4YWdvbi9nZW5fdGNnX2h2eC5oCmluZGV4IDJhMzQyY2Rl ZTY5Li5mMzk5MjkxZGM2NiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vZ2VuX3RjZ19odngu aAorKysgYi90YXJnZXQvaGV4YWdvbi9nZW5fdGNnX2h2eC5oCkBAIC00OSw4ICs0OSw4IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBhc3NlcnRfdmhpc3RfdG1wKERpc2FzQ29udGV4dCAqY3R4KQogICAg IGRvIHsgXAogICAgICAgICBpZiAoY3R4LT5wcmVfY29tbWl0KSB7IFwKICAgICAgICAgICAgIGlu dHB0cl90IGRzdG9mZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgcXRtcCk7IFwKLSAgICAg ICAgICAgIHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQsIGRzdG9mZiwgUXZWX29mZiwgXAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3Ip KTsgXAorICAgICAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92YXIoTU9fNjQsIHRjZ19lbnYsIGRz dG9mZiwgUXZWX2Jhc2UsIFF2Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCiAgICAgICAgIH0gZWxz ZSB7IFwKICAgICAgICAgICAgIGFzc2VydF92aGlzdF90bXAoY3R4KTsgXAogICAgICAgICAgICAg Z2VuX2hlbHBlcl92aGlzdHEodGNnX2Vudik7IFwKQEAgLTY1LDggKzY1LDggQEAgc3RhdGljIGlu bGluZSB2b2lkIGFzc2VydF92aGlzdF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAgICAgZG8geyBc CiAgICAgICAgIGlmIChjdHgtPnByZV9jb21taXQpIHsgXAogICAgICAgICAgICAgaW50cHRyX3Qg ZHN0b2ZmID0gb2Zmc2V0b2YoQ1BVSGV4YWdvblN0YXRlLCBxdG1wKTsgXAotICAgICAgICAgICAg dGNnX2dlbl9ndmVjX21vdihNT182NCwgZHN0b2ZmLCBRdlZfb2ZmLCBcCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisg ICAgICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3ZhcihNT182NCwgdGNnX2VudiwgZHN0b2ZmLCBR dlZfYmFzZSwgUXZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKICAgICAgICAgfSBlbHNlIHsgXAog ICAgICAgICAgICAgYXNzZXJ0X3ZoaXN0X3RtcChjdHgpOyBcCiAgICAgICAgICAgICBnZW5faGVs cGVyX3Z3aGlzdDI1NnEodGNnX2Vudik7IFwKQEAgLTgxLDggKzgxLDggQEAgc3RhdGljIGlubGlu ZSB2b2lkIGFzc2VydF92aGlzdF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAgICAgZG8geyBcCiAg ICAgICAgIGlmIChjdHgtPnByZV9jb21taXQpIHsgXAogICAgICAgICAgICAgaW50cHRyX3QgZHN0 b2ZmID0gb2Zmc2V0b2YoQ1BVSGV4YWdvblN0YXRlLCBxdG1wKTsgXAotICAgICAgICAgICAgdGNn X2dlbl9ndmVjX21vdihNT182NCwgZHN0b2ZmLCBRdlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAg ICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3ZhcihNT182NCwgdGNnX2VudiwgZHN0b2ZmLCBRdlZf YmFzZSwgUXZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKICAgICAgICAgfSBlbHNlIHsgXAogICAg ICAgICAgICAgYXNzZXJ0X3ZoaXN0X3RtcChjdHgpOyBcCiAgICAgICAgICAgICBnZW5faGVscGVy X3Z3aGlzdDI1NnFfc2F0KHRjZ19lbnYpOyBcCkBAIC05Nyw4ICs5Nyw4IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBhc3NlcnRfdmhpc3RfdG1wKERpc2FzQ29udGV4dCAqY3R4KQogICAgIGRvIHsgXAog ICAgICAgICBpZiAoY3R4LT5wcmVfY29tbWl0KSB7IFwKICAgICAgICAgICAgIGludHB0cl90IGRz dG9mZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgcXRtcCk7IFwKLSAgICAgICAgICAgIHRj Z19nZW5fZ3ZlY19tb3YoTU9fNjQsIGRzdG9mZiwgUXZWX29mZiwgXAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsgXAorICAg ICAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92YXIoTU9fNjQsIHRjZ19lbnYsIGRzdG9mZiwgUXZW X2Jhc2UsIFF2Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCiAgICAgICAgIH0gZWxzZSB7IFwKICAg ICAgICAgICAgIGFzc2VydF92aGlzdF90bXAoY3R4KTsgXAogICAgICAgICAgICAgZ2VuX2hlbHBl cl92d2hpc3QxMjhxKHRjZ19lbnYpOyBcCkBAIC0xMTQsOCArMTE0LDggQEAgc3RhdGljIGlubGlu ZSB2b2lkIGFzc2VydF92aGlzdF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAgICAgZG8geyBcCiAg ICAgICAgIGlmIChjdHgtPnByZV9jb21taXQpIHsgXAogICAgICAgICAgICAgaW50cHRyX3QgZHN0 b2ZmID0gb2Zmc2V0b2YoQ1BVSGV4YWdvblN0YXRlLCBxdG1wKTsgXAotICAgICAgICAgICAgdGNn X2dlbl9ndmVjX21vdihNT182NCwgZHN0b2ZmLCBRdlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAg ICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3ZhcihNT182NCwgdGNnX2VudiwgZHN0b2ZmLCBRdlZf YmFzZSwgUXZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKICAgICAgICAgfSBlbHNlIHsgXAogICAg ICAgICAgICAgVENHdiB0Y2d2X3VpViA9IHRjZ19jb25zdGFudF90bCh1aVYpOyBcCiAgICAgICAg ICAgICBhc3NlcnRfdmhpc3RfdG1wKGN0eCk7IFwKQEAgLTEyNSwxOSArMTI1LDIwIEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBhc3NlcnRfdmhpc3RfdG1wKERpc2FzQ29udGV4dCAqY3R4KQogCiAKICNk ZWZpbmUgZkdFTl9UQ0dfVjZfdmFzc2lnbihTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNf bW92KE1PXzY0LCBWZFZfb2ZmLCBWdVZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICBzaXpl b2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQorICAgIHRjZ19nZW5fZ3ZlY19tb3ZfdmFy KE1PXzY0LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQogCiAj ZGVmaW5lIGZHRU5fVENHX1Y2X3Zhc3NpZ25fdG1wKFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5f Z3ZlY19tb3YoTU9fNjQsIFZkVl9vZmYsIFZ1Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAg IHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpCisgICAgdGNnX2dlbl9ndmVjX21v dl92YXIoTU9fNjQsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3Rvcikp CiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmNvbWJpbmVfdG1wKFNIT1JUQ09ERSkgXAogICAgIGRv IHsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92KE1PXzY0LCBWZGRWX29mZiwgVnZWX29mZiwg XAotICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZl Y3RvcikpOyBcCi0gICAgICAgIHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQsIFZkZFZfb2ZmICsgc2l6 ZW9mKE1NVmVjdG9yKSwgVnVWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAgICAgIHRjZ19nZW5fZ3ZlY19t b3ZfdmFyKE1PXzY0LCBWZGRWX2Jhc2UsIFZkZFZfb2ZmLCBWdlZfYmFzZSwgVnZWX29mZiwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1W ZWN0b3IpKTsgXAorICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3ZhcihNT182NCwgVmRkVl9iYXNl LCBWZGRWX29mZiArIHNpemVvZihNTVZlY3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVnVWX2Jhc2UsIFZ1Vl9vZmYsIHNpemVvZihNTVZlY3RvciksIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKICAgICB9IHdoaWxlICgwKQog CiAvKgpAQCAtMTQ4LDE4ICsxNDksMjAgQEAgc3RhdGljIGlubGluZSB2b2lkIGFzc2VydF92aGlz dF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zjb21iaW5lKFNI T1JUQ09ERSkgXAogICAgIGRvIHsgXAogICAgICAgICBpZiAoVmRkVl9vZmYgIT0gVnVWX29mZikg eyBcCi0gICAgICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92KE1PXzY0LCBWZGRWX29mZiwgVnZWX29m ZiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXpl b2YoTU1WZWN0b3IpKTsgXAotICAgICAgICAgICAgdGNnX2dlbl9ndmVjX21vdihNT182NCwgVmRk Vl9vZmYgKyBzaXplb2YoTU1WZWN0b3IpLCBWdVZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAgICAg ICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3ZhcihNT182NCwgVmRkVl9iYXNlLCBWZGRWX29mZiwgVnZW X2Jhc2UsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZ2Vl9vZmYsIHNpemVv ZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAgICAgICAgICB0Y2dfZ2VuX2d2 ZWNfbW92X3ZhcihNT182NCwgVmRkVl9iYXNlLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWZGRWX29mZiArIHNpemVvZihNTVZlY3RvciksIFZ1Vl9iYXNlLCBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWdVZfb2ZmLCBzaXplb2YoTU1WZWN0b3IpLCBzaXpl b2YoTU1WZWN0b3IpKTsgXAogICAgICAgICB9IGVsc2UgeyBcCiAgICAgICAgICAgICBpbnRwdHJf dCB0bXBvZmYgPSBvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUsIHZ0bXApOyBcCi0gICAgICAgICAg ICB0Y2dfZ2VuX2d2ZWNfbW92KE1PXzY0LCB0bXBvZmYsIFZ1Vl9vZmYsIFwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwK LSAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQsIFZkZFZfb2ZmLCBWdlZfb2ZmLCBc Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihN TVZlY3RvcikpOyBcCi0gICAgICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92KE1PXzY0LCBWZGRWX29m ZiArIHNpemVvZihNTVZlY3RvciksIHRtcG9mZiwgXAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsgXAorICAgICAgICAgICAg dGNnX2dlbl9ndmVjX21vdl92YXIoTU9fNjQsIHRjZ19lbnYsIHRtcG9mZiwgVnVWX2Jhc2UsIFZ1 Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3Rv ciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAgICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3Zh cihNT182NCwgVmRkVl9iYXNlLCBWZGRWX29mZiwgVnZWX2Jhc2UsIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFZ2Vl9vZmYsIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZl Y3RvcikpOyBcCisgICAgICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3ZhcihNT182NCwgVmRkVl9i YXNlLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZGRWX29mZiArIHNpemVv ZihNTVZlY3RvciksIHRjZ19lbnYsIHRtcG9mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKICAgICAgICAg fSBcCiAgICAgfSB3aGlsZSAoMCkKIApAQCAtMTcwLDggKzE3Myw4IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBhc3NlcnRfdmhpc3RfdG1wKERpc2FzQ29udGV4dCAqY3R4KQogICAgICAgICBUQ0dMYWJl bCAqZmFsc2VfbGFiZWwgPSBnZW5fbmV3X2xhYmVsKCk7IFwKICAgICAgICAgdGNnX2dlbl9hbmRp X3RsKGxzYiwgUHNWLCAxKTsgXAogICAgICAgICB0Y2dfZ2VuX2JyY29uZGlfdGwoVENHX0NPTkRf TkUsIGxzYiwgUFJFRCwgZmFsc2VfbGFiZWwpOyBcCi0gICAgICAgIHRjZ19nZW5fZ3ZlY19tb3Yo TU9fNjQsIFZkVl9vZmYsIFZ1Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl b2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsgXAorICAgICAgICB0Y2dfZ2VuX2d2ZWNf bW92X3ZhcihNT182NCwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZl Y3RvcikpOyBcCiAgICAgICAgIGdlbl9zZXRfbGFiZWwoZmFsc2VfbGFiZWwpOyBcCiAgICAgfSB3 aGlsZSAoMCkKIApAQCAtMTg2LDIzMSArMTg5LDI3NiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXNz ZXJ0X3ZoaXN0X3RtcChEaXNhc0NvbnRleHQgKmN0eCkKIAogLyogVmVjdG9yIGFkZCAtIHZhcmlv dXMgZm9ybXMgKi8KICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmFkZGIoU0hPUlRDT0RFKSBcCi0gICAg dGNnX2dlbl9ndmVjX2FkZChNT184LCBWZFZfb2ZmLCBWdVZfb2ZmLCBWdlZfb2ZmLCBcCi0gICAg ICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQorICAg IHRjZ19nZW5fZ3ZlY19hZGRfdmFyKE1PXzgsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwg VnVWX29mZiwgVnZWX2Jhc2UsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfb2ZmLCBz aXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2 X3ZhZGRoKFNIT1JUQ1lERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19hZGQoTU9fMTYsIFZkVl9vZmYs IFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3Rv ciksIHNpemVvZihNTVZlY3RvcikpCisgICAgdGNnX2dlbl9ndmVjX2FkZF92YXIoTU9fMTYsIFZk Vl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAg ICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBzaXplb2YoTU1WZWN0b3IpLCBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSkKIAogI2RlZmluZSBmR0VOX1RDR19WNl92 YWRkdyhTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfYWRkKE1PXzMyLCBWZFZfb2ZmLCBW dVZfb2ZmLCBWdlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3Ip LCBzaXplb2YoTU1WZWN0b3IpKQorICAgIHRjZ19nZW5fZ3ZlY19hZGRfdmFyKE1PXzMyLCBWZFZf YmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBWdlZfYmFzZSwgVnZWX29mZiwgc2l6ZW9mKE1NVmVjdG9yKSwgXAorICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvcikpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmFk ZGJfZHYoU0hPUlRDT0RFKSBcCi0gICAgdGNnX2dlbl9ndmVjX2FkZChNT184LCBWZGRWX29mZiwg VnV1Vl9vZmYsIFZ2dlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0 b3IpICogMiwgc2l6ZW9mKE1NVmVjdG9yKSAqIDIpCisgICAgdGNnX2dlbl9ndmVjX2FkZF92YXIo TU9fOCwgVmRkVl9iYXNlLCBWZGRWX29mZiwgVnV1Vl9iYXNlLCBWdXVWX29mZiwgXAorICAgICAg ICAgICAgICAgICAgICAgICAgIFZ2dlZfYmFzZSwgVnZ2Vl9vZmYsIHNpemVvZihNTVZlY3Rvcikg KiAyLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSAqIDIpCiAK ICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmFkZGhfZHYoU0hPUlRDWURFKSBcCi0gICAgdGNnX2dlbl9n dmVjX2FkZChNT18xNiwgVmRkVl9vZmYsIFZ1dVZfb2ZmLCBWdnZWX29mZiwgXAotICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSAqIDIsIHNpemVvZihNTVZlY3RvcikgKiAyKQor ICAgIHRjZ19nZW5fZ3ZlY19hZGRfdmFyKE1PXzE2LCBWZGRWX2Jhc2UsIFZkZFZfb2ZmLCBWdXVW X2Jhc2UsIFZ1dVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgVnZ2Vl9iYXNlLCBW dnZWX29mZiwgc2l6ZW9mKE1NVmVjdG9yKSAqIDIsIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoTU1WZWN0b3IpICogMikKIAogI2RlZmluZSBmR0VOX1RDR19WNl92YWRkd19kdihT SE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfYWRkKE1PXzMyLCBWZGRWX29mZiwgVnV1Vl9v ZmYsIFZ2dlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpICog Miwgc2l6ZW9mKE1NVmVjdG9yKSAqIDIpCisgICAgdGNnX2dlbl9ndmVjX2FkZF92YXIoTU9fMzIs IFZkZFZfYmFzZSwgVmRkVl9vZmYsIFZ1dVZfYmFzZSwgVnV1Vl9vZmYsIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICBWdnZWX2Jhc2UsIFZ2dlZfb2ZmLCBzaXplb2YoTU1WZWN0b3IpICogMiwg XAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvcikgKiAyKQogCiAvKiBW ZWN0b3Igc3ViIC0gdmFyaW91cyBmb3JtcyAqLwogI2RlZmluZSBmR0VOX1RDR19WNl92c3ViYihT SE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfc3ViKE1PXzgsIFZkVl9vZmYsIFZ1Vl9vZmYs IFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVv ZihNTVZlY3RvcikpCisgICAgdGNnX2dlbl9ndmVjX3N1Yl92YXIoTU9fOCwgVmRWX2Jhc2UsIFZk Vl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBWdlZfYmFzZSwgXAorICAgICAgICAgICAgICAgICAg ICAgICAgIFZ2Vl9vZmYsIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpCiAKICNk ZWZpbmUgZkdFTl9UQ0dfVjZfdnN1YmgoU0hPUlRDT0RFKSBcCi0gICAgdGNnX2dlbl9ndmVjX3N1 YihNT18xNiwgVmRWX29mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSkKKyAgICB0Y2dfZ2VuX2d2ZWNf c3ViX3ZhcihNT18xNiwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jhc2UsIFZ2Vl9vZmYsIHNpemVvZihNTVZlY3Rv ciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpKQogCiAjZGVm aW5lIGZHRU5fVENHX1Y2X3ZzdWJ3KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19zdWIo TU9fMzIsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAg IHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpCisgICAgdGNnX2dlbl9ndmVjX3N1 Yl92YXIoTU9fMzIsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAg ICAgICAgICAgICAgICAgICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBzaXplb2YoTU1WZWN0b3Ip LCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSkKIAogI2RlZmlu ZSBmR0VOX1RDR19WNl92c3ViYl9kdihTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfc3Vi KE1PXzgsIFZkZFZfb2ZmLCBWdXVWX29mZiwgVnZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAg ICAgIHNpemVvZihNTVZlY3RvcikgKiAyLCBzaXplb2YoTU1WZWN0b3IpICogMikKKyAgICB0Y2df Z2VuX2d2ZWNfc3ViX3ZhcihNT184LCBWZGRWX2Jhc2UsIFZkZFZfb2ZmLCBWdXVWX2Jhc2UsIFZ1 dVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgVnZ2Vl9iYXNlLCBWdnZWX29mZiwg c2l6ZW9mKE1NVmVjdG9yKSAqIDIsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yo TU1WZWN0b3IpICogMikKIAogI2RlZmluZSBmR0VOX1RDR19WNl92c3ViaF9kdihTSE9SVENPREUp IFwKLSAgICB0Y2dfZ2VuX2d2ZWNfc3ViKE1PXzE2LCBWZGRWX29mZiwgVnV1Vl9vZmYsIFZ2dlZf b2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpICogMiwgc2l6ZW9m KE1NVmVjdG9yKSAqIDIpCisgICAgdGNnX2dlbl9ndmVjX3N1Yl92YXIoTU9fMTYsIFZkZFZfYmFz ZSwgVmRkVl9vZmYsIFZ1dVZfYmFzZSwgVnV1Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBWdnZWX2Jhc2UsIFZ2dlZfb2ZmLCBzaXplb2YoTU1WZWN0b3IpICogMiwgXAorICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvcikgKiAyKQogCiAjZGVmaW5lIGZHRU5f VENHX1Y2X3ZzdWJ3X2R2KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19zdWIoTU9fMzIs IFZkZFZfb2ZmLCBWdXVWX29mZiwgVnZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgIHNp emVvZihNTVZlY3RvcikgKiAyLCBzaXplb2YoTU1WZWN0b3IpICogMikKKyAgICB0Y2dfZ2VuX2d2 ZWNfc3ViX3ZhcihNT18zMiwgVmRkVl9iYXNlLCBWZGRWX29mZiwgVnV1Vl9iYXNlLCBWdXVWX29m ZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgIFZ2dlZfYmFzZSwgVnZ2Vl9vZmYsIHNpemVv ZihNTVZlY3RvcikgKiAyLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVj dG9yKSAqIDIpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmFkZGJzYXQoU0hPUlRDT0RFKSBcCi0g ICAgdGNnX2dlbl9ndmVjX3NzYWRkKE1PXzgsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwK LSAgICAgICAgICAgICAgICAgICAgICAgVkVDVE9SX1NJWkVfQllURSwgVkVDVE9SX1NJWkVfQllU RSkKKyAgICB0Y2dfZ2VuX2d2ZWNfc3NhZGRfdmFyKE1PXzgsIFZkVl9iYXNlLCBWZFZfb2ZmLCBW dVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfYmFzZSwg VnZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBW RUNUT1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZhZGRoc2F0KFNIT1JUQ09E RSkgXAotICAgIHRjZ19nZW5fZ3ZlY19zc2FkZChNT18xNiwgVmRWX29mZiwgVnVWX29mZiwgVnZW X29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1Jf U0laRV9CWVRFKQorICAgIHRjZ19nZW5fZ3ZlY19zc2FkZF92YXIoTU9fMTYsIFZkVl9iYXNlLCBW ZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBW dlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0la RV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZhZGR3c2F0 KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19zc2FkZChNT18zMiwgVmRWX29mZiwgVnVW X29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRF LCBWRUNUT1JfU0laRV9CWVRFKQorICAgIHRjZ19nZW5fZ3ZlY19zc2FkZF92YXIoTU9fMzIsIFZk Vl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBW RUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2 X3ZhZGR1YnNhdChTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfdXNhZGQoTU9fOCwgVmRW X29mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1Jf U0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQorICAgIHRjZ19nZW5fZ3ZlY191c2FkZF92YXIo TU9fOCwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgIFZFQ1RPUl9TSVpFX0JZVEUsIFZFQ1RPUl9TSVpFX0JZVEUpCiAKICNkZWZpbmUgZkdF Tl9UQ0dfVjZfdmFkZHVoc2F0KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY191c2FkZChN T18xNiwgVmRWX29mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAg ICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQorICAgIHRjZ19nZW5fZ3ZlY191 c2FkZF92YXIoTU9fMTYsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQogCiAj ZGVmaW5lIGZHRU5fVENHX1Y2X3ZhZGR1d3NhdChTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2 ZWNfdXNhZGQoTU9fMzIsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAg ICAgICAgICAgICAgVkVDVE9SX1NJWkVfQllURSwgVkVDVE9SX1NJWkVfQllURSkKKyAgICB0Y2df Z2VuX2d2ZWNfdXNhZGRfdmFyKE1PXzMyLCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1 Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jhc2UsIFZ2Vl9vZmYsIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgVkVDVE9SX1NJWkVfQllURSwgVkVDVE9SX1NJWkVf QllURSkKIAotI2RlZmluZSBmR0VOX1RDR19QQUlSX0FERFNVQihPUCwgVkVDRSwgRFNULCBTUkNf QSwgU1JDX0IpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfIyNPUChWRUNFLCBEU1QsIFNSQ19BLCBTUkNf QiwgXAotICAgICAgICAgICAgICAgICAgICAgMiAqIFZFQ1RPUl9TSVpFX0JZVEUsIDIgKiBWRUNU T1JfU0laRV9CWVRFKQorI2RlZmluZSBmR0VOX1RDR19QQUlSX0FERFNVQihPUCwgVkVDRSwgREJB U0UsIERTVCwgQUJBU0UsIFNSQ19BLCBCQkFTRSwgU1JDX0IpIFwKKyAgICB0Y2dfZ2VuX2d2ZWNf IyNPUCMjX3ZhcihWRUNFLCBEQkFTRSwgRFNULCBBQkFTRSwgU1JDX0EsIEJCQVNFLCBTUkNfQiwg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIFZFQ1RPUl9TSVpFX0JZVEUsIDIgKiBW RUNUT1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZhZGRic2F0X2R2KFNIT1JU Q09ERSkgXAotICAgIGZHRU5fVENHX1BBSVJfQUREU1VCKHNzYWRkLCBNT184LCBWZGRWX29mZiwg VnV1Vl9vZmYsIFZ2dlZfb2ZmKQorICAgIGZHRU5fVENHX1BBSVJfQUREU1VCKHNzYWRkLCBNT184 LCBWZGRWX2Jhc2UsIFZkZFZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgVnV1Vl9i YXNlLCBWdXVWX29mZiwgVnZ2Vl9iYXNlLCBWdnZWX29mZikKIAogI2RlZmluZSBmR0VOX1RDR19W Nl92YWRkaHNhdF9kdihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19QQUlSX0FERFNVQihzc2Fk ZCwgTU9fMTYsIFZkZFZfb2ZmLCBWdXVWX29mZiwgVnZ2Vl9vZmYpCisgICAgZkdFTl9UQ0dfUEFJ Ul9BRERTVUIoc3NhZGQsIE1PXzE2LCBWZGRWX2Jhc2UsIFZkZFZfb2ZmLCBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgVnV1Vl9iYXNlLCBWdXVWX29mZiwgVnZ2Vl9iYXNlLCBWdnZWX29mZikK IAogI2RlZmluZSBmR0VOX1RDR19WNl92YWRkd3NhdF9kdihTSE9SVENPREUpIFwKLSAgICBmR0VO X1RDR19QQUlSX0FERFNVQihzc2FkZCwgTU9fMzIsIFZkZFZfb2ZmLCBWdXVWX29mZiwgVnZ2Vl9v ZmYpCisgICAgZkdFTl9UQ0dfUEFJUl9BRERTVUIoc3NhZGQsIE1PXzMyLCBWZGRWX2Jhc2UsIFZk ZFZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgVnV1Vl9iYXNlLCBWdXVWX29mZiwg VnZ2Vl9iYXNlLCBWdnZWX29mZikKIAogI2RlZmluZSBmR0VOX1RDR19WNl92YWRkdWJzYXRfZHYo U0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfUEFJUl9BRERTVUIodXNhZGQsIE1PXzgsIFZkZFZf b2ZmLCBWdXVWX29mZiwgVnZ2Vl9vZmYpCisgICAgZkdFTl9UQ0dfUEFJUl9BRERTVUIodXNhZGQs IE1PXzgsIFZkZFZfYmFzZSwgVmRkVl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBW dXVWX2Jhc2UsIFZ1dVZfb2ZmLCBWdnZWX2Jhc2UsIFZ2dlZfb2ZmKQogCiAjZGVmaW5lIGZHRU5f VENHX1Y2X3ZhZGR1aHNhdF9kdihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19QQUlSX0FERFNV Qih1c2FkZCwgTU9fMTYsIFZkZFZfb2ZmLCBWdXVWX29mZiwgVnZ2Vl9vZmYpCisgICAgZkdFTl9U Q0dfUEFJUl9BRERTVUIodXNhZGQsIE1PXzE2LCBWZGRWX2Jhc2UsIFZkZFZfb2ZmLCBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgVnV1Vl9iYXNlLCBWdXVWX29mZiwgVnZ2Vl9iYXNlLCBWdnZW X29mZikKIAogI2RlZmluZSBmR0VOX1RDR19WNl92YWRkdXdzYXRfZHYoU0hPUlRDT0RFKSBcCi0g ICAgZkdFTl9UQ0dfUEFJUl9BRERTVUIodXNhZGQsIE1PXzMyLCBWZGRWX29mZiwgVnV1Vl9vZmYs IFZ2dlZfb2ZmKQorICAgIGZHRU5fVENHX1BBSVJfQUREU1VCKHVzYWRkLCBNT18zMiwgVmRkVl9i YXNlLCBWZGRWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgIFZ1dVZfYmFzZSwgVnV1 Vl9vZmYsIFZ2dlZfYmFzZSwgVnZ2Vl9vZmYpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdnN1YmJz YXQoU0hPUlRDT0RFKSBcCi0gICAgdGNnX2dlbl9ndmVjX3Nzc3ViKE1PXzgsIFZkVl9vZmYsIFZ1 Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgVkVDVE9SX1NJWkVfQllU RSwgVkVDVE9SX1NJWkVfQllURSkKKyAgICB0Y2dfZ2VuX2d2ZWNfc3NzdWJfdmFyKE1PXzgsIFZk Vl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBW RUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2 X3ZzdWJoc2F0KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19zc3N1YihNT18xNiwgVmRW X29mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1Jf U0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQorICAgIHRjZ19nZW5fZ3ZlY19zc3N1Yl92YXIo TU9fMTYsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZH RU5fVENHX1Y2X3ZzdWJ3c2F0KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19zc3N1YihN T18zMiwgVmRWX29mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAg ICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQorICAgIHRjZ19nZW5fZ3ZlY19z c3N1Yl92YXIoTU9fMzIsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQogCiAj ZGVmaW5lIGZHRU5fVENHX1Y2X3ZzdWJ1YnNhdChTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2 ZWNfdXNzdWIoTU9fOCwgVmRWX29mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAg ICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQorICAgIHRjZ19n ZW5fZ3ZlY191c3N1Yl92YXIoTU9fOCwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZf b2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgIFZFQ1RPUl9TSVpFX0JZVEUsIFZFQ1RPUl9TSVpFX0JZ VEUpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdnN1YnVoc2F0KFNIT1JUQ09ERSkgXAotICAgIHRj Z19nZW5fZ3ZlY191c3N1YihNT18xNiwgVmRWX29mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAg ICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQor ICAgIHRjZ19nZW5fZ3ZlY191c3N1Yl92YXIoTU9fMTYsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZf YmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfYmFzZSwgVnZW X29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNU T1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZzdWJ1d3NhdChTSE9SVENPREUp IFwKLSAgICB0Y2dfZ2VuX2d2ZWNfdXNzdWIoTU9fMzIsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9v ZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgVkVDVE9SX1NJWkVfQllURSwgVkVDVE9SX1NJ WkVfQllURSkKKyAgICB0Y2dfZ2VuX2d2ZWNfdXNzdWJfdmFyKE1PXzMyLCBWZFZfYmFzZSwgVmRW X29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVnZW X2Jhc2UsIFZ2Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVkVDVE9SX1NJWkVf QllURSwgVkVDVE9SX1NJWkVfQllURSkKIAogI2RlZmluZSBmR0VOX1RDR19WNl92c3ViYnNhdF9k dihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19QQUlSX0FERFNVQihzc3N1YiwgTU9fOCwgVmRk Vl9vZmYsIFZ1dVZfb2ZmLCBWdnZWX29mZikKKyAgICBmR0VOX1RDR19QQUlSX0FERFNVQihzc3N1 YiwgTU9fOCwgVmRkVl9iYXNlLCBWZGRWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAg IFZ1dVZfYmFzZSwgVnV1Vl9vZmYsIFZ2dlZfYmFzZSwgVnZ2Vl9vZmYpCiAKICNkZWZpbmUgZkdF Tl9UQ0dfVjZfdnN1YmhzYXRfZHYoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfUEFJUl9BRERT VUIoc3NzdWIsIE1PXzE2LCBWZGRWX29mZiwgVnV1Vl9vZmYsIFZ2dlZfb2ZmKQorICAgIGZHRU5f VENHX1BBSVJfQUREU1VCKHNzc3ViLCBNT18xNiwgVmRkVl9iYXNlLCBWZGRWX29mZiwgXAorICAg ICAgICAgICAgICAgICAgICAgICAgIFZ1dVZfYmFzZSwgVnV1Vl9vZmYsIFZ2dlZfYmFzZSwgVnZ2 Vl9vZmYpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdnN1YndzYXRfZHYoU0hPUlRDT0RFKSBcCi0g ICAgZkdFTl9UQ0dfUEFJUl9BRERTVUIoc3NzdWIsIE1PXzMyLCBWZGRWX29mZiwgVnV1Vl9vZmYs IFZ2dlZfb2ZmKQorICAgIGZHRU5fVENHX1BBSVJfQUREU1VCKHNzc3ViLCBNT18zMiwgVmRkVl9i YXNlLCBWZGRWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgIFZ1dVZfYmFzZSwgVnV1 Vl9vZmYsIFZ2dlZfYmFzZSwgVnZ2Vl9vZmYpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdnN1YnVi c2F0X2R2KFNIT1JUQ09ERSkgXAotICAgIGZHRU5fVENHX1BBSVJfQUREU1VCKHVzc3ViLCBNT184 LCBWZGRWX29mZiwgVnV1Vl9vZmYsIFZ2dlZfb2ZmKQorICAgIGZHRU5fVENHX1BBSVJfQUREU1VC KHVzc3ViLCBNT184LCBWZGRWX2Jhc2UsIFZkZFZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgVnV1Vl9iYXNlLCBWdXVWX29mZiwgVnZ2Vl9iYXNlLCBWdnZWX29mZikKIAogI2RlZmlu ZSBmR0VOX1RDR19WNl92c3VidWhzYXRfZHYoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfUEFJ Ul9BRERTVUIodXNzdWIsIE1PXzE2LCBWZGRWX29mZiwgVnV1Vl9vZmYsIFZ2dlZfb2ZmKQorICAg IGZHRU5fVENHX1BBSVJfQUREU1VCKHVzc3ViLCBNT18xNiwgVmRkVl9iYXNlLCBWZGRWX29mZiwg XAorICAgICAgICAgICAgICAgICAgICAgICAgIFZ1dVZfYmFzZSwgVnV1Vl9vZmYsIFZ2dlZfYmFz ZSwgVnZ2Vl9vZmYpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdnN1YnV3c2F0X2R2KFNIT1JUQ09E RSkgXAotICAgIGZHRU5fVENHX1BBSVJfQUREU1VCKHVzc3ViLCBNT18zMiwgVmRkVl9vZmYsIFZ1 dVZfb2ZmLCBWdnZWX29mZikKKyAgICBmR0VOX1RDR19QQUlSX0FERFNVQih1c3N1YiwgTU9fMzIs IFZkZFZfYmFzZSwgVmRkVl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBWdXVWX2Jh c2UsIFZ1dVZfb2ZmLCBWdnZWX2Jhc2UsIFZ2dlZfb2ZmKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2 X3ZtcHlpaChTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfbXVsKE1PXzE2LCBWZFZfb2Zm LCBWdVZfb2ZmLCBWdlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9C WVRFLCBWRUNUT1JfU0laRV9CWVRFKQorICAgIHRjZ19nZW5fZ3ZlY19tdWxfdmFyKE1PXzE2LCBW ZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICBWRUNU T1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zh YnNkaWZmdWIoU0hPUlRDT0RFKSBcCi0gICAgZ2VuX2d2ZWNfdWFic2RpZmYoTU9fOCwgVmRWX29m ZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgVkVDVE9SX1NJWkVf QllURSwgVkVDVE9SX1NJWkVfQllURSkKKyAgICBnZW5fZ3ZlY191YWJzZGlmZl92YXIoTU9fOCwg VmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAg ICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgVkVD VE9SX1NJWkVfQllURSwgVkVDVE9SX1NJWkVfQllURSkKIAogI2RlZmluZSBmR0VOX1RDR19WNl92 YWJzZGlmZnVoKFNIT1JUQ09ERSkgXAotICAgIGdlbl9ndmVjX3VhYnNkaWZmKE1PXzE2LCBWZFZf b2ZmLCBWdVZfb2ZmLCBWdlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0la RV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQorICAgIGdlbl9ndmVjX3VhYnNkaWZmX3ZhcihNT18x NiwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAg ICAgICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAg VkVDVE9SX1NJWkVfQllURSwgVkVDVE9SX1NJWkVfQllURSkKIAogI2RlZmluZSBmR0VOX1RDR19W Nl92YWJzZGlmZmgoU0hPUlRDT0RFKSBcCi0gICAgZ2VuX2d2ZWNfc2Fic2RpZmYoTU9fMTYsIFZk Vl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgIFZFQ1RPUl9T SVpFX0JZVEUsIFZFQ1RPUl9TSVpFX0JZVEUpCisgICAgZ2VuX2d2ZWNfc2Fic2RpZmZfdmFyKE1P XzE2LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAg ICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRFKQogCiAjZGVmaW5lIGZHRU5fVENH X1Y2X3ZhYnNkaWZmdyhTSE9SVENPREUpIFwKLSAgICBnZW5fZ3ZlY19zYWJzZGlmZihNT18zMiwg VmRWX29mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgVkVDVE9S X1NJWkVfQllURSwgVkVDVE9SX1NJWkVfQllURSkKKyAgICBnZW5fZ3ZlY19zYWJzZGlmZl92YXIo TU9fMzIsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAg ICAgICAgICAgICAgICAgVnZWX2Jhc2UsIFZ2Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgIFZFQ1RPUl9TSVpFX0JZVEUsIFZFQ1RPUl9TSVpFX0JZVEUpCiAKICNkZWZpbmUgZkdFTl9U Q0dfVkVDX0FWRyhWRUNFLCBTSElGVF9GTikgXAogICAgIGRvIHsgXAogICAgICAgICBpbnRwdHJf dCB0bXBvZmYgPSBvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUsIHZ0bXApOyBcCi0gICAgICAgIHRj Z19nZW5fZ3ZlY19hbmQoTU9fNjQsIHRtcG9mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAg ICAgICAgICAgICAgICAgICAgIFZFQ1RPUl9TSVpFX0JZVEUsIFZFQ1RPUl9TSVpFX0JZVEUpOyBc Ci0gICAgICAgIHRjZ19nZW5fZ3ZlY194b3IoTU9fNjQsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9v ZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1Jf U0laRV9CWVRFKTsgXAotICAgICAgICBTSElGVF9GTihWRUNFLCBWZFZfb2ZmLCBWZFZfb2ZmLCAx LCBcCisgICAgICAgIHRjZ19nZW5fZ3ZlY19hbmRfdmFyKE1PXzY0LCB0Y2dfZW52LCB0bXBvZmYs IFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jh c2UsIFZ2Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9C WVRFLCBWRUNUT1JfU0laRV9CWVRFKTsgXAorICAgICAgICB0Y2dfZ2VuX2d2ZWNfeG9yX3ZhcihN T182NCwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFZFQ1RPUl9TSVpFX0JZVEUsIFZFQ1RPUl9TSVpFX0JZVEUpOyBcCisgICAg ICAgIFNISUZUX0ZOKFZFQ0UsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWZFZfYmFzZSwgVmRWX29mZiwg MSwgXAogICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRF KTsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNfYWRkKFZFQ0UsIFZkVl9vZmYsIHRtcG9mZiwgVmRW X29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgICAgIFZFQ1RPUl9TSVpFX0JZVEUsIFZFQ1RP Ul9TSVpFX0JZVEUpOyBcCisgICAgICAgIHRjZ19nZW5fZ3ZlY19hZGRfdmFyKFZFQ0UsIFZkVl9i YXNlLCBWZFZfb2ZmLCB0Y2dfZW52LCB0bXBvZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVmRWX2Jhc2UsIFZkVl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VkVDVE9SX1NJWkVfQllURSwgVkVDVE9SX1NJWkVfQllURSk7IFwKICAgICB9IHdoaWxlICgwKQog CiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zhdmd1YihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19W RUNfQVZHKE1PXzgsIHRjZ19nZW5fZ3ZlY19zaHJpKQorICAgIGZHRU5fVENHX1ZFQ19BVkcoTU9f OCwgdGNnX2dlbl9ndmVjX3NocmlfdmFyKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zhdmd1aChT SE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQVZHKE1PXzE2LCB0Y2dfZ2VuX2d2ZWNfc2hy aSkKKyAgICBmR0VOX1RDR19WRUNfQVZHKE1PXzE2LCB0Y2dfZ2VuX2d2ZWNfc2hyaV92YXIpCiAK ICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmF2Z3V3KFNIT1JUQ09ERSkgXAotICAgIGZHRU5fVENHX1ZF Q19BVkcoTU9fMzIsIHRjZ19nZW5fZ3ZlY19zaHJpKQorICAgIGZHRU5fVENHX1ZFQ19BVkcoTU9f MzIsIHRjZ19nZW5fZ3ZlY19zaHJpX3ZhcikKIAogI2RlZmluZSBmR0VOX1RDR19WNl92YXZnYihT SE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQVZHKE1PXzgsIHRjZ19nZW5fZ3ZlY19zYXJp KQorICAgIGZHRU5fVENHX1ZFQ19BVkcoTU9fOCwgdGNnX2dlbl9ndmVjX3NhcmlfdmFyKQogCiAj ZGVmaW5lIGZHRU5fVENHX1Y2X3ZhdmdoKFNIT1JUQ09ERSkgXAotICAgIGZHRU5fVENHX1ZFQ19B VkcoTU9fMTYsIHRjZ19nZW5fZ3ZlY19zYXJpKQorICAgIGZHRU5fVENHX1ZFQ19BVkcoTU9fMTYs IHRjZ19nZW5fZ3ZlY19zYXJpX3ZhcikKIAogI2RlZmluZSBmR0VOX1RDR19WNl92YXZndyhTSE9S VENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQVZHKE1PXzMyLCB0Y2dfZ2VuX2d2ZWNfc2FyaSkK KyAgICBmR0VOX1RDR19WRUNfQVZHKE1PXzMyLCB0Y2dfZ2VuX2d2ZWNfc2FyaV92YXIpCiAKICNk ZWZpbmUgZkdFTl9UQ0dfVkVDX0FWR1JORChWRUNFLCBTSElGVF9GTikgXAogICAgIGRvIHsgXAog ICAgICAgICBpbnRwdHJfdCB0bXBvZmYgPSBvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUsIHZ0bXAp OyBcCi0gICAgICAgIHRjZ19nZW5fZ3ZlY19vcihNT182NCwgdG1wb2ZmLCBWdVZfb2ZmLCBWdlZf b2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1Jf U0laRV9CWVRFKTsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNfeG9yKE1PXzY0LCBWZFZfb2ZmLCBW dVZfb2ZmLCBWdlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgVkVDVE9SX1NJWkVf QllURSwgVkVDVE9SX1NJWkVfQllURSk7IFwKLSAgICAgICAgU0hJRlRfRk4oVkVDRSwgVmRWX29m ZiwgVmRWX29mZiwgMSwgXAorICAgICAgICB0Y2dfZ2VuX2d2ZWNfb3JfdmFyKE1PXzY0LCB0Y2df ZW52LCB0bXBvZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVD VE9SX1NJWkVfQllURSwgVkVDVE9SX1NJWkVfQllURSk7IFwKKyAgICAgICAgdGNnX2dlbl9ndmVj X3hvcl92YXIoTU9fNjQsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9CWVRFLCBWRUNUT1JfU0laRV9CWVRF KTsgXAorICAgICAgICBTSElGVF9GTihWRUNFLCBWZFZfYmFzZSwgVmRWX29mZiwgVmRWX2Jhc2Us IFZkVl9vZmYsIDEsIFwKICAgICAgICAgICAgICAgICAgVkVDVE9SX1NJWkVfQllURSwgVkVDVE9S X1NJWkVfQllURSk7IFwKLSAgICAgICAgdGNnX2dlbl9ndmVjX3N1YihWRUNFLCBWZFZfb2ZmLCB0 bXBvZmYsIFZkVl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBWRUNUT1JfU0laRV9C WVRFLCBWRUNUT1JfU0laRV9CWVRFKTsgXAorICAgICAgICB0Y2dfZ2VuX2d2ZWNfc3ViX3ZhcihW RUNFLCBWZFZfYmFzZSwgVmRWX29mZiwgdGNnX2VudiwgdG1wb2ZmLCBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFZkVl9iYXNlLCBWZFZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZFQ1RPUl9TSVpFX0JZVEUsIFZFQ1RPUl9TSVpFX0JZVEUpOyBcCiAgICAgfSB3 aGlsZSAoMCkKIAogI2RlZmluZSBmR0VOX1RDR19WNl92YXZndWJybmQoU0hPUlRDT0RFKSBcCi0g ICAgZkdFTl9UQ0dfVkVDX0FWR1JORChNT184LCB0Y2dfZ2VuX2d2ZWNfc2hyaSkKKyAgICBmR0VO X1RDR19WRUNfQVZHUk5EKE1PXzgsIHRjZ19nZW5fZ3ZlY19zaHJpX3ZhcikKIAogI2RlZmluZSBm R0VOX1RDR19WNl92YXZndWhybmQoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfVkVDX0FWR1JO RChNT18xNiwgdGNnX2dlbl9ndmVjX3NocmkpCisgICAgZkdFTl9UQ0dfVkVDX0FWR1JORChNT18x NiwgdGNnX2dlbl9ndmVjX3NocmlfdmFyKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zhdmd1d3Ju ZChTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQVZHUk5EKE1PXzMyLCB0Y2dfZ2VuX2d2 ZWNfc2hyaSkKKyAgICBmR0VOX1RDR19WRUNfQVZHUk5EKE1PXzMyLCB0Y2dfZ2VuX2d2ZWNfc2hy aV92YXIpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmF2Z2JybmQoU0hPUlRDT0RFKSBcCi0gICAg ZkdFTl9UQ0dfVkVDX0FWR1JORChNT184LCB0Y2dfZ2VuX2d2ZWNfc2FyaSkKKyAgICBmR0VOX1RD R19WRUNfQVZHUk5EKE1PXzgsIHRjZ19nZW5fZ3ZlY19zYXJpX3ZhcikKIAogI2RlZmluZSBmR0VO X1RDR19WNl92YXZnaHJuZChTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQVZHUk5EKE1P XzE2LCB0Y2dfZ2VuX2d2ZWNfc2FyaSkKKyAgICBmR0VOX1RDR19WRUNfQVZHUk5EKE1PXzE2LCB0 Y2dfZ2VuX2d2ZWNfc2FyaV92YXIpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmF2Z3dybmQoU0hP UlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfVkVDX0FWR1JORChNT18zMiwgdGNnX2dlbl9ndmVjX3Nh cmkpCisgICAgZkdFTl9UQ0dfVkVDX0FWR1JORChNT18zMiwgdGNnX2dlbl9ndmVjX3NhcmlfdmFy KQogCiAvKiBWZWN0b3Igc2hpZnQgcmlnaHQgLSB2YXJpb3VzIGZvcm1zICovCiAjZGVmaW5lIGZH RU5fVENHX1Y2X3Zhc3JoKFNIT1JUQ09ERSkgXAogICAgIGRvIHsgXAogICAgICAgICBUQ0d2IHNo aWZ0ID0gdGNnX3RlbXBfbmV3KCk7IFwKICAgICAgICAgdGNnX2dlbl9hbmRpX3RsKHNoaWZ0LCBS dFYsIDE1KTsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNfc2FycyhNT18xNiwgVmRWX29mZiwgVnVW X29mZiwgc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9y KSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKKyAgICAgICAgdGNnX2dlbl9ndmVjX3NhcnNfdmFyKE1P XzE2LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNoaWZ0LCBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0 b3IpKTsgXAogICAgIH0gd2hpbGUgKDApCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmFzcmhfYWNj KFNIT1JUQ09ERSkgXApAQCAtNDE4LDE4ICs0NjYsMTkgQEAgc3RhdGljIGlubGluZSB2b2lkIGFz c2VydF92aGlzdF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAgICAgICAgIGludHB0cl90IHRtcG9m ZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgdnRtcCk7IFwKICAgICAgICAgVENHdiBzaGlm dCA9IHRjZ190ZW1wX25ldygpOyBcCiAgICAgICAgIHRjZ19nZW5fYW5kaV90bChzaGlmdCwgUnRW LCAxNSk7IFwKLSAgICAgICAgdGNnX2dlbl9ndmVjX3NhcnMoTU9fMTYsIHRtcG9mZiwgVnVWX29m Ziwgc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwg c2l6ZW9mKE1NVmVjdG9yKSk7IFwKLSAgICAgICAgdGNnX2dlbl9ndmVjX2FkZChNT18xNiwgVnhW X29mZiwgVnhWX29mZiwgdG1wb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKKyAgICAgICAgdGNnX2dlbl9ndmVjX3Nh cnNfdmFyKE1PXzE2LCB0Y2dfZW52LCB0bXBvZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdCwgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9m KE1NVmVjdG9yKSk7IFwKKyAgICAgICAgdGNnX2dlbl9ndmVjX2FkZF92YXIoTU9fMTYsIFZ4Vl9i YXNlLCBWeFZfb2ZmLCBWeFZfYmFzZSwgVnhWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0Y2dfZW52LCB0bXBvZmYsIHNpemVvZihNTVZlY3RvciksIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKICAgICB9IHdoaWxlICgwKQog CiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zhc3J3KFNIT1JUQ09ERSkgXAogICAgIGRvIHsgXAogICAg ICAgICBUQ0d2IHNoaWZ0ID0gdGNnX3RlbXBfbmV3KCk7IFwKICAgICAgICAgdGNnX2dlbl9hbmRp X3RsKHNoaWZ0LCBSdFYsIDMxKTsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNfc2FycyhNT18zMiwg VmRWX29mZiwgVnVWX29mZiwgc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKKyAgICAgICAgdGNnX2dlbl9ndmVj X3NhcnNfdmFyKE1PXzMyLCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0LCBzaXplb2YoTU1WZWN0b3IpLCBz aXplb2YoTU1WZWN0b3IpKTsgXAogICAgIH0gd2hpbGUgKDApCiAKICNkZWZpbmUgZkdFTl9UQ0df VjZfdmFzcndfYWNjKFNIT1JUQ09ERSkgXApAQCAtNDM3LDM0ICs0ODYsMzUgQEAgc3RhdGljIGlu bGluZSB2b2lkIGFzc2VydF92aGlzdF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAgICAgICAgIGlu dHB0cl90IHRtcG9mZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgdnRtcCk7IFwKICAgICAg ICAgVENHdiBzaGlmdCA9IHRjZ190ZW1wX25ldygpOyBcCiAgICAgICAgIHRjZ19nZW5fYW5kaV90 bChzaGlmdCwgUnRWLCAzMSk7IFwKLSAgICAgICAgdGNnX2dlbl9ndmVjX3NhcnMoTU9fMzIsIHRt cG9mZiwgVnVWX29mZiwgc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKLSAgICAgICAgdGNnX2dlbl9ndmVjX2Fk ZChNT18zMiwgVnhWX29mZiwgVnhWX29mZiwgdG1wb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAgICAgIHRj Z19nZW5fZ3ZlY19zYXJzX3ZhcihNT18zMiwgdGNnX2VudiwgdG1wb2ZmLCBWdVZfYmFzZSwgVnVW X29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQsIHNpemVvZihNTVZl Y3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAgICAgIHRjZ19nZW5fZ3ZlY19hZGRfdmFy KE1PXzMyLCBWeFZfYmFzZSwgVnhWX29mZiwgVnhWX2Jhc2UsIFZ4Vl9vZmYsIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGNnX2VudiwgdG1wb2ZmLCBzaXplb2YoTU1WZWN0b3IpLCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvcikpOyBcCiAgICAg fSB3aGlsZSAoMCkKIAogI2RlZmluZSBmR0VOX1RDR19WNl92bHNyYihTSE9SVENPREUpIFwKICAg ICBkbyB7IFwKICAgICAgICAgVENHdiBzaGlmdCA9IHRjZ190ZW1wX25ldygpOyBcCiAgICAgICAg IHRjZ19nZW5fYW5kaV90bChzaGlmdCwgUnRWLCA3KTsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNf c2hycyhNT184LCBWZFZfb2ZmLCBWdVZfb2ZmLCBzaGlmdCwgXAotICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsgXAorICAgICAgICB0 Y2dfZ2VuX2d2ZWNfc2hyc192YXIoTU9fOCwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBW dVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdCwgc2l6ZW9mKE1N VmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKICAgICB9IHdoaWxlICgwKQogCiAjZGVmaW5l IGZHRU5fVENHX1Y2X3Zsc3JoKFNIT1JUQ09ERSkgXAogICAgIGRvIHsgXAogICAgICAgICBUQ0d2 IHNoaWZ0ID0gdGNnX3RlbXBfbmV3KCk7IFwKICAgICAgICAgdGNnX2dlbl9hbmRpX3RsKHNoaWZ0 LCBSdFYsIDE1KTsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNfc2hycyhNT18xNiwgVmRWX29mZiwg VnVWX29mZiwgc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVj dG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKKyAgICAgICAgdGNnX2dlbl9ndmVjX3NocnNfdmFy KE1PXzE2LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0LCBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1W ZWN0b3IpKTsgXAogICAgIH0gd2hpbGUgKDApCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmxzcnco U0hPUlRDT0RFKSBcCiAgICAgZG8geyBcCiAgICAgICAgIFRDR3Ygc2hpZnQgPSB0Y2dfdGVtcF9u ZXcoKTsgXAogICAgICAgICB0Y2dfZ2VuX2FuZGlfdGwoc2hpZnQsIFJ0ViwgMzEpOyBcCi0gICAg ICAgIHRjZ19nZW5fZ3ZlY19zaHJzKE1PXzMyLCBWZFZfb2ZmLCBWdVZfb2ZmLCBzaGlmdCwgXAot ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0 b3IpKTsgXAorICAgICAgICB0Y2dfZ2VuX2d2ZWNfc2hyc192YXIoTU9fMzIsIFZkVl9iYXNlLCBW ZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2hpZnQsIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCiAgICAgfSB3 aGlsZSAoMCkKIAogLyogVmVjdG9yIHNoaWZ0IGxlZnQgLSB2YXJpb3VzIGZvcm1zICovCkBAIC00 NzIsMTYgKzUyMiwxNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X3ZoaXN0X3RtcChEaXNh c0NvbnRleHQgKmN0eCkKICAgICBkbyB7IFwKICAgICAgICAgVENHdiBzaGlmdCA9IHRjZ190ZW1w X25ldygpOyBcCiAgICAgICAgIHRjZ19nZW5fYW5kaV90bChzaGlmdCwgUnRWLCA3KTsgXAotICAg ICAgICB0Y2dfZ2VuX2d2ZWNfc2hscyhNT184LCBWZFZfb2ZmLCBWdVZfb2ZmLCBzaGlmdCwgXAot ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0 b3IpKTsgXAorICAgICAgICB0Y2dfZ2VuX2d2ZWNfc2hsc192YXIoTU9fOCwgVmRWX2Jhc2UsIFZk Vl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaGlmdCwgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKICAgICB9IHdo aWxlICgwKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zhc2xoKFNIT1JUQ09ERSkgXAogICAgIGRv IHsgXAogICAgICAgICBUQ0d2IHNoaWZ0ID0gdGNnX3RlbXBfbmV3KCk7IFwKICAgICAgICAgdGNn X2dlbl9hbmRpX3RsKHNoaWZ0LCBSdFYsIDE1KTsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNfc2hs cyhNT18xNiwgVmRWX29mZiwgVnVWX29mZiwgc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKKyAgICAgICAgdGNn X2dlbl9ndmVjX3NobHNfdmFyKE1PXzE2LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1 Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0LCBzaXplb2YoTU1W ZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsgXAogICAgIH0gd2hpbGUgKDApCiAKICNkZWZpbmUg ZkdFTl9UQ0dfVjZfdmFzbGhfYWNjKFNIT1JUQ09ERSkgXApAQCAtNDg5LDE4ICs1MzksMTkgQEAg c3RhdGljIGlubGluZSB2b2lkIGFzc2VydF92aGlzdF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAg ICAgICAgIGludHB0cl90IHRtcG9mZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgdnRtcCk7 IFwKICAgICAgICAgVENHdiBzaGlmdCA9IHRjZ190ZW1wX25ldygpOyBcCiAgICAgICAgIHRjZ19n ZW5fYW5kaV90bChzaGlmdCwgUnRWLCAxNSk7IFwKLSAgICAgICAgdGNnX2dlbl9ndmVjX3NobHMo TU9fMTYsIHRtcG9mZiwgVnVWX29mZiwgc2hpZnQsIFwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKLSAgICAgICAgdGNnX2dl bl9ndmVjX2FkZChNT18xNiwgVnhWX29mZiwgVnhWX29mZiwgdG1wb2ZmLCBcCi0gICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKKyAg ICAgICAgdGNnX2dlbl9ndmVjX3NobHNfdmFyKE1PXzE2LCB0Y2dfZW52LCB0bXBvZmYsIFZ1Vl9i YXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdCwgc2l6 ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwKKyAgICAgICAgdGNnX2dlbl9ndmVj X2FkZF92YXIoTU9fMTYsIFZ4Vl9iYXNlLCBWeFZfb2ZmLCBWeFZfYmFzZSwgVnhWX29mZiwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZW52LCB0bXBvZmYsIHNpemVvZihNTVZl Y3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSk7 IFwKICAgICB9IHdoaWxlICgwKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zhc2x3KFNIT1JUQ09E RSkgXAogICAgIGRvIHsgXAogICAgICAgICBUQ0d2IHNoaWZ0ID0gdGNnX3RlbXBfbmV3KCk7IFwK ICAgICAgICAgdGNnX2dlbl9hbmRpX3RsKHNoaWZ0LCBSdFYsIDMxKTsgXAotICAgICAgICB0Y2df Z2VuX2d2ZWNfc2hscyhNT18zMiwgVmRWX29mZiwgVnVWX29mZiwgc2hpZnQsIFwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7IFwK KyAgICAgICAgdGNnX2dlbl9ndmVjX3NobHNfdmFyKE1PXzMyLCBWZFZfYmFzZSwgVmRWX29mZiwg VnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0 LCBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsgXAogICAgIH0gd2hpbGUgKDAp CiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmFzbHdfYWNjKFNIT1JUQ09ERSkgXApAQCAtNTA4LDk1 ICs1NTksMTA5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhc3NlcnRfdmhpc3RfdG1wKERpc2FzQ29u dGV4dCAqY3R4KQogICAgICAgICBpbnRwdHJfdCB0bXBvZmYgPSBvZmZzZXRvZihDUFVIZXhhZ29u U3RhdGUsIHZ0bXApOyBcCiAgICAgICAgIFRDR3Ygc2hpZnQgPSB0Y2dfdGVtcF9uZXcoKTsgXAog ICAgICAgICB0Y2dfZ2VuX2FuZGlfdGwoc2hpZnQsIFJ0ViwgMzEpOyBcCi0gICAgICAgIHRjZ19n ZW5fZ3ZlY19zaGxzKE1PXzMyLCB0bXBvZmYsIFZ1Vl9vZmYsIHNoaWZ0LCBcCi0gICAgICAgICAg ICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCi0g ICAgICAgIHRjZ19nZW5fZ3ZlY19hZGQoTU9fMzIsIFZ4Vl9vZmYsIFZ4Vl9vZmYsIHRtcG9mZiwg XAotICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZl Y3RvcikpOyBcCisgICAgICAgIHRjZ19nZW5fZ3ZlY19zaGxzX3ZhcihNT18zMiwgdGNnX2Vudiwg dG1wb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2hpZnQsIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCisgICAgICAg IHRjZ19nZW5fZ3ZlY19hZGRfdmFyKE1PXzMyLCBWeFZfYmFzZSwgVnhWX29mZiwgVnhWX2Jhc2Us IFZ4Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGNnX2VudiwgdG1wb2Zm LCBzaXplb2YoTU1WZWN0b3IpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZihNTVZlY3RvcikpOyBcCiAgICAgfSB3aGlsZSAoMCkKIAogLyogVmVjdG9yIG1heCAtIHZhcmlv dXMgZm9ybXMgKi8KICNkZWZpbmUgZkdFTl9UQ0dfVjZfdm1heHcoU0hPUlRDT0RFKSBcCi0gICAg dGNnX2dlbl9ndmVjX3NtYXgoTU9fMzIsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAg ICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQor ICAgIHRjZ19nZW5fZ3ZlY19zbWF4X3ZhcihNT18zMiwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9i YXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIFZ2Vl9iYXNlLCBWdlZf b2ZmLCBzaXplb2YoTU1WZWN0b3IpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZihNTVZlY3RvcikpCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZtYXhoKFNIT1JUQ09ERSkgXAotICAg IHRjZ19nZW5fZ3ZlY19zbWF4KE1PXzE2LCBWZFZfb2ZmLCBWdVZfb2ZmLCBWdlZfb2ZmLCBcCi0g ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSkK KyAgICB0Y2dfZ2VuX2d2ZWNfc21heF92YXIoTU9fMTYsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZf YmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfYmFzZSwgVnZW X29mZiwgc2l6ZW9mKE1NVmVjdG9yKSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl b2YoTU1WZWN0b3IpKQogI2RlZmluZSBmR0VOX1RDR19WNl92bWF4dWgoU0hPUlRDT0RFKSBcCi0g ICAgdGNnX2dlbl9ndmVjX3VtYXgoTU9fMTYsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwK LSAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3Ip KQorICAgIHRjZ19nZW5fZ3ZlY191bWF4X3ZhcihNT18xNiwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1 Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIFZ2Vl9iYXNlLCBW dlZfb2ZmLCBzaXplb2YoTU1WZWN0b3IpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVvZihNTVZlY3RvcikpCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZtYXhiKFNIT1JUQ09ERSkgXAot ICAgIHRjZ19nZW5fZ3ZlY19zbWF4KE1PXzgsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwK LSAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3Ip KQorICAgIHRjZ19nZW5fZ3ZlY19zbWF4X3ZhcihNT184LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVW X2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jhc2UsIFZ2 Vl9vZmYsIHNpemVvZihNTVZlY3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKE1NVmVjdG9yKSkKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdm1heHViKFNIT1JUQ09ERSkgXAot ICAgIHRjZ19nZW5fZ3ZlY191bWF4KE1PXzgsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwK LSAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3Ip KQorICAgIHRjZ19nZW5fZ3ZlY191bWF4X3ZhcihNT184LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVW X2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jhc2UsIFZ2 Vl9vZmYsIHNpemVvZihNTVZlY3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKE1NVmVjdG9yKSkKIAogLyogVmVjdG9yIG1pbiAtIHZhcmlvdXMgZm9ybXMgKi8KICNkZWZp bmUgZkdFTl9UQ0dfVjZfdm1pbncoU0hPUlRDT0RFKSBcCi0gICAgdGNnX2dlbl9ndmVjX3NtaW4o TU9fMzIsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQorICAgIHRjZ19nZW5fZ3ZlY19z bWluX3ZhcihNT18zMiwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBzaXplb2YoTU1WZWN0 b3IpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvcikpCiAjZGVm aW5lIGZHRU5fVENHX1Y2X3ZtaW5oKFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19zbWlu KE1PXzE2LCBWZFZfb2ZmLCBWdVZfb2ZmLCBWdlZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSkKKyAgICB0Y2dfZ2VuX2d2ZWNf c21pbl92YXIoTU9fMTYsIFZkVl9iYXNlLCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgc2l6ZW9mKE1NVmVj dG9yKSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpKQogI2Rl ZmluZSBmR0VOX1RDR19WNl92bWludWgoU0hPUlRDT0RFKSBcCi0gICAgdGNnX2dlbl9ndmVjX3Vt aW4oTU9fMTYsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQorICAgIHRjZ19nZW5fZ3Zl Y191bWluX3ZhcihNT18xNiwgVmRWX2Jhc2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgIFZ2Vl9iYXNlLCBWdlZfb2ZmLCBzaXplb2YoTU1W ZWN0b3IpLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvcikpCiAj ZGVmaW5lIGZHRU5fVENHX1Y2X3ZtaW5iKFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19z bWluKE1PXzgsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQorICAgIHRjZ19nZW5fZ3Zl Y19zbWluX3ZhcihNT184LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jhc2UsIFZ2Vl9vZmYsIHNpemVvZihNTVZl Y3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSkKICNk ZWZpbmUgZkdFTl9UQ0dfVjZfdm1pbnViKFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY191 bWluKE1PXzgsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAg ICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQorICAgIHRjZ19nZW5fZ3Zl Y191bWluX3ZhcihNT184LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jhc2UsIFZ2Vl9vZmYsIHNpemVvZihNTVZl Y3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSkKIAog LyogVmVjdG9yIGxvZ2ljYWwgb3BzICovCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Z4b3IoU0hPUlRD T0RFKSBcCi0gICAgdGNnX2dlbl9ndmVjX3hvcihNT182NCwgVmRWX29mZiwgVnVWX29mZiwgVnZW X29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1N VmVjdG9yKSkKKyAgICB0Y2dfZ2VuX2d2ZWNfeG9yX3ZhcihNT182NCwgVmRWX2Jhc2UsIFZkVl9v ZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jh c2UsIFZ2Vl9vZmYsIHNpemVvZihNTVZlY3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoTU1WZWN0b3IpKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZhbmQoU0hPUlRDT0RF KSBcCi0gICAgdGNnX2dlbl9ndmVjX2FuZChNT182NCwgVmRWX29mZiwgVnVWX29mZiwgVnZWX29m ZiwgXAotICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVj dG9yKSkKKyAgICB0Y2dfZ2VuX2d2ZWNfYW5kX3ZhcihNT182NCwgVmRWX2Jhc2UsIFZkVl9vZmYs IFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jhc2Us IFZ2Vl9vZmYsIHNpemVvZihNTVZlY3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoTU1WZWN0b3IpKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZvcihTSE9SVENPREUpIFwK LSAgICB0Y2dfZ2VuX2d2ZWNfb3IoTU9fNjQsIFZkVl9vZmYsIFZ1Vl9vZmYsIFZ2Vl9vZmYsIFwK LSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSkK KyAgICB0Y2dfZ2VuX2d2ZWNfb3JfdmFyKE1PXzY0LCBWZFZfYmFzZSwgVmRWX29mZiwgVnVWX2Jh c2UsIFZ1Vl9vZmYsIFZ2Vl9iYXNlLCBcCisgICAgICAgICAgICAgICAgICAgICAgICBWdlZfb2Zm LCBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQogCiAjZGVmaW5lIGZHRU5fVENH X1Y2X3Zub3QoU0hPUlRDT0RFKSBcCi0gICAgdGNnX2dlbl9ndmVjX25vdChNT182NCwgVmRWX29m ZiwgVnVWX29mZiwgXAotICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6 ZW9mKE1NVmVjdG9yKSkKKyAgICB0Y2dfZ2VuX2d2ZWNfbm90X3ZhcihNT182NCwgVmRWX2Jhc2Us IFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSkKIAogLyogUSByZWdpc3RlciBsb2dp Y2FsIG9wcyAqLwogI2RlZmluZSBmR0VOX1RDR19WNl9wcmVkX29yKFNIT1JUQ09ERSkgXAotICAg IHRjZ19nZW5fZ3ZlY19vcihNT182NCwgUWRWX29mZiwgUXNWX29mZiwgUXRWX29mZiwgXAotICAg ICAgICAgICAgICAgICAgICBzaXplb2YoTU1RUmVnKSwgc2l6ZW9mKE1NUVJlZykpCisgICAgdGNn X2dlbl9ndmVjX29yX3ZhcihNT182NCwgUWRWX2Jhc2UsIFFkVl9vZmYsIFFzVl9iYXNlLCBRc1Zf b2ZmLCBRdFZfYmFzZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgUXRWX29mZiwgc2l6ZW9m KE1NUVJlZyksIHNpemVvZihNTVFSZWcpKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ByZWRfYW5k KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19hbmQoTU9fNjQsIFFkVl9vZmYsIFFzVl9v ZmYsIFF0Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVFSZWcpLCBzaXpl b2YoTU1RUmVnKSkKKyAgICB0Y2dfZ2VuX2d2ZWNfYW5kX3ZhcihNT182NCwgUWRWX2Jhc2UsIFFk Vl9vZmYsIFFzVl9iYXNlLCBRc1Zfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgUXRW X2Jhc2UsIFF0Vl9vZmYsIHNpemVvZihNTVFSZWcpLCBzaXplb2YoTU1RUmVnKSkKIAogI2RlZmlu ZSBmR0VOX1RDR19WNl9wcmVkX3hvcihTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfeG9y KE1PXzY0LCBRZFZfb2ZmLCBRc1Zfb2ZmLCBRdFZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAg ICBzaXplb2YoTU1RUmVnKSwgc2l6ZW9mKE1NUVJlZykpCisgICAgdGNnX2dlbl9ndmVjX3hvcl92 YXIoTU9fNjQsIFFkVl9iYXNlLCBRZFZfb2ZmLCBRc1ZfYmFzZSwgUXNWX29mZiwgXAorICAgICAg ICAgICAgICAgICAgICAgICAgIFF0Vl9iYXNlLCBRdFZfb2ZmLCBzaXplb2YoTU1RUmVnKSwgc2l6 ZW9mKE1NUVJlZykpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfcHJlZF9vcl9uKFNIT1JUQ09ERSkg XAotICAgIHRjZ19nZW5fZ3ZlY19vcmMoTU9fNjQsIFFkVl9vZmYsIFFzVl9vZmYsIFF0Vl9vZmYs IFwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVFSZWcpLCBzaXplb2YoTU1RUmVnKSkK KyAgICB0Y2dfZ2VuX2d2ZWNfb3JjX3ZhcihNT182NCwgUWRWX2Jhc2UsIFFkVl9vZmYsIFFzVl9i YXNlLCBRc1Zfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgUXRWX2Jhc2UsIFF0Vl9v ZmYsIHNpemVvZihNTVFSZWcpLCBzaXplb2YoTU1RUmVnKSkKIAogI2RlZmluZSBmR0VOX1RDR19W Nl9wcmVkX2FuZF9uKFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19hbmRjKE1PXzY0LCBR ZFZfb2ZmLCBRc1Zfb2ZmLCBRdFZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KE1NUVJlZyksIHNpemVvZihNTVFSZWcpKQorICAgIHRjZ19nZW5fZ3ZlY19hbmRjX3ZhcihNT182 NCwgUWRWX2Jhc2UsIFFkVl9vZmYsIFFzVl9iYXNlLCBRc1Zfb2ZmLCBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgIFF0Vl9iYXNlLCBRdFZfb2ZmLCBzaXplb2YoTU1RUmVnKSwgc2l6ZW9mKE1N UVJlZykpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfcHJlZF9ub3QoU0hPUlRDT0RFKSBcCi0gICAg dGNnX2dlbl9ndmVjX25vdChNT182NCwgUWRWX29mZiwgUXNWX29mZiwgXAotICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKE1NUVJlZyksIHNpemVvZihNTVFSZWcpKQorICAgIHRjZ19nZW5fZ3Zl Y19ub3RfdmFyKE1PXzY0LCBRZFZfYmFzZSwgUWRWX29mZiwgUXNWX2Jhc2UsIFFzVl9vZmYsIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1RUmVnKSwgc2l6ZW9mKE1NUVJlZykp CiAKIC8qIFZlY3RvciBjb21wYXJlcyAqLwogI2RlZmluZSBmR0VOX1RDR19WRUNfQ01QKENPTkQs IFRZUEUsIFNJWkUpIFwKICAgICBkbyB7IFwKICAgICAgICAgaW50cHRyX3QgdG1wb2ZmID0gb2Zm c2V0b2YoQ1BVSGV4YWdvblN0YXRlLCB2dG1wKTsgXAotICAgICAgICB0Y2dfZ2VuX2d2ZWNfY21w KENPTkQsIFRZUEUsIHRtcG9mZiwgVnVWX29mZiwgVnZWX29mZiwgXAotICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOyBcCi0gICAgICAg IHZlY190b19xdmVjKFNJWkUsIFFkVl9vZmYsIHRtcG9mZik7IFwKKyAgICAgICAgdGNnX2dlbl9n dmVjX2NtcF92YXIoQ09ORCwgVFlQRSwgdGNnX2VudiwgdG1wb2ZmLCBWdVZfYmFzZSwgVnVWX29m ZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWdlZfYmFzZSwgVnZWX29mZiwgc2l6 ZW9mKE1NVmVjdG9yKSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1W ZWN0b3IpKTsgXAorICAgICAgICB2ZWNfdG9fcXZlYyhTSVpFLCBRZFZfYmFzZSwgUWRWX29mZiwg dGNnX2VudiwgdG1wb2ZmKTsgXAogICAgIH0gd2hpbGUgKDApCiAKICNkZWZpbmUgZkdFTl9UQ0df VjZfdmd0dyhTSE9SVENPREUpIFwKQEAgLTYyNCwxMDAgKzY4OSwxMDIgQEAgc3RhdGljIGlubGlu ZSB2b2lkIGFzc2VydF92aGlzdF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAgICAgZG8geyBcCiAg ICAgICAgIGludHB0cl90IHRtcG9mZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgdnRtcCk7 IFwKICAgICAgICAgaW50cHRyX3QgcW9mZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgcXRt cCk7IFwKLSAgICAgICAgdGNnX2dlbl9ndmVjX2NtcChDT05ELCBUWVBFLCB0bXBvZmYsIFZ1Vl9v ZmYsIFZ2Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3Ip LCBzaXplb2YoTU1WZWN0b3IpKTsgXAotICAgICAgICB2ZWNfdG9fcXZlYyhTSVpFLCBxb2ZmLCB0 bXBvZmYpOyBcCi0gICAgICAgIE9QKE1PXzY0LCBReFZfb2ZmLCBReFZfb2ZmLCBxb2ZmLCBzaXpl b2YoTU1RUmVnKSwgc2l6ZW9mKE1NUVJlZykpOyBcCisgICAgICAgIHRjZ19nZW5fZ3ZlY19jbXBf dmFyKENPTkQsIFRZUEUsIHRjZ19lbnYsIHRtcG9mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVnZWX2Jhc2UsIFZ2Vl9vZmYsIHNpemVvZihNTVZl Y3RvciksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSk7 IFwKKyAgICAgICAgdmVjX3RvX3F2ZWMoU0laRSwgdGNnX2VudiwgcW9mZiwgdGNnX2VudiwgdG1w b2ZmKTsgXAorICAgICAgICBPUChNT182NCwgUXhWX2Jhc2UsIFF4Vl9vZmYsIFF4Vl9iYXNlLCBR eFZfb2ZmLCB0Y2dfZW52LCBxb2ZmLCBcCisgICAgICAgICAgIHNpemVvZihNTVFSZWcpLCBzaXpl b2YoTU1RUmVnKSk7IFwKICAgICB9IHdoaWxlICgwKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3Zn dHdfYW5kKFNIT1JUQ09ERSkgXAotICAgIGZHRU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfR1Qs IE1PXzMyLCA0LCB0Y2dfZ2VuX2d2ZWNfYW5kKQorICAgIGZHRU5fVENHX1ZFQ19DTVBfT1AoVENH X0NPTkRfR1QsIE1PXzMyLCA0LCB0Y2dfZ2VuX2d2ZWNfYW5kX3ZhcikKICNkZWZpbmUgZkdFTl9U Q0dfVjZfdmd0d19vcihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19D T05EX0dULCBNT18zMiwgNCwgdGNnX2dlbl9ndmVjX29yKQorICAgIGZHRU5fVENHX1ZFQ19DTVBf T1AoVENHX0NPTkRfR1QsIE1PXzMyLCA0LCB0Y2dfZ2VuX2d2ZWNfb3JfdmFyKQogI2RlZmluZSBm R0VOX1RDR19WNl92Z3R3X3hvcihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQ01QX09Q KFRDR19DT05EX0dULCBNT18zMiwgNCwgdGNnX2dlbl9ndmVjX3hvcikKKyAgICBmR0VOX1RDR19W RUNfQ01QX09QKFRDR19DT05EX0dULCBNT18zMiwgNCwgdGNnX2dlbl9ndmVjX3hvcl92YXIpCiAK ICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmd0dXdfYW5kKFNIT1JUQ09ERSkgXAotICAgIGZHRU5fVENH X1ZFQ19DTVBfT1AoVENHX0NPTkRfR1RVLCBNT18zMiwgNCwgdGNnX2dlbl9ndmVjX2FuZCkKKyAg ICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0dUVSwgTU9fMzIsIDQsIHRjZ19nZW5fZ3Zl Y19hbmRfdmFyKQogI2RlZmluZSBmR0VOX1RDR19WNl92Z3R1d19vcihTSE9SVENPREUpIFwKLSAg ICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0dUVSwgTU9fMzIsIDQsIHRjZ19nZW5fZ3Zl Y19vcikKKyAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0dUVSwgTU9fMzIsIDQsIHRj Z19nZW5fZ3ZlY19vcl92YXIpCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZndHV3X3hvcihTSE9SVENP REUpIFwKLSAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0dUVSwgTU9fMzIsIDQsIHRj Z19nZW5fZ3ZlY194b3IpCisgICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09ORF9HVFUsIE1P XzMyLCA0LCB0Y2dfZ2VuX2d2ZWNfeG9yX3ZhcikKIAogI2RlZmluZSBmR0VOX1RDR19WNl92Z3Ro X2FuZChTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0dULCBN T18xNiwgMiwgdGNnX2dlbl9ndmVjX2FuZCkKKyAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19D T05EX0dULCBNT18xNiwgMiwgdGNnX2dlbl9ndmVjX2FuZF92YXIpCiAjZGVmaW5lIGZHRU5fVENH X1Y2X3ZndGhfb3IoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09O RF9HVCwgTU9fMTYsIDIsIHRjZ19nZW5fZ3ZlY19vcikKKyAgICBmR0VOX1RDR19WRUNfQ01QX09Q KFRDR19DT05EX0dULCBNT18xNiwgMiwgdGNnX2dlbl9ndmVjX29yX3ZhcikKICNkZWZpbmUgZkdF Tl9UQ0dfVjZfdmd0aF94b3IoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChU Q0dfQ09ORF9HVCwgTU9fMTYsIDIsIHRjZ19nZW5fZ3ZlY194b3IpCisgICAgZkdFTl9UQ0dfVkVD X0NNUF9PUChUQ0dfQ09ORF9HVCwgTU9fMTYsIDIsIHRjZ19nZW5fZ3ZlY194b3JfdmFyKQogCiAj ZGVmaW5lIGZHRU5fVENHX1Y2X3ZndHVoX2FuZChTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19W RUNfQ01QX09QKFRDR19DT05EX0dUVSwgTU9fMTYsIDIsIHRjZ19nZW5fZ3ZlY19hbmQpCisgICAg ZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09ORF9HVFUsIE1PXzE2LCAyLCB0Y2dfZ2VuX2d2ZWNf YW5kX3ZhcikKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmd0dWhfb3IoU0hPUlRDT0RFKSBcCi0gICAg ZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09ORF9HVFUsIE1PXzE2LCAyLCB0Y2dfZ2VuX2d2ZWNf b3IpCisgICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09ORF9HVFUsIE1PXzE2LCAyLCB0Y2df Z2VuX2d2ZWNfb3JfdmFyKQogI2RlZmluZSBmR0VOX1RDR19WNl92Z3R1aF94b3IoU0hPUlRDT0RF KSBcCi0gICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09ORF9HVFUsIE1PXzE2LCAyLCB0Y2df Z2VuX2d2ZWNfeG9yKQorICAgIGZHRU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfR1RVLCBNT18x NiwgMiwgdGNnX2dlbl9ndmVjX3hvcl92YXIpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmd0Yl9h bmQoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09ORF9HVCwgTU9f OCwgMSwgdGNnX2dlbl9ndmVjX2FuZCkKKyAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05E X0dULCBNT184LCAxLCB0Y2dfZ2VuX2d2ZWNfYW5kX3ZhcikKICNkZWZpbmUgZkdFTl9UQ0dfVjZf dmd0Yl9vcihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0dU LCBNT184LCAxLCB0Y2dfZ2VuX2d2ZWNfb3IpCisgICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0df Q09ORF9HVCwgTU9fOCwgMSwgdGNnX2dlbl9ndmVjX29yX3ZhcikKICNkZWZpbmUgZkdFTl9UQ0df VjZfdmd0Yl94b3IoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09O RF9HVCwgTU9fOCwgMSwgdGNnX2dlbl9ndmVjX3hvcikKKyAgICBmR0VOX1RDR19WRUNfQ01QX09Q KFRDR19DT05EX0dULCBNT184LCAxLCB0Y2dfZ2VuX2d2ZWNfeG9yX3ZhcikKIAogI2RlZmluZSBm R0VOX1RDR19WNl92Z3R1Yl9hbmQoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfVkVDX0NNUF9P UChUQ0dfQ09ORF9HVFUsIE1PXzgsIDEsIHRjZ19nZW5fZ3ZlY19hbmQpCisgICAgZkdFTl9UQ0df VkVDX0NNUF9PUChUQ0dfQ09ORF9HVFUsIE1PXzgsIDEsIHRjZ19nZW5fZ3ZlY19hbmRfdmFyKQog I2RlZmluZSBmR0VOX1RDR19WNl92Z3R1Yl9vcihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19W RUNfQ01QX09QKFRDR19DT05EX0dUVSwgTU9fOCwgMSwgdGNnX2dlbl9ndmVjX29yKQorICAgIGZH RU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfR1RVLCBNT184LCAxLCB0Y2dfZ2VuX2d2ZWNfb3Jf dmFyKQogI2RlZmluZSBmR0VOX1RDR19WNl92Z3R1Yl94b3IoU0hPUlRDT0RFKSBcCi0gICAgZkdF Tl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09ORF9HVFUsIE1PXzgsIDEsIHRjZ19nZW5fZ3ZlY194b3Ip CisgICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09ORF9HVFUsIE1PXzgsIDEsIHRjZ19nZW5f Z3ZlY194b3JfdmFyKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZlcXdfYW5kKFNIT1JUQ09ERSkg XAotICAgIGZHRU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfRVEsIE1PXzMyLCA0LCB0Y2dfZ2Vu X2d2ZWNfYW5kKQorICAgIGZHRU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfRVEsIE1PXzMyLCA0 LCB0Y2dfZ2VuX2d2ZWNfYW5kX3ZhcikKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdmVxd19vcihTSE9S VENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0VRLCBNT18zMiwgNCwg dGNnX2dlbl9ndmVjX29yKQorICAgIGZHRU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfRVEsIE1P XzMyLCA0LCB0Y2dfZ2VuX2d2ZWNfb3JfdmFyKQogI2RlZmluZSBmR0VOX1RDR19WNl92ZXF3X3hv cihTSE9SVENPREUpIFwKLSAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0VRLCBNT18z MiwgNCwgdGNnX2dlbl9ndmVjX3hvcikKKyAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05E X0VRLCBNT18zMiwgNCwgdGNnX2dlbl9ndmVjX3hvcl92YXIpCiAKICNkZWZpbmUgZkdFTl9UQ0df VjZfdmVxaF9hbmQoU0hPUlRDT0RFKSBcCi0gICAgZkdFTl9UQ0dfVkVDX0NNUF9PUChUQ0dfQ09O RF9FUSwgTU9fMTYsIDIsIHRjZ19nZW5fZ3ZlY19hbmQpCisgICAgZkdFTl9UQ0dfVkVDX0NNUF9P UChUQ0dfQ09ORF9FUSwgTU9fMTYsIDIsIHRjZ19nZW5fZ3ZlY19hbmRfdmFyKQogI2RlZmluZSBm R0VOX1RDR19WNl92ZXFoX29yKFNIT1JUQ09ERSkgXAotICAgIGZHRU5fVENHX1ZFQ19DTVBfT1Ao VENHX0NPTkRfRVEsIE1PXzE2LCAyLCB0Y2dfZ2VuX2d2ZWNfb3IpCisgICAgZkdFTl9UQ0dfVkVD X0NNUF9PUChUQ0dfQ09ORF9FUSwgTU9fMTYsIDIsIHRjZ19nZW5fZ3ZlY19vcl92YXIpCiAjZGVm aW5lIGZHRU5fVENHX1Y2X3ZlcWhfeG9yKFNIT1JUQ09ERSkgXAotICAgIGZHRU5fVENHX1ZFQ19D TVBfT1AoVENHX0NPTkRfRVEsIE1PXzE2LCAyLCB0Y2dfZ2VuX2d2ZWNfeG9yKQorICAgIGZHRU5f VENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfRVEsIE1PXzE2LCAyLCB0Y2dfZ2VuX2d2ZWNfeG9yX3Zh cikKIAogI2RlZmluZSBmR0VOX1RDR19WNl92ZXFiX2FuZChTSE9SVENPREUpIFwKLSAgICBmR0VO X1RDR19WRUNfQ01QX09QKFRDR19DT05EX0VRLCBNT184LCAxLCB0Y2dfZ2VuX2d2ZWNfYW5kKQor ICAgIGZHRU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfRVEsIE1PXzgsIDEsIHRjZ19nZW5fZ3Zl Y19hbmRfdmFyKQogI2RlZmluZSBmR0VOX1RDR19WNl92ZXFiX29yKFNIT1JUQ09ERSkgXAotICAg IGZHRU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfRVEsIE1PXzgsIDEsIHRjZ19nZW5fZ3ZlY19v cikKKyAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0VRLCBNT184LCAxLCB0Y2dfZ2Vu X2d2ZWNfb3JfdmFyKQogI2RlZmluZSBmR0VOX1RDR19WNl92ZXFiX3hvcihTSE9SVENPREUpIFwK LSAgICBmR0VOX1RDR19WRUNfQ01QX09QKFRDR19DT05EX0VRLCBNT184LCAxLCB0Y2dfZ2VuX2d2 ZWNfeG9yKQorICAgIGZHRU5fVENHX1ZFQ19DTVBfT1AoVENHX0NPTkRfRVEsIE1PXzgsIDEsIHRj Z19nZW5fZ3ZlY194b3JfdmFyKQogCiAvKiBWZWN0b3Igc3BsYXQgLSB2YXJpb3VzIGZvcm1zICov CiAjZGVmaW5lIGZHRU5fVENHX1Y2X2x2c3BsYXR3KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5f Z3ZlY19kdXBfaTMyKE1PXzMyLCBWZFZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSwgUnRWKQorICAgIHRjZ19nZW5fZ3Zl Y19kdXBfaTMyX3ZhcihNT18zMiwgVmRWX2Jhc2UsIFZkVl9vZmYsIHNpemVvZihNTVZlY3Rvciks IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgUnRWKQog CiAjZGVmaW5lIGZHRU5fVENHX1Y2X2x2c3BsYXRoKFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5f Z3ZlY19kdXBfaTMyKE1PXzE2LCBWZFZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSwgUnRWKQorICAgIHRjZ19nZW5fZ3Zl Y19kdXBfaTMyX3ZhcihNT18xNiwgVmRWX2Jhc2UsIFZkVl9vZmYsIHNpemVvZihNTVZlY3Rvciks IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgUnRWKQog CiAjZGVmaW5lIGZHRU5fVENHX1Y2X2x2c3BsYXRiKFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5f Z3ZlY19kdXBfaTMyKE1PXzgsIFZkVl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpLCBSdFYpCisgICAgdGNnX2dlbl9ndmVj X2R1cF9pMzJfdmFyKE1PXzgsIFZkVl9iYXNlLCBWZFZfb2ZmLCBzaXplb2YoTU1WZWN0b3IpLCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIFJ0VikKIAog LyogVmVjdG9yIGFic29sdXRlIHZhbHVlIC0gdmFyaW91cyBmb3JtcyAqLwogI2RlZmluZSBmR0VO X1RDR19WNl92YWJzYihTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfYWJzKE1PXzgsIFZk Vl9vZmYsIFZ1Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3Rvciks IHNpemVvZihNTVZlY3RvcikpCisgICAgdGNnX2dlbl9ndmVjX2Fic192YXIoTU9fOCwgVmRWX2Jh c2UsIFZkVl9vZmYsIFZ1Vl9iYXNlLCBWdVZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSkKIAogI2RlZmluZSBmR0VOX1RD R19WNl92YWJzaChTSE9SVENPREUpIFwKLSAgICB0Y2dfZ2VuX2d2ZWNfYWJzKE1PXzE2LCBWZFZf b2ZmLCBWdVZfb2ZmLCBcCi0gICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBz aXplb2YoTU1WZWN0b3IpKQorICAgIHRjZ19nZW5fZ3ZlY19hYnNfdmFyKE1PXzE2LCBWZFZfYmFz ZSwgVmRWX29mZiwgVnVWX2Jhc2UsIFZ1Vl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKQogCiAjZGVmaW5lIGZHRU5fVENH X1Y2X3ZhYnN3KFNIT1JUQ09ERSkgXAotICAgIHRjZ19nZW5fZ3ZlY19hYnMoTU9fMzIsIFZkVl9v ZmYsIFZ1Vl9vZmYsIFwKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNp emVvZihNTVZlY3RvcikpCisgICAgdGNnX2dlbl9ndmVjX2Fic192YXIoTU9fMzIsIFZkVl9iYXNl LCBWZFZfb2ZmLCBWdVZfYmFzZSwgVnVWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpCiAKIC8qIFZlY3RvciBsb2FkcyAq LwogI2RlZmluZSBmR0VOX1RDR19WNl92TDMyYl9waShTSE9SVENPREUpICAgICAgICAgICAgICAg ICAgICBTSE9SVENPREUKQEAgLTc0MywxNCArODEwLDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBh c3NlcnRfdmhpc3RfdG1wKERpc2FzQ29udGV4dCAqY3R4KQogI2RlZmluZSBmR0VOX1RDR19WNl92 TDMyYl9udF90bXBfcHB1KFNIT1JUQ09ERSkgICAgICAgICAgICBTSE9SVENPREUKIAogLyogUHJl ZGljYXRlZCB2ZWN0b3IgbG9hZHMgKi8KLSNkZWZpbmUgZkdFTl9UQ0dfUFJFRF9WRUNfTE9BRChH RVRfRUEsIFBSRUQsIERTVE9GRiwgSU5DKSBcCisjZGVmaW5lIGZHRU5fVENHX1BSRURfVkVDX0xP QUQoR0VUX0VBLCBQUkVELCBEU1QsIElOQykgXAogICAgIGRvIHsgXAogICAgICAgICBUQ0d2IExT QiA9IHRjZ190ZW1wX25ldygpOyBcCiAgICAgICAgIFRDR0xhYmVsICpmYWxzZV9sYWJlbCA9IGdl bl9uZXdfbGFiZWwoKTsgXAogICAgICAgICBHRVRfRUE7IFwKICAgICAgICAgUFJFRDsgXAogICAg ICAgICB0Y2dfZ2VuX2JyY29uZGlfdGwoVENHX0NPTkRfRVEsIExTQiwgMCwgZmFsc2VfbGFiZWwp OyBcCi0gICAgICAgIGdlbl92cmVnX2xvYWQoY3R4LCBEU1RPRkYsIEVBLCB0cnVlKTsgXAorICAg ICAgICBnZW5fdnJlZ19sb2FkKGN0eCwgRFNUIyNfYmFzZSwgRFNUIyNfb2ZmLCBFQSwgdHJ1ZSk7 IFwKICAgICAgICAgSU5DOyBcCiAgICAgICAgIGdlbl9zZXRfbGFiZWwoZmFsc2VfbGFiZWwpOyBc CiAgICAgfSB3aGlsZSAoMCkKQEAgLTc1OCwxMiArODI1LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCBhc3NlcnRfdmhpc3RfdG1wKERpc2FzQ29udGV4dCAqY3R4KQogI2RlZmluZSBmR0VOX1RDR19Q UkVEX1ZFQ19MT0FEX3ByZWRfcGkgXAogICAgIGZHRU5fVENHX1BSRURfVkVDX0xPQUQoZkxTQk9M RChQdlYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRUFfUkVHKFJ4ViksIFwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIFZkVl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZkViwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZlBNX0koUnhWLCBzaVYg KiBzaXplb2YoTU1WZWN0b3IpKSkKICNkZWZpbmUgZkdFTl9UQ0dfUFJFRF9WRUNfTE9BRF9ucHJl ZF9waSBcCiAgICAgZkdFTl9UQ0dfUFJFRF9WRUNfTE9BRChmTFNCT0xETk9UKFB2ViksIFwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZFQV9SRUcoUnhWKSwgXAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgVmRWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmRWLCBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUE1fSShSeFYsIHNpViAqIHNpemVvZihNTVZl Y3RvcikpKQogCiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZMMzJiX3ByZWRfcGkoU0hPUlRDT0RFKSBc CkBAIC03OTQsMTIgKzg2MSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X3ZoaXN0X3Rt cChEaXNhc0NvbnRleHQgKmN0eCkKICNkZWZpbmUgZkdFTl9UQ0dfUFJFRF9WRUNfTE9BRF9wcmVk X2FpIFwKICAgICBmR0VOX1RDR19QUkVEX1ZFQ19MT0FEKGZMU0JPTEQoUHZWKSwgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgZkVBX1JJKFJ0Viwgc2lWICogc2l6ZW9mKE1NVmVjdG9yKSks IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFZkVl9vZmYsIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIFZkViwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8ge30gd2hp bGUgKDApKQogI2RlZmluZSBmR0VOX1RDR19QUkVEX1ZFQ19MT0FEX25wcmVkX2FpIFwKICAgICBm R0VOX1RDR19QUkVEX1ZFQ19MT0FEKGZMU0JPTEROT1QoUHZWKSwgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgZkVBX1JJKFJ0Viwgc2lWICogc2l6ZW9mKE1NVmVjdG9yKSksIFwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZkVl9vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZkViwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8ge30gd2hpbGUgKDApKQog CiAjZGVmaW5lIGZHRU5fVENHX1Y2X3ZMMzJiX3ByZWRfYWkoU0hPUlRDT0RFKSBcCkBAIC04MzAs MTIgKzg5NywxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X3ZoaXN0X3RtcChEaXNhc0Nv bnRleHQgKmN0eCkKICNkZWZpbmUgZkdFTl9UQ0dfUFJFRF9WRUNfTE9BRF9wcmVkX3BwdSBcCiAg ICAgZkdFTl9UQ0dfUFJFRF9WRUNfTE9BRChmTFNCT0xEKFB2ViksIFwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZFQV9SRUcoUnhWKSwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAg VmRWX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmRWLCBcCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmUE1fTShSeFYsIE11VikpCiAjZGVmaW5lIGZHRU5fVENHX1BSRURf VkVDX0xPQURfbnByZWRfcHB1IFwKICAgICBmR0VOX1RDR19QUkVEX1ZFQ19MT0FEKGZMU0JPTERO T1QoUHZWKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZkVBX1JFRyhSeFYpLCBcCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICBWZFZfb2ZmLCBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBWZFYsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZQTV9NKFJ4ViwgTXVW KSkKIAogI2RlZmluZSBmR0VOX1RDR19WNl92TDMyYl9wcmVkX3BwdShTSE9SVENPREUpIFwKQEAg LTg3OCw3ICs5NDUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X3ZoaXN0X3RtcChEaXNh c0NvbnRleHQgKmN0eCkKICNkZWZpbmUgZkdFTl9UQ0dfTkVXVkFMX1ZFQ19TVE9SRShHRVRfRUEs IElOQykgXAogICAgIGRvIHsgXAogICAgICAgICBHRVRfRUE7IFwKLSAgICAgICAgZ2VuX3ZyZWdf c3RvcmUoY3R4LCBFQSwgT3NOX29mZiwgaW5zbi0+c2xvdCwgdHJ1ZSk7IFwKKyAgICAgICAgZ2Vu X3ZyZWdfc3RvcmUoY3R4LCBFQSwgT3NOX2Jhc2UsIE9zTl9vZmYsIGluc24tPnNsb3QsIHRydWUp OyBcCiAgICAgICAgIElOQzsgXAogICAgIH0gd2hpbGUgKDApCiAKQEAgLTkwOCwxNCArOTc1LDE1 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhc3NlcnRfdmhpc3RfdG1wKERpc2FzQ29udGV4dCAqY3R4 KQogICAgIGZHRU5fVENHX05FV1ZBTF9WRUNfU1RPUkVfcHB1CiAKIC8qIFByZWRpY2F0ZWQgdmVj dG9yIHN0b3JlcyAqLwotI2RlZmluZSBmR0VOX1RDR19QUkVEX1ZFQ19TVE9SRShHRVRfRUEsIFBS RUQsIFNSQ09GRiwgQUxJR04sIElOQykgXAorI2RlZmluZSBmR0VOX1RDR19QUkVEX1ZFQ19TVE9S RShHRVRfRUEsIFBSRUQsIFNSQywgQUxJR04sIElOQykgXAogICAgIGRvIHsgXAogICAgICAgICBU Q0d2IExTQiA9IHRjZ190ZW1wX25ldygpOyBcCiAgICAgICAgIFRDR0xhYmVsICpmYWxzZV9sYWJl bCA9IGdlbl9uZXdfbGFiZWwoKTsgXAogICAgICAgICBHRVRfRUE7IFwKICAgICAgICAgUFJFRDsg XAogICAgICAgICB0Y2dfZ2VuX2JyY29uZGlfdGwoVENHX0NPTkRfRVEsIExTQiwgMCwgZmFsc2Vf bGFiZWwpOyBcCi0gICAgICAgIGdlbl92cmVnX3N0b3JlKGN0eCwgRUEsIFNSQ09GRiwgaW5zbi0+ c2xvdCwgQUxJR04pOyBcCisgICAgICAgIGdlbl92cmVnX3N0b3JlKGN0eCwgRUEsIFNSQyMjX2Jh c2UsIFNSQyMjX29mZiwgaW5zbi0+c2xvdCwgXAorICAgICAgICAgICAgICAgICAgICAgICBBTElH Tik7IFwKICAgICAgICAgSU5DOyBcCiAgICAgICAgIGdlbl9zZXRfbGFiZWwoZmFsc2VfbGFiZWwp OyBcCiAgICAgfSB3aGlsZSAoMCkKQEAgLTkyMywyMiArOTkxLDIyIEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBhc3NlcnRfdmhpc3RfdG1wKERpc2FzQ29udGV4dCAqY3R4KQogI2RlZmluZSBmR0VOX1RD R19QUkVEX1ZFQ19TVE9SRV9wcmVkX3BpKEFMSUdOKSBcCiAgICAgZkdFTl9UQ0dfUFJFRF9WRUNf U1RPUkUoZkxTQk9MRChQdlYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkVBX1JF RyhSeFYpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVnNWX29mZiwgQUxJR04sIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWc1YsIEFMSUdOLCBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZlBNX0koUnhWLCBzaVYgKiBzaXplb2YoTU1WZWN0b3IpKSkKICNkZWZp bmUgZkdFTl9UQ0dfUFJFRF9WRUNfU1RPUkVfbnByZWRfcGkoQUxJR04pIFwKICAgICBmR0VOX1RD R19QUkVEX1ZFQ19TVE9SRShmTFNCT0xETk9UKFB2ViksIFwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmRUFfUkVHKFJ4ViksIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWc1Zf b2ZmLCBBTElHTiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZzViwgQUxJR04sIFwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUE1fSShSeFYsIHNpViAqIHNpemVvZihNTVZl Y3RvcikpKQogI2RlZmluZSBmR0VOX1RDR19QUkVEX1ZFQ19TVE9SRV9uZXdfcHJlZF9waSBcCiAg ICAgZkdFTl9UQ0dfUFJFRF9WRUNfU1RPUkUoZkxTQk9MRChQdlYpLCBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZkVBX1JFRyhSeFYpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgT3NOX29mZiwgdHJ1ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9zTiwgdHJ1 ZSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZQTV9JKFJ4Viwgc2lWICogc2l6ZW9m KE1NVmVjdG9yKSkpCiAjZGVmaW5lIGZHRU5fVENHX1BSRURfVkVDX1NUT1JFX25ld19ucHJlZF9w aSBcCiAgICAgZkdFTl9UQ0dfUFJFRF9WRUNfU1RPUkUoZkxTQk9MRE5PVChQdlYpLCBcCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZkVBX1JFRyhSeFYpLCBcCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3NOX29mZiwgdHJ1ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IE9zTiwgdHJ1ZSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZQTV9JKFJ4Viwgc2lW ICogc2l6ZW9mKE1NVmVjdG9yKSkpCiAKICNkZWZpbmUgZkdFTl9UQ0dfVjZfdlMzMmJfcHJlZF9w aShTSE9SVENPREUpIFwKQEAgLTk2NSwyMiArMTAzMywyMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQg YXNzZXJ0X3ZoaXN0X3RtcChEaXNhc0NvbnRleHQgKmN0eCkKICNkZWZpbmUgZkdFTl9UQ0dfUFJF RF9WRUNfU1RPUkVfcHJlZF9haShBTElHTikgXAogICAgIGZHRU5fVENHX1BSRURfVkVDX1NUT1JF KGZMU0JPTEQoUHZWKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZFQV9SSShSdFYs IHNpViAqIHNpemVvZihNTVZlY3RvcikpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg VnNWX29mZiwgQUxJR04sIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWc1YsIEFMSUdO LCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8geyB9IHdoaWxlICgwKSkKICNkZWZp bmUgZkdFTl9UQ0dfUFJFRF9WRUNfU1RPUkVfbnByZWRfYWkoQUxJR04pIFwKICAgICBmR0VOX1RD R19QUkVEX1ZFQ19TVE9SRShmTFNCT0xETk9UKFB2ViksIFwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmRUFfUkkoUnRWLCBzaVYgKiBzaXplb2YoTU1WZWN0b3IpKSwgXAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFZzVl9vZmYsIEFMSUdOLCBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVnNWLCBBTElHTiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsg fSB3aGlsZSAoMCkpCiAjZGVmaW5lIGZHRU5fVENHX1BSRURfVkVDX1NUT1JFX25ld19wcmVkX2Fp IFwKICAgICBmR0VOX1RDR19QUkVEX1ZFQ19TVE9SRShmTFNCT0xEKFB2ViksIFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmRUFfUkkoUnRWLCBzaVYgKiBzaXplb2YoTU1WZWN0b3IpKSwg XAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9zTl9vZmYsIHRydWUsIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPc04sIHRydWUsIFwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkbyB7IH0gd2hpbGUgKDApKQogI2RlZmluZSBmR0VOX1RDR19QUkVEX1ZFQ19TVE9SRV9u ZXdfbnByZWRfYWkgXAogICAgIGZHRU5fVENHX1BSRURfVkVDX1NUT1JFKGZMU0JPTEROT1QoUHZW KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZFQV9SSShSdFYsIHNpViAqIHNpemVv ZihNTVZlY3RvcikpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgT3NOX29mZiwgdHJ1 ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9zTiwgdHJ1ZSwgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRvIHsgfSB3aGlsZSAoMCkpCiAKICNkZWZpbmUgZkdFTl9UQ0df VjZfdlMzMmJfcHJlZF9haShTSE9SVENPREUpIFwKQEAgLTEwMDcsMjIgKzEwNzUsMjIgQEAgc3Rh dGljIGlubGluZSB2b2lkIGFzc2VydF92aGlzdF90bXAoRGlzYXNDb250ZXh0ICpjdHgpCiAjZGVm aW5lIGZHRU5fVENHX1BSRURfVkVDX1NUT1JFX3ByZWRfcHB1KEFMSUdOKSBcCiAgICAgZkdFTl9U Q0dfUFJFRF9WRUNfU1RPUkUoZkxTQk9MRChQdlYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZkVBX1JFRyhSeFYpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVnNWX29m ZiwgQUxJR04sIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWc1YsIEFMSUdOLCBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZlBNX00oUnhWLCBNdVYpKQogI2RlZmluZSBmR0VO X1RDR19QUkVEX1ZFQ19TVE9SRV9ucHJlZF9wcHUoQUxJR04pIFwKICAgICBmR0VOX1RDR19QUkVE X1ZFQ19TVE9SRShmTFNCT0xETk9UKFB2ViksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmRUFfUkVHKFJ4ViksIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWc1Zfb2ZmLCBB TElHTiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZzViwgQUxJR04sIFwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmUE1fTShSeFYsIE11VikpCiAjZGVmaW5lIGZHRU5fVENH X1BSRURfVkVDX1NUT1JFX25ld19wcmVkX3BwdSBcCiAgICAgZkdFTl9UQ0dfUFJFRF9WRUNfU1RP UkUoZkxTQk9MRChQdlYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkVBX1JFRyhS eFYpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgT3NOX29mZiwgdHJ1ZSwgXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9zTiwgdHJ1ZSwgXAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZQTV9NKFJ4ViwgTXVWKSkKICNkZWZpbmUgZkdFTl9UQ0dfUFJFRF9WRUNfU1RP UkVfbmV3X25wcmVkX3BwdSBcCiAgICAgZkdFTl9UQ0dfUFJFRF9WRUNfU1RPUkUoZkxTQk9MRE5P VChQdlYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkVBX1JFRyhSeFYpLCBcCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3NOX29mZiwgdHJ1ZSwgXAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9zTiwgdHJ1ZSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZQTV9NKFJ4ViwgTXVWKSkKIAogI2RlZmluZSBmR0VOX1RDR19WNl92UzMyYl9wcmVkX3BwdShT SE9SVENPREUpIFwKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2dlbnB0ci5oIGIvdGFyZ2V0 L2hleGFnb24vZ2VucHRyLmgKaW5kZXggZjQ5ODM5ODM2N2MuLjIzOGVlMDg5Y2JhIDEwMDY0NAot LS0gYS90YXJnZXQvaGV4YWdvbi9nZW5wdHIuaAorKysgYi90YXJnZXQvaGV4YWdvbi9nZW5wdHIu aApAQCAtNTksNiArNTksMTQgQEAgVENHdiBnZW5fZ2V0X2hhbGYoVENHdiByZXN1bHQsIGludCBO LCBUQ0d2IHNyYywgYm9vbCBzaWduKTsKIHZvaWQgZ2VuX3NldF9oYWxmKGludCBOLCBUQ0d2IHJl c3VsdCwgVENHdiBzcmMpOwogdm9pZCBnZW5fc2V0X2hhbGZfaTY0KGludCBOLCBUQ0d2X2k2NCBy ZXN1bHQsIFRDR3Ygc3JjKTsKIHZvaWQgcHJvYmVfbm9zaHVmX2xvYWQoVENHdiB2YSwgaW50IHMs IGludCBtaSk7Cit2b2lkIGdlbl9ndmVjX3NhYnNkaWZmX3Zhcih1bnNpZ25lZCB2ZWNlLCBUQ0d2 X3B0ciBkYmFzZSwgdWludDMyX3QgZG9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRD R3ZfcHRyIGFiYXNlLCB1aW50MzJfdCBhb2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg VENHdl9wdHIgYmJhc2UsIHVpbnQzMl90IGJvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCBvcHJzeiwgdWludDMyX3QgbWF4c3opOwordm9pZCBnZW5fZ3ZlY191YWJzZGlm Zl92YXIodW5zaWduZWQgdmVjZSwgVENHdl9wdHIgZGJhc2UsIHVpbnQzMl90IGRvZnMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBhYmFzZSwgdWludDMyX3QgYW9mcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIGJiYXNlLCB1aW50MzJfdCBib2ZzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6 KTsKIHZvaWQgZ2VuX2d2ZWNfc2Fic2RpZmYodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywg dWludDMyX3QgYW9mcywKICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYm9mcywgdWlu dDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KTsKIHZvaWQgZ2VuX2d2ZWNfdWFic2RpZmYodW5z aWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWludDMyX3QgYW9mcywKZGlmZiAtLWdpdCBhL3Rh cmdldC9oZXhhZ29uL21tdmVjL21hY3Jvcy5oIGIvdGFyZ2V0L2hleGFnb24vbW12ZWMvbWFjcm9z LmgKaW5kZXggYjM2ZjgzM2IxZGUuLmRmNjk1ZDA3MzFjIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4 YWdvbi9tbXZlYy9tYWNyb3MuaAorKysgYi90YXJnZXQvaGV4YWdvbi9tbXZlYy9tYWNyb3MuaApA QCAtMjg2LDI2ICsyODYsMjggQEAKICAgICAgICAgZlZfQUxfQ0hFQ0soRUEsIGZWRUNTSVpFKCkg LSAxKTsgXAogICAgIH0gd2hpbGUgKDApCiAjaWZkZWYgUUVNVV9HRU5FUkFURQotI2RlZmluZSBm TE9BRE1NVihFQSwgRFNUKSBnZW5fdnJlZ19sb2FkKGN0eCwgRFNUIyNfb2ZmLCBFQSwgdHJ1ZSkK KyNkZWZpbmUgZkxPQURNTVYoRUEsIERTVCkgZ2VuX3ZyZWdfbG9hZChjdHgsIERTVCMjX2Jhc2Us IERTVCMjX29mZiwgRUEsIHRydWUpCiAjZW5kaWYKICNpZmRlZiBRRU1VX0dFTkVSQVRFCi0jZGVm aW5lIGZMT0FETU1WVShFQSwgRFNUKSBnZW5fdnJlZ19sb2FkKGN0eCwgRFNUIyNfb2ZmLCBFQSwg ZmFsc2UpCisjZGVmaW5lIGZMT0FETU1WVShFQSwgRFNUKSBnZW5fdnJlZ19sb2FkKGN0eCwgRFNU IyNfYmFzZSwgRFNUIyNfb2ZmLCBFQSwgZmFsc2UpCiAjZW5kaWYKICNpZmRlZiBRRU1VX0dFTkVS QVRFCiAjZGVmaW5lIGZTVE9SRU1NVihFQSwgU1JDKSBcCi0gICAgZ2VuX3ZyZWdfc3RvcmUoY3R4 LCBFQSwgU1JDIyNfb2ZmLCBpbnNuLT5zbG90LCB0cnVlKQorICAgIGdlbl92cmVnX3N0b3JlKGN0 eCwgRUEsIFNSQyMjX2Jhc2UsIFNSQyMjX29mZiwgaW5zbi0+c2xvdCwgdHJ1ZSkKICNlbmRpZgog I2lmZGVmIFFFTVVfR0VORVJBVEUKICNkZWZpbmUgZlNUT1JFTU1WUShFQSwgU1JDLCBNQVNLKSBc Ci0gICAgZ2VuX3ZyZWdfbWFza2VkX3N0b3JlKGN0eCwgRUEsIFNSQyMjX29mZiwgTUFTSyMjX29m ZiwgaW5zbi0+c2xvdCwgZmFsc2UpCisgICAgZ2VuX3ZyZWdfbWFza2VkX3N0b3JlKGN0eCwgRUEs IFNSQyMjX2Jhc2UsIFNSQyMjX29mZiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBNQVNL IyNfYmFzZSwgTUFTSyMjX29mZiwgaW5zbi0+c2xvdCwgZmFsc2UpCiAjZW5kaWYKICNpZmRlZiBR RU1VX0dFTkVSQVRFCiAjZGVmaW5lIGZTVE9SRU1NVk5RKEVBLCBTUkMsIE1BU0spIFwKLSAgICBn ZW5fdnJlZ19tYXNrZWRfc3RvcmUoY3R4LCBFQSwgU1JDIyNfb2ZmLCBNQVNLIyNfb2ZmLCBpbnNu LT5zbG90LCB0cnVlKQorICAgIGdlbl92cmVnX21hc2tlZF9zdG9yZShjdHgsIEVBLCBTUkMjI19i YXNlLCBTUkMjI19vZmYsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTUFTSyMjX2Jhc2Us IE1BU0sjI19vZmYsIGluc24tPnNsb3QsIHRydWUpCiAjZW5kaWYKICNpZmRlZiBRRU1VX0dFTkVS QVRFCiAjZGVmaW5lIGZTVE9SRU1NVlUoRUEsIFNSQykgXAotICAgIGdlbl92cmVnX3N0b3JlKGN0 eCwgRUEsIFNSQyMjX29mZiwgaW5zbi0+c2xvdCwgZmFsc2UpCisgICAgZ2VuX3ZyZWdfc3RvcmUo Y3R4LCBFQSwgU1JDIyNfYmFzZSwgU1JDIyNfb2ZmLCBpbnNuLT5zbG90LCBmYWxzZSkKICNlbmRp ZgogI2RlZmluZSBmVkZPUkVBQ0goV0lEVEgsIFZBUikgZm9yIChWQVIgPSAwOyBWQVIgPCBmVkVM RU0oV0lEVEgpOyBWQVIrKykKICNkZWZpbmUgZlZBUlJBWV9FTEVNRU5UX0FDQ0VTUyhBUlJBWSwg VFlQRSwgSU5ERVgpIFwKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL3RyYW5zbGF0ZS5oIGIv dGFyZ2V0L2hleGFnb24vdHJhbnNsYXRlLmgKaW5kZXggYjg3YTJiMjBlMmYuLmU5YjdjMjM2Yjlh IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi90cmFuc2xhdGUuaAorKysgYi90YXJnZXQvaGV4 YWdvbi90cmFuc2xhdGUuaApAQCAtMTkyLDkgKzE5Miw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBj dHhfbG9nX3JlZ19yZWFkX3BhaXIoRGlzYXNDb250ZXh0ICpjdHgsIGludCBybnVtKQogfQogCiBp bnRwdHJfdCBjdHhfZnV0dXJlX3ZyZWdfb2ZmKERpc2FzQ29udGV4dCAqY3R4LCBpbnQgcmVnbnVt LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtLCBib29sIGFsbG9jX29rKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bSwgYm9vbCBhbGxvY19vaywgVENH dl9wdHIgKmJhc2UpOwogaW50cHRyX3QgY3R4X3RtcF92cmVnX29mZihEaXNhc0NvbnRleHQgKmN0 eCwgaW50IHJlZ251bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bSwgYm9vbCBh bGxvY19vayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW0sIGJvb2wgYWxsb2Nf b2ssIFRDR3ZfcHRyICpiYXNlKTsKIAogc3RhdGljIGlubGluZSB2b2lkIGN0eF9zdGFydF9odnhf aW5zbihEaXNhc0NvbnRleHQgKmN0eCkKIHsKQEAgLTMyOCw2ICszMjgsMTQgQEAgZXh0ZXJuIFRD R3ZfaTY0IGhleF9sbHNjX3ZhbF9pNjQ7CiBleHRlcm4gVENHdiBoZXhfdnN0b3JlX2FkZHJbVlNU T1JFU19NQVhdOwogZXh0ZXJuIFRDR3YgaGV4X3ZzdG9yZV9zaXplW1ZTVE9SRVNfTUFYXTsKIGV4 dGVybiBUQ0d2IGhleF92c3RvcmVfcGVuZGluZ1tWU1RPUkVTX01BWF07CisjaWZkZWYgQ09ORklH X1VTRVJfT05MWQorI2RlZmluZSBoZXhfaHZ4X3B0ciB0Y2dfZW52CisjZGVmaW5lIEhFWF9IVlhf T0ZGU0VUKG1lbWJlcikgXAorICAgIChvZmZzZXRvZihIZXhhZ29uQ1BVLCBodnhfY3R4Lm1lbWJl cikgLSBvZmZzZXRvZihIZXhhZ29uQ1BVLCBlbnYpKQorI2Vsc2UKK2V4dGVybiBUQ0d2X3B0ciBo ZXhfaHZ4X3B0cjsKKyNkZWZpbmUgSEVYX0hWWF9PRkZTRVQobWVtYmVyKSBvZmZzZXRvZihIZXhh Z29uSFZYQ29udGV4dCwgbWVtYmVyKQorI2VuZGlmCiAjaWZuZGVmIENPTkZJR19VU0VSX09OTFkK IGV4dGVybiBUQ0d2X2kzMiBoZXhfZ3JlZ1tOVU1fR1JFR1NdOwogZXh0ZXJuIFRDR3ZfaTMyIGhl eF90X3NyZWdbTlVNX1NSRUdTXTsKZGlmZiAtLWdpdCBhL2h3L2hleGFnb24vaGV4LXN1YnN5cy5j IGIvaHcvaGV4YWdvbi9oZXgtc3Vic3lzLmMKaW5kZXggNGUzYTQxODM0MGUuLjBlZmNiNDBkOGEz IDEwMDY0NAotLS0gYS9ody9oZXhhZ29uL2hleC1zdWJzeXMuYworKysgYi9ody9oZXhhZ29uL2hl eC1zdWJzeXMuYwpAQCAtNyw4ICs3LDEwIEBACiAKICNpbmNsdWRlICJxZW11L29zZGVwLmgiCiAj aW5jbHVkZSAicWFwaS9lcnJvci5oIgorI2luY2x1ZGUgInFlbXUvZXJyb3ItcmVwb3J0LmgiCiAj aW5jbHVkZSAiaHcvaGV4YWdvbi9oZXgtc3Vic3lzLmgiCiAjaW5jbHVkZSAiaHcvaGV4YWdvbi9o ZXhhZ29uX2dsb2JhbHJlZy5oIgorI2luY2x1ZGUgImh3L2hleGFnb24vaGV4YWdvbl9odnhfY29u dGV4dC5oIgogI2luY2x1ZGUgImh3L2hleGFnb24vaGV4YWdvbl90bGIuaCIKICNpbmNsdWRlICJo dy9pbnRjL2hleC1sMnZpYy5oIgogI2luY2x1ZGUgImh3L3RpbWVyL3FjdC1xdGltZXIuaCIKQEAg LTk4LDYgKzEwMCwzMyBAQCBzdGF0aWMgRGV2aWNlU3RhdGUgKnRsYl9jcmVhdGUoSGV4YWdvbkNv bW1vbk1hY2hpbmVTdGF0ZSAqaG1zLAogICAgIHJldHVybiB0bGI7CiB9CiAKKy8qCisgKiBDcmVh dGUgdGhlIGNvcmUncyBIVlggZXh0ZW5zaW9uIGNvbnRleHRzLiAgVGhlcmUgYXJlIGZld2VyIG9m IHRoZW0gdGhhbgorICogdGhlcmUgYXJlIGhhcmR3YXJlIHRocmVhZHMsIGFuZCBTU1I6WEEgcGlj a3Mgd2hpY2ggb25lIGEgdGhyZWFkIHVzZXMsIHNvCisgKiB0aGV5IGJlbG9uZyB0byB0aGUgc3Vi c3lzdGVtIHJhdGhlciB0aGFuIHRvIGFueSBvbmUgQ1BVLgorICovCitzdGF0aWMgdm9pZCBodnhf Y29udGV4dHNfY3JlYXRlKEhleGFnb25Db21tb25NYWNoaW5lU3RhdGUgKmhtcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGhleGFnb25fbWFjaGluZV9jb25m aWcgKm1fY2ZnKQoreworICAgIHVuc2lnbmVkIG4gPSBtX2NmZy0+Y2ZndGFibGUuZXh0X2NvbnRl eHRzOworICAgIHVuc2lnbmVkIGk7CisKKyAgICBpZiAobiA+IEhWWF9DT05URVhUU19NQVgpIHsK KyAgICAgICAgZXJyb3JfcmVwb3J0KCJtYWNoaW5lIGRlY2xhcmVzICV1IEhWWCBjb250ZXh0cywg b25seSAldSBhcmUgdXNhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgIG4sIEhWWF9DT05URVhU U19NQVgpOworICAgICAgICBleGl0KDEpOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgbjsg aSsrKSB7CisgICAgICAgIERldmljZVN0YXRlICpjdHggPSBxZGV2X25ldyhUWVBFX0hFWEFHT05f SFZYX0NPTlRFWFQpOworICAgICAgICBnX2F1dG9mcmVlIGNoYXIgKm5hbWUgPSBnX3N0cmR1cF9w cmludGYoImh2eC1jb250ZXh0WyV1XSIsIGkpOworCisgICAgICAgIG9iamVjdF9wcm9wZXJ0eV9h ZGRfY2hpbGQoT0JKRUNUKGhtcyksIG5hbWUsIE9CSkVDVChjdHgpKTsKKyAgICAgICAgcWRldl9w cm9wX3NldF91aW50MzIoY3R4LCAiaW5kZXgiLCBpKTsKKyAgICAgICAgc3lzYnVzX3JlYWxpemVf YW5kX3VucmVmKFNZU19CVVNfREVWSUNFKGN0eCksICZlcnJvcl9mYXRhbCk7CisgICAgfQorICAg IGhtcy0+bnVtX2h2eF9jdHggPSBuOworfQorCiBzdGF0aWMgRGV2aWNlU3RhdGUgKmNsdXN0ZXJf Y3JlYXRlKEhleGFnb25Db21tb25NYWNoaW5lU3RhdGUgKmhtcykKIHsKICAgICBEZXZpY2VTdGF0 ZSAqY2x1c3RlciA9IHFkZXZfbmV3KFRZUEVfQ1BVX0NMVVNURVIpOwpAQCAtMTQwLDYgKzE2OSw3 IEBAIHZvaWQgaGV4X3N1YnN5c19jcmVhdGUoSGV4YWdvbkNvbW1vbk1hY2hpbmVTdGF0ZSAqaG1z LAogICAgIGhtcy0+cXRpbWVyID0gcXRpbWVyX2NyZWF0ZShobXMsIG1fY2ZnKTsKICAgICBobXMt Pmdsb2JfcmVncyA9IGdsb2JhbHJlZ19jcmVhdGUoaG1zLCBtX2NmZywgcmV2KTsKICAgICBobXMt PnRsYiA9IHRsYl9jcmVhdGUoaG1zLCBtX2NmZyk7CisgICAgaHZ4X2NvbnRleHRzX2NyZWF0ZSho bXMsIG1fY2ZnKTsKIH0KIAogdm9pZCBoZXhfc3Vic3lzX2FkZF9jcHUoSGV4YWdvbkNvbW1vbk1h Y2hpbmVTdGF0ZSAqaG1zLCBEZXZpY2VTdGF0ZSAqY3B1KQpAQCAtMTUxLDYgKzE4MSwxMiBAQCB2 b2lkIGhleF9zdWJzeXNfYWRkX2NwdShIZXhhZ29uQ29tbW9uTWFjaGluZVN0YXRlICpobXMsIERl dmljZVN0YXRlICpjcHUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcl9mYXRh bCk7CiAgICAgb2JqZWN0X3Byb3BlcnR5X3NldF9saW5rKE9CSkVDVChjcHUpLCAibDJ2aWMiLCBP QkpFQ1QoaG1zLT5sMnZpYyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcl9m YXRhbCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGhtcy0+bnVtX2h2eF9jdHg7IGkr KykgeworICAgICAgICBnX2F1dG9mcmVlIGNoYXIgKm5hbWUgPSBnX3N0cmR1cF9wcmludGYoImh2 eC1jb250ZXh0WyV1XSIsIGkpOworICAgICAgICBPYmplY3QgKmN0eCA9IG9iamVjdF9yZXNvbHZl X3BhdGhfY29tcG9uZW50KE9CSkVDVChobXMpLCBuYW1lKTsKKworICAgICAgICBvYmplY3RfcHJv cGVydHlfc2V0X2xpbmsoT0JKRUNUKGNwdSksIG5hbWUsIGN0eCwgJmVycm9yX2ZhdGFsKTsKKyAg ICB9CiB9CiAKIHZvaWQgaGV4X3N1YnN5c19yZWFsaXplX2NsdXN0ZXIoSGV4YWdvbkNvbW1vbk1h Y2hpbmVTdGF0ZSAqaG1zKQpkaWZmIC0tZ2l0IGEvaHcvaGV4YWdvbi9oZXhhZ29uX2h2eF9jb250 ZXh0LmMgYi9ody9oZXhhZ29uL2hleGFnb25faHZ4X2NvbnRleHQuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2I3MzQ5ODI5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9o dy9oZXhhZ29uL2hleGFnb25faHZ4X2NvbnRleHQuYwpAQCAtMCwwICsxLDg0IEBACisvKgorICog SGV4YWdvbiBIVlggRXh0ZW5zaW9uIENvbnRleHQgUU9NIE9iamVjdAorICoKKyAqIENvcHlyaWdo dCAoYykgUXVhbGNvbW0gVGVjaG5vbG9naWVzLCBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVz LgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisj aW5jbHVkZSAicWVtdS9vc2RlcC5oIgorI2luY2x1ZGUgImh3L2hleGFnb24vaGV4YWdvbl9odnhf Y29udGV4dC5oIgorI2luY2x1ZGUgImh3L2NvcmUvcWRldi1wcm9wZXJ0aWVzLmgiCisjaW5jbHVk ZSAibWlncmF0aW9uL3Ztc3RhdGUuaCIKKworc3RhdGljIHZvaWQgaGV4YWdvbl9odnhfY29udGV4 dF9yZXNldF9ob2xkKE9iamVjdCAqb2JqLCBSZXNldFR5cGUgdHlwZSkKK3sKKyAgICBIZXhhZ29u SFZYQ29udGV4dFN0YXRlICpzID0gSEVYQUdPTl9IVlhfQ09OVEVYVChvYmopOworCisgICAgbWVt c2V0KCZzLT5yZWdzLCAwLCBzaXplb2Yocy0+cmVncykpOworfQorCisvKiBndmVjIG5lZWRzIFZS ZWdzL1FSZWdzIDE2LWFsaWduZWQgd2l0aGluIHRoZSBzdHJ1Y3QuICovCitRRU1VX0JVSUxEX0JV R19PTihvZmZzZXRvZihIZXhhZ29uSFZYQ29udGV4dFN0YXRlLCByZWdzKSAlIDE2ICE9IDApOwor CitzdGF0aWMgY29uc3QgVk1TdGF0ZURlc2NyaXB0aW9uIHZtc3RhdGVfbW12ZWN0b3IgPSB7Cisg ICAgLm5hbWUgPSAiaGV4YWdvbl9tbXZlY3RvciIsCisgICAgLnZlcnNpb25faWQgPSAxLAorICAg IC5taW5pbXVtX3ZlcnNpb25faWQgPSAxLAorICAgIC5maWVsZHMgPSAoY29uc3QgVk1TdGF0ZUZp ZWxkW10peworICAgICAgICBWTVNUQVRFX1VJTlQ2NF9BUlJBWSh1ZCwgTU1WZWN0b3IsIE1BWF9W RUNfU0laRV9CWVRFUyAvIDgpLAorICAgICAgICBWTVNUQVRFX0VORF9PRl9MSVNUKCkKKyAgICB9 Cit9OworCitzdGF0aWMgY29uc3QgVk1TdGF0ZURlc2NyaXB0aW9uIHZtc3RhdGVfbW1xcmVnID0g eworICAgIC5uYW1lID0gImhleGFnb25fbW1xcmVnIiwKKyAgICAudmVyc2lvbl9pZCA9IDEsCisg ICAgLm1pbmltdW1fdmVyc2lvbl9pZCA9IDEsCisgICAgLmZpZWxkcyA9IChjb25zdCBWTVN0YXRl RmllbGRbXSl7CisgICAgICAgIFZNU1RBVEVfVUlOVDY0X0FSUkFZKHVkLCBNTVFSZWcsIE1BWF9W RUNfU0laRV9CWVRFUyAvIDggLyA4KSwKKyAgICAgICAgVk1TVEFURV9FTkRfT0ZfTElTVCgpCisg ICAgfQorfTsKKworc3RhdGljIGNvbnN0IFZNU3RhdGVEZXNjcmlwdGlvbiB2bXN0YXRlX2hleGFn b25faHZ4X2NvbnRleHQgPSB7CisgICAgLm5hbWUgPSAiaGV4YWdvbl9odnhfY29udGV4dCIsCisg ICAgLnZlcnNpb25faWQgPSAxLAorICAgIC5taW5pbXVtX3ZlcnNpb25faWQgPSAxLAorICAgIC5m aWVsZHMgPSAoY29uc3QgVk1TdGF0ZUZpZWxkW10peworICAgICAgICBWTVNUQVRFX1NUUlVDVF9B UlJBWShyZWdzLlZSZWdzLCBIZXhhZ29uSFZYQ29udGV4dFN0YXRlLCBOVU1fVlJFR1MsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDEsIHZtc3RhdGVfbW12ZWN0b3IsIE1NVmVjdG9yKSwK KyAgICAgICAgVk1TVEFURV9TVFJVQ1RfQVJSQVkocmVncy5RUmVncywgSGV4YWdvbkhWWENvbnRl eHRTdGF0ZSwgTlVNX1FSRUdTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCB2bXN0 YXRlX21tcXJlZywgTU1RUmVnKSwKKyAgICAgICAgVk1TVEFURV9FTkRfT0ZfTElTVCgpCisgICAg fQorfTsKKworc3RhdGljIGNvbnN0IFByb3BlcnR5IGhleGFnb25faHZ4X2NvbnRleHRfcHJvcGVy dGllc1tdID0geworICAgIERFRklORV9QUk9QX1VJTlQzMigiaW5kZXgiLCBIZXhhZ29uSFZYQ29u dGV4dFN0YXRlLCBpbmRleCwgMCksCit9OworCitzdGF0aWMgdm9pZCBoZXhhZ29uX2h2eF9jb250 ZXh0X2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKmtsYXNzLCBjb25zdCB2b2lkICpkYXRhKQorewor ICAgIERldmljZUNsYXNzICpkYyA9IERFVklDRV9DTEFTUyhrbGFzcyk7CisgICAgUmVzZXR0YWJs ZUNsYXNzICpyYyA9IFJFU0VUVEFCTEVfQ0xBU1Moa2xhc3MpOworCisgICAgcmMtPnBoYXNlcy5o b2xkID0gaGV4YWdvbl9odnhfY29udGV4dF9yZXNldF9ob2xkOworICAgIGRjLT52bXNkID0gJnZt c3RhdGVfaGV4YWdvbl9odnhfY29udGV4dDsKKyAgICBkYy0+dXNlcl9jcmVhdGFibGUgPSBmYWxz ZTsKKyAgICBkZXZpY2VfY2xhc3Nfc2V0X3Byb3BzKGRjLCBoZXhhZ29uX2h2eF9jb250ZXh0X3By b3BlcnRpZXMpOworfQorCitzdGF0aWMgY29uc3QgVHlwZUluZm8gaGV4YWdvbl9odnhfY29udGV4 dF9pbmZvID0geworICAgIC5uYW1lID0gVFlQRV9IRVhBR09OX0hWWF9DT05URVhULAorICAgIC5w YXJlbnQgPSBUWVBFX1NZU19CVVNfREVWSUNFLAorICAgIC5pbnN0YW5jZV9zaXplID0gc2l6ZW9m KEhleGFnb25IVlhDb250ZXh0U3RhdGUpLAorICAgIC5pbnN0YW5jZV9hbGlnbiA9IF9fYWxpZ25v ZihIZXhhZ29uSFZYQ29udGV4dFN0YXRlKSwKKyAgICAuY2xhc3NfaW5pdCA9IGhleGFnb25faHZ4 X2NvbnRleHRfY2xhc3NfaW5pdCwKK307CisKK3N0YXRpYyB2b2lkIGhleGFnb25faHZ4X2NvbnRl eHRfcmVnaXN0ZXJfdHlwZXModm9pZCkKK3sKKyAgICB0eXBlX3JlZ2lzdGVyX3N0YXRpYygmaGV4 YWdvbl9odnhfY29udGV4dF9pbmZvKTsKK30KKwordHlwZV9pbml0KGhleGFnb25faHZ4X2NvbnRl eHRfcmVnaXN0ZXJfdHlwZXMpCmRpZmYgLS1naXQgYS9saW51eC11c2VyL21haW4uYyBiL2xpbnV4 LXVzZXIvbWFpbi5jCmluZGV4IDYwYTY5NWI3Y2EzLi45MThiNDkzMGIwNyAxMDA2NDQKLS0tIGEv bGludXgtdXNlci9tYWluLmMKKysrIGIvbGludXgtdXNlci9tYWluLmMKQEAgLTI0NCw2ICsyNDQs OSBAQCBDUFVBcmNoU3RhdGUgKmNwdV9jb3B5KENQVUFyY2hTdGF0ZSAqZW52KQogCiAgICAgbmV3 X2NwdS0+dGNnX2NmbGFncyA9IGNwdS0+dGNnX2NmbGFnczsKICAgICBtZW1jcHkobmV3X2Vudiwg ZW52LCBzaXplb2YoQ1BVQXJjaFN0YXRlKSk7CisjaWYgZGVmaW5lZChUQVJHRVRfSEVYQUdPTikK KyAgICBIRVhBR09OX0NQVShuZXdfY3B1KS0+aHZ4X2N0eCA9IEhFWEFHT05fQ1BVKGNwdSktPmh2 eF9jdHg7CisjZW5kaWYKICNpZiBkZWZpbmVkKFRBUkdFVF9JMzg2KSB8fCBkZWZpbmVkKFRBUkdF VF9YODZfNjQpCiAgICAgbmV3X2Vudi0+Z2R0LmJhc2UgPSB0YXJnZXRfbW1hcCgwLCBzaXplb2Yo dWludDY0X3QpICogVEFSR0VUX0dEVF9FTlRSSUVTLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKZGlmZiAtLWdpdCBhL3RhcmdldC9o ZXhhZ29uL2NwdS5jIGIvdGFyZ2V0L2hleGFnb24vY3B1LmMKaW5kZXggMTk0ODZlMGY3NDEuLjZh Y2Q0NzJjZDg4IDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9jcHUuYworKysgYi90YXJnZXQv aGV4YWdvbi9jcHUuYwpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgImV4ZWMvcGFnZS1wcm90 ZWN0aW9uLmgiCiAjaW5jbHVkZSAiZXhlYy90YXJnZXRfcGFnZS5oIgogI2luY2x1ZGUgImh3L2hl eGFnb24vaGV4YWdvbl9nbG9iYWxyZWcuaCIKKyNpbmNsdWRlICJody9oZXhhZ29uL2hleGFnb25f aHZ4X2NvbnRleHQuaCIKICNlbmRpZgogCiBzdGF0aWMgT2JqZWN0Q2xhc3MgKmhleGFnb25fY3B1 X2NsYXNzX2J5X25hbWUoY29uc3QgY2hhciAqY3B1X21vZGVsKQpAQCAtMTkxLDcgKzE5Miw3IEBA IHN0YXRpYyB2b2lkIHByaW50X3ZyZWcoRklMRSAqZiwgQ1BVSGV4YWdvblN0YXRlICplbnYsIGlu dCByZWdudW0sCiAgICAgaWYgKHNraXBfaWZfemVybykgewogICAgICAgICBib29sIG5vbnplcm9f Zm91bmQgPSBmYWxzZTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfVkVDX1NJWkVf QllURVM7IGkrKykgewotICAgICAgICAgICAgaWYgKGVudi0+VlJlZ3NbcmVnbnVtXS51YltpXSAh PSAwKSB7CisgICAgICAgICAgICBpZiAoaGV4X2h2eChlbnYpLT5WUmVnc1tyZWdudW1dLnViW2ld ICE9IDApIHsKICAgICAgICAgICAgICAgICBub256ZXJvX2ZvdW5kID0gdHJ1ZTsKICAgICAgICAg ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTIwMiw5ICsyMDMsMTAgQEAgc3RhdGlj IHZvaWQgcHJpbnRfdnJlZyhGSUxFICpmLCBDUFVIZXhhZ29uU3RhdGUgKmVudiwgaW50IHJlZ251 bSwKICAgICB9CiAKICAgICBxZW11X2ZwcmludGYoZiwgIiAgdiVkID0gKCAiLCByZWdudW0pOwot ICAgIHFlbXVfZnByaW50ZihmLCAiMHglMDJ4IiwgZW52LT5WUmVnc1tyZWdudW1dLnViW01BWF9W RUNfU0laRV9CWVRFUyAtIDFdKTsKKyAgICBxZW11X2ZwcmludGYoZiwgIjB4JTAyeCIsCisgICAg ICAgICAgICAgICAgIGhleF9odngoZW52KS0+VlJlZ3NbcmVnbnVtXS51YltNQVhfVkVDX1NJWkVf QllURVMgLSAxXSk7CiAgICAgZm9yIChpbnQgaSA9IE1BWF9WRUNfU0laRV9CWVRFUyAtIDI7IGkg Pj0gMDsgaS0tKSB7Ci0gICAgICAgIHFlbXVfZnByaW50ZihmLCAiLCAweCUwMngiLCBlbnYtPlZS ZWdzW3JlZ251bV0udWJbaV0pOworICAgICAgICBxZW11X2ZwcmludGYoZiwgIiwgMHglMDJ4Iiwg aGV4X2h2eChlbnYpLT5WUmVnc1tyZWdudW1dLnViW2ldKTsKICAgICB9CiAgICAgcWVtdV9mcHJp bnRmKGYsICIgKVxuIik7CiB9CkBAIC0yMjAsNyArMjIyLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRf cXJlZyhGSUxFICpmLCBDUFVIZXhhZ29uU3RhdGUgKmVudiwgaW50IHJlZ251bSwKICAgICBpZiAo c2tpcF9pZl96ZXJvKSB7CiAgICAgICAgIGJvb2wgbm9uemVyb19mb3VuZCA9IGZhbHNlOwogICAg ICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9WRUNfU0laRV9CWVRFUyAvIDg7IGkrKykgewot ICAgICAgICAgICAgaWYgKGVudi0+UVJlZ3NbcmVnbnVtXS51YltpXSAhPSAwKSB7CisgICAgICAg ICAgICBpZiAoaGV4X2h2eChlbnYpLT5RUmVnc1tyZWdudW1dLnViW2ldICE9IDApIHsKICAgICAg ICAgICAgICAgICBub256ZXJvX2ZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgIH0KQEAgLTIzMiw5ICsyMzQsOSBAQCBzdGF0aWMgdm9pZCBwcmludF9xcmVn KEZJTEUgKmYsIENQVUhleGFnb25TdGF0ZSAqZW52LCBpbnQgcmVnbnVtLAogCiAgICAgcWVtdV9m cHJpbnRmKGYsICIgIHElZCA9ICggIiwgcmVnbnVtKTsKICAgICBxZW11X2ZwcmludGYoZiwgIjB4 JTAyeCIsCi0gICAgICAgICAgICAgICAgIGVudi0+UVJlZ3NbcmVnbnVtXS51YltNQVhfVkVDX1NJ WkVfQllURVMgLyA4IC0gMV0pOworICAgICAgICAgICAgICAgICBoZXhfaHZ4KGVudiktPlFSZWdz W3JlZ251bV0udWJbTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOCAtIDFdKTsKICAgICBmb3IgKGludCBp ID0gTUFYX1ZFQ19TSVpFX0JZVEVTIC8gOCAtIDI7IGkgPj0gMDsgaS0tKSB7Ci0gICAgICAgIHFl bXVfZnByaW50ZihmLCAiLCAweCUwMngiLCBlbnYtPlFSZWdzW3JlZ251bV0udWJbaV0pOworICAg ICAgICBxZW11X2ZwcmludGYoZiwgIiwgMHglMDJ4IiwgaGV4X2h2eChlbnYpLT5RUmVnc1tyZWdu dW1dLnViW2ldKTsKICAgICB9CiAgICAgcWVtdV9mcHJpbnRmKGYsICIgKVxuIik7CiB9CkBAIC0z MjcsNiArMzI5LDkgQEAgc3RhdGljIFRDR1RCQ1BVU3RhdGUgaGV4YWdvbl9nZXRfdGJfY3B1X3N0 YXRlKENQVVN0YXRlICpjcykKICAgICBDUFVIZXhhZ29uU3RhdGUgKmVudiA9IGNwdV9lbnYoY3Mp OwogICAgIHZhZGRyIHBjID0gZW52LT5ncHJbSEVYX1JFR19QQ107CiAgICAgdWludDMyX3QgaGV4 X2ZsYWdzID0gMDsKKyNpZm5kZWYgQ09ORklHX1VTRVJfT05MWQorICAgIEhleGFnb25DUFUgKmNw dTsKKyNlbmRpZgogCiAgICAgaWYgKHBjID09IGVudi0+Z3ByW0hFWF9SRUdfU0EwXSkgewogICAg ICAgICBoZXhfZmxhZ3MgPSBGSUVMRF9EUDMyKGhleF9mbGFncywgVEJfRkxBR1MsIElTX1RJR0hU X0xPT1AsIDEpOwpAQCAtMzM3LDEwICszNDIsMTIgQEAgc3RhdGljIFRDR1RCQ1BVU3RhdGUgaGV4 YWdvbl9nZXRfdGJfY3B1X3N0YXRlKENQVVN0YXRlICpjcykKICAgICB9CiAKICNpZm5kZWYgQ09O RklHX1VTRVJfT05MWQorICAgIGNwdSA9IGVudl9hcmNoY3B1KGVudik7CiAgICAgaGV4X2ZsYWdz ID0gRklFTERfRFAzMihoZXhfZmxhZ3MsIFRCX0ZMQUdTLCBNTVVfSU5ERVgsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjcHVfbW11X2luZGV4KGVudl9jcHUoZW52KSwgZmFsc2UpKTsKICAg ICBoZXhfZmxhZ3MgPSBGSUVMRF9EUDMyKGhleF9mbGFncywgVEJfRkxBR1MsIFBDWUNMRV9FTkFC TEVELCAxKTsKICAgICBoZXhfZmxhZ3MgPSBGSUVMRF9EUDMyKGhleF9mbGFncywgVEJfRkxBR1Ms IEhWWF9DT1BST0NfRU5BQkxFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdS0+aHZ4 X2N0eFswXSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VUX1NTUl9GSUVMRChTU1Jf WEUsIGVudi0+dF9zcmVnW0hFWF9TUkVHX1NTUl0pKTsKICNlbHNlCiAgICAgaGV4X2ZsYWdzID0g RklFTERfRFAzMihoZXhfZmxhZ3MsIFRCX0ZMQUdTLCBNTVVfSU5ERVgsIE1NVV9VU0VSX0lEWCk7 CkBAIC00NDgsNiArNDU1LDcgQEAgc3RhdGljIHZvaWQgaGV4YWdvbl9jcHVfcmVzZXRfaG9sZChP YmplY3QgKm9iaiwgUmVzZXRUeXBlIHR5cGUpCiAgICAgZW52LT50X3NyZWdbSEVYX1NSRUdfSFRJ RF0gPSBjcHUtPmh0aWQ7CiAgICAgZW52LT50aHJlYWRJZCA9IGNwdS0+aHRpZDsKICAgICBoZXhh Z29uX2NwdV9zb2Z0X3Jlc2V0KGVudik7CisgICAgaGV4YWdvbl9odnhfc2VsZWN0X2NvbnRleHQo ZW52LCBlbnYtPnRfc3JlZ1tIRVhfU1JFR19TU1JdKTsKICAgICBlbnYtPmNhdXNlX2NvZGUgPSBI RVhfRVZFTlRfTk9ORTsKICAgICBlbnYtPmdwcltIRVhfUkVHX1BDXSA9IGNwdS0+Ym9vdF9hZGRy OwogI2VuZGlmCkBAIC01NTMsNyArNTYxLDE3IEBAIHN0YXRpYyB2b2lkIGhleGFnb25fY3B1X2lu aXQoT2JqZWN0ICpvYmopCiB7CiAjaWZuZGVmIENPTkZJR19VU0VSX09OTFkKICAgICBIZXhhZ29u Q1BVICpjcHUgPSBIRVhBR09OX0NQVShvYmopOworICAgIGludCBpOworCiAgICAgcWRldl9pbml0 X2dwaW9faW4oREVWSUNFKGNwdSksIGhleGFnb25fY3B1X3NldF9pcnEsIDgpOworCisgICAgZm9y IChpID0gMDsgaSA8IEhWWF9DT05URVhUU19NQVg7IGkrKykgeworICAgICAgICBvYmplY3RfcHJv cGVydHlfYWRkX2xpbmsob2JqLCAiaHZ4LWNvbnRleHRbKl0iLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVFlQRV9IRVhBR09OX0hWWF9DT05URVhULAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKE9iamVjdCAqKikmY3B1LT5odnhfY3R4W2ldLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcWRldl9wcm9wX2FsbG93X3NldF9saW5rX2JlZm9yZV9y ZWFsaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0JKX1BST1BfTElOS19T VFJPTkcpOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9j cHVfaGVscGVyLmMgYi90YXJnZXQvaGV4YWdvbi9jcHVfaGVscGVyLmMKaW5kZXggZWVhNWY2MGI0 NmMuLjA4MDNjZDE4NjUyIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9jcHVfaGVscGVyLmMK KysrIGIvdGFyZ2V0L2hleGFnb24vY3B1X2hlbHBlci5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5j bHVkZSAiaHcvY29yZS9ib2FyZHMuaCIKICNpbmNsdWRlICJody9oZXhhZ29uL2hleGFnb24uaCIK ICNpbmNsdWRlICJody9oZXhhZ29uL2hleGFnb25fZ2xvYmFscmVnLmgiCisjaW5jbHVkZSAiaHcv aGV4YWdvbi9oZXhhZ29uX2h2eF9jb250ZXh0LmgiCiAjaW5jbHVkZSAiaGV4X2ludGVycnVwdHMu aCIKICNpbmNsdWRlICJoZXhfbW11LmgiCiAjaW5jbHVkZSAic3lzdGVtL3J1bnN0YXRlLmgiCkBA IC0yNDYsNiArMjQ3LDY1IEBAIHZvaWQgaGV4YWdvbl9yZXN1bWVfdGhyZWFkcyhDUFVIZXhhZ29u U3RhdGUgKmN1cnJlbnRfZW52LCB1aW50MzJfdCBtYXNrKQogICAgIH0KIH0KIAorc3RhdGljIHVu c2lnbmVkIGhleGFnb25faHZ4X2NvbnRleHRfY291bnQoSGV4YWdvbkNQVSAqY3B1KQoreworICAg IHVuc2lnbmVkIG47CisKKyAgICBmb3IgKG4gPSAwOyBuIDwgSFZYX0NPTlRFWFRTX01BWDsgbisr KSB7CisgICAgICAgIGlmICghY3B1LT5odnhfY3R4W25dKSB7CisgICAgICAgICAgICBicmVhazsK KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbjsKK30KKworc3RhdGljIHVuc2lnbmVkIGhl eGFnb25faHZ4X2NvbnRleHRfaW5kZXgoSGV4YWdvbkNQVSAqY3B1LCB1aW50OF90IHhhKQorewor ICAgIHVuc2lnbmVkIG4gPSBoZXhhZ29uX2h2eF9jb250ZXh0X2NvdW50KGNwdSk7CisKKyAgICBp ZiAobiA9PSAwKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4geGEgJSBu OworfQorCisvKgorICogRGlhZ25vc3RpYyBvbmx5LiAgQ2FsbGVkIHNlcGFyYXRlbHkgZnJvbSBo ZXhhZ29uX2h2eF9zZWxlY3RfY29udGV4dCgpCisgKiBzbyBtaWdyYXRpb24gcG9zdF9sb2FkLCB3 aGVyZSBvdGhlciBDUFVzJyBlbnYtPmh2eCBtYXkgc3RpbGwgYmUgc3RhbGUsCisgKiBkb2Vzbid0 IHRyaXAgYSBmYWxzZSBwb3NpdGl2ZS4KKyAqLworc3RhdGljIHZvaWQgaGV4YWdvbl9odnhfY2hl Y2tfb3ZlcmNvbW1pdChDUFVIZXhhZ29uU3RhdGUgKmVudiwgdW5zaWduZWQgaWR4KQoreworICAg IENQVVN0YXRlICpjczsKKyAgICB1bnNpZ25lZCB1c2VycyA9IDA7CisKKyAgICBDUFVfRk9SRUFD SChjcykgeworICAgICAgICBDUFVIZXhhZ29uU3RhdGUgKm90aGVyID0gY3B1X2Vudihjcyk7CisK KyAgICAgICAgaWYgKG90aGVyLT5odnggPT0gZW52LT5odnggJiYKKyAgICAgICAgICAgIEdFVF9T U1JfRklFTEQoU1NSX1hFLCBvdGhlci0+dF9zcmVnW0hFWF9TUkVHX1NTUl0pKSB7CisgICAgICAg ICAgICB1c2VycysrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHVzZXJzID4gMSkgewor ICAgICAgICBxZW11X2xvZ19tYXNrKExPR19HVUVTVF9FUlJPUiwKKyAgICAgICAgICAgICAgICAg ICAgICAiSFZYIGNvbnRleHQgJXUgaXMgZW5hYmxlZCBmb3IgJXUgaGFyZHdhcmUgdGhyZWFkcyAi CisgICAgICAgICAgICAgICAgICAgICAgImF0IG9uY2UsIHdoaWNoIGlzIHVuZGVmaW5lZFxuIiwg aWR4LCB1c2Vycyk7CisgICAgfQorfQorCit1bnNpZ25lZCBoZXhhZ29uX2h2eF9zZWxlY3RfY29u dGV4dChDUFVIZXhhZ29uU3RhdGUgKmVudiwgdWludDMyX3Qgc3NyKQoreworICAgIEhleGFnb25D UFUgKmNwdSA9IGVudl9hcmNoY3B1KGVudik7CisgICAgdW5zaWduZWQgaWR4ID0gaGV4YWdvbl9o dnhfY29udGV4dF9pbmRleChjcHUsIEdFVF9TU1JfRklFTEQoU1NSX1hBLCBzc3IpKTsKKworICAg IGlmIChjcHUtPmh2eF9jdHhbMF0pIHsKKyAgICAgICAgZW52LT5odnggPSAmY3B1LT5odnhfY3R4 W2lkeF0tPnJlZ3M7CisgICAgfQorICAgIHJldHVybiBpZHg7Cit9CisKIHZvaWQgaGV4YWdvbl9t b2RpZnlfc3NyKENQVUhleGFnb25TdGF0ZSAqZW52LCB1aW50MzJfdCBuZXcsIHVpbnQzMl90IG9s ZCkKIHsKICAgICBib29sIG9sZF9FWCwgb2xkX1VNLCBvbGRfR00sIG9sZF9JRTsKQEAgLTI2OSw2 ICszMjksMTggQEAgdm9pZCBoZXhhZ29uX21vZGlmeV9zc3IoQ1BVSGV4YWdvblN0YXRlICplbnYs IHVpbnQzMl90IG5ldywgdWludDMyX3Qgb2xkKQogICAgICAgICBoZXhfbW11X21vZGVfY2hhbmdl KGVudik7CiAgICAgfQogCisgICAgYm9vbCB4YV9jaGFuZ2VkID0gR0VUX1NTUl9GSUVMRChTU1Jf WEEsIG5ldykgIT0gR0VUX1NTUl9GSUVMRChTU1JfWEEsIG9sZCk7CisgICAgYm9vbCB4ZV9jaGFu Z2VkID0gR0VUX1NTUl9GSUVMRChTU1JfWEUsIG5ldykgIT0gR0VUX1NTUl9GSUVMRChTU1JfWEUs IG9sZCk7CisKKyAgICBpZiAoeGFfY2hhbmdlZCB8fCB4ZV9jaGFuZ2VkKSB7CisgICAgICAgIHVu c2lnbmVkIGlkeCA9IHhhX2NoYW5nZWQKKyAgICAgICAgICAgID8gaGV4YWdvbl9odnhfc2VsZWN0 X2NvbnRleHQoZW52LCBuZXcpCisgICAgICAgICAgICA6IGhleGFnb25faHZ4X2NvbnRleHRfaW5k ZXgoZW52X2FyY2hjcHUoZW52KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHRVRfU1NSX0ZJRUxEKFNTUl9YQSwgbmV3KSk7CisKKyAgICAgICAgaGV4YWdvbl9odnhf Y2hlY2tfb3ZlcmNvbW1pdChlbnYsIGlkeCk7CisgICAgfQorCiAgICAgb2xkX2FzaWQgPSBHRVRf U1NSX0ZJRUxEKFNTUl9BU0lELCBvbGQpOwogICAgIG5ld19hc2lkID0gR0VUX1NTUl9GSUVMRChT U1JfQVNJRCwgbmV3KTsKICAgICBpZiAobmV3X2FzaWQgIT0gb2xkX2FzaWQpIHsKZGlmZiAtLWdp dCBhL3RhcmdldC9oZXhhZ29uL2dkYnN0dWIuYyBiL3RhcmdldC9oZXhhZ29uL2dkYnN0dWIuYwpp bmRleCBiOTg1NmNmYzk3OC4uNzZhYjUyMzVmNmUgMTAwNjQ0Ci0tLSBhL3RhcmdldC9oZXhhZ29u L2dkYnN0dWIuYworKysgYi90YXJnZXQvaGV4YWdvbi9nZGJzdHViLmMKQEAgLTgwLDggKzgwLDgg QEAgc3RhdGljIGludCBnZGJfZ2V0X3ZyZWcoQ1BVSGV4YWdvblN0YXRlICplbnYsIEdCeXRlQXJy YXkgKm1lbV9idWYsIGludCBuKQogewogICAgIGludCB0b3RhbCA9IDA7CiAgICAgaW50IGk7Ci0g ICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZW52LT5WUmVnc1tuXS51dyk7IGkrKykgewot ICAgICAgICB0b3RhbCArPSBnZGJfZ2V0X3JlZzMyKG1lbV9idWYsIGVudi0+VlJlZ3Nbbl0udXdb aV0pOworICAgIGZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhleF9odngoZW52KS0+VlJlZ3Nb bl0udXcpOyBpKyspIHsKKyAgICAgICAgdG90YWwgKz0gZ2RiX2dldF9yZWczMihtZW1fYnVmLCBo ZXhfaHZ4KGVudiktPlZSZWdzW25dLnV3W2ldKTsKICAgICB9CiAgICAgcmV0dXJuIHRvdGFsOwog fQpAQCAtOTAsOCArOTAsOCBAQCBzdGF0aWMgaW50IGdkYl9nZXRfcXJlZyhDUFVIZXhhZ29uU3Rh dGUgKmVudiwgR0J5dGVBcnJheSAqbWVtX2J1ZiwgaW50IG4pCiB7CiAgICAgaW50IHRvdGFsID0g MDsKICAgICBpbnQgaTsKLSAgICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShlbnYtPlFSZWdz W25dLnV3KTsgaSsrKSB7Ci0gICAgICAgIHRvdGFsICs9IGdkYl9nZXRfcmVnMzIobWVtX2J1Ziwg ZW52LT5RUmVnc1tuXS51d1tpXSk7CisgICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGV4 X2h2eChlbnYpLT5RUmVnc1tuXS51dyk7IGkrKykgeworICAgICAgICB0b3RhbCArPSBnZGJfZ2V0 X3JlZzMyKG1lbV9idWYsIGhleF9odngoZW52KS0+UVJlZ3Nbbl0udXdbaV0pOwogICAgIH0KICAg ICByZXR1cm4gdG90YWw7CiB9CkBAIC0xMTYsOCArMTE2LDggQEAgaW50IGhleGFnb25faHZ4X2dk Yl9yZWFkX3JlZ2lzdGVyKENQVVN0YXRlICpjcywgR0J5dGVBcnJheSAqbWVtX2J1ZiwgaW50IG4p CiBzdGF0aWMgaW50IGdkYl9wdXRfdnJlZyhDUFVIZXhhZ29uU3RhdGUgKmVudiwgdWludDhfdCAq bWVtX2J1ZiwgaW50IG4pCiB7CiAgICAgaW50IGk7Ci0gICAgZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUoZW52LT5WUmVnc1tuXS51dyk7IGkrKykgewotICAgICAgICBlbnYtPlZSZWdzW25dLnV3 W2ldID0gbGRsX2xlX3AobWVtX2J1Zik7CisgICAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo aGV4X2h2eChlbnYpLT5WUmVnc1tuXS51dyk7IGkrKykgeworICAgICAgICBoZXhfaHZ4KGVudikt PlZSZWdzW25dLnV3W2ldID0gbGRsX2xlX3AobWVtX2J1Zik7CiAgICAgICAgIG1lbV9idWYgKz0g NDsKICAgICB9CiAgICAgcmV0dXJuIE1BWF9WRUNfU0laRV9CWVRFUzsKQEAgLTEyNiw4ICsxMjYs OCBAQCBzdGF0aWMgaW50IGdkYl9wdXRfdnJlZyhDUFVIZXhhZ29uU3RhdGUgKmVudiwgdWludDhf dCAqbWVtX2J1ZiwgaW50IG4pCiBzdGF0aWMgaW50IGdkYl9wdXRfcXJlZyhDUFVIZXhhZ29uU3Rh dGUgKmVudiwgdWludDhfdCAqbWVtX2J1ZiwgaW50IG4pCiB7CiAgICAgaW50IGk7Ci0gICAgZm9y IChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZW52LT5RUmVnc1tuXS51dyk7IGkrKykgewotICAgICAg ICBlbnYtPlFSZWdzW25dLnV3W2ldID0gbGRsX2xlX3AobWVtX2J1Zik7CisgICAgZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUoaGV4X2h2eChlbnYpLT5RUmVnc1tuXS51dyk7IGkrKykgeworICAg ICAgICBoZXhfaHZ4KGVudiktPlFSZWdzW25dLnV3W2ldID0gbGRsX2xlX3AobWVtX2J1Zik7CiAg ICAgICAgIG1lbV9idWYgKz0gNDsKICAgICB9CiAgICAgcmV0dXJuIE1BWF9WRUNfU0laRV9CWVRF UyAvIDg7CmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9nZW5wdHIuYyBiL3RhcmdldC9oZXhh Z29uL2dlbnB0ci5jCmluZGV4IDRlOWE5NjcwZDU0Li5lMTMzMGQ4ZTBiMiAxMDA2NDQKLS0tIGEv dGFyZ2V0L2hleGFnb24vZ2VucHRyLmMKKysrIGIvdGFyZ2V0L2hleGFnb24vZ2VucHRyLmMKQEAg LTU2LDggKzU2LDEwIEBAIHN0YXRpYyB2b2lkIGdlbl9zYWJzZGlmZl92ZWModW5zaWduZWQgdmVj ZSwgVENHdl92ZWMgZCwgVENHdl92ZWMgYSwgVENHdl92ZWMgYikKICAgICB0Y2dfZ2VuX3N1Yl92 ZWModmVjZSwgZCwgZCwgdCk7CiB9CiAKLXZvaWQgZ2VuX2d2ZWNfc2Fic2RpZmYodW5zaWduZWQg dmVjZSwgdWludDMyX3QgZG9mcywgdWludDMyX3QgYW9mcywKLSAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgYm9mcywgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KQordm9pZCBn ZW5fZ3ZlY19zYWJzZGlmZl92YXIodW5zaWduZWQgdmVjZSwgVENHdl9wdHIgZGJhc2UsIHVpbnQz Ml90IGRvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBhYmFzZSwgdWlu dDMyX3QgYW9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIGJiYXNlLCB1 aW50MzJfdCBib2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3Byc3os IHVpbnQzMl90IG1heHN6KQogewogICAgIHN0YXRpYyBjb25zdCBUQ0dPcGNvZGUgdmVjb3BfbGlz dFtdID0gewogICAgICAgICBJTkRFWF9vcF9zdWJfdmVjLCBJTkRFWF9vcF9zbWluX3ZlYywgSU5E RVhfb3Bfc21heF92ZWMsIDAKQEAgLTc1LDcgKzc3LDE1IEBAIHZvaWQgZ2VuX2d2ZWNfc2Fic2Rp ZmYodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWludDMyX3QgYW9mcywKICAgICB9Owog CiAgICAgdGNnX2RlYnVnX2Fzc2VydCh2ZWNlID09IE1PXzE2IHx8IHZlY2UgPT0gTU9fMzIpOwot ICAgIHRjZ19nZW5fZ3ZlY18zKGRvZnMsIGFvZnMsIGJvZnMsIG9wcnN6LCBtYXhzeiwgJm9wc1t2 ZWNlXSk7CisgICAgdGNnX2dlbl9ndmVjXzNfdmFyKGRiYXNlLCBkb2ZzLCBhYmFzZSwgYW9mcywg YmJhc2UsIGJvZnMsCisgICAgICAgICAgICAgICAgICAgICAgIG9wcnN6LCBtYXhzeiwgJm9wc1t2 ZWNlXSk7Cit9CisKK3ZvaWQgZ2VuX2d2ZWNfc2Fic2RpZmYodW5zaWduZWQgdmVjZSwgdWludDMy X3QgZG9mcywgdWludDMyX3QgYW9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg Ym9mcywgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KQoreworICAgIGdlbl9ndmVjX3Nh YnNkaWZmX3Zhcih2ZWNlLCB0Y2dfZW52LCBkb2ZzLCB0Y2dfZW52LCBhb2ZzLCB0Y2dfZW52LCBi b2ZzLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9wcnN6LCBtYXhzeik7CiB9CiAKIHN0YXRp YyB2b2lkIGdlbl91YWJzZGlmZl92ZWModW5zaWduZWQgdmVjZSwgVENHdl92ZWMgZCwgVENHdl92 ZWMgYSwgVENHdl92ZWMgYikKQEAgLTg3LDggKzk3LDEwIEBAIHN0YXRpYyB2b2lkIGdlbl91YWJz ZGlmZl92ZWModW5zaWduZWQgdmVjZSwgVENHdl92ZWMgZCwgVENHdl92ZWMgYSwgVENHdl92ZWMg YikKICAgICB0Y2dfZ2VuX3N1Yl92ZWModmVjZSwgZCwgZCwgdCk7CiB9CiAKLXZvaWQgZ2VuX2d2 ZWNfdWFic2RpZmYodW5zaWduZWQgdmVjZSwgdWludDMyX3QgZG9mcywgdWludDMyX3QgYW9mcywK LSAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYm9mcywgdWludDMyX3Qgb3Byc3osIHVp bnQzMl90IG1heHN6KQordm9pZCBnZW5fZ3ZlY191YWJzZGlmZl92YXIodW5zaWduZWQgdmVjZSwg VENHdl9wdHIgZGJhc2UsIHVpbnQzMl90IGRvZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBUQ0d2X3B0ciBhYmFzZSwgdWludDMyX3QgYW9mcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRDR3ZfcHRyIGJiYXNlLCB1aW50MzJfdCBib2ZzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3Qgb3Byc3osIHVpbnQzMl90IG1heHN6KQogewogICAgIHN0YXRpYyBjb25z dCBUQ0dPcGNvZGUgdmVjb3BfbGlzdFtdID0gewogICAgICAgICBJTkRFWF9vcF9zdWJfdmVjLCBJ TkRFWF9vcF91bWluX3ZlYywgSU5ERVhfb3BfdW1heF92ZWMsIDAKQEAgLTEwNSw3ICsxMTcsMTUg QEAgdm9pZCBnZW5fZ3ZlY191YWJzZGlmZih1bnNpZ25lZCB2ZWNlLCB1aW50MzJfdCBkb2ZzLCB1 aW50MzJfdCBhb2ZzLAogICAgIH07CiAKICAgICB0Y2dfZGVidWdfYXNzZXJ0KHZlY2UgPT0gTU9f OCB8fCB2ZWNlID09IE1PXzE2KTsKLSAgICB0Y2dfZ2VuX2d2ZWNfMyhkb2ZzLCBhb2ZzLCBib2Zz LCBvcHJzeiwgbWF4c3osICZvcHNbdmVjZV0pOworICAgIHRjZ19nZW5fZ3ZlY18zX3ZhcihkYmFz ZSwgZG9mcywgYWJhc2UsIGFvZnMsIGJiYXNlLCBib2ZzLAorICAgICAgICAgICAgICAgICAgICAg ICBvcHJzeiwgbWF4c3osICZvcHNbdmVjZV0pOworfQorCit2b2lkIGdlbl9ndmVjX3VhYnNkaWZm KHVuc2lnbmVkIHZlY2UsIHVpbnQzMl90IGRvZnMsIHVpbnQzMl90IGFvZnMsCisgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IGJvZnMsIHVpbnQzMl90IG9wcnN6LCB1aW50MzJfdCBtYXhz eikKK3sKKyAgICBnZW5fZ3ZlY191YWJzZGlmZl92YXIodmVjZSwgdGNnX2VudiwgZG9mcywgdGNn X2VudiwgYW9mcywgdGNnX2VudiwgYm9mcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBvcHJz eiwgbWF4c3opOwogfQogCiBUQ0d2IGdlbl9yZWFkX3JlZyhUQ0d2IHJlc3VsdCwgaW50IG51bSkK QEAgLTE0MzUsNTQgKzE0NTUsNTYgQEAgc3RhdGljIHZvaWQgZ2VuX2Fzcl9yX3N2d190cnVuKERp c2FzQ29udGV4dCAqY3R4LCBUQ0d2IFJkViwKICAgICBnZW5fc2V0X2xhYmVsKGRvbmUpOwogfQog Ci1zdGF0aWMgaW50cHRyX3QgdnJlZ19zcmNfb2ZmKERpc2FzQ29udGV4dCAqY3R4LCBpbnQgbnVt KQorc3RhdGljIGludHB0cl90IHZyZWdfc3JjX29mZihEaXNhc0NvbnRleHQgKmN0eCwgaW50IG51 bSwgVENHdl9wdHIgKmJhc2UpCiB7Ci0gICAgaW50cHRyX3Qgb2Zmc2V0ID0gb2Zmc2V0b2YoQ1BV SGV4YWdvblN0YXRlLCBWUmVnc1tudW1dKTsKKyAgICBpbnRwdHJfdCBvZmZzZXQgPSBIRVhfSFZY X09GRlNFVChWUmVnc1tudW1dKTsKIAorICAgICpiYXNlID0gaGV4X2h2eF9wdHI7CiAgICAgaWYg KHRlc3RfYml0KG51bSwgY3R4LT52cmVnc19zZWxlY3QpKSB7Ci0gICAgICAgIG9mZnNldCA9IGN0 eF9mdXR1cmVfdnJlZ19vZmYoY3R4LCBudW0sIDEsIGZhbHNlKTsKKyAgICAgICAgb2Zmc2V0ID0g Y3R4X2Z1dHVyZV92cmVnX29mZihjdHgsIG51bSwgMSwgZmFsc2UsIGJhc2UpOwogICAgIH0KICAg ICBpZiAodGVzdF9iaXQobnVtLCBjdHgtPnZyZWdzX3VwZGF0ZWRfdG1wKSkgewotICAgICAgICBv ZmZzZXQgPSBjdHhfdG1wX3ZyZWdfb2ZmKGN0eCwgbnVtLCAxLCBmYWxzZSk7CisgICAgICAgIG9m ZnNldCA9IGN0eF90bXBfdnJlZ19vZmYoY3R4LCBudW0sIDEsIGZhbHNlLCBiYXNlKTsKICAgICB9 CiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIAotc3RhdGljIHZvaWQgZ2VuX3ZyZWdfd3JpdGUoRGlz YXNDb250ZXh0ICpjdHgsIGludHB0cl90IHNyY29mZiwgaW50IG51bSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBWUmVnV3JpdGVUeXBlIHR5cGUpCitzdGF0aWMgdm9pZCBnZW5fdnJl Z193cml0ZShEaXNhc0NvbnRleHQgKmN0eCwgVENHdl9wdHIgc3JjYmFzZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludHB0cl90IHNyY29mZiwgaW50IG51bSwgVlJlZ1dyaXRlVHlwZSB0 eXBlKQogeworICAgIFRDR3ZfcHRyIGRzdGJhc2U7CiAgICAgaW50cHRyX3QgZHN0b2ZmOwogCiAg ICAgaWYgKHR5cGUgIT0gRVhUX1RNUCkgewotICAgICAgICBkc3RvZmYgPSBjdHhfZnV0dXJlX3Zy ZWdfb2ZmKGN0eCwgbnVtLCAxLCB0cnVlKTsKLSAgICAgICAgdGNnX2dlbl9ndmVjX21vdihNT182 NCwgZHN0b2ZmLCBzcmNvZmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVj dG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7CisgICAgICAgIGRzdG9mZiA9IGN0eF9mdXR1cmVfdnJl Z19vZmYoY3R4LCBudW0sIDEsIHRydWUsICZkc3RiYXNlKTsKICAgICB9IGVsc2UgewotICAgICAg ICBkc3RvZmYgPSBjdHhfdG1wX3ZyZWdfb2ZmKGN0eCwgbnVtLCAxLCBmYWxzZSk7Ci0gICAgICAg IHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQsIGRzdG9mZiwgc3Jjb2ZmLAotICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOworICAgICAgICBk c3RvZmYgPSBjdHhfdG1wX3ZyZWdfb2ZmKGN0eCwgbnVtLCAxLCBmYWxzZSwgJmRzdGJhc2UpOwog ICAgIH0KKyAgICB0Y2dfZ2VuX2d2ZWNfbW92X3ZhcihNT182NCwgZHN0YmFzZSwgZHN0b2ZmLCBz cmNiYXNlLCBzcmNvZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9y KSwgc2l6ZW9mKE1NVmVjdG9yKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGdlbl92cmVnX3dyaXRlX3Bh aXIoRGlzYXNDb250ZXh0ICpjdHgsIGludHB0cl90IHNyY29mZiwgaW50IG51bSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZSZWdXcml0ZVR5cGUgdHlwZSkKK3N0YXRpYyB2 b2lkIGdlbl92cmVnX3dyaXRlX3BhaXIoRGlzYXNDb250ZXh0ICpjdHgsIFRDR3ZfcHRyIHNyY2Jh c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludHB0cl90IHNyY29mZiwgaW50 IG51bSwgVlJlZ1dyaXRlVHlwZSB0eXBlKQogewotICAgIGdlbl92cmVnX3dyaXRlKGN0eCwgc3Jj b2ZmLCBudW0gXiAwLCB0eXBlKTsKKyAgICBnZW5fdnJlZ193cml0ZShjdHgsIHNyY2Jhc2UsIHNy Y29mZiwgbnVtIF4gMCwgdHlwZSk7CiAgICAgc3Jjb2ZmICs9IHNpemVvZihNTVZlY3Rvcik7Ci0g ICAgZ2VuX3ZyZWdfd3JpdGUoY3R4LCBzcmNvZmYsIG51bSBeIDEsIHR5cGUpOworICAgIGdlbl92 cmVnX3dyaXRlKGN0eCwgc3JjYmFzZSwgc3Jjb2ZmLCBudW0gXiAxLCB0eXBlKTsKIH0KIAotc3Rh dGljIGludHB0cl90IGdldF9yZXN1bHRfcXJlZyhEaXNhc0NvbnRleHQgKmN0eCwgaW50IHFudW0p CitzdGF0aWMgaW50cHRyX3QgZ2V0X3Jlc3VsdF9xcmVnKERpc2FzQ29udGV4dCAqY3R4LCBpbnQg cW51bSwgVENHdl9wdHIgKmJhc2UpCiB7CiAgICAgaWYgKGN0eC0+bmVlZF9jb21taXQpIHsKKyAg ICAgICAgKmJhc2UgPSB0Y2dfZW52OwogICAgICAgICByZXR1cm4gIG9mZnNldG9mKENQVUhleGFn b25TdGF0ZSwgZnV0dXJlX1FSZWdzW3FudW1dKTsKICAgICB9IGVsc2UgewotICAgICAgICByZXR1 cm4gIG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgUVJlZ3NbcW51bV0pOworICAgICAgICAqYmFz ZSA9IGhleF9odnhfcHRyOworICAgICAgICByZXR1cm4gSEVYX0hWWF9PRkZTRVQoUVJlZ3NbcW51 bV0pOwogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgZ2VuX3ZyZWdfbG9hZChEaXNhc0NvbnRleHQg KmN0eCwgaW50cHRyX3QgZHN0b2ZmLCBUQ0d2IHNyYywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCBhbGlnbmVkKQorc3RhdGljIHZvaWQgZ2VuX3ZyZWdfbG9hZChEaXNhc0NvbnRleHQg KmN0eCwgVENHdl9wdHIgZHN0YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50cHRy X3QgZHN0b2ZmLCBUQ0d2IHNyYywgYm9vbCBhbGlnbmVkKQogewogICAgIFRDR3ZfaTY0IHRtcCA9 IHRjZ190ZW1wX25ld19pNjQoKTsKICAgICBpZiAoYWxpZ25lZCkgewpAQCAtMTQ5MSwxMiArMTUx MywxMiBAQCBzdGF0aWMgdm9pZCBnZW5fdnJlZ19sb2FkKERpc2FzQ29udGV4dCAqY3R4LCBpbnRw dHJfdCBkc3RvZmYsIFRDR3Ygc3JjLAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZW9mKE1N VmVjdG9yKSAvIDg7IGkrKykgewogICAgICAgICB0Y2dfZ2VuX3FlbXVfbGRfaTY0KHRtcCwgc3Jj LCBjdHgtPm1lbV9pZHgsIE1PX0xFIHwgTU9fVVEpOwogICAgICAgICB0Y2dfZ2VuX2FkZGlfdGwo c3JjLCBzcmMsIDgpOwotICAgICAgICB0Y2dfZ2VuX3N0X2k2NCh0bXAsIHRjZ19lbnYsIGRzdG9m ZiArIGkgKiA4KTsKKyAgICAgICAgdGNnX2dlbl9zdF9pNjQodG1wLCBkc3RiYXNlLCBkc3RvZmYg KyBpICogOCk7CiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBnZW5fdnJlZ19zdG9yZShEaXNhc0Nv bnRleHQgKmN0eCwgVENHdiBFQSwgaW50cHRyX3Qgc3Jjb2ZmLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHNsb3QsIGJvb2wgYWxpZ25lZCkKK3N0YXRpYyB2b2lkIGdlbl92cmVnX3N0 b3JlKERpc2FzQ29udGV4dCAqY3R4LCBUQ0d2IEVBLCBUQ0d2X3B0ciBzcmNiYXNlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50cHRyX3Qgc3Jjb2ZmLCBpbnQgc2xvdCwgYm9vbCBhbGln bmVkKQogewogICAgIGludHB0cl90IGRzdG9mZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwg dnN0b3JlW3Nsb3RdLmRhdGEpOwogICAgIGludHB0cl90IG1hc2tvZmYgPSBvZmZzZXRvZihDUFVI ZXhhZ29uU3RhdGUsIHZzdG9yZVtzbG90XS5tYXNrKTsKQEAgLTE1MTcsMTMgKzE1MzksMTYgQEAg c3RhdGljIHZvaWQgZ2VuX3ZyZWdfc3RvcmUoRGlzYXNDb250ZXh0ICpjdHgsIFRDR3YgRUEsIGlu dHB0cl90IHNyY29mZiwKICAgICB0Y2dfZ2VuX21vdmlfdGwoaGV4X3ZzdG9yZV9zaXplW3Nsb3Rd LCBzaXplb2YoTU1WZWN0b3IpKTsKIAogICAgIC8qIENvcHkgdGhlIGRhdGEgdG8gdGhlIHZzdG9y ZSBidWZmZXIgKi8KLSAgICB0Y2dfZ2VuX2d2ZWNfbW92KE1PXzY0LCBkc3RvZmYsIHNyY29mZiwg c2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7CisgICAgdGNnX2dlbl9ndmVjX21v dl92YXIoTU9fNjQsIHRjZ19lbnYsIGRzdG9mZiwgc3JjYmFzZSwgc3Jjb2ZmLAorICAgICAgICAg ICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOwogICAg IC8qIFNldCB0aGUgbWFzayB0byBhbGwgMSdzICovCiAgICAgdGNnX2dlbl9ndmVjX2R1cF9pbW0o TU9fNjQsIG1hc2tvZmYsIHNpemVvZihNTVFSZWcpLCBzaXplb2YoTU1RUmVnKSwgfjBMTCk7CiB9 CiAKLXN0YXRpYyB2b2lkIGdlbl92cmVnX21hc2tlZF9zdG9yZShEaXNhc0NvbnRleHQgKmN0eCwg VENHdiBFQSwgaW50cHRyX3Qgc3Jjb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludHB0cl90IGJpdHNvZmYsIGludCBzbG90LCBib29sIGludmVydCkKK3N0YXRpYyB2b2lk IGdlbl92cmVnX21hc2tlZF9zdG9yZShEaXNhc0NvbnRleHQgKmN0eCwgVENHdiBFQSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciBzcmNiYXNlLCBpbnRwdHJfdCBz cmNvZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgYml0c2Jh c2UsIGludHB0cl90IGJpdHNvZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IHNsb3QsIGJvb2wgaW52ZXJ0KQogewogICAgIGludHB0cl90IGRzdG9mZiA9IG9mZnNldG9m KENQVUhleGFnb25TdGF0ZSwgdnN0b3JlW3Nsb3RdLmRhdGEpOwogICAgIGludHB0cl90IG1hc2tv ZmYgPSBvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUsIHZzdG9yZVtzbG90XS5tYXNrKTsKQEAgLTE1 MzQsMTYgKzE1NTksMTkgQEAgc3RhdGljIHZvaWQgZ2VuX3ZyZWdfbWFza2VkX3N0b3JlKERpc2Fz Q29udGV4dCAqY3R4LCBUQ0d2IEVBLCBpbnRwdHJfdCBzcmNvZmYsCiAgICAgdGNnX2dlbl9tb3Zp X3RsKGhleF92c3RvcmVfc2l6ZVtzbG90XSwgc2l6ZW9mKE1NVmVjdG9yKSk7CiAKICAgICAvKiBD b3B5IHRoZSBkYXRhIHRvIHRoZSB2c3RvcmUgYnVmZmVyICovCi0gICAgdGNnX2dlbl9ndmVjX21v dihNT182NCwgZHN0b2ZmLCBzcmNvZmYsIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3Rv cikpOworICAgIHRjZ19nZW5fZ3ZlY19tb3ZfdmFyKE1PXzY0LCB0Y2dfZW52LCBkc3RvZmYsIHNy Y2Jhc2UsIHNyY29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3Ip LCBzaXplb2YoTU1WZWN0b3IpKTsKICAgICAvKiBDb3B5IHRoZSBtYXNrICovCi0gICAgdGNnX2dl bl9ndmVjX21vdihNT182NCwgbWFza29mZiwgYml0c29mZiwgc2l6ZW9mKE1NUVJlZyksIHNpemVv ZihNTVFSZWcpKTsKKyAgICB0Y2dfZ2VuX2d2ZWNfbW92X3ZhcihNT182NCwgdGNnX2VudiwgbWFz a29mZiwgYml0c2Jhc2UsIGJpdHNvZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KE1NUVJlZyksIHNpemVvZihNTVFSZWcpKTsKICAgICBpZiAoaW52ZXJ0KSB7CiAgICAgICAgIHRj Z19nZW5fZ3ZlY19ub3QoTU9fNjQsIG1hc2tvZmYsIG1hc2tvZmYsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKE1NUVJlZyksIHNpemVvZihNTVFSZWcpKTsKICAgICB9CiB9CiAKLXN0 YXRpYyB2b2lkIHZlY190b19xdmVjKHNpemVfdCBzaXplLCBpbnRwdHJfdCBkc3RvZmYsIGludHB0 cl90IHNyY29mZikKK3N0YXRpYyB2b2lkIHZlY190b19xdmVjKHNpemVfdCBzaXplLCBUQ0d2X3B0 ciBkc3RiYXNlLCBpbnRwdHJfdCBkc3RvZmYsCisgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2 X3B0ciBzcmNiYXNlLCBpbnRwdHJfdCBzcmNvZmYpCiB7CiAgICAgVENHdl9pNjQgdG1wID0gdGNn X3RlbXBfbmV3X2k2NCgpOwogICAgIFRDR3ZfaTY0IHdvcmQgPSB0Y2dfdGVtcF9uZXdfaTY0KCk7 CkBAIC0xNTUzLDcgKzE1ODEsNyBAQCBzdGF0aWMgdm9pZCB2ZWNfdG9fcXZlYyhzaXplX3Qgc2l6 ZSwgaW50cHRyX3QgZHN0b2ZmLCBpbnRwdHJfdCBzcmNvZmYpCiAgICAgVENHdl9pNjQgb25lcyA9 IHRjZ19jb25zdGFudF9pNjQofjApOwogCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplb2Yo TU1WZWN0b3IpIC8gODsgaSsrKSB7Ci0gICAgICAgIHRjZ19nZW5fbGRfaTY0KHRtcCwgdGNnX2Vu diwgc3Jjb2ZmICsgaSAqIDgpOworICAgICAgICB0Y2dfZ2VuX2xkX2k2NCh0bXAsIHNyY2Jhc2Us IHNyY29mZiArIGkgKiA4KTsKICAgICAgICAgdGNnX2dlbl9tb3ZpX2k2NChtYXNrLCAwKTsKIAog ICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDg7IGogKz0gc2l6ZSkgewpAQCAtMTU2Miw3ICsx NTkwLDcgQEAgc3RhdGljIHZvaWQgdmVjX3RvX3F2ZWMoc2l6ZV90IHNpemUsIGludHB0cl90IGRz dG9mZiwgaW50cHRyX3Qgc3Jjb2ZmKQogICAgICAgICAgICAgdGNnX2dlbl9kZXBvc2l0X2k2NCht YXNrLCBtYXNrLCBiaXRzLCBqLCBzaXplKTsKICAgICAgICAgfQogCi0gICAgICAgIHRjZ19nZW5f c3Q4X2k2NChtYXNrLCB0Y2dfZW52LCBkc3RvZmYgKyBpKTsKKyAgICAgICAgdGNnX2dlbl9zdDhf aTY0KG1hc2ssIGRzdGJhc2UsIGRzdG9mZiArIGkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv dGFyZ2V0L2hleGFnb24vbWFjaGluZS5jIGIvdGFyZ2V0L2hleGFnb24vbWFjaGluZS5jCmluZGV4 IGJmNDY0NmY0YThiLi4xNzliNmY1M2EyYSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2hleGFnb24vbWFj aGluZS5jCisrKyBiL3RhcmdldC9oZXhhZ29uL21hY2hpbmUuYwpAQCAtNywxMSArNywyMyBAQAog I2luY2x1ZGUgInFlbXUvb3NkZXAuaCIKICNpbmNsdWRlICJtaWdyYXRpb24vdm1zdGF0ZS5oIgog I2luY2x1ZGUgImNwdS5oIgorI2luY2x1ZGUgImNwdV9oZWxwZXIuaCIKKworc3RhdGljIGludCBo ZXhhZ29uX2NwdV9wb3N0X2xvYWQodm9pZCAqb3BhcXVlLCBpbnQgdmVyc2lvbl9pZCkKK3sKKyAg ICBIZXhhZ29uQ1BVICpjcHUgPSBvcGFxdWU7CisgICAgQ1BVSGV4YWdvblN0YXRlICplbnYgPSAm Y3B1LT5lbnY7CisKKyAgICBoZXhhZ29uX2h2eF9zZWxlY3RfY29udGV4dChlbnYsIGVudi0+dF9z cmVnW0hFWF9TUkVHX1NTUl0pOworCisgICAgcmV0dXJuIDA7Cit9CiAKIGNvbnN0IFZNU3RhdGVE ZXNjcmlwdGlvbiB2bXN0YXRlX2hleGFnb25fY3B1ID0gewogICAgIC5uYW1lID0gImNwdSIsCiAg ICAgLnZlcnNpb25faWQgPSAyLAogICAgIC5taW5pbXVtX3ZlcnNpb25faWQgPSAyLAorICAgIC5w b3N0X2xvYWQgPSBoZXhhZ29uX2NwdV9wb3N0X2xvYWQsCiAgICAgLmZpZWxkcyA9IChjb25zdCBW TVN0YXRlRmllbGRbXSkgewogICAgICAgICBWTVNUQVRFX1VJTlQzMl9BUlJBWShlbnYuZ3ByLCBI ZXhhZ29uQ1BVLCBUT1RBTF9QRVJfVEhSRUFEX1JFR1MpLAogICAgICAgICBWTVNUQVRFX1VJTlQz Ml9BUlJBWShlbnYucHJlZCwgSGV4YWdvbkNQVSwgTlVNX1BSRUdTKSwKZGlmZiAtLWdpdCBhL3Rh cmdldC9oZXhhZ29uL29wX2hlbHBlci5jIGIvdGFyZ2V0L2hleGFnb24vb3BfaGVscGVyLmMKaW5k ZXggMGQwOGFjNzczNjEuLjQ3Yzc5NTNiOTJlIDEwMDY0NAotLS0gYS90YXJnZXQvaGV4YWdvbi9v cF9oZWxwZXIuYworKysgYi90YXJnZXQvaGV4YWdvbi9vcF9oZWxwZXIuYwpAQCAtMTQwOCw3ICsx NDA4LDggQEAgdm9pZCBIRUxQRVIodmhpc3QpKENQVUhleGFnb25TdGF0ZSAqZW52KQogICAgICAg ICAgICAgdW5zaWduZWQgY2hhciByZWdubyA9IHZhbHVlID4+IDM7CiAgICAgICAgICAgICB1bnNp Z25lZCBjaGFyIGVsZW1lbnQgPSB2YWx1ZSAmIDc7CiAKLSAgICAgICAgICAgIGVudi0+VlJlZ3Nb cmVnbm9dLnVoWyhzaXplb2YoTU1WZWN0b3IpIC8gMTYpICogbGFuZSArIGVsZW1lbnRdKys7Cisg ICAgICAgICAgICBoZXhfaHZ4KGVudiktPlZSZWdzW3JlZ25vXQorICAgICAgICAgICAgICAgIC51 aFsoc2l6ZW9mKE1NVmVjdG9yKSAvIDE2KSAqIGxhbmUgKyBlbGVtZW50XSsrOwogICAgICAgICB9 CiAgICAgfQogfQpAQCAtMTQyNCw3ICsxNDI1LDcgQEAgdm9pZCBIRUxQRVIodmhpc3RxKShDUFVI ZXhhZ29uU3RhdGUgKmVudikKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgZWxlbWVudCA9IHZh bHVlICYgNzsKIAogICAgICAgICAgICAgaWYgKGZHRVRRQklUKGVudi0+cXRtcCwgc2l6ZW9mKE1N VmVjdG9yKSAvIDggKiBsYW5lICsgaSkpIHsKLSAgICAgICAgICAgICAgICBlbnYtPlZSZWdzW3Jl Z25vXS51aFsKKyAgICAgICAgICAgICAgICBoZXhfaHZ4KGVudiktPlZSZWdzW3JlZ25vXS51aFsK ICAgICAgICAgICAgICAgICAgICAgKHNpemVvZihNTVZlY3RvcikgLyAxNikgKiBsYW5lICsgZWxl bWVudF0rKzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTQ0MSw4ICsxNDQyLDggQEAg dm9pZCBIRUxQRVIodndoaXN0MjU2KShDUFVIZXhhZ29uU3RhdGUgKmVudikKICAgICAgICAgdW5z aWduZWQgaW50IHZpbmRleCA9IChidWNrZXQgPj4gMykgJiAweDFGOwogICAgICAgICB1bnNpZ25l ZCBpbnQgZWxpbmRleCA9ICgoaSA+PiAwKSAmICh+NykpIHwgKChidWNrZXQgPj4gMCkgJiA3KTsK IAotICAgICAgICBlbnYtPlZSZWdzW3ZpbmRleF0udWhbZWxpbmRleF0gPQotICAgICAgICAgICAg ZW52LT5WUmVnc1t2aW5kZXhdLnVoW2VsaW5kZXhdICsgd2VpZ2h0OworICAgICAgICBoZXhfaHZ4 KGVudiktPlZSZWdzW3ZpbmRleF0udWhbZWxpbmRleF0gPQorICAgICAgICAgICAgaGV4X2h2eChl bnYpLT5WUmVnc1t2aW5kZXhdLnVoW2VsaW5kZXhdICsgd2VpZ2h0OwogICAgIH0KIH0KIApAQCAt MTQ1Nyw4ICsxNDU4LDggQEAgdm9pZCBIRUxQRVIodndoaXN0MjU2cSkoQ1BVSGV4YWdvblN0YXRl ICplbnYpCiAgICAgICAgIHVuc2lnbmVkIGludCBlbGluZGV4ID0gKChpID4+IDApICYgKH43KSkg fCAoKGJ1Y2tldCA+PiAwKSAmIDcpOwogCiAgICAgICAgIGlmIChmR0VUUUJJVChlbnYtPnF0bXAs IDIgKiBpKSkgewotICAgICAgICAgICAgZW52LT5WUmVnc1t2aW5kZXhdLnVoW2VsaW5kZXhdID0K LSAgICAgICAgICAgICAgICBlbnYtPlZSZWdzW3ZpbmRleF0udWhbZWxpbmRleF0gKyB3ZWlnaHQ7 CisgICAgICAgICAgICBoZXhfaHZ4KGVudiktPlZSZWdzW3ZpbmRleF0udWhbZWxpbmRleF0gPQor ICAgICAgICAgICAgICAgIGhleF9odngoZW52KS0+VlJlZ3NbdmluZGV4XS51aFtlbGluZGV4XSAr IHdlaWdodDsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTE0NzMsOCArMTQ3NCw4IEBAIHZvaWQg SEVMUEVSKHZ3aGlzdDI1Nl9zYXQpKENQVUhleGFnb25TdGF0ZSAqZW52KQogICAgICAgICB1bnNp Z25lZCBpbnQgdmluZGV4ID0gKGJ1Y2tldCA+PiAzKSAmIDB4MUY7CiAgICAgICAgIHVuc2lnbmVk IGludCBlbGluZGV4ID0gKChpID4+IDApICYgKH43KSkgfCAoKGJ1Y2tldCA+PiAwKSAmIDcpOwog Ci0gICAgICAgIGVudi0+VlJlZ3NbdmluZGV4XS51aFtlbGluZGV4XSA9Ci0gICAgICAgICAgICBm VlNBVFVIKGVudi0+VlJlZ3NbdmluZGV4XS51aFtlbGluZGV4XSArIHdlaWdodCk7CisgICAgICAg IGhleF9odngoZW52KS0+VlJlZ3NbdmluZGV4XS51aFtlbGluZGV4XSA9CisgICAgICAgICAgICBm VlNBVFVIKGhleF9odngoZW52KS0+VlJlZ3NbdmluZGV4XS51aFtlbGluZGV4XSArIHdlaWdodCk7 CiAgICAgfQogfQogCkBAIC0xNDg5LDggKzE0OTAsOCBAQCB2b2lkIEhFTFBFUih2d2hpc3QyNTZx X3NhdCkoQ1BVSGV4YWdvblN0YXRlICplbnYpCiAgICAgICAgIHVuc2lnbmVkIGludCBlbGluZGV4 ID0gKChpID4+IDApICYgKH43KSkgfCAoKGJ1Y2tldCA+PiAwKSAmIDcpOwogCiAgICAgICAgIGlm IChmR0VUUUJJVChlbnYtPnF0bXAsIDIgKiBpKSkgewotICAgICAgICAgICAgZW52LT5WUmVnc1t2 aW5kZXhdLnVoW2VsaW5kZXhdID0KLSAgICAgICAgICAgICAgICBmVlNBVFVIKGVudi0+VlJlZ3Nb dmluZGV4XS51aFtlbGluZGV4XSArIHdlaWdodCk7CisgICAgICAgICAgICBoZXhfaHZ4KGVudikt PlZSZWdzW3ZpbmRleF0udWhbZWxpbmRleF0gPQorICAgICAgICAgICAgICAgIGZWU0FUVUgoaGV4 X2h2eChlbnYpLT5WUmVnc1t2aW5kZXhdLnVoW2VsaW5kZXhdICsgd2VpZ2h0KTsKICAgICAgICAg fQogICAgIH0KIH0KQEAgLTE1MDUsOCArMTUwNiw4IEBAIHZvaWQgSEVMUEVSKHZ3aGlzdDEyOCko Q1BVSGV4YWdvblN0YXRlICplbnYpCiAgICAgICAgIHVuc2lnbmVkIGludCB2aW5kZXggPSAoYnVj a2V0ID4+IDMpICYgMHgxRjsKICAgICAgICAgdW5zaWduZWQgaW50IGVsaW5kZXggPSAoKGkgPj4g MSkgJiAofjMpKSB8ICgoYnVja2V0ID4+IDEpICYgMyk7CiAKLSAgICAgICAgZW52LT5WUmVnc1t2 aW5kZXhdLnV3W2VsaW5kZXhdID0KLSAgICAgICAgICAgIGVudi0+VlJlZ3NbdmluZGV4XS51d1tl bGluZGV4XSArIHdlaWdodDsKKyAgICAgICAgaGV4X2h2eChlbnYpLT5WUmVnc1t2aW5kZXhdLnV3 W2VsaW5kZXhdID0KKyAgICAgICAgICAgIGhleF9odngoZW52KS0+VlJlZ3NbdmluZGV4XS51d1tl bGluZGV4XSArIHdlaWdodDsKICAgICB9CiB9CiAKQEAgLTE1MjEsOCArMTUyMiw4IEBAIHZvaWQg SEVMUEVSKHZ3aGlzdDEyOHEpKENQVUhleGFnb25TdGF0ZSAqZW52KQogICAgICAgICB1bnNpZ25l ZCBpbnQgZWxpbmRleCA9ICgoaSA+PiAxKSAmICh+MykpIHwgKChidWNrZXQgPj4gMSkgJiAzKTsK IAogICAgICAgICBpZiAoZkdFVFFCSVQoZW52LT5xdG1wLCAyICogaSkpIHsKLSAgICAgICAgICAg IGVudi0+VlJlZ3NbdmluZGV4XS51d1tlbGluZGV4XSA9Ci0gICAgICAgICAgICAgICAgZW52LT5W UmVnc1t2aW5kZXhdLnV3W2VsaW5kZXhdICsgd2VpZ2h0OworICAgICAgICAgICAgaGV4X2h2eChl bnYpLT5WUmVnc1t2aW5kZXhdLnV3W2VsaW5kZXhdID0KKyAgICAgICAgICAgICAgICBoZXhfaHZ4 KGVudiktPlZSZWdzW3ZpbmRleF0udXdbZWxpbmRleF0gKyB3ZWlnaHQ7CiAgICAgICAgIH0KICAg ICB9CiB9CkBAIC0xNTM4LDggKzE1MzksOCBAQCB2b2lkIEhFTFBFUih2d2hpc3QxMjhtKShDUFVI ZXhhZ29uU3RhdGUgKmVudiwgaW50MzJfdCB1aVYpCiAgICAgICAgIHVuc2lnbmVkIGludCBlbGlu ZGV4ID0gKChpID4+IDEpICYgKH4zKSkgfCAoKGJ1Y2tldCA+PiAxKSAmIDMpOwogCiAgICAgICAg IGlmICgoYnVja2V0ICYgMSkgPT0gdWlWKSB7Ci0gICAgICAgICAgICBlbnYtPlZSZWdzW3ZpbmRl eF0udXdbZWxpbmRleF0gPQotICAgICAgICAgICAgICAgIGVudi0+VlJlZ3NbdmluZGV4XS51d1tl bGluZGV4XSArIHdlaWdodDsKKyAgICAgICAgICAgIGhleF9odngoZW52KS0+VlJlZ3NbdmluZGV4 XS51d1tlbGluZGV4XSA9CisgICAgICAgICAgICAgICAgaGV4X2h2eChlbnYpLT5WUmVnc1t2aW5k ZXhdLnV3W2VsaW5kZXhdICsgd2VpZ2h0OwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTU1NSw4 ICsxNTU2LDggQEAgdm9pZCBIRUxQRVIodndoaXN0MTI4cW0pKENQVUhleGFnb25TdGF0ZSAqZW52 LCBpbnQzMl90IHVpVikKICAgICAgICAgdW5zaWduZWQgaW50IGVsaW5kZXggPSAoKGkgPj4gMSkg JiAofjMpKSB8ICgoYnVja2V0ID4+IDEpICYgMyk7CiAKICAgICAgICAgaWYgKCgoYnVja2V0ICYg MSkgPT0gdWlWKSAmJiBmR0VUUUJJVChlbnYtPnF0bXAsIDIgKiBpKSkgewotICAgICAgICAgICAg ZW52LT5WUmVnc1t2aW5kZXhdLnV3W2VsaW5kZXhdID0KLSAgICAgICAgICAgICAgICBlbnYtPlZS ZWdzW3ZpbmRleF0udXdbZWxpbmRleF0gKyB3ZWlnaHQ7CisgICAgICAgICAgICBoZXhfaHZ4KGVu diktPlZSZWdzW3ZpbmRleF0udXdbZWxpbmRleF0gPQorICAgICAgICAgICAgICAgIGhleF9odngo ZW52KS0+VlJlZ3NbdmluZGV4XS51d1tlbGluZGV4XSArIHdlaWdodDsKICAgICAgICAgfQogICAg IH0KIH0KZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL3RyYW5zbGF0ZS5jIGIvdGFyZ2V0L2hl eGFnb24vdHJhbnNsYXRlLmMKaW5kZXggMGNiM2RiZTU0MjAuLjM4YmRjYWE5ZGM5IDEwMDY0NAot LS0gYS90YXJnZXQvaGV4YWdvbi90cmFuc2xhdGUuYworKysgYi90YXJnZXQvaGV4YWdvbi90cmFu c2xhdGUuYwpAQCAtNzAsNiArNzAsOSBAQCBUQ0d2IGhleF9pbXByZWNpc2VfZXhjZXB0aW9uOwog VENHdiBoZXhfdnN0b3JlX2FkZHJbVlNUT1JFU19NQVhdOwogVENHdiBoZXhfdnN0b3JlX3NpemVb VlNUT1JFU19NQVhdOwogVENHdiBoZXhfdnN0b3JlX3BlbmRpbmdbVlNUT1JFU19NQVhdOworI2lm bmRlZiBDT05GSUdfVVNFUl9PTkxZCitUQ0d2X3B0ciBoZXhfaHZ4X3B0cjsKKyNlbmRpZgogCiAj aWZuZGVmIENPTkZJR19VU0VSX09OTFkKIFRDR3ZfaTMyIGhleF9ncmVnW05VTV9HUkVHU107CkBA IC04MiwxNCArODUsMTggQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBoZXhhZ29uX3ByZWRu YW1lc1tdID0gewogfTsKIAogaW50cHRyX3QgY3R4X2Z1dHVyZV92cmVnX29mZihEaXNhc0NvbnRl eHQgKmN0eCwgaW50IHJlZ251bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bSwg Ym9vbCBhbGxvY19vaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bSwgYm9vbCBh bGxvY19vaywgVENHdl9wdHIgKmJhc2UpCiB7CiAgICAgaW50cHRyX3Qgb2Zmc2V0OwogCiAgICAg aWYgKCFjdHgtPm5lZWRfY29tbWl0KSB7Ci0gICAgICAgIHJldHVybiBvZmZzZXRvZihDUFVIZXhh Z29uU3RhdGUsIFZSZWdzW3JlZ251bV0pOworICAgICAgICAvKiBTaG9ydCBjaXJjdWl0OiB0aGUg d3JpdGUgZ29lcyBzdHJhaWdodCB0byB0aGUgcmVnaXN0ZXIgZmlsZS4gKi8KKyAgICAgICAgKmJh c2UgPSBoZXhfaHZ4X3B0cjsKKyAgICAgICAgcmV0dXJuIEhFWF9IVlhfT0ZGU0VUKFZSZWdzW3Jl Z251bV0pOwogICAgIH0KIAorICAgICpiYXNlID0gdGNnX2VudjsKKwogICAgIC8qIFNlZSBpZiBp dCBpcyBhbHJlYWR5IGFsbG9jYXRlZCAqLwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY3R4LT5m dXR1cmVfdnJlZ3NfaWR4OyBpKyspIHsKICAgICAgICAgaWYgKGN0eC0+ZnV0dXJlX3ZyZWdzX251 bVtpXSA9PSByZWdudW0pIHsKQEAgLTEwOCwxMCArMTE1LDEyIEBAIGludHB0cl90IGN0eF9mdXR1 cmVfdnJlZ19vZmYoRGlzYXNDb250ZXh0ICpjdHgsIGludCByZWdudW0sCiB9CiAKIGludHB0cl90 IGN0eF90bXBfdnJlZ19vZmYoRGlzYXNDb250ZXh0ICpjdHgsIGludCByZWdudW0sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBudW0sIGJvb2wgYWxsb2Nfb2spCisgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBudW0sIGJvb2wgYWxsb2Nfb2ssIFRDR3ZfcHRyICpiYXNlKQogewog ICAgIGludHB0cl90IG9mZnNldDsKIAorICAgICpiYXNlID0gdGNnX2VudjsKKwogICAgIC8qIFNl ZSBpZiBpdCBpcyBhbHJlYWR5IGFsbG9jYXRlZCAqLwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwg Y3R4LT50bXBfdnJlZ3NfaWR4OyBpKyspIHsKICAgICAgICAgaWYgKGN0eC0+dG1wX3ZyZWdzX251 bVtpXSA9PSByZWdudW0pIHsKQEAgLTY5NywyNiArNzA2LDI4IEBAIHN0YXRpYyB2b2lkIGdlbl9z dGFydF9wYWNrZXQoRGlzYXNDb250ZXh0ICpjdHgpCiAgICAgaWYgKCFiaXRtYXBfZW1wdHkoY3R4 LT5wcmVkaWNhdGVkX2Z1dHVyZV92cmVncywgTlVNX1ZSRUdTKSkgewogICAgICAgICBpID0gZmlu ZF9maXJzdF9iaXQoY3R4LT5wcmVkaWNhdGVkX2Z1dHVyZV92cmVncywgTlVNX1ZSRUdTKTsKICAg ICAgICAgd2hpbGUgKGkgPCBOVU1fVlJFR1MpIHsKKyAgICAgICAgICAgIFRDR3ZfcHRyIFZkVl9i YXNlOwogICAgICAgICAgICAgY29uc3QgaW50cHRyX3QgVmRWX29mZiA9Ci0gICAgICAgICAgICAg ICAgY3R4X2Z1dHVyZV92cmVnX29mZihjdHgsIGksIDEsIHRydWUpOwotICAgICAgICAgICAgaW50 cHRyX3Qgc3JjX29mZiA9IG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgVlJlZ3NbaV0pOwotICAg ICAgICAgICAgdGNnX2dlbl9ndmVjX21vdihNT182NCwgVmRWX29mZiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3JjX29mZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKE1NVmVjdG9yKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVj dG9yKSk7CisgICAgICAgICAgICAgICAgY3R4X2Z1dHVyZV92cmVnX29mZihjdHgsIGksIDEsIHRy dWUsICZWZFZfYmFzZSk7CisgICAgICAgICAgICBpbnRwdHJfdCBzcmNfb2ZmID0gSEVYX0hWWF9P RkZTRVQoVlJlZ3NbaV0pOworICAgICAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92YXIoTU9fNjQs IFZkVl9iYXNlLCBWZFZfb2ZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4 X2h2eF9wdHIsIHNyY19vZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl b2YoTU1WZWN0b3IpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1N VmVjdG9yKSk7CiAgICAgICAgICAgICBpID0gZmluZF9uZXh0X2JpdChjdHgtPnByZWRpY2F0ZWRf ZnV0dXJlX3ZyZWdzLCBOVU1fVlJFR1MsIGkgKyAxKTsKICAgICAgICAgfQogICAgIH0KICAgICBp ZiAoIWJpdG1hcF9lbXB0eShjdHgtPnByZWRpY2F0ZWRfdG1wX3ZyZWdzLCBOVU1fVlJFR1MpKSB7 CiAgICAgICAgIGkgPSBmaW5kX2ZpcnN0X2JpdChjdHgtPnByZWRpY2F0ZWRfdG1wX3ZyZWdzLCBO VU1fVlJFR1MpOwogICAgICAgICB3aGlsZSAoaSA8IE5VTV9WUkVHUykgeworICAgICAgICAgICAg VENHdl9wdHIgVmRWX2Jhc2U7CiAgICAgICAgICAgICBjb25zdCBpbnRwdHJfdCBWZFZfb2ZmID0K LSAgICAgICAgICAgICAgICBjdHhfdG1wX3ZyZWdfb2ZmKGN0eCwgaSwgMSwgdHJ1ZSk7Ci0gICAg ICAgICAgICBpbnRwdHJfdCBzcmNfb2ZmID0gb2Zmc2V0b2YoQ1BVSGV4YWdvblN0YXRlLCBWUmVn c1tpXSk7Ci0gICAgICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92KE1PXzY0LCBWZFZfb2ZmLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfb2ZmLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplb2YoTU1WZWN0b3IpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoTU1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBjdHhfdG1wX3ZyZWdfb2ZmKGN0eCwg aSwgMSwgdHJ1ZSwgJlZkVl9iYXNlKTsKKyAgICAgICAgICAgIGludHB0cl90IHNyY19vZmYgPSBI RVhfSFZYX09GRlNFVChWUmVnc1tpXSk7CisgICAgICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92X3Zh cihNT182NCwgVmRWX2Jhc2UsIFZkVl9vZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoZXhfaHZ4X3B0ciwgc3JjX29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemVvZihNTVZlY3RvciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoTU1WZWN0b3IpKTsKICAgICAgICAgICAgIGkgPSBmaW5kX25leHRfYml0KGN0eC0+cHJl ZGljYXRlZF90bXBfdnJlZ3MsIE5VTV9WUkVHUywgaSArIDEpOwogICAgICAgICB9CiAgICAgfQpA QCAtMTAxNiwzMSArMTAyNywzNCBAQCBzdGF0aWMgdm9pZCBnZW5fY29tbWl0X2h2eChEaXNhc0Nv bnRleHQgKmN0eCkKICAgICAvKgogICAgICAqICAgIGZvciAoaSA9IDA7IGkgPCBjdHgtPnZyZWdf bG9nX2lkeDsgaSsrKSB7CiAgICAgICogICAgICAgIGludCBybnVtID0gY3R4LT52cmVnX2xvZ1tp XTsKLSAgICAgKiAgICAgICAgZW52LT5WUmVnc1tybnVtXSA9IGVudi0+ZnV0dXJlX1ZSZWdzW3Ju dW1dOworICAgICAqICAgICAgICBlbnYtPmh2eC0+VlJlZ3Nbcm51bV0gPSBlbnYtPmZ1dHVyZV9W UmVnc1tybnVtXTsKICAgICAgKiAgICB9CiAgICAgICovCiAgICAgZm9yIChpID0gMDsgaSA8IGN0 eC0+dnJlZ19sb2dfaWR4OyBpKyspIHsKICAgICAgICAgaW50IHJudW0gPSBjdHgtPnZyZWdfbG9n W2ldOwotICAgICAgICBpbnRwdHJfdCBkc3RvZmYgPSBvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUs IFZSZWdzW3JudW1dKTsKLSAgICAgICAgaW50cHRyX3Qgc3Jjb2ZmID0gY3R4X2Z1dHVyZV92cmVn X29mZihjdHgsIHJudW0sIDEsIGZhbHNlKTsKKyAgICAgICAgaW50cHRyX3QgZHN0b2ZmID0gSEVY X0hWWF9PRkZTRVQoVlJlZ3Nbcm51bV0pOworICAgICAgICBUQ0d2X3B0ciBzcmNiYXNlOworICAg ICAgICBpbnRwdHJfdCBzcmNvZmYgPSBjdHhfZnV0dXJlX3ZyZWdfb2ZmKGN0eCwgcm51bSwgMSwg ZmFsc2UsICZzcmNiYXNlKTsKICAgICAgICAgc2l6ZV90IHNpemUgPSBzaXplb2YoTU1WZWN0b3Ip OwogCi0gICAgICAgIHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQsIGRzdG9mZiwgc3Jjb2ZmLCBzaXpl LCBzaXplKTsKKyAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92YXIoTU9fNjQsIGhleF9odnhfcHRy LCBkc3RvZmYsIHNyY2Jhc2UsIHNyY29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZSwgc2l6ZSk7CiAgICAgfQogCiAgICAgLyoKICAgICAgKiAgICBmb3IgKGkgPSAwOyBpIDwg Y3R4LT5xcmVnX2xvZ19pZHg7IGkrKykgewogICAgICAqICAgICAgICBpbnQgcm51bSA9IGN0eC0+ cXJlZ19sb2dbaV07Ci0gICAgICogICAgICAgIGVudi0+UVJlZ3Nbcm51bV0gPSBlbnYtPmZ1dHVy ZV9RUmVnc1tybnVtXTsKKyAgICAgKiAgICAgICAgZW52LT5odngtPlFSZWdzW3JudW1dID0gZW52 LT5mdXR1cmVfUVJlZ3Nbcm51bV07CiAgICAgICogICAgfQogICAgICAqLwogICAgIGZvciAoaSA9 IDA7IGkgPCBjdHgtPnFyZWdfbG9nX2lkeDsgaSsrKSB7CiAgICAgICAgIGludCBybnVtID0gY3R4 LT5xcmVnX2xvZ1tpXTsKLSAgICAgICAgaW50cHRyX3QgZHN0b2ZmID0gb2Zmc2V0b2YoQ1BVSGV4 YWdvblN0YXRlLCBRUmVnc1tybnVtXSk7CisgICAgICAgIGludHB0cl90IGRzdG9mZiA9IEhFWF9I VlhfT0ZGU0VUKFFSZWdzW3JudW1dKTsKICAgICAgICAgaW50cHRyX3Qgc3Jjb2ZmID0gb2Zmc2V0 b2YoQ1BVSGV4YWdvblN0YXRlLCBmdXR1cmVfUVJlZ3Nbcm51bV0pOwogICAgICAgICBzaXplX3Qg c2l6ZSA9IHNpemVvZihNTVFSZWcpOwogCi0gICAgICAgIHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQs IGRzdG9mZiwgc3Jjb2ZmLCBzaXplLCBzaXplKTsKKyAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92 YXIoTU9fNjQsIGhleF9odnhfcHRyLCBkc3RvZmYsIHRjZ19lbnYsIHNyY29mZiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZSwgc2l6ZSk7CiAgICAgfQogCiAgICAgaWYgKHBrdF9o YXNfaHZ4X3N0b3JlKCZjdHgtPnBrdCkpIHsKQEAgLTEzNjAsNiArMTM3NCw4IEBAIHZvaWQgaGV4 YWdvbl90cmFuc2xhdGVfaW5pdCh2b2lkKQogICAgIG9wY29kZV9pbml0KCk7CiAKICNpZm5kZWYg Q09ORklHX1VTRVJfT05MWQorICAgIGhleF9odnhfcHRyID0gdGNnX2dsb2JhbF9tZW1fbmV3X3B0 cih0Y2dfZW52LAorICAgICAgICBvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUsIGh2eCksICJodngi KTsKICAgICBmb3IgKGkgPSAwOyBpIDwgTlVNX0dSRUdTOyBpKyspIHsKICAgICAgICAgICAgIGhl eF9ncmVnW2ldID0gdGNnX2dsb2JhbF9tZW1fbmV3X2kzMih0Y2dfZW52LAogICAgICAgICAgICAg ICAgIG9mZnNldG9mKENQVUhleGFnb25TdGF0ZSwgZ3JlZ1tpXSksCmRpZmYgLS1naXQgYS9ody9o ZXhhZ29uL21lc29uLmJ1aWxkIGIvaHcvaGV4YWdvbi9tZXNvbi5idWlsZAppbmRleCA3MjBhNWQ1 NGRjYy4uYzRiMjU3ZGZhMjggMTAwNjQ0Ci0tLSBhL2h3L2hleGFnb24vbWVzb24uYnVpbGQKKysr IGIvaHcvaGV4YWdvbi9tZXNvbi5idWlsZApAQCAtMSw2ICsxLDcgQEAKIGhleGFnb25fc3MgPSBz cy5zb3VyY2Vfc2V0KCkKIGhleGFnb25fc3MuYWRkKGZpbGVzKCdoZXhhZ29uX3RsYi5jJykpCiBo ZXhhZ29uX3NzLmFkZChmaWxlcygnaGV4YWdvbl9nbG9iYWxyZWcuYycpKQoraGV4YWdvbl9zcy5h ZGQoZmlsZXMoJ2hleGFnb25faHZ4X2NvbnRleHQuYycpKQogaGV4YWdvbl9zcy5hZGQod2hlbjog J0NPTkZJR19IRVhfRFNQJywgaWZfdHJ1ZTogZmlsZXMoJ2hleC1zdWJzeXMuYycpKQogaGV4YWdv bl9zcy5hZGQod2hlbjogJ0NPTkZJR19IRVhfRFNQJywgaWZfdHJ1ZTogZmlsZXMoJ2hleGFnb25f ZHNwLmMnKSkKIGhleGFnb25fc3MuYWRkKHdoZW46ICdDT05GSUdfSEVYX1ZJUlQnLCBpZl90cnVl OiBmaWxlcygndmlydC5jJykpCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9oZXhfY29tbW9u LnB5IGIvdGFyZ2V0L2hleGFnb24vaGV4X2NvbW1vbi5weQppbmRleCBjMTgwYzE5YjA5Mi4uMDJj NTQ1MDYxNDUgMTAwNzU1Ci0tLSBhL3RhcmdldC9oZXhhZ29uL2hleF9jb21tb24ucHkKKysrIGIv dGFyZ2V0L2hleGFnb24vaGV4X2NvbW1vbi5weQpAQCAtNDM0LDYgKzQzNCwxNCBAQCBkZWYgaXNf aHZ4X3JlZyhzZWxmKToKICAgICAgICAgcmV0dXJuIFRydWUKICAgICBkZWYgaHZ4X29mZihzZWxm KToKICAgICAgICAgcmV0dXJuIGYie3NlbGYucmVnX3RjZygpfV9vZmYiCisgICAgZGVmIGh2eF9i YXNlKHNlbGYpOgorICAgICAgICByZXR1cm4gZiJ7c2VsZi5yZWdfdGNnKCl9X2Jhc2UiCisgICAg ZGVmIGRlY2xfdGNnX3B0cihzZWxmLCBmKToKKyAgICAgICAgcHRyID0gc2VsZi5yZWdfdGNnKCkK KyAgICAgICAgZi53cml0ZShjb2RlX2ZtdChmIiIiXAorICAgICAgICAgICAgVENHdl9wdHIge3B0 cn0gPSB0Y2dfdGVtcF9uZXdfcHRyKCk7CisgICAgICAgICAgICB0Y2dfZ2VuX2FkZGlfcHRyKHtw dHJ9LCB7c2VsZi5odnhfYmFzZSgpfSwge3NlbGYuaHZ4X29mZigpfSk7CisgICAgICAgICIiIikp CiAgICAgZGVmIGhlbHBlcl9wcm90b190eXBlKHNlbGYpOgogICAgICAgICByZXR1cm4gInB0ciIK ICAgICBkZWYgaGVscGVyX2FyZ190eXBlKHNlbGYpOgpAQCAtNzc4LDE4ICs3ODYsMTcgQEAgY2xh c3MgVlJlZ0Rlc3QoUmVnaXN0ZXIsIEh2eCwgRGVzdCk6CiAgICAgZGVmIGRlY2xfdGNnKHNlbGYs IGYsIHRhZywgcmVnbm8pOgogICAgICAgICBzZWxmLmRlY2xfcmVnX251bShmLCByZWdubykKICAg ICAgICAgZi53cml0ZShjb2RlX2ZtdChmIiIiXAorICAgICAgICAgICAgVENHdl9wdHIge3NlbGYu aHZ4X2Jhc2UoKX07CiAgICAgICAgICAgICBjb25zdCBpbnRwdHJfdCB7c2VsZi5odnhfb2ZmKCl9 ID0KLSAgICAgICAgICAgICAgICB7dnJlZ19vZmZzZXRfZnVuYyh0YWcpfShjdHgsIHtzZWxmLnJl Z19udW19LCAxLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB7dnJlZ19vZmZzZXRfZnVuYyh0YWcp fShjdHgsIHtzZWxmLnJlZ19udW19LCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRydWUsICZ7c2VsZi5odnhfYmFzZSgpfSk7CiAgICAgICAgICIiIikpCiAgICAg ICAgIGlmIG5vdCBza2lwX3FlbXVfaGVscGVyKHRhZyk6Ci0gICAgICAgICAgICBmLndyaXRlKGNv ZGVfZm10KGYiIiJcCi0gICAgICAgICAgICAgICAgVENHdl9wdHIge3NlbGYucmVnX3RjZygpfSA9 IHRjZ190ZW1wX25ld19wdHIoKTsKLSAgICAgICAgICAgICAgICB0Y2dfZ2VuX2FkZGlfcHRyKHtz ZWxmLnJlZ190Y2coKX0sIHRjZ19lbnYsIHtzZWxmLmh2eF9vZmYoKX0pOwotICAgICAgICAgICAg IiIiKSkKKyAgICAgICAgICAgIHNlbGYuZGVjbF90Y2dfcHRyKGYpCiAgICAgZGVmIGdlbl96ZXJv KHNlbGYsIGYpOgogICAgICAgICBmLndyaXRlKGNvZGVfZm10KGYiIiJcCi0gICAgICAgICAgICAg ICAgdGNnX2dlbl9ndmVjX2R1cF9pbW0oTU9fNjQsIHtzZWxmLmh2eF9vZmYoKX0sCi0gICAgICAg ICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvciksIDApOworICAg ICAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY19kdXBfaW1tX3ZhcihNT182NCwge3NlbGYuaHZ4X2Jh c2UoKX0sCisgICAgICAgICAgICAgICAgICAgIHtzZWxmLmh2eF9vZmYoKX0sIHNpemVvZihNTVZl Y3RvciksIHNpemVvZihNTVZlY3RvciksIDApOwogICAgICAgICAgICAgIiIiKSkKICAgICBkZWYg Z2VuX3dyaXRlKHNlbGYsIGYsIHRhZyk6CiAgICAgICAgIHBhc3MKQEAgLTgwOSwxMyArODE2LDEy IEBAIGNsYXNzIFZSZWdTb3VyY2UoUmVnaXN0ZXIsIEh2eCwgT2xkU291cmNlKToKICAgICBkZWYg ZGVjbF90Y2coc2VsZiwgZiwgdGFnLCByZWdubyk6CiAgICAgICAgIHNlbGYuZGVjbF9yZWdfbnVt KGYsIHJlZ25vKQogICAgICAgICBmLndyaXRlKGNvZGVfZm10KGYiIiJcCi0gICAgICAgICAgICBj b25zdCBpbnRwdHJfdCB7c2VsZi5odnhfb2ZmKCl9ID0gdnJlZ19zcmNfb2ZmKGN0eCwge3NlbGYu cmVnX251bX0pOworICAgICAgICAgICAgVENHdl9wdHIge3NlbGYuaHZ4X2Jhc2UoKX07CisgICAg ICAgICAgICBjb25zdCBpbnRwdHJfdCB7c2VsZi5odnhfb2ZmKCl9ID0KKyAgICAgICAgICAgICAg ICB2cmVnX3NyY19vZmYoY3R4LCB7c2VsZi5yZWdfbnVtfSwgJntzZWxmLmh2eF9iYXNlKCl9KTsK ICAgICAgICAgIiIiKSkKICAgICAgICAgaWYgbm90IHNraXBfcWVtdV9oZWxwZXIodGFnKToKLSAg ICAgICAgICAgIGYud3JpdGUoY29kZV9mbXQoZiIiIlwKLSAgICAgICAgICAgICAgICBUQ0d2X3B0 ciB7c2VsZi5yZWdfdGNnKCl9ID0gdGNnX3RlbXBfbmV3X3B0cigpOwotICAgICAgICAgICAgICAg IHRjZ19nZW5fYWRkaV9wdHIoe3NlbGYucmVnX3RjZygpfSwgdGNnX2Vudiwge3NlbGYuaHZ4X29m ZigpfSk7Ci0gICAgICAgICAgICAiIiIpKQorICAgICAgICAgICAgc2VsZi5kZWNsX3RjZ19wdHIo ZikKICAgICBkZWYgaGVscGVyX2h2eF9kZXNjKHNlbGYsIGYpOgogICAgICAgICBmLndyaXRlKGNv ZGVfZm10KGYiIiJcCiAgICAgICAgICAgICAvKiB7c2VsZi5yZWdfdGNnKCl9IGlzICooTU1WZWN0 b3IgKikoe3NlbGYuaGVscGVyX2FyZ19uYW1lKCl9KSAqLwpAQCAtODMwLDggKzgzNiwxMCBAQCBk ZWYgZGVjbF90Y2coc2VsZiwgZiwgdGFnLCByZWdubyk6CiAgICAgICAgIHNlbGYuZGVjbF9yZWdf bnVtKGYsIHJlZ25vKQogICAgICAgICBpZiBza2lwX3FlbXVfaGVscGVyKHRhZyk6CiAgICAgICAg ICAgICBmLndyaXRlKGNvZGVfZm10KGYiIiJcCisgICAgICAgICAgICAgICAgVENHdl9wdHIge3Nl bGYuaHZ4X2Jhc2UoKX07CiAgICAgICAgICAgICAgICAgY29uc3QgaW50cHRyX3Qge3NlbGYuaHZ4 X29mZigpfSA9Ci0gICAgICAgICAgICAgICAgICAgIGN0eF9mdXR1cmVfdnJlZ19vZmYoY3R4LCB7 c2VsZi5yZWdfbnVtfSwgMSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGN0eF9mdXR1cmVf dnJlZ19vZmYoY3R4LCB7c2VsZi5yZWdfbnVtfSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0cnVlLCAme3NlbGYuaHZ4X2Jhc2UoKX0pOwogICAgICAgICAgICAg IiIiKSkKICAgICBkZWYgaGVscGVyX2h2eF9kZXNjKHNlbGYsIGYpOgogICAgICAgICBmLndyaXRl KGNvZGVfZm10KGYiIiJcCkBAIC04NDYsMjEgKzg1NCwyNCBAQCBjbGFzcyBWUmVnUmVhZFdyaXRl KFJlZ2lzdGVyLCBIdngsIFJlYWRXcml0ZSk6CiAgICAgZGVmIGRlY2xfdGNnKHNlbGYsIGYsIHRh ZywgcmVnbm8pOgogICAgICAgICBzZWxmLmRlY2xfcmVnX251bShmLCByZWdubykKICAgICAgICAg Zi53cml0ZShjb2RlX2ZtdChmIiIiXAorICAgICAgICAgICAgVENHdl9wdHIge3NlbGYuaHZ4X2Jh c2UoKX07CisgICAgICAgICAgICBUQ0d2X3B0ciB7c2VsZi5yZWdfdGNnKCl9X3NyY2Jhc2U7CiAg ICAgICAgICAgICBjb25zdCBpbnRwdHJfdCB7c2VsZi5odnhfb2ZmKCl9ID0KLSAgICAgICAgICAg ICAgICB7dnJlZ19vZmZzZXRfZnVuYyh0YWcpfShjdHgsIHtzZWxmLnJlZ19udW19LCAxLCB0cnVl KTsKLSAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQsIHtzZWxmLmh2eF9vZmYoKX0s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZyZWdfc3JjX29mZihjdHgsIHtzZWxmLnJl Z19udW19KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwg c2l6ZW9mKE1NVmVjdG9yKSk7CisgICAgICAgICAgICAgICAge3ZyZWdfb2Zmc2V0X2Z1bmModGFn KX0oY3R4LCB7c2VsZi5yZWdfbnVtfSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0cnVlLCAme3NlbGYuaHZ4X2Jhc2UoKX0pOworICAgICAgICAgICAgY29uc3Qg aW50cHRyX3Qge3NlbGYucmVnX3RjZygpfV9zcmNvZmYgPQorICAgICAgICAgICAgICAgIHZyZWdf c3JjX29mZihjdHgsIHtzZWxmLnJlZ19udW19LCAme3NlbGYucmVnX3RjZygpfV9zcmNiYXNlKTsK KyAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY19tb3ZfdmFyKE1PXzY0LCB7c2VsZi5odnhfYmFzZSgp fSwge3NlbGYuaHZ4X29mZigpfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtz ZWxmLnJlZ190Y2coKX1fc3JjYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHtzZWxmLnJlZ190Y2coKX1fc3Jjb2ZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7CiAgICAgICAgICIiIikpCiAg ICAgICAgIGlmIG5vdCBza2lwX3FlbXVfaGVscGVyKHRhZyk6Ci0gICAgICAgICAgICBmLndyaXRl KGNvZGVfZm10KGYiIiJcCi0gICAgICAgICAgICAgICAgVENHdl9wdHIge3NlbGYucmVnX3RjZygp fSA9IHRjZ190ZW1wX25ld19wdHIoKTsKLSAgICAgICAgICAgICAgICB0Y2dfZ2VuX2FkZGlfcHRy KHtzZWxmLnJlZ190Y2coKX0sIHRjZ19lbnYsIHtzZWxmLmh2eF9vZmYoKX0pOwotICAgICAgICAg ICAgIiIiKSkKKyAgICAgICAgICAgIHNlbGYuZGVjbF90Y2dfcHRyKGYpCiAgICAgZGVmIGdlbl96 ZXJvKHNlbGYsIGYpOgogICAgICAgICBmLndyaXRlKGNvZGVfZm10KGYiIiJcCi0gICAgICAgICAg ICAgICAgdGNnX2dlbl9ndmVjX2R1cF9pbW0oTU9fNjQsIHtzZWxmLmh2eF9vZmYoKX0sCi0gICAg ICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvciksIDApOwor ICAgICAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY19kdXBfaW1tX3ZhcihNT182NCwge3NlbGYuaHZ4 X2Jhc2UoKX0sCisgICAgICAgICAgICAgICAgICAgIHtzZWxmLmh2eF9vZmYoKX0sIHNpemVvZihN TVZlY3RvciksIHNpemVvZihNTVZlY3RvciksIDApOwogICAgICAgICAgICAgIiIiKSkKICAgICBk ZWYgZ2VuX3dyaXRlKHNlbGYsIGYsIHRhZyk6CiAgICAgICAgIHBhc3MKQEAgLTg4NCwxNSArODk1 LDIxIEBAIGNsYXNzIFZSZWdUbXAoUmVnaXN0ZXIsIEh2eCwgUmVhZFdyaXRlKToKICAgICBkZWYg ZGVjbF90Y2coc2VsZiwgZiwgdGFnLCByZWdubyk6CiAgICAgICAgIHNlbGYuZGVjbF9yZWdfbnVt KGYsIHJlZ25vKQogICAgICAgICBmLndyaXRlKGNvZGVfZm10KGYiIiJcCisgICAgICAgICAgICBU Q0d2X3B0ciB7c2VsZi5odnhfYmFzZSgpfSA9IHRjZ19lbnY7CiAgICAgICAgICAgICBjb25zdCBp bnRwdHJfdCB7c2VsZi5odnhfb2ZmKCl9ID0gb2Zmc2V0b2YoQ1BVSGV4YWdvblN0YXRlLCB2dG1w KTsKICAgICAgICAgIiIiKSkKICAgICAgICAgaWYgbm90IHNraXBfcWVtdV9oZWxwZXIodGFnKToK KyAgICAgICAgICAgIHNlbGYuZGVjbF90Y2dfcHRyKGYpCiAgICAgICAgICAgICBmLndyaXRlKGNv ZGVfZm10KGYiIiJcCi0gICAgICAgICAgICAgICAgVENHdl9wdHIge3NlbGYucmVnX3RjZygpfSA9 IHRjZ190ZW1wX25ld19wdHIoKTsKLSAgICAgICAgICAgICAgICB0Y2dfZ2VuX2FkZGlfcHRyKHtz ZWxmLnJlZ190Y2coKX0sIHRjZ19lbnYsIHtzZWxmLmh2eF9vZmYoKX0pOwotICAgICAgICAgICAg ICAgIHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQsIHtzZWxmLmh2eF9vZmYoKX0sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2cmVnX3NyY19vZmYoY3R4LCB7c2VsZi5yZWdfbnVtfSks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXpl b2YoTU1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBUQ0d2X3B0ciB7c2VsZi5yZWdfdGNnKCl9 X3NyY2Jhc2U7CisgICAgICAgICAgICAgICAgY29uc3QgaW50cHRyX3Qge3NlbGYucmVnX3RjZygp fV9zcmNvZmYgPQorICAgICAgICAgICAgICAgICAgICB2cmVnX3NyY19vZmYoY3R4LCB7c2VsZi5y ZWdfbnVtfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ7c2VsZi5yZWdfdGNn KCl9X3NyY2Jhc2UpOworICAgICAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY19tb3ZfdmFyKE1PXzY0 LCB7c2VsZi5odnhfYmFzZSgpfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7c2VsZi5odnhfb2ZmKCl9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHtzZWxmLnJlZ190Y2coKX1fc3JjYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7c2VsZi5yZWdfdGNnKCl9X3NyY29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsKICAgICAg ICAgICAgICIiIikpCiAgICAgZGVmIGdlbl96ZXJvKHNlbGYsIGYpOgogICAgICAgICBmLndyaXRl KGNvZGVfZm10KGYiIiJcCkBAIC05MDEsOCArOTE4LDggQEAgZGVmIGdlbl96ZXJvKHNlbGYsIGYp OgogICAgICAgICAgICAgIiIiKSkKICAgICBkZWYgZ2VuX3dyaXRlKHNlbGYsIGYsIHRhZyk6CiAg ICAgICAgIGYud3JpdGUoY29kZV9mbXQoZiIiIlwKLSAgICAgICAgICAgIGdlbl92cmVnX3dyaXRl KGN0eCwge3NlbGYuaHZ4X29mZigpfSwge3NlbGYucmVnX251bX0sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICB7aHZ4X25ld3YodGFnKX0pOworICAgICAgICAgICAgZ2VuX3ZyZWdfd3JpdGUo Y3R4LCB7c2VsZi5odnhfYmFzZSgpfSwge3NlbGYuaHZ4X29mZigpfSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHtzZWxmLnJlZ19udW19LCB7aHZ4X25ld3YodGFnKX0pOwogICAgICAgICAi IiIpKQogICAgIGRlZiBoZWxwZXJfaHZ4X2Rlc2Moc2VsZiwgZik6CiAgICAgICAgIGYud3JpdGUo Y29kZV9mbXQoZiIiIlwKQEAgLTkyNCwxNyArOTQxLDE2IEBAIGNsYXNzIFZSZWdQYWlyRGVzdChS ZWdpc3RlciwgSHZ4LCBEZXN0KToKICAgICBkZWYgZGVjbF90Y2coc2VsZiwgZiwgdGFnLCByZWdu byk6CiAgICAgICAgIHNlbGYuZGVjbF9yZWdfbnVtKGYsIHJlZ25vKQogICAgICAgICBmLndyaXRl KGNvZGVfZm10KGYiIiJcCisgICAgICAgICAgICBUQ0d2X3B0ciB7c2VsZi5odnhfYmFzZSgpfTsK ICAgICAgICAgICAgIGNvbnN0IGludHB0cl90IHtzZWxmLmh2eF9vZmYoKX0gPQotICAgICAgICAg ICAgICAgIHt2cmVnX29mZnNldF9mdW5jKHRhZyl9KGN0eCwge3NlbGYucmVnX251bX0sIDIsIHRy dWUpOworICAgICAgICAgICAgICAgIHt2cmVnX29mZnNldF9mdW5jKHRhZyl9KGN0eCwge3NlbGYu cmVnX251bX0sIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1 ZSwgJntzZWxmLmh2eF9iYXNlKCl9KTsKICAgICAgICAgIiIiKSkKICAgICAgICAgaWYgbm90IHNr aXBfcWVtdV9oZWxwZXIodGFnKToKLSAgICAgICAgICAgIGYud3JpdGUoY29kZV9mbXQoZiIiIlwK LSAgICAgICAgICAgICAgICBUQ0d2X3B0ciB7c2VsZi5yZWdfdGNnKCl9ID0gdGNnX3RlbXBfbmV3 X3B0cigpOwotICAgICAgICAgICAgICAgIHRjZ19nZW5fYWRkaV9wdHIoe3NlbGYucmVnX3RjZygp fSwgdGNnX2Vudiwge3NlbGYuaHZ4X29mZigpfSk7Ci0gICAgICAgICAgICAiIiIpKQorICAgICAg ICAgICAgc2VsZi5kZWNsX3RjZ19wdHIoZikKICAgICBkZWYgZ2VuX3plcm8oc2VsZiwgZik6CiAg ICAgICAgIGYud3JpdGUoY29kZV9mbXQoZiIiIlwKLSAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY19k dXBfaW1tKE1PXzY0LCB7c2VsZi5odnhfb2ZmKCl9LAorICAgICAgICAgICAgdGNnX2dlbl9ndmVj X2R1cF9pbW1fdmFyKE1PXzY0LCB7c2VsZi5odnhfYmFzZSgpfSwge3NlbGYuaHZ4X29mZigpfSwK ICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0b3JQYWlyKSwgc2l6ZW9mKE1NVmVjdG9yUGFp ciksIDApOwogICAgICAgICAiIiIpKQogICAgIGRlZiBnZW5fd3JpdGUoc2VsZiwgZiwgdGFnKToK QEAgLTk1NSwyMCArOTcxLDI3IEBAIGNsYXNzIFZSZWdQYWlyU291cmNlKFJlZ2lzdGVyLCBIdngs IE9sZFNvdXJjZSk6CiAgICAgZGVmIGRlY2xfdGNnKHNlbGYsIGYsIHRhZywgcmVnbm8pOgogICAg ICAgICBzZWxmLmRlY2xfcmVnX251bShmLCByZWdubykKICAgICAgICAgZi53cml0ZShjb2RlX2Zt dChmIiIiXAorICAgICAgICAgICAgVENHdl9wdHIge3NlbGYuaHZ4X2Jhc2UoKX0gPSB0Y2dfZW52 OworICAgICAgICAgICAgVENHdl9wdHIge3NlbGYucmVnX3RjZygpfV9zcmNiYXNlOwogICAgICAg ICAgICAgY29uc3QgaW50cHRyX3Qge3NlbGYuaHZ4X29mZigpfSA9CiAgICAgICAgICAgICAgICAg b2Zmc2V0b2YoQ1BVSGV4YWdvblN0YXRlLCB7c2VsZi5yZWdfdGNnKCl9KTsKLSAgICAgICAgICAg IHRjZ19nZW5fZ3ZlY19tb3YoTU9fNjQsIHtzZWxmLmh2eF9vZmYoKX0sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZyZWdfc3JjX29mZihjdHgsIHtzZWxmLnJlZ19udW19KSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9y KSk7Ci0gICAgICAgICAgICB0Y2dfZ2VuX2d2ZWNfbW92KE1PXzY0LCB7c2VsZi5odnhfb2ZmKCl9 ICsgc2l6ZW9mKE1NVmVjdG9yKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnJlZ19z cmNfb2ZmKGN0eCwge3NlbGYucmVnX251bX0gXiAxKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7CisgICAgICAgICAgICBp bnRwdHJfdCB7c2VsZi5yZWdfdGNnKCl9X3NyY29mZiA9CisgICAgICAgICAgICAgICAgdnJlZ19z cmNfb2ZmKGN0eCwge3NlbGYucmVnX251bX0sICZ7c2VsZi5yZWdfdGNnKCl9X3NyY2Jhc2UpOwor ICAgICAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92YXIoTU9fNjQsIHtzZWxmLmh2eF9iYXNlKCl9 LCB7c2VsZi5odnhfb2ZmKCl9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Nl bGYucmVnX3RjZygpfV9zcmNiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg e3NlbGYucmVnX3RjZygpfV9zcmNvZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoTU1WZWN0b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsKKyAgICAgICAgICAgIHtzZWxm LnJlZ190Y2coKX1fc3Jjb2ZmID0KKyAgICAgICAgICAgICAgICB2cmVnX3NyY19vZmYoY3R4LCB7 c2VsZi5yZWdfbnVtfSBeIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ7c2VsZi5y ZWdfdGNnKCl9X3NyY2Jhc2UpOworICAgICAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92YXIoTU9f NjQsIHtzZWxmLmh2eF9iYXNlKCl9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg e3NlbGYuaHZ4X29mZigpfSArIHNpemVvZihNTVZlY3RvciksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7c2VsZi5yZWdfdGNnKCl9X3NyY2Jhc2UsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7c2VsZi5yZWdfdGNnKCl9X3NyY29mZiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOwog ICAgICAgICAiIiIpKQogICAgICAgICBpZiBub3Qgc2tpcF9xZW11X2hlbHBlcih0YWcpOgotICAg ICAgICAgICAgZi53cml0ZShjb2RlX2ZtdChmIiIiXAotICAgICAgICAgICAgICAgIFRDR3ZfcHRy IHtzZWxmLnJlZ190Y2coKX0gPSB0Y2dfdGVtcF9uZXdfcHRyKCk7Ci0gICAgICAgICAgICAgICAg dGNnX2dlbl9hZGRpX3B0cih7c2VsZi5yZWdfdGNnKCl9LCB0Y2dfZW52LCB7c2VsZi5odnhfb2Zm KCl9KTsKLSAgICAgICAgICAgICIiIikpCisgICAgICAgICAgICBzZWxmLmRlY2xfdGNnX3B0cihm KQogICAgIGRlZiBoZWxwZXJfaHZ4X2Rlc2Moc2VsZiwgZik6CiAgICAgICAgIGYud3JpdGUoY29k ZV9mbXQoZiIiIlwKICAgICAgICAgICAgIC8qIHtzZWxmLnJlZ190Y2coKX0gaXMgKihNTVZlY3Rv clBhaXIgKikoe3NlbGYuaGVscGVyX2FyZ19uYW1lKCl9KSAqLwpAQCAtOTgyLDI5ICsxMDA1LDM2 IEBAIGNsYXNzIFZSZWdQYWlyUmVhZFdyaXRlKFJlZ2lzdGVyLCBIdngsIFJlYWRXcml0ZSk6CiAg ICAgZGVmIGRlY2xfdGNnKHNlbGYsIGYsIHRhZywgcmVnbm8pOgogICAgICAgICBzZWxmLmRlY2xf cmVnX251bShmLCByZWdubykKICAgICAgICAgZi53cml0ZShjb2RlX2ZtdChmIiIiXAorICAgICAg ICAgICAgVENHdl9wdHIge3NlbGYuaHZ4X2Jhc2UoKX0gPSB0Y2dfZW52OworICAgICAgICAgICAg VENHdl9wdHIge3NlbGYucmVnX3RjZygpfV9zcmNiYXNlOwogICAgICAgICAgICAgY29uc3QgaW50 cHRyX3Qge3NlbGYuaHZ4X29mZigpfSA9CiAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoQ1BVSGV4 YWdvblN0YXRlLCB7c2VsZi5yZWdfdGNnKCl9KTsKLSAgICAgICAgICAgIHRjZ19nZW5fZ3ZlY19t b3YoTU9fNjQsIHtzZWxmLmh2eF9vZmYoKX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZyZWdfc3JjX29mZihjdHgsIHtzZWxmLnJlZ19udW19KSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKE1NVmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7Ci0gICAgICAgICAg ICB0Y2dfZ2VuX2d2ZWNfbW92KE1PXzY0LCB7c2VsZi5odnhfb2ZmKCl9ICsgc2l6ZW9mKE1NVmVj dG9yKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnJlZ19zcmNfb2ZmKGN0eCwge3Nl bGYucmVnX251bX0gXiAxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1N VmVjdG9yKSwgc2l6ZW9mKE1NVmVjdG9yKSk7CisgICAgICAgICAgICBpbnRwdHJfdCB7c2VsZi5y ZWdfdGNnKCl9X3NyY29mZiA9CisgICAgICAgICAgICAgICAgdnJlZ19zcmNfb2ZmKGN0eCwge3Nl bGYucmVnX251bX0sICZ7c2VsZi5yZWdfdGNnKCl9X3NyY2Jhc2UpOworICAgICAgICAgICAgdGNn X2dlbl9ndmVjX21vdl92YXIoTU9fNjQsIHtzZWxmLmh2eF9iYXNlKCl9LCB7c2VsZi5odnhfb2Zm KCl9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NlbGYucmVnX3RjZygpfV9z cmNiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NlbGYucmVnX3RjZygp fV9zcmNvZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1WZWN0 b3IpLCBzaXplb2YoTU1WZWN0b3IpKTsKKyAgICAgICAgICAgIHtzZWxmLnJlZ190Y2coKX1fc3Jj b2ZmID0KKyAgICAgICAgICAgICAgICB2cmVnX3NyY19vZmYoY3R4LCB7c2VsZi5yZWdfbnVtfSBe IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ7c2VsZi5yZWdfdGNnKCl9X3NyY2Jh c2UpOworICAgICAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92YXIoTU9fNjQsIHtzZWxmLmh2eF9i YXNlKCl9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3NlbGYuaHZ4X29mZigp fSArIHNpemVvZihNTVZlY3RvciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 c2VsZi5yZWdfdGNnKCl9X3NyY2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7c2VsZi5yZWdfdGNnKCl9X3NyY29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemVvZihNTVZlY3RvciksIHNpemVvZihNTVZlY3RvcikpOwogICAgICAgICAiIiIpKQog ICAgICAgICBpZiBub3Qgc2tpcF9xZW11X2hlbHBlcih0YWcpOgotICAgICAgICAgICAgZi53cml0 ZShjb2RlX2ZtdChmIiIiXAotICAgICAgICAgICAgICAgIFRDR3ZfcHRyIHtzZWxmLnJlZ190Y2co KX0gPSB0Y2dfdGVtcF9uZXdfcHRyKCk7Ci0gICAgICAgICAgICAgICAgdGNnX2dlbl9hZGRpX3B0 cih7c2VsZi5yZWdfdGNnKCl9LCB0Y2dfZW52LCB7c2VsZi5odnhfb2ZmKCl9KTsKLSAgICAgICAg ICAgICIiIikpCisgICAgICAgICAgICBzZWxmLmRlY2xfdGNnX3B0cihmKQogICAgIGRlZiBnZW5f emVybyhzZWxmLCBmKToKICAgICAgICAgZi53cml0ZShjb2RlX2ZtdChmIiIiXAotICAgICAgICAg ICAgdGNnX2dlbl9ndmVjX2R1cF9pbW0oTU9fNjQsIHtzZWxmLmh2eF9vZmYoKX0sCisgICAgICAg ICAgICB0Y2dfZ2VuX2d2ZWNfZHVwX2ltbV92YXIoTU9fNjQsIHtzZWxmLmh2eF9iYXNlKCl9LCB7 c2VsZi5odnhfb2ZmKCl9LAogICAgICAgICAgICAgICAgIHNpemVvZihNTVZlY3RvclBhaXIpLCBz aXplb2YoTU1WZWN0b3JQYWlyKSwgMCk7CiAgICAgICAgICIiIikpCiAgICAgZGVmIGdlbl93cml0 ZShzZWxmLCBmLCB0YWcpOgogICAgICAgICBmLndyaXRlKGNvZGVfZm10KGYiIiJcCi0gICAgICAg ICAgICBnZW5fdnJlZ193cml0ZV9wYWlyKGN0eCwge3NlbGYuaHZ4X29mZigpfSwge3NlbGYucmVn X251bX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtodnhfbmV3dih0YWcpfSk7 CisgICAgICAgICAgICBnZW5fdnJlZ193cml0ZV9wYWlyKGN0eCwge3NlbGYuaHZ4X2Jhc2UoKX0s IHtzZWxmLmh2eF9vZmYoKX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzZWxm LnJlZ19udW19LCB7aHZ4X25ld3YodGFnKX0pOwogICAgICAgICAiIiIpKQogICAgIGRlZiBoZWxw ZXJfaHZ4X2Rlc2Moc2VsZiwgZik6CiAgICAgICAgIGYud3JpdGUoY29kZV9mbXQoZiIiIlwKQEAg LTEwMjYsMTQgKzEwNTYsMTIgQEAgY2xhc3MgUVJlZ0Rlc3QoUmVnaXN0ZXIsIEh2eCwgRGVzdCk6 CiAgICAgZGVmIGRlY2xfdGNnKHNlbGYsIGYsIHRhZywgcmVnbm8pOgogICAgICAgICBzZWxmLmRl Y2xfcmVnX251bShmLCByZWdubykKICAgICAgICAgZi53cml0ZShjb2RlX2ZtdChmIiIiXAorICAg ICAgICAgICAgVENHdl9wdHIge3NlbGYuaHZ4X2Jhc2UoKX07CiAgICAgICAgICAgICBjb25zdCBp bnRwdHJfdCB7c2VsZi5odnhfb2ZmKCl9ID0KLSAgICAgICAgICAgICAgICBnZXRfcmVzdWx0X3Fy ZWcoY3R4LCB7c2VsZi5yZWdfbnVtfSk7CisgICAgICAgICAgICAgICAgZ2V0X3Jlc3VsdF9xcmVn KGN0eCwge3NlbGYucmVnX251bX0sICZ7c2VsZi5odnhfYmFzZSgpfSk7CiAgICAgICAgICIiIikp CiAgICAgICAgIGlmIG5vdCBza2lwX3FlbXVfaGVscGVyKHRhZyk6Ci0gICAgICAgICAgICBmLndy aXRlKGNvZGVfZm10KGYiIiJcCi0gICAgICAgICAgICAgICAgVENHdl9wdHIge3NlbGYucmVnX3Rj ZygpfSA9IHRjZ190ZW1wX25ld19wdHIoKTsKLSAgICAgICAgICAgICAgICB0Y2dfZ2VuX2FkZGlf cHRyKHtzZWxmLnJlZ190Y2coKX0sIHRjZ19lbnYsIHtzZWxmLmh2eF9vZmYoKX0pOwotICAgICAg ICAgICAgIiIiKSkKKyAgICAgICAgICAgIHNlbGYuZGVjbF90Y2dfcHRyKGYpCiAgICAgZGVmIGdl bl93cml0ZShzZWxmLCBmLCB0YWcpOgogICAgICAgICBwYXNzCiAgICAgZGVmIGhlbHBlcl9odnhf ZGVzYyhzZWxmLCBmKToKQEAgLTEwNDksMTQgKzEwNzcsMTIgQEAgY2xhc3MgUVJlZ1NvdXJjZShS ZWdpc3RlciwgSHZ4LCBPbGRTb3VyY2UpOgogICAgIGRlZiBkZWNsX3RjZyhzZWxmLCBmLCB0YWcs IHJlZ25vKToKICAgICAgICAgc2VsZi5kZWNsX3JlZ19udW0oZiwgcmVnbm8pCiAgICAgICAgIGYu d3JpdGUoY29kZV9mbXQoZiIiIlwKKyAgICAgICAgICAgIFRDR3ZfcHRyIHtzZWxmLmh2eF9iYXNl KCl9ID0gaGV4X2h2eF9wdHI7CiAgICAgICAgICAgICBjb25zdCBpbnRwdHJfdCB7c2VsZi5odnhf b2ZmKCl9ID0KLSAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVIZXhhZ29uU3RhdGUsIFFSZWdz W3tzZWxmLnJlZ19udW19XSk7CisgICAgICAgICAgICAgICAgSEVYX0hWWF9PRkZTRVQoUVJlZ3Nb e3NlbGYucmVnX251bX1dKTsKICAgICAgICAgIiIiKSkKICAgICAgICAgaWYgbm90IHNraXBfcWVt dV9oZWxwZXIodGFnKToKLSAgICAgICAgICAgIGYud3JpdGUoY29kZV9mbXQoZiIiIlwKLSAgICAg ICAgICAgICAgICBUQ0d2X3B0ciB7c2VsZi5yZWdfdGNnKCl9ID0gdGNnX3RlbXBfbmV3X3B0cigp OwotICAgICAgICAgICAgICAgIHRjZ19nZW5fYWRkaV9wdHIoe3NlbGYucmVnX3RjZygpfSwgdGNn X2Vudiwge3NlbGYuaHZ4X29mZigpfSk7Ci0gICAgICAgICAgICAiIiIpKQorICAgICAgICAgICAg c2VsZi5kZWNsX3RjZ19wdHIoZikKICAgICBkZWYgaGVscGVyX2h2eF9kZXNjKHNlbGYsIGYpOgog ICAgICAgICBmLndyaXRlKGNvZGVfZm10KGYiIiJcCiAgICAgICAgICAgICAvKiB7c2VsZi5yZWdf dGNnKCl9IGlzICooTU1RUmVnICopKHtzZWxmLmhlbHBlcl9hcmdfbmFtZSgpfSkgKi8KQEAgLTEw NzAsMTcgKzEwOTYsMTYgQEAgY2xhc3MgUVJlZ1JlYWRXcml0ZShSZWdpc3RlciwgSHZ4LCBSZWFk V3JpdGUpOgogICAgIGRlZiBkZWNsX3RjZyhzZWxmLCBmLCB0YWcsIHJlZ25vKToKICAgICAgICAg c2VsZi5kZWNsX3JlZ19udW0oZiwgcmVnbm8pCiAgICAgICAgIGYud3JpdGUoY29kZV9mbXQoZiIi IlwKKyAgICAgICAgICAgIFRDR3ZfcHRyIHtzZWxmLmh2eF9iYXNlKCl9OwogICAgICAgICAgICAg Y29uc3QgaW50cHRyX3Qge3NlbGYuaHZ4X29mZigpfSA9Ci0gICAgICAgICAgICAgICAgZ2V0X3Jl c3VsdF9xcmVnKGN0eCwge3NlbGYucmVnX251bX0pOwotICAgICAgICAgICAgdGNnX2dlbl9ndmVj X21vdihNT182NCwge3NlbGYuaHZ4X29mZigpfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0b2YoQ1BVSGV4YWdvblN0YXRlLCBRUmVnc1t7c2VsZi5yZWdfbnVtfV0pLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTU1RUmVnKSwgc2l6ZW9mKE1NUVJlZykp OworICAgICAgICAgICAgICAgIGdldF9yZXN1bHRfcXJlZyhjdHgsIHtzZWxmLnJlZ19udW19LCAm e3NlbGYuaHZ4X2Jhc2UoKX0pOworICAgICAgICAgICAgdGNnX2dlbl9ndmVjX21vdl92YXIoTU9f NjQsIHtzZWxmLmh2eF9iYXNlKCl9LCB7c2VsZi5odnhfb2ZmKCl9LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGV4X2h2eF9wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBIRVhfSFZYX09GRlNFVChRUmVnc1t7c2VsZi5yZWdfbnVtfV0pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1NUVJlZyksIHNpemVvZihNTVFSZWcpKTsK ICAgICAgICAgIiIiKSkKICAgICAgICAgaWYgbm90IHNraXBfcWVtdV9oZWxwZXIodGFnKToKLSAg ICAgICAgICAgIGYud3JpdGUoY29kZV9mbXQoZiIiIlwKLSAgICAgICAgICAgICAgICBUQ0d2X3B0 ciB7c2VsZi5yZWdfdGNnKCl9ID0gdGNnX3RlbXBfbmV3X3B0cigpOwotICAgICAgICAgICAgICAg IHRjZ19nZW5fYWRkaV9wdHIoe3NlbGYucmVnX3RjZygpfSwgdGNnX2Vudiwge3NlbGYuaHZ4X29m ZigpfSk7Ci0gICAgICAgICAgICAiIiIpKQorICAgICAgICAgICAgc2VsZi5kZWNsX3RjZ19wdHIo ZikKICAgICBkZWYgZ2VuX3dyaXRlKHNlbGYsIGYsIHRhZyk6CiAgICAgICAgIHBhc3MKICAgICBk ZWYgaGVscGVyX2h2eF9kZXNjKHNlbGYsIGYpOgotLSAKMi4zNC4xCgo=