From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web08.750.1662478852711826905 for ; Tue, 06 Sep 2022 08:40:52 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=KcRoHcXE; spf=permerror, err=too many SPF records (domain: intel.com, ip: 192.55.52.43, mailfrom: sebastien.boeuf@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662478852; x=1694014852; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=pGU1p6L/g6btUseXa/DVHVXoVnmLs3Jf8JbmWsZhxEo=; b=KcRoHcXEQRc8E+k6x6FaFDF27Ao9NvYWm3oT9w6Ps3yQ6KJkUPolAgXj gxfMvz8egdQmVx90vm80STA66Yps0E9h7eVFfLEIg4auNEtY0zcg5Q/FL EcLKlht+mNzwzC418eTV9bMnL0yYrAT75AB7BfWE/y0VWNxqPI+TLXAGI x5g7hYZ/rQXUZLE8vfQdzJ0Hema2X0FbPZA3rCjaX2jfBbGETSPdYYd0Y ALHKuLdm6IBobmpRBl0w4syGwjJcDKh7DI4Wr9xRMWZBhgtWMYub++5H1 MuRV5+V9PceC+CnvLwQgyftTq98nx/vofSq3SO6pYYFRAOKNWEwyLU1go A==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="382922321" X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208,217";a="382922321" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 08:40:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208,217";a="616746425" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga007.fm.intel.com with ESMTP; 06 Sep 2022 08:40:52 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 08:40:51 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 6 Sep 2022 08:40:51 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.49) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 6 Sep 2022 08:40:51 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gsefi8IqV5i2/LWLvhVBwyWoKoO15exs4tFEW/7MfY+mnoFNw3HSiPjOmvE5INzLqHAHOz4FEwegzyrzz2US3gBNlmssidtU58SdqT1fWm79BkMjAlURkntQ0JVEZxMPCsD4pUxYq08S350QvBBUSM3eUrylBoVpNslcTCod2+IiOZ2DIZWZwESxW1cp1RlvKkEfJZ2hG8qekfZGYp9OkOIhZuQNQLyQx/Uw+xRZ8bWzkB5NFfKYhijekTvEp15s8HY92kEHq8sF+3EiYKuMRdUkA6WmQlKCYxcwotUiOf+Y1hZRUwL2rzY7Cn8xCPNBQK8w9hvLIFuek9W7RuT0yA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=55Bl8IcuAdrwSRynwvzeQ8OuBoYXhB+YHruDmQfLqHA=; b=HYneEYXIB6q7q2pFOtJ8QSbv3e+ZdUmJll3kgMUdk6iLS+r3/bH71Jdm4F4ak0dbhsyP6dJh4rrthxbl5waSJArnIwj/GOo/Dhlus1ZdBvEZ6uX+hmqwHgCTHuLy1wisP6e297k9TPME8pbF42HaL/4IIFw2Yw4z6aXIdgctbsyHEl3vBiVHHba0mAQBlMQKkUDhLW4tri/wMZel7fYK644n8lfp0GQ4BgQpUTLX6c51LkBeXA8A7mJ8eXUUj4F25peo9JZ43HHOwRDUPVpYC3gqb9mrKucZvDnvnL/j5KVPJIXDxYHGBM0xCpEx3ytYldISBvGMuj+OO6oACG1Muw== 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 Received: from BY5PR11MB4401.namprd11.prod.outlook.com (2603:10b6:a03:1be::13) by MWHPR1101MB2095.namprd11.prod.outlook.com (2603:10b6:301:5b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.15; Tue, 6 Sep 2022 15:40:49 +0000 Received: from BY5PR11MB4401.namprd11.prod.outlook.com ([fe80::112d:cc6b:6802:545b]) by BY5PR11MB4401.namprd11.prod.outlook.com ([fe80::112d:cc6b:6802:545b%7]) with mapi id 15.20.5588.018; Tue, 6 Sep 2022 15:40:49 +0000 From: "Boeuf, Sebastien" To: "Yao, Jiewen" CC: "Justen, Jordan L" , "kraxel@redhat.com" , "devel@edk2.groups.io" Subject: Re: [PATCH v2] OvmfPkg: Update I/O port related to ACPI devices for CloudHv Thread-Topic: [PATCH v2] OvmfPkg: Update I/O port related to ACPI devices for CloudHv Thread-Index: AQHYs7JjLp5GrBU090uWJK28qKRdWa3SjIOmgAAFtYCAAAs7pA== Date: Tue, 6 Sep 2022 15:40:49 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 44c5daec-aa45-477f-f815-08da901e2c6d x-ms-traffictypediagnostic: MWHPR1101MB2095:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: It2R1t7n4qsTbpu/M9xrwv98xjGEnEz80IODAv3YrtCnedHoFI3vKvV0DzDGOqTtRQiPYNLKqzlkA5e2wb40hSU6ZuWOxrP5sorLxLND3biNWDzH26r2Ao7EtPJCguPShmIagK9+daj8T8+FzAkeUK4THkrNcJL5uzScSWx0CqUjpRkrOEoTOJcfKlFYHOvem+SsuS0ZitcBCwyPLAO9XwDSMRSRgtIF1SRCGAUuxp65EnCUgCzBl6wacmvnWdhc7fbp0IeFnjboPE6pFOCcL/axvNedEQREzrHeipcHfMFdb/tkHpYi/NVth4r1bPmHFjD6pr52Z7BD2gk+P9rFVGcxcX0TuLJWKEvMV6g9Bn4kMzwrzOBpzVZ0SgG7sGVowqN3nECR5x5TZEsOl31buMC4rN4RgE+JM4FdOeF492XWowf5Dkz3X/UxAcRSaDwYMFEBhSX0Drbj6q87+kAo2wWZFbf7Tw290A34RyoJJg5TGmMTsXZPVWQEuUl/ud13kwMVyvK5WG7tTVnb15srwpSn5bORfr/CdVz3sEmNomGnyaMIXAwevyBfpTjvZDFYTjmbB9BTpKFTQsahU4GuU497B14EVWMk3Yk3zoHmM6gwq3z8SNOFS39fnjmbqc481q4D3PFxQNYVPrfSmmBBCeEq7iOKVFFNlqCiNOTC9bBA8F2KKi1V4Xcr/f1RxOEaJAhcXvl5XVjWmyK1nIDWfQR+7JBVM9zipUI/czLr/TGu0q27yRsN7C6sgD+bVshcclo3+iDZLerIH8NzThfW7Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR11MB4401.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(39860400002)(376002)(366004)(346002)(136003)(396003)(38100700002)(19627235002)(5660300002)(122000001)(41300700001)(9686003)(53546011)(7696005)(38070700005)(71200400001)(83380400001)(186003)(6506007)(478600001)(82960400001)(64756008)(316002)(91956017)(6862004)(76116006)(66476007)(66946007)(66446008)(86362001)(15650500001)(8936002)(52536014)(8676002)(19627405001)(2906002)(4326008)(54906003)(55016003)(66556008)(6636002)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?zTAaZzF9GKb7d+IL4iYdul2p7DyPcuxg7SkqRWudev6Fc/7NHSvsWeFp6uw+?= =?us-ascii?Q?hr6z7l3dqhteUjDRDl1s+TSJJkf2gQHhA5C3GPCUZB120yQVuyCTA7B7k75O?= =?us-ascii?Q?Lt6QbVyt0uoN2ozsSKQsGyQWek7tc2oSc8+mJ9/q0S62zLPrCOa+DDVe+4O8?= =?us-ascii?Q?j/9FV43me4VlSp2cuxZ/iiXK8dQL41CYpJt0H+lZkiUCX1Uj31UU9ogWq8za?= =?us-ascii?Q?Je5AD8kHDntkZGE9HJkDudzgaLuIAGYokvQ291eu8+Mck3ud5YuPCT/YRADi?= =?us-ascii?Q?aOtr6Kkd02jlmkl80o3qu9P1dbeaS2n4A5aiHDaqitTMgm+wqoacgtIeC8aw?= =?us-ascii?Q?MOsc0EFtDYnVtBZ2LB/5bodwVEoH6j7jvWLBTnNZyzbNyESi6GOg0pzTXk3u?= =?us-ascii?Q?I8oavTa8uTOJASKYllLMuivT+EKCsu2sVXgticYWRYd603dYFqyoPSfm5l65?= =?us-ascii?Q?R/sWTTBbEHiVKIELFlDi3yli1a4f0P1V2OTFZQunahRiLo0KNMI/PYavoBBl?= =?us-ascii?Q?0ucQgwHMbpICHqUTVe3Iyz0yPiN1kkKSmb2jwFFX8URGRpNMnOLplnH1YHNV?= =?us-ascii?Q?yuQSmdQ73kHgeirU1bWcZs8BK/mBFO87k6FVA88pSe6nB7UlZPGUbtp+PPU5?= =?us-ascii?Q?fdUxlnvLCM2wPlslkq/gsDt0C8pN16S5UdYf6nddQdNPzULV9ZYUXcg1/7OY?= =?us-ascii?Q?xK+lUfPt+kH6Nok2Kuop7JCyKtO8fN/DTOrCFdo7XpCDW3xiaGEUaFIEOnPi?= =?us-ascii?Q?ZpC3+sOJXZAEAwrjJ0Al+SO8/vqn1N+n7px++APwcwnyjUUjnTf2rVq2fOgp?= =?us-ascii?Q?/Gilx+S8hlnMmkohYVEOAumVgyiXQtKIQd/ZH8adEI94MKsu03VGKj5Cp+5s?= =?us-ascii?Q?HgDg1WUOKZzxVxi54sKFz7TAHMC7b5MwYqhnkJZpV35CBetVuWkADkVRh/2j?= =?us-ascii?Q?V3UZFBQWtit9buoQk4kW91UQIQjJsiyrI820IFo/WYx89RH0A3fqQbSKK5pn?= =?us-ascii?Q?9xduhcN33U+AnVlhM8HyJQXWwgNyOOVeR5B7o6lmt1ICBaBN0zgo5fsDFIGI?= =?us-ascii?Q?Mg17vi/Cb94Xp+UaK2q/KqMBnd8DLc3WnlhB1JoDY2qzQDjGPiWwZDevtdVy?= =?us-ascii?Q?RvJH1KEtMGqX+g0g3iRvIfvbgGScJXUudeHbXzUOOLVO/D8nDQnJFwQcmKfV?= =?us-ascii?Q?Ym3UvufFIJQmQC03nEg9l4xsC8koVouKA8TtwIJq9G57Tffu2wi2KW35VlDH?= =?us-ascii?Q?BdbwbwCa3zBeEy1QWEm3IZAiaYKRS1KiBdB+hjveZnthfRX235RkAJI78BCO?= =?us-ascii?Q?mDtz6pi/3YL1u4CHhCbiypMTUN/7PMTeqaVdLqK0PFomXWJMZ1UMnho/mqVs?= =?us-ascii?Q?XGNzpkIM1gznMJ5P57p+lD+9WWChCBuzOaCZ4qM5VqOVtOw1o8MqHxY4HM/9?= =?us-ascii?Q?l1cHYEmhvGj8SvYL4KOHG+4iQiYSj+v0mryZ3TOOKhy7hQmnCRs6vqqh8GyW?= =?us-ascii?Q?z0SA43+YLJpid1OTyt0CUwEDXAtiyQBg09UT7SLLbMisfuxdywsdsKozlSGm?= =?us-ascii?Q?bY+Hf8iVX/h3FGULiim8qJ/OaNDvRKzoMTED319UsFSUfA+9itTcdJsdKXZu?= =?us-ascii?Q?UR33VexdYMjsGf8JC0cWV9b6iya9upqD7FbHe2ZbnuKq?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4401.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44c5daec-aa45-477f-f815-08da901e2c6d X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Sep 2022 15:40:49.4700 (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: EHXsmq5xl6bdZKI2zXQqHVNRFyCSC5o+6NdWxPfdfbHKIGsKjkAjx4gxkUjjs5uBag2uW6C4J3P5oeX2eZcVANEh5IMToX0KH2JnHS6uWR8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2095 Return-Path: sebastien.boeuf@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_BY5PR11MB440183BEF9706AFFEA4BE5F9EA7E9BY5PR11MB4401namp_" --_000_BY5PR11MB440183BEF9706AFFEA4BE5F9EA7E9BY5PR11MB4401namp_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Jiewen, We patched Cloud Hypervisor to support both I/O ports for at least two vers= ions. And of course at some point users will have to rely on latest CloudHv= binary (which we always build). One improvement could be to retrieve the I/O ports addresses from the FADT = table. Do you know if there's some code already doing that in OVMF? Thanks, Sebastien ________________________________ From: Yao, Jiewen Sent: Tuesday, September 6, 2022 4:27 PM To: Boeuf, Sebastien Cc: Justen, Jordan L ; kraxel@redhat.com ; devel@edk2.groups.io Subject: RE: [PATCH v2] OvmfPkg: Update I/O port related to ACPI devices fo= r CloudHv This seems a big incompatible change. I feel this is weird to hardcode the configuration here. How the OVMF binary knows it runs on a new CloudHv or old CloudHv? Can we have a mechanism to detect the data at runtime? E.g. read some PCI r= egister ? From: Boeuf, Sebastien Sent: Tuesday, September 6, 2022 10:08 PM To: Yao, Jiewen Cc: Justen, Jordan L ; kraxel@redhat.com; devel@= edk2.groups.io Subject: Re: [PATCH v2] OvmfPkg: Update I/O port related to ACPI devices fo= r CloudHv Hi Jiewen, Do you think this could be merged? Thanks, Sebastien ________________________________ From: Boeuf, Sebastien > Sent: Friday, August 19, 2022 11:59 AM To: devel@edk2.groups.io > Cc: Yao, Jiewen >; Justen= , Jordan L >; k= raxel@redhat.com >; Boeuf, Sebastien > Subject: [PATCH v2] OvmfPkg: Update I/O port related to ACPI devices for Cl= oudHv From: Sebastien Boeuf > Both ACPI shutdown and ACPI PM timer devices has been moved to different port addresses in the latest version of Cloud Hypervisor. These changes need to be reflected on the OVMF firmware. Acked-by: Gerd Hoffmann > Signed-off-by: Sebastien Boeuf > --- OvmfPkg/Include/IndustryStandard/CloudHv.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/Include/IndustryStandard/CloudHv.h b/OvmfPkg/Include/I= ndustryStandard/CloudHv.h index d31ecc9eec..527c236f48 100644 --- a/OvmfPkg/Include/IndustryStandard/CloudHv.h +++ b/OvmfPkg/Include/IndustryStandard/CloudHv.h @@ -16,12 +16,12 @@ // // ACPI timer address // -#define CLOUDHV_ACPI_TIMER_IO_ADDRESS 0xb008 +#define CLOUDHV_ACPI_TIMER_IO_ADDRESS 0x0608 // // ACPI shutdown device address // -#define CLOUDHV_ACPI_SHUTDOWN_IO_ADDRESS 0x03c0 +#define CLOUDHV_ACPI_SHUTDOWN_IO_ADDRESS 0x0600 // // 32-bit MMIO memory hole base address -- 2.34.1 --------------------------------------------------------------------- Intel Corporation SAS (French simplified joint stock company) Registered headquarters: "Les Montalets"- 2, rue de Paris, = 92196 Meudon Cedex, France Registration Number: 302 456 199 R.C.S. NANTERRE Capital: 5 208 026.16 Euros This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. --_000_BY5PR11MB440183BEF9706AFFEA4BE5F9EA7E9BY5PR11MB4401namp_ Content-Type: text/html; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable
Hi Jiewen,

We patched Cloud Hypervisor to support both I/O ports for at least two vers= ions. And of course at some point users will have to rely on latest CloudHv= binary (which we always build).

One improvement could be to retrieve the I/O ports addresses from the FADT = table. Do you know if there's some code already doing that in OVMF?

Thanks,
Sebastien

From: Yao, Jiewen <jiewe= n.yao@intel.com>
Sent: Tuesday, September 6, 2022 4:27 PM
To: Boeuf, Sebastien <sebastien.boeuf@intel.com>
Cc: Justen, Jordan L <jordan.l.justen@intel.com>; kraxel@redha= t.com <kraxel@redhat.com>; devel@edk2.groups.io <devel@edk2.groups= .io>
Subject: RE: [PATCH v2] OvmfPkg: Update I/O port related to ACPI dev= ices for CloudHv
 

This seems a big incompatible change.

 

I feel this is weird to hardcode the configuration= here.

 

How the OVMF binary knows it runs on a new CloudHv= or old CloudHv?

 

Can we have a mechanism to detect the data at runt= ime? E.g. read some PCI register ?

 

 

 

 

From: Boeuf, Sebastien <sebastien.boeuf@= intel.com>
Sent: Tuesday, September 6, 2022 10:08 PM
To: Yao, Jiewen <jiewen.yao@intel.com>
Cc: Justen, Jordan L <jordan.l.justen@intel.com>; kraxel@redha= t.com; devel@edk2.groups.io
Subject: Re: [PATCH v2] OvmfPkg: Update I/O port related to ACPI dev= ices for CloudHv

 

Hi J= iewen,

&nbs= p;

Do y= ou think this could be merged?

&nbs= p;

Than= ks,

Seba= stien


From: Boeuf, Sebastien <sebastien.boeuf@intel.com>
Sent: Friday, August 19, 2022 11:59 AM
To: devel@edk2.groups.io= <devel@edk2.groups.io> Cc: Yao, Jiewen <jiewen.y= ao@intel.com>; Justen, Jordan L <jordan.l.justen@intel.com>; kraxel@redhat.com <kraxel@redhat.com>; Boeuf, Sebastien <sebastien.boeuf@intel.com>= ;
Subject: [PATCH v2] OvmfPkg: Update I/O port related to ACPI devices= for CloudHv

 

From: Sebastien Boe= uf <sebastien.boeuf@intel.c= om>

Both ACPI shutdown and ACPI PM timer devices has been moved to different
port addresses in the latest version of Cloud Hypervisor. These changes
need to be reflected on the OVMF firmware.

Acked-by: Gerd Hoffmann <kraxel@red= hat.com>
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
---
 OvmfPkg/Include/IndustryStandard/CloudHv.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/OvmfPkg/Include/IndustryStandard/CloudHv.h b/OvmfPkg/Include/I= ndustryStandard/CloudHv.h
index d31ecc9eec..527c236f48 100644
--- a/OvmfPkg/Include/IndustryStandard/CloudHv.h
+++ b/OvmfPkg/Include/IndustryStandard/CloudHv.h
@@ -16,12 +16,12 @@
 //

 // ACPI timer address

 //

-#define CLOUDHV_ACPI_TIMER_IO_ADDRESS  0xb008

+#define CLOUDHV_ACPI_TIMER_IO_ADDRESS  0x0608

 

 //

 // ACPI shutdown device address

 //

-#define CLOUDHV_ACPI_SHUTDOWN_IO_ADDRESS  0x03c0

+#define CLOUDHV_ACPI_SHUTDOWN_IO_ADDRESS  0x0600

 

 //

 // 32-bit MMIO memory hole base address

--
2.34.1

---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris,
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 5 208 026.16 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

--_000_BY5PR11MB440183BEF9706AFFEA4BE5F9EA7E9BY5PR11MB4401namp_--