From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.10777.1593398207025547811 for ; Sun, 28 Jun 2020 19:36:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=SHun/oyf; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: guomin.jiang@intel.com) IronPort-SDR: MHcw5P8K29CNcdchV1jJndeJOi0epnF0POneb71TlZMUtudofV/TO+5Xcgvt9B1/G0Aq/nAW4X f22FlLHyfJJA== X-IronPort-AV: E=McAfee;i="6000,8403,9666"; a="143373891" X-IronPort-AV: E=Sophos;i="5.75,293,1589266800"; d="scan'208";a="143373891" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2020 19:36:46 -0700 IronPort-SDR: JBCANQgQGfFno4gaJn1shXiK3BYaUi2d3KD2JTf0sH33364hgh+k3WZRhiEYyLg90HRv1h7O0B 3KlMXAwRSDwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,293,1589266800"; d="scan'208";a="315434984" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga007.jf.intel.com with ESMTP; 28 Jun 2020 19:36:45 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 28 Jun 2020 19:36:43 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 28 Jun 2020 19:36:42 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) 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; Sun, 28 Jun 2020 19:36:42 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 28 Jun 2020 19:36:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HZDxcfqar2mjkNZh3VzkO2lYqAGE1upD83Hr0jSlj1WImSYTNaU3oyoNcrkJhIh7t5t6VDpbPnTZxdhExIAk+3rEfKj+d52F7KYgnrMLlGV7dCIUDEwQ5lJbI3/KCS6vs95Z4uz2QJYE26D//OS56bjT5sDs8lV26d4/92w6kHglwPstN+IxPicSIlqFf32ucJv4waY2FUULsosVfnrxYSf5LsgtJVUuuL3WjK+LdeJYWSHcbHJkJAI3Y2C5WTomYTr3HKZLum56NAnBteZ9RtPtjORP34kNNfUfz1tseqCLnjC6+lQ1qQABdvu7dqroncRDXGPb9FSfGZegcOIh3g== 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=1zcWAtK0ZDVsCxCqryLYu/1hRoVsr9fHzVpwVZlLkyE=; b=bzpTB2kHyG1mKeTkcEBEWCXeVmjr4uM6IHC5mSDeQOOPMRgXihtIThCcbAMRU1cuvrPcDv4U6C9T3lkGXnbIQoM73eQA2i7phWrA48rEvshHDLIhx0HRD9wQg7GaawkAXKHWt1zre6hr+aBvFTlQOTRUO75g251/lg5e/wwKnNFcZsuLssdw/FQO0YdlLZcm9kjYTtBbuMVfmMyZT1zeW6vFXR6AA1X8Q1VD/Eklq1kFHpNQ9SvthbPsUCyjoOWatTSf71yrRe9TgLurpR6xjEb+9hDh6v92Q+F7GRieyX+0Iy6t199Hh5mYzd9UOEscNdUrNmz80rHYVfwC6D18gQ== 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=1zcWAtK0ZDVsCxCqryLYu/1hRoVsr9fHzVpwVZlLkyE=; b=SHun/oyfEWsGZBiAjyw1Ae3SZQpSS4d0BJZqhIivSGw1srddDYkDrDemvc38X7r0b6rA7rCD3rRZYShrEgtLTNCGr65CLvoaFzPgw0CV/ukgPzpbZotQBBD4r7LHCQHOhOgzHphVh9hS9QuPbU98CO1hN4aIlwtjW7E8Ge0fBhc= Received: from DM6PR11MB2955.namprd11.prod.outlook.com (2603:10b6:5:65::31) by DM5PR1101MB2091.namprd11.prod.outlook.com (2603:10b6:4:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.26; Mon, 29 Jun 2020 02:36:40 +0000 Received: from DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d]) by DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d%5]) with mapi id 15.20.3131.026; Mon, 29 Jun 2020 02:36:40 +0000 From: "Guomin Jiang" To: "devel@edk2.groups.io" , "ard.biesheuvel@arm.com" , Sami Mujawar CC: "leif@nuviainc.com" , "Ni, Ray" , "Alexandru.Elisei@arm.com" , "Andre.Przywara@arm.com" , "Matteo.Carlini@arm.com" , "Laura.Moretta@arm.com" , "nd@arm.com" Subject: Re: [edk2-devel] [PATCH v3 01/15] PcAtChipsetPkg: Add MMIO Support to RTC driver Thread-Topic: [edk2-devel] [PATCH v3 01/15] PcAtChipsetPkg: Add MMIO Support to RTC driver Thread-Index: AQHWSixTI5MX7z1l702hhPWHkjAclKjpMiQAgAW1SQA= Date: Mon, 29 Jun 2020 02:36:40 +0000 Message-ID: References: <20200624133458.61920-1-sami.mujawar@arm.com> <20200624133458.61920-2-sami.mujawar@arm.com> In-Reply-To: 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.198.147.196] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9d3a5af0-0245-4c54-8f06-08d81bd54129 x-ms-traffictypediagnostic: DM5PR1101MB2091: 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: 044968D9E1 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9P7RZIllJcTBdnl2nhU7OMK82BuC7HibZk0clMbOicm6hvI1GigI56jedibXIlmcRAmalz6Tb+urYXCTpYSGGNAXBElAHvoXJv0xQC/tp3RL8XhGax2DT2R3HdMLUulnbuhMQNgbIeN/ipqDLmLwzZ/woZmJuHEnaOZSPHu5ibQPpBjwJpU5lLidKXUT3VpGRpr0DQulFCLZhczTAs6NMxifFnL7RduNXBVCjGlip9jiIi/xe6e50viH7e3PqcRm56o2EQikw6otpz4GS6edI89e5S9qJKN6LaBfyEU0hSD8jArN4tCy9QnOkwNDi7NuNUYNhrRhzd0tuR7QqNORtH1yHW4zwZ9sKBBs8P7y4j4DInacYDh4pQXblNKSAgWBKkmQLKHLldHChxbYOLkzGw== 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)(4636009)(396003)(366004)(346002)(376002)(136003)(39860400002)(30864003)(7696005)(76116006)(53546011)(6506007)(26005)(86362001)(186003)(83380400001)(110136005)(966005)(54906003)(316002)(71200400001)(19627235002)(5660300002)(66946007)(66476007)(66556008)(64756008)(66446008)(8676002)(52536014)(2906002)(4326008)(9686003)(33656002)(8936002)(55016002)(478600001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: r6lJdWB6MVcdqJytfXL3aMfv7OlC0pDn+XeReApv5ZOgd4rNkfy2kiiq+tGrhKUx/JxfwXLFuvNUdK+Qh6vEGpA6Fbd/iZzOtKtruVQnRNEeKO1eog+PJaLb7zR9x4774+SoXghgsJy9JPogYSGjQ5hQX541koy30dXSkftRgIF8OPNAhwEcaz9gJLtIjgPmPFqVGjvB8om0EYYujlxp2yg+7MU3vL07tiE37PPRp59gaJvLlt6wXbTodcIC36ezkPulfuYsAbKvvBnBGMslufC58dV83Cubf5hW2x6Zl7D2zYXT7mU157Z7w/VGKhK+xyFGyGr3xQbWXeTbuJgi9JrCrYhTj4UQwbfTZK0+57qOrALhJ/Q3/e5zWrRn01RK9ouqjnxWDciailIMy9P12sl6zHcvhecHGCO7dyLRSyIeQS81zNOg1MaflTBcqm/kmnHuPi50v13ehrM6NyoOh8DOOZmBhN7gDfmVLVGB7sEBcx7KepJsMpcela86Q+GV MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2955.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d3a5af0-0245-4c54-8f06-08d81bd54129 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2020 02:36:40.7232 (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: UmKjl9KhKeDw6vGz1hEcDHljw7CB4t3ifmtSpPbx38IsJMwrg9rXqflgOPB9eeBBbGCxBoHu92xJDiHOV9GD+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1101MB2091 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 SGkgQXJkLA0KDQpXaGVuIGJ1aWxkIE1pblBsYXRmb3JtLCBpdCB3aWxsIHNob3cgRWRrMlBsYXRm b3Jtcy9QbGF0Zm9ybS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9QY2kvTGlicmFyeS9QY2lTZWdtZW50 SW5mb0xpYlNpbXBsZS9QY2lTZWdtZW50SW5mb0xpYlNpbXBsZS5jOjM0OjE6IGVycm9yOiBjb25m bGljdGluZyB0eXBlcyBmb3Ig4oCYR2V0UGNpU2VnbWVudEluZm/igJkNCg0KQ291bGQgeW91IGNv bmZpcm0gaXQ/DQoNClRoYW5rcw0KR3VvbWluDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24g QmVoYWxmIE9mIEFyZA0KPiBCaWVzaGV1dmVsDQo+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDI1LCAy MDIwIDc6MjUgUE0NCj4gVG86IFNhbWkgTXVqYXdhciA8c2FtaS5tdWphd2FyQGFybS5jb20+OyBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogbGVpZkBudXZpYWluYy5jb207IE5pLCBSYXkgPHJh eS5uaUBpbnRlbC5jb20+Ow0KPiBBbGV4YW5kcnUuRWxpc2VpQGFybS5jb207IEFuZHJlLlByenl3 YXJhQGFybS5jb207DQo+IE1hdHRlby5DYXJsaW5pQGFybS5jb207IExhdXJhLk1vcmV0dGFAYXJt LmNvbTsgbmRAYXJtLmNvbQ0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MyAw MS8xNV0gUGNBdENoaXBzZXRQa2c6IEFkZCBNTUlPDQo+IFN1cHBvcnQgdG8gUlRDIGRyaXZlcg0K PiANCj4gT24gNi8yNC8yMCAzOjM0IFBNLCBTYW1pIE11amF3YXIgd3JvdGU6DQo+ID4gU29tZSB2 aXJ0dWFsIG1hY2hpbmUgbWFuYWdlcnMgbGlrZSBLdm10b29sIGVtdWxhdGUgdGhlIE1DMTQ2ODE4 IFJUQw0KPiA+IGNvbnRyb2xsZXIgaW4gdGhlIE1NSU8gc3BhY2Ugc28gdGhhdCBhcmNoaXRlY3R1 cmVzIHRoYXQgZG8gbm90IHN1cHBvcnQNCj4gPiBJL08gTWFwcGVkIEkvTyBjYW4gdXNlIHRoZSBS VEMuIFRoaXMgcGF0Y2ggYWRkcyBNTUlPIHN1cHBvcnQgdG8gdGhlDQo+ID4gUlRDIGNvbnRyb2xs ZXIgZHJpdmVyLg0KPiA+DQo+ID4gVGhlIFBDRCBQY2RSdGNVc2VNbWlvIGhhcyBiZWVuIGFkZGVk IHRvIHNlbGVjdCBJL08gb3IgTU1JTyBzdXBwb3J0Lg0KPiA+ICAgIElmIFBjZFJ0Y1VzZU1taW8g aXM6DQo+ID4gICAgICBUUlVFICAtIEluZGljYXRlcyB0aGUgUlRDIHBvcnQgcmVnaXN0ZXJzIGFy ZSBpbiBNTUlPIHNwYWNlLg0KPiA+ICAgICAgRkFMU0UgLSBJbmRpY2F0ZXMgdGhlIFJUQyBwb3J0 IHJlZ2lzdGVycyBhcmUgaW4gSS9PIHNwYWNlLg0KPiA+ICAgICAgICAgICAgICBEZWZhdWx0IGlz IEkvTyBzcGFjZS4NCj4gPg0KPiA+IEFkZGl0aW9uYWxseSB0d28gbmV3IFBDRHMgUGNkUnRjSW5k ZXhSZWdpc3RlcjY0IGFuZA0KPiA+IFBjZFJ0Y1RhcmdldFJlZ2lzdGVyNjQgaGF2ZSBiZWVuIGlu dHJvZHVjZWQgdG8gcHJvdmlkZSB0aGUgYmFzZQ0KPiA+IGFkZHJlc3MgZm9yIHRoZSBSVEMgcmVn aXN0ZXJzIGluIHRoZSBNTUlPIHNwYWNlLg0KPiA+DQo+ID4gV2hlbiBNTUlPIHN1cHBvcnQgaXMg c2VsZWN0ZWQgKFBjZFJ0Y1VzZU1taW8gPT0gVFJVRSkgdGhlIGRyaXZlcg0KPiA+IGNvbnZlcnRz IHRoZSBwb2ludGVycyB0byB0aGUgUlRDIE1NSU8gcmVnaXN0ZXJzIHNvIHRoYXQgdGhlIFJUQw0K PiA+IHJlZ2lzdGVycyBhcmUgYWNjZXNzaWJsZSBwb3N0IEV4aXRCb290U2VydmljZXMuDQo+ID4N Cj4gPiBTaWduZWQtb2ZmLWJ5OiBTYW1pIE11amF3YXIgPHNhbWkubXVqYXdhckBhcm0uY29tPg0K PiANCj4gQ2FuJ3Qgd2UgaW1wbGVtZW50IHRoaXMgd2l0aG91dCBmdW5jdGlvbiBwb2ludGVycz8g V2hhdCBMZWlmIHN1Z2dlc3RlZCB3YXMNCj4gdXNpbmcgU1RBVElDIGhlbHBlciBmdW5jdGlvbnMg Zm9yIHJlYWQgYW5kIHdyaXRlLCB3aGVyZSBlYWNoIG9uZSBoYXMgYSB0ZXN0DQo+IGZvciB0aGUg ZmVhdHVyZSBQQ0QgdG8gZGVjaWRlIHdoZXRoZXIgdG8gdXNlIHRoZSBJTyBvciB0aGUgTU1JTyB2 ZXJzaW9uLg0KPiANCj4gVXNpbmcgZnVuY3Rpb24gcG9pbnRlcnMgaXMgdW5uZWVkZWQgY29tcGxl eGl0eSwgZXNwZWNpYWxseSBnaXZlbiB0aGUgZmFjdA0KPiB0aGF0IHdlIG5lZWQgdG8gZml4IHVw IHRoZWlyIHZhbHVlcyB3aGVuIHRoZSBhZGRyZXNzIHNwYWNlIGlzIHZpcnR1YWxseQ0KPiByZW1h cHBlZCBieSB0aGUgT1MuDQo+IA0KPiA+IC0tLQ0KPiA+DQo+ID4gTm90ZXM6DQo+ID4gICAgICB2 MzoNCj4gPiAgICAgIC0gTWFrZSBQY2RSdGNVc2VNbWlvIGEgZmVhdHVyZSBQQ0QuICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtTYW1pXQ0KPiA+ICAgICAgLSBSZWFkIHRoZSBSVEMgTU1J TyBiYXNlIGFkZHJlc3MgZnJvbSB0aGUgRFQuICAgICAgICAgICAgICAgICAgICAgW0FuZHJlXQ0K PiA+ICAgICAgLSBJbnRyb2R1Y2UgUENEcyBmb3IgUlRDIEluZGV4IGFuZCBUYXJnZXQgcmVnaXN0 ZXIgYmFzZSAgICAgICAgICAgW1NhbWldDQo+ID4gICAgICAgIGFkZHJlc3MgaW4gdGhlIE1NSU8g c3BhY2UuDQo+ID4gICAgICAtIE1vdmUgUlRDIE1NSU8gcmVnaW9uIG1hcHBpbmcgY29kZSB0byBh IHNlcGFyYXRlIHBsYXRmb3JtDQo+IFtTYW1pXQ0KPiA+ICAgICAgICBzcGVjaWZpYyBsaWJyYXJ5 LiBUaGlzIGxpYnJhcnkgYWxzbyByZWFkcyB0aGUgYmFzZSBhZGRyZXNzZXMNCj4gPiAgICAgICAg Zm9yIHRoZSBSVEMgZnJvbSBEVCBhbmQgY29uZmlndXJlcyB0aGUgUlRDIEluZGV4IGFuZCBUYXJn ZXQNCj4gPiAgICAgICAgcmVnaXN0ZXIgUENEcy4NCj4gPiAgICAgICAgUmVmOiBodHRwczovL2Vk azIuZ3JvdXBzLmlvL2cvZGV2ZWwvdG9waWMvNzQyMDA5MDUjNjAzMDcNCj4gPg0KPiA+ICAgICAg djI6DQo+ID4gICAgICAtIENvZGUgcmV2aWV3IGNvbW1lbnRzIGluY29ycG9yYXRlZC4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbU2FtaV0NCj4gPg0KPiA+ICAgICAgdjE6DQo+ID4gICAg ICAtIEFkZCBzdXBwb3J0IHRvIHJlYWQvd3JpdGUgZnJvbSBSVEMgcmVnaXN0ZXJzIHVzaW5nIE1N SU8gYWNjZXNzDQo+IFtTYW1pXQ0KPiA+ICAgICAgLSBVc2Ugd3JhcHBlciBmdW5jdGlvbnMgZm9y IFJ0Y1JlYWQvV3JpdGUgYWNjZXNzb3JzICAgICAgICAgICAgICAgW0xlaWZdDQo+ID4gICAgICAg IFJlZjogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3RvcGljLzMwOTE1MjgxIzMwNjk1 DQo+ID4NCj4gPiAgIFBjQXRDaGlwc2V0UGtnL1BjQXRDaGlwc2V0UGtnLmRlYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICsrKw0KPiA+ICAgUGNBdENoaXBz ZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjLmMgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxMTkNCj4gKysrKysrKysrKysrKysrKystLS0NCj4gPiAgIFBjQXRDaGlwc2V0 UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy5oICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDMxDQo+ICsrKysrDQo+ID4gICBQY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVD bG9ja1J1bnRpbWVEeGUvUGNSdGNFbnRyeS5jICAgICAgICAgICAgICAgICAgICB8DQo+IDcyICsr KysrKysrKysrLQ0KPiA+DQo+IFBjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGlt ZUR4ZS9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWUNCj4gRHhlLmluZiB8ICAgOCArKw0KPiA+ICAg NSBmaWxlcyBjaGFuZ2VkLCAyMzAgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pDQo+ID4N Cj4gPiBkaWZmIC0tZ2l0IGEvUGNBdENoaXBzZXRQa2cvUGNBdENoaXBzZXRQa2cuZGVjDQo+ID4g Yi9QY0F0Q2hpcHNldFBrZy9QY0F0Q2hpcHNldFBrZy5kZWMNCj4gPiBpbmRleA0KPiA+DQo+IDg4 ZGU1Y2NlZWE1OTMxNzZjM2EyNDI1YTU5NjNiNjZiNzg5ZjJiOWUuLmVkMmQ5NTU1MGI4ZDE1Mzk5 NWIzMGNkYw0KPiAyOTBjDQo+ID4gZjNiYjkwNWUyMTFiIDEwMDY0NA0KPiA+IC0tLSBhL1BjQXRD aGlwc2V0UGtnL1BjQXRDaGlwc2V0UGtnLmRlYw0KPiA+ICsrKyBiL1BjQXRDaGlwc2V0UGtnL1Bj QXRDaGlwc2V0UGtnLmRlYw0KPiA+IEBAIC02LDYgKzYsNyBAQA0KPiA+ICAgIw0KPiA+ICAgIyBD b3B5cmlnaHQgKGMpIDIwMDkgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+DQo+ID4gICAjIENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluYy4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE4IC0gMjAyMCwgQVJN IExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICAgIw0KPiA+ICAgIyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICAgIw0KPiA+IEBA IC00MSw2ICs0MiwxMyBAQCBbUGNkc0ZlYXR1cmVGbGFnXQ0KPiA+ICAgICAjIEBQcm9tcHQgQ29u ZmlndXJlIEhQRVQgdG8gdXNlIE1TSS4NCj4gPg0KPiA+DQo+IGdQY0F0Q2hpcHNldFBrZ1Rva2Vu U3BhY2VHdWlkLlBjZEhwZXRNc2lFbmFibGV8VFJVRXxCT09MRUFOfDB4MDANCj4gMDAxMDAwDQo+ ID4NCj4gPiArICAjIyBJbmRpY2F0ZXMgdGhlIFJUQyBwb3J0IHJlZ2lzdGVycyBhcmUgaW4gTU1J TyBzcGFjZSwgb3IgaW4gSS9PIHNwYWNlLg0KPiA+ICsgICMgIERlZmF1bHQgaXMgSS9PIHNwYWNl LjxCUj48QlI+DQo+ID4gKyAgIyAgIFRSVUUgIC0gUlRDIHBvcnQgcmVnaXN0ZXJzIGFyZSBpbiBN TUlPIHNwYWNlLjxCUj4NCj4gPiArICAjICAgRkFMU0UgLSBSVEMgcG9ydCByZWdpc3RlcnMgYXJl IGluIEkvTyBzcGFjZS48QlI+DQo+ID4gKyAgIyBAUHJvbXB0IFJUQyBwb3J0IHJlZ2lzdGVycyB1 c2UgTU1JTy4NCj4gPiArDQo+ID4gKw0KPiBnUGNBdENoaXBzZXRQa2dUb2tlblNwYWNlR3VpZC5Q Y2RSdGNVc2VNbWlvfEZBTFNFfEJPT0xFQU58MHgwMDAwDQo+IDAwMjENCj4gPiArDQo+ID4gICBb UGNkc0ZpeGVkQXRCdWlsZCwgUGNkc0R5bmFtaWMsIFBjZHNEeW5hbWljRXgsDQo+IFBjZHNQYXRj aGFibGVJbk1vZHVsZV0NCj4gPiAgICAgIyMgVGhpcyBQQ0Qgc3BlY2lmaWVzIHRoZSBiYXNlIGFk ZHJlc3Mgb2YgdGhlIEhQRVQgdGltZXIuDQo+ID4gICAgICMgQFByb21wdCBIUEVUIGJhc2UgYWRk cmVzcy4NCj4gPiBAQCAtNjgsNiArNzYsMTQgQEAgW1BjZHNGaXhlZEF0QnVpbGQsIFBjZHNEeW5h bWljLCBQY2RzRHluYW1pY0V4LA0KPiBQY2RzUGF0Y2hhYmxlSW5Nb2R1bGVdDQo+ID4gICAgICMg QEV4cHJlc3Npb24gMHg4MDAwMDAwMSB8DQo+IGdQY0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlk LlBjZE1heGltYWxWYWxpZFllYXIgPA0KPiBnUGNBdENoaXBzZXRQa2dUb2tlblNwYWNlR3VpZC5Q Y2RNaW5pbWFsVmFsaWRZZWFyICsgMTAwDQo+ID4NCj4gPg0KPiBnUGNBdENoaXBzZXRQa2dUb2tl blNwYWNlR3VpZC5QY2RNYXhpbWFsVmFsaWRZZWFyfDIwOTd8VUlOVDE2fDB4MDAwDQo+IDAwMA0K PiA+IDBFDQo+ID4NCj4gPiArICAjIyBTcGVjaWZpZXMgUlRDIEluZGV4IFJlZ2lzdGVyIGFkZHJl c3MgaW4gTU1JTyBzcGFjZS4NCj4gPiArICAjIEBQcm9tcHQgUlRDIEluZGV4IFJlZ2lzdGVyIGFk ZHJlc3MNCj4gPiArDQo+ID4gKw0KPiBnUGNBdENoaXBzZXRQa2dUb2tlblNwYWNlR3VpZC5QY2RS dGNJbmRleFJlZ2lzdGVyNjR8MHgwfFVJTlQ2NHwweDAwDQo+IDANCj4gPiArIDAwMDIyDQo+ID4g Kw0KPiA+ICsgICMjIFNwZWNpZmllcyBSVEMgVGFyZ2V0IFJlZ2lzdGVyIGFkZHJlc3MgaW4gTU1J TyBzcGFjZS4NCj4gPiArICAjIEBQcm9tcHQgUlRDIFRhcmdldCBSZWdpc3RlciBhZGRyZXNzDQo+ ID4gKw0KPiA+ICsNCj4gZ1BjQXRDaGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQuUGNkUnRjVGFyZ2V0 UmVnaXN0ZXI2NHwweDB8VUlOVDY0fDB4MDANCj4gPiArIDAwMDAyMw0KPiA+ICsNCj4gPiAgIFtQ Y2RzRml4ZWRBdEJ1aWxkLCBQY2RzUGF0Y2hhYmxlSW5Nb2R1bGVdDQo+ID4gICAgICMjIERlZmlu ZXMgdGhlIEFDUEkgcmVnaXN0ZXIgc2V0IGJhc2UgYWRkcmVzcy4NCj4gPiAgICAgIyAgVGhlIGlu dmFsaWQgMHhGRkZGIGlzIGFzIGl0cyBkZWZhdWx0IHZhbHVlLiBJdCBtdXN0IGJlIGNvbmZpZ3Vy ZWQgdG8gdGhlDQo+IHJlYWwgdmFsdWUuDQo+ID4gZGlmZiAtLWdpdCBhL1BjQXRDaGlwc2V0UGtn L1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy5jDQo+ID4gYi9QY0F0Q2hpcHNldFBr Zy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuYw0KPiA+IGluZGV4DQo+ID4NCj4g NTJhZjE3OTQxNzg2ZWY4MWMzOTExNTEyZWU2NDU1MTcyNGU2NzIwOS4uNWRkYzA2NTQ5MTAzY2U5 OTQ0MDU0ZDNhMA0KPiA1YjcNCj4gPiAzODAzZjcwMzdlYzIgMTAwNjQ0DQo+ID4gLS0tIGEvUGNB dENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjLmMNCj4gPiArKysg Yi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuYw0KPiA+ IEBAIC0zLDYgKzMsNyBAQA0KPiA+DQo+ID4gICBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE4LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gICBDb3B5cmln aHQgKGMpIDIwMTcsIEFNRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICtDb3B5 cmlnaHQgKGMpIDIwMTggLSAyMDIwLCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ID4NCj4gPiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ID4NCj4gPiBAQCAtMTAsNiArMTEsOSBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiA+DQo+ID4gICAjaW5jbHVkZSAiUGNSdGMuaCINCj4gPg0K PiA+ICtleHRlcm4gVUlOVE4gIG1SdGNJbmRleFJlZ2lzdGVyOw0KPiA+ICtleHRlcm4gVUlOVE4g IG1SdGNUYXJnZXRSZWdpc3RlcjsNCj4gPiArDQo+ID4gICAvLw0KPiA+ICAgLy8gRGF5cyBvZiBt b250aC4NCj4gPiAgIC8vDQo+ID4gQEAgLTIxLDYgKzI1LDI4IEBAIFVJTlROIG1EYXlPZk1vbnRo W10gPSB7IDMxLCAyOSwgMzEsIDMwLCAzMSwgMzAsIDMxLA0KPiAzMSwgMzAsIDMxLCAzMCwgMzEg fTsNCj4gPiAgIENIQVIxNiBtVGltZVpvbmVWYXJpYWJsZU5hbWVbXSA9IEwiUlRDIjsNCj4gPg0K PiA+ICAgLyoqDQo+ID4gKyAgQSBmdW5jdGlvbiBwb2ludGVyIHRoYXQgZXZhbHVhdGVzIHRvIGEg ZnVuY3Rpb24gdGhhdCByZWFkcyB0aGUgUlRDDQo+ID4gKyBjb250ZW50ICB0aHJvdWdoIGl0cyBy ZWdpc3RlcnMgZWl0aGVyIHVzaW5nIElPIG9yIE1NSU8gYWNjZXNzLg0KPiA+ICsNCj4gPiArICBA cGFyYW0gIEFkZHJlc3MgICBBZGRyZXNzIG9mZnNldCBvZiBSVEMuIEl0IGlzIHJlY29tbWVuZGVk IHRvIHVzZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIG1hY3JvcyBzdWNoIGFzIFJUQ19BRERS RVNTX1NFQ09ORFMuDQo+ID4gKw0KPiA+ICsgIEByZXR1cm4gVGhlIGRhdGEgb2YgVUlOVDggdHlw ZSByZWFkIGZyb20gUlRDLg0KPiA+ICsqKi8NCj4gPiArUlRDX1JFQUQgIFJ0Y1JlYWQ7DQo+ID4g Kw0KPiA+ICsvKioNCj4gPiArICBBIGZ1bmN0aW9uIHBvaW50ZXIgdGhhdCBldmFsdWF0ZXMgdG8g YSBmdW5jdGlvbiB0aGF0IHJlYWRzIHRoZSBSVEMNCj4gPiArY29udGVudA0KPiA+ICsgIHRocm91 Z2ggaXRzIHJlZ2lzdGVycyBlaXRoZXIgdXNpbmcgSU8gb3IgTU1JTyBhY2Nlc3MuDQo+ID4gKw0K PiA+ICsgIEBwYXJhbSAgQWRkcmVzcyAgIEFkZHJlc3Mgb2Zmc2V0IG9mIFJUQy4gSXQgaXMgcmVj b21tZW5kZWQgdG8gdXNlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgbWFjcm9zIHN1Y2ggYXMg UlRDX0FERFJFU1NfU0VDT05EUy4NCj4gPiArDQo+ID4gKyAgQHJldHVybiBUaGUgZGF0YSBvZiBV SU5UOCB0eXBlIHJlYWQgZnJvbSBSVEMuDQo+ID4gKyoqLw0KPiA+ICtSVENfV1JJVEUgUnRjV3Jp dGU7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiAgICAgQ29tcGFyZSB0aGUgSG91ciwgTWludXRlIGFu ZCBTZWNvbmQgb2YgdGhlIEZyb20gdGltZSBhbmQgdGhlIFRvDQo+IHRpbWUuDQo+ID4NCj4gPiAg ICAgT25seSBjb21wYXJlIEgvTS9TIGluIEVGSV9USU1FIGFuZCBpZ25vcmUgb3RoZXIgZmllbGRz IGhlcmUuDQo+ID4gQEAgLTU0LDQxICs4MCw5NiBAQCBJc1dpdGhpbk9uZURheSAoDQo+ID4gICAg ICk7DQo+ID4NCj4gPiAgIC8qKg0KPiA+IC0gIFJlYWQgUlRDIGNvbnRlbnQgdGhyb3VnaCBpdHMg cmVnaXN0ZXJzLg0KPiA+ICsgIFJlYWQgUlRDIGNvbnRlbnQgdGhyb3VnaCBpdHMgcmVnaXN0ZXJz IHVzaW5nIElPIGFjY2Vzcy4NCj4gPg0KPiA+IC0gIEBwYXJhbSAgQWRkcmVzcyAgQWRkcmVzcyBv ZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UNCj4gbWFjcm9zIHN1Y2ggYXMN Cj4gPiAtICAgICAgICAgICAgICAgICAgIFJUQ19BRERSRVNTX1NFQ09ORFMuDQo+ID4gKyAgQHBh cmFtICBBZGRyZXNzICAgQWRkcmVzcyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNvbW1lbmRlZCB0 byB1c2UNCj4gPiArICAgICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBSVENfQUREUkVT U19TRUNPTkRTLg0KPiA+DQo+ID4gICAgIEByZXR1cm4gVGhlIGRhdGEgb2YgVUlOVDggdHlwZSBy ZWFkIGZyb20gUlRDLg0KPiA+ICAgKiovDQo+ID4gK1NUQVRJQw0KPiA+ICAgVUlOVDgNCj4gPiAt UnRjUmVhZCAoDQo+ID4gLSAgSU4gIFVJTlQ4IEFkZHJlc3MNCj4gPiArRUZJQVBJDQo+ID4gK0lv UnRjUmVhZCAoDQo+ID4gKyAgSU4gIFVJTlROIEFkZHJlc3MNCj4gPiAgICAgKQ0KPiA+ICAgew0K PiA+IC0gIElvV3JpdGU4IChQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVyKSwgKFVJTlQ4KSAo QWRkcmVzcyB8IChVSU5UOCkNCj4gPiAoSW9SZWFkOCAoUGNkR2V0OCAoUGNkUnRjSW5kZXhSZWdp c3RlcikpICYgMHg4MCkpKTsNCj4gPiArICBJb1dyaXRlOCAoDQo+ID4gKyAgICBQY2RHZXQ4IChQ Y2RSdGNJbmRleFJlZ2lzdGVyKSwNCj4gPiArICAgIChVSU5UOCkoQWRkcmVzcyB8IChVSU5UOCko SW9SZWFkOCAoUGNkR2V0OCAoUGNkUnRjSW5kZXhSZWdpc3RlcikpICYNCj4gMHg4MCkpDQo+ID4g KyAgICApOw0KPiA+ICAgICByZXR1cm4gSW9SZWFkOCAoUGNkR2V0OCAoUGNkUnRjVGFyZ2V0UmVn aXN0ZXIpKTsNCj4gPiAgIH0NCj4gPg0KPiA+ICAgLyoqDQo+ID4gLSAgV3JpdGUgUlRDIHRocm91 Z2ggaXRzIHJlZ2lzdGVycy4NCj4gPiArICBXcml0ZSBSVEMgdGhyb3VnaCBpdHMgcmVnaXN0ZXJz ICB1c2luZyBJTyBhY2Nlc3MuDQo+ID4NCj4gPiAtICBAcGFyYW0gIEFkZHJlc3MgIEFkZHJlc3Mg b2Zmc2V0IG9mIFJUQy4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlDQo+IG1hY3JvcyBzdWNoIGFz DQo+ID4gLSAgICAgICAgICAgICAgICAgICBSVENfQUREUkVTU19TRUNPTkRTLg0KPiA+IC0gIEBw YXJhbSAgRGF0YSAgICAgVGhlIGNvbnRlbnQgeW91IHdhbnQgdG8gd3JpdGUgaW50byBSVEMuDQo+ ID4gKyAgQHBhcmFtICBBZGRyZXNzICAgQWRkcmVzcyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNv bW1lbmRlZCB0byB1c2UNCj4gPiArICAgICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBS VENfQUREUkVTU19TRUNPTkRTLg0KPiA+ICsgIEBwYXJhbSAgRGF0YSAgICAgIFRoZSBjb250ZW50 IHlvdSB3YW50IHRvIHdyaXRlIGludG8gUlRDLg0KPiA+DQo+ID4gICAqKi8NCj4gPiArU1RBVElD DQo+ID4gICBWT0lEDQo+ID4gLVJ0Y1dyaXRlICgNCj4gPiAtICBJTiAgVUlOVDggICBBZGRyZXNz LA0KPiA+ICtFRklBUEkNCj4gPiArSW9SdGNXcml0ZSAoDQo+ID4gKyAgSU4gIFVJTlROICAgQWRk cmVzcywNCj4gPiAgICAgSU4gIFVJTlQ4ICAgRGF0YQ0KPiA+ICAgICApDQo+ID4gICB7DQo+ID4g LSAgSW9Xcml0ZTggKFBjZEdldDggKFBjZFJ0Y0luZGV4UmVnaXN0ZXIpLCAoVUlOVDgpIChBZGRy ZXNzIHwgKFVJTlQ4KQ0KPiA+IChJb1JlYWQ4IChQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVy KSkgJiAweDgwKSkpOw0KPiA+ICsgIElvV3JpdGU4ICgNCj4gPiArICAgIFBjZEdldDggKFBjZFJ0 Y0luZGV4UmVnaXN0ZXIpLA0KPiA+ICsgICAgKFVJTlQ4KShBZGRyZXNzIHwgKFVJTlQ4KShJb1Jl YWQ4IChQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVyKSkgJg0KPiAweDgwKSkNCj4gPiArICAg ICk7DQo+ID4gICAgIElvV3JpdGU4IChQY2RHZXQ4IChQY2RSdGNUYXJnZXRSZWdpc3RlciksIERh dGEpOw0KPiA+ICAgfQ0KPiA+DQo+ID4gICAvKioNCj4gPiArICBSZWFkIFJUQyBjb250ZW50IHRo cm91Z2ggaXRzIHJlZ2lzdGVycyB1c2luZyBNTUlPIGFjY2Vzcy4NCj4gPiArDQo+ID4gKyAgQHBh cmFtICBBZGRyZXNzICAgQWRkcmVzcyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNvbW1lbmRlZCB0 byB1c2UNCj4gPiArICAgICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBSVENfQUREUkVT U19TRUNPTkRTLg0KPiA+ICsNCj4gPiArICBAcmV0dXJuIFRoZSBkYXRhIG9mIFVJTlQ4IHR5cGUg cmVhZCBmcm9tIFJUQy4NCj4gPiArKiovDQo+ID4gK1NUQVRJQw0KPiA+ICtVSU5UOA0KPiA+ICtF RklBUEkNCj4gPiArTW1pb1J0Y1JlYWQgKA0KPiA+ICsgIElOICBVSU5UTiBBZGRyZXNzDQo+ID4g KyAgKQ0KPiA+ICt7DQo+ID4gKyAgTW1pb1dyaXRlOCAoDQo+ID4gKyAgICBtUnRjSW5kZXhSZWdp c3RlciwNCj4gPiArICAgIChVSU5UOCkoQWRkcmVzcyB8IChVSU5UOCkoTW1pb1JlYWQ4IChtUnRj SW5kZXhSZWdpc3RlcikgJiAweDgwKSkNCj4gPiArICAgICk7DQo+ID4gKyAgcmV0dXJuIE1taW9S ZWFkOCAobVJ0Y1RhcmdldFJlZ2lzdGVyKTsgfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgV3Jp dGUgUlRDIHRocm91Z2ggaXRzIHJlZ2lzdGVycyB1c2luZyBNTUlPIGFjY2Vzcy4NCj4gPiArDQo+ ID4gKyAgQHBhcmFtICBBZGRyZXNzICAgQWRkcmVzcyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNv bW1lbmRlZCB0byB1c2UNCj4gPiArICAgICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBS VENfQUREUkVTU19TRUNPTkRTLg0KPiA+ICsgIEBwYXJhbSAgRGF0YSAgICAgIFRoZSBjb250ZW50 IHlvdSB3YW50IHRvIHdyaXRlIGludG8gUlRDLg0KPiA+ICsNCj4gPiArKiovDQo+ID4gK1NUQVRJ Qw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0KPiA+ICtNbWlvUnRjV3JpdGUgKA0KPiA+ICsgIElO ICBVSU5UTiAgIEFkZHJlc3MsDQo+ID4gKyAgSU4gIFVJTlQ4ICAgRGF0YQ0KPiA+ICsgICkNCj4g PiArew0KPiA+ICsgIE1taW9Xcml0ZTggKA0KPiA+ICsgICAgbVJ0Y0luZGV4UmVnaXN0ZXIsDQo+ ID4gKyAgICAoVUlOVDgpKEFkZHJlc3MgfCAoVUlOVDgpKE1taW9SZWFkOCAobVJ0Y0luZGV4UmVn aXN0ZXIpICYgMHg4MCkpDQo+ID4gKyAgICApOw0KPiA+ICsgIE1taW9Xcml0ZTggKG1SdGNUYXJn ZXRSZWdpc3RlciwgRGF0YSk7IH0NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICAgICBJbml0aWFsaXpl IFJUQy4NCj4gPg0KPiA+ICAgICBAcGFyYW0gIEdsb2JhbCAgICAgICAgICAgIEZvciBnbG9iYWwg dXNlIGluc2lkZSB0aGlzIG1vZHVsZS4NCj4gPiBAQCAtMTEzLDYgKzE5NCwxOCBAQCBQY1J0Y0lu aXQgKA0KPiA+ICAgICBCT09MRUFOICAgICAgICAgUGVuZGluZzsNCj4gPg0KPiA+ICAgICAvLw0K PiA+ICsgIC8vIEluaXRpYWxpemUgdGhlIFJ0Y1JlYWQgYW5kIFJ0Y1dyaXRlIGZ1bmN0aW9ucyAg Ly8gYmFzZWQgb24gdGhlDQo+ID4gKyBjaG9zZW4gSU8vTU1JTyBhY2Nlc3MuDQo+ID4gKyAgLy8N Cj4gPiArICBpZiAoRmVhdHVyZVBjZEdldCAoUGNkUnRjVXNlTW1pbykpIHsNCj4gPiArICAgIFJ0 Y1JlYWQgPSBNbWlvUnRjUmVhZDsNCj4gPiArICAgIFJ0Y1dyaXRlID0gTW1pb1J0Y1dyaXRlOw0K PiA+ICsgIH0gZWxzZSB7DQo+ID4gKyAgICBSdGNSZWFkID0gSW9SdGNSZWFkOw0KPiA+ICsgICAg UnRjV3JpdGUgPSBJb1J0Y1dyaXRlOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgLy8NCj4gPiAg ICAgLy8gQWNxdWlyZSBSVEMgTG9jayB0byBtYWtlIGFjY2VzcyB0byBSVEMgYXRvbWljDQo+ID4g ICAgIC8vDQo+ID4gICAgIGlmICghRWZpQXRSdW50aW1lICgpKSB7DQo+ID4gZGlmZiAtLWdpdCBh L1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy5oDQo+ID4g Yi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuaA0KPiA+ IGluZGV4DQo+ID4NCj4gNDcyOTNjZTQ0YzVhMWY0NzkyODkyODkyZjdkYTQwZDdmMGE1YTAwMS4u NDA3NDI2MWMyY2E1ZGJjN2IwNzI3ZWE3OTYNCj4gMTENCj4gPiA1NGVhZjQxYzBlMzggMTAwNjQ0 DQo+ID4gLS0tIGEvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1Bj UnRjLmgNCj4gPiArKysgYi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVE eGUvUGNSdGMuaA0KPiA+IEBAIC0zLDYgKzMsNyBAQA0KPiA+DQo+ID4gICBDb3B5cmlnaHQgKGMp IDIwMDYgLSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ID4gICBDb3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiA+ICtDb3B5cmlnaHQgKGMpIDIwMTkgLSAyMDIwLCBBUk0gTGltaXRlZC4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ID4NCj4gPiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiBAQCAtMzcxLDQgKzM3MiwzNCBAQCBQY1J0Y0Fj cGlUYWJsZUNoYW5nZUNhbGxiYWNrICgNCj4gPiAgICAgSU4gRUZJX0VWRU5UICAgICAgICBFdmVu dCwNCj4gPiAgICAgSU4gVk9JRCAgICAgICAgICAgICAqQ29udGV4dA0KPiA+ICAgICApOw0KPiA+ ICsNCj4gPiArLyoqDQo+ID4gKyAgRnVuY3Rpb24gcG9pbnRlciB0byBSZWFkIFJUQyBjb250ZW50 IHRocm91Z2ggaXRzIHJlZ2lzdGVycy4NCj4gPiArDQo+ID4gKyAgQHBhcmFtICBBZGRyZXNzICAg QWRkcmVzcyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UNCj4gPiArICAg ICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBSVENfQUREUkVTU19TRUNPTkRTLg0KPiA+ ICsNCj4gPiArICBAcmV0dXJuIFRoZSBkYXRhIG9mIFVJTlQ4IHR5cGUgcmVhZCBmcm9tIFJUQy4N Cj4gPiArKiovDQo+ID4gK3R5cGVkZWYNCj4gPiArVUlOVDgNCj4gPiArKEVGSUFQSSAqUlRDX1JF QUQpICgNCj4gPiArICBJTiAgVUlOVE4gQWRkcmVzcw0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsv KioNCj4gPiArICBGdW5jdGlvbiBwb2ludGVyIHRvIFdyaXRlIFJUQyB0aHJvdWdoIGl0cyByZWdp c3RlcnMuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSAgQWRkcmVzcyAgIEFkZHJlc3Mgb2Zmc2V0IG9m IFJUQy4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg bWFjcm9zIHN1Y2ggYXMgUlRDX0FERFJFU1NfU0VDT05EUy4NCj4gPiArICBAcGFyYW0gIERhdGEg ICAgICBUaGUgY29udGVudCB5b3Ugd2FudCB0byB3cml0ZSBpbnRvIFJUQy4NCj4gPiArDQo+ID4g KyoqLw0KPiA+ICt0eXBlZGVmDQo+ID4gK1ZPSUQNCj4gPiArKEVGSUFQSSAqUlRDX1dSSVRFKSAo DQo+ID4gKyAgSU4gIFVJTlROICAgQWRkcmVzcywNCj4gPiArICBJTiAgVUlOVDggICBEYXRhDQo+ ID4gKyAgKTsNCj4gPiArDQo+ID4gICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvUGNBdENoaXBz ZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjRW50cnkuYw0KPiA+IGIvUGNB dENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRjRW50cnkuYw0KPiA+ IGluZGV4DQo+ID4NCj4gY2NkYTYzMzEzNzNiZmU0MDY5YjBhNTk0OTViNWU1Y2M3MzFjOGZjOC4u ZTMwODgzZTUzMzMzYWFlNjU1YmJmODkxZjgNCj4gNmQNCj4gPiAxYTZlZDczOTcxNWYgMTAwNjQ0 DQo+ID4gLS0tIGEvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1Bj UnRjRW50cnkuYw0KPiA+ICsrKyBiL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVu dGltZUR4ZS9QY1J0Y0VudHJ5LmMNCj4gPiBAQCAtMiwxNiArMiwzMyBAQA0KPiA+ICAgICBQcm92 aWRlcyBTZXQvR2V0IHRpbWUgb3BlcmF0aW9ucy4NCj4gPg0KPiA+ICAgQ29weXJpZ2h0IChjKSAy MDA2IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiByZXNlcnZlZC48 QlI+DQo+ID4gK0NvcHlyaWdodCAoYykgMjAxOCAtIDIwMjAsIEFSTSBMaW1pdGVkLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+ID4NCj4gPiAgICoqLw0KPiA+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5 L0R4ZVNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiAgICNpbmNsdWRlICJQY1J0Yy5oIg0KPiA+DQo+ ID4gICBQQ19SVENfTU9EVUxFX0dMT0JBTFMgIG1Nb2R1bGVHbG9iYWw7DQo+ID4NCj4gPiAgIEVG SV9IQU5ETEUgICAgICAgICAgICAgbUhhbmRsZSA9IE5VTEw7DQo+ID4NCj4gPiArU1RBVElDIEVG SV9FVkVOVCAgICAgICBtVmlydHVhbEFkZHJDaGFuZ2VFdmVudDsNCj4gPiArDQo+ID4gK1VJTlRO ICAgICAgICAgICAgICAgICAgbVJ0Y0luZGV4UmVnaXN0ZXI7DQo+ID4gK1VJTlROICAgICAgICAg ICAgICAgICAgbVJ0Y1RhcmdldFJlZ2lzdGVyOw0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gRnVu Y3Rpb24gcG9pbnRlciBmb3IgdGhlIFJ0YyBSZWFkIGludGVyZmFjZSBmdW5jdGlvbiAvLw0KPiA+ ICtleHRlcm4gUlRDX1JFQUQgICBSdGNSZWFkOw0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gRnVu Y3Rpb24gcG9pbnRlciBmb3IgdGhlIFJ0YyBXcml0ZSBpbnRlcmZhY2UgZnVuY3Rpb24gLy8gZXh0 ZXJuDQo+ID4gK1JUQ19XUklURSAgUnRjV3JpdGU7DQo+ID4gKw0KPiA+ICAgLyoqDQo+ID4gICAg IFJldHVybnMgdGhlIGN1cnJlbnQgdGltZSBhbmQgZGF0ZSBpbmZvcm1hdGlvbiwgYW5kIHRoZSB0 aW1lLWtlZXBpbmcNCj4gY2FwYWJpbGl0aWVzDQo+ID4gICAgIG9mIHRoZSBoYXJkd2FyZSBwbGF0 Zm9ybS4NCj4gPiBAQCAtMTA2LDYgKzEyMywzNCBAQCBQY1J0Y0VmaVNldFdha2V1cFRpbWUgKA0K PiA+ICAgfQ0KPiA+DQo+ID4gICAvKioNCj4gPiArICBGaXh1cCBpbnRlcm5hbCBkYXRhIHNvIHRo YXQgRUZJIGNhbiBiZSBjYWxsZWQgaW4gdmlydHVhbCBtb2RlLg0KPiA+ICsgIENhbGwgdGhlIHBh c3NlZCBpbiBDaGlsZCBOb3RpZnkgZXZlbnQgYW5kIGNvbnZlcnQgYW55IHBvaW50ZXJzIGluDQo+ ID4gKyBsaWIgdG8gdmlydHVhbCBtb2RlLg0KPiA+ICsNCj4gPiArICBAcGFyYW1baW5dICAgIEV2 ZW50ICAgVGhlIEV2ZW50IHRoYXQgaXMgYmVpbmcgcHJvY2Vzc2VkDQo+ID4gKyAgQHBhcmFtW2lu XSAgICBDb250ZXh0IEV2ZW50IENvbnRleHQNCj4gPiArKiovDQo+ID4gK1ZPSUQNCj4gPiArRUZJ QVBJDQo+ID4gK0xpYlJ0Y1ZpcnR1YWxOb3RpZnlFdmVudCAoDQo+ID4gKyAgSU4gRUZJX0VWRU5U ICAgICAgICBFdmVudCwNCj4gPiArICBJTiBWT0lEICAgICAgICAgICAgICpDb250ZXh0DQo+ID4g KyAgKQ0KPiA+ICt7DQo+ID4gKyAgLy8gT25seSBuZWVkZWQgaWYgeW91IGFyZSBnb2luZyB0byBz dXBwb3J0IHRoZSBPUyBjYWxsaW5nIFJUQw0KPiA+ICtmdW5jdGlvbnMgaW4NCj4gPiArICAvLyB2 aXJ0dWFsIG1vZGUuIFlvdSB3aWxsIG5lZWQgdG8gY2FsbCBFZmlDb252ZXJ0UG9pbnRlciAoKS4g VG8NCj4gPiArY29udmVydCBhbnkNCj4gPiArICAvLyBzdG9yZWQgcGh5c2ljYWwgYWRkcmVzc2Vz IHRvIHZpcnR1YWwgYWRkcmVzcy4gQWZ0ZXIgdGhlIE9TDQo+ID4gK3RyYW5zaXRpb25zIHRvDQo+ ID4gKyAgLy8gY2FsbGluZyBpbiB2aXJ0dWFsIG1vZGUsIGFsbCBmdXR1cmUgcnVudGltZSBjYWxs cyB3aWxsIGJlIG1hZGUNCj4gPiAraW4gdmlydHVhbA0KPiA+ICsgIC8vIG1vZGUuDQo+ID4gKyAg RWZpQ29udmVydFBvaW50ZXIgKDB4MCwgKFZPSUQqKikmbVJ0Y0luZGV4UmVnaXN0ZXIpOw0KPiA+ ICsgIEVmaUNvbnZlcnRQb2ludGVyICgweDAsIChWT0lEKiopJm1SdGNUYXJnZXRSZWdpc3Rlcik7 DQo+ID4gKw0KPiA+ICsgIC8vIENvbnZlcnQgdGhlIFJ0Y1JlYWQgYW5kIFJ0Y1dyaXRlIHBvaW50 ZXJzIGZvciBydW50aW1lIHVzZS4NCj4gPiArICBFZmlDb252ZXJ0UG9pbnRlciAoMHgwLCAoVk9J RCoqKSZSdGNSZWFkKTsNCj4gPiArICBFZmlDb252ZXJ0UG9pbnRlciAoMHgwLCAoVk9JRCoqKSZS dGNXcml0ZSk7IH0NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICAgICBUaGUgdXNlciBFbnRyeSBQb2lu dCBmb3IgUGNSVEMgbW9kdWxlLg0KPiA+DQo+ID4gICAgIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50 IGZvciBQY1JUQyBtb2R1bGUuIEl0IGluc3RhbGxzIHRoZSBVRUZJDQo+ID4gcnVudGltZSBzZXJ2 aWNlIEBAIC0xMjUsMTIgKzE3MCwxNyBAQCBJbml0aWFsaXplUGNSdGMgKA0KPiA+ICAgICBJTiBF RklfU1lTVEVNX1RBQkxFICAgICAgICAgICAgICAgICAgICAgICpTeXN0ZW1UYWJsZQ0KPiA+ICAg ICApDQo+ID4gICB7DQo+ID4gLSAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KPiA+IC0gIEVGSV9FVkVO VCAgIEV2ZW50Ow0KPiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgU3RhdHVzOw0KPiA+ICsg IEVGSV9FVkVOVCAgICAgICAgICAgICAgRXZlbnQ7DQo+ID4NCj4gPiAgICAgRWZpSW5pdGlhbGl6 ZUxvY2sgKCZtTW9kdWxlR2xvYmFsLlJ0Y0xvY2ssIFRQTF9DQUxMQkFDSyk7DQo+ID4gICAgIG1N b2R1bGVHbG9iYWwuQ2VudHVyeVJ0Y0FkZHJlc3MgPSBHZXRDZW50dXJ5UnRjQWRkcmVzcyAoKTsN Cj4gPg0KPiA+ICsgIGlmIChGZWF0dXJlUGNkR2V0IChQY2RSdGNVc2VNbWlvKSkgew0KPiA+ICsg ICAgbVJ0Y0luZGV4UmVnaXN0ZXIgPSAoVUlOVE4pUGNkR2V0NjQgKFBjZFJ0Y0luZGV4UmVnaXN0 ZXI2NCk7DQo+ID4gKyAgICBtUnRjVGFyZ2V0UmVnaXN0ZXIgPSAoVUlOVE4pUGNkR2V0NjQgKFBj ZFJ0Y1RhcmdldFJlZ2lzdGVyNjQpOyAgfQ0KPiA+ICsNCj4gPiAgICAgU3RhdHVzID0gUGNSdGNJ bml0ICgmbU1vZHVsZUdsb2JhbCk7DQo+ID4gICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7 DQo+ID4NCj4gPiBAQCAtMTY1LDcgKzIxNSwyMyBAQCBJbml0aWFsaXplUGNSdGMgKA0KPiA+ICAg ICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gPiAgICAgICAgICAgICAgICAgICAgIE5VTEwNCj4g PiAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4gLSAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVz KTsNCj4gPiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gKyAgICBBU1NFUlRfRUZJ X0VSUk9SIChTdGF0dXMpOw0KPiA+ICsgICAgcmV0dXJuIFN0YXR1czsNCj4gPiArICB9DQo+ID4g Kw0KPiA+ICsgIGlmIChGZWF0dXJlUGNkR2V0IChQY2RSdGNVc2VNbWlvKSkgew0KPiA+ICsgICAg Ly8gUmVnaXN0ZXIgZm9yIHRoZSB2aXJ0dWFsIGFkZHJlc3MgY2hhbmdlIGV2ZW50DQo+ID4gKyAg ICBTdGF0dXMgPSBnQlMtPkNyZWF0ZUV2ZW50RXggKA0KPiA+ICsgICAgICAgICAgICAgICAgICAg IEVWVF9OT1RJRllfU0lHTkFMLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIFRQTF9OT1RJRlks DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTGliUnRjVmlydHVhbE5vdGlmeUV2ZW50LA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgJmdF ZmlFdmVudFZpcnR1YWxBZGRyZXNzQ2hhbmdlR3VpZCwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAmbVZpcnR1YWxBZGRyQ2hhbmdlRXZlbnQNCj4gPiArICAgICAgICAgICAgICAgICAgICApOw0K PiA+ICsgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiArICB9DQo+ID4NCj4gPiAg ICAgcmV0dXJuIFN0YXR1czsNCj4gPiAgIH0NCj4gPiBkaWZmIC0tZ2l0DQo+ID4NCj4gYS9QY0F0 Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNhdFJlYWxUaW1lQ2xvY2tS dW50aW0NCj4gZUQNCj4gPiB4ZS5pbmYNCj4gPg0KPiBiL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFs VGltZUNsb2NrUnVudGltZUR4ZS9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbQ0KPiBlRA0KPiA+IHhl LmluZiBpbmRleA0KPiA+DQo+IGM3M2VlOTgxMDVlNTEwZjllNGUyM2MxYTZjMWU1YzUwNTMyNWQy YzkuLjBkOGVjYTI4YjY1OTU0YjA3M2E3MmZjNGZlDQo+IDVhDQo+ID4gZDYyNDczMjBlNzlkIDEw MDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tS dW50aW1lRHhlL1BjYXRSZWFsVGltZUNsb2NrUnVudGltDQo+IGVEDQo+ID4geGUuaW5mDQo+ID4g KysrDQo+IGIvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjYXRS ZWFsVGltZUNsb2NrUnVudA0KPiA+ICsrKyBpbWVEeGUuaW5mDQo+ID4gQEAgLTYsNiArNiw3IEBA DQo+ID4gICAjDQo+ID4gICAjIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTksIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiAgICMgQ29weXJpZ2h0IChjKSAy MDE3LCBBTUQgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiArIyBDb3B5cmlnaHQg KGMpIDIwMTggLSAyMDIwLCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ ID4gICAjDQo+ID4gICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ID4gICAjDQo+ID4gQEAgLTYxLDYgKzYyLDExIEBAIFtHdWlkc10NCj4gPiAgICAgIyMg U09NRVRJTUVTX0NPTlNVTUVTICMjIFN5c3RlbVRhYmxlDQo+ID4gICAgIGdFZmlBY3BpVGFibGVH dWlkDQo+ID4NCj4gPiArICBnRWZpRXZlbnRWaXJ0dWFsQWRkcmVzc0NoYW5nZUd1aWQNCj4gPiAr DQo+ID4gK1tGZWF0dXJlUGNkXQ0KPiA+ICsgIGdQY0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlk LlBjZFJ0Y1VzZU1taW8gICAgICAgICAgICAgICAgICAgIyMNCj4gQ09OU1VNRVMNCj4gPiArDQo+ ID4gICBbRml4ZWRQY2RdDQo+ID4gICAgIGdQY0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlkLlBj ZEluaXRpYWxWYWx1ZVJ0Y1JlZ2lzdGVyQSAgICAgIyMNCj4gQ09OU1VNRVMNCj4gPiAgICAgZ1Bj QXRDaGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQuUGNkSW5pdGlhbFZhbHVlUnRjUmVnaXN0ZXJCICAg ICAjIw0KPiBDT05TVU1FUw0KPiA+IEBAIC03Miw2ICs3OCw4IEBAIFtQY2RdDQo+ID4gICAgIGdQ Y0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heGltYWxWYWxpZFllYXIgICAgICAgICAg ICAgIyMNCj4gQ09OU1VNRVMNCj4gPiAgICAgZ1BjQXRDaGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQu UGNkUnRjSW5kZXhSZWdpc3RlciAgICAgICAgICAgICAjIw0KPiBDT05TVU1FUw0KPiA+ICAgICBn UGNBdENoaXBzZXRQa2dUb2tlblNwYWNlR3VpZC5QY2RSdGNUYXJnZXRSZWdpc3RlciAgICAgICAg ICAgICMjDQo+IENPTlNVTUVTDQo+ID4gKyAgZ1BjQXRDaGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQu UGNkUnRjSW5kZXhSZWdpc3RlcjY0ICAgICAgICAgICAjIw0KPiBDT05TVU1FUw0KPiA+ICsgIGdQ Y0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJ0Y1RhcmdldFJlZ2lzdGVyNjQgICAgICAg ICAgIyMNCj4gQ09OU1VNRVMNCj4gPg0KPiA+ICAgW0RlcGV4XQ0KPiA+ICAgICBnRWZpVmFyaWFi bGVBcmNoUHJvdG9jb2xHdWlkIEFORCBnRWZpVmFyaWFibGVXcml0ZUFyY2hQcm90b2NvbEd1aWQN Cj4gPg0KPiANCj4gDQo+IA0KDQo=