From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web11.112745.1597936907413441899 for ; Thu, 20 Aug 2020 08:21:48 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=W9sVIMVz; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: BnsQEw8BHGjlLa9u2ReoFDphMvy3/SC2WEnn+KTkswMdL1NL9yTGnYrTQVkUsTKeEHJSLCizA8 3GNmEZvkMt6A== X-IronPort-AV: E=McAfee;i="6000,8403,9718"; a="143125206" X-IronPort-AV: E=Sophos;i="5.76,333,1592895600"; d="scan'208";a="143125206" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Aug 2020 08:21:46 -0700 IronPort-SDR: Bmk5xCqU4B4B8k2v+8L8ECSUzDnao+sY2aXDgntNVv1v8FfKkA5YmREyfME/wv+2fuljVYamJN pNdA+Vy9FxJg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,333,1592895600"; d="scan'208";a="371623245" Received: from unknown (HELO fmsmsx604.amr.corp.intel.com) ([10.18.84.214]) by orsmga001.jf.intel.com with ESMTP; 20 Aug 2020 08:21:46 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 20 Aug 2020 08:21:45 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 20 Aug 2020 08:21:45 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 20 Aug 2020 08:21:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Gac/P4sS11+6mRgNY9asDGgKJ1QcvSA+qYcYyVdQPjr0OypSylI+IYTbcOfB6JJBcfHR1xEG2NuXGT2yYGsV13Mh5hA/cgr62aZ6kd3uqeHabInhsODxNJo6ge3/BsuaiovpffeBl/SNr5gunJyny/X6R1ZvWhz6oYhAahvADpqM7TBz7Y/rm/XXKQexGDmr9ll2N8MACd8wphIsuIhLcR5MRIWL65htwLDkMZZkQNT8Lhae5HjPeJSJiOVAVr7qOinHGhWXoJhogCXveBjPdqAaHah/NLEdAZEsEWycUAHWsdBowUVuMJYTObb28XtnLT5yjvn7mpQn5XTFU4ZZCw== 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=PmvvKRsr+BpN+b0xx3fgMiE9SNgMsm6JXbHTgUvC9qc=; b=n6rlgqu788jwAZAYbmOK8gzaosnUUuYszklOcSXVtBd61/tAPhlv9gIlDkHGuUrlyueQBw7oBBOd2aHwiJlZAhYAKkKPB48x4+Lt7/FacxaLhErgdsBM/V9hI6iVY7VWGqOX17X3xxrsu2faL5IgZSIcn9pjj+dX/MDFpfah4c/8mlahHXU7eGcq9NvLWiGcs3toPzfvg09dv7F81p0sxqIEiQmT8VNMymMil77GBXWWVAzbtRJ2qXa6yCL2WJIObMIv3l8pQBkwVYaM7yJJkG7A3IaI6cGi7G236skzoSD7hje4SNI8khEnlYIS1gSY3uy8bEGOvplsZdOdzHpoJA== 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=PmvvKRsr+BpN+b0xx3fgMiE9SNgMsm6JXbHTgUvC9qc=; b=W9sVIMVze0pf7M6eKIQzvgEkU+HMALl03Pxns4ChsE8BxakYKswh7F5NQrKfea3bHcyXqHpzMNVfarpq2jmPlEgD+c4qV5YK5oIFjdN4lEIKARCWjXiU29UP9fIi/XSREvKDfJWPjgyl3U3X/57gCkcP8Kg5798dFt4Y77z7XVw= Received: from MN2PR11MB4461.namprd11.prod.outlook.com (2603:10b6:208:192::29) by MN2PR11MB4646.namprd11.prod.outlook.com (2603:10b6:208:264::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.24; Thu, 20 Aug 2020 15:21:43 +0000 Received: from MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::201e:29f2:a02:c260]) by MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::201e:29f2:a02:c260%4]) with mapi id 15.20.3305.024; Thu, 20 Aug 2020 15:21:43 +0000 From: "Michael D Kinney" To: "matthewfcarlson@gmail.com" , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Ard Biesheuvel , "Gao, Liming" , "Liu, Zhiguang" Subject: Re: [PATCH v8 1/5] MdePkg: TimerRngLib: Added RngLib that uses TimerLib Thread-Topic: [PATCH v8 1/5] MdePkg: TimerRngLib: Added RngLib that uses TimerLib Thread-Index: AQHWdmAv7njP8jSLa0qn3pN9QiqnVKlBGVRA Date: Thu, 20 Aug 2020 15:21:42 +0000 Message-ID: References: <20200819193712.1629-1-matthewfcarlson@gmail.com> <20200819193712.1629-2-matthewfcarlson@gmail.com> In-Reply-To: <20200819193712.1629-2-matthewfcarlson@gmail.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [24.19.191.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f0163097-b7cd-4767-9931-08d8451cbe7c x-ms-traffictypediagnostic: MN2PR11MB4646: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2887; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LzAq4xAxbckyFVbqf6VfrYJn5eg9/f0ZVMeJuleBb/c2u6bk0SRXLr5F4jJo0aFYiGNwXqnV90sFmOnTSah9Ub+eW9JEz0idUHNWYWqPuLp+2oze6ECoKP54SMij+raI76pm7g0SWCe3MRXOJcrrryXUM0aypyZ6TjTN1kmHEAoS7Iv8Ss0d3P+kSODmIWXptsnxcmwkwKTmud7i+cNRSQQ8USESnb09VWyywlqQV3jltMmLxy/jp6/ByP66XqjkGWiWSR7tcrKmsZJy7in/p5LyvnuiWlg8U1p0QU95qfAcWOVdH3kwvR7/0EW/3mg5wI+SAc6gKb4OU/+74DNL9YCr0p9JbGZeI60usvrz9OnGqf1c9fj/ir2eXXDJL7vzK2qv1EOPvjVv9cNj1L6OyA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4461.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(346002)(376002)(136003)(396003)(366004)(53546011)(110136005)(54906003)(64756008)(66556008)(83380400001)(66446008)(5660300002)(966005)(66946007)(186003)(26005)(45080400002)(2906002)(8936002)(8676002)(7696005)(9686003)(66476007)(76116006)(71200400001)(4326008)(30864003)(107886003)(6506007)(86362001)(316002)(55016002)(478600001)(33656002)(52536014);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: FkpRl85O+2TrLrClXvtAN5Er3Z0qpxvIDqrz1iucbUdC86y+nXqu5322vSP4xnThk4Qd20ibn7cEPU4XbRr00URROWum6mFEGQ3mKmq+IDVPaesSMsgJ+ExuVpxLn0n8QR5UwMeJqhMoDOoQSrQIFSmv9T35OAl+MPNa4wEXFeBe8RzvGWiMSfPvdJAazuZ7A3TzOztsJ87SMhB0x9xKPEF3eOy19Jhmtg1Y/vY9w/IGBgPqU8buEcqzMrXYObpyhR2mHFABQl6+/XSlcs81jfmTrbqX+c6Ald92vrLgKZiV3iirVp1yGUFZqs9zUyzgntxbj+wSK7d1KF3VLlyia6Itf90Pv9n4YZmI++v8MVLgbrn4vjqgAgKfrrq6GrHV71zBNj5Xm8YUCKjhXFvibg6lQx9c0FQ8NV0uafEpMGhLoTcfXsKJONtvWzcmJiZGF1UvLomm9VYDzhOWVDWVuImLE8n4zM/7wO6JPnXOyRBsei1NPR8w8b0TwwlGODydZLBjAUH0qq8McTsUDuP+KK71DytP3CkulikK4Q8u5vDAPW2/V3C24kVHYTK/dta2MPOLxfR05LQuNZkLzz8SMEV0d1mlFDAZiI8tWcUWys7oofq16+uiA+AzVhkDdUHXhl9BbVVf/D8FVX5CuxnlRw== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4461.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0163097-b7cd-4767-9931-08d8451cbe7c X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2020 15:21:42.8023 (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: 3kgFTOZHHpuahIvsnVRiLgkRNi60VWTJ4BPUx0CLTJC+gCBAs+yI3aWnyYBiSku4o3tQ+a0aAjFN/lkAjsGydkUed3RZ1dxRwKvnAHKwQWs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4646 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWF0dCwNCg0KU29tZSBjb21tZW50cyBpbmxpbmUgYmVsb3cuDQoNCkkgYWxzbyBzZWUgY29t ZSBjb21tZW50cyBmcm9tIEFyZCBvbiB0aGlzIHNlcmllcyBhYm91dCBjb2RlIHN0eWxlLg0KSSBk aWQgbm90IHByb3ZpZGUgZmVlZGJhY2sgb24gdGhlIGNvZGUgc3R5bGUgaXNzdWVzIGhlcmUgKGV4 Y2VwdCBmb3INCmEgZnVuY3Rpb24gaGVhZGVyIGNvbW1lbnQgYmxvY2sgc3R5bGUpLg0KDQpUaGVy ZSBpcyBhIHRvb2wgY2FsbGVkIEVDQyAoRUZJIENvZGUgQ2hlY2tlcikgdGhhdCBpcyBub3cgZW5h YmxlZCBpbg0KRURLIElJIENJLiAgUGxlYXNlIHJ1biB0aGlzIGNoZWNrZXIgbG9jYWxseSBhbmQg cmVzb2x2ZSBhbGwgaXNzdWVzIGluDQp5b3VyIHBhdGNoIHNlcmllcy4NCg0KVGhhbmtzLA0KDQpN aWtlDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBtYXR0aGV3ZmNh cmxzb25AZ21haWwuY29tIDxtYXR0aGV3ZmNhcmxzb25AZ21haWwuY29tPg0KPiBTZW50OiBXZWRu ZXNkYXksIEF1Z3VzdCAxOSwgMjAyMCAxMjozNyBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBhcm0uY29tPjsgS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxp bWluZy5nYW9AaW50ZWwuY29tPjsNCj4gTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGludGVs LmNvbT47IE1hdHRoZXcgQ2FybHNvbiA8bWF0dGhld2ZjYXJsc29uQGdtYWlsLmNvbT4NCj4gU3Vi amVjdDogW1BBVENIIHY4IDEvNV0gTWRlUGtnOiBUaW1lclJuZ0xpYjogQWRkZWQgUm5nTGliIHRo YXQgdXNlcyBUaW1lckxpYg0KPiANCj4gRnJvbTogTWF0dGhldyBDYXJsc29uIDxtYWNhcmxAbWlj cm9zb2Z0LmNvbT4NCj4gDQo+IEFkZGVkIGEgbmV3IFJuZ0xpYiB0aGF0IHByb3ZpZGVzIHJhbmRv bSBudW1iZXJzIGZyb20gdGhlIFRpbWVyTGliDQo+IHVzaW5nIHRoZSBwZXJmb3JtYW5jZSBjb3Vu dGVyLiBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgZm9yIE9wZW5TU0wNCj4gdG8gcmVwbGljYXRl IHBhc3QgYmVoYXZpb3IuIFRoaXMgc2hvdWxkIG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gYXMN Cj4gYSByZWFsIHNvdXJjZSBvZiBlbnRyb3B5Lg0KPiANCj4gUmVmOiBodHRwczovL2dpdGh1Yi5j b20vdGlhbm9jb3JlL2VkazIvcHVsbC84NDUNCj4gUmVmOiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzENCj4gDQo+IENjOiBBcmQgQmllc2hldXZlbCA8 YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4NCj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5j b20+DQo+IENjOiBaaGlndWFuZyBMaXUgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+IFNpZ25l ZC1vZmYtYnk6IE1hdHRoZXcgQ2FybHNvbiA8bWF0dGhld2ZjYXJsc29uQGdtYWlsLmNvbT4NCj4g LS0tDQo+ICBNZGVQa2cvTGlicmFyeS9CYXNlUm5nTGliVGltZXJMaWIvUm5nTGliVGltZXIuYyAg ICAgICAgICB8IDE5MSArKysrKysrKysrKysrKysrKysrKw0KPiAgTWRlUGtnL0xpYnJhcnkvQmFz ZVJuZ0xpYlRpbWVyTGliL0Jhc2VSbmdMaWJUaW1lckxpYi5pbmYgfCAgMzYgKysrKw0KPiAgTWRl UGtnL0xpYnJhcnkvQmFzZVJuZ0xpYlRpbWVyTGliL0Jhc2VSbmdMaWJUaW1lckxpYi51bmkgfCAg MTUgKysNCj4gIE1kZVBrZy9NZGVQa2cuZHNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAzICstDQo+ICA0IGZpbGVzIGNoYW5nZWQsIDI0NCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZVJu Z0xpYlRpbWVyTGliL1JuZ0xpYlRpbWVyLmMgYi9NZGVQa2cvTGlicmFyeS9CYXNlUm5nTGliVGlt ZXJMaWIvUm5nTGliVGltZXIuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAw MDAwMDAwMDAuLmM3MmFhMzM1ODIzZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL01kZVBrZy9M aWJyYXJ5L0Jhc2VSbmdMaWJUaW1lckxpYi9SbmdMaWJUaW1lci5jDQo+IEBAIC0wLDAgKzEsMTkx IEBADQo+ICsvKiogQGZpbGUNCj4gDQo+ICsgIEJhc2VSbmcgTGlicmFyeSB0aGF0IHVzZXMgdGhl IFRpbWVyTGliIHRvIHByb3ZpZGUgcmVhc29uYWJseSByYW5kb20gbnVtYmVycy4NCj4gDQo+ICsg IERvIG5vdCB1c2UgdGhpcyBvbiBhIHByb2R1Y3Rpb24gc3lzdGVtLg0KPiANCj4gKw0KPiANCj4g KyAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uDQo+IA0KPiArICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gKyoqLw0KPiANCj4g Kw0KPiANCj4gKyNpbmNsdWRlIDxCYXNlLmg+DQo+IA0KPiArI2luY2x1ZGUgPExpYnJhcnkvQmFz ZUxpYi5oPg0KPiANCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+IA0KPiArI2lu Y2x1ZGUgPExpYnJhcnkvVGltZXJMaWIuaD4NCj4gDQo+ICsNCj4gDQo+ICsvKioNCj4gDQo+ICsg KiBVc2luZyB0aGUgVGltZXJMaWIgR2V0UGVyZm9ybWFuY2VDb3VudGVyUHJvcGVydGllcygpIHdl IGRlbGF5DQo+IA0KPiArICogZm9yIGVub3VnaCB0aW1lIGZvciB0aGUgUGVyZm9ybWFuY2VDb3Vu dGVyIHRvIGluY3JlbWVudC4NCj4gDQo+ICsgKiBEZXBlbmRpbmcgb24geW91ciBzeXN0ZW0NCg0K DQpQbGVhc2UgdXBkYXRlIHRoZSBjb21tZW50cyB0byBkZXNjcmliZSB0aGF0IHRoaXMgZnVuY3Rp b24gcmV0dXJucyANCmRlbGF5IGluIG1pY3Jvc2Vjb25kcy4gIEl0IGRvZXMgbm90IGFjdHVhbGx5 IGRvIHRoZSBkZWxheS4NCg0KPiANCj4gKyAqDQo+IA0KPiArICogSWYgdGhlIHJldHVybiB2YWx1 ZSBmcm9tIEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKFRpbWVyTGliKQ0KPiANCj4g KyAqIGlzIHplcm8sIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgZGVsYXkgYW5kIGF0dGVtcHQgdG8g YXNzZXJ0Lg0KPiANCj4gKyAqLw0KDQpDb21tZW50IGJsb2NrIHN0eWxlIGRvZXMgbm90IG1hdGNo IEVESyBJSSBzdHlsZS4gIFJlbW92ZSBleHRyYSAnKicuDQoNCg0KPiANCj4gK1NUQVRJQw0KPiAN Cj4gK1VJTlQzMg0KPiANCj4gK0NhbGN1bGF0ZU1pbmltdW1EZWNlbnREZWxheUluTWljcm9zZWNv bmRzICgNCj4gDQo+ICsgIFZPSUQNCj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBVSU5U NjQgU3RhcnRWYWx1ZTsNCg0KUmVtb3ZlDQoNCj4gDQo+ICsgIFVJTlQ2NCBFbmRWYWx1ZTsNCg0K UmVtb3ZlDQoNCj4gDQo+ICsgIFVJTlQ2NCBDb3VudGVySHo7DQo+IA0KPiArICBVSU5UNjQgTWlu dW11bURlbGF5SW5NaWNyb1NlY29uZHM7DQo+IA0KPiArDQo+IA0KPiArICAvLyBHZXQgdGhlIGNv dW50ZXIgcHJvcGVydGllcw0KPiANCj4gKyAgQ291bnRlckh6ID0gR2V0UGVyZm9ybWFuY2VDb3Vu dGVyUHJvcGVydGllcyAoJlN0YXJ0VmFsdWUsICZFbmRWYWx1ZSk7DQoNCg0KQ2hhbmdlIHRvOg0K DQogICAgQ291bnRlckh6ID0gR2V0UGVyZm9ybWFuY2VDb3VudGVyUHJvcGVydGllcyAoTlVMTCwg TlVMTCk7DQoNCj4gDQo+ICsgIC8vIE1ha2Ugc3VyZSB3ZSB3b24ndCBkaXZpZGUgYnkgemVybw0K PiANCj4gKyAgaWYgKENvdW50ZXJIeiA9PSAwKSB7DQo+IA0KPiArICAgIEFTU0VSVChDb3VudGVy SHogIT0gMCk7IC8vIEFzc2VydCBzbyB0aGUgZGV2ZWxvcGVyIGtub3dzIHNvbWV0aGluZyBpcyB3 cm9uZw0KPiANCj4gKyAgICByZXR1cm47DQo+IA0KPiArICB9DQo+IA0KPiArICAvLyBDYWxjdWxh dGUgdGhlIG1pbmltdW0gZGVsYXkgYmFzZWQgb24gMS41IG1pY3Jvc2Vjb25kcyBkaXZpZGVkIGJ5 IHRoZSBoZXJ0ei4NCj4gDQo+ICsgIC8vIFdlIGNhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIGEgY3lj bGUgKDEvQ291bnRlckh6KSBhbmQgbXVsdGlwbHkgaXQgYnkgMS41IG1pY3Jvc2Vjb25kcw0KPiAN Cj4gKyAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgaGFzIGlu Y3JlYXNlZCBieSBhdCBsZWFzdCBvbmUNCj4gDQo+ICsgIHJldHVybiAoVUlOVDMyKShNQVgoRGl2 VTY0eDY0UmVtYWluZGVyKDE1MDAwMDAgLyBDb3VudGVySHosIE5VTEwpLCAxKSk7DQo+IA0KPiAr fQ0KPiANCj4gKw0KPiANCj4gKw0KPiANCj4gKy8qKg0KPiANCj4gKyAgR2VuZXJhdGVzIGEgMTYt Yml0IHJhbmRvbSBudW1iZXIuDQo+IA0KPiArDQo+IA0KPiArICBpZiBSYW5kIGlzIE5VTEwsIHRo ZW4gQVNTRVJUKCkuDQo+IA0KPiArDQo+IA0KPiArICBAcGFyYW1bb3V0XSBSYW5kICAgICBCdWZm ZXIgcG9pbnRlciB0byBzdG9yZSB0aGUgMTYtYml0IHJhbmRvbSB2YWx1ZS4NCj4gDQo+ICsNCj4g DQo+ICsgIEByZXR2YWwgVFJVRSAgICAgICAgIFJhbmRvbSBudW1iZXIgZ2VuZXJhdGVkIHN1Y2Nl c3NmdWxseS4NCj4gDQo+ICsgIEByZXR2YWwgRkFMU0UgICAgICAgIEZhaWxlZCB0byBnZW5lcmF0 ZSB0aGUgcmFuZG9tIG51bWJlci4NCj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtCT09MRUFO DQo+IA0KPiArRUZJQVBJDQo+IA0KPiArR2V0UmFuZG9tTnVtYmVyMTYgKA0KPiANCj4gKyAgT1VU ICAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICpSYW5kDQo+IA0KPiArICApDQo+IA0KPiAr ew0KPiANCj4gKyAgVUlOVDMyICBJbmRleDsNCj4gDQo+ICsgIFVJTlQ4ICAqUmFuZFB0cjsNCj4g DQo+ICsgIFVJTlQzMiAgRGVsYXlJbk1pY3JvU2Vjb25kczsNCj4gDQo+ICsNCj4gDQo+ICsgIEFT U0VSVCAoUmFuZCAhPSBOVUxMKTsNCj4gDQo+ICsNCj4gDQo+ICsgIGlmIChSYW5kID09IE5VTEwp IHsNCj4gDQo+ICsgICAgcmV0dXJuIEZBTFNFOw0KPiANCj4gKyAgfQ0KPiANCj4gKyAgRGVsYXlJ bk1pY3JvU2Vjb25kcyA9IENhbGN1bGF0ZU1pbmltdW1EZWNlbnREZWxheUluTWljcm9zZWNvbmRz ICgpOw0KPiANCj4gKyAgUmFuZFB0ciA9IChVSU5UOCopUmFuZDsNCj4gDQo+ICsgIC8vIEdldCAy IGJ5dGVzIG9mIHJhbmRvbSBpc2ggZGF0YQ0KPiANCj4gKyAgZm9yIChJbmRleCA9IDA7IEluZGV4 IDwgMjsgSW5kZXggKyspIHsNCj4gDQo+ICsgICAgKlJhbmRQdHIgPSAoVUlOVDgpKEdldFBlcmZv cm1hbmNlQ291bnRlciAoKSAmIDB4RkYpOw0KPiANCj4gKyAgICAvLyBEZWxheSB0byBnaXZlIHRo ZSBwZXJmb3JtYW5jZSBjb3VudGVyIGEgY2hhbmNlIHRvIGNoYW5nZQ0KPiANCj4gKyAgICBNaWNy b1NlY29uZERlbGF5IChEZWxheUluTWljcm9TZWNvbmRzKTsNCj4gDQo+ICsgICAgUmFuZFB0cisr Ow0KPiANCj4gKyAgfQ0KPiANCj4gKyAgcmV0dXJuIFRSVUU7DQo+IA0KPiArfQ0KPiANCj4gKw0K PiANCj4gKy8qKg0KPiANCj4gKyAgR2VuZXJhdGVzIGEgMzItYml0IHJhbmRvbSBudW1iZXIuDQo+ IA0KPiArDQo+IA0KPiArICBpZiBSYW5kIGlzIE5VTEwsIHRoZW4gQVNTRVJUKCkuDQo+IA0KPiAr DQo+IA0KPiArICBAcGFyYW1bb3V0XSBSYW5kICAgICBCdWZmZXIgcG9pbnRlciB0byBzdG9yZSB0 aGUgMzItYml0IHJhbmRvbSB2YWx1ZS4NCj4gDQo+ICsNCj4gDQo+ICsgIEByZXR2YWwgVFJVRSAg ICAgICAgIFJhbmRvbSBudW1iZXIgZ2VuZXJhdGVkIHN1Y2Nlc3NmdWxseS4NCj4gDQo+ICsgIEBy ZXR2YWwgRkFMU0UgICAgICAgIEZhaWxlZCB0byBnZW5lcmF0ZSB0aGUgcmFuZG9tIG51bWJlci4N Cj4gDQo+ICsNCj4gDQo+ICsqKi8NCj4gDQo+ICtCT09MRUFODQo+IA0KPiArRUZJQVBJDQo+IA0K PiArR2V0UmFuZG9tTnVtYmVyMzIgKA0KPiANCj4gKyAgT1VUICAgICBVSU5UMzIgICAgICAgICAg ICAgICAgICAgICpSYW5kDQo+IA0KPiArICApDQo+IA0KPiArew0KPiANCj4gKyAgVUlOVDMyICBJ bmRleDsNCj4gDQo+ICsgIFVJTlQ4ICAqUmFuZFB0cjsNCj4gDQo+ICsgIFVJTlQzMiAgRGVsYXlJ bk1pY3JvU2Vjb25kczsNCj4gDQo+ICsNCj4gDQo+ICsgIEFTU0VSVCAoUmFuZCAhPSBOVUxMKTsN Cj4gDQo+ICsNCj4gDQo+ICsgIGlmIChOVUxMID09IFJhbmQpIHsNCj4gDQo+ICsgICAgcmV0dXJu IEZBTFNFOw0KPiANCj4gKyAgfQ0KPiANCj4gKw0KPiANCj4gKyAgUmFuZFB0ciA9IChVSU5UOCAq KSBSYW5kOw0KPiANCj4gKyAgRGVsYXlJbk1pY3JvU2Vjb25kcyA9IENhbGN1bGF0ZU1pbmltdW1E ZWNlbnREZWxheUluTWljcm9zZWNvbmRzICgpOw0KPiANCj4gKyAgLy8gR2V0IDQgYnl0ZXMgb2Yg cmFuZG9tIGlzaCBkYXRhDQo+IA0KPiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCA0OyBJbmRl eCArKykgew0KPiANCj4gKyAgICAqUmFuZFB0ciA9IChVSU5UOCkgKEdldFBlcmZvcm1hbmNlQ291 bnRlciAoKSAmIDB4RkYpOw0KPiANCj4gKyAgICAvLyBEZWxheSB0byBnaXZlIHRoZSBwZXJmb3Jt YW5jZSBjb3VudGVyIGEgY2hhbmNlIHRvIGNoYW5nZQ0KPiANCj4gKyAgICBNaWNyb1NlY29uZERl bGF5IChEZWxheUluTWljcm9TZWNvbmRzKTsNCj4gDQo+ICsgICAgUmFuZFB0cisrOw0KPiANCj4g KyAgfQ0KPiANCj4gKyAgcmV0dXJuIFRSVUU7DQo+IA0KPiArfQ0KPiANCj4gKw0KPiANCj4gKy8q Kg0KPiANCj4gKyAgR2VuZXJhdGVzIGEgNjQtYml0IHJhbmRvbSBudW1iZXIuDQo+IA0KPiArDQo+ IA0KPiArICBpZiBSYW5kIGlzIE5VTEwsIHRoZW4gQVNTRVJUKCkuDQo+IA0KPiArDQo+IA0KPiAr ICBAcGFyYW1bb3V0XSBSYW5kICAgICBCdWZmZXIgcG9pbnRlciB0byBzdG9yZSB0aGUgNjQtYml0 IHJhbmRvbSB2YWx1ZS4NCj4gDQo+ICsNCj4gDQo+ICsgIEByZXR2YWwgVFJVRSAgICAgICAgIFJh bmRvbSBudW1iZXIgZ2VuZXJhdGVkIHN1Y2Nlc3NmdWxseS4NCj4gDQo+ICsgIEByZXR2YWwgRkFM U0UgICAgICAgIEZhaWxlZCB0byBnZW5lcmF0ZSB0aGUgcmFuZG9tIG51bWJlci4NCj4gDQo+ICsN Cj4gDQo+ICsqKi8NCj4gDQo+ICtCT09MRUFODQo+IA0KPiArRUZJQVBJDQo+IA0KPiArR2V0UmFu ZG9tTnVtYmVyNjQgKA0KPiANCj4gKyAgT1VUICAgICBVSU5UNjQgICAgICAgICAgICAgICAgICAg ICpSYW5kDQo+IA0KPiArICApDQo+IA0KPiArew0KPiANCj4gKyAgVUlOVDMyICBJbmRleDsNCj4g DQo+ICsgIFVJTlQ4ICAqUmFuZFB0cjsNCj4gDQo+ICsgIFVJTlQzMiAgRGVsYXlJbk1pY3JvU2Vj b25kczsNCj4gDQo+ICsNCj4gDQo+ICsgIEFTU0VSVCAoUmFuZCAhPSBOVUxMKTsNCj4gDQo+ICsN Cj4gDQo+ICsgIGlmIChOVUxMID09IFJhbmQpIHsNCj4gDQo+ICsgICAgcmV0dXJuIEZBTFNFOw0K PiANCj4gKyAgfQ0KPiANCj4gKw0KPiANCj4gKyAgUmFuZFB0ciA9IChVSU5UOCAqKSBSYW5kOw0K PiANCj4gKyAgRGVsYXlJbk1pY3JvU2Vjb25kcyA9IENhbGN1bGF0ZU1pbmltdW1EZWNlbnREZWxh eUluTWljcm9zZWNvbmRzICgpOw0KPiANCj4gKyAgLy8gR2V0IDggYnl0ZXMgb2YgcmFuZG9tIGlz aCBkYXRhDQo+IA0KPiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCA4OyBJbmRleCArKykgew0K PiANCj4gKyAgICAqUmFuZFB0ciA9IChVSU5UOCkoR2V0UGVyZm9ybWFuY2VDb3VudGVyICgpICYg MHhGRik7DQo+IA0KPiArICAgIC8vIERlbGF5IHRvIGdpdmUgdGhlIHBlcmZvcm1hbmNlIGNvdW50 ZXIgYSBjaGFuY2UgdG8gY2hhbmdlDQo+IA0KPiArICAgIE1pY3JvU2Vjb25kRGVsYXkgKERlbGF5 SW5NaWNyb1NlY29uZHMpOw0KPiANCj4gKyAgICBSYW5kUHRyKys7DQo+IA0KPiArICB9DQo+IA0K PiArDQo+IA0KPiArICByZXR1cm4gVFJVRTsNCj4gDQo+ICt9DQo+IA0KPiArDQo+IA0KPiArLyoq DQo+IA0KPiArICBHZW5lcmF0ZXMgYSAxMjgtYml0IHJhbmRvbSBudW1iZXIuDQo+IA0KPiArDQo+ IA0KPiArICBpZiBSYW5kIGlzIE5VTEwsIHRoZW4gQVNTRVJUKCkuDQo+IA0KPiArDQo+IA0KPiAr ICBAcGFyYW1bb3V0XSBSYW5kICAgICBCdWZmZXIgcG9pbnRlciB0byBzdG9yZSB0aGUgMTI4LWJp dCByYW5kb20gdmFsdWUuDQo+IA0KPiArDQo+IA0KPiArICBAcmV0dmFsIFRSVUUgICAgICAgICBS YW5kb20gbnVtYmVyIGdlbmVyYXRlZCBzdWNjZXNzZnVsbHkuDQo+IA0KPiArICBAcmV0dmFsIEZB TFNFICAgICAgICBGYWlsZWQgdG8gZ2VuZXJhdGUgdGhlIHJhbmRvbSBudW1iZXIuDQo+IA0KPiAr DQo+IA0KPiArKiovDQo+IA0KPiArQk9PTEVBTg0KPiANCj4gK0VGSUFQSQ0KPiANCj4gK0dldFJh bmRvbU51bWJlcjEyOCAoDQo+IA0KPiArICBPVVQgICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAg ICAgKlJhbmQNCj4gDQo+ICsgICkNCj4gDQo+ICt7DQo+IA0KPiArICBBU1NFUlQgKFJhbmQgIT0g TlVMTCk7DQo+IA0KPiArICAvLyBUaGlzIHNob3VsZCB0YWtlIGFyb3VuZCA4MG1zDQoNCg0KVXBk YXRlIGNvbW1lbnQgdG8gcmVtb3ZlIG1lbnRpb24gb2Ygc3BlY2lmaWMgZGVsYXkgYW5kIG1hdGNo DQpzaW1pbGFyIGNvbW1lbnRzIGluIGZ1bmN0aW9ucyBhYm92ZS4NCg0KPiANCj4gKw0KPiANCj4g KyAgLy8gUmVhZCBmaXJzdCA2NCBiaXRzDQo+IA0KPiArICBpZiAoIUdldFJhbmRvbU51bWJlcjY0 IChSYW5kKSkgew0KPiANCj4gKyAgICByZXR1cm4gRkFMU0U7DQo+IA0KPiArICB9DQo+IA0KPiAr DQo+IA0KPiArICAvLyBSZWFkIHNlY29uZCA2NCBiaXRzDQo+IA0KPiArICByZXR1cm4gR2V0UmFu ZG9tTnVtYmVyNjQgKCsrUmFuZCk7DQo+IA0KPiArfQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZVBr Zy9MaWJyYXJ5L0Jhc2VSbmdMaWJUaW1lckxpYi9CYXNlUm5nTGliVGltZXJMaWIuaW5mIGIvTWRl UGtnL0xpYnJhcnkvQmFzZVJuZ0xpYlRpbWVyTGliL0Jhc2VSbmdMaWJUaW1lckxpYi5pbmYNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5jNDk5ZTUzMjczNTEN Cj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlUm5nTGliVGltZXJM aWIvQmFzZVJuZ0xpYlRpbWVyTGliLmluZg0KPiBAQCAtMCwwICsxLDM2IEBADQo+ICsjIyBAZmls ZQ0KPiANCj4gKyMgIEluc3RhbmNlIG9mIFJORyAoUmFuZG9tIE51bWJlciBHZW5lcmF0b3IpIExp YnJhcnkuDQo+IA0KPiArIw0KPiANCj4gKyMgIEJhc2VSbmcgTGlicmFyeSB0aGF0IHVzZXMgdGhl IFRpbWVyTGliIHRvIHByb3ZpZGUgcmVhc29uYWJseSByYW5kb20gbnVtYmVycy4NCj4gDQo+ICsj ICBEbyBOT1QgdXNlIHRoaXMgb24gYSBwcm9kdWN0aW9uIHN5c3RlbSBhcyB0aGlzIHVzZXMgdGhl IHN5c3RlbSBwZXJmb3JtYW5jZQ0KPiANCj4gKyMgIGNvdW50ZXIgcmF0aGVyIHRoYW4gYSB0cnVl IHNvdXJjZSBvZiByYW5kb20gaW4gYWRkaXRpb24gdG8gaGF2aW5nIGEgd2Vhaw0KPiANCj4gKyMg IHJhbmRvbSBhbGdvcml0aG0uIFRoaXMgaXMgcHJvdmlkZWQgcHJpbWFyaWx5IGFzIGEgc291cmNl IG9mIGVudHJvcHkgZm9yDQo+IA0KPiArIyAgT3BlblNTTCBmb3IgcGxhdGZvcm1zIHRoYXQgZG8g bm90IGhhdmUgYSBnb29kIGJ1aWx0IGluIFJuZ0xpYiBhcyB0aGlzDQo+IA0KPiArIyAgZW11bGF0 ZXMgd2hhdCB3YXMgZG9uZSBiZWZvcmUgKHRob3VnaCBpdCBpc24ndCBwZXJmZWN0KS4NCj4gDQo+ ICsjDQo+IA0KPiArIyAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiANCj4gKyMNCj4gDQo+ICsjICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gKyMNCj4gDQo+ICsjDQo+IA0KPiAr IyMNCj4gDQo+ICsNCj4gDQo+ICtbRGVmaW5lc10NCj4gDQo+ICsgIElORl9WRVJTSU9OICAgICAg ICAgICAgICAgICAgICA9IDEuMjcNCj4gDQo+ICsgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAg ICAgICA9IEJhc2VSbmdMaWJUaW1lckxpYg0KPiANCj4gKyAgTU9EVUxFX1VOSV9GSUxFICAgICAg ICAgICAgICAgID0gQmFzZVJuZ0xpYlRpbWVyTGliLnVuaQ0KPiANCj4gKyAgRklMRV9HVUlEICAg ICAgICAgICAgICAgICAgICAgID0gNzQ5NTBDNDUtMTBGQy00QUI1LUIxMTQtNDlDODdDMTc0MDlC DQo+IA0KPiArICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNFDQo+IA0KPiAr ICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4gDQo+ICsgIExJQlJBUllf Q0xBU1MgICAgICAgICAgICAgICAgICA9IFJuZ0xpYg0KPiANCj4gKyAgQ09OU1RSVUNUT1IgICAg ICAgICAgICAgICAgICAgID0gQmFzZVJuZ0xpYkNvbnN0cnVjdG9yDQo+IA0KPiArDQo+IA0KPiAr W1NvdXJjZXNdDQo+IA0KPiArICBSbmdMaWJUaW1lci5jDQo+IA0KPiArDQo+IA0KPiArW1BhY2th Z2VzXQ0KPiANCj4gKyAgTWRlUGtnL01kZVBrZy5kZWMNCj4gDQo+ICsNCj4gDQo+ICtbTGlicmFy eUNsYXNzZXNdDQo+IA0KPiArICBCYXNlTGliDQo+IA0KPiArICBUaW1lckxpYg0KPiANCj4gZGlm ZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VSbmdMaWJUaW1lckxpYi9CYXNlUm5nTGliVGlt ZXJMaWIudW5pIGIvTWRlUGtnL0xpYnJhcnkvQmFzZVJuZ0xpYlRpbWVyTGliL0Jhc2VSbmdMaWJU aW1lckxpYi51bmkNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAw Li5mZGUyNGI5ZjAxMDcNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9NZGVQa2cvTGlicmFyeS9C YXNlUm5nTGliVGltZXJMaWIvQmFzZVJuZ0xpYlRpbWVyTGliLnVuaQ0KPiBAQCAtMCwwICsxLDE1 IEBADQo+ICsvLyBAZmlsZQ0KPiANCj4gKy8vIEluc3RhbmNlIG9mIFJORyAoUmFuZG9tIE51bWJl ciBHZW5lcmF0b3IpIExpYnJhcnkuDQo+IA0KPiArLy8NCj4gDQo+ICsvLyBSbmdMaWIgdGhhdCB1 c2VzIFRpbWVyTGliJ3MgcGVyZm9ybWFuY2UgY291bnRlciB0byBwcm92aWRlIHJhbmRvbSBudW1i ZXJzLg0KPiANCj4gKy8vDQo+IA0KPiArLy8gQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9y YXRpb24uDQo+IA0KPiArLy8NCj4gDQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPiANCj4gKy8vDQo+IA0KPiArDQo+IA0KPiArDQo+IA0KPiArI3N0 cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkluc3RhbmNlIG9m IFJORyBMaWJyYXJ5Ig0KPiANCj4gKw0KPiANCj4gKyNzdHJpbmcgU1RSX01PRFVMRV9ERVNDUklQ VElPTiAgI2xhbmd1YWdlIGVuLVVTICJCYXNlUm5nIExpYnJhcnkgdGhhdCB1c2VzIHRoZSBUaW1l ckxpYiB0byBwcm92aWRlIGxvdy1lbnRyb3B5IHJhbmRvbSBudW1iZXJzIg0KPiANCj4gKw0KPiAN Cj4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZHNjIGIvTWRlUGtnL01kZVBrZy5kc2MNCj4g aW5kZXggNDcyZmEzNzc3NDEyLi5kN2JhM2E3MzA5MDkgMTAwNjQ0DQo+IC0tLSBhL01kZVBrZy9N ZGVQa2cuZHNjDQo+ICsrKyBiL01kZVBrZy9NZGVQa2cuZHNjDQo+IEBAIC02Miw2ICs2Miw4IEBA DQo+ICAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VQb3N0Q29kZUxpYlBvcnQ4MC9CYXNlUG9zdENvZGVM aWJQb3J0ODAuaW5mDQo+IA0KPiAgICBNZGVQa2cvTGlicmFyeS9CYXNlUHJpbnRMaWIvQmFzZVBy aW50TGliLmluZg0KPiANCj4gICAgTWRlUGtnL0xpYnJhcnkvQmFzZVJlcG9ydFN0YXR1c0NvZGVM aWJOdWxsL0Jhc2VSZXBvcnRTdGF0dXNDb2RlTGliTnVsbC5pbmYNCj4gDQo+ICsgIE1kZVBrZy9M aWJyYXJ5L0Jhc2VSbmdMaWJUaW1lckxpYi9CYXNlUm5nTGliVGltZXJMaWIuaW5mDQo+IA0KPiAr ICBNZGVQa2cvTGlicmFyeS9CYXNlUm5nTGliTnVsbC9CYXNlUm5nTGliTnVsbC5pbmYNCj4gDQo+ ICAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VTZXJpYWxQb3J0TGliTnVsbC9CYXNlU2VyaWFsUG9ydExp Yk51bGwuaW5mDQo+IA0KPiAgICBNZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGli L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIuaW5mDQo+IA0KPiAgICBNZGVQa2cvTGlicmFyeS9CYXNl VGltZXJMaWJOdWxsVGVtcGxhdGUvQmFzZVRpbWVyTGliTnVsbFRlbXBsYXRlLmluZg0KPiANCj4g QEAgLTY5LDcgKzcxLDYgQEANCj4gICAgTWRlUGtnL0xpYnJhcnkvQmFzZVVlZmlEZWNvbXByZXNz TGliL0Jhc2VVZWZpVGlhbm9DdXN0b21EZWNvbXByZXNzTGliLmluZg0KPiANCj4gICAgTWRlUGtn L0xpYnJhcnkvQmFzZVNtYnVzTGliTnVsbC9CYXNlU21idXNMaWJOdWxsLmluZg0KPiANCj4gICAg TWRlUGtnL0xpYnJhcnkvQmFzZVNhZmVJbnRMaWIvQmFzZVNhZmVJbnRMaWIuaW5mDQo+IA0KPiAt ICBNZGVQa2cvTGlicmFyeS9CYXNlUm5nTGliTnVsbC9CYXNlUm5nTGliTnVsbC5pbmYNCj4gDQo+ IA0KPiANCj4gICAgTWRlUGtnL0xpYnJhcnkvRHhlQ29yZUVudHJ5UG9pbnQvRHhlQ29yZUVudHJ5 UG9pbnQuaW5mDQo+IA0KPiAgICBNZGVQa2cvTGlicmFyeS9EeGVDb3JlSG9iTGliL0R4ZUNvcmVI b2JMaWIuaW5mDQo+IA0KPiAtLQ0KPiAyLjI4LjAud2luZG93cy4xDQoNCg==