From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.1723.1590539862053991259 for ; Tue, 26 May 2020 17:37:42 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=szjr3+3p; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: guomin.jiang@intel.com) IronPort-SDR: 73TEQzC8xj/jt2xRTzC/924ehWQc744wmG5yhZH4Zx9k0sXXYhUdc4jJV6W2doQ77nBKZE3EKA d781XXiEdU+A== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 May 2020 17:37:41 -0700 IronPort-SDR: /K8LZNsrEfMCrf8rtw/IsxIpZZluS2b6iwu0CCI4Z7lpszsX9QyAqWYrcT+oAfZAY0BH1VCvlk kjt+Kj7l091g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,439,1583222400"; d="scan'208";a="255314908" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga007.fm.intel.com with ESMTP; 26 May 2020 17:37:40 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 26 May 2020 17:37:40 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 26 May 2020 17:37:38 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 26 May 2020 17:37:38 -0700 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (104.47.37.57) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 26 May 2020 17:37:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RUH3st30RcWRA07ifzyxrrUxpNl+nBh69k813C2oj0u9aLLJSPgqR+xiCUgmOeegn3h6zPFzYy0KYCYZkRnq5tpuvLi5zg+UB953FZeIu1mOMMOs9xccGT6LrzV1etUqnjfH5N1+E0kHvd1Xu1FOLPhskxrtrgxWgqtMplTtnnOregOxYfeHnWMb4OD5sRTyf9LUpvafZxr1PMkZrKzqFzCSX17UusowYRq2Sk3pmsA5NsP5PtIOUTOeyxzj6HF5DfHGfTQ0Ojl43EThy5bp82hYFzD2G+ViB7REOJYtznOxtn+mP3+oNzBYEGswhAaLrIUg5FH0DpQvd0GbTSanSg== 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-SenderADCheck; bh=wRD3GweuUeo4rzE83GmwoIW5xDut7cBoziEcL2aN+Mo=; b=MAkwid+ZE0bmL6wxqSyHtl2V1X2uQNqMVbraY2cV057aU7rVKz9hYWn+oBoR0CMRORq1QRJ4yigzVL7CFDEilZ9EuiNG8e2Dg/SJniqXI+fZ7NH+3jxh83a1PLs3eAWpCB1rGiKgUJRdhS8Ouf3+HY0wPAfzXQiUx7cnCVSiqtgJqwUb55Rs/DZWU/L1yVDJoTvnqREG2nNGZgHRQrFGGWrR1bi/BKezlH5P8pr/atcT+cXBkn2UqH2btZ6LpFYSegrMWIrWX0qVhhH+Ag1fM04l9yaT+p2Paf1JBYWFmIXG+gb0XcWOxlzQnsHAah+u5Po9hqBDxjL3sSHVR1xxkA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wRD3GweuUeo4rzE83GmwoIW5xDut7cBoziEcL2aN+Mo=; b=szjr3+3p+I81jMK/mkYDAGxGdDxwAWbYuvj7hB8UBV2rrujDX4XSpKHhrIbxLOxHJTFbtyHJ5+sdYu4loLiffiW3w8v72O/Oy5xxD1HINittVPE2YgkSdIeYT4bkofX7K+Xt5rMullhJf2cZS1P36UPh7Ec0gj/e4P89GKBixqk= Received: from DM6PR11MB2955.namprd11.prod.outlook.com (2603:10b6:5:65::31) by DM6PR11MB3499.namprd11.prod.outlook.com (2603:10b6:5:61::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.23; Wed, 27 May 2020 00:37:36 +0000 Received: from DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::ccd4:4b0d:535a:58be]) by DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::ccd4:4b0d:535a:58be%7]) with mapi id 15.20.3045.016; Wed, 27 May 2020 00:37:36 +0000 From: "Guomin Jiang" To: "devel@edk2.groups.io" , "andre.przywara@arm.com" , Sami Mujawar CC: "ard.biesheuvel@arm.com" , "leif@nuviainc.com" , "Ni, Ray" , "Alexandru.Elisei@arm.com" , "Matteo.Carlini@arm.com" , "Laura.Moretta@arm.com" , "nd@arm.com" Subject: Re: [edk2-devel] [PATCH v2 01/11] PcAtChipsetPkg: Add MMIO Support to RTC driver Thread-Topic: [edk2-devel] [PATCH v2 01/11] PcAtChipsetPkg: Add MMIO Support to RTC driver Thread-Index: AQHWKcv8ddPudFOg4UKVB8qZHC98H6io+dMAgBIwIpA= Date: Wed, 27 May 2020 00:37:36 +0000 Message-ID: References: <20200514084019.71368-1-sami.mujawar@arm.com> <20200514084019.71368-2-sami.mujawar@arm.com> <0bfc0116-7d84-4f70-eb3d-d9fd8a76ded8@arm.com> In-Reply-To: <0bfc0116-7d84-4f70-eb3d-d9fd8a76ded8@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.52.196] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8636bf60-dc3a-48dd-2733-08d801d62723 x-ms-traffictypediagnostic: DM6PR11MB3499: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 04163EF38A x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BYpgFqfkG+QOl5ewA8HVqZBZFppTz+xmv2/hwLwUGuUJPGHL4zody3VtPBVHIh9Aa/sGCo8z70izErZ2qZoeS8l3cePXs5NX2fw27VIKWLT2fb0gSdXNDFOOdzgNzfLSpcz8lRTXyqJIEPWxL/OnQIamkP99sQCm62m1Q64MA3gF30TCEjT/uiviAdT3k/TziEIp4AYin+3tonWpolDmJa9Z9bTEqRyaJHXFEMaeahAr08Jj+niUHrbkC9re4ubGKaZFRPvy5qB4lg38ozXyJxeLJGK3yah6A5c0VUpe0u+xp/VkTjunrS5C1tV5s5yS1rndeYEgorT3MyeJppce/oihOpyCXd5PsvpTyStDoOt2f++sWPUgMOUeHc+Umf7kO4C5TqdpRzlY8D0MpPX1XA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2955.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(6029001)(396003)(366004)(136003)(376002)(39860400002)(346002)(4326008)(55016002)(6506007)(7696005)(966005)(71200400001)(33656002)(52536014)(478600001)(186003)(86362001)(53546011)(26005)(316002)(66476007)(66446008)(5660300002)(110136005)(76116006)(64756008)(8936002)(66946007)(8676002)(54906003)(2906002)(9686003)(66556008)(83380400001)(30864003)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: XUCgnG+bjA5QE7ljZ2TaFf8Gsoq69NwVImfsuFvXf1S7EQH5RA79Y3vgAmOG9FIU+vfm88J1Q5T9RtUlnEohLcxgfcila0pSuoSAnB7urMCnF4Ma9S9lr2y6C878qRShe7/xnIZYhp5TqDswVUh7f9j9G5G1EkBr/bE4gjLdrE7FL/MXkch5bqpM5FtFHKcIfJ3qQ5zU09TG6DhmLF3Jr22xe7cRsnZtCu4Q/lCEJfGNi3QUqeMevvtuoe087gE1/k1YUJ0pkRQ9wv4qrWaVIEhvj8mJ7BgJyVlbCoDu0YtyenNKZ7IK54/9tRG8ZjCKyhS3qrMBPkbGG804pdFEzq3whu0GY/X8dPFezzPFYf3JVAdysj3KyxXXJhia0F0qkpL7eAn0YSL9aJjk3PXBKooka3wwz+Db1xJRMWh8NPH70IgTWj5hDt/EeqX+2+1+unnyZFDXUL66UwCTJRtc7toI1G1ggiq8SStcnkjdyVrDEJ6t1RLEwVhAnJebmcbY MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 8636bf60-dc3a-48dd-2733-08d801d62723 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 May 2020 00:37:36.2750 (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: z2p1rW8aNy0Me0D6D0hIcmrJdEbpH5Bb4TSIMe5ZAUasTwjiDzbY7voORDVEvQ4BXOuwSE2Jti6bvqcVPxWaHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3499 Return-Path: guomin.jiang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhbSBpbnRlcmVzdCB3aXRoIHRoZSBwYXRjaCwNCg0KSSBhbSBidXN5IGFuZCBtYXkgcmV2aWV3 IGl0IGFmdGVyIEF1Z3VzdC4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBP ZiBBbmRyw6kNCj4gUHJ6eXdhcmENCj4gU2VudDogRnJpZGF5LCBNYXkgMTUsIDIwMjAgNjo1MSBQ TQ0KPiBUbzogU2FtaSBNdWphd2FyIDxzYW1pLm11amF3YXJAYXJtLmNvbT47IGRldmVsQGVkazIu Z3JvdXBzLmlvDQo+IENjOiBhcmQuYmllc2hldXZlbEBhcm0uY29tOyBsZWlmQG51dmlhaW5jLmNv bTsgTmksIFJheQ0KPiA8cmF5Lm5pQGludGVsLmNvbT47IEFsZXhhbmRydS5FbGlzZWlAYXJtLmNv bTsgTWF0dGVvLkNhcmxpbmlAYXJtLmNvbTsNCj4gTGF1cmEuTW9yZXR0YUBhcm0uY29tOyBuZEBh cm0uY29tDQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDAxLzExXSBQY0F0 Q2hpcHNldFBrZzogQWRkIE1NSU8NCj4gU3VwcG9ydCB0byBSVEMgZHJpdmVyDQo+IA0KPiBPbiAx NC8wNS8yMDIwIDA5OjQwLCBTYW1pIE11amF3YXIgd3JvdGU6DQo+IA0KPiBIaSBTYW1pLA0KPiAN Cj4gbWFueSB0aGFua3MgZm9yIHlvdXIgd29yayBvbiB0aGF0IQ0KPiANCj4gPiBTb21lIHZpcnR1 YWwgbWFjaGluZSBtYW5hZ2VycyBsaWtlIGt2bXRvb2wgZW11bGF0ZSB0aGUgTUMxNDY4MTggUlRD DQo+ID4gY29udHJvbGxlciBpbiB0aGUgTU1JTyBzcGFjZSBzbyB0aGF0IGFyY2hpdGVjdHVyZXMg dGhhdCBkbyBub3Qgc3VwcG9ydA0KPiA+IEkvTyBNYXBwZWQgSS9PIGNhbiB1c2UgdGhlIFJUQy4g VGhpcyBwYXRjaCBhZGRzIE1NSU8gc3VwcG9ydCB0byB0aGUNCj4gPiBSVEMgY29udHJvbGxlciBk cml2ZXIuDQo+IA0KPiBJcyB0aGVyZSBhbnkgY2hhbmNlIHlvdSBjb3VsZCByZWFkIHRoZSBNTUlP IGJhc2UgYWRkcmVzcyBmcm9tIHRoZSBEVD8gSQ0KPiBzZW50IGEga3ZtdG9vbCBwYXRjaCB0byBh ZGQgdGhlIG1pc3NpbmcgRFQgbm9kZVsxXS4NCj4gVGhlIGNvbXBhdGlibGUgc3RyaW5nIHdvdWxk IGJlICJtb3Rvcm9sYSxtYzE0NjgxOCIsIHdpdGgganVzdCB0aGUgdXN1YWwgcmVnDQo+IHByb3Bl cnR5Lg0KPiBNYXliZSB5b3UgY291bGQgZmFsbCBiYWNrIHRvIHRoZSBjdXJyZW50IDB4NzAvMHg3 MSwgaWYgdGhlcmUgaXMgbm8gRFQgbm9kZT8NCj4gDQo+IEZvciBhIHN0YXJ0LCB0aGlzIGxvdyBh ZGRyZXNzICgweDcwLzB4NzEpIGNhdXNlcyBpc3N1ZXMsIHNvIHdlIHByb2JhYmx5IG5lZWQNCj4g dG8gbW92ZSB0aGlzIHBlcm1hbmVudGx5Lg0KPiBCdXQgYWxzbyB3ZSB3YW50IHRvIGludHJvZHVj ZSBhIG1vcmUgZmxleGlibGUgbWVtb3J5IGxheW91dCwgc28gZGV2aWNlcyBjYW4NCj4gbW92ZSBk ZXBlbmRpbmcgb24gY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMuDQo+IA0KPiBJdCB3b3VsZCBiZSBn cmVhdCBpZiBFREstMiBjb3VsZCBjb3ZlciB0aGF0IGZyb20gdGhlIGJlZ2lubmluZywgc28gdGhh dCB3ZQ0KPiBkb24ndCBlbmQgdXAgd2l0aCBjb21wYXRpYmlsaXR5IGlzc3Vlcy4NCj4gDQo+IENo ZWVycywNCj4gQW5kcmUNCj4gDQo+IFsxXSBodHRwczovL2xpc3RzLmNzLmNvbHVtYmlhLmVkdS9w aXBlcm1haWwva3ZtYXJtLzIwMjAtTWF5LzA0MDcwMy5odG1sDQo+ID4NCj4gPiBUaGUgUENEIFBj ZFJ0Y1VzZU1taW8gaGFzIGJlZW4gYWRkZWQgdG8gc2VsZWN0IEkvTyBvciBNTUlPIHN1cHBvcnQu DQo+ID4gICBJZiBQY2RSdGNVc2VNbWlvIGlzOg0KPiA+ICAgICBUUlVFICAtIEluZGljYXRlcyB0 aGUgUlRDIHBvcnQgcmVnaXN0ZXJzIGFyZSBpbiBNTUlPIHNwYWNlLg0KPiA+ICAgICBGQUxTRSAt IEluZGljYXRlcyB0aGUgUlRDIHBvcnQgcmVnaXN0ZXJzIGFyZSBpbiBJL08gc3BhY2UuDQo+ID4g ICAgICAgICAgICAgRGVmYXVsdCBpcyBJL08gc3BhY2UuDQo+ID4NCj4gPiBXaGVuIE1NSU8gc3Vw cG9ydCBpcyBzZWxlY3RlZCAoUGNkUnRjVXNlTW1pbyA9PSBUUlVFKSB0aGUgZHJpdmVyDQo+IG1h cHMNCj4gPiB0aGUgTU1JTyByZWdpb24gdXNlZCBieSB0aGUgUlRDIGFzIHJ1bnRpbWUgbWVtb3J5 IHNvIHRoYXQgdGhlIFJUQw0KPiA+IHJlZ2lzdGVycyBhcmUgYWNjZXNzaWJsZSBwb3N0IEV4aXRC b290U2VydmljZXMuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBTYW1pIE11amF3YXIgPHNhbWku bXVqYXdhckBhcm0uY29tPg0KPiA+IC0tLQ0KPiA+DQo+ID4gTm90ZXM6DQo+ID4gICAgIHYyOg0K PiA+ICAgICAgIC0gQ29kZSByZXZpZXcgY29tbWVudHMgaW5jb3Jwb3JhdGVkLiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtTYW1pXQ0KPiA+DQo+ID4gICAgIHYxOg0KPiA+ICAgICAgIC0g QWRkIHN1cHBvcnQgdG8gcmVhZC93cml0ZSBmcm9tIFJUQyByZWdpc3RlcnMgdXNpbmcgTU1JTyBh Y2Nlc3MNCj4gW1NhbWldDQo+ID4gICAgICAgLSBVc2Ugd3JhcHBlciBmdW5jdGlvbnMgZm9yIFJ0 Y1JlYWQvV3JpdGUgYWNjZXNzb3JzICAgICAgICAgICAgICAgW0xlaWZdDQo+ID4gICAgICAgICBS ZWY6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC90b3BpYy8zMDkxNTI4MSMzMDY5NQ0K PiA+DQo+ID4gIFBjQXRDaGlwc2V0UGtnL1BjQXRDaGlwc2V0UGtnLmRlYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsrDQo+ID4gIFBjQXRDaGlwc2V0UGtn L1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy5jICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTE3DQo+ICsrKysrKysrKysrKysrKystLQ0KPiA+ICBQY0F0Q2hpcHNldFBrZy9QY2F0 UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuaCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAzMQ0KPiArKysrKw0KPiA+ICBQY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRp bWVEeGUvUGNSdGNFbnRyeS5jICAgICAgICAgICAgICAgICAgICB8DQo+IDEzMCArKysrKysrKysr KysrKysrKysrLQ0KPiA+DQo+IFBjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGlt ZUR4ZS9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWUNCj4gRHhlLmluZiB8ICAgOCArKw0KPiA+ICA1 IGZpbGVzIGNoYW5nZWQsIDI4MCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkNCj4gPg0K PiA+IGRpZmYgLS1naXQgYS9QY0F0Q2hpcHNldFBrZy9QY0F0Q2hpcHNldFBrZy5kZWMNCj4gPiBi L1BjQXRDaGlwc2V0UGtnL1BjQXRDaGlwc2V0UGtnLmRlYw0KPiA+IGluZGV4DQo+ID4NCj4gODhk ZTVjY2VlYTU5MzE3NmMzYTI0MjVhNTk2M2I2NmI3ODlmMmI5ZS4uNzZkMGM3ZWRhNjliYjUwNTkx NGJhOTA0DQo+IGUwOWMNCj4gPiA4OWRlMTcwZjY5YWUgMTAwNjQ0DQo+ID4gLS0tIGEvUGNBdENo aXBzZXRQa2cvUGNBdENoaXBzZXRQa2cuZGVjDQo+ID4gKysrIGIvUGNBdENoaXBzZXRQa2cvUGNB dENoaXBzZXRQa2cuZGVjDQo+ID4gQEAgLTYsNiArNiw3IEBADQo+ID4gICMNCj4gPiAgIyBDb3B5 cmlnaHQgKGMpIDIwMDkgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ IHJlc2VydmVkLjxCUj4gICMgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMTgsIEFSTSBMaW1pdGVkLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiAgIw0KPiA+ICAjIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50ICAjIEBAIC0xNDIsNSArMTQzLDEyDQo+ID4gQEAg W1BjZHNGaXhlZEF0QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZV0NCj4gPiAgICAjIEBQcm9t cHQgUlRDIFVwZGF0ZSBUaW1lb3V0IFZhbHVlLg0KPiA+DQo+ID4NCj4gZ1BjQXRDaGlwc2V0UGtn VG9rZW5TcGFjZUd1aWQuUGNkUmVhbFRpbWVDbG9ja1VwZGF0ZVRpbWVvdXR8MTAwMDAwDQo+IHxV SU4NCj4gPiBUMzJ8MHgwMDAwMDAyMA0KPiA+DQo+ID4gKyAgIyMgSW5kaWNhdGVzIHRoZSBSVEMg cG9ydCByZWdpc3RlcnMgYXJlIGluIE1NSU8gc3BhY2UsIG9yIGluIEkvTyBzcGFjZS4NCj4gPiAr ICAjICBEZWZhdWx0IGlzIEkvTyBzcGFjZS48QlI+PEJSPg0KPiA+ICsgICMgICBUUlVFICAtIFJU QyBwb3J0IHJlZ2lzdGVycyBhcmUgaW4gTU1JTyBzcGFjZS48QlI+DQo+ID4gKyAgIyAgIEZBTFNF IC0gUlRDIHBvcnQgcmVnaXN0ZXJzIGFyZSBpbiBJL08gc3BhY2UuPEJSPg0KPiA+ICsgICMgQFBy b21wdCBSVEMgcG9ydCByZWdpc3RlcnMgdXNlIE1NSU8uDQo+ID4gKw0KPiA+ICsNCj4gZ1BjQXRD aGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQuUGNkUnRjVXNlTW1pb3xGQUxTRXxCT09MRUFOfDB4MDAw MA0KPiAwMDIxDQo+ID4gKw0KPiA+ICBbVXNlckV4dGVuc2lvbnMuVGlhbm9Db3JlLiJFeHRyYUZp bGVzIl0NCj4gPiAgICBQY0F0Q2hpcHNldFBrZ0V4dHJhLnVuaQ0KPiA+IGRpZmYgLS1naXQgYS9Q Y0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuYw0KPiA+IGIv UGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjLmMNCj4gPiBp bmRleA0KPiA+DQo+IDUyYWYxNzk0MTc4NmVmODFjMzkxMTUxMmVlNjQ1NTE3MjRlNjcyMDkuLmRm OGRlYTgzYWIyN2JiYmExMjM1MTA5NmQNCj4gMWJmDQo+ID4gZDllYTMxYWNjYjYwIDEwMDY0NA0K PiA+IC0tLSBhL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0 Yy5jDQo+ID4gKysrIGIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhl L1BjUnRjLmMNCj4gPiBAQCAtMyw2ICszLDcgQEANCj4gPg0KPiA+ICBDb3B5cmlnaHQgKGMpIDIw MDYgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+IHJlc2VydmVkLjxC Uj4gIENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ID4gK0NvcHlyaWdodCAoYykgMjAxOCAtIDIwMjAsIEFSTSBMaW1pdGVkLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiA+DQo+ID4gQEAgLTEwLDYgKzExLDggQEAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICAjaW5jbHVkZSAiUGNSdGMu aCINCj4gPg0KPiA+ICtleHRlcm4gRUZJX1BIWVNJQ0FMX0FERFJFU1MgICBtUnRjUmVnaXN0ZXJC YXNlOw0KPiA+ICsNCj4gPiAgLy8NCj4gPiAgLy8gRGF5cyBvZiBtb250aC4NCj4gPiAgLy8NCj4g PiBAQCAtMjEsNiArMjQsMjggQEAgVUlOVE4gbURheU9mTW9udGhbXSA9IHsgMzEsIDI5LCAzMSwg MzAsIDMxLCAzMCwgMzEsDQo+ID4gMzEsIDMwLCAzMSwgMzAsIDMxIH07DQo+ID4gIENIQVIxNiBt VGltZVpvbmVWYXJpYWJsZU5hbWVbXSA9IEwiUlRDIjsNCj4gPg0KPiA+ICAvKioNCj4gPiArICBB IGZ1bmN0aW9uIHBvaW50ZXIgdGhhdCBldmFsdWF0ZXMgdG8gYSBmdW5jdGlvbiB0aGF0IHJlYWRz IHRoZSBSVEMNCj4gPiArIGNvbnRlbnQgIHRocm91Z2ggaXRzIHJlZ2lzdGVycyBlaXRoZXIgdXNp bmcgSU8gb3IgTU1JTyBhY2Nlc3MuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSAgQWRkcmVzcyAgIEFk ZHJlc3Mgb2Zmc2V0IG9mIFJUQy4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgbWFjcm9zIHN1Y2ggYXMgUlRDX0FERFJFU1NfU0VDT05EUy4NCj4gPiAr DQo+ID4gKyAgQHJldHVybiBUaGUgZGF0YSBvZiBVSU5UOCB0eXBlIHJlYWQgZnJvbSBSVEMuDQo+ ID4gKyoqLw0KPiA+ICtSVENfUkVBRCAgUnRjUmVhZDsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsg IEEgZnVuY3Rpb24gcG9pbnRlciB0aGF0IGV2YWx1YXRlcyB0byBhIGZ1bmN0aW9uIHRoYXQgcmVh ZHMgdGhlIFJUQw0KPiA+ICtjb250ZW50DQo+ID4gKyAgdGhyb3VnaCBpdHMgcmVnaXN0ZXJzIGVp dGhlciB1c2luZyBJTyBvciBNTUlPIGFjY2Vzcy4NCj4gPiArDQo+ID4gKyAgQHBhcmFtICBBZGRy ZXNzICAgQWRkcmVzcyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UNCj4g PiArICAgICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBSVENfQUREUkVTU19TRUNPTkRT Lg0KPiA+ICsNCj4gPiArICBAcmV0dXJuIFRoZSBkYXRhIG9mIFVJTlQ4IHR5cGUgcmVhZCBmcm9t IFJUQy4NCj4gPiArKiovDQo+ID4gK1JUQ19XUklURSBSdGNXcml0ZTsNCj4gPiArDQo+ID4gKy8q Kg0KPiA+ICAgIENvbXBhcmUgdGhlIEhvdXIsIE1pbnV0ZSBhbmQgU2Vjb25kIG9mIHRoZSBGcm9t IHRpbWUgYW5kIHRoZSBUbyB0aW1lLg0KPiA+DQo+ID4gICAgT25seSBjb21wYXJlIEgvTS9TIGlu IEVGSV9USU1FIGFuZCBpZ25vcmUgb3RoZXIgZmllbGRzIGhlcmUuDQo+ID4gQEAgLTU0LDQxICs3 OSw5OSBAQCBJc1dpdGhpbk9uZURheSAoDQo+ID4gICAgKTsNCj4gPg0KPiA+ICAvKioNCj4gPiAt ICBSZWFkIFJUQyBjb250ZW50IHRocm91Z2ggaXRzIHJlZ2lzdGVycy4NCj4gPiArICBSZWFkIFJU QyBjb250ZW50IHRocm91Z2ggaXRzIHJlZ2lzdGVycyB1c2luZyBJTyBhY2Nlc3MuDQo+ID4NCj4g PiAtICBAcGFyYW0gIEFkZHJlc3MgIEFkZHJlc3Mgb2Zmc2V0IG9mIFJUQy4gSXQgaXMgcmVjb21t ZW5kZWQgdG8gdXNlDQo+IG1hY3JvcyBzdWNoIGFzDQo+ID4gLSAgICAgICAgICAgICAgICAgICBS VENfQUREUkVTU19TRUNPTkRTLg0KPiA+ICsgIEBwYXJhbSAgQWRkcmVzcyAgIEFkZHJlc3Mgb2Zm c2V0IG9mIFJUQy4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgbWFjcm9zIHN1Y2ggYXMgUlRDX0FERFJFU1NfU0VDT05EUy4NCj4gPg0KPiA+ICAgIEBy ZXR1cm4gVGhlIGRhdGEgb2YgVUlOVDggdHlwZSByZWFkIGZyb20gUlRDLg0KPiA+ICAqKi8NCj4g PiArU1RBVElDDQo+ID4gIFVJTlQ4DQo+ID4gLVJ0Y1JlYWQgKA0KPiA+ICtJb1J0Y1JlYWQgKA0K PiA+ICAgIElOICBVSU5UOCBBZGRyZXNzDQo+ID4gICAgKQ0KPiA+ICB7DQo+ID4gLSAgSW9Xcml0 ZTggKFBjZEdldDggKFBjZFJ0Y0luZGV4UmVnaXN0ZXIpLCAoVUlOVDgpIChBZGRyZXNzIHwgKFVJ TlQ4KQ0KPiA+IChJb1JlYWQ4IChQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVyKSkgJiAweDgw KSkpOw0KPiA+ICsgIElvV3JpdGU4ICgNCj4gPiArICAgIFBjZEdldDggKFBjZFJ0Y0luZGV4UmVn aXN0ZXIpLA0KPiA+ICsgICAgKFVJTlQ4KShBZGRyZXNzIHwgKFVJTlQ4KShJb1JlYWQ4IChQY2RH ZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVyKSkgJg0KPiAweDgwKSkNCj4gPiArICAgICk7DQo+ID4g ICAgcmV0dXJuIElvUmVhZDggKFBjZEdldDggKFBjZFJ0Y1RhcmdldFJlZ2lzdGVyKSk7ICB9DQo+ ID4NCj4gPiAgLyoqDQo+ID4gLSAgV3JpdGUgUlRDIHRocm91Z2ggaXRzIHJlZ2lzdGVycy4NCj4g PiArICBXcml0ZSBSVEMgdGhyb3VnaCBpdHMgcmVnaXN0ZXJzICB1c2luZyBJTyBhY2Nlc3MuDQo+ ID4NCj4gPiAtICBAcGFyYW0gIEFkZHJlc3MgIEFkZHJlc3Mgb2Zmc2V0IG9mIFJUQy4gSXQgaXMg cmVjb21tZW5kZWQgdG8gdXNlDQo+IG1hY3JvcyBzdWNoIGFzDQo+ID4gLSAgICAgICAgICAgICAg ICAgICBSVENfQUREUkVTU19TRUNPTkRTLg0KPiA+IC0gIEBwYXJhbSAgRGF0YSAgICAgVGhlIGNv bnRlbnQgeW91IHdhbnQgdG8gd3JpdGUgaW50byBSVEMuDQo+ID4gKyAgQHBhcmFtICBBZGRyZXNz ICAgQWRkcmVzcyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UNCj4gPiAr ICAgICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBSVENfQUREUkVTU19TRUNPTkRTLg0K PiA+ICsgIEBwYXJhbSAgRGF0YSAgICAgIFRoZSBjb250ZW50IHlvdSB3YW50IHRvIHdyaXRlIGlu dG8gUlRDLg0KPiA+DQo+ID4gICoqLw0KPiA+ICtTVEFUSUMNCj4gPiAgVk9JRA0KPiA+IC1SdGNX cml0ZSAoDQo+ID4gK0lvUnRjV3JpdGUgKA0KPiA+ICAgIElOICBVSU5UOCAgIEFkZHJlc3MsDQo+ ID4gICAgSU4gIFVJTlQ4ICAgRGF0YQ0KPiA+ICAgICkNCj4gPiAgew0KPiA+IC0gIElvV3JpdGU4 IChQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVyKSwgKFVJTlQ4KSAoQWRkcmVzcyB8IChVSU5U OCkNCj4gPiAoSW9SZWFkOCAoUGNkR2V0OCAoUGNkUnRjSW5kZXhSZWdpc3RlcikpICYgMHg4MCkp KTsNCj4gPiArICBJb1dyaXRlOCAoDQo+ID4gKyAgICBQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lz dGVyKSwNCj4gPiArICAgIChVSU5UOCkoQWRkcmVzcyB8IChVSU5UOCkoSW9SZWFkOCAoUGNkR2V0 OCAoUGNkUnRjSW5kZXhSZWdpc3RlcikpICYNCj4gMHg4MCkpDQo+ID4gKyAgICApOw0KPiA+ICAg IElvV3JpdGU4IChQY2RHZXQ4IChQY2RSdGNUYXJnZXRSZWdpc3RlciksIERhdGEpOyAgfQ0KPiA+ DQo+ID4gIC8qKg0KPiA+ICsgIFJlYWQgUlRDIGNvbnRlbnQgdGhyb3VnaCBpdHMgcmVnaXN0ZXJz IHVzaW5nIE1NSU8gYWNjZXNzLg0KPiA+ICsNCj4gPiArICBAcGFyYW0gIEFkZHJlc3MgICBBZGRy ZXNzIG9mZnNldCBvZiBSVEMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgIG1hY3JvcyBzdWNoIGFzIFJUQ19BRERSRVNTX1NFQ09ORFMuDQo+ID4gKw0K PiA+ICsgIEByZXR1cm4gVGhlIGRhdGEgb2YgVUlOVDggdHlwZSByZWFkIGZyb20gUlRDLg0KPiA+ ICsqKi8NCj4gPiArU1RBVElDDQo+ID4gK1VJTlQ4DQo+ID4gK01taW9SdGNSZWFkICgNCj4gPiAr ICBJTiAgVUlOVDggQWRkcmVzcw0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIE1taW9Xcml0ZTgg KA0KPiA+ICsgICAgbVJ0Y1JlZ2lzdGVyQmFzZSwNCj4gPiArICAgIChVSU5UOCkoQWRkcmVzcyB8 IChVSU5UOCkoTW1pb1JlYWQ4IChtUnRjUmVnaXN0ZXJCYXNlKSAmIDB4ODApKQ0KPiA+ICsgICAg KTsNCj4gPiArICByZXR1cm4gTW1pb1JlYWQ4ICgNCj4gPiArICAgICAgICAgICBtUnRjUmVnaXN0 ZXJCYXNlICsgKFBjZEdldDggKFBjZFJ0Y1RhcmdldFJlZ2lzdGVyKSAtDQo+ID4gKyAgICAgICAg ICAgICBQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVyKSkNCj4gPiArICAgICAgICAgICApOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBXcml0ZSBSVEMgdGhyb3VnaCBpdHMgcmVn aXN0ZXJzIHVzaW5nIE1NSU8gYWNjZXNzLg0KPiA+ICsNCj4gPiArICBAcGFyYW0gIEFkZHJlc3Mg ICBBZGRyZXNzIG9mZnNldCBvZiBSVEMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgIG1hY3JvcyBzdWNoIGFzIFJUQ19BRERSRVNTX1NFQ09ORFMuDQo+ ID4gKyAgQHBhcmFtICBEYXRhICAgICAgVGhlIGNvbnRlbnQgeW91IHdhbnQgdG8gd3JpdGUgaW50 byBSVEMuDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiArU1RBVElDDQo+ID4gK1ZPSUQNCj4gPiArTW1p b1J0Y1dyaXRlICgNCj4gPiArICBJTiAgVUlOVDggICBBZGRyZXNzLA0KPiA+ICsgIElOICBVSU5U OCAgIERhdGENCj4gPiArICApDQo+ID4gK3sNCj4gPiArICBNbWlvV3JpdGU4ICgNCj4gPiArICAg IG1SdGNSZWdpc3RlckJhc2UsDQo+ID4gKyAgICAoVUlOVDgpKEFkZHJlc3MgfCAoVUlOVDgpKE1t aW9SZWFkOCAobVJ0Y1JlZ2lzdGVyQmFzZSkgJiAweDgwKSkNCj4gPiArICAgICk7DQo+ID4gKyAg TW1pb1dyaXRlOCAoDQo+ID4gKyAgICBtUnRjUmVnaXN0ZXJCYXNlICsgKFBjZEdldDggKFBjZFJ0 Y1RhcmdldFJlZ2lzdGVyKSAtDQo+ID4gKyAgICAgIFBjZEdldDggKFBjZFJ0Y0luZGV4UmVnaXN0 ZXIpKSwNCj4gPiArICAgIERhdGENCj4gPiArICAgICk7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8q Kg0KPiA+ICAgIEluaXRpYWxpemUgUlRDLg0KPiA+DQo+ID4gICAgQHBhcmFtICBHbG9iYWwgICAg ICAgICAgICBGb3IgZ2xvYmFsIHVzZSBpbnNpZGUgdGhpcyBtb2R1bGUuDQo+ID4gQEAgLTExMyw2 ICsxOTYsMTggQEAgUGNSdGNJbml0ICgNCj4gPiAgICBCT09MRUFOICAgICAgICAgUGVuZGluZzsN Cj4gPg0KPiA+ICAgIC8vDQo+ID4gKyAgLy8gSW5pdGlhbGl6ZSB0aGUgUnRjUmVhZCBhbmQgUnRj V3JpdGUgZnVuY3Rpb25zICAvLyBiYXNlZCBvbiB0aGUNCj4gPiArIGNob3NlbiBJTy9NTUlPIGFj Y2Vzcy4NCj4gPiArICAvLw0KPiA+ICsgIGlmIChGaXhlZFBjZEdldEJvb2wgKFBjZFJ0Y1VzZU1t aW8pKSB7DQo+ID4gKyAgICBSdGNSZWFkID0gTW1pb1J0Y1JlYWQ7DQo+ID4gKyAgICBSdGNXcml0 ZSA9IE1taW9SdGNXcml0ZTsNCj4gPiArICB9IGVsc2Ugew0KPiA+ICsgICAgUnRjUmVhZCA9IElv UnRjUmVhZDsNCj4gPiArICAgIFJ0Y1dyaXRlID0gSW9SdGNXcml0ZTsNCj4gPiArICB9DQo+ID4g Kw0KPiA+ICsgIC8vDQo+ID4gICAgLy8gQWNxdWlyZSBSVEMgTG9jayB0byBtYWtlIGFjY2VzcyB0 byBSVEMgYXRvbWljDQo+ID4gICAgLy8NCj4gPiAgICBpZiAoIUVmaUF0UnVudGltZSAoKSkgew0K PiA+IGRpZmYgLS1naXQgYS9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVE eGUvUGNSdGMuaA0KPiA+IGIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1l RHhlL1BjUnRjLmgNCj4gPiBpbmRleA0KPiA+DQo+IDQ3MjkzY2U0NGM1YTFmNDc5Mjg5Mjg5MmY3 ZGE0MGQ3ZjBhNWEwMDEuLmU2NGRiYmVhNDhmN2YwZDJmMzE3YzY1YzJlDQo+IDRiDQo+ID4gOTNl N2IxODg4ZWZjIDEwMDY0NA0KPiA+IC0tLSBhL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNs b2NrUnVudGltZUR4ZS9QY1J0Yy5oDQo+ID4gKysrIGIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxU aW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjLmgNCj4gPiBAQCAtMyw2ICszLDcgQEANCj4gPg0KPiA+ ICBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cw0KPiA+IHJlc2VydmVkLjxCUj4gIENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ID4gK0NvcHlyaWdodCAoYykgMjAxOSAtIDIwMjAsIEFSTSBM aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+DQo+ID4gQEAgLTM3MSw0ICszNzIs MzQgQEAgUGNSdGNBY3BpVGFibGVDaGFuZ2VDYWxsYmFjayAoDQo+ID4gICAgSU4gRUZJX0VWRU5U ICAgICAgICBFdmVudCwNCj4gPiAgICBJTiBWT0lEICAgICAgICAgICAgICpDb250ZXh0DQo+ID4g ICAgKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIEZ1bmN0aW9uIHBvaW50ZXIgdG8gUmVhZCBS VEMgY29udGVudCB0aHJvdWdoIGl0cyByZWdpc3RlcnMuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSAg QWRkcmVzcyAgIEFkZHJlc3Mgb2Zmc2V0IG9mIFJUQy4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNl DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgbWFjcm9zIHN1Y2ggYXMgUlRDX0FERFJFU1NfU0VD T05EUy4NCj4gPiArDQo+ID4gKyAgQHJldHVybiBUaGUgZGF0YSBvZiBVSU5UOCB0eXBlIHJlYWQg ZnJvbSBSVEMuDQo+ID4gKyoqLw0KPiA+ICt0eXBlZGVmDQo+ID4gK1VJTlQ4DQo+ID4gKyhFRklB UEkgKlJUQ19SRUFEKSAoDQo+ID4gKyAgSU4gIFVJTlQ4IEFkZHJlc3MNCj4gPiArICApOw0KPiA+ ICsNCj4gPiArLyoqDQo+ID4gKyAgRnVuY3Rpb24gcG9pbnRlciB0byBXcml0ZSBSVEMgdGhyb3Vn aCBpdHMgcmVnaXN0ZXJzLg0KPiA+ICsNCj4gPiArICBAcGFyYW0gIEFkZHJlc3MgICBBZGRyZXNz IG9mZnNldCBvZiBSVEMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZQ0KPiA+ICsgICAgICAgICAg ICAgICAgICAgIG1hY3JvcyBzdWNoIGFzIFJUQ19BRERSRVNTX1NFQ09ORFMuDQo+ID4gKyAgQHBh cmFtICBEYXRhICAgICAgVGhlIGNvbnRlbnQgeW91IHdhbnQgdG8gd3JpdGUgaW50byBSVEMuDQo+ ID4gKw0KPiA+ICsqKi8NCj4gPiArdHlwZWRlZg0KPiA+ICtWT0lEDQo+ID4gKyhFRklBUEkgKlJU Q19XUklURSkgKA0KPiA+ICsgIElOICBVSU5UOCAgIEFkZHJlc3MsDQo+ID4gKyAgSU4gIFVJTlQ4 ICAgRGF0YQ0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEv UGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjRW50cnkuYw0K PiA+IGIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjRW50 cnkuYw0KPiA+IGluZGV4DQo+ID4NCj4gY2NkYTYzMzEzNzNiZmU0MDY5YjBhNTk0OTViNWU1Y2M3 MzFjOGZjOC4uNWQ1ZGJlYWY5NzBjYThlYjI5MWMxZTA5NGYNCj4gZDcNCj4gPiA2NGQyMDFmOTA3 MWUgMTAwNjQ0DQo+ID4gLS0tIGEvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50 aW1lRHhlL1BjUnRjRW50cnkuYw0KPiA+ICsrKyBiL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGlt ZUNsb2NrUnVudGltZUR4ZS9QY1J0Y0VudHJ5LmMNCj4gPiBAQCAtMiwxNiArMiwzMiBAQA0KPiA+ ICAgIFByb3ZpZGVzIFNldC9HZXQgdGltZSBvcGVyYXRpb25zLg0KPiA+DQo+ID4gIENvcHlyaWdo dCAoYykgMjAwNiAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gcmVz ZXJ2ZWQuPEJSPg0KPiA+ICtDb3B5cmlnaHQgKGMpIDIwMTggLSAyMDIwLCBBUk0gTGltaXRlZC4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiAgKiovDQo+ID4NCj4gPiArI2luY2x1ZGUgPExp YnJhcnkvRHhlU2VydmljZXNUYWJsZUxpYi5oPg0KPiA+ICAjaW5jbHVkZSAiUGNSdGMuaCINCj4g Pg0KPiA+ICBQQ19SVENfTU9EVUxFX0dMT0JBTFMgIG1Nb2R1bGVHbG9iYWw7DQo+ID4NCj4gPiAg RUZJX0hBTkRMRSAgICAgICAgICAgICBtSGFuZGxlID0gTlVMTDsNCj4gPg0KPiA+ICtTVEFUSUMg RUZJX0VWRU5UICAgICAgIG1WaXJ0dWFsQWRkckNoYW5nZUV2ZW50Ow0KPiA+ICsNCj4gPiArRUZJ X1BIWVNJQ0FMX0FERFJFU1MgICBtUnRjUmVnaXN0ZXJCYXNlOw0KPiA+ICsNCj4gPiArLy8NCj4g PiArLy8gRnVuY3Rpb24gcG9pbnRlciBmb3IgdGhlIFJ0YyBSZWFkIGludGVyZmFjZSBmdW5jdGlv biAvLw0KPiA+ICtleHRlcm4gUlRDX1JFQUQgICBSdGNSZWFkOw0KPiA+ICsNCj4gPiArLy8NCj4g PiArLy8gRnVuY3Rpb24gcG9pbnRlciBmb3IgdGhlIFJ0YyBXcml0ZSBpbnRlcmZhY2UgZnVuY3Rp b24gLy8gZXh0ZXJuDQo+ID4gK1JUQ19XUklURSAgUnRjV3JpdGU7DQo+ID4gKw0KPiA+ICAvKioN Cj4gPiAgICBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgYW5kIGRhdGUgaW5mb3JtYXRpb24sIGFu ZCB0aGUgdGltZS1rZWVwaW5nDQo+IGNhcGFiaWxpdGllcw0KPiA+ICAgIG9mIHRoZSBoYXJkd2Fy ZSBwbGF0Zm9ybS4NCj4gPiBAQCAtMTA2LDYgKzEyMiwzMyBAQCBQY1J0Y0VmaVNldFdha2V1cFRp bWUgKCAgfQ0KPiA+DQo+ID4gIC8qKg0KPiA+ICsgIEZpeHVwIGludGVybmFsIGRhdGEgc28gdGhh dCBFRkkgY2FuIGJlIGNhbGxlZCBpbiB2aXJ0dWFsIG1vZGUuDQo+ID4gKyAgQ2FsbCB0aGUgcGFz c2VkIGluIENoaWxkIE5vdGlmeSBldmVudCBhbmQgY29udmVydCBhbnkgcG9pbnRlcnMgaW4NCj4g PiArIGxpYiB0byB2aXJ0dWFsIG1vZGUuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0gICAgRXZl bnQgICBUaGUgRXZlbnQgdGhhdCBpcyBiZWluZyBwcm9jZXNzZWQNCj4gPiArICBAcGFyYW1baW5d ICAgIENvbnRleHQgRXZlbnQgQ29udGV4dA0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklB UEkNCj4gPiArTGliUnRjVmlydHVhbE5vdGlmeUV2ZW50ICgNCj4gPiArICBJTiBFRklfRVZFTlQg ICAgICAgIEV2ZW50LA0KPiA+ICsgIElOIFZPSUQgICAgICAgICAgICAgKkNvbnRleHQNCj4gPiAr ICApDQo+ID4gK3sNCj4gPiArICAvLyBPbmx5IG5lZWRlZCBpZiB5b3UgYXJlIGdvaW5nIHRvIHN1 cHBvcnQgdGhlIE9TIGNhbGxpbmcgUlRDDQo+ID4gK2Z1bmN0aW9ucyBpbg0KPiA+ICsgIC8vIHZp cnR1YWwgbW9kZS4gWW91IHdpbGwgbmVlZCB0byBjYWxsIEVmaUNvbnZlcnRQb2ludGVyICgpLiBU bw0KPiA+ICtjb252ZXJ0IGFueQ0KPiA+ICsgIC8vIHN0b3JlZCBwaHlzaWNhbCBhZGRyZXNzZXMg dG8gdmlydHVhbCBhZGRyZXNzLiBBZnRlciB0aGUgT1MNCj4gPiArdHJhbnNpdGlvbnMgdG8NCj4g PiArICAvLyBjYWxsaW5nIGluIHZpcnR1YWwgbW9kZSwgYWxsIGZ1dHVyZSBydW50aW1lIGNhbGxz IHdpbGwgYmUgbWFkZQ0KPiA+ICtpbiB2aXJ0dWFsDQo+ID4gKyAgLy8gbW9kZS4NCj4gPiArICBF ZmlDb252ZXJ0UG9pbnRlciAoMHgwLCAoVk9JRCoqKSZtUnRjUmVnaXN0ZXJCYXNlKTsNCj4gPiAr DQo+ID4gKyAgLy8gQ29udmVydCB0aGUgUnRjUmVhZCBhbmQgUnRjV3JpdGUgcG9pbnRlcnMgZm9y IHJ1bnRpbWUgdXNlLg0KPiA+ICsgIEVmaUNvbnZlcnRQb2ludGVyICgweDAsIChWT0lEKiopJlJ0 Y1JlYWQpOw0KPiA+ICsgIEVmaUNvbnZlcnRQb2ludGVyICgweDAsIChWT0lEKiopJlJ0Y1dyaXRl KTsgfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gICAgVGhlIHVzZXIgRW50cnkgUG9pbnQgZm9yIFBj UlRDIG1vZHVsZS4NCj4gPg0KPiA+ICAgIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IGZvciBQY1JU QyBtb2R1bGUuIEl0IGluc3RhbGxzIHRoZSBVRUZJDQo+ID4gcnVudGltZSBzZXJ2aWNlIEBAIC0x MjUsMTIgKzE2OCw3NyBAQCBJbml0aWFsaXplUGNSdGMgKA0KPiA+ICAgIElOIEVGSV9TWVNURU1f VEFCTEUgICAgICAgICAgICAgICAgICAgICAgKlN5c3RlbVRhYmxlDQo+ID4gICAgKQ0KPiA+ICB7 DQo+ID4gLSAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KPiA+IC0gIEVGSV9FVkVOVCAgIEV2ZW50Ow0K PiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgU3RhdHVzOw0KPiA+ICsgIEVGSV9FVkVOVCAg ICAgICAgICAgICAgRXZlbnQ7DQo+ID4gKyAgRUZJX1BIWVNJQ0FMX0FERFJFU1MgICBSdGNQYWdl QmFzZTsNCj4gPg0KPiA+ICAgIEVmaUluaXRpYWxpemVMb2NrICgmbU1vZHVsZUdsb2JhbC5SdGNM b2NrLCBUUExfQ0FMTEJBQ0spOw0KPiA+ICAgIG1Nb2R1bGVHbG9iYWwuQ2VudHVyeVJ0Y0FkZHJl c3MgPSBHZXRDZW50dXJ5UnRjQWRkcmVzcyAoKTsNCj4gPg0KPiA+ICsgIGlmIChGaXhlZFBjZEdl dEJvb2wgKFBjZFJ0Y1VzZU1taW8pKSB7DQo+ID4gKyAgICBtUnRjUmVnaXN0ZXJCYXNlID0gUGNk R2V0OCAoUGNkUnRjSW5kZXhSZWdpc3Rlcik7DQo+ID4gKyAgICBSdGNQYWdlQmFzZSA9IG1SdGNS ZWdpc3RlckJhc2UgJiB+KEVGSV9QQUdFX1NJWkUgLSAxKTsNCj4gPiArDQo+ID4gKyAgICAvLyBE ZWNsYXJlIHRoZSBjb250cm9sbGVyIGFzIEVGSV9NRU1PUllfUlVOVElNRQ0KPiA+ICsgICAgU3Rh dHVzID0gZ0RTLT5BZGRNZW1vcnlTcGFjZSAoDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgRWZp R2NkTWVtb3J5VHlwZU1lbW9yeU1hcHBlZElvLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIFJ0 Y1BhZ2VCYXNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIEVGSV9QQUdFX1NJWkUsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgRUZJX01FTU9SWV9VQyB8IEVGSV9NRU1PUllfUlVOVElNRQ0K PiA+ICsgICAgICAgICAgICAgICAgICAgICk7DQo+ID4gKyAgICBpZiAoRUZJX0VSUk9SIChTdGF0 dXMpKSB7DQo+ID4gKyAgICAgIERFQlVHICgoDQo+ID4gKyAgICAgICAgREVCVUdfRVJST1IsICJG YWlsZWQgdG8gYWRkIG1lbW9yeSBzcGFjZS4gU3RhdHVzID0gJXJcbiIsDQo+ID4gKyAgICAgICAg U3RhdHVzDQo+ID4gKyAgICAgICAgKSk7DQo+ID4gKyAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4g KyAgICB9DQo+ID4gKw0KPiA+ICsgICAgU3RhdHVzID0gZ0RTLT5BbGxvY2F0ZU1lbW9yeVNwYWNl ICgNCj4gPiArICAgICAgICAgICAgICAgICAgICBFZmlHY2RBbGxvY2F0ZUFkZHJlc3MsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgRWZpR2NkTWVtb3J5VHlwZU1lbW9yeU1hcHBlZElvLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgIDAsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgRUZJX1BB R0VfU0laRSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAmUnRjUGFnZUJhc2UsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgSW1hZ2VIYW5kbGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg TlVMTA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICk7DQo+ID4gKyAgICBpZiAoRUZJX0VSUk9S IChTdGF0dXMpKSB7DQo+ID4gKyAgICAgIERFQlVHICgoDQo+ID4gKyAgICAgICAgREVCVUdfRVJS T1IsDQo+ID4gKyAgICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgc3BhY2UuIFN0YXR1 cyA9ICVyXG4iLA0KPiA+ICsgICAgICAgIFN0YXR1cw0KPiA+ICsgICAgICAgICkpOw0KPiA+ICsg ICAgICBnRFMtPlJlbW92ZU1lbW9yeVNwYWNlICgNCj4gPiArICAgICAgICAgICAgIFJ0Y1BhZ2VC YXNlLA0KPiA+ICsgICAgICAgICAgICAgRUZJX1BBR0VfU0laRQ0KPiA+ICsgICAgICAgICAgICAg KTsNCj4gPiArICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAg ICBTdGF0dXMgPSBnRFMtPlNldE1lbW9yeVNwYWNlQXR0cmlidXRlcyAoDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgUnRjUGFnZUJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgRUZJX1BB R0VfU0laRSwNCj4gPiArICAgICAgICAgICAgICAgICAgICBFRklfTUVNT1JZX1VDIHwgRUZJX01F TU9SWV9SVU5USU1FDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiArICAgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiArICAgICAgREVCVUcgKCgNCj4gPiArICAgICAgICBE RUJVR19FUlJPUiwNCj4gPiArICAgICAgICAiRmFpbGVkIHRvIHNldCBtZW1vcnkgYXR0cmlidXRl cy4gU3RhdHVzID0gJXJcbiIsDQo+ID4gKyAgICAgICAgU3RhdHVzDQo+ID4gKyAgICAgICAgKSk7 DQo+ID4gKyAgICAgIGdEUy0+RnJlZU1lbW9yeVNwYWNlICgNCj4gPiArICAgICAgICAgICAgICAg UnRjUGFnZUJhc2UsDQo+ID4gKyAgICAgICAgICAgICAgIEVGSV9QQUdFX1NJWkUNCj4gPiArICAg ICAgICAgICAgICAgKTsNCj4gPiArICAgICAgZ0RTLT5SZW1vdmVNZW1vcnlTcGFjZSAoDQo+ID4g KyAgICAgICAgICAgICBSdGNQYWdlQmFzZSwNCj4gPiArICAgICAgICAgICAgIEVGSV9QQUdFX1NJ WkUNCj4gPiArICAgICAgICAgICAgICk7DQo+ID4gKyAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4g KyAgICB9DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiAgICBTdGF0dXMgPSBQY1J0Y0luaXQgKCZtTW9k dWxlR2xvYmFsKTsNCj4gPiAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiA+DQo+ID4g QEAgLTE2NSw3ICsyNzMsMjMgQEAgSW5pdGlhbGl6ZVBjUnRjICgNCj4gPiAgICAgICAgICAgICAg ICAgICAgTlVMTCwNCj4gPiAgICAgICAgICAgICAgICAgICAgTlVMTA0KPiA+ICAgICAgICAgICAg ICAgICAgICApOw0KPiA+IC0gIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4gKyAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVz KTsNCj4gPiArICAgIHJldHVybiBTdGF0dXM7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBpZiAo Rml4ZWRQY2RHZXRCb29sIChQY2RSdGNVc2VNbWlvKSkgew0KPiA+ICsgICAgLy8gUmVnaXN0ZXIg Zm9yIHRoZSB2aXJ0dWFsIGFkZHJlc3MgY2hhbmdlIGV2ZW50DQo+ID4gKyAgICBTdGF0dXMgPSBn QlMtPkNyZWF0ZUV2ZW50RXggKA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIEVWVF9OT1RJRllf U0lHTkFMLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIFRQTF9OT1RJRlksDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgTGliUnRjVmlydHVhbE5vdGlmeUV2ZW50LA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgIE5VTEwsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgJmdFZmlFdmVudFZpcnR1 YWxBZGRyZXNzQ2hhbmdlR3VpZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAmbVZpcnR1YWxB ZGRyQ2hhbmdlRXZlbnQNCj4gPiArICAgICAgICAgICAgICAgICAgICApOw0KPiA+ICsgICAgQVNT RVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiArICB9DQo+ID4NCj4gPiAgICByZXR1cm4gU3Rh dHVzOw0KPiA+ICB9DQo+ID4gZGlmZiAtLWdpdA0KPiA+DQo+IGEvUGNBdENoaXBzZXRQa2cvUGNh dFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjYXRSZWFsVGltZUNsb2NrUnVudGltDQo+IGVEDQo+ ID4geGUuaW5mDQo+ID4NCj4gYi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRp bWVEeGUvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW0NCj4gZUQNCj4gPiB4ZS5pbmYgaW5kZXgNCj4g Pg0KPiBjNzNlZTk4MTA1ZTUxMGY5ZTRlMjNjMWE2YzFlNWM1MDUzMjVkMmM5Li4zYTM3M2QxMWY4 YmZjN2RmMGU0ZDAwYmU4DQo+IGI0Mw0KPiA+IGU5MGJmYTA2YjE5MiAxMDA2NDQNCj4gPiAtLS0N Cj4gPg0KPiBhL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY2F0 UmVhbFRpbWVDbG9ja1J1bnRpbQ0KPiBlRA0KPiA+IHhlLmluZg0KPiA+ICsrKw0KPiBiL1BjQXRD aGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY2F0UmVhbFRpbWVDbG9ja1J1 bnQNCj4gPiArKysgaW1lRHhlLmluZg0KPiA+IEBAIC02LDYgKzYsNyBAQA0KPiA+ICAjDQo+ID4g ICMgQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMNCj4gPiByZXNlcnZlZC48QlI+ICAjIENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluYy4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE4LCBBUk0gTGlt aXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gICMNCj4gPiAgIyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCAgIyBAQCAtNDgsNiArNDksNyBAQA0K PiA+IFtMaWJyYXJ5Q2xhc3Nlc10NCj4gPiAgICBCYXNlTGliDQo+ID4gICAgUGNkTGliDQo+ID4g ICAgUmVwb3J0U3RhdHVzQ29kZUxpYg0KPiA+ICsgIER4ZVNlcnZpY2VzVGFibGVMaWINCj4gPg0K PiA+ICBbUHJvdG9jb2xzXQ0KPiA+ICAgIGdFZmlSZWFsVGltZUNsb2NrQXJjaFByb3RvY29sR3Vp ZCAgICAgICAgICAgICAjIyBQUk9EVUNFUw0KPiA+IEBAIC02MSwxMCArNjMsMTMgQEAgW0d1aWRz XQ0KPiA+ICAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBTeXN0ZW1UYWJsZQ0KPiA+ICAgIGdF ZmlBY3BpVGFibGVHdWlkDQo+ID4NCj4gPiArICBnRWZpRXZlbnRWaXJ0dWFsQWRkcmVzc0NoYW5n ZUd1aWQNCj4gPiArDQo+ID4gIFtGaXhlZFBjZF0NCj4gPiAgICBnUGNBdENoaXBzZXRQa2dUb2tl blNwYWNlR3VpZC5QY2RJbml0aWFsVmFsdWVSdGNSZWdpc3RlckEgICAgICMjDQo+IENPTlNVTUVT DQo+ID4gICAgZ1BjQXRDaGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQuUGNkSW5pdGlhbFZhbHVlUnRj UmVnaXN0ZXJCICAgICAjIw0KPiBDT05TVU1FUw0KPiA+ICAgIGdQY0F0Q2hpcHNldFBrZ1Rva2Vu U3BhY2VHdWlkLlBjZEluaXRpYWxWYWx1ZVJ0Y1JlZ2lzdGVyRCAgICAgIyMNCj4gQ09OU1VNRVMN Cj4gPiArICBnUGNBdENoaXBzZXRQa2dUb2tlblNwYWNlR3VpZC5QY2RSdGNVc2VNbWlvICAgICAg ICAgICAgICAgICAgICMjDQo+IENPTlNVTUVTDQo+ID4NCj4gPiAgW1BjZF0NCj4gPiAgICBnUGNB dENoaXBzZXRQa2dUb2tlblNwYWNlR3VpZC5QY2RSZWFsVGltZUNsb2NrVXBkYXRlVGltZW91dCAg ICMjDQo+IENPTlNVTUVTDQo+ID4gQEAgLTc2LDUgKzgxLDggQEAgW1BjZF0NCj4gPiAgW0RlcGV4 XQ0KPiA+ICAgIGdFZmlWYXJpYWJsZUFyY2hQcm90b2NvbEd1aWQgQU5EIGdFZmlWYXJpYWJsZVdy aXRlQXJjaFByb3RvY29sR3VpZA0KPiA+DQo+ID4gK1tEZXBleC5jb21tb24uRFhFX1JVTlRJTUVf RFJJVkVSXQ0KPiA+ICsgIGdFZmlDcHVBcmNoUHJvdG9jb2xHdWlkDQo+ID4gKw0KPiA+ICBbVXNl ckV4dGVuc2lvbnMuVGlhbm9Db3JlLiJFeHRyYUZpbGVzIl0NCj4gPiAgICBQY1J0Y0V4dHJhLnVu aQ0KPiA+DQo+IA0KPiANCj4gDQoNCg==