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 2CF26D8133E for ; Thu, 7 Sep 2023 18:38:48 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=aCeTFdcMVFQ1HMfdVA25tesPy9xoDto1pSFhl1Bks24=; 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=1694111926; v=1; b=SxM+x6seiHtG3nQBFWxHEzeIp5Yire/whiG8wjNJSeUA3J/5RHiedRvDgyosEcSQUmBozRre rvgPooNHoYJZVSKoVoHPn0Z2bBxdeB/AHDqNrVIzux2URpyewPtG7NSawwa9EaD30LwvT7bST3j V+fYv7EO+SgCorn9G5Azw6NE= X-Received: by 127.0.0.2 with SMTP id 7mA2YY7687511xRZQxLsgqU9; Thu, 07 Sep 2023 11:38:46 -0700 X-Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web11.21353.1694111925690662372 for ; Thu, 07 Sep 2023 11:38:46 -0700 X-Received: from pps.filterd (m0150245.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 387E2Xuc014328; Thu, 7 Sep 2023 18:38:44 GMT X-Received: from p1lg14878.it.hpe.com ([16.230.97.204]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3syfx3334h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 07 Sep 2023 18:38:44 +0000 X-Received: from p1wg14923.americas.hpqcorp.net (unknown [10.119.18.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by p1lg14878.it.hpe.com (Postfix) with ESMTPS id 993211319B; Thu, 7 Sep 2023 18:38:43 +0000 (UTC) X-Received: from p1wg14927.americas.hpqcorp.net (10.119.18.117) by p1wg14923.americas.hpqcorp.net (10.119.18.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Thu, 7 Sep 2023 06:38:43 -1200 X-Received: from p1wg14926.americas.hpqcorp.net (10.119.18.115) by p1wg14927.americas.hpqcorp.net (10.119.18.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Thu, 7 Sep 2023 06:38:42 -1200 X-Received: from p1wg14921.americas.hpqcorp.net (16.230.19.124) by p1wg14926.americas.hpqcorp.net (10.119.18.115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42 via Frontend Transport; Thu, 7 Sep 2023 06:38:42 -1200 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (192.58.206.38) by edge.it.hpe.com (16.230.19.124) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Thu, 7 Sep 2023 06:38:42 -1200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GtHKjDtOUuLl2dDDDEs5SOhsBYkl0wUL9N6t6Ms2yFbAKz2aBdiMRC40GYsv8RIo6Tl8WMptNn1eEXO6T38Os91JsQsEG9Ik/tGR7rh9E9GOYMZVIDCiaehcqcuhXgUL24BF6elUVOMaJlEtWhKj2MGrFpKBgIEmEWLqlrjeNvEXJLBel3qbZPlcZEt/ChHq1Ogr4V+Ss6fjXGoTYYnOMyt2300GT8q8NykyaYPyXmAfu/808ASkjnD2xeifjToUTokBhOL4PlPOZFFQ7mrN4AQ8LTHd3CUd/Vqf42qGQ+CwoEzzuBm8wFpRzbG3vjYDR5XexAsgg61qmnmWLjZPrw== 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=dXDgg3JilkEAr1ekW1KbVm66lICifxT/xpv8V1TNMKs=; b=NjTfDUG0bu4agWRKnCCuIyaF1JsY95H4yI600lJ8o0mmqZEgRR1NURlEEOY/zzeMNfzYQUpm6dOm/a8dwjUE8xPJE6JTyW3AKzXSxWaN5Sr4vr4VRVEHP957UexaaOBGxIl+lYCs6HMHVLvzmGblNzczb4/RckcitgiXuRKa5zU1XA+y/geC78TfRKol4bdlwkVR6pZqjFIcbIgI+t4+DU0LAEE4CbWM3rO0TCvQubHabdRLsCyeyFXB3iH3/o78aaA6FoX1mOqQLlTYzymCOmry5XJHdEXpYxGXKHiLq1b6SltsFx88ORMTHA1RYAXb0nxEXhYiDbs/utRJ13l2IA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none X-Received: from PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:171::21) by DM3PR84MB3689.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:0:45::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Thu, 7 Sep 2023 18:38:39 +0000 X-Received: from PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM ([fe80::55a0:89f4:ef4:bcba]) by PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM ([fe80::55a0:89f4:ef4:bcba%4]) with mapi id 15.20.6745.034; Thu, 7 Sep 2023 18:38:39 +0000 From: "Henz, Patrick" To: "devel@edk2.groups.io" , "hao.a.wu@intel.com" , 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+7A= Date: Thu, 7 Sep 2023 18:38:39 +0000 Message-ID: References: <177B4AD1F8C3A6A2.8497@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR84MB1478:EE_|DM3PR84MB3689:EE_ x-ms-office365-filtering-correlation-id: b31d8e5d-a9cc-4c0a-e086-08dbafd1a746 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: wJ/hyra9Btdq+XMOo11wa7MJtiZ9+5wCx9oTArOX+ybXcjat/Zj0HdnA/61ToGhBuCrsZOr1bXNAxRATDQJIbAq4+MDlCn+wufrUIj1sJQDRgD9xUFdDJNOJS2mFc8lQSMBDlJ3qM04i2ysh9Rbg1JvJ3ERZUS02sX6QNIvnPy3oMtsP748DlCJLA4e7SvQ6AaZai3WyCwmzKiZKGkJLQ/DKV3UAE2hXazs6EwEf4UurGtlkPzftmOPCoHAf0bhWj2YXFRSvN2n7dMIHVDQuTOSUPeE5y2hYmb0usKMWQs3Z/xLmw/bW/yRFtDXYYLoqE7PHux55Wh4OqTxS2PPET4fjOiAc0DzHjM/cfIsDeWXusWwLbdz3fe/Nl2qq244T0fl0B4MTy0MGKUZWJgRDZzXNF6R6bWPM84bRnlgTNjlBVu+nwpZCKljnF10bwE/ij5TiyeqF6KjPCZ1NlzIY6YAua9Z3k7PC3TzGpENArROYHfDYZiGbC+SSHB9Q7gsnnPV5BHv/XoYusbtZNuSgVdCTRI/cIzfAieYyRKfFY1eRAu0aEwR7eUlj+HaA8Js7fkQmEJ4/xw/8ErWl3n1AqvfpGfcXBb+bPKHuYggypgY= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b2JFQlhwSE5UYUhGYjErK01ybDNSZUc5VWFOM3Flc1RZRFRScTZJeTdTV0hF?= =?utf-8?B?M1YrbXp4aW04blU3MExOblZ1L0hqa1FUTlY2d1B0VjZZbG1qTGVjdlNZbTlx?= =?utf-8?B?YjgxUG9OLy9pRUhLY2s5eG9jYlJHOGZNdEIzekZpemdsOXdjY2pabm55MkEy?= =?utf-8?B?RGJrclFheFFUUXo3bElEOHVyRkRnekFJWjRTQ0R5bjZRRG5CaEV5UU9zR3o1?= =?utf-8?B?TXVJbHFLOXZCNGlhMWJxbFluRE9BbVAya01aOWtEdHhpY2Ezc2xQL2xCd3Z0?= =?utf-8?B?VmowOEtYb2lCVHREMU45azlKam15Um1aTG1JbGd3bk51RlhvYWJVbW9FTWxH?= =?utf-8?B?N1lYenhRdk1DbHREeVlLaEtHNndoMlJCQVpnQm1ZNmN4U1dLWGhMWXdCc2Ri?= =?utf-8?B?V0lIRWxCRkdacU53UEV5RXRFQXNpOExnczlPMm5BZlArQTdvMVZQTEtRRGhP?= =?utf-8?B?SU1ERWlXMUwxWno5ZzlRekIvRnRNV2phZWlxWEpvU2NCY3Fsc2d1VXc5enhQ?= =?utf-8?B?SWVvcXRzOGVxR3RETE9LaWp3K1JMYk9BQm1pZFpkcEY2R29ONkdlYS84cU5R?= =?utf-8?B?MXJtd2N6UTEzZnJTZkhqYVlib280cHZzVjEyYXpaemtvM3BNVmUxczBFOVVn?= =?utf-8?B?S2lpOWtOVW5SSDlpOFJUR2VFMk1ZeUNBa2szUFhIc0NyQktXcDZQTEowSWxu?= =?utf-8?B?cDVNV05UekhMZ0JYTFhOYnNNYVpYSkRFZG14TFZuVUpFbnZjbmVDczNpempJ?= =?utf-8?B?WWdvZXZDT0wzMUpsK3JXQ0taR0crb3lhbmFBYWlBc0xYZ0xyby9Fc09YZ09E?= =?utf-8?B?dzlkRCtad2NKZ2w3Wm1TL0FMTm5hR3MxNXBWMWdKMDZDZFo2V0VuOEVTeUps?= =?utf-8?B?VjFqQ1FJdjdQdWNTVXhlYXkyeTVOay9lOUhpY2VHZkt4Y2x3bHhudm1JcXNG?= =?utf-8?B?T2VxcnhCandRU2xyeUtVL2hmYWMvNklPU1ZOMHU2RFluaitoK3A0eFBoaWg5?= =?utf-8?B?Mko3VDQ1enQ3OWtCd0dtaTlBcThDOHh1eVFCNFBIK1JjS3BzU25uREgrN2NZ?= =?utf-8?B?RnRZbGg1M3ZWdVNNeHRVMmxNQ1FJSXpKQTBYVnRkUGJOam9WOHQ3b1RPNjFr?= =?utf-8?B?Z2MvbCszaUFXTEhoOHhxem03aHpQWFBpaFpldjNYRElZVmpMRjFtVkV1S3hE?= =?utf-8?B?T2RDTkx2VUVlc011R2J0QVZhZHhMblNJeGlrVXZmak03Ti9YZGtWR0FJem9O?= =?utf-8?B?VU5EaVdXc1dyT3o2Qlo2d3N0S1A2cHN4eTJLUytzNit3NG5ObDVRd3B6bDVs?= =?utf-8?B?QmpaOVI5TWtqTFo0N1hhWnVnSkFUb1A4a1NzRHkyS1hhZ1hOaHpnZGxxbWt2?= =?utf-8?B?MG42UnBuclgvdXdCOFhmbjlBU05IU3BLS1U2N2l5L1A5T0UvUWhmODkxM3ls?= =?utf-8?B?cHE3QkVlYkJMdlV6OVJxL1I4YWlURXRDYlJ3WXJndEFxSXdyVHJsVnptRUU3?= =?utf-8?B?UEdoZ2NNNWRseXkrcjlMUmtLR0VFUDl0UnVia1RRNkxGeGJIaWxCOExPSm80?= =?utf-8?B?MThmMWdDcm1mcmJjZ1Ivb3VJajZNeFFwMHYrQUdDaEdPNnk0cVRXTDNBeTFT?= =?utf-8?B?ODlGa0JESEp4MW1RVnhXZWtTZGc0OE9nVkNaeGlRNFV5alBpS3RVbEk3aHEz?= =?utf-8?B?TGhYYzRsMzJaT09vYWo4cEZnZzdwM0poU0xzcy9FMzhjdllkSk9HUWxmaSt3?= =?utf-8?B?emRRb2N0RWQ0cURia1YrNmMyaWNGSTN1QUFrN1V6SEsweVZTM1JaeGxkT2ZV?= =?utf-8?B?aDR6dlpnTDNuT21jWDF0VHNmejIydk5zc09ieEVTMEVFK2RNOXN0bVFaTXV3?= =?utf-8?B?ZUhEcWN3WHVzV1ZaZllRYjM2UDZvbXZDWXBiWXo2YjErQnBQc2FCcFZyQ1NQ?= =?utf-8?B?cU9RK3BxSUlXUWNXVEx4a3RpYU1tZThWWU96QUJaeEVZQzcxREcwV0hvTHFQ?= =?utf-8?B?S1dNWkFINm1UMmdsOGVYaS9HVkxsRFJxZ1NVMHR3bmdVUDV4azBPdHhNUWR2?= =?utf-8?B?bFRXSVNKZUlHNHBSaWp5VUNrd3A3b2RXTTBXRHV2SktheUl4eU1MbUNBbkJS?= =?utf-8?Q?XbPL2Jyl62dF8dttQjCaa35/y?= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: b31d8e5d-a9cc-4c0a-e086-08dbafd1a746 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2023 18:38:39.2014 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8uuflc9llpaViksHhEI9RtPrrkkutI80udIesCWSCy/JDqCmpNv304F9oC1lGZ2AEfN9EyPlSODQL/NCyjNuYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR84MB3689 X-OriginatorOrg: hpe.com X-Proofpoint-GUID: wQDoTrvO2JnO0UfXNJEgcOIg19nnaRUo X-Proofpoint-ORIG-GUID: wQDoTrvO2JnO0UfXNJEgcOIg19nnaRUo X-Proofpoint-UnRewURL: 3 URL's were un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 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,patrick.henz@hpe.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: nDr8xjLTERYWot3SfOGftzNPx7686176AA= 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=SxM+x6se; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=hpe.com (policy=none); arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") SSBkb27igJl0IGhhdmUgc3Ryb25nIG9waW5pb25zIGVpdGhlci4gSWYgd2Ugd291bGQgcHJlZmVy IHRvIGNhY2hlIHRoZSB2YWx1ZXMgcmV0dXJuZWQgYnkgR2V0UGVyZm9ybWFuY2VDb3VudGVyUHJv cGVydGllcyBJIHdvdWxkIGJlIG1vcmUgdGhhbiBoYXBweSB0byBkbyB0aGF0LiBJIGNvdWxkIGFs c28gbW9kaWZ5IFhoY0dldEVsYXBzZWRUaW1lIHRvIHJldHVybiB0aGUgZWxhcHNlZCB0aWNrcyBp bnN0ZWFkIG9mIHRoZSBlbGFwc2VkIHRpbWUgaW4gbmFubyBzZWNvbmRzLCB0aGUgZnVuY3Rpb25z IHRoYXQgY2FsbCBpbnRvIFhoY0dldEVsYXBlZFRpbWUvVGlja3MgY291bGQgY29udmVydCB0aGUg bWlsbGlzZWNvbmQgdGltZW91dCB2YWx1ZSBpbnRvIGEgdGljayBjb3VudCBhbmQgY29tcGFyZSB0 aGUgZWxhcHNlZCB0aWNrcyBhZ2FpbnN0IHRoYXQsIHRoaXMgd291bGQgcmVtb3ZlIHRoZSByZWxp YW5jZSBvbiBHZXRUaW1lSW5OYW5vU2Vjb25kLiBEb2VzIHRoYXQgc291bmQgbW9yZSBhcHByb3By aWF0ZT8NCg0KVGhhbmtzLA0KUGF0cmljayBIZW56DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQpGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9u IEJlaGFsZiBPZiBXdSwgSGFvIEENClNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgNywgMjAyMyAy OjQ4IEFNDQpUbzogTWlrZSBNYXNsZW5raW4gPG1pa2UubWFzbGVua2luQGdtYWlsLmNvbT47IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogSGVueiwgUGF0cmljayA8cGF0cmljay5oZW56QGhwZS5j b20+DQpTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL1ho Y2lEeGU6IFVzZSBQZXJmb3JtYW5jZSBUaW1lciBmb3IgWEhDSSBUaW1lb3V0cw0KDQpJIGRvIG5v dCBoYXZlIHN0cm9uZyBvcGluaW9uIG9uIHRoaXMgY29uc2lkZXJpbmcgaXQgaXMgYW4gSU8gZHJp dmVyLg0KVGhlIGNhbGwgb2YgR2V0VGltZUluTmFub1NlY29uZCgpIGlzIGFsc28gbGlrZWx5IHRv IGludm9rZSBHZXRQZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzKCkgY2FsbC4NCg0KSSB3aWxs IGxldCB0aGUgcGF0Y2ggb3duZXIgdG8gZGVjaWRlIG9uIHRoZSBvcGVuIHJhaXNlZCBiZWxvdy4N Cg0KQmVzdCBSZWdhcmRzLA0KSGFvIFd1DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogTWlrZSBNYXNsZW5raW4gPG1pa2UubWFzbGVua2luQGdtYWlsLmNvbT4NCj4gU2Vu dDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDIzIDM6MzYgUE0NCj4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvOyBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gQ2M6IEhlbnosIFBh dHJpY2sgPHBhdHJpY2suaGVuekBocGUuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxd IFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL1hoY2lEeGU6IFVzZSANCj4gUGVyZm9ybWFuY2UgVGlt ZXIgZm9yIFhIQ0kgVGltZW91dHMNCj4gDQo+IEhlbGxvIEhhbyBXdSwNCj4gDQo+IElzbid0IEdl dFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKCZTdGFydFZhbHVlLCAmRW5kVmFsdWUpIGNh bGwgDQo+IHRvbyAiaGVhdnkiIGZvciBYSENJIHBhdGhzPw0KPiBNYXkgYmUgaXQncyBiZXR0ZXIg dG8gY2FjaGUgdGltZXIgZGlyZWN0aW9uIG9uY2U/DQo+IEknbSBhc2tpbmcgaW4gYSBjb250ZXh0 IG9mIFBjQXRDaGlwc2V0UGtnL0xpYnJhcnkvQWNwaVRpbWVyTGliDQo+IGluc3RhbmNlIHVzZWQg YnkgYSBudW1iZXIgb2YgSW50ZWwncyBwbGF0Zm9ybSBpbiBlZGstcGxhdGZvcm1zLg0KPiBGb3Ig dGhpcyAgbGlicmFyeSBHZXRQZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzIGZpbmFsbHkgY2Fs bHMgDQo+IEludGVybmFsQ2FsY3VsYXRlVHNjRnJlcXVlbmN5LCB0aGF0IGlzbid0IHNpbXBsZS4N Cj4gDQo+IFJlZ2FyZHMsDQo+IE1pa2UNCj4gDQo+IE9uIFRodSwgU2VwIDcsIDIwMjMgYXQgNDoy N+KAr0FNIFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPiB3cm90ZToNCj4gPg0KPiA+IFNv cnJ5IGZvciB0aGUgbGF0ZSByZXNwb25zZS4NCj4gPiBSZXZpZXdlZC1ieTogSGFvIEEgV3UgPGhh by5hLnd1QGludGVsLmNvbT4NCj4gPg0KPiA+IEJlc3QgUmVnYXJkcywNCj4gPiBIYW8gV3UNCj4g Pg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IGRldmVsQGVk azIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIA0KPiA+ID4g SGVueiwgUGF0cmljaw0KPiA+ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDIzIDQ6 MzcgQU0NCj4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gU3ViamVjdDogUmU6 IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjJdIE1kZU1vZHVsZVBrZy9YaGNpRHhlOiBVc2UgDQo+ID4g PiBQZXJmb3JtYW5jZSBUaW1lciBmb3IgWEhDSSBUaW1lb3V0cw0KPiA+ID4NCj4gPiA+IEkgc2Vu dCB0aGlzIHBhdGNoIG91dCBhIGZldyB3ZWVrcyBhZ28gbm93IGJ1dCBoYXZlbid0IHNlZW4gYSAN Cj4gPiA+IHJlcGx5LCBqdXN0IGNoZWNraW5nIGluIHRvIG1ha2Ugc3VyZSBpdCBkaWRuJ3QgZ2V0 IG1pc3NlZC4NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPiBQYXRyaWNrIEhlbnoNCj4gPiA+ DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogZGV2ZWxAZWRr Mi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgDQo+ID4gPiBI ZW56LCBQYXRyaWNrDQo+ID4gPiBTZW50OiBNb25kYXksIEF1Z3VzdCAxNCwgMjAyMyAxMDo1MiBB TQ0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogSGVueiwgUGF0cmlj ayA8cGF0cmljay5oZW56QGhwZS5jb20+DQo+ID4gPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BB VENIIHYyXSBNZGVNb2R1bGVQa2cvWGhjaUR4ZTogVXNlIA0KPiA+ID4gUGVyZm9ybWFuY2UgVGlt ZXIgZm9yIFhIQ0kgVGltZW91dHMNCj4gPiA+DQo+ID4gPiBSRUY6SU5WQUxJRCBVUkkgUkVNT1ZF RA0KPiA+ID4gd19idWcuY2dpP2lkPTI5NDhfXzshIU5weFIhbVpSdU1CS1BkZVItVXZZN3NyOHRX Tk9mSVFEZTBXX1RXM3EtSzhNDQo+ID4gPiB0Tk4xY3lueVJaMV9ibHM4b3NhRXFGV3VwRm1qUjI5 WF96dncwWngxWSQNCj4gPiA+DQo+ID4gPiBYaGNpRHhlIHVzZXMgdGhlIHRpbWVyIGZ1bmN0aW9u YWxpdHkgcHJvdmlkZWQgYnkgdGhlIGJvb3Qgc2VydmljZXMgDQo+ID4gPiB0YWJsZSB0byBkZXRl Y3QgdGltZW91dCBjb25kaXRpb25zLiBUaGlzIGJyZWFrcyB0aGUgZHJpdmVyJ3MgDQo+ID4gPiBF eGl0Qm9vdFNlcnZpY2VzIGNhbGwgYmFjaywgYXMgQ29yZUV4aXRCb290U2VydmljZXMgaGFsdHMg dGhlIA0KPiA+ID4gdGltZXIgYmVmb3JlIHNpZ25hbGluZyB0aGUgRXhpdEJvb3RTZXJ2aWNlcyBl dmVudC4gSWYgdGhlIGhvc3QgDQo+ID4gPiBjb250cm9sbGVyIGZhaWxzIHRvIGhhbHQgaW4gdGhl IGNhbGwgYmFjaywgdGhlIHRpbWVvdXQgY29uZGl0aW9uIA0KPiA+ID4gd2lsbCBuZXZlciBvY2N1 ciBhbmQgdGhlIGJvb3QgZ2V0cyBzdHVjayBpbiBhbiBpbmRlZmluaXRlIHNwaW4gDQo+ID4gPiBs b29wLiBVc2UgdGhlIGZyZWUgcnVubmluZyB0aW1lciBwcm92aWRlZCBieSBUaW1lckxpYiB0byBj YWxjdWxhdGUgDQo+ID4gPiB0aW1lb3V0cywgYXZvaWRpbmcNCj4gdGhlIHBvdGVudGlhbCBoYW5n Lg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdHJpY2sgSGVueiA8cGF0cmljay5oZW56 QGhwZS5jb20+DQo+ID4gPiBSZXZpZXdlZC1ieToNCj4gPiA+IC0tLQ0KPiA+ID4gIE1kZU1vZHVs ZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jICAgICAgfCA1NiArKysrKysrKysrKysrKysrKysr DQo+ID4gPiAgTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmggICAgICB8IDIyICsr KysrKysrDQo+ID4gPiAgTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZiB8 ICAyICsNCj4gPiA+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lSZWcuYyAgIHwg NjcgKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9Y aGNpRHhlL1hoY2lTY2hlZC5jIHwgNjgNCj4gPiA+ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLQ0K PiA+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDg2IGRlbGV0aW9ucygt KQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhl L1hoY2kuYw0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuYw0KPiA+ ID4gaW5kZXggNjI2ODJkZDI3Yy4uMWRjYmUyMDUxMiAxMDA2NDQNCj4gPiA+IC0tLSBhL01kZU1v ZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jDQo+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cv QnVzL1BjaS9YaGNpRHhlL1hoY2kuYw0KPiA+ID4gQEAgLTEsNiArMSw3IEBADQo+ID4gPiAgLyoq IEBmaWxlDQo+ID4gPiAgICBUaGUgWEhDSSBjb250cm9sbGVyIGRyaXZlci4NCj4gPiA+DQo+ID4g PiArKEMpIENvcHlyaWdodCAyMDIzIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3Bt ZW50IExQPEJSPg0KPiA+ID4gIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjIsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIA0KPiA+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPg0KPiA+ID4gQEAgLTIy OTQsMyArMjI5NSw1OCBAQCBYaGNEcml2ZXJCaW5kaW5nU3RvcCAoDQo+ID4gPg0KPiA+ID4gICAg cmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4gIH0NCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ ICsgIENvbXB1dGVzIGFuZCByZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUgaW4gbmFub3NlY29uZHMg c2luY2UNCj4gPiA+ICsgIFByZXZpb3VzVGljay4gVGhlIHZhbHVlIG9mIFByZXZpb3VzVGljayBp cyBvdmVyd3JpdHRlbiB3aXRoIHRoZQ0KPiA+ID4gKyAgY3VycmVudCBwZXJmb3JtYW5jZSBjb3Vu dGVyIHZhbHVlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtICBQcmV2aW91c1RpY2sgICAgUG9p bnRlciB0byBQcmV2aW91c1RpY2sgY291bnQuDQo+ID4gPiArICBAcmV0dXJuIFRoZSBlbGFwc2Vk IHRpbWUgaW4gbmFub3NlY29uZHMgc2luY2UgUHJldmlvdXNDb3VudC4NCj4gPiA+ICsgICAgICAg ICAgUHJldmlvdXNDb3VudCBpcyBvdmVyd3JpdHRlbiB3aXRoIHRoZSBjdXJyZW50IHBlcmZvcm1h bmNlDQo+ID4gPiArICAgICAgICAgIGNvdW50ZXIgdmFsdWUuDQo+ID4gPiArKiovDQo+ID4gPiAr VUlOVDY0DQo+ID4gPiArWGhjR2V0RWxhcHNlZFRpbWUgKA0KPiA+ID4gKyAgSU4gT1VUIFVJTlQ2 NCAgKlByZXZpb3VzVGljaw0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIFVJTlQ2NCAg U3RhcnRWYWx1ZTsNCj4gPiA+ICsgIFVJTlQ2NCAgRW5kVmFsdWU7DQo+ID4gPiArICBVSU5UNjQg IEN1cnJlbnRUaWNrOw0KPiA+ID4gKyAgVUlOVDY0ICBEZWx0YTsNCj4gPiA+ICsNCj4gPiA+ICsg IEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKCZTdGFydFZhbHVlLCAmRW5kVmFsdWUp Ow0KPiA+ID4gKw0KPiA+ID4gKyAgQ3VycmVudFRpY2sgPSBHZXRQZXJmb3JtYW5jZUNvdW50ZXIg KCk7DQo+ID4gPiArDQo+ID4gPiArICAvLw0KPiA+ID4gKyAgLy8gRGV0ZXJtaW5lIGlmIHRoZSBj b3VudGVyIGlzIGNvdW50aW5nIHVwIG9yIGRvd24gIC8vICBpZiANCj4gPiA+ICsgKFN0YXJ0VmFs dWUgPCBFbmRWYWx1ZSkgew0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICAvLyBDb3VudGVyIGNv dW50cyB1cHdhcmRzLCBjaGVjayBmb3IgYW4gb3ZlcmZsb3cgY29uZGl0aW9uDQo+ID4gPiArICAg IC8vDQo+ID4gPiArICAgIGlmICgqUHJldmlvdXNUaWNrID4gQ3VycmVudFRpY2spIHsNCj4gPiA+ ICsgICAgICBEZWx0YSA9IChFbmRWYWx1ZSAtICpQcmV2aW91c1RpY2spICsgQ3VycmVudFRpY2s7 DQo+ID4gPiArICAgIH0gZWxzZSB7DQo+ID4gPiArICAgICAgRGVsdGEgPSBDdXJyZW50VGljayAt ICpQcmV2aW91c1RpY2s7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsgIH0gZWxzZSB7DQo+ID4gPiAr ICAgIC8vDQo+ID4gPiArICAgIC8vIENvdW50ZXIgY291bnRzIGRvd253YXJkcywgY2hlY2sgZm9y IGFuIHVuZGVyZmxvdyBjb25kaXRpb24NCj4gPiA+ICsgICAgLy8NCj4gPiA+ICsgICAgaWYgKCpQ cmV2aW91c1RpY2sgPCBDdXJyZW50VGljaykgew0KPiA+ID4gKyAgICAgIERlbHRhID0gKFN0YXJ0 VmFsdWUgLSBDdXJyZW50VGljaykgKyAqUHJldmlvdXNUaWNrOw0KPiA+ID4gKyAgICB9IGVsc2Ug ew0KPiA+ID4gKyAgICAgIERlbHRhID0gKlByZXZpb3VzVGljayAtIEN1cnJlbnRUaWNrOw0KPiA+ ID4gKyAgICB9DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICAvLw0KPiA+ID4gKyAgLy8g U2V0IFByZXZpb3VzVGljayB0byBDdXJyZW50VGljayAgLy8gICpQcmV2aW91c1RpY2sgPSANCj4g PiA+ICsgQ3VycmVudFRpY2s7DQo+ID4gPiArDQo+ID4gPiArICByZXR1cm4gR2V0VGltZUluTmFu b1NlY29uZCAoRGVsdGEpOyB9DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9Q Y2kvWGhjaUR4ZS9YaGNpLmgNCj4gPiA+IGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9Y aGNpLmgNCj4gPiA+IGluZGV4IGNhMjIzYmQyMGMuLjc3ZmViNjY2NDcgMTAwNjQ0DQo+ID4gPiAt LS0gYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuaA0KPiA+ID4gKysrIGIvTWRl TW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmgNCj4gPiA+IEBAIC0yLDYgKzIsNyBAQA0K PiA+ID4NCj4gPiA+ICAgIFByb3ZpZGVzIHNvbWUgZGF0YSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMg dXNlZCBieSB0aGUgWEhDSSBob3N0IA0KPiA+ID4gY29udHJvbGxlciBkcml2ZXIuDQo+ID4gPg0K PiA+ID4gKyhDKSBDb3B5cmlnaHQgMjAyMyBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZl bG9wbWVudCBMUDxCUj4NCj4gPiA+ICBDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDE3LCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gPiA+IHJlc2VydmVkLjxCUj4gQ29weXJpZ2h0IChj KSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uPEJSPg0KPiA+ID4gIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50IEBAIC0yNiw2ICsyNyw3IEBADQo+ID4gPiBTUERYLQ0K PiA+ID4gTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50ICAjaW5jbHVkZSAN Cj4gPiA+IDxMaWJyYXJ5L1VlZmlMaWIuaD4gICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+ ICAjaW5jbHVkZSANCj4gPiA+IDxMaWJyYXJ5L1JlcG9ydFN0YXR1c0NvZGVMaWIuaD4NCj4gPiA+ ICsjaW5jbHVkZSA8TGlicmFyeS9UaW1lckxpYi5oPg0KPiA+ID4NCj4gPiA+ICAjaW5jbHVkZSA8 SW5kdXN0cnlTdGFuZGFyZC9QY2kuaD4NCj4gPiA+DQo+ID4gPiBAQCAtMzcsNiArMzksMTAgQEAg dHlwZWRlZiBzdHJ1Y3QgX1VTQl9ERVZfQ09OVEVYVA0KPiBVU0JfREVWX0NPTlRFWFQ7DQo+ID4g PiAjaW5jbHVkZSAiQ29tcG9uZW50TmFtZS5oIg0KPiA+ID4gICNpbmNsdWRlICJVc2JIY01lbS5o Ig0KPiA+ID4NCj4gPiA+ICsvLw0KPiA+ID4gKy8vIENvbnZlcnRzIGEgY291bnQgZnJvbSBtaWNy b3NlY29uZHMgdG8gbmFub3NlY29uZHMgLy8gI2RlZmluZQ0KPiA+ID4gK1hIQ19NSUNST1NFQ09O RF9UT19OQU5PU0VDT05EKFRpbWUpICAoKFVJTlQ2NCkoVGltZSkgKiAxMDAwKQ0KPiA+ID4gIC8v DQo+ID4gPiAgLy8gVGhlIHVuaXQgaXMgbWljcm9zZWNvbmQsIHNldHRpbmcgaXQgYXMgMXVzLg0K PiA+ID4gIC8vDQo+ID4gPiBAQCAtNzIwLDQgKzcyNiwyMCBAQCBYaGNBc3luY0lzb2Nocm9ub3Vz VHJhbnNmZXIgKA0KPiA+ID4gICAgSU4gICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICpDb250ZXh0DQo+ID4gPiAgICApOw0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+ICsg IENvbXB1dGVzIGFuZCByZXR1cm5zIHRoZSBlbGFwc2VkIHRpbWUgaW4gbmFub3NlY29uZHMgc2lu Y2UNCj4gPiA+ICsgIFByZXZpb3VzVGljay4gVGhlIHZhbHVlIG9mIFByZXZpb3VzVGljayBpcyBv dmVyd3JpdHRlbiB3aXRoIHRoZQ0KPiA+ID4gKyAgY3VycmVudCBwZXJmb3JtYW5jZSBjb3VudGVy IHZhbHVlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtICBQcmV2aW91c1RpY2sgICAgUG9pbnRl ciB0byBQcmV2aW91c1RpY2sgY291bnQuDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLg0KPiA+ID4gKyAgQHJldHVybiBUaGUgZWxh cHNlZCB0aW1lIGluIG5hbm9zZWNvbmRzIHNpbmNlIFByZXZpb3VzQ291bnQuDQo+ID4gPiArICAg ICAgICAgIFByZXZpb3VzQ291bnQgaXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgY3VycmVudCBwZXJm b3JtYW5jZQ0KPiA+ID4gKyAgICAgICAgICBjb3VudGVyIHZhbHVlLg0KPiA+ID4gKyoqLw0KPiA+ ID4gK1VJTlQ2NA0KPiA+ID4gK1hoY0dldEVsYXBzZWRUaW1lICgNCj4gPiA+ICsgIElOIE9VVCBV SU5UNjQgICpQcmV2aW91c1RpY2sNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiAgI2VuZGlm DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhl LmluZg0KPiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lEeGUuaW5mDQo+ ID4gPiBpbmRleCA1ODY1ZDg2ODIyLi4xOGVmODc5MTZhIDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRl TW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0KPiA+ID4gKysrIGIvTWRlTW9k dWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0KPiA+ID4gQEAgLTMsNiArMyw3IEBA DQo+ID4gPiAgIyAgSXQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlcyBvZiBtb25pdG9yaW5nIHRo ZSBzdGF0dXMgb2YgYWxsIA0KPiA+ID4gcG9ydHMgYW5kIHRyYW5zZmVycmluZyAgIyAgQ29udHJv bCwgQnVsaywgSW50ZXJydXB0IGFuZCANCj4gPiA+IElzb2Nocm9ub3VzIHJlcXVlc3RzIHRvIHRo b3NlIGF0dGFjaGVkIHVzYiBMUy9GUy9IUy9TUyBkZXZpY2VzLg0KPiA+ID4gICMNCj4gPiA+ICsj ICAoQykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1l bnQgDQo+ID4gPiArTFA8QlI+DQo+ID4gPiAgIyAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAxOCwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ID4gPiByZXNlcnZlZC48QlI+ICAjICAj DQo+ID4gPiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCBAQCAt NTQsNiArNTUsNyBAQA0KPiA+ID4gICAgQmFzZU1lbW9yeUxpYg0KPiA+ID4gICAgRGVidWdMaWIN Cj4gPiA+ICAgIFJlcG9ydFN0YXR1c0NvZGVMaWINCj4gPiA+ICsgIFRpbWVyTGliDQo+ID4gPg0K PiA+ID4gIFtHdWlkc10NCj4gPiA+ICAgIGdFZmlFdmVudEV4aXRCb290U2VydmljZXNHdWlkICAg ICAgICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMNCj4gPiA+IEV2ZW50DQo+ID4g PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4g PiA+IGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+IGluZGV4 IDU3MDBmYzVmYjguLjA3ZTU3NzcyYjYgMTAwNjQ0DQo+ID4gPiAtLS0gYS9NZGVNb2R1bGVQa2cv QnVzL1BjaS9YaGNpRHhlL1hoY2lSZWcuYw0KPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9Q Y2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+IEBAIC0yLDYgKzIsNyBAQA0KPiA+ID4NCj4gPiA+ ICAgIFRoZSBYSENJIHJlZ2lzdGVyIG9wZXJhdGlvbiByb3V0aW5lcy4NCj4gPiA+DQo+ID4gPiAr KEMpIENvcHlyaWdodCAyMDIzIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50 IExQPEJSPg0KPiA+ID4gIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMTcsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIA0KPiA+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPg0KPiA+ID4gQEAgLTQxNywx NSArNDE4LDE0IEBAIFhoY0NsZWFyT3BSZWdCaXQgKA0KPiA+ID4gICAgV2FpdCB0aGUgb3BlcmF0 aW9uIHJlZ2lzdGVyJ3MgYml0IGFzIHNwZWNpZmllZCBieSBCaXQNCj4gPiA+ICAgIHRvIGJlY29t ZSBzZXQgKG9yIGNsZWFyKS4NCj4gPiA+DQo+ID4gPiAtICBAcGFyYW0gIFhoYyAgICAgICAgICAg ICAgICAgICAgVGhlIFhIQ0kgSW5zdGFuY2UuDQo+ID4gPiAtICBAcGFyYW0gIE9mZnNldCAgICAg ICAgICAgICAgICAgVGhlIG9mZnNldCBvZiB0aGUgb3BlcmF0aW9uIHJlZ2lzdGVyLg0KPiA+ID4g LSAgQHBhcmFtICBCaXQgICAgICAgICAgICAgICAgICAgIFRoZSBiaXQgb2YgdGhlIHJlZ2lzdGVy IHRvIHdhaXQgZm9yLg0KPiA+ID4gLSAgQHBhcmFtICBXYWl0VG9TZXQgICAgICAgICAgICAgIFdh aXQgdGhlIGJpdCB0byBzZXQgb3IgY2xlYXIuDQo+ID4gPiAtICBAcGFyYW0gIFRpbWVvdXQgICAg ICAgICAgICAgICAgVGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgYWJvcnQgKGluIG1pbGxpc2Vjb25k LA0KPiA+ID4gbXMpLg0KPiA+ID4gKyAgQHBhcmFtICBYaGMgICAgICAgICAgVGhlIFhIQ0kgSW5z dGFuY2UuDQo+ID4gPiArICBAcGFyYW0gIE9mZnNldCAgICAgICBUaGUgb2Zmc2V0IG9mIHRoZSBv cGVyYXRpb24gcmVnaXN0ZXIuDQo+ID4gPiArICBAcGFyYW0gIEJpdCAgICAgICAgICBUaGUgYml0 IG9mIHRoZSByZWdpc3RlciB0byB3YWl0IGZvci4NCj4gPiA+ICsgIEBwYXJhbSAgV2FpdFRvU2V0 ICAgIFdhaXQgdGhlIGJpdCB0byBzZXQgb3IgY2xlYXIuDQo+ID4gPiArICBAcGFyYW0gIFRpbWVv dXQgICAgICBUaGUgdGltZSB0byB3YWl0IGJlZm9yZSBhYm9ydCAoaW4gbWlsbGlzZWNvbmQsIG1z KS4NCj4gPiA+DQo+ID4gPiAtICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIGJp dCBzdWNjZXNzZnVsbHkgY2hhbmdlZCBieSBob3N0DQo+IGNvbnRyb2xsZXIuDQo+ID4gPiAtICBA cmV0dmFsIEVGSV9USU1FT1VUICAgICAgICAgICAgVGhlIHRpbWUgb3V0IG9jY3VycmVkLg0KPiA+ ID4gLSAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgIE1lbW9yeSBmb3IgdGhlIHRpbWVy IGV2ZW50IGNvdWxkDQo+IG5vdA0KPiA+ID4gYmUgYWxsb2NhdGVkLg0KPiA+ID4gKyAgQHJldHZh bCBFRklfU1VDQ0VTUyAgVGhlIGJpdCBzdWNjZXNzZnVsbHkgY2hhbmdlZCBieSBob3N0IGNvbnRy b2xsZXIuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9USU1FT1VUICBUaGUgdGltZSBvdXQgb2NjdXJy ZWQuDQo+ID4gPg0KPiA+ID4gICoqLw0KPiA+ID4gIEVGSV9TVEFUVVMNCj4gPiA+IEBAIC00Mzcs NTQgKzQzNywzNSBAQCBYaGNXYWl0T3BSZWdCaXQgKA0KPiA+ID4gICAgSU4gVUlOVDMyICAgICAg ICAgICAgIFRpbWVvdXQNCj4gPiA+ICAgICkNCj4gPiA+ICB7DQo+ID4gPiAtICBFRklfU1RBVFVT ICBTdGF0dXM7DQo+ID4gPiAtICBFRklfRVZFTlQgICBUaW1lb3V0RXZlbnQ7DQo+ID4gPiAtDQo+ ID4gPiAtICBUaW1lb3V0RXZlbnQgPSBOVUxMOw0KPiA+ID4gKyAgVUlOVDY0ICBUaW1lb3V0VGlt ZTsNCj4gPiA+ICsgIFVJTlQ2NCAgRWxhcHNlZFRpbWU7DQo+ID4gPiArICBVSU5UNjQgIFRpbWVE ZWx0YTsNCj4gPiA+ICsgIFVJTlQ2NCAgQ3VycmVudFRpY2s7DQo+ID4gPg0KPiA+ID4gICAgaWYg KFRpbWVvdXQgPT0gMCkgew0KPiA+ID4gICAgICByZXR1cm4gRUZJX1RJTUVPVVQ7DQo+ID4gPiAg ICB9DQo+ID4gPg0KPiA+ID4gLSAgU3RhdHVzID0gZ0JTLT5DcmVhdGVFdmVudCAoDQo+ID4gPiAt ICAgICAgICAgICAgICAgICAgRVZUX1RJTUVSLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgIFRQ TF9DQUxMQkFDSywNCj4gPiA+IC0gICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+ID4gLSAgICAg ICAgICAgICAgICAgIE5VTEwsDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgJlRpbWVvdXRFdmVu dA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiAtDQo+ID4gPiAtICBpZiAoRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiAtICAgIGdvdG8gRE9ORTsNCj4gPiA+IC0gIH0NCj4g PiA+IC0NCj4gPiA+IC0gIFN0YXR1cyA9IGdCUy0+U2V0VGltZXIgKA0KPiA+ID4gLSAgICAgICAg ICAgICAgICAgIFRpbWVvdXRFdmVudCwNCj4gPiA+IC0gICAgICAgICAgICAgICAgICBUaW1lclJl bGF0aXZlLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgIEVGSV9USU1FUl9QRVJJT0RfTUlMTElT RUNPTkRTIChUaW1lb3V0KQ0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiAtDQo+ ID4gPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiAtICAgIGdvdG8gRE9ORTsN Cj4gPiA+IC0gIH0NCj4gPiA+ICsgIFRpbWVvdXRUaW1lID0gWEhDX01JQ1JPU0VDT05EX1RPX05B Tk9TRUNPTkQNCj4gKChVSU5UNjQpVGltZW91dA0KPiA+ID4gKg0KPiA+ID4gKyBYSENfMV9NSUxM SVNFQ09ORCk7ICBFbGFwc2VkVGltZSA9IDA7ICBDdXJyZW50VGljayA9IA0KPiA+ID4gKyBHZXRQ ZXJmb3JtYW5jZUNvdW50ZXIgKCk7DQo+ID4gPg0KPiA+ID4gICAgZG8gew0KPiA+ID4gICAgICBp ZiAoWEhDX1JFR19CSVRfSVNfU0VUIChYaGMsIE9mZnNldCwgQml0KSA9PSBXYWl0VG9TZXQpIHsN Cj4gPiA+IC0gICAgICBTdGF0dXMgPSBFRklfU1VDQ0VTUzsNCj4gPiA+IC0gICAgICBnb3RvIERP TkU7DQo+ID4gPiArICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4gICAgICB9DQo+ID4g Pg0KPiA+ID4gICAgICBnQlMtPlN0YWxsIChYSENfMV9NSUNST1NFQ09ORCk7DQo+ID4gPiAtICB9 IHdoaWxlIChFRklfRVJST1IgKGdCUy0+Q2hlY2tFdmVudCAoVGltZW91dEV2ZW50KSkpOw0KPiA+ ID4gLQ0KPiA+ID4gLSAgU3RhdHVzID0gRUZJX1RJTUVPVVQ7DQo+ID4gPiArICAgIFRpbWVEZWx0 YSA9IFhoY0dldEVsYXBzZWRUaW1lICgmQ3VycmVudFRpY2spOw0KPiA+ID4gKyAgICAvLyBFbnN1 cmUgdGhhdCBFbGFwc2VkVGltZSBpcyBhbHdheXMgaW5jcmVtZW50ZWQgdG8gYXZvaWQgDQo+ID4g PiArIGluZGVmaW5pdGUNCj4gPiA+IGhhbmdzDQo+ID4gPiArICAgIGlmIChUaW1lRGVsdGEgPT0g MCkgew0KPiA+ID4gKyAgICAgIFRpbWVEZWx0YSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VD T05EDQo+ID4gPiAoWEhDXzFfTUlDUk9TRUNPTkQpOw0KPiA+ID4gKyAgICB9DQo+ID4gPg0KPiA+ ID4gLURPTkU6DQo+ID4gPiAtICBpZiAoVGltZW91dEV2ZW50ICE9IE5VTEwpIHsNCj4gPiA+IC0g ICAgZ0JTLT5DbG9zZUV2ZW50IChUaW1lb3V0RXZlbnQpOw0KPiA+ID4gLSAgfQ0KPiA+ID4gKyAg ICBFbGFwc2VkVGltZSArPSBUaW1lRGVsdGE7DQo+ID4gPiArICB9IHdoaWxlIChFbGFwc2VkVGlt ZSA8IFRpbWVvdXRUaW1lKTsNCj4gPiA+DQo+ID4gPiAtICByZXR1cm4gU3RhdHVzOw0KPiA+ID4g KyAgcmV0dXJuIEVGSV9USU1FT1VUOw0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4g PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYw0K PiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lTY2hlZC5jDQo+ID4gPiBp bmRleCA1MzQyMWU2NGE4Li43ZDRiN2E3NjlkIDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRlTW9kdWxl UGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYw0KPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtn L0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYw0KPiA+ID4gQEAgLTIsNiArMiw3IEBADQo+ID4g Pg0KPiA+ID4gICAgWEhDSSB0cmFuc2ZlciBzY2hlZHVsaW5nIHJvdXRpbmVzLg0KPiA+ID4NCj4g PiA+ICsoQykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxv cG1lbnQgTFA8QlI+DQo+ID4gPiAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAyMCwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgDQo+ID4gPiByZXNlcnZlZC48QlI+IENvcHlyaWdodCAoYykg TWljcm9zb2Z0IENvcnBvcmF0aW9uLjxCUj4gIENvcHlyaWdodA0KPiA+ID4gKEMpIDIwMjIgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gQEAgDQo+ ID4gPiAtDQo+IDEyNzYsMTUgKzEyNzcsMTQgQEAgRVhJVDoNCj4gPiA+ICAvKioNCj4gPiA+ICAg IEV4ZWN1dGUgdGhlIHRyYW5zZmVyIGJ5IHBvbGxpbmcgdGhlIFVSQi4gVGhpcyBpcyBhIHN5bmNo cm9ub3VzIG9wZXJhdGlvbi4NCj4gPiA+DQo+ID4gPiAtICBAcGFyYW0gIFhoYyAgICAgICAgICAg ICAgICAgICAgVGhlIFhIQ0kgSW5zdGFuY2UuDQo+ID4gPiAtICBAcGFyYW0gIENtZFRyYW5zZmVy ICAgICAgICAgICAgVGhlIGV4ZWN1dGVkIFVSQiBpcyBmb3IgY21kIHRyYW5zZmVyIG9yDQo+IG5v dC4NCj4gPiA+IC0gIEBwYXJhbSAgVXJiICAgICAgICAgICAgICAgICAgICBUaGUgVVJCIHRvIGV4 ZWN1dGUuDQo+ID4gPiAtICBAcGFyYW0gIFRpbWVvdXQgICAgICAgICAgICAgICAgVGhlIHRpbWUg dG8gd2FpdCBiZWZvcmUgYWJvcnQsIGluIG1pbGxpc2Vjb25kLg0KPiA+ID4gKyAgQHBhcmFtICBY aGMgICAgICAgICAgICAgICBUaGUgWEhDSSBJbnN0YW5jZS4NCj4gPiA+ICsgIEBwYXJhbSAgQ21k VHJhbnNmZXIgICAgICAgVGhlIGV4ZWN1dGVkIFVSQiBpcyBmb3IgY21kIHRyYW5zZmVyIG9yIG5v dC4NCj4gPiA+ICsgIEBwYXJhbSAgVXJiICAgICAgICAgICAgICAgVGhlIFVSQiB0byBleGVjdXRl Lg0KPiA+ID4gKyAgQHBhcmFtICBUaW1lb3V0ICAgICAgICAgICBUaGUgdGltZSB0byB3YWl0IGJl Zm9yZSBhYm9ydCwgaW4gbWlsbGlzZWNvbmQuDQo+ID4gPg0KPiA+ID4gLSAgQHJldHVybiBFRklf REVWSUNFX0VSUk9SICAgICAgIFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRyYW5zZmVyIGVy cm9yLg0KPiA+ID4gLSAgQHJldHVybiBFRklfVElNRU9VVCAgICAgICAgICAgIFRoZSB0cmFuc2Zl ciBmYWlsZWQgZHVlIHRvIHRpbWUgb3V0Lg0KPiA+ID4gLSAgQHJldHVybiBFRklfU1VDQ0VTUyAg ICAgICAgICAgIFRoZSB0cmFuc2ZlciBmaW5pc2hlZCBPSy4NCj4gPiA+IC0gIEByZXR2YWwgRUZJ X09VVF9PRl9SRVNPVVJDRVMgICBNZW1vcnkgZm9yIHRoZSB0aW1lciBldmVudCBjb3VsZA0KPiBu b3QNCj4gPiA+IGJlIGFsbG9jYXRlZC4NCj4gPiA+ICsgIEByZXR1cm4gRUZJX0RFVklDRV9FUlJP UiAgVGhlIHRyYW5zZmVyIGZhaWxlZCBkdWUgdG8gdHJhbnNmZXIgZXJyb3IuDQo+ID4gPiArICBA cmV0dXJuIEVGSV9USU1FT1VUICAgICAgIFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRpbWUg b3V0Lg0KPiA+ID4gKyAgQHJldHVybiBFRklfU1VDQ0VTUyAgICAgICBUaGUgdHJhbnNmZXIgZmlu aXNoZWQgT0suDQo+ID4gPg0KPiA+ID4gICoqLw0KPiA+ID4gIEVGSV9TVEFUVVMNCj4gPiA+IEBA IC0xMjk5LDEyICsxMjk5LDE0IEBAIFhoY0V4ZWNUcmFuc2ZlciAoDQo+ID4gPiAgICBVSU5UOCAg ICAgICBTbG90SWQ7DQo+ID4gPiAgICBVSU5UOCAgICAgICBEY2k7DQo+ID4gPiAgICBCT09MRUFO ICAgICBGaW5pc2hlZDsNCj4gPiA+IC0gIEVGSV9FVkVOVCAgIFRpbWVvdXRFdmVudDsNCj4gPiA+ ICsgIFVJTlQ2NCAgICAgIFRpbWVvdXRUaW1lOw0KPiA+ID4gKyAgVUlOVDY0ICAgICAgRWxhcHNl ZFRpbWU7DQo+ID4gPiArICBVSU5UNjQgICAgICBUaW1lRGVsdGE7DQo+ID4gPiArICBVSU5UNjQg ICAgICBDdXJyZW50VGljazsNCj4gPiA+ICAgIEJPT0xFQU4gICAgIEluZGVmaW5pdGVUaW1lb3V0 Ow0KPiA+ID4NCj4gPiA+ICAgIFN0YXR1cyAgICAgICAgICAgID0gRUZJX1NVQ0NFU1M7DQo+ID4g PiAgICBGaW5pc2hlZCAgICAgICAgICA9IEZBTFNFOw0KPiA+ID4gLSAgVGltZW91dEV2ZW50ICAg ICAgPSBOVUxMOw0KPiA+ID4gICAgSW5kZWZpbml0ZVRpbWVvdXQgPSBGQUxTRTsNCj4gPiA+DQo+ ID4gPiAgICBpZiAoQ21kVHJhbnNmZXIpIHsNCj4gPiA+IEBAIC0xMzIyLDM0ICsxMzI0LDE0IEBA IFhoY0V4ZWNUcmFuc2ZlciAoDQo+ID4gPg0KPiA+ID4gICAgaWYgKFRpbWVvdXQgPT0gMCkgew0K PiA+ID4gICAgICBJbmRlZmluaXRlVGltZW91dCA9IFRSVUU7DQo+ID4gPiAtICAgIGdvdG8gUklO R0RPT1JCRUxMOw0KPiA+ID4gLSAgfQ0KPiA+ID4gLQ0KPiA+ID4gLSAgU3RhdHVzID0gZ0JTLT5D cmVhdGVFdmVudCAoDQo+ID4gPiAtICAgICAgICAgICAgICAgICAgRVZUX1RJTUVSLA0KPiA+ID4g LSAgICAgICAgICAgICAgICAgIFRQTF9DQUxMQkFDSywNCj4gPiA+IC0gICAgICAgICAgICAgICAg ICBOVUxMLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gPiAtICAgICAgICAg ICAgICAgICAgJlRpbWVvdXRFdmVudA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICk7DQo+ID4g PiAtDQo+ID4gPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiAtICAgIGdvdG8g RE9ORTsNCj4gPiA+ICAgIH0NCj4gPiA+DQo+ID4gPiAtICBTdGF0dXMgPSBnQlMtPlNldFRpbWVy ICgNCj4gPiA+IC0gICAgICAgICAgICAgICAgICBUaW1lb3V0RXZlbnQsDQo+ID4gPiAtICAgICAg ICAgICAgICAgICAgVGltZXJSZWxhdGl2ZSwNCj4gPiA+IC0gICAgICAgICAgICAgICAgICBFRklf VElNRVJfUEVSSU9EX01JTExJU0VDT05EUyAoVGltZW91dCkNCj4gPiA+IC0gICAgICAgICAgICAg ICAgICApOw0KPiA+ID4gLQ0KPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ ID4gLSAgICBnb3RvIERPTkU7DQo+ID4gPiAtICB9DQo+ID4gPiAtDQo+ID4gPiAtUklOR0RPT1JC RUxMOg0KPiA+ID4gICAgWGhjUmluZ0Rvb3JCZWxsIChYaGMsIFNsb3RJZCwgRGNpKTsNCj4gPiA+ DQo+ID4gPiArICBUaW1lb3V0VGltZSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EDQo+ ICgoVUlOVDY0KVRpbWVvdXQNCj4gPiA+ICoNCj4gPiA+ICsgWEhDXzFfTUlMTElTRUNPTkQpOyAg RWxhcHNlZFRpbWUgPSAwOyAgQ3VycmVudFRpY2sgPSANCj4gPiA+ICsgR2V0UGVyZm9ybWFuY2VD b3VudGVyICgpOw0KPiA+ID4gKw0KPiA+ID4gICAgZG8gew0KPiA+ID4gICAgICBGaW5pc2hlZCA9 IFhoY0NoZWNrVXJiUmVzdWx0IChYaGMsIFVyYik7DQo+ID4gPiAgICAgIGlmIChGaW5pc2hlZCkg ew0KPiA+ID4gQEAgLTEzNTcsMjIgKzEzMzksMjIgQEAgUklOR0RPT1JCRUxMOg0KPiA+ID4gICAg ICB9DQo+ID4gPg0KPiA+ID4gICAgICBnQlMtPlN0YWxsIChYSENfMV9NSUNST1NFQ09ORCk7DQo+ ID4gPiAtICB9IHdoaWxlIChJbmRlZmluaXRlVGltZW91dCB8fCBFRklfRVJST1IgKGdCUy0+Q2hl Y2tFdmVudCANCj4gPiA+IChUaW1lb3V0RXZlbnQpKSk7DQo+ID4gPiArICAgIFRpbWVEZWx0YSA9 IFhoY0dldEVsYXBzZWRUaW1lICgmQ3VycmVudFRpY2spOw0KPiA+ID4gKyAgICAvLyBFbnN1cmUg dGhhdCBFbGFwc2VkVGltZSBpcyBhbHdheXMgaW5jcmVtZW50ZWQgdG8gYXZvaWQgDQo+ID4gPiAr IGluZGVmaW5pdGUNCj4gPiA+IGhhbmdzDQo+ID4gPiArICAgIGlmIChUaW1lRGVsdGEgPT0gMCkg ew0KPiA+ID4gKyAgICAgIFRpbWVEZWx0YSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05E DQo+ID4gPiAoWEhDXzFfTUlDUk9TRUNPTkQpOw0KPiA+ID4gKyAgICB9DQo+ID4gPg0KPiA+ID4g LURPTkU6DQo+ID4gPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiAtICAgIFVy Yi0+UmVzdWx0ID0gRUZJX1VTQl9FUlJfTk9URVhFQ1VURTsNCj4gPiA+IC0gIH0gZWxzZSBpZiAo IUZpbmlzaGVkKSB7DQo+ID4gPiArICAgIEVsYXBzZWRUaW1lICs9IFRpbWVEZWx0YTsNCj4gPiA+ ICsgIH0gd2hpbGUgKEluZGVmaW5pdGVUaW1lb3V0IHx8IEVsYXBzZWRUaW1lIDwgVGltZW91dFRp bWUpOw0KPiA+ID4gKw0KPiA+ID4gKyAgaWYgKCFGaW5pc2hlZCkgew0KPiA+ID4gICAgICBVcmIt PlJlc3VsdCA9IEVGSV9VU0JfRVJSX1RJTUVPVVQ7DQo+ID4gPiAgICAgIFN0YXR1cyAgICAgID0g RUZJX1RJTUVPVVQ7DQo+ID4gPiAgICB9IGVsc2UgaWYgKFVyYi0+UmVzdWx0ICE9IEVGSV9VU0Jf Tk9FUlJPUikgew0KPiA+ID4gICAgICBTdGF0dXMgPSBFRklfREVWSUNFX0VSUk9SOw0KPiA+ID4g ICAgfQ0KPiA+ID4NCj4gPiA+IC0gIGlmIChUaW1lb3V0RXZlbnQgIT0gTlVMTCkgew0KPiA+ID4g LSAgICBnQlMtPkNsb3NlRXZlbnQgKFRpbWVvdXRFdmVudCk7DQo+ID4gPiAtICB9DQo+ID4gPiAt DQo+ID4gPiAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAtLQ0KPiA+ ID4gMi4zNC4xDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4g Pg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+IA0KPiA+DQo+ID4NCg0K DQoNCg0KDQoNCgotPS09LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8gTGlua3M6IFlvdSBy ZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuClZpZXcvUmVwbHkgT25saW5l ICgjMTA4NDA5KTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTA4NDA5 Ck11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvMTAwNzM5NTA4Lzc2ODYxNzYK R3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvClVuc3Vic2NyaWJlOiBodHRw czovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWIgW3JlYmVjY2FAb3BlbmZ3LmlvXQotPS09 LT0tPS09LT0tPS09LT0tPS09LQoKDQo=