From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id W3j5A3LlzWX/3R4AWB0awg (envelope-from ) for ; Thu, 15 Feb 2024 05:20:34 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=llfcTqOR; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id F1CB11E0D2; Thu, 15 Feb 2024 05:20:33 -0500 (EST) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 3B49E1E030 for ; Thu, 15 Feb 2024 05:20:31 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 39AE13861865 for ; Thu, 15 Feb 2024 10:20:30 +0000 (GMT) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by sourceware.org (Postfix) with ESMTPS id 826973861855 for ; Thu, 15 Feb 2024 10:19:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 826973861855 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 826973861855 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=192.198.163.10 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1707992405; cv=fail; b=rHTZD0HMqk9h6Zh1m76Tst9JfMqwj3HjWlMMCehOreytLfQkHhaB3AzvCCOzteGLVKKWeUOKCygI4g8AKsDzPw7YLLPwoxYhFIXPQ1Mi/hpQym7OzSuM1/IinOLvBWGFjbo5ktfO1PVm0Rk9tkbeTGHCG+1dwoqzDe52uXUhCuw= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1707992405; c=relaxed/simple; bh=cUfqoqQM7iGPQyVMDod1+HGShuPjI65ZZuQdyPPC/jo=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=RzmM0tYhKFHCukRsWudS3wJFPGzZbn9avRMIzXQKPEnmKwNzP/BrpUyHjFDufH+emp95nfnMWoj3aAVApm0UqbAyh2jvdxdkyXp8Km6N4xonm+WqkiPuiWoqLyFjlw8iqS1XsJtvPoXeMSyzxJO5nFV1CejD9s1cAbRB+tT1hag= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1707992397; x=1739528397; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=cUfqoqQM7iGPQyVMDod1+HGShuPjI65ZZuQdyPPC/jo=; b=llfcTqORA9tYEIQlJpPdn28kb8mvVuYJI9HYCqbaKeygCPdSHGkBggYH +XVMiR+Pz96E5lBigA1yz577JCzgaQd/VNA6S/kveLOgh+Wmz60VPHoR/ jVLTyHss8pMKDr1QOJTfZq1uCHAbe3iiJpB6R3OzcHeDjPJe3M9WKsrXW eBtZgYI8X0i4CC+HeqSCnSNOkDkZnjUhGRzmQBeU0ZRhvDJA5wFwouMVU Mg8PLEtUZt7PhNqFAcYPe/sa69gvm1Yd9hyQLAKqEWZJsyZd7s+csRCFv 1HFsuNPZUSXeMSXB+8UPi3gc1sPkrqMhYO0JkGEMwKaRrqVnmJyiGH9ea w==; X-IronPort-AV: E=McAfee;i="6600,9927,10984"; a="13462421" X-IronPort-AV: E=Sophos;i="6.06,161,1705392000"; d="scan'208";a="13462421" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2024 02:19:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,161,1705392000"; d="scan'208";a="8143822" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 15 Feb 2024 02:19:55 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 15 Feb 2024 02:19:54 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 15 Feb 2024 02:19:54 -0800 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.40) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 15 Feb 2024 02:19:53 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IDA1aklHFSWDTI7yHYY0b/KX/+oh99QzoR79Fmsmvey9YlamQy4VlfVq8jfblwM7GPBuCFSZQcwA+pGReI26jZXHXQh86XXPfudFaWteZaG73nWwRg0kUVybXAGbFAE6sTnl3znYzUyoXITs0La0XKEkDcU7FDzkGSC9JwF1pdIuAP6cwqxjtv+S2n3sA12htz73siNs7jb25+z083YyjXzxahj+1Q8WBVoMQ1tvefOEzL5Bv9rsjLVDWA5M6yqfH6Lc0cxdv3TYcyHsy1FucnXJb979mSkl72seRPgjzDME4S2lITikBttSyoi5Q+BLtMYCo5jDpfH20ZQHwtCYLw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=19oNcExz0jKC7epR6SRy4ooNxqg8fJwyej0nc2D/8DU=; b=Zd45653/cC9bImhPN4rN0Ksj4ycuKPCZiwV6/sC22Vp2dYWl9+Ak1nBdlr7sbH4keEEpYzcCPSfn8MTEzX2vOAPB1MDWSgqGTyvEA1kcIJdnpy3+bxMkPpiu+nLq2Vv1K48BNIxhg809BcJC1nNTF1n8lDoAqnItkbOCUzJUN+97JbASZ8KYMDH7xpnqFEyG3c9RXcRMrqSgpV+SGG3rSklm8U122T72txgQ1pGuyEVuzPkrQbETdN9TyBEDzSHvd1l0WHh9oeenWHPiZEbmAVnU5gvYqOyh2vpjkcbTXiuj6JHsaSiy3GfUhuqYBQJOf7rdqaw9qMWzy1N7PRoQGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SA1PR11MB6846.namprd11.prod.outlook.com (2603:10b6:806:2b0::6) by LV8PR11MB8485.namprd11.prod.outlook.com (2603:10b6:408:1e6::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.29; Thu, 15 Feb 2024 10:19:44 +0000 Received: from SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::4db3:69ba:aba8:2e67]) by SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::4db3:69ba:aba8:2e67%6]) with mapi id 15.20.7270.036; Thu, 15 Feb 2024 10:19:43 +0000 From: "Ijaz, Abdul B" To: Guinevere Larsen , "gdb-patches@sourceware.org" CC: "Metzger, Markus T" Subject: RE: [PATCH 1/1] testsuite, btrace: update btrace testsuite to test all btrace recording methods Thread-Topic: [PATCH 1/1] testsuite, btrace: update btrace testsuite to test all btrace recording methods Thread-Index: AQHaXdBToEhzqJdUbEC5vbHxbQ1gmrEID62AgAAP8wA= Date: Thu, 15 Feb 2024 10:19:43 +0000 Message-ID: References: <20240212162639.26109-1-abdul.b.ijaz@intel.com> <20240212162639.26109-2-abdul.b.ijaz@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA1PR11MB6846:EE_|LV8PR11MB8485:EE_ x-ms-office365-filtering-correlation-id: f8234415-fa1d-4abd-ff7b-08dc2e0fa0e8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cBFdBSd2H8C0D8Qi68QsBjDcY9Fx/5N0d4yOV7EmMQqwmza3Gw19rblCLOBHdGrejgbDUwsH/q/GQd6HbpGoZvb5XuGu94dLDONIc+zHWJP5QGE9LYqqGDjRubxCIMQUa4NCejUw1FG/8nXFmhkVvGU971NV24Lm5kYwiiJukJyNCjUYFIvKhUcuhZ9g2ySPyknzWSl9UyEm1g4qcc9BW8XNkUyvOH4vuggLzJSMJ53AHqH1zBptDyB8VGHccADm67639n/gumg7IdNFc9RzAQxpxH22oirhKPP73s1PZYYgJa3WJiadng16fy29enWLU18TYxwaTROdxqqov5NfCmlPpSv3OMM66A5gjfX+BU4rBf2tJhmYBdlmP5zHtCe8IN12xlHnxttrCSTXrnPGkKz/9Q2GNrgQg9WQbm0pbxA1ffTkTN7NG7htPJU4YJQo+LKCjFADVoOQ5OYdPXbtv0faag/55CWl8eMuRYq+iNIsH1dYoqflbcDENfiPw2WFzctGf7i/zJX8+B398w76IIlfjIpZoX5xXyb7HDPcS5OCNgT/ku3WC8fv+iXp1lfgzIvgVj7HyVgyexTXj7205YiKYlsO0B4O/wW4n8xeoqA= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA1PR11MB6846.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(376002)(39860400002)(366004)(346002)(396003)(230922051799003)(230273577357003)(1800799012)(451199024)(186009)(64100799003)(33656002)(84970400001)(86362001)(83380400001)(122000001)(82960400001)(38100700002)(55016003)(38070700009)(5660300002)(15650500001)(2906002)(30864003)(66446008)(76116006)(66556008)(66946007)(110136005)(316002)(64756008)(66476007)(8676002)(52536014)(4326008)(8936002)(478600001)(71200400001)(6506007)(7696005)(9686003)(53546011)(41300700001)(107886003)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RVljWmJ1UEtwYmZQTkR0UmlPVnJjY2lmU1NhNE1jUllHWWtQdlpSbURCSDFk?= =?utf-8?B?Tmw0TTc0WXZUMGVvODFiWkdWOWNxSGJiNE51Unh2a2txOHN6UUkrZjJYZElV?= =?utf-8?B?KzhEaCtIZzN6VmhuSmhNV3NXRlZmaUlmTVkrTEVRbW02YXpoNDBxZnBPSEtN?= =?utf-8?B?THNuRUI5UzQzM3dBNEFGeHFDZFhyUzhET2hGNG9ueDI2Nk85b2M4YkFvWlJX?= =?utf-8?B?RGZXTWxpSHo2UWhvcUNTMUQzeUxFTVdvYlpqelo4c28vU3dmbzl2UEduTG1v?= =?utf-8?B?K3lFMENRUHhiL2MzbWp4SmZuYVpDTHFFT3lHaDlvZWxSWVhqNUQ3K00xZWw1?= =?utf-8?B?Slp4MUc2QnltZlpwdDVWby9kSENnc3BnUjA2TlNaVzMwLzd2bXVFWVpFVmFF?= =?utf-8?B?NjZEMTZtQlpsczhMSCtsQlRsdkhKSFVkdElZOEhvcGxqVlhiNCs3dGx0UGpu?= =?utf-8?B?Ykk4OFpRd2c1SE5KRlZPQ0dsUkY0dmtnWVorTnlHY0dWcjh0N0c0V0JOclpr?= =?utf-8?B?QXdybTkvYiswV1hBbk43TjhOSUQ0TmszTUFHekNDeUhGRFlrZjhlc2V4aHZD?= =?utf-8?B?eWVGOUFNVllxaUZBWmhYdVdnM3Fmb25GNEREZzhZMVYxNytqVVJ3UVBCYzlO?= =?utf-8?B?U0Z4dWZnMEFmelFudjNadk5sQXhkMmZ4MXBhK1hJVVBoTzNoQU9McEd3LzFC?= =?utf-8?B?NXRmaWYzL3RoRUdpdkxzMGcwYzFGZXAwUzYzM05mMmpMKzYycW50UlY1ZkNT?= =?utf-8?B?QklaUVJOS25CL1dzVkliNTlneWMrWGFYSmRHQTZTbmd0VnViTnAyQlRaOWtJ?= =?utf-8?B?L0F4UVp0M0dUZHBMOWt2VllsaWg2ZWdpalZOdDFJZEtiSURha2diVkhsMUVQ?= =?utf-8?B?aWlaSmp0ZW5Ha2dtaWRMS2hSdjErcEo0Y0dPS0oyM3grd2p6cDBBOGk2Z28y?= =?utf-8?B?dGdzcmtSSWxQMG1oVm8yZk4rYTY3U2xFTWhaWHp1V0lIeHR1NnVaOXgzQ0Nz?= =?utf-8?B?M05Bd0dCOWxOYmc5TWdUaWwyQWI1bGZqd2pkcUdVOHlOODVqa3l1eS9jLzl1?= =?utf-8?B?QWRUaTBaSjlsam4veHZJZFVjU3NKRWJZY2hLQnVYbzFZN2RjYUVTYWV5S1FS?= =?utf-8?B?UnVUcGlqbXYvL3JlYSsxaHBjamFBVzE1ZkVaNjNRdkkySlR1MmNHM2RJT3li?= =?utf-8?B?di9KUGZ1a3M4KzFtcU82aG9pdXBOSUVweGpwcGJNT2NrSTM5Skt4MFN3bThw?= =?utf-8?B?T1k1M1E2Vng1ZHM2bFVwcG54YU8yeW1peEFJWVBoakxZbjJ5SHZRK3k3aStW?= =?utf-8?B?NTdyWGRRbkVHTnA5K0x1Y29OVTJSMzRVZmFkbnF3dnRRa0tsLzExeDRPTXVq?= =?utf-8?B?cVc4bVNLSi8rNmlXcThTUkxxdWlNc2NZd2dmQTg4L1kvR3VIZmJ5ZzJ6bnFP?= =?utf-8?B?M2QxUml4YXk2RFJBUDkvQ3RqN0FpUEJwM2N0NE40WVFvTWtqSzZPTXJhcThB?= =?utf-8?B?bmduT0RUWHhiL1FGcktZYTF3Sys4WmlPV1VaNDAySjlBM21kVlZQc1lhWk00?= =?utf-8?B?SlM5UURHVHMxQUZiYTNIUDJEUjY3eTFnampGYjh4Qm55S1d4QStTSFYrY3Mz?= =?utf-8?B?S01EK28wejFsejQ0Mksxb1Q3cnZ5NXNEZDFVNVN6REtibE1MQWVldTJSUGow?= =?utf-8?B?KzY4aTdWdUhzMnE1V0oyUWlYTWFHeDFPWkVLUFRhU1VxTVc1UFFwUjNIb0sz?= =?utf-8?B?V2lLd0FyTzZPSmt5VE1CTGtnejdWeWdhaTJ6L3p0c2cxKy9sZjI1WVlHQlVw?= =?utf-8?B?bFRPdVJTT29IcTFhY0NaNnIyOC95UlcwbXhNeEcrcnNZZTRRZmZ4U0pQVkVL?= =?utf-8?B?NDNFeU9RdFppa0RkT1l2eDhDb01JSU5CYjU2MlJycmJQZWFqa1M2bGk1VVhM?= =?utf-8?B?VUxtV3N3ZnhmeWY0bWFycHZkeEl4SyszS0RQVGtVN3BIS1VMcjgrTjQySlg0?= =?utf-8?B?ZlZxcWtINWszZG9jdGdQekd5UWxSU3hFTnFSM2prRFhKOEk0R3E0RW9LS0Jt?= =?utf-8?B?ZDZCTGN6LzBMeldNNDZua21TMDd4eUl5SDR3amZjRnJmRW12RzAzVmhIK0sy?= =?utf-8?B?aEtoMlhZQjVTUXlQem9QZ01hS2lDWGxqa1Rvb1RwVXRoYWsvbHdobHo4dnR3?= =?utf-8?Q?qKpHSKRklb2Wnvwmc34keD7FEvGtY1NvMzyrbIiKH3Zt?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6846.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8234415-fa1d-4abd-ff7b-08dc2e0fa0e8 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Feb 2024 10:19:43.8263 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: XHr7FZI0N/2Hz+ux4wdxc1G2X5Ct7Lzlnf1oQjNSy5USHjrXm+v2zfgp6/AJ0nmzxm8tBaBJNADFcFe5UH/kWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR11MB8485 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org SGkgTGFyc2VuLA0KDQpUaGFua3MgYSBsb3QgZm9yIHRoZSBmZWVkYmFjay4gUGxlYXNlIHNlZSBt eSByZXNwb25zZSBiZWxvdyBhbmQgbGV0IG1lIGtub3cgc28gSSB3aWxsIHVwZGF0ZSBWMiBwYXRj aCBhY2NvcmRpbmdseS4NCg0KPj4gIFdpdGggdGhpcyBjaGFuZ2UsIGdkYi5idHJhY2Ugd2lsbCwg aW5zdGVhZCBvZiBzZWxlY3RpbmcgdGhlDQo+PiBkZWZhdWx0IHJlY29yZGluZyBtZXRob2QsIHJ1 biBhbGwgdGVzdHMgZm9yIGFsbCBhdmFpbGFibGUgYW5kDQo+PiBhcHBsaWNhYmxlIG1ldGhvZHMu IFRoaXMgaW5jcmVhc2VzIHRlc3RpbmcgY292ZXJhZ2UuDQoNCkxhcnNlbiA+IFdoeSBkaWQgeW91 IGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiwgDQpMYXJzZW4gPiB0YXJnZXRfc3VwcG9ydHNfYnRyYWNl LCB0byBkbyB0aGUgZXhhY3QgZnVuY3Rpb24gdGhhdCBhbGxvd19idHJhY2VfdGVzdHMgDQpMYXJz ZWIgPiBkb2VzLCBhbmQgbWFrZSB0aGlzIHNlY29uZCBmdW5jdGlvbiB3b3JrIGNvbXBsZXRlbHkg ZGlmZmVyZW50bHk/IEl0IA0KTGFyc2VuID4gbWFrZXMgbW9yZSBzZW5zZSB0byBtZSB0byBoYXZl IGl0IHRoZSBvdGhlciB3YXkgYXJvdW5kLA0KDQpBYmR1bCA+IFRoZXJlIHdhcyBjb21tb24gcGFy dCBpbiBib3RoIG9sZCBmdW5jdGlvbnMgImFsbG93X2J0cmFjZV90ZXN0cyIgYW5kDQogImFsbG93 X2J0cmFjZV9wdF90ZXN0cyIgd2hlcmUgaW4gZmlyc3Qgc3RlcCBpdCB3YXMgY2hlY2tlZCB3aGV0 aGVyIGJ0cmFjZSBpcyBzdXBwb3J0ZWQNCiBvbiB0aGUgQ1BVIGN1cnJlbnRseSBpbiB1c2UuIFNv IGFmdGVyIHRoZSBjaGFuZ2Ugbm93IG9ubHkgdGhpcyBjb21tb24gcGFydCBpcyBtb3ZlZCB0bw0K IHRoaXMgbmV3IGZ1bmN0aW9uICJ0YXJnZXRfc3VwcG9ydHNfYnRyYWNlIiBpLmUuDQoieyAhW2lz dGFyZ2V0ICJpPzg2LSotKiJdICYmICFbaXN0YXJnZXQgIng4Nl82NC0qLSoiXSB9IiAuDQpTbyBi ZWZvcmUgY2hlY2tpbmcgaWYgdGhlIHJlY29yZGluZyBtZXRob2QgImJ0cyIgb3IgInB0IiBpcyBz dXBwb3J0ZWQgd2UgY2hlY2sgd2hldGhlcg0KdGhlIHRhcmdldCBDUFUgc3VwcG9ydHMgdGhlIGJ0 cmFjZS4gU28gZnJvbSB0aGUgcHVycG9zZSBvZiBmdW5jdGlvbiB5b3UgY2FuIHNlZSBpdCBzdWl0 cw0Kd2VsbCB0byB3aGF0IGl0IGRvZXMuIE90aGVyd2lzZSBsZXQgbWUga25vdyBJIGNhbiBzd2l0 Y2ggdGhlIG5hbWVzIGJldHdlZW4NCiJ0YXJnZXRfc3VwcG9ydHNfYnRyYWNlIiBhbmQgImFsbG93 X2J0cmFjZV90ZXN0cyIuIFNvIG9ubHkgZGlmZmVyZW5jZSBhZnRlciB0aGUgY2hhbmdlDQppcyBp ZiB0YXJnZXQgc3VwcG9ydHMgYnRyYWNlIGlzIGNoZWNrZWQgc2VwYXJhdGVseSBhbmQgdGhlbiBy ZXN0IGlzIHNhbWUgaS5lLiBvdGhlciB0d28gZnVuY3Rpb25zDQpvbmx5IGNoZWNrIGlmICJidHMi IGFuZCAicHQiIHJlY29yZGluZyBtZXRob2RzIGNhbiBiZSB1c2VkLg0KDQpBYmR1bCA+PiArZ2Ri X2NhY2hpbmdfcHJvYyB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlIHt9IHsNCkFiZHVsID4+ICAgICAg IGlmIHsgIVtpc3RhcmdldCAiaT84Ni0qLSoiXSAmJiAhW2lzdGFyZ2V0ICJ4ODZfNjQtKi0qIl0g fSB7DQpBYmR1bCA+PiAtCXZlcmJvc2UgIiRtZTogIHRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IGJ0 cmFjZSwgcmV0dXJuaW5nIDAiIDINCkFiZHVsID4+ICsJdmVyYm9zZSAidGFyZ2V0X3N1cHBvcnRz X2J0cmFjZTogIHRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IGJ0cmFjZSwgcmV0dXJuaW5nIDAiIDIN CkFiZHVsID4+ICAgCXJldHVybiAwDQpBYmR1bCA+PiAgICAgICB9DQpBYmR1bCA+PiArICAgIHJl dHVybiAxDQoNCkxhcnNlbiA+IEFzIEkgbWVudGlvbmVkIHByZXZpb3VzbHksIEkgdGhpbmsgdGhl IHByb2MgbmFtZSBzaG91bGRuJ3QgYmUgY2hhbmdlZCwgDQphbmQgdGhlIG5ldyBwcm9jIHNob3Vs ZCBiZSBjYWxsZWQgdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZSB3aXRoIGEgDQpwYXJhbWV0ZXIsIG9y IHRhcmdldF9zdXBwb3J0c19idHJhY2VfbWV0aG9kIGFuZCB0aGUgcGFyYW1ldGVyLg0KDQpBYmR1 bCA+IFBsZWFzZSBzZWUgdGhlIHJlc3BvbnNlIGFib3ZlIGlmIGl0IGFuc3dlcnMgeW91ciBjb25j ZXJucy4gT3RoZXJ3aXNlIEkgd2lsbCB1cGRhdGUgdGhlIGZ1bmN0aW9uIG5hbWUgc28gdG8gc3dp dGNoIG5hbWVzIGJldHdlZW4gInRhcmdldF9zdXBwb3J0c19idHJhY2UiIGFuZCAiYWxsb3dfYnRy YWNlX3Rlc3RzIi4NCg0KTGFyc2VuID4gQWxzbywgbm93IHlvdSdyZSBub3QgIHRlc3RpbmcgZnVy dGhlciB0aGFuIGlmIHRoZSB0YXJnZXQgaXMgYW4gaW50ZWwgDQpib2FyZC4gSSB0aGluayBpdCB3 b3VsZCBiZSBiZXR0ZXIgaWYgZmlyc3QgeW91IHRyaWVkIHRoZSBpc3RhcmdldCBhYm92ZSwgDQp0 aGVuIGNoZWNrZWQgaWYgZWl0aGVyIGJ0cyBvciBwdCBpcyBzdXBwb3J0ZWQgdXNpbmcgdGhlIHBy b2NzIGJlbG93LiANClNpbmNlIHRoZXkgYXJlIGNhY2hpbmcgcHJvY3MsIHRoZXJlJ3Mgbm8gcHJv YmxlbSBpbiBjYWxsaW5nIHRoZW0gaGVyZSANCnRoZW4gY2FsbGluZyB0aGVtIGFnYWluIGluIHRo ZSB0ZXN0IGZpbGVzIGFueXdheS4NCg0KQWJkdWwgPiAgSSBjYW4gc2VlIHRoZSBhZHZhbnRhZ2Ug b2YgY2FsbGluZyB0aGUgIGZ1bmN0aW9ucyBoZXJlICB0byBjaGVjayBzdXBwb3J0IGZvciBidHMg YW5kIHB0IHNvICB0aGF0IGlmIG5vbmUgb2YgdGhlIG1ldGhvZCBpcyBzdXBwb3J0ZWQgdGhlbiB0 ZXN0cyB3aWxsIG5vdCBnbw0KYW55IGZ1cnRoZXIuIFdpbGwgdXBkYXRlIGluIFYyIHBhdGNoIGFu ZCBjYWxsIHRoZW0gaGVyZSBhbHNvIGFuZCBpbiBjYXNlIGJvdGggb2YgdGhlbSBhcmUgbm90IHN1 cHBvcnRlZCB0aGVuIHdpbGwgcmV0dXJuIDAuIEJ1dCBhcyB5b3UgYWxzbyBtZW50aW9uZWQNCiB3 ZSBzdGlsbCBoYXZlIHRvIGNhbGwgdGhlbSBpbiBldmVyeSB0ZXN0Lg0KDQo+PiArKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5idHJhY2UvdHN4LmV4cA0KPj4gQEAgLTE1LDcgKzE1LDcgQEANCj4+ICAg IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQ0KPj4gICAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPj4gICANCj4+IC1yZXF1aXJlIGFsbG93 X2J0cmFjZV9wdF90ZXN0cyBhbGxvd190c3hfdGVzdHMNCj4+ICtyZXF1aXJlIGFsbG93X2J0cmFj ZV9wdF90ZXN0cyBhbGxvd190c3hfdGVzdHMgdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZQ0KDQpMYXJz ZW4gPiBEbyB5b3UgaGFwcGVuIHRvIGtub3cgd2h5IHRoaXMgdGVzdCBvbmx5IHdvcmtzIHdpdGgg cHQgc3R5bGUgYnRyYWNlPyBJIA0KYXBwYXJlbnRseSBkb250IGhhdmUgVFNYIGhhcmR3YXJlLCBz byBJIGNhbid0IHRlc3QgdGhpbmdzIGJ5IGhhbmQgYW5kIA0KZmlndXJlIGl0IG91dCwgdW5mb3J0 dW5hdGVseS4NCg0KQWJkdWwgPiAgVGhpcyB0ZXN0IHdhcyBzcGVjaWZpY2FsbHkgd3JpdHRlbiB0 byB0ZXN0IG9ubHkgdGVzdCAiUFQiIHJlbGF0ZWQgY2hhbmdlcyB0aGF0IGlzIHdoeSBpdCBpcyBh bHNvDQpub3QgdXBkYXRlZCB0byB0ZXN0IGJ0cy4gSSB0cnkgdG8gcnVuIGl0IGZvciBidHMgYW5k IGl0IGdpdmVzIGZvbGxvd2luZyBvdXRwdXQgd2hpY2ggaXMgbm90IGhhbmRsZWQgaW4gdGhlIHRl c3Q6DQooZ2RiKSBQQVNTOiBnZGIuYnRyYWNlL3RzeC5leHA6IHJlY29yZCBidHJhY2UgYnRzDQpu ZXh0Xk0NCjI1ICAgICAgICByZXR1cm4gMDteTQ0KKGdkYikgUEFTUzogZ2RiLmJ0cmFjZS90c3gu ZXhwOiBuZXh0DQpyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeV5NDQoxICAgICAgICAgIDB4MDAw MDU1NTU1NTU1NTEzMSA8bWFpbis4PjogY2FsbCAgIDB4NTU1NTU1NTU1MTNkIDx0ZXN0Pl5NDQoy ICAgICAgICAgIDB4MDAwMDU1NTU1NTU1NTEzZCA8dGVzdCswPjogeGJlZ2luIDB4NTU1NTU1NTU1 MTRjIDx0ZXN0KzE1Pl5NDQozICAgICAgICAgIDB4MDAwMDU1NTU1NTU1NTE0MyA8dGVzdCs2Pjog bW92ICAgICQweDAsJWVheF5NDQo0ICAgICAgICAgIDB4MDAwMDU1NTU1NTU1NTE0OCA8dGVzdCsx MT46ICAgICAgICB4ZW5kXk0NCjUgICAgICAgICAgMHgwMDAwNTU1NTU1NTU1MTRiIDx0ZXN0KzE0 PjogICAgICAgIHJldF5NDQo2ICAgICAgICAgIDB4MDAwMDU1NTU1NTU1NTE0YyA8dGVzdCsxNT46 ICAgICAgICBtb3YgICAgJDB4MSwlZWF4Xk0NCjcgICAgICAgICAgMHgwMDAwNTU1NTU1NTU1MTUx IDx0ZXN0KzIwPjogICAgICAgIHJldF5NDQooZ2RiKSBGQUlMOiBnZGIuYnRyYWNlL3RzeC5leHA6 IHNwZWN1bGF0aW9uIGluZGljYXRpb24NCg0KDQpMYXJzZW4gPiBpZiBpdCBpcyB0aGUgcG9pbnQg b2YgdGhlIHRlc3QgdG8gb25seSB1c2UgcHQsIEkgZG9uJ3QgdGhpbmsgdGhlIA0KYWRkaXRpb24g b2YgInRhcmdldF9zdXBwb3J0c19idHJhY2UiIG1ha2VzIHNlbnNlLCBzaW5jZSB0aGUgDQphbGxv d19idHJhY2VfcHRfdGVzdHMgYWxyZWFkeSBjb3ZlcnMgd2hhdCB5b3UgbmVlZC4gSSB0aGluayBq dXN0IGEgDQpjb21tZW50IGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUgc2F5aW5nIHRoYXQgdGhpcyBp cyBhIGJ0cmFjZSBwdCBzcGVjaWZpYyANCnRlc3Qgd291bGQgc3VmZmljZS4NCg0KQWJkdWwgPiBB cyBtZW50aW9uZWQgYWJvdmUgdGFyZ2V0X3N1cHBvcnRfYnRyYWNlIGhhcyBjaGVjayBvbmx5IGZv ciBDUFUgd2hpY2ggaXMgbm90IGFueW1vcmUgaW4gYWxsb3dfYnRyYWNlX3B0X3Rlc3RzLiBBcyB0 aGlzIGNoZWNrIGlzIHJlbW92ZWQgZnJvbSBhbGxvd19idHJhY2VfcHRfdGVzdHMgZnVuY3Rpb24g IiBpZiB7ICFbaXN0YXJnZXQgImk/ODYtKi0qIl0gJiYgIVtpc3RhcmdldCAieDg2XzY0LSotKiJd IH0geyIgIHNvIHRoYXQgaXMgd2h5IGJvdGggYXJlIGNoZWNrZWQuDQoNCkxhcnNlbiA+IE90aGVy d2lzZSwgSSdkIGxpa2UgdG8gc2VlIHRoaXMgdGVzdCBhbHNvIHVzaW5nIHRoZSBCVFMgc3R5bGUu DQoNCkFkYnVsID4gSSBoYXZlIGFkZGVkIHRoZSBmYWlsIG91dHB1dCBvZiB0ZXN0IGFib3ZlLiBT byBpZiB5b3UgdGhpbmsgaXRzIGV4cGVjdGVkIEkgY2FuIHVwZGF0ZSB0aGUgdGVzdCB0byBoYW5k bGUgdGhpcyBpbiB0aGUgdGVzdCBmb3IgYnRzIGNhc2UuDQoNCj4+IC0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1yZWNvcmQtYnRyYWNlLmV4cA0KPj4gKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LXJlY29yZC1idHJhY2UuZXhwDQo+PiArcmVxdWlyZSBhbGxvd19idHJh Y2VfYnRzX3Rlc3RzIGFsbG93X2J0cmFjZV9wdF90ZXN0cyBhbGxvd19weXRob25fdGVzdHMNCj4+ ICtyZXF1aXJlIHRhcmdldF9zdXBwb3J0c19idHJhY2UNCg0KTGFyc2VuID4gSW4gdGhpcyB0ZXN0 IHlvdSdyZSByZXF1aXJpbmcgdGhhdCBib3RoIHB0IGFuZCBidHMgbWV0aG9kcyBvZiByZWNvcmRp bmcgDQphcmUgYXZhaWxhYmxlLiBJcyB0aGF0IHJlYWxseSBuZWNlc3Nhcnk/DQo+IEFsc28sIHRo ZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlIGhlcmUgaXMgcmVkdW50YW50LCBzaW5jZSB0aGUgcHJl dmlvdXMgDQpsaW5lIGlzIGV2ZW4gbW9yZSByZXN0cmljdGl2ZS4NCg0KQWJkdWwgPiAiYWxsb3df YnRyYWNlX3B0X3Rlc3RzIiBmdW5jdGlvbiBpcyBub3QgbmVlZGVkIGhlcmUgYW5kIHdpbGwgYmUg cmVtb3ZlZCBpbiBWMi4gIEFzIG1lbnRpb25lZCBhYm92ZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNl IGlzIHByZXJlcXVpc2l0ZSBiZWZvcmUgY2hlY2tpbmcgaWYgdGhlIHJlY29yZGluZyBtZXRob2Qg ImJ0cyIgb3IgInB0IiBpcyBzdXBwb3J0ZWQgc28gdGhhdCBpcyB0aGUgcmVhc29uIGZvciBoYXZp bmcgaXQuDQoNClRoYW5rcyAmIEJlc3QgUmVnYXJkcw0KQWJkdWwgQmFzaXQNCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEd1aW5ldmVyZSBMYXJzZW4gPGJsYXJzZW5AcmVkaGF0 LmNvbT4gDQpTZW50OiBUdWVzZGF5LCBGZWJydWFyeSAxMywgMjAyNCAxMToxNiBBTQ0KVG86IElq YXosIEFiZHVsIEIgPGFiZHVsLmIuaWphekBpbnRlbC5jb20+OyBnZGItcGF0Y2hlc0Bzb3VyY2V3 YXJlLm9yZw0KU3ViamVjdDogUmU6IFtQQVRDSCAxLzFdIHRlc3RzdWl0ZSwgYnRyYWNlOiB1cGRh dGUgYnRyYWNlIHRlc3RzdWl0ZSB0byB0ZXN0IGFsbCBidHJhY2UgcmVjb3JkaW5nIG1ldGhvZHMN Cg0KT24gMTIvMDIvMjAyNCAxNzoyNiwgQWJkdWwgQmFzaXQgSWpheiB3cm90ZToNCj4gRnJvbTog IklqYXosIEFiZHVsIEIiIDxhYmR1bC5iLmlqYXpAaW50ZWwuY29tPg0KPg0KPiBXaXRoIHRoaXMg Y2hhbmdlLCBnZGIuYnRyYWNlIHdpbGwsIGluc3RlYWQgb2Ygc2VsZWN0aW5nIHRoZQ0KPiBkZWZh dWx0IHJlY29yZGluZyBtZXRob2QsIHJ1biBhbGwgdGVzdHMgZm9yIGFsbCBhdmFpbGFibGUgYW5k DQo+IGFwcGxpY2FibGUgbWV0aG9kcy4gVGhpcyBpbmNyZWFzZXMgdGVzdGluZyBjb3ZlcmFnZS4N CkhpISBUaGFua3MgZm9yIGRvaW5nIHRoaXMsIEkgdGhpbmsgdGhpcyBpcyBhIGdyZWF0IGNoYW5n ZS4gVGhlcmUncyBvbmx5IA0Kb25lIHRoaW5nIEkgZG9uJ3QgcXVpdGUgdW5kZXJzdGFuZDogV2h5 IGRpZCB5b3UgY3JlYXRlIGEgbmV3IGZ1bmN0aW9uLCANCnRhcmdldF9zdXBwb3J0c19idHJhY2Us IHRvIGRvIHRoZSBleGFjdCBmdW5jdGlvbiB0aGF0IGFsbG93X2J0cmFjZV90ZXN0cyANCmRvZXMs IGFuZCBtYWtlIHRoaXMgc2Vjb25kIGZ1bmN0aW9uIHdvcmsgY29tcGxldGVseSBkaWZmZXJlbnRs eT8gSXQgDQptYWtlcyBtb3JlIHNlbnNlIHRvIG1lIHRvIGhhdmUgaXQgdGhlIG90aGVyIHdheSBh cm91bmQsIHdoZXJlIA0KImFsbG93X2J0cmFjZV90ZXN0cyIgaXMgYSBnZW5lcmljIHRlc3QgZm9y IGFueSBraW5kIG9mIGJ0cmFjZSBhbmQgDQoidGFyZ2V0X3N1cHBvcnRzX2J0cmFjZSAke21ldGhv ZH0iIHRlc3RzIHN1cHBvcnQgZm9yIHRoZSBzcGVjaWZpZWQgDQptZXRob2QsIHNpbmNlIGl0IG1h a2VzIHRoZSBkaWZmIGVhc2llciB0byByZWFkIGFuZCBzb3VuZHMgbW9yZSANCnN0cmFpZ2h0Zm9y d2FyZCB0byBtZS4NCg0KSSBoYXZlIGFsc28gYSBmZXcgdGVzdC1zcGVjaWZpYyBjb21tZW50cyBp bmxpbmVkLg0KDQotLSANCkNoZWVycywNCkd1aW5ldmVyZSBMYXJzZW4NClNoZS9IZXIvSGVycw0K DQo+DQo+IDIwMjQtMDItMTIgQWJkdWwgQmFzaXQgSWpheiA8YWJkdWwuYi5pamF6QGludGVsLmNv bT4NCj4gLS0tDQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2J1ZmZlci1zaXplLmV4cCAg ICAgIHwgIDM5ICstDQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2RhdGEuZXhwICAgICAg ICAgICAgIHwgIDY2ICstLQ0KPiAgIGdkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9kZWx0YS5leHAg ICAgICAgICAgICB8IDEwNCArKystLQ0KPiAgIGdkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9kbG9w ZW4uZXhwICAgICAgICAgICB8ICAzOSArLQ0KPiAgIC4uLi9nZGIuYnRyYWNlL2VuYWJsZS1uZXct dGhyZWFkLmV4cCAgICAgICAgICB8ICAzNyArLQ0KPiAgIGdkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFj ZS9lbmFibGUtcnVubmluZy5leHAgICB8ICA2MSArLS0NCj4gICBnZGIvdGVzdHN1aXRlL2dkYi5i dHJhY2UvZW5hYmxlLmV4cCAgICAgICAgICAgfCAxNTUgKysrKy0tLQ0KPiAgIGdkYi90ZXN0c3Vp dGUvZ2RiLmJ0cmFjZS9leGNlcHRpb24uZXhwICAgICAgICB8IDEwNSArKystLQ0KPiAgIC4uLi9n ZGIuYnRyYWNlL2Z1bmN0aW9uX2NhbGxfaGlzdG9yeS5leHAgICAgICB8IDQxNiArKysrKysrKyst LS0tLS0tLS0NCj4gICBnZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZ2NvcmUuZXhwICAgICAgICAg ICAgfCAgMzYgKy0NCj4gICAuLi4vZ2RiLmJ0cmFjZS9pbnN0cnVjdGlvbl9oaXN0b3J5LmV4cCAg ICAgICAgfCAzMDUgKysrKysrLS0tLS0tLQ0KPiAgIGdkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9t dWx0aS1pbmZlcmlvci5leHAgICB8ICA2NCArLS0NCj4gICAuLi4vZ2RiLmJ0cmFjZS9tdWx0aS10 aHJlYWQtc3RlcC5leHAgICAgICAgICAgfCAxMDggKystLS0NCj4gICBnZGIvdGVzdHN1aXRlL2dk Yi5idHJhY2Uvbm9oaXN0LmV4cCAgICAgICAgICAgfCAgMzIgKy0NCj4gICBnZGIvdGVzdHN1aXRl L2dkYi5idHJhY2Uvbm9uLXN0b3AuZXhwICAgICAgICAgfCAzMDcgKysrKysrLS0tLS0tLQ0KPiAg IGdkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9yZWNvbm5lY3QuZXhwICAgICAgICB8ICA5NiArKy0t DQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3JlY29yZF9nb3RvLXN0ZXAuZXhwIHwgIDQy ICstDQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3JlY29yZF9nb3RvLmV4cCAgICAgIHwg MzEyICsrKysrKy0tLS0tLS0NCj4gICBnZGIvdGVzdHN1aXRlL2dkYi5idHJhY2Uvcm4tZGwtYmlu ZC5leHAgICAgICAgfCAgNjMgKy0tDQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3NlZ3Yu ZXhwICAgICAgICAgICAgIHwgIDQyICstDQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3N0 ZXAuZXhwICAgICAgICAgICAgIHwgIDUwICsrLQ0KPiAgIGdkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFj ZS9zdGVwaS5leHAgICAgICAgICAgICB8IDIwNyArKysrLS0tLS0NCj4gICBnZGIvdGVzdHN1aXRl L2dkYi5idHJhY2UvdGFpbGNhbGwtb25seS5leHAgICAgfCAgOTQgKystLQ0KPiAgIGdkYi90ZXN0 c3VpdGUvZ2RiLmJ0cmFjZS90YWlsY2FsbC5leHAgICAgICAgICB8IDEzOCArKystLS0NCj4gICBn ZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdHN4LmV4cCAgICAgICAgICAgICAgfCAgIDIgKy0NCj4g ICAuLi4vZ2RiLmJ0cmFjZS91bmtub3duX2Z1bmN0aW9ucy5leHAgICAgICAgICAgfCAgNjggKy0t DQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3Zkc28uZXhwICAgICAgICAgICAgIHwgIDM2 ICstDQo+ICAgLi4uL2dkYi5weXRob24vcHktcmVjb3JkLWJ0cmFjZS10aHJlYWRzLmV4cCAgIHwg IDc3ICsrLS0NCj4gICBnZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcmVjb3JkLWJ0cmFjZS5l eHAgfCAgIDMgKy0NCj4gICBnZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwICAgICAgICAgICAgICAg ICAgICAgfCAgNjAgKystDQo+ICAgMzAgZmlsZXMgY2hhbmdlZCwgMTcxMCBpbnNlcnRpb25zKCsp LCAxNDU0IGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YnRyYWNlL2J1ZmZlci1zaXplLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9idWZmZXIt c2l6ZS5leHANCj4gaW5kZXggMTAwOGZhODAzN2IuLjhkZTkyYjQzZmNlIDEwMDY0NA0KPiAtLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvYnVmZmVyLXNpemUuZXhwDQo+ICsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9idWZmZXItc2l6ZS5leHANCj4gQEAgLTE3LDI2ICsxNywzMyBA QA0KPiAgICMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UNCj4gICAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiAgIA0KPiAtcmVxdWlyZSBh bGxvd19idHJhY2VfdGVzdHMNCj4gK3JlcXVpcmUgdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZQ0KPiAg IA0KPiAgIHN0YW5kYXJkX3Rlc3RmaWxlIHJlY29yZF9nb3RvLmMNCj4gLWlmIFtwcmVwYXJlX2Zv cl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlXSB7DQo+IC0g ICAgcmV0dXJuIC0xDQo+IC19DQo+ICAgDQo+IC1pZiAhW3J1bnRvX21haW5dIHsNCj4gK2lmIFti dWlsZF9leGVjdXRhYmxlICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlXSB7 DQo+ICAgICAgIHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLWdkYl90ZXN0X25vX291dHB1dCAi c2V0IHJlY29yZCBidHJhY2UgYnRzIGJ1ZmZlci1zaXplIDEiDQo+IC1nZGJfdGVzdF9ub19vdXRw dXQgInNldCByZWNvcmQgYnRyYWNlIHB0IGJ1ZmZlci1zaXplIDEiDQo+IC1nZGJfdGVzdCAic2hv dyByZWNvcmQgYnRyYWNlIGJ0cyBidWZmZXItc2l6ZSIgIlRoZSByZWNvcmQvcmVwbGF5IGJ0cyBi dWZmZXIgc2l6ZSBpcyAxXC4iDQo+IC1nZGJfdGVzdCAic2hvdyByZWNvcmQgYnRyYWNlIHB0IGJ1 ZmZlci1zaXplIiAiVGhlIHJlY29yZC9yZXBsYXkgcHQgYnVmZmVyIHNpemUgaXMgMVwuIg0KPiAr Zm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAgICBpZiB7ICFb YWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVkICJ0YXJnZXQg ZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwljb250aW51ZQ0K PiArICAgIH0NCj4gKw0KPiArICAgIGNsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9Ig0KPiArICAg IGlmICFbcnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAtZ2Ri X3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlIg0KPiAtZ2RiX3Rlc3QgImluZm8gcmVjb3Jk IiBbbXVsdGlfbGluZSBcDQo+IC0gICJBY3RpdmUgcmVjb3JkIHRhcmdldDogcmVjb3JkLWJ0cmFj ZSIgXA0KPiAtICAiUmVjb3JkaW5nIGZvcm1hdDogXFteXFxcclxcXG5cXSoiIFwNCj4gLSAgIkJ1 ZmZlciBzaXplOiA0a0JcLiIgXA0KPiAtICAiUmVjb3JkZWQgMCBpbnN0cnVjdGlvbnMgaW4gMCBm dW5jdGlvbnMgXFxcKDAgZ2Fwc1xcXCkgZm9yIFxbXlxcXHJcXFxuXF0qIiBcDQo+IC0gIF0NCj4g KyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCByZWNvcmQgYnRyYWNlICR7bWV0aG9kfSBidWZm ZXItc2l6ZSAxIg0KPiArICAgIGdkYl90ZXN0ICJzaG93IHJlY29yZCBidHJhY2UgJHttZXRob2R9 IGJ1ZmZlci1zaXplIiAiVGhlIHJlY29yZC9yZXBsYXkgJHttZXRob2R9IGJ1ZmZlciBzaXplIGlz IDFcLiINCj4gKw0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21l dGhvZH0iDQo+ICsgICAgZ2RiX3Rlc3QgImluZm8gcmVjb3JkIiBbbXVsdGlfbGluZSBcDQo+ICsJ IkFjdGl2ZSByZWNvcmQgdGFyZ2V0OiByZWNvcmQtYnRyYWNlIiBcDQo+ICsJIlJlY29yZGluZyBm b3JtYXQ6IFxbXlxcXHJcXFxuXF0qIiBcDQo+ICsJIkJ1ZmZlciBzaXplOiA0a0JcLiIgXA0KPiAr CSJSZWNvcmRlZCAwIGluc3RydWN0aW9ucyBpbiAwIGZ1bmN0aW9ucyBcXFwoMCBnYXBzXFxcKSBm b3IgXFteXFxcclxcXG5cXSoiIFwNCj4gKwldDQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5idHJhY2UvZGF0YS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZGF0 YS5leHANCj4gaW5kZXggMzBhOTQ2YzM2MzMuLmQ5M2M5N2NhZjI0IDEwMDY0NA0KPiAtLS0gYS9n ZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZGF0YS5leHANCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYnRyYWNlL2RhdGEuZXhwDQo+IEBAIC0xNyw0NCArMTcsNTIgQEANCj4gICAjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl DQo+ICAgIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gICANCj4gLXJlcXVpcmUgYWxsb3dfYnRyYWNlX3Rlc3Rz DQo+ICtyZXF1aXJlIHRhcmdldF9zdXBwb3J0c19idHJhY2UNCj4gICANCj4gICBzdGFuZGFyZF90 ZXN0ZmlsZQ0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAk dGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4gLSAgICByZXR1cm4gLTENCj4gLX0NCj4gICANCj4gLWlm ICFbcnVudG9fbWFpbl0gew0KPiAraWYgW2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0byBwcmVw YXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4gICAgICAgcmV0dXJuIC0xDQo+ICAgfQ0KPiAg IA0KPiAtIyB0cmFjZSB0aGUgdGVzdCBjb2RlDQo+IC1nZGJfdGVzdF9ub19vdXRwdXQgInJlY29y ZCBidHJhY2UiDQo+IC1nZGJfdGVzdCAibmV4dCIgIi4qbWFpblwuMy4qIg0KPiArZm9yZWFjaF93 aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAgICBpZiB7ICFbYWxsb3dfYnRy YWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBub3Qg c3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwljb250aW51ZQ0KPiArICAgIH0N Cj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3RmaWxlfSINCj4gKyAgICBpZiAhW3J1bnRvX21h aW5dIHsNCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gICANCj4gLSMgcmV2ZXJzZSBzdGVwIGlu dG8gdGVzdA0KPiAtZ2RiX3Rlc3QgInJldmVyc2Utc3RlcCIgIi4qdGVzdFwuNC4qIg0KPiArICAg ICMgdHJhY2UgdGhlIHRlc3QgY29kZQ0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAicmVjb3Jk IGJ0cmFjZSAke21ldGhvZH0iDQo+ICsgICAgZ2RiX3Rlc3QgIm5leHQiICIuKm1haW5cLjMuKiIN Cj4gICANCj4gLSMgd2UgY2FuJ3QgcmVhZCBtZW1vcnkgd2hpbGUgd2UncmUgcmVwbGF5aW5nDQo+ IC13aXRoX3Rlc3RfcHJlZml4ICJyZXBsYXkiIHsNCj4gLSAgICB3aXRoX3Rlc3RfcHJlZml4ICJk ZWZhdWx0IiB7DQo+IC0JZ2RiX3Rlc3QgInByaW50IGdsb2IiICJ1bmF2YWlsYWJsZVxbXlxcXHJc XFxuXF0qIg0KPiAtCWdkYl90ZXN0ICJwcmludCBsb2MiICJ1bmF2YWlsYWJsZVxbXlxcXHJcXFxu XF0qIg0KPiAtICAgIH0NCj4gKyAgICAjIHJldmVyc2Ugc3RlcCBpbnRvIHRlc3QNCj4gKyAgICBn ZGJfdGVzdCAicmV2ZXJzZS1zdGVwIiAiLip0ZXN0XC40LioiDQo+ICAgDQo+IC0gICAgIyB3ZSBj YW4gcmVhZCBtZW1vcnkgaWYgd2UgZXhwbGljaXRseSBhbGxvdyBpdC4NCj4gLSAgICB3aXRoX3Rl c3RfcHJlZml4ICJyZWFkLXdyaXRlIiB7DQo+IC0JZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVj b3JkIGJ0cmFjZSByZXBsYXktbWVtb3J5LWFjY2VzcyByZWFkLXdyaXRlIg0KPiAtCWdkYl90ZXN0 ICJwcmludCBnbG9iIiAiMSINCj4gLSAgICB9DQo+ICsgICAgIyB3ZSBjYW4ndCByZWFkIG1lbW9y eSB3aGlsZSB3ZSdyZSByZXBsYXlpbmcNCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJyZXBsYXki IHsNCj4gKwl3aXRoX3Rlc3RfcHJlZml4ICJkZWZhdWx0IiB7DQo+ICsJICAgIGdkYl90ZXN0ICJw cmludCBnbG9iIiAidW5hdmFpbGFibGVcW15cXFxyXFxcblxdKiINCj4gKwkgICAgZ2RiX3Rlc3Qg InByaW50IGxvYyIgInVuYXZhaWxhYmxlXFteXFxcclxcXG5cXSoiDQo+ICsJfQ0KPiArDQo+ICsJ IyB3ZSBjYW4gcmVhZCBtZW1vcnkgaWYgd2UgZXhwbGljaXRseSBhbGxvdyBpdC4NCj4gKwl3aXRo X3Rlc3RfcHJlZml4ICJyZWFkLXdyaXRlIiB7DQo+ICsJICAgIGdkYl90ZXN0X25vX291dHB1dCAi c2V0IHJlY29yZCBidHJhY2UgcmVwbGF5LW1lbW9yeS1hY2Nlc3MgcmVhZC13cml0ZSINCj4gKwkg ICAgZ2RiX3Rlc3QgInByaW50IGdsb2IiICIxIg0KPiArCX0NCj4gICANCj4gLSAgICAjIHdlIGNh bid0IGlmIHdlIGRvbid0IGV4cGxpY2l0bHkgYWxsb3cgaXQuDQo+IC0gICAgd2l0aF90ZXN0X3By ZWZpeCAicmVhZC1vbmx5IiB7DQo+IC0JZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGJ0 cmFjZSByZXBsYXktbWVtb3J5LWFjY2VzcyByZWFkLW9ubHkiDQo+IC0JZ2RiX3Rlc3QgInByaW50 IGdsb2IiICJ1bmF2YWlsYWJsZVxbXlxcXHJcXFxuXF0qIg0KPiArCSMgd2UgY2FuJ3QgaWYgd2Ug ZG9uJ3QgZXhwbGljaXRseSBhbGxvdyBpdC4NCj4gKwl3aXRoX3Rlc3RfcHJlZml4ICJyZWFkLW9u bHkiIHsNCj4gKwkgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGJ0cmFjZSByZXBs YXktbWVtb3J5LWFjY2VzcyByZWFkLW9ubHkiDQo+ICsJICAgIGdkYl90ZXN0ICJwcmludCBnbG9i IiAidW5hdmFpbGFibGVcW15cXFxyXFxcblxdKiINCj4gKwl9DQo+ICAgICAgIH0NCj4gLX0NCj4g ICANCj4gLSMgc3RvcCByZXBsYXlpbmcgYW5kIHRyeSBhZ2Fpbg0KPiAtZ2RiX3Rlc3QgInJlY29y ZCBnb3RvIGVuZCIgIi4qbWFpblwuMy4qIg0KPiAtZ2RiX3Rlc3QgInByaW50IGdsb2IiICIxIg0K PiArICAgICMgc3RvcCByZXBsYXlpbmcgYW5kIHRyeSBhZ2Fpbg0KPiArICAgIGdkYl90ZXN0ICJy ZWNvcmQgZ290byBlbmQiICIuKm1haW5cLjMuKiINCj4gKyAgICBnZGJfdGVzdCAicHJpbnQgZ2xv YiIgIjEiDQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZGVs dGEuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2RlbHRhLmV4cA0KPiBpbmRleCA0ZTRk MDZhMTgxMi4uZTFkMzBlYmJjMDYgMTAwNjQ0DQo+IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0 cmFjZS9kZWx0YS5leHANCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2RlbHRhLmV4 cA0KPiBAQCAtMTcsNjcgKzE3LDc1IEBADQo+ICAgIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uDQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93X2J0cmFjZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJn ZXRfc3VwcG9ydHNfYnRyYWNlDQo+ICAgDQo+ICAgc3RhbmRhcmRfdGVzdGZpbGUgcmVjb3JkX2dv dG8uYw0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVz dGZpbGUgJHNyY2ZpbGVdIHsNCj4gK2lmIFtidWlsZF9leGVjdXRhYmxlICJmYWlsZWQgdG8gcHJl cGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlXSB7DQo+ICAgICAgIHJldHVybiAtMQ0KPiAgIH0NCj4g ICANCj4gLWlmICFbcnVudG9fbWFpbl0gew0KPiAtICAgIHJldHVybiAtMQ0KPiArcHJvYyBjaGVj a190cmFjZSB7fSB7DQo+ICsgICAgZ2RiX3Rlc3QgImluZm8gcmVjb3JkIiBbbXVsdGlfbGluZSBc DQo+ICsJIkFjdGl2ZSByZWNvcmQgdGFyZ2V0OiByZWNvcmQtYnRyYWNlIiBcDQo+ICsJIlJlY29y ZGluZyBmb3JtYXQ6IC4qIiBcDQo+ICsJIlJlY29yZGVkIDEgaW5zdHJ1Y3Rpb25zIGluIDEgZnVu Y3Rpb25zIFxcXCgwIGdhcHNcXFwpIGZvciAuKiIgXA0KPiArCV0NCj4gICB9DQo+ICAgDQo+IC0j IHByb2NlZWQgdG8gc29tZSBzZXF1ZW50aWFsIGNvZGUNCj4gLWdkYl90ZXN0ICJuZXh0Ig0KPiAr Zm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAgICBpZiB7ICFb YWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVkICJ0YXJnZXQg ZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwljb250aW51ZQ0K PiArICAgIH0NCj4gICANCj4gLSMgc3RhcnQgdHJhY2luZw0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0 ICJyZWNvcmQgYnRyYWNlIg0KPiArICAgIGNsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9Ig0KPiAr ICAgIGlmICFbcnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAt IyB3ZSBzdGFydCB3aXRob3V0IHRyYWNlDQo+IC13aXRoX3Rlc3RfcHJlZml4ICJubyB0cmFjZSIg ew0KPiAtICBnZGJfdGVzdCAiaW5mbyByZWNvcmQiIFttdWx0aV9saW5lIFwNCj4gLSAgICAiQWN0 aXZlIHJlY29yZCB0YXJnZXQ6IHJlY29yZC1idHJhY2UiIFwNCj4gLSAgICAiUmVjb3JkaW5nIGZv cm1hdDogLioiIFwNCj4gLSAgICAiUmVjb3JkZWQgMCBpbnN0cnVjdGlvbnMgaW4gMCBmdW5jdGlv bnMgXFxcKDAgZ2Fwc1xcXCkgZm9yIC4qIiBcDQo+IC0gICAgXQ0KPiAtICBnZGJfdGVzdCAicmVj b3JkIGluc3RydWN0aW9uLWhpc3RvcnkiICJObyB0cmFjZVwuIg0KPiAtICBnZGJfdGVzdCAicmVj b3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSIgIk5vIHRyYWNlXC4iDQo+IC19DQo+ICsgICAgIyBw cm9jZWVkIHRvIHNvbWUgc2VxdWVudGlhbCBjb2RlDQo+ICsgICAgZ2RiX3Rlc3QgIm5leHQiDQo+ ICAgDQo+IC0jIHdlIHJlY29yZCBlYWNoIHNpbmdsZS1zdGVwLCBldmVuIGlmIHdlIGhhdmUgbm90 IHNlZW4gYSBicmFuY2gsIHlldC4NCj4gLWdkYl90ZXN0ICJzdGVwaSINCj4gKyAgICAjIHN0YXJ0 IHRyYWNpbmcNCj4gKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UgJHttZXRo b2R9Ig0KPiAgIA0KPiAtcHJvYyBjaGVja190cmFjZSB7fSB7DQo+IC0gIGdkYl90ZXN0ICJpbmZv IHJlY29yZCIgW211bHRpX2xpbmUgXA0KPiAtICAgICJBY3RpdmUgcmVjb3JkIHRhcmdldDogcmVj b3JkLWJ0cmFjZSIgXA0KPiAtICAgICJSZWNvcmRpbmcgZm9ybWF0OiAuKiIgXA0KPiAtICAgICJS ZWNvcmRlZCAxIGluc3RydWN0aW9ucyBpbiAxIGZ1bmN0aW9ucyBcXFwoMCBnYXBzXFxcKSBmb3Ig LioiIFwNCj4gLSAgICBdDQo+IC19DQo+ICsgICAgIyB3ZSBzdGFydCB3aXRob3V0IHRyYWNlDQo+ ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAibm8gdHJhY2UiIHsNCj4gKwlnZGJfdGVzdCAiaW5mbyBy ZWNvcmQiIFttdWx0aV9saW5lIFwNCj4gKwkgICAgIkFjdGl2ZSByZWNvcmQgdGFyZ2V0OiByZWNv cmQtYnRyYWNlIiBcDQo+ICsJICAgICJSZWNvcmRpbmcgZm9ybWF0OiAuKiIgXA0KPiArCSAgICAi UmVjb3JkZWQgMCBpbnN0cnVjdGlvbnMgaW4gMCBmdW5jdGlvbnMgXFxcKDAgZ2Fwc1xcXCkgZm9y IC4qIiBcDQo+ICsJICAgIF0NCj4gKwlnZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3Rv cnkiICJObyB0cmFjZVwuIg0KPiArCWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0 b3J5IiAiTm8gdHJhY2VcLiINCj4gKyAgICB9DQo+ICAgDQo+IC0jIG1ha2Ugc3VyZSB3ZSBkb24n dCBleHRlbmQgdGhlIHRyYWNlIHdoZW4gd2UgYXNrIHR3aWNlLg0KPiAtd2l0aF90ZXN0X3ByZWZp eCAib25jZSIgew0KPiAtICBjaGVja190cmFjZQ0KPiAtfQ0KPiArICAgICMgd2UgcmVjb3JkIGVh Y2ggc2luZ2xlLXN0ZXAsIGV2ZW4gaWYgd2UgaGF2ZSBub3Qgc2VlbiBhIGJyYW5jaCwgeWV0Lg0K PiArICAgIGdkYl90ZXN0ICJzdGVwaSINCj4gICANCj4gLXdpdGhfdGVzdF9wcmVmaXggInR3aWNl IiB7DQo+IC0gIGNoZWNrX3RyYWNlDQo+IC19DQo+ICsgICAgIyBtYWtlIHN1cmUgd2UgZG9uJ3Qg ZXh0ZW5kIHRoZSB0cmFjZSB3aGVuIHdlIGFzayB0d2ljZS4NCj4gKyAgICB3aXRoX3Rlc3RfcHJl Zml4ICJvbmNlIiB7DQo+ICsJY2hlY2tfdHJhY2UNCj4gKyAgICB9DQo+ICAgDQo+IC0jIGNoZWNr IHRoYXQgd2UgY2FuIHJldmVyc2Utc3RlcGkgdGhhdCBpbnN0cnVjdGlvbg0KPiAtd2l0aF90ZXN0 X3ByZWZpeCAicmV2ZXJzZSIgew0KPiAtICAgIGdkYl90ZXN0ICJyZXZlcnNlLXN0ZXBpIg0KPiAt ICAgIGdkYl90ZXN0ICJpbmZvIHJlY29yZCIgW211bHRpX2xpbmUgXA0KPiAtICAgICAgIkFjdGl2 ZSByZWNvcmQgdGFyZ2V0OiByZWNvcmQtYnRyYWNlIiBcDQo+IC0gICAgICAiUmVjb3JkaW5nIGZv cm1hdDogLioiIFwNCj4gLSAgICAgICJSZWNvcmRlZCAxIGluc3RydWN0aW9ucyBpbiAxIGZ1bmN0 aW9ucyBcXFwoMCBnYXBzXFxcKSBmb3IgLioiIFwNCj4gLSAgICAgICJSZXBsYXkgaW4gcHJvZ3Jl c3NcLiAgQXQgaW5zdHJ1Y3Rpb24gMVwuIiBcDQo+IC0gICAgXQ0KPiAtfQ0KPiArICAgIHdpdGhf dGVzdF9wcmVmaXggInR3aWNlIiB7DQo+ICsJY2hlY2tfdHJhY2UNCj4gKyAgICB9DQo+ICAgDQo+ IC0jIGFuZCBiYWNrDQo+IC13aXRoX3Rlc3RfcHJlZml4ICJmb3J3YXJkIiB7DQo+IC0gICAgZ2Ri X3Rlc3QgInN0ZXBpIg0KPiAtICAgIGNoZWNrX3RyYWNlDQo+ICsgICAgIyBjaGVjayB0aGF0IHdl IGNhbiByZXZlcnNlLXN0ZXBpIHRoYXQgaW5zdHJ1Y3Rpb24NCj4gKyAgICB3aXRoX3Rlc3RfcHJl Zml4ICJyZXZlcnNlIiB7DQo+ICsJZ2RiX3Rlc3QgInJldmVyc2Utc3RlcGkiDQo+ICsJZ2RiX3Rl c3QgImluZm8gcmVjb3JkIiBbbXVsdGlfbGluZSBcDQo+ICsJICAgICJBY3RpdmUgcmVjb3JkIHRh cmdldDogcmVjb3JkLWJ0cmFjZSIgXA0KPiArCSAgICAiUmVjb3JkaW5nIGZvcm1hdDogLioiIFwN Cj4gKwkgICAgIlJlY29yZGVkIDEgaW5zdHJ1Y3Rpb25zIGluIDEgZnVuY3Rpb25zIFxcXCgwIGdh cHNcXFwpIGZvciAuKiIgXA0KPiArCSAgICAiUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3Ry dWN0aW9uIDFcLiIgXA0KPiArCSAgICBdDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgIyBhbmQgYmFj aw0KPiArICAgIHdpdGhfdGVzdF9wcmVmaXggImZvcndhcmQiIHsNCj4gKwlnZGJfdGVzdCAic3Rl cGkiDQo+ICsJY2hlY2tfdHJhY2UNCj4gKyAgICB9DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2Rsb3Blbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJh Y2UvZGxvcGVuLmV4cA0KPiBpbmRleCBkMGU1YTY1ZTM0Ni4uYTIxY2MzODNhODEgMTAwNjQ0DQo+ IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9kbG9wZW4uZXhwDQo+ICsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9kbG9wZW4uZXhwDQo+IEBAIC0xNSw3ICsxNSw3IEBADQo+ICAg IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93X2J0 cmFjZV90ZXN0cyBhbGxvd19zaGxpYl90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNf YnRyYWNlIGFsbG93X3NobGliX3Rlc3RzDQo+ICAgDQo+ICAgc3RhbmRhcmRfdGVzdGZpbGUNCj4g ICANCj4gQEAgLTI4LDIzICsyOCwzMCBAQCBpZiB7IFtnZGJfY29tcGlsZV9zaGxpYiAkc3JjZmls ZV9saWIgJGJpbmZpbGVfbGliIHt9XSAhPSAiIiB9IHsNCj4gICAgICAgcmV0dXJuIC0xDQo+ICAg fQ0KPiAgIA0KPiAtaWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUi ICR0ZXN0ZmlsZSAkc3JjZmlsZSBcDQo+ICtpZiB7IFtidWlsZF9leGVjdXRhYmxlICJmYWlsZWQg dG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIFwNCj4gICAJICBbbGlzdCBhZGRpdGlvbmFs X2ZsYWdzPS1ERFNPX05BTUU9XCIkYmluZmlsZV9saWJcIiBsaWJzPS1sZGxdXSB9IHsNCj4gICAg ICAgcmV0dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiAtaWYgIVtydW50b19tYWluXSB7DQo+IC0gICAg cmV0dXJuIC0xDQo+ICtmb3JlYWNoX3dpdGhfcHJlZml4IG1ldGhvZCB7ImJ0cyIgInB0In0gew0K PiArICAgIGlmIHsgIVthbGxvd19idHJhY2VfdGVzdHMgJG1ldGhvZF0gfSB7DQo+ICsJdW5zdXBw b3J0ZWQgInRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IHJlY29yZC1idHJhY2UgJHttZXRob2R9Ig0K PiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiArICAgIGNsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9 Ig0KPiArICAgIGlmICFbcnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgIyBUcmFjZSB0aGUgdGVzdCBmdW5jdGlvbg0KPiArICAgICMNCj4gKyAgICBnZGJf dGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UgJHttZXRob2R9Ig0KPiArICAgIGdkYl90ZXN0 ICJuZXh0Ig0KPiArDQo+ICsgICAgIyBUaGUgbWVtb3J5IGNvbnRhaW5pbmcgdGhlIGxpYnJhcnkg Y2FsbCB3ZSB0cmFjZWQgaXMgYWxyZWFkeSBnb25lLg0KPiArICAgICMgVHJhY2UgZGVjb2RlIHVz ZWQgdG8gcnVuIGludG8gYSBTRUdWIGFmdGVyIGNvcnJ1cHRpbmcgdGhlIGNsZWFudXAgY2hhaW4u DQo+ICsgICAgIw0KPiArICAgICMgVGhlIHRlc3QgcGFzc2VzIGlmIHdlIGRvbid0IGNyYXNoIEdE Qi4NCj4gKyAgICAjDQo+ICsgICAgZ2RiX3Rlc3QgImluZm8gcmVjb3JkIg0KPiAgIH0NCj4gLQ0K PiAtIyBUcmFjZSB0aGUgdGVzdCBmdW5jdGlvbg0KPiAtIw0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0 ICJyZWNvcmQgYnRyYWNlIg0KPiAtZ2RiX3Rlc3QgIm5leHQiDQo+IC0NCj4gLSMgVGhlIG1lbW9y eSBjb250YWluaW5nIHRoZSBsaWJyYXJ5IGNhbGwgd2UgdHJhY2VkIGlzIGFscmVhZHkgZ29uZS4N Cj4gLSMgVHJhY2UgZGVjb2RlIHVzZWQgdG8gcnVuIGludG8gYSBTRUdWIGFmdGVyIGNvcnJ1cHRp bmcgdGhlIGNsZWFudXAgY2hhaW4uDQo+IC0jDQo+IC0jIFRoZSB0ZXN0IHBhc3NlcyBpZiB3ZSBk b24ndCBjcmFzaCBHREIuDQo+IC0jDQo+IC1nZGJfdGVzdCAiaW5mbyByZWNvcmQiDQo+IGRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZW5hYmxlLW5ldy10aHJlYWQuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2VuYWJsZS1uZXctdGhyZWFkLmV4cA0KPiBpbmRleCBk YmJlNmE3ODUxNi4uMTI1NDg1YjM4NWEgMTAwNjQ0DQo+IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJ0cmFjZS9lbmFibGUtbmV3LXRocmVhZC5leHANCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YnRyYWNlL2VuYWJsZS1uZXctdGhyZWFkLmV4cA0KPiBAQCAtMTcsMjQgKzE3LDE0IEBADQo+ICAg DQo+ICAgIyBUZXN0IHRoYXQgbmV3IHRocmVhZHMgb2YgcmVjb3JkZWQgaW5mZXJpb3JzIGFsc28g Z2V0IHJlY29yZGVkLg0KPiAgIA0KPiAtcmVxdWlyZSBhbGxvd19idHJhY2VfdGVzdHMNCj4gK3Jl cXVpcmUgdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZQ0KPiAgIA0KPiAgIHN0YW5kYXJkX3Rlc3RmaWxl DQo+IC1pZiBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0Zmls ZSAkc3JjZmlsZSB7ZGVidWcgcHRocmVhZHN9XSB7DQo+IC0gICAgcmV0dXJuIC0xDQo+IC19DQo+ ICAgDQo+IC1pZiAhW3J1bnRvX21haW5dIHsNCj4gK2lmIFtidWlsZF9leGVjdXRhYmxlICJmYWls ZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIHtkZWJ1ZyBwdGhyZWFkc31dIHsNCj4g ICAgICAgcmV0dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiAtIyBSZWNvcmQgdGhlIG1haW4gdGhyZWFk LiAgUmVjb3JkaW5nIHdpbGwgYXV0b21hdGljYWxseSBiZSBlbmFibGVkIGZvciB0aGUNCj4gLSMg b3RoZXIgdGhyZWFkLg0KPiAtZ2RiX3Rlc3QgInJlY29yZCBidHJhY2UiDQo+IC0NCj4gLWdkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicC4xIiAkc3JjZmlsZV0NCj4gLWdkYl9j b250aW51ZV90b19icmVha3BvaW50ICJjb250IHRvIGJwLjEiICIuKi9cXCogYnBcLjEgXFwqLy4q Ig0KPiAtDQo+ICAgcHJvYyBjaGVja190aHJlYWRfcmVjb3JkZWQgeyBudW0gfSB7DQo+ICAgICAg IGdsb2JhbCBkZWNpbWFsDQo+ICAgDQo+IEBAIC00OSw1ICszOSwyNCBAQCBwcm9jIGNoZWNrX3Ro cmVhZF9yZWNvcmRlZCB7IG51bSB9IHsNCj4gICAgICAgfQ0KPiAgIH0NCj4gICANCj4gLWNoZWNr X3RocmVhZF9yZWNvcmRlZCAxDQo+IC1jaGVja190aHJlYWRfcmVjb3JkZWQgMg0KPiArZm9yZWFj aF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAgICBpZiB7ICFbYWxsb3df YnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBu b3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwljb250aW51ZQ0KPiArICAg IH0NCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3RmaWxlfSINCj4gKw0KPiArICAgIGlmICFb cnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgIyBSZWNv cmQgdGhlIG1haW4gdGhyZWFkLiAgUmVjb3JkaW5nIHdpbGwgYXV0b21hdGljYWxseSBiZSBlbmFi bGVkIGZvciB0aGUNCj4gKyAgICAjIG90aGVyIHRocmVhZC4NCj4gKyAgICBnZGJfdGVzdCAicmVj b3JkIGJ0cmFjZSAke21ldGhvZH0iDQo+ICsNCj4gKyAgICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAiYnAuMSIgJHNyY2ZpbGVdDQo+ICsgICAgZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgImNvbnQgdG8gYnAuMSIgIi4qL1xcKiBicFwuMSBcXCovLioiDQo+ICsNCj4gKyAg ICBjaGVja190aHJlYWRfcmVjb3JkZWQgMQ0KPiArICAgIGNoZWNrX3RocmVhZF9yZWNvcmRlZCAy DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZW5hYmxlLXJ1 bm5pbmcuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2VuYWJsZS1ydW5uaW5nLmV4cA0K PiBpbmRleCAwZDM1NTVhZTczOS4uOTZmZjVmNTBjN2UgMTAwNjQ0DQo+IC0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmJ0cmFjZS9lbmFibGUtcnVubmluZy5leHANCj4gKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYnRyYWNlL2VuYWJsZS1ydW5uaW5nLmV4cA0KPiBAQCAtMTUsMzMgKzE1LDE0IEBADQo+ ICAgIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93 X2J0cmFjZV90ZXN0cw0KPiAtDQo+ICtyZXF1aXJlIHRhcmdldF9zdXBwb3J0c19idHJhY2UNCj4g ICBzdGFuZGFyZF90ZXN0ZmlsZQ0KPiArDQo+ICAgaWYge1tnZGJfY29tcGlsZV9wdGhyZWFkcyAi JHNyY2Rpci8kc3ViZGlyLyRzcmNmaWxlIiAiJGJpbmZpbGUiIGV4ZWN1dGFibGUge2RlYnVnfV0g IT0gIiIgfSB7DQo+ICAgICAgIHVudGVzdGVkICJmYWlsZWQgdG8gcHJlcGFyZSINCj4gICAgICAg cmV0dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiAtIyBXZSBuZWVkIHRvIGVuYWJsZSBub24tc3RvcCBt b2RlIGZvciB0aGUgcmVtb3RlIGNhc2UuDQo+IC1zYXZlX3ZhcnMgeyBHREJGTEFHUyB9IHsNCj4g LSAgICBhcHBlbmQgR0RCRkxBR1MgIiAtZXggXCJzZXQgbm9uLXN0b3Agb25cIiINCj4gLSAgICBj bGVhbl9yZXN0YXJ0ICR0ZXN0ZmlsZQ0KPiAtfQ0KPiAtDQo+IC1pZiAhW3J1bnRvX21haW5dIHsN Cj4gLSAgICByZXR1cm4gLTENCj4gLX0NCj4gLQ0KPiAtc2V0IGJwXzEgW2dkYl9nZXRfbGluZV9u dW1iZXIgImJwLjEiICRzcmNmaWxlXQ0KPiAtDQo+IC1nZGJfYnJlYWtwb2ludCAkYnBfMQ0KPiAt Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gJGJwXzEiICIuKiRicF8xXHJcbi4q Ig0KPiAtZ2RiX3Rlc3QgImNvbnQmIiAiQ29udGludWluZ1wuIg0KPiAtDQo+IC0jIEFsbCB0aHJl YWRzIGFyZSBydW5uaW5nLiAgTGV0J3Mgc3RhcnQgcmVjb3JkaW5nLg0KPiAtZ2RiX3Rlc3Rfbm9f b3V0cHV0ICJyZWNvcmQgYnRyYWNlIg0KPiAtDQo+ICAgcHJvYyBjaGVja190cmFjaW5nX2VuYWJs ZWQgeyB0aHJlYWQgfSB7DQo+ICAgICAgIGdsb2JhbCBnZGJfcHJvbXB0DQo+ICAgDQo+IEBAIC04 NywxMCArNjgsMzYgQEAgcHJvYyBjaGVja190cmFjaW5nX2VuYWJsZWQgeyB0aHJlYWQgfSB7DQo+ ICAgICAgIH0NCj4gICB9DQo+ICAgDQo+IC0jIENoZWNrIHRoYXQgcmVjb3JkaW5nIHdhcyBzdGFy dGVkIG9uIGVhY2ggdGhyZWFkLg0KPiAtZm9yZWFjaCB0aHJlYWQgezEgMiAzIDR9IHsNCj4gLSAg ICBjaGVja190cmFjaW5nX2VuYWJsZWQgJHRocmVhZA0KPiAtfQ0KPiArZm9yZWFjaF93aXRoX3By ZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAgICBpZiB7ICFbYWxsb3dfYnRyYWNlX3Rl c3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9y dCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKw0K PiArICAgICMgV2UgbmVlZCB0byBlbmFibGUgbm9uLXN0b3AgbW9kZSBmb3IgdGhlIHJlbW90ZSBj YXNlLg0KPiArICAgIHNhdmVfdmFycyB7IEdEQkZMQUdTIH0gew0KPiArCWFwcGVuZCBHREJGTEFH UyAiIC1leCBcInNldCBub24tc3RvcCBvblwiIg0KPiArCWNsZWFuX3Jlc3RhcnQgJHRlc3RmaWxl DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgaWYgIVtydW50b19tYWluXSB7DQo+ICsJY29udGludWUN Cj4gKyAgICB9DQo+ICsNCj4gKyAgICBzZXQgYnBfMSBbZ2RiX2dldF9saW5lX251bWJlciAiYnAu MSIgJHNyY2ZpbGVdDQo+ICAgDQo+IC0jIFN0b3AgcmVjb3JkaW5nIHdoaWxlIGFsbCB0aHJlYWRz IGFyZSBydW5uaW5nLg0KPiAtZ2RiX3Rlc3QgInJlY29yZCBzdG9wIiAiUHJvY2VzcyByZWNvcmQg aXMgc3RvcHBlZCBcW15cXFxyXFxcblxdKiINCj4gKyAgICBnZGJfYnJlYWtwb2ludCAkYnBfMQ0K PiArICAgIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250IHRvICRicF8xIiAiLiokYnBf MVxyXG4uKiINCj4gKyAgICBnZGJfdGVzdCAiY29udCYiICJDb250aW51aW5nXC4iDQo+ICsNCj4g KyAgICAjIEFsbCB0aHJlYWRzIGFyZSBydW5uaW5nLiAgTGV0J3Mgc3RhcnQgcmVjb3JkaW5nLg0K PiArICAgIGdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iDQo+ICsN Cj4gKyAgICAjIENoZWNrIHRoYXQgcmVjb3JkaW5nIHdhcyBzdGFydGVkIG9uIGVhY2ggdGhyZWFk Lg0KPiArICAgIGZvcmVhY2ggdGhyZWFkIHsxIDIgMyA0fSB7DQo+ICsJY2hlY2tfdHJhY2luZ19l bmFibGVkICR0aHJlYWQNCj4gKyAgICB9DQo+ICsNCj4gKyAgICAjIFN0b3AgcmVjb3JkaW5nIHdo aWxlIGFsbCB0aHJlYWRzIGFyZSBydW5uaW5nLg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgc3Rv cCIgIlByb2Nlc3MgcmVjb3JkIGlzIHN0b3BwZWQgXFteXFxcclxcXG5cXSoiDQo+ICt9DQo+IGRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZW5hYmxlLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJ0cmFjZS9lbmFibGUuZXhwDQo+IGluZGV4IDRlMzljMDc0NzJiLi41NmMyNmRl NTNjZCAxMDA2NDQNCj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2VuYWJsZS5leHAN Cj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2VuYWJsZS5leHANCj4gQEAgLTE3LDgx ICsxNyw5MiBAQA0KPiAgICMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gICAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiAgIA0KPiAt cmVxdWlyZSBhbGxvd19idHJhY2VfdGVzdHMNCj4gLQ0KPiAtIyBzdGFydCBmcmVzaCAtIHdpdGhv dXQgYW4gZXhlY3V0YWJsZQ0KPiAtZ2RiX2V4aXQNCj4gLWdkYl9zdGFydA0KPiAtDQo+IC0jIHJl Y29yZCBjYW5ub3QgYmUgc3RvcHBlZCwgaWYgaXQgd2FzIG5ldmVyIGFjdGl2ZQ0KPiAtZ2RiX3Rl c3QgInJlY29yZCBzdG9wIiAiTm8gcmVjb3JkaW5nIGlzIGN1cnJlbnRseSBhY3RpdmVcXC4uKiIg InJlY29yZCBzdG9wIHdpdGhvdXQgdGFyZ2V0Ig0KPiAtDQo+IC0jIGJ0cmFjZSBjYW5ub3QgYmUg ZW5hYmxlZCB3aXRob3V0IGEgcnVubmluZyBpbmZlcmlvcg0KPiAtZ2RiX3Rlc3QgInJlY29yZCBi dHJhY2UiICJUaGUgcHJvZ3JhbSBpcyBub3QgYmVpbmcgcnVuXFwuIiAicmVjb3JkIGJ0cmFjZSB3 aXRob3V0IHJ1bm5pbmcgcHJvZ3JhbSINCj4gLQ0KPiAtIyBubyBmdW5jdGlvbiBhbmQgbm8gaW5z dHJ1Y3Rpb24gaGlzdG9yeSB3aXRob3V0IGJ0cmFjZSBlbmFibGVkDQo+IC1nZGJfdGVzdCAicmVj b3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSIgIk5vIHJlY29yZGluZyBpcyBjdXJyZW50bHkgYWN0 aXZlXFwuLioiICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IHdpdGhvdXQgdGFyZ2V0Ig0K PiAtZ2RiX3Rlc3QgInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IiAiTm8gcmVjb3JkaW5nIGlz IGN1cnJlbnRseSBhY3RpdmVcXC4uKiIgInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IHdpdGhv dXQgdGFyZ2V0Ig0KPiAtZ2RiX3Rlc3QgImluZm8gcmVjb3JkIiAiTm8gcmVjb3JkaW5nIGlzIGN1 cnJlbnRseSBhY3RpdmVcXC4iICJpbmZvIHJlY29yZCB3aXRob3V0IHRhcmdldCINCj4gK3JlcXVp cmUgdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZQ0KPiAgIA0KPiAgIHN0YW5kYXJkX3Rlc3RmaWxlDQo+ IC1pZiBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSB7 fSB7ZGVidWd9XSB7DQo+IC0gICAgcmV0dXJuIC0xDQo+IC19DQo+IC0NCj4gLWlmICFbcnVudG9f bWFpbl0gew0KPiAraWYgW2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVz dGZpbGUge30ge2RlYnVnfV0gew0KPiAgICAgICByZXR1cm4gLTENCj4gICB9DQo+ICAgDQo+IC0j IGVuYWJsZSBidHJhY2UNCj4gLWdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSIgInJl Y29yZCBidHJhY2UiDQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSIg Ik5vIHRyYWNlXFwuIiAicmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSB3aXRob3V0IHRyYWNl Ig0KPiAtZ2RiX3Rlc3QgInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IiAiTm8gdHJhY2VcXC4i ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSB3aXRob3V0IHRyYWNlIg0KPiAtDQo+IC0jIGJ0 cmFjZSBjYW5ub3QgYmUgZW5hYmxlZCB0d2ljZQ0KPiAtZ2RiX3Rlc3QgInJlY29yZCBidHJhY2Ui ICJUaGUgcHJvY2VzcyBpcyBhbHJlYWR5IGJlaW5nIHJlY29yZGVkXFwuICBVc2UgXCJyZWNvcmQg c3RvcFwiIHRvIHN0b3AgcmVjb3JkaW5nIGZpcnN0XFwuIiAicmVjb3JkIGJ0cmFjZSB0aGUgc2Vj b25kIHRpbWUiDQo+IC0NCj4gLSMgZnVsbCByZWNvcmQgY2Fubm90IGJlIGFjdGl2YXRlZCBhcyBs b25nIGFzIGJ0cmFjZSBpcyBhY3RpdmUNCj4gLWdkYl90ZXN0ICJyZWNvcmQgZnVsbCIgIlRoZSBw cm9jZXNzIGlzIGFscmVhZHkgYmVpbmcgcmVjb3JkZWRcXC4gIFVzZSBcInJlY29yZCBzdG9wXCIg dG8gc3RvcCByZWNvcmRpbmcgZmlyc3RcXC4iICJyZWNvcmQgZnVsbCBjYW5ub3QgYmUgZW5hYmxl ZCINCj4gLQ0KPiAtIyBubyB0cmFjZSByZWNvcmRlZCB5ZXQNCj4gLWdkYl90ZXN0ICJpbmZvIHJl Y29yZCIgIkFjdGl2ZSByZWNvcmQgdGFyZ2V0OiByZWNvcmQtYnRyYWNlXHINCj4gLS4qXHINCj4g LVJlY29yZGVkIDAgaW5zdHJ1Y3Rpb25zIGluIDAgZnVuY3Rpb25zIFxcXCgwIGdhcHNcXFwpIGZv ciB0aHJlYWQgMS4qXFwuIiAiaW5mbyByZWNvcmQgd2l0aG91dCB0cmFjZSINCj4gLQ0KPiAtIyBz dG9wIGJ0cmFjZSByZWNvcmQNCj4gLWdkYl90ZXN0ICJyZWNvcmQgc3RvcCIgIlByb2Nlc3MgcmVj b3JkIGlzIHN0b3BwZWQgYW5kIGFsbCBleGVjdXRpb24gbG9ncyBhcmUgZGVsZXRlZFxcLiINCj4g LWdkYl90ZXN0ICJyZWNvcmQgc3RvcCIgIk5vIHJlY29yZGluZyBpcyBjdXJyZW50bHkgYWN0aXZl XFwuLioiICJyZWNvcmQgc3RvcCB0aGUgc2Vjb25kIHRpbWUiDQo+IC0NCj4gLSMgZW5hYmxlIGJ0 cmFjZSBhZ2Fpbg0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlIiAicmVjb3Jk IGJ0cmFjZSByZS1lbmFibGUiDQo+IC1nZGJfdGVzdCAicmVjb3JkIGJ0cmFjZSIgIlRoZSBwcm9j ZXNzIGlzIGFscmVhZHkgYmVpbmcgcmVjb3JkZWRcXC4gIFVzZSBcInJlY29yZCBzdG9wXCIgdG8g c3RvcCByZWNvcmRpbmcgZmlyc3RcXC4iICJyZWNvcmQgYnRyYWNlIHJlLWVuYWJsZSB0d2ljZSIN Cj4gLQ0KPiAtIyBjb250aW51ZSB0byB0aGUgZW5kIGFuZCBtYWtlIHN1cmUgd2UgZG9uJ3QgZGll DQo+IC1nZGJfdGVzdCAiY29udGludWUiICIuKkluZmVyaW9yLipleGl0ZWQuKiIgImNvbnRpbnVl IHRvIGVuZCINCj4gLQ0KPiAtIyBhbGxvd19nZGJzZXJ2ZXJfdGVzdHMgcmVxdWlyZXMgR0RCIG5v dCBydW5uaW5nLg0KPiAtZ2RiX2V4aXQNCj4gLQ0KPiAtIyBza2lwIHRoZSByZXJ1biB0ZXN0IHdo ZW4gdXNpbmcgZ2Ric2VydmVyDQo+IC0jIG90aGVyd2lzZSByZXJ1biB0d2ljZSwgdGFyZ2V0IHNo b3VsZCBiZSBhdXRvbWF0aWNhbGx5IGRpc2FibGVkDQo+IC1sb2FkX2xpYiBnZGJzZXJ2ZXItc3Vw cG9ydC5leHANCj4gLXJlcXVpcmUgYWxsb3dfZ2Ric2VydmVyX3Rlc3RzDQo+IC1jbGVhbl9yZXN0 YXJ0ICR0ZXN0ZmlsZQ0KPiAtaWYgIVtydW50b19tYWluXSB7DQo+IC0gICAgcmV0dXJuIC0xDQo+ IC19DQo+IC1pZiAhW3J1bnRvX21haW5dIHsNCj4gLSAgICByZXR1cm4gLTENCj4gLX0NCj4gLQ0K PiAtIyBtYWtlIHN1cmUgcmVjb3JkLWJ0cmFjZSBjYW4gYmUgZW5hYmxlZCBhZnRlciByZS1ydW4N Cj4gLWNsZWFuX3Jlc3RhcnQgJHRlc3RmaWxlDQo+IC1pZiAhW3J1bnRvX21haW5dIHsNCj4gLSAg ICByZXR1cm4gLTENCj4gLX0NCj4gLWdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSIg ImVuYWJsZSBhZnRlciByZXN0YXJ0Ig0KPiAtaWYgIVtydW50b19tYWluXSB7DQo+IC0gICAgcmV0 dXJuIC0xDQo+ICtmb3JlYWNoX3dpdGhfcHJlZml4IG1ldGhvZCB7ImJ0cyIgInB0In0gew0KPiAr ICAgIGlmIHsgIVthbGxvd19idHJhY2VfdGVzdHMgJG1ldGhvZF0gfSB7DQo+ICsJdW5zdXBwb3J0 ZWQgInRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IHJlY29yZC1idHJhY2UgJHttZXRob2R9Ig0KPiAr CWNvbnRpbnVlDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgY2xlYW5fcmVzdGFydCAiJHt0ZXN0Zmls ZX0iDQo+ICsgICAgaWYgIVtydW50b19tYWluXSB7DQo+ICsJY29udGludWUNCj4gKyAgICB9DQo+ ICsNCj4gKyAgICAjIHN0YXJ0IGZyZXNoIC0gd2l0aG91dCBhbiBleGVjdXRhYmxlDQo+ICsgICAg Z2RiX2V4aXQNCj4gKyAgICBnZGJfc3RhcnQNCj4gKw0KPiArICAgICMgcmVjb3JkIGNhbm5vdCBi ZSBzdG9wcGVkLCBpZiBpdCB3YXMgbmV2ZXIgYWN0aXZlDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29y ZCBzdG9wIiAiTm8gcmVjb3JkaW5nIGlzIGN1cnJlbnRseSBhY3RpdmVcXC4uKiIgInJlY29yZCBz dG9wIHdpdGhvdXQgdGFyZ2V0Ig0KPiArDQo+ICsgICAgIyBidHJhY2UgY2Fubm90IGJlIGVuYWJs ZWQgd2l0aG91dCBhIHJ1bm5pbmcgaW5mZXJpb3INCj4gKyAgICBnZGJfdGVzdCAicmVjb3JkIGJ0 cmFjZSAke21ldGhvZH0iICJUaGUgcHJvZ3JhbSBpcyBub3QgYmVpbmcgcnVuXFwuIiAicmVjb3Jk IGJ0cmFjZSB3aXRob3V0IHJ1bm5pbmcgcHJvZ3JhbSINCj4gKw0KPiArICAgICMgbm8gZnVuY3Rp b24gYW5kIG5vIGluc3RydWN0aW9uIGhpc3Rvcnkgd2l0aG91dCBidHJhY2UgZW5hYmxlZA0KPiAr ICAgIGdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IiAiTm8gcmVjb3JkaW5n IGlzIGN1cnJlbnRseSBhY3RpdmVcXC4uKiIgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnkg d2l0aG91dCB0YXJnZXQiDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0 b3J5IiAiTm8gcmVjb3JkaW5nIGlzIGN1cnJlbnRseSBhY3RpdmVcXC4uKiIgInJlY29yZCBpbnN0 cnVjdGlvbi1oaXN0b3J5IHdpdGhvdXQgdGFyZ2V0Ig0KPiArICAgIGdkYl90ZXN0ICJpbmZvIHJl Y29yZCIgIk5vIHJlY29yZGluZyBpcyBjdXJyZW50bHkgYWN0aXZlXFwuIiAiaW5mbyByZWNvcmQg d2l0aG91dCB0YXJnZXQiDQo+ICsNCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3RmaWxlfSIN Cj4gKyAgICBpZiAhW3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKw0K PiArICAgICMgZW5hYmxlIGJ0cmFjZQ0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAicmVjb3Jk IGJ0cmFjZSAke21ldGhvZH0iICJyZWNvcmQgYnRyYWNlICR7bWV0aG9kfSINCj4gKyAgICBnZGJf dGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSIgIk5vIHRyYWNlXFwuIiAicmVjb3Jk IGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSB3aXRob3V0IHRyYWNlIg0KPiArICAgIGdkYl90ZXN0ICJy ZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSIgIk5vIHRyYWNlXFwuIiAicmVjb3JkIGluc3RydWN0 aW9uLWhpc3Rvcnkgd2l0aG91dCB0cmFjZSINCj4gKw0KPiArICAgICMgYnRyYWNlIGNhbm5vdCBi ZSBlbmFibGVkIHR3aWNlDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBidHJhY2UgJHttZXRob2R9 IiAiVGhlIHByb2Nlc3MgaXMgYWxyZWFkeSBiZWluZyByZWNvcmRlZFxcLiAgVXNlIFwicmVjb3Jk IHN0b3BcIiB0byBzdG9wIHJlY29yZGluZyBmaXJzdFxcLiIgInJlY29yZCBidHJhY2UgJHttZXRo b2R9IHRoZSBzZWNvbmQgdGltZSINCj4gKw0KPiArICAgICMgZnVsbCByZWNvcmQgY2Fubm90IGJl IGFjdGl2YXRlZCBhcyBsb25nIGFzIGJ0cmFjZSBpcyBhY3RpdmUNCj4gKyAgICBnZGJfdGVzdCAi cmVjb3JkIGZ1bGwiICJUaGUgcHJvY2VzcyBpcyBhbHJlYWR5IGJlaW5nIHJlY29yZGVkXFwuICBV c2UgXCJyZWNvcmQgc3RvcFwiIHRvIHN0b3AgcmVjb3JkaW5nIGZpcnN0XFwuIiAicmVjb3JkIGZ1 bGwgY2Fubm90IGJlIGVuYWJsZWQiDQo+ICsNCj4gKyAgICAjIG5vIHRyYWNlIHJlY29yZGVkIHll dA0KPiArICAgIGdkYl90ZXN0ICJpbmZvIHJlY29yZCIgIkFjdGl2ZSByZWNvcmQgdGFyZ2V0OiBy ZWNvcmQtYnRyYWNlXHIuKlJlY29yZGVkIDAgaW5zdHJ1Y3Rpb25zIGluIDAgZnVuY3Rpb25zIFxc XCgwIGdhcHNcXFwpIGZvciB0aHJlYWQgMS4qXFwuIiAiaW5mbyByZWNvcmQgd2l0aG91dCB0cmFj ZSINCj4gKw0KPiArICAgICMgc3RvcCBidHJhY2UgcmVjb3JkDQo+ICsgICAgZ2RiX3Rlc3QgInJl Y29yZCBzdG9wIiAiUHJvY2VzcyByZWNvcmQgaXMgc3RvcHBlZCBhbmQgYWxsIGV4ZWN1dGlvbiBs b2dzIGFyZSBkZWxldGVkXFwuIg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgc3RvcCIgIk5vIHJl Y29yZGluZyBpcyBjdXJyZW50bHkgYWN0aXZlXFwuLioiICJyZWNvcmQgc3RvcCB0aGUgc2Vjb25k IHRpbWUiDQo+ICsNCj4gKyAgICAjIGVuYWJsZSBidHJhY2UgYWdhaW4NCj4gKyAgICBnZGJfdGVz dF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UgJHttZXRob2R9IiAicmVjb3JkIGJ0cmFjZSAke21l dGhvZH0gcmUtZW5hYmxlIg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgYnRyYWNlICR7bWV0aG9k fSIgIlRoZSBwcm9jZXNzIGlzIGFscmVhZHkgYmVpbmcgcmVjb3JkZWRcXC4gIFVzZSBcInJlY29y ZCBzdG9wXCIgdG8gc3RvcCByZWNvcmRpbmcgZmlyc3RcXC4iICJyZWNvcmQgYnRyYWNlICR7bWV0 aG9kfSByZS1lbmFibGUgdHdpY2UiDQo+ICsNCj4gKyAgICAjIGNvbnRpbnVlIHRvIHRoZSBlbmQg YW5kIG1ha2Ugc3VyZSB3ZSBkb24ndCBkaWUNCj4gKyAgICBnZGJfdGVzdCAiY29udGludWUiICIu KkluZmVyaW9yLipleGl0ZWQuKiIgImNvbnRpbnVlIHRvIGVuZCINCj4gKw0KPiArICAgICMgYWxs b3dfZ2Ric2VydmVyX3Rlc3RzIHJlcXVpcmVzIEdEQiBub3QgcnVubmluZy4NCj4gKyAgICBnZGJf ZXhpdA0KPiArDQo+ICsgICAgIyBza2lwIHRoZSByZXJ1biB0ZXN0IHdoZW4gdXNpbmcgZ2Ric2Vy dmVyDQo+ICsgICAgIyBvdGhlcndpc2UgcmVydW4gdHdpY2UsIHRhcmdldCBzaG91bGQgYmUgYXV0 b21hdGljYWxseSBkaXNhYmxlZA0KPiArICAgIGxvYWRfbGliIGdkYnNlcnZlci1zdXBwb3J0LmV4 cA0KPiArICAgIHJlcXVpcmUgYWxsb3dfZ2Ric2VydmVyX3Rlc3RzDQo+ICsgICAgY2xlYW5fcmVz dGFydCAkdGVzdGZpbGUNCj4gKyAgICBpZiAhW3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0K PiArICAgIH0NCj4gKyAgICBpZiAhW3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0KPiArICAg IH0NCj4gKw0KPiArICAgICMgbWFrZSBzdXJlIHJlY29yZC1idHJhY2UgY2FuIGJlIGVuYWJsZWQg YWZ0ZXIgcmUtcnVuDQo+ICsgICAgY2xlYW5fcmVzdGFydCAkdGVzdGZpbGUNCj4gKyAgICBpZiAh W3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKyAgICBnZGJfdGVzdF9u b19vdXRwdXQgInJlY29yZCBidHJhY2UiICJlbmFibGUgYWZ0ZXIgcmVzdGFydCINCj4gKyAgICBp ZiAhW3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKyAgICBnZGJfdGVz dF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UiICJlbmFibGUgYWZ0ZXIgcmUtcnVuIg0KPiAgIH0N Cj4gLWdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSIgImVuYWJsZSBhZnRlciByZS1y dW4iDQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZXhjZXB0aW9uLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9leGNlcHRpb24uZXhwDQo+IGluZGV4IDYxY2M2 YzkwNGI2Li5jMjA4ZDUwZTU2MCAxMDA3NTUNCj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRy YWNlL2V4Y2VwdGlvbi5leHANCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2V4Y2Vw dGlvbi5leHANCj4gQEAgLTE3LDY0ICsxNyw3MyBAQA0KPiAgICMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gICAjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+Lg0KPiAgIA0KPiAtcmVxdWlyZSBhbGxvd19idHJhY2VfdGVzdHMNCj4gK3JlcXVp cmUgdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZQ0KPiAgIA0KPiAgICMgV2UgZXhwZWN0IGEgc3BlY2lm aWMgZnVuY3Rpb24gY2FsbCBoaXN0b3J5LiAgVGhpcyBnZXRzIG1lc3NlZCB1cCB3aXRoDQo+ICAg IyBQSUUgb24gMzItYml0Lg0KPiAgIHN0YW5kYXJkX3Rlc3RmaWxlIGV4Y2VwdGlvbi5jYw0KPiAt aWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNy Y2ZpbGUgXA0KPiArDQo+ICtpZiBbYnVpbGRfZXhlY3V0YWJsZSAiZmFpbGVkIHRvIHByZXBhcmUi ICR0ZXN0ZmlsZSAkc3JjZmlsZSBcDQo+ICAgCXtub3BpZSBjKysgZGVidWd9XSB7DQo+ICAgICAg IHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLWlmICFbcnVudG9fbWFpbl0gew0KPiAtICAgIHJl dHVybiAtMQ0KPiAtfQ0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9 IHsNCj4gKyAgICBpZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVu c3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9k fSINCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3Rm aWxlfSINCj4gICANCj4gLSMgd2Ugd2FudCB0byBzZWUgdGhlIGZ1bGwgdHJhY2UgZm9yIHRoaXMg dGVzdA0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlz dG9yeS1zaXplIDAiDQo+ICsgICAgaWYgIVtydW50b19tYWluXSB7DQo+ICsJY29udGludWUNCj4g KyAgICB9DQo+ICAgDQo+IC0jIHNldCBicA0KPiAtc2V0IGJwXzEgW2dkYl9nZXRfbGluZV9udW1i ZXIgImJwLjEiICRzcmNmaWxlXQ0KPiAtc2V0IGJwXzIgW2dkYl9nZXRfbGluZV9udW1iZXIgImJw LjIiICRzcmNmaWxlXQ0KPiAtZ2RiX2JyZWFrcG9pbnQgJGJwXzENCj4gLWdkYl9icmVha3BvaW50 ICRicF8yDQo+ICsgICAgIyB3ZSB3YW50IHRvIHNlZSB0aGUgZnVsbCB0cmFjZSBmb3IgdGhpcyB0 ZXN0DQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGZ1bmN0aW9uLWNhbGwt aGlzdG9yeS1zaXplIDAiDQo+ICAgDQo+IC0jIHRyYWNlIHRoZSBjb2RlIGJldHdlZW4gdGhlIHR3 byBicmVha3BvaW50cw0KPiAtZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gYnAu MSIgIi4qJHNyY2ZpbGU6JGJwXzFcclxuLioiDQo+IC0jIGluY3JlYXNlIHRoZSBCVFMgYnVmZmVy IHNpemUgLSB0aGUgdHJhY2UgY2FuIGJlIHF1aXRlIGJpZw0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0 ICJzZXQgcmVjb3JkIGJ0cmFjZSBidHMgYnVmZmVyLXNpemUgMTI4MDAwIg0KPiAtZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlIg0KPiAtZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImNvbnQgdG8gYnAuMiIgIi4qJHNyY2ZpbGU6JGJwXzJcclxuLioiDQo+ICsgICAgIyBzZXQgYnAN Cj4gKyAgICBzZXQgYnBfMSBbZ2RiX2dldF9saW5lX251bWJlciAiYnAuMSIgJHNyY2ZpbGVdDQo+ ICsgICAgc2V0IGJwXzIgW2dkYl9nZXRfbGluZV9udW1iZXIgImJwLjIiICRzcmNmaWxlXQ0KPiAr ICAgIGdkYl9icmVha3BvaW50ICRicF8xDQo+ICsgICAgZ2RiX2JyZWFrcG9pbnQgJGJwXzINCj4g ICANCj4gLSMgc2hvdyB0aGUgZmxhdCBicmFuY2ggdHJhY2UNCj4gLXNlbmRfZ2RiICJyZWNvcmQg ZnVuY3Rpb24tY2FsbC1oaXN0b3J5IDFcbiINCj4gLWdkYl9leHBlY3RfbGlzdCAiZmxhdCIgIlxy XG4kZ2RiX3Byb21wdCAkIiBbbGlzdCBcDQo+IC0gIFttdWx0aV9saW5lIFwNCj4gLSAgICAiMVx0 bWFpblxcKFxcKSIgXA0KPiAtICAgICIyXHR0ZXN0XFwoXFwpIiBcDQo+IC0gICAgIjNcdGZvb1xc KFxcKSIgXA0KPiAtICAgICI0XHRiYXJcXChcXCkiIFwNCj4gLSAgICAiNVx0YmFkXFwoXFwpXHIi IFwNCj4gLSAgXSAiIiBcDQo+IC0gIFttdWx0aV9saW5lIFwNCj4gLSAgICAiXFswLTlcXSpcdHRl c3RcXChcXCkiIFwNCj4gLSAgICAiXFswLTlcXSpcdG1haW5cXChcXCkiIFwNCj4gLSAgXSAiIiBc DQo+IC0gIF0NCj4gKyAgICAjIHRyYWNlIHRoZSBjb2RlIGJldHdlZW4gdGhlIHR3byBicmVha3Bv aW50cw0KPiArICAgIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250IHRvIGJwLjEiICIu KiRzcmNmaWxlOiRicF8xXHJcbi4qIg0KPiArICAgICMgaW5jcmVhc2UgdGhlIEJUUyBidWZmZXIg c2l6ZSAtIHRoZSB0cmFjZSBjYW4gYmUgcXVpdGUgYmlnIGZvciBidHMgbWV0aG9kDQo+ICsgICAg Z2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGJ0cmFjZSAke21ldGhvZH0gYnVmZmVyLXNp emUgMTI4MDAwIg0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21l dGhvZH0iDQo+ICsgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gYnAuMiIg Ii4qJHNyY2ZpbGU6JGJwXzJcclxuLioiDQo+ICAgDQo+IC0jIHNob3cgdGhlIGJyYW5jaCB0cmFj ZSB3aXRoIGNhbGxzIGluZGVudGVkDQo+IC1zZW5kX2dkYiAicmVjb3JkIGZ1bmN0aW9uLWNhbGwt aGlzdG9yeSAvYyAxXG4iDQo+IC1nZGJfZXhwZWN0X2xpc3QgImluZGVudGVkIiAiXHJcbiRnZGJf cHJvbXB0ICQiIFtsaXN0IFwNCj4gLSAgW211bHRpX2xpbmUgXA0KPiAtICAgICIxXHRtYWluXFwo XFwpIiBcDQo+IC0gICAgIjJcdCAgdGVzdFxcKFxcKSIgXA0KPiAtICAgICIzXHQgICAgZm9vXFwo XFwpIiBcDQo+IC0gICAgIjRcdCAgICAgIGJhclxcKFxcKSIgXA0KPiAtICAgICI1XHQgICAgICAg IGJhZFxcKFxcKVxyIiBcDQo+IC0gIF0gIiIgXA0KPiAtICBbbXVsdGlfbGluZSBcDQo+IC0gICAg IlxbMC05XF0qXHQgIHRlc3RcXChcXCkiIFwNCj4gLSAgICAiXFswLTlcXSpcdG1haW5cXChcXCki IFwNCj4gLSAgXSAiIiBcDQo+IC0gIF0NCj4gKyAgICAjIHNob3cgdGhlIGZsYXQgYnJhbmNoIHRy YWNlDQo+ICsgICAgc2VuZF9nZGIgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgMVxuIg0K PiArICAgIGdkYl9leHBlY3RfbGlzdCAiZmxhdCIgIlxyXG4kZ2RiX3Byb21wdCAkIiBbbGlzdCBc DQo+ICsJW211bHRpX2xpbmUgXA0KPiArCSAgICAiMVx0bWFpblxcKFxcKSIgXA0KPiArCSAgICAi Mlx0dGVzdFxcKFxcKSIgXA0KPiArCSAgICAiM1x0Zm9vXFwoXFwpIiBcDQo+ICsJICAgICI0XHRi YXJcXChcXCkiIFwNCj4gKwkgICAgIjVcdGJhZFxcKFxcKVxyIiBcDQo+ICsJXSAiIiBcDQo+ICsJ W211bHRpX2xpbmUgXA0KPiArCSAgICAiXFswLTlcXSpcdHRlc3RcXChcXCkiIFwNCj4gKwkgICAg IlxbMC05XF0qXHRtYWluXFwoXFwpIiBcDQo+ICsJXSAiIiBcDQo+ICsgICAgXQ0KPiArDQo+ICsg ICAgIyBzaG93IHRoZSBicmFuY2ggdHJhY2Ugd2l0aCBjYWxscyBpbmRlbnRlZA0KPiArICAgIHNl bmRfZ2RiICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC9jIDFcbiINCj4gKyAgICBnZGJf ZXhwZWN0X2xpc3QgImluZGVudGVkIiAiXHJcbiRnZGJfcHJvbXB0ICQiIFtsaXN0IFwNCj4gKwlb bXVsdGlfbGluZSBcDQo+ICsJICAgICIxXHRtYWluXFwoXFwpIiBcDQo+ICsJICAgICIyXHQgIHRl c3RcXChcXCkiIFwNCj4gKwkgICAgIjNcdCAgICBmb29cXChcXCkiIFwNCj4gKwkgICAgIjRcdCAg ICAgIGJhclxcKFxcKSIgXA0KPiArCSAgICAiNVx0ICAgICAgICBiYWRcXChcXClcciIgXA0KPiAr CV0gIiIgXA0KPiArCVttdWx0aV9saW5lIFwNCj4gKwkgICAgIlxbMC05XF0qXHQgIHRlc3RcXChc XCkiIFwNCj4gKwkgICAgIlxbMC05XF0qXHRtYWluXFwoXFwpIiBcDQo+ICsJXSAiIiBcDQo+ICsg ICAgXQ0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2Z1bmN0 aW9uX2NhbGxfaGlzdG9yeS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvZnVuY3Rpb25f Y2FsbF9oaXN0b3J5LmV4cA0KPiBpbmRleCBjZTNkMWEwMmZmNi4uYzdlY2UxZGI1MmMgMTAwNjQ0 DQo+IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9mdW5jdGlvbl9jYWxsX2hpc3Rvcnku ZXhwDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9mdW5jdGlvbl9jYWxsX2hpc3Rv cnkuZXhwDQo+IEBAIC0xNywyNyArMTcsMjAgQEANCj4gICAjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ICAgIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4NCj4gICANCj4gLXJlcXVpcmUgYWxsb3dfYnRyYWNlX3Rlc3RzDQo+ICtyZXF1aXJl IHRhcmdldF9zdXBwb3J0c19idHJhY2UNCj4gICANCj4gICAjIFdlIGV4cGVjdCBhIHNwZWNpZmlj IGZ1bmN0aW9uIGNhbGwgaGlzdG9yeS4gIFRoaXMgZ2V0cyBtZXNzZWQgdXAgd2l0aA0KPiAgICMg UElFIG9uIDMyLWJpdC4NCj4gICBzdGFuZGFyZF90ZXN0ZmlsZQ0KPiAtaWYgW3ByZXBhcmVfZm9y X3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUge30ge25vcGllIGRlYnVnfV0g ew0KPiAraWYgeyFbdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZV19IHsNCj4gKyAgICB1bnN1cHBvcnRl ZCAidGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgYnRyYWNlLiINClRoaXMgaXMgZHVwbGljYXRpbmcg dGhlIHByZXZpb3VzICJyZXF1aXJlIHRhcmdldF9zdXBwb3J0c19idHJhY2UiIGxpbmUNCj4gICAg ICAgcmV0dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiAtaWYgIVtydW50b19tYWluXSB7DQo+ICtpZiBb YnVpbGRfZXhlY3V0YWJsZSAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSB7fSB7bm9waWUg ZGVidWd9XSB7DQo+ICAgICAgIHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLSMgc3RhcnQgYnRy YWNlDQo+IC1nZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UiDQo+IC0NCj4gLSMgc2V0 IGJwIGFmdGVyIGluY3JlbWVudCBsb29wIGFuZCBjb250aW51ZQ0KPiAtc2V0IGJwX2xvY2F0aW9u IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicC4xIiAkdGVzdGZpbGUuY10NCj4gLWdkYl9icmVha3Bv aW50ICRicF9sb2NhdGlvbg0KPiAtZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8g JGJwX2xvY2F0aW9uIiAiLiokdGVzdGZpbGUuYzokYnBfbG9jYXRpb24uKiINCj4gLQ0KPiAgIHBy b2MgcmVjX2Z1bl9hbGwge30gew0KPiAgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxs LWhpc3RvcnkgMSIgW211bHRpX2xpbmUgXA0KPiAgICAgICAiMVx0bWFpbiIgXA0KPiBAQCAtNjMs MTk0ICs1NiwyMTUgQEAgcHJvYyByZWNfZnVuX2FsbCB7fSB7DQo+ICAgICAgICIyMVx0bWFpbiJd DQo+ICAgfQ0KPiAgIA0KPiAtIyBzaG93IGZ1bmN0aW9uIGNhbGwgaGlzdG9yeSB3aXRoIHVubGlt aXRlZCBzaXplLCB3ZSBleHBlY3QgdG8gc2VlIGFsbCAyMSBlbnRyaWVzDQo+IC1nZGJfdGVzdF9u b19vdXRwdXQgInNldCByZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5LXNpemUgMCINCj4gLXdp dGhfdGVzdF9wcmVmaXggInNpemUgdW5saW1pdGVkIiByZWNfZnVuX2FsbA0KPiAtDQo+IC0jIHNo b3cgZnVuY3Rpb24gY2FsbCBoaXN0b3J5IHdpdGggc2l6ZSBvZiAyMSwgd2UgZXhwZWN0IHRvIHNl ZSBhbGwgMjEgZW50cmllcw0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGZ1bmN0 aW9uLWNhbGwtaGlzdG9yeS1zaXplIDIxIg0KPiAtd2l0aF90ZXN0X3ByZWZpeCAic2l6ZSAyMSIg cmVjX2Z1bl9hbGwNCj4gLQ0KPiAtIyBzaG93IGZpcnN0IDE1IGVudHJpZXMNCj4gLWdkYl90ZXN0 X25vX291dHB1dCAic2V0IHJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnktc2l6ZSAxNSINCj4g LWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IDEiIFttdWx0aV9saW5lIFwN Cj4gLSAgIjFcdG1haW4iIFwNCj4gLSAgIjJcdGluYyIgXA0KPiAtICAiM1x0bWFpbiIgXA0KPiAt ICAiNFx0aW5jIiBcDQo+IC0gICI1XHRtYWluIiBcDQo+IC0gICI2XHRpbmMiIFwNCj4gLSAgIjdc dG1haW4iIFwNCj4gLSAgIjhcdGluYyIgXA0KPiAtICAiOVx0bWFpbiIgXA0KPiAtICAiMTBcdGlu YyIgXA0KPiAtICAiMTFcdG1haW4iIFwNCj4gLSAgIjEyXHRpbmMiIFwNCj4gLSAgIjEzXHRtYWlu IiBcDQo+IC0gICIxNFx0aW5jIiBcDQo+IC0gICIxNVx0bWFpbiJdICJmb3J3YXJkIC0gMSINCj4g LQ0KPiAtIyBzaG93IGxhc3QgNiBlbnRyaWVzDQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9u LWNhbGwtaGlzdG9yeSArIiBbbXVsdGlfbGluZSBcDQo+IC0gICIxNlx0aW5jIiBcDQo+IC0gICIx N1x0bWFpbiIgXA0KPiAtICAiMThcdGluYyIgXA0KPiAtICAiMTlcdG1haW4iIFwNCj4gLSAgIjIw XHRpbmMiIFwNCj4gLSAgIjIxXHRtYWluIl0gImZvcndhcmQgLSAyIg0KPiAtDQo+IC0jIG1vdmlu ZyBmdXJ0aGVyIHNob3VsZCBub3Qgd29yaw0KPiAtZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1j YWxsLWhpc3RvcnkgKyIgIkF0IHRoZSBlbmQgb2YgdGhlIGJyYW5jaCB0cmFjZSByZWNvcmRcXC4i ICJmb3J3YXJkIC0gMyINCj4gLQ0KPiAtIyBtYWtlIHN1cmUgd2UgY2Fubm90IG1vdmUgYW55IGZ1 cnRoZXIgYSBzZWNvbmQgdGltZQ0KPiAtZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhp c3RvcnkgKyIgIkF0IHRoZSBlbmQgb2YgdGhlIGJyYW5jaCB0cmFjZSByZWNvcmRcXC4iICJmb3J3 YXJkIC0gNCINCj4gLQ0KPiAtIyBtb3ZpbmcgYmFjayBzaG93aW5nIHRoZSBsYXRlc3QgMTUgZnVu Y3Rpb24gY2FsbHMNCj4gLWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC0i IFttdWx0aV9saW5lIFwNCj4gLSAgIjdcdG1haW4iIFwNCj4gLSAgIjhcdGluYyIgXA0KPiAtICAi OVx0bWFpbiIgXA0KPiAtICAiMTBcdGluYyIgXA0KPiAtICAiMTFcdG1haW4iIFwNCj4gLSAgIjEy XHRpbmMiIFwNCj4gLSAgIjEzXHRtYWluIiBcDQo+IC0gICIxNFx0aW5jIiBcDQo+IC0gICIxNVx0 bWFpbiIgXA0KPiAtICAiMTZcdGluYyIgXA0KPiAtICAiMTdcdG1haW4iIFwNCj4gLSAgIjE4XHRp bmMiIFwNCj4gLSAgIjE5XHRtYWluIiBcDQo+IC0gICIyMFx0aW5jIiBcDQo+IC0gICIyMVx0bWFp biJdICJiYWNrd2FyZCAtIDEiDQo+IC0NCj4gLSMgbW92aW5nIGZ1cnRoZXIgYmFjayBzaG93cyB0 aGUgNiBmaXJzdCBmdW5jdGlvbiBjYWxscw0KPiAtZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1j YWxsLWhpc3RvcnkgLSIgW211bHRpX2xpbmUgXA0KPiAtICAiMVx0bWFpbiIgXA0KPiAtICAiMlx0 aW5jIiBcDQo+IC0gICIzXHRtYWluIiBcDQo+IC0gICI0XHRpbmMiIFwNCj4gLSAgIjVcdG1haW4i IFwNCj4gLSAgIjZcdGluYyJdICJiYWNrd2FyZCAtIDIiDQo+IC0NCj4gLSMgbW92aW5nIGZ1cnRo ZXIgYmFjayBzaG91bGRuJ3Qgd29yaw0KPiAtZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxs LWhpc3RvcnkgLSIgIkF0IHRoZSBzdGFydCBvZiB0aGUgYnJhbmNoIHRyYWNlIHJlY29yZFxcLiIg ImJhY2t3YXJkIC0gMyINCj4gLQ0KPiAtIyBtYWtlIHN1cmUgd2UgY2Fubm90IG1vdmUgYW55IGZ1 cnRoZXIgYmFjaw0KPiAtZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgLSIg IkF0IHRoZSBzdGFydCBvZiB0aGUgYnJhbmNoIHRyYWNlIHJlY29yZFxcLiIgImJhY2t3YXJkIC0g NCINCj4gLQ0KPiAtIyBkb24ndCBtZXNzIGFyb3VuZCB3aXRoIHBhdGggbmFtZXMNCj4gLWdkYl90 ZXN0X25vX291dHB1dCAic2V0IGZpbGVuYW1lLWRpc3BsYXkgYmFzZW5hbWUiDQo+IC0NCj4gLSMg bW92aW5nIGZvcndhcmQgYWdhaW4sIGJ1dCB0aGlzIHRpbWUgd2l0aCBmaWxlIGFuZCBsaW5lIG51 bWJlciwgZXhwZWN0ZWQgdG8gc2VlIHRoZSBmaXJzdCAxNSBlbnRyaWVzDQo+IC1nZGJfdGVzdCAi cmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAvbCArIiBbbXVsdGlfbGluZSBcDQo+IC0gICJc WzAtOVxdKlx0bWFpblx0YXQgJHNyY2ZpbGU6NDAsNDEiIFwNCj4gLSAgIlxbMC05XF0qXHRpbmNc dGF0ICRzcmNmaWxlOjIyLDJcWzM0XF0iIFwNCj4gLSAgIlxbMC05XF0qXHRtYWluXHRhdCAkc3Jj ZmlsZTo0MCw0MSIgXA0KPiAtICAiXFswLTlcXSpcdGluY1x0YXQgJHNyY2ZpbGU6MjIsMlxbMzRc XSIgXA0KPiAtICAiXFswLTlcXSpcdG1haW5cdGF0ICRzcmNmaWxlOjQwLDQxIiBcDQo+IC0gICJc WzAtOVxdKlx0aW5jXHRhdCAkc3JjZmlsZToyMiwyXFszNFxdIiBcDQo+IC0gICJcWzAtOVxdKlx0 bWFpblx0YXQgJHNyY2ZpbGU6NDAsNDEiIFwNCj4gLSAgIlxbMC05XF0qXHRpbmNcdGF0ICRzcmNm aWxlOjIyLDJcWzM0XF0iIFwNCj4gLSAgIlxbMC05XF0qXHRtYWluXHRhdCAkc3JjZmlsZTo0MCw0 MSIgXA0KPiAtICAiXFswLTlcXSpcdGluY1x0YXQgJHNyY2ZpbGU6MjIsMlxbMzRcXSIgXA0KPiAt ICAiXFswLTlcXSpcdG1haW5cdGF0ICRzcmNmaWxlOjQwLDQxIiBcDQo+IC0gICJcWzAtOVxdKlx0 aW5jXHRhdCAkc3JjZmlsZToyMiwyXFszNFxdIiBcDQo+IC0gICJcWzAtOVxdKlx0bWFpblx0YXQg JHNyY2ZpbGU6NDAsNDEiIFwNCj4gLSAgIlxbMC05XF0qXHRpbmNcdGF0ICRzcmNmaWxlOjIyLDJc WzM0XF0iIFwNCj4gLSAgIlxbMC05XF0qXHRtYWluXHRhdCAkc3JjZmlsZTo0MCw0MSIgXA0KPiAt ICBdICJmb3J3YXJkIC9sIC0gMSINCj4gLQ0KPiAtIyBtb3ZpbmcgZm9yd2FyZCBhbmQgZXhwZWN0 IHRvIHNlZSB0aGUgbGF0ZXN0IDYgZW50cmllcw0KPiAtZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlv bi1jYWxsLWhpc3RvcnkgL2wgKyIgW211bHRpX2xpbmUgXA0KPiAtICAiXFswLTlcXSpcdGluY1x0 YXQgJHNyY2ZpbGU6MjIsMlxbMzRcXSIgXA0KPiAtICAiXFswLTlcXSpcdG1haW5cdGF0ICRzcmNm aWxlOjQwLDQxIiBcDQo+IC0gICJcWzAtOVxdKlx0aW5jXHRhdCAkc3JjZmlsZToyMiwyXFszNFxd IiBcDQo+IC0gICJcWzAtOVxdKlx0bWFpblx0YXQgJHNyY2ZpbGU6NDAsNDEiIFwNCj4gLSAgIlxb MC05XF0qXHRpbmNcdGF0ICRzcmNmaWxlOjIyLDJcWzM0XF0iIFwNCj4gLSAgIlxbMC05XF0qXHRt YWluXHRhdCAkc3JjZmlsZTo0MCw0MyIgXA0KPiAtICBdICJmb3J3YXJkIC9sIC0gMiINCj4gLQ0K PiAtIyBtb3ZpbmcgZnVydGhlciBmb3J3YXJkIHNob3VsZG4ndCB3b3JrDQo+IC1nZGJfdGVzdCAi cmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAvbCArIiAiQXQgdGhlIGVuZCBvZiB0aGUgYnJh bmNoIHRyYWNlIHJlY29yZFxcLiIgImZvcndhcmQgL2wgLSAzIg0KPiAtZ2RiX3Rlc3QgInJlY29y ZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgL2wiICJBdCB0aGUgZW5kIG9mIHRoZSBicmFuY2ggdHJh Y2UgcmVjb3JkXFwuIiAiZm9yd2FyZCAvbCAtIDQiDQo+IC0NCj4gLXNldCBleHBlY3RlZF9yYW5n ZSBbbXVsdGlfbGluZSBcDQo+IC0gICI0XHRpbmMiIFwNCj4gLSAgIjVcdG1haW4iIFwNCj4gLSAg IjZcdGluYyIgXA0KPiAtICAiN1x0bWFpbiIgXA0KPiAtICAiOFx0aW5jIiBcDQo+IC0gICI5XHRt YWluIiBcDQo+IC0gICIxMFx0aW5jIl0NCj4gLQ0KPiAtIyBzaG93IGZ1bmN0aW9ucyBpbiBpbnN0 cnVjdGlvbiByYW5nZQ0KPiAtZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnkg NCwxMCIgJGV4cGVjdGVkX3JhbmdlDQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwt aGlzdG9yeSA0LCs3IiAkZXhwZWN0ZWRfcmFuZ2UNCj4gLWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rp b24tY2FsbC1oaXN0b3J5IDEwLC03IiAkZXhwZWN0ZWRfcmFuZ2UNCj4gLWdkYl90ZXN0ICJyZWNv cmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IDQsNCIgIjRcdGluYyINCj4gLQ0KPiAtIyBzZXQgYnAg YWZ0ZXIgZmliIHJlY3Vyc2lvbiBhbmQgY29udGludWUNCj4gLXNldCBicF9sb2NhdGlvbiBbZ2Ri X2dldF9saW5lX251bWJlciAiYnAuMiIgJHRlc3RmaWxlLmNdDQo+IC1nZGJfYnJlYWtwb2ludCAk YnBfbG9jYXRpb24NCj4gLWdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250IHRvICRicF9s b2NhdGlvbiIgIi4qJHRlc3RmaWxlLmM6JGJwX2xvY2F0aW9uLioiDQo+IC0NCj4gLSMgYXQgdGhp cyBwb2ludCB3ZSBleHBlY3QgdG8gaGF2ZSBtYWluLCBmaWIsIC4uLiwgZmliLCBtYWluLCB3aGVy ZSBmaWIgb2NjdXJzIDkgdGltZXMsDQo+IC0jIHNvIHdlIGxpbWl0IHRoZSBvdXRwdXQgdG8gb25s eSBzaG93IHRoZSBsYXRlc3QgMTEgZnVuY3Rpb24gY2FsbHMNCj4gLWdkYl90ZXN0X25vX291dHB1 dCAic2V0IHJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnktc2l6ZSAxMSINCj4gLWdkYl90ZXN0 ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IiBbbXVsdGlfbGluZSBcDQo+IC0gICIyMVx0 bWFpbiIgXA0KPiAtICAiMjJcdGZpYiIgXA0KPiAtICAiMjNcdGZpYiIgXA0KPiAtICAiMjRcdGZp YiIgXA0KPiAtICAiMjVcdGZpYiIgXA0KPiAtICAiMjZcdGZpYiIgXA0KPiAtICAiMjdcdGZpYiIg XA0KPiAtICAiMjhcdGZpYiIgXA0KPiAtICAiMjlcdGZpYiIgXA0KPiAtICAiMzBcdGZpYiIgXA0K PiAtICAiMzFcdG1haW4iXSAicmVjdXJzaXZlIg0KPiAtDQo+IC0jIHNob3cgaW5kZW50ZWQgZnVu Y3Rpb24gY2FsbCBoaXN0b3J5IGZvciBmaWINCj4gLWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24t Y2FsbC1oaXN0b3J5IC9jIDIxLCArMTEiIFttdWx0aV9saW5lIFwNCj4gLSAgIjIxXHRtYWluIiBc DQo+IC0gICIyMlx0ICBmaWIiIFwNCj4gLSAgIjIzXHQgICAgZmliIiBcDQo+IC0gICIyNFx0ICBm aWIiIFwNCj4gLSAgIjI1XHQgICAgZmliIiBcDQo+IC0gICIyNlx0ICAgICAgZmliIiBcDQo+IC0g ICIyN1x0ICAgIGZpYiIgXA0KPiAtICAiMjhcdCAgICAgIGZpYiIgXA0KPiAtICAiMjlcdCAgICBm aWIiIFwNCj4gLSAgIjMwXHQgIGZpYiIgXA0KPiAtICAiMzFcdG1haW4iIFwNCj4gLSAgXSAiaW5k ZW50ZWQiDQo+IC0NCj4gLSMgbWFrZSBzdXJlIHdlIGNhbiBoYW5kbGUgaW5jb21wbGV0ZSB0cmFj ZSB3aXRoIHJlc3BlY3QgdG8gaW5kZW50YXRpb24NCj4gLWlmICFbcnVudG9fbWFpbl0gew0KPiAt ICAgIHJldHVybiAtMQ0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9 IHsNCj4gKyAgICBpZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVu c3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9k fSINCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3Rm aWxlfSINCj4gKw0KPiArICAgIGlmICFbcnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsg ICAgfQ0KPiArDQo+ICsgICAgIyBzdGFydCBidHJhY2UNCj4gKyAgICBnZGJfdGVzdF9ub19vdXRw dXQgInJlY29yZCBidHJhY2UgJHttZXRob2R9Ig0KPiArDQo+ICsgICAgIyBzZXQgYnAgYWZ0ZXIg aW5jcmVtZW50IGxvb3AgYW5kIGNvbnRpbnVlDQo+ICsgICAgc2V0IGJwX2xvY2F0aW9uIFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJicC4xIiAkdGVzdGZpbGUuY10NCj4gKyAgICBnZGJfYnJlYWtwb2lu dCAkYnBfbG9jYXRpb24NCj4gKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udCB0 byAkYnBfbG9jYXRpb24iICIuKiR0ZXN0ZmlsZS5jOiRicF9sb2NhdGlvbi4qIg0KPiArDQo+ICsg ICAgIyBzaG93IGZ1bmN0aW9uIGNhbGwgaGlzdG9yeSB3aXRoIHVubGltaXRlZCBzaXplLCB3ZSBl eHBlY3QgdG8gc2VlIGFsbCAyMSBlbnRyaWVzDQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJz ZXQgcmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeS1zaXplIDAiDQo+ICsgICAgd2l0aF90ZXN0 X3ByZWZpeCAic2l6ZSB1bmxpbWl0ZWQiIHJlY19mdW5fYWxsDQo+ICsNCj4gKyAgICAjIHNob3cg ZnVuY3Rpb24gY2FsbCBoaXN0b3J5IHdpdGggc2l6ZSBvZiAyMSwgd2UgZXhwZWN0IHRvIHNlZSBh bGwgMjEgZW50cmllcw0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IHJlY29yZCBmdW5j dGlvbi1jYWxsLWhpc3Rvcnktc2l6ZSAyMSINCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJzaXpl IDIxIiByZWNfZnVuX2FsbA0KPiArDQo+ICsgICAgIyBzaG93IGZpcnN0IDE1IGVudHJpZXMNCj4g KyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCByZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5 LXNpemUgMTUiDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnkg MSIgW211bHRpX2xpbmUgXA0KPiArCSIxXHRtYWluIiBcDQo+ICsJIjJcdGluYyIgXA0KPiArCSIz XHRtYWluIiBcDQo+ICsJIjRcdGluYyIgXA0KPiArCSI1XHRtYWluIiBcDQo+ICsJIjZcdGluYyIg XA0KPiArCSI3XHRtYWluIiBcDQo+ICsJIjhcdGluYyIgXA0KPiArCSI5XHRtYWluIiBcDQo+ICsJ IjEwXHRpbmMiIFwNCj4gKwkiMTFcdG1haW4iIFwNCj4gKwkiMTJcdGluYyIgXA0KPiArCSIxM1x0 bWFpbiIgXA0KPiArCSIxNFx0aW5jIiBcDQo+ICsJIjE1XHRtYWluIl0gImZvcndhcmQgLSAxIg0K PiArDQo+ICsgICAgIyBzaG93IGxhc3QgNiBlbnRyaWVzDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29y ZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgKyIgW211bHRpX2xpbmUgXA0KPiArCSIxNlx0aW5jIiBc DQo+ICsJIjE3XHRtYWluIiBcDQo+ICsJIjE4XHRpbmMiIFwNCj4gKwkiMTlcdG1haW4iIFwNCj4g KwkiMjBcdGluYyIgXA0KPiArCSIyMVx0bWFpbiJdICJmb3J3YXJkIC0gMiINCj4gKw0KPiArICAg ICMgbW92aW5nIGZ1cnRoZXIgc2hvdWxkIG5vdCB3b3JrDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29y ZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgKyIgIkF0IHRoZSBlbmQgb2YgdGhlIGJyYW5jaCB0cmFj ZSByZWNvcmRcXC4iICJmb3J3YXJkIC0gMyINCj4gKw0KPiArICAgICMgbWFrZSBzdXJlIHdlIGNh bm5vdCBtb3ZlIGFueSBmdXJ0aGVyIGEgc2Vjb25kIHRpbWUNCj4gKyAgICBnZGJfdGVzdCAicmVj b3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSArIiAiQXQgdGhlIGVuZCBvZiB0aGUgYnJhbmNoIHRy YWNlIHJlY29yZFxcLiIgImZvcndhcmQgLSA0Ig0KPiArDQo+ICsgICAgIyBtb3ZpbmcgYmFjayBz aG93aW5nIHRoZSBsYXRlc3QgMTUgZnVuY3Rpb24gY2FsbHMNCj4gKyAgICBnZGJfdGVzdCAicmVj b3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAtIiBbbXVsdGlfbGluZSBcDQo+ICsJIjdcdG1haW4i IFwNCj4gKwkiOFx0aW5jIiBcDQo+ICsJIjlcdG1haW4iIFwNCj4gKwkiMTBcdGluYyIgXA0KPiAr CSIxMVx0bWFpbiIgXA0KPiArCSIxMlx0aW5jIiBcDQo+ICsJIjEzXHRtYWluIiBcDQo+ICsJIjE0 XHRpbmMiIFwNCj4gKwkiMTVcdG1haW4iIFwNCj4gKwkiMTZcdGluYyIgXA0KPiArCSIxN1x0bWFp biIgXA0KPiArCSIxOFx0aW5jIiBcDQo+ICsJIjE5XHRtYWluIiBcDQo+ICsJIjIwXHRpbmMiIFwN Cj4gKwkiMjFcdG1haW4iXSAiYmFja3dhcmQgLSAxIg0KPiArDQo+ICsgICAgIyBtb3ZpbmcgZnVy dGhlciBiYWNrIHNob3dzIHRoZSA2IGZpcnN0IGZ1bmN0aW9uIGNhbGxzDQo+ICsgICAgZ2RiX3Rl c3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgLSIgW211bHRpX2xpbmUgXA0KPiArCSIx XHRtYWluIiBcDQo+ICsJIjJcdGluYyIgXA0KPiArCSIzXHRtYWluIiBcDQo+ICsJIjRcdGluYyIg XA0KPiArCSI1XHRtYWluIiBcDQo+ICsJIjZcdGluYyJdICJiYWNrd2FyZCAtIDIiDQo+ICsNCj4g KyAgICAjIG1vdmluZyBmdXJ0aGVyIGJhY2sgc2hvdWxkbid0IHdvcmsNCj4gKyAgICBnZGJfdGVz dCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAtIiAiQXQgdGhlIHN0YXJ0IG9mIHRoZSBi cmFuY2ggdHJhY2UgcmVjb3JkXFwuIiAiYmFja3dhcmQgLSAzIg0KPiArDQo+ICsgICAgIyBtYWtl IHN1cmUgd2UgY2Fubm90IG1vdmUgYW55IGZ1cnRoZXIgYmFjaw0KPiArICAgIGdkYl90ZXN0ICJy ZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC0iICJBdCB0aGUgc3RhcnQgb2YgdGhlIGJyYW5j aCB0cmFjZSByZWNvcmRcXC4iICJiYWNrd2FyZCAtIDQiDQo+ICsNCj4gKyAgICAjIGRvbid0IG1l c3MgYXJvdW5kIHdpdGggcGF0aCBuYW1lcw0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0 IGZpbGVuYW1lLWRpc3BsYXkgYmFzZW5hbWUiDQo+ICsNCj4gKyAgICAjIG1vdmluZyBmb3J3YXJk IGFnYWluLCBidXQgdGhpcyB0aW1lIHdpdGggZmlsZSBhbmQgbGluZSBudW1iZXIsIGV4cGVjdGVk IHRvIHNlZSB0aGUgZmlyc3QgMTUgZW50cmllcw0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgZnVu Y3Rpb24tY2FsbC1oaXN0b3J5IC9sICsiIFttdWx0aV9saW5lIFwNCj4gKwkiXFswLTlcXSpcdG1h aW5cdGF0ICRzcmNmaWxlOjQwLDQxIiBcDQo+ICsJIlxbMC05XF0qXHRpbmNcdGF0ICRzcmNmaWxl OjIyLDJcWzM0XF0iIFwNCj4gKwkiXFswLTlcXSpcdG1haW5cdGF0ICRzcmNmaWxlOjQwLDQxIiBc DQo+ICsJIlxbMC05XF0qXHRpbmNcdGF0ICRzcmNmaWxlOjIyLDJcWzM0XF0iIFwNCj4gKwkiXFsw LTlcXSpcdG1haW5cdGF0ICRzcmNmaWxlOjQwLDQxIiBcDQo+ICsJIlxbMC05XF0qXHRpbmNcdGF0 ICRzcmNmaWxlOjIyLDJcWzM0XF0iIFwNCj4gKwkiXFswLTlcXSpcdG1haW5cdGF0ICRzcmNmaWxl OjQwLDQxIiBcDQo+ICsJIlxbMC05XF0qXHRpbmNcdGF0ICRzcmNmaWxlOjIyLDJcWzM0XF0iIFwN Cj4gKwkiXFswLTlcXSpcdG1haW5cdGF0ICRzcmNmaWxlOjQwLDQxIiBcDQo+ICsJIlxbMC05XF0q XHRpbmNcdGF0ICRzcmNmaWxlOjIyLDJcWzM0XF0iIFwNCj4gKwkiXFswLTlcXSpcdG1haW5cdGF0 ICRzcmNmaWxlOjQwLDQxIiBcDQo+ICsJIlxbMC05XF0qXHRpbmNcdGF0ICRzcmNmaWxlOjIyLDJc WzM0XF0iIFwNCj4gKwkiXFswLTlcXSpcdG1haW5cdGF0ICRzcmNmaWxlOjQwLDQxIiBcDQo+ICsJ IlxbMC05XF0qXHRpbmNcdGF0ICRzcmNmaWxlOjIyLDJcWzM0XF0iIFwNCj4gKwkiXFswLTlcXSpc dG1haW5cdGF0ICRzcmNmaWxlOjQwLDQxIiBcDQo+ICsgICAgXSAiZm9yd2FyZCAvbCAtIDEiDQo+ ICsNCj4gKyAgICAjIG1vdmluZyBmb3J3YXJkIGFuZCBleHBlY3QgdG8gc2VlIHRoZSBsYXRlc3Qg NiBlbnRyaWVzDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnkg L2wgKyIgW211bHRpX2xpbmUgXA0KPiArCSJcWzAtOVxdKlx0aW5jXHRhdCAkc3JjZmlsZToyMiwy XFszNFxdIiBcDQo+ICsJIlxbMC05XF0qXHRtYWluXHRhdCAkc3JjZmlsZTo0MCw0MSIgXA0KPiAr CSJcWzAtOVxdKlx0aW5jXHRhdCAkc3JjZmlsZToyMiwyXFszNFxdIiBcDQo+ICsJIlxbMC05XF0q XHRtYWluXHRhdCAkc3JjZmlsZTo0MCw0MSIgXA0KPiArCSJcWzAtOVxdKlx0aW5jXHRhdCAkc3Jj ZmlsZToyMiwyXFszNFxdIiBcDQo+ICsJIlxbMC05XF0qXHRtYWluXHRhdCAkc3JjZmlsZTo0MCw0 MyIgXA0KPiArDQo+ICsgICAgXSAiZm9yd2FyZCAvbCAtIDIiDQo+ICsNCj4gKyAgICAjIG1vdmlu ZyBmdXJ0aGVyIGZvcndhcmQgc2hvdWxkbid0IHdvcmsNCj4gKyAgICBnZGJfdGVzdCAicmVjb3Jk IGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAvbCArIiAiQXQgdGhlIGVuZCBvZiB0aGUgYnJhbmNoIHRy YWNlIHJlY29yZFxcLiIgImZvcndhcmQgL2wgLSAzIg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQg ZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC9sIiAiQXQgdGhlIGVuZCBvZiB0aGUgYnJhbmNoIHRyYWNl IHJlY29yZFxcLiIgImZvcndhcmQgL2wgLSA0Ig0KPiArDQo+ICsgICAgc2V0IGV4cGVjdGVkX3Jh bmdlIFttdWx0aV9saW5lIFwNCj4gKwkiNFx0aW5jIiBcDQo+ICsJIjVcdG1haW4iIFwNCj4gKwki Nlx0aW5jIiBcDQo+ICsJIjdcdG1haW4iIFwNCj4gKwkiOFx0aW5jIiBcDQo+ICsJIjlcdG1haW4i IFwNCj4gKwkiMTBcdGluYyJdDQo+ICsNCj4gKyAgICAjIHNob3cgZnVuY3Rpb25zIGluIGluc3Ry dWN0aW9uIHJhbmdlDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rv cnkgNCwxMCIgJGV4cGVjdGVkX3JhbmdlDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlv bi1jYWxsLWhpc3RvcnkgNCwrNyIgJGV4cGVjdGVkX3JhbmdlDQo+ICsgICAgZ2RiX3Rlc3QgInJl Y29yZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgMTAsLTciICRleHBlY3RlZF9yYW5nZQ0KPiArICAg IGdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IDQsNCIgIjRcdGluYyINCj4g Kw0KPiArICAgICMgc2V0IGJwIGFmdGVyIGZpYiByZWN1cnNpb24gYW5kIGNvbnRpbnVlDQo+ICsg ICAgc2V0IGJwX2xvY2F0aW9uIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicC4yIiAkdGVzdGZpbGUu Y10NCj4gKyAgICBnZGJfYnJlYWtwb2ludCAkYnBfbG9jYXRpb24NCj4gKyAgICBnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAiY29udCB0byAkYnBfbG9jYXRpb24iICIuKiR0ZXN0ZmlsZS5jOiRi cF9sb2NhdGlvbi4qIg0KPiArDQo+ICsgICAgIyBhdCB0aGlzIHBvaW50IHdlIGV4cGVjdCB0byBo YXZlIG1haW4sIGZpYiwgLi4uLCBmaWIsIG1haW4sIHdoZXJlIGZpYiBvY2N1cnMgOSB0aW1lcywN Cj4gKyAgICAjIHNvIHdlIGxpbWl0IHRoZSBvdXRwdXQgdG8gb25seSBzaG93IHRoZSBsYXRlc3Qg MTEgZnVuY3Rpb24gY2FsbHMNCj4gKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCByZWNvcmQg ZnVuY3Rpb24tY2FsbC1oaXN0b3J5LXNpemUgMTEiDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBm dW5jdGlvbi1jYWxsLWhpc3RvcnkiIFttdWx0aV9saW5lIFwNCj4gKwkiMjFcdG1haW4iIFwNCj4g KwkiMjJcdGZpYiIgXA0KPiArCSIyM1x0ZmliIiBcDQo+ICsJIjI0XHRmaWIiIFwNCj4gKwkiMjVc dGZpYiIgXA0KPiArCSIyNlx0ZmliIiBcDQo+ICsJIjI3XHRmaWIiIFwNCj4gKwkiMjhcdGZpYiIg XA0KPiArCSIyOVx0ZmliIiBcDQo+ICsJIjMwXHRmaWIiIFwNCj4gKwkiMzFcdG1haW4iXSAicmVj dXJzaXZlIg0KPiArDQo+ICsgICAgIyBzaG93IGluZGVudGVkIGZ1bmN0aW9uIGNhbGwgaGlzdG9y eSBmb3IgZmliDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnkg L2MgMjEsICsxMSIgW211bHRpX2xpbmUgXA0KPiArCSIyMVx0bWFpbiIgXA0KPiArCSIyMlx0ICBm aWIiIFwNCj4gKwkiMjNcdCAgICBmaWIiIFwNCj4gKwkiMjRcdCAgZmliIiBcDQo+ICsJIjI1XHQg ICAgZmliIiBcDQo+ICsJIjI2XHQgICAgICBmaWIiIFwNCj4gKwkiMjdcdCAgICBmaWIiIFwNCj4g KwkiMjhcdCAgICAgIGZpYiIgXA0KPiArCSIyOVx0ICAgIGZpYiIgXA0KPiArCSIzMFx0ICBmaWIi IFwNCj4gKwkiMzFcdG1haW4iIFwNCj4gKyAgICBdICJpbmRlbnRlZCINCj4gKw0KPiArICAgICMg bWFrZSBzdXJlIHdlIGNhbiBoYW5kbGUgaW5jb21wbGV0ZSB0cmFjZSB3aXRoIHJlc3BlY3QgdG8g aW5kZW50YXRpb24NCj4gKyAgICBpZiAhW3J1bnRvX21haW5dIHsNCj4gKwlyZXR1cm4gLTENCj4g KyAgICB9DQo+ICsgICAgIyBuYXZpZ2F0ZSB0byB0aGUgZmliIGluIGxpbmUgMjQgYWJvdmUNCj4g KyAgICBnZGJfYnJlYWtwb2ludCBmaWINCj4gKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAiY29udCB0byBmaWIuMSINCj4gKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29u dCB0byBmaWIuMiINCj4gKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udCB0byBm aWIuMyINCj4gKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udCB0byBmaWIuNCIN Cj4gKw0KPiArICAgICMgc3RhcnQgdHJhY2luZw0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAi cmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iICJzdGFydCByZWNvcmRpbmcgYWZ0ZXIgcmVydW4iDQo+ ICsNCj4gKyAgICAjIGNvbnRpbnVlIHVudGlsIGxpbmUgMzAgYWJvdmUNCj4gKyAgICBkZWxldGVf YnJlYWtwb2ludHMNCj4gKyAgICBzZXQgYnBfbG9jYXRpb24gW2dkYl9nZXRfbGluZV9udW1iZXIg ImJwLjIiICR0ZXN0ZmlsZS5jXQ0KPiArICAgIGdkYl9icmVha3BvaW50ICRicF9sb2NhdGlvbg0K PiArICAgIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250IHRvIGJwLjIiICIuKiR0ZXN0 ZmlsZS5jOiRicF9sb2NhdGlvblxyXG4uKiINCj4gKw0KPiArICAgICMgbGV0J3MgbG9vayBhdCB0 aGUgdHJhY2UuIHdlIGV4cGVjdCB0byBzZWUgdGhlIHRhaWwgb2YgdGhlIGFib3ZlIGxpc3Rpbmcu DQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgL2MiIFttdWx0 aV9saW5lIFwNCj4gKwkiMVx0ICAgICAgZmliIiBcDQo+ICsJIjJcdCAgICBmaWIiIFwNCj4gKwki M1x0ICAgICAgZmliIiBcDQo+ICsJIjRcdCAgICBmaWIiIFwNCj4gKwkiNVx0ICBmaWIiIFwNCj4g KwkiNlx0bWFpbiIgXA0KPiArICAgIF0gImluZGVudGVkIHRhaWwiDQo+ICAgfQ0KPiAtIyBuYXZp Z2F0ZSB0byB0aGUgZmliIGluIGxpbmUgMjQgYWJvdmUNCj4gLWdkYl9icmVha3BvaW50IGZpYg0K PiAtZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gZmliLjEiDQo+IC1nZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAiY29udCB0byBmaWIuMiINCj4gLWdkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJjb250IHRvIGZpYi4zIg0KPiAtZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImNvbnQgdG8gZmliLjQiDQo+IC0NCj4gLSMgc3RhcnQgdHJhY2luZw0KPiAtZ2RiX3Rlc3Rfbm9f b3V0cHV0ICJyZWNvcmQgYnRyYWNlIiAic3RhcnQgcmVjb3JkaW5nIGFmdGVyIHJlcnVuIg0KPiAt DQo+IC0jIGNvbnRpbnVlIHVudGlsIGxpbmUgMzAgYWJvdmUNCj4gLWRlbGV0ZV9icmVha3BvaW50 cw0KPiAtc2V0IGJwX2xvY2F0aW9uIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicC4yIiAkdGVzdGZp bGUuY10NCj4gLWdkYl9icmVha3BvaW50ICRicF9sb2NhdGlvbg0KPiAtZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgImNvbnQgdG8gYnAuMiIgIi4qJHRlc3RmaWxlLmM6JGJwX2xvY2F0aW9uXHJc bi4qIg0KPiAtDQo+IC0jIGxldCdzIGxvb2sgYXQgdGhlIHRyYWNlLiB3ZSBleHBlY3QgdG8gc2Vl IHRoZSB0YWlsIG9mIHRoZSBhYm92ZSBsaXN0aW5nLg0KPiAtZ2RiX3Rlc3QgInJlY29yZCBmdW5j dGlvbi1jYWxsLWhpc3RvcnkgL2MiIFttdWx0aV9saW5lIFwNCj4gLSAgIjFcdCAgICAgIGZpYiIg XA0KPiAtICAiMlx0ICAgIGZpYiIgXA0KPiAtICAiM1x0ICAgICAgZmliIiBcDQo+IC0gICI0XHQg ICAgZmliIiBcDQo+IC0gICI1XHQgIGZpYiIgXA0KPiAtICAiNlx0bWFpbiIgXA0KPiAtICBdICJp bmRlbnRlZCB0YWlsIg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2dj b3JlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9nY29yZS5leHANCj4gaW5kZXggZmY2 MDdiNTY0M2MuLmQ2M2FjMmU4M2U4IDEwMDY0NA0KPiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5i dHJhY2UvZ2NvcmUuZXhwDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9nY29yZS5l eHANCj4gQEAgLTE3LDI1ICsxNywzMyBAQA0KPiAgICMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gICAjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+Lg0KPiAgIA0KPiAtcmVxdWlyZSBhbGxvd19idHJhY2VfdGVzdHMNCj4gK3JlcXVpcmUgdGFy Z2V0X3N1cHBvcnRzX2J0cmFjZQ0KPiAgIA0KPiAgIHN0YW5kYXJkX3Rlc3RmaWxlIHJlY29yZF9n b3RvLmMNCj4gLWlmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRl c3RmaWxlICRzcmNmaWxlXSB7DQo+IC0gICAgcmV0dXJuIC0xDQo+IC19DQo+ICAgDQo+IC1pZiAh W3J1bnRvX21haW5dIHsNCj4gK2lmIFtidWlsZF9leGVjdXRhYmxlICJmYWlsZWQgdG8gcHJlcGFy ZSIgJHRlc3RmaWxlICRzcmNmaWxlXSB7DQo+ICAgICAgIHJldHVybiAtMQ0KPiAgIH0NCj4gICAN Cj4gLSMgdHJhY2UgdGhlIGNhbGwgdG8gdGhlIHRlc3QgZnVuY3Rpb24NCj4gLWdkYl90ZXN0X25v X291dHB1dCAicmVjb3JkIGJ0cmFjZSINCj4gLWdkYl90ZXN0ICJuZXh0IiAiLiptYWluXC4zLioi DQo+ICtmb3JlYWNoX3dpdGhfcHJlZml4IG1ldGhvZCB7ImJ0cyIgInB0In0gew0KPiArICAgIGlm IHsgIVthbGxvd19idHJhY2VfdGVzdHMgJG1ldGhvZF0gfSB7DQo+ICsJdW5zdXBwb3J0ZWQgInRh cmdldCBkb2VzIG5vdCBzdXBwb3J0IHJlY29yZC1idHJhY2UgJHttZXRob2R9Ig0KPiArCWNvbnRp bnVlDQo+ICsgICAgfQ0KPiArICAgIGNsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9Ig0KPiArICAg IGlmICFbcnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAtIyBz dGFydCByZXBsYXlpbmcNCj4gLWdkYl90ZXN0ICJyZWNvcmQgZ290byBiZWdpbiIgIi4qbWFpblwu Mi4qIg0KPiArICAgICMgdHJhY2UgdGhlIGNhbGwgdG8gdGhlIHRlc3QgZnVuY3Rpb24NCj4gKyAg ICBnZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UgJHttZXRob2R9Ig0KPiArICAgIGdk Yl90ZXN0ICJuZXh0IiAiLiptYWluXC4zLioiDQo+ICAgDQo+IC0jIGdlbmVyYXRlIGEgY29yZSBm aWxlIC0gdGhpcyB1c2VkIHRvIGFzc2VydA0KPiAtc2V0IGNvcmVmaWxlIFtob3N0X3N0YW5kYXJk X291dHB1dF9maWxlIGNvcmVdDQo+IC1nZGJfdGVzdCAiZ2VuZXJhdGUtY29yZS1maWxlICRjb3Jl ZmlsZSIgIlNhdmVkIGNvcmVmaWxlICRjb3JlZmlsZSIgXA0KPiAtICAgICJnZW5lcmF0ZS1jb3Jl LWZpbGUgY29yZSINCj4gKyAgICAjIHN0YXJ0IHJlcGxheWluZw0KPiArICAgIGdkYl90ZXN0ICJy ZWNvcmQgZ290byBiZWdpbiIgIi4qbWFpblwuMi4qIg0KPiArDQo+ICsgICAgIyBnZW5lcmF0ZSBh IGNvcmUgZmlsZSAtIHRoaXMgdXNlZCB0byBhc3NlcnQNCj4gKyAgICBzZXQgY29yZWZpbGUgW3N0 YW5kYXJkX291dHB1dF9maWxlIGNvcmVdDQo+ICsgICAgZ2RiX3Rlc3QgImdlbmVyYXRlLWNvcmUt ZmlsZSAkY29yZWZpbGUiICJTYXZlZCBjb3JlZmlsZSAkY29yZWZpbGUiIFwNCj4gKwkiZ2VuZXJh dGUtY29yZS1maWxlIGNvcmUiDQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5idHJhY2UvaW5zdHJ1Y3Rpb25faGlzdG9yeS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJh Y2UvaW5zdHJ1Y3Rpb25faGlzdG9yeS5leHANCj4gaW5kZXggZDNmZjMxM2M1NzAuLjMyYzIxYTkx NjcwIDEwMDY0NA0KPiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvaW5zdHJ1Y3Rpb25f aGlzdG9yeS5leHANCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL2luc3RydWN0aW9u X2hpc3RvcnkuZXhwDQo+IEBAIC0xNyw5MSArMTcsMTMgQEANCj4gICAjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ICAg IyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4NCj4gICANCj4gLXJlcXVpcmUgYWxsb3dfYnRyYWNlX3Rlc3RzDQo+ICty ZXF1aXJlIHRhcmdldF9zdXBwb3J0c19idHJhY2UNCj4gICANCj4gICBzdGFuZGFyZF90ZXN0Zmls ZSAuYyAuUw0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAk dGVzdGZpbGUgIiRzcmNmaWxlICRzcmNmaWxlMiIge2RlYnVnfV0gew0KPiAraWYgW2J1aWxkX2V4 ZWN1dGFibGUgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgIiRzcmNmaWxlICRzcmNmaWxl MiIge2RlYnVnfV0gew0KPiAgICAgICByZXR1cm4gLTENCj4gICB9DQo+ICAgDQo+IC1pZiAhW3J1 bnRvX21haW5dIHsNCj4gLSAgICByZXR1cm4gLTENCj4gLX0NCj4gLQ0KPiAtIyBzZXQgYnAgYmVm b3JlIGxvb3AgYW5kIGNvbnRpbnVlDQo+IC1zZXQgYnBfbG9jYXRpb24gW2dkYl9nZXRfbGluZV9u dW1iZXIgImJwLjEiICRzcmNmaWxlMl0NCj4gLWdkYl9icmVha3BvaW50ICRzcmNmaWxlMjokYnBf bG9jYXRpb24NCj4gLWdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250IHRvICRicF9sb2Nh dGlvbiIgIi4qJHNyY2ZpbGUyOiRicF9sb2NhdGlvbi4qIg0KPiAtDQo+IC0jIHN0YXJ0IGJ0cmFj ZQ0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlIg0KPiAtDQo+IC0jIHNldCBi cCBhZnRlciBsb29wIGFuZCBjb250aW51ZQ0KPiAtc2V0IGJwX2xvY2F0aW9uIFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJicC4yIiAkc3JjZmlsZTJdDQo+IC1nZGJfYnJlYWtwb2ludCAkc3JjZmlsZTI6 JGJwX2xvY2F0aW9uDQo+IC1nZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udCB0byAkYnBf bG9jYXRpb24iICIuKiRzcmNmaWxlMjokYnBfbG9jYXRpb24uKiINCj4gLQ0KPiAtIyBUaGUgZm9s bG93aW5nIHRlc3QgY2FzZXMgdGVzdCBpZiAiYnJvd3NpbmciIHRocm91Z2ggdGhlDQo+IC0jIGlu c3RydWN0aW9uIGhpc3Rvcnkgd29ya3MgYXMgZXhwZWN0ZWQuIFNvIGZvciB0aGUgdGVzdHMNCj4g LSMgaXQgaXMgbmVjZXNzYXJ5IHRvIGNvdW50IHRoZSBudW1iZXIgb2YgbGluZXMgdGhhdCBhcmUN Cj4gLSMgc2hvd24gYnkgdGhlICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSIgY29tbWFuZC4N Cj4gLQ0KPiAtc2V0IHRyYWNlZCB7fQ0KPiAtc2V0IHRlc3RuYW1lICJkZXRlcm1pbmUgbnVtYmVy IG9mIHJlY29yZGVkIGluc3RydWN0aW9ucyINCj4gLWdkYl90ZXN0X211bHRpcGxlICJpbmZvIHJl Y29yZCIgJHRlc3RuYW1lIHsNCj4gLSAgICAtcmUgIkFjdGl2ZSByZWNvcmQgdGFyZ2V0OiByZWNv cmQtYnRyYWNlXHJcbi4qXHJcblJlY29yZGVkIFwoXFswLTlcXSpcKSBpbnN0cnVjdGlvbnMgaW4g XChcWzAtOVxdKlwpIGZ1bmN0aW9ucyBcXFwoMCBnYXBzXFxcKSBmb3IgdGhyZWFkIDEgLipcXC5c clxuJGdkYl9wcm9tcHQgJCIgew0KPiAtICAgICAgICBzZXQgdHJhY2VkICRleHBlY3Rfb3V0KDEs c3RyaW5nKQ0KPiAtICAgICAgICBwYXNzICR0ZXN0bmFtZQ0KPiAtICAgIH0NCj4gLX0NCj4gLQ0K PiAtIyB3ZSBoYXZlIGV4YWN0bHkgMTEgaW5zdHJ1Y3Rpb25zIGhlcmUNCj4gLXNldCBtZXNzYWdl ICJleGFjdGx5IDExIGluc3RydWN0aW9ucyINCj4gLWlmIHsgJHRyYWNlZCAhPSAxMSB9IHsNCj4g LSAgICBmYWlsICRtZXNzYWdlDQo+IC19IGVsc2Ugew0KPiAtICAgIHBhc3MgJG1lc3NhZ2UNCj4g LX0NCj4gLQ0KPiAtIyB0ZXN0IHRoYXQgd2Ugc2VlIHRoZSBleHBlY3RlZCBpbnN0cnVjdGlvbnMN Cj4gLWdkYl90ZXN0ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSAzLDciIFttdWx0aV9saW5l IFwNCj4gLSAgIjNcdCAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz46XHRqZSAgICAg MHhcWzAtOWEtZlxdKyA8bG9vcFxcK1xbMC05XF0rPiIgXA0KPiAtICAiNFx0ICAgMHhcWzAtOWEt ZlxdKyA8bG9vcFxcK1xbMC05XF0rPjpcdGRlYyAgICAlZWF4IiBcDQo+IC0gICI1XHQgICAweFxb MC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+Olx0am1wICAgIDB4XFswLTlhLWZcXSsgPGxvb3Bc XCtcWzAtOVxdKz4iIFwNCj4gLSAgIjZcdCAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxd Kz46XHRjbXAgICAgXFxcJDB4MCwlZWF4IiBcDQo+IC0gICI3XHQgICAweFxbMC05YS1mXF0rIDxs b29wXFwrXFswLTlcXSs+Olx0amUgICAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz4i IFwNCj4gLSAgXQ0KPiAtDQo+IC1nZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3Rvcnkg L2YgMywrNSIgW211bHRpX2xpbmUgXA0KPiAtICAiM1x0ICAgMHhcWzAtOWEtZlxdKyA8XFwrXFsw LTlcXSs+Olx0amUgICAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz4iIFwNCj4gLSAg IjRcdCAgIDB4XFswLTlhLWZcXSsgPFxcK1xbMC05XF0rPjpcdGRlYyAgICAlZWF4IiBcDQo+IC0g ICI1XHQgICAweFxbMC05YS1mXF0rIDxcXCtcWzAtOVxdKz46XHRqbXAgICAgMHhcWzAtOWEtZlxd KyA8bG9vcFxcK1xbMC05XF0rPiIgXA0KPiAtICAiNlx0ICAgMHhcWzAtOWEtZlxdKyA8XFwrXFsw LTlcXSs+Olx0Y21wICAgIFxcXCQweDAsJWVheCIgXA0KPiAtICAiN1x0ICAgMHhcWzAtOWEtZlxd KyA8XFwrXFswLTlcXSs+Olx0amUgICAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz4i IFwNCj4gLSAgXQ0KPiAtDQo+IC1nZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3Rvcnkg L3AgNywtNSIgW211bHRpX2xpbmUgXA0KPiAtICAiM1x0ICAgMHhcWzAtOWEtZlxdKyA8bG9vcFxc K1xbMC05XF0rPjpcdGplICAgICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+IiBcDQo+ IC0gICI0XHQgICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+Olx0ZGVjICAgICVlYXgi IFwNCj4gLSAgIjVcdCAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz46XHRqbXAgICAg MHhcWzAtOWEtZlxdKyA8bG9vcFxcK1xbMC05XF0rPiIgXA0KPiAtICAiNlx0ICAgMHhcWzAtOWEt ZlxdKyA8bG9vcFxcK1xbMC05XF0rPjpcdGNtcCAgICBcXFwkMHgwLCVlYXgiIFwNCj4gLSAgIjdc dCAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz46XHRqZSAgICAgMHhcWzAtOWEtZlxd KyA8bG9vcFxcK1xbMC05XF0rPiIgXA0KPiAtICBdDQo+IC0NCj4gLWdkYl90ZXN0ICJyZWNvcmQg aW5zdHJ1Y3Rpb24taGlzdG9yeSAvcGYgMyw3IiBbbXVsdGlfbGluZSBcDQo+IC0gICIzXHQgICAw eFxbMC05YS1mXF0rIDxcXCtcWzAtOVxdKz46XHRqZSAgICAgMHhcWzAtOWEtZlxdKyA8bG9vcFxc K1xbMC05XF0rPiIgXA0KPiAtICAiNFx0ICAgMHhcWzAtOWEtZlxdKyA8XFwrXFswLTlcXSs+Olx0 ZGVjICAgICVlYXgiIFwNCj4gLSAgIjVcdCAgIDB4XFswLTlhLWZcXSsgPFxcK1xbMC05XF0rPjpc dGptcCAgICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+IiBcDQo+IC0gICI2XHQgICAw eFxbMC05YS1mXF0rIDxcXCtcWzAtOVxdKz46XHRjbXAgICAgXFxcJDB4MCwlZWF4IiBcDQo+IC0g ICI3XHQgICAweFxbMC05YS1mXF0rIDxcXCtcWzAtOVxdKz46XHRqZSAgICAgMHhcWzAtOWEtZlxd KyA8bG9vcFxcK1xbMC05XF0rPiIgXA0KPiAtICBdDQo+IC0NCj4gLWdkYl90ZXN0ICJyZWNvcmQg aW5zdHJ1Y3Rpb24taGlzdG9yeSAzLDMiICIzXHQgICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFsw LTlcXSs+Olx0amUgICAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz4iDQo+IC0NCj4g LSMgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgY2hlY2tpbmcgdGhlIGl0ZXJhdG9ycw0KPiAtIyB0 byBhdm9pZCBsb3RzIG9mIHJlZ2V4cHMsIHdlIGp1c3QgY2hlY2sgdGhlIG51bWJlciBvZiBsaW5l cyB0aGF0DQo+IC0jIHdlcmUgcHJpbnRlZCBkdXJpbmcgY29tbWFuZCBleGVjdXRpb24uDQo+IC0N Cj4gICAjIHRlc3RfbGluZXNfb3V0cHV0IHJldHVybnMgdGhlIG91dHB1dCBsaW5lcyBmcm9tIGNv bW1hbmQgYXMgYSBsaXN0Lg0KPiAgIHByb2MgdGVzdF9saW5lc19vdXRwdXQgeyBjb21tYW5kIG1l c3NhZ2UgfSB7DQo+ICAgICAgIGdsb2JhbCBnZGJfcHJvbXB0DQo+IEBAIC0xMTgsODMgKzQwLDE2 OCBAQCBwcm9jIHRlc3RfbGluZXNfbGVuZ3RoIHsgY29tbWFuZCBtZXNzYWdlIH0gew0KPiAgICAg ICByZXR1cm4gW2xsZW5ndGggW3Rlc3RfbGluZXNfb3V0cHV0ICRjb21tYW5kICRtZXNzYWdlXV0N Cj4gICB9DQo+ICAgDQo+IC0jIHNob3cgaW5zdHJ1Y3Rpb24gaGlzdG9yeSB3aXRoIHVubGltaXRl ZCBzaXplLCB3ZSBleHBlY3QgdG8gc2VlDQo+IC0jIGFsbCAkdHJhY2VkIGluc3RydWN0aW9ucw0K PiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGluc3RydWN0aW9uLWhpc3Rvcnktc2l6 ZSAwIg0KPiAtc2V0IG1lc3NhZ2UgInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IC0gdW5saW1p dGVkIg0KPiAtc2V0IGxpbmVzIFt0ZXN0X2xpbmVzX2xlbmd0aCAicmVjb3JkIGluc3RydWN0aW9u LWhpc3RvcnkgMSIgJG1lc3NhZ2VdDQo+IC1pZiB7ICR0cmFjZWQgIT0gJGxpbmVzIH0gew0KPiAt ICAgIGZhaWwgJG1lc3NhZ2UNCj4gLX0gZWxzZSB7DQo+IC0gICAgcGFzcyAkbWVzc2FnZQ0KPiAt fQ0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAgICBp ZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVkICJ0 YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwljb250 aW51ZQ0KPiArICAgIH0NCj4gICANCj4gLWdkYl90ZXN0X25vX291dHB1dCAic2V0IHJlY29yZCBp bnN0cnVjdGlvbi1oaXN0b3J5LXNpemUgJHRyYWNlZCINCj4gLXNldCBtZXNzYWdlICJyZWNvcmQg aW5zdHJ1Y3Rpb24taGlzdG9yeSAtIHRyYWNlZCINCj4gLXNldCBsaW5lcyBbdGVzdF9saW5lc19s ZW5ndGggInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IDEiICRtZXNzYWdlXQ0KPiAtaWYgeyAk dHJhY2VkICE9ICRsaW5lcyB9IHsNCj4gLSAgICBmYWlsICRtZXNzYWdlDQo+IC19IGVsc2Ugew0K PiAtICAgIHBhc3MgJG1lc3NhZ2UNCj4gLX0NCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3Rm aWxlfSINCj4gKyAgICBpZiAhW3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0KPiArICAgIH0N Cj4gKyAgICAjIHNldCBicCBiZWZvcmUgbG9vcCBhbmQgY29udGludWUNCj4gKyAgICBzZXQgYnBf bG9jYXRpb24gW2dkYl9nZXRfbGluZV9udW1iZXIgImJwLjEiICRzcmNmaWxlMl0NCj4gKyAgICBn ZGJfYnJlYWtwb2ludCAkc3JjZmlsZTI6JGJwX2xvY2F0aW9uDQo+ICsgICAgZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gJGJwX2xvY2F0aW9uIiAiLiokc3JjZmlsZTI6JGJwX2xv Y2F0aW9uLioiDQo+ICsNCj4gKyAgICAjIHN0YXJ0IGJ0cmFjZQ0KPiArICAgIGdkYl90ZXN0X25v X291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iDQo+ICsNCj4gKyAgICAjIHNldCBicCBh ZnRlciBsb29wIGFuZCBjb250aW51ZQ0KPiArICAgIHNldCBicF9sb2NhdGlvbiBbZ2RiX2dldF9s aW5lX251bWJlciAiYnAuMiIgJHNyY2ZpbGUyXQ0KPiArICAgIGdkYl9icmVha3BvaW50ICRzcmNm aWxlMjokYnBfbG9jYXRpb24NCj4gKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29u dCB0byAkYnBfbG9jYXRpb24iICIuKiRzcmNmaWxlMjokYnBfbG9jYXRpb24uKiINCj4gKw0KPiAr ICAgICMgVGhlIGZvbGxvd2luZyB0ZXN0IGNhc2VzIHRlc3QgaWYgImJyb3dzaW5nIiB0aHJvdWdo IHRoZQ0KPiArICAgICMgaW5zdHJ1Y3Rpb24gaGlzdG9yeSB3b3JrcyBhcyBleHBlY3RlZC4gIFNv IGZvciB0aGUgdGVzdHMNCj4gKyAgICAjIGl0IGlzIG5lY2Vzc2FyeSB0byBjb3VudCB0aGUgbnVt YmVyIG9mIGxpbmVzIHRoYXQgYXJlDQo+ICsgICAgIyBzaG93biBieSB0aGUgInJlY29yZCBpbnN0 cnVjdGlvbi1oaXN0b3J5IiBjb21tYW5kLg0KPiArDQo+ICsgICAgc2V0IHRyYWNlZCB7fQ0KPiAr ICAgIHNldCB0ZXN0bmFtZSAiZGV0ZXJtaW5lIG51bWJlciBvZiByZWNvcmRlZCBpbnN0cnVjdGlv bnMiDQo+ICsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImluZm8gcmVjb3JkIiAkdGVzdG5hbWUgew0K PiArCS1yZSAiQWN0aXZlIHJlY29yZCB0YXJnZXQ6IHJlY29yZC1idHJhY2VcclxuLipcclxuUmVj b3JkZWQgXChcWzAtOVxdKlwpIGluc3RydWN0aW9ucyBpbiBcKFxbMC05XF0qXCkgZnVuY3Rpb25z IFxcXCgwIGdhcHNcXFwpIGZvciB0aHJlYWQgMSAuKlxcLlxyXG4kZ2RiX3Byb21wdCAkIiB7DQo+ ICsJICAgIHNldCB0cmFjZWQgJGV4cGVjdF9vdXQoMSxzdHJpbmcpDQo+ICsJICAgIHBhc3MgJHRl c3RuYW1lDQo+ICsJfQ0KPiArICAgIH0NCj4gICANCj4gLSMgdGVzdCB0aGF0IHRoZSBpdGVyYXRv ciB3b3Jrcw0KPiAtc2V0IGhpc3Rvcnlfc2l6ZSA0DQo+IC1nZGJfdGVzdF9ub19vdXRwdXQgInNl dCByZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeS1zaXplICRoaXN0b3J5X3NpemUiDQo+IC1zZXQg bWVzc2FnZSAiYnJvd3NlIGhpc3RvcnkgZm9yd2FyZCBzdGFydCINCj4gLXNldCBsaW5lcyBbdGVz dF9saW5lc19sZW5ndGggInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IDEiICRtZXNzYWdlXQ0K PiAtaWYgeyAkbGluZXMgIT0gJGhpc3Rvcnlfc2l6ZSB9IHsNCj4gLSAgICBmYWlsICRtZXNzYWdl DQo+IC19IGVsc2Ugew0KPiAtICAgIHBhc3MgJG1lc3NhZ2UNCj4gLX0NCj4gKyAgICAjIHdlIGhh dmUgZXhhY3RseSAxMSBpbnN0cnVjdGlvbnMgaGVyZQ0KPiArICAgIHNldCBtZXNzYWdlICJleGFj dGx5IDExIGluc3RydWN0aW9ucyINCj4gKyAgICBpZiB7ICR0cmFjZWQgIT0gMTEgfSB7DQo+ICsJ ZmFpbCAkbWVzc2FnZQ0KPiArICAgIH0gZWxzZSB7DQo+ICsJcGFzcyAkbWVzc2FnZQ0KPiArICAg IH0NCj4gICANCj4gLXNldCBtZXNzYWdlICJicm93c2UgaGlzdG9yeSBmb3J3YXJkIG1pZGRsZSIN Cj4gLXNldCBsaW5lcyBbdGVzdF9saW5lc19sZW5ndGggInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0 b3J5ICsiICRtZXNzYWdlXQ0KPiAtaWYgeyAkbGluZXMgIT0gJGhpc3Rvcnlfc2l6ZSB9IHsNCj4g LSAgICBmYWlsICRtZXNzYWdlDQo+IC19IGVsc2Ugew0KPiAtICAgIHBhc3MgJG1lc3NhZ2UNCj4g LX0NCj4gKyAgICAjIHRlc3QgdGhhdCB3ZSBzZWUgdGhlIGV4cGVjdGVkIGluc3RydWN0aW9ucw0K PiArICAgIGdkYl90ZXN0ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSAzLDciIFttdWx0aV9s aW5lIFwNCj4gKwkiM1x0ICAgMHhcWzAtOWEtZlxdKyA8bG9vcFxcK1xbMC05XF0rPjpcdGplICAg ICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+IiBcDQo+ICsJIjRcdCAgIDB4XFswLTlh LWZcXSsgPGxvb3BcXCtcWzAtOVxdKz46XHRkZWMgICAgJWVheCIgXA0KPiArCSI1XHQgICAweFxb MC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+Olx0am1wICAgIDB4XFswLTlhLWZcXSsgPGxvb3Bc XCtcWzAtOVxdKz4iIFwNCj4gKwkiNlx0ICAgMHhcWzAtOWEtZlxdKyA8bG9vcFxcK1xbMC05XF0r PjpcdGNtcCAgICBcXFwkMHgwLCVlYXgiIFwNCj4gKwkiN1x0ICAgMHhcWzAtOWEtZlxdKyA8bG9v cFxcK1xbMC05XF0rPjpcdGplICAgICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+IiBc DQo+ICsJXQ0KPiArDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5 IC9mIDMsKzUiIFttdWx0aV9saW5lIFwNCj4gKwkiM1x0ICAgMHhcWzAtOWEtZlxdKyA8XFwrXFsw LTlcXSs+Olx0amUgICAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz4iIFwNCj4gKwki NFx0ICAgMHhcWzAtOWEtZlxdKyA8XFwrXFswLTlcXSs+Olx0ZGVjICAgICVlYXgiIFwNCj4gKwki NVx0ICAgMHhcWzAtOWEtZlxdKyA8XFwrXFswLTlcXSs+Olx0am1wICAgIDB4XFswLTlhLWZcXSsg PGxvb3BcXCtcWzAtOVxdKz4iIFwNCj4gKwkiNlx0ICAgMHhcWzAtOWEtZlxdKyA8XFwrXFswLTlc XSs+Olx0Y21wICAgIFxcXCQweDAsJWVheCIgXA0KPiArCSI3XHQgICAweFxbMC05YS1mXF0rIDxc XCtcWzAtOVxdKz46XHRqZSAgICAgMHhcWzAtOWEtZlxdKyA8bG9vcFxcK1xbMC05XF0rPiIgXA0K PiArCV0NCj4gKw0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSAv cCA3LC01IiBbbXVsdGlfbGluZSBcDQo+ICsJIjNcdCAgIDB4XFswLTlhLWZcXSsgPGxvb3BcXCtc WzAtOVxdKz46XHRqZSAgICAgMHhcWzAtOWEtZlxdKyA8bG9vcFxcK1xbMC05XF0rPiIgXA0KPiAr CSI0XHQgICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+Olx0ZGVjICAgICVlYXgiIFwN Cj4gKwkiNVx0ICAgMHhcWzAtOWEtZlxdKyA8bG9vcFxcK1xbMC05XF0rPjpcdGptcCAgICAweFxb MC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+IiBcDQo+ICsJIjZcdCAgIDB4XFswLTlhLWZcXSsg PGxvb3BcXCtcWzAtOVxdKz46XHRjbXAgICAgXFxcJDB4MCwlZWF4IiBcDQo+ICsJIjdcdCAgIDB4 XFswLTlhLWZcXSsgPGxvb3BcXCtcWzAtOVxdKz46XHRqZSAgICAgMHhcWzAtOWEtZlxdKyA8bG9v cFxcK1xbMC05XF0rPiIgXA0KPiArCV0NCj4gKw0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgaW5z dHJ1Y3Rpb24taGlzdG9yeSAvcGYgMyw3IiBbbXVsdGlfbGluZSBcDQo+ICsJIjNcdCAgIDB4XFsw LTlhLWZcXSsgPFxcK1xbMC05XF0rPjpcdGplICAgICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFsw LTlcXSs+IiBcDQo+ICsJIjRcdCAgIDB4XFswLTlhLWZcXSsgPFxcK1xbMC05XF0rPjpcdGRlYyAg ICAlZWF4IiBcDQo+ICsJIjVcdCAgIDB4XFswLTlhLWZcXSsgPFxcK1xbMC05XF0rPjpcdGptcCAg ICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+IiBcDQo+ICsJIjZcdCAgIDB4XFswLTlh LWZcXSsgPFxcK1xbMC05XF0rPjpcdGNtcCAgICBcXFwkMHgwLCVlYXgiIFwNCj4gKwkiN1x0ICAg MHhcWzAtOWEtZlxdKyA8XFwrXFswLTlcXSs+Olx0amUgICAgIDB4XFswLTlhLWZcXSsgPGxvb3Bc XCtcWzAtOVxdKz4iIFwNCj4gKwldDQo+ICsNCj4gKyAgICBnZGJfdGVzdCAicmVjb3JkIGluc3Ry dWN0aW9uLWhpc3RvcnkgMywzIiAiM1x0ICAgMHhcWzAtOWEtZlxdKyA8bG9vcFxcK1xbMC05XF0r PjpcdGplICAgICAweFxbMC05YS1mXF0rIDxsb29wXFwrXFswLTlcXSs+Ig0KPiArDQo+ICsgICAg IyB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBjaGVja2luZyB0aGUgaXRlcmF0b3JzDQo+ICsgICAg IyB0byBhdm9pZCBsb3RzIG9mIHJlZ2V4cHMsIHdlIGp1c3QgY2hlY2sgdGhlIG51bWJlciBvZiBs aW5lcyB0aGF0DQo+ICsgICAgIyB3ZXJlIHByaW50ZWQgZHVyaW5nIGNvbW1hbmQgZXhlY3V0aW9u Lg0KPiArDQo+ICsgICAgIyBzaG93IGluc3RydWN0aW9uIGhpc3Rvcnkgd2l0aCB1bmxpbWl0ZWQg c2l6ZSwgd2UgZXhwZWN0IHRvIHNlZQ0KPiArICAgICMgYWxsICR0cmFjZWQgaW5zdHJ1Y3Rpb25z DQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGluc3RydWN0aW9uLWhpc3Rv cnktc2l6ZSAwIg0KPiArICAgIHNldCBtZXNzYWdlICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9y eSAtIHVubGltaXRlZCINCj4gKyAgICBzZXQgbGluZXMgW3Rlc3RfbGluZXNfbGVuZ3RoICJyZWNv cmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSAxIiAkbWVzc2FnZV0NCj4gKyAgICBpZiB7ICR0cmFjZWQg IT0gJGxpbmVzIH0gew0KPiArCWZhaWwgJG1lc3NhZ2UNCj4gKyAgICB9IGVsc2Ugew0KPiArCXBh c3MgJG1lc3NhZ2UNCj4gKyAgICB9DQo+ICAgDQo+IC1zZXQgbWVzc2FnZSAiYnJvd3NlIGhpc3Rv cnkgZm9yd2FyZCBsYXN0Ig0KPiAtc2V0IGxpbmVzIFt0ZXN0X2xpbmVzX2xlbmd0aCAicmVjb3Jk IGluc3RydWN0aW9uLWhpc3RvcnkgKyIgJG1lc3NhZ2VdDQo+IC1pZiB7ICRsaW5lcyAhPSAzIH0g ew0KPiAtICAgIGZhaWwgJG1lc3NhZ2UNCj4gLX0gZWxzZSB7DQo+IC0gICAgcGFzcyAkbWVzc2Fn ZQ0KPiAtfQ0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IHJlY29yZCBpbnN0cnVjdGlv bi1oaXN0b3J5LXNpemUgJHRyYWNlZCINCj4gKyAgICBzZXQgbWVzc2FnZSAicmVjb3JkIGluc3Ry dWN0aW9uLWhpc3RvcnkgLSB0cmFjZWQiDQo+ICsgICAgc2V0IGxpbmVzIFt0ZXN0X2xpbmVzX2xl bmd0aCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3RvcnkgMSIgJG1lc3NhZ2VdDQo+ICsgICAgaWYg eyAkdHJhY2VkICE9ICRsaW5lcyB9IHsNCj4gKwlmYWlsICRtZXNzYWdlDQo+ICsgICAgfSBlbHNl IHsNCj4gKwlwYXNzICRtZXNzYWdlDQo+ICsgICAgfQ0KPiAgIA0KPiAtZ2RiX3Rlc3QgInJlY29y ZCBpbnN0cnVjdGlvbi1oaXN0b3J5IiAiQXQgdGhlIGVuZCBvZiB0aGUgYnJhbmNoIHRyYWNlIHJl Y29yZFxcLiIgImJyb3dzZSBoaXN0b3J5IGZvcndhcmQgYmV5b25kIDEiDQo+ICsgICAgIyB0ZXN0 IHRoYXQgdGhlIGl0ZXJhdG9yIHdvcmtzDQo+ICsgICAgc2V0IGhpc3Rvcnlfc2l6ZSA0DQo+ICsg ICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGluc3RydWN0aW9uLWhpc3Rvcnktc2l6 ZSAkaGlzdG9yeV9zaXplIg0KPiArICAgIHNldCBtZXNzYWdlICJicm93c2UgaGlzdG9yeSBmb3J3 YXJkIHN0YXJ0Ig0KPiArICAgIHNldCBsaW5lcyBbdGVzdF9saW5lc19sZW5ndGggInJlY29yZCBp bnN0cnVjdGlvbi1oaXN0b3J5IDEiICRtZXNzYWdlXQ0KPiArICAgIGlmIHsgJGxpbmVzICE9ICRo aXN0b3J5X3NpemUgfSB7DQo+ICsJZmFpbCAkbWVzc2FnZQ0KPiArICAgIH0gZWxzZSB7DQo+ICsJ cGFzcyAkbWVzc2FnZQ0KPiArICAgIH0NCj4gICANCj4gLSMgbWFrZSBzdXJlIHdlIGNhbm5vdCBt b3ZlIGZ1cnRoZXINCj4gLWdkYl90ZXN0ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSIgIkF0 IHRoZSBlbmQgb2YgdGhlIGJyYW5jaCB0cmFjZSByZWNvcmRcXC4iICJicm93c2UgaGlzdG9yeSBm b3J3YXJkIGJleW9uZCAyIg0KPiArICAgIHNldCBtZXNzYWdlICJicm93c2UgaGlzdG9yeSBmb3J3 YXJkIG1pZGRsZSINCj4gKyAgICBzZXQgbGluZXMgW3Rlc3RfbGluZXNfbGVuZ3RoICJyZWNvcmQg aW5zdHJ1Y3Rpb24taGlzdG9yeSArIiAkbWVzc2FnZV0NCj4gKyAgICBpZiB7ICRsaW5lcyAhPSAk aGlzdG9yeV9zaXplIH0gew0KPiArCWZhaWwgJG1lc3NhZ2UNCj4gKyAgICB9IGVsc2Ugew0KPiAr CXBhc3MgJG1lc3NhZ2UNCj4gKyAgICB9DQo+ICAgDQo+IC1zZXQgbWVzc2FnZSAiYnJvd3NlIGhp c3RvcnkgYmFja3dhcmQgbGFzdCINCj4gLXNldCBsaW5lcyBbdGVzdF9saW5lc19sZW5ndGggInJl Y29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IC0iICRtZXNzYWdlXQ0KPiAtaWYgeyAkbGluZXMgIT0g JGhpc3Rvcnlfc2l6ZSB9IHsNCj4gLSAgICBmYWlsICRtZXNzYWdlDQo+IC19IGVsc2Ugew0KPiAt ICAgIHBhc3MgJG1lc3NhZ2UNCj4gLX0NCj4gKyAgICBzZXQgbWVzc2FnZSAiYnJvd3NlIGhpc3Rv cnkgZm9yd2FyZCBsYXN0Ig0KPiArICAgIHNldCBsaW5lcyBbdGVzdF9saW5lc19sZW5ndGggInJl Y29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5ICsiICRtZXNzYWdlXQ0KPiArICAgIGlmIHsgJGxpbmVz ICE9IDMgfSB7DQo+ICsJZmFpbCAkbWVzc2FnZQ0KPiArICAgIH0gZWxzZSB7DQo+ICsJcGFzcyAk bWVzc2FnZQ0KPiArICAgIH0NCj4gICANCj4gLXNldCBtZXNzYWdlICJicm93c2UgaGlzdG9yeSBi YWNrd2FyZCBtaWRkbGUiDQo+IC1zZXQgbGluZXMgW3Rlc3RfbGluZXNfbGVuZ3RoICJyZWNvcmQg aW5zdHJ1Y3Rpb24taGlzdG9yeSAtIiAkbWVzc2FnZV0NCj4gLWlmIHsgJGxpbmVzICE9ICRoaXN0 b3J5X3NpemUgfSB7DQo+IC0gICAgZmFpbCAkbWVzc2FnZQ0KPiAtfSBlbHNlIHsNCj4gLSAgICBw YXNzICRtZXNzYWdlDQo+IC19DQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBpbnN0cnVjdGlvbi1o aXN0b3J5IiAiQXQgdGhlIGVuZCBvZiB0aGUgYnJhbmNoIHRyYWNlIHJlY29yZFxcLiIgImJyb3dz ZSBoaXN0b3J5IGZvcndhcmQgYmV5b25kIDEiDQo+ICAgDQo+IC1zZXQgbWVzc2FnZSAiYnJvd3Nl IGhpc3RvcnkgYmFja3dhcmQgZmlyc3QiDQo+IC1zZXQgbGluZXMgW3Rlc3RfbGluZXNfbGVuZ3Ro ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSAtIiAkbWVzc2FnZV0NCj4gLWlmIHsgJGxpbmVz ICE9IDMgfSB7DQo+IC0gICAgZmFpbCAkbWVzc2FnZQ0KPiAtfSBlbHNlIHsNCj4gLSAgICBwYXNz ICRtZXNzYWdlDQo+IC19DQo+ICsgICAgIyBtYWtlIHN1cmUgd2UgY2Fubm90IG1vdmUgZnVydGhl cg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSIgIkF0IHRoZSBl bmQgb2YgdGhlIGJyYW5jaCB0cmFjZSByZWNvcmRcXC4iICJicm93c2UgaGlzdG9yeSBmb3J3YXJk IGJleW9uZCAyIg0KPiArDQo+ICsgICAgc2V0IG1lc3NhZ2UgImJyb3dzZSBoaXN0b3J5IGJhY2t3 YXJkIGxhc3QiDQo+ICsgICAgc2V0IGxpbmVzIFt0ZXN0X2xpbmVzX2xlbmd0aCAicmVjb3JkIGlu c3RydWN0aW9uLWhpc3RvcnkgLSIgJG1lc3NhZ2VdDQo+ICsgICAgaWYgeyAkbGluZXMgIT0gJGhp c3Rvcnlfc2l6ZSB9IHsNCj4gKwlmYWlsICRtZXNzYWdlDQo+ICsgICAgfSBlbHNlIHsNCj4gKwlw YXNzICRtZXNzYWdlDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgc2V0IG1lc3NhZ2UgImJyb3dzZSBo aXN0b3J5IGJhY2t3YXJkIG1pZGRsZSINCj4gKyAgICBzZXQgbGluZXMgW3Rlc3RfbGluZXNfbGVu Z3RoICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSAtIiAkbWVzc2FnZV0NCj4gKyAgICBpZiB7 ICRsaW5lcyAhPSAkaGlzdG9yeV9zaXplIH0gew0KPiArCWZhaWwgJG1lc3NhZ2UNCj4gKyAgICB9 IGVsc2Ugew0KPiArCXBhc3MgJG1lc3NhZ2UNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBzZXQgbWVz c2FnZSAiYnJvd3NlIGhpc3RvcnkgYmFja3dhcmQgZmlyc3QiDQo+ICsgICAgc2V0IGxpbmVzIFt0 ZXN0X2xpbmVzX2xlbmd0aCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3RvcnkgLSIgJG1lc3NhZ2Vd DQo+ICsgICAgaWYgeyAkbGluZXMgIT0gMyB9IHsNCj4gKwlmYWlsICRtZXNzYWdlDQo+ICsgICAg fSBlbHNlIHsNCj4gKwlwYXNzICRtZXNzYWdlDQo+ICsgICAgfQ0KPiAgIA0KPiAtZ2RiX3Rlc3Qg InJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IC0iICJBdCB0aGUgc3RhcnQgb2YgdGhlIGJyYW5j aCB0cmFjZSByZWNvcmRcXC4iICJicm93c2UgaGlzdG9yeSBiYWNrd2FyZCBiZXlvbmQgMSINCj4g KyAgICBnZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3RvcnkgLSIgIkF0IHRoZSBzdGFy dCBvZiB0aGUgYnJhbmNoIHRyYWNlIHJlY29yZFxcLiIgImJyb3dzZSBoaXN0b3J5IGJhY2t3YXJk IGJleW9uZCAxIg0KPiAgIA0KPiAtIyBtYWtlIHN1cmUgd2UgY2Fubm90IG1vdmUgZnVydGhlciBi YWNrDQo+IC1nZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3RvcnkgLSIgIkF0IHRoZSBz dGFydCBvZiB0aGUgYnJhbmNoIHRyYWNlIHJlY29yZFxcLiIgImJyb3dzZSBoaXN0b3J5IGJhY2t3 YXJkIGJleW9uZCAyIg0KPiArICAgICMgbWFrZSBzdXJlIHdlIGNhbm5vdCBtb3ZlIGZ1cnRoZXIg YmFjaw0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeSAtIiAiQXQg dGhlIHN0YXJ0IG9mIHRoZSBicmFuY2ggdHJhY2UgcmVjb3JkXFwuIiAiYnJvd3NlIGhpc3Rvcnkg YmFja3dhcmQgYmV5b25kIDIiDQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5idHJhY2UvbXVsdGktaW5mZXJpb3IuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL211 bHRpLWluZmVyaW9yLmV4cA0KPiBpbmRleCA2OTk2YjE4MmU2NS4uOGQzMDkzMmM4MWYgMTAwNjQ0 DQo+IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9tdWx0aS1pbmZlcmlvci5leHANCj4g KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL211bHRpLWluZmVyaW9yLmV4cA0KPiBAQCAt MjIsNTEgKzIyLDU5IEBADQo+ICAgIw0KPiAgICMgRWFjaCBpbmZlcmlvciBjYW4gYmUgcmVjb3Jk ZWQgc2VwYXJhdGVseS4NCj4gICANCj4gLXJlcXVpcmUgYWxsb3dfYnRyYWNlX3Rlc3RzDQo+ICty ZXF1aXJlIHRhcmdldF9zdXBwb3J0c19idHJhY2UNCj4gICANCj4gICByZXF1aXJlICF1c2VfZ2Ri X3N0dWINCj4gICANCj4gICBzdGFuZGFyZF90ZXN0ZmlsZQ0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rl c3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUge30ge2RlYnVnfV0gew0KPiAraWYg W2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUge30ge2RlYnVn fV0gew0KPiAgICAgICByZXR1cm4gLTENCj4gICB9DQo+ICAgDQo+ICAgc2V0IGhvc3RfYmluZmls ZSBbZ2RiX3JlbW90ZV9kb3dubG9hZCBob3N0ICRiaW5maWxlXQ0KPiAgIA0KPiAtd2l0aF90ZXN0 X3ByZWZpeCAiaW5mZXJpb3IgMSIgew0KPiAtICAgIGlmICFbcnVudG9fbWFpbl0gew0KPiAtCXJl dHVybiAtMQ0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4g KyAgICBpZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9y dGVkICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4g Kwljb250aW51ZQ0KPiAgICAgICB9DQo+IC19DQo+IC0NCj4gLXdpdGhfdGVzdF9wcmVmaXggImlu ZmVyaW9yIDIiIHsNCj4gLSAgICBnZGJfdGVzdCAiYWRkLWluZmVyaW9yIC1leGVjICRob3N0X2Jp bmZpbGUiICJBZGRlZCBpbmZlcmlvciAyLioiIFwNCj4gLQkiYWRkIHNlY29uZCBpbmZlcmlvciIN Cj4gLSAgICBnZGJfdGVzdCAiaW5mZXJpb3IgMiIgIlN3aXRjaGluZyB0byBpbmZlcmlvciAyLioi DQo+ICsgICAgY2xlYW5fcmVzdGFydCAiJHt0ZXN0ZmlsZX0iDQo+ICAgDQo+IC0gICAgaWYgIVty dW50b19tYWluXSB7DQo+IC0JcmV0dXJuIC0xDQo+ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAiaW5m ZXJpb3IgMSIgew0KPiArCWlmICFbcnVudG9fbWFpbl0gew0KPiArCSAgICBjb250aW51ZQ0KPiAr CX0NCj4gICAgICAgfQ0KPiAgIA0KPiAtICAgIGdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0 cmFjZSIgInJlY29yZCBidHJhY2UiDQo+IC19DQo+ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAiaW5m ZXJpb3IgMiIgew0KPiArCWdkYl90ZXN0ICJhZGQtaW5mZXJpb3IgLWV4ZWMgJGhvc3RfYmluZmls ZSIgIkFkZGVkIGluZmVyaW9yIDIuKiIgXA0KPiArCSAgICAiYWRkIHNlY29uZCBpbmZlcmlvciIN Cj4gKwlnZGJfdGVzdCAiaW5mZXJpb3IgMiIgIlN3aXRjaGluZyB0byBpbmZlcmlvciAyLioiDQo+ ICAgDQo+IC13aXRoX3Rlc3RfcHJlZml4ICJpbmZlcmlvciAxIiB7DQo+IC0gICAgZ2RiX3Rlc3Qg ImluZmVyaW9yIDEiICJTd2l0Y2hpbmcgdG8gaW5mZXJpb3IgMS4qIg0KPiArCWlmICFbcnVudG9f bWFpbl0gew0KPiArCSAgICBjb250aW51ZQ0KPiArCX0NCj4gICANCj4gLSAgICBnZGJfdGVzdCAi aW5mbyByZWNvcmQiICJObyByZWNvcmRpbmcgaXMgY3VycmVudGx5IGFjdGl2ZVxcLiINCj4gLSAg ICBnZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UiICJyZWNvcmQgYnRyYWNlIg0KPiAt fQ0KPiArCWdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iICJyZWNv cmQgYnRyYWNlICR7bWV0aG9kfSINCj4gKyAgICB9DQo+ICAgDQo+IC13aXRoX3Rlc3RfcHJlZml4 ICJpbmZlcmlvciAzIiB7DQo+IC0gICAgZ2RiX3Rlc3QgImFkZC1pbmZlcmlvciAtZXhlYyAke2hv c3RfYmluZmlsZX0iICJBZGRlZCBpbmZlcmlvciAzLioiIFwNCj4gLQkiYWRkIHRoaXJkIGluZmVy aW9yIg0KPiAtICAgIGdkYl90ZXN0ICJpbmZlcmlvciAzIiAiU3dpdGNoaW5nIHRvIGluZmVyaW9y IDMuKiINCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJpbmZlcmlvciAxIiB7DQo+ICsJZ2RiX3Rl c3QgImluZmVyaW9yIDEiICJTd2l0Y2hpbmcgdG8gaW5mZXJpb3IgMS4qIg0KPiAgIA0KPiAtICAg IGlmICFbcnVudG9fbWFpbl0gew0KPiAtCXJldHVybiAtMQ0KPiArCWdkYl90ZXN0ICJpbmZvIHJl Y29yZCIgIk5vIHJlY29yZGluZyBpcyBjdXJyZW50bHkgYWN0aXZlXFwuIg0KPiArCWdkYl90ZXN0 X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iICJyZWNvcmQgYnRyYWNlICR7bWV0 aG9kfSINCj4gICAgICAgfQ0KPiAgIA0KPiAtICAgIGdkYl90ZXN0ICJpbmZvIHJlY29yZCIgIk5v IHJlY29yZGluZyBpcyBjdXJyZW50bHkgYWN0aXZlXFwuIg0KPiAtICAgIGdkYl90ZXN0X25vX291 dHB1dCAicmVjb3JkIGJ0cmFjZSIgInJlY29yZCBidHJhY2UiDQo+ICsgICAgd2l0aF90ZXN0X3By ZWZpeCAiaW5mZXJpb3IgMyIgew0KPiArCWdkYl90ZXN0ICJhZGQtaW5mZXJpb3IgLWV4ZWMgJHto b3N0X2JpbmZpbGV9IiAiQWRkZWQgaW5mZXJpb3IgMy4qIiBcDQo+ICsJICAgICJhZGQgdGhpcmQg aW5mZXJpb3IiDQo+ICsJZ2RiX3Rlc3QgImluZmVyaW9yIDMiICJTd2l0Y2hpbmcgdG8gaW5mZXJp b3IgMy4qIg0KPiArDQo+ICsJaWYgIVtydW50b19tYWluXSB7DQo+ICsJICAgIGNvbnRpbnVlDQo+ ICsJfQ0KPiArDQo+ICsJZ2RiX3Rlc3QgImluZm8gcmVjb3JkIiAiTm8gcmVjb3JkaW5nIGlzIGN1 cnJlbnRseSBhY3RpdmVcXC4iDQo+ICsJZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNl ICR7bWV0aG9kfSIgInJlY29yZCBidHJhY2UgJHttZXRob2R9Ig0KPiArICAgIH0NCj4gICB9DQo+ IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvbXVsdGktdGhyZWFkLXN0ZXAu ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL211bHRpLXRocmVhZC1zdGVwLmV4cA0KPiBp bmRleCAxNTRkYjlhZTUxNS4uYWFkYThiNGE2N2UgMTAwNjQ0DQo+IC0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJ0cmFjZS9tdWx0aS10aHJlYWQtc3RlcC5leHANCj4gKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYnRyYWNlL211bHRpLXRocmVhZC1zdGVwLmV4cA0KPiBAQCAtMTcsMjMgKzE3LDEzIEBA DQo+ICAgIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1yZXF1aXJlIGFs bG93X2J0cmFjZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlDQo+ICAg DQo+ICAgc3RhbmRhcmRfdGVzdGZpbGUNCj4gICBpZiB7W2dkYl9jb21waWxlX3B0aHJlYWRzICIk c3JjZGlyLyRzdWJkaXIvJHNyY2ZpbGUiICIkYmluZmlsZSIgZXhlY3V0YWJsZSB7ZGVidWd9XSAh PSAiIiB9IHsNCj4gICAgICAgdW50ZXN0ZWQgImZhaWxlZCB0byBwcmVwYXJlIg0KPiAgICAgICBy ZXR1cm4gLTENCj4gICB9DQo+IC1jbGVhbl9yZXN0YXJ0ICR0ZXN0ZmlsZQ0KPiAtDQo+IC1pZiAh W3J1bnRvX21haW5dIHsNCj4gLSAgICByZXR1cm4gLTENCj4gLX0NCj4gLQ0KPiAtIyBzZXQgdXAg YnJlYWtwb2ludHMNCj4gLXNldCBicF8xIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicC4xIiAkc3Jj ZmlsZV0NCj4gLXNldCBicF8yIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicC4yIiAkc3JjZmlsZV0N Cj4gLXNldCBicF8zIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicC4zIiAkc3JjZmlsZV0NCj4gICAN Cj4gICBwcm9jIGdkYl9jb250X3RvX2xpbmUgeyBsaW5lIH0gew0KPiAgICAgICBnZGJfYnJlYWtw b2ludCAkbGluZQ0KPiBAQCAtNjEsMTQgKzUxLDYgQEAgcHJvYyBjaGVja19ub3RfcmVwbGF5aW5n IHsgdGhyZWFkIH0gew0KPiAgICAgICB9DQo+ICAgfQ0KPiAgIA0KPiAtIyB0cmFjZSB0aGUgY29k ZSBiZXR3ZWVuIHRoZSB0d28gYnJlYWtwb2ludHMNCj4gLWRlbGV0ZV9icmVha3BvaW50cw0KPiAt Z2RiX2NvbnRfdG9fbGluZSAkc3JjZmlsZTokYnBfMQ0KPiAtIyBtYWtlIHN1cmUgR0RCIGtub3dz IGFib3V0IHRoZSBuZXcgdGhyZWFkDQo+IC1nZGJfdGVzdCAiaW5mbyB0aHJlYWRzIiAiLioiDQo+ IC1nZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UiDQo+IC1nZGJfY29udF90b19saW5l ICRzcmNmaWxlOiRicF8yDQo+IC0NCj4gICBwcm9jIHRlc3RfbmF2aWdhdGUge30gew0KPiAgICAg ICB3aXRoX3Rlc3RfcHJlZml4ICJuYXZpZ2F0ZSIgew0KPiAgICAgICAgICAgZ2RiX3Rlc3QgInRo cmVhZCAxIiAiLioiDQo+IEBAIC0xNjgsNDYgKzE1MCw3MCBAQCBwcm9jIHRlc3RfZ290b19lbmQg e30gew0KPiAgICAgICB9DQo+ICAgfQ0KPiAgIA0KPiAtZm9yZWFjaCBzY2hlZGxvY2sgeyAicmVw bGF5IiAib24iICJzdGVwIiB9IHsNCj4gLSAgICB3aXRoX3Rlc3RfcHJlZml4ICJzY2hlZGxvY2st JHNjaGVkbG9jayIgew0KPiAtICAgICAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBzY2hlZHVs ZXItbG9ja2luZyAkc2NoZWRsb2NrIg0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJi dHMiICJwdCJ9IHsNCj4gKyAgICBpZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0g ew0KPiArCXVuc3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNl ICR7bWV0aG9kfSINCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKyAgICBjbGVhbl9yZXN0YXJ0 ICIke3Rlc3RmaWxlfSINCj4gKyAgICBpZiAhW3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0K PiArICAgIH0NCj4gKw0KPiArICAgICMgc2V0IHVwIGJyZWFrcG9pbnRzDQo+ICsgICAgc2V0IGJw XzEgW2dkYl9nZXRfbGluZV9udW1iZXIgImJwLjEiICRzcmNmaWxlXQ0KPiArICAgIHNldCBicF8y IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicC4yIiAkc3JjZmlsZV0NCj4gKyAgICBzZXQgYnBfMyBb Z2RiX2dldF9saW5lX251bWJlciAiYnAuMyIgJHNyY2ZpbGVdDQo+ICAgDQo+IC0gICAgICAgIHRl c3RfbmF2aWdhdGUNCj4gLSAgICAgICAgdGVzdF9zdGVwDQo+IC0gICAgICAgIGlmIHsgJHNjaGVk bG9jayA9PSAic3RlcCIgfSB7DQo+IC0gICAgICAgICAgICB0ZXN0X2NvbnRfYWxsDQo+IC0gICAg ICAgIH0gZWxzZSB7DQo+IC0gICAgICAgICAgICB0ZXN0X2NvbnQNCj4gLSAgICAgICAgfQ0KPiAt ICAgICAgICB0ZXN0X3JzdGVwDQo+IC0gICAgICAgIHRlc3RfZ290b19lbmQNCj4gKyAgICAjIHRy YWNlIHRoZSBjb2RlIGJldHdlZW4gdGhlIHR3byBicmVha3BvaW50cw0KPiArICAgIGRlbGV0ZV9i cmVha3BvaW50cw0KPiArICAgIGdkYl9jb250X3RvX2xpbmUgJHNyY2ZpbGU6JGJwXzENCj4gKyAg ICAjIG1ha2Ugc3VyZSBHREIga25vd3MgYWJvdXQgdGhlIG5ldyB0aHJlYWQNCj4gKyAgICBnZGJf dGVzdCAiaW5mbyB0aHJlYWRzIiAiLioiDQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNv cmQgYnRyYWNlICR7bWV0aG9kfSINCj4gKyAgICBnZGJfY29udF90b19saW5lICRzcmNmaWxlOiRi cF8yDQo+ICsNCj4gKyAgICBmb3JlYWNoIHNjaGVkbG9jayB7ICJyZXBsYXkiICJvbiIgInN0ZXAi IH0gew0KPiArCXdpdGhfdGVzdF9wcmVmaXggInNjaGVkbG9jay0kc2NoZWRsb2NrIiB7DQo+ICsJ ICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IHNjaGVkdWxlci1sb2NraW5nICRzY2hlZGxvY2si DQo+ICsNCj4gKwkgICAgdGVzdF9uYXZpZ2F0ZQ0KPiArCSAgICB0ZXN0X3N0ZXANCj4gKwkgICAg aWYgeyAkc2NoZWRsb2NrID09ICJzdGVwIiB9IHsNCj4gKwkJdGVzdF9jb250X2FsbA0KPiArCSAg ICB9IGVsc2Ugew0KPiArCQl0ZXN0X2NvbnQNCj4gKwkgICAgfQ0KPiArCSAgICB0ZXN0X3JzdGVw DQo+ICsJICAgIHRlc3RfZ290b19lbmQNCj4gKwl9DQo+ICAgICAgIH0NCj4gLX0NCj4gICANCj4g LSMgc2NoZWRsb2NrLW9mZiBpcyBkaWZmaWN1bHQgdG8gdGVzdCBzaW5jZSB3ZSBjYW4ndCByZWFs bHkgc2F5IHdoZXJlIHRoZSBvdGhlcg0KPiAtIyB0aHJlYWQgd2lsbCBiZSB3aGVuIHRoZSByZXN1 bWVkIHRocmVhZCBzdG9wcy4NCj4gKyAgICAjIHNjaGVkbG9jay1vZmYgaXMgZGlmZmljdWx0IHRv IHRlc3Qgc2luY2Ugd2UgY2FuJ3QgcmVhbGx5IHNheSB3aGVyZSB0aGUgb3RoZXINCj4gKyAgICAj IHRocmVhZCB3aWxsIGJlIHdoZW4gdGhlIHJlc3VtZWQgdGhyZWFkIHN0b3BzLg0KPiAgIA0KPiAt IyBuYXZpZ2F0ZSBiYWNrIGludG8gdGhlIGhpc3RvcnkgZm9yIHRocmVhZCAxIGFuZCBjb250aW51 ZSB0aHJlYWQgMg0KPiAtd2l0aF90ZXN0X3ByZWZpeCAiY29udC10by1lbmQiIHsNCj4gLSAgICAj IHRoaXMgdGVzdCBvbmx5IHdvcmtzIGZvciBzY2hlZHVsZXItbG9ja2luZyByZXBsYXkNCj4gLSAg ICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBzY2hlZHVsZXItbG9ja2luZyByZXBsYXkiDQo+ICsg ICAgIyBuYXZpZ2F0ZSBiYWNrIGludG8gdGhlIGhpc3RvcnkgZm9yIHRocmVhZCAxIGFuZCBjb250 aW51ZSB0aHJlYWQgMg0KPiArICAgIHdpdGhfdGVzdF9wcmVmaXggImNvbnQtdG8tZW5kIiB7DQo+ ICsJIyB0aGlzIHRlc3Qgb25seSB3b3JrcyBmb3Igc2NoZWR1bGVyLWxvY2tpbmcgcmVwbGF5DQo+ ICsJZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgc2NoZWR1bGVyLWxvY2tpbmcgcmVwbGF5Ig0KPiAg IA0KPiAtICAgIGdkYl90ZXN0ICJ0aHJlYWQgMSIgIi4qIg0KPiAtICAgIHdpdGhfdGVzdF9wcmVm aXggInRocmVhZCAxIiB7DQo+IC0gICAgICAgIGdkYl90ZXN0ICJyZWNvcmQgZ290byBiZWdpbiIg Ii4qIg0KPiArCWdkYl90ZXN0ICJ0aHJlYWQgMSIgIi4qIg0KPiArCXdpdGhfdGVzdF9wcmVmaXgg InRocmVhZCAxIiB7DQo+ICsJICAgIGdkYl90ZXN0ICJyZWNvcmQgZ290byBiZWdpbiIgIi4qIg0K PiAgIA0KPiAtICAgICAgICBjaGVja19yZXBsYXlfaW5zbiAxIDENCj4gLSAgICB9DQo+IC0gICAg Z2RiX3Rlc3QgInRocmVhZCAyIiAiLioiDQo+IC0gICAgd2l0aF90ZXN0X3ByZWZpeCAidGhyZWFk IDIiIHsNCj4gLSAgICAgICAgZ2RiX3Rlc3QgInJlY29yZCBnb3RvIGVuZCIgIi4qIg0KPiArCSAg ICBjaGVja19yZXBsYXlfaW5zbiAxIDENCj4gKwl9DQo+ICsJZ2RiX3Rlc3QgInRocmVhZCAyIiAi LioiDQo+ICsJd2l0aF90ZXN0X3ByZWZpeCAidGhyZWFkIDIiIHsNCj4gKwkgICAgZ2RiX3Rlc3Qg InJlY29yZCBnb3RvIGVuZCIgIi4qIg0KPiAgIA0KPiAtICAgICAgICBjaGVja19ub3RfcmVwbGF5 aW5nIDINCj4gKwkgICAgY2hlY2tfbm90X3JlcGxheWluZyAyDQo+ICAgDQo+IC0gICAgICAgICMg aWYgd2UgcmVhY2ggdGhlIGJyZWFrcG9pbnQsIHRocmVhZCAyIHRlcm1pbmF0ZWQuLi4NCj4gLSAg ICAgICAgZ2RiX2NvbnRfdG9fbGluZSAkc3JjZmlsZTokYnBfMw0KPiArCSAgICAjIGlmIHdlIHJl YWNoIHRoZSBicmVha3BvaW50LCB0aHJlYWQgMiB0ZXJtaW5hdGVkLi4uDQo+ICsJICAgIGdkYl9j b250X3RvX2xpbmUgJHNyY2ZpbGU6JGJwXzMNCj4gICANCj4gLSAgICAgICAgIyBhbmQgdGhyZWFk IDEgc3RvcHBlZCByZXBsYXlpbmcNCj4gLSAgICAgICAgY2hlY2tfbm90X3JlcGxheWluZyAxDQo+ ICsJICAgICMgYW5kIHRocmVhZCAxIHN0b3BwZWQgcmVwbGF5aW5nDQo+ICsJICAgIGNoZWNrX25v dF9yZXBsYXlpbmcgMQ0KPiArCX0NCj4gICAgICAgfQ0KPiAgIH0NCj4gZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9ub2hpc3QuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRy YWNlL25vaGlzdC5leHANCj4gaW5kZXggZDcxOTA5MTgxYzQuLjNiMGIyZWVhY2IwIDEwMDY0NA0K PiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2Uvbm9oaXN0LmV4cA0KPiArKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5idHJhY2Uvbm9oaXN0LmV4cA0KPiBAQCAtMTcsMTQgKzE3LDExIEBADQo+ ICAgIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93 X2J0cmFjZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlDQo+ICAgDQo+ ICAgc3RhbmRhcmRfdGVzdGZpbGUgcmVjb3JkX2dvdG8uYw0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rl c3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4gLSAgICBy ZXR1cm4gLTENCj4gLX0NCj4gICANCj4gLWlmICFbcnVudG9fbWFpbl0gew0KPiAraWYgW2J1aWxk X2V4ZWN1dGFibGUgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4g ICAgICAgcmV0dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiBAQCAtMzYsMTQgKzMzLDI1IEBAIHByb2Mg Y2hlY2tfbm90X3JlcGxheWluZyB7fSB7DQo+ICAgICAgIF0NCj4gICB9DQo+ICAgDQo+IC1nZGJf dGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UiDQo+ICtmb3JlYWNoX3dpdGhfcHJlZml4IG1l dGhvZCB7ImJ0cyIgInB0In0gew0KPiArICAgIGlmIHsgIVthbGxvd19idHJhY2VfdGVzdHMgJG1l dGhvZF0gfSB7DQo+ICsJdW5zdXBwb3J0ZWQgInRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IHJlY29y ZC1idHJhY2UgJHttZXRob2R9Ig0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiArICAgIGNsZWFu X3Jlc3RhcnQgIiR7dGVzdGZpbGV9Ig0KPiArICAgIGlmICFbcnVudG9fbWFpbl0gew0KPiArCWNv bnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAtd2l0aF90ZXN0X3ByZWZpeCAiZm9yd2FyZCIgew0K PiAtICAgIGNoZWNrX25vdF9yZXBsYXlpbmcNCj4gLX0NCj4gKyAgICBnZGJfdGVzdF9ub19vdXRw dXQgInJlY29yZCBidHJhY2UgJHttZXRob2R9Ig0KPiArDQo+ICsgICAgd2l0aF90ZXN0X3ByZWZp eCAiZm9yd2FyZCIgew0KPiArCWNoZWNrX25vdF9yZXBsYXlpbmcNCj4gKyAgICB9DQo+ICAgDQo+ IC1nZGJfdGVzdCAicmV2ZXJzZS1jb250aW51ZSIgIk5vIG1vcmUgcmV2ZXJzZS1leGVjdXRpb24g aGlzdG9yeVwuXHJcbi4qIg0KPiArICAgIGdkYl90ZXN0ICJyZXZlcnNlLWNvbnRpbnVlIiAiTm8g bW9yZSByZXZlcnNlLWV4ZWN1dGlvbiBoaXN0b3J5XC5cclxuLioiDQo+ICAgDQo+IC13aXRoX3Rl c3RfcHJlZml4ICJiYWNrd2FyZCIgew0KPiAtICAgIGNoZWNrX25vdF9yZXBsYXlpbmcNCj4gKyAg ICB3aXRoX3Rlc3RfcHJlZml4ICJiYWNrd2FyZCIgew0KPiArCWNoZWNrX25vdF9yZXBsYXlpbmcN Cj4gKyAgICB9DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNl L25vbi1zdG9wLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9ub24tc3RvcC5leHANCj4g aW5kZXggNjJjOTQwZTRjZDYuLjRkNzMyMjFmYzNmIDEwMDY0NA0KPiAtLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5idHJhY2Uvbm9uLXN0b3AuZXhwDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0 cmFjZS9ub24tc3RvcC5leHANCj4gQEAgLTE1LDcgKzE1LDcgQEANCj4gICAjIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ ICAgIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4NCj4gICANCj4gLXJlcXVpcmUgYWxsb3dfYnRyYWNlX3Rlc3RzDQo+ ICtyZXF1aXJlIHRhcmdldF9zdXBwb3J0c19idHJhY2UNCj4gICANCj4gICBzdGFuZGFyZF90ZXN0 ZmlsZQ0KPiAgIGlmIHtbZ2RiX2NvbXBpbGVfcHRocmVhZHMgIiRzcmNkaXIvJHN1YmRpci8kc3Jj ZmlsZSIgIiRiaW5maWxlIiBleGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0gew0KPiBAQCAtMjMs MjkgKzIzLDYgQEAgaWYge1tnZGJfY29tcGlsZV9wdGhyZWFkcyAiJHNyY2Rpci8kc3ViZGlyLyRz cmNmaWxlIiAiJGJpbmZpbGUiIGV4ZWN1dGFibGUge2RlYnUNCj4gICAgICAgcmV0dXJuIC0xDQo+ ICAgfQ0KPiAgIA0KPiAtc2F2ZV92YXJzIHsgR0RCRkxBR1MgfSB7DQo+IC0gICAgYXBwZW5kIEdE QkZMQUdTICIgLWV4IFwic2V0IG5vbi1zdG9wIG9uXCIiDQo+IC0gICAgY2xlYW5fcmVzdGFydCAk dGVzdGZpbGUNCj4gLX0NCj4gLQ0KPiAtaWYgIVtydW50b19tYWluXSB7DQo+IC0gICAgcmV0dXJu IC0xDQo+IC19DQo+IC0NCj4gLSMgc2V0IHVwIGJyZWFrcG9pbnRzDQo+IC1zZXQgYnBfMSBbZ2Ri X2dldF9saW5lX251bWJlciAiYnAuMSIgJHNyY2ZpbGVdDQo+IC1zZXQgYnBfMiBbZ2RiX2dldF9s aW5lX251bWJlciAiYnAuMiIgJHNyY2ZpbGVdDQo+IC1zZXQgYnBfMyBbZ2RiX2dldF9saW5lX251 bWJlciAiYnAuMyIgJHNyY2ZpbGVdDQo+IC0NCj4gLWdkYl9icmVha3BvaW50ICRicF8xDQo+IC1n ZGJfYnJlYWtwb2ludCAkYnBfMg0KPiAtDQo+IC0jIGdldCB0aGUgbGluZSBudW1iZXIgY29udGFp bmluZyBtb3N0IG9mIHRoZSB0cmFjZQ0KPiAtc2V0IGxvb3AgW2dkYl9nZXRfbGluZV9udW1iZXIg Imxvb3AiICRzcmNmaWxlXQ0KPiAtDQo+IC0jIGEgc3RvcCBvbiB0aGUgYWJvdmUgbGluZSBhcyBy ZXBvcnRlZCBieSBHREINCj4gLXNldCBsb29wX2xpbmUgIiRsb29wXFteXFxcclxcXG5cXSovXFxc KiBsb29wIFxcXCovIg0KPiAtDQo+ICAgIyBtYWtlIHN1cmUgJGxpbmUgbWF0Y2hlcyB0aGUgZnVs bCBleHBlY3RlZCBvdXRwdXQgcGVyIHRocmVhZC4NCj4gICAjIGFuZCBsZXQncyBob3BlIHRoYXQg R0RCIG5ldmVyIG1peGVzIHRoZSBvdXRwdXQgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcy4NCj4gICBw cm9jIGdkYl9jb250X3RvIHsgdGhyZWFkcyBjbWQgbGluZSBudGhyZWFkcyB9IHsNCj4gQEAgLTg5 LDE2NSArNjYsMTk1IEBAIHByb2MgZ2RiX2NvbnRfdG9fbm9faGlzdG9yeSB7IHRocmVhZHMgY21k IG50aHJlYWRzIH0gew0KPiAgICAgICAgICAgJG50aHJlYWRzDQo+ICAgfQ0KPiAgIA0KPiAtIyB0 cmFjZSB0aGUgY29kZSBiZXR3ZWVuIHRoZSB0d28gYnJlYWtwb2ludHMNCj4gLXdpdGhfdGVzdF9w cmVmaXggInByZXBhcmUiIHsNCj4gLSAgICBnZGJfY29udF90b19icF9saW5lICIkc3JjZmlsZTok YnBfMSIgYWxsIDINCj4gLX0NCj4gLXdpdGhfdGVzdF9wcmVmaXggInJlY29yZCIgew0KPiAtICAg IGdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSINCj4gLSAgICBnZGJfY29udF90b19i cF9saW5lICIkc3JjZmlsZTokYnBfMiIgYWxsIDINCj4gLX0NCj4gLQ0KPiAtIyB3ZSBkb24ndCBu ZWVkIHRob3NlIGJyZWFrcG9pbnRzIGFueSBsb25nZXIuDQo+IC0jIHRoZXkgd2lsbCBvbmx5IGRp c3R1cmIgb3VyIHN0ZXBwaW5nLg0KPiAtZGVsZXRlX2JyZWFrcG9pbnRzDQo+IC0NCj4gLSMgc2hv dyB0aGUgdGhyZWFkcyAtIHRoaXMgaXMgdXNlZnVsIGZvciBkZWJ1Z2dpbmcgZmFpbHMNCj4gLWdk Yl90ZXN0ICJ0aHJlYWQgYXBwbHkgYWxsIGluZm8gcmVjIiAiLioiDQo+IC1nZGJfdGVzdCAiaW5m byB0aHJlYWRzIiAiLioiDQo+IC0NCj4gLXdpdGhfdGVzdF9wcmVmaXggIm5hdmlnYXRlIiB7DQo+ IC0gICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAxIHJlY29yZCBnb3RvIDMiICIkbG9vcF9saW5l Ig0KPiAtICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiByZWNvcmQgZ290byA0IiAiJGxvb3Bf bGluZSINCj4gLSAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDEgaW5mbyByZWNvcmQiIFwNCj4g LSAgICAgICAgIi4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDNcLiIgInRo cmVhZCAxIGF0IGluc24gMyINCj4gLSAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIgaW5mbyBy ZWNvcmQiIFwNCj4gLSAgICAgICAgIi4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3RydWN0 aW9uIDRcLiIgInRocmVhZCAyIGF0IGluc24gNCINCj4gLQ0KPiAtICAgIGdkYl90ZXN0ICJ0aHJl YWQgYXBwbHkgYWxsIHJlY29yZCBnb3RvIDUiICIkbG9vcF9saW5lIg0KPiAtICAgIGdkYl90ZXN0 ICJ0aHJlYWQgYXBwbHkgMSBpbmZvIHJlY29yZCIgXA0KPiAtICAgICAgICAiLipSZXBsYXkgaW4g cHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gNVwuIiAidGhyZWFkIDEgYXQgaW5zbiA1Ig0KPiAt ICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiBpbmZvIHJlY29yZCIgXA0KPiAtICAgICAgICAi LipSZXBsYXkgaW4gcHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gNVwuIiAidGhyZWFkIDIgYXQg aW5zbiA1Ig0KPiAtfQ0KPiAtDQo+IC13aXRoX3Rlc3RfcHJlZml4ICJzdGVwIiB7DQo+IC0gICAg d2l0aF90ZXN0X3ByZWZpeCAidGhyZWFkIDEiIHsNCj4gLSAgICAgICAgZ2RiX3Rlc3QgInRocmVh ZCBhcHBseSAxIHN0ZXBpIDIiICIkbG9vcF9saW5lIg0KPiAtICAgICAgICBnZGJfdGVzdCAidGhy ZWFkIGFwcGx5IDEgaW5mbyByZWNvcmQiIFwNCj4gLSAgICAgICAgICAgICIuKlJlcGxheSBpbiBw cm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiA3XC4iDQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJl YWQgYXBwbHkgMiBpbmZvIHJlY29yZCIgXA0KPiAtICAgICAgICAgICAgIi4qUmVwbGF5IGluIHBy b2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDVcLiINCj4gK2ZvcmVhY2hfd2l0aF9wcmVmaXggbWV0 aG9kIHsiYnRzIiAicHQifSB7DQo+ICsgICAgaWYgeyAhW2FsbG93X2J0cmFjZV90ZXN0cyAkbWV0 aG9kXSB9IHsNCj4gKwl1bnN1cHBvcnRlZCAidGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgcmVjb3Jk LWJ0cmFjZSAke21ldGhvZH0iDQo+ICsJY29udGludWUNCj4gICAgICAgfQ0KPiAgIA0KPiAtICAg IHdpdGhfdGVzdF9wcmVmaXggInRocmVhZCAyIiB7DQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJl YWQgYXBwbHkgMiBzdGVwaSAzIiAiJGxvb3BfbGluZSINCj4gLSAgICAgICAgZ2RiX3Rlc3QgInRo cmVhZCBhcHBseSAxIGluZm8gcmVjb3JkIiBcDQo+IC0gICAgICAgICAgICAiLipSZXBsYXkgaW4g cHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gN1wuIg0KPiAtICAgICAgICBnZGJfdGVzdCAidGhy ZWFkIGFwcGx5IDIgaW5mbyByZWNvcmQiIFwNCj4gLSAgICAgICAgICAgICIuKlJlcGxheSBpbiBw cm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiA4XC4iDQo+ICsgICAgc2F2ZV92YXJzIHsgR0RCRkxB R1MgfSB7DQo+ICsJYXBwZW5kIEdEQkZMQUdTICIgLWV4IFwic2V0IG5vbi1zdG9wIG9uXCIiDQo+ ICsJY2xlYW5fcmVzdGFydCAkdGVzdGZpbGUNCj4gICAgICAgfQ0KPiAgIA0KPiAtICAgIHdpdGhf dGVzdF9wcmVmaXggImFsbCIgew0KPiAtICAgICAgICBnZGJfY29udF90byBhbGwgInN0ZXBpIDQi ICIkbG9vcF9saW5lIiAyDQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSBpbmZv IHJlY29yZCIgXA0KPiAtICAgICAgICAgICAgIi4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGlu c3RydWN0aW9uIDExXC4iDQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiBpbmZv IHJlY29yZCIgXA0KPiAtICAgICAgICAgICAgIi4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGlu c3RydWN0aW9uIDEyXC4iDQo+ICsgICAgaWYgIVtydW50b19tYWluXSB7DQo+ICsJY29udGludWUN Cj4gICAgICAgfQ0KPiAtfQ0KPiAgIA0KPiAtd2l0aF90ZXN0X3ByZWZpeCAicmV2ZXJzZS1zdGVw IiB7DQo+IC0gICAgd2l0aF90ZXN0X3ByZWZpeCAidGhyZWFkIDEiIHsNCj4gLSAgICAgICAgZ2Ri X3Rlc3QgInRocmVhZCBhcHBseSAxIHJldmVyc2Utc3RlcGkgMiIgIiRsb29wX2xpbmUiDQo+IC0g ICAgICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSBpbmZvIHJlY29yZCIgXA0KPiAtICAgICAg ICAgICAgIi4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDlcLiINCj4gLSAg ICAgICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAyIGluZm8gcmVjb3JkIiBcDQo+IC0gICAgICAg ICAgICAiLipSZXBsYXkgaW4gcHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gMTJcLiINCj4gLSAg ICB9DQo+ICsgICAgIyBzZXQgdXAgYnJlYWtwb2ludHMNCj4gKyAgICBzZXQgYnBfMSBbZ2RiX2dl dF9saW5lX251bWJlciAiYnAuMSIgJHNyY2ZpbGVdDQo+ICsgICAgc2V0IGJwXzIgW2dkYl9nZXRf bGluZV9udW1iZXIgImJwLjIiICRzcmNmaWxlXQ0KPiArICAgIHNldCBicF8zIFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJicC4zIiAkc3JjZmlsZV0NCj4gKw0KPiArICAgIGdkYl9icmVha3BvaW50ICRi cF8xDQo+ICsgICAgZ2RiX2JyZWFrcG9pbnQgJGJwXzINCj4gICANCj4gLSAgICB3aXRoX3Rlc3Rf cHJlZml4ICJ0aHJlYWQgMiIgew0KPiAtICAgICAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIg cmV2ZXJzZS1zdGVwaSAzIiAiJGxvb3BfbGluZSINCj4gLSAgICAgICAgZ2RiX3Rlc3QgInRocmVh ZCBhcHBseSAxIGluZm8gcmVjb3JkIiBcDQo+IC0gICAgICAgICAgICAiLipSZXBsYXkgaW4gcHJv Z3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gOVwuIg0KPiAtICAgICAgICBnZGJfdGVzdCAidGhyZWFk IGFwcGx5IDIgaW5mbyByZWNvcmQiIFwNCj4gLSAgICAgICAgICAgICIuKlJlcGxheSBpbiBwcm9n cmVzc1wuICBBdCBpbnN0cnVjdGlvbiA5XC4iDQo+ICsgICAgIyBnZXQgdGhlIGxpbmUgbnVtYmVy IGNvbnRhaW5pbmcgbW9zdCBvZiB0aGUgdHJhY2UNCj4gKyAgICBzZXQgbG9vcCBbZ2RiX2dldF9s aW5lX251bWJlciAibG9vcCIgJHNyY2ZpbGVdDQo+ICsNCj4gKyAgICAjIGEgc3RvcCBvbiB0aGUg YWJvdmUgbGluZSBhcyByZXBvcnRlZCBieSBHREINCj4gKyAgICBzZXQgbG9vcF9saW5lICIkbG9v cFxbXlxcXHJcXFxuXF0qL1xcXCogbG9vcCBcXFwqLyINCj4gKw0KPiArICAgICMgdHJhY2UgdGhl IGNvZGUgYmV0d2VlbiB0aGUgdHdvIGJyZWFrcG9pbnRzDQo+ICsgICAgd2l0aF90ZXN0X3ByZWZp eCAicHJlcGFyZSIgew0KPiArCWdkYl9jb250X3RvX2JwX2xpbmUgIiRzcmNmaWxlOiRicF8xIiBh bGwgMg0KPiArICAgIH0NCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJyZWNvcmQiIHsNCj4gKwln ZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UgJHttZXRob2R9Ig0KPiArCWdkYl9jb250 X3RvX2JwX2xpbmUgIiRzcmNmaWxlOiRicF8yIiBhbGwgMg0KPiAgICAgICB9DQo+ICAgDQo+IC0g ICAgd2l0aF90ZXN0X3ByZWZpeCAiYWxsIiB7DQo+IC0gICAgICAgIGdkYl9jb250X3RvIGFsbCAi cmV2ZXJzZS1zdGVwaSA0IiAiJGxvb3BfbGluZSIgMg0KPiAtICAgICAgICBnZGJfdGVzdCAidGhy ZWFkIGFwcGx5IDEgaW5mbyByZWNvcmQiIFwNCj4gLSAgICAgICAgICAgICIuKlJlcGxheSBpbiBw cm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiA1XC4iDQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJl YWQgYXBwbHkgMiBpbmZvIHJlY29yZCIgXA0KPiAtICAgICAgICAgICAgIi4qUmVwbGF5IGluIHBy b2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDVcLiINCj4gKyAgICAjIHdlIGRvbid0IG5lZWQgdGhv c2UgYnJlYWtwb2ludHMgYW55IGxvbmdlci4NCj4gKyAgICAjIHRoZXkgd2lsbCBvbmx5IGRpc3R1 cmIgb3VyIHN0ZXBwaW5nLg0KPiArICAgIGRlbGV0ZV9icmVha3BvaW50cw0KPiArDQo+ICsgICAg IyBzaG93IHRoZSB0aHJlYWRzIC0gdGhpcyBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZyBmYWlscw0K PiArICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgYWxsIGluZm8gcmVjIiAiLioiDQo+ICsgICAg Z2RiX3Rlc3QgImluZm8gdGhyZWFkcyIgIi4qIg0KPiArDQo+ICsgICAgd2l0aF90ZXN0X3ByZWZp eCAibmF2aWdhdGUiIHsNCj4gKwlnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDEgcmVjb3JkIGdvdG8g MyIgIiRsb29wX2xpbmUiDQo+ICsJZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAyIHJlY29yZCBnb3Rv IDQiICIkbG9vcF9saW5lIg0KPiArCWdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSBpbmZvIHJlY29y ZCIgXA0KPiArCSAgICAiLipSZXBsYXkgaW4gcHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gM1wu IiAidGhyZWFkIDEgYXQgaW5zbiAzIg0KPiArCWdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiBpbmZv IHJlY29yZCIgXA0KPiArCSAgICAiLipSZXBsYXkgaW4gcHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rp b24gNFwuIiAidGhyZWFkIDIgYXQgaW5zbiA0Ig0KPiArDQo+ICsJZ2RiX3Rlc3QgInRocmVhZCBh cHBseSBhbGwgcmVjb3JkIGdvdG8gNSIgIiRsb29wX2xpbmUiDQo+ICsJZ2RiX3Rlc3QgInRocmVh ZCBhcHBseSAxIGluZm8gcmVjb3JkIiBcDQo+ICsJICAgICIuKlJlcGxheSBpbiBwcm9ncmVzc1wu ICBBdCBpbnN0cnVjdGlvbiA1XC4iICJ0aHJlYWQgMSBhdCBpbnNuIDUiDQo+ICsJZ2RiX3Rlc3Qg InRocmVhZCBhcHBseSAyIGluZm8gcmVjb3JkIiBcDQo+ICsJICAgICIuKlJlcGxheSBpbiBwcm9n cmVzc1wuICBBdCBpbnN0cnVjdGlvbiA1XC4iICJ0aHJlYWQgMiBhdCBpbnNuIDUiDQo+ICAgICAg IH0NCj4gLX0NCj4gICANCj4gLXdpdGhfdGVzdF9wcmVmaXggImNvbnRpbnVlIiB7DQo+IC0gICAg d2l0aF90ZXN0X3ByZWZpeCAidGhyZWFkIDEiIHsNCj4gLQl3aXRoX3Rlc3RfcHJlZml4ICJjb250 aW51ZSIgew0KPiAtCSAgICBnZGJfY29udF90b19ub19oaXN0b3J5IDEgImNvbnRpbnVlIiAxDQo+ ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAic3RlcCIgew0KPiArCXdpdGhfdGVzdF9wcmVmaXggInRo cmVhZCAxIiB7DQo+ICsJICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSBzdGVwaSAyIiAiJGxv b3BfbGluZSINCj4gICAJICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSBpbmZvIHJlY29yZCIg XA0KPiAtCQkiLipSZWNvcmRlZCBcWzAtOVxdKyBpbnN0cnVjdGlvbnMgXFteXFxcclxcXG5cXSoi DQo+ICsJCSIuKlJlcGxheSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiA3XC4iDQo+ICAg CSAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIgaW5mbyByZWNvcmQiIFwNCj4gICAJCSIuKlJl cGxheSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiA1XC4iDQo+ICAgCX0NCj4gLQl3aXRo X3Rlc3RfcHJlZml4ICJyZXZlcnNlLWNvbnRpbnVlIiB7DQo+IC0JICAgIGdkYl9jb250X3RvX25v X2hpc3RvcnkgMSAicmV2ZXJzZS1jb250aW51ZSIgMQ0KPiArDQo+ICsJd2l0aF90ZXN0X3ByZWZp eCAidGhyZWFkIDIiIHsNCj4gKwkgICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAyIHN0ZXBpIDMi ICIkbG9vcF9saW5lIg0KPiAgIAkgICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAxIGluZm8gcmVj b3JkIiBcDQo+IC0JCSIuKlJlcGxheSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiAxXC4i DQo+ICsJCSIuKlJlcGxheSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiA3XC4iDQo+ICAg CSAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIgaW5mbyByZWNvcmQiIFwNCj4gLQkJIi4qUmVw bGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDVcLiINCj4gKwkJIi4qUmVwbGF5IGlu IHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDhcLiINCj4gKwl9DQo+ICsNCj4gKwl3aXRoX3Rl c3RfcHJlZml4ICJhbGwiIHsNCj4gKwkgICAgZ2RiX2NvbnRfdG8gYWxsICJzdGVwaSA0IiAiJGxv b3BfbGluZSIgMg0KPiArCSAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDEgaW5mbyByZWNvcmQi IFwNCj4gKwkJIi4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDExXC4iDQo+ ICsJICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiBpbmZvIHJlY29yZCIgXA0KPiArCQkiLipS ZXBsYXkgaW4gcHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gMTJcLiINCj4gICAJfQ0KPiAgICAg ICB9DQo+ICAgDQo+IC0gICAgd2l0aF90ZXN0X3ByZWZpeCAidGhyZWFkIDIiIHsNCj4gLQl3aXRo X3Rlc3RfcHJlZml4ICJjb250aW51ZSIgew0KPiAtCSAgICBnZGJfY29udF90b19ub19oaXN0b3J5 IDIgImNvbnRpbnVlIiAxDQo+ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAicmV2ZXJzZS1zdGVwIiB7 DQo+ICsJd2l0aF90ZXN0X3ByZWZpeCAidGhyZWFkIDEiIHsNCj4gKwkgICAgZ2RiX3Rlc3QgInRo cmVhZCBhcHBseSAxIHJldmVyc2Utc3RlcGkgMiIgIiRsb29wX2xpbmUiDQo+ICAgCSAgICBnZGJf dGVzdCAidGhyZWFkIGFwcGx5IDEgaW5mbyByZWNvcmQiIFwNCj4gLQkJIi4qUmVwbGF5IGluIHBy b2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDFcLiINCj4gKwkJIi4qUmVwbGF5IGluIHByb2dyZXNz XC4gIEF0IGluc3RydWN0aW9uIDlcLiINCj4gICAJICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkg MiBpbmZvIHJlY29yZCIgXA0KPiAtCQkiLipSZWNvcmRlZCBcWzAtOVxdKyBpbnN0cnVjdGlvbnMg XFteXFxcclxcXG5cXSoiDQo+ICsJCSIuKlJlcGxheSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVj dGlvbiAxMlwuIg0KPiArCX0NCj4gKw0KPiArCXdpdGhfdGVzdF9wcmVmaXggInRocmVhZCAyIiB7 DQo+ICsJICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiByZXZlcnNlLXN0ZXBpIDMiICIkbG9v cF9saW5lIg0KPiArCSAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDEgaW5mbyByZWNvcmQiIFwN Cj4gKwkJIi4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDlcLiINCj4gKwkg ICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAyIGluZm8gcmVjb3JkIiBcDQo+ICsJCSIuKlJlcGxh eSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiA5XC4iDQo+ICAgCX0NCj4gLQl3aXRoX3Rl c3RfcHJlZml4ICJyZXZlcnNlLWNvbnRpbnVlIiB7DQo+IC0JICAgIGdkYl9jb250X3RvX25vX2hp c3RvcnkgMiAicmV2ZXJzZS1jb250aW51ZSIgMQ0KPiArDQo+ICsJd2l0aF90ZXN0X3ByZWZpeCAi YWxsIiB7DQo+ICsJICAgIGdkYl9jb250X3RvIGFsbCAicmV2ZXJzZS1zdGVwaSA0IiAiJGxvb3Bf bGluZSIgMg0KPiAgIAkgICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAxIGluZm8gcmVjb3JkIiBc DQo+IC0JCSIuKlJlcGxheSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiAxXC4iDQo+ICsJ CSIuKlJlcGxheSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiA1XC4iDQo+ICAgCSAgICBn ZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIgaW5mbyByZWNvcmQiIFwNCj4gLQkJIi4qUmVwbGF5IGlu IHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDFcLiINCj4gKwkJIi4qUmVwbGF5IGluIHByb2dy ZXNzXC4gIEF0IGluc3RydWN0aW9uIDVcLiINCj4gICAJfQ0KPiAgICAgICB9DQo+IC19DQo+ICAg DQo+IC0jIGEgdGhyZWFkIG1heSBvbmx5IHJlc3VtZSBpZiBubyB0aHJlYWQgaXMgc3RpbGwgcmVw bGF5aW5nDQo+IC13aXRoX3Rlc3RfcHJlZml4ICJubyBwcm9ncmVzcyIgew0KPiAtICAgIHdpdGhf dGVzdF9wcmVmaXggInRocmVhZCAxIiB7DQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBw bHkgMSByZWNvcmQgZ290byBlbmQiICIuKiINCj4gLSAgICAgICAgZ2RiX3Rlc3QgInRocmVhZCBh cHBseSAyIHJlY29yZCBnb3RvIGJlZ2luIiAiLioiDQo+IC0NCj4gLSAgICAgICAgZ2RiX2NvbnRf dG9fbm9faGlzdG9yeSAxICJjb250aW51ZSIgMQ0KPiAtICAgICAgICBnZGJfY29udF90b19ub19o aXN0b3J5IDEgInN0ZXAiIDENCj4gLSAgICAgICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAxIGlu Zm8gcmVjb3JkIiBcDQo+IC0gICAgICAgICAgICAiLipSZWNvcmRlZCBcWzAtOVxdKyBpbnN0cnVj dGlvbnMgXFteXFxcclxcXG5cXSoiDQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkg MiBpbmZvIHJlY29yZCIgXA0KPiAtICAgICAgICAgICAgIi4qUmVwbGF5IGluIHByb2dyZXNzXC4g IEF0IGluc3RydWN0aW9uIDFcLiINCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJjb250aW51ZSIg ew0KPiArCXdpdGhfdGVzdF9wcmVmaXggInRocmVhZCAxIiB7DQo+ICsJICAgIHdpdGhfdGVzdF9w cmVmaXggImNvbnRpbnVlIiB7DQo+ICsJCWdkYl9jb250X3RvX25vX2hpc3RvcnkgMSAiY29udGlu dWUiIDENCj4gKwkJZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAxIGluZm8gcmVjb3JkIiBcDQo+ICsJ CSAgICAiLipSZWNvcmRlZCBcWzAtOVxdKyBpbnN0cnVjdGlvbnMgXFteXFxcclxcXG5cXSoiDQo+ ICsJCWdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiBpbmZvIHJlY29yZCIgXA0KPiArCQkgICAgIi4q UmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDVcLiINCj4gKwkgICAgfQ0KPiAr CSAgICB3aXRoX3Rlc3RfcHJlZml4ICJyZXZlcnNlLWNvbnRpbnVlIiB7DQo+ICsJCWdkYl9jb250 X3RvX25vX2hpc3RvcnkgMSAicmV2ZXJzZS1jb250aW51ZSIgMQ0KPiArCQlnZGJfdGVzdCAidGhy ZWFkIGFwcGx5IDEgaW5mbyByZWNvcmQiIFwNCj4gKwkJICAgICIuKlJlcGxheSBpbiBwcm9ncmVz c1wuICBBdCBpbnN0cnVjdGlvbiAxXC4iDQo+ICsJCWdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiBp bmZvIHJlY29yZCIgXA0KPiArCQkgICAgIi4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3Ry dWN0aW9uIDVcLiINCj4gKwkgICAgfQ0KPiArCX0NCj4gKw0KPiArCXdpdGhfdGVzdF9wcmVmaXgg InRocmVhZCAyIiB7DQo+ICsJICAgIHdpdGhfdGVzdF9wcmVmaXggImNvbnRpbnVlIiB7DQo+ICsJ CWdkYl9jb250X3RvX25vX2hpc3RvcnkgMiAiY29udGludWUiIDENCj4gKwkJZ2RiX3Rlc3QgInRo cmVhZCBhcHBseSAxIGluZm8gcmVjb3JkIiBcDQo+ICsJCSAgICAiLipSZXBsYXkgaW4gcHJvZ3Jl c3NcLiAgQXQgaW5zdHJ1Y3Rpb24gMVwuIg0KPiArCQlnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIg aW5mbyByZWNvcmQiIFwNCj4gKwkJICAgICIuKlJlY29yZGVkIFxbMC05XF0rIGluc3RydWN0aW9u cyBcW15cXFxyXFxcblxdKiINCj4gKwkgICAgfQ0KPiArCSAgICB3aXRoX3Rlc3RfcHJlZml4ICJy ZXZlcnNlLWNvbnRpbnVlIiB7DQo+ICsJCWdkYl9jb250X3RvX25vX2hpc3RvcnkgMiAicmV2ZXJz ZS1jb250aW51ZSIgMQ0KPiArCQlnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDEgaW5mbyByZWNvcmQi IFwNCj4gKwkJICAgICIuKlJlcGxheSBpbiBwcm9ncmVzc1wuICBBdCBpbnN0cnVjdGlvbiAxXC4i DQo+ICsJCWdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiBpbmZvIHJlY29yZCIgXA0KPiArCQkgICAg Ii4qUmVwbGF5IGluIHByb2dyZXNzXC4gIEF0IGluc3RydWN0aW9uIDFcLiINCj4gKwkgICAgfQ0K PiArCX0NCj4gICAgICAgfQ0KPiAgIA0KPiAtICAgIHdpdGhfdGVzdF9wcmVmaXggInRocmVhZCAy IiB7DQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSByZWNvcmQgZ290byBiZWdp biIgIi4qIg0KPiAtICAgICAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIgcmVjb3JkIGdvdG8g ZW5kIiAiLioiDQo+ICsgICAgIyBhIHRocmVhZCBtYXkgb25seSByZXN1bWUgaWYgbm8gdGhyZWFk IGlzIHN0aWxsIHJlcGxheWluZw0KPiArICAgIHdpdGhfdGVzdF9wcmVmaXggIm5vIHByb2dyZXNz IiB7DQo+ICsJd2l0aF90ZXN0X3ByZWZpeCAidGhyZWFkIDEiIHsNCj4gKwkgICAgZ2RiX3Rlc3Qg InRocmVhZCBhcHBseSAxIHJlY29yZCBnb3RvIGVuZCIgIi4qIg0KPiArCSAgICBnZGJfdGVzdCAi dGhyZWFkIGFwcGx5IDIgcmVjb3JkIGdvdG8gYmVnaW4iICIuKiINCj4gICANCj4gLSAgICAgICAg Z2RiX2NvbnRfdG9fbm9faGlzdG9yeSAyICJjb250aW51ZSIgMQ0KPiAtICAgICAgICBnZGJfY29u dF90b19ub19oaXN0b3J5IDIgInN0ZXAiIDENCj4gLSAgICAgICAgZ2RiX3Rlc3QgInRocmVhZCBh cHBseSAxIGluZm8gcmVjb3JkIiBcDQo+IC0gICAgICAgICAgICAiLipSZXBsYXkgaW4gcHJvZ3Jl c3NcLiAgQXQgaW5zdHJ1Y3Rpb24gMVwuIg0KPiAtICAgICAgICBnZGJfdGVzdCAidGhyZWFkIGFw cGx5IDIgaW5mbyByZWNvcmQiIFwNCj4gLSAgICAgICAgICAgICIuKlJlY29yZGVkIFxbMC05XF0r IGluc3RydWN0aW9ucyBcW15cXFxyXFxcblxdKiINCj4gLSAgICB9DQo+ICsJICAgIGdkYl9jb250 X3RvX25vX2hpc3RvcnkgMSAiY29udGludWUiIDENCj4gKwkgICAgZ2RiX2NvbnRfdG9fbm9faGlz dG9yeSAxICJzdGVwIiAxDQo+ICsJICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSBpbmZvIHJl Y29yZCIgXA0KPiArCQkiLipSZWNvcmRlZCBcWzAtOVxdKyBpbnN0cnVjdGlvbnMgXFteXFxcclxc XG5cXSoiDQo+ICsJICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMiBpbmZvIHJlY29yZCIgXA0K PiArCQkiLipSZXBsYXkgaW4gcHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gMVwuIg0KPiArCX0N Cj4gKw0KPiArCXdpdGhfdGVzdF9wcmVmaXggInRocmVhZCAyIiB7DQo+ICsJICAgIGdkYl90ZXN0 ICJ0aHJlYWQgYXBwbHkgMSByZWNvcmQgZ290byBiZWdpbiIgIi4qIg0KPiArCSAgICBnZGJfdGVz dCAidGhyZWFkIGFwcGx5IDIgcmVjb3JkIGdvdG8gZW5kIiAiLioiDQo+ICAgDQo+IC0gICAgd2l0 aF90ZXN0X3ByZWZpeCAiYWxsIiB7DQo+IC0gICAgICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkg YWxsIHJlY29yZCBnb3RvIGJlZ2luIiAiLioiDQo+ICsJICAgIGdkYl9jb250X3RvX25vX2hpc3Rv cnkgMiAiY29udGludWUiIDENCj4gKwkgICAgZ2RiX2NvbnRfdG9fbm9faGlzdG9yeSAyICJzdGVw IiAxDQo+ICsJICAgIGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSBpbmZvIHJlY29yZCIgXA0KPiAr CQkiLipSZXBsYXkgaW4gcHJvZ3Jlc3NcLiAgQXQgaW5zdHJ1Y3Rpb24gMVwuIg0KPiArCSAgICBn ZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIgaW5mbyByZWNvcmQiIFwNCj4gKwkJIi4qUmVjb3JkZWQg XFswLTlcXSsgaW5zdHJ1Y3Rpb25zIFxbXlxcXHJcXFxuXF0qIg0KPiArCX0NCj4gICANCj4gLSAg ICAgICAgZ2RiX2NvbnRfdG9fbm9faGlzdG9yeSBhbGwgImNvbnRpbnVlIiAyDQo+IC0gICAgICAg IGdkYl90ZXN0ICJ0aHJlYWQgYXBwbHkgMSBpbmZvIHJlY29yZCIgXA0KPiAtICAgICAgICAgICAg Ii4qUmVjb3JkZWQgXFswLTlcXSsgaW5zdHJ1Y3Rpb25zIFxbXlxcXHJcXFxuXF0qIg0KPiAtICAg ICAgICBnZGJfdGVzdCAidGhyZWFkIGFwcGx5IDIgaW5mbyByZWNvcmQiIFwNCj4gLSAgICAgICAg ICAgICIuKlJlY29yZGVkIFxbMC05XF0rIGluc3RydWN0aW9ucyBcW15cXFxyXFxcblxdKiINCj4g Kwl3aXRoX3Rlc3RfcHJlZml4ICJhbGwiIHsNCj4gKwkgICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBs eSBhbGwgcmVjb3JkIGdvdG8gYmVnaW4iICIuKiINCj4gKw0KPiArCSAgICBnZGJfY29udF90b19u b19oaXN0b3J5IGFsbCAiY29udGludWUiIDINCj4gKwkgICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBs eSAxIGluZm8gcmVjb3JkIiBcDQo+ICsJCSIuKlJlY29yZGVkIFxbMC05XF0rIGluc3RydWN0aW9u cyBcW15cXFxyXFxcblxdKiINCj4gKwkgICAgZ2RiX3Rlc3QgInRocmVhZCBhcHBseSAyIGluZm8g cmVjb3JkIiBcDQo+ICsJCSIuKlJlY29yZGVkIFxbMC05XF0rIGluc3RydWN0aW9ucyBcW15cXFxy XFxcblxdKiINCj4gKwl9DQo+ICAgICAgIH0NCj4gLX0NCj4gICANCj4gLSMgbm93IHRoYXQgYm90 aCB0aHJlYWRzIHN0b3BwZWQgcmVwbGF5aW5nIHdlIG1heSByZXN1bWUgcmVjb3JkaW5nDQo+IC13 aXRoX3Rlc3RfcHJlZml4ICJjb250IHRvIGVuZCIgew0KPiAtICAgIGdkYl9icmVha3BvaW50ICRi cF8zDQo+IC0gICAgZ2RiX2NvbnRfdG9fYnBfbGluZSAiJHNyY2ZpbGU6JGJwXzMiIGFsbCAxDQo+ ICsgICAgIyBub3cgdGhhdCBib3RoIHRocmVhZHMgc3RvcHBlZCByZXBsYXlpbmcgd2UgbWF5IHJl c3VtZSByZWNvcmRpbmcNCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJjb250IHRvIGVuZCIgew0K PiArCWdkYl9icmVha3BvaW50ICRicF8zDQo+ICsJZ2RiX2NvbnRfdG9fYnBfbGluZSAiJHNyY2Zp bGU6JGJwXzMiIGFsbCAxDQo+ICsgICAgfQ0KPiAgIH0NCj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmJ0cmFjZS9yZWNvbm5lY3QuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNl L3JlY29ubmVjdC5leHANCj4gaW5kZXggNDFmNzAyYTM4YjMuLmNmMTQ3YTMzZDU4IDEwMDY0NA0K PiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvcmVjb25uZWN0LmV4cA0KPiArKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvcmVjb25uZWN0LmV4cA0KPiBAQCAtMTksNjMgKzE5LDcz IEBADQo+ICAgDQo+ICAgbG9hZF9saWIgZ2Ric2VydmVyLXN1cHBvcnQuZXhwDQo+ICAgDQo+IC1y ZXF1aXJlIGFsbG93X2J0cmFjZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRy YWNlDQo+ICAgcmVxdWlyZSBhbGxvd19nZGJzZXJ2ZXJfdGVzdHMNCj4gICANCj4gICBzdGFuZGFy ZF90ZXN0ZmlsZQ0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJl IiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4gK2lmIFtidWlsZF9leGVjdXRhYmxlICJmYWlsZWQg dG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlXSB7DQo+ICAgICAgIHJldHVybiAtMQ0KPiAg IH0NCj4gICANCj4gICBzZXQgdGFyZ2V0X2JpbmZpbGUgW2dkYl9yZW1vdGVfZG93bmxvYWQgdGFy Z2V0ICRiaW5maWxlXQ0KPiAgIA0KPiAtIyBNYWtlIHN1cmUgd2UncmUgZGlzY29ubmVjdGVkIGFu ZCBubyByZWNvcmRpbmcgaXMgYWN0aXZlLCBpbiBjYXNlDQo+IC0jIHdlJ3JlIHRlc3Rpbmcgd2l0 aCBhbiBleHRlbmRlZC1yZW1vdGUgYm9hcmQsIHRoZXJlZm9yZSBhbHJlYWR5DQo+IC0jIGNvbm5l Y3RlZC4NCj4gLXdpdGhfdGVzdF9wcmVmaXggInByZXBhcmF0aW9uIiB7DQo+IC0gIGdkYl90ZXN0 ICJyZWNvcmQgc3RvcCIgIi4qIg0KPiAtICBnZGJfdGVzdCAiZGlzY29ubmVjdCIgIi4qIg0KPiAt fQ0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAgICBp ZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVkICJ0 YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwljb250 aW51ZQ0KPiArICAgIH0NCj4gICANCj4gLSMgU3RhcnQgZnJlc2ggZ2Ric2VydmVyLg0KPiAtc2V0 IGdkYnNlcnZlcl9yZWNvbm5lY3RfcCAxDQo+IC1zZXQgcmVzIFtnZGJzZXJ2ZXJfc3RhcnQgIiIg JHRhcmdldF9iaW5maWxlXQ0KPiAtc2V0IGdkYnNlcnZlcl9wcm90b2NvbCBbbGluZGV4ICRyZXMg MF0NCj4gLXNldCBnZGJzZXJ2ZXJfZ2RicG9ydCBbbGluZGV4ICRyZXMgMV0NCj4gLWdkYl90YXJn ZXRfY21kICRnZGJzZXJ2ZXJfcHJvdG9jb2wgJGdkYnNlcnZlcl9nZGJwb3J0DQo+ICsgICAgY2xl YW5fcmVzdGFydCAiJHt0ZXN0ZmlsZX0iDQo+ICAgDQo+IC0jIENyZWF0ZSBhIHJlY29yZCwgY2hl Y2ssIHJlY29ubmVjdA0KPiAtd2l0aF90ZXN0X3ByZWZpeCAiZmlyc3QiIHsNCj4gLSAgZ2RiX3Rl c3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlIiAicmVjb3JkIGJ0cmFjZSBlbmFibGUiDQo+IC0g IGdkYl90ZXN0ICJzdGVwaSAxOSIgIi4qIg0KPiArICAgICMgTWFrZSBzdXJlIHdlJ3JlIGRpc2Nv bm5lY3RlZCBhbmQgbm8gcmVjb3JkaW5nIGlzIGFjdGl2ZSwgaW4gY2FzZQ0KPiArICAgICMgd2Un cmUgdGVzdGluZyB3aXRoIGFuIGV4dGVuZGVkLXJlbW90ZSBib2FyZCwgdGhlcmVmb3JlIGFscmVh ZHkNCj4gKyAgICAjIGNvbm5lY3RlZC4NCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJwcmVwYXJh dGlvbiIgew0KPiArCWdkYl90ZXN0ICJyZWNvcmQgc3RvcCIgIi4qIg0KPiArCWdkYl90ZXN0ICJk aXNjb25uZWN0IiAiLioiDQo+ICsgICAgfQ0KPiAgIA0KPiAtICBnZGJfdGVzdCAiaW5mbyByZWNv cmQiIFttdWx0aV9saW5lIFwNCj4gLSAgICAiQWN0aXZlIHJlY29yZCB0YXJnZXQ6IC4qIiBcDQo+ IC0gICAgIlJlY29yZGVkIDE5IGluc3RydWN0aW9ucyBpbiAuKyBmdW5jdGlvbnMgXFwoLiBnYXBz XFwpIGZvciB0aHJlYWQgMSBcXChUaHJlYWQgLipcXCkuIg0KPiAtICBdDQo+ICsgICAgIyBTdGFy dCBmcmVzaCBnZGJzZXJ2ZXIuDQo+ICsgICAgc2V0IGdkYnNlcnZlcl9yZWNvbm5lY3RfcCAxDQo+ ICsgICAgc2V0IHJlcyBbZ2Ric2VydmVyX3N0YXJ0ICIiICR0YXJnZXRfYmluZmlsZV0NCj4gKyAg ICBzZXQgZ2Ric2VydmVyX3Byb3RvY29sIFtsaW5kZXggJHJlcyAwXQ0KPiArICAgIHNldCBnZGJz ZXJ2ZXJfZ2RicG9ydCBbbGluZGV4ICRyZXMgMV0NCj4gKyAgICBnZGJfdGFyZ2V0X2NtZCAkZ2Ri c2VydmVyX3Byb3RvY29sICRnZGJzZXJ2ZXJfZ2RicG9ydA0KPiAgIA0KPiAtICBnZGJfdGVzdCAi ZGlzY29ubmVjdCIgIkVuZGluZyByZW1vdGUgZGVidWdnaW5nLiINCj4gLSAgZ2RiX3RhcmdldF9j bWQgJGdkYnNlcnZlcl9wcm90b2NvbCAkZ2Ric2VydmVyX2dkYnBvcnQNCj4gLX0NCj4gKyAgICAj IENyZWF0ZSBhIHJlY29yZCwgY2hlY2ssIHJlY29ubmVjdA0KPiArICAgIHdpdGhfdGVzdF9wcmVm aXggImZpcnN0IiB7DQo+ICsJZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlICR7bWV0 aG9kfSIgInJlY29yZCBidHJhY2UgJHttZXRob2R9IGVuYWJsZSINCj4gKwlnZGJfdGVzdCAic3Rl cGkgMTkiICIuKiINCj4gICANCj4gLSMgVGVzdCBpZiB3ZSBjYW4gYWNjZXNzIHRoZSByZWNvcmRl ZCBkYXRhIGZyb20gZmlyc3QgY29ubmVjdC4NCj4gLSMgTm90ZTogQlRTIGxvc2VzIHRoZSBmaXJz dCBmdW5jdGlvbiBjYWxsIGVudHJ5IHdpdGggaXRzIGFzc29jaWF0ZWQNCj4gLSMgaW5zdHJ1Y3Rp b25zIGZvciB0ZWNobmljYWwgcmVhc29ucy4gIFRoaXMgaXMgd2h5IHdlIHRlc3QgZm9yDQo+IC0j ICJhIG51bWJlciBiZXR3ZWVuIDEwIGFuZCAxOSIsIHNvIHdlIGNhdGNoIGF0IGxlYXN0IHRoZSBj YXNlIHdoZXJlDQo+IC0jIHRoZXJlIGFyZSAwIGluc3RydWN0aW9ucyBpbiB0aGUgcmVjb3JkLg0K PiAtd2l0aF90ZXN0X3ByZWZpeCAic2Vjb25kIiB7DQo+IC0gIGdkYl90ZXN0ICJpbmZvIHJlY29y ZCIgW211bHRpX2xpbmUgXA0KPiAtICAgICJBY3RpdmUgcmVjb3JkIHRhcmdldDogLioiIFwNCj4g LSAgICAiUmVjb3JkZWQgMS4gaW5zdHJ1Y3Rpb25zIGluIC4rIGZ1bmN0aW9ucyBcXCguIGdhcHNc XCkgZm9yIHRocmVhZCAxIFxcKFRocmVhZCAuKlxcKS4iDQo+IC0gIF0NCj4gKwlnZGJfdGVzdCAi aW5mbyByZWNvcmQiIFttdWx0aV9saW5lIFwNCj4gKwkgICAgIkFjdGl2ZSByZWNvcmQgdGFyZ2V0 OiAuKiIgXA0KPiArCSAgICAiUmVjb3JkZWQgMTkgaW5zdHJ1Y3Rpb25zIGluIC4rIGZ1bmN0aW9u cyBcXCguIGdhcHNcXCkgZm9yIHRocmVhZCAxIFxcKFRocmVhZCAuKlxcKS4iDQo+ICsJICAgIF0N Cj4gICANCj4gLSAgZ2RiX3Rlc3QgInJlY29yZCBzdG9wIiAiUHJvY2VzcyByZWNvcmQgaXMgc3Rv cHBlZCBhbmQgYWxsIGV4ZWN1dGlvbiBsb2dzIGFyZSBkZWxldGVkLiINCj4gKwlnZGJfdGVzdCAi ZGlzY29ubmVjdCIgIkVuZGluZyByZW1vdGUgZGVidWdnaW5nLiINCj4gKwlnZGJfdGFyZ2V0X2Nt ZCAkZ2Ric2VydmVyX3Byb3RvY29sICRnZGJzZXJ2ZXJfZ2RicG9ydA0KPiArICAgIH0NCj4gICAN Cj4gLSAgZ2RiX3Rlc3QgImRpc2Nvbm5lY3QiICJFbmRpbmcgcmVtb3RlIGRlYnVnZ2luZy4iDQo+ IC0gIGdkYl90YXJnZXRfY21kICRnZGJzZXJ2ZXJfcHJvdG9jb2wgJGdkYnNlcnZlcl9nZGJwb3J0 DQo+IC19DQo+ICsgICAgIyBUZXN0IGlmIHdlIGNhbiBhY2Nlc3MgdGhlIHJlY29yZGVkIGRhdGEg ZnJvbSBmaXJzdCBjb25uZWN0Lg0KPiArICAgICMgTm90ZTogQlRTIGxvc2VzIHRoZSBmaXJzdCBm dW5jdGlvbiBjYWxsIGVudHJ5IHdpdGggaXRzIGFzc29jaWF0ZWQNCj4gKyAgICAjIGluc3RydWN0 aW9ucyBmb3IgdGVjaG5pY2FsIHJlYXNvbnMuICBUaGlzIGlzIHdoeSB3ZSB0ZXN0IGZvcg0KPiAr ICAgICMgImEgbnVtYmVyIGJldHdlZW4gMTAgYW5kIDE5Iiwgc28gd2UgY2F0Y2ggYXQgbGVhc3Qg dGhlIGNhc2Ugd2hlcmUNCj4gKyAgICAjIHRoZXJlIGFyZSAwIGluc3RydWN0aW9ucyBpbiB0aGUg cmVjb3JkLg0KPiArICAgIHdpdGhfdGVzdF9wcmVmaXggInNlY29uZCIgew0KPiArCWdkYl90ZXN0 ICJpbmZvIHJlY29yZCIgW211bHRpX2xpbmUgXA0KPiArCSAgICAiQWN0aXZlIHJlY29yZCB0YXJn ZXQ6IC4qIiBcDQo+ICsJICAgICJSZWNvcmRlZCAxLiBpbnN0cnVjdGlvbnMgaW4gLisgZnVuY3Rp b25zIFxcKC4gZ2Fwc1xcKSBmb3IgdGhyZWFkIDEgXFwoVGhyZWFkIC4qXFwpLiINCj4gKwkgICAg XQ0KPiArDQo+ICsJZ2RiX3Rlc3QgInJlY29yZCBzdG9wIiAiUHJvY2VzcyByZWNvcmQgaXMgc3Rv cHBlZCBhbmQgYWxsIGV4ZWN1dGlvbiBsb2dzIGFyZSBkZWxldGVkLiINCj4gKw0KPiArCWdkYl90 ZXN0ICJkaXNjb25uZWN0IiAiRW5kaW5nIHJlbW90ZSBkZWJ1Z2dpbmcuIg0KPiArCWdkYl90YXJn ZXRfY21kICRnZGJzZXJ2ZXJfcHJvdG9jb2wgJGdkYnNlcnZlcl9nZGJwb3J0DQo+ICsgICAgfQ0K PiAgIA0KPiAtIyBUZXN0IHRoYXQgcmVjb3JkaW5nIGlzIG5vdyBvZmYuDQo+IC13aXRoX3Rlc3Rf cHJlZml4ICJ0aGlyZCIgew0KPiAtICBnZGJfdGVzdCAiaW5mbyByZWNvcmQiICJObyByZWNvcmRp bmcgaXMgY3VycmVudGx5IGFjdGl2ZS4iDQo+ICsgICAgIyBUZXN0IHRoYXQgcmVjb3JkaW5nIGlz IG5vdyBvZmYuDQo+ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAidGhpcmQiIHsNCj4gKwlnZGJfdGVz dCAiaW5mbyByZWNvcmQiICJObyByZWNvcmRpbmcgaXMgY3VycmVudGx5IGFjdGl2ZS4iDQo+ICsg ICAgfQ0KPiArICAgIGdkYl90ZXN0ICJkaXNjb25uZWN0IiAiLioiDQo+ICAgfQ0KPiBkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3JlY29yZF9nb3RvLXN0ZXAuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3JlY29yZF9nb3RvLXN0ZXAuZXhwDQo+IGluZGV4IGU3YWRj NjJlZWRkLi4zMzNiZWM4ZTIwOSAxMDA2NDQNCj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRy YWNlL3JlY29yZF9nb3RvLXN0ZXAuZXhwDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFj ZS9yZWNvcmRfZ290by1zdGVwLmV4cA0KPiBAQCAtMTcsMjggKzE3LDQyIEBADQo+ICAgIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93X2J0cmFjZV90 ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlDQo+ICAgDQo+ICAgc3RhbmRh cmRfdGVzdGZpbGUgcmVjb3JkX2dvdG8uYw0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZh aWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4gKw0KPiAraWYgeyFbdGFy Z2V0X3N1cHBvcnRzX2J0cmFjZV19IHsNCj4gKyAgICB1bnN1cHBvcnRlZCAidGFyZ2V0IGRvZXMg bm90IHN1cHBvcnQgYnRyYWNlLiINCj4gICAgICAgcmV0dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiAt aWYgIVtydW50b19tYWluXSB7DQo+ICtpZiBbYnVpbGRfZXhlY3V0YWJsZSAiZmFpbGVkIHRvIHBy ZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZV0gew0KPiAgICAgICByZXR1cm4gLTENCj4gICB9DQo+ ICAgDQo+IC1zZXQgYnAgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bjQuMyIgJHNyY2ZpbGVdDQo+ IC1nZGJfYnJlYWtwb2ludCAkc3JjZmlsZTokYnANCj4gK2ZvcmVhY2hfd2l0aF9wcmVmaXggbWV0 aG9kIHsiYnRzIiAicHQifSB7DQo+ICsgICAgaWYgeyAhW2FsbG93X2J0cmFjZV90ZXN0cyAkbWV0 aG9kXSB9IHsNCj4gKwl1bnN1cHBvcnRlZCAidGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgcmVjb3Jk LWJ0cmFjZSAke21ldGhvZH0iDQo+ICsJY29udGludWUNCj4gKyAgICB9DQo+ICsgICAgY2xlYW5f cmVzdGFydCAiJHt0ZXN0ZmlsZX0iDQo+ICsNCj4gKyAgICBpZiAhW3J1bnRvX21haW5dIHsNCj4g Kwljb250aW51ZQ0KPiArICAgIH0NCj4gICANCj4gLSMgcmVjb3JkIHRoZSBleGVjdXRpb24gdW50 aWwgd2UgaGl0IGEgYnJlYWtwb2ludA0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRy YWNlIg0KPiAtZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gJGJwIiAiLipmdW40 XC4zLioiDQo+ICsgICAgc2V0IGJwIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW40LjMiICRzcmNm aWxlXQ0KPiArICAgIGdkYl9icmVha3BvaW50ICRzcmNmaWxlOiRicA0KPiAgIA0KPiAtIyByZXZl cnNlLXN0ZXAsIHRoZW4ganVtcCB0byB0aGUgZW5kIG9mIHRoZSB0cmFjZQ0KPiAtZ2RiX3Rlc3Qg InJldmVyc2UtbmV4dCIgIi4qZnVuNFwuMi4qIg0KPiAtZ2RiX3Rlc3QgInJlY29yZCBnb3RvIGVu ZCIgIi4qZnVuNFwuMy4qIg0KPiArICAgICMgcmVjb3JkIHRoZSBleGVjdXRpb24gdW50aWwgd2Ug aGl0IGEgYnJlYWtwb2ludA0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFj ZSAke21ldGhvZH0iDQo+ICsgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8g JGJwIiAiLipmdW40XC4zLioiDQo+ICAgDQo+IC0jIHRlc3QgdGhhdCB3ZSBjYW4gc3RlcCBhd2F5 IGZyb20gYSBicmVha3BvaW50IGFmdGVyIGp1bXBpbmcgdG8NCj4gLSMgdGhlIGJyZWFrcG9pbnQg UEMNCj4gLWdkYl90ZXN0ICJuZXh0IiAiLipmdW40XC40LioiDQo+ICsgICAgIyByZXZlcnNlLXN0 ZXAsIHRoZW4ganVtcCB0byB0aGUgZW5kIG9mIHRoZSB0cmFjZQ0KPiArICAgIGdkYl90ZXN0ICJy ZXZlcnNlLW5leHQiICIuKmZ1bjRcLjIuKiINCj4gKyAgICBnZGJfdGVzdCAicmVjb3JkIGdvdG8g ZW5kIiAiLipmdW40XC4zLioiDQo+ICsNCj4gKyAgICAjIHRlc3QgdGhhdCB3ZSBjYW4gc3RlcCBh d2F5IGZyb20gYSBicmVha3BvaW50IGFmdGVyIGp1bXBpbmcgdG8NCj4gKyAgICAjIHRoZSBicmVh a3BvaW50IFBDDQo+ICsgICAgZ2RiX3Rlc3QgIm5leHQiICIuKmZ1bjRcLjQuKiINCj4gK30NCj4g ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9yZWNvcmRfZ290by5leHAgYi9n ZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvcmVjb3JkX2dvdG8uZXhwDQo+IGluZGV4IGNkNmFiMzg3 YzQwLi4wZmQwZDU4NDFhZSAxMDA2NDQNCj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNl L3JlY29yZF9nb3RvLmV4cA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvcmVjb3Jk X2dvdG8uZXhwDQo+IEBAIC0xNyw3ICsxNywxMiBAQA0KPiAgICMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gICAjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+Lg0KPiAgIA0KPiAtcmVxdWlyZSBhbGxvd19idHJhY2VfdGVzdHMNCj4gK3JlcXVp cmUgdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZQ0KPiArDQo+ICsjIFdoZW4gR0RCIHByaW50cyB0aGUg ZmlsZSBmb3IgYSBzdG9wIGxvY2F0aW9uLCBpdCBtYXkgcHJpbnQgdGhlIGZ1bGwgcGF0aA0KPiAr IyBkZXBlbmRpbmcgb24gd2hhdCBpbmZvcm1hdGlvbiB0aGUgY29tcGlsZXIgYWRkZWQuICBUaGlz IHJlZ2V4cCBhbGxvd3MgZm9yDQo+ICsjIHRoYXQgcGF0aCB0byBiZSBwcmVzZW50LCBidXQgZG9l cyBub3QgcmVxdWlyZSBpdC4NCj4gK3NldCBvcHRpb25hbF9maWxlcGF0aCB7W15cbl0qfQ0KPiAg IA0KPiAgICMgVGhlICJyZWNvcmQgZ290byIgY29tbWFuZCBqdW1wcyB0byBhIHNwZWNpZmljIGlu c3RydWN0aW9uIGluIHRoZSBleGVjdXRpb24NCj4gICAjIHRyYWNlLiAgVG8gZ3VhcmFudGVlIHRo YXQgd2UgYWx3YXlzIGdldCB0aGUgc2FtZSBleGVjdXRpb24gdHJhY2UsIHdlIHVzZQ0KPiBAQCAt NDMsMTU3ICs0OCwxNjIgQEAgaWYgW2luZm8gZXhpc3RzIENPTVBJTEVdIHsNCj4gICAgICAgcmV0 dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0 byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGUgJG9wdHNdIHsNCj4gK2lmIFtidWlsZF9leGVj dXRhYmxlICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlICRvcHRzXSB7DQo+ ICAgICAgIHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLWlmICFbcnVudG9fbWFpbl0gew0KPiAt ICAgIHJldHVybiAtMQ0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9 IHsNCj4gKyAgICBpZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVu c3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9k fSINCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3Rm aWxlfSINCj4gKyAgICBpZiAhW3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0KPiArICAgIH0N Cj4gKw0KPiArICAgICMgd2Ugd2FudCBhIHNtYWxsIGNvbnRleHQgc2l6ZXMgdG8gc2ltcGxpZnkg dGhlIHRlc3QNCj4gKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCByZWNvcmQgaW5zdHJ1Y3Rp b24taGlzdG9yeS1zaXplIDMiDQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3Jk IGZ1bmN0aW9uLWNhbGwtaGlzdG9yeS1zaXplIDMiDQo+ICsNCj4gKyAgICAjIHRyYWNlIHRoZSBj YWxsIHRvIHRoZSB0ZXN0IGZ1bmN0aW9uDQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNv cmQgYnRyYWNlICR7bWV0aG9kfSINCj4gKyAgICBnZGJfdGVzdCAibmV4dCINCj4gKw0KPiArICAg ICMgc3RhcnQgYnkgbGlzdGluZyBhbGwgZnVuY3Rpb25zDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29y ZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgL2NpIDEsICsyMCIgW211bHRpX2xpbmUgXA0KPiArCSIx XHRtYWluXHRpbnN0IDEsMSIgXA0KPiArCSIyXHQgIGZ1bjRcdGluc3QgMiw0IiBcDQo+ICsJIjNc dCAgICBmdW4xXHRpbnN0IDUsOCIgXA0KPiArCSI0XHQgIGZ1bjRcdGluc3QgOSw5IiBcDQo+ICsJ IjVcdCAgICBmdW4yXHRpbnN0IDEwLDEyIiBcDQo+ICsJIjZcdCAgICAgIGZ1bjFcdGluc3QgMTMs MTYiIFwNCj4gKwkiN1x0ICAgIGZ1bjJcdGluc3QgMTcsMTgiIFwNCj4gKwkiOFx0ICBmdW40XHRp bnN0IDE5LDE5IiBcDQo+ICsJIjlcdCAgICBmdW4zXHRpbnN0IDIwLDIyIiBcDQo+ICsJIjEwXHQg ICAgICBmdW4xXHRpbnN0IDIzLDI2IiBcDQo+ICsJIjExXHQgICAgZnVuM1x0aW5zdCAyNywyNyIg XA0KPiArCSIxMlx0ICAgICAgZnVuMlx0aW5zdCAyOCwzMCIgXA0KPiArCSIxM1x0ICAgICAgICBm dW4xXHRpbnN0IDMxLDM0IiBcDQo+ICsJIjE0XHQgICAgICBmdW4yXHRpbnN0IDM1LDM2IiBcDQo+ ICsJIjE1XHQgICAgZnVuM1x0aW5zdCAzNywzOCIgXA0KPiArCSIxNlx0ICBmdW40XHRpbnN0IDM5 LDQwIiBcDQo+ICsJXQ0KPiArDQo+ICsgICAgIyBsZXQncyBzZWUgaWYgd2UgY2FuIGdvIGJhY2sg aW4gaGlzdG9yeQ0KPiArICAgIGdkYl90ZXN0IFwNCj4gKwkicmVjb3JkIGdvdG8gMTkiICIuKmZ1 bjQgXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9cmVjb3JkX2dvdG8uYzo0My4qIg0KPiAr DQo+ICsgICAgIyB0aGUgZnVuY3Rpb24gY2FsbCBoaXN0b3J5IHNob3VsZCBzdGFydCBhdCB0aGUg bmV3IGxvY2F0aW9uDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rv cnkgL2NpIiBbbXVsdGlfbGluZSBcDQo+ICsJIjhcdCAgZnVuNFx0aW5zdCAxOSwxOSIgXA0KPiAr CSI5XHQgICAgZnVuM1x0aW5zdCAyMCwyMiIgXA0KPiArCSIxMFx0ICAgICAgZnVuMVx0aW5zdCAy MywyNiIgXA0KPiArCV0gImZ1bmN0aW9uLWNhbGwtaGlzdG9yeSBmcm9tIDE5IGZvcndhcmRzIg0K PiArDQo+ICsgICAgIyB0aGUgaW5zdHJ1Y3Rpb24gaGlzdG9yeSBzaG91bGQgc3RhcnQgYXQgdGhl IG5ldyBsb2NhdGlvbg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9y eSIgW211bHRpX2xpbmUgXA0KPiArCSIxOS4qIiBcDQo+ICsJIjIwLioiIFwNCj4gKwkiMjEuKiIg XA0KPiArCV0gImluc3RydWN0aW9uLWhpc3RvcnkgZnJvbSAxOSBmb3J3YXJkcyINCj4gKw0KPiAr ICAgICMgbGV0J3MgZ28gdG8gYW5vdGhlciBwbGFjZSBpbiB0aGUgaGlzdG9yeQ0KPiArICAgIGdk Yl90ZXN0IFwNCj4gKwkicmVjb3JkIGdvdG8gMjciIFwNCj4gKwkiLipmdW4zIFxcKFxcKSBhdCAk e29wdGlvbmFsX2ZpbGVwYXRofXJlY29yZF9nb3RvLmM6MzUuKiINCj4gKw0KPiArICAgICMgY2hl Y2sgdGhlIGJhY2sgdHJhY2UgYXQgdGhhdCBsb2NhdGlvbg0KPiArICAgIGdkYl90ZXN0ICJiYWNr dHJhY2UiIFttdWx0aV9saW5lIFwNCj4gKwkiIzAuKmZ1bjMuKmF0ICR7b3B0aW9uYWxfZmlsZXBh dGh9cmVjb3JkX2dvdG8uYzozNS4qIiBcDQo+ICsJIiMxLipmdW40LiphdCAke29wdGlvbmFsX2Zp bGVwYXRofXJlY29yZF9nb3RvLmM6NDMuKiIgXA0KPiArCSIjMi4qbWFpbi4qYXQgJHtvcHRpb25h bF9maWxlcGF0aH1yZWNvcmRfZ290by5jOjQ5LioiIFwNCj4gKwkiQmFja3RyYWNlIHN0b3BwZWQ6 IG5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9yIG1lbW9yeSBhdmFpbGFibGUgdG8gdW53aW5kIGZ1cnRo ZXIiIFwNCj4gKwldDQo+ICsNCj4gKyAgICAjIHdhbGsgdGhlIGJhY2t0cmFjZQ0KPiArICAgIGdk Yl90ZXN0ICJ1cCIgIi4qZnVuNC4qYXQgJHtvcHRpb25hbF9maWxlcGF0aH1yZWNvcmRfZ290by5j OjQzLioiICJ1cCB0byBmdW40Ig0KPiArICAgIGdkYl90ZXN0ICJ1cCIgIi4qbWFpbi4qYXQgJHtv cHRpb25hbF9maWxlcGF0aH1yZWNvcmRfZ290by5jOjQ5LioiICJ1cCB0byBtYWluIg0KPiArDQo+ ICsgICAgIyB0aGUgZnVuY3Rpb24gY2FsbCBoaXN0b3J5IHNob3VsZCBzdGFydCBhdCB0aGUgbmV3 IGxvY2F0aW9uDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnkg L2NpIC0iIFttdWx0aV9saW5lIFwNCj4gKwkiOVx0ICAgIGZ1bjNcdGluc3QgMjAsMjIiIFwNCj4g KwkiMTBcdCAgICAgIGZ1bjFcdGluc3QgMjMsMjYiIFwNCj4gKwkiMTFcdCAgICBmdW4zXHRpbnN0 IDI3LDI3IiBcDQo+ICsJXSAiZnVuY3Rpb24tY2FsbC1oaXN0b3J5IGZyb20gMjcgYmFja3dhcmRz Ig0KPiArDQo+ICsgICAgIyB0aGUgaW5zdHJ1Y3Rpb24gaGlzdG9yeSBzaG91bGQgc3RhcnQgYXQg dGhlIG5ldyBsb2NhdGlvbg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgaW5zdHJ1Y3Rpb24taGlz dG9yeSAtIiBbbXVsdGlfbGluZSBcDQo+ICsJIjI1LioiIFwNCj4gKwkiMjYuKiIgXA0KPiArCSIy Ny4qIiBcDQo+ICsJXSAiaW5zdHJ1Y3Rpb24taGlzdG9yeSBmcm9tIDI3IGJhY2t3YXJkcyINCj4g Kw0KPiArICAgICMgdGVzdCB0aGF0IHdlIGNhbiBnbyB0byB0aGUgYmVnaW4gb2YgdGhlIHRyYWNl DQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBnb3RvIGJlZ2luIiAiLiptYWluIFxcKFxcKSBhdCAk e29wdGlvbmFsX2ZpbGVwYXRofXJlY29yZF9nb3RvLmM6NDkuKiINCj4gKw0KPiArICAgICMgY2hl Y2sgdGhhdCB3ZSdyZSBmaWxsaW5nIHVwIHRoZSBjb250ZXh0IGNvcnJlY3RseQ0KPiArICAgIGdk Yl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC9jaSAtIiBbbXVsdGlfbGluZSBc DQo+ICsJIjFcdG1haW5cdGluc3QgMSwxIiBcDQo+ICsJIjJcdCAgZnVuNFx0aW5zdCAyLDQiIFwN Cj4gKwkiM1x0ICAgIGZ1bjFcdGluc3QgNSw4IiBcDQo+ICsJXSAiZnVuY3Rpb24tY2FsbC1oaXN0 b3J5IGZyb20gYmVnaW4gYmFja3dhcmRzIg0KPiArDQo+ICsgICAgIyBjaGVjayB0aGF0IHdlJ3Jl IGZpbGxpbmcgdXAgdGhlIGNvbnRleHQgY29ycmVjdGx5DQo+ICsgICAgZ2RiX3Rlc3QgInJlY29y ZCBpbnN0cnVjdGlvbi1oaXN0b3J5IC0iIFttdWx0aV9saW5lIFwNCj4gKwkiMS4qIiBcDQo+ICsJ IjIuKiIgXA0KPiArCSIzLioiIFwNCj4gKwldICJpbnN0cnVjdGlvbi1oaXN0b3J5IGZyb20gYmVn aW4gYmFja3dhcmRzIg0KPiArDQo+ICsgICAgIyB3ZSBzaG91bGQgZ2V0IHRoZSBleGFjdCBzYW1l IGhpc3RvcnkgZnJvbSB0aGUgZmlyc3QgaW5zdHJ1Y3Rpb24NCj4gKyAgICBnZGJfdGVzdCAicmVj b3JkIGdvdG8gMiIgIi4qZnVuNCBcXChcXCkgYXQgJHtvcHRpb25hbF9maWxlcGF0aH1yZWNvcmRf Z290by5jOjQwLioiDQo+ICsNCj4gKyAgICAjIGNoZWNrIHRoYXQgd2UncmUgZmlsbGluZyB1cCB0 aGUgY29udGV4dCBjb3JyZWN0bHkNCj4gKyAgICBnZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNh bGwtaGlzdG9yeSAvY2kgLSIgW211bHRpX2xpbmUgXA0KPiArCSIxXHRtYWluXHRpbnN0IDEsMSIg XA0KPiArCSIyXHQgIGZ1bjRcdGluc3QgMiw0IiBcDQo+ICsJIjNcdCAgICBmdW4xXHRpbnN0IDUs OCIgXA0KPiArCV0gImZ1bmN0aW9uLWNhbGwtaGlzdG9yeSBmcm9tIDIgYmFja3dhcmRzIg0KPiAr DQo+ICsgICAgIyBjaGVjayB0aGF0IHdlJ3JlIGZpbGxpbmcgdXAgdGhlIGNvbnRleHQgY29ycmVj dGx5DQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IC0iIFttdWx0 aV9saW5lIFwNCj4gKwkiMS4qIiBcDQo+ICsJIjIuKiIgXA0KPiArCSIzLioiIFwNCj4gKwldICJp bnN0cnVjdGlvbi1oaXN0b3J5IGZyb20gMiBiYWNrd2FyZHMiDQo+ICsNCj4gKyAgICAjIGNoZWNr IHRoYXQgd2UgY2FuIGdvIHRvIHRoZSBlbmQgb2YgdGhlIHRyYWNlDQo+ICsgICAgZ2RiX3Rlc3Qg InJlY29yZCBnb3RvIGVuZCIgIi4qbWFpbiBcXChcXCkgYXQgJHtvcHRpb25hbF9maWxlcGF0aH1y ZWNvcmRfZ290by5jOjUwLioiDQo+ICsNCj4gKyAgICAjIGNoZWNrIHRoYXQgd2UncmUgZmlsbGlu ZyB1cCB0aGUgY29udGV4dCBjb3JyZWN0bHkNCj4gKyAgICBnZGJfdGVzdCAicmVjb3JkIGZ1bmN0 aW9uLWNhbGwtaGlzdG9yeSAvY2kiIFttdWx0aV9saW5lIFwNCj4gKwkiMTRcdCAgICAgIGZ1bjJc dGluc3QgMzUsMzYiIFwNCj4gKwkiMTVcdCAgICBmdW4zXHRpbnN0IDM3LDM4IiBcDQo+ICsJIjE2 XHQgIGZ1bjRcdGluc3QgMzksNDAiIFwNCj4gKwldICJmdW5jdGlvbi1jYWxsLWhpc3RvcnkgZnJv bSBlbmQgZm9yd2FyZHMiDQo+ICsNCj4gKyAgICAjIGNoZWNrIHRoYXQgd2UncmUgZmlsbGluZyB1 cCB0aGUgY29udGV4dCBjb3JyZWN0bHkNCj4gKyAgICBnZGJfdGVzdCAicmVjb3JkIGluc3RydWN0 aW9uLWhpc3RvcnkiIFttdWx0aV9saW5lIFwNCj4gKwkiMzguKiIgXA0KPiArCSIzOS4qIiBcDQo+ ICsJIjQwLioiIFwNCj4gKwldICJpbnN0cnVjdGlvbi1oaXN0b3J5IGZyb20gZW5kIGZvcndhcmRz Ig0KPiArDQo+ICsgICAgIyB3ZSBzaG91bGQgZ2V0IHRoZSBleGFjdCBzYW1lIGhpc3RvcnkgZnJv bSB0aGUgc2Vjb25kIHRvIGxhc3QgaW5zdHJ1Y3Rpb24NCj4gKyAgICBnZGJfdGVzdCAicmVjb3Jk IGdvdG8gMzkiICIuKmZ1bjQgXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9cmVjb3JkX2dv dG8uYzo0NC4qIg0KPiArDQo+ICsgICAgIyBjaGVjayB0aGF0IHdlJ3JlIGZpbGxpbmcgdXAgdGhl IGNvbnRleHQgY29ycmVjdGx5DQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxs LWhpc3RvcnkgL2NpIiBbbXVsdGlfbGluZSBcDQo+ICsJIjE0XHQgICAgICBmdW4yXHRpbnN0IDM1 LDM2IiBcDQo+ICsJIjE1XHQgICAgZnVuM1x0aW5zdCAzNywzOCIgXA0KPiArCSIxNlx0ICBmdW40 XHRpbnN0IDM5LDQwIiBcDQo+ICsJXSAiZnVuY3Rpb24tY2FsbC1oaXN0b3J5IGZyb20gMzkgZm9y d2FyZHMiDQo+ICsNCj4gKyAgICAjIGNoZWNrIHRoYXQgd2UncmUgZmlsbGluZyB1cCB0aGUgY29u dGV4dCBjb3JyZWN0bHkNCj4gKyAgICBnZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3Rv cnkiIFttdWx0aV9saW5lIFwNCj4gKwkiMzguKiIgXA0KPiArCSIzOS4qIiBcDQo+ICsJIjQwLioi IFwNCj4gKwldICJpbnN0cnVjdGlvbi1oaXN0b3J5IGZyb20gMzkgZm9yd2FyZHMiDQo+ICAgfQ0K PiAtDQo+IC0jIFdoZW4gR0RCIHByaW50cyB0aGUgZmlsZSBmb3IgYSBzdG9wIGxvY2F0aW9uLCBp dCBtYXkgcHJpbnQgdGhlIGZ1bGwgcGF0aA0KPiAtIyBkZXBlbmRpbmcgb24gd2hhdCBpbmZvcm1h dGlvbiB0aGUgY29tcGlsZXIgYWRkZWQuICBUaGlzIHJlZ2V4cCBhbGxvd3MgZm9yDQo+IC0jIHRo YXQgcGF0aCB0byBiZSBwcmVzZW50LCBidXQgZG9lcyBub3QgcmVxdWlyZSBpdC4NCj4gLXNldCBv cHRpb25hbF9maWxlcGF0aCB7W15cbl0qfQ0KPiAtDQo+IC0jIHdlIHdhbnQgYSBzbWFsbCBjb250 ZXh0IHNpemVzIHRvIHNpbXBsaWZ5IHRoZSB0ZXN0DQo+IC1nZGJfdGVzdF9ub19vdXRwdXQgInNl dCByZWNvcmQgaW5zdHJ1Y3Rpb24taGlzdG9yeS1zaXplIDMiDQo+IC1nZGJfdGVzdF9ub19vdXRw dXQgInNldCByZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5LXNpemUgMyINCj4gLQ0KPiAtIyB0 cmFjZSB0aGUgY2FsbCB0byB0aGUgdGVzdCBmdW5jdGlvbg0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0 ICJyZWNvcmQgYnRyYWNlIg0KPiAtZ2RiX3Rlc3QgIm5leHQiDQo+IC0NCj4gLSMgc3RhcnQgYnkg bGlzdGluZyBhbGwgZnVuY3Rpb25zDQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwt aGlzdG9yeSAvY2kgMSwgKzIwIiBbbXVsdGlfbGluZSBcDQo+IC0gICIxXHRtYWluXHRpbnN0IDEs MSIgXA0KPiAtICAiMlx0ICBmdW40XHRpbnN0IDIsNCIgXA0KPiAtICAiM1x0ICAgIGZ1bjFcdGlu c3QgNSw4IiBcDQo+IC0gICI0XHQgIGZ1bjRcdGluc3QgOSw5IiBcDQo+IC0gICI1XHQgICAgZnVu Mlx0aW5zdCAxMCwxMiIgXA0KPiAtICAiNlx0ICAgICAgZnVuMVx0aW5zdCAxMywxNiIgXA0KPiAt ICAiN1x0ICAgIGZ1bjJcdGluc3QgMTcsMTgiIFwNCj4gLSAgIjhcdCAgZnVuNFx0aW5zdCAxOSwx OSIgXA0KPiAtICAiOVx0ICAgIGZ1bjNcdGluc3QgMjAsMjIiIFwNCj4gLSAgIjEwXHQgICAgICBm dW4xXHRpbnN0IDIzLDI2IiBcDQo+IC0gICIxMVx0ICAgIGZ1bjNcdGluc3QgMjcsMjciIFwNCj4g LSAgIjEyXHQgICAgICBmdW4yXHRpbnN0IDI4LDMwIiBcDQo+IC0gICIxM1x0ICAgICAgICBmdW4x XHRpbnN0IDMxLDM0IiBcDQo+IC0gICIxNFx0ICAgICAgZnVuMlx0aW5zdCAzNSwzNiIgXA0KPiAt ICAiMTVcdCAgICBmdW4zXHRpbnN0IDM3LDM4IiBcDQo+IC0gICIxNlx0ICBmdW40XHRpbnN0IDM5 LDQwIiBcDQo+IC0gIF0NCj4gLQ0KPiAtIyBsZXQncyBzZWUgaWYgd2UgY2FuIGdvIGJhY2sgaW4g aGlzdG9yeQ0KPiAtZ2RiX3Rlc3QgInJlY29yZCBnb3RvIDE5IiAiLipmdW40IFxcKFxcKSBhdCAk e29wdGlvbmFsX2ZpbGVwYXRofXJlY29yZF9nb3RvLmM6NDMuKiINCj4gLQ0KPiAtIyB0aGUgZnVu Y3Rpb24gY2FsbCBoaXN0b3J5IHNob3VsZCBzdGFydCBhdCB0aGUgbmV3IGxvY2F0aW9uDQo+IC1n ZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAvY2kiIFttdWx0aV9saW5lIFwN Cj4gLSAgIjhcdCAgZnVuNFx0aW5zdCAxOSwxOSIgXA0KPiAtICAiOVx0ICAgIGZ1bjNcdGluc3Qg MjAsMjIiIFwNCj4gLSAgIjEwXHQgICAgICBmdW4xXHRpbnN0IDIzLDI2IiBcDQo+IC0gIF0gImZ1 bmN0aW9uLWNhbGwtaGlzdG9yeSBmcm9tIDE5IGZvcndhcmRzIg0KPiAtDQo+IC0jIHRoZSBpbnN0 cnVjdGlvbiBoaXN0b3J5IHNob3VsZCBzdGFydCBhdCB0aGUgbmV3IGxvY2F0aW9uDQo+IC1nZGJf dGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3RvcnkiIFttdWx0aV9saW5lIFwNCj4gLSAgIjE5 LioiIFwNCj4gLSAgIjIwLioiIFwNCj4gLSAgIjIxLioiIFwNCj4gLSAgXSAiaW5zdHJ1Y3Rpb24t aGlzdG9yeSBmcm9tIDE5IGZvcndhcmRzIg0KPiAtDQo+IC0jIGxldCdzIGdvIHRvIGFub3RoZXIg cGxhY2UgaW4gdGhlIGhpc3RvcnkNCj4gLWdkYl90ZXN0ICJyZWNvcmQgZ290byAyNyIgIi4qZnVu MyBcXChcXCkgYXQgJHtvcHRpb25hbF9maWxlcGF0aH1yZWNvcmRfZ290by5jOjM1LioiDQo+IC0N Cj4gLSMgY2hlY2sgdGhlIGJhY2sgdHJhY2UgYXQgdGhhdCBsb2NhdGlvbg0KPiAtZ2RiX3Rlc3Qg ImJhY2t0cmFjZSIgW211bHRpX2xpbmUgXA0KPiAtICAiIzAuKmZ1bjMuKmF0ICR7b3B0aW9uYWxf ZmlsZXBhdGh9cmVjb3JkX2dvdG8uYzozNS4qIiBcDQo+IC0gICIjMS4qZnVuNC4qYXQgJHtvcHRp b25hbF9maWxlcGF0aH1yZWNvcmRfZ290by5jOjQzLioiIFwNCj4gLSAgIiMyLiptYWluLiphdCAk e29wdGlvbmFsX2ZpbGVwYXRofXJlY29yZF9nb3RvLmM6NDkuKiIgXA0KPiAtICAiQmFja3RyYWNl IHN0b3BwZWQ6IG5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9yIG1lbW9yeSBhdmFpbGFibGUgdG8gdW53 aW5kIGZ1cnRoZXIiIFwNCj4gLSAgXQ0KPiAtDQo+IC0jIHdhbGsgdGhlIGJhY2t0cmFjZQ0KPiAt Z2RiX3Rlc3QgInVwIiAiLipmdW40LiphdCAke29wdGlvbmFsX2ZpbGVwYXRofXJlY29yZF9nb3Rv LmM6NDMuKiIgInVwIHRvIGZ1bjQiDQo+IC1nZGJfdGVzdCAidXAiICIuKm1haW4uKmF0ICR7b3B0 aW9uYWxfZmlsZXBhdGh9cmVjb3JkX2dvdG8uYzo0OS4qIiAidXAgdG8gbWFpbiINCj4gLQ0KPiAt IyB0aGUgZnVuY3Rpb24gY2FsbCBoaXN0b3J5IHNob3VsZCBzdGFydCBhdCB0aGUgbmV3IGxvY2F0 aW9uDQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAvY2kgLSIgW211 bHRpX2xpbmUgXA0KPiAtICAiOVx0ICAgIGZ1bjNcdGluc3QgMjAsMjIiIFwNCj4gLSAgIjEwXHQg ICAgICBmdW4xXHRpbnN0IDIzLDI2IiBcDQo+IC0gICIxMVx0ICAgIGZ1bjNcdGluc3QgMjcsMjci IFwNCj4gLSAgXSAiZnVuY3Rpb24tY2FsbC1oaXN0b3J5IGZyb20gMjcgYmFja3dhcmRzIg0KPiAt DQo+IC0jIHRoZSBpbnN0cnVjdGlvbiBoaXN0b3J5IHNob3VsZCBzdGFydCBhdCB0aGUgbmV3IGxv Y2F0aW9uDQo+IC1nZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3RvcnkgLSIgW211bHRp X2xpbmUgXA0KPiAtICAiMjUuKiIgXA0KPiAtICAiMjYuKiIgXA0KPiAtICAiMjcuKiIgXA0KPiAt ICBdICJpbnN0cnVjdGlvbi1oaXN0b3J5IGZyb20gMjcgYmFja3dhcmRzIg0KPiAtDQo+IC0jIHRl c3QgdGhhdCB3ZSBjYW4gZ28gdG8gdGhlIGJlZ2luIG9mIHRoZSB0cmFjZQ0KPiAtZ2RiX3Rlc3Qg InJlY29yZCBnb3RvIGJlZ2luIiAiLiptYWluIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRo fXJlY29yZF9nb3RvLmM6NDkuKiINCj4gLQ0KPiAtIyBjaGVjayB0aGF0IHdlJ3JlIGZpbGxpbmcg dXAgdGhlIGNvbnRleHQgY29ycmVjdGx5DQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNh bGwtaGlzdG9yeSAvY2kgLSIgW211bHRpX2xpbmUgXA0KPiAtICAiMVx0bWFpblx0aW5zdCAxLDEi IFwNCj4gLSAgIjJcdCAgZnVuNFx0aW5zdCAyLDQiIFwNCj4gLSAgIjNcdCAgICBmdW4xXHRpbnN0 IDUsOCIgXA0KPiAtICBdICJmdW5jdGlvbi1jYWxsLWhpc3RvcnkgZnJvbSBiZWdpbiBiYWNrd2Fy ZHMiDQo+IC0NCj4gLSMgY2hlY2sgdGhhdCB3ZSdyZSBmaWxsaW5nIHVwIHRoZSBjb250ZXh0IGNv cnJlY3RseQ0KPiAtZ2RiX3Rlc3QgInJlY29yZCBpbnN0cnVjdGlvbi1oaXN0b3J5IC0iIFttdWx0 aV9saW5lIFwNCj4gLSAgIjEuKiIgXA0KPiAtICAiMi4qIiBcDQo+IC0gICIzLioiIFwNCj4gLSAg XSAiaW5zdHJ1Y3Rpb24taGlzdG9yeSBmcm9tIGJlZ2luIGJhY2t3YXJkcyINCj4gLQ0KPiAtIyB3 ZSBzaG91bGQgZ2V0IHRoZSBleGFjdCBzYW1lIGhpc3RvcnkgZnJvbSB0aGUgZmlyc3QgaW5zdHJ1 Y3Rpb24NCj4gLWdkYl90ZXN0ICJyZWNvcmQgZ290byAyIiAiLipmdW40IFxcKFxcKSBhdCAke29w dGlvbmFsX2ZpbGVwYXRofXJlY29yZF9nb3RvLmM6NDAuKiINCj4gLQ0KPiAtIyBjaGVjayB0aGF0 IHdlJ3JlIGZpbGxpbmcgdXAgdGhlIGNvbnRleHQgY29ycmVjdGx5DQo+IC1nZGJfdGVzdCAicmVj b3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAvY2kgLSIgW211bHRpX2xpbmUgXA0KPiAtICAiMVx0 bWFpblx0aW5zdCAxLDEiIFwNCj4gLSAgIjJcdCAgZnVuNFx0aW5zdCAyLDQiIFwNCj4gLSAgIjNc dCAgICBmdW4xXHRpbnN0IDUsOCIgXA0KPiAtICBdICJmdW5jdGlvbi1jYWxsLWhpc3RvcnkgZnJv bSAyIGJhY2t3YXJkcyINCj4gLQ0KPiAtIyBjaGVjayB0aGF0IHdlJ3JlIGZpbGxpbmcgdXAgdGhl IGNvbnRleHQgY29ycmVjdGx5DQo+IC1nZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3Rv cnkgLSIgW211bHRpX2xpbmUgXA0KPiAtICAiMS4qIiBcDQo+IC0gICIyLioiIFwNCj4gLSAgIjMu KiIgXA0KPiAtICBdICJpbnN0cnVjdGlvbi1oaXN0b3J5IGZyb20gMiBiYWNrd2FyZHMiDQo+IC0N Cj4gLSMgY2hlY2sgdGhhdCB3ZSBjYW4gZ28gdG8gdGhlIGVuZCBvZiB0aGUgdHJhY2UNCj4gLWdk Yl90ZXN0ICJyZWNvcmQgZ290byBlbmQiICIuKm1haW4gXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmls ZXBhdGh9cmVjb3JkX2dvdG8uYzo1MC4qIg0KPiAtDQo+IC0jIGNoZWNrIHRoYXQgd2UncmUgZmls bGluZyB1cCB0aGUgY29udGV4dCBjb3JyZWN0bHkNCj4gLWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rp b24tY2FsbC1oaXN0b3J5IC9jaSIgW211bHRpX2xpbmUgXA0KPiAtICAiMTRcdCAgICAgIGZ1bjJc dGluc3QgMzUsMzYiIFwNCj4gLSAgIjE1XHQgICAgZnVuM1x0aW5zdCAzNywzOCIgXA0KPiAtICAi MTZcdCAgZnVuNFx0aW5zdCAzOSw0MCIgXA0KPiAtICBdICJmdW5jdGlvbi1jYWxsLWhpc3Rvcnkg ZnJvbSBlbmQgZm9yd2FyZHMiDQo+IC0NCj4gLSMgY2hlY2sgdGhhdCB3ZSdyZSBmaWxsaW5nIHVw IHRoZSBjb250ZXh0IGNvcnJlY3RseQ0KPiAtZ2RiX3Rlc3QgInJlY29yZCBpbnN0cnVjdGlvbi1o aXN0b3J5IiBbbXVsdGlfbGluZSBcDQo+IC0gICIzOC4qIiBcDQo+IC0gICIzOS4qIiBcDQo+IC0g ICI0MC4qIiBcDQo+IC0gIF0gImluc3RydWN0aW9uLWhpc3RvcnkgZnJvbSBlbmQgZm9yd2FyZHMi DQo+IC0NCj4gLSMgd2Ugc2hvdWxkIGdldCB0aGUgZXhhY3Qgc2FtZSBoaXN0b3J5IGZyb20gdGhl IHNlY29uZCB0byBsYXN0IGluc3RydWN0aW9uDQo+IC1nZGJfdGVzdCAicmVjb3JkIGdvdG8gMzki ICIuKmZ1bjQgXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9cmVjb3JkX2dvdG8uYzo0NC4q Ig0KPiAtDQo+IC0jIGNoZWNrIHRoYXQgd2UncmUgZmlsbGluZyB1cCB0aGUgY29udGV4dCBjb3Jy ZWN0bHkNCj4gLWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC9jaSIgW211 bHRpX2xpbmUgXA0KPiAtICAiMTRcdCAgICAgIGZ1bjJcdGluc3QgMzUsMzYiIFwNCj4gLSAgIjE1 XHQgICAgZnVuM1x0aW5zdCAzNywzOCIgXA0KPiAtICAiMTZcdCAgZnVuNFx0aW5zdCAzOSw0MCIg XA0KPiAtICBdICJmdW5jdGlvbi1jYWxsLWhpc3RvcnkgZnJvbSAzOSBmb3J3YXJkcyINCj4gLQ0K PiAtIyBjaGVjayB0aGF0IHdlJ3JlIGZpbGxpbmcgdXAgdGhlIGNvbnRleHQgY29ycmVjdGx5DQo+ IC1nZGJfdGVzdCAicmVjb3JkIGluc3RydWN0aW9uLWhpc3RvcnkiIFttdWx0aV9saW5lIFwNCj4g LSAgIjM4LioiIFwNCj4gLSAgIjM5LioiIFwNCj4gLSAgIjQwLioiIFwNCj4gLSAgXSAiaW5zdHJ1 Y3Rpb24taGlzdG9yeSBmcm9tIDM5IGZvcndhcmRzIg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYnRyYWNlL3JuLWRsLWJpbmQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNl L3JuLWRsLWJpbmQuZXhwDQo+IGluZGV4IDc1NmJlMmZlNDA0Li5mOTdhMWRlMjlkMSAxMDA2NDQN Cj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3JuLWRsLWJpbmQuZXhwDQo+ICsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9ybi1kbC1iaW5kLmV4cA0KPiBAQCAtMjEsNDIgKzIx LDUxIEBADQo+ICAgIyBUZXN0IHRoYXQgd2UgY2FuIHJldmVyc2UtbmV4dCBvdmVyIHRoZSBkeW5h bWljIGxpbmtlcidzIHN5bWJvbA0KPiAgICMgbG9va3VwIGNvZGUuDQo+ICAgDQo+IC1yZXF1aXJl IGFsbG93X2J0cmFjZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlDQo+ ICAgDQo+ICAgc3RhbmRhcmRfdGVzdGZpbGUNCj4gLWlmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJm YWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIFwNCj4gLQl7ZGVidWcgbGRmbGFn cz0tV2wsLXosbGF6eX1dIHsNCj4gLSAgICByZXR1cm4gLTENCj4gLX0NCj4gICANCj4gLWlmICFb cnVudG9fbWFpbl0gew0KPiAraWYgW2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0byBwcmVwYXJl IiAkdGVzdGZpbGUgJHNyY2ZpbGUgXA0KPiArCXtjKysgZGVidWcgbGRmbGFncz0tV2wsLXosbGF6 eX1dIHsNCj4gICAgICAgcmV0dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiAtIyB0cmFjZSB0aGUgY29k ZSBmb3IgdGhlIGNhbGwgdG8gdGVzdA0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRy YWNlIg0KPiAtZ2RiX3Rlc3QgIm5leHQiICIuKm1haW5cLjIuKiINCj4gK2ZvcmVhY2hfd2l0aF9w cmVmaXggbWV0aG9kIHsiYnRzIiAicHQifSB7DQo+ICsgICAgaWYgeyAhW2FsbG93X2J0cmFjZV90 ZXN0cyAkbWV0aG9kXSB9IHsNCj4gKwl1bnN1cHBvcnRlZCAidGFyZ2V0IGRvZXMgbm90IHN1cHBv cnQgcmVjb3JkLWJ0cmFjZSAke21ldGhvZH0iDQo+ICsJY29udGludWUNCj4gKyAgICB9DQo+ICsg ICAgY2xlYW5fcmVzdGFydCAiJHt0ZXN0ZmlsZX0iDQo+ICAgDQo+IC0jIGp1c3QgZHVtcCB0aGUg ZnVuY3Rpb24tY2FsbC1oaXN0b3J5IHRvIGhlbHAgZGVidWdnaW5nDQo+IC1nZGJfdGVzdF9ub19v dXRwdXQgInNldCByZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5LXNpemUgMCINCj4gLWdkYl90 ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC9jbGkgMSIgIi4qIg0KPiArICAgIGlm ICFbcnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAtIyBjaGVj ayB0aGF0IHdlIGNhbiByZXZlcnNlLW5leHQgYW5kIG5leHQNCj4gLXdpdGhfdGVzdF9wcmVmaXgg Im1haW4iIHsNCj4gLSAgICBnZGJfdGVzdCAicmV2ZXJzZS1uZXh0IiAiLiptYWluXC4xLioiDQo+ ICsgICAgIyB0cmFjZSB0aGUgY29kZSBmb3IgdGhlIGNhbGwgdG8gdGVzdA0KPiArICAgIGdkYl90 ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iDQo+ICAgICAgIGdkYl90ZXN0 ICJuZXh0IiAiLiptYWluXC4yLioiDQo+IC19DQo+ICAgDQo+IC0jIG5vdyBnbyBpbnRvIHRlc3Qg YW5kIHRyeSB0byAocmV2ZXJzZS0pbmV4dCBvdmVyIHRoZSBsaWJyYXJ5IGNhbGwNCj4gLSMNCj4g LSMgcmV2ZXJzZS1zdGVwcGluZyB0aHJvdWdoIHRoZSBlcGlsb2d1ZSBpcyBub3QgdmVyeSByZWxp YWJsZTsgZGVwZW5kaW5nIG9uDQo+IC0jIGRlYnVnIGluZm9ybWF0aW9uIHdlIG1heSBzdG9wIGF0 IHRoZSBjbG9zaW5nIGJyYWNlIG9yIGF0IHRoZSByZXR1cm4uDQo+IC0jDQo+IC0jIGluc3RlYWQs IHJ1biB0byB0ZXN0DQo+IC1nZGJfYnJlYWtwb2ludCB0ZXN0IHt0ZW1wb3Jhcnl9DQo+IC1nZGJf dGVzdCAicmV2ZXJzZS1jb250aW51ZSIgIi4qdGVzdFwuMS4qIg0KPiArICAgICMganVzdCBkdW1w IHRoZSBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgdG8gaGVscCBkZWJ1Z2dpbmcNCj4gKyAgICBnZGJf dGVzdF9ub19vdXRwdXQgInNldCByZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5LXNpemUgMCIN Cj4gKyAgICBnZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAvY2xpIDEiICIu KiINCj4gKw0KPiArICAgICMgY2hlY2sgdGhhdCB3ZSBjYW4gcmV2ZXJzZS1uZXh0IGFuZCBuZXh0 DQo+ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAibWFpbiIgew0KPiArCWdkYl90ZXN0ICJyZXZlcnNl LW5leHQiICIuKm1haW5cLjEuKiINCj4gKwlnZGJfdGVzdCAibmV4dCIgIi4qbWFpblwuMi4qIg0K PiArICAgIH0NCj4gKw0KPiArICAgICMgbm93IGdvIGludG8gdGVzdCBhbmQgdHJ5IHRvIChyZXZl cnNlLSluZXh0IG92ZXIgdGhlIGxpYnJhcnkgY2FsbA0KPiArICAgICMNCj4gKyAgICAjIHJldmVy c2Utc3RlcHBpbmcgdGhyb3VnaCB0aGUgZXBpbG9ndWUgaXMgbm90IHZlcnkgcmVsaWFibGU7IGRl cGVuZGluZyBvbg0KPiArICAgICMgZGVidWcgaW5mb3JtYXRpb24gd2UgbWF5IHN0b3AgYXQgdGhl IGNsb3NpbmcgYnJhY2Ugb3IgYXQgdGhlIHJldHVybi4NCj4gKyAgICAjDQo+ICsgICAgIyBpbnN0 ZWFkLCBydW4gdG8gdGVzdA0KPiArICAgIGdkYl9icmVha3BvaW50IHRlc3Qge3RlbXBvcmFyeX0N Cj4gKyAgICBnZGJfdGVzdCAicmV2ZXJzZS1jb250aW51ZSIgIi4qdGVzdFwuMS4qIg0KPiAgIA0K PiAtd2l0aF90ZXN0X3ByZWZpeCAidGVzdCIgew0KPiAtICAgIGdkYl90ZXN0ICJuZXh0IiAiLip0 ZXN0XC4yLioiDQo+IC0gICAgZ2RiX3Rlc3QgInJldmVyc2UtbmV4dCIgIi4qdGVzdFwuMS4qIg0K PiArICAgIHdpdGhfdGVzdF9wcmVmaXggInRlc3QiIHsNCj4gKwlnZGJfdGVzdCAibmV4dCIgIi4q dGVzdFwuMi4qIg0KPiArCWdkYl90ZXN0ICJyZXZlcnNlLW5leHQiICIuKnRlc3RcLjEuKiINCj4g KyAgICB9DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3Nl Z3YuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3NlZ3YuZXhwDQo+IGluZGV4IDk4MDRi OTNhODc3Li5jMzMwMDkzZjBkNCAxMDA2NDQNCj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRy YWNlL3NlZ3YuZXhwDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9zZWd2LmV4cA0K PiBAQCAtMTcsMjcgKzE3LDM1IEBADQo+ICAgIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u DQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93X2J0cmFjZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRf c3VwcG9ydHNfYnRyYWNlDQo+ICAgDQo+ICAgc3RhbmRhcmRfdGVzdGZpbGUNCj4gLWlmIFtwcmVw YXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlXSB7 DQo+IC0gICAgcmV0dXJuIC0xDQo+IC19DQo+IC1pZiAhW3J1bnRvX21haW5dIHsNCj4gK2lmIFti dWlsZF9leGVjdXRhYmxlICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlXSB7 DQo+ICAgICAgIHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLSMgdHJhY2UgdGhlIHRlc3QgY29k ZQ0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlIg0KPiAtZ2RiX3Rlc3QgImNv bnRpbnVlIiBbbXVsdGlfbGluZSBcDQo+IC0gICJQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdT RUdWLCBTZWdtZW50YXRpb24gZmF1bHRcLiIgXA0KPiAtICAiMHgwKiBpbiBcXFw/XFxcPyBcXFwo XFxcKSIgXA0KPiAtICBdICJjb250IHRvIHNlZ3YiDQo+ICtmb3JlYWNoX3dpdGhfcHJlZml4IG1l dGhvZCB7ImJ0cyIgInB0In0gew0KPiArICAgIGlmIHsgIVthbGxvd19idHJhY2VfdGVzdHMgJG1l dGhvZF0gfSB7DQo+ICsJdW5zdXBwb3J0ZWQgInRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IHJlY29y ZC1idHJhY2UgJHttZXRob2R9Ig0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiArICAgIGNsZWFu X3Jlc3RhcnQgIiR7dGVzdGZpbGV9Ig0KPiArICAgIGlmICFbcnVudG9fbWFpbl0gew0KPiArCWNv bnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAtIyB3ZSBjYW5ub3QgZG8gYW55IGhpZ2gtbGV2ZWwg c3RlcHBpbmcNCj4gLWdkYl90ZXN0ICJyZXZlcnNlLWZpbmlzaCIgIkNhbm5vdCBmaW5kIGJvdW5k cyBvZiBjdXJyZW50IGZ1bmN0aW9uIg0KPiAtZ2RiX3Rlc3QgInJldmVyc2UtbmV4dCIgIkNhbm5v dCBmaW5kIGJvdW5kcyBvZiBjdXJyZW50IGZ1bmN0aW9uIg0KPiAtZ2RiX3Rlc3QgInJldmVyc2Ut c3RlcCIgIkNhbm5vdCBmaW5kIGJvdW5kcyBvZiBjdXJyZW50IGZ1bmN0aW9uIg0KPiArICAgICMg dHJhY2UgdGhlIHRlc3QgY29kZQ0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0 cmFjZSAke21ldGhvZH0iDQo+ICsgICAgZ2RiX3Rlc3QgImNvbnRpbnVlIiBbbXVsdGlfbGluZSBc DQo+ICsJIlByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJR1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVs dFwuIiBcDQo+ICsJIjB4MCogaW4gXFxcP1xcXD8gXFxcKFxcXCkiIFwNCj4gKyAgICBdICJjb250 IHRvIHNlZ3YiDQo+ICAgDQo+IC0jIGJ1dCB3ZSBjYW4gZG8gaW5zdHJ1Y3Rpb24gc3RlcHBpbmcN Cj4gLWdkYl90ZXN0ICJyZXZlcnNlLXN0ZXBpIiAidGVzdFwuY2FsbFxbXlxcXHJcXFxuXF0qIg0K PiArICAgICMgd2UgY2Fubm90IGRvIGFueSBoaWdoLWxldmVsIHN0ZXBwaW5nDQo+ICsgICAgZ2Ri X3Rlc3QgInJldmVyc2UtZmluaXNoIiAiQ2Fubm90IGZpbmQgYm91bmRzIG9mIGN1cnJlbnQgZnVu Y3Rpb24iDQo+ICsgICAgZ2RiX3Rlc3QgInJldmVyc2UtbmV4dCIgIkNhbm5vdCBmaW5kIGJvdW5k cyBvZiBjdXJyZW50IGZ1bmN0aW9uIg0KPiArICAgIGdkYl90ZXN0ICJyZXZlcnNlLXN0ZXAiICJD YW5ub3QgZmluZCBib3VuZHMgb2YgY3VycmVudCBmdW5jdGlvbiINCj4gKw0KPiArICAgICMgYnV0 IHdlIGNhbiBkbyBpbnN0cnVjdGlvbiBzdGVwcGluZw0KPiArICAgIGdkYl90ZXN0ICJyZXZlcnNl LXN0ZXBpIiAidGVzdFwuY2FsbFxbXlxcXHJcXFxuXF0qIg0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3N0ZXAuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRy YWNlL3N0ZXAuZXhwDQo+IGluZGV4IDBhZGMxOGJkOTI0Li42ZDM2YTczZjczNSAxMDA2NDQNCj4g LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3N0ZXAuZXhwDQo+ICsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJ0cmFjZS9zdGVwLmV4cA0KPiBAQCAtMTcsMzIgKzE3LDQwIEBADQo+ICAgIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93X2J0cmFj ZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlDQo+ICAgDQo+ICAgc3Rh bmRhcmRfdGVzdGZpbGUgcmVjb3JkX2dvdG8uYw0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rlc3Rpbmcg ImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4gLSAgICByZXR1cm4g LTENCj4gLX0NCj4gICANCj4gLWlmICFbcnVudG9fbWFpbl0gew0KPiAraWYgW2J1aWxkX2V4ZWN1 dGFibGUgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4gICAgICAg cmV0dXJuIC0xDQo+ICAgfQ0KPiAgIA0KPiAtIyB0cmFjZSB0aGUgY2FsbCB0byB0aGUgdGVzdCBm dW5jdGlvbg0KPiAtd2l0aF90ZXN0X3ByZWZpeCAicmVjb3JkIiB7DQo+IC0gICAgZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlIg0KPiAtICAgIGdkYl90ZXN0ICJuZXh0Ig0KPiAtfQ0K PiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAgICBpZiB7 ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVkICJ0YXJn ZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwljb250aW51 ZQ0KPiArICAgIH0NCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIke3Rlc3RmaWxlfSINCj4gKyAgICBp ZiAhW3J1bnRvX21haW5dIHsNCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKw0KPiArICAgICMg dHJhY2UgdGhlIGNhbGwgdG8gdGhlIHRlc3QgZnVuY3Rpb24NCj4gKyAgICB3aXRoX3Rlc3RfcHJl Zml4ICJyZWNvcmQiIHsNCj4gKwlnZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UgJHtt ZXRob2R9Ig0KPiArCWdkYl90ZXN0ICJuZXh0Ig0KPiArICAgIH0NCj4gICANCj4gLSMgbGV0J3Mg c3RlcCBhcm91bmQgYSBiaXQNCj4gLXdpdGhfdGVzdF9wcmVmaXggInJlcGxheSIgew0KPiAtICAg IGdkYl90ZXN0ICJyZXZlcnNlLW5leHQiICIuKm1haW5cLjIuKiIgInJldmVyc2UtbmV4dC4xIg0K PiAtICAgIGdkYl90ZXN0ICJzdGVwIiAiLipmdW40XC4yLioiICJzdGVwLjEiDQo+IC0gICAgZ2Ri X3Rlc3QgIm5leHQiICIuKmZ1bjRcLjMuKiIgIm5leHQuMSINCj4gLSAgICBnZGJfdGVzdCAic3Rl cCIgIi4qZnVuMlwuMi4qIiAic3RlcC4yIg0KPiAtICAgIGdkYl90ZXN0ICJmaW5pc2giICIuKmZ1 bjRcLjQuKiIgImZpbmlzaC4xIg0KPiAtICAgIGdkYl90ZXN0ICJyZXZlcnNlLXN0ZXAiICIuKmZ1 bjJcLjMuKiIgInJldmVyc2Utc3RlcC4xIg0KPiAtICAgIGdkYl90ZXN0ICJyZXZlcnNlLWZpbmlz aCIgIi4qZnVuNFwuMy4qIiAicmV2ZXJzZS1maW5pc2guMSINCj4gLSAgICBnZGJfdGVzdCAicmV2 ZXJzZS1uZXh0IiAiLipmdW40XC4yLioiICJyZXZlcnNlLW5leHQuMiINCj4gLSAgICBnZGJfdGVz dCAicmV2ZXJzZS1maW5pc2giICIuKm1haW5cLjIuKiIgInJldmVyc2UtZmluaXNoLjIiDQo+ICsg ICAgIyBsZXQncyBzdGVwIGFyb3VuZCBhIGJpdA0KPiArICAgIHdpdGhfdGVzdF9wcmVmaXggInJl cGxheSIgew0KPiArCWdkYl90ZXN0ICJyZXZlcnNlLW5leHQiICIuKm1haW5cLjIuKiIgInJldmVy c2UtbmV4dC4xIg0KPiArCWdkYl90ZXN0ICJzdGVwIiAiLipmdW40XC4yLioiICJzdGVwLjEiDQo+ ICsJZ2RiX3Rlc3QgIm5leHQiICIuKmZ1bjRcLjMuKiIgIm5leHQuMSINCj4gKwlnZGJfdGVzdCAi c3RlcCIgIi4qZnVuMlwuMi4qIiAic3RlcC4yIg0KPiArCWdkYl90ZXN0ICJmaW5pc2giICIuKmZ1 bjRcLjQuKiIgImZpbmlzaC4xIg0KPiArCWdkYl90ZXN0ICJyZXZlcnNlLXN0ZXAiICIuKmZ1bjJc LjMuKiIgInJldmVyc2Utc3RlcC4xIg0KPiArCWdkYl90ZXN0ICJyZXZlcnNlLWZpbmlzaCIgIi4q ZnVuNFwuMy4qIiAicmV2ZXJzZS1maW5pc2guMSINCj4gKwlnZGJfdGVzdCAicmV2ZXJzZS1uZXh0 IiAiLipmdW40XC4yLioiICJyZXZlcnNlLW5leHQuMiINCj4gKwlnZGJfdGVzdCAicmV2ZXJzZS1m aW5pc2giICIuKm1haW5cLjIuKiIgInJldmVyc2UtZmluaXNoLjIiDQo+ICsgICAgfQ0KPiAgIH0N Cj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9zdGVwaS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5idHJhY2Uvc3RlcGkuZXhwDQo+IGluZGV4IGE3MGE1YWRmMDQ2Li4zYjMz YWUzMTA2YyAxMDA2NDQNCj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3N0ZXBpLmV4 cA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2Uvc3RlcGkuZXhwDQo+IEBAIC0xNyw3 ICsxNyw3IEBADQo+ICAgIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1y ZXF1aXJlIGFsbG93X2J0cmFjZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRy YWNlDQo+ICAgDQo+ICAgIyBUaGlzIHRlc3QgaXMgc3RlcHBpbmcgb24gaW5zdHJ1Y3Rpb24gbGV2 ZWwuICBUbyBndWFyYW50ZWUgdGhhdCB3ZSBhbHdheXMNCj4gICAjIGdldCB0aGUgc2FtZSBleGVj dXRpb24gdHJhY2UsIHdlIHVzZSBhbiBhc3NlbWJseSBzb3VyY2UgZmlsZS4NCj4gQEAgLTQxLDEx ICs0MSw3IEBAIGlmIFtpbmZvIGV4aXN0cyBDT01QSUxFXSB7DQo+ICAgICAgIHJldHVybiAtMQ0K PiAgIH0NCj4gICANCj4gLWlmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFy ZSIgJHRlc3RmaWxlICRzcmNmaWxlIHt9XSB7DQo+IC0gICAgcmV0dXJuIC0xDQo+IC19DQo+IC0N Cj4gLWlmICFbcnVudG9fbWFpbl0gew0KPiAraWYgW2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0 byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGVdIHsNCj4gICAgICAgcmV0dXJuIC0xDQo+ICAg fQ0KPiAgIA0KPiBAQCAtNjAsMTE5ICs1NiwxMzAgQEAgcHJvYyBjaGVja19yZXBsYXlfYXQgeyBp bnNuIH0gew0KPiAgICAgICBdICJjaGVjayByZXBsYXkgYXQgJGluc24iDQo+ICAgfQ0KPiAgIA0K PiAtIyB0cmFjZSB0aGUgY2FsbCB0byB0aGUgdGVzdCBmdW5jdGlvbg0KPiAtd2l0aF90ZXN0X3By ZWZpeCAicmVjb3JkIiB7DQo+IC0gICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNl Ig0KPiAtICAgIGdkYl90ZXN0ICJuZXh0IiAiLioiICJuZXh0LjEiDQo+IC19DQo+ICtmb3JlYWNo X3dpdGhfcHJlZml4IG1ldGhvZCB7ImJ0cyIgInB0In0gew0KPiArICAgIGlmIHsgIVthbGxvd19i dHJhY2VfdGVzdHMgJG1ldGhvZF0gfSB7DQo+ICsJdW5zdXBwb3J0ZWQgInRhcmdldCBkb2VzIG5v dCBzdXBwb3J0IHJlY29yZC1idHJhY2UgJHttZXRob2R9Ig0KPiArCWNvbnRpbnVlDQo+ICsgICAg fQ0KPiArICAgIGNsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9Ig0KPiArICAgIGlmICFbcnVudG9f bWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAtIyB3ZSBzdGFydCB3aXRo IHN0ZXBwaW5nIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSB0cmFjZSBpcyBmZXRjaGVkIGF1dG9tYXRp Y2FsbHkNCj4gLXdpdGhfdGVzdF9wcmVmaXggImZldGNoIiB7DQo+IC0gICAgZ2RiX3Rlc3QgInJl dmVyc2Utc3RlcGkiICIuKmZ1bjRcLjUuKiIgInJldmVyc2Utc3RlcGkuMSINCj4gLSAgICBnZGJf dGVzdCAicmV2ZXJzZS1zdGVwaSIgIi4qZnVuNFwuNS4qIiAicmV2ZXJzZS1zdGVwaS4yIg0KPiAr ICAgICMgdHJhY2UgdGhlIGNhbGwgdG8gdGhlIHRlc3QgZnVuY3Rpb24NCj4gKyAgICB3aXRoX3Rl c3RfcHJlZml4ICJyZWNvcmQiIHsNCj4gKwlnZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJh Y2UgJHttZXRob2R9Ig0KPiArCWdkYl90ZXN0ICJuZXh0IiAiLioiICJuZXh0LjEiDQo+ICsgICAg fQ0KPiAgIA0KPiAtICAgICMgbGV0J3MgY2hlY2sgd2hlcmUgd2UgYXJlIGluIHRoZSB0cmFjZQ0K PiAtICAgIGNoZWNrX3JlcGxheV9hdCAzOQ0KPiAtfQ0KPiArICAgICMgd2Ugc3RhcnQgd2l0aCBz dGVwcGluZyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgdHJhY2UgaXMgZmV0Y2hlZCBhdXRvbWF0aWNh bGx5DQo+ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAiZmV0Y2giIHsNCj4gKwlnZGJfdGVzdCAicmV2 ZXJzZS1zdGVwaSIgIi4qZnVuNFwuNS4qIiAicmV2ZXJzZS1zdGVwaS4xIg0KPiArCWdkYl90ZXN0 ICJyZXZlcnNlLXN0ZXBpIiAiLipmdW40XC41LioiICJyZXZlcnNlLXN0ZXBpLjIiDQo+ICAgDQo+ IC0jIGxldCdzIHN0ZXAgZm9yd2FyZCBhbmQgY2hlY2sgYWdhaW4NCj4gLXdpdGhfdGVzdF9wcmVm aXggInN0ZXBpIiB7DQo+IC0gICAgZ2RiX3Rlc3QgInN0ZXBpIiAiLipmdW40XC41LioiDQo+IC0g ICAgY2hlY2tfcmVwbGF5X2F0IDQwDQo+IC19DQo+ICsJIyBsZXQncyBjaGVjayB3aGVyZSB3ZSBh cmUgaW4gdGhlIHRyYWNlDQo+ICsJY2hlY2tfcmVwbGF5X2F0IDM5DQo+ICsgICAgfQ0KPiAgIA0K PiAtIyB3aXRoIHRoZSBuZXh0IHN0ZXAsIHdlIHN0b3AgcmVwbGF5aW5nDQo+IC13aXRoX3Rlc3Rf cHJlZml4ICJlbmQiIHsNCj4gLSAgICBnZGJfdGVzdCAic3RlcGkiICIuKm1haW5cLjMuKiINCj4g LSAgICBnZGJfdGVzdCAiaW5mbyByZWNvcmQiIFttdWx0aV9saW5lIFwNCj4gLSAgICAgICJBY3Rp dmUgcmVjb3JkIHRhcmdldDogcmVjb3JkLWJ0cmFjZSIgXA0KPiAtICAgICAgIi4qIiBcDQo+IC0g ICAgICAiUmVjb3JkZWQgNDAgaW5zdHJ1Y3Rpb25zIGluIDE2IGZ1bmN0aW9ucyBcXFwoMCBnYXBz XFxcKSBmb3IgXFteXFxcclxcXG5cXSoiIFwNCj4gLQkJCSAgICAgICBdDQo+IC19DQo+ICsgICAg IyBsZXQncyBzdGVwIGZvcndhcmQgYW5kIGNoZWNrIGFnYWluDQo+ICsgICAgd2l0aF90ZXN0X3By ZWZpeCAic3RlcGkiIHsNCj4gKwlnZGJfdGVzdCAic3RlcGkiICIuKmZ1bjRcLjUuKiINCj4gKwlj aGVja19yZXBsYXlfYXQgNDANCj4gKyAgICB9DQo+ICAgDQo+IC0jIGxldCdzIHRyeSBuZXh0aQ0K PiAtd2l0aF90ZXN0X3ByZWZpeCAicmV2ZXJzZS1uZXh0aS4xIiB7DQo+IC0gICAgZ2RiX3Rlc3Qg InJldmVyc2UtbmV4dGkiICIuKm1haW5cLjIuKiINCj4gLSAgICBjaGVja19yZXBsYXlfYXQgMQ0K PiAtfQ0KPiArICAgICMgd2l0aCB0aGUgbmV4dCBzdGVwLCB3ZSBzdG9wIHJlcGxheWluZw0KPiAr ICAgIHdpdGhfdGVzdF9wcmVmaXggImVuZCIgew0KPiArCWdkYl90ZXN0ICJzdGVwaSIgIi4qbWFp blwuMy4qIg0KPiArCWdkYl90ZXN0ICJpbmZvIHJlY29yZCIgW211bHRpX2xpbmUgXA0KPiArCSAg ICAiQWN0aXZlIHJlY29yZCB0YXJnZXQ6IHJlY29yZC1idHJhY2UiIFwNCj4gKwkgICAgIi4qIiBc DQo+ICsJICAgICJSZWNvcmRlZCA0MCBpbnN0cnVjdGlvbnMgaW4gMTYgZnVuY3Rpb25zIFxcXCgw IGdhcHNcXFwpIGZvciBcW15cXFxyXFxcblxdKiIgXA0KPiArCSAgICBdDQo+ICsgICAgfQ0KPiAg IA0KPiAtIyB3ZSBjYW4ndCByZXZlcnNlLW5leHRpIGFueSBmdXJ0aGVyDQo+IC13aXRoX3Rlc3Rf cHJlZml4ICJyZXZlcnNlLW5leHRpLjIiIHsNCj4gLSAgICBnZGJfdGVzdCAicmV2ZXJzZS1uZXh0 aSIgXA0KPiAtCSJObyBtb3JlIHJldmVyc2UtZXhlY3V0aW9uIGhpc3RvcnlcLlxyXG4uKm1haW5c LjIuKiIgXA0KPiAtCSJyZXZlcnNlLW5leHRpLjIiDQo+IC0gICAgY2hlY2tfcmVwbGF5X2F0IDEN Cj4gLX0NCj4gKyAgICAjIGxldCdzIHRyeSBuZXh0aQ0KPiArICAgIHdpdGhfdGVzdF9wcmVmaXgg InJldmVyc2UtbmV4dGkuMSIgew0KPiArCWdkYl90ZXN0ICJyZXZlcnNlLW5leHRpIiAiLiptYWlu XC4yLioiDQo+ICsJY2hlY2tfcmVwbGF5X2F0IDENCj4gKyAgICB9DQo+ICAgDQo+IC0jIGJ1dCB3 ZSBjYW4gc3RlcCBiYWNrIGFnYWluDQo+IC13aXRoX3Rlc3RfcHJlZml4ICJuZXh0aSIgew0KPiAt ICAgIGdkYl90ZXN0ICJuZXh0aSIgIi4qbWFpblwuMy4qIg0KPiAtICAgIGdkYl90ZXN0ICJpbmZv IHJlY29yZCIgW211bHRpX2xpbmUgXA0KPiAtICAgICAgIkFjdGl2ZSByZWNvcmQgdGFyZ2V0OiBy ZWNvcmQtYnRyYWNlIiBcDQo+IC0gICAgICAiLioiIFwNCj4gLSAgICAgICJSZWNvcmRlZCA0MCBp bnN0cnVjdGlvbnMgaW4gMTYgZnVuY3Rpb25zIFxcXCgwIGdhcHNcXFwpIGZvciBcW15cXFxyXFxc blxdKiIgXA0KPiAtCQkJICAgICAgIF0NCj4gLX0NCj4gKyAgICAjIHdlIGNhbid0IHJldmVyc2Ut bmV4dGkgYW55IGZ1cnRoZXINCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJyZXZlcnNlLW5leHRp LjIiIHsNCj4gKwlnZGJfdGVzdCAicmV2ZXJzZS1uZXh0aSIgXA0KPiArCSAgICAiTm8gbW9yZSBy ZXZlcnNlLWV4ZWN1dGlvbiBoaXN0b3J5XC5cclxuLiptYWluXC4yLioiIFwNCj4gKwkgICAgInJl dmVyc2UtbmV4dGkuMiINCj4gKwljaGVja19yZXBsYXlfYXQgMQ0KPiArICAgIH0NCj4gICANCj4g LSMgbGV0J3Mgc3RlcCBmcm9tIGEgZ290byBwb3NpdGlvbiBzb21ld2hlcmUgaW4gdGhlIG1pZGRs ZQ0KPiAtd2l0aF90ZXN0X3ByZWZpeCAiZ290byIgew0KPiAtICAgIGdkYl90ZXN0ICJyZWNvcmQg Z290byAyMiIgIi4qZnVuM1wuMi4qIg0KPiAtICAgIHdpdGhfdGVzdF9wcmVmaXggImdvdG8gMjIi IHsgY2hlY2tfcmVwbGF5X2F0IDIyIH0NCj4gKyAgICAjIGJ1dCB3ZSBjYW4gc3RlcCBiYWNrIGFn YWluDQo+ICsgICAgd2l0aF90ZXN0X3ByZWZpeCAibmV4dGkiIHsNCj4gKwlnZGJfdGVzdCAibmV4 dGkiICIuKm1haW5cLjMuKiINCj4gKwlnZGJfdGVzdCAiaW5mbyByZWNvcmQiIFttdWx0aV9saW5l IFwNCj4gKwkgICAgIkFjdGl2ZSByZWNvcmQgdGFyZ2V0OiByZWNvcmQtYnRyYWNlIiBcDQo+ICsJ ICAgICIuKiIgXA0KPiArCSAgICAiUmVjb3JkZWQgNDAgaW5zdHJ1Y3Rpb25zIGluIDE2IGZ1bmN0 aW9ucyBcXFwoMCBnYXBzXFxcKSBmb3IgXFteXFxcclxcXG5cXSoiIFwNCj4gKwkgICAgXQ0KPiAr ICAgIH0NCj4gICANCj4gLSAgICBnZGJfdGVzdCAic3RlcGkiICIuKmZ1bjFcLjEuKiIgInN0ZXBp LjMiDQo+IC0gICAgd2l0aF90ZXN0X3ByZWZpeCAic3RlcGkgdG8gMjMiIHsgY2hlY2tfcmVwbGF5 X2F0IDIzIH0NCj4gKyAgICAjIGxldCdzIHN0ZXAgZnJvbSBhIGdvdG8gcG9zaXRpb24gc29tZXdo ZXJlIGluIHRoZSBtaWRkbGUNCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJnb3RvIiB7DQo+ICsJ Z2RiX3Rlc3QgInJlY29yZCBnb3RvIDIyIiAiLipmdW4zXC4yLioiDQo+ICsJd2l0aF90ZXN0X3By ZWZpeCAiZ290byAyMiIgeyBjaGVja19yZXBsYXlfYXQgMjIgfQ0KPiAgIA0KPiAtICAgIGdkYl90 ZXN0ICJyZXZlcnNlLXN0ZXBpIiAiLipmdW4zXC4yLioiICJyZXZlcnNlLXN0ZXBpLjMiDQo+IC0g ICAgd2l0aF90ZXN0X3ByZWZpeCAicmV2ZXJzZS1zdGVwaSB0byAyMiIgeyBjaGVja19yZXBsYXlf YXQgMjIgfQ0KPiArCWdkYl90ZXN0ICJzdGVwaSIgIi4qZnVuMVwuMS4qIiAic3RlcGkuMyINCj4g Kwl3aXRoX3Rlc3RfcHJlZml4ICJzdGVwaSB0byAyMyIgeyBjaGVja19yZXBsYXlfYXQgMjMgfQ0K PiAgIA0KPiAtICAgIGdkYl90ZXN0ICJuZXh0aSIgIi4qZnVuM1wuMy4qIg0KPiAtICAgIHdpdGhf dGVzdF9wcmVmaXggIm5leHRpIHRvIDI3IiB7IGNoZWNrX3JlcGxheV9hdCAyNyB9DQo+ICsJZ2Ri X3Rlc3QgInJldmVyc2Utc3RlcGkiICIuKmZ1bjNcLjIuKiIgInJldmVyc2Utc3RlcGkuMyINCj4g Kwl3aXRoX3Rlc3RfcHJlZml4ICJyZXZlcnNlLXN0ZXBpIHRvIDIyIiB7IGNoZWNrX3JlcGxheV9h dCAyMiB9DQo+ICAgDQo+IC0gICAgZ2RiX3Rlc3QgInJldmVyc2UtbmV4dGkiICIuKmZ1bjNcLjIu KiIgInJldmVyc2UtbmV4dGkuMyINCj4gLSAgICB3aXRoX3Rlc3RfcHJlZml4ICJyZXZlcnNlLW5l eHRpIHRvIDIyIiB7IGNoZWNrX3JlcGxheV9hdCAyMiB9DQo+IC19DQo+ICsJZ2RiX3Rlc3QgIm5l eHRpIiAiLipmdW4zXC4zLioiDQo+ICsJd2l0aF90ZXN0X3ByZWZpeCAibmV4dGkgdG8gMjciIHsg Y2hlY2tfcmVwbGF5X2F0IDI3IH0NCj4gICANCj4gLSMgbGV0J3MgdHJ5IHRvIHN0ZXAgb2ZmIHRo ZSBsZWZ0IGVuZA0KPiAtd2l0aF90ZXN0X3ByZWZpeCAiZ290byBiZWdpbiIgew0KPiAtICAgIGdk Yl90ZXN0ICJyZWNvcmQgZ290byBiZWdpbiIgIi4qbWFpblwuMi4qIg0KPiAtICAgIGNoZWNrX3Jl cGxheV9hdCAxDQo+ICsJZ2RiX3Rlc3QgInJldmVyc2UtbmV4dGkiICIuKmZ1bjNcLjIuKiIgInJl dmVyc2UtbmV4dGkuMyINCj4gKwl3aXRoX3Rlc3RfcHJlZml4ICJyZXZlcnNlLW5leHRpIHRvIDIy IiB7IGNoZWNrX3JlcGxheV9hdCAyMiB9DQo+ICsgICAgfQ0KPiAgIA0KPiAtICAgIHdpdGhfdGVz dF9wcmVmaXggInJldmVyc2Utc3RlcGkiIHsNCj4gLQlnZGJfdGVzdCAicmV2ZXJzZS1zdGVwaSIg XA0KPiAtCSAgICAiTm8gbW9yZSByZXZlcnNlLWV4ZWN1dGlvbiBoaXN0b3J5XC5cclxuLiptYWlu XC4yLioiIFwNCj4gLQkgICAgInJldmVyc2Utc3RlcGkuMSINCj4gLQlnZGJfdGVzdCAicmV2ZXJz ZS1zdGVwaSIgXA0KPiAtCSAgICAiTm8gbW9yZSByZXZlcnNlLWV4ZWN1dGlvbiBoaXN0b3J5XC5c clxuLiptYWluXC4yLioiIFwNCj4gLQkgICAgInJldmVyc2Utc3RlcGkuMiINCj4gKyAgICAjIGxl dCdzIHRyeSB0byBzdGVwIG9mZiB0aGUgbGVmdCBlbmQNCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4 ICJnb3RvIGJlZ2luIiB7DQo+ICsJZ2RiX3Rlc3QgInJlY29yZCBnb3RvIGJlZ2luIiAiLiptYWlu XC4yLioiDQo+ICAgCWNoZWNrX3JlcGxheV9hdCAxDQo+ICsNCj4gKwl3aXRoX3Rlc3RfcHJlZml4 ICJyZXZlcnNlLXN0ZXBpIiB7DQo+ICsJICAgIGdkYl90ZXN0ICJyZXZlcnNlLXN0ZXBpIiBcDQo+ ICsJCSJObyBtb3JlIHJldmVyc2UtZXhlY3V0aW9uIGhpc3RvcnlcLlxyXG4uKm1haW5cLjIuKiIg XA0KPiArCQkicmV2ZXJzZS1zdGVwaS4xIg0KPiArCSAgICBnZGJfdGVzdCAicmV2ZXJzZS1zdGVw aSIgXA0KPiArCQkiTm8gbW9yZSByZXZlcnNlLWV4ZWN1dGlvbiBoaXN0b3J5XC5cclxuLiptYWlu XC4yLioiIFwNCj4gKwkJInJldmVyc2Utc3RlcGkuMiINCj4gKwkgICAgY2hlY2tfcmVwbGF5X2F0 IDENCj4gKwl9DQo+ICsNCj4gKwl3aXRoX3Rlc3RfcHJlZml4ICJyZXZlcnNlLW5leHRpIiB7DQo+ ICsJICAgIGdkYl90ZXN0ICJyZXZlcnNlLW5leHRpIiBcDQo+ICsJCSJObyBtb3JlIHJldmVyc2Ut ZXhlY3V0aW9uIGhpc3RvcnlcLlxyXG4uKm1haW5cLjIuKiIgXA0KPiArCQkicmV2ZXJzZS1uZXh0 aS4xIg0KPiArCSAgICBnZGJfdGVzdCAicmV2ZXJzZS1uZXh0aSIgXA0KPiArCQkiTm8gbW9yZSBy ZXZlcnNlLWV4ZWN1dGlvbiBoaXN0b3J5XC5cclxuLiptYWluXC4yLioiIFwNCj4gKwkJInJldmVy c2UtbmV4dGkuMiINCj4gKwkgICAgY2hlY2tfcmVwbGF5X2F0IDENCj4gKwl9DQo+ICsNCj4gKwkj IHdlIGNhbiBzdGVwIGZvcndhcmQsIHRob3VnaA0KPiArCXdpdGhfdGVzdF9wcmVmaXggInN0ZXBp IiB7DQo+ICsJICAgIGdkYl90ZXN0ICJzdGVwaSIgIi4qZnVuNFwuMS4qIg0KPiArCSAgICBjaGVj a19yZXBsYXlfYXQgMg0KPiArCX0NCj4gICAgICAgfQ0KPiAgIA0KPiAtICAgIHdpdGhfdGVzdF9w cmVmaXggInJldmVyc2UtbmV4dGkiIHsNCj4gLQlnZGJfdGVzdCAicmV2ZXJzZS1uZXh0aSIgXA0K PiArICAgICMgbGV0J3MgdHJ5IHRvIHN0ZXAgb2ZmIHRoZSBsZWZ0IGVuZCBhZ2Fpbg0KPiArICAg IHdpdGhfdGVzdF9wcmVmaXggInJldmVyc2Utc3RlcGkiIHsNCj4gKwlnZGJfdGVzdCAicmV2ZXJz ZS1zdGVwaSIgIi4qbWFpblwuMi4qIiAicmV2ZXJzZS1zdGVwaS4xIg0KPiArCWdkYl90ZXN0ICJy ZXZlcnNlLXN0ZXBpIiBcDQo+ICAgCSAgICAiTm8gbW9yZSByZXZlcnNlLWV4ZWN1dGlvbiBoaXN0 b3J5XC5cclxuLiptYWluXC4yLioiIFwNCj4gLQkgICAgInJldmVyc2UtbmV4dGkuMSINCj4gLQln ZGJfdGVzdCAicmV2ZXJzZS1uZXh0aSIgXA0KPiArCSAgICAicmV2ZXJzZS1zdGVwaS4yIg0KPiAr CWdkYl90ZXN0ICJyZXZlcnNlLXN0ZXBpIiBcDQo+ICAgCSAgICAiTm8gbW9yZSByZXZlcnNlLWV4 ZWN1dGlvbiBoaXN0b3J5XC5cclxuLiptYWluXC4yLioiIFwNCj4gLQkgICAgInJldmVyc2UtbmV4 dGkuMiINCj4gKwkgICAgInJldmVyc2Utc3RlcGkuMyINCj4gICAJY2hlY2tfcmVwbGF5X2F0IDEN Cj4gICAgICAgfQ0KPiAtDQo+IC0gICAgIyB3ZSBjYW4gc3RlcCBmb3J3YXJkLCB0aG91Z2gNCj4g LSAgICB3aXRoX3Rlc3RfcHJlZml4ICJzdGVwaSIgew0KPiAtCWdkYl90ZXN0ICJzdGVwaSIgIi4q ZnVuNFwuMS4qIg0KPiAtCWNoZWNrX3JlcGxheV9hdCAyDQo+IC0gICAgfQ0KPiAtfQ0KPiAtDQo+ IC0jIGxldCdzIHRyeSB0byBzdGVwIG9mZiB0aGUgbGVmdCBlbmQgYWdhaW4NCj4gLXdpdGhfdGVz dF9wcmVmaXggInJldmVyc2Utc3RlcGkiIHsNCj4gLSAgICBnZGJfdGVzdCAicmV2ZXJzZS1zdGVw aSIgIi4qbWFpblwuMi4qIiAicmV2ZXJzZS1zdGVwaS4xIg0KPiAtICAgIGdkYl90ZXN0ICJyZXZl cnNlLXN0ZXBpIiBcDQo+IC0JIk5vIG1vcmUgcmV2ZXJzZS1leGVjdXRpb24gaGlzdG9yeVwuXHJc bi4qbWFpblwuMi4qIiBcDQo+IC0JInJldmVyc2Utc3RlcGkuMiINCj4gLSAgICBnZGJfdGVzdCAi cmV2ZXJzZS1zdGVwaSIgXA0KPiAtCSJObyBtb3JlIHJldmVyc2UtZXhlY3V0aW9uIGhpc3Rvcnlc LlxyXG4uKm1haW5cLjIuKiIgXA0KPiAtCSJyZXZlcnNlLXN0ZXBpLjMiDQo+IC0gICAgY2hlY2tf cmVwbGF5X2F0IDENCj4gICB9DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJh Y2UvdGFpbGNhbGwtb25seS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdGFpbGNhbGwt b25seS5leHANCj4gaW5kZXggYWUzYjA0ZTNiNjYuLmZiYzdkOTZlYzVlIDEwMDY0NA0KPiAtLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdGFpbGNhbGwtb25seS5leHANCj4gKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3RhaWxjYWxsLW9ubHkuZXhwDQo+IEBAIC0yMCw4ICsyMCw3 IEBADQo+ICAgIyBjYWxscy4gIFRoaXMgdXNlZCB0byBjYXVzZSBhIGNyYXNoIGluIGdldF9mcmFt ZV90eXBlLg0KPiAgICMNCj4gICANCj4gLXJlcXVpcmUgYWxsb3dfYnRyYWNlX3Rlc3RzDQo+IC0N Cj4gK3JlcXVpcmUgdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZQ0KPiAgICMgVGhpcyB0ZXN0IHJlcXVp cmVzIHRoZSBjb21waWxlciB0byBnZW5lcmF0ZSBhIHRhaWwgY2FsbC4gIFRvIGd1YXJhbnRlZSB0 aGF0DQo+ICAgIyB3ZSBhbHdheXMgZ2V0IG9uZSwgd2UgdXNlIGFuIGFzc2VtYmx5IHNvdXJjZSBm aWxlLg0KPiAgICMNCj4gQEAgLTI5LDYgKzI4LDcgQEAgcmVxdWlyZSBhbGxvd19idHJhY2VfdGVz dHMNCj4gICAjDQo+ICAgIyBMdWNraWx5LCB0aGV5IGFyZSBzaW1pbGFyIGVub3VnaCB0aGF0IGEg c2luZ2xlIHRlc3Qgc2NyaXB0IGNhbiBoYW5kbGUNCj4gICAjIGJvdGguDQo+ICsNCj4gICBzZXQg b3B0cyB7fQ0KPiAgIGlmIFtpbmZvIGV4aXN0cyBDT01QSUxFXSB7DQo+ICAgICAgICMgbWFrZSBj aGVjayBSVU5URVNURkxBR1M9ImdkYi5idHJhY2UvdGFpbGNhbGwtb25seS5leHAgQ09NUElMRT0x Ig0KPiBAQCAtNDUsNTUgKzQ1LDYzIEBAIGlmIFtpbmZvIGV4aXN0cyBDT01QSUxFXSB7DQo+ICAg ICAgIHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLWlmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJm YWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlICRvcHRzXSB7DQo+ICtpZiBbYnVp bGRfZXhlY3V0YWJsZSAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSAkb3B0 c10gew0KPiAgICAgICByZXR1cm4gLTENCj4gICB9DQo+ICAgDQo+IC1pZiAhW3J1bnRvX21haW5d IHsNCj4gLSAgICByZXR1cm4gLTENCj4gLX0NCj4gK2ZvcmVhY2hfd2l0aF9wcmVmaXggbWV0aG9k IHsiYnRzIiAicHQifSB7DQo+ICsgICAgaWYgeyAhW2FsbG93X2J0cmFjZV90ZXN0cyAkbWV0aG9k XSB9IHsNCj4gKwl1bnN1cHBvcnRlZCAidGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgcmVjb3JkLWJ0 cmFjZSAke21ldGhvZH0iDQo+ICsJY29udGludWUNCj4gKyAgICB9DQo+ICsgICAgY2xlYW5fcmVz dGFydCAiJHt0ZXN0ZmlsZX0iDQo+ICAgDQo+IC0jIHdlIHdhbnQgdG8gc2VlIHRoZSBmdWxsIHRy YWNlIGZvciB0aGlzIHRlc3QNCj4gLWdkYl90ZXN0X25vX291dHB1dCAic2V0IHJlY29yZCBmdW5j dGlvbi1jYWxsLWhpc3Rvcnktc2l6ZSAwIg0KPiArICAgIGlmICFbcnVudG9fbWFpbl0gew0KPiAr CWNvbnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAtIyB0cmFjZSBmb28NCj4gLWdkYl90ZXN0ICJz dGVwIiAiLioiICJwcmVwYXJlIGZvciByZWNvcmRpbmciDQo+IC1nZGJfdGVzdF9ub19vdXRwdXQg InJlY29yZCBidHJhY2UiDQo+IC1nZGJfdGVzdCAic3RlcGkgNCIgIi4qIiAicmVjb3JkIGJyYW5j aCB0cmFjZSINCj4gKyAgICAjIHdlIHdhbnQgdG8gc2VlIHRoZSBmdWxsIHRyYWNlIGZvciB0aGlz IHRlc3QNCj4gKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCByZWNvcmQgZnVuY3Rpb24tY2Fs bC1oaXN0b3J5LXNpemUgMCINCj4gICANCj4gLSMgZm9yIGRlYnVnZ2luZw0KPiAtZ2RiX3Rlc3Qg ImluZm8gcmVjb3JkIiAiLioiDQo+ICsgICAgIyB0cmFjZSBmb28NCj4gKyAgICBnZGJfdGVzdCAi c3RlcCIgIi4qIiAicHJlcGFyZSBmb3IgcmVjb3JkaW5nIg0KPiArICAgIGdkYl90ZXN0X25vX291 dHB1dCAicmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iDQo+ICsgICAgZ2RiX3Rlc3QgInN0ZXBpIDQi ICIuKiIgInJlY29yZCBicmFuY2ggdHJhY2UiDQo+ICAgDQo+IC0jIHNob3cgdGhlIGJyYW5jaCB0 cmFjZSB3aXRoIGNhbGxzIGluZGVudGVkDQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNh bGwtaGlzdG9yeSAvYyAxIiBbbXVsdGlfbGluZSBcDQo+IC0gICIxXHRmb28iIFwNCj4gLSAgIjJc dCAgZm9vXzEiIFwNCj4gLSAgIjNcdCAgICBiYXIiIFwNCj4gLSAgIjRcdCAgICAgIGJhcl8xIg0K PiAtICBdICJmdW5jdGlvbi1jYWxsLWhpc3RvcnkiDQo+ICsgICAgIyBmb3IgZGVidWdnaW5nDQo+ ICsgICAgZ2RiX3Rlc3QgImluZm8gcmVjb3JkIiAiLioiDQo+ICAgDQo+IC0jIFdlIGNhbiBzdGVw DQo+IC1nZGJfdGVzdCAicmVjb3JkIGdvdG8gYmVnaW4iICIuKmZvby4qIg0KPiAtZ2RiX3Rlc3Qg InN0ZXBpIiAiLipmb29fMS4qIiAic3RlcCBpbnRvIGZvb18xIg0KPiAtZ2RiX3Rlc3QgInN0ZXAi ICIuKmJhci4qIiAic3RlcCBpbnRvIGJhciINCj4gLWdkYl90ZXN0ICJzdGVwaSIgIi4qYmFyXzEu KiIgInN0ZXAgaW50byBiYXJfMSINCj4gKyAgICAjIHNob3cgdGhlIGJyYW5jaCB0cmFjZSB3aXRo IGNhbGxzIGluZGVudGVkDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29yZCBmdW5jdGlvbi1jYWxsLWhp c3RvcnkgL2MgMSIgW211bHRpX2xpbmUgXA0KPiArCSIxXHRmb28iIFwNCj4gKwkiMlx0ICBmb29f MSIgXA0KPiArCSIzXHQgICAgYmFyIiBcDQo+ICsJIjRcdCAgICAgIGJhcl8xIg0KPiArCV0gImZ1 bmN0aW9uLWNhbGwtaGlzdG9yeSINCj4gICANCj4gLSMgV2UgY2FuIG5laXRoZXIgZmluaXNoIG5v ciByZXR1cm4uDQo+IC1nZGJfdGVzdCAiZmluaXNoIiAiQ2Fubm90IGZpbmQgdGhlIGNhbGxlciBm cmFtZS4qIg0KPiAtZ2RiX3Rlc3RfbXVsdGlwbGUgInJldHVybiIgInJldHVybiIgew0KPiAtICAt cmUgIk1ha2UgLiogcmV0dXJuIG5vdy4qeSBvciBuLiAkIiB7DQo+IC0gICAgc2VuZF9nZGIgInlc biINCj4gLSAgICBleHBfY29udGludWUNCj4gLSAgfQ0KPiAtICAtcmUgIkNhbm5vdCBmaW5kIHRo ZSBjYWxsZXIgZnJhbWUuKiRnZGJfcHJvbXB0ICQiIHsNCj4gLSAgICBwYXNzICJyZXR1cm4iDQo+ IC0gIH0NCj4gLX0NCj4gKyAgICAjIFdlIGNhbiBzdGVwDQo+ICsgICAgZ2RiX3Rlc3QgInJlY29y ZCBnb3RvIGJlZ2luIiAiLipmb28uKiINCj4gKyAgICBnZGJfdGVzdCAic3RlcGkiICIuKmZvb18x LioiICJzdGVwIGludG8gZm9vXzEiDQo+ICsgICAgZ2RiX3Rlc3QgInN0ZXAiICIuKmJhci4qIiAi c3RlcCBpbnRvIGJhciINCj4gKyAgICBnZGJfdGVzdCAic3RlcGkiICIuKmJhcl8xLioiICJzdGVw IGludG8gYmFyXzEiDQo+ICAgDQo+IC0jIEJ1dCB3ZSBjYW4gcmV2ZXJzZS1maW5pc2gNCj4gLWdk Yl90ZXN0ICJyZXZlcnNlLWZpbmlzaCIgIi4qYmFyLioiDQo+IC1nZGJfdGVzdCAicmV2ZXJzZS1z dGVwIiAiLipmb29fMS4qIg0KPiArICAgICMgV2UgY2FuIG5laXRoZXIgZmluaXNoIG5vciByZXR1 cm4uDQo+ICsgICAgZ2RiX3Rlc3QgImZpbmlzaCIgIkNhbm5vdCBmaW5kIHRoZSBjYWxsZXIgZnJh bWUuKiINCj4gKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAicmV0dXJuIiAicmV0dXJuIiB7DQo+ICsJ LXJlICJNYWtlIC4qIHJldHVybiBub3cuKnkgb3Igbi4gJCIgew0KPiArCSAgICBzZW5kX2dkYiAi eVxuIg0KPiArCSAgICBjb250aW51ZQ0KPiArCX0NCj4gKwktcmUgIkNhbm5vdCBmaW5kIHRoZSBj YWxsZXIgZnJhbWUuKiRnZGJfcHJvbXB0ICQiIHsNCj4gKwkgICAgcGFzcyAicmV0dXJuIg0KPiAr CX0NCj4gKyAgICB9DQo+ICAgDQo+IC0jIEluZm8gZnJhbWUgaXNuJ3QgdXNlZnVsIGJ1dCBkb2Vz bid0IGNyYXNoIGFzIGl0IHVzZWQgdG8uDQo+IC1nZGJfdGVzdCAidXAiICIuKmZvby4qIg0KPiAt Z2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKiINCj4gKyAgICAjIEJ1dCB3ZSBjYW4gcmV2ZXJzZS1m aW5pc2gNCj4gKyAgICBnZGJfdGVzdCAicmV2ZXJzZS1maW5pc2giICIuKmJhci4qIg0KPiArICAg IGdkYl90ZXN0ICJyZXZlcnNlLXN0ZXAiICIuKmZvb18xLioiDQo+ICsNCj4gKyAgICAjIEluZm8g ZnJhbWUgaXNuJ3QgdXNlZnVsIGJ1dCBkb2Vzbid0IGNyYXNoIGFzIGl0IHVzZWQgdG8uDQo+ICsg ICAgZ2RiX3Rlc3QgInVwIiAiLipmb28uKiINCj4gKyAgICBnZGJfdGVzdCAiaW5mbyBmcmFtZSIg Ii4qIg0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3RhaWxj YWxsLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS90YWlsY2FsbC5leHANCj4gaW5kZXgg MTk4Y2ZhOTg4ZGQuLjExZjU4M2JkZjUyIDEwMDY0NA0KPiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5idHJhY2UvdGFpbGNhbGwuZXhwDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS90 YWlsY2FsbC5leHANCj4gQEAgLTE3LDcgKzE3LDEwIEBADQo+ICAgIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiAgICMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93X2J0cmFjZV90ZXN0cw0KPiAraWYg eyFbdGFyZ2V0X3N1cHBvcnRzX2J0cmFjZV19IHsNCj4gKyAgICB1bnN1cHBvcnRlZCAidGFyZ2V0 IGRvZXMgbm90IHN1cHBvcnQgYnRyYWNlLiINCj4gKyAgICByZXR1cm4gLTENCj4gK30NClRoZSBu ZXcgc3RhbmRhcmQgZm9yIHRoZSB0ZXN0c3VpdGUgaXMgdG8gdXNlIHJlcXVpcmUsIGluc3RlYWQg b2YgdGhpcyANCmlmLXVudGVzdGVkLXJldHVybiBzdHlsZS4NCj4gICANCj4gICAjIFRoaXMgdGVz dCByZXF1aXJlcyB0aGUgY29tcGlsZXIgdG8gZ2VuZXJhdGUgYSB0YWlsIGNhbGwuICBUbyBndWFy YW50ZWUgdGhhdA0KPiAgICMgd2UgYWx3YXlzIGdldCBvbmUsIHdlIHVzZSBhbiBhc3NlbWJseSBz b3VyY2UgZmlsZS4NCj4gQEAgLTMyLDIwICszNSwxNyBAQCBpZiBbaW5mbyBleGlzdHMgQ09NUElM RV0gew0KPiAgICAgICBzdGFuZGFyZF90ZXN0ZmlsZSB0YWlsY2FsbC5jDQo+ICAgICAgIGxhcHBl bmQgb3B0cyBkZWJ1ZyBvcHRpbWl6ZT0tTzINCj4gICB9IGVsc2VpZiB7W2lzdGFyZ2V0ICJpPzg2 LSotKiJdIHx8IFtpc3RhcmdldCAieDg2XzY0LSotKiJdfSB7DQo+IC0JaWYge1tpc19hbWQ2NF9y ZWdzX3RhcmdldF19IHsNCj4gLQkJc3RhbmRhcmRfdGVzdGZpbGUgeDg2XzY0LXRhaWxjYWxsLlMN Cj4gLQl9IGVsc2Ugew0KPiAtCQlzdGFuZGFyZF90ZXN0ZmlsZSBpNjg2LXRhaWxjYWxsLlMNCj4g LQl9DQo+ICsgICAgaWYge1tpc19hbWQ2NF9yZWdzX3RhcmdldF19IHsNCj4gKwlzdGFuZGFyZF90 ZXN0ZmlsZSB4ODZfNjQtdGFpbGNhbGwuUw0KPiArICAgIH0gZWxzZSB7DQo+ICsJc3RhbmRhcmRf dGVzdGZpbGUgaTY4Ni10YWlsY2FsbC5TDQo+ICsgICAgfQ0KPiAgIH0gZWxzZSB7DQo+ICAgICAg IHVuc3VwcG9ydGVkICJ0YXJnZXQgYXJjaGl0ZWN0dXJlIG5vdCBzdXBwb3J0ZWQiDQo+ICAgICAg IHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLWlmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWls ZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlICRvcHRzXSB7DQo+IC0gICAgcmV0dXJu IC0xDQo+IC19DQo+IC1pZiAhW3J1bnRvX21haW5dIHsNCj4gK2lmIFtidWlsZF9leGVjdXRhYmxl ICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlICRvcHRzXSB7DQo+ICAgICAg IHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gQEAgLTU0LDYzICs1NCw3NSBAQCBpZiAhW3J1bnRv X21haW5dIHsNCj4gICAjIHRoYXQgcGF0aCB0byBiZSBwcmVzZW50LCBidXQgZG9lcyBub3QgcmVx dWlyZSBpdC4NCj4gICBzZXQgb3B0aW9uYWxfZmlsZXBhdGgge1teXG5dKn0NCj4gICANCj4gLSMg d2Ugd2FudCB0byBzZWUgdGhlIGZ1bGwgdHJhY2UgZm9yIHRoaXMgdGVzdA0KPiAtZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJzZXQgcmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeS1zaXplIDAiDQo+ICtm b3JlYWNoX3dpdGhfcHJlZml4IG1ldGhvZCB7ImJ0cyIgInB0In0gew0KPiArICAgIGlmIHsgIVth bGxvd19idHJhY2VfdGVzdHMgJG1ldGhvZF0gfSB7DQo+ICsJdW5zdXBwb3J0ZWQgInRhcmdldCBk b2VzIG5vdCBzdXBwb3J0IHJlY29yZC1idHJhY2UgJHttZXRob2R9Ig0KPiArCWNvbnRpbnVlDQo+ ICsgICAgfQ0KPiArICAgIGNsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9Ig0KPiAgIA0KPiAtIyB0 cmFjZSB0aGUgY2FsbCB0byBmb28NCj4gLWdkYl90ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFj ZSINCj4gLWdkYl90ZXN0ICJuZXh0IDIiDQo+ICsgICAgaWYgIVtydW50b19tYWluXSB7DQo+ICsJ Y29udGludWUNCj4gKyAgICB9DQo+ICAgDQo+IC0jIHNob3cgdGhlIGZsYXQgYnJhbmNoIHRyYWNl DQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAxIiBbbXVsdGlfbGlu ZSBcDQo+IC0gICIxXHRtYWluIiBcDQo+IC0gICIyXHRmb28iIFwNCj4gLSAgIjNcdGJhciIgXA0K PiAtICAiNFx0bWFpbiIgXA0KPiAtICBdICJmbGF0Ig0KPiArICAgICMgd2Ugd2FudCB0byBzZWUg dGhlIGZ1bGwgdHJhY2UgZm9yIHRoaXMgdGVzdA0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAi c2V0IHJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnktc2l6ZSAwIg0KPiAgIA0KPiAtIyBzaG93 IHRoZSBicmFuY2ggdHJhY2Ugd2l0aCBjYWxscyBpbmRlbnRlZA0KPiAtZ2RiX3Rlc3QgInJlY29y ZCBmdW5jdGlvbi1jYWxsLWhpc3RvcnkgL2MgMSIgW211bHRpX2xpbmUgXA0KPiAtICAiMVx0bWFp biIgXA0KPiAtICAiMlx0ICBmb28iIFwNCj4gLSAgIjNcdCAgICBiYXIiIFwNCj4gLSAgIjRcdG1h aW4iIFwNCj4gLSAgXSAiaW5kZW50ZWQiDQo+ICsgICAgIyB0cmFjZSB0aGUgY2FsbCB0byBmb28N Cj4gKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UgJHttZXRob2R9Ig0KPiAr ICAgIGdkYl90ZXN0ICJuZXh0IDIiDQo+ICAgDQo+IC0jIGdvIGludG8gYmFyDQo+IC1nZGJfdGVz dCAicmVjb3JkIGdvdG8gNCIgIi4qYmFyIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRh aWxjYWxsLmM6MjRcclxuLioiDQo+ICsgICAgIyBzaG93IHRoZSBmbGF0IGJyYW5jaCB0cmFjZQ0K PiArICAgIGdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IDEiIFttdWx0aV9s aW5lIFwNCj4gKwkiMVx0bWFpbiIgXA0KPiArCSIyXHRmb28iIFwNCj4gKwkiM1x0YmFyIiBcDQo+ ICsJIjRcdG1haW4iIFwNCj4gKwldICJmbGF0Ig0KPiAgIA0KPiAtIyBjaGVjayB0aGUgYmFja3Ry YWNlDQo+IC1nZGJfdGVzdCAiYmFja3RyYWNlIiBbbXVsdGlfbGluZSBcDQo+IC0gICIjMC4qYmFy IFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6MjQiIFwNCj4gLSAgIiMx Lipmb28gXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzoyOSIgXA0KPiAt ICAiIzIuKm1haW4gXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzozNyIg XA0KPiAtICAiQmFja3RyYWNlIHN0b3BwZWQ6IG5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9yIG1lbW9y eSBhdmFpbGFibGUgdG8gdW53aW5kIGZ1cnRoZXIiIFwNCj4gLSAgXQ0KPiArICAgICMgc2hvdyB0 aGUgYnJhbmNoIHRyYWNlIHdpdGggY2FsbHMgaW5kZW50ZWQNCj4gKyAgICBnZGJfdGVzdCAicmVj b3JkIGZ1bmN0aW9uLWNhbGwtaGlzdG9yeSAvYyAxIiBbbXVsdGlfbGluZSBcDQo+ICsJIjFcdG1h aW4iIFwNCj4gKwkiMlx0ICBmb28iIFwNCj4gKwkiM1x0ICAgIGJhciIgXA0KPiArCSI0XHRtYWlu IiBcDQo+ICsJXSAiaW5kZW50ZWQiDQo+ICAgDQo+IC0jIHdhbGsgdGhlIGJhY2t0cmFjZQ0KPiAt Z2RiX3Rlc3QgInVwIiAiIzFcW15cclxuXF0qZm9vIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVw YXRofXRhaWxjYWxsLmM6MjlcclxuLioiICJ1cCB0byBmb28iDQo+IC1nZGJfdGVzdCAidXAiICIj MlxbXlxyXG5cXSptYWluIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6 MzdcclxuLioiICJ1cCB0byBtYWluIg0KPiAtZ2RiX3Rlc3QgImRvd24iICIjMVxbXlxyXG5cXSpm b28gXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzoyOVxyXG4uKiIgImRv d24gdG8gZm9vIg0KPiArICAgICMgZ28gaW50byBiYXINCj4gKyAgICBnZGJfdGVzdCAicmVjb3Jk IGdvdG8gNCIgIi4qYmFyIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6 MjRcclxuLioiDQo+ICAgDQo+IC0jIHRlc3Qgc3RlcHBpbmcgaW50byBhbmQgb3V0IG9mIHRhaWxj YWxscy4NCj4gLWdkYl90ZXN0ICJmaW5pc2giICJcW15cclxuXF0qbWFpbiBcXChcXCkgYXQgJHtv cHRpb25hbF9maWxlcGF0aH10YWlsY2FsbC5jOjM4XHJcbi4qIiBcDQo+IC0gICAgImZpbmlzaC4x Ig0KPiAtZ2RiX3Rlc3QgInJldmVyc2Utc3RlcCIgIlxbXlxyXG5cXSpiYXIgXFwoXFwpIGF0ICR7 b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzoyNFxyXG4uKiIgXA0KPiAtICAgICJyZXZlcnNl LXN0ZXAuMSINCj4gLWdkYl90ZXN0ICJyZXZlcnNlLWZpbmlzaCIgIlxbXlxyXG5cXSpmb28gXFwo XFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzoyOVxyXG4uKiIgXA0KPiAtICAg ICJyZXZlcnNlLWZpbmlzaC4xIg0KPiAtZ2RiX3Rlc3QgInJldmVyc2Utc3RlcCIgIlxbXlxyXG5c XSptYWluIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6MzdcclxuLioi IFwNCj4gLSAgICAicmV2ZXJzZS1zdGVwLjIiDQo+IC1nZGJfdGVzdCAibmV4dCIgIlxbXlxyXG5c XSozOC4qIiBcDQo+IC0gICAgIm5leHQuMSINCj4gLWdkYl90ZXN0ICJyZXZlcnNlLW5leHQiICJc W15cclxuXF0qbWFpbiBcXChcXCkgYXQgJHtvcHRpb25hbF9maWxlcGF0aH10YWlsY2FsbC5jOjM3 XHJcbi4qIiBcDQo+IC0gICAgInJldmVyc2UtbmV4dC4xIg0KPiAtZ2RiX3Rlc3QgInN0ZXAiICJc W15cclxuXF0qZm9vIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6Mjlc clxuLioiIFwNCj4gLSAgICAic3RlcC4xIg0KPiAtZ2RiX3Rlc3QgImZpbmlzaCIgIlxbXlxyXG5c XSptYWluIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6MzhcclxuLioi IFwNCj4gLSAgICAiZmluaXNoLjIiDQo+IC1nZGJfdGVzdCAicmV2ZXJzZS1zdGVwIiAiXFteXHJc blxdKmJhciBcXChcXCkgYXQgJHtvcHRpb25hbF9maWxlcGF0aH10YWlsY2FsbC5jOjI0XHJcbi4q IiBcDQo+IC0gICAgInJldmVyc2Utc3RlcC4zIg0KPiAtZ2RiX3Rlc3QgImZpbmlzaCIgIlxbXlxy XG5cXSptYWluIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6Mzhcclxu LioiIFwNCj4gLSAgICAiZmluaXNoLjMiDQo+ICsgICAgIyBjaGVjayB0aGUgYmFja3RyYWNlDQo+ ICsgICAgZ2RiX3Rlc3QgImJhY2t0cmFjZSIgW211bHRpX2xpbmUgXA0KPiArCSIjMC4qYmFyIFxc KFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6MjQiIFwNCj4gKwkiIzEuKmZv byBcXChcXCkgYXQgJHtvcHRpb25hbF9maWxlcGF0aH10YWlsY2FsbC5jOjI5IiBcDQo+ICsJIiMy LiptYWluIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6MzciIFwNCj4g KwkiQmFja3RyYWNlIHN0b3BwZWQ6IG5vdCBlbm91Z2ggcmVnaXN0ZXJzIG9yIG1lbW9yeSBhdmFp bGFibGUgdG8gdW53aW5kIGZ1cnRoZXIiIFwNCj4gKwldDQo+ICsNCj4gKyAgICAjIHdhbGsgdGhl IGJhY2t0cmFjZQ0KPiArICAgIGdkYl90ZXN0ICJ1cCIgIiMxXFteXHJcblxdKmZvbyBcXChcXCkg YXQgJHtvcHRpb25hbF9maWxlcGF0aH10YWlsY2FsbC5jOjI5XHJcbi4qIiAidXAgdG8gZm9vIg0K PiArICAgIGdkYl90ZXN0ICJ1cCIgIiMyXFteXHJcblxdKm1haW4gXFwoXFwpIGF0ICR7b3B0aW9u YWxfZmlsZXBhdGh9dGFpbGNhbGwuYzozN1xyXG4uKiIgInVwIHRvIG1haW4iDQo+ICsgICAgZ2Ri X3Rlc3QgImRvd24iICIjMVxbXlxyXG5cXSpmb28gXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBh dGh9dGFpbGNhbGwuYzoyOVxyXG4uKiIgImRvd24gdG8gZm9vIg0KPiArDQo+ICsgICAgIyB0ZXN0 IHN0ZXBwaW5nIGludG8gYW5kIG91dCBvZiB0YWlsY2FsbHMuDQo+ICsgICAgZ2RiX3Rlc3QgImZp bmlzaCIgIlxbXlxyXG5cXSptYWluIFxcKFxcKSBhdCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxj YWxsLmM6MzhcclxuLioiIFwNCj4gKwkiZmluaXNoLjEiDQo+ICsgICAgZ2RiX3Rlc3QgInJldmVy c2Utc3RlcCIgIlxbXlxyXG5cXSpiYXIgXFwoXFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFp bGNhbGwuYzoyNFxyXG4uKiIgXA0KPiArCSJyZXZlcnNlLXN0ZXAuMSINCj4gKyAgICBnZGJfdGVz dCAicmV2ZXJzZS1maW5pc2giICJcW15cclxuXF0qZm9vIFxcKFxcKSBhdCAke29wdGlvbmFsX2Zp bGVwYXRofXRhaWxjYWxsLmM6MjlcclxuLioiIFwNCj4gKwkicmV2ZXJzZS1maW5pc2guMSINCj4g KyAgICBnZGJfdGVzdCAicmV2ZXJzZS1zdGVwIiAiXFteXHJcblxdKm1haW4gXFwoXFwpIGF0ICR7 b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzozN1xyXG4uKiIgXA0KPiArCSJyZXZlcnNlLXN0 ZXAuMiINCj4gKyAgICBnZGJfdGVzdCAibmV4dCIgIlxbXlxyXG5cXSozOC4qIiBcDQo+ICsJIm5l eHQuMSINCj4gKyAgICBnZGJfdGVzdCAicmV2ZXJzZS1uZXh0IiAiXFteXHJcblxdKm1haW4gXFwo XFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzozN1xyXG4uKiIgXA0KPiArCSJy ZXZlcnNlLW5leHQuMSINCj4gKyAgICBnZGJfdGVzdCAic3RlcCIgIlxbXlxyXG5cXSpmb28gXFwo XFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzoyOVxyXG4uKiIgXA0KPiArCSJz dGVwLjEiDQo+ICsgICAgZ2RiX3Rlc3QgImZpbmlzaCIgIlxbXlxyXG5cXSptYWluIFxcKFxcKSBh dCAke29wdGlvbmFsX2ZpbGVwYXRofXRhaWxjYWxsLmM6MzhcclxuLioiIFwNCj4gKwkiZmluaXNo LjIiDQo+ICsgICAgZ2RiX3Rlc3QgInJldmVyc2Utc3RlcCIgIlxbXlxyXG5cXSpiYXIgXFwoXFwp IGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzoyNFxyXG4uKiIgXA0KPiArCSJyZXZl cnNlLXN0ZXAuMyINCj4gKyAgICBnZGJfdGVzdCAiZmluaXNoIiAiXFteXHJcblxdKm1haW4gXFwo XFwpIGF0ICR7b3B0aW9uYWxfZmlsZXBhdGh9dGFpbGNhbGwuYzozOFxyXG4uKiIgXA0KPiArCSJm aW5pc2guMyINCj4gK30NCj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS90 c3guZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3RzeC5leHANCj4gaW5kZXggZDMxMmIx NTAyN2MuLjExYWY2ZmYxYmY3IDEwMDY0NA0KPiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJh Y2UvdHN4LmV4cA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdHN4LmV4cA0KPiBA QCAtMTUsNyArMTUsNyBAQA0KPiAgICMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gICAjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiAg IA0KPiAtcmVxdWlyZSBhbGxvd19idHJhY2VfcHRfdGVzdHMgYWxsb3dfdHN4X3Rlc3RzDQo+ICty ZXF1aXJlIGFsbG93X2J0cmFjZV9wdF90ZXN0cyBhbGxvd190c3hfdGVzdHMgdGFyZ2V0X3N1cHBv cnRzX2J0cmFjZQ0KDQpEbyB5b3UgaGFwcGVuIHRvIGtub3cgd2h5IHRoaXMgdGVzdCBvbmx5IHdv cmtzIHdpdGggcHQgc3R5bGUgYnRyYWNlPyBJIA0KYXBwYXJlbnRseSBkb250IGhhdmUgVFNYIGhh cmR3YXJlLCBzbyBJIGNhbid0IHRlc3QgdGhpbmdzIGJ5IGhhbmQgYW5kIA0KZmlndXJlIGl0IG91 dCwgdW5mb3J0dW5hdGVseS4NCg0KaWYgaXQgaXMgdGhlIHBvaW50IG9mIHRoZSB0ZXN0IHRvIG9u bHkgdXNlIHB0LCBJIGRvbid0IHRoaW5rIHRoZSANCmFkZGl0aW9uIG9mICJ0YXJnZXRfc3VwcG9y dHNfYnRyYWNlIiBtYWtlcyBzZW5zZSwgc2luY2UgdGhlIA0KYWxsb3dfYnRyYWNlX3B0X3Rlc3Rz IGFscmVhZHkgY292ZXJzIHdoYXQgeW91IG5lZWQuIEkgdGhpbmsganVzdCBhIA0KY29tbWVudCBh dCB0aGUgdG9wIG9mIHRoZSBmaWxlIHNheWluZyB0aGF0IHRoaXMgaXMgYSBidHJhY2UgcHQgc3Bl Y2lmaWMgDQp0ZXN0IHdvdWxkIHN1ZmZpY2UuDQoNCk90aGVyd2lzZSwgSSdkIGxpa2UgdG8gc2Vl IHRoaXMgdGVzdCBhbHNvIHVzaW5nIHRoZSBCVFMgc3R5bGUuDQoNCj4gICANCj4gICBzdGFuZGFy ZF90ZXN0ZmlsZSAuYyB4ODYtdHN4LlMNCj4gICBpZiBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFp bGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAiJHNyY2ZpbGUgJHNyY2ZpbGUyIiB7ZGVidWd9XSB7 DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdW5rbm93bl9mdW5jdGlv bnMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3Vua25vd25fZnVuY3Rpb25zLmV4cA0K PiBpbmRleCBiMzM1ZTc0Yzg3YS4uOWZjYTRhOWVlYzUgMTAwNjQ0DQo+IC0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmJ0cmFjZS91bmtub3duX2Z1bmN0aW9ucy5leHANCj4gKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYnRyYWNlL3Vua25vd25fZnVuY3Rpb25zLmV4cA0KPiBAQCAtMTcsNDggKzE3LDU0 IEBADQo+ICAgIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiAgICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQo+ICAgDQo+IC1yZXF1aXJl IGFsbG93X2J0cmFjZV90ZXN0cw0KPiAtDQo+ICtyZXF1aXJlIHRhcmdldF9zdXBwb3J0c19idHJh Y2UNCj4gICBzdGFuZGFyZF90ZXN0ZmlsZQ0KPiAgIA0KPiAgICMgV2UgZXhwZWN0IGEgc3BlY2lm aWMgZnVuY3Rpb24gY2FsbCBoaXN0b3J5LiAgVGhpcyBnZXRzIG1lc3NlZCB1cCB3aXRoDQo+ICAg IyBQSUUgb24gMzItYml0Lg0KPiAgICMNCj4gICAjIEFsc28gZGlzY2FyZCBsb2NhbCBzeW1ib2xz Lg0KPiAtaWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZp bGUgJHNyY2ZpbGUgXA0KPiAraWYgW2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0byBwcmVwYXJl IiAkdGVzdGZpbGUgJHNyY2ZpbGUgXA0KPiAgIAl7bGRmbGFncz0tV2wsLXggbm9waWV9XSB7DQo+ ICAgICAgIHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLWlmICFbcnVudG8gdGVzdF0gew0KPiAt ICAgIHJldHVybiAtMQ0KPiAtfQ0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMi ICJwdCJ9IHsNCj4gKyAgICBpZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0K PiArCXVuc3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7 bWV0aG9kfSINCj4gKwljb250aW51ZQ0KPiArICAgIH0NCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICIk e3Rlc3RmaWxlfSINCj4gKyAgICBpZiAhW3J1bnRvIHRlc3RdIHsNCj4gKwljb250aW51ZQ0KPiAr ICAgIH0NCj4gICANCj4gLSMgd2Ugd2FudCB0byBzZWUgdGhlIGZ1bGwgdHJhY2UgZm9yIHRoaXMg dGVzdA0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGZ1bmN0aW9uLWNhbGwtaGlz dG9yeS1zaXplIDAiDQo+ICsgICAgIyB3ZSB3YW50IHRvIHNlZSB0aGUgZnVsbCB0cmFjZSBmb3Ig dGhpcyB0ZXN0DQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcmVjb3JkIGZ1bmN0aW9u LWNhbGwtaGlzdG9yeS1zaXplIDAiDQo+ICAgDQo+IC0jIHRyYWNlIGZyb20gb25lIGNhbGwgb2Yg dGVzdCB0byB0aGUgbmV4dA0KPiAtZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlIg0K PiAtZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gdGVzdCIgIi4qdGVzdC4qIg0K PiArICAgICMgdHJhY2UgZnJvbSBvbmUgY2FsbCBvZiB0ZXN0IHRvIHRoZSBuZXh0DQo+ICsgICAg Z2RiX3Rlc3Rfbm9fb3V0cHV0ICJyZWNvcmQgYnRyYWNlICR7bWV0aG9kfSINCj4gKyAgICBnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAiY29udCB0byB0ZXN0IiAiLip0ZXN0LioiDQo+ICAgDQo+ IC0jIHNob3cgdGhlIGZsYXQgYnJhbmNoIHRyYWNlDQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0 aW9uLWNhbGwtaGlzdG9yeSAxIiBbbXVsdGlfbGluZSBcDQo+IC0gICIxXHR0ZXN0IiBcDQo+IC0g ICIyXHRcXFw/XFxcPyIgXA0KPiAtICAiM1x0XFxcP1xcXD8iIFwNCj4gLSAgIjRcdFxcXD9cXFw/ IiBcDQo+IC0gICI1XHR0ZXN0IiBcDQo+IC0gICI2XHRtYWluIiBcDQo+IC0gICI3XHR0ZXN0IiBc DQo+IC0gIF0gImZsYXQiDQo+ICsgICAgIyBzaG93IHRoZSBmbGF0IGJyYW5jaCB0cmFjZQ0KPiAr ICAgIGdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IDEiIFttdWx0aV9saW5l IFwNCj4gKwkiMVx0dGVzdCIgXA0KPiArCSIyXHRcXFw/XFxcPyIgXA0KPiArCSIzXHRcXFw/XFxc PyIgXA0KPiArCSI0XHRcXFw/XFxcPyIgXA0KPiArCSI1XHR0ZXN0IiBcDQo+ICsJIjZcdG1haW4i IFwNCj4gKwkiN1x0dGVzdCIgXA0KPiArCV0gImZsYXQiDQo+ICAgDQo+IC0jIHNob3cgdGhlIGJy YW5jaCB0cmFjZSB3aXRoIGNhbGxzIGluZGVudGVkDQo+IC1nZGJfdGVzdCAicmVjb3JkIGZ1bmN0 aW9uLWNhbGwtaGlzdG9yeSAvYyAxIiBbbXVsdGlfbGluZSBcDQo+IC0gICIxXHQgIHRlc3QiIFwN Cj4gLSAgIjJcdCAgICBcXFw/XFxcPyIgXA0KPiAtICAiM1x0ICAgICAgXFxcP1xcXD8iIFwNCj4g LSAgIjRcdCAgICBcXFw/XFxcPyIgXA0KPiAtICAiNVx0ICB0ZXN0IiBcDQo+IC0gICI2XHRtYWlu IiBcDQo+IC0gICI3XHQgIHRlc3QiIFwNCj4gLSAgXSAiaW5kZW50ZWQiDQo+ICsgICAgIyBzaG93 IHRoZSBicmFuY2ggdHJhY2Ugd2l0aCBjYWxscyBpbmRlbnRlZA0KPiArICAgIGdkYl90ZXN0ICJy ZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC9jIDEiIFttdWx0aV9saW5lIFwNCj4gKwkiMVx0 ICB0ZXN0IiBcDQo+ICsJIjJcdCAgICBcXFw/XFxcPyIgXA0KPiArCSIzXHQgICAgICBcXFw/XFxc PyIgXA0KPiArCSI0XHQgICAgXFxcP1xcXD8iIFwNCj4gKwkiNVx0ICB0ZXN0IiBcDQo+ICsJIjZc dG1haW4iIFwNCj4gKwkiN1x0ICB0ZXN0IiBcDQo+ICsJXSAiaW5kZW50ZWQiDQo+ICt9DQo+IGRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdmRzby5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5idHJhY2UvdmRzby5leHANCj4gaW5kZXggZWRiYjIyMmY3YjYuLjM2ZTdiOWVlZmJh IDEwMDY0NA0KPiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdmRzby5leHANCj4gKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYnRyYWNlL3Zkc28uZXhwDQo+IEBAIC0yMCwyNSArMjAsMzYg QEANCj4gICAjDQo+ICAgIyBUZXN0IHRoYXQgd2UgY2FuIGFjY2VzcyB0aGUgdmRzbyBtZW1vcnkg ZHVyaW5nIHJlcGxheSBmb3Igc3RlcHBpbmcuDQo+ICAgDQo+IC1yZXF1aXJlIGFsbG93X2J0cmFj ZV90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlDQo+ICAgDQo+ICAgc3Rh bmRhcmRfdGVzdGZpbGUNCj4gLWlmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJl cGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlXSB7DQo+ICtpZiB7IVt0YXJnZXRfc3VwcG9ydHNfYnRy YWNlXX0gew0KPiArICAgIHVuc3VwcG9ydGVkICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCBidHJh Y2UuIg0KPiAgICAgICByZXR1cm4gLTENCj4gICB9DQo+ICAgDQo+IC1pZiAhW3J1bnRvX21haW5d IHsNCj4gK2lmIFtidWlsZF9leGVjdXRhYmxlICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxl ICRzcmNmaWxlXSB7DQo+ICAgICAgIHJldHVybiAtMQ0KPiAgIH0NCj4gICANCj4gLSMgY2FwdHVy ZSB0aGUgZGlzYXNzZW1ibHkgb2YgZ2V0dGltZW9mZGF5IHdoaWxlIGxpdmUgZGVidWdnaW5nDQo+ IC1zZXQgbGl2ZV9nZXR0aW1lb2ZkYXkgW2NhcHR1cmVfY29tbWFuZF9vdXRwdXQgImRpc2Fzc2Vt YmxlIGdldHRpbWVvZmRheSIgIiJdDQo+ICtmb3JlYWNoX3dpdGhfcHJlZml4IG1ldGhvZCB7ImJ0 cyIgInB0In0gew0KPiArICAgIGlmIHsgIVthbGxvd19idHJhY2VfdGVzdHMgJG1ldGhvZF0gfSB7 DQo+ICsJdW5zdXBwb3J0ZWQgInRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IHJlY29yZC1idHJhY2Ug JHttZXRob2R9Ig0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiArICAgIGNsZWFuX3Jlc3RhcnQg IiR7dGVzdGZpbGV9Ig0KPiArICAgIGlmICFbcnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ ICsgICAgfQ0KPiAgIA0KPiAtIyB0cmFjZSB0aGUgdGVzdCBjb2RlDQo+IC1nZGJfdGVzdF9ub19v dXRwdXQgInJlY29yZCBidHJhY2UiDQo+IC1nZGJfdGVzdCAic3RlcGkiICIuKiINCj4gKyAgICAj IGNhcHR1cmUgdGhlIGRpc2Fzc2VtYmx5IG9mIGdldHRpbWVvZmRheSB3aGlsZSBsaXZlIGRlYnVn Z2luZw0KPiArICAgIHNldCBsaXZlX2dldHRpbWVvZmRheSBbY2FwdHVyZV9jb21tYW5kX291dHB1 dCAiZGlzYXNzZW1ibGUgZ2V0dGltZW9mZGF5IiAiIl0NCj4gICANCj4gLXdpdGhfdGVzdF9wcmVm aXggInJlcGxheSIgew0KPiArICAgICMgdHJhY2UgdGhlIHRlc3QgY29kZQ0KPiArICAgIGdkYl90 ZXN0X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iDQo+ICsgICAgZ2RiX3Rlc3Qg InN0ZXBpIiAiLioiDQo+ICsNCj4gKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJyZXBsYXkiIHsNCj4g ICAJIyBzdGFydCByZXBsYXlpbmcNCj4gICAJZ2RiX3Rlc3QgInJlY29yZCBnb3RvIGJlZ2luIiAi LioiDQo+ICAgCWdkYl90ZXN0ICJpbmZvIHJlY29yZCIgIlJlcGxheSBpbiBwcm9ncmVzc1wuXFte XFxcclxcXG5cXSoiDQo+IEBAIC00OCw4ICs1OSw5IEBAIHdpdGhfdGVzdF9wcmVmaXggInJlcGxh eSIgew0KPiAgIA0KPiAgIAkjIHRoZSB0d28gZGlzYXNzZW1ibGllcyBtdXN0IGJlIGlkZW50aWNh bA0KPiAgIAlpZiAhW3N0cmluZyBjb21wYXJlICRsaXZlX2dldHRpbWVvZmRheSAkcmVwbGF5X2dl dHRpbWVvZmRheV0gIHsNCj4gLQkJcGFzcyAiZGlzYXNzZW1ibGUgZ2V0dGltZW9mZGF5Ig0KPiAt CX0gZWxzZSB7DQo+IC0JCWZhaWwgImRpc2Fzc2VtYmxlIGdldHRpbWVvZmRheSINCj4gKwkgICAg cGFzcyAiZGlzYXNzZW1ibGUgZ2V0dGltZW9mZGF5Ig0KPiArCX0gZWxzZSAJew0KPiArCSAgICBm YWlsICJkaXNhc3NlbWJsZSBnZXR0aW1lb2ZkYXkiDQo+ICAgCX0NCj4gKyAgICB9DQo+ICAgfQ0K PiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXJlY29yZC1idHJhY2Ut dGhyZWFkcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcmVjb3JkLWJ0cmFjZS10 aHJlYWRzLmV4cA0KPiBpbmRleCBkNzIzODc5MGJjNC4uMzM3YTZmOGI3YzcgMTAwNjQ0DQo+IC0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1yZWNvcmQtYnRyYWNlLXRocmVhZHMuZXhw DQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1yZWNvcmQtYnRyYWNlLXRocmVh ZHMuZXhwDQo+IEBAIC0xNyw3ICsxNyw3IEBADQo+ICAgDQo+ICAgbG9hZF9saWIgZ2RiLXB5dGhv bi5leHANCj4gICANCj4gLXJlcXVpcmUgYWxsb3dfYnRyYWNlX3Rlc3RzIGFsbG93X3B5dGhvbl90 ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlIGFsbG93X3B5dGhvbl90ZXN0 cw0KPiAgIA0KPiAgIHN0YW5kYXJkX3Rlc3RmaWxlDQo+ICAgDQo+IEBAIC0yNSw0NSArMjUsNTIg QEAgaWYgeyBbZ2RiX2NvbXBpbGVfcHRocmVhZHMgIiRzcmNkaXIvJHN1YmRpci8kc3JjZmlsZSIg IiRiaW5maWxlIiBleGVjdXRhYmxlIHtkZWINCj4gICAgICAgdW50ZXN0ZWQgImZhaWxlZCB0byBw cmVwYXJlIg0KPiAgICAgICByZXR1cm4gLTENCj4gICB9DQo+IC1jbGVhbl9yZXN0YXJ0ICR0ZXN0 ZmlsZQ0KPiAgIA0KPiAtaWYgeyAhW3J1bnRvX21haW5dIH0gew0KPiAtICAgIHJldHVybiAtMQ0K PiAtfQ0KPiArZm9yZWFjaF93aXRoX3ByZWZpeCBtZXRob2QgeyJidHMiICJwdCJ9IHsNCj4gKyAg ICBpZiB7ICFbYWxsb3dfYnRyYWNlX3Rlc3RzICRtZXRob2RdIH0gew0KPiArCXVuc3VwcG9ydGVk ICJ0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCByZWNvcmQtYnRyYWNlICR7bWV0aG9kfSINCj4gKwlj b250aW51ZQ0KPiArICAgIH0NCj4gICANCj4gLSMgc2V0IHVwIGJyZWFrcG9pbnRzDQo+IC1nZGJf YnJlYWtwb2ludCAkc3JjZmlsZTpbZ2RiX2dldF9saW5lX251bWJlciAiYnAxIiAkc3JjZmlsZV0N Cj4gLWdkYl9icmVha3BvaW50ICRzcmNmaWxlOltnZGJfZ2V0X2xpbmVfbnVtYmVyICJicDIiICRz cmNmaWxlXQ0KPiArICAgIGNsZWFuX3Jlc3RhcnQgIiR7dGVzdGZpbGV9Ig0KPiArICAgIGlmICFb cnVudG9fbWFpbl0gew0KPiArCWNvbnRpbnVlDQo+ICsgICAgfQ0KPiAgIA0KPiAtIyByZWNvcmQg ZGF0YQ0KPiAtZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gYnAuMSIgIi4qYnAx LioiDQo+IC1nZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UiDQo+IC1nZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAiY29udCB0byBicC4yIiAiLipicDIuKiINCj4gKyAgICAjIHNldCB1 cCBicmVha3BvaW50cw0KPiArICAgIGdkYl9icmVha3BvaW50ICRzcmNmaWxlOltnZGJfZ2V0X2xp bmVfbnVtYmVyICJicDEiICRzcmNmaWxlXQ0KPiArICAgIGdkYl9icmVha3BvaW50ICRzcmNmaWxl OltnZGJfZ2V0X2xpbmVfbnVtYmVyICJicDIiICRzcmNmaWxlXQ0KPiAgIA0KPiAtIyBhY3F1aXJl IHRoZSByZWNvcmQgb2JqZWN0cyBmb3IgdGhyZWFkIDEgYW5kIHRocmVhZCAyDQo+IC1nZGJfdGVz dCAidGhyZWFkIDEiICIuKiINCj4gLWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0 b3J5IiAiLioiICJmY2ggdGhyZWFkIDEiDQo+IC1nZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiBy ZWMxID0gZ2RiLmN1cnJlbnRfcmVjb3JkaW5nKCkiDQo+IC1nZGJfdGVzdCAidGhyZWFkIDIiICIu KiINCj4gLWdkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2FsbC1oaXN0b3J5IiAiLioiICJmY2gg dGhyZWFkIDIiDQo+IC1nZGJfdGVzdF9ub19vdXRwdXQgInB5dGhvbiByZWMyID0gZ2RiLmN1cnJl bnRfcmVjb3JkaW5nKCkiDQo+ICsgICAgIyByZWNvcmQgZGF0YQ0KPiArICAgIGdkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJjb250IHRvIGJwLjEiICIuKmJwMS4qIg0KPiArICAgIGdkYl90ZXN0 X25vX291dHB1dCAicmVjb3JkIGJ0cmFjZSAke21ldGhvZH0iDQo+ICsgICAgZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgImNvbnQgdG8gYnAuMiIgIi4qYnAyLioiDQo+ICAgDQo+IC0jIFRocmVh ZCAxIGlzIHN1cHBvc2VkIHRvIGNhbGwgZnVuYzEgKCksIHRocmVhZCAyIGlzIHN1cHBvc2VkIHRv IGNhbGwgZnVuYzIgKCkuDQo+IC0jIENoZWNrIHRoYXQgdGhlIGZ1bmN0aW9uIGNhbGwgaGlzdG9y eSBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkIGNvbnRhaW5zIGEgY2FsbA0KPiAtIyB0byB0aGUgcmln aHQgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvbnRhaW4gYSBjYWxsIHRvIHRoZSB3cm9uZyBmdW5j dGlvbi4NCj4gLXByb2MgY2hlY2tfaW5zbl9mb3JfdGhyZWFkIHsgc2VsZiBvdGhlciB9IHsNCj4g LSAgd2l0aF90ZXN0X3ByZWZpeCAiY2hlY2tpbmcgdGhyZWFkICRzZWxmIiB7DQo+IC0gICAgZ2Ri X3Rlc3Rfbm9fb3V0cHV0ICJweXRob24gZmNoID0gcmVjJHNlbGYuZnVuY3Rpb25fY2FsbF9oaXN0 b3J5Ig0KPiAtICAgIGdkYl90ZXN0X25vX291dHB1dCAicHl0aG9uIGYxY2FsbHMgPSBce3ggZm9y IHggaW4gZmNoIGlmIHguc3ltYm9sIGFuZCB4LnN5bWJvbC5uYW1lID09IFwiZnVuYzFcIlx9Ig0K PiAtICAgIGdkYl90ZXN0X25vX291dHB1dCAicHl0aG9uIGYyY2FsbHMgPSBce3ggZm9yIHggaW4g ZmNoIGlmIHguc3ltYm9sIGFuZCB4LnN5bWJvbC5uYW1lID09IFwiZnVuYzJcIlx9Ig0KPiArICAg ICMgYWNxdWlyZSB0aGUgcmVjb3JkIG9iamVjdHMgZm9yIHRocmVhZCAxIGFuZCB0aHJlYWQgMg0K PiArICAgIGdkYl90ZXN0ICJ0aHJlYWQgMSIgIi4qIg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQg ZnVuY3Rpb24tY2FsbC1oaXN0b3J5IiAiLioiICJmY2ggdGhyZWFkIDEiDQo+ICsgICAgZ2RiX3Rl c3Rfbm9fb3V0cHV0ICJweXRob24gcmVjMSA9IGdkYi5jdXJyZW50X3JlY29yZGluZygpIg0KPiAr ICAgIGdkYl90ZXN0ICJ0aHJlYWQgMiIgIi4qIg0KPiArICAgIGdkYl90ZXN0ICJyZWNvcmQgZnVu Y3Rpb24tY2FsbC1oaXN0b3J5IiAiLioiICJmY2ggdGhyZWFkIDIiDQo+ICsgICAgZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJweXRob24gcmVjMiA9IGdkYi5jdXJyZW50X3JlY29yZGluZygpIg0KPiAgIA0K PiAtICAgIGdkYl90ZXN0ICJweXRob24gcHJpbnQobm90IGYke3NlbGZ9Y2FsbHMpIiAiRmFsc2Ui DQo+IC0gICAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludChub3QgZiR7b3RoZXJ9Y2FsbHMpIiAiVHJ1 ZSINCj4gLSAgfQ0KPiAtfQ0KPiArICAgICMgVGhyZWFkIDEgaXMgc3VwcG9zZWQgdG8gY2FsbCBm dW5jMSAoKSwgdGhyZWFkIDIgaXMgc3VwcG9zZWQgdG8gY2FsbCBmdW5jMiAoKS4NCj4gKyAgICAj IENoZWNrIHRoYXQgdGhlIGZ1bmN0aW9uIGNhbGwgaGlzdG9yeSBmb3IgdGhlIGN1cnJlbnQgdGhy ZWFkIGNvbnRhaW5zIGEgY2FsbA0KPiArICAgICMgdG8gdGhlIHJpZ2h0IGZ1bmN0aW9uIGFuZCBk b2VzIG5vdCBjb250YWluIGEgY2FsbCB0byB0aGUgd3JvbmcgZnVuY3Rpb24uDQo+ICsgICAgcHJv YyBjaGVja19pbnNuX2Zvcl90aHJlYWQgeyBzZWxmIG90aGVyIH0gew0KPiArCXdpdGhfdGVzdF9w cmVmaXggImNoZWNraW5nIHRocmVhZCAkc2VsZiIgew0KPiArCSAgICBnZGJfdGVzdF9ub19vdXRw dXQgInB5dGhvbiBmY2ggPSByZWMkc2VsZi5mdW5jdGlvbl9jYWxsX2hpc3RvcnkiDQo+ICsJICAg IGdkYl90ZXN0X25vX291dHB1dCAicHl0aG9uIGYxY2FsbHMgPSBce3ggZm9yIHggaW4gZmNoIGlm IHguc3ltYm9sIGFuZCB4LnN5bWJvbC5uYW1lID09IFwiZnVuYzFcIlx9Ig0KPiArCSAgICBnZGJf dGVzdF9ub19vdXRwdXQgInB5dGhvbiBmMmNhbGxzID0gXHt4IGZvciB4IGluIGZjaCBpZiB4LnN5 bWJvbCBhbmQgeC5zeW1ib2wubmFtZSA9PSBcImZ1bmMyXCJcfSINCj4gKw0KPiArCSAgICBnZGJf dGVzdCAicHl0aG9uIHByaW50KG5vdCBmJHtzZWxmfWNhbGxzKSIgIkZhbHNlIg0KPiArCSAgICBn ZGJfdGVzdCAicHl0aG9uIHByaW50KG5vdCBmJHtvdGhlcn1jYWxscykiICJUcnVlIg0KPiArCX0N Cj4gKyAgICB9DQo+ICAgDQo+IC1mb3JlYWNoX3dpdGhfcHJlZml4IHRocmVhZCB7IDEgMiB9IHsN Cj4gLSAgZ2RiX3Rlc3QgInRocmVhZCAkdGhyZWFkIg0KPiAtICBjaGVja19pbnNuX2Zvcl90aHJl YWQgMSAyDQo+IC0gIGNoZWNrX2luc25fZm9yX3RocmVhZCAyIDENCj4gKyAgICBmb3JlYWNoX3dp dGhfcHJlZml4IHRocmVhZCB7IDEgMiB9IHsNCj4gKwlnZGJfdGVzdCAidGhyZWFkICR0aHJlYWQi DQo+ICsJY2hlY2tfaW5zbl9mb3JfdGhyZWFkIDEgMg0KPiArCWNoZWNrX2luc25fZm9yX3RocmVh ZCAyIDENCj4gKyAgICB9DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LXJlY29yZC1idHJhY2UuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LXJlY29yZC1idHJhY2UuZXhwDQo+IGluZGV4IDcxZmY1MmVkMTM3Li4wMjEyNzFlMWQxNCAxMDA2 NDQNCj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXJlY29yZC1idHJhY2UuZXhw DQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1yZWNvcmQtYnRyYWNlLmV4cA0K PiBAQCAtMTcsNyArMTcsOCBAQA0KPiAgIA0KPiAgICMgU2tpcCB0aGlzIHRlc3QgaWYgYnRyYWNl IGlzIGRpc2FibGVkLg0KPiAgIA0KPiAtcmVxdWlyZSBhbGxvd19idHJhY2VfdGVzdHMgYWxsb3df cHl0aG9uX3Rlc3RzDQo+ICtyZXF1aXJlIGFsbG93X2J0cmFjZV9idHNfdGVzdHMgYWxsb3dfYnRy YWNlX3B0X3Rlc3RzIGFsbG93X3B5dGhvbl90ZXN0cw0KPiArcmVxdWlyZSB0YXJnZXRfc3VwcG9y dHNfYnRyYWNlDQpJbiB0aGlzIHRlc3QgeW91J3JlIHJlcXVpcmluZyB0aGF0IGJvdGggcHQgYW5k IGJ0cyBtZXRob2RzIG9mIHJlY29yZGluZyANCmFyZSBhdmFpbGFibGUuIElzIHRoYXQgcmVhbGx5 IG5lY2Vzc2FyeT8NCkFsc28sIHRoZSB0YXJnZXRfc3VwcG9ydHNfYnRyYWNlIGhlcmUgaXMgcmVk dW50YW50LCBzaW5jZSB0aGUgcHJldmlvdXMgDQpsaW5lIGlzIGV2ZW4gbW9yZSByZXN0cmljdGl2 ZS4NCj4gICANCj4gICBsb2FkX2xpYiBnZGItcHl0aG9uLmV4cA0KPiAgIA0KPiBkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAN Cj4gaW5kZXggOWE5MDZmMGYzNDkuLjI0MWFlYzdiMTYxIDEwMDY0NA0KPiAtLS0gYS9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHANCj4g QEAgLTQwMDgsMTcgKzQwMDgsMjUgQEAgZ2RiX2NhY2hpbmdfcHJvYyBhbGxvd19hdng1MTJmcDE2 X3Rlc3RzIHt9IHsNCj4gICAgICAgcmV0dXJuICRhbGxvd19hdng1MTJmcDE2X3Rlc3RzDQo+ICAg fQ0KPiAgIA0KPiAtIyBSdW4gYSB0ZXN0IG9uIHRoZSB0YXJnZXQgdG8gc2VlIGlmIGl0IHN1cHBv cnRzIGJ0cmFjZSBoYXJkd2FyZS4gIFJldHVybiAxIGlmIHNvLA0KPiAtIyAwIGlmIGl0IGRvZXMg bm90LiAgQmFzZWQgb24gJ2NoZWNrX3ZteF9od19hdmFpbGFibGUnIGZyb20gdGhlIEdDQyB0ZXN0 c3VpdGUuDQo+IC0NCj4gLWdkYl9jYWNoaW5nX3Byb2MgYWxsb3dfYnRyYWNlX3Rlc3RzIHt9IHsN Cj4gLSAgICBnbG9iYWwgc3JjZGlyIHN1YmRpciBnZGJfcHJvbXB0IGluZmVyaW9yX2V4aXRlZF9y ZQ0KPiArIyBDaGVjayBpZiBidHJhY2UgaXMgc3VwcG9ydGVkIG9uIHRoZSB0YXJnZXQuICBSZXR1 cm4gMSBpZg0KPiArIyBzbywgMCBpZiBpdCBkb2VzIG5vdC4NCj4gICANCj4gLSAgICBzZXQgbWUg ImFsbG93X2J0cmFjZV90ZXN0cyINCj4gK2dkYl9jYWNoaW5nX3Byb2MgdGFyZ2V0X3N1cHBvcnRz X2J0cmFjZSB7fSB7DQo+ICAgICAgIGlmIHsgIVtpc3RhcmdldCAiaT84Ni0qLSoiXSAmJiAhW2lz dGFyZ2V0ICJ4ODZfNjQtKi0qIl0gfSB7DQo+IC0JdmVyYm9zZSAiJG1lOiAgdGFyZ2V0IGRvZXMg bm90IHN1cHBvcnQgYnRyYWNlLCByZXR1cm5pbmcgMCIgMg0KPiArCXZlcmJvc2UgInRhcmdldF9z dXBwb3J0c19idHJhY2U6ICB0YXJnZXQgZG9lcyBub3Qgc3VwcG9ydCBidHJhY2UsIHJldHVybmlu ZyAwIiAyDQo+ICAgCXJldHVybiAwDQo+ICAgICAgIH0NCj4gKyAgICByZXR1cm4gMQ0KDQpBcyBJ IG1lbnRpb25lZCBwcmV2aW91c2x5LCBJIHRoaW5rIHRoZSBwcm9jIG5hbWUgc2hvdWxkbid0IGJl IGNoYW5nZWQsIA0KYW5kIHRoZSBuZXcgcHJvYyBzaG91bGQgYmUgY2FsbGVkIHRhcmdldF9zdXBw b3J0c19idHJhY2Ugd2l0aCBhIA0KcGFyYW1ldGVyLCBvciB0YXJnZXRfc3VwcG9ydHNfYnRyYWNl X21ldGhvZCBhbmQgdGhlIHBhcmFtZXRlci4NCg0KQWxzbywgbm93IHlvdSdyZSBub3TCoCB0ZXN0 aW5nIGZ1cnRoZXIgdGhhbiBpZiB0aGUgdGFyZ2V0IGlzIGFuIGludGVsIA0KYm9hcmQuIEkgdGhp bmsgaXQgd291bGQgYmUgYmV0dGVyIGlmIGZpcnN0IHlvdSB0cmllZCB0aGUgaXN0YXJnZXQgYWJv dmUsIA0KdGhlbiBjaGVja2VkIGlmIGVpdGhlciBidHMgb3IgcHQgaXMgc3VwcG9ydGVkIHVzaW5n IHRoZSBwcm9jcyBiZWxvdy4gDQpTaW5jZSB0aGV5IGFyZSBjYWNoaW5nIHByb2NzLCB0aGVyZSdz IG5vIHByb2JsZW0gaW4gY2FsbGluZyB0aGVtIGhlcmUgDQp0aGVuIGNhbGxpbmcgdGhlbSBhZ2Fp biBpbiB0aGUgdGVzdCBmaWxlcyBhbnl3YXkuDQoNCj4gK30NCj4gKw0KPiArIyBSdW4gYSB0ZXN0 IG9uIHRoZSB0YXJnZXQgdG8gc2VlIGlmIGl0IHN1cHBvcnRzIGJ0cmFjZSAnYnRzJyBtZXRob2Qu ICBSZXR1cm4NCj4gKyMgMSBpZiBzbywgMCBpZiBpdCBkb2VzIG5vdC4gIEJhc2VkIG9uICdjaGVj a192bXhfaHdfYXZhaWxhYmxlJyBmcm9tIHRoZSBHQ0MNCj4gKyMgdGVzdHN1aXRlLg0KPiArDQo+ ICtnZGJfY2FjaGluZ19wcm9jIGFsbG93X2J0cmFjZV9idHNfdGVzdHMge30gew0KPiArICAgIGds b2JhbCBzcmNkaXIgc3ViZGlyIGdkYl9wcm9tcHQgaW5mZXJpb3JfZXhpdGVkX3JlDQo+ICsNCj4g KyAgICBzZXQgbWUgImFsbG93X2J0cmFjZV9idHNfdGVzdHMiDQo+ICAgDQo+ICAgICAgICMgQ29t cGlsZSBhIHRlc3QgcHJvZ3JhbS4NCj4gICAgICAgc2V0IHNyYyB7IGludCBtYWluKCkgeyByZXR1 cm4gMDsgfSB9DQo+IEBAIC00MDM3LDE5ICs0MDQ1LDE5IEBAIGdkYl9jYWNoaW5nX3Byb2MgYWxs b3dfYnRyYWNlX3Rlc3RzIHt9IHsNCj4gICAgICAgfQ0KPiAgICAgICAjIEluIGNhc2Ugb2YgYW4g dW5leHBlY3RlZCBvdXRwdXQsIHdlIHJldHVybiAyIGFzIGEgZmFpbCB2YWx1ZS4NCj4gICAgICAg c2V0IGFsbG93X2J0cmFjZV90ZXN0cyAyDQo+IC0gICAgZ2RiX3Rlc3RfbXVsdGlwbGUgInJlY29y ZCBidHJhY2UiICJjaGVjayBidHJhY2Ugc3VwcG9ydCIgew0KPiAtICAgICAgICAtcmUgIllvdSBj YW4ndCBkbyB0aGF0IHdoZW4geW91ciB0YXJnZXQgaXMuKlxyXG4kZ2RiX3Byb21wdCAkIiB7DQo+ ICsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgInJlY29yZCBidHJhY2UgYnRzIiAiY2hlY2sgYnRyYWNl IGJ0cyBzdXBwb3J0IiB7DQo+ICsJLXJlICJZb3UgY2FuJ3QgZG8gdGhhdCB3aGVuIHlvdXIgdGFy Z2V0IGlzLipcclxuJGdkYl9wcm9tcHQgJCIgew0KPiAgIAkgICAgc2V0IGFsbG93X2J0cmFjZV90 ZXN0cyAwDQo+IC0gICAgICAgIH0NCj4gLSAgICAgICAgLXJlICJUYXJnZXQgZG9lcyBub3Qgc3Vw cG9ydCBicmFuY2ggdHJhY2luZy4qXHJcbiRnZGJfcHJvbXB0ICQiIHsNCj4gKwl9DQo+ICsJLXJl ICJUYXJnZXQgZG9lcyBub3Qgc3VwcG9ydCBicmFuY2ggdHJhY2luZy4qXHJcbiRnZGJfcHJvbXB0 ICQiIHsNCj4gICAJICAgIHNldCBhbGxvd19idHJhY2VfdGVzdHMgMA0KPiAtICAgICAgICB9DQo+ IC0gICAgICAgIC1yZSAiQ291bGQgbm90IGVuYWJsZSBicmFuY2ggdHJhY2luZy4qXHJcbiRnZGJf cHJvbXB0ICQiIHsNCj4gKwl9DQo+ICsJLXJlICJDb3VsZCBub3QgZW5hYmxlIGJyYW5jaCB0cmFj aW5nLipcclxuJGdkYl9wcm9tcHQgJCIgew0KPiAgIAkgICAgc2V0IGFsbG93X2J0cmFjZV90ZXN0 cyAwDQo+IC0gICAgICAgIH0NCj4gLSAgICAgICAgLXJlICJecmVjb3JkIGJ0cmFjZVxyXG4kZ2Ri X3Byb21wdCAkIiB7DQo+ICsJfQ0KPiArCS1yZSAiXnJlY29yZCBidHJhY2UgYnRzXHJcbiRnZGJf cHJvbXB0ICQiIHsNCj4gICAJICAgIHNldCBhbGxvd19idHJhY2VfdGVzdHMgMQ0KPiAtICAgICAg ICB9DQo+ICsJfQ0KPiAgICAgICB9DQo+ICAgICAgIGdkYl9leGl0DQo+ICAgICAgIHJlbW90ZV9m aWxlIGJ1aWxkIGRlbGV0ZSAkb2JqDQo+IEBAIC00MDY2LDEwICs0MDc0LDYgQEAgZ2RiX2NhY2hp bmdfcHJvYyBhbGxvd19idHJhY2VfcHRfdGVzdHMge30gew0KPiAgICAgICBnbG9iYWwgc3JjZGly IHN1YmRpciBnZGJfcHJvbXB0IGluZmVyaW9yX2V4aXRlZF9yZQ0KPiAgIA0KPiAgICAgICBzZXQg bWUgImFsbG93X2J0cmFjZV9wdF90ZXN0cyINCj4gLSAgICBpZiB7ICFbaXN0YXJnZXQgImk/ODYt Ki0qIl0gJiYgIVtpc3RhcmdldCAieDg2XzY0LSotKiJdIH0gew0KPiAtCXZlcmJvc2UgIiRtZTog IHRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IGJ0cmFjZSwgcmV0dXJuaW5nIDEiIDINCj4gLQlyZXR1 cm4gMA0KPiAtICAgIH0NCj4gICANCj4gICAgICAgIyBDb21waWxlIGEgdGVzdCBwcm9ncmFtLg0K PiAgICAgICBzZXQgc3JjIHsgaW50IG1haW4oKSB7IHJldHVybiAwOyB9IH0NCj4gQEAgLTQxMTIs NiArNDExNiwyMiBAQCBnZGJfY2FjaGluZ19wcm9jIGFsbG93X2J0cmFjZV9wdF90ZXN0cyB7fSB7 DQo+ICAgICAgIHJldHVybiAkYWxsb3dfYnRyYWNlX3B0X3Rlc3RzDQo+ICAgfQ0KPiAgIA0KPiAr IyBXcmFwcGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGlucHV0IGJ0cmFjZSBtZXRob2QgaXMgc3Vw cG9ydGVkLiAgUmV0dXJucyAxDQo+ICsjIGlmIGl0IGlzIHN1cHBvcnRlZCBvdGhlcndpc2UgcmV0 dXJucyAwLg0KPiArDQo+ICtwcm9jIGFsbG93X2J0cmFjZV90ZXN0cyB7bWV0aG9kfSB7DQo+ICsg ICAgaWYge1tzdHJpbmcgbWF0Y2ggInB0IiAiJHttZXRob2R9Il19IHsNCj4gKwlyZXR1cm4gW2Fs bG93X2J0cmFjZV9wdF90ZXN0c10NCj4gKyAgICB9IGVsc2VpZiB7W3N0cmluZyBtYXRjaCAiYnRz IiAiJHttZXRob2R9Il19IHsNCj4gKwlyZXR1cm4gW2FsbG93X2J0cmFjZV9idHNfdGVzdHNdDQo+ ICsgICAgfQ0KPiArDQo+ICsgICAgdmVyYm9zZSAtbG9nICJ3YXJuaW5nOiB1bmtub3duIGJ0cmFj ZSByZWNvcmRpbmcgbWV0aG9kICcke21ldGhvZH0nIg0KPiArICAgICMgU2tpcCB0ZXN0IGZvciB1 bmtub3duIG1ldGhvZCBuYW1lLg0KPiArICAgIHJldHVybiAwDQo+ICt9DQo+ICsNCj4gKw0KPiAg ICMgUnVuIGEgdGVzdCBvbiB0aGUgdGFyZ2V0IHRvIHNlZSBpZiBpdCBzdXBwb3J0cyBBYXJjaDY0 IFNWRSBoYXJkd2FyZS4NCj4gICAjIFJldHVybiAxIGlmIHNvLCAwIGlmIGl0IGRvZXMgbm90LiAg Tm90ZSB0aGlzIGNhdXNlcyBhIHJlc3RhcnQgb2YgR0RCLg0KPiAgIA0KDQpJbnRlbCBEZXV0c2No bGFuZCBHbWJIClJlZ2lzdGVyZWQgQWRkcmVzczogQW0gQ2FtcGVvbiAxMCwgODU1NzkgTmV1Ymli ZXJnLCBHZXJtYW55ClRlbDogKzQ5IDg5IDk5IDg4NTMtMCwgd3d3LmludGVsLmRlIDxodHRwOi8v d3d3LmludGVsLmRlPgpNYW5hZ2luZyBEaXJlY3RvcnM6IENocmlzdGluIEVpc2Vuc2NobWlkLCBT aGFyb24gSGVjaywgVGlmZmFueSBEb29uIFNpbHZhICAKQ2hhaXJwZXJzb24gb2YgdGhlIFN1cGVy dmlzb3J5IEJvYXJkOiBOaWNvbGUgTGF1ClJlZ2lzdGVyZWQgT2ZmaWNlOiBNdW5pY2gKQ29tbWVy Y2lhbCBSZWdpc3RlcjogQW10c2dlcmljaHQgTXVlbmNoZW4gSFJCIDE4NjkyOAo=