From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web11.12279.1595943878910170129 for ; Tue, 28 Jul 2020 06:44:39 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=MqL6rt/m; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: liming.gao@intel.com) IronPort-SDR: ahvHcV3oNYXvXULdJOdWPfud1gM2fyafTldygpWxbKaQnjObg2HyQ1tFwPeojmpfWsyIJ8rxZY 2x6a0fxLVhsw== X-IronPort-AV: E=McAfee;i="6000,8403,9695"; a="149066594" X-IronPort-AV: E=Sophos;i="5.75,406,1589266800"; d="scan'208";a="149066594" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2020 06:44:37 -0700 IronPort-SDR: J85ivEC8BVTympwk1p3Au5mbadYnDOdrZ9u1Qm8pjIns4o86SCwvSX70xyYkfRrRyfO3zYeP16 gsUdwKyI2IWQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,406,1589266800"; d="scan'208";a="364496624" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga001.jf.intel.com with ESMTP; 28 Jul 2020 06:44:37 -0700 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 28 Jul 2020 06:44:37 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by orsmsx605.amr.corp.intel.com (10.22.229.18) 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, 28 Jul 2020 06:44:37 -0700 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (104.47.46.59) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 28 Jul 2020 06:44:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vx1SFyZb5WQpwPJz0YKfGvuG/u3iM0jLEZ3z4PHkQl+meXKWcop2O+hIcEuZ99w7bko1tFUgWBI3FOdJ6ekYXYOo4U+dT0kyFwXHsXQz9vHMIvQuz4weyH6BbPgemWrpzf1d1uZjOdFNQkjX4305KOkNcf75AYPjScFRROjdlgJJ7+jTuAiBu4b6LkFULBq6S9phWnrfYSQcRREbpc3zuBv3Y8vcTELKmJSrWmwfwcIPZAwwquQTOTPnGbE3OccYIKPi0ucLlReX+ZygibI1vqp8IZwgznENf0pirV12yZrqBMrsx0XX9FyynYy/Q4zLPtvQtEuCFwYw+XsrP8ePuQ== 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=s3VjTvrxw2+U1jcOjlYoXgIgrIuOMC6ts5HVPvpo1os=; b=FJm3vWlUNkjHPkFdJTw9deGTtrYiQSu67QSOSq0EPiXliw1qNASiRhdA6QSLA7lB+FBUTna/di6fUshr6dPiqHzWfY/kwQMDR7MXFf2lE+Ku+jE/PEiJ583PY/gAhwWIK7cEB8VrS7DDwI9s71QkOY61AfCHsHghtmfOhIyRWARGPkX6tEQI8+9AUwtGgei+bTUPPTjX3enuTD0LGnfTHzcyNs02WDhyIbQhMdj+4MRtfBKxR60TxOuKoXnKWcHB0AoZDNFpVJbgj4uPK9y5G1BG8/YnBiSEHdOd59sLu+1gMvm2iFC5NpG0ZIj2at0lkPNusJ0RU9xyRc2Kk40XtA== 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=s3VjTvrxw2+U1jcOjlYoXgIgrIuOMC6ts5HVPvpo1os=; b=MqL6rt/m3/Vc222xI/tvaAtbxIB3tIvxqPPddApdOk4kkS9fB8bR5n30l/rfjcnvNny6MEcfvstRdLN+EboZaXUTSveBe5Y2UhIAJD5pCtgAvapDi+25wVOq/KyEKfnMglgx+uBvBjOBuo/fZoH8nNkXgkj4pcldTnv45VyixmA= Received: from BN6PR11MB1619.namprd11.prod.outlook.com (2603:10b6:405:10::20) by BN6PR11MB1763.namprd11.prod.outlook.com (2603:10b6:404:103::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.24; Tue, 28 Jul 2020 13:44:31 +0000 Received: from BN6PR11MB1619.namprd11.prod.outlook.com ([fe80::b8fa:aa61:1437:ca9b]) by BN6PR11MB1619.namprd11.prod.outlook.com ([fe80::b8fa:aa61:1437:ca9b%12]) with mapi id 15.20.3216.034; Tue, 28 Jul 2020 13:44:31 +0000 From: "Liming Gao" To: Laszlo Ersek , Tom Lendacky , "devel@edk2.groups.io" CC: Brijesh Singh , Ard Biesheuvel , "Dong, Eric" , "Justen, Jordan L" , "Kinney, Michael D" , "Ni, Ray" Subject: Re: [PATCH v12 07/46] MdePkg/BaseLib: Add support for the VMGEXIT instruction Thread-Topic: [PATCH v12 07/46] MdePkg/BaseLib: Add support for the VMGEXIT instruction Thread-Index: AQHWZCqFAhWLS6X4eU6Z3ttQo1HJGqkcKFtwgAA4n4CAADdqoIAATb2AgAAbR0A= Date: Tue, 28 Jul 2020 13:44:31 +0000 Message-ID: References: <57cfa8bb-f683-08c4-7262-5762a9e0a4c1@amd.com> <1d539df5-142e-7ab1-faa6-0d0f6eea1608@redhat.com> In-Reply-To: <1d539df5-142e-7ab1-faa6-0d0f6eea1608@redhat.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: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.221] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9ca19875-0f08-4f07-3926-08d832fc5b58 x-ms-traffictypediagnostic: BN6PR11MB1763: 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:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ceso270ZPbZmcpXDgiJ78lFZb7n/zud/GND6QQi2ZMtXndPZZTrDfV/MqACBKrD5S9ira8yXV4JbBC5JThsMm2/w2HJxl0pRKkuooeC3E4QnTttk12uA3CFj2vnsLLoXUUxuojcG7zhfeqT9ZUGv2vp7vMgOCdszBOi/WjnIGqCfNUUq0QNzmn7J0Lvum5GDYhYwAwlLXQhM5eeQX6MGbvatUVhu48RYRYxdAl0hQ7EMGiV8peYsPPgcpS7eFtqX3OknL1w7EcU9wanERDLWGLBGwhuhb8MGwMWjL2i8AjMTf/EMIFkpXMBu0Y/Ky3rmg/HU64VMaBPw8UILZry0hsM6VZeRnZmgneO8c6e1adaZn9wtdH7Sx7nq6msVDH+bVHGJmjiMYoQ0HjkXTmOqpA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB1619.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(39860400002)(346002)(366004)(136003)(396003)(376002)(186003)(52536014)(19627235002)(71200400001)(107886003)(4326008)(33656002)(7696005)(54906003)(966005)(2906002)(110136005)(45080400002)(30864003)(316002)(83080400001)(8936002)(5660300002)(478600001)(8676002)(86362001)(66446008)(6506007)(76116006)(64756008)(66556008)(66476007)(66946007)(9686003)(53546011)(26005)(83380400001)(55016002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: rIzq3dZ16q3VziC7P6fYM1rOMVAhbzSO4BeXeVgNAFH18aFyZnhryS9GBIS81qC5IwOj1rtsva8sDhOcmzMGOQf5f9EK2eIq8A25CJ5tPI/np/tmvvJOS2+G0lGVaTJmPWPRdxFatqjwhHdNTHqDGM7to1Dmv2JpYnadUB5tqSwv8BJxSdd0Y+9CmZ1ACzK/ZjRNakpotQyrGZ3Td6H4ajgexma8gbcJVzamGVm3l86nY03CWLEqb4qKwEWluskui3aFHNLbXO7c7rIJw7jpLYdOD+Q9E9/i4BogeFnBoxTiL7CcayJCq1IVpKioatfEhMYxRWDagrLNqpypX8dZrbfjgDKkrbyD08Fo48FRhw2e8ymw27sHzSDc9mLWb3D1veCfGT8n0QY4XqzxQaLSP3NrfBwhFL51+Jy2CBJfhHEr+nXqpBJzmDJA40qSQIdRcC4ggOahWo1QLePemTEs0Q5S1sdnB0vs8BTTsJtww1lUNsgMIVbVMY7QQ4kyQVUG MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1619.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ca19875-0f08-4f07-3926-08d832fc5b58 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jul 2020 13:44:31.7521 (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: SltC/jR1wUUz6L2zW3O5s20qJbcNi/7j/zvdCjFk/l4PVlW2bkXTgQpj/BWLThpd/fgMNJBQx2vgDJbY1V2bvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1763 Return-Path: liming.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvOg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBF cnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEp1bHkgMjgsIDIwMjAg ODowNCBQTQ0KPiBUbzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgVG9tIExl bmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ IENjOiBCcmlqZXNoIFNpbmdoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBBcmQgQmllc2hldXZl bCA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT47IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5j b20+OyBKdXN0ZW4sDQo+IEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPjsgS2lu bmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTmksIFJheSA8cmF5 Lm5pQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MTIgMDcvNDZdIE1kZVBrZy9C YXNlTGliOiBBZGQgc3VwcG9ydCBmb3IgdGhlIFZNR0VYSVQgaW5zdHJ1Y3Rpb24NCj4gDQo+IE9u IDA3LzI4LzIwIDA5OjM5LCBHYW8sIExpbWluZyB3cm90ZToNCj4gPiBUaGlzIGVycm9yIGlzIHJl cG9ydGVkIGZyb20gbmFzbSBjb21waWxlci4gTXkgbmFzbSBjb21waWxlciB2ZXJzaW9uIGlzDQo+ ID4gMi4xMS4wOC4gSXQgbWF5IGJlIGEgbGl0dGxlIG9sZC4gMi4xMiBzaG91bGQgYmUgZmluZS4N Cj4gPg0KPiA+IFRoaXMgY2hhbmdlIGFsc28gcmVxdWlyZXMgdG8gdXBkYXRlDQo+ID4gZWRrMlxC YXNlVG9vbHNcQ29uZlx0b29sc19kZWYudGVtcGxhdGUgYW5kIG1lbnRpb24gbmFzbSBjb21waWxl cg0KPiA+IHZlcnNpb24uDQo+IA0KPiAidG9vbHNfZGVmLnRlbXBsYXRlIiBzYXlzOg0KPiANCj4g ICBOQVNNIDIuMTAgb3IgbGF0ZXIgZm9yIHVzZSB3aXRoIHRoZSBHQ0MgdG9vbGNoYWluIGZhbWls eQ0KPiANCj4gQnVtcGluZyB0aGUgTkFTTSByZXF1aXJlbWVudCBmcm9tIDIuMTAgdG8gMi4xMiB3 aWxsIHJ1bGUgb3V0Og0KPiANCj4gLSBEZWJpYW4gImplc3NpZSIgKG9sZG9sZHN0YWJsZSksDQo+ IC0gVWJ1bnR1ICJ4ZW5pYWwiICgxNi4wNCBMVFMpLA0KPiAtIGFuZCBSSEVMNywNCj4gDQo+IGFz IGJ1aWxkIGhvc3RzLg0KPiANCj4gRGViaWFuICJqZXNzaWUiIGlzIG5vIGxvbmdlciBzdXBwb3J0 ZWQgKExUUyBlbmRlZCBpbiBKdW5lIDIwMjApLCBidXQNCj4gVWJ1bnR1ICJ4ZW5pYWwiIGFuZCBS SEVMNyBhcmUgc3RpbGwgc3VwcG9ydGVkIGJ5IHRoZWlyIHZlbmRvcnMuDQo+IA0KWWVzLiBJIGFs c28gcmVhbGl6ZSBuYXNtIHZlcnNpb24gaW1wYWN0LiBJdCBtYXkgYWxzbyBpbXBhY3QgTWFjIE9T LiANCldlIHNob3VsZCB0cnkgdG8gYXZvaWQgbmV3IHJlcXVpcmVtZW50IHRvIHVwZGF0ZSBuYXNt IHZlcnNpb24uIA0KDQpUaGFua3MNCkxpbWluZw0KPiBJIHNlZW0gdG8gcmVjYWxsIHRoYXQgaXQg d2FzIG1lIHRvIHJlY29tbWVuZCAiQklUUyA2NCIgaW4gZnJvbnQgb2YgInJlcA0KPiB2bW1jYWxs IiBpbiB0aGUgSUEzMiBOQVNNIHNvdXJjZSBmaWxlOg0KPiANCj4gICBodHRwczovL2VkazIuZ3Jv dXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS80ODI5Mg0KPiAgIGh0dHA6Ly9taWQubWFpbC1hcmNoaXZl LmNvbS9lOGE4ZTIxZS00MDQ1LTFiMmItZjk1OS0xM2ZiZTAwMTMyZDlAcmVkaGF0LmNvbQ0KPiAN Cj4gSSBkb24ndCB1bmRlcnN0YW5kIHdoeSBteSB0ZXN0aW5nIHdvcmtlZCBiYWNrIHRoZW4sIGFu ZCBub3cgaXQgZG9lc24ndC4NCj4gKElPVywgSSBjYW4gYWxzbyByZXByb2R1Y2UgdGhlIGVycm9y IHRoYXQgTGltaW5nIHJlcG9ydGVkISkgSXQncyBsaWtlbHkNCj4gYmVjYXVzZSBJIGRpZG4ndCBz cGVjaWZ5IHRoZSBlbGYzMiBvdXRwdXQgZm9ybWF0IGJhY2sgdGhlbi4NCj4gDQo+IEluZGVlZDog dGhlIGZvbGxvd2luZyBjb21tYW5kIGZhaWxzOg0KPiANCj4gPiAibmFzbSIgXA0KPiA+ICAgLUki JFdPUktTUEFDRSIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9JYTMyLyBcDQo+ID4gICAtSSIkV09S S1NQQUNFIi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0lhMzIvIFwNCj4gPiAgIC1JIiRXT1JLU1BB Q0UiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvIFwNCj4gPiAgIC1JIiRXT1JLU1BBQ0UiL0J1aWxk L092bWZJYTMyL05PT1BUX0dDQzQ4L0lBMzIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGli L0RFQlVHLyBcDQo+ID4gICAtSSIkV09SS1NQQUNFIi9NZGVQa2cvIFwNCj4gPiAgIC1JIiRXT1JL U1BBQ0UiL01kZVBrZy9JbmNsdWRlLyBcDQo+ID4gICAtSSIkV09SS1NQQUNFIi9NZGVQa2cvVGVz dC9Vbml0VGVzdC9JbmNsdWRlLyBcDQo+ID4gICAtSSIkV09SS1NQQUNFIi9NZGVQa2cvSW5jbHVk ZS9JYTMyLyBcDQo+ID4gICAtZiBlbGYzMiBcDQo+ID4gICAtbyAiJFdPUktTUEFDRSIvQnVpbGQv T3ZtZklhMzIvTk9PUFRfR0NDNDgvSUEzMi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIv T1VUUFVUL0lhMzIvVm1nRXhpdC5vYmogXA0KPiA+ICAgIiRXT1JLU1BBQ0UiL0J1aWxkL092bWZJ YTMyL05PT1BUX0dDQzQ4L0lBMzIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliL09VVFBV VC9JYTMyL1ZtZ0V4aXQuaWlpDQo+IA0KPiBidXQgaWYgSSByZW1vdmUgIi1mIGVsZjMyIiwgaXQg Y29tcGxldGVzIGZpbmUuIDooDQo+IA0KPiBUaGUgQU1EIG1hbnVhbCBzYXlzIGFib3V0IFZNR0VY SVQ6DQo+IA0KPiA+IFRoZSBWTUdFWElUIG9wY29kZSBpcyBvbmx5IHZhbGlkIHdpdGhpbiBhIGd1 ZXN0IHdoZW4gcnVuIHdpdGggU0VWLUVTDQo+ID4gbW9kZSBhY3RpdmUuIElmIHRoZSBndWVzdCBp cyBub3QgcnVuIHdpdGggU0VWLUVTIG1vZGUgYWN0aXZlLCB0aGUNCj4gPiBWTUdFWElUIG9wY29k ZSB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBWTU1DQUxMIG9wY29kZSBhbmQgd2lsbCBiZWhhdmUNCj4g PiBleGFjdGx5IGxpa2UgYSBWTU1DQUxMLg0KPiANCj4gVk1HRVhJVCBpcyBhIFNFVi1FUy1vbmx5 IGZvcm0gb2YgZ3Vlc3QtaG9zdCBjb21tdW5pY2F0aW9uLiBTRVYtRVMgbW9kZQ0KPiBkZXBlbmRz IG9uIFNFVi4gQSBTRVYgZ3Vlc3QgY2FuIG9ubHkgaW50ZXJhY3Qgd2l0aCB0aGUgaG9zdCAoPSBk ZWNyeXB0DQo+IGl0cyBwYWdlcyBmb3IgdGhlIGhvc3QgdG8gYWNjZXNzKSBpZiB0aGUgZ3Vlc3Qg aXMgZXhlY3V0aW5nIGluIGxvbmcNCj4gbW9kZS4NCj4gDQo+IFNvIGRvZXMgaXQgZXZlbiBtYWtl IHNlbnNlIHRvICphdHRlbXB0KiBpbXBsZW1lbnRpbmcgQXNtVm1nRXhpdCgpDQo+ICJjb3JyZWN0 bHkiIGZvciBJQTMyPw0KPiANCj4gSSBkb24ndCB3YW50IHRvIGNvbXBsaWNhdGUgdGhlIGJ1aWxk IGRlcGVuZGVuY2llcyBpbiB0aGlzIHNlcmllcw0KPiBmdXJ0aGVyLCBzbyBJIHdvbid0IHN1Z2dl c3QgdGhhdCB3ZSBzaW1wbHkgKm5vdCogaW1wbGVtZW50IEFzbVZtZ0V4aXQoKQ0KPiBmb3IgSUEz MiBhdCBhbGwuIChQdXJlbHkgZnJvbSBhIEJhc2VMaWIgcGVyc3BlY3RpdmUsIHRoaXMgd291bGQg YmUgYQ0KPiB2YWxpZCBhcHByb2FjaCwgYnV0IHRoZW4gY2FsbCBzaXRlcyB3b3VsZCBoYXZlIHRv IGJlICpidWlsZC10aW1lKg0KPiByZXN0cmljdGVkIHRvIFg2NCB0b28uIFRoZSBjYWxsIHNpdGVz ICphcmUqIGFscmVhZHkgcmVzdHJpY3RlZCB0byBYNjQsDQo+IEFJVUksIGJ1dCB0aGF0IGhhcHBl bnMgYXQgcnVudGltZSAoPSBkeW5hbWljIGNoZWNrcyksIG5vdCBhdCBidWlsZA0KPiB0aW1lLikN Cj4gDQo+IFNvIGhlcmUncyB3aGF0IEkgc3VnZ2VzdDogaW1wbGVtZW50IEFzbVZtZ0V4aXQoKSBm b3IgSUEzMiBpbiB0aGUgQw0KPiBsYW5ndWFnZSwgbmFtZWx5IGFzIGEgY2FsbCB0byBDcHVCcmVh a3BvaW50KCkuDQo+IA0KPiBJIHdvdWxkbid0IGxpa2UgdG8gdGlnaHRlbiB0aGUgTkFTTSB2ZXJz aW9uIHJlcXVpcmVtZW50IGZvciAqYWxsKiBvZg0KPiBlZGsyLCBmb3IgdGhlIHNha2Ugb2YgYnVp bGRpbmcgYSBCYXNlTGliIHByaW1pdGl2ZSBmb3IgSUEzMiB0aGF0IHdlDQo+IG5ldmVyICpjYWxs KiBvbiBJQTMyLg0KPiANCj4gVGhhbmtzLA0KPiBMYXN6bG8NCj4gDQo+ID4NCj4gPiBUaGFua3MN Cj4gPiBMaW1pbmcNCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFRv bSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+ID4gU2VudDogMjAyMHQ3CDI4 w6UgMTI6MDgNCj4gPiBUbzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZGV2 ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogQnJpamVzaCBTaW5naCA8YnJpamVzaC5zaW5naEBh bWQuY29tPjsgQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+OyBEb25nLCBF cmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgSnVzdGVuLA0KPiBKb3JkYW4gTCA8am9yZGFuLmwu anVzdGVuQGludGVsLmNvbT47IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBOaSwgUmF5DQo+IDxy YXkubmlAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjEyIDA3LzQ2XSBNZGVQ a2cvQmFzZUxpYjogQWRkIHN1cHBvcnQgZm9yIHRoZSBWTUdFWElUIGluc3RydWN0aW9uDQo+ID4N Cj4gPiBPbiA3LzI3LzIwIDg6MzQgUE0sIEdhbywgTGltaW5nIHdyb3RlOg0KPiA+PiBUb206DQo+ ID4NCj4gPiBIaSBMaW1pbmcsDQo+ID4NCj4gPj4gICAgSSBtZWV0IHdpdGggR0NDIGZhaWx1cmUg b24gdGhpcyBwYXRjaC4gQ2FuIHlvdSBoZWxwIGNoZWNrIGl0PyBJZiBuYXNtIGRvZXNuJ3Qgc3Vw cG9ydCB0aGUgdm1tY2FsbCBpbnN0cnVjdGlvbiBpbiAzMi1iaXQgbW9kZSwgeW91DQo+IGhhdmUg dG8gdXNlIGlubGluZSBhc3NlbWJseSB0byBzdXBwb3J0IGl0Lg0KPiA+DQo+ID4gV2hhdCB2ZXJz aW9uIG9mIEdDQyBhcmUgeW91IHVzaW5nLiBJIHdhcyBhYmxlIHRvIHN1Y2Nlc3NmdWxseSBidWls ZCB0aGUNCj4gPiBJYTMyIHZlcnNpb24gd2l0aCBteSBHQ0MgbGV2ZWwuIFRoZSBJYTMyIHZlcnNp b24gdXNlcyBhIHRyaWNrIHRvIGRvIHN3aXRjaCB0byA2NC1iaXQganVzdCB0byBlbmNvZGUgdGhl IGluc3RydWN0aW9uLiBMb29rcyBsaWtlIHRoYXQNCj4gZG9lc24ndCB3b3JrIHdpdGggeW91ciB2 ZXJzaW9uIG9mIEdDQy4NCj4gPg0KPiA+IEkgY2FuIHByb2JhYmx5IHN3aXRjaCB0byBkZWZpbmlu ZyB0aGUgaW5zdHJ1Y3Rpb24gYXMgYnl0ZXMuIExldCBtZSBsb29rIGludG8gdGhhdCBhbmQgcG9z c2libHkgc2VuZCB5b3UgYSBwYXRjaCB0byB0ZXN0Lg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IFRv bQ0KPiA+DQo+ID4+DQo+ID4+IEVkazIvQnVpbGQvSW50ZWxGc3AyUGtnL0RFQlVHX0dDQzUvSUEz Mi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWINCj4gPj4gL09VVFBVVC9JYTMyL1ZtZ0V4 aXQuaWlpOjMzOiBlcnJvcjogZWxmMzIgb3V0cHV0IGZvcm1hdCBkb2VzIG5vdA0KPiA+PiBzdXBw b3J0IDY0LWJpdCBjb2RlDQo+ID4+IEdOVW1ha2VmaWxlOjc0MTogcmVjaXBlIGZvciB0YXJnZXQN Cj4gPj4NCj4gPj4gVGhhbmtzDQo+ID4+IExpbWluZw0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+PiBGcm9tOiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29t Pg0KPiA+PiBTZW50OiAyMDIwdDcIMjfDpSAyMzoyNg0KPiA+PiBUbzogZGV2ZWxAZWRrMi5ncm91 cHMuaW8NCj4gPj4gQ2M6IEJyaWplc2ggU2luZ2ggPGJyaWplc2guc2luZ2hAYW1kLmNvbT47IEFy ZCBCaWVzaGV1dmVsDQo+ID4+IDxhcmQuYmllc2hldXZlbEBhcm0uY29tPjsgRG9uZywgRXJpYyA8 ZXJpYy5kb25nQGludGVsLmNvbT47IEp1c3RlbiwNCj4gPj4gSm9yZGFuIEwgPGpvcmRhbi5sLmp1 c3RlbkBpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsNCj4gPj4gPGxlcnNla0ByZWRoYXQuY29tPjsg R2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgS2lubmV5LA0KPiA+PiBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNv bT4NCj4gPj4gU3ViamVjdDogW1BBVENIIHYxMiAwNy80Nl0gTWRlUGtnL0Jhc2VMaWI6IEFkZCBz dXBwb3J0IGZvciB0aGUgVk1HRVhJVA0KPiA+PiBpbnN0cnVjdGlvbg0KPiA+Pg0KPiA+PiBGcm9t OiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPg0KPiA+Pg0KPiA+PiBCWjoN Cj4gPj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJs PWh0dHBzJTNBJTJGJTJGYnVneg0KPiA+PiBpbGxhLnRpYW5vY29yZS5vcmclMkZzaG93X2J1Zy5j Z2klM0ZpZCUzRDIxOTgmYW1wO2RhdGE9MDIlN0MwMSU3Q3Rob21hDQo+ID4+IHMubGVuZGFja3kl NDBhbWQuY29tJTdDNzdjODI1MGNkOWUxNGYyOTI5YTAwOGQ4MzI5NjU3MjYlN0MzZGQ4OTYxZmU0 ODgNCj4gPj4gNGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzMxNDk2ODU3MDkwMTQw MCZhbXA7c2RhdGE9Nnpxc2VJM3RWbQ0KPiA+PiBhdzM1MXc5bWZFeW1NbkRjakR6anZjQnJoQVJV NnIzSG8lM0QmYW1wO3Jlc2VydmVkPTANCj4gPj4NCj4gPj4gVk1HRVhJVCBpcyBhIG5ldyBpbnN0 cnVjdGlvbiB1c2VkIGZvciBIeXBlcnZpc29yL0d1ZXN0IGNvbW11bmljYXRpb24gd2hlbiBydW5u aW5nIGFzIGFuIFNFVi1FUyBndWVzdC4gQSBWTUdFWElUIHdpbGwgY2F1c2UNCj4gYW4gYXV0b21h dGljIGV4aXQgKEFFKSB0byBvY2N1ciwgcmVzdWx0aW5nIGluIGEgI1ZNRVhJVCB3aXRoIGFuIGV4 aXQgY29kZSB2YWx1ZSBvZiAweDQwMy4NCj4gPj4NCj4gPj4gUHJvdmlkZSB0aGUgbmVjZXNzYXJ5 IHN1cHBvcnQgdG8gZXhlY3V0ZSB0aGUgVk1HRVhJVCBpbnN0cnVjdGlvbiwgd2hpY2ggaXMgInJl cDsgdm1tY2FsbCIuDQo+ID4+DQo+ID4+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gPj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwu Y29tPg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBh bWQuY29tPg0KPiA+PiAtLS0NCj4gPj4gICBNZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIu aW5mICAgICAgIHwgIDIgKysNCj4gPj4gICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIu aCAgICAgICAgIHwgMTQgKysrKysrKysrDQo+ID4+ICAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9J YTMyL1ZtZ0V4aXQubmFzbSB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKyAgTWRlUGtnL0xp YnJhcnkvQmFzZUxpYi9YNjQvVm1nRXhpdC5uYXNtICB8IDMyDQo+ICsrKysrKysrKysrKysrKysr KysrDQo+ID4+ICAgNCBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspDQo+ID4+ICAgY3Jl YXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvSWEzMi9WbWdFeGl0Lm5hc20N Cj4gPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQvVm1n RXhpdC5uYXNtDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGli L0Jhc2VMaWIuaW5mDQo+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZg0K PiA+PiBpbmRleCAzYjkzYjVkYjhkMjQuLjNiODVjNTZjM2MwMyAxMDA2NDQNCj4gPj4gLS0tIGEv TWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZg0KPiA+PiArKysgYi9NZGVQa2cvTGli cmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+ID4+IEBAIC0xODQsNiArMTg0LDcgQEAgW1NvdXJj ZXMuSWEzMl0NCj4gPj4gICAgIElhMzIvRGlzYWJsZUNhY2hlLm5hc218IEdDQw0KPiA+PiAgICAg SWEzMi9SZFJhbmQubmFzbQ0KPiA+PiAgICAgSWEzMi9YR2V0QnYubmFzbQ0KPiA+PiArICBJYTMy L1ZtZ0V4aXQubmFzbQ0KPiA+Pg0KPiA+PiAgICAgSWEzMi9EaXZTNjR4NjRSZW1haW5kZXIuYw0K PiA+PiAgICAgSWEzMi9JbnRlcm5hbFN3aXRjaFN0YWNrLmMgfCBNU0ZUDQo+ID4+IEBAIC0zMTcs NiArMzE4LDcgQEAgW1NvdXJjZXMuWDY0XQ0KPiA+PiAgICAgWDY0L0Rpc2FibGVQYWdpbmc2NC5u YXNtDQo+ID4+ICAgICBYNjQvUmRSYW5kLm5hc20NCj4gPj4gICAgIFg2NC9YR2V0QnYubmFzbQ0K PiA+PiArICBYNjQvVm1nRXhpdC5uYXNtDQo+ID4+ICAgICBDaGtTdGtHY2MuYyAgfCBHQ0MNCj4g Pj4NCj4gPj4gICBbU291cmNlcy5FQkNdDQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVk ZS9MaWJyYXJ5L0Jhc2VMaWIuaA0KPiA+PiBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZUxp Yi5oDQo+ID4+IGluZGV4IDdlZGYwMDUxYTBhMC4uMDRmYjMyOWVhYWJiIDEwMDY0NA0KPiA+PiAt LS0gYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaA0KPiA+PiArKysgYi9NZGVQa2cv SW5jbHVkZS9MaWJyYXJ5L0Jhc2VMaWIuaA0KPiA+PiBAQCAtNzg0OCw2ICs3ODQ4LDIwIEBAIEFz bVhHZXRCdiAoDQo+ID4+ICAgICApOw0KPiA+Pg0KPiA+Pg0KPiA+PiArLyoqDQo+ID4+ICsgIEV4 ZWN1dGVzIGEgVk1HRVhJVCBpbnN0cnVjdGlvbiAoVk1NQ0FMTCB3aXRoIGEgUkVQIHByZWZpeCkN Cj4gPj4gKw0KPiA+PiArICBFeGVjdXRlcyBhIFZNR0VYSVQgaW5zdHJ1Y3Rpb24uIFRoaXMgZnVu Y3Rpb24gaXMgb25seSBhdmFpbGFibGUgb24NCj4gPj4gKyBJQS0zMiBhbmQgIHg2NC4NCj4gPj4g Kw0KPiA+PiArKiovDQo+ID4+ICtWT0lEDQo+ID4+ICtFRklBUEkNCj4gPj4gK0FzbVZtZ0V4aXQg KA0KPiA+PiArICBWT0lEDQo+ID4+ICsgICk7DQo+ID4+ICsNCj4gPj4gKw0KPiA+PiAgIC8qKg0K PiA+PiAgICAgUGF0Y2ggdGhlIGltbWVkaWF0ZSBvcGVyYW5kIG9mIGFuIElBMzIgb3IgWDY0IGlu c3RydWN0aW9uIHN1Y2ggdGhhdCB0aGUgYnl0ZSwNCj4gPj4gICAgIHdvcmQsIGR3b3JkIG9yIHF3 b3JkIG9wZXJhbmQgaXMgZW5jb2RlZCBhdCB0aGUgZW5kIG9mIHRoZQ0KPiA+PiBpbnN0cnVjdGlv bidzIGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0lhMzIvVm1nRXhpdC5uYXNt DQo+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9JYTMyL1ZtZ0V4aXQubmFzbQ0KPiA+PiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmE0YjM3Mzg1Y2M3 YQ0KPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIv SWEzMi9WbWdFeGl0Lm5hc20NCj4gPj4gQEAgLTAsMCArMSwzNyBAQA0KPiA+PiArOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4+ICstLQ0KPiA+PiArLS0tLS0tLS0NCj4gPj4gKzsNCj4gPj4gKzsgQ29weXJpZ2h0 IChDKSAyMDIwLCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMNCj4gPj4g K3Jlc2VydmVkLjxCUj4gOyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudCA7IDsNCj4gPj4gK01vZHVsZQ0KPiA+PiArTmFtZToNCj4gPj4gKzsNCj4gPj4gKzsgICBW bWdFeGl0LkFzbQ0KPiA+PiArOw0KPiA+PiArOyBBYnN0cmFjdDoNCj4gPj4gKzsNCj4gPj4gKzsg ICBBc21WbWdFeGl0IGZ1bmN0aW9uDQo+ID4+ICs7DQo+ID4+ICs7IE5vdGVzOg0KPiA+PiArOw0K PiA+PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+ICstLQ0KPiA+PiArLS0tLS0tLS0NCj4gPj4gKw0KPiA+ PiArICAgIFNFQ1RJT04gLnRleHQNCj4gPj4gKw0KPiA+PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+ICst LQ0KPiA+PiArLS0tLS0tLS0NCj4gPj4gKzsgVk9JRA0KPiA+PiArOyBFRklBUEkNCj4gPj4gKzsg QXNtVm1nRXhpdCAoDQo+ID4+ICs7ICAgVk9JRA0KPiA+PiArOyAgICk7DQo+ID4+ICs7LS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gPj4gKy0tDQo+ID4+ICstLS0tLS0tLQ0KPiA+PiArZ2xvYmFsIEFTTV9QRlgoQXNt Vm1nRXhpdCkNCj4gPj4gK0FTTV9QRlgoQXNtVm1nRXhpdCk6DQo+ID4+ICs7DQo+ID4+ICs7IE5B U00gZG9lc24ndCBzdXBwb3J0IHRoZSB2bW1jYWxsIGluc3RydWN0aW9uIGluIDMyLWJpdCBtb2Rl LCBzbw0KPiA+PiArd29yayBhcm91bmQgOyB0aGlzIGJ5IHRlbXBvcmFyaWx5IHN3aXRjaGluZyB0 byA2NC1iaXQgbW9kZS4NCj4gPj4gKzsNCj4gPj4gK0JJVFMgICAgNjQNCj4gPj4gKyAgICByZXAg ICAgIHZtbWNhbGwNCj4gPj4gK0JJVFMgICAgMzINCj4gPj4gKyAgICByZXQNCj4gPj4gKw0KPiA+ PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQvVm1nRXhpdC5uYXNtDQo+ ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQvVm1nRXhpdC5uYXNtDQo+ID4+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+ID4+IGluZGV4IDAwMDAwMDAwMDAwMC4uMjZmMDM0NTkzYzY3DQo+ ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9YNjQv Vm1nRXhpdC5uYXNtDQo+ID4+IEBAIC0wLDAgKzEsMzIgQEANCj4gPj4gKzstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiA+PiArLS0NCj4gPj4gKy0tLS0tLS0tDQo+ID4+ICs7DQo+ID4+ICs7IENvcHlyaWdodCAoQykg MjAyMCwgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzDQo+ID4+ICtyZXNl cnZlZC48QlI+IDsgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQg OyA7DQo+ID4+ICtNb2R1bGUNCj4gPj4gK05hbWU6DQo+ID4+ICs7DQo+ID4+ICs7ICAgVm1nRXhp dC5Bc20NCj4gPj4gKzsNCj4gPj4gKzsgQWJzdHJhY3Q6DQo+ID4+ICs7DQo+ID4+ICs7ICAgQXNt Vm1nRXhpdCBmdW5jdGlvbg0KPiA+PiArOw0KPiA+PiArOyBOb3RlczoNCj4gPj4gKzsNCj4gPj4g KzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiA+PiArLS0NCj4gPj4gKy0tLS0tLS0tDQo+ID4+ICsNCj4gPj4gKyAg ICBERUZBVUxUIFJFTA0KPiA+PiArICAgIFNFQ1RJT04gLnRleHQNCj4gPj4gKw0KPiA+PiArOy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4+ICstLQ0KPiA+PiArLS0tLS0tLS0NCj4gPj4gKzsgVk9JRA0KPiA+PiAr OyBFRklBUEkNCj4gPj4gKzsgQXNtVm1nRXhpdCAoDQo+ID4+ICs7ICAgVk9JRA0KPiA+PiArOyAg ICk7DQo+ID4+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4gKy0tDQo+ID4+ICstLS0tLS0tLQ0KPiA+PiAr Z2xvYmFsIEFTTV9QRlgoQXNtVm1nRXhpdCkNCj4gPj4gK0FTTV9QRlgoQXNtVm1nRXhpdCk6DQo+ ID4+ICsgICAgcmVwICAgICB2bW1jYWxsDQo+ID4+ICsgICAgcmV0DQo+ID4+ICsNCj4gPj4gLS0N Cj4gPj4gMi4yNy4wDQo+ID4+DQo+ID4NCg0K