From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=FjOXhrsN; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: michael.a.kubacki@intel.com) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by groups.io with SMTP; Thu, 26 Sep 2019 13:29:49 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Sep 2019 13:29:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,553,1559545200"; d="scan'208";a="390858731" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga006.fm.intel.com with ESMTP; 26 Sep 2019 13:29:47 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 26 Sep 2019 13:29:47 -0700 Received: from NAM05-CO1-obe.outbound.protection.outlook.com (104.47.48.53) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 26 Sep 2019 13:29:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xn369vS19wFarDpKQiYHdh9lG2Nn7UO1IhOhBeFA3n0vx1qetlofDGnt8/MDa7IyHPmaNqi9ntbaloCGkKFJveY5jzB7xjpqLC3DC+XQsIXHjKKqRLiX1kDPed0hxX1NcdN3t7/BmEV6umwq6mE0YTdQuu9qVo7JDIWoiAUeoHX+eEFgZebQKSqW67j2DeY5vH0ARb/2NP3wfsKniN0XHGnS1lrL7I+2H1L6wc8JRO2uIOpRJlBCMaWgv53FT/NxMjBCBA5EJx6BUnNaSryNyo1bCEcCwQzSWrrnVscO7r3cFxlG+3N8Nn2xGm6qB1aetAxOopih/xcd9MoMk6J+XQ== 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=HRGKy0uUiNYiGJ4QW97FQanCS05wB9ZDg02iu+QoAp0=; b=OcteEulhal46+UukLgSw2dMiPt2rqfu+uohR6oZ06OsCiEt3TZH08q7PKwm492gxjyGhBtXdj80yhL44Gc0iJXT0jn2Js1RSXuqM0NFYVrqDOxG2NiALlDcSNvFOm/Qg3zz9tk1b/QCCXqtRK7HyzTlTZ4FYPCQ3l5570CLEi/sIUUb9rzjJ+0lA869+XrHKBLIqiJSOkaJ3tsi1zG7nCEN6CI3Q74LwLrNOYgfg5BG1FRo9t8AGADpaoVDRbjc33T9Kb8QvKP4tXkqJuB3BlU9aEJsFjX/DPjwmHKQSfPtepzsbvu3YaeWjz40kTbtrLZzz66Nur9ynRxnSAsI2QA== 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=HRGKy0uUiNYiGJ4QW97FQanCS05wB9ZDg02iu+QoAp0=; b=FjOXhrsNT6iYSxYFItnyuDbKCrT083N3NmUqNkAjElH48hcPUo2v702sISmQikrN5KChRInrelDwEIp+2qrFia+XSD3i6AsBcHqhCUndWWETj4n2pRCFGZaSpwCVqrTyUjlRbgMkwVSQK2X8xhSw6Y0DPT02ANmFcv1xozH+Eco= Received: from DM6PR11MB3834.namprd11.prod.outlook.com (20.179.17.87) by DM6PR11MB3067.namprd11.prod.outlook.com (20.177.218.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2284.25; Thu, 26 Sep 2019 20:29:19 +0000 Received: from DM6PR11MB3834.namprd11.prod.outlook.com ([fe80::c093:6e7b:c014:6658]) by DM6PR11MB3834.namprd11.prod.outlook.com ([fe80::c093:6e7b:c014:6658%6]) with mapi id 15.20.2284.023; Thu, 26 Sep 2019 20:29:19 +0000 From: "Kubacki, Michael A" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Bi, Dandan" , Ard Biesheuvel , "Dong, Eric" , "Gao, Liming" , "Kinney, Michael D" , "Ni, Ray" , "Wang, Jian J" , "Wu, Hao A" , "Yao, Jiewen" Subject: Re: [PATCH V1 0/5] UEFI Variable SMI Reduction Thread-Topic: [PATCH V1 0/5] UEFI Variable SMI Reduction Thread-Index: AQHVdJeg98zsaxLGxUuyJUODhE9EJac+YMKQ Date: Thu, 26 Sep 2019 20:29:19 +0000 Message-ID: References: <20190926045046.34592-1-michael.a.kubacki@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYmQ0NjQzMmItYWE1ZC00NTdhLWE4Y2EtNzFiNDM3MTcwODFkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoicXI1bFJBYnJnQkt2aUExRjR4Z25DXC9kZVwvb2NPNVBIbzVsOGxUR2liS01ZV0lcL0ZLbWdRY2lWb255ZjMzV3JVbCJ9 dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=michael.a.kubacki@intel.com; x-originating-ip: [134.134.136.217] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: faeaec2d-b756-4e24-e5aa-08d742c0358e x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600167)(711020)(4605104)(1401327)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:DM6PR11MB3067; x-ms-traffictypediagnostic: DM6PR11MB3067: x-ms-exchange-purlcount: 2 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:8882; x-forefront-prvs: 0172F0EF77 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(366004)(376002)(346002)(136003)(39860400002)(13464003)(51444003)(199004)(189003)(66556008)(71200400001)(64756008)(186003)(256004)(71190400001)(476003)(52536014)(66476007)(76116006)(74316002)(66446008)(86362001)(99286004)(30864003)(11346002)(5660300002)(66946007)(8676002)(7736002)(26005)(2501003)(3846002)(446003)(14444005)(2906002)(486006)(6116002)(55016002)(102836004)(478600001)(6436002)(8936002)(6306002)(110136005)(14454004)(54906003)(6246003)(316002)(53546011)(9686003)(107886003)(966005)(6506007)(25786009)(305945005)(76176011)(66066001)(81156014)(81166006)(7696005)(4326008)(229853002)(33656002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM6PR11MB3067;H:DM6PR11MB3834.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: lOUxMDOFity4UZK5ifW9dPaWabvFpnY0cnRFhEdedmYUIZR0G6+qb9cbwdZ6j4/3tlriAvYmhATLjr2eorxUOro6YhfekAYxRCEqHjPQMr5ZeuVm2cvf8EAis6Bir0BFcmUPjPyDpRK/ufStLZDMPQ82war6vv+dfKTjdXx7dikto6ctueMfyv7ZgbDnRTfpgTOuB4g8sEe8RnC4Xid9qfSTHrr1O9vXdR8Pr9LSu0ZUB3kwZsvl7U0OjdSq0PFCiQkj4LHdKUplCdtYS8AAIeNGwGFIaO7uOa+Ewb1sz2KxHnHLv0YmINLMcUPr5qwGcNh3Bw8YamZ8mODwQGCdekQgNfb/Y2pVrxIEcYQl92i4+qXU02iOPREcFXx/p8RiEGIQVVAZKLgNo9TAf0MJUfkeEKc7LorNkFfxPpOzdatXE8Ojz5nEzdkl4IFCl6hMuphfLpaaUSsJwOQv6ifxkg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: faeaec2d-b756-4e24-e5aa-08d742c0358e X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Sep 2019 20:29:19.4706 (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: 0rfEiRRHJA+nLQzRsQ/9oENXWy1Jg874j+dceBk+cA2lcJzq1kFL7P4BSjENwjUdrTsSjBvuDxJtRlfpjco17ZaWatdz2VGQfDgoFH7bSWU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3067 Return-Path: michael.a.kubacki@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQpJbiBzaG9ydCwgaXQgd291bGQgbm90IGNvbXBsaWNhdGUgdGhlIGNvZGUg YmV5b25kIGEgcmVhc29uYWJsZSBsZXZlbCB0byBzdXBwb3J0IHRoZSBydW50aW1lIGNhY2hlIHdp dGggYSBGZWF0dXJlUENELg0KDQpJIGhhZCBjb25zaWRlcmVkIHRoaXMgYnV0IGRpc21pc3NlZCBp dCB3aXRoIGxhY2sgb2YgYSBwcmFjdGljYWwgdXNlIGNhc2UgKHdoaWNoIHlvdSBwcm92aWRlZCkg dGhhdCBjb3VsZCBqdXN0aWZ5IGFkZGluZyBhbm90aGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRv IHRoZSB2YXJpYWJsZSBkcml2ZXIuIFRoZSBTTU0gY29tbXVuaWNhdGlvbiBidWZmZXIgcHJlcGFy YXRpb24gY29kZSBhbmQgU01JIGhhbmRsZXIgY29kZSBmb3IgR2V0VmFyaWFibGUgKCkgYW5kIEdl dE5leHRWYXJpYWJsZU5hbWUgKCkgd291bGQgaGF2ZSB0byBiZSBhZGRlZCBiYWNrIHdoaWNoIEkn ZCBwcmVmZXIgZWxpbWluYXRpbmcgbWFpbnRlbmFuY2Ugb2YgaWYgcG9zc2libGUuDQoNClRoZSBT TU0gY2FjaGUgaXMgdXNlZCB0byBzZXJ2ZSBTTU0gY2FsbGVycy4NCg0KRG8gb3RoZXJzIGhhdmUg YW4gb3BpbmlvbiBvciBzdWdnZXN0aW9uPyBJZiBub3QsIEknbGwgcHJvY2VlZCB3aXRoIGFkZGlu ZyBhIEZlYXR1cmVQQ0QuDQoNClRoYW5rcywNCk1pY2hhZWwNCg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiBT ZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDI2LCAyMDE5IDExOjI0IEFNDQo+IFRvOiBLdWJhY2tp LCBNaWNoYWVsIEEgPG1pY2hhZWwuYS5rdWJhY2tpQGludGVsLmNvbT47DQo+IGRldmVsQGVkazIu Z3JvdXBzLmlvDQo+IENjOiBCaSwgRGFuZGFuIDxkYW5kYW4uYmlAaW50ZWwuY29tPjsgQXJkIEJp ZXNoZXV2ZWwNCj4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBEb25nLCBFcmljIDxlcmlj LmRvbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsg S2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gTmksIFJh eSA8cmF5Lm5pQGludGVsLmNvbT47IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29t PjsgV3UsIEhhbw0KPiBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbiA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggVjEgMC81XSBVRUZJIFZhcmlh YmxlIFNNSSBSZWR1Y3Rpb24NCj4gDQo+IEhlbGxvIE1pY2hhZWwsDQo+IA0KPiBPbiAwOS8yNi8x OSAwNjo1MCwgTWljaGFlbCBLdWJhY2tpIHdyb3RlOg0KPiA+IFJFRjpodHRwczovL2J1Z3ppbGxh LnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjANCj4gPg0KPiA+IE92ZXJ2aWV3DQo+ ID4gLS0tLS0tLS0tDQo+ID4gVGhpcyBwYXRjaCBzZXJpZXMgcmVkdWNlcyBTTU0gdXNhZ2Ugd2hl biB1c2luZw0KPiBWYXJpYWJsZVNtbVJ1bnRpbWVEeGUNCj4gPiB3aXRoIFZhcmlhYmxlU21tLiBJ dCBkb2VzIHNvIGJ5IGVsaW1pbmF0aW5nIFNNTSB1c2FnZSBmb3IgcnVudGltZQ0KPiA+IHNlcnZp Y2UgR2V0VmFyaWFibGUgKCkgYW5kIEdldE5leHRWYXJpYWJsZU5hbWUgKCkgaW52b2NhdGlvbnMu IE1vc3QNCj4gPiBVRUZJIHZhcmlhYmxlIHVzYWdlIGluIHR5cGljYWwgc3lzdGVtcyBhZnRlciB0 aGUgdmFyaWFibGUgc3RvcmUgaXMNCj4gPiBpbml0aWFsaXplZCAoZS5nLiBtYW51ZmFjdHVyaW5n IGJvb3RzKSBpcyBkdWUgdG8gR2V0VmFyaWFibGUgKCApIGFuZA0KPiA+IEdldE5leHRWYXJpYWJs ZU5hbWUgKCkgbm90IFNldFZhcmlhYmxlICgpLiBHZXRWYXJpYWJsZSAoKSBjYWxscyBjYW4NCj4g PiByZWd1bGFybHkgZXhjZWVkIDEwMCBwZXIgYm9vdCB3aGlsZSBTZXRWYXJpYWJsZSAoKSBjYWxs cyB0eXBpY2FsbHkNCj4gPiByZW1haW4gbGVzcyB0aGFuIDEwIHBlciBib290LiBCeSBmb2N1c2lu ZyBvbiB0aGUgY29tbW9uIGNhc2UsIHRoZQ0KPiA+IG1ham9yaXR5IG9mIG92ZXJoZWFkIGFzc29j aWF0ZWQgd2l0aCBTTU0gY2FuIGJlIGF2b2lkZWQgd2hpbGUgc3RpbGwNCj4gPiB1c2luZyBleGlz dGluZyBhbmQgcHJvdmVuIGNvZGUgZm9yIG9wZXJhdGlvbnMgc3VjaCBhcyB2YXJpYWJsZQ0KPiA+ IGF1dGhlbnRpY2F0aW9uIHRoYXQgcmVxdWlyZSBhbiBpc29sYXRlZCBleGVjdXRpb24gZW52aXJv bm1lbnQuDQo+ID4NCj4gPiAgKiBBZHZhbnRhZ2U6IFJlZHVjZXMgb3ZlcmFsbCBzeXN0ZW0gU01N IHVzYWdlDQo+ID4gICogRGlzYWR2YW50YWdlOiBSZXF1aXJlcyBtb3JlIFJ1bnRpbWUgZGF0YSBt ZW1vcnkgdXNhZ2UNCj4gDQo+IEluIGEgcGVyZmVjdCB3b3JsZCwgSSB3b3VsZCBjYXJlZnVsbHkg c2NydXRpbml6ZSB0aGlzIHBhdGNoIHNldCwgYW5kIHJlc3BvbmQNCj4gd2l0aCBjb21tZW50cy4g SW4gdGhlIHJlYWwgd29ybGQsIEkgaGF2ZSBoYXJkbHkgZW5vdWdoIHRpbWUgdG8gcmVhZCB0aGUN Cj4gYmx1cmIgOi8gU28gSSdsbCBoYXZlIHRvIGRlZmVyIHRvIHRoZSBvdGhlciByZXZpZXdlcnMg b24gdGhpcyBwYXRjaC4NCj4gDQo+IEknZCBsaWtlIHRvIHNwZWxsIG91dCBhbm90aGVyICJkaXNh ZHZhbnRhZ2UiIGhvd2V2ZXIuIEFkbWl0dGVkbHkgaXQncyBxdWl0ZSBhDQo+IGNvcm5lciBjYXNl Lg0KPiANCj4gVGhlIGRpc2FkdmFudGFnZSBpbiBteSBjYXNlIGlzIHRoYXQsIGJ5IGVsaW1pbmF0 aW5nIFNNTSBmcm9tIHZhcmlhYmxlDQo+ICpyZWFkcyosIE9WTUYgd2lsbCBsb3NlIGl0cyBzaW1w bGVzdCBtZXRob2QgdG8gZXhlcmNpc2UgdGhlIFNNTSBkcml2ZXINCj4gc3RhY2suIE5hbWVseSwg cmlnaHQgbm93LCBpZiB5b3UgYm9vdCBPVk1GIChidWlsdCB3aXRoIC1EIFNNTV9SRVFVSVJFKSwN Cj4gYW5kIGF0IHJvb3QgcHJvbXB0IGluIHRoZSBMaW51eCBndWVzdCwgeW91IHJ1bjoNCj4gDQo+ ICMgdGFza3NldCAtYyAwIGVmaWJvb3RtZ3INCj4gIyB0YXNrc2V0IC1jIDEgZWZpYm9vdG1ncg0K PiANCj4gdGhlbiB5b3UgdmVyeSBlYXNpbHkgdGVzdCB0aGUgU01NIG1hY2hpbmVyeSAodGhyb3Vn aCBCb290IyMjIywNCj4gQm9vdE9yZGVyLCBCb290TmV4dCB2YXJpYWJsZSAqcmVhZHMqKS4NCj4g DQo+IEluIGFkZGl0aW9uLCB0aGUgInRhc2tzZXQiIGNvbW1hbmRzIGFib3ZlIGZvcmNlIHRoZSBn dWVzdCBMaW51eCBrZXJuZWwgdG8NCj4gaW5pdGlhdGUgdGhlIEdldFZhcmlhYmxlIHJ1bnRpbWUg c2VydmljZSBjYWxsIC0tIGFuZCB0aGVyZWZvcmUgZW50ZXJpbmcgU01NIC0tDQo+IG9uIENQVSMw IChCU1ApIHZzLiBDUFUjMSAoQVApLg0KPiANCj4gVGhpcyBkaWZmZXJlbmNlICh0aGF0IGlzLCBC U1AgdnMuIEFQIGJlaW5nIHVzZWQgZm9yIHRoZSBydW50aW1lIHNlcnZpY2UNCj4gY2FsbCkgdXNl ZCB0byBleHBvc2UgKmV4dHJlbWUqIHRpbWluZyBhbmQgc3RhYmlsaXR5IGRpZmZlcmVuY2VzIGlu IHRoZQ0KPiBlZGsyIFNNTSBzdGFjaywgZGVwZW5kZW50IG9uIHRoZSBTTUkgZGVsaXZlcnkgbWV0 aG9kIHVzZWQuDQo+IA0KPiBUbyB0aGlzIGRheSwgdGhlIGFib3ZlIHR3byBjb21tYW5kcyByZW1h aW4gcGFydCBvZiBvdXIgc3RvY2sgcmVncmVzc2lvbi0NCj4gdGVzdHMgZm9yIHRoZSBoZWFsdGgg b2YgdGhlIFNNTSBzdGFjayAtLSB0aGUgY29tbWFuZHMgYXJlIGV4ZWN1dGVkIGluIHRoZQ0KPiBn dWVzdCBPUyBib3RoIGFmdGVyIG5vcm1hbCBib290LCBhbmQgYWZ0ZXIgUzMgcmVzdW1lLg0KPiAN Cj4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS90aWFub2NvcmUuZ2l0aHViLmlvL3dpa2kv VGVzdGluZy1TTU0td2l0aC0NCj4gUUVNVSwtS1ZNLWFuZC1saWJ2aXJ0I3VlZmktdmFyaWFibGUt YWNjZXNzLXRlc3QNCj4gDQo+IFRoZXJlZm9yZSwgd291bGQgaXQgYmUgcG9zc2libGUgdG8gbWFr ZSB0aGUgZmVhdHVyZSBkZXBlbmRlbnQgb24gYSBuZXcNCj4gRmVhdHVyZVBDRD8NCj4gDQo+IE9y LCBpZiB0aGF0IHdvdWxkIGNvbXBsaWNhdGUgdGhlIGNvZGUgdG9vIG11Y2gsIHBlcmhhcHMgbmV3 IG1vZHVsZSBJTkYNCj4gZmlsZXMgY291bGQgYmUgaW50cm9kdWNlZCAobGlicmFyeSBpbnN0YW5j ZXMsIG9yIGV2ZW4gZHJpdmVycykgdGhhdCBhIHBsYXRmb3JtDQo+IGNvdWxkIGNob29zZSB0byBz ZWxlY3QgaW4gRFNDIGZpbGVzLCBwZXJoYXBzIGRlcGVuZGVudCBvbiBhIC1EIGJ1aWxkIGZsYWcu DQo+IFRoZXJlIGNvdWxkIGJlIGEgc2V0IG9mIElORiBmaWxlcyBmb3IgdGhlIGN1cnJlbnQgYmVo YXZpb3IsIGFuZCBhbm90aGVyIHNldCBvZg0KPiBJTkYgZmlsZXMgZm9yIHRoZSAicmVhZCBjYWNo ZSIgYmVoYXZpb3IuIEFuZCB0aGUgcmVsYXRlZCBDIHNvdXJjZSBmaWxlcyB3b3VsZA0KPiBub3Qg aGF2ZSB0byBiZSBsaXR0ZXJlZCB3aXRoDQo+IA0KPiAgIGlmIChGZWF0dXJlUGNkR2V0ICguLi4p KSB7DQo+ICAgICAvLw0KPiAgICAgLy8gcmVhZCBjYWNoZQ0KPiAgICAgLy8NCj4gICB9IGVsc2Ug ew0KPiAgICAgLy8NCj4gICAgIC8vIHRyYWRpdGlvbmFsIGJlaGF2aW9yDQo+ICAgICAvLw0KPiAg IH0NCj4gDQo+IE9mIGNvdXJzZSwgd2l0aCB0aGUgcmVhZCBjYWNoZSBmZWF0dXJlLCBTTU0gZW50 cnkgY291bGQgc3RpbGwgYmUgZm9yY2VkIGluDQo+IE9WTUYgdGhyb3VnaCBub24tdm9sYXRpbGUg dmFyaWFibGUgKndyaXRlcyogLS0gYnV0IHdyaXRlcyBhcmUgbm90IHdpdGhvdXQNCj4gc2lkZS1l ZmZlY3RzIG9uIHRoZSB2YXJzdG9yZSwgYW5kIHRoZXkgZGVwZW5kIG9uIGV4dHJhIGNvbmRpdGlv bnMgcmVsYXRpdmUgdG8NCj4gcmVhZHMuDQo+IA0KPiBZb3UgbWVudGlvbiAiU01NIGNhY2hlIiBi ZWxvdywgYW5kIEknbSBub3QgZW50aXJlbHkgY2xlYXIgd2hlbiBleGFjdGx5DQo+IHRoYXQgd291 bGQgYmUgdXNlZCwgaW4gZmF2b3Igb2YgdGhlICJydW50aW1lIGNhY2hlIi4gSXQgc2VlbXMgdGhh dCB0aGUgIlNNTQ0KPiBjYWNoZSIgd291bGQgcHJpbWFyaWx5IHNlcnZlIFNNTSBjYWxsZXJzLiBJ ZiB0aGUgRmVhdHVyZVBDRCBjb3VsZCBiZSB1c2VkDQo+IGZvciBmb3JjaW5nIHRoZSB1c2Ugb2Yg IlNNTSBjYWNoZSIgZm9yIHRoZSBub3JtYWwgR2V0VmFyaWFibGUgcnVudGltZQ0KPiBzZXJ2aWNl IHRvbywgSSB0aGluayB0aGF0IG1pZ2h0IGNvdmVyIG15IHVzZSBjYXNlLiBJIGRvbid0IG5lZWQg R2V0VmFyaWFibGUgdG8NCj4gYWNjZXNzIGZsYXNoLCBpLmUuIGNhY2hpbmcgcGVyIHNlIGlzIGZp bmU7IEknZCBqdXN0IG5lZWQgR2V0VmFyaWFibGUgdG8gY29udGludWUNCj4gZXhlcmNpc2luZyB0 aGUgU01NIHN0YWNrICppbiBPVk1GKiAtLSBldmVuIGlmIHRoYXQgcGF0aCBpcyBzbG93ZXIgdGhh bg0KPiBkZXNpcmFibGUsIGZvciBwaHlzaWNhbCBwbGF0Zm9ybXMuDQo+IA0KPiBUaGFua3MhDQo+ IExhc3psbw0KPiANCj4gPiBJbml0aWFsIFBlcmZvcm1hbmNlIE9ic2VydmF0aW9ucw0KPiA+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICAqIFdpdGggdGhlc2UgcHJvcG9z ZWQgY2hhbmdlcywgYW4gSW50ZWwgQXRvbSBiYXNlZCBTb0Mgc2F3IEdldFZhcmlhYmxlDQo+ICgg KQ0KPiA+ICAgIHRpbWUgZm9yIGFuIGV4aXN0aW5nIHZhcmlhYmxlIHJlZHVjZSBmcm9tIH4yMjB1 cyB0byB+NXVzLg0KPiA+DQo+ID4gTWFqb3IgQ2hhbmdlcw0KPiA+IC0tLS0tLS0tLS0tLS0tDQo+ ID4gIDEuIFR3byBVRUZJIHZhcmlhYmxlIGNhY2hlcyB3aWxsIGJlIG1haW50YWluZWQuDQo+ID4g ICAgICBhLiAiUnVudGltZSBDYWNoZSIgLSBNYWludGFpbmVkIGluIFZhcmlhYmxlU21tUnVudGlt ZUR4ZS4gVXNlZCB0bw0KPiBzZXJ2ZQ0KPiA+ICAgICAgICAgIHJ1bnRpbWUgc2VydmljZSBHZXRW YXJpYWJsZSAoKSBhbmQgR2V0TmV4dFZhcmlhYmxlTmFtZSAoKSBjYWxsZXJzLg0KPiA+ICAgICAg Yi4gIlNNTSBjYWNoZSIgLSBNYWludGFpbmVkIGluIFZhcmlhYmxlU21tIHRvIHNlcnZpY2UgU01N DQo+IEdldFZhcmlhYmxlICgpDQo+ID4gICAgICAgICAgYW5kIEdldE5leHRWYXJpYWJsZU5hbWUg KCkgY2FsbGVycy4NCj4gPiAgICAgICAgICBpLiBBIGNhY2hlIGluIFNNUkFNIGlzIHJldGFpbmVk IHNvIFNNTSBtb2R1bGVzIGRvIG5vdCBvcGVyYXRlIG9uDQo+IGRhdGENCj4gPiAgICAgICAgICAg ICBvdXRzaWRlIFNNUkFNLg0KPiA+ICAyLiBBIG5ldyBVRUZJIHZhcmlhYmxlIHJlYWQgYW5kIHdy aXRlIGZsb3cgd2lsbCBiZSB1c2VkIGFzIGRlc2NyaWJlZCBiZWxvdy4NCj4gPg0KPiA+IEF0IGFu eSBnaXZlbiB0aW1lLCB0aGUgdHdvIGNhY2hlcyB3b3VsZCBiZSBjb2hlcmVudC4gT24gYSB2YXJp YWJsZQ0KPiA+IHdyaXRlLCB0aGUgcnVudGltZSBjYWNoZSBpcyBvbmx5IHVwZGF0ZWQgYWZ0ZXIg dmFsaWRhdGlvbiBpbiBTTU0gYW5kLA0KPiA+IGluIHRoZSBjYXNlIG9mIGEgbm9uLXZvbGF0aWxl IFVFRkkgdmFyaWFibGUsIHRoZSB2YXJpYWJsZSBtdXN0IGFsc28gYmUNCj4gPiBzdWNjZXNzZnVs bHkgd3JpdHRlbiB0byBub24tdm9sYXRpbGUgc3RvcmFnZS4NCj4gPg0KPiA+IFByaW9yIFJGQyBG ZWVkYmFjayBBZGRyZXNzZWQNCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ IFJGQyBzZW50IFNlcHQuIDUsIDIwMTk6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9t ZXNzYWdlLzQ2OTM5DQo+ID4NCj4gPiAxLiBVRUZJIHZhcmlhYmxlIGRhdGEgcmV0cmlldmFsIGZy b20gYSByaW5nIDAgYnVmZmVyDQo+ID4NCj4gPiAgICBBIGNvbW1vbiBjb25jZXJuIHdpdGggdGhp cyBwcm9wb3NlZCBzZXQgb2YgY2hhbmdlcyBpcyB0aGUgcG90ZW50aWFsDQo+IHNlY3VyaXR5DQo+ ID4gICAgdGhyZWF0IHByZXNlbnRlZCBieSBzZXJ2aW5nIHJ1bnRpbWUgc2VydmljZXMgY2FsbGVy cyBmcm9tIGEgcmluZyAwIG1lbW9yeQ0KPiA+ICAgIGJ1ZmZlciBvZiBFZmlSdW50aW1lU2Vydmlj ZXNEYXRhIHR5cGUuIFRoaXMgY29uY2x1c2lvbiB3YXMgdGhhdCB0aGlzDQo+IGNoYW5nZQ0KPiA+ ICAgIGRvZXMgbm90IGZ1bmRhbWVudGFsbHkgYWx0ZXIgdGhlIGF0dGFjayBzdXJmYWNlLiBUaGUg VUVGSSB2YXJpYWJsZQ0KPiBSdW50aW1lDQo+ID4gICAgU2VydmljZXMgYXJlIGludm9rZWQgZnJv bSByaW5nIDAgYW5kIHRoZSBkYXRhIGFscmVhZHkgdHJhdmVscyB0aHJvdWdoIHJpbmcNCj4gPiAg ICAwIGJ1ZmZlcnMgKHN1Y2ggYXMgdGhlIFNNTSBjb21tdW5pY2F0ZSBidWZmZXIpIHRvIHJlYWNo IHRoZSBjYWxsZXIuIEV2ZW4NCj4gPiAgICB0b2RheSBpZiByaW5nIDAgaXMgYXNzdW1lZCB0byBi ZSBtYWxpY2lvdXMsIHRoZSBtYWxpY2lvdXMgY29kZSBtYXkga2VlcA0KPiBvbmUNCj4gPiAgICBB UCBpbiBhIGxvb3AgdG8gbW9uaXRvciB0aGUgY29tbXVuaWNhdGlvbiBkYXRhLCB3aGVuIHRoZSBC U1AgZ2V0cyBhbg0KPiA+ICAgIChhdXRoZW50aWNhdGVkKSB2YXJpYWJsZS4gV2hlbiB0aGUgY29t bXVuaWNhdGlvbiBidWZmZXIgaXMgdXBkYXRlZCBhbmQNCj4gdGhlDQo+ID4gICAgc3RhdHVzIGlz IHNldCB0byBFRklfU1VDQ0VTUywgdGhlIEFQIG1heSBtb2RpZnkgdGhlIGNvbW11bmljYXRpb24N Cj4gYnVmZmVyDQo+ID4gICAgY29udGVudHMgc3VjaCB0aGUgdGFtcGVyZWQgZGF0YSBpcyByZXR1 cm5lZCB0byB0aGUgQlNQIGNhbGxlci4gT3IgYW4NCj4gPiAgICBpbnRlcnJ1cHQgaGFuZGxlciBv biB0aGUgQlNQIG1heSBhbHRlciB0aGUgY29tbXVuaWNhdGlvbiBidWZmZXINCj4gY29udGVudHMN Cj4gPiAgICBiZWZvcmUgdGhlIGRhdGEgaXMgcmV0dXJuZWQgdG8gdGhlIGNhbGxlci4gSW4gc3Vt bWFyeSwgdGhpcyB3YXMgbm90IGZvdW5kDQo+IHRvDQo+ID4gICAgaW50cm9kdWNlIGFueSBhdHRh Y2sgbm90IHBvc3NpYmxlIHRvZGF5Lg0KPiA+DQo+ID4gMi4gVmFyQ2hlY2tMaWIgaW1wYWN0DQo+ ID4NCj4gPiAgICBWYXJDaGVja0xpYiBwbGF5cyBhIHJvbGUgaW4gU2V0VmFyaWFibGUgKCkgY2Fs bHMuIFRoaXMgcGF0Y2ggc2VyaWVzIG9ubHkNCj4gPiAgICBjaGFuZ2VzIEdldFZhcmlhYmxlICgp IGJlaGF2aW9yLiBUaGVyZWZvcmUsIFZhckNoZWNrTGliIGlzIGV4cGVjdGVkIHRvDQo+ID4gICAg aGF2ZSBubyBpbXBhY3QgZHVlIHRvIHRoZXNlIGNoYW5nZXMuDQo+ID4NCj4gPiBUZXN0aW5nIFBl cmZvcm1lZA0KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+IFRoaXMgY29kZSB3YXMgdGVzdGVk IHdpdGggdGhlIG1hc3RlciBicmFuY2ggb2YgZWRrMiBvbiBhbiBJbnRlbCBLYWJ5DQo+ID4gTGFr ZSBVIEludGVsIFdoaXNrZXkgTGFrZSBVIHJlZmVyZW5jZSB2YWxpZGF0aW9uIHBsYXRmb3JtLiBU aGUgc2V0IG9mDQo+ID4gdGVzdHMgcGVyZm9ybWVkDQo+ID4gaW5jbHVkZWQ6DQo+ID4NCj4gPiAx LiBCb290IGZyb20gUzUgdG8gV2luZG93cyAxMCBPUyB3aXRoIFNNTSB2YXJpYWJsZXMgZW5hYmxl ZC4NCj4gPiAyLiBCb290IGZyb20gUzUgdG8gVWJ1bnR1IDE4LjA0LjEgTFRTIHdpdGggU01NIHZh cmlhYmxlIGVuYWJsZWQuDQo+ID4gMy4gQm9vdCBmcm9tIFM1IHRvIEVGSSBzaGVsbCB3aXRoIERY RSB2YXJpYWJsZXMgZW5hYmxlZC4NCj4gPiA0LiBEdW1wIFVFRkkgdmFyaWFibGUgc3RvcmUgYXQg c2hlbGwgd2l0aCBkbXBzdG9yZSB0byB2ZXJpZnkgY29udGVudHMuDQo+ID4gNS4gRHVtcCBOdlN0 b3JhZ2UgRlYgZnJvbSBTUEkgZmxhc2ggYWZ0ZXIgYm9vdCB0byB2ZXJpZnkgY29udGVudHMgd3Jp dHRlbi4NCj4gPiA2LiBEdW1wIFVFRkkgdmFyaWFibGUgc3RhdGlzdGljcyB3aXRoIFZhcmlhYmxl SW5mbyBhdCBzaGVsbC4NCj4gPiA3LiBCb290IHdpdGggZW11bGF0ZWQgdmFyaWFibGVzIGVuYWJs ZWQuDQo+ID4gOC4gQ3ljbGVzIG9mIGFkZGluZyBhbmQgZGVsZXRpbmcgYSBVRUZJIHZhcmlhYmxl IHRvIHZlcmlmeSBjYWNoZSByZXN1bHRzLg0KPiA+IDkuIFNldCBPc0luZGljYXRpb25zIHRvIHN0 b3AgYXQgRlcgVUkgdG8gdmVyaWZ5IGNhY2hlIGxvYWQgb2Ygbm9uLXZvbGF0aWxlDQo+ID4gICAg Y29udGVudHMuDQo+ID4NCj4gPiBXaHkgS2VlcCBTTU0gb24gVmFyaWFibGUgV3JpdGVzDQo+ID4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgKiBTTU0gcHJvdmlkZXMgYSB1 YmlxdWl0b3VzIGlzb2xhdGVkIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBpbiB4ODYgZm9yDQo+ID4g ICAgYXV0aGVudGljYXRlZCBVRUZJIHZhcmlhYmxlcy4NCj4gPiAgKiBCSU9TIHJlZ2lvbiBTUEkg Zmxhc2ggd3JpdGUgcmVzdHJpY3Rpb25zIHRvIFNNTSBpbiBwbGF0Zm9ybXMgdG9kYXkgY2FuDQo+ ID4gICAgYmUgcmV0YWluZWQuDQo+ID4NCj4gPiBUb2RheSdzIFVFRkkgVmFyaWFibGUgQ2FjaGUg KGZvciByZWZlcmVuY2UpDQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiAgKiBNYWludGFpbmVkIGluIFNNUkFNIHZpYSBWYXJpYWJsZVNtbS4NCj4g PiAgKiBBICJ3cml0ZS10aHJvdWdoIiBjYWNoZSBvZiB2YXJpYWJsZSBkYXRhIGluIHRoZSBmb3Jt IG9mIGEgVUVGSSB2YXJpYWJsZQ0KPiA+ICAgIHN0b3JlLg0KPiA+ICAqIE5vbi12b2xhdGlsZSBh bmQgdm9sYXRpbGUgdmFyaWFibGVzIGFyZSBtYWludGFpbmVkIGluIHNlcGFyYXRlIGJ1ZmZlcnMN Cj4gPiAgICh2YXJpYWJsZSBzdG9yZXMpLg0KPiA+DQo+ID4gUnVudGltZSAmIFNNTSBDYWNoZSBD b2hlcmVuY3kNCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiBUaGUgbm9u LXZvbGF0aWxlIGNhY2hlIHNob3VsZCBhbHdheXMgYWNjdXJhdGVseSByZWZsZWN0IG5vbi12b2xh dGlsZQ0KPiA+IHN0b3JhZ2UgY29udGVudHMgKGRvbmUgdG9kYXkpIGFuZCB0aGUgIlNNTSBjYWNo ZSIgYW5kICJSdW50aW1lIGNhY2hlIg0KPiA+IHNob3VsZCBhbHdheXMgYmUgY29oZXJlbnQgb24g YWNjZXNzLiBUaGUgcnVudGltZSBjYWNoZSBpcyB1cGRhdGVkIGJ5DQo+IFZhcmlhYmxlU21tLg0K PiA+DQo+ID4gVXBkYXRpbmcgYm90aCBjYWNoZXMgZnJvbSB3aXRoaW4gYSBTTU0gU2V0VmFyaWFi bGUgKCkgb3BlcmF0aW9uIGlzDQo+ID4gZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZCBidXQgYSByYWNl IGNvbmRpdGlvbiBjYW4gb2NjdXIgaWYgYW4gU01JIG9jY3Vycw0KPiA+IGR1cmluZyB0aGUgZXhl Y3V0aW9uIG9mIHJ1bnRpbWUgY29kZSByZWFkaW5nIGZyb20gdGhlIHJ1bnRpbWUgY2FjaGUuDQo+ ID4gVG8gaGFuZGxlIHRoaXMgY2FzZSwgYSBydW50aW1lIGNhY2hlIHJlYWQgbG9jayBpcyBpbnRy b2R1Y2VkIHRoYXQNCj4gPiBleHBsaWNpdGx5IG1vdmVzIHBlbmRpbmcgdXBkYXRlcyBmcm9tIFNN TSB0byB0aGUgcnVudGltZSBjYWNoZSBpZiBhbg0KPiA+IFNNTSB1cGRhdGUgb2NjdXJzIHdoaWxl IHRoZSBydW50aW1lIGNhY2hlIGlzIGxvY2tlZC4gTm90ZSB0aGF0IGl0IGlzDQo+ID4gbm90IGV4 cGVjdGVkIGEgUnVudGltZSBzZXJ2aWNlcyBjYWxsIHdpbGwgaW50ZXJydXB0IFNNTSBwcm9jZXNz aW5nIHNpbmNlIGFsbA0KPiBDUFUgY29yZXMgcmVuZGV6dm91cyBpbiBTTU0uDQo+ID4NCj4gPiBO ZXcgS2V5IEVsZW1lbnRzIGZvciBDb2hlcmVuY2UNCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gUnVudGltZSBEWEUgKFZhcmlhYmxlU21tUnVudGltZUR4ZSkNCj4gPiAg MS4gUnVudGltZUNhY2hlUmVhZExvY2sgLSBBIGdsb2JhbCBsb2NrIHVzZWQgdG8gbG9jayByZWFk IGFjY2VzcyB0byB0aGUNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW50aW1lIGNh Y2hlLg0KPiA+ICAyLiBSdW50aW1lQ2FjaGVQZW5kaW5nVXBkYXRlIC0gQSBnbG9iYWwgZmxhZyB1 c2VkIHRvIG5vdGlmeSBydW50aW1lIGNvZGUNCj4gb2YgYQ0KPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGVuZGluZyBjYWNoZSB1cGRhdGUgaW4gU01NLg0KPiA+DQo+ID4gU01N IChWYXJpYWJsZVNtbSkNCj4gPiAgMS4gRmx1c2hSdW50aW1lQ2FjaGVQZW5kaW5nVXBkYXRlIFNN SSAtIEEgU1cgU01JIGhhbmRsZXIgdGhhdA0KPiBzeW5jaHJvbml6ZXMNCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBydW50aW1lIGNhY2hlIGJ1ZmZlciB3 aXRoIHRoZSBTTU0NCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNhY2hlIGJ1ZmZlci4NCj4gPg0KPiA+IFByb3Bvc2VkIFJ1bnRpbWUgRFhFIFJlYWQgRmxvdw0K PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgMS4gV2FpdCBmb3IgUnVu dGltZUNhY2hlUmVhZExvY2sgdG8gYmUgZnJlZSAgMi4gQWNxdWlyZQ0KPiA+IFJ1bnRpbWVDYWNo ZVJlYWRMb2NrICAzLiBJZiBSdW50aW1lQ2FjaGVQZW5kaW5nVXBkYXRlIGZsYWcgKHJhcmUpIGlz DQo+ID4gc2V0IHRoZW46DQo+ID4gICAgICAzLmEuIFRyaWdnZXIgRmx1c2hSdW50aW1lQ2FjaGVQ ZW5kaW5nVXBkYXRlIFNNSQ0KPiA+ICAgICAgMy5iLiBWZXJpZnkgUnVudGltZUNhY2hlUGVuZGlu Z1VwZGF0ZSBmbGFnIGlzIGNsZWFyZWQgIDQuIFBlcmZvcm0NCj4gPiByZWFkIGZyb20gUnVudGlt ZUNhY2hlICA1LiBSZWxlYXNlIFJ1bnRpbWVDYWNoZVJlYWRMb2NrDQo+ID4NCj4gPiBQcm9wb3Nl ZCBGbHVzaFJ1bnRpbWVDYWNoZVBlbmRpbmdVcGRhdGUgU01JDQo+ID4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgMS4gSWYgUnVudGltZUNhY2hlUGVu ZGluZ1VwZGF0ZSBmbGFnIGlzIG5vdCBzZXQ6DQo+ID4gICAgICAxLmEuIFJldHVybg0KPiA+ICAy LiBDb3B5IHRoZSBkYXRhIGF0IFJ1bnRpbWVDYWNoZVBlbmRpbmdPZmZzZXQgb2YNCj4gUnVudGlt ZUNhY2hlUGVuZGluZ0xlbmd0aCB0bw0KPiA+ICAgICBSdW50aW1lQ2FjaGUNCj4gPiAgMy4gQ2xl YXIgdGhlIFJ1bnRpbWVDYWNoZVBlbmRpbmdVcGRhdGUgZmxhZw0KPiA+DQo+ID4gUHJvcG9zZWQg U01NIFdyaXRlIEZsb3cNCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgMS4gUGVy Zm9ybSB2YXJpYWJsZSBhdXRoZW50aWNhdGlvbiBhbmQgbm9uLXZvbGF0aWxlIHdyaXRlLiBJZiBl aXRoZXIgZmFpbCwNCj4gPiAgICAgcmV0dXJuIGFuIGVycm9yIHRvIHRoZSBjYWxsZXIuDQo+ID4g IDIuIElmIFJ1bnRpbWVDYWNoZVJlYWRMb2NrIGlzIHNldCB0aGVuOg0KPiA+ICAgICAgMi5hLiBT ZXQgUnVudGltZUNhY2hlUGVuZGluZ1VwZGF0ZSBmbGFnDQo+ID4gICAgICAyLmIuIFVwZGF0ZSBS dW50aW1lQ2FjaGVQZW5kaW5nT2Zmc2V0IGFuZA0KPiBSdW50aW1lQ2FjaGVQZW5kaW5nTGVuZ3Ro IHRvDQo+ID4gICAgICAgICAgIGNvdmVyIHRoZSBhIHN1cGVyc2V0IG9mIHRoZSBwZW5kaW5nIGNo dW5rIChmb3Igc2ltcGxpY2l0eSwgdGhlDQo+ID4gICAgICAgICAgIGVudGlyZSB2YXJpYWJsZSBz dG9yZSBpcyBjdXJyZW50bHkgc3luY2hyb25pemVkKS4NCj4gPiAzLiBFbHNlOg0KPiA+ICAgICAg My5hLiBVcGRhdGUgUnVudGltZUNhY2hlDQo+ID4gNC4gVXBkYXRlIFNtbUNhY2hlDQo+ID4gICAg ICAtIE5vdGU6IFJUIHJlYWQgY2Fubm90IG9jY3VyIGR1cmluZyBTTUkgcHJvY2Vzc2luZyBzaW5j ZSBhbGwgY29yZXMgYXJlDQo+ID4gICAgICAgICAgICAgIGxvY2tlZCBpbiBTTU0uDQo+ID4NCj4g PiBDYzogRGFuZGFuIEJpIDxkYW5kYW4uYmlAaW50ZWwuY29tPg0KPiA+IENjOiBBcmQgQmllc2hl dXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gPiBDYzogRXJpYyBEb25nIDxlcmlj LmRvbmdAaW50ZWwuY29tPg0KPiA+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t Pg0KPiA+IENjOiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiBDYzogTWlj aGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gQ2M6IFJheSBO aSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGlu dGVsLmNvbT4NCj4gPiBDYzogSGFvIEEgV3UgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPiBDYzog Smlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogTWlj aGFlbCBLdWJhY2tpIDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+DQo+ID4NCj4gPiBNaWNo YWVsIEt1YmFja2kgKDUpOg0KPiA+ICAgTWRlTW9kdWxlUGtnL1ZhcmlhYmxlOiBDb25zb2xpZGF0 ZSBjb21tb24gcGFyc2luZyBmdW5jdGlvbnMNCj4gPiAgIE1kZU1vZHVsZVBrZyBWYXJpYWJsZUlu Zm86IEFsd2F5cyBjb25zaWRlciBSVCBEWEUgYW5kIFNNTSBzdGF0cw0KPiA+ICAgTWRlTW9kdWxl UGtnL1ZhcmlhYmxlOiBBZGQgUlQgR2V0VmFyaWFibGUoKSBjYWNoZSBzdXBwb3J0DQo+ID4gICBN ZGVNb2R1bGVQa2cvVmFyaWFibGU6IEFkZCBSVCBHZXROZXh0VmFyaWFibGVOYW1lKCkgY2FjaGUg c3VwcG9ydA0KPiA+ICAgTWRlTW9kdWxlUGtnL1ZhcmlhYmxlU21tOiBSZW1vdmUgdW51c2VkIFNN SSBoYW5kbGVyIGZ1bmN0aW9ucw0KPiA+DQo+ID4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFy aWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVJ1bnRpbWVEeGUuaW5mDQo+IHwgICA2ICsNCj4gPiAg TWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmlu ZiAgICAgICAgICAgfA0KPiA2ICsNCj4gPg0KPiBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1Zhcmlh YmxlL1J1bnRpbWVEeGUvVmFyaWFibGVTbW1SdW50aW1lRHhlLmkNCj4gbmYNCj4gPiB8ICAzMiAr LQ0KPiBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVT dGFuZGFsb25lTW0uaW5mDQo+IHwgIDExICsNCj4gPiAgTWRlTW9kdWxlUGtnL0luY2x1ZGUvR3Vp ZC9TbW1WYXJpYWJsZUNvbW1vbi5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzMgKy0NCj4g PiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmgg ICAgICAgICAgICAgICAgfCAxNTgNCj4gKy0tLQ0KPiA+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2Fs L1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVOb25Wb2xhdGlsZS5oDQo+IHwgIDI1ICsNCj4g PiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlUGFy c2luZy5oICAgICAgICAgfA0KPiAzNDIgKysrKysrKysNCj4gPg0KPiBNZGVNb2R1bGVQa2cvVW5p dmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVSdW50aW1lQ2FjaGUuaA0KPiB8ICA0 NyArKw0KPiA+ICBNZGVNb2R1bGVQa2cvQXBwbGljYXRpb24vVmFyaWFibGVJbmZvL1ZhcmlhYmxl SW5mby5jICAgICAgICAgICAgICAgICB8ICAzNyArLQ0KPiA+ICBNZGVNb2R1bGVQa2cvVW5pdmVy c2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGUuYyAgICAgICAgICAgICAgICB8IDgyOA0K PiArKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1Zhcmlh YmxlL1J1bnRpbWVEeGUvVmFyaWFibGVFeExpYi5jICAgICAgICAgICB8DQo+IDExICstDQo+ID4g IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZU5vblZv bGF0aWxlLmMNCj4gfCAgMjggKw0KPiA+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxl L1J1bnRpbWVEeGUvVmFyaWFibGVQYXJzaW5nLmMgICAgICAgICB8DQo+IDgxNiArKysrKysrKysr KysrKysrKysrDQo+ID4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4 ZS9WYXJpYWJsZVJ1bnRpbWVDYWNoZS5jDQo+IHwgMTUzICsrKysNCj4gPiAgTWRlTW9kdWxlUGtn L1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tLmMgICAgICAgICAgICAg fA0KPiAyMTMgKysrLS0NCj4gPg0KPiBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1 bnRpbWVEeGUvVmFyaWFibGVTbW1SdW50aW1lRHhlLg0KPiBjICAgfCA3MjYgKysrKysrKysrKysr Ky0tLS0NCj4gPiAgMTcgZmlsZXMgY2hhbmdlZCwgMjI5OCBpbnNlcnRpb25zKCspLCAxMTc0IGRl bGV0aW9ucygtKSAgY3JlYXRlIG1vZGUNCj4gPiAxMDA2NDQNCj4gPiBNZGVNb2R1bGVQa2cvVW5p dmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVOb25Wb2xhdGlsZS5oDQo+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVu dGltZUR4ZS9WYXJpYWJsZVBhcnNpbmcuaA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBN ZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVSdW50aW1l Q2FjaGUuaA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBNZGVNb2R1bGVQa2cvVW5pdmVy c2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVOb25Wb2xhdGlsZS5jDQo+ID4gIGNyZWF0 ZSBtb2RlIDEwMDY0NA0KPiA+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGlt ZUR4ZS9WYXJpYWJsZVBhcnNpbmcuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBNZGVN b2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVSdW50aW1lQ2Fj aGUuYw0KPiA+DQoNCg==