From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id IBukL7ij119ZZwAAWB0awg (envelope-from ) for ; Mon, 14 Dec 2020 12:41:12 -0500 Received: by simark.ca (Postfix, from userid 112) id B33E61F0AA; Mon, 14 Dec 2020 12:41:12 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: * X-Spam-Status: No, score=1.9 required=5.0 tests=FORGED_MUA_MOZILLA, FREEMAIL_FROM,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,RDNS_NONE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id E2D4F1E590 for ; Mon, 14 Dec 2020 12:41:09 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A6C3D384A87E; Mon, 14 Dec 2020 17:41:09 +0000 (GMT) Received: from EUR06-AM7-obe.outbound.protection.outlook.com (mail-am7eur06olkn2078.outbound.protection.outlook.com [40.92.16.78]) by sourceware.org (Postfix) with ESMTPS id 54ACF384A87E for ; Mon, 14 Dec 2020 17:41:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 54ACF384A87E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=hotmail.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=bernd.edlinger@hotmail.de ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZgHmYD6pNj5NEFqc9/8PKxTXR+kUEykNsLS3jrO67KqEXFRGK6jqEaY1I1RK9cD6rt1/jRJNkOlwXnyIrcpmNvL2QcF8HF4T5NrzhSZ4PaEznRYtDBNaNN4brT3v0eI10A2Rcb6b4e6w3MNXURt80N6cQiX4xKj+ZZiLwfltL5l8G3JwyFT33Mj9/Y3fnIr833q/1ZBGgAq8NUK8igu8T3nX9srKUFTKPf78raYrv3s/GkaykxeC2ddxu0bh9/99f/v6I18FMY/pooRA0yFxBwUG9bh90s2FleypyOSZW2Sxde3UUHDyOd82XGqrKQjOYD4GKEAmqwCcEjjIRsI0MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h1DmndlArvJQT9ikBESCuJWQ7N8TwqF91cdaAqhxlGQ=; b=Xb7Tqwxn9KtkHzntd6iXVWb+9Yg7z5c1khzbKyQyQmHKcCgaOCIL4/a88Fu85T7NxrMLtB3gXi0rYNaf8c5D1ykQGm96r2QqAO/jw9/TAAI4n1AeQAW84+OMDFY0vUb/LbqUMvnb+8vIVFN0vaVaf2wOz3ANfJcXW73T88DsDDiDtb93iRTcZgmR6xAf71TQgXG/SPgJeA7HQSWA7smxS4FCku9yHyI3mpU0syiJAkr2Qn+/pQcD5s4RBBYsz2OcXwF6nR71zUgM00vDf/3EsqOK7t1/ZhntDdHuWyvp6UfjZfONLn5xuRulv/hxow8mj3hQCMu3ALzGg6l9RkkSAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from AM7EUR06FT014.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::43) by AM7EUR06HT245.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::347) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.12; Mon, 14 Dec 2020 17:41:01 +0000 Received: from AM6PR03MB5170.eurprd03.prod.outlook.com (2a01:111:e400:fc36::41) by AM7EUR06FT014.mail.protection.outlook.com (2a01:111:e400:fc36::448) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.12 via Frontend Transport; Mon, 14 Dec 2020 17:41:01 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:5522A3AD0A13A98C15C9FE81316513C963E05ED923C1FA38E3124272E708A93D; UpperCasedChecksum:DD2AD866E29AD9A7D3091816F15774CD16AC9BD78011EDD5CCE5630BF13C8159; SizeAsReceived:8839; Count:46 Received: from AM6PR03MB5170.eurprd03.prod.outlook.com ([fe80::184e:5e8c:db8f:a596]) by AM6PR03MB5170.eurprd03.prod.outlook.com ([fe80::184e:5e8c:db8f:a596%5]) with mapi id 15.20.3654.024; Mon, 14 Dec 2020 17:41:01 +0000 From: Bernd Edlinger Subject: [PATCH v2] Enable GDB build with in-tree GMP and MPFR To: Simon Marchi , Joel Brobecker , Pedro Alves , Eli Zaretskii , Andrew Burgess , "gdb-patches@sourceware.org" References: <1604817017-25807-1-git-send-email-brobecker@adacore.com> <1605429345-78384-1-git-send-email-brobecker@adacore.com> <1605429345-78384-2-git-send-email-brobecker@adacore.com> <20201116034518.GA609903@adacore.com> <20201118034455.GE617116@adacore.com> <71f5437f-c4f5-b58d-06f7-67a4d0b31007@simark.ca> Message-ID: Date: Mon, 14 Dec 2020 18:40:59 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 In-Reply-To: Content-Type: multipart/mixed; boundary="------------C5A5738CA30170CE31E3D5EC" Content-Language: en-US X-TMN: [8fXftt0rqQIz9A2O3H8iJ8iuqeTckJCU] X-ClientProxiedBy: AM3PR05CA0105.eurprd05.prod.outlook.com (2603:10a6:207:1::31) To AM6PR03MB5170.eurprd03.prod.outlook.com (2603:10a6:20b:ca::23) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.101] (88.68.3.2) by AM3PR05CA0105.eurprd05.prod.outlook.com (2603:10a6:207:1::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.12 via Frontend Transport; Mon, 14 Dec 2020 17:41:00 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 04a9f963-46f5-4d09-a75a-08d8a0576c79 X-MS-TrafficTypeDiagnostic: AM7EUR06HT245: X-MS-Exchange-MinimumUrlDomainAge: gmplib.org#5038 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bMEOPfQfetSd+bcdgsaN4qC4GxRwgEvWeGIZGg65TSSOPKoCsHWv7WJpCEhiuWf9ItpA4MFU5WGx61FYGVTmA05t0kJBWu8nsqrr8TcORqIKP64cEeAEnzS6atIlyTwYvcz8jMA7ZL3pWbKK5AEzGS4iSjrQxrhP69hZzMzmgx5vL/ApBggwJQ6Rk752MAOV5K/K4l7Rk010btnM9ywG+TkUHiEH+gLNaixyH6qrCDqHfK8M0h9bQuXv0Oku05e6 X-MS-Exchange-AntiSpam-MessageData: SI6rfMr7Qv8vqN6z8u2xZLtIjfbJoVejKXccFV3h6SuQDgx/qkKTqOczTTnOicrVf8faYlzuGv4MVfDVVT+fAmn0i9TSIEH32VJAZIlb9zUnb3+GmAYKccWTL/hEB7Pf7OvGBAvDcQY+UoUKT3ikIg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2020 17:41:01.4576 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-Network-Message-Id: 04a9f963-46f5-4d09-a75a-08d8a0576c79 X-MS-Exchange-CrossTenant-AuthSource: AM7EUR06FT014.eop-eur06.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7EUR06HT245 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" --------------C5A5738CA30170CE31E3D5EC Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Well, I thought, I should add a few words in the README about this feature: diff --git a/gdb/README b/gdb/README index e65c5ea..db0a774 100644 --- a/gdb/README +++ b/gdb/README @@ -488,6 +488,9 @@ more obscure GDB `configure' options are not listed here. Build GDB using the GMP library installed at the directory DIR. If your host does not have GMP installed, you can get the latest version at `https://gmplib.org/'. + You can also build GMP in-tree when you use the script + ./contrib/download_prerequisites. Note however, that this + does only work with a separate build directory. `--with-mpfr' Build GDB with GNU MPFR, a library for multiple-precision @@ -499,6 +502,9 @@ more obscure GDB `configure' options are not listed here. available, GDB will fall back to using host floating-point arithmetic. If your host does not have GNU MPFR installed, you can get the latest version from `https://www.mpfr.org/'. + You can also build MPFR in-tree when you use the script + ./contrib/download_prerequisites. Note however, that this + does only work with a separate build directory. `--with-python[=PYTHON]' Build GDB with Python scripting support. (Done by default if Tested on x86_64-pc-linux-gnu. Is it OK for trunk? Thanks Bernd. --------------C5A5738CA30170CE31E3D5EC Content-Type: text/x-patch; name="0001-Enable-GDB-build-with-in-tree-GMP-and-MPFR.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Enable-GDB-build-with-in-tree-GMP-and-MPFR.patch" RnJvbSAzNjdmYWU5NzJlOTAzNzA1NDA0Njg3ODZmNTk4NTZjYjc1ODFmNmIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuZCBFZGxpbmdlciA8YmVybmQuZWRsaW5nZXJAaG90bWFp bC5kZT4KRGF0ZTogU3VuLCAxNSBOb3YgMjAyMCAxNTozNzoyMiArMDEwMApTdWJqZWN0OiBbUEFU Q0hdIEVuYWJsZSBHREIgYnVpbGQgd2l0aCBpbi10cmVlIEdNUCBhbmQgTVBGUgoKV2l0aCB0aGlz IHBhdGNoIEdEQiBjYW4gYmUgYnVpbHQgd2l0aCBpbi10cmVlIEdNUCBhbmQvb3IKTVBGUi4gIFRo aXMgd29ya3MgYWxzbyBmb3IgY3Jvc3MtYnVpbGRzLgoKQWxsIHRoYXQgaXMgbmVlZGVkLCBpcyBh IHN5bS1saW5rIGluIHRoZSBzb3VyY2UgdHJlZSwKbGlrZSB0aGlzOgoKZ21wIC0+IC4uL2dtcC02 LjEuMAptcGZyIC0+IC4uL21wZnItMy4xLjQKCjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8 YmVybmQuZWRsaW5nZXJAaG90bWFpbC5kZT4KCgkqIE1ha2VmaWxlLmRlZjogUHJlcGFyZSBmb3Ig R0RCIGJ1aWxkIHdpdGggaW50cmVlIEdNUC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgpn ZGI6CjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5k ZT4KCgkqIGNvbmZpZ3VyZS5hYzogQWRkIC0td2l0aC1nbXA9RElSLCAtLXdpdGgtZ21wLWluY2x1 ZGU9RElSCglhbmQgLS13aXRoLWdtcC1saWI9RElSCglhcyB3ZWxsIGFzIC0td2l0aC1tcGZyLWlu Y2x1ZGU9RElSIGFuZCAtLXdpdGgtbXBmci1saWI9RElSCglmb3IgY29tcGF0aWJpbGl0eSB3aXRo IHRvcCBsZXZlbCBjb25maWd1cmUgc2NyaXB0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkq IFJFQURNRTogTWVudGlvbiAuL2NvbnRyaWIvZG93bmxvYWRfcHJlcmVxdWlzaXRlcy4KCmNvbnRy aWI6CjIwMjAtMTItMTAgIEJlcm5kIEVkbGluZ2VyICA8YmVybmQuZWRsaW5nZXJAaG90bWFpbC5k ZT4KCgkqIGRvd25sb2FkX3ByZXJlcXVpc2l0ZXM6IE5ldyBoZWxwZXIgc2NyaXB0LgoJKiBwcmVy ZXF1aXNpdGVzLm1kNTogY2hlY2tzdW1zLgoJKiBwcmVyZXF1aXNpdGVzLnNoYTUxMjogY2hlY2tz dW1zLgotLS0KIE1ha2VmaWxlLmRlZiAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogTWFrZWZp bGUuaW4gICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBjb250cmliL2Rvd25sb2FkX3ByZXJl cXVpc2l0ZXMgfCAyNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGNvbnRyaWIvcHJlcmVxdWlzaXRlcy5tZDUgICAgICB8ICAgMiArCiBjb250cmliL3ByZXJlcXVp c2l0ZXMuc2hhNTEyICAgfCAgIDIgKwogZ2RiL1JFQURNRSAgICAgICAgICAgICAgICAgICAgIHwg ICA2ICsKIGdkYi9jb25maWd1cmUgICAgICAgICAgICAgICAgICB8ICA1MiArKysrKysrKwogZ2Ri L2NvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgIHwgIDI1ICsrKysKIDggZmlsZXMgY2hhbmdlZCwg MzU3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgY29u dHJpYi9kb3dubG9hZF9wcmVyZXF1aXNpdGVzCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9w cmVyZXF1aXNpdGVzLm1kNQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcHJlcmVxdWlzaXRl cy5zaGE1MTIKCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5kZWYgYi9NYWtlZmlsZS5kZWYKaW5kZXgg MDg5ZTcwYS4uMWI5OWI0MiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuZGVmCisrKyBiL01ha2VmaWxl LmRlZgpAQCAtMTE1LDcgKzExNSw4IEBAIGhvc3RfbW9kdWxlcz0geyBtb2R1bGU9IHpsaWI7IG5v X2luc3RhbGw9dHJ1ZTsgbm9fY2hlY2s9dHJ1ZTsKIGhvc3RfbW9kdWxlcz0geyBtb2R1bGU9IGdu dWxpYjsgfTsKIGhvc3RfbW9kdWxlcz0geyBtb2R1bGU9IGdkYnN1cHBvcnQ7IH07CiBob3N0X21v ZHVsZXM9IHsgbW9kdWxlPSBnZGJzZXJ2ZXI7IH07Ci1ob3N0X21vZHVsZXM9IHsgbW9kdWxlPSBn ZGI7IH07Citob3N0X21vZHVsZXM9IHsgbW9kdWxlPSBnZGI7CisJCWV4dHJhX2NvbmZpZ3VyZV9m bGFncz0nQGV4dHJhX21wZnJfY29uZmlndXJlX2ZsYWdzQCBAZXh0cmFfbXBjX21wZnJfY29uZmln dXJlX2ZsYWdzQCc7fTsKIGhvc3RfbW9kdWxlcz0geyBtb2R1bGU9IGV4cGVjdDsgfTsKIGhvc3Rf bW9kdWxlcz0geyBtb2R1bGU9IGd1aWxlOyB9OwogaG9zdF9tb2R1bGVzPSB7IG1vZHVsZT0gdGs7 IH07CkBAIC0zOTEsNiArMzkyLDggQEAgZGVwZW5kZW5jaWVzID0geyBtb2R1bGU9YWxsLWludGw7 IG9uPWFsbC1saWJpY29udjsgfTsKIAogLy8gSG9zdCBtb2R1bGVzIHNwZWNpZmljIHRvIGdkYi4K IGRlcGVuZGVuY2llcyA9IHsgbW9kdWxlPWNvbmZpZ3VyZS1nZGI7IG9uPWFsbC1pbnRsOyB9Owor ZGVwZW5kZW5jaWVzID0geyBtb2R1bGU9Y29uZmlndXJlLWdkYjsgb249YWxsLWdtcDsgfTsKK2Rl cGVuZGVuY2llcyA9IHsgbW9kdWxlPWNvbmZpZ3VyZS1nZGI7IG9uPWFsbC1tcGZyOyB9OwogZGVw ZW5kZW5jaWVzID0geyBtb2R1bGU9Y29uZmlndXJlLWdkYjsgb249Y29uZmlndXJlLXNpbTsgfTsK IGRlcGVuZGVuY2llcyA9IHsgbW9kdWxlPWNvbmZpZ3VyZS1nZGI7IG9uPWFsbC1iZmQ7IH07CiBk ZXBlbmRlbmNpZXMgPSB7IG1vZHVsZT1jb25maWd1cmUtZ2RiOyBvbj1hbGwtZ251bGliOyB9Owpk aWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgppbmRleCBmZTM0MTMyLi43Mzhm ZDMyIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5pbgorKysgYi9NYWtlZmlsZS5pbgpAQCAtMjk0OTEs NyArMjk0OTEsNyBAQCBjb25maWd1cmUtZ2RiOgogCSAgJCRzLyQkbW9kdWxlX3NyY2Rpci9jb25m aWd1cmUgXAogCSAgLS1zcmNkaXI9JCR7dG9wZGlyfS8kJG1vZHVsZV9zcmNkaXIgXAogCSAgJChI T1NUX0NPTkZJR0FSR1MpIC0tYnVpbGQ9JHtidWlsZF9hbGlhc30gLS1ob3N0PSR7aG9zdF9hbGlh c30gXAotCSAgLS10YXJnZXQ9JHt0YXJnZXRfYWxpYXN9ICBcCisJICAtLXRhcmdldD0ke3Rhcmdl dF9hbGlhc30gQGV4dHJhX21wZnJfY29uZmlndXJlX2ZsYWdzQCBAZXh0cmFfbXBjX21wZnJfY29u ZmlndXJlX2ZsYWdzQCBcCiAJICB8fCBleGl0IDEKIEBlbmRpZiBnZGIKIApAQCAtNTI0NDksNiAr NTI0NDksOCBAQCBjb25maWd1cmUtbGliY2MxOiBtYXliZS1jb25maWd1cmUtZ2NjCiBhbGwtbGli Y2MxOiBtYXliZS1hbGwtZ2NjCiBhbGwtdXRpbHM6IG1heWJlLWFsbC1saWJpYmVydHkKIGNvbmZp Z3VyZS1nZGI6IG1heWJlLWFsbC1pbnRsCitjb25maWd1cmUtZ2RiOiBtYXliZS1hbGwtZ21wCitj b25maWd1cmUtZ2RiOiBtYXliZS1hbGwtbXBmcgogY29uZmlndXJlLWdkYjogbWF5YmUtYWxsLWJm ZAogY29uZmlndXJlLWdkYjogbWF5YmUtYWxsLWxpYmljb252CiBhbGwtZ2RiOiBtYXliZS1hbGwt bGliaWJlcnR5CmRpZmYgLS1naXQgYS9jb250cmliL2Rvd25sb2FkX3ByZXJlcXVpc2l0ZXMgYi9j b250cmliL2Rvd25sb2FkX3ByZXJlcXVpc2l0ZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg MDAwMDAwMC4uMGQwNDAzMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZG93bmxvYWRfcHJl cmVxdWlzaXRlcwpAQCAtMCwwICsxLDI2MyBAQAorIyEgL2Jpbi9zaAorIyEgLSotIGNvZGluZzp1 dGYtODsgbW9kZTpzaGVsbC1zY3JpcHQ7IC0qLQorCisjIERvd25sb2FkIHNvbWUgcHJlcmVxdWlz aXRlcyBuZWVkZWQgYnkgR0RCLgorIyBSdW4gdGhpcyBmcm9tIHRoZSB0b3AgbGV2ZWwgb2YgdGhl IEdEQiBzb3VyY2UgdHJlZSBhbmQgdGhlIEdEQiBidWlsZCB3aWxsIGRvCisjIHRoZSByaWdodCB0 aGluZy4gIFJ1biBpdCB3aXRoIHRoZSBgLS1oZWxwYCBvcHRpb24gZm9yIG1vcmUgaW5mb3JtYXRp b24uCisjCisjIChDKSAyMDEwLTIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjCisjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VCisjIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8uCisKK3Byb2dyYW09J2Rvd25sb2FkX3ByZXJlcXVpc2l0ZXMnCit2ZXJzaW9uPSco dW52ZXJzaW9uZWQpJworCisjIE1BSU5UQUlORVJTOiBJZiB5b3UgdXBkYXRlIHRoZSBwYWNrYWdl IHZlcnNpb25zIGJlbG93LCBwbGVhc2UKKyMgcmVtZW1iZXIgdG8gYWxzbyB1cGRhdGUgdGhlIGZp bGVzIGBjb250cmliL3ByZXJlcXVpc2l0ZXMuc2hhNTEyYCBhbmQKKyMgYGNvbnRyaWIvcHJlcmVx dWlzaXRlcy5tZDVgIHdpdGggdGhlIG5ldyBjaGVja3N1bXMuCisKK2dtcD0nZ21wLTYuMS4wLnRh ci5iejInCittcGZyPSdtcGZyLTMuMS40LnRhci5iejInCisKK2Jhc2VfdXJsPSdodHRwOi8vZ2Nj LmdudS5vcmcvcHViL2djYy9pbmZyYXN0cnVjdHVyZS8nCisKK2VjaG9fYXJjaGl2ZXMoKSB7Cisg ICAgZWNobyAiJHtnbXB9IgorICAgIGVjaG8gIiR7bXBmcn0iCit9CisKK3ZlcmlmeT0xCitmb3Jj ZT0wCitPUz0kKHVuYW1lKQorCitjYXNlICRPUyBpbgorICAiRGFyd2luInwiRnJlZUJTRCJ8IkRy YWdvbkZseSJ8IkFJWCIpCisgICAgY2hrc3VtPSdzaGFzdW0gLWEgNTEyIC0tY2hlY2snCisgIDs7 CisgICJPcGVuQlNEIikKKyAgICBjaGtzdW09J3NoYTUxMiAtYycKKyAgOzsKKyAgKikKKyAgICBj aGtzdW09J3NoYTUxMnN1bSAtYycKKyAgOzsKK2VzYWMKKworaWYgdHlwZSB3Z2V0ID4gL2Rldi9u dWxsIDsgdGhlbgorICBmZXRjaD0nd2dldCcKK2Vsc2UKKyAgZmV0Y2g9J2N1cmwgLUxPJworZmkK K2Noa3N1bV9leHRlbnNpb249J3NoYTUxMicKK2RpcmVjdG9yeT0nLicKKworaGVscHRleHQ9InVz YWdlOiAke3Byb2dyYW19IFtPUFRJT04uLi5dCisKK0Rvd25sb2FkcyBzb21lIHByZXJlcXVpc2l0 ZXMgbmVlZGVkIGJ5IEdEQi4gIFJ1biB0aGlzIGZyb20gdGhlIHRvcCBsZXZlbCBvZiB0aGUKK0dE QiBzb3VyY2UgdHJlZSBhbmQgdGhlIEdEQiBidWlsZCB3aWxsIGRvIHRoZSByaWdodCB0aGluZy4K KworVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBhdmFpbGFibGU6CisKKyAtLWRpcmVjdG9yeT1E SVIgIGRvd25sb2FkIGFuZCB1bnBhY2sgcGFja2FnZXMgaW50byBESVIgaW5zdGVhZCBvZiAnLicK KyAtLWZvcmNlICAgICAgICAgIGRvd25sb2FkIGFnYWluIG92ZXJ3cml0aW5nIGV4aXN0aW5nIHBh Y2thZ2VzCisgLS1uby1mb3JjZSAgICAgICBkbyBub3QgZG93bmxvYWQgZXhpc3RpbmcgcGFja2Fn ZXMgYWdhaW4gKGRlZmF1bHQpCisgLS12ZXJpZnkgICAgICAgICB2ZXJpZnkgcGFja2FnZSBpbnRl Z3JpdHkgYWZ0ZXIgZG93bmxvYWQgKGRlZmF1bHQpCisgLS1uby12ZXJpZnkgICAgICBkb24ndCB2 ZXJpZnkgcGFja2FnZSBpbnRlZ3JpdHkKKyAtLXNoYTUxMiAgICAgICAgIHVzZSBTSEE1MTIgY2hl Y2tzdW0gdG8gdmVyaWZ5IHBhY2thZ2UgaW50ZWdyaXR5IChkZWZhdWx0KQorIC0tbWQ1ICAgICAg ICAgICAgdXNlIE1ENSBjaGVja3N1bSB0byB2ZXJpZnkgcGFja2FnZSBpbnRlZ3JpdHkKKyAtLWhl bHAgICAgICAgICAgIHNob3cgdGhpcyB0ZXh0IGFuZCBleGl0CisgLS12ZXJzaW9uICAgICAgICBz aG93IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKyIKKwordmVyc2lvbnRleHQ9IiR7cHJv Z3JhbX0gJHt2ZXJzaW9ufQorQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29w eWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiIKKworZGll KCkgeworICAgIGVjaG8gImVycm9yOiAkQCIgPiYyCisgICAgZXhpdCAxCit9CisKK2ZvciBhcmcg aW4gIiRAIgorZG8KKyAgICBjYXNlICIke2FyZ30iIGluCisgICAgICAgIC0taGVscCkKKyAgICAg ICAgICAgIGVjaG8gIiR7aGVscHRleHR9IgorICAgICAgICAgICAgZXhpdAorICAgICAgICAgICAg OzsKKyAgICAgICAgLS12ZXJzaW9uKQorICAgICAgICAgICAgZWNobyAiJHt2ZXJzaW9udGV4dH0i CisgICAgICAgICAgICBleGl0CisgICAgICAgICAgICA7OworICAgIGVzYWMKK2RvbmUKK3Vuc2V0 IGFyZworCisjIEVtdWxhdGUgTGludXgncyAnbWQ1IC0tY2hlY2snIG9uIG1hY09TCittZDVfY2hl Y2soKSB7CisgICMgU3RvcmUgdGhlIHN0YW5kYXJkIGlucHV0OiBhIGxpbmUgZnJvbSBjb250cmli L3ByZXJlcXVpc2l0ZXMubWQ1OgorICBtZDVfY2hlY2tzdW1fbGluZT0kKGNhdCAtKQorICAjIEdy YWIgdGhlIHRleHQgYmVmb3JlIHRoZSBmaXJzdCBzcGFjZQorICBtZDVfY2hlY2tzdW1fZXhwZWN0 ZWQ9IiR7bWQ1X2NoZWNrc3VtX2xpbmUlJSAqfSIKKyAgIyBHcmFiIHRoZSB0ZXh0IGFmdGVyIHRo ZSBmaXJzdCBzcGFjZQorICBmaWxlX3RvX2NoZWNrPSIke21kNV9jaGVja3N1bV9saW5lIyMqIH0i CisgICMgQ2FsY3VsYXRlIHRoZSBtZDUgY2hlY2tzdW0gZm9yIHRoZSBkb3dubG9hZGVkIGZpbGUK KyAgbWQ1X2NoZWNrc3VtX291dHB1dD0kKG1kNSAtciAiJHtmaWxlX3RvX2NoZWNrfSIpCisgICMg R3JhYiB0aGUgdGV4dCBiZWZvcmUgdGhlIGZpcnN0IHNwYWNlCisgIG1kNV9jaGVja3N1bV9kZXRl Y3RlZD0iJHttZDVfY2hlY2tzdW1fb3V0cHV0JSUgKn0iCisgIFsgIiR7bWQ1X2NoZWNrc3VtX2V4 cGVjdGVkfSIgPT0gIiR7bWQ1X2NoZWNrc3VtX2RldGVjdGVkfSIgXSBcCisgICAgfHwgZGllICJD YW5ub3QgdmVyaWZ5IGludGVncml0eSBvZiBwb3NzaWJseSBjb3JydXB0ZWQgZmlsZSAke2ZpbGVf dG9fY2hlY2t9IgorICBlY2hvICIke2ZpbGVfdG9fY2hlY2t9OiBPSyIKK30KKworCithcmduZXh0 PQorZm9yIGFyZyBpbiAiJEAiCitkbworICAgIGlmIFsgIngke2FyZ25leHR9IiA9IHggXQorICAg IHRoZW4KKyAgICAgICAgY2FzZSAiJHthcmd9IiBpbgorICAgICAgICAgICAgLS1kaXJlY3Rvcnkp CisgICAgICAgICAgICAgICAgYXJnbmV4dD0nZGlyZWN0b3J5JworICAgICAgICAgICAgICAgIDs7 CisgICAgICAgICAgICAtLWRpcmVjdG9yeT0qKQorICAgICAgICAgICAgICAgIGRpcmVjdG9yeT0i JHthcmcjLS1kaXJlY3Rvcnk9fSIKKyAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgLS1m b3JjZSkKKyAgICAgICAgICAgICAgICBmb3JjZT0xCisgICAgICAgICAgICAgICAgOzsKKyAgICAg ICAgICAgIC0tbm8tZm9yY2UpCisgICAgICAgICAgICAgICAgZm9yY2U9MAorICAgICAgICAgICAg ICAgIDs7CisgICAgICAgICAgICAtLXZlcmlmeSkKKyAgICAgICAgICAgICAgICB2ZXJpZnk9MQor ICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAtLW5vLXZlcmlmeSkKKyAgICAgICAgICAg ICAgICB2ZXJpZnk9MAorICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAtLXNoYTUxMikK KyAgICAgICAgICAgICAgICBjYXNlICRPUyBpbgorICAgICAgICAgICAgICAgICAgIkRhcndpbiIp CisgICAgICAgICAgICAgICAgICAgIGNoa3N1bT0nc2hhc3VtIC1hIDUxMiAtLWNoZWNrJworICAg ICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgICopCisgICAgICAgICAgICAgICAg ICAgIGNoa3N1bT0nc2hhNTEyc3VtIC0tY2hlY2snCisgICAgICAgICAgICAgICAgICA7OworICAg ICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgICBjaGtzdW1fZXh0ZW5zaW9uPSdzaGE1 MTInCisgICAgICAgICAgICAgICAgdmVyaWZ5PTEKKyAgICAgICAgICAgICAgICA7OworICAgICAg ICAgICAgLS1tZDUpCisgICAgICAgICAgICAgICAgY2FzZSAkT1MgaW4KKyAgICAgICAgICAgICAg ICAgICJEYXJ3aW4iKQorICAgICAgICAgICAgICAgICAgICBjaGtzdW09J21kNV9jaGVjaycKKyAg ICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAqKQorICAgICAgICAgICAgICAg ICAgICBjaGtzdW09J21kNSAtLWNoZWNrJworICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAg ICAgICAgICBlc2FjCisgICAgICAgICAgICAgICAgY2hrc3VtX2V4dGVuc2lvbj0nbWQ1JworICAg ICAgICAgICAgICAgIHZlcmlmeT0xCisgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgIC0q KQorICAgICAgICAgICAgICAgIGRpZSAidW5rbm93biBvcHRpb246ICR7YXJnfSIKKyAgICAgICAg ICAgICAgICA7OworICAgICAgICAgICAgKikKKyAgICAgICAgICAgICAgICBkaWUgInRvbyBtYW55 IGFyZ3VtZW50cyIKKyAgICAgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgZWxzZQor ICAgICAgICBjYXNlICIke2FyZ30iIGluCisgICAgICAgICAgICAtKikKKyAgICAgICAgICAgICAg ICBkaWUgIk1pc3NpbmcgYXJndW1lbnQgZm9yIG9wdGlvbiAtLSR7YXJnbmV4dH0iCisgICAgICAg ICAgICAgICAgOzsKKyAgICAgICAgZXNhYworICAgICAgICBjYXNlICIke2FyZ25leHR9IiBpbgor ICAgICAgICAgICAgZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIGRpcmVjdG9yeT0iJHthcmd9 IgorICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAqKQorICAgICAgICAgICAgICAgIGRp ZSAiVGhlIGltcG9zc2libGUgaGFzIGhhcHBlbmVkIgorICAgICAgICAgICAgICAgIDs7CisgICAg ICAgIGVzYWMKKyAgICAgICAgYXJnbmV4dD0KKyAgICBmaQorZG9uZQorWyAieCR7YXJnbmV4dH0i ID0geCBdIHx8IGRpZSAiTWlzc2luZyBhcmd1bWVudCBmb3Igb3B0aW9uIC0tJHthcmduZXh0fSIK K3Vuc2V0IGFyZyBhcmduZXh0CisKK1sgLWUgLi9nZGIvdmVyc2lvbi5pbiBdICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB8fCBkaWUg IllvdSBtdXN0IHJ1biB0aGlzIHNjcmlwdCBpbiB0aGUgdG9wLWxldmVsIEdEQiBzb3VyY2UgZGly ZWN0b3J5IgorCitbIC1kICIke2RpcmVjdG9yeX0iIF0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfHwgZGllICJObyBzdWNoIGRp cmVjdG9yeTogJHtkaXJlY3Rvcnl9IgorCitmb3IgYXIgaW4gJChlY2hvX2FyY2hpdmVzKQorZG8K KyAgICBpZiBbICR7Zm9yY2V9IC1ndCAwIF07IHRoZW4gcm0gLWYgIiR7ZGlyZWN0b3J5fS8ke2Fy fSI7IGZpCisgICAgWyAtZSAiJHtkaXJlY3Rvcnl9LyR7YXJ9IiBdICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHx8ICggY2QgIiR7ZGlyZWN0 b3J5fSIgJiYgJHtmZXRjaH0gLS1uby12ZXJib3NlICIke2Jhc2VfdXJsfSR7YXJ9IiApICBcCisg ICAgICAgIHx8IGRpZSAiQ2Fubm90IGRvd25sb2FkICR7YXJ9IGZyb20gJHtiYXNlX3VybH0iCitk b25lCit1bnNldCBhcgorCitpZiBbICR7dmVyaWZ5fSAtZ3QgMCBdCit0aGVuCisgICAgY2hrc3Vt ZmlsZT0iY29udHJpYi9wcmVyZXF1aXNpdGVzLiR7Y2hrc3VtX2V4dGVuc2lvbn0iCisgICAgWyAt ciAiJHtjaGtzdW1maWxlfSIgXSB8fCBkaWUgIk5vIGNoZWNrc3VtcyBhdmFpbGFibGUiCisgICAg Zm9yIGFyIGluICQoZWNob19hcmNoaXZlcykKKyAgICBkbworICAgICAgICBncmVwICIke2FyfSIg IiR7Y2hrc3VtZmlsZX0iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICAgICAgfCAoIGNkICIke2RpcmVjdG9yeX0iICYmICR7Y2hrc3VtfSApICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgfHwgZGllICJDYW5ub3QgdmVy aWZ5IGludGVncml0eSBvZiBwb3NzaWJseSBjb3JydXB0ZWQgZmlsZSAke2FyfSIKKyAgICBkb25l CisgICAgdW5zZXQgY2hrc3VtZmlsZQorZmkKK3Vuc2V0IGFyCisKK2ZvciBhciBpbiAkKGVjaG9f YXJjaGl2ZXMpCitkbworICAgIHBhY2thZ2U9IiR7YXIlLnRhcip9IgorICAgIGlmIFsgJHtmb3Jj ZX0gLWd0IDAgXTsgdGhlbiBybSAtcmYgIiR7ZGlyZWN0b3J5fS8ke3BhY2thZ2V9IjsgZmkKKyAg ICBjYXNlICRhciBpbgorICAgICouZ3opCisJdW5jb21wcmVzcz0nZ3ppcCAtZCcKKwk7OworICAg ICouYnoyKQorCXVuY29tcHJlc3M9J2J6aXAyIC1kJworCTs7CisgICAgKikKKwl1bmNvbXByZXNz PSdjYXQnCisJOzsKKyAgICBlc2FjCisgICAgWyAtZSAiJHtkaXJlY3Rvcnl9LyR7cGFja2FnZX0i IF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHx8 ICggY2QgIiR7ZGlyZWN0b3J5fSIgJiYgJHVuY29tcHJlc3MgPCIke2FyfSIgfCB0YXIgLXhmIC0g KSAgICAgICAgICBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IGV4dHJhY3QgcGFja2FnZSBmcm9t ICR7YXJ9IgorICAgIHVuc2V0IHBhY2thZ2UKK2RvbmUKK3Vuc2V0IGFyCisKK2ZvciBhciBpbiAk KGVjaG9fYXJjaGl2ZXMpCitkbworICAgIHRhcmdldD0iJHtkaXJlY3Rvcnl9LyR7YXIlLnRhcip9 LyIKKyAgICBsaW5rbmFtZT0iJHthciUtKn0iCisgICAgaWYgWyAke2ZvcmNlfSAtZ3QgMCBdOyB0 aGVuIHJtIC1mICIke2xpbmtuYW1lfSI7IGZpCisgICAgWyAtZSAiJHtsaW5rbmFtZX0iIF0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgIHx8IGxuIC1zICIke3RhcmdldH0iICIke2xpbmtuYW1lfSIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgIHx8IGRpZSAiQ2Fubm90IGNyZWF0ZSBzeW1ib2xp YyBsaW5rICR7bGlua25hbWV9IC0tPiAke3RhcmdldH0iCisgICAgdW5zZXQgdGFyZ2V0IGxpbmtu YW1lCitkb25lCit1bnNldCBhcgorCitlY2hvICJBbGwgcHJlcmVxdWlzaXRlcyBkb3dubG9hZGVk IHN1Y2Nlc3NmdWxseS4iCmRpZmYgLS1naXQgYS9jb250cmliL3ByZXJlcXVpc2l0ZXMubWQ1IGIv Y29udHJpYi9wcmVyZXF1aXNpdGVzLm1kNQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jZjdiZTBkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wcmVyZXF1aXNpdGVzLm1k NQpAQCAtMCwwICsxLDIgQEAKKzg2ZWU2ZTU0ZWJmYzRhOTBiNjQzYTY1ZTQwMmM0MDQ4ICBnbXAt Ni4xLjAudGFyLmJ6MgorYjhhMmY2YjBlNjhiZWY0NmU1M2RhMmFjNDM5ZTFjZjQgIG1wZnItMy4x LjQudGFyLmJ6MgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wcmVyZXF1aXNpdGVzLnNoYTUxMiBiL2Nv bnRyaWIvcHJlcmVxdWlzaXRlcy5zaGE1MTIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOGYwNWFmZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcHJlcmVxdWlzaXRlcy5z aGE1MTIKQEAgLTAsMCArMSwyIEBACiszYzgyYWVhYjljMTU5NmQ0ZGE4YWZhYzJlZWMzOGU0Mjll ODRmMzIxMWUxYTU3MmNmOGZkMmI1NDY0OTNjNDRjMDM5YjkyMmExMTMzZWFhYTQ4YmQ3ZjNlMTFk YmU3OTVhMzg0ZTIxZWQ5NWNiZTNlY2M1OGQ3YWMwMjI0NjExNyAgZ21wLTYuMS4wLnRhci5iejIK KzUxMDY2MDY2ZmYyYzEyZWQyMTk4NjA1ZWNmNjg4NDZiMGM5NmI1NDhhZGFmYTViODBlMGM3ODZk MGRmNDg4NDExYTVlODk3MzM1OGZjZTcxOTJkYzk3N2FkNGU2ODQxNGNmMTQ1MDBlM2MzOTc0NmRl NjI0NjVlYjE0NWJiODE5ICBtcGZyLTMuMS40LnRhci5iejIKZGlmZiAtLWdpdCBhL2dkYi9SRUFE TUUgYi9nZGIvUkVBRE1FCmluZGV4IGU2NWM1ZWEuLmRiMGE3NzQgMTAwNjQ0Ci0tLSBhL2dkYi9S RUFETUUKKysrIGIvZ2RiL1JFQURNRQpAQCAtNDg4LDYgKzQ4OCw5IEBAIG1vcmUgb2JzY3VyZSBH REIgYGNvbmZpZ3VyZScgb3B0aW9ucyBhcmUgbm90IGxpc3RlZCBoZXJlLgogICAgICBCdWlsZCBH REIgdXNpbmcgdGhlIEdNUCBsaWJyYXJ5IGluc3RhbGxlZCBhdCB0aGUgZGlyZWN0b3J5IERJUi4K ICAgICAgSWYgeW91ciBob3N0IGRvZXMgbm90IGhhdmUgR01QIGluc3RhbGxlZCwgeW91IGNhbiBn ZXQgdGhlIGxhdGVzdAogICAgICB2ZXJzaW9uIGF0IGBodHRwczovL2dtcGxpYi5vcmcvJy4KKyAg ICAgWW91IGNhbiBhbHNvIGJ1aWxkIEdNUCBpbi10cmVlIHdoZW4geW91IHVzZSB0aGUgc2NyaXB0 CisgICAgIC4vY29udHJpYi9kb3dubG9hZF9wcmVyZXF1aXNpdGVzLiAgTm90ZSBob3dldmVyLCB0 aGF0IHRoaXMKKyAgICAgZG9lcyBvbmx5IHdvcmsgd2l0aCBhIHNlcGFyYXRlIGJ1aWxkIGRpcmVj dG9yeS4KIAogYC0td2l0aC1tcGZyJwogICAgICBCdWlsZCBHREIgd2l0aCBHTlUgTVBGUiwgYSBs aWJyYXJ5IGZvciBtdWx0aXBsZS1wcmVjaXNpb24KQEAgLTQ5OSw2ICs1MDIsOSBAQCBtb3JlIG9i c2N1cmUgR0RCIGBjb25maWd1cmUnIG9wdGlvbnMgYXJlIG5vdCBsaXN0ZWQgaGVyZS4KICAgICAg YXZhaWxhYmxlLCBHREIgd2lsbCBmYWxsIGJhY2sgdG8gdXNpbmcgaG9zdCBmbG9hdGluZy1wb2lu dAogICAgICBhcml0aG1ldGljLiAgSWYgeW91ciBob3N0IGRvZXMgbm90IGhhdmUgR05VIE1QRlIg aW5zdGFsbGVkLCB5b3UKICAgICAgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSBgaHR0 cHM6Ly93d3cubXBmci5vcmcvJy4KKyAgICAgWW91IGNhbiBhbHNvIGJ1aWxkIE1QRlIgaW4tdHJl ZSB3aGVuIHlvdSB1c2UgdGhlIHNjcmlwdAorICAgICAuL2NvbnRyaWIvZG93bmxvYWRfcHJlcmVx dWlzaXRlcy4gIE5vdGUgaG93ZXZlciwgdGhhdCB0aGlzCisgICAgIGRvZXMgb25seSB3b3JrIHdp dGggYSBzZXBhcmF0ZSBidWlsZCBkaXJlY3RvcnkuCiAKIGAtLXdpdGgtcHl0aG9uWz1QWVRIT05d JwogICAgICBCdWlsZCBHREIgd2l0aCBQeXRob24gc2NyaXB0aW5nIHN1cHBvcnQuICAoRG9uZSBi eSBkZWZhdWx0IGlmCmRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQpp bmRleCAyNGU2ZmJjLi42Nzc0N2IzIDEwMDc1NQotLS0gYS9nZGIvY29uZmlndXJlCisrKyBiL2dk Yi9jb25maWd1cmUKQEAgLTg5OSw4ICs4OTksMTMgQEAgd2l0aF9qaXRfcmVhZGVyX2Rpcgogd2l0 aF9leHBhdAogd2l0aF9saWJleHBhdF9wcmVmaXgKIHdpdGhfbGliZXhwYXRfdHlwZQord2l0aF9n bXBfaW5jbHVkZQord2l0aF9nbXBfbGliCit3aXRoX2dtcAogd2l0aF9saWJnbXBfcHJlZml4CiB3 aXRoX2xpYmdtcF90eXBlCit3aXRoX21wZnJfaW5jbHVkZQord2l0aF9tcGZyX2xpYgogd2l0aF9t cGZyCiB3aXRoX2xpYm1wZnJfcHJlZml4CiB3aXRoX2xpYm1wZnJfdHlwZQpAQCAtMTY0NCw5ICsx NjQ5LDE0IEBAIE9wdGlvbmFsIFBhY2thZ2VzOgogICAtLXdpdGgtbGliZXhwYXQtcHJlZml4Wz1E SVJdICBzZWFyY2ggZm9yIGxpYmV4cGF0IGluIERJUi9pbmNsdWRlIGFuZCBESVIvbGliCiAgIC0t d2l0aG91dC1saWJleHBhdC1wcmVmaXggICAgIGRvbid0IHNlYXJjaCBmb3IgbGliZXhwYXQgaW4g aW5jbHVkZWRpciBhbmQgbGliZGlyCiAgIC0td2l0aC1saWJleHBhdC10eXBlPVRZUEUgICAgIHR5 cGUgb2YgbGlicmFyeSB0byBzZWFyY2ggZm9yIChhdXRvL3N0YXRpYy9zaGFyZWQpCisgIC0td2l0 aC1nbXAtaW5jbHVkZT1ESVIgIEdNUCBpbmNsdWRlIGRpcmVjdG9yeQorICAtLXdpdGgtZ21wLWxp Yj1ESVIgICAgICBHTVAgbGliIGRpcmVjdG9yeQorICAtLXdpdGgtZ21wPURJUiAgICAgICAgICBH TVAgaW5zdGFsbCBkaXJlY3RvcnkKICAgLS13aXRoLWxpYmdtcC1wcmVmaXhbPURJUl0gIHNlYXJj aCBmb3IgbGliZ21wIGluIERJUi9pbmNsdWRlIGFuZCBESVIvbGliCiAgIC0td2l0aG91dC1saWJn bXAtcHJlZml4ICAgICBkb24ndCBzZWFyY2ggZm9yIGxpYmdtcCBpbiBpbmNsdWRlZGlyIGFuZCBs aWJkaXIKICAgLS13aXRoLWxpYmdtcC10eXBlPVRZUEUgICAgIHR5cGUgb2YgbGlicmFyeSB0byBz ZWFyY2ggZm9yIChhdXRvL3N0YXRpYy9zaGFyZWQpCisgIC0td2l0aC1tcGZyLWluY2x1ZGU9RElS IE1QRlIgaW5jbHVkZSBkaXJlY3RvcnkKKyAgLS13aXRoLW1wZnItbGliPURJUiAgICAgTVBGUiBs aWIgZGlyZWN0b3J5CiAgIC0td2l0aC1tcGZyICAgICAgICAgICAgIGluY2x1ZGUgTVBGUiBzdXBw b3J0IChhdXRvL3llcy9ubykKICAgLS13aXRoLWxpYm1wZnItcHJlZml4Wz1ESVJdICBzZWFyY2gg Zm9yIGxpYm1wZnIgaW4gRElSL2luY2x1ZGUgYW5kIERJUi9saWIKICAgLS13aXRob3V0LWxpYm1w ZnItcHJlZml4ICAgICBkb24ndCBzZWFyY2ggZm9yIGxpYm1wZnIgaW4gaW5jbHVkZWRpciBhbmQg bGliZGlyCkBAIC05OTkwLDYgKzEwMDAwLDM1IEBAIGRvbmUKICAgZmkKIGZpCiAKKworIyBDaGVj ayB3aGV0aGVyIC0td2l0aC1nbXBfaW5jbHVkZSB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke3dpdGhf Z21wX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX2dtcF9pbmNs dWRlOyBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJHdpdGh2YWwiCitmaQorCisKKyMgQ2hlY2sgd2hl dGhlciAtLXdpdGgtZ21wX2xpYiB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke3dpdGhfZ21wX2xpYitz ZXR9IiA9IHNldDsgdGhlbiA6CisgIHdpdGh2YWw9JHdpdGhfZ21wX2xpYjsgTERGTEFHUz0iJExE RkxBR1MgLUwkd2l0aHZhbCIKK2ZpCisKKworIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbXAgd2Fz IGdpdmVuLgoraWYgdGVzdCAiJHt3aXRoX2dtcCtzZXR9IiA9IHNldDsgdGhlbiA6CisgIHdpdGh2 YWw9JHdpdGhfZ21wOworICAgaWYgdGVzdCAteiAiJHdpdGhfZ21wX2xpYiIgJiYgdGVzdCAteiAi JHdpdGhfZ21wX2luY2x1ZGUiIDsgdGhlbgorICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSR3 aXRodmFsL2luY2x1ZGUiCisgICAgICBMREZMQUdTPSIkTERGTEFHUyAtTCR3aXRodmFsL2xpYiIK KyAgIGVsc2UKKyAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQorJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjI7fQorYXNfZm5fZXJyb3IgJD8gIkRvIG5vdCB1c2UgLS13aXRoLWdt cCBhbmQgLS13aXRoLWdtcC1pbmNsdWRlLy0td2l0aC1nbXAtbGliIG9wdGlvbnMgc2ltdWx0YW5l b3VzbHkuCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsg fQorICAgZmkKKworZmkKKworCiAjIFZlcmlmeSB0aGF0IHdlIGhhdmUgYSB1c2FibGUgR01QIGxp YnJhcnkuCiAKIApAQCAtMTA0NzQsNiArMTA1MTMsMTkgQEAgaWYgdGVzdCAiJEhBVkVfTElCR01Q IiAhPSB5ZXM7IHRoZW4KIGZpCiAKIAorIyBDaGVjayB3aGV0aGVyIC0td2l0aC1tcGZyX2luY2x1 ZGUgd2FzIGdpdmVuLgoraWYgdGVzdCAiJHt3aXRoX21wZnJfaW5jbHVkZStzZXR9IiA9IHNldDsg dGhlbiA6CisgIHdpdGh2YWw9JHdpdGhfbXBmcl9pbmNsdWRlOyBDUFBGTEFHUz0iLUkkd2l0aHZh bCAkQ1BQRkxBR1MiCitmaQorCisKKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbXBmcl9saWIgd2Fz IGdpdmVuLgoraWYgdGVzdCAiJHt3aXRoX21wZnJfbGliK3NldH0iID0gc2V0OyB0aGVuIDoKKyAg d2l0aHZhbD0kd2l0aF9tcGZyX2xpYjsgTERGTEFHUz0iLUwkd2l0aHZhbCAkTERGTEFHUyIKK2Zp CisKKworCiAjIENoZWNrIHdoZXRoZXIgLS13aXRoLW1wZnIgd2FzIGdpdmVuLgogaWYgdGVzdCAi JHt3aXRoX21wZnIrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICB3aXRodmFsPSR3aXRoX21wZnI7CmRp ZmYgLS1naXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwppbmRleCAzMmYy NWQ5Li45N2Y0M2NlIDEwMDY0NAotLS0gYS9nZGIvY29uZmlndXJlLmFjCisrKyBiL2dkYi9jb25m aWd1cmUuYWMKQEAgLTY4Myw2ICs2ODMsMjIgQEAgZWxzZQogICBmaQogZmkKIAorQUNfQVJHX1dJ VEgoZ21wX2luY2x1ZGUsCisgICBbICAtLXdpdGgtZ21wLWluY2x1ZGU9RElSICBHTVAgaW5jbHVk ZSBkaXJlY3RvcnkgXSwKKyAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkd2l0aHZhbCIpCitBQ19B UkdfV0lUSChnbXBfbGliLAorICAgWyAgLS13aXRoLWdtcC1saWI9RElSICAgICAgR01QIGxpYiBk aXJlY3RvcnkgXSwKKyAgIExERkxBR1M9IiRMREZMQUdTIC1MJHdpdGh2YWwiKQorQUNfQVJHX1dJ VEgoZ21wLAorICAgWyAgLS13aXRoLWdtcD1ESVIgICAgICAgICAgR01QIGluc3RhbGwgZGlyZWN0 b3J5IF0sIFsKKyAgIGlmIHRlc3QgLXogIiR3aXRoX2dtcF9saWIiICYmIHRlc3QgLXogIiR3aXRo X2dtcF9pbmNsdWRlIiA7IHRoZW4KKyAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkd2l0aHZh bC9pbmNsdWRlIgorICAgICAgTERGTEFHUz0iJExERkxBR1MgLUwkd2l0aHZhbC9saWIiCisgICBl bHNlCisgICAgICBBQ19NU0dfRkFJTFVSRShbRG8gbm90IHVzZSAtLXdpdGgtZ21wIGFuZCAtLXdp dGgtZ21wLWluY2x1ZGUvLS13aXRoLWdtcC1saWIgb3B0aW9ucyBzaW11bHRhbmVvdXNseS5dKQor ICAgZmkKKyAgXSkKKwogIyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGEgdXNhYmxlIEdNUCBsaWJyYXJ5 LgogQUNfTElCX0hBVkVfTElOS0ZMQUdTKFtnbXBdLCBbXSwgWyNpbmNsdWRlIDxnbXAuaD5dLAog ICAgICAgICAgICAgICAgICAgICAgIFttcHpfdCBuOwpAQCAtNjkxLDYgKzcwNywxNSBAQCBpZiB0 ZXN0ICIkSEFWRV9MSUJHTVAiICE9IHllczsgdGhlbgogICBBQ19NU0dfRVJST1IoW0dNUCBpcyBt aXNzaW5nIG9yIHVudXNhYmxlXSkKIGZpCiAKK0FDX0FSR19XSVRIKFttcGZyX2luY2x1ZGVdLAor ICAgICAgICAgICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtbXBmci1pbmNsdWRlPURJUl0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW01QRlIgaW5jbHVkZSBkaXJlY3RvcnldKV0sCisg ICAgICAgICAgICBbQ1BQRkxBR1M9Ii1JJHdpdGh2YWwgJENQUEZMQUdTIl0pCitBQ19BUkdfV0lU SChbbXBmcl9saWJdLAorICAgICAgICAgICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtbXBmci1s aWI9RElSXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTVBGUiBsaWIgZGlyZWN0b3J5 XSldLAorICAgICAgICAgICAgW0xERkxBR1M9Ii1MJHdpdGh2YWwgJExERkxBR1MiXSkKKwogQUNf QVJHX1dJVEgobXBmciwKICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1tcGZyXSwgW2luY2x1ZGUg TVBGUiBzdXBwb3J0IChhdXRvL3llcy9ubyldKSwKICAgW10sIFt3aXRoX21wZnI9YXV0b10pCi0t IAoxLjkuMQoK --------------C5A5738CA30170CE31E3D5EC--