From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.3918.1667948624700484143 for ; Tue, 08 Nov 2022 15:03:44 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=EFTl4AWK; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1667948624; x=1699484624; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=gvaPkpNpGkkFF7YvT4dBOKaFV3sBMPTvG+wA+VqeUT4=; b=EFTl4AWKxJs6Hca2tolX2RNbAMLSo0qORrcbN7NuCkDrZQiFtxOfSZjr RymTyxXEAXa7euUHRlz66afTaX3X+ixHyn6B8eYOFZ2KzyhJEKV5uItFD rRYsjrnK8KA9KGYTklYKLf3H56u42xTyDailiA+94GAJE1xAgc1uaZSYW MX3uYlkUTadOMD7mIt0jQbNGyJBHdRLbIl5KZIWRg7AXGYhpBw9P986IO P1wHkHza9hGgtwY41E8EjmlJzQo502BmEEbkSXiltcNpR03xjPaFroiUr ZMXVQAxLq2jPbOwhYsW+l2JaZVfyZLh50rIDU5+8/9gP1p0GC0W2x2yNB g==; X-IronPort-AV: E=McAfee;i="6500,9779,10525"; a="309543582" X-IronPort-AV: E=Sophos;i="5.96,149,1665471600"; d="scan'208";a="309543582" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Nov 2022 15:03:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10525"; a="614450424" X-IronPort-AV: E=Sophos;i="5.96,149,1665471600"; d="scan'208";a="614450424" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga006.jf.intel.com with ESMTP; 08 Nov 2022 15:03:43 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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.2375.31; Tue, 8 Nov 2022 15:03:43 -0800 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 8 Nov 2022 15:03:42 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 8 Nov 2022 15:03:42 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 8 Nov 2022 15:03:42 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZWIQkW94dwR+vCnWJrZd6AurUkxs8v9lfusl72MTfuHzuR1RLbTE1y86JcQXpFWBzqp7pO2LmMXEkS4349li1PXPo0Rq361yAjbQsvz8DRblynp+4xz5c0T54jdZOkAyCukeUBvlJshMdtD3ZlfNMXpmkk2xHwvyH8BStCo4eJO0RAu4Uepn6gkioQV/CYo0mSaQdmgYNU31qMPCXseGWoJyA4e9SYCz6WfohTx2Y9MB4eEasTkpudQpRmtG2rTwkzmMM96Q2KJEn0H7rVN6UOQAl3vojIN28yHUCz5jMnDcEUyZOZJshqincp1Mm5C7pt/m7EF2Uc7dqvtvEt4AwA== 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=gvaPkpNpGkkFF7YvT4dBOKaFV3sBMPTvG+wA+VqeUT4=; b=XnQO5h7sx0pJFr7NDTfvrxrvKcUX+GiLw87N+vX4p0WpdqnEEP1WRtmlq+Jw7+FkwzhTf2blaekoS36hOvnHn4yWpK17HzIL7PM3fIOrsXUyIWVZ8m5tybTxb1y1QjdagU3ifPjHyE6QXFR2r+s3faw06offNV+bT9wQ67cKI5NMufC11++jFrgFp2CneHXZUv2wL6JSzkAik1S8xE87Nzg5I7fSJOlGTjmB4izcF1jr48WylI4MKub3wtBgBXQS4iCIdPBK+sDaZEIHRFBDFCUV47Wuo0cDjnBhxK4/IFi7Lrn2BOsQHUtpC8Gskq252DoWWLjIvT9+AfFiEh0yWg== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CY8PR11MB7011.namprd11.prod.outlook.com (2603:10b6:930:55::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.26; Tue, 8 Nov 2022 23:03:30 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::d936:6054:442a:9dde]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::d936:6054:442a:9dde%5]) with mapi id 15.20.5791.027; Tue, 8 Nov 2022 23:03:30 +0000 From: "Michael D Kinney" To: "Gao, Liming" , "devel@edk2.groups.io" CC: 'Michael Kubacki' , 'Sean Brogan' Subject: Re: [edk2-devel] [Patch V2 3/7] UnitTestFrameworkPkg: Add googletest submodule and GoogleTestLib Thread-Topic: [edk2-devel] [Patch V2 3/7] UnitTestFrameworkPkg: Add googletest submodule and GoogleTestLib Thread-Index: AQHY8IupheJ9cFALgEmzGm5pIZ34q640q4uAgAD/3PA= Date: Tue, 8 Nov 2022 23:03:30 +0000 Message-ID: References: <20221104202528.1157-1-michael.d.kinney@intel.com> <20221104202528.1157-4-michael.d.kinney@intel.com> <03b001d8f346$5247ff20$f6d7fd60$@byosoft.com.cn> In-Reply-To: <03b001d8f346$5247ff20$f6d7fd60$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 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: CO1PR11MB4929:EE_|CY8PR11MB7011:EE_ x-ms-office365-filtering-correlation-id: d7d11c8c-273f-4778-efd5-08dac1dd73db x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WduGkb84FVwHwqUGQzVCq3q+H7MkbAW1CbzmU/6rofwbC8gkA2XWLqwxtadIyjT8sdAiw33l/M1MuoJQHiq8/z+H3CrCrP/kYeN38VReFbcc0lE11DHYA58BOdKjq0NJMq7tj3dTte3YSctackCDjviA4WaZJBUij/17wy8vyflPnzde5tINH7kS5UBC0H8k+RP+N9pBZPAk7GA/HwWm0WZuVJ4jxQiQFTr5l3hf+Rk6H1YX6Zlqkm0AAXNyUhRvgb9845LUxTtnqGrsvgo+nwjPvSQXpCkrcdxifXnecMVvSSvb8JQxmfDHJfW/v7Y9546cjDvK/FLeomosCtypjyS7migidBOUF7IxTzfKnGWzL5PdW3WcUf1/mQxiDWjUY/4hd7WVKsFh1j8JZQa1mtjTc3FS32098IPvMqeJtZZE2S8YocWlO1Q6p3Ox2xtYI4k+kSv8nBWTulJ5lR3SZ8gj+DndAqPPPe6jFNzOzxUik8BJR8qW/5Sc4Mg/o3G4bd/Q9QiO9S1i6Zkyk+qxoyLlte/Op0bVQ/n50MCDa21b4ZfslFYJ1WJGk+ct/DSfCumJ6Ycfxk24N8JD5oxUYK/4eT9pwQoh8X2Oeg3XlUzY9igs3mejFrC+z2B1E5OuJCNKthtrBvm+2/nUTkIYUYEUbq7P5kikfzvCVshyQ92shvGyVkzaoXyHvrrXAz4ZrYh8AN/YgI6LoXtxlxzMtZS5SHqFY4cVfgjsoRzSoVk7ayZ/A+hfUO+t8gxq7DpvLEDjzzrQp+9ZywHL0qloQg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(136003)(396003)(376002)(366004)(39860400002)(451199015)(53546011)(9686003)(26005)(122000001)(7696005)(6506007)(83380400001)(186003)(30864003)(2906002)(55016003)(316002)(71200400001)(110136005)(8936002)(54906003)(38100700002)(76116006)(52536014)(966005)(41300700001)(5660300002)(478600001)(66446008)(66556008)(4326008)(8676002)(64756008)(66946007)(66476007)(86362001)(66899015)(33656002)(38070700005)(82960400001)(16940595002)(579004)(559001)(460985005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dHU4MUc3M1RKSThpM09xUkRqYndOZEdSM1RDOXdOaEswWUs2ZTNvUFhCVWIy?= =?utf-8?B?ejQzZTZBWTFWYmt5L3g1ZUtHSUE0TFVRdlZDQVhRQzVYUDM2OUVJcG50d1Rk?= =?utf-8?B?Qkd6eWxzVnV1M1VHWjRTR0lyTzhobTF1ZDBrZU9HbzU0Y00vT0RTRkc2em9Z?= =?utf-8?B?M2h4bGlQanpXNG9FYXdDZ3RKR1djamYyN2tzYUw3SnpmNnQvNXNwWENaSE4r?= =?utf-8?B?aHhGR1V0d0xQaTNyei8xTlpyYUh6QzlzSkdNQzRvV0FwRDhnd2tHd25teXJq?= =?utf-8?B?UUMvb2RpMGcyS2cxZm5IbjlkSVUwOWQzeFRuTHBqWmhmNlpNUzk0UllGZU1F?= =?utf-8?B?UzN6ZFFKeGlEQktyOWJqNDNXTnBrNmZiZ2wrSDVwaDcxTWkvT21iUWw0cjBV?= =?utf-8?B?UDVUeUtpT0RhMWorWkNGRTJuUkRhNVljMkZQZ0w2L0NPNytQNmNvS3pPUDJa?= =?utf-8?B?V2V5Tnd4MWk1NkVMNHBWeTRydmN5dVl5MjJxTS80ZWxpazU5SUFMK1BvTEcx?= =?utf-8?B?NUNCZmZiaFlBbXkzcjJaUjBXQWVyb2ltSXd4NEp5OXJoZE8vNzhmQTlDbGx5?= =?utf-8?B?TTRJOE5VZ0RXekdzS28yMUdSVHluNUJ4dTFhNDBYbGxBekxPdStjVm96aS9C?= =?utf-8?B?ODVnQ085ZGRtdWd2WnQzUFBOK0JKY3FMdFZ2UGovaFUreHFJOHE2ZlNqdjI5?= =?utf-8?B?aWhxd01SeGtSZ1NITys2NHFOWUVnQTVrRlB3NDdNanpRM1BvZ0NQNkVIV1hu?= =?utf-8?B?NktpbEMrZGJFZ28vWUpsUFBrS2YxNDlvZllyYk1JTE1LcGZLeVpSOFBKTDIy?= =?utf-8?B?MlhHVXZBY3FWaDJuNklQRFdkajVFSHFwT2VJdjZYd2Rxc3dhTnNXbTZ5cDYw?= =?utf-8?B?WFBaZVJIQVJxSnVhbVpCQk1KejRISjlBelQycmpFQ1VMdHVmWGg1ckdPZUFD?= =?utf-8?B?aUJ0TmpyWEdYVzJhNXVub01Qb3NtaGo4S0Nkd2lNOHlLZ0VTZHZNTFdCdkpD?= =?utf-8?B?dC9MVGo4akhXUi9wN2thRFZ2UjMzVC9LSFFXKzlyZnFJei8yWXY3dTAyMWJK?= =?utf-8?B?QVJjbTB1NDlIeWdpV09KMUFxTzZNOWtuMmdjKzdnZkJmRG5jNm5NVFJpUlBq?= =?utf-8?B?ZWpBS05hdUpHVjQvVGRJSUtQTmpXeWpOUmphb3BidGxnczVpVk9VMlRMektI?= =?utf-8?B?MCtrZHBJL3JxZmQvSXB6UUNsaFhPYUlweXh2VysxL3BObU5SYjFIY0VXWXdK?= =?utf-8?B?ajRhNnVkelM4UlRWMnNrRmJMMWZpeXhtSklKdkpkOFlieGZVd2lxRUgrT05a?= =?utf-8?B?VkNlTjN2NStHTlJKMWRwSXEyTjcwdFRQYU5NcWllVUV2eDVwRGJqUGdzTFJP?= =?utf-8?B?VDlSbVVCc1VNalgwN2ppdWh0YVQxaWZIQVRTZVpjaGlwZ0NRZGRHc21EQ0pK?= =?utf-8?B?ODkya3FkTnJBYXhSaks3L3ROUGMzSG5YMlp4SCsxVHErMHhic2NsNlRnNFV1?= =?utf-8?B?RHMzdmZ4bU5pdU1jVUpJK3Nmd1NYMmVvdDFqNDdVYW5sUkcxY1QyRHdHM09o?= =?utf-8?B?TXdBQVpnaXpPbnRzelBBbTVCTWU5eVRNNEFORWVsOGpOTVdzbGJHU2w2a1Rw?= =?utf-8?B?UXJseFVZR2k4NkJDY2Q4VWVMUlJDWHZBcDBzM2gwSmRFRkRUMEhLWFdhbWpN?= =?utf-8?B?Z0NGV3JFMFRPTXlDQ2MxQUdpd0dWeTBHa25PaXk1d0FoWERkK3pGMXZ5amZ2?= =?utf-8?B?aU9iVHNEZ09kWC9SdDBFTWdQdG9STDg5ZzRVVnVmWHhTNENlMjlhcEE2RVd2?= =?utf-8?B?bWkvY2VwVVZXVGxpaUJXRXYvR1ExWVhKK21BQ05pcUtrOXJUZWRhOHpRdVBj?= =?utf-8?B?R1FUMUc4M3NhWndMbllTTWJHSUJRQUI2TTRlS1JqNGhRTTdCa29PVjJIekNy?= =?utf-8?B?WU5oQ3lwUkVnZmo0NXVLS0ZVM0xiMGNIUUJMQ25NSldlOCtHTkYxMGdPY2VF?= =?utf-8?B?ZjROdDJqc3FOU2ppcDZjb3VFMk01Z3BGQ0YyVkJEaWI2S25ydmRlTWRLNVU2?= =?utf-8?B?dDdvRm04bVRFM2ZjdEFsa2grTkZSTHdYaEVYK0ZTL2dqaDdnZ3MxT2I4S1Bz?= =?utf-8?B?WEszVXc3K3o4NWMxYlF3WUhEakprVmtINDN5YXMwRTdVQ3ViYlJ6VlIzdGlp?= =?utf-8?B?VHc9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7d11c8c-273f-4778-efd5-08dac1dd73db X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2022 23:03:30.1760 (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: qt8yzcE/PxhjxcM7oCWKQugUl2wnHdz1WSDMC3BB9T+I26vBuCgrABXarGNhmJtn4seXVh5snOtv4I/d2nllWodWMtVpLgyJAQdg4TgU7b0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7011 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nLA0KDQpUaGFuayB5b3UgZm9yIHRoZSByZW1pbmRlci4gIEkgd2lsbCB1cGRhdGUg UmVhZG1lLnJzdA0KDQpNaWtlDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogZ2FvbGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+IFNlbnQ6IE1vbmRheSwg Tm92ZW1iZXIgNywgMjAyMiAxMTo0NyBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtp bm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6ICdNaWNo YWVsIEt1YmFja2knIDxtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tPjsgJ1NlYW4gQnJvZ2Fu JyA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gU3ViamVjdDog5Zue5aSNOiBbZWRrMi1k ZXZlbF0gW1BhdGNoIFYyIDMvN10gVW5pdFRlc3RGcmFtZXdvcmtQa2c6IEFkZCBnb29nbGV0ZXN0 IHN1Ym1vZHVsZSBhbmQgR29vZ2xlVGVzdExpYg0KPiANCj4gTWlrZToNCj4gICBGb3IgbmV3IHN1 Ym1vZHVsZSwgSSB0aGluayBpdCBpcyBhbHNvIHJlcXVpcmVkIHRvIGJlIG1lbnRpb25lZCBpbiBM aWNlbnNlDQo+IERldGFpbHMgc2VjdGlvbiBpbiBFZGsyXFJlYWRNZS5yc3QNCj4gDQo+IFRoYW5r cw0KPiBMaW1pbmcNCj4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4g5Y+R5Lu25Lq6OiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IOS7o+ihqCBNaWNoYWVs IEQNCj4gPiBLaW5uZXkNCj4gPiDlj5HpgIHml7bpl7Q6IDIwMjLlubQxMeaciDXml6UgNDoyNQ0K PiA+IOaUtuS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiDmioTpgIE6IE1pY2hhZWwg S3ViYWNraSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbT47IFNlYW4gQnJvZ2FuDQo+ID4g PHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4g5Li76aKYOiBbZWRrMi1kZXZlbF0gW1Bh dGNoIFYyIDMvN10gVW5pdFRlc3RGcmFtZXdvcmtQa2c6IEFkZCBnb29nbGV0ZXN0DQo+ID4gc3Vi bW9kdWxlIGFuZCBHb29nbGVUZXN0TGliDQo+ID4NCj4gPiBSRUY6IGh0dHBzOi8vYnVnemlsbGEu dGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDEzNA0KPiA+DQo+ID4gQWRkIHN1Ym1vZHVs ZSBmb3IgZ29vZ2xldGVzdCBhbmQgYWRkIEdvb2dsZVRlc3RMaWIgdGhhdCBpcw0KPiA+IHJlcXVp cmVkIGZvciBHb29nbGVUZXN0IGJhc2VkIHVuaXQgdGVzdHMuIEFkZCBHb29nbGVUZXN0DQo+ID4g ZG9jdW1lbnRhdGlvbiB0byBSZWFkbWUubWQgYWxvbmcgd2l0aCBhIHBvcnQgb2YgdGhlIHNhbXBs ZQ0KPiA+IHVuaXQgdGVzdCB0byB0aGUgR29vZ2xlVGVzdCBzdHlsZS4NCj4gPg0KPiA+IENjOiBN aWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+DQo+ID4gQ2M6IFNl YW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6 IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+IFJldmll d2VkLWJ5OiBNaWNoYWVsIEt1YmFja2kgPG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+DQo+ ID4gLS0tDQo+ID4gIC5naXRtb2R1bGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMyArDQo+ID4gIC4uLi9JbmNsdWRlL0xpYnJhcnkvR29vZ2xlVGVzdExpYi5oICAgICAg ICAgICB8ICAxNCArDQo+ID4gIC4uLi9MaWJyYXJ5L0dvb2dsZVRlc3RMaWIvR29vZ2xlVGVzdExp Yi5pbmYgICB8ICAzNiArKysNCj4gPiAgLi4uL0xpYnJhcnkvR29vZ2xlVGVzdExpYi9Hb29nbGVU ZXN0TGliLnVuaSAgIHwgIDE0ICsNCj4gPiAgLi4uL0xpYnJhcnkvR29vZ2xlVGVzdExpYi9nb29n bGV0ZXN0ICAgICAgICAgIHwgICAxICsNCj4gPiAgVW5pdFRlc3RGcmFtZXdvcmtQa2cvUmVhZE1l Lm1kICAgICAgICAgICAgICAgIHwgMjU1DQo+ID4gKysrKysrKysrKysrKysrLS0NCj4gPiAgLi4u L1NhbXBsZUdvb2dsZVRlc3QvU2FtcGxlR29vZ2xlVGVzdC5jcHAgICAgIHwgMjYzDQo+ID4gKysr KysrKysrKysrKysrKysrDQo+ID4gIC4uLi9TYW1wbGVHb29nbGVUZXN0L1NhbXBsZUdvb2dsZVRl c3RIb3N0LmluZiB8ICAzNSArKysNCj4gPiAgLi4uL1Rlc3QvVW5pdFRlc3RGcmFtZXdvcmtQa2dI b3N0VGVzdC5kc2MgICAgIHwgICA0ICstDQo+ID4gIC4uLi9Vbml0VGVzdEZyYW1ld29ya1BrZy5j aS55YW1sICAgICAgICAgICAgICB8ICAgNCArLQ0KPiA+ICBVbml0VGVzdEZyYW1ld29ya1BrZy9V bml0VGVzdEZyYW1ld29ya1BrZy5kZWMgfCAgIDggKw0KPiA+ICAuLi4vVW5pdFRlc3RGcmFtZXdv cmtQa2dIb3N0LmRzYy5pbmMgICAgICAgICAgfCAgIDQgKy0NCj4gPiAgMTIgZmlsZXMgY2hhbmdl ZCwgNjEwIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQ0KPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQNCj4gPiBVbml0VGVzdEZyYW1ld29ya1BrZy9JbmNsdWRlL0xpYnJhcnkvR29vZ2xlVGVz dExpYi5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IFVuaXRUZXN0RnJhbWV3b3JrUGtn L0xpYnJhcnkvR29vZ2xlVGVzdExpYi9Hb29nbGVUZXN0TGliLmluZg0KPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQNCj4gPiBVbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0dvb2dsZVRlc3RMaWIv R29vZ2xlVGVzdExpYi51bmkNCj4gPiAgY3JlYXRlIG1vZGUgMTYwMDAwDQo+ID4gVW5pdFRlc3RG cmFtZXdvcmtQa2cvTGlicmFyeS9Hb29nbGVUZXN0TGliL2dvb2dsZXRlc3QNCj4gPiAgY3JlYXRl IG1vZGUgMTAwNjQ0DQo+ID4gVW5pdFRlc3RGcmFtZXdvcmtQa2cvVGVzdC9Hb29nbGVUZXN0L1Nh bXBsZS9TYW1wbGVHb29nbGVUZXN0L1NhbXBsZUcNCj4gPiBvb2dsZVRlc3QuY3BwDQo+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IFVuaXRUZXN0RnJhbWV3b3JrUGtnL1Rlc3QvR29vZ2xlVGVz dC9TYW1wbGUvU2FtcGxlR29vZ2xlVGVzdC9TYW1wbGVHDQo+ID4gb29nbGVUZXN0SG9zdC5pbmYN Cj4gPg0KPiA+IGRpZmYgLS1naXQgYS8uZ2l0bW9kdWxlcyBiLy5naXRtb2R1bGVzDQo+ID4gaW5k ZXggYjg0NWM5ZWUzZmYwLi44MDExYTg4ZDlkMjUgMTAwNjQ0DQo+ID4gLS0tIGEvLmdpdG1vZHVs ZXMNCj4gPiArKysgYi8uZ2l0bW9kdWxlcw0KPiA+IEBAIC0yMCwzICsyMCw2IEBADQo+ID4gIFtz dWJtb2R1bGUgIlJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL2phbnNzb24iXQ0KPiA+ICAJcGF0 aCA9IFJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL2phbnNzb24NCj4gPiAgCXVybCA9IGh0dHBz Oi8vZ2l0aHViLmNvbS9ha2hlcm9uL2phbnNzb24NCj4gPiArW3N1Ym1vZHVsZSAiVW5pdFRlc3RG cmFtZXdvcmtQa2cvTGlicmFyeS9Hb29nbGVUZXN0TGliL2dvb2dsZXRlc3QiXQ0KPiA+ICsJcGF0 aCA9IFVuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJhcnkvR29vZ2xlVGVzdExpYi9nb29nbGV0ZXN0 DQo+ID4gKwl1cmwgPSBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QuZ2l0DQo+ ID4gZGlmZiAtLWdpdCBhL1VuaXRUZXN0RnJhbWV3b3JrUGtnL0luY2x1ZGUvTGlicmFyeS9Hb29n bGVUZXN0TGliLmgNCj4gPiBiL1VuaXRUZXN0RnJhbWV3b3JrUGtnL0luY2x1ZGUvTGlicmFyeS9H b29nbGVUZXN0TGliLmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAw MDAwMDAwMC4uZWJlYzc2NmQ0Y2Y3DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL1VuaXRU ZXN0RnJhbWV3b3JrUGtnL0luY2x1ZGUvTGlicmFyeS9Hb29nbGVUZXN0TGliLmgNCj4gPiBAQCAt MCwwICsxLDE0IEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ICsgIEdvb2dsZVRlc3RMaWIgY2xhc3Mg d2l0aCBBUElzIGZyb20gdGhlIGdvb2dsZXRlc3QgcHJvamVjdA0KPiA+ICsNCj4gPiArICBDb3B5 cmlnaHQgKGMpIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4NCj4gPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0K PiA+ICsNCj4gPiArKiovDQo+ID4gKw0KPiA+ICsjaWZuZGVmIEdPT0dMRV9URVNUX0xJQl9IXw0K PiA+ICsjZGVmaW5lIEdPT0dMRV9URVNUX0xJQl9IXw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPGd0 ZXN0L2d0ZXN0Lmg+DQo+ID4gKw0KPiA+ICsjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvVW5pdFRl c3RGcmFtZXdvcmtQa2cvTGlicmFyeS9Hb29nbGVUZXN0TGliL0dvb2dsZVRlc3RMaWIuaW5mDQo+ ID4gYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0dvb2dsZVRlc3RMaWIvR29vZ2xlVGVz dExpYi5pbmYNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAw MC4uNjhkYjc1ZDcwMjNmDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL1VuaXRUZXN0RnJh bWV3b3JrUGtnL0xpYnJhcnkvR29vZ2xlVGVzdExpYi9Hb29nbGVUZXN0TGliLmluZg0KPiA+IEBA IC0wLDAgKzEsMzYgQEANCj4gPiArIyMgQGZpbGUNCj4gPiArIyAgVGhpcyBtb2R1bGUgcHJvdmlk ZXMgR29vZ2xlVGVzdCBMaWJyYXJ5IGltcGxlbWVudGF0aW9uLg0KPiA+ICsjDQo+ID4gKyMgIENv cHlyaWdodCAoYykgMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiA+ICsjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiA+ICsjDQo+ID4gKyMjDQo+ID4gKw0KPiA+ICtbRGVmaW5lc10NCj4gPiArICBJTkZfVkVS U0lPTiAgICAgPSAweDAwMDEwMDA1DQo+ID4gKyAgQkFTRV9OQU1FICAgICAgID0gR29vZ2xlVGVz dExpYg0KPiA+ICsgIE1PRFVMRV9VTklfRklMRSA9IEdvb2dsZVRlc3RMaWIudW5pDQo+ID4gKyAg RklMRV9HVUlEICAgICAgID0gQTkwRTQ3NTEtQUQzMC00M0NDLTk4MEItMDFFMzU2QjQ5QURGDQo+ ID4gKyAgTU9EVUxFX1RZUEUgICAgID0gQkFTRQ0KPiA+ICsgIFZFUlNJT05fU1RSSU5HICA9IDAu MQ0KPiA+ICsgIExJQlJBUllfQ0xBU1MgICA9IEdvb2dsZVRlc3RMaWJ8SE9TVF9BUFBMSUNBVElP Tg0KPiA+ICsNCj4gPiArIw0KPiA+ICsjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9 IElBMzIgWDY0IEFSTSBBQVJDSDY0DQo+ID4gKyMNCj4gPiArDQo+ID4gK1tTb3VyY2VzXQ0KPiA+ ICsgIGdvb2dsZXRlc3QvZ29vZ2xldGVzdC9zcmMvZ3Rlc3QtYWxsLmNjDQo+ID4gKw0KPiA+ICtb UGFja2FnZXNdDQo+ID4gKyAgVW5pdFRlc3RGcmFtZXdvcmtQa2cvVW5pdFRlc3RGcmFtZXdvcmtQ a2cuZGVjDQo+ID4gKw0KPiA+ICtbQnVpbGRPcHRpb25zXQ0KPiA+ICsgIE1TRlQ6Kl8qXypfQ0Nf RkxBR1MgICAgID09IC9jIC9FSHNjIC9aaQ0KPiA+ICsgIE1TRlQ6Tk9PUFRfKl8qX0NDX0ZMQUdT ID0gIC9PZA0KPiA+ICsNCj4gPiArICBHQ0M6Kl8qXypfQ0NfRkxBR1MgICAgID09IC1nIC1jDQo+ ID4gKw0KPiA+ICsgIEdDQzpOT09QVF8qXypfQ0NfRkxBR1MgPSAgLU8wDQo+ID4gKyAgR0NDOipf Kl9JQTMyX0NDX0ZMQUdTICA9ICAtbTMyDQo+ID4gKyAgR0NDOipfKl9YNjRfQ0NfRkxBR1MgICA9 ICAtbTY0DQo+ID4gZGlmZiAtLWdpdCBhL1VuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJhcnkvR29v Z2xlVGVzdExpYi9Hb29nbGVUZXN0TGliLnVuaQ0KPiA+IGIvVW5pdFRlc3RGcmFtZXdvcmtQa2cv TGlicmFyeS9Hb29nbGVUZXN0TGliL0dvb2dsZVRlc3RMaWIudW5pDQo+ID4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjE0Yzg2MmEyMzc0NA0KPiA+IC0tLSAv ZGV2L251bGwNCj4gPiArKysgYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0dvb2dsZVRl c3RMaWIvR29vZ2xlVGVzdExpYi51bmkNCj4gPiBAQCAtMCwwICsxLDE0IEBADQo+ID4gKy8vIC8q KiBAZmlsZQ0KPiA+ICsvLyBUaGlzIG1vZHVsZSBwcm92aWRlcyBHb29nbGVUZXN0IExpYnJhcnkg aW1wbGVtZW50YXRpb24uDQo+ID4gKy8vDQo+ID4gKy8vIFRoaXMgbW9kdWxlIHByb3ZpZGVzIEdv b2dsZVRlc3QgTGlicmFyeSBpbXBsZW1lbnRhdGlvbi4NCj4gPiArLy8NCj4gPiArLy8gQ29weXJp Z2h0IChjKSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ID4gKy8vDQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+ID4gKy8vDQo+ID4gKy8vICoqLw0KPiA+ICsNCj4gPiArI3N0cmluZyBTVFJfTU9E VUxFX0FCU1RSQUNUICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUw0KPiA+ICJHb29nbGVUZXN0 IExpYnJhcnkgaW1wbGVtZW50YXRpb24iDQo+ID4gKw0KPiA+ICsjc3RyaW5nIFNUUl9NT0RVTEVf REVTQ1JJUFRJT04gICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJUaGlzDQo+ID4gbW9kdWxlIHBy b3ZpZGVzIEdvb2dsZVRlc3QgTGlicmFyeSBpbXBsZW1lbnRhdGlvbi4iDQo+ID4gZGlmZiAtLWdp dCBhL1VuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJhcnkvR29vZ2xlVGVzdExpYi9nb29nbGV0ZXN0 DQo+ID4gYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0dvb2dsZVRlc3RMaWIvZ29vZ2xl dGVzdA0KPiA+IG5ldyBmaWxlIG1vZGUgMTYwMDAwDQo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi44 NmFkZDEzNDkzZTUNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvVW5pdFRlc3RGcmFtZXdv cmtQa2cvTGlicmFyeS9Hb29nbGVUZXN0TGliL2dvb2dsZXRlc3QNCj4gPiBAQCAtMCwwICsxIEBA DQo+ID4gK1N1YnByb2plY3QgY29tbWl0IDg2YWRkMTM0OTNlNWM4ODFkN2U0YmE3N2ZiOTFjMWY1 Nzc1MmIzYTQNCj4gPiBkaWZmIC0tZ2l0IGEvVW5pdFRlc3RGcmFtZXdvcmtQa2cvUmVhZE1lLm1k DQo+ID4gYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9SZWFkTWUubWQNCj4gPiBpbmRleCBlNjk2NDEy Y2IzY2YuLjljZTA0YjdmM2ViNiAxMDA2NDQNCj4gPiAtLS0gYS9Vbml0VGVzdEZyYW1ld29ya1Br Zy9SZWFkTWUubWQNCj4gPiArKysgYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9SZWFkTWUubWQNCj4g PiBAQCAtMiwxMiArMiw2NyBAQA0KPiA+DQo+ID4gICMjIEFib3V0DQo+ID4NCj4gPiAtVGhpcyBw YWNrYWdlIGFkZHMgYSB1bml0IHRlc3QgZnJhbWV3b3JrIGNhcGFibGUgb2YgYnVpbGRpbmcgdGVz dHMgZm9yDQo+IG11bHRpcGxlDQo+ID4gY29udGV4dHMgaW5jbHVkaW5nDQo+ID4gK1RoaXMgcGFj a2FnZSBwcm92aWRlcyB1bml0IHRlc3QgZnJhbWV3b3JrcyBjYXBhYmxlIG9mIGJ1aWxkaW5nIHRl c3RzIGZvcg0KPiA+IG11bHRpcGxlIGNvbnRleHRzIGluY2x1ZGluZw0KPiA+ICB0aGUgVUVGSSBz aGVsbCBlbnZpcm9ubWVudCBhbmQgaG9zdC1iYXNlZCBlbnZpcm9ubWVudHMuIEl0IGFsbG93cyBm b3INCj4gdW5pdA0KPiA+IHRlc3QgZGV2ZWxvcG1lbnQgdG8gZm9jdXMNCj4gPiAtb24gdGhlIHRl c3RzIGFuZCBsZWF2ZSBlcnJvciBsb2dnaW5nLCByZXN1bHQgZm9ybWF0dGluZywgY29udGV4dA0K PiBwZXJzaXN0YW5jZSwNCj4gPiBhbmQgdGVzdCBydW5uaW5nIHRvIHRoZSBmcmFtZXdvcmsuDQo+ ID4gK29uIHRoZSB0ZXN0cyBhbmQgbGVhdmUgZXJyb3IgbG9nZ2luZywgcmVzdWx0IGZvcm1hdHRp bmcsIGNvbnRleHQNCj4gcGVyc2lzdGVuY2UsDQo+ID4gYW5kIHRlc3QgcnVubmluZyB0byB0aGUg ZnJhbWV3b3JrLg0KPiA+ICBUaGUgdW5pdCB0ZXN0IGZyYW1ld29yayB3b3JrcyB3ZWxsIGZvciBs b3cgbGV2ZWwgdW5pdCB0ZXN0cyBhcyB3ZWxsIGFzDQo+IHN5c3RlbQ0KPiA+IGxldmVsIHRlc3Rz IGFuZA0KPiA+ICBmaXRzIGVhc2lseSBpbiBhdXRvbWF0aW9uIGZyYW1ld29ya3MuDQo+ID4NCj4g PiArIyMjIEZyYW1ld29yaw0KPiA+ICsNCj4gPiArVGhlIGZpcnN0IHVuaXQgdGVzdCBmcmFtZXdv cmsgaXMgY2FsbGVkICoqRnJhbWV3b3JrKiogYW5kIGlzIGltcGxlbWVudGVkDQo+ID4gYXMgYSBz ZXQgb2YgRURLIElJIGxpYnJhcmllcy4NCj4gPiArVGhlIEZyYW1ld29yayBzdXBwb3J0cyBib3Ro IGhvc3QtYmFzZWQgdW5pdCB0ZXN0cyBhbmQgdGFyZ2V0LWJhc2VkIHVuaXQNCj4gPiB0ZXN0cyB0 aGF0IHNoYXJlIHRoZSBzYW1lDQo+ID4gK3NvdXJjZSBzdHlsZSwgbWFjcm9zLCBhbmQgQVBJcy4g SW4gc29tZSBzY2VuYXJpb3MsIHRoZSBzYW1lIHVuaXQgdGVzdA0KPiBjYXNlDQo+ID4gc291cmNl cyBjYW4gYmUgYnVpbHQNCj4gPiArZm9yIGJvdGggaG9zdC1iYXNlZCB1bml0IHRlc3QgZXhlY3V0 aW9uIGFuZCB0YXJnZXQtYmFzZWQgdW5pdCB0ZXN0DQo+IGV4ZWN1dGlvbi4NCj4gPiBIb3N0LWJh c2VkIHVuaXQgdGVzdHMNCj4gPiArdGhhdCByZXF1aXJlIG1vY2tlZCBpbnRlcmZhY2VzIGNhbiB1 c2UgdGhlIG1vY2tpbmcgaW5mcmFzdHJ1Y3R1cmUNCj4gcHJvdmlkZWQNCj4gPiBieQ0KPiA+ICtb Y21vY2thXShodHRwczovL2FwaS5jbW9ja2Eub3JnLykgdGhhdCBpcyBpbmNsdWRlZCBpbiB0aGUN Cj4gPiBVbml0VGVzdEZyYW1ld29ya1BrZyBhcyBhIHN1Ym1vZHVsZS4NCj4gPiArDQo+ID4gKyMj IyBHb29nbGVUZXN0DQo+ID4gKw0KPiA+ICtUaGUgc2Vjb25kIHVuaXQgdGVzdCBmcmFtZXdvcmsg c3VwcG9ydGVkIGJ5IHRoZSBVbml0VGVzdEZyYW1ld29ya1BrZyBpcw0KPiA+ICtbR29vZ2xlVGVz dF0oaHR0cDovL2dvb2dsZS5naXRodWIuaW8vZ29vZ2xldGVzdC8pIHRoYXQgY2FuIGJlIHVzZWQg dG8NCj4gPiBpbXBsZW1lbnQgaG9zdC1iYXNlZCB1bml0IHRlc3RzLg0KPiA+ICtVc2Ugb2YgR29v Z2xlVGVzdCBmb3IgdGFyZ2V0LWJhc2VkIHVuaXQgdGVzdHMgb2YgRURLIElJIGNvbXBvbmVudHMg aXMgbm90DQo+ID4gc3VwcG9ydGVkLiBJZiBhDQo+ID4gK2hvc3QtYmFzZWQgdW5pdCB0ZXN0IHJl cXVpcmVzIG1vY2tlZCBpbnRlcmZhY2VzLCB0aGVuIHRoZSBGcmFtZXdvcmsgd2l0aA0KPiA+IGNt b2NrYSBzdXBwb3J0IHNob3VsZCBiZQ0KPiA+ICt1c2VkIGluc3RlYWQuIEVuYWJsaW5nIHN1cHBv cnQgZm9yIG1vY2tlZCBpbnRlcmZhY2VzIHdpdGggR29vZ2xlVGVzdCBpcw0KPiA+IGJlaW5nIGFj dGl2ZWx5IGludmVzdGlnYXRlZC4NCj4gPiArW0dvb2dsZVRlc3Qgb24gR2l0SHViXShodHRwczov L2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QpIGlzIGluY2x1ZGVkDQo+IGluDQo+ID4gdGhl IFVuaXRUZXN0RnJhbWV3b3JrUGtnDQo+ID4gK2FzIGEgc3VibW9kdWxlLg0KPiA+ICsNCj4gPiAr R29vZ2xlVGVzdCByZXF1aXJlcyBsZXNzIG92ZXJoZWFkIHRvIHJlZ2lzdGVyIHRlc3Qgc3VpdGVz IGFuZCB0ZXN0IGNhc2VzDQo+ID4gY29tcGFyZWQgdG8gdGhlIEZyYW1ld29yay4NCj4gPiArVGhl cmUgYXJlIGFsc28gYSBudW1iZXIgb2YgdG9vbHMgdGhhdCBsYXllciBvbiB0b3Agb2YgR29vZ2xl VGVzdCB0aGF0DQo+IGltcHJvdmUNCj4gPiBkZXZlbG9wZXIgcHJvZHVjdGl2aXR5Lg0KPiA+ICtP bmUgZXhhbXBsZSBpcyB0aGUgVlMgQ29kZSBleHRlbnNpb24NCj4gPiArW0MrKw0KPiA+IFRlc3RN YXRlXShodHRwczovL21hcmtldHBsYWNlLnZpc3VhbHN0dWRpby5jb20vaXRlbXM/aXRlbU5hbWU9 bWF0ZXBlay4NCj4gPiB2c2NvZGUtY2F0Y2gyLXRlc3QtYWRhcHRlcikNCj4gPiArdGhhdCBtYXkg YmUgdXNlZCB0byBpbXBsZW1lbnQsIHJ1biwgYW5kIGRlYnVnIHVuaXQgdGVzdHMgaW1wbGVtZW50 ZWQNCj4gdXNpbmcNCj4gPiBHb29nbGVUZXN0Lg0KPiA+ICsNCj4gPiArSWYgYSBjb21wb25lbnQg Y2FuIGJlIHRlc3RlZCB3aXRoIGhvc3QtYmFzZWQgdW5pdCB0ZXN0cyB3aXRob3V0IHN1cHBvcnQN Cj4gZm9yDQo+ID4gbW9ja2VkIGludGVyZmFjZXMsDQo+ID4gK3RoZW4gR29vZ2xlVGVzdCBpcyBy ZWNvbW1lbmRlZC4gVGhlIE1kZVBrZyBjb250YWlucyBhIHBvcnQgb2YgdGhlDQo+ID4gQmFzZVNh ZmVJbnRMaWIgdW5pdCB0ZXN0cyBpbg0KPiA+ICt0aGUgR29vZ2xlVGVzdCBzdHlsZSBzbyB0aGUg ZGlmZmVyZW5jZXMgYmV0d2VlbiBHb29nbGVUZXN0IGFuZCBGcmFtZXdvcmsNCj4gPiB1bml0IHRl c3RzIGNhbiBiZSByZXZpZXdlZC4NCj4gPiArVGhlIHBhdGhzIHRvIHRoZSBCYXNlU2FmZUludExp YiB1bml0IHRlc3RzIGFyZToNCj4gPiArDQo+ID4gKyogTWRlUGtnXFRlc3RcVW5pdFRlc3RcTGli cmFyeVxCYXNlU2FmZUludExpYg0KPiA+ICsqIE1kZVBrZ1xUZXN0XEdvb2dsZVRlc3RcTGlicmFy eVxCYXNlU2FmZUludExpYg0KPiA+ICsNCj4gPiArIyMgRnJhbWV3b3JrIGFuZCBHb29nbGVUZXN0 IEZlYXR1cmUgQ29tcGFyaXNvbg0KPiA+ICsNCj4gPiArfCBGZWF0dXJlICAgICAgICAgICAgICAg ICAgICAgfCBGcmFtZXdvcmsgfCBHb29nbGVUZXN0IHwNCj4gPiArfDotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tfDotLS0tLS0tLS06fDotLS0tLS0tLS0tOnwNCj4gPiArfCBIb3N0IEJhc2Vk IFVuaXQgVGVzdHMgICAgICAgfCAgICBZRVMgICAgfCAgICBZRVMgICAgIHwNCj4gPiArfCBUYXJn ZXQgQmFzZWQgVW5pdCBUZXN0cyAgICAgfCAgICBZRVMgICAgfCAgICAgTk8gICAgIHwNCj4gPiAr fCBVbml0IFRlc3QgU291cmNlIExhbmd1YWdlICAgfCAgICAgQyAgICAgfCAgICBDKysgICAgIHwN Cj4gPiArfCBSZWdpc3RlciBUZXN0IFN1aXRlICAgICAgICAgfCAgICBZRVMgICAgfCAgICBBdXRv ICAgIHwNCj4gPiArfCBSZWdpc3RlciBUZXN0IENhc2UgICAgICAgICAgfCAgICBZRVMgICAgfCAg ICBBdXRvICAgIHwNCj4gPiArfCBEZWF0aC9FeHBlY3RlZCBBc3NlcnQgVGVzdHMgfCAgICBZRVMg ICAgfCAgICBZRVMgICAgIHwNCj4gPiArfCBTZXR1cC9UZWFyZG93biBIb29rcyAgICAgICAgfCAg ICBZRVMgICAgfCAgICBZRVMgICAgIHwNCj4gPiArfCBWYWx1ZS1QYXJhbWV0ZXJpemVkIFRlc3Rz ICAgfCAgICBOTyAgICAgfCAgICBZRVMgICAgIHwNCj4gPiArfCBUeXBlZCBUZXN0cyAgICAgICAg ICAgICAgICAgfCAgICBOTyAgICAgfCAgICBZRVMgICAgIHwNCj4gPiArfCBUeXBlLVBhcmFtZXRl cml6ZWQgVGVzdHMgICAgfCAgICBOTyAgICAgfCAgICBZRVMgICAgIHwNCj4gPiArfCBUaW1lb3V0 IFN1cHBvcnQgICAgICAgICAgICAgfCAgICBOTyAgICAgfCAgICBZRVMgICAgIHwNCj4gPiArfCBN b2NraW5nIFN1cHBvcnQgICAgICAgICAgICAgfCAgIENtb2NrYSAgfCAgICAgTk8gICAgIHwNCj4g PiArfCBKVU5JVCBYTUwgUmVwb3J0cyAgICAgICAgICAgfCAgICBZRVMgICAgfCAgICBZRVMgICAg IHwNCj4gPiArfCBFeGVjdXRlIHN1YnNldCBvZiB0ZXN0cyAgICAgfCAgICBOTyAgICAgfCAgICBZ RVMgICAgIHwNCj4gPiArfCBWUyBDb2RlIEV4dGVuc2lvbnMgICAgICAgICAgfCAgICBOTyAgICAg fCAgICBZRVMgICAgIHwNCj4gPiArDQo+ID4gKyMjIEZyYW1ld29yayBMaWJyYXJpZXMNCj4gPiAr DQo+ID4gICMjIyBVbml0VGVzdExpYg0KPiA+DQo+ID4gIFRoZSBtYWluICJmcmFtZXdvcmsiIGxp YnJhcnkuIFRoZSBjb3JlIG9mIHRoZSBmcmFtZXdvcmsgaXMgdGhlIEZyYW1ld29yaw0KPiA+IG9i amVjdCwgd2hpY2ggY2FuIGhhdmUgYW55IG51bWJlcg0KPiA+IEBAIC0zMSwxMCArODYsMTAgQEAg aW4gc3VwcG9ydGluZyBhIHN5c3RlbSByZWJvb3QgaW4gdGhlIG1pZGRsZSBvZiBhIHRlc3QNCj4g PiBydW4uDQo+ID4NCj4gPiAgTGlicmFyeSBwcm92aWRlcyBmdW5jdGlvbiB0byBydW4gYXQgdGhl IGVuZCBvZiBhIGZyYW1ld29yayB0ZXN0IHJ1biBhbmQNCj4gPiBoYW5kbGVzIGZvcm1hdHRpbmcg dGhlIHJlcG9ydC4NCj4gPiAgVGhpcyBpcyBhIGNvbW1vbiBjdXN0b21pemF0aW9uIHBvaW50IGFu ZCBhbGxvd3MgdGhlIHVuaXQgdGVzdCBmcmFtZXdvcmsNCj4gdG8NCj4gPiBmaXQgaXRzIG91dHB1 dCByZXBvcnRzIGludG8NCj4gPiAtb3RoZXIgdGVzdCBpbmZyYXN0cnVjdHVyZS4gSW4gdGhpcyBw YWNrYWdlIGEgc2ltcGxlIGxpYnJhcnkgaW5zdGFuY2VzIGhhcw0KPiBiZWVuDQo+ID4gc3VwcGxp ZWQgdG8gb3V0cHV0IHRlc3QNCj4gPiArb3RoZXIgdGVzdCBpbmZyYXN0cnVjdHVyZS4gSW4gdGhp cyBwYWNrYWdlIHNpbXBsZSBsaWJyYXJ5IGluc3RhbmNlcyBoYXZlDQo+IGJlZW4NCj4gPiBzdXBw bGllZCB0byBvdXRwdXQgdGVzdA0KPiA+ICByZXN1bHRzIHRvIHRoZSBjb25zb2xlIGFzIHBsYWlu IHRleHQuDQo+ID4NCj4gPiAtIyMgU2FtcGxlcw0KPiA+ICsjIyBGcmFtZXdvcmsgU2FtcGxlcw0K PiA+DQo+ID4gIFRoZXJlIGlzIGEgc2FtcGxlIHVuaXQgdGVzdCBwcm92aWRlZCBhcyBib3RoIGFu IGV4YW1wbGUgb2YgaG93IHRvIHdyaXRlIGENCj4gPiB1bml0IHRlc3QgYW5kIGxldmVyYWdlDQo+ ID4gIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mIHRoZSBmcmFtZXdvcmsuIFRoaXMgc2FtcGxlIGNh biBiZSBmb3VuZCBpbiB0aGUNCj4gPiBgVGVzdC9Vbml0VGVzdC9TYW1wbGUvU2FtcGxlVW5pdFRl c3RgDQo+ID4gQEAgLTQzLDcgKzk4LDcgQEAgZGlyZWN0b3J5Lg0KPiA+ICBUaGUgc2FtcGxlIGlz IHByb3ZpZGVkIGluIFBFSSwgU01NLCBEWEUsIGFuZCBVRUZJIEFwcCBmbGF2b3JzLiBJdCBhbHNv DQo+IGhhcyBhDQo+ID4gZmxhdm9yIGZvciB0aGUgSE9TVF9BUFBMSUNBVElPTg0KPiA+ICBidWls ZCB0eXBlLCB3aGljaCBjYW4gYmUgcnVuIG9uIGEgaG9zdCBzeXN0ZW0gd2l0aG91dCBuZWVkaW5n IGEgdGFyZ2V0Lg0KPiA+DQo+ID4gLSMjIFVzYWdlDQo+ID4gKyMjIEZyYW1ld29yayBVc2FnZQ0K PiA+DQo+ID4gIFRoaXMgc2VjdGlvbiBpcyBidWlsdCBhIGxvdCBsaWtlIGEgIkdldHRpbmcgU3Rh cnRlZCIuIFdlJ2xsIGdvIHRocm91Z2gNCj4gc29tZSBvZg0KPiA+IHRoZSBjb21wb25lbnRzIHRo YXQgYXJlIG5lZWRlZA0KPiA+ICB3aGVuIGNvbnN0cnVjdGluZyBhIHVuaXQgdGVzdCBhbmQgc29t ZSBvZiB0aGUgZGVjaXNpb25zIHRoYXQgYXJlIG1hZGUgYnkNCj4gPiB0aGUgdGVzdCB3cml0ZXIu IFdlJ2xsIGFsc28gZGVzY3JpYmUNCj4gPiBAQCAtNTEsNyArMTA2LDcgQEAgaG93IHRvIGNoZWNr IGZvciBleHBlY3RlZCBjb25kaXRpb25zIGluIHRlc3QgY2FzZXMgYW5kDQo+ID4gYSBiaXQgb2Yg dGhlIGxvZ2dpbmcgY2hhcg0KPiA+DQo+ID4gIE1vc3Qgb2YgdGhlc2UgZXhhbXBsZXMgd2lsbCBy ZWZlciB0byB0aGUgU2FtcGxlVW5pdFRlc3RVZWZpU2hlbGwgYXBwDQo+IGZvdW5kDQo+ID4gaW4g dGhpcyBwYWNrYWdlLg0KPiA+DQo+ID4gLSMjIyBSZXF1aXJlbWVudHMgLSBJTkYNCj4gPiArIyMj IEZyYW1ld29yayBSZXF1aXJlbWVudHMgLSBJTkYNCj4gPg0KPiA+ICBJbiBvdXIgSU5GIGZpbGUs IHdlJ2xsIG5lZWQgdG8gYnJpbmcgaW4gdGhlIGBVbml0VGVzdExpYmAgbGlicmFyeS4NCj4gQ29u dmVuaWVudGx5LA0KPiA+IHRoZSBpbnRlcmZhY2UNCj4gPiAgaGVhZGVyIGZvciB0aGUgYFVuaXRU ZXN0TGliYCBpcyBsb2NhdGVkIGluIGBNZGVQa2dgLCBzbyB5b3Ugc2hvdWxkbid0DQo+IG5lZWQg dG8NCj4gPiBkZXBlbmQgb24gYW55IG90aGVyDQo+ID4gQEAgLTgwLDcgKzEzNSw3IEBAIHRvIG1h a2Ugc3VyZSB0aGF0IHRoZSBtb2R1bGUgYEJBU0VfTkFNRWAgY29udGFpbnMNCj4gPiB0aGUgd29y ZCBgVGVzdGAuLi4NCj4gPiAgICBCQVNFX05BTUUgICAgICA9IFNhbXBsZVVuaXRUZXN0VWVmaVNo ZWxsDQo+ID4gIGBgYA0KPiA+DQo+ID4gLSMjIyBSZXF1aXJlbWVudHMgLSBDb2RlDQo+ID4gKyMj IyBGcmFtZXdvcmsgUmVxdWlyZW1lbnRzIC0gQ29kZQ0KPiA+DQo+ID4gIE5vdCB0byBzdGF0ZSB0 aGUgb2J2aW91cywgYnV0IGxldCdzIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBmb2xsb3dpbmcNCj4g aW5jbHVkZQ0KPiA+IGJlZm9yZSBnZXR0aW5nIHRvbyBmYXIgYWxvbmcuLi4NCj4gPg0KPiA+IEBA IC05MCw5ICsxNDUsOSBAQCBOb3QgdG8gc3RhdGUgdGhlIG9idmlvdXMsIGJ1dCBsZXQncyBtYWtl IHN1cmUgd2UgaGF2ZQ0KPiA+IHRoZSBmb2xsb3dpbmcgaW5jbHVkZSBiZWZvDQo+ID4NCj4gPiAg Tm93IHRoYXQgd2UndmUgZ290IHRoYXQgc3F1YXJlZCBhd2F5LCBsZXQncyBsb29rIGF0IG91ciAn TWFpbigpJycgcm91dGluZQ0KPiAob3INCj4gPiBEcml2ZXJFbnRyeVBvaW50KCkgb3Igd2hhdGV2 ZXIpLg0KPiA+DQo+ID4gLSMjIyBDb25maWd1cmluZyB0aGUgRnJhbWV3b3JrDQo+ID4gKyMjIyBG cmFtZXdvcmsgQ29uZmlndXJhdGlvbg0KPiA+DQo+ID4gLUV2ZXJ5dGhpbmcgaW4gdGhlIFVuaXRU ZXN0UGtnIGZyYW1ld29yayBpcyBidWlsdCBhcm91bmQgYW4gb2JqZWN0IGNhbGxlZA0KPiAtLQ0K PiA+IGNvbnZlbmllbnRseSAtLSB0aGUgRnJhbWV3b3JrLg0KPiA+ICtFdmVyeXRoaW5nIGluIHRo ZSBVbml0VGVzdEZyYW1ld29ya1BrZyBmcmFtZXdvcmsgaXMgYnVpbHQgYXJvdW5kIGFuDQo+IG9i amVjdA0KPiA+IGNhbGxlZCAtLSBjb252ZW5pZW50bHkgLS0gdGhlIEZyYW1ld29yay4NCj4gPiAg VGhpcyBGcmFtZXdvcmsgb2JqZWN0IHdpbGwgY29udGFpbiBhbGwgdGhlIGluZm9ybWF0aW9uIGFi b3V0IG91ciB0ZXN0LA0KPiB0aGUNCj4gPiB0ZXN0IHN1aXRlcyBhbmQgdGVzdCBjYXNlcyBhc3Nv Y2lhdGVkDQo+ID4gIHdpdGggaXQsIHRoZSBjdXJyZW50IGxvY2F0aW9uIHdpdGhpbiB0aGUgdGVz dCBwYXNzLCBhbmQgYW55IHJlc3VsdHMgdGhhdA0KPiBoYXZlDQo+ID4gYmVlbiByZWNvcmRlZCBz byBmYXIuDQo+ID4NCj4gPiBAQCAtMTAyLDcgKzE1Nyw3IEBAIFRoZSBsb25nIG5hbWUgYW5kIHZl cnNpb24gc3RyaW5ncyBhcmUganVzdCBmb3IgdXNlcg0KPiA+IHByZXNlbnRhdGlvbiBhbmQgcmVs YXRpdmVseQ0KPiA+ICB3aWxsIGJlIHVzZWQgdG8gbmFtZSBhbnkgY2FjaGUgZmlsZXMgYW5kL29y IHRlc3QgcmVzdWx0cywgc28gc2hvdWxkIGJlIGENCj4gbmFtZQ0KPiA+IHRoYXQgbWFrZXMgc2Vu c2UgaW4gdGhhdCBjb250ZXh0Lg0KPiA+ICBUaGVzZSBzdHJpbmdzIGFyZSBjb3BpZWQgaW50ZXJu YWxseSB0byB0aGUgRnJhbWV3b3JrLCBzbyB1c2luZw0KPiA+IHN0YWNrLWFsbG9jYXRlZCBvciBs aXRlcmFsIHN0cmluZ3MgaXMgZmluZS4NCj4gPg0KPiA+IC1JbiB0aGUgJ1NhbXBsZVVuaXRUZXN0 VWVmaVNoZWxsJyBhcHAsIHRoZSBtb2R1bGUgbmFtZSBpcyB1c2VkIGFzIHRoZQ0KPiBzaG9ydA0K PiA+IG5hbWUsIHNvIHRoZSBpbml0IGxvb2tzIGxpa2UgdGhpcy4NCj4gPiArSW4gdGhlICdTYW1w bGVVbml0VGVzdFVlZmlTaGVsbCcgYXBwLCB0aGUgbW9kdWxlIG5hbWUgaXMgdXNlZCBhcyB0aGUN Cj4gc2hvcnQNCj4gPiBuYW1lLCBzbyB0aGUgaW5pdGlhbGl6YXRpb24gbG9va3MgbGlrZSB0aGlz Lg0KPiA+DQo+ID4gIGBgYGMNCj4gPiAgREVCVUcoKCBERUJVR19JTkZPLCAiJWEgdiVhXG4iLCBV TklUX1RFU1RfQVBQX05BTUUsDQo+ID4gVU5JVF9URVNUX0FQUF9WRVJTSU9OICkpOw0KPiA+IEBA IC0xNDQsMTEgKzE5OSwxMSBAQCB3aWxsIGJlIHVzZWQgd2hlbiBhZGRpbmcgdGVzdCBjYXNlcy4N Cj4gPiAgR3JlYXQhIE5vdyB3ZSd2ZSBmaW5pc2hlZCBzb21lIG9mIHRoZSBjcnVmdCwgcmVkIHRh cGUsIGFuZCBidXN5IHdvcmsuDQo+IFdlJ3JlDQo+ID4gcmVhZHkgdG8gYWRkIHNvbWUgdGVzdHMu IEFkZGluZyBhIHRlc3QNCj4gPiAgdG8gYSB0ZXN0IHN1aXRlIGlzIGFjY29tcGxpc2hlZCB3aXRo IHRoZSAtLSB5b3UgZ3Vlc3NlZCBpdCAtLQ0KPiBgQWRkVGVzdENhc2VgDQo+ID4gZnVuY3Rpb24u IEl0IHRha2VzIGluIHRoZSBzdWl0ZSBoYW5kbGU7DQo+ID4gIGEgYENIQVI4YCBzdHJpbmcgZm9y IHRoZSBkZXNjcmlwdGlvbiBhbmQgY2xhc3MgbmFtZTsgYSBmdW5jdGlvbiBwb2ludGVyDQo+IGZv cg0KPiA+IHRoZSB0ZXN0IGNhc2UgaXRzZWxmOyBhZGRpdGlvbmFsLCBvcHRpb25hbA0KPiA+IC1m dW5jdGlvbiBwb2ludGVycyBmb3IgcHJlcmVxdWlzaXRlIGNoZWNrIGFuZCBjbGVhbnVwIHJvdXRp bmVzOyBhbmQgYW5kDQo+ID4gb3B0aW9uYWwgcG9pbnRlciB0byBhIGNvbnRleHQgc3RydWN0dXJl Lg0KPiA+ICtmdW5jdGlvbiBwb2ludGVycyBmb3IgcHJlcmVxdWlzaXRlIGNoZWNrIGFuZCBjbGVh bnVwIHJvdXRpbmVzOyBhbmQgYW4NCj4gPiBvcHRpb25hbCBwb2ludGVyIHRvIGEgY29udGV4dCBz dHJ1Y3R1cmUuDQo+ID4NCj4gPiAgT2theSwgdGhhdCdzIGEgbG90LiBMZXQncyB0YWtlIGl0IG9u ZSBwaWVjZSBhdCBhIHRpbWUuIFRoZSBkZXNjcmlwdGlvbg0KPiBhbmQgY2xhc3MNCj4gPiBuYW1l IHN0cmluZ3MgYXJlIHZlcnkgc2ltaWxhciBpbg0KPiA+ICB1c2FnZSB0byB0aGUgc3VpdGUgdGl0 bGUgYW5kIHBhY2thZ2UgbmFtZSBzdHJpbmdzIGluIHRoZSB0ZXN0IHN1aXRlcy4gVGhlDQo+ID4g Zm9ybWVyIGlzIGZvciB1c2VyIHByZXNlbnRhdGlvbiBhbmQgdGhlDQo+ID4gLWxhdHRlciBpcyBm b3IgeFVuaXQgcGFyc2luZy4gVGhlIHRlc3QgY2FzZSBmdW5jdGlvbiBwb2ludGVyIGlzIHdoYXQg aXMNCj4gYWN0dWFsbHkNCj4gPiBleGVjdXRlZCBhcyB0aGUgInRlc3QiIGFuZCB0aGUNCj4gPiAr bGF0dGVyIGlzIGZvciB4VW5pdCBwYXJzaW5nLiBUaGUgdGVzdCBjYXNlIGZ1bmN0aW9uIHBvaW50 ZXIgaXMgd2hhdCBpcw0KPiBleGVjdXRlZA0KPiA+IGFzIHRoZSAidGVzdCIgYW5kIHRoZQ0KPiA+ ICBwcm90b3R5cGUgc2hvdWxkIGJlIGBVTklUX1RFU1RfRlVOQ1RJT05gLiBUaGUgbGFzdCB0aHJl ZSBwYXJhbWV0ZXJzDQo+ID4gcmVxdWlyZSBhIGxpdHRsZSBiaXQgbW9yZSBleHBsYWluaW5nLg0K PiA+DQo+ID4gIFRoZSBwcmVyZXF1aXNpdGUgY2hlY2sgZnVuY3Rpb24gaGFzIGEgcHJvdG90eXBl IG9mDQo+ID4gYFVOSVRfVEVTVF9QUkVSRVFVSVNJVEVgIGFuZCAtLSBpZiBwcm92aWRlZCAtLSB3 aWxsIGJlIGNhbGxlZA0KPiA+IEBAIC0xODAsNyArMjM1LDcgQEAgT25jZSBhbGwgdGhlIHN1aXRl cyBhbmQgY2FzZXMgYXJlIGFkZGVkLCBpdCdzIHRpbWUgdG8NCj4gPiBydW4gdGhlIEZyYW1ld29y ay4NCj4gPiAgU3RhdHVzID0gUnVuQWxsVGVzdFN1aXRlcyggRnJhbWV3b3JrICk7DQo+ID4gIGBg YA0KPiA+DQo+ID4gLSMjIyBBIFNpbXBsZSBUZXN0IENhc2UNCj4gPiArIyMjIEZyYW1ld29yayAt IEEgU2ltcGxlIFRlc3QgQ2FzZQ0KPiA+DQo+ID4gIFdlJ2xsIHRha2UgYSBsb29rIGF0IHRoZSBi ZWxvdyB0ZXN0IGNhc2UgZnJvbSAnU2FtcGxlVW5pdFRlc3RBcHAnLi4uDQo+ID4NCj4gPiBAQCAt MjE3LDkgKzI3Miw5IEBAIF9Ob3RlXyB0aGF0IHRoaXMgZWFybHkgcmV0dXJuIGNhbiBoYXZlIGlt cGxpY2F0aW9ucw0KPiBmb3INCj4gPiBtZW1vcnkgbGVha2FnZS4NCj4gPg0KPiA+ICBBdCB0aGUg ZW5kLCBpZiBhbGwgdGVzdCBjcml0ZXJpYSBwYXNzLCB5b3Ugc2hvdWxkIHJldHVybg0KPiBgVU5J VF9URVNUX1BBU1NFRGAuDQo+ID4NCj4gPiAtIyMjIE1vcmUgQ29tcGxleCBDYXNlcw0KPiA+ICsj IyMgRnJhbWV3b3JrIC0gTW9yZSBDb21wbGV4IENhc2VzDQo+ID4NCj4gPiAtVG8gd3JpdGUgbW9y ZSBhZHZhbmNlZCB0ZXN0cywgZmlyc3QgdGFrZSBhIGxvb2sgYXQgYWxsIHRoZSBBc3NlcnRpb24g YW5kDQo+ID4gTG9nZ2luZyBtYWNyb3MgcHJvdmlkZWQgaW4gdGhlIGZyYW1ld29yay4NCj4gPiAr VG8gd3JpdGUgbW9yZSBhZHZhbmNlZCB0ZXN0cywgZmlyc3QgbG9vayBhdCBhbGwgdGhlIEFzc2Vy dGlvbiBhbmQgTG9nZ2luZw0KPiA+IG1hY3JvcyBwcm92aWRlZCBpbiB0aGUgZnJhbWV3b3JrLg0K PiA+DQo+ID4gIEJleW9uZCB0aGF0LCBpZiB5b3UncmUgd3JpdGluZyBob3N0LWJhc2VkIHRlc3Rz IGFuZCB3YW50IHRvIHRha2UgYQ0KPiA+IGRlcGVuZGVuY3kgb24gdGhlIFVuaXRUZXN0RnJhbWV3 b3JrUGtnLCB5b3UgY2FuDQo+ID4gIGxldmVyYWdlIHRoZSBgY21vY2thLmhgIGludGVyZmFjZSBh bmQgd3JpdGUgdGVzdHMgd2l0aCBhbGwgdGhlIGZlYXR1cmVzDQo+IG9mIHRoZQ0KPiA+IENtb2Nr YSBmcmFtZXdvcmsuDQo+ID4gQEAgLTIyNyw2ICsyODIsMTI1IEBAIGxldmVyYWdlIHRoZSBgY21v Y2thLmhgIGludGVyZmFjZSBhbmQgd3JpdGUgdGVzdHMNCj4gPiB3aXRoIGFsbCB0aGUgZmVhdHVy ZXMgb2YgdGhlIEMNCj4gPiAgRG9jdW1lbnRhdGlvbiBmb3IgQ21vY2thIGNhbiBiZSBmb3VuZCBo ZXJlOg0KPiA+ICBodHRwczovL2FwaS5jbW9ja2Eub3JnLw0KPiA+DQo+ID4gKyMjIEdvb2dsZVRl c3QgU2FtcGxlcw0KPiA+ICsNCj4gPiArVGhlcmUgaXMgYSBzYW1wbGUgdW5pdCB0ZXN0IHByb3Zp ZGVkIGFzIGJvdGggYW4gZXhhbXBsZSBvZiBob3cgdG8gd3JpdGUgYQ0KPiA+IHVuaXQgdGVzdCBh bmQgbGV2ZXJhZ2UNCj4gPiArbWFueSBvZiB0aGUgR29vZ2xlVGVzdCBmZWF0dXJlcy4gVGhpcyBz YW1wbGUgY2FuIGJlIGZvdW5kIGluIHRoZQ0KPiA+IGBUZXN0L0dvb2dsZVRlc3QvU2FtcGxlL1Nh bXBsZUdvb2dsZVRlc3RgDQo+ID4gK2RpcmVjdG9yeS4NCj4gPiArDQo+ID4gK1RoZSBzYW1wbGUg aXMgcHJvdmlkZWQgZm9yIHRoZSBIT1NUX0FQUExJQ0FUSU9OIGJ1aWxkIHR5cGUsIHdoaWNoIGNh biBiZQ0KPiA+IHJ1biBvbiBhIGhvc3Qgc3lzdGVtIHdpdGhvdXQNCj4gPiArbmVlZGluZyBhIHRh cmdldC4NCj4gPiArDQo+ID4gKyMjIEdvb2dsZVRlc3QgVXNhZ2UNCj4gPiArDQo+ID4gK1RoaXMg c2VjdGlvbiBpcyBidWlsdCBhIGxvdCBsaWtlIGEgIkdldHRpbmcgU3RhcnRlZCIuIFdlJ2xsIGdv IHRocm91Z2gNCj4gc29tZSBvZg0KPiA+IHRoZSBjb21wb25lbnRzIHRoYXQgYXJlIG5lZWRlZA0K PiA+ICt3aGVuIGNvbnN0cnVjdGluZyBhIHVuaXQgdGVzdCBhbmQgc29tZSBvZiB0aGUgZGVjaXNp b25zIHRoYXQgYXJlIG1hZGUgYnkNCj4gPiB0aGUgdGVzdCB3cml0ZXIuIFdlJ2xsIGFsc28gZGVz Y3JpYmUNCj4gPiAraG93IHRvIGNoZWNrIGZvciBleHBlY3RlZCBjb25kaXRpb25zIGluIHRlc3Qg Y2FzZXMgYW5kIGEgYml0IG9mIHRoZQ0KPiBsb2dnaW5nDQo+ID4gY2hhcmFjdGVyaXN0aWNzLg0K PiA+ICsNCj4gPiArTW9zdCBvZiB0aGVzZSBleGFtcGxlcyB3aWxsIHJlZmVyIHRvIHRoZSBTYW1w bGVHb29nbGVUZXN0SG9zdCBhcHAgZm91bmQNCj4gaW4NCj4gPiB0aGlzIHBhY2thZ2UuDQo+ID4g Kw0KPiA+ICsjIyMgR29vZ2xlVGVzdCBSZXF1aXJlbWVudHMgLSBJTkYNCj4gPiArDQo+ID4gK0lu IG91ciBJTkYgZmlsZSwgd2UnbGwgbmVlZCB0byBicmluZyBpbiB0aGUgYEdvb2dsZVRlc3RgIGxp YnJhcnkuDQo+IENvbnZlbmllbnRseSwNCj4gPiB0aGUgaW50ZXJmYWNlDQo+ID4gK2hlYWRlciBm b3IgdGhlIGBHb29nbGVUZXN0YCBpcyBpbiBgVW5pdFRlc3RGcmFtZXdvcmtQa2dgLCBzbyB5b3UN Cj4gc2hvdWxkbid0DQo+ID4gbmVlZCB0byBkZXBlbmQgb24gYW55IG90aGVyDQo+ID4gK3BhY2th Z2VzLiBBcyBsb25nIGFzIHlvdXIgRFNDIGZpbGUga25vd3Mgd2hlcmUgdG8gZmluZCB0aGUgbGli DQo+ID4gaW1wbGVtZW50YXRpb24gdGhhdCB5b3Ugd2FudCB0byB1c2UsDQo+ID4gK3lvdSBzaG91 bGQgYmUgZ29vZCB0byBnby4NCj4gPiArDQo+ID4gK1NlZSB0aGlzIGV4YW1wbGUgaW4gJ1NhbXBs ZUdvb2dsZVRlc3RIb3N0LmluZicuLi4NCj4gPiArDQo+ID4gK2BgYA0KPiA+ICtbUGFja2FnZXNd DQo+ID4gKyAgTWRlUGtnL01kZVBrZy5kZWMNCj4gPiArICBVbml0VGVzdEZyYW1ld29ya1BrZy9V bml0VGVzdEZyYW1ld29ya1BrZy5kZWMNCj4gPiArDQo+ID4gK1tMaWJyYXJ5Q2xhc3Nlc10NCj4g PiArICBHb29nbGVUZXN0TGliDQo+ID4gKyAgQmFzZUxpYg0KPiA+ICsgIERlYnVnTGliDQo+ID4g K2BgYA0KPiA+ICsNCj4gPiArQWxzbywgaWYgeW91IHdhbnQgeW91IHRlc3QgdG8gYXV0b21hdGlj YWxseSBiZSBwaWNrZWQgdXAgYnkgdGhlIFRlc3QNCj4gUnVubmVyDQo+ID4gcGx1Z2luLCB5b3Ug d2lsbCBuZWVkDQo+ID4gK3RvIG1ha2Ugc3VyZSB0aGF0IHRoZSBtb2R1bGUgYEJBU0VfTkFNRWAg Y29udGFpbnMgdGhlIHdvcmQgYFRlc3RgLi4uDQo+ID4gKw0KPiA+ICtgYGANCj4gPiArW0RlZmlu ZXNdDQo+ID4gKyAgQkFTRV9OQU1FICAgICAgPSBTYW1wbGVHb29nbGVUZXN0SG9zdA0KPiA+ICtg YGANCj4gPiArDQo+ID4gKyMjIyBHb29nbGVUZXN0IFJlcXVpcmVtZW50cyAtIENvZGUNCj4gPiAr DQo+ID4gK05vdCB0byBzdGF0ZSB0aGUgb2J2aW91cywgYnV0IGxldCdzIG1ha2Ugc3VyZSB3ZSBo YXZlIHRoZSBmb2xsb3dpbmcNCj4gaW5jbHVkZQ0KPiA+IGJlZm9yZSBnZXR0aW5nIHRvbyBmYXIg YWxvbmcuLi4NCj4gPiArDQo+ID4gK2BgYA0KPiA+ICsjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4N Cj4gPiArZXh0ZXJuICJDIiB7DQo+ID4gKyAgI2luY2x1ZGUgPFVlZmkuaD4NCj4gPiArICAjaW5j bHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4gKyAgI2luY2x1ZGUgPExpYnJhcnkvRGVidWdM aWIuaD4NCj4gPiArfQ0KPiA+ICtgYGANCj4gPiArDQo+ID4gK0dvb2dsZVRlc3QgYXBwbGljYXRp b25zIGFyZSBpbXBsZW1lbnRlZCBpbiBDKysuIFRoZSBmaXJzdCBpbmNsdWRlIGJyaW5ncw0KPiBp bg0KPiA+IHRoZQ0KPiA+ICtHb29nbGVUZXN0IGRlZmluaXRpb25zLiBPdGhlciBFREsgSUkgcmVs YXRlZCBpbmNsdWRlIGZpbGVzIG11c3QgYmUNCj4gd3JhcHBlZCBpbg0KPiA+ICtgZXh0ZXJuICJD IiB7fWAgYmVjYXVzZSB0aGV5IGFyZSBDIGluY2x1ZGUgZmlsZXMuIExpbmsgZmFpbHVyZXMgd2ls bA0KPiBvY2N1ciBpZg0KPiA+ICt0aGlzIGlzIG5vdCBkb25lLg0KPiA+ICsNCj4gPiArTm93IHRo YXQgd2UndmUgZ290IHRoYXQgc3F1YXJlZCBhd2F5LCBsZXQncyBsb29rIGF0IG91ciAnTWFpbigp Jycgcm91dGluZQ0KPiAob3INCj4gPiBEcml2ZXJFbnRyeVBvaW50KCkgb3Igd2hhdGV2ZXIpLg0K PiA+ICsNCj4gPiArIyMjIEdvb2dsZVRlc3QgQ29uZmlndXJhdGlvbg0KPiA+ICsNCj4gPiArVW5s aWtlIHRoZSBGcmFtZXdvcmssIEdvb2dsZVRlc3QgZG9lcyBub3QgcmVxdWlyZSB0ZXN0IHN1aXRl cyBvciB0ZXN0DQo+IGNhc2VzDQo+ID4gdG8NCj4gPiArYmUgcmVnaXN0ZXJlZC4gSW5zdGVhZCwg dGhlIHRlc3QgY2FzZXMgZGVjbGFyZSB0aGUgdGVzdCBzdWl0ZSBuYW1lIGFuZA0KPiB0ZXN0DQo+ ID4gK2Nhc2UgbmFtZSBhcyBwYXJ0IG9mIHRoZWlyIGltcGxlbWVudGF0aW9uLiBUaGUgb25seSBy ZXF1aXJlbWVudCBmb3INCj4gPiBHb29nbGVUZXN0DQo+ID4gK2lzIHRvIGhhdmUgYSBgbWFpbigp YCBmdW5jdGlvbiB0aGF0IGluaXRpYWxpemUgdGhlIEdvb2dsZVRlc3QNCj4gaW5mcmFzdHJ1Y3R1 cmUgYW5kDQo+ID4gK2NhbGwgdGhlIHNlcnZpY2UgYFJVTl9BTExfVEVTVFMoKWAgdG8gcnVuIGFs bCB0aGUgdW5pdCB0ZXN0cy4NCj4gPiArDQo+ID4gK2BgYGMNCj4gPiAraW50IG1haW4oaW50IGFy Z2MsIGNoYXIqIGFyZ3ZbXSkgew0KPiA+ICsgIHRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdj LCBhcmd2KTsNCj4gPiArICByZXR1cm4gUlVOX0FMTF9URVNUUygpOw0KPiA+ICt9DQo+ID4gK2Bg YA0KPiA+ICsNCj4gPiArIyMjIEdvb2dsZVRlc3QgLSBBIFNpbXBsZSBUZXN0IENhc2UNCj4gPiAr DQo+ID4gK1dlJ2xsIGxvb2sgYXQgdGhlIGJlbG93IHRlc3QgY2FzZSBmcm9tICdTYW1wbGVHb29n bGVUZXN0SG9zdCcuLi4NCj4gPiArDQo+ID4gK2BgYGMNCj4gPiArVEVTVChTaW1wbGVNYXRoVGVz dHMsIE9uZVBsdXNPbmVTaG91bGRFcXVhbFR3bykgew0KPiA+ICsgIFVJTlROICBBOw0KPiA+ICsg IFVJTlROICBCOw0KPiA+ICsgIFVJTlROICBDOw0KPiA+ICsNCj4gPiArICBBID0gMTsNCj4gPiAr ICBCID0gMTsNCj4gPiArICBDID0gQSArIEI7DQo+ID4gKw0KPiA+ICsgIEFTU0VSVF9FUSAoQywg Mik7DQo+ID4gK30NCj4gPiArYGBgDQo+ID4gKw0KPiA+ICtUaGlzIHVzZXMgdGhlIHNpbXBsZXN0 IGZvcm0gb2YgYSBHb29nbGVUZXN0IHVuaXQgdGVzdCB1c2luZyBgVEVTVCgpYCB0aGF0DQo+ID4g K2RlY2xhcmVzIHRoZSB0ZXN0IHN1aXRlIG5hbWUgYW5kIHRoZSB1bml0IHRlc3QgbmFtZSB3aXRo aW4gdGhhdCB0ZXN0DQo+IHN1aXRlLg0KPiA+ICtUaGUgdW5pdCB0ZXN0IHBlcmZvcm1zIGFjdGlv bnMgYW5kIHR5cGljYWxseSBtYWtlcyBjYWxscyB0byB0aGUgY29kZQ0KPiB1bmRlcg0KPiA+IHRl c3QNCj4gPiArYW5kIGNvbnRhaW5zIHRlc3QgYXNzZXJ0aW9ucyB0byB2ZXJpZnkgdGhhdCB0aGUg Y29kZSB1bmRlciB0ZXN0IGJlaGF2ZXMNCj4gYXMNCj4gPiArZXhwZWN0ZWQgZm9yIHRoZSBnaXZl biBpbnB1dHMuDQo+ID4gKw0KPiA+ICtJbiB0aGlzIHRlc3QgY2FzZSwgdGhlIGBBU1NFUlRfRVFg IGFzc2VydGlvbiBpcyBiZWluZyB1c2VkIHRvIGVzdGFibGlzaA0KPiB0aGF0DQo+ID4gdGhlIGJ1 c2luZXNzIGxvZ2ljIGhhcyBmdW5jdGlvbmVkDQo+ID4gK2NvcnJlY3RseS4gVGhlcmUgYXJlIHNl dmVyYWwgYXNzZXJ0aW9uIG1hY3JvcywgYW5kIHlvdSBhcmUgZW5jb3VyYWdlZCB0bw0KPiA+IHVz ZSBvbmUgdGhhdCBtYXRjaGVzIGFzIGNsb3NlbHkgdG8geW91cg0KPiA+ICtpbnRlbmRlZCB0ZXN0 IGNyaXRlcml1bSBhcyBwb3NzaWJsZSwgYmVjYXVzZSB0aGUgbG9nZ2luZyBpcyBzcGVjaWZpYyB0 bw0KPiB0aGUNCj4gPiBtYWNybyBhbmQgbW9yZSBzcGVjaWZpYyBtYWNyb3MgaGF2ZSBtb3JlDQo+ ID4gK2RldGFpbGVkIGxvZ3MuIFdoZW4gaW4gZG91YnQsIHRoZXJlIGFyZSBhbHdheXMgYEFTU0VS VF9UUlVFYCBhbmQNCj4gPiBgQVNTRVJUX0ZBTFNFYC4gQXNzZXJ0aW9uIG1hY3JvcyB0aGF0IGZh aWwgdGhlaXINCj4gPiArdGVzdCBjcml0ZXJpdW0gd2lsbCBpbW1lZGlhdGVseSByZXR1cm4gZnJv bSB0aGUgdGVzdCBjYXNlIHdpdGggYSBmYWlsZWQNCj4gc3RhdHVzDQo+ID4gYW5kIGxvZyBhbiBl cnJvciBzdHJpbmcuDQo+ID4gK19Ob3RlXyB0aGF0IHRoaXMgZWFybHkgcmV0dXJuIGNhbiBoYXZl IGltcGxpY2F0aW9ucyBmb3IgbWVtb3J5IGxlYWthZ2UuDQo+ID4gKw0KPiA+ICtUaGVyZSBpcyBu byByZXR1cm4gc3RhdHVzIGZyb20gYSBHb29nbFRlc3QgdW5pdCB0ZXN0LiBJZiBubyBhc3NlcnRp b25zDQo+IGFyZQ0KPiA+ICt0cmlnZ2VyZWQgdGhlbiB0aGUgdW5pdCB0ZXN0IGhhcyBhIHBhc3Np bmcgc3RhdHVzLg0KPiA+ICsNCj4gPiArIyMjIEdvb2dsZVRlc3QgLSBNb3JlIENvbXBsZXggQ2Fz ZXMNCj4gPiArDQo+ID4gK1RvIHdyaXRlIG1vcmUgYWR2YW5jZWQgdGVzdHMsIHRha2UgYSBsb29r IGF0IHRoZQ0KPiA+ICtbR29vZ2xlVGVzdCBVc2VyJ3MgR3VpZGVdKGh0dHA6Ly9nb29nbGUuZ2l0 aHViLmlvL2dvb2dsZXRlc3QvKS4NCj4gPiArDQo+ID4gICMjIERldmVsb3BtZW50DQo+ID4NCj4g PiAgIyMjIEl0ZXJhdGluZyBvbiBhIFNpbmdsZSBUZXN0DQo+ID4gQEAgLTI0MywxMSArNDE3LDEx IEBAIHN0dWFydF9jaV9idWlsZCAtYyAucHl0b29sL0NJU2V0dGluZ3MucHkNCj4gPiBUT09MX0NI QUlOX1RBRz1WUzIwMTcgLXAgTWRlUGtnIC10IE5PT1ANCj4gPg0KPiA+ICAjIyMgSG9va2luZyBC YXNlTGliDQo+ID4NCj4gPiAtTW9zdCB1bml0IHRlc3QgbW9ja2luZyBjYW4gYmUgcGVyZm9ybWVk IGJ5IHRoZSBmdW5jdGlvbnMgcHJvdmlkZWQgaW4gdGhlDQo+ID4gVW5pdFRlc3RGcmFtZXdvcmsg bGlicmFyaWVzLCBidXQgc2luY2UNCj4gPiArTW9zdCB1bml0IHRlc3QgbW9ja2luZyBjYW4gYmUg cGVyZm9ybWVkIGJ5IHRoZSBmdW5jdGlvbnMgcHJvdmlkZWQgaW4gdGhlDQo+ID4gVW5pdFRlc3RG cmFtZXdvcmtQa2cgbGlicmFyaWVzLCBidXQgc2luY2UNCj4gPiAgQmFzZUxpYiBpcyBjb25zdW1l ZCBieSB0aGUgRnJhbWV3b3JrIGl0c2VsZiwgaXQgcmVxdWlyZXMgZGlmZmVyZW50DQo+IHRlY2hu aXF1ZXMNCj4gPiB0byBzdWJzdGl0dXRlIHBhcnRzIG9mIHRoZQ0KPiA+ICBmdW5jdGlvbmFsaXR5 Lg0KPiA+DQo+ID4gLVRvIHNvbHZlIHNvbWUgb2YgdGhpcywgdGhlIFVuaXRUZXN0RnJhbWV3b3Jr IGNvbnN1bWVzIGEgc3BlY2lhbA0KPiA+IGltcGxlbWVudGF0aW9uIG9mIEJhc2VMaWIgZm9yIGhv c3QtYmFzZWQgdGVzdHMuDQo+ID4gK1RvIHNvbHZlIHNvbWUgb2YgdGhpcywgdGhlIFVuaXRUZXN0 RnJhbWV3b3JrUGtnIGNvbnN1bWVzIGEgc3BlY2lhbA0KPiA+IGltcGxlbWVudGF0aW9uIG9mIEJh c2VMaWIgZm9yIGhvc3QtYmFzZWQgdGVzdHMuDQo+ID4gIFRoaXMgaW1wbGVtZW50YXRpb24gY29u dGFpbnMgYSBbaG9vaw0KPiA+IHRhYmxlXShodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azIvYmxvYi9lMTg4ZWNjOGI0YWVkOGZkZDI2YjczMWQNCj4gPiA0Mzg4Mzg2MWY1ZTVlN2I0L01k ZVBrZy9UZXN0L1VuaXRUZXN0L0luY2x1ZGUvTGlicmFyeS9Vbml0VGVzdEhvc3RCYXNlDQo+ID4g TGliLmgjTDUwNykNCj4gPiAgdGhhdCBjYW4gYmUgdXNlZCB0byBzdWJzdGl0dXRlIHRlc3QgZnVu Y3Rpb25hbGl0eSBmb3IgYW55IG9mIHRoZSBCYXNlTGliDQo+ID4gZnVuY3Rpb25zLiBCeSBkZWZh dWx0LCB0aGlzIGltcGxlbWVudGF0aW9uDQo+ID4gIHdpbGwgdXNlIHRoZSB1bmRlcmx5aW5nIEJh c2VMaWIgaW1wbGVtZW50YXRpb24sIHNvIHRoZSB1bml0IHRlc3Qgd3JpdGVyDQo+IG9ubHkNCj4g PiBoYXMgdG8gc3VwcGx5IG1pbmltYWwgY29kZSB0byB0ZXN0IGENCj4gPiBAQCAtMjU1LDcgKzQy OSw3IEBAIHBhcnRpY3VsYXIgY2FzZS4NCj4gPg0KPiA+ICAjIyMgRGVidWdnaW5nIHRoZSBGcmFt ZXdvcmsgSXRzZWxmDQo+ID4NCj4gPiAtV2hpbGUgbW9zdCBvZiB0aGUgdGVzdHMgdGhhdCBhcmUg cHJvZHVjZWQgYnkgdGhlIFVuaXRUZXN0RnJhbWV3b3JrIGFyZQ0KPiA+IGVhc3kgdG8gc3RlcCB0 aHJvdWdoIGluIGEgZGVidWdnZXIsIHRoZSBGcmFtZXdvcmsNCj4gPiArV2hpbGUgbW9zdCBvZiB0 aGUgdGVzdHMgdGhhdCBhcmUgcHJvZHVjZWQgYnkgdGhlIFVuaXRUZXN0RnJhbWV3b3JrUGtnIGFy ZQ0KPiA+IGVhc3kgdG8gc3RlcCB0aHJvdWdoIGluIGEgZGVidWdnZXIsIHRoZSBGcmFtZXdvcmsN Cj4gPiAgaXRzZWxmIGNvbnN1bWVzIGNvZGUgKG1vc3RseSBDbW9ja2EpIHRoYXQgc2V0cyBpdHMg b3duIGJ1aWxkIGZsYWdzLiBUaGVzZQ0KPiA+IGZsYWdzIGNhdXNlIHBhcnRzIG9mIHRoZSBGcmFt ZXdvcmsgdG8gbm90DQo+ID4gIGV4cG9ydCBzeW1ib2xzIGFuZCBjYXB0dXJlcyBleGNlcHRpb25z LCBhbmQgYXMgc3VjaCBhcmUgaGFyZGVyIHRvIGRlYnVnLg0KPiA+IFdlIGhhdmUgcHJvdmlkZWQg YSBTdHVhcnQgcGFyYW1ldGVyIHRvIGZvcmNlDQo+ID4gIHN5bWJvbGljIGRlYnVnZ2luZyB0byBi ZSBlbmFibGVkLg0KPiA+IEBAIC0yNjksMTUgKzQ0MywxNyBAQCBzdHVhcnRfY2lfYnVpbGQgLWMg LnB5dG9vbC9DSVNldHRpbmdzLnB5DQo+ID4gVE9PTF9DSEFJTl9UQUc9VlMyMDE5IC1wIE1kZVBr ZyAtdCBOT09QDQo+ID4gICMjIEJ1aWxkaW5nIGFuZCBSdW5uaW5nIEhvc3QtQmFzZWQgVGVzdHMN Cj4gPg0KPiA+ICBUaGUgRURLMiBDSSBpbmZyYXN0cnVjdHVyZSBwcm92aWRlcyBhIGNvbnZlbmll bnQgd2F5IHRvIHJ1biBhbGwNCj4gaG9zdC1iYXNlZA0KPiA+IHRlc3RzIC0tIGluIHRoZSB0aGUg ZW50aXJlIHRyZWUgb3IganVzdA0KPiA+IC1zZWxlY3RlZCBwYWNrYWdlcyAtLSBhbmQgYWdncmVn YXRlIGFsbCB0aGUgdGhlIHJlcG9ydHMsIGluY2x1ZGluZw0KPiBoaWdobGlnaHRpbmcNCj4gPiBh bnkgZmFpbHVyZXMuIFRoaXMgZnVuY3Rpb25hbGl0eSBpcw0KPiA+IC1wcm92aWRlZCB0aHJvdWdo IHRoZSBTdHVhcnQgYnVpbGQgc3lzdGVtIChwdWJsaXNoZWQgYnkgRURLMi1QeVRvb2xzKSBhbmQN Cj4gPiB0aGUgYE5PT1BUYCBidWlsZCB0YXJnZXQuDQo+ID4gK3NlbGVjdGVkIHBhY2thZ2VzIC0t IGFuZCBhZ2dyZWdhdGUgYWxsIHRoZSByZXBvcnRzLCBpbmNsdWRpbmcNCj4gaGlnaGxpZ2h0aW5n IGFueQ0KPiA+IGZhaWx1cmVzLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMNCj4gPiArcHJvdmlkZWQg dGhyb3VnaCB0aGUgU3R1YXJ0IGJ1aWxkIHN5c3RlbSAocHVibGlzaGVkIGJ5IEVESzItUHlUb29s cykgYW5kDQo+ID4gdGhlIGBOT09QVGAgYnVpbGQgdGFyZ2V0LiBUaGUgc2VjdGlvbnMgdGhhdA0K PiA+ICtmb2xsb3cgdXNlIEZyYW1ld29yayBleGFtcGxlcy4gVW5pdCB0ZXN0cyBiYXNlZCBvbiBH b29nbGVUZXN0IGFyZSBidWlsdA0KPiA+IGFuZCBydW4gdGhlIHNhbWUgd2F5LiBUaGUgdGV4dCBv dXRwdXQgYW5kDQo+ID4gK0pVTklUIFhNTCBvdXRwdXQgZm9ybWF0IGhhdmUgc21hbGwgZGlmZmVy ZW5jZXMuDQo+ID4NCj4gPiAgIyMjIEJ1aWxkaW5nIExvY2FsbHkNCj4gPg0KPiA+ICBGaXJzdCwg dG8gbWFrZSBzdXJlIHlvdSdyZSB3b3JraW5nIHdpdGggdGhlIGxhdGVzdCBQeVRvb2xzLCBydW4g dGhlDQo+IGZvbGxvd2luZw0KPiA+IGNvbW1hbmQ6DQo+ID4NCj4gPiAgYGBgYmFzaA0KPiA+IC0j IFdvdWxkIHJlY29tbWVuZCB0byBydW4gdGhpcyBpbiBhIFB5dGhvbiB2ZW52LCBidXQgdGhhdCdz IG91dCBvZiBzY29wZQ0KPiBmb3INCj4gPiB0aGlzIGRvYy4NCj4gPiArIyBXb3VsZCByZWNvbW1l bmQgcnVubmluZyB0aGlzIGluIGEgUHl0aG9uIHZlbnYsIGJ1dCB0aGF0J3Mgb3V0IG9mIHNjb3Bl DQo+IGZvcg0KPiA+IHRoaXMgZG9jLg0KPiA+ICBweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdy YWRlIC1yIC4vcGlwLXJlcXVpcmVtZW50cy50eHQNCj4gPiAgYGBgDQo+ID4NCj4gPiBAQCAtMzYx LDcgKzUzNyw3IEBAIFJVTk5JTkcgVEVTVCBTVUlURTogSW50IFNhZmUgQ29udmVyc2lvbnMgVGVz dA0KPiA+IFN1aXRlDQo+ID4gIGBgYA0KPiA+DQo+ID4gIFlvdSBjYW4gYWxzbywgaWYgeW91IGFy ZSBzbyBpbmNsaW5lZCwgcmVhZCB0aGUgb3V0cHV0IGZyb20gdGhlIGV4YWN0DQo+IGluc3RhbmNl DQo+ID4gb2YgdGhlIHRlc3QgdGhhdCB3YXMgcnVuIGR1cmluZw0KPiA+IC1gc3R1YXJ0X2NpX2J1 aWxkYC4gVGhlIG91cHV0IGZpbGUgY2FuIGJlIGZvdW5kIG9uIGEgcGF0aCB0aGF0IGxvb2tzIGxp a2U6DQo+ID4gK2BzdHVhcnRfY2lfYnVpbGRgLiBUaGUgb3V0cHV0IGZpbGUgY2FuIGJlIGZvdW5k IG9uIGEgcGF0aCB0aGF0IGxvb2tzDQo+IGxpa2U6DQo+ID4NCj4gPg0KPiA+IGBCdWlsZC88UGFj a2FnZT4vSG9zdFRlc3QvPEFyY2g+LzxUZXN0TmFtZT4uPFRlc3RTdWl0ZU5hbWU+LjxBcmNoPi5y ZQ0KPiA+IHN1bHQueG1sYA0KPiA+DQo+ID4gQEAgLTM4OSwyMiArNTY1LDMwIEBADQo+ID4gYzpc X3VlZmlcTWRlUGtnXFRlc3RcVW5pdFRlc3RcTGlicmFyeVxCYXNlU2FmZUludExpYlxUZXN0QmFz ZVNhZmVJbnRMaWIuYzoNCj4gPiAzNTogZXINCj4gPg0KPiA+ICAjIyMgWE1MIFJlcG9ydGluZyBN b2RlDQo+ID4NCj4gPiAtU2luY2UgdGhlc2UgYXBwbGljYXRpb25zIGFyZSBidWlsdCB1c2luZyB0 aGUgQ01vY2thIGZyYW1ld29yaywgdGhleSBjYW4NCj4gYWxzbw0KPiA+IHVzZSB0aGUgZm9sbG93 aW5nIGVudiB2YXJpYWJsZXMgdG8gb3V0cHV0DQo+ID4gLWluIGEgc3RydWN0dXJlZCBYTUwgcmF0 aGVyIHRoYW4gdGV4dDoNCj4gPiArVW5pdCB0ZXN0IGFwcGxpY2F0aW9ucyB1c2luZyBGcmFtZXdv cmsgYXJlIGJ1aWx0IHVzaW5nIENtb2NrYSB0aGF0DQo+IHJlcXVpcmVzDQo+ID4gdGhlDQo+ID4g K2ZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYmUgc2V0IHRvIGdlbmVyYXRlIHN0 cnVjdHVyZWQgWE1MDQo+IG91dHB1dA0KPiA+ICtyYXRoZXIgdGhhbiB0ZXh0Og0KPiA+DQo+ID4g LWBgYHRleHQNCj4gPiArYGBgDQo+ID4gIENNT0NLQV9NRVNTQUdFX09VVFBVVD14bWwNCj4gPiAg Q01PQ0tBX1hNTF9GSUxFPTxhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRoIHRvIG91dHB1dCBmaWxl Pg0KPiA+ICBgYGANCj4gPg0KPiA+ICtVbml0IHRlc3QgYXBwbGljYXRpb25zIHVzaW5nIEdvb2ds ZVRlc3QgcmVxdWlyZSB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50DQo+ID4gK3ZhcmlhYmxlIHRv IGJlIHNldCB0byBnZW5lcmF0ZSBzdHJ1Y3R1cmVkIFhNTCBvdXRwdXQgcmF0aGVyIHRoYW4gdGV4 dDoNCj4gPiArDQo+ID4gK2BgYA0KPiA+ICtHVEVTVF9PVVRQVVQ9eG1sOjxhYnNvbHV0ZSBvciBy ZWxhdGl2ZSBwYXRoIHRvIG91dHB1dCBmaWxlPg0KPiA+ICtgYGANCj4gPiArDQo+ID4gIFRoaXMg bW9kZSBpcyB1c2VkIGJ5IHRoZSB0ZXN0IHJ1bm5pbmcgcGx1Z2luIHRvIGFnZ3JlZ2F0ZSB0aGUg cmVzdWx0cyBmb3INCj4gQ0kNCj4gPiB0ZXN0IHN0YXR1cyByZXBvcnRpbmcgaW4gdGhlIHdlYiB2 aWV3Lg0KPiA+DQo+ID4gICMjIyBJbXBvcnRhbnQgTm90ZQ0KPiA+DQo+ID4gLVRoaXMgd29ya3Mg b24gYm90aCBXaW5kb3dzIGFuZCBMaW51eCwgYnV0IGlzIGN1cnJlbnRseSBsaW1pdGVkIHRvIHg2 NA0KPiA+IGFyY2hpdGVjdHVyZXMuIFdvcmtpbmcgb24gZ2V0dGluZyBvdGhlcnMsIGJ1dCB3ZQ0K PiA+ICtUaGlzIHdvcmtzIG9uIGJvdGggV2luZG93cyBhbmQgTGludXggYnV0IGlzIGN1cnJlbnRs eSBsaW1pdGVkIHRvIHg2NA0KPiA+IGFyY2hpdGVjdHVyZXMuIFdvcmtpbmcgb24gZ2V0dGluZyBv dGhlcnMsIGJ1dCB3ZQ0KPiA+ICBhbHNvIHdlbGNvbWUgY29udHJpYnV0aW9ucy4NCj4gPg0KPiA+ IC0jIyBLbm93biBMaW1pdGF0aW9ucw0KPiA+ICsjIyBGcmFtZXdvcmsgS25vd24gTGltaXRhdGlv bnMNCj4gPg0KPiA+ICAjIyMgUEVJLCBEWEUsIFNNTQ0KPiA+DQo+ID4gQEAgLTQxOCw3ICs2MDIs NyBAQCBQRUksIERYRSwgYW5kIFNNTSBpcyBmb3J0aGNvbWluZywgYnV0IHNob3VsZCBiZQ0KPiA+ IGNvbnNpZGVyZWQgYmV0YS9zdGFnaW5nIGZvciBub3cuDQo+ID4gIFRoZSBob3N0LWJhc2VkIHRl c3QgZnJhbWV3b3JrIGlzIHBvd2VyZWQgaW50ZXJuYWxseSBieSB0aGUgQ21vY2thDQo+ID4gZnJh bWV3b3JrLiBBcyBzdWNoLCBpdCBoYXMgYWJpbGl0aWVzDQo+ID4gIHRoYXQgdGhlIHRhcmdldC1i YXNlZCB0ZXN0cyBkb24ndCAoeWV0KS4gSXQgd291bGQgYmUgYXdlc29tZSBpZiB0aGlzDQo+IG1l YW50DQo+ID4gdGhhdCBpdCB3YXMgYSBzdXBlciBzZXQgb2YNCj4gPiAgdGhlIHRhcmdldC1iYXNl ZCB0ZXN0cywgYW5kIGl0IHdvcmtlZCBqdXN0IGxpa2UgdGhlIHRhcmdldC1iYXNlZCB0ZXN0cw0K PiBidXQNCj4gPiB3aXRoIG1vcmUgZmVhdHVyZXMuIFVuZm9ydHVuYXRlbHksDQo+ID4gLXRoaXMg aXMgbm90IHRoZSBjYXNlLiBXaGlsZSBjYXJlIGhhcyBiZWVuIHRha2VuIHRvIGtlZXAgdGhlbSBh cyBjbG9zZSBhDQo+ID4gcG9zc2libGUsIHRoZXJlIGFyZSBhIGZldyBrbm93bg0KPiA+ICt0aGlz IGlzIG5vdCB0aGUgY2FzZS4gV2hpbGUgY2FyZSBoYXMgYmVlbiB0YWtlbiB0byBrZWVwIHRoZW0g YXMgY2xvc2UgYXMNCj4gPiBwb3NzaWJsZSwgdGhlcmUgYXJlIGEgZmV3IGtub3duDQo+ID4gIGlu Y29uc2lzdGVuY2llcyB0aGF0IHdlJ3JlIHN0aWxsIGlyb25pbmcgb3V0LiBGb3IgZXhhbXBsZSwg dGhlIGxvZ2dpbmcNCj4gPiBtZXNzYWdlcyBpbiB0aGUgdGFyZ2V0LWJhc2VkIHRlc3RzDQo+ID4g IGFyZSBjYWNoZWQgaW50ZXJuYWxseSBhbmQgYXNzb2NpYXRlZCB3aXRoIHRoZSBydW5uaW5nIHRl c3QgY2FzZS4gVGhleSBjYW4NCj4gYmUNCj4gPiBzYXZlZCBsYXRlciBhcyBwYXJ0IG9mIHRoZQ0K PiA+ICByZXBvcnRpbmcgbGliLiBUaGlzIGlzbid0IGN1cnJlbnRseSBwb3NzaWJsZSB3aXRoIGhv c3QtYmFzZWQuIE9ubHkgdGhlDQo+IGFzc2VydGlvbg0KPiA+IGZhaWx1cmVzIGFyZSBsb2dnZWQu DQo+ID4gQEAgLTQ0MSw2ICs2MjUsOSBAQCBOb24tSG9zdC1CYXNlZCAoUEVJL0RYRS9TTU0vU2hl bGwpIFRlc3RzIGZvciBhDQo+ID4gRnVuY3Rpb25hbGl0eSBvciBGZWF0dXJlICAgfCBTaW1pDQo+ ID4gICAgQ29tcG9uZW50WS8NCj4gPiAgICAgIENvbXBvbmVudFkuaW5mDQo+ID4gICAgICBDb21w b25lbnRZLmMNCj4gPiArICAgIEdvb2dsZVRlc3QvDQo+ID4gKyAgICAgIENvbXBvbmVudFlIb3N0 R29vZ2xlVGVzdC5pbmYgICAgIyBIb3N0LUJhc2VkIFRlc3QgZm9yIERyaXZlcg0KPiA+IE1vZHVs ZQ0KPiA+ICsgICAgICBDb21wb25lbnRZR29vZ2xlVGVzdC5jcHANCj4gPiAgICAgIFVuaXRUZXN0 Lw0KPiA+ICAgICAgICBDb21wb25lbnRZSG9zdFVuaXRUZXN0LmluZiAgICAgICMgSG9zdC1CYXNl ZCBUZXN0IGZvciBEcml2ZXINCj4gPiBNb2R1bGUNCj4gPiAgICAgICAgQ29tcG9uZW50WVVuaXRU ZXN0LmMNCj4gPiBAQCAtNDU1LDExICs2NDIsMjMgQEAgTm9uLUhvc3QtQmFzZWQgKFBFSS9EWEUv U01NL1NoZWxsKSBUZXN0cyBmb3IgYQ0KPiA+IEZ1bmN0aW9uYWxpdHkgb3IgRmVhdHVyZSAgIHwg U2ltaQ0KPiA+ICAgICAgU3BlY2lmaWNMaWJEeGUvDQo+ID4gICAgICAgIFNwZWNpZmljTGliRHhl LmMNCj4gPiAgICAgICAgU3BlY2lmaWNMaWJEeGUuaW5mDQo+ID4gKyAgICAgIEdvb2dsZVRlc3Qv ICAgICAgICAgICAgICAgICAgICAjIEhvc3QtQmFzZWQgVGVzdCBmb3IgU3BlY2lmaWMNCj4gPiBM aWJyYXJ5IEltcGxlbWVudGF0aW9uDQo+ID4gKyAgICAgICAgU3BlY2lmaWNMaWJEeGVIb3N0R29v Z2xlVGVzdC5jcHANCj4gPiArICAgICAgICBTcGVjaWZpY0xpYkR4ZUhvc3RHb29nbGVUZXN0Lmlu Zg0KPiA+ICAgICAgICBVbml0VGVzdC8gICAgICAgICAgICAgICAgICAgICAgIyBIb3N0LUJhc2Vk IFRlc3QgZm9yIFNwZWNpZmljDQo+ID4gTGlicmFyeSBJbXBsZW1lbnRhdGlvbg0KPiA+ICAgICAg ICAgIFNwZWNpZmljTGliRHhlSG9zdFVuaXRUZXN0LmMNCj4gPiAgICAgICAgICBTcGVjaWZpY0xp YkR4ZUhvc3RVbml0VGVzdC5pbmYNCj4gPiAgICBUZXN0Lw0KPiA+ICAgICAgPFBhY2thZ2U+SG9z dFRlc3QuZHNjICAgICAgICAgICAgICMgSG9zdC1CYXNlZCBUZXN0IEFwcHMNCj4gPiArICAgIEdv b2dsZVRlc3QvDQo+ID4gKyAgICAgIEludGVyZmFjZVgNCj4gPiArICAgICAgICBJbnRlcmZhY2VY SG9zdEdvb2dsZVRlc3QuaW5mICAjIEhvc3QtQmFzZWQgQXBwIChzaG91bGQgYmUgaW4NCj4gPiBU ZXN0LzxQYWNrYWdlPkhvc3RUZXN0LmRzYykNCj4gPiArICAgICAgICBJbnRlcmZhY2VYVW5pdFRl c3QuY3BwICAgICAgICAjIFRlc3QgTG9naWMNCj4gPiArDQo+ID4gKyAgICAgIEdlbmVyYWxQdXJw b3NlTGliLyAgICAgICAgICAgICAgIyBIb3N0LUJhc2VkIFRlc3QgZm9yIGFueQ0KPiA+IGltcGxl bWVudGF0aW9uIG9mIEdlbmVyYWxQdXJwb3NlTGliDQo+ID4gKyAgICAgICAgR2VuZXJhbFB1cnBv c2VMaWJUZXN0LmNwcA0KPiA+ICsgICAgICAgIEdlbmVyYWxQdXJwb3NlTGliSG9zdFVuaXRUZXN0 LmluZg0KPiA+ICsNCj4gPiAgICAgIFVuaXRUZXN0Lw0KPiA+ICAgICAgICBJbnRlcmZhY2VYDQo+ ID4gICAgICAgICAgSW50ZXJmYWNlWEhvc3RVbml0VGVzdC5pbmYgICAgIyBIb3N0LUJhc2VkIEFw cCAoc2hvdWxkIGJlIGluDQo+ID4gVGVzdC88UGFja2FnZT5Ib3N0VGVzdC5kc2MpDQo+ID4gZGlm ZiAtLWdpdA0KPiA+IGEvVW5pdFRlc3RGcmFtZXdvcmtQa2cvVGVzdC9Hb29nbGVUZXN0L1NhbXBs ZS9TYW1wbGVHb29nbGVUZXN0L1NhbXBsDQo+ID4gZUdvb2dsZVRlc3QuY3BwDQo+ID4gYi9Vbml0 VGVzdEZyYW1ld29ya1BrZy9UZXN0L0dvb2dsZVRlc3QvU2FtcGxlL1NhbXBsZUdvb2dsZVRlc3Qv U2FtcGwNCj4gPiBlR29vZ2xlVGVzdC5jcHANCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ IGluZGV4IDAwMDAwMDAwMDAwMC4uYzgzZTU4NTk2YTgyDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ ICsrKw0KPiA+IGIvVW5pdFRlc3RGcmFtZXdvcmtQa2cvVGVzdC9Hb29nbGVUZXN0L1NhbXBsZS9T YW1wbGVHb29nbGVUZXN0L1NhbXBsDQo+ID4gZUdvb2dsZVRlc3QuY3BwDQo+ID4gQEAgLTAsMCAr MSwyNjMgQEANCj4gPiArLyoqIEBmaWxlDQo+ID4gKyAgVGhpcyBpcyBhIHNhbXBsZSB0byBkZW1v bnN0cmF0ZXMgdGhlIHVzZSBvZiBHb29nbGVUZXN0IHRoYXQgc3VwcG9ydHMNCj4gaG9zdA0KPiA+ ICsgIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMuDQo+ID4gKw0KPiA+ICsgIENvcHlyaWdodCAoYykg MjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsg IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gKw0KPiA+ ICsqKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPg0KPiA+ICtleHRlcm4g IkMiIHsNCj4gPiArICAjaW5jbHVkZSA8VWVmaS5oPg0KPiA+ICsgICNpbmNsdWRlIDxMaWJyYXJ5 L0Jhc2VMaWIuaD4NCj4gPiArICAjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiA+ICt9 DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTYW1wbGUgdW5pdCB0ZXN0IHRoYXQgdmVyaWZpZXMg dGhlIGV4cGVjdGVkIHJlc3VsdCBvZiBhbiB1bnNpZ25lZA0KPiBpbnRlZ2VyDQo+ID4gKyAgYWRk aXRpb24gb3BlcmF0aW9uLg0KPiA+ICsqKi8NCj4gPiArVEVTVChTaW1wbGVNYXRoVGVzdHMsIE9u ZVBsdXNPbmVTaG91bGRFcXVhbFR3bykgew0KPiA+ICsgIFVJTlROICBBOw0KPiA+ICsgIFVJTlRO ICBCOw0KPiA+ICsgIFVJTlROICBDOw0KPiA+ICsNCj4gPiArICBBID0gMTsNCj4gPiArICBCID0g MTsNCj4gPiArICBDID0gQSArIEI7DQo+ID4gKw0KPiA+ICsgIEFTU0VSVF9FUSAoQywgKFVJTlRO KTIpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTYW1wbGUgdW5pdCB0ZXN0IHRo YXQgdmVyaWZpZXMgdGhhdCBhIGdsb2JhbCBCT09MRUFOIGlzIHVwZGF0YWJsZS4NCj4gPiArKiov DQo+ID4gK2NsYXNzIEdsb2JhbEJvb2xlYW5WYXJUZXN0cyA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRl c3Qgew0KPiA+ICsgIHB1YmxpYzoNCj4gPiArICAgIEJPT0xFQU4gIFNhbXBsZUdsb2JhbFRlc3RC b29sZWFuICA9IEZBTFNFOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArVEVTVF9GKEdsb2JhbEJvb2xl YW5WYXJUZXN0cywgR2xvYmFsQm9vbGVhblNob3VsZEJlQ2hhbmdlYWJsZSkgew0KPiA+ICsgIFNh bXBsZUdsb2JhbFRlc3RCb29sZWFuID0gVFJVRTsNCj4gPiArICBBU1NFUlRfVFJVRSAoU2FtcGxl R2xvYmFsVGVzdEJvb2xlYW4pOw0KPiA+ICsNCj4gPiArICBTYW1wbGVHbG9iYWxUZXN0Qm9vbGVh biA9IEZBTFNFOw0KPiA+ICsgIEFTU0VSVF9GQUxTRSAoU2FtcGxlR2xvYmFsVGVzdEJvb2xlYW4p Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTYW1wbGUgdW5pdCB0ZXN0IHRoYXQg bG9ncyBhIHdhcm5pbmcgbWVzc2FnZSBhbmQgdmVyaWZpZXMgdGhhdCBhIGdsb2JhbA0KPiA+ICsg IHBvaW50ZXIgaXMgdXBkYXRhYmxlLg0KPiA+ICsqKi8NCj4gPiArY2xhc3MgR2xvYmFsVmFyVGVz dHMgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsNCj4gPiArICBwdWJsaWM6DQo+ID4gKyAgICBW T0lEICAqU2FtcGxlR2xvYmFsVGVzdFBvaW50ZXIgPSBOVUxMOw0KPiA+ICsNCj4gPiArICBwcm90 ZWN0ZWQ6DQo+ID4gKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsNCj4gPiArICAgIEFTU0VSVF9F USAoKFVJTlROKVNhbXBsZUdsb2JhbFRlc3RQb2ludGVyLCAoVUlOVE4pTlVMTCk7DQo+ID4gKyAg fQ0KPiA+ICsgIHZvaWQgVGVhckRvd24oKSB7DQo+ID4gKyAgICBTYW1wbGVHbG9iYWxUZXN0UG9p bnRlciA9IE5VTEw7DQo+ID4gKyAgfQ0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArVEVTVF9GKEdsb2Jh bFZhclRlc3RzLCBHbG9iYWxQb2ludGVyU2hvdWxkQmVDaGFuZ2VhYmxlKSB7DQo+ID4gKyAgU2Ft cGxlR2xvYmFsVGVzdFBvaW50ZXIgPSAoVk9JRCAqKS0xOw0KPiA+ICsgIEFTU0VSVF9FUSAoKFVJ TlROKVNhbXBsZUdsb2JhbFRlc3RQb2ludGVyLCAoVUlOVE4pKChWT0lEICopLTEpKTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFNldCBQY2REZWJ1Z1Byb3BlcnR5TWFz ayBmb3IgZWFjaCBNYWNyb1Rlc3RzQXNzZXJ0c0VuYWJsZWREaXNhYmxlZA0KPiA+IHRlc3QNCj4g PiArKiovDQo+ID4gK2NsYXNzIE1hY3JvVGVzdHNBc3NlcnRzRW5hYmxlZERpc2FibGVkIDogcHVi bGljDQo+ID4gdGVzdGluZzo6VGVzdFdpdGhQYXJhbTxVSU5UOD4gew0KPiA+ICsgIHZvaWQgU2V0 VXAoKSB7DQo+ID4gKyAgICBQYXRjaFBjZFNldDggKFBjZERlYnVnUHJvcGVydHlNYXNrLCBHZXRQ YXJhbSgpKTsNCj4gPiArICB9DQo+ID4gK307DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTYW1w bGUgdW5pdCB0ZXN0IHVzaW5nIHRoZSBBU1NFUlRfVFJVRSgpIG1hY3JvLg0KPiA+ICsqKi8NCj4g PiArVEVTVF9QKE1hY3JvVGVzdHNBc3NlcnRzRW5hYmxlZERpc2FibGVkLCBNYWNyb0Fzc2VydFRy dWUpIHsNCj4gPiArICBVSU5UNjQgIFJlc3VsdDsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAv LyBUaGlzIHRlc3QgcGFzc2VzIGJlY2F1c2UgZXhwcmVzc2lvbiBhbHdheXMgZXZhbHVhdGVkIHRv IFRSVUUuDQo+ID4gKyAgLy8NCj4gPiArICBBU1NFUlRfVFJVRSAoVFJVRSk7DQo+ID4gKw0KPiA+ ICsgIC8vDQo+ID4gKyAgLy8gVGhpcyB0ZXN0IHBhc3NlcyBiZWNhdXNlIGV4cHJlc3Npb24gYWx3 YXlzIGV2YWx1YXRlcyB0byBUUlVFLg0KPiA+ICsgIC8vDQo+ID4gKyAgUmVzdWx0ID0gTFNoaWZ0 VTY0IChCSVQwLCAxKTsNCj4gPiArICBBU1NFUlRfVFJVRSAoUmVzdWx0ID09IEJJVDEpOw0KPiA+ ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTYW1wbGUgdW5pdCB0ZXN0IHVzaW5nIHRoZSBB U1NFUlRfRkFMU0UoKSBtYWNyby4NCj4gPiArKiovDQo+ID4gK1RFU1RfUChNYWNyb1Rlc3RzQXNz ZXJ0c0VuYWJsZWREaXNhYmxlZCwgTWFjcm9Bc3NlcnRGYWxzZSkgew0KPiA+ICsgIFVJTlQ2NCAg UmVzdWx0Ow0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFRoaXMgdGVzdCBwYXNzZXMgYmVj YXVzZSBleHByZXNzaW9uIGFsd2F5cyBldmFsdWF0ZWQgdG8gRkFMU0UuDQo+ID4gKyAgLy8NCj4g PiArICBBU1NFUlRfRkFMU0UgKEZBTFNFKTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBU aGlzIHRlc3QgcGFzc2VzIGJlY2F1c2UgZXhwcmVzc2lvbiBhbHdheXMgZXZhbHVhdGVzIHRvIEZB TFNFLg0KPiA+ICsgIC8vDQo+ID4gKyAgUmVzdWx0ID0gTFNoaWZ0VTY0IChCSVQwLCAxKTsNCj4g PiArICBBU1NFUlRfRkFMU0UgKFJlc3VsdCA9PSBCSVQwKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr LyoqDQo+ID4gKyAgU2FtcGxlIHVuaXQgdGVzdCB1c2luZyB0aGUgQVNTRVJUX0VRKCkgbWFjcm8u DQo+ID4gKyoqLw0KPiA+ICtURVNUX1AoTWFjcm9UZXN0c0Fzc2VydHNFbmFibGVkRGlzYWJsZWQs IE1hY3JvQXNzZXJ0RXF1YWwpIHsNCj4gPiArICBVSU5UNjQgIFJlc3VsdDsNCj4gPiArDQo+ID4g KyAgLy8NCj4gPiArICAvLyBUaGlzIHRlc3QgcGFzc2VzIGJlY2F1c2UgYm90aCB2YWx1ZXMgYXJl IGFsd2F5cyBlcXVhbC4NCj4gPiArICAvLw0KPiA+ICsgIEFTU0VSVF9FUSAoMSwgMSk7DQo+ID4g Kw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gVGhpcyB0ZXN0IHBhc3NlcyBiZWNhdXNlIGJvdGggdmFs dWVzIGFyZSBhbHdheXMgZXF1YWwuDQo+ID4gKyAgLy8NCj4gPiArICBSZXN1bHQgPSBMU2hpZnRV NjQgKEJJVDAsIDEpOw0KPiA+ICsgIEFTU0VSVF9FUSAoUmVzdWx0LCAoVUlOVDY0KUJJVDEpOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTYW1wbGUgdW5pdCB0ZXN0IHVzaW5nIHRo ZSBBU1NFUlRfU1RSRVEoKSBtYWNyby4NCj4gPiArKiovDQo+ID4gK1RFU1RfUChNYWNyb1Rlc3Rz QXNzZXJ0c0VuYWJsZWREaXNhYmxlZCwgTWFjcm9Bc3NlcnRNZW1FcXVhbCkgew0KPiA+ICsgIENI QVI4ICAqU3RyaW5nMTsNCj4gPiArICBDSEFSOCAgKlN0cmluZzI7DQo+ID4gKw0KPiA+ICsgIC8v DQo+ID4gKyAgLy8gVGhpcyB0ZXN0IHBhc3NlcyBiZWNhdXNlIFN0cmluZzEgYW5kIFN0cmluZzIg YXJlIHRoZSBzYW1lLg0KPiA+ICsgIC8vDQo+ID4gKyAgU3RyaW5nMSA9IChDSEFSOCAqKSJIZWxs byI7DQo+ID4gKyAgU3RyaW5nMiA9IChDSEFSOCAqKSJIZWxsbyI7DQo+ID4gKyAgQVNTRVJUX1NU UkVRIChTdHJpbmcxLCBTdHJpbmcyKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAg U2FtcGxlIHVuaXQgdGVzdCB1c2luZyB0aGUgQVNTRVJUX05FKCkgbWFjcm8uDQo+ID4gKyoqLw0K PiA+ICtURVNUX1AoTWFjcm9UZXN0c0Fzc2VydHNFbmFibGVkRGlzYWJsZWQsIE1hY3JvQXNzZXJ0 Tm90RXF1YWwpIHsNCj4gPiArICBVSU5UNjQgIFJlc3VsdDsNCj4gPiArDQo+ID4gKyAgLy8NCj4g PiArICAvLyBUaGlzIHRlc3QgcGFzc2VzIGJlY2F1c2UgYm90aCB2YWx1ZXMgYXJlIG5ldmVyIGVx dWFsLg0KPiA+ICsgIC8vDQo+ID4gKyAgQVNTRVJUX05FICgwLCAxKTsNCj4gPiArDQo+ID4gKyAg Ly8NCj4gPiArICAvLyBUaGlzIHRlc3QgcGFzc2VzIGJlY2F1c2UgYm90aCB2YWx1ZXMgYXJlIG5l dmVyIGVxdWFsLg0KPiA+ICsgIC8vDQo+ID4gKyAgUmVzdWx0ID0gTFNoaWZ0VTY0IChCSVQwLCAx KTsNCj4gPiArICBBU1NFUlRfTkUgKFJlc3VsdCwgKFVJTlQ2NClCSVQwKTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArLyoqDQo+ID4gKyAgU2FtcGxlIHVuaXQgdGVzdCB1c2luZyB0aGUgQVNTRVJUX1RS VUUoKSBhbmQgQVNTRVJUKEZBTFNFKQ0KPiA+ICsgIGFuZCBFRklfRUZGT1IoKSBtYWNyb3MgdG8g Y2hlY2sgc3RhdHVzDQo+ID4gKyoqLw0KPiA+ICtURVNUX1AoTWFjcm9UZXN0c0Fzc2VydHNFbmFi bGVkRGlzYWJsZWQsIE1hY3JvQXNzZXJ0Tm90RWZpRXJyb3IpIHsNCj4gPiArICAvLw0KPiA+ICsg IC8vIFRoaXMgdGVzdCBwYXNzZXMgYmVjYXVzZSB0aGUgc3RhdHVzIGlzIG5vdCBhbiBFRkkgZXJy b3IuDQo+ID4gKyAgLy8NCj4gPiArICBBU1NFUlRfRkFMU0UgKEVGSV9FUlJPUiAoRUZJX1NVQ0NF U1MpKTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBUaGlzIHRlc3QgcGFzc2VzIGJlY2F1 c2UgdGhlIHN0YXR1cyBpcyBub3QgYW4gRUZJIGVycm9yLg0KPiA+ICsgIC8vDQo+ID4gKyAgQVNT RVJUX0ZBTFNFIChFRklfRVJST1IgKEVGSV9XQVJOX0JVRkZFUl9UT09fU01BTEwpKTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgU2FtcGxlIHVuaXQgdGVzdCB1c2luZyB0aGUgQVNT RVJUX0VRKCkgbWFjcm8gdG8gY29tcGFyZSBFRklfU1RBVFVTDQo+ID4gdmFsdWVzLg0KPiA+ICsq Ki8NCj4gPiArVEVTVF9QKE1hY3JvVGVzdHNBc3NlcnRzRW5hYmxlZERpc2FibGVkLCBNYWNyb0Fz c2VydFN0YXR1c0VxdWFsKSB7DQo+ID4gKyAgLy8NCj4gPiArICAvLyBUaGlzIHRlc3QgcGFzc2Vz IGJlY2F1c2UgdGhlIHN0YXR1cyB2YWx1ZSBhcmUgYWx3YXlzIGVxdWFsLg0KPiA+ICsgIC8vDQo+ ID4gKyAgQVNTRVJUX0VRIChFRklfU1VDQ0VTUywgRUZJX1NVQ0NFU1MpOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICsvKioNCj4gPiArICBTYW1wbGUgdW5pdCB0ZXN0IHVzaW5nIEFTU0VSVF9ORSgpIG1h Y3JvIHRvIG1ha2Ugc3VyZSBhIHBvaW50ZXIgaXMgbm90DQo+ID4gTlVMTC4NCj4gPiArKiovDQo+ ID4gK1RFU1RfUChNYWNyb1Rlc3RzQXNzZXJ0c0VuYWJsZWREaXNhYmxlZCwgTWFjcm9Bc3NlcnRO b3ROdWxsKSB7DQo+ID4gKyAgVUlOVDY0ICBSZXN1bHQ7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4g KyAgLy8gVGhpcyB0ZXN0IHBhc3NlcyBiZWNhdXNlIHRoZSBwb2ludGVyIGlzIG5ldmVyIE5VTEwu DQo+ID4gKyAgLy8NCj4gPiArICBBU1NFUlRfTkUgKCZSZXN1bHQsIChVSU5UNjQgKilOVUxMKTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgU2FtcGxlIHVuaXQgdGVzdCB1c2luZyB0 aGF0IHNob3VsZCBub3QgZ2VuZXJhdGUgYW55IEFTU0VSVHMoKQ0KPiA+ICsqKi8NCj4gPiArVEVT VF9QKE1hY3JvVGVzdHNBc3NlcnRzRW5hYmxlZERpc2FibGVkLCBNYWNyb0V4cGVjdE5vQXNzZXJ0 RmFpbHVyZSkgew0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gVGhpcyB0ZXN0IHBhc3NlcyBiZWNhdXNl IGl0IG5ldmVyIHRyaWdnZXJzIGFuIEFTU0VSVCgpLg0KPiA+ICsgIC8vDQo+ID4gKyAgQVNTRVJU IChUUlVFKTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBUaGlzIHRlc3QgcGFzc2VzIGJl Y2F1c2UgRGVjaW1hbFRvQmNkKCkgZG9lcyBub3QgQVNTRVJUKCkgaWYgdGhlDQo+ID4gKyAgLy8g dmFsdWUgcGFzc2VkIGluIGlzIDw9IDk5Lg0KPiA+ICsgIC8vDQo+ID4gKyAgRGVjaW1hbFRvQmNk OCAoOTkpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTYW1wbGUgdW5pdCB0ZXN0 IHVzaW5nIHRoZSBBU1NFUlRfREVBVEgoKSBtYWNybyB0byB0ZXN0IGV4cGVjdGVkDQo+ID4gQVNT RVJUKClzLg0KPiA+ICsqKi8NCj4gPiArVEVTVF9QKE1hY3JvVGVzdHNBc3NlcnRzRW5hYmxlZERp c2FibGVkLCBNYWNyb0V4cGVjdEFzc2VydEZhaWx1cmUpIHsNCj4gPiArICAvLw0KPiA+ICsgIC8v IFNraXAgdGVzdHMgdGhhdCB2ZXJpZnkgYW4gQVNTRVJUKCkgaXMgdHJpZ2dlcmVkIGlmIEFTU0VS VCgpcyBhcmUNCj4gZGlzYWJsZWQuDQo+ID4gKyAgLy8NCj4gPiArICBpZiAoKFBjZEdldDggKFBj ZERlYnVnUHJvcGVydHlNYXNrKSAmIEJJVDApID09IDB4MDApIHsNCj4gPiArICAgIHJldHVybjsN Cj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gVGhpcyB0ZXN0IHBhc3NlcyBi ZWNhdXNlIGl0IGRpcmVjdGx5IHRyaWdnZXJzIGFuIEFTU0VSVCgpLg0KPiA+ICsgIC8vDQo+ID4g KyAgQVNTRVJUX0RFQVRIIChBU1NFUlQgKEZBTFNFKSwgIiIpOw0KPiA+ICsNCj4gPiArICAvLw0K PiA+ICsgIC8vIFRoaXMgdGVzdCBwYXNzZXMgYmVjYXVzZSBEZWNpbWFsVG9CY2QoKSBnZW5lcmF0 ZXMgYW4gQVNTRVJUKCkgaWYgdGhlDQo+ID4gKyAgLy8gdmFsdWUgcGFzc2VkIGluIGlzID49IDEw MC4gIFRoZSBleHBlY3RlZCBBU1NFUlQoKSBpcyBjYXVnaHQgYnkgdGhlDQo+IHVuaXQNCj4gPiAr ICAvLyB0ZXN0IGZyYW1ld29yayBhbmQgQVNTRVJUX0RFQVRIKCkgcmV0dXJucyB3aXRob3V0IGFu IGVycm9yLg0KPiA+ICsgIC8vDQo+ID4gKyAgQVNTRVJUX0RFQVRIIChEZWNpbWFsVG9CY2Q4ICgx MDEpLCAiIik7DQo+ID4gK30NCj4gPiArDQo+ID4gK0lOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChW YWxpZElucHV0LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9UZXN0c0Fzc2Vy dHNFbmFibGVkRGlzYWJsZWQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rp bmc6OlZhbHVlcyhQY2RHZXQ4DQo+ID4gKFBjZERlYnVnUHJvcGVydHlNYXNrKSB8IEJJVDAsIFBj ZEdldDggKFBjZERlYnVnUHJvcGVydHlNYXNrKSAmDQo+ID4gKH5CSVQwKSkpOw0KPiA+ICsNCj4g PiArLyoqDQo+ID4gKyAgU2FtcGxlIHVuaXQgdGVzdCB1c2luZyB0aGUgU0NPUEVEX1RSQUNFKCkg bWFjcm8gZm9yIHRyYWNlIG1lc3NhZ2VzLg0KPiA+ICsqKi8NCj4gPiArVEVTVChNYWNyb1Rlc3Rz TWVzc2FnZXMsIE1hY3JvVHJhY2VNZXNzYWdlKSB7DQo+ID4gKyAgLy8NCj4gPiArICAvLyBFeGFt cGxlIG9mIGxvZ2dpbmcuDQo+ID4gKyAgLy8NCj4gPiArICBTQ09QRURfVFJBQ0UgKCJTQ09QRURf VFJBQ0UgbWVzc2FnZVxuIik7DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludCBtYWluKGludCBhcmdj LCBjaGFyKiBhcmd2W10pIHsNCj4gPiArICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywg YXJndik7DQo+ID4gKyAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsNCj4gPiArfQ0KPiA+IGRpZmYg LS1naXQNCj4gPiBhL1VuaXRUZXN0RnJhbWV3b3JrUGtnL1Rlc3QvR29vZ2xlVGVzdC9TYW1wbGUv U2FtcGxlR29vZ2xlVGVzdC9TYW1wbA0KPiA+IGVHb29nbGVUZXN0SG9zdC5pbmYNCj4gPiBiL1Vu aXRUZXN0RnJhbWV3b3JrUGtnL1Rlc3QvR29vZ2xlVGVzdC9TYW1wbGUvU2FtcGxlR29vZ2xlVGVz dC9TYW1wbA0KPiA+IGVHb29nbGVUZXN0SG9zdC5pbmYNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uMzdlN2M4NjkxMGVkDQo+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ICsrKw0KPiA+IGIvVW5pdFRlc3RGcmFtZXdvcmtQa2cvVGVzdC9Hb29nbGVUZXN0L1Nh bXBsZS9TYW1wbGVHb29nbGVUZXN0L1NhbXBsDQo+ID4gZUdvb2dsZVRlc3RIb3N0LmluZg0KPiA+ IEBAIC0wLDAgKzEsMzUgQEANCj4gPiArIyMgQGZpbGUNCj4gPiArIyBUaGlzIGlzIGEgc2FtcGxl IHRvIGRlbW9uc3RyYXRlcyB0aGUgdXNlIG9mIEdvb2dsZVRlc3QgdGhhdCBzdXBwb3J0cw0KPiBo b3N0DQo+ID4gKyMgZXhlY3V0aW9uIGVudmlyb25tZW50cy4NCj4gPiArIw0KPiA+ICsjIENvcHly aWdodCAoYykgMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiA+ICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ ID4gKyMjDQo+ID4gKw0KPiA+ICtbRGVmaW5lc10NCj4gPiArICBJTkZfVkVSU0lPTiAgICA9IDB4 MDAwMTAwMDUNCj4gPiArICBCQVNFX05BTUUgICAgICA9IFNhbXBsZUdvb2dsZVRlc3RIb3N0DQo+ ID4gKyAgRklMRV9HVUlEICAgICAgPSA3RDhCQkZCQi03OTc3LTRBRUUtQTU5Ri0yNTdCRjVDMkY4 N0MNCj4gPiArICBNT0RVTEVfVFlQRSAgICA9IEhPU1RfQVBQTElDQVRJT04NCj4gPiArICBWRVJT SU9OX1NUUklORyA9IDEuMA0KPiA+ICsNCj4gPiArIw0KPiA+ICsjIFRoZSBmb2xsb3dpbmcgaW5m b3JtYXRpb24gaXMgZm9yIHJlZmVyZW5jZSBvbmx5IGFuZCBub3QgcmVxdWlyZWQgYnkgdGhlDQo+ ID4gYnVpbGQgdG9vbHMuDQo+ID4gKyMNCj4gPiArIyAgVkFMSURfQVJDSElURUNUVVJFUyAgICAg ICAgICAgPSBJQTMyIFg2NA0KPiA+ICsjDQo+ID4gKw0KPiA+ICtbU291cmNlc10NCj4gPiArICBT YW1wbGVHb29nbGVUZXN0LmNwcA0KPiA+ICsNCj4gPiArW1BhY2thZ2VzXQ0KPiA+ICsgIE1kZVBr Zy9NZGVQa2cuZGVjDQo+ID4gKyAgVW5pdFRlc3RGcmFtZXdvcmtQa2cvVW5pdFRlc3RGcmFtZXdv cmtQa2cuZGVjDQo+ID4gKw0KPiA+ICtbTGlicmFyeUNsYXNzZXNdDQo+ID4gKyAgR29vZ2xlVGVz dExpYg0KPiA+ICsgIEJhc2VMaWINCj4gPiArICBEZWJ1Z0xpYg0KPiA+ICsNCj4gPiArW1BjZF0N Cj4gPiArICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRGVidWdQcm9wZXJ0eU1hc2sNCj4g PiBkaWZmIC0tZ2l0IGEvVW5pdFRlc3RGcmFtZXdvcmtQa2cvVGVzdC9Vbml0VGVzdEZyYW1ld29y a1BrZ0hvc3RUZXN0LmRzYw0KPiA+IGIvVW5pdFRlc3RGcmFtZXdvcmtQa2cvVGVzdC9Vbml0VGVz dEZyYW1ld29ya1BrZ0hvc3RUZXN0LmRzYw0KPiA+IGluZGV4IDE4NGZkZWM4N2FjZi4uNzA4ZWY3 ZjlhYjM1IDEwMDY0NA0KPiA+IC0tLSBhL1VuaXRUZXN0RnJhbWV3b3JrUGtnL1Rlc3QvVW5pdFRl c3RGcmFtZXdvcmtQa2dIb3N0VGVzdC5kc2MNCj4gPiArKysgYi9Vbml0VGVzdEZyYW1ld29ya1Br Zy9UZXN0L1VuaXRUZXN0RnJhbWV3b3JrUGtnSG9zdFRlc3QuZHNjDQo+ID4gQEAgLTIzLDE0ICsy MywxNiBAQCBbUGNkc1BhdGNoYWJsZUluTW9kdWxlXQ0KPiA+DQo+ID4gIFtDb21wb25lbnRzXQ0K PiA+ICAgICMNCj4gPiAtICAjIEJ1aWxkIEhPU1RfQVBQTElDQVRJT04gdGhhdCB0ZXN0cyB0aGUg U2FtcGxlVW5pdFRlc3QNCj4gPiArICAjIEJ1aWxkIEhPU1RfQVBQTElDQVRJT05zIHRoYXQgdGVz dCB0aGUgU2FtcGxlVW5pdFRlc3QNCj4gPiAgICAjDQo+ID4NCj4gPiBVbml0VGVzdEZyYW1ld29y a1BrZy9UZXN0L1VuaXRUZXN0L1NhbXBsZS9TYW1wbGVVbml0VGVzdC9TYW1wbGVVbml0VGUNCj4g PiBzdEhvc3QuaW5mDQo+ID4gKw0KPiA+IFVuaXRUZXN0RnJhbWV3b3JrUGtnL1Rlc3QvR29vZ2xl VGVzdC9TYW1wbGUvU2FtcGxlR29vZ2xlVGVzdC9TYW1wbGVHDQo+ID4gb29nbGVUZXN0SG9zdC5p bmYNCj4gPg0KPiA+ICAgICMNCj4gPiAgICAjIEJ1aWxkIEhPU1RfQVBQTElDQVRJT04gTGlicmFy aWVzDQo+ID4gICAgIw0KPiA+ICAgIFVuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJhcnkvQ21vY2th TGliL0Ntb2NrYUxpYi5pbmYNCj4gPiArICBVbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0dv b2dsZVRlc3RMaWIvR29vZ2xlVGVzdExpYi5pbmYNCj4gPiAgICBVbml0VGVzdEZyYW1ld29ya1Br Zy9MaWJyYXJ5L1Bvc2l4L0RlYnVnTGliUG9zaXgvRGVidWdMaWJQb3NpeC5pbmYNCj4gPg0KPiA+ IFVuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJhcnkvUG9zaXgvTWVtb3J5QWxsb2NhdGlvbkxpYlBv c2l4L01lbW9yeUFsbG8NCj4gPiBjYXRpb25MaWJQb3NpeC5pbmYNCj4gPiAgICBVbml0VGVzdEZy YW1ld29ya1BrZy9MaWJyYXJ5L1VuaXRUZXN0TGliL1VuaXRUZXN0TGliQ21vY2thLmluZg0KPiA+ IGRpZmYgLS1naXQgYS9Vbml0VGVzdEZyYW1ld29ya1BrZy9Vbml0VGVzdEZyYW1ld29ya1BrZy5j aS55YW1sDQo+ID4gYi9Vbml0VGVzdEZyYW1ld29ya1BrZy9Vbml0VGVzdEZyYW1ld29ya1BrZy5j aS55YW1sDQo+ID4gaW5kZXggNzdkNTFlMTM0ODRjLi4wNzJkZjYyMDhjOTIgMTAwNjQ0DQo+ID4g LS0tIGEvVW5pdFRlc3RGcmFtZXdvcmtQa2cvVW5pdFRlc3RGcmFtZXdvcmtQa2cuY2kueWFtbA0K PiA+ICsrKyBiL1VuaXRUZXN0RnJhbWV3b3JrUGtnL1VuaXRUZXN0RnJhbWV3b3JrUGtnLmNpLnlh bWwNCj4gPiBAQCAtNzgsNyArNzgsOCBAQA0KPiA+ICAgICAgIlNwZWxsQ2hlY2siOiB7DQo+ID4g ICAgICAgICAgIkF1ZGl0T25seSI6IEZhbHNlLCAgICAgICAgICAgIyBGYWlscyB0ZXN0IGJ1dCBy dW4gaW4gQXVkaXRPbmx5DQo+ID4gbW9kZSB0byBjb2xsZWN0IGxvZw0KPiA+ICAgICAgICAgICJJ Z25vcmVGaWxlcyI6IFsgICAgICAgICAgICAgIyB1c2UgZ2l0aWdub3JlIHN5bnRheCB0byBpZ25v cmUNCj4gPiBlcnJvcnMgaW4gbWF0Y2hpbmcgZmlsZXMNCj4gPiAtICAgICAgICAgICAgIkxpYnJh cnkvQ21vY2thTGliL2Ntb2NrYS8qKi8qLioiICAjIG5vdCBnb2luZyB0byBzcGVsbA0KPiA+IGNo ZWNrIGEgc3VibW9kdWxlDQo+ID4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Ntb2NrYUxpYi9jbW9j a2EvKiovKi4qIiwgICMgbm90IGdvaW5nIHRvIHNwZWxsDQo+ID4gY2hlY2sgYSBzdWJtb2R1bGUN Cj4gPiArICAgICAgICAgICAgIkxpYnJhcnkvR29vZ2xlVGVzdExpYi9nb29nbGV0ZXN0LyoqLyou KiIgICMgbm90IGdvaW5nIHRvDQo+ID4gc3BlbGwgY2hlY2sgYSBzdWJtb2R1bGUNCj4gPiAgICAg ICAgICBdLA0KPiA+ICAgICAgICAgICJFeHRlbmRXb3JkcyI6IFsgICAgICAgICAgICAgIyB3b3Jk cyB0byBleHRlbmQgdG8gdGhlDQo+ID4gZGljdGlvbmFyeSBmb3IgdGhpcyBwYWNrYWdlDQo+ID4g ICAgICAgICAgICAgICJ0ZXN0Y2FzZSIsDQo+ID4gQEAgLTkxLDYgKzkyLDcgQEANCj4gPiAgICAg ICAgICAgICAgIk5PRkFJTFVSRSIsDQo+ID4gICAgICAgICAgICAgICJjbW9ja2VyeSIsDQo+ID4g ICAgICAgICAgICAgICJESEFWRSIsICMgYnVpbGQgZmxhZyBmb3IgY21vY2thIGluIHRoZSBJTkYN Cj4gPiArICAgICAgICAgICAgImd0ZXN0IiwgIyBmaWxlIG5hbWUgaW4gR29vZ2xlVGVzdExpYi5p bmYNCj4gPiAgICAgICAgICAgICAgImNvcnRob24iLCAgICAgICMgQ29udGFjdCBHaXRIdWIgYWNj b3VudCBpbiBSZWFkbWUNCj4gPiAgICAgICAgICAgICAgIm1ka2lubmV5IiwgICAgICMgQ29udGFj dCBHaXRIdWIgYWNjb3VudCBpbiBSZWFkbWUNCj4gPiAgICAgICAgICAgICAgInNwYnJvZ2FuIiAg ICAgICMgQ29udGFjdCBHaXRIdWIgYWNjb3VudCBpbiBSZWFkbWUNCj4gPiBkaWZmIC0tZ2l0IGEv VW5pdFRlc3RGcmFtZXdvcmtQa2cvVW5pdFRlc3RGcmFtZXdvcmtQa2cuZGVjDQo+ID4gYi9Vbml0 VGVzdEZyYW1ld29ya1BrZy9Vbml0VGVzdEZyYW1ld29ya1BrZy5kZWMNCj4gPiBpbmRleCAwNjky ODlmMDA5NjkuLmVkMTJmMzIwMDlkOCAxMDA2NDQNCj4gPiAtLS0gYS9Vbml0VGVzdEZyYW1ld29y a1BrZy9Vbml0VGVzdEZyYW1ld29ya1BrZy5kZWMNCj4gPiArKysgYi9Vbml0VGVzdEZyYW1ld29y a1BrZy9Vbml0VGVzdEZyYW1ld29ya1BrZy5kZWMNCj4gPiBAQCAtMTYsMTEgKzE2LDE1IEBAIFtE ZWZpbmVzXQ0KPiA+ICAgIFBBQ0tBR0VfVkVSU0lPTiAgID0gMS4wMA0KPiA+DQo+ID4gIFtJbmNs dWRlc10NCj4gPiArICBJbmNsdWRlDQo+ID4gICAgTGlicmFyeS9DbW9ja2FMaWIvY21vY2thL2lu Y2x1ZGUNCj4gPiArICBMaWJyYXJ5L0dvb2dsZVRlc3RMaWIvZ29vZ2xldGVzdC9nb29nbGV0ZXN0 L2luY2x1ZGUNCj4gPiArICBMaWJyYXJ5L0dvb2dsZVRlc3RMaWIvZ29vZ2xldGVzdC9nb29nbGVt b2NrL2luY2x1ZGUNCj4gPg0KPiA+ICBbSW5jbHVkZXMuQ29tbW9uLlByaXZhdGVdDQo+ID4gICAg UHJpdmF0ZUluY2x1ZGUNCj4gPiAgICBMaWJyYXJ5L0Ntb2NrYUxpYi9jbW9ja2EvaW5jbHVkZS9j bW9ja2VyeQ0KPiA+ICsgIExpYnJhcnkvR29vZ2xlVGVzdExpYi9nb29nbGV0ZXN0L2dvb2dsZXRl c3QNCj4gPg0KPiA+ICBbTGlicmFyeUNsYXNzZXMuQ29tbW9uLlByaXZhdGVdDQo+ID4gICAgIyMg QGxpYnJhcnljbGFzcyBBbGxvd3Mgc2F2ZSBhbmQgcmVzdG9yZSB1bml0IHRlc3QgaW50ZXJuYWwg c3RhdGUNCj4gPiBAQCAtMzUsNiArMzksMTAgQEAgW0xpYnJhcnlDbGFzc2VzLkNvbW1vbi5Qcml2 YXRlXQ0KPiA+ICAgICMNCj4gPiAgICBVbml0VGVzdEJvb3RMaWJ8UHJpdmF0ZUluY2x1ZGUvTGli cmFyeS9Vbml0VGVzdEJvb3RMaWIuaA0KPiA+DQo+ID4gKyAgIyMgQGxpYnJhcnljbGFzcyBHb29n bGVUZXN0IGluZnJhc3RydWN0dXJlDQo+ID4gKyAgIw0KPiA+ICsgIEdvb2dsZVRlc3RMaWJ8SW5j bHVkZS9MaWJyYXJ5L0dvb2dsZVRlc3RMaWIuaA0KPiA+ICsNCj4gPiAgW0d1aWRzXQ0KPiA+ICAg IGdVbml0VGVzdEZyYW1ld29ya1BrZ1Rva2VuU3BhY2VHdWlkID0geyAweDgzM2QzYWJhLCAweDM5 YjQsIDB4NDNhMiwNCj4gPiB7IDB4YjksIDB4MzAsIDB4N2EsIDB4MzQsIDB4NTMsIDB4MzksIDB4 MzEsIDB4YjMgfSB9DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvVW5pdFRlc3RGcmFtZXdvcmtQa2cv VW5pdFRlc3RGcmFtZXdvcmtQa2dIb3N0LmRzYy5pbmMNCj4gPiBiL1VuaXRUZXN0RnJhbWV3b3Jr UGtnL1VuaXRUZXN0RnJhbWV3b3JrUGtnSG9zdC5kc2MuaW5jDQo+ID4gaW5kZXggZjI0OTgxMzcx M2E4Li42ZDVmNjUxZjY4OWYgMTAwNjQ0DQo+ID4gLS0tIGEvVW5pdFRlc3RGcmFtZXdvcmtQa2cv VW5pdFRlc3RGcmFtZXdvcmtQa2dIb3N0LmRzYy5pbmMNCj4gPiArKysgYi9Vbml0VGVzdEZyYW1l d29ya1BrZy9Vbml0VGVzdEZyYW1ld29ya1BrZ0hvc3QuZHNjLmluYw0KPiA+IEBAIC0xNCw2ICsx NCw3IEBAIFtMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uSE9TVF9BUFBMSUNBVElPTl0NCj4gPiAgICBD cHVMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZUNwdUxpYk51bGwvQmFzZUNwdUxpYk51bGwuaW5mDQo+ ID4NCj4gPiBDYWNoZU1haW50ZW5hbmNlTGlifE1kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50 ZW5hbmNlTGliTnVsbC9CYXNlDQo+ID4gQ2FjaGVNYWludGVuYW5jZUxpYk51bGwuaW5mDQo+ID4g ICAgQ21vY2thTGlifFVuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJhcnkvQ21vY2thTGliL0Ntb2Nr YUxpYi5pbmYNCj4gPiArDQo+ID4gR29vZ2xlVGVzdExpYnxVbml0VGVzdEZyYW1ld29ya1BrZy9M aWJyYXJ5L0dvb2dsZVRlc3RMaWIvR29vZ2xlVGVzdExpYi5pDQo+ID4gbmYNCj4gPg0KPiA+IFVu aXRUZXN0TGlifFVuaXRUZXN0RnJhbWV3b3JrUGtnL0xpYnJhcnkvVW5pdFRlc3RMaWIvVW5pdFRl c3RMaWJDbW9ja2EuaQ0KPiA+IG5mDQo+ID4NCj4gPiBEZWJ1Z0xpYnxVbml0VGVzdEZyYW1ld29y a1BrZy9MaWJyYXJ5L1Bvc2l4L0RlYnVnTGliUG9zaXgvRGVidWdMaWJQb3NpDQo+ID4geC5pbmYN Cj4gPg0KPiA+IE1lbW9yeUFsbG9jYXRpb25MaWJ8VW5pdFRlc3RGcmFtZXdvcmtQa2cvTGlicmFy eS9Qb3NpeC9NZW1vcnlBbGxvY2F0aW8NCj4gPiBuTGliUG9zaXgvTWVtb3J5QWxsb2NhdGlvbkxp YlBvc2l4LmluZg0KPiA+IEBAIC0zMCw2ICszMSw3IEBAIFtCdWlsZE9wdGlvbnMuY29tbW9uLkVE S0lJLkhPU1RfQVBQTElDQVRJT05dDQo+ID4gICAgIw0KPiA+ICAgICMgTVNGVA0KPiA+ICAgICMN Cj4gPiArICBNU0ZUOipfKl8qX0NDX0ZMQUdTICAgICAgICAgICAgICAgPSAvRUhzYw0KPiA+ICAg IE1TRlQ6Kl8qXypfRExJTktfRkxBR1MgICAgICAgICAgICA9PQ0KPiA+IC9vdXQ6IiQoQklOX0RJ UilcJChNT0RVTEVfTkFNRV9HVUlEKS5leGUiDQo+ID4gL3BkYjoiJChCSU5fRElSKVwkKE1PRFVM RV9OQU1FX0dVSUQpLnBkYiIgL0lHTk9SRTo0MDAxIC9OT0xPR08NCj4gPiAvU1VCU1lTVEVNOkNP TlNPTEUgL0RFQlVHIC9TVEFDSzoweDQwMDAwLDB4NDAwMDANCj4gPiAvTk9ERUZBVUxUTElCOmxp YmNtdC5saWIgbGliY210ZC5saWINCj4gPiAgICBNU0ZUOipfKl9JQTMyX0RMSU5LX0ZMQUdTICAg ICAgICAgPSAvTUFDSElORTpJMzg2DQo+ID4gICAgTVNGVDoqXypfWDY0X0RMSU5LX0ZMQUdTICAg ICAgICAgID0gL01BQ0hJTkU6QU1ENjQNCj4gPiBAQCAtNDksNyArNTEsNyBAQCBbQnVpbGRPcHRp b25zLmNvbW1vbi5FREtJSS5IT1NUX0FQUExJQ0FUSU9OXQ0KPiA+ICAgICMNCj4gPiAgICBHQ0M6 Kl8qX0lBMzJfRExJTktfRkxBR1MgPT0gLW8gJChCSU5fRElSKS8kKE1PRFVMRV9OQU1FX0dVSUQp DQo+ID4gLW0zMiAtbm8tcGllDQo+ID4gICAgR0NDOipfKl9YNjRfRExJTktfRkxBR1MgID09IC1v DQo+ID4gJChCSU5fRElSKS8kKE1PRFVMRV9OQU1FX0dVSUQpIC1tNjQgLW5vLXBpZQ0KPiA+IC0g IEdDQzoqXypfKl9ETElOSzJfRkxBR1MgICA9PSAtbGdjb3YNCj4gPiArICBHQ0M6Kl8qXypfRExJ TksyX0ZMQUdTICAgPT0gLWxnY292IC1scHRocmVhZCAtbHN0ZGMrKyAtbG0NCj4gPg0KPiA+ICAg ICMNCj4gPiAgICAjIE5lZWQgdG8gZG8gdGhpcyBsaW5rIHZpYSBnY2MgYW5kIG5vdCBsZCBhcyB0 aGUgcGF0aGluZyB0byBsaWJyYXJpZXMNCj4gY2hhbmdlcw0KPiA+IGZyb20gT1MgdmVyc2lvbiB0 byBPUyB2ZXJzaW9uDQo+ID4gLS0NCj4gPiAyLjM3LjEud2luZG93cy4xDQo+ID4NCj4gPg0KPiA+ DQo+ID4gDQo+ID4NCj4gPg0KPiA+DQo+IA0KPiANCj4gDQoNCg==