[AVTCORE] Re: My pre-WGLC review of draft-ietf-avtcore-rtp-haptics

Hyunsik Yang <Hyunsik.Yang@InterDigital.com> Thu, 06 March 2025 14:40 UTC

Return-Path: <hyunsik.yang@interdigital.com>
X-Original-To: avt@mail2.ietf.org
Delivered-To: avt@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 59416843211 for <avt@mail2.ietf.org>; Thu, 6 Mar 2025 06:40:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=interdigital.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t9wu3XP828Kv for <avt@mail2.ietf.org>; Thu, 6 Mar 2025 06:40:24 -0800 (PST)
Received: from us-smtp-delivery-139.mimecast.com (us-smtp-delivery-139.mimecast.com [170.10.133.139]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id AC651843206 for <avt@ietf.org>; Thu, 6 Mar 2025 06:40:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=interdigital.com; s=mimecast20220303; t=1741272024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Y4oLH8cNaW9cEWdi9g/auw/k29ZJrN6wbp4JtMqouVQ=; b=XSSXz786tPwqJEQtXlKZhZJ5gV/+Uu4UzacUKYmX87LugWUSro9JBNQbSXY/psDUPr10C+ mnrkwTE9Ltc67uflw5mUO5thaEi8WlMAz/6pJCqKP8BpG0HtNPfT5MrHLHqu/ui+pTXBq+ hTCw49fmjLX5KwE4actMu044mN4puiiVigmq2/jctdEuDtr8/IGGCXllI4/yTuM1TrtdWB gFeXNyRkfK+2jCo2I+LFbLcODchfehPUoeBr9w8lfhswuFiU08w1VQ+qSi9V2ln/eWytsN COVINh9pNPBuelmDG/pmj8fyqNjrn7Mr6lgDwO1iDKwRMYE8ds12dwZQKPegng==
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2172.outbound.protection.outlook.com [104.47.59.172]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-378-XVvM7X0IOteuJ3m0FaafKA-1; Thu, 06 Mar 2025 09:40:23 -0500
X-MC-Unique: XVvM7X0IOteuJ3m0FaafKA-1
X-Mimecast-MFC-AGG-ID: XVvM7X0IOteuJ3m0FaafKA_1741272022
Received: from CH3PR10MB7282.namprd10.prod.outlook.com (2603:10b6:610:12c::8) by PH7PR10MB7695.namprd10.prod.outlook.com (2603:10b6:510:2e5::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.19; Thu, 6 Mar 2025 14:40:18 +0000
Received: from CH3PR10MB7282.namprd10.prod.outlook.com ([fe80::7dd2:829c:b72:43f2]) by CH3PR10MB7282.namprd10.prod.outlook.com ([fe80::7dd2:829c:b72:43f2%6]) with mapi id 15.20.8489.028; Thu, 6 Mar 2025 14:40:17 +0000
From: Hyunsik Yang <Hyunsik.Yang@InterDigital.com>
To: Jonathan Lennox <jonathan.lennox@8x8.com>
Thread-Topic: My pre-WGLC review of draft-ietf-avtcore-rtp-haptics
Thread-Index: AQHbfNcdEVkwF0qqSkSTb0uWQGbFtrNaE1ZAgAl0woCAAsL+QA==
Date: Thu, 06 Mar 2025 14:40:17 +0000
Message-ID: <CH3PR10MB7282A3B015C839275C7A0392EFCA2@CH3PR10MB7282.namprd10.prod.outlook.com>
References: <66F5D953-B1E5-4529-A5E6-E38C48F76D24@8x8.com> <CH3PR10MB7282192612CD6AFE839F9FE0EFC22@CH3PR10MB7282.namprd10.prod.outlook.com> <72A40E30-8A55-40EB-92A9-00E20CB4D9E3@8x8.com>
In-Reply-To: <72A40E30-8A55-40EB-92A9-00E20CB4D9E3@8x8.com>
Accept-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: CH3PR10MB7282:EE_|PH7PR10MB7695:EE_
x-ms-office365-filtering-correlation-id: 2ef76681-6708-4ed8-020f-08dd5cbcd088
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700018
x-microsoft-antispam-message-info: YejVuRgxLt1Gw+qvcAqg33QX/NG2EIRU+Tx7KW8FObTZoIXrgOxHm0Uuj5Zl+Qp/zBIFz6njjHDu5f3kn4LHweH6Dhirw6zkzaL9ZMQSjhdsURz09zLalcKq80Wh9ua4CRhllBAJnlTEx9FvFNyKS10gdMfA8rVn7M9RPBj0vgLWNubt8HIuzEKOvNWFo1LfbldxxTMzAzMgDlLKEzP3CH76LOF57UM6DYMPuZ35ipktj/6uZD8qgwRBDDYii99DXwfrr3sLTDVRxKQWWH2msknJxlFuQIr64uR/1kjYbe3KJEfoJprA+7fhqN+JNyZgwV2vNUTwbxL2ZXyKMUkRygrCILDDE59Y+FTn9YRJJZ1hZsD4NyytOczXhCCPEEmrQPjrGJuz+rWNr50duvw0GwEQMYaQ2AnP9+5UExW24pw12f0kNngomGBjI9j8CJ0AF+gMRXENnn6hZaBc6di1fN9voi1UuJilmmmzqRpwh77bNjVkYLo1fBtBD+t10WmpDssVe+pn/WxGNQQZexu6b061FuKYM5ID/mov7+5ArADmsP3WZxHzZhgnQUsJ4TbVuPe1YsCk53hs2enzIyqdmo4dHGbOGLL3WdX1+vw8Nvb6nt+aSkAUROjCtsLhsyE479Xcm4vokfSrORGhHDK3Z1mS4zBXBHVVT8/I4SvPK+oK0soU1XzAPHNPKVjUv2IAkIE/cQShG2ojpAS3Wpm/WJyweDeqjKNjGO1ThE5wPhfdDg0/mjTMT9z49ul/Jb+o77yCpuf0cQtKN1m5BzAeArvK4jJt+aSKHpDVtNRZwfJq+KgnDeXtKh04a9MtSM3V2jrpM77XBtw5uHemHszpKgbMHZhRYwGXgmF5///yl6Kxjby5/e/9DnAoEpaaHtEpymh9clI1WbV/dpl3ALis5bHMVLp2OIWJ1KntTvSgX5pdRFsxceItybvRIOao25KfINPwfVucMxuZn+7pa6Gvn/ArPUfRbjXrUDSJr8QfTXbIQ4086wUgEWfEb36uH5QVWc38OjaBoA7yc2+LBRqEAgVKDLXyfxlvkUl0Bh3191reNS42YXj2mYYNz33Ag42qoUXH521FEeaDyjwyMiwBMJ++aymnc742ZRAEEqzY8ILBTYdhrNq1Do8bt2m/pzjCJtvLF7+lyXC41Ww1fJ93zrftsKNJpikclGlg9lN+uBQY3fQlF1h5rcSCkO2hUezAmdhYQf5nbtFJ63FyLJJsw+4pkK9iuX8xb1Ze3QOOgDLgEPdPwoZBVjlWaOvDFwpSApYxTxiSYh4BfOxA5A+cEToztaT5Ls7BzMH1yyG27lPwKmrU5AIHhKAspY0Op1ss1kcZbbMKp4JOgyrPvVVyAnzfee/CfL3Y3SQYabjUXHJ0BIkJRQMJQBCZB8ttaWRrVqvqYa2FbZjDRhVPameVKg==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7282.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700018);DIR:OUT;SFP:1101
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 2O5/+lZmvgEXFAQMr3C5o8IVgNdP4CgXhVYWJJEWtjV3mRu76mo3uKwhiBPjIF46l20aynj6jjoT7vkLll4L4v+DYiWubJ8ZrYwZMXWqlgjdzlnwGf97XTR0fgwiMQrKdisrzeUz73Z/i64XtvKM0iIkobIqVuDfvmCANv7QhukvHNjSCKgFeKK+sP7V4kJp/RBn6EtyZstbcUT34819rGHrJy0/BRcBhUrI7Kbj9L4LQ7wTCM42uAo2oYEbHqCLGMNpebeKSj4BKv65LHKSim+y6YoAebjzN+Sl0s/yrHXpGgqGqQgaxXWhYo/p41LevunO1Wp8v5otv31ZgoAx06HPQwb3P+WQd08fvQ7mmRvjR9HQnBHCXcC3wiu8hJ1O9tMpim6kW1gb9O1g4+UV7tLvIMNmBWasXWw1TipxM2nB9KU0/mTt5kz0CfMtqL4yop9aDienIeaxJWQLOYXzuwU/yyVSPI/MTeMe7su2/0IIcuIqahvvx3DjdaFm7AQMvrwNqVok5I/RF4dkBmmTYlRjph1i1r+sS6HdSZcifKJXmH+PwUvPl2l6woQTt2Is6rSgjdvlUYDFSdObdSBfbISkXDOz8xCT5Zfli+qJU4CjjRtMPA5qlg2vD4OF0K78Z499UxqxZ8keLtBw2SPQGZctfH/ibUXk6cxrAz7WdsgLvhYAL5ReH2jaWrsHcpeKcvzVzHslynrlo3twjlZaLRmzGS7ax8oEFQDVnwx3gzEESIUiQnIkUgiSdpEyJd4yxPPREeahQ8CxBomGsKfz+XXztJndCMhSEMFCFdCi35kvxF9c4s5v2mpOs2DSylA49p4tEPt4gNuTNF3fs4TceGS50dTwArptDeGPB6FRfvGWOGe0OdsITPulMIsM8D7lh1KrBzRAZ84fiKGZ9hPuplg+BhT1zU0EBywQ6F4U80yqStrldUjOOhvGjyJJdujfAw93dBTpu4SEF0gxw+wcSqLkvV9kNq80uUkx/VJ7gdcoH97Peb8FU6jIJhAMpNMxAfSUprnEyY3LBJRAtKVv/SimN3BSpM2JE4ZvI/hAjejCQukXM/yVBqUiV+xDiIp20HcUTE1z5syIxNLir4kPO+rGtos6JT/MjbVKj4txX2fyjy/0SBbmXPpr6/Vx00z5yDWR5ulrTTx0hG61jRMfGrzRs75YWV5FF6ce8Z1TvgGuZMPwqMsjjydJjZ7wkfLgXj1kO9IT1HXi4evMmTxlGwVD58OYLOe45JftJ6d4Ow/allgx5KVknUGfEX6FepqlhMo9CDjlUtREL55GHqj6bSj+Qy4hvo5wyTgF9EA0F5EL5MeisETD71gGN+oThhq+eZk/8XGndCd64BTynDlDo+bAoHk1mK4FaozVwwYCB5pddrfZNXcrMSocfjjpJm9pBnnhMvBnQCddcxtBRPdQclm4YQMOYmVAJyPSulguK+4Jgvc59vLQ/SfOBXEQAzRr4xoUYnDLbFaUPXsT6F7QdbVNn+pxyW+Bd7BdyMhwx3XMtEy1bwRKpzku8+T0R+4DTngFcqzGSDkpKRYmio3OrTHP3ts2Ovc0cYwViD/YVtqe4pu4u+SVqAJ/uYGlOq7u74v0+Zy5SGWTy+xXYUr0Vw==
MIME-Version: 1.0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bWtkXcWSB/9Y7lDw79vUa/dnalWbG7RegbxBm9gl53I5TPl0ry4bTz8pLXNMz9KjcjPJZrd+5sjmUNZEaIbVz32/JEBty2qOnXEcIqbbWca5Sjfl6IEx9mKL+JDegerMdrOQN2wUBf8gkiTRs1oBMq6MinjgQgyGm4V63BfOiq1x2aI0d/m6ECoEHupJvRjUoeRRKP8F6N9idNNEeBCwFrs+Gdd5WB6SjfzToWyJqwEkYMOHnU8VQrR6ixF95o4xTFgVecMki/5VMp7BhzVrmu0evn6uDkfvU0oeNpN8TkC7gK+LyF2a/INwx3eb9LZlYd1jwAeA90rJo5jXG8uRLs5wMy5g5c/boRtaD1m5X2B4Wrv7qQbMnFnOSQ+KHAXzuNd2VSoMlQRUYl9chh3Z3oS0ThJHyiy7x3Q46qP4zyDKzToEekNMezOIwj2DJOnm3C0+gdrM1jlyjIYWEiu43/MFryp79ZZH/pQgPMjkXTVJt3amaxnnqk2or2wo9GIYHC/lTtLryLo+++d8P71QeMMeeoBhCgBsdtl5v91+0oHhTmxQQRb9yyCGXgb+QiQBJUvZSgLyhZY6Y5+x0G0wd/ajzLNTRfWl7E4XH0qqPvpbG+te9W6AT6GDKd3/a+m0
X-OriginatorOrg: interdigital.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7282.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ef76681-6708-4ed8-020f-08dd5cbcd088
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Mar 2025 14:40:17.8039 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: e351b779-f6d5-4e50-8568-80e922d180ae
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: B96rA4Ie5z6Il45SIpyHgZsqQC3Q/L5nrKZ7c6PrBtIbiTejrspjy78ahFgqJfi11y54RvdQQVimAdUHqrMxEKK3hiSweb7LHsH7MnYWtiQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB7695
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: dyh-Xmziq9zHx6TtSjJzQgntTnIYn-XCYTtPLUJ1308_1741272022
X-Mimecast-Originator: interdigital.com
Content-Language: en-US
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
Message-ID-Hash: MYJBB7RRBIN7ZIARDLPSUAAHRYCGMHLW
X-Message-ID-Hash: MYJBB7RRBIN7ZIARDLPSUAAHRYCGMHLW
X-MailFrom: hyunsik.yang@interdigital.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-avt.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "draft-ietf-avtcore-rtp-haptics@ietf.org" <draft-ietf-avtcore-rtp-haptics@ietf.org>, "avt@ietf.org" <avt@ietf.org>, Xavier De Foy <Xavier.DeFoy@InterDigital.com>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [AVTCORE] Re: My pre-WGLC review of draft-ietf-avtcore-rtp-haptics
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/fHduYYMRWNRhzaO9q80WxeiIqP8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Owner: <mailto:avt-owner@ietf.org>
List-Post: <mailto:avt@ietf.org>
List-Subscribe: <mailto:avt-join@ietf.org>
List-Unsubscribe: <mailto:avt-leave@ietf.org>

Sure, I will upload the updated version when it becomes available.

Thanks
Best regards,

-----Original Message-----
From: Jonathan Lennox <jonathan.lennox@8x8.com> 
Sent: Tuesday, March 4, 2025 3:06 PM
To: Hyunsik Yang <Hyunsik.Yang@InterDigital.com>
Cc: draft-ietf-avtcore-rtp-haptics@ietf.org; avt@ietf.org; Xavier De Foy <Xavier.DeFoy@InterDigital.com>
Subject: Re: My pre-WGLC review of draft-ietf-avtcore-rtp-haptics



> On Feb 26, 2025, at 2:44 PM, Hyunsik Yang <Hyunsik.Yang@InterDigital.com> wrote:
> 
> Dear Jonathan,
> 
> First of all, thank you for your review.
> Based on your comments, I have revised the haptic draft, and we will update it soon. Below is my brief response to your question.
> 
> Regarding FIR, we agree with you. In the next version of the haptic document, we have described how FIR is applied to the haptic codec. Regarding SDP, we have reviewed all SDP parameters again and precisely defined the purpose, usage, and attributes of each parameter.
> 
> Here is the text that we plan to add to the draft to address your points:
> 
> section 5.4
> "In some multimedia conference scenarios using an RTP video mixer (e.g., when adding or selecting a new source), it is recommended to use Full Intra Request (FIR) feedback messages with Haptic {{RFC5104}}. The purpose of the FIR message is to force an encoder to send a decoder refresh point at the earliest opportunity. In the context of haptics, an appropriate decoder refresh point is an initialization MIHS unit. The initialization MIHS unit point enables a decoder to be reset to a known state and be able decode all MIHS units following it.  "

I would say “cause the encoder” rather than “force the encoder” (the encoder could always choose to do something else, e.g. leave the session, instead), but otherwise this sounds good.

> section 7.1
> 
> When used for a unidirectional stream, the SDP parameters represent the properties of the sender (on the sending side) and of the receiver (on the receiving side). When used for a sendrecv stream, the SDP parameters represent the properties of the receiver. The receiver properties expressed using the SDP parameters 'hmpg-ver', 'hmpg-profile'  and 'hmpg-lvl' have a mandatory character, since they represent implementation capabilities. The properties expressed using the other SDP parameters are provided as recommendations for efficient data transmission and is not binding, meaning that a sender is encouraged but not required to conform to the parameters specified by the receiver.
> Any receiver compliant with {{ISO.IEC.23090-31}} must accept any stream with a compatible version, profile and level. A receiver supporting a more general profile will accept a stream corresponding to a same or less general profile (e.g., "main" is more general than "simple-parametric"). A receiver supporting a given level will accept a stream corresponding to a same or lower level. A receiver supporting a given version will accept a stream corresponding to the same version and may accept other versions. A receiver may ignore any part of a received stream, e.g., that it does not have support for rendering.

This certainly seems better!

I apologize for not responding until after the draft deadline.  Can you submit a draft as soon as the repository re-opens, at the beginning of IETF week?




> If you have any questions, please feel free to contact me!
> 
> Thanks.
> Best regards,
> 
> -----Original Message-----
> From: Jonathan Lennox <jonathan.lennox@8x8.com>
> Sent: Tuesday, February 11, 2025 5:48 PM
> To: draft-ietf-avtcore-rtp-haptics@ietf.org; avt@ietf.org
> Subject: My pre-WGLC review of draft-ietf-avtcore-rtp-haptics
> 
> In the interim meeting today, we discussed that the Haptics draft has been lingering for some time (my apologies!) and should be considered for WGLC.
> 
> In preparation for this, I reviewed the draft, and I had some comments.  I suspect these are issues that would come up in a WGLC, and so it would probably be better to get a consensus resolution before WGLC.
> 
> These are all comments as an individual, not as chair; all these decisions are subject to working group consensus, and if the WG feels I’m wrong about any of these points, that’s fine.
> 
> 
> The RTP payload proper seems well-defined.
> 
> 
> I observe that HMPG, like video codecs, supports both dependent and independent frames.  Thus, I would ask whether there should be a section in this document defining the use of RTCP feedback messages with this codec — specifically, I would suggest that the spec define that support for the Full Intra Request (FIR) feedback message MAY be negotiated, and when one is received, a sender MUST send an Independent unit at its earliest convenience.  This will make implementation of multi-party topologies much easier.
> 
> 
> The other point I would make is that I feel that the SDP offer/answer negotiation section is somewhat under-specified.  In particular, it is unclear what happens in a sendrecv media section; in that case, which payload parameters indicate receiver capabilities, and which ones indicate sender properties?
> 
> (In general for most RTP payloads, we’ve found it most useful for SDP 
> parameters to indicate receiver capabilities in this case, where each 
> side indicates its own capabilities; but this needs to be made clear.)
> 
> 
> Additionally, the document says that the payload parameters allow a receiver to “indicate a preference”.  Does this mean that these parameters are merely advisory, to indicate to the sender what information is useful, but a receiver MUST be prepared to receive any valid HMPG stream regardless of what it sent in SDP?  Or conversely, should these parameters be considered binding, such that a sender MUST conform to the parameters specified by the receiver?
> 
> Different payloads have made different choices here; generally, the philosophy that a receiver MUST be prepared to receive any valid stream makes for the easiest interop, but this can impose a lot of complexity on implementors of receivers.  In practice this decision should be based on what existing HMPG decoder libraries can do - can they consume any valid HMPG bitstream (even if they ignore parts of it that aren’t relevant to them), or do they have limitations on what they can support?
> 
> 
> Hopefully these are both relatively easy questions to answer.
> 
> Thanks!
> 
> Jonathan
> 
> [Banner]
> 
> [Banner]<https://www.interdigital.com/white_papers/spotlight-on-sustai
> nability-towards-a-greener-tv-and-video-value-chain?utm_source=email&u
> tm_medium=Email&utm_term=signature&utm_content=email&utm_campaign=sust
> ainability>
> 
> Spotlight on Sustainability: Towards a greener TV and video value 
> chain<https://www.interdigital.com/white_papers/spotlight-on-sustainab
> ility-towards-a-greener-tv-and-video-value-chain?utm_source=email&utm_
> medium=Email&utm_term=signature&utm_content=email&utm_campaign=sustain
> ability> This e-mail is intended only for the use of the individual or 
> entity to which it is addressed, and may contain information that is privileged, confidential and/or otherwise protected from disclosure to anyone other than its intended recipient. Unintended transmission shall not constitute waiver of any privilege or confidentiality obligation. If you received this communication in error, please do not review, copy or distribute it, notify me immediately by email, and delete the original message and any attachments. Unless expressly stated in this e-mail, nothing in this message or any attachment should be construed as a digital or electronic signature.