From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 81C957803CC for ; Fri, 8 Sep 2023 02:20:34 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=Yo/U9E8rTZ37hVrlJ4fyAq34Y7U1TBMOJeY5BjYYoj4=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1694139632; v=1; b=lTJNpVn6bAOn2yqsbZ5smR81CAB1A1sak1TIQzw+6MxSNqI5S1M4ceb5scB/vDN2Q1QieMhm Wk94Cj/kCNxBiJ+ZBSCPtOgI60lBCGTHp7ypoArgHas4syJwMWmbZFNXIioY202knlXwgvGB3XG VjB4USli6oD7vn9xRGNZukLw= X-Received: by 127.0.0.2 with SMTP id R8MdYY7687511xX6ahNLXRDg; Thu, 07 Sep 2023 19:20:32 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.31333.1694139631766025479 for ; Thu, 07 Sep 2023 19:20:32 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10826"; a="381341948" X-IronPort-AV: E=Sophos;i="6.02,236,1688454000"; d="scan'208";a="381341948" X-Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2023 19:20:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10826"; a="692022973" X-IronPort-AV: E=Sophos;i="6.02,236,1688454000"; d="scan'208";a="692022973" X-Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 07 Sep 2023 19:20:30 -0700 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Thu, 7 Sep 2023 19:20:30 -0700 X-Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Thu, 7 Sep 2023 19:20:30 -0700 X-Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.41) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Thu, 7 Sep 2023 19:20:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UOCaRvi+p69q7/uMg3FU/fVTdoHuC3qn7WOtDpcm/jq8uL75UmfTW+yE/OG+mhtu29XHHK1a+XjMUn7HP04jGPL5G3rZWGLnT6w6UxpmJfTxCaS5YSaVL+2nmtQgGl56t1wIYTxgfcnGffL2kKl2RW1j5gmaAKZPCd1+cuHOgxwRhkzIgKuM8N94qNdD4pxQMXwvwwdemMIMrM1o7FxaPkDN+NJsf/H1Akba5SPxsIJLLh8vXc00UF1B7v/gAhVRPCeaXPqZHi62r+4zVqNm2Ba59sNVK515DGB5OLtoMES2ZbxgectUmVK6W3Fr2PpcJA5BWuInSIEY/mPvLHN2jQ== 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=AwLqjjGCiDUHUOr1OqzADqdoz4e3EPCBwS9of7vo6qQ=; b=oHJiSMpPtofy5raQWKWBUwxgwe+9BWTcVyJqZxR4oHb3JEVS7ecBeiyDvnLLcHjNVrT2nBw1eqXMidZO5k2xgRb3WteGaqSeumqWpFPhprE4eEG8q67Yl8NCiN+gmfteh8Tg/20mBPGpTvVT8k58neHbH0m9U1xR/MJSNAiq4X/ZJ9X+kHWrTjbmFA28FK0lGaTbwxTxeQfD0NI2+Qs9uPgJPGJ//mXkoW8mckUsCH6DQehByGBKIxUnDwgsfiBV7wh9IVIQwKU9C/JTXDQyW2EDRuCt5xNcTXKyuRlrIyWA1YVHkCffRbCP2kKo6wK8X2LGK0XBUROVvzQCvSKmtA== 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 X-Received: from DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by IA0PR11MB8301.namprd11.prod.outlook.com (2603:10b6:208:48d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.36; Fri, 8 Sep 2023 02:20:26 +0000 X-Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::38c3:ed7c:3562:2e18]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::38c3:ed7c:3562:2e18%4]) with mapi id 15.20.6745.035; Fri, 8 Sep 2023 02:20:26 +0000 From: "Wu, Hao A" To: "Henz, Patrick" , "devel@edk2.groups.io" , Mike Maslenkin Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Topic: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Index: AQHZzseBJIO8HXAamkWgXd40zbxjr7AOZHvggABS3cCAAGb9AIAAAivQgAC0+7CAAIDx8A== Date: Fri, 8 Sep 2023 02:20:25 +0000 Message-ID: References: <177B4AD1F8C3A6A2.8497@groups.io> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB4025:EE_|IA0PR11MB8301:EE_ x-ms-office365-filtering-correlation-id: 53f8c85b-e686-4de3-7247-08dbb01229dc x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: f+d7X0cy7fJtDJMbP/umGhPZRJ5s+qiepwpkREptdXkKCPN2wEqxqZgLFH3DnZHY8AlxKOoj/7oNZt6fwc0gpHP+DmKseUKzoDxxUApf7BwTsqZzmTxT9f0tLcaCpUUx7bs2PEjoAM264SSBcDaVCOVgW2kWcW1iyKMr6o42UfFSL3H4vqCCC8ujvPvEUVR4uVbAH/GHteueH9f+00z6zR1vR18aMThn42vg8JJnl9sPBDySnfbGt5hyWe6RWIwU2qxaje2AGS9xxmb6afmPzZ5reTyiA/6V/otmhv+uTAEUvuJ0cHyUcPohoHdwNCAaGC6pNs1PaKH+z0Lt8xzx53KXW4H+qd1mIAzgpqUyybTv3DDqQl/Ii5wPfmNKEs5b/wPnavtNyWXxBvzd21SyStryJuCV92WzjG7Q6MKr0wBJfnaYRssJo8fmtDCWJWgOkoUQhuXDIRYWEGZ7yVQtoDRvs1eGp9MRToIzxnaEzCqptl68tBQbnRJs03JXaIrny2Y+KvmZSL+MhLvz3tIiaweIbohJsjKldqkcyaLtApeNaWVxGuJPRcZ8xH+siw/246CmE0nWqro7fOjZApeivGS+KVpxUgSfaQOu+9J5jnzF2pgupKUDyuPRAGE+pbRA8dCY+sJkTqMuM7XiY07Uww== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YnN6Zmo1TkFqd0ZDVUE4UWMraW13K2FUMU5UQjZxNXNKZXVqbkJPQkMzYzJi?= =?utf-8?B?a2R2cjhpdXJjYmYxQy9WaHoxbGZSbnFRZVhhYkNiSWFJckFzUEZkdXVHQkxS?= =?utf-8?B?Z2w5Zi9RRmRzTzhIYnIzYzFiN1BxTHFvTU1sZjU5VTF1WFZzRlI5bFNHS0Nh?= =?utf-8?B?bmU4blRnMFRHR3JBQ29xSnQzYXpwcjgxRkMwcE9lcHBKb0QwTTBHUWp5VWdC?= =?utf-8?B?RUZad0FlOFhXcFQ4S0h0TTZVK3RSdURoNi9Va2NTOWJpWkJZYk1zV3IzMUdq?= =?utf-8?B?RjE4U3kza0svTEVhenhQTytHYU1pZ0pOQTYvb2tMNDh2ZHN0RTBydEhMOHBK?= =?utf-8?B?TVh1dVQxSm5pdUwraFcycnd3TWlTSXZZUHlNY01RR0xFUVMyQWoxQStBdm5Q?= =?utf-8?B?TVZXOGlWY2hKbUV6WGZCYWw1Y1dzUFcwU3U0VWRqbVVkUUVKSEV5YTI0YkNp?= =?utf-8?B?S29ERTdPbDVVRXhjTUttZjZlK3UvUUlENTVuRGxndFEvTGJBNUJiVS9mQnZZ?= =?utf-8?B?SnpHWXU2OUo2clBRZm10OHVIcEVxaitSZ3E4aFkrZE5wMzVhVm9PenE1aHg2?= =?utf-8?B?dVF5TDRtdkdIT3BJYXRhV2JrZTdvbElNWDJJWTIyV3NjSU1sRGFVd1hmOG5y?= =?utf-8?B?UHJISTdwczJMNytzY3FoRk8yWlVzMjFYcldvdmRjcTQxazRiUmZIYlNQWmtu?= =?utf-8?B?bkswYmEyQ0dxbklDY280RHJ1Q0lZZjgrZGRUVzJKeU9nVVRxRFpaUEx5UkhP?= =?utf-8?B?L2gwZTJ5bDhQcFh1dDErOXVaSEs1UE9WbUVTRXpOcW55OFIxckp1WjYxSFpZ?= =?utf-8?B?bTVIQVcybGgyUEh5emM5NXVKdTIvUjhyOHVYZndteUxDRXV6NDdUR0lBNm5H?= =?utf-8?B?bERpbCszc2NPaldnc0MxUmVGOTZ4cXY5TFYvT3JZQ3dseW1uU25yM0taVSt0?= =?utf-8?B?K2R6VTdQMkVmV3BnL0JyV0dBVlRTb1BoNWVodUNKUnQxK3M4bW13Rm91cHd0?= =?utf-8?B?RFd1a0QzdG54djBOQUlnd3RRbW9RTTJ0QTNnWWpJVlg0dHZINE9MeDArN3Zn?= =?utf-8?B?RHZPVndOei9nbEtGdTd0MHoybUdYTVNDMzlNNDh6VjlQQ01zTkdpUmlOeG9o?= =?utf-8?B?ZlRpdkRkdHlWOWVBR2ZYbDZKQ2RsQXBKNHlvYnhHR3V5cUl5WHBnejM3Rmoz?= =?utf-8?B?Z3NYc1VIV0dNUER6RWVxQmIvTk9Dc2VoWnFpSFNiMUdwdzBmV1U2RjhrOGk5?= =?utf-8?B?NGJQNUdwNlljMEF0NTBQa05GTmN4aGFFc2hRZVNIaTBvODRUTEZjMThURUs5?= =?utf-8?B?OXc5aElxSXNWRzZLdE9Bcmo0eFRuajlsUW9jZHZGcytJM1JDOWhXcXBJckg2?= =?utf-8?B?QjlPNjNoQ3NuNUh3Vks3SzhYY1M3Y3M2RkNISG9BdkpucitDMWtXeXhSdVRQ?= =?utf-8?B?OUl6SUVFelErYzRMT01XUEhYUHV3N25tK0JkTWF0Y3hwVmVsT1RobDZtTWxj?= =?utf-8?B?Mm45NENDZzZheTB5bVFqQm9FSTk3dkN3N1lxZXZxNFVQcTFSUDZ4VmFSYmxn?= =?utf-8?B?UUZRazBVQWdNT2o3a2VpWmV0Rnd3Sjg5aTViMzlrbEh5ZGttVDB5VzVYUUFS?= =?utf-8?B?bGNjWDJBUVRmTENEUk1NcVpBMUcrQWlrb3I5ZnE3SGhURFpwUUhPNVZIZ3Q3?= =?utf-8?B?MjRCTHZ2TmZjTFRua2ZlUjNXRUhKd3AzUG9xSmZsK0w2SnlLczJZZ3doTGZW?= =?utf-8?B?dHBlOUpFNHZpUWJoK1BENU1CUmJGZWVCWnhzeE1aM3k1cjBqREJJaWFVbmgw?= =?utf-8?B?bTIzdkRvSHhYRldNd2pKMm92Zit3bXM4QXowcnRsY3FGUndXcHNPekNnemxo?= =?utf-8?B?QUk0RnY1UkUvSGZUTTZPblFQOWRrSXhFckdVL3BOSWc5aC9DakNUSVFKbUVW?= =?utf-8?B?SEdrZ2s3RzZSRGZhYW0rT3l5YTlUdDhXaVM5QkFtQmU2VDVjc0hhTmROWG9h?= =?utf-8?B?eUhyZkp2b1J6dVVvTldlb1psdGdablZSbERveFZwbFNuT05sQXFqZkE5WHFE?= =?utf-8?B?aWZGLzhpTDArNy9DZ2ZMOTZlcXhQWDBLeHF6QT09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53f8c85b-e686-4de3-7247-08dbb01229dc X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2023 02:20:26.0822 (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: WmDoZ/hqNA1SzZOn1VopluuwqlflPQEy6o7BtOrKkcHRFrcuyDXUl7V5DYUPHr8FlqZeVsg0dcc8U36mMVxp7A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR11MB8301 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,hao.a.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: XmFZKxht5gt5u7RKcoH5FuZcx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=lTJNpVn6; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io VGhhbmtzLiBJIGFtIGZpbmUgd2l0aCB0aGUgcHJvcG9zYWwgYmVsb3cuDQoNCkNvdWxkIHlvdSBw bGVhc2UgaGVscCB0byBmb2xsb3cgdGhlIHN0ZXAgMTEgaW4gcGFnZTogaHR0cHM6Ly9naXRodWIu Y29tL3RpYW5vY29yZS90aWFub2NvcmUuZ2l0aHViLmlvL3dpa2kvRURLLUlJLURldmVsb3BtZW50 LVByb2Nlc3MNCmFuZCBjaGVjayB0aGUgQ0kgdGVzdCByZXN1bHRzIGZvciB0aGUgdXBjb21pbmcg cGF0Y2g/DQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IEhlbnosIFBhdHJpY2sgPHBhdHJpY2suaGVuekBocGUuY29tPg0KPiBT ZW50OiBGcmlkYXksIFNlcHRlbWJlciA4LCAyMDIzIDI6MzkgQU0NCj4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvOyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IE1pa2UNCj4gTWFzbGVu a2luIDxtaWtlLm1hc2xlbmtpbkBnbWFpbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZl bF0gW1BBVENIIHYyXSBNZGVNb2R1bGVQa2cvWGhjaUR4ZTogVXNlDQo+IFBlcmZvcm1hbmNlIFRp bWVyIGZvciBYSENJIFRpbWVvdXRzDQo+IA0KPiBJIGRvbuKAmXQgaGF2ZSBzdHJvbmcgb3Bpbmlv bnMgZWl0aGVyLiBJZiB3ZSB3b3VsZCBwcmVmZXIgdG8gY2FjaGUgdGhlIHZhbHVlcw0KPiByZXR1 cm5lZCBieSBHZXRQZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzIEkgd291bGQgYmUgbW9yZSB0 aGFuIGhhcHB5DQo+IHRvIGRvIHRoYXQuIEkgY291bGQgYWxzbyBtb2RpZnkgWGhjR2V0RWxhcHNl ZFRpbWUgdG8gcmV0dXJuIHRoZSBlbGFwc2VkIHRpY2tzDQo+IGluc3RlYWQgb2YgdGhlIGVsYXBz ZWQgdGltZSBpbiBuYW5vIHNlY29uZHMsIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIGludG8NCj4g WGhjR2V0RWxhcGVkVGltZS9UaWNrcyBjb3VsZCBjb252ZXJ0IHRoZSBtaWxsaXNlY29uZCB0aW1l b3V0IHZhbHVlIGludG8gYQ0KPiB0aWNrIGNvdW50IGFuZCBjb21wYXJlIHRoZSBlbGFwc2VkIHRp Y2tzIGFnYWluc3QgdGhhdCwgdGhpcyB3b3VsZCByZW1vdmUgdGhlDQo+IHJlbGlhbmNlIG9uIEdl dFRpbWVJbk5hbm9TZWNvbmQuIERvZXMgdGhhdCBzb3VuZCBtb3JlIGFwcHJvcHJpYXRlPw0KPiAN Cj4gVGhhbmtzLA0KPiBQYXRyaWNrIEhlbnoNCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g T24gQmVoYWxmIE9mIFd1LCBIYW8NCj4gQQ0KPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDcs IDIwMjMgMjo0OCBBTQ0KPiBUbzogTWlrZSBNYXNsZW5raW4gPG1pa2UubWFzbGVua2luQGdtYWls LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBIZW56LCBQYXRyaWNrIDxwYXRyaWNr LmhlbnpAaHBlLmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjJdIE1k ZU1vZHVsZVBrZy9YaGNpRHhlOiBVc2UNCj4gUGVyZm9ybWFuY2UgVGltZXIgZm9yIFhIQ0kgVGlt ZW91dHMNCj4gDQo+IEkgZG8gbm90IGhhdmUgc3Ryb25nIG9waW5pb24gb24gdGhpcyBjb25zaWRl cmluZyBpdCBpcyBhbiBJTyBkcml2ZXIuDQo+IFRoZSBjYWxsIG9mIEdldFRpbWVJbk5hbm9TZWNv bmQoKSBpcyBhbHNvIGxpa2VseSB0byBpbnZva2UNCj4gR2V0UGVyZm9ybWFuY2VDb3VudGVyUHJv cGVydGllcygpIGNhbGwuDQo+IA0KPiBJIHdpbGwgbGV0IHRoZSBwYXRjaCBvd25lciB0byBkZWNp ZGUgb24gdGhlIG9wZW4gcmFpc2VkIGJlbG93Lg0KPiANCj4gQmVzdCBSZWdhcmRzLA0KPiBIYW8g V3UNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBNaWtlIE1h c2xlbmtpbiA8bWlrZS5tYXNsZW5raW5AZ21haWwuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBT ZXB0ZW1iZXIgNywgMjAyMyAzOjM2IFBNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBX dSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPiBDYzogSGVueiwgUGF0cmljayA8cGF0 cmljay5oZW56QGhwZS5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0gg djJdIE1kZU1vZHVsZVBrZy9YaGNpRHhlOiBVc2UNCj4gPiBQZXJmb3JtYW5jZSBUaW1lciBmb3Ig WEhDSSBUaW1lb3V0cw0KPiA+DQo+ID4gSGVsbG8gSGFvIFd1LA0KPiA+DQo+ID4gSXNuJ3QgR2V0 UGVyZm9ybWFuY2VDb3VudGVyUHJvcGVydGllcyAoJlN0YXJ0VmFsdWUsICZFbmRWYWx1ZSkgY2Fs bA0KPiA+IHRvbyAiaGVhdnkiIGZvciBYSENJIHBhdGhzPw0KPiA+IE1heSBiZSBpdCdzIGJldHRl ciB0byBjYWNoZSB0aW1lciBkaXJlY3Rpb24gb25jZT8NCj4gPiBJJ20gYXNraW5nIGluIGEgY29u dGV4dCBvZiBQY0F0Q2hpcHNldFBrZy9MaWJyYXJ5L0FjcGlUaW1lckxpYg0KPiA+IGluc3RhbmNl IHVzZWQgYnkgYSBudW1iZXIgb2YgSW50ZWwncyBwbGF0Zm9ybSBpbiBlZGstcGxhdGZvcm1zLg0K PiA+IEZvciB0aGlzICBsaWJyYXJ5IEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgZmlu YWxseSBjYWxscw0KPiA+IEludGVybmFsQ2FsY3VsYXRlVHNjRnJlcXVlbmN5LCB0aGF0IGlzbid0 IHNpbXBsZS4NCj4gPg0KPiA+IFJlZ2FyZHMsDQo+ID4gTWlrZQ0KPiA+DQo+ID4gT24gVGh1LCBT ZXAgNywgMjAyMyBhdCA0OjI34oCvQU0gV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+IHdy b3RlOg0KPiA+ID4NCj4gPiA+IFNvcnJ5IGZvciB0aGUgbGF0ZSByZXNwb25zZS4NCj4gPiA+IFJl dmlld2VkLWJ5OiBIYW8gQSBXdSA8aGFvLmEud3VAaW50ZWwuY29tPg0KPiA+ID4NCj4gPiA+IEJl c3QgUmVnYXJkcywNCj4gPiA+IEhhbyBXdQ0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVk azIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiA+ID4gSGVueiwgUGF0cmljaw0KPiA+ID4g PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDcsIDIwMjMgNDozNyBBTQ0KPiA+ID4gPiBUbzog ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBb UEFUQ0ggdjJdIE1kZU1vZHVsZVBrZy9YaGNpRHhlOiBVc2UNCj4gPiA+ID4gUGVyZm9ybWFuY2Ug VGltZXIgZm9yIFhIQ0kgVGltZW91dHMNCj4gPiA+ID4NCj4gPiA+ID4gSSBzZW50IHRoaXMgcGF0 Y2ggb3V0IGEgZmV3IHdlZWtzIGFnbyBub3cgYnV0IGhhdmVuJ3Qgc2VlbiBhDQo+ID4gPiA+IHJl cGx5LCBqdXN0IGNoZWNraW5nIGluIHRvIG1ha2Ugc3VyZSBpdCBkaWRuJ3QgZ2V0IG1pc3NlZC4N Cj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBQYXRyaWNrIEhlbnoNCj4gPiA+ID4N Cj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiA+ ID4gSGVueiwgUGF0cmljaw0KPiA+ID4gPiBTZW50OiBNb25kYXksIEF1Z3VzdCAxNCwgMjAyMyAx MDo1MiBBTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gQ2M6IEhl bnosIFBhdHJpY2sgPHBhdHJpY2suaGVuekBocGUuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBbZWRr Mi1kZXZlbF0gW1BBVENIIHYyXSBNZGVNb2R1bGVQa2cvWGhjaUR4ZTogVXNlDQo+ID4gPiA+IFBl cmZvcm1hbmNlIFRpbWVyIGZvciBYSENJIFRpbWVvdXRzDQo+ID4gPiA+DQo+ID4gPiA+IFJFRjpo dHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3Jn L3Nobw0KPiA+ID4gPiB3X2J1Zy5jZ2k/aWQ9Mjk0OF9fOyEhTnB4UiFtWlJ1TUJLUGRlUi0NCj4g VXZZN3NyOHRXTk9mSVFEZTBXX1RXM3EtSzhNDQo+ID4gPiA+IHROTjFjeW55UloxX2Jsczhvc2FF cUZXdXBGbWpSMjlYX3p2dzBaeDFZJA0KPiA+ID4gPg0KPiA+ID4gPiBYaGNpRHhlIHVzZXMgdGhl IHRpbWVyIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGJvb3Qgc2VydmljZXMNCj4gPiA+ ID4gdGFibGUgdG8gZGV0ZWN0IHRpbWVvdXQgY29uZGl0aW9ucy4gVGhpcyBicmVha3MgdGhlIGRy aXZlcidzDQo+ID4gPiA+IEV4aXRCb290U2VydmljZXMgY2FsbCBiYWNrLCBhcyBDb3JlRXhpdEJv b3RTZXJ2aWNlcyBoYWx0cyB0aGUNCj4gPiA+ID4gdGltZXIgYmVmb3JlIHNpZ25hbGluZyB0aGUg RXhpdEJvb3RTZXJ2aWNlcyBldmVudC4gSWYgdGhlIGhvc3QNCj4gPiA+ID4gY29udHJvbGxlciBm YWlscyB0byBoYWx0IGluIHRoZSBjYWxsIGJhY2ssIHRoZSB0aW1lb3V0IGNvbmRpdGlvbg0KPiA+ ID4gPiB3aWxsIG5ldmVyIG9jY3VyIGFuZCB0aGUgYm9vdCBnZXRzIHN0dWNrIGluIGFuIGluZGVm aW5pdGUgc3Bpbg0KPiA+ID4gPiBsb29wLiBVc2UgdGhlIGZyZWUgcnVubmluZyB0aW1lciBwcm92 aWRlZCBieSBUaW1lckxpYiB0byBjYWxjdWxhdGUNCj4gPiA+ID4gdGltZW91dHMsIGF2b2lkaW5n DQo+ID4gdGhlIHBvdGVudGlhbCBoYW5nLg0KPiA+ID4gPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBQYXRyaWNrIEhlbnogPHBhdHJpY2suaGVuekBocGUuY29tPg0KPiA+ID4gPiBSZXZpZXdlZC1i eToNCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1ho Y2kuYyAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiAgTWRlTW9kdWxlUGtn L0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmggICAgICB8IDIyICsrKysrKysrDQo+ID4gPiA+ICBNZGVN b2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lEeGUuaW5mIHwgIDIgKw0KPiA+ID4gPiAgTWRl TW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMgICB8IDY3ICsrKysrKysrKy0tLS0t LS0tLS0tLS0NCj4gLQ0KPiA+ID4gPiAgTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNp U2NoZWQuYyB8IDY4DQo+ID4gPiA+ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiAg NSBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0pDQo+ID4g PiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1ho Y2kuYw0KPiA+ID4gPiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jDQo+ID4g PiA+IGluZGV4IDYyNjgyZGQyN2MuLjFkY2JlMjA1MTIgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL01k ZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jDQo+ID4gPiA+ICsrKyBiL01kZU1vZHVs ZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jDQo+ID4gPiA+IEBAIC0xLDYgKzEsNyBAQA0KPiA+ ID4gPiAgLyoqIEBmaWxlDQo+ID4gPiA+ICAgIFRoZSBYSENJIGNvbnRyb2xsZXIgZHJpdmVyLg0K PiA+ID4gPg0KPiA+ID4gPiArKEMpIENvcHlyaWdodCAyMDIzIEhld2xldHQgUGFja2FyZCBFbnRl cnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ID4gPiAgQ29weXJpZ2h0IChjKSAyMDExIC0g MjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ID4gcmVzZXJ2ZWQuPEJS Pg0KPiA+ID4gPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPiA+ID4NCj4gPiA+ID4gQEAgLTIyOTQsMyArMjI5NSw1OCBAQCBYaGNEcml2ZXJCaW5kaW5n U3RvcCAoDQo+ID4gPiA+DQo+ID4gPiA+ICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPiA+ID4g IH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArLyoqDQo+ID4gPiA+ICsgIENvbXB1dGVzIGFuZCByZXR1 cm5zIHRoZSBlbGFwc2VkIHRpbWUgaW4gbmFub3NlY29uZHMgc2luY2UNCj4gPiA+ID4gKyAgUHJl dmlvdXNUaWNrLiBUaGUgdmFsdWUgb2YgUHJldmlvdXNUaWNrIGlzIG92ZXJ3cml0dGVuIHdpdGgg dGhlDQo+ID4gPiA+ICsgIGN1cnJlbnQgcGVyZm9ybWFuY2UgY291bnRlciB2YWx1ZS4NCj4gPiA+ ID4gKw0KPiA+ID4gPiArICBAcGFyYW0gIFByZXZpb3VzVGljayAgICBQb2ludGVyIHRvIFByZXZp b3VzVGljayBjb3VudC4NCj4gPiA+ID4gKyAgQHJldHVybiBUaGUgZWxhcHNlZCB0aW1lIGluIG5h bm9zZWNvbmRzIHNpbmNlIFByZXZpb3VzQ291bnQuDQo+ID4gPiA+ICsgICAgICAgICAgUHJldmlv dXNDb3VudCBpcyBvdmVyd3JpdHRlbiB3aXRoIHRoZSBjdXJyZW50IHBlcmZvcm1hbmNlDQo+ID4g PiA+ICsgICAgICAgICAgY291bnRlciB2YWx1ZS4NCj4gPiA+ID4gKyoqLw0KPiA+ID4gPiArVUlO VDY0DQo+ID4gPiA+ICtYaGNHZXRFbGFwc2VkVGltZSAoDQo+ID4gPiA+ICsgIElOIE9VVCBVSU5U NjQgICpQcmV2aW91c1RpY2sNCj4gPiA+ID4gKyAgKQ0KPiA+ID4gPiArew0KPiA+ID4gPiArICBV SU5UNjQgIFN0YXJ0VmFsdWU7DQo+ID4gPiA+ICsgIFVJTlQ2NCAgRW5kVmFsdWU7DQo+ID4gPiA+ ICsgIFVJTlQ2NCAgQ3VycmVudFRpY2s7DQo+ID4gPiA+ICsgIFVJTlQ2NCAgRGVsdGE7DQo+ID4g PiA+ICsNCj4gPiA+ID4gKyAgR2V0UGVyZm9ybWFuY2VDb3VudGVyUHJvcGVydGllcyAoJlN0YXJ0 VmFsdWUsICZFbmRWYWx1ZSk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgQ3VycmVudFRpY2sgPSBH ZXRQZXJmb3JtYW5jZUNvdW50ZXIgKCk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ ID4gKyAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBjb3VudGVyIGlzIGNvdW50aW5nIHVwIG9yIGRvd24g IC8vICBpZg0KPiA+ID4gPiArIChTdGFydFZhbHVlIDwgRW5kVmFsdWUpIHsNCj4gPiA+ID4gKyAg ICAvLw0KPiA+ID4gPiArICAgIC8vIENvdW50ZXIgY291bnRzIHVwd2FyZHMsIGNoZWNrIGZvciBh biBvdmVyZmxvdyBjb25kaXRpb24NCj4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiArICAgIGlmICgq UHJldmlvdXNUaWNrID4gQ3VycmVudFRpY2spIHsNCj4gPiA+ID4gKyAgICAgIERlbHRhID0gKEVu ZFZhbHVlIC0gKlByZXZpb3VzVGljaykgKyBDdXJyZW50VGljazsNCj4gPiA+ID4gKyAgICB9IGVs c2Ugew0KPiA+ID4gPiArICAgICAgRGVsdGEgPSBDdXJyZW50VGljayAtICpQcmV2aW91c1RpY2s7 DQo+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiArICB9IGVsc2Ugew0KPiA+ID4gPiArICAgIC8vDQo+ ID4gPiA+ICsgICAgLy8gQ291bnRlciBjb3VudHMgZG93bndhcmRzLCBjaGVjayBmb3IgYW4gdW5k ZXJmbG93IGNvbmRpdGlvbg0KPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgaWYgKCpQcmV2 aW91c1RpY2sgPCBDdXJyZW50VGljaykgew0KPiA+ID4gPiArICAgICAgRGVsdGEgPSAoU3RhcnRW YWx1ZSAtIEN1cnJlbnRUaWNrKSArICpQcmV2aW91c1RpY2s7DQo+ID4gPiA+ICsgICAgfSBlbHNl IHsNCj4gPiA+ID4gKyAgICAgIERlbHRhID0gKlByZXZpb3VzVGljayAtIEN1cnJlbnRUaWNrOw0K PiA+ID4gPiArICAgIH0NCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIC8vDQo+ ID4gPiA+ICsgIC8vIFNldCBQcmV2aW91c1RpY2sgdG8gQ3VycmVudFRpY2sgIC8vICAqUHJldmlv dXNUaWNrID0NCj4gPiA+ID4gKyBDdXJyZW50VGljazsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICBy ZXR1cm4gR2V0VGltZUluTmFub1NlY29uZCAoRGVsdGEpOyB9DQo+ID4gPiA+IGRpZmYgLS1naXQg YS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuaA0KPiA+ID4gPiBiL01kZU1vZHVs ZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5oDQo+ID4gPiA+IGluZGV4IGNhMjIzYmQyMGMuLjc3 ZmViNjY2NDcgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lE eGUvWGhjaS5oDQo+ID4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhj aS5oDQo+ID4gPiA+IEBAIC0yLDYgKzIsNyBAQA0KPiA+ID4gPg0KPiA+ID4gPiAgICBQcm92aWRl cyBzb21lIGRhdGEgc3RydWN0dXJlIGRlZmluaXRpb25zIHVzZWQgYnkgdGhlIFhIQ0kgaG9zdA0K PiA+ID4gPiBjb250cm9sbGVyIGRyaXZlci4NCj4gPiA+ID4NCj4gPiA+ID4gKyhDKSBDb3B5cmln aHQgMjAyMyBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4NCj4g PiA+ID4gIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzDQo+ID4gPiA+IHJlc2VydmVkLjxCUj4gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29y cG9yYXRpb24uPEJSPg0KPiA+ID4gPiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQgQEAgLTI2LDYgKzI3LDcgQEANCj4gPiA+ID4gU1BEWC0NCj4gPiA+ID4gTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50ICAjaW5jbHVkZQ0KPiA+ID4gPiA8 TGlicmFyeS9VZWZpTGliLmg+ICAjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPiAgI2luY2x1 ZGUNCj4gPiA+ID4gPExpYnJhcnkvUmVwb3J0U3RhdHVzQ29kZUxpYi5oPg0KPiA+ID4gPiArI2lu Y2x1ZGUgPExpYnJhcnkvVGltZXJMaWIuaD4NCj4gPiA+ID4NCj4gPiA+ID4gICNpbmNsdWRlIDxJ bmR1c3RyeVN0YW5kYXJkL1BjaS5oPg0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtMzcsNiArMzksMTAg QEAgdHlwZWRlZiBzdHJ1Y3QgX1VTQl9ERVZfQ09OVEVYVA0KPiA+IFVTQl9ERVZfQ09OVEVYVDsN Cj4gPiA+ID4gI2luY2x1ZGUgIkNvbXBvbmVudE5hbWUuaCINCj4gPiA+ID4gICNpbmNsdWRlICJV c2JIY01lbS5oIg0KPiA+ID4gPg0KPiA+ID4gPiArLy8NCj4gPiA+ID4gKy8vIENvbnZlcnRzIGEg Y291bnQgZnJvbSBtaWNyb3NlY29uZHMgdG8gbmFub3NlY29uZHMgLy8gI2RlZmluZQ0KPiA+ID4g PiArWEhDX01JQ1JPU0VDT05EX1RPX05BTk9TRUNPTkQoVGltZSkgICgoVUlOVDY0KShUaW1lKSAq DQo+IDEwMDApDQo+ID4gPiA+ICAvLw0KPiA+ID4gPiAgLy8gVGhlIHVuaXQgaXMgbWljcm9zZWNv bmQsIHNldHRpbmcgaXQgYXMgMXVzLg0KPiA+ID4gPiAgLy8NCj4gPiA+ID4gQEAgLTcyMCw0ICs3 MjYsMjAgQEAgWGhjQXN5bmNJc29jaHJvbm91c1RyYW5zZmVyICgNCj4gPiA+ID4gICAgSU4gICAg IFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpDb250ZXh0DQo+ID4gPiA+ICAg ICk7DQo+ID4gPiA+DQo+ID4gPiA+ICsvKioNCj4gPiA+ID4gKyAgQ29tcHV0ZXMgYW5kIHJldHVy bnMgdGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vjb25kcyBzaW5jZQ0KPiA+ID4gPiArICBQcmV2 aW91c1RpY2suIFRoZSB2YWx1ZSBvZiBQcmV2aW91c1RpY2sgaXMgb3ZlcndyaXR0ZW4gd2l0aCB0 aGUNCj4gPiA+ID4gKyAgY3VycmVudCBwZXJmb3JtYW5jZSBjb3VudGVyIHZhbHVlLg0KPiA+ID4g PiArDQo+ID4gPiA+ICsgIEBwYXJhbSAgUHJldmlvdXNUaWNrICAgIFBvaW50ZXIgdG8gUHJldmlv dXNUaWNrIGNvdW50Lg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUg Y2FsbGluZyB0aGlzIGZ1bmN0aW9uLg0KPiA+ID4gPiArICBAcmV0dXJuIFRoZSBlbGFwc2VkIHRp bWUgaW4gbmFub3NlY29uZHMgc2luY2UgUHJldmlvdXNDb3VudC4NCj4gPiA+ID4gKyAgICAgICAg ICBQcmV2aW91c0NvdW50IGlzIG92ZXJ3cml0dGVuIHdpdGggdGhlIGN1cnJlbnQgcGVyZm9ybWFu Y2UNCj4gPiA+ID4gKyAgICAgICAgICBjb3VudGVyIHZhbHVlLg0KPiA+ID4gPiArKiovDQo+ID4g PiA+ICtVSU5UNjQNCj4gPiA+ID4gK1hoY0dldEVsYXBzZWRUaW1lICgNCj4gPiA+ID4gKyAgSU4g T1VUIFVJTlQ2NCAgKlByZXZpb3VzVGljaw0KPiA+ID4gPiArICApOw0KPiA+ID4gPiArDQo+ID4g PiA+ICAjZW5kaWYNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1ho Y2lEeGUvWGhjaUR4ZS5pbmYNCj4gPiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhl L1hoY2lEeGUuaW5mDQo+ID4gPiA+IGluZGV4IDU4NjVkODY4MjIuLjE4ZWY4NzkxNmEgMTAwNjQ0 DQo+ID4gPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaUR4ZS5pbmYN Cj4gPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0K PiA+ID4gPiBAQCAtMyw2ICszLDcgQEANCj4gPiA+ID4gICMgIEl0IGltcGxlbWVudHMgdGhlIGlu dGVyZmFjZXMgb2YgbW9uaXRvcmluZyB0aGUgc3RhdHVzIG9mIGFsbA0KPiA+ID4gPiBwb3J0cyBh bmQgdHJhbnNmZXJyaW5nICAjICBDb250cm9sLCBCdWxrLCBJbnRlcnJ1cHQgYW5kDQo+ID4gPiA+ IElzb2Nocm9ub3VzIHJlcXVlc3RzIHRvIHRob3NlIGF0dGFjaGVkIHVzYiBMUy9GUy9IUy9TUyBk ZXZpY2VzLg0KPiA+ID4gPiAgIw0KPiA+ID4gPiArIyAgKEMpIENvcHlyaWdodCAyMDIzIEhld2xl dHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50DQo+ID4gPiA+ICtMUDxCUj4NCj4gPiA+ ID4gICMgIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzDQo+ID4gPiA+IHJlc2VydmVkLjxCUj4gICMgICMNCj4gPiA+ID4gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgQEAgLTU0LDYgKzU1LDcgQEANCj4gPiA+ ID4gICAgQmFzZU1lbW9yeUxpYg0KPiA+ID4gPiAgICBEZWJ1Z0xpYg0KPiA+ID4gPiAgICBSZXBv cnRTdGF0dXNDb2RlTGliDQo+ID4gPiA+ICsgIFRpbWVyTGliDQo+ID4gPiA+DQo+ID4gPiA+ICBb R3VpZHNdDQo+ID4gPiA+ICAgIGdFZmlFdmVudEV4aXRCb290U2VydmljZXNHdWlkICAgICAgICAg ICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4gIyMNCj4gPiA+ID4gRXZlbnQNCj4gPiA+ ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaVJlZy5jDQo+ ID4gPiA+IGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+ID4g aW5kZXggNTcwMGZjNWZiOC4uMDdlNTc3NzJiNiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlTW9k dWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+ID4gKysrIGIvTWRlTW9kdWxl UGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+ID4gQEAgLTIsNiArMiw3IEBADQo+ ID4gPiA+DQo+ID4gPiA+ICAgIFRoZSBYSENJIHJlZ2lzdGVyIG9wZXJhdGlvbiByb3V0aW5lcy4N Cj4gPiA+ID4NCj4gPiA+ID4gKyhDKSBDb3B5cmlnaHQgMjAyMyBIZXdsZXR0IFBhY2thcmQgRW50 ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4NCj4gPiA+ID4gIENvcHlyaWdodCAoYykgMjAxMSAt IDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gPiA+IHJlc2VydmVkLjxC Uj4NCj4gPiA+ID4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC00MTcsMTUgKzQxOCwxNCBAQCBYaGNDbGVhck9wUmVnQml0 ICgNCj4gPiA+ID4gICAgV2FpdCB0aGUgb3BlcmF0aW9uIHJlZ2lzdGVyJ3MgYml0IGFzIHNwZWNp ZmllZCBieSBCaXQNCj4gPiA+ID4gICAgdG8gYmVjb21lIHNldCAob3IgY2xlYXIpLg0KPiA+ID4g Pg0KPiA+ID4gPiAtICBAcGFyYW0gIFhoYyAgICAgICAgICAgICAgICAgICAgVGhlIFhIQ0kgSW5z dGFuY2UuDQo+ID4gPiA+IC0gIEBwYXJhbSAgT2Zmc2V0ICAgICAgICAgICAgICAgICBUaGUgb2Zm c2V0IG9mIHRoZSBvcGVyYXRpb24gcmVnaXN0ZXIuDQo+ID4gPiA+IC0gIEBwYXJhbSAgQml0ICAg ICAgICAgICAgICAgICAgICBUaGUgYml0IG9mIHRoZSByZWdpc3RlciB0byB3YWl0IGZvci4NCj4g PiA+ID4gLSAgQHBhcmFtICBXYWl0VG9TZXQgICAgICAgICAgICAgIFdhaXQgdGhlIGJpdCB0byBz ZXQgb3IgY2xlYXIuDQo+ID4gPiA+IC0gIEBwYXJhbSAgVGltZW91dCAgICAgICAgICAgICAgICBU aGUgdGltZSB0byB3YWl0IGJlZm9yZSBhYm9ydCAoaW4NCj4gbWlsbGlzZWNvbmQsDQo+ID4gPiA+ IG1zKS4NCj4gPiA+ID4gKyAgQHBhcmFtICBYaGMgICAgICAgICAgVGhlIFhIQ0kgSW5zdGFuY2Uu DQo+ID4gPiA+ICsgIEBwYXJhbSAgT2Zmc2V0ICAgICAgIFRoZSBvZmZzZXQgb2YgdGhlIG9wZXJh dGlvbiByZWdpc3Rlci4NCj4gPiA+ID4gKyAgQHBhcmFtICBCaXQgICAgICAgICAgVGhlIGJpdCBv ZiB0aGUgcmVnaXN0ZXIgdG8gd2FpdCBmb3IuDQo+ID4gPiA+ICsgIEBwYXJhbSAgV2FpdFRvU2V0 ICAgIFdhaXQgdGhlIGJpdCB0byBzZXQgb3IgY2xlYXIuDQo+ID4gPiA+ICsgIEBwYXJhbSAgVGlt ZW91dCAgICAgIFRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIGFib3J0IChpbiBtaWxsaXNlY29uZCwN Cj4gbXMpLg0KPiA+ID4gPg0KPiA+ID4gPiAtICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAg ICAgVGhlIGJpdCBzdWNjZXNzZnVsbHkgY2hhbmdlZCBieSBob3N0DQo+ID4gY29udHJvbGxlci4N Cj4gPiA+ID4gLSAgQHJldHZhbCBFRklfVElNRU9VVCAgICAgICAgICAgIFRoZSB0aW1lIG91dCBv Y2N1cnJlZC4NCj4gPiA+ID4gLSAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgIE1lbW9y eSBmb3IgdGhlIHRpbWVyIGV2ZW50IGNvdWxkDQo+ID4gbm90DQo+ID4gPiA+IGJlIGFsbG9jYXRl ZC4NCj4gPiA+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgVGhlIGJpdCBzdWNjZXNzZnVsbHkg Y2hhbmdlZCBieSBob3N0IGNvbnRyb2xsZXIuDQo+ID4gPiA+ICsgIEByZXR2YWwgRUZJX1RJTUVP VVQgIFRoZSB0aW1lIG91dCBvY2N1cnJlZC4NCj4gPiA+ID4NCj4gPiA+ID4gICoqLw0KPiA+ID4g PiAgRUZJX1NUQVRVUw0KPiA+ID4gPiBAQCAtNDM3LDU0ICs0MzcsMzUgQEAgWGhjV2FpdE9wUmVn Qml0ICgNCj4gPiA+ID4gICAgSU4gVUlOVDMyICAgICAgICAgICAgIFRpbWVvdXQNCj4gPiA+ID4g ICAgKQ0KPiA+ID4gPiAgew0KPiA+ID4gPiAtICBFRklfU1RBVFVTICBTdGF0dXM7DQo+ID4gPiA+ IC0gIEVGSV9FVkVOVCAgIFRpbWVvdXRFdmVudDsNCj4gPiA+ID4gLQ0KPiA+ID4gPiAtICBUaW1l b3V0RXZlbnQgPSBOVUxMOw0KPiA+ID4gPiArICBVSU5UNjQgIFRpbWVvdXRUaW1lOw0KPiA+ID4g PiArICBVSU5UNjQgIEVsYXBzZWRUaW1lOw0KPiA+ID4gPiArICBVSU5UNjQgIFRpbWVEZWx0YTsN Cj4gPiA+ID4gKyAgVUlOVDY0ICBDdXJyZW50VGljazsNCj4gPiA+ID4NCj4gPiA+ID4gICAgaWYg KFRpbWVvdXQgPT0gMCkgew0KPiA+ID4gPiAgICAgIHJldHVybiBFRklfVElNRU9VVDsNCj4gPiA+ ID4gICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAtICBTdGF0dXMgPSBnQlMtPkNyZWF0ZUV2ZW50ICgN Cj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgIEVWVF9USU1FUiwNCj4gPiA+ID4gLSAgICAgICAg ICAgICAgICAgIFRQTF9DQUxMQkFDSywNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgIE5VTEws DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+ID4gPiAtICAgICAgICAgICAg ICAgICAgJlRpbWVvdXRFdmVudA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+ ID4gLQ0KPiA+ID4gPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+IC0gICAg Z290byBET05FOw0KPiA+ID4gPiAtICB9DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAgU3RhdHVzID0g Z0JTLT5TZXRUaW1lciAoDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBUaW1lb3V0RXZlbnQs DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBUaW1lclJlbGF0aXZlLA0KPiA+ID4gPiAtICAg ICAgICAgICAgICAgICAgRUZJX1RJTUVSX1BFUklPRF9NSUxMSVNFQ09ORFMgKFRpbWVvdXQpDQo+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0gIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ID4gLSAgICBnb3RvIERPTkU7DQo+ID4gPiA+IC0g IH0NCj4gPiA+ID4gKyAgVGltZW91dFRpbWUgPSBYSENfTUlDUk9TRUNPTkRfVE9fTkFOT1NFQ09O RA0KPiA+ICgoVUlOVDY0KVRpbWVvdXQNCj4gPiA+ID4gKg0KPiA+ID4gPiArIFhIQ18xX01JTExJ U0VDT05EKTsgIEVsYXBzZWRUaW1lID0gMDsgIEN1cnJlbnRUaWNrID0NCj4gPiA+ID4gKyBHZXRQ ZXJmb3JtYW5jZUNvdW50ZXIgKCk7DQo+ID4gPiA+DQo+ID4gPiA+ICAgIGRvIHsNCj4gPiA+ID4g ICAgICBpZiAoWEhDX1JFR19CSVRfSVNfU0VUIChYaGMsIE9mZnNldCwgQml0KSA9PSBXYWl0VG9T ZXQpIHsNCj4gPiA+ID4gLSAgICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPiA+ID4gPiAtICAg ICAgZ290byBET05FOw0KPiA+ID4gPiArICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4g PiAgICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gICAgICBnQlMtPlN0YWxsIChYSENfMV9NSUNST1NF Q09ORCk7DQo+ID4gPiA+IC0gIH0gd2hpbGUgKEVGSV9FUlJPUiAoZ0JTLT5DaGVja0V2ZW50IChU aW1lb3V0RXZlbnQpKSk7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAgU3RhdHVzID0gRUZJX1RJTUVP VVQ7DQo+ID4gPiA+ICsgICAgVGltZURlbHRhID0gWGhjR2V0RWxhcHNlZFRpbWUgKCZDdXJyZW50 VGljayk7DQo+ID4gPiA+ICsgICAgLy8gRW5zdXJlIHRoYXQgRWxhcHNlZFRpbWUgaXMgYWx3YXlz IGluY3JlbWVudGVkIHRvIGF2b2lkDQo+ID4gPiA+ICsgaW5kZWZpbml0ZQ0KPiA+ID4gPiBoYW5n cw0KPiA+ID4gPiArICAgIGlmIChUaW1lRGVsdGEgPT0gMCkgew0KPiA+ID4gPiArICAgICAgVGlt ZURlbHRhID0gWEhDX01JQ1JPU0VDT05EX1RPX05BTk9TRUNPTkQNCj4gPiA+ID4gKFhIQ18xX01J Q1JPU0VDT05EKTsNCj4gPiA+ID4gKyAgICB9DQo+ID4gPiA+DQo+ID4gPiA+IC1ET05FOg0KPiA+ ID4gPiAtICBpZiAoVGltZW91dEV2ZW50ICE9IE5VTEwpIHsNCj4gPiA+ID4gLSAgICBnQlMtPkNs b3NlRXZlbnQgKFRpbWVvdXRFdmVudCk7DQo+ID4gPiA+IC0gIH0NCj4gPiA+ID4gKyAgICBFbGFw c2VkVGltZSArPSBUaW1lRGVsdGE7DQo+ID4gPiA+ICsgIH0gd2hpbGUgKEVsYXBzZWRUaW1lIDwg VGltZW91dFRpbWUpOw0KPiA+ID4gPg0KPiA+ID4gPiAtICByZXR1cm4gU3RhdHVzOw0KPiA+ID4g PiArICByZXR1cm4gRUZJX1RJTUVPVVQ7DQo+ID4gPiA+ICB9DQo+ID4gPiA+DQo+ID4gPiA+ICAv KioNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhj aVNjaGVkLmMNCj4gPiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lTY2hl ZC5jDQo+ID4gPiA+IGluZGV4IDUzNDIxZTY0YTguLjdkNGI3YTc2OWQgMTAwNjQ0DQo+ID4gPiA+ IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaVNjaGVkLmMNCj4gPiA+ID4g KysrIGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYw0KPiA+ID4gPiBA QCAtMiw2ICsyLDcgQEANCj4gPiA+ID4NCj4gPiA+ID4gICAgWEhDSSB0cmFuc2ZlciBzY2hlZHVs aW5nIHJvdXRpbmVzLg0KPiA+ID4gPg0KPiA+ID4gPiArKEMpIENvcHlyaWdodCAyMDIzIEhld2xl dHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ID4gPiAgQ29weXJp Z2h0IChjKSAyMDExIC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ ID4gcmVzZXJ2ZWQuPEJSPiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi48QlI+ ICBDb3B5cmlnaHQNCj4gPiA+ID4gKEMpIDIwMjIgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5j LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gQEANCj4gPiA+ID4gLQ0KPiA+IDEyNzYsMTUgKzEy NzcsMTQgQEAgRVhJVDoNCj4gPiA+ID4gIC8qKg0KPiA+ID4gPiAgICBFeGVjdXRlIHRoZSB0cmFu c2ZlciBieSBwb2xsaW5nIHRoZSBVUkIuIFRoaXMgaXMgYSBzeW5jaHJvbm91cw0KPiBvcGVyYXRp b24uDQo+ID4gPiA+DQo+ID4gPiA+IC0gIEBwYXJhbSAgWGhjICAgICAgICAgICAgICAgICAgICBU aGUgWEhDSSBJbnN0YW5jZS4NCj4gPiA+ID4gLSAgQHBhcmFtICBDbWRUcmFuc2ZlciAgICAgICAg ICAgIFRoZSBleGVjdXRlZCBVUkIgaXMgZm9yIGNtZCB0cmFuc2ZlciBvcg0KPiA+IG5vdC4NCj4g PiA+ID4gLSAgQHBhcmFtICBVcmIgICAgICAgICAgICAgICAgICAgIFRoZSBVUkIgdG8gZXhlY3V0 ZS4NCj4gPiA+ID4gLSAgQHBhcmFtICBUaW1lb3V0ICAgICAgICAgICAgICAgIFRoZSB0aW1lIHRv IHdhaXQgYmVmb3JlIGFib3J0LCBpbg0KPiBtaWxsaXNlY29uZC4NCj4gPiA+ID4gKyAgQHBhcmFt ICBYaGMgICAgICAgICAgICAgICBUaGUgWEhDSSBJbnN0YW5jZS4NCj4gPiA+ID4gKyAgQHBhcmFt ICBDbWRUcmFuc2ZlciAgICAgICBUaGUgZXhlY3V0ZWQgVVJCIGlzIGZvciBjbWQgdHJhbnNmZXIg b3INCj4gbm90Lg0KPiA+ID4gPiArICBAcGFyYW0gIFVyYiAgICAgICAgICAgICAgIFRoZSBVUkIg dG8gZXhlY3V0ZS4NCj4gPiA+ID4gKyAgQHBhcmFtICBUaW1lb3V0ICAgICAgICAgICBUaGUgdGlt ZSB0byB3YWl0IGJlZm9yZSBhYm9ydCwgaW4gbWlsbGlzZWNvbmQuDQo+ID4gPiA+DQo+ID4gPiA+ IC0gIEByZXR1cm4gRUZJX0RFVklDRV9FUlJPUiAgICAgICBUaGUgdHJhbnNmZXIgZmFpbGVkIGR1 ZSB0byB0cmFuc2Zlcg0KPiBlcnJvci4NCj4gPiA+ID4gLSAgQHJldHVybiBFRklfVElNRU9VVCAg ICAgICAgICAgIFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRpbWUgb3V0Lg0KPiA+ID4gPiAt ICBAcmV0dXJuIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIHRyYW5zZmVyIGZpbmlzaGVkIE9L Lg0KPiA+ID4gPiAtICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgTWVtb3J5IGZvciB0 aGUgdGltZXIgZXZlbnQgY291bGQNCj4gPiBub3QNCj4gPiA+ID4gYmUgYWxsb2NhdGVkLg0KPiA+ ID4gPiArICBAcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1IgIFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVl IHRvIHRyYW5zZmVyIGVycm9yLg0KPiA+ID4gPiArICBAcmV0dXJuIEVGSV9USU1FT1VUICAgICAg IFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRpbWUgb3V0Lg0KPiA+ID4gPiArICBAcmV0dXJu IEVGSV9TVUNDRVNTICAgICAgIFRoZSB0cmFuc2ZlciBmaW5pc2hlZCBPSy4NCj4gPiA+ID4NCj4g PiA+ID4gICoqLw0KPiA+ID4gPiAgRUZJX1NUQVRVUw0KPiA+ID4gPiBAQCAtMTI5OSwxMiArMTI5 OSwxNCBAQCBYaGNFeGVjVHJhbnNmZXIgKA0KPiA+ID4gPiAgICBVSU5UOCAgICAgICBTbG90SWQ7 DQo+ID4gPiA+ICAgIFVJTlQ4ICAgICAgIERjaTsNCj4gPiA+ID4gICAgQk9PTEVBTiAgICAgRmlu aXNoZWQ7DQo+ID4gPiA+IC0gIEVGSV9FVkVOVCAgIFRpbWVvdXRFdmVudDsNCj4gPiA+ID4gKyAg VUlOVDY0ICAgICAgVGltZW91dFRpbWU7DQo+ID4gPiA+ICsgIFVJTlQ2NCAgICAgIEVsYXBzZWRU aW1lOw0KPiA+ID4gPiArICBVSU5UNjQgICAgICBUaW1lRGVsdGE7DQo+ID4gPiA+ICsgIFVJTlQ2 NCAgICAgIEN1cnJlbnRUaWNrOw0KPiA+ID4gPiAgICBCT09MRUFOICAgICBJbmRlZmluaXRlVGlt ZW91dDsNCj4gPiA+ID4NCj4gPiA+ID4gICAgU3RhdHVzICAgICAgICAgICAgPSBFRklfU1VDQ0VT UzsNCj4gPiA+ID4gICAgRmluaXNoZWQgICAgICAgICAgPSBGQUxTRTsNCj4gPiA+ID4gLSAgVGlt ZW91dEV2ZW50ICAgICAgPSBOVUxMOw0KPiA+ID4gPiAgICBJbmRlZmluaXRlVGltZW91dCA9IEZB TFNFOw0KPiA+ID4gPg0KPiA+ID4gPiAgICBpZiAoQ21kVHJhbnNmZXIpIHsNCj4gPiA+ID4gQEAg LTEzMjIsMzQgKzEzMjQsMTQgQEAgWGhjRXhlY1RyYW5zZmVyICgNCj4gPiA+ID4NCj4gPiA+ID4g ICAgaWYgKFRpbWVvdXQgPT0gMCkgew0KPiA+ID4gPiAgICAgIEluZGVmaW5pdGVUaW1lb3V0ID0g VFJVRTsNCj4gPiA+ID4gLSAgICBnb3RvIFJJTkdET09SQkVMTDsNCj4gPiA+ID4gLSAgfQ0KPiA+ ID4gPiAtDQo+ID4gPiA+IC0gIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQgKA0KPiA+ID4gPiAt ICAgICAgICAgICAgICAgICAgRVZUX1RJTUVSLA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAg VFBMX0NBTExCQUNLLA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gPiA+ID4g LSAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAmVGlt ZW91dEV2ZW50DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPiAtDQo+ID4g PiA+IC0gIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ID4gLSAgICBnb3RvIERPTkU7 DQo+ID4gPiA+ICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gLSAgU3RhdHVzID0gZ0JTLT5TZXRUaW1l ciAoDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBUaW1lb3V0RXZlbnQsDQo+ID4gPiA+IC0g ICAgICAgICAgICAgICAgICBUaW1lclJlbGF0aXZlLA0KPiA+ID4gPiAtICAgICAgICAgICAgICAg ICAgRUZJX1RJTUVSX1BFUklPRF9NSUxMSVNFQ09ORFMgKFRpbWVvdXQpDQo+ID4gPiA+IC0gICAg ICAgICAgICAgICAgICApOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0gIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gPiA+ID4gLSAgICBnb3RvIERPTkU7DQo+ID4gPiA+IC0gIH0NCj4gPiA+ID4g LQ0KPiA+ID4gPiAtUklOR0RPT1JCRUxMOg0KPiA+ID4gPiAgICBYaGNSaW5nRG9vckJlbGwgKFho YywgU2xvdElkLCBEY2kpOw0KPiA+ID4gPg0KPiA+ID4gPiArICBUaW1lb3V0VGltZSA9IFhIQ19N SUNST1NFQ09ORF9UT19OQU5PU0VDT05EDQo+ID4gKChVSU5UNjQpVGltZW91dA0KPiA+ID4gPiAq DQo+ID4gPiA+ICsgWEhDXzFfTUlMTElTRUNPTkQpOyAgRWxhcHNlZFRpbWUgPSAwOyAgQ3VycmVu dFRpY2sgPQ0KPiA+ID4gPiArIEdldFBlcmZvcm1hbmNlQ291bnRlciAoKTsNCj4gPiA+ID4gKw0K PiA+ID4gPiAgICBkbyB7DQo+ID4gPiA+ICAgICAgRmluaXNoZWQgPSBYaGNDaGVja1VyYlJlc3Vs dCAoWGhjLCBVcmIpOw0KPiA+ID4gPiAgICAgIGlmIChGaW5pc2hlZCkgew0KPiA+ID4gPiBAQCAt MTM1NywyMiArMTMzOSwyMiBAQCBSSU5HRE9PUkJFTEw6DQo+ID4gPiA+ICAgICAgfQ0KPiA+ID4g Pg0KPiA+ID4gPiAgICAgIGdCUy0+U3RhbGwgKFhIQ18xX01JQ1JPU0VDT05EKTsNCj4gPiA+ID4g LSAgfSB3aGlsZSAoSW5kZWZpbml0ZVRpbWVvdXQgfHwgRUZJX0VSUk9SIChnQlMtPkNoZWNrRXZl bnQNCj4gPiA+ID4gKFRpbWVvdXRFdmVudCkpKTsNCj4gPiA+ID4gKyAgICBUaW1lRGVsdGEgPSBY aGNHZXRFbGFwc2VkVGltZSAoJkN1cnJlbnRUaWNrKTsNCj4gPiA+ID4gKyAgICAvLyBFbnN1cmUg dGhhdCBFbGFwc2VkVGltZSBpcyBhbHdheXMgaW5jcmVtZW50ZWQgdG8gYXZvaWQNCj4gPiA+ID4g KyBpbmRlZmluaXRlDQo+ID4gPiA+IGhhbmdzDQo+ID4gPiA+ICsgICAgaWYgKFRpbWVEZWx0YSA9 PSAwKSB7DQo+ID4gPiA+ICsgICAgICBUaW1lRGVsdGEgPSBYSENfTUlDUk9TRUNPTkRfVE9fTkFO T1NFQ09ORA0KPiA+ID4gPiAoWEhDXzFfTUlDUk9TRUNPTkQpOw0KPiA+ID4gPiArICAgIH0NCj4g PiA+ID4NCj4gPiA+ID4gLURPTkU6DQo+ID4gPiA+IC0gIGlmIChFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gPiA+ID4gLSAgICBVcmItPlJlc3VsdCA9IEVGSV9VU0JfRVJSX05PVEVYRUNVVEU7DQo+ ID4gPiA+IC0gIH0gZWxzZSBpZiAoIUZpbmlzaGVkKSB7DQo+ID4gPiA+ICsgICAgRWxhcHNlZFRp bWUgKz0gVGltZURlbHRhOw0KPiA+ID4gPiArICB9IHdoaWxlIChJbmRlZmluaXRlVGltZW91dCB8 fCBFbGFwc2VkVGltZSA8IFRpbWVvdXRUaW1lKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICBpZiAo IUZpbmlzaGVkKSB7DQo+ID4gPiA+ICAgICAgVXJiLT5SZXN1bHQgPSBFRklfVVNCX0VSUl9USU1F T1VUOw0KPiA+ID4gPiAgICAgIFN0YXR1cyAgICAgID0gRUZJX1RJTUVPVVQ7DQo+ID4gPiA+ICAg IH0gZWxzZSBpZiAoVXJiLT5SZXN1bHQgIT0gRUZJX1VTQl9OT0VSUk9SKSB7DQo+ID4gPiA+ICAg ICAgU3RhdHVzID0gRUZJX0RFVklDRV9FUlJPUjsNCj4gPiA+ID4gICAgfQ0KPiA+ID4gPg0KPiA+ ID4gPiAtICBpZiAoVGltZW91dEV2ZW50ICE9IE5VTEwpIHsNCj4gPiA+ID4gLSAgICBnQlMtPkNs b3NlRXZlbnQgKFRpbWVvdXRFdmVudCk7DQo+ID4gPiA+IC0gIH0NCj4gPiA+ID4gLQ0KPiA+ID4g PiAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAtLQ0KPiA+ ID4gPiAyLjM0LjENCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ID4g Pg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gDQo+IA0KPiANCj4gDQo+IA0KDQoNCgot PS09LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBt ZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuClZpZXcvUmVwbHkgT25saW5lICgjMTA4NDM3KTog aHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTA4NDM3Ck11dGUgVGhpcyBU b3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvMTAwNzM5NTA4Lzc2ODYxNzYKR3JvdXAgT3duZXI6 IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvClVuc3Vic2NyaWJlOiBodHRwczovL2VkazIuZ3Jv dXBzLmlvL2cvZGV2ZWwvdW5zdWIgW3JlYmVjY2FAb3BlbmZ3LmlvXQotPS09LT0tPS09LT0tPS09 LT0tPS09LQoKDQo=