From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web09.10155.1623767811523930007 for ; Tue, 15 Jun 2021 07:36:52 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=dHBWoLmv; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) IronPort-SDR: 0dlEt4OM4TEwEAUqG9E7nbHxVfdcDycHfQOrhYHaJYEkTWevzSBzKIGDQrgyaZHVVDX8eCH/MT 3r8HLMUb2lvA== X-IronPort-AV: E=McAfee;i="6200,9189,10015"; a="205960692" X-IronPort-AV: E=Sophos;i="5.83,275,1616482800"; d="scan'208";a="205960692" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jun 2021 07:36:50 -0700 IronPort-SDR: wfwm6up7bbH9Y9UXuS9jz7ebgSRrjyAd7UqQNXuAdlBLx22pfqRAuKXSH0eXSSlbYJRBSQ5PVJ Oq9MjvfNnQvg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,275,1616482800"; d="scan'208";a="637136551" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga006.fm.intel.com with ESMTP; 15 Jun 2021 07:36:49 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.2242.4; Tue, 15 Jun 2021 07:36:49 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Tue, 15 Jun 2021 07:36:48 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.2242.4 via Frontend Transport; Tue, 15 Jun 2021 07:36:48 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.47) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Tue, 15 Jun 2021 07:36:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UMr6W1Knw6wymrMcKt3muKddVdY+KzznPpBCOo+vPlHfOrIE77yuBpQI8rwpJx/TjKJcN0dxFpCa9nSHWx4hGAYXH/8GwCWzIf+Y+gS0Lt58adIhCKkcHdnPeYbNyN7DZOfVQc+JLEXKlW0mXh9G1fpUF0YHwKr5rtZ4ABJFEzPQNj/xLhJg+HEK8ARfULaa6Oge58Tn/GZEWzd/TesAXvo+dc3gd6F/ET13oN8i461+Nx03QjTarRUokez399oenjpXio+s10fTURGrEPzywlJfJtY8V0ikVZHdVsvWo4R3Kqts2u8dT1FVFwSS63da3RtYvDhMKNDsV80a1a4jHA== 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=0Ugnicnfc6kY5jwDwNfLJFNV4GM94qo/bjuprkjhoqc=; b=DuJkqxv92fRIlJ1f8fGsJnNFpD4crUpleYVcQjU3Kxv+Gtp3FZf97Z/p1y36vd2tSUTreMRwxdVvlIsEHnZ5CjO4swCba0EKfW3mxWsQljiBnBIx5eipiSEbsNiCUSaV4k5ukpWE/8Fk9ocYyWS+jjgDY1iz4d5RV9VLI+rw+fxEWWZclI+FpRGhabvXdu+S9jJvdcgY25I/DPaS28YCw0jIv9QD5hUjqv6DzvgwDWDl29Kt9/BQoXN84st8MTV+a19j+uSNLUqCKYF1VLPytyav2uPqhcXVO84Jw0ubM2zLRXG1WCaVCrHkHjgeCKGfD+XrHovjkl51hPvRO3ET7Q== 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=0Ugnicnfc6kY5jwDwNfLJFNV4GM94qo/bjuprkjhoqc=; b=dHBWoLmvGb4D0kliNOAG8rUtD2tMrwE8/l+UceJgrs1fSLCZFl8LQi4QEmBMmHuAWu0r7g1zvVAYHtMV5/awG8iUhDVfIN2K1U2TjNXWb23zmzK7J088H5cAv4oYQeLyX2cSXSp4zwvdbcRfZhNouRUA2KmXbVRae9IJ9XBmvUM= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by CO1PR11MB5010.namprd11.prod.outlook.com (2603:10b6:303:93::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21; Tue, 15 Jun 2021 14:36:47 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::b944:8068:4f2b:a1fc]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::b944:8068:4f2b:a1fc%6]) with mapi id 15.20.4219.025; Tue, 15 Jun 2021 14:36:47 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "Ni, Ray" , "mcb30@ipxe.org" , "mhaeuser@posteo.de" CC: "Ma, Maurice" , "Dong, Guo" , "You, Benjamin" Subject: Re: [edk2-devel] [PATCH v2 2/3] UefiPayloadPkg: Add PayloadLoaderPeim which can load ELF payload Thread-Topic: [edk2-devel] [PATCH v2 2/3] UefiPayloadPkg: Add PayloadLoaderPeim which can load ELF payload Thread-Index: AQHXW+d9ZDq2f23CBEuC3j7NuTt8fqsJXgVQgABmFoCAAaNHQIAADjWAgAElFeCAAEJ9AIAAI+vQgAAJl4CAAAhVAIAADvpggAgNF/A= Date: Tue, 15 Jun 2021 14:36:47 +0000 Message-ID: References: <20210603062259.1390-1-ray.ni@intel.com> <20210603062259.1390-3-ray.ni@intel.com> <812b8f13-e951-5d27-9bd1-61711e6dd840@posteo.de> <486c5ab8-240e-3ac5-5a4a-7f368cb68644@posteo.de> <8eb8db11-90c2-57e0-6868-3532c5af8073@posteo.de> <785b1d37-9314-4909-7d1f-efa343018238@posteo.de> <24a2cc8a-69c5-5961-448c-1d07a0628eda@ipxe.org> <168735878F610E03.10233@groups.io> In-Reply-To: <168735878F610E03.10233@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.100.41 dlp-reaction: no-action dlp-product: dlpe-windows 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: [124.77.195.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6f55661b-7012-4111-d751-08d9300b015d x-ms-traffictypediagnostic: CO1PR11MB5010: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: G6nXEr3ghCgPZ0qp7gU20b5Ct4/PHAR3CN7+WvdWg2gQjyRtTEKWq8L/o4yu8NpTVLTjZn81tURXFOib8QpnS9/kP0fhUANo7yrddFSq7PgbiIF4T+q+f6GjeBfSqo518ffXAAqObrqEG7w7g6WIxjYYGWP6cngAEzSFq6hR3gfKtKKqMDtkVp3LEV6oevHgCqwAuox4LHYtA6E5diMUa1U1UfvG4ucl0o1p1hbZrBhYfBxsXOCSbgHUxgvno9Et+5ooN2ftdr1JDUr+VzwzvBhccaPJkARzHODuSZbUCUF0XpCd/7zCH8KinfHrA2xJzQnoek0dn58ed67sfds0biuXsyeDghBs1vatzlo0y/TNZtazXV0tIC6oxsSRfG5fIpsKJdz+KIUaLGvEPGGYBZdCkfFIGyVMrFoW63qBkdpV4ooTFmOMC+z6fGP2t7zFi5DmSMRFOBeBJGv0VyHPSCMUTvt3rRXwmDmv3GCS6GsDeeXSirCxeLNop1P+tJ1o5b8xwLv0VFZNatGAA+mROLYicUSs4KBgJae7m1d5C+pJDUy7Rc16aCOwC66SG7SH921rudvzVxW5hArqbrNiCsHh6mGqR7RzcoOCEMk9UzQSuUK2bVODr7nfel6GqbhJTx8CeURVe7eH/N0DB7EF9zq7o1XR5xlYN72TawzH2Ryu2KfNWGpKLQ15tp0X4xtCsGE1xLBXqmikYKqXLAw2SKCkZX8mPO94S+hlruqVOPXxoQ0AQFooFz/CtjDY55Xyu3te6mns0KDUnBFmwAmTVQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(966005)(5660300002)(52536014)(498600001)(4326008)(9686003)(33656002)(107886003)(66574015)(8936002)(54906003)(53546011)(26005)(55016002)(66556008)(122000001)(86362001)(6506007)(71200400001)(76116006)(64756008)(186003)(8676002)(66946007)(7696005)(66446008)(38100700002)(66476007)(110136005)(2906002)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SC9ncEZVUGMzLzVqTTRGdXhBTGNXa1BPeDBIcVFMellaemRrM21maWFPeFl4?= =?utf-8?B?bmRoZGFBVmw1TFVDb0VKR1hucVVmc1lSRTA3M1ozYm1SNS82WDM5Qy9BQzI0?= =?utf-8?B?ak5oNUNVVFJRZG16eVhlbERBbUVVTTBtRC9tb25FdHNUVlFmaHRnNHZRVTMw?= =?utf-8?B?OU9QK3JZMnNEUnZMclVYYmQwaVlGRy9HWkIzc3l0WmtFalRoV0NXdmprZ1NR?= =?utf-8?B?d2hDSnJlTTY2SmRVVjV3QllyWC9JczNpV2hreEVmQjMvSFQzR05hNnN2am51?= =?utf-8?B?SUhUWmJzQ2tqdDIwV3FUWnVGRWVUTG5lN1lwYmpOZnZTQ3E0ckFoT3BBTGJZ?= =?utf-8?B?UTN1OG5GZVlaZFhZT1JVT3I2Z252dFN6aTRkWGRpdzhTdDFZbkthVkF0a0Vs?= =?utf-8?B?cHljMVVvM0EvanZiYWwvZmpwRmVtZkhGa2RkYy96TlJMTWg3bzJlMTFjZ0Qx?= =?utf-8?B?cFFvaVRiUldoMWY3bnBSRndCaXhNQVBPRUVNa09qTCtIMVpPa0FSaE0zK2xB?= =?utf-8?B?czRzTFhyWHptLzZ2bk9jQ0xZTXpld1FzRnU5aUdwT1ZjRVZuYmMzMzUzY3V0?= =?utf-8?B?dlFaTnRjTFY1SlovVWRHMzVUWlNTcHFFYko0bW9XdmZnOFlyUFpPRy94Tkth?= =?utf-8?B?NWd1R1VYTERTM0pkdWlmTk5RSXJvM2VualJiM3FmeXpMQm1mSzE5MUxHL3d5?= =?utf-8?B?SkE1QTVpRkNLYXNsZ0k1bmlva1RDZWQzQ1hJM2UzZGJqR1VvS2o2cTYweEM1?= =?utf-8?B?dVQvbUEyd0k1YXl5NDZ0VUxIN25pTWhadDh5cGZON1lndlRzZEplTEdtMHls?= =?utf-8?B?MmM2RnQ5T09NWHhpM2d1RVBpekQ5VmVPU00vaXBxYmNCdW9EaFM1K3N4VUUx?= =?utf-8?B?dGdNT2oxNGJub2Z1aG40Y01XR0JGbUs5cFRKZ3h2R0RueUFRS0N1MUQxQUVQ?= =?utf-8?B?MndITVdCc01oV0FoYlUrQ2tkTlMxU3JyQmdwRzlGRjdFM2h1bkVkejVyaXNK?= =?utf-8?B?T28rUlZPV0psZmgzY0M3RHJvYjJBU0pxQ2JCcVAvYVdwUWRYTE1EYnB4YmpY?= =?utf-8?B?OTJzTXNUL0h0S2FIOXR3cmNnZXRJZUlKM2duVktWS3dXZ29IVVhDdkdqWFpk?= =?utf-8?B?dWZBc2NOLzRiVkxyQTM4enZXL1dlWVJJSGNqbFJoWFpjNHJsVDZGYk5pQkZu?= =?utf-8?B?VisxbnNLbG1IcEorL0h2TldrRFlESUxab3RPcHMyOVlsa3g2b3BJbG1McDgy?= =?utf-8?B?WGVIZkRWVW9DVFZUVTBHb0piQUE3d3ltM2lxcXNvNFEwTW1xZWpHVmVCMllL?= =?utf-8?B?QVhNZmtHcWVxUng5UHB0MURXdHZNemw4MDhMM2wyY2h4MXRoalI1MVNpSk9m?= =?utf-8?B?cTcvUjFVZzk3N1NxUGNidzVEbm1hejFuU0lIQ3VGWDN3OUxmZDdZOFowWVRs?= =?utf-8?B?ZGYycytFVXFRYXlLWEhyajV5anpwZEpyQmFuZFFZaFZBTmdpaGFzRXZSRWkw?= =?utf-8?B?ZXFsejBBemVZSzdyK3ZqempDOXA2b21CRHJINCt3S1hsMWI2ZWRlbmFJcnVy?= =?utf-8?B?NHBvcVJFaDdVUENOZEEvcGlja2lxYUIvYmt2YXRYQW1Ed05HVkhmaHBxajZx?= =?utf-8?B?dlUrSit6cDd3Wk9ybytmbUM3MCtmUDQ2dkk5Q1l5clF4eCsybzJhVktYUEJx?= =?utf-8?B?ejd6c3J6OW1aR2VwdlJPaThMMytNcjVEQXdDMlJ0NkwxcTdkdVpZNlZ4U0ZT?= =?utf-8?Q?LvekGXAi8CTp1YsIXwkWamnWcRzKX5QVyPR7LBv?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f55661b-7012-4111-d751-08d9300b015d X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jun 2021 14:36:47.0676 (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: gGhZrxewqFiu/F7YRbz3EL/DGN1Q6zzeQ7rfF3nXpwV55UOncgPQWFR+nD53hseU5fQuqp03AvEESxW3gGPG9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5010 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWFydmluLA0KSSBoYXZlIHNlbnQgb3V0IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9t ZXNzYWdlLzc2NDI5IDxVZWZpUGF5bG9hZFBrZy9QYXlsb2FkTG9hZGVyOiBBZGQgbW9yZSBjaGVj a3MgdG8gdmVyaWZ5IEVMRiBpbWFnZXM+IHRvIGFkZHJlc3MgeW91ciBmZWVkYmFja3MuDQoNCkNh biBJIG1lcmdlIHRoZSAzIHBhdGNoZXMgZmlyc3Q/ICh3ZSBjYW4gY29udGludWUgZGlzY3Vzc2lu ZyB0aGUgbW9yZS1jaGVja3MgcGF0Y2guKQ0KDQpUaGFua3MsDQpSYXkNCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRr Mi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBOaSwgUmF5DQo+IFNlbnQ6IFRodXJzZGF5LCBKdW5l IDEwLCAyMDIxIDc6MzcgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBtY2IzMEBpcHhl Lm9yZzsgbWhhZXVzZXJAcG9zdGVvLmRlDQo+IENjOiBNYSwgTWF1cmljZSA8bWF1cmljZS5tYUBp bnRlbC5jb20+OyBEb25nLCBHdW8gPGd1by5kb25nQGludGVsLmNvbT47IFlvdSwgQmVuamFtaW4g PGJlbmphbWluLnlvdUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BB VENIIHYyIDIvM10gVWVmaVBheWxvYWRQa2c6IEFkZCBQYXlsb2FkTG9hZGVyUGVpbSB3aGljaCBj YW4gbG9hZCBFTEYgcGF5bG9hZA0KPiANCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiBPbiBCZWhhbGYgT2YgTWljaGFlbCBCcm93bg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBKdW5l IDEwLCAyMDIxIDY6NDMgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IG1oYWV1c2Vy QHBvc3Rlby5kZTsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiBDYzogTWEsIE1hdXJp Y2UgPG1hdXJpY2UubWFAaW50ZWwuY29tPjsgRG9uZywgR3VvIDxndW8uZG9uZ0BpbnRlbC5jb20+ OyBZb3UsIEJlbmphbWluIDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJl OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDIvM10gVWVmaVBheWxvYWRQa2c6IEFkZCBQYXlsb2Fk TG9hZGVyUGVpbSB3aGljaCBjYW4gbG9hZCBFTEYgcGF5bG9hZA0KPiA+DQo+ID4gT24gMTAvMDYv MjAyMSAxMToxMywgTWFydmluIEjDpHVzZXIgd3JvdGU6DQo+ID4gPiBPbiAxMC4wNi4yMSAxMToz OSwgTmksIFJheSB3cm90ZToNCj4gPiA+Pj4gTWF5YmUgZm9yIHNvbWUgY29udGV4dCwgbXkgbWFp biBpc3N1ZSBhdCBmaXJzdCB3YXMgdGhhdCB0aGUgY2hlY2tzIGFyZQ0KPiA+ID4+PiBhbGwgcHJv cGVyIHJ1bnRpbWUgY2hlY2tzIHdpdGggbm8gQVNTRVJUcyBhdCBhbGwsIHNvIEkgZ290IGNvbmZ1 c2VkIGhvdw0KPiA+ID4+PiB0aGlzIHNpdHVhdGlvbiBjb3VsZCBoYXBwZW4gaW4gYSByZWFsaXN0 aWMgc2NlbmFyaW8uIEkgbmVlZGVkIHRvIHRyYWNlDQo+ID4gPj4+IHRoZSBQYXJzZVN0YXR1cyBk YXRhIGZsb3cgdG8gdW5kZXJzdGFuZCB0aGUgaWRlYSBpcyBiYXNpY2FsbHkgdGhlIHNhbWUNCj4g PiA+Pj4gYXMgaW4gdGhlIFBFIGxpYnJhcnkuIENvZGUgaW4gYSB3YXkgaXMgc2VsZi1kb2N1bWVu dGluZywgYW5kIHRoaXMNCj4gPiA+Pj4gcGVyc29uYWxseSBnYXZlIG1lIGEgaGFyZCB0aW1lIHVu ZGVyc3RhbmRpbmcgd2h5IGl0IGlzIHdyaXR0ZW4gdGhpcyB3YXkuDQo+ID4gPj4+IEJ1dCB0aGFu a3MgZm9yIGNsYXJpZnlpbmcgeW91ciBpbnRlbnRpb24hIDopDQo+ID4gPj4gSSBhc3N1bWUgeW91 IGFyZSBvayB3aXRoIHRoZSBQYXJzZVN0YXR1cy4NCj4gPiA+PiBJIHdpbGwgc2VuZCBuZXcgdmVy c2lvbiBiYXNlZCBvbiBtYWlsIGRpc2N1c3Npb24uIFRoYW5rcyENCj4gPiA+DQo+ID4gPiBJIGRv bid0IG5lZWQgdG8gYmUgb2theSB3aXRoIGFueXRoaW5nLCBJJ20gbm90IGEgbWFpbnRhaW5lciBu b3IgYW4NCj4gPiA+IGF1dGhvcml0eS4gQnV0IEkgZ2F2ZSBteSBvcGluaW9uLCB3aGljaCBpcyB0 aGF0IGl0IGlzIGRlYWQgY29kZSB0aGF0DQo+ID4gPiBtYWtlcyB0aGUgZGVzaWduL2Zsb3cgaGFy ZGVyIHRvIHVuZGVyc3RhbmQgZm9yIGEgdGhpcmQgcGFydHksIGF0IG5vDQo+ID4gPiBvYnZpb3Vz IGJlbmVmaXQuDQo+ID4NCj4gPiBGV0lXLCBJIHN0cm9uZ2x5IGFncmVlIHdpdGggTWFydmluIG9u IHRoaXM6IGhhdmluZyBQYXJzZVN0YXR1cyBpbiBpdHMNCj4gPiBjdXJyZW50IGZvcm0gaXMgYSBi YWQgaWRlYSBzaW5jZSBpdCBhZGRzIG5vIHZhbHVlIGJ1dCBkb2VzIGluY3VyIGEgY29zdC4NCj4g DQo+IE9LLiBJIGNhbiByZW1vdmUgdGhhdPCfmIoNCj4gDQo+IA0KPiANCj4gDQo+IA0KDQo=