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.web09.2403.1666840118720897670 for ; Wed, 26 Oct 2022 20:08:39 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=hJevy6b4; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: dun.tan@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1666840118; x=1698376118; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=yo8Qxh65CTmAc/jicd/a99bU5fKxLWDDcnmyOZHhS3I=; b=hJevy6b4GjXktQyWOg8Emp/tpjcP8c4ffAdlKEoZZiGoY/9xpEUmmxEl lStY7BfPjYXuyDStWVx5TdFnmEcGtdPKYWpBVs1gLG/UoTIDsF6DrJMVB JRxC5MZesAaW5CAtDTCuuJ1FicW3Ghz+mvTMeCXweGT+IXidEwbXz0Pd/ OkWNFr4dMLYm6PU6WuqHAggPn66pIrYdpbVw45kOcn6JvVIaGHgjp+G6e Y/59mZtOXn+pRE65IGff1M7t5BcMH2BFHeL+HMt4FJ6h6Awv/uc+z6rTw jYsEBl1uWpe+AADSumo9HNTUknjeHK98bVSkD95RTxXMpynjy1VciNYIO A==; X-IronPort-AV: E=McAfee;i="6500,9779,10512"; a="306847502" X-IronPort-AV: E=Sophos;i="5.95,215,1661842800"; d="scan'208";a="306847502" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Oct 2022 20:08:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10512"; a="721504599" X-IronPort-AV: E=Sophos;i="5.95,215,1661842800"; d="scan'208";a="721504599" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by FMSMGA003.fm.intel.com with ESMTP; 26 Oct 2022 20:08:38 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 26 Oct 2022 20:08:37 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 26 Oct 2022 20:08:37 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 26 Oct 2022 20:08:37 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 26 Oct 2022 20:08:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HN4s8X8jSWNmxIRu5HlR4KOLgGYaHQVAwyhclVUD6enmAdX9po85r+G9/uGat6PnETu0WHTQzrp+GPhryQ+Bb8nBzkttgV6Y95E+jVaJB8Bqw+yGTtI0y1dBUrpMHGNMXK2oxAJ8OB7m3sre8u7vWo1qViBsfFsxqJFor07Yuu3wsIWrkXzI73AiEJYtOy6OyydiNqehaJBDyoWfvmsgN8uHONSJtv5XNiYWBOYoz5BSaL3sm92xHtlt9yloH1Is5r+tsEFiGAjbfQkH4aYte2R0H6xW/OsddIbEe7SMIFkHYnRPYJv1ugRmYG1g3mlX+wHYFmdYzeE4cfHd/2cidg== 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=yo8Qxh65CTmAc/jicd/a99bU5fKxLWDDcnmyOZHhS3I=; b=cMjRGeENqRa8ERHbh8EBsPMLpcH67omESZL2UcAnakVMuoXVDjYFftiOl9PWM4K2uyokrpODw4l3ijn2ZeGflUwoZVp7BWTQ8XEVsYA1F0xJUY6DaYJNjz5XQD53zWAe/DMudz08vY/1+/fZK31s++4gl9UxFMKoYwnlpKiACq6ZM1fe/vgsBAfEjoniBHSaLvlkI+xE0a1ViOhFEhjVOVvJqx/ijDr69YZhoBEfd1C9cVGBXUximsNAg0T+U1bvvSomIHu92W9nNfP7ezRTP645ALYKFj3OAwytVnB76wKxguprRlu2x4TF9GMvocczaFSi2HfjChFZD9rc+2QuMQ== 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 BL1PR11MB5477.namprd11.prod.outlook.com (2603:10b6:208:31f::19) by PH0PR11MB5625.namprd11.prod.outlook.com (2603:10b6:510:ea::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.28; Thu, 27 Oct 2022 03:08:34 +0000 Received: from BL1PR11MB5477.namprd11.prod.outlook.com ([fe80::d8a4:bc7c:2ba4:87ad]) by BL1PR11MB5477.namprd11.prod.outlook.com ([fe80::d8a4:bc7c:2ba4:87ad%5]) with mapi id 15.20.5746.028; Thu, 27 Oct 2022 03:08:34 +0000 From: "duntan" To: "Ni, Ray" , "devel@edk2.groups.io" , "Kinney, Michael D" CC: "Dong, Eric" , "Kumar, Rahul R" Subject: Re: [edk2-devel] [PATCH] UefiCpuPkg: Restore HpetTimer after CpuExceptionHandlerLib test Thread-Topic: [edk2-devel] [PATCH] UefiCpuPkg: Restore HpetTimer after CpuExceptionHandlerLib test Thread-Index: AQHY5DBK+uP1U36chU+8OSjX4+mJbq4hiYUggAAFHgCAAADJ4IAACLCwgAABYHA= Date: Thu, 27 Oct 2022 03:08:34 +0000 Message-ID: References: <20221020030055.815-1-dun.tan@intel.com> <1721CC636147BB21.550@groups.io> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action 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: BL1PR11MB5477:EE_|PH0PR11MB5625:EE_ x-ms-office365-filtering-correlation-id: 7a0884db-ea2c-44e5-26a0-08dab7c88903 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: e8nmO1IO8ZyunpukluligZYdoAT8OfQJKOpXWi4kCYnEEV6vJ3dSHi+BsWHKSMDeIjIUFJCYL9F/6zYwBQ0GzfFk5fPKuHycGq4nu/XP/UKjcBrsp8IBqAw46TAwbeR3Kzi2X66YARe/bam6sBdtPE2mk9MnZxidYqKkYSjf6GT/AaIbQWgan5N8bvwPHcSV8GaP2wNGICszAgq1NHYuYSUcXUwLvZ47lfrZNKD/p+yCM38YBNNJhQp8d/w8qvJCWD+I7a8KVCAN6pTtchU6dHwStu4rlA2HSZ983D2Q8ldMpHWDvZiC2mbBsDpH0GbKXrbgHeNxO6HMY5lQj1F0F8TkVYQOXI+geIC5vGYAk5QioIQlTWrJ1M1ErL1tjOuBzwiLwSpwa6h3uDo9TNaNBNQhr8AZR8pIVPligAMp6hDWevR7bObY2laoO7t9ZJrXkh9RyUyUwJYTCTnd4tk0+v0Pooiss0kXJJJ2IFmCnb0Nm6t+WxGK0V48GKLg7OqjAFIRU+pY90E7DIk3xO+Z/OvtXDsva2Wbk+P2hnOfb93JgsTSmEl58E0I5Z1TVHZ5HGVvnwIPpBR/BYLRAAcWnrJvgvepZVlkMDf9J5A4sQNUhwkiECfuojhTqG2rRVPv8U9KpHdtA3gYyWVWXLjPJjly6YpLRTyMfSV5jA/RehGmLwxPADvQPP0YgsfKLT21qRB//AFr8BoqDp3UZ0509neY50xBSQT2XDLT3SEUZFaNaAxJ4lE4y7G+wxnXuayFPLFQ4GFiV6LLu8E2oYLYUMMsjDUzNHjTDP67lyPRXTCML2v0RMibPAg4cg8DtOj7RGQTlKED62vxE1MRByBdJQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5477.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(396003)(366004)(376002)(346002)(136003)(39860400002)(451199015)(82960400001)(33656002)(86362001)(2906002)(38070700005)(38100700002)(122000001)(76116006)(66946007)(66476007)(54906003)(316002)(64756008)(110136005)(6636002)(8676002)(4326008)(41300700001)(66556008)(8936002)(5660300002)(52536014)(186003)(83380400001)(26005)(107886003)(55016003)(478600001)(7696005)(6506007)(71200400001)(66446008)(966005)(53546011)(9686003)(66899015);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZWlGUUZ0Qm5ZbTdXUW4vUFJpUHlpWlBqRlkrR2p6RUVLSkt5TEl2SEFzUnpk?= =?utf-8?B?d1RNdGFDeGlmVWFnRG4xVXg3ckN3ekRsaUc3YXFwa2JYaVNPUGJPWFNzTFVF?= =?utf-8?B?czNUSmJYa0sxWDBNZGV1OGhEbDhad0lsMWJheUNwc1FkdGR1NWVCa3R3YzRx?= =?utf-8?B?WEorcWcrNVpnUzZrSVRlOUVuL0p5TXdFK2hmemtxM1JFUzV2dHM0Wjc0cE03?= =?utf-8?B?eFlzcE9RM3EwRmZJUVoySThPSW9sZ3QvcDc4a0tjTHd2anhlc3h6WXEwS2Jt?= =?utf-8?B?TEYvM25za28rY2ZnM1JmZFcyMEVwTFhmbXUxWkh2aTJXaC9oYzJldTZBaCtE?= =?utf-8?B?bEpRWHZFRmhaRHZkbHN2aFJsNThuZ1FMM1QwY1VSNG5TK1hKajJYZ0RPK3VC?= =?utf-8?B?eWErVkZzcFRiVGdOWXNDVjRQN1UrT3JtSUtPY1pBN0gwZ05Yc2hnQVJLT2U5?= =?utf-8?B?aDNXcWJvWlZOTy9sQjVaRUY5MjgyQkNaQ25Lb2loZzhBdDRUNWQ0ZU95OU0z?= =?utf-8?B?VUl1RVM4WWhPOFpJb3BYWDNaOXdDYS9GS041dElNTVdpa0VZZ1lLdWw0MFo1?= =?utf-8?B?RWxHVjBxUTFxNDR6WkRaUS9BUFZDTXlCWUJqNzZKZWhiZ3BQL09iSHdCaW9U?= =?utf-8?B?V240YUhkRUFOSktlR3dGL2pSNkZEUVhTRXFGSGpBdjkzTHZEV2lxRkx5S01k?= =?utf-8?B?RW5HZlRyeURrd3hnZmlLdXhBalVBZjJGcVdoU0NMLzZGYmF5UE9ReWJCeG85?= =?utf-8?B?YzQ5bzlMUU5rT3NBNURCQ3lqWXdhYlRJY1NTMlQ4bGl0bjlMRjdqUmYxZDlU?= =?utf-8?B?eGR5UENZb2l3NGEwaS8wcS9TRCtvY2NQU21YRWRvUXhLaXIxbHo1Y0hNV3N2?= =?utf-8?B?dWpTNVhDMnVja0xkRUgrNmJHbElpbHlFcktYV0FHMURaL2owdHk1a3Nmajg1?= =?utf-8?B?UlZZdHpjZURMamlaUkQ5ejg0MDNsVlVwRmNlUXp2Mjg4b0kvZlJScVVvMjhw?= =?utf-8?B?NVdzbjlKWlV2Q0ZDQzhuUmF2KzFhQUFtUkJNT1RtVmhYY20ySVpzd25McVlJ?= =?utf-8?B?WklJcDg3cTEyc1V0cG9yNlV4bUV5elEwLzNPeTRkMEZvSG1GN0ZQMFgrMmxM?= =?utf-8?B?aHB0T041d2VHNGZlZGtHR251TmVWQjZPZy9Cbk43aFFrc0RNeUNsbHlwWWoy?= =?utf-8?B?VDJnYjBNTElHTDNXZkhiTSt3WDkvaG5EVm5xeXNjTHl6SGtrNVp1a3cwaDRD?= =?utf-8?B?WlhMTnVkVVZEbDhjN0hRbldDVUQ0NmN5dFVuajdETkE3K2o5MjdBdzBnbFc2?= =?utf-8?B?RDEyMXpzYU84b0dWbDBYbzNENnRqWFdYZnVtZWhQc3VPNWNGcUdtbHBreE96?= =?utf-8?B?TFpDU3NrZWpDR3oyWGk4NUIvSFg5QkpLdE8xbUFtNGd4QkFDQmdkN0ljTitK?= =?utf-8?B?cGwxcXMrdi8rd3dzYXZNK3ZPdGNiT3Z4Y1UveVlrbWMxUHloY0RVeU5GSmI0?= =?utf-8?B?Q1gzMUU1bWE0MFFUMjF6ZE9adC91UTJqRW1EZVJPM0lsZnU4YmQxUFpudkN5?= =?utf-8?B?dTZETzFhRjRlZnRCNDRLNTJSc3AxM0Z0K1QwQklybkxFUzM3YkN4MW14ZzNp?= =?utf-8?B?eTlzeEdrSy9KaWpMQlJTRVNidTBNRGhsc2dhVS9NUVA2THpvdE9aTjRVYy9w?= =?utf-8?B?dHAxZU5lZ0hra3djNFBWRzlkUWx3STNiZElNdXpEQ0hkVVFIT0NEeEJqczBq?= =?utf-8?B?ZFUwc1RXTW8xelNmbU9EV1pwdVZSUGpDaU04WCsrWWUvQVF1Nitic1lZVnVx?= =?utf-8?B?UXpsOFhSeDFPSTVLMVM1WStNQk9CSnRoNkFjZi95cnpHdkhFbVkyMFZOakF3?= =?utf-8?B?aHpRa3lzY0ZZOGVVYlR2RGdVakI3cEhRMzJLN3RFenRyQ0wwQUZRZW0xd2lE?= =?utf-8?B?aGZyaENwaGFsUmpLMjlQbDd1NXdnMUcxWkhYVHpvaE5sRzdiMTlUVVpGVEVn?= =?utf-8?B?MkdpVW9DRG01aFR6ZXRrdHAzMXVhYTlRcEQ2cFFlQ1dzVGI0YlVvMHpSL09k?= =?utf-8?B?RmtveUNBU3hhb2hBV0hkOGpjUnlPZGl0MlJNZnV1YXhWRmF6dVYwQ0xRS0I2?= =?utf-8?Q?zlzMIVcnV9/KhLeAj9IWuPyMU?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5477.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a0884db-ea2c-44e5-26a0-08dab7c88903 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Oct 2022 03:08:34.5748 (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: YP6PfIeYngxyZp02GoYbx7m7stdpJoa3Vc39Le/FNDOch6jXhrYp6LhCPAKHqEa5e6nfgfEtx6ToS17lKhSy/g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5625 Return-Path: dun.tan@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUmF5LCBNaWtlLA0KDQpUaGUgMm5kIG9wdGlvbiB3b3JrcyBpbiBxc3AgYm9vdC4NCg0KVGhh bmtzLA0KRHVuDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTmksIFJheSA8cmF5 Lm5pQGludGVsLmNvbT4gDQpTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNywgMjAyMiAxMTowMyBB TQ0KVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsg S2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgVGFuLCBEdW4g PGR1bi50YW5AaW50ZWwuY29tPg0KQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+ OyBLdW1hciwgUmFodWwgUiA8cmFodWwuci5rdW1hckBpbnRlbC5jb20+DQpTdWJqZWN0OiBSRTog W2VkazItZGV2ZWxdIFtQQVRDSF0gVWVmaUNwdVBrZzogUmVzdG9yZSBIcGV0VGltZXIgYWZ0ZXIg Q3B1RXhjZXB0aW9uSGFuZGxlckxpYiB0ZXN0DQoNClRpbWVyRHJpdmVyU2V0VGltZXJQZXJpb2Qo KSB7DQogIFRwbCA9IGdCUy0+UmFpc2VUUEwgKFRQTF9ISUdIX0xFVkVMKTsNCiAgSHBldEVuYWJs ZSAoRkFMU0UpOw0KDQoNCk1pa2UsDQpJbiBhYm92ZSBjb2RlLCBpdCdzIHBvc3NpYmxlIHRoYXQg dGltZXIgaW50ZXJydXB0IGhhcHBlbnMgYWZ0ZXIgVFBMIGlzIEhJR0ggYnV0IGJlZm9yZSBIUEVU IGhhcmR3YXJlIGlzIHN0b3BwZWQuDQpXaGVuIHRoYXQgaGFwcGVucywgRU9JIHNlbmRpbmcgbG9n aWMgaW4gdGhlIHRpbWVyIGludGVycnVwdCBoYW5kbGVyIGZ1bmN0aW9uIGRvZXNuJ3QgcnVuLg0K DQpTbywgdGhlcmUgbWlnaHQgYmUgdHdvIG9wdGlvbnMgdG8gZml4IHRoZSBpc3N1ZToNCjEuIFNl bmQgRU9JIGFnYWluDQogIFRwbCA9IGdCUy0+UmFpc2VUUEwgKFRQTF9ISUdIX0xFVkVMKTsgLy8g Q0xJDQogIEhwZXRFbmFibGUgKEZBTFNFKTsgLy8gdGltZXIgaW50ZXJydXB0IG1pZ2h0IGhhcHBl biBiZWZvcmUgSFBFVCBpcyByZWFsbHkgZGlzYWJsZWQuDQogIFNlbmRBcGljRW9pICgpOw0KDQoy LiBEaXNhYmxlIEhQRVQgd2l0aCBpbnRlcnJ1cHQgZW5hYmxlZC4NCiAgSHBldEVuYWJsZSAoRkFM U0UpOw0KICBUcGwgPSBnQlMtPlJhaXNlVFBMIChUUExfSElHSF9MRVZFTCk7IC8vIENMSQ0KDQpE dW4gaXMgdGVzdGluZyB0aGUgMm5kIG9wdGlvbi4NCg0KVGhhbmtzLA0KUmF5DQoNCj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVs QGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTmksIFJheQ0KPiBTZW50OiBUaHVyc2RheSwg T2N0b2JlciAyNywgMjAyMiAxMDozMyBBTQ0KPiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgDQo+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBUYW4sIER1 biA8ZHVuLnRhbkBpbnRlbC5jb20+DQo+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwu Y29tPjsgS3VtYXIsIFJhaHVsIFIgDQo+IDxyYWh1bC5yLmt1bWFyQGludGVsLmNvbT4NCj4gU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIFVlZmlDcHVQa2c6IFJlc3RvcmUgSHBldFRp bWVyIGFmdGVyIA0KPiBDcHVFeGNlcHRpb25IYW5kbGVyTGliIHRlc3QNCj4gDQo+IE1pa2UsDQo+ IEkgYWdyZWUgdGhlcmUgbWlnaHQgYmUgYSBidWcgaW4gSFBFVCB0aW1lciBkcml2ZXIgd2hlcmUg dGhlIEVPSSBzaG91bGQgDQo+IGJlIGlzc3VlZCB3aXRoaW4gdGhhdCBkcml2ZXIuDQo+IE9yaWdp bmFsIGlkZWEgd2FzIHRvIGF2b2lkIGNoYW5naW5nIGEgZHJpdmVyIHVzZWQgaGVhdmlseSBpbiAN Cj4gcHJvZHVjdGlvbiBmaXJtd2FyZSBkdWUgdG8gYSBuZXcgdW5pdCB0ZXN0IGZhaWx1cmUgYW5k IHRoYXQgdGVzdCANCj4gc2NlbmFyaW8gaXMgbm90IGNvbW1vbiBpbiBwcm9kdWN0aW9uIGZpcm13 YXJlLg0KPiANCj4gV2Ugd291bGQgbGlrZSB0byBkbyBtb3JlIGFuYWx5c2lzIG9uIHRoZSBpbXBh Y3QgaWYgc2VuZGluZyBFT0kgd2hlbiANCj4gZGlzYWJsaW5nIHRpbWVyIGFuZCB0aGVuIG1vdmUg dGhlIEVPSSBzZW5kaW5nIGZyb20gdGhlIHRlc3QgY29kZSB0byANCj4gSFBFVCB0aW1lci4NCj4g DQo+IFRoYW5rcywNCj4gUmF5DQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K PiA+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI3LCAyMDIyIDEwOjI2IEFNDQo+ID4gVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgVGFuLCBEdW4g DQo+ID4gPGR1bi50YW5AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPg0KPiA+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29t PjsgS3VtYXIsIFJhaHVsIFIgDQo+ID4gPHJhaHVsLnIua3VtYXJAaW50ZWwuY29tPg0KPiA+IFN1 YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBVZWZpQ3B1UGtnOiBSZXN0b3JlIEhwZXRU aW1lciANCj4gPiBhZnRlciBDcHVFeGNlcHRpb25IYW5kbGVyTGliIHRlc3QNCj4gPg0KPiA+IEhp IFJheSwNCj4gPg0KPiA+IEkgZG8gbm90IHRoaW5rIGl0IG1ha2VzIHNlbnNlIGZvciB0aGUgQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYiB1bml0IA0KPiA+IHRlc3QgdG8gZGlyZWN0bHkgYWNjZXNzIHRo ZSBJTyBBUElDLiAgSXQgYXNzdW1lcyB0aGF0IGFuIElPIEFQSUMgDQo+ID4gYmFzZWQgdGltZXIg aW50ZXJydXB0IGlzIGluIHVzZS4NCj4gPg0KPiA+IElzIGl0IHBvc3NpYmxlIHRoYXQgdGhpcyBp cyBhIGJ1Zy9yYWNlIGNvbmRpdGlvbiBpbiB0aGUgSHBldER4ZSBkcml2ZXIuDQo+ID4NCj4gPiBD YWxsaW5nIHRoZSBUaW1lciBBUCB0byBzZXQgdGltZXIgcGVyaW9kIGZyb20gMCAtPiBOb24gWmVy byBlbmFibGVzIA0KPiA+IHRoZSB0aW1lci4gIFRoZXJlIGNvdWxkIGJlIGEgcGVuZGluZyB0aW1l ciBpbnRlcnJ1cHQgYmVmb3JlIHRoaXMgDQo+ID4gdHJhbnNpdGlvbiB0aGF0IHdvdWxkIG5lZWQg dG8gYmUgY2xlYXJlZC4NCj4gPg0KPiA+IENhbGxpbmcgdGhlIFRpbWVyIEFQIHRvIHNldCB0aGUg dGltZXIgcGVyaW9kIGZyb20gTm9uIFplcm8gLT4gMCANCj4gPiBkaXNhYmxlcyB0aGUgZ2VuZXJh dGlvbiBvZiB0aW1lciBpbnRlcnJ1cHRzLiAgV2UgbmVlZCB0byBtYWtlIHN1cmUgDQo+ID4gdGhp cyBkaXNhYmxlIGFjdGlvbiBkb2VzIG5vdCBnZW5lcmF0ZSBldmVuIG9uZSBtb3JlIHBlbmRpbmcg dGltZXIgDQo+ID4gaW50ZXJydXB0IGFmdGVyIHRoZSB0aW1lciBpcyBkaXNhYmxlZC4gIEFuZCB3 ZSBuZWVkIHRvIG1ha2Ugc3VyZSBhIA0KPiA+IHRpbWVyIGludGVycnVwdCBkb2VzIG5vdCBlbnRl ciB0aGUgcGVuZGluZyBzdGF0ZSBpbiB0aGUgbG9naWMgdGhhdCANCj4gPiBpcyBkaXNhYmxpbmcg dGhlIHRpbWVyLg0KPiA+IFdlIG1heSBuZWVkIHRvIGFsd2F5cyBkbyBhbiBleHRyYSBjbGVhciBh ZnRlciB0aGUgdGltZXIgaW50ZXJydXB0IGlzIA0KPiA+IGRpc2FibGVkIGluIGNhc2UgYSB0aW1l ciBpbnRlcnJ1cHQgaXMgYXNzZXJ0ZWQgZHVyaW5nIHRoZSBkaXNhYmxlIA0KPiA+IGxvZ2ljLg0K PiA+DQo+ID4gSSBzdXNwZWN0IHRoaXMgdW5pdCB0ZXN0IHVzZSBjYXNlIGlzIG5vdCBjb21tb25s eSBleGVyY2lzZWQuDQo+ID4gTm9ybWFsIGJvb3RzIHdpbGwgZ28gZnJvbSAwIC0+IE5vbiBaZXJv IHBlcmlvZCBhbmQgbWF5IHRoZW4gDQo+ID4gb3B0aW9uYWxseSBjaGFuZ2UgdGhlIHRpbWVyIHBl cmlvZC4gIEJ1dCBnb2luZyBmcm9tIE5vbiBaZXJvIC0+IDAgDQo+ID4gdGltZXIgcGVyaW9kIGlz IG5vdCBsaWtlbHkgdXNlZC4NCj4gPg0KPiA+IFNlZW1zIGxpa2UgYSBnb29kIHJlYXNvbiB0byBh ZGQgc29tZSBUaW1lciBBUCB1bml0IHRlc3RzIHRvby4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPg0K PiA+IE1pa2UNCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZy b206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxm IE9mIE5pLA0KPiA+IFJheQ0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDI2LCAyMDIy IDc6MDggUE0NCj4gPiA+IFRvOiBUYW4sIER1biA8ZHVuLnRhbkBpbnRlbC5jb20+OyBkZXZlbEBl ZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+ OyBLdW1hciwgUmFodWwgUg0KPiA+IDxyYWh1bC5yLmt1bWFyQGludGVsLmNvbT4NCj4gPiA+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBVZWZpQ3B1UGtnOiBSZXN0b3JlIEhwZXRU aW1lciANCj4gPiA+IGFmdGVyDQo+ID4gQ3B1RXhjZXB0aW9uSGFuZGxlckxpYiB0ZXN0DQo+ID4g Pg0KPiA+ID4gUmV2aWV3ZWQtYnk6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+DQo+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IFRhbiwgRHVu IDxkdW4udGFuQGludGVsLmNvbT4NCj4gPiA+ID4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjAs IDIwMjIgMTE6MDEgQU0NCj4gPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmksIFJheSANCj4gPiA+ID4g PHJheS5uaUBpbnRlbC5jb20+Ow0KPiBLdW1hciwNCj4gPiA+ID4gUmFodWwgUiA8cmFodWwuci5r dW1hckBpbnRlbC5jb20+DQo+ID4gPiA+IFN1YmplY3Q6IFtQQVRDSF0gVWVmaUNwdVBrZzogUmVz dG9yZSBIcGV0VGltZXIgYWZ0ZXIgDQo+ID4gPiA+IENwdUV4Y2VwdGlvbkhhbmRsZXJMaWIgdGVz dA0KPiA+ID4gPg0KPiA+ID4gPiBEaXNhYmxlL1Jlc3RvcmUgSHBldFRpbWVyIGJlZm9yZSBhbmQg YWZ0ZXIgcnVubmluZyB0aGUgRHhlIA0KPiA+ID4gPiBDcHVFeGNlcHRpb25IYW5kbGVyTGliIHVu aXQgdGVzdCBtb2R1bGUuIER1cmluZyB0aGUgVW5pdFRlc3QsIGEgDQo+ID4gPiA+IG5ldyBJZHQg aXMgaW5pdGlhbGl6ZWQgZm9yIHRoZSB0ZXN0LiBUaGVyZSBpcyBubyBoYW5kbGVyIGZvciANCj4g PiA+ID4gdGltZXIgaW50cnJ1cHQgaW4gdGhpcyBuZXcgaWR0LiBBZnRlciB0aGUgdGVzdCBtb2R1 bGUsIEhwZXRUaW1lciANCj4gPiA+ID4gZG9lcyBub3Qgd29yayBhbnkgbW9yZSBzaW5jZSB0aGUg Y29tcGFyYXRvciB2YWx1ZSByZWdpc3RlciBhbmQgDQo+ID4gPiA+IG1haW4gY291bnRlciB2YWx1 ZSByZWdpc3RlciBmb3IgdGltZXIgZG9lcyBub3QgbWF0Y2guIFRvIGZpeCANCj4gPiA+ID4gdGhp cyBpc3N1ZSwgZGlzYWJsZS9yZXN0b3JlIEhwZXRUaW1lciBiZWZvcmUgYW5kIGFmdGVyIFVuaXQg VGVzdCANCj4gPiA+ID4gaWYgSHBldFRpbWVyIGRyaXZlciBoYXMgYmVlbiBkaXNwYXRjaGVkLiBC ZXNpZGVzLCBzZW5kIEFwaWMgRU9JIA0KPiA+ID4gPiBiZWZvcmUgcmVzdG9yZSBIcGV0VGltZXIu DQo+ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IER1biBUYW4gPGR1bi50YW5AaW50ZWwu Y29tPg0KPiA+ID4gPiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+ID4g PiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogUmFodWwgS3VtYXIg PHJhaHVsMS5rdW1hckBpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPg0KPiA+ID4gPg0K PiA+DQo+IFVlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1VuaXRUZXN0 L0R4ZUNwdUV4Y2VwdGlvbkhhbg0KPiA+ID4gPiBkbGVyTGliVW5pdFRlc3QuaW5mIHwgIDIgKysN Cj4gPiA+ID4NCj4gPiA+ID4NCj4gPg0KPiBVZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9Vbml0VGVzdC9EeGVDcHVFeGNlcHRpb25IYW4NCj4gPiA+ID4gZGxlclVuaXRU ZXN0LmMgICAgICB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiA+ID4g PiAgMiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4g PiA+DQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4gPg0KPiBhL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1VuaXRUZXN0L0R4ZUNwdUV4Y2VwdGlvbkgNCj4g PiA+ID4gYW5kbGVyTGliVW5pdFRlc3QuaW5mDQo+ID4gPiA+DQo+ID4NCj4gYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Vbml0VGVzdC9EeGVDcHVFeGNlcHRpb25I DQo+ID4gPiA+IGFuZGxlckxpYlVuaXRUZXN0LmluZg0KPiA+ID4gPiBpbmRleCBlM2RiZTdiOWFi Li4yNGY5MDU5MzZjIDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gPg0KPiBhL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1VuaXRUZXN0L0R4ZUNwdUV4Y2Vw dGlvbkgNCj4gPiA+ID4gYW5kbGVyTGliVW5pdFRlc3QuaW5mDQo+ID4gPiA+ICsrKw0KPiA+ID4g Pg0KPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvVW5p dFRlc3QvRHhlQ3B1RXhjZXB0aW9uSA0KPiA+ID4gPiBhbmRsZXJMaWJVbml0VGVzdC5pbmYNCj4g PiA+ID4gQEAgLTQzLDYgKzQzLDcgQEANCj4gPiA+ID4gICAgSG9iTGliDQo+ID4gPiA+ICAgIFVl ZmlCb290U2VydmljZXNUYWJsZUxpYg0KPiA+ID4gPiAgICBDcHVQYWdlVGFibGVMaWINCj4gPiA+ ID4gKyAgTG9jYWxBcGljTGliDQo+ID4gPiA+DQo+ID4gPiA+ICBbR3VpZHNdDQo+ID4gPiA+ICAg IGdFZmlIb2JNZW1vcnlBbGxvY1N0YWNrR3VpZA0KPiA+ID4gPiBAQCAtNTMsNiArNTQsNyBAQA0K PiA+ID4gPg0KPiA+ID4gPiAgW1Byb3RvY29sc10NCj4gPiA+ID4gICAgZ0VmaU1wU2VydmljZVBy b3RvY29sR3VpZA0KPiA+ID4gPiArICBnRWZpVGltZXJBcmNoUHJvdG9jb2xHdWlkDQo+ID4gPiA+ DQo+ID4gPiA+ICBbRGVwZXhdDQo+ID4gPiA+ICAgIGdFZmlNcFNlcnZpY2VQcm90b2NvbEd1aWQN Cj4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPg0KPiA+DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5 L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvVW5pdFRlc3QvRHhlQ3B1RXhjZXB0aW9uSA0KPiA+ID4g PiBhbmRsZXJVbml0VGVzdC5jDQo+ID4gPiA+DQo+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Vbml0VGVzdC9EeGVDcHVFeGNlcHRpb25IDQo+ID4gPiA+ IGFuZGxlclVuaXRUZXN0LmMNCj4gPiA+ID4gaW5kZXggOTE3ZmM1NDliZi4uMDQ1ZjM5ZmEwMCAx MDA2NDQNCj4gPiA+ID4gLS0tDQo+ID4gPiA+DQo+ID4NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Vbml0VGVzdC9EeGVDcHVFeGNlcHRpb25IDQo+ID4gPiA+ IGFuZGxlclVuaXRUZXN0LmMNCj4gPiA+ID4gKysrDQo+ID4gPiA+DQo+ID4NCj4gYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Vbml0VGVzdC9EeGVDcHVFeGNlcHRp b25IDQo+ID4gPiA+IGFuZGxlclVuaXRUZXN0LmMNCj4gPiA+ID4gQEAgLTgsNiArOCw4IEBADQo+ ID4gPiA+DQo+ID4gPiA+ICAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uSGFuZGxlclRlc3QuaCINCj4g PiA+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290U2VydmljZXNUYWJsZUxpYi5oPg0KPiA+ ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvTG9jYWxBcGljTGliLmg+ICNpbmNsdWRlIDxQcm90b2Nv bC9UaW1lci5oPg0KPiA+ID4gPg0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+ICAgIEluaXRpYWxpemUg QnNwIElkdCB3aXRoIGEgbmV3IElkdCB0YWJsZSBhbmQgcmV0dXJuIHRoZSANCj4gPiA+ID4gSUEz Ml9ERVNDUklQVE9SIGJ1ZmZlci4NCj4gPiA+ID4gQEAgLTE2Miw4ICsxNjQsMTIgQEAgQ3B1RXhj ZXB0aW9uSGFuZGxlclRlc3RFbnRyeSAoICB7DQo+ID4gPiA+ICAgIEVGSV9TVEFUVVMgICAgICAg ICAgICAgICAgICBTdGF0dXM7DQo+ID4gPiA+ICAgIFVOSVRfVEVTVF9GUkFNRVdPUktfSEFORExF ICBGcmFtZXdvcms7DQo+ID4gPiA+ICsgIEVGSV9USU1FUl9BUkNIX1BST1RPQ09MICAgICAqVGlt ZXJBcmNoUHJvdG9jb2w7DQo+ID4gPiA+ICsgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICBU aW1lclBlcmlvZDsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgRnJhbWV3b3JrID0gTlVMTDsNCj4gPiA+ ID4gKyAgRnJhbWV3b3JrICAgICAgICAgPSBOVUxMOw0KPiA+ID4gPiArICBUaW1lckFyY2hQcm90 b2NvbCA9IE5VTEw7DQo+ID4gPiA+ICsgIFRpbWVyUGVyaW9kICAgICAgID0gMDsNCj4gPiA+ID4N Cj4gPiA+ID4gICAgREVCVUcgKChERUJVR19JTkZPLCAiJWEgdiVhXG4iLCBVTklUX1RFU1RfQVBQ X05BTUUsIA0KPiA+ID4gPiBVTklUX1RFU1RfQVBQX1ZFUlNJT04pKTsNCj4gPiA+ID4NCj4gPiA+ ID4gQEAgLTE4MiwxMSArMTg4LDM2IEBAIENwdUV4Y2VwdGlvbkhhbmRsZXJUZXN0RW50cnkgKA0K PiA+ID4gPiAgICAgIGdvdG8gRVhJVDsNCj4gPiA+ID4gICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAr ICAvLw0KPiA+ID4gPiArICAvLyBJZiBIcGV0VGltZXIgZHJpdmVyIGhhcyBiZWVuIGRpc3BhdGNo ZWQsIGRpc2FibGUgSHBldFRpbWVyIA0KPiA+ID4gPiArIGJlZm9yZQ0KPiA+IFVuaXQNCj4gPiA+ ID4gVGVzdC4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgZ0JTLT5Mb2NhdGVQcm90b2NvbCAo JmdFZmlUaW1lckFyY2hQcm90b2NvbEd1aWQsIE5VTEwsIChWT0lEDQo+ID4gPiA+ICoqKSZUaW1l ckFyY2hQcm90b2NvbCk7DQo+ID4gPiA+ICsgIGlmIChUaW1lckFyY2hQcm90b2NvbCAhPSBOVUxM KSB7DQo+ID4gPiA+ICsgICAgU3RhdHVzID0gVGltZXJBcmNoUHJvdG9jb2wtPkdldFRpbWVyUGVy aW9kIA0KPiA+ID4gPiArIChUaW1lckFyY2hQcm90b2NvbCwNCj4gPiA+ID4gJlRpbWVyUGVyaW9k KTsNCj4gPiA+ID4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+ID4gPiArICAg IGlmIChUaW1lclBlcmlvZCA+IDApIHsNCj4gPiA+ID4gKyAgICAgIERFQlVHICgoREVCVUdfSU5G TywgIkhwZXRUaW1lciBoYXMgYmVlbiBkaXNwYXRjaGVkLiANCj4gPiA+ID4gKyBEaXNhYmxlDQo+ ID4gPiA+IEhwZXRUaW1lci5cbiIpKTsNCj4gPiA+ID4gKyAgICAgIFN0YXR1cyA9IFRpbWVyQXJj aFByb3RvY29sLT5TZXRUaW1lclBlcmlvZCANCj4gPiA+ID4gKyAoVGltZXJBcmNoUHJvdG9jb2ws DQo+IDApOw0KPiA+ID4gPiArICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiA+ ID4gKyAgICB9DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiAgICAvLw0KPiA+ID4g PiAgICAvLyBFeGVjdXRlIHRoZSB0ZXN0cy4NCj4gPiA+ID4gICAgLy8NCj4gPiA+ID4gICAgU3Rh dHVzID0gUnVuQWxsVGVzdFN1aXRlcyAoRnJhbWV3b3JrKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAg Ly8NCj4gPiA+ID4gKyAgLy8gUmVzdG9yZSBIcGV0VGltZXIgYWZ0ZXIgVW5pdCBUZXN0Lg0KPiA+ ID4gPiArICAvLyBTZW5kIEFQSUMgRU9JIGJlZm9yZSBTZXRUaW1lclBlcmlvZC4NCj4gPiA+ID4g KyAgLy8NCj4gPiA+ID4gKyAgaWYgKChUaW1lckFyY2hQcm90b2NvbCAhPSBOVUxMKSAmJiAoVGlt ZXJQZXJpb2QgPiAwKSkgew0KPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIlJlc3Rv cmUgSHBldFRpbWVyIGFmdGVyDQo+ID4gPiA+IER4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIgVW5p dFRlc3QuXG4iKSk7DQo+ID4gPiA+ICsgICAgU2VuZEFwaWNFb2kgKCk7DQo+ID4gPiA+ICsgICAg U3RhdHVzID0gVGltZXJBcmNoUHJvdG9jb2wtPlNldFRpbWVyUGVyaW9kIA0KPiA+ID4gPiArIChU aW1lckFyY2hQcm90b2NvbCwNCj4gPiA+ID4gVGltZXJQZXJpb2QpOw0KPiA+ID4gPiArICAgIEFT U0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4g PiAgRVhJVDoNCj4gPiA+ID4gICAgaWYgKEZyYW1ld29yaykgew0KPiA+ID4gPiAgICAgIEZyZWVV bml0VGVzdEZyYW1ld29yayAoRnJhbWV3b3JrKTsNCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi4zMS4x LndpbmRvd3MuMQ0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+IA0KPiANCj4g DQo+IA0KPiANCg0K