
From nobody Mon Jun  1 22:24:23 2015
Return-Path: <Akbar.Rahman@interdigital.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A89021A01F2 for <core@ietfa.amsl.com>; Mon,  1 Jun 2015 22:24:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.914
X-Spam-Level: *
X-Spam-Status: No, score=1.914 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, FH_HOST_EQ_D_D_D_D=0.765, HTML_MESSAGE=0.001, RDNS_DYNAMIC=0.982, SPF_SOFTFAIL=0.665, WEIRD_PORT=0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TSd12mT5k6Uu for <core@ietfa.amsl.com>; Mon,  1 Jun 2015 22:24:19 -0700 (PDT)
Received: from smtp-in1.interdigital.com (host-64-47-120-121.masergy.com [64.47.120.121]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E3EE41A01AE for <core@ietf.org>; Mon,  1 Jun 2015 22:24:18 -0700 (PDT)
X-ASG-Debug-ID: 1433222656-06daaa1dca14da20001-aa7cYp
Received: from NALENITE.InterDigital.com (nalenite.interdigital.com [10.2.64.253]) by smtp-in1.interdigital.com with ESMTP id VdH0XVhdnZx18TR7 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for <core@ietf.org>; Tue, 02 Jun 2015 01:24:16 -0400 (EDT)
X-Barracuda-Envelope-From: Akbar.Rahman@InterDigital.com
Received: from NABESITE.InterDigital.com ([fe80::4d8a:a889:67c2:f009]) by NALENITE.InterDigital.com ([::1]) with mapi id 14.03.0210.002; Tue, 2 Jun 2015 01:24:15 -0400
From: "Rahman, Akbar" <Akbar.Rahman@InterDigital.com>
To: "core@ietf.org WG" <core@ietf.org>
Thread-Topic: Review of draft-silverajan-core-coap-alternative-transports-07
X-ASG-Orig-Subj: Review of draft-silverajan-core-coap-alternative-transports-07
Thread-Index: AdCc7ouMhanRn1vtS2Gu483i6w92AQ==
Date: Tue, 2 Jun 2015 05:24:14 +0000
Message-ID: <36F5869FE31AB24485E5E3222C288E1F22DF7420@NABESITE.InterDigital.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.3.247.49]
x-exclaimer-md-config: bb79a19d-f711-475c-a0f9-4d93b71c94dd
Content-Type: multipart/alternative; boundary="_000_36F5869FE31AB24485E5E3222C288E1F22DF7420NABESITEInterDi_"
MIME-Version: 1.0
X-Barracuda-Connect: nalenite.interdigital.com[10.2.64.253]
X-Barracuda-Start-Time: 1433222656
X-Barracuda-Encrypted: AES128-SHA
X-Barracuda-URL: https://10.1.245.3:443/cgi-mod/mark.cgi
X-Virus-Scanned: by bsmtpd at interdigital.com
X-Barracuda-BRTS-Status: 1
X-Barracuda-Spam-Score: 0.50
X-Barracuda-Spam-Status: No, SCORE=0.50 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests=HTML_MESSAGE, WEIRD_PORT
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.18996 Rule breakdown below pts rule name              description ---- ---------------------- -------------------------------------------------- 0.50 WEIRD_PORT             URI: Uses non-standard port number for HTTP 0.00 HTML_MESSAGE           BODY: HTML included in message
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/iZ288qANnEyaAyy4crSc2QTNmVY>
Subject: [core] Review of draft-silverajan-core-coap-alternative-transports-07
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jun 2015 05:24:21 -0000

--_000_36F5869FE31AB24485E5E3222C288E1F22DF7420NABESITEInterDi_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGksDQoNCg0KSSBoYWQgYW4gYWN0aW9uIGZyb20gdGhlIGxhc3QgSUVURiBpbiBEYWxsYXMgdG8g
cmV2aWV3IHRoZSBBbHRlcm5hdGl2ZSBUcmFuc3BvcnRzIGRyYWZ0IChhcyByZWNvcmRlZCBpbiB0
aGUgRXRoZXJwYWQgbWludXRlcyk6DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQoNCmh0dHA6Ly9ldGhlcnBhZC50b29scy5pZXRmLm9yZzo5MDAw
L3Avbm90ZXMtaWV0Zi05Mi1jb3JlP3VzZU1vbm9zcGFjZUZvbnQ9dHJ1ZQ0KDQoNCioqIEFsdGVy
bmF0aXZlIFRyYW5zcG9ydHMNCjA5OjEwLSBBbHRlcm5hdGl2ZSBUcmFuc3BvcnRzIChIVCwgQlMp
DQoNCmRyYWZ0LXNpbHZlcmFqYW4tY29yZS1jb2FwLWFsdGVybmF0aXZlLXRyYW5zcG9ydHMgKEJp
bGwpDQoNCkxvbmdlciBoaXN0b3J5IGFuZCBnaXZlcyByZWNvbW1lbmRhdGlvbnMgaG93IHRvIGRl
c2lnbiBhbHRlcm5hdGl2ZSB0cmFuc3BvcnRzIGZvciBDb0FQDQoNCkhhbm5lczogRG9jdW1lbnQg
aXMgYSBnb29kIGRpc2N1c3Npb24gaW5wdXQgZm9yIHRoZSBkZXNpZ24gZGVjaXNpb25zLiBCdXQg
c2hvdWxkIHdlIHByb2R1Y2UgdGhpcyBraW5kIG9mIGRvY3VtZW50cz8NCkNhcnN0ZW4gPGhhdCBv
ZmY+OiBEb2N1bWVudCB3b3JrIG9yIHJlc3VsdD8gSXQgaXMgaW1wb3J0YW50IHRvIGluZm9ybSBw
ZW9wbGUgd2h5IHdlIGRpZCBzcGVjaWZpYyB0aGluZ3MgYXMgd2UgZGlkIHRoZW0uIFByaW5jaXBs
ZXMgY2FuIGJlIHVzZWZ1bGwgZm9yIGZ1dHVyZSB3b3JrLg0KQW5kcmV3IDxoYXQgb2ZmPjogKzEg
dG8gQ2Fyc3Rlbg0KQmFycnk6IEZvciBmaXJzdCB1c2UgY2FzZSwgYW4gYXBwZW5kaXggdG8gcmVz
dWx0IGRvY3VtZW50IHdvdWxkIGJlIGJldHRlci4NCg0KQ2Fyc3RlbjogV2hvIHdvdWxkIHJldmll
dz8gLT4gVGhvbWFzIEZvc3NhdGksIEhhbm5lcywgU2ltb24gTGVtYXksIEFrYmFyDQoNCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCkZvbGxvd2lu
ZyBhcmUgdGhlIGNvbW1lbnRzIGZyb20gbXkgcmV2aWV3IG9mDQoNCmh0dHBzOi8vdG9vbHMuaWV0
Zi5vcmcvaHRtbC9kcmFmdC1zaWx2ZXJhamFuLWNvcmUtY29hcC1hbHRlcm5hdGl2ZS10cmFuc3Bv
cnRzLTA3DQoNCg0KMS4gICAgICAgT3ZlcmFsbCwgSSB0aGluayB0aGUgZHJhZnQgaXMgaW4gZ29v
ZCBzaGFwZSBhbmQgSSB0aGluayBpdCBzaG91bGQgcHJvZ3Jlc3MuICBUaGFua3MgdG8gdGhlIEF1
dGhvcnMgZm9yIHRoZWlyIGdvb2Qgd29yayENCg0KDQoNCjIuICAgICAgIEFic3RyYWN0IC0gRWRp
dG9yaWFsOiAzcmQgc2VudGVuY2UgaW4gQWJzdHJhY3QgaXMgdG9vIGxvbmcgKGkuZS4gcnVuIG9u
IHNlbnRlbmNlKSBhbmQgc2hvdWxkIGJlIHJlLXdvcmRlZCBhbmQgcHJvYmFibHkgc3BsaXQgaW50
byBtdWx0aXBsZSBzZW50ZW5jZXMuDQoNCg0KDQozLiAgICAgICBTZWN0aW9uIDEgLSBSZWZlcmVu
Y2UgdG8g4oCcbm9uLUlQIG5ldHdvcmvigJ0gaW4gMm5kIHBhcmFncmFwaCBpcyB1bmNsZWFyIGFz
IHRoZSBwYXJhZ3JhcGggc3RhcnRzIG9mZiBieSB0YWxraW5nIGFib3V0IHRoZSDigJxJbnRlcm5l
dOKAnSAoaW1wbHlpbmcgSVAgbmV0d29ya3MpLiAgSSBhbSBhc3N1bWluZyB0aGUgcmVmZXJlbmNl
IHRvIG5vbi1JUCBuZXR3b3JrIGlzIGFib3V0IFNNUy4gIElmIHNvIHRoZW4gdGhlIHN1YmplY3Qg
bWF0dGVyIHNob3VsZCBiZSBtb3JlIHByZWNpc2VseSBpbnRyb2R1Y2VkLg0KDQoNCg0KNC4gICAg
ICAgU2VjdGlvbiAyLjEg4oCTIFNlY3Rpb24gcmVmZXJzIHRvIE9NQSBMV00yTSBzcGVjIGJlaW5n
IGRyYWZ0ZWQuICBCdXQgSSBiZWxpZXZlIHRoZSB2MS4wIHZlcnNpb24gb2YgdGhlIHNwZWMgaXMg
YWxyZWFkeSByZWxlYXNlZC4NCg0KDQoNCjUuICAgICAgIFNlY3Rpb24gMi41IOKAkyBJcyB0aGVy
ZSBhbnkgcmVhbCB2YWx1ZSBmb3IgcHV0dGluZyByZWZlcmVuY2UgdG8gc3VjaCBwdXJlbHkgc3Bl
Y3VsYXRpdmUgaWRlYXMgaW4gYW4gSW50ZXJuZXQtRHJhZnQ/ICBXaGF0IGZvciBleGFtcGxlIHdv
dWxkIGl0IG1lYW4gdG8gcnVuIENvQVAgb3ZlciBUd2l0dGVyPyAgQ2FuIFR3aXR0ZXIgcmVhbGx5
IGJlIGNhbGxlZCBhIHRyYW5zcG9ydCBjaGFubmVsPyAgRWl0aGVyIHRoZSBzZWN0aW9uIHNob3Vs
ZCBoYXZlIG1vcmUgc3VwcG9ydGluZyBkZXNjcmlwdGlvbiBvciBiZXR0ZXIgeWV0IGp1c3QgcmVt
b3ZlIGZyb20gdGhlIGRvY3VtZW50Lg0KDQoNCg0KNi4gICAgICAgU2VjdGlvbiA0LjIg4oCTIEl0
IHNob3VsZCBiZSBjbGFyaWZpZWQgaG93IHRoaXMgc2NoZW1lIGlzIGJhY2t3YXJkIGNvbXBhdGli
bGUgKG9yIG5vdCkgd2l0aCB0aGUgY3VycmVudCBVUkkgZm9ybWF0IGZvciBVRFAgc3BlY2lmaWVk
IGluIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjUyI3NlY3Rpb24tNi4xDQoNCg0K
DQo3LiAgICAgICBTZWN0aW9uIDUg4oCTIFByb3BlcnR5IDMgZGVzY3JpcHRpb24gaXMgdW5jbGVh
ci4gIEluIGZhY3QsIGNvbnRyYXJ5IHRvIHRoZSBjdXJyZW50IGRlc2NyaXB0aW9uLCB0aGVyZSBp
cyBhIG11bHRpY2FzdCBtb2RlbCBvZiByZXF1ZXN0L3Jlc3BvbnNlIGFscmVhZHkgc3VwcG9ydGVk
IGFzIGRlc2NyaWJlZCBpbiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzM5MCNzZWN0
aW9uLTIuNSAuDQoNCg0KDQo4LiAgICAgICBTZWN0aW9uIDcg4oCTIEkgdGhpbmsgaW4gZmFjdCB0
aGVyZSBhcmUgbWFueSByaXNrIGZhY3RvcnMgaW50cm9kdWNlZCB3aGVuIGNvbnNpZGVyaW5nIG5l
dyB0cmFuc3BvcnRzLiAgRm9yIGV4YW1wbGUsIHdpbGwgaXQgYmUgbWFuZGF0b3J5IHRvIGhhdmUg
YSBzZWN1cml0eSBtb2RlIHdpdGggZWFjaCBuZXcgdHJhbnNwb3J0IChlLmcgVExTIGZvciBUQ1Ap
PyAgU28gdGhpcyBzZWN0aW9uIG5lZWRzIHNpZ25pZmljYW50IHVwZGF0aW5nLg0KDQoNCg0KOS4g
ICAgICAgR2VuZXJhbCDigJMgSSB3YXMgbG9va2luZyBmb3Igc29tZSBndWlkYW5jZSBvbiBob3cg
dG8gaW50ZXJwcmV0IENvcmUgTGluayBGb3JtYXQgKFJGQyA2NjkwKSB3aXRoIEFsdGVybmF0ZSB0
cmFuc3BvcnRzLCBidXQgZGlkbuKAmXQgc2VlIGl0LiAgRG8geW91IHRoaW5rIGl0IGlzIHdvcnRo
IGNvdmVyaW5nPw0KDQoNCg0KQmVzdCBSZWdhcmRzLA0KDQoNCkFrYmFyDQoNCg0K

--_000_36F5869FE31AB24485E5E3222C288E1F22DF7420NABESITEInterDi_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjwhLS0gVGVtcGxhdGUgZ2VuZXJhdGVkIGJ5IEV4Y2xh
aW1lciBTaWduYXR1cmUgTWFuYWdlciBFeGNoYW5nZSBFZGl0aW9uIG9uIDAxOjI0OjE1IFR1ZXNk
YXksIDIgSnVuZSAyMDE1IC0tPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj5Q
LkltcHJpbnRVbmlxdWVJRCB7DQoJTUFSR0lOOiAwY20gMGNtIDBwdA0KfQ0KTEkuSW1wcmludFVu
aXF1ZUlEIHsNCglNQVJHSU46IDBjbSAwY20gMHB0DQp9DQpESVYuSW1wcmludFVuaXF1ZUlEIHsN
CglNQVJHSU46IDBjbSAwY20gMHB0DQp9DQpUQUJMRS5JbXByaW50VW5pcXVlSURUYWJsZSB7DQoJ
TUFSR0lOOiAwY20gMGNtIDBwdA0KfQ0KRElWLlNlY3Rpb24xIHsNCglwYWdlOiBTZWN0aW9uMQ0K
fQ0KPC9zdHlsZT4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWljcm9zb2Z0IFdv
cmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxlPjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlv
bnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3Nl
LTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGli
cmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlv
bnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2lu
OjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250
LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5r
DQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjojMDU2M0MxOw0KCXRleHQtZGVjb3Jh
dGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJ
e21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjojOTU0RjcyOw0KCXRleHQtZGVjb3JhdGlv
bjp1bmRlcmxpbmU7fQ0KcC5Nc29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBk
aXYuTXNvTGlzdFBhcmFncmFwaA0KCXttc28tc3R5bGUtcHJpb3JpdHk6MzQ7DQoJbWFyZ2luLXRv
cDowaW47DQoJbWFyZ2luLXJpZ2h0OjBpbjsNCgltYXJnaW4tYm90dG9tOjBpbjsNCgltYXJnaW4t
bGVmdDouNWluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0K
CWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE3DQoJ
e21zby1zdHlsZS10eXBlOnBlcnNvbmFsLWNvbXBvc2U7DQoJZm9udC1mYW1pbHk6IkNhbGlicmki
LHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLmF1dGhvci1hLXB6NzJ6ejgz
eno4NHp5ejcyeno3NXp6Nzh6a3o3NHp6NzJ6ejkweno2OXo3ejgzeno3N3oNCgl7bXNvLXN0eWxl
LW5hbWU6YXV0aG9yLWEtcHo3Mnp6ODN6ejg0enl6NzJ6ejc1eno3OHprejc0eno3Mnp6OTB6ejY5
ejd6ODN6ejc3ejt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25s
eTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQpAcGFnZSBXb3JkU2VjdGlv
bjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGlu
O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZp
bml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxpc3QtaWQ6NDQwMzQ3Mjg5Ow0KCW1zby1saXN0
LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczotNzIyNjc0OTI4IDY3Njk4NzAz
IDY3Njk4NzEzIDY3Njk4NzE1IDY3Njk4NzAzIDY3Njk4NzEzIDY3Njk4NzE1IDY3Njk4NzAzIDY3
Njk4NzEzIDY3Njk4NzE1O30NCkBsaXN0IGwwOmxldmVsMQ0KCXttc28tbGV2ZWwtdGFiLXN0b3A6
bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4y
NWluO30NCkBsaXN0IGwwOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1s
b3dlcjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0
aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluO30NCkBsaXN0IGwwOmxldmVsMw0KCXttc28t
bGV2ZWwtbnVtYmVyLWZvcm1hdDpyb21hbi1sb3dlcjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9u
ZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOnJpZ2h0Ow0KCXRleHQtaW5kZW50Oi05LjBw
dDt9DQpAbGlzdCBsMDpsZXZlbDQNCgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjt9DQpAbGlzdCBs
MDpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjt9DQpAbGlzdCBsMDpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1m
b3JtYXQ6cm9tYW4tbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpyaWdodDsNCgl0ZXh0LWluZGVudDotOS4wcHQ7fQ0KQGxpc3QgbDA6
bGV2ZWw3DQoJe21zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47fQ0KQGxpc3QgbDA6bGV2ZWw4DQoJe21z
by1sZXZlbC1udW1iZXItZm9ybWF0OmFscGhhLWxvd2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDpu
b25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1
aW47fQ0KQGxpc3QgbDA6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OnJvbWFuLWxv
d2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRp
b246cmlnaHQ7DQoJdGV4dC1pbmRlbnQ6LTkuMHB0O30NCm9sDQoJe21hcmdpbi1ib3R0b206MGlu
O30NCnVsDQoJe21hcmdpbi1ib3R0b206MGluO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNv
IDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAv
Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxh
eW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwv
bzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVO
LVVTIiBsaW5rPSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3MiI+DQo8cD48L3A+DQo8ZGl2IGNsYXNz
PSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGksPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSBo
YWQgYW4gYWN0aW9uIGZyb20gdGhlIGxhc3QgSUVURiBpbiBEYWxsYXMgdG8gcmV2aWV3IHRoZSBB
bHRlcm5hdGl2ZSBUcmFuc3BvcnRzIGRyYWZ0IChhcyByZWNvcmRlZCBpbiB0aGUgRXRoZXJwYWQg
bWludXRlcyk6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxhIGhy
ZWY9Imh0dHA6Ly9ldGhlcnBhZC50b29scy5pZXRmLm9yZzo5MDAwL3Avbm90ZXMtaWV0Zi05Mi1j
b3JlP3VzZU1vbm9zcGFjZUZvbnQ9dHJ1ZSI+aHR0cDovL2V0aGVycGFkLnRvb2xzLmlldGYub3Jn
OjkwMDAvcC9ub3Rlcy1pZXRmLTkyLWNvcmU/dXNlTW9ub3NwYWNlRm9udD10cnVlPC9hPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxMi4wcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPioqIEFsdGVybmF0aXZl
IFRyYW5zcG9ydHM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibGluZS1oZWlnaHQ6MTIuMHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4wOToxMC0gQWx0ZXJuYXRpdmUgVHJh
bnNwb3J0cyAoSFQsIEJTKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxMi4wcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJsaW5lLWhlaWdodDoxMi4w
cHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmll
ciBOZXcmcXVvdDsiPmRyYWZ0LXNpbHZlcmFqYW4tY29yZS1jb2FwLWFsdGVybmF0aXZlLXRyYW5z
cG9ydHMgKEJpbGwpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9ImxpbmUtaGVpZ2h0OjEyLjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtm
b250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEyLjBwdCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5l
dyZxdW90OyI+TG9uZ2VyIGhpc3RvcnkgYW5kIGdpdmVzIHJlY29tbWVuZGF0aW9ucyBob3cgdG8g
ZGVzaWduIGFsdGVybmF0aXZlIHRyYW5zcG9ydHMgZm9yIENvQVA8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGluZS1oZWlnaHQ6MTIuMHB0Ij48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1
b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibGluZS1oZWlnaHQ6MTIuMHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij5IYW5uZXM6IERvY3VtZW50IGlzIGEg
Z29vZCBkaXNjdXNzaW9uIGlucHV0IGZvciB0aGUgZGVzaWduIGRlY2lzaW9ucy4gQnV0IHNob3Vs
ZCB3ZSBwcm9kdWNlIHRoaXMga2luZCBvZiBkb2N1bWVudHM/PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEyLjBwdCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90
OyI+Q2Fyc3RlbiAmbHQ7aGF0IG9mZiZndDs6IERvY3VtZW50IHdvcmsgb3IgcmVzdWx0PyBJdCBp
cyBpbXBvcnRhbnQgdG8gaW5mb3JtIHBlb3BsZSB3aHkgd2UgZGlkIHNwZWNpZmljIHRoaW5ncyBh
cyB3ZSBkaWQgdGhlbS4gUHJpbmNpcGxlcyBjYW4gYmUgdXNlZnVsbCBmb3IgZnV0dXJlDQogd29y
ay48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibGlu
ZS1oZWlnaHQ6MTIuMHB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij5BbmRyZXcgJmx0O2hhdCBvZmYmZ3Q7OiAmIzQzOzEg
dG8gQ2Fyc3RlbjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJsaW5lLWhlaWdodDoxMi4wcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPkJhcnJ5OiBGb3IgZmlyc3QgdXNlIGNh
c2UsIGFuIGFwcGVuZGl4IHRvIHJlc3VsdCBkb2N1bWVudCB3b3VsZCBiZSBiZXR0ZXIuPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0
OjEyLjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtD
b3VyaWVyIE5ldyZxdW90OyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEyLjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Q2Fyc3Rlbjog
V2hvIHdvdWxkIHJldmlldz8gLSZndDsgVGhvbWFzIEZvc3NhdGksIEhhbm5lcywgU2ltb24gTGVt
YXksIEFrYmFyPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9ImxpbmUtaGVpZ2h0OjEyLjBwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250
LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS08bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Rm9sbG93aW5nIGFy
ZSB0aGUgY29tbWVudHMgZnJvbSBteSByZXZpZXcgb2Y8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXNpbHZlcmFqYW4tY29y
ZS1jb2FwLWFsdGVybmF0aXZlLXRyYW5zcG9ydHMtMDciPmh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcv
aHRtbC9kcmFmdC1zaWx2ZXJhamFuLWNvcmUtY29hcC1hbHRlcm5hdGl2ZS10cmFuc3BvcnRzLTA3
PC9hPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0u
MjVpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4g
c3R5bGU9Im1zby1saXN0Oklnbm9yZSI+MS48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtU
aW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
Ow0KPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+T3ZlcmFsbCwgSSB0aGluayB0aGUgZHJhZnQgaXMg
aW4gZ29vZCBzaGFwZSBhbmQgSSB0aGluayBpdCBzaG91bGQgcHJvZ3Jlc3MuJm5ic3A7IFRoYW5r
cyB0byB0aGUgQXV0aG9ycyBmb3IgdGhlaXIgZ29vZCB3b3JrITxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAg
bGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJ
Z25vcmUiPjIuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1
b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+
PCFbZW5kaWZdPkFic3RyYWN0IC0gRWRpdG9yaWFsOiAzPHN1cD5yZDwvc3VwPiBzZW50ZW5jZSBp
biBBYnN0cmFjdCBpcyB0b28gbG9uZyAoaS5lLiBydW4gb24gc2VudGVuY2UpIGFuZCBzaG91bGQg
YmUgcmUtd29yZGVkIGFuZCBwcm9iYWJseSBzcGxpdCBpbnRvIG11bHRpcGxlIHNlbnRlbmNlcy48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48bzpwPiZuYnNwOzwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRlbnQ6
LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtpZiAhc3VwcG9ydExpc3RzXT48c3Bh
biBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4zLjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90
O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7DQo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5TZWN0aW9uIDEgLSBSZWZlcmVuY2UgdG8g4oCc
bm9uLUlQIG5ldHdvcmvigJ0gaW4gMjxzdXA+bmQ8L3N1cD4gcGFyYWdyYXBoIGlzIHVuY2xlYXIg
YXMgdGhlIHBhcmFncmFwaCBzdGFydHMgb2ZmIGJ5IHRhbGtpbmcgYWJvdXQgdGhlIOKAnEludGVy
bmV04oCdIChpbXBseWluZyBJUCBuZXR3b3JrcykuJm5ic3A7IEkgYW0gYXNzdW1pbmcgdGhlIHJl
ZmVyZW5jZSB0byBub24tSVAgbmV0d29yayBpcyBhYm91dCBTTVMuJm5ic3A7IElmIHNvDQogdGhl
biB0aGUgc3ViamVjdCBtYXR0ZXIgc2hvdWxkIGJlIG1vcmUgcHJlY2lzZWx5IGludHJvZHVjZWQu
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50
Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNw
YW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+NC48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVv
dDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOw0KPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+U2VjdGlvbiAyLjEg4oCTIFNlY3Rpb24gcmVm
ZXJzIHRvIE9NQSBMV00yTSBzcGVjIGJlaW5nIGRyYWZ0ZWQuJm5ic3A7IEJ1dCBJIGJlbGlldmUg
dGhlIHYxLjAgdmVyc2lvbiBvZiB0aGUgc3BlYyBpcyBhbHJlYWR5IHJlbGVhc2VkLjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47
bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxl
PSJtc28tbGlzdDpJZ25vcmUiPjUuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwv
c3Bhbj48L3NwYW4+PCFbZW5kaWZdPlNlY3Rpb24gMi41IOKAkyBJcyB0aGVyZSBhbnkgcmVhbCB2
YWx1ZSBmb3IgcHV0dGluZyByZWZlcmVuY2UgdG8gc3VjaCBwdXJlbHkgc3BlY3VsYXRpdmUgaWRl
YXMgaW4gYW4gSW50ZXJuZXQtRHJhZnQ/Jm5ic3A7IFdoYXQgZm9yIGV4YW1wbGUgd291bGQgaXQg
bWVhbiB0byBydW4gQ29BUCBvdmVyIFR3aXR0ZXI/Jm5ic3A7IENhbiBUd2l0dGVyIHJlYWxseSBi
ZSBjYWxsZWQgYSB0cmFuc3BvcnQgY2hhbm5lbD8mbmJzcDsgRWl0aGVyIHRoZQ0KIHNlY3Rpb24g
c2hvdWxkIGhhdmUgbW9yZSBzdXBwb3J0aW5nIGRlc2NyaXB0aW9uIG9yIGJldHRlciB5ZXQganVz
dCByZW1vdmUgZnJvbSB0aGUgZG9jdW1lbnQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
TGlzdFBhcmFncmFwaCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBh
cmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZv
MSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+Ni48
c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+
U2VjdGlvbiA0LjIg4oCTIEl0IHNob3VsZCBiZSBjbGFyaWZpZWQgaG93IHRoaXMgc2NoZW1lIGlz
IGJhY2t3YXJkIGNvbXBhdGlibGUgKG9yIG5vdCkgd2l0aCB0aGUgY3VycmVudCBVUkkgZm9ybWF0
IGZvciBVRFAgc3BlY2lmaWVkIGluDQo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0
bWwvcmZjNzI1MiNzZWN0aW9uLTYuMSI+aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcy
NTIjc2VjdGlvbi02LjE8L2E+DQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFy
YWdyYXBoIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBo
IiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtp
ZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj43LjxzcGFuIHN0
eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT5TZWN0aW9u
IDUg4oCTIFByb3BlcnR5IDMgZGVzY3JpcHRpb24gaXMgdW5jbGVhci4mbmJzcDsgSW4gZmFjdCwg
Y29udHJhcnkgdG8gdGhlIGN1cnJlbnQgZGVzY3JpcHRpb24sIHRoZXJlIGlzIGEgbXVsdGljYXN0
IG1vZGVsIG9mIHJlcXVlc3QvcmVzcG9uc2UgYWxyZWFkeSBzdXBwb3J0ZWQgYXMgZGVzY3JpYmVk
IGluDQo8YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzM5MCNzZWN0aW9u
LTIuNSI+aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzczOTAjc2VjdGlvbi0yLjU8L2E+
IC4mbmJzcDsNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0
ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0
TGlzdHNdPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjguPHNwYW4gc3R5bGU9ImZvbnQ6
Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPlNlY3Rpb24gNyDigJMgSSB0
aGluayBpbiBmYWN0IHRoZXJlIGFyZSBtYW55IHJpc2sgZmFjdG9ycyBpbnRyb2R1Y2VkIHdoZW4g
Y29uc2lkZXJpbmcgbmV3IHRyYW5zcG9ydHMuJm5ic3A7IEZvciBleGFtcGxlLCB3aWxsIGl0IGJl
IG1hbmRhdG9yeSB0byBoYXZlIGEgc2VjdXJpdHkgbW9kZSB3aXRoIGVhY2ggbmV3IHRyYW5zcG9y
dCAoZS5nIFRMUyBmb3IgVENQKT8mbmJzcDsgU28gdGhpcyBzZWN0aW9uIG5lZWRzIHNpZ25pZmlj
YW50DQogdXBkYXRpbmcuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFw
aCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5
bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+PCFbaWYgIXN1
cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+OS48c3BhbiBzdHlsZT0i
Zm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+R2VuZXJhbCDigJMg
SSB3YXMgbG9va2luZyBmb3Igc29tZSBndWlkYW5jZSBvbiBob3cgdG8gaW50ZXJwcmV0IENvcmUg
TGluayBGb3JtYXQgKFJGQyA2NjkwKSB3aXRoIEFsdGVybmF0ZSB0cmFuc3BvcnRzLCBidXQgZGlk
buKAmXQgc2VlIGl0LiZuYnNwOyBEbyB5b3UgdGhpbmsgaXQgaXMgd29ydGggY292ZXJpbmc/PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPkJlc3QgUmVnYXJkcyw8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86
cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Ba2JhcjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImxpbmUtaGVpZ2h0OjEyLjBwdCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZx
dW90OyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxwPjwvcD4NCjwvYm9keT4NCjwvaHRtbD4N
Cg==

--_000_36F5869FE31AB24485E5E3222C288E1F22DF7420NABESITEInterDi_--


From nobody Wed Jun  3 04:19:38 2015
Return-Path: <prvs=589f0a6f0=abhijan.bhattacharyya@tcs.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 401201A1B88 for <core@ietfa.amsl.com>; Wed,  3 Jun 2015 04:19:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.6
X-Spam-Level: 
X-Spam-Status: No, score=-3.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DRUGS_MUSCLE=0.01, HTML_MESSAGE=0.001, J_CHICKENPOX_12=0.6, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bb9rUk41IiYZ for <core@ietfa.amsl.com>; Wed,  3 Jun 2015 04:19:33 -0700 (PDT)
Received: from inkolg01.tcs.com (inkolg01.tcs.com [121.241.215.10]) by ietfa.amsl.com (Postfix) with ESMTP id CF8271A1B83 for <core@ietf.org>; Wed,  3 Jun 2015 04:19:31 -0700 (PDT)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2CtBAAn4G5V/wQXEqxbgkWBH16HQq51iXcBC4V1AoISAQEBAQEBgQuEIgECewIbBwYEAwECKE0HAhkICRKIH7VGAQGkbQEBAQEBBQEBAQEBARyFOWWFJYQ7Og0EDYInTR2BFgWGa4Rsa4sJiBM+gzWSI4QjZwGCRgEBAQ
X-IPAS-Result: A2CtBAAn4G5V/wQXEqxbgkWBH16HQq51iXcBC4V1AoISAQEBAQEBgQuEIgECewIbBwYEAwECKE0HAhkICRKIH7VGAQGkbQEBAQEBBQEBAQEBARyFOWWFJYQ7Og0EDYInTR2BFgWGa4Rsa4sJiBM+gzWSI4QjZwGCRgEBAQ
X-IronPort-AV: E=Sophos;i="5.13,546,1427740200"; d="scan'208";a="681962697"
To: core@ietf.org
MIME-Version: 1.0
X-KeepSent: CAAC0EDF:AD1B7512-65257E59:003D0F94; type=4; name=$KeepSent
X-Mailer: IBM Notes Release 9.0 March 08, 2013
Message-ID: <OFCAAC0EDF.AD1B7512-ON65257E59.003D0F94-65257E59.003E34DA@tcs.com>
From: Abhijan Bhattacharyya <abhijan.bhattacharyya@tcs.com>
Date: Wed, 3 Jun 2015 16:49:26 +0530
X-MIMETrack: Serialize by Router on INKOLM102/TCS(Release 9.0.1FP2HF609 | December 16, 2014) at 06/03/2015 16:49:27, Serialize complete at 06/03/2015 16:49:27
Content-Type: multipart/alternative; boundary="=_alternative 003E348265257E59_="
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/F6qc2ARNWXdEM3AMFKbaQRm-i5A>
Cc: Arpan Pal <arpan.pal@tcs.com>
Subject: [core] Fw: New Version Notification for draft-tcs-coap-no-response-option-11.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 11:19:37 -0000

This is a multipart message in MIME format.
--=_alternative 003E348265257E59_=
Content-Type: text/plain; charset="US-ASCII"

Dear all,
A new version of the draft for proposed No-Response option has been 
uploaded. The major highlights are (thanks to some important inputs from 
Carsten and Klaus ):
1. The No-Response option now has a number assigned from IANA. The option 
number is 284. (http://www.iana.org/assignments/core-parameters). So, the 
option-definition table has been updated accordingly.
   +--------+---+---+---+---+-------------+--------+--------+---------+
   | Number | C | U | N | R |   Name      | Format | Length | Default |
   +--------+---+---+---+---+-------------+--------+--------+---------+
   |   284  |   |   | X |   | No-Response |  uint  |  0-1   |    0    |
   +--------+---+---+---+---+-------------+--------+--------+---------+

2. The option values has changed and the convention for assigning the 
values has been clearly explained in Section 2.1:

This option is defined as a bit-map (Table 3) to achieve granular
   suppression.

   +-------+-----------------------+---------------------------------+
   | Value | Binary Representation |          Description            |
   +-------+-----------------------+---------------------------------+
   |   0   |      <empty>          |       Allow all responses.      |
   +-------+-----------------------+---------------------------------+
   |   2   |      00000010         |       Suppress 2.xx responses.  |
   +-------+-----------------------+---------------------------------+
   |   8   |      00001000         |       Suppress 4.xx responses.  |
   +-------+-----------------------+---------------------------------+
   |   16  |      00010000         |       Suppress 5.xx responses.  |
   +-------+-----------------------+---------------------------------+
   |   127 |      01111111         |       Suppress all responses.   |
   +-------+-----------------------+---------------------------------+
                          Table 3: Option values


   The conventions used in deciding the option values are:

   1. To suppress an individual class: Set bit number (n-1) starting
   from the LSB (bit number 0) to suppress all responses belonging to
   class n.xx. So,

             option value to suppress n.xx class = 2**(n-1).



   2. To suppress combination of classes: Set each corresponding bit
   according to point 1 above. Example: The option value will be 18
   (binary: 00010010) to suppress both 2.xx and 5.xx responses. This is
   essentially bitwise OR of the corresponding individual values for
   suppressing 2.xx and 5.xx. At present the "CoAP Response Codes"
   registry (Ref. Section 12.1.2 of [RFC7252]) defines only 2.xx, 4.xx
   and 5.xx responses.

   So, an option value of 22 (binary: 00010110) will effectively
   suppress all currently defined response codes.


   3. To suppress all possible responses: The maximum reserved response
   code for CoAP is 7.31 (Ref. Section 12.1 of [RFC7252]). So, setting
   bit positions 0-6 will suppress all responses according to the
   combination operation defined in point 2 above. Hence, the value to
   block all present and possible future responses is: 2**7 - 1 = 127.


Now that the No-Response option has got a number from IANA, may we request 
the implementers to include this option in respective implementations and 
share their experiences/ comments (if any).
Looking forward to meet you all in Prague.

Regards
Abhijan Bhattacharyya
Associate Consultant
Scientist, Innovation Lab, Kolkata, India
Tata Consultancy Services
Mailto: abhijan.bhattacharyya@tcs.com
Website: http://www.tcs.com
____________________________________________
Experience certainty.   IT Services
                        Business Solutions
                        Consulting
____________________________________________
----- Forwarded by Abhijan Bhattacharyya/KOL/TCS on 06/03/2015 04:36 PM 
-----

From:   internet-drafts@ietf.org
To:     "Soma Bandyopadhyay" <soma.bandyopadhyay@tcs.com>, "Abhijan 
Bhattacharyya" <abhijan.bhattacharyya@tcs.com>, "Arpan Pal" 
<arpan.pal@tcs.com>, "Arpan Pal" <arpan.pal@tcs.com>, "Soma Bandyopadhyay" 
<soma.bandyopadhyay@tcs.com>, "Abhijan Bhattacharyya" 
<abhijan.bhattacharyya@tcs.com>
Date:   06/03/2015 04:34 PM
Subject:        New Version Notification for 
draft-tcs-coap-no-response-option-11.txt




A new version of I-D, draft-tcs-coap-no-response-option-11.txt
has been successfully submitted by Abhijan Bhattacharyya and posted to the
IETF repository.

Name:                            draft-tcs-coap-no-response-option
Revision:                11
Title:                           CoAP option for no server-response
Document date:           2015-06-03
Group:                           Individual Submission
Pages:                           17
URL:            
https://www.ietf.org/internet-drafts/draft-tcs-coap-no-response-option-11.txt

Status:         
https://datatracker.ietf.org/doc/draft-tcs-coap-no-response-option/
Htmlized:       
https://tools.ietf.org/html/draft-tcs-coap-no-response-option-11
Diff:           
https://www.ietf.org/rfcdiff?url2=draft-tcs-coap-no-response-option-11

Abstract:
   There can be M2M scenarios where responses from server against
   requests from client might be considered redundant. This kind of
   open-loop exchange (with no response path from the server to the
   client) may be desired to minimize resource consumption in
   constrained systems while simultaneously updating a bulk of
   resources or updating a resource with a very high frequency. CoAP
   already provides a non-confirmable (NON) mode of message exchange
   where the server end-point does not respond with ACK. However,
   obeying the request/response semantics, the server end-point
   responds back with a status code indicating "the result of the
   attempt to understand and satisfy the request".

   This draft introduces a header option for CoAP called 'No-Response'.
   Using this option the client explicitly tells the server to suppress
   responses against the particular request. This option also provides
   granular control to enable suppression of a particular class or a
   combination of response-classes. This option may be effective for
   both unicast and multicast requests. Present draft also discusses
   few exemplary applications which benefit from this option.

  


Please note that it may take a couple of minutes from the time of 
submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat

=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain 
confidential or privileged information. If you are 
not the intended recipient, any dissemination, use, 
review, distribution, printing or copying of the 
information contained in this e-mail message 
and/or attachments to it are strictly prohibited. If 
you have received this communication in error, 
please notify us by reply e-mail or telephone and 
immediately and permanently delete the message 
and any attachments. Thank you



--=_alternative 003E348265257E59_=
Content-Type: text/html; charset="US-ASCII"

<font size=2 face="sans-serif">Dear all,</font>
<br><font size=2 face="sans-serif">A new version of the draft for proposed
No-Response option has been uploaded. The major highlights are (thanks
to some important inputs from Carsten and Klaus ):</font>
<br><font size=2 face="sans-serif">1. The No-Response option now has a
number assigned from IANA. The option number is 284. (</font><a href="http://www.iana.org/assignments/core-parameters"><font size=2 color=blue face="sans-serif">http://www.iana.org/assignments/core-parameters</font></a><font size=2 face="sans-serif">).
So, the option-definition table has been updated accordingly.</font>
<br><tt><font size=3>&nbsp; &nbsp;+--------+---+---+---+---+-------------+--------+--------+---------+<br>
 &nbsp; | Number | C | U | N | R | &nbsp; Name &nbsp; &nbsp; &nbsp;| Format
| Length | Default |<br>
 &nbsp; +--------+---+---+---+---+-------------+--------+--------+---------+<br>
 &nbsp; | &nbsp; 284 &nbsp;| &nbsp; | &nbsp; | X | &nbsp; | No-Response
| &nbsp;uint &nbsp;| &nbsp;0-1 &nbsp; | &nbsp; &nbsp;0 &nbsp; &nbsp;|<br>
 &nbsp; +--------+---+---+---+---+-------------+--------+--------+---------+</font></tt>
<br><font size=2 face="sans-serif"><br>
2. The option values has changed and the convention for assigning the values
has been clearly explained in Section 2.1:</font>
<br>
<br><tt><font size=3>This option is defined as a bit-map (Table 3) to achieve
granular<br>
 &nbsp; suppression.<br>
<br>
 &nbsp; +-------+-----------------------+---------------------------------+<br>
 &nbsp; | Value | Binary Representation | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Description
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|<br>
 &nbsp; +-------+-----------------------+---------------------------------+<br>
 &nbsp; | &nbsp; 0 &nbsp; | &nbsp; &nbsp; &nbsp;&lt;empty&gt; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; Allow all responses. &nbsp;
&nbsp; &nbsp;|<br>
 &nbsp; +-------+-----------------------+---------------------------------+<br>
 &nbsp; | &nbsp; 2 &nbsp; | &nbsp; &nbsp; &nbsp;00000010 &nbsp; &nbsp;
&nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; Suppress 2.xx responses. &nbsp;|<br>
 &nbsp; +-------+-----------------------+---------------------------------+<br>
 &nbsp; | &nbsp; 8 &nbsp; | &nbsp; &nbsp; &nbsp;00001000 &nbsp; &nbsp;
&nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; Suppress 4.xx responses. &nbsp;|<br>
 &nbsp; +-------+-----------------------+---------------------------------+<br>
 &nbsp; | &nbsp; 16 &nbsp;| &nbsp; &nbsp; &nbsp;00010000 &nbsp; &nbsp;
&nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; Suppress 5.xx responses. &nbsp;|<br>
 &nbsp; +-------+-----------------------+---------------------------------+<br>
 &nbsp; | &nbsp; 127 | &nbsp; &nbsp; &nbsp;01111111 &nbsp; &nbsp; &nbsp;
&nbsp; | &nbsp; &nbsp; &nbsp; Suppress all responses. &nbsp; |<br>
 &nbsp; +-------+-----------------------+---------------------------------+<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp;Table 3: Option values<br>
<br>
<br>
 &nbsp; The conventions used in deciding the option values are:<br>
<br>
 &nbsp; 1. To suppress an individual class: Set bit number (n-1) starting<br>
 &nbsp; from the LSB (bit number 0) to suppress all responses belonging
to<br>
 &nbsp; class n.xx. So,<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; option value to suppress n.xx
class = 2**(n-1).<br>
<br>
<br>
<br>
 &nbsp; 2. To suppress combination of classes: Set each corresponding bit<br>
 &nbsp; according to point 1 above. Example: The option value will be 18<br>
 &nbsp; (binary: 00010010) to suppress both 2.xx and 5.xx responses. This
is<br>
 &nbsp; essentially bitwise OR of the corresponding individual values for<br>
 &nbsp; suppressing 2.xx and 5.xx. At present the &quot;CoAP Response Codes&quot;<br>
 &nbsp; registry (Ref. Section 12.1.2 of [RFC7252]) defines only 2.xx,
4.xx<br>
 &nbsp; and 5.xx responses.<br>
<br>
 &nbsp; So, an option value of 22 (binary: 00010110) will effectively<br>
 &nbsp; suppress all currently defined response codes.<br>
<br>
<br>
 &nbsp; 3. To suppress all possible responses: The maximum reserved response<br>
 &nbsp; code for CoAP is 7.31 (Ref. Section 12.1 of [RFC7252]). So, setting<br>
 &nbsp; bit positions 0-6 will suppress all responses according to the<br>
 &nbsp; combination operation defined in point 2 above. Hence, the value
to<br>
 &nbsp; block all present and possible future responses is: 2**7 - 1 =
127.</font></tt>
<br><font size=2 face="sans-serif"><br>
</font>
<br><font size=2 face="sans-serif">Now that the No-Response option has
got a number from IANA, may we request the implementers to include this
option in respective implementations and share their experiences/ comments
(if any).</font>
<br><font size=2 face="sans-serif">Looking forward to meet you all in Prague.</font>
<br>
<br><font size=2 face="sans-serif">Regards<br>
Abhijan Bhattacharyya<br>
Associate Consultant<br>
Scientist, Innovation Lab, Kolkata, India<br>
Tata Consultancy Services<br>
Mailto: abhijan.bhattacharyya@tcs.com<br>
Website: </font><a href=http://www.tcs.com/><font size=2 face="sans-serif">http://www.tcs.com</font></a><font size=2 face="sans-serif"><br>
____________________________________________<br>
Experience certainty. &nbsp; &nbsp; &nbsp; &nbsp;IT Services<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;Business Solutions<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;Consulting<br>
____________________________________________</font>
<br><font size=1 color=#800080 face="sans-serif">----- Forwarded by Abhijan
Bhattacharyya/KOL/TCS on 06/03/2015 04:36 PM -----</font>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">internet-drafts@ietf.org</font>
<br><font size=1 color=#5f5f5f face="sans-serif">To: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">&quot;Soma Bandyopadhyay&quot;
&lt;soma.bandyopadhyay@tcs.com&gt;, &quot;Abhijan Bhattacharyya&quot; &lt;abhijan.bhattacharyya@tcs.com&gt;,
&quot;Arpan Pal&quot; &lt;arpan.pal@tcs.com&gt;, &quot;Arpan Pal&quot;
&lt;arpan.pal@tcs.com&gt;, &quot;Soma Bandyopadhyay&quot; &lt;soma.bandyopadhyay@tcs.com&gt;,
&quot;Abhijan Bhattacharyya&quot; &lt;abhijan.bhattacharyya@tcs.com&gt;</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">06/03/2015 04:34 PM</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject: &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=1 face="sans-serif">New Version
Notification for draft-tcs-coap-no-response-option-11.txt</font>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2><br>
A new version of I-D, draft-tcs-coap-no-response-option-11.txt<br>
has been successfully submitted by Abhijan Bhattacharyya and posted to
the<br>
IETF repository.<br>
<br>
Name: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;draft-tcs-coap-no-response-option<br>
Revision: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
11<br>
Title: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CoAP
option for no server-response<br>
Document date: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; 2015-06-03<br>
Group: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Individual
Submission<br>
Pages: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;17<br>
URL: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font></tt><a href="https://www.ietf.org/internet-drafts/draft-tcs-coap-no-response-option-11.txt"><tt><font size=2>https://www.ietf.org/internet-drafts/draft-tcs-coap-no-response-option-11.txt</font></tt></a><tt><font size=2><br>
Status: &nbsp; &nbsp; &nbsp; &nbsp; </font></tt><a href="https://datatracker.ietf.org/doc/draft-tcs-coap-no-response-option/"><tt><font size=2>https://datatracker.ietf.org/doc/draft-tcs-coap-no-response-option/</font></tt></a><tt><font size=2><br>
Htmlized: &nbsp; &nbsp; &nbsp; </font></tt><a href="https://tools.ietf.org/html/draft-tcs-coap-no-response-option-11"><tt><font size=2>https://tools.ietf.org/html/draft-tcs-coap-no-response-option-11</font></tt></a><tt><font size=2><br>
Diff: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </font></tt><a href="https://www.ietf.org/rfcdiff?url2=draft-tcs-coap-no-response-option-11"><tt><font size=2>https://www.ietf.org/rfcdiff?url2=draft-tcs-coap-no-response-option-11</font></tt></a><tt><font size=2><br>
<br>
Abstract:<br>
 &nbsp; There can be M2M scenarios where responses from server against<br>
 &nbsp; requests from client might be considered redundant. This kind of<br>
 &nbsp; open-loop exchange (with no response path from the server to the<br>
 &nbsp; client) may be desired to minimize resource consumption in<br>
 &nbsp; constrained systems while simultaneously updating a bulk of<br>
 &nbsp; resources or updating a resource with a very high frequency. CoAP<br>
 &nbsp; already provides a non-confirmable (NON) mode of message exchange<br>
 &nbsp; where the server end-point does not respond with ACK. However,<br>
 &nbsp; obeying the request/response semantics, the server end-point<br>
 &nbsp; responds back with a status code indicating &quot;the result of
the<br>
 &nbsp; attempt to understand and satisfy the request&quot;.<br>
<br>
 &nbsp; This draft introduces a header option for CoAP called 'No-Response'.<br>
 &nbsp; Using this option the client explicitly tells the server to suppress<br>
 &nbsp; responses against the particular request. This option also provides<br>
 &nbsp; granular control to enable suppression of a particular class or
a<br>
 &nbsp; combination of response-classes. This option may be effective for<br>
 &nbsp; both unicast and multicast requests. Present draft also discusses<br>
 &nbsp; few exemplary applications which benefit from this option.<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
<br>
<br>
Please note that it may take a couple of minutes from the time of submission<br>
until the htmlized version and diff are available at tools.ietf.org.<br>
<br>
The IETF Secretariat<br>
<br>
</font></tt><p>=====-----=====-----=====<br>
Notice: The information contained in this e-mail<br>
message and/or attachments to it may contain <br>
confidential or privileged information. If you are <br>
not the intended recipient, any dissemination, use, <br>
review, distribution, printing or copying of the <br>
information contained in this e-mail message <br>
and/or attachments to it are strictly prohibited. If <br>
you have received this communication in error, <br>
please notify us by reply e-mail or telephone and <br>
immediately and permanently delete the message <br>
and any attachments. Thank you</p>

<p></p>
--=_alternative 003E348265257E59_=--


From nobody Wed Jun  3 08:00:59 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D823F1A89F9; Wed,  3 Jun 2015 08:00:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.149
X-Spam-Level: *
X-Spam-Status: No, score=1.149 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_EQ_FR=0.35, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0DGiLicgyx8T; Wed,  3 Jun 2015 08:00:56 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id 507821A8A8C; Wed,  3 Jun 2015 08:00:48 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 38A1030252; Wed,  3 Jun 2015 17:00:47 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id dqAVD1b0erhP; Wed,  3 Jun 2015 17:00:46 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id AEE4030280; Wed,  3 Jun 2015 17:00:46 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id fno_E4N5I74A; Wed,  3 Jun 2015 17:00:46 +0200 (CEST)
Received: from [IPv6:2001:660:7301:3728:2174:fad3:1aab:a548] (passerelle-interne.enst-bretagne.fr [192.108.117.210]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id 8A39430252; Wed,  3 Jun 2015 17:00:46 +0200 (CEST)
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Message-Id: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu>
Date: Wed, 3 Jun 2015 17:00:57 +0200
To: 6tisch@ietf.org, core@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/fOTykwuuqtQMMgw7_RafPoFPcYY>
Subject: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 15:00:58 -0000

Hello everyone,

I would like to discuss with you to ideas/proposals in this mail, =
namely:
1) Caching the yang clash file on a remote server
2) Compressing the URL representation of YANG hashes

1) Caching the yang clash file on a remote server
Even though hash collisions should happen rarely (if ever), there may be =
cases when it could be inevitable, and as such, it may be interesting to =
cache the clash_file somewhere on a remote server to avoid sending it =
over the constrained wireless interface. It could be used for other =
cases, where some frequently used resources are re-hashed for =
performance purposes. Maybe it would be interesting to allow the server =
to specify a remote location for the clash file? For static collisions =
or optimizations it could be that the YANG definition includes =
alternative hash values, which could be used in addition to the normal =
ones.

2) Compressing the URL representation of YANG hashes
Another point (which is unrelated), is to elide the leading "A"s from =
the base64 representation of the hash in the URL (which corresponds to =
eliding the leading zeroes from the hash). As specified in section 5.4. =
a hash value of 0x0000007e will be encoded as AAAA_, but if the leading =
A=E2=80=99s are elided it will be simply _

This could pose problems only if in the future the size of the hash =
values is increased from 30 bits to some other (higher) value.

This, however, could be very useful when having to frequently access the =
same resource. In such case, the server/network operator may decide to =
re-hash the URI to a shorter version, e.g. the =
/sys:system-state/sys:clock/sys:current-datetime could be remapped from =
0x15370408 and VNwQI to 0x1 and _=20

Best,
Alex

PS.
A typo (?), which may be already corrected, in the example of mod.uri on =
Page 26: the two responses have different scheme "mod.uri" and "moduri"=20=



From nobody Wed Jun  3 09:06:19 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 41CE51A9176; Wed,  3 Jun 2015 09:06:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xD2l3bPs4MxQ; Wed,  3 Jun 2015 09:06:03 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0778.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:778]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 86E471A89A5; Wed,  3 Jun 2015 09:06:02 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB791.namprd06.prod.outlook.com (10.141.247.143) with Microsoft SMTP Server (TLS) id 15.1.172.22; Wed, 3 Jun 2015 16:05:40 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Wed, 3 Jun 2015 16:05:40 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>, "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQw
Date: Wed, 3 Jun 2015 16:05:40 +0000
Message-ID: <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu>
In-Reply-To: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB791;
x-microsoft-antispam-prvs: <CO2PR0601MB79137E55D0E1E594498F7CBFEB40@CO2PR0601MB791.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB791; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB791; 
x-forefront-prvs: 05961EBAFC
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(199003)(53754006)(38414003)(13464003)(81156007)(5001960100002)(101416001)(74316001)(5001770100001)(107886002)(189998001)(33656002)(99936001)(54356999)(76176999)(102836002)(77096005)(68736005)(92566002)(2950100001)(5001860100001)(5001830100001)(15975445007)(4001540100001)(97736004)(76576001)(99286002)(50986999)(105586002)(106116001)(2656002)(87936001)(19580405001)(15974865002)(2201001)(86362001)(64706001)(66066001)(5890100001)(2501003)(106356001)(2900100001)(5002640100001)(40100003)(19580395003)(62966003)(77156002)(122556002)(46102003); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB791; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: multipart/mixed; boundary="_002_CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40CO2PR0601MB792na_"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2015 16:05:40.1532 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB791
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/XyrFpFAcNLr0c0f_ydL-Cd5-pyg>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 16:06:06 -0000

--_002_CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQWxleGFuZGVyDQoNCkF0IHRoZSBsYXN0IDZUaVNDSCBiaS13ZWVrbHkgY2FsbCwgNCBzb2x1
dGlvbnMgaGF2ZSBiZWVuIHByZXNlbnRlZCB0byB0aGUgaGFzaCBjbGFzaGVzIHByb2JsZW0uIFR3
byBiYXNlZCBvbiBhIHJlaGFzaCB0YWJsZSBhbmQgdHdvIGJhc2VkIG9uIGEgbmV3IENvQVAgcXVl
cnkgcGFyYW1ldGVyIGNhcnJ5aW5nIHRoZSBtb2R1bGUgbmFtZSBvciByZWdpc3RlcmVkIG1vZHVs
ZSBJRC4gVGhpcyBxdWVyeSBwYXJhbWV0ZXIgaXMgdXNlZCB0byBzZWxlY3QgdW5hbWJpZ3VvdXNs
eSB0aGUgdGFyZ2V0ZWQgZGF0YSBub2RlKHMpIGFzc3VtaW5nIHRoYXQgYW55IGhhc2ggY29sbGlz
aW9uIHdpdGhpbiBhIG1vZHVsZSBoYXZlIGJlZW4gcmVzb2x2ZWQgYXQgZGVzaWduIHRpbWUuIFlv
dSBjYW4gZmluZCB0aGlzIHByZXNlbnRhdGlvbiBpbiBhdHRhY2htZW50Lg0KDQpCb3RoIG9mIHlv
dXIgcHJvcG9zYWxzIG1ha2Ugc2Vuc2UgdG8gbWUgYnV0IEkgc3RpbGwgaG9wZSB0aGF0IHRoZSBj
bGFzaCBmaWxlIGNhbiBiZSBhdm9pZGVkIG9yIGJlIG9wdGlvbmFsLg0KDQpNaWNoZWwgVmVpbGxl
dHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0
NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0K
d3d3LnRyaWxsaWFudGluYy5jb20gwqAgDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N
CkZyb206IGNvcmUgW21haWx0bzpjb3JlLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBB
bGV4YW5kZXIgUGVsb3YNClNlbnQ6IDMganVpbiAyMDE1IDExOjAxDQpUbzogNnRpc2NoQGlldGYu
b3JnOyBjb3JlQGlldGYub3JnDQpTdWJqZWN0OiBbY29yZV0gQ29NSSByZW1vdGUgc2VydmVyIGNs
YXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiBVUkwNCg0KSGVsbG8gZXZlcnlvbmUsDQoNCkkgd291
bGQgbGlrZSB0byBkaXNjdXNzIHdpdGggeW91IHRvIGlkZWFzL3Byb3Bvc2FscyBpbiB0aGlzIG1h
aWwsIG5hbWVseToNCjEpIENhY2hpbmcgdGhlIHlhbmcgY2xhc2ggZmlsZSBvbiBhIHJlbW90ZSBz
ZXJ2ZXINCjIpIENvbXByZXNzaW5nIHRoZSBVUkwgcmVwcmVzZW50YXRpb24gb2YgWUFORyBoYXNo
ZXMNCg0KMSkgQ2FjaGluZyB0aGUgeWFuZyBjbGFzaCBmaWxlIG9uIGEgcmVtb3RlIHNlcnZlciBF
dmVuIHRob3VnaCBoYXNoIGNvbGxpc2lvbnMgc2hvdWxkIGhhcHBlbiByYXJlbHkgKGlmIGV2ZXIp
LCB0aGVyZSBtYXkgYmUgY2FzZXMgd2hlbiBpdCBjb3VsZCBiZSBpbmV2aXRhYmxlLCBhbmQgYXMg
c3VjaCwgaXQgbWF5IGJlIGludGVyZXN0aW5nIHRvIGNhY2hlIHRoZSBjbGFzaF9maWxlIHNvbWV3
aGVyZSBvbiBhIHJlbW90ZSBzZXJ2ZXIgdG8gYXZvaWQgc2VuZGluZyBpdCBvdmVyIHRoZSBjb25z
dHJhaW5lZCB3aXJlbGVzcyBpbnRlcmZhY2UuIEl0IGNvdWxkIGJlIHVzZWQgZm9yIG90aGVyIGNh
c2VzLCB3aGVyZSBzb21lIGZyZXF1ZW50bHkgdXNlZCByZXNvdXJjZXMgYXJlIHJlLWhhc2hlZCBm
b3IgcGVyZm9ybWFuY2UgcHVycG9zZXMuIE1heWJlIGl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRv
IGFsbG93IHRoZSBzZXJ2ZXIgdG8gc3BlY2lmeSBhIHJlbW90ZSBsb2NhdGlvbiBmb3IgdGhlIGNs
YXNoIGZpbGU/IEZvciBzdGF0aWMgY29sbGlzaW9ucyBvciBvcHRpbWl6YXRpb25zIGl0IGNvdWxk
IGJlIHRoYXQgdGhlIFlBTkcgZGVmaW5pdGlvbiBpbmNsdWRlcyBhbHRlcm5hdGl2ZSBoYXNoIHZh
bHVlcywgd2hpY2ggY291bGQgYmUgdXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsIG9uZXMu
DQoNCjIpIENvbXByZXNzaW5nIHRoZSBVUkwgcmVwcmVzZW50YXRpb24gb2YgWUFORyBoYXNoZXMg
QW5vdGhlciBwb2ludCAod2hpY2ggaXMgdW5yZWxhdGVkKSwgaXMgdG8gZWxpZGUgdGhlIGxlYWRp
bmcgIkEicyBmcm9tIHRoZSBiYXNlNjQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGhhc2ggaW4gdGhl
IFVSTCAod2hpY2ggY29ycmVzcG9uZHMgdG8gZWxpZGluZyB0aGUgbGVhZGluZyB6ZXJvZXMgZnJv
bSB0aGUgaGFzaCkuIEFzIHNwZWNpZmllZCBpbiBzZWN0aW9uIDUuNC4gYSBoYXNoIHZhbHVlIG9m
IDB4MDAwMDAwN2Ugd2lsbCBiZSBlbmNvZGVkIGFzIEFBQUFfLCBidXQgaWYgdGhlIGxlYWRpbmcg
QeKAmXMgYXJlIGVsaWRlZCBpdCB3aWxsIGJlIHNpbXBseSBfDQoNClRoaXMgY291bGQgcG9zZSBw
cm9ibGVtcyBvbmx5IGlmIGluIHRoZSBmdXR1cmUgdGhlIHNpemUgb2YgdGhlIGhhc2ggdmFsdWVz
IGlzIGluY3JlYXNlZCBmcm9tIDMwIGJpdHMgdG8gc29tZSBvdGhlciAoaGlnaGVyKSB2YWx1ZS4N
Cg0KVGhpcywgaG93ZXZlciwgY291bGQgYmUgdmVyeSB1c2VmdWwgd2hlbiBoYXZpbmcgdG8gZnJl
cXVlbnRseSBhY2Nlc3MgdGhlIHNhbWUgcmVzb3VyY2UuIEluIHN1Y2ggY2FzZSwgdGhlIHNlcnZl
ci9uZXR3b3JrIG9wZXJhdG9yIG1heSBkZWNpZGUgdG8gcmUtaGFzaCB0aGUgVVJJIHRvIGEgc2hv
cnRlciB2ZXJzaW9uLCBlLmcuIHRoZSAvc3lzOnN5c3RlbS1zdGF0ZS9zeXM6Y2xvY2svc3lzOmN1
cnJlbnQtZGF0ZXRpbWUgY291bGQgYmUgcmVtYXBwZWQgZnJvbSAweDE1MzcwNDA4IGFuZCBWTndR
SSB0byAweDEgYW5kIF8gDQoNCkJlc3QsDQpBbGV4DQoNClBTLg0KQSB0eXBvICg/KSwgd2hpY2gg
bWF5IGJlIGFscmVhZHkgY29ycmVjdGVkLCBpbiB0aGUgZXhhbXBsZSBvZiBtb2QudXJpIG9uIFBh
Z2UgMjY6IHRoZSB0d28gcmVzcG9uc2VzIGhhdmUgZGlmZmVyZW50IHNjaGVtZSAibW9kLnVyaSIg
YW5kICJtb2R1cmkiIA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KY29yZSBtYWlsaW5nIGxpc3QNCmNvcmVAaWV0Zi5vcmcNCmh0dHBzOi8vd3d3Lmll
dGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZQ0K

--_002_CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40CO2PR0601MB792na_
Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation;
	name="6TiSCH presentation on CoMI hash clashes r03.pptx"
Content-Description: 6TiSCH presentation on CoMI hash clashes r03.pptx
Content-Disposition: attachment;
	filename="6TiSCH presentation on CoMI hash clashes r03.pptx"; size=60703;
	creation-date="Thu, 21 May 2015 16:42:08 GMT";
	modification-date="Thu, 21 May 2015 16:42:08 GMT"
Content-Transfer-Encoding: base64

UEsDBBQABgAIAAAAIQBEVqr84wEAAGISAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE
mMlOwzAQhu9IvEPkK2rcsIOacmA5sUnAA5hk2hoc27LdQt+eSVJQQV0oxvIlkuP5//mceBm5d/Ze
iWQCxnIlc5KlXZKALFTJ5TAnT49XnWOSWMdkyYSSkJMpWHLW397qPU412ATV0uZk5Jw+pdQWI6iY
TZUGiT0DZSrmsGmGVLPilQ2B7na7h7RQ0oF0HVd7kH7vAgZsLFxy+Y6vW5IXDUOSnLeBda6c8Ko2
aDroQo0BYX9omNaCF8xhP53I8gdZZ0aVorKJsSOu7Q4GLMlQ9yxPMNPd4ec0vITknhl3yyqMolo7
qg1Y1DWx6WqnBahqMOAFlKoYVyhJ580q8a2ZVozLz0Esg7ECX94w6/DXzzey/yab8/4V04wmDMcm
BLvRCfaiE+xHJziITnAYneAoOsFxdIKT6ARZNz5C/F0xi78tZnH2xVpzb5S2Ic7uxngdwYTDWxCC
L+N1BA7rO2if/lOxsVmbkT0LeHBTAf8+6jnrX02/azZVYzebhG0jzHpsvf/KFGaB+jGFWbF+TGFq
Gz+mMNWOH1OY+sePKUxF5McUpkbyYwpTNfkxBaqjPKFi7eQob05eWigDmzN8XmDU6o5GIzCOrz7P
vjKitfegob4bKaFckJs2N0T9DwAAAP//AwBQSwMEFAAGAAgAAAAhAGj4dKEDAQAA4gIAAAsACAJf
cmVscy8ucmVscyCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAACskttKAzEQhu8F3yHMfTfbKiLSbG9E6J3I+gBjMrsb3RxIptK+vaHg
YWEtgr3MzD8f3yRZb/ZuFO+Usg1ewbKqQZDXwVjfK3huHxa3IDKjNzgGTwoOlGHTXF6sn2hELkN5
sDGLQvFZwcAc76TMeiCHuQqRfOl0ITnkcky9jKjfsCe5qusbmX4yoJkwxdYoSFtzBaI9RPofWzpi
NMgodUi0iKlMJ7ZlF9Fi6okVmKAfSzkfE1Uhg5wXWp1XiIede/FoxxmVr171Gqn/TWj5d6HQdVbT
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
u6yp5cBxsa7fNgnzFbaMuoP9wbgT2DIetHuD8SZbuvvDTn/YrdgyHPd6vtDczRZMqu1d/JDKbasA
r2bA7ZoSrjXBilUqySLQVsyUaJxTuEJz/rBripPpj4vJpwwzPOmy8pBv17nErZi8LU5twHowkvsE
Kf+qb9rQxeihqgWl5pPor+l0POzORtPWtNOft/ovx/uto/lw0JoPev3+bDo6mvWO/3Y3d53+AdXM
p02v6stJ7PziQjDnVCujUuuPznCzGBfqmulCcX+52GlXN5Rewe5g0O902qORj4Wxx1a/PVq3YapL
Qyr0G1K8W3jD4mJY3Mx8V4G1TXXZsR6CxuDubsC3ZKU5VkVe0oWsbxmTEos3LhOWcsmt4x9WVUQj
syXmuTry5elFCGv5mVK2wuklOYsH0a5VLeeMjoD/AwAA//8DAFBLAwQUAAYACAAAACEA1dGS8bwA
AAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQxLnhtbC5yZWxzjM+9
CsIwEAfwXfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujbm9GCg+N9/f5cs39No3hSYhe8hlpWIMib
YJ3vNdyux9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVRPGsYco47pdgMNCHLEMmXSRfShLmUqVcR
zR17Uuuq2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm8vlHhOLRWTojZ0qFxdRT1iDld3+2VMsS
Aapt1Ozd9gMAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAABwcHQvc2xpZGVMYXlv
dXRzL19yZWxzL3NsaWRlTGF5b3V0OC54bWwucmVsc4zPvQrCMBAH8F3wHcLtJq2DiDR1EcHBRfQB
juTaBtsk5KLo25vRgoPjff3+XLN/TaN4UmIXvIZaViDIm2Cd7zXcrsfVFgRn9BbH4EnDmxj27XLR
XGjEXI54cJFFUTxrGHKOO6XYDDQhyxDJl0kX0oS5lKlXEc0de1Lrqtqo9G1AOzPFyWpIJ1uDuL4j
/WOHrnOGDsE8JvL5R4Ti0Vk6I2dKhcXUU9Yg5Xd/tlTLEgGqbdTs3fYDAAD//wMAUEsDBBQABgAI
AAAAIQDV0ZLxvAAAADcBAAAtAAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDEw
LnhtbC5yZWxzjM+9CsIwEAfwXfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujbm9GCg+N9/f5cs39N
o3hSYhe8hlpWIMibYJ3vNdyux9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVRPGsYco47pdgMNCHL
EMmXSRfShLmUqVcRzR17Uuuq2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm8vlHhOLRWTojZ0qF
xdRT1iDld3+2VMsSAapt1Ozd9gMAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8AAAANwEAAC0AAABw
cHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0MTEueG1sLnJlbHOMz70KwjAQB/Bd8B3C
7Satg4g0dRHBwUX0AY7k2gbbJOSi6Nub0YKD4339/lyzf02jeFJiF7yGWlYgyJtgne813K7H1RYE
Z/QWx+BJw5sY9u1y0VxoxFyOeHCRRVE8axhyjjul2Aw0IcsQyZdJF9KEuZSpVxHNHXtS66raqPRt
QDszxclqSCdbg7i+I/1jh65zhg7BPCby+UeE4tFZOiNnSoXF1FPWIOV3f7ZUyxIBqm3U7N32AwAA
//8DAFBLAwQUAAYACAAAACEA1dGS8bwAAAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMv
c2xpZGVMYXlvdXQ5LnhtbC5yZWxzjM+9CsIwEAfwXfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujb
m9GCg+N9/f5cs39No3hSYhe8hlpWIMibYJ3vNdyux9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVR
PGsYco47pdgMNCHLEMmXSRfShLmUqVcRzR17Uuuq2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm
8vlHhOLRWTojZ0qFxdRT1iDld3+2VMsSAapt1Ozd9gMAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8
AAAANwEAACwAAABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0Ni54bWwucmVsc4zP
vQrCMBAH8F3wHcLtJq2DiDR1EcHBRfQBjuTaBtsk5KLo25vRgoPjff3+XLN/TaN4UmIXvIZaViDI
m2Cd7zXcrsfVFgRn9BbH4EnDmxj27XLRXGjEXI54cJFFUTxrGHKOO6XYDDQhyxDJl0kX0oS5lKlX
Ec0de1Lrqtqo9G1AOzPFyWpIJ1uDuL4j/WOHrnOGDsE8JvL5R4Ti0Vk6I2dKhcXUU9Yg5Xd/tlTL
EgGqbdTs3fYDAAD//wMAUEsDBBQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAcHB0L3NsaWRlTGF5
b3V0cy9fcmVscy9zbGlkZUxheW91dDUueG1sLnJlbHOMz70KwjAQB/Bd8B3C7Satg4g0dRHBwUX0
AY7k2gbbJOSi6Nub0YKD4339/lyzf02jeFJiF7yGWlYgyJtgne813K7H1RYEZ/QWx+BJw5sY9u1y
0VxoxFyOeHCRRVE8axhyjjul2Aw0IcsQyZdJF9KEuZSpVxHNHXtS66raqPRtQDszxclqSCdbg7i+
I/1jh65zhg7BPCby+UeE4tFZOiNnSoXF1FPWIOV3f7ZUyxIBqm3U7N32AwAA//8DAFBLAwQUAAYA
CAAAACEA1dGS8bwAAAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ0
LnhtbC5yZWxzjM+9CsIwEAfwXfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujbm9GCg+N9/f5cs39N
o3hSYhe8hlpWIMibYJ3vNdyux9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVRPGsYco47pdgMNCHL
EMmXSRfShLmUqVcRzR17Uuuq2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm8vlHhOLRWTojZ0qF
xdRT1iDld3+2VMsSAapt1Ozd9gMAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAABw
cHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0My54bWwucmVsc4zPvQrCMBAH8F3wHcLt
Jq2DiDR1EcHBRfQBjuTaBtsk5KLo25vRgoPjff3+XLN/TaN4UmIXvIZaViDIm2Cd7zXcrsfVFgRn
9BbH4EnDmxj27XLRXGjEXI54cJFFUTxrGHKOO6XYDDQhyxDJl0kX0oS5lKlXEc0de1Lrqtqo9G1A
OzPFyWpIJ1uDuL4j/WOHrnOGDsE8JvL5R4Ti0Vk6I2dKhcXUU9Yg5Xd/tlTLEgGqbdTs3fYDAAD/
/wMAUEsDBBQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9z
bGlkZUxheW91dDIueG1sLnJlbHOMz70KwjAQB/Bd8B3C7Satg4g0dRHBwUX0AY7k2gbbJOSi6Nub
0YKD4339/lyzf02jeFJiF7yGWlYgyJtgne813K7H1RYEZ/QWx+BJw5sY9u1y0VxoxFyOeHCRRVE8
axhyjjul2Aw0IcsQyZdJF9KEuZSpVxHNHXtS66raqPRtQDszxclqSCdbg7i+I/1jh65zhg7BPCby
+UeE4tFZOiNnSoXF1FPWIOV3f7ZUyxIBqm3U7N32AwAA//8DAFBLAwQUAAYACAAAACEA1dGS8bwA
AAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ3LnhtbC5yZWxzjM+9
CsIwEAfwXfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujbm9GCg+N9/f5cs39No3hSYhe8hlpWIMib
YJ3vNdyux9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVRPGsYco47pdgMNCHLEMmXSRfShLmUqVcR
zR17Uuuq2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm8vlHhOLRWTojZ0qFxdRT1iDld3+2VMsS
Aapt1Ozd9gMAAP//AwBQSwMEFAAGAAgAAAAhAFEDtWVCBwAAfDIAACEAAABwcHQvc2xpZGVNYXN0
ZXJzL3NsaWRlTWFzdGVyMS54bWzsWv1u4kYQ/79S38Fy/6w4/LE2Bh2pgAvtSek1atIHWOwF3Ji1
u1645KpK9yx9i/Zx7kk6O7sLJge50OSkJEJIeD0ez87O7zezH/D6h+tF4ayYqPOS913/lec6jKdl
lvNZ3/3tctxKXKeWlGe0KDnruzesdn84+fab11WvLrKfaS2ZcMAGr3u0786lrHrtdp3O2YLWr8qK
cXg2LcWCSrgVs3Ym6HuwvSjagefF7QXNuWveF/d5v5xO85S9KdPlgnGpjQhWUAn+1/O8qq216j7W
KsFqMINvb7l0AuNLL4pMXScz/f0rmzp5dg1R8jwfNGgPLbNRIZwVLfruZOa77ZPXbaNsWurluroU
jKkWX/0oqovqXGAP71bnAmyCSdfhdAHxVQbwgVHDW77CRvvW6zPbpL3rqVioK4THAQ8BxRv13VYy
di2dVAvTjTSd/7JDN52f7tBu2w7ajU7VqLRznw8nsMO5zGXBnPOCpmxeFhlwBUOEutb3ujor06va
4SWMTYVCD3WtocevrtXckTcVmJXKrNHTD7GxcWxnVJIwAYRxuGEc+UG0HR/fi/woVgpq4H4YRFEc
bg2f9ipRyx9ZuXBUo+8KlkpkAl2d1VKrWhX0SXtS9eT1sMxulOYErhAlSDl4f16KD65TvOV13+36
hEDfEm9I1AngRjSfTLaeyGJUFggT5SnY6bupFOgLB4IPlrKc5sYj3aV6VNTyQt4UDMddqS8UC3Co
oCrjGW/9dgEZv5CjglG+5oU8GRV5euXI0mFZLh2T+IgD1AcwqTqS2B2aZDw7p4L+2rQ8GphoVhgb
GxMM0918Ctd8UmA16RQ8Bp1UgFyT2w9hlZ8EUXw3rUgY+WGYPH1aHcykSkG9wndR+EBmqfAhseot
Zmn23O4SUTugywuWljxzCrZixT3MI8kOMH85z8X9rWONOcD6uFwKOb+3eXKo+Xy60/pj5zSxOf2G
yu0pAgPy0JzOJIzuA+QCLaYmtxHG/5vbcQizQXRrSg06JEQFldqbOeUZTRg4HJvM2F4VvuIOLWbA
igKdzdhUga7C6avhIiRlkWfjvCh2LITktV4fyZxLLelEnmeXEmtlfbex07Y9YdM4otsNB5Hd0yJD
Ev3ZHYcJhH3QIqcJfHVGpDVMTgetbkDIkPhet5t0/3ItJ4BpMl+wcT5bCvbLUkOxlRTA511JEXh+
1PKiVuBvcmKqloePnRWRzYpxWao62MwLzOSH5sUUQEck/1hSAT2Y3NALnUNyg3hhgtPavuQgvk+S
l5wcdsH19NLjcTkZW05egC/MebdcTG4xE4F9KDNhPwmmd5ETiX9Y4Y59705yvvjK/VSpua7cfhCQ
ODqFmpqE3RYZvBlA5U6GrbibJGO/E8XdIFhX7loxjwM77luwP33857tPH/99hGqNF7t9B/oA+qbl
LEUOAxkOu3EwAs+HPhm3yJtupzUYx1FrHIWEjIbJYBSe/qVOFHzSSwXDw4a3mT2m8MlnBxWLPBVl
XU7lq7RcmBOPdlW+Z6Iqczz08D1zcoIQEYAWwCWaweiavaKzKu/MWUZaiJ9p5UxmPszt0ofwXkMr
u4LWZBYoWaBkgZJBi6Yp4xI0TMNKAitZ64RWEloJsRJiJZGVRFYSWwmUmHmR8yuIhbq4zrQsftIC
29IlBorEGb0pl/JtZoBoSPTZg086JAlj0oXU6SmJeJuZU4d9upFKM6trtpR7df2Grlmq7tUNGrpm
+t6rGzZ0TUHdq0sauvEXdKOGbucLunFDFzepd+h2GrrdL+gmTSwwSe9Q3gLOzhyfAy+vsbLU2FYH
EXvXsA4Up0s6ufhgCqwuqlhRGT3jQ3GFJ3DqFJGbW3g0h/qQ89n5kqdSPUfL/KJK9fyWnqemRHa9
TYlsKgzVGeC26rqSrp9Olu9KrrfRjWKtnbxiQh3K3rdwG9NNLRwS1tApzNZ99/vF761CmqmQ3nrA
qDkErG89SGtje2eR345+hdPeZ1AsqDgDiAO9ZMw5VHMIassKng5SstaqfmPaa4A1LmFi3ERnIHIK
XleUlzXcQhkewrqDeKog6w9kapXLdD6mi7xQaw0QpHMqaibX09VkOQIJivvup49/a2mDDgGuo78G
Hfg+OvB9dOB30wGbwQbyOInQ+WcAefSUEP9qBeAREVcwG8TDDeKw7QtVzI+QHwg5Bu2JQ65wNpCT
BuQAL+6mjpAfBLn/HOq6wtlAHjWmci/qIIxHyF8e5ApnA3ncgDzyyXNZvh0hPxByhbOBvNOAvNvR
3h8hf3mQK5wN5MkG8pAEKuhHyF8i5ApnA3m3AXmSxMfl2wuFXOGs/4q2OZepeqWcM7E+pYE3zjUx
zOiafxJYGzUq20c6X4Ukzy3Gu48+8PebY3z2HhTYIBzjs2dXHXbUxvoYoH17UD8JEvT+GKA9Ozac
xo8B2r+/sX8DOAZoz25A/bB8DNAda+c46hyL9PZKs7m4xD9U2B9q9e+4+i++J/8BAAD//wMAUEsD
BBQABgAIAAAAIQCEWCnLNQQAAFoOAAAhAAAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDEu
eG1stJddbts4EMffF9g7CNpnRSL1bdQpbMdeLJAmQZ0egJZoWyglaknajbso0GvtHqcn2SEl+SNx
06R2XySKIn+cmf9wJL55+1Aya02FLHjVt9GFZ1u0ynheVIu+/eF+4iS2JRWpcsJ4Rfv2hkr77eXv
v72pe5Ll12TDV8oCRiV7pG8vlap7riuzJS2JvOA1reDdnIuSKHgUCzcX5BOwS+Ziz4vckhSV3c4X
L5nP5/Mio1c8W5W0Ug1EUEYU2C+XRS07Wv0SWi2oBIyZfWiS2tTgrSoUo7Zlhok1dCD7EjzPpiy3
KlJCx70eYU1ZkVPzStb3glLdqtZ/inpa3wkz42Z9J6wi14R2pu22L9ph5rFam4b7aPqia5Lew1yU
+g6BsB76Nui10VdX99EHZWVNZ7brzZa3R8Zmy/GR0W63gLu3qPaqMe6pO7hzpwkE2nrV2Svra559
lFbFwR/tfuPedkTjs77XyzbqmRKG1g5t3pvGzp6jwUAhDjyvcRMhjP3IPwxMioJmgHYY+0kceU/c
bth1Tz0Meb7Rs2dwB3dJlS05JOmsYTKppmrDqGmvGar1ELaojP227s3p/D10ys99O9KrNgu1Y5v2
HqPWF+OVgEmM6A1IK+fDFDZgqUaMkmornrocsSL7aClu0bxQ1jsiFRWWSVfYrkDUdGXWMEha5XdE
EG3OljwatBbVxu/OXxOC50X3O9Gnq1mzJj6H7nI1a3SHRbSaJ+nvRx72/OQZ/VEUhnFkLH+J/t8V
vSTi2uyiosqhmJjmYSLMVjdQPA1gLye0rY9zwjTxjhqEMdb2vhZ9kG6a16L9HbqJxavRKNlHa16L
DnZo5MdI76xXs3fbsQW27HCPneBEm3AaWwNbdrRjY5yYjXoaWwNbdrzHjgP/Z6Q8ZGtgy052bA3+
KS0P2BrYstM9dhSaKnkaWwN/RcWTXQH69UUv6IreFVHUumMko0vOcjDCfGROLX65sk3cloTNuwLY
BPC7FdCs+myZMg8mzHP4Y9Fe/JNO/CREeOAE4wQu8Shwhsl44KQ4CIYB8tI0Sb90/z85uKqKkk6K
xUrQ25Uygh+oBQE9phb2UOh4oYPRThSw4fyyhJ0sE851RuwLE5xDmDmkuVHm7xURsEInzg8+T68R
57wRibZfZ/1Xat2sytmjuIRn+VqzHNBHQ9N8U8+bt/A7F0ThGDIq8VMnGFwNIG+ToROlSTJBcRil
GG/zVmrPK7Dupen67eu/f3z7+t8ZctXcujMA/HdcS9W2rJUowJHhMI3wCCwfomDiBFdp7AwmUehM
Qj8IRsNkMPLHX/RZAgW9TFBzNvkr7041KHhyrimLTHDJ5+oi42V7QHJr/omKmhfmjIS89lSzJgzy
IwnjxMepKVuuMa27G2O17lPtPtyZeEfq27XJkdKU3JHpquEM16bIboh2vTsTXv4PAAD//wMAUEsD
BBQABgAIAAAAIQBpol8hFQEAAMcHAAAsAAAAcHB0L3NsaWRlTWFzdGVycy9fcmVscy9zbGlkZU1h
c3RlcjEueG1sLnJlbHPE1U1qwzAQBeB9oXcws48lO4mTlMjZhEKgq5IeQFjjH2pLRlJKffuKlkIM
YWghoI3AkvXm4220P3wOffKB1nVGC8hSDgnqyqhONwLezs+LLSTOS61kbzQKmNDBoXx82L9iL324
5NpudElI0U5A6/34xJirWhykS82IOpzUxg7Sh0/bsFFW77JBlnNeMHudAeUsMzkpAfakwvzzNOJf
sk1ddxUeTXUZUPsbI5jrO4UvcjIXH2KlbdALSNPr/dlP2zSMAHZbtowpW1KyTUzZhpJl+T1pPtzF
Gep752fNKMddGf9tKCcbiikjOytiygqys7ilka2tY9LWZGs8amucsq1i0laUbBdTtvuVsdnzW34B
AAD//wMAUEsDBBQABgAIAAAAIQCTRD57IgMAAL0IAAAhAAAAcHB0L3NsaWRlTGF5b3V0cy9zbGlk
ZUxheW91dDYueG1srFbdTtswFL6ftHewsuuQJk3apKKgtrTTJKBohQcwiUMjHNuz3dJuQuK1tsfh
SXbsxMCASVzkJnac4+Pv57inh8e7mqItkaribOyFBz0PEZbzomI3Y+/qcuGnHlIaswJTzsjY2xPl
HR99/nQoRooWp3jPNxpBDqZGeOyttRajIFD5mtRYHXBBGHwruayxhld5ExQS30HumgZRrzcIalwx
r90vP7Kfl2WVkxOeb2rCdJNEEoo14FfrSiiXTXwkm5BEQRq7+19Iei+Ara40JUtG9x6yoXILi6F3
BOzzFS0QwzUsXJooZMPMFyUuJSFmxrZfpViJC2k3nG8vJKoKk6Dd6AXthzbMvrKtnQSvtt+4KR7t
SlmbEbRAu7EHlu3NMzBrZKdR3izmz6v5evlObL6evxMduAOCF4caVg24t3QiR6fRIXxi5fAqccrz
W4UYBz6GfkPvKaLhbEaxfil8G9d8tJNnMK1Yejflxd4ccg2jXcQjqvRK7ymxL8I8LAwJeCk2dU2Y
f7WCuq71jBLMngTRRzNa5bdIc0SKSqMzrDSRyIKBWwApjTraamRTElZcYIm/v8w8m7QqCgvaIQyc
hP8Xsu+EPMGaoAuKc7LmtAAEUReaFhoo/4RrgWnpwYHge9g43onGJdwHw+JXtuinSRhN/HiewmM4
i/1pOp/4WRTH0zjsZVma3bsbVgBVXdVkUd1sJFlutPfGKhD0PauiXpj4vcSPwmdTAEP3tsTOlgXn
phxeGtPvwphSy8aZHxss4QRnjtvbgTndKpI4RVa0Kgg639TXr3SJu9AFGgykflcaeyE6rtswiuJB
MoeKSvuZH09OJlC36dQfZGm6CIfJIIuip7pVhjkDdB8t18eH318eH/50UKt2cC0Gfu9PlW5naCMr
IDKdZoNoBsinYbzw45Ns6E8Wg8RfJP04nk3Tyaw/vzetKoxHuSS2+30rXN8M4zeds65yyRUv9UHO
67YFB4LfESl4Zbtw2Gv75hZTsCfLhoMwTQdJaxNgc6NFa4xfGf4wUnmGxXJri6S2P7gzuyTgb0Jb
I88hhrv723H0FwAA//8DAFBLAwQUAAYACAAAACEAR8DiBPQEAAA2GQAAIQAAAHBwdC9zbGlkZUxh
eW91dHMvc2xpZGVMYXlvdXQ1LnhtbOyZXW7jNhDH3wv0DoL6rEjUJ2VssrCduCiQTYLaewBGomN1
JVKlaMduscBeqz3OnqTkSPJH4uwqtrEvzYtFy+RPM/PnjCbMu/fLIjcWVFQZZ+cmOnNMg7KEpxl7
ODc/TkYWNo1KEpaSnDN6bq5oZb6/+Pmnd2WvytNrsuJzaSgGq3rk3JxJWfZsu0pmtCDVGS8pU79N
uSiIVF/Fg50K8qjYRW67jhPaBcmY2awXXdbz6TRL6CVP5gVlsoYImhOp7K9mWVm1tLILrRS0UhhY
vWuSXJXKW/nIJ8vJI7+9/8M0YLJYqNvIvFD+J+M8NRgp1I0hL0oisooz+KUqJ4JSPWKLX0U5Lu8E
LLhZ3AkjSzWgWWjazQ/NNPjKFjCwnyx/aIekt5yKQl9VNIzlualEW+lPW9+jS2kk9c1kczeZ3e6Z
m8yu9sy22wfYWw/VXtXGPXfHbd2ZZDKnBlp71dpbldc8+VQZjCt/tPu1e+sZtc/6Ws7a0GtUM6/+
EQYbY/ZGAntxhDG46IUBcoPdmCAnQEHoNM4izw2C0Hvqco0ue3I54OlKL79XV5CE9PJKjuUqp/Cl
1B9ghlCRyInOGcqsj2OVM4Uc5pSwdajlxTDPkk+G5AZNM2l8IJWkwgA3VYYppDZCgimApCy9I4L8
vk0e9htjS7C0tRCM/rZE3loiHYu7nCR0xvNUWeCeQi0dIVM9SMf4GNFQiBGqJdmopjSLIhzVomHX
ixHY3EUzg7BkxlVlua+RrXwwXuRILTMKIq4hATKWqmKghwCY36iKB6tSOtUyVH+pre7r3XPfurmm
NEB3A/SDyNVzO1Gd51SNaqjehhojHyzoQkX4OVWjGqq/oSIvQpAWnbAwcxerWQ022MJiF4MNh2I1
q8GGG6zr4hACdihWsxpstIWNfK+zYvuwmtVg8Qarmd0l24PVrAYbb2HDIDpKMs2qx1s5ARVNP0RN
WJeuIyucTmMocNVOhTukivltFRtyJpXXO4UMqsbhhUzHaUbyaVPG6hJzYBlzAydwoicvn50y5oXY
D9Ts4949P1Kpp4+EaL7ikWOacJYaOV3QvAMe4v8K/GSWie705g3TmT7icyFnnfH+a/HZdC/91F1A
8GIXABafpgvQifTnnAi1pZpcqlus1+RSiCIXavHLPQH2kM62t57grSd46wn+xz1B+K2eAF7Bx/UE
u6UM6uTBpeyFvmCrlL31BW99wY/vC6I2hy6JpDsJFJ6iL0hl3RVstdeoPml6MZHgqR13+zRPwYu/
45GHA+T2Lf8Kq49o6FsDfNW3Ytf3Bz5y4hjHn9uzvVS5KrOCjrKHuaC3cwm1ckcVFdB9qrgOCiwn
sFy0EUXZcHpZcCvLiHOdiNvCRKcQZirFvn4NfecM5zXinDYicRuRcZ6l1LiZF/dP4gKl89i4VHmq
0HtD852/Cw/at8h1/TC4UjtK/Q1p+f3Lvtq3eGCFMcYjFAVh7LrrfVtpz5myrut2/frln1++fvn3
BHsVLu3RtnopXFeyGRlzkSlHBoM4dIfK8gHyR5Z/GUdWfxQG1ijwfH84wP2hd/VZH5Ejv5cICufu
v6XtiT3yn53ZF1kieMWn8izhRXP4b5f8kYqSZ3D+j5zmxH5BVIHFUeC7cRy2IivT2isYq3Ufa/fV
NRcfSHm7gD1SwJtuCLfKjD00W2QzRbve/r/j4j8AAAD//wMAUEsDBBQABgAIAAAAIQBe9ocdygMA
ADsPAAAhAAAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDQueG1s7Ffdbts2FL4fsHcg1GtF
1q8lo05hO3YxIG2C2X0ARqJjrRSpkrRjbyjQ19oep0+yQ0q0E8dd7cUXveiNSFHkx3O+7xyR5/Wb
dUXRighZctZ3/IuOgwjLeVGy+77zYTZxUwdJhVmBKWek72yIdN5c/vrL67onaXGNN3ypEGAw2cN9
Z6FU3fM8mS9IheUFrwmDb3MuKqzgVdx7hcAPgF1RL+h0Eq/CJXPa9eKY9Xw+L3NyxfNlRZhqQASh
WIH9clHW0qLVx6DVgkiAMaufmqQ2NXirHvjN3R8OMvPECkZ85xJcz6e0QAxXMDB74GjEmQIY80nW
M0GI7rHVW1FP61thVrxf3QpUFhqhXel47Yd2mnllK9Px9pbf2y7ureei0i0wgdZ9BwTb6Kenx8ha
obwZzHej+eLmwNx8MT4w27MbeI821V41xj13J7DuzEpFCfK3Xll7ZX3N848SMQ7+aPcb97YzGp91
Wy8s7Rqqndd8NJ2dMS1Zaj3kxUZvcgetGcQ9KtVUbSgxL7V+GDME2EuxjmrC3A9TiOpKjSjBbEuI
uhzRMv+IFEekKBV6h6UiAhljIAcAUrOjDEcGkrDiFgv8+2Pk0aBlsTZGWws9S+G3iQwtkW00oVuK
c7LgtAAjgpfRKv+EbMB07sBO693kb3B7IMrSMIXkMOHjp0GcBPHTgIv91E/0BB1IURj7YZjuh1MD
fbRqtaZ1RbfyvFBFbakRUT5RsVFqf0tD0AlbTknOWYEoWRF6BLxR8wT42aIUx6OHJ6JP+FKoxdHw
0anw5fwg+rnzJ/qv/DGcnC1/jH4n5U/id4OfCfQzgX7kBIptAl1hRZ5kj7H4pYd6oZxn51Bz5TjL
IT+HG5n24q9sEqaxHwzcaJzCozuK3GE6HrhZEEXDyO9kWZp9the8AlxVZUUm5f1SkJulvsPtqQKE
HlIl6Pix24ndwN+JAjacX5bEyjLhXCfiY2HMT+SlwsyVaJT5tMQCdrDifOeWcIo452WkaxmZ0rIg
6P2yutvjJTkHL1DfAPRBar5zAPyvuPWDIEriMURUGmZuNLgaQNymQzfJ0nTid+MkC4Jt3ErtOQPr
jg3Xr1/+fvX1yz9niFXT2BoHDoVrqdoeWooSHBkOsyQYgeVDP5q40VXWdQeTJHYncRhFo2E6GIXj
z7pW8qNeLogpvn4rbNnmR88Kt6rMBZd8ri5yXrUVoFfzByJqXpoi0O+0ZdsKww82g7M2TbPEigym
2dYYq3WfavehpeIdrm9WJkYqc9KNzFANRWobIrsp2nVb9F7+CwAA//8DAFBLAwQUAAYACAAAACEA
XVbP1nQEAAA7EQAAIQAAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQzLnhtbMxY727bNhD/
PmDvIGifFYkS9c+oU9hOvA1Ik6BOH4CR6Fgo9WcU7dobCvS1tsfpk+yOkiw7dVNvMYJ8ESnq7vi7
+x15pN68XefCWHFZZ2UxNMmZYxq8SMo0Kx6G5oe7qRWZRq1YkTJRFnxobnhtvj3/+ac31aAW6RXb
lEtlgI2iHrChuVCqGth2nSx4zuqzsuIFfJuXMmcKXuWDnUr2CWznwnYdJ7BzlhVmqy+P0S/n8yzh
F2WyzHmhGiOSC6YAf73IqrqzVh1jrZK8BjNaex+S2lTgbc2T3zhLTUMLyhUMEfMcfE9mIjUKlsPA
jCeobqAgl/prXd1JzrFXrH6V1ay6lVrpenUrjSxFI62yabcfWjH9Wqx0x36k/tB12WA9lzm2EA1j
PTSBtA0+bRzja2UkzWDSjyaLmwOyyeLygLTdTWDvTIpeNeC+dcft3LnLlOAG2XrV4a2rqzL5WBtF
Cf6g+417W4nGZ2yrRRt6haZaueaj7vRgDkYi8kjkNy6S0IlDL9oPCnF84gdO660b+W7ohY99bmxX
A7Uel+kG1e+hBV9ZkSxKSNP7xqio1UxtBNf9lSAtpJTP34Nw/efQhJm6iG4FsL+jWOFD60lQEgzX
HS+sDzNYd7maCM6KLV3qfCKy5KOhSoOnmTLesVpxaehQwSoFi2hd6Tm0SV6kt0wyhLO1PBm1iCrt
bOek9vtpmr0tzRjOW8ESvigFJL3hnoJxDLIJEyFNzyGe+lFMA+8p4onvOCQ6mvjvsW3kTF7ptZMV
Kewj2NVay2vYLLXWTjK41Gk+16XI0mkmhH7B3YlPhDRWTEDar3GDARKzQjUjod8n0Va4eevt2N1M
+7mmu26PlPqhizE4Ci5O+1JwEWML1+vhxoRizI6CS6IXhIsYW7i0h0u8kOgUOwovSr4UXgTZ4vV3
8EZuhFF7fXgRZIs36PG6bqQ31NeHF0G2eMMdvCH1jl5uL4oXQbZ4ox4vgj1+vb0kXgTZ4o138AZ+
+DrXG4I8XOkRPQhsS/ozKz+WN134673K/3+qO+2q+wVTfK+661L63OqeKlPzsGBi3lX5JrDfLfN6
1idrsX7RcZ3DeRy9+CueepFP3JFFLyN4hBNqjaPLkRW7lI4pceI4ij935/sUXFVZzqfZw1Lym6XS
7O/RAcelQ3S4DvEtx7dc0gceMJz+0OV3tEzLEinfJYaegpi5kg0zfyyZhBk6cn5wBvsv5Jw2IkEX
kRksQG5cL/P7R3HxTxEXuN6C6YOh0cfdE+ctcV0a+JeQUZEXW3R0MYK8jcZWEEfRlIR+ELvuNm9r
9LwAdMem69cvf//y9cs/J8hV3XTXW9h+rmrV9oylzMCR8TgO3AkgHxM6tehFHFqjaeBbU9+jdDKO
RhPv8jNekwkdJJLru/fvaXdrJ/Sbe3ueJbKsy7k6S8q8/QFgV+UnLqsy0/8AiNPe2vWW7Xlwrgmp
78YtTYCtazVaJH6G/kMr5DtW3ax0kuR6U53ooSorHtoc6UXQ9+6nx/m/AAAA//8DAFBLAwQUAAYA
CAAAACEAxfWCH4EDAACaCwAAIQAAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQyLnhtbKxW
0W6jOBR9X2n/wWKfKYFACtGko4SG1UqdabXpfIALprBjbK/tMMmuRprf2v2c+ZK9NpC0nayUqrxg
Y+zje8492Pfd+11DUUukqjlbOP7FxEGE5byo2ePC+XSfubGDlMaswJQzsnD2RDnvr37+6Z2YK1rc
4D3fagQYTM3xwqm0FnPPU3lFGqwuuCAMvpVcNljDq3z0Com/AHZDvWAymXkNrpnTr5fnrOdlWefk
mufbhjDdgUhCsYb4VVULNaCJc9CEJApg7OrnIem9ALb84Q8H2UmyhVffuQLe+YYWiOEGBu5rTQkC
dVDKmQYkO0GJe0mI6bH2Vyk24k7adR/bO4nqwuD06x2v/9BPs6+stR3vxfLHoYvnu1I2pgUx0G7h
QM725umZMbLTKO8G8+NoXt2emJtX6xOzvWED78mmhlUX3I90goFOJ4d/YDXEq8QNzz8rxDjwMfQ7
eocZHWfTiqpXXhuofl730XaOwfRi6d2KF3uzyQO0dhDPqdIbvafEvgjzsGFIiJdiY2zC3E8bMHaj
U0owOwiir1Ja55+R5ogUtUYfsNJEIhsM/AYAadTRViMLSVhxhyX+/SlyuuxVFDboIUJvkPD/hZwO
QvZuQncU56TitIAggrfJWhe745QRFBWGcksP0r1RYWNbK7B6pnCn4sstLY1XbLkhOYd/lJKW0DPg
rdKvgL+vank++vSV6BnfSl2dDR++Fr4uT6KP7e1w8PY11uSZsa0gbz0vCg3s/oIzH9PS6c3enWaj
uL2EI9+w+DvJpnHkB0s3XMfwuExDdxWvl24ShOEq9CdJEidfh+ujAKq6bkhWP24lud2a6+FFVkDQ
U1kJJn7kTiI38I9JgRjGT0s0pCXj3PyITxNjrfTWxJRadpn5c4sl7DAkZ8SjaFxFZoMiG1oXBH3c
Ng8vdInG0AWqJ4A+KY09f0b2rR8E4Sxag6PiaeKGy+sl+DZeubMkjjP/MpolQXDwrTLMGUR3rl2/
f/vnl+/f/h3Bq7YZyie4FG6U7ntoK2sgslolsyCFyFd+mLnhdXLpLrNZ5GbRNAzTVbxMp+uvpgzz
w3kuiS3tfiuGotAPfygLmzqXXPFSX+S86etLT/AvRApe2xLTn/RFYYvN5RPGfhxHycz+Hp6NbWht
tCbxG8MfWio/YHHbWpM09qpL7ZCAGrj3yHGK4T7U1Ff/AQAA//8DAFBLAwQUAAYACAAAACEAWSMQ
7MwEAAC9EgAAIQAAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQ4LnhtbMxYW27jNhT9L9A9
COq3YlFPyphkYDtxUSCTBHVmAYxER+pIokrRHrvFALOtdjmzkl5Sol9xYtnOR3+ka+nw8L54KPPD
x0WRG3PK64yVlya6sE2DljFLsvL50vz8OLawadSClAnJWUkvzSWtzY9XP//0oerXeXJLlmwmDOAo
6z65NFMhqn6vV8cpLUh9wSpawrsp4wUR8JM/9xJOvgJ3kfcc2w56BclKsx3Pu4xn02kW02sWzwpa
ioaE05wI8L9Os6rWbFUXtorTGmjU6G2XxLKCaNnTH48L01AwPocHyLyCyONJnhglKeDBiJUCGIyv
mUiNEakkk8LU1SOnVFrl/FdeTaoHrobezR+4kSWSqqUwe+2LFqZ+lnNl9HaGP2uT9BdTXsg7ZMRY
XJpQuKW89uQzuhBG3DyM10/j9H4PNk5v9qB7eoLexqQyqsa5l+E4OpzHTOTUQKuotL91dcviL7VR
MohHht+Et0I0Mct7lbbpF5KqxTUvlbF2Zm8msBuFGKsQPT+Emm7nxI1cx3HDJlYU2HaL2Iy4Ya76
YjFkyVKOfoI7RErKOGXQqE8NZ16LiVjmVNnzHLUOJXT6O4Drv2C2NfsKIO2NgZW8qHEcBuVErjxa
Wp8nsPIKMcopKVfFElejPIu/GIIZNMmE8YnUgnJDJQrWKTBKdqHmUJS0TB4IJ9KdFfNo0HpUqWB1
kCrut4vs6iLrtn/ISUxTlifghHNeybNksYZ0r7aPsIvackc49Bx/u9wBCh1ZA1VuD4du0CC6lPuM
GivTeYl18CZWA8B092C9TawGgOntwdqbWA0A0z+E1QAwg0NYDQAzPITVADDxIawGgBkdwjaAfWuo
kk0+z1eL5cw1JTtILal6a00162Z3StW4R0w5oTErEyOnc5p3oFdr6wj6xzTj3dndI9nHbMZhu+tK
7x1Ln033sr+3mnmrLUuWelPKVELO3b2khpiqgVOST81G4FQhT93OHNsPW014ZT9zMUI+oM8UOKMg
/FZ9EGRlAjovTTVqdgdfgWrUxvqUm+ir+tdStTtxN74t3dvRyJYvQp5EdePb0ucdHW35kBuqMLoR
viW2mhA7WGr9CYQ7itwSOg4OJOwEwh3Z1oShp3auEwh3tL0llGzdi/LWBqAJAz88sSj/j13iOD3y
tR5dE0G39Egp6Ll6lIgXaoSajL0qR2rWN0VD/VB5ncJ/IhnF39HYxT5yBpZ3g+ESjjxriG8GVuR4
3tBDdhTh6Jv+h5VAqCIr6Dh7nnF6PxOqwlvlAIHfVw7HRr5l+5aD1okHH95/mwh0WcaMyZJvFkZ9
Sp5bmKngTWX+nBEOM+jiHPgYPqY475uRUGdkkmcJNe5mxdNOXoL3yEudJ0C9NzUHttGT+hY5jhf4
N9BRsOVa3uB6AH2Lh1YQYTxGoR9EjrPq21pGXoJ3Xdv1x/d/fvnx/d936FV104cLID+3tWgtY8Yz
CGQ4jAJnBJ4PkTe2vOsotAbjwLfGvut5oyEejNybb/KQAnn9mFN1+vFbos9NkPfi5KTIYs5qNhUX
MSvaI5hexb5SXrFMncIguz03mRP5PYl9+JcVYdR8iCjf9F15Kws/kfHDPeefSHU/V01SKFEdqUdV
Vj63PbKGyNj1sdPVfwAAAP//AwBQSwMEFAAGAAgAAAAhAGG3qN/tAgAAawcAACEAAABwcHQvc2xp
ZGVMYXlvdXRzL3NsaWRlTGF5b3V0Ny54bWysVUtu2zAQ3RfoHQR1rcj6OZIRO7D8KQqkiVGnB2Ak
yhZCkSxJO3aLALlWe5ycpENKdNIkBbLwRqRGM8N5742GZ+e7hjhbLGTN6NANTnqug2nBypquhu73
67mXuo5UiJaIMIqH7h5L93z08cMZH0hSXqA92ygHclA5QEN3rRQf+L4s1rhB8oRxTOFbxUSDFLyK
lV8KdAe5G+KHvV7fb1BN3S5evCeeVVVd4CkrNg2mqk0iMEEK6pfrmkubjb8nGxdYQhoT/W9Jas8B
7Q1B9NZ1jJvYgiFwR4C8WJLSoagBQ248tFHya4Gx3tHtZ8GXfCGM7+V2IZy61LFdjOt3Hzo380q3
ZuO/CF/ZLRrsKtHoFShwdkMXlNrrp69teKecojUWT9ZiffWGb7GeveHt2wP8Z4dqVG1xr+GEFs4U
KewsCCrwmpESCyc4ALSlS37BilvpUAbQNBMt0oNHC1+vfN1RXypovJ8gIiKVCwdCuUFbqHU2m6c6
Ox7VLmflXh96A6sxogGRaqn2BJsXrh8VKKhR/MrmUZoE4diLZyk8Tiexl6ezsZeFcZzHQS/L0uze
9kMJUFXd4Hm92gh8tVGuziWAEWgD+GEw9SZjqLtRE4IRPVCuRmEvSLxe4oWBZloZvqEGox0tF0ig
by+ytJpwg9OC8q0g/5clsrLMGVMgxnNhwmMIUynRKvNjgwScYMWxsUcQ57iMxJaRJalL7FxumpsX
vETH4AXGIaR+kxrD+5H7NgjDuJ/MoKPSKPPi8XQMfZvmXj9L03lwmvSzMDz0rdTIKVT33nZ9fPj9
6fHhzxF61Sx2MsKYupCq2zkbUQOQPM/64QQqz4N47sXT7NQbz/uJN0+iOJ7k6XgSze71hA3iQSGw
mdVfSjvlg/jVnG/qQjDJKnVSsKa7MHzO7rDgrDZ3RtDrpvwWEZAnTYOoH8WJVRlqs6upVgu/1Phh
JeIr4ldb0yRwGIg8MSYOl1rXI08uGru9JEd/AQAA//8DAFBLAwQUAAYACAAAACEA03UTs6ADAADR
CwAAIgAAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQxMC54bWysVt2O2jgUvl+p72Cl15mQ
kDAJKlMBA9VK086o0L13E2di1Yld21DYVaW+1u7j9El67MQwP1SCHXIRO87x5+9859g+b95uaobW
RCrKm5EXXvQ8RJqcF7S5H3mflnM/9ZDSuCkw4w0ZeVuivLdXr/54I4aKFTd4y1caAUajhnjkVVqL
YRCovCI1VhdckAb+lVzWWMOnvA8Kib8Bds2CqNcbBDWmjdfNl8fM52VJc3LN81VNGt2CSMKwBv6q
okI5NHEMmpBEAYyd/ZiS3grwFoTRy42HrJ1cw0joXYHr+YIVqME1DCypZgSBQOgvMKY5ZmhJNtqa
KbGUhJhes34nxULcSTv7w/pOIloYtA7FC7ofnZn9bNa2EzyZfu+6eLgpZW1aUAVtRh4Eb2vegRkD
EihvB/P9aF7dHrDNq9kB68AtEDxY1HjVknvuTuTcaUUJd145vkrc8PyLQg0Hf4z7rXs7i9Zn04qq
C4E2UJ1d+9N29mQ6sfRmwoutWeQztHYQD5nSC71lxH4I87I0JPBl2GQ4afxPC8jwWk8Zwc1OEH01
ZTT/gjRHpKAavcdKE4ksGdgPAGnU0VYjC0ma4g5L/PEh8nTcqSgsaccwcBL+Xsi+E/JRTqE7hnNS
cVYAlegc4hqpPMQlhU3QZrsH62/2k09R3BwjgEKwId3K+Fx/YQRas53QL4yHUcWGQz2KR6v50yWt
UycsuSA5h33NyJqwI+BtRE6AX1ZUHo/ePxF9zldSV0fDx6fC0/Ig+rl3Qux2wjXW5NEGsIK8dAMU
kPDqb7gqMCtd6rdn31lOmxKuCePFP9m8nyZhNPbjWQqvy2nsT9LZ2M+iOJ7EYS/L0uy7u3UKcFXT
mszp/UqS25W5TJ5EBQQ9FJWoFyZ+L/GjcB8U4HD+sCQuLHPOzUZ8GBibSi8NTKllG5mvKyxhBRec
/3Mw/SY451Vk4BRZMFoQ9GFVf36iS3IOXaDoAuiD0tjz58x5G0ZRPEhmkFFpP/Pj8fUY8jad+IMs
TefhZTLIomiXt8p43gC7Y9P1549/X//88d8ZctU2rtiCS+FG6a6HVpKCI5NJNoimwHwSxnM/vs4u
/fF8kPjzpB/H00k6nvZn303RFsbDXBJbEf5ZuFoyjJ9VkzXNJVe81Bc5r7uyNBD8G5GCU1uZhr2u
llxjc/kk6SCGJ3FhAm6utWxN4BfGf2iZfI/F7domSW2vuqkdElA6dzmyNzG+u1L86hcAAAD//wMA
UEsDBBQABgAIAAAAIQDebOHWmgQAACsSAAAhAAAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91
dDkueG1svJjtbts2FIb/D9g9CNpvRSJFfRlNCtuJhwFpEtTpBTASHQvV1yjasTcU6G1tl9Mr6SFF
WVbjNJ4j7I9FyYcPefiSryi+e7/JM2PNeJ2WxbmJzhzTYEVcJmnxeG5+up9ZoWnUghYJzcqCnZtb
VpvvL3795V01qrPkmm7LlTCAUdQjem4uhahGtl3HS5bT+qysWAH/LUqeUwG3/NFOOH0Cdp7Z2HF8
O6dpYer6/Jj65WKRxuyyjFc5K0QD4SyjAvpfL9OqbmnVMbSKsxowqna/S2JbQbZVGt9vTEOF8TU8
QOYFZB7Ps8QoaA4P7tJYrDgznlKxNKa0kiQVU1f3nDFZKta/82pe3XFV9WZ9x400kSiNMG39hw5T
t8VaFewfqj+2RTraLHgurzAixubcBOG28teWz9hGGHHzMO6exsvbA7Hx8upAtN02YO81KrNqOvc8
Hdymc5+KjBlol1Xb37q6LuPPtVGUkI9Mv0lvF9HkLK/VUg+/kCgd1/ypCl1nDo5E6EZBGKoUiReA
pv0xcSMXYzdockW+4+iI/YwbcjUSm0mZbGXtB7hCprSIlyVM1IeGmdViLrYZU+V1hnSHErb4CMH1
X9BaR98FyPJexUr+qHocKmVUrjxWWJ/msPJyMc0YLXZiiYtplsafDVEaLEmF8YHWgnFDDRSsUyBK
ulBtKCQrkjvKqezOjjwd6x5VKtk2SZX3z0V2W5HbaX+X0ZgtyyyBTuAhJIcVZ0JTmy76eOE9FLpI
Kx+FAcFeX3kfBVjKoZQnYeD6TcQxyr8kt5FTfq2WTlokYCWyqGqtbsAvVa1XZoMq4g6l5+xRPBzu
8yRE89yOFyFCjubJyB1PQjSPdDzkBnLVHAl09oGSooHeHjDEoczjBKCkaKDfATEOfRl2AlBSNDDY
AwZEKXcCUFI0MOyAkna8KD2gpGhgtAf0veBEUSTlsCcN6x1k94KQ63HfONwhjEMuU1Olt6TZQnuI
sqRTXx7Y8QK9Hl54e7ghQh5E/68eohbfgB6Cemv+7R6Ceh43gIegoT2kDxzAQ/rAATykDxzAQ/rA
ATykD3zZQyQeAnYbmDfuc+QyVNucurfPOcWPvNaPLqnob2TIEH6UiGduhJoRe9GOVKs/NQ11o8Z1
AV8gMou/o5kbegiPLXIVwk8wJdYkvBpbESZkQpATRWH0pf2eSSBVkeZslj7C7u12JZTCPTnA4A/J
gR3kWY5nYdQNPPRh+NeE38oyK0sp+b4warf2VmEWgjfK/LmiHFpoxXllv/lfxBl2RIJ2ROZZmjDj
ZpU//DAu/hDjAp/zgD44NK+8Rk+atwhj4ntXMKPglWuR8eUY5m04sfwoDGco8PwI4928rWXmBfTu
2On67es/v337+u8Ac1Vd2k95sJ/rWuiSseIpJDKZRD6eQs8niMwschkF1njme9bMcwmZTsLx1L36
Io8EEBnFnKmzhj+S9pQCkWfnFHka87IuF+IsLnN94GFX5RPjVZmqMw/k6FOKNc3Upj0gvhPtZIK+
tVfVWyn8XOYP14x/oNXtWk2SXJnqVD2q0uJRz5EuRObeHvJcfAcAAP//AwBQSwMEFAAGAAgAAAAh
AMQmd4XVAwAAsQwAACIAAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0MTEueG1stFfdbts2
FL4fsHcgtGtFf5QsGXUK27GHAWkT1G7vWYmOhVIiR9Ku3aFAX2t7nD7JDinJThy3sxHvRqSow4/n
fN85JPXq9aZiaE2lKnk9cIIr30G0znlR1g8D5/186qYOUprUBWG8pgNnS5Xz+vrXX16JvmLFLdny
lUaAUas+GThLrUXf81S+pBVRV1zQGr4tuKyIhlf54BWSfAbsinmh7ydeRcraaefLU+bzxaLM6Q3P
VxWtdQMiKSMa/FfLUqgOTZyCJiRVAGNnP3VJbwVEC8ToeakZHdbFfOMgay/X8CVwroGCfMYKVJMK
Bj6AaZkThqw9AsbQnG60NVNiLik1vXr9uxQzcS/t7Lfre4nKwqC1KI7XfmjN7Gu9th3vYPpD1yX9
zUJWpgV20GbggIhb8/TMGDiB8mYw34/my7sjtvlycsTa6xbwHi1qomqcex5O2IVzQEqwC69zXIlb
nn9SqOYQmOGhiXNn0QRvWrFsNdEGykFclqBcI1E7qzG1nb2PRwlKeyHO/Cb0KImDMH7KVZiEqf1u
OIjTIEij9JCJBlr09WbEi62Z/RFaYMB4NHAoMcE3sEzpmd4yal+EeVinJBgzYgqN1u77GRRapceM
knqnh74eszL/hDRHtCg1ekOUphJZCqAsAdK4pK1jFpLWxT2R5N1j5PGwdV1Yvzt/bQg/1zF6rqNh
6J6RnC45K8CV8BKSGuIOFIX1N/vJZygbpeFPhO31Ihz9n8IKw/ya7RR8odDGb6uzeiJ0I+bhkpat
M5ac0ZzDNsXomrIT4K3UZ8DPl6U8HT06E33KV1IvT4bH58KXi6Poly4x3JXYDdH0SWVZQl5aWQVU
kvoCRyFhi66mmj39h0VlVz3M/R9k+wKOPxPFX9k0SqHahi6epPDojbE7SidDNwsxHuHAz7I0+9qd
qgWEqsuKTsuHlaR3K3NIHqgChB5TJfSD2PVjNwz2ooAPl5cl7mSZcm4K8bEwNpVeKsxCy0aZP1dE
wgqdOP+x450jzmUZSTpGZqwsKHq7qj4e8GK32pfyApdKgD5Kjd1/Lpy3QRjiJJ5ARqVR5uLhzRDy
Nh25SZam06AXJ1kY7vJWmchr8O7UdP3+7e/fvn/75wK5apvuEgmHwq3SbQ+tZAmBjEZZEo7B81GA
py6+yXrucJrE7jSOMB6P0uE4mnw1l9EA93NJ7Y33j6K7Kwf42W25KnPJFV/oq5xX7bXbE/wzlYKX
9uYd+O1deU3MBusnGFzAcacy+Na11lsj/MzEDy2Tb4i4W9skqexRN7ZDAn4N2hzZm5jYu1+N638B
AAD//wMAUEsDBBQABgAIAAAAIQDg2BvwGQYAAJcaAAAUAAAAcHB0L3RoZW1lL3RoZW1lMS54bWzs
WU+LGzcUvxf6HcTcHY/tGf9Z4g322E7a7CYhu0nJUZ6RZ5TVjIwk764JgZIcC4XStPRS6K2H0jaQ
QC/pp9k2pU0hX6EajceWbJklzRYCjQ0e6c3vPf303tOTxnP5ymlKwDFiHNOs69QuuQ5AWUgjnMVd
587hqNJ2ABcwiyChGeo6c8SdK7sffnAZ7ogEpQhI/YzvwK6TCDHdqVZ5KMWQX6JTlMl7E8pSKGSX
xdWIwRNpNyXVuus2qynEmQMymEqzNycTHCJwmJt0dkvjQyJ/MsFzQUjYQW4aGRoKGx3V8guf84Aw
cAxJ15HjRPTkEJ0KBxDIhbzRdVz1caq7l6tLJSK26Gp6I/VZ6C0UoqO60mPxeKnoeb7X7C3tKwAR
m7hha9gcNpf2FACGoZxpwUXH+v1Of+AvsBqoaFpsD1qDRs3Aa/YbG/ien38NvAIVTW8DPxoFKx9q
oKLpW3zSqgeegVegotncwLfc3sBrGXgFSgjOjjbQrt9sBOVsl5AJJdes8I7vjVr1BXyFqmrZVehn
YluupfA+ZSMJUMGFAmdAzKdoAkOJCyDBY4bBHo4TmXhTmFEuxW7dHbkN+Zt/PdVSHoE7CGrahSjk
G6KcD+Ahw1PRdT6WVh0N8vrFj69fPAOvXzw9e/T87NEvZ48fnz362aJ4DWaxrvjq+y/+/vZT8Nez
7149+cqO5zr+958+++3XL+1AoQNffv30j+dPX37z+Z8/PLHAewyOdfghThEHN9AJuE1TOTfLAGjM
3kzjMIFY1+hlMYcZzHUs6KFIDPSNOSTQgusj04N3mawUNuDV2X2D8EHCZgJbgNeT1ADuU0r6lFnn
dD0fS/fCLIvtg7OZjrsN4bFt7GAtvsPZVKY8tpkMEmTQvEVkyGGMMiRAfo8eIWRRu4ex4dd9HDLK
6USAexj0Iba65BCPjWxaKV3DqYzL3EZQxtvwzf5d0KfEZn6Ajk2kXBWQ2EwiYrjxKpwJmFoZw5To
yD0oEhvJgzkLDYdzISMdI0LBMEKc23RusrlB97qsMPaw75N5aiKZwEc25B6kVEcO6FGQwHRq5Yyz
RMd+xI9kikJwiworCWqukLwv4wCzreG+i5ER7vPX9h1ZXO0Jkt+ZMduSQNRcj3MygUgZr66V9BRn
59b3tcruv6/s9sreY9i6tNbr+TbcehUPKIvwu1/EB3CW3UJy3byv4e9r+P+xhm9bzxdfuVfFWh3o
y2O7MpNuPcNPMCEHYk7QHldlnsvpRSMpVB2ltHxkmCayuRjOwMUMqjZgVHyCRXKQwKkcpqZGiPnC
dMzBlHK5USix1bbaaGbpPo0Kaa1WPqVKBShWcrnRlHK5LYlC2mytHseW5lUvVo/NJYFc901IaIOZ
JBoWEq1SeA4JNbMLYdGxsGjn5reyUJdFVOT6AzD/g8P3CkYy3yBBUR6nQr+M7oVHepszzWnXLdPr
5FwvJtIGCS3dTBJaGiYwQuviC451ZxVSg17uik0arfZ/Eeu8iKzVBpKZPXAi11zDl2ZCOO06E3lE
lM10Ku3xvG5CEmddJxQLR/+byjJlXAwgTwqYulXMP8UCMUBwKnNdDwPJVtxq9VY+x3eUXMd99zyn
LnqQ0WSCQrFFsurKe4UR6923BOcdOpOkD5LoBIzJjN2G0lF+q5Y7MMJcLL0ZYaYl98qLa+VqsRSN
f89WSxSSaQIXO4pezAu4ai/paPNQTNdnZfYXkxnHeZDeetc9X2mtaG7ZQPJd014//rtNXmO1qvsG
q6J0r9e6Tlnrtu0Sb78haNRWgxnUcsYWatv2jgs8EGjDLVNz2x5x0bvBetbmG0R5rlS9jdcUdHxf
Zv5AHldnRPDir4BT+YwQlH8wF5VAScvqcirAjOGu88D1e15Q94OK2/aHFa/huZW232tUer7fqA39
mjvo1x9Kp4gkrfnF2CP5PEPmi7cwSr7xJiYtj9mXQppWqToHV5WyehNTq29/EwOw9MyDZn3UaXT6
zUqn0RtVvEG/XekEzX5l0Axag9Eg8Nud0UMHHCuw12sEXnPYrjRrQVDxmm5Ov92ptLx6vee1eu2h
13u48LWceXkt3at47f4DAAD//wMAUEsDBAoAAAAAAAAAIQAzGKdnzyQAAM8kAAAXAAAAZG9jUHJv
cHMvdGh1bWJuYWlsLmpwZWf/2P/gABBKRklGAAEBAQBgAGAAAP/bAEMAAwICAwICAwMDAwQDAwQF
CAUFBAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQE
BQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFP/AABEIAJABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/
xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKC
CQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaH
iImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAME
BwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYn
KCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeY
mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/
2gAMAwEAAhEDEQA/AP1TooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKAPMvjH421DwLPp+o2bb47bTdWvpLVmIjnaC1MiK2O2R
+tc7r3j7x2niLS9AS90TStROo6fJPNFZSXMElrdRXWIcNIjblktmHmAjcCp2pyteyX+k2OqrtvbK
3vF2PHi4iVxtcbXXkdGHBHcdar6p4X0bXIZ4tS0ix1CK4EazJdWySrII2LRhgwOQrElc9CSRR1A8
0s/iV4r1a7tbaFNFsW1bXdT0jT5Z4pZVhjspbpHkkAdfMkkFuNsaldoDtubG2uR8VfGTxD4q8Gah
JYf2boq2NvYSXrtcSb7hpr+W2zayjbiMm3LIxVvNEgX5MFj7tqfhLQ9a0t9N1DRdPv8ATnladrO6
tY5IWkZy7OUYEFizMxOMkknqajvPBPh3Up7Ge70DS7qaxj8q0kms43a3TGNsZK/IMAcDAoA828Qf
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMkk1LAzEQhu+C
/2HJfZtsW6uGbQQrgmBBsH7gLSRjDc0mIRlb++/Nru1a0YOnJbzPPDszSX3x0dhiDTEZ76akGjBS
gFNeG7eckofFdXlGioTSaWm9gynZQiIX4vioVoErH+Eu+gARDaQim1ziKkzJG2LglCb1Bo1Mg0y4
HL762EjMx7ikQaqVXAIdMjahDaDUEiVthWXojWSn1KpXhvdoO4FWFCw04DDRalDRbxYhNunPgi45
IBuD2wB/ovuwpz+S6cHNZjPYjDo091/R5/ntfTdqaVy7KwVE1FpxNGhBzPz8pqb9sQ1UBIk+irnJ
ZbZ4BGMtIEKH7cN2w1YmnOfLeDWgL7ciQB6hWEtX6PxN6Fc1/U21hRHWpr1SMWYd0p/r3YK+fgO6
yIPxrzXsk6fR7GpxTcSQVSclOymHbMEqPh5yNnlpO/xR/y1sdh38x1gt2DkfT3h1emDcC0TX8c/H
JT4BAAD//wMAUEsBAi0AFAAGAAgAAAAhAERWqvzjAQAAYhIAABMAAAAAAAAAAAAAAAAAAAAAAFtD
b250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEAaPh0oQMBAADiAgAACwAAAAAAAAAAAAAA
AAAcBAAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEAS/U97L0AAAA3AQAAIAAAAAAAAAAAAAAA
AABQBwAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTUueG1sLnJlbHNQSwECLQAUAAYACAAAACEAFGs7
hb0AAAA3AQAAIAAAAAAAAAAAAAAAAABLCAAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTQueG1sLnJl
bHNQSwECLQAUAAYACAAAACEAPMIl3cAAAAA3AQAAIAAAAAAAAAAAAAAAAABGCQAAcHB0L3NsaWRl
cy9fcmVscy9zbGlkZTIueG1sLnJlbHNQSwECLQAUAAYACAAAACEAFGs7hb0AAAA3AQAAIAAAAAAA
AAAAAAAAAABECgAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTYueG1sLnJlbHNQSwECLQAUAAYACAAA
ACEAS/U97L0AAAA3AQAAIAAAAAAAAAAAAAAAAAA/CwAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTEu
eG1sLnJlbHNQSwECLQAUAAYACAAAACEAS/U97L0AAAA3AQAAIAAAAAAAAAAAAAAAAAA6DAAAcHB0
L3NsaWRlcy9fcmVscy9zbGlkZTMueG1sLnJlbHNQSwECLQAUAAYACAAAACEAFGs7hb0AAAA3AQAA
IAAAAAAAAAAAAAAAAAA1DQAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTgueG1sLnJlbHNQSwECLQAU
AAYACAAAACEAaYZYZFYBAAAZCgAAHwAAAAAAAAAAAAAAAAAwDgAAcHB0L19yZWxzL3ByZXNlbnRh
dGlvbi54bWwucmVsc1BLAQItABQABgAIAAAAIQBL9T3svQAAADcBAAAhAAAAAAAAAAAAAAAAAMsQ
AABwcHQvc2xpZGVzL19yZWxzL3NsaWRlMTMueG1sLnJlbHNQSwECLQAUAAYACAAAACEAFGs7hb0A
AAA3AQAAIQAAAAAAAAAAAAAAAADHEQAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTEyLnhtbC5yZWxz
UEsBAi0AFAAGAAgAAAAhABunAFzAAAAANwEAACEAAAAAAAAAAAAAAAAAwxIAAHBwdC9zbGlkZXMv
X3JlbHMvc2xpZGUxMS54bWwucmVsc1BLAQItABQABgAIAAAAIQAUazuFvQAAADcBAAAhAAAAAAAA
AAAAAAAAAMITAABwcHQvc2xpZGVzL19yZWxzL3NsaWRlMTAueG1sLnJlbHNQSwECLQAUAAYACAAA
ACEAS/U97L0AAAA3AQAAIAAAAAAAAAAAAAAAAAC+FAAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTku
eG1sLnJlbHNQSwECLQAUAAYACAAAACEAS/U97L0AAAA3AQAAIAAAAAAAAAAAAAAAAAC5FQAAcHB0
L3NsaWRlcy9fcmVscy9zbGlkZTcueG1sLnJlbHNQSwECLQAUAAYACAAAACEAQJ03btECAACtDgAA
FAAAAAAAAAAAAAAAAAC0FgAAcHB0L3ByZXNlbnRhdGlvbi54bWxQSwECLQAUAAYACAAAACEAEJ+8
vAoHAACtKgAAFgAAAAAAAAAAAAAAAAC3GQAAcHB0L3NsaWRlcy9zbGlkZTEwLnhtbFBLAQItABQA
BgAIAAAAIQAPRf3WAgQAAJUNAAAVAAAAAAAAAAAAAAAAAPUgAABwcHQvc2xpZGVzL3NsaWRlMy54
bWxQSwECLQAUAAYACAAAACEAECbPea0EAAB/FgAAFQAAAAAAAAAAAAAAAAAqJQAAcHB0L3NsaWRl
cy9zbGlkZTQueG1sUEsBAi0AFAAGAAgAAAAhAEwTxOapAwAAAQwAABUAAAAAAAAAAAAAAAAACioA
AHBwdC9zbGlkZXMvc2xpZGU1LnhtbFBLAQItABQABgAIAAAAIQDKvI6tdwcAAIgxAAAVAAAAAAAA
AAAAAAAAAOYtAABwcHQvc2xpZGVzL3NsaWRlNi54bWxQSwECLQAUAAYACAAAACEApNGsusADAABh
DAAAFQAAAAAAAAAAAAAAAACQNQAAcHB0L3NsaWRlcy9zbGlkZTcueG1sUEsBAi0AFAAGAAgAAAAh
APZxvrKmBwAA0DUAABUAAAAAAAAAAAAAAAAAgzkAAHBwdC9zbGlkZXMvc2xpZGU4LnhtbFBLAQIt
ABQABgAIAAAAIQBgScpFEAMAAIUJAAAWAAAAAAAAAAAAAAAAAFxBAABwcHQvc2xpZGVzL3NsaWRl
MTMueG1sUEsBAi0AFAAGAAgAAAAhAA7l0DNTBgAAdiUAABYAAAAAAAAAAAAAAAAAoEQAAHBwdC9z
bGlkZXMvc2xpZGUxMi54bWxQSwECLQAUAAYACAAAACEAzzcuz2wFAAD4JwAAFgAAAAAAAAAAAAAA
AAAnSwAAcHB0L3NsaWRlcy9zbGlkZTExLnhtbFBLAQItABQABgAIAAAAIQDMTI9weQYAACRWAAAV
AAAAAAAAAAAAAAAAAMdQAABwcHQvc2xpZGVzL3NsaWRlMi54bWxQSwECLQAUAAYACAAAACEAumGr
xJwDAABwCwAAFQAAAAAAAAAAAAAAAABzVwAAcHB0L3NsaWRlcy9zbGlkZTEueG1sUEsBAi0AFAAG
AAgAAAAhAGMeN5T9BQAAARYAABUAAAAAAAAAAAAAAAAAQlsAAHBwdC9zbGlkZXMvc2xpZGU5Lnht
bFBLAQItABQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAAAAAAAAAAAAAAHJhAABwcHQvc2xpZGVM
YXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0MS54bWwucmVsc1BLAQItABQABgAIAAAAIQDV0ZLxvAAA
ADcBAAAsAAAAAAAAAAAAAAAAAHhiAABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0
OC54bWwucmVsc1BLAQItABQABgAIAAAAIQDV0ZLxvAAAADcBAAAtAAAAAAAAAAAAAAAAAH5jAABw
cHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0MTAueG1sLnJlbHNQSwECLQAUAAYACAAA
ACEA1dGS8bwAAAA3AQAALQAAAAAAAAAAAAAAAACFZAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9z
bGlkZUxheW91dDExLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAA
AAAAAAAAjGUAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ5LnhtbC5yZWxzUEsB
Ai0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAAkmYAAHBwdC9zbGlkZUxheW91
dHMvX3JlbHMvc2xpZGVMYXlvdXQ2LnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEA
ACwAAAAAAAAAAAAAAAAAmGcAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ1Lnht
bC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAAnmgAAHBwdC9z
bGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ0LnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXR
kvG8AAAANwEAACwAAAAAAAAAAAAAAAAApGkAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVM
YXlvdXQzLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAA
qmoAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQyLnhtbC5yZWxzUEsBAi0AFAAG
AAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAAsGsAAHBwdC9zbGlkZUxheW91dHMvX3Jl
bHMvc2xpZGVMYXlvdXQ3LnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAFEDtWVCBwAAfDIAACEAAAAA
AAAAAAAAAAAAtmwAAHBwdC9zbGlkZU1hc3RlcnMvc2xpZGVNYXN0ZXIxLnhtbFBLAQItABQABgAI
AAAAIQCEWCnLNQQAAFoOAAAhAAAAAAAAAAAAAAAAADd0AABwcHQvc2xpZGVMYXlvdXRzL3NsaWRl
TGF5b3V0MS54bWxQSwECLQAUAAYACAAAACEAaaJfIRUBAADHBwAALAAAAAAAAAAAAAAAAACreAAA
cHB0L3NsaWRlTWFzdGVycy9fcmVscy9zbGlkZU1hc3RlcjEueG1sLnJlbHNQSwECLQAUAAYACAAA
ACEAk0Q+eyIDAAC9CAAAIQAAAAAAAAAAAAAAAAAKegAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxh
eW91dDYueG1sUEsBAi0AFAAGAAgAAAAhAEfA4gT0BAAANhkAACEAAAAAAAAAAAAAAAAAa30AAHBw
dC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQ1LnhtbFBLAQItABQABgAIAAAAIQBe9ocdygMAADsP
AAAhAAAAAAAAAAAAAAAAAJ6CAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0NC54bWxQSwEC
LQAUAAYACAAAACEAXVbP1nQEAAA7EQAAIQAAAAAAAAAAAAAAAACnhgAAcHB0L3NsaWRlTGF5b3V0
cy9zbGlkZUxheW91dDMueG1sUEsBAi0AFAAGAAgAAAAhAMX1gh+BAwAAmgsAACEAAAAAAAAAAAAA
AAAAWosAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQyLnhtbFBLAQItABQABgAIAAAAIQBZ
IxDszAQAAL0SAAAhAAAAAAAAAAAAAAAAABqPAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0
OC54bWxQSwECLQAUAAYACAAAACEAYbeo3+0CAABrBwAAIQAAAAAAAAAAAAAAAAAllAAAcHB0L3Ns
aWRlTGF5b3V0cy9zbGlkZUxheW91dDcueG1sUEsBAi0AFAAGAAgAAAAhANN1E7OgAwAA0QsAACIA
AAAAAAAAAAAAAAAAUZcAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQxMC54bWxQSwECLQAU
AAYACAAAACEA3mzh1poEAAArEgAAIQAAAAAAAAAAAAAAAAAxmwAAcHB0L3NsaWRlTGF5b3V0cy9z
bGlkZUxheW91dDkueG1sUEsBAi0AFAAGAAgAAAAhAMQmd4XVAwAAsQwAACIAAAAAAAAAAAAAAAAA
CqAAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQxMS54bWxQSwECLQAUAAYACAAAACEA4Ngb
8BkGAACXGgAAFAAAAAAAAAAAAAAAAAAfpAAAcHB0L3RoZW1lL3RoZW1lMS54bWxQSwECLQAKAAAA
AAAAACEAMxinZ88kAADPJAAAFwAAAAAAAAAAAAAAAABqqgAAZG9jUHJvcHMvdGh1bWJuYWlsLmpw
ZWdQSwECLQAUAAYACAAAACEARVXgaIkBAAAqAwAAEQAAAAAAAAAAAAAAAABuzwAAcHB0L3ZpZXdQ
cm9wcy54bWxQSwECLQAUAAYACAAAACEAhqDoaRsCAAADBQAAEQAAAAAAAAAAAAAAAAAm0QAAcHB0
L3ByZXNQcm9wcy54bWxQSwECLQAUAAYACAAAACEA2P2Nj6wAAAC2AAAAEwAAAAAAAAAAAAAAAABw
0wAAcHB0L3RhYmxlU3R5bGVzLnhtbFBLAQItABQABgAIAAAAIQBFQyG7xQIAAAsIAAAQAAAAAAAA
AAAAAAAAAE3UAABkb2NQcm9wcy9hcHAueG1sUEsBAi0AFAAGAAgAAAAhAI+JduBpAQAAqQIAABEA
AAAAAAAAAAAAAAAASNgAAGRvY1Byb3BzL2NvcmUueG1sUEsFBgAAAAA9AD0AIRIAAOjaAAAAAA==

--_002_CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40CO2PR0601MB792na_--


From nobody Wed Jun  3 09:52:16 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BFF9F1ABD38; Wed,  3 Jun 2015 09:52:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.551
X-Spam-Level: 
X-Spam-Status: No, score=-1.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4IzrFl0xgQ1m; Wed,  3 Jun 2015 09:52:10 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id A97C41ABC74; Wed,  3 Jun 2015 09:52:09 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id CAA2130295; Wed,  3 Jun 2015 18:52:08 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id MzBcptqJ9H1i; Wed,  3 Jun 2015 18:52:07 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 5913330299; Wed,  3 Jun 2015 18:52:07 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 7kzCA8gVUauJ; Wed,  3 Jun 2015 18:52:07 +0200 (CEST)
Received: from [IPv6:2001:660:7301:3728:2174:fad3:1aab:a548] (passerelle-interne.enst-bretagne.fr [192.108.117.210]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id 0D65330295; Wed,  3 Jun 2015 18:52:07 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Wed, 3 Jun 2015 18:52:17 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <2D529BC2-7786-470A-9147-38FC1EA5A6F6@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/OUf-XE6XYKsAP70vl3nHcgPFqm4>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 16:52:11 -0000

Hi Michel,

Thank you for the presentation - I=E2=80=99ve missed it and it clarifies =
some questions I had on the discussions on the ML from the last days.

Actually, I=E2=80=99m not that concerned with the possible clashes, but =
mostly with the possibility to use this mechanism for performance =
optimization. The aspect that interests me the most is the re-mapping of =
the hashes, which combined with URL hash compression can save 4 bytes =
from the URL and 4 bytes from the CBOR representation in some cases =
(assuming only 1-23 resources are re-maped, 3 bytes saved if 23-255, =
which should rarely be used).=20

This is somehow similar to the third alternate approach, in which each =
YANG module can specify the data node IDs.=20

To elaborate on this, if the YANG module can explicitly specify the hash =
value of some of its items, I think that you could solve the hash =
clashes with a deterministic algorithm working on the loaded modules. =
For example, if you have modules A, B, and C.=20
1) Module A=E2=80=99s  calculated IDs and module-defined data node IDs =
are put in the table
2) For each additional module:
   2.a) for each item, if there is a clash:
      while there is a clashing hash value, item=E2=80=99s hash value ++
=20
This way, for a fixed set of modules and node IDs you=E2=80=99ll have a =
collision-free hash table. The benefit of this is, as it is =
deterministic, you can pre-calculate the hash remappings offline / =
statically.

Another point is, in case someone wants to do something optimized, and =
remaps hash value 1 in module A and B, module A=E2=80=99s item will =
remain with hash 1, while module B=E2=80=99s item will become 2, both of =
which can be compressed efficiently in the URL and the CBOR =
representation (and both of which will always be 1 and 2 if modules A =
and B are loaded in this order, with no preceding modules).

Unfortunately, my knowledge of YANG / NETCONF is still basic, so maybe =
I=E2=80=99m missing something obvious which could render this =
impractical.

Best,
Alexander


> Le 3 juin 2015 =C3=A0 18:05, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> Hi Alexander
>=20
> At the last 6TiSCH bi-weekly call, 4 solutions have been presented to =
the hash clashes problem. Two based on a rehash table and two based on a =
new CoAP query parameter carrying the module name or registered module =
ID. This query parameter is used to select unambiguously the targeted =
data node(s) assuming that any hash collision within a module have been =
resolved at design time. You can find this presentation in attachment.
>=20
> Both of your proposals make sense to me but I still hope that the =
clash file can be avoided or be optional.
>=20
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com  =20
>=20
>=20
> -----Original Message-----
> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander Pelov
> Sent: 3 juin 2015 11:01
> To: 6tisch@ietf.org; core@ietf.org
> Subject: [core] CoMI remote server clash file and YANG hash in URL
>=20
> Hello everyone,
>=20
> I would like to discuss with you to ideas/proposals in this mail, =
namely:
> 1) Caching the yang clash file on a remote server
> 2) Compressing the URL representation of YANG hashes
>=20
> 1) Caching the yang clash file on a remote server Even though hash =
collisions should happen rarely (if ever), there may be cases when it =
could be inevitable, and as such, it may be interesting to cache the =
clash_file somewhere on a remote server to avoid sending it over the =
constrained wireless interface. It could be used for other cases, where =
some frequently used resources are re-hashed for performance purposes. =
Maybe it would be interesting to allow the server to specify a remote =
location for the clash file? For static collisions or optimizations it =
could be that the YANG definition includes alternative hash values, =
which could be used in addition to the normal ones.
>=20
> 2) Compressing the URL representation of YANG hashes Another point =
(which is unrelated), is to elide the leading "A"s from the base64 =
representation of the hash in the URL (which corresponds to eliding the =
leading zeroes from the hash). As specified in section 5.4. a hash value =
of 0x0000007e will be encoded as AAAA_, but if the leading A=E2=80=99s =
are elided it will be simply _
>=20
> This could pose problems only if in the future the size of the hash =
values is increased from 30 bits to some other (higher) value.
>=20
> This, however, could be very useful when having to frequently access =
the same resource. In such case, the server/network operator may decide =
to re-hash the URI to a shorter version, e.g. the =
/sys:system-state/sys:clock/sys:current-datetime could be remapped from =
0x15370408 and VNwQI to 0x1 and _=20
>=20
> Best,
> Alex
>=20
> PS.
> A typo (?), which may be already corrected, in the example of mod.uri =
on Page 26: the two responses have different scheme "mod.uri" and =
"moduri"=20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> <6TiSCH presentation on CoMI hash clashes r03.pptx>


From nobody Wed Jun  3 10:08:37 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C36841ACCFD for <core@ietfa.amsl.com>; Wed,  3 Jun 2015 10:08:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xkHYq_nzgjyT for <core@ietfa.amsl.com>; Wed,  3 Jun 2015 10:08:32 -0700 (PDT)
Received: from mail-lb0-f173.google.com (mail-lb0-f173.google.com [209.85.217.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B3AC1ACCFA for <core@ietf.org>; Wed,  3 Jun 2015 10:08:32 -0700 (PDT)
Received: by lbcmx3 with SMTP id mx3so11445772lbc.1 for <core@ietf.org>; Wed, 03 Jun 2015 10:08:31 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=E5EZxF5aTs/kowC1lxx31cKRNDX+O74nhpqzt37f1YY=; b=jEWhfINdpiLh8Wbw5RbYuVuWLj1q29OCdqNGg6tpQIQd1fAPszdoFa6+JsZbOEbvbJ gsooulrWX+a9E67VhsMsxqEFTb7e7j4JL5JiczWTly+7Mc0w88JwxeLlRbIIpB1z3wHw xjHfYUri3WkO1Cat5mGMer6QMGYzkl8qr+cPBZuF82tBsdPDub1X687Q7TfEY3Dri/XL 7SQMUaLZxVpAgzygzH9ROh+8SovZTST+POeu6BcwLs20K4E//wPD3BIsBxOT+zoKjTWG avARLmxu0PDSM7Hs/16njOvZG8vJP9uDeENZ0TU6HueL+qHeH5DdM3dlecGxBHJMm+wH 1SUQ==
X-Gm-Message-State: ALoCoQmE2IjuzABmarZwc/z+A+SO81cQCMq39xtP8co+WlkQKpdlovGPVqYu67N3mpzG43f918nB
MIME-Version: 1.0
X-Received: by 10.152.204.7 with SMTP id ku7mr32999860lac.38.1433351310878; Wed, 03 Jun 2015 10:08:30 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Wed, 3 Jun 2015 10:08:30 -0700 (PDT)
In-Reply-To: <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Wed, 3 Jun 2015 10:08:30 -0700
Message-ID: <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/JvoxYE_LpfafeK_U2C804Y19iRU>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 17:08:34 -0000

On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> Hi Alexander
>
> At the last 6TiSCH bi-weekly call, 4 solutions have been presented to the=
 hash clashes problem. Two based on a rehash table and two based on a new C=
oAP query parameter carrying the module name or registered module ID. This =
query parameter is used to select unambiguously the targeted data node(s) a=
ssuming that any hash collision within a module have been resolved at desig=
n time. You can find this presentation in attachment.
>
> Both of your proposals make sense to me but I still hope that the clash f=
ile can be avoided or be optional.
>


I agree we should not need the client to retrieve the rehash info
before using a server.
The CoMI authors have discussed a solution which I will try to write up tod=
ay
where a special "hash-clash" error is returned by CoMI if a rehash is neede=
d.

   1) client requests module-A object with hash  "1234";
        there is no extended-name/local-name,
        just the YANG hash, used in any request

   2) if '1234' has a collision in this server then a special error
code is returned;
       The return payload has the rehash info [old-hash, {
module-name, new-hash }+]
           { "1234": [
                  "module-A":"4567",
                  "module-X":"6523"
              ]
           }

    3) the client gets the error info, and knows which module its
"1234" is from.
         It finds the correct module name in the array and replaces its old=
-hash
         with the new-hash.

   4) client re-sends the request, using hash "4567" instead of "1234"

The rehash table goes away, and only this error info is used instead.

> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>


Andy

>
> -----Original Message-----
> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander Pelov
> Sent: 3 juin 2015 11:01
> To: 6tisch@ietf.org; core@ietf.org
> Subject: [core] CoMI remote server clash file and YANG hash in URL
>
> Hello everyone,
>
> I would like to discuss with you to ideas/proposals in this mail, namely:
> 1) Caching the yang clash file on a remote server
> 2) Compressing the URL representation of YANG hashes
>
> 1) Caching the yang clash file on a remote server Even though hash collis=
ions should happen rarely (if ever), there may be cases when it could be in=
evitable, and as such, it may be interesting to cache the clash_file somewh=
ere on a remote server to avoid sending it over the constrained wireless in=
terface. It could be used for other cases, where some frequently used resou=
rces are re-hashed for performance purposes. Maybe it would be interesting =
to allow the server to specify a remote location for the clash file? For st=
atic collisions or optimizations it could be that the YANG definition inclu=
des alternative hash values, which could be used in addition to the normal =
ones.
>
> 2) Compressing the URL representation of YANG hashes Another point (which=
 is unrelated), is to elide the leading "A"s from the base64 representation=
 of the hash in the URL (which corresponds to eliding the leading zeroes fr=
om the hash). As specified in section 5.4. a hash value of 0x0000007e will =
be encoded as AAAA_, but if the leading A=E2=80=99s are elided it will be s=
imply _
>
> This could pose problems only if in the future the size of the hash value=
s is increased from 30 bits to some other (higher) value.
>
> This, however, could be very useful when having to frequently access the =
same resource. In such case, the server/network operator may decide to re-h=
ash the URI to a shorter version, e.g. the /sys:system-state/sys:clock/sys:=
current-datetime could be remapped from 0x15370408 and VNwQI to 0x1 and _
>
> Best,
> Alex
>
> PS.
> A typo (?), which may be already corrected, in the example of mod.uri on =
Page 26: the two responses have different scheme "mod.uri" and "moduri"
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>


From nobody Wed Jun  3 11:17:05 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BCC931A90BA; Wed,  3 Jun 2015 11:17:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.352
X-Spam-Level: *
X-Spam-Status: No, score=1.352 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_31=0.6, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Jgg1jJwfZ23O; Wed,  3 Jun 2015 11:17:00 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0774.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:774]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 46AE41ACE93; Wed,  3 Jun 2015 11:16:59 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB789.namprd06.prod.outlook.com (10.141.247.141) with Microsoft SMTP Server (TLS) id 15.1.172.22; Wed, 3 Jun 2015 18:16:35 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Wed, 3 Jun 2015 18:16:35 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgA==
Date: Wed, 3 Jun 2015 18:16:34 +0000
Message-ID: <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com>
In-Reply-To: <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB789;
x-microsoft-antispam-prvs: <CO2PR0601MB789C2EFF94C4C1416A20114FEB40@CO2PR0601MB789.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB789; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB789; 
x-forefront-prvs: 05961EBAFC
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(38414003)(189002)(199003)(377454003)(24454002)(13464003)(377424004)(53754006)(51704005)(122556002)(99286002)(40100003)(5890100001)(50986999)(106116001)(76176999)(54356999)(2950100001)(76576001)(74316001)(101416001)(102836002)(2900100001)(15975445007)(62966003)(5002640100001)(77156002)(92566002)(19580405001)(77096005)(106356001)(68736005)(15974865002)(19580395003)(4001540100001)(46102003)(2656002)(86362001)(87936001)(5001920100001)(66066001)(64706001)(97736004)(105586002)(81156007)(33656002)(5001860100001)(5001960100002)(189998001)(5001830100001)(110136002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB789; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2015 18:16:34.2909 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB789
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/_BcsGDYVyveZewyrC8Q6aTXRLL0>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 18:17:02 -0000

SGkgQW5keQ0KDQpDb3VwbGUgb2YgcXVlc3Rpb25zIGFib3V0IHlvdXIgcHJvcG9zZWQgc29sdXRp
b24uDQoNCj09PSBRdWVzdGlvbiAjMSwgTmV3IFlBTkcgc3RhdGVtZW50DQoNCllvdXIgc29sdXRp
b24gd29ya3Mgb25seSBpZiBoYXNoIGNsYXNoZXMgd2l0aGluIGEgbW9kdWxlIGFyZSByZXNvbHZl
ZCBhdCBkZXNpZ24gdGltZS4gSWYgbm90LCB0aGUgZXJyb3IgbWVzc2FnZSB3aWxsIHJldHVybiB0
aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIHdoaWNoIGlzIG5vdCBzdWZmaWNpZW50IHRvIHJlc29s
dmUgd2hpY2ggZGF0YSBub2RlIGlzIHdoaWNoLg0KDQogICB7ICIxMjM0IjogWw0KICAgICAgICAg
ICJtb2R1bGUtQSI6IjQ1NjciLA0KICAgICAgICAgICJtb2R1bGUtQSI6IjY1MjMiDQogICAgICBd
DQogICB9DQoNCklzIGl0IHBvc3NpYmxlL2FjY2VwdGFibGUgdG8gcmVxdWVzdCBhIG5ldyBZQU5H
IHN0YXRlbWVudCB0byBtYW51YWxseSBhc3NpZ24gYSBJRCB0byBhIGRhdGEgbm9kZT8NClNhbWUg
cXVlc3Rpb24gZm9yIGEgbW9kdWxlIElEPw0KDQpGb3IgZXhhbXBsZSAoc2VlICJpZCAxNiIgYW5k
ICJpZCAyNSIgYmVsbG93KSA6DQoNCiAgIG1vZHVsZSBhIHsNCiAgICAgIG5hbWVzcGFjZSBhLW5z
Ow0KICAgICAgcHJlZml4IGE7DQogICAgICBpZCAxNjsNCiAgICAgIHJldmlzaW9uIDIwMTUtMDEt
MDE7DQoNCiAgICAgIGxlYWYgbGVhZkExIHsgdHlwZSBzdHJpbmc7IGlkIDI1IH0NCiAgICAgIGNv
bnRhaW5lciBjb250YWluZXJBIHsNCiAgICAgICAgIGxlYWYgbGVhZkEyIHsgdHlwZSBzdHJpbmd9
DQogICAgICB9DQogICB9DQoNCj09PSBRdWVzdGlvbiAjMiwgSW50cm9kdWN0aW9uIG9mIGFuIG9w
dGlvbmFsIHF1ZXJ5IHBhcmFtZXRlciB1c2VkIHRvIHRhcmdldCBhIHNwZWNpZmljIG1vZHVsZQ0K
DQpGb3Igbm9kZXMgLyBuZXR3b3JrcyB3aGljaCBjYW4gYWZmb3JkIGEgc2xpdGVseSBsYXJnZXIg
cGF5bG9hZCAoSUVFRSA4MDIuMTUuNGcgZm9yIGV4YW1wbGUpIGJ1dCB3YW50IHRvIGF2b2lkIHRo
ZSBwcm9jZXNzaW5nIGFuZCBzdG9yYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9ycG9zZWQgZXJy
b3IgbWVzc2FnZSwgYXJlIHlvdSBvcHBvc2VkIHRvIHRoZSBzdXBwb3J0IG9mIGFuIG9wdGlvbmFs
IENvQVAgcXVlcnkgcGFyYW1ldGVyIHVzZSBjYXJyeSB0aGUgbW9kdWxlIG5hbWUgb3IgbW9kdWxl
IElEID8NCg0KRm9yIGV4YW1wbGU6DQoNCkdFVCBleGFtcGxlLmNvbS9ZOGQ3cz9zZWxlY3Q9IGll
dGYtNnRpc2NoLW1hYw0KDQo9PT0gUXVlc3Rpb24gIzMsIFVzZSBvZiB0aGUgc2VsZWN0IHF1ZXJ5
IHBhcmFtZXRlciBpbnN0ZWFkIG9mIHRoZSBVUkkNCg0KQXJlIHlvdSBvcG9zZWQgdG8gdGhlIHVz
ZSBvZiB0aGUgc2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBpbnN0ZWFkIG9mIHRoZSBVUkkgdG8gaWRl
bnRpZnkgZGF0YSBub2RlKHMpDQoNCkZvciBleGFtcGxlOg0KDQpHRVQgZXhhbXBsZS5jb20vbWc/
c2VsZWN0PVk4ZDdzDQpHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0PVk4ZDdzLE5LSGFBDQpHRVQg
ZXhhbXBsZS5jb20vbWc/c2VsZWN0PWlldGYtNnRpc2NoLW1hYyhZOGQ3cyxOS0hhQSkNCg0KPT09
IFF1ZXN0aW9uICM0LCBDb21wcmVzc2luZyBZQU5HIGhhc2ggYmFzZTY0IHJlcHJlc2VudGF0aW9u
DQoNCkFyZSB5b3Ugb3Bvc2VkIHRvIHRoZSBjb21wcmVzc2lvbiBvZiB0aGUgYmFzZTY0IHJlcHJl
c2VudGF0aW9uIGFzIHByb3BzZWQgYnkgQWxleGFuZGVyLg0KDQpGb3IgZXhhbXBsZToNCg0KR0VU
IGV4YW1wbGUuY29tL21nP3NlbGVjdD03cw0KSW5zdGVhZCBvZg0KR0VUIGV4YW1wbGUuY29tL21n
P3NlbGVjdD0gQUFBN3MNCg0KTWljaGVsIFZlaWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBE
aXJlY3Rvcg0KVHJpbGxpYW50IEluYy4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNo
ZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20NCnd3dy50cmlsbGlhbnRpbmMuY29tIMKgIA0K
DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBBbmR5IEJpZXJtYW4gW21haWx0
bzphbmR5QHl1bWF3b3Jrcy5jb21dIA0KU2VudDogMyBqdWluIDIwMTUgMTM6MDkNClRvOiBNaWNo
ZWwgVmVpbGxldHRlDQpDYzogQWxleGFuZGVyIFBlbG92OyA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVA
aWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZW1vdGUgc2VydmVyIGNsYXNoIGZp
bGUgYW5kIFlBTkcgaGFzaCBpbiBVUkwNCg0KT24gV2VkLCBKdW4gMywgMjAxNSBhdCA5OjA1IEFN
LCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+IHdy
b3RlOg0KPiBIaSBBbGV4YW5kZXINCj4NCj4gQXQgdGhlIGxhc3QgNlRpU0NIIGJpLXdlZWtseSBj
YWxsLCA0IHNvbHV0aW9ucyBoYXZlIGJlZW4gcHJlc2VudGVkIHRvIHRoZSBoYXNoIGNsYXNoZXMg
cHJvYmxlbS4gVHdvIGJhc2VkIG9uIGEgcmVoYXNoIHRhYmxlIGFuZCB0d28gYmFzZWQgb24gYSBu
ZXcgQ29BUCBxdWVyeSBwYXJhbWV0ZXIgY2FycnlpbmcgdGhlIG1vZHVsZSBuYW1lIG9yIHJlZ2lz
dGVyZWQgbW9kdWxlIElELiBUaGlzIHF1ZXJ5IHBhcmFtZXRlciBpcyB1c2VkIHRvIHNlbGVjdCB1
bmFtYmlndW91c2x5IHRoZSB0YXJnZXRlZCBkYXRhIG5vZGUocykgYXNzdW1pbmcgdGhhdCBhbnkg
aGFzaCBjb2xsaXNpb24gd2l0aGluIGEgbW9kdWxlIGhhdmUgYmVlbiByZXNvbHZlZCBhdCBkZXNp
Z24gdGltZS4gWW91IGNhbiBmaW5kIHRoaXMgcHJlc2VudGF0aW9uIGluIGF0dGFjaG1lbnQuDQo+
DQo+IEJvdGggb2YgeW91ciBwcm9wb3NhbHMgbWFrZSBzZW5zZSB0byBtZSBidXQgSSBzdGlsbCBo
b3BlIHRoYXQgdGhlIGNsYXNoIGZpbGUgY2FuIGJlIGF2b2lkZWQgb3IgYmUgb3B0aW9uYWwuDQo+
DQoNCg0KSSBhZ3JlZSB3ZSBzaG91bGQgbm90IG5lZWQgdGhlIGNsaWVudCB0byByZXRyaWV2ZSB0
aGUgcmVoYXNoIGluZm8gYmVmb3JlIHVzaW5nIGEgc2VydmVyLg0KVGhlIENvTUkgYXV0aG9ycyBo
YXZlIGRpc2N1c3NlZCBhIHNvbHV0aW9uIHdoaWNoIEkgd2lsbCB0cnkgdG8gd3JpdGUgdXAgdG9k
YXkgd2hlcmUgYSBzcGVjaWFsICJoYXNoLWNsYXNoIiBlcnJvciBpcyByZXR1cm5lZCBieSBDb01J
IGlmIGEgcmVoYXNoIGlzIG5lZWRlZC4NCg0KICAgMSkgY2xpZW50IHJlcXVlc3RzIG1vZHVsZS1B
IG9iamVjdCB3aXRoIGhhc2ggICIxMjM0IjsNCiAgICAgICAgdGhlcmUgaXMgbm8gZXh0ZW5kZWQt
bmFtZS9sb2NhbC1uYW1lLA0KICAgICAgICBqdXN0IHRoZSBZQU5HIGhhc2gsIHVzZWQgaW4gYW55
IHJlcXVlc3QNCg0KICAgMikgaWYgJzEyMzQnIGhhcyBhIGNvbGxpc2lvbiBpbiB0aGlzIHNlcnZl
ciB0aGVuIGEgc3BlY2lhbCBlcnJvciBjb2RlIGlzIHJldHVybmVkOw0KICAgICAgIFRoZSByZXR1
cm4gcGF5bG9hZCBoYXMgdGhlIHJlaGFzaCBpbmZvIFtvbGQtaGFzaCwgeyBtb2R1bGUtbmFtZSwg
bmV3LWhhc2ggfStdDQogICAgICAgICAgIHsgIjEyMzQiOiBbDQogICAgICAgICAgICAgICAgICAi
bW9kdWxlLUEiOiI0NTY3IiwNCiAgICAgICAgICAgICAgICAgICJtb2R1bGUtWCI6IjY1MjMiDQog
ICAgICAgICAgICAgIF0NCiAgICAgICAgICAgfQ0KDQogICAgMykgdGhlIGNsaWVudCBnZXRzIHRo
ZSBlcnJvciBpbmZvLCBhbmQga25vd3Mgd2hpY2ggbW9kdWxlIGl0cyAiMTIzNCIgaXMgZnJvbS4N
CiAgICAgICAgIEl0IGZpbmRzIHRoZSBjb3JyZWN0IG1vZHVsZSBuYW1lIGluIHRoZSBhcnJheSBh
bmQgcmVwbGFjZXMgaXRzIG9sZC1oYXNoDQogICAgICAgICB3aXRoIHRoZSBuZXctaGFzaC4NCg0K
ICAgNCkgY2xpZW50IHJlLXNlbmRzIHRoZSByZXF1ZXN0LCB1c2luZyBoYXNoICI0NTY3IiBpbnN0
ZWFkIG9mICIxMjM0Ig0KDQpUaGUgcmVoYXNoIHRhYmxlIGdvZXMgYXdheSwgYW5kIG9ubHkgdGhp
cyBlcnJvciBpbmZvIGlzIHVzZWQgaW5zdGVhZC4NCg0KPiBNaWNoZWwgVmVpbGxldHRlDQo+IFN5
c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INCj4gVHJpbGxpYW50IEluYy4NCj4gVGVsOiA0NTAt
Mzc1LTA1NTYgZXh0LiAyMzcNCj4gbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+
IHd3dy50cmlsbGlhbnRpbmMuY29tDQo+DQoNCg0KQW5keQ0KDQo+DQo+IC0tLS0tT3JpZ2luYWwg
TWVzc2FnZS0tLS0tDQo+IEZyb206IGNvcmUgW21haWx0bzpjb3JlLWJvdW5jZXNAaWV0Zi5vcmdd
IE9uIEJlaGFsZiBPZiBBbGV4YW5kZXIgUGVsb3YNCj4gU2VudDogMyBqdWluIDIwMTUgMTE6MDEN
Cj4gVG86IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KPiBTdWJqZWN0OiBbY29yZV0g
Q29NSSByZW1vdGUgc2VydmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiBVUkwNCj4NCj4g
SGVsbG8gZXZlcnlvbmUsDQo+DQo+IEkgd291bGQgbGlrZSB0byBkaXNjdXNzIHdpdGggeW91IHRv
IGlkZWFzL3Byb3Bvc2FscyBpbiB0aGlzIG1haWwsIG5hbWVseToNCj4gMSkgQ2FjaGluZyB0aGUg
eWFuZyBjbGFzaCBmaWxlIG9uIGEgcmVtb3RlIHNlcnZlcg0KPiAyKSBDb21wcmVzc2luZyB0aGUg
VVJMIHJlcHJlc2VudGF0aW9uIG9mIFlBTkcgaGFzaGVzDQo+DQo+IDEpIENhY2hpbmcgdGhlIHlh
bmcgY2xhc2ggZmlsZSBvbiBhIHJlbW90ZSBzZXJ2ZXIgRXZlbiB0aG91Z2ggaGFzaCBjb2xsaXNp
b25zIHNob3VsZCBoYXBwZW4gcmFyZWx5IChpZiBldmVyKSwgdGhlcmUgbWF5IGJlIGNhc2VzIHdo
ZW4gaXQgY291bGQgYmUgaW5ldml0YWJsZSwgYW5kIGFzIHN1Y2gsIGl0IG1heSBiZSBpbnRlcmVz
dGluZyB0byBjYWNoZSB0aGUgY2xhc2hfZmlsZSBzb21ld2hlcmUgb24gYSByZW1vdGUgc2VydmVy
IHRvIGF2b2lkIHNlbmRpbmcgaXQgb3ZlciB0aGUgY29uc3RyYWluZWQgd2lyZWxlc3MgaW50ZXJm
YWNlLiBJdCBjb3VsZCBiZSB1c2VkIGZvciBvdGhlciBjYXNlcywgd2hlcmUgc29tZSBmcmVxdWVu
dGx5IHVzZWQgcmVzb3VyY2VzIGFyZSByZS1oYXNoZWQgZm9yIHBlcmZvcm1hbmNlIHB1cnBvc2Vz
LiBNYXliZSBpdCB3b3VsZCBiZSBpbnRlcmVzdGluZyB0byBhbGxvdyB0aGUgc2VydmVyIHRvIHNw
ZWNpZnkgYSByZW1vdGUgbG9jYXRpb24gZm9yIHRoZSBjbGFzaCBmaWxlPyBGb3Igc3RhdGljIGNv
bGxpc2lvbnMgb3Igb3B0aW1pemF0aW9ucyBpdCBjb3VsZCBiZSB0aGF0IHRoZSBZQU5HIGRlZmlu
aXRpb24gaW5jbHVkZXMgYWx0ZXJuYXRpdmUgaGFzaCB2YWx1ZXMsIHdoaWNoIGNvdWxkIGJlIHVz
ZWQgaW4gYWRkaXRpb24gdG8gdGhlIG5vcm1hbCBvbmVzLg0KPg0KPiAyKSBDb21wcmVzc2luZyB0
aGUgVVJMIHJlcHJlc2VudGF0aW9uIG9mIFlBTkcgaGFzaGVzIEFub3RoZXIgcG9pbnQgDQo+ICh3
aGljaCBpcyB1bnJlbGF0ZWQpLCBpcyB0byBlbGlkZSB0aGUgbGVhZGluZyAiQSJzIGZyb20gdGhl
IGJhc2U2NCANCj4gcmVwcmVzZW50YXRpb24gb2YgdGhlIGhhc2ggaW4gdGhlIFVSTCAod2hpY2gg
Y29ycmVzcG9uZHMgdG8gZWxpZGluZyANCj4gdGhlIGxlYWRpbmcgemVyb2VzIGZyb20gdGhlIGhh
c2gpLiBBcyBzcGVjaWZpZWQgaW4gc2VjdGlvbiA1LjQuIGEgaGFzaCANCj4gdmFsdWUgb2YgMHgw
MDAwMDA3ZSB3aWxsIGJlIGVuY29kZWQgYXMgQUFBQV8sIGJ1dCBpZiB0aGUgbGVhZGluZyBB4oCZ
cyANCj4gYXJlIGVsaWRlZCBpdCB3aWxsIGJlIHNpbXBseSBfDQo+DQo+IFRoaXMgY291bGQgcG9z
ZSBwcm9ibGVtcyBvbmx5IGlmIGluIHRoZSBmdXR1cmUgdGhlIHNpemUgb2YgdGhlIGhhc2ggdmFs
dWVzIGlzIGluY3JlYXNlZCBmcm9tIDMwIGJpdHMgdG8gc29tZSBvdGhlciAoaGlnaGVyKSB2YWx1
ZS4NCj4NCj4gVGhpcywgaG93ZXZlciwgY291bGQgYmUgdmVyeSB1c2VmdWwgd2hlbiBoYXZpbmcg
dG8gZnJlcXVlbnRseSBhY2Nlc3MgDQo+IHRoZSBzYW1lIHJlc291cmNlLiBJbiBzdWNoIGNhc2Us
IHRoZSBzZXJ2ZXIvbmV0d29yayBvcGVyYXRvciBtYXkgDQo+IGRlY2lkZSB0byByZS1oYXNoIHRo
ZSBVUkkgdG8gYSBzaG9ydGVyIHZlcnNpb24sIGUuZy4gdGhlIA0KPiAvc3lzOnN5c3RlbS1zdGF0
ZS9zeXM6Y2xvY2svc3lzOmN1cnJlbnQtZGF0ZXRpbWUgY291bGQgYmUgcmVtYXBwZWQgDQo+IGZy
b20gMHgxNTM3MDQwOCBhbmQgVk53UUkgdG8gMHgxIGFuZCBfDQo+DQo+IEJlc3QsDQo+IEFsZXgN
Cj4NCj4gUFMuDQo+IEEgdHlwbyAoPyksIHdoaWNoIG1heSBiZSBhbHJlYWR5IGNvcnJlY3RlZCwg
aW4gdGhlIGV4YW1wbGUgb2YgbW9kLnVyaSBvbiBQYWdlIDI2OiB0aGUgdHdvIHJlc3BvbnNlcyBo
YXZlIGRpZmZlcmVudCBzY2hlbWUgIm1vZC51cmkiIGFuZCAibW9kdXJpIg0KPg0KPiBfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBjb3JlIG1haWxpbmcg
bGlzdA0KPiBjb3JlQGlldGYub3JnDQo+IGh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlz
dGluZm8vY29yZQ0KPg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KPiBjb3JlIG1haWxpbmcgbGlzdA0KPiBjb3JlQGlldGYub3JnDQo+IGh0dHBzOi8v
d3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZQ0KPg0K


From nobody Wed Jun  3 11:53:49 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 721391AD37C for <core@ietfa.amsl.com>; Wed,  3 Jun 2015 11:53:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.875
X-Spam-Level: *
X-Spam-Status: No, score=1.875 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XvbPv7GT6EVm for <core@ietfa.amsl.com>; Wed,  3 Jun 2015 11:53:45 -0700 (PDT)
Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com [209.85.217.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7FCA41AD371 for <core@ietf.org>; Wed,  3 Jun 2015 11:53:40 -0700 (PDT)
Received: by lbcue7 with SMTP id ue7so13251241lbc.0 for <core@ietf.org>; Wed, 03 Jun 2015 11:53:39 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=sy3Bd+kUICaoKjx0crqM//dWUkWZu/fWTlF9mzBFI7I=; b=eXlBanragMo+o/igpA+9Cu5EopAVYb1T6aHVo0mvw94j+vTwsNp5ala7em6M1B/n1+ APb6rHnr8815N83ygdmPzTYxiT1Y43qR6Lv3xCwa6oz75z8F5JfCr1eoyzTLMXjlDSJ+ wt6Jv3MUpLBB8k16GRZ7eyKnN4AkjOdKGrdyamBkDzKHstD2Vv5WkYGrQYzkEiTO42jB ehuEW9+w/UPdnvO71rviB7lforyfsPmDskND7nHNpT35VZ9FeNUuH++Euxl20LQuD4Ly aw/F0sccROTD5CdN0Smz3bFgMPuI7LjdtMwuhk/AwfuP/bw7q6m8qMsxSVbGQ9mftay8 /2rw==
X-Gm-Message-State: ALoCoQkkH3fkd3/qCTvXyLtx55Y9R/iaSwWpILYGnSumTKvkE96aqlf9qMgQjV2xsZ11V0HzGvH1
MIME-Version: 1.0
X-Received: by 10.152.116.49 with SMTP id jt17mr33260109lab.82.1433357618912;  Wed, 03 Jun 2015 11:53:38 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Wed, 3 Jun 2015 11:53:38 -0700 (PDT)
In-Reply-To: <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Wed, 3 Jun 2015 11:53:38 -0700
Message-ID: <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/8i0OzmpOh5hePQXX_avIyPLS7pE>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 18:53:47 -0000

On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> Hi Andy
>
> Couple of questions about your proposed solution.
>
> =3D=3D=3D Question #1, New YANG statement
>
> Your solution works only if hash clashes within a module are resolved at =
design time. If not, the error message will return the following informatio=
n which is not sufficient to resolve which data node is which.
>
>    { "1234": [
>           "module-A":"4567",
>           "module-A":"6523"
>       ]
>    }
>


The original proposal had a 3-tuple { module-name, path-expr, new-hash }
We discussed some optimizations in the 6TISCH call to reduce the size of
the path-expr and still not require the client to store all the path string=
s,
such as store a few bytes from the path strings like 6th and 11th bytes
(Avoid the common ietf- prefix for many module names).

This is not deterministic. Only the full path string is fool-proof.
I would prefer if hash collisions in a single module were not allowed.
They need to be resolved at design time.  If this is not possible, then
a standard rehash algorithm should be used so the collision is resolved
in a predictable way.  e.g., try appending "_", then try "__", etc.
The result would be that hash collisions in a single module do not
occur in CoMI.


> Is it possible/acceptable to request a new YANG statement to manually ass=
ign a ID to a data node?
> Same question for a module ID?
>
> For example (see "id 16" and "id 25" bellow) :
>
>    module a {
>       namespace a-ns;
>       prefix a;
>       id 16;
>       revision 2015-01-01;
>
>       leaf leafA1 { type string; id 25 }
>       container containerA {
>          leaf leafA2 { type string}
>       }
>    }


You could have an extension statement do anything you want:

    comi:id  16;

But these numbers do not exist any any modules and so they
cannot be relied on in CoMI.


>
> =3D=3D=3D Question #2, Introduction of an optional query parameter used t=
o target a specific module
>
> For nodes / networks which can afford a slitely larger payload (IEEE 802.=
15.4g for example) but want to avoid the processing and storage associated =
with the porposed error message, are you opposed to the support of an optio=
nal CoAP query parameter use carry the module name or module ID ?
>
> For example:
>
> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>
> =3D=3D=3D Question #3, Use of the select query parameter instead of the U=
RI
>
> Are you oposed to the use of the select query parameter instead of the UR=
I to identify data node(s)
>

Not really.

I don't know how mixed the modules will get in CoMI.
In NETCONF, modules tend to use augment a lot,
so the nodes from 'module-A' may be nested nodes.
Retrieving just the augmenting nodes and ignoring the
augmented nodes would likely be operationally useless.
e.g., when augmenting a list, the key leafs are needed
to identify the instance.

I would like to keep CoMI extremely simple.
More bells and whistles means increased
memory and CPU requirements. I am glad CORE and 6TISCH
WGs are so concerned about constrained resources.
Only the most important bells and whistles will get standardized.


> For example:
>
> GET example.com/mg?select=3DY8d7s
> GET example.com/mg?select=3DY8d7s,NKHaA
> GET example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>
> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>
> Are you oposed to the compression of the base64 representation as propsed=
 by Alexander.
>

No.  Optimizations that reduce the encoding size are important.
I want to use standard CBOR.  No special hacks just for CoMI.

> For example:
>
> GET example.com/mg?select=3D7s
> Instead of
> GET example.com/mg?select=3D AAA7s
>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>

Andy

> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: 3 juin 2015 13:09
> To: Michel Veillette
> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>
> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette <Michel.Veillette@trilli=
antinc.com> wrote:
>> Hi Alexander
>>
>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented to th=
e hash clashes problem. Two based on a rehash table and two based on a new =
CoAP query parameter carrying the module name or registered module ID. This=
 query parameter is used to select unambiguously the targeted data node(s) =
assuming that any hash collision within a module have been resolved at desi=
gn time. You can find this presentation in attachment.
>>
>> Both of your proposals make sense to me but I still hope that the clash =
file can be avoided or be optional.
>>
>
>
> I agree we should not need the client to retrieve the rehash info before =
using a server.
> The CoMI authors have discussed a solution which I will try to write up t=
oday where a special "hash-clash" error is returned by CoMI if a rehash is =
needed.
>
>    1) client requests module-A object with hash  "1234";
>         there is no extended-name/local-name,
>         just the YANG hash, used in any request
>
>    2) if '1234' has a collision in this server then a special error code =
is returned;
>        The return payload has the rehash info [old-hash, { module-name, n=
ew-hash }+]
>            { "1234": [
>                   "module-A":"4567",
>                   "module-X":"6523"
>               ]
>            }
>
>     3) the client gets the error info, and knows which module its "1234" =
is from.
>          It finds the correct module name in the array and replaces its o=
ld-hash
>          with the new-hash.
>
>    4) client re-sends the request, using hash "4567" instead of "1234"
>
> The rehash table goes away, and only this error info is used instead.
>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>
>
> Andy
>
>>
>> -----Original Message-----
>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander Pelov
>> Sent: 3 juin 2015 11:01
>> To: 6tisch@ietf.org; core@ietf.org
>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>
>> Hello everyone,
>>
>> I would like to discuss with you to ideas/proposals in this mail, namely=
:
>> 1) Caching the yang clash file on a remote server
>> 2) Compressing the URL representation of YANG hashes
>>
>> 1) Caching the yang clash file on a remote server Even though hash colli=
sions should happen rarely (if ever), there may be cases when it could be i=
nevitable, and as such, it may be interesting to cache the clash_file somew=
here on a remote server to avoid sending it over the constrained wireless i=
nterface. It could be used for other cases, where some frequently used reso=
urces are re-hashed for performance purposes. Maybe it would be interesting=
 to allow the server to specify a remote location for the clash file? For s=
tatic collisions or optimizations it could be that the YANG definition incl=
udes alternative hash values, which could be used in addition to the normal=
 ones.
>>
>> 2) Compressing the URL representation of YANG hashes Another point
>> (which is unrelated), is to elide the leading "A"s from the base64
>> representation of the hash in the URL (which corresponds to eliding
>> the leading zeroes from the hash). As specified in section 5.4. a hash
>> value of 0x0000007e will be encoded as AAAA_, but if the leading A=E2=80=
=99s
>> are elided it will be simply _
>>
>> This could pose problems only if in the future the size of the hash valu=
es is increased from 30 bits to some other (higher) value.
>>
>> This, however, could be very useful when having to frequently access
>> the same resource. In such case, the server/network operator may
>> decide to re-hash the URI to a shorter version, e.g. the
>> /sys:system-state/sys:clock/sys:current-datetime could be remapped
>> from 0x15370408 and VNwQI to 0x1 and _
>>
>> Best,
>> Alex
>>
>> PS.
>> A typo (?), which may be already corrected, in the example of mod.uri on=
 Page 26: the two responses have different scheme "mod.uri" and "moduri"
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>


From nobody Wed Jun  3 12:49:54 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D6F161B2A6E; Wed,  3 Jun 2015 12:49:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.552
X-Spam-Level: **
X-Spam-Status: No, score=2.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FJJweQ0pbNK1; Wed,  3 Jun 2015 12:49:49 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0703.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::703]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8B5D71B29B1; Wed,  3 Jun 2015 12:48:37 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB791.namprd06.prod.outlook.com (10.141.247.143) with Microsoft SMTP Server (TLS) id 15.1.172.22; Wed, 3 Jun 2015 19:48:11 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Wed, 3 Jun 2015 19:48:11 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQA=
Date: Wed, 3 Jun 2015 19:48:10 +0000
Message-ID: <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com>
In-Reply-To: <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB791;
x-microsoft-antispam-prvs: <CO2PR0601MB791C646E98D35210E8743C5FEB40@CO2PR0601MB791.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB791; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB791; 
x-forefront-prvs: 05961EBAFC
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(377454003)(51704005)(377424004)(199003)(53754006)(38414003)(13464003)(24454002)(81156007)(110136002)(101416001)(5001960100002)(74316001)(189998001)(5001830100001)(99936001)(54356999)(76176999)(92566002)(102836002)(33656002)(5001860100001)(2950100001)(15975445007)(4001540100001)(76576001)(97736004)(99286002)(50986999)(105586002)(106116001)(87936001)(19580405001)(15974865002)(86362001)(64706001)(66066001)(93886004)(5890100001)(106356001)(2900100001)(40100003)(5002640100001)(68736005)(561944003)(19580395003)(2656002)(62966003)(77096005)(77156002)(122556002)(46102003); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB791; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: multipart/mixed; boundary="_002_CO2PR0601MB792E29239D3EC6439830936FEB40CO2PR0601MB792na_"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2015 19:48:11.0128 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB791
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/sPnfTXpTRdSJQh87tFOJCxAlznY>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 19:49:53 -0000

--_002_CO2PR0601MB792E29239D3EC6439830936FEB40CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

QWJvdXQgIkkgd291bGQgcHJlZmVyIGlmIGhhc2ggY29sbGlzaW9ucyBpbiBhIHNpbmdsZSBtb2R1
bGUgd2VyZSBub3QgYWxsb3dlZC4iDQpBZ3JlZWQgYnV0IGhvdyB0aGlzIGlzIGltcGxlbWVudGVk
Lg0KDQpBYm91dCAiQnV0IHRoZXNlIG51bWJlcnMgZG8gbm90IGV4aXN0IGluIGFueSBtb2R1bGVz
IGFuZCBzbyB0aGV5IGNhbm5vdCBiZSByZWxpZWQgb24gaW4gQ29NSS4NCkkgdW5kZXJzdGFuZCBi
dXQgSSBhc3N1bWUgdGhhdCBhIG1vZHVsZSBjYW4gYmUgcmUtcHVibGlzaGVkIHdpdGggdGhlIGFk
ZGVkIHN0YXRlbWVudCB3aGVuIHJlcXVpcmUuIElmIGEgQ29NSSBpbXBsZW1lbnRlciB0cnkgdG8g
aW1wbGVtZW50IGEgbW9kdWxlIGNvbnRhaW5pbmcgYSBjbGFzaCwgaGUgY2FuIGxvb2sgZm9yIGEg
dmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBjb250YWluaW5nIHRoZSBzcGVjaWFsIFlBTkcgc3RhdGVt
ZW50LiBUaGUgbGlrZWxpaG9vZCBvZiBzdWNoIGNsYXNoIGlzIGV4dHJlbWVseSBsb3cgYW5kIHN1
Y2ggZmFsbGJhY2sgc29sdXRpb24gd29u4oCZdCBiZSByZXF1aXJlZCBvZnRlbi4gSG93ZXZlciwg
dGhlIFJGQyB3aWxsIHNwZWNpZnkgaG93IHRvIHJlc29sdmUgc3VjaCBzaXR1YXRpb24gaWYgdGhp
cyBldmVyIGhhcHBlbi4gVGhpcyBzdGF0ZW1lbnQgY2FuIGFsc28gYmUgdXNlZCB0byBhZGRyZXNz
IHRoZSBuZWVkIGZvciBkYXRhIG5vZGUgaWRlbnRpZmllciBjb21wYWN0bmVzcyBhcyBtZW50aW9u
ZWQgYnkgQWxleGFuZGVyIGluIGl0cyBvcmlnaW5hbCBlbWFpbC4NCg0KQWJvdXQgIkluIE5FVENP
TkYsIG1vZHVsZXMgdGVuZCB0byB1c2UgYXVnbWVudCBhIGxvdCINCkluIG15IGRvY3VtZW50ICIg
ZHJhZnQtdmFuZGVyc3Rvay1jb3JlLWNvbWktMDYgLSBNVi5kb2N4ICIsIEkgcHJvcG9zZSBhIG5l
dyBkZWZpbml0aW9uIHRvIGFkZHJlc3MgdGhpcy4NCg0KTW9kdWxlIENvbnRleHQ6IEEgbW9kdWxl
IGNvbnRleHQgaXMgY29tcG9zZWQgb2YgYWxsIGRhdGEgbm9kZXMsIG5vdGlmaWNhdGlvbnMgYW5k
IFJQQ3MgZGVmaW5lZCBpbiBhIFlBTkcgbW9kdWxlIGFuZCBpbmNsdWRlZCBzdWItbW9kdWxlcyBv
ciBhZGRlZCB0byB0aGVtIHVzaW5nIHRoZSBhdWdtZW50IFlBTkcgc3RhdGVtZW50Lg0KDQpTZWN0
aW9uIDQuMS4zLjQgc2hvdyBhbiBleGFtcGxlIG9mIGluY2x1ZGUsIGltcG9ydCBhbmQgYXVnbWVu
dC4NCg0KTWljaGVsIFZlaWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KVHJp
bGxpYW50IEluYy4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwudmVpbGxldHRl
QHRyaWxsaWFudGluYy5jb20NCnd3dy50cmlsbGlhbnRpbmMuY29tIMKgIA0KDQoNCi0tLS0tT3Jp
Z2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBBbmR5IEJpZXJtYW4gW21haWx0bzphbmR5QHl1bWF3
b3Jrcy5jb21dIA0KU2VudDogMyBqdWluIDIwMTUgMTQ6NTQNClRvOiBNaWNoZWwgVmVpbGxldHRl
DQpDYzogQWxleGFuZGVyIFBlbG92OyA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5vcmcNClN1
YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZW1vdGUgc2VydmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcg
aGFzaCBpbiBVUkwNCg0KT24gV2VkLCBKdW4gMywgMjAxNSBhdCAxMToxNiBBTSwgTWljaGVsIFZl
aWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPiB3cm90ZToNCj4gSGkg
QW5keQ0KPg0KPiBDb3VwbGUgb2YgcXVlc3Rpb25zIGFib3V0IHlvdXIgcHJvcG9zZWQgc29sdXRp
b24uDQo+DQo+ID09PSBRdWVzdGlvbiAjMSwgTmV3IFlBTkcgc3RhdGVtZW50DQo+DQo+IFlvdXIg
c29sdXRpb24gd29ya3Mgb25seSBpZiBoYXNoIGNsYXNoZXMgd2l0aGluIGEgbW9kdWxlIGFyZSBy
ZXNvbHZlZCBhdCBkZXNpZ24gdGltZS4gSWYgbm90LCB0aGUgZXJyb3IgbWVzc2FnZSB3aWxsIHJl
dHVybiB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIHdoaWNoIGlzIG5vdCBzdWZmaWNpZW50IHRv
IHJlc29sdmUgd2hpY2ggZGF0YSBub2RlIGlzIHdoaWNoLg0KPg0KPiAgICB7ICIxMjM0IjogWw0K
PiAgICAgICAgICAgIm1vZHVsZS1BIjoiNDU2NyIsDQo+ICAgICAgICAgICAibW9kdWxlLUEiOiI2
NTIzIg0KPiAgICAgICBdDQo+ICAgIH0NCj4NCg0KDQpUaGUgb3JpZ2luYWwgcHJvcG9zYWwgaGFk
IGEgMy10dXBsZSB7IG1vZHVsZS1uYW1lLCBwYXRoLWV4cHIsIG5ldy1oYXNoIH0gV2UgZGlzY3Vz
c2VkIHNvbWUgb3B0aW1pemF0aW9ucyBpbiB0aGUgNlRJU0NIIGNhbGwgdG8gcmVkdWNlIHRoZSBz
aXplIG9mIHRoZSBwYXRoLWV4cHIgYW5kIHN0aWxsIG5vdCByZXF1aXJlIHRoZSBjbGllbnQgdG8g
c3RvcmUgYWxsIHRoZSBwYXRoIHN0cmluZ3MsIHN1Y2ggYXMgc3RvcmUgYSBmZXcgYnl0ZXMgZnJv
bSB0aGUgcGF0aCBzdHJpbmdzIGxpa2UgNnRoIGFuZCAxMXRoIGJ5dGVzIChBdm9pZCB0aGUgY29t
bW9uIGlldGYtIHByZWZpeCBmb3IgbWFueSBtb2R1bGUgbmFtZXMpLg0KDQpUaGlzIGlzIG5vdCBk
ZXRlcm1pbmlzdGljLiBPbmx5IHRoZSBmdWxsIHBhdGggc3RyaW5nIGlzIGZvb2wtcHJvb2YuDQpJ
IHdvdWxkIHByZWZlciBpZiBoYXNoIGNvbGxpc2lvbnMgaW4gYSBzaW5nbGUgbW9kdWxlIHdlcmUg
bm90IGFsbG93ZWQuDQpUaGV5IG5lZWQgdG8gYmUgcmVzb2x2ZWQgYXQgZGVzaWduIHRpbWUuICBJ
ZiB0aGlzIGlzIG5vdCBwb3NzaWJsZSwgdGhlbiBhIHN0YW5kYXJkIHJlaGFzaCBhbGdvcml0aG0g
c2hvdWxkIGJlIHVzZWQgc28gdGhlIGNvbGxpc2lvbiBpcyByZXNvbHZlZCBpbiBhIHByZWRpY3Rh
YmxlIHdheS4gIGUuZy4sIHRyeSBhcHBlbmRpbmcgIl8iLCB0aGVuIHRyeSAiX18iLCBldGMuDQpU
aGUgcmVzdWx0IHdvdWxkIGJlIHRoYXQgaGFzaCBjb2xsaXNpb25zIGluIGEgc2luZ2xlIG1vZHVs
ZSBkbyBub3Qgb2NjdXIgaW4gQ29NSS4NCg0KDQo+IElzIGl0IHBvc3NpYmxlL2FjY2VwdGFibGUg
dG8gcmVxdWVzdCBhIG5ldyBZQU5HIHN0YXRlbWVudCB0byBtYW51YWxseSBhc3NpZ24gYSBJRCB0
byBhIGRhdGEgbm9kZT8NCj4gU2FtZSBxdWVzdGlvbiBmb3IgYSBtb2R1bGUgSUQ/DQo+DQo+IEZv
ciBleGFtcGxlIChzZWUgImlkIDE2IiBhbmQgImlkIDI1IiBiZWxsb3cpIDoNCj4NCj4gICAgbW9k
dWxlIGEgew0KPiAgICAgICBuYW1lc3BhY2UgYS1uczsNCj4gICAgICAgcHJlZml4IGE7DQo+ICAg
ICAgIGlkIDE2Ow0KPiAgICAgICByZXZpc2lvbiAyMDE1LTAxLTAxOw0KPg0KPiAgICAgICBsZWFm
IGxlYWZBMSB7IHR5cGUgc3RyaW5nOyBpZCAyNSB9DQo+ICAgICAgIGNvbnRhaW5lciBjb250YWlu
ZXJBIHsNCj4gICAgICAgICAgbGVhZiBsZWFmQTIgeyB0eXBlIHN0cmluZ30NCj4gICAgICAgfQ0K
PiAgICB9DQoNCg0KWW91IGNvdWxkIGhhdmUgYW4gZXh0ZW5zaW9uIHN0YXRlbWVudCBkbyBhbnl0
aGluZyB5b3Ugd2FudDoNCg0KICAgIGNvbWk6aWQgIDE2Ow0KDQpCdXQgdGhlc2UgbnVtYmVycyBk
byBub3QgZXhpc3QgYW55IGFueSBtb2R1bGVzIGFuZCBzbyB0aGV5IGNhbm5vdCBiZSByZWxpZWQg
b24gaW4gQ29NSS4NCg0KDQo+DQo+ID09PSBRdWVzdGlvbiAjMiwgSW50cm9kdWN0aW9uIG9mIGFu
IG9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlciB1c2VkIHRvIA0KPiB0YXJnZXQgYSBzcGVjaWZpYyBt
b2R1bGUNCj4NCj4gRm9yIG5vZGVzIC8gbmV0d29ya3Mgd2hpY2ggY2FuIGFmZm9yZCBhIHNsaXRl
bHkgbGFyZ2VyIHBheWxvYWQgKElFRUUgODAyLjE1LjRnIGZvciBleGFtcGxlKSBidXQgd2FudCB0
byBhdm9pZCB0aGUgcHJvY2Vzc2luZyBhbmQgc3RvcmFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIHBv
cnBvc2VkIGVycm9yIG1lc3NhZ2UsIGFyZSB5b3Ugb3Bwb3NlZCB0byB0aGUgc3VwcG9ydCBvZiBh
biBvcHRpb25hbCBDb0FQIHF1ZXJ5IHBhcmFtZXRlciB1c2UgY2FycnkgdGhlIG1vZHVsZSBuYW1l
IG9yIG1vZHVsZSBJRCA/DQo+DQo+IEZvciBleGFtcGxlOg0KPg0KPiBHRVQgZXhhbXBsZS5jb20v
WThkN3M/c2VsZWN0PSBpZXRmLTZ0aXNjaC1tYWMNCj4NCj4gPT09IFF1ZXN0aW9uICMzLCBVc2Ug
b2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiB0aGUgVVJJDQo+DQo+IEFy
ZSB5b3Ugb3Bvc2VkIHRvIHRoZSB1c2Ugb2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgaW5z
dGVhZCBvZiB0aGUgDQo+IFVSSSB0byBpZGVudGlmeSBkYXRhIG5vZGUocykNCj4NCg0KTm90IHJl
YWxseS4NCg0KSSBkb24ndCBrbm93IGhvdyBtaXhlZCB0aGUgbW9kdWxlcyB3aWxsIGdldCBpbiBD
b01JLg0KSW4gTkVUQ09ORiwgbW9kdWxlcyB0ZW5kIHRvIHVzZSBhdWdtZW50IGEgbG90LCBzbyB0
aGUgbm9kZXMgZnJvbSAnbW9kdWxlLUEnIG1heSBiZSBuZXN0ZWQgbm9kZXMuDQpSZXRyaWV2aW5n
IGp1c3QgdGhlIGF1Z21lbnRpbmcgbm9kZXMgYW5kIGlnbm9yaW5nIHRoZSBhdWdtZW50ZWQgbm9k
ZXMgd291bGQgbGlrZWx5IGJlIG9wZXJhdGlvbmFsbHkgdXNlbGVzcy4NCmUuZy4sIHdoZW4gYXVn
bWVudGluZyBhIGxpc3QsIHRoZSBrZXkgbGVhZnMgYXJlIG5lZWRlZCB0byBpZGVudGlmeSB0aGUg
aW5zdGFuY2UuDQoNCkkgd291bGQgbGlrZSB0byBrZWVwIENvTUkgZXh0cmVtZWx5IHNpbXBsZS4N
Ck1vcmUgYmVsbHMgYW5kIHdoaXN0bGVzIG1lYW5zIGluY3JlYXNlZA0KbWVtb3J5IGFuZCBDUFUg
cmVxdWlyZW1lbnRzLiBJIGFtIGdsYWQgQ09SRSBhbmQgNlRJU0NIIFdHcyBhcmUgc28gY29uY2Vy
bmVkIGFib3V0IGNvbnN0cmFpbmVkIHJlc291cmNlcy4NCk9ubHkgdGhlIG1vc3QgaW1wb3J0YW50
IGJlbGxzIGFuZCB3aGlzdGxlcyB3aWxsIGdldCBzdGFuZGFyZGl6ZWQuDQoNCg0KPiBGb3IgZXhh
bXBsZToNCj4NCj4gR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdD1ZOGQ3cw0KPiBHRVQgZXhhbXBs
ZS5jb20vbWc/c2VsZWN0PVk4ZDdzLE5LSGFBDQo+IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9
aWV0Zi02dGlzY2gtbWFjKFk4ZDdzLE5LSGFBKQ0KPg0KPiA9PT0gUXVlc3Rpb24gIzQsIENvbXBy
ZXNzaW5nIFlBTkcgaGFzaCBiYXNlNjQgcmVwcmVzZW50YXRpb24NCj4NCj4gQXJlIHlvdSBvcG9z
ZWQgdG8gdGhlIGNvbXByZXNzaW9uIG9mIHRoZSBiYXNlNjQgcmVwcmVzZW50YXRpb24gYXMgcHJv
cHNlZCBieSBBbGV4YW5kZXIuDQo+DQoNCk5vLiAgT3B0aW1pemF0aW9ucyB0aGF0IHJlZHVjZSB0
aGUgZW5jb2Rpbmcgc2l6ZSBhcmUgaW1wb3J0YW50Lg0KSSB3YW50IHRvIHVzZSBzdGFuZGFyZCBD
Qk9SLiAgTm8gc3BlY2lhbCBoYWNrcyBqdXN0IGZvciBDb01JLg0KDQo+IEZvciBleGFtcGxlOg0K
Pg0KPiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0PTdzDQo+IEluc3RlYWQgb2YNCj4gR0VUIGV4
YW1wbGUuY29tL21nP3NlbGVjdD0gQUFBN3MNCj4NCj4gTWljaGVsIFZlaWxsZXR0ZQ0KPiBTeXN0
ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQo+IFRyaWxsaWFudCBJbmMuDQo+IFRlbDogNDUwLTM3
NS0wNTU2IGV4dC4gMjM3DQo+IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0KPiB3
d3cudHJpbGxpYW50aW5jLmNvbQ0KPg0KPg0KDQpBbmR5DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNz
YWdlLS0tLS0NCj4gRnJvbTogQW5keSBCaWVybWFuIFttYWlsdG86YW5keUB5dW1hd29ya3MuY29t
XQ0KPiBTZW50OiAzIGp1aW4gMjAxNSAxMzowOQ0KPiBUbzogTWljaGVsIFZlaWxsZXR0ZQ0KPiBD
YzogQWxleGFuZGVyIFBlbG92OyA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5vcmcNCj4gU3Vi
amVjdDogUmU6IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQgWUFORyBo
YXNoIGluIFVSTA0KPg0KPiBPbiBXZWQsIEp1biAzLCAyMDE1IGF0IDk6MDUgQU0sIE1pY2hlbCBW
ZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4gd3JvdGU6DQo+PiBI
aSBBbGV4YW5kZXINCj4+DQo+PiBBdCB0aGUgbGFzdCA2VGlTQ0ggYmktd2Vla2x5IGNhbGwsIDQg
c29sdXRpb25zIGhhdmUgYmVlbiBwcmVzZW50ZWQgdG8gdGhlIGhhc2ggY2xhc2hlcyBwcm9ibGVt
LiBUd28gYmFzZWQgb24gYSByZWhhc2ggdGFibGUgYW5kIHR3byBiYXNlZCBvbiBhIG5ldyBDb0FQ
IHF1ZXJ5IHBhcmFtZXRlciBjYXJyeWluZyB0aGUgbW9kdWxlIG5hbWUgb3IgcmVnaXN0ZXJlZCBt
b2R1bGUgSUQuIFRoaXMgcXVlcnkgcGFyYW1ldGVyIGlzIHVzZWQgdG8gc2VsZWN0IHVuYW1iaWd1
b3VzbHkgdGhlIHRhcmdldGVkIGRhdGEgbm9kZShzKSBhc3N1bWluZyB0aGF0IGFueSBoYXNoIGNv
bGxpc2lvbiB3aXRoaW4gYSBtb2R1bGUgaGF2ZSBiZWVuIHJlc29sdmVkIGF0IGRlc2lnbiB0aW1l
LiBZb3UgY2FuIGZpbmQgdGhpcyBwcmVzZW50YXRpb24gaW4gYXR0YWNobWVudC4NCj4+DQo+PiBC
b3RoIG9mIHlvdXIgcHJvcG9zYWxzIG1ha2Ugc2Vuc2UgdG8gbWUgYnV0IEkgc3RpbGwgaG9wZSB0
aGF0IHRoZSBjbGFzaCBmaWxlIGNhbiBiZSBhdm9pZGVkIG9yIGJlIG9wdGlvbmFsLg0KPj4NCj4N
Cj4NCj4gSSBhZ3JlZSB3ZSBzaG91bGQgbm90IG5lZWQgdGhlIGNsaWVudCB0byByZXRyaWV2ZSB0
aGUgcmVoYXNoIGluZm8gYmVmb3JlIHVzaW5nIGEgc2VydmVyLg0KPiBUaGUgQ29NSSBhdXRob3Jz
IGhhdmUgZGlzY3Vzc2VkIGEgc29sdXRpb24gd2hpY2ggSSB3aWxsIHRyeSB0byB3cml0ZSB1cCB0
b2RheSB3aGVyZSBhIHNwZWNpYWwgImhhc2gtY2xhc2giIGVycm9yIGlzIHJldHVybmVkIGJ5IENv
TUkgaWYgYSByZWhhc2ggaXMgbmVlZGVkLg0KPg0KPiAgICAxKSBjbGllbnQgcmVxdWVzdHMgbW9k
dWxlLUEgb2JqZWN0IHdpdGggaGFzaCAgIjEyMzQiOw0KPiAgICAgICAgIHRoZXJlIGlzIG5vIGV4
dGVuZGVkLW5hbWUvbG9jYWwtbmFtZSwNCj4gICAgICAgICBqdXN0IHRoZSBZQU5HIGhhc2gsIHVz
ZWQgaW4gYW55IHJlcXVlc3QNCj4NCj4gICAgMikgaWYgJzEyMzQnIGhhcyBhIGNvbGxpc2lvbiBp
biB0aGlzIHNlcnZlciB0aGVuIGEgc3BlY2lhbCBlcnJvciBjb2RlIGlzIHJldHVybmVkOw0KPiAg
ICAgICAgVGhlIHJldHVybiBwYXlsb2FkIGhhcyB0aGUgcmVoYXNoIGluZm8gW29sZC1oYXNoLCB7
IG1vZHVsZS1uYW1lLCBuZXctaGFzaCB9K10NCj4gICAgICAgICAgICB7ICIxMjM0IjogWw0KPiAg
ICAgICAgICAgICAgICAgICAibW9kdWxlLUEiOiI0NTY3IiwNCj4gICAgICAgICAgICAgICAgICAg
Im1vZHVsZS1YIjoiNjUyMyINCj4gICAgICAgICAgICAgICBdDQo+ICAgICAgICAgICAgfQ0KPg0K
PiAgICAgMykgdGhlIGNsaWVudCBnZXRzIHRoZSBlcnJvciBpbmZvLCBhbmQga25vd3Mgd2hpY2gg
bW9kdWxlIGl0cyAiMTIzNCIgaXMgZnJvbS4NCj4gICAgICAgICAgSXQgZmluZHMgdGhlIGNvcnJl
Y3QgbW9kdWxlIG5hbWUgaW4gdGhlIGFycmF5IGFuZCByZXBsYWNlcyBpdHMgb2xkLWhhc2gNCj4g
ICAgICAgICAgd2l0aCB0aGUgbmV3LWhhc2guDQo+DQo+ICAgIDQpIGNsaWVudCByZS1zZW5kcyB0
aGUgcmVxdWVzdCwgdXNpbmcgaGFzaCAiNDU2NyIgaW5zdGVhZCBvZiAiMTIzNCINCj4NCj4gVGhl
IHJlaGFzaCB0YWJsZSBnb2VzIGF3YXksIGFuZCBvbmx5IHRoaXMgZXJyb3IgaW5mbyBpcyB1c2Vk
IGluc3RlYWQuDQo+DQo+PiBNaWNoZWwgVmVpbGxldHRlDQo+PiBTeXN0ZW0gQXJjaGl0ZWN0dXJl
IERpcmVjdG9yDQo+PiBUcmlsbGlhbnQgSW5jLg0KPj4gVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAy
MzcNCj4+IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0KPj4gd3d3LnRyaWxsaWFu
dGluYy5jb20NCj4+DQo+DQo+DQo+IEFuZHkNCj4NCj4+DQo+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh
Z2UtLS0tLQ0KPj4gRnJvbTogY29yZSBbbWFpbHRvOmNvcmUtYm91bmNlc0BpZXRmLm9yZ10gT24g
QmVoYWxmIE9mIEFsZXhhbmRlciANCj4+IFBlbG92DQo+PiBTZW50OiAzIGp1aW4gMjAxNSAxMTow
MQ0KPj4gVG86IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KPj4gU3ViamVjdDogW2Nv
cmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxlIGFuZCBZQU5HIGhhc2ggaW4gVVJMDQo+
Pg0KPj4gSGVsbG8gZXZlcnlvbmUsDQo+Pg0KPj4gSSB3b3VsZCBsaWtlIHRvIGRpc2N1c3Mgd2l0
aCB5b3UgdG8gaWRlYXMvcHJvcG9zYWxzIGluIHRoaXMgbWFpbCwgbmFtZWx5Og0KPj4gMSkgQ2Fj
aGluZyB0aGUgeWFuZyBjbGFzaCBmaWxlIG9uIGEgcmVtb3RlIHNlcnZlcg0KPj4gMikgQ29tcHJl
c3NpbmcgdGhlIFVSTCByZXByZXNlbnRhdGlvbiBvZiBZQU5HIGhhc2hlcw0KPj4NCj4+IDEpIENh
Y2hpbmcgdGhlIHlhbmcgY2xhc2ggZmlsZSBvbiBhIHJlbW90ZSBzZXJ2ZXIgRXZlbiB0aG91Z2gg
aGFzaCBjb2xsaXNpb25zIHNob3VsZCBoYXBwZW4gcmFyZWx5IChpZiBldmVyKSwgdGhlcmUgbWF5
IGJlIGNhc2VzIHdoZW4gaXQgY291bGQgYmUgaW5ldml0YWJsZSwgYW5kIGFzIHN1Y2gsIGl0IG1h
eSBiZSBpbnRlcmVzdGluZyB0byBjYWNoZSB0aGUgY2xhc2hfZmlsZSBzb21ld2hlcmUgb24gYSBy
ZW1vdGUgc2VydmVyIHRvIGF2b2lkIHNlbmRpbmcgaXQgb3ZlciB0aGUgY29uc3RyYWluZWQgd2ly
ZWxlc3MgaW50ZXJmYWNlLiBJdCBjb3VsZCBiZSB1c2VkIGZvciBvdGhlciBjYXNlcywgd2hlcmUg
c29tZSBmcmVxdWVudGx5IHVzZWQgcmVzb3VyY2VzIGFyZSByZS1oYXNoZWQgZm9yIHBlcmZvcm1h
bmNlIHB1cnBvc2VzLiBNYXliZSBpdCB3b3VsZCBiZSBpbnRlcmVzdGluZyB0byBhbGxvdyB0aGUg
c2VydmVyIHRvIHNwZWNpZnkgYSByZW1vdGUgbG9jYXRpb24gZm9yIHRoZSBjbGFzaCBmaWxlPyBG
b3Igc3RhdGljIGNvbGxpc2lvbnMgb3Igb3B0aW1pemF0aW9ucyBpdCBjb3VsZCBiZSB0aGF0IHRo
ZSBZQU5HIGRlZmluaXRpb24gaW5jbHVkZXMgYWx0ZXJuYXRpdmUgaGFzaCB2YWx1ZXMsIHdoaWNo
IGNvdWxkIGJlIHVzZWQgaW4gYWRkaXRpb24gdG8gdGhlIG5vcm1hbCBvbmVzLg0KPj4NCj4+IDIp
IENvbXByZXNzaW5nIHRoZSBVUkwgcmVwcmVzZW50YXRpb24gb2YgWUFORyBoYXNoZXMgQW5vdGhl
ciBwb2ludCANCj4+ICh3aGljaCBpcyB1bnJlbGF0ZWQpLCBpcyB0byBlbGlkZSB0aGUgbGVhZGlu
ZyAiQSJzIGZyb20gdGhlIGJhc2U2NCANCj4+IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBoYXNoIGlu
IHRoZSBVUkwgKHdoaWNoIGNvcnJlc3BvbmRzIHRvIGVsaWRpbmcgDQo+PiB0aGUgbGVhZGluZyB6
ZXJvZXMgZnJvbSB0aGUgaGFzaCkuIEFzIHNwZWNpZmllZCBpbiBzZWN0aW9uIDUuNC4gYSANCj4+
IGhhc2ggdmFsdWUgb2YgMHgwMDAwMDA3ZSB3aWxsIGJlIGVuY29kZWQgYXMgQUFBQV8sIGJ1dCBp
ZiB0aGUgbGVhZGluZyANCj4+IEHigJlzIGFyZSBlbGlkZWQgaXQgd2lsbCBiZSBzaW1wbHkgXw0K
Pj4NCj4+IFRoaXMgY291bGQgcG9zZSBwcm9ibGVtcyBvbmx5IGlmIGluIHRoZSBmdXR1cmUgdGhl
IHNpemUgb2YgdGhlIGhhc2ggdmFsdWVzIGlzIGluY3JlYXNlZCBmcm9tIDMwIGJpdHMgdG8gc29t
ZSBvdGhlciAoaGlnaGVyKSB2YWx1ZS4NCj4+DQo+PiBUaGlzLCBob3dldmVyLCBjb3VsZCBiZSB2
ZXJ5IHVzZWZ1bCB3aGVuIGhhdmluZyB0byBmcmVxdWVudGx5IGFjY2VzcyANCj4+IHRoZSBzYW1l
IHJlc291cmNlLiBJbiBzdWNoIGNhc2UsIHRoZSBzZXJ2ZXIvbmV0d29yayBvcGVyYXRvciBtYXkg
DQo+PiBkZWNpZGUgdG8gcmUtaGFzaCB0aGUgVVJJIHRvIGEgc2hvcnRlciB2ZXJzaW9uLCBlLmcu
IHRoZSANCj4+IC9zeXM6c3lzdGVtLXN0YXRlL3N5czpjbG9jay9zeXM6Y3VycmVudC1kYXRldGlt
ZSBjb3VsZCBiZSByZW1hcHBlZCANCj4+IGZyb20gMHgxNTM3MDQwOCBhbmQgVk53UUkgdG8gMHgx
IGFuZCBfDQo+Pg0KPj4gQmVzdCwNCj4+IEFsZXgNCj4+DQo+PiBQUy4NCj4+IEEgdHlwbyAoPyks
IHdoaWNoIG1heSBiZSBhbHJlYWR5IGNvcnJlY3RlZCwgaW4gdGhlIGV4YW1wbGUgb2YgbW9kLnVy
aSBvbiBQYWdlIDI2OiB0aGUgdHdvIHJlc3BvbnNlcyBoYXZlIGRpZmZlcmVudCBzY2hlbWUgIm1v
ZC51cmkiIGFuZCAibW9kdXJpIg0KPj4NCj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fDQo+PiBjb3JlIG1haWxpbmcgbGlzdA0KPj4gY29yZUBpZXRmLm9y
Zw0KPj4gaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9jb3JlDQo+Pg0KPj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IGNvcmUg
bWFpbGluZyBsaXN0DQo+PiBjb3JlQGlldGYub3JnDQo+PiBodHRwczovL3d3dy5pZXRmLm9yZy9t
YWlsbWFuL2xpc3RpbmZvL2NvcmUNCj4+DQo=

--_002_CO2PR0601MB792E29239D3EC6439830936FEB40CO2PR0601MB792na_
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document;
	name="draft-vanderstok-core-comi-06 - MV.docx"
Content-Description: draft-vanderstok-core-comi-06 - MV.docx
Content-Disposition: attachment;
	filename="draft-vanderstok-core-comi-06 - MV.docx"; size=119997;
	creation-date="Mon, 13 Apr 2015 18:04:06 GMT";
	modification-date="Tue, 21 Apr 2015 21:45:31 GMT"
Content-Transfer-Encoding: base64

UEsDBBQABgAIAAAAIQAB2zq3rwEAAMYIAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0
lk1rGzEQhu+F/odF1+CVk0MpxescmuSYBppCr7I0a4tKGiGNk/jfd/aTUpysibMXw1ozz/vsrFjt
6vrFu+IJUrYYKnFZLkUBQaOxYVuJX493i6+iyKSCUQ4DVOIAWVyvP39aPR4i5IK7Q67Ejih+kzLr
HXiVS4wQeKXG5BXxZdrKqPQftQV5tVx+kRoDQaAFNQyxXt1ArfaOitsX/rszSeCyKL53hU1WJVSM
zmpFvC6fgvkvZdEnlNzZ1uSdjfmCC4Q8mtCsvB7Q9/3g0SRroHhQie6V5yr5jMlIg3rvubN8G3PE
E+vaahj7G1pMqCFnnrl35bjilQ2D/zEPvc+E/rd30hL4h4QxX56tM0IbHiSyMM7w1VmEvd9AYvuP
H8aInpTIdHCQP96g407HAxE3zCHQkycVnmHzczaLf+CTIjUiBaQ5nsaInpSAYGZyGMiTChp9Q5hB
YSCfrNC+9wyY+VSGhBN2ByerjYM5dkePnpSIgHEOg447GU98TkL3e/4ru8W8FcmV7enAuyG9456H
g7XpXsSTjoUxkdFn3x/0O+tItmy/QtZ/AQAA//8DAFBLAwQUAAYACAAAACEAHpEat+8AAABOAgAA
CwAIAl9yZWxzLy5yZWxzIKIEAiigAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKySwWrDMAxA74P9g9G9UdrBGKNOL2PQ2xjZBwhbSUwT29hq
1/79PNjYAl3pYUfL0tOT0HpznEZ14JRd8BqWVQ2KvQnW+V7DW/u8eACVhbylMXjWcOIMm+b2Zv3K
I0kpyoOLWRWKzxoGkfiImM3AE+UqRPblpwtpIinP1GMks6OecVXX95h+M6CZMdXWakhbeweqPUW+
hh26zhl+CmY/sZczLZCPwt6yXcRU6pO4Mo1qKfUsGmwwLyWckWKsChrwvNHqeqO/p8WJhSwJoQmJ
L/t8ZlwSWv7niuYZPzbvIVm0X+FvG5xdQfMBAAD//wMAUEsDBBQABgAIAAAAIQD1dSYnbgEAAMoG
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
TNLYnxsrl1lfDfPRb+zUz3Q5NPqNe+jXvKL9G0mqo/bblnTilNRcZ6eRdPKtSFp1qN+wpFOnpOYG
CBpJp88kqY+KOnZ/9yqG0oEsNG8adJyWzRvD60de9fvC9/V1vFbcoY051+5uG2qXyt3uQg1POtqs
hy+d44lyhOMMHhM9h1oo27NISmnlHzepiqVH83HHsqXRF1ai5PoZT5IPrNxabNybJnypUkCuPTnW
L5jZW78o35XqtM/0oNoJOGo2pvzZHSfl11PM3V7O4ZsaOba4W996ONTT2J5I302lX4ix3yDr3bqH
+iK7z6mBnZ2Ou9dp9jSnr46n1Y20ri+k2t9HndY/2r+P2tHDpLlImL5Psu5ezKK9jmRcpaX9jdhq
gIHpSMJtLuNTlwL7QdL0oluaYOflPX1auyO3WoeUcsvy2zq0ParN22ta47rxZhtMZFvQPrF9uE9s
+vTN7PjqjSnDv2qoz/m94MGnG0sZe5E6jda/95QiO4d2hP6+m7v0Gxr+dpzg5HRr9/vyeiM/Orxe
jvXUe573/b1bg0mW2mqnkHs8+Wp29vbKVDHu0NerYz12UGd+OXYsn1j5iqPHUE3rVO18eaz+6WGC
eiWVnvK5GC1Y+HCfiW0aaYfqVepJBK4M+iupJob04epl5bfESdOqKYhT5KEZtRctbp3/1MqtVWN2
bF8qszI4GSpVPdXn6vnaJLRLv2+hWDvs5XIOy+XlMZGXzbTbH9bL5bSSy8sTIi+bvuUP6+Vypsfl
5SmRl83k1P+Pl92TdBx603xQuM2LXfNwPCMpiOVIc3ZpLveZUU/BFvpKkvy/2k5dgypjZiNydX2w
Or1Z2+jZj3qTV7vBVMUbVH3QhLRxWltAyyggiOZKyL6F78792Gi6Lj8gvX8o5rvSmGgqSX9GE3L4
WzttX4Jy1fCB705IymhqHGB9ODOxVh/R2j1Hu39QrV+bxh0d3dTG+OV0dtksj62O28Rfo+OunOLV
cRvntM7+7H9eHpN4FvdrTADZXgJVMHbSx5pdqysba3atyk6i4ce+Z/a9btaTzNnY6uIUQATlEKd1
BuXcfMOpIy6rzzy1uQgcvH0ZEKxscZvZ/9eOX+PQRXkMM3VVkDza7ENxBZzZxh1zrTnt9ht1xNkO
+ipJuxtOPVVfkdz31W4NLikHjDtaPNGYvjk+PZvMdnM0Zvpm1WzottpafTq6vEbpm5z1C473fVOv
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
FQBgBQAAR88BAAAA

--_002_CO2PR0601MB792E29239D3EC6439830936FEB40CO2PR0601MB792na_--


From nobody Wed Jun  3 14:37:39 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B6F271B2AD8 for <core@ietfa.amsl.com>; Wed,  3 Jun 2015 14:37:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.475
X-Spam-Level: **
X-Spam-Status: No, score=2.475 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OC98fJxKqcsB for <core@ietfa.amsl.com>; Wed,  3 Jun 2015 14:37:33 -0700 (PDT)
Received: from mail-lb0-f177.google.com (mail-lb0-f177.google.com [209.85.217.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4F4EF1B2AF7 for <core@ietf.org>; Wed,  3 Jun 2015 14:37:32 -0700 (PDT)
Received: by lbbuc2 with SMTP id uc2so15715816lbb.2 for <core@ietf.org>; Wed, 03 Jun 2015 14:37:30 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=yuGyYkoMGnHR983g/nr4rvQl4XEZoFl4OptQIq1JFlg=; b=UJ27s32Btg0u0sDYMO6ihoJ2YynVU3EFc451yD1nXMMdfZA/1O1qMrWdKB2igI7ZvM HBP/J1E2eGr14DM+hf2HPueJ6It8Lk1PDSxhEW7e2OepIjRVM4kUopxeZfsOgmLOT1nN XfcwWu/V1O3/ftBh5PG1yJmwG3lvCQTMvFK+gV/euMcyjGdmuDuGG28cHdr03vN6QxVo Irle+MFj7PXNT6K0jeHnBwNBSyyAVBYwRWePrt3gS0slmhyDYQDRU0GrkPZeBLiPE1p6 tBPAXv63tCZutYT65D/rxjndAEc7LFwnC9pWbHugId92J832kFMIUfqpLuZZQVEurmXd pUFQ==
X-Gm-Message-State: ALoCoQm/01OJfFsLdOrz99FGZXOs/XdKgEtTXe2SrISCYlgFpZHU/tUs4KI28FGyHdDpfToLQ3ZJ
MIME-Version: 1.0
X-Received: by 10.112.77.234 with SMTP id v10mr33577445lbw.119.1433367450722;  Wed, 03 Jun 2015 14:37:30 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Wed, 3 Jun 2015 14:37:30 -0700 (PDT)
In-Reply-To: <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Wed, 3 Jun 2015 14:37:30 -0700
Message-ID: <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/MAjYizfPYXCpIkECDUeRVUw7gLU>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2015 21:37:35 -0000

On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> About "I would prefer if hash collisions in a single module were not allo=
wed."
> Agreed but how this is implemented.
>


By checking the YANG hashes before it is published,
similar to checking the YANG syntax with a YANG compiler.


> About "But these numbers do not exist in any modules and so they cannot b=
e relied on in CoMI.
> I understand but I assume that a module can be re-published with the adde=
d statement when require. If a CoMI implementer try to implement a module c=
ontaining a clash, he can look for a version of this module containing the =
special YANG statement. The likelihood of such clash is extremely low and s=
uch fallback solution won=E2=80=99t be required often. However, the RFC wil=
l specify how to resolve such situation if this ever happen. This statement=
 can also be used to address the need for data node identifier compactness =
as mentioned by Alexander in its original email.
>

I think the ad-hoc id assignments are pointless because they are not
universal.  The only thing that can be counted on is the module name
and the XPath absolute path expression of each object.


> About "In NETCONF, modules tend to use augment a lot"
> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I propose a n=
ew definition to address this.
>

What is it?
IMO you should post comments to the mailing list not markup
to a word document.  It is too hard to follow.


> Module Context: A module context is composed of all data nodes, notificat=
ions and RPCs defined in a YANG module and included sub-modules or added to=
 them using the augment YANG statement.
>

Almost -- this is defined in RFC 6020 -- the augmenting nodes are
not part of the augmented module.  They will be returned in
NETCONF and RESTCONF retrieval operations for an ancestor node
but they are not part of the augmented module.  Only objects
defined in the module namespace are part of the module.


Andy



> Section 4.1.3.4 show an example of include, import and augment.
>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: 3 juin 2015 14:54
> To: Michel Veillette
> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>
> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette <Michel.Veillette@trill=
iantinc.com> wrote:
>> Hi Andy
>>
>> Couple of questions about your proposed solution.
>>
>> =3D=3D=3D Question #1, New YANG statement
>>
>> Your solution works only if hash clashes within a module are resolved at=
 design time. If not, the error message will return the following informati=
on which is not sufficient to resolve which data node is which.
>>
>>    { "1234": [
>>           "module-A":"4567",
>>           "module-A":"6523"
>>       ]
>>    }
>>
>
>
> The original proposal had a 3-tuple { module-name, path-expr, new-hash } =
We discussed some optimizations in the 6TISCH call to reduce the size of th=
e path-expr and still not require the client to store all the path strings,=
 such as store a few bytes from the path strings like 6th and 11th bytes (A=
void the common ietf- prefix for many module names).
>
> This is not deterministic. Only the full path string is fool-proof.
> I would prefer if hash collisions in a single module were not allowed.
> They need to be resolved at design time.  If this is not possible, then a=
 standard rehash algorithm should be used so the collision is resolved in a=
 predictable way.  e.g., try appending "_", then try "__", etc.
> The result would be that hash collisions in a single module do not occur =
in CoMI.
>
>
>> Is it possible/acceptable to request a new YANG statement to manually as=
sign a ID to a data node?
>> Same question for a module ID?
>>
>> For example (see "id 16" and "id 25" bellow) :
>>
>>    module a {
>>       namespace a-ns;
>>       prefix a;
>>       id 16;
>>       revision 2015-01-01;
>>
>>       leaf leafA1 { type string; id 25 }
>>       container containerA {
>>          leaf leafA2 { type string}
>>       }
>>    }
>
>
> You could have an extension statement do anything you want:
>
>     comi:id  16;
>
> But these numbers do not exist any any modules and so they cannot be reli=
ed on in CoMI.
>
>
>>
>> =3D=3D=3D Question #2, Introduction of an optional query parameter used =
to
>> target a specific module
>>
>> For nodes / networks which can afford a slitely larger payload (IEEE 802=
.15.4g for example) but want to avoid the processing and storage associated=
 with the porposed error message, are you opposed to the support of an opti=
onal CoAP query parameter use carry the module name or module ID ?
>>
>> For example:
>>
>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>
>> =3D=3D=3D Question #3, Use of the select query parameter instead of the =
URI
>>
>> Are you oposed to the use of the select query parameter instead of the
>> URI to identify data node(s)
>>
>
> Not really.
>
> I don't know how mixed the modules will get in CoMI.
> In NETCONF, modules tend to use augment a lot, so the nodes from 'module-=
A' may be nested nodes.
> Retrieving just the augmenting nodes and ignoring the augmented nodes wou=
ld likely be operationally useless.
> e.g., when augmenting a list, the key leafs are needed to identify the in=
stance.
>
> I would like to keep CoMI extremely simple.
> More bells and whistles means increased
> memory and CPU requirements. I am glad CORE and 6TISCH WGs are so concern=
ed about constrained resources.
> Only the most important bells and whistles will get standardized.
>
>
>> For example:
>>
>> GET example.com/mg?select=3DY8d7s
>> GET example.com/mg?select=3DY8d7s,NKHaA
>> GET example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>
>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>
>> Are you oposed to the compression of the base64 representation as propse=
d by Alexander.
>>
>
> No.  Optimizations that reduce the encoding size are important.
> I want to use standard CBOR.  No special hacks just for CoMI.
>
>> For example:
>>
>> GET example.com/mg?select=3D7s
>> Instead of
>> GET example.com/mg?select=3D AAA7s
>>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>
> Andy
>
>> -----Original Message-----
>> From: Andy Bierman [mailto:andy@yumaworks.com]
>> Sent: 3 juin 2015 13:09
>> To: Michel Veillette
>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>>
>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette <Michel.Veillette@trill=
iantinc.com> wrote:
>>> Hi Alexander
>>>
>>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented to t=
he hash clashes problem. Two based on a rehash table and two based on a new=
 CoAP query parameter carrying the module name or registered module ID. Thi=
s query parameter is used to select unambiguously the targeted data node(s)=
 assuming that any hash collision within a module have been resolved at des=
ign time. You can find this presentation in attachment.
>>>
>>> Both of your proposals make sense to me but I still hope that the clash=
 file can be avoided or be optional.
>>>
>>
>>
>> I agree we should not need the client to retrieve the rehash info before=
 using a server.
>> The CoMI authors have discussed a solution which I will try to write up =
today where a special "hash-clash" error is returned by CoMI if a rehash is=
 needed.
>>
>>    1) client requests module-A object with hash  "1234";
>>         there is no extended-name/local-name,
>>         just the YANG hash, used in any request
>>
>>    2) if '1234' has a collision in this server then a special error code=
 is returned;
>>        The return payload has the rehash info [old-hash, { module-name, =
new-hash }+]
>>            { "1234": [
>>                   "module-A":"4567",
>>                   "module-X":"6523"
>>               ]
>>            }
>>
>>     3) the client gets the error info, and knows which module its "1234"=
 is from.
>>          It finds the correct module name in the array and replaces its =
old-hash
>>          with the new-hash.
>>
>>    4) client re-sends the request, using hash "4567" instead of "1234"
>>
>> The rehash table goes away, and only this error info is used instead.
>>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>
>>
>>
>> Andy
>>
>>>
>>> -----Original Message-----
>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>> Pelov
>>> Sent: 3 juin 2015 11:01
>>> To: 6tisch@ietf.org; core@ietf.org
>>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>>
>>> Hello everyone,
>>>
>>> I would like to discuss with you to ideas/proposals in this mail, namel=
y:
>>> 1) Caching the yang clash file on a remote server
>>> 2) Compressing the URL representation of YANG hashes
>>>
>>> 1) Caching the yang clash file on a remote server Even though hash coll=
isions should happen rarely (if ever), there may be cases when it could be =
inevitable, and as such, it may be interesting to cache the clash_file some=
where on a remote server to avoid sending it over the constrained wireless =
interface. It could be used for other cases, where some frequently used res=
ources are re-hashed for performance purposes. Maybe it would be interestin=
g to allow the server to specify a remote location for the clash file? For =
static collisions or optimizations it could be that the YANG definition inc=
ludes alternative hash values, which could be used in addition to the norma=
l ones.
>>>
>>> 2) Compressing the URL representation of YANG hashes Another point
>>> (which is unrelated), is to elide the leading "A"s from the base64
>>> representation of the hash in the URL (which corresponds to eliding
>>> the leading zeroes from the hash). As specified in section 5.4. a
>>> hash value of 0x0000007e will be encoded as AAAA_, but if the leading
>>> A=E2=80=99s are elided it will be simply _
>>>
>>> This could pose problems only if in the future the size of the hash val=
ues is increased from 30 bits to some other (higher) value.
>>>
>>> This, however, could be very useful when having to frequently access
>>> the same resource. In such case, the server/network operator may
>>> decide to re-hash the URI to a shorter version, e.g. the
>>> /sys:system-state/sys:clock/sys:current-datetime could be remapped
>>> from 0x15370408 and VNwQI to 0x1 and _
>>>
>>> Best,
>>> Alex
>>>
>>> PS.
>>> A typo (?), which may be already corrected, in the example of mod.uri o=
n Page 26: the two responses have different scheme "mod.uri" and "moduri"
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>


From nobody Thu Jun  4 00:02:20 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0D6FD1A9120; Thu,  4 Jun 2015 00:02:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.903
X-Spam-Level: **
X-Spam-Status: No, score=2.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, HELO_EQ_FR=0.35, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N7OVL1ULd0-R; Thu,  4 Jun 2015 00:02:15 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id 7C8BE1A9100; Thu,  4 Jun 2015 00:02:13 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 41E5730294; Thu,  4 Jun 2015 09:02:13 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id rmCxC_u18otk; Thu,  4 Jun 2015 09:02:10 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id D00713029C; Thu,  4 Jun 2015 09:02:10 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id MnSpf41ikUUD; Thu,  4 Jun 2015 09:02:10 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id 71EA63029B; Thu,  4 Jun 2015 09:02:10 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com>
Date: Thu, 4 Jun 2015 09:02:09 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <0996C9B6-A0CD-4C59-9089-B4FC388B7B3A@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ilie3HxaVVEnSbEkX7JYNxwT1hU>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 07:02:18 -0000

Hi Andy,

> Le 3 juin 2015 =C3=A0 23:37, Andy Bierman <andy@yumaworks.com> a =
=C3=A9crit :
>=20
> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette
> <Michel.Veillette@trilliantinc.com> wrote:
>> About "I would prefer if hash collisions in a single module were not =
allowed."
>> Agreed but how this is implemented.
>>=20
>=20
>=20
> By checking the YANG hashes before it is published,
> similar to checking the YANG syntax with a YANG compiler.

>=20
>=20
>> About "But these numbers do not exist in any modules and so they =
cannot be relied on in CoMI.
>> I understand but I assume that a module can be re-published with the =
added statement when require. If a CoMI implementer try to implement a =
module containing a clash, he can look for a version of this module =
containing the special YANG statement. The likelihood of such clash is =
extremely low and such fallback solution won=E2=80=99t be required =
often. However, the RFC will specify how to resolve such situation if =
this ever happen. This statement can also be used to address the need =
for data node identifier compactness as mentioned by Alexander in its =
original email.
>>=20
>=20
> I think the ad-hoc id assignments are pointless because they are not
> universal.  The only thing that can be counted on is the module name
> and the XPath absolute path expression of each object.

Having a way of re-mapping (or aliasing) an ID to a =
locally-understood/negotiated ID is really important in some networks =
where the radio resources are extremely limited. If you are able to use =
IDs 1-23 and you have URL hash compression, you save 8 bytes (using =
standard CBOR, no changes here whatsoever). For IDs 24-63 you save 7 =
bytes, 63-255 - 6 bytes (without doing any particular treatment).=20

When using a general hash function, the probability of getting a hash =
value < 255 is 10E-7, and choosing an URI that statically gives you such =
ID simply sounds wrong (and unrealistic).

Two options are then possible here:
1) Leave this out of CoMI
2) Have a minor accommodation, and require no additional resources on =
the devices

Both require defining hash clash handling mechanism, so here the entire =
discussion on how to handle this is pertinent.

For me, 2) can be implemented in two ways:
2.a) Explicit ID re-mapping (or aliasing) through a (external) file. =
Here, it would be nice to have a way to specify the URI of the file, =
e.g. on the server or on a remote location. Something like the mod.uri .=20=

2.b) Explicit ID re-mapping (or aliasing) in the YANG module (e.g. =
through the "id" option mentioned by Michel or maybe with an extension, =
e.g. comi:id)

Note that if this is considered hash aliasing (we forget the =
re-mapping), then the behavior can be very simple, e.g.:
It is up to the implementer to define the hash aliases, if any. In case =
of clash with a YANG hash value, the alias must be ignored. In case of =
clash with another alias, both aliases are ignored.=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
CoMI can decide on a small concession for aliasing uses - say that YANG =
string hash values MUST be >=3D 64 (256?). The compiler can check that =
all hashes fulfill this before publishing. This way, there is even NO =
need to add any statement about alias clashes. It would be up to the =
implementer to chose the appropriate way of aliasing (if any). Aliases =
would be local in scope.

What do you think about it?=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Best,
Alexander



>=20
>=20
>> About "In NETCONF, modules tend to use augment a lot"
>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I propose =
a new definition to address this.
>>=20
>=20
> What is it?
> IMO you should post comments to the mailing list not markup
> to a word document.  It is too hard to follow.
>=20
>=20
>> Module Context: A module context is composed of all data nodes, =
notifications and RPCs defined in a YANG module and included sub-modules =
or added to them using the augment YANG statement.
>>=20
>=20
> Almost -- this is defined in RFC 6020 -- the augmenting nodes are
> not part of the augmented module.  They will be returned in
> NETCONF and RESTCONF retrieval operations for an ancestor node
> but they are not part of the augmented module.  Only objects
> defined in the module namespace are part of the module.
>=20
>=20
> Andy
>=20
>=20
>=20
>> Section 4.1.3.4 show an example of include, import and augment.
>>=20
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>=20
>>=20
>> -----Original Message-----
>> From: Andy Bierman [mailto:andy@yumaworks.com]
>> Sent: 3 juin 2015 14:54
>> To: Michel Veillette
>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>> Subject: Re: [core] CoMI remote server clash file and YANG hash in =
URL
>>=20
>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>> Hi Andy
>>>=20
>>> Couple of questions about your proposed solution.
>>>=20
>>> =3D=3D=3D Question #1, New YANG statement
>>>=20
>>> Your solution works only if hash clashes within a module are =
resolved at design time. If not, the error message will return the =
following information which is not sufficient to resolve which data node =
is which.
>>>=20
>>>   { "1234": [
>>>          "module-A":"4567",
>>>          "module-A":"6523"
>>>      ]
>>>   }
>>>=20
>>=20
>>=20
>> The original proposal had a 3-tuple { module-name, path-expr, =
new-hash } We discussed some optimizations in the 6TISCH call to reduce =
the size of the path-expr and still not require the client to store all =
the path strings, such as store a few bytes from the path strings like =
6th and 11th bytes (Avoid the common ietf- prefix for many module =
names).
>>=20
>> This is not deterministic. Only the full path string is fool-proof.
>> I would prefer if hash collisions in a single module were not =
allowed.
>> They need to be resolved at design time.  If this is not possible, =
then a standard rehash algorithm should be used so the collision is =
resolved in a predictable way.  e.g., try appending "_", then try "__", =
etc.
>> The result would be that hash collisions in a single module do not =
occur in CoMI.
>>=20
>>=20
>>> Is it possible/acceptable to request a new YANG statement to =
manually assign a ID to a data node?
>>> Same question for a module ID?
>>>=20
>>> For example (see "id 16" and "id 25" bellow) :
>>>=20
>>>   module a {
>>>      namespace a-ns;
>>>      prefix a;
>>>      id 16;
>>>      revision 2015-01-01;
>>>=20
>>>      leaf leafA1 { type string; id 25 }
>>>      container containerA {
>>>         leaf leafA2 { type string}
>>>      }
>>>   }
>>=20
>>=20
>> You could have an extension statement do anything you want:
>>=20
>>    comi:id  16;
>>=20
>> But these numbers do not exist any any modules and so they cannot be =
relied on in CoMI.
>>=20
>>=20
>>>=20
>>> =3D=3D=3D Question #2, Introduction of an optional query parameter =
used to
>>> target a specific module
>>>=20
>>> For nodes / networks which can afford a slitely larger payload (IEEE =
802.15.4g for example) but want to avoid the processing and storage =
associated with the porposed error message, are you opposed to the =
support of an optional CoAP query parameter use carry the module name or =
module ID ?
>>>=20
>>> For example:
>>>=20
>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>=20
>>> =3D=3D=3D Question #3, Use of the select query parameter instead of =
the URI
>>>=20
>>> Are you oposed to the use of the select query parameter instead of =
the
>>> URI to identify data node(s)
>>>=20
>>=20
>> Not really.
>>=20
>> I don't know how mixed the modules will get in CoMI.
>> In NETCONF, modules tend to use augment a lot, so the nodes from =
'module-A' may be nested nodes.
>> Retrieving just the augmenting nodes and ignoring the augmented nodes =
would likely be operationally useless.
>> e.g., when augmenting a list, the key leafs are needed to identify =
the instance.
>>=20
>> I would like to keep CoMI extremely simple.
>> More bells and whistles means increased
>> memory and CPU requirements. I am glad CORE and 6TISCH WGs are so =
concerned about constrained resources.
>> Only the most important bells and whistles will get standardized.
>>=20
>>=20
>>> For example:
>>>=20
>>> GET example.com/mg?select=3DY8d7s
>>> GET example.com/mg?select=3DY8d7s,NKHaA
>>> GET example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>=20
>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>=20
>>> Are you oposed to the compression of the base64 representation as =
propsed by Alexander.
>>>=20
>>=20
>> No.  Optimizations that reduce the encoding size are important.
>> I want to use standard CBOR.  No special hacks just for CoMI.
>>=20
>>> For example:
>>>=20
>>> GET example.com/mg?select=3D7s
>>> Instead of
>>> GET example.com/mg?select=3D AAA7s
>>>=20
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>=20
>>>=20
>>=20
>> Andy
>>=20
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 3 juin 2015 13:09
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in =
URL
>>>=20
>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>> Hi Alexander
>>>>=20
>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented =
to the hash clashes problem. Two based on a rehash table and two based =
on a new CoAP query parameter carrying the module name or registered =
module ID. This query parameter is used to select unambiguously the =
targeted data node(s) assuming that any hash collision within a module =
have been resolved at design time. You can find this presentation in =
attachment.
>>>>=20
>>>> Both of your proposals make sense to me but I still hope that the =
clash file can be avoided or be optional.
>>>>=20
>>>=20
>>>=20
>>> I agree we should not need the client to retrieve the rehash info =
before using a server.
>>> The CoMI authors have discussed a solution which I will try to write =
up today where a special "hash-clash" error is returned by CoMI if a =
rehash is needed.
>>>=20
>>>   1) client requests module-A object with hash  "1234";
>>>        there is no extended-name/local-name,
>>>        just the YANG hash, used in any request
>>>=20
>>>   2) if '1234' has a collision in this server then a special error =
code is returned;
>>>       The return payload has the rehash info [old-hash, { =
module-name, new-hash }+]
>>>           { "1234": [
>>>                  "module-A":"4567",
>>>                  "module-X":"6523"
>>>              ]
>>>           }
>>>=20
>>>    3) the client gets the error info, and knows which module its =
"1234" is from.
>>>         It finds the correct module name in the array and replaces =
its old-hash
>>>         with the new-hash.
>>>=20
>>>   4) client re-sends the request, using hash "4567" instead of =
"1234"
>>>=20
>>> The rehash table goes away, and only this error info is used =
instead.
>>>=20
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>=20
>>>=20
>>>=20
>>> Andy
>>>=20
>>>>=20
>>>> -----Original Message-----
>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>>> Pelov
>>>> Sent: 3 juin 2015 11:01
>>>> To: 6tisch@ietf.org; core@ietf.org
>>>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>>>=20
>>>> Hello everyone,
>>>>=20
>>>> I would like to discuss with you to ideas/proposals in this mail, =
namely:
>>>> 1) Caching the yang clash file on a remote server
>>>> 2) Compressing the URL representation of YANG hashes
>>>>=20
>>>> 1) Caching the yang clash file on a remote server Even though hash =
collisions should happen rarely (if ever), there may be cases when it =
could be inevitable, and as such, it may be interesting to cache the =
clash_file somewhere on a remote server to avoid sending it over the =
constrained wireless interface. It could be used for other cases, where =
some frequently used resources are re-hashed for performance purposes. =
Maybe it would be interesting to allow the server to specify a remote =
location for the clash file? For static collisions or optimizations it =
could be that the YANG definition includes alternative hash values, =
which could be used in addition to the normal ones.
>>>>=20
>>>> 2) Compressing the URL representation of YANG hashes Another point
>>>> (which is unrelated), is to elide the leading "A"s from the base64
>>>> representation of the hash in the URL (which corresponds to eliding
>>>> the leading zeroes from the hash). As specified in section 5.4. a
>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the =
leading
>>>> A=E2=80=99s are elided it will be simply _
>>>>=20
>>>> This could pose problems only if in the future the size of the hash =
values is increased from 30 bits to some other (higher) value.
>>>>=20
>>>> This, however, could be very useful when having to frequently =
access
>>>> the same resource. In such case, the server/network operator may
>>>> decide to re-hash the URI to a shorter version, e.g. the
>>>> /sys:system-state/sys:clock/sys:current-datetime could be remapped
>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>=20
>>>> Best,
>>>> Alex
>>>>=20
>>>> PS.
>>>> A typo (?), which may be already corrected, in the example of =
mod.uri on Page 26: the two responses have different scheme "mod.uri" =
and "moduri"
>>>>=20
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>=20
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>=20


From nobody Thu Jun  4 02:04:18 2015
Return-Path: <stokcons@xs4all.nl>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7CF2E1B3152; Thu,  4 Jun 2015 02:04:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.551
X-Spam-Level: 
X-Spam-Status: No, score=-1.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tgSxYrw9oc6m; Thu,  4 Jun 2015 02:04:14 -0700 (PDT)
Received: from lb2-smtp-cloud6.xs4all.net (lb2-smtp-cloud6.xs4all.net [194.109.24.28]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F07DC1B2EBC; Thu,  4 Jun 2015 02:04:13 -0700 (PDT)
Received: from mail.xs4all.nl ([194.109.20.207]) by smtp-cloud6.xs4all.net with ESMTP id c94A1q00J4U4Moq0194Axq; Thu, 04 Jun 2015 11:04:11 +0200
Received: from AMontpellier-654-1-24-128.w90-0.abo.wanadoo.fr ([90.0.39.128]) by mail.xs4all.nl with HTTP (HTTP/1.1 POST); Thu, 04 Jun 2015 11:04:10 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Date: Thu, 04 Jun 2015 11:04:10 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
In-Reply-To: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu>
Message-ID: <97b9cb702517137fc4b7ca76b5d11238@xs4all.nl>
X-Sender: stokcons@xs4all.nl (oTgCkPZtl7ZXJjfY2rqiDyLaiRi/kJiq)
User-Agent: XS4ALL Webmail
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/vzc1-E9RrGec_xNLJ6k5YqR20cg>
Cc: 6tisch@ietf.org, core@ietf.org
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 09:04:16 -0000

Hi Alexander,


Thanks for your comments; it is nice to see a growing interest in CoMI.
I like to go back to the start of this thread, as you formulate it 
below.
Thanks for the typo.

If I understand correctly, you want the server to point to URI where 
possible hash clash information of even hash optimization is stored at a 
server.
Personally, I don't mind that the /mg/yang.hash resource is used for 
that.

The syntax of the file contents will become more complex than it is now. 
Good news: it needs to be changed anyway, given the hash clash solution 
discussion with 6tisch people.
Contents and syntax (JSON format?) of the file may turn out to be a 
subject without limits.

For the moment I like to write down a new version 7 of the CoMI draft 
containing the rehash approach for hash clashes discussed with 6tisch 
and described in this thread by Andy.
I propose to continue the file contents discussion independent of the 
current clash rehash solution.

Greetings,

Peter



Alexander Pelov schreef op 2015-06-03 17:00:
> Hello everyone,
> 
> I would like to discuss with you to ideas/proposals in this mail, 
> namely:
> 1) Caching the yang clash file on a remote server
> 2) Compressing the URL representation of YANG hashes
> 
> 1) Caching the yang clash file on a remote server
> Even though hash collisions should happen rarely (if ever), there may
> be cases when it could be inevitable, and as such, it may be
> interesting to cache the clash_file somewhere on a remote server to
> avoid sending it over the constrained wireless interface. It could be
> used for other cases, where some frequently used resources are
> re-hashed for performance purposes. Maybe it would be interesting to
> allow the server to specify a remote location for the clash file? For
> static collisions or optimizations it could be that the YANG
> definition includes alternative hash values, which could be used in
> addition to the normal ones.
> 
> 2) Compressing the URL representation of YANG hashes
> Another point (which is unrelated), is to elide the leading "A"s from
> the base64 representation of the hash in the URL (which corresponds to
> eliding the leading zeroes from the hash). As specified in section
> 5.4. a hash value of 0x0000007e will be encoded as AAAA_, but if the
> leading Aâ€™s are elided it will be simply _
> 
> This could pose problems only if in the future the size of the hash
> values is increased from 30 bits to some other (higher) value.
> 
> This, however, could be very useful when having to frequently access
> the same resource. In such case, the server/network operator may
> decide to re-hash the URI to a shorter version, e.g. the
> /sys:system-state/sys:clock/sys:current-datetime could be remapped
> from 0x15370408 and VNwQI to 0x1 and _
> 
> Best,
> Alex
> 
> PS.
> A typo (?), which may be already corrected, in the example of mod.uri
> on Page 26: the two responses have different scheme "mod.uri" and
> "moduri"
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From nobody Thu Jun  4 02:28:51 2015
Return-Path: <stokcons@xs4all.nl>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B8F701B3215; Thu,  4 Jun 2015 02:28:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.903
X-Spam-Level: **
X-Spam-Status: No, score=2.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, HELO_EQ_FR=0.35, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wDCO1mztCXkx; Thu,  4 Jun 2015 02:28:47 -0700 (PDT)
Received: from lb1-smtp-cloud6.xs4all.net (lb1-smtp-cloud6.xs4all.net [194.109.24.24]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AE2B41B320D; Thu,  4 Jun 2015 02:28:45 -0700 (PDT)
Received: from mail.xs4all.nl ([194.109.20.207]) by smtp-cloud6.xs4all.net with ESMTP id c9Uj1q00Q4U4Moq019Uj8L; Thu, 04 Jun 2015 11:28:43 +0200
Received: from AMontpellier-654-1-24-128.w90-0.abo.wanadoo.fr ([90.0.39.128]) by mail.xs4all.nl with HTTP (HTTP/1.1 POST); Thu, 04 Jun 2015 11:28:43 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Date: Thu, 04 Jun 2015 11:28:43 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
In-Reply-To: <0996C9B6-A0CD-4C59-9089-B4FC388B7B3A@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <0996C9B6-A0CD-4C59-9089-B4FC388B7B3A@telecom-bretagne.eu>
Message-ID: <9b002d62d48ed4f6c1436b160a9a9854@xs4all.nl>
X-Sender: stokcons@xs4all.nl (glLcghrL8gfXdFRoJdFPzLFYWxQqg4tP)
User-Agent: XS4ALL Webmail
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/F27oOjkYa6_zYGWJank2ThgSMok>
Cc: 6tisch@ietf.org, core@ietf.org
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 09:28:50 -0000

Hi Alexander,

Your suggestion to standardize a handle to a mechanism to do hash 
aliasing but keep the algorithms out of CoMI seems reasonable to me in a 
first approach.
It is then a matter of interest whether the mechanisms of hash aliasing 
are standardized within CoRE wg or even within CoMI I-D.

However, I think the idea is interesting and like to investigate it 
further; and understand what extra standardization is needed.

Peter

Alexander Pelov schreef op 2015-06-04 09:02:
> Hi Andy,
> 
>> Le 3 juin 2015 Ã  23:37, Andy Bierman <andy@yumaworks.com> a Ã©crit :
>> 
>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette
>> <Michel.Veillette@trilliantinc.com> wrote:
>>> About "I would prefer if hash collisions in a single module were not 
>>> allowed."
>>> Agreed but how this is implemented.
>>> 
>> 
>> 
>> By checking the YANG hashes before it is published,
>> similar to checking the YANG syntax with a YANG compiler.
> 
>> 
>> 
>>> About "But these numbers do not exist in any modules and so they 
>>> cannot be relied on in CoMI.
>>> I understand but I assume that a module can be re-published with the 
>>> added statement when require. If a CoMI implementer try to implement 
>>> a module containing a clash, he can look for a version of this module 
>>> containing the special YANG statement. The likelihood of such clash 
>>> is extremely low and such fallback solution wonâ€™t be required often. 
>>> However, the RFC will specify how to resolve such situation if this 
>>> ever happen. This statement can also be used to address the need for 
>>> data node identifier compactness as mentioned by Alexander in its 
>>> original email.
>>> 
>> 
>> I think the ad-hoc id assignments are pointless because they are not
>> universal.  The only thing that can be counted on is the module name
>> and the XPath absolute path expression of each object.
> 
> Having a way of re-mapping (or aliasing) an ID to a
> locally-understood/negotiated ID is really important in some networks
> where the radio resources are extremely limited. If you are able to
> use IDs 1-23 and you have URL hash compression, you save 8 bytes
> (using standard CBOR, no changes here whatsoever). For IDs 24-63 you
> save 7 bytes, 63-255 - 6 bytes (without doing any particular
> treatment).
> 
> When using a general hash function, the probability of getting a hash
> value < 255 is 10E-7, and choosing an URI that statically gives you
> such ID simply sounds wrong (and unrealistic).
> 
> Two options are then possible here:
> 1) Leave this out of CoMI
> 2) Have a minor accommodation, and require no additional resources on
> the devices
> 
> Both require defining hash clash handling mechanism, so here the
> entire discussion on how to handle this is pertinent.
> 
> For me, 2) can be implemented in two ways:
> 2.a) Explicit ID re-mapping (or aliasing) through a (external) file.
> Here, it would be nice to have a way to specify the URI of the file,
> e.g. on the server or on a remote location. Something like the mod.uri
> .
> 2.b) Explicit ID re-mapping (or aliasing) in the YANG module (e.g.
> through the "id" option mentioned by Michel or maybe with an
> extension, e.g. comi:id)
> 
> Note that if this is considered hash aliasing (we forget the
> re-mapping), then the behavior can be very simple, e.g.:
> It is up to the implementer to define the hash aliases, if any. In
> case of clash with a YANG hash value, the alias must be ignored. In
> case of clash with another alias, both aliases are ignored.
> 
> =======================
> CoMI can decide on a small concession for aliasing uses - say that
> YANG string hash values MUST be >= 64 (256?). The compiler can check
> that all hashes fulfill this before publishing. This way, there is
> even NO need to add any statement about alias clashes. It would be up
> to the implementer to chose the appropriate way of aliasing (if any).
> Aliases would be local in scope.
> 
> What do you think about it?
> =======================
> 
> Best,
> Alexander
> 
> 
> 
>> 
>> 
>>> About "In NETCONF, modules tend to use augment a lot"
>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I propose 
>>> a new definition to address this.
>>> 
>> 
>> What is it?
>> IMO you should post comments to the mailing list not markup
>> to a word document.  It is too hard to follow.
>> 
>> 
>>> Module Context: A module context is composed of all data nodes, 
>>> notifications and RPCs defined in a YANG module and included 
>>> sub-modules or added to them using the augment YANG statement.
>>> 
>> 
>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are
>> not part of the augmented module.  They will be returned in
>> NETCONF and RESTCONF retrieval operations for an ancestor node
>> but they are not part of the augmented module.  Only objects
>> defined in the module namespace are part of the module.
>> 
>> 
>> Andy
>> 
>> 
>> 
>>> Section 4.1.3.4 show an example of include, import and augment.
>>> 
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>> 
>>> 
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 3 juin 2015 14:54
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in 
>>> URL
>>> 
>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette 
>>> <Michel.Veillette@trilliantinc.com> wrote:
>>>> Hi Andy
>>>> 
>>>> Couple of questions about your proposed solution.
>>>> 
>>>> === Question #1, New YANG statement
>>>> 
>>>> Your solution works only if hash clashes within a module are 
>>>> resolved at design time. If not, the error message will return the 
>>>> following information which is not sufficient to resolve which data 
>>>> node is which.
>>>> 
>>>>   { "1234": [
>>>>          "module-A":"4567",
>>>>          "module-A":"6523"
>>>>      ]
>>>>   }
>>>> 
>>> 
>>> 
>>> The original proposal had a 3-tuple { module-name, path-expr, 
>>> new-hash } We discussed some optimizations in the 6TISCH call to 
>>> reduce the size of the path-expr and still not require the client to 
>>> store all the path strings, such as store a few bytes from the path 
>>> strings like 6th and 11th bytes (Avoid the common ietf- prefix for 
>>> many module names).
>>> 
>>> This is not deterministic. Only the full path string is fool-proof.
>>> I would prefer if hash collisions in a single module were not 
>>> allowed.
>>> They need to be resolved at design time.  If this is not possible, 
>>> then a standard rehash algorithm should be used so the collision is 
>>> resolved in a predictable way.  e.g., try appending "_", then try 
>>> "__", etc.
>>> The result would be that hash collisions in a single module do not 
>>> occur in CoMI.
>>> 
>>> 
>>>> Is it possible/acceptable to request a new YANG statement to 
>>>> manually assign a ID to a data node?
>>>> Same question for a module ID?
>>>> 
>>>> For example (see "id 16" and "id 25" bellow) :
>>>> 
>>>>   module a {
>>>>      namespace a-ns;
>>>>      prefix a;
>>>>      id 16;
>>>>      revision 2015-01-01;
>>>> 
>>>>      leaf leafA1 { type string; id 25 }
>>>>      container containerA {
>>>>         leaf leafA2 { type string}
>>>>      }
>>>>   }
>>> 
>>> 
>>> You could have an extension statement do anything you want:
>>> 
>>>    comi:id  16;
>>> 
>>> But these numbers do not exist any any modules and so they cannot be 
>>> relied on in CoMI.
>>> 
>>> 
>>>> 
>>>> === Question #2, Introduction of an optional query parameter used to
>>>> target a specific module
>>>> 
>>>> For nodes / networks which can afford a slitely larger payload (IEEE 
>>>> 802.15.4g for example) but want to avoid the processing and storage 
>>>> associated with the porposed error message, are you opposed to the 
>>>> support of an optional CoAP query parameter use carry the module 
>>>> name or module ID ?
>>>> 
>>>> For example:
>>>> 
>>>> GET example.com/Y8d7s?select= ietf-6tisch-mac
>>>> 
>>>> === Question #3, Use of the select query parameter instead of the 
>>>> URI
>>>> 
>>>> Are you oposed to the use of the select query parameter instead of 
>>>> the
>>>> URI to identify data node(s)
>>>> 
>>> 
>>> Not really.
>>> 
>>> I don't know how mixed the modules will get in CoMI.
>>> In NETCONF, modules tend to use augment a lot, so the nodes from 
>>> 'module-A' may be nested nodes.
>>> Retrieving just the augmenting nodes and ignoring the augmented nodes 
>>> would likely be operationally useless.
>>> e.g., when augmenting a list, the key leafs are needed to identify 
>>> the instance.
>>> 
>>> I would like to keep CoMI extremely simple.
>>> More bells and whistles means increased
>>> memory and CPU requirements. I am glad CORE and 6TISCH WGs are so 
>>> concerned about constrained resources.
>>> Only the most important bells and whistles will get standardized.
>>> 
>>> 
>>>> For example:
>>>> 
>>>> GET example.com/mg?select=Y8d7s
>>>> GET example.com/mg?select=Y8d7s,NKHaA
>>>> GET example.com/mg?select=ietf-6tisch-mac(Y8d7s,NKHaA)
>>>> 
>>>> === Question #4, Compressing YANG hash base64 representation
>>>> 
>>>> Are you oposed to the compression of the base64 representation as 
>>>> propsed by Alexander.
>>>> 
>>> 
>>> No.  Optimizations that reduce the encoding size are important.
>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>> 
>>>> For example:
>>>> 
>>>> GET example.com/mg?select=7s
>>>> Instead of
>>>> GET example.com/mg?select= AAA7s
>>>> 
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>> 
>>>> 
>>> 
>>> Andy
>>> 
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 13:09
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in 
>>>> URL
>>>> 
>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette 
>>>> <Michel.Veillette@trilliantinc.com> wrote:
>>>>> Hi Alexander
>>>>> 
>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented 
>>>>> to the hash clashes problem. Two based on a rehash table and two 
>>>>> based on a new CoAP query parameter carrying the module name or 
>>>>> registered module ID. This query parameter is used to select 
>>>>> unambiguously the targeted data node(s) assuming that any hash 
>>>>> collision within a module have been resolved at design time. You 
>>>>> can find this presentation in attachment.
>>>>> 
>>>>> Both of your proposals make sense to me but I still hope that the 
>>>>> clash file can be avoided or be optional.
>>>>> 
>>>> 
>>>> 
>>>> I agree we should not need the client to retrieve the rehash info 
>>>> before using a server.
>>>> The CoMI authors have discussed a solution which I will try to write 
>>>> up today where a special "hash-clash" error is returned by CoMI if a 
>>>> rehash is needed.
>>>> 
>>>>   1) client requests module-A object with hash  "1234";
>>>>        there is no extended-name/local-name,
>>>>        just the YANG hash, used in any request
>>>> 
>>>>   2) if '1234' has a collision in this server then a special error 
>>>> code is returned;
>>>>       The return payload has the rehash info [old-hash, { 
>>>> module-name, new-hash }+]
>>>>           { "1234": [
>>>>                  "module-A":"4567",
>>>>                  "module-X":"6523"
>>>>              ]
>>>>           }
>>>> 
>>>>    3) the client gets the error info, and knows which module its 
>>>> "1234" is from.
>>>>         It finds the correct module name in the array and replaces 
>>>> its old-hash
>>>>         with the new-hash.
>>>> 
>>>>   4) client re-sends the request, using hash "4567" instead of 
>>>> "1234"
>>>> 
>>>> The rehash table goes away, and only this error info is used 
>>>> instead.
>>>> 
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>>> 
>>>> 
>>>> 
>>>> Andy
>>>> 
>>>>> 
>>>>> -----Original Message-----
>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>>>> Pelov
>>>>> Sent: 3 juin 2015 11:01
>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>>>> 
>>>>> Hello everyone,
>>>>> 
>>>>> I would like to discuss with you to ideas/proposals in this mail, 
>>>>> namely:
>>>>> 1) Caching the yang clash file on a remote server
>>>>> 2) Compressing the URL representation of YANG hashes
>>>>> 
>>>>> 1) Caching the yang clash file on a remote server Even though hash 
>>>>> collisions should happen rarely (if ever), there may be cases when 
>>>>> it could be inevitable, and as such, it may be interesting to cache 
>>>>> the clash_file somewhere on a remote server to avoid sending it 
>>>>> over the constrained wireless interface. It could be used for other 
>>>>> cases, where some frequently used resources are re-hashed for 
>>>>> performance purposes. Maybe it would be interesting to allow the 
>>>>> server to specify a remote location for the clash file? For static 
>>>>> collisions or optimizations it could be that the YANG definition 
>>>>> includes alternative hash values, which could be used in addition 
>>>>> to the normal ones.
>>>>> 
>>>>> 2) Compressing the URL representation of YANG hashes Another point
>>>>> (which is unrelated), is to elide the leading "A"s from the base64
>>>>> representation of the hash in the URL (which corresponds to eliding
>>>>> the leading zeroes from the hash). As specified in section 5.4. a
>>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the 
>>>>> leading
>>>>> Aâ€™s are elided it will be simply _
>>>>> 
>>>>> This could pose problems only if in the future the size of the hash 
>>>>> values is increased from 30 bits to some other (higher) value.
>>>>> 
>>>>> This, however, could be very useful when having to frequently 
>>>>> access
>>>>> the same resource. In such case, the server/network operator may
>>>>> decide to re-hash the URI to a shorter version, e.g. the
>>>>> /sys:system-state/sys:clock/sys:current-datetime could be remapped
>>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>> 
>>>>> Best,
>>>>> Alex
>>>>> 
>>>>> PS.
>>>>> A typo (?), which may be already corrected, in the example of 
>>>>> mod.uri on Page 26: the two responses have different scheme 
>>>>> "mod.uri" and "moduri"
>>>>> 
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>> 
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>> 
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From nobody Thu Jun  4 05:23:44 2015
Return-Path: <ludwig@sics.se>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 543EC1B3262 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 05:23:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CpihY3Y8oPIl for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 05:23:41 -0700 (PDT)
Received: from mail-la0-f51.google.com (mail-la0-f51.google.com [209.85.215.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1A1621B3487 for <core@ietf.org>; Thu,  4 Jun 2015 05:20:35 -0700 (PDT)
Received: by laei3 with SMTP id i3so30377389lae.3 for <core@ietf.org>; Thu, 04 Jun 2015 05:20:33 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:content-type; bh=rnpk8U0nlsULDVGIraZ3ergNgvJpk8O21MVxgHiJ4ho=; b=F4UKquuV1egzo5vtaRgO2e14bUmrDj3eNNLI/sjiohU33Ch9f52eXZRVSUSy+RG7wN 5IhwNCRgsCFMuNX77dY1N48BZ8Pmh0ZPbZuZjpfQltUzayPxj265/lqaOnc8qP7AhJpI NhoyrA7F6oSqB38E7Z0uX8xxwJXQVWG0NCTt6/RziZegXSrwiWGWsieEyJth59ayThJl PAmi4bSHrVEubrknNewnfzgNeSLw6CDsMJsE1Sby8tropxWdnyz6cbsFDZTBsVw7m+c/ g/8Br04vRL54FFwqiBtxVmwiF84pXHrhDkVUnc1wL10FOLDxCxLM214FLGSz6j0IDWNJ lamw==
X-Gm-Message-State: ALoCoQkl1FEkXGsl9eV/i8OFIwPzeWviOm+PFCoZ9bfDkGo2mOmxeB1Q8OtPX5Iy0w4PwmkRXl88
X-Received: by 10.152.9.201 with SMTP id c9mr10437612lab.104.1433420433407; Thu, 04 Jun 2015 05:20:33 -0700 (PDT)
Received: from [192.168.0.108] ([85.235.11.178]) by mx.google.com with ESMTPSA id yq5sm672475lab.32.2015.06.04.05.20.32 for <core@ietf.org> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jun 2015 05:20:32 -0700 (PDT)
Message-ID: <5570428E.5070500@sics.se>
Date: Thu, 04 Jun 2015 14:20:30 +0200
From: Ludwig Seitz <ludwig@sics.se>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: core <core@ietf.org>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms090205070904010009090606"
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/mYkezNao0wo4mIpHYiPmDdBRg-0>
Subject: [core] Question about blockwise and object security
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 12:23:43 -0000

This is a cryptographically signed message in MIME format.

--------------ms090205070904010009090606
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Hello CoRE,

I am just looking at draft-ietf-core-block in conjunction with object=20
security (draft-selander-ace-object-security) , and I wonder if any of=20
you are aware of usecases, where it would make sense for a proxy to=20
"repackage" blockwise coap messages into blocks of a different size (or=20
recombine them before forwarding them).

Regards,

Ludwig Seitz

--=20
Ludwig Seitz, PhD
SICS Swedish ICT AB
Ideon Science Park
Building Beta 2
Scheelev=C3=A4gen 17
SE-223 70 Lund

Phone +46(0)70-349 92 51
http://www.sics.se


--------------ms090205070904010009090606
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIMVDCC
BhgwggUAoAMCAQICAwyGmDANBgkqhkiG9w0BAQUFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNV
BAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRl
IFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlh
dGUgQ2xpZW50IENBMB4XDTE1MDEwODA4MzkwNloXDTE2MDEwOTIyNDEzMFowODEXMBUGA1UE
AwwObHVkd2lnQHNpY3Muc2UxHTAbBgkqhkiG9w0BCQEWDmx1ZHdpZ0BzaWNzLnNlMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxUHisC6rgXFsBHHBGo8ulz/cLX3gX5Ufhcwo
rp+7djzMMuKPM1KOHq0bjWhmFe8ly8CzWdk2NS600t7IEBQWJiHLsdc12UqmNswQUpD7oqkR
1nRGT6leAHYTWapkR+nczZ2NxD+H7u4ZWVIZg0DFiTqtY8ghYHHYYy8BBoc/jHG78X4+JJAg
s5XOa0gVl7W38vDvVpo14xhWEBGjzPk9WxWirqAF66PF+JEu2JD9LzFbpEq829SRXJMFB9wp
oQNlH0UQ01/2sWCIBxPpHuEjxEF/V3Z/F2VsNTy4zvYrd+/MYO3w30F+bWQNZsMHEkTW1pEh
iz7rQPWTBXoO8Fv0wQIDAQABo4IC1DCCAtAwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYD
VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB0GA1UdDgQWBBTqvKspqEm0E4R1sgsABYKk
6xDJqDAfBgNVHSMEGDAWgBRTcu2SnODaywFcfH6WNU7y1LhRgjAZBgNVHREEEjAQgQ5sdWR3
aWdAc2ljcy5zZTCCAUwGA1UdIASCAUMwggE/MIIBOwYLKwYBBAGBtTcBAgMwggEqMC4GCCsG
AQUFBwIBFiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMIH3BggrBgEFBQcC
AjCB6jAnFiBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTADAgEBGoG+VGhpcyBj
ZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGFjY29yZGluZyB0byB0aGUgQ2xhc3MgMSBWYWxpZGF0
aW9uIHJlcXVpcmVtZW50cyBvZiB0aGUgU3RhcnRDb20gQ0EgcG9saWN5LCByZWxpYW5jZSBv
bmx5IGZvciB0aGUgaW50ZW5kZWQgcHVycG9zZSBpbiBjb21wbGlhbmNlIG9mIHRoZSByZWx5
aW5nIHBhcnR5IG9ibGlnYXRpb25zLjA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLnN0
YXJ0c3NsLmNvbS9jcnR1MS1jcmwuY3JsMIGOBggrBgEFBQcBAQSBgTB/MDkGCCsGAQUFBzAB
hi1odHRwOi8vb2NzcC5zdGFydHNzbC5jb20vc3ViL2NsYXNzMS9jbGllbnQvY2EwQgYIKwYB
BQUHMAKGNmh0dHA6Ly9haWEuc3RhcnRzc2wuY29tL2NlcnRzL3N1Yi5jbGFzczEuY2xpZW50
LmNhLmNydDAjBgNVHRIEHDAahhhodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS8wDQYJKoZIhvcN
AQEFBQADggEBAGXwFsbSfv4mMWqIk64CoxuR6ozo7J37igca7d9tpKIzVIp6xp7Zt+a+J9X3
1r4zgMRFnZJWQ5hy82W/fVDeG9i3NGMM6p7DNUrGjTbVHd11BQtbUOG9MSlyWKQbmt3Q1ElC
f4SRLAQot5SPryLR2FTxQuFkMOrcDzVxNxnMgatOM2fAO8KS0H+wX+I7gC3pEnbg/eMqNgU+
Ktbc2y9naDNmLNLN65s8TT9xZyoQEn9S1oU8Xnh596OMu49Eccws8Ny+vAGESIHG4bqhMSjj
rmDilL1Wj9nQahmBnID5oZD5g9s9KyqxiZIGNnowYYOpCrSeITZ1b7wg50dC8ySojnYwggY0
MIIEHKADAgECAgEeMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1T
dGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWdu
aW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNzEw
MjQyMTAxNTVaFw0xNzEwMjQyMTAxNTVaMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3Rh
cnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
ZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGll
bnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHCYPMzi3YGrEppC4Tq5a+
ijKDjKaIQZZVR63UbxIP6uq/I0fhCu+cQhoUfE6ERKKnu8zPf1Jwuk0tsvVCk6U9b+0UjM0d
Lep3ZdE1gblK/1FwYT5Pipsu2yOMluLqwvsuz9/9f1+1PKHG/FaR/wpbfuIqu54qzHDYeqiU
fsYzoVflR80DAC7hmJ+SmZnNTWyUGHJbBpA8Q89lGxahNvuryGaC/o2/ceD2uYDX9U8Eg5Dp
IpGQdcbQeGarV04WgAUjjXX5r/2dabmtxWMZwhZna//jdiSyrrSMTGKkDiXm6/3/4ebfeZuC
YKzN2P8O2F/Xe2AC/Y7zeEsnR7FOp+uXAgMBAAGjggGtMIIBqTAPBgNVHRMBAf8EBTADAQH/
MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwHwYDVR0j
BBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwZgYIKwYBBQUHAQEEWjBYMCcGCCsGAQUFBzAB
hhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwLQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cu
c3RhcnRzc2wuY29tL3Nmc2NhLmNydDBbBgNVHR8EVDBSMCegJaAjhiFodHRwOi8vd3d3LnN0
YXJ0c3NsLmNvbS9zZnNjYS5jcmwwJ6AloCOGIWh0dHA6Ly9jcmwuc3RhcnRzc2wuY29tL3Nm
c2NhLmNybDCBgAYDVR0gBHkwdzB1BgsrBgEEAYG1NwECATBmMC4GCCsGAQUFBwIBFiJodHRw
Oi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMDQGCCsGAQUFBwIBFihodHRwOi8vd3d3
LnN0YXJ0c3NsLmNvbS9pbnRlcm1lZGlhdGUucGRmMA0GCSqGSIb3DQEBBQUAA4ICAQAKgwh9
eKssBly4Y4xerhy5I3dNoXHYfYa8PlVLL/qtXnkFgdtY1o95CfegFJTwqBBmf8pyTUnFsukD
FUI22zF5bVHzuJ+GxhnSqN2sD1qetbYwBYK2iyYA5Pg7Er1A+hKMIzEzcduRkIMmCeUTyMyi
kfbUFvIBivtvkR8ZFAk22BZy+pJfAoedO61HTz4qSfQoCRcLN5A0t4DkuVhTMXIzuQ8Cnykh
ExD6x4e6ebIbrjZLb7L+ocR0y4YjCl/Pd4MXU91y0vTipgr/O75CDUHDRHCCKBVmz/Rzkc/b
970MEeHt5LC3NiWTgBSvrLEuVzBKM586YoRD9Dy3OHQgWI270g+5MYA8GfgI/EPT5G7xPbCD
z+zjdH89PeR3U4So4lSXur6H6vp+m9TQXPF3a0LwZrp8MQ+Z77U1uL7TelWO5lApsbAonrqA
SfTpaprFVkL4nyGH+NHST2ZJPWIBk81i6Vw0ny0qZW2Niy/QvVNKbb43A43ny076khXO7cNb
BIRdJ/6qQNq9Bqb5C0Q5nEsFcj75oxQRqlKf6TcvGbjxkJh8BYtv9ePsXklAxtm8J7GCUBth
HSQgepbkOexhJ0wP8imUkyiPHQ0GvEnd83129fZjoEhdGwXV27ioRKbj/cIq7JRXun0NbeY+
UdMYu9jGfIpDLtUUGSgsg2zMGs5R4jGCA90wggPZAgEBMIGUMIGMMQswCQYDVQQGEwJJTDEW
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlm
aWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVy
bWVkaWF0ZSBDbGllbnQgQ0ECAwyGmDAJBgUrDgMCGgUAoIICHTAYBgkqhkiG9w0BCQMxCwYJ
KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTA2MDQxMjIwMzBaMCMGCSqGSIb3DQEJBDEW
BBR7Lw0ESC19QvLJ/t++79oRtmGpjzBsBgkqhkiG9w0BCQ8xXzBdMAsGCWCGSAFlAwQBKjAL
BglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFA
MAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGlBgkrBgEEAYI3EAQxgZcwgZQwgYwxCzAJBgNV
BAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRh
bCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFydENvbSBDbGFzcyAxIFByaW1h
cnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQIDDIaYMIGnBgsqhkiG9w0BCRACCzGBl6CBlDCB
jDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3Vy
ZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNz
IDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBAgMMhpgwDQYJKoZIhvcNAQEBBQAE
ggEAmtjS/yzPsa5mPWK5U6Bam+w85GEv/YokVz/6kPuvwqOiwvgkvP4J5ZsE+2P5oyUrfU9J
huzVEJsdcYJ+rC2i8WuOIunCX4wcQJp8iiRp9uB4nkqRUy8CfjXF+2zexBhabP9lGZufmbjf
9zRJXcAA2u1y3eUTexIb0S9r8OCI99GXRtEEeNggtiorhTC6vh5Tl7AYg40cfRN7ESJ0Wth6
EzuzD1UVEcaE2JUIMrNl1iDRJQLxWwVxh6S5xMYaQShAO/9SwcjEeMFFbImChpkj2i2u5AAd
pk7a5LxN815+6fs5Ar02+gF55XL+0N7yIhIHEkl9FDdLJn8zVf7MpnXyTAAAAAAAAA==
--------------ms090205070904010009090606--


From nobody Thu Jun  4 05:32:48 2015
Return-Path: <kepeng.lkp@alibaba-inc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E4AA71B3274 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 05:32:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, MIME_QP_LONG_LINE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0rk1m0RLb8Yx for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 05:32:45 -0700 (PDT)
Received: from out4133-18.mail.aliyun.com (out4133-18.mail.aliyun.com [42.120.133.18]) by ietfa.amsl.com (Postfix) with ESMTP id A1B491B3277 for <core@ietf.org>; Thu,  4 Jun 2015 05:32:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alibaba-inc.com; s=default; t=1433421163; h=Date:Subject:From:To:Message-ID:Mime-version:Content-type; bh=hNF8ccoziEUOyrABbQB+wSK03VEbPJxP3qGZg3PlhPA=; b=vjTNyLs609jP4q4GXwlZQKGdVwngoqflNP1hCgBkYvpYT7LNtZ61RC943rvD66hXiyCAMzdEf7w3c68OdzM9ZEdp+Lg5DvQfFBr9DX4TW5XK4KBE9G9lM5lMkr4gJdrKVmO9sacKZpui6CrhgXiqsqVvqaKW3uR5MfFAOE9V4S4=
X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R101e4; FP=0|-1|-1|-1|0|-1|-1|-1; HT=r41f05022; MF=kepeng.lkp@alibaba-inc.com; PH=DS;  RN=2; RT=2; SR=0; 
Received: from 10.1.147.12(mailfrom:kepeng.lkp@alibaba-inc.com ip:42.120.74.187) by smtp.aliyun-inc.com(127.0.0.1); Thu, 04 Jun 2015 20:32:41 +0800
User-Agent: Microsoft-MacOutlook/14.4.8.150116
Date: Thu, 04 Jun 2015 20:32:36 +0800
From: "Kepeng Li" <kepeng.lkp@alibaba-inc.com>
To: Ludwig Seitz <ludwig@sics.se>, core <core@ietf.org>
Message-ID: <D196653F.C5D7%kepeng.lkp@alibaba-inc.com>
Thread-Topic: [core] Question about blockwise and object security
References: <5570428E.5070500@sics.se>
In-Reply-To: <5570428E.5070500@sics.se>
Mime-version: 1.0
Content-type: text/plain; charset="UTF-8"
Content-transfer-encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/XtXU8AD8Ipcj22RL-g06R700fEA>
Subject: Re: [core] Question about blockwise and object security
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 12:32:47 -0000

It depends on what kinds of proxies, forward proxy, transparent proxy or
interception proxy.
https://tools.ietf.org/html/draft-ietf-core-http-mapping-06#page-5

I think we have this "repackage" use case.

Kind Regards
Kepeng


=E5=9C=A8 4/6/15 8:20 pm=EF=BC=8C "Ludwig Seitz" <ludwig@sics.se> =E5=86=99=E5=85=A5:

>Hello CoRE,
>
>I am just looking at draft-ietf-core-block in conjunction with object
>security (draft-selander-ace-object-security) , and I wonder if any of
>you are aware of usecases, where it would make sense for a proxy to
>"repackage" blockwise coap messages into blocks of a different size (or
>recombine them before forwarding them).
>
>Regards,
>
>Ludwig Seitz
>
>--=20
>Ludwig Seitz, PhD
>SICS Swedish ICT AB
>Ideon Science Park
>Building Beta 2
>Scheelev=C3=A4gen 17
>SE-223 70 Lund
>
>Phone +46(0)70-349 92 51
>http://www.sics.se
>
>_______________________________________________
>core mailing list
>core@ietf.org
>https://www.ietf.org/mailman/listinfo/core



From nobody Thu Jun  4 05:56:43 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 532A81A8769 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 05:56:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.475
X-Spam-Level: **
X-Spam-Status: No, score=2.475 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mNSRcuy66kwm for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 05:56:39 -0700 (PDT)
Received: from mail-la0-f43.google.com (mail-la0-f43.google.com [209.85.215.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DE4E31A70FD for <core@ietf.org>; Thu,  4 Jun 2015 05:56:38 -0700 (PDT)
Received: by laew7 with SMTP id w7so31168762lae.1 for <core@ietf.org>; Thu, 04 Jun 2015 05:56:36 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=aNoN4qDeNI11oWVMH/Cnw6W4omSapU2PQwIEwgB+uvE=; b=HzdCJM5nqNCNMMraBw06T+xW7weOz6OFWAkOOuUJVbcqjKWNpuK72Kcoi8IYPPsrOa RXNaDQGE1onMfAZcUXeDd7GTFgk6ZaGhxOFfAVEPOPWkqj14tIujyu2kuPdH9W4HjEVZ V7eP9NQbhbyqqDZs+/SNqmt1CP+bh1iE/4b17W7Wi3VGVkQJGgxScbeFkk/kVLi6ur4P m6wl5tym9pREBKWOaTm1oNPcav7CGxzXvZca6lLbcCgZgahTUnUY/Qhfhck8HdHMIWw6 AJYwFEw8VAWdjODjsjBQ+Je+Ds/BjbWUeK6jyFXK9It9vSZTP5A2Wcxb2PPonwOSrhzZ WTFA==
X-Gm-Message-State: ALoCoQmPkJskfRCz+56GXqWk1W0lk7X26orFGRVYu+jM+0hAlPS/NpBU0F43zgOcPfDVCmifbSRe
MIME-Version: 1.0
X-Received: by 10.112.124.71 with SMTP id mg7mr37183243lbb.38.1433422596183; Thu, 04 Jun 2015 05:56:36 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Thu, 4 Jun 2015 05:56:36 -0700 (PDT)
In-Reply-To: <0996C9B6-A0CD-4C59-9089-B4FC388B7B3A@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <0996C9B6-A0CD-4C59-9089-B4FC388B7B3A@telecom-bretagne.eu>
Date: Thu, 4 Jun 2015 05:56:36 -0700
Message-ID: <CABCOCHR4N66AT-=e998NNMzkEXzo1AU7mFN3WQyG+cvudC_cZw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/NsGMYhmuoJLWb_QZWsfDUKBtP08>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 12:56:42 -0000

On Thu, Jun 4, 2015 at 12:02 AM, Alexander Pelov
<alexander.pelov@telecom-bretagne.eu> wrote:
> Hi Andy,
>
>> Le 3 juin 2015 =C3=A0 23:37, Andy Bierman <andy@yumaworks.com> a =C3=A9c=
rit :
>>
>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette
>> <Michel.Veillette@trilliantinc.com> wrote:
>>> About "I would prefer if hash collisions in a single module were not al=
lowed."
>>> Agreed but how this is implemented.
>>>
>>
>>
>> By checking the YANG hashes before it is published,
>> similar to checking the YANG syntax with a YANG compiler.
>
>>
>>
>>> About "But these numbers do not exist in any modules and so they cannot=
 be relied on in CoMI.
>>> I understand but I assume that a module can be re-published with the ad=
ded statement when require. If a CoMI implementer try to implement a module=
 containing a clash, he can look for a version of this module containing th=
e special YANG statement. The likelihood of such clash is extremely low and=
 such fallback solution won=E2=80=99t be required often. However, the RFC w=
ill specify how to resolve such situation if this ever happen. This stateme=
nt can also be used to address the need for data node identifier compactnes=
s as mentioned by Alexander in its original email.
>>>
>>
>> I think the ad-hoc id assignments are pointless because they are not
>> universal.  The only thing that can be counted on is the module name
>> and the XPath absolute path expression of each object.
>
> Having a way of re-mapping (or aliasing) an ID to a locally-understood/ne=
gotiated ID is really important in some networks where the radio resources =
are extremely limited. If you are able to use IDs 1-23 and you have URL has=
h compression, you save 8 bytes (using standard CBOR, no changes here whats=
oever). For IDs 24-63 you save 7 bytes, 63-255 - 6 bytes (without doing any=
 particular treatment).
>

Numbering objects in a schema and numbering radios in a network are differe=
nt.
There is no way to assign unique numbers to all objects.
This is not something IANA should have to do, and not something
vendors will do.  It was already too difficult to simply number the modules=
,
let alone all schema nodes in all modules.



> When using a general hash function, the probability of getting a hash val=
ue < 255 is 10E-7, and choosing an URI that statically gives you such ID si=
mply sounds wrong (and unrealistic).
>
> Two options are then possible here:
> 1) Leave this out of CoMI
> 2) Have a minor accommodation, and require no additional resources on the=
 devices
>


The 6TISCH argument for small clients is important.
If there is an alterate-ID mapping for every server, then the
client has a different number for every object (different on
every server).  This seems like a lot of additional memory
if there are 1000s of servers.

I don't agree that 1 byte object identifiers are needed,
The 30 bit hash seems small enough.


> Both require defining hash clash handling mechanism, so here the entire d=
iscussion on how to handle this is pertinent.
>
> For me, 2) can be implemented in two ways:
> 2.a) Explicit ID re-mapping (or aliasing) through a (external) file. Here=
, it would be nice to have a way to specify the URI of the file, e.g. on th=
e server or on a remote location. Something like the mod.uri .
> 2.b) Explicit ID re-mapping (or aliasing) in the YANG module (e.g. throug=
h the "id" option mentioned by Michel or maybe with an extension, e.g. comi=
:id)
>
> Note that if this is considered hash aliasing (we forget the re-mapping),=
 then the behavior can be very simple, e.g.:
> It is up to the implementer to define the hash aliases, if any. In case o=
f clash with a YANG hash value, the alias must be ignored. In case of clash=
 with another alias, both aliases are ignored.
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> CoMI can decide on a small concession for aliasing uses - say that YANG s=
tring hash values MUST be >=3D 64 (256?). The compiler can check that all h=
ashes fulfill this before publishing. This way, there is even NO need to ad=
d any statement about alias clashes. It would be up to the implementer to c=
hose the appropriate way of aliasing (if any). Aliases would be local in sc=
ope.
>
> What do you think about it?
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Best,
> Alexander
>
>


Andy

>
>>
>>
>>> About "In NETCONF, modules tend to use augment a lot"
>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I propose a=
 new definition to address this.
>>>
>>
>> What is it?
>> IMO you should post comments to the mailing list not markup
>> to a word document.  It is too hard to follow.
>>
>>
>>> Module Context: A module context is composed of all data nodes, notific=
ations and RPCs defined in a YANG module and included sub-modules or added =
to them using the augment YANG statement.
>>>
>>
>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are
>> not part of the augmented module.  They will be returned in
>> NETCONF and RESTCONF retrieval operations for an ancestor node
>> but they are not part of the augmented module.  Only objects
>> defined in the module namespace are part of the module.
>>
>>
>> Andy
>>
>>
>>
>>> Section 4.1.3.4 show an example of include, import and augment.
>>>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>
>>>
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 3 juin 2015 14:54
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>>>
>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette <Michel.Veillette@tri=
lliantinc.com> wrote:
>>>> Hi Andy
>>>>
>>>> Couple of questions about your proposed solution.
>>>>
>>>> =3D=3D=3D Question #1, New YANG statement
>>>>
>>>> Your solution works only if hash clashes within a module are resolved =
at design time. If not, the error message will return the following informa=
tion which is not sufficient to resolve which data node is which.
>>>>
>>>>   { "1234": [
>>>>          "module-A":"4567",
>>>>          "module-A":"6523"
>>>>      ]
>>>>   }
>>>>
>>>
>>>
>>> The original proposal had a 3-tuple { module-name, path-expr, new-hash =
} We discussed some optimizations in the 6TISCH call to reduce the size of =
the path-expr and still not require the client to store all the path string=
s, such as store a few bytes from the path strings like 6th and 11th bytes =
(Avoid the common ietf- prefix for many module names).
>>>
>>> This is not deterministic. Only the full path string is fool-proof.
>>> I would prefer if hash collisions in a single module were not allowed.
>>> They need to be resolved at design time.  If this is not possible, then=
 a standard rehash algorithm should be used so the collision is resolved in=
 a predictable way.  e.g., try appending "_", then try "__", etc.
>>> The result would be that hash collisions in a single module do not occu=
r in CoMI.
>>>
>>>
>>>> Is it possible/acceptable to request a new YANG statement to manually =
assign a ID to a data node?
>>>> Same question for a module ID?
>>>>
>>>> For example (see "id 16" and "id 25" bellow) :
>>>>
>>>>   module a {
>>>>      namespace a-ns;
>>>>      prefix a;
>>>>      id 16;
>>>>      revision 2015-01-01;
>>>>
>>>>      leaf leafA1 { type string; id 25 }
>>>>      container containerA {
>>>>         leaf leafA2 { type string}
>>>>      }
>>>>   }
>>>
>>>
>>> You could have an extension statement do anything you want:
>>>
>>>    comi:id  16;
>>>
>>> But these numbers do not exist any any modules and so they cannot be re=
lied on in CoMI.
>>>
>>>
>>>>
>>>> =3D=3D=3D Question #2, Introduction of an optional query parameter use=
d to
>>>> target a specific module
>>>>
>>>> For nodes / networks which can afford a slitely larger payload (IEEE 8=
02.15.4g for example) but want to avoid the processing and storage associat=
ed with the porposed error message, are you opposed to the support of an op=
tional CoAP query parameter use carry the module name or module ID ?
>>>>
>>>> For example:
>>>>
>>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>>
>>>> =3D=3D=3D Question #3, Use of the select query parameter instead of th=
e URI
>>>>
>>>> Are you oposed to the use of the select query parameter instead of the
>>>> URI to identify data node(s)
>>>>
>>>
>>> Not really.
>>>
>>> I don't know how mixed the modules will get in CoMI.
>>> In NETCONF, modules tend to use augment a lot, so the nodes from 'modul=
e-A' may be nested nodes.
>>> Retrieving just the augmenting nodes and ignoring the augmented nodes w=
ould likely be operationally useless.
>>> e.g., when augmenting a list, the key leafs are needed to identify the =
instance.
>>>
>>> I would like to keep CoMI extremely simple.
>>> More bells and whistles means increased
>>> memory and CPU requirements. I am glad CORE and 6TISCH WGs are so conce=
rned about constrained resources.
>>> Only the most important bells and whistles will get standardized.
>>>
>>>
>>>> For example:
>>>>
>>>> GET example.com/mg?select=3DY8d7s
>>>> GET example.com/mg?select=3DY8d7s,NKHaA
>>>> GET example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>>
>>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>>
>>>> Are you oposed to the compression of the base64 representation as prop=
sed by Alexander.
>>>>
>>>
>>> No.  Optimizations that reduce the encoding size are important.
>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>>
>>>> For example:
>>>>
>>>> GET example.com/mg?select=3D7s
>>>> Instead of
>>>> GET example.com/mg?select=3D AAA7s
>>>>
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>
>>>>
>>>
>>> Andy
>>>
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 13:09
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>>>>
>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette <Michel.Veillette@tri=
lliantinc.com> wrote:
>>>>> Hi Alexander
>>>>>
>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented to=
 the hash clashes problem. Two based on a rehash table and two based on a n=
ew CoAP query parameter carrying the module name or registered module ID. T=
his query parameter is used to select unambiguously the targeted data node(=
s) assuming that any hash collision within a module have been resolved at d=
esign time. You can find this presentation in attachment.
>>>>>
>>>>> Both of your proposals make sense to me but I still hope that the cla=
sh file can be avoided or be optional.
>>>>>
>>>>
>>>>
>>>> I agree we should not need the client to retrieve the rehash info befo=
re using a server.
>>>> The CoMI authors have discussed a solution which I will try to write u=
p today where a special "hash-clash" error is returned by CoMI if a rehash =
is needed.
>>>>
>>>>   1) client requests module-A object with hash  "1234";
>>>>        there is no extended-name/local-name,
>>>>        just the YANG hash, used in any request
>>>>
>>>>   2) if '1234' has a collision in this server then a special error cod=
e is returned;
>>>>       The return payload has the rehash info [old-hash, { module-name,=
 new-hash }+]
>>>>           { "1234": [
>>>>                  "module-A":"4567",
>>>>                  "module-X":"6523"
>>>>              ]
>>>>           }
>>>>
>>>>    3) the client gets the error info, and knows which module its "1234=
" is from.
>>>>         It finds the correct module name in the array and replaces its=
 old-hash
>>>>         with the new-hash.
>>>>
>>>>   4) client re-sends the request, using hash "4567" instead of "1234"
>>>>
>>>> The rehash table goes away, and only this error info is used instead.
>>>>
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>>>
>>>>
>>>>
>>>> Andy
>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>>>> Pelov
>>>>> Sent: 3 juin 2015 11:01
>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>>>>
>>>>> Hello everyone,
>>>>>
>>>>> I would like to discuss with you to ideas/proposals in this mail, nam=
ely:
>>>>> 1) Caching the yang clash file on a remote server
>>>>> 2) Compressing the URL representation of YANG hashes
>>>>>
>>>>> 1) Caching the yang clash file on a remote server Even though hash co=
llisions should happen rarely (if ever), there may be cases when it could b=
e inevitable, and as such, it may be interesting to cache the clash_file so=
mewhere on a remote server to avoid sending it over the constrained wireles=
s interface. It could be used for other cases, where some frequently used r=
esources are re-hashed for performance purposes. Maybe it would be interest=
ing to allow the server to specify a remote location for the clash file? Fo=
r static collisions or optimizations it could be that the YANG definition i=
ncludes alternative hash values, which could be used in addition to the nor=
mal ones.
>>>>>
>>>>> 2) Compressing the URL representation of YANG hashes Another point
>>>>> (which is unrelated), is to elide the leading "A"s from the base64
>>>>> representation of the hash in the URL (which corresponds to eliding
>>>>> the leading zeroes from the hash). As specified in section 5.4. a
>>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the leading
>>>>> A=E2=80=99s are elided it will be simply _
>>>>>
>>>>> This could pose problems only if in the future the size of the hash v=
alues is increased from 30 bits to some other (higher) value.
>>>>>
>>>>> This, however, could be very useful when having to frequently access
>>>>> the same resource. In such case, the server/network operator may
>>>>> decide to re-hash the URI to a shorter version, e.g. the
>>>>> /sys:system-state/sys:clock/sys:current-datetime could be remapped
>>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>>
>>>>> Best,
>>>>> Alex
>>>>>
>>>>> PS.
>>>>> A typo (?), which may be already corrected, in the example of mod.uri=
 on Page 26: the two responses have different scheme "mod.uri" and "moduri"
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>


From nobody Thu Jun  4 07:15:20 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 504F61B3513; Thu,  4 Jun 2015 07:15:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.904
X-Spam-Level: **
X-Spam-Status: No, score=2.904 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PV2EOx7BcN9Z; Thu,  4 Jun 2015 07:15:10 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id AC8CE1B3511; Thu,  4 Jun 2015 07:15:09 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 131153029E; Thu,  4 Jun 2015 16:15:09 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id pjv3hmkcwUAo; Thu,  4 Jun 2015 16:15:06 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 7A12B302A8; Thu,  4 Jun 2015 16:15:06 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id yGU6JYrucT3C; Thu,  4 Jun 2015 16:15:06 +0200 (CEST)
Received: from dhcp-salsa-i-129-152.rennes.enst-bretagne.fr (dhcp-salsa-i-129-152.rennes.enst-bretagne.fr [10.35.129.152]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id E28CC3029E; Thu,  4 Jun 2015 16:15:05 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_DE4BD674-6BD6-4D4D-8688-444942FB231C"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <9b002d62d48ed4f6c1436b160a9a9854@xs4all.nl>
Date: Thu, 4 Jun 2015 16:15:05 +0200
Message-Id: <B383953B-0A76-4090-A96A-3201C2A00566@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <0996C9B6-A0CD-4C59-9089-B4FC388B7B3A@telecom-bretagne.eu> <9b002d62d48ed4f6c1436b160a9a9854@xs4all.nl>
To: consultancy@vanderstok.org
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/yjcYrmU7XFNAPtydsHJe1asslY8>
Cc: 6tisch@ietf.org, core@ietf.org
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 14:15:17 -0000

--Apple-Mail=_DE4BD674-6BD6-4D4D-8688-444942FB231C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Peter,

> Le 4 juin 2015 =C3=A0 11:28, peter van der Stok <stokcons@xs4all.nl> a =
=C3=A9crit :
>=20
> Hi Alexander,
>=20
> Your suggestion to standardize a handle to a mechanism to do hash =
aliasing but keep the algorithms out of CoMI seems reasonable to me in a =
first approach.
> It is then a matter of interest whether the mechanisms of hash =
aliasing are standardized within CoRE wg or even within CoMI I-D.
>=20
> However, I think the idea is interesting and like to investigate it =
further; and understand what extra standardization is needed.

If the YANG hash compression + reservation of < 256 hash values is =
accepted to CoMI, which I believe can be achieved with minimal =
modification and at no cost in terms of implementation or resource =
requirements, there are two main approaches to implementing the hash =
aliases:
1) Independent of the YANG schema
  1.a) =46rom a URI, which can be local (e.g /mg/yang.hash-alias or =
including the syntax in the future /mg/yang.hash with special =
provisioning of having aliased) or remote
  1.b) Reserve one of the alias values for the alias mapping resource =
(e.g. /mg/0)

2) Dependent on the YANG schema
  2.a) By using a leaf in the schema (e.g. alternate_hash =3D 1, or =
comi:alternate_hash =3D 3)
  2.b) By using an URI specified in the schema (not sure if this would =
be very useful though)

I would say that it should be possible to have the aliasing independent =
on the schema, as a given operator may decide on a different operation =
modes for the same YANG schema.=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D
1.a)
If there is a dedicated file (e.g. /mg/yang.hash-alias), it could be =
updated by the client if necessary. It would be nice to have a way to =
make sure that the server and the client are using the same aliases, =
which can be implemented with the help of a hash over the file + a token =
which is set upon the creation of the file (by the client or upon =
deploying the object). This way, a client can query the server if needed =
(e.g. GET /mg/yang.hash-alias?keys=3Dhash,token ).

So, to sum up, the simplest solution would be to have a new resource =
/mg/yang.hash-alias which is empty. A client may create the resource =
with a POST operation, where the format is (YANG hash : alias).

Afterwards, the client can use the aliases to issue requests (example at =
the end). This is the bare minimum, but when you have a device (client) =
which manages many servers it is sufficient.=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D
1.b)=20
In CoMI reserve all IDs < 256. In a different document specify, that IF =
you want to use hash aliasing, then if works as following:

The value =C2=AB 0 =C2=BB can be used for information on the aliases:
1) GET /mg/0 -> Resource not found -> aliases are unsupported feature, =
don=E2=80=99t even try (*standard behavior* - nothing to change to a =
normal CoMI object, as the resource ID 0 is reserved and is inexistent =
in the YANG hash table).
2) GET /mg/0 -> {} -> aliases are supported, but no alias configuration =
in place (alternatively, this could return some other info, but the =
source_uri key is empty
3) GET /mg/0 ->
  3.1) {"source_uri" : "/mg/yang.hash-alias", "hash": 0x127804bc}
  3.2) {"source_uri" : "example.com/mg/yang.hash-alias", "hash": =
0x127804bc}

This can actually be achieved in the following way:

In CoMI:
  1) add YANG hash compression to section 5.4. (minor change)
  2) add a statement that hash values 0-255 inclusive are reserved
  3) eventually, mention as a guidance that these could be used for hash =
aliasing

Afterwards, either add a new document describing hash aliasing, or add a =
small section, which defines:
1) Data ID =3D 0 is reserved for the alias file.=20
2) IDs 1-255 inclusive are mapped to YANG hashes according to the alias =
0

As an alternative, the /mg/0 could directly be the alias file, but I =
like this to a smaller extent, as a GET /mg/0 will fetch the whole =
mapping, and not just the =E2=80=98yes, aliases are in place, and =
we=E2=80=99re talking the same thing=E2=80=99.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D


I=E2=80=99d go with 1.b) but have no strong objections to the rest.

Best,
Alexander



REQ: POST /mg/0 <http://example.com/mg/0>    (<- this one actually =
creates a file on the server, e.g. /mg/yang.hash-aliases)
     (Content-Format: application/cbor)

{
   0x387804eb: 1,
   0x15370408: 2
}

RES: 2.01 Created=20


REQ: GET example.com/mg/C <http://example.com/mg/C>
       (Content-Format: application/cbor)
=20
RES: 2.05 Content (Content-Format: application/cbor)
{
         0x2 : "2014-10-26T12:16:51Z",
}



>=20
> Peter
>=20
> Alexander Pelov schreef op 2015-06-04 09:02:
>> Hi Andy,
>>> Le 3 juin 2015 =C3=A0 23:37, Andy Bierman <andy@yumaworks.com> a =
=C3=A9crit :
>>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette
>>> <Michel.Veillette@trilliantinc.com> wrote:
>>>> About "I would prefer if hash collisions in a single module were =
not allowed."
>>>> Agreed but how this is implemented.
>>> By checking the YANG hashes before it is published,
>>> similar to checking the YANG syntax with a YANG compiler.
>>>> About "But these numbers do not exist in any modules and so they =
cannot be relied on in CoMI.
>>>> I understand but I assume that a module can be re-published with =
the added statement when require. If a CoMI implementer try to implement =
a module containing a clash, he can look for a version of this module =
containing the special YANG statement. The likelihood of such clash is =
extremely low and such fallback solution won=E2=80=99t be required =
often. However, the RFC will specify how to resolve such situation if =
this ever happen. This statement can also be used to address the need =
for data node identifier compactness as mentioned by Alexander in its =
original email.
>>> I think the ad-hoc id assignments are pointless because they are not
>>> universal.  The only thing that can be counted on is the module name
>>> and the XPath absolute path expression of each object.
>> Having a way of re-mapping (or aliasing) an ID to a
>> locally-understood/negotiated ID is really important in some networks
>> where the radio resources are extremely limited. If you are able to
>> use IDs 1-23 and you have URL hash compression, you save 8 bytes
>> (using standard CBOR, no changes here whatsoever). For IDs 24-63 you
>> save 7 bytes, 63-255 - 6 bytes (without doing any particular
>> treatment).
>> When using a general hash function, the probability of getting a hash
>> value < 255 is 10E-7, and choosing an URI that statically gives you
>> such ID simply sounds wrong (and unrealistic).
>> Two options are then possible here:
>> 1) Leave this out of CoMI
>> 2) Have a minor accommodation, and require no additional resources on
>> the devices
>> Both require defining hash clash handling mechanism, so here the
>> entire discussion on how to handle this is pertinent.
>> For me, 2) can be implemented in two ways:
>> 2.a) Explicit ID re-mapping (or aliasing) through a (external) file.
>> Here, it would be nice to have a way to specify the URI of the file,
>> e.g. on the server or on a remote location. Something like the =
mod.uri
>> .
>> 2.b) Explicit ID re-mapping (or aliasing) in the YANG module (e.g.
>> through the "id" option mentioned by Michel or maybe with an
>> extension, e.g. comi:id)
>> Note that if this is considered hash aliasing (we forget the
>> re-mapping), then the behavior can be very simple, e.g.:
>> It is up to the implementer to define the hash aliases, if any. In
>> case of clash with a YANG hash value, the alias must be ignored. In
>> case of clash with another alias, both aliases are ignored.
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> CoMI can decide on a small concession for aliasing uses - say that
>> YANG string hash values MUST be >=3D 64 (256?). The compiler can =
check
>> that all hashes fulfill this before publishing. This way, there is
>> even NO need to add any statement about alias clashes. It would be up
>> to the implementer to chose the appropriate way of aliasing (if any).
>> Aliases would be local in scope.
>> What do you think about it?
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> Best,
>> Alexander
>>>> About "In NETCONF, modules tend to use augment a lot"
>>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I =
propose a new definition to address this.
>>> What is it?
>>> IMO you should post comments to the mailing list not markup
>>> to a word document.  It is too hard to follow.
>>>> Module Context: A module context is composed of all data nodes, =
notifications and RPCs defined in a YANG module and included sub-modules =
or added to them using the augment YANG statement.
>>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are
>>> not part of the augmented module.  They will be returned in
>>> NETCONF and RESTCONF retrieval operations for an ancestor node
>>> but they are not part of the augmented module.  Only objects
>>> defined in the module namespace are part of the module.
>>> Andy
>>>> Section 4.1.3.4 show an example of include, import and augment.
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 14:54
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in =
URL
>>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>> Hi Andy
>>>>> Couple of questions about your proposed solution.
>>>>> =3D=3D=3D Question #1, New YANG statement
>>>>> Your solution works only if hash clashes within a module are =
resolved at design time. If not, the error message will return the =
following information which is not sufficient to resolve which data node =
is which.
>>>>>  { "1234": [
>>>>>         "module-A":"4567",
>>>>>         "module-A":"6523"
>>>>>     ]
>>>>>  }
>>>> The original proposal had a 3-tuple { module-name, path-expr, =
new-hash } We discussed some optimizations in the 6TISCH call to reduce =
the size of the path-expr and still not require the client to store all =
the path strings, such as store a few bytes from the path strings like =
6th and 11th bytes (Avoid the common ietf- prefix for many module =
names).
>>>> This is not deterministic. Only the full path string is fool-proof.
>>>> I would prefer if hash collisions in a single module were not =
allowed.
>>>> They need to be resolved at design time.  If this is not possible, =
then a standard rehash algorithm should be used so the collision is =
resolved in a predictable way.  e.g., try appending "_", then try "__", =
etc.
>>>> The result would be that hash collisions in a single module do not =
occur in CoMI.
>>>>> Is it possible/acceptable to request a new YANG statement to =
manually assign a ID to a data node?
>>>>> Same question for a module ID?
>>>>> For example (see "id 16" and "id 25" bellow) :
>>>>>  module a {
>>>>>     namespace a-ns;
>>>>>     prefix a;
>>>>>     id 16;
>>>>>     revision 2015-01-01;
>>>>>     leaf leafA1 { type string; id 25 }
>>>>>     container containerA {
>>>>>        leaf leafA2 { type string}
>>>>>     }
>>>>>  }
>>>> You could have an extension statement do anything you want:
>>>>   comi:id  16;
>>>> But these numbers do not exist any any modules and so they cannot =
be relied on in CoMI.
>>>>> =3D=3D=3D Question #2, Introduction of an optional query parameter =
used to
>>>>> target a specific module
>>>>> For nodes / networks which can afford a slitely larger payload =
(IEEE 802.15.4g for example) but want to avoid the processing and =
storage associated with the porposed error message, are you opposed to =
the support of an optional CoAP query parameter use carry the module =
name or module ID ?
>>>>> For example:
>>>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>>> =3D=3D=3D Question #3, Use of the select query parameter instead =
of the URI
>>>>> Are you oposed to the use of the select query parameter instead of =
the
>>>>> URI to identify data node(s)
>>>> Not really.
>>>> I don't know how mixed the modules will get in CoMI.
>>>> In NETCONF, modules tend to use augment a lot, so the nodes from =
'module-A' may be nested nodes.
>>>> Retrieving just the augmenting nodes and ignoring the augmented =
nodes would likely be operationally useless.
>>>> e.g., when augmenting a list, the key leafs are needed to identify =
the instance.
>>>> I would like to keep CoMI extremely simple.
>>>> More bells and whistles means increased
>>>> memory and CPU requirements. I am glad CORE and 6TISCH WGs are so =
concerned about constrained resources.
>>>> Only the most important bells and whistles will get standardized.
>>>>> For example:
>>>>> GET example.com/mg?select=3DY8d7s
>>>>> GET example.com/mg?select=3DY8d7s,NKHaA
>>>>> GET example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>>> Are you oposed to the compression of the base64 representation as =
propsed by Alexander.
>>>> No.  Optimizations that reduce the encoding size are important.
>>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>>>> For example:
>>>>> GET example.com/mg?select=3D7s
>>>>> Instead of
>>>>> GET example.com/mg?select=3D AAA7s
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>> Andy
>>>>> -----Original Message-----
>>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>>> Sent: 3 juin 2015 13:09
>>>>> To: Michel Veillette
>>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in =
URL
>>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>>> Hi Alexander
>>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been =
presented to the hash clashes problem. Two based on a rehash table and =
two based on a new CoAP query parameter carrying the module name or =
registered module ID. This query parameter is used to select =
unambiguously the targeted data node(s) assuming that any hash collision =
within a module have been resolved at design time. You can find this =
presentation in attachment.
>>>>>> Both of your proposals make sense to me but I still hope that the =
clash file can be avoided or be optional.
>>>>> I agree we should not need the client to retrieve the rehash info =
before using a server.
>>>>> The CoMI authors have discussed a solution which I will try to =
write up today where a special "hash-clash" error is returned by CoMI if =
a rehash is needed.
>>>>>  1) client requests module-A object with hash  "1234";
>>>>>       there is no extended-name/local-name,
>>>>>       just the YANG hash, used in any request
>>>>>  2) if '1234' has a collision in this server then a special error =
code is returned;
>>>>>      The return payload has the rehash info [old-hash, { =
module-name, new-hash }+]
>>>>>          { "1234": [
>>>>>                 "module-A":"4567",
>>>>>                 "module-X":"6523"
>>>>>             ]
>>>>>          }
>>>>>   3) the client gets the error info, and knows which module its =
"1234" is from.
>>>>>        It finds the correct module name in the array and replaces =
its old-hash
>>>>>        with the new-hash.
>>>>>  4) client re-sends the request, using hash "4567" instead of =
"1234"
>>>>> The rehash table goes away, and only this error info is used =
instead.
>>>>>> Michel Veillette
>>>>>> System Architecture Director
>>>>>> Trilliant Inc.
>>>>>> Tel: 450-375-0556 ext. 237
>>>>>> michel.veillette@trilliantinc.com
>>>>>> www.trilliantinc.com
>>>>> Andy
>>>>>> -----Original Message-----
>>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>>>>> Pelov
>>>>>> Sent: 3 juin 2015 11:01
>>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>>> Subject: [core] CoMI remote server clash file and YANG hash in =
URL
>>>>>> Hello everyone,
>>>>>> I would like to discuss with you to ideas/proposals in this mail, =
namely:
>>>>>> 1) Caching the yang clash file on a remote server
>>>>>> 2) Compressing the URL representation of YANG hashes
>>>>>> 1) Caching the yang clash file on a remote server Even though =
hash collisions should happen rarely (if ever), there may be cases when =
it could be inevitable, and as such, it may be interesting to cache the =
clash_file somewhere on a remote server to avoid sending it over the =
constrained wireless interface. It could be used for other cases, where =
some frequently used resources are re-hashed for performance purposes. =
Maybe it would be interesting to allow the server to specify a remote =
location for the clash file? For static collisions or optimizations it =
could be that the YANG definition includes alternative hash values, =
which could be used in addition to the normal ones.
>>>>>> 2) Compressing the URL representation of YANG hashes Another =
point
>>>>>> (which is unrelated), is to elide the leading "A"s from the =
base64
>>>>>> representation of the hash in the URL (which corresponds to =
eliding
>>>>>> the leading zeroes from the hash). As specified in section 5.4. a
>>>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the =
leading
>>>>>> A=E2=80=99s are elided it will be simply _
>>>>>> This could pose problems only if in the future the size of the =
hash values is increased from 30 bits to some other (higher) value.
>>>>>> This, however, could be very useful when having to frequently =
access
>>>>>> the same resource. In such case, the server/network operator may
>>>>>> decide to re-hash the URI to a shorter version, e.g. the
>>>>>> /sys:system-state/sys:clock/sys:current-datetime could be =
remapped
>>>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>>> Best,
>>>>>> Alex
>>>>>> PS.
>>>>>> A typo (?), which may be already corrected, in the example of =
mod.uri on Page 26: the two responses have different scheme "mod.uri" =
and "moduri"
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core


--Apple-Mail=_DE4BD674-6BD6-4D4D-8688-444942FB231C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Peter,</div><div class=3D""><br =
class=3D""></div><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">Le 4 juin 2015 =C3=A0 11:28, peter van der Stok &lt;<a =
href=3D"mailto:stokcons@xs4all.nl" class=3D"">stokcons@xs4all.nl</a>&gt; =
a =C3=A9crit :</div><br class=3D"Apple-interchange-newline"><div =
class=3D"">Hi Alexander,<br class=3D""><br class=3D"">Your suggestion to =
standardize a handle to a mechanism to do hash aliasing but keep the =
algorithms out of CoMI seems reasonable to me in a first approach.<br =
class=3D"">It is then a matter of interest whether the mechanisms of =
hash aliasing are standardized within CoRE wg or even within CoMI =
I-D.<br class=3D""><br class=3D"">However, I think the idea is =
interesting and like to investigate it further; and understand what =
extra standardization is needed.<br class=3D""></div></blockquote><div><br=
 class=3D""></div><div>If the YANG hash compression + reservation of =
&lt; 256 hash values is accepted to CoMI, which I believe can be =
achieved with minimal modification and at no cost in terms of =
implementation or resource requirements, there are two main approaches =
to implementing the hash aliases:</div><div>1) Independent of the YANG =
schema</div><div>&nbsp; 1.a) =46rom a URI, which can be local (e.g =
/mg/yang.hash-alias or including the syntax in the future /mg/yang.hash =
with special provisioning of having aliased) or remote</div><div>&nbsp; =
1.b) Reserve one of the alias values for the alias mapping resource =
(e.g. /mg/0)</div><div><br class=3D""></div><div>2) Dependent on the =
YANG schema</div><div>&nbsp; 2.a) By using a leaf in the schema (e.g. =
alternate_hash =3D 1, or comi:alternate_hash =3D 3)</div><div>&nbsp; =
2.b) By using an URI specified in the schema (not sure if this would be =
very useful though)</div><div><br class=3D""></div><div>I would say that =
it should be possible to have the aliasing independent on the schema, as =
a given operator may decide on a different operation modes for the same =
YANG schema.&nbsp;</div><div><br =
class=3D""></div><div>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D</div><div>1.a)</div><div>If there is a =
dedicated file (e.g. /mg/yang.hash-alias), it could be updated by the =
client if necessary. It would be nice to have a way to make sure that =
the server and the client are using the same aliases, which can be =
implemented with the help of a hash over the file + a token which is set =
upon the creation of the file (by the client or upon deploying the =
object). This way, a client can query the server if needed (e.g. GET =
/mg/yang.hash-alias?keys=3Dhash,token ).</div><div><br =
class=3D""></div><div>So, to sum up, the simplest solution would be to =
have a new resource /mg/yang.hash-alias which is empty. A client may =
create the resource with a POST operation, where the format is (YANG =
hash : alias).</div><div><br class=3D""></div><div>Afterwards, the =
client can use the aliases to issue requests (example at the end). This =
is the bare minimum, but when you have a device (client) which manages =
many servers it is sufficient.&nbsp;</div><div><br =
class=3D""></div><div>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D</div><div>1.b)&nbsp;</div><div>In CoMI reserve =
all IDs &lt; 256. In a different document specify, that IF you want to =
use hash aliasing, then if works as following:</div><div><br =
class=3D""></div><div>The value =C2=AB&nbsp;0&nbsp;=C2=BB can be used =
for information on the aliases:</div><div>1) GET /mg/0 -&gt; Resource =
not found -&gt; aliases are unsupported feature, don=E2=80=99t even try =
(*standard behavior* - nothing to change to a normal CoMI object, as the =
resource ID 0 is reserved and is inexistent in the YANG hash =
table).</div><div>2) GET /mg/0 -&gt; {} -&gt; aliases are supported, but =
no alias configuration in place (alternatively, this could return some =
other info, but the source_uri key is empty</div><div>3) GET /mg/0 =
-&gt;</div><div>&nbsp; 3.1) {"source_uri" : "/mg/yang.hash-alias", =
"hash":&nbsp;0x127804bc}</div><div>&nbsp; 3.2) {"source_uri" : "<a =
href=3D"http://example.com/mg/yang.hash-alias" =
class=3D"">example.com/mg/yang.hash-alias</a>", =
"hash":&nbsp;0x127804bc}</div><div><br class=3D""></div><div>This can =
actually be achieved in the following way:</div><div><br =
class=3D""></div><div>In CoMI:</div><div>&nbsp; 1) add YANG hash =
compression to section 5.4. (minor change)</div><div>&nbsp; 2) add a =
statement that hash values 0-255 inclusive are reserved</div><div>&nbsp; =
3) eventually, mention as a guidance that these could be used for hash =
aliasing</div><div><br class=3D""></div><div>Afterwards, either add a =
new document describing hash aliasing, or add a small section, which =
defines:</div><div>1) Data ID =3D 0 is reserved for the alias =
file.&nbsp;</div><div>2) IDs 1-255 inclusive are mapped to YANG hashes =
according to the alias 0</div><div><br class=3D""></div><div>As an =
alternative, the /mg/0 could directly be the alias file, but I like this =
to a smaller extent, as a GET /mg/0 will fetch the whole mapping, and =
not just the =E2=80=98yes, aliases are in place, and we=E2=80=99re =
talking the same thing=E2=80=99.</div><div><br =
class=3D""></div><div><div>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div></div><div>I=E2=80=99=
d go with 1.b) but have no strong objections to the rest.</div><div><br =
class=3D""></div><div>Best,</div><div>Alexander</div><div><br =
class=3D""></div><div><br class=3D""></div><div><br =
class=3D""></div><div><div>REQ: POST&nbsp;<a =
href=3D"http://example.com/mg/0" class=3D"">/mg/0</a>&nbsp; &nbsp; =
(&lt;- this one actually creates a file on the server, e.g. =
/mg/yang.hash-aliases)</div><div>&nbsp; &nbsp; &nbsp;(Content-Format: =
application/cbor)</div><div><br class=3D""></div><div>{</div><div>&nbsp; =
&nbsp;0x387804eb: 1,</div><div>&nbsp; &nbsp;0x15370408: =
2</div><div>}</div><div class=3D""><br class=3D""></div><div =
class=3D"">RES: 2.01 Created&nbsp;</div><div class=3D""><br =
class=3D""></div></div><div><br class=3D"">REQ: GET&nbsp;<a =
href=3D"http://example.com/mg/C" =
class=3D"">example.com/mg/C</a></div><div>&nbsp; &nbsp; &nbsp; =
&nbsp;(Content-Format: application/cbor)<br class=3D"">&nbsp;<br =
class=3D"">RES: 2.05 Content (Content-Format: application/cbor)<br =
class=3D"">{<br class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0x2 : =
"2014-10-26T12:16:51Z",<br class=3D"">}<br class=3D""><br =
class=3D""></div><div><br class=3D""></div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><br class=3D"">Peter<br =
class=3D""><br class=3D"">Alexander Pelov schreef op 2015-06-04 =
09:02:<br class=3D""><blockquote type=3D"cite" class=3D"">Hi Andy,<br =
class=3D""><blockquote type=3D"cite" class=3D"">Le 3 juin 2015 =C3=A0 =
23:37, Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com" =
class=3D"">andy@yumaworks.com</a>&gt; a =C3=A9crit :<br class=3D"">On =
Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette<br class=3D"">&lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; wrote:<br =
class=3D""><blockquote type=3D"cite" class=3D"">About "I would prefer if =
hash collisions in a single module were not allowed."<br class=3D"">Agreed=
 but how this is implemented.<br class=3D""></blockquote>By checking the =
YANG hashes before it is published,<br class=3D"">similar to checking =
the YANG syntax with a YANG compiler.<br =
class=3D""></blockquote><blockquote type=3D"cite" class=3D""><blockquote =
type=3D"cite" class=3D"">About "But these numbers do not exist in any =
modules and so they cannot be relied on in CoMI.<br class=3D"">I =
understand but I assume that a module can be re-published with the added =
statement when require. If a CoMI implementer try to implement a module =
containing a clash, he can look for a version of this module containing =
the special YANG statement. The likelihood of such clash is extremely =
low and such fallback solution won=E2=80=99t be required often. However, =
the RFC will specify how to resolve such situation if this ever happen. =
This statement can also be used to address the need for data node =
identifier compactness as mentioned by Alexander in its original =
email.<br class=3D""></blockquote>I think the ad-hoc id assignments are =
pointless because they are not<br class=3D"">universal. &nbsp;The only =
thing that can be counted on is the module name<br class=3D"">and the =
XPath absolute path expression of each object.<br =
class=3D""></blockquote>Having a way of re-mapping (or aliasing) an ID =
to a<br class=3D"">locally-understood/negotiated ID is really important =
in some networks<br class=3D"">where the radio resources are extremely =
limited. If you are able to<br class=3D"">use IDs 1-23 and you have URL =
hash compression, you save 8 bytes<br class=3D"">(using standard CBOR, =
no changes here whatsoever). For IDs 24-63 you<br class=3D"">save 7 =
bytes, 63-255 - 6 bytes (without doing any particular<br =
class=3D"">treatment).<br class=3D"">When using a general hash function, =
the probability of getting a hash<br class=3D"">value &lt; 255 is 10E-7, =
and choosing an URI that statically gives you<br class=3D"">such ID =
simply sounds wrong (and unrealistic).<br class=3D"">Two options are =
then possible here:<br class=3D"">1) Leave this out of CoMI<br =
class=3D"">2) Have a minor accommodation, and require no additional =
resources on<br class=3D"">the devices<br class=3D"">Both require =
defining hash clash handling mechanism, so here the<br class=3D"">entire =
discussion on how to handle this is pertinent.<br class=3D"">For me, 2) =
can be implemented in two ways:<br class=3D"">2.a) Explicit ID =
re-mapping (or aliasing) through a (external) file.<br class=3D"">Here, =
it would be nice to have a way to specify the URI of the file,<br =
class=3D"">e.g. on the server or on a remote location. Something like =
the mod.uri<br class=3D"">.<br class=3D"">2.b) Explicit ID re-mapping =
(or aliasing) in the YANG module (e.g.<br class=3D"">through the "id" =
option mentioned by Michel or maybe with an<br class=3D"">extension, =
e.g. comi:id)<br class=3D"">Note that if this is considered hash =
aliasing (we forget the<br class=3D"">re-mapping), then the behavior can =
be very simple, e.g.:<br class=3D"">It is up to the implementer to =
define the hash aliases, if any. In<br class=3D"">case of clash with a =
YANG hash value, the alias must be ignored. In<br class=3D"">case of =
clash with another alias, both aliases are ignored.<br =
class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D<br class=3D"">CoMI can decide on a small concession for aliasing =
uses - say that<br class=3D"">YANG string hash values MUST be &gt;=3D 64 =
(256?). The compiler can check<br class=3D"">that all hashes fulfill =
this before publishing. This way, there is<br class=3D"">even NO need to =
add any statement about alias clashes. It would be up<br class=3D"">to =
the implementer to chose the appropriate way of aliasing (if any).<br =
class=3D"">Aliases would be local in scope.<br class=3D"">What do you =
think about it?<br class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D<br class=3D"">Best,<br class=3D"">Alexander<br =
class=3D""><blockquote type=3D"cite" class=3D""><blockquote type=3D"cite" =
class=3D"">About "In NETCONF, modules tend to use augment a lot"<br =
class=3D"">In my document " draft-vanderstok-core-comi-06 - MV.docx ", I =
propose a new definition to address this.<br class=3D""></blockquote>What =
is it?<br class=3D"">IMO you should post comments to the mailing list =
not markup<br class=3D"">to a word document. &nbsp;It is too hard to =
follow.<br class=3D""><blockquote type=3D"cite" class=3D"">Module =
Context: A module context is composed of all data nodes, notifications =
and RPCs defined in a YANG module and included sub-modules or added to =
them using the augment YANG statement.<br class=3D""></blockquote>Almost =
-- this is defined in RFC 6020 -- the augmenting nodes are<br =
class=3D"">not part of the augmented module. &nbsp;They will be returned =
in<br class=3D"">NETCONF and RESTCONF retrieval operations for an =
ancestor node<br class=3D"">but they are not part of the augmented =
module. &nbsp;Only objects<br class=3D"">defined in the module namespace =
are part of the module.<br class=3D"">Andy<br class=3D""><blockquote =
type=3D"cite" class=3D"">Section 4.1.3.4 show an example of include, =
import and augment.<br class=3D"">Michel Veillette<br class=3D"">System =
Architecture Director<br class=3D"">Trilliant Inc.<br class=3D"">Tel: =
450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" =
class=3D"">michel.veillette@trilliantinc.com</a><br =
class=3D"">www.trilliantinc.com<br class=3D"">-----Original =
Message-----<br class=3D"">From: Andy Bierman =
[mailto:andy@yumaworks.com]<br class=3D"">Sent: 3 juin 2015 14:54<br =
class=3D"">To: Michel Veillette<br class=3D"">Cc: Alexander Pelov; =
6tisch@ietf.org; core@ietf.org<br class=3D"">Subject: Re: [core] CoMI =
remote server clash file and YANG hash in URL<br class=3D"">On Wed, Jun =
3, 2015 at 11:16 AM, Michel Veillette =
&lt;Michel.Veillette@trilliantinc.com&gt; wrote:<br class=3D""><blockquote=
 type=3D"cite" class=3D"">Hi Andy<br class=3D"">Couple of questions =
about your proposed solution.<br class=3D"">=3D=3D=3D Question #1, New =
YANG statement<br class=3D"">Your solution works only if hash clashes =
within a module are resolved at design time. If not, the error message =
will return the following information which is not sufficient to resolve =
which data node is which.<br class=3D""> &nbsp;{ "1234": [<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"module-A":"4567",<br =
class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"module-A":"6523"<br =
class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;]<br class=3D""> &nbsp;}<br =
class=3D""></blockquote>The original proposal had a 3-tuple { =
module-name, path-expr, new-hash } We discussed some optimizations in =
the 6TISCH call to reduce the size of the path-expr and still not =
require the client to store all the path strings, such as store a few =
bytes from the path strings like 6th and 11th bytes (Avoid the common =
ietf- prefix for many module names).<br class=3D"">This is not =
deterministic. Only the full path string is fool-proof.<br class=3D"">I =
would prefer if hash collisions in a single module were not allowed.<br =
class=3D"">They need to be resolved at design time. &nbsp;If this is not =
possible, then a standard rehash algorithm should be used so the =
collision is resolved in a predictable way. &nbsp;e.g., try appending =
"_", then try "__", etc.<br class=3D"">The result would be that hash =
collisions in a single module do not occur in CoMI.<br =
class=3D""><blockquote type=3D"cite" class=3D"">Is it =
possible/acceptable to request a new YANG statement to manually assign a =
ID to a data node?<br class=3D"">Same question for a module ID?<br =
class=3D"">For example (see "id 16" and "id 25" bellow) :<br class=3D""> =
&nbsp;module a {<br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;namespace =
a-ns;<br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;prefix a;<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;id 16;<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;revision 2015-01-01;<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;leaf leafA1 { type string; id 25 }<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;container containerA {<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf leafA2 { type string}<br =
class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;}<br class=3D""> &nbsp;}<br =
class=3D""></blockquote>You could have an extension statement do =
anything you want:<br class=3D""> &nbsp;&nbsp;comi:id &nbsp;16;<br =
class=3D"">But these numbers do not exist any any modules and so they =
cannot be relied on in CoMI.<br class=3D""><blockquote type=3D"cite" =
class=3D"">=3D=3D=3D Question #2, Introduction of an optional query =
parameter used to<br class=3D"">target a specific module<br class=3D"">For=
 nodes / networks which can afford a slitely larger payload (IEEE =
802.15.4g for example) but want to avoid the processing and storage =
associated with the porposed error message, are you opposed to the =
support of an optional CoAP query parameter use carry the module name or =
module ID ?<br class=3D"">For example:<br class=3D"">GET =
example.com/Y8d7s?select=3D ietf-6tisch-mac<br class=3D"">=3D=3D=3D =
Question #3, Use of the select query parameter instead of the URI<br =
class=3D"">Are you oposed to the use of the select query parameter =
instead of the<br class=3D"">URI to identify data node(s)<br =
class=3D""></blockquote>Not really.<br class=3D"">I don't know how mixed =
the modules will get in CoMI.<br class=3D"">In NETCONF, modules tend to =
use augment a lot, so the nodes from 'module-A' may be nested nodes.<br =
class=3D"">Retrieving just the augmenting nodes and ignoring the =
augmented nodes would likely be operationally useless.<br class=3D"">e.g.,=
 when augmenting a list, the key leafs are needed to identify the =
instance.<br class=3D"">I would like to keep CoMI extremely simple.<br =
class=3D"">More bells and whistles means increased<br class=3D"">memory =
and CPU requirements. I am glad CORE and 6TISCH WGs are so concerned =
about constrained resources.<br class=3D"">Only the most important bells =
and whistles will get standardized.<br class=3D""><blockquote =
type=3D"cite" class=3D"">For example:<br class=3D"">GET =
example.com/mg?select=3DY8d7s<br class=3D"">GET =
example.com/mg?select=3DY8d7s,NKHaA<br class=3D"">GET =
example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)<br class=3D"">=3D=3D=3D=
 Question #4, Compressing YANG hash base64 representation<br =
class=3D"">Are you oposed to the compression of the base64 =
representation as propsed by Alexander.<br class=3D""></blockquote>No. =
&nbsp;Optimizations that reduce the encoding size are important.<br =
class=3D"">I want to use standard CBOR. &nbsp;No special hacks just for =
CoMI.<br class=3D""><blockquote type=3D"cite" class=3D"">For example:<br =
class=3D"">GET example.com/mg?select=3D7s<br class=3D"">Instead of<br =
class=3D"">GET example.com/mg?select=3D AAA7s<br class=3D"">Michel =
Veillette<br class=3D"">System Architecture Director<br =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D"">michel.veillette@trilliantinc.com<br =
class=3D"">www.trilliantinc.com<br class=3D""></blockquote>Andy<br =
class=3D""><blockquote type=3D"cite" class=3D"">-----Original =
Message-----<br class=3D"">From: Andy Bierman =
[mailto:andy@yumaworks.com]<br class=3D"">Sent: 3 juin 2015 13:09<br =
class=3D"">To: Michel Veillette<br class=3D"">Cc: Alexander Pelov; =
6tisch@ietf.org; core@ietf.org<br class=3D"">Subject: Re: [core] CoMI =
remote server clash file and YANG hash in URL<br class=3D"">On Wed, Jun =
3, 2015 at 9:05 AM, Michel Veillette =
&lt;Michel.Veillette@trilliantinc.com&gt; wrote:<br class=3D""><blockquote=
 type=3D"cite" class=3D"">Hi Alexander<br class=3D"">At the last 6TiSCH =
bi-weekly call, 4 solutions have been presented to the hash clashes =
problem. Two based on a rehash table and two based on a new CoAP query =
parameter carrying the module name or registered module ID. This query =
parameter is used to select unambiguously the targeted data node(s) =
assuming that any hash collision within a module have been resolved at =
design time. You can find this presentation in attachment.<br =
class=3D"">Both of your proposals make sense to me but I still hope that =
the clash file can be avoided or be optional.<br class=3D""></blockquote>I=
 agree we should not need the client to retrieve the rehash info before =
using a server.<br class=3D"">The CoMI authors have discussed a solution =
which I will try to write up today where a special "hash-clash" error is =
returned by CoMI if a rehash is needed.<br class=3D""> &nbsp;1) client =
requests module-A object with hash &nbsp;"1234";<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;there is no =
extended-name/local-name,<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;just the YANG hash, used in any =
request<br class=3D""> &nbsp;2) if '1234' has a collision in this server =
then a special error code is returned;<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The return payload has the rehash info =
[old-hash, { module-name, new-hash }+]<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ "1234": [<br =
class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;"module-A":"4567",<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;"module-X":"6523"<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]<=
br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br class=3D""> =
&nbsp;&nbsp;3) the client gets the error info, and knows which module =
its "1234" is from.<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It finds the correct module =
name in the array and replaces its old-hash<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with the new-hash.<br =
class=3D""> &nbsp;4) client re-sends the request, using hash "4567" =
instead of "1234"<br class=3D"">The rehash table goes away, and only =
this error info is used instead.<br class=3D""><blockquote type=3D"cite" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director<br class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 =
ext. 237<br class=3D"">michel.veillette@trilliantinc.com<br =
class=3D"">www.trilliantinc.com<br class=3D""></blockquote>Andy<br =
class=3D""><blockquote type=3D"cite" class=3D"">-----Original =
Message-----<br class=3D"">From: core [mailto:core-bounces@ietf.org] On =
Behalf Of Alexander<br class=3D"">Pelov<br class=3D"">Sent: 3 juin 2015 =
11:01<br class=3D"">To: 6tisch@ietf.org; core@ietf.org<br =
class=3D"">Subject: [core] CoMI remote server clash file and YANG hash =
in URL<br class=3D"">Hello everyone,<br class=3D"">I would like to =
discuss with you to ideas/proposals in this mail, namely:<br class=3D"">1)=
 Caching the yang clash file on a remote server<br class=3D"">2) =
Compressing the URL representation of YANG hashes<br class=3D"">1) =
Caching the yang clash file on a remote server Even though hash =
collisions should happen rarely (if ever), there may be cases when it =
could be inevitable, and as such, it may be interesting to cache the =
clash_file somewhere on a remote server to avoid sending it over the =
constrained wireless interface. It could be used for other cases, where =
some frequently used resources are re-hashed for performance purposes. =
Maybe it would be interesting to allow the server to specify a remote =
location for the clash file? For static collisions or optimizations it =
could be that the YANG definition includes alternative hash values, =
which could be used in addition to the normal ones.<br class=3D"">2) =
Compressing the URL representation of YANG hashes Another point<br =
class=3D"">(which is unrelated), is to elide the leading "A"s from the =
base64<br class=3D"">representation of the hash in the URL (which =
corresponds to eliding<br class=3D"">the leading zeroes from the hash). =
As specified in section 5.4. a<br class=3D"">hash value of 0x0000007e =
will be encoded as AAAA_, but if the leading<br class=3D"">A=E2=80=99s =
are elided it will be simply _<br class=3D"">This could pose problems =
only if in the future the size of the hash values is increased from 30 =
bits to some other (higher) value.<br class=3D"">This, however, could be =
very useful when having to frequently access<br class=3D"">the same =
resource. In such case, the server/network operator may<br =
class=3D"">decide to re-hash the URI to a shorter version, e.g. the<br =
class=3D"">/sys:system-state/sys:clock/sys:current-datetime could be =
remapped<br class=3D"">from 0x15370408 and VNwQI to 0x1 and _<br =
class=3D"">Best,<br class=3D"">Alex<br class=3D"">PS.<br class=3D"">A =
typo (?), which may be already corrected, in the example of mod.uri on =
Page 26: the two responses have different scheme "mod.uri" and =
"moduri"<br class=3D"">_______________________________________________<br =
class=3D"">core mailing list<br class=3D"">core@ietf.org<br =
class=3D"">https://www.ietf.org/mailman/listinfo/core<br =
class=3D"">_______________________________________________<br =
class=3D"">core mailing list<br class=3D"">core@ietf.org<br =
class=3D"">https://www.ietf.org/mailman/listinfo/core<br =
class=3D""></blockquote></blockquote></blockquote></blockquote>___________=
____________________________________<br class=3D"">core mailing list<br =
class=3D""><a href=3D"mailto:core@ietf.org" =
class=3D"">core@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/core<br =
class=3D""></blockquote></div></blockquote></div><br =
class=3D""></body></html>=

--Apple-Mail=_DE4BD674-6BD6-4D4D-8688-444942FB231C--




From nobody Thu Jun  4 07:35:33 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E7B2D1B357B; Thu,  4 Jun 2015 07:35:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.903
X-Spam-Level: **
X-Spam-Status: No, score=2.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, HELO_EQ_FR=0.35, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZhIJBqlPvDur; Thu,  4 Jun 2015 07:35:28 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id 611EB1B3574; Thu,  4 Jun 2015 07:35:27 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 7A6CF30298; Thu,  4 Jun 2015 16:35:26 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id rBmKxA6AriWM; Thu,  4 Jun 2015 16:35:24 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id C8DB13029E; Thu,  4 Jun 2015 16:35:24 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id TCQPCQ6chYdk; Thu,  4 Jun 2015 16:35:24 +0200 (CEST)
Received: from [IPv6:2001:660:7301:3728:9d0c:b4ad:d2d2:e551] (passerelle-interne.enst-bretagne.fr [192.108.117.210]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id 90F8C30298; Thu,  4 Jun 2015 16:35:24 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CABCOCHR4N66AT-=e998NNMzkEXzo1AU7mFN3WQyG+cvudC_cZw@mail.gmail.com>
Date: Thu, 4 Jun 2015 16:35:24 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <852D42E3-03A7-4EC5-9382-C89E04336357@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <0996C9B6-A0CD-4C59-9089-B4FC388B7B3A@telecom-bretagne.eu> <CABCOCHR4N66AT-=e998NNMzkEXzo1AU7mFN3WQyG+cvudC_cZw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/FpZzpWImT-egIjmFJB_KGJALyiQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 14:35:31 -0000

Hi Andy,

> Le 4 juin 2015 =C3=A0 14:56, Andy Bierman <andy@yumaworks.com> a =
=C3=A9crit :
>=20
> On Thu, Jun 4, 2015 at 12:02 AM, Alexander Pelov
> <alexander.pelov@telecom-bretagne.eu> wrote:
>> Hi Andy,
>>=20
>>> Le 3 juin 2015 =C3=A0 23:37, Andy Bierman <andy@yumaworks.com> a =
=C3=A9crit :
>>>=20
>>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette
>>> <Michel.Veillette@trilliantinc.com> wrote:
>>>> About "I would prefer if hash collisions in a single module were =
not allowed."
>>>> Agreed but how this is implemented.
>>>>=20
>>>=20
>>>=20
>>> By checking the YANG hashes before it is published,
>>> similar to checking the YANG syntax with a YANG compiler.
>>=20
>>>=20
>>>=20
>>>> About "But these numbers do not exist in any modules and so they =
cannot be relied on in CoMI.
>>>> I understand but I assume that a module can be re-published with =
the added statement when require. If a CoMI implementer try to implement =
a module containing a clash, he can look for a version of this module =
containing the special YANG statement. The likelihood of such clash is =
extremely low and such fallback solution won=E2=80=99t be required =
often. However, the RFC will specify how to resolve such situation if =
this ever happen. This statement can also be used to address the need =
for data node identifier compactness as mentioned by Alexander in its =
original email.
>>>>=20
>>>=20
>>> I think the ad-hoc id assignments are pointless because they are not
>>> universal.  The only thing that can be counted on is the module name
>>> and the XPath absolute path expression of each object.
>>=20
>> Having a way of re-mapping (or aliasing) an ID to a =
locally-understood/negotiated ID is really important in some networks =
where the radio resources are extremely limited. If you are able to use =
IDs 1-23 and you have URL hash compression, you save 8 bytes (using =
standard CBOR, no changes here whatsoever). For IDs 24-63 you save 7 =
bytes, 63-255 - 6 bytes (without doing any particular treatment).
>>=20
>=20
> Numbering objects in a schema and numbering radios in a network are =
different.
> There is no way to assign unique numbers to all objects.
> This is not something IANA should have to do, and not something
> vendors will do.  It was already too difficult to simply number the =
modules,
> let alone all schema nodes in all modules.

Completely agree.

>=20
>=20
>=20
>> When using a general hash function, the probability of getting a hash =
value < 255 is 10E-7, and choosing an URI that statically gives you such =
ID simply sounds wrong (and unrealistic).
>>=20
>> Two options are then possible here:
>> 1) Leave this out of CoMI
>> 2) Have a minor accommodation, and require no additional resources on =
the devices
>>=20
>=20
>=20
> The 6TISCH argument for small clients is important.
> If there is an alterate-ID mapping for every server, then the
> client has a different number for every object (different on
> every server).  This seems like a lot of additional memory
> if there are 1000s of servers.

This is supposing that the 1000s of servers will require unique mapping.

Imagine a network where all radios are of the same type, and you would =
like to manage their parameters (e.g. channel, slot, offset). You could =
alias the channel to ID 1, the slot to ID 2, and operate with these IDs, =
instead of the full hashes. The point is, the way you do the actual =
mapping does not have to do anything with CoMI, where only the first 256 =
values will be considered =E2=80=98occupied=E2=80=99.=20

If you want to do more advanced things, like having several radios and =
mapping 1-10 to one of the radios, 11-20 to the second, and so forth - =
it would be up to you to make sure your aliasing scheme is consistent. A =
hash could help you identify to who are you talking to (e.g. /mg/0), but =
I would suppose that if you have a client powerful enough to manage =
1000s of devices, it should be able to note somewhere - nodes 1-500 use =
aliasing A, nodes 501-900 use aliasing B, and the rest don=E2=80=99t =
support aliasing, so we=E2=80=99ll go the YANG hash road.

And if the client is too limited, then you just don=E2=80=99t use =
aliases, no harm done.

>=20
> I don't agree that 1 byte object identifiers are needed,
> The 30 bit hash seems small enough.

This of course depends on the case. I agree with you that in many cases =
it may be an overkill to try to save a couple of bytes. If, however, =
your network has long-lived objects (days-months-years), where 90% of =
your management queries are with 20-30 items, you could significantly =
reduce the trafic by aliasing these once to more convenient values.=20

The aliases could save in a GET 8 bytes - 4 from the request hash, and 4 =
from the CBOR representation (assuming IDs < 24).=20

The reasoning goes the following way: hashes and CBOR have a really =
nice, short representations for the first hash values (<256). Reserve =
them, just so that we don=E2=80=99t have to do clash management with the =
YANG schemes, and leave to the operator/network manager the way to =
handle them.

Best,
Alexander
 =20

>=20
>=20
>> Both require defining hash clash handling mechanism, so here the =
entire discussion on how to handle this is pertinent.
>>=20
>> For me, 2) can be implemented in two ways:
>> 2.a) Explicit ID re-mapping (or aliasing) through a (external) file. =
Here, it would be nice to have a way to specify the URI of the file, =
e.g. on the server or on a remote location. Something like the mod.uri .
>> 2.b) Explicit ID re-mapping (or aliasing) in the YANG module (e.g. =
through the "id" option mentioned by Michel or maybe with an extension, =
e.g. comi:id)
>>=20
>> Note that if this is considered hash aliasing (we forget the =
re-mapping), then the behavior can be very simple, e.g.:
>> It is up to the implementer to define the hash aliases, if any. In =
case of clash with a YANG hash value, the alias must be ignored. In case =
of clash with another alias, both aliases are ignored.
>>=20
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> CoMI can decide on a small concession for aliasing uses - say that =
YANG string hash values MUST be >=3D 64 (256?). The compiler can check =
that all hashes fulfill this before publishing. This way, there is even =
NO need to add any statement about alias clashes. It would be up to the =
implementer to chose the appropriate way of aliasing (if any). Aliases =
would be local in scope.
>>=20
>> What do you think about it?
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> Best,
>> Alexander
>>=20
>>=20
>=20
>=20
> Andy
>=20
>>=20
>>>=20
>>>=20
>>>> About "In NETCONF, modules tend to use augment a lot"
>>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I =
propose a new definition to address this.
>>>>=20
>>>=20
>>> What is it?
>>> IMO you should post comments to the mailing list not markup
>>> to a word document.  It is too hard to follow.
>>>=20
>>>=20
>>>> Module Context: A module context is composed of all data nodes, =
notifications and RPCs defined in a YANG module and included sub-modules =
or added to them using the augment YANG statement.
>>>>=20
>>>=20
>>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are
>>> not part of the augmented module.  They will be returned in
>>> NETCONF and RESTCONF retrieval operations for an ancestor node
>>> but they are not part of the augmented module.  Only objects
>>> defined in the module namespace are part of the module.
>>>=20
>>>=20
>>> Andy
>>>=20
>>>=20
>>>=20
>>>> Section 4.1.3.4 show an example of include, import and augment.
>>>>=20
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>=20
>>>>=20
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 14:54
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in =
URL
>>>>=20
>>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>> Hi Andy
>>>>>=20
>>>>> Couple of questions about your proposed solution.
>>>>>=20
>>>>> =3D=3D=3D Question #1, New YANG statement
>>>>>=20
>>>>> Your solution works only if hash clashes within a module are =
resolved at design time. If not, the error message will return the =
following information which is not sufficient to resolve which data node =
is which.
>>>>>=20
>>>>>  { "1234": [
>>>>>         "module-A":"4567",
>>>>>         "module-A":"6523"
>>>>>     ]
>>>>>  }
>>>>>=20
>>>>=20
>>>>=20
>>>> The original proposal had a 3-tuple { module-name, path-expr, =
new-hash } We discussed some optimizations in the 6TISCH call to reduce =
the size of the path-expr and still not require the client to store all =
the path strings, such as store a few bytes from the path strings like =
6th and 11th bytes (Avoid the common ietf- prefix for many module =
names).
>>>>=20
>>>> This is not deterministic. Only the full path string is fool-proof.
>>>> I would prefer if hash collisions in a single module were not =
allowed.
>>>> They need to be resolved at design time.  If this is not possible, =
then a standard rehash algorithm should be used so the collision is =
resolved in a predictable way.  e.g., try appending "_", then try "__", =
etc.
>>>> The result would be that hash collisions in a single module do not =
occur in CoMI.
>>>>=20
>>>>=20
>>>>> Is it possible/acceptable to request a new YANG statement to =
manually assign a ID to a data node?
>>>>> Same question for a module ID?
>>>>>=20
>>>>> For example (see "id 16" and "id 25" bellow) :
>>>>>=20
>>>>>  module a {
>>>>>     namespace a-ns;
>>>>>     prefix a;
>>>>>     id 16;
>>>>>     revision 2015-01-01;
>>>>>=20
>>>>>     leaf leafA1 { type string; id 25 }
>>>>>     container containerA {
>>>>>        leaf leafA2 { type string}
>>>>>     }
>>>>>  }
>>>>=20
>>>>=20
>>>> You could have an extension statement do anything you want:
>>>>=20
>>>>   comi:id  16;
>>>>=20
>>>> But these numbers do not exist any any modules and so they cannot =
be relied on in CoMI.
>>>>=20
>>>>=20
>>>>>=20
>>>>> =3D=3D=3D Question #2, Introduction of an optional query parameter =
used to
>>>>> target a specific module
>>>>>=20
>>>>> For nodes / networks which can afford a slitely larger payload =
(IEEE 802.15.4g for example) but want to avoid the processing and =
storage associated with the porposed error message, are you opposed to =
the support of an optional CoAP query parameter use carry the module =
name or module ID ?
>>>>>=20
>>>>> For example:
>>>>>=20
>>>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>>>=20
>>>>> =3D=3D=3D Question #3, Use of the select query parameter instead =
of the URI
>>>>>=20
>>>>> Are you oposed to the use of the select query parameter instead of =
the
>>>>> URI to identify data node(s)
>>>>>=20
>>>>=20
>>>> Not really.
>>>>=20
>>>> I don't know how mixed the modules will get in CoMI.
>>>> In NETCONF, modules tend to use augment a lot, so the nodes from =
'module-A' may be nested nodes.
>>>> Retrieving just the augmenting nodes and ignoring the augmented =
nodes would likely be operationally useless.
>>>> e.g., when augmenting a list, the key leafs are needed to identify =
the instance.
>>>>=20
>>>> I would like to keep CoMI extremely simple.
>>>> More bells and whistles means increased
>>>> memory and CPU requirements. I am glad CORE and 6TISCH WGs are so =
concerned about constrained resources.
>>>> Only the most important bells and whistles will get standardized.
>>>>=20
>>>>=20
>>>>> For example:
>>>>>=20
>>>>> GET example.com/mg?select=3DY8d7s
>>>>> GET example.com/mg?select=3DY8d7s,NKHaA
>>>>> GET example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>>>=20
>>>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>>>=20
>>>>> Are you oposed to the compression of the base64 representation as =
propsed by Alexander.
>>>>>=20
>>>>=20
>>>> No.  Optimizations that reduce the encoding size are important.
>>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>>>=20
>>>>> For example:
>>>>>=20
>>>>> GET example.com/mg?select=3D7s
>>>>> Instead of
>>>>> GET example.com/mg?select=3D AAA7s
>>>>>=20
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>>>=20
>>>>>=20
>>>>=20
>>>> Andy
>>>>=20
>>>>> -----Original Message-----
>>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>>> Sent: 3 juin 2015 13:09
>>>>> To: Michel Veillette
>>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in =
URL
>>>>>=20
>>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>>> Hi Alexander
>>>>>>=20
>>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been =
presented to the hash clashes problem. Two based on a rehash table and =
two based on a new CoAP query parameter carrying the module name or =
registered module ID. This query parameter is used to select =
unambiguously the targeted data node(s) assuming that any hash collision =
within a module have been resolved at design time. You can find this =
presentation in attachment.
>>>>>>=20
>>>>>> Both of your proposals make sense to me but I still hope that the =
clash file can be avoided or be optional.
>>>>>>=20
>>>>>=20
>>>>>=20
>>>>> I agree we should not need the client to retrieve the rehash info =
before using a server.
>>>>> The CoMI authors have discussed a solution which I will try to =
write up today where a special "hash-clash" error is returned by CoMI if =
a rehash is needed.
>>>>>=20
>>>>>  1) client requests module-A object with hash  "1234";
>>>>>       there is no extended-name/local-name,
>>>>>       just the YANG hash, used in any request
>>>>>=20
>>>>>  2) if '1234' has a collision in this server then a special error =
code is returned;
>>>>>      The return payload has the rehash info [old-hash, { =
module-name, new-hash }+]
>>>>>          { "1234": [
>>>>>                 "module-A":"4567",
>>>>>                 "module-X":"6523"
>>>>>             ]
>>>>>          }
>>>>>=20
>>>>>   3) the client gets the error info, and knows which module its =
"1234" is from.
>>>>>        It finds the correct module name in the array and replaces =
its old-hash
>>>>>        with the new-hash.
>>>>>=20
>>>>>  4) client re-sends the request, using hash "4567" instead of =
"1234"
>>>>>=20
>>>>> The rehash table goes away, and only this error info is used =
instead.
>>>>>=20
>>>>>> Michel Veillette
>>>>>> System Architecture Director
>>>>>> Trilliant Inc.
>>>>>> Tel: 450-375-0556 ext. 237
>>>>>> michel.veillette@trilliantinc.com
>>>>>> www.trilliantinc.com
>>>>>>=20
>>>>>=20
>>>>>=20
>>>>> Andy
>>>>>=20
>>>>>>=20
>>>>>> -----Original Message-----
>>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>>>>> Pelov
>>>>>> Sent: 3 juin 2015 11:01
>>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>>> Subject: [core] CoMI remote server clash file and YANG hash in =
URL
>>>>>>=20
>>>>>> Hello everyone,
>>>>>>=20
>>>>>> I would like to discuss with you to ideas/proposals in this mail, =
namely:
>>>>>> 1) Caching the yang clash file on a remote server
>>>>>> 2) Compressing the URL representation of YANG hashes
>>>>>>=20
>>>>>> 1) Caching the yang clash file on a remote server Even though =
hash collisions should happen rarely (if ever), there may be cases when =
it could be inevitable, and as such, it may be interesting to cache the =
clash_file somewhere on a remote server to avoid sending it over the =
constrained wireless interface. It could be used for other cases, where =
some frequently used resources are re-hashed for performance purposes. =
Maybe it would be interesting to allow the server to specify a remote =
location for the clash file? For static collisions or optimizations it =
could be that the YANG definition includes alternative hash values, =
which could be used in addition to the normal ones.
>>>>>>=20
>>>>>> 2) Compressing the URL representation of YANG hashes Another =
point
>>>>>> (which is unrelated), is to elide the leading "A"s from the =
base64
>>>>>> representation of the hash in the URL (which corresponds to =
eliding
>>>>>> the leading zeroes from the hash). As specified in section 5.4. a
>>>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the =
leading
>>>>>> A=E2=80=99s are elided it will be simply _
>>>>>>=20
>>>>>> This could pose problems only if in the future the size of the =
hash values is increased from 30 bits to some other (higher) value.
>>>>>>=20
>>>>>> This, however, could be very useful when having to frequently =
access
>>>>>> the same resource. In such case, the server/network operator may
>>>>>> decide to re-hash the URI to a shorter version, e.g. the
>>>>>> /sys:system-state/sys:clock/sys:current-datetime could be =
remapped
>>>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>>>=20
>>>>>> Best,
>>>>>> Alex
>>>>>>=20
>>>>>> PS.
>>>>>> A typo (?), which may be already corrected, in the example of =
mod.uri on Page 26: the two responses have different scheme "mod.uri" =
and "moduri"
>>>>>>=20
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>=20
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>=20
>>=20


From nobody Thu Jun  4 08:21:52 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F1A9D1A88FD; Thu,  4 Jun 2015 08:21:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.552
X-Spam-Level: **
X-Spam-Status: No, score=2.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DSc66DGwBSVp; Thu,  4 Jun 2015 08:21:46 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0113.outbound.protection.outlook.com [65.55.169.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D63201A88C4; Thu,  4 Jun 2015 08:21:45 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB791.namprd06.prod.outlook.com (10.141.247.143) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 15:21:42 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 4 Jun 2015 15:21:42 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQCAACQjAIABEVbQ
Date: Thu, 4 Jun 2015 15:21:41 +0000
Message-ID: <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com>
In-Reply-To: <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB791;
x-microsoft-antispam-prvs: <CO2PR0601MB7916F22F3ABE03A7EE13082FEB30@CO2PR0601MB791.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB791; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB791; 
x-forefront-prvs: 0597911EE1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(38414003)(53754006)(13464003)(24454002)(51704005)(189002)(377454003)(377424004)(199003)(2900100001)(106356001)(86362001)(19580405001)(15974865002)(5890100001)(93886004)(66066001)(64706001)(122556002)(5002640100001)(46102003)(68736005)(19580395003)(77156002)(87936001)(92566002)(2656002)(77096005)(40100003)(561944003)(62966003)(189998001)(54356999)(33656002)(76176999)(5001830100001)(15975445007)(2950100001)(5001860100001)(5001960100002)(74316001)(101416001)(81156007)(110136002)(99286002)(76576001)(102836002)(50986999)(105586002)(106116001)(4001540100001)(97736004); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB791; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2015 15:21:41.5850 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB791
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/r4UjfIkLi1GGBAutkjLrlnuvjtg>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 15:21:49 -0000

SGkgQW5keQ0KDQpBYm91dCAiQWxtb3N0IC0tIHRoaXMgaXMgZGVmaW5lZCBpbiBSRkMgNjAyMCAt
LSB0aGUgYXVnbWVudGluZyBub2RlcyBhcmUgbm90IHBhcnQgb2YgdGhlIGF1Z21lbnRlZCBtb2R1
bGUuICBUaGV5IHdpbGwgYmUgcmV0dXJuZWQgaW4gTkVUQ09ORiBhbmQgUkVTVENPTkYgcmV0cmll
dmFsIG9wZXJhdGlvbnMgZm9yIGFuIGFuY2VzdG9yIG5vZGUgYnV0IHRoZXkgYXJlIG5vdCBwYXJ0
IG9mIHRoZSBhdWdtZW50ZWQgbW9kdWxlLiAgT25seSBvYmplY3RzIGRlZmluZWQgaW4gdGhlIG1v
ZHVsZSBuYW1lc3BhY2UgYXJlIHBhcnQgb2YgdGhlIG1vZHVsZS4iDQoNClVuZGVyc3Rvb2QsIHRo
aXMgaXMgd2h5IG15IGNvbnRyaWJ1dGlvbiBpbnRyb2R1Y2UgdGhlIG5ldyB0ZXJtLCAiTW9kdWxl
IGNvbnRleHQiLiBBdWdtZW50aW5nIG5vZGVzIGFyZSBub3QgcGFydCBvZiB0aGUgYXVnbWVudGVk
IG1vZHVsZSBidXQsIGFzIGRlZmluZWQsIGFyZSBwYXJ0IG9mIHRoZSAiTW9kdWxlIGNvbnRleHQi
LiBUaGlzIG5ldyBjb25jZXB0IHdhcyByZXF1aXJlIHRvIG1pbmltaXplIHRoZSBvdmVyaGVhZCB3
aGVuIHJldHJpZXZpbmcgdGhlIGNvbXBsZXRlIGRhdGFzdG9yZSBjb250YWluaW5nIG11bHRpcGxl
IG1vZHVsZSBjb250ZXh0cyB3aXRoIHNvbWUgaGF2aW5nIGF1Z21lbnRpbmcgbm9kZXMuDQoNCiAg
IFJFUzogMi4wNSBDb250ZW50IChDb250ZW50LUZvcm1hdDogYXBwbGljYXRpb24vY2JvcikNCiAg
IHsNCiAgICAgICJhIiA6IHsNCiAgICAgICAgIDM2NTI1NzIzNSA6ICJsZWFmQTEgdmFsdWUiLA0K
ICAgICAgICAgNzAyMTQ5NjI2IDogew0KICAgICAgICAgICAgMjE1OTkzMzI5IDogImxlYWZBMiB2
YWx1ZSIsDQogICAgICAgICAgICA5NjIxOTE2ODIgOiAibGVhZkMxIHZhbHVlIiAgICAgICAgICAg
ICAgICAgICAgIyBBdWdtZW50aW5nIGRhdGEgbm9kZQ0KICAgICAgICAgfSwNCiAgICAgICAgIDgy
OTIyMjk4MyA6ICJsZWFmUyB2YWx1ZSIgICAgICAgICAgICAgICAgICAgICAgICAgIyBTdWItbW9k
dWxlIGRhdGEgbm9kZQ0KICAgICAgfSwNCiAgICAgICJiIiA6IHsNCiAgICAgICAgIDI4OTU2NDY5
NiA6ICJsZWFmQiB2YWx1ZSINCiAgICAgIH0sDQogICAgICAiYyIgOiB7DQogICAgICAgICA5OTM1
MzM1MjcgOiAibGVhZkMyIHZhbHVlIg0KICAgICAgfQ0KICAgfQ0KDQpNaWNoZWwgVmVpbGxldHRl
DQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAt
Mzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0Kd3d3
LnRyaWxsaWFudGluYy5jb20gwqAgDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZy
b206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0gDQpTZW50OiAzIGp1
aW4gMjAxNSAxNzozOA0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbGV4YW5kZXIgUGVsb3Y7
IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KU3ViamVjdDogUmU6IFtjb3JlXSBDb01J
IHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQgWUFORyBoYXNoIGluIFVSTA0KDQpPbiBXZWQs
IEp1biAzLCAyMDE1IGF0IDEyOjQ4IFBNLCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxl
dHRlQHRyaWxsaWFudGluYy5jb20+IHdyb3RlOg0KPiBBYm91dCAiSSB3b3VsZCBwcmVmZXIgaWYg
aGFzaCBjb2xsaXNpb25zIGluIGEgc2luZ2xlIG1vZHVsZSB3ZXJlIG5vdCBhbGxvd2VkLiINCj4g
QWdyZWVkIGJ1dCBob3cgdGhpcyBpcyBpbXBsZW1lbnRlZC4NCj4NCg0KDQpCeSBjaGVja2luZyB0
aGUgWUFORyBoYXNoZXMgYmVmb3JlIGl0IGlzIHB1Ymxpc2hlZCwgc2ltaWxhciB0byBjaGVja2lu
ZyB0aGUgWUFORyBzeW50YXggd2l0aCBhIFlBTkcgY29tcGlsZXIuDQoNCg0KPiBBYm91dCAiQnV0
IHRoZXNlIG51bWJlcnMgZG8gbm90IGV4aXN0IGluIGFueSBtb2R1bGVzIGFuZCBzbyB0aGV5IGNh
bm5vdCBiZSByZWxpZWQgb24gaW4gQ29NSS4NCj4gSSB1bmRlcnN0YW5kIGJ1dCBJIGFzc3VtZSB0
aGF0IGEgbW9kdWxlIGNhbiBiZSByZS1wdWJsaXNoZWQgd2l0aCB0aGUgYWRkZWQgc3RhdGVtZW50
IHdoZW4gcmVxdWlyZS4gSWYgYSBDb01JIGltcGxlbWVudGVyIHRyeSB0byBpbXBsZW1lbnQgYSBt
b2R1bGUgY29udGFpbmluZyBhIGNsYXNoLCBoZSBjYW4gbG9vayBmb3IgYSB2ZXJzaW9uIG9mIHRo
aXMgbW9kdWxlIGNvbnRhaW5pbmcgdGhlIHNwZWNpYWwgWUFORyBzdGF0ZW1lbnQuIFRoZSBsaWtl
bGlob29kIG9mIHN1Y2ggY2xhc2ggaXMgZXh0cmVtZWx5IGxvdyBhbmQgc3VjaCBmYWxsYmFjayBz
b2x1dGlvbiB3b27igJl0IGJlIHJlcXVpcmVkIG9mdGVuLiBIb3dldmVyLCB0aGUgUkZDIHdpbGwg
c3BlY2lmeSBob3cgdG8gcmVzb2x2ZSBzdWNoIHNpdHVhdGlvbiBpZiB0aGlzIGV2ZXIgaGFwcGVu
LiBUaGlzIHN0YXRlbWVudCBjYW4gYWxzbyBiZSB1c2VkIHRvIGFkZHJlc3MgdGhlIG5lZWQgZm9y
IGRhdGEgbm9kZSBpZGVudGlmaWVyIGNvbXBhY3RuZXNzIGFzIG1lbnRpb25lZCBieSBBbGV4YW5k
ZXIgaW4gaXRzIG9yaWdpbmFsIGVtYWlsLg0KPg0KDQpJIHRoaW5rIHRoZSBhZC1ob2MgaWQgYXNz
aWdubWVudHMgYXJlIHBvaW50bGVzcyBiZWNhdXNlIHRoZXkgYXJlIG5vdCB1bml2ZXJzYWwuICBU
aGUgb25seSB0aGluZyB0aGF0IGNhbiBiZSBjb3VudGVkIG9uIGlzIHRoZSBtb2R1bGUgbmFtZSBh
bmQgdGhlIFhQYXRoIGFic29sdXRlIHBhdGggZXhwcmVzc2lvbiBvZiBlYWNoIG9iamVjdC4NCg0K
DQo+IEFib3V0ICJJbiBORVRDT05GLCBtb2R1bGVzIHRlbmQgdG8gdXNlIGF1Z21lbnQgYSBsb3Qi
DQo+IEluIG15IGRvY3VtZW50ICIgZHJhZnQtdmFuZGVyc3Rvay1jb3JlLWNvbWktMDYgLSBNVi5k
b2N4ICIsIEkgcHJvcG9zZSBhIG5ldyBkZWZpbml0aW9uIHRvIGFkZHJlc3MgdGhpcy4NCj4NCg0K
V2hhdCBpcyBpdD8NCklNTyB5b3Ugc2hvdWxkIHBvc3QgY29tbWVudHMgdG8gdGhlIG1haWxpbmcg
bGlzdCBub3QgbWFya3VwIHRvIGEgd29yZCBkb2N1bWVudC4gIEl0IGlzIHRvbyBoYXJkIHRvIGZv
bGxvdy4NCg0KDQo+IE1vZHVsZSBDb250ZXh0OiBBIG1vZHVsZSBjb250ZXh0IGlzIGNvbXBvc2Vk
IG9mIGFsbCBkYXRhIG5vZGVzLCBub3RpZmljYXRpb25zIGFuZCBSUENzIGRlZmluZWQgaW4gYSBZ
QU5HIG1vZHVsZSBhbmQgaW5jbHVkZWQgc3ViLW1vZHVsZXMgb3IgYWRkZWQgdG8gdGhlbSB1c2lu
ZyB0aGUgYXVnbWVudCBZQU5HIHN0YXRlbWVudC4NCj4NCg0KQWxtb3N0IC0tIHRoaXMgaXMgZGVm
aW5lZCBpbiBSRkMgNjAyMCAtLSB0aGUgYXVnbWVudGluZyBub2RlcyBhcmUgbm90IHBhcnQgb2Yg
dGhlIGF1Z21lbnRlZCBtb2R1bGUuICBUaGV5IHdpbGwgYmUgcmV0dXJuZWQgaW4gTkVUQ09ORiBh
bmQgUkVTVENPTkYgcmV0cmlldmFsIG9wZXJhdGlvbnMgZm9yIGFuIGFuY2VzdG9yIG5vZGUgYnV0
IHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBhdWdtZW50ZWQgbW9kdWxlLiAgT25seSBvYmplY3Rz
IGRlZmluZWQgaW4gdGhlIG1vZHVsZSBuYW1lc3BhY2UgYXJlIHBhcnQgb2YgdGhlIG1vZHVsZS4N
Cg0KDQpBbmR5DQoNCg0KDQo+IFNlY3Rpb24gNC4xLjMuNCBzaG93IGFuIGV4YW1wbGUgb2YgaW5j
bHVkZSwgaW1wb3J0IGFuZCBhdWdtZW50Lg0KPg0KPiBNaWNoZWwgVmVpbGxldHRlDQo+IFN5c3Rl
bSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INCj4gVHJpbGxpYW50IEluYy4NCj4gVGVsOiA0NTAtMzc1
LTA1NTYgZXh0LiAyMzcNCj4gbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+IHd3
dy50cmlsbGlhbnRpbmMuY29tDQo+DQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+
IEZyb206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0NCj4gU2VudDog
MyBqdWluIDIwMTUgMTQ6NTQNCj4gVG86IE1pY2hlbCBWZWlsbGV0dGUNCj4gQ2M6IEFsZXhhbmRl
ciBQZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQo+IFN1YmplY3Q6IFJlOiBb
Y29yZV0gQ29NSSByZW1vdGUgc2VydmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiBVUkwN
Cj4NCj4gT24gV2VkLCBKdW4gMywgMjAxNSBhdCAxMToxNiBBTSwgTWljaGVsIFZlaWxsZXR0ZSA8
TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPiB3cm90ZToNCj4+IEhpIEFuZHkNCj4+
DQo+PiBDb3VwbGUgb2YgcXVlc3Rpb25zIGFib3V0IHlvdXIgcHJvcG9zZWQgc29sdXRpb24uDQo+
Pg0KPj4gPT09IFF1ZXN0aW9uICMxLCBOZXcgWUFORyBzdGF0ZW1lbnQNCj4+DQo+PiBZb3VyIHNv
bHV0aW9uIHdvcmtzIG9ubHkgaWYgaGFzaCBjbGFzaGVzIHdpdGhpbiBhIG1vZHVsZSBhcmUgcmVz
b2x2ZWQgYXQgZGVzaWduIHRpbWUuIElmIG5vdCwgdGhlIGVycm9yIG1lc3NhZ2Ugd2lsbCByZXR1
cm4gdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiB3aGljaCBpcyBub3Qgc3VmZmljaWVudCB0byBy
ZXNvbHZlIHdoaWNoIGRhdGEgbm9kZSBpcyB3aGljaC4NCj4+DQo+PiAgICB7ICIxMjM0IjogWw0K
Pj4gICAgICAgICAgICJtb2R1bGUtQSI6IjQ1NjciLA0KPj4gICAgICAgICAgICJtb2R1bGUtQSI6
IjY1MjMiDQo+PiAgICAgICBdDQo+PiAgICB9DQo+Pg0KPg0KPg0KPiBUaGUgb3JpZ2luYWwgcHJv
cG9zYWwgaGFkIGEgMy10dXBsZSB7IG1vZHVsZS1uYW1lLCBwYXRoLWV4cHIsIG5ldy1oYXNoIH0g
V2UgZGlzY3Vzc2VkIHNvbWUgb3B0aW1pemF0aW9ucyBpbiB0aGUgNlRJU0NIIGNhbGwgdG8gcmVk
dWNlIHRoZSBzaXplIG9mIHRoZSBwYXRoLWV4cHIgYW5kIHN0aWxsIG5vdCByZXF1aXJlIHRoZSBj
bGllbnQgdG8gc3RvcmUgYWxsIHRoZSBwYXRoIHN0cmluZ3MsIHN1Y2ggYXMgc3RvcmUgYSBmZXcg
Ynl0ZXMgZnJvbSB0aGUgcGF0aCBzdHJpbmdzIGxpa2UgNnRoIGFuZCAxMXRoIGJ5dGVzIChBdm9p
ZCB0aGUgY29tbW9uIGlldGYtIHByZWZpeCBmb3IgbWFueSBtb2R1bGUgbmFtZXMpLg0KPg0KPiBU
aGlzIGlzIG5vdCBkZXRlcm1pbmlzdGljLiBPbmx5IHRoZSBmdWxsIHBhdGggc3RyaW5nIGlzIGZv
b2wtcHJvb2YuDQo+IEkgd291bGQgcHJlZmVyIGlmIGhhc2ggY29sbGlzaW9ucyBpbiBhIHNpbmds
ZSBtb2R1bGUgd2VyZSBub3QgYWxsb3dlZC4NCj4gVGhleSBuZWVkIHRvIGJlIHJlc29sdmVkIGF0
IGRlc2lnbiB0aW1lLiAgSWYgdGhpcyBpcyBub3QgcG9zc2libGUsIHRoZW4gYSBzdGFuZGFyZCBy
ZWhhc2ggYWxnb3JpdGhtIHNob3VsZCBiZSB1c2VkIHNvIHRoZSBjb2xsaXNpb24gaXMgcmVzb2x2
ZWQgaW4gYSBwcmVkaWN0YWJsZSB3YXkuICBlLmcuLCB0cnkgYXBwZW5kaW5nICJfIiwgdGhlbiB0
cnkgIl9fIiwgZXRjLg0KPiBUaGUgcmVzdWx0IHdvdWxkIGJlIHRoYXQgaGFzaCBjb2xsaXNpb25z
IGluIGEgc2luZ2xlIG1vZHVsZSBkbyBub3Qgb2NjdXIgaW4gQ29NSS4NCj4NCj4NCj4+IElzIGl0
IHBvc3NpYmxlL2FjY2VwdGFibGUgdG8gcmVxdWVzdCBhIG5ldyBZQU5HIHN0YXRlbWVudCB0byBt
YW51YWxseSBhc3NpZ24gYSBJRCB0byBhIGRhdGEgbm9kZT8NCj4+IFNhbWUgcXVlc3Rpb24gZm9y
IGEgbW9kdWxlIElEPw0KPj4NCj4+IEZvciBleGFtcGxlIChzZWUgImlkIDE2IiBhbmQgImlkIDI1
IiBiZWxsb3cpIDoNCj4+DQo+PiAgICBtb2R1bGUgYSB7DQo+PiAgICAgICBuYW1lc3BhY2UgYS1u
czsNCj4+ICAgICAgIHByZWZpeCBhOw0KPj4gICAgICAgaWQgMTY7DQo+PiAgICAgICByZXZpc2lv
biAyMDE1LTAxLTAxOw0KPj4NCj4+ICAgICAgIGxlYWYgbGVhZkExIHsgdHlwZSBzdHJpbmc7IGlk
IDI1IH0NCj4+ICAgICAgIGNvbnRhaW5lciBjb250YWluZXJBIHsNCj4+ICAgICAgICAgIGxlYWYg
bGVhZkEyIHsgdHlwZSBzdHJpbmd9DQo+PiAgICAgICB9DQo+PiAgICB9DQo+DQo+DQo+IFlvdSBj
b3VsZCBoYXZlIGFuIGV4dGVuc2lvbiBzdGF0ZW1lbnQgZG8gYW55dGhpbmcgeW91IHdhbnQ6DQo+
DQo+ICAgICBjb21pOmlkICAxNjsNCj4NCj4gQnV0IHRoZXNlIG51bWJlcnMgZG8gbm90IGV4aXN0
IGFueSBhbnkgbW9kdWxlcyBhbmQgc28gdGhleSBjYW5ub3QgYmUgcmVsaWVkIG9uIGluIENvTUku
DQo+DQo+DQo+Pg0KPj4gPT09IFF1ZXN0aW9uICMyLCBJbnRyb2R1Y3Rpb24gb2YgYW4gb3B0aW9u
YWwgcXVlcnkgcGFyYW1ldGVyIHVzZWQgdG8gDQo+PiB0YXJnZXQgYSBzcGVjaWZpYyBtb2R1bGUN
Cj4+DQo+PiBGb3Igbm9kZXMgLyBuZXR3b3JrcyB3aGljaCBjYW4gYWZmb3JkIGEgc2xpdGVseSBs
YXJnZXIgcGF5bG9hZCAoSUVFRSA4MDIuMTUuNGcgZm9yIGV4YW1wbGUpIGJ1dCB3YW50IHRvIGF2
b2lkIHRoZSBwcm9jZXNzaW5nIGFuZCBzdG9yYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9ycG9z
ZWQgZXJyb3IgbWVzc2FnZSwgYXJlIHlvdSBvcHBvc2VkIHRvIHRoZSBzdXBwb3J0IG9mIGFuIG9w
dGlvbmFsIENvQVAgcXVlcnkgcGFyYW1ldGVyIHVzZSBjYXJyeSB0aGUgbW9kdWxlIG5hbWUgb3Ig
bW9kdWxlIElEID8NCj4+DQo+PiBGb3IgZXhhbXBsZToNCj4+DQo+PiBHRVQgZXhhbXBsZS5jb20v
WThkN3M/c2VsZWN0PSBpZXRmLTZ0aXNjaC1tYWMNCj4+DQo+PiA9PT0gUXVlc3Rpb24gIzMsIFVz
ZSBvZiB0aGUgc2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBpbnN0ZWFkIG9mIHRoZSBVUkkNCj4+DQo+
PiBBcmUgeW91IG9wb3NlZCB0byB0aGUgdXNlIG9mIHRoZSBzZWxlY3QgcXVlcnkgcGFyYW1ldGVy
IGluc3RlYWQgb2YgDQo+PiB0aGUgVVJJIHRvIGlkZW50aWZ5IGRhdGEgbm9kZShzKQ0KPj4NCj4N
Cj4gTm90IHJlYWxseS4NCj4NCj4gSSBkb24ndCBrbm93IGhvdyBtaXhlZCB0aGUgbW9kdWxlcyB3
aWxsIGdldCBpbiBDb01JLg0KPiBJbiBORVRDT05GLCBtb2R1bGVzIHRlbmQgdG8gdXNlIGF1Z21l
bnQgYSBsb3QsIHNvIHRoZSBub2RlcyBmcm9tICdtb2R1bGUtQScgbWF5IGJlIG5lc3RlZCBub2Rl
cy4NCj4gUmV0cmlldmluZyBqdXN0IHRoZSBhdWdtZW50aW5nIG5vZGVzIGFuZCBpZ25vcmluZyB0
aGUgYXVnbWVudGVkIG5vZGVzIHdvdWxkIGxpa2VseSBiZSBvcGVyYXRpb25hbGx5IHVzZWxlc3Mu
DQo+IGUuZy4sIHdoZW4gYXVnbWVudGluZyBhIGxpc3QsIHRoZSBrZXkgbGVhZnMgYXJlIG5lZWRl
ZCB0byBpZGVudGlmeSB0aGUgaW5zdGFuY2UuDQo+DQo+IEkgd291bGQgbGlrZSB0byBrZWVwIENv
TUkgZXh0cmVtZWx5IHNpbXBsZS4NCj4gTW9yZSBiZWxscyBhbmQgd2hpc3RsZXMgbWVhbnMgaW5j
cmVhc2VkIG1lbW9yeSBhbmQgQ1BVIHJlcXVpcmVtZW50cy4gSSANCj4gYW0gZ2xhZCBDT1JFIGFu
ZCA2VElTQ0ggV0dzIGFyZSBzbyBjb25jZXJuZWQgYWJvdXQgY29uc3RyYWluZWQgcmVzb3VyY2Vz
Lg0KPiBPbmx5IHRoZSBtb3N0IGltcG9ydGFudCBiZWxscyBhbmQgd2hpc3RsZXMgd2lsbCBnZXQg
c3RhbmRhcmRpemVkLg0KPg0KPg0KPj4gRm9yIGV4YW1wbGU6DQo+Pg0KPj4gR0VUIGV4YW1wbGUu
Y29tL21nP3NlbGVjdD1ZOGQ3cw0KPj4gR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdD1ZOGQ3cyxO
S0hhQSBHRVQgDQo+PiBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9aWV0Zi02dGlzY2gtbWFjKFk4ZDdz
LE5LSGFBKQ0KPj4NCj4+ID09PSBRdWVzdGlvbiAjNCwgQ29tcHJlc3NpbmcgWUFORyBoYXNoIGJh
c2U2NCByZXByZXNlbnRhdGlvbg0KPj4NCj4+IEFyZSB5b3Ugb3Bvc2VkIHRvIHRoZSBjb21wcmVz
c2lvbiBvZiB0aGUgYmFzZTY0IHJlcHJlc2VudGF0aW9uIGFzIHByb3BzZWQgYnkgQWxleGFuZGVy
Lg0KPj4NCj4NCj4gTm8uICBPcHRpbWl6YXRpb25zIHRoYXQgcmVkdWNlIHRoZSBlbmNvZGluZyBz
aXplIGFyZSBpbXBvcnRhbnQuDQo+IEkgd2FudCB0byB1c2Ugc3RhbmRhcmQgQ0JPUi4gIE5vIHNw
ZWNpYWwgaGFja3MganVzdCBmb3IgQ29NSS4NCj4NCj4+IEZvciBleGFtcGxlOg0KPj4NCj4+IEdF
VCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9N3MNCj4+IEluc3RlYWQgb2YNCj4+IEdFVCBleGFtcGxl
LmNvbS9tZz9zZWxlY3Q9IEFBQTdzDQo+Pg0KPj4gTWljaGVsIFZlaWxsZXR0ZQ0KPj4gU3lzdGVt
IEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KPj4gVHJpbGxpYW50IEluYy4NCj4+IFRlbDogNDUwLTM3
NS0wNTU2IGV4dC4gMjM3DQo+PiBtaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20NCj4+
IHd3dy50cmlsbGlhbnRpbmMuY29tDQo+Pg0KPj4NCj4NCj4gQW5keQ0KPg0KPj4gLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZyb206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVt
YXdvcmtzLmNvbV0NCj4+IFNlbnQ6IDMganVpbiAyMDE1IDEzOjA5DQo+PiBUbzogTWljaGVsIFZl
aWxsZXR0ZQ0KPj4gQ2M6IEFsZXhhbmRlciBQZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGll
dGYub3JnDQo+PiBTdWJqZWN0OiBSZTogW2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBm
aWxlIGFuZCBZQU5HIGhhc2ggaW4gDQo+PiBVUkwNCj4+DQo+PiBPbiBXZWQsIEp1biAzLCAyMDE1
IGF0IDk6MDUgQU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50
aW5jLmNvbT4gd3JvdGU6DQo+Pj4gSGkgQWxleGFuZGVyDQo+Pj4NCj4+PiBBdCB0aGUgbGFzdCA2
VGlTQ0ggYmktd2Vla2x5IGNhbGwsIDQgc29sdXRpb25zIGhhdmUgYmVlbiBwcmVzZW50ZWQgdG8g
dGhlIGhhc2ggY2xhc2hlcyBwcm9ibGVtLiBUd28gYmFzZWQgb24gYSByZWhhc2ggdGFibGUgYW5k
IHR3byBiYXNlZCBvbiBhIG5ldyBDb0FQIHF1ZXJ5IHBhcmFtZXRlciBjYXJyeWluZyB0aGUgbW9k
dWxlIG5hbWUgb3IgcmVnaXN0ZXJlZCBtb2R1bGUgSUQuIFRoaXMgcXVlcnkgcGFyYW1ldGVyIGlz
IHVzZWQgdG8gc2VsZWN0IHVuYW1iaWd1b3VzbHkgdGhlIHRhcmdldGVkIGRhdGEgbm9kZShzKSBh
c3N1bWluZyB0aGF0IGFueSBoYXNoIGNvbGxpc2lvbiB3aXRoaW4gYSBtb2R1bGUgaGF2ZSBiZWVu
IHJlc29sdmVkIGF0IGRlc2lnbiB0aW1lLiBZb3UgY2FuIGZpbmQgdGhpcyBwcmVzZW50YXRpb24g
aW4gYXR0YWNobWVudC4NCj4+Pg0KPj4+IEJvdGggb2YgeW91ciBwcm9wb3NhbHMgbWFrZSBzZW5z
ZSB0byBtZSBidXQgSSBzdGlsbCBob3BlIHRoYXQgdGhlIGNsYXNoIGZpbGUgY2FuIGJlIGF2b2lk
ZWQgb3IgYmUgb3B0aW9uYWwuDQo+Pj4NCj4+DQo+Pg0KPj4gSSBhZ3JlZSB3ZSBzaG91bGQgbm90
IG5lZWQgdGhlIGNsaWVudCB0byByZXRyaWV2ZSB0aGUgcmVoYXNoIGluZm8gYmVmb3JlIHVzaW5n
IGEgc2VydmVyLg0KPj4gVGhlIENvTUkgYXV0aG9ycyBoYXZlIGRpc2N1c3NlZCBhIHNvbHV0aW9u
IHdoaWNoIEkgd2lsbCB0cnkgdG8gd3JpdGUgdXAgdG9kYXkgd2hlcmUgYSBzcGVjaWFsICJoYXNo
LWNsYXNoIiBlcnJvciBpcyByZXR1cm5lZCBieSBDb01JIGlmIGEgcmVoYXNoIGlzIG5lZWRlZC4N
Cj4+DQo+PiAgICAxKSBjbGllbnQgcmVxdWVzdHMgbW9kdWxlLUEgb2JqZWN0IHdpdGggaGFzaCAg
IjEyMzQiOw0KPj4gICAgICAgICB0aGVyZSBpcyBubyBleHRlbmRlZC1uYW1lL2xvY2FsLW5hbWUs
DQo+PiAgICAgICAgIGp1c3QgdGhlIFlBTkcgaGFzaCwgdXNlZCBpbiBhbnkgcmVxdWVzdA0KPj4N
Cj4+ICAgIDIpIGlmICcxMjM0JyBoYXMgYSBjb2xsaXNpb24gaW4gdGhpcyBzZXJ2ZXIgdGhlbiBh
IHNwZWNpYWwgZXJyb3IgY29kZSBpcyByZXR1cm5lZDsNCj4+ICAgICAgICBUaGUgcmV0dXJuIHBh
eWxvYWQgaGFzIHRoZSByZWhhc2ggaW5mbyBbb2xkLWhhc2gsIHsgbW9kdWxlLW5hbWUsIG5ldy1o
YXNoIH0rXQ0KPj4gICAgICAgICAgICB7ICIxMjM0IjogWw0KPj4gICAgICAgICAgICAgICAgICAg
Im1vZHVsZS1BIjoiNDU2NyIsDQo+PiAgICAgICAgICAgICAgICAgICAibW9kdWxlLVgiOiI2NTIz
Ig0KPj4gICAgICAgICAgICAgICBdDQo+PiAgICAgICAgICAgIH0NCj4+DQo+PiAgICAgMykgdGhl
IGNsaWVudCBnZXRzIHRoZSBlcnJvciBpbmZvLCBhbmQga25vd3Mgd2hpY2ggbW9kdWxlIGl0cyAi
MTIzNCIgaXMgZnJvbS4NCj4+ICAgICAgICAgIEl0IGZpbmRzIHRoZSBjb3JyZWN0IG1vZHVsZSBu
YW1lIGluIHRoZSBhcnJheSBhbmQgcmVwbGFjZXMgaXRzIG9sZC1oYXNoDQo+PiAgICAgICAgICB3
aXRoIHRoZSBuZXctaGFzaC4NCj4+DQo+PiAgICA0KSBjbGllbnQgcmUtc2VuZHMgdGhlIHJlcXVl
c3QsIHVzaW5nIGhhc2ggIjQ1NjciIGluc3RlYWQgb2YgIjEyMzQiDQo+Pg0KPj4gVGhlIHJlaGFz
aCB0YWJsZSBnb2VzIGF3YXksIGFuZCBvbmx5IHRoaXMgZXJyb3IgaW5mbyBpcyB1c2VkIGluc3Rl
YWQuDQo+Pg0KPj4+IE1pY2hlbCBWZWlsbGV0dGUNCj4+PiBTeXN0ZW0gQXJjaGl0ZWN0dXJlIERp
cmVjdG9yDQo+Pj4gVHJpbGxpYW50IEluYy4NCj4+PiBUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIz
Nw0KPj4+IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0KPj4+IHd3dy50cmlsbGlh
bnRpbmMuY29tDQo+Pj4NCj4+DQo+Pg0KPj4gQW5keQ0KPj4NCj4+Pg0KPj4+IC0tLS0tT3JpZ2lu
YWwgTWVzc2FnZS0tLS0tDQo+Pj4gRnJvbTogY29yZSBbbWFpbHRvOmNvcmUtYm91bmNlc0BpZXRm
Lm9yZ10gT24gQmVoYWxmIE9mIEFsZXhhbmRlciANCj4+PiBQZWxvdg0KPj4+IFNlbnQ6IDMganVp
biAyMDE1IDExOjAxDQo+Pj4gVG86IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KPj4+
IFN1YmplY3Q6IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQgWUFORyBo
YXNoIGluIFVSTA0KPj4+DQo+Pj4gSGVsbG8gZXZlcnlvbmUsDQo+Pj4NCj4+PiBJIHdvdWxkIGxp
a2UgdG8gZGlzY3VzcyB3aXRoIHlvdSB0byBpZGVhcy9wcm9wb3NhbHMgaW4gdGhpcyBtYWlsLCBu
YW1lbHk6DQo+Pj4gMSkgQ2FjaGluZyB0aGUgeWFuZyBjbGFzaCBmaWxlIG9uIGEgcmVtb3RlIHNl
cnZlcg0KPj4+IDIpIENvbXByZXNzaW5nIHRoZSBVUkwgcmVwcmVzZW50YXRpb24gb2YgWUFORyBo
YXNoZXMNCj4+Pg0KPj4+IDEpIENhY2hpbmcgdGhlIHlhbmcgY2xhc2ggZmlsZSBvbiBhIHJlbW90
ZSBzZXJ2ZXIgRXZlbiB0aG91Z2ggaGFzaCBjb2xsaXNpb25zIHNob3VsZCBoYXBwZW4gcmFyZWx5
IChpZiBldmVyKSwgdGhlcmUgbWF5IGJlIGNhc2VzIHdoZW4gaXQgY291bGQgYmUgaW5ldml0YWJs
ZSwgYW5kIGFzIHN1Y2gsIGl0IG1heSBiZSBpbnRlcmVzdGluZyB0byBjYWNoZSB0aGUgY2xhc2hf
ZmlsZSBzb21ld2hlcmUgb24gYSByZW1vdGUgc2VydmVyIHRvIGF2b2lkIHNlbmRpbmcgaXQgb3Zl
ciB0aGUgY29uc3RyYWluZWQgd2lyZWxlc3MgaW50ZXJmYWNlLiBJdCBjb3VsZCBiZSB1c2VkIGZv
ciBvdGhlciBjYXNlcywgd2hlcmUgc29tZSBmcmVxdWVudGx5IHVzZWQgcmVzb3VyY2VzIGFyZSBy
ZS1oYXNoZWQgZm9yIHBlcmZvcm1hbmNlIHB1cnBvc2VzLiBNYXliZSBpdCB3b3VsZCBiZSBpbnRl
cmVzdGluZyB0byBhbGxvdyB0aGUgc2VydmVyIHRvIHNwZWNpZnkgYSByZW1vdGUgbG9jYXRpb24g
Zm9yIHRoZSBjbGFzaCBmaWxlPyBGb3Igc3RhdGljIGNvbGxpc2lvbnMgb3Igb3B0aW1pemF0aW9u
cyBpdCBjb3VsZCBiZSB0aGF0IHRoZSBZQU5HIGRlZmluaXRpb24gaW5jbHVkZXMgYWx0ZXJuYXRp
dmUgaGFzaCB2YWx1ZXMsIHdoaWNoIGNvdWxkIGJlIHVzZWQgaW4gYWRkaXRpb24gdG8gdGhlIG5v
cm1hbCBvbmVzLg0KPj4+DQo+Pj4gMikgQ29tcHJlc3NpbmcgdGhlIFVSTCByZXByZXNlbnRhdGlv
biBvZiBZQU5HIGhhc2hlcyBBbm90aGVyIHBvaW50IA0KPj4+ICh3aGljaCBpcyB1bnJlbGF0ZWQp
LCBpcyB0byBlbGlkZSB0aGUgbGVhZGluZyAiQSJzIGZyb20gdGhlIGJhc2U2NCANCj4+PiByZXBy
ZXNlbnRhdGlvbiBvZiB0aGUgaGFzaCBpbiB0aGUgVVJMICh3aGljaCBjb3JyZXNwb25kcyB0byBl
bGlkaW5nIA0KPj4+IHRoZSBsZWFkaW5nIHplcm9lcyBmcm9tIHRoZSBoYXNoKS4gQXMgc3BlY2lm
aWVkIGluIHNlY3Rpb24gNS40LiBhIA0KPj4+IGhhc2ggdmFsdWUgb2YgMHgwMDAwMDA3ZSB3aWxs
IGJlIGVuY29kZWQgYXMgQUFBQV8sIGJ1dCBpZiB0aGUgDQo+Pj4gbGVhZGluZyBB4oCZcyBhcmUg
ZWxpZGVkIGl0IHdpbGwgYmUgc2ltcGx5IF8NCj4+Pg0KPj4+IFRoaXMgY291bGQgcG9zZSBwcm9i
bGVtcyBvbmx5IGlmIGluIHRoZSBmdXR1cmUgdGhlIHNpemUgb2YgdGhlIGhhc2ggdmFsdWVzIGlz
IGluY3JlYXNlZCBmcm9tIDMwIGJpdHMgdG8gc29tZSBvdGhlciAoaGlnaGVyKSB2YWx1ZS4NCj4+
Pg0KPj4+IFRoaXMsIGhvd2V2ZXIsIGNvdWxkIGJlIHZlcnkgdXNlZnVsIHdoZW4gaGF2aW5nIHRv
IGZyZXF1ZW50bHkgYWNjZXNzIA0KPj4+IHRoZSBzYW1lIHJlc291cmNlLiBJbiBzdWNoIGNhc2Us
IHRoZSBzZXJ2ZXIvbmV0d29yayBvcGVyYXRvciBtYXkgDQo+Pj4gZGVjaWRlIHRvIHJlLWhhc2gg
dGhlIFVSSSB0byBhIHNob3J0ZXIgdmVyc2lvbiwgZS5nLiB0aGUgDQo+Pj4gL3N5czpzeXN0ZW0t
c3RhdGUvc3lzOmNsb2NrL3N5czpjdXJyZW50LWRhdGV0aW1lIGNvdWxkIGJlIHJlbWFwcGVkIA0K
Pj4+IGZyb20gMHgxNTM3MDQwOCBhbmQgVk53UUkgdG8gMHgxIGFuZCBfDQo+Pj4NCj4+PiBCZXN0
LA0KPj4+IEFsZXgNCj4+Pg0KPj4+IFBTLg0KPj4+IEEgdHlwbyAoPyksIHdoaWNoIG1heSBiZSBh
bHJlYWR5IGNvcnJlY3RlZCwgaW4gdGhlIGV4YW1wbGUgb2YgbW9kLnVyaSBvbiBQYWdlIDI2OiB0
aGUgdHdvIHJlc3BvbnNlcyBoYXZlIGRpZmZlcmVudCBzY2hlbWUgIm1vZC51cmkiIGFuZCAibW9k
dXJpIg0KPj4+DQo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18NCj4+PiBjb3JlIG1haWxpbmcgbGlzdA0KPj4+IGNvcmVAaWV0Zi5vcmcNCj4+PiBodHRw
czovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2NvcmUNCj4+Pg0KPj4+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pj4gY29yZSBtYWlsaW5n
IGxpc3QNCj4+PiBjb3JlQGlldGYub3JnDQo+Pj4gaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1h
bi9saXN0aW5mby9jb3JlDQo+Pj4NCg==


From nobody Thu Jun  4 08:36:42 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8F4331A8A3F for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 08:36:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.475
X-Spam-Level: **
X-Spam-Status: No, score=2.475 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IcJQLBRm5Y8j for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 08:36:37 -0700 (PDT)
Received: from mail-la0-f47.google.com (mail-la0-f47.google.com [209.85.215.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 74D3B1A8A41 for <core@ietf.org>; Thu,  4 Jun 2015 08:36:36 -0700 (PDT)
Received: by labko7 with SMTP id ko7so34824122lab.2 for <core@ietf.org>; Thu, 04 Jun 2015 08:36:34 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=JmHYGpxFhd+yCjzRZZCtDPoFSks/poJOxGtj1CRv7bI=; b=F5uZMZTI0e4WpxdWWxoppQoRLjlqIAf8SdZn0dfr4a4pqZFqbpZ9yyPDWlvToHVxMj 82Z7KrJSSL8N2DngakyQ7vHPghOkCpYyHeDCHFKzRiWQhyHoTjXzcANFva/wPEhodlFm o5EeTho697X+eFjK4uR+i/tQ2R/6jUwroQKWZXKHhbCyD7KBx6Avz/VDbhb9j2VxXbMi 2IDMG32Ti0ueqzRvTSXTK8ZfURTdzbciZFmUh61k7MmZQlP860f/d2qNs0DhgMzOjg0X 7fbqRrMNe2uikTR6wQX2DWBh00Sf3msBfjEIq+EALb5diz6Sb4IQr67ecMVFaI0jjODg /flg==
X-Gm-Message-State: ALoCoQmDW52blZYyRUncCQwKsyGeszj4bPoPC28OvS7TAMMt1anmPvtS4PNDk/g6dad1aaY0Wm1D
MIME-Version: 1.0
X-Received: by 10.152.116.49 with SMTP id jt17mr37904757lab.82.1433432194767;  Thu, 04 Jun 2015 08:36:34 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Thu, 4 Jun 2015 08:36:34 -0700 (PDT)
In-Reply-To: <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Thu, 4 Jun 2015 08:36:34 -0700
Message-ID: <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/DaablhYjY_01DnAqdfT0s50hrlQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 15:36:40 -0000

Hi,

I do not agree that the module name or a module ID needs to be
used at all in the object identifier.  Each object has a YANG Hash.
Retrieving a node, whether by hash ID or module-ID.hash will
cause all descendant nodes to be included in the retrieval,
even if they are augmenting nodes from another module.

YANG data is hierarchical.
The modules are just packaging for definitions.
They do not define any containment or structure
within the conceptual schema tree.


Andy


On Thu, Jun 4, 2015 at 8:21 AM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> Hi Andy
>
> About "Almost -- this is defined in RFC 6020 -- the augmenting nodes are =
not part of the augmented module.  They will be returned in NETCONF and RES=
TCONF retrieval operations for an ancestor node but they are not part of th=
e augmented module.  Only objects defined in the module namespace are part =
of the module."
>
> Understood, this is why my contribution introduce the new term, "Module c=
ontext". Augmenting nodes are not part of the augmented module but, as defi=
ned, are part of the "Module context". This new concept was require to mini=
mize the overhead when retrieving the complete datastore containing multipl=
e module contexts with some having augmenting nodes.
>
>    RES: 2.05 Content (Content-Format: application/cbor)
>    {
>       "a" : {
>          365257235 : "leafA1 value",
>          702149626 : {
>             215993329 : "leafA2 value",
>             962191682 : "leafC1 value"                    # Augmenting da=
ta node
>          },
>          829222983 : "leafS value"                         # Sub-module d=
ata node
>       },
>       "b" : {
>          289564696 : "leafB value"
>       },
>       "c" : {
>          993533527 : "leafC2 value"
>       }
>    }
>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: 3 juin 2015 17:38
> To: Michel Veillette
> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>
> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette <Michel.Veillette@trill=
iantinc.com> wrote:
>> About "I would prefer if hash collisions in a single module were not all=
owed."
>> Agreed but how this is implemented.
>>
>
>
> By checking the YANG hashes before it is published, similar to checking t=
he YANG syntax with a YANG compiler.
>
>
>> About "But these numbers do not exist in any modules and so they cannot =
be relied on in CoMI.
>> I understand but I assume that a module can be re-published with the add=
ed statement when require. If a CoMI implementer try to implement a module =
containing a clash, he can look for a version of this module containing the=
 special YANG statement. The likelihood of such clash is extremely low and =
such fallback solution won=E2=80=99t be required often. However, the RFC wi=
ll specify how to resolve such situation if this ever happen. This statemen=
t can also be used to address the need for data node identifier compactness=
 as mentioned by Alexander in its original email.
>>
>
> I think the ad-hoc id assignments are pointless because they are not univ=
ersal.  The only thing that can be counted on is the module name and the XP=
ath absolute path expression of each object.
>
>
>> About "In NETCONF, modules tend to use augment a lot"
>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I propose a =
new definition to address this.
>>
>
> What is it?
> IMO you should post comments to the mailing list not markup to a word doc=
ument.  It is too hard to follow.
>
>
>> Module Context: A module context is composed of all data nodes, notifica=
tions and RPCs defined in a YANG module and included sub-modules or added t=
o them using the augment YANG statement.
>>
>
> Almost -- this is defined in RFC 6020 -- the augmenting nodes are not par=
t of the augmented module.  They will be returned in NETCONF and RESTCONF r=
etrieval operations for an ancestor node but they are not part of the augme=
nted module.  Only objects defined in the module namespace are part of the =
module.
>
>
> Andy
>
>
>
>> Section 4.1.3.4 show an example of include, import and augment.
>>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>> -----Original Message-----
>> From: Andy Bierman [mailto:andy@yumaworks.com]
>> Sent: 3 juin 2015 14:54
>> To: Michel Veillette
>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>>
>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette <Michel.Veillette@tril=
liantinc.com> wrote:
>>> Hi Andy
>>>
>>> Couple of questions about your proposed solution.
>>>
>>> =3D=3D=3D Question #1, New YANG statement
>>>
>>> Your solution works only if hash clashes within a module are resolved a=
t design time. If not, the error message will return the following informat=
ion which is not sufficient to resolve which data node is which.
>>>
>>>    { "1234": [
>>>           "module-A":"4567",
>>>           "module-A":"6523"
>>>       ]
>>>    }
>>>
>>
>>
>> The original proposal had a 3-tuple { module-name, path-expr, new-hash }=
 We discussed some optimizations in the 6TISCH call to reduce the size of t=
he path-expr and still not require the client to store all the path strings=
, such as store a few bytes from the path strings like 6th and 11th bytes (=
Avoid the common ietf- prefix for many module names).
>>
>> This is not deterministic. Only the full path string is fool-proof.
>> I would prefer if hash collisions in a single module were not allowed.
>> They need to be resolved at design time.  If this is not possible, then =
a standard rehash algorithm should be used so the collision is resolved in =
a predictable way.  e.g., try appending "_", then try "__", etc.
>> The result would be that hash collisions in a single module do not occur=
 in CoMI.
>>
>>
>>> Is it possible/acceptable to request a new YANG statement to manually a=
ssign a ID to a data node?
>>> Same question for a module ID?
>>>
>>> For example (see "id 16" and "id 25" bellow) :
>>>
>>>    module a {
>>>       namespace a-ns;
>>>       prefix a;
>>>       id 16;
>>>       revision 2015-01-01;
>>>
>>>       leaf leafA1 { type string; id 25 }
>>>       container containerA {
>>>          leaf leafA2 { type string}
>>>       }
>>>    }
>>
>>
>> You could have an extension statement do anything you want:
>>
>>     comi:id  16;
>>
>> But these numbers do not exist any any modules and so they cannot be rel=
ied on in CoMI.
>>
>>
>>>
>>> =3D=3D=3D Question #2, Introduction of an optional query parameter used=
 to
>>> target a specific module
>>>
>>> For nodes / networks which can afford a slitely larger payload (IEEE 80=
2.15.4g for example) but want to avoid the processing and storage associate=
d with the porposed error message, are you opposed to the support of an opt=
ional CoAP query parameter use carry the module name or module ID ?
>>>
>>> For example:
>>>
>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>
>>> =3D=3D=3D Question #3, Use of the select query parameter instead of the=
 URI
>>>
>>> Are you oposed to the use of the select query parameter instead of
>>> the URI to identify data node(s)
>>>
>>
>> Not really.
>>
>> I don't know how mixed the modules will get in CoMI.
>> In NETCONF, modules tend to use augment a lot, so the nodes from 'module=
-A' may be nested nodes.
>> Retrieving just the augmenting nodes and ignoring the augmented nodes wo=
uld likely be operationally useless.
>> e.g., when augmenting a list, the key leafs are needed to identify the i=
nstance.
>>
>> I would like to keep CoMI extremely simple.
>> More bells and whistles means increased memory and CPU requirements. I
>> am glad CORE and 6TISCH WGs are so concerned about constrained resources=
.
>> Only the most important bells and whistles will get standardized.
>>
>>
>>> For example:
>>>
>>> GET example.com/mg?select=3DY8d7s
>>> GET example.com/mg?select=3DY8d7s,NKHaA GET
>>> example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>
>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>
>>> Are you oposed to the compression of the base64 representation as props=
ed by Alexander.
>>>
>>
>> No.  Optimizations that reduce the encoding size are important.
>> I want to use standard CBOR.  No special hacks just for CoMI.
>>
>>> For example:
>>>
>>> GET example.com/mg?select=3D7s
>>> Instead of
>>> GET example.com/mg?select=3D AAA7s
>>>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>
>>>
>>
>> Andy
>>
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 3 juin 2015 13:09
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in
>>> URL
>>>
>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette <Michel.Veillette@tril=
liantinc.com> wrote:
>>>> Hi Alexander
>>>>
>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented to =
the hash clashes problem. Two based on a rehash table and two based on a ne=
w CoAP query parameter carrying the module name or registered module ID. Th=
is query parameter is used to select unambiguously the targeted data node(s=
) assuming that any hash collision within a module have been resolved at de=
sign time. You can find this presentation in attachment.
>>>>
>>>> Both of your proposals make sense to me but I still hope that the clas=
h file can be avoided or be optional.
>>>>
>>>
>>>
>>> I agree we should not need the client to retrieve the rehash info befor=
e using a server.
>>> The CoMI authors have discussed a solution which I will try to write up=
 today where a special "hash-clash" error is returned by CoMI if a rehash i=
s needed.
>>>
>>>    1) client requests module-A object with hash  "1234";
>>>         there is no extended-name/local-name,
>>>         just the YANG hash, used in any request
>>>
>>>    2) if '1234' has a collision in this server then a special error cod=
e is returned;
>>>        The return payload has the rehash info [old-hash, { module-name,=
 new-hash }+]
>>>            { "1234": [
>>>                   "module-A":"4567",
>>>                   "module-X":"6523"
>>>               ]
>>>            }
>>>
>>>     3) the client gets the error info, and knows which module its "1234=
" is from.
>>>          It finds the correct module name in the array and replaces its=
 old-hash
>>>          with the new-hash.
>>>
>>>    4) client re-sends the request, using hash "4567" instead of "1234"
>>>
>>> The rehash table goes away, and only this error info is used instead.
>>>
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>
>>>
>>>
>>> Andy
>>>
>>>>
>>>> -----Original Message-----
>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>>> Pelov
>>>> Sent: 3 juin 2015 11:01
>>>> To: 6tisch@ietf.org; core@ietf.org
>>>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>>>
>>>> Hello everyone,
>>>>
>>>> I would like to discuss with you to ideas/proposals in this mail, name=
ly:
>>>> 1) Caching the yang clash file on a remote server
>>>> 2) Compressing the URL representation of YANG hashes
>>>>
>>>> 1) Caching the yang clash file on a remote server Even though hash col=
lisions should happen rarely (if ever), there may be cases when it could be=
 inevitable, and as such, it may be interesting to cache the clash_file som=
ewhere on a remote server to avoid sending it over the constrained wireless=
 interface. It could be used for other cases, where some frequently used re=
sources are re-hashed for performance purposes. Maybe it would be interesti=
ng to allow the server to specify a remote location for the clash file? For=
 static collisions or optimizations it could be that the YANG definition in=
cludes alternative hash values, which could be used in addition to the norm=
al ones.
>>>>
>>>> 2) Compressing the URL representation of YANG hashes Another point
>>>> (which is unrelated), is to elide the leading "A"s from the base64
>>>> representation of the hash in the URL (which corresponds to eliding
>>>> the leading zeroes from the hash). As specified in section 5.4. a
>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the
>>>> leading A=E2=80=99s are elided it will be simply _
>>>>
>>>> This could pose problems only if in the future the size of the hash va=
lues is increased from 30 bits to some other (higher) value.
>>>>
>>>> This, however, could be very useful when having to frequently access
>>>> the same resource. In such case, the server/network operator may
>>>> decide to re-hash the URI to a shorter version, e.g. the
>>>> /sys:system-state/sys:clock/sys:current-datetime could be remapped
>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>
>>>> Best,
>>>> Alex
>>>>
>>>> PS.
>>>> A typo (?), which may be already corrected, in the example of mod.uri =
on Page 26: the two responses have different scheme "mod.uri" and "moduri"
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>


From nobody Thu Jun  4 09:05:01 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DCFB61A90F0; Thu,  4 Jun 2015 09:04:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.552
X-Spam-Level: **
X-Spam-Status: No, score=2.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id INvh8IkvZPit; Thu,  4 Jun 2015 09:04:49 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0711.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:711]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B48421B3301; Thu,  4 Jun 2015 09:04:48 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB791.namprd06.prod.outlook.com (10.141.247.143) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 16:04:26 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 4 Jun 2015 16:04:26 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQCAACQjAIABEVbQgAAcJwCAAAEG4A==
Date: Thu, 4 Jun 2015 16:04:26 +0000
Message-ID: <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com>
In-Reply-To: <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB791;
x-microsoft-antispam-prvs: <CO2PR0601MB791B470A1020E6628A48F0EFEB30@CO2PR0601MB791.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB791; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB791; 
x-forefront-prvs: 0597911EE1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(38414003)(53754006)(13464003)(24454002)(51704005)(189002)(377454003)(377424004)(199003)(106356001)(2900100001)(86362001)(19580405001)(15974865002)(5890100001)(93886004)(66066001)(64706001)(122556002)(5002640100001)(46102003)(19580395003)(77156002)(68736005)(87936001)(92566002)(77096005)(2656002)(40100003)(561944003)(62966003)(189998001)(54356999)(33656002)(76176999)(5001830100001)(15975445007)(2950100001)(5001860100001)(5001960100002)(74316001)(101416001)(81156007)(110136002)(99286002)(76576001)(102836002)(50986999)(105586002)(106116001)(4001540100001)(97736004); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB791; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2015 16:04:26.4965 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB791
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/PQaXg8ru-X7VjNIyBDBf_P3yZDQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 16:04:52 -0000

SGkgQW5keSwNCg0KSnVzdCB0byBiZSBzdXJlIGFib3V0IHRoZSBzY29wZSBvZiB5b3VyIGNvbW1l
bnQuDQoNCllvdSBzYXkgIiBFYWNoIG9iamVjdCBoYXMgYSBZQU5HIEhhc2giLCB5ZXMgYnV0IHRo
aXMgaXMgbm90IGEgdW5pcXVlbHkgb2JqZWN0IGlkZW50aWZ5Lg0KRGlkIHdlIHJlYWNoIGEgY29u
c2Vuc3VzIGFib3V0IHVzaW5nIHRoZSAgIiBZQU5HIGhhc2giICsgIm1vZHVsZSBuYW1lIG9yIGEg
bW9kdWxlIElEIiBhcyBhIHVuaXF1ZSBkYXRhIG5vZGUgKG9iamVjdCkgaWRlbnRpZmllcj8NCg0K
VGhpcyBjYW4gdGFrZSB0aGUgZm9ybSBvZiBhIHJlaGFzaCB0YWJsZSBhdmFpbGFibGUgb24gdGhl
IENvTUkgc2VydmVyIG9yIGVsc2V3aGVyZSAoIiBZQU5HIGhhc2giLCAibW9kdWxlIG5hbWUgb3Ig
bW9kdWxlIElEIiwgInJlaGFzaCBvciBhbGlhcyIpDQpUaGlzIGNhbiB0YWtlIHRoZSBmb3JtIG9m
IGFuIGVycm9yIG1lc3NhZ2UgY29udGFpbmluZyAoIiBZQU5HIGhhc2giLCAibW9kdWxlIG5hbWUg
b3IgbW9kdWxlIElEIiwgInJlaGFzaCBvciBhbGlhcyIpDQpUaGlzIGNhbiB0YWtlIHRoZSBmb3Jt
IG9mIGEgZnVsbHkgcXVhbGlmaWVkIGlkZW50aWZpZXIgd2l0aGluIHRoZSByZXF1ZXN0IG9yIHBh
eWxvYWQgKFJFUTogR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdCg8bW9kdWxlIG5hbWU+LjxZQU5H
IGhhc2g+KQ0KDQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9y
DQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWls
bGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0Kd3d3LnRyaWxsaWFudGluYy5jb20gwqAgDQoNCg0KLS0t
LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlA
eXVtYXdvcmtzLmNvbV0gDQpTZW50OiA0IGp1aW4gMjAxNSAxMTozNw0KVG86IE1pY2hlbCBWZWls
bGV0dGUNCkNjOiBBbGV4YW5kZXIgUGVsb3Y7IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9y
Zw0KU3ViamVjdDogUmU6IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQg
WUFORyBoYXNoIGluIFVSTA0KDQpIaSwNCg0KSSBkbyBub3QgYWdyZWUgdGhhdCB0aGUgbW9kdWxl
IG5hbWUgb3IgYSBtb2R1bGUgSUQgbmVlZHMgdG8gYmUgdXNlZCBhdCBhbGwgaW4gdGhlIG9iamVj
dCBpZGVudGlmaWVyLiAgRWFjaCBvYmplY3QgaGFzIGEgWUFORyBIYXNoLg0KUmV0cmlldmluZyBh
IG5vZGUsIHdoZXRoZXIgYnkgaGFzaCBJRCBvciBtb2R1bGUtSUQuaGFzaCB3aWxsIGNhdXNlIGFs
bCBkZXNjZW5kYW50IG5vZGVzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZXRyaWV2YWwsIGV2ZW4g
aWYgdGhleSBhcmUgYXVnbWVudGluZyBub2RlcyBmcm9tIGFub3RoZXIgbW9kdWxlLg0KDQpZQU5H
IGRhdGEgaXMgaGllcmFyY2hpY2FsLg0KVGhlIG1vZHVsZXMgYXJlIGp1c3QgcGFja2FnaW5nIGZv
ciBkZWZpbml0aW9ucy4NClRoZXkgZG8gbm90IGRlZmluZSBhbnkgY29udGFpbm1lbnQgb3Igc3Ry
dWN0dXJlIHdpdGhpbiB0aGUgY29uY2VwdHVhbCBzY2hlbWEgdHJlZS4NCg0KDQpBbmR5DQoNCg0K
T24gVGh1LCBKdW4gNCwgMjAxNSBhdCA4OjIxIEFNLCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwu
VmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+IHdyb3RlOg0KPiBIaSBBbmR5DQo+DQo+IEFib3V0
ICJBbG1vc3QgLS0gdGhpcyBpcyBkZWZpbmVkIGluIFJGQyA2MDIwIC0tIHRoZSBhdWdtZW50aW5n
IG5vZGVzIGFyZSBub3QgcGFydCBvZiB0aGUgYXVnbWVudGVkIG1vZHVsZS4gIFRoZXkgd2lsbCBi
ZSByZXR1cm5lZCBpbiBORVRDT05GIGFuZCBSRVNUQ09ORiByZXRyaWV2YWwgb3BlcmF0aW9ucyBm
b3IgYW4gYW5jZXN0b3Igbm9kZSBidXQgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhlIGF1Z21lbnRl
ZCBtb2R1bGUuICBPbmx5IG9iamVjdHMgZGVmaW5lZCBpbiB0aGUgbW9kdWxlIG5hbWVzcGFjZSBh
cmUgcGFydCBvZiB0aGUgbW9kdWxlLiINCj4NCj4gVW5kZXJzdG9vZCwgdGhpcyBpcyB3aHkgbXkg
Y29udHJpYnV0aW9uIGludHJvZHVjZSB0aGUgbmV3IHRlcm0sICJNb2R1bGUgY29udGV4dCIuIEF1
Z21lbnRpbmcgbm9kZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBhdWdtZW50ZWQgbW9kdWxlIGJ1dCwg
YXMgZGVmaW5lZCwgYXJlIHBhcnQgb2YgdGhlICJNb2R1bGUgY29udGV4dCIuIFRoaXMgbmV3IGNv
bmNlcHQgd2FzIHJlcXVpcmUgdG8gbWluaW1pemUgdGhlIG92ZXJoZWFkIHdoZW4gcmV0cmlldmlu
ZyB0aGUgY29tcGxldGUgZGF0YXN0b3JlIGNvbnRhaW5pbmcgbXVsdGlwbGUgbW9kdWxlIGNvbnRl
eHRzIHdpdGggc29tZSBoYXZpbmcgYXVnbWVudGluZyBub2Rlcy4NCj4NCj4gICAgUkVTOiAyLjA1
IENvbnRlbnQgKENvbnRlbnQtRm9ybWF0OiBhcHBsaWNhdGlvbi9jYm9yKQ0KPiAgICB7DQo+ICAg
ICAgICJhIiA6IHsNCj4gICAgICAgICAgMzY1MjU3MjM1IDogImxlYWZBMSB2YWx1ZSIsDQo+ICAg
ICAgICAgIDcwMjE0OTYyNiA6IHsNCj4gICAgICAgICAgICAgMjE1OTkzMzI5IDogImxlYWZBMiB2
YWx1ZSIsDQo+ICAgICAgICAgICAgIDk2MjE5MTY4MiA6ICJsZWFmQzEgdmFsdWUiICAgICAgICAg
ICAgICAgICAgICAjIEF1Z21lbnRpbmcgZGF0YSBub2RlDQo+ICAgICAgICAgIH0sDQo+ICAgICAg
ICAgIDgyOTIyMjk4MyA6ICJsZWFmUyB2YWx1ZSIgICAgICAgICAgICAgICAgICAgICAgICAgIyBT
dWItbW9kdWxlIGRhdGEgbm9kZQ0KPiAgICAgICB9LA0KPiAgICAgICAiYiIgOiB7DQo+ICAgICAg
ICAgIDI4OTU2NDY5NiA6ICJsZWFmQiB2YWx1ZSINCj4gICAgICAgfSwNCj4gICAgICAgImMiIDog
ew0KPiAgICAgICAgICA5OTM1MzM1MjcgOiAibGVhZkMyIHZhbHVlIg0KPiAgICAgICB9DQo+ICAg
IH0NCj4NCj4gTWljaGVsIFZlaWxsZXR0ZQ0KPiBTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9y
DQo+IFRyaWxsaWFudCBJbmMuDQo+IFRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQo+IG1pY2hl
bC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0KPiB3d3cudHJpbGxpYW50aW5jLmNvbQ0KPg0K
Pg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmR5IEJpZXJtYW4gW21h
aWx0bzphbmR5QHl1bWF3b3Jrcy5jb21dDQo+IFNlbnQ6IDMganVpbiAyMDE1IDE3OjM4DQo+IFRv
OiBNaWNoZWwgVmVpbGxldHRlDQo+IENjOiBBbGV4YW5kZXIgUGVsb3Y7IDZ0aXNjaEBpZXRmLm9y
ZzsgY29yZUBpZXRmLm9yZw0KPiBTdWJqZWN0OiBSZTogW2NvcmVdIENvTUkgcmVtb3RlIHNlcnZl
ciBjbGFzaCBmaWxlIGFuZCBZQU5HIGhhc2ggaW4gVVJMDQo+DQo+IE9uIFdlZCwgSnVuIDMsIDIw
MTUgYXQgMTI6NDggUE0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxp
YW50aW5jLmNvbT4gd3JvdGU6DQo+PiBBYm91dCAiSSB3b3VsZCBwcmVmZXIgaWYgaGFzaCBjb2xs
aXNpb25zIGluIGEgc2luZ2xlIG1vZHVsZSB3ZXJlIG5vdCBhbGxvd2VkLiINCj4+IEFncmVlZCBi
dXQgaG93IHRoaXMgaXMgaW1wbGVtZW50ZWQuDQo+Pg0KPg0KPg0KPiBCeSBjaGVja2luZyB0aGUg
WUFORyBoYXNoZXMgYmVmb3JlIGl0IGlzIHB1Ymxpc2hlZCwgc2ltaWxhciB0byBjaGVja2luZyB0
aGUgWUFORyBzeW50YXggd2l0aCBhIFlBTkcgY29tcGlsZXIuDQo+DQo+DQo+PiBBYm91dCAiQnV0
IHRoZXNlIG51bWJlcnMgZG8gbm90IGV4aXN0IGluIGFueSBtb2R1bGVzIGFuZCBzbyB0aGV5IGNh
bm5vdCBiZSByZWxpZWQgb24gaW4gQ29NSS4NCj4+IEkgdW5kZXJzdGFuZCBidXQgSSBhc3N1bWUg
dGhhdCBhIG1vZHVsZSBjYW4gYmUgcmUtcHVibGlzaGVkIHdpdGggdGhlIGFkZGVkIHN0YXRlbWVu
dCB3aGVuIHJlcXVpcmUuIElmIGEgQ29NSSBpbXBsZW1lbnRlciB0cnkgdG8gaW1wbGVtZW50IGEg
bW9kdWxlIGNvbnRhaW5pbmcgYSBjbGFzaCwgaGUgY2FuIGxvb2sgZm9yIGEgdmVyc2lvbiBvZiB0
aGlzIG1vZHVsZSBjb250YWluaW5nIHRoZSBzcGVjaWFsIFlBTkcgc3RhdGVtZW50LiBUaGUgbGlr
ZWxpaG9vZCBvZiBzdWNoIGNsYXNoIGlzIGV4dHJlbWVseSBsb3cgYW5kIHN1Y2ggZmFsbGJhY2sg
c29sdXRpb24gd29u4oCZdCBiZSByZXF1aXJlZCBvZnRlbi4gSG93ZXZlciwgdGhlIFJGQyB3aWxs
IHNwZWNpZnkgaG93IHRvIHJlc29sdmUgc3VjaCBzaXR1YXRpb24gaWYgdGhpcyBldmVyIGhhcHBl
bi4gVGhpcyBzdGF0ZW1lbnQgY2FuIGFsc28gYmUgdXNlZCB0byBhZGRyZXNzIHRoZSBuZWVkIGZv
ciBkYXRhIG5vZGUgaWRlbnRpZmllciBjb21wYWN0bmVzcyBhcyBtZW50aW9uZWQgYnkgQWxleGFu
ZGVyIGluIGl0cyBvcmlnaW5hbCBlbWFpbC4NCj4+DQo+DQo+IEkgdGhpbmsgdGhlIGFkLWhvYyBp
ZCBhc3NpZ25tZW50cyBhcmUgcG9pbnRsZXNzIGJlY2F1c2UgdGhleSBhcmUgbm90IHVuaXZlcnNh
bC4gIFRoZSBvbmx5IHRoaW5nIHRoYXQgY2FuIGJlIGNvdW50ZWQgb24gaXMgdGhlIG1vZHVsZSBu
YW1lIGFuZCB0aGUgWFBhdGggYWJzb2x1dGUgcGF0aCBleHByZXNzaW9uIG9mIGVhY2ggb2JqZWN0
Lg0KPg0KPg0KPj4gQWJvdXQgIkluIE5FVENPTkYsIG1vZHVsZXMgdGVuZCB0byB1c2UgYXVnbWVu
dCBhIGxvdCINCj4+IEluIG15IGRvY3VtZW50ICIgZHJhZnQtdmFuZGVyc3Rvay1jb3JlLWNvbWkt
MDYgLSBNVi5kb2N4ICIsIEkgcHJvcG9zZSBhIG5ldyBkZWZpbml0aW9uIHRvIGFkZHJlc3MgdGhp
cy4NCj4+DQo+DQo+IFdoYXQgaXMgaXQ/DQo+IElNTyB5b3Ugc2hvdWxkIHBvc3QgY29tbWVudHMg
dG8gdGhlIG1haWxpbmcgbGlzdCBub3QgbWFya3VwIHRvIGEgd29yZCBkb2N1bWVudC4gIEl0IGlz
IHRvbyBoYXJkIHRvIGZvbGxvdy4NCj4NCj4NCj4+IE1vZHVsZSBDb250ZXh0OiBBIG1vZHVsZSBj
b250ZXh0IGlzIGNvbXBvc2VkIG9mIGFsbCBkYXRhIG5vZGVzLCBub3RpZmljYXRpb25zIGFuZCBS
UENzIGRlZmluZWQgaW4gYSBZQU5HIG1vZHVsZSBhbmQgaW5jbHVkZWQgc3ViLW1vZHVsZXMgb3Ig
YWRkZWQgdG8gdGhlbSB1c2luZyB0aGUgYXVnbWVudCBZQU5HIHN0YXRlbWVudC4NCj4+DQo+DQo+
IEFsbW9zdCAtLSB0aGlzIGlzIGRlZmluZWQgaW4gUkZDIDYwMjAgLS0gdGhlIGF1Z21lbnRpbmcg
bm9kZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBhdWdtZW50ZWQgbW9kdWxlLiAgVGhleSB3aWxsIGJl
IHJldHVybmVkIGluIE5FVENPTkYgYW5kIFJFU1RDT05GIHJldHJpZXZhbCBvcGVyYXRpb25zIGZv
ciBhbiBhbmNlc3RvciBub2RlIGJ1dCB0aGV5IGFyZSBub3QgcGFydCBvZiB0aGUgYXVnbWVudGVk
IG1vZHVsZS4gIE9ubHkgb2JqZWN0cyBkZWZpbmVkIGluIHRoZSBtb2R1bGUgbmFtZXNwYWNlIGFy
ZSBwYXJ0IG9mIHRoZSBtb2R1bGUuDQo+DQo+DQo+IEFuZHkNCj4NCj4NCj4NCj4+IFNlY3Rpb24g
NC4xLjMuNCBzaG93IGFuIGV4YW1wbGUgb2YgaW5jbHVkZSwgaW1wb3J0IGFuZCBhdWdtZW50Lg0K
Pj4NCj4+IE1pY2hlbCBWZWlsbGV0dGUNCj4+IFN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3IN
Cj4+IFRyaWxsaWFudCBJbmMuDQo+PiBUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KPj4gbWlj
aGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+PiB3d3cudHJpbGxpYW50aW5jLmNvbQ0K
Pj4NCj4+DQo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogQW5keSBCaWVy
bWFuIFttYWlsdG86YW5keUB5dW1hd29ya3MuY29tXQ0KPj4gU2VudDogMyBqdWluIDIwMTUgMTQ6
NTQNCj4+IFRvOiBNaWNoZWwgVmVpbGxldHRlDQo+PiBDYzogQWxleGFuZGVyIFBlbG92OyA2dGlz
Y2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5vcmcNCj4+IFN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSBy
ZW1vdGUgc2VydmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiANCj4+IFVSTA0KPj4NCj4+
IE9uIFdlZCwgSnVuIDMsIDIwMTUgYXQgMTE6MTYgQU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hl
bC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4gd3JvdGU6DQo+Pj4gSGkgQW5keQ0KPj4+DQo+
Pj4gQ291cGxlIG9mIHF1ZXN0aW9ucyBhYm91dCB5b3VyIHByb3Bvc2VkIHNvbHV0aW9uLg0KPj4+
DQo+Pj4gPT09IFF1ZXN0aW9uICMxLCBOZXcgWUFORyBzdGF0ZW1lbnQNCj4+Pg0KPj4+IFlvdXIg
c29sdXRpb24gd29ya3Mgb25seSBpZiBoYXNoIGNsYXNoZXMgd2l0aGluIGEgbW9kdWxlIGFyZSBy
ZXNvbHZlZCBhdCBkZXNpZ24gdGltZS4gSWYgbm90LCB0aGUgZXJyb3IgbWVzc2FnZSB3aWxsIHJl
dHVybiB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIHdoaWNoIGlzIG5vdCBzdWZmaWNpZW50IHRv
IHJlc29sdmUgd2hpY2ggZGF0YSBub2RlIGlzIHdoaWNoLg0KPj4+DQo+Pj4gICAgeyAiMTIzNCI6
IFsNCj4+PiAgICAgICAgICAgIm1vZHVsZS1BIjoiNDU2NyIsDQo+Pj4gICAgICAgICAgICJtb2R1
bGUtQSI6IjY1MjMiDQo+Pj4gICAgICAgXQ0KPj4+ICAgIH0NCj4+Pg0KPj4NCj4+DQo+PiBUaGUg
b3JpZ2luYWwgcHJvcG9zYWwgaGFkIGEgMy10dXBsZSB7IG1vZHVsZS1uYW1lLCBwYXRoLWV4cHIs
IG5ldy1oYXNoIH0gV2UgZGlzY3Vzc2VkIHNvbWUgb3B0aW1pemF0aW9ucyBpbiB0aGUgNlRJU0NI
IGNhbGwgdG8gcmVkdWNlIHRoZSBzaXplIG9mIHRoZSBwYXRoLWV4cHIgYW5kIHN0aWxsIG5vdCBy
ZXF1aXJlIHRoZSBjbGllbnQgdG8gc3RvcmUgYWxsIHRoZSBwYXRoIHN0cmluZ3MsIHN1Y2ggYXMg
c3RvcmUgYSBmZXcgYnl0ZXMgZnJvbSB0aGUgcGF0aCBzdHJpbmdzIGxpa2UgNnRoIGFuZCAxMXRo
IGJ5dGVzIChBdm9pZCB0aGUgY29tbW9uIGlldGYtIHByZWZpeCBmb3IgbWFueSBtb2R1bGUgbmFt
ZXMpLg0KPj4NCj4+IFRoaXMgaXMgbm90IGRldGVybWluaXN0aWMuIE9ubHkgdGhlIGZ1bGwgcGF0
aCBzdHJpbmcgaXMgZm9vbC1wcm9vZi4NCj4+IEkgd291bGQgcHJlZmVyIGlmIGhhc2ggY29sbGlz
aW9ucyBpbiBhIHNpbmdsZSBtb2R1bGUgd2VyZSBub3QgYWxsb3dlZC4NCj4+IFRoZXkgbmVlZCB0
byBiZSByZXNvbHZlZCBhdCBkZXNpZ24gdGltZS4gIElmIHRoaXMgaXMgbm90IHBvc3NpYmxlLCB0
aGVuIGEgc3RhbmRhcmQgcmVoYXNoIGFsZ29yaXRobSBzaG91bGQgYmUgdXNlZCBzbyB0aGUgY29s
bGlzaW9uIGlzIHJlc29sdmVkIGluIGEgcHJlZGljdGFibGUgd2F5LiAgZS5nLiwgdHJ5IGFwcGVu
ZGluZyAiXyIsIHRoZW4gdHJ5ICJfXyIsIGV0Yy4NCj4+IFRoZSByZXN1bHQgd291bGQgYmUgdGhh
dCBoYXNoIGNvbGxpc2lvbnMgaW4gYSBzaW5nbGUgbW9kdWxlIGRvIG5vdCBvY2N1ciBpbiBDb01J
Lg0KPj4NCj4+DQo+Pj4gSXMgaXQgcG9zc2libGUvYWNjZXB0YWJsZSB0byByZXF1ZXN0IGEgbmV3
IFlBTkcgc3RhdGVtZW50IHRvIG1hbnVhbGx5IGFzc2lnbiBhIElEIHRvIGEgZGF0YSBub2RlPw0K
Pj4+IFNhbWUgcXVlc3Rpb24gZm9yIGEgbW9kdWxlIElEPw0KPj4+DQo+Pj4gRm9yIGV4YW1wbGUg
KHNlZSAiaWQgMTYiIGFuZCAiaWQgMjUiIGJlbGxvdykgOg0KPj4+DQo+Pj4gICAgbW9kdWxlIGEg
ew0KPj4+ICAgICAgIG5hbWVzcGFjZSBhLW5zOw0KPj4+ICAgICAgIHByZWZpeCBhOw0KPj4+ICAg
ICAgIGlkIDE2Ow0KPj4+ICAgICAgIHJldmlzaW9uIDIwMTUtMDEtMDE7DQo+Pj4NCj4+PiAgICAg
ICBsZWFmIGxlYWZBMSB7IHR5cGUgc3RyaW5nOyBpZCAyNSB9DQo+Pj4gICAgICAgY29udGFpbmVy
IGNvbnRhaW5lckEgew0KPj4+ICAgICAgICAgIGxlYWYgbGVhZkEyIHsgdHlwZSBzdHJpbmd9DQo+
Pj4gICAgICAgfQ0KPj4+ICAgIH0NCj4+DQo+Pg0KPj4gWW91IGNvdWxkIGhhdmUgYW4gZXh0ZW5z
aW9uIHN0YXRlbWVudCBkbyBhbnl0aGluZyB5b3Ugd2FudDoNCj4+DQo+PiAgICAgY29taTppZCAg
MTY7DQo+Pg0KPj4gQnV0IHRoZXNlIG51bWJlcnMgZG8gbm90IGV4aXN0IGFueSBhbnkgbW9kdWxl
cyBhbmQgc28gdGhleSBjYW5ub3QgYmUgcmVsaWVkIG9uIGluIENvTUkuDQo+Pg0KPj4NCj4+Pg0K
Pj4+ID09PSBRdWVzdGlvbiAjMiwgSW50cm9kdWN0aW9uIG9mIGFuIG9wdGlvbmFsIHF1ZXJ5IHBh
cmFtZXRlciB1c2VkIHRvIA0KPj4+IHRhcmdldCBhIHNwZWNpZmljIG1vZHVsZQ0KPj4+DQo+Pj4g
Rm9yIG5vZGVzIC8gbmV0d29ya3Mgd2hpY2ggY2FuIGFmZm9yZCBhIHNsaXRlbHkgbGFyZ2VyIHBh
eWxvYWQgKElFRUUgODAyLjE1LjRnIGZvciBleGFtcGxlKSBidXQgd2FudCB0byBhdm9pZCB0aGUg
cHJvY2Vzc2luZyBhbmQgc3RvcmFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIHBvcnBvc2VkIGVycm9y
IG1lc3NhZ2UsIGFyZSB5b3Ugb3Bwb3NlZCB0byB0aGUgc3VwcG9ydCBvZiBhbiBvcHRpb25hbCBD
b0FQIHF1ZXJ5IHBhcmFtZXRlciB1c2UgY2FycnkgdGhlIG1vZHVsZSBuYW1lIG9yIG1vZHVsZSBJ
RCA/DQo+Pj4NCj4+PiBGb3IgZXhhbXBsZToNCj4+Pg0KPj4+IEdFVCBleGFtcGxlLmNvbS9ZOGQ3
cz9zZWxlY3Q9IGlldGYtNnRpc2NoLW1hYw0KPj4+DQo+Pj4gPT09IFF1ZXN0aW9uICMzLCBVc2Ug
b2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiB0aGUgDQo+Pj4gVVJJDQo+
Pj4NCj4+PiBBcmUgeW91IG9wb3NlZCB0byB0aGUgdXNlIG9mIHRoZSBzZWxlY3QgcXVlcnkgcGFy
YW1ldGVyIGluc3RlYWQgb2YgDQo+Pj4gdGhlIFVSSSB0byBpZGVudGlmeSBkYXRhIG5vZGUocykN
Cj4+Pg0KPj4NCj4+IE5vdCByZWFsbHkuDQo+Pg0KPj4gSSBkb24ndCBrbm93IGhvdyBtaXhlZCB0
aGUgbW9kdWxlcyB3aWxsIGdldCBpbiBDb01JLg0KPj4gSW4gTkVUQ09ORiwgbW9kdWxlcyB0ZW5k
IHRvIHVzZSBhdWdtZW50IGEgbG90LCBzbyB0aGUgbm9kZXMgZnJvbSAnbW9kdWxlLUEnIG1heSBi
ZSBuZXN0ZWQgbm9kZXMuDQo+PiBSZXRyaWV2aW5nIGp1c3QgdGhlIGF1Z21lbnRpbmcgbm9kZXMg
YW5kIGlnbm9yaW5nIHRoZSBhdWdtZW50ZWQgbm9kZXMgd291bGQgbGlrZWx5IGJlIG9wZXJhdGlv
bmFsbHkgdXNlbGVzcy4NCj4+IGUuZy4sIHdoZW4gYXVnbWVudGluZyBhIGxpc3QsIHRoZSBrZXkg
bGVhZnMgYXJlIG5lZWRlZCB0byBpZGVudGlmeSB0aGUgaW5zdGFuY2UuDQo+Pg0KPj4gSSB3b3Vs
ZCBsaWtlIHRvIGtlZXAgQ29NSSBleHRyZW1lbHkgc2ltcGxlLg0KPj4gTW9yZSBiZWxscyBhbmQg
d2hpc3RsZXMgbWVhbnMgaW5jcmVhc2VkIG1lbW9yeSBhbmQgQ1BVIHJlcXVpcmVtZW50cy4gDQo+
PiBJIGFtIGdsYWQgQ09SRSBhbmQgNlRJU0NIIFdHcyBhcmUgc28gY29uY2VybmVkIGFib3V0IGNv
bnN0cmFpbmVkIHJlc291cmNlcy4NCj4+IE9ubHkgdGhlIG1vc3QgaW1wb3J0YW50IGJlbGxzIGFu
ZCB3aGlzdGxlcyB3aWxsIGdldCBzdGFuZGFyZGl6ZWQuDQo+Pg0KPj4NCj4+PiBGb3IgZXhhbXBs
ZToNCj4+Pg0KPj4+IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9WThkN3MNCj4+PiBHRVQgZXhh
bXBsZS5jb20vbWc/c2VsZWN0PVk4ZDdzLE5LSGFBIEdFVA0KPj4+IGV4YW1wbGUuY29tL21nP3Nl
bGVjdD1pZXRmLTZ0aXNjaC1tYWMoWThkN3MsTktIYUEpDQo+Pj4NCj4+PiA9PT0gUXVlc3Rpb24g
IzQsIENvbXByZXNzaW5nIFlBTkcgaGFzaCBiYXNlNjQgcmVwcmVzZW50YXRpb24NCj4+Pg0KPj4+
IEFyZSB5b3Ugb3Bvc2VkIHRvIHRoZSBjb21wcmVzc2lvbiBvZiB0aGUgYmFzZTY0IHJlcHJlc2Vu
dGF0aW9uIGFzIHByb3BzZWQgYnkgQWxleGFuZGVyLg0KPj4+DQo+Pg0KPj4gTm8uICBPcHRpbWl6
YXRpb25zIHRoYXQgcmVkdWNlIHRoZSBlbmNvZGluZyBzaXplIGFyZSBpbXBvcnRhbnQuDQo+PiBJ
IHdhbnQgdG8gdXNlIHN0YW5kYXJkIENCT1IuICBObyBzcGVjaWFsIGhhY2tzIGp1c3QgZm9yIENv
TUkuDQo+Pg0KPj4+IEZvciBleGFtcGxlOg0KPj4+DQo+Pj4gR0VUIGV4YW1wbGUuY29tL21nP3Nl
bGVjdD03cw0KPj4+IEluc3RlYWQgb2YNCj4+PiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0PSBB
QUE3cw0KPj4+DQo+Pj4gTWljaGVsIFZlaWxsZXR0ZQ0KPj4+IFN5c3RlbSBBcmNoaXRlY3R1cmUg
RGlyZWN0b3INCj4+PiBUcmlsbGlhbnQgSW5jLg0KPj4+IFRlbDogNDUwLTM3NS0wNTU2IGV4dC4g
MjM3DQo+Pj4gbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+Pj4gd3d3LnRyaWxs
aWFudGluYy5jb20NCj4+Pg0KPj4+DQo+Pg0KPj4gQW5keQ0KPj4NCj4+PiAtLS0tLU9yaWdpbmFs
IE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdv
cmtzLmNvbV0NCj4+PiBTZW50OiAzIGp1aW4gMjAxNSAxMzowOQ0KPj4+IFRvOiBNaWNoZWwgVmVp
bGxldHRlDQo+Pj4gQ2M6IEFsZXhhbmRlciBQZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGll
dGYub3JnDQo+Pj4gU3ViamVjdDogUmU6IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2gg
ZmlsZSBhbmQgWUFORyBoYXNoIGluIA0KPj4+IFVSTA0KPj4+DQo+Pj4gT24gV2VkLCBKdW4gMywg
MjAxNSBhdCA5OjA1IEFNLCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxs
aWFudGluYy5jb20+IHdyb3RlOg0KPj4+PiBIaSBBbGV4YW5kZXINCj4+Pj4NCj4+Pj4gQXQgdGhl
IGxhc3QgNlRpU0NIIGJpLXdlZWtseSBjYWxsLCA0IHNvbHV0aW9ucyBoYXZlIGJlZW4gcHJlc2Vu
dGVkIHRvIHRoZSBoYXNoIGNsYXNoZXMgcHJvYmxlbS4gVHdvIGJhc2VkIG9uIGEgcmVoYXNoIHRh
YmxlIGFuZCB0d28gYmFzZWQgb24gYSBuZXcgQ29BUCBxdWVyeSBwYXJhbWV0ZXIgY2Fycnlpbmcg
dGhlIG1vZHVsZSBuYW1lIG9yIHJlZ2lzdGVyZWQgbW9kdWxlIElELiBUaGlzIHF1ZXJ5IHBhcmFt
ZXRlciBpcyB1c2VkIHRvIHNlbGVjdCB1bmFtYmlndW91c2x5IHRoZSB0YXJnZXRlZCBkYXRhIG5v
ZGUocykgYXNzdW1pbmcgdGhhdCBhbnkgaGFzaCBjb2xsaXNpb24gd2l0aGluIGEgbW9kdWxlIGhh
dmUgYmVlbiByZXNvbHZlZCBhdCBkZXNpZ24gdGltZS4gWW91IGNhbiBmaW5kIHRoaXMgcHJlc2Vu
dGF0aW9uIGluIGF0dGFjaG1lbnQuDQo+Pj4+DQo+Pj4+IEJvdGggb2YgeW91ciBwcm9wb3NhbHMg
bWFrZSBzZW5zZSB0byBtZSBidXQgSSBzdGlsbCBob3BlIHRoYXQgdGhlIGNsYXNoIGZpbGUgY2Fu
IGJlIGF2b2lkZWQgb3IgYmUgb3B0aW9uYWwuDQo+Pj4+DQo+Pj4NCj4+Pg0KPj4+IEkgYWdyZWUg
d2Ugc2hvdWxkIG5vdCBuZWVkIHRoZSBjbGllbnQgdG8gcmV0cmlldmUgdGhlIHJlaGFzaCBpbmZv
IGJlZm9yZSB1c2luZyBhIHNlcnZlci4NCj4+PiBUaGUgQ29NSSBhdXRob3JzIGhhdmUgZGlzY3Vz
c2VkIGEgc29sdXRpb24gd2hpY2ggSSB3aWxsIHRyeSB0byB3cml0ZSB1cCB0b2RheSB3aGVyZSBh
IHNwZWNpYWwgImhhc2gtY2xhc2giIGVycm9yIGlzIHJldHVybmVkIGJ5IENvTUkgaWYgYSByZWhh
c2ggaXMgbmVlZGVkLg0KPj4+DQo+Pj4gICAgMSkgY2xpZW50IHJlcXVlc3RzIG1vZHVsZS1BIG9i
amVjdCB3aXRoIGhhc2ggICIxMjM0IjsNCj4+PiAgICAgICAgIHRoZXJlIGlzIG5vIGV4dGVuZGVk
LW5hbWUvbG9jYWwtbmFtZSwNCj4+PiAgICAgICAgIGp1c3QgdGhlIFlBTkcgaGFzaCwgdXNlZCBp
biBhbnkgcmVxdWVzdA0KPj4+DQo+Pj4gICAgMikgaWYgJzEyMzQnIGhhcyBhIGNvbGxpc2lvbiBp
biB0aGlzIHNlcnZlciB0aGVuIGEgc3BlY2lhbCBlcnJvciBjb2RlIGlzIHJldHVybmVkOw0KPj4+
ICAgICAgICBUaGUgcmV0dXJuIHBheWxvYWQgaGFzIHRoZSByZWhhc2ggaW5mbyBbb2xkLWhhc2gs
IHsgbW9kdWxlLW5hbWUsIG5ldy1oYXNoIH0rXQ0KPj4+ICAgICAgICAgICAgeyAiMTIzNCI6IFsN
Cj4+PiAgICAgICAgICAgICAgICAgICAibW9kdWxlLUEiOiI0NTY3IiwNCj4+PiAgICAgICAgICAg
ICAgICAgICAibW9kdWxlLVgiOiI2NTIzIg0KPj4+ICAgICAgICAgICAgICAgXQ0KPj4+ICAgICAg
ICAgICAgfQ0KPj4+DQo+Pj4gICAgIDMpIHRoZSBjbGllbnQgZ2V0cyB0aGUgZXJyb3IgaW5mbywg
YW5kIGtub3dzIHdoaWNoIG1vZHVsZSBpdHMgIjEyMzQiIGlzIGZyb20uDQo+Pj4gICAgICAgICAg
SXQgZmluZHMgdGhlIGNvcnJlY3QgbW9kdWxlIG5hbWUgaW4gdGhlIGFycmF5IGFuZCByZXBsYWNl
cyBpdHMgb2xkLWhhc2gNCj4+PiAgICAgICAgICB3aXRoIHRoZSBuZXctaGFzaC4NCj4+Pg0KPj4+
ICAgIDQpIGNsaWVudCByZS1zZW5kcyB0aGUgcmVxdWVzdCwgdXNpbmcgaGFzaCAiNDU2NyIgaW5z
dGVhZCBvZiAiMTIzNCINCj4+Pg0KPj4+IFRoZSByZWhhc2ggdGFibGUgZ29lcyBhd2F5LCBhbmQg
b25seSB0aGlzIGVycm9yIGluZm8gaXMgdXNlZCBpbnN0ZWFkLg0KPj4+DQo+Pj4+IE1pY2hlbCBW
ZWlsbGV0dGUNCj4+Pj4gU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KPj4+PiBUcmlsbGlh
bnQgSW5jLg0KPj4+PiBUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KPj4+PiBtaWNoZWwudmVp
bGxldHRlQHRyaWxsaWFudGluYy5jb20NCj4+Pj4gd3d3LnRyaWxsaWFudGluYy5jb20NCj4+Pj4N
Cj4+Pg0KPj4+DQo+Pj4gQW5keQ0KPj4+DQo+Pj4+DQo+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn
ZS0tLS0tDQo+Pj4+IEZyb206IGNvcmUgW21haWx0bzpjb3JlLWJvdW5jZXNAaWV0Zi5vcmddIE9u
IEJlaGFsZiBPZiBBbGV4YW5kZXIgDQo+Pj4+IFBlbG92DQo+Pj4+IFNlbnQ6IDMganVpbiAyMDE1
IDExOjAxDQo+Pj4+IFRvOiA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5vcmcNCj4+Pj4gU3Vi
amVjdDogW2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxlIGFuZCBZQU5HIGhhc2gg
aW4gVVJMDQo+Pj4+DQo+Pj4+IEhlbGxvIGV2ZXJ5b25lLA0KPj4+Pg0KPj4+PiBJIHdvdWxkIGxp
a2UgdG8gZGlzY3VzcyB3aXRoIHlvdSB0byBpZGVhcy9wcm9wb3NhbHMgaW4gdGhpcyBtYWlsLCBu
YW1lbHk6DQo+Pj4+IDEpIENhY2hpbmcgdGhlIHlhbmcgY2xhc2ggZmlsZSBvbiBhIHJlbW90ZSBz
ZXJ2ZXINCj4+Pj4gMikgQ29tcHJlc3NpbmcgdGhlIFVSTCByZXByZXNlbnRhdGlvbiBvZiBZQU5H
IGhhc2hlcw0KPj4+Pg0KPj4+PiAxKSBDYWNoaW5nIHRoZSB5YW5nIGNsYXNoIGZpbGUgb24gYSBy
ZW1vdGUgc2VydmVyIEV2ZW4gdGhvdWdoIGhhc2ggY29sbGlzaW9ucyBzaG91bGQgaGFwcGVuIHJh
cmVseSAoaWYgZXZlciksIHRoZXJlIG1heSBiZSBjYXNlcyB3aGVuIGl0IGNvdWxkIGJlIGluZXZp
dGFibGUsIGFuZCBhcyBzdWNoLCBpdCBtYXkgYmUgaW50ZXJlc3RpbmcgdG8gY2FjaGUgdGhlIGNs
YXNoX2ZpbGUgc29tZXdoZXJlIG9uIGEgcmVtb3RlIHNlcnZlciB0byBhdm9pZCBzZW5kaW5nIGl0
IG92ZXIgdGhlIGNvbnN0cmFpbmVkIHdpcmVsZXNzIGludGVyZmFjZS4gSXQgY291bGQgYmUgdXNl
ZCBmb3Igb3RoZXIgY2FzZXMsIHdoZXJlIHNvbWUgZnJlcXVlbnRseSB1c2VkIHJlc291cmNlcyBh
cmUgcmUtaGFzaGVkIGZvciBwZXJmb3JtYW5jZSBwdXJwb3Nlcy4gTWF5YmUgaXQgd291bGQgYmUg
aW50ZXJlc3RpbmcgdG8gYWxsb3cgdGhlIHNlcnZlciB0byBzcGVjaWZ5IGEgcmVtb3RlIGxvY2F0
aW9uIGZvciB0aGUgY2xhc2ggZmlsZT8gRm9yIHN0YXRpYyBjb2xsaXNpb25zIG9yIG9wdGltaXph
dGlvbnMgaXQgY291bGQgYmUgdGhhdCB0aGUgWUFORyBkZWZpbml0aW9uIGluY2x1ZGVzIGFsdGVy
bmF0aXZlIGhhc2ggdmFsdWVzLCB3aGljaCBjb3VsZCBiZSB1c2VkIGluIGFkZGl0aW9uIHRvIHRo
ZSBub3JtYWwgb25lcy4NCj4+Pj4NCj4+Pj4gMikgQ29tcHJlc3NpbmcgdGhlIFVSTCByZXByZXNl
bnRhdGlvbiBvZiBZQU5HIGhhc2hlcyBBbm90aGVyIHBvaW50IA0KPj4+PiAod2hpY2ggaXMgdW5y
ZWxhdGVkKSwgaXMgdG8gZWxpZGUgdGhlIGxlYWRpbmcgIkEicyBmcm9tIHRoZSBiYXNlNjQgDQo+
Pj4+IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBoYXNoIGluIHRoZSBVUkwgKHdoaWNoIGNvcnJlc3Bv
bmRzIHRvIGVsaWRpbmcgDQo+Pj4+IHRoZSBsZWFkaW5nIHplcm9lcyBmcm9tIHRoZSBoYXNoKS4g
QXMgc3BlY2lmaWVkIGluIHNlY3Rpb24gNS40LiBhIA0KPj4+PiBoYXNoIHZhbHVlIG9mIDB4MDAw
MDAwN2Ugd2lsbCBiZSBlbmNvZGVkIGFzIEFBQUFfLCBidXQgaWYgdGhlIA0KPj4+PiBsZWFkaW5n
IEHigJlzIGFyZSBlbGlkZWQgaXQgd2lsbCBiZSBzaW1wbHkgXw0KPj4+Pg0KPj4+PiBUaGlzIGNv
dWxkIHBvc2UgcHJvYmxlbXMgb25seSBpZiBpbiB0aGUgZnV0dXJlIHRoZSBzaXplIG9mIHRoZSBo
YXNoIHZhbHVlcyBpcyBpbmNyZWFzZWQgZnJvbSAzMCBiaXRzIHRvIHNvbWUgb3RoZXIgKGhpZ2hl
cikgdmFsdWUuDQo+Pj4+DQo+Pj4+IFRoaXMsIGhvd2V2ZXIsIGNvdWxkIGJlIHZlcnkgdXNlZnVs
IHdoZW4gaGF2aW5nIHRvIGZyZXF1ZW50bHkgDQo+Pj4+IGFjY2VzcyB0aGUgc2FtZSByZXNvdXJj
ZS4gSW4gc3VjaCBjYXNlLCB0aGUgc2VydmVyL25ldHdvcmsgb3BlcmF0b3IgDQo+Pj4+IG1heSBk
ZWNpZGUgdG8gcmUtaGFzaCB0aGUgVVJJIHRvIGEgc2hvcnRlciB2ZXJzaW9uLCBlLmcuIHRoZSAN
Cj4+Pj4gL3N5czpzeXN0ZW0tc3RhdGUvc3lzOmNsb2NrL3N5czpjdXJyZW50LWRhdGV0aW1lIGNv
dWxkIGJlIHJlbWFwcGVkIA0KPj4+PiBmcm9tIDB4MTUzNzA0MDggYW5kIFZOd1FJIHRvIDB4MSBh
bmQgXw0KPj4+Pg0KPj4+PiBCZXN0LA0KPj4+PiBBbGV4DQo+Pj4+DQo+Pj4+IFBTLg0KPj4+PiBB
IHR5cG8gKD8pLCB3aGljaCBtYXkgYmUgYWxyZWFkeSBjb3JyZWN0ZWQsIGluIHRoZSBleGFtcGxl
IG9mIG1vZC51cmkgb24gUGFnZSAyNjogdGhlIHR3byByZXNwb25zZXMgaGF2ZSBkaWZmZXJlbnQg
c2NoZW1lICJtb2QudXJpIiBhbmQgIm1vZHVyaSINCj4+Pj4NCj4+Pj4gX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+Pj4gY29yZSBtYWlsaW5nIGxpc3QN
Cj4+Pj4gY29yZUBpZXRmLm9yZw0KPj4+PiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xp
c3RpbmZvL2NvcmUNCj4+Pj4NCj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18NCj4+Pj4gY29yZSBtYWlsaW5nIGxpc3QNCj4+Pj4gY29yZUBpZXRmLm9y
Zw0KPj4+PiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2NvcmUNCj4+Pj4N
Cg==


From nobody Thu Jun  4 09:32:10 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8DD101A90A6 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 09:32:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.475
X-Spam-Level: **
X-Spam-Status: No, score=2.475 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Vv_HrJeaJ9Bu for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 09:32:05 -0700 (PDT)
Received: from mail-lb0-f174.google.com (mail-lb0-f174.google.com [209.85.217.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 89FD61A90AC for <core@ietf.org>; Thu,  4 Jun 2015 09:30:21 -0700 (PDT)
Received: by lbbqq2 with SMTP id qq2so30612860lbb.3 for <core@ietf.org>; Thu, 04 Jun 2015 09:30:20 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=VSMnSSNgHO3JmLve0lblhMyTDtiVKODIH+vVDssi6k4=; b=i4rNVndDfO9T4DnL07nD3/FIp1TzinBw7kxbUnuVomJPxWdqTiogr9r9CbnXc9SRuG V3/FAOI5MSpH62FSWV07Cx160tSq4oXeGRFmFC6R8PWGkO9HlBRFefT0A1CcKDgcsWqP Zs8hfQFGnrasTbQKf/L+SPKhwOK3I7EgtYE41aKMhWCT3yn7T4Od2RxVpnq881TQl3k+ ApaDc0RFoy3I189ZWNjrwGV0ny5YtNTh2+UWkyTcntE7TYLiJo8UM+5qC0pPRa3EFcPk LYNNMjw+5oLg8JN3kcYeFNfmuE8oz3rb9yEcHh2Sgmhw8tVbgwu8OzgnDhB72zTdMpka IMEA==
X-Gm-Message-State: ALoCoQkw3NC18f3LakbicyqjKAygraB3jF9hkptYmR6CQs7oitllpfVBofPnK1XECQMm06Trirw2
MIME-Version: 1.0
X-Received: by 10.112.97.194 with SMTP id ec2mr22025345lbb.88.1433435420048; Thu, 04 Jun 2015 09:30:20 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Thu, 4 Jun 2015 09:30:19 -0700 (PDT)
In-Reply-To: <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Thu, 4 Jun 2015 09:30:19 -0700
Message-ID: <CABCOCHRQ_k0WcM0bu3V9-9k-P_f0eQuUCC2kzNMU5Taq9+onNQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/nsRT9js26aPknckRn5gXz7PFeWI>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 16:32:08 -0000

On Thu, Jun 4, 2015 at 9:04 AM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> Hi Andy,
>
> Just to be sure about the scope of your comment.
>
> You say " Each object has a YANG Hash", yes but this is not a uniquely ob=
ject identify.
> Did we reach a consensus about using the  " YANG hash" + "module name or =
a module ID" as a unique data node (object) identifier?
>

I don't know if any consensus has been reached.
IMO the YANG hash is all that is needed.
There is a small probability that the hash is not unique.
If this happens, the rehash is needed.

If a specific value maps to more than 1 object on a server,
then that value triggers a rehash if the client uses it.
I prefer to send the rehash info as an error response only
when needed.

I prefer to limit optional features so the server code can be
as small as possible.

There is a problem with GET.
Let's say the data model is a simple container with 2 leafs:

mod1:

   container A {
       leaf A1 { type string; }
   }


mod2:

    augment /mod1:A {
       leaf A2 { type string; }
    }

What if the server does a GET on /A but A1 and A2 have a hash collision?
The server is supposed to return

    {"A": {
       "A1":"foo",
       "A2":"bar"
       }
     }

But the original hashes will not work:

   {"2345": {
      "1234":"foo",
      "1234":"bar"
      }
   }

The client never requested A1 or A2 directly but will
still need to know the rehash info for these nodes.

The server could return the rehash info in the GET response,
or return some flag that the client needs to retrieve the rehash info.
Even if A1 and A2 are not siblings, the rehash info needs to be
sent because the server will remap the collided hash value "1234".

In this case it might be useful for the server to return a "long form"
of the node, which includes the requested value and the rehash info.
This part of your plan I like (if I understand it).  But requiring
the server to accept the long-form as input is not needed.





> This can take the form of a rehash table available on the CoMI server or =
elsewhere (" YANG hash", "module name or module ID", "rehash or alias")
> This can take the form of an error message containing (" YANG hash", "mod=
ule name or module ID", "rehash or alias")
> This can take the form of a fully qualified identifier within the request=
 or payload (REQ: GET example.com/mg?select(<module name>.<YANG hash>)
>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>


Andy

>
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: 4 juin 2015 11:37
> To: Michel Veillette
> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>
> Hi,
>
> I do not agree that the module name or a module ID needs to be used at al=
l in the object identifier.  Each object has a YANG Hash.
> Retrieving a node, whether by hash ID or module-ID.hash will cause all de=
scendant nodes to be included in the retrieval, even if they are augmenting=
 nodes from another module.
>
> YANG data is hierarchical.
> The modules are just packaging for definitions.
> They do not define any containment or structure within the conceptual sch=
ema tree.
>
>
> Andy
>
>
> On Thu, Jun 4, 2015 at 8:21 AM, Michel Veillette <Michel.Veillette@trilli=
antinc.com> wrote:
>> Hi Andy
>>
>> About "Almost -- this is defined in RFC 6020 -- the augmenting nodes are=
 not part of the augmented module.  They will be returned in NETCONF and RE=
STCONF retrieval operations for an ancestor node but they are not part of t=
he augmented module.  Only objects defined in the module namespace are part=
 of the module."
>>
>> Understood, this is why my contribution introduce the new term, "Module =
context". Augmenting nodes are not part of the augmented module but, as def=
ined, are part of the "Module context". This new concept was require to min=
imize the overhead when retrieving the complete datastore containing multip=
le module contexts with some having augmenting nodes.
>>
>>    RES: 2.05 Content (Content-Format: application/cbor)
>>    {
>>       "a" : {
>>          365257235 : "leafA1 value",
>>          702149626 : {
>>             215993329 : "leafA2 value",
>>             962191682 : "leafC1 value"                    # Augmenting d=
ata node
>>          },
>>          829222983 : "leafS value"                         # Sub-module =
data node
>>       },
>>       "b" : {
>>          289564696 : "leafB value"
>>       },
>>       "c" : {
>>          993533527 : "leafC2 value"
>>       }
>>    }
>>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>> -----Original Message-----
>> From: Andy Bierman [mailto:andy@yumaworks.com]
>> Sent: 3 juin 2015 17:38
>> To: Michel Veillette
>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>>
>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette <Michel.Veillette@tril=
liantinc.com> wrote:
>>> About "I would prefer if hash collisions in a single module were not al=
lowed."
>>> Agreed but how this is implemented.
>>>
>>
>>
>> By checking the YANG hashes before it is published, similar to checking =
the YANG syntax with a YANG compiler.
>>
>>
>>> About "But these numbers do not exist in any modules and so they cannot=
 be relied on in CoMI.
>>> I understand but I assume that a module can be re-published with the ad=
ded statement when require. If a CoMI implementer try to implement a module=
 containing a clash, he can look for a version of this module containing th=
e special YANG statement. The likelihood of such clash is extremely low and=
 such fallback solution won=E2=80=99t be required often. However, the RFC w=
ill specify how to resolve such situation if this ever happen. This stateme=
nt can also be used to address the need for data node identifier compactnes=
s as mentioned by Alexander in its original email.
>>>
>>
>> I think the ad-hoc id assignments are pointless because they are not uni=
versal.  The only thing that can be counted on is the module name and the X=
Path absolute path expression of each object.
>>
>>
>>> About "In NETCONF, modules tend to use augment a lot"
>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I propose a=
 new definition to address this.
>>>
>>
>> What is it?
>> IMO you should post comments to the mailing list not markup to a word do=
cument.  It is too hard to follow.
>>
>>
>>> Module Context: A module context is composed of all data nodes, notific=
ations and RPCs defined in a YANG module and included sub-modules or added =
to them using the augment YANG statement.
>>>
>>
>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are not pa=
rt of the augmented module.  They will be returned in NETCONF and RESTCONF =
retrieval operations for an ancestor node but they are not part of the augm=
ented module.  Only objects defined in the module namespace are part of the=
 module.
>>
>>
>> Andy
>>
>>
>>
>>> Section 4.1.3.4 show an example of include, import and augment.
>>>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>
>>>
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 3 juin 2015 14:54
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in
>>> URL
>>>
>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette <Michel.Veillette@tri=
lliantinc.com> wrote:
>>>> Hi Andy
>>>>
>>>> Couple of questions about your proposed solution.
>>>>
>>>> =3D=3D=3D Question #1, New YANG statement
>>>>
>>>> Your solution works only if hash clashes within a module are resolved =
at design time. If not, the error message will return the following informa=
tion which is not sufficient to resolve which data node is which.
>>>>
>>>>    { "1234": [
>>>>           "module-A":"4567",
>>>>           "module-A":"6523"
>>>>       ]
>>>>    }
>>>>
>>>
>>>
>>> The original proposal had a 3-tuple { module-name, path-expr, new-hash =
} We discussed some optimizations in the 6TISCH call to reduce the size of =
the path-expr and still not require the client to store all the path string=
s, such as store a few bytes from the path strings like 6th and 11th bytes =
(Avoid the common ietf- prefix for many module names).
>>>
>>> This is not deterministic. Only the full path string is fool-proof.
>>> I would prefer if hash collisions in a single module were not allowed.
>>> They need to be resolved at design time.  If this is not possible, then=
 a standard rehash algorithm should be used so the collision is resolved in=
 a predictable way.  e.g., try appending "_", then try "__", etc.
>>> The result would be that hash collisions in a single module do not occu=
r in CoMI.
>>>
>>>
>>>> Is it possible/acceptable to request a new YANG statement to manually =
assign a ID to a data node?
>>>> Same question for a module ID?
>>>>
>>>> For example (see "id 16" and "id 25" bellow) :
>>>>
>>>>    module a {
>>>>       namespace a-ns;
>>>>       prefix a;
>>>>       id 16;
>>>>       revision 2015-01-01;
>>>>
>>>>       leaf leafA1 { type string; id 25 }
>>>>       container containerA {
>>>>          leaf leafA2 { type string}
>>>>       }
>>>>    }
>>>
>>>
>>> You could have an extension statement do anything you want:
>>>
>>>     comi:id  16;
>>>
>>> But these numbers do not exist any any modules and so they cannot be re=
lied on in CoMI.
>>>
>>>
>>>>
>>>> =3D=3D=3D Question #2, Introduction of an optional query parameter use=
d to
>>>> target a specific module
>>>>
>>>> For nodes / networks which can afford a slitely larger payload (IEEE 8=
02.15.4g for example) but want to avoid the processing and storage associat=
ed with the porposed error message, are you opposed to the support of an op=
tional CoAP query parameter use carry the module name or module ID ?
>>>>
>>>> For example:
>>>>
>>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>>
>>>> =3D=3D=3D Question #3, Use of the select query parameter instead of th=
e
>>>> URI
>>>>
>>>> Are you oposed to the use of the select query parameter instead of
>>>> the URI to identify data node(s)
>>>>
>>>
>>> Not really.
>>>
>>> I don't know how mixed the modules will get in CoMI.
>>> In NETCONF, modules tend to use augment a lot, so the nodes from 'modul=
e-A' may be nested nodes.
>>> Retrieving just the augmenting nodes and ignoring the augmented nodes w=
ould likely be operationally useless.
>>> e.g., when augmenting a list, the key leafs are needed to identify the =
instance.
>>>
>>> I would like to keep CoMI extremely simple.
>>> More bells and whistles means increased memory and CPU requirements.
>>> I am glad CORE and 6TISCH WGs are so concerned about constrained resour=
ces.
>>> Only the most important bells and whistles will get standardized.
>>>
>>>
>>>> For example:
>>>>
>>>> GET example.com/mg?select=3DY8d7s
>>>> GET example.com/mg?select=3DY8d7s,NKHaA GET
>>>> example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>>
>>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>>
>>>> Are you oposed to the compression of the base64 representation as prop=
sed by Alexander.
>>>>
>>>
>>> No.  Optimizations that reduce the encoding size are important.
>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>>
>>>> For example:
>>>>
>>>> GET example.com/mg?select=3D7s
>>>> Instead of
>>>> GET example.com/mg?select=3D AAA7s
>>>>
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>
>>>>
>>>
>>> Andy
>>>
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 13:09
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in
>>>> URL
>>>>
>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette <Michel.Veillette@tri=
lliantinc.com> wrote:
>>>>> Hi Alexander
>>>>>
>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented to=
 the hash clashes problem. Two based on a rehash table and two based on a n=
ew CoAP query parameter carrying the module name or registered module ID. T=
his query parameter is used to select unambiguously the targeted data node(=
s) assuming that any hash collision within a module have been resolved at d=
esign time. You can find this presentation in attachment.
>>>>>
>>>>> Both of your proposals make sense to me but I still hope that the cla=
sh file can be avoided or be optional.
>>>>>
>>>>
>>>>
>>>> I agree we should not need the client to retrieve the rehash info befo=
re using a server.
>>>> The CoMI authors have discussed a solution which I will try to write u=
p today where a special "hash-clash" error is returned by CoMI if a rehash =
is needed.
>>>>
>>>>    1) client requests module-A object with hash  "1234";
>>>>         there is no extended-name/local-name,
>>>>         just the YANG hash, used in any request
>>>>
>>>>    2) if '1234' has a collision in this server then a special error co=
de is returned;
>>>>        The return payload has the rehash info [old-hash, { module-name=
, new-hash }+]
>>>>            { "1234": [
>>>>                   "module-A":"4567",
>>>>                   "module-X":"6523"
>>>>               ]
>>>>            }
>>>>
>>>>     3) the client gets the error info, and knows which module its "123=
4" is from.
>>>>          It finds the correct module name in the array and replaces it=
s old-hash
>>>>          with the new-hash.
>>>>
>>>>    4) client re-sends the request, using hash "4567" instead of "1234"
>>>>
>>>> The rehash table goes away, and only this error info is used instead.
>>>>
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>>>
>>>>
>>>>
>>>> Andy
>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>>>> Pelov
>>>>> Sent: 3 juin 2015 11:01
>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>>>>
>>>>> Hello everyone,
>>>>>
>>>>> I would like to discuss with you to ideas/proposals in this mail, nam=
ely:
>>>>> 1) Caching the yang clash file on a remote server
>>>>> 2) Compressing the URL representation of YANG hashes
>>>>>
>>>>> 1) Caching the yang clash file on a remote server Even though hash co=
llisions should happen rarely (if ever), there may be cases when it could b=
e inevitable, and as such, it may be interesting to cache the clash_file so=
mewhere on a remote server to avoid sending it over the constrained wireles=
s interface. It could be used for other cases, where some frequently used r=
esources are re-hashed for performance purposes. Maybe it would be interest=
ing to allow the server to specify a remote location for the clash file? Fo=
r static collisions or optimizations it could be that the YANG definition i=
ncludes alternative hash values, which could be used in addition to the nor=
mal ones.
>>>>>
>>>>> 2) Compressing the URL representation of YANG hashes Another point
>>>>> (which is unrelated), is to elide the leading "A"s from the base64
>>>>> representation of the hash in the URL (which corresponds to eliding
>>>>> the leading zeroes from the hash). As specified in section 5.4. a
>>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the
>>>>> leading A=E2=80=99s are elided it will be simply _
>>>>>
>>>>> This could pose problems only if in the future the size of the hash v=
alues is increased from 30 bits to some other (higher) value.
>>>>>
>>>>> This, however, could be very useful when having to frequently
>>>>> access the same resource. In such case, the server/network operator
>>>>> may decide to re-hash the URI to a shorter version, e.g. the
>>>>> /sys:system-state/sys:clock/sys:current-datetime could be remapped
>>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>>
>>>>> Best,
>>>>> Alex
>>>>>
>>>>> PS.
>>>>> A typo (?), which may be already corrected, in the example of mod.uri=
 on Page 26: the two responses have different scheme "mod.uri" and "moduri"
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>


From nobody Thu Jun  4 09:33:55 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 559991A9090; Thu,  4 Jun 2015 09:33:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.903
X-Spam-Level: **
X-Spam-Status: No, score=2.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, HELO_EQ_FR=0.35, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aYuP8zTDW31f; Thu,  4 Jun 2015 09:33:50 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id 4F0671A9063; Thu,  4 Jun 2015 09:32:08 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 5BD5D302A0; Thu,  4 Jun 2015 18:32:07 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id gng376gzO4t8; Thu,  4 Jun 2015 18:32:06 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 20223302A5; Thu,  4 Jun 2015 18:32:06 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id LG3ciIcRvf91; Thu,  4 Jun 2015 18:32:06 +0200 (CEST)
Received: from dhcp-salsa-i-129-152.rennes.enst-bretagne.fr (dhcp-salsa-i-129-152.rennes.enst-bretagne.fr [10.35.129.152]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id EF604302AA; Thu,  4 Jun 2015 18:32:05 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Thu, 4 Jun 2015 18:32:05 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/dGlNmbMFAPPkCeh_KPvT1yEe0eY>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 16:33:53 -0000

Hi all,

Just a short idea for the hash clash issue.=20

The 30 bits, which are reserved for the YANG hash can have a structure :
1 bit =3D structured YANG hash (0) or pure YANG hash (1)
   If 0 (structured), then :
       1 bit =3D managed (0) or non-managed (1)
       18 bits =3D module ID
       10 bits =3D item ID
   If 1 (non-structured), then:
       29 bits =3D least significant 29 bits of the YANG hash.
    =20
In case of clash, send error, the full URI must be used (which should be =
with extremely low probability)
This way, in the worst case you are limiting your hash value from 30 to =
29 bits (and thus slightly increasing the clash probability).

If structured YANG hash, then:
   0 =3D managed (e.g. IETF-assigned module ID)
      18 bits =3D the ID of the module (1, 2, 3, =E2=80=A6., 262143) =
assigned incrementally by IANA (0 reserved for special usage)
      10 bits =3D the ID of the item in the module, incremented at each =
item (1..1023 - hope this is sufficient for all cases).
   1 =3D unmanaged
       18 bits =3D ID of module, by default the 18 less significant bits =
of the module. It is up to the user to assure that there are no clashes =
with the names of the other modules on the device
       10 bits =3D ID of the item. It is up to the implementer to ensure =
that there are no clashes within the module.=20

Two possible drawbacks of this approach, however:
  - For managed IDs you will probably have to keep both the YANG hash =
and the managed full ID.
  - In case of unmanaged IDs you increase the probability of collision =
of 1E-9 to 2E-9.

Best,
Alexander


> Le 4 juin 2015 =C3=A0 18:04, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> Hi Andy,
>=20
> Just to be sure about the scope of your comment.
>=20
> You say " Each object has a YANG Hash", yes but this is not a uniquely =
object identify.
> Did we reach a consensus about using the  " YANG hash" + "module name =
or a module ID" as a unique data node (object) identifier?
>=20
> This can take the form of a rehash table available on the CoMI server =
or elsewhere (" YANG hash", "module name or module ID", "rehash or =
alias")
> This can take the form of an error message containing (" YANG hash", =
"module name or module ID", "rehash or alias")
> This can take the form of a fully qualified identifier within the =
request or payload (REQ: GET example.com/mg?select(<module name>.<YANG =
hash>)
>=20
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com  =20
>=20
>=20
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]=20
> Sent: 4 juin 2015 11:37
> To: Michel Veillette
> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>=20
> Hi,
>=20
> I do not agree that the module name or a module ID needs to be used at =
all in the object identifier.  Each object has a YANG Hash.
> Retrieving a node, whether by hash ID or module-ID.hash will cause all =
descendant nodes to be included in the retrieval, even if they are =
augmenting nodes from another module.
>=20
> YANG data is hierarchical.
> The modules are just packaging for definitions.
> They do not define any containment or structure within the conceptual =
schema tree.
>=20
>=20
> Andy
>=20
>=20
> On Thu, Jun 4, 2015 at 8:21 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>> Hi Andy
>>=20
>> About "Almost -- this is defined in RFC 6020 -- the augmenting nodes =
are not part of the augmented module.  They will be returned in NETCONF =
and RESTCONF retrieval operations for an ancestor node but they are not =
part of the augmented module.  Only objects defined in the module =
namespace are part of the module."
>>=20
>> Understood, this is why my contribution introduce the new term, =
"Module context". Augmenting nodes are not part of the augmented module =
but, as defined, are part of the "Module context". This new concept was =
require to minimize the overhead when retrieving the complete datastore =
containing multiple module contexts with some having augmenting nodes.
>>=20
>>   RES: 2.05 Content (Content-Format: application/cbor)
>>   {
>>      "a" : {
>>         365257235 : "leafA1 value",
>>         702149626 : {
>>            215993329 : "leafA2 value",
>>            962191682 : "leafC1 value"                    # Augmenting =
data node
>>         },
>>         829222983 : "leafS value"                         # =
Sub-module data node
>>      },
>>      "b" : {
>>         289564696 : "leafB value"
>>      },
>>      "c" : {
>>         993533527 : "leafC2 value"
>>      }
>>   }
>>=20
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>=20
>>=20
>> -----Original Message-----
>> From: Andy Bierman [mailto:andy@yumaworks.com]
>> Sent: 3 juin 2015 17:38
>> To: Michel Veillette
>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>> Subject: Re: [core] CoMI remote server clash file and YANG hash in =
URL
>>=20
>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>> About "I would prefer if hash collisions in a single module were not =
allowed."
>>> Agreed but how this is implemented.
>>>=20
>>=20
>>=20
>> By checking the YANG hashes before it is published, similar to =
checking the YANG syntax with a YANG compiler.
>>=20
>>=20
>>> About "But these numbers do not exist in any modules and so they =
cannot be relied on in CoMI.
>>> I understand but I assume that a module can be re-published with the =
added statement when require. If a CoMI implementer try to implement a =
module containing a clash, he can look for a version of this module =
containing the special YANG statement. The likelihood of such clash is =
extremely low and such fallback solution won=E2=80=99t be required =
often. However, the RFC will specify how to resolve such situation if =
this ever happen. This statement can also be used to address the need =
for data node identifier compactness as mentioned by Alexander in its =
original email.
>>>=20
>>=20
>> I think the ad-hoc id assignments are pointless because they are not =
universal.  The only thing that can be counted on is the module name and =
the XPath absolute path expression of each object.
>>=20
>>=20
>>> About "In NETCONF, modules tend to use augment a lot"
>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I =
propose a new definition to address this.
>>>=20
>>=20
>> What is it?
>> IMO you should post comments to the mailing list not markup to a word =
document.  It is too hard to follow.
>>=20
>>=20
>>> Module Context: A module context is composed of all data nodes, =
notifications and RPCs defined in a YANG module and included sub-modules =
or added to them using the augment YANG statement.
>>>=20
>>=20
>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are not =
part of the augmented module.  They will be returned in NETCONF and =
RESTCONF retrieval operations for an ancestor node but they are not part =
of the augmented module.  Only objects defined in the module namespace =
are part of the module.
>>=20
>>=20
>> Andy
>>=20
>>=20
>>=20
>>> Section 4.1.3.4 show an example of include, import and augment.
>>>=20
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>=20
>>>=20
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 3 juin 2015 14:54
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in=20=

>>> URL
>>>=20
>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>> Hi Andy
>>>>=20
>>>> Couple of questions about your proposed solution.
>>>>=20
>>>> =3D=3D=3D Question #1, New YANG statement
>>>>=20
>>>> Your solution works only if hash clashes within a module are =
resolved at design time. If not, the error message will return the =
following information which is not sufficient to resolve which data node =
is which.
>>>>=20
>>>>   { "1234": [
>>>>          "module-A":"4567",
>>>>          "module-A":"6523"
>>>>      ]
>>>>   }
>>>>=20
>>>=20
>>>=20
>>> The original proposal had a 3-tuple { module-name, path-expr, =
new-hash } We discussed some optimizations in the 6TISCH call to reduce =
the size of the path-expr and still not require the client to store all =
the path strings, such as store a few bytes from the path strings like =
6th and 11th bytes (Avoid the common ietf- prefix for many module =
names).
>>>=20
>>> This is not deterministic. Only the full path string is fool-proof.
>>> I would prefer if hash collisions in a single module were not =
allowed.
>>> They need to be resolved at design time.  If this is not possible, =
then a standard rehash algorithm should be used so the collision is =
resolved in a predictable way.  e.g., try appending "_", then try "__", =
etc.
>>> The result would be that hash collisions in a single module do not =
occur in CoMI.
>>>=20
>>>=20
>>>> Is it possible/acceptable to request a new YANG statement to =
manually assign a ID to a data node?
>>>> Same question for a module ID?
>>>>=20
>>>> For example (see "id 16" and "id 25" bellow) :
>>>>=20
>>>>   module a {
>>>>      namespace a-ns;
>>>>      prefix a;
>>>>      id 16;
>>>>      revision 2015-01-01;
>>>>=20
>>>>      leaf leafA1 { type string; id 25 }
>>>>      container containerA {
>>>>         leaf leafA2 { type string}
>>>>      }
>>>>   }
>>>=20
>>>=20
>>> You could have an extension statement do anything you want:
>>>=20
>>>    comi:id  16;
>>>=20
>>> But these numbers do not exist any any modules and so they cannot be =
relied on in CoMI.
>>>=20
>>>=20
>>>>=20
>>>> =3D=3D=3D Question #2, Introduction of an optional query parameter =
used to=20
>>>> target a specific module
>>>>=20
>>>> For nodes / networks which can afford a slitely larger payload =
(IEEE 802.15.4g for example) but want to avoid the processing and =
storage associated with the porposed error message, are you opposed to =
the support of an optional CoAP query parameter use carry the module =
name or module ID ?
>>>>=20
>>>> For example:
>>>>=20
>>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>>=20
>>>> =3D=3D=3D Question #3, Use of the select query parameter instead of =
the=20
>>>> URI
>>>>=20
>>>> Are you oposed to the use of the select query parameter instead of=20=

>>>> the URI to identify data node(s)
>>>>=20
>>>=20
>>> Not really.
>>>=20
>>> I don't know how mixed the modules will get in CoMI.
>>> In NETCONF, modules tend to use augment a lot, so the nodes from =
'module-A' may be nested nodes.
>>> Retrieving just the augmenting nodes and ignoring the augmented =
nodes would likely be operationally useless.
>>> e.g., when augmenting a list, the key leafs are needed to identify =
the instance.
>>>=20
>>> I would like to keep CoMI extremely simple.
>>> More bells and whistles means increased memory and CPU requirements.=20=

>>> I am glad CORE and 6TISCH WGs are so concerned about constrained =
resources.
>>> Only the most important bells and whistles will get standardized.
>>>=20
>>>=20
>>>> For example:
>>>>=20
>>>> GET example.com/mg?select=3DY8d7s
>>>> GET example.com/mg?select=3DY8d7s,NKHaA GET
>>>> example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>>=20
>>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>>=20
>>>> Are you oposed to the compression of the base64 representation as =
propsed by Alexander.
>>>>=20
>>>=20
>>> No.  Optimizations that reduce the encoding size are important.
>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>>=20
>>>> For example:
>>>>=20
>>>> GET example.com/mg?select=3D7s
>>>> Instead of
>>>> GET example.com/mg?select=3D AAA7s
>>>>=20
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>=20
>>>>=20
>>>=20
>>> Andy
>>>=20
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 13:09
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in=20=

>>>> URL
>>>>=20
>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>> Hi Alexander
>>>>>=20
>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented =
to the hash clashes problem. Two based on a rehash table and two based =
on a new CoAP query parameter carrying the module name or registered =
module ID. This query parameter is used to select unambiguously the =
targeted data node(s) assuming that any hash collision within a module =
have been resolved at design time. You can find this presentation in =
attachment.
>>>>>=20
>>>>> Both of your proposals make sense to me but I still hope that the =
clash file can be avoided or be optional.
>>>>>=20
>>>>=20
>>>>=20
>>>> I agree we should not need the client to retrieve the rehash info =
before using a server.
>>>> The CoMI authors have discussed a solution which I will try to =
write up today where a special "hash-clash" error is returned by CoMI if =
a rehash is needed.
>>>>=20
>>>>   1) client requests module-A object with hash  "1234";
>>>>        there is no extended-name/local-name,
>>>>        just the YANG hash, used in any request
>>>>=20
>>>>   2) if '1234' has a collision in this server then a special error =
code is returned;
>>>>       The return payload has the rehash info [old-hash, { =
module-name, new-hash }+]
>>>>           { "1234": [
>>>>                  "module-A":"4567",
>>>>                  "module-X":"6523"
>>>>              ]
>>>>           }
>>>>=20
>>>>    3) the client gets the error info, and knows which module its =
"1234" is from.
>>>>         It finds the correct module name in the array and replaces =
its old-hash
>>>>         with the new-hash.
>>>>=20
>>>>   4) client re-sends the request, using hash "4567" instead of =
"1234"
>>>>=20
>>>> The rehash table goes away, and only this error info is used =
instead.
>>>>=20
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>>>=20
>>>>=20
>>>>=20
>>>> Andy
>>>>=20
>>>>>=20
>>>>> -----Original Message-----
>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander=20=

>>>>> Pelov
>>>>> Sent: 3 juin 2015 11:01
>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>>>>=20
>>>>> Hello everyone,
>>>>>=20
>>>>> I would like to discuss with you to ideas/proposals in this mail, =
namely:
>>>>> 1) Caching the yang clash file on a remote server
>>>>> 2) Compressing the URL representation of YANG hashes
>>>>>=20
>>>>> 1) Caching the yang clash file on a remote server Even though hash =
collisions should happen rarely (if ever), there may be cases when it =
could be inevitable, and as such, it may be interesting to cache the =
clash_file somewhere on a remote server to avoid sending it over the =
constrained wireless interface. It could be used for other cases, where =
some frequently used resources are re-hashed for performance purposes. =
Maybe it would be interesting to allow the server to specify a remote =
location for the clash file? For static collisions or optimizations it =
could be that the YANG definition includes alternative hash values, =
which could be used in addition to the normal ones.
>>>>>=20
>>>>> 2) Compressing the URL representation of YANG hashes Another point=20=

>>>>> (which is unrelated), is to elide the leading "A"s from the base64=20=

>>>>> representation of the hash in the URL (which corresponds to =
eliding=20
>>>>> the leading zeroes from the hash). As specified in section 5.4. a=20=

>>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the=20
>>>>> leading A=E2=80=99s are elided it will be simply _
>>>>>=20
>>>>> This could pose problems only if in the future the size of the =
hash values is increased from 30 bits to some other (higher) value.
>>>>>=20
>>>>> This, however, could be very useful when having to frequently=20
>>>>> access the same resource. In such case, the server/network =
operator=20
>>>>> may decide to re-hash the URI to a shorter version, e.g. the=20
>>>>> /sys:system-state/sys:clock/sys:current-datetime could be remapped=20=

>>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>>=20
>>>>> Best,
>>>>> Alex
>>>>>=20
>>>>> PS.
>>>>> A typo (?), which may be already corrected, in the example of =
mod.uri on Page 26: the two responses have different scheme "mod.uri" =
and "moduri"
>>>>>=20
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>=20
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>=20


From nobody Thu Jun  4 10:09:39 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 60FF61A1A20; Thu,  4 Jun 2015 10:09:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oZT9xLXlW35l; Thu,  4 Jun 2015 10:09:34 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0118.outbound.protection.outlook.com [65.55.169.118]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3FC2F1A1A1E; Thu,  4 Jun 2015 10:09:34 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB790.namprd06.prod.outlook.com (10.141.247.142) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 17:09:31 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 4 Jun 2015 17:09:31 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQCAACQjAIABEVbQgAAcJwCAAAEG4IAADf+AgAAHS4A=
Date: Thu, 4 Jun 2015 17:09:30 +0000
Message-ID: <CO2PR0601MB792A217CDC64BFA81962E50FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRQ_k0WcM0bu3V9-9k-P_f0eQuUCC2kzNMU5Taq9+onNQ@mail.gmail.com>
In-Reply-To: <CABCOCHRQ_k0WcM0bu3V9-9k-P_f0eQuUCC2kzNMU5Taq9+onNQ@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB790;
x-microsoft-antispam-prvs: <CO2PR0601MB790714AF834FF4A259F8850FEB30@CO2PR0601MB790.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB790; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB790; 
x-forefront-prvs: 0597911EE1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(51704005)(38414003)(189002)(24454002)(377454003)(13464003)(2656002)(15974865002)(101416001)(86362001)(54356999)(87936001)(76176999)(50986999)(93886004)(46102003)(92566002)(62966003)(77156002)(106116001)(99286002)(102836002)(68736005)(77096005)(2950100001)(2900100001)(122556002)(40100003)(81156007)(4001540100001)(106356001)(33656002)(97736004)(110136002)(5001860100001)(74316001)(5001960100002)(105586002)(189998001)(5001830100001)(5002640100001)(19580395003)(76576001)(19580405001)(64706001)(66066001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB790; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2015 17:09:30.3435 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB790
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/A-wcXPAOeT-hD06woD2s7EkponQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 17:09:36 -0000

SGkgQW5keQ0KDQpJIHdhcyBhc3N1bWluZyB0aGF0IFlBTkcgaGFzaCB2YWx1ZXMgd2FzIHVuaXF1
ZSB3aXRoaW4gYSBtb2R1bGUgY29udGV4dCAoTW9kdWxlIGRhdGEgbm9kZXMgKyBhdWdtZW50aW5n
IGRhdGEgbm9kZXMpLg0KSWYgdGhpcyBpcyBub3QgdGhlIGNhc2UsIHdlIG1pZ2h0IGhhdmUgYSBt
b3JlIGltcG9ydGFudCBpc3N1ZSB0aGFuIHdoYXQgeW91IGFyZSBkZXNjcmliaW5nLg0KDQpMZXQg
YXNzdW1lIHRoYXQgd2UgaGF2ZSB0d28gbW9kdWxlcyBhdWdtZW50aW5nIHRoZSBzYW1lIGNvbnRh
aW5lci4NCkxldCBhbHNvIGFzc3VtZSB0aGF0IHRoZSBZQU5HIGhhc2ggb2YgZGF0YSBub2RlIEEy
IGFuZCBBMyBhcmUgdGhlIHNhbWUuDQoNCm1vZDE6DQogICBjb250YWluZXIgQSB7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyBZQU5HIGhhc2ggMjM0NQ0KICAgICAgIGxlYWYgQTEg
eyB0eXBlIHN0cmluZzsgfSAgICAgICAgICAgICAgICMgWUFORyBoYXNoICAxMjM0DQogICB9DQoN
Cm1vZDI6DQogICAgYXVnbWVudCAvbW9kMTpBIHsNCiAgICAgICBsZWFmIEEyIHsgdHlwZSBzdHJp
bmc7IH0gICAgICAgICAgICAgICMgWUFORyBoYXNoICA1Njc4DQogICAgfQ0KDQptb2QzOg0KICAg
IGF1Z21lbnQgL21vZDE6QSB7DQogICAgICAgbGVhZiBBMyB7IHR5cGUgc3RyaW5nOyB9ICAgICAg
ICAgICAgICAjIFlBTkcgaGFzaCAgNTY3OA0KICAgIH0NCg0KRmluYWxseSwgbGV0IGFzc3VtZSB0
aGF0IHRoZSBDb01JIHNlcnZlciBpbXBsZW1lbnRzIG1vZDEgYW5kIG1vZDIgYW5kIHRoZSBDb01J
IGNsaWVudCBpbXBsZW1lbnRzIGFsbCB0aHJlZSBtb2R1bGVzLg0KDQogICB7IDIzNDU6IHsNCiAg
ICAgICAxMjM0IDogImZvbyIsDQogICAgICAgNTY3OCA6ICJiYXIiDQogICAgICB9DQogICB9DQoN
CkhvdyB0aGUgQ29NSSBjbGllbnQga25vd24gdGhlIG1lYW5pbmcgb2YgImJhciIgPw0KDQpNaWNo
ZWwgVmVpbGxldHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5j
Lg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50
aW5jLmNvbQ0Kd3d3LnRyaWxsaWFudGluYy5jb20gwqAgDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNz
YWdlLS0tLS0NCkZyb206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0g
DQpTZW50OiA0IGp1aW4gMjAxNSAxMjozMA0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbGV4
YW5kZXIgUGVsb3Y7IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KU3ViamVjdDogUmU6
IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQgWUFORyBoYXNoIGluIFVS
TA0KDQpPbiBUaHUsIEp1biA0LCAyMDE1IGF0IDk6MDQgQU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1p
Y2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4gd3JvdGU6DQo+IEhpIEFuZHksDQo+DQo+
IEp1c3QgdG8gYmUgc3VyZSBhYm91dCB0aGUgc2NvcGUgb2YgeW91ciBjb21tZW50Lg0KPg0KPiBZ
b3Ugc2F5ICIgRWFjaCBvYmplY3QgaGFzIGEgWUFORyBIYXNoIiwgeWVzIGJ1dCB0aGlzIGlzIG5v
dCBhIHVuaXF1ZWx5IG9iamVjdCBpZGVudGlmeS4NCj4gRGlkIHdlIHJlYWNoIGEgY29uc2Vuc3Vz
IGFib3V0IHVzaW5nIHRoZSAgIiBZQU5HIGhhc2giICsgIm1vZHVsZSBuYW1lIG9yIGEgbW9kdWxl
IElEIiBhcyBhIHVuaXF1ZSBkYXRhIG5vZGUgKG9iamVjdCkgaWRlbnRpZmllcj8NCj4NCg0KSSBk
b24ndCBrbm93IGlmIGFueSBjb25zZW5zdXMgaGFzIGJlZW4gcmVhY2hlZC4NCklNTyB0aGUgWUFO
RyBoYXNoIGlzIGFsbCB0aGF0IGlzIG5lZWRlZC4NClRoZXJlIGlzIGEgc21hbGwgcHJvYmFiaWxp
dHkgdGhhdCB0aGUgaGFzaCBpcyBub3QgdW5pcXVlLg0KSWYgdGhpcyBoYXBwZW5zLCB0aGUgcmVo
YXNoIGlzIG5lZWRlZC4NCg0KSWYgYSBzcGVjaWZpYyB2YWx1ZSBtYXBzIHRvIG1vcmUgdGhhbiAx
IG9iamVjdCBvbiBhIHNlcnZlciwgdGhlbiB0aGF0IHZhbHVlIHRyaWdnZXJzIGEgcmVoYXNoIGlm
IHRoZSBjbGllbnQgdXNlcyBpdC4NCkkgcHJlZmVyIHRvIHNlbmQgdGhlIHJlaGFzaCBpbmZvIGFz
IGFuIGVycm9yIHJlc3BvbnNlIG9ubHkgd2hlbiBuZWVkZWQuDQoNCkkgcHJlZmVyIHRvIGxpbWl0
IG9wdGlvbmFsIGZlYXR1cmVzIHNvIHRoZSBzZXJ2ZXIgY29kZSBjYW4gYmUgYXMgc21hbGwgYXMg
cG9zc2libGUuDQoNClRoZXJlIGlzIGEgcHJvYmxlbSB3aXRoIEdFVC4NCkxldCdzIHNheSB0aGUg
ZGF0YSBtb2RlbCBpcyBhIHNpbXBsZSBjb250YWluZXIgd2l0aCAyIGxlYWZzOg0KDQptb2QxOg0K
DQogICBjb250YWluZXIgQSB7DQogICAgICAgbGVhZiBBMSB7IHR5cGUgc3RyaW5nOyB9DQogICB9
DQoNCg0KbW9kMjoNCg0KICAgIGF1Z21lbnQgL21vZDE6QSB7DQogICAgICAgbGVhZiBBMiB7IHR5
cGUgc3RyaW5nOyB9DQogICAgfQ0KDQpXaGF0IGlmIHRoZSBzZXJ2ZXIgZG9lcyBhIEdFVCBvbiAv
QSBidXQgQTEgYW5kIEEyIGhhdmUgYSBoYXNoIGNvbGxpc2lvbj8NClRoZSBzZXJ2ZXIgaXMgc3Vw
cG9zZWQgdG8gcmV0dXJuDQoNCiAgICB7IkEiOiB7DQogICAgICAgIkExIjoiZm9vIiwNCiAgICAg
ICAiQTIiOiJiYXIiDQogICAgICAgfQ0KICAgICB9DQoNCkJ1dCB0aGUgb3JpZ2luYWwgaGFzaGVz
IHdpbGwgbm90IHdvcms6DQoNCiAgIHsiMjM0NSI6IHsNCiAgICAgICIxMjM0IjoiZm9vIiwNCiAg
ICAgICIxMjM0IjoiYmFyIg0KICAgICAgfQ0KICAgfQ0KDQpUaGUgY2xpZW50IG5ldmVyIHJlcXVl
c3RlZCBBMSBvciBBMiBkaXJlY3RseSBidXQgd2lsbCBzdGlsbCBuZWVkIHRvIGtub3cgdGhlIHJl
aGFzaCBpbmZvIGZvciB0aGVzZSBub2Rlcy4NCg0KVGhlIHNlcnZlciBjb3VsZCByZXR1cm4gdGhl
IHJlaGFzaCBpbmZvIGluIHRoZSBHRVQgcmVzcG9uc2UsIG9yIHJldHVybiBzb21lIGZsYWcgdGhh
dCB0aGUgY2xpZW50IG5lZWRzIHRvIHJldHJpZXZlIHRoZSByZWhhc2ggaW5mby4NCkV2ZW4gaWYg
QTEgYW5kIEEyIGFyZSBub3Qgc2libGluZ3MsIHRoZSByZWhhc2ggaW5mbyBuZWVkcyB0byBiZSBz
ZW50IGJlY2F1c2UgdGhlIHNlcnZlciB3aWxsIHJlbWFwIHRoZSBjb2xsaWRlZCBoYXNoIHZhbHVl
ICIxMjM0Ii4NCg0KSW4gdGhpcyBjYXNlIGl0IG1pZ2h0IGJlIHVzZWZ1bCBmb3IgdGhlIHNlcnZl
ciB0byByZXR1cm4gYSAibG9uZyBmb3JtIg0Kb2YgdGhlIG5vZGUsIHdoaWNoIGluY2x1ZGVzIHRo
ZSByZXF1ZXN0ZWQgdmFsdWUgYW5kIHRoZSByZWhhc2ggaW5mby4NClRoaXMgcGFydCBvZiB5b3Vy
IHBsYW4gSSBsaWtlIChpZiBJIHVuZGVyc3RhbmQgaXQpLiAgQnV0IHJlcXVpcmluZyB0aGUgc2Vy
dmVyIHRvIGFjY2VwdCB0aGUgbG9uZy1mb3JtIGFzIGlucHV0IGlzIG5vdCBuZWVkZWQuDQo=


From nobody Thu Jun  4 10:18:06 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 15DE61A1B81; Thu,  4 Jun 2015 10:18:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.552
X-Spam-Level: **
X-Spam-Status: No, score=2.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CZGKH8ITMn4r; Thu,  4 Jun 2015 10:18:00 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0788.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:788]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 114931A1B73; Thu,  4 Jun 2015 10:17:59 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB789.namprd06.prod.outlook.com (10.141.247.141) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 17:17:43 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 4 Jun 2015 17:17:43 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQCAACQjAIABEVbQgAAcJwCAAAEG4IAADn2AgAAK7wA=
Date: Thu, 4 Jun 2015 17:17:43 +0000
Message-ID: <CO2PR0601MB7924CD68B9B277899347FC4FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu>
In-Reply-To: <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB789;
x-microsoft-antispam-prvs: <CO2PR0601MB7898C25E2819F612AC45F42FEB30@CO2PR0601MB789.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB789; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB789; 
x-forefront-prvs: 0597911EE1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(38414003)(189002)(199003)(377454003)(24454002)(13464003)(377424004)(53754006)(51704005)(122556002)(77096005)(40100003)(99286002)(2950100001)(5890100001)(54356999)(76176999)(50986999)(2900100001)(101416001)(15975445007)(76576001)(74316001)(102836002)(77156002)(106356001)(15974865002)(5002640100001)(92566002)(68736005)(62966003)(19580405001)(19580395003)(4001540100001)(46102003)(2656002)(93886004)(86362001)(87936001)(5001920100001)(81156007)(105586002)(97736004)(66066001)(33656002)(189998001)(5001960100002)(5001830100001)(5001860100001)(561944003)(106116001)(64706001)(110136002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB789; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2015 17:17:43.4052 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB789
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/lB4JKyFajJFivjKahxO8ByFCitA>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 17:18:04 -0000

SGkgQWxleGFuZGVyDQoNCkluIHRoaXMgcHJvcG9zYWwsIHRoZSAiTWFuYWdlZCB2cyB1bm1hbmFn
ZWQiIGZsYWcgaXMgdGhlIExTQiBvciBNU0I/DQpJZiBpdCdzIHRoZSBMQkIsIHdlIGNhbiB1c2Ug
eW91ciBjb21wcmVzc2lvbiBwcm9wb3NhbCB0byBzYXZlIFVSSSBhbmQgcGF5bG9hZCBzcGFjZS4N
Cg0KSSBsaWtlIHRoaXMgYXBwcm9hY2guDQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNo
aXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQu
IDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQp3d3cudHJpbGxpYW50aW5j
LmNvbSDCoCANCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogQWxleGFuZGVy
IFBlbG92IFttYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXVdIA0KU2Vu
dDogNCBqdWluIDIwMTUgMTI6MzINClRvOiBNaWNoZWwgVmVpbGxldHRlDQpDYzogQW5keSBCaWVy
bWFuOyA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbY29yZV0g
Q29NSSByZW1vdGUgc2VydmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiBVUkwNCg0KSGkg
YWxsLA0KDQpKdXN0IGEgc2hvcnQgaWRlYSBmb3IgdGhlIGhhc2ggY2xhc2ggaXNzdWUuIA0KDQpU
aGUgMzAgYml0cywgd2hpY2ggYXJlIHJlc2VydmVkIGZvciB0aGUgWUFORyBoYXNoIGNhbiBoYXZl
IGEgc3RydWN0dXJlIDoNCjEgYml0ID0gc3RydWN0dXJlZCBZQU5HIGhhc2ggKDApIG9yIHB1cmUg
WUFORyBoYXNoICgxKQ0KICAgSWYgMCAoc3RydWN0dXJlZCksIHRoZW4gOg0KICAgICAgIDEgYml0
ID0gbWFuYWdlZCAoMCkgb3Igbm9uLW1hbmFnZWQgKDEpDQogICAgICAgMTggYml0cyA9IG1vZHVs
ZSBJRA0KICAgICAgIDEwIGJpdHMgPSBpdGVtIElEDQogICBJZiAxIChub24tc3RydWN0dXJlZCks
IHRoZW46DQogICAgICAgMjkgYml0cyA9IGxlYXN0IHNpZ25pZmljYW50IDI5IGJpdHMgb2YgdGhl
IFlBTkcgaGFzaC4NCiAgICAgDQpJbiBjYXNlIG9mIGNsYXNoLCBzZW5kIGVycm9yLCB0aGUgZnVs
bCBVUkkgbXVzdCBiZSB1c2VkICh3aGljaCBzaG91bGQgYmUgd2l0aCBleHRyZW1lbHkgbG93IHBy
b2JhYmlsaXR5KSBUaGlzIHdheSwgaW4gdGhlIHdvcnN0IGNhc2UgeW91IGFyZSBsaW1pdGluZyB5
b3VyIGhhc2ggdmFsdWUgZnJvbSAzMCB0byAyOSBiaXRzIChhbmQgdGh1cyBzbGlnaHRseSBpbmNy
ZWFzaW5nIHRoZSBjbGFzaCBwcm9iYWJpbGl0eSkuDQoNCklmIHN0cnVjdHVyZWQgWUFORyBoYXNo
LCB0aGVuOg0KICAgMCA9IG1hbmFnZWQgKGUuZy4gSUVURi1hc3NpZ25lZCBtb2R1bGUgSUQpDQog
ICAgICAxOCBiaXRzID0gdGhlIElEIG9mIHRoZSBtb2R1bGUgKDEsIDIsIDMsIOKApi4sIDI2MjE0
MykgYXNzaWduZWQgaW5jcmVtZW50YWxseSBieSBJQU5BICgwIHJlc2VydmVkIGZvciBzcGVjaWFs
IHVzYWdlKQ0KICAgICAgMTAgYml0cyA9IHRoZSBJRCBvZiB0aGUgaXRlbSBpbiB0aGUgbW9kdWxl
LCBpbmNyZW1lbnRlZCBhdCBlYWNoIGl0ZW0gKDEuLjEwMjMgLSBob3BlIHRoaXMgaXMgc3VmZmlj
aWVudCBmb3IgYWxsIGNhc2VzKS4NCiAgIDEgPSB1bm1hbmFnZWQNCiAgICAgICAxOCBiaXRzID0g
SUQgb2YgbW9kdWxlLCBieSBkZWZhdWx0IHRoZSAxOCBsZXNzIHNpZ25pZmljYW50IGJpdHMgb2Yg
dGhlIG1vZHVsZS4gSXQgaXMgdXAgdG8gdGhlIHVzZXIgdG8gYXNzdXJlIHRoYXQgdGhlcmUgYXJl
IG5vIGNsYXNoZXMgd2l0aCB0aGUgbmFtZXMgb2YgdGhlIG90aGVyIG1vZHVsZXMgb24gdGhlIGRl
dmljZQ0KICAgICAgIDEwIGJpdHMgPSBJRCBvZiB0aGUgaXRlbS4gSXQgaXMgdXAgdG8gdGhlIGlt
cGxlbWVudGVyIHRvIGVuc3VyZSB0aGF0IHRoZXJlIGFyZSBubyBjbGFzaGVzIHdpdGhpbiB0aGUg
bW9kdWxlLiANCg0KVHdvIHBvc3NpYmxlIGRyYXdiYWNrcyBvZiB0aGlzIGFwcHJvYWNoLCBob3dl
dmVyOg0KICAtIEZvciBtYW5hZ2VkIElEcyB5b3Ugd2lsbCBwcm9iYWJseSBoYXZlIHRvIGtlZXAg
Ym90aCB0aGUgWUFORyBoYXNoIGFuZCB0aGUgbWFuYWdlZCBmdWxsIElELg0KICAtIEluIGNhc2Ug
b2YgdW5tYW5hZ2VkIElEcyB5b3UgaW5jcmVhc2UgdGhlIHByb2JhYmlsaXR5IG9mIGNvbGxpc2lv
biBvZiAxRS05IHRvIDJFLTkuDQoNCkJlc3QsDQpBbGV4YW5kZXINCg0KDQo+IExlIDQganVpbiAy
MDE1IMOgIDE4OjA0LCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFu
dGluYy5jb20+IGEgw6ljcml0IDoNCj4gDQo+IEhpIEFuZHksDQo+IA0KPiBKdXN0IHRvIGJlIHN1
cmUgYWJvdXQgdGhlIHNjb3BlIG9mIHlvdXIgY29tbWVudC4NCj4gDQo+IFlvdSBzYXkgIiBFYWNo
IG9iamVjdCBoYXMgYSBZQU5HIEhhc2giLCB5ZXMgYnV0IHRoaXMgaXMgbm90IGEgdW5pcXVlbHkg
b2JqZWN0IGlkZW50aWZ5Lg0KPiBEaWQgd2UgcmVhY2ggYSBjb25zZW5zdXMgYWJvdXQgdXNpbmcg
dGhlICAiIFlBTkcgaGFzaCIgKyAibW9kdWxlIG5hbWUgb3IgYSBtb2R1bGUgSUQiIGFzIGEgdW5p
cXVlIGRhdGEgbm9kZSAob2JqZWN0KSBpZGVudGlmaWVyPw0KPiANCj4gVGhpcyBjYW4gdGFrZSB0
aGUgZm9ybSBvZiBhIHJlaGFzaCB0YWJsZSBhdmFpbGFibGUgb24gdGhlIENvTUkgc2VydmVyIA0K
PiBvciBlbHNld2hlcmUgKCIgWUFORyBoYXNoIiwgIm1vZHVsZSBuYW1lIG9yIG1vZHVsZSBJRCIs
ICJyZWhhc2ggb3IgDQo+IGFsaWFzIikgVGhpcyBjYW4gdGFrZSB0aGUgZm9ybSBvZiBhbiBlcnJv
ciBtZXNzYWdlIGNvbnRhaW5pbmcgKCIgWUFORyANCj4gaGFzaCIsICJtb2R1bGUgbmFtZSBvciBt
b2R1bGUgSUQiLCAicmVoYXNoIG9yIGFsaWFzIikgVGhpcyBjYW4gdGFrZSANCj4gdGhlIGZvcm0g
b2YgYSBmdWxseSBxdWFsaWZpZWQgaWRlbnRpZmllciB3aXRoaW4gdGhlIHJlcXVlc3Qgb3IgcGF5
bG9hZCANCj4gKFJFUTogR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdCg8bW9kdWxlIG5hbWU+LjxZ
QU5HIGhhc2g+KQ0KPiANCj4gTWljaGVsIFZlaWxsZXR0ZQ0KPiBTeXN0ZW0gQXJjaGl0ZWN0dXJl
IERpcmVjdG9yDQo+IFRyaWxsaWFudCBJbmMuDQo+IFRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3
DQo+IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0KPiB3d3cudHJpbGxpYW50aW5j
LmNvbSAgIA0KPiANCj4gDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFu
ZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0NCj4gU2VudDogNCBqdWluIDIw
MTUgMTE6MzcNCj4gVG86IE1pY2hlbCBWZWlsbGV0dGUNCj4gQ2M6IEFsZXhhbmRlciBQZWxvdjsg
NnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQo+IFN1YmplY3Q6IFJlOiBbY29yZV0gQ29N
SSByZW1vdGUgc2VydmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiBVUkwNCj4gDQo+IEhp
LA0KPiANCj4gSSBkbyBub3QgYWdyZWUgdGhhdCB0aGUgbW9kdWxlIG5hbWUgb3IgYSBtb2R1bGUg
SUQgbmVlZHMgdG8gYmUgdXNlZCBhdCBhbGwgaW4gdGhlIG9iamVjdCBpZGVudGlmaWVyLiAgRWFj
aCBvYmplY3QgaGFzIGEgWUFORyBIYXNoLg0KPiBSZXRyaWV2aW5nIGEgbm9kZSwgd2hldGhlciBi
eSBoYXNoIElEIG9yIG1vZHVsZS1JRC5oYXNoIHdpbGwgY2F1c2UgYWxsIGRlc2NlbmRhbnQgbm9k
ZXMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJldHJpZXZhbCwgZXZlbiBpZiB0aGV5IGFyZSBhdWdt
ZW50aW5nIG5vZGVzIGZyb20gYW5vdGhlciBtb2R1bGUuDQo+IA0KPiBZQU5HIGRhdGEgaXMgaGll
cmFyY2hpY2FsLg0KPiBUaGUgbW9kdWxlcyBhcmUganVzdCBwYWNrYWdpbmcgZm9yIGRlZmluaXRp
b25zLg0KPiBUaGV5IGRvIG5vdCBkZWZpbmUgYW55IGNvbnRhaW5tZW50IG9yIHN0cnVjdHVyZSB3
aXRoaW4gdGhlIGNvbmNlcHR1YWwgc2NoZW1hIHRyZWUuDQo+IA0KPiANCj4gQW5keQ0KPiANCj4g
DQo+IE9uIFRodSwgSnVuIDQsIDIwMTUgYXQgODoyMSBBTSwgTWljaGVsIFZlaWxsZXR0ZSA8TWlj
aGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPiB3cm90ZToNCj4+IEhpIEFuZHkNCj4+IA0K
Pj4gQWJvdXQgIkFsbW9zdCAtLSB0aGlzIGlzIGRlZmluZWQgaW4gUkZDIDYwMjAgLS0gdGhlIGF1
Z21lbnRpbmcgbm9kZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBhdWdtZW50ZWQgbW9kdWxlLiAgVGhl
eSB3aWxsIGJlIHJldHVybmVkIGluIE5FVENPTkYgYW5kIFJFU1RDT05GIHJldHJpZXZhbCBvcGVy
YXRpb25zIGZvciBhbiBhbmNlc3RvciBub2RlIGJ1dCB0aGV5IGFyZSBub3QgcGFydCBvZiB0aGUg
YXVnbWVudGVkIG1vZHVsZS4gIE9ubHkgb2JqZWN0cyBkZWZpbmVkIGluIHRoZSBtb2R1bGUgbmFt
ZXNwYWNlIGFyZSBwYXJ0IG9mIHRoZSBtb2R1bGUuIg0KPj4gDQo+PiBVbmRlcnN0b29kLCB0aGlz
IGlzIHdoeSBteSBjb250cmlidXRpb24gaW50cm9kdWNlIHRoZSBuZXcgdGVybSwgIk1vZHVsZSBj
b250ZXh0Ii4gQXVnbWVudGluZyBub2RlcyBhcmUgbm90IHBhcnQgb2YgdGhlIGF1Z21lbnRlZCBt
b2R1bGUgYnV0LCBhcyBkZWZpbmVkLCBhcmUgcGFydCBvZiB0aGUgIk1vZHVsZSBjb250ZXh0Ii4g
VGhpcyBuZXcgY29uY2VwdCB3YXMgcmVxdWlyZSB0byBtaW5pbWl6ZSB0aGUgb3ZlcmhlYWQgd2hl
biByZXRyaWV2aW5nIHRoZSBjb21wbGV0ZSBkYXRhc3RvcmUgY29udGFpbmluZyBtdWx0aXBsZSBt
b2R1bGUgY29udGV4dHMgd2l0aCBzb21lIGhhdmluZyBhdWdtZW50aW5nIG5vZGVzLg0KPj4gDQo+
PiAgIFJFUzogMi4wNSBDb250ZW50IChDb250ZW50LUZvcm1hdDogYXBwbGljYXRpb24vY2JvcikN
Cj4+ICAgew0KPj4gICAgICAiYSIgOiB7DQo+PiAgICAgICAgIDM2NTI1NzIzNSA6ICJsZWFmQTEg
dmFsdWUiLA0KPj4gICAgICAgICA3MDIxNDk2MjYgOiB7DQo+PiAgICAgICAgICAgIDIxNTk5MzMy
OSA6ICJsZWFmQTIgdmFsdWUiLA0KPj4gICAgICAgICAgICA5NjIxOTE2ODIgOiAibGVhZkMxIHZh
bHVlIiAgICAgICAgICAgICAgICAgICAgIyBBdWdtZW50aW5nIGRhdGEgbm9kZQ0KPj4gICAgICAg
ICB9LA0KPj4gICAgICAgICA4MjkyMjI5ODMgOiAibGVhZlMgdmFsdWUiICAgICAgICAgICAgICAg
ICAgICAgICAgICMgU3ViLW1vZHVsZSBkYXRhIG5vZGUNCj4+ICAgICAgfSwNCj4+ICAgICAgImIi
IDogew0KPj4gICAgICAgICAyODk1NjQ2OTYgOiAibGVhZkIgdmFsdWUiDQo+PiAgICAgIH0sDQo+
PiAgICAgICJjIiA6IHsNCj4+ICAgICAgICAgOTkzNTMzNTI3IDogImxlYWZDMiB2YWx1ZSINCj4+
ICAgICAgfQ0KPj4gICB9DQo+PiANCj4+IE1pY2hlbCBWZWlsbGV0dGUNCj4+IFN5c3RlbSBBcmNo
aXRlY3R1cmUgRGlyZWN0b3INCj4+IFRyaWxsaWFudCBJbmMuDQo+PiBUZWw6IDQ1MC0zNzUtMDU1
NiBleHQuIDIzNw0KPj4gbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+PiB3d3cu
dHJpbGxpYW50aW5jLmNvbQ0KPj4gDQo+PiANCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t
DQo+PiBGcm9tOiBBbmR5IEJpZXJtYW4gW21haWx0bzphbmR5QHl1bWF3b3Jrcy5jb21dDQo+PiBT
ZW50OiAzIGp1aW4gMjAxNSAxNzozOA0KPj4gVG86IE1pY2hlbCBWZWlsbGV0dGUNCj4+IENjOiBB
bGV4YW5kZXIgUGVsb3Y7IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KPj4gU3ViamVj
dDogUmU6IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQgWUFORyBoYXNo
IGluIA0KPj4gVVJMDQo+PiANCj4+IE9uIFdlZCwgSnVuIDMsIDIwMTUgYXQgMTI6NDggUE0sIE1p
Y2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4gd3JvdGU6
DQo+Pj4gQWJvdXQgIkkgd291bGQgcHJlZmVyIGlmIGhhc2ggY29sbGlzaW9ucyBpbiBhIHNpbmds
ZSBtb2R1bGUgd2VyZSBub3QgYWxsb3dlZC4iDQo+Pj4gQWdyZWVkIGJ1dCBob3cgdGhpcyBpcyBp
bXBsZW1lbnRlZC4NCj4+PiANCj4+IA0KPj4gDQo+PiBCeSBjaGVja2luZyB0aGUgWUFORyBoYXNo
ZXMgYmVmb3JlIGl0IGlzIHB1Ymxpc2hlZCwgc2ltaWxhciB0byBjaGVja2luZyB0aGUgWUFORyBz
eW50YXggd2l0aCBhIFlBTkcgY29tcGlsZXIuDQo+PiANCj4+IA0KPj4+IEFib3V0ICJCdXQgdGhl
c2UgbnVtYmVycyBkbyBub3QgZXhpc3QgaW4gYW55IG1vZHVsZXMgYW5kIHNvIHRoZXkgY2Fubm90
IGJlIHJlbGllZCBvbiBpbiBDb01JLg0KPj4+IEkgdW5kZXJzdGFuZCBidXQgSSBhc3N1bWUgdGhh
dCBhIG1vZHVsZSBjYW4gYmUgcmUtcHVibGlzaGVkIHdpdGggdGhlIGFkZGVkIHN0YXRlbWVudCB3
aGVuIHJlcXVpcmUuIElmIGEgQ29NSSBpbXBsZW1lbnRlciB0cnkgdG8gaW1wbGVtZW50IGEgbW9k
dWxlIGNvbnRhaW5pbmcgYSBjbGFzaCwgaGUgY2FuIGxvb2sgZm9yIGEgdmVyc2lvbiBvZiB0aGlz
IG1vZHVsZSBjb250YWluaW5nIHRoZSBzcGVjaWFsIFlBTkcgc3RhdGVtZW50LiBUaGUgbGlrZWxp
aG9vZCBvZiBzdWNoIGNsYXNoIGlzIGV4dHJlbWVseSBsb3cgYW5kIHN1Y2ggZmFsbGJhY2sgc29s
dXRpb24gd29u4oCZdCBiZSByZXF1aXJlZCBvZnRlbi4gSG93ZXZlciwgdGhlIFJGQyB3aWxsIHNw
ZWNpZnkgaG93IHRvIHJlc29sdmUgc3VjaCBzaXR1YXRpb24gaWYgdGhpcyBldmVyIGhhcHBlbi4g
VGhpcyBzdGF0ZW1lbnQgY2FuIGFsc28gYmUgdXNlZCB0byBhZGRyZXNzIHRoZSBuZWVkIGZvciBk
YXRhIG5vZGUgaWRlbnRpZmllciBjb21wYWN0bmVzcyBhcyBtZW50aW9uZWQgYnkgQWxleGFuZGVy
IGluIGl0cyBvcmlnaW5hbCBlbWFpbC4NCj4+PiANCj4+IA0KPj4gSSB0aGluayB0aGUgYWQtaG9j
IGlkIGFzc2lnbm1lbnRzIGFyZSBwb2ludGxlc3MgYmVjYXVzZSB0aGV5IGFyZSBub3QgdW5pdmVy
c2FsLiAgVGhlIG9ubHkgdGhpbmcgdGhhdCBjYW4gYmUgY291bnRlZCBvbiBpcyB0aGUgbW9kdWxl
IG5hbWUgYW5kIHRoZSBYUGF0aCBhYnNvbHV0ZSBwYXRoIGV4cHJlc3Npb24gb2YgZWFjaCBvYmpl
Y3QuDQo+PiANCj4+IA0KPj4+IEFib3V0ICJJbiBORVRDT05GLCBtb2R1bGVzIHRlbmQgdG8gdXNl
IGF1Z21lbnQgYSBsb3QiDQo+Pj4gSW4gbXkgZG9jdW1lbnQgIiBkcmFmdC12YW5kZXJzdG9rLWNv
cmUtY29taS0wNiAtIE1WLmRvY3ggIiwgSSBwcm9wb3NlIGEgbmV3IGRlZmluaXRpb24gdG8gYWRk
cmVzcyB0aGlzLg0KPj4+IA0KPj4gDQo+PiBXaGF0IGlzIGl0Pw0KPj4gSU1PIHlvdSBzaG91bGQg
cG9zdCBjb21tZW50cyB0byB0aGUgbWFpbGluZyBsaXN0IG5vdCBtYXJrdXAgdG8gYSB3b3JkIGRv
Y3VtZW50LiAgSXQgaXMgdG9vIGhhcmQgdG8gZm9sbG93Lg0KPj4gDQo+PiANCj4+PiBNb2R1bGUg
Q29udGV4dDogQSBtb2R1bGUgY29udGV4dCBpcyBjb21wb3NlZCBvZiBhbGwgZGF0YSBub2Rlcywg
bm90aWZpY2F0aW9ucyBhbmQgUlBDcyBkZWZpbmVkIGluIGEgWUFORyBtb2R1bGUgYW5kIGluY2x1
ZGVkIHN1Yi1tb2R1bGVzIG9yIGFkZGVkIHRvIHRoZW0gdXNpbmcgdGhlIGF1Z21lbnQgWUFORyBz
dGF0ZW1lbnQuDQo+Pj4gDQo+PiANCj4+IEFsbW9zdCAtLSB0aGlzIGlzIGRlZmluZWQgaW4gUkZD
IDYwMjAgLS0gdGhlIGF1Z21lbnRpbmcgbm9kZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBhdWdtZW50
ZWQgbW9kdWxlLiAgVGhleSB3aWxsIGJlIHJldHVybmVkIGluIE5FVENPTkYgYW5kIFJFU1RDT05G
IHJldHJpZXZhbCBvcGVyYXRpb25zIGZvciBhbiBhbmNlc3RvciBub2RlIGJ1dCB0aGV5IGFyZSBu
b3QgcGFydCBvZiB0aGUgYXVnbWVudGVkIG1vZHVsZS4gIE9ubHkgb2JqZWN0cyBkZWZpbmVkIGlu
IHRoZSBtb2R1bGUgbmFtZXNwYWNlIGFyZSBwYXJ0IG9mIHRoZSBtb2R1bGUuDQo+PiANCj4+IA0K
Pj4gQW5keQ0KPj4gDQo+PiANCj4+IA0KPj4+IFNlY3Rpb24gNC4xLjMuNCBzaG93IGFuIGV4YW1w
bGUgb2YgaW5jbHVkZSwgaW1wb3J0IGFuZCBhdWdtZW50Lg0KPj4+IA0KPj4+IE1pY2hlbCBWZWls
bGV0dGUNCj4+PiBTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQo+Pj4gVHJpbGxpYW50IElu
Yy4NCj4+PiBUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KPj4+IG1pY2hlbC52ZWlsbGV0dGVA
dHJpbGxpYW50aW5jLmNvbQ0KPj4+IHd3dy50cmlsbGlhbnRpbmMuY29tDQo+Pj4gDQo+Pj4gDQo+
Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+PiBGcm9tOiBBbmR5IEJpZXJtYW4gW21h
aWx0bzphbmR5QHl1bWF3b3Jrcy5jb21dDQo+Pj4gU2VudDogMyBqdWluIDIwMTUgMTQ6NTQNCj4+
PiBUbzogTWljaGVsIFZlaWxsZXR0ZQ0KPj4+IENjOiBBbGV4YW5kZXIgUGVsb3Y7IDZ0aXNjaEBp
ZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KPj4+IFN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZW1v
dGUgc2VydmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiANCj4+PiBVUkwNCj4+PiANCj4+
PiBPbiBXZWQsIEp1biAzLCAyMDE1IGF0IDExOjE2IEFNLCBNaWNoZWwgVmVpbGxldHRlIDxNaWNo
ZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+IHdyb3RlOg0KPj4+PiBIaSBBbmR5DQo+Pj4+
IA0KPj4+PiBDb3VwbGUgb2YgcXVlc3Rpb25zIGFib3V0IHlvdXIgcHJvcG9zZWQgc29sdXRpb24u
DQo+Pj4+IA0KPj4+PiA9PT0gUXVlc3Rpb24gIzEsIE5ldyBZQU5HIHN0YXRlbWVudA0KPj4+PiAN
Cj4+Pj4gWW91ciBzb2x1dGlvbiB3b3JrcyBvbmx5IGlmIGhhc2ggY2xhc2hlcyB3aXRoaW4gYSBt
b2R1bGUgYXJlIHJlc29sdmVkIGF0IGRlc2lnbiB0aW1lLiBJZiBub3QsIHRoZSBlcnJvciBtZXNz
YWdlIHdpbGwgcmV0dXJuIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gd2hpY2ggaXMgbm90IHN1
ZmZpY2llbnQgdG8gcmVzb2x2ZSB3aGljaCBkYXRhIG5vZGUgaXMgd2hpY2guDQo+Pj4+IA0KPj4+
PiAgIHsgIjEyMzQiOiBbDQo+Pj4+ICAgICAgICAgICJtb2R1bGUtQSI6IjQ1NjciLA0KPj4+PiAg
ICAgICAgICAibW9kdWxlLUEiOiI2NTIzIg0KPj4+PiAgICAgIF0NCj4+Pj4gICB9DQo+Pj4+IA0K
Pj4+IA0KPj4+IA0KPj4+IFRoZSBvcmlnaW5hbCBwcm9wb3NhbCBoYWQgYSAzLXR1cGxlIHsgbW9k
dWxlLW5hbWUsIHBhdGgtZXhwciwgbmV3LWhhc2ggfSBXZSBkaXNjdXNzZWQgc29tZSBvcHRpbWl6
YXRpb25zIGluIHRoZSA2VElTQ0ggY2FsbCB0byByZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHBhdGgt
ZXhwciBhbmQgc3RpbGwgbm90IHJlcXVpcmUgdGhlIGNsaWVudCB0byBzdG9yZSBhbGwgdGhlIHBh
dGggc3RyaW5ncywgc3VjaCBhcyBzdG9yZSBhIGZldyBieXRlcyBmcm9tIHRoZSBwYXRoIHN0cmlu
Z3MgbGlrZSA2dGggYW5kIDExdGggYnl0ZXMgKEF2b2lkIHRoZSBjb21tb24gaWV0Zi0gcHJlZml4
IGZvciBtYW55IG1vZHVsZSBuYW1lcykuDQo+Pj4gDQo+Pj4gVGhpcyBpcyBub3QgZGV0ZXJtaW5p
c3RpYy4gT25seSB0aGUgZnVsbCBwYXRoIHN0cmluZyBpcyBmb29sLXByb29mLg0KPj4+IEkgd291
bGQgcHJlZmVyIGlmIGhhc2ggY29sbGlzaW9ucyBpbiBhIHNpbmdsZSBtb2R1bGUgd2VyZSBub3Qg
YWxsb3dlZC4NCj4+PiBUaGV5IG5lZWQgdG8gYmUgcmVzb2x2ZWQgYXQgZGVzaWduIHRpbWUuICBJ
ZiB0aGlzIGlzIG5vdCBwb3NzaWJsZSwgdGhlbiBhIHN0YW5kYXJkIHJlaGFzaCBhbGdvcml0aG0g
c2hvdWxkIGJlIHVzZWQgc28gdGhlIGNvbGxpc2lvbiBpcyByZXNvbHZlZCBpbiBhIHByZWRpY3Rh
YmxlIHdheS4gIGUuZy4sIHRyeSBhcHBlbmRpbmcgIl8iLCB0aGVuIHRyeSAiX18iLCBldGMuDQo+
Pj4gVGhlIHJlc3VsdCB3b3VsZCBiZSB0aGF0IGhhc2ggY29sbGlzaW9ucyBpbiBhIHNpbmdsZSBt
b2R1bGUgZG8gbm90IG9jY3VyIGluIENvTUkuDQo+Pj4gDQo+Pj4gDQo+Pj4+IElzIGl0IHBvc3Np
YmxlL2FjY2VwdGFibGUgdG8gcmVxdWVzdCBhIG5ldyBZQU5HIHN0YXRlbWVudCB0byBtYW51YWxs
eSBhc3NpZ24gYSBJRCB0byBhIGRhdGEgbm9kZT8NCj4+Pj4gU2FtZSBxdWVzdGlvbiBmb3IgYSBt
b2R1bGUgSUQ/DQo+Pj4+IA0KPj4+PiBGb3IgZXhhbXBsZSAoc2VlICJpZCAxNiIgYW5kICJpZCAy
NSIgYmVsbG93KSA6DQo+Pj4+IA0KPj4+PiAgIG1vZHVsZSBhIHsNCj4+Pj4gICAgICBuYW1lc3Bh
Y2UgYS1uczsNCj4+Pj4gICAgICBwcmVmaXggYTsNCj4+Pj4gICAgICBpZCAxNjsNCj4+Pj4gICAg
ICByZXZpc2lvbiAyMDE1LTAxLTAxOw0KPj4+PiANCj4+Pj4gICAgICBsZWFmIGxlYWZBMSB7IHR5
cGUgc3RyaW5nOyBpZCAyNSB9DQo+Pj4+ICAgICAgY29udGFpbmVyIGNvbnRhaW5lckEgew0KPj4+
PiAgICAgICAgIGxlYWYgbGVhZkEyIHsgdHlwZSBzdHJpbmd9DQo+Pj4+ICAgICAgfQ0KPj4+PiAg
IH0NCj4+PiANCj4+PiANCj4+PiBZb3UgY291bGQgaGF2ZSBhbiBleHRlbnNpb24gc3RhdGVtZW50
IGRvIGFueXRoaW5nIHlvdSB3YW50Og0KPj4+IA0KPj4+ICAgIGNvbWk6aWQgIDE2Ow0KPj4+IA0K
Pj4+IEJ1dCB0aGVzZSBudW1iZXJzIGRvIG5vdCBleGlzdCBhbnkgYW55IG1vZHVsZXMgYW5kIHNv
IHRoZXkgY2Fubm90IGJlIHJlbGllZCBvbiBpbiBDb01JLg0KPj4+IA0KPj4+IA0KPj4+PiANCj4+
Pj4gPT09IFF1ZXN0aW9uICMyLCBJbnRyb2R1Y3Rpb24gb2YgYW4gb3B0aW9uYWwgcXVlcnkgcGFy
YW1ldGVyIHVzZWQgDQo+Pj4+IHRvIHRhcmdldCBhIHNwZWNpZmljIG1vZHVsZQ0KPj4+PiANCj4+
Pj4gRm9yIG5vZGVzIC8gbmV0d29ya3Mgd2hpY2ggY2FuIGFmZm9yZCBhIHNsaXRlbHkgbGFyZ2Vy
IHBheWxvYWQgKElFRUUgODAyLjE1LjRnIGZvciBleGFtcGxlKSBidXQgd2FudCB0byBhdm9pZCB0
aGUgcHJvY2Vzc2luZyBhbmQgc3RvcmFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIHBvcnBvc2VkIGVy
cm9yIG1lc3NhZ2UsIGFyZSB5b3Ugb3Bwb3NlZCB0byB0aGUgc3VwcG9ydCBvZiBhbiBvcHRpb25h
bCBDb0FQIHF1ZXJ5IHBhcmFtZXRlciB1c2UgY2FycnkgdGhlIG1vZHVsZSBuYW1lIG9yIG1vZHVs
ZSBJRCA/DQo+Pj4+IA0KPj4+PiBGb3IgZXhhbXBsZToNCj4+Pj4gDQo+Pj4+IEdFVCBleGFtcGxl
LmNvbS9ZOGQ3cz9zZWxlY3Q9IGlldGYtNnRpc2NoLW1hYw0KPj4+PiANCj4+Pj4gPT09IFF1ZXN0
aW9uICMzLCBVc2Ugb2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiB0aGUg
DQo+Pj4+IFVSSQ0KPj4+PiANCj4+Pj4gQXJlIHlvdSBvcG9zZWQgdG8gdGhlIHVzZSBvZiB0aGUg
c2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBpbnN0ZWFkIG9mIA0KPj4+PiB0aGUgVVJJIHRvIGlkZW50
aWZ5IGRhdGEgbm9kZShzKQ0KPj4+PiANCj4+PiANCj4+PiBOb3QgcmVhbGx5Lg0KPj4+IA0KPj4+
IEkgZG9uJ3Qga25vdyBob3cgbWl4ZWQgdGhlIG1vZHVsZXMgd2lsbCBnZXQgaW4gQ29NSS4NCj4+
PiBJbiBORVRDT05GLCBtb2R1bGVzIHRlbmQgdG8gdXNlIGF1Z21lbnQgYSBsb3QsIHNvIHRoZSBu
b2RlcyBmcm9tICdtb2R1bGUtQScgbWF5IGJlIG5lc3RlZCBub2Rlcy4NCj4+PiBSZXRyaWV2aW5n
IGp1c3QgdGhlIGF1Z21lbnRpbmcgbm9kZXMgYW5kIGlnbm9yaW5nIHRoZSBhdWdtZW50ZWQgbm9k
ZXMgd291bGQgbGlrZWx5IGJlIG9wZXJhdGlvbmFsbHkgdXNlbGVzcy4NCj4+PiBlLmcuLCB3aGVu
IGF1Z21lbnRpbmcgYSBsaXN0LCB0aGUga2V5IGxlYWZzIGFyZSBuZWVkZWQgdG8gaWRlbnRpZnkg
dGhlIGluc3RhbmNlLg0KPj4+IA0KPj4+IEkgd291bGQgbGlrZSB0byBrZWVwIENvTUkgZXh0cmVt
ZWx5IHNpbXBsZS4NCj4+PiBNb3JlIGJlbGxzIGFuZCB3aGlzdGxlcyBtZWFucyBpbmNyZWFzZWQg
bWVtb3J5IGFuZCBDUFUgcmVxdWlyZW1lbnRzLiANCj4+PiBJIGFtIGdsYWQgQ09SRSBhbmQgNlRJ
U0NIIFdHcyBhcmUgc28gY29uY2VybmVkIGFib3V0IGNvbnN0cmFpbmVkIHJlc291cmNlcy4NCj4+
PiBPbmx5IHRoZSBtb3N0IGltcG9ydGFudCBiZWxscyBhbmQgd2hpc3RsZXMgd2lsbCBnZXQgc3Rh
bmRhcmRpemVkLg0KPj4+IA0KPj4+IA0KPj4+PiBGb3IgZXhhbXBsZToNCj4+Pj4gDQo+Pj4+IEdF
VCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9WThkN3MNCj4+Pj4gR0VUIGV4YW1wbGUuY29tL21nP3Nl
bGVjdD1ZOGQ3cyxOS0hhQSBHRVQNCj4+Pj4gZXhhbXBsZS5jb20vbWc/c2VsZWN0PWlldGYtNnRp
c2NoLW1hYyhZOGQ3cyxOS0hhQSkNCj4+Pj4gDQo+Pj4+ID09PSBRdWVzdGlvbiAjNCwgQ29tcHJl
c3NpbmcgWUFORyBoYXNoIGJhc2U2NCByZXByZXNlbnRhdGlvbg0KPj4+PiANCj4+Pj4gQXJlIHlv
dSBvcG9zZWQgdG8gdGhlIGNvbXByZXNzaW9uIG9mIHRoZSBiYXNlNjQgcmVwcmVzZW50YXRpb24g
YXMgcHJvcHNlZCBieSBBbGV4YW5kZXIuDQo+Pj4+IA0KPj4+IA0KPj4+IE5vLiAgT3B0aW1pemF0
aW9ucyB0aGF0IHJlZHVjZSB0aGUgZW5jb2Rpbmcgc2l6ZSBhcmUgaW1wb3J0YW50Lg0KPj4+IEkg
d2FudCB0byB1c2Ugc3RhbmRhcmQgQ0JPUi4gIE5vIHNwZWNpYWwgaGFja3MganVzdCBmb3IgQ29N
SS4NCj4+PiANCj4+Pj4gRm9yIGV4YW1wbGU6DQo+Pj4+IA0KPj4+PiBHRVQgZXhhbXBsZS5jb20v
bWc/c2VsZWN0PTdzDQo+Pj4+IEluc3RlYWQgb2YNCj4+Pj4gR0VUIGV4YW1wbGUuY29tL21nP3Nl
bGVjdD0gQUFBN3MNCj4+Pj4gDQo+Pj4+IE1pY2hlbCBWZWlsbGV0dGUNCj4+Pj4gU3lzdGVtIEFy
Y2hpdGVjdHVyZSBEaXJlY3Rvcg0KPj4+PiBUcmlsbGlhbnQgSW5jLg0KPj4+PiBUZWw6IDQ1MC0z
NzUtMDU1NiBleHQuIDIzNw0KPj4+PiBtaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20N
Cj4+Pj4gd3d3LnRyaWxsaWFudGluYy5jb20NCj4+Pj4gDQo+Pj4+IA0KPj4+IA0KPj4+IEFuZHkN
Cj4+PiANCj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4gRnJvbTogQW5keSBC
aWVybWFuIFttYWlsdG86YW5keUB5dW1hd29ya3MuY29tXQ0KPj4+PiBTZW50OiAzIGp1aW4gMjAx
NSAxMzowOQ0KPj4+PiBUbzogTWljaGVsIFZlaWxsZXR0ZQ0KPj4+PiBDYzogQWxleGFuZGVyIFBl
bG92OyA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5vcmcNCj4+Pj4gU3ViamVjdDogUmU6IFtj
b3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQgWUFORyBoYXNoIGluIA0KPj4+
PiBVUkwNCj4+Pj4gDQo+Pj4+IE9uIFdlZCwgSnVuIDMsIDIwMTUgYXQgOTowNSBBTSwgTWljaGVs
IFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPiB3cm90ZToNCj4+
Pj4+IEhpIEFsZXhhbmRlcg0KPj4+Pj4gDQo+Pj4+PiBBdCB0aGUgbGFzdCA2VGlTQ0ggYmktd2Vl
a2x5IGNhbGwsIDQgc29sdXRpb25zIGhhdmUgYmVlbiBwcmVzZW50ZWQgdG8gdGhlIGhhc2ggY2xh
c2hlcyBwcm9ibGVtLiBUd28gYmFzZWQgb24gYSByZWhhc2ggdGFibGUgYW5kIHR3byBiYXNlZCBv
biBhIG5ldyBDb0FQIHF1ZXJ5IHBhcmFtZXRlciBjYXJyeWluZyB0aGUgbW9kdWxlIG5hbWUgb3Ig
cmVnaXN0ZXJlZCBtb2R1bGUgSUQuIFRoaXMgcXVlcnkgcGFyYW1ldGVyIGlzIHVzZWQgdG8gc2Vs
ZWN0IHVuYW1iaWd1b3VzbHkgdGhlIHRhcmdldGVkIGRhdGEgbm9kZShzKSBhc3N1bWluZyB0aGF0
IGFueSBoYXNoIGNvbGxpc2lvbiB3aXRoaW4gYSBtb2R1bGUgaGF2ZSBiZWVuIHJlc29sdmVkIGF0
IGRlc2lnbiB0aW1lLiBZb3UgY2FuIGZpbmQgdGhpcyBwcmVzZW50YXRpb24gaW4gYXR0YWNobWVu
dC4NCj4+Pj4+IA0KPj4+Pj4gQm90aCBvZiB5b3VyIHByb3Bvc2FscyBtYWtlIHNlbnNlIHRvIG1l
IGJ1dCBJIHN0aWxsIGhvcGUgdGhhdCB0aGUgY2xhc2ggZmlsZSBjYW4gYmUgYXZvaWRlZCBvciBi
ZSBvcHRpb25hbC4NCj4+Pj4+IA0KPj4+PiANCj4+Pj4gDQo+Pj4+IEkgYWdyZWUgd2Ugc2hvdWxk
IG5vdCBuZWVkIHRoZSBjbGllbnQgdG8gcmV0cmlldmUgdGhlIHJlaGFzaCBpbmZvIGJlZm9yZSB1
c2luZyBhIHNlcnZlci4NCj4+Pj4gVGhlIENvTUkgYXV0aG9ycyBoYXZlIGRpc2N1c3NlZCBhIHNv
bHV0aW9uIHdoaWNoIEkgd2lsbCB0cnkgdG8gd3JpdGUgdXAgdG9kYXkgd2hlcmUgYSBzcGVjaWFs
ICJoYXNoLWNsYXNoIiBlcnJvciBpcyByZXR1cm5lZCBieSBDb01JIGlmIGEgcmVoYXNoIGlzIG5l
ZWRlZC4NCj4+Pj4gDQo+Pj4+ICAgMSkgY2xpZW50IHJlcXVlc3RzIG1vZHVsZS1BIG9iamVjdCB3
aXRoIGhhc2ggICIxMjM0IjsNCj4+Pj4gICAgICAgIHRoZXJlIGlzIG5vIGV4dGVuZGVkLW5hbWUv
bG9jYWwtbmFtZSwNCj4+Pj4gICAgICAgIGp1c3QgdGhlIFlBTkcgaGFzaCwgdXNlZCBpbiBhbnkg
cmVxdWVzdA0KPj4+PiANCj4+Pj4gICAyKSBpZiAnMTIzNCcgaGFzIGEgY29sbGlzaW9uIGluIHRo
aXMgc2VydmVyIHRoZW4gYSBzcGVjaWFsIGVycm9yIGNvZGUgaXMgcmV0dXJuZWQ7DQo+Pj4+ICAg
ICAgIFRoZSByZXR1cm4gcGF5bG9hZCBoYXMgdGhlIHJlaGFzaCBpbmZvIFtvbGQtaGFzaCwgeyBt
b2R1bGUtbmFtZSwgbmV3LWhhc2ggfStdDQo+Pj4+ICAgICAgICAgICB7ICIxMjM0IjogWw0KPj4+
PiAgICAgICAgICAgICAgICAgICJtb2R1bGUtQSI6IjQ1NjciLA0KPj4+PiAgICAgICAgICAgICAg
ICAgICJtb2R1bGUtWCI6IjY1MjMiDQo+Pj4+ICAgICAgICAgICAgICBdDQo+Pj4+ICAgICAgICAg
ICB9DQo+Pj4+IA0KPj4+PiAgICAzKSB0aGUgY2xpZW50IGdldHMgdGhlIGVycm9yIGluZm8sIGFu
ZCBrbm93cyB3aGljaCBtb2R1bGUgaXRzICIxMjM0IiBpcyBmcm9tLg0KPj4+PiAgICAgICAgIEl0
IGZpbmRzIHRoZSBjb3JyZWN0IG1vZHVsZSBuYW1lIGluIHRoZSBhcnJheSBhbmQgcmVwbGFjZXMg
aXRzIG9sZC1oYXNoDQo+Pj4+ICAgICAgICAgd2l0aCB0aGUgbmV3LWhhc2guDQo+Pj4+IA0KPj4+
PiAgIDQpIGNsaWVudCByZS1zZW5kcyB0aGUgcmVxdWVzdCwgdXNpbmcgaGFzaCAiNDU2NyIgaW5z
dGVhZCBvZiAiMTIzNCINCj4+Pj4gDQo+Pj4+IFRoZSByZWhhc2ggdGFibGUgZ29lcyBhd2F5LCBh
bmQgb25seSB0aGlzIGVycm9yIGluZm8gaXMgdXNlZCBpbnN0ZWFkLg0KPj4+PiANCj4+Pj4+IE1p
Y2hlbCBWZWlsbGV0dGUNCj4+Pj4+IFN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INCj4+Pj4+
IFRyaWxsaWFudCBJbmMuDQo+Pj4+PiBUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KPj4+Pj4g
bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+Pj4+PiB3d3cudHJpbGxpYW50aW5j
LmNvbQ0KPj4+Pj4gDQo+Pj4+IA0KPj4+PiANCj4+Pj4gQW5keQ0KPj4+PiANCj4+Pj4+IA0KPj4+
Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+IEZyb206IGNvcmUgW21haWx0bzpj
b3JlLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBBbGV4YW5kZXIgDQo+Pj4+PiBQZWxv
dg0KPj4+Pj4gU2VudDogMyBqdWluIDIwMTUgMTE6MDENCj4+Pj4+IFRvOiA2dGlzY2hAaWV0Zi5v
cmc7IGNvcmVAaWV0Zi5vcmcNCj4+Pj4+IFN1YmplY3Q6IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2
ZXIgY2xhc2ggZmlsZSBhbmQgWUFORyBoYXNoIGluIFVSTA0KPj4+Pj4gDQo+Pj4+PiBIZWxsbyBl
dmVyeW9uZSwNCj4+Pj4+IA0KPj4+Pj4gSSB3b3VsZCBsaWtlIHRvIGRpc2N1c3Mgd2l0aCB5b3Ug
dG8gaWRlYXMvcHJvcG9zYWxzIGluIHRoaXMgbWFpbCwgbmFtZWx5Og0KPj4+Pj4gMSkgQ2FjaGlu
ZyB0aGUgeWFuZyBjbGFzaCBmaWxlIG9uIGEgcmVtb3RlIHNlcnZlcg0KPj4+Pj4gMikgQ29tcHJl
c3NpbmcgdGhlIFVSTCByZXByZXNlbnRhdGlvbiBvZiBZQU5HIGhhc2hlcw0KPj4+Pj4gDQo+Pj4+
PiAxKSBDYWNoaW5nIHRoZSB5YW5nIGNsYXNoIGZpbGUgb24gYSByZW1vdGUgc2VydmVyIEV2ZW4g
dGhvdWdoIGhhc2ggY29sbGlzaW9ucyBzaG91bGQgaGFwcGVuIHJhcmVseSAoaWYgZXZlciksIHRo
ZXJlIG1heSBiZSBjYXNlcyB3aGVuIGl0IGNvdWxkIGJlIGluZXZpdGFibGUsIGFuZCBhcyBzdWNo
LCBpdCBtYXkgYmUgaW50ZXJlc3RpbmcgdG8gY2FjaGUgdGhlIGNsYXNoX2ZpbGUgc29tZXdoZXJl
IG9uIGEgcmVtb3RlIHNlcnZlciB0byBhdm9pZCBzZW5kaW5nIGl0IG92ZXIgdGhlIGNvbnN0cmFp
bmVkIHdpcmVsZXNzIGludGVyZmFjZS4gSXQgY291bGQgYmUgdXNlZCBmb3Igb3RoZXIgY2FzZXMs
IHdoZXJlIHNvbWUgZnJlcXVlbnRseSB1c2VkIHJlc291cmNlcyBhcmUgcmUtaGFzaGVkIGZvciBw
ZXJmb3JtYW5jZSBwdXJwb3Nlcy4gTWF5YmUgaXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gYWxs
b3cgdGhlIHNlcnZlciB0byBzcGVjaWZ5IGEgcmVtb3RlIGxvY2F0aW9uIGZvciB0aGUgY2xhc2gg
ZmlsZT8gRm9yIHN0YXRpYyBjb2xsaXNpb25zIG9yIG9wdGltaXphdGlvbnMgaXQgY291bGQgYmUg
dGhhdCB0aGUgWUFORyBkZWZpbml0aW9uIGluY2x1ZGVzIGFsdGVybmF0aXZlIGhhc2ggdmFsdWVz
LCB3aGljaCBjb3VsZCBiZSB1c2VkIGluIGFkZGl0aW9uIHRvIHRoZSBub3JtYWwgb25lcy4NCj4+
Pj4+IA0KPj4+Pj4gMikgQ29tcHJlc3NpbmcgdGhlIFVSTCByZXByZXNlbnRhdGlvbiBvZiBZQU5H
IGhhc2hlcyBBbm90aGVyIHBvaW50IA0KPj4+Pj4gKHdoaWNoIGlzIHVucmVsYXRlZCksIGlzIHRv
IGVsaWRlIHRoZSBsZWFkaW5nICJBInMgZnJvbSB0aGUgYmFzZTY0IA0KPj4+Pj4gcmVwcmVzZW50
YXRpb24gb2YgdGhlIGhhc2ggaW4gdGhlIFVSTCAod2hpY2ggY29ycmVzcG9uZHMgdG8gDQo+Pj4+
PiBlbGlkaW5nIHRoZSBsZWFkaW5nIHplcm9lcyBmcm9tIHRoZSBoYXNoKS4gQXMgc3BlY2lmaWVk
IGluIHNlY3Rpb24gDQo+Pj4+PiA1LjQuIGEgaGFzaCB2YWx1ZSBvZiAweDAwMDAwMDdlIHdpbGwg
YmUgZW5jb2RlZCBhcyBBQUFBXywgYnV0IGlmIA0KPj4+Pj4gdGhlIGxlYWRpbmcgQeKAmXMgYXJl
IGVsaWRlZCBpdCB3aWxsIGJlIHNpbXBseSBfDQo+Pj4+PiANCj4+Pj4+IFRoaXMgY291bGQgcG9z
ZSBwcm9ibGVtcyBvbmx5IGlmIGluIHRoZSBmdXR1cmUgdGhlIHNpemUgb2YgdGhlIGhhc2ggdmFs
dWVzIGlzIGluY3JlYXNlZCBmcm9tIDMwIGJpdHMgdG8gc29tZSBvdGhlciAoaGlnaGVyKSB2YWx1
ZS4NCj4+Pj4+IA0KPj4+Pj4gVGhpcywgaG93ZXZlciwgY291bGQgYmUgdmVyeSB1c2VmdWwgd2hl
biBoYXZpbmcgdG8gZnJlcXVlbnRseSANCj4+Pj4+IGFjY2VzcyB0aGUgc2FtZSByZXNvdXJjZS4g
SW4gc3VjaCBjYXNlLCB0aGUgc2VydmVyL25ldHdvcmsgDQo+Pj4+PiBvcGVyYXRvciBtYXkgZGVj
aWRlIHRvIHJlLWhhc2ggdGhlIFVSSSB0byBhIHNob3J0ZXIgdmVyc2lvbiwgZS5nLiANCj4+Pj4+
IHRoZSAvc3lzOnN5c3RlbS1zdGF0ZS9zeXM6Y2xvY2svc3lzOmN1cnJlbnQtZGF0ZXRpbWUgY291
bGQgYmUgDQo+Pj4+PiByZW1hcHBlZCBmcm9tIDB4MTUzNzA0MDggYW5kIFZOd1FJIHRvIDB4MSBh
bmQgXw0KPj4+Pj4gDQo+Pj4+PiBCZXN0LA0KPj4+Pj4gQWxleA0KPj4+Pj4gDQo+Pj4+PiBQUy4N
Cj4+Pj4+IEEgdHlwbyAoPyksIHdoaWNoIG1heSBiZSBhbHJlYWR5IGNvcnJlY3RlZCwgaW4gdGhl
IGV4YW1wbGUgb2YgbW9kLnVyaSBvbiBQYWdlIDI2OiB0aGUgdHdvIHJlc3BvbnNlcyBoYXZlIGRp
ZmZlcmVudCBzY2hlbWUgIm1vZC51cmkiIGFuZCAibW9kdXJpIg0KPj4+Pj4gDQo+Pj4+PiBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4+Pj4gY29yZSBt
YWlsaW5nIGxpc3QNCj4+Pj4+IGNvcmVAaWV0Zi5vcmcNCj4+Pj4+IGh0dHBzOi8vd3d3LmlldGYu
b3JnL21haWxtYW4vbGlzdGluZm8vY29yZQ0KPj4+Pj4gDQo+Pj4+PiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4+Pj4gY29yZSBtYWlsaW5nIGxpc3QN
Cj4+Pj4+IGNvcmVAaWV0Zi5vcmcNCj4+Pj4+IGh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4v
bGlzdGluZm8vY29yZQ0KPj4+Pj4gDQoNCg==


From nobody Thu Jun  4 10:32:00 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DD3901A6F39 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 10:31:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GVb-Eshp1E47 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 10:31:55 -0700 (PDT)
Received: from mail-lb0-f171.google.com (mail-lb0-f171.google.com [209.85.217.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 418781A6EFC for <core@ietf.org>; Thu,  4 Jun 2015 10:31:16 -0700 (PDT)
Received: by lbcmx3 with SMTP id mx3so31656099lbc.1 for <core@ietf.org>; Thu, 04 Jun 2015 10:31:14 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=8K9Bh7rusa/7p/JwiL0LDi6R5dTXR+QnhS/GPOt52wE=; b=SY69rAxRuOR/KuDQumUSZhz0/XnTcMbsCOdT8nDU1fNgyDg3G3IWfIVgnBf9ttYIfE 2jqdXY7elSdaA0mlGpnaA6NgwzdwFs3pHHvy5UwfDNTN1GwoTn8Uh1mlskPyhTqsc0GM ojY+mhyYgJ7BPYbYHXjUcQhRCMZHhX48dwR1FdRz0NCGdIMGx+wGXOvGl90b02HTBHen zSur7EzK1+MvRVfYiRK8P6ll8zJipv851f0jQVJlq119rNverDfUWXnHKojXRauE1Yht V1i+7LRwrHI7HikPR0UYb/CBrt12o43YafXY23Dg0FBBklfLPc0tdVwoY3EeYyG6vonj pZbg==
X-Gm-Message-State: ALoCoQks6npwOD0gG5XVzGPusGrj0UtK5FCYnD27tt/X+6yb07TLgzwPH3gxBdnA8TUk64K06aal
MIME-Version: 1.0
X-Received: by 10.112.125.33 with SMTP id mn1mr38462604lbb.82.1433439074708; Thu, 04 Jun 2015 10:31:14 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Thu, 4 Jun 2015 10:31:14 -0700 (PDT)
In-Reply-To: <CO2PR0601MB792A217CDC64BFA81962E50FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRQ_k0WcM0bu3V9-9k-P_f0eQuUCC2kzNMU5Taq9+onNQ@mail.gmail.com> <CO2PR0601MB792A217CDC64BFA81962E50FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Thu, 4 Jun 2015 10:31:14 -0700
Message-ID: <CABCOCHQssRR3mdb3rBbpP-=h3A1kLvMyyjKaUWh1jM_u=T_jpQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/sim_Sn3sRowxstzuPi6rJW2JgjU>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 17:31:57 -0000

On Thu, Jun 4, 2015 at 10:09 AM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> Hi Andy
>
> I was assuming that YANG hash values was unique within a module context (Module data nodes + augmenting data nodes).
> If this is not the case, we might have a more important issue than what you are describing.
>
> Let assume that we have two modules augmenting the same container.
> Let also assume that the YANG hash of data node A2 and A3 are the same.
>
> mod1:
>    container A {                                 # YANG hash 2345
>        leaf A1 { type string; }               # YANG hash  1234
>    }
>
> mod2:
>     augment /mod1:A {
>        leaf A2 { type string; }              # YANG hash  5678
>     }
>
> mod3:
>     augment /mod1:A {
>        leaf A3 { type string; }              # YANG hash  5678
>     }
>
> Finally, let assume that the CoMI server implements mod1 and mod2 and the CoMI client implements all three modules.
>
>    { 2345: {
>        1234 : "foo",
>        5678 : "bar"
>       }
>    }
>
> How the CoMI client known the meaning of "bar" ?
>


Because this response message that you are describing is not
allowed to happen.  The server knows that hash "5678"
is a clash and does not send this hash out as normal.
The value "5678" is no longer valid on this server.
Both nodes that hashed to "5678" need to be re-hashed.

NETCONF allows in-line <rpc-error> to be returned for get*.
Something similar could be done for CoMI.


> Michel Veillette

Andy

> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: 4 juin 2015 12:30
> To: Michel Veillette
> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>
> On Thu, Jun 4, 2015 at 9:04 AM, Michel Veillette <Michel.Veillette@trilliantinc.com> wrote:
>> Hi Andy,
>>
>> Just to be sure about the scope of your comment.
>>
>> You say " Each object has a YANG Hash", yes but this is not a uniquely object identify.
>> Did we reach a consensus about using the  " YANG hash" + "module name or a module ID" as a unique data node (object) identifier?
>>
>
> I don't know if any consensus has been reached.
> IMO the YANG hash is all that is needed.
> There is a small probability that the hash is not unique.
> If this happens, the rehash is needed.
>
> If a specific value maps to more than 1 object on a server, then that value triggers a rehash if the client uses it.
> I prefer to send the rehash info as an error response only when needed.
>
> I prefer to limit optional features so the server code can be as small as possible.
>
> There is a problem with GET.
> Let's say the data model is a simple container with 2 leafs:
>
> mod1:
>
>    container A {
>        leaf A1 { type string; }
>    }
>
>
> mod2:
>
>     augment /mod1:A {
>        leaf A2 { type string; }
>     }
>
> What if the server does a GET on /A but A1 and A2 have a hash collision?
> The server is supposed to return
>
>     {"A": {
>        "A1":"foo",
>        "A2":"bar"
>        }
>      }
>
> But the original hashes will not work:
>
>    {"2345": {
>       "1234":"foo",
>       "1234":"bar"
>       }
>    }
>
> The client never requested A1 or A2 directly but will still need to know the rehash info for these nodes.
>
> The server could return the rehash info in the GET response, or return some flag that the client needs to retrieve the rehash info.
> Even if A1 and A2 are not siblings, the rehash info needs to be sent because the server will remap the collided hash value "1234".
>
> In this case it might be useful for the server to return a "long form"
> of the node, which includes the requested value and the rehash info.
> This part of your plan I like (if I understand it).  But requiring the server to accept the long-form as input is not needed.


From nobody Thu Jun  4 10:45:30 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 375021A700A; Thu,  4 Jun 2015 10:45:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZA9Ljt-vzrbT; Thu,  4 Jun 2015 10:45:27 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0126.outbound.protection.outlook.com [65.55.169.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CD2DA1A702F; Thu,  4 Jun 2015 10:45:18 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB790.namprd06.prod.outlook.com (10.141.247.142) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 17:45:16 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 4 Jun 2015 17:45:16 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQCAACQjAIABEVbQgAAcJwCAAAEG4IAADf+AgAAHS4CAAAm6AIAAAmVQ
Date: Thu, 4 Jun 2015 17:45:15 +0000
Message-ID: <CO2PR0601MB792B34697D569DAB68F8659FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRQ_k0WcM0bu3V9-9k-P_f0eQuUCC2kzNMU5Taq9+onNQ@mail.gmail.com> <CO2PR0601MB792A217CDC64BFA81962E50FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQssRR3mdb3rBbpP-=h3A1kLvMyyjKaUWh1jM_u=T_jpQ@mail.gmail.com>
In-Reply-To: <CABCOCHQssRR3mdb3rBbpP-=h3A1kLvMyyjKaUWh1jM_u=T_jpQ@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB790;
x-microsoft-antispam-prvs: <CO2PR0601MB7908E39953EC7A26DF47ABDFEB30@CO2PR0601MB790.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB790; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB790; 
x-forefront-prvs: 0597911EE1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(38414003)(13464003)(24454002)(377454003)(199003)(51704005)(4001540100001)(106356001)(97736004)(33656002)(68736005)(77096005)(102836002)(122556002)(2900100001)(2950100001)(106116001)(99286002)(81156007)(40100003)(64706001)(66066001)(76576001)(5002640100001)(19580395003)(19580405001)(110136002)(5001960100002)(74316001)(5001860100001)(189998001)(5001830100001)(105586002)(86362001)(54356999)(76176999)(50986999)(87936001)(2656002)(15974865002)(101416001)(46102003)(92566002)(62966003)(77156002)(93886004); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB790; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2015 17:45:15.6910 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB790
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/DMphdgNCkk6kq1knUrUzOSJMS4g>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 17:45:29 -0000

SGkgQW5keQ0KDQpBYm91dCAiIFRoZSBzZXJ2ZXIga25vd3MgdGhhdCBoYXNoIDU2NzggaXMgYSBj
bGFzaCINCg0KSW4gdGhlIGRlc2NyaWJlZCBzY2VuYXJpbywgdGhlIENvTUkgc2VydmVyIGltcGxl
bWVudCBvbmx5IG1vZDEgYW5kIG1vZDIgYW5kIGluIHRoaXMgY29udGV4dCB0aGUgaGFzaCB2YWx1
ZSA1Njc4IGlzIG5vdCBhIGNsYXNoLiBPbiB0aGUgY2xpZW50IHNpZGUsIHRoZSBDb01JIGNsaWVu
dCBpbXBsZW1lbnQgbW9kMSwgbW9kMiBhbmQgbW9kMyBhbmQgaXMgY29uZnVzZWQgYWJvdXQgdGhl
IHJlY2VpdmVkIGRhdGEuDQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUg
RGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWlj
aGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQp3d3cudHJpbGxpYW50aW5jLmNvbSDCoCAN
Cg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogQW5keSBCaWVybWFuIFttYWls
dG86YW5keUB5dW1hd29ya3MuY29tXSANClNlbnQ6IDQganVpbiAyMDE1IDEzOjMxDQpUbzogTWlj
aGVsIFZlaWxsZXR0ZQ0KQ2M6IEFsZXhhbmRlciBQZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3Jl
QGlldGYub3JnDQpTdWJqZWN0OiBSZTogW2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBm
aWxlIGFuZCBZQU5HIGhhc2ggaW4gVVJMDQoNCk9uIFRodSwgSnVuIDQsIDIwMTUgYXQgMTA6MDkg
QU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4g
d3JvdGU6DQo+IEhpIEFuZHkNCj4NCj4gSSB3YXMgYXNzdW1pbmcgdGhhdCBZQU5HIGhhc2ggdmFs
dWVzIHdhcyB1bmlxdWUgd2l0aGluIGEgbW9kdWxlIGNvbnRleHQgKE1vZHVsZSBkYXRhIG5vZGVz
ICsgYXVnbWVudGluZyBkYXRhIG5vZGVzKS4NCj4gSWYgdGhpcyBpcyBub3QgdGhlIGNhc2UsIHdl
IG1pZ2h0IGhhdmUgYSBtb3JlIGltcG9ydGFudCBpc3N1ZSB0aGFuIHdoYXQgeW91IGFyZSBkZXNj
cmliaW5nLg0KPg0KPiBMZXQgYXNzdW1lIHRoYXQgd2UgaGF2ZSB0d28gbW9kdWxlcyBhdWdtZW50
aW5nIHRoZSBzYW1lIGNvbnRhaW5lci4NCj4gTGV0IGFsc28gYXNzdW1lIHRoYXQgdGhlIFlBTkcg
aGFzaCBvZiBkYXRhIG5vZGUgQTIgYW5kIEEzIGFyZSB0aGUgc2FtZS4NCj4NCj4gbW9kMToNCj4g
ICAgY29udGFpbmVyIEEgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWUFORyBo
YXNoIDIzNDUNCj4gICAgICAgIGxlYWYgQTEgeyB0eXBlIHN0cmluZzsgfSAgICAgICAgICAgICAg
ICMgWUFORyBoYXNoICAxMjM0DQo+ICAgIH0NCj4NCj4gbW9kMjoNCj4gICAgIGF1Z21lbnQgL21v
ZDE6QSB7DQo+ICAgICAgICBsZWFmIEEyIHsgdHlwZSBzdHJpbmc7IH0gICAgICAgICAgICAgICMg
WUFORyBoYXNoICA1Njc4DQo+ICAgICB9DQo+DQo+IG1vZDM6DQo+ICAgICBhdWdtZW50IC9tb2Qx
OkEgew0KPiAgICAgICAgbGVhZiBBMyB7IHR5cGUgc3RyaW5nOyB9ICAgICAgICAgICAgICAjIFlB
TkcgaGFzaCAgNTY3OA0KPiAgICAgfQ0KPg0KPiBGaW5hbGx5LCBsZXQgYXNzdW1lIHRoYXQgdGhl
IENvTUkgc2VydmVyIGltcGxlbWVudHMgbW9kMSBhbmQgbW9kMiBhbmQgdGhlIENvTUkgY2xpZW50
IGltcGxlbWVudHMgYWxsIHRocmVlIG1vZHVsZXMuDQo+DQo+ICAgIHsgMjM0NTogew0KPiAgICAg
ICAgMTIzNCA6ICJmb28iLA0KPiAgICAgICAgNTY3OCA6ICJiYXIiDQo+ICAgICAgIH0NCj4gICAg
fQ0KPg0KPiBIb3cgdGhlIENvTUkgY2xpZW50IGtub3duIHRoZSBtZWFuaW5nIG9mICJiYXIiID8N
Cj4NCg0KDQpCZWNhdXNlIHRoaXMgcmVzcG9uc2UgbWVzc2FnZSB0aGF0IHlvdSBhcmUgZGVzY3Jp
YmluZyBpcyBub3QgYWxsb3dlZCB0byBoYXBwZW4uICBUaGUgc2VydmVyIGtub3dzIHRoYXQgaGFz
aCAiNTY3OCINCmlzIGEgY2xhc2ggYW5kIGRvZXMgbm90IHNlbmQgdGhpcyBoYXNoIG91dCBhcyBu
b3JtYWwuDQpUaGUgdmFsdWUgIjU2NzgiIGlzIG5vIGxvbmdlciB2YWxpZCBvbiB0aGlzIHNlcnZl
ci4NCkJvdGggbm9kZXMgdGhhdCBoYXNoZWQgdG8gIjU2NzgiIG5lZWQgdG8gYmUgcmUtaGFzaGVk
Lg0KDQpORVRDT05GIGFsbG93cyBpbi1saW5lIDxycGMtZXJyb3I+IHRvIGJlIHJldHVybmVkIGZv
ciBnZXQqLg0KU29tZXRoaW5nIHNpbWlsYXIgY291bGQgYmUgZG9uZSBmb3IgQ29NSS4NCg0KDQo+
IE1pY2hlbCBWZWlsbGV0dGUNCg0KQW5keQ0KDQo+IFN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0
b3INCj4gVHJpbGxpYW50IEluYy4NCj4gVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCj4gbWlj
aGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+IHd3dy50cmlsbGlhbnRpbmMuY29tDQo+
DQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHkgQmllcm1hbiBb
bWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0NCj4gU2VudDogNCBqdWluIDIwMTUgMTI6MzANCj4g
VG86IE1pY2hlbCBWZWlsbGV0dGUNCj4gQ2M6IEFsZXhhbmRlciBQZWxvdjsgNnRpc2NoQGlldGYu
b3JnOyBjb3JlQGlldGYub3JnDQo+IFN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZW1vdGUgc2Vy
dmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiBVUkwNCj4NCj4gT24gVGh1LCBKdW4gNCwg
MjAxNSBhdCA5OjA0IEFNLCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxs
aWFudGluYy5jb20+IHdyb3RlOg0KPj4gSGkgQW5keSwNCj4+DQo+PiBKdXN0IHRvIGJlIHN1cmUg
YWJvdXQgdGhlIHNjb3BlIG9mIHlvdXIgY29tbWVudC4NCj4+DQo+PiBZb3Ugc2F5ICIgRWFjaCBv
YmplY3QgaGFzIGEgWUFORyBIYXNoIiwgeWVzIGJ1dCB0aGlzIGlzIG5vdCBhIHVuaXF1ZWx5IG9i
amVjdCBpZGVudGlmeS4NCj4+IERpZCB3ZSByZWFjaCBhIGNvbnNlbnN1cyBhYm91dCB1c2luZyB0
aGUgICIgWUFORyBoYXNoIiArICJtb2R1bGUgbmFtZSBvciBhIG1vZHVsZSBJRCIgYXMgYSB1bmlx
dWUgZGF0YSBub2RlIChvYmplY3QpIGlkZW50aWZpZXI/DQo+Pg0KPg0KPiBJIGRvbid0IGtub3cg
aWYgYW55IGNvbnNlbnN1cyBoYXMgYmVlbiByZWFjaGVkLg0KPiBJTU8gdGhlIFlBTkcgaGFzaCBp
cyBhbGwgdGhhdCBpcyBuZWVkZWQuDQo+IFRoZXJlIGlzIGEgc21hbGwgcHJvYmFiaWxpdHkgdGhh
dCB0aGUgaGFzaCBpcyBub3QgdW5pcXVlLg0KPiBJZiB0aGlzIGhhcHBlbnMsIHRoZSByZWhhc2gg
aXMgbmVlZGVkLg0KPg0KPiBJZiBhIHNwZWNpZmljIHZhbHVlIG1hcHMgdG8gbW9yZSB0aGFuIDEg
b2JqZWN0IG9uIGEgc2VydmVyLCB0aGVuIHRoYXQgdmFsdWUgdHJpZ2dlcnMgYSByZWhhc2ggaWYg
dGhlIGNsaWVudCB1c2VzIGl0Lg0KPiBJIHByZWZlciB0byBzZW5kIHRoZSByZWhhc2ggaW5mbyBh
cyBhbiBlcnJvciByZXNwb25zZSBvbmx5IHdoZW4gbmVlZGVkLg0KPg0KPiBJIHByZWZlciB0byBs
aW1pdCBvcHRpb25hbCBmZWF0dXJlcyBzbyB0aGUgc2VydmVyIGNvZGUgY2FuIGJlIGFzIHNtYWxs
IGFzIHBvc3NpYmxlLg0KPg0KPiBUaGVyZSBpcyBhIHByb2JsZW0gd2l0aCBHRVQuDQo+IExldCdz
IHNheSB0aGUgZGF0YSBtb2RlbCBpcyBhIHNpbXBsZSBjb250YWluZXIgd2l0aCAyIGxlYWZzOg0K
Pg0KPiBtb2QxOg0KPg0KPiAgICBjb250YWluZXIgQSB7DQo+ICAgICAgICBsZWFmIEExIHsgdHlw
ZSBzdHJpbmc7IH0NCj4gICAgfQ0KPg0KPg0KPiBtb2QyOg0KPg0KPiAgICAgYXVnbWVudCAvbW9k
MTpBIHsNCj4gICAgICAgIGxlYWYgQTIgeyB0eXBlIHN0cmluZzsgfQ0KPiAgICAgfQ0KPg0KPiBX
aGF0IGlmIHRoZSBzZXJ2ZXIgZG9lcyBhIEdFVCBvbiAvQSBidXQgQTEgYW5kIEEyIGhhdmUgYSBo
YXNoIGNvbGxpc2lvbj8NCj4gVGhlIHNlcnZlciBpcyBzdXBwb3NlZCB0byByZXR1cm4NCj4NCj4g
ICAgIHsiQSI6IHsNCj4gICAgICAgICJBMSI6ImZvbyIsDQo+ICAgICAgICAiQTIiOiJiYXIiDQo+
ICAgICAgICB9DQo+ICAgICAgfQ0KPg0KPiBCdXQgdGhlIG9yaWdpbmFsIGhhc2hlcyB3aWxsIG5v
dCB3b3JrOg0KPg0KPiAgICB7IjIzNDUiOiB7DQo+ICAgICAgICIxMjM0IjoiZm9vIiwNCj4gICAg
ICAgIjEyMzQiOiJiYXIiDQo+ICAgICAgIH0NCj4gICAgfQ0KPg0KPiBUaGUgY2xpZW50IG5ldmVy
IHJlcXVlc3RlZCBBMSBvciBBMiBkaXJlY3RseSBidXQgd2lsbCBzdGlsbCBuZWVkIHRvIGtub3cg
dGhlIHJlaGFzaCBpbmZvIGZvciB0aGVzZSBub2Rlcy4NCj4NCj4gVGhlIHNlcnZlciBjb3VsZCBy
ZXR1cm4gdGhlIHJlaGFzaCBpbmZvIGluIHRoZSBHRVQgcmVzcG9uc2UsIG9yIHJldHVybiBzb21l
IGZsYWcgdGhhdCB0aGUgY2xpZW50IG5lZWRzIHRvIHJldHJpZXZlIHRoZSByZWhhc2ggaW5mby4N
Cj4gRXZlbiBpZiBBMSBhbmQgQTIgYXJlIG5vdCBzaWJsaW5ncywgdGhlIHJlaGFzaCBpbmZvIG5l
ZWRzIHRvIGJlIHNlbnQgYmVjYXVzZSB0aGUgc2VydmVyIHdpbGwgcmVtYXAgdGhlIGNvbGxpZGVk
IGhhc2ggdmFsdWUgIjEyMzQiLg0KPg0KPiBJbiB0aGlzIGNhc2UgaXQgbWlnaHQgYmUgdXNlZnVs
IGZvciB0aGUgc2VydmVyIHRvIHJldHVybiBhICJsb25nIGZvcm0iDQo+IG9mIHRoZSBub2RlLCB3
aGljaCBpbmNsdWRlcyB0aGUgcmVxdWVzdGVkIHZhbHVlIGFuZCB0aGUgcmVoYXNoIGluZm8uDQo+
IFRoaXMgcGFydCBvZiB5b3VyIHBsYW4gSSBsaWtlIChpZiBJIHVuZGVyc3RhbmQgaXQpLiAgQnV0
IHJlcXVpcmluZyB0aGUgc2VydmVyIHRvIGFjY2VwdCB0aGUgbG9uZy1mb3JtIGFzIGlucHV0IGlz
IG5vdCBuZWVkZWQuDQo=


From nobody Thu Jun  4 12:02:50 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2F62E1A88B1 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 12:02:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0CSnpEQu_QZy for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 12:02:45 -0700 (PDT)
Received: from mail-la0-f46.google.com (mail-la0-f46.google.com [209.85.215.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1244A1A88A9 for <core@ietf.org>; Thu,  4 Jun 2015 12:02:45 -0700 (PDT)
Received: by laei3 with SMTP id i3so38602653lae.3 for <core@ietf.org>; Thu, 04 Jun 2015 12:02:43 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=oHabo9BmvOTGJNY2XmX0quyIbWJY3L+VU2/DM1hOyM0=; b=cguDFtAWhrXdBQa+3OuoxXDkmyTnCPYyMtDSQU73n3azx6qc+4QWoDoX0BEf9pSfW2 68+iFibQztx13yy3ShHkVstiTMOZMlQWvOLGsMGEdtMmPYu8vc3jPeM5JKDC2rh4DnVv SKXyViNe2YIA5SQGhDBmEHP1AZPajCLFascj4IBQvXyVxKjOGj9353YkIvDXAQxhwlLj 1zflKNZj8wJoL+8xuUTI4USycdO4uPODHs++pijM84lnN3pygPHTGxaQC9t8M9Fej9iD KQ6DCJwxuyHOeSAfOCWUPWlLb8AfM4WRTSgv9ic/+/kciXPl8m0fzR6P4+M7cOhsfyKP eTtA==
X-Gm-Message-State: ALoCoQkXK05o9WTbRFIKS6e+JIskwG06mfJcB4JJhLBpcZZFwcPsZcALjrXhK6WOq6jPXEczGR8U
MIME-Version: 1.0
X-Received: by 10.112.164.66 with SMTP id yo2mr1177525lbb.33.1433444563461; Thu, 04 Jun 2015 12:02:43 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Thu, 4 Jun 2015 12:02:43 -0700 (PDT)
In-Reply-To: <CO2PR0601MB792B34697D569DAB68F8659FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRQ_k0WcM0bu3V9-9k-P_f0eQuUCC2kzNMU5Taq9+onNQ@mail.gmail.com> <CO2PR0601MB792A217CDC64BFA81962E50FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQssRR3mdb3rBbpP-=h3A1kLvMyyjKaUWh1jM_u=T_jpQ@mail.gmail.com> <CO2PR0601MB792B34697D569DAB68F8659FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Thu, 4 Jun 2015 12:02:43 -0700
Message-ID: <CABCOCHTHGiWOxsnxJ8gRGR-VNCX2qaneRjmKvnc2NgGr-MsMhw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/XRZRHZ3BPtBg0q_8ndsLJqLnmxs>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 19:02:47 -0000

On Thu, Jun 4, 2015 at 10:45 AM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> Hi Andy
>
> About " The server knows that hash 5678 is a clash"
>
> In the described scenario, the CoMI server implement only mod1 and mod2 and in this context the hash value 5678 is not a clash. On the client side, the CoMI client implement mod1, mod2 and mod3 and is confused about the received data.
>


But hash collisions are only within a server.
The client will get the ietf-yang-library inventory for the
server and see that mod3 is not supported by that server.

The client cannot treat rehash info as global.
It has to remember the rehash info from each server.


> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>

Andy

>
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: 4 juin 2015 13:31
> To: Michel Veillette
> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>
> On Thu, Jun 4, 2015 at 10:09 AM, Michel Veillette <Michel.Veillette@trilliantinc.com> wrote:
>> Hi Andy
>>
>> I was assuming that YANG hash values was unique within a module context (Module data nodes + augmenting data nodes).
>> If this is not the case, we might have a more important issue than what you are describing.
>>
>> Let assume that we have two modules augmenting the same container.
>> Let also assume that the YANG hash of data node A2 and A3 are the same.
>>
>> mod1:
>>    container A {                                 # YANG hash 2345
>>        leaf A1 { type string; }               # YANG hash  1234
>>    }
>>
>> mod2:
>>     augment /mod1:A {
>>        leaf A2 { type string; }              # YANG hash  5678
>>     }
>>
>> mod3:
>>     augment /mod1:A {
>>        leaf A3 { type string; }              # YANG hash  5678
>>     }
>>
>> Finally, let assume that the CoMI server implements mod1 and mod2 and the CoMI client implements all three modules.
>>
>>    { 2345: {
>>        1234 : "foo",
>>        5678 : "bar"
>>       }
>>    }
>>
>> How the CoMI client known the meaning of "bar" ?
>>
>
>
> Because this response message that you are describing is not allowed to happen.  The server knows that hash "5678"
> is a clash and does not send this hash out as normal.
> The value "5678" is no longer valid on this server.
> Both nodes that hashed to "5678" need to be re-hashed.
>
> NETCONF allows in-line <rpc-error> to be returned for get*.
> Something similar could be done for CoMI.
>
>
>> Michel Veillette
>
> Andy
>
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>> -----Original Message-----
>> From: Andy Bierman [mailto:andy@yumaworks.com]
>> Sent: 4 juin 2015 12:30
>> To: Michel Veillette
>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>>
>> On Thu, Jun 4, 2015 at 9:04 AM, Michel Veillette <Michel.Veillette@trilliantinc.com> wrote:
>>> Hi Andy,
>>>
>>> Just to be sure about the scope of your comment.
>>>
>>> You say " Each object has a YANG Hash", yes but this is not a uniquely object identify.
>>> Did we reach a consensus about using the  " YANG hash" + "module name or a module ID" as a unique data node (object) identifier?
>>>
>>
>> I don't know if any consensus has been reached.
>> IMO the YANG hash is all that is needed.
>> There is a small probability that the hash is not unique.
>> If this happens, the rehash is needed.
>>
>> If a specific value maps to more than 1 object on a server, then that value triggers a rehash if the client uses it.
>> I prefer to send the rehash info as an error response only when needed.
>>
>> I prefer to limit optional features so the server code can be as small as possible.
>>
>> There is a problem with GET.
>> Let's say the data model is a simple container with 2 leafs:
>>
>> mod1:
>>
>>    container A {
>>        leaf A1 { type string; }
>>    }
>>
>>
>> mod2:
>>
>>     augment /mod1:A {
>>        leaf A2 { type string; }
>>     }
>>
>> What if the server does a GET on /A but A1 and A2 have a hash collision?
>> The server is supposed to return
>>
>>     {"A": {
>>        "A1":"foo",
>>        "A2":"bar"
>>        }
>>      }
>>
>> But the original hashes will not work:
>>
>>    {"2345": {
>>       "1234":"foo",
>>       "1234":"bar"
>>       }
>>    }
>>
>> The client never requested A1 or A2 directly but will still need to know the rehash info for these nodes.
>>
>> The server could return the rehash info in the GET response, or return some flag that the client needs to retrieve the rehash info.
>> Even if A1 and A2 are not siblings, the rehash info needs to be sent because the server will remap the collided hash value "1234".
>>
>> In this case it might be useful for the server to return a "long form"
>> of the node, which includes the requested value and the rehash info.
>> This part of your plan I like (if I understand it).  But requiring the server to accept the long-form as input is not needed.


From nobody Thu Jun  4 12:27:04 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BF1071A898C; Thu,  4 Jun 2015 12:27:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.903
X-Spam-Level: **
X-Spam-Status: No, score=2.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, HELO_EQ_FR=0.35, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SXDsoKmcN7tj; Thu,  4 Jun 2015 12:26:57 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id 17DCA1A89AE; Thu,  4 Jun 2015 12:26:55 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 33D2A23282F; Thu,  4 Jun 2015 21:26:54 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id NGE9RjQemv35; Thu,  4 Jun 2015 21:26:52 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 9D348232835; Thu,  4 Jun 2015 21:26:52 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5AtXx94MC4oG; Thu,  4 Jun 2015 21:26:52 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id 955C523282F; Thu,  4 Jun 2015 21:26:51 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CO2PR0601MB7924CD68B9B277899347FC4FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Thu, 4 Jun 2015 21:26:51 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <817D68B5-DEEE-4981-8EFA-56830F1ED38D@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu> <CO2PR0601MB7924CD68B9B277899347FC4FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/H7yoOdapq8Eip1mtX5892FLbZtc>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 19:27:01 -0000

Hi Michel,

> Le 4 juin 2015 =C3=A0 19:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> Hi Alexander
>=20
> In this proposal, the "Managed vs unmanaged" flag is the LSB or MSB?
> If it's the LBB, we can use your compression proposal to save URI and =
payload space.

Yes, it is the LSB, so managed IDs should compress well. Not sure if the =
10 bits for user item ID are sufficient / too much compared to the =
typical/max size of modules.

Alexander


>=20
> I like this approach.
>=20
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com  =20
>=20
>=20
> -----Original Message-----
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]=20
> Sent: 4 juin 2015 12:32
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>=20
> Hi all,
>=20
> Just a short idea for the hash clash issue.=20
>=20
> The 30 bits, which are reserved for the YANG hash can have a structure =
:
> 1 bit =3D structured YANG hash (0) or pure YANG hash (1)
>   If 0 (structured), then :
>       1 bit =3D managed (0) or non-managed (1)
>       18 bits =3D module ID
>       10 bits =3D item ID
>   If 1 (non-structured), then:
>       29 bits =3D least significant 29 bits of the YANG hash.
>=20
> In case of clash, send error, the full URI must be used (which should =
be with extremely low probability) This way, in the worst case you are =
limiting your hash value from 30 to 29 bits (and thus slightly =
increasing the clash probability).
>=20
> If structured YANG hash, then:
>   0 =3D managed (e.g. IETF-assigned module ID)
>      18 bits =3D the ID of the module (1, 2, 3, =E2=80=A6., 262143) =
assigned incrementally by IANA (0 reserved for special usage)
>      10 bits =3D the ID of the item in the module, incremented at each =
item (1..1023 - hope this is sufficient for all cases).
>   1 =3D unmanaged
>       18 bits =3D ID of module, by default the 18 less significant =
bits of the module. It is up to the user to assure that there are no =
clashes with the names of the other modules on the device
>       10 bits =3D ID of the item. It is up to the implementer to =
ensure that there are no clashes within the module.=20
>=20
> Two possible drawbacks of this approach, however:
>  - For managed IDs you will probably have to keep both the YANG hash =
and the managed full ID.
>  - In case of unmanaged IDs you increase the probability of collision =
of 1E-9 to 2E-9.
>=20
> Best,
> Alexander
>=20
>=20
>> Le 4 juin 2015 =C3=A0 18:04, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>>=20
>> Hi Andy,
>>=20
>> Just to be sure about the scope of your comment.
>>=20
>> You say " Each object has a YANG Hash", yes but this is not a =
uniquely object identify.
>> Did we reach a consensus about using the  " YANG hash" + "module name =
or a module ID" as a unique data node (object) identifier?
>>=20
>> This can take the form of a rehash table available on the CoMI server=20=

>> or elsewhere (" YANG hash", "module name or module ID", "rehash or=20
>> alias") This can take the form of an error message containing (" YANG=20=

>> hash", "module name or module ID", "rehash or alias") This can take=20=

>> the form of a fully qualified identifier within the request or =
payload=20
>> (REQ: GET example.com/mg?select(<module name>.<YANG hash>)
>>=20
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com  =20
>>=20
>>=20
>> -----Original Message-----
>> From: Andy Bierman [mailto:andy@yumaworks.com]
>> Sent: 4 juin 2015 11:37
>> To: Michel Veillette
>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>> Subject: Re: [core] CoMI remote server clash file and YANG hash in =
URL
>>=20
>> Hi,
>>=20
>> I do not agree that the module name or a module ID needs to be used =
at all in the object identifier.  Each object has a YANG Hash.
>> Retrieving a node, whether by hash ID or module-ID.hash will cause =
all descendant nodes to be included in the retrieval, even if they are =
augmenting nodes from another module.
>>=20
>> YANG data is hierarchical.
>> The modules are just packaging for definitions.
>> They do not define any containment or structure within the conceptual =
schema tree.
>>=20
>>=20
>> Andy
>>=20
>>=20
>> On Thu, Jun 4, 2015 at 8:21 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>> Hi Andy
>>>=20
>>> About "Almost -- this is defined in RFC 6020 -- the augmenting nodes =
are not part of the augmented module.  They will be returned in NETCONF =
and RESTCONF retrieval operations for an ancestor node but they are not =
part of the augmented module.  Only objects defined in the module =
namespace are part of the module."
>>>=20
>>> Understood, this is why my contribution introduce the new term, =
"Module context". Augmenting nodes are not part of the augmented module =
but, as defined, are part of the "Module context". This new concept was =
require to minimize the overhead when retrieving the complete datastore =
containing multiple module contexts with some having augmenting nodes.
>>>=20
>>>  RES: 2.05 Content (Content-Format: application/cbor)
>>>  {
>>>     "a" : {
>>>        365257235 : "leafA1 value",
>>>        702149626 : {
>>>           215993329 : "leafA2 value",
>>>           962191682 : "leafC1 value"                    # Augmenting =
data node
>>>        },
>>>        829222983 : "leafS value"                         # =
Sub-module data node
>>>     },
>>>     "b" : {
>>>        289564696 : "leafB value"
>>>     },
>>>     "c" : {
>>>        993533527 : "leafC2 value"
>>>     }
>>>  }
>>>=20
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>=20
>>>=20
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 3 juin 2015 17:38
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in=20=

>>> URL
>>>=20
>>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>> About "I would prefer if hash collisions in a single module were =
not allowed."
>>>> Agreed but how this is implemented.
>>>>=20
>>>=20
>>>=20
>>> By checking the YANG hashes before it is published, similar to =
checking the YANG syntax with a YANG compiler.
>>>=20
>>>=20
>>>> About "But these numbers do not exist in any modules and so they =
cannot be relied on in CoMI.
>>>> I understand but I assume that a module can be re-published with =
the added statement when require. If a CoMI implementer try to implement =
a module containing a clash, he can look for a version of this module =
containing the special YANG statement. The likelihood of such clash is =
extremely low and such fallback solution won=E2=80=99t be required =
often. However, the RFC will specify how to resolve such situation if =
this ever happen. This statement can also be used to address the need =
for data node identifier compactness as mentioned by Alexander in its =
original email.
>>>>=20
>>>=20
>>> I think the ad-hoc id assignments are pointless because they are not =
universal.  The only thing that can be counted on is the module name and =
the XPath absolute path expression of each object.
>>>=20
>>>=20
>>>> About "In NETCONF, modules tend to use augment a lot"
>>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I =
propose a new definition to address this.
>>>>=20
>>>=20
>>> What is it?
>>> IMO you should post comments to the mailing list not markup to a =
word document.  It is too hard to follow.
>>>=20
>>>=20
>>>> Module Context: A module context is composed of all data nodes, =
notifications and RPCs defined in a YANG module and included sub-modules =
or added to them using the augment YANG statement.
>>>>=20
>>>=20
>>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are =
not part of the augmented module.  They will be returned in NETCONF and =
RESTCONF retrieval operations for an ancestor node but they are not part =
of the augmented module.  Only objects defined in the module namespace =
are part of the module.
>>>=20
>>>=20
>>> Andy
>>>=20
>>>=20
>>>=20
>>>> Section 4.1.3.4 show an example of include, import and augment.
>>>>=20
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>=20
>>>>=20
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 14:54
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in=20=

>>>> URL
>>>>=20
>>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>> Hi Andy
>>>>>=20
>>>>> Couple of questions about your proposed solution.
>>>>>=20
>>>>> =3D=3D=3D Question #1, New YANG statement
>>>>>=20
>>>>> Your solution works only if hash clashes within a module are =
resolved at design time. If not, the error message will return the =
following information which is not sufficient to resolve which data node =
is which.
>>>>>=20
>>>>>  { "1234": [
>>>>>         "module-A":"4567",
>>>>>         "module-A":"6523"
>>>>>     ]
>>>>>  }
>>>>>=20
>>>>=20
>>>>=20
>>>> The original proposal had a 3-tuple { module-name, path-expr, =
new-hash } We discussed some optimizations in the 6TISCH call to reduce =
the size of the path-expr and still not require the client to store all =
the path strings, such as store a few bytes from the path strings like =
6th and 11th bytes (Avoid the common ietf- prefix for many module =
names).
>>>>=20
>>>> This is not deterministic. Only the full path string is fool-proof.
>>>> I would prefer if hash collisions in a single module were not =
allowed.
>>>> They need to be resolved at design time.  If this is not possible, =
then a standard rehash algorithm should be used so the collision is =
resolved in a predictable way.  e.g., try appending "_", then try "__", =
etc.
>>>> The result would be that hash collisions in a single module do not =
occur in CoMI.
>>>>=20
>>>>=20
>>>>> Is it possible/acceptable to request a new YANG statement to =
manually assign a ID to a data node?
>>>>> Same question for a module ID?
>>>>>=20
>>>>> For example (see "id 16" and "id 25" bellow) :
>>>>>=20
>>>>>  module a {
>>>>>     namespace a-ns;
>>>>>     prefix a;
>>>>>     id 16;
>>>>>     revision 2015-01-01;
>>>>>=20
>>>>>     leaf leafA1 { type string; id 25 }
>>>>>     container containerA {
>>>>>        leaf leafA2 { type string}
>>>>>     }
>>>>>  }
>>>>=20
>>>>=20
>>>> You could have an extension statement do anything you want:
>>>>=20
>>>>   comi:id  16;
>>>>=20
>>>> But these numbers do not exist any any modules and so they cannot =
be relied on in CoMI.
>>>>=20
>>>>=20
>>>>>=20
>>>>> =3D=3D=3D Question #2, Introduction of an optional query parameter =
used=20
>>>>> to target a specific module
>>>>>=20
>>>>> For nodes / networks which can afford a slitely larger payload =
(IEEE 802.15.4g for example) but want to avoid the processing and =
storage associated with the porposed error message, are you opposed to =
the support of an optional CoAP query parameter use carry the module =
name or module ID ?
>>>>>=20
>>>>> For example:
>>>>>=20
>>>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>>>=20
>>>>> =3D=3D=3D Question #3, Use of the select query parameter instead =
of the=20
>>>>> URI
>>>>>=20
>>>>> Are you oposed to the use of the select query parameter instead of=20=

>>>>> the URI to identify data node(s)
>>>>>=20
>>>>=20
>>>> Not really.
>>>>=20
>>>> I don't know how mixed the modules will get in CoMI.
>>>> In NETCONF, modules tend to use augment a lot, so the nodes from =
'module-A' may be nested nodes.
>>>> Retrieving just the augmenting nodes and ignoring the augmented =
nodes would likely be operationally useless.
>>>> e.g., when augmenting a list, the key leafs are needed to identify =
the instance.
>>>>=20
>>>> I would like to keep CoMI extremely simple.
>>>> More bells and whistles means increased memory and CPU =
requirements.=20
>>>> I am glad CORE and 6TISCH WGs are so concerned about constrained =
resources.
>>>> Only the most important bells and whistles will get standardized.
>>>>=20
>>>>=20
>>>>> For example:
>>>>>=20
>>>>> GET example.com/mg?select=3DY8d7s
>>>>> GET example.com/mg?select=3DY8d7s,NKHaA GET
>>>>> example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>>>=20
>>>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>>>=20
>>>>> Are you oposed to the compression of the base64 representation as =
propsed by Alexander.
>>>>>=20
>>>>=20
>>>> No.  Optimizations that reduce the encoding size are important.
>>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>>>=20
>>>>> For example:
>>>>>=20
>>>>> GET example.com/mg?select=3D7s
>>>>> Instead of
>>>>> GET example.com/mg?select=3D AAA7s
>>>>>=20
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>>>=20
>>>>>=20
>>>>=20
>>>> Andy
>>>>=20
>>>>> -----Original Message-----
>>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>>> Sent: 3 juin 2015 13:09
>>>>> To: Michel Veillette
>>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in=20=

>>>>> URL
>>>>>=20
>>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>>> Hi Alexander
>>>>>>=20
>>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been =
presented to the hash clashes problem. Two based on a rehash table and =
two based on a new CoAP query parameter carrying the module name or =
registered module ID. This query parameter is used to select =
unambiguously the targeted data node(s) assuming that any hash collision =
within a module have been resolved at design time. You can find this =
presentation in attachment.
>>>>>>=20
>>>>>> Both of your proposals make sense to me but I still hope that the =
clash file can be avoided or be optional.
>>>>>>=20
>>>>>=20
>>>>>=20
>>>>> I agree we should not need the client to retrieve the rehash info =
before using a server.
>>>>> The CoMI authors have discussed a solution which I will try to =
write up today where a special "hash-clash" error is returned by CoMI if =
a rehash is needed.
>>>>>=20
>>>>>  1) client requests module-A object with hash  "1234";
>>>>>       there is no extended-name/local-name,
>>>>>       just the YANG hash, used in any request
>>>>>=20
>>>>>  2) if '1234' has a collision in this server then a special error =
code is returned;
>>>>>      The return payload has the rehash info [old-hash, { =
module-name, new-hash }+]
>>>>>          { "1234": [
>>>>>                 "module-A":"4567",
>>>>>                 "module-X":"6523"
>>>>>             ]
>>>>>          }
>>>>>=20
>>>>>   3) the client gets the error info, and knows which module its =
"1234" is from.
>>>>>        It finds the correct module name in the array and replaces =
its old-hash
>>>>>        with the new-hash.
>>>>>=20
>>>>>  4) client re-sends the request, using hash "4567" instead of =
"1234"
>>>>>=20
>>>>> The rehash table goes away, and only this error info is used =
instead.
>>>>>=20
>>>>>> Michel Veillette
>>>>>> System Architecture Director
>>>>>> Trilliant Inc.
>>>>>> Tel: 450-375-0556 ext. 237
>>>>>> michel.veillette@trilliantinc.com
>>>>>> www.trilliantinc.com
>>>>>>=20
>>>>>=20
>>>>>=20
>>>>> Andy
>>>>>=20
>>>>>>=20
>>>>>> -----Original Message-----
>>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander=20=

>>>>>> Pelov
>>>>>> Sent: 3 juin 2015 11:01
>>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>>> Subject: [core] CoMI remote server clash file and YANG hash in =
URL
>>>>>>=20
>>>>>> Hello everyone,
>>>>>>=20
>>>>>> I would like to discuss with you to ideas/proposals in this mail, =
namely:
>>>>>> 1) Caching the yang clash file on a remote server
>>>>>> 2) Compressing the URL representation of YANG hashes
>>>>>>=20
>>>>>> 1) Caching the yang clash file on a remote server Even though =
hash collisions should happen rarely (if ever), there may be cases when =
it could be inevitable, and as such, it may be interesting to cache the =
clash_file somewhere on a remote server to avoid sending it over the =
constrained wireless interface. It could be used for other cases, where =
some frequently used resources are re-hashed for performance purposes. =
Maybe it would be interesting to allow the server to specify a remote =
location for the clash file? For static collisions or optimizations it =
could be that the YANG definition includes alternative hash values, =
which could be used in addition to the normal ones.
>>>>>>=20
>>>>>> 2) Compressing the URL representation of YANG hashes Another =
point=20
>>>>>> (which is unrelated), is to elide the leading "A"s from the =
base64=20
>>>>>> representation of the hash in the URL (which corresponds to=20
>>>>>> eliding the leading zeroes from the hash). As specified in =
section=20
>>>>>> 5.4. a hash value of 0x0000007e will be encoded as AAAA_, but if=20=

>>>>>> the leading A=E2=80=99s are elided it will be simply _
>>>>>>=20
>>>>>> This could pose problems only if in the future the size of the =
hash values is increased from 30 bits to some other (higher) value.
>>>>>>=20
>>>>>> This, however, could be very useful when having to frequently=20
>>>>>> access the same resource. In such case, the server/network=20
>>>>>> operator may decide to re-hash the URI to a shorter version, e.g.=20=

>>>>>> the /sys:system-state/sys:clock/sys:current-datetime could be=20
>>>>>> remapped from 0x15370408 and VNwQI to 0x1 and _
>>>>>>=20
>>>>>> Best,
>>>>>> Alex
>>>>>>=20
>>>>>> PS.
>>>>>> A typo (?), which may be already corrected, in the example of =
mod.uri on Page 26: the two responses have different scheme "mod.uri" =
and "moduri"
>>>>>>=20
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>=20
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>=20
>=20


From nobody Thu Jun  4 12:33:46 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BE5471A8A99; Thu,  4 Jun 2015 12:33:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Jc8XJyWUXXbx; Thu,  4 Jun 2015 12:33:38 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0703.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::703]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7A5BF1A8A8C; Thu,  4 Jun 2015 12:33:38 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB790.namprd06.prod.outlook.com (10.141.247.142) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 19:33:18 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 4 Jun 2015 19:33:18 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQCAACQjAIABEVbQgAAcJwCAAAEG4IAADf+AgAAHS4CAAAm6AIAAAmVQgAAXKoCAAAChAA==
Date: Thu, 4 Jun 2015 19:33:17 +0000
Message-ID: <CO2PR0601MB7922E0F2BA47112BD3ECB68FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRQ_k0WcM0bu3V9-9k-P_f0eQuUCC2kzNMU5Taq9+onNQ@mail.gmail.com> <CO2PR0601MB792A217CDC64BFA81962E50FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQssRR3mdb3rBbpP-=h3A1kLvMyyjKaUWh1jM_u=T_jpQ@mail.gmail.com> <CO2PR0601MB792B34697D569DAB68F8659FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTHGiWOxsnxJ8gRGR-VNCX2qaneRjmKvnc2NgGr-MsMhw@mail.gmail.com>
In-Reply-To: <CABCOCHTHGiWOxsnxJ8gRGR-VNCX2qaneRjmKvnc2NgGr-MsMhw@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB790;
x-microsoft-antispam-prvs: <CO2PR0601MB790CD6D8EB9101A3348E6FAFEB30@CO2PR0601MB790.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB790; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB790; 
x-forefront-prvs: 0597911EE1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(51704005)(38414003)(189002)(24454002)(377454003)(13464003)(2656002)(15974865002)(46102003)(101416001)(86362001)(54356999)(76176999)(87936001)(50986999)(93886004)(92566002)(62966003)(77156002)(99286002)(106116001)(102836002)(68736005)(77096005)(2950100001)(2900100001)(122556002)(40100003)(81156007)(4001540100001)(106356001)(33656002)(97736004)(110136002)(5001860100001)(74316001)(189998001)(5001830100001)(5001960100002)(105586002)(5002640100001)(19580395003)(19580405001)(64706001)(66066001)(76576001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB790; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2015 19:33:17.5137 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB790
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/_usymFsHRiU2w70WAp96vOp6hlI>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 19:33:43 -0000

SSBkb24ndCByZW1lbWJlciBpbiB0aGUgQ29NSSBkcmFmdCBhIG1ldGhvZCB3aGljaCBjYW4gYmUg
dXNlZCBieSBDb01JIGNsaWVudHMgdG8gZ2V0IHRoZSBsaXN0IG9mIFlBTkcgbW9kdWxlcyBzdXBw
b3J0ZWQgYnkgQ29NSSBzZXJ2ZXJzLg0KRG8geW91IG1lYW5zIHRoYXQgQ29NSSBjbGllbnRzIG5l
ZWQgYmUgcHJlLWxvYWRlZCB3aXRoIHRoZSBsaXN0IG9mIFlBTkcgbW9kdWxlcyBpbXBsZW1lbnRl
ZCBieSBlYWNoIENvTUkgc2VydmVyIHRoZXkgbWlnaHQgbmVlZCB0byBpbnRlcmFjdCB3aXRoPw0K
SG93IHdlIHdpbGwgZGVhbCB3aXRoIGR5bmFtaWMgY2hhbmdlIGluIHRoZXNlIGxpc3Qgb2YgWUFO
RyBtb2R1bGVzPw0KDQpJbnN0ZWFkLCBzaG91bGQgd2UgcmVxdWlyZSB0aGF0IGF1Z21lbnRlZCBk
YXRhIG5vZGVzIGFyZSBhbHdheXMgaWRlbnRpZmllZCB1c2luZyBhIGZ1bGx5IHF1YWxpZmllZCBp
ZGVudGlmaWVyPw0KKGUuZy4gIiBpZXRmLWludGVyZmFjZXMualZMeEoiIG9yIHRoZSAxOCBiaXRz
ICBtb2R1bGUgSUQgKyAxMCBiaXRzID0gZGF0YSBub2RlIElEIGFzIHByb3Bvc2VkIGJ5IEFsZXhh
bmRlcikNCg0KTWljaGVsIFZlaWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0K
VHJpbGxpYW50IEluYy4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwudmVpbGxl
dHRlQHRyaWxsaWFudGluYy5jb20NCnd3dy50cmlsbGlhbnRpbmMuY29tIMKgIA0KDQotLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogQW5keSBCaWVybWFuIFttYWlsdG86YW5keUB5dW1h
d29ya3MuY29tXSANClNlbnQ6IDQganVpbiAyMDE1IDE1OjAzDQpUbzogTWljaGVsIFZlaWxsZXR0
ZQ0KQ2M6IEFsZXhhbmRlciBQZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQpT
dWJqZWN0OiBSZTogW2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxlIGFuZCBZQU5H
IGhhc2ggaW4gVVJMDQoNCk9uIFRodSwgSnVuIDQsIDIwMTUgYXQgMTA6NDUgQU0sIE1pY2hlbCBW
ZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4gd3JvdGU6DQo+IEhp
IEFuZHkNCj4NCj4gQWJvdXQgIiBUaGUgc2VydmVyIGtub3dzIHRoYXQgaGFzaCA1Njc4IGlzIGEg
Y2xhc2giDQo+DQo+IEluIHRoZSBkZXNjcmliZWQgc2NlbmFyaW8sIHRoZSBDb01JIHNlcnZlciBp
bXBsZW1lbnQgb25seSBtb2QxIGFuZCBtb2QyIGFuZCBpbiB0aGlzIGNvbnRleHQgdGhlIGhhc2gg
dmFsdWUgNTY3OCBpcyBub3QgYSBjbGFzaC4gT24gdGhlIGNsaWVudCBzaWRlLCB0aGUgQ29NSSBj
bGllbnQgaW1wbGVtZW50IG1vZDEsIG1vZDIgYW5kIG1vZDMgYW5kIGlzIGNvbmZ1c2VkIGFib3V0
IHRoZSByZWNlaXZlZCBkYXRhLg0KPg0KDQpCdXQgaGFzaCBjb2xsaXNpb25zIGFyZSBvbmx5IHdp
dGhpbiBhIHNlcnZlci4NClRoZSBjbGllbnQgd2lsbCBnZXQgdGhlIGlldGYteWFuZy1saWJyYXJ5
IGludmVudG9yeSBmb3IgdGhlIHNlcnZlciBhbmQgc2VlIHRoYXQgbW9kMyBpcyBub3Qgc3VwcG9y
dGVkIGJ5IHRoYXQgc2VydmVyLg0KDQpUaGUgY2xpZW50IGNhbm5vdCB0cmVhdCByZWhhc2ggaW5m
byBhcyBnbG9iYWwuDQpJdCBoYXMgdG8gcmVtZW1iZXIgdGhlIHJlaGFzaCBpbmZvIGZyb20gZWFj
aCBzZXJ2ZXIuDQoNCj4gTWljaGVsIFZlaWxsZXR0ZQ0KPiBTeXN0ZW0gQXJjaGl0ZWN0dXJlIERp
cmVjdG9yDQo+IFRyaWxsaWFudCBJbmMuDQo+IFRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQo+
IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0KPiB3d3cudHJpbGxpYW50aW5jLmNv
bQ0KPg0KDQpBbmR5DQoNCg==


From nobody Thu Jun  4 12:36:33 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 23DC21A8AE9; Thu,  4 Jun 2015 12:36:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.552
X-Spam-Level: **
X-Spam-Status: No, score=2.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CbLNQE9abBiX; Thu,  4 Jun 2015 12:36:26 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0760.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::760]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 134561A8ADB; Thu,  4 Jun 2015 12:36:25 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB790.namprd06.prod.outlook.com (10.141.247.142) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 19:36:08 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 4 Jun 2015 19:36:09 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQCAACQjAIABEVbQgAAcJwCAAAEG4IAADn2AgAAK7wCAACXlgIAAAipg
Date: Thu, 4 Jun 2015 19:36:08 +0000
Message-ID: <CO2PR0601MB7926E78AFC9459839396128FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu> <CO2PR0601MB7924CD68B9B277899347FC4FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <817D68B5-DEEE-4981-8EFA-56830F1ED38D@telecom-bretagne.eu>
In-Reply-To: <817D68B5-DEEE-4981-8EFA-56830F1ED38D@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com; 
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB790;
x-microsoft-antispam-prvs: <CO2PR0601MB790BC3E19EB78DD91BE7199FEB30@CO2PR0601MB790.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB790; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB790; 
x-forefront-prvs: 0597911EE1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(51704005)(38414003)(377424004)(189002)(53754006)(24454002)(377454003)(13464003)(2656002)(15974865002)(46102003)(101416001)(86362001)(54356999)(76176999)(87936001)(50986999)(93886004)(92566002)(62966003)(77156002)(99286002)(106116001)(15975445007)(102836002)(68736005)(77096005)(2950100001)(2900100001)(122556002)(40100003)(81156007)(4001540100001)(106356001)(5890100001)(561944003)(33656002)(97736004)(110136002)(5001860100001)(74316001)(189998001)(5001830100001)(5001960100002)(105586002)(5002640100001)(19580395003)(19580405001)(64706001)(66066001)(76576001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB790; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2015 19:36:09.0461 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB790
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/muCFANvRB5ItuJtDNg2LWMWgLyQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 19:36:30 -0000

MTAyNCBkYXRhIG5vZGVzIHdpdGhpbiBhIHNpbmdsZSBZQU5HIG1vZHVsZSBzZWVtIHBsZW50eS4N
CkknbSBmaW5kIHdpdGggdGhpcyBwcm9wb3NlZCBhbGxvY2F0aW9uIG9mIGJpdHMuDQoNCk1pY2hl
bCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMu
DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRp
bmMuY29tDQp3d3cudHJpbGxpYW50aW5jLmNvbSDCoCANCg0KDQotLS0tLU9yaWdpbmFsIE1lc3Nh
Z2UtLS0tLQ0KRnJvbTogQWxleGFuZGVyIFBlbG92IFttYWlsdG86YWxleGFuZGVyLnBlbG92QHRl
bGVjb20tYnJldGFnbmUuZXVdIA0KU2VudDogNCBqdWluIDIwMTUgMTU6MjcNClRvOiBNaWNoZWwg
VmVpbGxldHRlDQpDYzogQW5keSBCaWVybWFuOyA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5v
cmcNClN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZW1vdGUgc2VydmVyIGNsYXNoIGZpbGUgYW5k
IFlBTkcgaGFzaCBpbiBVUkwNCg0KSGkgTWljaGVsLA0KDQo+IExlIDQganVpbiAyMDE1IMOgIDE5
OjE3LCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+
IGEgw6ljcml0IDoNCj4gDQo+IEhpIEFsZXhhbmRlcg0KPiANCj4gSW4gdGhpcyBwcm9wb3NhbCwg
dGhlICJNYW5hZ2VkIHZzIHVubWFuYWdlZCIgZmxhZyBpcyB0aGUgTFNCIG9yIE1TQj8NCj4gSWYg
aXQncyB0aGUgTEJCLCB3ZSBjYW4gdXNlIHlvdXIgY29tcHJlc3Npb24gcHJvcG9zYWwgdG8gc2F2
ZSBVUkkgYW5kIHBheWxvYWQgc3BhY2UuDQoNClllcywgaXQgaXMgdGhlIExTQiwgc28gbWFuYWdl
ZCBJRHMgc2hvdWxkIGNvbXByZXNzIHdlbGwuIE5vdCBzdXJlIGlmIHRoZSAxMCBiaXRzIGZvciB1
c2VyIGl0ZW0gSUQgYXJlIHN1ZmZpY2llbnQgLyB0b28gbXVjaCBjb21wYXJlZCB0byB0aGUgdHlw
aWNhbC9tYXggc2l6ZSBvZiBtb2R1bGVzLg0KDQpBbGV4YW5kZXINCg0KDQo+IA0KPiBJIGxpa2Ug
dGhpcyBhcHByb2FjaC4NCj4gDQo+IE1pY2hlbCBWZWlsbGV0dGUNCj4gU3lzdGVtIEFyY2hpdGVj
dHVyZSBEaXJlY3Rvcg0KPiBUcmlsbGlhbnQgSW5jLg0KPiBUZWw6IDQ1MC0zNzUtMDU1NiBleHQu
IDIzNw0KPiBtaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20NCj4gd3d3LnRyaWxsaWFu
dGluYy5jb20gICANCj4gDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t
OiBBbGV4YW5kZXIgUGVsb3YgW21haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWdu
ZS5ldV0NCj4gU2VudDogNCBqdWluIDIwMTUgMTI6MzINCj4gVG86IE1pY2hlbCBWZWlsbGV0dGUN
Cj4gQ2M6IEFuZHkgQmllcm1hbjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQo+IFN1
YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZW1vdGUgc2VydmVyIGNsYXNoIGZpbGUgYW5kIFlBTkcg
aGFzaCBpbiBVUkwNCj4gDQo+IEhpIGFsbCwNCj4gDQo+IEp1c3QgYSBzaG9ydCBpZGVhIGZvciB0
aGUgaGFzaCBjbGFzaCBpc3N1ZS4gDQo+IA0KPiBUaGUgMzAgYml0cywgd2hpY2ggYXJlIHJlc2Vy
dmVkIGZvciB0aGUgWUFORyBoYXNoIGNhbiBoYXZlIGEgc3RydWN0dXJlIDoNCj4gMSBiaXQgPSBz
dHJ1Y3R1cmVkIFlBTkcgaGFzaCAoMCkgb3IgcHVyZSBZQU5HIGhhc2ggKDEpDQo+ICAgSWYgMCAo
c3RydWN0dXJlZCksIHRoZW4gOg0KPiAgICAgICAxIGJpdCA9IG1hbmFnZWQgKDApIG9yIG5vbi1t
YW5hZ2VkICgxKQ0KPiAgICAgICAxOCBiaXRzID0gbW9kdWxlIElEDQo+ICAgICAgIDEwIGJpdHMg
PSBpdGVtIElEDQo+ICAgSWYgMSAobm9uLXN0cnVjdHVyZWQpLCB0aGVuOg0KPiAgICAgICAyOSBi
aXRzID0gbGVhc3Qgc2lnbmlmaWNhbnQgMjkgYml0cyBvZiB0aGUgWUFORyBoYXNoLg0KPiANCj4g
SW4gY2FzZSBvZiBjbGFzaCwgc2VuZCBlcnJvciwgdGhlIGZ1bGwgVVJJIG11c3QgYmUgdXNlZCAo
d2hpY2ggc2hvdWxkIGJlIHdpdGggZXh0cmVtZWx5IGxvdyBwcm9iYWJpbGl0eSkgVGhpcyB3YXks
IGluIHRoZSB3b3JzdCBjYXNlIHlvdSBhcmUgbGltaXRpbmcgeW91ciBoYXNoIHZhbHVlIGZyb20g
MzAgdG8gMjkgYml0cyAoYW5kIHRodXMgc2xpZ2h0bHkgaW5jcmVhc2luZyB0aGUgY2xhc2ggcHJv
YmFiaWxpdHkpLg0KPiANCj4gSWYgc3RydWN0dXJlZCBZQU5HIGhhc2gsIHRoZW46DQo+ICAgMCA9
IG1hbmFnZWQgKGUuZy4gSUVURi1hc3NpZ25lZCBtb2R1bGUgSUQpDQo+ICAgICAgMTggYml0cyA9
IHRoZSBJRCBvZiB0aGUgbW9kdWxlICgxLCAyLCAzLCDigKYuLCAyNjIxNDMpIGFzc2lnbmVkIGlu
Y3JlbWVudGFsbHkgYnkgSUFOQSAoMCByZXNlcnZlZCBmb3Igc3BlY2lhbCB1c2FnZSkNCj4gICAg
ICAxMCBiaXRzID0gdGhlIElEIG9mIHRoZSBpdGVtIGluIHRoZSBtb2R1bGUsIGluY3JlbWVudGVk
IGF0IGVhY2ggaXRlbSAoMS4uMTAyMyAtIGhvcGUgdGhpcyBpcyBzdWZmaWNpZW50IGZvciBhbGwg
Y2FzZXMpLg0KPiAgIDEgPSB1bm1hbmFnZWQNCj4gICAgICAgMTggYml0cyA9IElEIG9mIG1vZHVs
ZSwgYnkgZGVmYXVsdCB0aGUgMTggbGVzcyBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSBtb2R1bGUu
IEl0IGlzIHVwIHRvIHRoZSB1c2VyIHRvIGFzc3VyZSB0aGF0IHRoZXJlIGFyZSBubyBjbGFzaGVz
IHdpdGggdGhlIG5hbWVzIG9mIHRoZSBvdGhlciBtb2R1bGVzIG9uIHRoZSBkZXZpY2UNCj4gICAg
ICAgMTAgYml0cyA9IElEIG9mIHRoZSBpdGVtLiBJdCBpcyB1cCB0byB0aGUgaW1wbGVtZW50ZXIg
dG8gZW5zdXJlIHRoYXQgdGhlcmUgYXJlIG5vIGNsYXNoZXMgd2l0aGluIHRoZSBtb2R1bGUuIA0K
PiANCj4gVHdvIHBvc3NpYmxlIGRyYXdiYWNrcyBvZiB0aGlzIGFwcHJvYWNoLCBob3dldmVyOg0K
PiAgLSBGb3IgbWFuYWdlZCBJRHMgeW91IHdpbGwgcHJvYmFibHkgaGF2ZSB0byBrZWVwIGJvdGgg
dGhlIFlBTkcgaGFzaCBhbmQgdGhlIG1hbmFnZWQgZnVsbCBJRC4NCj4gIC0gSW4gY2FzZSBvZiB1
bm1hbmFnZWQgSURzIHlvdSBpbmNyZWFzZSB0aGUgcHJvYmFiaWxpdHkgb2YgY29sbGlzaW9uIG9m
IDFFLTkgdG8gMkUtOS4NCj4gDQo+IEJlc3QsDQo+IEFsZXhhbmRlcg0KPiANCj4gDQo+PiBMZSA0
IGp1aW4gMjAxNSDDoCAxODowNCwgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tPiBhIMOpY3JpdCA6DQo+PiANCj4+IEhpIEFuZHksDQo+PiANCj4+IEp1
c3QgdG8gYmUgc3VyZSBhYm91dCB0aGUgc2NvcGUgb2YgeW91ciBjb21tZW50Lg0KPj4gDQo+PiBZ
b3Ugc2F5ICIgRWFjaCBvYmplY3QgaGFzIGEgWUFORyBIYXNoIiwgeWVzIGJ1dCB0aGlzIGlzIG5v
dCBhIHVuaXF1ZWx5IG9iamVjdCBpZGVudGlmeS4NCj4+IERpZCB3ZSByZWFjaCBhIGNvbnNlbnN1
cyBhYm91dCB1c2luZyB0aGUgICIgWUFORyBoYXNoIiArICJtb2R1bGUgbmFtZSBvciBhIG1vZHVs
ZSBJRCIgYXMgYSB1bmlxdWUgZGF0YSBub2RlIChvYmplY3QpIGlkZW50aWZpZXI/DQo+PiANCj4+
IFRoaXMgY2FuIHRha2UgdGhlIGZvcm0gb2YgYSByZWhhc2ggdGFibGUgYXZhaWxhYmxlIG9uIHRo
ZSBDb01JIHNlcnZlciANCj4+IG9yIGVsc2V3aGVyZSAoIiBZQU5HIGhhc2giLCAibW9kdWxlIG5h
bWUgb3IgbW9kdWxlIElEIiwgInJlaGFzaCBvcg0KPj4gYWxpYXMiKSBUaGlzIGNhbiB0YWtlIHRo
ZSBmb3JtIG9mIGFuIGVycm9yIG1lc3NhZ2UgY29udGFpbmluZyAoIiBZQU5HIA0KPj4gaGFzaCIs
ICJtb2R1bGUgbmFtZSBvciBtb2R1bGUgSUQiLCAicmVoYXNoIG9yIGFsaWFzIikgVGhpcyBjYW4g
dGFrZSANCj4+IHRoZSBmb3JtIG9mIGEgZnVsbHkgcXVhbGlmaWVkIGlkZW50aWZpZXIgd2l0aGlu
IHRoZSByZXF1ZXN0IG9yIA0KPj4gcGF5bG9hZA0KPj4gKFJFUTogR0VUIGV4YW1wbGUuY29tL21n
P3NlbGVjdCg8bW9kdWxlIG5hbWU+LjxZQU5HIGhhc2g+KQ0KPj4gDQo+PiBNaWNoZWwgVmVpbGxl
dHRlDQo+PiBTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQo+PiBUcmlsbGlhbnQgSW5jLg0K
Pj4gVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCj4+IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxp
YW50aW5jLmNvbQ0KPj4gd3d3LnRyaWxsaWFudGluYy5jb20gICANCj4+IA0KPj4gDQo+PiAtLS0t
LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogQW5keSBCaWVybWFuIFttYWlsdG86YW5k
eUB5dW1hd29ya3MuY29tXQ0KPj4gU2VudDogNCBqdWluIDIwMTUgMTE6MzcNCj4+IFRvOiBNaWNo
ZWwgVmVpbGxldHRlDQo+PiBDYzogQWxleGFuZGVyIFBlbG92OyA2dGlzY2hAaWV0Zi5vcmc7IGNv
cmVAaWV0Zi5vcmcNCj4+IFN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZW1vdGUgc2VydmVyIGNs
YXNoIGZpbGUgYW5kIFlBTkcgaGFzaCBpbiANCj4+IFVSTA0KPj4gDQo+PiBIaSwNCj4+IA0KPj4g
SSBkbyBub3QgYWdyZWUgdGhhdCB0aGUgbW9kdWxlIG5hbWUgb3IgYSBtb2R1bGUgSUQgbmVlZHMg
dG8gYmUgdXNlZCBhdCBhbGwgaW4gdGhlIG9iamVjdCBpZGVudGlmaWVyLiAgRWFjaCBvYmplY3Qg
aGFzIGEgWUFORyBIYXNoLg0KPj4gUmV0cmlldmluZyBhIG5vZGUsIHdoZXRoZXIgYnkgaGFzaCBJ
RCBvciBtb2R1bGUtSUQuaGFzaCB3aWxsIGNhdXNlIGFsbCBkZXNjZW5kYW50IG5vZGVzIHRvIGJl
IGluY2x1ZGVkIGluIHRoZSByZXRyaWV2YWwsIGV2ZW4gaWYgdGhleSBhcmUgYXVnbWVudGluZyBu
b2RlcyBmcm9tIGFub3RoZXIgbW9kdWxlLg0KPj4gDQo+PiBZQU5HIGRhdGEgaXMgaGllcmFyY2hp
Y2FsLg0KPj4gVGhlIG1vZHVsZXMgYXJlIGp1c3QgcGFja2FnaW5nIGZvciBkZWZpbml0aW9ucy4N
Cj4+IFRoZXkgZG8gbm90IGRlZmluZSBhbnkgY29udGFpbm1lbnQgb3Igc3RydWN0dXJlIHdpdGhp
biB0aGUgY29uY2VwdHVhbCBzY2hlbWEgdHJlZS4NCj4+IA0KPj4gDQo+PiBBbmR5DQo+PiANCj4+
IA0KPj4gT24gVGh1LCBKdW4gNCwgMjAxNSBhdCA4OjIxIEFNLCBNaWNoZWwgVmVpbGxldHRlIDxN
aWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+IHdyb3RlOg0KPj4+IEhpIEFuZHkNCj4+
PiANCj4+PiBBYm91dCAiQWxtb3N0IC0tIHRoaXMgaXMgZGVmaW5lZCBpbiBSRkMgNjAyMCAtLSB0
aGUgYXVnbWVudGluZyBub2RlcyBhcmUgbm90IHBhcnQgb2YgdGhlIGF1Z21lbnRlZCBtb2R1bGUu
ICBUaGV5IHdpbGwgYmUgcmV0dXJuZWQgaW4gTkVUQ09ORiBhbmQgUkVTVENPTkYgcmV0cmlldmFs
IG9wZXJhdGlvbnMgZm9yIGFuIGFuY2VzdG9yIG5vZGUgYnV0IHRoZXkgYXJlIG5vdCBwYXJ0IG9m
IHRoZSBhdWdtZW50ZWQgbW9kdWxlLiAgT25seSBvYmplY3RzIGRlZmluZWQgaW4gdGhlIG1vZHVs
ZSBuYW1lc3BhY2UgYXJlIHBhcnQgb2YgdGhlIG1vZHVsZS4iDQo+Pj4gDQo+Pj4gVW5kZXJzdG9v
ZCwgdGhpcyBpcyB3aHkgbXkgY29udHJpYnV0aW9uIGludHJvZHVjZSB0aGUgbmV3IHRlcm0sICJN
b2R1bGUgY29udGV4dCIuIEF1Z21lbnRpbmcgbm9kZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBhdWdt
ZW50ZWQgbW9kdWxlIGJ1dCwgYXMgZGVmaW5lZCwgYXJlIHBhcnQgb2YgdGhlICJNb2R1bGUgY29u
dGV4dCIuIFRoaXMgbmV3IGNvbmNlcHQgd2FzIHJlcXVpcmUgdG8gbWluaW1pemUgdGhlIG92ZXJo
ZWFkIHdoZW4gcmV0cmlldmluZyB0aGUgY29tcGxldGUgZGF0YXN0b3JlIGNvbnRhaW5pbmcgbXVs
dGlwbGUgbW9kdWxlIGNvbnRleHRzIHdpdGggc29tZSBoYXZpbmcgYXVnbWVudGluZyBub2Rlcy4N
Cj4+PiANCj4+PiAgUkVTOiAyLjA1IENvbnRlbnQgKENvbnRlbnQtRm9ybWF0OiBhcHBsaWNhdGlv
bi9jYm9yKSAgew0KPj4+ICAgICAiYSIgOiB7DQo+Pj4gICAgICAgIDM2NTI1NzIzNSA6ICJsZWFm
QTEgdmFsdWUiLA0KPj4+ICAgICAgICA3MDIxNDk2MjYgOiB7DQo+Pj4gICAgICAgICAgIDIxNTk5
MzMyOSA6ICJsZWFmQTIgdmFsdWUiLA0KPj4+ICAgICAgICAgICA5NjIxOTE2ODIgOiAibGVhZkMx
IHZhbHVlIiAgICAgICAgICAgICAgICAgICAgIyBBdWdtZW50aW5nIGRhdGEgbm9kZQ0KPj4+ICAg
ICAgICB9LA0KPj4+ICAgICAgICA4MjkyMjI5ODMgOiAibGVhZlMgdmFsdWUiICAgICAgICAgICAg
ICAgICAgICAgICAgICMgU3ViLW1vZHVsZSBkYXRhIG5vZGUNCj4+PiAgICAgfSwNCj4+PiAgICAg
ImIiIDogew0KPj4+ICAgICAgICAyODk1NjQ2OTYgOiAibGVhZkIgdmFsdWUiDQo+Pj4gICAgIH0s
DQo+Pj4gICAgICJjIiA6IHsNCj4+PiAgICAgICAgOTkzNTMzNTI3IDogImxlYWZDMiB2YWx1ZSIN
Cj4+PiAgICAgfQ0KPj4+ICB9DQo+Pj4gDQo+Pj4gTWljaGVsIFZlaWxsZXR0ZQ0KPj4+IFN5c3Rl
bSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INCj4+PiBUcmlsbGlhbnQgSW5jLg0KPj4+IFRlbDogNDUw
LTM3NS0wNTU2IGV4dC4gMjM3DQo+Pj4gbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29t
DQo+Pj4gd3d3LnRyaWxsaWFudGluYy5jb20NCj4+PiANCj4+PiANCj4+PiAtLS0tLU9yaWdpbmFs
IE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdv
cmtzLmNvbV0NCj4+PiBTZW50OiAzIGp1aW4gMjAxNSAxNzozOA0KPj4+IFRvOiBNaWNoZWwgVmVp
bGxldHRlDQo+Pj4gQ2M6IEFsZXhhbmRlciBQZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGll
dGYub3JnDQo+Pj4gU3ViamVjdDogUmU6IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2gg
ZmlsZSBhbmQgWUFORyBoYXNoIGluIA0KPj4+IFVSTA0KPj4+IA0KPj4+IE9uIFdlZCwgSnVuIDMs
IDIwMTUgYXQgMTI6NDggUE0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJp
bGxpYW50aW5jLmNvbT4gd3JvdGU6DQo+Pj4+IEFib3V0ICJJIHdvdWxkIHByZWZlciBpZiBoYXNo
IGNvbGxpc2lvbnMgaW4gYSBzaW5nbGUgbW9kdWxlIHdlcmUgbm90IGFsbG93ZWQuIg0KPj4+PiBB
Z3JlZWQgYnV0IGhvdyB0aGlzIGlzIGltcGxlbWVudGVkLg0KPj4+PiANCj4+PiANCj4+PiANCj4+
PiBCeSBjaGVja2luZyB0aGUgWUFORyBoYXNoZXMgYmVmb3JlIGl0IGlzIHB1Ymxpc2hlZCwgc2lt
aWxhciB0byBjaGVja2luZyB0aGUgWUFORyBzeW50YXggd2l0aCBhIFlBTkcgY29tcGlsZXIuDQo+
Pj4gDQo+Pj4gDQo+Pj4+IEFib3V0ICJCdXQgdGhlc2UgbnVtYmVycyBkbyBub3QgZXhpc3QgaW4g
YW55IG1vZHVsZXMgYW5kIHNvIHRoZXkgY2Fubm90IGJlIHJlbGllZCBvbiBpbiBDb01JLg0KPj4+
PiBJIHVuZGVyc3RhbmQgYnV0IEkgYXNzdW1lIHRoYXQgYSBtb2R1bGUgY2FuIGJlIHJlLXB1Ymxp
c2hlZCB3aXRoIHRoZSBhZGRlZCBzdGF0ZW1lbnQgd2hlbiByZXF1aXJlLiBJZiBhIENvTUkgaW1w
bGVtZW50ZXIgdHJ5IHRvIGltcGxlbWVudCBhIG1vZHVsZSBjb250YWluaW5nIGEgY2xhc2gsIGhl
IGNhbiBsb29rIGZvciBhIHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgY29udGFpbmluZyB0aGUgc3Bl
Y2lhbCBZQU5HIHN0YXRlbWVudC4gVGhlIGxpa2VsaWhvb2Qgb2Ygc3VjaCBjbGFzaCBpcyBleHRy
ZW1lbHkgbG93IGFuZCBzdWNoIGZhbGxiYWNrIHNvbHV0aW9uIHdvbuKAmXQgYmUgcmVxdWlyZWQg
b2Z0ZW4uIEhvd2V2ZXIsIHRoZSBSRkMgd2lsbCBzcGVjaWZ5IGhvdyB0byByZXNvbHZlIHN1Y2gg
c2l0dWF0aW9uIGlmIHRoaXMgZXZlciBoYXBwZW4uIFRoaXMgc3RhdGVtZW50IGNhbiBhbHNvIGJl
IHVzZWQgdG8gYWRkcmVzcyB0aGUgbmVlZCBmb3IgZGF0YSBub2RlIGlkZW50aWZpZXIgY29tcGFj
dG5lc3MgYXMgbWVudGlvbmVkIGJ5IEFsZXhhbmRlciBpbiBpdHMgb3JpZ2luYWwgZW1haWwuDQo+
Pj4+IA0KPj4+IA0KPj4+IEkgdGhpbmsgdGhlIGFkLWhvYyBpZCBhc3NpZ25tZW50cyBhcmUgcG9p
bnRsZXNzIGJlY2F1c2UgdGhleSBhcmUgbm90IHVuaXZlcnNhbC4gIFRoZSBvbmx5IHRoaW5nIHRo
YXQgY2FuIGJlIGNvdW50ZWQgb24gaXMgdGhlIG1vZHVsZSBuYW1lIGFuZCB0aGUgWFBhdGggYWJz
b2x1dGUgcGF0aCBleHByZXNzaW9uIG9mIGVhY2ggb2JqZWN0Lg0KPj4+IA0KPj4+IA0KPj4+PiBB
Ym91dCAiSW4gTkVUQ09ORiwgbW9kdWxlcyB0ZW5kIHRvIHVzZSBhdWdtZW50IGEgbG90Ig0KPj4+
PiBJbiBteSBkb2N1bWVudCAiIGRyYWZ0LXZhbmRlcnN0b2stY29yZS1jb21pLTA2IC0gTVYuZG9j
eCAiLCBJIHByb3Bvc2UgYSBuZXcgZGVmaW5pdGlvbiB0byBhZGRyZXNzIHRoaXMuDQo+Pj4+IA0K
Pj4+IA0KPj4+IFdoYXQgaXMgaXQ/DQo+Pj4gSU1PIHlvdSBzaG91bGQgcG9zdCBjb21tZW50cyB0
byB0aGUgbWFpbGluZyBsaXN0IG5vdCBtYXJrdXAgdG8gYSB3b3JkIGRvY3VtZW50LiAgSXQgaXMg
dG9vIGhhcmQgdG8gZm9sbG93Lg0KPj4+IA0KPj4+IA0KPj4+PiBNb2R1bGUgQ29udGV4dDogQSBt
b2R1bGUgY29udGV4dCBpcyBjb21wb3NlZCBvZiBhbGwgZGF0YSBub2Rlcywgbm90aWZpY2F0aW9u
cyBhbmQgUlBDcyBkZWZpbmVkIGluIGEgWUFORyBtb2R1bGUgYW5kIGluY2x1ZGVkIHN1Yi1tb2R1
bGVzIG9yIGFkZGVkIHRvIHRoZW0gdXNpbmcgdGhlIGF1Z21lbnQgWUFORyBzdGF0ZW1lbnQuDQo+
Pj4+IA0KPj4+IA0KPj4+IEFsbW9zdCAtLSB0aGlzIGlzIGRlZmluZWQgaW4gUkZDIDYwMjAgLS0g
dGhlIGF1Z21lbnRpbmcgbm9kZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBhdWdtZW50ZWQgbW9kdWxl
LiAgVGhleSB3aWxsIGJlIHJldHVybmVkIGluIE5FVENPTkYgYW5kIFJFU1RDT05GIHJldHJpZXZh
bCBvcGVyYXRpb25zIGZvciBhbiBhbmNlc3RvciBub2RlIGJ1dCB0aGV5IGFyZSBub3QgcGFydCBv
ZiB0aGUgYXVnbWVudGVkIG1vZHVsZS4gIE9ubHkgb2JqZWN0cyBkZWZpbmVkIGluIHRoZSBtb2R1
bGUgbmFtZXNwYWNlIGFyZSBwYXJ0IG9mIHRoZSBtb2R1bGUuDQo+Pj4gDQo+Pj4gDQo+Pj4gQW5k
eQ0KPj4+IA0KPj4+IA0KPj4+IA0KPj4+PiBTZWN0aW9uIDQuMS4zLjQgc2hvdyBhbiBleGFtcGxl
IG9mIGluY2x1ZGUsIGltcG9ydCBhbmQgYXVnbWVudC4NCj4+Pj4gDQo+Pj4+IE1pY2hlbCBWZWls
bGV0dGUNCj4+Pj4gU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KPj4+PiBUcmlsbGlhbnQg
SW5jLg0KPj4+PiBUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KPj4+PiBtaWNoZWwudmVpbGxl
dHRlQHRyaWxsaWFudGluYy5jb20NCj4+Pj4gd3d3LnRyaWxsaWFudGluYy5jb20NCj4+Pj4gDQo+
Pj4+IA0KPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+PiBGcm9tOiBBbmR5IEJp
ZXJtYW4gW21haWx0bzphbmR5QHl1bWF3b3Jrcy5jb21dDQo+Pj4+IFNlbnQ6IDMganVpbiAyMDE1
IDE0OjU0DQo+Pj4+IFRvOiBNaWNoZWwgVmVpbGxldHRlDQo+Pj4+IENjOiBBbGV4YW5kZXIgUGVs
b3Y7IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KPj4+PiBTdWJqZWN0OiBSZTogW2Nv
cmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxlIGFuZCBZQU5HIGhhc2ggaW4gDQo+Pj4+
IFVSTA0KPj4+PiANCj4+Pj4gT24gV2VkLCBKdW4gMywgMjAxNSBhdCAxMToxNiBBTSwgTWljaGVs
IFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPiB3cm90ZToNCj4+
Pj4+IEhpIEFuZHkNCj4+Pj4+IA0KPj4+Pj4gQ291cGxlIG9mIHF1ZXN0aW9ucyBhYm91dCB5b3Vy
IHByb3Bvc2VkIHNvbHV0aW9uLg0KPj4+Pj4gDQo+Pj4+PiA9PT0gUXVlc3Rpb24gIzEsIE5ldyBZ
QU5HIHN0YXRlbWVudA0KPj4+Pj4gDQo+Pj4+PiBZb3VyIHNvbHV0aW9uIHdvcmtzIG9ubHkgaWYg
aGFzaCBjbGFzaGVzIHdpdGhpbiBhIG1vZHVsZSBhcmUgcmVzb2x2ZWQgYXQgZGVzaWduIHRpbWUu
IElmIG5vdCwgdGhlIGVycm9yIG1lc3NhZ2Ugd2lsbCByZXR1cm4gdGhlIGZvbGxvd2luZyBpbmZv
cm1hdGlvbiB3aGljaCBpcyBub3Qgc3VmZmljaWVudCB0byByZXNvbHZlIHdoaWNoIGRhdGEgbm9k
ZSBpcyB3aGljaC4NCj4+Pj4+IA0KPj4+Pj4gIHsgIjEyMzQiOiBbDQo+Pj4+PiAgICAgICAgICJt
b2R1bGUtQSI6IjQ1NjciLA0KPj4+Pj4gICAgICAgICAibW9kdWxlLUEiOiI2NTIzIg0KPj4+Pj4g
ICAgIF0NCj4+Pj4+ICB9DQo+Pj4+PiANCj4+Pj4gDQo+Pj4+IA0KPj4+PiBUaGUgb3JpZ2luYWwg
cHJvcG9zYWwgaGFkIGEgMy10dXBsZSB7IG1vZHVsZS1uYW1lLCBwYXRoLWV4cHIsIG5ldy1oYXNo
IH0gV2UgZGlzY3Vzc2VkIHNvbWUgb3B0aW1pemF0aW9ucyBpbiB0aGUgNlRJU0NIIGNhbGwgdG8g
cmVkdWNlIHRoZSBzaXplIG9mIHRoZSBwYXRoLWV4cHIgYW5kIHN0aWxsIG5vdCByZXF1aXJlIHRo
ZSBjbGllbnQgdG8gc3RvcmUgYWxsIHRoZSBwYXRoIHN0cmluZ3MsIHN1Y2ggYXMgc3RvcmUgYSBm
ZXcgYnl0ZXMgZnJvbSB0aGUgcGF0aCBzdHJpbmdzIGxpa2UgNnRoIGFuZCAxMXRoIGJ5dGVzIChB
dm9pZCB0aGUgY29tbW9uIGlldGYtIHByZWZpeCBmb3IgbWFueSBtb2R1bGUgbmFtZXMpLg0KPj4+
PiANCj4+Pj4gVGhpcyBpcyBub3QgZGV0ZXJtaW5pc3RpYy4gT25seSB0aGUgZnVsbCBwYXRoIHN0
cmluZyBpcyBmb29sLXByb29mLg0KPj4+PiBJIHdvdWxkIHByZWZlciBpZiBoYXNoIGNvbGxpc2lv
bnMgaW4gYSBzaW5nbGUgbW9kdWxlIHdlcmUgbm90IGFsbG93ZWQuDQo+Pj4+IFRoZXkgbmVlZCB0
byBiZSByZXNvbHZlZCBhdCBkZXNpZ24gdGltZS4gIElmIHRoaXMgaXMgbm90IHBvc3NpYmxlLCB0
aGVuIGEgc3RhbmRhcmQgcmVoYXNoIGFsZ29yaXRobSBzaG91bGQgYmUgdXNlZCBzbyB0aGUgY29s
bGlzaW9uIGlzIHJlc29sdmVkIGluIGEgcHJlZGljdGFibGUgd2F5LiAgZS5nLiwgdHJ5IGFwcGVu
ZGluZyAiXyIsIHRoZW4gdHJ5ICJfXyIsIGV0Yy4NCj4+Pj4gVGhlIHJlc3VsdCB3b3VsZCBiZSB0
aGF0IGhhc2ggY29sbGlzaW9ucyBpbiBhIHNpbmdsZSBtb2R1bGUgZG8gbm90IG9jY3VyIGluIENv
TUkuDQo+Pj4+IA0KPj4+PiANCj4+Pj4+IElzIGl0IHBvc3NpYmxlL2FjY2VwdGFibGUgdG8gcmVx
dWVzdCBhIG5ldyBZQU5HIHN0YXRlbWVudCB0byBtYW51YWxseSBhc3NpZ24gYSBJRCB0byBhIGRh
dGEgbm9kZT8NCj4+Pj4+IFNhbWUgcXVlc3Rpb24gZm9yIGEgbW9kdWxlIElEPw0KPj4+Pj4gDQo+
Pj4+PiBGb3IgZXhhbXBsZSAoc2VlICJpZCAxNiIgYW5kICJpZCAyNSIgYmVsbG93KSA6DQo+Pj4+
PiANCj4+Pj4+ICBtb2R1bGUgYSB7DQo+Pj4+PiAgICAgbmFtZXNwYWNlIGEtbnM7DQo+Pj4+PiAg
ICAgcHJlZml4IGE7DQo+Pj4+PiAgICAgaWQgMTY7DQo+Pj4+PiAgICAgcmV2aXNpb24gMjAxNS0w
MS0wMTsNCj4+Pj4+IA0KPj4+Pj4gICAgIGxlYWYgbGVhZkExIHsgdHlwZSBzdHJpbmc7IGlkIDI1
IH0NCj4+Pj4+ICAgICBjb250YWluZXIgY29udGFpbmVyQSB7DQo+Pj4+PiAgICAgICAgbGVhZiBs
ZWFmQTIgeyB0eXBlIHN0cmluZ30NCj4+Pj4+ICAgICB9DQo+Pj4+PiAgfQ0KPj4+PiANCj4+Pj4g
DQo+Pj4+IFlvdSBjb3VsZCBoYXZlIGFuIGV4dGVuc2lvbiBzdGF0ZW1lbnQgZG8gYW55dGhpbmcg
eW91IHdhbnQ6DQo+Pj4+IA0KPj4+PiAgIGNvbWk6aWQgIDE2Ow0KPj4+PiANCj4+Pj4gQnV0IHRo
ZXNlIG51bWJlcnMgZG8gbm90IGV4aXN0IGFueSBhbnkgbW9kdWxlcyBhbmQgc28gdGhleSBjYW5u
b3QgYmUgcmVsaWVkIG9uIGluIENvTUkuDQo+Pj4+IA0KPj4+PiANCj4+Pj4+IA0KPj4+Pj4gPT09
IFF1ZXN0aW9uICMyLCBJbnRyb2R1Y3Rpb24gb2YgYW4gb3B0aW9uYWwgcXVlcnkgcGFyYW1ldGVy
IHVzZWQgDQo+Pj4+PiB0byB0YXJnZXQgYSBzcGVjaWZpYyBtb2R1bGUNCj4+Pj4+IA0KPj4+Pj4g
Rm9yIG5vZGVzIC8gbmV0d29ya3Mgd2hpY2ggY2FuIGFmZm9yZCBhIHNsaXRlbHkgbGFyZ2VyIHBh
eWxvYWQgKElFRUUgODAyLjE1LjRnIGZvciBleGFtcGxlKSBidXQgd2FudCB0byBhdm9pZCB0aGUg
cHJvY2Vzc2luZyBhbmQgc3RvcmFnZSBhc3NvY2lhdGVkIHdpdGggdGhlIHBvcnBvc2VkIGVycm9y
IG1lc3NhZ2UsIGFyZSB5b3Ugb3Bwb3NlZCB0byB0aGUgc3VwcG9ydCBvZiBhbiBvcHRpb25hbCBD
b0FQIHF1ZXJ5IHBhcmFtZXRlciB1c2UgY2FycnkgdGhlIG1vZHVsZSBuYW1lIG9yIG1vZHVsZSBJ
RCA/DQo+Pj4+PiANCj4+Pj4+IEZvciBleGFtcGxlOg0KPj4+Pj4gDQo+Pj4+PiBHRVQgZXhhbXBs
ZS5jb20vWThkN3M/c2VsZWN0PSBpZXRmLTZ0aXNjaC1tYWMNCj4+Pj4+IA0KPj4+Pj4gPT09IFF1
ZXN0aW9uICMzLCBVc2Ugb2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgaW5zdGVhZCBvZiB0
aGUgDQo+Pj4+PiBVUkkNCj4+Pj4+IA0KPj4+Pj4gQXJlIHlvdSBvcG9zZWQgdG8gdGhlIHVzZSBv
ZiB0aGUgc2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBpbnN0ZWFkIG9mIA0KPj4+Pj4gdGhlIFVSSSB0
byBpZGVudGlmeSBkYXRhIG5vZGUocykNCj4+Pj4+IA0KPj4+PiANCj4+Pj4gTm90IHJlYWxseS4N
Cj4+Pj4gDQo+Pj4+IEkgZG9uJ3Qga25vdyBob3cgbWl4ZWQgdGhlIG1vZHVsZXMgd2lsbCBnZXQg
aW4gQ29NSS4NCj4+Pj4gSW4gTkVUQ09ORiwgbW9kdWxlcyB0ZW5kIHRvIHVzZSBhdWdtZW50IGEg
bG90LCBzbyB0aGUgbm9kZXMgZnJvbSAnbW9kdWxlLUEnIG1heSBiZSBuZXN0ZWQgbm9kZXMuDQo+
Pj4+IFJldHJpZXZpbmcganVzdCB0aGUgYXVnbWVudGluZyBub2RlcyBhbmQgaWdub3JpbmcgdGhl
IGF1Z21lbnRlZCBub2RlcyB3b3VsZCBsaWtlbHkgYmUgb3BlcmF0aW9uYWxseSB1c2VsZXNzLg0K
Pj4+PiBlLmcuLCB3aGVuIGF1Z21lbnRpbmcgYSBsaXN0LCB0aGUga2V5IGxlYWZzIGFyZSBuZWVk
ZWQgdG8gaWRlbnRpZnkgdGhlIGluc3RhbmNlLg0KPj4+PiANCj4+Pj4gSSB3b3VsZCBsaWtlIHRv
IGtlZXAgQ29NSSBleHRyZW1lbHkgc2ltcGxlLg0KPj4+PiBNb3JlIGJlbGxzIGFuZCB3aGlzdGxl
cyBtZWFucyBpbmNyZWFzZWQgbWVtb3J5IGFuZCBDUFUgcmVxdWlyZW1lbnRzLiANCj4+Pj4gSSBh
bSBnbGFkIENPUkUgYW5kIDZUSVNDSCBXR3MgYXJlIHNvIGNvbmNlcm5lZCBhYm91dCBjb25zdHJh
aW5lZCByZXNvdXJjZXMuDQo+Pj4+IE9ubHkgdGhlIG1vc3QgaW1wb3J0YW50IGJlbGxzIGFuZCB3
aGlzdGxlcyB3aWxsIGdldCBzdGFuZGFyZGl6ZWQuDQo+Pj4+IA0KPj4+PiANCj4+Pj4+IEZvciBl
eGFtcGxlOg0KPj4+Pj4gDQo+Pj4+PiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0PVk4ZDdzDQo+
Pj4+PiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0PVk4ZDdzLE5LSGFBIEdFVA0KPj4+Pj4gZXhh
bXBsZS5jb20vbWc/c2VsZWN0PWlldGYtNnRpc2NoLW1hYyhZOGQ3cyxOS0hhQSkNCj4+Pj4+IA0K
Pj4+Pj4gPT09IFF1ZXN0aW9uICM0LCBDb21wcmVzc2luZyBZQU5HIGhhc2ggYmFzZTY0IHJlcHJl
c2VudGF0aW9uDQo+Pj4+PiANCj4+Pj4+IEFyZSB5b3Ugb3Bvc2VkIHRvIHRoZSBjb21wcmVzc2lv
biBvZiB0aGUgYmFzZTY0IHJlcHJlc2VudGF0aW9uIGFzIHByb3BzZWQgYnkgQWxleGFuZGVyLg0K
Pj4+Pj4gDQo+Pj4+IA0KPj4+PiBOby4gIE9wdGltaXphdGlvbnMgdGhhdCByZWR1Y2UgdGhlIGVu
Y29kaW5nIHNpemUgYXJlIGltcG9ydGFudC4NCj4+Pj4gSSB3YW50IHRvIHVzZSBzdGFuZGFyZCBD
Qk9SLiAgTm8gc3BlY2lhbCBoYWNrcyBqdXN0IGZvciBDb01JLg0KPj4+PiANCj4+Pj4+IEZvciBl
eGFtcGxlOg0KPj4+Pj4gDQo+Pj4+PiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0PTdzDQo+Pj4+
PiBJbnN0ZWFkIG9mDQo+Pj4+PiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0PSBBQUE3cw0KPj4+
Pj4gDQo+Pj4+PiBNaWNoZWwgVmVpbGxldHRlDQo+Pj4+PiBTeXN0ZW0gQXJjaGl0ZWN0dXJlIERp
cmVjdG9yDQo+Pj4+PiBUcmlsbGlhbnQgSW5jLg0KPj4+Pj4gVGVsOiA0NTAtMzc1LTA1NTYgZXh0
LiAyMzcNCj4+Pj4+IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0KPj4+Pj4gd3d3
LnRyaWxsaWFudGluYy5jb20NCj4+Pj4+IA0KPj4+Pj4gDQo+Pj4+IA0KPj4+PiBBbmR5DQo+Pj4+
IA0KPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+IEZyb206IEFuZHkgQmll
cm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0NCj4+Pj4+IFNlbnQ6IDMganVpbiAyMDE1
IDEzOjA5DQo+Pj4+PiBUbzogTWljaGVsIFZlaWxsZXR0ZQ0KPj4+Pj4gQ2M6IEFsZXhhbmRlciBQ
ZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQo+Pj4+PiBTdWJqZWN0OiBSZTog
W2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxlIGFuZCBZQU5HIGhhc2ggaW4gDQo+
Pj4+PiBVUkwNCj4+Pj4+IA0KPj4+Pj4gT24gV2VkLCBKdW4gMywgMjAxNSBhdCA5OjA1IEFNLCBN
aWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+IHdyb3Rl
Og0KPj4+Pj4+IEhpIEFsZXhhbmRlcg0KPj4+Pj4+IA0KPj4+Pj4+IEF0IHRoZSBsYXN0IDZUaVND
SCBiaS13ZWVrbHkgY2FsbCwgNCBzb2x1dGlvbnMgaGF2ZSBiZWVuIHByZXNlbnRlZCB0byB0aGUg
aGFzaCBjbGFzaGVzIHByb2JsZW0uIFR3byBiYXNlZCBvbiBhIHJlaGFzaCB0YWJsZSBhbmQgdHdv
IGJhc2VkIG9uIGEgbmV3IENvQVAgcXVlcnkgcGFyYW1ldGVyIGNhcnJ5aW5nIHRoZSBtb2R1bGUg
bmFtZSBvciByZWdpc3RlcmVkIG1vZHVsZSBJRC4gVGhpcyBxdWVyeSBwYXJhbWV0ZXIgaXMgdXNl
ZCB0byBzZWxlY3QgdW5hbWJpZ3VvdXNseSB0aGUgdGFyZ2V0ZWQgZGF0YSBub2RlKHMpIGFzc3Vt
aW5nIHRoYXQgYW55IGhhc2ggY29sbGlzaW9uIHdpdGhpbiBhIG1vZHVsZSBoYXZlIGJlZW4gcmVz
b2x2ZWQgYXQgZGVzaWduIHRpbWUuIFlvdSBjYW4gZmluZCB0aGlzIHByZXNlbnRhdGlvbiBpbiBh
dHRhY2htZW50Lg0KPj4+Pj4+IA0KPj4+Pj4+IEJvdGggb2YgeW91ciBwcm9wb3NhbHMgbWFrZSBz
ZW5zZSB0byBtZSBidXQgSSBzdGlsbCBob3BlIHRoYXQgdGhlIGNsYXNoIGZpbGUgY2FuIGJlIGF2
b2lkZWQgb3IgYmUgb3B0aW9uYWwuDQo+Pj4+Pj4gDQo+Pj4+PiANCj4+Pj4+IA0KPj4+Pj4gSSBh
Z3JlZSB3ZSBzaG91bGQgbm90IG5lZWQgdGhlIGNsaWVudCB0byByZXRyaWV2ZSB0aGUgcmVoYXNo
IGluZm8gYmVmb3JlIHVzaW5nIGEgc2VydmVyLg0KPj4+Pj4gVGhlIENvTUkgYXV0aG9ycyBoYXZl
IGRpc2N1c3NlZCBhIHNvbHV0aW9uIHdoaWNoIEkgd2lsbCB0cnkgdG8gd3JpdGUgdXAgdG9kYXkg
d2hlcmUgYSBzcGVjaWFsICJoYXNoLWNsYXNoIiBlcnJvciBpcyByZXR1cm5lZCBieSBDb01JIGlm
IGEgcmVoYXNoIGlzIG5lZWRlZC4NCj4+Pj4+IA0KPj4+Pj4gIDEpIGNsaWVudCByZXF1ZXN0cyBt
b2R1bGUtQSBvYmplY3Qgd2l0aCBoYXNoICAiMTIzNCI7DQo+Pj4+PiAgICAgICB0aGVyZSBpcyBu
byBleHRlbmRlZC1uYW1lL2xvY2FsLW5hbWUsDQo+Pj4+PiAgICAgICBqdXN0IHRoZSBZQU5HIGhh
c2gsIHVzZWQgaW4gYW55IHJlcXVlc3QNCj4+Pj4+IA0KPj4+Pj4gIDIpIGlmICcxMjM0JyBoYXMg
YSBjb2xsaXNpb24gaW4gdGhpcyBzZXJ2ZXIgdGhlbiBhIHNwZWNpYWwgZXJyb3IgY29kZSBpcyBy
ZXR1cm5lZDsNCj4+Pj4+ICAgICAgVGhlIHJldHVybiBwYXlsb2FkIGhhcyB0aGUgcmVoYXNoIGlu
Zm8gW29sZC1oYXNoLCB7IG1vZHVsZS1uYW1lLCBuZXctaGFzaCB9K10NCj4+Pj4+ICAgICAgICAg
IHsgIjEyMzQiOiBbDQo+Pj4+PiAgICAgICAgICAgICAgICAgIm1vZHVsZS1BIjoiNDU2NyIsDQo+
Pj4+PiAgICAgICAgICAgICAgICAgIm1vZHVsZS1YIjoiNjUyMyINCj4+Pj4+ICAgICAgICAgICAg
IF0NCj4+Pj4+ICAgICAgICAgIH0NCj4+Pj4+IA0KPj4+Pj4gICAzKSB0aGUgY2xpZW50IGdldHMg
dGhlIGVycm9yIGluZm8sIGFuZCBrbm93cyB3aGljaCBtb2R1bGUgaXRzICIxMjM0IiBpcyBmcm9t
Lg0KPj4+Pj4gICAgICAgIEl0IGZpbmRzIHRoZSBjb3JyZWN0IG1vZHVsZSBuYW1lIGluIHRoZSBh
cnJheSBhbmQgcmVwbGFjZXMgaXRzIG9sZC1oYXNoDQo+Pj4+PiAgICAgICAgd2l0aCB0aGUgbmV3
LWhhc2guDQo+Pj4+PiANCj4+Pj4+ICA0KSBjbGllbnQgcmUtc2VuZHMgdGhlIHJlcXVlc3QsIHVz
aW5nIGhhc2ggIjQ1NjciIGluc3RlYWQgb2YgIjEyMzQiDQo+Pj4+PiANCj4+Pj4+IFRoZSByZWhh
c2ggdGFibGUgZ29lcyBhd2F5LCBhbmQgb25seSB0aGlzIGVycm9yIGluZm8gaXMgdXNlZCBpbnN0
ZWFkLg0KPj4+Pj4gDQo+Pj4+Pj4gTWljaGVsIFZlaWxsZXR0ZQ0KPj4+Pj4+IFN5c3RlbSBBcmNo
aXRlY3R1cmUgRGlyZWN0b3INCj4+Pj4+PiBUcmlsbGlhbnQgSW5jLg0KPj4+Pj4+IFRlbDogNDUw
LTM3NS0wNTU2IGV4dC4gMjM3DQo+Pj4+Pj4gbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMu
Y29tIHd3dy50cmlsbGlhbnRpbmMuY29tDQo+Pj4+Pj4gDQo+Pj4+PiANCj4+Pj4+IA0KPj4+Pj4g
QW5keQ0KPj4+Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N
Cj4+Pj4+PiBGcm9tOiBjb3JlIFttYWlsdG86Y29yZS1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhh
bGYgT2YgQWxleGFuZGVyIA0KPj4+Pj4+IFBlbG92DQo+Pj4+Pj4gU2VudDogMyBqdWluIDIwMTUg
MTE6MDENCj4+Pj4+PiBUbzogNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQo+Pj4+Pj4g
U3ViamVjdDogW2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxlIGFuZCBZQU5HIGhh
c2ggaW4gVVJMDQo+Pj4+Pj4gDQo+Pj4+Pj4gSGVsbG8gZXZlcnlvbmUsDQo+Pj4+Pj4gDQo+Pj4+
Pj4gSSB3b3VsZCBsaWtlIHRvIGRpc2N1c3Mgd2l0aCB5b3UgdG8gaWRlYXMvcHJvcG9zYWxzIGlu
IHRoaXMgbWFpbCwgbmFtZWx5Og0KPj4+Pj4+IDEpIENhY2hpbmcgdGhlIHlhbmcgY2xhc2ggZmls
ZSBvbiBhIHJlbW90ZSBzZXJ2ZXINCj4+Pj4+PiAyKSBDb21wcmVzc2luZyB0aGUgVVJMIHJlcHJl
c2VudGF0aW9uIG9mIFlBTkcgaGFzaGVzDQo+Pj4+Pj4gDQo+Pj4+Pj4gMSkgQ2FjaGluZyB0aGUg
eWFuZyBjbGFzaCBmaWxlIG9uIGEgcmVtb3RlIHNlcnZlciBFdmVuIHRob3VnaCBoYXNoIGNvbGxp
c2lvbnMgc2hvdWxkIGhhcHBlbiByYXJlbHkgKGlmIGV2ZXIpLCB0aGVyZSBtYXkgYmUgY2FzZXMg
d2hlbiBpdCBjb3VsZCBiZSBpbmV2aXRhYmxlLCBhbmQgYXMgc3VjaCwgaXQgbWF5IGJlIGludGVy
ZXN0aW5nIHRvIGNhY2hlIHRoZSBjbGFzaF9maWxlIHNvbWV3aGVyZSBvbiBhIHJlbW90ZSBzZXJ2
ZXIgdG8gYXZvaWQgc2VuZGluZyBpdCBvdmVyIHRoZSBjb25zdHJhaW5lZCB3aXJlbGVzcyBpbnRl
cmZhY2UuIEl0IGNvdWxkIGJlIHVzZWQgZm9yIG90aGVyIGNhc2VzLCB3aGVyZSBzb21lIGZyZXF1
ZW50bHkgdXNlZCByZXNvdXJjZXMgYXJlIHJlLWhhc2hlZCBmb3IgcGVyZm9ybWFuY2UgcHVycG9z
ZXMuIE1heWJlIGl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRvIGFsbG93IHRoZSBzZXJ2ZXIgdG8g
c3BlY2lmeSBhIHJlbW90ZSBsb2NhdGlvbiBmb3IgdGhlIGNsYXNoIGZpbGU/IEZvciBzdGF0aWMg
Y29sbGlzaW9ucyBvciBvcHRpbWl6YXRpb25zIGl0IGNvdWxkIGJlIHRoYXQgdGhlIFlBTkcgZGVm
aW5pdGlvbiBpbmNsdWRlcyBhbHRlcm5hdGl2ZSBoYXNoIHZhbHVlcywgd2hpY2ggY291bGQgYmUg
dXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsIG9uZXMuDQo+Pj4+Pj4gDQo+Pj4+Pj4gMikg
Q29tcHJlc3NpbmcgdGhlIFVSTCByZXByZXNlbnRhdGlvbiBvZiBZQU5HIGhhc2hlcyBBbm90aGVy
IHBvaW50IA0KPj4+Pj4+ICh3aGljaCBpcyB1bnJlbGF0ZWQpLCBpcyB0byBlbGlkZSB0aGUgbGVh
ZGluZyAiQSJzIGZyb20gdGhlIGJhc2U2NCANCj4+Pj4+PiByZXByZXNlbnRhdGlvbiBvZiB0aGUg
aGFzaCBpbiB0aGUgVVJMICh3aGljaCBjb3JyZXNwb25kcyB0byANCj4+Pj4+PiBlbGlkaW5nIHRo
ZSBsZWFkaW5nIHplcm9lcyBmcm9tIHRoZSBoYXNoKS4gQXMgc3BlY2lmaWVkIGluIHNlY3Rpb24g
DQo+Pj4+Pj4gNS40LiBhIGhhc2ggdmFsdWUgb2YgMHgwMDAwMDA3ZSB3aWxsIGJlIGVuY29kZWQg
YXMgQUFBQV8sIGJ1dCBpZiANCj4+Pj4+PiB0aGUgbGVhZGluZyBB4oCZcyBhcmUgZWxpZGVkIGl0
IHdpbGwgYmUgc2ltcGx5IF8NCj4+Pj4+PiANCj4+Pj4+PiBUaGlzIGNvdWxkIHBvc2UgcHJvYmxl
bXMgb25seSBpZiBpbiB0aGUgZnV0dXJlIHRoZSBzaXplIG9mIHRoZSBoYXNoIHZhbHVlcyBpcyBp
bmNyZWFzZWQgZnJvbSAzMCBiaXRzIHRvIHNvbWUgb3RoZXIgKGhpZ2hlcikgdmFsdWUuDQo+Pj4+
Pj4gDQo+Pj4+Pj4gVGhpcywgaG93ZXZlciwgY291bGQgYmUgdmVyeSB1c2VmdWwgd2hlbiBoYXZp
bmcgdG8gZnJlcXVlbnRseSANCj4+Pj4+PiBhY2Nlc3MgdGhlIHNhbWUgcmVzb3VyY2UuIEluIHN1
Y2ggY2FzZSwgdGhlIHNlcnZlci9uZXR3b3JrIA0KPj4+Pj4+IG9wZXJhdG9yIG1heSBkZWNpZGUg
dG8gcmUtaGFzaCB0aGUgVVJJIHRvIGEgc2hvcnRlciB2ZXJzaW9uLCBlLmcuIA0KPj4+Pj4+IHRo
ZSAvc3lzOnN5c3RlbS1zdGF0ZS9zeXM6Y2xvY2svc3lzOmN1cnJlbnQtZGF0ZXRpbWUgY291bGQg
YmUgDQo+Pj4+Pj4gcmVtYXBwZWQgZnJvbSAweDE1MzcwNDA4IGFuZCBWTndRSSB0byAweDEgYW5k
IF8NCj4+Pj4+PiANCj4+Pj4+PiBCZXN0LA0KPj4+Pj4+IEFsZXgNCj4+Pj4+PiANCj4+Pj4+PiBQ
Uy4NCj4+Pj4+PiBBIHR5cG8gKD8pLCB3aGljaCBtYXkgYmUgYWxyZWFkeSBjb3JyZWN0ZWQsIGlu
IHRoZSBleGFtcGxlIG9mIG1vZC51cmkgb24gUGFnZSAyNjogdGhlIHR3byByZXNwb25zZXMgaGF2
ZSBkaWZmZXJlbnQgc2NoZW1lICJtb2QudXJpIiBhbmQgIm1vZHVyaSINCj4+Pj4+PiANCj4+Pj4+
PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4+Pj4+
IGNvcmUgbWFpbGluZyBsaXN0DQo+Pj4+Pj4gY29yZUBpZXRmLm9yZw0KPj4+Pj4+IGh0dHBzOi8v
d3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZQ0KPj4+Pj4+IA0KPj4+Pj4+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pj4+Pj4gY29yZSBt
YWlsaW5nIGxpc3QNCj4+Pj4+PiBjb3JlQGlldGYub3JnDQo+Pj4+Pj4gaHR0cHM6Ly93d3cuaWV0
Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9jb3JlDQo+Pj4+Pj4gDQo+IA0KDQo=


From nobody Thu Jun  4 12:39:44 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2BC071A8F34 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 12:39:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ATf_E62QwurK for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 12:39:41 -0700 (PDT)
Received: from mail-la0-f53.google.com (mail-la0-f53.google.com [209.85.215.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6B0BF1A8BBE for <core@ietf.org>; Thu,  4 Jun 2015 12:39:41 -0700 (PDT)
Received: by labko7 with SMTP id ko7so39428917lab.2 for <core@ietf.org>; Thu, 04 Jun 2015 12:39:40 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ghbks8fmrjxlrbxPMc0TEJUAwoHQbhHG6BYUL9kZGpk=; b=R2KEdyq85xNeEIPmpexdWHiQq4eAuC7uRtr8is2tC7yHgiLPbyR8x1xgQO+LP9Sh5e gVMf5hwAc4v4M0AVaMTk2vtxGi77bkP7iqqS08z7EizX5ml/EKPYdqgBIuL8kqiPCyVQ fOz6MedssuWA/YvC93PaFUUCPa8Q6etK/P0AEftNnmGWUiG5t/n+iJc/eff6t903Cu/g VLnZj7NFATvKg5p3mBtzF/OK+vJW2fUR9Ub/9AQ9L926lr7YieX2Ll2RmCZi+hbalgs1 oE0pmyUr8+7BMSLo2YB63C7YDVupNYeEYFtGcL0EsrDH5ESu9qZRDNkdb2DDFHkDCB6E bj3g==
X-Gm-Message-State: ALoCoQl/7BnIHRU2/ZfyIWKjjdvpNdWX3QD77vdXtQGVTKLhKWXY00zfvqUr369OgplhlG4ygq6n
MIME-Version: 1.0
X-Received: by 10.152.9.71 with SMTP id x7mr8692211laa.119.1433446779919; Thu, 04 Jun 2015 12:39:39 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Thu, 4 Jun 2015 12:39:39 -0700 (PDT)
In-Reply-To: <CO2PR0601MB7922E0F2BA47112BD3ECB68FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRQ_k0WcM0bu3V9-9k-P_f0eQuUCC2kzNMU5Taq9+onNQ@mail.gmail.com> <CO2PR0601MB792A217CDC64BFA81962E50FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQssRR3mdb3rBbpP-=h3A1kLvMyyjKaUWh1jM_u=T_jpQ@mail.gmail.com> <CO2PR0601MB792B34697D569DAB68F8659FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTHGiWOxsnxJ8gRGR-VNCX2qaneRjmKvnc2NgGr-MsMhw@mail.gmail.com> <CO2PR0601MB7922E0F2BA47112BD3ECB68FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Thu, 4 Jun 2015 12:39:39 -0700
Message-ID: <CABCOCHR9TFpbaVohqo_SsTmB3_JbEgaLqZB+Pwhi8w8ve1R42g@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ReoMRHf-HLnXLMQlb0_glCwwsL4>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 19:39:43 -0000

On Thu, Jun 4, 2015 at 12:33 PM, Michel Veillette
<Michel.Veillette@trilliantinc.com> wrote:
> I don't remember in the CoMI draft a method which can be used by CoMI clients to get the list of YANG modules supported by CoMI servers.
> Do you means that CoMI clients need be pre-loaded with the list of YANG modules implemented by each CoMI server they might need to interact with?
> How we will deal with dynamic change in these list of YANG modules?


comi-06, pg 26:

   Therefore, it is recommended that details about management objects
   are discovered following the RESTCONF protocol.  The YANG module
   information is stored in the "ietf-yang-library" module
   [I-D.ietf-netconf-restconf].  The resource "/mg/mod.uri" is used to
   retrieve the location of the YANG module library.

I think Carsten suggested that an additional attribute
(last-changed-time or an entity-tag) be maintained by the server
so it can be observed by the client, and get notified if the YANG
module list changes for the specific server.

Andy

>
> Instead, should we require that augmented data nodes are always identified using a fully qualified identifier?
> (e.g. " ietf-interfaces.jVLxJ" or the 18 bits  module ID + 10 bits = data node ID as proposed by Alexander)
>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]
> Sent: 4 juin 2015 15:03
> To: Michel Veillette
> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>
> On Thu, Jun 4, 2015 at 10:45 AM, Michel Veillette <Michel.Veillette@trilliantinc.com> wrote:
>> Hi Andy
>>
>> About " The server knows that hash 5678 is a clash"
>>
>> In the described scenario, the CoMI server implement only mod1 and mod2 and in this context the hash value 5678 is not a clash. On the client side, the CoMI client implement mod1, mod2 and mod3 and is confused about the received data.
>>
>
> But hash collisions are only within a server.
> The client will get the ietf-yang-library inventory for the server and see that mod3 is not supported by that server.
>
> The client cannot treat rehash info as global.
> It has to remember the rehash info from each server.
>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>
> Andy
>


From nobody Thu Jun  4 15:19:24 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8D48E1ACD03 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 15:19:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.475
X-Spam-Level: **
X-Spam-Status: No, score=2.475 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G8USnXL5l6Y9 for <core@ietfa.amsl.com>; Thu,  4 Jun 2015 15:19:20 -0700 (PDT)
Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com [209.85.217.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB7051ACD1C for <core@ietf.org>; Thu,  4 Jun 2015 15:19:19 -0700 (PDT)
Received: by lbcmx3 with SMTP id mx3so35604578lbc.1 for <core@ietf.org>; Thu, 04 Jun 2015 15:19:18 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=ETcJ0i66ZZJ+jt7wv41fml8HmA9HAyf81pG9r9L5QUQ=; b=BE3naGzyEAoXzSuN0DAn05/S7BL3MK6yWCks+LcVoLEXHA0QA48GA5srS+17kYC1Uk pG001hHoKecsRxWiE52RaTtqZBRkp/q4mdNzemkaDkQ+fOdPHpLG1L1+6uvsbnvjZdFF RescbfkP4ZplnAeQabxFs2dMH2OGTL4v5Ft3JvKnL1EIrlDqBjEZ1Hw8KlOcg3R8whwC ClSbdSKm1HjS2hBl2R37x6R3QMv1/kEQt0oBbfJYvZQNB5Ho+5Lqj3lfIX0PYkXsUgu1 t/nGPBbaEfiPwK3sWepbVN1YHFvllaN9kuOxCCUXaP8acx5AW/IfAXH9ZIQ9MbO7TQLV CUYw==
X-Gm-Message-State: ALoCoQnvptPyK0uLmJu874J6SFKnJh/R26vybQw01/iBKD0106zlZIN4Ogeddq+O4MAZkM7eqvdn
MIME-Version: 1.0
X-Received: by 10.112.164.66 with SMTP id yo2mr220272lbb.33.1433456358311; Thu, 04 Jun 2015 15:19:18 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Thu, 4 Jun 2015 15:19:18 -0700 (PDT)
In-Reply-To: <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu>
Date: Thu, 4 Jun 2015 15:19:18 -0700
Message-ID: <CABCOCHRU-7OZyH+SHh9Fxu9GP+bJBQxmYYDmBwzLaNhwqDHCTw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/qLyjUsL_zC6ACoDlfOWjurjoWU4>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 22:19:23 -0000

On Thu, Jun 4, 2015 at 9:32 AM, Alexander Pelov
<alexander.pelov@telecom-bretagne.eu> wrote:
> Hi all,
>
> Just a short idea for the hash clash issue.
>
> The 30 bits, which are reserved for the YANG hash can have a structure :
> 1 bit =3D structured YANG hash (0) or pure YANG hash (1)
>    If 0 (structured), then :
>        1 bit =3D managed (0) or non-managed (1)
>        18 bits =3D module ID
>        10 bits =3D item ID
>    If 1 (non-structured), then:
>        29 bits =3D least significant 29 bits of the YANG hash.
>

I do not really want to change the YANG Hash from 30 bits to 29 bits.

Having a different numbering scheme for every object seems too complicated.
I would add the constraint that the server must use the same numbering sche=
me
for all objects, so this can be discovered via .well-known capabilities, an=
d
all 30 bits can be used in a YANG Hash.


> In case of clash, send error, the full URI must be used (which should be =
with extremely low probability)
> This way, in the worst case you are limiting your hash value from 30 to 2=
9 bits (and thus slightly increasing the clash probability).
>
> If structured YANG hash, then:
>    0 =3D managed (e.g. IETF-assigned module ID)
>       18 bits =3D the ID of the module (1, 2, 3, =E2=80=A6., 262143) assi=
gned incrementally by IANA (0 reserved for special usage)
>       10 bits =3D the ID of the item in the module, incremented at each i=
tem (1..1023 - hope this is sufficient for all cases).
>    1 =3D unmanaged
>        18 bits =3D ID of module, by default the 18 less significant bits =
of the module. It is up to the user to assure that there are no clashes wit=
h the names of the other modules on the device
>        10 bits =3D ID of the item. It is up to the implementer to ensure =
that there are no clashes within the module.
>
> Two possible drawbacks of this approach, however:
>   - For managed IDs you will probably have to keep both the YANG hash and=
 the managed full ID.
>   - In case of unmanaged IDs you increase the probability of collision of=
 1E-9 to 2E-9.
>


IMO only managed mode is needed. The IANA registry (that will
be created) should be open to vendors and other SDOs.
This registry just assigns a module number to a module name.

The 10-bit mystery encoding does not seem very interoperable.
It should be standard.  I think the YANG "id" extension to
number each object manually will work.



> Best,
> Alexander
>


Andy

>
>> Le 4 juin 2015 =C3=A0 18:04, Michel Veillette <Michel.Veillette@trillian=
tinc.com> a =C3=A9crit :
>>
>> Hi Andy,
>>
>> Just to be sure about the scope of your comment.
>>
>> You say " Each object has a YANG Hash", yes but this is not a uniquely o=
bject identify.
>> Did we reach a consensus about using the  " YANG hash" + "module name or=
 a module ID" as a unique data node (object) identifier?
>>
>> This can take the form of a rehash table available on the CoMI server or=
 elsewhere (" YANG hash", "module name or module ID", "rehash or alias")
>> This can take the form of an error message containing (" YANG hash", "mo=
dule name or module ID", "rehash or alias")
>> This can take the form of a fully qualified identifier within the reques=
t or payload (REQ: GET example.com/mg?select(<module name>.<YANG hash>)
>>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>> -----Original Message-----
>> From: Andy Bierman [mailto:andy@yumaworks.com]
>> Sent: 4 juin 2015 11:37
>> To: Michel Veillette
>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>>
>> Hi,
>>
>> I do not agree that the module name or a module ID needs to be used at a=
ll in the object identifier.  Each object has a YANG Hash.
>> Retrieving a node, whether by hash ID or module-ID.hash will cause all d=
escendant nodes to be included in the retrieval, even if they are augmentin=
g nodes from another module.
>>
>> YANG data is hierarchical.
>> The modules are just packaging for definitions.
>> They do not define any containment or structure within the conceptual sc=
hema tree.
>>
>>
>> Andy
>>
>>
>> On Thu, Jun 4, 2015 at 8:21 AM, Michel Veillette <Michel.Veillette@trill=
iantinc.com> wrote:
>>> Hi Andy
>>>
>>> About "Almost -- this is defined in RFC 6020 -- the augmenting nodes ar=
e not part of the augmented module.  They will be returned in NETCONF and R=
ESTCONF retrieval operations for an ancestor node but they are not part of =
the augmented module.  Only objects defined in the module namespace are par=
t of the module."
>>>
>>> Understood, this is why my contribution introduce the new term, "Module=
 context". Augmenting nodes are not part of the augmented module but, as de=
fined, are part of the "Module context". This new concept was require to mi=
nimize the overhead when retrieving the complete datastore containing multi=
ple module contexts with some having augmenting nodes.
>>>
>>>   RES: 2.05 Content (Content-Format: application/cbor)
>>>   {
>>>      "a" : {
>>>         365257235 : "leafA1 value",
>>>         702149626 : {
>>>            215993329 : "leafA2 value",
>>>            962191682 : "leafC1 value"                    # Augmenting d=
ata node
>>>         },
>>>         829222983 : "leafS value"                         # Sub-module =
data node
>>>      },
>>>      "b" : {
>>>         289564696 : "leafB value"
>>>      },
>>>      "c" : {
>>>         993533527 : "leafC2 value"
>>>      }
>>>   }
>>>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>
>>>
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 3 juin 2015 17:38
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>>>
>>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette <Michel.Veillette@tri=
lliantinc.com> wrote:
>>>> About "I would prefer if hash collisions in a single module were not a=
llowed."
>>>> Agreed but how this is implemented.
>>>>
>>>
>>>
>>> By checking the YANG hashes before it is published, similar to checking=
 the YANG syntax with a YANG compiler.
>>>
>>>
>>>> About "But these numbers do not exist in any modules and so they canno=
t be relied on in CoMI.
>>>> I understand but I assume that a module can be re-published with the a=
dded statement when require. If a CoMI implementer try to implement a modul=
e containing a clash, he can look for a version of this module containing t=
he special YANG statement. The likelihood of such clash is extremely low an=
d such fallback solution won=E2=80=99t be required often. However, the RFC =
will specify how to resolve such situation if this ever happen. This statem=
ent can also be used to address the need for data node identifier compactne=
ss as mentioned by Alexander in its original email.
>>>>
>>>
>>> I think the ad-hoc id assignments are pointless because they are not un=
iversal.  The only thing that can be counted on is the module name and the =
XPath absolute path expression of each object.
>>>
>>>
>>>> About "In NETCONF, modules tend to use augment a lot"
>>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I propose =
a new definition to address this.
>>>>
>>>
>>> What is it?
>>> IMO you should post comments to the mailing list not markup to a word d=
ocument.  It is too hard to follow.
>>>
>>>
>>>> Module Context: A module context is composed of all data nodes, notifi=
cations and RPCs defined in a YANG module and included sub-modules or added=
 to them using the augment YANG statement.
>>>>
>>>
>>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are not p=
art of the augmented module.  They will be returned in NETCONF and RESTCONF=
 retrieval operations for an ancestor node but they are not part of the aug=
mented module.  Only objects defined in the module namespace are part of th=
e module.
>>>
>>>
>>> Andy
>>>
>>>
>>>
>>>> Section 4.1.3.4 show an example of include, import and augment.
>>>>
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 14:54
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in
>>>> URL
>>>>
>>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette <Michel.Veillette@tr=
illiantinc.com> wrote:
>>>>> Hi Andy
>>>>>
>>>>> Couple of questions about your proposed solution.
>>>>>
>>>>> =3D=3D=3D Question #1, New YANG statement
>>>>>
>>>>> Your solution works only if hash clashes within a module are resolved=
 at design time. If not, the error message will return the following inform=
ation which is not sufficient to resolve which data node is which.
>>>>>
>>>>>   { "1234": [
>>>>>          "module-A":"4567",
>>>>>          "module-A":"6523"
>>>>>      ]
>>>>>   }
>>>>>
>>>>
>>>>
>>>> The original proposal had a 3-tuple { module-name, path-expr, new-hash=
 } We discussed some optimizations in the 6TISCH call to reduce the size of=
 the path-expr and still not require the client to store all the path strin=
gs, such as store a few bytes from the path strings like 6th and 11th bytes=
 (Avoid the common ietf- prefix for many module names).
>>>>
>>>> This is not deterministic. Only the full path string is fool-proof.
>>>> I would prefer if hash collisions in a single module were not allowed.
>>>> They need to be resolved at design time.  If this is not possible, the=
n a standard rehash algorithm should be used so the collision is resolved i=
n a predictable way.  e.g., try appending "_", then try "__", etc.
>>>> The result would be that hash collisions in a single module do not occ=
ur in CoMI.
>>>>
>>>>
>>>>> Is it possible/acceptable to request a new YANG statement to manually=
 assign a ID to a data node?
>>>>> Same question for a module ID?
>>>>>
>>>>> For example (see "id 16" and "id 25" bellow) :
>>>>>
>>>>>   module a {
>>>>>      namespace a-ns;
>>>>>      prefix a;
>>>>>      id 16;
>>>>>      revision 2015-01-01;
>>>>>
>>>>>      leaf leafA1 { type string; id 25 }
>>>>>      container containerA {
>>>>>         leaf leafA2 { type string}
>>>>>      }
>>>>>   }
>>>>
>>>>
>>>> You could have an extension statement do anything you want:
>>>>
>>>>    comi:id  16;
>>>>
>>>> But these numbers do not exist any any modules and so they cannot be r=
elied on in CoMI.
>>>>
>>>>
>>>>>
>>>>> =3D=3D=3D Question #2, Introduction of an optional query parameter us=
ed to
>>>>> target a specific module
>>>>>
>>>>> For nodes / networks which can afford a slitely larger payload (IEEE =
802.15.4g for example) but want to avoid the processing and storage associa=
ted with the porposed error message, are you opposed to the support of an o=
ptional CoAP query parameter use carry the module name or module ID ?
>>>>>
>>>>> For example:
>>>>>
>>>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>>>
>>>>> =3D=3D=3D Question #3, Use of the select query parameter instead of t=
he
>>>>> URI
>>>>>
>>>>> Are you oposed to the use of the select query parameter instead of
>>>>> the URI to identify data node(s)
>>>>>
>>>>
>>>> Not really.
>>>>
>>>> I don't know how mixed the modules will get in CoMI.
>>>> In NETCONF, modules tend to use augment a lot, so the nodes from 'modu=
le-A' may be nested nodes.
>>>> Retrieving just the augmenting nodes and ignoring the augmented nodes =
would likely be operationally useless.
>>>> e.g., when augmenting a list, the key leafs are needed to identify the=
 instance.
>>>>
>>>> I would like to keep CoMI extremely simple.
>>>> More bells and whistles means increased memory and CPU requirements.
>>>> I am glad CORE and 6TISCH WGs are so concerned about constrained resou=
rces.
>>>> Only the most important bells and whistles will get standardized.
>>>>
>>>>
>>>>> For example:
>>>>>
>>>>> GET example.com/mg?select=3DY8d7s
>>>>> GET example.com/mg?select=3DY8d7s,NKHaA GET
>>>>> example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>>>
>>>>> =3D=3D=3D Question #4, Compressing YANG hash base64 representation
>>>>>
>>>>> Are you oposed to the compression of the base64 representation as pro=
psed by Alexander.
>>>>>
>>>>
>>>> No.  Optimizations that reduce the encoding size are important.
>>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>>>
>>>>> For example:
>>>>>
>>>>> GET example.com/mg?select=3D7s
>>>>> Instead of
>>>>> GET example.com/mg?select=3D AAA7s
>>>>>
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>>>
>>>>>
>>>>
>>>> Andy
>>>>
>>>>> -----Original Message-----
>>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>>> Sent: 3 juin 2015 13:09
>>>>> To: Michel Veillette
>>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in
>>>>> URL
>>>>>
>>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette <Michel.Veillette@tr=
illiantinc.com> wrote:
>>>>>> Hi Alexander
>>>>>>
>>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been presented t=
o the hash clashes problem. Two based on a rehash table and two based on a =
new CoAP query parameter carrying the module name or registered module ID. =
This query parameter is used to select unambiguously the targeted data node=
(s) assuming that any hash collision within a module have been resolved at =
design time. You can find this presentation in attachment.
>>>>>>
>>>>>> Both of your proposals make sense to me but I still hope that the cl=
ash file can be avoided or be optional.
>>>>>>
>>>>>
>>>>>
>>>>> I agree we should not need the client to retrieve the rehash info bef=
ore using a server.
>>>>> The CoMI authors have discussed a solution which I will try to write =
up today where a special "hash-clash" error is returned by CoMI if a rehash=
 is needed.
>>>>>
>>>>>   1) client requests module-A object with hash  "1234";
>>>>>        there is no extended-name/local-name,
>>>>>        just the YANG hash, used in any request
>>>>>
>>>>>   2) if '1234' has a collision in this server then a special error co=
de is returned;
>>>>>       The return payload has the rehash info [old-hash, { module-name=
, new-hash }+]
>>>>>           { "1234": [
>>>>>                  "module-A":"4567",
>>>>>                  "module-X":"6523"
>>>>>              ]
>>>>>           }
>>>>>
>>>>>    3) the client gets the error info, and knows which module its "123=
4" is from.
>>>>>         It finds the correct module name in the array and replaces it=
s old-hash
>>>>>         with the new-hash.
>>>>>
>>>>>   4) client re-sends the request, using hash "4567" instead of "1234"
>>>>>
>>>>> The rehash table goes away, and only this error info is used instead.
>>>>>
>>>>>> Michel Veillette
>>>>>> System Architecture Director
>>>>>> Trilliant Inc.
>>>>>> Tel: 450-375-0556 ext. 237
>>>>>> michel.veillette@trilliantinc.com
>>>>>> www.trilliantinc.com
>>>>>>
>>>>>
>>>>>
>>>>> Andy
>>>>>
>>>>>>
>>>>>> -----Original Message-----
>>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander
>>>>>> Pelov
>>>>>> Sent: 3 juin 2015 11:01
>>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>>> Subject: [core] CoMI remote server clash file and YANG hash in URL
>>>>>>
>>>>>> Hello everyone,
>>>>>>
>>>>>> I would like to discuss with you to ideas/proposals in this mail, na=
mely:
>>>>>> 1) Caching the yang clash file on a remote server
>>>>>> 2) Compressing the URL representation of YANG hashes
>>>>>>
>>>>>> 1) Caching the yang clash file on a remote server Even though hash c=
ollisions should happen rarely (if ever), there may be cases when it could =
be inevitable, and as such, it may be interesting to cache the clash_file s=
omewhere on a remote server to avoid sending it over the constrained wirele=
ss interface. It could be used for other cases, where some frequently used =
resources are re-hashed for performance purposes. Maybe it would be interes=
ting to allow the server to specify a remote location for the clash file? F=
or static collisions or optimizations it could be that the YANG definition =
includes alternative hash values, which could be used in addition to the no=
rmal ones.
>>>>>>
>>>>>> 2) Compressing the URL representation of YANG hashes Another point
>>>>>> (which is unrelated), is to elide the leading "A"s from the base64
>>>>>> representation of the hash in the URL (which corresponds to eliding
>>>>>> the leading zeroes from the hash). As specified in section 5.4. a
>>>>>> hash value of 0x0000007e will be encoded as AAAA_, but if the
>>>>>> leading A=E2=80=99s are elided it will be simply _
>>>>>>
>>>>>> This could pose problems only if in the future the size of the hash =
values is increased from 30 bits to some other (higher) value.
>>>>>>
>>>>>> This, however, could be very useful when having to frequently
>>>>>> access the same resource. In such case, the server/network operator
>>>>>> may decide to re-hash the URI to a shorter version, e.g. the
>>>>>> /sys:system-state/sys:clock/sys:current-datetime could be remapped
>>>>>> from 0x15370408 and VNwQI to 0x1 and _
>>>>>>
>>>>>> Best,
>>>>>> Alex
>>>>>>
>>>>>> PS.
>>>>>> A typo (?), which may be already corrected, in the example of mod.ur=
i on Page 26: the two responses have different scheme "mod.uri" and "moduri=
"
>>>>>>
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>
>


From nobody Thu Jun  4 15:37:10 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B3E4C1A8749; Thu,  4 Jun 2015 15:37:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.552
X-Spam-Level: **
X-Spam-Status: No, score=2.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l06p-bbVceCS; Thu,  4 Jun 2015 15:37:04 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0772.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::772]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 56B9E1A8707; Thu,  4 Jun 2015 15:37:04 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB760.namprd06.prod.outlook.com (10.141.245.147) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 22:36:44 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) with Microsoft SMTP Server (TLS) id 15.1.172.22; Thu, 4 Jun 2015 22:36:41 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Thu, 4 Jun 2015 22:36:41 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Andy Bierman <andy@yumaworks.com>, Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: [core] CoMI remote server clash file and YANG hash in URL
Thread-Index: AQHQng4oTnppTEsr9k+Ic9ltWWFgv52a7UQwgAAWcwCAAAkLgIAAFFUAgAAJpQCAACQjAIABEVbQgAAcJwCAAAEG4IAADn2AgABhAwCAAAKq8A==
Date: Thu, 4 Jun 2015 22:36:41 +0000
Message-ID: <CO2PR0601MB7921BC602CE345C96C6EE2DFEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu> <CABCOCHRU-7OZyH+SHh9Fxu9GP+bJBQxmYYDmBwzLaNhwqDHCTw@mail.gmail.com>
In-Reply-To: <CABCOCHRU-7OZyH+SHh9Fxu9GP+bJBQxmYYDmBwzLaNhwqDHCTw@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: yumaworks.com; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB792; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB760; 
x-microsoft-antispam-prvs: <CO2PR0601MB7921C12F2425C88DE8943F3FEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB792; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB792; 
x-forefront-prvs: 0597911EE1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(377424004)(53754006)(377454003)(24454002)(13464003)(51704005)(38414003)(76576001)(87936001)(66066001)(189998001)(54356999)(76176999)(33656002)(561944003)(5001770100001)(50986999)(5001960100002)(5890100001)(2656002)(74316001)(19580395003)(19580405001)(15974865002)(93886004)(2900100001)(102836002)(15975445007)(122556002)(92566002)(86362001)(99286002)(62966003)(40100003)(77096005)(46102003)(2950100001)(106116001)(77156002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB792; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2015 22:36:41.0896 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB792
X-OriginatorOrg: trilliantinc.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/F2Aui8ZywsD5z3sQxIw_Qga4Okg>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2015 22:37:08 -0000

PT09IEFib3V0ICJJTU8gb25seSBtYW5hZ2VkIG1vZGUgaXMgbmVlZGVkLiINCg0KVG90YWxseSBh
Z3JlZQ0KDQo9PT0gQWJvdXQgIlRoZSAxMC1iaXQgbXlzdGVyeSBlbmNvZGluZyBkb2VzIG5vdCBz
ZWVtIHZlcnkgaW50ZXJvcGVyYWJsZS4iDQoNCklmIHdlICIganVzdCBhc3NpZ25zIGEgbW9kdWxl
IG51bWJlciB0byBhIG1vZHVsZSBuYW1lIiwgYSB1bmlxdWUgZGF0YSBub2RlIGlkZW50aWZpZXIg
bmVlZCB0byBiZSBmb3JtZWQgYnkgdGhpcyBtb2R1bGUgbnVtYmVyICsgc29tZSBzb3J0IG9mIGRh
dGEgbm9kZSBudW1iZXIuIFRoZSAzMCBiaXRzIGRhdGEgbm9kZSBpZGVudGlmaWVyIHNpbWlsYXIg
dG8gc2NoZW1lIHByb3Bvc2VkIGJ5IEFsZXhhbmRlciBzZWVuIHRvIHdvcmsgZmluZS4gKGUuZy4g
MjAgYml0cyBtb2R1bGUgSUQsIDEwIGJpdHMgZGF0YSBub2RlIElEKQ0KDQpNaWNoZWwgVmVpbGxl
dHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0
NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0K
d3d3LnRyaWxsaWFudGluYy5jb20gwqAgDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N
CkZyb206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0gDQpTZW50OiA0
IGp1aW4gMjAxNSAxODoxOQ0KVG86IEFsZXhhbmRlciBQZWxvdg0KQ2M6IE1pY2hlbCBWZWlsbGV0
dGU7IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KU3ViamVjdDogUmU6IFtjb3JlXSBD
b01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQgWUFORyBoYXNoIGluIFVSTA0KDQpPbiBU
aHUsIEp1biA0LCAyMDE1IGF0IDk6MzIgQU0sIEFsZXhhbmRlciBQZWxvdiA8YWxleGFuZGVyLnBl
bG92QHRlbGVjb20tYnJldGFnbmUuZXU+IHdyb3RlOg0KPiBIaSBhbGwsDQo+DQo+IEp1c3QgYSBz
aG9ydCBpZGVhIGZvciB0aGUgaGFzaCBjbGFzaCBpc3N1ZS4NCj4NCj4gVGhlIDMwIGJpdHMsIHdo
aWNoIGFyZSByZXNlcnZlZCBmb3IgdGhlIFlBTkcgaGFzaCBjYW4gaGF2ZSBhIHN0cnVjdHVyZSA6
DQo+IDEgYml0ID0gc3RydWN0dXJlZCBZQU5HIGhhc2ggKDApIG9yIHB1cmUgWUFORyBoYXNoICgx
KQ0KPiAgICBJZiAwIChzdHJ1Y3R1cmVkKSwgdGhlbiA6DQo+ICAgICAgICAxIGJpdCA9IG1hbmFn
ZWQgKDApIG9yIG5vbi1tYW5hZ2VkICgxKQ0KPiAgICAgICAgMTggYml0cyA9IG1vZHVsZSBJRA0K
PiAgICAgICAgMTAgYml0cyA9IGl0ZW0gSUQNCj4gICAgSWYgMSAobm9uLXN0cnVjdHVyZWQpLCB0
aGVuOg0KPiAgICAgICAgMjkgYml0cyA9IGxlYXN0IHNpZ25pZmljYW50IDI5IGJpdHMgb2YgdGhl
IFlBTkcgaGFzaC4NCj4NCg0KSSBkbyBub3QgcmVhbGx5IHdhbnQgdG8gY2hhbmdlIHRoZSBZQU5H
IEhhc2ggZnJvbSAzMCBiaXRzIHRvIDI5IGJpdHMuDQoNCkhhdmluZyBhIGRpZmZlcmVudCBudW1i
ZXJpbmcgc2NoZW1lIGZvciBldmVyeSBvYmplY3Qgc2VlbXMgdG9vIGNvbXBsaWNhdGVkLg0KSSB3
b3VsZCBhZGQgdGhlIGNvbnN0cmFpbnQgdGhhdCB0aGUgc2VydmVyIG11c3QgdXNlIHRoZSBzYW1l
IG51bWJlcmluZyBzY2hlbWUgZm9yIGFsbCBvYmplY3RzLCBzbyB0aGlzIGNhbiBiZSBkaXNjb3Zl
cmVkIHZpYSAud2VsbC1rbm93biBjYXBhYmlsaXRpZXMsIGFuZCBhbGwgMzAgYml0cyBjYW4gYmUg
dXNlZCBpbiBhIFlBTkcgSGFzaC4NCg0KDQo+IEluIGNhc2Ugb2YgY2xhc2gsIHNlbmQgZXJyb3Is
IHRoZSBmdWxsIFVSSSBtdXN0IGJlIHVzZWQgKHdoaWNoIHNob3VsZCANCj4gYmUgd2l0aCBleHRy
ZW1lbHkgbG93IHByb2JhYmlsaXR5KSBUaGlzIHdheSwgaW4gdGhlIHdvcnN0IGNhc2UgeW91IGFy
ZSBsaW1pdGluZyB5b3VyIGhhc2ggdmFsdWUgZnJvbSAzMCB0byAyOSBiaXRzIChhbmQgdGh1cyBz
bGlnaHRseSBpbmNyZWFzaW5nIHRoZSBjbGFzaCBwcm9iYWJpbGl0eSkuDQo+DQo+IElmIHN0cnVj
dHVyZWQgWUFORyBoYXNoLCB0aGVuOg0KPiAgICAwID0gbWFuYWdlZCAoZS5nLiBJRVRGLWFzc2ln
bmVkIG1vZHVsZSBJRCkNCj4gICAgICAgMTggYml0cyA9IHRoZSBJRCBvZiB0aGUgbW9kdWxlICgx
LCAyLCAzLCDigKYuLCAyNjIxNDMpIGFzc2lnbmVkIGluY3JlbWVudGFsbHkgYnkgSUFOQSAoMCBy
ZXNlcnZlZCBmb3Igc3BlY2lhbCB1c2FnZSkNCj4gICAgICAgMTAgYml0cyA9IHRoZSBJRCBvZiB0
aGUgaXRlbSBpbiB0aGUgbW9kdWxlLCBpbmNyZW1lbnRlZCBhdCBlYWNoIGl0ZW0gKDEuLjEwMjMg
LSBob3BlIHRoaXMgaXMgc3VmZmljaWVudCBmb3IgYWxsIGNhc2VzKS4NCj4gICAgMSA9IHVubWFu
YWdlZA0KPiAgICAgICAgMTggYml0cyA9IElEIG9mIG1vZHVsZSwgYnkgZGVmYXVsdCB0aGUgMTgg
bGVzcyBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSBtb2R1bGUuIEl0IGlzIHVwIHRvIHRoZSB1c2Vy
IHRvIGFzc3VyZSB0aGF0IHRoZXJlIGFyZSBubyBjbGFzaGVzIHdpdGggdGhlIG5hbWVzIG9mIHRo
ZSBvdGhlciBtb2R1bGVzIG9uIHRoZSBkZXZpY2UNCj4gICAgICAgIDEwIGJpdHMgPSBJRCBvZiB0
aGUgaXRlbS4gSXQgaXMgdXAgdG8gdGhlIGltcGxlbWVudGVyIHRvIGVuc3VyZSB0aGF0IHRoZXJl
IGFyZSBubyBjbGFzaGVzIHdpdGhpbiB0aGUgbW9kdWxlLg0KPg0KPiBUd28gcG9zc2libGUgZHJh
d2JhY2tzIG9mIHRoaXMgYXBwcm9hY2gsIGhvd2V2ZXI6DQo+ICAgLSBGb3IgbWFuYWdlZCBJRHMg
eW91IHdpbGwgcHJvYmFibHkgaGF2ZSB0byBrZWVwIGJvdGggdGhlIFlBTkcgaGFzaCBhbmQgdGhl
IG1hbmFnZWQgZnVsbCBJRC4NCj4gICAtIEluIGNhc2Ugb2YgdW5tYW5hZ2VkIElEcyB5b3UgaW5j
cmVhc2UgdGhlIHByb2JhYmlsaXR5IG9mIGNvbGxpc2lvbiBvZiAxRS05IHRvIDJFLTkuDQo+DQoN
Cg0KSU1PIG9ubHkgbWFuYWdlZCBtb2RlIGlzIG5lZWRlZC4gVGhlIElBTkEgcmVnaXN0cnkgKHRo
YXQgd2lsbCBiZSBjcmVhdGVkKSBzaG91bGQgYmUgb3BlbiB0byB2ZW5kb3JzIGFuZCBvdGhlciBT
RE9zLg0KVGhpcyByZWdpc3RyeSBqdXN0IGFzc2lnbnMgYSBtb2R1bGUgbnVtYmVyIHRvIGEgbW9k
dWxlIG5hbWUuDQoNClRoZSAxMC1iaXQgbXlzdGVyeSBlbmNvZGluZyBkb2VzIG5vdCBzZWVtIHZl
cnkgaW50ZXJvcGVyYWJsZS4NCkl0IHNob3VsZCBiZSBzdGFuZGFyZC4gIEkgdGhpbmsgdGhlIFlB
TkcgImlkIiBleHRlbnNpb24gdG8gbnVtYmVyIGVhY2ggb2JqZWN0IG1hbnVhbGx5IHdpbGwgd29y
ay4NCg0KDQoNCj4gQmVzdCwNCj4gQWxleGFuZGVyDQo+DQoNCg0KQW5keQ0KDQo+DQo+PiBMZSA0
IGp1aW4gMjAxNSDDoCAxODowNCwgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tPiBhIMOpY3JpdCA6DQo+Pg0KPj4gSGkgQW5keSwNCj4+DQo+PiBKdXN0
IHRvIGJlIHN1cmUgYWJvdXQgdGhlIHNjb3BlIG9mIHlvdXIgY29tbWVudC4NCj4+DQo+PiBZb3Ug
c2F5ICIgRWFjaCBvYmplY3QgaGFzIGEgWUFORyBIYXNoIiwgeWVzIGJ1dCB0aGlzIGlzIG5vdCBh
IHVuaXF1ZWx5IG9iamVjdCBpZGVudGlmeS4NCj4+IERpZCB3ZSByZWFjaCBhIGNvbnNlbnN1cyBh
Ym91dCB1c2luZyB0aGUgICIgWUFORyBoYXNoIiArICJtb2R1bGUgbmFtZSBvciBhIG1vZHVsZSBJ
RCIgYXMgYSB1bmlxdWUgZGF0YSBub2RlIChvYmplY3QpIGlkZW50aWZpZXI/DQo+Pg0KPj4gVGhp
cyBjYW4gdGFrZSB0aGUgZm9ybSBvZiBhIHJlaGFzaCB0YWJsZSBhdmFpbGFibGUgb24gdGhlIENv
TUkgc2VydmVyIA0KPj4gb3IgZWxzZXdoZXJlICgiIFlBTkcgaGFzaCIsICJtb2R1bGUgbmFtZSBv
ciBtb2R1bGUgSUQiLCAicmVoYXNoIG9yIA0KPj4gYWxpYXMiKSBUaGlzIGNhbiB0YWtlIHRoZSBm
b3JtIG9mIGFuIGVycm9yIG1lc3NhZ2UgY29udGFpbmluZyAoIiBZQU5HIA0KPj4gaGFzaCIsICJt
b2R1bGUgbmFtZSBvciBtb2R1bGUgSUQiLCAicmVoYXNoIG9yIGFsaWFzIikgVGhpcyBjYW4gdGFr
ZSANCj4+IHRoZSBmb3JtIG9mIGEgZnVsbHkgcXVhbGlmaWVkIGlkZW50aWZpZXIgd2l0aGluIHRo
ZSByZXF1ZXN0IG9yIA0KPj4gcGF5bG9hZCAoUkVROiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0
KDxtb2R1bGUgbmFtZT4uPFlBTkcgaGFzaD4pDQo+Pg0KPj4gTWljaGVsIFZlaWxsZXR0ZQ0KPj4g
U3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KPj4gVHJpbGxpYW50IEluYy4NCj4+IFRlbDog
NDUwLTM3NS0wNTU2IGV4dC4gMjM3DQo+PiBtaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b20NCj4+IHd3dy50cmlsbGlhbnRpbmMuY29tDQo+Pg0KPj4NCj4+IC0tLS0tT3JpZ2luYWwgTWVz
c2FnZS0tLS0tDQo+PiBGcm9tOiBBbmR5IEJpZXJtYW4gW21haWx0bzphbmR5QHl1bWF3b3Jrcy5j
b21dDQo+PiBTZW50OiA0IGp1aW4gMjAxNSAxMTozNw0KPj4gVG86IE1pY2hlbCBWZWlsbGV0dGUN
Cj4+IENjOiBBbGV4YW5kZXIgUGVsb3Y7IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0K
Pj4gU3ViamVjdDogUmU6IFtjb3JlXSBDb01JIHJlbW90ZSBzZXJ2ZXIgY2xhc2ggZmlsZSBhbmQg
WUFORyBoYXNoIGluIA0KPj4gVVJMDQo+Pg0KPj4gSGksDQo+Pg0KPj4gSSBkbyBub3QgYWdyZWUg
dGhhdCB0aGUgbW9kdWxlIG5hbWUgb3IgYSBtb2R1bGUgSUQgbmVlZHMgdG8gYmUgdXNlZCBhdCBh
bGwgaW4gdGhlIG9iamVjdCBpZGVudGlmaWVyLiAgRWFjaCBvYmplY3QgaGFzIGEgWUFORyBIYXNo
Lg0KPj4gUmV0cmlldmluZyBhIG5vZGUsIHdoZXRoZXIgYnkgaGFzaCBJRCBvciBtb2R1bGUtSUQu
aGFzaCB3aWxsIGNhdXNlIGFsbCBkZXNjZW5kYW50IG5vZGVzIHRvIGJlIGluY2x1ZGVkIGluIHRo
ZSByZXRyaWV2YWwsIGV2ZW4gaWYgdGhleSBhcmUgYXVnbWVudGluZyBub2RlcyBmcm9tIGFub3Ro
ZXIgbW9kdWxlLg0KPj4NCj4+IFlBTkcgZGF0YSBpcyBoaWVyYXJjaGljYWwuDQo+PiBUaGUgbW9k
dWxlcyBhcmUganVzdCBwYWNrYWdpbmcgZm9yIGRlZmluaXRpb25zLg0KPj4gVGhleSBkbyBub3Qg
ZGVmaW5lIGFueSBjb250YWlubWVudCBvciBzdHJ1Y3R1cmUgd2l0aGluIHRoZSBjb25jZXB0dWFs
IHNjaGVtYSB0cmVlLg0KPj4NCj4+DQo+PiBBbmR5DQo+Pg0KPj4NCj4+IE9uIFRodSwgSnVuIDQs
IDIwMTUgYXQgODoyMSBBTSwgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmls
bGlhbnRpbmMuY29tPiB3cm90ZToNCj4+PiBIaSBBbmR5DQo+Pj4NCj4+PiBBYm91dCAiQWxtb3N0
IC0tIHRoaXMgaXMgZGVmaW5lZCBpbiBSRkMgNjAyMCAtLSB0aGUgYXVnbWVudGluZyBub2RlcyBh
cmUgbm90IHBhcnQgb2YgdGhlIGF1Z21lbnRlZCBtb2R1bGUuICBUaGV5IHdpbGwgYmUgcmV0dXJu
ZWQgaW4gTkVUQ09ORiBhbmQgUkVTVENPTkYgcmV0cmlldmFsIG9wZXJhdGlvbnMgZm9yIGFuIGFu
Y2VzdG9yIG5vZGUgYnV0IHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBhdWdtZW50ZWQgbW9kdWxl
LiAgT25seSBvYmplY3RzIGRlZmluZWQgaW4gdGhlIG1vZHVsZSBuYW1lc3BhY2UgYXJlIHBhcnQg
b2YgdGhlIG1vZHVsZS4iDQo+Pj4NCj4+PiBVbmRlcnN0b29kLCB0aGlzIGlzIHdoeSBteSBjb250
cmlidXRpb24gaW50cm9kdWNlIHRoZSBuZXcgdGVybSwgIk1vZHVsZSBjb250ZXh0Ii4gQXVnbWVu
dGluZyBub2RlcyBhcmUgbm90IHBhcnQgb2YgdGhlIGF1Z21lbnRlZCBtb2R1bGUgYnV0LCBhcyBk
ZWZpbmVkLCBhcmUgcGFydCBvZiB0aGUgIk1vZHVsZSBjb250ZXh0Ii4gVGhpcyBuZXcgY29uY2Vw
dCB3YXMgcmVxdWlyZSB0byBtaW5pbWl6ZSB0aGUgb3ZlcmhlYWQgd2hlbiByZXRyaWV2aW5nIHRo
ZSBjb21wbGV0ZSBkYXRhc3RvcmUgY29udGFpbmluZyBtdWx0aXBsZSBtb2R1bGUgY29udGV4dHMg
d2l0aCBzb21lIGhhdmluZyBhdWdtZW50aW5nIG5vZGVzLg0KPj4+DQo+Pj4gICBSRVM6IDIuMDUg
Q29udGVudCAoQ29udGVudC1Gb3JtYXQ6IGFwcGxpY2F0aW9uL2Nib3IpDQo+Pj4gICB7DQo+Pj4g
ICAgICAiYSIgOiB7DQo+Pj4gICAgICAgICAzNjUyNTcyMzUgOiAibGVhZkExIHZhbHVlIiwNCj4+
PiAgICAgICAgIDcwMjE0OTYyNiA6IHsNCj4+PiAgICAgICAgICAgIDIxNTk5MzMyOSA6ICJsZWFm
QTIgdmFsdWUiLA0KPj4+ICAgICAgICAgICAgOTYyMTkxNjgyIDogImxlYWZDMSB2YWx1ZSIgICAg
ICAgICAgICAgICAgICAgICMgQXVnbWVudGluZyBkYXRhIG5vZGUNCj4+PiAgICAgICAgIH0sDQo+
Pj4gICAgICAgICA4MjkyMjI5ODMgOiAibGVhZlMgdmFsdWUiICAgICAgICAgICAgICAgICAgICAg
ICAgICMgU3ViLW1vZHVsZSBkYXRhIG5vZGUNCj4+PiAgICAgIH0sDQo+Pj4gICAgICAiYiIgOiB7
DQo+Pj4gICAgICAgICAyODk1NjQ2OTYgOiAibGVhZkIgdmFsdWUiDQo+Pj4gICAgICB9LA0KPj4+
ICAgICAgImMiIDogew0KPj4+ICAgICAgICAgOTkzNTMzNTI3IDogImxlYWZDMiB2YWx1ZSINCj4+
PiAgICAgIH0NCj4+PiAgIH0NCj4+Pg0KPj4+IE1pY2hlbCBWZWlsbGV0dGUNCj4+PiBTeXN0ZW0g
QXJjaGl0ZWN0dXJlIERpcmVjdG9yDQo+Pj4gVHJpbGxpYW50IEluYy4NCj4+PiBUZWw6IDQ1MC0z
NzUtMDU1NiBleHQuIDIzNw0KPj4+IG1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbQ0K
Pj4+IHd3dy50cmlsbGlhbnRpbmMuY29tDQo+Pj4NCj4+Pg0KPj4+IC0tLS0tT3JpZ2luYWwgTWVz
c2FnZS0tLS0tDQo+Pj4gRnJvbTogQW5keSBCaWVybWFuIFttYWlsdG86YW5keUB5dW1hd29ya3Mu
Y29tXQ0KPj4+IFNlbnQ6IDMganVpbiAyMDE1IDE3OjM4DQo+Pj4gVG86IE1pY2hlbCBWZWlsbGV0
dGUNCj4+PiBDYzogQWxleGFuZGVyIFBlbG92OyA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5v
cmcNCj4+PiBTdWJqZWN0OiBSZTogW2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxl
IGFuZCBZQU5HIGhhc2ggaW4gDQo+Pj4gVVJMDQo+Pj4NCj4+PiBPbiBXZWQsIEp1biAzLCAyMDE1
IGF0IDEyOjQ4IFBNLCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFu
dGluYy5jb20+IHdyb3RlOg0KPj4+PiBBYm91dCAiSSB3b3VsZCBwcmVmZXIgaWYgaGFzaCBjb2xs
aXNpb25zIGluIGEgc2luZ2xlIG1vZHVsZSB3ZXJlIG5vdCBhbGxvd2VkLiINCj4+Pj4gQWdyZWVk
IGJ1dCBob3cgdGhpcyBpcyBpbXBsZW1lbnRlZC4NCj4+Pj4NCj4+Pg0KPj4+DQo+Pj4gQnkgY2hl
Y2tpbmcgdGhlIFlBTkcgaGFzaGVzIGJlZm9yZSBpdCBpcyBwdWJsaXNoZWQsIHNpbWlsYXIgdG8g
Y2hlY2tpbmcgdGhlIFlBTkcgc3ludGF4IHdpdGggYSBZQU5HIGNvbXBpbGVyLg0KPj4+DQo+Pj4N
Cj4+Pj4gQWJvdXQgIkJ1dCB0aGVzZSBudW1iZXJzIGRvIG5vdCBleGlzdCBpbiBhbnkgbW9kdWxl
cyBhbmQgc28gdGhleSBjYW5ub3QgYmUgcmVsaWVkIG9uIGluIENvTUkuDQo+Pj4+IEkgdW5kZXJz
dGFuZCBidXQgSSBhc3N1bWUgdGhhdCBhIG1vZHVsZSBjYW4gYmUgcmUtcHVibGlzaGVkIHdpdGgg
dGhlIGFkZGVkIHN0YXRlbWVudCB3aGVuIHJlcXVpcmUuIElmIGEgQ29NSSBpbXBsZW1lbnRlciB0
cnkgdG8gaW1wbGVtZW50IGEgbW9kdWxlIGNvbnRhaW5pbmcgYSBjbGFzaCwgaGUgY2FuIGxvb2sg
Zm9yIGEgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBjb250YWluaW5nIHRoZSBzcGVjaWFsIFlBTkcg
c3RhdGVtZW50LiBUaGUgbGlrZWxpaG9vZCBvZiBzdWNoIGNsYXNoIGlzIGV4dHJlbWVseSBsb3cg
YW5kIHN1Y2ggZmFsbGJhY2sgc29sdXRpb24gd29u4oCZdCBiZSByZXF1aXJlZCBvZnRlbi4gSG93
ZXZlciwgdGhlIFJGQyB3aWxsIHNwZWNpZnkgaG93IHRvIHJlc29sdmUgc3VjaCBzaXR1YXRpb24g
aWYgdGhpcyBldmVyIGhhcHBlbi4gVGhpcyBzdGF0ZW1lbnQgY2FuIGFsc28gYmUgdXNlZCB0byBh
ZGRyZXNzIHRoZSBuZWVkIGZvciBkYXRhIG5vZGUgaWRlbnRpZmllciBjb21wYWN0bmVzcyBhcyBt
ZW50aW9uZWQgYnkgQWxleGFuZGVyIGluIGl0cyBvcmlnaW5hbCBlbWFpbC4NCj4+Pj4NCj4+Pg0K
Pj4+IEkgdGhpbmsgdGhlIGFkLWhvYyBpZCBhc3NpZ25tZW50cyBhcmUgcG9pbnRsZXNzIGJlY2F1
c2UgdGhleSBhcmUgbm90IHVuaXZlcnNhbC4gIFRoZSBvbmx5IHRoaW5nIHRoYXQgY2FuIGJlIGNv
dW50ZWQgb24gaXMgdGhlIG1vZHVsZSBuYW1lIGFuZCB0aGUgWFBhdGggYWJzb2x1dGUgcGF0aCBl
eHByZXNzaW9uIG9mIGVhY2ggb2JqZWN0Lg0KPj4+DQo+Pj4NCj4+Pj4gQWJvdXQgIkluIE5FVENP
TkYsIG1vZHVsZXMgdGVuZCB0byB1c2UgYXVnbWVudCBhIGxvdCINCj4+Pj4gSW4gbXkgZG9jdW1l
bnQgIiBkcmFmdC12YW5kZXJzdG9rLWNvcmUtY29taS0wNiAtIE1WLmRvY3ggIiwgSSBwcm9wb3Nl
IGEgbmV3IGRlZmluaXRpb24gdG8gYWRkcmVzcyB0aGlzLg0KPj4+Pg0KPj4+DQo+Pj4gV2hhdCBp
cyBpdD8NCj4+PiBJTU8geW91IHNob3VsZCBwb3N0IGNvbW1lbnRzIHRvIHRoZSBtYWlsaW5nIGxp
c3Qgbm90IG1hcmt1cCB0byBhIHdvcmQgZG9jdW1lbnQuICBJdCBpcyB0b28gaGFyZCB0byBmb2xs
b3cuDQo+Pj4NCj4+Pg0KPj4+PiBNb2R1bGUgQ29udGV4dDogQSBtb2R1bGUgY29udGV4dCBpcyBj
b21wb3NlZCBvZiBhbGwgZGF0YSBub2Rlcywgbm90aWZpY2F0aW9ucyBhbmQgUlBDcyBkZWZpbmVk
IGluIGEgWUFORyBtb2R1bGUgYW5kIGluY2x1ZGVkIHN1Yi1tb2R1bGVzIG9yIGFkZGVkIHRvIHRo
ZW0gdXNpbmcgdGhlIGF1Z21lbnQgWUFORyBzdGF0ZW1lbnQuDQo+Pj4+DQo+Pj4NCj4+PiBBbG1v
c3QgLS0gdGhpcyBpcyBkZWZpbmVkIGluIFJGQyA2MDIwIC0tIHRoZSBhdWdtZW50aW5nIG5vZGVz
IGFyZSBub3QgcGFydCBvZiB0aGUgYXVnbWVudGVkIG1vZHVsZS4gIFRoZXkgd2lsbCBiZSByZXR1
cm5lZCBpbiBORVRDT05GIGFuZCBSRVNUQ09ORiByZXRyaWV2YWwgb3BlcmF0aW9ucyBmb3IgYW4g
YW5jZXN0b3Igbm9kZSBidXQgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhlIGF1Z21lbnRlZCBtb2R1
bGUuICBPbmx5IG9iamVjdHMgZGVmaW5lZCBpbiB0aGUgbW9kdWxlIG5hbWVzcGFjZSBhcmUgcGFy
dCBvZiB0aGUgbW9kdWxlLg0KPj4+DQo+Pj4NCj4+PiBBbmR5DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4+
IFNlY3Rpb24gNC4xLjMuNCBzaG93IGFuIGV4YW1wbGUgb2YgaW5jbHVkZSwgaW1wb3J0IGFuZCBh
dWdtZW50Lg0KPj4+Pg0KPj4+PiBNaWNoZWwgVmVpbGxldHRlDQo+Pj4+IFN5c3RlbSBBcmNoaXRl
Y3R1cmUgRGlyZWN0b3INCj4+Pj4gVHJpbGxpYW50IEluYy4NCj4+Pj4gVGVsOiA0NTAtMzc1LTA1
NTYgZXh0LiAyMzcNCj4+Pj4gbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tDQo+Pj4+
IHd3dy50cmlsbGlhbnRpbmMuY29tDQo+Pj4+DQo+Pj4+DQo+Pj4+IC0tLS0tT3JpZ2luYWwgTWVz
c2FnZS0tLS0tDQo+Pj4+IEZyb206IEFuZHkgQmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtz
LmNvbV0NCj4+Pj4gU2VudDogMyBqdWluIDIwMTUgMTQ6NTQNCj4+Pj4gVG86IE1pY2hlbCBWZWls
bGV0dGUNCj4+Pj4gQ2M6IEFsZXhhbmRlciBQZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGll
dGYub3JnDQo+Pj4+IFN1YmplY3Q6IFJlOiBbY29yZV0gQ29NSSByZW1vdGUgc2VydmVyIGNsYXNo
IGZpbGUgYW5kIFlBTkcgaGFzaCBpbiANCj4+Pj4gVVJMDQo+Pj4+DQo+Pj4+IE9uIFdlZCwgSnVu
IDMsIDIwMTUgYXQgMTE6MTYgQU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVA
dHJpbGxpYW50aW5jLmNvbT4gd3JvdGU6DQo+Pj4+PiBIaSBBbmR5DQo+Pj4+Pg0KPj4+Pj4gQ291
cGxlIG9mIHF1ZXN0aW9ucyBhYm91dCB5b3VyIHByb3Bvc2VkIHNvbHV0aW9uLg0KPj4+Pj4NCj4+
Pj4+ID09PSBRdWVzdGlvbiAjMSwgTmV3IFlBTkcgc3RhdGVtZW50DQo+Pj4+Pg0KPj4+Pj4gWW91
ciBzb2x1dGlvbiB3b3JrcyBvbmx5IGlmIGhhc2ggY2xhc2hlcyB3aXRoaW4gYSBtb2R1bGUgYXJl
IHJlc29sdmVkIGF0IGRlc2lnbiB0aW1lLiBJZiBub3QsIHRoZSBlcnJvciBtZXNzYWdlIHdpbGwg
cmV0dXJuIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gd2hpY2ggaXMgbm90IHN1ZmZpY2llbnQg
dG8gcmVzb2x2ZSB3aGljaCBkYXRhIG5vZGUgaXMgd2hpY2guDQo+Pj4+Pg0KPj4+Pj4gICB7ICIx
MjM0IjogWw0KPj4+Pj4gICAgICAgICAgIm1vZHVsZS1BIjoiNDU2NyIsDQo+Pj4+PiAgICAgICAg
ICAibW9kdWxlLUEiOiI2NTIzIg0KPj4+Pj4gICAgICBdDQo+Pj4+PiAgIH0NCj4+Pj4+DQo+Pj4+
DQo+Pj4+DQo+Pj4+IFRoZSBvcmlnaW5hbCBwcm9wb3NhbCBoYWQgYSAzLXR1cGxlIHsgbW9kdWxl
LW5hbWUsIHBhdGgtZXhwciwgbmV3LWhhc2ggfSBXZSBkaXNjdXNzZWQgc29tZSBvcHRpbWl6YXRp
b25zIGluIHRoZSA2VElTQ0ggY2FsbCB0byByZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHBhdGgtZXhw
ciBhbmQgc3RpbGwgbm90IHJlcXVpcmUgdGhlIGNsaWVudCB0byBzdG9yZSBhbGwgdGhlIHBhdGgg
c3RyaW5ncywgc3VjaCBhcyBzdG9yZSBhIGZldyBieXRlcyBmcm9tIHRoZSBwYXRoIHN0cmluZ3Mg
bGlrZSA2dGggYW5kIDExdGggYnl0ZXMgKEF2b2lkIHRoZSBjb21tb24gaWV0Zi0gcHJlZml4IGZv
ciBtYW55IG1vZHVsZSBuYW1lcykuDQo+Pj4+DQo+Pj4+IFRoaXMgaXMgbm90IGRldGVybWluaXN0
aWMuIE9ubHkgdGhlIGZ1bGwgcGF0aCBzdHJpbmcgaXMgZm9vbC1wcm9vZi4NCj4+Pj4gSSB3b3Vs
ZCBwcmVmZXIgaWYgaGFzaCBjb2xsaXNpb25zIGluIGEgc2luZ2xlIG1vZHVsZSB3ZXJlIG5vdCBh
bGxvd2VkLg0KPj4+PiBUaGV5IG5lZWQgdG8gYmUgcmVzb2x2ZWQgYXQgZGVzaWduIHRpbWUuICBJ
ZiB0aGlzIGlzIG5vdCBwb3NzaWJsZSwgdGhlbiBhIHN0YW5kYXJkIHJlaGFzaCBhbGdvcml0aG0g
c2hvdWxkIGJlIHVzZWQgc28gdGhlIGNvbGxpc2lvbiBpcyByZXNvbHZlZCBpbiBhIHByZWRpY3Rh
YmxlIHdheS4gIGUuZy4sIHRyeSBhcHBlbmRpbmcgIl8iLCB0aGVuIHRyeSAiX18iLCBldGMuDQo+
Pj4+IFRoZSByZXN1bHQgd291bGQgYmUgdGhhdCBoYXNoIGNvbGxpc2lvbnMgaW4gYSBzaW5nbGUg
bW9kdWxlIGRvIG5vdCBvY2N1ciBpbiBDb01JLg0KPj4+Pg0KPj4+Pg0KPj4+Pj4gSXMgaXQgcG9z
c2libGUvYWNjZXB0YWJsZSB0byByZXF1ZXN0IGEgbmV3IFlBTkcgc3RhdGVtZW50IHRvIG1hbnVh
bGx5IGFzc2lnbiBhIElEIHRvIGEgZGF0YSBub2RlPw0KPj4+Pj4gU2FtZSBxdWVzdGlvbiBmb3Ig
YSBtb2R1bGUgSUQ/DQo+Pj4+Pg0KPj4+Pj4gRm9yIGV4YW1wbGUgKHNlZSAiaWQgMTYiIGFuZCAi
aWQgMjUiIGJlbGxvdykgOg0KPj4+Pj4NCj4+Pj4+ICAgbW9kdWxlIGEgew0KPj4+Pj4gICAgICBu
YW1lc3BhY2UgYS1uczsNCj4+Pj4+ICAgICAgcHJlZml4IGE7DQo+Pj4+PiAgICAgIGlkIDE2Ow0K
Pj4+Pj4gICAgICByZXZpc2lvbiAyMDE1LTAxLTAxOw0KPj4+Pj4NCj4+Pj4+ICAgICAgbGVhZiBs
ZWFmQTEgeyB0eXBlIHN0cmluZzsgaWQgMjUgfQ0KPj4+Pj4gICAgICBjb250YWluZXIgY29udGFp
bmVyQSB7DQo+Pj4+PiAgICAgICAgIGxlYWYgbGVhZkEyIHsgdHlwZSBzdHJpbmd9DQo+Pj4+PiAg
ICAgIH0NCj4+Pj4+ICAgfQ0KPj4+Pg0KPj4+Pg0KPj4+PiBZb3UgY291bGQgaGF2ZSBhbiBleHRl
bnNpb24gc3RhdGVtZW50IGRvIGFueXRoaW5nIHlvdSB3YW50Og0KPj4+Pg0KPj4+PiAgICBjb21p
OmlkICAxNjsNCj4+Pj4NCj4+Pj4gQnV0IHRoZXNlIG51bWJlcnMgZG8gbm90IGV4aXN0IGFueSBh
bnkgbW9kdWxlcyBhbmQgc28gdGhleSBjYW5ub3QgYmUgcmVsaWVkIG9uIGluIENvTUkuDQo+Pj4+
DQo+Pj4+DQo+Pj4+Pg0KPj4+Pj4gPT09IFF1ZXN0aW9uICMyLCBJbnRyb2R1Y3Rpb24gb2YgYW4g
b3B0aW9uYWwgcXVlcnkgcGFyYW1ldGVyIHVzZWQgDQo+Pj4+PiB0byB0YXJnZXQgYSBzcGVjaWZp
YyBtb2R1bGUNCj4+Pj4+DQo+Pj4+PiBGb3Igbm9kZXMgLyBuZXR3b3JrcyB3aGljaCBjYW4gYWZm
b3JkIGEgc2xpdGVseSBsYXJnZXIgcGF5bG9hZCAoSUVFRSA4MDIuMTUuNGcgZm9yIGV4YW1wbGUp
IGJ1dCB3YW50IHRvIGF2b2lkIHRoZSBwcm9jZXNzaW5nIGFuZCBzdG9yYWdlIGFzc29jaWF0ZWQg
d2l0aCB0aGUgcG9ycG9zZWQgZXJyb3IgbWVzc2FnZSwgYXJlIHlvdSBvcHBvc2VkIHRvIHRoZSBz
dXBwb3J0IG9mIGFuIG9wdGlvbmFsIENvQVAgcXVlcnkgcGFyYW1ldGVyIHVzZSBjYXJyeSB0aGUg
bW9kdWxlIG5hbWUgb3IgbW9kdWxlIElEID8NCj4+Pj4+DQo+Pj4+PiBGb3IgZXhhbXBsZToNCj4+
Pj4+DQo+Pj4+PiBHRVQgZXhhbXBsZS5jb20vWThkN3M/c2VsZWN0PSBpZXRmLTZ0aXNjaC1tYWMN
Cj4+Pj4+DQo+Pj4+PiA9PT0gUXVlc3Rpb24gIzMsIFVzZSBvZiB0aGUgc2VsZWN0IHF1ZXJ5IHBh
cmFtZXRlciBpbnN0ZWFkIG9mIHRoZSANCj4+Pj4+IFVSSQ0KPj4+Pj4NCj4+Pj4+IEFyZSB5b3Ug
b3Bvc2VkIHRvIHRoZSB1c2Ugb2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgaW5zdGVhZCBv
ZiANCj4+Pj4+IHRoZSBVUkkgdG8gaWRlbnRpZnkgZGF0YSBub2RlKHMpDQo+Pj4+Pg0KPj4+Pg0K
Pj4+PiBOb3QgcmVhbGx5Lg0KPj4+Pg0KPj4+PiBJIGRvbid0IGtub3cgaG93IG1peGVkIHRoZSBt
b2R1bGVzIHdpbGwgZ2V0IGluIENvTUkuDQo+Pj4+IEluIE5FVENPTkYsIG1vZHVsZXMgdGVuZCB0
byB1c2UgYXVnbWVudCBhIGxvdCwgc28gdGhlIG5vZGVzIGZyb20gJ21vZHVsZS1BJyBtYXkgYmUg
bmVzdGVkIG5vZGVzLg0KPj4+PiBSZXRyaWV2aW5nIGp1c3QgdGhlIGF1Z21lbnRpbmcgbm9kZXMg
YW5kIGlnbm9yaW5nIHRoZSBhdWdtZW50ZWQgbm9kZXMgd291bGQgbGlrZWx5IGJlIG9wZXJhdGlv
bmFsbHkgdXNlbGVzcy4NCj4+Pj4gZS5nLiwgd2hlbiBhdWdtZW50aW5nIGEgbGlzdCwgdGhlIGtl
eSBsZWFmcyBhcmUgbmVlZGVkIHRvIGlkZW50aWZ5IHRoZSBpbnN0YW5jZS4NCj4+Pj4NCj4+Pj4g
SSB3b3VsZCBsaWtlIHRvIGtlZXAgQ29NSSBleHRyZW1lbHkgc2ltcGxlLg0KPj4+PiBNb3JlIGJl
bGxzIGFuZCB3aGlzdGxlcyBtZWFucyBpbmNyZWFzZWQgbWVtb3J5IGFuZCBDUFUgcmVxdWlyZW1l
bnRzLg0KPj4+PiBJIGFtIGdsYWQgQ09SRSBhbmQgNlRJU0NIIFdHcyBhcmUgc28gY29uY2VybmVk
IGFib3V0IGNvbnN0cmFpbmVkIHJlc291cmNlcy4NCj4+Pj4gT25seSB0aGUgbW9zdCBpbXBvcnRh
bnQgYmVsbHMgYW5kIHdoaXN0bGVzIHdpbGwgZ2V0IHN0YW5kYXJkaXplZC4NCj4+Pj4NCj4+Pj4N
Cj4+Pj4+IEZvciBleGFtcGxlOg0KPj4+Pj4NCj4+Pj4+IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxl
Y3Q9WThkN3MNCj4+Pj4+IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9WThkN3MsTktIYUEgR0VU
DQo+Pj4+PiBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9aWV0Zi02dGlzY2gtbWFjKFk4ZDdzLE5LSGFB
KQ0KPj4+Pj4NCj4+Pj4+ID09PSBRdWVzdGlvbiAjNCwgQ29tcHJlc3NpbmcgWUFORyBoYXNoIGJh
c2U2NCByZXByZXNlbnRhdGlvbg0KPj4+Pj4NCj4+Pj4+IEFyZSB5b3Ugb3Bvc2VkIHRvIHRoZSBj
b21wcmVzc2lvbiBvZiB0aGUgYmFzZTY0IHJlcHJlc2VudGF0aW9uIGFzIHByb3BzZWQgYnkgQWxl
eGFuZGVyLg0KPj4+Pj4NCj4+Pj4NCj4+Pj4gTm8uICBPcHRpbWl6YXRpb25zIHRoYXQgcmVkdWNl
IHRoZSBlbmNvZGluZyBzaXplIGFyZSBpbXBvcnRhbnQuDQo+Pj4+IEkgd2FudCB0byB1c2Ugc3Rh
bmRhcmQgQ0JPUi4gIE5vIHNwZWNpYWwgaGFja3MganVzdCBmb3IgQ29NSS4NCj4+Pj4NCj4+Pj4+
IEZvciBleGFtcGxlOg0KPj4+Pj4NCj4+Pj4+IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9N3MN
Cj4+Pj4+IEluc3RlYWQgb2YNCj4+Pj4+IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q9IEFBQTdz
DQo+Pj4+Pg0KPj4+Pj4gTWljaGVsIFZlaWxsZXR0ZQ0KPj4+Pj4gU3lzdGVtIEFyY2hpdGVjdHVy
ZSBEaXJlY3Rvcg0KPj4+Pj4gVHJpbGxpYW50IEluYy4NCj4+Pj4+IFRlbDogNDUwLTM3NS0wNTU2
IGV4dC4gMjM3DQo+Pj4+PiBtaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20NCj4+Pj4+
IHd3dy50cmlsbGlhbnRpbmMuY29tDQo+Pj4+Pg0KPj4+Pj4NCj4+Pj4NCj4+Pj4gQW5keQ0KPj4+
Pg0KPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+IEZyb206IEFuZHkgQmll
cm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0NCj4+Pj4+IFNlbnQ6IDMganVpbiAyMDE1
IDEzOjA5DQo+Pj4+PiBUbzogTWljaGVsIFZlaWxsZXR0ZQ0KPj4+Pj4gQ2M6IEFsZXhhbmRlciBQ
ZWxvdjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQo+Pj4+PiBTdWJqZWN0OiBSZTog
W2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxlIGFuZCBZQU5HIGhhc2ggaW4gDQo+
Pj4+PiBVUkwNCj4+Pj4+DQo+Pj4+PiBPbiBXZWQsIEp1biAzLCAyMDE1IGF0IDk6MDUgQU0sIE1p
Y2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4gd3JvdGU6
DQo+Pj4+Pj4gSGkgQWxleGFuZGVyDQo+Pj4+Pj4NCj4+Pj4+PiBBdCB0aGUgbGFzdCA2VGlTQ0gg
Ymktd2Vla2x5IGNhbGwsIDQgc29sdXRpb25zIGhhdmUgYmVlbiBwcmVzZW50ZWQgdG8gdGhlIGhh
c2ggY2xhc2hlcyBwcm9ibGVtLiBUd28gYmFzZWQgb24gYSByZWhhc2ggdGFibGUgYW5kIHR3byBi
YXNlZCBvbiBhIG5ldyBDb0FQIHF1ZXJ5IHBhcmFtZXRlciBjYXJyeWluZyB0aGUgbW9kdWxlIG5h
bWUgb3IgcmVnaXN0ZXJlZCBtb2R1bGUgSUQuIFRoaXMgcXVlcnkgcGFyYW1ldGVyIGlzIHVzZWQg
dG8gc2VsZWN0IHVuYW1iaWd1b3VzbHkgdGhlIHRhcmdldGVkIGRhdGEgbm9kZShzKSBhc3N1bWlu
ZyB0aGF0IGFueSBoYXNoIGNvbGxpc2lvbiB3aXRoaW4gYSBtb2R1bGUgaGF2ZSBiZWVuIHJlc29s
dmVkIGF0IGRlc2lnbiB0aW1lLiBZb3UgY2FuIGZpbmQgdGhpcyBwcmVzZW50YXRpb24gaW4gYXR0
YWNobWVudC4NCj4+Pj4+Pg0KPj4+Pj4+IEJvdGggb2YgeW91ciBwcm9wb3NhbHMgbWFrZSBzZW5z
ZSB0byBtZSBidXQgSSBzdGlsbCBob3BlIHRoYXQgdGhlIGNsYXNoIGZpbGUgY2FuIGJlIGF2b2lk
ZWQgb3IgYmUgb3B0aW9uYWwuDQo+Pj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4gSSBhZ3JlZSB3
ZSBzaG91bGQgbm90IG5lZWQgdGhlIGNsaWVudCB0byByZXRyaWV2ZSB0aGUgcmVoYXNoIGluZm8g
YmVmb3JlIHVzaW5nIGEgc2VydmVyLg0KPj4+Pj4gVGhlIENvTUkgYXV0aG9ycyBoYXZlIGRpc2N1
c3NlZCBhIHNvbHV0aW9uIHdoaWNoIEkgd2lsbCB0cnkgdG8gd3JpdGUgdXAgdG9kYXkgd2hlcmUg
YSBzcGVjaWFsICJoYXNoLWNsYXNoIiBlcnJvciBpcyByZXR1cm5lZCBieSBDb01JIGlmIGEgcmVo
YXNoIGlzIG5lZWRlZC4NCj4+Pj4+DQo+Pj4+PiAgIDEpIGNsaWVudCByZXF1ZXN0cyBtb2R1bGUt
QSBvYmplY3Qgd2l0aCBoYXNoICAiMTIzNCI7DQo+Pj4+PiAgICAgICAgdGhlcmUgaXMgbm8gZXh0
ZW5kZWQtbmFtZS9sb2NhbC1uYW1lLA0KPj4+Pj4gICAgICAgIGp1c3QgdGhlIFlBTkcgaGFzaCwg
dXNlZCBpbiBhbnkgcmVxdWVzdA0KPj4+Pj4NCj4+Pj4+ICAgMikgaWYgJzEyMzQnIGhhcyBhIGNv
bGxpc2lvbiBpbiB0aGlzIHNlcnZlciB0aGVuIGEgc3BlY2lhbCBlcnJvciBjb2RlIGlzIHJldHVy
bmVkOw0KPj4+Pj4gICAgICAgVGhlIHJldHVybiBwYXlsb2FkIGhhcyB0aGUgcmVoYXNoIGluZm8g
W29sZC1oYXNoLCB7IG1vZHVsZS1uYW1lLCBuZXctaGFzaCB9K10NCj4+Pj4+ICAgICAgICAgICB7
ICIxMjM0IjogWw0KPj4+Pj4gICAgICAgICAgICAgICAgICAibW9kdWxlLUEiOiI0NTY3IiwNCj4+
Pj4+ICAgICAgICAgICAgICAgICAgIm1vZHVsZS1YIjoiNjUyMyINCj4+Pj4+ICAgICAgICAgICAg
ICBdDQo+Pj4+PiAgICAgICAgICAgfQ0KPj4+Pj4NCj4+Pj4+ICAgIDMpIHRoZSBjbGllbnQgZ2V0
cyB0aGUgZXJyb3IgaW5mbywgYW5kIGtub3dzIHdoaWNoIG1vZHVsZSBpdHMgIjEyMzQiIGlzIGZy
b20uDQo+Pj4+PiAgICAgICAgIEl0IGZpbmRzIHRoZSBjb3JyZWN0IG1vZHVsZSBuYW1lIGluIHRo
ZSBhcnJheSBhbmQgcmVwbGFjZXMgaXRzIG9sZC1oYXNoDQo+Pj4+PiAgICAgICAgIHdpdGggdGhl
IG5ldy1oYXNoLg0KPj4+Pj4NCj4+Pj4+ICAgNCkgY2xpZW50IHJlLXNlbmRzIHRoZSByZXF1ZXN0
LCB1c2luZyBoYXNoICI0NTY3IiBpbnN0ZWFkIG9mICIxMjM0Ig0KPj4+Pj4NCj4+Pj4+IFRoZSBy
ZWhhc2ggdGFibGUgZ29lcyBhd2F5LCBhbmQgb25seSB0aGlzIGVycm9yIGluZm8gaXMgdXNlZCBp
bnN0ZWFkLg0KPj4+Pj4NCj4+Pj4+PiBNaWNoZWwgVmVpbGxldHRlDQo+Pj4+Pj4gU3lzdGVtIEFy
Y2hpdGVjdHVyZSBEaXJlY3Rvcg0KPj4+Pj4+IFRyaWxsaWFudCBJbmMuDQo+Pj4+Pj4gVGVsOiA0
NTAtMzc1LTA1NTYgZXh0LiAyMzcNCj4+Pj4+PiBtaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGlu
Yy5jb20gd3d3LnRyaWxsaWFudGluYy5jb20NCj4+Pj4+Pg0KPj4+Pj4NCj4+Pj4+DQo+Pj4+PiBB
bmR5DQo+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+
Pj4+PiBGcm9tOiBjb3JlIFttYWlsdG86Y29yZS1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhhbGYg
T2YgQWxleGFuZGVyIA0KPj4+Pj4+IFBlbG92DQo+Pj4+Pj4gU2VudDogMyBqdWluIDIwMTUgMTE6
MDENCj4+Pj4+PiBUbzogNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQo+Pj4+Pj4gU3Vi
amVjdDogW2NvcmVdIENvTUkgcmVtb3RlIHNlcnZlciBjbGFzaCBmaWxlIGFuZCBZQU5HIGhhc2gg
aW4gDQo+Pj4+Pj4gVVJMDQo+Pj4+Pj4NCj4+Pj4+PiBIZWxsbyBldmVyeW9uZSwNCj4+Pj4+Pg0K
Pj4+Pj4+IEkgd291bGQgbGlrZSB0byBkaXNjdXNzIHdpdGggeW91IHRvIGlkZWFzL3Byb3Bvc2Fs
cyBpbiB0aGlzIG1haWwsIG5hbWVseToNCj4+Pj4+PiAxKSBDYWNoaW5nIHRoZSB5YW5nIGNsYXNo
IGZpbGUgb24gYSByZW1vdGUgc2VydmVyDQo+Pj4+Pj4gMikgQ29tcHJlc3NpbmcgdGhlIFVSTCBy
ZXByZXNlbnRhdGlvbiBvZiBZQU5HIGhhc2hlcw0KPj4+Pj4+DQo+Pj4+Pj4gMSkgQ2FjaGluZyB0
aGUgeWFuZyBjbGFzaCBmaWxlIG9uIGEgcmVtb3RlIHNlcnZlciBFdmVuIHRob3VnaCBoYXNoIGNv
bGxpc2lvbnMgc2hvdWxkIGhhcHBlbiByYXJlbHkgKGlmIGV2ZXIpLCB0aGVyZSBtYXkgYmUgY2Fz
ZXMgd2hlbiBpdCBjb3VsZCBiZSBpbmV2aXRhYmxlLCBhbmQgYXMgc3VjaCwgaXQgbWF5IGJlIGlu
dGVyZXN0aW5nIHRvIGNhY2hlIHRoZSBjbGFzaF9maWxlIHNvbWV3aGVyZSBvbiBhIHJlbW90ZSBz
ZXJ2ZXIgdG8gYXZvaWQgc2VuZGluZyBpdCBvdmVyIHRoZSBjb25zdHJhaW5lZCB3aXJlbGVzcyBp
bnRlcmZhY2UuIEl0IGNvdWxkIGJlIHVzZWQgZm9yIG90aGVyIGNhc2VzLCB3aGVyZSBzb21lIGZy
ZXF1ZW50bHkgdXNlZCByZXNvdXJjZXMgYXJlIHJlLWhhc2hlZCBmb3IgcGVyZm9ybWFuY2UgcHVy
cG9zZXMuIE1heWJlIGl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRvIGFsbG93IHRoZSBzZXJ2ZXIg
dG8gc3BlY2lmeSBhIHJlbW90ZSBsb2NhdGlvbiBmb3IgdGhlIGNsYXNoIGZpbGU/IEZvciBzdGF0
aWMgY29sbGlzaW9ucyBvciBvcHRpbWl6YXRpb25zIGl0IGNvdWxkIGJlIHRoYXQgdGhlIFlBTkcg
ZGVmaW5pdGlvbiBpbmNsdWRlcyBhbHRlcm5hdGl2ZSBoYXNoIHZhbHVlcywgd2hpY2ggY291bGQg
YmUgdXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsIG9uZXMuDQo+Pj4+Pj4NCj4+Pj4+PiAy
KSBDb21wcmVzc2luZyB0aGUgVVJMIHJlcHJlc2VudGF0aW9uIG9mIFlBTkcgaGFzaGVzIEFub3Ro
ZXIgDQo+Pj4+Pj4gcG9pbnQgKHdoaWNoIGlzIHVucmVsYXRlZCksIGlzIHRvIGVsaWRlIHRoZSBs
ZWFkaW5nICJBInMgZnJvbSB0aGUgDQo+Pj4+Pj4gYmFzZTY0IHJlcHJlc2VudGF0aW9uIG9mIHRo
ZSBoYXNoIGluIHRoZSBVUkwgKHdoaWNoIGNvcnJlc3BvbmRzIA0KPj4+Pj4+IHRvIGVsaWRpbmcg
dGhlIGxlYWRpbmcgemVyb2VzIGZyb20gdGhlIGhhc2gpLiBBcyBzcGVjaWZpZWQgaW4gDQo+Pj4+
Pj4gc2VjdGlvbiA1LjQuIGEgaGFzaCB2YWx1ZSBvZiAweDAwMDAwMDdlIHdpbGwgYmUgZW5jb2Rl
ZCBhcyBBQUFBXywgDQo+Pj4+Pj4gYnV0IGlmIHRoZSBsZWFkaW5nIEHigJlzIGFyZSBlbGlkZWQg
aXQgd2lsbCBiZSBzaW1wbHkgXw0KPj4+Pj4+DQo+Pj4+Pj4gVGhpcyBjb3VsZCBwb3NlIHByb2Js
ZW1zIG9ubHkgaWYgaW4gdGhlIGZ1dHVyZSB0aGUgc2l6ZSBvZiB0aGUgaGFzaCB2YWx1ZXMgaXMg
aW5jcmVhc2VkIGZyb20gMzAgYml0cyB0byBzb21lIG90aGVyIChoaWdoZXIpIHZhbHVlLg0KPj4+
Pj4+DQo+Pj4+Pj4gVGhpcywgaG93ZXZlciwgY291bGQgYmUgdmVyeSB1c2VmdWwgd2hlbiBoYXZp
bmcgdG8gZnJlcXVlbnRseSANCj4+Pj4+PiBhY2Nlc3MgdGhlIHNhbWUgcmVzb3VyY2UuIEluIHN1
Y2ggY2FzZSwgdGhlIHNlcnZlci9uZXR3b3JrIA0KPj4+Pj4+IG9wZXJhdG9yIG1heSBkZWNpZGUg
dG8gcmUtaGFzaCB0aGUgVVJJIHRvIGEgc2hvcnRlciB2ZXJzaW9uLCBlLmcuIA0KPj4+Pj4+IHRo
ZSAvc3lzOnN5c3RlbS1zdGF0ZS9zeXM6Y2xvY2svc3lzOmN1cnJlbnQtZGF0ZXRpbWUgY291bGQg
YmUgDQo+Pj4+Pj4gcmVtYXBwZWQgZnJvbSAweDE1MzcwNDA4IGFuZCBWTndRSSB0byAweDEgYW5k
IF8NCj4+Pj4+Pg0KPj4+Pj4+IEJlc3QsDQo+Pj4+Pj4gQWxleA0KPj4+Pj4+DQo+Pj4+Pj4gUFMu
DQo+Pj4+Pj4gQSB0eXBvICg/KSwgd2hpY2ggbWF5IGJlIGFscmVhZHkgY29ycmVjdGVkLCBpbiB0
aGUgZXhhbXBsZSBvZiBtb2QudXJpIG9uIFBhZ2UgMjY6IHRoZSB0d28gcmVzcG9uc2VzIGhhdmUg
ZGlmZmVyZW50IHNjaGVtZSAibW9kLnVyaSIgYW5kICJtb2R1cmkiDQo+Pj4+Pj4NCj4+Pj4+PiBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4+Pj4+IGNv
cmUgbWFpbGluZyBsaXN0DQo+Pj4+Pj4gY29yZUBpZXRmLm9yZw0KPj4+Pj4+IGh0dHBzOi8vd3d3
LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZQ0KPj4+Pj4+DQo+Pj4+Pj4gX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+Pj4+PiBjb3JlIG1haWxp
bmcgbGlzdA0KPj4+Pj4+IGNvcmVAaWV0Zi5vcmcNCj4+Pj4+PiBodHRwczovL3d3dy5pZXRmLm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL2NvcmUNCj4+Pj4+Pg0KPg0K


From nobody Thu Jun  4 23:38:22 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 152621A1B07; Thu,  4 Jun 2015 23:38:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.903
X-Spam-Level: **
X-Spam-Status: No, score=2.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FRT_BELOW2=2.154, GB_ABOUTYOU=0.5, HELO_EQ_FR=0.35, J_CHICKENPOX_24=0.6, J_CHICKENPOX_31=0.6, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zxYs9fFBLium; Thu,  4 Jun 2015 23:38:16 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id 7EAE51A1B15; Thu,  4 Jun 2015 23:38:15 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id A0F80302B3; Fri,  5 Jun 2015 08:38:14 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id GyzW2SP_X8fE; Fri,  5 Jun 2015 08:38:13 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 0A655302B7; Fri,  5 Jun 2015 08:38:13 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id dVINGQB1hXXr; Fri,  5 Jun 2015 08:38:12 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id 89A32302B2; Fri,  5 Jun 2015 08:38:12 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CO2PR0601MB7921BC602CE345C96C6EE2DFEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Fri, 5 Jun 2015 08:38:11 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <5D4E7F39-521E-4F42-B532-7DA13E6B7473@telecom-bretagne.eu>
References: <FC0928A2-A1C6-4989-92ED-D482155CB481@telecom-bretagne.eu> <CO2PR0601MB792CF020ACD0E22BA1CE21AFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHRKpEx0FAbW_kgM8mWionPvSoUSe8Kw_Vx9mwSjh2F4YQ@mail.gmail.com> <CO2PR0601MB792075979F3704BED8AE50FFEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQM8Lx3aMHyXzXs-wEemnun3AF888FsMd9qDGo2_JSXug@mail.gmail.com> <CO2PR0601MB792E29239D3EC6439830936FEB40@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHS9oiNu2SSt_UUxAe35UCG16bP7-x249XVvvCiL7sAwBw@mail.gmail.com> <CO2PR0601MB7929083EA70ED8F9EFFC0D9FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHQs8M_=JFoEgqn8_8=kwT2ZHHz8DHwujjTa3yF5oyP73g@mail.gmail.com> <CO2PR0601MB7928B1C12A16F68FF994349FEB30@CO2PR0601MB792.namprd06.prod.outlook.com> <142DC4CE-A641-4A95-9F30-62447A2A4F4C@telecom-bretagne.eu> <CABCOCHRU-7OZyH+SHh9Fxu9GP+bJBQxmYYDmBwzLaNhwqDHCTw@mail.gmail.com> <CO2PR0601MB7921BC602CE345C96C6EE2DFEB30@CO2PR0601MB792.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/8GgP9RfyB9dwiEXovCAivrzJGZA>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 06:38:20 -0000

Hi Michel, Andy,

>=20
> Le 5 juin 2015 =C3=A0 00:36, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> =3D=3D=3D About "IMO only managed mode is needed."
>=20
> Totally agree
>=20
> =3D=3D=3D About "The 10-bit mystery encoding does not seem very =
interoperable."
>=20
> If we " just assigns a module number to a module name", a unique data =
node identifier need to be formed by this module number + some sort of =
data node number. The 30 bits data node identifier similar to scheme =
proposed by Alexander seen to work fine. (e.g. 20 bits module ID, 10 =
bits data node ID)

If the managed mode is all that is necessary (which also seems =
reasonable to me), then there could be a deterministic assignment of the =
IDs for the data nodes in a module, for example for each module, start =
from 1 and increase at each data node in a breadth-first enumeration of =
the nodes. At the end of this mail I=E2=80=99ve tried to put a short =
example based on the YANG scheme of 6top.

Also, if the data node ID is 0, then the YANG hash ID will be simply the =
ID of the module, which could then be addressed (maybe for some =
meta-info?).

Alexander


Example:
id =3D data node ID
id=3D1  typedef nodeaddresstype {}

id=3D2  list CellList {
id=3D3  leaf CellID {}
id=3D4     leaf SlotframeID {}
id=3D5     leaf SlotOffset {}
id=3D6     leaf ChannelOffset {}
id=3D7     leaf LinkOption {}
id=3D8     leaf LinkType {}
id=3D9     leaf CellType {}
id=3D10    leaf NodeAddress {}
id=3D11    leaf TrackID {}

id=3D12    container Statistic {
id=3D13        leaf NumOfStatistic {}
id=3D14            list MeasureList {
id=3D15                leaf StatisticsMetricsID{}
id=3D16                leaf StatisticsValue{}
                  }
              }
          }
          =E2=80=A6
      }


>=20
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com  =20
>=20
>=20
> -----Original Message-----
> From: Andy Bierman [mailto:andy@yumaworks.com]=20
> Sent: 4 juin 2015 18:19
> To: Alexander Pelov
> Cc: Michel Veillette; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [core] CoMI remote server clash file and YANG hash in URL
>=20
> On Thu, Jun 4, 2015 at 9:32 AM, Alexander Pelov =
<alexander.pelov@telecom-bretagne.eu> wrote:
>> Hi all,
>>=20
>> Just a short idea for the hash clash issue.
>>=20
>> The 30 bits, which are reserved for the YANG hash can have a =
structure :
>> 1 bit =3D structured YANG hash (0) or pure YANG hash (1)
>>   If 0 (structured), then :
>>       1 bit =3D managed (0) or non-managed (1)
>>       18 bits =3D module ID
>>       10 bits =3D item ID
>>   If 1 (non-structured), then:
>>       29 bits =3D least significant 29 bits of the YANG hash.
>>=20
>=20
> I do not really want to change the YANG Hash from 30 bits to 29 bits.
>=20
> Having a different numbering scheme for every object seems too =
complicated.
> I would add the constraint that the server must use the same numbering =
scheme for all objects, so this can be discovered via .well-known =
capabilities, and all 30 bits can be used in a YANG Hash.
>=20
>=20
>> In case of clash, send error, the full URI must be used (which should=20=

>> be with extremely low probability) This way, in the worst case you =
are limiting your hash value from 30 to 29 bits (and thus slightly =
increasing the clash probability).
>>=20
>> If structured YANG hash, then:
>>   0 =3D managed (e.g. IETF-assigned module ID)
>>      18 bits =3D the ID of the module (1, 2, 3, =E2=80=A6., 262143) =
assigned incrementally by IANA (0 reserved for special usage)
>>      10 bits =3D the ID of the item in the module, incremented at =
each item (1..1023 - hope this is sufficient for all cases).
>>   1 =3D unmanaged
>>       18 bits =3D ID of module, by default the 18 less significant =
bits of the module. It is up to the user to assure that there are no =
clashes with the names of the other modules on the device
>>       10 bits =3D ID of the item. It is up to the implementer to =
ensure that there are no clashes within the module.
>>=20
>> Two possible drawbacks of this approach, however:
>>  - For managed IDs you will probably have to keep both the YANG hash =
and the managed full ID.
>>  - In case of unmanaged IDs you increase the probability of collision =
of 1E-9 to 2E-9.
>>=20
>=20
>=20
> IMO only managed mode is needed. The IANA registry (that will be =
created) should be open to vendors and other SDOs.
> This registry just assigns a module number to a module name.
>=20
> The 10-bit mystery encoding does not seem very interoperable.
> It should be standard.  I think the YANG "id" extension to number each =
object manually will work.
>=20
>=20
>=20
>> Best,
>> Alexander
>>=20
>=20
>=20
> Andy
>=20
>>=20
>>> Le 4 juin 2015 =C3=A0 18:04, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>>>=20
>>> Hi Andy,
>>>=20
>>> Just to be sure about the scope of your comment.
>>>=20
>>> You say " Each object has a YANG Hash", yes but this is not a =
uniquely object identify.
>>> Did we reach a consensus about using the  " YANG hash" + "module =
name or a module ID" as a unique data node (object) identifier?
>>>=20
>>> This can take the form of a rehash table available on the CoMI =
server=20
>>> or elsewhere (" YANG hash", "module name or module ID", "rehash or=20=

>>> alias") This can take the form of an error message containing (" =
YANG=20
>>> hash", "module name or module ID", "rehash or alias") This can take=20=

>>> the form of a fully qualified identifier within the request or=20
>>> payload (REQ: GET example.com/mg?select(<module name>.<YANG hash>)
>>>=20
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com
>>> www.trilliantinc.com
>>>=20
>>>=20
>>> -----Original Message-----
>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>> Sent: 4 juin 2015 11:37
>>> To: Michel Veillette
>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in=20=

>>> URL
>>>=20
>>> Hi,
>>>=20
>>> I do not agree that the module name or a module ID needs to be used =
at all in the object identifier.  Each object has a YANG Hash.
>>> Retrieving a node, whether by hash ID or module-ID.hash will cause =
all descendant nodes to be included in the retrieval, even if they are =
augmenting nodes from another module.
>>>=20
>>> YANG data is hierarchical.
>>> The modules are just packaging for definitions.
>>> They do not define any containment or structure within the =
conceptual schema tree.
>>>=20
>>>=20
>>> Andy
>>>=20
>>>=20
>>> On Thu, Jun 4, 2015 at 8:21 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>> Hi Andy
>>>>=20
>>>> About "Almost -- this is defined in RFC 6020 -- the augmenting =
nodes are not part of the augmented module.  They will be returned in =
NETCONF and RESTCONF retrieval operations for an ancestor node but they =
are not part of the augmented module.  Only objects defined in the =
module namespace are part of the module."
>>>>=20
>>>> Understood, this is why my contribution introduce the new term, =
"Module context". Augmenting nodes are not part of the augmented module =
but, as defined, are part of the "Module context". This new concept was =
require to minimize the overhead when retrieving the complete datastore =
containing multiple module contexts with some having augmenting nodes.
>>>>=20
>>>>  RES: 2.05 Content (Content-Format: application/cbor)
>>>>  {
>>>>     "a" : {
>>>>        365257235 : "leafA1 value",
>>>>        702149626 : {
>>>>           215993329 : "leafA2 value",
>>>>           962191682 : "leafC1 value"                    # =
Augmenting data node
>>>>        },
>>>>        829222983 : "leafS value"                         # =
Sub-module data node
>>>>     },
>>>>     "b" : {
>>>>        289564696 : "leafB value"
>>>>     },
>>>>     "c" : {
>>>>        993533527 : "leafC2 value"
>>>>     }
>>>>  }
>>>>=20
>>>> Michel Veillette
>>>> System Architecture Director
>>>> Trilliant Inc.
>>>> Tel: 450-375-0556 ext. 237
>>>> michel.veillette@trilliantinc.com
>>>> www.trilliantinc.com
>>>>=20
>>>>=20
>>>> -----Original Message-----
>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>> Sent: 3 juin 2015 17:38
>>>> To: Michel Veillette
>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in=20=

>>>> URL
>>>>=20
>>>> On Wed, Jun 3, 2015 at 12:48 PM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>> About "I would prefer if hash collisions in a single module were =
not allowed."
>>>>> Agreed but how this is implemented.
>>>>>=20
>>>>=20
>>>>=20
>>>> By checking the YANG hashes before it is published, similar to =
checking the YANG syntax with a YANG compiler.
>>>>=20
>>>>=20
>>>>> About "But these numbers do not exist in any modules and so they =
cannot be relied on in CoMI.
>>>>> I understand but I assume that a module can be re-published with =
the added statement when require. If a CoMI implementer try to implement =
a module containing a clash, he can look for a version of this module =
containing the special YANG statement. The likelihood of such clash is =
extremely low and such fallback solution won=E2=80=99t be required =
often. However, the RFC will specify how to resolve such situation if =
this ever happen. This statement can also be used to address the need =
for data node identifier compactness as mentioned by Alexander in its =
original email.
>>>>>=20
>>>>=20
>>>> I think the ad-hoc id assignments are pointless because they are =
not universal.  The only thing that can be counted on is the module name =
and the XPath absolute path expression of each object.
>>>>=20
>>>>=20
>>>>> About "In NETCONF, modules tend to use augment a lot"
>>>>> In my document " draft-vanderstok-core-comi-06 - MV.docx ", I =
propose a new definition to address this.
>>>>>=20
>>>>=20
>>>> What is it?
>>>> IMO you should post comments to the mailing list not markup to a =
word document.  It is too hard to follow.
>>>>=20
>>>>=20
>>>>> Module Context: A module context is composed of all data nodes, =
notifications and RPCs defined in a YANG module and included sub-modules =
or added to them using the augment YANG statement.
>>>>>=20
>>>>=20
>>>> Almost -- this is defined in RFC 6020 -- the augmenting nodes are =
not part of the augmented module.  They will be returned in NETCONF and =
RESTCONF retrieval operations for an ancestor node but they are not part =
of the augmented module.  Only objects defined in the module namespace =
are part of the module.
>>>>=20
>>>>=20
>>>> Andy
>>>>=20
>>>>=20
>>>>=20
>>>>> Section 4.1.3.4 show an example of include, import and augment.
>>>>>=20
>>>>> Michel Veillette
>>>>> System Architecture Director
>>>>> Trilliant Inc.
>>>>> Tel: 450-375-0556 ext. 237
>>>>> michel.veillette@trilliantinc.com
>>>>> www.trilliantinc.com
>>>>>=20
>>>>>=20
>>>>> -----Original Message-----
>>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>>> Sent: 3 juin 2015 14:54
>>>>> To: Michel Veillette
>>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash in=20=

>>>>> URL
>>>>>=20
>>>>> On Wed, Jun 3, 2015 at 11:16 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>>> Hi Andy
>>>>>>=20
>>>>>> Couple of questions about your proposed solution.
>>>>>>=20
>>>>>> =3D=3D=3D Question #1, New YANG statement
>>>>>>=20
>>>>>> Your solution works only if hash clashes within a module are =
resolved at design time. If not, the error message will return the =
following information which is not sufficient to resolve which data node =
is which.
>>>>>>=20
>>>>>>  { "1234": [
>>>>>>         "module-A":"4567",
>>>>>>         "module-A":"6523"
>>>>>>     ]
>>>>>>  }
>>>>>>=20
>>>>>=20
>>>>>=20
>>>>> The original proposal had a 3-tuple { module-name, path-expr, =
new-hash } We discussed some optimizations in the 6TISCH call to reduce =
the size of the path-expr and still not require the client to store all =
the path strings, such as store a few bytes from the path strings like =
6th and 11th bytes (Avoid the common ietf- prefix for many module =
names).
>>>>>=20
>>>>> This is not deterministic. Only the full path string is =
fool-proof.
>>>>> I would prefer if hash collisions in a single module were not =
allowed.
>>>>> They need to be resolved at design time.  If this is not possible, =
then a standard rehash algorithm should be used so the collision is =
resolved in a predictable way.  e.g., try appending "_", then try "__", =
etc.
>>>>> The result would be that hash collisions in a single module do not =
occur in CoMI.
>>>>>=20
>>>>>=20
>>>>>> Is it possible/acceptable to request a new YANG statement to =
manually assign a ID to a data node?
>>>>>> Same question for a module ID?
>>>>>>=20
>>>>>> For example (see "id 16" and "id 25" bellow) :
>>>>>>=20
>>>>>>  module a {
>>>>>>     namespace a-ns;
>>>>>>     prefix a;
>>>>>>     id 16;
>>>>>>     revision 2015-01-01;
>>>>>>=20
>>>>>>     leaf leafA1 { type string; id 25 }
>>>>>>     container containerA {
>>>>>>        leaf leafA2 { type string}
>>>>>>     }
>>>>>>  }
>>>>>=20
>>>>>=20
>>>>> You could have an extension statement do anything you want:
>>>>>=20
>>>>>   comi:id  16;
>>>>>=20
>>>>> But these numbers do not exist any any modules and so they cannot =
be relied on in CoMI.
>>>>>=20
>>>>>=20
>>>>>>=20
>>>>>> =3D=3D=3D Question #2, Introduction of an optional query =
parameter used=20
>>>>>> to target a specific module
>>>>>>=20
>>>>>> For nodes / networks which can afford a slitely larger payload =
(IEEE 802.15.4g for example) but want to avoid the processing and =
storage associated with the porposed error message, are you opposed to =
the support of an optional CoAP query parameter use carry the module =
name or module ID ?
>>>>>>=20
>>>>>> For example:
>>>>>>=20
>>>>>> GET example.com/Y8d7s?select=3D ietf-6tisch-mac
>>>>>>=20
>>>>>> =3D=3D=3D Question #3, Use of the select query parameter instead =
of the=20
>>>>>> URI
>>>>>>=20
>>>>>> Are you oposed to the use of the select query parameter instead =
of=20
>>>>>> the URI to identify data node(s)
>>>>>>=20
>>>>>=20
>>>>> Not really.
>>>>>=20
>>>>> I don't know how mixed the modules will get in CoMI.
>>>>> In NETCONF, modules tend to use augment a lot, so the nodes from =
'module-A' may be nested nodes.
>>>>> Retrieving just the augmenting nodes and ignoring the augmented =
nodes would likely be operationally useless.
>>>>> e.g., when augmenting a list, the key leafs are needed to identify =
the instance.
>>>>>=20
>>>>> I would like to keep CoMI extremely simple.
>>>>> More bells and whistles means increased memory and CPU =
requirements.
>>>>> I am glad CORE and 6TISCH WGs are so concerned about constrained =
resources.
>>>>> Only the most important bells and whistles will get standardized.
>>>>>=20
>>>>>=20
>>>>>> For example:
>>>>>>=20
>>>>>> GET example.com/mg?select=3DY8d7s
>>>>>> GET example.com/mg?select=3DY8d7s,NKHaA GET
>>>>>> example.com/mg?select=3Dietf-6tisch-mac(Y8d7s,NKHaA)
>>>>>>=20
>>>>>> =3D=3D=3D Question #4, Compressing YANG hash base64 =
representation
>>>>>>=20
>>>>>> Are you oposed to the compression of the base64 representation as =
propsed by Alexander.
>>>>>>=20
>>>>>=20
>>>>> No.  Optimizations that reduce the encoding size are important.
>>>>> I want to use standard CBOR.  No special hacks just for CoMI.
>>>>>=20
>>>>>> For example:
>>>>>>=20
>>>>>> GET example.com/mg?select=3D7s
>>>>>> Instead of
>>>>>> GET example.com/mg?select=3D AAA7s
>>>>>>=20
>>>>>> Michel Veillette
>>>>>> System Architecture Director
>>>>>> Trilliant Inc.
>>>>>> Tel: 450-375-0556 ext. 237
>>>>>> michel.veillette@trilliantinc.com
>>>>>> www.trilliantinc.com
>>>>>>=20
>>>>>>=20
>>>>>=20
>>>>> Andy
>>>>>=20
>>>>>> -----Original Message-----
>>>>>> From: Andy Bierman [mailto:andy@yumaworks.com]
>>>>>> Sent: 3 juin 2015 13:09
>>>>>> To: Michel Veillette
>>>>>> Cc: Alexander Pelov; 6tisch@ietf.org; core@ietf.org
>>>>>> Subject: Re: [core] CoMI remote server clash file and YANG hash =
in=20
>>>>>> URL
>>>>>>=20
>>>>>> On Wed, Jun 3, 2015 at 9:05 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com> wrote:
>>>>>>> Hi Alexander
>>>>>>>=20
>>>>>>> At the last 6TiSCH bi-weekly call, 4 solutions have been =
presented to the hash clashes problem. Two based on a rehash table and =
two based on a new CoAP query parameter carrying the module name or =
registered module ID. This query parameter is used to select =
unambiguously the targeted data node(s) assuming that any hash collision =
within a module have been resolved at design time. You can find this =
presentation in attachment.
>>>>>>>=20
>>>>>>> Both of your proposals make sense to me but I still hope that =
the clash file can be avoided or be optional.
>>>>>>>=20
>>>>>>=20
>>>>>>=20
>>>>>> I agree we should not need the client to retrieve the rehash info =
before using a server.
>>>>>> The CoMI authors have discussed a solution which I will try to =
write up today where a special "hash-clash" error is returned by CoMI if =
a rehash is needed.
>>>>>>=20
>>>>>>  1) client requests module-A object with hash  "1234";
>>>>>>       there is no extended-name/local-name,
>>>>>>       just the YANG hash, used in any request
>>>>>>=20
>>>>>>  2) if '1234' has a collision in this server then a special error =
code is returned;
>>>>>>      The return payload has the rehash info [old-hash, { =
module-name, new-hash }+]
>>>>>>          { "1234": [
>>>>>>                 "module-A":"4567",
>>>>>>                 "module-X":"6523"
>>>>>>             ]
>>>>>>          }
>>>>>>=20
>>>>>>   3) the client gets the error info, and knows which module its =
"1234" is from.
>>>>>>        It finds the correct module name in the array and replaces =
its old-hash
>>>>>>        with the new-hash.
>>>>>>=20
>>>>>>  4) client re-sends the request, using hash "4567" instead of =
"1234"
>>>>>>=20
>>>>>> The rehash table goes away, and only this error info is used =
instead.
>>>>>>=20
>>>>>>> Michel Veillette
>>>>>>> System Architecture Director
>>>>>>> Trilliant Inc.
>>>>>>> Tel: 450-375-0556 ext. 237
>>>>>>> michel.veillette@trilliantinc.com www.trilliantinc.com
>>>>>>>=20
>>>>>>=20
>>>>>>=20
>>>>>> Andy
>>>>>>=20
>>>>>>>=20
>>>>>>> -----Original Message-----
>>>>>>> From: core [mailto:core-bounces@ietf.org] On Behalf Of Alexander=20=

>>>>>>> Pelov
>>>>>>> Sent: 3 juin 2015 11:01
>>>>>>> To: 6tisch@ietf.org; core@ietf.org
>>>>>>> Subject: [core] CoMI remote server clash file and YANG hash in=20=

>>>>>>> URL
>>>>>>>=20
>>>>>>> Hello everyone,
>>>>>>>=20
>>>>>>> I would like to discuss with you to ideas/proposals in this =
mail, namely:
>>>>>>> 1) Caching the yang clash file on a remote server
>>>>>>> 2) Compressing the URL representation of YANG hashes
>>>>>>>=20
>>>>>>> 1) Caching the yang clash file on a remote server Even though =
hash collisions should happen rarely (if ever), there may be cases when =
it could be inevitable, and as such, it may be interesting to cache the =
clash_file somewhere on a remote server to avoid sending it over the =
constrained wireless interface. It could be used for other cases, where =
some frequently used resources are re-hashed for performance purposes. =
Maybe it would be interesting to allow the server to specify a remote =
location for the clash file? For static collisions or optimizations it =
could be that the YANG definition includes alternative hash values, =
which could be used in addition to the normal ones.
>>>>>>>=20
>>>>>>> 2) Compressing the URL representation of YANG hashes Another=20
>>>>>>> point (which is unrelated), is to elide the leading "A"s from =
the=20
>>>>>>> base64 representation of the hash in the URL (which corresponds=20=

>>>>>>> to eliding the leading zeroes from the hash). As specified in=20
>>>>>>> section 5.4. a hash value of 0x0000007e will be encoded as =
AAAA_,=20
>>>>>>> but if the leading A=E2=80=99s are elided it will be simply _
>>>>>>>=20
>>>>>>> This could pose problems only if in the future the size of the =
hash values is increased from 30 bits to some other (higher) value.
>>>>>>>=20
>>>>>>> This, however, could be very useful when having to frequently=20
>>>>>>> access the same resource. In such case, the server/network=20
>>>>>>> operator may decide to re-hash the URI to a shorter version, =
e.g.=20
>>>>>>> the /sys:system-state/sys:clock/sys:current-datetime could be=20
>>>>>>> remapped from 0x15370408 and VNwQI to 0x1 and _
>>>>>>>=20
>>>>>>> Best,
>>>>>>> Alex
>>>>>>>=20
>>>>>>> PS.
>>>>>>> A typo (?), which may be already corrected, in the example of =
mod.uri on Page 26: the two responses have different scheme "mod.uri" =
and "moduri"
>>>>>>>=20
>>>>>>> _______________________________________________
>>>>>>> core mailing list
>>>>>>> core@ietf.org
>>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>>=20
>>>>>>> _______________________________________________
>>>>>>> core mailing list
>>>>>>> core@ietf.org
>>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>>=20
>>=20


From nobody Fri Jun  5 04:38:26 2015
Return-Path: <bergmann@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CB2FB1AD0A7 for <core@ietfa.amsl.com>; Fri,  5 Jun 2015 04:38:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rUhzK_rOmu1Y for <core@ietfa.amsl.com>; Fri,  5 Jun 2015 04:38:13 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 116651A9174 for <core@ietf.org>; Fri,  5 Jun 2015 04:38:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [134.102.201.11]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t55Bc9vh006790; Fri, 5 Jun 2015 13:38:10 +0200 (CEST)
Received: from aung.tzi.org (eduroam-pool10-413.wlan.uni-bremen.de [134.102.91.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3m326964X0z2dGr; Fri,  5 Jun 2015 13:38:09 +0200 (CEST)
From: Olaf Bergmann <bergmann@tzi.org>
To: Ludwig Seitz <ludwig@sics.se>
References: <5570428E.5070500@sics.se>
Date: Fri, 05 Jun 2015 13:38:26 +0200
In-Reply-To: <5570428E.5070500@sics.se> (Ludwig Seitz's message of "Thu, 04 Jun 2015 14:20:30 +0200")
Message-ID: <87oaku75cd.fsf@aung.informatik.uni-bremen.de>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/0D6eQhRRG4DFUNhJY4J0F00bAYE>
Cc: core <core@ietf.org>
Subject: Re: [core] Question about blockwise and object security
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 11:38:15 -0000

Hi Ludwig,

Ludwig Seitz <ludwig@sics.se> writes:

> I am just looking at draft-ietf-core-block in conjunction with object
> security (draft-selander-ace-object-security) , and I wonder if any of
> you are aware of usecases, where it would make sense for a proxy to
> "repackage" blockwise coap messages into blocks of a different size
> (or recombine them before forwarding them).

I wonder what this use-case would be:

* If you did not recombine blocks, the proxy would have to pad the
  changed blocks to the next matching block size (what happens if you
  hit the 2048-byte-case?). Where constrainedness is an issue this leads
  nowhere, I suppose.

* If you recombined blocks, message integrity can be checked only for
  the entire payload, as the original block boundaries are gone. Apart
  from (potentially?) not being able to extend the protection to CoAP
  message headers in this case, the receiver would have to recombine the
  entire payload before it can do the integrity check.

Gr=C3=BC=C3=9Fe
Olaf


From nobody Fri Jun  5 06:42:43 2015
Return-Path: <ludwig@sics.se>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 13F261B2F9B for <core@ietfa.amsl.com>; Fri,  5 Jun 2015 06:42:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qevysASTNm_R for <core@ietfa.amsl.com>; Fri,  5 Jun 2015 06:42:40 -0700 (PDT)
Received: from mail-la0-f52.google.com (mail-la0-f52.google.com [209.85.215.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A33AC1B2F9C for <core@ietf.org>; Fri,  5 Jun 2015 06:42:39 -0700 (PDT)
Received: by laar3 with SMTP id r3so5504632laa.3 for <core@ietf.org>; Fri, 05 Jun 2015 06:42:38 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type; bh=/jR9KpulZYlDZsAH/nx26EPLD0XH/xC8DrBaOaBuf9g=; b=WjTJfV5IC9WzIZc5lyq8N8mb6rmXJtxd8PqEx6GNx3T1cX6AfKUfiN5kgCvaTF3l6t uTQzPoUcXnx/BRsCRMgl7jJ3i99omdBNAg6ecGvShgs2egL/iiO0UNpc5u6ZRpOKTQso ZMHDKZmXZBtm+fuYgJIHjHNH7tu/qwBn4rQvdlyRRZJFPtmnqJBkyIN9Q+KOmYuO/W/t 31SJ/ujAP7RUyRWMiotMTZRLRsZRuh8NER9QOveKxE036j6JtuqEGCKqw4jSANnlpPo6 KZXCu+pUmLdEbYwsi16duku8CoNnIioyk+Q2AN+ysStZnUI5k2JZ7PYbUcTStZ4s0r2r lcEQ==
X-Gm-Message-State: ALoCoQlH7x3NP8brnvKz9JwY/dE03bBodH3GDzaQntCGjX7d4jkEiRsyY4lT+Fm+EsvwoNd4qcBd
X-Received: by 10.112.63.201 with SMTP id i9mr3384549lbs.93.1433511758024; Fri, 05 Jun 2015 06:42:38 -0700 (PDT)
Received: from [192.168.0.102] ([89.253.76.185]) by mx.google.com with ESMTPSA id dh4sm1781575lac.12.2015.06.05.06.42.36 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 05 Jun 2015 06:42:37 -0700 (PDT)
Message-ID: <5571A744.2070202@sics.se>
Date: Fri, 05 Jun 2015 15:42:28 +0200
From: Ludwig Seitz <ludwig@sics.se>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: Olaf Bergmann <bergmann@tzi.org>
References: <5570428E.5070500@sics.se> <87oaku75cd.fsf@aung.informatik.uni-bremen.de>
In-Reply-To: <87oaku75cd.fsf@aung.informatik.uni-bremen.de>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms050201010607070301000902"
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/b2UoATmH1bQbJc3UcbFAiWb5lLo>
Cc: core <core@ietf.org>
Subject: Re: [core] Question about blockwise and object security
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 13:42:42 -0000

This is a cryptographically signed message in MIME format.

--------------ms050201010607070301000902
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 2015-06-05 13:38, Olaf Bergmann wrote:
> Hi Ludwig,
>
> Ludwig Seitz <ludwig@sics.se> writes:
>
>> I am just looking at draft-ietf-core-block in conjunction with object
>> security (draft-selander-ace-object-security) , and I wonder if any of=

>> you are aware of usecases, where it would make sense for a proxy to
>> "repackage" blockwise coap messages into blocks of a different size
>> (or recombine them before forwarding them).
>
> I wonder what this use-case would be:
>
> * If you did not recombine blocks, the proxy would have to pad the
>    changed blocks to the next matching block size (what happens if you
>    hit the 2048-byte-case?). Where constrainedness is an issue this lea=
ds
>    nowhere, I suppose.
>
> * If you recombined blocks, message integrity can be checked only for
>    the entire payload, as the original block boundaries are gone. Apart=

>    from (potentially?) not being able to extend the protection to CoAP
>    message headers in this case, the receiver would have to recombine t=
he
>    entire payload before it can do the integrity check.
>
> Gr=C3=BC=C3=9Fe
> Olaf
>

Exactly, that's why I'm hoping that there is no such use case, but I=20
wanted to ask just to make sure that there wasn't something I missed.

/Ludwig


--=20
Ludwig Seitz, PhD
SICS Swedish ICT AB
Ideon Science Park
Building Beta 2
Scheelev=C3=A4gen 17
SE-223 70 Lund

Phone +46(0)70-349 92 51
http://www.sics.se


--------------ms050201010607070301000902
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIMVDCC
BhgwggUAoAMCAQICAwyGmDANBgkqhkiG9w0BAQUFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNV
BAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRl
IFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlh
dGUgQ2xpZW50IENBMB4XDTE1MDEwODA4MzkwNloXDTE2MDEwOTIyNDEzMFowODEXMBUGA1UE
AwwObHVkd2lnQHNpY3Muc2UxHTAbBgkqhkiG9w0BCQEWDmx1ZHdpZ0BzaWNzLnNlMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxUHisC6rgXFsBHHBGo8ulz/cLX3gX5Ufhcwo
rp+7djzMMuKPM1KOHq0bjWhmFe8ly8CzWdk2NS600t7IEBQWJiHLsdc12UqmNswQUpD7oqkR
1nRGT6leAHYTWapkR+nczZ2NxD+H7u4ZWVIZg0DFiTqtY8ghYHHYYy8BBoc/jHG78X4+JJAg
s5XOa0gVl7W38vDvVpo14xhWEBGjzPk9WxWirqAF66PF+JEu2JD9LzFbpEq829SRXJMFB9wp
oQNlH0UQ01/2sWCIBxPpHuEjxEF/V3Z/F2VsNTy4zvYrd+/MYO3w30F+bWQNZsMHEkTW1pEh
iz7rQPWTBXoO8Fv0wQIDAQABo4IC1DCCAtAwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYD
VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB0GA1UdDgQWBBTqvKspqEm0E4R1sgsABYKk
6xDJqDAfBgNVHSMEGDAWgBRTcu2SnODaywFcfH6WNU7y1LhRgjAZBgNVHREEEjAQgQ5sdWR3
aWdAc2ljcy5zZTCCAUwGA1UdIASCAUMwggE/MIIBOwYLKwYBBAGBtTcBAgMwggEqMC4GCCsG
AQUFBwIBFiJodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMIH3BggrBgEFBQcC
AjCB6jAnFiBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTADAgEBGoG+VGhpcyBj
ZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGFjY29yZGluZyB0byB0aGUgQ2xhc3MgMSBWYWxpZGF0
aW9uIHJlcXVpcmVtZW50cyBvZiB0aGUgU3RhcnRDb20gQ0EgcG9saWN5LCByZWxpYW5jZSBv
bmx5IGZvciB0aGUgaW50ZW5kZWQgcHVycG9zZSBpbiBjb21wbGlhbmNlIG9mIHRoZSByZWx5
aW5nIHBhcnR5IG9ibGlnYXRpb25zLjA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLnN0
YXJ0c3NsLmNvbS9jcnR1MS1jcmwuY3JsMIGOBggrBgEFBQcBAQSBgTB/MDkGCCsGAQUFBzAB
hi1odHRwOi8vb2NzcC5zdGFydHNzbC5jb20vc3ViL2NsYXNzMS9jbGllbnQvY2EwQgYIKwYB
BQUHMAKGNmh0dHA6Ly9haWEuc3RhcnRzc2wuY29tL2NlcnRzL3N1Yi5jbGFzczEuY2xpZW50
LmNhLmNydDAjBgNVHRIEHDAahhhodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS8wDQYJKoZIhvcN
AQEFBQADggEBAGXwFsbSfv4mMWqIk64CoxuR6ozo7J37igca7d9tpKIzVIp6xp7Zt+a+J9X3
1r4zgMRFnZJWQ5hy82W/fVDeG9i3NGMM6p7DNUrGjTbVHd11BQtbUOG9MSlyWKQbmt3Q1ElC
f4SRLAQot5SPryLR2FTxQuFkMOrcDzVxNxnMgatOM2fAO8KS0H+wX+I7gC3pEnbg/eMqNgU+
Ktbc2y9naDNmLNLN65s8TT9xZyoQEn9S1oU8Xnh596OMu49Eccws8Ny+vAGESIHG4bqhMSjj
rmDilL1Wj9nQahmBnID5oZD5g9s9KyqxiZIGNnowYYOpCrSeITZ1b7wg50dC8ySojnYwggY0
MIIEHKADAgECAgEeMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1T
dGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWdu
aW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNzEw
MjQyMTAxNTVaFw0xNzEwMjQyMTAxNTVaMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3Rh
cnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
ZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGll
bnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDHCYPMzi3YGrEppC4Tq5a+
ijKDjKaIQZZVR63UbxIP6uq/I0fhCu+cQhoUfE6ERKKnu8zPf1Jwuk0tsvVCk6U9b+0UjM0d
Lep3ZdE1gblK/1FwYT5Pipsu2yOMluLqwvsuz9/9f1+1PKHG/FaR/wpbfuIqu54qzHDYeqiU
fsYzoVflR80DAC7hmJ+SmZnNTWyUGHJbBpA8Q89lGxahNvuryGaC/o2/ceD2uYDX9U8Eg5Dp
IpGQdcbQeGarV04WgAUjjXX5r/2dabmtxWMZwhZna//jdiSyrrSMTGKkDiXm6/3/4ebfeZuC
YKzN2P8O2F/Xe2AC/Y7zeEsnR7FOp+uXAgMBAAGjggGtMIIBqTAPBgNVHRMBAf8EBTADAQH/
MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUU3Ltkpzg2ssBXHx+ljVO8tS4UYIwHwYDVR0j
BBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwZgYIKwYBBQUHAQEEWjBYMCcGCCsGAQUFBzAB
hhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwLQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cu
c3RhcnRzc2wuY29tL3Nmc2NhLmNydDBbBgNVHR8EVDBSMCegJaAjhiFodHRwOi8vd3d3LnN0
YXJ0c3NsLmNvbS9zZnNjYS5jcmwwJ6AloCOGIWh0dHA6Ly9jcmwuc3RhcnRzc2wuY29tL3Nm
c2NhLmNybDCBgAYDVR0gBHkwdzB1BgsrBgEEAYG1NwECATBmMC4GCCsGAQUFBwIBFiJodHRw
Oi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMDQGCCsGAQUFBwIBFihodHRwOi8vd3d3
LnN0YXJ0c3NsLmNvbS9pbnRlcm1lZGlhdGUucGRmMA0GCSqGSIb3DQEBBQUAA4ICAQAKgwh9
eKssBly4Y4xerhy5I3dNoXHYfYa8PlVLL/qtXnkFgdtY1o95CfegFJTwqBBmf8pyTUnFsukD
FUI22zF5bVHzuJ+GxhnSqN2sD1qetbYwBYK2iyYA5Pg7Er1A+hKMIzEzcduRkIMmCeUTyMyi
kfbUFvIBivtvkR8ZFAk22BZy+pJfAoedO61HTz4qSfQoCRcLN5A0t4DkuVhTMXIzuQ8Cnykh
ExD6x4e6ebIbrjZLb7L+ocR0y4YjCl/Pd4MXU91y0vTipgr/O75CDUHDRHCCKBVmz/Rzkc/b
970MEeHt5LC3NiWTgBSvrLEuVzBKM586YoRD9Dy3OHQgWI270g+5MYA8GfgI/EPT5G7xPbCD
z+zjdH89PeR3U4So4lSXur6H6vp+m9TQXPF3a0LwZrp8MQ+Z77U1uL7TelWO5lApsbAonrqA
SfTpaprFVkL4nyGH+NHST2ZJPWIBk81i6Vw0ny0qZW2Niy/QvVNKbb43A43ny076khXO7cNb
BIRdJ/6qQNq9Bqb5C0Q5nEsFcj75oxQRqlKf6TcvGbjxkJh8BYtv9ePsXklAxtm8J7GCUBth
HSQgepbkOexhJ0wP8imUkyiPHQ0GvEnd83129fZjoEhdGwXV27ioRKbj/cIq7JRXun0NbeY+
UdMYu9jGfIpDLtUUGSgsg2zMGs5R4jGCA90wggPZAgEBMIGUMIGMMQswCQYDVQQGEwJJTDEW
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlm
aWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVy
bWVkaWF0ZSBDbGllbnQgQ0ECAwyGmDAJBgUrDgMCGgUAoIICHTAYBgkqhkiG9w0BCQMxCwYJ
KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTA2MDUxMzQyMjhaMCMGCSqGSIb3DQEJBDEW
BBTLbVMD0g1t9UNuLKnKTTlqp6eX2DBsBgkqhkiG9w0BCQ8xXzBdMAsGCWCGSAFlAwQBKjAL
BglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFA
MAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGlBgkrBgEEAYI3EAQxgZcwgZQwgYwxCzAJBgNV
BAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRh
bCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFydENvbSBDbGFzcyAxIFByaW1h
cnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQIDDIaYMIGnBgsqhkiG9w0BCRACCzGBl6CBlDCB
jDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3Vy
ZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNz
IDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENBAgMMhpgwDQYJKoZIhvcNAQEBBQAE
ggEAB0BBGzQPoby3FyDcstZSpogTPFZNX5CcWvEk/kBIqg+gK7Eg/lxuXQ7lzNbqHOhY04rq
Agxn8r2VNwrTImxZG0AA1uEnINigObU4zrbwYEuo22Q0W423zRcSRYbI3Qr2fpk6U7q2UD2c
96Urh9YZOBOzeJRF3VpWNiOMSwE/1YtO7jozr39YFypXozFP0LJDs7Qvkh916CS8kCLetYqK
idj/93ZGsi0xdwQyxb05q5vigsjVqzfwc/kV+fuX/bpenIEwUv+gcgqXzysrKChhAfOLjNOX
7oZ4ti3Yd3rDaCN2WYQfq2CERovOGjRrrp4qM9pkzRH8g2G6LE2GVMlqlgAAAAAAAA==
--------------ms050201010607070301000902--


From nobody Fri Jun  5 08:18:17 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C5EA61B30C9; Fri,  5 Jun 2015 08:18:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Qn99Y2BvIIdM; Fri,  5 Jun 2015 08:18:13 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0741.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::741]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 009291B30D2; Fri,  5 Jun 2015 08:18:06 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB805.namprd06.prod.outlook.com (10.141.247.145) with Microsoft SMTP Server (TLS) id 15.1.184.17; Fri, 5 Jun 2015 15:17:44 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) with Microsoft SMTP Server (TLS) id 15.1.172.22; Fri, 5 Jun 2015 15:17:42 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Fri, 5 Jun 2015 15:17:42 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>, Andy Bierman <andy@yumaworks.com>
Thread-Topic: Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vsw==
Date: Fri, 5 Jun 2015 15:17:41 +0000
Message-ID: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: telecom-bretagne.eu; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB792; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0601MB805; 
x-microsoft-antispam-prvs: <CO2PR0601MB792594F1F6675FD570818D4FEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB792; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB792; 
x-forefront-prvs: 05986C03E0
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(189002)(38414003)(199003)(87936001)(74316001)(2656002)(19580395003)(19580405001)(50986999)(19300405004)(54356999)(99936001)(66066001)(15975445007)(77096005)(46102003)(102836002)(2900100001)(19627595001)(5002640100001)(122556002)(229853001)(62966003)(77156002)(92566002)(18206015028)(40100003)(99286002)(86362001)(33656002)(19625215002)(17760045003)(5001960100002)(16236675004)(189998001)(19617315012)(5001770100001)(76576001)(7099028)(140573001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB792; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB792FA702D901406C3D3A492FEB20CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2015 15:17:41.7993 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB792
X-OriginatorOrg: trilliantinc.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/l36hhPteXKh-1QJmg4YnYpg5vKA>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 15:18:15 -0000

--_004_CO2PR0601MB792FA702D901406C3D3A492FEB20CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB792FA702D901406C3D3A492FEB20CO2PR0601MB792na_"

--_000_CO2PR0601MB792FA702D901406C3D3A492FEB20CO2PR0601MB792na_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Alexander

In your presentation at 6TiSCH, you propose the following data node ID stru=
cture.

*       32 bits YANG ID
-      20 bits for module ID (assigned by IETF)
-      10 bits for data node ID (generated deterministically)


Based on this structure, we can reserve module ID zero for aliases.

If we want to minimize both the network an node resources require by this a=
lias mechanism, we can map an entire module to this space.
This can be implemented by a single integer resource (e.g. leaf alliassedMo=
dule { type uint32 } )
This approach require 4 bytes per CoMI server accessed.

If we want a more complex but more flexible aliases mechanism, your propose=
d map of (allias, YANG ID) seem the solution.
However, we have to consider that this structure can be as large as 1250 by=
tes per CoMI server accessed if limited to 256 aliases.

[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>




--_000_CO2PR0601MB792FA702D901406C3D3A492FEB20CO2PR0601MB792na_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1549218198;
	mso-list-type:hybrid;
	mso-list-template-ids:656425268 -1307148616 -778157430 113655258 516970022=
 1213001540 -1868663014 -1610336682 -722668968 -1235303702;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level2
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:\2013;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\2022;
	mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Arial",sans-serif;
	mso-bidi-font-family:"Times New Roman";}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi Alexander<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">In your presentation at 6TiSCH, you propose the foll=
owing data node ID structure.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<table class=3D"MsoTableGrid" border=3D"1" cellspacing=3D"0" cellpadding=3D=
"0" style=3D"border-collapse:collapse;border:none">
<tbody>
<tr>
<td width=3D"623" valign=3D"top" style=3D"width:467.5pt;border:solid window=
text 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<p class=3D"MsoNormal" style=3D"margin-left:.5in;text-indent:-.25in;mso-lis=
t:l0 level1 lfo1">
<![if !supportLists]><span style=3D"font-family:&quot;Arial&quot;,sans-seri=
f"><span style=3D"mso-list:Ignore">&#8226;<span style=3D"font:7.0pt &quot;T=
imes New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">32 bits YANG ID</span><=
o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:1.0in;text-indent:-.25in;mso-li=
st:l0 level2 lfo1">
<![if !supportLists]><span style=3D"font-family:&quot;Arial&quot;,sans-seri=
f"><span style=3D"mso-list:Ignore">&#8211;<span style=3D"font:7.0pt &quot;T=
imes New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">20 bits for module ID (=
assigned by IETF)</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:1.0in;text-indent:-.25in;mso-li=
st:l0 level2 lfo1">
<![if !supportLists]><span style=3D"font-family:&quot;Arial&quot;,sans-seri=
f"><span style=3D"mso-list:Ignore">&#8211;<span style=3D"font:7.0pt &quot;T=
imes New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">10 bits for data node I=
D (generated deterministically)</span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Based on this structure, we can reserve <span lang=
=3D"EN-US">module ID zero for aliases.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">If we want to minimize both the=
 network an node resources require by this alias mechanism, we can map an e=
ntire module to this space.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">This can be implemented by a si=
ngle integer resource (e.g. leaf alliassedModule { type uint32 } )<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">This approach require 4 bytes p=
er CoMI server accessed.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">If we want a more complex but m=
ore flexible aliases mechanism, your proposed map of (allias, YANG ID) seem=
 the solution.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">However, we have to consider th=
at this structure can be as large as
<u>1250 bytes per CoMI server accessed</u> if limited to 256 aliases.<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"mso-fareast-language:EN-CA"><img widt=
h=3D"120" height=3D"22" id=3D"Picture_x0020_2" src=3D"cid:image001.jpg@01D0=
9F7E.5DB89D20" alt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"><o:p></o:p></span=
></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA"=
>Michel Veillette<br>
System Architecture Director</span><span style=3D"mso-fareast-language:EN-C=
A"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA"=
>Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"mso-farea=
st-language:EN-CA"><a href=3D"http://www.trilliantinc.com/"><span style=3D"=
font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:blue">www.tr=
illiantinc.com</span></a></span><span style=3D"font-size:9.0pt;font-family:=
&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA">
 &nbsp; </span><span style=3D"mso-fareast-language:EN-CA"><o:p></o:p></span=
></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"mso-fareast-language:EN-CA"><o:p>&nbs=
p;</o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_CO2PR0601MB792FA702D901406C3D3A492FEB20CO2PR0601MB792na_--

--_004_CO2PR0601MB792FA702D901406C3D3A492FEB20CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Fri, 05 Jun 2015 15:17:41 GMT";
	modification-date="Fri, 05 Jun 2015 15:17:41 GMT"
Content-ID: <image001.jpg@01D09F7E.5DB89D20>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB792FA702D901406C3D3A492FEB20CO2PR0601MB792na_--


From nobody Fri Jun  5 09:02:37 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 750F41A00BF; Fri,  5 Jun 2015 09:02:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FXu4QCHWwyWu; Fri,  5 Jun 2015 09:02:33 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id B81BE1A00CC; Fri,  5 Jun 2015 09:02:32 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id D879630293; Fri,  5 Jun 2015 18:02:31 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id R2T3DdeTt_yc; Fri,  5 Jun 2015 18:02:31 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 011093029C; Fri,  5 Jun 2015 18:02:30 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id NIqkledJEbXS; Fri,  5 Jun 2015 18:02:30 +0200 (CEST)
Received: from [IPv6:2001:660:7301:3728:8140:4b9:74f3:569f] (passerelle-interne.enst-bretagne.fr [192.108.117.210]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id ACB9430293; Fri,  5 Jun 2015 18:02:30 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_3D90427C-166B-4250-BFCE-D0795524E6A9"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Fri, 5 Jun 2015 18:02:30 +0200
Message-Id: <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/atnpXqLVVhMdWcaGKeYhEe13VRE>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 16:02:35 -0000

--Apple-Mail=_3D90427C-166B-4250-BFCE-D0795524E6A9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Michel,


> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> Hi Alexander
> =20
> In your presentation at 6TiSCH, you propose the following data node ID =
structure.
> =20
> =E2=80=A2       32 bits YANG ID
> =E2=80=93      20 bits for module ID (assigned by IETF)
> =E2=80=93      10 bits for data node ID (generated deterministically)
> =20
> Based on this structure, we can reserve module ID zero for aliases.
> =20

I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.


> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
> This approach require 4 bytes per CoMI server accessed.
> =20

It is possible to map an entire module to the alias space and this is up =
to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.

If the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:
POST /mg/0
{
 "source_uri" : "/mg/BAA"
}

where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits =
set to 0). This way, the server will know: OK, get the alias mapping =
from the YANG scheme of module with ID =3D B (as defined by the IETF).=20=


Or, you can dynamically configure the mapping:
POST /mg/0
{
  YANG_id : alias,
  YANG_id : alias,
  YANG_id : alias
}

> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.

This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20

Best,
Alexander

> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>

--Apple-Mail=_3D90427C-166B-4250-BFCE-D0795524E6A9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Michel,</div><div class=3D""><br =
class=3D""></div><br class=3D""><div><blockquote type=3D"cite" =
class=3D""><div class=3D"">Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
&lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit =
:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Hi =
Alexander<o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">In your presentation at 6TiSCH, you propose the following =
data node ID structure.<o:p class=3D""></o:p></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><table class=3D"MsoTableGrid"=
 border=3D"1" cellspacing=3D"0" cellpadding=3D"0" =
style=3D"border-collapse: collapse; border: none;"><tbody class=3D""><tr =
class=3D""><td width=3D"623" valign=3D"top" style=3D"width: 467.5pt; =
border: 1pt solid windowtext; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: =
Calibri, sans-serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-family: Arial, sans-serif;" class=3D""><span =
class=3D"">=E2=80=A2<span style=3D"font-style: normal; font-variant: =
normal; font-weight: normal; font-size: 7pt; line-height: normal; =
font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
lang=3D"EN-US" class=3D"">32 bits YANG ID</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt 1in; =
font-size: 11pt; font-family: Calibri, sans-serif; text-indent: =
-0.25in;" class=3D""><span style=3D"font-family: Arial, sans-serif;" =
class=3D""><span class=3D"">=E2=80=93<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
lang=3D"EN-US" class=3D"">20 bits for module ID (assigned by =
IETF)</span><o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt 1in; font-size: 11pt; font-family: Calibri, sans-serif; =
text-indent: -0.25in;" class=3D""><span style=3D"font-family: Arial, =
sans-serif;" class=3D""><span class=3D"">=E2=80=93<span =
style=3D"font-style: normal; font-variant: normal; font-weight: normal; =
font-size: 7pt; line-height: normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
lang=3D"EN-US" class=3D"">10 bits for data node ID (generated =
deterministically)</span><o:p =
class=3D""></o:p></div></td></tr></tbody></table><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Based on this structure, we can reserve<span =
class=3D"Apple-converted-space">&nbsp;</span><span lang=3D"EN-US" =
class=3D"">module ID zero for aliases.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><span =
lang=3D"EN-US" =
class=3D"">&nbsp;</span></div></div></div></blockquote><div><br =
class=3D""></div><div>I was just summarizing what was discussed on the =
discussion in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=99s =
for purposes to be consistent with the YANG hash and I don=E2=80=99t =
mind keeping it 30 bits.</div><div><br class=3D""></div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><span =
lang=3D"EN-US" class=3D"">If we want to minimize both the network an =
node resources require by this alias mechanism, we can map an entire =
module to this space.<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><span lang=3D"EN-US" class=3D"">This =
can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><span lang=3D"EN-US" class=3D"">This =
approach require 4 bytes per CoMI server accessed.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><span =
lang=3D"EN-US" =
class=3D"">&nbsp;</span></div></div></div></blockquote><div><br =
class=3D""></div><div>It is possible to map an entire module to the =
alias space and this is up to the operator. However, if you load two =
modules which redefine the same alias you will loose the benefit from =
it. Maybe it would be interesting to be able to specify that you want =
the aliases from THIS specific module to be used.</div><div><br =
class=3D""></div><div>If the /mg/0 alias is reserved for managing the =
aliases, this could be simply saying:</div><div>POST =
/mg/0</div><div>{</div><div>&nbsp;"source_uri" : =
"/mg/BAA"</div><div>}</div><div><br class=3D""></div><div>where /mg/BAA =
is the YANG id of the module (20 bits module ID + 10 bits set to 0). =
This way, the server will know: OK, get the alias mapping from the YANG =
scheme of module with ID =3D B (as defined by the =
IETF).&nbsp;</div><div><br class=3D""></div><div>Or, you can dynamically =
configure the mapping:</div><div><div>POST =
/mg/0</div><div>{</div><div>&nbsp; YANG_id : alias,</div><div>&nbsp; =
YANG_id : alias,</div><div>&nbsp; YANG_id : =
alias</div><div>}</div></div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D""><div class=3D"WordSection1" style=3D"page: =
WordSection1; font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant: normal; font-weight: normal; letter-spacing: =
normal; line-height: normal; orphans: auto; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; widows: =
auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><span lang=3D"EN-US" class=3D"">If we =
want a more complex but more flexible aliases mechanism, your proposed =
map of (allias, YANG ID) seem the solution.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><span =
lang=3D"EN-US" class=3D"">However, we have to consider that this =
structure can be as large as<span =
class=3D"Apple-converted-space">&nbsp;</span><u class=3D"">1250 bytes =
per CoMI server accessed</u><span =
class=3D"Apple-converted-space">&nbsp;</span>if limited to 256 =
aliases.</span></div></div></div></blockquote><div><br =
class=3D""></div><div>This is assuming you need a separate mapping for =
each server. I would suppose that in a network you=E2=80=99ll have a =
single alias mapping (maybe two?) - after all, you=E2=80=99re trying to =
optimize the management of your devices (servers). So, typically you=E2=80=
=99d map all 6tisch devices with aliases 1-10 (channel, slot, etc.) and =
use that on them, and on all other you=E2=80=99d access the full =
ID.&nbsp;</div><div><br =
class=3D""></div><div>Best,</div><div>Alexander</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><span =
lang=3D"EN-US" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><span class=3D""><span =
id=3D"cid:image001.jpg@01D09F7E.5DB89D20">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></span></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt 8.1pt; font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><span class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 8.1pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
rgb(149, 79, 114); text-decoration: underline;" class=3D""><span =
style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><span class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color: rgb(149, 79, 114); text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: blue;" =
class=3D"">www.trilliantinc.com</span></a></span></div></td></tr></tbody><=
/table></div></div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_3D90427C-166B-4250-BFCE-D0795524E6A9--


From nobody Fri Jun  5 11:41:50 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D31421A1BAE; Fri,  5 Jun 2015 11:41:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1rnZAW0kGzhe; Fri,  5 Jun 2015 11:41:45 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0773.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:773]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5249C1A1BA9; Fri,  5 Jun 2015 11:41:45 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB790.namprd06.prod.outlook.com (10.141.247.142) with Microsoft SMTP Server (TLS) id 15.1.172.22; Fri, 5 Jun 2015 18:41:27 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Fri, 5 Jun 2015 18:41:27 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoA=
Date: Fri, 5 Jun 2015 18:41:26 +0000
Message-ID: <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu>
In-Reply-To: <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: telecom-bretagne.eu; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB790;
x-microsoft-antispam-prvs: <CO2PR0601MB790D48C39B0994825AC7DBFFEB20@CO2PR0601MB790.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(520003)(5005006)(3002001); SRVR:CO2PR0601MB790; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB790; 
x-forefront-prvs: 05986C03E0
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(38414003)(122556002)(2950100001)(18206015028)(99286002)(2656002)(99936001)(87936001)(19300405004)(77096005)(76176999)(50986999)(54356999)(40100003)(62966003)(77156002)(92566002)(86362001)(15975445007)(2900100001)(102836002)(19617315012)(19627595001)(74316001)(19580395003)(19580405001)(5002640100001)(5001960100002)(110136002)(5001920100001)(189998001)(46102003)(16236675004)(19625215002)(33656002)(17760045003)(66066001)(76576001)(7099028); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB790; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2015 18:41:26.9044 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB790
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/vQvNhJZOksEveKG2hHGIK6rfZ8E>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 18:41:49 -0000

--_004_CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20CO2PR0601MB792na_"

--_000_CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQWxleGFuZGVyDQoNCkkgaGF2ZSBzb21lIGNvbmNlcm5zIGFib3V0IGFsbG93aW5nIENvTUkg
Y2xpZW50KHMpIHRoZSBjb250cm9sIG9mIHRoZSBsaXN0IG9mIGFsaWFzZXMuDQpUaGlzIGFwcHJv
YWNoIHdvcmsgZmluZSBmb3IgdGhlIGZpcnN0IENvTUkgYXBwbGljYXRpb24gKGUuZy4gNlRpU0NI
KSBidXQgd2hhdCBkbyB3ZSBkbyB3aXRoIHRoZSBzdWJzZXF1ZW50IENvTUkgYXBwbGljYXRpb24/
DQoNCk9uZSBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBh
IGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5vZGUgSUQpIHRvIHRoZSBDb01JIHNlcnZlci4gSW4gdGhp
cyBjYXNlLCB0aGUgQ29NSSBjbGllbnQgbWlnaHQgcmVjZWl2ZSBhbiBlcnJvciBpZiBvbmUgb3Ig
bXVsdGlwbGUgb2YgdGhlc2UgYWxpYXNlcyBhcmUgYWxyZWFkeSByZXNlcnZlZC4NCg0KQSBzZWNv
bmQgcG9zc2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xpZW50IHNlbmQgYSBsaXN0
IG9mIChkYXRhIG5vZGUgSUQpIGFuZCBnZXQgYSBsaXN0IG9mIChhbGlhcywgZGF0YSBub2RlIElE
KSBmcm9tIHRoZSBDb01JIHNlcnZlci4gSW4gdGhpcyBjYXNlLCBDb01JIGNsaWVudHMgd2lsbCBo
YXZlIHRvIGRlYWwgd2l0aCBhIG1peCBwb3B1bGF0aW9uIG9mIGFsaWFzZXMuDQoNClRoZSBwcm9w
b3NlZCBzb2x1dGlvbiBuZWVkIHRvIHNjYWxlIHRvIGEgbXVsdGktdmVuZG9ycywgbXVsdGlwbGUg
YXBwbGljYXRpb25zIGVudmlyb25tZW50Lg0KV2l0aCB0aGlzIGlzIG1pbmQsIGRvIHlvdSBoYXZl
IGFueSBhbHRlcm5hdGl2ZSBzb2x1dGlvbnMgdG8gcHJvcG9zZT8NCg0KW2NpZDppbWFnZTAwMS5q
cGdAMDFDODY4RDguQkYwQkI3RTBdDQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRl
Y3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIz
Nw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxl
dHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRy
aWxsaWFudGluYy5jb20vPg0KDQoNCg0KRnJvbTogQWxleGFuZGVyIFBlbG92IFttYWlsdG86YWxl
eGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXVdDQpTZW50OiA1IGp1aW4gMjAxNSAxMjow
Mw0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9y
ZzsgY29yZUBpZXRmLm9yZw0KU3ViamVjdDogUmU6IFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXMN
Cg0KSGkgTWljaGVsLA0KDQoNCkxlIDUganVpbiAyMDE1IMOgIDE3OjE3LCBNaWNoZWwgVmVpbGxl
dHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208bWFpbHRvOk1pY2hlbC5WZWls
bGV0dGVAdHJpbGxpYW50aW5jLmNvbT4+IGEgw6ljcml0IDoNCg0KSGkgQWxleGFuZGVyDQoNCklu
IHlvdXIgcHJlc2VudGF0aW9uIGF0IDZUaVNDSCwgeW91IHByb3Bvc2UgdGhlIGZvbGxvd2luZyBk
YXRhIG5vZGUgSUQgc3RydWN0dXJlLg0KDQrigKIgICAgICAgMzIgYml0cyBZQU5HIElEDQrigJMg
ICAgICAyMCBiaXRzIGZvciBtb2R1bGUgSUQgKGFzc2lnbmVkIGJ5IElFVEYpDQrigJMgICAgICAx
MCBiaXRzIGZvciBkYXRhIG5vZGUgSUQgKGdlbmVyYXRlZCBkZXRlcm1pbmlzdGljYWxseSkNCg0K
DQpCYXNlZCBvbiB0aGlzIHN0cnVjdHVyZSwgd2UgY2FuIHJlc2VydmUgbW9kdWxlIElEIHplcm8g
Zm9yIGFsaWFzZXMuDQoNCg0KSSB3YXMganVzdCBzdW1tYXJpemluZyB3aGF0IHdhcyBkaXNjdXNz
ZWQgb24gdGhlIGRpc2N1c3Npb24gaW4gQ29NSS4gQWN0dWFsbHksIGl0IGlzIDMwIGJpdHMgWUFO
RyBJRCwgYnV0IHRoYXTigJlzIGZvciBwdXJwb3NlcyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhl
IFlBTkcgaGFzaCBhbmQgSSBkb27igJl0IG1pbmQga2VlcGluZyBpdCAzMCBiaXRzLg0KDQoNCg0K
SWYgd2Ugd2FudCB0byBtaW5pbWl6ZSBib3RoIHRoZSBuZXR3b3JrIGFuIG5vZGUgcmVzb3VyY2Vz
IHJlcXVpcmUgYnkgdGhpcyBhbGlhcyBtZWNoYW5pc20sIHdlIGNhbiBtYXAgYW4gZW50aXJlIG1v
ZHVsZSB0byB0aGlzIHNwYWNlLg0KVGhpcyBjYW4gYmUgaW1wbGVtZW50ZWQgYnkgYSBzaW5nbGUg
aW50ZWdlciByZXNvdXJjZSAoZS5nLiBsZWFmIGFsbGlhc3NlZE1vZHVsZSB7IHR5cGUgdWludDMy
IH0gKQ0KVGhpcyBhcHByb2FjaCByZXF1aXJlIDQgYnl0ZXMgcGVyIENvTUkgc2VydmVyIGFjY2Vz
c2VkLg0KDQoNCkl0IGlzIHBvc3NpYmxlIHRvIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoZSBh
bGlhcyBzcGFjZSBhbmQgdGhpcyBpcyB1cCB0byB0aGUgb3BlcmF0b3IuIEhvd2V2ZXIsIGlmIHlv
dSBsb2FkIHR3byBtb2R1bGVzIHdoaWNoIHJlZGVmaW5lIHRoZSBzYW1lIGFsaWFzIHlvdSB3aWxs
IGxvb3NlIHRoZSBiZW5lZml0IGZyb20gaXQuIE1heWJlIGl0IHdvdWxkIGJlIGludGVyZXN0aW5n
IHRvIGJlIGFibGUgdG8gc3BlY2lmeSB0aGF0IHlvdSB3YW50IHRoZSBhbGlhc2VzIGZyb20gVEhJ
UyBzcGVjaWZpYyBtb2R1bGUgdG8gYmUgdXNlZC4NCg0KSWYgdGhlIC9tZy8wIGFsaWFzIGlzIHJl
c2VydmVkIGZvciBtYW5hZ2luZyB0aGUgYWxpYXNlcywgdGhpcyBjb3VsZCBiZSBzaW1wbHkgc2F5
aW5nOg0KUE9TVCAvbWcvMA0Kew0KICJzb3VyY2VfdXJpIiA6ICIvbWcvQkFBIg0KfQ0KDQp3aGVy
ZSAvbWcvQkFBIGlzIHRoZSBZQU5HIGlkIG9mIHRoZSBtb2R1bGUgKDIwIGJpdHMgbW9kdWxlIElE
ICsgMTAgYml0cyBzZXQgdG8gMCkuIFRoaXMgd2F5LCB0aGUgc2VydmVyIHdpbGwga25vdzogT0ss
IGdldCB0aGUgYWxpYXMgbWFwcGluZyBmcm9tIHRoZSBZQU5HIHNjaGVtZSBvZiBtb2R1bGUgd2l0
aCBJRCA9IEIgKGFzIGRlZmluZWQgYnkgdGhlIElFVEYpLg0KDQpPciwgeW91IGNhbiBkeW5hbWlj
YWxseSBjb25maWd1cmUgdGhlIG1hcHBpbmc6DQpQT1NUIC9tZy8wDQp7DQogIFlBTkdfaWQgOiBh
bGlhcywNCiAgWUFOR19pZCA6IGFsaWFzLA0KICBZQU5HX2lkIDogYWxpYXMNCn0NCg0KDQpJZiB3
ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhpYmxlIGFsaWFzZXMgbWVjaGFuaXNt
LCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5HIElEKSBzZWVtIHRoZSBzb2x1dGlv
bi4NCkhvd2V2ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVyZSBjYW4g
YmUgYXMgbGFyZ2UgYXMgMTI1MCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQgaWYgbGlt
aXRlZCB0byAyNTYgYWxpYXNlcy4NCg0KVGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBhIHNlcGFy
YXRlIG1hcHBpbmcgZm9yIGVhY2ggc2VydmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBpbiBhIG5l
dHdvcmsgeW914oCZbGwgaGF2ZSBhIHNpbmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0d28/KSAt
IGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5aW5nIHRvIG9wdGltaXplIHRoZSBtYW5hZ2VtZW50IG9m
IHlvdXIgZGV2aWNlcyAoc2VydmVycykuIFNvLCB0eXBpY2FsbHkgeW914oCZZCBtYXAgYWxsIDZ0
aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMuKSBhbmQg
dXNlIHRoYXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0aGUgZnVs
bCBJRC4NCg0KQmVzdCwNCkFsZXhhbmRlcg0KDQoNCg0KPGltYWdlMDAxLmpwZz4NCg0KTWljaGVs
IFZlaWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KVHJpbGxpYW50IEluYy4N
ClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGlu
Yy5jb208bWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4NCnd3dy50cmls
bGlhbnRpbmMuY29tPGh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8+DQoNCg0K

--_000_CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20CO2PR0601MB792na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OkhlbHZldGljYTsNCglwYW5vc2UtMToyIDExIDYgNCAyIDIgMiAyIDIg
NDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0x
OjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJp
Ow0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30NCi8qIFN0eWxlIERlZmluaXRpb25z
ICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjow
aW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1m
YW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGlu
aw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRp
b246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXtt
c28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1
bmRlcmxpbmU7fQ0Kc3Bhbi5hcHBsZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6
YXBwbGUtY29udmVydGVkLXNwYWNlO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10
eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0K
CWNvbG9yOiMxRjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0
LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4
LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3Jk
U2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBt
c28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYi
IC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBl
bGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0K
PC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0i
RU4tQ0EiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rp
b24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5IaSBBbGV4YW5kZXI8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNv
LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkkgaGF2ZSBzb21lIGNvbmNlcm5zIGFib3V0IGFsbG93
aW5nIENvTUkgY2xpZW50KHMpIHRoZSBjb250cm9sIG9mIHRoZSBsaXN0IG9mIGFsaWFzZXMuPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRoaXMgYXBwcm9hY2gg
d29yayBmaW5lIGZvciB0aGUgZmlyc3QgQ29NSSBhcHBsaWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1
dCB3aGF0IGRvIHdlIGRvIHdpdGggdGhlIHN1YnNlcXVlbnQgQ29NSSBhcHBsaWNhdGlvbj88bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPk9uZSBwb3NzaWJsZSBzb2x1dGlv
biBpcyB0aGF0IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5v
ZGUgSUQpIHRvIHRoZSBDb01JIHNlcnZlci4gSW4gdGhpcyBjYXNlLCB0aGUgQ29NSSBjbGllbnQN
CiBtaWdodCByZWNlaXZlIGFuIGVycm9yIGlmIG9uZSBvciBtdWx0aXBsZSBvZiB0aGVzZSBhbGlh
c2VzIGFyZSBhbHJlYWR5IHJlc2VydmVkLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxh
bmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+QSBzZWNvbmQgcG9zc2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xp
ZW50IHNlbmQgYSBsaXN0IG9mIChkYXRhIG5vZGUgSUQpIGFuZCBnZXQgYSBsaXN0IG9mIChhbGlh
cywgZGF0YSBub2RlIElEKSBmcm9tIHRoZQ0KIENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIENv
TUkgY2xpZW50cyB3aWxsIGhhdmUgdG8gZGVhbCB3aXRoIGEgbWl4IHBvcHVsYXRpb24gb2YgYWxp
YXNlcy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRoZSBwcm9wb3Nl
ZCBzb2x1dGlvbiBuZWVkIHRvIHNjYWxlIHRvIGEgbXVsdGktdmVuZG9ycywgbXVsdGlwbGUgYXBw
bGljYXRpb25zIGVudmlyb25tZW50LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj5XaXRoIHRoaXMgaXMgbWluZCwgZG8geW91IGhhdmUgYW55IGFsdGVybmF0aXZl
IHNvbHV0aW9ucyB0byBwcm9wb3NlPzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPHRhYmxlIGNs
YXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRp
bmc9IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6
Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lk
dGg9IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNv
bGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0
OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj48aW1nIHdpZHRoPSIxMjAiIGhlaWdodD0iMjIiIGlkPSJQaWN0dXJlX3gwMDIwXzIiIHNy
Yz0iY2lkOmltYWdlMDAxLmpwZ0AwMUQwOUY5RC45NzNDNTVFMCIgYWx0PSJjaWQ6aW1hZ2UwMDEu
anBnQDAxQzg2OEQ4LkJGMEJCN0UwIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPHRk
IHdpZHRoPSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1cHQ7cGFkZGluZzow
aW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPk1p
Y2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4g
MjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNv
bSI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50
aW5jLmNvbTwvc3Bhbj48L2E+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+PGEgaHJlZj0iaHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLyI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlm
Ij53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj4NCiAmbmJzcDsgPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxl
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6
bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGlu
IDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IEFsZXhh
bmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1XQ0K
PGJyPg0KPGI+U2VudDo8L2I+IDUganVpbiAyMDE1IDEyOjAzPGJyPg0KPGI+VG86PC9iPiBNaWNo
ZWwgVmVpbGxldHRlPGJyPg0KPGI+Q2M6PC9iPiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9y
ZzsgY29yZUBpZXRmLm9yZzxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogUmVzZXJ2ZSBzcGFjZSBm
b3IgYWxpYXNlczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5IaSBNaWNoZWwsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9
Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+TGUgNSBqdWluIDIwMTUgw6AgMTc6MTcsIE1pY2hlbCBWZWlsbGV0dGUgJmx0
OzxhIGhyZWY9Im1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20iPk1pY2hl
bC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvYT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SGkg
QWxleGFuZGVyPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPklu
IHlvdXIgcHJlc2VudGF0aW9uIGF0IDZUaVNDSCwgeW91IHByb3Bvc2UgdGhlIGZvbGxvd2luZyBk
YXRhIG5vZGUgSUQgc3RydWN0dXJlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PG86cD48L286
cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3Jk
ZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgc3R5bGU9ImJvcmRlci1jb2xs
YXBzZTpjb2xsYXBzZSI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgd2lkdGg9IjYyMyIgdmFsaWduPSJ0
b3AiIHN0eWxlPSJ3aWR0aDo0NjcuNXB0O2JvcmRlcjpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3Bh
ZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW4iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNh
bnMtc2VyaWYiPuKAojwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVk
LXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYi
PjMyDQogYml0cyBZQU5HIElEPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDoxLjBpbiI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4yNWluIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj7i
gJM8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9z
cGFuPjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4yMA0KIGJpdHMgZm9yIG1v
ZHVsZSBJRCAoYXNzaWduZWQgYnkgSUVURik8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjEuMGluIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW4iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMt
c2VyaWYiPuKAkzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4m
bmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjEwDQogYml0
cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpPC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L3RkPg0KPC90
cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5CYXNlZCBvbiB0aGlzIHN0cnVj
dHVyZSwgd2UgY2FuIHJlc2VydmU8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4m
bmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPm1vZHVsZQ0K
IElEIHplcm8gZm9yIGFsaWFzZXMuPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD48
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkkgd2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3YXMgZGlz
Y3Vzc2VkIG9uIHRoZSBkaXNjdXNzaW9uIGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAzMCBiaXRz
IFlBTkcgSUQsIGJ1dCB0aGF04oCZcyBmb3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVudCB3aXRo
IHRoZSBZQU5HIGhhc2ggYW5kIEkgZG9u4oCZdCBtaW5kIGtlZXBpbmcgaXQgMzAgYml0cy48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+DQo8YnI+DQo8
bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdp
bi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5JZiB3ZSB3YW50IHRvIG1pbmltaXplIGJvdGggdGhl
IG5ldHdvcmsgYW4gbm9kZSByZXNvdXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFzIG1lY2hhbmlz
bSwgd2UgY2FuIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoaXMgc3BhY2UuPC9zcGFuPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+VGhpcyBjYW4gYmUg
aW1wbGVtZW50ZWQgYnkgYSBzaW5nbGUgaW50ZWdlciByZXNvdXJjZSAoZS5nLiBsZWFmIGFsbGlh
c3NlZE1vZHVsZSB7IHR5cGUgdWludDMyIH0gKTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPlRoaXMgYXBwcm9hY2ggcmVxdWlyZSA0IGJ5dGVz
IHBlciBDb01JIHNlcnZlciBhY2Nlc3NlZC48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SXQgaXMgcG9zc2libGUgdG8gbWFwIGFuIGVudGly
ZSBtb2R1bGUgdG8gdGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlzIGlzIHVwIHRvIHRoZSBvcGVyYXRv
ci4gSG93ZXZlciwgaWYgeW91IGxvYWQgdHdvIG1vZHVsZXMgd2hpY2ggcmVkZWZpbmUgdGhlIHNh
bWUgYWxpYXMgeW91IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQgZnJvbSBpdC4gTWF5YmUgaXQgd291
bGQgYmUgaW50ZXJlc3RpbmcgdG8gYmUgYWJsZSB0byBzcGVjaWZ5DQogdGhhdCB5b3Ugd2FudCB0
aGUgYWxpYXNlcyBmcm9tIFRISVMgc3BlY2lmaWMgbW9kdWxlIHRvIGJlIHVzZWQuPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPklmIHRoZSAvbWcv
MCBhbGlhcyBpcyByZXNlcnZlZCBmb3IgbWFuYWdpbmcgdGhlIGFsaWFzZXMsIHRoaXMgY291bGQg
YmUgc2ltcGx5IHNheWluZzo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPlBPU1QgL21nLzA8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPns8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZxdW90O3NvdXJjZV91cmkmcXVvdDsgOiAmcXVvdDsvbWcv
QkFBJnF1b3Q7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj59PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPndoZXJlIC9tZy9CQUEgaXMgdGhlIFlBTkcgaWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBt
b2R1bGUgSUQgJiM0MzsgMTAgYml0cyBzZXQgdG8gMCkuIFRoaXMgd2F5LCB0aGUgc2VydmVyIHdp
bGwga25vdzogT0ssIGdldCB0aGUgYWxpYXMgbWFwcGluZyBmcm9tIHRoZSBZQU5HIHNjaGVtZSBv
ZiBtb2R1bGUgd2l0aCBJRCA9IEIgKGFzIGRlZmluZWQgYnkgdGhlIElFVEYpLiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz
cDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5PciwgeW91
IGNhbiBkeW5hbWljYWxseSBjb25maWd1cmUgdGhlIG1hcHBpbmc6PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UE9TVCAvbWcvMDxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ezxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IFlBTkdf
aWQgOiBhbGlhcyw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPiZuYnNwOyBZQU5HX2lkIDogYWxpYXMsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgWUFOR19pZCA6IGFsaWFzPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj59PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJyPg0KPG86
cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4t
Ym90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SWYgd2Ugd2FudCBhIG1vcmUgY29tcGxleCBidXQgbW9y
ZSBmbGV4aWJsZSBhbGlhc2VzIG1lY2hhbmlzbSwgeW91ciBwcm9wb3NlZCBtYXAgb2YgKGFsbGlh
cywgWUFORyBJRCkgc2VlbSB0aGUgc29sdXRpb24uPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SG93ZXZlciwgd2UgaGF2ZSB0byBjb25zaWRl
ciB0aGF0IHRoaXMgc3RydWN0dXJlIGNhbiBiZSBhcyBsYXJnZSBhczxzcGFuIGNsYXNzPSJhcHBs
ZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48dT4xMjUwIGJ5dGVzIHBlciBDb01JIHNl
cnZlciBhY2Nlc3NlZDwvdT48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJz
cDs8L3NwYW4+aWYNCiBsaW1pdGVkIHRvIDI1NiBhbGlhc2VzLjwvc3Bhbj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGlzIGlzIGFzc3VtaW5nIHlvdSBuZWVk
IGEgc2VwYXJhdGUgbWFwcGluZyBmb3IgZWFjaCBzZXJ2ZXIuIEkgd291bGQgc3VwcG9zZSB0aGF0
IGluIGEgbmV0d29yayB5b3XigJlsbCBoYXZlIGEgc2luZ2xlIGFsaWFzIG1hcHBpbmcgKG1heWJl
IHR3bz8pIC0gYWZ0ZXIgYWxsLCB5b3XigJlyZSB0cnlpbmcgdG8gb3B0aW1pemUgdGhlIG1hbmFn
ZW1lbnQgb2YgeW91ciBkZXZpY2VzIChzZXJ2ZXJzKS4gU28sIHR5cGljYWxseQ0KIHlvdeKAmWQg
bWFwIGFsbCA2dGlzY2ggZGV2aWNlcyB3aXRoIGFsaWFzZXMgMS0xMCAoY2hhbm5lbCwgc2xvdCwg
ZXRjLikgYW5kIHVzZSB0aGF0IG9uIHRoZW0sIGFuZCBvbiBhbGwgb3RoZXIgeW914oCZZCBhY2Nl
c3MgdGhlIGZ1bGwgSUQuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPkJlc3QsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5BbGV4YW5kZXI8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJyPg0KPG86cD48L286cD48L3A+DQo8YmxvY2txdW90
ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJv
cmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iNzE3IiBzdHls
ZT0id2lkdGg6NTM3Ljc1cHQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0
ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1cHQiPg0KPHRkIHdpZHRoPSIxMzciIHN0eWxlPSJ3aWR0aDox
MDMuMXB0O2JvcmRlcjpub25lO2JvcmRlci1yaWdodDpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3Bh
ZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbHQ7aW1hZ2UwMDEuanBnJmd0OzxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iNTgwIiB2YWxpZ249
InRvcCIgc3R5bGU9IndpZHRoOjQzNC42NXB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDto
ZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0g
QXJjaGl0ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPlRyaWxsaWFudCBJbmMuPGJyPg0KVGVsOiA0
NTAtMzc1LTA1NTYgZXh0LiAyMzc8YnI+DQo8YSBocmVmPSJtYWlsdG86bWljaGVsLnZlaWxsZXR0
ZUB0cmlsbGlhbnRpbmMuY29tIj48c3BhbiBzdHlsZT0iY29sb3I6IzA1NjNDMSI+bWljaGVsLnZl
aWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
OjguMXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PGEgaHJlZj0i
aHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBw
dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj53d3cudHJpbGxpYW50
aW5jLmNvbTwvc3Bhbj48L2E+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L3RkPg0K
PC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Jv
ZHk+DQo8L2h0bWw+DQo=

--_000_CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20CO2PR0601MB792na_--

--_004_CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Fri, 05 Jun 2015 18:41:26 GMT";
	modification-date="Fri, 05 Jun 2015 18:41:26 GMT"
Content-ID: <image001.jpg@01D09F9D.973C55E0>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20CO2PR0601MB792na_--


From nobody Fri Jun  5 11:55:18 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DAF781A6EF0 for <core@ietfa.amsl.com>; Fri,  5 Jun 2015 11:55:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level: 
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1Kg0w-WJv-5x for <core@ietfa.amsl.com>; Fri,  5 Jun 2015 11:55:13 -0700 (PDT)
Received: from mail-la0-f50.google.com (mail-la0-f50.google.com [209.85.215.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5EDD01A3BA7 for <core@ietf.org>; Fri,  5 Jun 2015 11:55:12 -0700 (PDT)
Received: by labpy14 with SMTP id py14so60587351lab.0 for <core@ietf.org>; Fri, 05 Jun 2015 11:55:11 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=+R+wMpwrvQhzF6xubfhgTRXNZ4Hrac1P/N+xsjITOQo=; b=azIPvkcpCNcygJD/+nSEyEXGiwQLYqyrJGpW6k6WC19TTyyZ6ZQq5SdHri0B9zg46O ++YiyO9F5wLnGWv4vLyByCNUobRxDrECCRdcQCOkZnx4OrZUSQrmVT+1mpw8Do6OsA92 kZHLFUMlonzaYp/YZYV13H+3hdKBor1VpQ+kgpTtIChsmM4Ze37H7n0G+lK5C9ANgkIa f3iYV1Zbv5a2OiCEBuzbl16ePIB1f+Y0SRWkxdc7Dg1hbYLtBGM5wxhTnE70KKnLQ6wb v/LS3NeWT4VqM6H52IhaENohsgWDgeJusXWJUv/LFFunQAv5Oeub01tfeQv2/vjEk7Dt /iOQ==
X-Gm-Message-State: ALoCoQmcVMvKlFM45yvCk1GXBdmKKCtA+8C3teYMyn6id5yvb3/r01gICrwQ/RHlnBEzbmzdlPg/
MIME-Version: 1.0
X-Received: by 10.112.77.234 with SMTP id v10mr4570572lbw.119.1433530510816; Fri, 05 Jun 2015 11:55:10 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Fri, 5 Jun 2015 11:55:10 -0700 (PDT)
In-Reply-To: <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Fri, 5 Jun 2015 11:55:10 -0700
Message-ID: <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: multipart/related; boundary=001a11c3eba6dfc22e0517c9d45f
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/aevo_pU-_aZvHGKGjwYpfcA7Ibk>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 18:55:16 -0000

--001a11c3eba6dfc22e0517c9d45f
Content-Type: multipart/alternative; boundary=001a11c3eba6dfc22a0517c9d45e

--001a11c3eba6dfc22a0517c9d45e
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <
Michel.Veillette@trilliantinc.com> wrote:

>  Hi Alexander
>
>
>
> I have some concerns about allowing CoMI client(s) the control of the lis=
t
> of aliases.
>
> This approach work fine for the first CoMI application (e.g. 6TiSCH) but
> what do we do with the subsequent CoMI application?
>
>
>
> One possible solution is that each CoMI client send a list of (alias, dat=
a
> node ID) to the CoMI server. In this case, the CoMI client might receive =
an
> error if one or multiple of these aliases are already reserved.
>
>
>
> A second possible solution is that each CoMI client send a list of (data
> node ID) and get a list of (alias, data node ID) from the CoMI server. In
> this case, CoMI clients will have to deal with a mix population of aliase=
s.
>
>
>
> The proposed solution need to scale to a multi-vendors, multiple
> applications environment.
>
> With this is mind, do you have any alternative solutions to propose?
>
>
>


Does this approach allow each client to have a different set of aliases,
so the server has to maintain a configured mapping for each client?
This seems like a lot of overhead and NV-storage requirements
on the server.

Changing the schema identifiers based on which client is
sending the request seems like a complicated design change
from RESTCONF, NETCONF, or SNMP, where there is only
1 schema tree which is not dependent on the client identity.


Andy





>    [image: cid:image001.jpg@01C868D8.BF0BB7E0]
>
> Michel Veillette
> System Architecture Director
>
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
>
> www.trilliantinc.com
>
>
>
>
>
> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
> *Sent:* 5 juin 2015 12:03
> *To:* Michel Veillette
> *Cc:* Andy Bierman; 6tisch@ietf.org; core@ietf.org
> *Subject:* Re: Reserve space for aliases
>
>
>
> Hi Michel,
>
>
>
>
>
>  Le 5 juin 2015 =C3=A0 17:17, Michel Veillette <
> Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>
>
>
> Hi Alexander
>
>
>
> In your presentation at 6TiSCH, you propose the following data node ID
> structure.
>
>
>
> =E2=80=A2       32 bits YANG ID
>
> =E2=80=93      20 bits for module ID (assigned by IETF)
>
> =E2=80=93      10 bits for data node ID (generated deterministically)
>
>
>
> Based on this structure, we can reserve module ID zero for aliases.
>
>
>
>
>
> I was just summarizing what was discussed on the discussion in CoMI.
> Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be co=
nsistent
> with the YANG hash and I don=E2=80=99t mind keeping it 30 bits.
>
>
>
>
>
>   If we want to minimize both the network an node resources require by
> this alias mechanism, we can map an entire module to this space.
>
> This can be implemented by a single integer resource (e.g. leaf
> alliassedModule { type uint32 } )
>
> This approach require 4 bytes per CoMI server accessed.
>
>
>
>
>
> It is possible to map an entire module to the alias space and this is up
> to the operator. However, if you load two modules which redefine the same
> alias you will loose the benefit from it. Maybe it would be interesting t=
o
> be able to specify that you want the aliases from THIS specific module to
> be used.
>
>
>
> If the /mg/0 alias is reserved for managing the aliases, this could be
> simply saying:
>
> POST /mg/0
>
> {
>
>  "source_uri" : "/mg/BAA"
>
> }
>
>
>
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits
> set to 0). This way, the server will know: OK, get the alias mapping from
> the YANG scheme of module with ID =3D B (as defined by the IETF).
>
>
>
> Or, you can dynamically configure the mapping:
>
> POST /mg/0
>
> {
>
>   YANG_id : alias,
>
>   YANG_id : alias,
>
>   YANG_id : alias
>
> }
>
>
>
>   If we want a more complex but more flexible aliases mechanism, your
> proposed map of (allias, YANG ID) seem the solution.
>
> However, we have to consider that this structure can be as large as *1250
> bytes per CoMI server accessed* if limited to 256 aliases.
>
>
>
> This is assuming you need a separate mapping for each server. I would
> suppose that in a network you=E2=80=99ll have a single alias mapping (may=
be two?) -
> after all, you=E2=80=99re trying to optimize the management of your devic=
es
> (servers). So, typically you=E2=80=99d map all 6tisch devices with aliase=
s 1-10
> (channel, slot, etc.) and use that on them, and on all other you=E2=80=99=
d access
> the full ID.
>
>
>
> Best,
>
> Alexander
>
>
>
>
>
> <image001.jpg>
>
> Michel Veillette
> System Architecture Director
>
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
>
> www.trilliantinc.com
>
>
>

--001a11c3eba6dfc22a0517c9d45e
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <span dir=3D"ltr">&lt=
;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank">Mic=
hel.Veillette@trilliantinc.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">





<div lang=3D"EN-CA" link=3D"blue" vlink=3D"purple">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">Hi Alexander<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">I have some concerns about allowing C=
oMI client(s) the control of the list of aliases.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">This approach work fine for the first=
 CoMI application (e.g. 6TiSCH) but what do we do with the subsequent CoMI =
application?<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">One possible solution is that each Co=
MI client send a list of (alias, data node ID) to the CoMI server. In this =
case, the CoMI client
 might receive an error if one or multiple of these aliases are already res=
erved.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">A second possible solution is that ea=
ch CoMI client send a list of (data node ID) and get a list of (alias, data=
 node ID) from the
 CoMI server. In this case, CoMI clients will have to deal with a mix popul=
ation of aliases.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">The proposed solution need to scale t=
o a multi-vendors, multiple applications environment.<u></u><u></u></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">With this is mind, do you have any al=
ternative solutions to propose?<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0</span></p></div></div><=
/blockquote><div><br></div><div><br></div><div>Does this approach allow eac=
h client to have a different set of aliases,</div><div>so the server has to=
 maintain a configured mapping for each client?</div><div>This seems like a=
 lot of overhead and NV-storage requirements</div><div>on the server.</div>=
<div><br></div><div>Changing the schema identifiers based on which client i=
s</div><div>sending the request seems like a complicated design change</div=
><div>from RESTCONF, NETCONF, or SNMP, where there is only</div><div>1 sche=
ma tree which is not dependent on the client identity.</div><div><br></div>=
<div><br></div><div>Andy</div><div><br></div><div><br></div><div><br></div>=
<div>=C2=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang=3D"EN-CA" lin=
k=3D"blue" vlink=3D"purple"><div><p class=3D"MsoNormal"><span style=3D"font=
-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u><=
/u></span></p>
<div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><img width=3D"120" height=3D"22" src=
=3D"cid:image001.jpg@01D09F9D.973C55E0" alt=3D"cid:image001.jpg@01C868D8.BF=
0BB7E0"><u></u><u></u></span></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1f497d">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1f497d">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563c1">michel.veillette@trilliantinc.com</span></a><u></=
u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><a href=
=3D"http://www.trilliantinc.com/" target=3D"_blank"><span style=3D"font-siz=
e:9.0pt;font-family:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</spa=
n></a></span><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,s=
ans-serif;color:#1f497d">
 =C2=A0 </span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif;color:#1f497d"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Alexander Pelov [mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.=
eu" target=3D"_blank">alexander.pelov@telecom-bretagne.eu</a>]
<br>
<b>Sent:</b> 5 juin 2015 12:03<br>
<b>To:</b> Michel Veillette<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org" target=3D"_blan=
k">6tisch@ietf.org</a>; <a href=3D"mailto:core@ietf.org" target=3D"_blank">=
core@ietf.org</a><br>
<b>Subject:</b> Re: Reserve space for aliases<u></u><u></u></span></p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">Hi Michel,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal">Le 5 juin 2015 =C3=A0 17:17, Michel Veillette &lt;<a=
 href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank">Michel=
.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :<u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Hi Alexander<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">In your presentation at 6TiSCH, you propose the fol=
lowing data node ID structure.<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" style=3D"border-col=
lapse:collapse">
<tbody>
<tr>
<td width=3D"623" valign=3D"top" style=3D"width:467.5pt;border:solid window=
text 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<div style=3D"margin-left:.5in">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=E2=80=A2</span><span style=3D"font-size:7.0pt">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></span><span lang=3D"EN=
-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">=
32
 bits YANG ID</span><span style=3D"font-size:11.0pt;font-family:&quot;Calib=
ri&quot;,sans-serif"><u></u><u></u></span></p>
</div>
<div style=3D"margin-left:1.0in">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=E2=80=93</span><span style=3D"font-size:7.0pt">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></span><span lang=3D"EN-US" s=
tyle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">20
 bits for module ID (assigned by IETF)</span><span style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,sans-serif"><u></u><u></u></span></p>
</div>
<div style=3D"margin-left:1.0in">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=E2=80=93</span><span style=3D"font-size:7.0pt">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></span><span lang=3D"EN-US" s=
tyle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">10
 bits for data node ID (generated deterministically)</span><span style=3D"f=
ont-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><u></u><u></u><=
/span></p>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Based on this structure, we can reserve<span>=C2=A0=
</span></span><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&q=
uot;Calibri&quot;,sans-serif">module
 ID zero for aliases.</span><span style=3D"font-size:11.0pt;font-family:&qu=
ot;Calibri&quot;,sans-serif"><u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif">=C2=A0</span><span style=3D"font-siz=
e:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><u></u><u></u></span><=
/p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I was just summarizing what was discussed on the dis=
cussion in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=99s for pu=
rposes to be consistent with the YANG hash and I don=E2=80=99t mind keeping=
 it 30 bits.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<p class=3D"MsoNormal"><br>
<br>
<u></u><u></u></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif">If we want to minimize both the netw=
ork an node resources require by this alias mechanism, we can map an entire=
 module to this space.</span><span style=3D"font-size:11.0pt;font-family:&q=
uot;Calibri&quot;,sans-serif"><u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif">This can be implemented by a single =
integer resource (e.g. leaf alliassedModule { type uint32 } )</span><span s=
tyle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><u></u=
><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif">This approach require 4 bytes per Co=
MI server accessed.</span><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif"><u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif">=C2=A0</span><span style=3D"font-siz=
e:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"><u></u><u></u></span><=
/p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">It is possible to map an entire module to the alias =
space and this is up to the operator. However, if you load two modules whic=
h redefine the same alias you will loose the benefit from it. Maybe it woul=
d be interesting to be able to specify
 that you want the aliases from THIS specific module to be used.<u></u><u><=
/u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">If the /mg/0 alias is reserved for managing the alia=
ses, this could be simply saying:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">POST /mg/0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">{<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0&quot;source_uri&quot; : &quot;/mg/BAA&quot;<u=
></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">}<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">where /mg/BAA is the YANG id of the module (20 bits =
module ID + 10 bits set to 0). This way, the server will know: OK, get the =
alias mapping from the YANG scheme of module with ID =3D B (as defined by t=
he IETF).=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Or, you can dynamically configure the mapping:<u></u=
><u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">POST /mg/0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">{<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 YANG_id : alias,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 YANG_id : alias,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 YANG_id : alias<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">}<u></u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal"><br>
<br>
<u></u><u></u></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif">If we want a more complex but more f=
lexible aliases mechanism, your proposed map of (allias, YANG ID) seem the =
solution.</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&q=
uot;,sans-serif"><u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif">However, we have to consider that th=
is structure can be as large as<span>=C2=A0</span><u>1250 bytes per CoMI se=
rver accessed</u><span>=C2=A0</span>if
 limited to 256 aliases.</span><span style=3D"font-size:11.0pt;font-family:=
&quot;Calibri&quot;,sans-serif"><u></u><u></u></span></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">This is assuming you need a separate mapping for eac=
h server. I would suppose that in a network you=E2=80=99ll have a single al=
ias mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the=
 management of your devices (servers). So, typically
 you=E2=80=99d map all 6tisch devices with aliases 1-10 (channel, slot, etc=
.) and use that on them, and on all other you=E2=80=99d access the full ID.=
=C2=A0<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Best,<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Alexander<u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><br>
<br>
<u></u><u></u></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0<u></u><u></u></span></p>
</div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&lt;image001.jpg&gt;<u></u><u></u></span></p>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif">Michel Veillette<br>
System Architecture Director</span><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif"><u></u><u></u></span></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563c1">michel.veillette@trilliantinc.com</span></a></spa=
n><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-seri=
f"><u></u><u></u></span></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><a href=3D"http://www.trilliantinc.com/" target=3D"=
_blank"><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-s=
erif">www.trilliantinc.com</span></a><u></u><u></u></span></p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>

</blockquote></div><br></div></div>

--001a11c3eba6dfc22a0517c9d45e--
--001a11c3eba6dfc22e0517c9d45f
Content-Type: image/jpeg; name="image001.jpg"
Content-Disposition: inline; filename="image001.jpg"
Content-Transfer-Encoding: base64
Content-ID: <image001.jpg@01D09F9D.973C55E0>
X-Attachment-Id: 6b547a599f629bd2_0.1

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z
--001a11c3eba6dfc22e0517c9d45f--


From nobody Fri Jun  5 13:10:20 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7D6941B318C; Fri,  5 Jun 2015 13:10:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ILGpYvnbVKtv; Fri,  5 Jun 2015 13:10:13 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id CE6151B313F; Fri,  5 Jun 2015 13:10:12 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id EFA422325CA; Fri,  5 Jun 2015 22:10:11 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id k5vLaPyncAM6; Fri,  5 Jun 2015 22:10:08 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 3CC822325CE; Fri,  5 Jun 2015 22:10:08 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 49BvjcXPoNLQ; Fri,  5 Jun 2015 22:10:08 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id B54032325CA; Fri,  5 Jun 2015 22:10:07 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_4A799077-422A-48ED-8BBA-051667E9D633"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com>
Date: Fri, 5 Jun 2015 22:10:06 +0200
Message-Id: <855287F5-C374-4C79-973C-169CD0F90D9A@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ODo2Y3v1tQyA0-aRQ_kKQ7G3AEo>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 20:10:18 -0000

--Apple-Mail=_4A799077-422A-48ED-8BBA-051667E9D633
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Andy,

You are right that if we start considering multiple clients, each of =
which trying to use its aliases the things become.. les optimal. And if =
no caution is taken - can spell trouble.

The point is, your default behavior should be to use the normal ID. =
However, in some cases, you may decide that you=E2=80=99re going to be =
having quite a lot of exchanges with the same ID, so yes, you can =
redefine the alias mapping.=20

However, you are right that we need to take care of eventual race =
conditions. Indeed, in 6TiSCH and other managed networks it may not =
happen (which alone is sufficient for me to have this =C2=AB golden =C2=BB=
 IDs be left out of the =C2=AB randomly allocated =C2=BB, or =C2=AB =
eternally locked to a specific ID =C2=BB resources).

Having the /mg/A resource provide the meta-information can help solve a =
lot (all?) of the problems. (in my past mails I referred this as /mg/0 =
but I meant /mg/A, sorry)

The first requirement for a client is to query the /mg/A resource.=20
There, you can get the meta-data concerning the aliases, including the =
hash of the alias mapping, the mapping itself (if necessary), and the =
updater (identified by a token). I=E2=80=99m wondering if there could be =
added a validity of the mapping. A client can change the mapping ONLY if =
it is the last updater (hash+token match), or if the validity has =
expired. If the server has a way of keeping time it can track the =
validity itself. Otherwise, it can be a constant datetime after which =
the resource is considered expired and any client can update the =
resource.=20

Just to be sure, I=E2=80=99m talking about clients, which are capable =
enough to keep track of some context about the servers it controls OR a =
client in a particular kind of network, which knows that some things are =
just expected to be there and there is no way for them to happer =
otherwise.=20

*****************
** The default way of doing things should always be to use the normal =
IDs.** If you want to be optimal (in some way), get /mg/A, and if you =
understand it - use it. If there=E2=80=99s nothing, POST whatever you =
like, but be sure that you have enough resources to remember what =
you=E2=80=99re doing.=20
*=20
* If you want to set a different configuration in each of your 10M =
nodes, then well you should have the storage to remember all of them.
*****************

By the way, I was thinking of something quite interesting, which can =
come supplement the node ID aliasing. Actually, I think that the 20 bits =
+ 10 bits YANG id really opens a lot of perspectives (will try to write =
that up tomorrow).

The major point is that when the data node ID =3D 0, the module ID can =
be used as a resource to obtain meta-information on the module. For =
example, its version. This way, if you update a YANG module with a new =
one, which only appends elements, you will not need to request a new =
managed ID. GET /mg/moduleID?keys=3Dversion (with data node ID=3D0) and =
you know what is your module really capable of.=20

Also, the special place of /mg/A can actually become an entry point for =
most of the information related to CoMI (to be discussed.. I have no =
strong feelings on this). It can, for example, provide the mod.uri, and =
other information. The only information that remains truly necessary to =
be fixed in /.well-known/core is the entry point to the CoMI interface =
(e.g. /mg). Afterwards, everything can be determined from /mg/A with =
queries (/mg/A?keys=3Dmod.uri+alias.uri)

Best,
Alexander

PS.
As if data node aliasing is not enough=E2=80=A6 module ID aliasing (this =
one is really very low in my priorities and I=E2=80=99m mentioning it =
only for completeness):

The first 12 bits take 2 URI characters and 2 bytes in CBOR. Having 10 =
bits for the data node ID leaves 2 interesting bits in the module ID =
part=E2=80=A6 So we can have module aliases as well (albeit only 3).

That is, in URI encoding,=20
0x00000000-0x000003FF -> data node aliasing
0x00000400-0x000007FF -> aliased module 1
0x00000800-0x00000BFF -> aliased module 2
0x00000C00-0x00000BFF-> aliased module 3

Implementation-wise, its really easy: upon request, if the module ID =3D =
aliased module ID 1, replace the module ID part, so no need to map the =
entire module ID / data node ID space.=20

But really, that much optimization? Even if it seems straightforward, I =
would like to see use cases that could benefit from this before actually =
considering it.



> Le 5 juin 2015 =C3=A0 20:55, Andy Bierman <andy@yumaworks.com> a =
=C3=A9crit :
>=20
>=20
>=20
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
> Hi Alexander
>=20
> =20
>=20
> I have some concerns about allowing CoMI client(s) the control of the =
list of aliases.
>=20
> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
>=20
> =20
>=20
> One possible solution is that each CoMI client send a list of (alias, =
data node ID) to the CoMI server. In this case, the CoMI client might =
receive an error if one or multiple of these aliases are already =
reserved.
>=20
> =20
>=20
> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
>=20
> =20
>=20
> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
>=20
> With this is mind, do you have any alternative solutions to propose?
>=20
> =20
>=20
>=20
>=20
> Does this approach allow each client to have a different set of =
aliases,
> so the server has to maintain a configured mapping for each client?
> This seems like a lot of overhead and NV-storage requirements
> on the server.
>=20
> Changing the schema identifiers based on which client is
> sending the request seems like a complicated design change
> from RESTCONF, NETCONF, or SNMP, where there is only
> 1 schema tree which is not dependent on the client identity.
>=20
>=20
> Andy
>=20
>=20
>=20
> =20
>=20
> <image001.jpg>
>=20
> Michel Veillette
> System Architecture Director
>=20
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
>=20
> =20
>=20
> =20
>=20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 12:03
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
>=20
> =20
>=20
> Hi Michel,
>=20
> =20
>=20
> =20
>=20
> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
>=20
> =20
>=20
> Hi Alexander
>=20
> =20
>=20
> In your presentation at 6TiSCH, you propose the following data node ID =
structure.
>=20
> =20
>=20
> =E2=80=A2       32 bits YANG ID
>=20
> =E2=80=93      20 bits for module ID (assigned by IETF)
>=20
> =E2=80=93      10 bits for data node ID (generated deterministically)
>=20
> =20
>=20
> Based on this structure, we can reserve module ID zero for aliases.
>=20
> =20
>=20
> =20
>=20
> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
>=20
> =20
>=20
>=20
>=20
>=20
> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
>=20
> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
>=20
> This approach require 4 bytes per CoMI server accessed.
>=20
> =20
>=20
> =20
>=20
> It is possible to map an entire module to the alias space and this is =
up to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
>=20
> =20
>=20
> If the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:
>=20
> POST /mg/0
>=20
> {
>=20
>  "source_uri" : "/mg/BAA"
>=20
> }
>=20
> =20
>=20
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
>=20
> =20
>=20
> Or, you can dynamically configure the mapping:
>=20
> POST /mg/0
>=20
> {
>=20
>   YANG_id : alias,
>=20
>   YANG_id : alias,
>=20
>   YANG_id : alias
>=20
> }
>=20
>=20
>=20
>=20
> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
>=20
> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
>=20
> =20
>=20
> This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
>=20
> =20
>=20
> Best,
>=20
> Alexander
>=20
>=20
>=20
>=20
> =20
>=20
> <image001.jpg>
>=20
> Michel Veillette
> System Architecture Director
>=20
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>

--Apple-Mail=_4A799077-422A-48ED-8BBA-051667E9D633
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Andy,</div><div class=3D""><br =
class=3D""></div><div class=3D"">You are right that if we start =
considering multiple clients, each of which trying to use its aliases =
the things become.. les optimal. And if no caution is taken - can spell =
trouble.</div><div class=3D""><br class=3D""></div><div class=3D"">The =
point is, your default behavior should be to use the normal ID. However, =
in some cases, you may decide that you=E2=80=99re going to be having =
quite a lot of exchanges with the same ID, so yes, you can redefine the =
alias mapping.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">However, you are right that we need to take care of eventual =
race conditions. Indeed, in 6TiSCH and other managed networks it may not =
happen (which alone is sufficient for me to have this =
=C2=AB&nbsp;golden&nbsp;=C2=BB IDs be left out of the =C2=AB randomly =
allocated&nbsp;=C2=BB, or =C2=AB eternally locked to a specific ID =C2=BB =
resources).</div><div class=3D""><br class=3D""></div><div =
class=3D"">Having the /mg/A resource provide the meta-information can =
help solve a lot (all?) of the problems. (in my past mails I referred =
this as /mg/0 but I meant /mg/A, sorry)</div><div class=3D""><br =
class=3D""></div><div class=3D"">The first requirement for a client is =
to query the /mg/A resource.&nbsp;</div><div class=3D"">There, you can =
get the meta-data concerning the aliases, including the hash of the =
alias mapping, the mapping itself (if necessary), and the updater =
(identified by a token). I=E2=80=99m wondering if there could be added a =
validity of the mapping. A client can change the mapping ONLY if it is =
the last updater (hash+token match), or if the validity has expired. If =
the server has a way of keeping time it can track the validity itself. =
Otherwise, it can be a constant datetime after which the resource is =
considered expired and any client can update the =
resource.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">Just to be sure, I=E2=80=99m talking about clients, which are =
capable enough to keep track of some context about the servers it =
controls OR a client in a particular kind of network, which knows that =
some things are just expected to be there and there is no way for them =
to happer otherwise.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">*****************</div><div class=3D"">** The default way of =
doing things should always be to use the normal IDs.** If you want to be =
optimal (in some way), get /mg/A, and if you understand it - use it. If =
there=E2=80=99s nothing, POST whatever you like, but be sure that you =
have enough resources to remember what you=E2=80=99re =
doing.&nbsp;</div><div class=3D"">*&nbsp;</div><div class=3D"">* If you =
want to set a different configuration in each of your 10M nodes, then =
well you should have the storage to remember all of them.</div><div =
class=3D"">*****************</div><div class=3D""><br =
class=3D""></div><div class=3D"">By the way, I was thinking of something =
quite interesting, which can come supplement the node ID aliasing. =
Actually, I think that the 20 bits + 10 bits YANG id really opens a lot =
of perspectives (will try to write that up tomorrow).</div><div =
class=3D""><br class=3D""></div><div class=3D"">The major point is that =
when the data node ID =3D 0, the module ID can be used as a resource to =
obtain meta-information on the module. For example, its version. This =
way, if you update a YANG module with a new one, which only appends =
elements, you will not need to request a new managed ID. GET =
/mg/moduleID?keys=3Dversion (with data node ID=3D0) and you know what is =
your module really capable of.&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">Also, the special place of /mg/A can =
actually become an entry point for most of the information related to =
CoMI (to be discussed.. I have no strong feelings on this). It can, for =
example, provide the mod.uri, and other information. The only =
information that remains truly necessary to be fixed in =
/.well-known/core is the entry point to the CoMI interface (e.g. /mg). =
Afterwards, everything can be determined from /mg/A with queries =
(/mg/A?keys=3Dmod.uri+alias.uri)</div><div class=3D""><br =
class=3D""></div><div class=3D"">Best,</div><div =
class=3D"">Alexander</div><div class=3D""><br class=3D""></div><div =
class=3D"">PS.</div><div class=3D"">As if data node aliasing is not =
enough=E2=80=A6 module ID aliasing (this one is really very low in my =
priorities and I=E2=80=99m mentioning it only for =
completeness):</div><div class=3D""><br class=3D""></div><div =
class=3D"">The first 12 bits take 2 URI characters and 2 bytes in CBOR. =
Having 10 bits for the data node ID leaves 2 interesting bits in the =
module ID part=E2=80=A6 So we can have module aliases as well (albeit =
only 3).</div><div class=3D""><br class=3D""></div><div class=3D"">That =
is, in URI encoding,&nbsp;</div><div class=3D"">0x00000000-0x000003FF =
-&gt; data node aliasing</div><div class=3D"">0x00000400-0x000007FF =
-&gt; aliased module 1</div><div class=3D"">0x00000800-0x00000BFF -&gt; =
aliased module 2</div><div class=3D"">0x00000C00-0x00000BFF-&gt; aliased =
module 3</div><div class=3D""><br class=3D""></div><div =
class=3D"">Implementation-wise, its really easy: upon request, if the =
module ID =3D aliased module ID 1, replace the module ID part, so no =
need to map the entire module ID / data node ID space.&nbsp;</div><div =
class=3D""><br class=3D""></div><div class=3D"">But really, that much =
optimization? Even if it seems straightforward, I would like to see use =
cases that could benefit from this before actually considering =
it.</div><div class=3D""><br class=3D""></div><div class=3D""><br =
class=3D""></div><br class=3D""><div><blockquote type=3D"cite" =
class=3D""><div class=3D"">Le 5 juin 2015 =C3=A0 20:55, Andy Bierman =
&lt;<a href=3D"mailto:andy@yumaworks.com" =
class=3D"">andy@yumaworks.com</a>&gt; a =C3=A9crit :</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><br =
class=3D"Apple-interchange-newline"><br style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant: normal; font-weight: =
normal; letter-spacing: normal; line-height: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: =
0px;" class=3D""><div class=3D"gmail_quote" style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;">On Fri, Jun 5, 2015 at 11:41 AM, Michel =
Veillette<span class=3D"Apple-converted-space">&nbsp;</span><span =
dir=3D"ltr" class=3D"">&lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt;</span><span =
class=3D"Apple-converted-space">&nbsp;</span>wrote:<br =
class=3D""><blockquote class=3D"gmail_quote" style=3D"margin: 0px 0px =
0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, =
204); border-left-style: solid; padding-left: 1ex;"><div lang=3D"EN-CA" =
link=3D"blue" vlink=3D"purple" class=3D""><div class=3D""><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">Hi Alexander<u =
class=3D""></u><u class=3D""></u></span></p><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></span></p><p class=3D"MsoNormal"><span style=3D"font-size:=
 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">I have some concerns about allowing CoMI client(s) the =
control of the list of aliases.<u class=3D""></u><u =
class=3D""></u></span></p><p class=3D"MsoNormal"><span style=3D"font-size:=
 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">This approach work fine for the first CoMI application (e.g. =
6TiSCH) but what do we do with the subsequent CoMI application?<u =
class=3D""></u><u class=3D""></u></span></p><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></span></p><p class=3D"MsoNormal"><span style=3D"font-size:=
 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">One possible solution is that each CoMI client send a list of =
(alias, data node ID) to the CoMI server. In this case, the CoMI client =
might receive an error if one or multiple of these aliases are already =
reserved.<u class=3D""></u><u class=3D""></u></span></p><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D""><u =
class=3D""></u>&nbsp;<u class=3D""></u></span></p><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">A second =
possible solution is that each CoMI client send a list of (data node ID) =
and get a list of (alias, data node ID) from the CoMI server. In this =
case, CoMI clients will have to deal with a mix population of aliases.<u =
class=3D""></u><u class=3D""></u></span></p><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></span></p><p class=3D"MsoNormal"><span style=3D"font-size:=
 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">The proposed solution need to scale to a multi-vendors, =
multiple applications environment.<u class=3D""></u><u =
class=3D""></u></span></p><p class=3D"MsoNormal"><span style=3D"font-size:=
 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">With this is mind, do you have any alternative solutions to =
propose?<u class=3D""></u><u class=3D""></u></span></p><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D""><u =
class=3D""></u>&nbsp;</span></p></div></div></blockquote><div =
class=3D""><br class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">Does this approach allow each client to have a different set =
of aliases,</div><div class=3D"">so the server has to maintain a =
configured mapping for each client?</div><div class=3D"">This seems like =
a lot of overhead and NV-storage requirements</div><div class=3D"">on =
the server.</div><div class=3D""><br class=3D""></div><div =
class=3D"">Changing the schema identifiers based on which client =
is</div><div class=3D"">sending the request seems like a complicated =
design change</div><div class=3D"">from RESTCONF, NETCONF, or SNMP, =
where there is only</div><div class=3D"">1 schema tree which is not =
dependent on the client identity.</div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">Andy</div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">&nbsp;<br class=3D""></div><blockquote class=3D"gmail_quote" =
style=3D"margin: 0px 0px 0px 0.8ex; border-left-width: 1px; =
border-left-color: rgb(204, 204, 204); border-left-style: solid; =
padding-left: 1ex;"><div lang=3D"EN-CA" link=3D"blue" vlink=3D"purple" =
class=3D""><div class=3D""><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><u class=3D""></u></span></p><div =
class=3D""><table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: collapse;" =
class=3D""><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><span =
id=3D"cid:image001.jpg@01D09F9D.973C55E0">&lt;image001.jpg&gt;</span><u =
class=3D""></u><u class=3D""></u></span></p></td><td width=3D"580" =
valign=3D"top" style=3D"width: 434.65pt; padding: 0in 5.4pt; height: =
49.05pt;" class=3D""><p class=3D"MsoNormal" style=3D"margin-left: =
8.1pt;"><span style=3D"font-size: 9pt; font-family: Arial, sans-serif; =
color: rgb(31, 73, 125);" class=3D"">Michel Veillette<br class=3D"">System=
 Architecture Director</span><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D""><u =
class=3D""></u><u class=3D""></u></span></p><p class=3D"MsoNormal" =
style=3D"margin-left: 8.1pt;"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
target=3D"_blank" class=3D""><span style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a><u =
class=3D""></u><u class=3D""></u></span></p><p class=3D"MsoNormal" =
style=3D"margin-left: 8.1pt;"><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.trilliantinc.com/" target=3D"_blank" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span><span style=3D"font-size:=
 9pt; font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></td></tr></tbody></table><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D""><u =
class=3D""></u>&nbsp;<u class=3D""></u></span></p></div><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D""><u =
class=3D""></u>&nbsp;<u class=3D""></u></span></p><div class=3D""><div =
style=3D"border-style: solid none none; border-top-color: rgb(225, 225, =
225); border-top-width: 1pt; padding: 3pt 0in 0in;" class=3D""><p =
class=3D"MsoNormal"><b class=3D""><span lang=3D"EN-US" style=3D"font-size:=
 11pt; font-family: Calibri, sans-serif;" class=3D"">From:</span></b><span=
 lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D""><span =
class=3D"Apple-converted-space">&nbsp;</span>Alexander Pelov [mailto:<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
class=3D"">alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"Apple-converted-space">&nbsp;</span>5 =
juin 2015 12:03<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Andy Bierman;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" target=3D"_blank" =
class=3D"">6tisch@ietf.org</a>;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" target=3D"_blank" =
class=3D"">core@ietf.org</a><br class=3D""><b class=3D"">Subject:</b><span=
 class=3D"Apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases<u class=3D""></u><u class=3D""></u></span></p></div></div><p =
class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u class=3D""></u></p><div =
class=3D""><p class=3D"MsoNormal">Hi Michel,<u class=3D""></u><u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal"><u =
class=3D""></u>&nbsp;<u class=3D""></u></p></div><p class=3D"MsoNormal"><u=
 class=3D""></u>&nbsp;<u class=3D""></u></p><div class=3D""><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><p class=3D"MsoNormal">Le 5 juin 2015 =C3=A0 17:17, Michel =
Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
target=3D"_blank" class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =
=C3=A9crit :<u class=3D""></u><u class=3D""></u></p></div><p =
class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u class=3D""></u></p><div =
class=3D""><div class=3D""><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Hi=
 Alexander<u class=3D""></u><u class=3D""></u></span></p></div><div =
class=3D""><p class=3D"MsoNormal"><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></span></p></div><div class=3D""><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">In your presentation at 6TiSCH, you =
propose the following data node ID structure.<u class=3D""></u><u =
class=3D""></u></span></p></div><div class=3D""><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></span></p></div><table border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" style=3D"border-collapse: collapse;" class=3D""><tbody =
class=3D""><tr class=3D""><td width=3D"623" valign=3D"top" style=3D"width:=
 467.5pt; border: 1pt solid windowtext; padding: 0in 5.4pt;" =
class=3D""><div style=3D"margin-left: 0.5in;" class=3D""><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=A2</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">32 bits YANG =
ID</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div><div style=3D"margin-left: 1in;" =
class=3D""><p class=3D"MsoNormal"><span style=3D"font-size: 11pt; =
font-family: Arial, sans-serif;" class=3D"">=E2=80=93</span><span =
style=3D"font-size: 7pt;" class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">20 bits for module =
ID (assigned by IETF)</span><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div><div style=3D"margin-left: 1in;" =
class=3D""><p class=3D"MsoNormal"><span style=3D"font-size: 11pt; =
font-family: Arial, sans-serif;" class=3D"">=E2=80=93</span><span =
style=3D"font-size: 7pt;" class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">10 bits for data =
node ID (generated deterministically)</span><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div></td></tr></tbody></table><div =
class=3D""><p class=3D"MsoNormal"><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></span></p></div><div class=3D""><p =
class=3D"MsoNormal"><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">Based on this structure, we can =
reserve<span class=3D"">&nbsp;</span></span><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">module ID zero for aliases.</span><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div><div class=3D""><p =
class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><u=
 class=3D""></u><u class=3D""></u></span></p></div></div></blockquote><div=
 class=3D""><p class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">I was =
just summarizing what was discussed on the discussion in CoMI. Actually, =
it is 30 bits YANG ID, but that=E2=80=99s for purposes to be consistent =
with the YANG hash and I don=E2=80=99t mind keeping it 30 bits.<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u class=3D""></u></p></div><p=
 class=3D"MsoNormal"><br class=3D""><br class=3D""><u class=3D""></u><u =
class=3D""></u></p><blockquote style=3D"margin-top: 5pt; margin-bottom: =
5pt;" class=3D""><div class=3D""><div class=3D""><p =
class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">If we want to minimize =
both the network an node resources require by this alias mechanism, we =
can map an entire module to this space.</span><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div><div class=3D""><p =
class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">This can be implemented by =
a single integer resource (e.g. leaf alliassedModule { type uint32 } =
)</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div><div class=3D""><p =
class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">This approach require 4 =
bytes per CoMI server accessed.</span><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div><div class=3D""><p =
class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><u=
 class=3D""></u><u class=3D""></u></span></p></div></div></blockquote><div=
 class=3D""><p class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">It is =
possible to map an entire module to the alias space and this is up to =
the operator. However, if you load two modules which redefine the same =
alias you will loose the benefit from it. Maybe it would be interesting =
to be able to specify that you want the aliases from THIS specific =
module to be used.<u class=3D""></u><u class=3D""></u></p></div><div =
class=3D""><p class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">If the =
/mg/0 alias is reserved for managing the aliases, this could be simply =
saying:<u class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal">POST /mg/0<u class=3D""></u><u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">{<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal">&nbsp;"source_uri" : "/mg/BAA"<u class=3D""></u><u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">}<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">where =
/mg/BAA is the YANG id of the module (20 bits module ID + 10 bits set to =
0). This way, the server will know: OK, get the alias mapping from the =
YANG scheme of module with ID =3D B (as defined by the IETF).&nbsp;<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">Or, you =
can dynamically configure the mapping:<u class=3D""></u><u =
class=3D""></u></p></div><div class=3D""><div class=3D""><p =
class=3D"MsoNormal">POST /mg/0<u class=3D""></u><u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">{<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal">&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>YANG_id : alias,<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal">&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>YANG_id : alias,<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal">&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span>YANG_id : alias<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal">}<u class=3D""></u><u =
class=3D""></u></p></div></div><p class=3D"MsoNormal"><br class=3D""><br =
class=3D""><u class=3D""></u><u class=3D""></u></p><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><p class=3D"MsoNormal"><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">If=
 we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><u=
 class=3D""></u><u class=3D""></u></span></p></div><div class=3D""><p =
class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">However, we have to =
consider that this structure can be as large as<span =
class=3D"">&nbsp;</span><u class=3D"">1250 bytes per CoMI server =
accessed</u><span class=3D"">&nbsp;</span>if limited to 256 =
aliases.</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div></div></blockquote><div class=3D""><p =
class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">This is =
assuming you need a separate mapping for each server. I would suppose =
that in a network you=E2=80=99ll have a single alias mapping (maybe =
two?) - after all, you=E2=80=99re trying to optimize the management of =
your devices (servers). So, typically you=E2=80=99d map all 6tisch =
devices with aliases 1-10 (channel, slot, etc.) and use that on them, =
and on all other you=E2=80=99d access the full ID.&nbsp;<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal"><u class=3D""></u>&nbsp;<u =
class=3D""></u></p></div><div class=3D""><p class=3D"MsoNormal">Best,<u =
class=3D""></u><u class=3D""></u></p></div><div class=3D""><p =
class=3D"MsoNormal">Alexander<u class=3D""></u><u =
class=3D""></u></p></div><p class=3D"MsoNormal"><br class=3D""><br =
class=3D""><u class=3D""></u><u class=3D""></u></p><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></span></p></div><table border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" width=3D"717" style=3D"width: 537.75pt; =
border-collapse: collapse;" class=3D""><tbody class=3D""><tr =
style=3D"height: 49.05pt;" class=3D""><td width=3D"137" style=3D"width: =
103.1pt; border-style: none solid none none; border-right-color: =
windowtext; border-right-width: 1pt; padding: 0in 5.4pt; height: =
49.05pt;" class=3D""><div class=3D""><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&lt;image001.jpg&gt;<u class=3D""></u><u =
class=3D""></u></span></p></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><p =
class=3D"MsoNormal"><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif;" class=3D"">Michel Veillette<br class=3D"">System =
Architecture Director</span><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><u class=3D""></u><u =
class=3D""></u></span></p></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><p class=3D"MsoNormal"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank" =
class=3D""><span style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><u=
 class=3D""></u><u class=3D""></u></span></p></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><p class=3D"MsoNormal"><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><a=
 href=3D"http://www.trilliantinc.com/" target=3D"_blank" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span></p></div></td></tr></tbo=
dy></table></div></blockquote></div></div></div></blockquote></div></div><=
/blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_4A799077-422A-48ED-8BBA-051667E9D633--




From nobody Fri Jun  5 14:44:15 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EE2211A8766; Fri,  5 Jun 2015 14:44:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pxB6S29MEiRf; Fri,  5 Jun 2015 14:44:06 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0773.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::773]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 52D801A8746; Fri,  5 Jun 2015 14:44:05 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB789.namprd06.prod.outlook.com (10.141.247.141) with Microsoft SMTP Server (TLS) id 15.1.172.22; Fri, 5 Jun 2015 21:43:43 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0172.012; Fri, 5 Jun 2015 21:43:43 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>, Andy Bierman <andy@yumaworks.com>
Thread-Topic: Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAAACnfUAAAEoyEA=
Date: Fri, 5 Jun 2015 21:43:42 +0000
Message-ID: <CO2PR0601MB792CF17A97F6B962676F06CFEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <855287F5-C374-4C79-973C-169CD0F90D9A@telecom-bretagne.eu>
In-Reply-To: <855287F5-C374-4C79-973C-169CD0F90D9A@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: telecom-bretagne.eu; dkim=none (message not signed) header.d=none;
x-originating-ip: [24.225.215.88]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB789;
x-microsoft-antispam-prvs: <CO2PR0601MB789C17A9CB59E2C866B9C36FEB20@CO2PR0601MB789.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB789; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB789; 
x-forefront-prvs: 05986C03E0
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(51444003)(38414003)(52034003)(24454002)(43544003)(377454003)(19300405004)(77156002)(62966003)(102836002)(15975445007)(40100003)(33656002)(74316001)(92566002)(5002640100001)(2950100001)(2900100001)(18206015028)(19625215002)(19627595001)(19617315012)(99286002)(2656002)(5001960100002)(86362001)(19580405001)(5001770100001)(105586002)(93886004)(19580395003)(189998001)(66066001)(87936001)(122556002)(77096005)(46102003)(54356999)(99936001)(76576001)(17760045003)(16236675004)(50986999)(76176999)(7099028)(579004)(559001)(19627235001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB789; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB792CF17A97F6B962676F06CFEB20CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2015 21:43:42.1367 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB789
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/3AfadGuVseC9NGoMOgAaaREs1wE>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2015 21:44:11 -0000

--_004_CO2PR0601MB792CF17A97F6B962676F06CFEB20CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB792CF17A97F6B962676F06CFEB20CO2PR0601MB792na_"

--_000_CO2PR0601MB792CF17A97F6B962676F06CFEB20CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQWxleGFuZGVyIGFuZCBIaSBBbmR5DQoNCkkgdGhpbmtzIHdlIGNhbiBhdm9pZCB0aGUgc3Vw
cG9ydCBvZiBhIGNvbXBsZXggYWxpYXNlcyBtZWNoYW5pc20gYW5kIHN0aWxsIGFyY2hpdmUgdGhl
IHNhbWUgbGV2ZWwgb2YgbWVzc2FnZSBjb21wcmVzc2lvbi4NClRoZSBzb2x1dGlvbiBjb25zaXN0
cyBvZiBzdXBwb3J0aW5nIHR3byBmb3JtcyBvZiBkYXRhIG5vZGUgaWRlbnRpZmllciwgdGhlIHNh
bWUgd2F5IGFzIFJFU1Rjb25mLiAoZS5nLiBpZXRmLXN5c3RlbTpjdXJyZW50LWRhdGV0aW1lIHZz
LiBjdXJyZW50LWRhdGV0aW1lKQ0KDQpUaGUgbG9uZyBmb3JtIHdpbGwgY29uc2lzdCBvZiB0aGUg
SUQgZm9ybWF0IHByb3Bvc2VkIGJ5IEFsZXhhbmRlciAgKDIgcmVzZXJ2ZWQgYml0cywgMjAgYml0
cyBtb2R1bGUgSUQsIDEwIGJpdHMgZGF0YSBub2RlIElEKS4NClRoZSBzaG9ydCBmb3JtIHdpbGwg
Y2Fycnkgb25seSB0aGUgZGF0YSBub2RlIElEICAoMTAgYml0cyBkYXRhIG5vZGUgSUQpLg0KVGhl
IGxvbmcgZm9ybSB3aWxsIGJlIHVzZWQgb25seSB3aGVuIG5lZWRlZC4NCg0KTGV0IGFzc3VtZSB3
ZSBoYXZlIHRoZXNlIHR3byBtb2R1bGVzOg0KDQptb2R1bGUgYSB7DQoNCiAgY29udGFpbmVyIGNv
bnRhaW5lckEgew0KICAgIGxlYWYgbGVhZkExIHsgdHlwZSBzdHJpbmd9LA0KICAgIGxlYWYgbGVh
ZkEyIHsgdHlwZSBzdHJpbmd9DQogIH0NCn0NCg0KbW9kdWxlIGIgew0KICBpbXBvcnQgYSB7IHBy
ZWZpeCBhOyB9DQoNCiAgYXVnbWVudCAiL2E6Y29udGFpbmVyQSIgew0KICAgIGxlYWYgbGVhZkEz
IHsgdHlwZSBzdHJpbmd9DQogIH0NCn0NCg0KTGV0IGFzc3VtZSB3ZSBoYXZlIHRoZXNlIGFzc2ln
bmVkIElEczoNCg0KDQoNCklEDQoNCkZ1bGwgSUQNCg0KQmFzZTY0DQoNCm1vZHVsZSBhDQoNCjI1
DQoNCg0KDQoNCg0KY29udGFpbmVyIGNvbnRhaW5lckENCg0KMQ0KDQoxMTAwMTAwMDAwMDAwMDEg
PSAyNTYwMQ0KDQpHUUINCg0KbGVhZiBsZWFmQTENCg0KMg0KDQoxMTAwMTAwMDAwMDAwMTAgPSAy
NTYwMg0KDQpHUUMNCg0KbGVhZiBsZWFmQTINCg0KMw0KDQoxMTAwMTAwMDAwMDAwMTEgPSAyNTYw
Mg0KDQpHUUQNCg0KbW9kdWxlIGINCg0KMjYNCg0KDQoNCg0KDQpsZWFmIGxlYWZBMw0KDQoxDQoN
CjExMDEwMDAwMDAwMDAwMSA9IDI2NjI1DQoNCkdnQg0KDQoNCkEgR0VUIGNhbiBiZSBpbXBsZW1l
bnRlZCBhcyBmb2xsb3c6DQoNClJFUTogR0VUIGV4YW1wbGUuY29tL21nL0dRQg0KDQpSRVM6IDIu
MDUgQ29udGVudCAoQ29udGVudC1Gb3JtYXQ6IGFwcGxpY2F0aW9uL2Nib3IpDQp7DQogIDEgOiB7
DQogICAgMiA6ICIgbGVhZkExIHZhbHVlIiwNCiAgICAzIDogIiBsZWFmQTIgdmFsdWUgIg0KICAg
IDI2NjI1IDogIiBsZWFmQTMgdmFsdWUgIg0KICB9DQp9DQoNCkEgUFVUIGNhbiBiZSBpbXBsZW1l
bnRlZCBhcyBmb2xsb3c6DQoNClJFUTogUFVUIGV4YW1wbGUuY29tL21nDQp7DQogIDI1NjAxIDog
ew0KICAgIDIgOiAiIGxlYWZBMSB2YWx1ZSIsDQogICAgMyA6ICIgbGVhZkEyIHZhbHVlICINCiAg
ICAyNjYyNSA6ICIgbGVhZkEzIHZhbHVlICINCiAgfQ0KfQ0KDQpSRVM6IDIuMDUgT2sNCg0KDQpb
Y2lkOmltYWdlMDAxLmpwZ0AwMUM4NjhEOC5CRjBCQjdFMF0NCg0KTWljaGVsIFZlaWxsZXR0ZQ0K
U3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KVHJpbGxpYW50IEluYy4NClRlbDogNDUwLTM3
NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208bWFpbHRv
Om1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4NCnd3dy50cmlsbGlhbnRpbmMuY29t
PGh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8+DQoNCg0KDQpGcm9tOiBBbGV4YW5kZXIgUGVs
b3YgW21haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldV0NClNlbnQ6IDUg
anVpbiAyMDE1IDE2OjEwDQpUbzogQW5keSBCaWVybWFuDQpDYzogTWljaGVsIFZlaWxsZXR0ZTsg
NnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQpTdWJqZWN0OiBSZTogUmVzZXJ2ZSBzcGFj
ZSBmb3IgYWxpYXNlcw0KDQpIaSBBbmR5LA0KDQpZb3UgYXJlIHJpZ2h0IHRoYXQgaWYgd2Ugc3Rh
cnQgY29uc2lkZXJpbmcgbXVsdGlwbGUgY2xpZW50cywgZWFjaCBvZiB3aGljaCB0cnlpbmcgdG8g
dXNlIGl0cyBhbGlhc2VzIHRoZSB0aGluZ3MgYmVjb21lLi4gbGVzIG9wdGltYWwuIEFuZCBpZiBu
byBjYXV0aW9uIGlzIHRha2VuIC0gY2FuIHNwZWxsIHRyb3VibGUuDQoNClRoZSBwb2ludCBpcywg
eW91ciBkZWZhdWx0IGJlaGF2aW9yIHNob3VsZCBiZSB0byB1c2UgdGhlIG5vcm1hbCBJRC4gSG93
ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1heSBkZWNpZGUgdGhhdCB5b3XigJlyZSBnb2luZyB0
byBiZSBoYXZpbmcgcXVpdGUgYSBsb3Qgb2YgZXhjaGFuZ2VzIHdpdGggdGhlIHNhbWUgSUQsIHNv
IHllcywgeW91IGNhbiByZWRlZmluZSB0aGUgYWxpYXMgbWFwcGluZy4NCg0KSG93ZXZlciwgeW91
IGFyZSByaWdodCB0aGF0IHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIGV2ZW50dWFsIHJhY2UgY29u
ZGl0aW9ucy4gSW5kZWVkLCBpbiA2VGlTQ0ggYW5kIG90aGVyIG1hbmFnZWQgbmV0d29ya3MgaXQg
bWF5IG5vdCBoYXBwZW4gKHdoaWNoIGFsb25lIGlzIHN1ZmZpY2llbnQgZm9yIG1lIHRvIGhhdmUg
dGhpcyDCqyBnb2xkZW4gwrsgSURzIGJlIGxlZnQgb3V0IG9mIHRoZSDCqyByYW5kb21seSBhbGxv
Y2F0ZWQgwrssIG9yIMKrIGV0ZXJuYWxseSBsb2NrZWQgdG8gYSBzcGVjaWZpYyBJRCDCuyByZXNv
dXJjZXMpLg0KDQpIYXZpbmcgdGhlIC9tZy9BIHJlc291cmNlIHByb3ZpZGUgdGhlIG1ldGEtaW5m
b3JtYXRpb24gY2FuIGhlbHAgc29sdmUgYSBsb3QgKGFsbD8pIG9mIHRoZSBwcm9ibGVtcy4gKGlu
IG15IHBhc3QgbWFpbHMgSSByZWZlcnJlZCB0aGlzIGFzIC9tZy8wIGJ1dCBJIG1lYW50IC9tZy9B
LCBzb3JyeSkNCg0KVGhlIGZpcnN0IHJlcXVpcmVtZW50IGZvciBhIGNsaWVudCBpcyB0byBxdWVy
eSB0aGUgL21nL0EgcmVzb3VyY2UuDQpUaGVyZSwgeW91IGNhbiBnZXQgdGhlIG1ldGEtZGF0YSBj
b25jZXJuaW5nIHRoZSBhbGlhc2VzLCBpbmNsdWRpbmcgdGhlIGhhc2ggb2YgdGhlIGFsaWFzIG1h
cHBpbmcsIHRoZSBtYXBwaW5nIGl0c2VsZiAoaWYgbmVjZXNzYXJ5KSwgYW5kIHRoZSB1cGRhdGVy
IChpZGVudGlmaWVkIGJ5IGEgdG9rZW4pLiBJ4oCZbSB3b25kZXJpbmcgaWYgdGhlcmUgY291bGQg
YmUgYWRkZWQgYSB2YWxpZGl0eSBvZiB0aGUgbWFwcGluZy4gQSBjbGllbnQgY2FuIGNoYW5nZSB0
aGUgbWFwcGluZyBPTkxZIGlmIGl0IGlzIHRoZSBsYXN0IHVwZGF0ZXIgKGhhc2grdG9rZW4gbWF0
Y2gpLCBvciBpZiB0aGUgdmFsaWRpdHkgaGFzIGV4cGlyZWQuIElmIHRoZSBzZXJ2ZXIgaGFzIGEg
d2F5IG9mIGtlZXBpbmcgdGltZSBpdCBjYW4gdHJhY2sgdGhlIHZhbGlkaXR5IGl0c2VsZi4gT3Ro
ZXJ3aXNlLCBpdCBjYW4gYmUgYSBjb25zdGFudCBkYXRldGltZSBhZnRlciB3aGljaCB0aGUgcmVz
b3VyY2UgaXMgY29uc2lkZXJlZCBleHBpcmVkIGFuZCBhbnkgY2xpZW50IGNhbiB1cGRhdGUgdGhl
IHJlc291cmNlLg0KDQpKdXN0IHRvIGJlIHN1cmUsIEnigJltIHRhbGtpbmcgYWJvdXQgY2xpZW50
cywgd2hpY2ggYXJlIGNhcGFibGUgZW5vdWdoIHRvIGtlZXAgdHJhY2sgb2Ygc29tZSBjb250ZXh0
IGFib3V0IHRoZSBzZXJ2ZXJzIGl0IGNvbnRyb2xzIE9SIGEgY2xpZW50IGluIGEgcGFydGljdWxh
ciBraW5kIG9mIG5ldHdvcmssIHdoaWNoIGtub3dzIHRoYXQgc29tZSB0aGluZ3MgYXJlIGp1c3Qg
ZXhwZWN0ZWQgdG8gYmUgdGhlcmUgYW5kIHRoZXJlIGlzIG5vIHdheSBmb3IgdGhlbSB0byBoYXBw
ZXIgb3RoZXJ3aXNlLg0KDQoqKioqKioqKioqKioqKioqKg0KKiogVGhlIGRlZmF1bHQgd2F5IG9m
IGRvaW5nIHRoaW5ncyBzaG91bGQgYWx3YXlzIGJlIHRvIHVzZSB0aGUgbm9ybWFsIElEcy4qKiBJ
ZiB5b3Ugd2FudCB0byBiZSBvcHRpbWFsIChpbiBzb21lIHdheSksIGdldCAvbWcvQSwgYW5kIGlm
IHlvdSB1bmRlcnN0YW5kIGl0IC0gdXNlIGl0LiBJZiB0aGVyZeKAmXMgbm90aGluZywgUE9TVCB3
aGF0ZXZlciB5b3UgbGlrZSwgYnV0IGJlIHN1cmUgdGhhdCB5b3UgaGF2ZSBlbm91Z2ggcmVzb3Vy
Y2VzIHRvIHJlbWVtYmVyIHdoYXQgeW914oCZcmUgZG9pbmcuDQoqDQoqIElmIHlvdSB3YW50IHRv
IHNldCBhIGRpZmZlcmVudCBjb25maWd1cmF0aW9uIGluIGVhY2ggb2YgeW91ciAxME0gbm9kZXMs
IHRoZW4gd2VsbCB5b3Ugc2hvdWxkIGhhdmUgdGhlIHN0b3JhZ2UgdG8gcmVtZW1iZXIgYWxsIG9m
IHRoZW0uDQoqKioqKioqKioqKioqKioqKg0KDQpCeSB0aGUgd2F5LCBJIHdhcyB0aGlua2luZyBv
ZiBzb21ldGhpbmcgcXVpdGUgaW50ZXJlc3RpbmcsIHdoaWNoIGNhbiBjb21lIHN1cHBsZW1lbnQg
dGhlIG5vZGUgSUQgYWxpYXNpbmcuIEFjdHVhbGx5LCBJIHRoaW5rIHRoYXQgdGhlIDIwIGJpdHMg
KyAxMCBiaXRzIFlBTkcgaWQgcmVhbGx5IG9wZW5zIGEgbG90IG9mIHBlcnNwZWN0aXZlcyAod2ls
bCB0cnkgdG8gd3JpdGUgdGhhdCB1cCB0b21vcnJvdykuDQoNClRoZSBtYWpvciBwb2ludCBpcyB0
aGF0IHdoZW4gdGhlIGRhdGEgbm9kZSBJRCA9IDAsIHRoZSBtb2R1bGUgSUQgY2FuIGJlIHVzZWQg
YXMgYSByZXNvdXJjZSB0byBvYnRhaW4gbWV0YS1pbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLiBG
b3IgZXhhbXBsZSwgaXRzIHZlcnNpb24uIFRoaXMgd2F5LCBpZiB5b3UgdXBkYXRlIGEgWUFORyBt
b2R1bGUgd2l0aCBhIG5ldyBvbmUsIHdoaWNoIG9ubHkgYXBwZW5kcyBlbGVtZW50cywgeW91IHdp
bGwgbm90IG5lZWQgdG8gcmVxdWVzdCBhIG5ldyBtYW5hZ2VkIElELiBHRVQgL21nL21vZHVsZUlE
P2tleXM9dmVyc2lvbiAod2l0aCBkYXRhIG5vZGUgSUQ9MCkgYW5kIHlvdSBrbm93IHdoYXQgaXMg
eW91ciBtb2R1bGUgcmVhbGx5IGNhcGFibGUgb2YuDQoNCkFsc28sIHRoZSBzcGVjaWFsIHBsYWNl
IG9mIC9tZy9BIGNhbiBhY3R1YWxseSBiZWNvbWUgYW4gZW50cnkgcG9pbnQgZm9yIG1vc3Qgb2Yg
dGhlIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gQ29NSSAodG8gYmUgZGlzY3Vzc2VkLi4gSSBoYXZl
IG5vIHN0cm9uZyBmZWVsaW5ncyBvbiB0aGlzKS4gSXQgY2FuLCBmb3IgZXhhbXBsZSwgcHJvdmlk
ZSB0aGUgbW9kLnVyaSwgYW5kIG90aGVyIGluZm9ybWF0aW9uLiBUaGUgb25seSBpbmZvcm1hdGlv
biB0aGF0IHJlbWFpbnMgdHJ1bHkgbmVjZXNzYXJ5IHRvIGJlIGZpeGVkIGluIC8ud2VsbC1rbm93
bi9jb3JlIGlzIHRoZSBlbnRyeSBwb2ludCB0byB0aGUgQ29NSSBpbnRlcmZhY2UgKGUuZy4gL21n
KS4gQWZ0ZXJ3YXJkcywgZXZlcnl0aGluZyBjYW4gYmUgZGV0ZXJtaW5lZCBmcm9tIC9tZy9BIHdp
dGggcXVlcmllcyAoL21nL0E/a2V5cz1tb2QudXJpK2FsaWFzLnVyaSkNCg0KQmVzdCwNCkFsZXhh
bmRlcg0KDQpQUy4NCkFzIGlmIGRhdGEgbm9kZSBhbGlhc2luZyBpcyBub3QgZW5vdWdo4oCmIG1v
ZHVsZSBJRCBhbGlhc2luZyAodGhpcyBvbmUgaXMgcmVhbGx5IHZlcnkgbG93IGluIG15IHByaW9y
aXRpZXMgYW5kIEnigJltIG1lbnRpb25pbmcgaXQgb25seSBmb3IgY29tcGxldGVuZXNzKToNCg0K
VGhlIGZpcnN0IDEyIGJpdHMgdGFrZSAyIFVSSSBjaGFyYWN0ZXJzIGFuZCAyIGJ5dGVzIGluIENC
T1IuIEhhdmluZyAxMCBiaXRzIGZvciB0aGUgZGF0YSBub2RlIElEIGxlYXZlcyAyIGludGVyZXN0
aW5nIGJpdHMgaW4gdGhlIG1vZHVsZSBJRCBwYXJ04oCmIFNvIHdlIGNhbiBoYXZlIG1vZHVsZSBh
bGlhc2VzIGFzIHdlbGwgKGFsYmVpdCBvbmx5IDMpLg0KDQpUaGF0IGlzLCBpbiBVUkkgZW5jb2Rp
bmcsDQoweDAwMDAwMDAwLTB4MDAwMDAzRkYgLT4gZGF0YSBub2RlIGFsaWFzaW5nDQoweDAwMDAw
NDAwLTB4MDAwMDA3RkYgLT4gYWxpYXNlZCBtb2R1bGUgMQ0KMHgwMDAwMDgwMC0weDAwMDAwQkZG
IC0+IGFsaWFzZWQgbW9kdWxlIDINCjB4MDAwMDBDMDAtMHgwMDAwMEJGRi0+IGFsaWFzZWQgbW9k
dWxlIDMNCg0KSW1wbGVtZW50YXRpb24td2lzZSwgaXRzIHJlYWxseSBlYXN5OiB1cG9uIHJlcXVl
c3QsIGlmIHRoZSBtb2R1bGUgSUQgPSBhbGlhc2VkIG1vZHVsZSBJRCAxLCByZXBsYWNlIHRoZSBt
b2R1bGUgSUQgcGFydCwgc28gbm8gbmVlZCB0byBtYXAgdGhlIGVudGlyZSBtb2R1bGUgSUQgLyBk
YXRhIG5vZGUgSUQgc3BhY2UuDQoNCkJ1dCByZWFsbHksIHRoYXQgbXVjaCBvcHRpbWl6YXRpb24/
IEV2ZW4gaWYgaXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkLCBJIHdvdWxkIGxpa2UgdG8gc2VlIHVz
ZSBjYXNlcyB0aGF0IGNvdWxkIGJlbmVmaXQgZnJvbSB0aGlzIGJlZm9yZSBhY3R1YWxseSBjb25z
aWRlcmluZyBpdC4NCg0KDQoNCkxlIDUganVpbiAyMDE1IMOgIDIwOjU1LCBBbmR5IEJpZXJtYW4g
PGFuZHlAeXVtYXdvcmtzLmNvbTxtYWlsdG86YW5keUB5dW1hd29ya3MuY29tPj4gYSDDqWNyaXQg
Og0KDQoNCg0KT24gRnJpLCBKdW4gNSwgMjAxNSBhdCAxMTo0MSBBTSwgTWljaGVsIFZlaWxsZXR0
ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpNaWNoZWwuVmVpbGxl
dHRlQHRyaWxsaWFudGluYy5jb20+PiB3cm90ZToNCkhpIEFsZXhhbmRlcg0KDQpJIGhhdmUgc29t
ZSBjb25jZXJucyBhYm91dCBhbGxvd2luZyBDb01JIGNsaWVudChzKSB0aGUgY29udHJvbCBvZiB0
aGUgbGlzdCBvZiBhbGlhc2VzLg0KVGhpcyBhcHByb2FjaCB3b3JrIGZpbmUgZm9yIHRoZSBmaXJz
dCBDb01JIGFwcGxpY2F0aW9uIChlLmcuIDZUaVNDSCkgYnV0IHdoYXQgZG8gd2UgZG8gd2l0aCB0
aGUgc3Vic2VxdWVudCBDb01JIGFwcGxpY2F0aW9uPw0KDQpPbmUgcG9zc2libGUgc29sdXRpb24g
aXMgdGhhdCBlYWNoIENvTUkgY2xpZW50IHNlbmQgYSBsaXN0IG9mIChhbGlhcywgZGF0YSBub2Rl
IElEKSB0byB0aGUgQ29NSSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwgdGhlIENvTUkgY2xpZW50IG1p
Z2h0IHJlY2VpdmUgYW4gZXJyb3IgaWYgb25lIG9yIG11bHRpcGxlIG9mIHRoZXNlIGFsaWFzZXMg
YXJlIGFscmVhZHkgcmVzZXJ2ZWQuDQoNCkEgc2Vjb25kIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRo
YXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAoZGF0YSBub2RlIElEKSBhbmQgZ2V0
IGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgZnJvbSB0aGUgQ29NSSBzZXJ2ZXIuIElu
IHRoaXMgY2FzZSwgQ29NSSBjbGllbnRzIHdpbGwgaGF2ZSB0byBkZWFsIHdpdGggYSBtaXggcG9w
dWxhdGlvbiBvZiBhbGlhc2VzLg0KDQpUaGUgcHJvcG9zZWQgc29sdXRpb24gbmVlZCB0byBzY2Fs
ZSB0byBhIG11bHRpLXZlbmRvcnMsIG11bHRpcGxlIGFwcGxpY2F0aW9ucyBlbnZpcm9ubWVudC4N
CldpdGggdGhpcyBpcyBtaW5kLCBkbyB5b3UgaGF2ZSBhbnkgYWx0ZXJuYXRpdmUgc29sdXRpb25z
IHRvIHByb3Bvc2U/DQoNCg0KDQpEb2VzIHRoaXMgYXBwcm9hY2ggYWxsb3cgZWFjaCBjbGllbnQg
dG8gaGF2ZSBhIGRpZmZlcmVudCBzZXQgb2YgYWxpYXNlcywNCnNvIHRoZSBzZXJ2ZXIgaGFzIHRv
IG1haW50YWluIGEgY29uZmlndXJlZCBtYXBwaW5nIGZvciBlYWNoIGNsaWVudD8NClRoaXMgc2Vl
bXMgbGlrZSBhIGxvdCBvZiBvdmVyaGVhZCBhbmQgTlYtc3RvcmFnZSByZXF1aXJlbWVudHMNCm9u
IHRoZSBzZXJ2ZXIuDQoNCkNoYW5naW5nIHRoZSBzY2hlbWEgaWRlbnRpZmllcnMgYmFzZWQgb24g
d2hpY2ggY2xpZW50IGlzDQpzZW5kaW5nIHRoZSByZXF1ZXN0IHNlZW1zIGxpa2UgYSBjb21wbGlj
YXRlZCBkZXNpZ24gY2hhbmdlDQpmcm9tIFJFU1RDT05GLCBORVRDT05GLCBvciBTTk1QLCB3aGVy
ZSB0aGVyZSBpcyBvbmx5DQoxIHNjaGVtYSB0cmVlIHdoaWNoIGlzIG5vdCBkZXBlbmRlbnQgb24g
dGhlIGNsaWVudCBpZGVudGl0eS4NCg0KDQpBbmR5DQoNCg0KDQoNCjxpbWFnZTAwMS5qcGc+DQoN
Ck1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFu
dCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmls
bGlhbnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3
d3cudHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0K
RnJvbTogQWxleGFuZGVyIFBlbG92IFttYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJl
dGFnbmUuZXU8bWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1Pl0NClNl
bnQ6IDUganVpbiAyMDE1IDEyOjAzDQpUbzogTWljaGVsIFZlaWxsZXR0ZQ0KQ2M6IEFuZHkgQmll
cm1hbjsgNnRpc2NoQGlldGYub3JnPG1haWx0bzo2dGlzY2hAaWV0Zi5vcmc+OyBjb3JlQGlldGYu
b3JnPG1haWx0bzpjb3JlQGlldGYub3JnPg0KU3ViamVjdDogUmU6IFJlc2VydmUgc3BhY2UgZm9y
IGFsaWFzZXMNCg0KSGkgTWljaGVsLA0KDQoNCkxlIDUganVpbiAyMDE1IMOgIDE3OjE3LCBNaWNo
ZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208bWFpbHRvOk1p
Y2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4+IGEgw6ljcml0IDoNCg0KSGkgQWxleGFu
ZGVyDQoNCkluIHlvdXIgcHJlc2VudGF0aW9uIGF0IDZUaVNDSCwgeW91IHByb3Bvc2UgdGhlIGZv
bGxvd2luZyBkYXRhIG5vZGUgSUQgc3RydWN0dXJlLg0KDQrigKIgICAgICAgMzIgYml0cyBZQU5H
IElEDQrigJMgICAgICAyMCBiaXRzIGZvciBtb2R1bGUgSUQgKGFzc2lnbmVkIGJ5IElFVEYpDQri
gJMgICAgICAxMCBiaXRzIGZvciBkYXRhIG5vZGUgSUQgKGdlbmVyYXRlZCBkZXRlcm1pbmlzdGlj
YWxseSkNCg0KDQpCYXNlZCBvbiB0aGlzIHN0cnVjdHVyZSwgd2UgY2FuIHJlc2VydmUgbW9kdWxl
IElEIHplcm8gZm9yIGFsaWFzZXMuDQoNCg0KSSB3YXMganVzdCBzdW1tYXJpemluZyB3aGF0IHdh
cyBkaXNjdXNzZWQgb24gdGhlIGRpc2N1c3Npb24gaW4gQ29NSS4gQWN0dWFsbHksIGl0IGlzIDMw
IGJpdHMgWUFORyBJRCwgYnV0IHRoYXTigJlzIGZvciBwdXJwb3NlcyB0byBiZSBjb25zaXN0ZW50
IHdpdGggdGhlIFlBTkcgaGFzaCBhbmQgSSBkb27igJl0IG1pbmQga2VlcGluZyBpdCAzMCBiaXRz
Lg0KDQoNCklmIHdlIHdhbnQgdG8gbWluaW1pemUgYm90aCB0aGUgbmV0d29yayBhbiBub2RlIHJl
c291cmNlcyByZXF1aXJlIGJ5IHRoaXMgYWxpYXMgbWVjaGFuaXNtLCB3ZSBjYW4gbWFwIGFuIGVu
dGlyZSBtb2R1bGUgdG8gdGhpcyBzcGFjZS4NClRoaXMgY2FuIGJlIGltcGxlbWVudGVkIGJ5IGEg
c2luZ2xlIGludGVnZXIgcmVzb3VyY2UgKGUuZy4gbGVhZiBhbGxpYXNzZWRNb2R1bGUgeyB0eXBl
IHVpbnQzMiB9ICkNClRoaXMgYXBwcm9hY2ggcmVxdWlyZSA0IGJ5dGVzIHBlciBDb01JIHNlcnZl
ciBhY2Nlc3NlZC4NCg0KDQpJdCBpcyBwb3NzaWJsZSB0byBtYXAgYW4gZW50aXJlIG1vZHVsZSB0
byB0aGUgYWxpYXMgc3BhY2UgYW5kIHRoaXMgaXMgdXAgdG8gdGhlIG9wZXJhdG9yLiBIb3dldmVy
LCBpZiB5b3UgbG9hZCB0d28gbW9kdWxlcyB3aGljaCByZWRlZmluZSB0aGUgc2FtZSBhbGlhcyB5
b3Ugd2lsbCBsb29zZSB0aGUgYmVuZWZpdCBmcm9tIGl0LiBNYXliZSBpdCB3b3VsZCBiZSBpbnRl
cmVzdGluZyB0byBiZSBhYmxlIHRvIHNwZWNpZnkgdGhhdCB5b3Ugd2FudCB0aGUgYWxpYXNlcyBm
cm9tIFRISVMgc3BlY2lmaWMgbW9kdWxlIHRvIGJlIHVzZWQuDQoNCklmIHRoZSAvbWcvMCBhbGlh
cyBpcyByZXNlcnZlZCBmb3IgbWFuYWdpbmcgdGhlIGFsaWFzZXMsIHRoaXMgY291bGQgYmUgc2lt
cGx5IHNheWluZzoNClBPU1QgL21nLzANCnsNCiAic291cmNlX3VyaSIgOiAiL21nL0JBQSINCn0N
Cg0Kd2hlcmUgL21nL0JBQSBpcyB0aGUgWUFORyBpZCBvZiB0aGUgbW9kdWxlICgyMCBiaXRzIG1v
ZHVsZSBJRCArIDEwIGJpdHMgc2V0IHRvIDApLiBUaGlzIHdheSwgdGhlIHNlcnZlciB3aWxsIGtu
b3c6IE9LLCBnZXQgdGhlIGFsaWFzIG1hcHBpbmcgZnJvbSB0aGUgWUFORyBzY2hlbWUgb2YgbW9k
dWxlIHdpdGggSUQgPSBCIChhcyBkZWZpbmVkIGJ5IHRoZSBJRVRGKS4NCg0KT3IsIHlvdSBjYW4g
ZHluYW1pY2FsbHkgY29uZmlndXJlIHRoZSBtYXBwaW5nOg0KUE9TVCAvbWcvMA0Kew0KICBZQU5H
X2lkIDogYWxpYXMsDQogIFlBTkdfaWQgOiBhbGlhcywNCiAgWUFOR19pZCA6IGFsaWFzDQp9DQoN
CklmIHdlIHdhbnQgYSBtb3JlIGNvbXBsZXggYnV0IG1vcmUgZmxleGlibGUgYWxpYXNlcyBtZWNo
YW5pc20sIHlvdXIgcHJvcG9zZWQgbWFwIG9mIChhbGxpYXMsIFlBTkcgSUQpIHNlZW0gdGhlIHNv
bHV0aW9uLg0KSG93ZXZlciwgd2UgaGF2ZSB0byBjb25zaWRlciB0aGF0IHRoaXMgc3RydWN0dXJl
IGNhbiBiZSBhcyBsYXJnZSBhcyAxMjUwIGJ5dGVzIHBlciBDb01JIHNlcnZlciBhY2Nlc3NlZCBp
ZiBsaW1pdGVkIHRvIDI1NiBhbGlhc2VzLg0KDQpUaGlzIGlzIGFzc3VtaW5nIHlvdSBuZWVkIGEg
c2VwYXJhdGUgbWFwcGluZyBmb3IgZWFjaCBzZXJ2ZXIuIEkgd291bGQgc3VwcG9zZSB0aGF0IGlu
IGEgbmV0d29yayB5b3XigJlsbCBoYXZlIGEgc2luZ2xlIGFsaWFzIG1hcHBpbmcgKG1heWJlIHR3
bz8pIC0gYWZ0ZXIgYWxsLCB5b3XigJlyZSB0cnlpbmcgdG8gb3B0aW1pemUgdGhlIG1hbmFnZW1l
bnQgb2YgeW91ciBkZXZpY2VzIChzZXJ2ZXJzKS4gU28sIHR5cGljYWxseSB5b3XigJlkIG1hcCBh
bGwgNnRpc2NoIGRldmljZXMgd2l0aCBhbGlhc2VzIDEtMTAgKGNoYW5uZWwsIHNsb3QsIGV0Yy4p
IGFuZCB1c2UgdGhhdCBvbiB0aGVtLCBhbmQgb24gYWxsIG90aGVyIHlvdeKAmWQgYWNjZXNzIHRo
ZSBmdWxsIElELg0KDQpCZXN0LA0KQWxleGFuZGVyDQoNCg0KPGltYWdlMDAxLmpwZz4NCg0KTWlj
aGVsIFZlaWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KVHJpbGxpYW50IElu
Yy4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFu
dGluYy5jb208bWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4NCnd3dy50
cmlsbGlhbnRpbmMuY29tPGh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8+DQoNCg0K

--_000_CO2PR0601MB792CF17A97F6B962676F06CFEB20CO2PR0601MB792na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OkhlbHZldGljYTsNCglwYW5vc2UtMToyIDExIDYgNCAyIDIgMiAyIDIg
NDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0x
OjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJp
Ow0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30NCi8qIFN0eWxlIERlZmluaXRpb25z
ICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjow
aW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1m
YW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGlu
aw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRp
b246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXtt
c28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1
bmRlcmxpbmU7fQ0Kc3Bhbi5hcHBsZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6
YXBwbGUtY29udmVydGVkLXNwYWNlO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10
eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0K
CWNvbG9yOiMxRjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0
LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4
LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3Jk
U2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBt
c28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYi
IC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBl
bGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0K
PC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0i
RU4tQ0EiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rp
b24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5IaSBBbGV4YW5kZXIgYW5kIEhpIEFuZHk8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkkgdGhpbmtzIHdlIGNhbiBhdm9p
ZCB0aGUgc3VwcG9ydCBvZiBhIGNvbXBsZXggYWxpYXNlcyBtZWNoYW5pc20gYW5kIHN0aWxsIGFy
Y2hpdmUgdGhlIHNhbWUgbGV2ZWwgb2YgbWVzc2FnZSBjb21wcmVzc2lvbi48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+VGhlIHNvbHV0aW9uIGNvbnNpc3RzIG9m
IHN1cHBvcnRpbmcgdHdvIGZvcm1zIG9mIGRhdGEgbm9kZSBpZGVudGlmaWVyLCB0aGUgc2FtZSB3
YXkgYXMgUkVTVGNvbmYuIChlLmcuIGlldGYtc3lzdGVtOmN1cnJlbnQtZGF0ZXRpbWUNCiB2cy4g
Y3VycmVudC1kYXRldGltZSk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpF
Ti1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PlRoZSBsb25nIGZvcm0gd2lsbCBjb25zaXN0IG9mIHRoZSBJRCBmb3JtYXQgcHJvcG9zZWQgYnkg
QWxleGFuZGVyICZuYnNwOygyIHJlc2VydmVkIGJpdHMsIDIwIGJpdHMgbW9kdWxlIElELCAxMCBi
aXRzIGRhdGEgbm9kZSBJRCkuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPlRoZSBzaG9ydCBmb3JtIHdpbGwgY2Fycnkgb25seSB0aGUgZGF0YSBub2RlIElEICZu
YnNwOygxMCBiaXRzIGRhdGEgbm9kZSBJRCkuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVMiPlRoZSBsb25nIGZvcm0gd2lsbCBiZSB1c2VkIG9ubHkgd2hlbiBuZWVk
ZWQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5MZXQgYXNzdW1lIHdl
IGhhdmUgdGhlc2UgdHdvIG1vZHVsZXM6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+bW9kdWxlIGEgezxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJl
YXN0LWxhbmd1YWdlOkVOLVVTIj4mbmJzcDsgY29udGFpbmVyIGNvbnRhaW5lckEgezxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDou
NWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpF
Ti1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxlYWYgbGVhZkExIHsgdHlwZSBzdHJpbmd9LDxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm
dDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxlYWYgbGVhZkEyIHsgdHlwZSBzdHJpbmd9PG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1s
ZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj4mbmJzcDsgfTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+fTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1s
ZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj5tb2R1bGUgYiB7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj4mbmJzcDsgaW1wb3J0IGEgeyBwcmVm
aXggYTsgfTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj4mbmJzcDsgYXVnbWVudCAm
cXVvdDsvYTpjb250YWluZXJBJnF1b3Q7IHs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPiZuYnNwOyZuYnNwOyZuYnNw
OyBsZWFmIGxlYWZBMyB7IHR5cGUgc3RyaW5nfTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+Jm5ic3A7IH08bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6
LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPn08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0
LWxhbmd1YWdlOkVOLVVTIj5MZXQgYXNzdW1lIHdlIGhhdmUgdGhlc2UgYXNzaWduZWQgSURzOjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+DQo8dGFibGUgY2xhc3M9Ik1zb1RhYmxlMTVHcmlkMUxpZ2h0IiBib3Jk
ZXI9IjEiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgc3R5bGU9Im1hcmdpbi1sZWZ0
OjMwLjJwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyOm5vbmUiPg0KPHRib2R5Pg0K
PHRyPg0KPHRkIHdpZHRoPSIxOTEiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDti
b3JkZXI6c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItYm90dG9tOnNvbGlkICM2NjY2NjYgMS41
cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2I+PC9wPg0KPC90ZD4NCjx0ZCB3aWR0aD0iNDgi
IHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6LjVpbjtib3JkZXItdG9wOnNvbGlkICM5OTk5OTkg
MS4wcHQ7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM2NjY2NjYgMS41cHQ7
Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUu
NHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5JRDxvOnA+PC9vOnA+PC9zcGFuPjwvYj48
L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSIyMjgiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTcx
LjBwdDtib3JkZXItdG9wOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLWxlZnQ6bm9uZTtib3Jk
ZXItYm90dG9tOnNvbGlkICM2NjY2NjYgMS41cHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkg
MS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj5GdWxsIElEPG86cD48L286cD48L3NwYW4+PC9iPjwvcD4NCjwvdGQ+DQo8dGQgd2lkdGg9
Ijk2IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEuMGluO2JvcmRlci10b3A6c29saWQgIzk5
OTk5OSAxLjBwdDtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzY2NjY2NiAx
LjVwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAw
aW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkJhc2U2NDxvOnA+PC9vOnA+PC9z
cGFuPjwvYj48L3A+DQo8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMTkxIiB2YWxpZ249
InRvcCIgc3R5bGU9IndpZHRoOjE0My42cHQ7Ym9yZGVyOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9y
ZGVyLXRvcDpub25lO3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5n
dWFnZTpFTi1VUyI+bW9kdWxlIGE8bzpwPjwvbzpwPjwvc3Bhbj48L2I+PC9wPg0KPC90ZD4NCjx0
ZCB3aWR0aD0iNDgiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6LjVpbjtib3JkZXItdG9wOm5v
bmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9y
ZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj4yNTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvdGQ+
DQo8dGQgd2lkdGg9IjIyOCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNzEuMHB0O2JvcmRl
ci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAx
LjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAw
aW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjwvdGQ+DQo8dGQgd2lkdGg9Ijk2IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEu
MGluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQg
Izk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBp
biA1LjRwdCAwaW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIxOTEiIHZhbGln
bj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDtib3JkZXI6c29saWQgIzk5OTk5OSAxLjBwdDti
b3JkZXItdG9wOm5vbmU7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxh
bmd1YWdlOkVOLVVTIj5jb250YWluZXIgY29udGFpbmVyQTxvOnA+PC9vOnA+PC9zcGFuPjwvYj48
L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSI0OCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDouNWlu
O2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5
OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1
LjRwdCAwaW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjE8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSIyMjgiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6
MTcxLjBwdDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNv
bGlkICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGlu
ZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj4xMTAwMTAwMDAw
MDAwMDEgPSAyNTYwMTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8dGQgd2lkdGg9Ijk2
IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEuMGluO2JvcmRlci10b3A6bm9uZTtib3JkZXIt
bGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6
c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVMiPkdRQjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8L3RyPg0K
PHRyPg0KPHRkIHdpZHRoPSIxOTEiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDti
b3JkZXI6c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItdG9wOm5vbmU7cGFkZGluZzowaW4gNS40
cHQgMGluIDUuNHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5sZWFmIGxlYWZBMTxvOnA+
PC9vOnA+PC9zcGFuPjwvYj48L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSI0OCIgdmFsaWduPSJ0b3Ai
IHN0eWxlPSJ3aWR0aDouNWluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRl
ci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAx
LjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PjI8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSIyMjgiIHZhbGlnbj0i
dG9wIiBzdHlsZT0id2lkdGg6MTcxLjBwdDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9u
ZTtib3JkZXItYm90dG9tOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5
OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTIj4xMTAwMTAwMDAwMDAwMTAgPSAyNTYwMjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
dGQ+DQo8dGQgd2lkdGg9Ijk2IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEuMGluO2JvcmRl
ci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAx
LjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAw
aW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkdRQzxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIxOTEiIHZhbGlnbj0idG9wIiBzdHls
ZT0id2lkdGg6MTQzLjZwdDtib3JkZXI6c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItdG9wOm5v
bmU7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij5sZWFmIGxlYWZBMjxvOnA+PC9vOnA+PC9zcGFuPjwvYj48L3A+DQo8L3RkPg0KPHRkIHdpZHRo
PSI0OCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDouNWluO2JvcmRlci10b3A6bm9uZTtib3Jk
ZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmln
aHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPjM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPHRkIHdp
ZHRoPSIyMjgiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTcxLjBwdDtib3JkZXItdG9wOm5v
bmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9y
ZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj4xMTAwMTAwMDAwMDAwMTEgPSAyNTYwMjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8dGQgd2lkdGg9Ijk2IiB2YWxpZ249InRvcCIgc3R5bGU9
IndpZHRoOjEuMGluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0
b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtw
YWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkdRRDxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIxOTEi
IHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDtib3JkZXI6c29saWQgIzk5OTk5OSAx
LjBwdDtib3JkZXItdG9wOm5vbmU7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJl
YXN0LWxhbmd1YWdlOkVOLVVTIj5tb2R1bGUgYjxvOnA+PC9vOnA+PC9zcGFuPjwvYj48L3A+DQo8
L3RkPg0KPHRkIHdpZHRoPSI0OCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDouNWluO2JvcmRl
ci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAx
LjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAw
aW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjI2PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iMjI4IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjE3MS4w
cHQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAj
OTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGlu
IDUuNHB0IDBpbiA1LjRwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9wPg0KPC90ZD4NCjx0ZCB3aWR0aD0iOTYiIHZhbGlnbj0idG9wIiBzdHlsZT0i
d2lkdGg6MS4waW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRv
bTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3Bh
ZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgd2lkdGg9IjE5
MSIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNDMuNnB0O2JvcmRlcjpzb2xpZCAjOTk5OTk5
IDEuMHB0O2JvcmRlci10b3A6bm9uZTtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPmxlYWYgbGVhZkEzPG86cD48L286cD48L3NwYW4+PC9iPjwv
cD4NCjwvdGQ+DQo8dGQgd2lkdGg9IjQ4IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOi41aW47
Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5
OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUu
NHB0IDBpbiA1LjRwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+MTxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjwvdGQ+DQo8dGQgd2lkdGg9IjIyOCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDox
NzEuMHB0O2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29s
aWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5n
OjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjExMDEwMDAwMDAw
MDAwMSA9IDI2NjI1PG86cD48L286cD48L3NwYW4+PC9wPg0KPC90ZD4NCjx0ZCB3aWR0aD0iOTYi
IHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MS4waW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1s
ZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpz
b2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+R2dCPG86cD48L286cD48L3NwYW4+PC9wPg0KPC90ZD4NCjwvdHI+DQo8
L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+QSBHRVQgY2FuIGJlIGltcGxlbWVu
dGVkIGFzIGZvbGxvdzo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5SRVE6IEdFVCBleGFtcGxlLmNvbS9tZy9HUUI8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6
LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBsYW5nPSJGUi1DQSIgc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlJFUzogMi4wNSBDb250ZW50
IChDb250ZW50LUZvcm1hdDogYXBwbGljYXRpb24vY2Jvcik8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gbGFu
Zz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj57PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJl
YXN0LWxhbmd1YWdlOkVOLVVTIj4mbmJzcDsgMSA6IHs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPiZuYnNwOyZuYnNw
OyZuYnNwOyAyIDogJnF1b3Q7IGxlYWZBMSB2YWx1ZSZxdW90Oyw8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPiZuYnNw
OyZuYnNwOyZuYnNwOyAzIDogJnF1b3Q7IGxlYWZBMiB2YWx1ZSAmcXVvdDs8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PiZuYnNwOyZuYnNwOyZuYnNwOyAyNjYyNSA6ICZxdW90OyBsZWFmQTMgdmFsdWUgJnF1b3Q7PG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1s
ZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj4mbmJzcDsgfTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+fTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFz
dC1sYW5ndWFnZTpFTi1VUyI+QSBQVVQgY2FuIGJlIGltcGxlbWVudGVkIGFzIGZvbGxvdzo8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41
aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj5SRVE6IFBVVCBleGFtcGxlLmNvbS9tZzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+ezxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+
Jm5ic3A7IDI1NjAxIDogezxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDIgOiAmcXVv
dDsgbGVhZkExIHZhbHVlJnF1b3Q7LDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDMg
OiAmcXVvdDsgbGVhZkEyIHZhbHVlICZxdW90OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7IDI2NjI1IDogJnF1b3Q7IGxlYWZBMyB2YWx1ZSAmcXVvdDs8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPiZuYnNw
Ow0KPC9zcGFuPjxzcGFuIGxhbmc9IkZSLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28t
ZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+fTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBsYW5nPSJGUi1DQSIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPn08bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6LjVpbiI+PHNwYW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gbGFuZz0iRlIt
Q0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5S
RVM6IDIuMDUgT2sNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIGxhbmc9IkZSLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2
Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0i
MCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3Jk
ZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVw
dCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9y
ZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUu
NHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj48aW1nIHdpZHRoPSIxMjAiIGhlaWdodD0iMjIiIGlkPSJQaWN0dXJl
X3gwMDIwXzIiIHNyYz0iY2lkOmltYWdlMDAxLmpwZ0AwMUQwOUZBRi4yNTMyMjFDMCIgYWx0PSJj
aWQ6aW1hZ2UwMDEuanBnQDAxQzg2OEQ4LkJGMEJCN0UwIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1
cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVj
dG9yPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUwLTM3
NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJp
bGxpYW50aW5jLmNvbSI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWlsbGV0
dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+PGEgaHJlZj0iaHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLyI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90
OyxzYW5zLXNlcmlmIj53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj4NCiAmbmJzcDsgPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPC90cj4NCjwvdGJv
ZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2IHN0
eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzoz
LjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBsYW5nPSJF
Ti1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZiI+IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJy
ZXRhZ25lLmV1XQ0KPGJyPg0KPGI+U2VudDo8L2I+IDUganVpbiAyMDE1IDE2OjEwPGJyPg0KPGI+
VG86PC9iPiBBbmR5IEJpZXJtYW48YnI+DQo8Yj5DYzo8L2I+IE1pY2hlbCBWZWlsbGV0dGU7IDZ0
aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZzxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogUmVz
ZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSBBbmR5LDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Zb3UgYXJlIHJpZ2h0IHRoYXQgaWYgd2Ugc3RhcnQg
Y29uc2lkZXJpbmcgbXVsdGlwbGUgY2xpZW50cywgZWFjaCBvZiB3aGljaCB0cnlpbmcgdG8gdXNl
IGl0cyBhbGlhc2VzIHRoZSB0aGluZ3MgYmVjb21lLi4gbGVzIG9wdGltYWwuIEFuZCBpZiBubyBj
YXV0aW9uIGlzIHRha2VuIC0gY2FuIHNwZWxsIHRyb3VibGUuPG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBwb2ludCBpcywgeW91ciBkZWZh
dWx0IGJlaGF2aW9yIHNob3VsZCBiZSB0byB1c2UgdGhlIG5vcm1hbCBJRC4gSG93ZXZlciwgaW4g
c29tZSBjYXNlcywgeW91IG1heSBkZWNpZGUgdGhhdCB5b3XigJlyZSBnb2luZyB0byBiZSBoYXZp
bmcgcXVpdGUgYSBsb3Qgb2YgZXhjaGFuZ2VzIHdpdGggdGhlIHNhbWUgSUQsIHNvIHllcywgeW91
IGNhbiByZWRlZmluZSB0aGUgYWxpYXMgbWFwcGluZy4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SG93ZXZlciwgeW91IGFyZSByaWdo
dCB0aGF0IHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIGV2ZW50dWFsIHJhY2UgY29uZGl0aW9ucy4g
SW5kZWVkLCBpbiA2VGlTQ0ggYW5kIG90aGVyIG1hbmFnZWQgbmV0d29ya3MgaXQgbWF5IG5vdCBo
YXBwZW4gKHdoaWNoIGFsb25lIGlzIHN1ZmZpY2llbnQgZm9yIG1lIHRvIGhhdmUgdGhpcyDCqyZu
YnNwO2dvbGRlbiZuYnNwO8K7IElEcyBiZSBsZWZ0IG91dCBvZiB0aGUgwqsgcmFuZG9tbHkgYWxs
b2NhdGVkJm5ic3A7wrssDQogb3IgwqsgZXRlcm5hbGx5IGxvY2tlZCB0byBhIHNwZWNpZmljIElE
IMK7IHJlc291cmNlcykuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPkhhdmluZyB0aGUgL21nL0EgcmVzb3VyY2UgcHJvdmlkZSB0aGUgbWV0YS1p
bmZvcm1hdGlvbiBjYW4gaGVscCBzb2x2ZSBhIGxvdCAoYWxsPykgb2YgdGhlIHByb2JsZW1zLiAo
aW4gbXkgcGFzdCBtYWlscyBJIHJlZmVycmVkIHRoaXMgYXMgL21nLzAgYnV0IEkgbWVhbnQgL21n
L0EsIHNvcnJ5KTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5UaGUgZmlyc3QgcmVxdWlyZW1lbnQgZm9yIGEgY2xpZW50IGlzIHRvIHF1ZXJ5IHRo
ZSAvbWcvQSByZXNvdXJjZS4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPlRoZXJlLCB5b3UgY2FuIGdldCB0aGUgbWV0YS1kYXRhIGNvbmNl
cm5pbmcgdGhlIGFsaWFzZXMsIGluY2x1ZGluZyB0aGUgaGFzaCBvZiB0aGUgYWxpYXMgbWFwcGlu
ZywgdGhlIG1hcHBpbmcgaXRzZWxmIChpZiBuZWNlc3NhcnkpLCBhbmQgdGhlIHVwZGF0ZXIgKGlk
ZW50aWZpZWQgYnkgYSB0b2tlbikuIEnigJltIHdvbmRlcmluZyBpZiB0aGVyZSBjb3VsZCBiZSBh
ZGRlZCBhIHZhbGlkaXR5IG9mIHRoZSBtYXBwaW5nLg0KIEEgY2xpZW50IGNhbiBjaGFuZ2UgdGhl
IG1hcHBpbmcgT05MWSBpZiBpdCBpcyB0aGUgbGFzdCB1cGRhdGVyIChoYXNoJiM0Mzt0b2tlbiBt
YXRjaCksIG9yIGlmIHRoZSB2YWxpZGl0eSBoYXMgZXhwaXJlZC4gSWYgdGhlIHNlcnZlciBoYXMg
YSB3YXkgb2Yga2VlcGluZyB0aW1lIGl0IGNhbiB0cmFjayB0aGUgdmFsaWRpdHkgaXRzZWxmLiBP
dGhlcndpc2UsIGl0IGNhbiBiZSBhIGNvbnN0YW50IGRhdGV0aW1lIGFmdGVyIHdoaWNoIHRoZSBy
ZXNvdXJjZSBpcw0KIGNvbnNpZGVyZWQgZXhwaXJlZCBhbmQgYW55IGNsaWVudCBjYW4gdXBkYXRl
IHRoZSByZXNvdXJjZS4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+SnVzdCB0byBiZSBzdXJlLCBJ4oCZbSB0YWxraW5nIGFib3V0IGNs
aWVudHMsIHdoaWNoIGFyZSBjYXBhYmxlIGVub3VnaCB0byBrZWVwIHRyYWNrIG9mIHNvbWUgY29u
dGV4dCBhYm91dCB0aGUgc2VydmVycyBpdCBjb250cm9scyBPUiBhIGNsaWVudCBpbiBhIHBhcnRp
Y3VsYXIga2luZCBvZiBuZXR3b3JrLCB3aGljaCBrbm93cyB0aGF0IHNvbWUgdGhpbmdzIGFyZSBq
dXN0IGV4cGVjdGVkIHRvIGJlIHRoZXJlIGFuZA0KIHRoZXJlIGlzIG5vIHdheSBmb3IgdGhlbSB0
byBoYXBwZXIgb3RoZXJ3aXNlLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4qKioqKioqKioqKioqKioqKjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+KiogVGhlIGRlZmF1bHQgd2F5IG9m
IGRvaW5nIHRoaW5ncyBzaG91bGQgYWx3YXlzIGJlIHRvIHVzZSB0aGUgbm9ybWFsIElEcy4qKiBJ
ZiB5b3Ugd2FudCB0byBiZSBvcHRpbWFsIChpbiBzb21lIHdheSksIGdldCAvbWcvQSwgYW5kIGlm
IHlvdSB1bmRlcnN0YW5kIGl0IC0gdXNlIGl0LiBJZiB0aGVyZeKAmXMgbm90aGluZywgUE9TVCB3
aGF0ZXZlciB5b3UgbGlrZSwgYnV0IGJlIHN1cmUgdGhhdCB5b3UgaGF2ZSBlbm91Z2gNCiByZXNv
dXJjZXMgdG8gcmVtZW1iZXIgd2hhdCB5b3XigJlyZSBkb2luZy4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiombmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiogSWYgeW91IHdhbnQg
dG8gc2V0IGEgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gaW4gZWFjaCBvZiB5b3VyIDEwTSBub2Rl
cywgdGhlbiB3ZWxsIHlvdSBzaG91bGQgaGF2ZSB0aGUgc3RvcmFnZSB0byByZW1lbWJlciBhbGwg
b2YgdGhlbS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPioqKioqKioqKioqKioqKioqPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPkJ5IHRoZSB3YXksIEkgd2FzIHRoaW5raW5nIG9mIHNvbWV0aGlu
ZyBxdWl0ZSBpbnRlcmVzdGluZywgd2hpY2ggY2FuIGNvbWUgc3VwcGxlbWVudCB0aGUgbm9kZSBJ
RCBhbGlhc2luZy4gQWN0dWFsbHksIEkgdGhpbmsgdGhhdCB0aGUgMjAgYml0cyAmIzQzOyAxMCBi
aXRzIFlBTkcgaWQgcmVhbGx5IG9wZW5zIGEgbG90IG9mIHBlcnNwZWN0aXZlcyAod2lsbCB0cnkg
dG8gd3JpdGUgdGhhdCB1cCB0b21vcnJvdykuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBtYWpvciBwb2ludCBpcyB0aGF0IHdoZW4gdGhl
IGRhdGEgbm9kZSBJRCA9IDAsIHRoZSBtb2R1bGUgSUQgY2FuIGJlIHVzZWQgYXMgYSByZXNvdXJj
ZSB0byBvYnRhaW4gbWV0YS1pbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLiBGb3IgZXhhbXBsZSwg
aXRzIHZlcnNpb24uIFRoaXMgd2F5LCBpZiB5b3UgdXBkYXRlIGEgWUFORyBtb2R1bGUgd2l0aCBh
IG5ldyBvbmUsIHdoaWNoIG9ubHkgYXBwZW5kcyBlbGVtZW50cywNCiB5b3Ugd2lsbCBub3QgbmVl
ZCB0byByZXF1ZXN0IGEgbmV3IG1hbmFnZWQgSUQuIEdFVCAvbWcvbW9kdWxlSUQ/a2V5cz12ZXJz
aW9uICh3aXRoIGRhdGEgbm9kZSBJRD0wKSBhbmQgeW91IGtub3cgd2hhdCBpcyB5b3VyIG1vZHVs
ZSByZWFsbHkgY2FwYWJsZSBvZi4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QWxzbywgdGhlIHNwZWNpYWwgcGxhY2Ugb2YgL21nL0Eg
Y2FuIGFjdHVhbGx5IGJlY29tZSBhbiBlbnRyeSBwb2ludCBmb3IgbW9zdCBvZiB0aGUgaW5mb3Jt
YXRpb24gcmVsYXRlZCB0byBDb01JICh0byBiZSBkaXNjdXNzZWQuLiBJIGhhdmUgbm8gc3Ryb25n
IGZlZWxpbmdzIG9uIHRoaXMpLiBJdCBjYW4sIGZvciBleGFtcGxlLCBwcm92aWRlIHRoZSBtb2Qu
dXJpLCBhbmQgb3RoZXIgaW5mb3JtYXRpb24uIFRoZQ0KIG9ubHkgaW5mb3JtYXRpb24gdGhhdCBy
ZW1haW5zIHRydWx5IG5lY2Vzc2FyeSB0byBiZSBmaXhlZCBpbiAvLndlbGwta25vd24vY29yZSBp
cyB0aGUgZW50cnkgcG9pbnQgdG8gdGhlIENvTUkgaW50ZXJmYWNlIChlLmcuIC9tZykuIEFmdGVy
d2FyZHMsIGV2ZXJ5dGhpbmcgY2FuIGJlIGRldGVybWluZWQgZnJvbSAvbWcvQSB3aXRoIHF1ZXJp
ZXMgKC9tZy9BP2tleXM9bW9kLnVyaSYjNDM7YWxpYXMudXJpKTxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5CZXN0LDxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QWxleGFuZGVyPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlBTLjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QXMgaWYgZGF0YSBub2Rl
IGFsaWFzaW5nIGlzIG5vdCBlbm91Z2jigKYgbW9kdWxlIElEIGFsaWFzaW5nICh0aGlzIG9uZSBp
cyByZWFsbHkgdmVyeSBsb3cgaW4gbXkgcHJpb3JpdGllcyBhbmQgSeKAmW0gbWVudGlvbmluZyBp
dCBvbmx5IGZvciBjb21wbGV0ZW5lc3MpOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGUgZmlyc3QgMTIgYml0cyB0YWtlIDIgVVJJIGNoYXJh
Y3RlcnMgYW5kIDIgYnl0ZXMgaW4gQ0JPUi4gSGF2aW5nIDEwIGJpdHMgZm9yIHRoZSBkYXRhIG5v
ZGUgSUQgbGVhdmVzIDIgaW50ZXJlc3RpbmcgYml0cyBpbiB0aGUgbW9kdWxlIElEIHBhcnTigKYg
U28gd2UgY2FuIGhhdmUgbW9kdWxlIGFsaWFzZXMgYXMgd2VsbCAoYWxiZWl0IG9ubHkgMykuPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYXQg
aXMsIGluIFVSSSBlbmNvZGluZywmbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjB4MDAwMDAwMDAtMHgwMDAwMDNGRiAtJmd0OyBkYXRhIG5v
ZGUgYWxpYXNpbmc8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjB4MDAwMDA0MDAtMHgwMDAwMDdGRiAtJmd0OyBhbGlhc2VkIG1vZHVsZSAxPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4weDAwMDAwODAw
LTB4MDAwMDBCRkYgLSZndDsgYWxpYXNlZCBtb2R1bGUgMjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MHgwMDAwMEMwMC0weDAwMDAwQkZGLSZndDsg
YWxpYXNlZCBtb2R1bGUgMzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5JbXBsZW1lbnRhdGlvbi13aXNlLCBpdHMgcmVhbGx5IGVhc3k6IHVwb24g
cmVxdWVzdCwgaWYgdGhlIG1vZHVsZSBJRCA9IGFsaWFzZWQgbW9kdWxlIElEIDEsIHJlcGxhY2Ug
dGhlIG1vZHVsZSBJRCBwYXJ0LCBzbyBubyBuZWVkIHRvIG1hcCB0aGUgZW50aXJlIG1vZHVsZSBJ
RCAvIGRhdGEgbm9kZSBJRCBzcGFjZS4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QnV0IHJlYWxseSwgdGhhdCBtdWNoIG9wdGltaXph
dGlvbj8gRXZlbiBpZiBpdCBzZWVtcyBzdHJhaWdodGZvcndhcmQsIEkgd291bGQgbGlrZSB0byBz
ZWUgdXNlIGNhc2VzIHRoYXQgY291bGQgYmVuZWZpdCBmcm9tIHRoaXMgYmVmb3JlIGFjdHVhbGx5
IGNvbnNpZGVyaW5nIGl0LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9
Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+TGUgNSBqdWluIDIwMTUgw6AgMjA6NTUsIEFuZHkgQmllcm1hbiAmbHQ7PGEg
aHJlZj0ibWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbSI+YW5keUB5dW1hd29ya3MuY29tPC9hPiZn
dDsgYSDDqWNyaXQgOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+
DQo8YnI+DQo8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90
OyxzYW5zLXNlcmlmIj5PbiBGcmksIEp1biA1LCAyMDE1IGF0IDExOjQxIEFNLCBNaWNoZWwgVmVp
bGxldHRlPHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPiZs
dDs8YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJn
ZXQ9Il9ibGFuayI+TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9hPiZndDs8c3Bh
biBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+d3JvdGU6PG86cD48
L286cD48L3NwYW4+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1s
ZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4t
bGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGluIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SGkgQWxleGFuZGVyPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SSBoYXZlIHNvbWUg
Y29uY2VybnMgYWJvdXQgYWxsb3dpbmcgQ29NSSBjbGllbnQocykgdGhlIGNvbnRyb2wgb2YgdGhl
IGxpc3Qgb2YgYWxpYXNlcy48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGlzIGFwcHJvYWNoIHdvcmsg
ZmluZSBmb3IgdGhlIGZpcnN0IENvTUkgYXBwbGljYXRpb24gKGUuZy4gNlRpU0NIKSBidXQgd2hh
dCBkbyB3ZSBkbyB3aXRoIHRoZSBzdWJzZXF1ZW50DQogQ29NSSBhcHBsaWNhdGlvbj88L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5PbmUgcG9zc2libGUgc29s
dXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xpZW50IHNlbmQgYSBsaXN0IG9mIChhbGlhcywgZGF0
YSBub2RlIElEKSB0byB0aGUgQ29NSSBzZXJ2ZXIuDQogSW4gdGhpcyBjYXNlLCB0aGUgQ29NSSBj
bGllbnQgbWlnaHQgcmVjZWl2ZSBhbiBlcnJvciBpZiBvbmUgb3IgbXVsdGlwbGUgb2YgdGhlc2Ug
YWxpYXNlcyBhcmUgYWxyZWFkeSByZXNlcnZlZC48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj5BIHNlY29uZCBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0aGF0IGVh
Y2ggQ29NSSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGRhdGEgbm9kZSBJRCkgYW5kIGdldCBhIGxp
c3Qgb2YNCiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgZnJvbSB0aGUgQ29NSSBzZXJ2ZXIuIEluIHRo
aXMgY2FzZSwgQ29NSSBjbGllbnRzIHdpbGwgaGF2ZSB0byBkZWFsIHdpdGggYSBtaXggcG9wdWxh
dGlvbiBvZiBhbGlhc2VzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPlRoZSBwcm9wb3NlZCBzb2x1dGlvbiBuZWVkIHRvIHNjYWxlIHRvIGEgbXVsdGktdmVu
ZG9ycywgbXVsdGlwbGUgYXBwbGljYXRpb25zIGVudmlyb25tZW50Ljwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPldpdGggdGhpcyBpcyBtaW5kLCBkbyB5b3UgaGF2ZSBhbnkgYWx0ZXJuYXRpdmUgc29sdXRp
b25zIHRvIHByb3Bvc2U/PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hl
bHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj5Eb2VzIHRoaXMgYXBwcm9hY2ggYWxsb3cgZWFjaCBj
bGllbnQgdG8gaGF2ZSBhIGRpZmZlcmVudCBzZXQgb2YgYWxpYXNlcyw8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNl
cmlmIj5zbyB0aGUgc2VydmVyIGhhcyB0byBtYWludGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGluZyBm
b3IgZWFjaCBjbGllbnQ/PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWls
eTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+VGhpcyBzZWVtcyBsaWtlIGEgbG90
IG9mIG92ZXJoZWFkIGFuZCBOVi1zdG9yYWdlIHJlcXVpcmVtZW50czxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2Vy
aWYiPm9uIHRoZSBzZXJ2ZXIuPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZh
bWlseTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fu
cy1zZXJpZiI+Q2hhbmdpbmcgdGhlIHNjaGVtYSBpZGVudGlmaWVycyBiYXNlZCBvbiB3aGljaCBj
bGllbnQgaXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj5zZW5kaW5nIHRoZSByZXF1ZXN0IHNlZW1zIGxp
a2UgYSBjb21wbGljYXRlZCBkZXNpZ24gY2hhbmdlPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5
LjBwdDtmb250LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+ZnJvbSBS
RVNUQ09ORiwgTkVUQ09ORiwgb3IgU05NUCwgd2hlcmUgdGhlcmUgaXMgb25seTxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7LHNh
bnMtc2VyaWYiPjEgc2NoZW1hIHRyZWUgd2hpY2ggaXMgbm90IGRlcGVuZGVudCBvbiB0aGUgY2xp
ZW50IGlkZW50aXR5LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2Vy
aWYiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2VyaWYiPkFuZHk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hl
bHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZl
dGljYSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rp
dj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0ND
Q0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFy
Z2luLXJpZ2h0OjBpbiI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05v
cm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lk
dGg9IjcxNyIgc3R5bGU9IndpZHRoOjUzNy43NXB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+
DQo8dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdodDo0OS4wNXB0Ij4NCjx0ZCB3aWR0aD0iMTM3IiBz
dHlsZT0id2lkdGg6MTAzLjFwdDtib3JkZXI6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgd2luZG93
dGV4dCAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jmx0
O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L3RkPg0KPHRkIHdpZHRo
PSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1cHQ7cGFkZGluZzowaW4gNS40
cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttYXJn
aW4tbGVmdDo4LjFwdCI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+TWljaGVsIFZlaWxs
ZXR0ZTxicj4NClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3I8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPlRyaWxsaWFudCBJbmMuPGJyPg0KVGVsOiA0NTAtMzc1LTA1NTYg
ZXh0LiAyMzc8YnI+DQo8YSBocmVmPSJtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRp
bmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwNTYzQzEiPm1pY2hl
bC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdpbi1sZWZ0OjguMXB0Ij4NCjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj48YSBocmVmPSJodHRwOi8vd3d3LnRyaWxsaWFudGluYy5j
b20vIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj53d3cudHJpbGxpYW50aW5jLmNvbTwv
c3Bhbj48L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj4mbmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4m
bmJzcDs8L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5
Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10
b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8
L3NwYW4+PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPjxzcGFuIGxhbmc9
IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMi
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZiI+QWxleGFuZGVyDQogUGVsb3YgW21haWx0bzo8YSBocmVmPSJtYWlsdG86YWxl
eGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXUiIHRhcmdldD0iX2JsYW5rIj5hbGV4YW5k
ZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldTwvYT5dPHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZl
cnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxicj4NCjxiPlNlbnQ6PC9iPjxzcGFuIGNsYXNzPSJh
cHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj41IGp1aW4gMjAxNSAxMjowMzxicj4N
CjxiPlRvOjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3Nw
YW4+TWljaGVsIFZlaWxsZXR0ZTxicj4NCjxiPkNjOjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29u
dmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+QW5keSBCaWVybWFuOzxzcGFuIGNsYXNzPSJhcHBs
ZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJtYWlsdG86NnRpc2NoQGll
dGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+NnRpc2NoQGlldGYub3JnPC9hPjs8c3BhbiBjbGFzcz0i
YXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0ibWFpbHRvOmNvcmVA
aWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj5jb3JlQGlldGYub3JnPC9hPjxicj4NCjxiPlN1Ympl
Y3Q6PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5S
ZTogUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+SGkgTWljaGVsLDxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjxkaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9t
OjUuMHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPkxlIDUganVpbiAyMDE1IMOg
IDE3OjE3LCBNaWNoZWwgVmVpbGxldHRlICZsdDs8YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxs
ZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+TWljaGVsLlZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tPC9hPiZndDsgYSDDqWNyaXQgOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SGkgQWxleGFuZGVy
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5JbiB5b3Vy
IHByZXNlbnRhdGlvbiBhdCA2VGlTQ0gsIHlvdSBwcm9wb3NlIHRoZSBmb2xsb3dpbmcgZGF0YSBu
b2RlIElEIHN0cnVjdHVyZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9
IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgc3R5bGU9ImJvcmRlci1jb2xsYXBz
ZTpjb2xsYXBzZSI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgd2lkdGg9IjYyMyIgdmFsaWduPSJ0b3Ai
IHN0eWxlPSJ3aWR0aDo0NjcuNXB0O2JvcmRlcjpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3BhZGRp
bmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+4oCiPC9zcGFuPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4zMg0KIGJpdHMgWUFO
RyBJRDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6MS4waW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj7igJM8L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjIwDQogYml0
cyBmb3IgbW9kdWxlIElEIChhc3NpZ25lZCBieSBJRVRGKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6MS4waW4iPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OyxzYW5zLXNlcmlmIj7igJM8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3
LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9zcGFuPjxzcGFuIGxh
bmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjEwDQogYml0cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0
ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L3Rk
Pg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+QmFzZWQgb24g
dGhpcyBzdHJ1Y3R1cmUsIHdlIGNhbiByZXNlcnZlJm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVO
LVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWYiPm1vZHVsZQ0KIElEIHplcm8gZm9yIGFsaWFzZXMuPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs
YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPkkgd2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3YXMgZGlzY3Vzc2VkIG9uIHRoZSBkaXNj
dXNzaW9uIGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAzMCBiaXRzIFlBTkcgSUQsIGJ1dCB0aGF0
4oCZcyBmb3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBZQU5HIGhhc2ggYW5k
IEkgZG9u4oCZdCBtaW5kDQoga2VlcGluZyBpdCAzMCBiaXRzLjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21hcmdpbi1ib3R0b206MTIuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxibG9ja3F1
b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPklmIHdlIHdhbnQgdG8gbWluaW1pemUgYm90aCB0aGUgbmV0d29yayBhbiBub2RlIHJlc291
cmNlcyByZXF1aXJlIGJ5IHRoaXMgYWxpYXMgbWVjaGFuaXNtLCB3ZSBjYW4gbWFwDQogYW4gZW50
aXJlIG1vZHVsZSB0byB0aGlzIHNwYWNlLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
ZiI+VGhpcyBjYW4gYmUgaW1wbGVtZW50ZWQgYnkgYSBzaW5nbGUgaW50ZWdlciByZXNvdXJjZSAo
ZS5nLiBsZWFmIGFsbGlhc3NlZE1vZHVsZSB7IHR5cGUgdWludDMyIH0gKTwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFu
Zz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZiI+VGhpcyBhcHByb2FjaCByZXF1aXJlIDQgYnl0ZXMgcGVyIENv
TUkgc2VydmVyIGFjY2Vzc2VkLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5JdCBpcyBwb3NzaWJsZSB0byBtYXAg
YW4gZW50aXJlIG1vZHVsZSB0byB0aGUgYWxpYXMgc3BhY2UgYW5kIHRoaXMgaXMgdXAgdG8gdGhl
IG9wZXJhdG9yLiBIb3dldmVyLCBpZiB5b3UgbG9hZCB0d28gbW9kdWxlcyB3aGljaCByZWRlZmlu
ZSB0aGUgc2FtZSBhbGlhcyB5b3Ugd2lsbCBsb29zZSB0aGUgYmVuZWZpdA0KIGZyb20gaXQuIE1h
eWJlIGl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRvIGJlIGFibGUgdG8gc3BlY2lmeSB0aGF0IHlv
dSB3YW50IHRoZSBhbGlhc2VzIGZyb20gVEhJUyBzcGVjaWZpYyBtb2R1bGUgdG8gYmUgdXNlZC48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PklmIHRoZSAvbWcvMCBhbGlhcyBpcyByZXNlcnZlZCBmb3IgbWFuYWdpbmcgdGhlIGFsaWFzZXMs
IHRoaXMgY291bGQgYmUgc2ltcGx5IHNheWluZzo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+UE9TVCAvbWcvMDxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj57PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOyZxdW90O3NvdXJjZV91cmkm
cXVvdDsgOiAmcXVvdDsvbWcvQkFBJnF1b3Q7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPn08bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPndoZXJlIC9tZy9CQUEgaXMgdGhlIFlBTkcgaWQg
b2YgdGhlIG1vZHVsZSAoMjAgYml0cyBtb2R1bGUgSUQgJiM0MzsgMTAgYml0cyBzZXQgdG8gMCku
IFRoaXMgd2F5LCB0aGUgc2VydmVyIHdpbGwga25vdzogT0ssIGdldCB0aGUgYWxpYXMgbWFwcGlu
ZyBmcm9tIHRoZSBZQU5HIHNjaGVtZSBvZiBtb2R1bGUgd2l0aA0KIElEID0gQiAoYXMgZGVmaW5l
ZCBieSB0aGUgSUVURikuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj5PciwgeW91IGNhbiBkeW5hbWljYWxseSBjb25maWd1cmUg
dGhlIG1hcHBpbmc6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj5QT1NUIC9tZy8wPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPns8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRl
ZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPllBTkdfaWQgOiBhbGlhcyw8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PHNwYW4gY2xhc3M9ImFw
cGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPllBTkdfaWQgOiBhbGlhcyw8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PHNw
YW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPllBTkdfaWQgOiBh
bGlhczxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij59PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21hcmdpbi1ib3R0b206MTIuMHB0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21h
cmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPklmIHdlIHdhbnQgYSBtb3JlIGNvbXBsZXgg
YnV0IG1vcmUgZmxleGlibGUgYWxpYXNlcyBtZWNoYW5pc20sIHlvdXIgcHJvcG9zZWQgbWFwIG9m
IChhbGxpYXMsIFlBTkcgSUQpDQogc2VlbSB0aGUgc29sdXRpb24uPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj5Ib3dldmVyLCB3ZSBoYXZlIHRvIGNvbnNpZGVyIHRoYXQgdGhpcyBz
dHJ1Y3R1cmUgY2FuIGJlIGFzIGxhcmdlIGFzJm5ic3A7PHU+MTI1MCBieXRlcyBwZXIgQ29NSSBz
ZXJ2ZXIgYWNjZXNzZWQ8L3U+Jm5ic3A7aWYNCiBsaW1pdGVkIHRvIDI1NiBhbGlhc2VzLjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+VGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBhIHNl
cGFyYXRlIG1hcHBpbmcgZm9yIGVhY2ggc2VydmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBpbiBh
IG5ldHdvcmsgeW914oCZbGwgaGF2ZSBhIHNpbmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0d28/
KSAtIGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5aW5nIHRvIG9wdGltaXplDQogdGhlIG1hbmFnZW1l
bnQgb2YgeW91ciBkZXZpY2VzIChzZXJ2ZXJzKS4gU28sIHR5cGljYWxseSB5b3XigJlkIG1hcCBh
bGwgNnRpc2NoIGRldmljZXMgd2l0aCBhbGlhc2VzIDEtMTAgKGNoYW5uZWwsIHNsb3QsIGV0Yy4p
IGFuZCB1c2UgdGhhdCBvbiB0aGVtLCBhbmQgb24gYWxsIG90aGVyIHlvdeKAmWQgYWNjZXNzIHRo
ZSBmdWxsIElELiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+QmVzdCw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+QWxleGFuZGVyPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttYXJnaW4t
Ym90dG9tOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0i
bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIw
IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0
aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxl
PSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7
Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzow
aW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjU4MCIgdmFsaWduPSJ0b3Ai
IHN0eWxlPSJ3aWR0aDo0MzQuNjVwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0
OjQ5LjA1cHQiPg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJj
aGl0ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZiI+VHJpbGxpYW50IEluYy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNzxicj4N
CjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20iIHRhcmdl
dD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6IzA1NjNDMSI+bWljaGVsLnZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj48YSBocmVmPSJodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vIiB0
YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48
L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+
DQo8L3RhYmxlPg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ib2R5
Pg0KPC9odG1sPg0K

--_000_CO2PR0601MB792CF17A97F6B962676F06CFEB20CO2PR0601MB792na_--

--_004_CO2PR0601MB792CF17A97F6B962676F06CFEB20CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Fri, 05 Jun 2015 21:43:41 GMT";
	modification-date="Fri, 05 Jun 2015 21:43:41 GMT"
Content-ID: <image001.jpg@01D09FAF.253221C0>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB792CF17A97F6B962676F06CFEB20CO2PR0601MB792na_--


From nobody Sun Jun  7 02:21:20 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4A6DC1A1BC2; Sun,  7 Jun 2015 02:21:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.15
X-Spam-Level: *
X-Spam-Status: No, score=1.15 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aSpV2KWW86dK; Sun,  7 Jun 2015 02:21:12 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id BF5B21A1B8D; Sun,  7 Jun 2015 02:21:11 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id 10A293025E; Sun,  7 Jun 2015 11:21:10 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 3xDQA8d-fg-a; Sun,  7 Jun 2015 11:21:07 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id B189E3026C; Sun,  7 Jun 2015 11:21:07 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 768bzdnRAs1c; Sun,  7 Jun 2015 11:21:07 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id DF87D3025E; Sun,  7 Jun 2015 11:21:06 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_6026224D-25BD-4E89-835E-0B2BC2489629"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CO2PR0601MB792CF17A97F6B962676F06CFEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Sun, 7 Jun 2015 11:21:06 +0200
Message-Id: <5A6EA7C1-C367-4B0D-AEE2-688368A7F495@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <855287F5-C374-4C79-973C-169CD0F90D9A@telecom-bretagne.eu> <CO2PR0601MB792CF17A97F6B962676F06CFEB20@CO2PR0601MB792.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/socZxfXurBKI9vQddD5VegZjkHo>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 07 Jun 2015 09:21:18 -0000

--Apple-Mail=_6026224D-25BD-4E89-835E-0B2BC2489629
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Michel,

That sound great! Having the short form (10 bits data node ID) and long =
form (20 bits module ID + 10 bits data node ID), can save quite a lot =
when dealing with more than isolated data items, as you point in your =
example.=20

As I mentioned earlier, having your moduleID+0000000000 can be used as =
YANG id for the module, which can provide meta-information on the loaded =
module. For example, if you issue a request against that ID and receive =
Resource not found, then the module is not loaded (but this of course =
should not be the way to discover it). Is this useful? If there is need =
for module versioning, the YANG module ID can be used to obtain the =
versioning information. Having deterministic data node IDs can be used =
to have versions of the same module (e.g. adding new leafs, new =
containers, etc.) - removing things out will require new module ID.

In addition to having reduced data requirements (in URIs and CBOR), =
having the fixed YANG module IDs helps locate some special resources.
E.g. module ID:
   aliasing : 18 bits =3D 0 + 00
      full YANG module ID =3D AAAA (compressed to A)
   YANG meta-data module: 18 bits =3D 0 + 01
      full YANG module ID=3D AAAg0 (compressed to g0)
   Reserved for future use: 18 bits =3D 0 + 10 and 18 bits =3D 0 + 11
=20
The YANG meta-data module can provide all necessary meta-information, =
e.g. mod.uri, the loaded modules, their versions, and so forth. This =
keeps the separation between aliasing and meta-information. Note, that =
the meta-module YANG scheme will be published with a normal assigned =
YANG module ID, which will be mapped to the /mg/g0, e.g. changing the =
meta-data a couple of years down the road is possible with or without =
versioning.

I also don=E2=80=99t think it would be a good idea to have complex =
aliasing mechanisms, and this should be further discussed. It will be =
very useful for managed networks. The /mg/A resource should be kept as =
light as possible. For the moment I think there are only two necessary =
pieces of information that need to be given by it: hash-value of the =
contents of the mapping and URI to extract the full mapping. The mapping =
can be obtained from the meta-data (/mg/g0 or .well-known/core).  The =
simplest mechanism to be used is the following:=20

1) If no aliases are defined, then the client can POST a new alias =
mapping
   1.a) the alias mapping expires after a timer (default value =3D 1h, =
which can be overridden by the client)
   1.b) upon timer expiry, the alias mapping is deleted
   1.c) the timer can be extended with a keep-alive POST from any client
2) An alias mapping cannot be altered or deleted by a client.=20

The reasoning behind this is the following: A node becomes =E2=80=98manage=
d=E2=80=99 by a client, and the client registers this. If a different =
client tries to POST new configuration it will receive a 4.03 Forbidden.=20=


This actually makes configuring and implementing aliases really =
straightforward. Upon discovery of a node, a client can directly POST to =
/mg/A, and if it receives:
   - "4.04 Not Found", then aliasing is not supported
   - "4.03 Forbidden", the alias mapping is already defined (by someone =
else)
   - "2.01 Created" - alias defined
   - "2.04 Changed" - alias timer updated

If the /mg/g0 is accepted as YANG meta-data module pointer, then the =
actual alias mapping can be retrieved from there.=20

Best,
Alexander




> Le 5 juin 2015 =C3=A0 23:43, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> Hi Alexander and Hi Andy
> =20
> I thinks we can avoid the support of a complex aliases mechanism and =
still archive the same level of message compression.
> The solution consists of supporting two forms of data node identifier, =
the same way as RESTconf. (e.g. ietf-system:current-datetime vs. =
current-datetime)
> =20
> The long form will consist of the ID format proposed by Alexander  (2 =
reserved bits, 20 bits module ID, 10 bits data node ID).
> The short form will carry only the data node ID  (10 bits data node =
ID).
> The long form will be used only when needed.
> =20
> Let assume we have these two modules:
> =20
> module a {
> =20
>   container containerA {
>     leaf leafA1 { type string},
>     leaf leafA2 { type string}
>   }
> }
> =20
> module b {
>   import a { prefix a; }
> =20
>   augment "/a:containerA" {
>     leaf leafA3 { type string}
>   }
> }
> =20
> Let assume we have these assigned IDs:
> =20
> =20
> ID
> Full ID
> Base64
> module a
> 25
> =20
> =20
> container containerA
> 1
> 110010000000001 =3D 25601
> GQB
> leaf leafA1
> 2
> 110010000000010 =3D 25602
> GQC
> leaf leafA2
> 3
> 110010000000011 =3D 25602
> GQD
> module b
> 26
> =20
> =20
> leaf leafA3
> 1
> 110100000000001 =3D 26625
> GgB
> =20
> A GET can be implemented as follow:
> =20
> REQ: GET example.com/mg/GQB <http://example.com/mg/GQB>
> =20
> RES: 2.05 Content (Content-Format: application/cbor)
> {
>   1 : {
>     2 : " leafA1 value",
>     3 : " leafA2 value "
>     26625 : " leafA3 value "
>   }
> }
> =20
> A PUT can be implemented as follow:
> =20
> REQ: PUT example.com/mg <http://example.com/mg>
> {
>   25601 : {
>     2 : " leafA1 value",
>     3 : " leafA2 value "
>     26625 : " leafA3 value "
>   }
> }
> =20
> RES: 2.05 Ok
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 16:10
> To: Andy Bierman
> Cc: Michel Veillette; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Andy,
> =20
> You are right that if we start considering multiple clients, each of =
which trying to use its aliases the things become.. les optimal. And if =
no caution is taken - can spell trouble.
> =20
> The point is, your default behavior should be to use the normal ID. =
However, in some cases, you may decide that you=E2=80=99re going to be =
having quite a lot of exchanges with the same ID, so yes, you can =
redefine the alias mapping.=20
> =20
> However, you are right that we need to take care of eventual race =
conditions. Indeed, in 6TiSCH and other managed networks it may not =
happen (which alone is sufficient for me to have this =C2=AB golden =C2=BB=
 IDs be left out of the =C2=AB randomly allocated =C2=BB, or =C2=AB =
eternally locked to a specific ID =C2=BB resources).
> =20
> Having the /mg/A resource provide the meta-information can help solve =
a lot (all?) of the problems. (in my past mails I referred this as /mg/0 =
but I meant /mg/A, sorry)
> =20
> The first requirement for a client is to query the /mg/A resource.=20
> There, you can get the meta-data concerning the aliases, including the =
hash of the alias mapping, the mapping itself (if necessary), and the =
updater (identified by a token). I=E2=80=99m wondering if there could be =
added a validity of the mapping. A client can change the mapping ONLY if =
it is the last updater (hash+token match), or if the validity has =
expired. If the server has a way of keeping time it can track the =
validity itself. Otherwise, it can be a constant datetime after which =
the resource is considered expired and any client can update the =
resource.=20
> =20
> Just to be sure, I=E2=80=99m talking about clients, which are capable =
enough to keep track of some context about the servers it controls OR a =
client in a particular kind of network, which knows that some things are =
just expected to be there and there is no way for them to happer =
otherwise.=20
> =20
> *****************
> ** The default way of doing things should always be to use the normal =
IDs.** If you want to be optimal (in some way), get /mg/A, and if you =
understand it - use it. If there=E2=80=99s nothing, POST whatever you =
like, but be sure that you have enough resources to remember what =
you=E2=80=99re doing.=20
> *=20
> * If you want to set a different configuration in each of your 10M =
nodes, then well you should have the storage to remember all of them.
> *****************
> =20
> By the way, I was thinking of something quite interesting, which can =
come supplement the node ID aliasing. Actually, I think that the 20 bits =
+ 10 bits YANG id really opens a lot of perspectives (will try to write =
that up tomorrow).
> =20
> The major point is that when the data node ID =3D 0, the module ID can =
be used as a resource to obtain meta-information on the module. For =
example, its version. This way, if you update a YANG module with a new =
one, which only appends elements, you will not need to request a new =
managed ID. GET /mg/moduleID?keys=3Dversion (with data node ID=3D0) and =
you know what is your module really capable of.=20
> =20
> Also, the special place of /mg/A can actually become an entry point =
for most of the information related to CoMI (to be discussed.. I have no =
strong feelings on this). It can, for example, provide the mod.uri, and =
other information. The only information that remains truly necessary to =
be fixed in /.well-known/core is the entry point to the CoMI interface =
(e.g. /mg). Afterwards, everything can be determined from /mg/A with =
queries (/mg/A?keys=3Dmod.uri+alias.uri)
> =20
> Best,
> Alexander
> =20
> PS.
> As if data node aliasing is not enough=E2=80=A6 module ID aliasing =
(this one is really very low in my priorities and I=E2=80=99m mentioning =
it only for completeness):
> =20
> The first 12 bits take 2 URI characters and 2 bytes in CBOR. Having 10 =
bits for the data node ID leaves 2 interesting bits in the module ID =
part=E2=80=A6 So we can have module aliases as well (albeit only 3).
> =20
> That is, in URI encoding,=20
> 0x00000000-0x000003FF -> data node aliasing
> 0x00000400-0x000007FF -> aliased module 1
> 0x00000800-0x00000BFF -> aliased module 2
> 0x00000C00-0x00000BFF-> aliased module 3
> =20
> Implementation-wise, its really easy: upon request, if the module ID =3D=
 aliased module ID 1, replace the module ID part, so no need to map the =
entire module ID / data node ID space.=20
> =20
> But really, that much optimization? Even if it seems straightforward, =
I would like to see use cases that could benefit from this before =
actually considering it.
> =20
> =20
> =20
> Le 5 juin 2015 =C3=A0 20:55, Andy Bierman <andy@yumaworks.com =
<mailto:andy@yumaworks.com>> a =C3=A9crit :
> =20
>=20
>=20
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
> Hi Alexander
> =20
> I have some concerns about allowing CoMI client(s) the control of the =
list of aliases.
> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
> =20
> One possible solution is that each CoMI client send a list of (alias, =
data node ID) to the CoMI server. In this case, the CoMI client might =
receive an error if one or multiple of these aliases are already =
reserved.
> =20
> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
> =20
> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
> With this is mind, do you have any alternative solutions to propose?
> =20
> =20
> =20
> Does this approach allow each client to have a different set of =
aliases,
> so the server has to maintain a configured mapping for each client?
> This seems like a lot of overhead and NV-storage requirements
> on the server.
> =20
> Changing the schema identifiers based on which client is
> sending the request seems like a complicated design change
> from RESTCONF, NETCONF, or SNMP, where there is only
> 1 schema tree which is not dependent on the client identity.
> =20
> =20
> Andy
> =20
> =20
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 12:03
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> =20
> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander
> =20
> In your presentation at 6TiSCH, you propose the following data node ID =
structure.
> =20
> =E2=80=A2       32 bits YANG ID
> =E2=80=93      20 bits for module ID (assigned by IETF)
> =E2=80=93      10 bits for data node ID (generated deterministically)
> =20
> Based on this structure, we can reserve module ID zero for aliases.
> =20
> =20
> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
> =20
> =20
>=20
> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
> This approach require 4 bytes per CoMI server accessed.
> =20
> =20
> It is possible to map an entire module to the alias space and this is =
up to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
> =20
> If the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:
> POST /mg/0
> {
>  "source_uri" : "/mg/BAA"
> }
> =20
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
> =20
> Or, you can dynamically configure the mapping:
> POST /mg/0
> {
>   YANG_id : alias,
>   YANG_id : alias,
>   YANG_id : alias
> }
> =20
>=20
> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
> =20
> This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
> =20
> Best,
> Alexander
> =20
>=20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>

--Apple-Mail=_6026224D-25BD-4E89-835E-0B2BC2489629
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Michel,</div><div class=3D""><br =
class=3D""></div><div class=3D"">That sound great! Having the short form =
(10 bits data node ID) and long form (20 bits module ID + 10 bits data =
node ID), can save quite a lot when dealing with more than isolated data =
items, as you point in your example.&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">As I mentioned earlier, having your =
moduleID+0000000000 can be used as YANG id for the module, which can =
provide meta-information on the loaded module. For example, if you issue =
a request against that ID and receive Resource not found, then the =
module is not loaded (but this of course should not be the way to =
discover it). Is this useful? If there is need for module versioning, =
the YANG module ID can be used to obtain the versioning information. =
Having deterministic data node IDs can be used to have versions of the =
same module (e.g. adding new leafs, new containers, etc.) - removing =
things out will require new module ID.</div><div class=3D""><br =
class=3D""></div><div class=3D"">In addition to having reduced data =
requirements (in URIs and CBOR), having the fixed YANG module IDs helps =
locate some special resources.</div><div class=3D"">E.g. module =
ID:</div><div class=3D"">&nbsp; &nbsp;aliasing : 18 bits =3D 0 + =
00</div><div class=3D"">&nbsp; &nbsp; &nbsp; full YANG module ID =3D =
AAAA (compressed to A)</div><div class=3D"">&nbsp; &nbsp;YANG meta-data =
module: 18 bits =3D 0 + 01</div><div class=3D"">&nbsp; &nbsp; &nbsp; =
full YANG module ID=3D AAAg0 (compressed to g0)</div><div =
class=3D"">&nbsp; &nbsp;Reserved for future use: 18 bits =3D 0 + 10 and =
18 bits =3D 0 + 11</div><div class=3D"">&nbsp;</div><div class=3D"">The =
YANG meta-data module can provide all necessary meta-information, e.g. =
mod.uri, the loaded modules, their versions, and so forth. This keeps =
the separation between aliasing and meta-information. Note, that the =
meta-module YANG scheme will be published with a normal assigned YANG =
module ID, which will be mapped to the /mg/g0, e.g. changing the =
meta-data a couple of years down the road is possible with or without =
versioning.</div><div class=3D""><br class=3D""></div><div class=3D"">I =
also don=E2=80=99t think it would be a good idea to have complex =
aliasing mechanisms, and this should be further discussed. It will be =
very useful for managed networks. The /mg/A resource should be kept as =
light as possible. For the moment I think there are only two necessary =
pieces of information that need to be given by it: hash-value of the =
contents of the mapping and URI to extract the full mapping. The mapping =
can be obtained from the meta-data (/mg/g0 or .well-known/core). =
&nbsp;The simplest mechanism to be used is the =
following:&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">1) If no aliases are defined, then the client can POST a new =
alias mapping</div><div class=3D"">&nbsp; &nbsp;1.a) the alias mapping =
expires after a timer (default value =3D 1h, which can be overridden by =
the client)</div><div class=3D"">&nbsp; &nbsp;1.b) upon timer expiry, =
the alias mapping is deleted</div><div class=3D"">&nbsp; &nbsp;1.c) the =
timer can be extended with a keep-alive POST from any client</div><div =
class=3D"">2) An alias mapping cannot be altered or deleted by a =
client.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">The reasoning behind this is the following: A node becomes =
=E2=80=98managed=E2=80=99 by a client, and the client registers this. If =
a different client tries to POST new configuration it will receive a =
4.03 Forbidden.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">This actually makes configuring and implementing aliases =
really straightforward. Upon discovery of a node, a client can directly =
POST to /mg/A, and if it receives:</div><div class=3D"">&nbsp; &nbsp;- =
"4.04 Not Found", then aliasing is not supported</div><div =
class=3D"">&nbsp; &nbsp;- "4.03 Forbidden", the alias mapping is already =
defined (by someone else)</div><div class=3D"">&nbsp; &nbsp;- "2.01 =
Created" - alias defined</div><div class=3D"">&nbsp; &nbsp;- "2.04 =
Changed" - alias timer updated</div><div class=3D""><br =
class=3D""></div><div class=3D"">If the /mg/g0 is accepted as YANG =
meta-data module pointer, then the actual alias mapping can be retrieved =
from there.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">Best,</div><div class=3D"">Alexander</div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div><blockquote =
type=3D"cite" class=3D""><div class=3D"">Le 5 juin 2015 =C3=A0 23:43, =
Michel Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit =
:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Alexander and Hi Andy<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">I thinks we can avoid =
the support of a complex aliases mechanism and still archive the same =
level of message compression.<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">The=
 solution consists of supporting two forms of data node identifier, the =
same way as RESTconf. (e.g. ietf-system:current-datetime vs. =
current-datetime)<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">The=
 long form will consist of the ID format proposed by Alexander &nbsp;(2 =
reserved bits, 20 bits module ID, 10 bits data node ID).<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The short form will carry only the data =
node ID &nbsp;(10 bits data node ID).<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The long form will be used only when =
needed.<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">Let=
 assume we have these two modules:<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">module a {<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp; container containerA {<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; leaf =
leafA1 { type string},<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp; leaf leafA2 { type string}<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp; }<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">}<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">module b {<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp; import a { prefix a; }<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp; augment "/a:containerA" {<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; leaf =
leafA3 { type string}<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp; }<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">}<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in =
0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">Let=
 assume we have these assigned IDs:<o:p class=3D""></o:p></span></div><div=
 style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><table class=3D"MsoTable15Grid1Light" =
border=3D"1" cellspacing=3D"0" cellpadding=3D"0" style=3D"margin-left: =
30.2pt; border-collapse: collapse; border: none;"><tbody class=3D""><tr =
class=3D""><td width=3D"191" valign=3D"top" style=3D"width: 143.6pt; =
border-style: solid; border-color: rgb(153, 153, 153) rgb(153, 153, 153) =
rgb(102, 102, 102); border-width: 1pt 1pt 1.5pt; padding: 0in 5.4pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><b class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></b></div></td><td width=3D"48"=
 valign=3D"top" style=3D"width: 0.5in; border-style: solid solid solid =
none; border-top-color: rgb(153, 153, 153); border-top-width: 1pt; =
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 1.5pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">ID<o:p =
class=3D""></o:p></span></b></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: solid solid solid none; =
border-top-color: rgb(153, 153, 153); border-top-width: 1pt; =
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 1.5pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Full ID<o:p =
class=3D""></o:p></span></b></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: solid solid solid none; =
border-top-color: rgb(153, 153, 153); border-top-width: 1pt; =
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 1.5pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Base64<o:p =
class=3D""></o:p></span></b></div></td></tr><tr class=3D""><td =
width=3D"191" valign=3D"top" style=3D"width: 143.6pt; border-style: none =
solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">module a<o:p class=3D""></o:p></span></b></div></td><td =
width=3D"48" valign=3D"top" style=3D"width: 0.5in; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">25<o:p class=3D""></o:p></span></div></td><td width=3D"228" =
valign=3D"top" style=3D"width: 171pt; border-style: none solid solid =
none; border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div></td><td width=3D"96" =
valign=3D"top" style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div></td></tr><tr =
class=3D""><td width=3D"191" valign=3D"top" style=3D"width: 143.6pt; =
border-style: none solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">container containerA<o:p =
class=3D""></o:p></span></b></div></td><td width=3D"48" valign=3D"top" =
style=3D"width: 0.5in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">1<o:p class=3D""></o:p></span></div></td><td=
 width=3D"228" valign=3D"top" style=3D"width: 171pt; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">110010000000001 =3D 25601<o:p =
class=3D""></o:p></span></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">GQB<o:p =
class=3D""></o:p></span></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">leaf leafA1<o:p =
class=3D""></o:p></span></b></div></td><td width=3D"48" valign=3D"top" =
style=3D"width: 0.5in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">2<o:p class=3D""></o:p></span></div></td><td=
 width=3D"228" valign=3D"top" style=3D"width: 171pt; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">110010000000010 =3D 25602<o:p =
class=3D""></o:p></span></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">GQC<o:p =
class=3D""></o:p></span></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">leaf leafA2<o:p =
class=3D""></o:p></span></b></div></td><td width=3D"48" valign=3D"top" =
style=3D"width: 0.5in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">3<o:p class=3D""></o:p></span></div></td><td=
 width=3D"228" valign=3D"top" style=3D"width: 171pt; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">110010000000011 =3D 25602<o:p =
class=3D""></o:p></span></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">GQD<o:p =
class=3D""></o:p></span></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">module b<o:p =
class=3D""></o:p></span></b></div></td><td width=3D"48" valign=3D"top" =
style=3D"width: 0.5in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">26<o:p =
class=3D""></o:p></span></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div></td><td width=3D"96" =
valign=3D"top" style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div></td></tr><tr =
class=3D""><td width=3D"191" valign=3D"top" style=3D"width: 143.6pt; =
border-style: none solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">leaf leafA3<o:p class=3D""></o:p></span></b></div></td><td =
width=3D"48" valign=3D"top" style=3D"width: 0.5in; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">1<o:p class=3D""></o:p></span></div></td><td width=3D"228" =
valign=3D"top" style=3D"width: 171pt; border-style: none solid solid =
none; border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">110100000000001 =3D 26625<o:p =
class=3D""></o:p></span></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">GgB<o:p =
class=3D""></o:p></span></div></td></tr></tbody></table><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">A GET can be implemented as follow:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/GQB" style=3D"color: purple; =
text-decoration: underline;" class=3D"">example.com/mg/GQB</a><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">RES: 2.05 Content (Content-Format: =
application/cbor)<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"FR-CA" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">{<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in =
0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp; 1 : {<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 2 : =
" leafA1 value",<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 3 : =
" leafA2 value "<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; =
26625 : " leafA3 value "<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp; }<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">}<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">A =
PUT can be implemented as follow:<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">REQ: PUT<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg" style=3D"color: purple; text-decoration: =
underline;" class=3D"">example.com/mg</a><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">{<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp; 25601 : {<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 2 : =
" leafA1 value",<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 3 : =
" leafA2 value "<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; =
26625 : " leafA3 value "<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"FR-CA" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">RES: 2.05 Ok<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"FR-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
class=3D""><table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" width=3D"717" style=3D"width: 537.75pt; =
border-collapse: collapse;"><tbody class=3D""><tr style=3D"height: =
49.05pt;" class=3D""><td width=3D"137" style=3D"width: 103.1pt; =
border-style: none solid none none; border-right-color: windowtext; =
border-right-width: 1pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><span =
id=3D"cid:image001.jpg@01D09FAF.253221C0">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></span></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt 8.1pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.trilliantinc.com/" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span><span style=3D"font-size:=
 9pt; font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div></td></tr></tbody></table><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
class=3D""><div style=3D"border-style: solid none none; =
border-top-color: rgb(225, 225, 225); border-top-width: 1pt; padding: =
3pt 0in 0in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">From:</span></b><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>Alexander =
Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"Apple-converted-space">&nbsp;</span>5 =
juin 2015 16:10<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Andy Bierman<br class=3D""><b=
 class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Michel Veillette;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">6tisch@ietf.org</a>;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">core@ietf.org</a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases<o:p class=3D""></o:p></span></div></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Hi Andy,<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">You are right that if we start =
considering multiple clients, each of which trying to use its aliases =
the things become.. les optimal. And if no caution is taken - can spell =
trouble.<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">The point is, your default behavior should be to use =
the normal ID. However, in some cases, you may decide that you=E2=80=99re =
going to be having quite a lot of exchanges with the same ID, so yes, =
you can redefine the alias mapping.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">However, you are right that we need to =
take care of eventual race conditions. Indeed, in 6TiSCH and other =
managed networks it may not happen (which alone is sufficient for me to =
have this =C2=AB&nbsp;golden&nbsp;=C2=BB IDs be left out of the =C2=AB =
randomly allocated&nbsp;=C2=BB, or =C2=AB eternally locked to a specific =
ID =C2=BB resources).<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Having the /mg/A resource provide the =
meta-information can help solve a lot (all?) of the problems. (in my =
past mails I referred this as /mg/0 but I meant /mg/A, sorry)<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">The first requirement for a client is to =
query the /mg/A resource.&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">There, you can get =
the meta-data concerning the aliases, including the hash of the alias =
mapping, the mapping itself (if necessary), and the updater (identified =
by a token). I=E2=80=99m wondering if there could be added a validity of =
the mapping. A client can change the mapping ONLY if it is the last =
updater (hash+token match), or if the validity has expired. If the =
server has a way of keeping time it can track the validity itself. =
Otherwise, it can be a constant datetime after which the resource is =
considered expired and any client can update the resource.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Just to be sure, I=E2=80=99m talking =
about clients, which are capable enough to keep track of some context =
about the servers it controls OR a client in a particular kind of =
network, which knows that some things are just expected to be there and =
there is no way for them to happer otherwise.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">*****************<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">** The default way of doing things should always be to use =
the normal IDs.** If you want to be optimal (in some way), get /mg/A, =
and if you understand it - use it. If there=E2=80=99s nothing, POST =
whatever you like, but be sure that you have enough resources to =
remember what you=E2=80=99re doing.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">*&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">* If you want to set a different =
configuration in each of your 10M nodes, then well you should have the =
storage to remember all of them.<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">*****************<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">By the way, I was thinking of something =
quite interesting, which can come supplement the node ID aliasing. =
Actually, I think that the 20 bits + 10 bits YANG id really opens a lot =
of perspectives (will try to write that up tomorrow).<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">The major point is that when the data =
node ID =3D 0, the module ID can be used as a resource to obtain =
meta-information on the module. For example, its version. This way, if =
you update a YANG module with a new one, which only appends elements, =
you will not need to request a new managed ID. GET =
/mg/moduleID?keys=3Dversion (with data node ID=3D0) and you know what is =
your module really capable of.&nbsp;<o:p class=3D""></o:p></div></div><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Also, the special place of /mg/A can actually become =
an entry point for most of the information related to CoMI (to be =
discussed.. I have no strong feelings on this). It can, for example, =
provide the mod.uri, and other information. The only information that =
remains truly necessary to be fixed in /.well-known/core is the entry =
point to the CoMI interface (e.g. /mg). Afterwards, everything can be =
determined from /mg/A with queries (/mg/A?keys=3Dmod.uri+alias.uri)<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Best,<o:p class=3D""></o:p></div></div><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Alexander<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">PS.<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">As if data node =
aliasing is not enough=E2=80=A6 module ID aliasing (this one is really =
very low in my priorities and I=E2=80=99m mentioning it only for =
completeness):<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">The first 12 bits take 2 URI characters and 2 bytes =
in CBOR. Having 10 bits for the data node ID leaves 2 interesting bits =
in the module ID part=E2=80=A6 So we can have module aliases as well =
(albeit only 3).<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">That is, in URI encoding,&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000000-0x000003FF -&gt; data node aliasing<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000400-0x000007FF -&gt; aliased module 1<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000800-0x00000BFF -&gt; aliased module 2<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000C00-0x00000BFF-&gt; aliased module 3<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Implementation-wise, its really easy: =
upon request, if the module ID =3D aliased module ID 1, replace the =
module ID part, so no need to map the entire module ID / data node ID =
space.&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">But really, that much optimization? Even if it seems =
straightforward, I would like to see use cases that could benefit from =
this before actually considering it.<o:p class=3D""></o:p></div></div><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">Le 5 =
juin 2015 =C3=A0 20:55, Andy Bierman &lt;<a =
href=3D"mailto:andy@yumaworks.com" style=3D"color: purple; =
text-decoration: underline;" class=3D"">andy@yumaworks.com</a>&gt; a =
=C3=A9crit :<o:p class=3D""></o:p></div></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">On Fri, Jun 5, 2015 at 11:41 AM, Michel =
Veillette<span class=3D"apple-converted-space">&nbsp;</span>&lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt;<span =
class=3D"apple-converted-space">&nbsp;</span>wrote:<o:p =
class=3D""></o:p></span></div><blockquote style=3D"border-style: none =
none none solid; border-left-color: rgb(204, 204, 204); =
border-left-width: 1pt; padding: 0in 0in 0in 6pt; margin-left: 4.8pt; =
margin-right: 0in;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">Hi =
Alexander</span><o:p class=3D""></o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">I have some concerns about allowing CoMI =
client(s) the control of the list of aliases.</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">This approach work fine for the first CoMI =
application (e.g. 6TiSCH) but what do we do with the subsequent CoMI =
application?</span><o:p class=3D""></o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">One possible solution is that each CoMI =
client send a list of (alias, data node ID) to the CoMI server. In this =
case, the CoMI client might receive an error if one or multiple of these =
aliases are already reserved.</span><o:p class=3D""></o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">A second possible =
solution is that each CoMI client send a list of (data node ID) and get =
a list of (alias, data node ID) from the CoMI server. In this case, CoMI =
clients will have to deal with a mix population of aliases.</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The proposed solution need to scale to a =
multi-vendors, multiple applications environment.</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">With this is mind, do you have any =
alternative solutions to propose?</span><o:p class=3D""></o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></blockquote><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 9pt; font-family: =
Helvetica, sans-serif;" class=3D"">&nbsp;</span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">Does this approach allow each client to have a different set =
of aliases,<o:p class=3D""></o:p></span></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">so the server has to =
maintain a configured mapping for each client?<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 9pt; font-family: =
Helvetica, sans-serif;" class=3D"">This seems like a lot of overhead and =
NV-storage requirements<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">on the server.<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 9pt; font-family: =
Helvetica, sans-serif;" class=3D"">Changing the schema identifiers based =
on which client is<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">sending the request seems like a complicated design =
change<o:p class=3D""></o:p></span></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">from RESTCONF, NETCONF, =
or SNMP, where there is only<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" class=3D"">1=
 schema tree which is not dependent on the client identity.<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 9pt; font-family: =
Helvetica, sans-serif;" class=3D"">&nbsp;</span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 9pt; font-family: =
Helvetica, sans-serif;" class=3D"">Andy<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 9pt; font-family: =
Helvetica, sans-serif;" class=3D"">&nbsp;</span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 9pt; font-family: =
Helvetica, sans-serif;" class=3D"">&nbsp;</span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></span></div></div><blockquote =
style=3D"border-style: none none none solid; border-left-color: rgb(204, =
204, 204); border-left-width: 1pt; padding: 0in 0in 0in 6pt; =
margin-left: 4.8pt; margin-right: 0in;" class=3D""><div class=3D""><div =
class=3D""><div class=3D""><table class=3D"MsoNormalTable" border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=3D"width: =
537.75pt; border-collapse: collapse;"><tbody class=3D""><tr =
style=3D"height: 49.05pt;" class=3D""><td width=3D"137" style=3D"width: =
103.1pt; border-style: none solid none none; border-right-color: =
windowtext; border-right-width: 1pt; padding: 0in 5.4pt; height: =
49.05pt;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt 8.1pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt 8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt 8.1pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif;" class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></td></tr></tbody></table><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div><div class=3D""><div style=3D"border-style: solid =
none none; border-top-color: rgb(225, 225, 225); border-top-width: 1pt; =
padding: 3pt 0in 0in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">From:</span></b><span =
class=3D"apple-converted-space"><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span></span><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">Alexander Pelov =
[mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D"">alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 =
juin 2015 12:03<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D"">6tisch@ietf.org</a>;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" target=3D"_blank" style=3D"color: purple; =
text-decoration: underline;" class=3D"">core@ietf.org</a><br class=3D""><b=
 class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Hi Michel,<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">Le 5 =
juin 2015 =C3=A0 17:17, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Hi=
 Alexander</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">In your presentation at 6TiSCH, you propose the =
following data node ID structure.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><table class=3D"MsoNormalTable" border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" style=3D"border-collapse: =
collapse;"><tbody class=3D""><tr class=3D""><td width=3D"623" =
valign=3D"top" style=3D"width: 467.5pt; border: 1pt solid windowtext; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=A2</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">32 bits YANG ID</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 1in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span lang=3D"EN-US"=
 style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">20 bits for module ID (assigned by IETF)</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 1in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span lang=3D"EN-US"=
 style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">10 bits for data node ID (generated =
deterministically)</span><o:p =
class=3D""></o:p></div></div></td></tr></tbody></table><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Based on this structure, we can reserve&nbsp;</span><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">module ID zero for aliases.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></blockquote><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">I was just summarizing what was discussed on the discussion =
in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=99s for =
purposes to be consistent with the YANG hash and I don=E2=80=99t mind =
keeping it 30 bits.<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;"><o:p =
class=3D"">&nbsp;</o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">If we want to =
minimize both the network an node resources require by this alias =
mechanism, we can map an entire module to this space.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">This can be implemented by a single =
integer resource (e.g. leaf alliassedModule { type uint32 } )</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">This approach require 4 bytes per CoMI =
server accessed.</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></blockquote><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">It is possible to map an entire module to the alias space and =
this is up to the operator. However, if you load two modules which =
redefine the same alias you will loose the benefit from it. Maybe it =
would be interesting to be able to specify that you want the aliases =
from THIS specific module to be used.<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">If the /mg/0 alias is reserved for =
managing the aliases, this could be simply saying:<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">POST /mg/0<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">{<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;"source_uri" : "/mg/BAA"<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">}<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">where /mg/BAA is the YANG id of the module (20 bits module ID =
+ 10 bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Or, you can dynamically configure the mapping:<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">POST /mg/0<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">{<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias,<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias,<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">}<o:p class=3D""></o:p></div></div></div><p class=3D"MsoNormal"=
 style=3D"margin: 0in 0in 12pt; font-size: 12pt; font-family: 'Times New =
Roman', serif;"><o:p class=3D"">&nbsp;</o:p></p><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">If we want a more complex but more flexible =
aliases mechanism, your proposed map of (allias, YANG ID) seem the =
solution.</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">However, we have to =
consider that this structure can be as large as&nbsp;<u class=3D"">1250 =
bytes per CoMI server accessed</u>&nbsp;if limited to 256 =
aliases.</span><o:p class=3D""></o:p></div></div></div></blockquote><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">This is assuming you need a separate mapping for each server. =
I would suppose that in a network you=E2=80=99ll have a single alias =
mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Best,<o:p class=3D""></o:p></div></div><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Alexander<o:p =
class=3D""></o:p></div></div><p class=3D"MsoNormal" style=3D"margin: 0in =
0in 12pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><o:p =
class=3D"">&nbsp;</o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><table class=3D"MsoNormalTable" border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=3D"width: =
537.75pt; border-collapse: collapse;"><tbody class=3D""><tr =
style=3D"height: 49.05pt;" class=3D""><td width=3D"137" style=3D"width: =
103.1pt; border-style: none solid none none; border-right-color: =
windowtext; border-right-width: 1pt; padding: 0in 5.4pt; height: =
49.05pt;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" class=3D"">Michel Veillette<br =
class=3D"">System Architecture Director</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><a=
 href=3D"http://www.trilliantinc.com/" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"font-size: =
9pt; font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span></div></div></td></tr></t=
body></table></div></blockquote></div></div></div></blockquote></div></div=
></blockquote></div></div></div></blockquote></div><br =
class=3D""></body></html>=

--Apple-Mail=_6026224D-25BD-4E89-835E-0B2BC2489629--


From nobody Mon Jun  8 07:37:21 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 40D461A89AB; Mon,  8 Jun 2015 07:37:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.501
X-Spam-Level: 
X-Spam-Status: No, score=-0.501 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bFrRc34ac1ZF; Mon,  8 Jun 2015 07:37:11 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0122.outbound.protection.outlook.com [65.55.169.122]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 48F7D1A8966; Mon,  8 Jun 2015 07:36:01 -0700 (PDT)
Received: from DM2PR0601MB794.namprd06.prod.outlook.com (10.242.173.142) by DM2PR0601MB795.namprd06.prod.outlook.com (10.242.173.143) with Microsoft SMTP Server (TLS) id 15.1.172.22; Mon, 8 Jun 2015 14:35:57 +0000
Received: from DM2PR0601MB794.namprd06.prod.outlook.com ([10.242.173.142]) by DM2PR0601MB794.namprd06.prod.outlook.com ([10.242.173.142]) with mapi id 15.01.0172.012; Mon, 8 Jun 2015 14:35:57 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAAACnfUAAAEoyEAATMHqAAA7Htdw
Date: Mon, 8 Jun 2015 14:35:56 +0000
Message-ID: <DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <855287F5-C374-4C79-973C-169CD0F90D9A@telecom-bretagne.eu> <CO2PR0601MB792CF17A97F6B962676F06CFEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <5A6EA7C1-C367-4B0D-AEE2-688368A7F495@telecom-bretagne.eu>
In-Reply-To: <5A6EA7C1-C367-4B0D-AEE2-688368A7F495@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: telecom-bretagne.eu; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0601MB795;
x-microsoft-antispam-prvs: <DM2PR0601MB79540527D8DF6BA82CF3876FEBF0@DM2PR0601MB795.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:DM2PR0601MB795; BCL:0; PCL:0;  RULEID:; SRVR:DM2PR0601MB795; 
x-forefront-prvs: 060166847D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(43544003)(38414003)(51444003)(24454002)(377454003)(52034003)(92566002)(5002640100001)(62966003)(86362001)(99286002)(189998001)(122556002)(110136002)(5001960100002)(74316001)(2900100001)(19300405004)(93886004)(40100003)(77156002)(77096005)(18206015028)(66066001)(50986999)(54356999)(99936001)(76576001)(2950100001)(19617315012)(46102003)(19580395003)(19580405001)(15975445007)(19627595001)(102836002)(17760045003)(16236675004)(15395725005)(76176999)(33656002)(19625215002)(87936001)(2656002)(7099028)(559001)(579004)(569005); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR0601MB795; H:DM2PR0601MB794.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0DM2PR0601MB794na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2015 14:35:56.4869 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0601MB795
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/lF4gBQGpYY6YNV-3hYsh19QgoIo>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Jun 2015 14:37:18 -0000

--_004_DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0DM2PR0601MB794na_
Content-Type: multipart/alternative;
	boundary="_000_DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0DM2PR0601MB794na_"

--_000_DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0DM2PR0601MB794na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQWxleGFuZGVyDQoNClRoZSBwcm9wb3NlZCDigJxsb25nIGZvcm0sIHNob3J0IGZvcm3igJ0g
aXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGNvbmNlcHQgb2YgYWxpYXNlcyBzaW5jZSB0aGUgc2hv
cnQgZm9ybSBJRCBzcGFjZSBpcyB0aGUgc2FtZSBhcyB0aGUgcHJvcG9zZWQgYWxpYXNlcyBJRCBz
cGFjZS4gV2Ugd2lsbCBoYXZlIHRvIGNob29zZSBvbmUgb3IgdGhlIG90aGVyLiBJbiB0aGUgZm9s
bG93aW5nIGV4YW1wbGUsIElEcyAxLCAyLCAzIGlzIHRoZSBzaG9ydCBmb3JtIHdpdGhpbiB0aGUg
bW9kdWxlIElEIDI1LCBub3QgYWxpYXMgMSwgMiwgMy4g4oCcbG9uZyBmb3JtLCBzaG9ydCBmb3Jt
4oCdIGFkZCBzb21lIGV4dHJhIG92ZXJoZWFkIGNvbXBhcmVkIHRvIGFsaWFzZXMsIGhvd2V2ZXIg
dGhpcyBhcHByb2FjaCBoYXZlIG11bHRpcGxlIGFkdmFudGFnZXM6DQoNCsK3ICAgICAgICAgQWxs
b3dzIGNvbXByZXNzaW9uIG9mIGFsbCBtb2R1bGVzLCBub3QganVzdCBhIHNtYWxsIHN1YnNldCBv
ZiBJRHMgKDIwIG9yIDI1NiBJRHMpDQoNCsK3ICAgICAgICAgRG8gbm90IHJlcXVpcmUgYW4gaW5p
dGlhbCBoYW5kc2hha2UgZm9yIGFsaWFzZXMgZGlzY292ZXJ5IG9yIGNvbmZpZ3VyYXRpb24NCg0K
wrcgICAgICAgICBDYW4gYmUgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIHNhbWUgc2ltcGxlIHJ1bGVz
IGFzIFJFU1Rjb25mDQoNClJFUTogR0VUIGV4YW1wbGUuY29tL21nL0dRQg0KDQpSRVM6IDIuMDUg
Q29udGVudCAoQ29udGVudC1Gb3JtYXQ6IGFwcGxpY2F0aW9uL2Nib3IpDQp7DQogIDEgOiB7DQog
ICAgMiA6ICIgbGVhZkExIHZhbHVlIiwNCiAgICAzIDogIiBsZWFmQTIgdmFsdWUgIg0KICAgIDI2
NjI1IDogIiBsZWFmQTMgdmFsdWUgIg0KICB9DQp9DQoNCkFib3V0IHRoZSBtZXRhIGluZm9ybWF0
aW9uIHN1Y2ggYXMgdGhlIGxpc3Qgb2YgbW9kdWxlcyBhbmQgdGhlIGxpc3QgZm9yIHN0cmVhbXMu
IFRoaXMgc2hvdWxkIGJlIGltcGxlbWVudGVkIHVzaW5nIFlBTkcgbW9kdWxlcyAsIOKAnGlldGYt
eWFuZy1saWJyYXJ54oCdIGFuZCDigJxpZXRmLXJlc3Rjb25mLW1vbml0b3JpbmfigJ0gb3IgZXF1
aXZhbGVudC4gV2UgZG9u4oCZdCBuZWVkIHRvIGNyZWF0ZSBzcGVjaWFsIGJlaGF2aW91cnMgb3Ig
c3BlY2lhbCBxdWVyeSBwYXJhbWV0ZXJzIHRvIGltcGxlbWVudCB0aGlzIG1ldGEgZGF0YS4NCg0K
aHR0cDovL3d3dy5uZXRjb25mY2VudHJhbC5vcmcvbW9kdWxlcy9pZXRmLXlhbmctbGlicmFyeS8y
MDE0LTA5LTI2DQoNCmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL25hbWUNCmlldGYt
eWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL3JldmlzaW9uDQppZXRmLXlhbmctbGlicmFyeTpt
b2R1bGVzL21vZHVsZS9zY2hlbWENCmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL25h
bWVzcGFjZQ0KaWV0Zi15YW5nLWxpYnJhcnk6bW9kdWxlcy9tb2R1bGUvZmVhdHVyZQ0KaWV0Zi15
YW5nLWxpYnJhcnk6bW9kdWxlcy9tb2R1bGUvY29uZm9ybWFuY2UNCmlldGYteWFuZy1saWJyYXJ5
Om1vZHVsZXMvbW9kdWxlL3N1Ym1vZHVsZS9uYW1lDQppZXRmLXlhbmctbGlicmFyeTptb2R1bGVz
L21vZHVsZS9zdWJtb2R1bGUvcmV2aXNpb24NCmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9k
dWxlL3N1Ym1vZHVsZS9zY2hlbWENCg0KaHR0cDovL3d3dy5uZXRjb25mY2VudHJhbC5vcmcvbW9k
dWxlcmVwb3J0L2lldGYtcmVzdGNvbmYtbW9uaXRvcmluZw0KDQppZXRmLXJlc3Rjb25mLW1vbml0
b3Jpbmc6cmVzdGNvbmYtc3RhdGUvY2FwYWJpbGl0aWVzL2NhcGFiaWxpdHkNCmlldGYtcmVzdGNv
bmYtbW9uaXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0cmVhbS9uYW1lDQppZXRmLXJl
c3Rjb25mLW1vbml0b3Jpbmc6cmVzdGNvbmYtc3RhdGUvc3RyZWFtcy9zdHJlYW0vZGVzY3JpcHRp
b24NCmlldGYtcmVzdGNvbmYtbW9uaXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0cmVh
bS9yZXBsYXktc3VwcG9ydA0KaWV0Zi1yZXN0Y29uZi1tb25pdG9yaW5nOnJlc3Rjb25mLXN0YXRl
L3N0cmVhbXMvc3RyZWFtL3JlcGxheS1sb2ctY3JlYXRpb24tdGltZQ0KaWV0Zi1yZXN0Y29uZi1t
b25pdG9yaW5nOnJlc3Rjb25mLXN0YXRlL3N0cmVhbXMvc3RyZWFtL2VuY29kaW5nL3R5cGUNCmll
dGYtcmVzdGNvbmYtbW9uaXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0cmVhbS9lbmNv
ZGluZy9ldmVudHMNCg0KW2NpZDppbWFnZTAwMS5qcGdAMDFDODY4RDguQkYwQkI3RTBdDQoNCk1p
Y2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJ
bmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cu
dHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0KRnJv
bTogQWxleGFuZGVyIFBlbG92IFttYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFn
bmUuZXVdDQpTZW50OiA3IGp1aW4gMjAxNSAwNToyMQ0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNj
OiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KU3ViamVjdDog
UmU6IFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXMNCg0KSGkgTWljaGVsLA0KDQpUaGF0IHNvdW5k
IGdyZWF0ISBIYXZpbmcgdGhlIHNob3J0IGZvcm0gKDEwIGJpdHMgZGF0YSBub2RlIElEKSBhbmQg
bG9uZyBmb3JtICgyMCBiaXRzIG1vZHVsZSBJRCArIDEwIGJpdHMgZGF0YSBub2RlIElEKSwgY2Fu
IHNhdmUgcXVpdGUgYSBsb3Qgd2hlbiBkZWFsaW5nIHdpdGggbW9yZSB0aGFuIGlzb2xhdGVkIGRh
dGEgaXRlbXMsIGFzIHlvdSBwb2ludCBpbiB5b3VyIGV4YW1wbGUuDQoNCkFzIEkgbWVudGlvbmVk
IGVhcmxpZXIsIGhhdmluZyB5b3VyIG1vZHVsZUlEKzAwMDAwMDAwMDAgY2FuIGJlIHVzZWQgYXMg
WUFORyBpZCBmb3IgdGhlIG1vZHVsZSwgd2hpY2ggY2FuIHByb3ZpZGUgbWV0YS1pbmZvcm1hdGlv
biBvbiB0aGUgbG9hZGVkIG1vZHVsZS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBpc3N1ZSBhIHJlcXVl
c3QgYWdhaW5zdCB0aGF0IElEIGFuZCByZWNlaXZlIFJlc291cmNlIG5vdCBmb3VuZCwgdGhlbiB0
aGUgbW9kdWxlIGlzIG5vdCBsb2FkZWQgKGJ1dCB0aGlzIG9mIGNvdXJzZSBzaG91bGQgbm90IGJl
IHRoZSB3YXkgdG8gZGlzY292ZXIgaXQpLiBJcyB0aGlzIHVzZWZ1bD8gSWYgdGhlcmUgaXMgbmVl
ZCBmb3IgbW9kdWxlIHZlcnNpb25pbmcsIHRoZSBZQU5HIG1vZHVsZSBJRCBjYW4gYmUgdXNlZCB0
byBvYnRhaW4gdGhlIHZlcnNpb25pbmcgaW5mb3JtYXRpb24uIEhhdmluZyBkZXRlcm1pbmlzdGlj
IGRhdGEgbm9kZSBJRHMgY2FuIGJlIHVzZWQgdG8gaGF2ZSB2ZXJzaW9ucyBvZiB0aGUgc2FtZSBt
b2R1bGUgKGUuZy4gYWRkaW5nIG5ldyBsZWFmcywgbmV3IGNvbnRhaW5lcnMsIGV0Yy4pIC0gcmVt
b3ZpbmcgdGhpbmdzIG91dCB3aWxsIHJlcXVpcmUgbmV3IG1vZHVsZSBJRC4NCg0KSW4gYWRkaXRp
b24gdG8gaGF2aW5nIHJlZHVjZWQgZGF0YSByZXF1aXJlbWVudHMgKGluIFVSSXMgYW5kIENCT1Ip
LCBoYXZpbmcgdGhlIGZpeGVkIFlBTkcgbW9kdWxlIElEcyBoZWxwcyBsb2NhdGUgc29tZSBzcGVj
aWFsIHJlc291cmNlcy4NCkUuZy4gbW9kdWxlIElEOg0KICAgYWxpYXNpbmcgOiAxOCBiaXRzID0g
MCArIDAwDQogICAgICBmdWxsIFlBTkcgbW9kdWxlIElEID0gQUFBQSAoY29tcHJlc3NlZCB0byBB
KQ0KICAgWUFORyBtZXRhLWRhdGEgbW9kdWxlOiAxOCBiaXRzID0gMCArIDAxDQogICAgICBmdWxs
IFlBTkcgbW9kdWxlIElEPSBBQUFnMCAoY29tcHJlc3NlZCB0byBnMCkNCiAgIFJlc2VydmVkIGZv
ciBmdXR1cmUgdXNlOiAxOCBiaXRzID0gMCArIDEwIGFuZCAxOCBiaXRzID0gMCArIDExDQoNClRo
ZSBZQU5HIG1ldGEtZGF0YSBtb2R1bGUgY2FuIHByb3ZpZGUgYWxsIG5lY2Vzc2FyeSBtZXRhLWlu
Zm9ybWF0aW9uLCBlLmcuIG1vZC51cmksIHRoZSBsb2FkZWQgbW9kdWxlcywgdGhlaXIgdmVyc2lv
bnMsIGFuZCBzbyBmb3J0aC4gVGhpcyBrZWVwcyB0aGUgc2VwYXJhdGlvbiBiZXR3ZWVuIGFsaWFz
aW5nIGFuZCBtZXRhLWluZm9ybWF0aW9uLiBOb3RlLCB0aGF0IHRoZSBtZXRhLW1vZHVsZSBZQU5H
IHNjaGVtZSB3aWxsIGJlIHB1Ymxpc2hlZCB3aXRoIGEgbm9ybWFsIGFzc2lnbmVkIFlBTkcgbW9k
dWxlIElELCB3aGljaCB3aWxsIGJlIG1hcHBlZCB0byB0aGUgL21nL2cwLCBlLmcuIGNoYW5naW5n
IHRoZSBtZXRhLWRhdGEgYSBjb3VwbGUgb2YgeWVhcnMgZG93biB0aGUgcm9hZCBpcyBwb3NzaWJs
ZSB3aXRoIG9yIHdpdGhvdXQgdmVyc2lvbmluZy4NCg0KSSBhbHNvIGRvbuKAmXQgdGhpbmsgaXQg
d291bGQgYmUgYSBnb29kIGlkZWEgdG8gaGF2ZSBjb21wbGV4IGFsaWFzaW5nIG1lY2hhbmlzbXMs
IGFuZCB0aGlzIHNob3VsZCBiZSBmdXJ0aGVyIGRpc2N1c3NlZC4gSXQgd2lsbCBiZSB2ZXJ5IHVz
ZWZ1bCBmb3IgbWFuYWdlZCBuZXR3b3Jrcy4gVGhlIC9tZy9BIHJlc291cmNlIHNob3VsZCBiZSBr
ZXB0IGFzIGxpZ2h0IGFzIHBvc3NpYmxlLiBGb3IgdGhlIG1vbWVudCBJIHRoaW5rIHRoZXJlIGFy
ZSBvbmx5IHR3byBuZWNlc3NhcnkgcGllY2VzIG9mIGluZm9ybWF0aW9uIHRoYXQgbmVlZCB0byBi
ZSBnaXZlbiBieSBpdDogaGFzaC12YWx1ZSBvZiB0aGUgY29udGVudHMgb2YgdGhlIG1hcHBpbmcg
YW5kIFVSSSB0byBleHRyYWN0IHRoZSBmdWxsIG1hcHBpbmcuIFRoZSBtYXBwaW5nIGNhbiBiZSBv
YnRhaW5lZCBmcm9tIHRoZSBtZXRhLWRhdGEgKC9tZy9nMCBvciAud2VsbC1rbm93bi9jb3JlKS4g
IFRoZSBzaW1wbGVzdCBtZWNoYW5pc20gdG8gYmUgdXNlZCBpcyB0aGUgZm9sbG93aW5nOg0KDQox
KSBJZiBubyBhbGlhc2VzIGFyZSBkZWZpbmVkLCB0aGVuIHRoZSBjbGllbnQgY2FuIFBPU1QgYSBu
ZXcgYWxpYXMgbWFwcGluZw0KICAgMS5hKSB0aGUgYWxpYXMgbWFwcGluZyBleHBpcmVzIGFmdGVy
IGEgdGltZXIgKGRlZmF1bHQgdmFsdWUgPSAxaCwgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gYnkg
dGhlIGNsaWVudCkNCiAgIDEuYikgdXBvbiB0aW1lciBleHBpcnksIHRoZSBhbGlhcyBtYXBwaW5n
IGlzIGRlbGV0ZWQNCiAgIDEuYykgdGhlIHRpbWVyIGNhbiBiZSBleHRlbmRlZCB3aXRoIGEga2Vl
cC1hbGl2ZSBQT1NUIGZyb20gYW55IGNsaWVudA0KMikgQW4gYWxpYXMgbWFwcGluZyBjYW5ub3Qg
YmUgYWx0ZXJlZCBvciBkZWxldGVkIGJ5IGEgY2xpZW50Lg0KDQpUaGUgcmVhc29uaW5nIGJlaGlu
ZCB0aGlzIGlzIHRoZSBmb2xsb3dpbmc6IEEgbm9kZSBiZWNvbWVzIOKAmG1hbmFnZWTigJkgYnkg
YSBjbGllbnQsIGFuZCB0aGUgY2xpZW50IHJlZ2lzdGVycyB0aGlzLiBJZiBhIGRpZmZlcmVudCBj
bGllbnQgdHJpZXMgdG8gUE9TVCBuZXcgY29uZmlndXJhdGlvbiBpdCB3aWxsIHJlY2VpdmUgYSA0
LjAzIEZvcmJpZGRlbi4NCg0KVGhpcyBhY3R1YWxseSBtYWtlcyBjb25maWd1cmluZyBhbmQgaW1w
bGVtZW50aW5nIGFsaWFzZXMgcmVhbGx5IHN0cmFpZ2h0Zm9yd2FyZC4gVXBvbiBkaXNjb3Zlcnkg
b2YgYSBub2RlLCBhIGNsaWVudCBjYW4gZGlyZWN0bHkgUE9TVCB0byAvbWcvQSwgYW5kIGlmIGl0
IHJlY2VpdmVzOg0KICAgLSAiNC4wNCBOb3QgRm91bmQiLCB0aGVuIGFsaWFzaW5nIGlzIG5vdCBz
dXBwb3J0ZWQNCiAgIC0gIjQuMDMgRm9yYmlkZGVuIiwgdGhlIGFsaWFzIG1hcHBpbmcgaXMgYWxy
ZWFkeSBkZWZpbmVkIChieSBzb21lb25lIGVsc2UpDQogICAtICIyLjAxIENyZWF0ZWQiIC0gYWxp
YXMgZGVmaW5lZA0KICAgLSAiMi4wNCBDaGFuZ2VkIiAtIGFsaWFzIHRpbWVyIHVwZGF0ZWQNCg0K
SWYgdGhlIC9tZy9nMCBpcyBhY2NlcHRlZCBhcyBZQU5HIG1ldGEtZGF0YSBtb2R1bGUgcG9pbnRl
ciwgdGhlbiB0aGUgYWN0dWFsIGFsaWFzIG1hcHBpbmcgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRo
ZXJlLg0KDQpCZXN0LA0KQWxleGFuZGVyDQoNCg0KDQoNCkxlIDUganVpbiAyMDE1IMOgIDIzOjQz
LCBNaWNoZWwgVmVpbGxldHRlIDxNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208bWFp
bHRvOk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4+IGEgw6ljcml0IDoNCg0KSGkg
QWxleGFuZGVyIGFuZCBIaSBBbmR5DQoNCkkgdGhpbmtzIHdlIGNhbiBhdm9pZCB0aGUgc3VwcG9y
dCBvZiBhIGNvbXBsZXggYWxpYXNlcyBtZWNoYW5pc20gYW5kIHN0aWxsIGFyY2hpdmUgdGhlIHNh
bWUgbGV2ZWwgb2YgbWVzc2FnZSBjb21wcmVzc2lvbi4NClRoZSBzb2x1dGlvbiBjb25zaXN0cyBv
ZiBzdXBwb3J0aW5nIHR3byBmb3JtcyBvZiBkYXRhIG5vZGUgaWRlbnRpZmllciwgdGhlIHNhbWUg
d2F5IGFzIFJFU1Rjb25mLiAoZS5nLiBpZXRmLXN5c3RlbTpjdXJyZW50LWRhdGV0aW1lIHZzLiBj
dXJyZW50LWRhdGV0aW1lKQ0KDQpUaGUgbG9uZyBmb3JtIHdpbGwgY29uc2lzdCBvZiB0aGUgSUQg
Zm9ybWF0IHByb3Bvc2VkIGJ5IEFsZXhhbmRlciAgKDIgcmVzZXJ2ZWQgYml0cywgMjAgYml0cyBt
b2R1bGUgSUQsIDEwIGJpdHMgZGF0YSBub2RlIElEKS4NClRoZSBzaG9ydCBmb3JtIHdpbGwgY2Fy
cnkgb25seSB0aGUgZGF0YSBub2RlIElEICAoMTAgYml0cyBkYXRhIG5vZGUgSUQpLg0KVGhlIGxv
bmcgZm9ybSB3aWxsIGJlIHVzZWQgb25seSB3aGVuIG5lZWRlZC4NCg0KTGV0IGFzc3VtZSB3ZSBo
YXZlIHRoZXNlIHR3byBtb2R1bGVzOg0KDQptb2R1bGUgYSB7DQoNCiAgY29udGFpbmVyIGNvbnRh
aW5lckEgew0KICAgIGxlYWYgbGVhZkExIHsgdHlwZSBzdHJpbmd9LA0KICAgIGxlYWYgbGVhZkEy
IHsgdHlwZSBzdHJpbmd9DQogIH0NCn0NCg0KbW9kdWxlIGIgew0KICBpbXBvcnQgYSB7IHByZWZp
eCBhOyB9DQoNCiAgYXVnbWVudCAiL2E6Y29udGFpbmVyQSIgew0KICAgIGxlYWYgbGVhZkEzIHsg
dHlwZSBzdHJpbmd9DQogIH0NCn0NCg0KTGV0IGFzc3VtZSB3ZSBoYXZlIHRoZXNlIGFzc2lnbmVk
IElEczoNCg0KDQoNCklEDQoNCkZ1bGwgSUQNCg0KQmFzZTY0DQoNCm1vZHVsZSBhDQoNCjI1DQoN
Cg0KDQoNCg0KY29udGFpbmVyIGNvbnRhaW5lckENCg0KMQ0KDQoxMTAwMTAwMDAwMDAwMDEgPSAy
NTYwMQ0KDQpHUUINCg0KbGVhZiBsZWFmQTENCg0KMg0KDQoxMTAwMTAwMDAwMDAwMTAgPSAyNTYw
Mg0KDQpHUUMNCg0KbGVhZiBsZWFmQTINCg0KMw0KDQoxMTAwMTAwMDAwMDAwMTEgPSAyNTYwMg0K
DQpHUUQNCg0KbW9kdWxlIGINCg0KMjYNCg0KDQoNCg0KDQpsZWFmIGxlYWZBMw0KDQoxDQoNCjEx
MDEwMDAwMDAwMDAwMSA9IDI2NjI1DQoNCkdnQg0KDQoNCkEgR0VUIGNhbiBiZSBpbXBsZW1lbnRl
ZCBhcyBmb2xsb3c6DQoNClJFUTogR0VUIGV4YW1wbGUuY29tL21nL0dRQjxodHRwOi8vZXhhbXBs
ZS5jb20vbWcvR1FCPg0KDQpSRVM6IDIuMDUgQ29udGVudCAoQ29udGVudC1Gb3JtYXQ6IGFwcGxp
Y2F0aW9uL2Nib3IpDQp7DQogIDEgOiB7DQogICAgMiA6ICIgbGVhZkExIHZhbHVlIiwNCiAgICAz
IDogIiBsZWFmQTIgdmFsdWUgIg0KICAgIDI2NjI1IDogIiBsZWFmQTMgdmFsdWUgIg0KICB9DQp9
DQoNCkEgUFVUIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBmb2xsb3c6DQoNClJFUTogUFVUIGV4YW1w
bGUuY29tL21nPGh0dHA6Ly9leGFtcGxlLmNvbS9tZz4NCnsNCiAgMjU2MDEgOiB7DQogICAgMiA6
ICIgbGVhZkExIHZhbHVlIiwNCiAgICAzIDogIiBsZWFmQTIgdmFsdWUgIg0KICAgIDI2NjI1IDog
IiBsZWFmQTMgdmFsdWUgIg0KICB9DQp9DQoNClJFUzogMi4wNSBPaw0KDQoNCjxpbWFnZTAwMS5q
cGc+DQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRy
aWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0
ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0K
DQoNCg0KRnJvbTogQWxleGFuZGVyIFBlbG92IFttYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVj
b20tYnJldGFnbmUuZXVdDQpTZW50OiA1IGp1aW4gMjAxNSAxNjoxMA0KVG86IEFuZHkgQmllcm1h
bg0KQ2M6IE1pY2hlbCBWZWlsbGV0dGU7IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGll
dGYub3JnPjsgY29yZUBpZXRmLm9yZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJl
OiBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzDQoNCkhpIEFuZHksDQoNCllvdSBhcmUgcmlnaHQg
dGhhdCBpZiB3ZSBzdGFydCBjb25zaWRlcmluZyBtdWx0aXBsZSBjbGllbnRzLCBlYWNoIG9mIHdo
aWNoIHRyeWluZyB0byB1c2UgaXRzIGFsaWFzZXMgdGhlIHRoaW5ncyBiZWNvbWUuLiBsZXMgb3B0
aW1hbC4gQW5kIGlmIG5vIGNhdXRpb24gaXMgdGFrZW4gLSBjYW4gc3BlbGwgdHJvdWJsZS4NCg0K
VGhlIHBvaW50IGlzLCB5b3VyIGRlZmF1bHQgYmVoYXZpb3Igc2hvdWxkIGJlIHRvIHVzZSB0aGUg
bm9ybWFsIElELiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWF5IGRlY2lkZSB0aGF0IHlv
deKAmXJlIGdvaW5nIHRvIGJlIGhhdmluZyBxdWl0ZSBhIGxvdCBvZiBleGNoYW5nZXMgd2l0aCB0
aGUgc2FtZSBJRCwgc28geWVzLCB5b3UgY2FuIHJlZGVmaW5lIHRoZSBhbGlhcyBtYXBwaW5nLg0K
DQpIb3dldmVyLCB5b3UgYXJlIHJpZ2h0IHRoYXQgd2UgbmVlZCB0byB0YWtlIGNhcmUgb2YgZXZl
bnR1YWwgcmFjZSBjb25kaXRpb25zLiBJbmRlZWQsIGluIDZUaVNDSCBhbmQgb3RoZXIgbWFuYWdl
ZCBuZXR3b3JrcyBpdCBtYXkgbm90IGhhcHBlbiAod2hpY2ggYWxvbmUgaXMgc3VmZmljaWVudCBm
b3IgbWUgdG8gaGF2ZSB0aGlzIMKrIGdvbGRlbiDCuyBJRHMgYmUgbGVmdCBvdXQgb2YgdGhlIMKr
IHJhbmRvbWx5IGFsbG9jYXRlZCDCuywgb3IgwqsgZXRlcm5hbGx5IGxvY2tlZCB0byBhIHNwZWNp
ZmljIElEIMK7IHJlc291cmNlcykuDQoNCkhhdmluZyB0aGUgL21nL0EgcmVzb3VyY2UgcHJvdmlk
ZSB0aGUgbWV0YS1pbmZvcm1hdGlvbiBjYW4gaGVscCBzb2x2ZSBhIGxvdCAoYWxsPykgb2YgdGhl
IHByb2JsZW1zLiAoaW4gbXkgcGFzdCBtYWlscyBJIHJlZmVycmVkIHRoaXMgYXMgL21nLzAgYnV0
IEkgbWVhbnQgL21nL0EsIHNvcnJ5KQ0KDQpUaGUgZmlyc3QgcmVxdWlyZW1lbnQgZm9yIGEgY2xp
ZW50IGlzIHRvIHF1ZXJ5IHRoZSAvbWcvQSByZXNvdXJjZS4NClRoZXJlLCB5b3UgY2FuIGdldCB0
aGUgbWV0YS1kYXRhIGNvbmNlcm5pbmcgdGhlIGFsaWFzZXMsIGluY2x1ZGluZyB0aGUgaGFzaCBv
ZiB0aGUgYWxpYXMgbWFwcGluZywgdGhlIG1hcHBpbmcgaXRzZWxmIChpZiBuZWNlc3NhcnkpLCBh
bmQgdGhlIHVwZGF0ZXIgKGlkZW50aWZpZWQgYnkgYSB0b2tlbikuIEnigJltIHdvbmRlcmluZyBp
ZiB0aGVyZSBjb3VsZCBiZSBhZGRlZCBhIHZhbGlkaXR5IG9mIHRoZSBtYXBwaW5nLiBBIGNsaWVu
dCBjYW4gY2hhbmdlIHRoZSBtYXBwaW5nIE9OTFkgaWYgaXQgaXMgdGhlIGxhc3QgdXBkYXRlciAo
aGFzaCt0b2tlbiBtYXRjaCksIG9yIGlmIHRoZSB2YWxpZGl0eSBoYXMgZXhwaXJlZC4gSWYgdGhl
IHNlcnZlciBoYXMgYSB3YXkgb2Yga2VlcGluZyB0aW1lIGl0IGNhbiB0cmFjayB0aGUgdmFsaWRp
dHkgaXRzZWxmLiBPdGhlcndpc2UsIGl0IGNhbiBiZSBhIGNvbnN0YW50IGRhdGV0aW1lIGFmdGVy
IHdoaWNoIHRoZSByZXNvdXJjZSBpcyBjb25zaWRlcmVkIGV4cGlyZWQgYW5kIGFueSBjbGllbnQg
Y2FuIHVwZGF0ZSB0aGUgcmVzb3VyY2UuDQoNCkp1c3QgdG8gYmUgc3VyZSwgSeKAmW0gdGFsa2lu
ZyBhYm91dCBjbGllbnRzLCB3aGljaCBhcmUgY2FwYWJsZSBlbm91Z2ggdG8ga2VlcCB0cmFjayBv
ZiBzb21lIGNvbnRleHQgYWJvdXQgdGhlIHNlcnZlcnMgaXQgY29udHJvbHMgT1IgYSBjbGllbnQg
aW4gYSBwYXJ0aWN1bGFyIGtpbmQgb2YgbmV0d29yaywgd2hpY2gga25vd3MgdGhhdCBzb21lIHRo
aW5ncyBhcmUganVzdCBleHBlY3RlZCB0byBiZSB0aGVyZSBhbmQgdGhlcmUgaXMgbm8gd2F5IGZv
ciB0aGVtIHRvIGhhcHBlciBvdGhlcndpc2UuDQoNCioqKioqKioqKioqKioqKioqDQoqKiBUaGUg
ZGVmYXVsdCB3YXkgb2YgZG9pbmcgdGhpbmdzIHNob3VsZCBhbHdheXMgYmUgdG8gdXNlIHRoZSBu
b3JtYWwgSURzLioqIElmIHlvdSB3YW50IHRvIGJlIG9wdGltYWwgKGluIHNvbWUgd2F5KSwgZ2V0
IC9tZy9BLCBhbmQgaWYgeW91IHVuZGVyc3RhbmQgaXQgLSB1c2UgaXQuIElmIHRoZXJl4oCZcyBu
b3RoaW5nLCBQT1NUIHdoYXRldmVyIHlvdSBsaWtlLCBidXQgYmUgc3VyZSB0aGF0IHlvdSBoYXZl
IGVub3VnaCByZXNvdXJjZXMgdG8gcmVtZW1iZXIgd2hhdCB5b3XigJlyZSBkb2luZy4NCioNCiog
SWYgeW91IHdhbnQgdG8gc2V0IGEgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gaW4gZWFjaCBvZiB5
b3VyIDEwTSBub2RlcywgdGhlbiB3ZWxsIHlvdSBzaG91bGQgaGF2ZSB0aGUgc3RvcmFnZSB0byBy
ZW1lbWJlciBhbGwgb2YgdGhlbS4NCioqKioqKioqKioqKioqKioqDQoNCkJ5IHRoZSB3YXksIEkg
d2FzIHRoaW5raW5nIG9mIHNvbWV0aGluZyBxdWl0ZSBpbnRlcmVzdGluZywgd2hpY2ggY2FuIGNv
bWUgc3VwcGxlbWVudCB0aGUgbm9kZSBJRCBhbGlhc2luZy4gQWN0dWFsbHksIEkgdGhpbmsgdGhh
dCB0aGUgMjAgYml0cyArIDEwIGJpdHMgWUFORyBpZCByZWFsbHkgb3BlbnMgYSBsb3Qgb2YgcGVy
c3BlY3RpdmVzICh3aWxsIHRyeSB0byB3cml0ZSB0aGF0IHVwIHRvbW9ycm93KS4NCg0KVGhlIG1h
am9yIHBvaW50IGlzIHRoYXQgd2hlbiB0aGUgZGF0YSBub2RlIElEID0gMCwgdGhlIG1vZHVsZSBJ
RCBjYW4gYmUgdXNlZCBhcyBhIHJlc291cmNlIHRvIG9idGFpbiBtZXRhLWluZm9ybWF0aW9uIG9u
IHRoZSBtb2R1bGUuIEZvciBleGFtcGxlLCBpdHMgdmVyc2lvbi4gVGhpcyB3YXksIGlmIHlvdSB1
cGRhdGUgYSBZQU5HIG1vZHVsZSB3aXRoIGEgbmV3IG9uZSwgd2hpY2ggb25seSBhcHBlbmRzIGVs
ZW1lbnRzLCB5b3Ugd2lsbCBub3QgbmVlZCB0byByZXF1ZXN0IGEgbmV3IG1hbmFnZWQgSUQuIEdF
VCAvbWcvbW9kdWxlSUQ/a2V5cz12ZXJzaW9uICh3aXRoIGRhdGEgbm9kZSBJRD0wKSBhbmQgeW91
IGtub3cgd2hhdCBpcyB5b3VyIG1vZHVsZSByZWFsbHkgY2FwYWJsZSBvZi4NCg0KQWxzbywgdGhl
IHNwZWNpYWwgcGxhY2Ugb2YgL21nL0EgY2FuIGFjdHVhbGx5IGJlY29tZSBhbiBlbnRyeSBwb2lu
dCBmb3IgbW9zdCBvZiB0aGUgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBDb01JICh0byBiZSBkaXNj
dXNzZWQuLiBJIGhhdmUgbm8gc3Ryb25nIGZlZWxpbmdzIG9uIHRoaXMpLiBJdCBjYW4sIGZvciBl
eGFtcGxlLCBwcm92aWRlIHRoZSBtb2QudXJpLCBhbmQgb3RoZXIgaW5mb3JtYXRpb24uIFRoZSBv
bmx5IGluZm9ybWF0aW9uIHRoYXQgcmVtYWlucyB0cnVseSBuZWNlc3NhcnkgdG8gYmUgZml4ZWQg
aW4gLy53ZWxsLWtub3duL2NvcmUgaXMgdGhlIGVudHJ5IHBvaW50IHRvIHRoZSBDb01JIGludGVy
ZmFjZSAoZS5nLiAvbWcpLiBBZnRlcndhcmRzLCBldmVyeXRoaW5nIGNhbiBiZSBkZXRlcm1pbmVk
IGZyb20gL21nL0Egd2l0aCBxdWVyaWVzICgvbWcvQT9rZXlzPW1vZC51cmkrYWxpYXMudXJpKQ0K
DQpCZXN0LA0KQWxleGFuZGVyDQoNClBTLg0KQXMgaWYgZGF0YSBub2RlIGFsaWFzaW5nIGlzIG5v
dCBlbm91Z2jigKYgbW9kdWxlIElEIGFsaWFzaW5nICh0aGlzIG9uZSBpcyByZWFsbHkgdmVyeSBs
b3cgaW4gbXkgcHJpb3JpdGllcyBhbmQgSeKAmW0gbWVudGlvbmluZyBpdCBvbmx5IGZvciBjb21w
bGV0ZW5lc3MpOg0KDQpUaGUgZmlyc3QgMTIgYml0cyB0YWtlIDIgVVJJIGNoYXJhY3RlcnMgYW5k
IDIgYnl0ZXMgaW4gQ0JPUi4gSGF2aW5nIDEwIGJpdHMgZm9yIHRoZSBkYXRhIG5vZGUgSUQgbGVh
dmVzIDIgaW50ZXJlc3RpbmcgYml0cyBpbiB0aGUgbW9kdWxlIElEIHBhcnTigKYgU28gd2UgY2Fu
IGhhdmUgbW9kdWxlIGFsaWFzZXMgYXMgd2VsbCAoYWxiZWl0IG9ubHkgMykuDQoNClRoYXQgaXMs
IGluIFVSSSBlbmNvZGluZywNCjB4MDAwMDAwMDAtMHgwMDAwMDNGRiAtPiBkYXRhIG5vZGUgYWxp
YXNpbmcNCjB4MDAwMDA0MDAtMHgwMDAwMDdGRiAtPiBhbGlhc2VkIG1vZHVsZSAxDQoweDAwMDAw
ODAwLTB4MDAwMDBCRkYgLT4gYWxpYXNlZCBtb2R1bGUgMg0KMHgwMDAwMEMwMC0weDAwMDAwQkZG
LT4gYWxpYXNlZCBtb2R1bGUgMw0KDQpJbXBsZW1lbnRhdGlvbi13aXNlLCBpdHMgcmVhbGx5IGVh
c3k6IHVwb24gcmVxdWVzdCwgaWYgdGhlIG1vZHVsZSBJRCA9IGFsaWFzZWQgbW9kdWxlIElEIDEs
IHJlcGxhY2UgdGhlIG1vZHVsZSBJRCBwYXJ0LCBzbyBubyBuZWVkIHRvIG1hcCB0aGUgZW50aXJl
IG1vZHVsZSBJRCAvIGRhdGEgbm9kZSBJRCBzcGFjZS4NCg0KQnV0IHJlYWxseSwgdGhhdCBtdWNo
IG9wdGltaXphdGlvbj8gRXZlbiBpZiBpdCBzZWVtcyBzdHJhaWdodGZvcndhcmQsIEkgd291bGQg
bGlrZSB0byBzZWUgdXNlIGNhc2VzIHRoYXQgY291bGQgYmVuZWZpdCBmcm9tIHRoaXMgYmVmb3Jl
IGFjdHVhbGx5IGNvbnNpZGVyaW5nIGl0Lg0KDQoNCg0KTGUgNSBqdWluIDIwMTUgw6AgMjA6NTUs
IEFuZHkgQmllcm1hbiA8YW5keUB5dW1hd29ya3MuY29tPG1haWx0bzphbmR5QHl1bWF3b3Jrcy5j
b20+PiBhIMOpY3JpdCA6DQoNCg0KDQoNCk9uIEZyaSwgSnVuIDUsIDIwMTUgYXQgMTE6NDEgQU0s
IE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWls
dG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPj4gd3JvdGU6DQpIaSBBbGV4YW5k
ZXINCg0KSSBoYXZlIHNvbWUgY29uY2VybnMgYWJvdXQgYWxsb3dpbmcgQ29NSSBjbGllbnQocykg
dGhlIGNvbnRyb2wgb2YgdGhlIGxpc3Qgb2YgYWxpYXNlcy4NClRoaXMgYXBwcm9hY2ggd29yayBm
aW5lIGZvciB0aGUgZmlyc3QgQ29NSSBhcHBsaWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1dCB3aGF0
IGRvIHdlIGRvIHdpdGggdGhlIHN1YnNlcXVlbnQgQ29NSSBhcHBsaWNhdGlvbj8NCg0KT25lIHBv
c3NpYmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAo
YWxpYXMsIGRhdGEgbm9kZSBJRCkgdG8gdGhlIENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIHRo
ZSBDb01JIGNsaWVudCBtaWdodCByZWNlaXZlIGFuIGVycm9yIGlmIG9uZSBvciBtdWx0aXBsZSBv
ZiB0aGVzZSBhbGlhc2VzIGFyZSBhbHJlYWR5IHJlc2VydmVkLg0KDQpBIHNlY29uZCBwb3NzaWJs
ZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGRhdGEg
bm9kZSBJRCkgYW5kIGdldCBhIGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5vZGUgSUQpIGZyb20gdGhl
IENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIENvTUkgY2xpZW50cyB3aWxsIGhhdmUgdG8gZGVh
bCB3aXRoIGEgbWl4IHBvcHVsYXRpb24gb2YgYWxpYXNlcy4NCg0KVGhlIHByb3Bvc2VkIHNvbHV0
aW9uIG5lZWQgdG8gc2NhbGUgdG8gYSBtdWx0aS12ZW5kb3JzLCBtdWx0aXBsZSBhcHBsaWNhdGlv
bnMgZW52aXJvbm1lbnQuDQpXaXRoIHRoaXMgaXMgbWluZCwgZG8geW91IGhhdmUgYW55IGFsdGVy
bmF0aXZlIHNvbHV0aW9ucyB0byBwcm9wb3NlPw0KDQoNCg0KRG9lcyB0aGlzIGFwcHJvYWNoIGFs
bG93IGVhY2ggY2xpZW50IHRvIGhhdmUgYSBkaWZmZXJlbnQgc2V0IG9mIGFsaWFzZXMsDQpzbyB0
aGUgc2VydmVyIGhhcyB0byBtYWludGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGluZyBmb3IgZWFjaCBj
bGllbnQ/DQpUaGlzIHNlZW1zIGxpa2UgYSBsb3Qgb2Ygb3ZlcmhlYWQgYW5kIE5WLXN0b3JhZ2Ug
cmVxdWlyZW1lbnRzDQpvbiB0aGUgc2VydmVyLg0KDQpDaGFuZ2luZyB0aGUgc2NoZW1hIGlkZW50
aWZpZXJzIGJhc2VkIG9uIHdoaWNoIGNsaWVudCBpcw0Kc2VuZGluZyB0aGUgcmVxdWVzdCBzZWVt
cyBsaWtlIGEgY29tcGxpY2F0ZWQgZGVzaWduIGNoYW5nZQ0KZnJvbSBSRVNUQ09ORiwgTkVUQ09O
Riwgb3IgU05NUCwgd2hlcmUgdGhlcmUgaXMgb25seQ0KMSBzY2hlbWEgdHJlZSB3aGljaCBpcyBu
b3QgZGVwZW5kZW50IG9uIHRoZSBjbGllbnQgaWRlbnRpdHkuDQoNCg0KQW5keQ0KDQoNCg0KDQo8
aW1hZ2UwMDEuanBnPg0KDQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERp
cmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hl
bC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmls
bGlhbnRpbmMuY29tPg0Kd3d3LnRyaWxsaWFudGluYy5jb208aHR0cDovL3d3dy50cmlsbGlhbnRp
bmMuY29tLz4NCg0KDQoNCkZyb206IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5w
ZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1PG1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1i
cmV0YWduZS5ldT5dDQpTZW50OiA1IGp1aW4gMjAxNSAxMjowMw0KVG86IE1pY2hlbCBWZWlsbGV0
dGUNCkNjOiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYu
b3JnPjsgY29yZUBpZXRmLm9yZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBS
ZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzDQoNCkhpIE1pY2hlbCwNCg0KDQpMZSA1IGp1aW4gMjAx
NSDDoCAxNzoxNywgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRp
bmMuY29tPG1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+PiBhIMOpY3Jp
dCA6DQoNCkhpIEFsZXhhbmRlcg0KDQpJbiB5b3VyIHByZXNlbnRhdGlvbiBhdCA2VGlTQ0gsIHlv
dSBwcm9wb3NlIHRoZSBmb2xsb3dpbmcgZGF0YSBub2RlIElEIHN0cnVjdHVyZS4NCg0K4oCiICAg
ICAgIDMyIGJpdHMgWUFORyBJRA0K4oCTICAgICAgMjAgYml0cyBmb3IgbW9kdWxlIElEIChhc3Np
Z25lZCBieSBJRVRGKQ0K4oCTICAgICAgMTAgYml0cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0
ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpDQoNCg0KQmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNh
biByZXNlcnZlIG1vZHVsZSBJRCB6ZXJvIGZvciBhbGlhc2VzLg0KDQoNCkkgd2FzIGp1c3Qgc3Vt
bWFyaXppbmcgd2hhdCB3YXMgZGlzY3Vzc2VkIG9uIHRoZSBkaXNjdXNzaW9uIGluIENvTUkuIEFj
dHVhbGx5LCBpdCBpcyAzMCBiaXRzIFlBTkcgSUQsIGJ1dCB0aGF04oCZcyBmb3IgcHVycG9zZXMg
dG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBZQU5HIGhhc2ggYW5kIEkgZG9u4oCZdCBtaW5kIGtl
ZXBpbmcgaXQgMzAgYml0cy4NCg0KDQpJZiB3ZSB3YW50IHRvIG1pbmltaXplIGJvdGggdGhlIG5l
dHdvcmsgYW4gbm9kZSByZXNvdXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFzIG1lY2hhbmlzbSwg
d2UgY2FuIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoaXMgc3BhY2UuDQpUaGlzIGNhbiBiZSBp
bXBsZW1lbnRlZCBieSBhIHNpbmdsZSBpbnRlZ2VyIHJlc291cmNlIChlLmcuIGxlYWYgYWxsaWFz
c2VkTW9kdWxlIHsgdHlwZSB1aW50MzIgfSApDQpUaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRl
cyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQuDQoNCg0KSXQgaXMgcG9zc2libGUgdG8gbWFwIGFu
IGVudGlyZSBtb2R1bGUgdG8gdGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlzIGlzIHVwIHRvIHRoZSBv
cGVyYXRvci4gSG93ZXZlciwgaWYgeW91IGxvYWQgdHdvIG1vZHVsZXMgd2hpY2ggcmVkZWZpbmUg
dGhlIHNhbWUgYWxpYXMgeW91IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQgZnJvbSBpdC4gTWF5YmUg
aXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IHRoYXQgeW91IHdh
bnQgdGhlIGFsaWFzZXMgZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLg0KDQpJ
ZiB0aGUgL21nLzAgYWxpYXMgaXMgcmVzZXJ2ZWQgZm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0
aGlzIGNvdWxkIGJlIHNpbXBseSBzYXlpbmc6DQpQT1NUIC9tZy8wDQp7DQogInNvdXJjZV91cmki
IDogIi9tZy9CQUEiDQp9DQoNCndoZXJlIC9tZy9CQUEgaXMgdGhlIFlBTkcgaWQgb2YgdGhlIG1v
ZHVsZSAoMjAgYml0cyBtb2R1bGUgSUQgKyAxMCBiaXRzIHNldCB0byAwKS4gVGhpcyB3YXksIHRo
ZSBzZXJ2ZXIgd2lsbCBrbm93OiBPSywgZ2V0IHRoZSBhbGlhcyBtYXBwaW5nIGZyb20gdGhlIFlB
Tkcgc2NoZW1lIG9mIG1vZHVsZSB3aXRoIElEID0gQiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURiku
DQoNCk9yLCB5b3UgY2FuIGR5bmFtaWNhbGx5IGNvbmZpZ3VyZSB0aGUgbWFwcGluZzoNClBPU1Qg
L21nLzANCnsNCiAgWUFOR19pZCA6IGFsaWFzLA0KICBZQU5HX2lkIDogYWxpYXMsDQogIFlBTkdf
aWQgOiBhbGlhcw0KfQ0KDQpJZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhp
YmxlIGFsaWFzZXMgbWVjaGFuaXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5H
IElEKSBzZWVtIHRoZSBzb2x1dGlvbi4NCkhvd2V2ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhh
dCB0aGlzIHN0cnVjdHVyZSBjYW4gYmUgYXMgbGFyZ2UgYXMgMTI1MCBieXRlcyBwZXIgQ29NSSBz
ZXJ2ZXIgYWNjZXNzZWQgaWYgbGltaXRlZCB0byAyNTYgYWxpYXNlcy4NCg0KVGhpcyBpcyBhc3N1
bWluZyB5b3UgbmVlZCBhIHNlcGFyYXRlIG1hcHBpbmcgZm9yIGVhY2ggc2VydmVyLiBJIHdvdWxk
IHN1cHBvc2UgdGhhdCBpbiBhIG5ldHdvcmsgeW914oCZbGwgaGF2ZSBhIHNpbmdsZSBhbGlhcyBt
YXBwaW5nIChtYXliZSB0d28/KSAtIGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5aW5nIHRvIG9wdGlt
aXplIHRoZSBtYW5hZ2VtZW50IG9mIHlvdXIgZGV2aWNlcyAoc2VydmVycykuIFNvLCB0eXBpY2Fs
bHkgeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFu
bmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRoYXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5
b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4NCg0KQmVzdCwNCkFsZXhhbmRlcg0KDQoNCjxpbWFn
ZTAwMS5qcGc+DQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0
b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZl
aWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFu
dGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5j
b20vPg0KDQoNCg==

--_000_DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0DM2PR0601MB794na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OkhlbHZldGljYTsNCglwYW5vc2UtMToyIDExIDYgNCAyIDIgMiAyIDIg
NDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAg
MCAwIDAgMCAwIDAgMCAwO30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0
aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQt
ZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KLyogU3R5
bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3Jt
YWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEy
LjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQphOmxpbmssIHNw
YW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0K
CXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlu
a0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4
dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgsIGxpLk1zb0xpc3RQ
YXJhZ3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1wcmlvcml0eTozNDsN
CgltYXJnaW4tdG9wOjBpbjsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1hcmdpbi1ib3R0b206MGlu
Ow0KCW1hcmdpbi1sZWZ0Oi41aW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6
ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0Kc3Bhbi5h
cHBsZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6YXBwbGUtY29udmVydGVkLXNw
YWNlO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5
Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0K
Lk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXpl
OjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFy
Z2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpX
b3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxp
c3QtaWQ6NDM2MTAwMDY3Ow0KCW1zby1saXN0LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBs
YXRlLWlkczotODg1MjQ2MjQ2IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAyNTI4
MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1O30NCkBs
aXN0IGwwOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl
dmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3lt
Ym9sO30NCkBsaXN0IGwwOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2
ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFt
aWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9w
Om5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0u
MjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw0DQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw1
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0K
CW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm
dDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpA
bGlzdCBsMDpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s
ZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5Oldp
bmdkaW5nczt9DQpAbGlzdCBsMDpsZXZlbDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVs
bGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZv
bnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1m
b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5v
bmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVp
bjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVsOQ0KCXttc28t
bGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1s
ZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwxDQoJ
e21zby1saXN0LWlkOjc4ODIwODE4OTsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsNCgltc28tbGlz
dC10ZW1wbGF0ZS1pZHM6LTE5NjY0MjA3NzQgMjY5MDI1MjgxIDI2OTAyNTI4MyAyNjkwMjUyODUg
MjY5MDI1MjgxIDI2OTAyNTI4MyAyNjkwMjUyODUgMjY5MDI1MjgxIDI2OTAyNTI4MyAyNjkwMjUy
ODU7fQ0KQGxpc3QgbDE6bGV2ZWwxDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsN
Cgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZh
bWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0
OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJ
Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMTpsZXZlbDMNCgl7bXNvLWxldmVs
LW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwt
dGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1p
bmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMTpsZXZlbDQN
Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl
ZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBs
MTpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10
ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np
dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBO
ZXciO30NCkBsaXN0IGwxOmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1m
YW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwxOmxldmVsNw0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpu
b25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1
aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwxOmxldmVsOA0KCXttc28tbGV2ZWwt
bnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDE6bGV2ZWw5
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0Kb2wN
Cgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KLS0+PC9z
dHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVk
aXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJl
ZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9o
ZWFkPg0KPGJvZHkgbGFuZz0iRU4tQ0EiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRp
diBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5IaSBBbGV4YW5k
ZXI8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRoZSBwcm9wb3NlZCDi
gJxsb25nIGZvcm0sIHNob3J0IGZvcm3igJ0gaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGNvbmNl
cHQgb2YgYWxpYXNlcyBzaW5jZSB0aGUgc2hvcnQgZm9ybSBJRCBzcGFjZSBpcyB0aGUgc2FtZSBh
cyB0aGUgcHJvcG9zZWQNCiBhbGlhc2VzIElEIHNwYWNlLiBXZSB3aWxsIGhhdmUgdG8gY2hvb3Nl
IG9uZSBvciB0aGUgb3RoZXIuIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgSURzIDEsIDIsIDMg
aXMgdGhlIHNob3J0IGZvcm0gd2l0aGluIHRoZSBtb2R1bGUgSUQgMjUsIG5vdCBhbGlhcyAxLCAy
LCAzLiDigJxsb25nIGZvcm0sIHNob3J0IGZvcm3igJ0gYWRkIHNvbWUgZXh0cmEgb3ZlcmhlYWQg
Y29tcGFyZWQgdG8gYWxpYXNlcywgaG93ZXZlciB0aGlzIGFwcHJvYWNoIGhhdmUgbXVsdGlwbGUN
CiBhZHZhbnRhZ2VzOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFy
YWdyYXBoIiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8x
Ij48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTpTeW1ib2w7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+
PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+wrc8c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAm
cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5BbGxv
d3MgY29tcHJlc3Npb24gb2YgYWxsIG1vZHVsZXMsIG5vdCBqdXN0IGEgc21hbGwgc3Vic2V0IG9m
IElEcyAoMjAgb3IgMjU2IElEcyk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
TGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZl
bDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6
Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlm
XT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+RG8gbm90IHJlcXVpcmUgYW4gaW5pdGlhbCBoYW5kc2hha2UgZm9yIGFsaWFzZXMgZGlzY292
ZXJ5IG9yIGNvbmZpZ3VyYXRpb248bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
TGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZl
bDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6
Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlm
XT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+Q2FuIGJlIGltcGxlbWVudGVkIHVzaW5nIHRoZSBzYW1lIHNpbXBsZSBydWxlcyBhcyBSRVNU
Y29uZjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+UkVROiBHRVQ8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNw
YWNlIj4mbmJzcDs8L3NwYW4+ZXhhbXBsZS5jb20vbWcvR1FCPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh
bmc9IkZSLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVTOiAyLjA1IENvbnRlbnQgKENv
bnRlbnQtRm9ybWF0OiBhcHBsaWNhdGlvbi9jYm9yKTwvc3Bhbj48c3BhbiBsYW5nPSJGUi1DQSI+
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPns8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IDEgOiB7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyAyIDogJnF1b3Q7IGxlYWZBMSB2YWx1ZSZx
dW90Oyw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDMgOiAmcXVvdDsgbGVh
ZkEyIHZhbHVlICZxdW90Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJzcDsgMjY2
MjUgOiAmcXVvdDsgbGVhZkEzIHZhbHVlICZxdW90Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsg
fTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj59PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3Vh
Z2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj5BYm91dCB0aGUgbWV0YSBpbmZvcm1hdGlvbiBzdWNoIGFzIHRoZSBsaXN0IG9mIG1vZHVs
ZXMgYW5kIHRoZSBsaXN0IGZvciBzdHJlYW1zLiBUaGlzIHNob3VsZCBiZSBpbXBsZW1lbnRlZCB1
c2luZyBZQU5HIG1vZHVsZXMgLCDigJxpZXRmLXlhbmctbGlicmFyeeKAnQ0KIGFuZCDigJxpZXRm
LXJlc3Rjb25mLW1vbml0b3JpbmfigJ0gb3IgZXF1aXZhbGVudC4gV2UgZG9u4oCZdCBuZWVkIHRv
IGNyZWF0ZSBzcGVjaWFsIGJlaGF2aW91cnMgb3Igc3BlY2lhbCBxdWVyeSBwYXJhbWV0ZXJzIHRv
IGltcGxlbWVudCB0aGlzIG1ldGEgZGF0YS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3Vh
Z2U6RU4tVVMiPjxhIGhyZWY9Imh0dHA6Ly93d3cubmV0Y29uZmNlbnRyYWwub3JnL21vZHVsZXMv
aWV0Zi15YW5nLWxpYnJhcnkvMjAxNC0wOS0yNiI+aHR0cDovL3d3dy5uZXRjb25mY2VudHJhbC5v
cmcvbW9kdWxlcy9pZXRmLXlhbmctbGlicmFyeS8yMDE0LTA5LTI2PC9hPjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDtt
c28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+aWV0Zi15YW5nLWxpYnJhcnk6bW9kdWxlcy9tb2R1
bGUvbmFtZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1Pjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5p
ZXRmLXlhbmctbGlicmFyeTptb2R1bGVzL21vZHVsZS9yZXZpc2lvbjxvOnA+PC9vOnA+PC9zcGFu
PjwvdT48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+aWV0Zi15YW5nLWxpYnJhcnk6bW9kdWxl
cy9tb2R1bGUvc2NoZW1hPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4t
VVMiPmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL25hbWVzcGFjZTxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5pZXRmLXlhbmctbGlicmFyeTptb2R1
bGVzL21vZHVsZS9mZWF0dXJlPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL2NvbmZvcm1hbmNlPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPmlldGYteWFuZy1saWJyYXJ5
Om1vZHVsZXMvbW9kdWxlL3N1Ym1vZHVsZS9uYW1lPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL3N1Ym1v
ZHVsZS9yZXZpc2lvbjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij5pZXRmLXlhbmctbGlicmFyeTptb2R1bGVzL21vZHVsZS9zdWJtb2R1bGUvc2NoZW1hPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48YSBocmVmPSJodHRwOi8vd3d3Lm5l
dGNvbmZjZW50cmFsLm9yZy9tb2R1bGVyZXBvcnQvaWV0Zi1yZXN0Y29uZi1tb25pdG9yaW5nIj5o
dHRwOi8vd3d3Lm5ldGNvbmZjZW50cmFsLm9yZy9tb2R1bGVyZXBvcnQvaWV0Zi1yZXN0Y29uZi1t
b25pdG9yaW5nPC9hPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+aWV0
Zi1yZXN0Y29uZi1tb25pdG9yaW5nOnJlc3Rjb25mLXN0YXRlL2NhcGFiaWxpdGllcy9jYXBhYmls
aXR5PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPmlldGYtcmVz
dGNvbmYtbW9uaXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0cmVhbS9uYW1lPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPmlldGYtcmVzdGNvbmYtbW9u
aXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0cmVhbS9kZXNjcmlwdGlvbjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5pZXRmLXJlc3Rjb25mLW1vbml0
b3Jpbmc6cmVzdGNvbmYtc3RhdGUvc3RyZWFtcy9zdHJlYW0vcmVwbGF5LXN1cHBvcnQ8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+aWV0Zi1yZXN0Y29uZi1tb25p
dG9yaW5nOnJlc3Rjb25mLXN0YXRlL3N0cmVhbXMvc3RyZWFtL3JlcGxheS1sb2ctY3JlYXRpb24t
dGltZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5pZXRmLXJl
c3Rjb25mLW1vbml0b3Jpbmc6cmVzdGNvbmYtc3RhdGUvc3RyZWFtcy9zdHJlYW0vZW5jb2Rpbmcv
dHlwZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5pZXRmLXJl
c3Rjb25mLW1vbml0b3Jpbmc6cmVzdGNvbmYtc3RhdGUvc3RyZWFtcy9zdHJlYW0vZW5jb2Rpbmcv
ZXZlbnRzPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRh
YmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9Ijcx
NyIgc3R5bGU9IndpZHRoOjUzNy43NXB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+DQo8dGJv
ZHk+DQo8dHIgc3R5bGU9ImhlaWdodDo0OS4wNXB0Ij4NCjx0ZCB3aWR0aD0iMTM3IiBzdHlsZT0i
d2lkdGg6MTAzLjFwdDtib3JkZXI6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgd2luZG93dGV4dCAx
LjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxpbWcgYm9yZGVy
PSIwIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjIyIiBpZD0iUGljdHVyZV94MDAyMF8yIiBzcmM9ImNp
ZDppbWFnZTAwMS5qcGdAMDFEMEExQ0YuMTdFMTdDNjAiIGFsdD0iY2lkOmltYWdlMDAxLmpwZ0Aw
MUM4NjhEOC5CRjBCQjdFMCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC90ZD4NCjx0ZCB3aWR0
aD0iNTgwIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQzNC42NXB0O3BhZGRpbmc6MGluIDUu
NHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5NaWNoZWwg
VmVpbGxldHRlPGJyPg0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcjwvc3Bhbj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+VHJpbGxpYW50IEluYy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNzxi
cj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20iPjxz
cGFuIHN0eWxlPSJjb2xvcjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b208L3NwYW4+PC9hPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+d3d3
LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+DQogJm5ic3A7IDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+
RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiBBbGV4YW5kZXIg
UGVsb3YgW21haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldV0NCjxicj4N
CjxiPlNlbnQ6PC9iPiA3IGp1aW4gMjAxNSAwNToyMTxicj4NCjxiPlRvOjwvYj4gTWljaGVsIFZl
aWxsZXR0ZTxicj4NCjxiPkNjOjwvYj4gQW5keSBCaWVybWFuOyA2dGlzY2hAaWV0Zi5vcmc7IGNv
cmVAaWV0Zi5vcmc8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFJlc2VydmUgc3BhY2UgZm9yIGFs
aWFzZXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+SGkgTWljaGVsLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5UaGF0IHNvdW5kIGdyZWF0ISBIYXZpbmcgdGhlIHNob3J0IGZvcm0gKDEwIGJp
dHMgZGF0YSBub2RlIElEKSBhbmQgbG9uZyBmb3JtICgyMCBiaXRzIG1vZHVsZSBJRCAmIzQzOyAx
MCBiaXRzIGRhdGEgbm9kZSBJRCksIGNhbiBzYXZlIHF1aXRlIGEgbG90IHdoZW4gZGVhbGluZyB3
aXRoIG1vcmUgdGhhbiBpc29sYXRlZCBkYXRhIGl0ZW1zLCBhcyB5b3UgcG9pbnQgaW4geW91ciBl
eGFtcGxlLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5BcyBJIG1lbnRpb25lZCBlYXJsaWVyLCBoYXZpbmcgeW91ciBtb2R1bGVJRCYj
NDM7MDAwMDAwMDAwMCBjYW4gYmUgdXNlZCBhcyBZQU5HIGlkIGZvciB0aGUgbW9kdWxlLCB3aGlj
aCBjYW4gcHJvdmlkZSBtZXRhLWluZm9ybWF0aW9uIG9uIHRoZSBsb2FkZWQgbW9kdWxlLiBGb3Ig
ZXhhbXBsZSwgaWYgeW91IGlzc3VlIGEgcmVxdWVzdCBhZ2FpbnN0IHRoYXQgSUQgYW5kIHJlY2Vp
dmUgUmVzb3VyY2Ugbm90IGZvdW5kLA0KIHRoZW4gdGhlIG1vZHVsZSBpcyBub3QgbG9hZGVkIChi
dXQgdGhpcyBvZiBjb3Vyc2Ugc2hvdWxkIG5vdCBiZSB0aGUgd2F5IHRvIGRpc2NvdmVyIGl0KS4g
SXMgdGhpcyB1c2VmdWw/IElmIHRoZXJlIGlzIG5lZWQgZm9yIG1vZHVsZSB2ZXJzaW9uaW5nLCB0
aGUgWUFORyBtb2R1bGUgSUQgY2FuIGJlIHVzZWQgdG8gb2J0YWluIHRoZSB2ZXJzaW9uaW5nIGlu
Zm9ybWF0aW9uLiBIYXZpbmcgZGV0ZXJtaW5pc3RpYyBkYXRhIG5vZGUgSURzIGNhbiBiZQ0KIHVz
ZWQgdG8gaGF2ZSB2ZXJzaW9ucyBvZiB0aGUgc2FtZSBtb2R1bGUgKGUuZy4gYWRkaW5nIG5ldyBs
ZWFmcywgbmV3IGNvbnRhaW5lcnMsIGV0Yy4pIC0gcmVtb3ZpbmcgdGhpbmdzIG91dCB3aWxsIHJl
cXVpcmUgbmV3IG1vZHVsZSBJRC48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+SW4gYWRkaXRpb24gdG8gaGF2aW5nIHJlZHVjZWQgZGF0YSByZXF1
aXJlbWVudHMgKGluIFVSSXMgYW5kIENCT1IpLCBoYXZpbmcgdGhlIGZpeGVkIFlBTkcgbW9kdWxl
IElEcyBoZWxwcyBsb2NhdGUgc29tZSBzcGVjaWFsIHJlc291cmNlcy48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkUuZy4gbW9kdWxlIElEOjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZu
YnNwO2FsaWFzaW5nIDogMTggYml0cyA9IDAgJiM0MzsgMDA8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsgJm5ic3A7IGZ1bGwg
WUFORyBtb2R1bGUgSUQgPSBBQUFBIChjb21wcmVzc2VkIHRvIEEpPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7WUFORyBtZXRh
LWRhdGEgbW9kdWxlOiAxOCBiaXRzID0gMCAmIzQzOyAwMTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgZnVsbCBZ
QU5HIG1vZHVsZSBJRD0gQUFBZzAgKGNvbXByZXNzZWQgdG8gZzApPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7UmVzZXJ2ZWQg
Zm9yIGZ1dHVyZSB1c2U6IDE4IGJpdHMgPSAwICYjNDM7IDEwIGFuZCAxOCBiaXRzID0gMCAmIzQz
OyAxMTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5UaGUgWUFORyBtZXRhLWRhdGEgbW9kdWxlIGNhbiBwcm92aWRlIGFsbCBuZWNlc3NhcnkgbWV0
YS1pbmZvcm1hdGlvbiwgZS5nLiBtb2QudXJpLCB0aGUgbG9hZGVkIG1vZHVsZXMsIHRoZWlyIHZl
cnNpb25zLCBhbmQgc28gZm9ydGguIFRoaXMga2VlcHMgdGhlIHNlcGFyYXRpb24gYmV0d2VlbiBh
bGlhc2luZyBhbmQgbWV0YS1pbmZvcm1hdGlvbi4gTm90ZSwgdGhhdCB0aGUgbWV0YS1tb2R1bGUg
WUFORyBzY2hlbWUNCiB3aWxsIGJlIHB1Ymxpc2hlZCB3aXRoIGEgbm9ybWFsIGFzc2lnbmVkIFlB
TkcgbW9kdWxlIElELCB3aGljaCB3aWxsIGJlIG1hcHBlZCB0byB0aGUgL21nL2cwLCBlLmcuIGNo
YW5naW5nIHRoZSBtZXRhLWRhdGEgYSBjb3VwbGUgb2YgeWVhcnMgZG93biB0aGUgcm9hZCBpcyBw
b3NzaWJsZSB3aXRoIG9yIHdpdGhvdXQgdmVyc2lvbmluZy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSBhbHNvIGRvbuKAmXQgdGhpbmsgaXQg
d291bGQgYmUgYSBnb29kIGlkZWEgdG8gaGF2ZSBjb21wbGV4IGFsaWFzaW5nIG1lY2hhbmlzbXMs
IGFuZCB0aGlzIHNob3VsZCBiZSBmdXJ0aGVyIGRpc2N1c3NlZC4gSXQgd2lsbCBiZSB2ZXJ5IHVz
ZWZ1bCBmb3IgbWFuYWdlZCBuZXR3b3Jrcy4gVGhlIC9tZy9BIHJlc291cmNlIHNob3VsZCBiZSBr
ZXB0IGFzIGxpZ2h0IGFzIHBvc3NpYmxlLiBGb3IgdGhlIG1vbWVudCBJDQogdGhpbmsgdGhlcmUg
YXJlIG9ubHkgdHdvIG5lY2Vzc2FyeSBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBuZWVkIHRv
IGJlIGdpdmVuIGJ5IGl0OiBoYXNoLXZhbHVlIG9mIHRoZSBjb250ZW50cyBvZiB0aGUgbWFwcGlu
ZyBhbmQgVVJJIHRvIGV4dHJhY3QgdGhlIGZ1bGwgbWFwcGluZy4gVGhlIG1hcHBpbmcgY2FuIGJl
IG9idGFpbmVkIGZyb20gdGhlIG1ldGEtZGF0YSAoL21nL2cwIG9yIC53ZWxsLWtub3duL2NvcmUp
LiAmbmJzcDtUaGUgc2ltcGxlc3QNCiBtZWNoYW5pc20gdG8gYmUgdXNlZCBpcyB0aGUgZm9sbG93
aW5nOiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj4xKSBJZiBubyBhbGlhc2VzIGFyZSBkZWZpbmVkLCB0aGVuIHRoZSBjbGllbnQgY2Fu
IFBPU1QgYSBuZXcgYWxpYXMgbWFwcGluZzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOzEuYSkgdGhlIGFsaWFzIG1hcHBpbmcg
ZXhwaXJlcyBhZnRlciBhIHRpbWVyIChkZWZhdWx0IHZhbHVlID0gMWgsIHdoaWNoIGNhbiBiZSBv
dmVycmlkZGVuIGJ5IHRoZSBjbGllbnQpPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7MS5iKSB1cG9uIHRpbWVyIGV4cGlyeSwg
dGhlIGFsaWFzIG1hcHBpbmcgaXMgZGVsZXRlZDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOzEuYykgdGhlIHRpbWVyIGNhbiBi
ZSBleHRlbmRlZCB3aXRoIGEga2VlcC1hbGl2ZSBQT1NUIGZyb20gYW55IGNsaWVudDxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MikgQW4gYWxpYXMg
bWFwcGluZyBjYW5ub3QgYmUgYWx0ZXJlZCBvciBkZWxldGVkIGJ5IGEgY2xpZW50LiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m
bmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGUg
cmVhc29uaW5nIGJlaGluZCB0aGlzIGlzIHRoZSBmb2xsb3dpbmc6IEEgbm9kZSBiZWNvbWVzIOKA
mG1hbmFnZWTigJkgYnkgYSBjbGllbnQsIGFuZCB0aGUgY2xpZW50IHJlZ2lzdGVycyB0aGlzLiBJ
ZiBhIGRpZmZlcmVudCBjbGllbnQgdHJpZXMgdG8gUE9TVCBuZXcgY29uZmlndXJhdGlvbiBpdCB3
aWxsIHJlY2VpdmUgYSA0LjAzIEZvcmJpZGRlbi4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhpcyBhY3R1YWxseSBtYWtlcyBjb25m
aWd1cmluZyBhbmQgaW1wbGVtZW50aW5nIGFsaWFzZXMgcmVhbGx5IHN0cmFpZ2h0Zm9yd2FyZC4g
VXBvbiBkaXNjb3Zlcnkgb2YgYSBub2RlLCBhIGNsaWVudCBjYW4gZGlyZWN0bHkgUE9TVCB0byAv
bWcvQSwgYW5kIGlmIGl0IHJlY2VpdmVzOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOy0gJnF1b3Q7NC4wNCBOb3QgRm91bmQm
cXVvdDssIHRoZW4gYWxpYXNpbmcgaXMgbm90IHN1cHBvcnRlZDxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOy0gJnF1b3Q7NC4w
MyBGb3JiaWRkZW4mcXVvdDssIHRoZSBhbGlhcyBtYXBwaW5nIGlzIGFscmVhZHkgZGVmaW5lZCAo
Ynkgc29tZW9uZSBlbHNlKTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOy0gJnF1b3Q7Mi4wMSBDcmVhdGVkJnF1b3Q7IC0gYWxp
YXMgZGVmaW5lZDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+Jm5ic3A7ICZuYnNwOy0gJnF1b3Q7Mi4wNCBDaGFuZ2VkJnF1b3Q7IC0gYWxpYXMgdGlt
ZXIgdXBkYXRlZDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5JZiB0aGUgL21nL2cwIGlzIGFjY2VwdGVkIGFzIFlBTkcgbWV0YS1kYXRhIG1vZHVs
ZSBwb2ludGVyLCB0aGVuIHRoZSBhY3R1YWwgYWxpYXMgbWFwcGluZyBjYW4gYmUgcmV0cmlldmVk
IGZyb20gdGhlcmUuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPkJlc3QsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5BbGV4YW5kZXI8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRv
bTo1LjBwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+TGUgNSBqdWluIDIwMTUgw6Ag
MjM6NDMsIE1pY2hlbCBWZWlsbGV0dGUgJmx0OzxhIGhyZWY9Im1haWx0bzpNaWNoZWwuVmVpbGxl
dHRlQHRyaWxsaWFudGluYy5jb20iPk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwv
YT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5IaSBBbGV4YW5kZXIgYW5kIEhp
IEFuZHk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkkgdGhpbmtzIHdlIGNhbiBhdm9pZCB0aGUgc3VwcG9ydCBv
ZiBhIGNvbXBsZXggYWxpYXNlcyBtZWNoYW5pc20gYW5kIHN0aWxsIGFyY2hpdmUgdGhlIHNhbWUg
bGV2ZWwgb2YgbWVzc2FnZSBjb21wcmVzc2lvbi48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+VGhlIHNvbHV0aW9uIGNvbnNpc3RzIG9mIHN1cHBvcnRpbmcgdHdvIGZvcm1zIG9mIGRh
dGEgbm9kZSBpZGVudGlmaWVyLCB0aGUgc2FtZSB3YXkgYXMgUkVTVGNvbmYuIChlLmcuIGlldGYt
c3lzdGVtOmN1cnJlbnQtZGF0ZXRpbWUgdnMuIGN1cnJlbnQtZGF0ZXRpbWUpPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj5UaGUgbG9uZyBmb3JtIHdpbGwgY29uc2lzdCBvZiB0aGUgSUQgZm9ybWF0IHByb3Bvc2Vk
IGJ5IEFsZXhhbmRlciAmbmJzcDsoMiByZXNlcnZlZCBiaXRzLCAyMCBiaXRzIG1vZHVsZSBJRCwg
MTAgYml0cyBkYXRhIG5vZGUgSUQpLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5U
aGUgc2hvcnQgZm9ybSB3aWxsIGNhcnJ5IG9ubHkgdGhlIGRhdGEgbm9kZSBJRCAmbmJzcDsoMTAg
Yml0cyBkYXRhIG5vZGUgSUQpLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGUg
bG9uZyBmb3JtIHdpbGwgYmUgdXNlZCBvbmx5IHdoZW4gbmVlZGVkLjwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
TGV0IGFzc3VtZSB3ZSBoYXZlIHRoZXNlIHR3byBtb2R1bGVzOjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYg
c3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPm1vZHVsZSBhIHs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IGNvbnRhaW5l
ciBjb250YWluZXJBIHs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9
Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyBsZWFmIGxlYWZBMSB7IHR5cGUgc3Ry
aW5nfSw8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1s
ZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyBsZWFmIGxlYWZBMiB7IHR5cGUgc3RyaW5nfTwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5i
c3A7IH08L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1s
ZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPn08L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHls
ZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+bW9kdWxlIGIgezwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IGltcG9ydCBhIHsgcHJlZml4IGE7
IH08L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFy
Z2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+Jm5ic3A7IGF1Z21lbnQgJnF1b3Q7L2E6Y29udGFpbmVyQSZxdW90OyB7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4m
bmJzcDsmbmJzcDsmbmJzcDsgbGVhZiBsZWFmQTMgeyB0eXBlIHN0cmluZ308L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyB9PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj59
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDou
NWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+TGV0IGFzc3VtZSB3ZSBo
YXZlIHRoZXNlIGFzc2lnbmVkIElEczo8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05v
cm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgc3R5
bGU9Im1hcmdpbi1sZWZ0OjMwLjJwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5
Pg0KPHRyPg0KPHRkIHdpZHRoPSIxOTEiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZw
dDtib3JkZXI6c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItYm90dG9tOnNvbGlkICM2NjY2NjYg
MS41cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwv
Yj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iNDgiIHZhbGlnbj0i
dG9wIiBzdHlsZT0id2lkdGg6LjVpbjtib3JkZXItdG9wOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9y
ZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM2NjY2NjYgMS41cHQ7Ym9yZGVyLXJp
Z2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+SUQ8L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRo
PSIyMjgiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTcxLjBwdDtib3JkZXItdG9wOnNvbGlk
ICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM2NjY2
NjYgMS41cHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40
cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+RnVsbCBJRDwvc3Bhbj48L2I+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9Ijk2IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEu
MGluO2JvcmRlci10b3A6c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItbGVmdDpub25lO2JvcmRl
ci1ib3R0b206c29saWQgIzY2NjY2NiAxLjVwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAx
LjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5CYXNlNjQ8L3NwYW4+PC9i
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0i
MTkxIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjE0My42cHQ7Ym9yZGVyOnNvbGlkICM5OTk5
OTkgMS4wcHQ7Ym9yZGVyLXRvcDpub25lO3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPm1vZHVsZSBhPC9zcGFuPjwvYj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjx0
ZCB3aWR0aD0iNDgiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6LjVpbjtib3JkZXItdG9wOm5v
bmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9y
ZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0
Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+MjU8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9
IjIyOCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNzEuMHB0O2JvcmRlci10b3A6bm9uZTti
b3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXIt
cmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9
Ijk2IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEuMGluO2JvcmRlci10b3A6bm9uZTtib3Jk
ZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmln
aHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4m
bmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0K
PHRkIHdpZHRoPSIxOTEiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDtib3JkZXI6
c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItdG9wOm5vbmU7cGFkZGluZzowaW4gNS40cHQgMGlu
IDUuNHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+Y29udGFpbmVyIGNvbnRhaW5lckE8L3NwYW4+PC9iPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSI0OCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3
aWR0aDouNWluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206
c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRk
aW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4xPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L3RkPg0KPHRkIHdpZHRoPSIyMjgiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTcx
LjBwdDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlk
ICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzow
aW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+MTEwMDEwMDAwMDAwMDAxID0gMjU2MDE8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9Ijk2IiB2YWxpZ249InRvcCIg
c3R5bGU9IndpZHRoOjEuMGluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRl
ci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAx
LjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5HUUI8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIxOTEiIHZhbGln
bj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDtib3JkZXI6c29saWQgIzk5OTk5OSAxLjBwdDti
b3JkZXItdG9wOm5vbmU7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+bGVhZiBs
ZWFmQTE8L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRo
PSI0OCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDouNWluO2JvcmRlci10b3A6bm9uZTtib3Jk
ZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmln
aHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4y
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSIyMjgiIHZh
bGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTcxLjBwdDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxl
ZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNv
bGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+MTEwMDEw
MDAwMDAwMDEwID0gMjU2MDI8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8
dGQgd2lkdGg9Ijk2IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjEuMGluO2JvcmRlci10b3A6
bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDti
b3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40
cHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj5HUUM8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0K
PHRyPg0KPHRkIHdpZHRoPSIxOTEiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDti
b3JkZXI6c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItdG9wOm5vbmU7cGFkZGluZzowaW4gNS40
cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+bGVhZiBsZWFmQTI8L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSI0OCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0
aDouNWluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29s
aWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5n
OjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4zPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L3RkPg0KPHRkIHdpZHRoPSIyMjgiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTcxLjBw
dDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM5
OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4g
NS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+MTEwMDEwMDAwMDAwMDExID0gMjU2MDI8L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9Ijk2IiB2YWxpZ249InRvcCIgc3R5
bGU9IndpZHRoOjEuMGluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1i
b3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBw
dDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5HUUQ8L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIxOTEiIHZhbGlnbj0i
dG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDtib3JkZXI6c29saWQgIzk5OTk5OSAxLjBwdDtib3Jk
ZXItdG9wOm5vbmU7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+bW9kdWxlIGI8
L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSI0OCIg
dmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDouNWluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVm
dDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29s
aWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4yNjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iMjI4IiB2YWxpZ249
InRvcCIgc3R5bGU9IndpZHRoOjE3MS4wcHQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5v
bmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAj
OTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iOTYiIHZhbGlnbj0i
dG9wIiBzdHlsZT0id2lkdGg6MS4waW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7
Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5
OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgd2lkdGg9IjE5
MSIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNDMuNnB0O2JvcmRlcjpzb2xpZCAjOTk5OTk5
IDEuMHB0O2JvcmRlci10b3A6bm9uZTtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij5sZWFmIGxlYWZBMzwvc3Bhbj48L2I+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8
dGQgd2lkdGg9IjQ4IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOi41aW47Ym9yZGVyLXRvcDpu
b25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2Jv
cmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRw
dCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPjE8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9
IjIyOCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNzEuMHB0O2JvcmRlci10b3A6bm9uZTti
b3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXIt
cmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij4xMTAxMDAwMDAwMDAwMDEgPSAyNjYyNTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC90ZD4NCjx0ZCB3aWR0aD0iOTYiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MS4waW47Ym9y
ZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5
IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0
IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPkdnQjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4N
CjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPkEgR0VUIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBmb2xsb3c6PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVROiBHRVQ8c3BhbiBjbGFzcz0iYXBw
bGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0iaHR0cDovL2V4YW1wbGUu
Y29tL21nL0dRQiI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBsZSI+ZXhhbXBsZS5jb20vbWcvR1FC
PC9zcGFuPjwvYT48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1h
cmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJGUi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlJFUzogMi4wNSBDb250ZW50IChDb250
ZW50LUZvcm1hdDogYXBwbGljYXRpb24vY2Jvcik8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj57PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsgMSA6
IHs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyAyIDogJnF1b3Q7IGxlYWZBMSB2YWx1ZSZxdW90Oyw8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOyZuYnNwOyZuYnNwOyAzIDogJnF1b3Q7IGxlYWZBMiB2YWx1ZSAmcXVvdDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZu
YnNwOyZuYnNwOyAyNjYyNSA6ICZxdW90OyBsZWFmQTMgdmFsdWUgJnF1b3Q7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsgfTwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVp
biI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
fTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+QSBQVVQgY2FuIGJlIGltcGxlbWVudGVkIGFzIGZvbGxvdzo8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5SRVE6IFBVVDxzcGFuIGNsYXNz
PSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwOi8vZXhh
bXBsZS5jb20vbWciPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUiPmV4YW1wbGUuY29tL21nPC9z
cGFuPjwvYT48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPns8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1h
cmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPiZuYnNwOyAyNTYwMSA6IHs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyAyIDogJnF1
b3Q7IGxlYWZBMSB2YWx1ZSZxdW90Oyw8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyAzIDogJnF1b3Q7IGxl
YWZBMiB2YWx1ZSAmcXVvdDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5
bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyAyNjYyNSA6ICZxdW90OyBsZWFm
QTMgdmFsdWUgJnF1b3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxl
PSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNl
Ij4mbmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIGxhbmc9IkZSLUNBIiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+fTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFy
Z2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJGUi1DQSIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPn08L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj5SRVM6IDIuMDUgT2s8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJGUi1DQSIgc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkZSLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHRhYmxlIGNs
YXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRp
bmc9IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6
Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lk
dGg9IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNv
bGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0
OS4wNXB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjU4MCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo0
MzQuNjVwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRp
diBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0
ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxl
PSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+VHJpbGxpYW50IEluYy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQu
IDIzNzxicj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b20iPjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFu
dGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNv
bS8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjpwdXJwbGUiPnd3dy50cmlsbGlhbnRpbmMuY29tPC9zcGFu
PjwvYT48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNw
Ozwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90
Ym9keT4NCjwvdGFibGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRk
aW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48
c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gY2xhc3M9
ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5i
c3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5BbGV4YW5kZXIN
CiBQZWxvdiBbPGEgaHJlZj0ibWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25l
LmV1Ij48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5tYWlsdG86YWxleGFuZGVyLnBlbG92QHRl
bGVjb20tYnJldGFnbmUuZXU8L3NwYW4+PC9hPl08c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVk
LXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPg0KPGI+U2VudDo8L2I+PHNwYW4gY2xhc3M9ImFwcGxl
LWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjUganVpbiAyMDE1IDE2OjEwPGJyPg0KPGI+
VG86PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5B
bmR5IEJpZXJtYW48YnI+DQo8Yj5DYzo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1z
cGFjZSI+Jm5ic3A7PC9zcGFuPk1pY2hlbCBWZWlsbGV0dGU7PHNwYW4gY2xhc3M9ImFwcGxlLWNv
bnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxhIGhyZWY9Im1haWx0bzo2dGlzY2hAaWV0Zi5v
cmciPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUiPjZ0aXNjaEBpZXRmLm9yZzwvc3Bhbj48L2E+
OzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVm
PSJtYWlsdG86Y29yZUBpZXRmLm9yZyI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBsZSI+Y29yZUBp
ZXRmLm9yZzwvc3Bhbj48L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+PHNwYW4gY2xhc3M9ImFwcGxl
LWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPlJlOiBSZXNlcnZlIHNwYWNlIGZvciBhbGlh
c2VzPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhpIEFuZHksPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPllvdSBhcmUgcmlnaHQgdGhhdCBpZiB3ZSBzdGFydCBjb25zaWRlcmluZyBtdWx0
aXBsZSBjbGllbnRzLCBlYWNoIG9mIHdoaWNoIHRyeWluZyB0byB1c2UgaXRzIGFsaWFzZXMgdGhl
IHRoaW5ncyBiZWNvbWUuLiBsZXMgb3B0aW1hbC4gQW5kIGlmIG5vIGNhdXRpb24gaXMgdGFrZW4g
LSBjYW4gc3BlbGwgdHJvdWJsZS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlIHBvaW50
IGlzLCB5b3VyIGRlZmF1bHQgYmVoYXZpb3Igc2hvdWxkIGJlIHRvIHVzZSB0aGUgbm9ybWFsIElE
LiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWF5IGRlY2lkZSB0aGF0IHlvdeKAmXJlIGdv
aW5nIHRvIGJlIGhhdmluZyBxdWl0ZSBhIGxvdCBvZiBleGNoYW5nZXMgd2l0aCB0aGUgc2FtZSBJ
RCwgc28geWVzLCB5b3UgY2FuIHJlZGVmaW5lIHRoZSBhbGlhcyBtYXBwaW5nLiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Ib3dldmVyLCB5b3UgYXJlIHJpZ2h0IHRoYXQgd2UgbmVl
ZCB0byB0YWtlIGNhcmUgb2YgZXZlbnR1YWwgcmFjZSBjb25kaXRpb25zLiBJbmRlZWQsIGluIDZU
aVNDSCBhbmQgb3RoZXIgbWFuYWdlZCBuZXR3b3JrcyBpdCBtYXkgbm90IGhhcHBlbiAod2hpY2gg
YWxvbmUgaXMgc3VmZmljaWVudCBmb3IgbWUgdG8gaGF2ZSB0aGlzIMKrJm5ic3A7Z29sZGVuJm5i
c3A7wrsgSURzIGJlIGxlZnQgb3V0IG9mIHRoZSDCqyByYW5kb21seSBhbGxvY2F0ZWQmbmJzcDvC
uywNCiBvciDCqyBldGVybmFsbHkgbG9ja2VkIHRvIGEgc3BlY2lmaWMgSUQgwrsgcmVzb3VyY2Vz
KS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGF2aW5nIHRoZSAvbWcvQSByZXNvdXJjZSBw
cm92aWRlIHRoZSBtZXRhLWluZm9ybWF0aW9uIGNhbiBoZWxwIHNvbHZlIGEgbG90IChhbGw/KSBv
ZiB0aGUgcHJvYmxlbXMuIChpbiBteSBwYXN0IG1haWxzIEkgcmVmZXJyZWQgdGhpcyBhcyAvbWcv
MCBidXQgSSBtZWFudCAvbWcvQSwgc29ycnkpPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRo
ZSBmaXJzdCByZXF1aXJlbWVudCBmb3IgYSBjbGllbnQgaXMgdG8gcXVlcnkgdGhlIC9tZy9BIHJl
c291cmNlLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlcmUsIHlvdSBjYW4gZ2V0IHRoZSBtZXRhLWRhdGEg
Y29uY2VybmluZyB0aGUgYWxpYXNlcywgaW5jbHVkaW5nIHRoZSBoYXNoIG9mIHRoZSBhbGlhcyBt
YXBwaW5nLCB0aGUgbWFwcGluZyBpdHNlbGYgKGlmIG5lY2Vzc2FyeSksIGFuZCB0aGUgdXBkYXRl
ciAoaWRlbnRpZmllZCBieSBhIHRva2VuKS4gSeKAmW0gd29uZGVyaW5nIGlmIHRoZXJlIGNvdWxk
IGJlIGFkZGVkIGEgdmFsaWRpdHkgb2YgdGhlIG1hcHBpbmcuDQogQSBjbGllbnQgY2FuIGNoYW5n
ZSB0aGUgbWFwcGluZyBPTkxZIGlmIGl0IGlzIHRoZSBsYXN0IHVwZGF0ZXIgKGhhc2gmIzQzO3Rv
a2VuIG1hdGNoKSwgb3IgaWYgdGhlIHZhbGlkaXR5IGhhcyBleHBpcmVkLiBJZiB0aGUgc2VydmVy
IGhhcyBhIHdheSBvZiBrZWVwaW5nIHRpbWUgaXQgY2FuIHRyYWNrIHRoZSB2YWxpZGl0eSBpdHNl
bGYuIE90aGVyd2lzZSwgaXQgY2FuIGJlIGEgY29uc3RhbnQgZGF0ZXRpbWUgYWZ0ZXIgd2hpY2gg
dGhlIHJlc291cmNlIGlzDQogY29uc2lkZXJlZCBleHBpcmVkIGFuZCBhbnkgY2xpZW50IGNhbiB1
cGRhdGUgdGhlIHJlc291cmNlLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5KdXN0
IHRvIGJlIHN1cmUsIEnigJltIHRhbGtpbmcgYWJvdXQgY2xpZW50cywgd2hpY2ggYXJlIGNhcGFi
bGUgZW5vdWdoIHRvIGtlZXAgdHJhY2sgb2Ygc29tZSBjb250ZXh0IGFib3V0IHRoZSBzZXJ2ZXJz
IGl0IGNvbnRyb2xzIE9SIGEgY2xpZW50IGluIGEgcGFydGljdWxhciBraW5kIG9mIG5ldHdvcmss
IHdoaWNoIGtub3dzIHRoYXQgc29tZSB0aGluZ3MgYXJlIGp1c3QgZXhwZWN0ZWQgdG8gYmUgdGhl
cmUgYW5kDQogdGhlcmUgaXMgbm8gd2F5IGZvciB0aGVtIHRvIGhhcHBlciBvdGhlcndpc2UuJm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPioqKioqKioqKioqKioqKioqPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4qKiBUaGUgZGVmYXVsdCB3YXkgb2YgZG9pbmcgdGhpbmdzIHNob3VsZCBhbHdheXMgYmUgdG8g
dXNlIHRoZSBub3JtYWwgSURzLioqIElmIHlvdSB3YW50IHRvIGJlIG9wdGltYWwgKGluIHNvbWUg
d2F5KSwgZ2V0IC9tZy9BLCBhbmQgaWYgeW91IHVuZGVyc3RhbmQgaXQgLSB1c2UgaXQuIElmIHRo
ZXJl4oCZcyBub3RoaW5nLCBQT1NUIHdoYXRldmVyIHlvdSBsaWtlLCBidXQgYmUgc3VyZSB0aGF0
IHlvdSBoYXZlIGVub3VnaA0KIHJlc291cmNlcyB0byByZW1lbWJlciB3aGF0IHlvdeKAmXJlIGRv
aW5nLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+KiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+KiBJZiB5b3Ugd2FudCB0byBz
ZXQgYSBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBpbiBlYWNoIG9mIHlvdXIgMTBNIG5vZGVzLCB0
aGVuIHdlbGwgeW91IHNob3VsZCBoYXZlIHRoZSBzdG9yYWdlIHRvIHJlbWVtYmVyIGFsbCBvZiB0
aGVtLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+KioqKioqKioqKioqKioqKio8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+QnkgdGhlIHdheSwgSSB3YXMgdGhpbmtpbmcgb2Ygc29tZXRoaW5nIHF1aXRlIGludGVyZXN0
aW5nLCB3aGljaCBjYW4gY29tZSBzdXBwbGVtZW50IHRoZSBub2RlIElEIGFsaWFzaW5nLiBBY3R1
YWxseSwgSSB0aGluayB0aGF0IHRoZSAyMCBiaXRzICYjNDM7IDEwIGJpdHMgWUFORyBpZCByZWFs
bHkgb3BlbnMgYSBsb3Qgb2YgcGVyc3BlY3RpdmVzICh3aWxsIHRyeSB0byB3cml0ZSB0aGF0IHVw
IHRvbW9ycm93KS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlIG1ham9yIHBvaW50IGlz
IHRoYXQgd2hlbiB0aGUgZGF0YSBub2RlIElEID0gMCwgdGhlIG1vZHVsZSBJRCBjYW4gYmUgdXNl
ZCBhcyBhIHJlc291cmNlIHRvIG9idGFpbiBtZXRhLWluZm9ybWF0aW9uIG9uIHRoZSBtb2R1bGUu
IEZvciBleGFtcGxlLCBpdHMgdmVyc2lvbi4gVGhpcyB3YXksIGlmIHlvdSB1cGRhdGUgYSBZQU5H
IG1vZHVsZSB3aXRoIGEgbmV3IG9uZSwgd2hpY2ggb25seSBhcHBlbmRzIGVsZW1lbnRzLA0KIHlv
dSB3aWxsIG5vdCBuZWVkIHRvIHJlcXVlc3QgYSBuZXcgbWFuYWdlZCBJRC4gR0VUIC9tZy9tb2R1
bGVJRD9rZXlzPXZlcnNpb24gKHdpdGggZGF0YSBub2RlIElEPTApIGFuZCB5b3Uga25vdyB3aGF0
IGlzIHlvdXIgbW9kdWxlIHJlYWxseSBjYXBhYmxlIG9mLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5BbHNvLCB0aGUgc3BlY2lhbCBwbGFjZSBvZiAvbWcvQSBjYW4gYWN0dWFsbHkg
YmVjb21lIGFuIGVudHJ5IHBvaW50IGZvciBtb3N0IG9mIHRoZSBpbmZvcm1hdGlvbiByZWxhdGVk
IHRvIENvTUkgKHRvIGJlIGRpc2N1c3NlZC4uIEkgaGF2ZSBubyBzdHJvbmcgZmVlbGluZ3Mgb24g
dGhpcykuIEl0IGNhbiwgZm9yIGV4YW1wbGUsIHByb3ZpZGUgdGhlIG1vZC51cmksIGFuZCBvdGhl
ciBpbmZvcm1hdGlvbi4gVGhlDQogb25seSBpbmZvcm1hdGlvbiB0aGF0IHJlbWFpbnMgdHJ1bHkg
bmVjZXNzYXJ5IHRvIGJlIGZpeGVkIGluIC8ud2VsbC1rbm93bi9jb3JlIGlzIHRoZSBlbnRyeSBw
b2ludCB0byB0aGUgQ29NSSBpbnRlcmZhY2UgKGUuZy4gL21nKS4gQWZ0ZXJ3YXJkcywgZXZlcnl0
aGluZyBjYW4gYmUgZGV0ZXJtaW5lZCBmcm9tIC9tZy9BIHdpdGggcXVlcmllcyAoL21nL0E/a2V5
cz1tb2QudXJpJiM0MzthbGlhcy51cmkpPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkJlc3Qs
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5BbGV4YW5kZXI8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UFMuPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5BcyBpZiBkYXRhIG5vZGUgYWxpYXNpbmcgaXMgbm90IGVub3VnaOKApiBtb2R1bGUgSUQg
YWxpYXNpbmcgKHRoaXMgb25lIGlzIHJlYWxseSB2ZXJ5IGxvdyBpbiBteSBwcmlvcml0aWVzIGFu
ZCBJ4oCZbSBtZW50aW9uaW5nIGl0IG9ubHkgZm9yIGNvbXBsZXRlbmVzcyk6PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPlRoZSBmaXJzdCAxMiBiaXRzIHRha2UgMiBVUkkgY2hhcmFjdGVycyBh
bmQgMiBieXRlcyBpbiBDQk9SLiBIYXZpbmcgMTAgYml0cyBmb3IgdGhlIGRhdGEgbm9kZSBJRCBs
ZWF2ZXMgMiBpbnRlcmVzdGluZyBiaXRzIGluIHRoZSBtb2R1bGUgSUQgcGFydOKApiBTbyB3ZSBj
YW4gaGF2ZSBtb2R1bGUgYWxpYXNlcyBhcyB3ZWxsIChhbGJlaXQgb25seSAzKS48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+VGhhdCBpcywgaW4gVVJJIGVuY29kaW5nLCZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+MHgwMDAwMDAwMC0weDAwMDAwM0ZGIC0mZ3Q7IGRhdGEgbm9kZSBhbGlhc2luZzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+MHgwMDAwMDQwMC0weDAwMDAwN0ZGIC0mZ3Q7IGFsaWFzZWQgbW9kdWxlIDE8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjB4MDAwMDA4MDAtMHgwMDAwMEJGRiAtJmd0OyBhbGlhc2VkIG1vZHVsZSAyPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4w
eDAwMDAwQzAwLTB4MDAwMDBCRkYtJmd0OyBhbGlhc2VkIG1vZHVsZSAzPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPkltcGxlbWVudGF0aW9uLXdpc2UsIGl0cyByZWFsbHkgZWFzeTogdXBvbiBy
ZXF1ZXN0LCBpZiB0aGUgbW9kdWxlIElEID0gYWxpYXNlZCBtb2R1bGUgSUQgMSwgcmVwbGFjZSB0
aGUgbW9kdWxlIElEIHBhcnQsIHNvIG5vIG5lZWQgdG8gbWFwIHRoZSBlbnRpcmUgbW9kdWxlIElE
IC8gZGF0YSBub2RlIElEIHNwYWNlLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5C
dXQgcmVhbGx5LCB0aGF0IG11Y2ggb3B0aW1pemF0aW9uPyBFdmVuIGlmIGl0IHNlZW1zIHN0cmFp
Z2h0Zm9yd2FyZCwgSSB3b3VsZCBsaWtlIHRvIHNlZSB1c2UgY2FzZXMgdGhhdCBjb3VsZCBiZW5l
Zml0IGZyb20gdGhpcyBiZWZvcmUgYWN0dWFsbHkgY29uc2lkZXJpbmcgaXQuPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206
NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5MZSA1IGp1aW4gMjAx
NSDDoCAyMDo1NSwgQW5keSBCaWVybWFuICZsdDs8YSBocmVmPSJtYWlsdG86YW5keUB5dW1hd29y
a3MuY29tIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5hbmR5QHl1bWF3b3Jrcy5jb208L3Nw
YW4+PC9hPiZndDsgYSDDqWNyaXQgOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+DQo8YnI+DQo8YnI+DQo8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZx
dW90OyxzYW5zLXNlcmlmIj5PbiBGcmksIEp1biA1LCAyMDE1IGF0IDExOjQxIEFNLCBNaWNoZWwg
VmVpbGxldHRlPHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFu
PiZsdDs8YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0
YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBsZSI+TWljaGVsLlZlaWxsZXR0
ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT4mZ3Q7PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZl
cnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPndyb3RlOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICND
Q0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDtt
YXJnaW4tdG9wOjUuMHB0O21hcmdpbi1yaWdodDowaW47bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+SGkgQWxleGFuZGVyPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5JIGhhdmUgc29tZSBj
b25jZXJucyBhYm91dCBhbGxvd2luZyBDb01JIGNsaWVudChzKSB0aGUgY29udHJvbCBvZiB0aGUg
bGlzdCBvZiBhbGlhc2VzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGlzIGFw
cHJvYWNoIHdvcmsgZmluZSBmb3IgdGhlIGZpcnN0IENvTUkgYXBwbGljYXRpb24gKGUuZy4gNlRp
U0NIKSBidXQgd2hhdCBkbyB3ZSBkbyB3aXRoIHRoZSBzdWJzZXF1ZW50IENvTUkgYXBwbGljYXRp
b24/PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj5PbmUgcG9zc2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENv
TUkgY2xpZW50IHNlbmQgYSBsaXN0IG9mIChhbGlhcywgZGF0YSBub2RlIElEKSB0byB0aGUgQ29N
SSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwgdGhlIENvTUkgY2xpZW50IG1pZ2h0IHJlY2VpdmUgYW4g
ZXJyb3IgaWYNCiBvbmUgb3IgbXVsdGlwbGUgb2YgdGhlc2UgYWxpYXNlcyBhcmUgYWxyZWFkeSBy
ZXNlcnZlZC48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkEgc2Vjb25kIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRo
YXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAoZGF0YSBub2RlIElEKSBhbmQgZ2V0
IGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgZnJvbSB0aGUgQ29NSSBzZXJ2ZXIuIElu
IHRoaXMgY2FzZSwNCiBDb01JIGNsaWVudHMgd2lsbCBoYXZlIHRvIGRlYWwgd2l0aCBhIG1peCBw
b3B1bGF0aW9uIG9mIGFsaWFzZXMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGUgcHJvcG9zZWQgc29sdXRp
b24gbmVlZCB0byBzY2FsZSB0byBhIG11bHRpLXZlbmRvcnMsIG11bHRpcGxlIGFwcGxpY2F0aW9u
cyBlbnZpcm9ubWVudC48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+V2l0aCB0aGlz
IGlzIG1pbmQsIGRvIHlvdSBoYXZlIGFueSBhbHRlcm5hdGl2ZSBzb2x1dGlvbnMgdG8gcHJvcG9z
ZT88L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90
OyxzYW5zLXNlcmlmIj5Eb2VzIHRoaXMgYXBwcm9hY2ggYWxsb3cgZWFjaCBjbGllbnQgdG8gaGF2
ZSBhIGRpZmZlcmVudCBzZXQgb2YgYWxpYXNlcyw8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5z
LXNlcmlmIj5zbyB0aGUgc2VydmVyIGhhcyB0byBtYWludGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGlu
ZyBmb3IgZWFjaCBjbGllbnQ/PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+VGhp
cyBzZWVtcyBsaWtlIGEgbG90IG9mIG92ZXJoZWFkIGFuZCBOVi1zdG9yYWdlIHJlcXVpcmVtZW50
czwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2VyaWYiPm9uIHRoZSBzZXJ2ZXIuPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVv
dDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVv
dDssc2Fucy1zZXJpZiI+Q2hhbmdpbmcgdGhlIHNjaGVtYSBpZGVudGlmaWVycyBiYXNlZCBvbiB3
aGljaCBjbGllbnQgaXM8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjku
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj5zZW5kaW5n
IHRoZSByZXF1ZXN0IHNlZW1zIGxpa2UgYSBjb21wbGljYXRlZCBkZXNpZ24gY2hhbmdlPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVv
dDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+ZnJvbSBSRVNUQ09ORiwgTkVUQ09ORiwgb3Ig
U05NUCwgd2hlcmUgdGhlcmUgaXMgb25seTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2Vy
aWYiPjEgc2NoZW1hIHRyZWUgd2hpY2ggaXMgbm90IGRlcGVuZGVudCBvbiB0aGUgY2xpZW50IGlk
ZW50aXR5Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7
LHNhbnMtc2VyaWYiPkFuZHk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZl
dGljYSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5z
LXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGJs
b2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4w
cHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tdG9w
OjUuMHB0O21hcmdpbi1yaWdodDowaW47bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxz
cGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjcxNyIgc3R5bGU9IndpZHRoOjUzNy43
NXB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+DQo8dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdo
dDo0OS4wNXB0Ij4NCjx0ZCB3aWR0aD0iMTM3IiBzdHlsZT0id2lkdGg6MTAzLjFwdDtib3JkZXI6
bm9uZTtib3JkZXItcmlnaHQ6c29saWQgd2luZG93dGV4dCAxLjBwdDtwYWRkaW5nOjBpbiA1LjRw
dCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbHQ7aW1hZ2UwMDEuanBnJmd0Ozwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iNTgwIiB2YWxpZ249
InRvcCIgc3R5bGU9IndpZHRoOjQzNC42NXB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDto
ZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+TWljaGVsIFZlaWxsZXR0
ZTxicj4NClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3I8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJp
YWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UcmlsbGlhbnQgSW5jLjxicj4NClRl
bDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52ZWls
bGV0dGVAdHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xv
cjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4x
cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8iIHRhcmdldD0iX2JsYW5rIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6cHVycGxlIj53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+
PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj4mbmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3Nw
YW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+
DQo8L3RhYmxlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2IHN0
eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzoz
LjBwdCAwaW4gMGluIDBpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4g
bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGNsYXNzPSJhcHBs
ZS1jb252ZXJ0ZWQtc3BhY2UiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwv
c3Bhbj48L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+QWxleGFuZGVyDQogUGVs
b3YgW21haWx0bzo8YSBocmVmPSJtYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFn
bmUuZXUiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5hbGV4YW5k
ZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldTwvc3Bhbj48L2E+XTxzcGFuIGNsYXNzPSJhcHBs
ZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+DQo8Yj5TZW50OjwvYj48c3BhbiBj
bGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+NSBqdWluIDIwMTUgMTI6
MDM8YnI+DQo8Yj5Ubzo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5i
c3A7PC9zcGFuPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQo8Yj5DYzo8L2I+PHNwYW4gY2xhc3M9ImFw
cGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPkFuZHkgQmllcm1hbjs8c3BhbiBjbGFz
cz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0ibWFpbHRvOjZ0
aXNjaEBpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUi
PjZ0aXNjaEBpZXRmLm9yZzwvc3Bhbj48L2E+OzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQt
c3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyIgdGFyZ2V0
PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUiPmNvcmVAaWV0Zi5vcmc8L3NwYW4+
PC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3Bh
Y2UiPiZuYnNwOzwvc3Bhbj5SZTogUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5IaSBNaWNoZWwsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRv
cDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+TGUgNSBqdWluIDIwMTUgw6AgMTc6MTcsIE1pY2hlbCBWZWlsbGV0dGUgJmx0Ozxh
IGhyZWY9Im1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20iIHRhcmdldD0i
X2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5NaWNoZWwuVmVpbGxldHRlQHRyaWxs
aWFudGluYy5jb208L3NwYW4+PC9hPiZndDsgYSDDqWNyaXQgOjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj5IaSBBbGV4YW5kZXI8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SW4geW91ciBw
cmVzZW50YXRpb24gYXQgNlRpU0NILCB5b3UgcHJvcG9zZSB0aGUgZm9sbG93aW5nIGRhdGEgbm9k
ZSBJRCBzdHJ1Y3R1cmUuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29O
b3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHN0
eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHdpZHRo
PSI2MjMiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDY3LjVwdDtib3JkZXI6c29saWQgd2lu
ZG93dGV4dCAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdiBzdHlsZT0i
bWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZiI+4oCiPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj4zMiBiaXRzIFlBTkcgSUQ8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6MS4waW4iPg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPuKAkzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3NwYW4+PHNw
YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+MjAgYml0cyBmb3IgbW9kdWxlIElEIChhc3NpZ25l
ZCBieSBJRVRGKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDoxLjBpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
c2Fucy1zZXJpZiI+4oCTPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj4xMCBiaXRzIGZvciBkYXRhIG5vZGUgSUQgKGdlbmVyYXRlZCBkZXRlcm1pbmlz
dGljYWxseSk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwv
dHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPkJhc2VkIG9uIHRoaXMgc3RydWN0dXJlLCB3ZSBjYW4gcmVzZXJ2ZSZuYnNwOzwvc3Bhbj48
c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5tb2R1bGUgSUQgemVybyBmb3IgYWxpYXNlcy48
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSB3
YXMganVzdCBzdW1tYXJpemluZyB3aGF0IHdhcyBkaXNjdXNzZWQgb24gdGhlIGRpc2N1c3Npb24g
aW4gQ29NSS4gQWN0dWFsbHksIGl0IGlzIDMwIGJpdHMgWUFORyBJRCwgYnV0IHRoYXTigJlzIGZv
ciBwdXJwb3NlcyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFlBTkcgaGFzaCBhbmQgSSBkb27i
gJl0IG1pbmQga2VlcGluZyBpdCAzMCBiaXRzLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1i
b3R0b206MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJt
YXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SWYg
d2Ugd2FudCB0byBtaW5pbWl6ZSBib3RoIHRoZSBuZXR3b3JrIGFuIG5vZGUgcmVzb3VyY2VzIHJl
cXVpcmUgYnkgdGhpcyBhbGlhcyBtZWNoYW5pc20sIHdlIGNhbiBtYXAgYW4gZW50aXJlIG1vZHVs
ZSB0byB0aGlzIHNwYWNlLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWYiPlRoaXMgY2FuIGJlIGltcGxlbWVudGVkIGJ5IGEgc2luZ2xlIGludGVnZXIgcmVzb3Vy
Y2UgKGUuZy4gbGVhZiBhbGxpYXNzZWRNb2R1bGUgeyB0eXBlIHVpbnQzMiB9ICk8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5UaGlzIGFwcHJvYWNoIHJlcXVp
cmUgNCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQuPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkl0IGlzIHBvc3NpYmxlIHRvIG1hcCBh
biBlbnRpcmUgbW9kdWxlIHRvIHRoZSBhbGlhcyBzcGFjZSBhbmQgdGhpcyBpcyB1cCB0byB0aGUg
b3BlcmF0b3IuIEhvd2V2ZXIsIGlmIHlvdSBsb2FkIHR3byBtb2R1bGVzIHdoaWNoIHJlZGVmaW5l
IHRoZSBzYW1lIGFsaWFzIHlvdSB3aWxsIGxvb3NlIHRoZSBiZW5lZml0IGZyb20gaXQuIE1heWJl
IGl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRvIGJlIGFibGUgdG8gc3BlY2lmeQ0KIHRoYXQgeW91
IHdhbnQgdGhlIGFsaWFzZXMgZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JZiB0aGUgL21nLzAgYWxpYXMgaXMgcmVzZXJ2ZWQg
Zm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNpbXBseSBzYXlpbmc6PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5QT1NUIC9tZy8wPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj57PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsmcXVvdDtzb3Vy
Y2VfdXJpJnF1b3Q7IDogJnF1b3Q7L21nL0JBQSZxdW90OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+fTxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj53aGVyZSAvbWcvQkFBIGlzIHRoZSBZQU5HIGlkIG9mIHRoZSBtb2R1
bGUgKDIwIGJpdHMgbW9kdWxlIElEICYjNDM7IDEwIGJpdHMgc2V0IHRvIDApLiBUaGlzIHdheSwg
dGhlIHNlcnZlciB3aWxsIGtub3c6IE9LLCBnZXQgdGhlIGFsaWFzIG1hcHBpbmcgZnJvbSB0aGUg
WUFORyBzY2hlbWUgb2YgbW9kdWxlIHdpdGggSUQgPSBCIChhcyBkZWZpbmVkIGJ5IHRoZSBJRVRG
KS4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T3IsIHlvdSBjYW4gZHluYW1pY2Fs
bHkgY29uZmlndXJlIHRoZSBtYXBwaW5nOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlBPU1QgL21nLzA8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPns8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3Bh
Y2UiPiZuYnNwOzwvc3Bhbj5ZQU5HX2lkIDogYWxpYXMsPG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8c3BhbiBj
bGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+WUFOR19pZCA6IGFsaWFz
LDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+Jm5ic3A7PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5i
c3A7PC9zcGFuPllBTkdfaWQgOiBhbGlhczxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+fTxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1i
b3R0b206MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJt
YXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SWYg
d2Ugd2FudCBhIG1vcmUgY29tcGxleCBidXQgbW9yZSBmbGV4aWJsZSBhbGlhc2VzIG1lY2hhbmlz
bSwgeW91ciBwcm9wb3NlZCBtYXAgb2YgKGFsbGlhcywgWUFORyBJRCkgc2VlbSB0aGUgc29sdXRp
b24uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SG93ZXZl
ciwgd2UgaGF2ZSB0byBjb25zaWRlciB0aGF0IHRoaXMgc3RydWN0dXJlIGNhbiBiZSBhcyBsYXJn
ZSBhcyZuYnNwOzx1PjEyNTAgYnl0ZXMgcGVyIENvTUkgc2VydmVyIGFjY2Vzc2VkPC91PiZuYnNw
O2lmIGxpbWl0ZWQgdG8gMjU2IGFsaWFzZXMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoaXMgaXMgYXNzdW1pbmcgeW91IG5lZWQgYSBz
ZXBhcmF0ZSBtYXBwaW5nIGZvciBlYWNoIHNlcnZlci4gSSB3b3VsZCBzdXBwb3NlIHRoYXQgaW4g
YSBuZXR3b3JrIHlvdeKAmWxsIGhhdmUgYSBzaW5nbGUgYWxpYXMgbWFwcGluZyAobWF5YmUgdHdv
PykgLSBhZnRlciBhbGwsIHlvdeKAmXJlIHRyeWluZyB0byBvcHRpbWl6ZSB0aGUgbWFuYWdlbWVu
dCBvZiB5b3VyIGRldmljZXMgKHNlcnZlcnMpLiBTbywgdHlwaWNhbGx5DQogeW914oCZZCBtYXAg
YWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMu
KSBhbmQgdXNlIHRoYXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0
aGUgZnVsbCBJRC4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QmVzdCw8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPkFsZXhhbmRlcjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48
L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUu
MHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjx0
YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNl
bGxwYWRkaW5nPSIwIiB3aWR0aD0iNzE3IiBzdHlsZT0id2lkdGg6NTM3Ljc1cHQ7Ym9yZGVyLWNv
bGxhcHNlOmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1cHQiPg0K
PHRkIHdpZHRoPSIxMzciIHN0eWxlPSJ3aWR0aDoxMDMuMXB0O2JvcmRlcjpub25lO2JvcmRlci1y
aWdodDpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDto
ZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZiI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iNTgwIiB2YWxpZ249InRvcCIgc3R5bGU9
IndpZHRoOjQzNC42NXB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVw
dCI+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OyxzYW5zLXNlcmlmIj5NaWNoZWwgVmVpbGxldHRlPGJyPg0KU3lzdGVtIEFyY2hp
dGVjdHVyZSBEaXJlY3Rvcjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OyxzYW5zLXNlcmlmIj5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUwLTM3NS0wNTU2IGV4
dC4gMjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5j
LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2M0MxIj5taWNoZWwu
dmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48YSBocmVmPSJodHRwOi8v
d3d3LnRyaWxsaWFudGluYy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OnB1cnBsZSI+d3d3LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0K
PC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVv
dGU+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxv
Y2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48
L3A+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0DM2PR0601MB794na_--

--_004_DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0DM2PR0601MB794na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Mon, 08 Jun 2015 14:35:55 GMT";
	modification-date="Mon, 08 Jun 2015 14:35:55 GMT"
Content-ID: <image001.jpg@01D0A1CF.17E17C60>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0DM2PR0601MB794na_--


From nobody Mon Jun  8 09:00:18 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ADA401B2FCB; Mon,  8 Jun 2015 09:00:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uYL9VlWxTl_A; Mon,  8 Jun 2015 09:00:03 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id 622E31A9100; Mon,  8 Jun 2015 09:00:02 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 258FE23201A; Mon,  8 Jun 2015 18:00:01 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id JhgsIfdEUycS; Mon,  8 Jun 2015 17:59:58 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id B9DB4232439; Mon,  8 Jun 2015 17:59:58 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 7Yq3GvAsjOKB; Mon,  8 Jun 2015 17:59:58 +0200 (CEST)
Received: from [IPv6:2001:660:7301:3728:c54:528:53b5:e41] (passerelle-interne.enst-bretagne.fr [192.108.117.210]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id 2162023201A; Mon,  8 Jun 2015 17:59:58 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_615BC257-92F8-4145-A3B7-CF26D5395163"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com>
Date: Mon, 8 Jun 2015 17:59:58 +0200
Message-Id: <4C83F3E9-BDB1-45A7-8ABB-5E45A1B8D361@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <855287F5-C374-4C79-973C-169CD0F90D9A@telecom-bretagne.eu> <CO2PR0601MB792CF17A97F6B962676F06CFEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <5A6EA7C1-C367-4B0D-AEE2-688368A7F495@telecom-bretagne.eu> <DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/FCEZdwr00FSXvHkk6dtkwyJNPJY>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Jun 2015 16:00:15 -0000

--Apple-Mail=_615BC257-92F8-4145-A3B7-CF26D5395163
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Michel,


> Le 8 juin 2015 =C3=A0 16:35, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> Hi Alexander
> =20
> The proposed =E2=80=9Clong form, short form=E2=80=9D is incompatible =
with the concept of aliases since the short form ID space is the same as =
the proposed aliases ID space. We will have to choose one or the other. =
In the following example, IDs 1, 2, 3 is the short form within the =
module ID 25, not alias 1, 2, 3. =E2=80=9Clong form, short form=E2=80=9D =
add some extra overhead compared to aliases, however this approach have =
multiple advantages:
> =C2=B7         Allows compression of all modules, not just a small =
subset of IDs (20 or 256 IDs)
> =C2=B7         Do not require an initial handshake for aliases =
discovery or configuration
> =C2=B7         Can be implemented using the same simple rules as =
RESTconf


Ok, I see what you mean. Indeed, there could be a way to have both =
aliases and the long form, short form, but maybe it becomes a little bit =
clumsy, and the goal is to avoid complexity.

In your proposal, the module ID =3D 0 is reserved for the compression =
prefix, and I agree that this will be more generic than simply leaving =
it for the aliases.=20

However, I would still consider that there are interesting cases where =
aliasing can be applied. There are two possibilities to reconcile them:
1) reserve data node ID < 24. Module ID=3D0 + data node IDs < 24 can =
then be used for the aliasing (if needed). The specification of this can =
be out of CoMI or with the simple mechanism I described in the previous =
mail.=20
2) reserve module ID =3D 1 (or /mg/g0) for aliasing. Maybe this would be =
the best solution, as it only increases the alias URI with 1 character =
compared to the initial proposal.=20

I would go with 2), as it has the same merits of the aliases (can be =
standardized very simply, at no cost for devices), and is only based on =
reserving a module ID for this purpose. It keeps the possibility to use =
the compressed YANG id + long form / short form.=20

> =20
> REQ: GET example.com/mg/GQB <http://example.com/mg/GQB>
> =20
> RES: 2.05 Content (Content-Format: application/cbor)
> {
>   1 : {
>     2 : " leafA1 value",
>     3 : " leafA2 value "
>     26625 : " leafA3 value "
>   }
> }
> =20
> About the meta information such as the list of modules and the list =
for streams. This should be implemented using YANG modules , =
=E2=80=9Cietf-yang-library=E2=80=9D and =E2=80=9Cietf-restconf-monitoring=E2=
=80=9D or equivalent. We don=E2=80=99t need to create special behaviours =
or special query parameters to implement this meta data.
> =20
> http://www.netconfcentral.org/modules/ietf-yang-library/2014-09-26 =
<http://www.netconfcentral.org/modules/ietf-yang-library/2014-09-26>
> =20
> ietf-yang-library:modules/module/name
> ietf-yang-library:modules/module/revision
> ietf-yang-library:modules/module/schema
> ietf-yang-library:modules/module/namespace
> ietf-yang-library:modules/module/feature
> ietf-yang-library:modules/module/conformance
> ietf-yang-library:modules/module/submodule/name
> ietf-yang-library:modules/module/submodule/revision
> ietf-yang-library:modules/module/submodule/schema
> =20
> http://www.netconfcentral.org/modulereport/ietf-restconf-monitoring =
<http://www.netconfcentral.org/modulereport/ietf-restconf-monitoring>
> =20
> ietf-restconf-monitoring:restconf-state/capabilities/capability
> ietf-restconf-monitoring:restconf-state/streams/stream/name
> ietf-restconf-monitoring:restconf-state/streams/stream/description
> ietf-restconf-monitoring:restconf-state/streams/stream/replay-support
> =
ietf-restconf-monitoring:restconf-state/streams/stream/replay-log-creation=
-time
> ietf-restconf-monitoring:restconf-state/streams/stream/encoding/type
> ietf-restconf-monitoring:restconf-state/streams/stream/encoding/events

Ok, great! Thanks for pointing this out - there is no need to reinvent =
the wheel.

Best,
Alexander

> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]=20
> Sent: 7 juin 2015 05:21
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org; core@ietf.org
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> That sound great! Having the short form (10 bits data node ID) and =
long form (20 bits module ID + 10 bits data node ID), can save quite a =
lot when dealing with more than isolated data items, as you point in =
your example.=20
> =20
> As I mentioned earlier, having your moduleID+0000000000 can be used as =
YANG id for the module, which can provide meta-information on the loaded =
module. For example, if you issue a request against that ID and receive =
Resource not found, then the module is not loaded (but this of course =
should not be the way to discover it). Is this useful? If there is need =
for module versioning, the YANG module ID can be used to obtain the =
versioning information. Having deterministic data node IDs can be used =
to have versions of the same module (e.g. adding new leafs, new =
containers, etc.) - removing things out will require new module ID.
> =20
> In addition to having reduced data requirements (in URIs and CBOR), =
having the fixed YANG module IDs helps locate some special resources.
> E.g. module ID:
>    aliasing : 18 bits =3D 0 + 00
>       full YANG module ID =3D AAAA (compressed to A)
>    YANG meta-data module: 18 bits =3D 0 + 01
>       full YANG module ID=3D AAAg0 (compressed to g0)
>    Reserved for future use: 18 bits =3D 0 + 10 and 18 bits =3D 0 + 11
> =20
> The YANG meta-data module can provide all necessary meta-information, =
e.g. mod.uri, the loaded modules, their versions, and so forth. This =
keeps the separation between aliasing and meta-information. Note, that =
the meta-module YANG scheme will be published with a normal assigned =
YANG module ID, which will be mapped to the /mg/g0, e.g. changing the =
meta-data a couple of years down the road is possible with or without =
versioning.
> =20
> I also don=E2=80=99t think it would be a good idea to have complex =
aliasing mechanisms, and this should be further discussed. It will be =
very useful for managed networks. The /mg/A resource should be kept as =
light as possible. For the moment I think there are only two necessary =
pieces of information that need to be given by it: hash-value of the =
contents of the mapping and URI to extract the full mapping. The mapping =
can be obtained from the meta-data (/mg/g0 or .well-known/core).  The =
simplest mechanism to be used is the following:=20
> =20
> 1) If no aliases are defined, then the client can POST a new alias =
mapping
>    1.a) the alias mapping expires after a timer (default value =3D 1h, =
which can be overridden by the client)
>    1.b) upon timer expiry, the alias mapping is deleted
>    1.c) the timer can be extended with a keep-alive POST from any =
client
> 2) An alias mapping cannot be altered or deleted by a client.=20
> =20
> The reasoning behind this is the following: A node becomes =
=E2=80=98managed=E2=80=99 by a client, and the client registers this. If =
a different client tries to POST new configuration it will receive a =
4.03 Forbidden.=20
> =20
> This actually makes configuring and implementing aliases really =
straightforward. Upon discovery of a node, a client can directly POST to =
/mg/A, and if it receives:
>    - "4.04 Not Found", then aliasing is not supported
>    - "4.03 Forbidden", the alias mapping is already defined (by =
someone else)
>    - "2.01 Created" - alias defined
>    - "2.04 Changed" - alias timer updated
> =20
> If the /mg/g0 is accepted as YANG meta-data module pointer, then the =
actual alias mapping can be retrieved from there.=20
> =20
> Best,
> Alexander
> =20
> =20
> =20
> =20
> Le 5 juin 2015 =C3=A0 23:43, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander and Hi Andy
> =20
> I thinks we can avoid the support of a complex aliases mechanism and =
still archive the same level of message compression.
> The solution consists of supporting two forms of data node identifier, =
the same way as RESTconf. (e.g. ietf-system:current-datetime vs. =
current-datetime)
> =20
> The long form will consist of the ID format proposed by Alexander  (2 =
reserved bits, 20 bits module ID, 10 bits data node ID).
> The short form will carry only the data node ID  (10 bits data node =
ID).
> The long form will be used only when needed.
> =20
> Let assume we have these two modules:
> =20
> module a {
> =20
>   container containerA {
>     leaf leafA1 { type string},
>     leaf leafA2 { type string}
>   }
> }
> =20
> module b {
>   import a { prefix a; }
> =20
>   augment "/a:containerA" {
>     leaf leafA3 { type string}
>   }
> }
> =20
> Let assume we have these assigned IDs:
> =20
> =20
> ID
> Full ID
> Base64
> module a
> 25
> =20
> =20
> container containerA
> 1
> 110010000000001 =3D 25601
> GQB
> leaf leafA1
> 2
> 110010000000010 =3D 25602
> GQC
> leaf leafA2
> 3
> 110010000000011 =3D 25602
> GQD
> module b
> 26
> =20
> =20
> leaf leafA3
> 1
> 110100000000001 =3D 26625
> GgB
> =20
> A GET can be implemented as follow:
> =20
> REQ: GET example.com/mg/GQB <http://example.com/mg/GQB>
> =20
> RES: 2.05 Content (Content-Format: application/cbor)
> {
>   1 : {
>     2 : " leafA1 value",
>     3 : " leafA2 value "
>     26625 : " leafA3 value "
>   }
> }
> =20
> A PUT can be implemented as follow:
> =20
> REQ: PUT example.com/mg <http://example.com/mg>
> {
>   25601 : {
>     2 : " leafA1 value",
>     3 : " leafA2 value "
>     26625 : " leafA3 value "
>   }
> }
> =20
> RES: 2.05 Ok
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 16:10
> To: Andy Bierman
> Cc: Michel Veillette; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Andy,
> =20
> You are right that if we start considering multiple clients, each of =
which trying to use its aliases the things become.. les optimal. And if =
no caution is taken - can spell trouble.
> =20
> The point is, your default behavior should be to use the normal ID. =
However, in some cases, you may decide that you=E2=80=99re going to be =
having quite a lot of exchanges with the same ID, so yes, you can =
redefine the alias mapping.=20
> =20
> However, you are right that we need to take care of eventual race =
conditions. Indeed, in 6TiSCH and other managed networks it may not =
happen (which alone is sufficient for me to have this =C2=AB golden =C2=BB=
 IDs be left out of the =C2=AB randomly allocated =C2=BB, or =C2=AB =
eternally locked to a specific ID =C2=BB resources).
> =20
> Having the /mg/A resource provide the meta-information can help solve =
a lot (all?) of the problems. (in my past mails I referred this as /mg/0 =
but I meant /mg/A, sorry)
> =20
> The first requirement for a client is to query the /mg/A resource.=20
> There, you can get the meta-data concerning the aliases, including the =
hash of the alias mapping, the mapping itself (if necessary), and the =
updater (identified by a token). I=E2=80=99m wondering if there could be =
added a validity of the mapping. A client can change the mapping ONLY if =
it is the last updater (hash+token match), or if the validity has =
expired. If the server has a way of keeping time it can track the =
validity itself. Otherwise, it can be a constant datetime after which =
the resource is considered expired and any client can update the =
resource.=20
> =20
> Just to be sure, I=E2=80=99m talking about clients, which are capable =
enough to keep track of some context about the servers it controls OR a =
client in a particular kind of network, which knows that some things are =
just expected to be there and there is no way for them to happer =
otherwise.=20
> =20
> *****************
> ** The default way of doing things should always be to use the normal =
IDs.** If you want to be optimal (in some way), get /mg/A, and if you =
understand it - use it. If there=E2=80=99s nothing, POST whatever you =
like, but be sure that you have enough resources to remember what =
you=E2=80=99re doing.=20
> *=20
> * If you want to set a different configuration in each of your 10M =
nodes, then well you should have the storage to remember all of them.
> *****************
> =20
> By the way, I was thinking of something quite interesting, which can =
come supplement the node ID aliasing. Actually, I think that the 20 bits =
+ 10 bits YANG id really opens a lot of perspectives (will try to write =
that up tomorrow).
> =20
> The major point is that when the data node ID =3D 0, the module ID can =
be used as a resource to obtain meta-information on the module. For =
example, its version. This way, if you update a YANG module with a new =
one, which only appends elements, you will not need to request a new =
managed ID. GET /mg/moduleID?keys=3Dversion (with data node ID=3D0) and =
you know what is your module really capable of.=20
> =20
> Also, the special place of /mg/A can actually become an entry point =
for most of the information related to CoMI (to be discussed.. I have no =
strong feelings on this). It can, for example, provide the mod.uri, and =
other information. The only information that remains truly necessary to =
be fixed in /.well-known/core is the entry point to the CoMI interface =
(e.g. /mg). Afterwards, everything can be determined from /mg/A with =
queries (/mg/A?keys=3Dmod.uri+alias.uri)
> =20
> Best,
> Alexander
> =20
> PS.
> As if data node aliasing is not enough=E2=80=A6 module ID aliasing =
(this one is really very low in my priorities and I=E2=80=99m mentioning =
it only for completeness):
> =20
> The first 12 bits take 2 URI characters and 2 bytes in CBOR. Having 10 =
bits for the data node ID leaves 2 interesting bits in the module ID =
part=E2=80=A6 So we can have module aliases as well (albeit only 3).
> =20
> That is, in URI encoding,=20
> 0x00000000-0x000003FF -> data node aliasing
> 0x00000400-0x000007FF -> aliased module 1
> 0x00000800-0x00000BFF -> aliased module 2
> 0x00000C00-0x00000BFF-> aliased module 3
> =20
> Implementation-wise, its really easy: upon request, if the module ID =3D=
 aliased module ID 1, replace the module ID part, so no need to map the =
entire module ID / data node ID space.=20
> =20
> But really, that much optimization? Even if it seems straightforward, =
I would like to see use cases that could benefit from this before =
actually considering it.
> =20
> =20
> =20
> Le 5 juin 2015 =C3=A0 20:55, Andy Bierman <andy@yumaworks.com =
<mailto:andy@yumaworks.com>> a =C3=A9crit :
> =20
>=20
>=20
>=20
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
> Hi Alexander
> =20
> I have some concerns about allowing CoMI client(s) the control of the =
list of aliases.
> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
> =20
> One possible solution is that each CoMI client send a list of (alias, =
data node ID) to the CoMI server. In this case, the CoMI client might =
receive an error if one or multiple of these aliases are already =
reserved.
> =20
> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
> =20
> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
> With this is mind, do you have any alternative solutions to propose?
> =20
> =20
> =20
> Does this approach allow each client to have a different set of =
aliases,
> so the server has to maintain a configured mapping for each client?
> This seems like a lot of overhead and NV-storage requirements
> on the server.
> =20
> Changing the schema identifiers based on which client is
> sending the request seems like a complicated design change
> from RESTCONF, NETCONF, or SNMP, where there is only
> 1 schema tree which is not dependent on the client identity.
> =20
> =20
> Andy
> =20
> =20
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 12:03
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> =20
> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander
> =20
> In your presentation at 6TiSCH, you propose the following data node ID =
structure.
> =20
> =E2=80=A2       32 bits YANG ID
> =E2=80=93      20 bits for module ID (assigned by IETF)
> =E2=80=93      10 bits for data node ID (generated deterministically)
> =20
> Based on this structure, we can reserve module ID zero for aliases.
> =20
> =20
> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
> =20
> =20
>=20
> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
> This approach require 4 bytes per CoMI server accessed.
> =20
> =20
> It is possible to map an entire module to the alias space and this is =
up to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
> =20
> If the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:
> POST /mg/0
> {
>  "source_uri" : "/mg/BAA"
> }
> =20
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
> =20
> Or, you can dynamically configure the mapping:
> POST /mg/0
> {
>   YANG_id : alias,
>   YANG_id : alias,
>   YANG_id : alias
> }
> =20
>=20
> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
> =20
> This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
> =20
> Best,
> Alexander
> =20
>=20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>

--Apple-Mail=_615BC257-92F8-4145-A3B7-CF26D5395163
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Michel,</div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">Le =
8 juin 2015 =C3=A0 16:35, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit =
:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Alexander<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">The proposed =E2=80=9Clon=
g form, short form=E2=80=9D is incompatible with the concept of aliases =
since the short form ID space is the same as the proposed aliases ID =
space. We will have to choose one or the other. In the following =
example, IDs 1, 2, 3 is the short form within the module ID 25, not =
alias 1, 2, 3. =E2=80=9Clong form, short form=E2=80=9D add some extra =
overhead compared to aliases, however this approach have multiple =
advantages:<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in =
0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif; text-indent: -0.25in;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Symbol; color: rgb(31, 73, 125);" class=3D""><span =
class=3D"">=C2=B7<span style=3D"font-style: normal; font-variant: =
normal; font-weight: normal; font-size: 7pt; line-height: normal; =
font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Allows compression of all modules, not =
just a small subset of IDs (20 or 256 IDs)<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif; =
text-indent: -0.25in;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Symbol; color: rgb(31, 73, 125);" class=3D""><span =
class=3D"">=C2=B7<span style=3D"font-style: normal; font-variant: =
normal; font-weight: normal; font-size: 7pt; line-height: normal; =
font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Do not require an initial handshake for =
aliases discovery or configuration<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Can be implemented using the same simple =
rules as RESTconf</span></div></div></div></blockquote><div><br =
class=3D""></div><div><br class=3D""></div><div>Ok, I see what you mean. =
Indeed, there could be a way to have both aliases and the long form, =
short form, but maybe it becomes a little bit clumsy, and the goal is to =
avoid complexity.</div><div><br class=3D""></div><div>In your proposal, =
the module ID =3D 0 is reserved for the compression prefix, and I agree =
that this will be more generic than simply leaving it for the =
aliases.&nbsp;</div><div><br class=3D""></div><div>However, I would =
still consider that there are interesting cases where aliasing can be =
applied. There are two possibilities to reconcile them:</div><div>1) =
reserve data node ID &lt; 24. Module ID=3D0 + data node IDs &lt; 24 can =
then be used for the aliasing (if needed). The specification of this can =
be out of CoMI or with the simple mechanism I described in the previous =
mail.&nbsp;</div><div>2) reserve module ID =3D 1 (or /mg/g0) for =
aliasing. Maybe this would be the best solution, as it only increases =
the alias URI with 1 character compared to the initial =
proposal.&nbsp;</div><div><br class=3D""></div><div>I would go with 2), =
as it has the same merits of the aliases (can be standardized very =
simply, at no cost for devices), and is only based on reserving a module =
ID for this purpose. It keeps the possibility to use the compressed YANG =
id + long form / short form.&nbsp;</div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div class=3D"WordSection1" =
style=3D"page: WordSection1; font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/GQB" style=3D"color: purple; =
text-decoration: underline;" class=3D"">example.com/mg/GQB</a></span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">RES: 2.05 Content =
(Content-Format: application/cbor)</span><span lang=3D"FR-CA" =
class=3D""><o:p class=3D""></o:p></span></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">{</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; 1 : {</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 2 : " leafA1 =
value",</span><o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 3 : =
" leafA2 value "</span><o:p class=3D""></o:p></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; =
26625 : " leafA3 value "</span><o:p class=3D""></o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp; }</span><o:p class=3D""></o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">}</span><o:p class=3D""></o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">About the meta information such as the list of modules and =
the list for streams. This should be implemented using YANG modules , =
=E2=80=9Cietf-yang-library=E2=80=9D and =E2=80=9Cietf-restconf-monitoring=E2=
=80=9D or equivalent. We don=E2=80=99t need to create special behaviours =
or special query parameters to implement this meta data.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.netconfcentral.org/modules/ietf-yang-library/2014-09-26=
" style=3D"color: purple; text-decoration: underline;" =
class=3D"">http://www.netconfcentral.org/modules/ietf-yang-library/2014-09=
-26</a><o:p class=3D""></o:p></span></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/name<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><u =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/revision<o:p =
class=3D""></o:p></span></u></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/schema<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/namespace<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">ietf-yang-library:modules/module/feature<o:p=
 class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/conformance<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/submodule/name<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/submodule/revision<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/submodule/schema<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.netconfcentral.org/modulereport/ietf-restconf-monitorin=
g" style=3D"color: purple; text-decoration: underline;" =
class=3D"">http://www.netconfcentral.org/modulereport/ietf-restconf-monito=
ring</a><o:p class=3D""></o:p></span></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/capabilities/capability=
<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/name<o:p=
 class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/descript=
ion<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/replay-s=
upport<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/replay-l=
og-creation-time<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/encoding=
/type<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/encoding=
/events</span></div></div></div></blockquote><div><br =
class=3D""></div><div>Ok, great! Thanks for pointing this out - there is =
no need to reinvent the wheel.</div><div><br =
class=3D""></div><div>Best,</div><div>Alexander</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div class=3D""><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><span =
id=3D"cid:image001.jpg@01D0A1CF.17E17C60">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></span></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt 8.1pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.trilliantinc.com/" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span><span style=3D"font-size:=
 9pt; font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div></td></tr></tbody></table><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
class=3D""><div style=3D"border-style: solid none none; =
border-top-color: rgb(225, 225, 225); border-top-width: 1pt; padding: =
3pt 0in 0in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">From:</span></b><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>Alexander =
Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"Apple-converted-space">&nbsp;</span>7 =
juin 2015 05:21<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Andy Bierman; <a =
href=3D"mailto:6tisch@ietf.org" class=3D"">6tisch@ietf.org</a>; <a =
href=3D"mailto:core@ietf.org" class=3D"">core@ietf.org</a><br =
class=3D""><b class=3D"">Subject:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases<o:p class=3D""></o:p></span></div></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Hi Michel,<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">That sound great! Having the short form =
(10 bits data node ID) and long form (20 bits module ID + 10 bits data =
node ID), can save quite a lot when dealing with more than isolated data =
items, as you point in your example.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">As I mentioned earlier, having your =
moduleID+0000000000 can be used as YANG id for the module, which can =
provide meta-information on the loaded module. For example, if you issue =
a request against that ID and receive Resource not found, then the =
module is not loaded (but this of course should not be the way to =
discover it). Is this useful? If there is need for module versioning, =
the YANG module ID can be used to obtain the versioning information. =
Having deterministic data node IDs can be used to have versions of the =
same module (e.g. adding new leafs, new containers, etc.) - removing =
things out will require new module ID.<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">In addition to having reduced data =
requirements (in URIs and CBOR), having the fixed YANG module IDs helps =
locate some special resources.<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">E.g. module ID:<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; &nbsp;aliasing : 18 bits =3D 0 + 00<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; &nbsp; &nbsp; full YANG module ID =3D AAAA (compressed =
to A)<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; &nbsp;YANG meta-data module: 18 =
bits =3D 0 + 01<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; &nbsp; &nbsp; full YANG module ID=3D=
 AAAg0 (compressed to g0)<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp; &nbsp;Reserved =
for future use: 18 bits =3D 0 + 10 and 18 bits =3D 0 + 11<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">The YANG meta-data module can provide all =
necessary meta-information, e.g. mod.uri, the loaded modules, their =
versions, and so forth. This keeps the separation between aliasing and =
meta-information. Note, that the meta-module YANG scheme will be =
published with a normal assigned YANG module ID, which will be mapped to =
the /mg/g0, e.g. changing the meta-data a couple of years down the road =
is possible with or without versioning.<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">I also don=E2=80=99t think it would be a =
good idea to have complex aliasing mechanisms, and this should be =
further discussed. It will be very useful for managed networks. The =
/mg/A resource should be kept as light as possible. For the moment I =
think there are only two necessary pieces of information that need to be =
given by it: hash-value of the contents of the mapping and URI to =
extract the full mapping. The mapping can be obtained from the meta-data =
(/mg/g0 or .well-known/core). &nbsp;The simplest mechanism to be used is =
the following:&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div=
 style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">1) If no aliases are defined, then the client can =
POST a new alias mapping<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp; &nbsp;1.a) the =
alias mapping expires after a timer (default value =3D 1h, which can be =
overridden by the client)<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp; &nbsp;1.b) =
upon timer expiry, the alias mapping is deleted<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; &nbsp;1.c) the timer can be extended with a keep-alive =
POST from any client<o:p class=3D""></o:p></div></div><div class=3D""><div=
 style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">2) An alias mapping cannot be altered or =
deleted by a client.&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">The reasoning behind this is the following: A node =
becomes =E2=80=98managed=E2=80=99 by a client, and the client registers =
this. If a different client tries to POST new configuration it will =
receive a 4.03 Forbidden.&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">This actually makes configuring and implementing =
aliases really straightforward. Upon discovery of a node, a client can =
directly POST to /mg/A, and if it receives:<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; &nbsp;- "4.04 Not Found", then aliasing is not =
supported<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; &nbsp;- "4.03 Forbidden", the =
alias mapping is already defined (by someone else)<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; &nbsp;- "2.01 Created" - alias defined<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; &nbsp;- "2.04 Changed" - alias timer updated<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">If the /mg/g0 is accepted as YANG =
meta-data module pointer, then the actual alias mapping can be retrieved =
from there.&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Best,<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Alexander<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Le 5 juin 2015 =C3=A0 =
23:43, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">Hi =
Alexander and Hi Andy</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">I thinks we can avoid =
the support of a complex aliases mechanism and still archive the same =
level of message compression.</span><o:p class=3D""></o:p></div></div><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The solution consists of supporting two =
forms of data node identifier, the same way as RESTconf. (e.g. =
ietf-system:current-datetime vs. current-datetime)</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">The long form will =
consist of the ID format proposed by Alexander &nbsp;(2 reserved bits, =
20 bits module ID, 10 bits data node ID).</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">The short form will =
carry only the data node ID &nbsp;(10 bits data node ID).</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">The long form will be =
used only when needed.</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Let assume we have =
these two modules:</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">module a {</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; container containerA {</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; leaf leafA1 { type =
string},</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; leaf =
leafA2 { type string}</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp; }</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">module b {</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; import a { prefix a; }</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; augment "/a:containerA" =
{</span><o:p class=3D""></o:p></div></div><div style=3D"margin-left: =
0.5in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; leaf leafA3 { type =
string}</span><o:p class=3D""></o:p></div></div><div style=3D"margin-left:=
 0.5in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; }</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Let assume we have =
these assigned IDs:</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><table class=3D"MsoNormalTable" border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" style=3D"margin-left: 30.2pt; =
border-collapse: collapse;"><tbody class=3D""><tr class=3D""><td =
width=3D"191" valign=3D"top" style=3D"width: 143.6pt; border-style: =
solid; border-color: rgb(153, 153, 153) rgb(153, 153, 153) rgb(102, 102, =
102); border-width: 1pt 1pt 1.5pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><b class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></b><o:p =
class=3D""></o:p></div></div></td><td width=3D"48" valign=3D"top" =
style=3D"width: 0.5in; border-style: solid solid solid none; =
border-top-color: rgb(153, 153, 153); border-top-width: 1pt; =
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 1.5pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><b class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ID</span></b><o:p class=3D""></o:p></div></div></td><td =
width=3D"228" valign=3D"top" style=3D"width: 171pt; border-style: solid =
solid solid none; border-top-color: rgb(153, 153, 153); =
border-top-width: 1pt; border-bottom-color: rgb(102, 102, 102); =
border-bottom-width: 1.5pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><b class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Full ID</span></b><o:p =
class=3D""></o:p></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: solid solid solid none; =
border-top-color: rgb(153, 153, 153); border-top-width: 1pt; =
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 1.5pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><b class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Base64</span></b><o:p =
class=3D""></o:p></div></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">module =
a</span></b><o:p class=3D""></o:p></div></div></td><td width=3D"48" =
valign=3D"top" style=3D"width: 0.5in; border-style: none solid solid =
none; border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">25</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">container =
containerA</span></b><o:p class=3D""></o:p></div></div></td><td =
width=3D"48" valign=3D"top" style=3D"width: 0.5in; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">1</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">110010000000001 =3D =
25601</span><o:p class=3D""></o:p></div></div></td><td width=3D"96" =
valign=3D"top" style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">GQB</span><o:p =
class=3D""></o:p></div></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">leaf =
leafA1</span></b><o:p class=3D""></o:p></div></div></td><td width=3D"48" =
valign=3D"top" style=3D"width: 0.5in; border-style: none solid solid =
none; border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">2</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">110010000000010 =3D =
25602</span><o:p class=3D""></o:p></div></div></td><td width=3D"96" =
valign=3D"top" style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">GQC</span><o:p =
class=3D""></o:p></div></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">leaf =
leafA2</span></b><o:p class=3D""></o:p></div></div></td><td width=3D"48" =
valign=3D"top" style=3D"width: 0.5in; border-style: none solid solid =
none; border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">3</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">110010000000011 =3D =
25602</span><o:p class=3D""></o:p></div></div></td><td width=3D"96" =
valign=3D"top" style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">GQD</span><o:p =
class=3D""></o:p></div></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">module =
b</span></b><o:p class=3D""></o:p></div></div></td><td width=3D"48" =
valign=3D"top" style=3D"width: 0.5in; border-style: none solid solid =
none; border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">26</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></td></tr><tr class=3D""><td width=3D"191" =
valign=3D"top" style=3D"width: 143.6pt; border-style: none solid solid; =
border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, =
153, 153); border-left-color: rgb(153, 153, 153); border-right-width: =
1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 0in =
5.4pt;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">leaf =
leafA3</span></b><o:p class=3D""></o:p></div></div></td><td width=3D"48" =
valign=3D"top" style=3D"width: 0.5in; border-style: none solid solid =
none; border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">1</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">110100000000001 =3D =
26625</span><o:p class=3D""></o:p></div></div></td><td width=3D"96" =
valign=3D"top" style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">GgB</span><o:p =
class=3D""></o:p></div></div></td></tr></tbody></table><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">A GET can be =
implemented as follow:</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/GQB" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg/GQB</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">RES: 2.05 Content (Content-Format: =
application/cbor)</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">{</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; 1 : {</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 2 : " leafA1 =
value",</span><o:p class=3D""></o:p></div></div><div style=3D"margin-left:=
 0.5in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 3 : " leafA2 value =
"</span><o:p class=3D""></o:p></div></div><div style=3D"margin-left: =
0.5in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 26625 : " leafA3 value =
"</span><o:p class=3D""></o:p></div></div><div style=3D"margin-left: =
0.5in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; }</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">A PUT can be =
implemented as follow:</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: PUT<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg" style=3D"color: purple; text-decoration: =
underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">{</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; 25601 : {</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 2 : " leafA1 =
value",</span><o:p class=3D""></o:p></div></div><div style=3D"margin-left:=
 0.5in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 3 : " leafA2 value =
"</span><o:p class=3D""></o:p></div></div><div style=3D"margin-left: =
0.5in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 26625 : " leafA3 value =
"</span><o:p class=3D""></o:p></div></div><div style=3D"margin-left: =
0.5in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">RES: 2.05 Ok</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></div></td></tr></tbody></table><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(225, 225, 225); border-top-width: =
1pt; padding: 3pt 0in 0in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">From:</span></b><span class=3D"apple-converted-space"><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span></span><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Alexander Pelov [<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
purple;" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</span></a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 =
juin 2015 16:10<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman<br class=3D""><b=
 class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">6tisch@ietf.org</span></a>;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Hi Andy,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">You are right that if we start =
considering multiple clients, each of which trying to use its aliases =
the things become.. les optimal. And if no caution is taken - can spell =
trouble.<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">The point is, your default behavior =
should be to use the normal ID. However, in some cases, you may decide =
that you=E2=80=99re going to be having quite a lot of exchanges with the =
same ID, so yes, you can redefine the alias mapping.&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">However, you are right that we need to =
take care of eventual race conditions. Indeed, in 6TiSCH and other =
managed networks it may not happen (which alone is sufficient for me to =
have this =C2=AB&nbsp;golden&nbsp;=C2=BB IDs be left out of the =C2=AB =
randomly allocated&nbsp;=C2=BB, or =C2=AB eternally locked to a specific =
ID =C2=BB resources).<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">Having=
 the /mg/A resource provide the meta-information can help solve a lot =
(all?) of the problems. (in my past mails I referred this as /mg/0 but I =
meant /mg/A, sorry)<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">The =
first requirement for a client is to query the /mg/A resource.&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">There, you can get the meta-data =
concerning the aliases, including the hash of the alias mapping, the =
mapping itself (if necessary), and the updater (identified by a token). =
I=E2=80=99m wondering if there could be added a validity of the mapping. =
A client can change the mapping ONLY if it is the last updater =
(hash+token match), or if the validity has expired. If the server has a =
way of keeping time it can track the validity itself. Otherwise, it can =
be a constant datetime after which the resource is considered expired =
and any client can update the resource.&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Just to be sure, I=E2=80=99m talking =
about clients, which are capable enough to keep track of some context =
about the servers it controls OR a client in a particular kind of =
network, which knows that some things are just expected to be there and =
there is no way for them to happer otherwise.&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">*****************<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">** The default way of doing things should =
always be to use the normal IDs.** If you want to be optimal (in some =
way), get /mg/A, and if you understand it - use it. If there=E2=80=99s =
nothing, POST whatever you like, but be sure that you have enough =
resources to remember what you=E2=80=99re doing.&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">*&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">* If you want to set a different =
configuration in each of your 10M nodes, then well you should have the =
storage to remember all of them.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">*****************<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">By the way, I was thinking of something =
quite interesting, which can come supplement the node ID aliasing. =
Actually, I think that the 20 bits + 10 bits YANG id really opens a lot =
of perspectives (will try to write that up tomorrow).<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">The major point is that when the data =
node ID =3D 0, the module ID can be used as a resource to obtain =
meta-information on the module. For example, its version. This way, if =
you update a YANG module with a new one, which only appends elements, =
you will not need to request a new managed ID. GET =
/mg/moduleID?keys=3Dversion (with data node ID=3D0) and you know what is =
your module really capable of.&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Also, the special place of /mg/A can =
actually become an entry point for most of the information related to =
CoMI (to be discussed.. I have no strong feelings on this). It can, for =
example, provide the mod.uri, and other information. The only =
information that remains truly necessary to be fixed in =
/.well-known/core is the entry point to the CoMI interface (e.g. /mg). =
Afterwards, everything can be determined from /mg/A with queries =
(/mg/A?keys=3Dmod.uri+alias.uri)<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Best,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Alexander<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">PS.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">As if data node aliasing is not enough=E2=80=
=A6 module ID aliasing (this one is really very low in my priorities and =
I=E2=80=99m mentioning it only for completeness):<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">The first 12 bits take 2 URI characters =
and 2 bytes in CBOR. Having 10 bits for the data node ID leaves 2 =
interesting bits in the module ID part=E2=80=A6 So we can have module =
aliases as well (albeit only 3).<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">That is, in URI encoding,&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">0x00000000-0x000003FF -&gt; data node =
aliasing<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">0x00000400-0x000007FF =
-&gt; aliased module 1<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000800-0x00000BFF -&gt; aliased module 2<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">0x00000C00-0x00000BFF-&gt; aliased module =
3<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Implementation-wise, its really easy: =
upon request, if the module ID =3D aliased module ID 1, replace the =
module ID part, so no need to map the entire module ID / data node ID =
space.&nbsp;<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">But really, that much optimization? Even =
if it seems straightforward, I would like to see use cases that could =
benefit from this before actually considering it.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Le 5 juin 2015 =C3=A0 20:55, Andy Bierman &lt;<a =
href=3D"mailto:andy@yumaworks.com" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">andy@yumaworks.com</span></a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><br =
class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">On Fri, Jun 5, 2015 at =
11:41 AM, Michel Veillette<span =
class=3D"apple-converted-space">&nbsp;</span>&lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt;<span =
class=3D"apple-converted-space">&nbsp;</span>wrote:</span><o:p =
class=3D""></o:p></div></div><blockquote style=3D"border-style: none =
none none solid; border-left-color: rgb(204, 204, 204); =
border-left-width: 1pt; padding: 0in 0in 0in 6pt; margin: 5pt 0in 5pt =
4.8pt;" class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">Hi =
Alexander</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">I have some concerns about allowing CoMI =
client(s) the control of the list of aliases.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">This approach work fine =
for the first CoMI application (e.g. 6TiSCH) but what do we do with the =
subsequent CoMI application?</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">One possible solution =
is that each CoMI client send a list of (alias, data node ID) to the =
CoMI server. In this case, the CoMI client might receive an error if one =
or multiple of these aliases are already reserved.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">A second possible =
solution is that each CoMI client send a list of (data node ID) and get =
a list of (alias, data node ID) from the CoMI server. In this case, CoMI =
clients will have to deal with a mix population of aliases.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">The proposed solution =
need to scale to a multi-vendors, multiple applications =
environment.</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">With this is mind, do you have any alternative solutions to =
propose?</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">Does this approach allow each client to have a different set =
of aliases,</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">so the server has to maintain a configured mapping for each =
client?</span><o:p class=3D""></o:p></div></div></div><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">This seems like a lot of overhead and NV-storage =
requirements</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">on the server.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">Changing the schema =
identifiers based on which client is</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">sending the request =
seems like a complicated design change</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">from RESTCONF, NETCONF, =
or SNMP, where there is only</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">1 schema tree which is =
not dependent on the client identity.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">Andy</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Helvetica, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><blockquote style=3D"border-style: =
none none none solid; border-left-color: rgb(204, 204, 204); =
border-left-width: 1pt; padding: 0in 0in 0in 6pt; margin: 5pt 0in 5pt =
4.8pt;" class=3D""><div class=3D""><div class=3D""><div class=3D""><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></div></td></tr></tbody></table><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(225, 225, 225); border-top-width: =
1pt; padding: 3pt 0in 0in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">From:</span></b><span class=3D"apple-converted-space"><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span></span><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Alexander Pelov [mailto:<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">alexander.pelov@telecom-bretagne.eu</span></a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 =
juin 2015 12:03<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
purple;" class=3D"">6tisch@ietf.org</span></a>;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" target=3D"_blank" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Hi Michel,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Le 5 juin 2015 =C3=A0 17:17, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; a =C3=A9crit =
:<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Hi=
 Alexander</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">In=
 your presentation at 6TiSCH, you propose the following data node ID =
structure.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
style=3D"border-collapse: collapse;"><tbody class=3D""><tr class=3D""><td =
width=3D"623" valign=3D"top" style=3D"width: 467.5pt; border: 1pt solid =
windowtext; padding: 0in 5.4pt;" class=3D""><div style=3D"margin-left: =
0.5in;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=A2</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">32 bits YANG ID</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 1in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span lang=3D"EN-US"=
 style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">20 bits for module ID (assigned by IETF)</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 1in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span lang=3D"EN-US"=
 style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">10 bits for data node ID (generated =
deterministically)</span><o:p =
class=3D""></o:p></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Based on this structure, we can reserve&nbsp;</span><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">module ID zero for aliases.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">I was just summarizing what was discussed =
on the discussion in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=
=99s for purposes to be consistent with the YANG hash and I don=E2=80=99t =
mind keeping it 30 bits.<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;">&nbsp;<o:p =
class=3D""></o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">If=
 we want to minimize both the network an node resources require by this =
alias mechanism, we can map an entire module to this space.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">This can be =
implemented by a single integer resource (e.g. leaf alliassedModule { =
type uint32 } )</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">This approach require 4 bytes per CoMI server =
accessed.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">It is possible to map an entire module to =
the alias space and this is up to the operator. However, if you load two =
modules which redefine the same alias you will loose the benefit from =
it. Maybe it would be interesting to be able to specify that you want =
the aliases from THIS specific module to be used.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">If the /mg/0 alias is reserved for =
managing the aliases, this could be simply saying:<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">POST /mg/0<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">{<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;"source_uri" : "/mg/BAA"<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">}<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">where /mg/BAA is the YANG id of the =
module (20 bits module ID + 10 bits set to 0). This way, the server will =
know: OK, get the alias mapping from the YANG scheme of module with ID =3D=
 B (as defined by the IETF).&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Or, you can dynamically configure the =
mapping:<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">POST =
/mg/0<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">{<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">}<o:p =
class=3D""></o:p></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin: 0in 0in 12pt; font-size: 12pt; font-family: 'Times New =
Roman', serif;">&nbsp;<o:p class=3D""></o:p></p><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">If we want a more complex but more =
flexible aliases mechanism, your proposed map of (allias, YANG ID) seem =
the solution.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">However, we have to consider that this structure =
can be as large as&nbsp;<u class=3D"">1250 bytes per CoMI server =
accessed</u>&nbsp;if limited to 256 aliases.</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">This is assuming you need a separate =
mapping for each server. I would suppose that in a network you=E2=80=99ll =
have a single alias mapping (maybe two?) - after all, you=E2=80=99re =
trying to optimize the management of your devices (servers). So, =
typically you=E2=80=99d map all 6tisch devices with aliases 1-10 =
(channel, slot, etc.) and use that on them, and on all other you=E2=80=99d=
 access the full ID.&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Best,<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Alexander<o:p class=3D""></o:p></div></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;">&nbsp;<o:p =
class=3D""></o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><a=
 href=3D"http://www.trilliantinc.com/" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"font-size: =
9pt; font-family: Arial, sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span></div></div></div></td></=
tr></tbody></table></div></blockquote></div></div></div></blockquote></div=
></div></blockquote></div></div></blockquote></div></div></div></blockquot=
e></div><br class=3D""></div></body></html>=

--Apple-Mail=_615BC257-92F8-4145-A3B7-CF26D5395163--




From nobody Mon Jun  8 11:26:38 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9F4631AC449; Mon,  8 Jun 2015 11:26:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bbW2PH17PSOA; Mon,  8 Jun 2015 11:26:28 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0113.outbound.protection.outlook.com [207.46.100.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 694C51AC446; Mon,  8 Jun 2015 11:26:28 -0700 (PDT)
Received: from DM2PR0601MB794.namprd06.prod.outlook.com (10.242.173.142) by DM2PR0601MB794.namprd06.prod.outlook.com (10.242.173.142) with Microsoft SMTP Server (TLS) id 15.1.172.22; Mon, 8 Jun 2015 18:26:23 +0000
Received: from DM2PR0601MB794.namprd06.prod.outlook.com ([10.242.173.142]) by DM2PR0601MB794.namprd06.prod.outlook.com ([10.242.173.142]) with mapi id 15.01.0172.012; Mon, 8 Jun 2015 18:26:23 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAAACnfUAAAEoyEAATMHqAAA7HtdwAAUZ6AAAA2dt0A==
Date: Mon, 8 Jun 2015 18:26:22 +0000
Message-ID: <DM2PR0601MB7945552A1CE68AC4385717CFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <855287F5-C374-4C79-973C-169CD0F90D9A@telecom-bretagne.eu> <CO2PR0601MB792CF17A97F6B962676F06CFEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <5A6EA7C1-C367-4B0D-AEE2-688368A7F495@telecom-bretagne.eu> <DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com> <4C83F3E9-BDB1-45A7-8ABB-5E45A1B8D361@telecom-bretagne.eu>
In-Reply-To: <4C83F3E9-BDB1-45A7-8ABB-5E45A1B8D361@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: telecom-bretagne.eu; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0601MB794;
x-microsoft-antispam-prvs: <DM2PR0601MB7946D93648C14F864137C3AFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:DM2PR0601MB794; BCL:0; PCL:0;  RULEID:; SRVR:DM2PR0601MB794; 
x-forefront-prvs: 060166847D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(52604005)(43544003)(38414003)(377454003)(24454002)(52034003)(51444003)(19300405004)(2656002)(86362001)(189998001)(19627595001)(19617315012)(92566002)(76176999)(50986999)(16236675004)(87936001)(99936001)(5001960100002)(15395725005)(74316001)(99286002)(54356999)(5002640100001)(17760045003)(19580405001)(110136002)(19625215002)(46102003)(40100003)(62966003)(77156002)(122556002)(18206015028)(15975445007)(102836002)(77096005)(2900100001)(2950100001)(76576001)(93886004)(19580395003)(33656002)(561944003)(66066001)(7099028)(569005); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR0601MB794; H:DM2PR0601MB794.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_DM2PR0601MB7945552A1CE68AC4385717CFEBF0DM2PR0601MB794na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2015 18:26:22.9780 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0601MB794
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/M81TCnRbVv7i0pk34nH3HF0U8CE>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Jun 2015 18:26:36 -0000

--_004_DM2PR0601MB7945552A1CE68AC4385717CFEBF0DM2PR0601MB794na_
Content-Type: multipart/alternative;
	boundary="_000_DM2PR0601MB7945552A1CE68AC4385717CFEBF0DM2PR0601MB794na_"

--_000_DM2PR0601MB7945552A1CE68AC4385717CFEBF0DM2PR0601MB794na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQWxleGFuZGVyDQoNCldlIGhhZCBzb21lIGRpc2N1c3Npb25zIGxhdGVseSBhYm91dCB1c2lu
ZyB0aGUg4oCcc2VsZWN04oCdIHF1ZXJ5IHBhcmFtZXRlciB3aXRoIGEgQ0JPUiBjb250ZW50IGlu
c3RlYWQgb2YgYSBVUkkgd2l0aCBhIGJhc2U2NCBkYXRhIG5vZGUgSUQuDQpEaWQgSSB1bmRlcnN0
YW5kIGNvcnJlY3RseSwgQW5keT8NCg0KSSBzZWUgbXVsdGlwbGUgYWR2YW50YWdlcyB0byB0aGlz
IGFwcHJvYWNoOg0KDQrCtyAgICAgICAgIHdlIGNhbiBzZWxlY3QgYSBsaXN0IG9mIGRhdGEgbm9k
ZXMgaW5zdGVhZCBvZiBhIHNpbmdsZSBkYXRhIG5vZGUNCg0KwrcgICAgICAgICB3ZSBjYW4gdXNl
IHRoZSBmdWxsIDMyIGJpdHMgb2YgdGhlIGRhdGEgbm9kZSBJRCAoaW5zdGVhZCBvZiAzMCBiaXRz
KQ0KDQrCtyAgICAgICAgIHdlIGRvbuKAmXQgbmVlZCB0byBzdXBwb3J0IHR3byBkaWZmZXJlbnQg
cmVwcmVzZW50YXRpb24gb2YgdGhlIGRhdGEgbm9kZSBJRHMNCg0KRm9yIGV4YW1wbGU6IChVc2lu
ZyB0aGUgSURzIGludHJvZHVjZWQgZWFybGllciBpbiB0aGUgdGhyZWFkKQ0KDQpUbyBzZWxlY3Qg
bGVhZkExOg0KDQogICBSRVE6IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3QoMjU2MDIpDQoNCiAg
IFJFUzogMi4wNSBDb250ZW50IChDb250ZW50LUZvcm1hdDogYXBwbGljYXRpb24vY2JvcikNCiAg
IHsNCiAgICAgMiA6ICIgbGVhZkExIHZhbHVlIg0KICAgfQ0KDQpUbyBzZWxlY3QgbGVhZkExLCBs
ZWFmQTIgYW5kIGxlYWZBMzoNCg0KICAgUkVROiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0KCBb
IDI1NjAyLCAzLCAyNjYyNSBdICkNCg0KICAgUkVTOiAyLjA1IENvbnRlbnQgKENvbnRlbnQtRm9y
bWF0OiBhcHBsaWNhdGlvbi9jYm9yKQ0KICAgew0KICAgICAyIDogIiBsZWFmQTEgdmFsdWUiDQog
ICAgIDMgOiAiIGxlYWZBMiB2YWx1ZSAiLA0KICAgICAyNjYyNSA6ICIgbGVhZkEzIHZhbHVlICIN
CiAgIH0NCg0KTm90ZXM6DQoNCsK3ICAgICAgICAgSW4gdGhlIGZpcnN0IGV4YW1wbGUsIHRoZSBz
ZWxlY3QgcXVlcnkgcGFyYW1ldGVyIGNvbnRhaW5zICAweDE5NjQwMg0KDQrCtyAgICAgICAgIElu
IHRoZSBzZWNvbmQgZXhhbXBsZSwgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgY29udGFpbnMg
IDB4ODMxOTY0MDIwMzE5NjgwMQ0KDQrCtyAgICAgICAgIERhdGEgbm9kZSBJRHMgd2l0aGluIHRo
ZSBsaXN0IGVuY29kZWQgdXNpbmcgdGhlIHNob3J0IGZvcm0gaW5oZXJpdCB0aGUgbW9kdWxlIElE
IG9mIHRoZSBwcmV2aW91cyBpdGVtLg0KDQrCtyAgICAgICAgIE1vZHVsZSBJRCAxIHRvIDYzIGFy
ZSBtb3JlIGNvbXBhY3QgKDIgb2N0ZXRzKSBhbmQgc2hvdWxkIGJlIHJlc2VydmVkIHRvIHN0YW5k
YXJkaXplZCBtb2R1bGVzLg0KDQpbY2lkOmltYWdlMDAxLmpwZ0AwMUM4NjhEOC5CRjBCQjdFMF0N
Cg0KTWljaGVsIFZlaWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KVHJpbGxp
YW50IEluYy4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwudmVpbGxldHRlQHRy
aWxsaWFudGluYy5jb208bWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4N
Cnd3dy50cmlsbGlhbnRpbmMuY29tPGh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8+DQoNCg0K
DQpGcm9tOiBBbGV4YW5kZXIgUGVsb3YgW21haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1i
cmV0YWduZS5ldV0NClNlbnQ6IDgganVpbiAyMDE1IDEyOjAwDQpUbzogTWljaGVsIFZlaWxsZXR0
ZQ0KQ2M6IEFuZHkgQmllcm1hbjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQpTdWJq
ZWN0OiBSZTogUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlcw0KDQpIaSBNaWNoZWwsDQoNCg0KTGUg
OCBqdWluIDIwMTUgw6AgMTY6MzUsIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVA
dHJpbGxpYW50aW5jLmNvbTxtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29t
Pj4gYSDDqWNyaXQgOg0KDQpIaSBBbGV4YW5kZXINCg0KVGhlIHByb3Bvc2VkIOKAnGxvbmcgZm9y
bSwgc2hvcnQgZm9ybeKAnSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgY29uY2VwdCBvZiBhbGlh
c2VzIHNpbmNlIHRoZSBzaG9ydCBmb3JtIElEIHNwYWNlIGlzIHRoZSBzYW1lIGFzIHRoZSBwcm9w
b3NlZCBhbGlhc2VzIElEIHNwYWNlLiBXZSB3aWxsIGhhdmUgdG8gY2hvb3NlIG9uZSBvciB0aGUg
b3RoZXIuIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgSURzIDEsIDIsIDMgaXMgdGhlIHNob3J0
IGZvcm0gd2l0aGluIHRoZSBtb2R1bGUgSUQgMjUsIG5vdCBhbGlhcyAxLCAyLCAzLiDigJxsb25n
IGZvcm0sIHNob3J0IGZvcm3igJ0gYWRkIHNvbWUgZXh0cmEgb3ZlcmhlYWQgY29tcGFyZWQgdG8g
YWxpYXNlcywgaG93ZXZlciB0aGlzIGFwcHJvYWNoIGhhdmUgbXVsdGlwbGUgYWR2YW50YWdlczoN
CuKAoiAgICAgICAgIEFsbG93cyBjb21wcmVzc2lvbiBvZiBhbGwgbW9kdWxlcywgbm90IGp1c3Qg
YSBzbWFsbCBzdWJzZXQgb2YgSURzICgyMCBvciAyNTYgSURzKQ0K4oCiICAgICAgICAgRG8gbm90
IHJlcXVpcmUgYW4gaW5pdGlhbCBoYW5kc2hha2UgZm9yIGFsaWFzZXMgZGlzY292ZXJ5IG9yIGNv
bmZpZ3VyYXRpb24NCuKAoiAgICAgICAgIENhbiBiZSBpbXBsZW1lbnRlZCB1c2luZyB0aGUgc2Ft
ZSBzaW1wbGUgcnVsZXMgYXMgUkVTVGNvbmYNCg0KDQpPaywgSSBzZWUgd2hhdCB5b3UgbWVhbi4g
SW5kZWVkLCB0aGVyZSBjb3VsZCBiZSBhIHdheSB0byBoYXZlIGJvdGggYWxpYXNlcyBhbmQgdGhl
IGxvbmcgZm9ybSwgc2hvcnQgZm9ybSwgYnV0IG1heWJlIGl0IGJlY29tZXMgYSBsaXR0bGUgYml0
IGNsdW1zeSwgYW5kIHRoZSBnb2FsIGlzIHRvIGF2b2lkIGNvbXBsZXhpdHkuDQoNCkluIHlvdXIg
cHJvcG9zYWwsIHRoZSBtb2R1bGUgSUQgPSAwIGlzIHJlc2VydmVkIGZvciB0aGUgY29tcHJlc3Np
b24gcHJlZml4LCBhbmQgSSBhZ3JlZSB0aGF0IHRoaXMgd2lsbCBiZSBtb3JlIGdlbmVyaWMgdGhh
biBzaW1wbHkgbGVhdmluZyBpdCBmb3IgdGhlIGFsaWFzZXMuDQoNCkhvd2V2ZXIsIEkgd291bGQg
c3RpbGwgY29uc2lkZXIgdGhhdCB0aGVyZSBhcmUgaW50ZXJlc3RpbmcgY2FzZXMgd2hlcmUgYWxp
YXNpbmcgY2FuIGJlIGFwcGxpZWQuIFRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllcyB0byByZWNv
bmNpbGUgdGhlbToNCjEpIHJlc2VydmUgZGF0YSBub2RlIElEIDwgMjQuIE1vZHVsZSBJRD0wICsg
ZGF0YSBub2RlIElEcyA8IDI0IGNhbiB0aGVuIGJlIHVzZWQgZm9yIHRoZSBhbGlhc2luZyAoaWYg
bmVlZGVkKS4gVGhlIHNwZWNpZmljYXRpb24gb2YgdGhpcyBjYW4gYmUgb3V0IG9mIENvTUkgb3Ig
d2l0aCB0aGUgc2ltcGxlIG1lY2hhbmlzbSBJIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgbWFp
bC4NCjIpIHJlc2VydmUgbW9kdWxlIElEID0gMSAob3IgL21nL2cwKSBmb3IgYWxpYXNpbmcuIE1h
eWJlIHRoaXMgd291bGQgYmUgdGhlIGJlc3Qgc29sdXRpb24sIGFzIGl0IG9ubHkgaW5jcmVhc2Vz
IHRoZSBhbGlhcyBVUkkgd2l0aCAxIGNoYXJhY3RlciBjb21wYXJlZCB0byB0aGUgaW5pdGlhbCBw
cm9wb3NhbC4NCg0KSSB3b3VsZCBnbyB3aXRoIDIpLCBhcyBpdCBoYXMgdGhlIHNhbWUgbWVyaXRz
IG9mIHRoZSBhbGlhc2VzIChjYW4gYmUgc3RhbmRhcmRpemVkIHZlcnkgc2ltcGx5LCBhdCBubyBj
b3N0IGZvciBkZXZpY2VzKSwgYW5kIGlzIG9ubHkgYmFzZWQgb24gcmVzZXJ2aW5nIGEgbW9kdWxl
IElEIGZvciB0aGlzIHB1cnBvc2UuIEl0IGtlZXBzIHRoZSBwb3NzaWJpbGl0eSB0byB1c2UgdGhl
IGNvbXByZXNzZWQgWUFORyBpZCArIGxvbmcgZm9ybSAvIHNob3J0IGZvcm0uDQoNCg0KDQpSRVE6
IEdFVCBleGFtcGxlLmNvbS9tZy9HUUI8aHR0cDovL2V4YW1wbGUuY29tL21nL0dRQj4NCg0KUkVT
OiAyLjA1IENvbnRlbnQgKENvbnRlbnQtRm9ybWF0OiBhcHBsaWNhdGlvbi9jYm9yKQ0Kew0KICAx
IDogew0KICAgIDIgOiAiIGxlYWZBMSB2YWx1ZSIsLA0KICAgIDMgOiAiIGxlYWZBMiB2YWx1ZSAi
LA0KICAgIDI2NjI1IDogIiBsZWFmQTMgdmFsdWUgIg0KICB9DQp9DQoNCkFib3V0IHRoZSBtZXRh
IGluZm9ybWF0aW9uIHN1Y2ggYXMgdGhlIGxpc3Qgb2YgbW9kdWxlcyBhbmQgdGhlIGxpc3QgZm9y
IHN0cmVhbXMuIFRoaXMgc2hvdWxkIGJlIGltcGxlbWVudGVkIHVzaW5nIFlBTkcgbW9kdWxlcyAs
IOKAnGlldGYteWFuZy1saWJyYXJ54oCdIGFuZCDigJxpZXRmLXJlc3Rjb25mLW1vbml0b3Jpbmfi
gJ0gb3IgZXF1aXZhbGVudC4gV2UgZG9u4oCZdCBuZWVkIHRvIGNyZWF0ZSBzcGVjaWFsIGJlaGF2
aW91cnMgb3Igc3BlY2lhbCBxdWVyeSBwYXJhbWV0ZXJzIHRvIGltcGxlbWVudCB0aGlzIG1ldGEg
ZGF0YS4NCg0KaHR0cDovL3d3dy5uZXRjb25mY2VudHJhbC5vcmcvbW9kdWxlcy9pZXRmLXlhbmct
bGlicmFyeS8yMDE0LTA5LTI2DQoNCmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL25h
bWUNCmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL3JldmlzaW9uDQppZXRmLXlhbmct
bGlicmFyeTptb2R1bGVzL21vZHVsZS9zY2hlbWENCmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMv
bW9kdWxlL25hbWVzcGFjZQ0KaWV0Zi15YW5nLWxpYnJhcnk6bW9kdWxlcy9tb2R1bGUvZmVhdHVy
ZQ0KaWV0Zi15YW5nLWxpYnJhcnk6bW9kdWxlcy9tb2R1bGUvY29uZm9ybWFuY2UNCmlldGYteWFu
Zy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL3N1Ym1vZHVsZS9uYW1lDQppZXRmLXlhbmctbGlicmFy
eTptb2R1bGVzL21vZHVsZS9zdWJtb2R1bGUvcmV2aXNpb24NCmlldGYteWFuZy1saWJyYXJ5Om1v
ZHVsZXMvbW9kdWxlL3N1Ym1vZHVsZS9zY2hlbWENCg0KaHR0cDovL3d3dy5uZXRjb25mY2VudHJh
bC5vcmcvbW9kdWxlcmVwb3J0L2lldGYtcmVzdGNvbmYtbW9uaXRvcmluZw0KDQppZXRmLXJlc3Rj
b25mLW1vbml0b3Jpbmc6cmVzdGNvbmYtc3RhdGUvY2FwYWJpbGl0aWVzL2NhcGFiaWxpdHkNCmll
dGYtcmVzdGNvbmYtbW9uaXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0cmVhbS9uYW1l
DQppZXRmLXJlc3Rjb25mLW1vbml0b3Jpbmc6cmVzdGNvbmYtc3RhdGUvc3RyZWFtcy9zdHJlYW0v
ZGVzY3JpcHRpb24NCmlldGYtcmVzdGNvbmYtbW9uaXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJl
YW1zL3N0cmVhbS9yZXBsYXktc3VwcG9ydA0KaWV0Zi1yZXN0Y29uZi1tb25pdG9yaW5nOnJlc3Rj
b25mLXN0YXRlL3N0cmVhbXMvc3RyZWFtL3JlcGxheS1sb2ctY3JlYXRpb24tdGltZQ0KaWV0Zi1y
ZXN0Y29uZi1tb25pdG9yaW5nOnJlc3Rjb25mLXN0YXRlL3N0cmVhbXMvc3RyZWFtL2VuY29kaW5n
L3R5cGUNCmlldGYtcmVzdGNvbmYtbW9uaXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0
cmVhbS9lbmNvZGluZy9ldmVudHMNCg0KT2ssIGdyZWF0ISBUaGFua3MgZm9yIHBvaW50aW5nIHRo
aXMgb3V0IC0gdGhlcmUgaXMgbm8gbmVlZCB0byByZWludmVudCB0aGUgd2hlZWwuDQoNCkJlc3Qs
DQpBbGV4YW5kZXINCg0KDQoNCjxpbWFnZTAwMS5qcGc+DQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5
c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUt
MDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpt
aWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxo
dHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0KRnJvbTogQWxleGFuZGVyIFBlbG92
IFttYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXVdDQpTZW50OiA3IGp1
aW4gMjAxNSAwNToyMQ0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbmR5IEJpZXJtYW47IDZ0
aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgY29yZUBpZXRmLm9yZzxtYWls
dG86Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2Vz
DQoNCkhpIE1pY2hlbCwNCg0KVGhhdCBzb3VuZCBncmVhdCEgSGF2aW5nIHRoZSBzaG9ydCBmb3Jt
ICgxMCBiaXRzIGRhdGEgbm9kZSBJRCkgYW5kIGxvbmcgZm9ybSAoMjAgYml0cyBtb2R1bGUgSUQg
KyAxMCBiaXRzIGRhdGEgbm9kZSBJRCksIGNhbiBzYXZlIHF1aXRlIGEgbG90IHdoZW4gZGVhbGlu
ZyB3aXRoIG1vcmUgdGhhbiBpc29sYXRlZCBkYXRhIGl0ZW1zLCBhcyB5b3UgcG9pbnQgaW4geW91
ciBleGFtcGxlLg0KDQpBcyBJIG1lbnRpb25lZCBlYXJsaWVyLCBoYXZpbmcgeW91ciBtb2R1bGVJ
RCswMDAwMDAwMDAwIGNhbiBiZSB1c2VkIGFzIFlBTkcgaWQgZm9yIHRoZSBtb2R1bGUsIHdoaWNo
IGNhbiBwcm92aWRlIG1ldGEtaW5mb3JtYXRpb24gb24gdGhlIGxvYWRlZCBtb2R1bGUuIEZvciBl
eGFtcGxlLCBpZiB5b3UgaXNzdWUgYSByZXF1ZXN0IGFnYWluc3QgdGhhdCBJRCBhbmQgcmVjZWl2
ZSBSZXNvdXJjZSBub3QgZm91bmQsIHRoZW4gdGhlIG1vZHVsZSBpcyBub3QgbG9hZGVkIChidXQg
dGhpcyBvZiBjb3Vyc2Ugc2hvdWxkIG5vdCBiZSB0aGUgd2F5IHRvIGRpc2NvdmVyIGl0KS4gSXMg
dGhpcyB1c2VmdWw/IElmIHRoZXJlIGlzIG5lZWQgZm9yIG1vZHVsZSB2ZXJzaW9uaW5nLCB0aGUg
WUFORyBtb2R1bGUgSUQgY2FuIGJlIHVzZWQgdG8gb2J0YWluIHRoZSB2ZXJzaW9uaW5nIGluZm9y
bWF0aW9uLiBIYXZpbmcgZGV0ZXJtaW5pc3RpYyBkYXRhIG5vZGUgSURzIGNhbiBiZSB1c2VkIHRv
IGhhdmUgdmVyc2lvbnMgb2YgdGhlIHNhbWUgbW9kdWxlIChlLmcuIGFkZGluZyBuZXcgbGVhZnMs
IG5ldyBjb250YWluZXJzLCBldGMuKSAtIHJlbW92aW5nIHRoaW5ncyBvdXQgd2lsbCByZXF1aXJl
IG5ldyBtb2R1bGUgSUQuDQoNCkluIGFkZGl0aW9uIHRvIGhhdmluZyByZWR1Y2VkIGRhdGEgcmVx
dWlyZW1lbnRzIChpbiBVUklzIGFuZCBDQk9SKSwgaGF2aW5nIHRoZSBmaXhlZCBZQU5HIG1vZHVs
ZSBJRHMgaGVscHMgbG9jYXRlIHNvbWUgc3BlY2lhbCByZXNvdXJjZXMuDQpFLmcuIG1vZHVsZSBJ
RDoNCiAgIGFsaWFzaW5nIDogMTggYml0cyA9IDAgKyAwMA0KICAgICAgZnVsbCBZQU5HIG1vZHVs
ZSBJRCA9IEFBQUEgKGNvbXByZXNzZWQgdG8gQSkNCiAgIFlBTkcgbWV0YS1kYXRhIG1vZHVsZTog
MTggYml0cyA9IDAgKyAwMQ0KICAgICAgZnVsbCBZQU5HIG1vZHVsZSBJRD0gQUFBZzAgKGNvbXBy
ZXNzZWQgdG8gZzApDQogICBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZTogMTggYml0cyA9IDAgKyAx
MCBhbmQgMTggYml0cyA9IDAgKyAxMQ0KDQpUaGUgWUFORyBtZXRhLWRhdGEgbW9kdWxlIGNhbiBw
cm92aWRlIGFsbCBuZWNlc3NhcnkgbWV0YS1pbmZvcm1hdGlvbiwgZS5nLiBtb2QudXJpLCB0aGUg
bG9hZGVkIG1vZHVsZXMsIHRoZWlyIHZlcnNpb25zLCBhbmQgc28gZm9ydGguIFRoaXMga2VlcHMg
dGhlIHNlcGFyYXRpb24gYmV0d2VlbiBhbGlhc2luZyBhbmQgbWV0YS1pbmZvcm1hdGlvbi4gTm90
ZSwgdGhhdCB0aGUgbWV0YS1tb2R1bGUgWUFORyBzY2hlbWUgd2lsbCBiZSBwdWJsaXNoZWQgd2l0
aCBhIG5vcm1hbCBhc3NpZ25lZCBZQU5HIG1vZHVsZSBJRCwgd2hpY2ggd2lsbCBiZSBtYXBwZWQg
dG8gdGhlIC9tZy9nMCwgZS5nLiBjaGFuZ2luZyB0aGUgbWV0YS1kYXRhIGEgY291cGxlIG9mIHll
YXJzIGRvd24gdGhlIHJvYWQgaXMgcG9zc2libGUgd2l0aCBvciB3aXRob3V0IHZlcnNpb25pbmcu
DQoNCkkgYWxzbyBkb27igJl0IHRoaW5rIGl0IHdvdWxkIGJlIGEgZ29vZCBpZGVhIHRvIGhhdmUg
Y29tcGxleCBhbGlhc2luZyBtZWNoYW5pc21zLCBhbmQgdGhpcyBzaG91bGQgYmUgZnVydGhlciBk
aXNjdXNzZWQuIEl0IHdpbGwgYmUgdmVyeSB1c2VmdWwgZm9yIG1hbmFnZWQgbmV0d29ya3MuIFRo
ZSAvbWcvQSByZXNvdXJjZSBzaG91bGQgYmUga2VwdCBhcyBsaWdodCBhcyBwb3NzaWJsZS4gRm9y
IHRoZSBtb21lbnQgSSB0aGluayB0aGVyZSBhcmUgb25seSB0d28gbmVjZXNzYXJ5IHBpZWNlcyBv
ZiBpbmZvcm1hdGlvbiB0aGF0IG5lZWQgdG8gYmUgZ2l2ZW4gYnkgaXQ6IGhhc2gtdmFsdWUgb2Yg
dGhlIGNvbnRlbnRzIG9mIHRoZSBtYXBwaW5nIGFuZCBVUkkgdG8gZXh0cmFjdCB0aGUgZnVsbCBt
YXBwaW5nLiBUaGUgbWFwcGluZyBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUgbWV0YS1kYXRhICgv
bWcvZzAgb3IgLndlbGwta25vd24vY29yZSkuICBUaGUgc2ltcGxlc3QgbWVjaGFuaXNtIHRvIGJl
IHVzZWQgaXMgdGhlIGZvbGxvd2luZzoNCg0KMSkgSWYgbm8gYWxpYXNlcyBhcmUgZGVmaW5lZCwg
dGhlbiB0aGUgY2xpZW50IGNhbiBQT1NUIGEgbmV3IGFsaWFzIG1hcHBpbmcNCiAgIDEuYSkgdGhl
IGFsaWFzIG1hcHBpbmcgZXhwaXJlcyBhZnRlciBhIHRpbWVyIChkZWZhdWx0IHZhbHVlID0gMWgs
IHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBjbGllbnQpDQogICAxLmIpIHVwb24gdGlt
ZXIgZXhwaXJ5LCB0aGUgYWxpYXMgbWFwcGluZyBpcyBkZWxldGVkDQogICAxLmMpIHRoZSB0aW1l
ciBjYW4gYmUgZXh0ZW5kZWQgd2l0aCBhIGtlZXAtYWxpdmUgUE9TVCBmcm9tIGFueSBjbGllbnQN
CjIpIEFuIGFsaWFzIG1hcHBpbmcgY2Fubm90IGJlIGFsdGVyZWQgb3IgZGVsZXRlZCBieSBhIGNs
aWVudC4NCg0KVGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBpcyB0aGUgZm9sbG93aW5nOiBBIG5v
ZGUgYmVjb21lcyDigJhtYW5hZ2Vk4oCZIGJ5IGEgY2xpZW50LCBhbmQgdGhlIGNsaWVudCByZWdp
c3RlcnMgdGhpcy4gSWYgYSBkaWZmZXJlbnQgY2xpZW50IHRyaWVzIHRvIFBPU1QgbmV3IGNvbmZp
Z3VyYXRpb24gaXQgd2lsbCByZWNlaXZlIGEgNC4wMyBGb3JiaWRkZW4uDQoNClRoaXMgYWN0dWFs
bHkgbWFrZXMgY29uZmlndXJpbmcgYW5kIGltcGxlbWVudGluZyBhbGlhc2VzIHJlYWxseSBzdHJh
aWdodGZvcndhcmQuIFVwb24gZGlzY292ZXJ5IG9mIGEgbm9kZSwgYSBjbGllbnQgY2FuIGRpcmVj
dGx5IFBPU1QgdG8gL21nL0EsIGFuZCBpZiBpdCByZWNlaXZlczoNCiAgIC0gIjQuMDQgTm90IEZv
dW5kIiwgdGhlbiBhbGlhc2luZyBpcyBub3Qgc3VwcG9ydGVkDQogICAtICI0LjAzIEZvcmJpZGRl
biIsIHRoZSBhbGlhcyBtYXBwaW5nIGlzIGFscmVhZHkgZGVmaW5lZCAoYnkgc29tZW9uZSBlbHNl
KQ0KICAgLSAiMi4wMSBDcmVhdGVkIiAtIGFsaWFzIGRlZmluZWQNCiAgIC0gIjIuMDQgQ2hhbmdl
ZCIgLSBhbGlhcyB0aW1lciB1cGRhdGVkDQoNCklmIHRoZSAvbWcvZzAgaXMgYWNjZXB0ZWQgYXMg
WUFORyBtZXRhLWRhdGEgbW9kdWxlIHBvaW50ZXIsIHRoZW4gdGhlIGFjdHVhbCBhbGlhcyBtYXBw
aW5nIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGVyZS4NCg0KQmVzdCwNCkFsZXhhbmRlcg0KDQoN
Cg0KDQpMZSA1IGp1aW4gMjAxNSDDoCAyMzo0MywgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZl
aWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFu
dGluYy5jb20+PiBhIMOpY3JpdCA6DQoNCkhpIEFsZXhhbmRlciBhbmQgSGkgQW5keQ0KDQpJIHRo
aW5rcyB3ZSBjYW4gYXZvaWQgdGhlIHN1cHBvcnQgb2YgYSBjb21wbGV4IGFsaWFzZXMgbWVjaGFu
aXNtIGFuZCBzdGlsbCBhcmNoaXZlIHRoZSBzYW1lIGxldmVsIG9mIG1lc3NhZ2UgY29tcHJlc3Np
b24uDQpUaGUgc29sdXRpb24gY29uc2lzdHMgb2Ygc3VwcG9ydGluZyB0d28gZm9ybXMgb2YgZGF0
YSBub2RlIGlkZW50aWZpZXIsIHRoZSBzYW1lIHdheSBhcyBSRVNUY29uZi4gKGUuZy4gaWV0Zi1z
eXN0ZW06Y3VycmVudC1kYXRldGltZSB2cy4gY3VycmVudC1kYXRldGltZSkNCg0KVGhlIGxvbmcg
Zm9ybSB3aWxsIGNvbnNpc3Qgb2YgdGhlIElEIGZvcm1hdCBwcm9wb3NlZCBieSBBbGV4YW5kZXIg
ICgyIHJlc2VydmVkIGJpdHMsIDIwIGJpdHMgbW9kdWxlIElELCAxMCBiaXRzIGRhdGEgbm9kZSBJ
RCkuDQpUaGUgc2hvcnQgZm9ybSB3aWxsIGNhcnJ5IG9ubHkgdGhlIGRhdGEgbm9kZSBJRCAgKDEw
IGJpdHMgZGF0YSBub2RlIElEKS4NClRoZSBsb25nIGZvcm0gd2lsbCBiZSB1c2VkIG9ubHkgd2hl
biBuZWVkZWQuDQoNCkxldCBhc3N1bWUgd2UgaGF2ZSB0aGVzZSB0d28gbW9kdWxlczoNCg0KbW9k
dWxlIGEgew0KDQogIGNvbnRhaW5lciBjb250YWluZXJBIHsNCiAgICBsZWFmIGxlYWZBMSB7IHR5
cGUgc3RyaW5nfSwNCiAgICBsZWFmIGxlYWZBMiB7IHR5cGUgc3RyaW5nfQ0KICB9DQp9DQoNCm1v
ZHVsZSBiIHsNCiAgaW1wb3J0IGEgeyBwcmVmaXggYTsgfQ0KDQogIGF1Z21lbnQgIi9hOmNvbnRh
aW5lckEiIHsNCiAgICBsZWFmIGxlYWZBMyB7IHR5cGUgc3RyaW5nfQ0KICB9DQp9DQoNCkxldCBh
c3N1bWUgd2UgaGF2ZSB0aGVzZSBhc3NpZ25lZCBJRHM6DQoNCg0KDQpJRA0KDQpGdWxsIElEDQoN
CkJhc2U2NA0KDQptb2R1bGUgYQ0KDQoyNQ0KDQoNCg0KDQoNCmNvbnRhaW5lciBjb250YWluZXJB
DQoNCjENCg0KMTEwMDEwMDAwMDAwMDAxID0gMjU2MDENCg0KR1FCDQoNCmxlYWYgbGVhZkExDQoN
CjINCg0KMTEwMDEwMDAwMDAwMDEwID0gMjU2MDINCg0KR1FDDQoNCmxlYWYgbGVhZkEyDQoNCjMN
Cg0KMTEwMDEwMDAwMDAwMDExID0gMjU2MDINCg0KR1FEDQoNCm1vZHVsZSBiDQoNCjI2DQoNCg0K
DQoNCg0KbGVhZiBsZWFmQTMNCg0KMQ0KDQoxMTAxMDAwMDAwMDAwMDEgPSAyNjYyNQ0KDQpHZ0IN
Cg0KDQpBIEdFVCBjYW4gYmUgaW1wbGVtZW50ZWQgYXMgZm9sbG93Og0KDQpSRVE6IEdFVCBleGFt
cGxlLmNvbS9tZy9HUUI8aHR0cDovL2V4YW1wbGUuY29tL21nL0dRQj4NCg0KUkVTOiAyLjA1IENv
bnRlbnQgKENvbnRlbnQtRm9ybWF0OiBhcHBsaWNhdGlvbi9jYm9yKQ0Kew0KICAxIDogew0KICAg
IDIgOiAiIGxlYWZBMSB2YWx1ZSIsDQogICAgMyA6ICIgbGVhZkEyIHZhbHVlICINCiAgICAyNjYy
NSA6ICIgbGVhZkEzIHZhbHVlICINCiAgfQ0KfQ0KDQpBIFBVVCBjYW4gYmUgaW1wbGVtZW50ZWQg
YXMgZm9sbG93Og0KDQpSRVE6IFBVVCBleGFtcGxlLmNvbS9tZzxodHRwOi8vZXhhbXBsZS5jb20v
bWc+DQp7DQogIDI1NjAxIDogew0KICAgIDIgOiAiIGxlYWZBMSB2YWx1ZSIsDQogICAgMyA6ICIg
bGVhZkEyIHZhbHVlICINCiAgICAyNjYyNSA6ICIgbGVhZkEzIHZhbHVlICINCiAgfQ0KfQ0KDQpS
RVM6IDIuMDUgT2sNCg0KDQo8aW1hZ2UwMDEuanBnPg0KDQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0
ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1
NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86bWlj
aGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0Kd3d3LnRyaWxsaWFudGluYy5jb208aHR0
cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoNCkZyb206IEFsZXhhbmRlciBQZWxvdiBb
bWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1XQ0KU2VudDogNSBqdWlu
IDIwMTUgMTY6MTANClRvOiBBbmR5IEJpZXJtYW4NCkNjOiBNaWNoZWwgVmVpbGxldHRlOyA2dGlz
Y2hAaWV0Zi5vcmc8bWFpbHRvOjZ0aXNjaEBpZXRmLm9yZz47IGNvcmVAaWV0Zi5vcmc8bWFpbHRv
OmNvcmVAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlcw0K
DQpIaSBBbmR5LA0KDQpZb3UgYXJlIHJpZ2h0IHRoYXQgaWYgd2Ugc3RhcnQgY29uc2lkZXJpbmcg
bXVsdGlwbGUgY2xpZW50cywgZWFjaCBvZiB3aGljaCB0cnlpbmcgdG8gdXNlIGl0cyBhbGlhc2Vz
IHRoZSB0aGluZ3MgYmVjb21lLi4gbGVzIG9wdGltYWwuIEFuZCBpZiBubyBjYXV0aW9uIGlzIHRh
a2VuIC0gY2FuIHNwZWxsIHRyb3VibGUuDQoNClRoZSBwb2ludCBpcywgeW91ciBkZWZhdWx0IGJl
aGF2aW9yIHNob3VsZCBiZSB0byB1c2UgdGhlIG5vcm1hbCBJRC4gSG93ZXZlciwgaW4gc29tZSBj
YXNlcywgeW91IG1heSBkZWNpZGUgdGhhdCB5b3XigJlyZSBnb2luZyB0byBiZSBoYXZpbmcgcXVp
dGUgYSBsb3Qgb2YgZXhjaGFuZ2VzIHdpdGggdGhlIHNhbWUgSUQsIHNvIHllcywgeW91IGNhbiBy
ZWRlZmluZSB0aGUgYWxpYXMgbWFwcGluZy4NCg0KSG93ZXZlciwgeW91IGFyZSByaWdodCB0aGF0
IHdlIG5lZWQgdG8gdGFrZSBjYXJlIG9mIGV2ZW50dWFsIHJhY2UgY29uZGl0aW9ucy4gSW5kZWVk
LCBpbiA2VGlTQ0ggYW5kIG90aGVyIG1hbmFnZWQgbmV0d29ya3MgaXQgbWF5IG5vdCBoYXBwZW4g
KHdoaWNoIGFsb25lIGlzIHN1ZmZpY2llbnQgZm9yIG1lIHRvIGhhdmUgdGhpcyDCqyBnb2xkZW4g
wrsgSURzIGJlIGxlZnQgb3V0IG9mIHRoZSDCqyByYW5kb21seSBhbGxvY2F0ZWQgwrssIG9yIMKr
IGV0ZXJuYWxseSBsb2NrZWQgdG8gYSBzcGVjaWZpYyBJRCDCuyByZXNvdXJjZXMpLg0KDQpIYXZp
bmcgdGhlIC9tZy9BIHJlc291cmNlIHByb3ZpZGUgdGhlIG1ldGEtaW5mb3JtYXRpb24gY2FuIGhl
bHAgc29sdmUgYSBsb3QgKGFsbD8pIG9mIHRoZSBwcm9ibGVtcy4gKGluIG15IHBhc3QgbWFpbHMg
SSByZWZlcnJlZCB0aGlzIGFzIC9tZy8wIGJ1dCBJIG1lYW50IC9tZy9BLCBzb3JyeSkNCg0KVGhl
IGZpcnN0IHJlcXVpcmVtZW50IGZvciBhIGNsaWVudCBpcyB0byBxdWVyeSB0aGUgL21nL0EgcmVz
b3VyY2UuDQpUaGVyZSwgeW91IGNhbiBnZXQgdGhlIG1ldGEtZGF0YSBjb25jZXJuaW5nIHRoZSBh
bGlhc2VzLCBpbmNsdWRpbmcgdGhlIGhhc2ggb2YgdGhlIGFsaWFzIG1hcHBpbmcsIHRoZSBtYXBw
aW5nIGl0c2VsZiAoaWYgbmVjZXNzYXJ5KSwgYW5kIHRoZSB1cGRhdGVyIChpZGVudGlmaWVkIGJ5
IGEgdG9rZW4pLiBJ4oCZbSB3b25kZXJpbmcgaWYgdGhlcmUgY291bGQgYmUgYWRkZWQgYSB2YWxp
ZGl0eSBvZiB0aGUgbWFwcGluZy4gQSBjbGllbnQgY2FuIGNoYW5nZSB0aGUgbWFwcGluZyBPTkxZ
IGlmIGl0IGlzIHRoZSBsYXN0IHVwZGF0ZXIgKGhhc2grdG9rZW4gbWF0Y2gpLCBvciBpZiB0aGUg
dmFsaWRpdHkgaGFzIGV4cGlyZWQuIElmIHRoZSBzZXJ2ZXIgaGFzIGEgd2F5IG9mIGtlZXBpbmcg
dGltZSBpdCBjYW4gdHJhY2sgdGhlIHZhbGlkaXR5IGl0c2VsZi4gT3RoZXJ3aXNlLCBpdCBjYW4g
YmUgYSBjb25zdGFudCBkYXRldGltZSBhZnRlciB3aGljaCB0aGUgcmVzb3VyY2UgaXMgY29uc2lk
ZXJlZCBleHBpcmVkIGFuZCBhbnkgY2xpZW50IGNhbiB1cGRhdGUgdGhlIHJlc291cmNlLg0KDQpK
dXN0IHRvIGJlIHN1cmUsIEnigJltIHRhbGtpbmcgYWJvdXQgY2xpZW50cywgd2hpY2ggYXJlIGNh
cGFibGUgZW5vdWdoIHRvIGtlZXAgdHJhY2sgb2Ygc29tZSBjb250ZXh0IGFib3V0IHRoZSBzZXJ2
ZXJzIGl0IGNvbnRyb2xzIE9SIGEgY2xpZW50IGluIGEgcGFydGljdWxhciBraW5kIG9mIG5ldHdv
cmssIHdoaWNoIGtub3dzIHRoYXQgc29tZSB0aGluZ3MgYXJlIGp1c3QgZXhwZWN0ZWQgdG8gYmUg
dGhlcmUgYW5kIHRoZXJlIGlzIG5vIHdheSBmb3IgdGhlbSB0byBoYXBwZXIgb3RoZXJ3aXNlLg0K
DQoqKioqKioqKioqKioqKioqKg0KKiogVGhlIGRlZmF1bHQgd2F5IG9mIGRvaW5nIHRoaW5ncyBz
aG91bGQgYWx3YXlzIGJlIHRvIHVzZSB0aGUgbm9ybWFsIElEcy4qKiBJZiB5b3Ugd2FudCB0byBi
ZSBvcHRpbWFsIChpbiBzb21lIHdheSksIGdldCAvbWcvQSwgYW5kIGlmIHlvdSB1bmRlcnN0YW5k
IGl0IC0gdXNlIGl0LiBJZiB0aGVyZeKAmXMgbm90aGluZywgUE9TVCB3aGF0ZXZlciB5b3UgbGlr
ZSwgYnV0IGJlIHN1cmUgdGhhdCB5b3UgaGF2ZSBlbm91Z2ggcmVzb3VyY2VzIHRvIHJlbWVtYmVy
IHdoYXQgeW914oCZcmUgZG9pbmcuDQoqDQoqIElmIHlvdSB3YW50IHRvIHNldCBhIGRpZmZlcmVu
dCBjb25maWd1cmF0aW9uIGluIGVhY2ggb2YgeW91ciAxME0gbm9kZXMsIHRoZW4gd2VsbCB5b3Ug
c2hvdWxkIGhhdmUgdGhlIHN0b3JhZ2UgdG8gcmVtZW1iZXIgYWxsIG9mIHRoZW0uDQoqKioqKioq
KioqKioqKioqKg0KDQpCeSB0aGUgd2F5LCBJIHdhcyB0aGlua2luZyBvZiBzb21ldGhpbmcgcXVp
dGUgaW50ZXJlc3RpbmcsIHdoaWNoIGNhbiBjb21lIHN1cHBsZW1lbnQgdGhlIG5vZGUgSUQgYWxp
YXNpbmcuIEFjdHVhbGx5LCBJIHRoaW5rIHRoYXQgdGhlIDIwIGJpdHMgKyAxMCBiaXRzIFlBTkcg
aWQgcmVhbGx5IG9wZW5zIGEgbG90IG9mIHBlcnNwZWN0aXZlcyAod2lsbCB0cnkgdG8gd3JpdGUg
dGhhdCB1cCB0b21vcnJvdykuDQoNClRoZSBtYWpvciBwb2ludCBpcyB0aGF0IHdoZW4gdGhlIGRh
dGEgbm9kZSBJRCA9IDAsIHRoZSBtb2R1bGUgSUQgY2FuIGJlIHVzZWQgYXMgYSByZXNvdXJjZSB0
byBvYnRhaW4gbWV0YS1pbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLiBGb3IgZXhhbXBsZSwgaXRz
IHZlcnNpb24uIFRoaXMgd2F5LCBpZiB5b3UgdXBkYXRlIGEgWUFORyBtb2R1bGUgd2l0aCBhIG5l
dyBvbmUsIHdoaWNoIG9ubHkgYXBwZW5kcyBlbGVtZW50cywgeW91IHdpbGwgbm90IG5lZWQgdG8g
cmVxdWVzdCBhIG5ldyBtYW5hZ2VkIElELiBHRVQgL21nL21vZHVsZUlEP2tleXM9dmVyc2lvbiAo
d2l0aCBkYXRhIG5vZGUgSUQ9MCkgYW5kIHlvdSBrbm93IHdoYXQgaXMgeW91ciBtb2R1bGUgcmVh
bGx5IGNhcGFibGUgb2YuDQoNCkFsc28sIHRoZSBzcGVjaWFsIHBsYWNlIG9mIC9tZy9BIGNhbiBh
Y3R1YWxseSBiZWNvbWUgYW4gZW50cnkgcG9pbnQgZm9yIG1vc3Qgb2YgdGhlIGluZm9ybWF0aW9u
IHJlbGF0ZWQgdG8gQ29NSSAodG8gYmUgZGlzY3Vzc2VkLi4gSSBoYXZlIG5vIHN0cm9uZyBmZWVs
aW5ncyBvbiB0aGlzKS4gSXQgY2FuLCBmb3IgZXhhbXBsZSwgcHJvdmlkZSB0aGUgbW9kLnVyaSwg
YW5kIG90aGVyIGluZm9ybWF0aW9uLiBUaGUgb25seSBpbmZvcm1hdGlvbiB0aGF0IHJlbWFpbnMg
dHJ1bHkgbmVjZXNzYXJ5IHRvIGJlIGZpeGVkIGluIC8ud2VsbC1rbm93bi9jb3JlIGlzIHRoZSBl
bnRyeSBwb2ludCB0byB0aGUgQ29NSSBpbnRlcmZhY2UgKGUuZy4gL21nKS4gQWZ0ZXJ3YXJkcywg
ZXZlcnl0aGluZyBjYW4gYmUgZGV0ZXJtaW5lZCBmcm9tIC9tZy9BIHdpdGggcXVlcmllcyAoL21n
L0E/a2V5cz1tb2QudXJpK2FsaWFzLnVyaSkNCg0KQmVzdCwNCkFsZXhhbmRlcg0KDQpQUy4NCkFz
IGlmIGRhdGEgbm9kZSBhbGlhc2luZyBpcyBub3QgZW5vdWdo4oCmIG1vZHVsZSBJRCBhbGlhc2lu
ZyAodGhpcyBvbmUgaXMgcmVhbGx5IHZlcnkgbG93IGluIG15IHByaW9yaXRpZXMgYW5kIEnigJlt
IG1lbnRpb25pbmcgaXQgb25seSBmb3IgY29tcGxldGVuZXNzKToNCg0KVGhlIGZpcnN0IDEyIGJp
dHMgdGFrZSAyIFVSSSBjaGFyYWN0ZXJzIGFuZCAyIGJ5dGVzIGluIENCT1IuIEhhdmluZyAxMCBi
aXRzIGZvciB0aGUgZGF0YSBub2RlIElEIGxlYXZlcyAyIGludGVyZXN0aW5nIGJpdHMgaW4gdGhl
IG1vZHVsZSBJRCBwYXJ04oCmIFNvIHdlIGNhbiBoYXZlIG1vZHVsZSBhbGlhc2VzIGFzIHdlbGwg
KGFsYmVpdCBvbmx5IDMpLg0KDQpUaGF0IGlzLCBpbiBVUkkgZW5jb2RpbmcsDQoweDAwMDAwMDAw
LTB4MDAwMDAzRkYgLT4gZGF0YSBub2RlIGFsaWFzaW5nDQoweDAwMDAwNDAwLTB4MDAwMDA3RkYg
LT4gYWxpYXNlZCBtb2R1bGUgMQ0KMHgwMDAwMDgwMC0weDAwMDAwQkZGIC0+IGFsaWFzZWQgbW9k
dWxlIDINCjB4MDAwMDBDMDAtMHgwMDAwMEJGRi0+IGFsaWFzZWQgbW9kdWxlIDMNCg0KSW1wbGVt
ZW50YXRpb24td2lzZSwgaXRzIHJlYWxseSBlYXN5OiB1cG9uIHJlcXVlc3QsIGlmIHRoZSBtb2R1
bGUgSUQgPSBhbGlhc2VkIG1vZHVsZSBJRCAxLCByZXBsYWNlIHRoZSBtb2R1bGUgSUQgcGFydCwg
c28gbm8gbmVlZCB0byBtYXAgdGhlIGVudGlyZSBtb2R1bGUgSUQgLyBkYXRhIG5vZGUgSUQgc3Bh
Y2UuDQoNCkJ1dCByZWFsbHksIHRoYXQgbXVjaCBvcHRpbWl6YXRpb24/IEV2ZW4gaWYgaXQgc2Vl
bXMgc3RyYWlnaHRmb3J3YXJkLCBJIHdvdWxkIGxpa2UgdG8gc2VlIHVzZSBjYXNlcyB0aGF0IGNv
dWxkIGJlbmVmaXQgZnJvbSB0aGlzIGJlZm9yZSBhY3R1YWxseSBjb25zaWRlcmluZyBpdC4NCg0K
DQoNCkxlIDUganVpbiAyMDE1IMOgIDIwOjU1LCBBbmR5IEJpZXJtYW4gPGFuZHlAeXVtYXdvcmtz
LmNvbTxtYWlsdG86YW5keUB5dW1hd29ya3MuY29tPj4gYSDDqWNyaXQgOg0KDQoNCg0KDQoNCk9u
IEZyaSwgSnVuIDUsIDIwMTUgYXQgMTE6NDEgQU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5W
ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tPj4gd3JvdGU6DQpIaSBBbGV4YW5kZXINCg0KSSBoYXZlIHNvbWUgY29uY2VybnMg
YWJvdXQgYWxsb3dpbmcgQ29NSSBjbGllbnQocykgdGhlIGNvbnRyb2wgb2YgdGhlIGxpc3Qgb2Yg
YWxpYXNlcy4NClRoaXMgYXBwcm9hY2ggd29yayBmaW5lIGZvciB0aGUgZmlyc3QgQ29NSSBhcHBs
aWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1dCB3aGF0IGRvIHdlIGRvIHdpdGggdGhlIHN1YnNlcXVl
bnQgQ29NSSBhcHBsaWNhdGlvbj8NCg0KT25lIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFj
aCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgdG8gdGhl
IENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIHRoZSBDb01JIGNsaWVudCBtaWdodCByZWNlaXZl
IGFuIGVycm9yIGlmIG9uZSBvciBtdWx0aXBsZSBvZiB0aGVzZSBhbGlhc2VzIGFyZSBhbHJlYWR5
IHJlc2VydmVkLg0KDQpBIHNlY29uZCBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29N
SSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGRhdGEgbm9kZSBJRCkgYW5kIGdldCBhIGxpc3Qgb2Yg
KGFsaWFzLCBkYXRhIG5vZGUgSUQpIGZyb20gdGhlIENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2Us
IENvTUkgY2xpZW50cyB3aWxsIGhhdmUgdG8gZGVhbCB3aXRoIGEgbWl4IHBvcHVsYXRpb24gb2Yg
YWxpYXNlcy4NCg0KVGhlIHByb3Bvc2VkIHNvbHV0aW9uIG5lZWQgdG8gc2NhbGUgdG8gYSBtdWx0
aS12ZW5kb3JzLCBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgZW52aXJvbm1lbnQuDQpXaXRoIHRoaXMg
aXMgbWluZCwgZG8geW91IGhhdmUgYW55IGFsdGVybmF0aXZlIHNvbHV0aW9ucyB0byBwcm9wb3Nl
Pw0KDQoNCg0KRG9lcyB0aGlzIGFwcHJvYWNoIGFsbG93IGVhY2ggY2xpZW50IHRvIGhhdmUgYSBk
aWZmZXJlbnQgc2V0IG9mIGFsaWFzZXMsDQpzbyB0aGUgc2VydmVyIGhhcyB0byBtYWludGFpbiBh
IGNvbmZpZ3VyZWQgbWFwcGluZyBmb3IgZWFjaCBjbGllbnQ/DQpUaGlzIHNlZW1zIGxpa2UgYSBs
b3Qgb2Ygb3ZlcmhlYWQgYW5kIE5WLXN0b3JhZ2UgcmVxdWlyZW1lbnRzDQpvbiB0aGUgc2VydmVy
Lg0KDQpDaGFuZ2luZyB0aGUgc2NoZW1hIGlkZW50aWZpZXJzIGJhc2VkIG9uIHdoaWNoIGNsaWVu
dCBpcw0Kc2VuZGluZyB0aGUgcmVxdWVzdCBzZWVtcyBsaWtlIGEgY29tcGxpY2F0ZWQgZGVzaWdu
IGNoYW5nZQ0KZnJvbSBSRVNUQ09ORiwgTkVUQ09ORiwgb3IgU05NUCwgd2hlcmUgdGhlcmUgaXMg
b25seQ0KMSBzY2hlbWEgdHJlZSB3aGljaCBpcyBub3QgZGVwZW5kZW50IG9uIHRoZSBjbGllbnQg
aWRlbnRpdHkuDQoNCg0KQW5keQ0KDQoNCg0KDQo8aW1hZ2UwMDEuanBnPg0KDQpNaWNoZWwgVmVp
bGxldHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVs
OiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNv
bTxtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0Kd3d3LnRyaWxsaWFu
dGluYy5jb208aHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoNCkZyb206IEFsZXhh
bmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1PG1h
aWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldT5dDQpTZW50OiA1IGp1aW4g
MjAxNSAxMjowMw0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbmR5IEJpZXJtYW47IDZ0aXNj
aEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgY29yZUBpZXRmLm9yZzxtYWlsdG86
Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzDQoN
CkhpIE1pY2hlbCwNCg0KDQpMZSA1IGp1aW4gMjAxNSDDoCAxNzoxNywgTWljaGVsIFZlaWxsZXR0
ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpNaWNoZWwuVmVpbGxl
dHRlQHRyaWxsaWFudGluYy5jb20+PiBhIMOpY3JpdCA6DQoNCkhpIEFsZXhhbmRlcg0KDQpJbiB5
b3VyIHByZXNlbnRhdGlvbiBhdCA2VGlTQ0gsIHlvdSBwcm9wb3NlIHRoZSBmb2xsb3dpbmcgZGF0
YSBub2RlIElEIHN0cnVjdHVyZS4NCg0K4oCiICAgICAgIDMyIGJpdHMgWUFORyBJRA0K4oCTICAg
ICAgMjAgYml0cyBmb3IgbW9kdWxlIElEIChhc3NpZ25lZCBieSBJRVRGKQ0K4oCTICAgICAgMTAg
Yml0cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpDQoNCg0K
QmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNhbiByZXNlcnZlIG1vZHVsZSBJRCB6ZXJvIGZv
ciBhbGlhc2VzLg0KDQoNCkkgd2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3YXMgZGlzY3Vzc2Vk
IG9uIHRoZSBkaXNjdXNzaW9uIGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAzMCBiaXRzIFlBTkcg
SUQsIGJ1dCB0aGF04oCZcyBmb3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBZ
QU5HIGhhc2ggYW5kIEkgZG9u4oCZdCBtaW5kIGtlZXBpbmcgaXQgMzAgYml0cy4NCg0KDQpJZiB3
ZSB3YW50IHRvIG1pbmltaXplIGJvdGggdGhlIG5ldHdvcmsgYW4gbm9kZSByZXNvdXJjZXMgcmVx
dWlyZSBieSB0aGlzIGFsaWFzIG1lY2hhbmlzbSwgd2UgY2FuIG1hcCBhbiBlbnRpcmUgbW9kdWxl
IHRvIHRoaXMgc3BhY2UuDQpUaGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBieSBhIHNpbmdsZSBpbnRl
Z2VyIHJlc291cmNlIChlLmcuIGxlYWYgYWxsaWFzc2VkTW9kdWxlIHsgdHlwZSB1aW50MzIgfSAp
DQpUaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQu
DQoNCg0KSXQgaXMgcG9zc2libGUgdG8gbWFwIGFuIGVudGlyZSBtb2R1bGUgdG8gdGhlIGFsaWFz
IHNwYWNlIGFuZCB0aGlzIGlzIHVwIHRvIHRoZSBvcGVyYXRvci4gSG93ZXZlciwgaWYgeW91IGxv
YWQgdHdvIG1vZHVsZXMgd2hpY2ggcmVkZWZpbmUgdGhlIHNhbWUgYWxpYXMgeW91IHdpbGwgbG9v
c2UgdGhlIGJlbmVmaXQgZnJvbSBpdC4gTWF5YmUgaXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8g
YmUgYWJsZSB0byBzcGVjaWZ5IHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMgZnJvbSBUSElTIHNw
ZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLg0KDQpJZiB0aGUgL21nLzAgYWxpYXMgaXMgcmVzZXJ2
ZWQgZm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNpbXBseSBzYXlpbmc6
DQpQT1NUIC9tZy8wDQp7DQogInNvdXJjZV91cmkiIDogIi9tZy9CQUEiDQp9DQoNCndoZXJlIC9t
Zy9CQUEgaXMgdGhlIFlBTkcgaWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBtb2R1bGUgSUQgKyAx
MCBiaXRzIHNldCB0byAwKS4gVGhpcyB3YXksIHRoZSBzZXJ2ZXIgd2lsbCBrbm93OiBPSywgZ2V0
IHRoZSBhbGlhcyBtYXBwaW5nIGZyb20gdGhlIFlBTkcgc2NoZW1lIG9mIG1vZHVsZSB3aXRoIElE
ID0gQiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURikuDQoNCk9yLCB5b3UgY2FuIGR5bmFtaWNhbGx5
IGNvbmZpZ3VyZSB0aGUgbWFwcGluZzoNClBPU1QgL21nLzANCnsNCiAgWUFOR19pZCA6IGFsaWFz
LA0KICBZQU5HX2lkIDogYWxpYXMsDQogIFlBTkdfaWQgOiBhbGlhcw0KfQ0KDQpJZiB3ZSB3YW50
IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhpYmxlIGFsaWFzZXMgbWVjaGFuaXNtLCB5b3Vy
IHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5HIElEKSBzZWVtIHRoZSBzb2x1dGlvbi4NCkhv
d2V2ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVyZSBjYW4gYmUgYXMg
bGFyZ2UgYXMgMTI1MCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQgaWYgbGltaXRlZCB0
byAyNTYgYWxpYXNlcy4NCg0KVGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBhIHNlcGFyYXRlIG1h
cHBpbmcgZm9yIGVhY2ggc2VydmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBpbiBhIG5ldHdvcmsg
eW914oCZbGwgaGF2ZSBhIHNpbmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0d28/KSAtIGFmdGVy
IGFsbCwgeW914oCZcmUgdHJ5aW5nIHRvIG9wdGltaXplIHRoZSBtYW5hZ2VtZW50IG9mIHlvdXIg
ZGV2aWNlcyAoc2VydmVycykuIFNvLCB0eXBpY2FsbHkgeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBk
ZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRo
YXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4N
Cg0KQmVzdCwNCkFsZXhhbmRlcg0KDQoNCjxpbWFnZTAwMS5qcGc+DQoNCk1pY2hlbCBWZWlsbGV0
dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1
MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1h
aWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5j
LmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg==

--_000_DM2PR0601MB7945552A1CE68AC4385717CFEBF0DM2PR0601MB794na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OkhlbHZldGljYTsNCglwYW5vc2UtMToyIDExIDYgNCAyIDIgMiAyIDIg
NDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAg
MCAwIDAgMCAwIDAgMCAwO30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0
aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQt
ZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KLyogU3R5
bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3Jt
YWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEy
LjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQphOmxpbmssIHNw
YW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0K
CXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlu
a0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4
dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgsIGxpLk1zb0xpc3RQ
YXJhZ3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1wcmlvcml0eTozNDsN
CgltYXJnaW4tdG9wOjBpbjsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1hcmdpbi1ib3R0b206MGlu
Ow0KCW1hcmdpbi1sZWZ0Oi41aW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6
ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0Kc3Bhbi5h
cHBsZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6YXBwbGUtY29udmVydGVkLXNw
YWNlO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZv
bnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5F
bWFpbFN0eWxlMTkNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtY29tcG9zZTsNCglmb250LWZh
bWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBE
ZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7
fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBp
biAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rp
b24xO30NCi8qIExpc3QgRGVmaW5pdGlvbnMgKi8NCkBsaXN0IGwwDQoJe21zby1saXN0LWlkOjI0
NTI0ODc4Ow0KCW1zby1saXN0LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczot
MTU0MTY1Mjk2OCAyNjkwMjUyODEgMjY5MDI1MjgzIDI2OTAyNTI4NSAyNjkwMjUyODEgMjY5MDI1
MjgzIDI2OTAyNTI4NSAyNjkwMjUyODEgMjY5MDI1MjgzIDI2OTAyNTI4NTt9DQpAbGlzdCBsMDps
ZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0
Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0
aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpA
bGlzdCBsMDpsZXZlbDINCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s
ZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJl
ci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291
cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpi
dWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJ
Zm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2ZWwtbnVt
YmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWIt
c3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu
dDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNQ0KCXttc28t
bGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2
ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4
dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6
bGV2ZWw2DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4
dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np
dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7
fQ0KQGxpc3QgbDA6bGV2ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCglt
c28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWls
eTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1
bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1z
by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9u
dC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDkNCgl7bXNvLWxldmVsLW51
bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMQ0KCXttc28tbGlz
dC1pZDo2MzMyOTA4Mjc7DQoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7DQoJbXNvLWxpc3QtdGVtcGxh
dGUtaWRzOi0xNzMxMDYxMTIyIDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAyNTI4
MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1O30NCkBs
aXN0IGwxOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl
dmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3lt
Ym9sO30NCkBsaXN0IGwxOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2
ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFt
aWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDE6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9w
Om5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0u
MjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDE6bGV2ZWw0DQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDE6bGV2ZWw1
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0K
CW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm
dDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpA
bGlzdCBsMTpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s
ZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5Oldp
bmdkaW5nczt9DQpAbGlzdCBsMTpsZXZlbDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVs
bGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZv
bnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMTpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1m
b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5v
bmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVp
bjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwxOmxldmVsOQ0KCXttc28t
bGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1s
ZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyDQoJ
e21zby1saXN0LWlkOjE3MTgxMjIwOTI7DQoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7DQoJbXNvLWxp
c3QtdGVtcGxhdGUtaWRzOi03NTA0OTY4OTggMjY5MDI1MjgxIDI2OTAyNTI4MyAyNjkwMjUyODUg
MjY5MDI1MjgxIDI2OTAyNTI4MyAyNjkwMjUyODUgMjY5MDI1MjgxIDI2OTAyNTI4MyAyNjkwMjUy
ODU7fQ0KQGxpc3QgbDI6bGV2ZWwxDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsN
Cgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZh
bWlseTpTeW1ib2w7fQ0KQGxpc3QgbDI6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0
OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJ
Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMjpsZXZlbDMNCgl7bXNvLWxldmVs
LW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwt
dGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1p
bmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMjpsZXZlbDQN
Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl
ZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBs
MjpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10
ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np
dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBO
ZXciO30NCkBsaXN0IGwyOmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1m
YW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsNw0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpu
b25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1
aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwyOmxldmVsOA0KCXttc28tbGV2ZWwt
bnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDI6bGV2ZWw5
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0Kb2wN
Cgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KLS0+PC9z
dHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVk
aXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJl
ZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9o
ZWFkPg0KPGJvZHkgbGFuZz0iRU4tQ0EiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRp
diBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5IaSBBbGV4YW5k
ZXI8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPldlIGhhZCBzb21lIGRp
c2N1c3Npb25zIGxhdGVseSBhYm91dCB1c2luZyB0aGUg4oCcc2VsZWN04oCdIHF1ZXJ5IHBhcmFt
ZXRlciB3aXRoIGEgQ0JPUiBjb250ZW50IGluc3RlYWQgb2YgYSBVUkkgd2l0aCBhIGJhc2U2NCBk
YXRhIG5vZGUNCiBJRC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+RGlkIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIEFuZHk/PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNv
LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJl
YXN0LWxhbmd1YWdlOkVOLVVTIj5JIHNlZSBtdWx0aXBsZSBhZHZhbnRhZ2VzIHRvIHRoaXMgYXBw
cm9hY2g6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgi
IHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDEgbGV2ZWwxIGxmbzEiPjwhW2lm
ICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3BhbiBz
dHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1Rp
bWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPndlIGNhbiBzZWxl
Y3QgYSBsaXN0IG9mIGRhdGEgbm9kZXMgaW5zdGVhZCBvZiBhIHNpbmdsZSBkYXRhIG5vZGU8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRl
eHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMSBsZXZlbDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRM
aXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFuIHN0eWxlPSJtc28t
bGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+d2UgY2FuIHVzZSB0aGUgZnVsbCAz
MiBiaXRzIG9mIHRoZSBkYXRhIG5vZGUgSUQgKGluc3RlYWQgb2YgMzAgYml0cyk8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5k
ZW50Oi0uMjVpbjttc28tbGlzdDpsMSBsZXZlbDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJ
Z25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1
b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwv
c3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+d2UgZG9u4oCZdCBuZWVkIHRvIHN1cHBvcnQg
dHdvIGRpZmZlcmVudCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGF0YSBub2RlIElEczxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+Rm9yIGV4YW1wbGU6IChVc2luZyB0aGUg
SURzIGludHJvZHVjZWQgZWFybGllciBpbiB0aGUgdGhyZWFkKTxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+VG8gc2VsZWN0DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPmxlYWZBMTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPiZuYnNwOyZuYnNwOyBSRVE6IEdFVCBl
eGFtcGxlLmNvbS9tZz9zZWxlY3QoPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij4yNTYwMik8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj4mbmJzcDsmbmJzcDsgUkVTOiAyLjA1IENvbnRlbnQgKENvbnRlbnQtRm9ybWF0OiBh
cHBsaWNhdGlvbi9jYm9yKTwvc3Bhbj48c3BhbiBsYW5nPSJGUi1DQSI+PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsNCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+ezwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsgJm5ic3A7IDIgOiAm
cXVvdDsgbGVhZkExIHZhbHVlJnF1b3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyB9
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UbyBzZWxlY3QNCjwvc3Bh
bj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+bGVhZkExLCBsZWFmQTIgYW5kIGxlYWZB
Mzo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVMiPiZuYnNwOyZuYnNwOyBSRVE6IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxl
Y3QoIFsNCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+MjU2MDIsIDMsIDI2
NjI1IF0gKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJGUi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyBSRVM6IDIuMDUg
Q29udGVudCAoQ29udGVudC1Gb3JtYXQ6IGFwcGxpY2F0aW9uL2Nib3IpPC9zcGFuPjxzcGFuIGxh
bmc9IkZSLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJGUi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOw0K
PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj57PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PiZuYnNwOyZuYnNwOyAmbmJzcDsgMiA6ICZxdW90OyBsZWFmQTEgdmFsdWUmcXVvdDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7ICZuYnNwOyAzIDogJnF1b3Q7IGxlYWZBMiB2YWx1ZSAm
cXVvdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4sPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZu
YnNwOyZuYnNwOyAmbmJzcDsyNjYyNSA6ICZxdW90OyBsZWFmQTMgdmFsdWUgJnF1b3Q7PG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyB9PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj5Ob3Rlczo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlz
dFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDEg
bGZvMiI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJ
Z25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1
b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwv
c3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+SW4gdGhlIGZpcnN0IGV4YW1wbGUsIHRoZSBzZWxlY3QgcXVlcnkgcGFyYW1ldGVyIGNvbnRh
aW5zICZuYnNwOzB4MTk2NDAyPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xp
c3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwx
IGxmbzIiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250Ojcu
MHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkluIHRoZSBzZWNvbmQgZXhhbXBsZSwgdGhl
IHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgY29udGFpbnMgJm5ic3A7MHg4MzE5NjQwMjAzMTk2ODAx
PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFw
aCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZvMiI+PCFb
aWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFu
IHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+RGF0YSBub2Rl
IElEcyB3aXRoaW4gdGhlIGxpc3QgZW5jb2RlZCB1c2luZyB0aGUgc2hvcnQgZm9ybSBpbmhlcml0
IHRoZSBtb2R1bGUgSUQgb2YgdGhlIHByZXZpb3VzIGl0ZW0uPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47
bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzIiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7Ctzxz
cGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFu
Pjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPk1vZHVsZSBJRCAxIHRvIDYzIGFyZSBtb3JlIGNvbXBhY3QgKDIg
b2N0ZXRzKSBhbmQgc2hvdWxkIGJlIHJlc2VydmVkIHRvIHN0YW5kYXJkaXplZCBtb2R1bGVzLjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9y
ZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTciIHN0eWxl
PSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRy
IHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9IndpZHRoOjEw
My4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFk
ZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48aW1nIHdpZHRoPSIxMjAiIGhl
aWdodD0iMjIiIGlkPSJQaWN0dXJlX3gwMDIwXzIiIHNyYz0iY2lkOmltYWdlMDAxLmpwZ0AwMUQw
QTFGMC5BRDFFRTM1MCIgYWx0PSJjaWQ6aW1hZ2UwMDEuanBnQDAxQzg2OEQ4LkJGMEJCN0UwIj48
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGlnbj0idG9w
IiBzdHlsZT0id2lkdGg6NDM0LjY1cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdo
dDo0OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFw
dCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0
ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UcmlsbGlhbnQg
SW5jLjxicj4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRv
Om1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSI+PHNwYW4gc3R5bGU9ImNvbG9yOiMw
NTYzQzEiPm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0
OjguMXB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PGEgaHJlZj0iaHR0cDovL3d3
dy50cmlsbGlhbnRpbmMuY29tLyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj53d3cudHJpbGxpYW50aW5jLmNvbTwv
c3Bhbj48L2E+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4NCiAmbmJzcDsgPC9z
cGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNF
MUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNw
YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRvOmFsZXhh
bmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1XQ0KPGJyPg0KPGI+U2VudDo8L2I+IDgganVp
biAyMDE1IDEyOjAwPGJyPg0KPGI+VG86PC9iPiBNaWNoZWwgVmVpbGxldHRlPGJyPg0KPGI+Q2M6
PC9iPiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZzxicj4NCjxi
PlN1YmplY3Q6PC9iPiBSZTogUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSBNaWNoZWwsPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJt
YXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPkxlIDgganVpbiAyMDE1IMOgIDE2OjM1LCBNaWNoZWwgVmVpbGxldHRlICZsdDs8
YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIj5NaWNoZWwu
VmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L2E+Jmd0OyBhIMOpY3JpdCA6PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+SGkgQWxleGFuZGVyPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGUgcHJvcG9zZWQg4oCcbG9u
ZyBmb3JtLCBzaG9ydCBmb3Jt4oCdIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBjb25jZXB0IG9m
IGFsaWFzZXMgc2luY2UgdGhlIHNob3J0IGZvcm0gSUQgc3BhY2UgaXMgdGhlIHNhbWUgYXMgdGhl
IHByb3Bvc2VkIGFsaWFzZXMgSUQgc3BhY2UuIFdlDQogd2lsbCBoYXZlIHRvIGNob29zZSBvbmUg
b3IgdGhlIG90aGVyLiBJbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIElEcyAxLCAyLCAzIGlzIHRo
ZSBzaG9ydCBmb3JtIHdpdGhpbiB0aGUgbW9kdWxlIElEIDI1LCBub3QgYWxpYXMgMSwgMiwgMy4g
4oCcbG9uZyBmb3JtLCBzaG9ydCBmb3Jt4oCdIGFkZCBzb21lIGV4dHJhIG92ZXJoZWFkIGNvbXBh
cmVkIHRvIGFsaWFzZXMsIGhvd2V2ZXIgdGhpcyBhcHByb2FjaCBoYXZlIG11bHRpcGxlIGFkdmFu
dGFnZXM6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDouNWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1
aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xv
cjojMUY0OTdEIj7Ctzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0O2NvbG9yOiMx
RjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxz
cGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkFsbG93cw0KIGNvbXByZXNzaW9uIG9mIGFsbCBt
b2R1bGVzLCBub3QganVzdCBhIHNtYWxsIHN1YnNldCBvZiBJRHMgKDIwIG9yIDI1NiBJRHMpPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW4iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdE
Ij7Ctzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0O2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIGNsYXNz
PSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPkRvDQogbm90IHJlcXVpcmUgYW4gaW5pdGlhbCBoYW5kc2hha2Ug
Zm9yIGFsaWFzZXMgZGlzY292ZXJ5IG9yIGNvbmZpZ3VyYXRpb248L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPsK3PC9zcGFuPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6Ny4wcHQ7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRl
ZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+Q2FuDQogYmUgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIHNhbWUgc2ltcGxlIHJ1bGVzIGFzIFJF
U1Rjb25mPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90
ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T2ssIEkgc2VlIHdoYXQgeW91IG1l
YW4uIEluZGVlZCwgdGhlcmUgY291bGQgYmUgYSB3YXkgdG8gaGF2ZSBib3RoIGFsaWFzZXMgYW5k
IHRoZSBsb25nIGZvcm0sIHNob3J0IGZvcm0sIGJ1dCBtYXliZSBpdCBiZWNvbWVzIGEgbGl0dGxl
IGJpdCBjbHVtc3ksIGFuZCB0aGUgZ29hbCBpcyB0byBhdm9pZCBjb21wbGV4aXR5LjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JbiB5b3VyIHBy
b3Bvc2FsLCB0aGUgbW9kdWxlIElEID0gMCBpcyByZXNlcnZlZCBmb3IgdGhlIGNvbXByZXNzaW9u
IHByZWZpeCwgYW5kIEkgYWdyZWUgdGhhdCB0aGlzIHdpbGwgYmUgbW9yZSBnZW5lcmljIHRoYW4g
c2ltcGx5IGxlYXZpbmcgaXQgZm9yIHRoZSBhbGlhc2VzLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Ib3dldmVyLCBJIHdvdWxkIHN0
aWxsIGNvbnNpZGVyIHRoYXQgdGhlcmUgYXJlIGludGVyZXN0aW5nIGNhc2VzIHdoZXJlIGFsaWFz
aW5nIGNhbiBiZSBhcHBsaWVkLiBUaGVyZSBhcmUgdHdvIHBvc3NpYmlsaXRpZXMgdG8gcmVjb25j
aWxlIHRoZW06PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj4xKSByZXNlcnZlIGRhdGEgbm9kZSBJRCAmbHQ7IDI0LiBNb2R1bGUgSUQ9MCAmIzQzOyBk
YXRhIG5vZGUgSURzICZsdDsgMjQgY2FuIHRoZW4gYmUgdXNlZCBmb3IgdGhlIGFsaWFzaW5nIChp
ZiBuZWVkZWQpLiBUaGUgc3BlY2lmaWNhdGlvbiBvZiB0aGlzIGNhbiBiZSBvdXQgb2YgQ29NSSBv
ciB3aXRoIHRoZSBzaW1wbGUgbWVjaGFuaXNtIEkgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91cyBt
YWlsLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+MikgcmVzZXJ2ZSBtb2R1bGUgSUQgPSAxIChvciAvbWcvZzApIGZvciBhbGlhc2luZy4g
TWF5YmUgdGhpcyB3b3VsZCBiZSB0aGUgYmVzdCBzb2x1dGlvbiwgYXMgaXQgb25seSBpbmNyZWFz
ZXMgdGhlIGFsaWFzIFVSSSB3aXRoIDEgY2hhcmFjdGVyIGNvbXBhcmVkIHRvIHRoZSBpbml0aWFs
IHByb3Bvc2FsLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5JIHdvdWxkIGdvIHdpdGggMiksIGFzIGl0IGhhcyB0aGUgc2FtZSBtZXJp
dHMgb2YgdGhlIGFsaWFzZXMgKGNhbiBiZSBzdGFuZGFyZGl6ZWQgdmVyeSBzaW1wbHksIGF0IG5v
IGNvc3QgZm9yIGRldmljZXMpLCBhbmQgaXMgb25seSBiYXNlZCBvbiByZXNlcnZpbmcgYSBtb2R1
bGUgSUQgZm9yIHRoaXMgcHVycG9zZS4gSXQga2VlcHMgdGhlIHBvc3NpYmlsaXR5IHRvIHVzZSB0
aGUgY29tcHJlc3NlZCBZQU5HIGlkDQogJiM0MzsgbG9uZyBmb3JtIC8gc2hvcnQgZm9ybS4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJy
Pg0KPG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDtt
YXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj5SRVE6IEdFVDxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui
PiZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwOi8vZXhhbXBsZS5jb20vbWcvR1FCIj48c3BhbiBz
dHlsZT0iY29sb3I6cHVycGxlIj5leGFtcGxlLmNvbS9tZy9HUUI8L3NwYW4+PC9hPjwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJGUi1DQSIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlJFUzogMi4wNSBDb250ZW50IChDb250ZW50LUZvcm1hdDog
YXBwbGljYXRpb24vY2Jvcik8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+ezwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsgMSA6IHs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDIgOiAmcXVvdDsgbGVhZkExIHZh
bHVlJnF1b3Q7LDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiw8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDMgOiAmcXVvdDsgbGVhZkEyIHZhbHVlICZx
dW90Ozwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiw8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDI2NjI1IDogJnF1b3Q7IGxlYWZBMyB2YWx1ZSAmcXVv
dDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IH08L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+fTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4m
bmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+QWJvdXQgdGhlIG1ldGEgaW5m
b3JtYXRpb24gc3VjaCBhcyB0aGUgbGlzdCBvZiBtb2R1bGVzIGFuZCB0aGUgbGlzdCBmb3Igc3Ry
ZWFtcy4gVGhpcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgdXNpbmcgWUFORyBtb2R1bGVzICwg4oCc
aWV0Zi15YW5nLWxpYnJhcnnigJ0gYW5kIOKAnGlldGYtcmVzdGNvbmYtbW9uaXRvcmluZ+KAnQ0K
IG9yIGVxdWl2YWxlbnQuIFdlIGRvbuKAmXQgbmVlZCB0byBjcmVhdGUgc3BlY2lhbCBiZWhhdmlv
dXJzIG9yIHNwZWNpYWwgcXVlcnkgcGFyYW1ldGVycyB0byBpbXBsZW1lbnQgdGhpcyBtZXRhIGRh
dGEuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj48YSBocmVmPSJodHRwOi8vd3d3Lm5ldGNvbmZjZW50cmFsLm9y
Zy9tb2R1bGVzL2lldGYteWFuZy1saWJyYXJ5LzIwMTQtMDktMjYiPjxzcGFuIHN0eWxlPSJjb2xv
cjpwdXJwbGUiPmh0dHA6Ly93d3cubmV0Y29uZmNlbnRyYWwub3JnL21vZHVsZXMvaWV0Zi15YW5n
LWxpYnJhcnkvMjAxNC0wOS0yNjwvc3Bhbj48L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5pZXRmLXlhbmct
bGlicmFyeTptb2R1bGVzL21vZHVsZS9uYW1lPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL3JldmlzaW9uPC9zcGFuPjwv
dT48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5pZXRmLXlhbmctbGlicmFyeTptb2R1bGVzL21v
ZHVsZS9zY2hlbWE8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+aWV0Zi15YW5nLWxp
YnJhcnk6bW9kdWxlcy9tb2R1bGUvbmFtZXNwYWNlPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPmlldGYteWFuZy1saWJyYXJ5Om1vZHVsZXMvbW9kdWxlL2ZlYXR1cmU8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+aWV0Zi15YW5nLWxpYnJhcnk6bW9kdWxlcy9tb2R1bGUv
Y29uZm9ybWFuY2U8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+aWV0Zi15YW5nLWxp
YnJhcnk6bW9kdWxlcy9tb2R1bGUvc3VibW9kdWxlL25hbWU8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+aWV0Zi15YW5nLWxpYnJhcnk6bW9kdWxlcy9tb2R1bGUvc3VibW9kdWxlL3Jl
dmlzaW9uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPmlldGYteWFuZy1saWJyYXJ5
Om1vZHVsZXMvbW9kdWxlL3N1Ym1vZHVsZS9zY2hlbWE8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxhIGhyZWY9
Imh0dHA6Ly93d3cubmV0Y29uZmNlbnRyYWwub3JnL21vZHVsZXJlcG9ydC9pZXRmLXJlc3Rjb25m
LW1vbml0b3JpbmciPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUiPmh0dHA6Ly93d3cubmV0Y29u
ZmNlbnRyYWwub3JnL21vZHVsZXJlcG9ydC9pZXRmLXJlc3Rjb25mLW1vbml0b3Jpbmc8L3NwYW4+
PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+aWV0Zi1yZXN0Y29uZi1tb25pdG9yaW5nOnJlc3Rjb25mLXN0
YXRlL2NhcGFiaWxpdGllcy9jYXBhYmlsaXR5PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPmlldGYtcmVzdGNvbmYtbW9uaXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0cmVh
bS9uYW1lPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPmlldGYtcmVzdGNvbmYtbW9u
aXRvcmluZzpyZXN0Y29uZi1zdGF0ZS9zdHJlYW1zL3N0cmVhbS9kZXNjcmlwdGlvbjwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5pZXRmLXJlc3Rjb25mLW1vbml0b3Jpbmc6cmVzdGNv
bmYtc3RhdGUvc3RyZWFtcy9zdHJlYW0vcmVwbGF5LXN1cHBvcnQ8L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+aWV0Zi1yZXN0Y29uZi1tb25pdG9yaW5nOnJlc3Rjb25mLXN0YXRlL3N0
cmVhbXMvc3RyZWFtL3JlcGxheS1sb2ctY3JlYXRpb24tdGltZTwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj5pZXRmLXJlc3Rjb25mLW1vbml0b3Jpbmc6cmVzdGNvbmYtc3RhdGUvc3Ry
ZWFtcy9zdHJlYW0vZW5jb2RpbmcvdHlwZTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij5pZXRmLXJlc3Rjb25mLW1vbml0b3Jpbmc6cmVzdGNvbmYtc3RhdGUvc3RyZWFtcy9zdHJlYW0v
ZW5jb2RpbmcvZXZlbnRzPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
YmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9rLCBncmVhdCEgVGhh
bmtzIGZvciBwb2ludGluZyB0aGlzIG91dCAtIHRoZXJlIGlzIG5vIG5lZWQgdG8gcmVpbnZlbnQg
dGhlIHdoZWVsLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5CZXN0LDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+QWxleGFuZGVyPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxicj4NCjxicj4NCjxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1h
cmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1h
bFRhYmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9
IjcxNyIgc3R5bGU9IndpZHRoOjUzNy43NXB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+DQo8
dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdodDo0OS4wNXB0Ij4NCjx0ZCB3aWR0aD0iMTM3IiBzdHls
ZT0id2lkdGg6MTAzLjFwdDtib3JkZXI6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgd2luZG93dGV4
dCAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4m
bHQ7aW1hZ2UwMDEuanBnJmd0Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4N
Cjx0ZCB3aWR0aD0iNTgwIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQzNC42NXB0O3BhZGRp
bmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2IHN0eWxlPSJtYXJn
aW4tbGVmdDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+TWljaGVsIFZlaWxsZXR0ZTxicj4NClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0
b3I8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
OjguMXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEg
aHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSI+PHNwYW4gc3R5
bGU9ImNvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bh
bj48L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+PGEgaHJlZj0iaHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLyI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOnB1cnBsZSI+d3d3LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48
c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5i
c3A7PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJs
ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9y
ZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGlu
IDBpbiAwaW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIGxhbmc9IkVO
LVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWYiPkZyb206PC9zcGFuPjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVy
dGVkLXNwYWNlIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PC9z
cGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkFsZXhhbmRlcg0KIFBlbG92IFs8YSBo
cmVmPSJtYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXUiPm1haWx0bzph
bGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldTwvYT5dPHNwYW4gY2xhc3M9ImFwcGxl
LWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxicj4NCjxiPlNlbnQ6PC9iPjxzcGFuIGNs
YXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj43IGp1aW4gMjAxNSAwNToy
MTxicj4NCjxiPlRvOjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJz
cDs8L3NwYW4+TWljaGVsIFZlaWxsZXR0ZTxicj4NCjxiPkNjOjwvYj48c3BhbiBjbGFzcz0iYXBw
bGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+QW5keSBCaWVybWFuOyA8YSBocmVmPSJt
YWlsdG86NnRpc2NoQGlldGYub3JnIj4NCjZ0aXNjaEBpZXRmLm9yZzwvYT47IDxhIGhyZWY9Im1h
aWx0bzpjb3JlQGlldGYub3JnIj5jb3JlQGlldGYub3JnPC9hPjxicj4NCjxiPlN1YmplY3Q6PC9i
PjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5SZTogUmVz
ZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSBNaWNo
ZWwsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYXQgc291bmQgZ3JlYXQhIEhhdmluZyB0
aGUgc2hvcnQgZm9ybSAoMTAgYml0cyBkYXRhIG5vZGUgSUQpIGFuZCBsb25nIGZvcm0gKDIwIGJp
dHMgbW9kdWxlIElEICYjNDM7IDEwIGJpdHMgZGF0YSBub2RlIElEKSwgY2FuIHNhdmUgcXVpdGUg
YSBsb3Qgd2hlbiBkZWFsaW5nIHdpdGggbW9yZSB0aGFuIGlzb2xhdGVkIGRhdGEgaXRlbXMsIGFz
IHlvdSBwb2ludCBpbiB5b3VyIGV4YW1wbGUuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPkFzIEkgbWVudGlvbmVkIGVhcmxpZXIsIGhhdmluZyB5b3VyIG1vZHVsZUlEJiM0MzswMDAw
MDAwMDAwIGNhbiBiZSB1c2VkIGFzIFlBTkcgaWQgZm9yIHRoZSBtb2R1bGUsIHdoaWNoIGNhbiBw
cm92aWRlIG1ldGEtaW5mb3JtYXRpb24gb24gdGhlIGxvYWRlZCBtb2R1bGUuIEZvciBleGFtcGxl
LCBpZiB5b3UgaXNzdWUgYSByZXF1ZXN0IGFnYWluc3QgdGhhdCBJRCBhbmQgcmVjZWl2ZSBSZXNv
dXJjZSBub3QgZm91bmQsDQogdGhlbiB0aGUgbW9kdWxlIGlzIG5vdCBsb2FkZWQgKGJ1dCB0aGlz
IG9mIGNvdXJzZSBzaG91bGQgbm90IGJlIHRoZSB3YXkgdG8gZGlzY292ZXIgaXQpLiBJcyB0aGlz
IHVzZWZ1bD8gSWYgdGhlcmUgaXMgbmVlZCBmb3IgbW9kdWxlIHZlcnNpb25pbmcsIHRoZSBZQU5H
IG1vZHVsZSBJRCBjYW4gYmUgdXNlZCB0byBvYnRhaW4gdGhlIHZlcnNpb25pbmcgaW5mb3JtYXRp
b24uIEhhdmluZyBkZXRlcm1pbmlzdGljIGRhdGEgbm9kZSBJRHMgY2FuIGJlDQogdXNlZCB0byBo
YXZlIHZlcnNpb25zIG9mIHRoZSBzYW1lIG1vZHVsZSAoZS5nLiBhZGRpbmcgbmV3IGxlYWZzLCBu
ZXcgY29udGFpbmVycywgZXRjLikgLSByZW1vdmluZyB0aGluZ3Mgb3V0IHdpbGwgcmVxdWlyZSBu
ZXcgbW9kdWxlIElELjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JbiBhZGRpdGlvbiB0byBo
YXZpbmcgcmVkdWNlZCBkYXRhIHJlcXVpcmVtZW50cyAoaW4gVVJJcyBhbmQgQ0JPUiksIGhhdmlu
ZyB0aGUgZml4ZWQgWUFORyBtb2R1bGUgSURzIGhlbHBzIGxvY2F0ZSBzb21lIHNwZWNpYWwgcmVz
b3VyY2VzLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+RS5nLiBtb2R1bGUgSUQ6PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7
YWxpYXNpbmcgOiAxOCBiaXRzID0gMCAmIzQzOyAwMDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgZnVsbCBZQU5HIG1vZHVsZSBJRCA9IEFBQUEgKGNvbXByZXNzZWQgdG8gQSk8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPiZuYnNwOyAmbmJzcDtZQU5HIG1ldGEtZGF0YSBtb2R1bGU6IDE4IGJpdHMgPSAwICYjNDM7
IDAxPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyBmdWxsIFlBTkcgbW9kdWxlIElEPSBB
QUFnMCAoY29tcHJlc3NlZCB0byBnMCk8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDtSZXNlcnZlZCBm
b3IgZnV0dXJlIHVzZTogMTggYml0cyA9IDAgJiM0MzsgMTAgYW5kIDE4IGJpdHMgPSAwICYjNDM7
IDExPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBZQU5HIG1ldGEtZGF0YSBtb2R1bGUg
Y2FuIHByb3ZpZGUgYWxsIG5lY2Vzc2FyeSBtZXRhLWluZm9ybWF0aW9uLCBlLmcuIG1vZC51cmks
IHRoZSBsb2FkZWQgbW9kdWxlcywgdGhlaXIgdmVyc2lvbnMsIGFuZCBzbyBmb3J0aC4gVGhpcyBr
ZWVwcyB0aGUgc2VwYXJhdGlvbiBiZXR3ZWVuIGFsaWFzaW5nIGFuZCBtZXRhLWluZm9ybWF0aW9u
LiBOb3RlLCB0aGF0IHRoZSBtZXRhLW1vZHVsZSBZQU5HIHNjaGVtZQ0KIHdpbGwgYmUgcHVibGlz
aGVkIHdpdGggYSBub3JtYWwgYXNzaWduZWQgWUFORyBtb2R1bGUgSUQsIHdoaWNoIHdpbGwgYmUg
bWFwcGVkIHRvIHRoZSAvbWcvZzAsIGUuZy4gY2hhbmdpbmcgdGhlIG1ldGEtZGF0YSBhIGNvdXBs
ZSBvZiB5ZWFycyBkb3duIHRoZSByb2FkIGlzIHBvc3NpYmxlIHdpdGggb3Igd2l0aG91dCB2ZXJz
aW9uaW5nLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIGFsc28gZG9u4oCZdCB0aGluayBp
dCB3b3VsZCBiZSBhIGdvb2QgaWRlYSB0byBoYXZlIGNvbXBsZXggYWxpYXNpbmcgbWVjaGFuaXNt
cywgYW5kIHRoaXMgc2hvdWxkIGJlIGZ1cnRoZXIgZGlzY3Vzc2VkLiBJdCB3aWxsIGJlIHZlcnkg
dXNlZnVsIGZvciBtYW5hZ2VkIG5ldHdvcmtzLiBUaGUgL21nL0EgcmVzb3VyY2Ugc2hvdWxkIGJl
IGtlcHQgYXMgbGlnaHQgYXMgcG9zc2libGUuIEZvciB0aGUgbW9tZW50IEkNCiB0aGluayB0aGVy
ZSBhcmUgb25seSB0d28gbmVjZXNzYXJ5IHBpZWNlcyBvZiBpbmZvcm1hdGlvbiB0aGF0IG5lZWQg
dG8gYmUgZ2l2ZW4gYnkgaXQ6IGhhc2gtdmFsdWUgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBtYXBw
aW5nIGFuZCBVUkkgdG8gZXh0cmFjdCB0aGUgZnVsbCBtYXBwaW5nLiBUaGUgbWFwcGluZyBjYW4g
YmUgb2J0YWluZWQgZnJvbSB0aGUgbWV0YS1kYXRhICgvbWcvZzAgb3IgLndlbGwta25vd24vY29y
ZSkuICZuYnNwO1RoZSBzaW1wbGVzdA0KIG1lY2hhbmlzbSB0byBiZSB1c2VkIGlzIHRoZSBmb2xs
b3dpbmc6Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjEpIElmIG5vIGFsaWFzZXMg
YXJlIGRlZmluZWQsIHRoZW4gdGhlIGNsaWVudCBjYW4gUE9TVCBhIG5ldyBhbGlhcyBtYXBwaW5n
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7MS5hKSB0aGUgYWxpYXMgbWFwcGluZyBleHBpcmVzIGFm
dGVyIGEgdGltZXIgKGRlZmF1bHQgdmFsdWUgPSAxaCwgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4g
YnkgdGhlIGNsaWVudCk8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyAmbmJzcDsxLmIpIHVwb24gdGltZXIgZXhw
aXJ5LCB0aGUgYWxpYXMgbWFwcGluZyBpcyBkZWxldGVkPG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7
MS5jKSB0aGUgdGltZXIgY2FuIGJlIGV4dGVuZGVkIHdpdGggYSBrZWVwLWFsaXZlIFBPU1QgZnJv
bSBhbnkgY2xpZW50PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4yKSBBbiBhbGlhcyBtYXBwaW5nIGNhbm5vdCBiZSBhbHRl
cmVkIG9yIGRlbGV0ZWQgYnkgYSBjbGllbnQuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPlRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgaXMgdGhlIGZvbGxvd2luZzogQSBub2RlIGJl
Y29tZXMg4oCYbWFuYWdlZOKAmSBieSBhIGNsaWVudCwgYW5kIHRoZSBjbGllbnQgcmVnaXN0ZXJz
IHRoaXMuIElmIGEgZGlmZmVyZW50IGNsaWVudCB0cmllcyB0byBQT1NUIG5ldyBjb25maWd1cmF0
aW9uIGl0IHdpbGwgcmVjZWl2ZSBhIDQuMDMgRm9yYmlkZGVuLiZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5UaGlzIGFjdHVhbGx5IG1ha2VzIGNvbmZpZ3VyaW5nIGFuZCBpbXBsZW1l
bnRpbmcgYWxpYXNlcyByZWFsbHkgc3RyYWlnaHRmb3J3YXJkLiBVcG9uIGRpc2NvdmVyeSBvZiBh
IG5vZGUsIGEgY2xpZW50IGNhbiBkaXJlY3RseSBQT1NUIHRvIC9tZy9BLCBhbmQgaWYgaXQgcmVj
ZWl2ZXM6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7LSAmcXVvdDs0LjA0IE5vdCBGb3VuZCZxdW90
OywgdGhlbiBhbGlhc2luZyBpcyBub3Qgc3VwcG9ydGVkPG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7
LSAmcXVvdDs0LjAzIEZvcmJpZGRlbiZxdW90OywgdGhlIGFsaWFzIG1hcHBpbmcgaXMgYWxyZWFk
eSBkZWZpbmVkIChieSBzb21lb25lIGVsc2UpPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5ic3A7LSAmcXVv
dDsyLjAxIENyZWF0ZWQmcXVvdDsgLSBhbGlhcyBkZWZpbmVkPG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgJm5i
c3A7LSAmcXVvdDsyLjA0IENoYW5nZWQmcXVvdDsgLSBhbGlhcyB0aW1lciB1cGRhdGVkPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPklmIHRoZSAvbWcvZzAgaXMgYWNjZXB0ZWQgYXMgWUFORyBt
ZXRhLWRhdGEgbW9kdWxlIHBvaW50ZXIsIHRoZW4gdGhlIGFjdHVhbCBhbGlhcyBtYXBwaW5nIGNh
biBiZSByZXRyaWV2ZWQgZnJvbSB0aGVyZS4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+QmVzdCw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPkFsZXhhbmRlcjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0
O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5MZSA1IGp1aW4gMjAxNSDDoCAyMzo0MywgTWljaGVsIFZlaWxsZXR0ZSAmbHQ7PGEgaHJlZj0i
bWFpbHRvOk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSI+PHNwYW4gc3R5bGU9ImNv
bG9yOnB1cnBsZSI+TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT4m
Z3Q7IGEgw6ljcml0IDo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj5IaSBBbGV4YW5kZXIgYW5kIEhpIEFuZHk8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkkgdGhpbmtzIHdlIGNhbiBhdm9pZCB0aGUgc3VwcG9ydCBv
ZiBhIGNvbXBsZXggYWxpYXNlcyBtZWNoYW5pc20gYW5kIHN0aWxsIGFyY2hpdmUgdGhlIHNhbWUg
bGV2ZWwgb2YgbWVzc2FnZSBjb21wcmVzc2lvbi48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlIHNvbHV0aW9uIGNvbnNpc3RzIG9mIHN1cHBvcnRpbmcg
dHdvIGZvcm1zIG9mIGRhdGEgbm9kZSBpZGVudGlmaWVyLCB0aGUgc2FtZSB3YXkgYXMgUkVTVGNv
bmYuIChlLmcuIGlldGYtc3lzdGVtOmN1cnJlbnQtZGF0ZXRpbWUgdnMuIGN1cnJlbnQtZGF0ZXRp
bWUpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGUgbG9u
ZyBmb3JtIHdpbGwgY29uc2lzdCBvZiB0aGUgSUQgZm9ybWF0IHByb3Bvc2VkIGJ5IEFsZXhhbmRl
ciAmbmJzcDsoMiByZXNlcnZlZCBiaXRzLCAyMCBiaXRzIG1vZHVsZSBJRCwgMTAgYml0cyBkYXRh
IG5vZGUgSUQpLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij5UaGUgc2hvcnQgZm9ybSB3aWxsIGNhcnJ5IG9ubHkgdGhlIGRhdGEgbm9kZSBJRCAmbmJzcDso
MTAgYml0cyBkYXRhIG5vZGUgSUQpLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj5UaGUgbG9uZyBmb3JtIHdpbGwgYmUgdXNlZCBvbmx5IHdoZW4gbmVlZGVk
Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+TGV0IGFzc3Vt
ZSB3ZSBoYXZlIHRoZXNlIHR3byBtb2R1bGVzOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPm1vZHVsZSBhIHs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IGNvbnRhaW5lciBjb250
YWluZXJBIHs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHls
ZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyBsZWFmIGxlYWZBMSB7
IHR5cGUgc3RyaW5nfSw8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
diBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyBsZWFmIGxl
YWZBMiB7IHR5cGUgc3RyaW5nfTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IH08L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPn08L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0i
bWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+bW9kdWxlIGIgezwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDouNWluIj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IGltcG9ydCBhIHsgcHJlZml4IGE7IH08L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7IGF1Z21lbnQgJnF1b3Q7L2E6Y29udGFp
bmVyQSZxdW90OyB7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYg
c3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJzcDsgbGVhZiBsZWFm
QTMgeyB0eXBlIHN0cmluZ308L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyB9PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij59PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1h
cmdpbi1sZWZ0Oi41aW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+TGV0IGFzc3VtZSB3ZSBoYXZlIHRoZXNlIGFzc2lnbmVkIElEczo8
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjx0YWJsZSBjbGFzcz0iTXNvTm9y
bWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBzdHls
ZT0ibWFyZ2luLWxlZnQ6MzAuMnB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+DQo8dGJvZHk+
DQo8dHI+DQo8dGQgd2lkdGg9IjE5MSIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNDMuNnB0
O2JvcmRlcjpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1ib3R0b206c29saWQgIzY2NjY2NiAx
LjVwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjwvYj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRo
PSI0OCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDouNWluO2JvcmRlci10b3A6c29saWQgIzk5
OTk5OSAxLjBwdDtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzY2NjY2NiAx
LjVwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAw
aW4gNS40cHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SUQ8L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjIyOCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3
aWR0aDoxNzEuMHB0O2JvcmRlci10b3A6c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItbGVmdDpu
b25lO2JvcmRlci1ib3R0b206c29saWQgIzY2NjY2NiAxLjVwdDtib3JkZXItcmlnaHQ6c29saWQg
Izk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
RnVsbCBJRDwvc3Bhbj48L2I+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4N
Cjx0ZCB3aWR0aD0iOTYiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MS4waW47Ym9yZGVyLXRv
cDpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xp
ZCAjNjY2NjY2IDEuNXB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6
MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5CYXNlNjQ8L3NwYW4+PC9iPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIHdpZHRo
PSIxOTEiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MTQzLjZwdDtib3JkZXI6c29saWQgIzk5
OTk5OSAxLjBwdDtib3JkZXItdG9wOm5vbmU7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPm1vZHVsZSBhPC9zcGFuPjwvYj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSI0OCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDou
NWluO2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQg
Izk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBp
biA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+MjU8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iMjI4IiB2YWxpZ249InRvcCIgc3R5bGU9
IndpZHRoOjE3MS4wcHQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJv
dHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0
O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iOTYiIHZhbGln
bj0idG9wIiBzdHlsZT0id2lkdGg6MS4waW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5v
bmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAj
OTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8
dHI+DQo8dGQgd2lkdGg9IjE5MSIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNDMuNnB0O2Jv
cmRlcjpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci10b3A6bm9uZTtwYWRkaW5nOjBpbiA1LjRw
dCAwaW4gNS40cHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Y29udGFpbmVyIGNvbnRhaW5lckE8L3NwYW4+PC9i
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjQ4IiB2
YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOi41aW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0
Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xp
ZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4x
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9
IjIyOCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNzEuMHB0O2JvcmRlci10b3A6bm9uZTti
b3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXIt
cmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+MTEwMDEwMDAwMDAwMDAxID0gMjU2MDE8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iOTYiIHZhbGlnbj0idG9wIiBzdHlsZT0i
d2lkdGg6MS4waW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRv
bTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3Bh
ZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5HUUI8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgd2lkdGg9IjE5
MSIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNDMuNnB0O2JvcmRlcjpzb2xpZCAjOTk5OTk5
IDEuMHB0O2JvcmRlci10b3A6bm9uZTtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+bGVhZiBsZWFmQTE8L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjQ4IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOi41
aW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAj
OTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGlu
IDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4yPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjIyOCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3
aWR0aDoxNzEuMHB0O2JvcmRlci10b3A6bm9uZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0
b206c29saWQgIzk5OTk5OSAxLjBwdDtib3JkZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtw
YWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+MTEwMDEwMDAwMDAwMDEwID0g
MjU2MDI8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3
aWR0aD0iOTYiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6MS4waW47Ym9yZGVyLXRvcDpub25l
O2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRl
ci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj5HUUM8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90
ZD4NCjwvdHI+DQo8dHI+DQo8dGQgd2lkdGg9IjE5MSIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0
aDoxNDMuNnB0O2JvcmRlcjpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci10b3A6bm9uZTtwYWRk
aW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+bGVhZiBsZWFmQTI8L3NwYW4+
PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjQ4
IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOi41aW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1s
ZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpz
b2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij4zPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lk
dGg9IjIyOCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNzEuMHB0O2JvcmRlci10b3A6bm9u
ZTtib3JkZXItbGVmdDpub25lO2JvcmRlci1ib3R0b206c29saWQgIzk5OTk5OSAxLjBwdDtib3Jk
ZXItcmlnaHQ6c29saWQgIzk5OTk5OSAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQi
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+MTEwMDEwMDAwMDAwMDExID0gMjU2MDI8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iOTYiIHZhbGlnbj0idG9wIiBzdHls
ZT0id2lkdGg6MS4waW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJv
dHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0
O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5HUUQ8L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgd2lkdGg9
IjE5MSIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxNDMuNnB0O2JvcmRlcjpzb2xpZCAjOTk5
OTk5IDEuMHB0O2JvcmRlci10b3A6bm9uZTtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+bW9kdWxlIGI8L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjQ4IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOi41
aW47Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAj
OTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xpZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGlu
IDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4yNjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSIyMjgiIHZhbGlnbj0idG9wIiBzdHlsZT0i
d2lkdGg6MTcxLjBwdDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90
dG9tOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7
cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSI5NiIgdmFsaWdu
PSJ0b3AiIHN0eWxlPSJ3aWR0aDoxLjBpbjtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9u
ZTtib3JkZXItYm90dG9tOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5
OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjx0
cj4NCjx0ZCB3aWR0aD0iMTkxIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjE0My42cHQ7Ym9y
ZGVyOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLXRvcDpub25lO3BhZGRpbmc6MGluIDUuNHB0
IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5sZWFmIGxlYWZBMzwvc3Bhbj48L2I+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iNDgiIHZhbGlnbj0idG9w
IiBzdHlsZT0id2lkdGg6LjVpbjtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3Jk
ZXItYm90dG9tOnNvbGlkICM5OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkg
MS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjE8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iMjI4IiB2YWxp
Z249InRvcCIgc3R5bGU9IndpZHRoOjE3MS4wcHQ7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1sZWZ0
Om5vbmU7Ym9yZGVyLWJvdHRvbTpzb2xpZCAjOTk5OTk5IDEuMHB0O2JvcmRlci1yaWdodDpzb2xp
ZCAjOTk5OTk5IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4x
MTAxMDAwMDAwMDAwMDEgPSAyNjYyNTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L3RkPg0KPHRkIHdpZHRoPSI5NiIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDoxLjBp
bjtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItYm90dG9tOnNvbGlkICM5
OTk5OTkgMS4wcHQ7Ym9yZGVyLXJpZ2h0OnNvbGlkICM5OTk5OTkgMS4wcHQ7cGFkZGluZzowaW4g
NS40cHQgMGluIDUuNHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkdnQjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkEg
R0VUIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBmb2xsb3c6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVROiBHRVQ8
c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0i
aHR0cDovL2V4YW1wbGUuY29tL21nL0dRQiI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBsZSI+ZXhh
bXBsZS5jb20vbWcvR1FCPC9zcGFuPjwvYT48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDou
NWluIj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJGUi1DQSIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlJFUzogMi4wNSBDb250ZW50IChDb250ZW50LUZvcm1hdDog
YXBwbGljYXRpb24vY2Jvcik8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj57PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41
aW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj4mbmJzcDsgMSA6IHs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyAy
IDogJnF1b3Q7IGxlYWZBMSB2YWx1ZSZxdW90Oyw8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNw
OyZuYnNwOyAzIDogJnF1b3Q7IGxlYWZBMiB2YWx1ZSAmcXVvdDs8L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOyZuYnNwOyZuYnNwOyAyNjYyNSA6ICZxdW90OyBsZWFmQTMgdmFsdWUgJnF1b3Q7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
Oi41aW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj4mbmJzcDsgfTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+fTwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+QSBQVVQgY2FuIGJlIGltcGxlbWVudGVkIGFzIGZv
bGxvdzo8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1h
cmdpbi1sZWZ0Oi41aW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj5SRVE6IFBVVDxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQt
c3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwOi8vZXhhbXBsZS5jb20vbWciPjxzcGFu
IHN0eWxlPSJjb2xvcjpwdXJwbGUiPmV4YW1wbGUuY29tL21nPC9zcGFuPjwvYT48L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVp
biI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPns8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHls
ZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyAyNTYwMSA6IHs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PiZuYnNwOyZuYnNwOyZuYnNwOyAyIDogJnF1b3Q7IGxlYWZBMSB2YWx1ZSZxdW90Oyw8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyAzIDogJnF1b3Q7IGxlYWZBMiB2YWx1ZSAmcXVv
dDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFy
Z2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyAyNjYyNSA6ICZxdW90OyBsZWFm
QTMgdmFsdWUgJnF1b3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUt
Y29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIGxhbmc9IkZSLUNBIiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+fTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJGUi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPn08
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2lu
LWxlZnQ6LjVpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRlIt
Q0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRlItQ0EiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj5SRVM6IDIuMDUgT2s8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJGUi1DQSIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh
bmc9IkZSLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRh
YmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9Ijcx
NyIgc3R5bGU9IndpZHRoOjUzNy43NXB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+DQo8dGJv
ZHk+DQo8dHIgc3R5bGU9ImhlaWdodDo0OS4wNXB0Ij4NCjx0ZCB3aWR0aD0iMTM3IiBzdHlsZT0i
d2lkdGg6MTAzLjFwdDtib3JkZXI6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgd2luZG93dGV4dCAx
LjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iNTgwIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQz
NC42NXB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2
IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0g
QXJjaGl0ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VHJpbGxpYW50IEluYy48YnI+DQpU
ZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNzxicj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVp
bGxldHRlQHRyaWxsaWFudGluYy5jb20iPjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2M0MxIj5taWNo
ZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjpwdXJwbGUiPnd3dy50cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PHNwYW4gY2xh
c3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzxzcGFu
IGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJs
ZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAj
RTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9t
Ojwvc3Bhbj48L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gbGFu
Zz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1V
UyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmIj5BbGV4YW5kZXINCiBQZWxvdiBbPGEgaHJlZj0ibWFpbHRvOmFsZXhhbmRl
ci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1Ij48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5t
YWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXU8L3NwYW4+PC9hPl08c3Bh
biBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPg0KPGI+U2Vu
dDo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjUg
anVpbiAyMDE1IDE2OjEwPGJyPg0KPGI+VG86PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0
ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5BbmR5IEJpZXJtYW48YnI+DQo8Yj5DYzo8L2I+PHNwYW4g
Y2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPk1pY2hlbCBWZWlsbGV0
dGU7PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxhIGhy
ZWY9Im1haWx0bzo2dGlzY2hAaWV0Zi5vcmciPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUiPjZ0
aXNjaEBpZXRmLm9yZzwvc3Bhbj48L2E+OzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3Bh
Y2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyI+PHNwYW4gc3R5
bGU9ImNvbG9yOnB1cnBsZSI+Y29yZUBpZXRmLm9yZzwvc3Bhbj48L2E+PGJyPg0KPGI+U3ViamVj
dDo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPlJl
OiBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhpIEFuZHksPG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPllvdSBhcmUgcmlnaHQgdGhhdCBp
ZiB3ZSBzdGFydCBjb25zaWRlcmluZyBtdWx0aXBsZSBjbGllbnRzLCBlYWNoIG9mIHdoaWNoIHRy
eWluZyB0byB1c2UgaXRzIGFsaWFzZXMgdGhlIHRoaW5ncyBiZWNvbWUuLiBsZXMgb3B0aW1hbC4g
QW5kIGlmIG5vIGNhdXRpb24gaXMgdGFrZW4gLSBjYW4gc3BlbGwgdHJvdWJsZS48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlIHBvaW50
IGlzLCB5b3VyIGRlZmF1bHQgYmVoYXZpb3Igc2hvdWxkIGJlIHRvIHVzZSB0aGUgbm9ybWFsIElE
LiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWF5IGRlY2lkZSB0aGF0IHlvdeKAmXJlIGdv
aW5nIHRvIGJlIGhhdmluZyBxdWl0ZSBhIGxvdCBvZiBleGNoYW5nZXMgd2l0aCB0aGUgc2FtZSBJ
RCwgc28geWVzLCB5b3UgY2FuIHJlZGVmaW5lIHRoZSBhbGlhcyBtYXBwaW5nLiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Ib3dl
dmVyLCB5b3UgYXJlIHJpZ2h0IHRoYXQgd2UgbmVlZCB0byB0YWtlIGNhcmUgb2YgZXZlbnR1YWwg
cmFjZSBjb25kaXRpb25zLiBJbmRlZWQsIGluIDZUaVNDSCBhbmQgb3RoZXIgbWFuYWdlZCBuZXR3
b3JrcyBpdCBtYXkgbm90IGhhcHBlbiAod2hpY2ggYWxvbmUgaXMgc3VmZmljaWVudCBmb3IgbWUg
dG8gaGF2ZSB0aGlzIMKrJm5ic3A7Z29sZGVuJm5ic3A7wrsgSURzIGJlIGxlZnQgb3V0IG9mIHRo
ZSDCqyByYW5kb21seSBhbGxvY2F0ZWQmbmJzcDvCuywNCiBvciDCqyBldGVybmFsbHkgbG9ja2Vk
IHRvIGEgc3BlY2lmaWMgSUQgwrsgcmVzb3VyY2VzKS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGF2aW5nIHRoZSAvbWcvQSByZXNvdXJj
ZSBwcm92aWRlIHRoZSBtZXRhLWluZm9ybWF0aW9uIGNhbiBoZWxwIHNvbHZlIGEgbG90IChhbGw/
KSBvZiB0aGUgcHJvYmxlbXMuIChpbiBteSBwYXN0IG1haWxzIEkgcmVmZXJyZWQgdGhpcyBhcyAv
bWcvMCBidXQgSSBtZWFudCAvbWcvQSwgc29ycnkpPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBmaXJzdCByZXF1aXJlbWVudCBmb3Ig
YSBjbGllbnQgaXMgdG8gcXVlcnkgdGhlIC9tZy9BIHJlc291cmNlLiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+VGhlcmUsIHlvdSBjYW4gZ2V0IHRoZSBtZXRhLWRhdGEgY29uY2Vybmlu
ZyB0aGUgYWxpYXNlcywgaW5jbHVkaW5nIHRoZSBoYXNoIG9mIHRoZSBhbGlhcyBtYXBwaW5nLCB0
aGUgbWFwcGluZyBpdHNlbGYgKGlmIG5lY2Vzc2FyeSksIGFuZCB0aGUgdXBkYXRlciAoaWRlbnRp
ZmllZCBieSBhIHRva2VuKS4gSeKAmW0gd29uZGVyaW5nIGlmIHRoZXJlIGNvdWxkIGJlIGFkZGVk
IGEgdmFsaWRpdHkgb2YgdGhlIG1hcHBpbmcuDQogQSBjbGllbnQgY2FuIGNoYW5nZSB0aGUgbWFw
cGluZyBPTkxZIGlmIGl0IGlzIHRoZSBsYXN0IHVwZGF0ZXIgKGhhc2gmIzQzO3Rva2VuIG1hdGNo
KSwgb3IgaWYgdGhlIHZhbGlkaXR5IGhhcyBleHBpcmVkLiBJZiB0aGUgc2VydmVyIGhhcyBhIHdh
eSBvZiBrZWVwaW5nIHRpbWUgaXQgY2FuIHRyYWNrIHRoZSB2YWxpZGl0eSBpdHNlbGYuIE90aGVy
d2lzZSwgaXQgY2FuIGJlIGEgY29uc3RhbnQgZGF0ZXRpbWUgYWZ0ZXIgd2hpY2ggdGhlIHJlc291
cmNlIGlzDQogY29uc2lkZXJlZCBleHBpcmVkIGFuZCBhbnkgY2xpZW50IGNhbiB1cGRhdGUgdGhl
IHJlc291cmNlLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5KdXN0IHRvIGJlIHN1cmUsIEnigJltIHRhbGtpbmcgYWJvdXQgY2xp
ZW50cywgd2hpY2ggYXJlIGNhcGFibGUgZW5vdWdoIHRvIGtlZXAgdHJhY2sgb2Ygc29tZSBjb250
ZXh0IGFib3V0IHRoZSBzZXJ2ZXJzIGl0IGNvbnRyb2xzIE9SIGEgY2xpZW50IGluIGEgcGFydGlj
dWxhciBraW5kIG9mIG5ldHdvcmssIHdoaWNoIGtub3dzIHRoYXQgc29tZSB0aGluZ3MgYXJlIGp1
c3QgZXhwZWN0ZWQgdG8gYmUgdGhlcmUgYW5kDQogdGhlcmUgaXMgbm8gd2F5IGZvciB0aGVtIHRv
IGhhcHBlciBvdGhlcndpc2UuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPioqKioqKioqKioqKioqKioqPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4qKiBUaGUgZGVmYXVsdCB3YXkgb2YgZG9pbmcgdGhpbmdzIHNob3VsZCBhbHdh
eXMgYmUgdG8gdXNlIHRoZSBub3JtYWwgSURzLioqIElmIHlvdSB3YW50IHRvIGJlIG9wdGltYWwg
KGluIHNvbWUgd2F5KSwgZ2V0IC9tZy9BLCBhbmQgaWYgeW91IHVuZGVyc3RhbmQgaXQgLSB1c2Ug
aXQuIElmIHRoZXJl4oCZcyBub3RoaW5nLCBQT1NUIHdoYXRldmVyIHlvdSBsaWtlLCBidXQgYmUg
c3VyZSB0aGF0IHlvdSBoYXZlIGVub3VnaA0KIHJlc291cmNlcyB0byByZW1lbWJlciB3aGF0IHlv
deKAmXJlIGRvaW5nLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+KiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+KiBJZiB5b3Ugd2FudCB0byBzZXQgYSBkaWZmZXJlbnQgY29u
ZmlndXJhdGlvbiBpbiBlYWNoIG9mIHlvdXIgMTBNIG5vZGVzLCB0aGVuIHdlbGwgeW91IHNob3Vs
ZCBoYXZlIHRoZSBzdG9yYWdlIHRvIHJlbWVtYmVyIGFsbCBvZiB0aGVtLjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+KioqKioqKioqKioqKioqKio8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QnkgdGhlIHdheSwgSSB3YXMgdGhpbmtpbmcg
b2Ygc29tZXRoaW5nIHF1aXRlIGludGVyZXN0aW5nLCB3aGljaCBjYW4gY29tZSBzdXBwbGVtZW50
IHRoZSBub2RlIElEIGFsaWFzaW5nLiBBY3R1YWxseSwgSSB0aGluayB0aGF0IHRoZSAyMCBiaXRz
ICYjNDM7IDEwIGJpdHMgWUFORyBpZCByZWFsbHkgb3BlbnMgYSBsb3Qgb2YgcGVyc3BlY3RpdmVz
ICh3aWxsIHRyeSB0byB3cml0ZSB0aGF0IHVwIHRvbW9ycm93KS48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlIG1ham9yIHBvaW50IGlz
IHRoYXQgd2hlbiB0aGUgZGF0YSBub2RlIElEID0gMCwgdGhlIG1vZHVsZSBJRCBjYW4gYmUgdXNl
ZCBhcyBhIHJlc291cmNlIHRvIG9idGFpbiBtZXRhLWluZm9ybWF0aW9uIG9uIHRoZSBtb2R1bGUu
IEZvciBleGFtcGxlLCBpdHMgdmVyc2lvbi4gVGhpcyB3YXksIGlmIHlvdSB1cGRhdGUgYSBZQU5H
IG1vZHVsZSB3aXRoIGEgbmV3IG9uZSwgd2hpY2ggb25seSBhcHBlbmRzIGVsZW1lbnRzLA0KIHlv
dSB3aWxsIG5vdCBuZWVkIHRvIHJlcXVlc3QgYSBuZXcgbWFuYWdlZCBJRC4gR0VUIC9tZy9tb2R1
bGVJRD9rZXlzPXZlcnNpb24gKHdpdGggZGF0YSBub2RlIElEPTApIGFuZCB5b3Uga25vdyB3aGF0
IGlzIHlvdXIgbW9kdWxlIHJlYWxseSBjYXBhYmxlIG9mLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5BbHNvLCB0aGUgc3BlY2lh
bCBwbGFjZSBvZiAvbWcvQSBjYW4gYWN0dWFsbHkgYmVjb21lIGFuIGVudHJ5IHBvaW50IGZvciBt
b3N0IG9mIHRoZSBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIENvTUkgKHRvIGJlIGRpc2N1c3NlZC4u
IEkgaGF2ZSBubyBzdHJvbmcgZmVlbGluZ3Mgb24gdGhpcykuIEl0IGNhbiwgZm9yIGV4YW1wbGUs
IHByb3ZpZGUgdGhlIG1vZC51cmksIGFuZCBvdGhlciBpbmZvcm1hdGlvbi4gVGhlDQogb25seSBp
bmZvcm1hdGlvbiB0aGF0IHJlbWFpbnMgdHJ1bHkgbmVjZXNzYXJ5IHRvIGJlIGZpeGVkIGluIC8u
d2VsbC1rbm93bi9jb3JlIGlzIHRoZSBlbnRyeSBwb2ludCB0byB0aGUgQ29NSSBpbnRlcmZhY2Ug
KGUuZy4gL21nKS4gQWZ0ZXJ3YXJkcywgZXZlcnl0aGluZyBjYW4gYmUgZGV0ZXJtaW5lZCBmcm9t
IC9tZy9BIHdpdGggcXVlcmllcyAoL21nL0E/a2V5cz1tb2QudXJpJiM0MzthbGlhcy51cmkpPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkJl
c3QsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5BbGV4YW5kZXI8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UFMuPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5BcyBpZiBkYXRhIG5vZGUgYWxpYXNpbmcgaXMgbm90IGVub3VnaOKApiBtb2R1
bGUgSUQgYWxpYXNpbmcgKHRoaXMgb25lIGlzIHJlYWxseSB2ZXJ5IGxvdyBpbiBteSBwcmlvcml0
aWVzIGFuZCBJ4oCZbSBtZW50aW9uaW5nIGl0IG9ubHkgZm9yIGNvbXBsZXRlbmVzcyk6PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBm
aXJzdCAxMiBiaXRzIHRha2UgMiBVUkkgY2hhcmFjdGVycyBhbmQgMiBieXRlcyBpbiBDQk9SLiBI
YXZpbmcgMTAgYml0cyBmb3IgdGhlIGRhdGEgbm9kZSBJRCBsZWF2ZXMgMiBpbnRlcmVzdGluZyBi
aXRzIGluIHRoZSBtb2R1bGUgSUQgcGFydOKApiBTbyB3ZSBjYW4gaGF2ZSBtb2R1bGUgYWxpYXNl
cyBhcyB3ZWxsIChhbGJlaXQgb25seSAzKS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhhdCBpcywgaW4gVVJJIGVuY29kaW5nLCZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MHgwMDAwMDAwMC0weDAwMDAwM0ZGIC0mZ3Q7IGRh
dGEgbm9kZSBhbGlhc2luZzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MHgwMDAwMDQwMC0weDAw
MDAwN0ZGIC0mZ3Q7IGFsaWFzZWQgbW9kdWxlIDE8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjB4
MDAwMDA4MDAtMHgwMDAwMEJGRiAtJmd0OyBhbGlhc2VkIG1vZHVsZSAyPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4weDAwMDAwQzAwLTB4MDAwMDBCRkYtJmd0OyBhbGlhc2VkIG1vZHVsZSAzPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPklt
cGxlbWVudGF0aW9uLXdpc2UsIGl0cyByZWFsbHkgZWFzeTogdXBvbiByZXF1ZXN0LCBpZiB0aGUg
bW9kdWxlIElEID0gYWxpYXNlZCBtb2R1bGUgSUQgMSwgcmVwbGFjZSB0aGUgbW9kdWxlIElEIHBh
cnQsIHNvIG5vIG5lZWQgdG8gbWFwIHRoZSBlbnRpcmUgbW9kdWxlIElEIC8gZGF0YSBub2RlIElE
IHNwYWNlLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5CdXQgcmVhbGx5LCB0aGF0IG11Y2ggb3B0aW1pemF0aW9uPyBFdmVuIGlm
IGl0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCwgSSB3b3VsZCBsaWtlIHRvIHNlZSB1c2UgY2FzZXMg
dGhhdCBjb3VsZCBiZW5lZml0IGZyb20gdGhpcyBiZWZvcmUgYWN0dWFsbHkgY29uc2lkZXJpbmcg
aXQuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFy
Z2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5MZSA1IGp1aW4gMjAxNSDDoCAyMDo1NSwgQW5keSBCaWVybWFuICZsdDs8YSBocmVmPSJt
YWlsdG86YW5keUB5dW1hd29ya3MuY29tIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5hbmR5
QHl1bWF3b3Jrcy5jb208L3NwYW4+PC9hPiZndDsgYSDDqWNyaXQgOjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+DQo8YnI+DQo8YnI+DQo8YnI+DQo8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj5PbiBGcmksIEp1biA1LCAyMDE1IGF0IDExOjQx
IEFNLCBNaWNoZWwgVmVpbGxldHRlPHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+
Jm5ic3A7PC9zcGFuPiZsdDs8YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBsZSI+TWlj
aGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT4mZ3Q7PHNwYW4gY2xhc3M9
ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPndyb3RlOjwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0
O21hcmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0OjBpbjttYXJn
aW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SGkgQWxleGFuZGVyPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5JIGhhdmUgc29tZSBj
b25jZXJucyBhYm91dCBhbGxvd2luZyBDb01JIGNsaWVudChzKSB0aGUgY29udHJvbCBvZiB0aGUg
bGlzdCBvZiBhbGlhc2VzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj5UaGlzIGFwcHJvYWNoIHdvcmsgZmluZSBmb3IgdGhlIGZpcnN0IENvTUkgYXBwbGlj
YXRpb24gKGUuZy4gNlRpU0NIKSBidXQgd2hhdCBkbyB3ZSBkbyB3aXRoIHRoZSBzdWJzZXF1ZW50
IENvTUkgYXBwbGljYXRpb24/PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj5PbmUgcG9zc2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xpZW50IHNl
bmQgYSBsaXN0IG9mIChhbGlhcywgZGF0YSBub2RlIElEKSB0byB0aGUgQ29NSSBzZXJ2ZXIuIElu
IHRoaXMgY2FzZSwgdGhlIENvTUkgY2xpZW50IG1pZ2h0IHJlY2VpdmUgYW4gZXJyb3IgaWYNCiBv
bmUgb3IgbXVsdGlwbGUgb2YgdGhlc2UgYWxpYXNlcyBhcmUgYWxyZWFkeSByZXNlcnZlZC48L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkEgc2Vjb25kIHBvc3Np
YmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAoZGF0
YSBub2RlIElEKSBhbmQgZ2V0IGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgZnJvbSB0
aGUgQ29NSSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwNCiBDb01JIGNsaWVudHMgd2lsbCBoYXZlIHRv
IGRlYWwgd2l0aCBhIG1peCBwb3B1bGF0aW9uIG9mIGFsaWFzZXMuPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGUgcHJvcG9zZWQgc29sdXRpb24gbmVlZCB0
byBzY2FsZSB0byBhIG11bHRpLXZlbmRvcnMsIG11bHRpcGxlIGFwcGxpY2F0aW9ucyBlbnZpcm9u
bWVudC48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+V2l0
aCB0aGlzIGlzIG1pbmQsIGRvIHlvdSBoYXZlIGFueSBhbHRlcm5hdGl2ZSBzb2x1dGlvbnMgdG8g
cHJvcG9zZT88L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZl
dGljYSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZl
dGljYSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZl
dGljYSZxdW90OyxzYW5zLXNlcmlmIj5Eb2VzIHRoaXMgYXBwcm9hY2ggYWxsb3cgZWFjaCBjbGll
bnQgdG8gaGF2ZSBhIGRpZmZlcmVudCBzZXQgb2YgYWxpYXNlcyw8L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj5zbyB0aGUgc2VydmVyIGhhcyB0byBtYWlu
dGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGluZyBmb3IgZWFjaCBjbGllbnQ/PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWls
eTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+VGhpcyBzZWVtcyBsaWtlIGEgbG90
IG9mIG92ZXJoZWFkIGFuZCBOVi1zdG9yYWdlIHJlcXVpcmVtZW50czwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7SGVsdmV0aWNhJnF1b3Q7LHNhbnMtc2VyaWYiPm9uIHRoZSBzZXJ2ZXIuPC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250
LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250
LWZhbWlseTomcXVvdDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+Q2hhbmdpbmcgdGhlIHNj
aGVtYSBpZGVudGlmaWVycyBiYXNlZCBvbiB3aGljaCBjbGllbnQgaXM8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0hlbHZldGljYSZxdW90OyxzYW5zLXNlcmlmIj5zZW5kaW5nIHRoZSByZXF1ZXN0IHNl
ZW1zIGxpa2UgYSBjb21wbGljYXRlZCBkZXNpZ24gY2hhbmdlPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVv
dDtIZWx2ZXRpY2EmcXVvdDssc2Fucy1zZXJpZiI+ZnJvbSBSRVNUQ09ORiwgTkVUQ09ORiwgb3Ig
U05NUCwgd2hlcmUgdGhlcmUgaXMgb25seTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNh
JnF1b3Q7LHNhbnMtc2VyaWYiPjEgc2NoZW1hIHRyZWUgd2hpY2ggaXMgbm90IGRlcGVuZGVudCBv
biB0aGUgY2xpZW50IGlkZW50aXR5Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1
b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1
b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7SGVsdmV0aWNhJnF1
b3Q7LHNhbnMtc2VyaWYiPkFuZHk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90
OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90
OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90
OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0hlbHZldGljYSZxdW90
OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29s
aWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQu
OHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0OjBpbjttYXJnaW4tYm90dG9tOjUuMHB0
Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJv
cmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iNzE3IiBzdHls
ZT0id2lkdGg6NTM3Ljc1cHQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0
ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1cHQiPg0KPHRkIHdpZHRoPSIxMzciIHN0eWxlPSJ3aWR0aDox
MDMuMXB0O2JvcmRlcjpub25lO2JvcmRlci1yaWdodDpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3Bh
ZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbHQ7
aW1hZ2UwMDEuanBnJmd0Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1cHQ7
cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXYgc3R5bGU9
Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+TWljaGVsIFZlaWxsZXR0ZTxicj4NClN5c3RlbSBBcmNoaXRl
Y3R1cmUgRGlyZWN0b3I8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
diBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUw
LTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVA
dHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2
M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4
LjFwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8iIHRhcmdldD0i
X2JsYW5rIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6cHVycGxlIj53d3cudHJpbGxpYW50aW5jLmNvbTwv
c3Bhbj48L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj4mbmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4m
bmJzcDs8L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+
DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRl
cjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAw
aW4gMGluIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gbGFu
Zz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bh
bj48L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+QWxleGFuZGVyDQogUGVsb3Yg
W21haWx0bzo8YSBocmVmPSJtYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUu
ZXUiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5hbGV4YW5kZXIu
cGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldTwvc3Bhbj48L2E+XTxzcGFuIGNsYXNzPSJhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+DQo8Yj5TZW50OjwvYj48c3BhbiBjbGFz
cz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+NSBqdWluIDIwMTUgMTI6MDM8
YnI+DQo8Yj5Ubzo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7
PC9zcGFuPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQo8Yj5DYzo8L2I+PHNwYW4gY2xhc3M9ImFwcGxl
LWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPkFuZHkgQmllcm1hbjs8c3BhbiBjbGFzcz0i
YXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0ibWFpbHRvOjZ0aXNj
aEBpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUiPjZ0
aXNjaEBpZXRmLm9yZzwvc3Bhbj48L2E+OzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3Bh
Y2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyIgdGFyZ2V0PSJf
YmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUiPmNvcmVAaWV0Zi5vcmc8L3NwYW4+PC9h
Pjxicj4NCjxiPlN1YmplY3Q6PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui
PiZuYnNwOzwvc3Bhbj5SZTogUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSBNaWNoZWwsPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJt
YXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+TGUgNSBqdWluIDIwMTUgw6AgMTc6MTcsIE1pY2hlbCBW
ZWlsbGV0dGUgJmx0OzxhIGhyZWY9Im1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGlu
Yy5jb20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5NaWNoZWwu
VmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPiZndDsgYSDDqWNyaXQgOjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmIj5IaSBBbGV4YW5kZXI8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZiI+SW4geW91ciBwcmVzZW50YXRpb24gYXQgNlRpU0NILCB5b3UgcHJvcG9zZSB0aGUg
Zm9sbG93aW5nIGRhdGEgbm9kZSBJRCBzdHJ1Y3R1cmUuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3Jk
ZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgc3R5bGU9ImJvcmRlci1jb2xs
YXBzZTpjb2xsYXBzZSI+DQo8dGJvZHk+DQo8dHI+DQo8dGQgd2lkdGg9IjYyMyIgdmFsaWduPSJ0
b3AiIHN0eWxlPSJ3aWR0aDo0NjcuNXB0O2JvcmRlcjpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3Bh
ZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdCI+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWlu
Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+4oCi
PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
Ij4zMiBiaXRzIFlBTkcgSUQ8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDoxLjBpbiI+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPuKAkzwvc3Bhbj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3Nw
YW4+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+MjAgYml0cyBmb3IgbW9kdWxlIElEIChh
c3NpZ25lZCBieSBJRVRGKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjEuMGluIj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+4oCTPC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bh
bj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4xMCBiaXRzIGZvciBkYXRhIG5vZGUgSUQg
KGdlbmVyYXRlZCBkZXRlcm1pbmlzdGljYWxseSk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4m
bmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkJh
c2VkIG9uIHRoaXMgc3RydWN0dXJlLCB3ZSBjYW4gcmVzZXJ2ZSZuYnNwOzwvc3Bhbj48c3BhbiBs
YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmIj5tb2R1bGUgSUQgemVybyBmb3IgYWxpYXNlcy48L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4m
bmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp
dj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSB3YXMganVzdCBzdW1tYXJpemlu
ZyB3aGF0IHdhcyBkaXNjdXNzZWQgb24gdGhlIGRpc2N1c3Npb24gaW4gQ29NSS4gQWN0dWFsbHks
IGl0IGlzIDMwIGJpdHMgWUFORyBJRCwgYnV0IHRoYXTigJlzIGZvciBwdXJwb3NlcyB0byBiZSBj
b25zaXN0ZW50IHdpdGggdGhlIFlBTkcgaGFzaCBhbmQgSSBkb27igJl0IG1pbmQga2VlcGluZyBp
dCAzMCBiaXRzLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFy
Z2luLWJvdHRvbToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5
bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZiI+SWYgd2Ugd2FudCB0byBtaW5pbWl6ZSBib3RoIHRoZSBuZXR3b3JrIGFuIG5vZGUg
cmVzb3VyY2VzIHJlcXVpcmUgYnkgdGhpcyBhbGlhcyBtZWNoYW5pc20sIHdlIGNhbiBtYXAgYW4g
ZW50aXJlIG1vZHVsZSB0byB0aGlzIHNwYWNlLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPlRoaXMgY2FuIGJlIGltcGxlbWVudGVk
IGJ5IGEgc2luZ2xlIGludGVnZXIgcmVzb3VyY2UgKGUuZy4gbGVhZiBhbGxpYXNzZWRNb2R1bGUg
eyB0eXBlIHVpbnQzMiB9ICk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmIj5UaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRlcyBwZXIg
Q29NSSBzZXJ2ZXIgYWNjZXNzZWQuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPkl0IGlzIHBvc3NpYmxlIHRvIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoZSBhbGlh
cyBzcGFjZSBhbmQgdGhpcyBpcyB1cCB0byB0aGUgb3BlcmF0b3IuIEhvd2V2ZXIsIGlmIHlvdSBs
b2FkIHR3byBtb2R1bGVzIHdoaWNoIHJlZGVmaW5lIHRoZSBzYW1lIGFsaWFzIHlvdSB3aWxsIGxv
b3NlIHRoZSBiZW5lZml0IGZyb20gaXQuIE1heWJlIGl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRv
IGJlIGFibGUgdG8gc3BlY2lmeQ0KIHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMgZnJvbSBUSElT
IHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JZiB0aGUgL21nLzAgYWxpYXMgaXMgcmVzZXJ2
ZWQgZm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNpbXBseSBzYXlpbmc6
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5QT1NUIC9tZy8wPG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj57PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsmcXVvdDtzb3VyY2VfdXJpJnF1
b3Q7IDogJnF1b3Q7L21nL0JBQSZxdW90OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+fTxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj53aGVy
ZSAvbWcvQkFBIGlzIHRoZSBZQU5HIGlkIG9mIHRoZSBtb2R1bGUgKDIwIGJpdHMgbW9kdWxlIElE
ICYjNDM7IDEwIGJpdHMgc2V0IHRvIDApLiBUaGlzIHdheSwgdGhlIHNlcnZlciB3aWxsIGtub3c6
IE9LLCBnZXQgdGhlIGFsaWFzIG1hcHBpbmcgZnJvbSB0aGUgWUFORyBzY2hlbWUgb2YgbW9kdWxl
IHdpdGggSUQgPSBCIChhcyBkZWZpbmVkIGJ5IHRoZSBJRVRGKS4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T3IsIHlvdSBjYW4g
ZHluYW1pY2FsbHkgY29uZmlndXJlIHRoZSBtYXBwaW5nOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPlBPU1QgL21nLzA8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPns8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui
PiZuYnNwOzwvc3Bhbj5ZQU5HX2lkIDogYWxpYXMsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+WUFO
R19pZCA6IGFsaWFzLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PHNwYW4gY2xhc3M9
ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPllBTkdfaWQgOiBhbGlhczxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+fTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTox
Mi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10
b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SWYg
d2Ugd2FudCBhIG1vcmUgY29tcGxleCBidXQgbW9yZSBmbGV4aWJsZSBhbGlhc2VzIG1lY2hhbmlz
bSwgeW91ciBwcm9wb3NlZCBtYXAgb2YgKGFsbGlhcywgWUFORyBJRCkgc2VlbSB0aGUgc29sdXRp
b24uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZiI+SG93ZXZlciwgd2UgaGF2ZSB0byBjb25zaWRlciB0aGF0IHRoaXMgc3RydWN0dXJl
IGNhbiBiZSBhcyBsYXJnZSBhcyZuYnNwOzx1PjEyNTAgYnl0ZXMgcGVyIENvTUkgc2VydmVyIGFj
Y2Vzc2VkPC91PiZuYnNwO2lmIGxpbWl0ZWQgdG8gMjU2IGFsaWFzZXMuPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPlRoaXMgaXMgYXNzdW1pbmcgeW91IG5lZWQgYSBzZXBhcmF0ZSBtYXBw
aW5nIGZvciBlYWNoIHNlcnZlci4gSSB3b3VsZCBzdXBwb3NlIHRoYXQgaW4gYSBuZXR3b3JrIHlv
deKAmWxsIGhhdmUgYSBzaW5nbGUgYWxpYXMgbWFwcGluZyAobWF5YmUgdHdvPykgLSBhZnRlciBh
bGwsIHlvdeKAmXJlIHRyeWluZyB0byBvcHRpbWl6ZSB0aGUgbWFuYWdlbWVudCBvZiB5b3VyIGRl
dmljZXMgKHNlcnZlcnMpLiBTbywgdHlwaWNhbGx5DQogeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBk
ZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRo
YXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+QmVzdCw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFsZXhhbmRlcjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1hcmdpbi1ib3R0b206MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3Rl
IHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+
Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPHRh
YmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2Vs
bHBhZGRpbmc9IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29s
bGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8
dGQgd2lkdGg9IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJp
Z2h0OnNvbGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hl
aWdodDo0OS4wNXB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZiI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGln
bj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0
O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBw
dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5NaWNoZWwgVmVpbGxl
dHRlPGJyPg0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0
Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5Ucmls
bGlhbnQgSW5jLjxicj4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJlZj0i
bWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsi
PjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGlu
Yy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj48YSBocmVmPSJodHRwOi8vd3d3LnRy
aWxsaWFudGluYy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOnB1cnBs
ZSI+d3d3LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+
DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2tx
dW90ZT4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9i
bG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9i
b2R5Pg0KPC9odG1sPg0K

--_000_DM2PR0601MB7945552A1CE68AC4385717CFEBF0DM2PR0601MB794na_--

--_004_DM2PR0601MB7945552A1CE68AC4385717CFEBF0DM2PR0601MB794na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Mon, 08 Jun 2015 18:26:21 GMT";
	modification-date="Mon, 08 Jun 2015 18:26:21 GMT"
Content-ID: <image001.jpg@01D0A1F0.AD1EE350>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_DM2PR0601MB7945552A1CE68AC4385717CFEBF0DM2PR0601MB794na_--


From nobody Mon Jun  8 23:19:55 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8A50E1AD0C2; Mon,  8 Jun 2015 23:19:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FtCarx7xQCzn; Mon,  8 Jun 2015 23:19:44 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id A6BDC1A701A; Mon,  8 Jun 2015 23:19:43 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 88A5923204B; Tue,  9 Jun 2015 08:19:42 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id pp87MgN1PmjJ; Tue,  9 Jun 2015 08:19:39 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 8191823208B; Tue,  9 Jun 2015 08:19:39 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Vz4Vf8RMvZw6; Tue,  9 Jun 2015 08:19:39 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id 8113C23204B; Tue,  9 Jun 2015 08:19:38 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_42A9A744-9672-4BA2-916E-875E8603666B"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <DM2PR0601MB7945552A1CE68AC4385717CFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com>
Date: Tue, 9 Jun 2015 08:19:37 +0200
Message-Id: <5DE67167-9639-45EE-817D-6D02653E4409@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <855287F5-C374-4C79-973C-169CD0F90D9A@telecom-bretagne.eu> <CO2PR0601MB792CF17A97F6B962676F06CFEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <5A6EA7C1-C367-4B0D-AEE2-688368A7F495@telecom-bretagne.eu> <DM2PR0601MB7945E72AB41E337CBE7F0ABFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com> <4C83F3E9-BDB1-45A7-8ABB-5E45A1B8D361@telecom-bretagne.eu> <DM2PR0601MB7945552A1CE68AC4385717CFEBF0@DM2PR0601MB794.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/C022On_4IWxdmiUuf11JOw0PJxs>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 09 Jun 2015 06:19:52 -0000

--Apple-Mail=_42A9A744-9672-4BA2-916E-875E8603666B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Michel,

The goal of aliases is to be as compact as possible. Adding query =
parameter seems to me to counter the whole point. However, the select =
query parameter may have sense in other contexts.

> Module ID 1 to 63 are more compact (2 octets) and should be reserved =
to standardized modules.


Completely agree that module ID < 64 are special and should be treated =
as such. How do you chose the standard modules, which will have the =
privilege to be always compact, whereas all future modules will be =
taking 4 octets in the CBOR representation? Moreover, module ID < 4 are =
even MORE special, as they take 2 characters in the URI, and all the =
rest take 3+ characters.

Thats, you have module ID =3D 1, 2 and 3 are also quite special, and =
reserving one of them for an optimization mechanism (instead of =
allocating it to a specific module) doesn=E2=80=99t seem far fetched to =
me. What do you think?

Keeping the logic where module ID =3D 1, data node ID =3D 0 will provide =
the alias fast detection / configuration, module ID =3D 1, data node ID =
=3D 1023 (YANG id =3D 2047, URI =3D /mg/__) could be a meta-parent node =
for all aliases. This will work like a charm with your proposed long =
form / short form, e.g. if I have the following mapping:
{
  1 : 25601,
  2 : 25602,
  3 : 26225,
  4 : 50001
}

Then, you could get all these values in one go:

REQ: GET example.com/mg/ <http://example.com/mg/gB>__       (module ID =3D=
 1 / data node ID =3D 1023)

RES: 2.05 Content (Content-Format: application/cbor)
{
     1 : 'leafA1 value=E2=80=99
     2 : 'leafA2 value',
     3 : 'leafA3 value=E2=80=99,
     4 : 'leafB value=E2=80=99
}


When taking your example into account, you could also update selected =
leafs as in your example:

REQ: PUT example.com/mg
{
  2047 : {
    1 : 'leafA1 value',
    3 : 'leafA2 value=E2=80=99,=20
    4 : 'leafB value'
  }
}
=20
RES: 2.05 Ok

As always, it is sufficient to say that module ID =3D 1 is reserved for =
aliases and leave the specification to an external document, which seems =
to me the simplest solution.=20

Actually, due to the special nature of module ID =3D 1..3, I would =
expect them to be all reserved for some special modules, but of course I =
would not be the right person to decide which are these.=20

I feel that the structured YANG form (20 bits + 10 bits) + YANG id URI =
compression + ID long form / short form really allowed us to advance =
quite a lot from the YANG hash. Adding a reserved module ID would not =
shock me, and can cover interesting use cases. What do you think?

Best,
Alexander


> Le 8 juin 2015 =C3=A0 20:26, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> Hi Alexander
> =20
> We had some discussions lately about using the =E2=80=9Cselect=E2=80=9D =
query parameter with a CBOR content instead of a URI with a base64 data =
node ID.
> Did I understand correctly, Andy?
> =20
> I see multiple advantages to this approach:
> =C2=B7         we can select a list of data nodes instead of a single =
data node
> =C2=B7         we can use the full 32 bits of the data node ID =
(instead of 30 bits)
> =C2=B7         we don=E2=80=99t need to support two different =
representation of the data node IDs
> =20
> For example: (Using the IDs introduced earlier in the thread)
> =20
> To select leafA1:
> =20
>    REQ: GET example.com/mg?select =
<http://example.com/mg?select>(25602)
> =20
>    RES: 2.05 Content (Content-Format: application/cbor)
>    {
>      2 : " leafA1 value"
>    }
> =20
> To select leafA1, leafA2 and leafA3:
> =20
>    REQ: GET example.com/mg?select <http://example.com/mg?select>( [ =
25602, 3, 26625 ] )
> =20
>    RES: 2.05 Content (Content-Format: application/cbor)
>    {
>      2 : " leafA1 value"
>      3 : " leafA2 value ",
>      26625 : " leafA3 value "
>    }
> =20
> Notes:
> =C2=B7         In the first example, the select query parameter =
contains  0x196402
> =C2=B7         In the second example, the select query parameter =
contains  0x8319640203196801
> =C2=B7         Data node IDs within the list encoded using the short =
form inherit the module ID of the previous item.
> =C2=B7         Module ID 1 to 63 are more compact (2 octets) and =
should be reserved to standardized modules.
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]=20
> Sent: 8 juin 2015 12:00
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org; core@ietf.org
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> =20
> Le 8 juin 2015 =C3=A0 16:35, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander
> =20
> The proposed =E2=80=9Clong form, short form=E2=80=9D is incompatible =
with the concept of aliases since the short form ID space is the same as =
the proposed aliases ID space. We will have to choose one or the other. =
In the following example, IDs 1, 2, 3 is the short form within the =
module ID 25, not alias 1, 2, 3. =E2=80=9Clong form, short form=E2=80=9D =
add some extra overhead compared to aliases, however this approach have =
multiple advantages:
> =C2=B7         Allows compression of all modules, not just a small =
subset of IDs (20 or 256 IDs)
> =C2=B7         Do not require an initial handshake for aliases =
discovery or configuration
> =C2=B7         Can be implemented using the same simple rules as =
RESTconf
> =20
> =20
> Ok, I see what you mean. Indeed, there could be a way to have both =
aliases and the long form, short form, but maybe it becomes a little bit =
clumsy, and the goal is to avoid complexity.
> =20
> In your proposal, the module ID =3D 0 is reserved for the compression =
prefix, and I agree that this will be more generic than simply leaving =
it for the aliases.=20
> =20
> However, I would still consider that there are interesting cases where =
aliasing can be applied. There are two possibilities to reconcile them:
> 1) reserve data node ID < 24. Module ID=3D0 + data node IDs < 24 can =
then be used for the aliasing (if needed). The specification of this can =
be out of CoMI or with the simple mechanism I described in the previous =
mail.=20
> 2) reserve module ID =3D 1 (or /mg/g0) for aliasing. Maybe this would =
be the best solution, as it only increases the alias URI with 1 =
character compared to the initial proposal.=20
> =20
> I would go with 2), as it has the same merits of the aliases (can be =
standardized very simply, at no cost for devices), and is only based on =
reserving a module ID for this purpose. It keeps the possibility to use =
the compressed YANG id + long form / short form.=20
>=20
>=20
> =20
> REQ: GET example.com/mg/GQB <http://example.com/mg/GQB>
> =20
> RES: 2.05 Content (Content-Format: application/cbor)
> {
>   1 : {
>     2 : " leafA1 value",,
>     3 : " leafA2 value ",
>     26625 : " leafA3 value "
>   }
> }
> =20
> About the meta information such as the list of modules and the list =
for streams. This should be implemented using YANG modules , =
=E2=80=9Cietf-yang-library=E2=80=9D and =E2=80=9Cietf-restconf-monitoring=E2=
=80=9D or equivalent. We don=E2=80=99t need to create special behaviours =
or special query parameters to implement this meta data.
> =20
> http://www.netconfcentral.org/modules/ietf-yang-library/2014-09-26 =
<http://www.netconfcentral.org/modules/ietf-yang-library/2014-09-26>
> =20
> ietf-yang-library:modules/module/name
> ietf-yang-library:modules/module/revision
> ietf-yang-library:modules/module/schema
> ietf-yang-library:modules/module/namespace
> ietf-yang-library:modules/module/feature
> ietf-yang-library:modules/module/conformance
> ietf-yang-library:modules/module/submodule/name
> ietf-yang-library:modules/module/submodule/revision
> ietf-yang-library:modules/module/submodule/schema
> =20
> http://www.netconfcentral.org/modulereport/ietf-restconf-monitoring =
<http://www.netconfcentral.org/modulereport/ietf-restconf-monitoring>
> =20
> ietf-restconf-monitoring:restconf-state/capabilities/capability
> ietf-restconf-monitoring:restconf-state/streams/stream/name
> ietf-restconf-monitoring:restconf-state/streams/stream/description
> ietf-restconf-monitoring:restconf-state/streams/stream/replay-support
> =
ietf-restconf-monitoring:restconf-state/streams/stream/replay-log-creation=
-time
> ietf-restconf-monitoring:restconf-state/streams/stream/encoding/type
> ietf-restconf-monitoring:restconf-state/streams/stream/encoding/events
> =20
> Ok, great! Thanks for pointing this out - there is no need to reinvent =
the wheel.
> =20
> Best,
> Alexander
>=20
>=20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 7 juin 2015 05:21
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> That sound great! Having the short form (10 bits data node ID) and =
long form (20 bits module ID + 10 bits data node ID), can save quite a =
lot when dealing with more than isolated data items, as you point in =
your example.=20
> =20
> As I mentioned earlier, having your moduleID+0000000000 can be used as =
YANG id for the module, which can provide meta-information on the loaded =
module. For example, if you issue a request against that ID and receive =
Resource not found, then the module is not loaded (but this of course =
should not be the way to discover it). Is this useful? If there is need =
for module versioning, the YANG module ID can be used to obtain the =
versioning information. Having deterministic data node IDs can be used =
to have versions of the same module (e.g. adding new leafs, new =
containers, etc.) - removing things out will require new module ID.
> =20
> In addition to having reduced data requirements (in URIs and CBOR), =
having the fixed YANG module IDs helps locate some special resources.
> E.g. module ID:
>    aliasing : 18 bits =3D 0 + 00
>       full YANG module ID =3D AAAA (compressed to A)
>    YANG meta-data module: 18 bits =3D 0 + 01
>       full YANG module ID=3D AAAg0 (compressed to g0)
>    Reserved for future use: 18 bits =3D 0 + 10 and 18 bits =3D 0 + 11
> =20
> The YANG meta-data module can provide all necessary meta-information, =
e.g. mod.uri, the loaded modules, their versions, and so forth. This =
keeps the separation between aliasing and meta-information. Note, that =
the meta-module YANG scheme will be published with a normal assigned =
YANG module ID, which will be mapped to the /mg/g0, e.g. changing the =
meta-data a couple of years down the road is possible with or without =
versioning.
> =20
> I also don=E2=80=99t think it would be a good idea to have complex =
aliasing mechanisms, and this should be further discussed. It will be =
very useful for managed networks. The /mg/A resource should be kept as =
light as possible. For the moment I think there are only two necessary =
pieces of information that need to be given by it: hash-value of the =
contents of the mapping and URI to extract the full mapping. The mapping =
can be obtained from the meta-data (/mg/g0 or .well-known/core).  The =
simplest mechanism to be used is the following:=20
> =20
> 1) If no aliases are defined, then the client can POST a new alias =
mapping
>    1.a) the alias mapping expires after a timer (default value =3D 1h, =
which can be overridden by the client)
>    1.b) upon timer expiry, the alias mapping is deleted
>    1.c) the timer can be extended with a keep-alive POST from any =
client
> 2) An alias mapping cannot be altered or deleted by a client.=20
> =20
> The reasoning behind this is the following: A node becomes =
=E2=80=98managed=E2=80=99 by a client, and the client registers this. If =
a different client tries to POST new configuration it will receive a =
4.03 Forbidden.=20
> =20
> This actually makes configuring and implementing aliases really =
straightforward. Upon discovery of a node, a client can directly POST to =
/mg/A, and if it receives:
>    - "4.04 Not Found", then aliasing is not supported
>    - "4.03 Forbidden", the alias mapping is already defined (by =
someone else)
>    - "2.01 Created" - alias defined
>    - "2.04 Changed" - alias timer updated
> =20
> If the /mg/g0 is accepted as YANG meta-data module pointer, then the =
actual alias mapping can be retrieved from there.=20
> =20
> Best,
> Alexander
> =20
> =20
> =20
> =20
> Le 5 juin 2015 =C3=A0 23:43, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander and Hi Andy
> =20
> I thinks we can avoid the support of a complex aliases mechanism and =
still archive the same level of message compression.
> The solution consists of supporting two forms of data node identifier, =
the same way as RESTconf. (e.g. ietf-system:current-datetime vs. =
current-datetime)
> =20
> The long form will consist of the ID format proposed by Alexander  (2 =
reserved bits, 20 bits module ID, 10 bits data node ID).
> The short form will carry only the data node ID  (10 bits data node =
ID).
> The long form will be used only when needed.
> =20
> Let assume we have these two modules:
> =20
> module a {
> =20
>   container containerA {
>     leaf leafA1 { type string},
>     leaf leafA2 { type string}
>   }
> }
> =20
> module b {
>   import a { prefix a; }
> =20
>   augment "/a:containerA" {
>     leaf leafA3 { type string}
>   }
> }
> =20
> Let assume we have these assigned IDs:
> =20
> =20
> ID
> Full ID
> Base64
> module a
> 25
> =20
> =20
> container containerA
> 1
> 110010000000001 =3D 25601
> GQB
> leaf leafA1
> 2
> 110010000000010 =3D 25602
> GQC
> leaf leafA2
> 3
> 110010000000011 =3D 25602
> GQD
> module b
> 26
> =20
> =20
> leaf leafA3
> 1
> 110100000000001 =3D 26625
> GgB
> =20
> A GET can be implemented as follow:
> =20
> REQ: GET example.com/mg/GQB <http://example.com/mg/GQB>
> =20
> RES: 2.05 Content (Content-Format: application/cbor)
> {
>   1 : {
>     2 : " leafA1 value",
>     3 : " leafA2 value "
>     26625 : " leafA3 value "
>   }
> }
> =20
> A PUT can be implemented as follow:
> =20
> REQ: PUT example.com/mg <http://example.com/mg>
> {
>   25601 : {
>     2 : " leafA1 value",
>     3 : " leafA2 value "
>     26625 : " leafA3 value "
>   }
> }
> =20
> RES: 2.05 Ok
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 16:10
> To: Andy Bierman
> Cc: Michel Veillette; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Andy,
> =20
> You are right that if we start considering multiple clients, each of =
which trying to use its aliases the things become.. les optimal. And if =
no caution is taken - can spell trouble.
> =20
> The point is, your default behavior should be to use the normal ID. =
However, in some cases, you may decide that you=E2=80=99re going to be =
having quite a lot of exchanges with the same ID, so yes, you can =
redefine the alias mapping.=20
> =20
> However, you are right that we need to take care of eventual race =
conditions. Indeed, in 6TiSCH and other managed networks it may not =
happen (which alone is sufficient for me to have this =C2=AB golden =C2=BB=
 IDs be left out of the =C2=AB randomly allocated =C2=BB, or =C2=AB =
eternally locked to a specific ID =C2=BB resources).
> =20
> Having the /mg/A resource provide the meta-information can help solve =
a lot (all?) of the problems. (in my past mails I referred this as /mg/0 =
but I meant /mg/A, sorry)
> =20
> The first requirement for a client is to query the /mg/A resource.=20
> There, you can get the meta-data concerning the aliases, including the =
hash of the alias mapping, the mapping itself (if necessary), and the =
updater (identified by a token). I=E2=80=99m wondering if there could be =
added a validity of the mapping. A client can change the mapping ONLY if =
it is the last updater (hash+token match), or if the validity has =
expired. If the server has a way of keeping time it can track the =
validity itself. Otherwise, it can be a constant datetime after which =
the resource is considered expired and any client can update the =
resource.=20
> =20
> Just to be sure, I=E2=80=99m talking about clients, which are capable =
enough to keep track of some context about the servers it controls OR a =
client in a particular kind of network, which knows that some things are =
just expected to be there and there is no way for them to happer =
otherwise.=20
> =20
> *****************
> ** The default way of doing things should always be to use the normal =
IDs.** If you want to be optimal (in some way), get /mg/A, and if you =
understand it - use it. If there=E2=80=99s nothing, POST whatever you =
like, but be sure that you have enough resources to remember what =
you=E2=80=99re doing.=20
> *=20
> * If you want to set a different configuration in each of your 10M =
nodes, then well you should have the storage to remember all of them.
> *****************
> =20
> By the way, I was thinking of something quite interesting, which can =
come supplement the node ID aliasing. Actually, I think that the 20 bits =
+ 10 bits YANG id really opens a lot of perspectives (will try to write =
that up tomorrow).
> =20
> The major point is that when the data node ID =3D 0, the module ID can =
be used as a resource to obtain meta-information on the module. For =
example, its version. This way, if you update a YANG module with a new =
one, which only appends elements, you will not need to request a new =
managed ID. GET /mg/moduleID?keys=3Dversion (with data node ID=3D0) and =
you know what is your module really capable of.=20
> =20
> Also, the special place of /mg/A can actually become an entry point =
for most of the information related to CoMI (to be discussed.. I have no =
strong feelings on this). It can, for example, provide the mod.uri, and =
other information. The only information that remains truly necessary to =
be fixed in /.well-known/core is the entry point to the CoMI interface =
(e.g. /mg). Afterwards, everything can be determined from /mg/A with =
queries (/mg/A?keys=3Dmod.uri+alias.uri)
> =20
> Best,
> Alexander
> =20
> PS.
> As if data node aliasing is not enough=E2=80=A6 module ID aliasing =
(this one is really very low in my priorities and I=E2=80=99m mentioning =
it only for completeness):
> =20
> The first 12 bits take 2 URI characters and 2 bytes in CBOR. Having 10 =
bits for the data node ID leaves 2 interesting bits in the module ID =
part=E2=80=A6 So we can have module aliases as well (albeit only 3).
> =20
> That is, in URI encoding,=20
> 0x00000000-0x000003FF -> data node aliasing
> 0x00000400-0x000007FF -> aliased module 1
> 0x00000800-0x00000BFF -> aliased module 2
> 0x00000C00-0x00000BFF-> aliased module 3
> =20
> Implementation-wise, its really easy: upon request, if the module ID =3D=
 aliased module ID 1, replace the module ID part, so no need to map the =
entire module ID / data node ID space.=20
> =20
> But really, that much optimization? Even if it seems straightforward, =
I would like to see use cases that could benefit from this before =
actually considering it.
> =20
> =20
> =20
> Le 5 juin 2015 =C3=A0 20:55, Andy Bierman <andy@yumaworks.com =
<mailto:andy@yumaworks.com>> a =C3=A9crit :
> =20
>=20
>=20
>=20
>=20
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
> Hi Alexander
> =20
> I have some concerns about allowing CoMI client(s) the control of the =
list of aliases.
> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
> =20
> One possible solution is that each CoMI client send a list of (alias, =
data node ID) to the CoMI server. In this case, the CoMI client might =
receive an error if one or multiple of these aliases are already =
reserved.
> =20
> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
> =20
> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
> With this is mind, do you have any alternative solutions to propose?
> =20
> =20
> =20
> Does this approach allow each client to have a different set of =
aliases,
> so the server has to maintain a configured mapping for each client?
> This seems like a lot of overhead and NV-storage requirements
> on the server.
> =20
> Changing the schema identifiers based on which client is
> sending the request seems like a complicated design change
> from RESTCONF, NETCONF, or SNMP, where there is only
> 1 schema tree which is not dependent on the client identity.
> =20
> =20
> Andy
> =20
> =20
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 12:03
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> =20
> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander
> =20
> In your presentation at 6TiSCH, you propose the following data node ID =
structure.
> =20
> =E2=80=A2       32 bits YANG ID
> =E2=80=93      20 bits for module ID (assigned by IETF)
> =E2=80=93      10 bits for data node ID (generated deterministically)
> =20
> Based on this structure, we can reserve module ID zero for aliases.
> =20
> =20
> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
> =20
> =20
>=20
> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
> This approach require 4 bytes per CoMI server accessed.
> =20
> =20
> It is possible to map an entire module to the alias space and this is =
up to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
> =20
> If the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:
> POST /mg/0
> {
>  "source_uri" : "/mg/BAA"
> }
> =20
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
> =20
> Or, you can dynamically configure the mapping:
> POST /mg/0
> {
>   YANG_id : alias,
>   YANG_id : alias,
>   YANG_id : alias
> }
> =20
>=20
> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
> =20
> This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
> =20
> Best,
> Alexander
> =20
>=20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>

--Apple-Mail=_42A9A744-9672-4BA2-916E-875E8603666B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Michel,</div><div class=3D""><br =
class=3D""></div><div class=3D""><div class=3D"">The goal of aliases is =
to be as compact as possible. Adding query parameter seems to me to =
counter the whole point. However, the select query parameter may have =
sense in other contexts.</div></div><div class=3D""><br =
class=3D""></div><div class=3D""><blockquote type=3D"cite" class=3D""><div=
 class=3D"WordSection1" style=3D"page: WordSection1;"><div class=3D"" =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;"><span class=3D"" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);">Module ID 1 to 63 are more compact (2 octets) and =
should be reserved to standardized =
modules.</span></div></div></blockquote></div><div class=3D""><br =
class=3D""></div><div class=3D"">Completely agree that module ID &lt; 64 =
are special and should be treated as such. How do you chose the standard =
modules, which will have the privilege to be always compact, whereas all =
future modules will be taking 4 octets in the CBOR representation? =
Moreover, module ID &lt; 4 are even MORE special, as they take 2 =
characters in the URI, and all the rest take 3+ characters.</div><div =
class=3D""><br class=3D""></div><div class=3D"">Thats, you have module =
ID =3D 1, 2 and 3 are also quite special, and reserving one of them for =
an optimization mechanism (instead of allocating it to a specific =
module) doesn=E2=80=99t seem far fetched to me. What do you =
think?</div><div class=3D""><br class=3D""></div><div class=3D"">Keeping =
the logic where module ID =3D 1, data node ID =3D 0 will provide the =
alias fast detection / configuration, module ID =3D 1, data node ID =3D =
1023 (YANG id =3D 2047, URI =3D /mg/__) could be a meta-parent node for =
all aliases. This will work like a charm with your proposed long form / =
short form, e.g. if I have the following mapping:</div><div =
class=3D"">{</div><div class=3D"">&nbsp; 1 : 25601,</div><div =
class=3D"">&nbsp; 2 : 25602,</div><div class=3D"">&nbsp; 3 : =
26225,</div><div class=3D"">&nbsp; 4 : 50001</div><div =
class=3D"">}</div><div class=3D""><br class=3D""></div><div =
class=3D"">Then, you could get all these values in one go:</div><div =
class=3D""><br class=3D""></div><div class=3D"">REQ: GET&nbsp;<a =
href=3D"http://example.com/mg/gB" class=3D"">example.com/mg/</a>__&nbsp; =
&nbsp; &nbsp; &nbsp;(module ID =3D 1 / data node ID =3D&nbsp;1023)<br =
class=3D""><br class=3D"">RES: 2.05 Content (Content-Format: =
application/cbor)<br class=3D"">{<br class=3D"">&nbsp; &nbsp; &nbsp;1 : =
'leafA1 value=E2=80=99<br class=3D"">&nbsp; &nbsp; &nbsp;2 : 'leafA2 =
value',<br class=3D"">&nbsp; &nbsp; &nbsp;3 : 'leafA3 =
value=E2=80=99,</div><div class=3D"">&nbsp; &nbsp; &nbsp;4 : 'leafB =
value=E2=80=99<br class=3D"">}</div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div class=3D"">When=
 taking your example into account, you could also update selected leafs =
as in your example:</div><div class=3D""><br class=3D""></div><div =
class=3D"">REQ: PUT&nbsp;<a href=3D"http://example.com/mg" =
class=3D"">example.com/mg</a><br class=3D"">{<br class=3D"">&nbsp; 2047 =
: {<br class=3D"">&nbsp; &nbsp; 1 : 'leafA1 value',<br class=3D"">&nbsp; =
&nbsp; 3 : 'leafA2 value=E2=80=99,&nbsp;<br class=3D"">&nbsp; &nbsp; 4 : =
'leafB&nbsp;value'</div><div class=3D"">&nbsp;&nbsp;}<br class=3D"">}<br =
class=3D"">&nbsp;<br class=3D"">RES: 2.05 Ok</div><div class=3D""><br =
class=3D""></div><div class=3D"">As always, it is sufficient to say that =
module ID =3D 1 is reserved for aliases and leave the specification to =
an external document, which seems to me the simplest =
solution.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">Actually, due to the special nature of module ID =3D 1..3, I =
would expect them to be all reserved for some special modules, but of =
course I would not be the right person to decide which are =
these.&nbsp;</div><div class=3D""><br class=3D""></div><div class=3D"">I =
feel that the structured YANG form (20 bits + 10 bits) + YANG id URI =
compression + ID long form / short form really allowed us to advance =
quite a lot from the YANG hash. Adding a reserved module ID would not =
shock me, and can cover interesting use cases. What do you =
think?</div><div class=3D""><br class=3D""></div><div =
class=3D"">Best,</div><div class=3D"">Alexander</div><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div><blockquote =
type=3D"cite" class=3D""><div class=3D"">Le 8 juin 2015 =C3=A0 20:26, =
Michel Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit =
:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Alexander<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">We had some discussions =
lately about using the =E2=80=9Cselect=E2=80=9D query parameter with a =
CBOR content instead of a URI with a base64 data node ID.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Did I understand correctly, Andy?<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">I see multiple =
advantages to this approach:<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">we can select a list of data nodes instead =
of a single data node<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">we can use the full 32 bits of the data =
node ID (instead of 30 bits)<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">we don=E2=80=99t need to support two =
different representation of the data node IDs<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">For example: (Using the =
IDs introduced earlier in the thread)<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">To select<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">leafA1:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp; REQ: =
GET<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" =
class=3D"">example.com/mg?select</a>(</span><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">25602)<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"FR-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp; RES: 2.05 Content (Content-Format: =
application/cbor)</span><span lang=3D"FR-CA" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">{</span><o:p class=3D""></o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp; &nbsp; 2 : " leafA1 value"</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp; }</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">To select<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">leafA1, leafA2 and leafA3:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp; REQ: =
GET<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" class=3D"">example.com/mg?select</a>( =
[<span class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">25602, 3, 26625 ] )<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"FR-CA" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp; RES: 2.05 Content (Content-Format: =
application/cbor)</span><span lang=3D"FR-CA" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">{</span><o:p class=3D""></o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp; &nbsp; 2 : " leafA1 value"</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp; &nbsp; 3 : " leafA2 value =
"</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">,</span><o:p class=3D""></o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp; &nbsp;26625 : " leafA3 value "<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp; }</span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div></div></div></blockquote><blockquote =
type=3D"cite" class=3D""><div class=3D""><div class=3D"WordSection1" =
style=3D"page: WordSection1; font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Notes:<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif; text-indent: -0.25in;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Symbol; color: rgb(31, 73, 125);" class=3D""><span =
class=3D"">=C2=B7<span style=3D"font-style: normal; font-variant: =
normal; font-weight: normal; font-size: 7pt; line-height: normal; =
font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">In the first example, the select query =
parameter contains &nbsp;0x196402<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">In the second example, the select query =
parameter contains &nbsp;0x8319640203196801</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Data node IDs within the list encoded =
using the short form inherit the module ID of the previous item.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif; =
text-indent: -0.25in;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Symbol; color: rgb(31, 73, 125);" class=3D""><span =
class=3D"">=C2=B7<span style=3D"font-style: normal; font-variant: =
normal; font-weight: normal; font-size: 7pt; line-height: normal; =
font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Module ID 1 to 63 are more compact (2 =
octets) and should be reserved to standardized modules.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div class=3D""><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><span =
id=3D"cid:image001.jpg@01D0A1F0.AD1EE350">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></span></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt 8.1pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.trilliantinc.com/" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span><span style=3D"font-size:=
 9pt; font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div></td></tr></tbody></table><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
class=3D""><div style=3D"border-style: solid none none; =
border-top-color: rgb(225, 225, 225); border-top-width: 1pt; padding: =
3pt 0in 0in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">From:</span></b><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>Alexander =
Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"Apple-converted-space">&nbsp;</span>8 =
juin 2015 12:00<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Andy Bierman; <a =
href=3D"mailto:6tisch@ietf.org" class=3D"">6tisch@ietf.org</a>; <a =
href=3D"mailto:core@ietf.org" class=3D"">core@ietf.org</a><br =
class=3D""><b class=3D"">Subject:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases<o:p class=3D""></o:p></span></div></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Hi Michel,<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">Le 8 =
juin 2015 =C3=A0 16:35, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">Hi =
Alexander</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The proposed =E2=80=9Clong form, short =
form=E2=80=9D is incompatible with the concept of aliases since the =
short form ID space is the same as the proposed aliases ID space. We =
will have to choose one or the other. In the following example, IDs 1, =
2, 3 is the short form within the module ID 25, not alias 1, 2, 3. =
=E2=80=9Clong form, short form=E2=80=9D add some extra overhead compared =
to aliases, however this approach have multiple advantages:</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif; text-indent: -0.25in;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Symbol; color: =
rgb(31, 73, 125);" class=3D"">=C2=B7</span><span style=3D"font-size: =
7pt; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Allows compression of all modules, not =
just a small subset of IDs (20 or 256 IDs)</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif; text-indent: -0.25in;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Symbol; color: =
rgb(31, 73, 125);" class=3D"">=C2=B7</span><span style=3D"font-size: =
7pt; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Do not require an initial handshake for =
aliases discovery or configuration</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif; text-indent: -0.25in;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Symbol; color: =
rgb(31, 73, 125);" class=3D"">=C2=B7</span><span style=3D"font-size: =
7pt; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Can be implemented using the same simple =
rules as RESTconf</span><o:p =
class=3D""></o:p></div></div></div></blockquote><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Ok, I see what you =
mean. Indeed, there could be a way to have both aliases and the long =
form, short form, but maybe it becomes a little bit clumsy, and the goal =
is to avoid complexity.<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">In your proposal, the module ID =3D 0 is reserved for =
the compression prefix, and I agree that this will be more generic than =
simply leaving it for the aliases.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">However, I would still consider that =
there are interesting cases where aliasing can be applied. There are two =
possibilities to reconcile them:<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">1) reserve data node =
ID &lt; 24. Module ID=3D0 + data node IDs &lt; 24 can then be used for =
the aliasing (if needed). The specification of this can be out of CoMI =
or with the simple mechanism I described in the previous mail.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">2) reserve module ID =3D 1 (or /mg/g0) for aliasing. Maybe =
this would be the best solution, as it only increases the alias URI with =
1 character compared to the initial proposal.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">I would go with 2), as it has the same =
merits of the aliases (can be standardized very simply, at no cost for =
devices), and is only based on reserving a module ID for this purpose. =
It keeps the possibility to use the compressed YANG id + long form / =
short form.&nbsp;<o:p class=3D""></o:p></div></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/GQB" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg/GQB</span></a></span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">RES: 2.05 =
Content (Content-Format: application/cbor)</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">{</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp; 1 : {</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 2 : =
" leafA1 value",</span><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">,</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 3 : =
" leafA2 value "</span><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">,</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; =
26625 : " leafA3 value "</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; }</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">About the meta =
information such as the list of modules and the list for streams. This =
should be implemented using YANG modules , =E2=80=9Cietf-yang-library=E2=80=
=9D and =E2=80=9Cietf-restconf-monitoring=E2=80=9D or equivalent. We =
don=E2=80=99t need to create special behaviours or special query =
parameters to implement this meta data.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.netconfcentral.org/modules/ietf-yang-library/2014-09-26=
" style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">http://www.netconfcentral.org/modules/ietf-yang-library/2014-09=
-26</span></a></span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/name</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><u class=3D""><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/revision</span></u><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/schema</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/namespace</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/feature</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/conformance</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/submodule/name</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/submodule/revision</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-yang-library:modules/module/submodule/schema</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.netconfcentral.org/modulereport/ietf-restconf-monitorin=
g" style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">http://www.netconfcentral.org/modulereport/ietf-restconf-monito=
ring</span></a></span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/capabilities/capability=
</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/name</sp=
an><o:p class=3D""></o:p></div></div><div class=3D""><div style=3D"margin:=
 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/descript=
ion</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/replay-s=
upport</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/replay-l=
og-creation-time</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/encoding=
/type</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ietf-restconf-monitoring:restconf-state/streams/stream/encoding=
/events</span><o:p class=3D""></o:p></div></div></div></blockquote><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Ok, great! Thanks for pointing this out - there is no =
need to reinvent the wheel.<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Best,<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Alexander<o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><br =
class=3D""><br class=3D""><o:p class=3D""></o:p></div><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></div></td></tr></tbody></table><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(225, 225, 225); border-top-width: =
1pt; padding: 3pt 0in 0in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">From:</span></b><span class=3D"apple-converted-space"><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span></span><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Alexander Pelov [<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>7 =
juin 2015 05:21<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">6tisch@ietf.org</a>;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">core@ietf.org</a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Hi Michel,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">That sound great! Having the short form =
(10 bits data node ID) and long form (20 bits module ID + 10 bits data =
node ID), can save quite a lot when dealing with more than isolated data =
items, as you point in your example.&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">As I mentioned earlier, having your =
moduleID+0000000000 can be used as YANG id for the module, which can =
provide meta-information on the loaded module. For example, if you issue =
a request against that ID and receive Resource not found, then the =
module is not loaded (but this of course should not be the way to =
discover it). Is this useful? If there is need for module versioning, =
the YANG module ID can be used to obtain the versioning information. =
Having deterministic data node IDs can be used to have versions of the =
same module (e.g. adding new leafs, new containers, etc.) - removing =
things out will require new module ID.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">In addition to having reduced data =
requirements (in URIs and CBOR), having the fixed YANG module IDs helps =
locate some special resources.<o:p class=3D""></o:p></div></div></div><div=
 class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">E.g. =
module ID:<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp; &nbsp;aliasing =
: 18 bits =3D 0 + 00<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">&nbsp;=
 &nbsp; &nbsp; full YANG module ID =3D AAAA (compressed to A)<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; &nbsp;YANG meta-data module: 18 =
bits =3D 0 + 01<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">&nbsp;=
 &nbsp; &nbsp; full YANG module ID=3D AAAg0 (compressed to g0)<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; &nbsp;Reserved for future use: 18 =
bits =3D 0 + 10 and 18 bits =3D 0 + 11<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">The YANG meta-data module can provide all =
necessary meta-information, e.g. mod.uri, the loaded modules, their =
versions, and so forth. This keeps the separation between aliasing and =
meta-information. Note, that the meta-module YANG scheme will be =
published with a normal assigned YANG module ID, which will be mapped to =
the /mg/g0, e.g. changing the meta-data a couple of years down the road =
is possible with or without versioning.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">I also don=E2=80=99t think it would be a =
good idea to have complex aliasing mechanisms, and this should be =
further discussed. It will be very useful for managed networks. The =
/mg/A resource should be kept as light as possible. For the moment I =
think there are only two necessary pieces of information that need to be =
given by it: hash-value of the contents of the mapping and URI to =
extract the full mapping. The mapping can be obtained from the meta-data =
(/mg/g0 or .well-known/core). &nbsp;The simplest mechanism to be used is =
the following:&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">1) =
If no aliases are defined, then the client can POST a new alias =
mapping<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp; &nbsp;1.a) the =
alias mapping expires after a timer (default value =3D 1h, which can be =
overridden by the client)<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">&nbsp;=
 &nbsp;1.b) upon timer expiry, the alias mapping is deleted<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; &nbsp;1.c) the timer can be =
extended with a keep-alive POST from any client<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">2) An alias mapping cannot be altered or =
deleted by a client.&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">The =
reasoning behind this is the following: A node becomes =E2=80=98managed=E2=
=80=99 by a client, and the client registers this. If a different client =
tries to POST new configuration it will receive a 4.03 =
Forbidden.&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">This =
actually makes configuring and implementing aliases really =
straightforward. Upon discovery of a node, a client can directly POST to =
/mg/A, and if it receives:<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">&nbsp;=
 &nbsp;- "4.04 Not Found", then aliasing is not supported<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; &nbsp;- "4.03 Forbidden", the =
alias mapping is already defined (by someone else)<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; &nbsp;- "2.01 Created" - alias =
defined<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp; &nbsp;- "2.04 =
Changed" - alias timer updated<o:p class=3D""></o:p></div></div></div><div=
 class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">If =
the /mg/g0 is accepted as YANG meta-data module pointer, then the actual =
alias mapping can be retrieved from there.&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Best,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Alexander<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">Le 5 =
juin 2015 =C3=A0 23:43, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
purple;" class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; a =
=C3=A9crit :<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Alexander and Hi Andy</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">I thinks we can avoid the support of a =
complex aliases mechanism and still archive the same level of message =
compression.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The solution consists of supporting two =
forms of data node identifier, the same way as RESTconf. (e.g. =
ietf-system:current-datetime vs. current-datetime)</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The long form will consist of the ID =
format proposed by Alexander &nbsp;(2 reserved bits, 20 bits module ID, =
10 bits data node ID).</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The short form will carry only the data =
node ID &nbsp;(10 bits data node ID).</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">The=
 long form will be used only when needed.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Let assume we have these two =
modules:</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">module a {</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; container containerA {</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; leaf leafA1 { type =
string},</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp; leaf leafA2 { type string}</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; }</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">module b {</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; import a { prefix a; }</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; augment "/a:containerA" =
{</span><o:p class=3D""></o:p></div></div></div><div style=3D"margin-left:=
 0.5in;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; leaf =
leafA3 { type string}</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp; }</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">}</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Let assume we have these assigned =
IDs:</span><o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><table class=3D"MsoNormalTable" =
border=3D"0" cellspacing=3D"0" cellpadding=3D"0" style=3D"margin-left: =
30.2pt; border-collapse: collapse;"><tbody class=3D""><tr class=3D""><td =
width=3D"191" valign=3D"top" style=3D"width: 143.6pt; border-style: =
solid; border-color: rgb(153, 153, 153) rgb(153, 153, 153) rgb(102, 102, =
102); border-width: 1pt 1pt 1.5pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></b><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"48" valign=3D"top" =
style=3D"width: 0.5in; border-style: solid solid solid none; =
border-top-color: rgb(153, 153, 153); border-top-width: 1pt; =
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 1.5pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">ID</span></b><o:p class=3D""></o:p></div></div></div></td><td =
width=3D"228" valign=3D"top" style=3D"width: 171pt; border-style: solid =
solid solid none; border-top-color: rgb(153, 153, 153); =
border-top-width: 1pt; border-bottom-color: rgb(102, 102, 102); =
border-bottom-width: 1.5pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Full ID</span></b><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: solid solid solid none; =
border-top-color: rgb(153, 153, 153); border-top-width: 1pt; =
border-bottom-color: rgb(102, 102, 102); border-bottom-width: 1.5pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Base64</span></b><o:p =
class=3D""></o:p></div></div></div></td></tr><tr class=3D""><td =
width=3D"191" valign=3D"top" style=3D"width: 143.6pt; border-style: none =
solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">module a</span></b><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"48" valign=3D"top" =
style=3D"width: 0.5in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">25</span><o:p class=3D""></o:p></div></div></div></td><td =
width=3D"228" valign=3D"top" style=3D"width: 171pt; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></td></tr><tr class=3D""><td =
width=3D"191" valign=3D"top" style=3D"width: 143.6pt; border-style: none =
solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">container =
containerA</span></b><o:p class=3D""></o:p></div></div></div></td><td =
width=3D"48" valign=3D"top" style=3D"width: 0.5in; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">1</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">110010000000001 =3D 25601</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">GQB</span><o:p class=3D""></o:p></div></div></div></td></tr><tr=
 class=3D""><td width=3D"191" valign=3D"top" style=3D"width: 143.6pt; =
border-style: none solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">leaf =
leafA1</span></b><o:p class=3D""></o:p></div></div></div></td><td =
width=3D"48" valign=3D"top" style=3D"width: 0.5in; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">2</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">110010000000010 =3D 25602</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">GQC</span><o:p class=3D""></o:p></div></div></div></td></tr><tr=
 class=3D""><td width=3D"191" valign=3D"top" style=3D"width: 143.6pt; =
border-style: none solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">leaf =
leafA2</span></b><o:p class=3D""></o:p></div></div></div></td><td =
width=3D"48" valign=3D"top" style=3D"width: 0.5in; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">3</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">110010000000011 =3D 25602</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">GQD</span><o:p class=3D""></o:p></div></div></div></td></tr><tr=
 class=3D""><td width=3D"191" valign=3D"top" style=3D"width: 143.6pt; =
border-style: none solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">module b</span></b><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"48" valign=3D"top" =
style=3D"width: 0.5in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">26</span><o:p class=3D""></o:p></div></div></div></td><td =
width=3D"228" valign=3D"top" style=3D"width: 171pt; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></td></tr><tr class=3D""><td =
width=3D"191" valign=3D"top" style=3D"width: 143.6pt; border-style: none =
solid solid; border-right-color: rgb(153, 153, 153); =
border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, =
153, 153); border-right-width: 1pt; border-bottom-width: 1pt; =
border-left-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">leaf =
leafA3</span></b><o:p class=3D""></o:p></div></div></div></td><td =
width=3D"48" valign=3D"top" style=3D"width: 0.5in; border-style: none =
solid solid none; border-bottom-color: rgb(153, 153, 153); =
border-bottom-width: 1pt; border-right-color: rgb(153, 153, 153); =
border-right-width: 1pt; padding: 0in 5.4pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">1</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"228" valign=3D"top" =
style=3D"width: 171pt; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">110100000000001 =3D 26625</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"96" valign=3D"top" =
style=3D"width: 1in; border-style: none solid solid none; =
border-bottom-color: rgb(153, 153, 153); border-bottom-width: 1pt; =
border-right-color: rgb(153, 153, 153); border-right-width: 1pt; =
padding: 0in 5.4pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">GgB</span><o:p =
class=3D""></o:p></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">A =
GET can be implemented as follow:</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">REQ: GET<span class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/GQB" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg/GQB</span></a></span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">RES: 2.05 Content =
(Content-Format: application/cbor)</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">{</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; 1 : {</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 2 : " leafA1 =
value",</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp; 3 : " leafA2 value "</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 26625 : " leafA3 value =
"</span><o:p class=3D""></o:p></div></div></div><div style=3D"margin-left:=
 0.5in;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp; }</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">A PUT can be implemented as =
follow:</span><o:p class=3D""></o:p></div></div></div><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: PUT<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg" style=3D"color: purple; text-decoration: =
underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg</span></a></span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">{</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp; 25601 : {</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 2 : " leafA1 =
value",</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp; 3 : " leafA2 value "</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;&nbsp;&nbsp; 26625 : " leafA3 value =
"</span><o:p class=3D""></o:p></div></div></div><div style=3D"margin-left:=
 0.5in;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><span lang=3D"FR-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">}</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">RES: 2.05 Ok</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"FR-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"FR-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div =
style=3D"border-style: solid none none; border-top-color: rgb(225, 225, =
225); border-top-width: 1pt; padding: 3pt 0in 0in;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">From:</span></b><span =
class=3D"apple-converted-space"><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span></span><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">Alexander Pelov [<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
purple;" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</span></a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 =
juin 2015 16:10<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman<br class=3D""><b=
 class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">6tisch@ietf.org</span></a>;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><o:p class=3D""></o:p></div></div></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Hi Andy,<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">You are right that if we start considering multiple clients, =
each of which trying to use its aliases the things become.. les optimal. =
And if no caution is taken - can spell trouble.<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">The point is, your default behavior should be to use the =
normal ID. However, in some cases, you may decide that you=E2=80=99re =
going to be having quite a lot of exchanges with the same ID, so yes, =
you can redefine the alias mapping.&nbsp;<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">However, you are right that we need to take care of eventual =
race conditions. Indeed, in 6TiSCH and other managed networks it may not =
happen (which alone is sufficient for me to have this =
=C2=AB&nbsp;golden&nbsp;=C2=BB IDs be left out of the =C2=AB randomly =
allocated&nbsp;=C2=BB, or =C2=AB eternally locked to a specific ID =C2=BB =
resources).<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Having the /mg/A resource provide the meta-information can =
help solve a lot (all?) of the problems. (in my past mails I referred =
this as /mg/0 but I meant /mg/A, sorry)<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">The first requirement for a client is to query the /mg/A =
resource.&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">There, you can get the meta-data concerning the aliases, =
including the hash of the alias mapping, the mapping itself (if =
necessary), and the updater (identified by a token). I=E2=80=99m =
wondering if there could be added a validity of the mapping. A client =
can change the mapping ONLY if it is the last updater (hash+token =
match), or if the validity has expired. If the server has a way of =
keeping time it can track the validity itself. Otherwise, it can be a =
constant datetime after which the resource is considered expired and any =
client can update the resource.&nbsp;<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Just to be sure, I=E2=80=99m talking about clients, which are =
capable enough to keep track of some context about the servers it =
controls OR a client in a particular kind of network, which knows that =
some things are just expected to be there and there is no way for them =
to happer otherwise.&nbsp;<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">*****************<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">** =
The default way of doing things should always be to use the normal =
IDs.** If you want to be optimal (in some way), get /mg/A, and if you =
understand it - use it. If there=E2=80=99s nothing, POST whatever you =
like, but be sure that you have enough resources to remember what =
you=E2=80=99re doing.&nbsp;<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">*&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">* If you want to set a different configuration in each of =
your 10M nodes, then well you should have the storage to remember all of =
them.<o:p class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">*****************<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">By the way, I was thinking of something quite interesting, =
which can come supplement the node ID aliasing. Actually, I think that =
the 20 bits + 10 bits YANG id really opens a lot of perspectives (will =
try to write that up tomorrow).<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">The major point is that when the data node ID =3D 0, the =
module ID can be used as a resource to obtain meta-information on the =
module. For example, its version. This way, if you update a YANG module =
with a new one, which only appends elements, you will not need to =
request a new managed ID. GET /mg/moduleID?keys=3Dversion (with data =
node ID=3D0) and you know what is your module really capable =
of.&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Also, the special place of /mg/A can actually become an entry =
point for most of the information related to CoMI (to be discussed.. I =
have no strong feelings on this). It can, for example, provide the =
mod.uri, and other information. The only information that remains truly =
necessary to be fixed in /.well-known/core is the entry point to the =
CoMI interface (e.g. /mg). Afterwards, everything can be determined from =
/mg/A with queries (/mg/A?keys=3Dmod.uri+alias.uri)<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Best,<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Alexander<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">PS.<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">As if data node aliasing is not enough=E2=80=A6 module ID =
aliasing (this one is really very low in my priorities and I=E2=80=99m =
mentioning it only for completeness):<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">The first 12 bits take 2 URI characters and 2 bytes in CBOR. =
Having 10 bits for the data node ID leaves 2 interesting bits in the =
module ID part=E2=80=A6 So we can have module aliases as well (albeit =
only 3).<o:p class=3D""></o:p></div></div></div></div><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">That is, in URI encoding,&nbsp;<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000000-0x000003FF -&gt; data node aliasing<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000400-0x000007FF -&gt; aliased module 1<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000800-0x00000BFF -&gt; aliased module 2<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">0x00000C00-0x00000BFF-&gt; aliased module 3<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Implementation-wise, its really easy: upon request, if the =
module ID =3D aliased module ID 1, replace the module ID part, so no =
need to map the entire module ID / data node ID space.&nbsp;<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">But really, that much optimization? Even if it seems =
straightforward, I would like to see use cases that could benefit from =
this before actually considering it.<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Le 5 juin 2015 =C3=A0 20:55, Andy Bierman =
&lt;<a href=3D"mailto:andy@yumaworks.com" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">andy@yumaworks.com</span></a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><br class=3D""><br =
class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette<span =
class=3D"apple-converted-space">&nbsp;</span>&lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt;<span =
class=3D"apple-converted-space">&nbsp;</span>wrote:</span><o:p =
class=3D""></o:p></div></div></div><blockquote style=3D"border-style: =
none none none solid; border-left-color: rgb(204, 204, 204); =
border-left-width: 1pt; padding: 0in 0in 0in 6pt; margin: 5pt 0in 5pt =
4.8pt;" class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Alexander</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">I have some concerns about allowing CoMI =
client(s) the control of the list of aliases.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">This approach work fine for the first CoMI application (e.g. =
6TiSCH) but what do we do with the subsequent CoMI =
application?</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">One=
 possible solution is that each CoMI client send a list of (alias, data =
node ID) to the CoMI server. In this case, the CoMI client might receive =
an error if one or multiple of these aliases are already =
reserved.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">A =
second possible solution is that each CoMI client send a list of (data =
node ID) and get a list of (alias, data node ID) from the CoMI server. =
In this case, CoMI clients will have to deal with a mix population of =
aliases.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">The=
 proposed solution need to scale to a multi-vendors, multiple =
applications environment.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">With this is mind, do you have any alternative solutions to =
propose?</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div></div><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">Does this approach allow each client to have a =
different set of aliases,</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">so the server has to maintain a configured mapping for each =
client?</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">This seems like a lot of overhead and NV-storage =
requirements</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">on the server.</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div></div><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">Changing the schema identifiers based on which =
client is</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">sending the request seems like a complicated =
design change</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">from RESTCONF, NETCONF, or SNMP, where there is =
only</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">1 schema tree which is not dependent on the =
client identity.</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div></div><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">Andy</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div></div><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Helvetica, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div></div><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Helvetica, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><blockquote =
style=3D"border-style: none none none solid; border-left-color: rgb(204, =
204, 204); border-left-width: 1pt; padding: 0in 0in 0in 6pt; margin: 5pt =
0in 5pt 4.8pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" width=3D"717" style=3D"width: 537.75pt; =
border-collapse: collapse;"><tbody class=3D""><tr style=3D"height: =
49.05pt;" class=3D""><td width=3D"137" style=3D"width: 103.1pt; =
border-style: none solid none none; border-right-color: windowtext; =
border-right-width: 1pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div =
style=3D"border-style: solid none none; border-top-color: rgb(225, 225, =
225); border-top-width: 1pt; padding: 3pt 0in 0in;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">From:</span></b><span =
class=3D"apple-converted-space"><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span></span><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">Alexander Pelov =
[mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: purple;" =
class=3D"">alexander.pelov@telecom-bretagne.eu</span></a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 =
juin 2015 12:03<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
purple;" class=3D"">6tisch@ietf.org</span></a>;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" target=3D"_blank" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><o:p class=3D""></o:p></div></div></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Hi Michel,<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Le 5 juin 2015 =C3=A0 17:17, Michel =
Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: purple;" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; a =C3=A9crit =
:<o:p class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Hi=
 Alexander</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">In=
 your presentation at 6TiSCH, you propose the following data node ID =
structure.</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><table class=3D"MsoNormalTable" =
border=3D"0" cellspacing=3D"0" cellpadding=3D"0" style=3D"border-collapse:=
 collapse;"><tbody class=3D""><tr class=3D""><td width=3D"623" =
valign=3D"top" style=3D"width: 467.5pt; border: 1pt solid windowtext; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=A2</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">32 bits YANG ID</span><o:p =
class=3D""></o:p></div></div></div></div><div style=3D"margin-left: =
1in;" class=3D""><div class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span lang=3D"EN-US"=
 style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">20 bits for module ID (assigned by IETF)</span><o:p =
class=3D""></o:p></div></div></div></div><div style=3D"margin-left: =
1in;" class=3D""><div class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span lang=3D"EN-US"=
 style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">10 bits for data node ID (generated =
deterministically)</span><o:p =
class=3D""></o:p></div></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Based on this structure, we can reserve&nbsp;</span><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">module ID zero for aliases.</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">I was just summarizing what was discussed on the discussion =
in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=99s for =
purposes to be consistent with the YANG hash and I don=E2=80=99t mind =
keeping it 30 bits.<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;">&nbsp;<o:p =
class=3D""></o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">If we want to minimize both the network an node =
resources require by this alias mechanism, we can map an entire module =
to this space.</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">This can be implemented by a single =
integer resource (e.g. leaf alliassedModule { type uint32 } )</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">This approach require 4 bytes per CoMI server =
accessed.</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">It is possible to map an entire module to the alias space and =
this is up to the operator. However, if you load two modules which =
redefine the same alias you will loose the benefit from it. Maybe it =
would be interesting to be able to specify that you want the aliases =
from THIS specific module to be used.<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">If the /mg/0 alias is reserved for managing the aliases, this =
could be simply saying:<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">POST /mg/0<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">{<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;"source_uri" : "/mg/BAA"<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">}<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">where /mg/BAA is the YANG id of the module (20 bits module ID =
+ 10 bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Or, you can dynamically configure the mapping:<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">POST /mg/0<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">{<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias,<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias,<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span>YANG_id : alias<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">}<o:p =
class=3D""></o:p></div></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin: 0in 0in 12pt; font-size: 12pt; font-family: 'Times New =
Roman', serif;">&nbsp;<o:p class=3D""></o:p></p><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">If we want a more =
complex but more flexible aliases mechanism, your proposed map of =
(allias, YANG ID) seem the solution.</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">However, we have to consider that this structure =
can be as large as&nbsp;<u class=3D"">1250 bytes per CoMI server =
accessed</u>&nbsp;if limited to 256 aliases.</span><o:p =
class=3D""></o:p></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">This is assuming you need a separate mapping for each server. =
I would suppose that in a network you=E2=80=99ll have a single alias =
mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.&nbsp;<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Best,<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Alexander<o:p class=3D""></o:p></div></div></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;">&nbsp;<o:p =
class=3D""></o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><table class=3D"MsoNormalTable" =
border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" =
style=3D"width: 537.75pt; border-collapse: collapse;"><tbody =
class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td width=3D"137" =
style=3D"width: 103.1pt; border-style: none solid none none; =
border-right-color: windowtext; border-right-width: 1pt; padding: 0in =
5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></div></div></td><td width=3D"580" =
valign=3D"top" style=3D"width: 434.65pt; padding: 0in 5.4pt; height: =
49.05pt;" class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div></div></div><div style=3D"margin-left: =
8.1pt;" class=3D""><div class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D""><a href=3D"http://www.trilliantinc.com/" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span></div></div></div></div><=
/td></tr></tbody></table></div></blockquote></div></div></div></blockquote=
></div></div></blockquote></div></div></blockquote></div></div></blockquot=
e></div></div></div></div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_42A9A744-9672-4BA2-916E-875E8603666B--




From nobody Wed Jun 10 06:26:34 2015
Return-Path: <pthubert@cisco.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D47941B29C6; Wed, 10 Jun 2015 06:26:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level: 
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qc4FQEE4p4PC; Wed, 10 Jun 2015 06:26:28 -0700 (PDT)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 354311B29C4; Wed, 10 Jun 2015 06:26:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=55138; q=dns/txt; s=iport; t=1433942788; x=1435152388; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=aV/NuSmqofCVCdIeO05oV0MiPMrnfA15+ut+AlItVJw=; b=bpJS4ZJrGu2jp4y7pjg67K325zT3LGCIBLrPFiDYCrtVkFJEZgGgvLHW uafGOghvbELkLj7dJH0WQhCAVrpjYNBDjwtZFeDVjruZCc7bmEoBHGc+z Ne9gkrrVrUTwTZ3UI70uMvYAjmrJUku2jncU0/mm4io6tioqjYWK2v5w4 w=;
X-Files: image001.jpg : 2532
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CvBAC0OnhV/4MNJK0mLQYBAoJFS1RfBoMYugBmCYFdhX4CHIEZOBQBAQEBAQEBgQqCEIISAQEBAQMFHgIIARswEAIBCAcKAQMBAQYBAQECCAQKAQYDAgICBRABDAIMFAMGCAEBBAENBAEGAgYNiBOsSqQqAQEBAQEBAQEBAQEBAQEBAQEBAQEBF4tDhCoDDgIYDQkLEAYBCQgBC4JLL4EWBZB7gk+DZQGBBIZNgS+EBoJ7h1SEG4NbJIIHAgEcgVJvgQMBCBcjgQEBAQE
X-IronPort-AV: E=Sophos;i="5.13,587,1427760000";  d="jpg'145?scan'145,208,217,145";a="432823"
Received: from alln-core-1.cisco.com ([173.36.13.131]) by rcdn-iport-8.cisco.com with ESMTP; 10 Jun 2015 13:25:59 +0000
Received: from xhc-rcd-x03.cisco.com (xhc-rcd-x03.cisco.com [173.37.183.77]) by alln-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id t5ADPxpo009369 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 10 Jun 2015 13:25:59 GMT
Received: from xmb-rcd-x01.cisco.com ([169.254.1.61]) by xhc-rcd-x03.cisco.com ([173.37.183.77]) with mapi id 14.03.0195.001; Wed, 10 Jun 2015 08:25:57 -0500
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Andy Bierman <andy@yumaworks.com>, Michel Veillette <Michel.Veillette@trilliantinc.com>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAC2e/AADkudzQ
Date: Wed, 10 Jun 2015 13:25:56 +0000
Deferred-Delivery: Wed, 10 Jun 2015 13:25:00 +0000
Message-ID: <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com>
In-Reply-To: <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com>
Accept-Language: fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.82.234.121]
Content-Type: multipart/related; boundary="_004_E045AECD98228444A58C61C200AE1BD849E9156Bxmbrcdx01ciscoc_"; type="multipart/alternative"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/2CdwbOjwJ_q9mVhS-N6a-UkB6hE>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jun 2015 13:26:32 -0000

--_004_E045AECD98228444A58C61C200AE1BD849E9156Bxmbrcdx01ciscoc_
Content-Type: multipart/alternative;
	boundary="_000_E045AECD98228444A58C61C200AE1BD849E9156Bxmbrcdx01ciscoc_"

--_000_E045AECD98228444A58C61C200AE1BD849E9156Bxmbrcdx01ciscoc_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

RGVhciBhbGw6DQoNClRoaXMgbG9va3MgbGlrZSB0aGUgcHJvYmxlbSBvZiBsb2NhbCBuYW1lc3Bh
Y2VzLCAgd2hpY2ggaXMgdGhlIHJlYXNvbiB3aHkgTVBMUyBzd2l0Y2hlcyBsYWJlbHMuDQpUaGUg
dXNlciBtYXkgYWNjZXNzIGEgbGltaXRlZCBzZXQgb2YgcmVzb3VyY2VzIGZyb20gYSBudW1iZXIg
b2Ygc2VydmVycywgYW5kIHNlcnZlcnMgYXJlIHJlYWQgYnkgbWFueSB1c2Vycy4NCllvdSBjYW5u
b3QgZW5zdXJlIHRoYXQgeW91IGhhdmUgYSBzaW5nbGUgYWxpYXMgc3BhY2UgdGhhdCBzYXRpc2Zp
ZXMgdGhlbSBhbGwuDQoNClNvICx3aGF0IGlmIHRoZSB1c2VyIGhhZCBpdHMgb3duIHNldCBvZiBh
bGlhc2VzIGFuZCB0aGUgc2VydmVyIGFsc28gaGFkIGl0cyBvd24gc2V0IG9mIGFsaWFzZXM/DQoN
ClRoZSBhbGlhc2VzIGNvdWxkIGJlIG1hcHBlZCBpbiBhIHRhYmxlIGxpa2UgYSB1U0FQIGFuZCBh
IHBTQVAgYXJlIG1hcHBlZCBhY3Jvc3MgbGF5ZXJzLiBCcm9hZGx5Og0KLSBGaXJzdCB0aW1lIGEg
dXNlciByZXF1ZXN0cyBhIHJlc291cmNlIGluIGEgc2VydmVyLCBpdCBjb21lcyB3aXRoIGEgdHVw
bGUgKHVzZXJpZCwgdXNlcmFsaWFzLCBmdWxsbmFtZSkNCi0gVGhlIHNlcnZlciByZXNwb25kcyB3
aXRoIChzZXJ2ZXJpZCwgc2VydmVyYWxpYXMsIHVzZXJpZCwgdXNlcmFsaWFzKS4NCg0KQWZ0ZXIg
dGhhdCwgIGlmIHRoZSBzZXJ2ZXIgaXMgYSBjb25zdHJhaW5lZCBkZXZpY2UgdGhlbiB0aGUgdXNl
ciB0YWxrcyB0byB0aGUgc2VydmVyIHdpdGggKHNlcnZlcmlkLCBzZXJ2ZXJhbGlhcykgYW5kIHRo
ZSB1c2VyIG1haW50YWlucyBhIHN3aXRjaGluZyB0YWJsZSBmb3IgdGhlIHJlc291cmNlIGl0IHVz
ZXMgb24gdmFyaW91cyBzZXJ2ZXJzLg0KSWYgdGhlIHVzZXIgaXMgdGhlIGNvbnN0cmFpbmVkIGRl
dmljZSBhbmQgdGhlIHNlcnZlciBpcyBub3QsIHRoZSB1c2VyIGNvdWxkIHRhbGsgd2l0aCAodXNl
cmlkLCB1c2VyYWxpYXMpIGFuZCB0aGUgc2VydmVyIG1haW50YWlucyBhIHN3aXRjaGluZyB0YWJs
ZS4NCg0KRm9yIGxhcmdlIHNlcnZlcnMsIHRoZSBzZXJ2ZXIgbWF5IGFsbG9jYXRlIGFsaWFzZXMg
ZHluYW1pY2FsbHkgYmFzZWQgb24gd2hhdCBpdCBpcyBiZWluZyBhc2tlZC4gV2XigJlkIHRoZW4g
bmVlZCB0byB0YWxrIGFib3V0IGFsaWFzIHVwZGF0ZSBvciByZXZvY2F0aW9uLCBwcm9iYWJseSBp
biB0ZXJtcyBvZiBzZXNzaW9uIGFuZCBsaWZldGltZS4NCg0KRG9lcyB0aGF0IGxvb2sgdXNhYmxl
Pw0KDQpQYXNjYWwNCg0KRnJvbTogNnRpc2NoIFttYWlsdG86NnRpc2NoLWJvdW5jZXNAaWV0Zi5v
cmddIE9uIEJlaGFsZiBPZiBBbmR5IEJpZXJtYW4NClNlbnQ6IHZlbmRyZWRpIDUganVpbiAyMDE1
IDIwOjU1DQpUbzogTWljaGVsIFZlaWxsZXR0ZQ0KQ2M6IDZ0aXNjaEBpZXRmLm9yZzsgQWxleGFu
ZGVyIFBlbG92OyBjb3JlQGlldGYub3JnDQpTdWJqZWN0OiBSZTogWzZ0aXNjaF0gUmVzZXJ2ZSBz
cGFjZSBmb3IgYWxpYXNlcw0KDQoNCg0KT24gRnJpLCBKdW4gNSwgMjAxNSBhdCAxMTo0MSBBTSwg
TWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0
bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+PiB3cm90ZToNCkhpIEFsZXhhbmRl
cg0KDQpJIGhhdmUgc29tZSBjb25jZXJucyBhYm91dCBhbGxvd2luZyBDb01JIGNsaWVudChzKSB0
aGUgY29udHJvbCBvZiB0aGUgbGlzdCBvZiBhbGlhc2VzLg0KVGhpcyBhcHByb2FjaCB3b3JrIGZp
bmUgZm9yIHRoZSBmaXJzdCBDb01JIGFwcGxpY2F0aW9uIChlLmcuIDZUaVNDSCkgYnV0IHdoYXQg
ZG8gd2UgZG8gd2l0aCB0aGUgc3Vic2VxdWVudCBDb01JIGFwcGxpY2F0aW9uPw0KDQpPbmUgcG9z
c2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xpZW50IHNlbmQgYSBsaXN0IG9mIChh
bGlhcywgZGF0YSBub2RlIElEKSB0byB0aGUgQ29NSSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwgdGhl
IENvTUkgY2xpZW50IG1pZ2h0IHJlY2VpdmUgYW4gZXJyb3IgaWYgb25lIG9yIG11bHRpcGxlIG9m
IHRoZXNlIGFsaWFzZXMgYXJlIGFscmVhZHkgcmVzZXJ2ZWQuDQoNCkEgc2Vjb25kIHBvc3NpYmxl
IHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAoZGF0YSBu
b2RlIElEKSBhbmQgZ2V0IGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgZnJvbSB0aGUg
Q29NSSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwgQ29NSSBjbGllbnRzIHdpbGwgaGF2ZSB0byBkZWFs
IHdpdGggYSBtaXggcG9wdWxhdGlvbiBvZiBhbGlhc2VzLg0KDQpUaGUgcHJvcG9zZWQgc29sdXRp
b24gbmVlZCB0byBzY2FsZSB0byBhIG11bHRpLXZlbmRvcnMsIG11bHRpcGxlIGFwcGxpY2F0aW9u
cyBlbnZpcm9ubWVudC4NCldpdGggdGhpcyBpcyBtaW5kLCBkbyB5b3UgaGF2ZSBhbnkgYWx0ZXJu
YXRpdmUgc29sdXRpb25zIHRvIHByb3Bvc2U/DQoNCg0KDQpEb2VzIHRoaXMgYXBwcm9hY2ggYWxs
b3cgZWFjaCBjbGllbnQgdG8gaGF2ZSBhIGRpZmZlcmVudCBzZXQgb2YgYWxpYXNlcywNCnNvIHRo
ZSBzZXJ2ZXIgaGFzIHRvIG1haW50YWluIGEgY29uZmlndXJlZCBtYXBwaW5nIGZvciBlYWNoIGNs
aWVudD8NClRoaXMgc2VlbXMgbGlrZSBhIGxvdCBvZiBvdmVyaGVhZCBhbmQgTlYtc3RvcmFnZSBy
ZXF1aXJlbWVudHMNCm9uIHRoZSBzZXJ2ZXIuDQoNCkNoYW5naW5nIHRoZSBzY2hlbWEgaWRlbnRp
ZmllcnMgYmFzZWQgb24gd2hpY2ggY2xpZW50IGlzDQpzZW5kaW5nIHRoZSByZXF1ZXN0IHNlZW1z
IGxpa2UgYSBjb21wbGljYXRlZCBkZXNpZ24gY2hhbmdlDQpmcm9tIFJFU1RDT05GLCBORVRDT05G
LCBvciBTTk1QLCB3aGVyZSB0aGVyZSBpcyBvbmx5DQoxIHNjaGVtYSB0cmVlIHdoaWNoIGlzIG5v
dCBkZXBlbmRlbnQgb24gdGhlIGNsaWVudCBpZGVudGl0eS4NCg0KDQpBbmR5DQoNCg0KDQoNCltj
aWQ6aW1hZ2UwMDEuanBnQDAxQzg2OEQ4LkJGMEJCN0UwXQ0KDQpNaWNoZWwgVmVpbGxldHRlDQpT
eXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAtMzc1
LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86
bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0Kd3d3LnRyaWxsaWFudGluYy5jb208
aHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoNCkZyb206IEFsZXhhbmRlciBQZWxv
diBbbWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1PG1haWx0bzphbGV4
YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldT5dDQpTZW50OiA1IGp1aW4gMjAxNSAxMjow
Mw0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9y
ZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgY29yZUBpZXRmLm9yZzxtYWlsdG86Y29yZUBpZXRm
Lm9yZz4NClN1YmplY3Q6IFJlOiBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzDQoNCkhpIE1pY2hl
bCwNCg0KDQpMZSA1IGp1aW4gMjAxNSDDoCAxNzoxNywgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVs
LlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxs
aWFudGluYy5jb20+PiBhIMOpY3JpdCA6DQoNCkhpIEFsZXhhbmRlcg0KDQpJbiB5b3VyIHByZXNl
bnRhdGlvbiBhdCA2VGlTQ0gsIHlvdSBwcm9wb3NlIHRoZSBmb2xsb3dpbmcgZGF0YSBub2RlIElE
IHN0cnVjdHVyZS4NCg0K4oCiICAgICAgIDMyIGJpdHMgWUFORyBJRA0K4oCTICAgICAgMjAgYml0
cyBmb3IgbW9kdWxlIElEIChhc3NpZ25lZCBieSBJRVRGKQ0K4oCTICAgICAgMTAgYml0cyBmb3Ig
ZGF0YSBub2RlIElEIChnZW5lcmF0ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpDQoNCg0KQmFzZWQgb24g
dGhpcyBzdHJ1Y3R1cmUsIHdlIGNhbiByZXNlcnZlIG1vZHVsZSBJRCB6ZXJvIGZvciBhbGlhc2Vz
Lg0KDQoNCkkgd2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3YXMgZGlzY3Vzc2VkIG9uIHRoZSBk
aXNjdXNzaW9uIGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAzMCBiaXRzIFlBTkcgSUQsIGJ1dCB0
aGF04oCZcyBmb3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBZQU5HIGhhc2gg
YW5kIEkgZG9u4oCZdCBtaW5kIGtlZXBpbmcgaXQgMzAgYml0cy4NCg0KDQpJZiB3ZSB3YW50IHRv
IG1pbmltaXplIGJvdGggdGhlIG5ldHdvcmsgYW4gbm9kZSByZXNvdXJjZXMgcmVxdWlyZSBieSB0
aGlzIGFsaWFzIG1lY2hhbmlzbSwgd2UgY2FuIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoaXMg
c3BhY2UuDQpUaGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBieSBhIHNpbmdsZSBpbnRlZ2VyIHJlc291
cmNlIChlLmcuIGxlYWYgYWxsaWFzc2VkTW9kdWxlIHsgdHlwZSB1aW50MzIgfSApDQpUaGlzIGFw
cHJvYWNoIHJlcXVpcmUgNCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQuDQoNCg0KSXQg
aXMgcG9zc2libGUgdG8gbWFwIGFuIGVudGlyZSBtb2R1bGUgdG8gdGhlIGFsaWFzIHNwYWNlIGFu
ZCB0aGlzIGlzIHVwIHRvIHRoZSBvcGVyYXRvci4gSG93ZXZlciwgaWYgeW91IGxvYWQgdHdvIG1v
ZHVsZXMgd2hpY2ggcmVkZWZpbmUgdGhlIHNhbWUgYWxpYXMgeW91IHdpbGwgbG9vc2UgdGhlIGJl
bmVmaXQgZnJvbSBpdC4gTWF5YmUgaXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gYmUgYWJsZSB0
byBzcGVjaWZ5IHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMgZnJvbSBUSElTIHNwZWNpZmljIG1v
ZHVsZSB0byBiZSB1c2VkLg0KDQpJZiB0aGUgL21nLzAgYWxpYXMgaXMgcmVzZXJ2ZWQgZm9yIG1h
bmFnaW5nIHRoZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNpbXBseSBzYXlpbmc6DQpQT1NUIC9t
Zy8wDQp7DQogInNvdXJjZV91cmkiIDogIi9tZy9CQUEiDQp9DQoNCndoZXJlIC9tZy9CQUEgaXMg
dGhlIFlBTkcgaWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBtb2R1bGUgSUQgKyAxMCBiaXRzIHNl
dCB0byAwKS4gVGhpcyB3YXksIHRoZSBzZXJ2ZXIgd2lsbCBrbm93OiBPSywgZ2V0IHRoZSBhbGlh
cyBtYXBwaW5nIGZyb20gdGhlIFlBTkcgc2NoZW1lIG9mIG1vZHVsZSB3aXRoIElEID0gQiAoYXMg
ZGVmaW5lZCBieSB0aGUgSUVURikuDQoNCk9yLCB5b3UgY2FuIGR5bmFtaWNhbGx5IGNvbmZpZ3Vy
ZSB0aGUgbWFwcGluZzoNClBPU1QgL21nLzANCnsNCiAgWUFOR19pZCA6IGFsaWFzLA0KICBZQU5H
X2lkIDogYWxpYXMsDQogIFlBTkdfaWQgOiBhbGlhcw0KfQ0KDQpJZiB3ZSB3YW50IGEgbW9yZSBj
b21wbGV4IGJ1dCBtb3JlIGZsZXhpYmxlIGFsaWFzZXMgbWVjaGFuaXNtLCB5b3VyIHByb3Bvc2Vk
IG1hcCBvZiAoYWxsaWFzLCBZQU5HIElEKSBzZWVtIHRoZSBzb2x1dGlvbi4NCkhvd2V2ZXIsIHdl
IGhhdmUgdG8gY29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVyZSBjYW4gYmUgYXMgbGFyZ2UgYXMg
MTI1MCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQgaWYgbGltaXRlZCB0byAyNTYgYWxp
YXNlcy4NCg0KVGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBhIHNlcGFyYXRlIG1hcHBpbmcgZm9y
IGVhY2ggc2VydmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBpbiBhIG5ldHdvcmsgeW914oCZbGwg
aGF2ZSBhIHNpbmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0d28/KSAtIGFmdGVyIGFsbCwgeW91
4oCZcmUgdHJ5aW5nIHRvIG9wdGltaXplIHRoZSBtYW5hZ2VtZW50IG9mIHlvdXIgZGV2aWNlcyAo
c2VydmVycykuIFNvLCB0eXBpY2FsbHkgeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBkZXZpY2VzIHdp
dGggYWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRoYXQgb24gdGhl
bSwgYW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4NCg0KQmVzdCwN
CkFsZXhhbmRlcg0KDQoNCjxpbWFnZTAwMS5qcGc+DQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3Rl
bSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1
NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNo
ZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRw
Oi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0K

--_000_E045AECD98228444A58C61C200AE1BD849E9156Bxmbrcdx01ciscoc_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7
fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQg
MyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5N
c29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4w
MDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFu
Iiwic2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9y
aXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAuTXNvQWNl
dGF0ZSwgbGkuTXNvQWNldGF0ZSwgZGl2Lk1zb0FjZXRhdGUNCgl7bXNvLXN0eWxlLXByaW9yaXR5
Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBjbTsN
CgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjguMHB0Ow0KCWZvbnQtZmFtaWx5
OiJUYWhvbWEiLCJzYW5zLXNlcmlmIjt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5bGUt
dHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYi
Ow0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5CYWxsb29uVGV4dENoYXINCgl7bXNvLXN0eWxlLW5h
bWU6IkJhbGxvb24gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0
eWxlLWxpbms6IkJhbGxvb24gVGV4dCI7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2Vy
aWYiO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZv
bnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJ
e3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3MC44NXB0IDcwLjg1cHQgNzAuODVwdCA3
MC44NXB0O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9z
dHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVk
aXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJl
ZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9o
ZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRp
diBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5EZWFyIGFsbDo8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRoaXMg
bG9va3MgbGlrZSB0aGUgcHJvYmxlbSBvZiBsb2NhbCBuYW1lc3BhY2VzLCZuYnNwOyB3aGljaCBp
cyB0aGUgcmVhc29uIHdoeSBNUExTIHN3aXRjaGVzIGxhYmVscy48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+VGhlIHVzZXIgbWF5IGFjY2VzcyBhIGxpbWl0ZWQgc2V0IG9mIHJlc291cmNl
cyBmcm9tIGEgbnVtYmVyIG9mIHNlcnZlcnMsIGFuZCBzZXJ2ZXJzIGFyZSByZWFkIGJ5IG1hbnkg
dXNlcnMuDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+WW91IGNhbm5vdCBlbnN1cmUg
dGhhdCB5b3UgaGF2ZSBhIHNpbmdsZSBhbGlhcyBzcGFjZSB0aGF0IHNhdGlzZmllcyB0aGVtIGFs
bC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2Nv
bG9yOiMxRjQ5N0QiPlNvICx3aGF0IGlmIHRoZSB1c2VyIGhhZCBpdHMgb3duIHNldCBvZiBhbGlh
c2VzIGFuZCB0aGUgc2VydmVyIGFsc28gaGFkIGl0cyBvd24gc2V0IG9mIGFsaWFzZXM/DQo8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMt
c2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPlRoZSBhbGlhc2VzIGNvdWxkIGJlIG1hcHBlZCBpbiBhIHRhYmxlIGxpa2UgYSB1U0FQ
IGFuZCBhIHBTQVAgYXJlIG1hcHBlZCBhY3Jvc3MgbGF5ZXJzLiBCcm9hZGx5OjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Oztjb2xvcjojMUY0OTdEIj4tIEZpcnN0IHRpbWUgYSB1c2VyIHJlcXVlc3RzIGEgcmVzb3Vy
Y2UgaW4gYSBzZXJ2ZXIsIGl0IGNvbWVzIHdpdGggYSB0dXBsZSAodXNlcmlkLCB1c2VyYWxpYXMs
IGZ1bGxuYW1lKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4tIFRoZSBzZXJ2ZXIgcmVz
cG9uZHMgd2l0aCAoc2VydmVyaWQsIHNlcnZlcmFsaWFzLCB1c2VyaWQsIHVzZXJhbGlhcykuDQo8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPkFmdGVyIHRoYXQsJm5ic3A7IGlmIHRoZSBzZXJ2ZXIgaXMgYSBjb25zdHJhaW5l
ZCBkZXZpY2UgdGhlbiB0aGUgdXNlciB0YWxrcyB0byB0aGUgc2VydmVyIHdpdGggKHNlcnZlcmlk
LCBzZXJ2ZXJhbGlhcykgYW5kIHRoZSB1c2VyIG1haW50YWlucyBhIHN3aXRjaGluZyB0YWJsZSBm
b3INCiB0aGUgcmVzb3VyY2UgaXQgdXNlcyBvbiB2YXJpb3VzIHNlcnZlcnMuPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPklmIHRoZSB1c2VyIGlzIHRoZSBjb25zdHJhaW5lZCBkZXZpY2Ug
YW5kIHRoZSBzZXJ2ZXIgaXMgbm90LCB0aGUgdXNlciBjb3VsZCB0YWxrIHdpdGggKHVzZXJpZCwg
dXNlcmFsaWFzKSBhbmQgdGhlIHNlcnZlciBtYWludGFpbnMgYSBzd2l0Y2hpbmcgdGFibGUuPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj5Gb3IgbGFyZ2Ugc2VydmVycywgdGhlIHNlcnZlciBtYXkgYWxsb2NhdGUgYWxpYXNl
cyBkeW5hbWljYWxseSBiYXNlZCBvbiB3aGF0IGl0IGlzIGJlaW5nIGFza2VkLiBXZeKAmWQgdGhl
biBuZWVkIHRvIHRhbGsgYWJvdXQgYWxpYXMgdXBkYXRlIG9yIHJldm9jYXRpb24sIHByb2JhYmx5
DQogaW4gdGVybXMgb2Ygc2Vzc2lvbiBhbmQgbGlmZXRpbWUuPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5Eb2VzIHRoYXQg
bG9vayB1c2FibGU/PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjojMUY0OTdEIj5QYXNjYWw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3
RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0Ij4N
CjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYg
MS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7Ij4gNnRpc2NoIFttYWlsdG86NnRpc2NoLWJvdW5jZXNAaWV0Zi5vcmdd
DQo8Yj5PbiBCZWhhbGYgT2YgPC9iPkFuZHkgQmllcm1hbjxicj4NCjxiPlNlbnQ6PC9iPiB2ZW5k
cmVkaSA1IGp1aW4gMjAxNSAyMDo1NTxicj4NCjxiPlRvOjwvYj4gTWljaGVsIFZlaWxsZXR0ZTxi
cj4NCjxiPkNjOjwvYj4gNnRpc2NoQGlldGYub3JnOyBBbGV4YW5kZXIgUGVsb3Y7IGNvcmVAaWV0
Zi5vcmc8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFs2dGlzY2hdIFJlc2VydmUgc3BhY2UgZm9y
IGFsaWFzZXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gRnJp
LCBKdW4gNSwgMjAxNSBhdCAxMTo0MSBBTSwgTWljaGVsIFZlaWxsZXR0ZSAmbHQ7PGEgaHJlZj0i
bWFpbHRvOk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsi
Pk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9v
OnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9
IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+SGkgQWxleGFuZGVy
PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+SSBoYXZlIHNvbWUgY29uY2VybnMg
YWJvdXQgYWxsb3dpbmcgQ29NSSBjbGllbnQocykgdGhlIGNvbnRyb2wgb2YgdGhlIGxpc3Qgb2Yg
YWxpYXNlcy48L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjojMUY0OTdEIj5UaGlzIGFwcHJvYWNoIHdvcmsgZmluZSBmb3IgdGhlIGZp
cnN0IENvTUkgYXBwbGljYXRpb24gKGUuZy4gNlRpU0NIKSBidXQgd2hhdCBkbyB3ZQ0KIGRvIHdp
dGggdGhlIHN1YnNlcXVlbnQgQ29NSSBhcHBsaWNhdGlvbj88L3NwYW4+PHNwYW4gbGFuZz0iRU4t
Q0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
bGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8
L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjojMUY0OTdEIj5PbmUgcG9zc2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xp
ZW50IHNlbmQgYSBsaXN0IG9mIChhbGlhcywgZGF0YSBub2RlIElEKQ0KIHRvIHRoZSBDb01JIHNl
cnZlci4gSW4gdGhpcyBjYXNlLCB0aGUgQ29NSSBjbGllbnQgbWlnaHQgcmVjZWl2ZSBhbiBlcnJv
ciBpZiBvbmUgb3IgbXVsdGlwbGUgb2YgdGhlc2UgYWxpYXNlcyBhcmUgYWxyZWFkeSByZXNlcnZl
ZC48L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0Ei
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5BIHNlY29uZCBwb3NzaWJsZSBz
b2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGRhdGEgbm9k
ZSBJRCkgYW5kDQogZ2V0IGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgZnJvbSB0aGUg
Q29NSSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwgQ29NSSBjbGllbnRzIHdpbGwgaGF2ZSB0byBkZWFs
IHdpdGggYSBtaXggcG9wdWxhdGlvbiBvZiBhbGlhc2VzLjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1D
QSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs
YW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwv
c3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2Nv
bG9yOiMxRjQ5N0QiPlRoZSBwcm9wb3NlZCBzb2x1dGlvbiBuZWVkIHRvIHNjYWxlIHRvIGEgbXVs
dGktdmVuZG9ycywgbXVsdGlwbGUgYXBwbGljYXRpb25zIGVudmlyb25tZW50Ljwvc3Bhbj48c3Bh
biBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPldpdGggdGhpcyBpcyBtaW5kLCBkbyB5b3UgaGF2ZSBhbnkgYWx0ZXJuYXRpdmUgc29sdXRp
b25zIHRvIHByb3Bvc2U/PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVO
LUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5Eb2VzIHRoaXMgYXBwcm9hY2ggYWxsb3cgZWFjaCBjbGllbnQg
dG8gaGF2ZSBhIGRpZmZlcmVudCBzZXQgb2YgYWxpYXNlcyw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnNvIHRoZSBzZXJ2ZXIgaGFzIHRvIG1haW50
YWluIGEgY29uZmlndXJlZCBtYXBwaW5nIGZvciBlYWNoIGNsaWVudD88bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoaXMgc2VlbXMgbGlrZSBhIGxv
dCBvZiBvdmVyaGVhZCBhbmQgTlYtc3RvcmFnZSByZXF1aXJlbWVudHM8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPm9uIHRoZSBzZXJ2ZXIuPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkNoYW5naW5n
IHRoZSBzY2hlbWEgaWRlbnRpZmllcnMgYmFzZWQgb24gd2hpY2ggY2xpZW50IGlzPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5zZW5kaW5nIHRoZSBy
ZXF1ZXN0IHNlZW1zIGxpa2UgYSBjb21wbGljYXRlZCBkZXNpZ24gY2hhbmdlPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5mcm9tIFJFU1RDT05GLCBO
RVRDT05GLCBvciBTTk1QLCB3aGVyZSB0aGVyZSBpcyBvbmx5PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4xIHNjaGVtYSB0cmVlIHdoaWNoIGlzIG5v
dCBkZXBlbmRlbnQgb24gdGhlIGNsaWVudCBpZGVudGl0eS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5BbmR5PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0
OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowY20gMGNtIDBjbSA2LjBwdDttYXJnaW4tbGVm
dDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtIj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjx0YWJsZSBj
bGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRk
aW5nPSIwIiB3aWR0aD0iODk2IiBzdHlsZT0id2lkdGg6NTM3Ljc1cHQ7Ym9yZGVyLWNvbGxhcHNl
OmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1cHQiPg0KPHRkIHdp
ZHRoPSIxNzIiIHN0eWxlPSJ3aWR0aDoxMDMuMXB0O2JvcmRlcjpub25lO2JvcmRlci1yaWdodDpz
b2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3BhZGRpbmc6MGNtIDUuNHB0IDBjbSA1LjRwdDtoZWlnaHQ6
NDkuMDVwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Oztjb2xvcjojMUY0OTdEIj48aW1nIGJvcmRlcj0iMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIy
MiIgaWQ9Il94MDAwMF9pMTAyNSIgc3JjPSJjaWQ6aW1hZ2UwMDEuanBnQDAxRDBBMzhGLjU4QTM2
QjIwIiBhbHQ9ImNpZDppbWFnZTAwMS5qcGdAMDFDODY4RDguQkYwQkI3RTAiPjwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjwvdGQ+DQo8dGQgd2lkdGg9IjcyNCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3
aWR0aDo0MzQuNjVwdDtwYWRkaW5nOjBjbSA1LjRwdCAwY20gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQi
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdpbi1sZWZ0OjguMXB0Ij4NCjxzcGFuIHN0eWxl
PSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5NaWNoZWwgVmVpbGxldHRlPGJyPg0KU3lzdGVt
IEFyY2hpdGVjdHVyZSBEaXJlY3Rvcjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0bzttYXJnaW4tbGVmdDo4LjFwdCI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjku
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+VHJpbGxpYW50IEluYy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQu
IDIzNzxicj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6IzA1NjNDMSI+bWljaGVsLnZl
aWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxp
YW50aW5jLmNvbS8iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPnd3
dy50cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPg0KICZuYnNwOyA8L3NwYW4+PG86cD48L286cD48L3A+DQo8L3Rk
Pg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3Bh
biBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNw
Ozwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y
ZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkZy
b206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiBBbGV4YW5kZXIgUGVs
b3YgW21haWx0bzo8YSBocmVmPSJtYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFn
bmUuZXUiIHRhcmdldD0iX2JsYW5rIj5hbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5l
dTwvYT5dDQo8YnI+DQo8Yj5TZW50OjwvYj4gNSBqdWluIDIwMTUgMTI6MDM8YnI+DQo8Yj5Ubzo8
L2I+IE1pY2hlbCBWZWlsbGV0dGU8YnI+DQo8Yj5DYzo8L2I+IEFuZHkgQmllcm1hbjsgPGEgaHJl
Zj0ibWFpbHRvOjZ0aXNjaEBpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPjZ0aXNjaEBpZXRmLm9y
ZzwvYT47DQo8YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmNv
cmVAaWV0Zi5vcmc8L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBSZXNlcnZlIHNwYWNlIGZv
ciBhbGlhc2VzPC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1D
QSI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiPkhpIE1pY2hlbCw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNB
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxk
aXY+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUu
MHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIj5M
ZSA1IGp1aW4gMjAxNSDDoCAxNzoxNywgTWljaGVsIFZlaWxsZXR0ZSAmbHQ7PGEgaHJlZj0ibWFp
bHRvOk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPk1p
Y2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvYT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFu
Zz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij5IaSBBbGV4YW5kZXI8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFu
Zz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9
IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPklu
IHlvdXIgcHJlc2VudGF0aW9uIGF0IDZUaVNDSCwgeW91IHByb3Bvc2UgdGhlIGZvbGxvd2luZyBk
YXRhIG5vZGUgSUQgc3RydWN0dXJlLjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286
cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3Bh
biBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PHNwYW4g
bGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPHRhYmxlIGNsYXNz
PSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9
IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyPg0KPHRk
IHdpZHRoPSI3NzkiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDY3LjVwdDtib3JkZXI6c29s
aWQgd2luZG93dGV4dCAxLjBwdDtwYWRkaW5nOjBjbSA1LjRwdCAwY20gNS40cHQiPg0KPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6MzYuMHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90OyI+4oCiPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4w
cHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjMyDQogYml0cyBZQU5HIElEPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij7igJM8L3NwYW4+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+MjANCiBiaXRzIGZvciBt
b2R1bGUgSUQgKGFzc2lnbmVkIGJ5IElFVEYpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij7igJM8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+MTANCiBiaXRzIGZvciBkYXRhIG5vZGUgSUQgKGdl
bmVyYXRlZCBkZXRlcm1pbmlzdGljYWxseSk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8
L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90OyI+QmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNhbiByZXNlcnZlJm5i
c3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+bW9kdWxlDQogSUQgemVybyBm
b3IgYWxpYXNlcy48L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5n
PSJFTi1DQSI+SSB3YXMganVzdCBzdW1tYXJpemluZyB3aGF0IHdhcyBkaXNjdXNzZWQgb24gdGhl
IGRpc2N1c3Npb24gaW4gQ29NSS4gQWN0dWFsbHksIGl0IGlzIDMwIGJpdHMgWUFORyBJRCwgYnV0
IHRoYXTigJlzIGZvciBwdXJwb3NlcyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFlBTkcgaGFz
aA0KIGFuZCBJIGRvbuKAmXQgbWluZCBrZWVwaW5nIGl0IDMwIGJpdHMuPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5n
PSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bWFyZ2luLWJvdHRvbTox
Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDsiPklmIHdlIHdhbnQgdG8gbWluaW1pemUgYm90aCB0aGUgbmV0d29yayBhbiBub2Rl
IHJlc291cmNlcyByZXF1aXJlIGJ5IHRoaXMgYWxpYXMgbWVjaGFuaXNtLCB3ZSBjYW4gbWFwIGFu
IGVudGlyZQ0KIG1vZHVsZSB0byB0aGlzIHNwYWNlLjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+
PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPlRoaXMgY2FuIGJlIGltcGxlbWVudGVk
IGJ5IGEgc2luZ2xlIGludGVnZXIgcmVzb3VyY2UgKGUuZy4gbGVhZiBhbGxpYXNzZWRNb2R1bGUg
eyB0eXBlIHVpbnQzMiB9ICk8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7Ij5UaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRlcyBwZXIgQ29N
SSBzZXJ2ZXIgYWNjZXNzZWQuPC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gbGFuZz0iRU4tQ0EiPkl0IGlzIHBvc3NpYmxlIHRvIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRv
IHRoZSBhbGlhcyBzcGFjZSBhbmQgdGhpcyBpcyB1cCB0byB0aGUgb3BlcmF0b3IuIEhvd2V2ZXIs
IGlmIHlvdSBsb2FkIHR3byBtb2R1bGVzIHdoaWNoIHJlZGVmaW5lIHRoZSBzYW1lIGFsaWFzIHlv
dSB3aWxsDQogbG9vc2UgdGhlIGJlbmVmaXQgZnJvbSBpdC4gTWF5YmUgaXQgd291bGQgYmUgaW50
ZXJlc3RpbmcgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMg
ZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4t
Q0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiPklmIHRoZSAvbWcvMCBhbGlhcyBpcyBy
ZXNlcnZlZCBmb3IgbWFuYWdpbmcgdGhlIGFsaWFzZXMsIHRoaXMgY291bGQgYmUgc2ltcGx5IHNh
eWluZzo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIj5QT1NUIC9tZy8wPG86cD48L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1DQSI+ezxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOyZxdW90O3NvdXJjZV91cmkmcXVv
dDsgOiAmcXVvdDsvbWcvQkFBJnF1b3Q7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSI+fTxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiPndoZXJlIC9tZy9C
QUEgaXMgdGhlIFlBTkcgaWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBtb2R1bGUgSUQgJiM0Mzsg
MTAgYml0cyBzZXQgdG8gMCkuIFRoaXMgd2F5LCB0aGUgc2VydmVyIHdpbGwga25vdzogT0ssIGdl
dCB0aGUgYWxpYXMgbWFwcGluZyBmcm9tIHRoZSBZQU5HIHNjaGVtZQ0KIG9mIG1vZHVsZSB3aXRo
IElEID0gQiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURikuJm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJF
Ti1DQSI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSI+T3IsIHlvdSBjYW4gZHluYW1pY2Fs
bHkgY29uZmlndXJlIHRoZSBtYXBwaW5nOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIj5Q
T1NUIC9tZy8wPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSI+ezxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0Ei
PiZuYnNwOyBZQU5HX2lkIDogYWxpYXMsPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7IFlB
TkdfaWQgOiBhbGlhcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUNBIj4mbmJzcDsgWUFOR19pZCA6IGFs
aWFzPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSI+fTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bWFyZ2luLWJvdHRvbToxMi4wcHQiPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDtt
YXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPklmIHdlIHdhbnQgYSBtb3JlIGNvbXBsZXgg
YnV0IG1vcmUgZmxleGlibGUgYWxpYXNlcyBtZWNoYW5pc20sIHlvdXIgcHJvcG9zZWQgbWFwIG9m
IChhbGxpYXMsIFlBTkcgSUQpIHNlZW0gdGhlDQogc29sdXRpb24uPC9zcGFuPjxzcGFuIGxhbmc9
IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+SG93ZXZlciwgd2UgaGF2
ZSB0byBjb25zaWRlciB0aGF0IHRoaXMgc3RydWN0dXJlIGNhbiBiZSBhcyBsYXJnZSBhcyZuYnNw
Ozx1PjEyNTAgYnl0ZXMgcGVyIENvTUkgc2VydmVyIGFjY2Vzc2VkPC91PiZuYnNwO2lmDQogbGlt
aXRlZCB0byAyNTYgYWxpYXNlcy48L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5n
PSJFTi1DQSI+VGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBhIHNlcGFyYXRlIG1hcHBpbmcgZm9y
IGVhY2ggc2VydmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBpbiBhIG5ldHdvcmsgeW914oCZbGwg
aGF2ZSBhIHNpbmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0d28/KSAtIGFmdGVyIGFsbCwgeW91
4oCZcmUNCiB0cnlpbmcgdG8gb3B0aW1pemUgdGhlIG1hbmFnZW1lbnQgb2YgeW91ciBkZXZpY2Vz
IChzZXJ2ZXJzKS4gU28sIHR5cGljYWxseSB5b3XigJlkIG1hcCBhbGwgNnRpc2NoIGRldmljZXMg
d2l0aCBhbGlhc2VzIDEtMTAgKGNoYW5uZWwsIHNsb3QsIGV0Yy4pIGFuZCB1c2UgdGhhdCBvbiB0
aGVtLCBhbmQgb24gYWxsIG90aGVyIHlvdeKAmWQgYWNjZXNzIHRoZSBmdWxsIElELiZuYnNwOzxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tQ0EiPkJlc3Qs
PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBsYW5nPSJFTi1DQSI+QWxleGFuZGVyPG86cD48L286cD48L3NwYW4+PC9wPg0K
PC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bWFyZ2luLWJvdHRvbToxMi4wcHQiPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJn
aW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PHNw
YW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPHRhYmxlIGNs
YXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRp
bmc9IjAiIHdpZHRoPSI4OTYiIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6
Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lk
dGg9IjE3MiIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNv
bGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowY20gNS40cHQgMGNtIDUuNHB0O2hlaWdodDo0
OS4wNXB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90OyI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjcyNCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo0
MzQuNjVwdDtwYWRkaW5nOjBjbSA1LjRwdCAwY20gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRp
diBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDsiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0
ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxl
PSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90OyI+VHJpbGxpYW50IEluYy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQu
IDIzNzxicj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6IzA1NjNDMSI+bWljaGVsLnZl
aWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48YSBocmVmPSJodHRwOi8vd3d3
LnRyaWxsaWFudGluYy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPC9kaXY+DQo8L2Js
b2NrcXVvdGU+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4t
Q0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2Nr
cXVvdGU+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_E045AECD98228444A58C61C200AE1BD849E9156Bxmbrcdx01ciscoc_--

--_004_E045AECD98228444A58C61C200AE1BD849E9156Bxmbrcdx01ciscoc_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Wed, 10 Jun 2015 13:25:56 GMT";
	modification-date="Wed, 10 Jun 2015 13:25:56 GMT"
Content-ID: <image001.jpg@01D0A38F.58A36B20>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_E045AECD98228444A58C61C200AE1BD849E9156Bxmbrcdx01ciscoc_--


From nobody Wed Jun 10 10:04:55 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6DDEF1B33C6; Wed, 10 Jun 2015 10:04:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id I_JswzNwxwc5; Wed, 10 Jun 2015 10:04:39 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0126.outbound.protection.outlook.com [207.46.100.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 43B341A8F4E; Wed, 10 Jun 2015 10:04:32 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) with Microsoft SMTP Server (TLS) id 15.1.184.17; Wed, 10 Jun 2015 17:04:27 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0184.014; Wed, 10 Jun 2015 17:04:27 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "Pascal Thubert (pthubert)" <pthubert@cisco.com>, Andy Bierman <andy@yumaworks.com>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAADv9XEAAAYWcaA=
Date: Wed, 10 Jun 2015 17:04:26 +0000
Message-ID: <CO2PR0601MB7926E83D17647168C1829A2FEBD0@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com>
In-Reply-To: <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: cisco.com; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB792;
x-microsoft-antispam-prvs: <CO2PR0601MB7924F1A2FF77E587866FE73FEBD0@CO2PR0601MB792.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB792; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB792; 
x-forefront-prvs: 06036BD506
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(377454003)(38414003)(24454002)(74316001)(77156002)(17760045003)(19625215002)(99286002)(5002640100001)(19580395003)(16236675004)(19627595001)(19617315012)(33656002)(18206015028)(62966003)(86362001)(2656002)(87936001)(54356999)(76176999)(5003600100002)(50986999)(122556002)(19580405001)(99936001)(19300405004)(40100003)(5001960100002)(189998001)(106356001)(46102003)(102836002)(2950100001)(81156007)(15975445007)(2900100001)(77096005)(5001920100001)(5001770100001)(93886004)(92566002)(68736005)(66066001)(76576001)(97736004)(7099028)(403724002)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB792; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB7926E83D17647168C1829A2FEBD0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2015 17:04:26.4910 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB792
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/V7ej4yZp8sdbW1QcHIasch2DaUg>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jun 2015 17:04:49 -0000

--_004_CO2PR0601MB7926E83D17647168C1829A2FEBD0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB7926E83D17647168C1829A2FEBD0CO2PR0601MB792na_"

--_000_CO2PR0601MB7926E83D17647168C1829A2FEBD0CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgUGFzY2FsLg0KDQpJZiB3ZSBtb3ZlIGFoZWFkIHdpdGggdGhlIHNvbHV0aW9uIGRpc2N1c3Nl
ZCBiZXR3ZWVuIG15c2VsZiBhbmQgQWxleGFuZGVyLCBhbGlhc2VzIHdvbuKAmXQgc2F2ZSBtdWNo
IHNwYWNlIGFuZCBhcmUgbm90IHdvcnRoIGl0Lg0KDQpUaGUgc29sdXRpb24gaXMgYmFzZWQgb24g
dGhlIGZvbGxvd2luZyBwcmluY2lwbGVzOg0KDQrCtyAgICAgICAgIERhdGEgbm9kZXMgYXJlIGlk
ZW50aWZpZWQgdXNpbmcgYSAyMCBiaXRzIHJlZ2lzdGVyZWQgbW9kdWxlIGlkZW50aWZpZXIgYW5k
IGEgMTAgYml0cyBhc3NpZ25lZCBZQU5HIElELCAyIGJpdHMgYXJlIHJlc2VydmVkIGZvciBmdXR1
cmUgdXNlLg0KDQrCtyAgICAgICAgIFNpbWlsYXJseSBhcyBSRVNUY29uZiwgZGF0YSBub2RlcyBj
YW4gYmUgaWRlbnRpZmllZCB1c2luZyBhIGxvbmcgZm9ybSAobW9kdWxlIGlkZW50aWZpZXIsIFlB
TkcgSUQpIG9yIGEgc2hvcnQgZm9ybSAoWUFORyBJRCkuIExvbmcgZm9ybSBpcyB1c2VkIG9ubHkg
d2hlbiBuZWVkZWQuDQoNCk5vdGU6IE1vZHVsZSBJRCB6ZXJvIGlzIGludmFsaWQgc2luY2UgaXQg
b2NjdXB5IHRoZSBzYW1lIElEIHNwYWNlIGFzIHRoZSBzaG9ydCBmb3JtLg0KDQrCtyAgICAgICAg
IERhdGEgbm9kZShzKSBzZWxlY3RlZCBieSBhIEdFVCBzdGF0ZW1lbnQgYXJlIGxpc3RlZCBpbiBh
IHF1ZXJ5IHBhcmFtZXRlciBhbmQgZW5jb2RlZCBpbiBDQk9SLg0KDQrCtyAgICAgICAgIE1ldGEg
ZGF0YSAoZS5nLiBsaXN0IG9mIG1vZHVsZXMsIG1vZHVsZSB2ZXJzaW9uKSBhcmUgcHJvdmlkZWQg
dXNpbmcgc3RhbmRhcmQgWUFORyBtb2R1bGVzDQoNCmh0dHA6Ly93d3cubmV0Y29uZmNlbnRyYWwu
b3JnL21vZHVsZXMvaWV0Zi15YW5nLWxpYnJhcnkvMjAxNC0wOS0yNg0KDQpodHRwOi8vd3d3Lm5l
dGNvbmZjZW50cmFsLm9yZy9tb2R1bGVyZXBvcnQvaWV0Zi1yZXN0Y29uZi1tb25pdG9yaW5nDQoN
ClRoZSBzb2x1dGlvbiBoYXZlIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyaXN0aWNzOg0KDQrCtyAg
ICAgICAgIE5vIGhhc2gsIG5vIGNsYXNoZXMsIG5vIHJlLWhhc2ggdGFibGUNCg0KwrcgICAgICAg
ICBObyBpbml0aWFsIGhhbmRzaGFrZSByZXF1aXJlZA0KDQrCtyAgICAgICAgIE5vIGJhc2U2NCBl
bmNvZGluZw0KDQpGb3IgZXhhbXBsZQ0KDQrCtyAgICAgICAgIEFzc3VtaW5nIG1vZHVsZSBJRCAy
NSwgWUFORyBJRCAyIHRvIDUNCg0KwrcgICAgICAgICBBc3N1bWluZyB0aGF0IG1vZHVsZSBJRCAy
NSwgWUFORyAgSUQgMiBpcyBlbmNvZGVkIHVzaW5nIHRoZSBsb25nIGZvcm0gYXMgMTEwMDEgMDAw
MDAwMDAxMCBvciAyNTYwMg0KDQpSRVE6IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3QoIFsgMjU2
MDIsIDMgXSApDQoNClJFUzogMi4wNSBDb250ZW50IChDb250ZW50LUZvcm1hdDogYXBwbGljYXRp
b24vY2JvcikNCnsNCiAyIDogInZhbHVlIiwNCiAgMyA6IHsNCiAgICA0IDogInZhbHVlIiwNCiAg
ICA1IDogInZhbHVlIiwNCiAgfQ0KfQ0KDQoNClJFUTogUFVUIGV4YW1wbGUuY29tIChDb250ZW50
LUZvcm1hdDogYXBwbGljYXRpb24vY2JvcikNCnsNCiAgMjU2MDMgOiB7DQogICAgNCA6ICJ2YWx1
ZSIsDQogICAgNSA6ICJ2YWx1ZSIsDQogIH0NCn0NCg0KUkVTOiAyLjA1IE9rDQoNCg0KW2NpZDpp
bWFnZTAwMS5qcGdAMDFDODY4RDguQkYwQkI3RTBdDQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3Rl
bSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1
NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNo
ZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRw
Oi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0KRnJvbTogUGFzY2FsIFRodWJlcnQgKHB0
aHViZXJ0KSBbbWFpbHRvOnB0aHViZXJ0QGNpc2NvLmNvbV0NClNlbnQ6IDEwIGp1aW4gMjAxNSAw
OToyNg0KVG86IEFuZHkgQmllcm1hbjsgTWljaGVsIFZlaWxsZXR0ZQ0KQ2M6IDZ0aXNjaEBpZXRm
Lm9yZzsgQWxleGFuZGVyIFBlbG92OyBjb3JlQGlldGYub3JnDQpTdWJqZWN0OiBSRTogWzZ0aXNj
aF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlcw0KDQpEZWFyIGFsbDoNCg0KVGhpcyBsb29rcyBs
aWtlIHRoZSBwcm9ibGVtIG9mIGxvY2FsIG5hbWVzcGFjZXMsICB3aGljaCBpcyB0aGUgcmVhc29u
IHdoeSBNUExTIHN3aXRjaGVzIGxhYmVscy4NClRoZSB1c2VyIG1heSBhY2Nlc3MgYSBsaW1pdGVk
IHNldCBvZiByZXNvdXJjZXMgZnJvbSBhIG51bWJlciBvZiBzZXJ2ZXJzLCBhbmQgc2VydmVycyBh
cmUgcmVhZCBieSBtYW55IHVzZXJzLg0KWW91IGNhbm5vdCBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBh
IHNpbmdsZSBhbGlhcyBzcGFjZSB0aGF0IHNhdGlzZmllcyB0aGVtIGFsbC4NCg0KU28gLHdoYXQg
aWYgdGhlIHVzZXIgaGFkIGl0cyBvd24gc2V0IG9mIGFsaWFzZXMgYW5kIHRoZSBzZXJ2ZXIgYWxz
byBoYWQgaXRzIG93biBzZXQgb2YgYWxpYXNlcz8NCg0KVGhlIGFsaWFzZXMgY291bGQgYmUgbWFw
cGVkIGluIGEgdGFibGUgbGlrZSBhIHVTQVAgYW5kIGEgcFNBUCBhcmUgbWFwcGVkIGFjcm9zcyBs
YXllcnMuIEJyb2FkbHk6DQotIEZpcnN0IHRpbWUgYSB1c2VyIHJlcXVlc3RzIGEgcmVzb3VyY2Ug
aW4gYSBzZXJ2ZXIsIGl0IGNvbWVzIHdpdGggYSB0dXBsZSAodXNlcmlkLCB1c2VyYWxpYXMsIGZ1
bGxuYW1lKQ0KLSBUaGUgc2VydmVyIHJlc3BvbmRzIHdpdGggKHNlcnZlcmlkLCBzZXJ2ZXJhbGlh
cywgdXNlcmlkLCB1c2VyYWxpYXMpLg0KDQpBZnRlciB0aGF0LCAgaWYgdGhlIHNlcnZlciBpcyBh
IGNvbnN0cmFpbmVkIGRldmljZSB0aGVuIHRoZSB1c2VyIHRhbGtzIHRvIHRoZSBzZXJ2ZXIgd2l0
aCAoc2VydmVyaWQsIHNlcnZlcmFsaWFzKSBhbmQgdGhlIHVzZXIgbWFpbnRhaW5zIGEgc3dpdGNo
aW5nIHRhYmxlIGZvciB0aGUgcmVzb3VyY2UgaXQgdXNlcyBvbiB2YXJpb3VzIHNlcnZlcnMuDQpJ
ZiB0aGUgdXNlciBpcyB0aGUgY29uc3RyYWluZWQgZGV2aWNlIGFuZCB0aGUgc2VydmVyIGlzIG5v
dCwgdGhlIHVzZXIgY291bGQgdGFsayB3aXRoICh1c2VyaWQsIHVzZXJhbGlhcykgYW5kIHRoZSBz
ZXJ2ZXIgbWFpbnRhaW5zIGEgc3dpdGNoaW5nIHRhYmxlLg0KDQpGb3IgbGFyZ2Ugc2VydmVycywg
dGhlIHNlcnZlciBtYXkgYWxsb2NhdGUgYWxpYXNlcyBkeW5hbWljYWxseSBiYXNlZCBvbiB3aGF0
IGl0IGlzIGJlaW5nIGFza2VkLiBXZeKAmWQgdGhlbiBuZWVkIHRvIHRhbGsgYWJvdXQgYWxpYXMg
dXBkYXRlIG9yIHJldm9jYXRpb24sIHByb2JhYmx5IGluIHRlcm1zIG9mIHNlc3Npb24gYW5kIGxp
ZmV0aW1lLg0KDQpEb2VzIHRoYXQgbG9vayB1c2FibGU/DQoNClBhc2NhbA0KDQpGcm9tOiA2dGlz
Y2ggW21haWx0bzo2dGlzY2gtYm91bmNlc0BpZXRmLm9yZ10gT24gQmVoYWxmIE9mIEFuZHkgQmll
cm1hbg0KU2VudDogdmVuZHJlZGkgNSBqdWluIDIwMTUgMjA6NTUNClRvOiBNaWNoZWwgVmVpbGxl
dHRlDQpDYzogNnRpc2NoQGlldGYub3JnPG1haWx0bzo2dGlzY2hAaWV0Zi5vcmc+OyBBbGV4YW5k
ZXIgUGVsb3Y7IGNvcmVAaWV0Zi5vcmc8bWFpbHRvOmNvcmVAaWV0Zi5vcmc+DQpTdWJqZWN0OiBS
ZTogWzZ0aXNjaF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlcw0KDQoNCg0KT24gRnJpLCBKdW4g
NSwgMjAxNSBhdCAxMTo0MSBBTSwgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tPG1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+
PiB3cm90ZToNCkhpIEFsZXhhbmRlcg0KDQpJIGhhdmUgc29tZSBjb25jZXJucyBhYm91dCBhbGxv
d2luZyBDb01JIGNsaWVudChzKSB0aGUgY29udHJvbCBvZiB0aGUgbGlzdCBvZiBhbGlhc2VzLg0K
VGhpcyBhcHByb2FjaCB3b3JrIGZpbmUgZm9yIHRoZSBmaXJzdCBDb01JIGFwcGxpY2F0aW9uIChl
LmcuIDZUaVNDSCkgYnV0IHdoYXQgZG8gd2UgZG8gd2l0aCB0aGUgc3Vic2VxdWVudCBDb01JIGFw
cGxpY2F0aW9uPw0KDQpPbmUgcG9zc2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xp
ZW50IHNlbmQgYSBsaXN0IG9mIChhbGlhcywgZGF0YSBub2RlIElEKSB0byB0aGUgQ29NSSBzZXJ2
ZXIuIEluIHRoaXMgY2FzZSwgdGhlIENvTUkgY2xpZW50IG1pZ2h0IHJlY2VpdmUgYW4gZXJyb3Ig
aWYgb25lIG9yIG11bHRpcGxlIG9mIHRoZXNlIGFsaWFzZXMgYXJlIGFscmVhZHkgcmVzZXJ2ZWQu
DQoNCkEgc2Vjb25kIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBz
ZW5kIGEgbGlzdCBvZiAoZGF0YSBub2RlIElEKSBhbmQgZ2V0IGEgbGlzdCBvZiAoYWxpYXMsIGRh
dGEgbm9kZSBJRCkgZnJvbSB0aGUgQ29NSSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwgQ29NSSBjbGll
bnRzIHdpbGwgaGF2ZSB0byBkZWFsIHdpdGggYSBtaXggcG9wdWxhdGlvbiBvZiBhbGlhc2VzLg0K
DQpUaGUgcHJvcG9zZWQgc29sdXRpb24gbmVlZCB0byBzY2FsZSB0byBhIG11bHRpLXZlbmRvcnMs
IG11bHRpcGxlIGFwcGxpY2F0aW9ucyBlbnZpcm9ubWVudC4NCldpdGggdGhpcyBpcyBtaW5kLCBk
byB5b3UgaGF2ZSBhbnkgYWx0ZXJuYXRpdmUgc29sdXRpb25zIHRvIHByb3Bvc2U/DQoNCg0KDQpE
b2VzIHRoaXMgYXBwcm9hY2ggYWxsb3cgZWFjaCBjbGllbnQgdG8gaGF2ZSBhIGRpZmZlcmVudCBz
ZXQgb2YgYWxpYXNlcywNCnNvIHRoZSBzZXJ2ZXIgaGFzIHRvIG1haW50YWluIGEgY29uZmlndXJl
ZCBtYXBwaW5nIGZvciBlYWNoIGNsaWVudD8NClRoaXMgc2VlbXMgbGlrZSBhIGxvdCBvZiBvdmVy
aGVhZCBhbmQgTlYtc3RvcmFnZSByZXF1aXJlbWVudHMNCm9uIHRoZSBzZXJ2ZXIuDQoNCkNoYW5n
aW5nIHRoZSBzY2hlbWEgaWRlbnRpZmllcnMgYmFzZWQgb24gd2hpY2ggY2xpZW50IGlzDQpzZW5k
aW5nIHRoZSByZXF1ZXN0IHNlZW1zIGxpa2UgYSBjb21wbGljYXRlZCBkZXNpZ24gY2hhbmdlDQpm
cm9tIFJFU1RDT05GLCBORVRDT05GLCBvciBTTk1QLCB3aGVyZSB0aGVyZSBpcyBvbmx5DQoxIHNj
aGVtYSB0cmVlIHdoaWNoIGlzIG5vdCBkZXBlbmRlbnQgb24gdGhlIGNsaWVudCBpZGVudGl0eS4N
Cg0KDQpBbmR5DQoNCg0KDQoNCltjaWQ6aW1hZ2UwMDEuanBnQDAxQzg2OEQ4LkJGMEJCN0UwXQ0K
DQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlh
bnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJp
bGxpYW50aW5jLmNvbTxtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0K
d3d3LnRyaWxsaWFudGluYy5jb208aHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoN
CkZyb206IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJy
ZXRhZ25lLmV1PG1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldT5dDQpT
ZW50OiA1IGp1aW4gMjAxNSAxMjowMw0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbmR5IEJp
ZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgY29yZUBpZXRm
Lm9yZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBSZXNlcnZlIHNwYWNlIGZv
ciBhbGlhc2VzDQoNCkhpIE1pY2hlbCwNCg0KDQpMZSA1IGp1aW4gMjAxNSDDoCAxNzoxNywgTWlj
aGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpN
aWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+PiBhIMOpY3JpdCA6DQoNCkhpIEFsZXhh
bmRlcg0KDQpJbiB5b3VyIHByZXNlbnRhdGlvbiBhdCA2VGlTQ0gsIHlvdSBwcm9wb3NlIHRoZSBm
b2xsb3dpbmcgZGF0YSBub2RlIElEIHN0cnVjdHVyZS4NCg0K4oCiICAgICAgIDMyIGJpdHMgWUFO
RyBJRA0K4oCTICAgICAgMjAgYml0cyBmb3IgbW9kdWxlIElEIChhc3NpZ25lZCBieSBJRVRGKQ0K
4oCTICAgICAgMTAgYml0cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0ZWQgZGV0ZXJtaW5pc3Rp
Y2FsbHkpDQoNCg0KQmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNhbiByZXNlcnZlIG1vZHVs
ZSBJRCB6ZXJvIGZvciBhbGlhc2VzLg0KDQoNCkkgd2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3
YXMgZGlzY3Vzc2VkIG9uIHRoZSBkaXNjdXNzaW9uIGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAz
MCBiaXRzIFlBTkcgSUQsIGJ1dCB0aGF04oCZcyBmb3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVu
dCB3aXRoIHRoZSBZQU5HIGhhc2ggYW5kIEkgZG9u4oCZdCBtaW5kIGtlZXBpbmcgaXQgMzAgYml0
cy4NCg0KDQpJZiB3ZSB3YW50IHRvIG1pbmltaXplIGJvdGggdGhlIG5ldHdvcmsgYW4gbm9kZSBy
ZXNvdXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFzIG1lY2hhbmlzbSwgd2UgY2FuIG1hcCBhbiBl
bnRpcmUgbW9kdWxlIHRvIHRoaXMgc3BhY2UuDQpUaGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBieSBh
IHNpbmdsZSBpbnRlZ2VyIHJlc291cmNlIChlLmcuIGxlYWYgYWxsaWFzc2VkTW9kdWxlIHsgdHlw
ZSB1aW50MzIgfSApDQpUaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRlcyBwZXIgQ29NSSBzZXJ2
ZXIgYWNjZXNzZWQuDQoNCg0KSXQgaXMgcG9zc2libGUgdG8gbWFwIGFuIGVudGlyZSBtb2R1bGUg
dG8gdGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlzIGlzIHVwIHRvIHRoZSBvcGVyYXRvci4gSG93ZXZl
ciwgaWYgeW91IGxvYWQgdHdvIG1vZHVsZXMgd2hpY2ggcmVkZWZpbmUgdGhlIHNhbWUgYWxpYXMg
eW91IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQgZnJvbSBpdC4gTWF5YmUgaXQgd291bGQgYmUgaW50
ZXJlc3RpbmcgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMg
ZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLg0KDQpJZiB0aGUgL21nLzAgYWxp
YXMgaXMgcmVzZXJ2ZWQgZm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNp
bXBseSBzYXlpbmc6DQpQT1NUIC9tZy8wDQp7DQogInNvdXJjZV91cmkiIDogIi9tZy9CQUEiDQp9
DQoNCndoZXJlIC9tZy9CQUEgaXMgdGhlIFlBTkcgaWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBt
b2R1bGUgSUQgKyAxMCBiaXRzIHNldCB0byAwKS4gVGhpcyB3YXksIHRoZSBzZXJ2ZXIgd2lsbCBr
bm93OiBPSywgZ2V0IHRoZSBhbGlhcyBtYXBwaW5nIGZyb20gdGhlIFlBTkcgc2NoZW1lIG9mIG1v
ZHVsZSB3aXRoIElEID0gQiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURikuDQoNCk9yLCB5b3UgY2Fu
IGR5bmFtaWNhbGx5IGNvbmZpZ3VyZSB0aGUgbWFwcGluZzoNClBPU1QgL21nLzANCnsNCiAgWUFO
R19pZCA6IGFsaWFzLA0KICBZQU5HX2lkIDogYWxpYXMsDQogIFlBTkdfaWQgOiBhbGlhcw0KfQ0K
DQpJZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhpYmxlIGFsaWFzZXMgbWVj
aGFuaXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5HIElEKSBzZWVtIHRoZSBz
b2x1dGlvbi4NCkhvd2V2ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVy
ZSBjYW4gYmUgYXMgbGFyZ2UgYXMgMTI1MCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQg
aWYgbGltaXRlZCB0byAyNTYgYWxpYXNlcy4NCg0KVGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBh
IHNlcGFyYXRlIG1hcHBpbmcgZm9yIGVhY2ggc2VydmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBp
biBhIG5ldHdvcmsgeW914oCZbGwgaGF2ZSBhIHNpbmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0
d28/KSAtIGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5aW5nIHRvIG9wdGltaXplIHRoZSBtYW5hZ2Vt
ZW50IG9mIHlvdXIgZGV2aWNlcyAoc2VydmVycykuIFNvLCB0eXBpY2FsbHkgeW914oCZZCBtYXAg
YWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMu
KSBhbmQgdXNlIHRoYXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0
aGUgZnVsbCBJRC4NCg0KQmVzdCwNCkFsZXhhbmRlcg0KDQoNCjxpbWFnZTAwMS5qcGc+DQoNCk1p
Y2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJ
bmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cu
dHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0K

--_000_CO2PR0601MB7926E83D17647168C1829A2FEBD0CO2PR0601MB792na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAw
O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6
MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZh
bWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUg
RGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwN
Cgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBw
dDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQphOmxpbmssIHNwYW4u
TXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRl
eHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0Zv
bGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1k
ZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0FjZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5N
c29BY2V0YXRlDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFs
bG9vbiBUZXh0IENoYXIiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0K
CWZvbnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIixzYW5zLXNlcmlmO30NCnAu
TXNvTGlzdFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3Jh
cGgNCgl7bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6MGluOw0KCW1hcmdpbi1y
aWdodDowaW47DQoJbWFyZ2luLWJvdHRvbTowaW47DQoJbWFyZ2luLWxlZnQ6LjVpbjsNCgltYXJn
aW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGlt
ZXMgTmV3IFJvbWFuIixzZXJpZjt9DQpzcGFuLkJhbGxvb25UZXh0Q2hhcg0KCXttc28tc3R5bGUt
bmFtZToiQmFsbG9vbiBUZXh0IENoYXIiOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28t
c3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IjsNCglmb250LWZhbWlseToiVGFob21hIixzYW5zLXNl
cmlmO30NCnNwYW4uRW1haWxTdHlsZTE5DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZv
bnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5F
bWFpbFN0eWxlMjANCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1p
bHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLmFwcGxlLWNv
bnZlcnRlZC1zcGFjZQ0KCXttc28tc3R5bGUtbmFtZTphcHBsZS1jb252ZXJ0ZWQtc3BhY2U7fQ0K
Lk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXpl
OjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFy
Z2luOjcwLjg1cHQgNzAuODVwdCA3MC44NXB0IDcwLjg1cHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0K
CXtwYWdlOldvcmRTZWN0aW9uMTt9DQovKiBMaXN0IERlZmluaXRpb25zICovDQpAbGlzdCBsMA0K
CXttc28tbGlzdC1pZDo1NzA1MDMyNzk7DQoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7DQoJbXNvLWxp
c3QtdGVtcGxhdGUtaWRzOi0xNzYyNzM5OTgyIDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1
IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1
Mjg1O30NCkBsaXN0IGwwOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1m
YW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1h
dDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsN
Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0K
CWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWwzDQoJe21zby1sZXZl
bC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVs
LXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQt
aW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw0
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3Qg
bDA6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwt
dGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIg
TmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0
Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28t
bGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQt
ZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMDpsZXZlbDcNCgl7bXNvLWxldmVsLW51bWJlci1m
b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6
bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4y
NWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDgNCgl7bXNvLWxldmVs
LW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRh
Yi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k
ZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVs
OQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674Kn
Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBs
aXN0IGwxDQoJe21zby1saXN0LWlkOjY3NDk2MDA0ODsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsN
Cgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6NzU1MDI5Njc2IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5
MDI1Mjg1IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAyNTI4MSAyNjkwMjUyODMg
MjY5MDI1Mjg1O30NCkBsaXN0IGwxOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpi
dWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJ
Zm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwxOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVy
LWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6
bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4y
NWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDE6bGV2ZWwzDQoJe21z
by1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNv
LWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0K
CXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDE6
bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4
dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np
dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0K
QGxpc3QgbDE6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNv
dXJpZXIgTmV3Ijt9DQpAbGlzdCBsMTpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6
YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsN
Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0K
CWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMTpsZXZlbDcNCgl7bXNvLWxldmVsLW51
bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMTpsZXZlbDgNCgl7bXNv
LWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwx
OmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRl
eHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2Rpbmdz
O30NCkBsaXN0IGwyDQoJe21zby1saXN0LWlkOjc4NTEyNDQ5ODsNCgltc28tbGlzdC10eXBlOmh5
YnJpZDsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6LTI5NTg5OTgwMiAyNjkwMjUyODEgMjY5MDI1
MjgzIDI2OTAyNTI4NSAyNjkwMjUyODEgMjY5MDI1MjgzIDI2OTAyNTI4NSAyNjkwMjUyODEgMjY5
MDI1MjgzIDI2OTAyNTI4NTt9DQpAbGlzdCBsMjpsZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1m
b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6
bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4y
NWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMjpsZXZlbDINCgl7bXNvLWxldmVs
LW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRh
Yi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k
ZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwyOmxldmVs
Mw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674Kn
Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBs
aXN0IGwyOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl
dmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3lt
Ym9sO30NCkBsaXN0IGwyOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2
ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFt
aWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDI6bGV2ZWw2DQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9w
Om5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0u
MjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDI6bGV2ZWw3DQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDI6bGV2ZWw4
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0K
CW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm
dDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpA
bGlzdCBsMjpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s
ZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5Oldp
bmdkaW5nczt9DQpvbA0KCXttYXJnaW4tYm90dG9tOjBpbjt9DQp1bA0KCXttYXJnaW4tYm90dG9t
OjBpbjt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZh
dWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwh
LS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86
aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFb
ZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1DQSIgbGluaz0iYmx1ZSIgdmxpbms9
InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4t
VVMiPkhpIFBhc2NhbC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPklm
IHdlIG1vdmUgYWhlYWQgd2l0aCB0aGUgc29sdXRpb24gZGlzY3Vzc2VkIGJldHdlZW4gbXlzZWxm
IGFuZCBBbGV4YW5kZXIsIGFsaWFzZXMgd29u4oCZdCBzYXZlIG11Y2ggc3BhY2UgYW5kIGFyZSBu
b3Qgd29ydGggaXQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UaGUg
c29sdXRpb24gaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBwcmluY2lwbGVzOjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRl
bnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtpZiAhc3VwcG9ydExpc3RzXT48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpTeW1ib2w7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PHNwYW4gc3R5bGU9Im1zby1saXN0Okln
bm9yZSI+wrc8c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVv
dDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9z
cGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5EYXRhIG5vZGVzIGFyZSBpZGVudGlmaWVkIHVz
aW5nIGEgMjAgYml0cyByZWdpc3RlcmVkIG1vZHVsZSBpZGVudGlmaWVyIGFuZCBhIDEwIGJpdHMg
YXNzaWduZWQgWUFORyBJRCwgMiBiaXRzIGFyZSByZXNlcnZlZA0KIGZvciBmdXR1cmUgdXNlLjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0i
dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtpZiAhc3VwcG9y
dExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpTeW1ib2w7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PHNwYW4gc3R5bGU9Im1z
by1saXN0Oklnbm9yZSI+wrc8c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5TaW1pbGFybHkgYXMgUkVTVGNv
bmYsIGRhdGEgbm9kZXMgY2FuIGJlIGlkZW50aWZpZWQgdXNpbmcgYSBsb25nIGZvcm0gKG1vZHVs
ZSBpZGVudGlmaWVyLCBZQU5HIElEKSBvciBhIHNob3J0IGZvcm0gKFlBTkcNCiBJRCkuIExvbmcg
Zm9ybSBpcyB1c2VkIG9ubHkgd2hlbiBuZWVkZWQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5Ob3RlOiBNb2R1bGUgSUQgemVybyBpcyBpbnZhbGlk
IHNpbmNlIGl0IG9jY3VweSB0aGUgc2FtZSBJRCBzcGFjZSBhcyB0aGUgc2hvcnQgZm9ybS48bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRl
eHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRM
aXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFuIHN0eWxlPSJtc28t
bGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJv
bWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+RGF0YSBub2RlKHMpIHNlbGVjdGVk
IGJ5IGEgR0VUIHN0YXRlbWVudCBhcmUgbGlzdGVkIGluIGEgcXVlcnkgcGFyYW1ldGVyIGFuZCBl
bmNvZGVkIGluIENCT1IuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQ
YXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxm
bzEiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0
ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPk1l
dGEgZGF0YSAoZS5nLiBsaXN0IG9mIG1vZHVsZXMsIG1vZHVsZSB2ZXJzaW9uKSBhcmUgcHJvdmlk
ZWQgdXNpbmcgc3RhbmRhcmQgWUFORyBtb2R1bGVzPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48YSBocmVmPSJodHRwOi8vd3d3Lm5ldGNvbmZjZW50
cmFsLm9yZy9tb2R1bGVzL2lldGYteWFuZy1saWJyYXJ5LzIwMTQtMDktMjYiPmh0dHA6Ly93d3cu
bmV0Y29uZmNlbnRyYWwub3JnL21vZHVsZXMvaWV0Zi15YW5nLWxpYnJhcnkvMjAxNC0wOS0yNjwv
YT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxh
IGhyZWY9Imh0dHA6Ly93d3cubmV0Y29uZmNlbnRyYWwub3JnL21vZHVsZXJlcG9ydC9pZXRmLXJl
c3Rjb25mLW1vbml0b3JpbmciPmh0dHA6Ly93d3cubmV0Y29uZmNlbnRyYWwub3JnL21vZHVsZXJl
cG9ydC9pZXRmLXJlc3Rjb25mLW1vbml0b3Jpbmc8L2E+PG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0
LWxhbmd1YWdlOkVOLVVTIj5UaGUgc29sdXRpb24gaGF2ZSB0aGUgZm9sbG93aW5nIGNoYXJhY3Rl
cmlzdGljczo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFw
aCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMiBsZXZlbDEgbGZvMiI+PCFb
aWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFu
IHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+Tm8gaGFzaCwg
bm8gY2xhc2hlcywgbm8gcmUtaGFzaCB0YWJsZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0
OmwyIGxldmVsMSBsZm8yIj48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTpTeW1ib2w7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+wrc8c3BhbiBzdHls
ZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+
PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj5ObyBpbml0aWFsIGhhbmRzaGFrZSByZXF1aXJlZDxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4y
NWluO21zby1saXN0OmwyIGxldmVsMSBsZm8yIj48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpTeW1ib2w7Y29sb3I6IzFGNDk3RDtt
c28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9yZSI+
wrc8c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwv
c3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5ObyBiYXNlNjQgZW5jb2Rpbmc8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNv
LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkZvciBleGFtcGxlPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47
bXNvLWxpc3Q6bDEgbGV2ZWwxIGxmbzMiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7Ctzxz
cGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFu
Pjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPkFzc3VtaW5nIG1vZHVsZSBJRCAyNSwgWUFORyBJRCAyIHRvIDU8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9
InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMSBsZXZlbDEgbGZvMyI+PCFbaWYgIXN1cHBv
cnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9s
O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFuIHN0eWxlPSJt
c28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3
IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+QXNzdW1pbmcgdGhhdCBtb2R1
bGUgSUQgMjUsIFlBTkcgJm5ic3A7SUQgMiBpcyBlbmNvZGVkIHVzaW5nIHRoZSBsb25nIGZvcm0g
YXMgMTEwMDEgMDAwMDAwMDAxMCBvcg0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj4yNTYwMjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFz
dC1sYW5ndWFnZTpFTi1VUyI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
UkVROiBHRVQ8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+
ZXhhbXBsZS5jb20vbWc/c2VsZWN0KCBbPHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFj
ZSI+Jm5ic3A7PC9zcGFuPjI1NjAyLCAzIF0gKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIGxhbmc9IkZSLUNBIiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+UkVTOiAyLjA1IENvbnRlbnQgKENvbnRlbnQtRm9ybWF0OiBhcHBsaWNh
dGlvbi9jYm9yKTwvc3Bhbj48c3BhbiBsYW5nPSJGUi1DQSI+PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj57PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj4mbmJzcDsyIDogJnF1b3Q7dmFsdWUmcXVvdDssPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsgMyA6IHs8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyA0IDogJnF1b3Q7dmFs
dWUmcXVvdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4sPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsgJm5ic3A7IDUgOiAmcXVvdDt2YWx1ZSZxdW90Oyw8
L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJz
cDsgfTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
YXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+fTxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5SRVE6IFBVVDxzcGFuIGNsYXNzPSJhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5leGFtcGxlLmNvbSAoQ29udGVudC1Gb3JtYXQ6
IGFwcGxpY2F0aW9uL2Nib3IpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj57PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsg
MjU2MDMgOiB7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJz
cDsmbmJzcDsmbmJzcDsgNCA6ICZxdW90O3ZhbHVlJnF1b3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
ZiI+LDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
YXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7ICZu
YnNwOyA1IDogJnF1b3Q7dmFsdWUmcXVvdDssPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0
Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7IH08L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPn08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4i
PjxzcGFuIGxhbmc9IkZSLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVTOiAyLjA1IE9r
PC9zcGFuPjxzcGFuIGxhbmc9IkZSLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0
Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPHRhYmxlIGNsYXNz
PSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9
IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29s
bGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9
IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlk
IHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4w
NXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij48aW1nIGJvcmRlcj0iMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIyMiIgaWQ9IlBpY3R1cmVfeDAw
MjBfMiIgc3JjPSJjaWQ6aW1hZ2UwMDEuanBnQDAxRDBBMzdBLjM5NDczNTUwIiBhbHQ9ImNpZDpp
bWFnZTAwMS5qcGdAMDFDODY4RDguQkYwQkI3RTAiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
dGQ+DQo8dGQgd2lkdGg9IjU4MCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo0MzQuNjVwdDtw
YWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+TWljaGVsIFZlaWxsZXR0ZTxicj4NClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3I8
L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRyaWxsaWFudCBJbmMuPGJyPg0KVGVsOiA0NTAtMzc1LTA1
NTYgZXh0LiAyMzc8YnI+DQo8YSBocmVmPSJtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tIj48c3BhbiBzdHlsZT0iY29sb3I6IzA1NjNDMSI+bWljaGVsLnZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj48YSBocmVmPSJodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNh
bnMtc2VyaWYiPnd3dy50cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPg0KICZuYnNwOyA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4N
CjwvdGFibGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9
ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0
IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIGxhbmc9IkVOLVVT
IiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWYiPkZyb206PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
Ij4gUGFzY2FsIFRodWJlcnQgKHB0aHViZXJ0KSBbbWFpbHRvOnB0aHViZXJ0QGNpc2NvLmNvbV0N
Cjxicj4NCjxiPlNlbnQ6PC9iPiAxMCBqdWluIDIwMTUgMDk6MjY8YnI+DQo8Yj5Ubzo8L2I+IEFu
ZHkgQmllcm1hbjsgTWljaGVsIFZlaWxsZXR0ZTxicj4NCjxiPkNjOjwvYj4gNnRpc2NoQGlldGYu
b3JnOyBBbGV4YW5kZXIgUGVsb3Y7IGNvcmVAaWV0Zi5vcmc8YnI+DQo8Yj5TdWJqZWN0OjwvYj4g
UkU6IFs2dGlzY2hdIFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXM8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPkRlYXIgYWxsOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGlzIGxvb2tzIGxpa2UgdGhl
IHByb2JsZW0gb2YgbG9jYWwgbmFtZXNwYWNlcywmbmJzcDsgd2hpY2ggaXMgdGhlIHJlYXNvbiB3
aHkgTVBMUyBzd2l0Y2hlcyBsYWJlbHMuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5U
aGUgdXNlciBtYXkgYWNjZXNzIGEgbGltaXRlZCBzZXQgb2YgcmVzb3VyY2VzIGZyb20gYSBudW1i
ZXIgb2Ygc2VydmVycywgYW5kIHNlcnZlcnMgYXJlIHJlYWQgYnkgbWFueSB1c2Vycy4NCjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVT
IiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+WW91IGNhbm5vdCBlbnN1cmUgdGhhdCB5b3UgaGF2
ZSBhIHNpbmdsZSBhbGlhcyBzcGFjZSB0aGF0IHNhdGlzZmllcyB0aGVtIGFsbC48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+U28gLHdoYXQgaWYgdGhlIHVzZXIgaGFkIGl0cyBvd24gc2V0IG9mIGFsaWFzZXMgYW5kIHRo
ZSBzZXJ2ZXIgYWxzbyBoYWQgaXRzIG93biBzZXQgb2YgYWxpYXNlcz8NCjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5U
aGUgYWxpYXNlcyBjb3VsZCBiZSBtYXBwZWQgaW4gYSB0YWJsZSBsaWtlIGEgdVNBUCBhbmQgYSBw
U0FQIGFyZSBtYXBwZWQgYWNyb3NzIGxheWVycy4gQnJvYWRseTo8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPi0gRmlyc3QgdGltZSBhIHVzZXIgcmVxdWVzdHMgYSByZXNvdXJjZSBpbiBh
IHNlcnZlciwgaXQgY29tZXMgd2l0aCBhIHR1cGxlICh1c2VyaWQsIHVzZXJhbGlhcywgZnVsbG5h
bWUpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4tIFRoZSBzZXJ2ZXIgcmVzcG9uZHMg
d2l0aCAoc2VydmVyaWQsIHNlcnZlcmFsaWFzLCB1c2VyaWQsIHVzZXJhbGlhcykuDQo8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+QWZ0ZXIgdGhhdCwmbmJzcDsgaWYgdGhlIHNlcnZlciBpcyBhIGNvbnN0cmFpbmVkIGRl
dmljZSB0aGVuIHRoZSB1c2VyIHRhbGtzIHRvIHRoZSBzZXJ2ZXIgd2l0aCAoc2VydmVyaWQsIHNl
cnZlcmFsaWFzKSBhbmQgdGhlIHVzZXIgbWFpbnRhaW5zIGEgc3dpdGNoaW5nDQogdGFibGUgZm9y
IHRoZSByZXNvdXJjZSBpdCB1c2VzIG9uIHZhcmlvdXMgc2VydmVycy48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPklmIHRoZSB1c2VyIGlzIHRoZSBjb25zdHJhaW5lZCBkZXZpY2UgYW5k
IHRoZSBzZXJ2ZXIgaXMgbm90LCB0aGUgdXNlciBjb3VsZCB0YWxrIHdpdGggKHVzZXJpZCwgdXNl
cmFsaWFzKSBhbmQgdGhlIHNlcnZlciBtYWludGFpbnMgYSBzd2l0Y2hpbmcgdGFibGUuPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPkZvciBsYXJnZSBzZXJ2ZXJzLCB0aGUgc2VydmVyIG1heSBhbGxvY2F0ZSBhbGlhc2Vz
IGR5bmFtaWNhbGx5IGJhc2VkIG9uIHdoYXQgaXQgaXMgYmVpbmcgYXNrZWQuIFdl4oCZZCB0aGVu
IG5lZWQgdG8gdGFsayBhYm91dCBhbGlhcyB1cGRhdGUgb3IgcmV2b2NhdGlvbiwNCiBwcm9iYWJs
eSBpbiB0ZXJtcyBvZiBzZXNzaW9uIGFuZCBsaWZldGltZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+RG9lcyB0aGF0
IGxvb2sgdXNhYmxlPzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5QYXNjYWw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpu
b25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBw
dCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVD
NERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O1RhaG9tYSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4g
bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1Rh
aG9tYSZxdW90OyxzYW5zLXNlcmlmIj4gNnRpc2NoIFs8YSBocmVmPSJtYWlsdG86NnRpc2NoLWJv
dW5jZXNAaWV0Zi5vcmciPm1haWx0bzo2dGlzY2gtYm91bmNlc0BpZXRmLm9yZzwvYT5dDQo8Yj5P
biBCZWhhbGYgT2YgPC9iPkFuZHkgQmllcm1hbjxicj4NCjxiPlNlbnQ6PC9iPiB2ZW5kcmVkaSA1
IGp1aW4gMjAxNSAyMDo1NTxicj4NCjxiPlRvOjwvYj4gTWljaGVsIFZlaWxsZXR0ZTxicj4NCjxi
PkNjOjwvYj4gPGEgaHJlZj0ibWFpbHRvOjZ0aXNjaEBpZXRmLm9yZyI+NnRpc2NoQGlldGYub3Jn
PC9hPjsgQWxleGFuZGVyIFBlbG92Ow0KPGEgaHJlZj0ibWFpbHRvOmNvcmVAaWV0Zi5vcmciPmNv
cmVAaWV0Zi5vcmc8L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbNnRpc2NoXSBSZXNlcnZl
IHNwYWNlIGZvciBhbGlhc2VzPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
VVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5PbiBGcmksIEp1biA1
LCAyMDE1IGF0IDExOjQxIEFNLCBNaWNoZWwgVmVpbGxldHRlICZsdDs8YSBocmVmPSJtYWlsdG86
TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+TWljaGVs
LlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj5IaSBBbGV4YW5kZXI8L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj5JIGhhdmUgc29tZSBjb25jZXJucyBhYm91dCBhbGxvd2lu
ZyBDb01JIGNsaWVudChzKSB0aGUgY29udHJvbCBvZiB0aGUgbGlzdCBvZiBhbGlhc2VzLjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPlRoaXMgYXBwcm9hY2ggd29yayBmaW5lIGZvciB0aGUgZmlyc3QgQ29N
SSBhcHBsaWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1dCB3aGF0IGRvIHdlIGRvIHdpdGggdGhlIHN1
YnNlcXVlbnQNCiBDb01JIGFwcGxpY2F0aW9uPzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPk9uZSBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29N
SSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5vZGUgSUQpIHRvIHRoZSBDb01J
IHNlcnZlci4NCiBJbiB0aGlzIGNhc2UsIHRoZSBDb01JIGNsaWVudCBtaWdodCByZWNlaXZlIGFu
IGVycm9yIGlmIG9uZSBvciBtdWx0aXBsZSBvZiB0aGVzZSBhbGlhc2VzIGFyZSBhbHJlYWR5IHJl
c2VydmVkLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkEg
c2Vjb25kIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEg
bGlzdCBvZiAoZGF0YSBub2RlIElEKSBhbmQgZ2V0IGEgbGlzdCBvZg0KIChhbGlhcywgZGF0YSBu
b2RlIElEKSBmcm9tIHRoZSBDb01JIHNlcnZlci4gSW4gdGhpcyBjYXNlLCBDb01JIGNsaWVudHMg
d2lsbCBoYXZlIHRvIGRlYWwgd2l0aCBhIG1peCBwb3B1bGF0aW9uIG9mIGFsaWFzZXMuPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlIHByb3Bvc2VkIHNv
bHV0aW9uIG5lZWQgdG8gc2NhbGUgdG8gYSBtdWx0aS12ZW5kb3JzLCBtdWx0aXBsZSBhcHBsaWNh
dGlvbnMgZW52aXJvbm1lbnQuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+V2l0aCB0aGlzIGlzIG1pbmQs
IGRvIHlvdSBoYXZlIGFueSBhbHRlcm5hdGl2ZSBzb2x1dGlvbnMgdG8gcHJvcG9zZT88L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPkRvZXMgdGhp
cyBhcHByb2FjaCBhbGxvdyBlYWNoIGNsaWVudCB0byBoYXZlIGEgZGlmZmVyZW50IHNldCBvZiBh
bGlhc2VzLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5zbyB0aGUgc2VydmVyIGhhcyB0byBtYWludGFp
biBhIGNvbmZpZ3VyZWQgbWFwcGluZyBmb3IgZWFjaCBjbGllbnQ/PG86cD48L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
VVMiPlRoaXMgc2VlbXMgbGlrZSBhIGxvdCBvZiBvdmVyaGVhZCBhbmQgTlYtc3RvcmFnZSByZXF1
aXJlbWVudHM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+b24gdGhlIHNlcnZlci48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPkNoYW5naW5nIHRoZSBzY2hlbWEg
aWRlbnRpZmllcnMgYmFzZWQgb24gd2hpY2ggY2xpZW50IGlzPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi
PnNlbmRpbmcgdGhlIHJlcXVlc3Qgc2VlbXMgbGlrZSBhIGNvbXBsaWNhdGVkIGRlc2lnbiBjaGFu
Z2U8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+ZnJvbSBSRVNUQ09ORiwgTkVUQ09ORiwgb3IgU05NUCwg
d2hlcmUgdGhlcmUgaXMgb25seTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4xIHNjaGVtYSB0cmVlIHdo
aWNoIGlzIG5vdCBkZXBlbmRlbnQgb24gdGhlIGNsaWVudCBpZGVudGl0eS48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLVVTIj5BbmR5PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
VVMiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5
bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzow
aW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tdG9wOjUuMHB0O21hcmdp
bi1yaWdodDowaW47bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBj
ZWxscGFkZGluZz0iMCIgd2lkdGg9IjcxNyIgc3R5bGU9IndpZHRoOjUzNy43NXB0O2JvcmRlci1j
b2xsYXBzZTpjb2xsYXBzZSI+DQo8dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdodDo0OS4wNXB0Ij4N
Cjx0ZCB3aWR0aD0iMTM3IiBzdHlsZT0id2lkdGg6MTAzLjFwdDtib3JkZXI6bm9uZTtib3JkZXIt
cmlnaHQ6c29saWQgd2luZG93dGV4dCAxLjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7
aGVpZ2h0OjQ5LjA1cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+PGltZyBib3JkZXI9IjAiIHdpZHRoPSIxMjAiIGhlaWdodD0iMjIiIGlk
PSJfeDAwMDBfaTEwMjUiIHNyYz0iY2lkOmltYWdlMDAxLmpwZ0AwMUQwQTM3QS4zOTQ3MzU1MCIg
YWx0PSJjaWQ6aW1hZ2UwMDEuanBnQDAxQzg2OEQ4LkJGMEJCN0UwIj48L3NwYW4+PG86cD48L286
cD48L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6
NDM0LjY1cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0bzttYXJnaW4tbGVmdDo4LjFwdCI+DQo8c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+TWljaGVsIFZlaWxsZXR0ZTxicj4NClN5c3RlbSBBcmNoaXRlY3R1cmUgRGly
ZWN0b3I8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bWFyZ2lu
LWxlZnQ6OC4xcHQiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRyaWxsaWFudCBJbmMu
PGJyPg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzc8YnI+DQo8YSBocmVmPSJtYWlsdG86bWlj
aGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5
bGU9ImNvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bh
bj48L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21hcmdp
bi1sZWZ0OjguMXB0Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48YSBocmVmPSJo
dHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlm
Ij53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj4NCiAmbmJzcDsgPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC90ZD4NCjwvdHI+
DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25l
O2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
ZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiBBbGV4YW5k
ZXINCiBQZWxvdiBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNv
bS1icmV0YWduZS5ldSIgdGFyZ2V0PSJfYmxhbmsiPmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJy
ZXRhZ25lLmV1PC9hPl0NCjxicj4NCjxiPlNlbnQ6PC9iPiA1IGp1aW4gMjAxNSAxMjowMzxicj4N
CjxiPlRvOjwvYj4gTWljaGVsIFZlaWxsZXR0ZTxicj4NCjxiPkNjOjwvYj4gQW5keSBCaWVybWFu
OyA8YSBocmVmPSJtYWlsdG86NnRpc2NoQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+NnRpc2No
QGlldGYub3JnPC9hPjsNCjxhIGhyZWY9Im1haWx0bzpjb3JlQGlldGYub3JnIiB0YXJnZXQ9Il9i
bGFuayI+Y29yZUBpZXRmLm9yZzwvYT48YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFJlc2VydmUg
c3BhY2UgZm9yIGFsaWFzZXM8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPkhpIE1pY2hlbCw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGJs
b2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5MZSA1IGp1aW4gMjAxNSDDoCAxNzoxNywgTWlj
aGVsIFZlaWxsZXR0ZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxp
YW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5j
LmNvbTwvYT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkhpIEFsZXhhbmRlcjwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SW4geW91ciBwcmVzZW50YXRp
b24gYXQgNlRpU0NILCB5b3UgcHJvcG9zZSB0aGUgZm9sbG93aW5nIGRhdGEgbm9kZSBJRCBzdHJ1
Y3R1cmUuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3Bh
Y2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2Ui
Pg0KPHRib2R5Pg0KPHRyPg0KPHRkIHdpZHRoPSI2MjMiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lk
dGg6NDY3LjVwdDtib3JkZXI6c29saWQgd2luZG93dGV4dCAxLjBwdDtwYWRkaW5nOjBpbiA1LjRw
dCAwaW4gNS40cHQiPg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPuKAojwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj4zMg0KIGJpdHMgWUFORyBJRDwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6MS4waW4iPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj7igJM8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9zcGFuPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZiI+MjANCiBiaXRzIGZvciBtb2R1bGUgSUQgKGFzc2lnbmVkIGJ5IElFVEYpPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDoxLjBp
biI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPuKAkzwvc3Bhbj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4xMA0KIGJpdHMgZm9yIGRhdGEgbm9kZSBJRCAo
Z2VuZXJhdGVkIGRldGVybWluaXN0aWNhbGx5KTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkJh
c2VkIG9uIHRoaXMgc3RydWN0dXJlLCB3ZSBjYW4gcmVzZXJ2ZSZuYnNwOzwvc3Bhbj48c3BhbiBs
YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmIj5tb2R1bGUNCiBJRCB6ZXJvIGZvciBhbGlhc2VzLjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj5JIHdhcyBqdXN0IHN1bW1hcml6aW5nIHdoYXQgd2FzIGRpc2N1c3NlZCBvbiB0
aGUgZGlzY3Vzc2lvbiBpbiBDb01JLiBBY3R1YWxseSwgaXQgaXMgMzAgYml0cyBZQU5HIElELCBi
dXQgdGhhdOKAmXMgZm9yIHB1cnBvc2VzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgWUFORyBo
YXNoIGFuZCBJIGRvbuKAmXQgbWluZA0KIGtlZXBpbmcgaXQgMzAgYml0cy48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttYXJnaW4tYm90dG9tOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj5JZiB3ZSB3YW50IHRvIG1pbmltaXplIGJvdGggdGhlIG5ldHdvcmsgYW4gbm9k
ZSByZXNvdXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFzIG1lY2hhbmlzbSwgd2UgY2FuIG1hcA0K
IGFuIGVudGlyZSBtb2R1bGUgdG8gdGhpcyBzcGFjZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLVVTIiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWYiPlRoaXMgY2FuIGJlIGltcGxlbWVudGVkIGJ5IGEgc2luZ2xlIGludGVnZXIgcmVz
b3VyY2UgKGUuZy4gbGVhZiBhbGxpYXNzZWRNb2R1bGUgeyB0eXBlIHVpbnQzMiB9ICk8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPlRoaXMgYXBwcm9hY2ggcmVxdWlyZSA0IGJ5dGVz
IHBlciBDb01JIHNlcnZlciBhY2Nlc3NlZC48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2Nr
cXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+SXQgaXMgcG9zc2libGUg
dG8gbWFwIGFuIGVudGlyZSBtb2R1bGUgdG8gdGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlzIGlzIHVw
IHRvIHRoZSBvcGVyYXRvci4gSG93ZXZlciwgaWYgeW91IGxvYWQgdHdvIG1vZHVsZXMgd2hpY2gg
cmVkZWZpbmUgdGhlIHNhbWUgYWxpYXMgeW91IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQNCiBmcm9t
IGl0LiBNYXliZSBpdCB3b3VsZCBiZSBpbnRlcmVzdGluZyB0byBiZSBhYmxlIHRvIHNwZWNpZnkg
dGhhdCB5b3Ugd2FudCB0aGUgYWxpYXNlcyBmcm9tIFRISVMgc3BlY2lmaWMgbW9kdWxlIHRvIGJl
IHVzZWQuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj5JZiB0aGUgL21nLzAgYWxpYXMgaXMgcmVzZXJ2ZWQgZm9yIG1hbmFnaW5nIHRoZSBh
bGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNpbXBseSBzYXlpbmc6PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPlBPU1QgL21nLzA8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+ezxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDsmcXVvdDtzb3Vy
Y2VfdXJpJnF1b3Q7IDogJnF1b3Q7L21nL0JBQSZxdW90OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj59PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj53aGVyZSAvbWcvQkFBIGlzIHRoZSBZ
QU5HIGlkIG9mIHRoZSBtb2R1bGUgKDIwIGJpdHMgbW9kdWxlIElEICYjNDM7IDEwIGJpdHMgc2V0
IHRvIDApLiBUaGlzIHdheSwgdGhlIHNlcnZlciB3aWxsIGtub3c6IE9LLCBnZXQgdGhlIGFsaWFz
IG1hcHBpbmcgZnJvbSB0aGUgWUFORyBzY2hlbWUgb2YgbW9kdWxlIHdpdGgNCiBJRCA9IEIgKGFz
IGRlZmluZWQgYnkgdGhlIElFVEYpLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+T3IsIHlvdSBjYW4gZHluYW1pY2FsbHkgY29u
ZmlndXJlIHRoZSBtYXBwaW5nOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+UE9TVCAvbWcvMDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj57PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOyBZQU5HX2lkIDogYWxpYXMsPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNw
OyBZQU5HX2lkIDogYWxpYXMsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPiZuYnNwOyBZQU5HX2lkIDogYWxpYXM8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+fTxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttYXJnaW4tYm90dG9tOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8Ymxv
Y2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmIj5JZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhpYmxlIGFsaWFz
ZXMgbWVjaGFuaXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5HIElEKQ0KIHNl
ZW0gdGhlIHNvbHV0aW9uLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SG93ZXZl
ciwgd2UgaGF2ZSB0byBjb25zaWRlciB0aGF0IHRoaXMgc3RydWN0dXJlIGNhbiBiZSBhcyBsYXJn
ZSBhcyZuYnNwOzx1PjEyNTAgYnl0ZXMgcGVyIENvTUkgc2VydmVyIGFjY2Vzc2VkPC91PiZuYnNw
O2lmDQogbGltaXRlZCB0byAyNTYgYWxpYXNlcy48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPlRoaXMgaXMgYXNzdW1pbmcgeW91IG5lZWQgYSBzZXBhcmF0ZSBtYXBwaW5nIGZvciBlYWNo
IHNlcnZlci4gSSB3b3VsZCBzdXBwb3NlIHRoYXQgaW4gYSBuZXR3b3JrIHlvdeKAmWxsIGhhdmUg
YSBzaW5nbGUgYWxpYXMgbWFwcGluZyAobWF5YmUgdHdvPykgLSBhZnRlciBhbGwsIHlvdeKAmXJl
IHRyeWluZyB0byBvcHRpbWl6ZQ0KIHRoZSBtYW5hZ2VtZW50IG9mIHlvdXIgZGV2aWNlcyAoc2Vy
dmVycykuIFNvLCB0eXBpY2FsbHkgeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGgg
YWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRoYXQgb24gdGhlbSwg
YW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPkJlc3Qs
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPkFs
ZXhhbmRlcjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bWFyZ2luLWJvdHRvbToxMi4wcHQiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2lu
LWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjx0YWJs
ZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxw
YWRkaW5nPSIwIiB3aWR0aD0iNzE3IiBzdHlsZT0id2lkdGg6NTM3Ljc1cHQ7Ym9yZGVyLWNvbGxh
cHNlOmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1cHQiPg0KPHRk
IHdpZHRoPSIxMzciIHN0eWxlPSJ3aWR0aDoxMDMuMXB0O2JvcmRlcjpub25lO2JvcmRlci1yaWdo
dDpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWln
aHQ6NDkuMDVwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPiZsdDtpbWFnZTAwMS5qcGcmZ3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1cHQ7
cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXYgc3R5bGU9
Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlm
Ij5NaWNoZWwgVmVpbGxldHRlPGJyPg0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQi
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPlRyaWxsaWFudCBJbmMuPGJy
Pg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzc8YnI+DQo8YSBocmVmPSJtYWlsdG86bWljaGVs
LnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9
ImNvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48
L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVm
dDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PGEgaHJl
Zj0iaHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZiI+d3d3LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjwvZGl2Pg0KPC9i
bG9ja3F1b3RlPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_CO2PR0601MB7926E83D17647168C1829A2FEBD0CO2PR0601MB792na_--

--_004_CO2PR0601MB7926E83D17647168C1829A2FEBD0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Wed, 10 Jun 2015 17:04:24 GMT";
	modification-date="Wed, 10 Jun 2015 17:04:24 GMT"
Content-ID: <image001.jpg@01D0A37A.39473550>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB7926E83D17647168C1829A2FEBD0CO2PR0601MB792na_--


From nobody Wed Jun 10 14:52:29 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 534701A1B25 for <core@ietfa.amsl.com>; Wed, 10 Jun 2015 14:52:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LMwWXBp_F16L for <core@ietfa.amsl.com>; Wed, 10 Jun 2015 14:52:26 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3A5BD1B2C05 for <core@ietf.org>; Wed, 10 Jun 2015 14:52:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [134.102.201.11]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5ALqMCC012910 for <core@ietf.org>; Wed, 10 Jun 2015 23:52:22 +0200 (CEST)
Received: from alma.local (p5DCCC91B.dip0.t-ipconnect.de [93.204.201.27]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3m6MVZ5XP0z4rMV; Wed, 10 Jun 2015 23:52:22 +0200 (CEST)
Message-ID: <5578B194.9050309@tzi.org>
Date: Wed, 10 Jun 2015 23:52:20 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: "core@ietf.org WG" <core@ietf.org>
References: <20150610214625.13443.77214.idtracker@ietfa.amsl.com>
In-Reply-To: <20150610214625.13443.77214.idtracker@ietfa.amsl.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/pFMhXJQn11_u2Qc8oPimxnrwBJw>
Subject: [core] Fwd: New Version Notification for draft-tschofenig-core-coap-tcp-tls-04.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jun 2015 21:52:28 -0000

I have submitted a slight update to the coap-tcp-tls draft.

Apart from a number of editorial improvements, this now includes three
alternative proposals for the frame length representation.  Reasoned
comments why we should or should not veer off the simple 16-bit length
(called alternative L1 in the draft), and, if yes, into which direction
(L2? L3? what else?), are welcome.

This is not yet integrated with the text from the websockets draft.

GrÃ¼ÃŸe, Carsten


-------- Original Message --------
Subject: New Version Notification for
draft-tschofenig-core-coap-tcp-tls-04.txt

A new version of I-D, draft-tschofenig-core-coap-tcp-tls-04.txt
has been successfully submitted by Carsten Bormann and posted to the
IETF repository.

Name:		draft-tschofenig-core-coap-tcp-tls
Revision:	04
Title:		A TCP and TLS Transport for the Constrained Application Protocol
(CoAP)
Document date:	2015-06-10
Group:		Individual Submission
Pages:		14
URL:
https://www.ietf.org/internet-drafts/draft-tschofenig-core-coap-tcp-tls-04.txt
Status:
https://datatracker.ietf.org/doc/draft-tschofenig-core-coap-tcp-tls/
Htmlized:
https://tools.ietf.org/html/draft-tschofenig-core-coap-tcp-tls-04
Diff:
https://www.ietf.org/rfcdiff?url2=draft-tschofenig-core-coap-tcp-tls-04

Abstract:
   The Hypertext Transfer Protocol (HTTP) has been designed with TCP as
   an underlying transport protocol.  The Constrained Application
   Protocol (CoAP), which has been inspired by HTTP, has on the other
   hand been defined to make use of UDP.  Therefore, reliable delivery
   and a simple congestion control and flow control mechanism are
   provided by the message layer of the CoAP protocol.

   A number of environments benefit from the use of CoAP directly over a
   reliable byte stream that already provides these services.  This
   document defines the use of CoAP over TCP as well as CoAP over TLS.





Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat



From nobody Wed Jun 10 18:33:57 2015
Return-Path: <weigengyu@bupt.edu.cn>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 592121A7028 for <core@ietfa.amsl.com>; Wed, 10 Jun 2015 18:33:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.228
X-Spam-Level: *
X-Spam-Status: No, score=1.228 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_PASS=-0.001, STOX_REPLY_TYPE=0.439, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FA4mwMzEWiqa for <core@ietfa.amsl.com>; Wed, 10 Jun 2015 18:33:53 -0700 (PDT)
Received: from mx1.bupt.edu.cn (mx1.bupt.edu.cn [211.68.68.2]) by ietfa.amsl.com (Postfix) with ESMTP id DAFC71A7015 for <core@ietf.org>; Wed, 10 Jun 2015 18:33:51 -0700 (PDT)
Received: from mx1.bupt.edu.cn (unknown [127.0.0.1]) by mx1.bupt.edu.cn (AnyMacro(G7)) with SMTP id 800AC19F372 for <core@ietf.org>; Thu, 11 Jun 2015 09:33:49 +0800 (HKT)
Received: from WeiGengyuPC (unknown [10.103.240.2]) by mx1.bupt.edu.cn (AnyMacro(G7)) with ESMTPA id 4AA3A19F35E; Thu, 11 Jun 2015 09:33:49 +0800 (HKT)
Message-ID: <93A7AB7DB850418C8FA2CF7DE629A42A@WeiGengyuPC>
From: "weigengyu" <weigengyu@bupt.edu.cn>
To: "Carsten Bormann" <cabo@tzi.org>
References: <20150610214625.13443.77214.idtracker@ietfa.amsl.com> <5578B194.9050309@tzi.org>
In-Reply-To: <5578B194.9050309@tzi.org>
Date: Thu, 11 Jun 2015 09:33:42 +0800
Organization: BUPT
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=original
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/hjuBa3jY2z-tV1XuFWSWYz-3QFQ>
Cc: core@ietf.org
Subject: Re: [core] Fwd: New Version Notification for draft-tschofenig-core-coap-tcp-tls-04.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2015 01:33:55 -0000

Hi Carsten and all,

One question about this draft.

In page 3, second paragraph,
"A UDP-to-TCP
  gateway will therefore discard all empty messages, such as empty ACKs
  (after operating on them at the message layer), and re-pack the
  contents of all non-empty CON, NON, or ACK messages (i.e., those ACK
  messages that have a piggy-backed response) into NON messages. "

This draft mentioned the UDP-to-TCP gateway for transfering CoAP.
Is it possibles that there is a TCP-to-UDP gateway?

Or it is not necessary to concern a CoAP message will go through TCP-to-UDP 
gateway?

Regards,

Gengyu WEI
Network Technology Center
School of Computer
Beijing University of Posts and Telecommunications
-----åŽŸå§‹é‚®ä»¶----- 
From: Carsten Bormann
Sent: Thursday, June 11, 2015 5:52 AM
To: core@ietf.org WG
Subject: [core] Fwd: New Version Notification for 
draft-tschofenig-core-coap-tcp-tls-04.txt

I have submitted a slight update to the coap-tcp-tls draft.

Apart from a number of editorial improvements, this now includes three
alternative proposals for the frame length representation.  Reasoned
comments why we should or should not veer off the simple 16-bit length
(called alternative L1 in the draft), and, if yes, into which direction
(L2? L3? what else?), are welcome.

This is not yet integrated with the text from the websockets draft.

GrÃ¼ÃŸe, Carsten


-------- Original Message --------
Subject: New Version Notification for
draft-tschofenig-core-coap-tcp-tls-04.txt

A new version of I-D, draft-tschofenig-core-coap-tcp-tls-04.txt
has been successfully submitted by Carsten Bormann and posted to the
IETF repository.

Name: draft-tschofenig-core-coap-tcp-tls
Revision: 04
Title: A TCP and TLS Transport for the Constrained Application Protocol
(CoAP)
Document date: 2015-06-10
Group: Individual Submission
Pages: 14
URL:
https://www.ietf.org/internet-drafts/draft-tschofenig-core-coap-tcp-tls-04.txt
Status:
https://datatracker.ietf.org/doc/draft-tschofenig-core-coap-tcp-tls/
Htmlized:
https://tools.ietf.org/html/draft-tschofenig-core-coap-tcp-tls-04
Diff:
https://www.ietf.org/rfcdiff?url2=draft-tschofenig-core-coap-tcp-tls-04

Abstract:
   The Hypertext Transfer Protocol (HTTP) has been designed with TCP as
   an underlying transport protocol.  The Constrained Application
   Protocol (CoAP), which has been inspired by HTTP, has on the other
   hand been defined to make use of UDP.  Therefore, reliable delivery
   and a simple congestion control and flow control mechanism are
   provided by the message layer of the CoAP protocol.

   A number of environments benefit from the use of CoAP directly over a
   reliable byte stream that already provides these services.  This
   document defines the use of CoAP over TCP as well as CoAP over TLS.





Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat


_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core 



From nobody Wed Jun 10 23:57:19 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6C0A61A9166 for <core@ietfa.amsl.com>; Wed, 10 Jun 2015 23:57:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.15
X-Spam-Level: *
X-Spam-Status: No, score=1.15 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PGfJVR1M2C3j for <core@ietfa.amsl.com>; Wed, 10 Jun 2015 23:57:17 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EA41C1A9165 for <core@ietf.org>; Wed, 10 Jun 2015 23:57:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::b]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5B6v5l7018921; Thu, 11 Jun 2015 08:57:05 +0200 (CEST)
Received: from alma.local (p5DCCC91B.dip0.t-ipconnect.de [93.204.201.27]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3m6bb50yP8z4rVM; Thu, 11 Jun 2015 08:57:05 +0200 (CEST)
Message-ID: <5579313F.1030203@tzi.org>
Date: Thu, 11 Jun 2015 08:57:03 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: weigengyu <weigengyu@bupt.edu.cn>
References: <20150610214625.13443.77214.idtracker@ietfa.amsl.com> <5578B194.9050309@tzi.org> <93A7AB7DB850418C8FA2CF7DE629A42A@WeiGengyuPC>
In-Reply-To: <93A7AB7DB850418C8FA2CF7DE629A42A@WeiGengyuPC>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ag8C49cPBXucDYdt7UcFj69OVHM>
Cc: core@ietf.org
Subject: Re: [core] Fwd: New Version Notification for draft-tschofenig-core-coap-tcp-tls-04.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2015 06:57:18 -0000

weigengyu wrote:
> This draft mentioned the UDP-to-TCP gateway for transfering CoAP.
> Is it possibles that there is a TCP-to-UDP gateway?

Certainly; as there are frequent role (client/server) reversals in CoAP,
I would expect both functions to be included in a single gateway.
On the way from UDP to TCP, it strips away the message layer; in the way
from TCP to UDP, it adds in the message layer functionality (e.g.,
adding message-IDs and performing retransmissions if required).

GrÃ¼ÃŸe, Carsten


From nobody Thu Jun 11 08:39:34 2015
Return-Path: <kovatsch@inf.ethz.ch>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4EB2F1B2AE7 for <core@ietfa.amsl.com>; Thu, 11 Jun 2015 08:39:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.011
X-Spam-Level: 
X-Spam-Status: No, score=-5.011 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YRbVz5KP_n3G for <core@ietfa.amsl.com>; Thu, 11 Jun 2015 08:39:31 -0700 (PDT)
Received: from edge20.ethz.ch (edge20.ethz.ch [82.130.99.26]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AFFD71B2ACC for <core@ietf.org>; Thu, 11 Jun 2015 08:39:29 -0700 (PDT)
Received: from CAS20.d.ethz.ch (172.31.51.110) by edge20.ethz.ch (82.130.99.26) with Microsoft SMTP Server (TLS) id 14.3.195.1; Thu, 11 Jun 2015 17:39:22 +0200
Received: from MBX210.d.ethz.ch ([fe80::ed77:7d47:9467:69a9]) by CAS20.d.ethz.ch ([fe80::2cd8:4907:7776:c56d%10]) with mapi id 14.03.0195.001;  Thu, 11 Jun 2015 17:39:22 +0200
From: "Kovatsch  Matthias" <kovatsch@inf.ethz.ch>
To: Carsten Bormann <cabo@tzi.org>, "core@ietf.org WG" <core@ietf.org>
Thread-Topic: [core] Fwd: New Version Notification for draft-tschofenig-core-coap-tcp-tls-04.txt
Thread-Index: AQHQo8fEi+9hLJZn0kaeZprfbYmYaJ2ncfhg
Date: Thu, 11 Jun 2015 15:39:21 +0000
Message-ID: <55877B3AFB359744BA0F2140E36F52B545DB2A08@MBX210.d.ethz.ch>
References: <20150610214625.13443.77214.idtracker@ietfa.amsl.com> <5578B194.9050309@tzi.org>
In-Reply-To: <5578B194.9050309@tzi.org>
Accept-Language: en-US, de-CH
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [129.132.130.252]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ktZW18VSel2uFRDBs4zK_ucOCXs>
Subject: Re: [core] Fwd: New Version Notification for draft-tschofenig-core-coap-tcp-tls-04.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2015 15:39:33 -0000

SGkNCg0KRmlyc3QsIGhlcmUgaXMgbXkgcmV2aWV3IG9mIHRoZSBDb0FQIG92ZXIgVENQL1RMUyBk
cmFmdCBhcyB2b2x1bnRlZXJlZCBpbiBEYWxsYXMuIEFmdGVyIHRoYXQsIEkgYWRkZWQgc29tZSBj
b21tZW50cyBvbiB0aGUgYWx0ZXJuYXRpdmVzIGludHJvZHVjZWQgaW4gLTA0Lg0KDQpQYWdlIDIp
IFRoZSBwYXJhZ3JhcGggb24gV2ViIGVudmlyb25tZW50cyBpcyBhIGJpdCBjb25mdXNpbmcgd2hl
biB0YWxraW5nIGFib3V0IGZyb250LWVuZHMgKHVzdWFsbHkgdGhlIFdlYiBwYWdlcyBmb3IgdGhl
IHVzZXIpLiBQcm9wb3NhbDoNCg0KRmluYWxseSwgQ29BUCBtYXkgYmUgaW50ZWdyYXRlZCBpbnRv
IGEgV2ViIGVudmlyb25tZW50IHdoZXJlIElvVCBkZXZpY2VzIHVzZSBDb0FQIG92ZXIgVURQIHRv
IGNvbm5lY3QgdG8gYSBjbG91ZCBpbmZyYXN0cnVjdHVyZSwgYnV0IHRoZSBDb0FQIG1lc3NhZ2Vz
IGFyZSB0aGVuIHRyYW5zcG9ydGVkIHVzaW5nIFRDUCBiZXR3ZWVuIHRoZSBiYWNrLWVuZCBzZXJ2
aWNlcy4gIFRoZXNlIHNlcnZpY2VzIG1heSBhbHNvIHVzZSBhIHRyYW5zcGFyZW50IFRDUC10by1V
RFAgZ2F0ZXdheSBhdCB0aGUgY2xvdWQgYm91bmRhcnkgdG8gdGFsayB0byB0aGUgVURQLWJhc2Vk
IElvVC4NCg0KUGFnZSAyKSBMYXN0IHBhcmFncmFwaDogImRvY3VtZW50IGRvY3VtZW50Ig0KDQpQ
YWdlIDMpIFRhbGtpbmcgYWJvdXQgdHJhbnNwb3J0ZWQgTm9uLUNvbmZpcm1hYmxlcyBhbHJlYWR5
IGNhdXNlZCBhIGxvdCBvZiBjb25mdXNpb24uIFRoZSBkb2N1bWVudCBzaG91bGQgc3RhdGUgX2Zy
b20gdGhlIGJlZ2lubmluZ18gdGhhdCB0aGUgd2hvbGUgbWVzc2FnZSBzdWItbGF5ZXIgd2l0aCBp
dHMgbWVzc2FnZSB0eXBlcyBpcyBvYnNvbGV0ZSB3aGVuIHVzaW5nIFRDUC9UTFMuDQoNClBhZ2Ug
MykgVGhlIHNwZWNpZmljYXRpb24gb2YgVURQLXRvLVRDUCAvIFRDUC10by1VRFAgZ2F0ZXdheXMg
c2hvdWxkIGdvIGludG8gYSBwcm9wZXIgc2VjdGlvbi4gKEkgYWxzbyBkbyBub3QgbGlrZSB0aGUg
c3RhdGVtZW50ICJyZS1wYWNrIFsuLi5dIGludG8gTk9OIG1lc3NhZ2VzIi4pDQoNClBhZ2UgMykg
RmlndXJlIDIgaXMgcXVpdGUgcG9pbnRsZXNzIDopDQoNClBhZ2UgNCkgSXQgd291bGQgYmUgaGVs
cGZ1bCB0byBtZW50aW9uIHNlcGFyYXRlIHJlc3BvbnNlcyBhbmQgdG9rZW4gbWF0Y2hpbmcgZGly
ZWN0bHkgaW4gdGhlIGRvY3VtZW50IChJIGd1ZXNzIHRoZSByZWZlcmVuY2UgdG8gUkZDIDcyNTIg
YWltcyBhdCB0aGlzKS4NCg0KUGFnZSA0KSBGaWd1cmUgMyBhZ2FpbiB0YWxrcyBhYm91dCBOT04g
bWVzc2FnZXMuLi4NCg0KUGFnZSA1KSBGaWd1cmUgNSBzaG91bGQgYWxyZWFkeSBpbmNsdWRlIHRo
ZSBzcGVjaWZpZWQgYml0cyBpbnN0ZWFkIG9mICJUIiBmb3IgdHlwZSAobGlrZSB0aGUgcGF5bG9h
ZCBtYXJrZXIpDQoNClBhZ2UgNSkgIk1lc3NhZ2UgTGVuZ3RoIiBpbiBMMSBzaG91bGQgcHJvYmFi
bHkgYmUgIkxlbmd0aCBTaGltIiBsaWtlIGluIEZpZ3VyZSA1IChvciB0aGUgb3RoZXIgd2F5IHJv
dW5kKS4NCg0KUGFnZSA2KSBOb3Qgc3VyZSBpZiB0aGUgbWlzc2luZyBWZXJzaW9uIGZpZWxkIGlu
IEZpZ3VyZSA2IGlzIGEgYnVnIG9yIGEgZmVhdHVyZS4NCg0KUGFnZSA3KSBUaGUgZGlzY3Vzc2lv
biBpcyBhIGJpdCBtaXNwbGFjZWQgaW4gYSBzdWItc2VjdGlvbiBvbiB0aGUgbWVzc2FnZSBmb3Jt
YXQuIFRoZSBpbnNpZ2h0IG9uIHRoZSByZWNvcmQgbGVuZ3RoIGZpZWxkIGNvdWxkIGJlIGludGVn
cmF0ZWQgaW50byB0aGUgbGFzdCBwYXJhZ3JhcGggb2YgU2VjdGlvbiAxIChpbiBhIGNyaXNwZXIg
Zm9ybSkuIFRoZSBpbXBhY3Qgb24gQ29BUCBleHRlbnNpb25zIChlLmcuLCBibG9jayBhbmQgb2Jz
ZXJ2ZSkgc2hvdWxkIGdvIGludG8gaXRzIG93biBzZWN0aW9uLg0KDQpQYWdlIDcpIEkgdGhpbmsg
U2VjdGlvbiA1IG9uIG1lc3NhZ2UgdHJhbnNtaXNzaW9uIHNob3VsZCBjb21lIGJlZm9yZSBtZXNz
YWdlIGZvcm1hdC4gVGhlIGZhY3QgdGhhdCBhIHNpbmdsZSBUQ1AgY29ubmVjdGlvbiBpcyB1c2Vk
IGZvciBtdWx0aXBsZSByZXF1ZXN0LXJlc3BvbnNlIGV4Y2hhbmdlcyBzaG91bGQgYmUgbWVudGlv
bmVkIGVhcmx5LiBUaGUgaW5mb3JtYXRpb24gb24gcG90ZW50aWFsIGludGVybGVhdmluZyBvZiBy
ZXF1ZXN0LXJlc3BvbnNlIHBhaXJzIGFsc28gY29ubmVjdHMgbmljZWx5IHRvIHRoZSBsYXN0IHBh
cmFncmFwaCBvZiBTZWN0aW9uIDMuDQoNCi0tLS0tLS0tLS0tLS0tDQoNCkluIGdlbmVyYWwsIEkg
dGhpbmsgd2UgbmVlZCBzb21lIGV4cGVyaWVuY2UgZnJvbSBpbXBsZW1lbnRpbmcgVURQL1RDUCBn
YXRld2F5cyAoYm90aCB3YXlzKSB0byBkZWNpZGUgb24gcHJhY3RpY2FsIGxlbmd0aHMgaW5kaWNh
dG9ycy4NCg0KRm9yIEwyIGFuZCBMMywgSSBzZWUgdGhlIHByb2JsZW0gdGhhdCB0aGUgc2hvcnQg
bGVuZ3RoIGluZGljYXRvcnMgb2Ygb25lIGJ5dGUgYXJlIHRvbyBzaG9ydCBhbmQgbW9zdCBtZXNz
YWdlcyB3aWxsIG5lZWQgdHdvIGJ5dGVzIGFueXdheSAobm90ZSB0aGF0IEdFVCBhbmQgREVMRVRF
IHJlcXVlc3RzIHN0aWxsIG5lZWQgdG8gY2FycnkgdGhlIFVSSSBhbmQgb3RoZXIgb3B0aW9ucyku
DQoNClRoZSBhZHZhbnRhZ2Ugb2YgTDIgYW5kIEwzIGlzIHRoZSBwb3NzaWJpbGl0eSBvZiBhIDMy
LWJpdCBsZW5ndGggaW5kaWNhdG9yLiBIb3dldmVyLCBzaW5jZSBibG9ja3dpc2UgdHJhbnNmZXJz
IGFyZSBtZW50aW9uZWQgdG8gYmUgcmVxdWlyZWQgZm9yIG5vZGVzIHdpdGggVENQL1RMUyBiaW5k
aW5nLCBJIGRvIG5vdCByZWFsbHkgc2VlIHRoZSBuZWVkIGZvciAzMiBiaXRzLiBJdCB3b3VsZCBi
ZSBjb252ZW5pZW50IGluIGEgQ29BUC1vdmVyLVRDUC9UTFMtb25seSBlbnZpcm9ubWVudCwgYnV0
IEkgc2VlIHRoZSBjb21wYXRpYmlsaXR5IHdpdGggVURQLWJhc2VkIGRldmljZXMgYXQgcmlzay4g
SW4gbXkgb3BpbmlvbiwgaGF2aW5nIG9uZSBXZWIgcHJvdG9jb2wgaW4gY29tbW9uIGZvciBfYWxs
XyBjbGFzc2VzIG9mIElvVCBkZXZpY2VzIGlzIHRoZSBncmVhdGVzdCBwYXJ0IG9mIENvQVAuIEZv
ciBidWxrIGRhdGEgb3IgbXVsdGltZWRpYSwgYXBwbGljYXRpb25zIGNhbiBzdGlsbCBpbmNsdWRl
IGxpbmtzIHRvIGh0dHAsIGZ0cCwgb3IgcnRwIHJlc291cmNlcy0tLXRoYXQncyB0aGUgbmljZSBw
YXJ0IGFib3V0IHRoZSBXZWIuDQoNCkkgY291bnQgdGhpcyBhcyArMSBmb3IgTDEuDQpSZWFzb25h
YmxlIHVzZSBjYXNlcyB0b2dldGhlciB3aXRoIGEgcHJvcGVybHkgd29ya2luZyBVRFAvVENQIGdh
dGV3YXkgY2FuIHN0aWxsIGNvbnZpbmNlIG1lLCB0aG91Z2ggOykNCg0KQ2lhbw0KTWF0dGhpYXMN
Cg0K


From nobody Thu Jun 11 14:06:49 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 070E21B3190; Thu, 11 Jun 2015 14:06:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V5H6ugkyj-dy; Thu, 11 Jun 2015 14:06:32 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id 9553E1B3182; Thu, 11 Jun 2015 14:06:28 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id B96E32325E0; Thu, 11 Jun 2015 23:06:27 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id fZwL4iTkrMNK; Thu, 11 Jun 2015 23:06:25 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 9BB5E2325E6; Thu, 11 Jun 2015 23:06:25 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QuT6kyfTvY4e; Thu, 11 Jun 2015 23:06:25 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id 0F6AA2325E0; Thu, 11 Jun 2015 23:06:25 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_428EB5D9-A55F-4904-95BD-884C70BBF443"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com>
Date: Thu, 11 Jun 2015 23:06:24 +0200
Message-Id: <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com>
To: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/lbwvZRp3hBXgyJOFkD4ASTeOb_k>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2015 21:06:36 -0000

--Apple-Mail=_428EB5D9-A55F-4904-95BD-884C70BBF443
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Pascal,

> Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) =
<pthubert@cisco.com> a =C3=A9crit :
>=20
> Dear all:
> =20
> This looks like the problem of local namespaces,  which is the reason =
why MPLS switches labels.
> The user may access a limited set of resources from a number of =
servers, and servers are read by many users.
> You cannot ensure that you have a single alias space that satisfies =
them all.

Great analogy! And yes, sadly you cannot satisfy them all, at least not =
with all devices.

> =20
> So ,what if the user had its own set of aliases and the server also =
had its own set of aliases?
> =20
> The aliases could be mapped in a table like a uSAP and a pSAP are =
mapped across layers. Broadly:
> - First time a user requests a resource in a server, it comes with a =
tuple (userid, useralias, fullname)
> - The server responds with (serverid, serveralias, userid, user =
alias).

Actually, I think that this could be worked out in CoMI also. Instead of =
fullname you could provide the YANG id (module ID + data node ID) and do =
the mapping. User alias would be the special aliased YANG id. User ID, =
however, could be a little bit more tricky - how do we ensure that it is =
consistent? Use the IP address of the client could be doable, but =
we=E2=80=99ll have to include the UDP port just in case someone runs two =
clients on the same machine.


> =20
> After that,  if the server is a constrained device then the user talks =
to the server with (serverid, serveralias) and the user maintains a =
switching table for the resource it uses on various servers.
> If the user is the constrained device and the server is not, the user =
could talk with (userid, useralias) and the server maintains a switching =
table.
> =20
> For large servers, the server may allocate aliases dynamically based =
on what it is being asked. We=E2=80=99d then need to talk about alias =
update or revocation, probably in terms of session and lifetime.
> =20
> Does that look usable?

You are pointing out an interesting question. I would think (but maybe =
I=E2=80=99m mistaken), that the client should have the leading role in =
figuring out what=E2=80=99s happening. The idea is the following:

The client checks if the server supports aliasing, with the possible =
options:
S1) no aliasing
S2) static/server-defined aliasing
S3) dynamic/single alias mapping=20
  S3.1) mapping already defined
  S3.2) no mapping defined
S4) dynamic/per client alias mapping

Then, the client can take action, depending on its own capabilities and =
the response of the server. E.g. a unconstrained client could obtain the =
alias mapping if it is static (or if there is a single alias mapping in =
place) and cache it locally. So, there will be the following =
correspondence :

Given:
C1) constrained client
C2) unconstrained client

We have:
C1 + S1) no aliasing, nothing to do
C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. =
otherwise, ignore
C1 + S3.2) and C1 + S4) define alias mapping

C2 + S1) no aliasing, nothing to do
C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. =
otherwise, learn it
C2 + S3.2) and C2 + S4) define alias mapping

I would say that the analogy you made with MPLS corresponds quite a lot =
to the C2+S4 case. Personally, I would be most interested into having =
one client configure one alias mapping to all servers in the network =
(e.g. the managing entity), which will profit most from saving several =
bytes on each message exchange. Everyone else could use the standard =
IDs, which we=E2=80=99ve already managed to shrink significantly.

Indeed, with structured module ID + data node ID (20 bits + 10 bits), =
YANG URI compression, and long form/short form, we=E2=80=99ll have quite =
a lot of gain. Reserving module ID =3D 1 for aliases and maybe writing a =
short draft on how the aliasing is implemented seems feasible, where we =
can cover the exact mechanism of alias definition, and client/server =
interaction.

Alexander

> =20
> Pascal
> =20
> From: 6tisch [mailto:6tisch-bounces@ietf.org] On Behalf Of Andy =
Bierman
> Sent: vendredi 5 juin 2015 20:55
> To: Michel Veillette
> Cc: 6tisch@ietf.org; Alexander Pelov; core@ietf.org
> Subject: Re: [6tisch] Reserve space for aliases
> =20
> =20
> =20
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
> Hi Alexander
> =20
> I have some concerns about allowing CoMI client(s) the control of the =
list of aliases.
> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
> =20
> One possible solution is that each CoMI client send a list of (alias, =
data node ID) to the CoMI server. In this case, the CoMI client might =
receive an error if one or multiple of these aliases are already =
reserved.
> =20
> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
> =20
> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
> With this is mind, do you have any alternative solutions to propose?
> =20
> =20
> =20
> Does this approach allow each client to have a different set of =
aliases,
> so the server has to maintain a configured mapping for each client?
> This seems like a lot of overhead and NV-storage requirements
> on the server.
> =20
> Changing the schema identifiers based on which client is
> sending the request seems like a complicated design change
> from RESTCONF, NETCONF, or SNMP, where there is only
> 1 schema tree which is not dependent on the client identity.
> =20
> =20
> Andy
> =20
> =20
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 12:03
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> =20
> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander
> =20
> In your presentation at 6TiSCH, you propose the following data node ID =
structure.
> =20
> =E2=80=A2       32 bits YANG ID
> =E2=80=93      20 bits for module ID (assigned by IETF)
> =E2=80=93      10 bits for data node ID (generated deterministically)
> =20
> Based on this structure, we can reserve module ID zero for aliases.
> =20
> =20
> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
> =20
> =20
>=20
> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
> This approach require 4 bytes per CoMI server accessed.
> =20
> =20
> It is possible to map an entire module to the alias space and this is =
up to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
> =20
> If the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:
> POST /mg/0
> {
>  "source_uri" : "/mg/BAA"
> }
> =20
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
> =20
> Or, you can dynamically configure the mapping:
> POST /mg/0
> {
>   YANG_id : alias,
>   YANG_id : alias,
>   YANG_id : alias
> }
> =20
>=20
> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
> =20
> This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
> =20
> Best,
> Alexander
> =20
>=20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>

--Apple-Mail=_428EB5D9-A55F-4904-95BD-884C70BBF443
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Pascal,</div><br class=3D""><div><blockquote=
 type=3D"cite" class=3D""><div class=3D"">Le 10 juin 2015 =C3=A0 15:25, =
Pascal Thubert (pthubert) &lt;<a href=3D"mailto:pthubert@cisco.com" =
class=3D"">pthubert@cisco.com</a>&gt; a =C3=A9crit :</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Dear all:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">This looks like the =
problem of local namespaces,&nbsp; which is the reason why MPLS switches =
labels.<o:p class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">The user may access a =
limited set of resources from a number of servers, and servers are read =
by many users.<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">You cannot ensure that =
you have a single alias space that satisfies them =
all.</span></div></div></div></blockquote><div><br =
class=3D""></div><div>Great analogy! And yes, sadly you cannot satisfy =
them all, at least not with all devices.</div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div class=3D"WordSection1" =
style=3D"page: WordSection1; font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D""><o:p class=3D""></o:p></span></div><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">So =
,what if the user had its own set of aliases and the server also had its =
own set of aliases?<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The aliases could be mapped in a table =
like a uSAP and a pSAP are mapped across layers. Broadly:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">- First time a user requests a resource in =
a server, it comes with a tuple (userid, useralias, fullname)<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">- The server responds with (serverid, =
serveralias, userid, user =
alias).</span></div></div></div></blockquote><div><br =
class=3D""></div><div>Actually, I think that this could be worked out in =
CoMI also. Instead of fullname you could provide the YANG id (module ID =
+ data node ID) and do the mapping. User alias would be the special =
aliased YANG id. User ID, however, could be a little bit more tricky - =
how do we ensure that it is consistent? Use the IP address of the client =
could be doable, but we=E2=80=99ll have to include the UDP port just in =
case someone runs two clients on the same machine.</div><div><br =
class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div class=3D"WordSection1" style=3D"page: WordSection1; =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: auto; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: auto; word-spacing: =
0px; -webkit-text-stroke-width: 0px;"><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">After that,&nbsp; if =
the server is a constrained device then the user talks to the server =
with (serverid, serveralias) and the user maintains a switching table =
for the resource it uses on various servers.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">If the user is the constrained device and =
the server is not, the user could talk with (userid, useralias) and the =
server maintains a switching table.<o:p class=3D""></o:p></span></div><div=
 style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">For large servers, the server may allocate =
aliases dynamically based on what it is being asked. We=E2=80=99d then =
need to talk about alias update or revocation, probably in terms of =
session and lifetime.<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Does that look =
usable?</span></div></div></div></blockquote><div><br =
class=3D""></div><div>You are pointing out an interesting question. I =
would think (but maybe I=E2=80=99m mistaken), that the client should =
have the leading role in figuring out what=E2=80=99s happening. The idea =
is the following:</div><div><br class=3D""></div><div>The client checks =
if the server supports aliasing, with the possible =
options:</div><div>S1) no aliasing</div><div>S2) static/server-defined =
aliasing</div><div>S3) dynamic/single alias =
mapping&nbsp;</div><div>&nbsp; S3.1) mapping already =
defined</div><div>&nbsp; S3.2) no mapping defined</div><div>S4) =
dynamic/per client alias mapping</div><div><br class=3D""></div><div>Then,=
 the client can take action, depending on its own capabilities and the =
response of the server. E.g. a unconstrained client could obtain the =
alias mapping if it is static (or if there is a single alias mapping in =
place) and cache it locally. So, there will be the following =
correspondence :</div><div><br class=3D""></div><div>Given:</div><div>C1) =
constrained client</div><div>C2) unconstrained client</div><div><br =
class=3D""></div><div>We have:</div><div>C1 + S1) no aliasing, nothing =
to do</div><div>C1 + S2) and C1 + S3.1) if the alias mapping is known, =
use it. otherwise, ignore</div><div>C1 + S3.2) and C1 + S4) define alias =
mapping</div><div><br class=3D""></div><div><div>C2 + S1) no aliasing, =
nothing to do</div><div class=3D""><div>C2 + S2) and C2 + S3.1) if the =
alias mapping is known, use it. otherwise, learn =
it</div></div><div><div>C2 + S3.2) and C2 + S4) define alias =
mapping</div><div class=3D""><br class=3D""></div><div class=3D"">I =
would say that the analogy you made with MPLS corresponds quite a lot to =
the C2+S4 case. Personally, I would be most interested into having one =
client configure one alias mapping to all servers in the network (e.g. =
the managing entity), which will profit most from saving several bytes =
on each message exchange. Everyone else could use the standard IDs, =
which we=E2=80=99ve already managed to shrink significantly.</div><div =
class=3D""><br class=3D""></div><div class=3D"">Indeed, with structured =
module ID + data node ID (20 bits + 10 bits), YANG URI compression, and =
long form/short form, we=E2=80=99ll have quite a lot of gain. Reserving =
module ID =3D 1 for aliases and maybe writing a short draft on how the =
aliasing is implemented seems feasible, where we can cover the exact =
mechanism of alias definition, and client/server interaction.</div><div =
class=3D""><br class=3D""></div><div =
class=3D"">Alexander</div></div></div><div><br =
class=3D""></div><blockquote type=3D"cite" class=3D""><div class=3D""><div=
 class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Pascal<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"border-style: none none none solid; border-left-color: blue; =
border-left-width: 1.5pt; padding: 0cm 0cm 0cm 4pt;" class=3D""><div =
class=3D""><div style=3D"border-style: solid none none; =
border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding: =
3pt 0cm 0cm;" class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 10pt; font-family: Tahoma, =
sans-serif;" class=3D"">From:</span></b><span style=3D"font-size: 10pt; =
font-family: Tahoma, sans-serif;" class=3D""><span =
class=3D"Apple-converted-space">&nbsp;</span>6tisch [<a =
href=3D"mailto:6tisch-bounces@ietf.org" =
class=3D"">mailto:6tisch-bounces@ietf.org</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><b class=3D"">On Behalf =
Of<span class=3D"Apple-converted-space">&nbsp;</span></b>Andy Bierman<br =
class=3D""><b class=3D"">Sent:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>vendredi 5 juin 2015 =
20:55<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" class=3D"">6tisch@ietf.org</a>; =
Alexander Pelov; <a href=3D"mailto:core@ietf.org" =
class=3D"">core@ietf.org</a><br class=3D""><b class=3D"">Subject:</b><span=
 class=3D"Apple-converted-space">&nbsp;</span>Re: [6tisch] Reserve space =
for aliases<o:p class=3D""></o:p></span></div></div></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div class=3D""><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">On Fri, Jun 5, 2015 at 11:41 AM, Michel =
Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; wrote:<o:p =
class=3D""></o:p></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Hi Alexander</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">I have some concerns about allowing CoMI client(s) the =
control of the list of aliases.</span><span lang=3D"EN-CA" class=3D""><o:p=
 class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">This approach work fine =
for the first CoMI application (e.g. 6TiSCH) but what do we do with the =
subsequent CoMI application?</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">One possible solution is that each CoMI client send a list of =
(alias, data node ID) to the CoMI server. In this case, the CoMI client =
might receive an error if one or multiple of these aliases are already =
reserved.</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">A second possible solution is that each CoMI client send a =
list of (data node ID) and get a list of (alias, data node ID) from the =
CoMI server. In this case, CoMI clients will have to deal with a mix =
population of aliases.</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-CA" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">The proposed solution need to scale to a multi-vendors, =
multiple applications environment.</span><span lang=3D"EN-CA" =
class=3D""><o:p class=3D""></o:p></span></div><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-CA" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">With this is =
mind, do you have any alternative solutions to propose?</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Does this approach =
allow each client to have a different set of aliases,<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">so the server has to maintain a configured mapping for each =
client?<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">This seems like a lot of overhead and =
NV-storage requirements<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">on the server.<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Changing the schema identifiers based on =
which client is<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">sending the request seems like a =
complicated design change<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">from RESTCONF, =
NETCONF, or SNMP, where there is only<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">1 schema tree which is not dependent on the client =
identity.<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Andy<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><blockquote style=3D"border-style: none =
none none solid; border-left-color: rgb(204, 204, 204); =
border-left-width: 1pt; padding: 0cm 0cm 0cm 6pt; margin-left: 4.8pt; =
margin-right: 0cm;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" width=3D"896" style=3D"width: 537.75pt; =
border-collapse: collapse;"><tbody class=3D""><tr style=3D"height: =
49.05pt;" class=3D""><td width=3D"172" style=3D"width: 103.1pt; =
border-style: none solid none none; border-right-color: windowtext; =
border-right-width: 1pt; padding: 0cm 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></td><td width=3D"724" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0cm 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt 8.1pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div><div style=3D"margin: 0cm 0cm =
0.0001pt 8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div><div style=3D"margin: 0cm 0cm 0.0001pt 8.1pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif;" class=3D"">www.trilliantinc.com</span></a></span><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D""><span =
class=3D"Apple-converted-space">&nbsp;</span>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></td></tr></tbody></table><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-CA" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(225, 225, 225); border-top-width: =
1pt; padding: 3pt 0cm 0cm;" class=3D""><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">From:</span></b><span style=3D"font-size:=
 11pt; font-family: Calibri, sans-serif;" class=3D""><span =
class=3D"Apple-converted-space">&nbsp;</span>Alexander Pelov [mailto:<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"Apple-converted-space">&nbsp;</span>5 =
juin 2015 12:03<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Andy Bierman;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D"">6tisch@ietf.org</a>;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" target=3D"_blank" style=3D"color: purple; =
text-decoration: underline;" class=3D"">core@ietf.org</a><br class=3D""><b=
 class=3D"">Subject:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div></div><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;<o:p =
class=3D""></o:p></span></div><div class=3D""><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-CA" class=3D"">Hi Michel,<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;<o:p =
class=3D""></o:p></span></div></div><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;<o:p =
class=3D""></o:p></span></div><div class=3D""><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">Le 5 juin 2015 =C3=A0 17:17, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></span></div></div><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;<o:p =
class=3D""></o:p></span></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">Hi =
Alexander</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">In=
 your presentation at 6TiSCH, you propose the following data node ID =
structure.</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div></div><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
style=3D"border-collapse: collapse;"><tbody class=3D""><tr class=3D""><td =
width=3D"779" valign=3D"top" style=3D"width: 467.5pt; border: 1pt solid =
windowtext; padding: 0cm 5.4pt;" class=3D""><div style=3D"margin-left: =
36pt;" class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=A2</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">32=
 bits YANG ID</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 72pt;" class=3D""><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">20=
 bits for module ID (assigned by IETF)</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 72pt;" =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">10=
 bits for data node ID (generated deterministically)</span><o:p =
class=3D""></o:p></div></div></td></tr></tbody></table><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">Based on this structure, =
we can reserve&nbsp;</span><span style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">module ID zero for aliases.</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div></div></blockquote><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">&nbsp;<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">I was just summarizing what was discussed on the discussion =
in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=99s for =
purposes to be consistent with the YANG hash and I don=E2=80=99t mind =
keeping it 30 bits.<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">&nbsp;<o:p class=3D""></o:p></span></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0cm 0cm 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;"><span lang=3D"EN-CA" =
class=3D"">&nbsp;</span></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">If we want to minimize =
both the network an node resources require by this alias mechanism, we =
can map an entire module to this space.</span><span lang=3D"EN-CA" =
class=3D""><o:p class=3D""></o:p></span></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">This can be implemented by =
a single integer resource (e.g. leaf alliassedModule { type uint32 } =
)</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">This approach require 4 bytes per CoMI server =
accessed.</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div></div></blockquote><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">&nbsp;<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">It is possible to map an entire module to the alias space and =
this is up to the operator. However, if you load two modules which =
redefine the same alias you will loose the benefit from it. Maybe it =
would be interesting to be able to specify that you want the aliases =
from THIS specific module to be used.<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">If the /mg/0 alias is =
reserved for managing the aliases, this could be simply saying:<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">POST /mg/0<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">{<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;"source_uri" : =
"/mg/BAA"<o:p class=3D""></o:p></span></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" class=3D"">}<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">where /mg/BAA is the =
YANG id of the module (20 bits module ID + 10 bits set to 0). This way, =
the server will know: OK, get the alias mapping from the YANG scheme of =
module with ID =3D B (as defined by the IETF).&nbsp;<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">Or, you can =
dynamically configure the mapping:<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" class=3D"">POST =
/mg/0<o:p class=3D""></o:p></span></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" class=3D"">{<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp; YANG_id : =
alias,<o:p class=3D""></o:p></span></div></div><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp; =
YANG_id : alias,<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">&nbsp; YANG_id : alias<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">}<o:p =
class=3D""></o:p></span></div></div></div><p class=3D"MsoNormal" =
style=3D"margin: 0cm 0cm 12pt; font-size: 12pt; font-family: 'Times New =
Roman', serif;"><span lang=3D"EN-CA" =
class=3D"">&nbsp;</span></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">If we want a more complex =
but more flexible aliases mechanism, your proposed map of (allias, YANG =
ID) seem the solution.</span><span lang=3D"EN-CA" class=3D""><o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">However, we have to consider that this structure =
can be as large as&nbsp;<u class=3D"">1250 bytes per CoMI server =
accessed</u>&nbsp;if limited to 256 aliases.</span><span lang=3D"EN-CA" =
class=3D""><o:p =
class=3D""></o:p></span></div></div></div></blockquote><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">&nbsp;<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-CA" =
class=3D"">This is assuming you need a separate mapping for each server. =
I would suppose that in a network you=E2=80=99ll have a single alias =
mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.&nbsp;<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">&nbsp;<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">Best,<o:p =
class=3D""></o:p></span></div></div><div class=3D""><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-CA" class=3D"">Alexander<o:p =
class=3D""></o:p></span></div></div><p class=3D"MsoNormal" =
style=3D"margin: 0cm 0cm 12pt; font-size: 12pt; font-family: 'Times New =
Roman', serif;"><span lang=3D"EN-CA" =
class=3D"">&nbsp;</span></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-CA" style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span><span =
lang=3D"EN-CA" class=3D""><o:p class=3D""></o:p></span></div></div><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"896" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"172" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0cm 5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"724" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0cm 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" class=3D"">Michel Veillette<br =
class=3D"">System Architecture Director</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><a=
 href=3D"http://www.trilliantinc.com/" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"font-size: =
9pt; font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span></div></div></td></tr></t=
body></table></div></blockquote></div></div></div></blockquote></div></div=
></div></div></div></div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_428EB5D9-A55F-4904-95BD-884C70BBF443--


From nobody Thu Jun 11 20:18:48 2015
Return-Path: <weigengyu@bupt.edu.cn>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 996591A8A25 for <core@ietfa.amsl.com>; Thu, 11 Jun 2015 20:18:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.228
X-Spam-Level: *
X-Spam-Status: No, score=1.228 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_PASS=-0.001, STOX_REPLY_TYPE=0.439, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qkMOChEnvquP for <core@ietfa.amsl.com>; Thu, 11 Jun 2015 20:18:45 -0700 (PDT)
Received: from mx1.bupt.edu.cn (mx1.bupt.edu.cn [211.68.68.2]) by ietfa.amsl.com (Postfix) with ESMTP id 9BC7B1A1AB2 for <core@ietf.org>; Thu, 11 Jun 2015 20:18:44 -0700 (PDT)
Received: from mx1.bupt.edu.cn (unknown [127.0.0.1]) by mx1.bupt.edu.cn (AnyMacro(G7)) with SMTP id A54B919F39C for <core@ietf.org>; Fri, 12 Jun 2015 11:18:42 +0800 (HKT)
Received: from WeiGengyuPC (unknown [10.103.240.2]) by mx1.bupt.edu.cn (AnyMacro(G7)) with ESMTPA id 318B719F390; Fri, 12 Jun 2015 11:18:42 +0800 (HKT)
Message-ID: <959C1B42B2194AFEA7B465193023AA9E@WeiGengyuPC>
From: "weigengyu" <weigengyu@bupt.edu.cn>
To: "Carsten Bormann" <cabo@tzi.org>
References: <20150610214625.13443.77214.idtracker@ietfa.amsl.com> <5578B194.9050309@tzi.org> <93A7AB7DB850418C8FA2CF7DE629A42A@WeiGengyuPC> <5579313F.1030203@tzi.org>
In-Reply-To: <5579313F.1030203@tzi.org>
Date: Fri, 12 Jun 2015 11:18:34 +0800
Organization: BUPT
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=original
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ZHQ5KYPptZyQToyiuyz4FuWZ3aw>
Cc: core@ietf.org
Subject: Re: [core] Fwd: New Version Notification for draft-tschofenig-core-coap-tcp-tls-04.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 03:18:47 -0000

Hi Carsten,

Thank you for your reply.

GrÃ¼ÃŸe, Carsten wrote:
> Certainly; as there are frequent role (client/server) reversals in CoAP,
> I would expect both functions to be included in a single gateway.
> On the way from UDP to TCP, it strips away the message layer;

It is clearly described for UDP-to-TCP gateway in page 3, second paragraph.

> in the way
> from TCP to UDP, it adds in the message layer functionality (e.g.,
> adding message-IDs and performing retransmissions if required).

In this draft, only one place mentions TCP-to-UDP, in page 2 third 
paragraph.
"Finally, CoAP may be integrated into a Web environment where the
   front-end uses CoAP from IoT devices to a cloud infrastructure but
   the CoAP messages are then transported in TCP between the back-end
   services.  A TCP-to-UDP gateway can be used at the cloud boundary to
   talk to the UDP-based IoT. "

It is likely that the draft needs some descriptions on how to construct the 
CoAP message.
Based on the message format for CoAP over TCP in this draft,
when a CoAP message goes through the TCP-to-UDP gateway,
there is an entity on the TCP-to-UDP gateway decides by itself to send a CON 
or a NON message over UDP.

What is this entity?  It is a message adaptor, or a CoAP endpoint.
And whether this entity's decition is the same as the original CoAP 
endpoint's decision?


Regards,

Gengyu WEI
Network Technology Center
School of Computer
Beijing University of Posts and Telecommunications

-----åŽŸå§‹é‚®ä»¶----- 
From: Carsten Bormann
Sent: Thursday, June 11, 2015 2:57 PM
To: weigengyu
Cc: core@ietf.org
Subject: Re: [core] Fwd: New Version Notification for 
draft-tschofenig-core-coap-tcp-tls-04.txt

weigengyu wrote:
> This draft mentioned the UDP-to-TCP gateway for transfering CoAP.
> Is it possibles that there is a TCP-to-UDP gateway?

Certainly; as there are frequent role (client/server) reversals in CoAP,
I would expect both functions to be included in a single gateway.
On the way from UDP to TCP, it strips away the message layer; in the way
from TCP to UDP, it adds in the message layer functionality (e.g.,
adding message-IDs and performing retransmissions if required).

GrÃ¼ÃŸe, Carsten



From nobody Fri Jun 12 09:58:11 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 43EC71AC43A; Fri, 12 Jun 2015 09:58:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c7zZ4cfztKmW; Fri, 12 Jun 2015 09:58:04 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0723.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::723]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1A0A31AC3FD; Fri, 12 Jun 2015 09:58:04 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB789.namprd06.prod.outlook.com (10.141.247.141) with Microsoft SMTP Server (TLS) id 15.1.184.17; Fri, 12 Jun 2015 16:57:38 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0184.014; Fri, 12 Jun 2015 16:57:38 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>, "Pascal Thubert (pthubert)" <pthubert@cisco.com>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAADv9XEAAEJffwAAJ0YMwA==
Date: Fri, 12 Jun 2015 16:57:37 +0000
Message-ID: <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu>
In-Reply-To: <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: telecom-bretagne.eu; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB789;
x-microsoft-antispam-prvs: <CO2PR0601MB789EF8D0BBE745B2A119DABFEBB0@CO2PR0601MB789.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB789; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB789; 
x-forefront-prvs: 060503E79B
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(38414003)(377454003)(51444003)(24454002)(19580405001)(87936001)(86362001)(66066001)(93886004)(2950100001)(15975445007)(2900100001)(102836002)(54356999)(19580395003)(77096005)(50986999)(99936001)(76176999)(5003600100002)(19627595001)(99286002)(19617315012)(76576001)(5001920100001)(5002640100001)(189998001)(5001860100001)(5001830100001)(122556002)(5001960100002)(40100003)(62966003)(4001540100001)(74316001)(33656002)(2656002)(16236675004)(77156002)(5001770100001)(92566002)(19625215002)(19300405004)(17760045003)(18206015028)(46102003)(7099028)(403724002)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB789; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2015 16:57:37.9306 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB789
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/yTJa1KZho0-RU3e69nJ9ov8eBsA>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 16:58:09 -0000

--_004_CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0CO2PR0601MB792na_"

--_000_CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQWxleGFuZGVyLCBoaSBQYXNjYWwNCg0KSSB3YW50IHRvIGVtcGhhc2VzIHRoZSBmb2xsb3dp
bmcgcG9pbnRzDQoNCg0KwrcgICAgICAgICBUaGUgdXNlIG9mIHRoZSBzZWxlY3QgcXVlcnkgcGFy
YW1ldGVyIGVuY29kZWQgaW4gQ0JPUiBzdXBwb3J0IG9mIDYzIG1vZHVsZXMgd2l0aCBvcHRpbWl6
ZWQgbWVzc2FnZSBzaXplIGluc3RlYWQgb2Ygb25seSAzIGZvciB0aGUgYmFzZTY0IFVSSS4NCg0K
SWYgdGhlIDZUaVNDSCBtb2R1bGUgSUQgaXMgYWxsb2NhdGVkIHdpdGhpbiB0aGVzZSA2MyBJRHMs
IHRoZXJlIHdpbGwgYmUgbm8gbWVzc2FnZSBzaXplIG9wdGltaXphdGlvbiBwcm92aWRlZCBieSB0
aGUgYWxpYXNlcyBtZWNoYW5pc20uDQoNClRoaXMgbWFrZSB0aGUgaW50cm9kdWN0aW9uIG9mIGFs
aWFzZXMgbGVzcyB1cmdlbnQuDQoNCg0KDQrCtyAgICAgICAgIFRoZSBtZXNzYWdlIHNpemUgb2Yg
dGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBpbiBDQk9SIHNob3VsZCBiZSBlcXVh
bCBvciBzbWFsbGVyIGNvbXBhcmVkIHRvIHRoZSBiYXNlNjQgVVJJLg0KDQpIb3dldmVyLCB0aGUg
c2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBlbmNvZGVkIGluIENCT1Igc3VwcG9ydCBhIHdpZGVyIHJh
bmdlIG9mIHZhbHVlcyB3aXRob3V0IHNpemUgcGVuYWx0eSAoMTYgYml0cyBpbnN0ZWFkIG9mIDEy
LCAzMiBiaXRzIGluc3RlYWQgb2YgMzApDQoNCkZ1cnRoZXJtb3JlLCBDb01JIGRldmljZXMgd29u
4oCZdCBoYXZlIHRvIHN1cHBvcnQgdHdvIHR5cGUgb2YgZW5jb2RpbmcgZGVwZW5kaW5nIGlmIElE
cyBhcmUgcGFydCBvZiB0aGUgY29tbWFuZCB2cy4gcGF5bG9hZC4NCg0KDQoNCkZvciBleGFtcGxl
Og0KDQoNCg0KQXNzdW1pbmcgbW9kdWxlIElEIDINCg0KQXNzdW1pbmcgZGF0YSBub2RlIElEIDEs
IDIsIDMsIDQgKGxvbmcgZm9ybSAyMDQ5LCAyMDUwLCAyMDUxKQ0KDQpBc3N1bWluZyDigJws4oCd
IHNlcGFyYXRvciB0byBzZWxlY3QgbXVsdGlwbGUgZGF0YSBub2Rlcw0KDQoNCg0KQmFzZTY0IGFw
cHJvYWNoOg0KDQpSRVE6IEdFVCBleGFtcGxlLmNvbS9tZy9nQiAgICAgICAgICgzIGJ5dGVzOyAx
IGJ5dGUgZm9yIHRoZSDigJwv4oCdLCAyIGJ5dGVzIGZvciDigJxnQuKAnSkNCg0KDQoNCkNCT1Ig
YXBwcm9hY2g6DQoNClJFUTogR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdCgyMDQ5KSAgICAgICAg
ICg0IGJ5dGVzOyBvbmUgYnl0ZSBmb3IgdGhlIENvQVAgb3B0aW9uLCAzIGZvciAyMDQ5IGVuY29k
ZWQgdXNpbmcgQ0JPUikNCg0KDQoNCkJhc2U2NCBhcHByb2FjaDoNCg0KUkVROiBHRVQgZXhhbXBs
ZS5jb20vbWcvZ0IsQyxELEUgICAgICAgICAoOSBieXRlczsgMSBieXRlIGZvciB0aGUg4oCcL+KA
nSwgOCBieXRlcyBmb3Ig4oCcZ0IsQyxELEXigJ0pDQoNCg0KQ0JPUiBhcHByb2FjaDoNCg0KUkVR
OiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0KCBbMjA0OSwyLDMsNF0gKSAgICAgICg4IGJ5dGVz
OyAxIGJ5dGUgZm9yIHRoZSBDb0FQIG9wdGlvbiwgMSBmb3IgdGhlIENCT1IgYXJyYXksIDMrMSsx
KzEgYnl0ZXMgZm9yIHRoZSBJRHMpDQoNCg0KW2NpZDppbWFnZTAwMS5qcGdAMDFDODY4RDguQkYw
QkI3RTBdDQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3IN
ClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxs
ZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGlu
Yy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20v
Pg0KDQoNCg0KRnJvbTogQWxleGFuZGVyIFBlbG92IFttYWlsdG86YWxleGFuZGVyLnBlbG92QHRl
bGVjb20tYnJldGFnbmUuZXVdDQpTZW50OiAxMSBqdWluIDIwMTUgMTc6MDYNClRvOiBQYXNjYWwg
VGh1YmVydCAocHRodWJlcnQpDQpDYzogQW5keSBCaWVybWFuOyBNaWNoZWwgVmVpbGxldHRlOyA2
dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbNnRpc2NoXSBSZXNl
cnZlIHNwYWNlIGZvciBhbGlhc2VzDQoNCkhpIFBhc2NhbCwNCg0KTGUgMTAganVpbiAyMDE1IMOg
IDE1OjI1LCBQYXNjYWwgVGh1YmVydCAocHRodWJlcnQpIDxwdGh1YmVydEBjaXNjby5jb208bWFp
bHRvOnB0aHViZXJ0QGNpc2NvLmNvbT4+IGEgw6ljcml0IDoNCg0KRGVhciBhbGw6DQoNClRoaXMg
bG9va3MgbGlrZSB0aGUgcHJvYmxlbSBvZiBsb2NhbCBuYW1lc3BhY2VzLCAgd2hpY2ggaXMgdGhl
IHJlYXNvbiB3aHkgTVBMUyBzd2l0Y2hlcyBsYWJlbHMuDQpUaGUgdXNlciBtYXkgYWNjZXNzIGEg
bGltaXRlZCBzZXQgb2YgcmVzb3VyY2VzIGZyb20gYSBudW1iZXIgb2Ygc2VydmVycywgYW5kIHNl
cnZlcnMgYXJlIHJlYWQgYnkgbWFueSB1c2Vycy4NCllvdSBjYW5ub3QgZW5zdXJlIHRoYXQgeW91
IGhhdmUgYSBzaW5nbGUgYWxpYXMgc3BhY2UgdGhhdCBzYXRpc2ZpZXMgdGhlbSBhbGwuDQoNCkdy
ZWF0IGFuYWxvZ3khIEFuZCB5ZXMsIHNhZGx5IHlvdSBjYW5ub3Qgc2F0aXNmeSB0aGVtIGFsbCwg
YXQgbGVhc3Qgbm90IHdpdGggYWxsIGRldmljZXMuDQoNCg0KDQpTbyAsd2hhdCBpZiB0aGUgdXNl
ciBoYWQgaXRzIG93biBzZXQgb2YgYWxpYXNlcyBhbmQgdGhlIHNlcnZlciBhbHNvIGhhZCBpdHMg
b3duIHNldCBvZiBhbGlhc2VzPw0KDQpUaGUgYWxpYXNlcyBjb3VsZCBiZSBtYXBwZWQgaW4gYSB0
YWJsZSBsaWtlIGEgdVNBUCBhbmQgYSBwU0FQIGFyZSBtYXBwZWQgYWNyb3NzIGxheWVycy4gQnJv
YWRseToNCi0gRmlyc3QgdGltZSBhIHVzZXIgcmVxdWVzdHMgYSByZXNvdXJjZSBpbiBhIHNlcnZl
ciwgaXQgY29tZXMgd2l0aCBhIHR1cGxlICh1c2VyaWQsIHVzZXJhbGlhcywgZnVsbG5hbWUpDQot
IFRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCAoc2VydmVyaWQsIHNlcnZlcmFsaWFzLCB1c2VyaWQs
IHVzZXIgYWxpYXMpLg0KDQpBY3R1YWxseSwgSSB0aGluayB0aGF0IHRoaXMgY291bGQgYmUgd29y
a2VkIG91dCBpbiBDb01JIGFsc28uIEluc3RlYWQgb2YgZnVsbG5hbWUgeW91IGNvdWxkIHByb3Zp
ZGUgdGhlIFlBTkcgaWQgKG1vZHVsZSBJRCArIGRhdGEgbm9kZSBJRCkgYW5kIGRvIHRoZSBtYXBw
aW5nLiBVc2VyIGFsaWFzIHdvdWxkIGJlIHRoZSBzcGVjaWFsIGFsaWFzZWQgWUFORyBpZC4gVXNl
ciBJRCwgaG93ZXZlciwgY291bGQgYmUgYSBsaXR0bGUgYml0IG1vcmUgdHJpY2t5IC0gaG93IGRv
IHdlIGVuc3VyZSB0aGF0IGl0IGlzIGNvbnNpc3RlbnQ/IFVzZSB0aGUgSVAgYWRkcmVzcyBvZiB0
aGUgY2xpZW50IGNvdWxkIGJlIGRvYWJsZSwgYnV0IHdl4oCZbGwgaGF2ZSB0byBpbmNsdWRlIHRo
ZSBVRFAgcG9ydCBqdXN0IGluIGNhc2Ugc29tZW9uZSBydW5zIHR3byBjbGllbnRzIG9uIHRoZSBz
YW1lIG1hY2hpbmUuDQoNCg0KDQoNCkFmdGVyIHRoYXQsICBpZiB0aGUgc2VydmVyIGlzIGEgY29u
c3RyYWluZWQgZGV2aWNlIHRoZW4gdGhlIHVzZXIgdGFsa3MgdG8gdGhlIHNlcnZlciB3aXRoIChz
ZXJ2ZXJpZCwgc2VydmVyYWxpYXMpIGFuZCB0aGUgdXNlciBtYWludGFpbnMgYSBzd2l0Y2hpbmcg
dGFibGUgZm9yIHRoZSByZXNvdXJjZSBpdCB1c2VzIG9uIHZhcmlvdXMgc2VydmVycy4NCklmIHRo
ZSB1c2VyIGlzIHRoZSBjb25zdHJhaW5lZCBkZXZpY2UgYW5kIHRoZSBzZXJ2ZXIgaXMgbm90LCB0
aGUgdXNlciBjb3VsZCB0YWxrIHdpdGggKHVzZXJpZCwgdXNlcmFsaWFzKSBhbmQgdGhlIHNlcnZl
ciBtYWludGFpbnMgYSBzd2l0Y2hpbmcgdGFibGUuDQoNCkZvciBsYXJnZSBzZXJ2ZXJzLCB0aGUg
c2VydmVyIG1heSBhbGxvY2F0ZSBhbGlhc2VzIGR5bmFtaWNhbGx5IGJhc2VkIG9uIHdoYXQgaXQg
aXMgYmVpbmcgYXNrZWQuIFdl4oCZZCB0aGVuIG5lZWQgdG8gdGFsayBhYm91dCBhbGlhcyB1cGRh
dGUgb3IgcmV2b2NhdGlvbiwgcHJvYmFibHkgaW4gdGVybXMgb2Ygc2Vzc2lvbiBhbmQgbGlmZXRp
bWUuDQoNCkRvZXMgdGhhdCBsb29rIHVzYWJsZT8NCg0KWW91IGFyZSBwb2ludGluZyBvdXQgYW4g
aW50ZXJlc3RpbmcgcXVlc3Rpb24uIEkgd291bGQgdGhpbmsgKGJ1dCBtYXliZSBJ4oCZbSBtaXN0
YWtlbiksIHRoYXQgdGhlIGNsaWVudCBzaG91bGQgaGF2ZSB0aGUgbGVhZGluZyByb2xlIGluIGZp
Z3VyaW5nIG91dCB3aGF04oCZcyBoYXBwZW5pbmcuIFRoZSBpZGVhIGlzIHRoZSBmb2xsb3dpbmc6
DQoNClRoZSBjbGllbnQgY2hlY2tzIGlmIHRoZSBzZXJ2ZXIgc3VwcG9ydHMgYWxpYXNpbmcsIHdp
dGggdGhlIHBvc3NpYmxlIG9wdGlvbnM6DQpTMSkgbm8gYWxpYXNpbmcNClMyKSBzdGF0aWMvc2Vy
dmVyLWRlZmluZWQgYWxpYXNpbmcNClMzKSBkeW5hbWljL3NpbmdsZSBhbGlhcyBtYXBwaW5nDQog
IFMzLjEpIG1hcHBpbmcgYWxyZWFkeSBkZWZpbmVkDQogIFMzLjIpIG5vIG1hcHBpbmcgZGVmaW5l
ZA0KUzQpIGR5bmFtaWMvcGVyIGNsaWVudCBhbGlhcyBtYXBwaW5nDQoNClRoZW4sIHRoZSBjbGll
bnQgY2FuIHRha2UgYWN0aW9uLCBkZXBlbmRpbmcgb24gaXRzIG93biBjYXBhYmlsaXRpZXMgYW5k
IHRoZSByZXNwb25zZSBvZiB0aGUgc2VydmVyLiBFLmcuIGEgdW5jb25zdHJhaW5lZCBjbGllbnQg
Y291bGQgb2J0YWluIHRoZSBhbGlhcyBtYXBwaW5nIGlmIGl0IGlzIHN0YXRpYyAob3IgaWYgdGhl
cmUgaXMgYSBzaW5nbGUgYWxpYXMgbWFwcGluZyBpbiBwbGFjZSkgYW5kIGNhY2hlIGl0IGxvY2Fs
bHkuIFNvLCB0aGVyZSB3aWxsIGJlIHRoZSBmb2xsb3dpbmcgY29ycmVzcG9uZGVuY2UgOg0KDQpH
aXZlbjoNCkMxKSBjb25zdHJhaW5lZCBjbGllbnQNCkMyKSB1bmNvbnN0cmFpbmVkIGNsaWVudA0K
DQpXZSBoYXZlOg0KQzEgKyBTMSkgbm8gYWxpYXNpbmcsIG5vdGhpbmcgdG8gZG8NCkMxICsgUzIp
IGFuZCBDMSArIFMzLjEpIGlmIHRoZSBhbGlhcyBtYXBwaW5nIGlzIGtub3duLCB1c2UgaXQuIG90
aGVyd2lzZSwgaWdub3JlDQpDMSArIFMzLjIpIGFuZCBDMSArIFM0KSBkZWZpbmUgYWxpYXMgbWFw
cGluZw0KDQpDMiArIFMxKSBubyBhbGlhc2luZywgbm90aGluZyB0byBkbw0KQzIgKyBTMikgYW5k
IEMyICsgUzMuMSkgaWYgdGhlIGFsaWFzIG1hcHBpbmcgaXMga25vd24sIHVzZSBpdC4gb3RoZXJ3
aXNlLCBsZWFybiBpdA0KQzIgKyBTMy4yKSBhbmQgQzIgKyBTNCkgZGVmaW5lIGFsaWFzIG1hcHBp
bmcNCg0KSSB3b3VsZCBzYXkgdGhhdCB0aGUgYW5hbG9neSB5b3UgbWFkZSB3aXRoIE1QTFMgY29y
cmVzcG9uZHMgcXVpdGUgYSBsb3QgdG8gdGhlIEMyK1M0IGNhc2UuIFBlcnNvbmFsbHksIEkgd291
bGQgYmUgbW9zdCBpbnRlcmVzdGVkIGludG8gaGF2aW5nIG9uZSBjbGllbnQgY29uZmlndXJlIG9u
ZSBhbGlhcyBtYXBwaW5nIHRvIGFsbCBzZXJ2ZXJzIGluIHRoZSBuZXR3b3JrIChlLmcuIHRoZSBt
YW5hZ2luZyBlbnRpdHkpLCB3aGljaCB3aWxsIHByb2ZpdCBtb3N0IGZyb20gc2F2aW5nIHNldmVy
YWwgYnl0ZXMgb24gZWFjaCBtZXNzYWdlIGV4Y2hhbmdlLiBFdmVyeW9uZSBlbHNlIGNvdWxkIHVz
ZSB0aGUgc3RhbmRhcmQgSURzLCB3aGljaCB3ZeKAmXZlIGFscmVhZHkgbWFuYWdlZCB0byBzaHJp
bmsgc2lnbmlmaWNhbnRseS4NCg0KSW5kZWVkLCB3aXRoIHN0cnVjdHVyZWQgbW9kdWxlIElEICsg
ZGF0YSBub2RlIElEICgyMCBiaXRzICsgMTAgYml0cyksIFlBTkcgVVJJIGNvbXByZXNzaW9uLCBh
bmQgbG9uZyBmb3JtL3Nob3J0IGZvcm0sIHdl4oCZbGwgaGF2ZSBxdWl0ZSBhIGxvdCBvZiBnYWlu
LiBSZXNlcnZpbmcgbW9kdWxlIElEID0gMSBmb3IgYWxpYXNlcyBhbmQgbWF5YmUgd3JpdGluZyBh
IHNob3J0IGRyYWZ0IG9uIGhvdyB0aGUgYWxpYXNpbmcgaXMgaW1wbGVtZW50ZWQgc2VlbXMgZmVh
c2libGUsIHdoZXJlIHdlIGNhbiBjb3ZlciB0aGUgZXhhY3QgbWVjaGFuaXNtIG9mIGFsaWFzIGRl
ZmluaXRpb24sIGFuZCBjbGllbnQvc2VydmVyIGludGVyYWN0aW9uLg0KDQpBbGV4YW5kZXINCg0K
DQpQYXNjYWwNCg0KRnJvbTogNnRpc2NoIFttYWlsdG86NnRpc2NoLWJvdW5jZXNAaWV0Zi5vcmdd
IE9uIEJlaGFsZiBPZiBBbmR5IEJpZXJtYW4NClNlbnQ6IHZlbmRyZWRpIDUganVpbiAyMDE1IDIw
OjU1DQpUbzogTWljaGVsIFZlaWxsZXR0ZQ0KQ2M6IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRp
c2NoQGlldGYub3JnPjsgQWxleGFuZGVyIFBlbG92OyBjb3JlQGlldGYub3JnPG1haWx0bzpjb3Jl
QGlldGYub3JnPg0KU3ViamVjdDogUmU6IFs2dGlzY2hdIFJlc2VydmUgc3BhY2UgZm9yIGFsaWFz
ZXMNCg0KDQoNCk9uIEZyaSwgSnVuIDUsIDIwMTUgYXQgMTE6NDEgQU0sIE1pY2hlbCBWZWlsbGV0
dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86TWljaGVsLlZlaWxs
ZXR0ZUB0cmlsbGlhbnRpbmMuY29tPj4gd3JvdGU6DQpIaSBBbGV4YW5kZXINCg0KSSBoYXZlIHNv
bWUgY29uY2VybnMgYWJvdXQgYWxsb3dpbmcgQ29NSSBjbGllbnQocykgdGhlIGNvbnRyb2wgb2Yg
dGhlIGxpc3Qgb2YgYWxpYXNlcy4NClRoaXMgYXBwcm9hY2ggd29yayBmaW5lIGZvciB0aGUgZmly
c3QgQ29NSSBhcHBsaWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1dCB3aGF0IGRvIHdlIGRvIHdpdGgg
dGhlIHN1YnNlcXVlbnQgQ29NSSBhcHBsaWNhdGlvbj8NCg0KT25lIHBvc3NpYmxlIHNvbHV0aW9u
IGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9k
ZSBJRCkgdG8gdGhlIENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIHRoZSBDb01JIGNsaWVudCBt
aWdodCByZWNlaXZlIGFuIGVycm9yIGlmIG9uZSBvciBtdWx0aXBsZSBvZiB0aGVzZSBhbGlhc2Vz
IGFyZSBhbHJlYWR5IHJlc2VydmVkLg0KDQpBIHNlY29uZCBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0
aGF0IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGRhdGEgbm9kZSBJRCkgYW5kIGdl
dCBhIGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5vZGUgSUQpIGZyb20gdGhlIENvTUkgc2VydmVyLiBJ
biB0aGlzIGNhc2UsIENvTUkgY2xpZW50cyB3aWxsIGhhdmUgdG8gZGVhbCB3aXRoIGEgbWl4IHBv
cHVsYXRpb24gb2YgYWxpYXNlcy4NCg0KVGhlIHByb3Bvc2VkIHNvbHV0aW9uIG5lZWQgdG8gc2Nh
bGUgdG8gYSBtdWx0aS12ZW5kb3JzLCBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgZW52aXJvbm1lbnQu
DQpXaXRoIHRoaXMgaXMgbWluZCwgZG8geW91IGhhdmUgYW55IGFsdGVybmF0aXZlIHNvbHV0aW9u
cyB0byBwcm9wb3NlPw0KDQoNCg0KRG9lcyB0aGlzIGFwcHJvYWNoIGFsbG93IGVhY2ggY2xpZW50
IHRvIGhhdmUgYSBkaWZmZXJlbnQgc2V0IG9mIGFsaWFzZXMsDQpzbyB0aGUgc2VydmVyIGhhcyB0
byBtYWludGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGluZyBmb3IgZWFjaCBjbGllbnQ/DQpUaGlzIHNl
ZW1zIGxpa2UgYSBsb3Qgb2Ygb3ZlcmhlYWQgYW5kIE5WLXN0b3JhZ2UgcmVxdWlyZW1lbnRzDQpv
biB0aGUgc2VydmVyLg0KDQpDaGFuZ2luZyB0aGUgc2NoZW1hIGlkZW50aWZpZXJzIGJhc2VkIG9u
IHdoaWNoIGNsaWVudCBpcw0Kc2VuZGluZyB0aGUgcmVxdWVzdCBzZWVtcyBsaWtlIGEgY29tcGxp
Y2F0ZWQgZGVzaWduIGNoYW5nZQ0KZnJvbSBSRVNUQ09ORiwgTkVUQ09ORiwgb3IgU05NUCwgd2hl
cmUgdGhlcmUgaXMgb25seQ0KMSBzY2hlbWEgdHJlZSB3aGljaCBpcyBub3QgZGVwZW5kZW50IG9u
IHRoZSBjbGllbnQgaWRlbnRpdHkuDQoNCg0KQW5keQ0KDQoNCg0KDQo8aW1hZ2UwMDEuanBnPg0K
DQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlh
bnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJp
bGxpYW50aW5jLmNvbTxtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0K
d3d3LnRyaWxsaWFudGluYy5jb208aHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoN
CkZyb206IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJy
ZXRhZ25lLmV1PG1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldT5dDQpT
ZW50OiA1IGp1aW4gMjAxNSAxMjowMw0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbmR5IEJp
ZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgY29yZUBpZXRm
Lm9yZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBSZXNlcnZlIHNwYWNlIGZv
ciBhbGlhc2VzDQoNCkhpIE1pY2hlbCwNCg0KDQpMZSA1IGp1aW4gMjAxNSDDoCAxNzoxNywgTWlj
aGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpN
aWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+PiBhIMOpY3JpdCA6DQoNCkhpIEFsZXhh
bmRlcg0KDQpJbiB5b3VyIHByZXNlbnRhdGlvbiBhdCA2VGlTQ0gsIHlvdSBwcm9wb3NlIHRoZSBm
b2xsb3dpbmcgZGF0YSBub2RlIElEIHN0cnVjdHVyZS4NCg0K4oCiICAgICAgIDMyIGJpdHMgWUFO
RyBJRA0K4oCTICAgICAgMjAgYml0cyBmb3IgbW9kdWxlIElEIChhc3NpZ25lZCBieSBJRVRGKQ0K
4oCTICAgICAgMTAgYml0cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0ZWQgZGV0ZXJtaW5pc3Rp
Y2FsbHkpDQoNCg0KQmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNhbiByZXNlcnZlIG1vZHVs
ZSBJRCB6ZXJvIGZvciBhbGlhc2VzLg0KDQoNCkkgd2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3
YXMgZGlzY3Vzc2VkIG9uIHRoZSBkaXNjdXNzaW9uIGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAz
MCBiaXRzIFlBTkcgSUQsIGJ1dCB0aGF04oCZcyBmb3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVu
dCB3aXRoIHRoZSBZQU5HIGhhc2ggYW5kIEkgZG9u4oCZdCBtaW5kIGtlZXBpbmcgaXQgMzAgYml0
cy4NCg0KDQpJZiB3ZSB3YW50IHRvIG1pbmltaXplIGJvdGggdGhlIG5ldHdvcmsgYW4gbm9kZSBy
ZXNvdXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFzIG1lY2hhbmlzbSwgd2UgY2FuIG1hcCBhbiBl
bnRpcmUgbW9kdWxlIHRvIHRoaXMgc3BhY2UuDQpUaGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBieSBh
IHNpbmdsZSBpbnRlZ2VyIHJlc291cmNlIChlLmcuIGxlYWYgYWxsaWFzc2VkTW9kdWxlIHsgdHlw
ZSB1aW50MzIgfSApDQpUaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRlcyBwZXIgQ29NSSBzZXJ2
ZXIgYWNjZXNzZWQuDQoNCg0KSXQgaXMgcG9zc2libGUgdG8gbWFwIGFuIGVudGlyZSBtb2R1bGUg
dG8gdGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlzIGlzIHVwIHRvIHRoZSBvcGVyYXRvci4gSG93ZXZl
ciwgaWYgeW91IGxvYWQgdHdvIG1vZHVsZXMgd2hpY2ggcmVkZWZpbmUgdGhlIHNhbWUgYWxpYXMg
eW91IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQgZnJvbSBpdC4gTWF5YmUgaXQgd291bGQgYmUgaW50
ZXJlc3RpbmcgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMg
ZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLg0KDQpJZiB0aGUgL21nLzAgYWxp
YXMgaXMgcmVzZXJ2ZWQgZm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNp
bXBseSBzYXlpbmc6DQpQT1NUIC9tZy8wDQp7DQogInNvdXJjZV91cmkiIDogIi9tZy9CQUEiDQp9
DQoNCndoZXJlIC9tZy9CQUEgaXMgdGhlIFlBTkcgaWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBt
b2R1bGUgSUQgKyAxMCBiaXRzIHNldCB0byAwKS4gVGhpcyB3YXksIHRoZSBzZXJ2ZXIgd2lsbCBr
bm93OiBPSywgZ2V0IHRoZSBhbGlhcyBtYXBwaW5nIGZyb20gdGhlIFlBTkcgc2NoZW1lIG9mIG1v
ZHVsZSB3aXRoIElEID0gQiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURikuDQoNCk9yLCB5b3UgY2Fu
IGR5bmFtaWNhbGx5IGNvbmZpZ3VyZSB0aGUgbWFwcGluZzoNClBPU1QgL21nLzANCnsNCiAgWUFO
R19pZCA6IGFsaWFzLA0KICBZQU5HX2lkIDogYWxpYXMsDQogIFlBTkdfaWQgOiBhbGlhcw0KfQ0K
DQpJZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhpYmxlIGFsaWFzZXMgbWVj
aGFuaXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5HIElEKSBzZWVtIHRoZSBz
b2x1dGlvbi4NCkhvd2V2ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVy
ZSBjYW4gYmUgYXMgbGFyZ2UgYXMgMTI1MCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQg
aWYgbGltaXRlZCB0byAyNTYgYWxpYXNlcy4NCg0KVGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBh
IHNlcGFyYXRlIG1hcHBpbmcgZm9yIGVhY2ggc2VydmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBp
biBhIG5ldHdvcmsgeW914oCZbGwgaGF2ZSBhIHNpbmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0
d28/KSAtIGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5aW5nIHRvIG9wdGltaXplIHRoZSBtYW5hZ2Vt
ZW50IG9mIHlvdXIgZGV2aWNlcyAoc2VydmVycykuIFNvLCB0eXBpY2FsbHkgeW914oCZZCBtYXAg
YWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMu
KSBhbmQgdXNlIHRoYXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0
aGUgZnVsbCBJRC4NCg0KQmVzdCwNCkFsZXhhbmRlcg0KDQoNCjxpbWFnZTAwMS5qcGc+DQoNCk1p
Y2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJ
bmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cu
dHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg==

--_000_CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0CO2PR0601MB792na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAw
O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6
MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZh
bWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUg
RGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwN
Cgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBw
dDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQphOmxpbmssIHNwYW4u
TXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRl
eHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0Zv
bGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1k
ZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgsIGxpLk1zb0xpc3RQYXJh
Z3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1wcmlvcml0eTozNDsNCglt
YXJnaW4tdG9wOjBpbjsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1hcmdpbi1ib3R0b206MGluOw0K
CW1hcmdpbi1sZWZ0Oi41aW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTox
Mi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0Kc3Bhbi5hcHBs
ZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6YXBwbGUtY29udmVydGVkLXNwYWNl
O30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0K
CWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0KLk1z
b0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEw
LjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2lu
OjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3Jk
U2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxpc3Qt
aWQ6MjExMTExOTM1NjsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsNCgltc28tbGlzdC10ZW1wbGF0
ZS1pZHM6MjEyMTcyMTYxNiAyNjkwMjUyODEgMjY5MDI1MjgzIDI2OTAyNTI4NSAyNjkwMjUyODEg
MjY5MDI1MjgzIDI2OTAyNTI4NSAyNjkwMjUyODEgMjY5MDI1MjgzIDI2OTAyNTI4NTt9DQpAbGlz
dCBsMDpsZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZl
bC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVy
LXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJv
bDt9DQpAbGlzdCBsMDpsZXZlbDINCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0K
CW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWls
eToiQ291cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpu
b25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1
aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2
ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZl
bC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0
LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNQ0K
CXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCglt
c28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7
DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxp
c3QgbDA6bGV2ZWw2DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2
ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJl
ci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5n
ZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxl
dDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNv
LWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250
LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9y
bWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25l
Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47
DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDkNCgl7bXNvLWxl
dmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2
ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4
dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpvbA0KCXttYXJnaW4t
Ym90dG9tOjBpbjt9DQp1bA0KCXttYXJnaW4tYm90dG9tOjBpbjt9DQotLT48L3N0eWxlPjwhLS1b
aWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1h
eD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0K
PG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9
IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9k
eSBsYW5nPSJFTi1DQSIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJX
b3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkhpIEFsZXhhbmRlciwgaGkgUGFz
Y2FsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5JIHdhbnQgdG8gZW1w
aGFzZXMgdGhlIGZvbGxvd2luZyBwb2ludHM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2
ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250
OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRp
Zl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4t
VVMiPlRoZSB1c2Ugb2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBpbiBDQk9S
IHN1cHBvcnQgb2YgNjMgbW9kdWxlcyB3aXRoIG9wdGltaXplZCBtZXNzYWdlIHNpemUgaW5zdGVh
ZCBvZiBvbmx5IDMNCiBmb3IgdGhlIGJhc2U2NCBVUkkuPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5JZiB0aGUgNlRpU0NIIG1vZHVsZSBJRCBpcyBh
bGxvY2F0ZWQgd2l0aGluIHRoZXNlIDYzIElEcywgdGhlcmUgd2lsbCBiZSBubyBtZXNzYWdlIHNp
emUgb3B0aW1pemF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBhbGlhc2VzDQogbWVjaGFuaXNtLjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+VGhpcyBtYWtl
IHRoZSBpbnRyb2R1Y3Rpb24gb2YgYWxpYXNlcyBsZXNzIHVyZ2VudC48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRlbnQ6
LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtpZiAhc3VwcG9ydExpc3RzXT48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpTeW1ib2w7Y29sb3I6IzFGNDk3
RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9y
ZSI+wrc8c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsi
PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFu
Pjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UaGUgbWVzc2FnZSBzaXplIG9mIHRoZSBzZWxlY3Qg
cXVlcnkgcGFyYW1ldGVyIGVuY29kZWQgaW4gQ0JPUiBzaG91bGQgYmUgZXF1YWwgb3Igc21hbGxl
ciBjb21wYXJlZCB0byB0aGUgYmFzZTY0IFVSSS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNv
LWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkhvd2V2ZXIsIHRoZSBzZWxlY3QgcXVlcnkgcGFyYW1l
dGVyIGVuY29kZWQgaW4gQ0JPUiBzdXBwb3J0IGEgd2lkZXIgcmFuZ2Ugb2YgdmFsdWVzIHdpdGhv
dXQgc2l6ZSBwZW5hbHR5ICgxNiBiaXRzIGluc3RlYWQgb2YNCiAxMiwgMzIgYml0cyBpbnN0ZWFk
IG9mIDMwKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBo
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+RnVydGhlcm1vcmUsIENvTUkgZGV2aWNlcyB3b27igJl0IGhhdmUgdG8gc3VwcG9ydCB0d28g
dHlwZSBvZiBlbmNvZGluZyBkZXBlbmRpbmcgaWYgSURzIGFyZSBwYXJ0IG9mIHRoZSBjb21tYW5k
IHZzLiBwYXlsb2FkLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFy
YWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQ
YXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj5Gb3IgZXhhbXBsZTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+QXNzdW1pbmcgbW9kdWxlIElEIDI8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkFzc3VtaW5nIGRhdGEgbm9kZSBJ
RCAxLCAyLCAzLCA0IChsb25nIGZvcm0gMjA0OSwgMjA1MCwgMjA1MSk8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkFzc3VtaW5nIOKAnCzigJ0gc2Vw
YXJhdG9yIHRvIHNlbGVjdCBtdWx0aXBsZSBkYXRhIG5vZGVzPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkJhc2U2NCBhcHByb2FjaDo8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlJFUTogR0VUIGV4
YW1wbGUuY29tL21nL2dCJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7ICgzIGJ5dGVzOyAxIGJ5dGUgZm9yIHRoZSDigJwv4oCdLCAyIGJ5dGVzIGZvciDigJxn
QuKAnSk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBo
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+Q0JPUiBhcHByb2FjaDo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlz
dFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPlJFUTogR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdCgyMDQ5KSZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAoNCBieXRlczsgb25lIGJ5
dGUgZm9yIHRoZSBDb0FQIG9wdGlvbiwgMyBmb3IgMjA0OSBlbmNvZGVkIHVzaW5nIENCT1IpPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkJhc2U2
NCBhcHByb2FjaDo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFn
cmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPlJFUTogR0VUIGV4YW1wbGUuY29tL21nL2dCLEMsRCxFJm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICg5IGJ5dGVzOyAxIGJ5dGUgZm9yIHRoZSDi
gJwv4oCdLCA4IGJ5dGVzIGZvciDigJxnQixDLEQsReKAnSk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28t
ZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5DQk9SIGFwcHJvYWNoOjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+UkVROiBHRVQgZXhhbXBsZS5jb20v
bWc/c2VsZWN0KCBbMjA0OSwyLDMsNF0gKSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAo
OCBieXRlczsgMSBieXRlIGZvciB0aGUgQ29BUCBvcHRpb24sIDEgZm9yIHRoZSBDQk9SIGFycmF5
LCAzJiM0MzsxJiM0MzsxJiM0MzsxIGJ5dGVzDQogZm9yIHRoZSBJRHMpPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
ZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2lu
Zz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDti
b3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDku
MDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7
Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGlu
IDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj48aW1nIHdpZHRoPSIxMjAiIGhlaWdodD0iMjIiIGlkPSJQaWN0
dXJlX3gwMDIwXzIiIHNyYz0iY2lkOmltYWdlMDAxLmpwZ0AwMUQwQTUwNy4zOTRFRTQxMCIgYWx0
PSJjaWQ6aW1hZ2UwMDEuanBnQDAxQzg2OEQ4LkJGMEJCN0UwIj48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0
LjY1cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERp
cmVjdG9yPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUw
LTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVA
dHJpbGxpYW50aW5jLmNvbSI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWls
bGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+PGEgaHJlZj0iaHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29t
LyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OyxzYW5zLXNlcmlmIj53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4NCiAmbmJzcDsgPC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPC90cj4NCjwv
dGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2
IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGlu
ZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBsYW5n
PSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gbGFuZz0iRU4tVVMiIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZiI+IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29t
LWJyZXRhZ25lLmV1XQ0KPGJyPg0KPGI+U2VudDo8L2I+IDExIGp1aW4gMjAxNSAxNzowNjxicj4N
CjxiPlRvOjwvYj4gUGFzY2FsIFRodWJlcnQgKHB0aHViZXJ0KTxicj4NCjxiPkNjOjwvYj4gQW5k
eSBCaWVybWFuOyBNaWNoZWwgVmVpbGxldHRlOyA2dGlzY2hAaWV0Zi5vcmc7IGNvcmVAaWV0Zi5v
cmc8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFs2dGlzY2hdIFJlc2VydmUgc3BhY2UgZm9yIGFs
aWFzZXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+SGkgUGFzY2FsLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2lu
LXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5MZSAxMCBqdWluIDIwMTUgw6AgMTU6MjUsIFBhc2NhbCBUaHViZXJ0IChwdGh1YmVydCkg
Jmx0OzxhIGhyZWY9Im1haWx0bzpwdGh1YmVydEBjaXNjby5jb20iPnB0aHViZXJ0QGNpc2NvLmNv
bTwvYT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5EZWFyIGFsbDo8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPlRoaXMgbG9va3MgbGlrZSB0aGUgcHJvYmxlbSBvZiBsb2NhbCBuYW1lc3BhY2Vz
LCZuYnNwOyB3aGljaCBpcyB0aGUgcmVhc29uIHdoeSBNUExTIHN3aXRjaGVzIGxhYmVscy48L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlIHVzZXIgbWF5IGFjY2VzcyBhIGxpbWl0
ZWQgc2V0IG9mIHJlc291cmNlcyBmcm9tIGEgbnVtYmVyIG9mIHNlcnZlcnMsIGFuZCBzZXJ2ZXJz
IGFyZSByZWFkIGJ5IG1hbnkgdXNlcnMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PllvdSBjYW5ub3QgZW5zdXJlIHRoYXQgeW91IGhhdmUgYSBzaW5nbGUgYWxpYXMgc3BhY2UgdGhh
dCBzYXRpc2ZpZXMgdGhlbSBhbGwuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkdyZWF0IGFu
YWxvZ3khIEFuZCB5ZXMsIHNhZGx5IHlvdSBjYW5ub3Qgc2F0aXNmeSB0aGVtIGFsbCwgYXQgbGVh
c3Qgbm90IHdpdGggYWxsIGRldmljZXMuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxicj4NCjxicj4NCjxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5
bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+U28gLHdoYXQgaWYgdGhlIHVzZXIg
aGFkIGl0cyBvd24gc2V0IG9mIGFsaWFzZXMgYW5kIHRoZSBzZXJ2ZXIgYWxzbyBoYWQgaXRzIG93
biBzZXQgb2YgYWxpYXNlcz88L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRoZSBhbGlhc2VzIGNvdWxkIGJlIG1h
cHBlZCBpbiBhIHRhYmxlIGxpa2UgYSB1U0FQIGFuZCBhIHBTQVAgYXJlIG1hcHBlZCBhY3Jvc3Mg
bGF5ZXJzLiBCcm9hZGx5Ojwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4tIEZpcnN0
IHRpbWUgYSB1c2VyIHJlcXVlc3RzIGEgcmVzb3VyY2UgaW4gYSBzZXJ2ZXIsIGl0IGNvbWVzIHdp
dGggYSB0dXBsZSAodXNlcmlkLCB1c2VyYWxpYXMsIGZ1bGxuYW1lKTwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj4tIFRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCAoc2VydmVyaWQsIHNl
cnZlcmFsaWFzLCB1c2VyaWQsIHVzZXIgYWxpYXMpLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5BY3R1YWxseSwgSSB0aGluayB0aGF0IHRoaXMgY291bGQgYmUgd29ya2VkIG91dCBpbiBDb01J
IGFsc28uIEluc3RlYWQgb2YgZnVsbG5hbWUgeW91IGNvdWxkIHByb3ZpZGUgdGhlIFlBTkcgaWQg
KG1vZHVsZSBJRCAmIzQzOyBkYXRhIG5vZGUgSUQpIGFuZCBkbyB0aGUgbWFwcGluZy4gVXNlciBh
bGlhcyB3b3VsZCBiZSB0aGUgc3BlY2lhbCBhbGlhc2VkIFlBTkcgaWQuIFVzZXIgSUQsIGhvd2V2
ZXIsIGNvdWxkIGJlIGENCiBsaXR0bGUgYml0IG1vcmUgdHJpY2t5IC0gaG93IGRvIHdlIGVuc3Vy
ZSB0aGF0IGl0IGlzIGNvbnNpc3RlbnQ/IFVzZSB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgY2xpZW50
IGNvdWxkIGJlIGRvYWJsZSwgYnV0IHdl4oCZbGwgaGF2ZSB0byBpbmNsdWRlIHRoZSBVRFAgcG9y
dCBqdXN0IGluIGNhc2Ugc29tZW9uZSBydW5zIHR3byBjbGllbnRzIG9uIHRoZSBzYW1lIG1hY2hp
bmUuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0K
PGJyPg0KPG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBw
dDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj5BZnRlciB0aGF0LCZuYnNwOyBpZiB0aGUgc2VydmVyIGlzIGEgY29u
c3RyYWluZWQgZGV2aWNlIHRoZW4gdGhlIHVzZXIgdGFsa3MgdG8gdGhlIHNlcnZlciB3aXRoIChz
ZXJ2ZXJpZCwgc2VydmVyYWxpYXMpIGFuZCB0aGUgdXNlciBtYWludGFpbnMgYSBzd2l0Y2hpbmcg
dGFibGUgZm9yDQogdGhlIHJlc291cmNlIGl0IHVzZXMgb24gdmFyaW91cyBzZXJ2ZXJzLjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5JZiB0aGUgdXNlciBpcyB0aGUgY29uc3RyYWlu
ZWQgZGV2aWNlIGFuZCB0aGUgc2VydmVyIGlzIG5vdCwgdGhlIHVzZXIgY291bGQgdGFsayB3aXRo
ICh1c2VyaWQsIHVzZXJhbGlhcykgYW5kIHRoZSBzZXJ2ZXIgbWFpbnRhaW5zIGEgc3dpdGNoaW5n
IHRhYmxlLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Rm9yIGxhcmdlIHNlcnZlcnMsIHRoZSBzZXJ2ZXIgbWF5
IGFsbG9jYXRlIGFsaWFzZXMgZHluYW1pY2FsbHkgYmFzZWQgb24gd2hhdCBpdCBpcyBiZWluZyBh
c2tlZC4gV2XigJlkIHRoZW4gbmVlZCB0byB0YWxrIGFib3V0IGFsaWFzIHVwZGF0ZSBvciByZXZv
Y2F0aW9uLCBwcm9iYWJseQ0KIGluIHRlcm1zIG9mIHNlc3Npb24gYW5kIGxpZmV0aW1lLjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+RG9lcyB0aGF0IGxvb2sgdXNhYmxlPzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5Zb3UgYXJlIHBvaW50aW5nIG91dCBhbiBpbnRlcmVzdGluZyBxdWVzdGlvbi4gSSB3b3Vs
ZCB0aGluayAoYnV0IG1heWJlIEnigJltIG1pc3Rha2VuKSwgdGhhdCB0aGUgY2xpZW50IHNob3Vs
ZCBoYXZlIHRoZSBsZWFkaW5nIHJvbGUgaW4gZmlndXJpbmcgb3V0IHdoYXTigJlzIGhhcHBlbmlu
Zy4gVGhlIGlkZWEgaXMgdGhlIGZvbGxvd2luZzo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlIGNsaWVudCBjaGVja3MgaWYgdGhlIHNlcnZl
ciBzdXBwb3J0cyBhbGlhc2luZywgd2l0aCB0aGUgcG9zc2libGUgb3B0aW9uczo8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlMxKSBubyBhbGlhc2lu
ZzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UzIp
IHN0YXRpYy9zZXJ2ZXItZGVmaW5lZCBhbGlhc2luZzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UzMpIGR5bmFtaWMvc2luZ2xlIGFsaWFzIG1hcHBp
bmcmbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPiZuYnNwOyBTMy4xKSBtYXBwaW5nIGFscmVhZHkgZGVmaW5lZDxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IFMzLjIpIG5vIG1hcHBp
bmcgZGVmaW5lZDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+UzQpIGR5bmFtaWMvcGVyIGNsaWVudCBhbGlhcyBtYXBwaW5nPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZW4sIHRoZSBjbGllbnQg
Y2FuIHRha2UgYWN0aW9uLCBkZXBlbmRpbmcgb24gaXRzIG93biBjYXBhYmlsaXRpZXMgYW5kIHRo
ZSByZXNwb25zZSBvZiB0aGUgc2VydmVyLiBFLmcuIGEgdW5jb25zdHJhaW5lZCBjbGllbnQgY291
bGQgb2J0YWluIHRoZSBhbGlhcyBtYXBwaW5nIGlmIGl0IGlzIHN0YXRpYyAob3IgaWYgdGhlcmUg
aXMgYSBzaW5nbGUgYWxpYXMgbWFwcGluZyBpbiBwbGFjZSkgYW5kIGNhY2hlIGl0DQogbG9jYWxs
eS4gU28sIHRoZXJlIHdpbGwgYmUgdGhlIGZvbGxvd2luZyBjb3JyZXNwb25kZW5jZSA6PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkdpdmVuOjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QzEpIGNv
bnN0cmFpbmVkIGNsaWVudDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+QzIpIHVuY29uc3RyYWluZWQgY2xpZW50PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPldlIGhhdmU6PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5DMSAmIzQzOyBTMSkgbm8gYWxp
YXNpbmcsIG5vdGhpbmcgdG8gZG88bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPkMxICYjNDM7IFMyKSBhbmQgQzEgJiM0MzsgUzMuMSkgaWYgdGhlIGFs
aWFzIG1hcHBpbmcgaXMga25vd24sIHVzZSBpdC4gb3RoZXJ3aXNlLCBpZ25vcmU8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkMxICYjNDM7IFMzLjIp
IGFuZCBDMSAmIzQzOyBTNCkgZGVmaW5lIGFsaWFzIG1hcHBpbmc8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkMyICYjNDM7IFMxKSBu
byBhbGlhc2luZywgbm90aGluZyB0byBkbzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkMyICYjNDM7IFMyKSBhbmQgQzIgJiM0MzsgUzMu
MSkgaWYgdGhlIGFsaWFzIG1hcHBpbmcgaXMga25vd24sIHVzZSBpdC4gb3RoZXJ3aXNlLCBsZWFy
biBpdDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+QzIgJiM0MzsgUzMuMikgYW5kIEMyICYjNDM7IFM0KSBkZWZpbmUgYWxp
YXMgbWFwcGluZzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5JIHdvdWxkIHNheSB0aGF0IHRoZSBhbmFsb2d5IHlvdSBtYWRlIHdpdGggTVBMUyBj
b3JyZXNwb25kcyBxdWl0ZSBhIGxvdCB0byB0aGUgQzImIzQzO1M0IGNhc2UuIFBlcnNvbmFsbHks
IEkgd291bGQgYmUgbW9zdCBpbnRlcmVzdGVkIGludG8gaGF2aW5nIG9uZSBjbGllbnQgY29uZmln
dXJlIG9uZSBhbGlhcyBtYXBwaW5nIHRvIGFsbCBzZXJ2ZXJzIGluIHRoZSBuZXR3b3JrIChlLmcu
IHRoZSBtYW5hZ2luZyBlbnRpdHkpLA0KIHdoaWNoIHdpbGwgcHJvZml0IG1vc3QgZnJvbSBzYXZp
bmcgc2V2ZXJhbCBieXRlcyBvbiBlYWNoIG1lc3NhZ2UgZXhjaGFuZ2UuIEV2ZXJ5b25lIGVsc2Ug
Y291bGQgdXNlIHRoZSBzdGFuZGFyZCBJRHMsIHdoaWNoIHdl4oCZdmUgYWxyZWFkeSBtYW5hZ2Vk
IHRvIHNocmluayBzaWduaWZpY2FudGx5LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JbmRlZWQsIHdpdGggc3RydWN0dXJlZCBtb2R1bGUgSUQg
JiM0MzsgZGF0YSBub2RlIElEICgyMCBiaXRzICYjNDM7IDEwIGJpdHMpLCBZQU5HIFVSSSBjb21w
cmVzc2lvbiwgYW5kIGxvbmcgZm9ybS9zaG9ydCBmb3JtLCB3ZeKAmWxsIGhhdmUgcXVpdGUgYSBs
b3Qgb2YgZ2Fpbi4gUmVzZXJ2aW5nIG1vZHVsZSBJRCA9IDEgZm9yIGFsaWFzZXMgYW5kIG1heWJl
IHdyaXRpbmcgYSBzaG9ydCBkcmFmdCBvbiBob3cgdGhlIGFsaWFzaW5nDQogaXMgaW1wbGVtZW50
ZWQgc2VlbXMgZmVhc2libGUsIHdoZXJlIHdlIGNhbiBjb3ZlciB0aGUgZXhhY3QgbWVjaGFuaXNt
IG9mIGFsaWFzIGRlZmluaXRpb24sIGFuZCBjbGllbnQvc2VydmVyIGludGVyYWN0aW9uLjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz
cDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5BbGV4YW5k
ZXI8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUg
c3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4m
bmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UGFzY2FsPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtw
YWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9u
ZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBp
biI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LHNhbnMtc2VyaWYiPkZyb206
PC9zcGFuPjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssc2Fucy1z
ZXJpZiI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtm
b250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssc2Fucy1zZXJpZiI+NnRpc2NoDQogWzxhIGhy
ZWY9Im1haWx0bzo2dGlzY2gtYm91bmNlc0BpZXRmLm9yZyI+bWFpbHRvOjZ0aXNjaC1ib3VuY2Vz
QGlldGYub3JnPC9hPl08c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8
L3NwYW4+PGI+T24gQmVoYWxmIE9mPHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+
Jm5ic3A7PC9zcGFuPjwvYj5BbmR5IEJpZXJtYW48YnI+DQo8Yj5TZW50OjwvYj48c3BhbiBjbGFz
cz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+dmVuZHJlZGkgNSBqdWluIDIw
MTUgMjA6NTU8YnI+DQo8Yj5Ubzo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFj
ZSI+Jm5ic3A7PC9zcGFuPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQo8Yj5DYzo8L2I+PHNwYW4gY2xh
c3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxhIGhyZWY9Im1haWx0bzo2
dGlzY2hAaWV0Zi5vcmciPjZ0aXNjaEBpZXRmLm9yZzwvYT47IEFsZXhhbmRlciBQZWxvdjsNCjxh
IGhyZWY9Im1haWx0bzpjb3JlQGlldGYub3JnIj5jb3JlQGlldGYub3JnPC9hPjxicj4NCjxiPlN1
YmplY3Q6PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bh
bj5SZTogWzZ0aXNjaF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5PbiBGcmksIEp1biA1LCAyMDE1IGF0IDExOjQx
IEFNLCBNaWNoZWwgVmVpbGxldHRlICZsdDs8YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxsZXR0
ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1
cnBsZSI+TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT4mZ3Q7IHdy
b3RlOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SGkgQWxleGFuZGVy
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj5JIGhhdmUgc29tZSBjb25jZXJucyBhYm91dCBhbGxvd2luZyBDb01J
IGNsaWVudChzKSB0aGUgY29udHJvbCBvZiB0aGUgbGlzdCBvZiBhbGlhc2VzLjwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UaGlzIGFwcHJvYWNoIHdvcmsgZmluZSBmb3IgdGhlIGZp
cnN0IENvTUkgYXBwbGljYXRpb24gKGUuZy4gNlRpU0NIKSBidXQgd2hhdCBkbyB3ZSBkbyB3aXRo
IHRoZSBzdWJzZXF1ZW50IENvTUkgYXBwbGljYXRpb24/PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5PbmUgcG9z
c2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xpZW50IHNlbmQgYSBsaXN0IG9mIChh
bGlhcywgZGF0YSBub2RlIElEKSB0byB0aGUgQ29NSSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwgdGhl
IENvTUkgY2xpZW50IG1pZ2h0IHJlY2VpdmUgYW4gZXJyb3IgaWYNCiBvbmUgb3IgbXVsdGlwbGUg
b2YgdGhlc2UgYWxpYXNlcyBhcmUgYWxyZWFkeSByZXNlcnZlZC48L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkEg
c2Vjb25kIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEg
bGlzdCBvZiAoZGF0YSBub2RlIElEKSBhbmQgZ2V0IGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9k
ZSBJRCkgZnJvbSB0aGUgQ29NSSBzZXJ2ZXIuIEluIHRoaXMgY2FzZSwNCiBDb01JIGNsaWVudHMg
d2lsbCBoYXZlIHRvIGRlYWwgd2l0aCBhIG1peCBwb3B1bGF0aW9uIG9mIGFsaWFzZXMuPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj5UaGUgcHJvcG9zZWQgc29sdXRpb24gbmVlZCB0byBzY2FsZSB0byBhIG11bHRp
LXZlbmRvcnMsIG11bHRpcGxlIGFwcGxpY2F0aW9ucyBlbnZpcm9ubWVudC48L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+V2l0aCB0aGlzIGlzIG1pbmQsIGRvIHlvdSBoYXZlIGFueSBh
bHRlcm5hdGl2ZSBzb2x1dGlvbnMgdG8gcHJvcG9zZT88L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+RG9lcyB0aGlzIGFwcHJvYWNoIGFsbG93IGVhY2ggY2xpZW50IHRv
IGhhdmUgYSBkaWZmZXJlbnQgc2V0IG9mIGFsaWFzZXMsPG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5zbyB0aGUgc2VydmVy
IGhhcyB0byBtYWludGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGluZyBmb3IgZWFjaCBjbGllbnQ/PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5UaGlzIHNlZW1zIGxpa2UgYSBsb3Qgb2Ygb3ZlcmhlYWQgYW5kIE5WLXN0b3JhZ2Ug
cmVxdWlyZW1lbnRzPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5vbiB0aGUgc2VydmVyLjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5DaGFuZ2luZyB0aGUgc2NoZW1hIGlkZW50aWZpZXJzIGJhc2VkIG9uIHdoaWNoIGNs
aWVudCBpczxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+c2VuZGluZyB0aGUgcmVxdWVzdCBzZWVtcyBsaWtlIGEgY29tcGxp
Y2F0ZWQgZGVzaWduIGNoYW5nZTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ZnJvbSBSRVNUQ09ORiwgTkVUQ09ORiwgb3Ig
U05NUCwgd2hlcmUgdGhlcmUgaXMgb25seTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MSBzY2hlbWEgdHJlZSB3aGljaCBp
cyBub3QgZGVwZW5kZW50IG9uIHRoZSBjbGllbnQgaWRlbnRpdHkuPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QW5keTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1s
ZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4t
bGVmdDo0LjhwdDttYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1yaWdodDowaW47bWFyZ2luLWJvdHRv
bTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRh
YmxlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9Ijcx
NyIgc3R5bGU9IndpZHRoOjUzNy43NXB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+DQo8dGJv
ZHk+DQo8dHIgc3R5bGU9ImhlaWdodDo0OS4wNXB0Ij4NCjx0ZCB3aWR0aD0iMTM3IiBzdHlsZT0i
d2lkdGg6MTAzLjFwdDtib3JkZXI6bm9uZTtib3JkZXItcmlnaHQ6c29saWQgd2luZG93dGV4dCAx
LjBwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbHQ7
aW1hZ2UwMDEuanBnJmd0Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjx0
ZCB3aWR0aD0iNTgwIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQzNC42NXB0O3BhZGRpbmc6
MGluIDUuNHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+TWljaGVsIFZlaWxsZXR0ZTxicj4NClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3I8
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Ojgu
MXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5U
cmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJl
Zj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxh
bmsiPjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFu
dGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNv
bS8iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6cHVycGxlIj53d3cudHJpbGxp
YW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQt
c3BhY2UiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJp
YWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVy
dGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8L3RhYmxlPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNF
MUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gY2xh
c3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+
PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZiI+QWxleGFuZGVyDQogUGVsb3YgW21haWx0bzo8YSBocmVm
PSJtYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXUiIHRhcmdldD0iX2Js
YW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5hbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1i
cmV0YWduZS5ldTwvc3Bhbj48L2E+XTxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2Ui
PiZuYnNwOzwvc3Bhbj48YnI+DQo8Yj5TZW50OjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVy
dGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+NSBqdWluIDIwMTUgMTI6MDM8YnI+DQo8Yj5Ubzo8L2I+
PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPk1pY2hlbCBW
ZWlsbGV0dGU8YnI+DQo8Yj5DYzo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFj
ZSI+Jm5ic3A7PC9zcGFuPkFuZHkgQmllcm1hbjs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVk
LXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0ibWFpbHRvOjZ0aXNjaEBpZXRmLm9yZyIgdGFy
Z2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUiPjZ0aXNjaEBpZXRmLm9yZzwv
c3Bhbj48L2E+OzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bh
bj48YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0
eWxlPSJjb2xvcjpwdXJwbGUiPmNvcmVAaWV0Zi5vcmc8L3NwYW4+PC9hPjxicj4NCjxiPlN1Ympl
Y3Q6PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5S
ZTogUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5I
aSBNaWNoZWwsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90
dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+TGUgNSBqdWlu
IDIwMTUgw6AgMTc6MTcsIE1pY2hlbCBWZWlsbGV0dGUgJmx0OzxhIGhyZWY9Im1haWx0bzpNaWNo
ZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHls
ZT0iY29sb3I6cHVycGxlIj5NaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+
PC9hPiZndDsgYSDDqWNyaXQgOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5I
aSBBbGV4YW5kZXI8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SW4geW91ciBwcmVzZW50YXRpb24gYXQgNlRp
U0NILCB5b3UgcHJvcG9zZSB0aGUgZm9sbG93aW5nIGRhdGEgbm9kZSBJRCBzdHJ1Y3R1cmUuPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVy
PSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHN0eWxlPSJib3JkZXItY29sbGFw
c2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHdpZHRoPSI2MjMiIHZhbGlnbj0idG9w
IiBzdHlsZT0id2lkdGg6NDY3LjVwdDtib3JkZXI6c29saWQgd2luZG93dGV4dCAxLjBwdDtwYWRk
aW5nOjBpbiA1LjRwdCAwaW4gNS40cHQiPg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+4oCiPC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjMyIGJpdHMgWUFORyBJRDwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVm
dDoxLjBpbiI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+4oCT
PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPjIwIGJpdHMgZm9yIG1vZHVs
ZSBJRCAoYXNzaWduZWQgYnkgSUVURik8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6MS4waW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPuKAkzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3NwYW4+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj4xMCBiaXRzIGZvciBkYXRhIG5vZGUgSUQgKGdlbmVyYXRlZCBkZXRlcm1pbmlz
dGljYWxseSk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwv
dHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPkJhc2VkIG9uIHRoaXMgc3RydWN0dXJlLCB3ZSBjYW4gcmVzZXJ2ZSZuYnNwO21vZHVsZSBJ
RCB6ZXJvIGZvciBhbGlhc2VzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9j
a3F1b3RlPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPkkgd2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3YXMgZGlzY3Vzc2VkIG9uIHRoZSBkaXNj
dXNzaW9uIGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAzMCBiaXRzIFlBTkcgSUQsIGJ1dCB0aGF0
4oCZcyBmb3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBZQU5HIGhhc2ggYW5k
IEkgZG9u4oCZdCBtaW5kIGtlZXBpbmcgaXQgMzAgYml0cy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
YXJnaW4tYm90dG9tOjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBz
dHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SWYgd2Ugd2Fu
dCB0byBtaW5pbWl6ZSBib3RoIHRoZSBuZXR3b3JrIGFuIG5vZGUgcmVzb3VyY2VzIHJlcXVpcmUg
YnkgdGhpcyBhbGlhcyBtZWNoYW5pc20sIHdlIGNhbiBtYXAgYW4gZW50aXJlIG1vZHVsZSB0byB0
aGlzIHNwYWNlLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+VGhpcyBjYW4gYmUg
aW1wbGVtZW50ZWQgYnkgYSBzaW5nbGUgaW50ZWdlciByZXNvdXJjZSAoZS5nLiBsZWFmIGFsbGlh
c3NlZE1vZHVsZSB7IHR5cGUgdWludDMyIH0gKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZiI+VGhpcyBhcHByb2FjaCByZXF1aXJlIDQgYnl0ZXMgcGVyIENvTUkgc2VydmVyIGFjY2Vz
c2VkLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkl0IGlzIHBvc3Np
YmxlIHRvIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoZSBhbGlhcyBzcGFjZSBhbmQgdGhpcyBp
cyB1cCB0byB0aGUgb3BlcmF0b3IuIEhvd2V2ZXIsIGlmIHlvdSBsb2FkIHR3byBtb2R1bGVzIHdo
aWNoIHJlZGVmaW5lIHRoZSBzYW1lIGFsaWFzIHlvdSB3aWxsIGxvb3NlIHRoZSBiZW5lZml0IGZy
b20gaXQuIE1heWJlIGl0IHdvdWxkIGJlIGludGVyZXN0aW5nIHRvIGJlIGFibGUgdG8gc3BlY2lm
eQ0KIHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMgZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0
byBiZSB1c2VkLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JZiB0aGUgL21nLzAgYWxpYXMg
aXMgcmVzZXJ2ZWQgZm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNpbXBs
eSBzYXlpbmc6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5QT1NUIC9tZy8wPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj57PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJz
cDsmcXVvdDtzb3VyY2VfdXJpJnF1b3Q7IDogJnF1b3Q7L21nL0JBQSZxdW90OzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
fTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj53aGVyZSAvbWcvQkFBIGlzIHRoZSBZQU5HIGlk
IG9mIHRoZSBtb2R1bGUgKDIwIGJpdHMgbW9kdWxlIElEICYjNDM7IDEwIGJpdHMgc2V0IHRvIDAp
LiBUaGlzIHdheSwgdGhlIHNlcnZlciB3aWxsIGtub3c6IE9LLCBnZXQgdGhlIGFsaWFzIG1hcHBp
bmcgZnJvbSB0aGUgWUFORyBzY2hlbWUgb2YgbW9kdWxlIHdpdGggSUQgPSBCIChhcyBkZWZpbmVk
IGJ5IHRoZSBJRVRGKS4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T3IsIHlvdSBj
YW4gZHluYW1pY2FsbHkgY29uZmlndXJlIHRoZSBtYXBwaW5nOjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlBP
U1QgL21nLzA8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPns8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBZQU5HX2lkIDogYWxpYXMsPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj4mbmJzcDsgWUFOR19pZCA6IGFsaWFzLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IFlBTkdfaWQg
OiBhbGlhczxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+fTxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21h
cmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmIj5JZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3Jl
IGZsZXhpYmxlIGFsaWFzZXMgbWVjaGFuaXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFz
LCBZQU5HIElEKSBzZWVtIHRoZSBzb2x1dGlvbi48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWYiPkhvd2V2ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVyZSBj
YW4gYmUgYXMgbGFyZ2UgYXMmbmJzcDs8dT4xMjUwIGJ5dGVzIHBlciBDb01JIHNlcnZlciBhY2Nl
c3NlZDwvdT4mbmJzcDtpZiBsaW1pdGVkIHRvIDI1NiBhbGlhc2VzLjwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGlzIGlzIGFzc3VtaW5n
IHlvdSBuZWVkIGEgc2VwYXJhdGUgbWFwcGluZyBmb3IgZWFjaCBzZXJ2ZXIuIEkgd291bGQgc3Vw
cG9zZSB0aGF0IGluIGEgbmV0d29yayB5b3XigJlsbCBoYXZlIGEgc2luZ2xlIGFsaWFzIG1hcHBp
bmcgKG1heWJlIHR3bz8pIC0gYWZ0ZXIgYWxsLCB5b3XigJlyZSB0cnlpbmcgdG8gb3B0aW1pemUg
dGhlIG1hbmFnZW1lbnQgb2YgeW91ciBkZXZpY2VzIChzZXJ2ZXJzKS4gU28sIHR5cGljYWxseQ0K
IHlvdeKAmWQgbWFwIGFsbCA2dGlzY2ggZGV2aWNlcyB3aXRoIGFsaWFzZXMgMS0xMCAoY2hhbm5l
bCwgc2xvdCwgZXRjLikgYW5kIHVzZSB0aGF0IG9uIHRoZW0sIGFuZCBvbiBhbGwgb3RoZXIgeW91
4oCZZCBhY2Nlc3MgdGhlIGZ1bGwgSUQuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PkJlc3QsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5BbGV4YW5kZXI8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPiZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFy
Z2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8dGFibGUgY2xhc3M9Ik1zb05vcm1hbFRhYmxlIiBib3JkZXI9IjAiIGNlbGxz
cGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjcxNyIgc3R5bGU9IndpZHRoOjUzNy43
NXB0O2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSI+DQo8dGJvZHk+DQo8dHIgc3R5bGU9ImhlaWdo
dDo0OS4wNXB0Ij4NCjx0ZCB3aWR0aD0iMTM3IiBzdHlsZT0id2lkdGg6MTAzLjFwdDtib3JkZXI6
bm9uZTtib3JkZXItcmlnaHQ6c29saWQgd2luZG93dGV4dCAxLjBwdDtwYWRkaW5nOjBpbiA1LjRw
dCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZsdDtpbWFnZTAwMS5qcGcmZ3Q7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjU4MCIgdmFsaWdu
PSJ0b3AiIHN0eWxlPSJ3aWR0aDo0MzQuNjVwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7
aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+TWljaGVsIFZlaWxsZXR0ZTxicj4N
ClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3I8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+VHJpbGxpYW50IEluYy48YnI+DQpUZWw6IDQ1
MC0zNzUtMDU1NiBleHQuIDIzNzxicj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVpbGxldHRl
QHRyaWxsaWFudGluYy5jb20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6IzA1
NjNDMSI+bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
OC4xcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+PGEg
aHJlZj0iaHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjpwdXJwbGUiPnd3dy50cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5
Pg0KPC90YWJsZT4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0CO2PR0601MB792na_--

--_004_CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Fri, 12 Jun 2015 16:57:37 GMT";
	modification-date="Fri, 12 Jun 2015 16:57:37 GMT"
Content-ID: <image001.jpg@01D0A507.394EE410>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0CO2PR0601MB792na_--


From nobody Fri Jun 12 12:26:00 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1A6751AD055; Fri, 12 Jun 2015 12:25:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lCfjTgGDujBw; Fri, 12 Jun 2015 12:25:51 -0700 (PDT)
Received: from zproxy220.enst-bretagne.fr (zproxy220.enst-bretagne.fr [192.108.117.9]) by ietfa.amsl.com (Postfix) with ESMTP id 14EFE1ACF58; Fri, 12 Jun 2015 12:25:51 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id C33173028E; Fri, 12 Jun 2015 21:25:49 +0200 (CEST)
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id qhZodYBJBMsx; Fri, 12 Jun 2015 21:25:47 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTP id D322E30294; Fri, 12 Jun 2015 21:25:47 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy220.enst-bretagne.fr
Received: from zproxy220.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy220.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id h_oozalTW6_o; Fri, 12 Jun 2015 21:25:47 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy220.enst-bretagne.fr (Postfix) with ESMTPSA id F35BC3028E; Fri, 12 Jun 2015 21:25:46 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_530BDE8C-497C-490C-8C9C-7BADBCDB9B8C"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Fri, 12 Jun 2015 21:25:45 +0200
Message-Id: <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/G6Ea_7GalT0v0TNGEgi7jbN6Nvw>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 19:25:57 -0000

--Apple-Mail=_530BDE8C-497C-490C-8C9C-7BADBCDB9B8C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Michel,

You=E2=80=99re right. As I mentioned in my previous mails, I=E2=80=99m =
pretty happy with the compression of IDs we=E2=80=99ve achieved until =
now, so aliases are not as a pressing issue.=20

The thing is, if they can be implemented at (almost) zero cost, then =
some of the use-cases become quite interesting.

You actually provide a very good case with the select option. I=E2=80=99ve=
 not thought if it will present some other difficulties, but I actually =
think it facilitates the use of aliases (and I mention this only because =
it will help me also understand the semantics of your proposal of the =
select option).

If I take the example you provide:
> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4] )=20

The parameters 2,3,4 are actually relative to the module ID of the first =
one. So, if I try to generalize this (please correct me if I=E2=80=99m =
wrong), I would imagine something like:
> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4, 4097,2,3,4] )=20
To resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, =
and module ID=3D2 and relative node IDs =3D1,2,3 and 4.

This means, that specifying a GET example.com/mg?select(1) should =
resolve to module ID=3D0 and relative node ID=3D1. This requires =
absolutely no additional processing from the node.=20

So, this leaves us back to the initial idea of the aliases. All short =
node IDs are relative to a module ID (so that the long form ID can be =
interpreted). Module ID=3D0 is reserved, and can be used for aliasing if =
the device wishes to support it.=20

Does this break some of the things along the way?=20

Best,
Alex

=20

> Le 12 juin 2015 =C3=A0 18:57, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> Hi Alexander, hi Pascal
> =20
> I want to emphases the following points
> =20
> =C2=B7         The use of the select query parameter encoded in CBOR =
support of 63 modules with optimized message size instead of only 3 for =
the base64 URI.
> If the 6TiSCH module ID is allocated within these 63 IDs, there will =
be no message size optimization provided by the aliases mechanism.
> This make the introduction of aliases less urgent.
> =20
> =C2=B7         The message size of the select query parameter encoded =
in CBOR should be equal or smaller compared to the base64 URI.
> However, the select query parameter encoded in CBOR support a wider =
range of values without size penalty (16 bits instead of 12, 32 bits =
instead of 30)
> Furthermore, CoMI devices won=E2=80=99t have to support two type of =
encoding depending if IDs are part of the command vs. payload.
> =20
> For example:
> =20
> Assuming module ID 2
> Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)
> Assuming =E2=80=9C,=E2=80=9D separator to select multiple data nodes
> =20
> Base64 approach:
> REQ: GET example.com/mg/gB <http://example.com/mg/gB>         (3 =
bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =E2=80=9CgB=E2=80=9D=
)
> =20
> CBOR approach:
> REQ: GET example.com/mg?select <http://example.com/mg?select>(2049)    =
     (4 bytes; one byte for the CoAP option, 3 for 2049 encoded using =
CBOR)
> =20
> Base64 approach:
> REQ: GET example.com/mg/gB,C,D,E <http://example.com/mg/gB,C,D,E>      =
   (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 bytes for =
=E2=80=9CgB,C,D,E=E2=80=9D)
> =20
> CBOR approach:
> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4] )      (8 bytes; 1 byte for the CoAP option, 1 for the CBOR =
array, 3+1+1+1 bytes for the IDs)
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]=20
> Sent: 11 juin 2015 17:06
> To: Pascal Thubert (pthubert)
> Cc: Andy Bierman; Michel Veillette; 6tisch@ietf.org; core@ietf.org
> Subject: Re: [6tisch] Reserve space for aliases
> =20
> Hi Pascal,
> =20
> Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) =
<pthubert@cisco.com <mailto:pthubert@cisco.com>> a =C3=A9crit :
> =20
> Dear all:
> =20
> This looks like the problem of local namespaces,  which is the reason =
why MPLS switches labels.
> The user may access a limited set of resources from a number of =
servers, and servers are read by many users.
> You cannot ensure that you have a single alias space that satisfies =
them all.
> =20
> Great analogy! And yes, sadly you cannot satisfy them all, at least =
not with all devices.
>=20
>=20
> =20
> So ,what if the user had its own set of aliases and the server also =
had its own set of aliases?
> =20
> The aliases could be mapped in a table like a uSAP and a pSAP are =
mapped across layers. Broadly:
> - First time a user requests a resource in a server, it comes with a =
tuple (userid, useralias, fullname)
> - The server responds with (serverid, serveralias, userid, user =
alias).
> =20
> Actually, I think that this could be worked out in CoMI also. Instead =
of fullname you could provide the YANG id (module ID + data node ID) and =
do the mapping. User alias would be the special aliased YANG id. User =
ID, however, could be a little bit more tricky - how do we ensure that =
it is consistent? Use the IP address of the client could be doable, but =
we=E2=80=99ll have to include the UDP port just in case someone runs two =
clients on the same machine.
> =20
>=20
>=20
> =20
> After that,  if the server is a constrained device then the user talks =
to the server with (serverid, serveralias) and the user maintains a =
switching table for the resource it uses on various servers.
> If the user is the constrained device and the server is not, the user =
could talk with (userid, useralias) and the server maintains a switching =
table.
> =20
> For large servers, the server may allocate aliases dynamically based =
on what it is being asked. We=E2=80=99d then need to talk about alias =
update or revocation, probably in terms of session and lifetime.
> =20
> Does that look usable?
> =20
> You are pointing out an interesting question. I would think (but maybe =
I=E2=80=99m mistaken), that the client should have the leading role in =
figuring out what=E2=80=99s happening. The idea is the following:
> =20
> The client checks if the server supports aliasing, with the possible =
options:
> S1) no aliasing
> S2) static/server-defined aliasing
> S3) dynamic/single alias mapping=20
>   S3.1) mapping already defined
>   S3.2) no mapping defined
> S4) dynamic/per client alias mapping
> =20
> Then, the client can take action, depending on its own capabilities =
and the response of the server. E.g. a unconstrained client could obtain =
the alias mapping if it is static (or if there is a single alias mapping =
in place) and cache it locally. So, there will be the following =
correspondence :
> =20
> Given:
> C1) constrained client
> C2) unconstrained client
> =20
> We have:
> C1 + S1) no aliasing, nothing to do
> C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. =
otherwise, ignore
> C1 + S3.2) and C1 + S4) define alias mapping
> =20
> C2 + S1) no aliasing, nothing to do
> C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. =
otherwise, learn it
> C2 + S3.2) and C2 + S4) define alias mapping
> =20
> I would say that the analogy you made with MPLS corresponds quite a =
lot to the C2+S4 case. Personally, I would be most interested into =
having one client configure one alias mapping to all servers in the =
network (e.g. the managing entity), which will profit most from saving =
several bytes on each message exchange. Everyone else could use the =
standard IDs, which we=E2=80=99ve already managed to shrink =
significantly.
> =20
> Indeed, with structured module ID + data node ID (20 bits + 10 bits), =
YANG URI compression, and long form/short form, we=E2=80=99ll have quite =
a lot of gain. Reserving module ID =3D 1 for aliases and maybe writing a =
short draft on how the aliasing is implemented seems feasible, where we =
can cover the exact mechanism of alias definition, and client/server =
interaction.
> =20
> Alexander
> =20
> =20
> Pascal
> =20
> From: 6tisch [mailto:6tisch-bounces@ietf.org =
<mailto:6tisch-bounces@ietf.org>] On Behalf Of Andy Bierman
> Sent: vendredi 5 juin 2015 20:55
> To: Michel Veillette
> Cc: 6tisch@ietf.org <mailto:6tisch@ietf.org>; Alexander Pelov; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: [6tisch] Reserve space for aliases
> =20
> =20
> =20
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
> Hi Alexander
> =20
> I have some concerns about allowing CoMI client(s) the control of the =
list of aliases.
> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
> =20
> One possible solution is that each CoMI client send a list of (alias, =
data node ID) to the CoMI server. In this case, the CoMI client might =
receive an error if one or multiple of these aliases are already =
reserved.
> =20
> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
> =20
> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
> With this is mind, do you have any alternative solutions to propose?
> =20
> =20
> =20
> Does this approach allow each client to have a different set of =
aliases,
> so the server has to maintain a configured mapping for each client?
> This seems like a lot of overhead and NV-storage requirements
> on the server.
> =20
> Changing the schema identifiers based on which client is
> sending the request seems like a complicated design change
> from RESTCONF, NETCONF, or SNMP, where there is only
> 1 schema tree which is not dependent on the client identity.
> =20
> =20
> Andy
> =20
> =20
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 12:03
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> =20
> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander
> =20
> In your presentation at 6TiSCH, you propose the following data node ID =
structure.
> =20
> =E2=80=A2       32 bits YANG ID
> =E2=80=93      20 bits for module ID (assigned by IETF)
> =E2=80=93      10 bits for data node ID (generated deterministically)
> =20
> Based on this structure, we can reserve module ID zero for aliases.
> =20
> =20
> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
> =20
> =20
>=20
> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
> This approach require 4 bytes per CoMI server accessed.
> =20
> =20
> It is possible to map an entire module to the alias space and this is =
up to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
> =20
> If the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:
> POST /mg/0
> {
>  "source_uri" : "/mg/BAA"
> }
> =20
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
> =20
> Or, you can dynamically configure the mapping:
> POST /mg/0
> {
>   YANG_id : alias,
>   YANG_id : alias,
>   YANG_id : alias
> }
> =20
>=20
> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
> =20
> This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
> =20
> Best,
> Alexander
> =20
>=20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>

--Apple-Mail=_530BDE8C-497C-490C-8C9C-7BADBCDB9B8C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Michel,</div><div class=3D""><br =
class=3D""></div><div class=3D"">You=E2=80=99re right. As I mentioned in =
my previous mails, I=E2=80=99m pretty happy with the compression of IDs =
we=E2=80=99ve achieved until now, so aliases are not as a pressing =
issue.&nbsp;</div><div class=3D""><br class=3D""></div><div class=3D"">The=
 thing is, if they can be implemented at (almost) zero cost, then some =
of the use-cases become quite interesting.</div><div class=3D""><br =
class=3D""></div><div class=3D"">You actually provide a very good case =
with the select option. I=E2=80=99ve not thought if it will present some =
other difficulties, but I actually think it facilitates the use of =
aliases (and I mention this only because it will help me also understand =
the semantics of your proposal of the select option).</div><div =
class=3D""><br class=3D""></div><div class=3D"">If I take the example =
you provide:</div><div class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"WordSection1" style=3D"page: =
WordSection1;"><div class=3D"" style=3D"margin: 0in 0in 0.0001pt 0.5in; =
font-size: 12pt; font-family: 'Times New Roman', serif;"><span class=3D"" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" =
class=3D"" style=3D"color: purple;">example.com/mg?select</a>( =
[2049,2,3,4] )&nbsp;</span></div></div></blockquote><br =
class=3D""></div><div class=3D"">The parameters 2,3,4 are actually =
relative to the module ID of the first one. So, if I try to generalize =
this (please correct me if I=E2=80=99m wrong), I would imagine something =
like:</div><div class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1;"><div class=3D"" =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;"><span class=3D"" style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);">REQ: =
GET&nbsp;<a href=3D"http://example.com/mg?select" class=3D"" =
style=3D"color: purple;">example.com/mg?select</a>( [2049,2,3,4, =
4097,2,3,4] )&nbsp;</span></div></div></blockquote>To resolve to getting =
module ID=3D1, relative node IDs=3D1,2,3 and 4, and module ID=3D2 and =
relative node IDs =3D1,2,3 and 4.</div><div class=3D""><br =
class=3D""></div><div class=3D"">This means, that specifying a GET <a =
href=3D"http://example.com/mg?select" =
class=3D"">example.com/mg?select</a>(1) should resolve to module ID=3D0 =
and relative node ID=3D1. This requires absolutely no additional =
processing from the node.&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">So, this leaves us back to the initial =
idea of the aliases. All short node IDs are relative to a module ID (so =
that the long form ID can be interpreted). Module ID=3D0 is reserved, =
and can be used for aliasing if the device wishes to support =
it.&nbsp;</div><div class=3D""><br class=3D""></div><div class=3D"">Does =
this break some of the things along the way?&nbsp;</div><div =
class=3D""><br class=3D""></div><div class=3D"">Best,</div><div =
class=3D"">Alex</div><div class=3D""><br class=3D""></div><div =
class=3D"">&nbsp;</div><br class=3D""><div><blockquote type=3D"cite" =
class=3D""><div class=3D"">Le 12 juin 2015 =C3=A0 18:57, Michel =
Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit =
:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Alexander, hi Pascal<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">I want to emphases the =
following points<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The use of the select query parameter =
encoded in CBOR support of 63 modules with optimized message size =
instead of only 3 for the base64 URI.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">If the 6TiSCH module ID =
is allocated within these 63 IDs, there will be no message size =
optimization provided by the aliases mechanism.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">This make the =
introduction of aliases less urgent.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The message size of the select query =
parameter encoded in CBOR should be equal or smaller compared to the =
base64 URI.<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in =
0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">However, the select =
query parameter encoded in CBOR support a wider range of values without =
size penalty (16 bits instead of 12, 32 bits instead of 30)<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Furthermore, CoMI =
devices won=E2=80=99t have to support two type of encoding depending if =
IDs are part of the command vs. payload.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">For=
 example:<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in =
0in 0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Assuming module ID 2<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, =
2051)<o:p class=3D""></o:p></span></div><div style=3D"margin: 0in 0in =
0.0001pt 0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Assuming =E2=80=9C,=E2=80=
=9D separator to select multiple data nodes<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Base64 approach:<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">REQ: GET<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/gB" style=3D"color: purple; =
text-decoration: underline;" =
class=3D"">example.com/mg/gB</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; (3 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =
=E2=80=9CgB=E2=80=9D)<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">CBOR approach:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" =
class=3D"">example.com/mg?select</a>(2049)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; (4 bytes; one byte for the CoAP option, 3 for 2049 =
encoded using CBOR)<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Base64 approach:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/gB,C,D,E" style=3D"color: purple; =
text-decoration: underline;" =
class=3D"">example.com/mg/gB,C,D,E</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 bytes for =
=E2=80=9CgB,C,D,E=E2=80=9D)<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">CBOR approach:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" class=3D"">example.com/mg?select</a>( =
[2049,2,3,4] )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8 bytes; 1 byte for the =
CoAP option, 1 for the CBOR array, 3+1+1+1 bytes for the IDs)<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
class=3D""><table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" width=3D"717" style=3D"width: 537.75pt; =
border-collapse: collapse;"><tbody class=3D""><tr style=3D"height: =
49.05pt;" class=3D""><td width=3D"137" style=3D"width: 103.1pt; =
border-style: none solid none none; border-right-color: windowtext; =
border-right-width: 1pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><span =
id=3D"cid:image001.jpg@01D0A507.394EE410">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></span></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt 8.1pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.trilliantinc.com/" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span><span style=3D"font-size:=
 9pt; font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div></td></tr></tbody></table><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
class=3D""><div style=3D"border-style: solid none none; =
border-top-color: rgb(225, 225, 225); border-top-width: 1pt; padding: =
3pt 0in 0in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">From:</span></b><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>Alexander =
Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"Apple-converted-space">&nbsp;</span>11 =
juin 2015 17:06<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Pascal Thubert =
(pthubert)<br class=3D""><b class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Andy Bierman; Michel =
Veillette; <a href=3D"mailto:6tisch@ietf.org" =
class=3D"">6tisch@ietf.org</a>; <a href=3D"mailto:core@ietf.org" =
class=3D"">core@ietf.org</a><br class=3D""><b class=3D"">Subject:</b><span=
 class=3D"Apple-converted-space">&nbsp;</span>Re: [6tisch] Reserve space =
for aliases<o:p class=3D""></o:p></span></div></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Hi Pascal,<o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div class=3D""><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Le 10 juin 2015 =C3=A0 =
15:25, Pascal Thubert (pthubert) &lt;<a href=3D"mailto:pthubert@cisco.com"=
 style=3D"color: purple; text-decoration: underline;" =
class=3D"">pthubert@cisco.com</a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Dear all:</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">This looks like the =
problem of local namespaces,&nbsp; which is the reason why MPLS switches =
labels.</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">The=
 user may access a limited set of resources from a number of servers, =
and servers are read by many users.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">You cannot ensure that =
you have a single alias space that satisfies them all.</span><o:p =
class=3D""></o:p></div></div></div></blockquote><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Great analogy! And yes, sadly you cannot satisfy them =
all, at least not with all devices.<o:p class=3D""></o:p></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">So ,what if the user had its own set of =
aliases and the server also had its own set of aliases?</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">The aliases could be =
mapped in a table like a uSAP and a pSAP are mapped across layers. =
Broadly:</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">- =
First time a user requests a resource in a server, it comes with a tuple =
(userid, useralias, fullname)</span><o:p class=3D""></o:p></div></div><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">- The server responds with (serverid, =
serveralias, userid, user alias).</span><o:p =
class=3D""></o:p></div></div></div></blockquote><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Actually, I think that this could be worked out in =
CoMI also. Instead of fullname you could provide the YANG id (module ID =
+ data node ID) and do the mapping. User alias would be the special =
aliased YANG id. User ID, however, could be a little bit more tricky - =
how do we ensure that it is consistent? Use the IP address of the client =
could be doable, but we=E2=80=99ll have to include the UDP port just in =
case someone runs two clients on the same machine.<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">After that,&nbsp; if the server is a =
constrained device then the user talks to the server with (serverid, =
serveralias) and the user maintains a switching table for the resource =
it uses on various servers.</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">If the user is the constrained device and =
the server is not, the user could talk with (userid, useralias) and the =
server maintains a switching table.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">For large servers, the =
server may allocate aliases dynamically based on what it is being asked. =
We=E2=80=99d then need to talk about alias update or revocation, =
probably in terms of session and lifetime.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Does that look =
usable?</span><o:p class=3D""></o:p></div></div></div></blockquote><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">You are pointing out an interesting question. I would =
think (but maybe I=E2=80=99m mistaken), that the client should have the =
leading role in figuring out what=E2=80=99s happening. The idea is the =
following:<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">The client checks if the server supports aliasing, =
with the possible options:<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">S1) no aliasing<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">S2) static/server-defined aliasing<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">S3) dynamic/single alias mapping&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; S3.1) mapping already defined<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; S3.2) no mapping defined<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">S4) dynamic/per client alias mapping<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Then, the client can take action, =
depending on its own capabilities and the response of the server. E.g. a =
unconstrained client could obtain the alias mapping if it is static (or =
if there is a single alias mapping in place) and cache it locally. So, =
there will be the following correspondence :<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Given:<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">C1) constrained client<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">C2) unconstrained =
client<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">We have:<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">C1 + S1) no aliasing, =
nothing to do<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">C1 + S2) and C1 + S3.1) if the alias =
mapping is known, use it. otherwise, ignore<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">C1 + S3.2) and C1 + S4) define alias mapping<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">C2 + S1) no aliasing, =
nothing to do<o:p class=3D""></o:p></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">C2 + S2) and C2 + =
S3.1) if the alias mapping is known, use it. otherwise, learn it<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">C2 + S3.2) and C2 + S4) define alias =
mapping<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">I would say that the analogy you made with MPLS =
corresponds quite a lot to the C2+S4 case. Personally, I would be most =
interested into having one client configure one alias mapping to all =
servers in the network (e.g. the managing entity), which will profit =
most from saving several bytes on each message exchange. Everyone else =
could use the standard IDs, which we=E2=80=99ve already managed to =
shrink significantly.<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Indeed, with structured module ID + data node ID (20 =
bits + 10 bits), YANG URI compression, and long form/short form, we=E2=80=99=
ll have quite a lot of gain. Reserving module ID =3D 1 for aliases and =
maybe writing a short draft on how the aliasing is implemented seems =
feasible, where we can cover the exact mechanism of alias definition, =
and client/server interaction.<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Alexander<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Pascal</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"border-style: none none none =
solid; border-left-color: blue; border-left-width: 1.5pt; padding: 0in =
0in 0in 4pt;" class=3D""><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(181, 196, 223); border-top-width: =
1pt; padding: 3pt 0in 0in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span style=3D"font-size: =
10pt; font-family: Tahoma, sans-serif;" class=3D"">From:</span></b><span =
class=3D"apple-converted-space"><span style=3D"font-size: 10pt; =
font-family: Tahoma, sans-serif;" class=3D"">&nbsp;</span></span><span =
style=3D"font-size: 10pt; font-family: Tahoma, sans-serif;" =
class=3D"">6tisch [<a href=3D"mailto:6tisch-bounces@ietf.org" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">mailto:6tisch-bounces@ietf.org</a>]<span =
class=3D"apple-converted-space">&nbsp;</span><b class=3D"">On Behalf =
Of<span class=3D"apple-converted-space">&nbsp;</span></b>Andy Bierman<br =
class=3D""><b class=3D"">Sent:</b><span =
class=3D"apple-converted-space">&nbsp;</span>vendredi 5 juin 2015 =
20:55<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">6tisch@ietf.org</a>; Alexander Pelov;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">core@ietf.org</a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: [6tisch] Reserve space =
for aliases</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">On Fri, Jun 5, 2015 at 11:41 AM, Michel =
Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: purple;" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; wrote:<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Alexander</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">I have some concerns =
about allowing CoMI client(s) the control of the list of =
aliases.</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">This approach work fine for the first CoMI application (e.g. =
6TiSCH) but what do we do with the subsequent CoMI =
application?</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">One possible solution is that each CoMI =
client send a list of (alias, data node ID) to the CoMI server. In this =
case, the CoMI client might receive an error if one or multiple of these =
aliases are already reserved.</span><o:p class=3D""></o:p></div></div><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">A second possible =
solution is that each CoMI client send a list of (data node ID) and get =
a list of (alias, data node ID) from the CoMI server. In this case, CoMI =
clients will have to deal with a mix population of aliases.</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">The proposed solution =
need to scale to a multi-vendors, multiple applications =
environment.</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">With this is mind, do you have any alternative solutions to =
propose?</span><o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div></div><div=
 class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">Does =
this approach allow each client to have a different set of aliases,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">so the server has to maintain a =
configured mapping for each client?<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">This seems like a lot of overhead and =
NV-storage requirements<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">on =
the server.<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Changing the schema identifiers based on =
which client is<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">sending the request seems like a complicated design =
change<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">from RESTCONF, =
NETCONF, or SNMP, where there is only<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">1 schema tree which is not dependent on =
the client identity.<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Andy<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><blockquote =
style=3D"border-style: none none none solid; border-left-color: rgb(204, =
204, 204); border-left-width: 1pt; padding: 0in 0in 0in 6pt; margin: 5pt =
0in 5pt 4.8pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" width=3D"717" style=3D"width: 537.75pt; =
border-collapse: collapse;"><tbody class=3D""><tr style=3D"height: =
49.05pt;" class=3D""><td width=3D"137" style=3D"width: 103.1pt; =
border-style: none solid none none; border-right-color: windowtext; =
border-right-width: 1pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></div></td></tr></tbody></table><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(225, 225, 225); border-top-width: =
1pt; padding: 3pt 0in 0in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D"">From:</span></b><span =
class=3D"apple-converted-space"><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Alexander Pelov [mailto:<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">alexander.pelov@telecom-bretagne.eu</span></a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 =
juin 2015 12:03<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
purple;" class=3D"">6tisch@ietf.org</span></a>;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" target=3D"_blank" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Hi Michel,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Le 5 juin 2015 =C3=A0 17:17, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; a =C3=A9crit =
:<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Hi=
 Alexander</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">In=
 your presentation at 6TiSCH, you propose the following data node ID =
structure.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
style=3D"border-collapse: collapse;"><tbody class=3D""><tr class=3D""><td =
width=3D"623" valign=3D"top" style=3D"width: 467.5pt; border: 1pt solid =
windowtext; padding: 0in 5.4pt;" class=3D""><div style=3D"margin-left: =
0.5in;" class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=A2</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">32=
 bits YANG ID</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 1in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Arial, sans-serif;" class=3D"">=E2=80=93</span><span =
style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">20=
 bits for module ID (assigned by IETF)</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 1in;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">10=
 bits for data node ID (generated deterministically)</span><o:p =
class=3D""></o:p></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Based on this structure, we can reserve&nbsp;module ID zero =
for aliases.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">I was just summarizing what was discussed =
on the discussion in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=
=99s for purposes to be consistent with the YANG hash and I don=E2=80=99t =
mind keeping it 30 bits.<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;">&nbsp;<o:p =
class=3D""></o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">If=
 we want to minimize both the network an node resources require by this =
alias mechanism, we can map an entire module to this space.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">This can be implemented by =
a single integer resource (e.g. leaf alliassedModule { type uint32 } =
)</span><o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">This approach require 4 bytes per CoMI server =
accessed.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">It is possible to map an entire module to =
the alias space and this is up to the operator. However, if you load two =
modules which redefine the same alias you will loose the benefit from =
it. Maybe it would be interesting to be able to specify that you want =
the aliases from THIS specific module to be used.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">If the /mg/0 alias is reserved for =
managing the aliases, this could be simply saying:<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">POST /mg/0<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">{<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;"source_uri" : "/mg/BAA"<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">}<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">where /mg/BAA is the YANG id of the =
module (20 bits module ID + 10 bits set to 0). This way, the server will =
know: OK, get the alias mapping from the YANG scheme of module with ID =3D=
 B (as defined by the IETF).&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Or, you can dynamically configure the =
mapping:<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">POST =
/mg/0<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">{<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; YANG_id : alias,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; YANG_id : alias,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp; YANG_id : alias<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">}<o:p =
class=3D""></o:p></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin: 0in 0in 12pt; font-size: 12pt; font-family: 'Times New =
Roman', serif;">&nbsp;<o:p class=3D""></o:p></p><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">If we want a more complex but more flexible =
aliases mechanism, your proposed map of (allias, YANG ID) seem the =
solution.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">However, we have to consider that this structure can be as =
large as&nbsp;<u class=3D"">1250 bytes per CoMI server =
accessed</u>&nbsp;if limited to 256 aliases.</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">This is assuming you need a separate =
mapping for each server. I would suppose that in a network you=E2=80=99ll =
have a single alias mapping (maybe two?) - after all, you=E2=80=99re =
trying to optimize the management of your devices (servers). So, =
typically you=E2=80=99d map all 6tisch devices with aliases 1-10 =
(channel, slot, etc.) and use that on them, and on all other you=E2=80=99d=
 access the full ID.&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Best,<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Alexander<o:p class=3D""></o:p></div></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;">&nbsp;<o:p =
class=3D""></o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><a=
 href=3D"http://www.trilliantinc.com/" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"font-size: =
9pt; font-family: Arial, sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span></div></div></div></td></=
tr></tbody></table></div></blockquote></div></div></div></blockquote></div=
></div></div></div></div></blockquote></div></div></div></blockquote></div=
><br class=3D""></body></html>=

--Apple-Mail=_530BDE8C-497C-490C-8C9C-7BADBCDB9B8C--


From nobody Fri Jun 12 14:10:50 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AE6E61B2AD6; Fri, 12 Jun 2015 14:10:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yRnGamky2dHZ; Fri, 12 Jun 2015 14:10:42 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0776.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::776]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5C8DA1B2AD8; Fri, 12 Jun 2015 14:10:41 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB791.namprd06.prod.outlook.com (10.141.247.143) with Microsoft SMTP Server (TLS) id 15.1.184.17; Fri, 12 Jun 2015 21:10:13 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0184.014; Fri, 12 Jun 2015 21:10:13 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAADv9XEAAEJffwAAJ0YMwAAHgK2AAAKoWFA=
Date: Fri, 12 Jun 2015 21:10:13 +0000
Message-ID: <CO2PR0601MB792C118ECA44AD8FD152307FEBB0@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu>
In-Reply-To: <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: telecom-bretagne.eu; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB791;
x-microsoft-antispam-prvs: <CO2PR0601MB791DA3AE2F83A6A75660CD4FEBB0@CO2PR0601MB791.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB791; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB791; 
x-forefront-prvs: 060503E79B
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(51444003)(38414003)(377454003)(24454002)(50986999)(92566002)(77096005)(2950100001)(74316001)(66066001)(19300405004)(19580405001)(54356999)(5003600100002)(99936001)(76176999)(19617315012)(19627595001)(93886004)(2656002)(102836002)(5001960100002)(15975445007)(189998001)(5001920100001)(77156002)(62966003)(16236675004)(19625215002)(97736004)(40100003)(19580395003)(68736005)(86362001)(33656002)(110136002)(561944003)(18206015028)(5002640100001)(99286002)(46102003)(15395725005)(122556002)(2900100001)(76576001)(17760045003)(87936001)(7099028)(403724002)(559001)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB791; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB792C118ECA44AD8FD152307FEBB0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2015 21:10:13.4160 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB791
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/OphM3pInhuPkEX6Vg2gUtusSQOQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 21:10:47 -0000

--_004_CO2PR0601MB792C118ECA44AD8FD152307FEBB0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB792C118ECA44AD8FD152307FEBB0CO2PR0601MB792na_"

--_000_CO2PR0601MB792C118ECA44AD8FD152307FEBB0CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SSBBbGV4YW5kZXINCg0KSSBkb27igJl0IHNlZSBhbnkgaXNzdWVzIHdpdGggeW91ciBwcm9wb3Nh
bCBvZiB1c2luZyBtb2R1bGUgSUQgMCBhcyBhbGlhc2VzLg0KVGhlIG9ubHkgY29uc3RyYWluIGlz
IHRoYXQgYWxpYXNlcyBuZWVkIHRvIGJlIGF0IHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0IGZvciBh
IEdFVCBhbmQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBwYXlsb2FkIGZvciBhIFBVVC4NCg0KVGhlIGxh
c3QgdGhpbmdzIHdlIG5lZWQgdG8gc29ydCBvdXQsIGlzIHRoZSBpbnN0YW5jZSBzZWxlY3RvciAo
a2V5cykgaW4gdGhlIGNvbnRleHQgb2YgYSBzZWxlY3QgcXVlcnkgcGFyYW1ldGVyIGNvbnRhaW5p
bmcgbXVsdGlwbGUgZGF0YSBub2Rlcy4NCg0KTGV0IGFzc3VtZSB0aGUgZm9sbG93aW5nOg0KDQrC
tyAgICAgICAgIEEgQ29NSSBjbGllbnQgbmVlZCB0byBzZWxlY3QgMyBkYXRhIG5vZGVzIChEYXRh
IG5vZGUgSUQgMjA0OSwgMiBhbmQgMykNCg0KwrcgICAgICAgICBGb3IgdGhlIGZpcnN0IGRhdGEg
bm9kZSwgdGhyZWUgdmFsdWVzIG5lZWQgdG8gYmUgcHJvdmlkZWQgYXMga2V5cyAoZS5nLiAxLCAi
aXB2NCIsICIxMC4wLjAuNTEgIiksIHNlZSBkcmFmdC12YW5kZXJzdG9rLWNvcmUtY29taS0wNiBw
YWdlIDIyLg0KDQrCtyAgICAgICAgIEZvciB0aGUgdGhpcmQgZGF0YSBub2RlLCBvbmUgaW50ZWdl
ciB2YWx1ZSBuZWVkIHRvIGJlIHByb3ZpZGVkIGFzIGtleXMgKGUuZy4gMjIpLg0KDQpJZiB3ZSBp
bmNsdWRlIHRoZXNlIGtleXMgaW4gdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBp
biBDQk9SLCB0aGUgcmVzdWx0IG1pZ2h0IGxvb2sgYXMgZm9sbG93Og0KDQpSRVE6IEdFVCBleGFt
cGxlLmNvbS9tZz9zZWxlY3QoIFtbMjA0OTEsImlwdjQiLCIxMC4wLjAuNTEiLDJdLCAyLCBbMywy
Ml1dICkNCg0KSW4gdGhlIGN1cnJlbnQgZHJhZnQsIHRoZSBDb01JIHNlcnZlciBuZWVkIHRvIHN1
cHBvcnQgdHdvIGVuY29kaW5nIGZvciBlYWNoIHNlbGVjdG9yLCBDQk9SIGVuY29kaW5nIGluIHRo
ZSBwYXlsb2FkIGFuZCB0ZXh0IGluIHRoZSBrZXlzIHF1ZXJ5IHBhcmFtZXRlci4NCldpdGggdGhp
cyBwcm9wb3NhbCwgYm90aCB1c2UgY2FzZXMgYXJlIGVuY29kZWQgdXNpbmcgQ0JPUi4NCg0KV2hh
dCBkbyB5b3UgdGhpbmdzPw0KDQpbY2lkOmltYWdlMDAxLmpwZ0AwMUM4NjhEOC5CRjBCQjdFMF0N
Cg0KTWljaGVsIFZlaWxsZXR0ZQ0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcg0KVHJpbGxp
YW50IEluYy4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3DQptaWNoZWwudmVpbGxldHRlQHRy
aWxsaWFudGluYy5jb208bWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbT4N
Cnd3dy50cmlsbGlhbnRpbmMuY29tPGh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8+DQoNCg0K
DQpGcm9tOiBBbGV4YW5kZXIgUGVsb3YgW21haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1i
cmV0YWduZS5ldV0NClNlbnQ6IDEyIGp1aW4gMjAxNSAxNToyNg0KVG86IE1pY2hlbCBWZWlsbGV0
dGUNCkNjOiBQYXNjYWwgVGh1YmVydCAocHRodWJlcnQpOyBBbmR5IEJpZXJtYW47IDZ0aXNjaEBp
ZXRmLm9yZzsgY29yZUBpZXRmLm9yZw0KU3ViamVjdDogUmU6IFs2dGlzY2hdIFJlc2VydmUgc3Bh
Y2UgZm9yIGFsaWFzZXMNCg0KSGkgTWljaGVsLA0KDQpZb3XigJlyZSByaWdodC4gQXMgSSBtZW50
aW9uZWQgaW4gbXkgcHJldmlvdXMgbWFpbHMsIEnigJltIHByZXR0eSBoYXBweSB3aXRoIHRoZSBj
b21wcmVzc2lvbiBvZiBJRHMgd2XigJl2ZSBhY2hpZXZlZCB1bnRpbCBub3csIHNvIGFsaWFzZXMg
YXJlIG5vdCBhcyBhIHByZXNzaW5nIGlzc3VlLg0KDQpUaGUgdGhpbmcgaXMsIGlmIHRoZXkgY2Fu
IGJlIGltcGxlbWVudGVkIGF0IChhbG1vc3QpIHplcm8gY29zdCwgdGhlbiBzb21lIG9mIHRoZSB1
c2UtY2FzZXMgYmVjb21lIHF1aXRlIGludGVyZXN0aW5nLg0KDQpZb3UgYWN0dWFsbHkgcHJvdmlk
ZSBhIHZlcnkgZ29vZCBjYXNlIHdpdGggdGhlIHNlbGVjdCBvcHRpb24uIEnigJl2ZSBub3QgdGhv
dWdodCBpZiBpdCB3aWxsIHByZXNlbnQgc29tZSBvdGhlciBkaWZmaWN1bHRpZXMsIGJ1dCBJIGFj
dHVhbGx5IHRoaW5rIGl0IGZhY2lsaXRhdGVzIHRoZSB1c2Ugb2YgYWxpYXNlcyAoYW5kIEkgbWVu
dGlvbiB0aGlzIG9ubHkgYmVjYXVzZSBpdCB3aWxsIGhlbHAgbWUgYWxzbyB1bmRlcnN0YW5kIHRo
ZSBzZW1hbnRpY3Mgb2YgeW91ciBwcm9wb3NhbCBvZiB0aGUgc2VsZWN0IG9wdGlvbikuDQoNCklm
IEkgdGFrZSB0aGUgZXhhbXBsZSB5b3UgcHJvdmlkZToNClJFUTogR0VUIGV4YW1wbGUuY29tL21n
P3NlbGVjdDxodHRwOi8vZXhhbXBsZS5jb20vbWc/c2VsZWN0PiggWzIwNDksMiwzLDRdICkNCg0K
VGhlIHBhcmFtZXRlcnMgMiwzLDQgYXJlIGFjdHVhbGx5IHJlbGF0aXZlIHRvIHRoZSBtb2R1bGUg
SUQgb2YgdGhlIGZpcnN0IG9uZS4gU28sIGlmIEkgdHJ5IHRvIGdlbmVyYWxpemUgdGhpcyAocGxl
YXNlIGNvcnJlY3QgbWUgaWYgSeKAmW0gd3JvbmcpLCBJIHdvdWxkIGltYWdpbmUgc29tZXRoaW5n
IGxpa2U6DQpSRVE6IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q8aHR0cDovL2V4YW1wbGUuY29t
L21nP3NlbGVjdD4oIFsyMDQ5LDIsMyw0LCA0MDk3LDIsMyw0XSApDQpUbyByZXNvbHZlIHRvIGdl
dHRpbmcgbW9kdWxlIElEPTEsIHJlbGF0aXZlIG5vZGUgSURzPTEsMiwzIGFuZCA0LCBhbmQgbW9k
dWxlIElEPTIgYW5kIHJlbGF0aXZlIG5vZGUgSURzID0xLDIsMyBhbmQgNC4NCg0KVGhpcyBtZWFu
cywgdGhhdCBzcGVjaWZ5aW5nIGEgR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdDxodHRwOi8vZXhh
bXBsZS5jb20vbWc/c2VsZWN0PigxKSBzaG91bGQgcmVzb2x2ZSB0byBtb2R1bGUgSUQ9MCBhbmQg
cmVsYXRpdmUgbm9kZSBJRD0xLiBUaGlzIHJlcXVpcmVzIGFic29sdXRlbHkgbm8gYWRkaXRpb25h
bCBwcm9jZXNzaW5nIGZyb20gdGhlIG5vZGUuDQoNClNvLCB0aGlzIGxlYXZlcyB1cyBiYWNrIHRv
IHRoZSBpbml0aWFsIGlkZWEgb2YgdGhlIGFsaWFzZXMuIEFsbCBzaG9ydCBub2RlIElEcyBhcmUg
cmVsYXRpdmUgdG8gYSBtb2R1bGUgSUQgKHNvIHRoYXQgdGhlIGxvbmcgZm9ybSBJRCBjYW4gYmUg
aW50ZXJwcmV0ZWQpLiBNb2R1bGUgSUQ9MCBpcyByZXNlcnZlZCwgYW5kIGNhbiBiZSB1c2VkIGZv
ciBhbGlhc2luZyBpZiB0aGUgZGV2aWNlIHdpc2hlcyB0byBzdXBwb3J0IGl0Lg0KDQpEb2VzIHRo
aXMgYnJlYWsgc29tZSBvZiB0aGUgdGhpbmdzIGFsb25nIHRoZSB3YXk/DQoNCkJlc3QsDQpBbGV4
DQoNCg0KDQpMZSAxMiBqdWluIDIwMTUgw6AgMTg6NTcsIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hl
bC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmls
bGlhbnRpbmMuY29tPj4gYSDDqWNyaXQgOg0KDQpIaSBBbGV4YW5kZXIsIGhpIFBhc2NhbA0KDQpJ
IHdhbnQgdG8gZW1waGFzZXMgdGhlIGZvbGxvd2luZyBwb2ludHMNCg0K4oCiICAgICAgICAgVGhl
IHVzZSBvZiB0aGUgc2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBlbmNvZGVkIGluIENCT1Igc3VwcG9y
dCBvZiA2MyBtb2R1bGVzIHdpdGggb3B0aW1pemVkIG1lc3NhZ2Ugc2l6ZSBpbnN0ZWFkIG9mIG9u
bHkgMyBmb3IgdGhlIGJhc2U2NCBVUkkuDQpJZiB0aGUgNlRpU0NIIG1vZHVsZSBJRCBpcyBhbGxv
Y2F0ZWQgd2l0aGluIHRoZXNlIDYzIElEcywgdGhlcmUgd2lsbCBiZSBubyBtZXNzYWdlIHNpemUg
b3B0aW1pemF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBhbGlhc2VzIG1lY2hhbmlzbS4NClRoaXMgbWFr
ZSB0aGUgaW50cm9kdWN0aW9uIG9mIGFsaWFzZXMgbGVzcyB1cmdlbnQuDQoNCuKAoiAgICAgICAg
IFRoZSBtZXNzYWdlIHNpemUgb2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBp
biBDQk9SIHNob3VsZCBiZSBlcXVhbCBvciBzbWFsbGVyIGNvbXBhcmVkIHRvIHRoZSBiYXNlNjQg
VVJJLg0KSG93ZXZlciwgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBpbiBDQk9S
IHN1cHBvcnQgYSB3aWRlciByYW5nZSBvZiB2YWx1ZXMgd2l0aG91dCBzaXplIHBlbmFsdHkgKDE2
IGJpdHMgaW5zdGVhZCBvZiAxMiwgMzIgYml0cyBpbnN0ZWFkIG9mIDMwKQ0KRnVydGhlcm1vcmUs
IENvTUkgZGV2aWNlcyB3b27igJl0IGhhdmUgdG8gc3VwcG9ydCB0d28gdHlwZSBvZiBlbmNvZGlu
ZyBkZXBlbmRpbmcgaWYgSURzIGFyZSBwYXJ0IG9mIHRoZSBjb21tYW5kIHZzLiBwYXlsb2FkLg0K
DQpGb3IgZXhhbXBsZToNCg0KQXNzdW1pbmcgbW9kdWxlIElEIDINCkFzc3VtaW5nIGRhdGEgbm9k
ZSBJRCAxLCAyLCAzLCA0IChsb25nIGZvcm0gMjA0OSwgMjA1MCwgMjA1MSkNCkFzc3VtaW5nIOKA
nCzigJ0gc2VwYXJhdG9yIHRvIHNlbGVjdCBtdWx0aXBsZSBkYXRhIG5vZGVzDQoNCkJhc2U2NCBh
cHByb2FjaDoNClJFUTogR0VUIGV4YW1wbGUuY29tL21nL2dCPGh0dHA6Ly9leGFtcGxlLmNvbS9t
Zy9nQj4gICAgICAgICAoMyBieXRlczsgMSBieXRlIGZvciB0aGUg4oCcL+KAnSwgMiBieXRlcyBm
b3Ig4oCcZ0LigJ0pDQoNCkNCT1IgYXBwcm9hY2g6DQpSRVE6IEdFVCBleGFtcGxlLmNvbS9tZz9z
ZWxlY3Q8aHR0cDovL2V4YW1wbGUuY29tL21nP3NlbGVjdD4oMjA0OSkgICAgICAgICAoNCBieXRl
czsgb25lIGJ5dGUgZm9yIHRoZSBDb0FQIG9wdGlvbiwgMyBmb3IgMjA0OSBlbmNvZGVkIHVzaW5n
IENCT1IpDQoNCkJhc2U2NCBhcHByb2FjaDoNClJFUTogR0VUIGV4YW1wbGUuY29tL21nL2dCLEMs
RCxFPGh0dHA6Ly9leGFtcGxlLmNvbS9tZy9nQixDLEQsRT4gICAgICAgICAoOSBieXRlczsgMSBi
eXRlIGZvciB0aGUg4oCcL+KAnSwgOCBieXRlcyBmb3Ig4oCcZ0IsQyxELEXigJ0pDQoNCkNCT1Ig
YXBwcm9hY2g6DQpSRVE6IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3Q8aHR0cDovL2V4YW1wbGUu
Y29tL21nP3NlbGVjdD4oIFsyMDQ5LDIsMyw0XSApICAgICAgKDggYnl0ZXM7IDEgYnl0ZSBmb3Ig
dGhlIENvQVAgb3B0aW9uLCAxIGZvciB0aGUgQ0JPUiBhcnJheSwgMysxKzErMSBieXRlcyBmb3Ig
dGhlIElEcykNCg0KDQo8aW1hZ2UwMDEuanBnPg0KDQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0ZW0g
QXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1NTYg
ZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86bWljaGVs
LnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0Kd3d3LnRyaWxsaWFudGluYy5jb208aHR0cDov
L3d3dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoNCkZyb206IEFsZXhhbmRlciBQZWxvdiBbbWFp
bHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1XQ0KU2VudDogMTEganVpbiAy
MDE1IDE3OjA2DQpUbzogUGFzY2FsIFRodWJlcnQgKHB0aHViZXJ0KQ0KQ2M6IEFuZHkgQmllcm1h
bjsgTWljaGVsIFZlaWxsZXR0ZTsgNnRpc2NoQGlldGYub3JnPG1haWx0bzo2dGlzY2hAaWV0Zi5v
cmc+OyBjb3JlQGlldGYub3JnPG1haWx0bzpjb3JlQGlldGYub3JnPg0KU3ViamVjdDogUmU6IFs2
dGlzY2hdIFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXMNCg0KSGkgUGFzY2FsLA0KDQpMZSAxMCBq
dWluIDIwMTUgw6AgMTU6MjUsIFBhc2NhbCBUaHViZXJ0IChwdGh1YmVydCkgPHB0aHViZXJ0QGNp
c2NvLmNvbTxtYWlsdG86cHRodWJlcnRAY2lzY28uY29tPj4gYSDDqWNyaXQgOg0KDQpEZWFyIGFs
bDoNCg0KVGhpcyBsb29rcyBsaWtlIHRoZSBwcm9ibGVtIG9mIGxvY2FsIG5hbWVzcGFjZXMsICB3
aGljaCBpcyB0aGUgcmVhc29uIHdoeSBNUExTIHN3aXRjaGVzIGxhYmVscy4NClRoZSB1c2VyIG1h
eSBhY2Nlc3MgYSBsaW1pdGVkIHNldCBvZiByZXNvdXJjZXMgZnJvbSBhIG51bWJlciBvZiBzZXJ2
ZXJzLCBhbmQgc2VydmVycyBhcmUgcmVhZCBieSBtYW55IHVzZXJzLg0KWW91IGNhbm5vdCBlbnN1
cmUgdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZSBhbGlhcyBzcGFjZSB0aGF0IHNhdGlzZmllcyB0aGVt
IGFsbC4NCg0KR3JlYXQgYW5hbG9neSEgQW5kIHllcywgc2FkbHkgeW91IGNhbm5vdCBzYXRpc2Z5
IHRoZW0gYWxsLCBhdCBsZWFzdCBub3Qgd2l0aCBhbGwgZGV2aWNlcy4NCg0KDQoNCg0KU28gLHdo
YXQgaWYgdGhlIHVzZXIgaGFkIGl0cyBvd24gc2V0IG9mIGFsaWFzZXMgYW5kIHRoZSBzZXJ2ZXIg
YWxzbyBoYWQgaXRzIG93biBzZXQgb2YgYWxpYXNlcz8NCg0KVGhlIGFsaWFzZXMgY291bGQgYmUg
bWFwcGVkIGluIGEgdGFibGUgbGlrZSBhIHVTQVAgYW5kIGEgcFNBUCBhcmUgbWFwcGVkIGFjcm9z
cyBsYXllcnMuIEJyb2FkbHk6DQotIEZpcnN0IHRpbWUgYSB1c2VyIHJlcXVlc3RzIGEgcmVzb3Vy
Y2UgaW4gYSBzZXJ2ZXIsIGl0IGNvbWVzIHdpdGggYSB0dXBsZSAodXNlcmlkLCB1c2VyYWxpYXMs
IGZ1bGxuYW1lKQ0KLSBUaGUgc2VydmVyIHJlc3BvbmRzIHdpdGggKHNlcnZlcmlkLCBzZXJ2ZXJh
bGlhcywgdXNlcmlkLCB1c2VyIGFsaWFzKS4NCg0KQWN0dWFsbHksIEkgdGhpbmsgdGhhdCB0aGlz
IGNvdWxkIGJlIHdvcmtlZCBvdXQgaW4gQ29NSSBhbHNvLiBJbnN0ZWFkIG9mIGZ1bGxuYW1lIHlv
dSBjb3VsZCBwcm92aWRlIHRoZSBZQU5HIGlkIChtb2R1bGUgSUQgKyBkYXRhIG5vZGUgSUQpIGFu
ZCBkbyB0aGUgbWFwcGluZy4gVXNlciBhbGlhcyB3b3VsZCBiZSB0aGUgc3BlY2lhbCBhbGlhc2Vk
IFlBTkcgaWQuIFVzZXIgSUQsIGhvd2V2ZXIsIGNvdWxkIGJlIGEgbGl0dGxlIGJpdCBtb3JlIHRy
aWNreSAtIGhvdyBkbyB3ZSBlbnN1cmUgdGhhdCBpdCBpcyBjb25zaXN0ZW50PyBVc2UgdGhlIElQ
IGFkZHJlc3Mgb2YgdGhlIGNsaWVudCBjb3VsZCBiZSBkb2FibGUsIGJ1dCB3ZeKAmWxsIGhhdmUg
dG8gaW5jbHVkZSB0aGUgVURQIHBvcnQganVzdCBpbiBjYXNlIHNvbWVvbmUgcnVucyB0d28gY2xp
ZW50cyBvbiB0aGUgc2FtZSBtYWNoaW5lLg0KDQoNCg0KDQoNCkFmdGVyIHRoYXQsICBpZiB0aGUg
c2VydmVyIGlzIGEgY29uc3RyYWluZWQgZGV2aWNlIHRoZW4gdGhlIHVzZXIgdGFsa3MgdG8gdGhl
IHNlcnZlciB3aXRoIChzZXJ2ZXJpZCwgc2VydmVyYWxpYXMpIGFuZCB0aGUgdXNlciBtYWludGFp
bnMgYSBzd2l0Y2hpbmcgdGFibGUgZm9yIHRoZSByZXNvdXJjZSBpdCB1c2VzIG9uIHZhcmlvdXMg
c2VydmVycy4NCklmIHRoZSB1c2VyIGlzIHRoZSBjb25zdHJhaW5lZCBkZXZpY2UgYW5kIHRoZSBz
ZXJ2ZXIgaXMgbm90LCB0aGUgdXNlciBjb3VsZCB0YWxrIHdpdGggKHVzZXJpZCwgdXNlcmFsaWFz
KSBhbmQgdGhlIHNlcnZlciBtYWludGFpbnMgYSBzd2l0Y2hpbmcgdGFibGUuDQoNCkZvciBsYXJn
ZSBzZXJ2ZXJzLCB0aGUgc2VydmVyIG1heSBhbGxvY2F0ZSBhbGlhc2VzIGR5bmFtaWNhbGx5IGJh
c2VkIG9uIHdoYXQgaXQgaXMgYmVpbmcgYXNrZWQuIFdl4oCZZCB0aGVuIG5lZWQgdG8gdGFsayBh
Ym91dCBhbGlhcyB1cGRhdGUgb3IgcmV2b2NhdGlvbiwgcHJvYmFibHkgaW4gdGVybXMgb2Ygc2Vz
c2lvbiBhbmQgbGlmZXRpbWUuDQoNCkRvZXMgdGhhdCBsb29rIHVzYWJsZT8NCg0KWW91IGFyZSBw
b2ludGluZyBvdXQgYW4gaW50ZXJlc3RpbmcgcXVlc3Rpb24uIEkgd291bGQgdGhpbmsgKGJ1dCBt
YXliZSBJ4oCZbSBtaXN0YWtlbiksIHRoYXQgdGhlIGNsaWVudCBzaG91bGQgaGF2ZSB0aGUgbGVh
ZGluZyByb2xlIGluIGZpZ3VyaW5nIG91dCB3aGF04oCZcyBoYXBwZW5pbmcuIFRoZSBpZGVhIGlz
IHRoZSBmb2xsb3dpbmc6DQoNClRoZSBjbGllbnQgY2hlY2tzIGlmIHRoZSBzZXJ2ZXIgc3VwcG9y
dHMgYWxpYXNpbmcsIHdpdGggdGhlIHBvc3NpYmxlIG9wdGlvbnM6DQpTMSkgbm8gYWxpYXNpbmcN
ClMyKSBzdGF0aWMvc2VydmVyLWRlZmluZWQgYWxpYXNpbmcNClMzKSBkeW5hbWljL3NpbmdsZSBh
bGlhcyBtYXBwaW5nDQogIFMzLjEpIG1hcHBpbmcgYWxyZWFkeSBkZWZpbmVkDQogIFMzLjIpIG5v
IG1hcHBpbmcgZGVmaW5lZA0KUzQpIGR5bmFtaWMvcGVyIGNsaWVudCBhbGlhcyBtYXBwaW5nDQoN
ClRoZW4sIHRoZSBjbGllbnQgY2FuIHRha2UgYWN0aW9uLCBkZXBlbmRpbmcgb24gaXRzIG93biBj
YXBhYmlsaXRpZXMgYW5kIHRoZSByZXNwb25zZSBvZiB0aGUgc2VydmVyLiBFLmcuIGEgdW5jb25z
dHJhaW5lZCBjbGllbnQgY291bGQgb2J0YWluIHRoZSBhbGlhcyBtYXBwaW5nIGlmIGl0IGlzIHN0
YXRpYyAob3IgaWYgdGhlcmUgaXMgYSBzaW5nbGUgYWxpYXMgbWFwcGluZyBpbiBwbGFjZSkgYW5k
IGNhY2hlIGl0IGxvY2FsbHkuIFNvLCB0aGVyZSB3aWxsIGJlIHRoZSBmb2xsb3dpbmcgY29ycmVz
cG9uZGVuY2UgOg0KDQpHaXZlbjoNCkMxKSBjb25zdHJhaW5lZCBjbGllbnQNCkMyKSB1bmNvbnN0
cmFpbmVkIGNsaWVudA0KDQpXZSBoYXZlOg0KQzEgKyBTMSkgbm8gYWxpYXNpbmcsIG5vdGhpbmcg
dG8gZG8NCkMxICsgUzIpIGFuZCBDMSArIFMzLjEpIGlmIHRoZSBhbGlhcyBtYXBwaW5nIGlzIGtu
b3duLCB1c2UgaXQuIG90aGVyd2lzZSwgaWdub3JlDQpDMSArIFMzLjIpIGFuZCBDMSArIFM0KSBk
ZWZpbmUgYWxpYXMgbWFwcGluZw0KDQpDMiArIFMxKSBubyBhbGlhc2luZywgbm90aGluZyB0byBk
bw0KQzIgKyBTMikgYW5kIEMyICsgUzMuMSkgaWYgdGhlIGFsaWFzIG1hcHBpbmcgaXMga25vd24s
IHVzZSBpdC4gb3RoZXJ3aXNlLCBsZWFybiBpdA0KQzIgKyBTMy4yKSBhbmQgQzIgKyBTNCkgZGVm
aW5lIGFsaWFzIG1hcHBpbmcNCg0KSSB3b3VsZCBzYXkgdGhhdCB0aGUgYW5hbG9neSB5b3UgbWFk
ZSB3aXRoIE1QTFMgY29ycmVzcG9uZHMgcXVpdGUgYSBsb3QgdG8gdGhlIEMyK1M0IGNhc2UuIFBl
cnNvbmFsbHksIEkgd291bGQgYmUgbW9zdCBpbnRlcmVzdGVkIGludG8gaGF2aW5nIG9uZSBjbGll
bnQgY29uZmlndXJlIG9uZSBhbGlhcyBtYXBwaW5nIHRvIGFsbCBzZXJ2ZXJzIGluIHRoZSBuZXR3
b3JrIChlLmcuIHRoZSBtYW5hZ2luZyBlbnRpdHkpLCB3aGljaCB3aWxsIHByb2ZpdCBtb3N0IGZy
b20gc2F2aW5nIHNldmVyYWwgYnl0ZXMgb24gZWFjaCBtZXNzYWdlIGV4Y2hhbmdlLiBFdmVyeW9u
ZSBlbHNlIGNvdWxkIHVzZSB0aGUgc3RhbmRhcmQgSURzLCB3aGljaCB3ZeKAmXZlIGFscmVhZHkg
bWFuYWdlZCB0byBzaHJpbmsgc2lnbmlmaWNhbnRseS4NCg0KSW5kZWVkLCB3aXRoIHN0cnVjdHVy
ZWQgbW9kdWxlIElEICsgZGF0YSBub2RlIElEICgyMCBiaXRzICsgMTAgYml0cyksIFlBTkcgVVJJ
IGNvbXByZXNzaW9uLCBhbmQgbG9uZyBmb3JtL3Nob3J0IGZvcm0sIHdl4oCZbGwgaGF2ZSBxdWl0
ZSBhIGxvdCBvZiBnYWluLiBSZXNlcnZpbmcgbW9kdWxlIElEID0gMSBmb3IgYWxpYXNlcyBhbmQg
bWF5YmUgd3JpdGluZyBhIHNob3J0IGRyYWZ0IG9uIGhvdyB0aGUgYWxpYXNpbmcgaXMgaW1wbGVt
ZW50ZWQgc2VlbXMgZmVhc2libGUsIHdoZXJlIHdlIGNhbiBjb3ZlciB0aGUgZXhhY3QgbWVjaGFu
aXNtIG9mIGFsaWFzIGRlZmluaXRpb24sIGFuZCBjbGllbnQvc2VydmVyIGludGVyYWN0aW9uLg0K
DQpBbGV4YW5kZXINCg0KDQpQYXNjYWwNCg0KRnJvbTogNnRpc2NoIFttYWlsdG86NnRpc2NoLWJv
dW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBBbmR5IEJpZXJtYW4NClNlbnQ6IHZlbmRyZWRp
IDUganVpbiAyMDE1IDIwOjU1DQpUbzogTWljaGVsIFZlaWxsZXR0ZQ0KQ2M6IDZ0aXNjaEBpZXRm
Lm9yZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgQWxleGFuZGVyIFBlbG92OyBjb3JlQGlldGYu
b3JnPG1haWx0bzpjb3JlQGlldGYub3JnPg0KU3ViamVjdDogUmU6IFs2dGlzY2hdIFJlc2VydmUg
c3BhY2UgZm9yIGFsaWFzZXMNCg0KDQoNCk9uIEZyaSwgSnVuIDUsIDIwMTUgYXQgMTE6NDEgQU0s
IE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWls
dG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPj4gd3JvdGU6DQpIaSBBbGV4YW5k
ZXINCg0KSSBoYXZlIHNvbWUgY29uY2VybnMgYWJvdXQgYWxsb3dpbmcgQ29NSSBjbGllbnQocykg
dGhlIGNvbnRyb2wgb2YgdGhlIGxpc3Qgb2YgYWxpYXNlcy4NClRoaXMgYXBwcm9hY2ggd29yayBm
aW5lIGZvciB0aGUgZmlyc3QgQ29NSSBhcHBsaWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1dCB3aGF0
IGRvIHdlIGRvIHdpdGggdGhlIHN1YnNlcXVlbnQgQ29NSSBhcHBsaWNhdGlvbj8NCg0KT25lIHBv
c3NpYmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAo
YWxpYXMsIGRhdGEgbm9kZSBJRCkgdG8gdGhlIENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIHRo
ZSBDb01JIGNsaWVudCBtaWdodCByZWNlaXZlIGFuIGVycm9yIGlmIG9uZSBvciBtdWx0aXBsZSBv
ZiB0aGVzZSBhbGlhc2VzIGFyZSBhbHJlYWR5IHJlc2VydmVkLg0KDQpBIHNlY29uZCBwb3NzaWJs
ZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGRhdGEg
bm9kZSBJRCkgYW5kIGdldCBhIGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5vZGUgSUQpIGZyb20gdGhl
IENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIENvTUkgY2xpZW50cyB3aWxsIGhhdmUgdG8gZGVh
bCB3aXRoIGEgbWl4IHBvcHVsYXRpb24gb2YgYWxpYXNlcy4NCg0KVGhlIHByb3Bvc2VkIHNvbHV0
aW9uIG5lZWQgdG8gc2NhbGUgdG8gYSBtdWx0aS12ZW5kb3JzLCBtdWx0aXBsZSBhcHBsaWNhdGlv
bnMgZW52aXJvbm1lbnQuDQpXaXRoIHRoaXMgaXMgbWluZCwgZG8geW91IGhhdmUgYW55IGFsdGVy
bmF0aXZlIHNvbHV0aW9ucyB0byBwcm9wb3NlPw0KDQoNCg0KRG9lcyB0aGlzIGFwcHJvYWNoIGFs
bG93IGVhY2ggY2xpZW50IHRvIGhhdmUgYSBkaWZmZXJlbnQgc2V0IG9mIGFsaWFzZXMsDQpzbyB0
aGUgc2VydmVyIGhhcyB0byBtYWludGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGluZyBmb3IgZWFjaCBj
bGllbnQ/DQpUaGlzIHNlZW1zIGxpa2UgYSBsb3Qgb2Ygb3ZlcmhlYWQgYW5kIE5WLXN0b3JhZ2Ug
cmVxdWlyZW1lbnRzDQpvbiB0aGUgc2VydmVyLg0KDQpDaGFuZ2luZyB0aGUgc2NoZW1hIGlkZW50
aWZpZXJzIGJhc2VkIG9uIHdoaWNoIGNsaWVudCBpcw0Kc2VuZGluZyB0aGUgcmVxdWVzdCBzZWVt
cyBsaWtlIGEgY29tcGxpY2F0ZWQgZGVzaWduIGNoYW5nZQ0KZnJvbSBSRVNUQ09ORiwgTkVUQ09O
Riwgb3IgU05NUCwgd2hlcmUgdGhlcmUgaXMgb25seQ0KMSBzY2hlbWEgdHJlZSB3aGljaCBpcyBu
b3QgZGVwZW5kZW50IG9uIHRoZSBjbGllbnQgaWRlbnRpdHkuDQoNCg0KQW5keQ0KDQoNCg0KDQo8
aW1hZ2UwMDEuanBnPg0KDQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERp
cmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hl
bC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmls
bGlhbnRpbmMuY29tPg0Kd3d3LnRyaWxsaWFudGluYy5jb208aHR0cDovL3d3dy50cmlsbGlhbnRp
bmMuY29tLz4NCg0KDQoNCkZyb206IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5w
ZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1PG1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1i
cmV0YWduZS5ldT5dDQpTZW50OiA1IGp1aW4gMjAxNSAxMjowMw0KVG86IE1pY2hlbCBWZWlsbGV0
dGUNCkNjOiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYu
b3JnPjsgY29yZUBpZXRmLm9yZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBS
ZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzDQoNCkhpIE1pY2hlbCwNCg0KDQpMZSA1IGp1aW4gMjAx
NSDDoCAxNzoxNywgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRp
bmMuY29tPG1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+PiBhIMOpY3Jp
dCA6DQoNCkhpIEFsZXhhbmRlcg0KDQpJbiB5b3VyIHByZXNlbnRhdGlvbiBhdCA2VGlTQ0gsIHlv
dSBwcm9wb3NlIHRoZSBmb2xsb3dpbmcgZGF0YSBub2RlIElEIHN0cnVjdHVyZS4NCg0K4oCiICAg
ICAgIDMyIGJpdHMgWUFORyBJRA0K4oCTICAgICAgMjAgYml0cyBmb3IgbW9kdWxlIElEIChhc3Np
Z25lZCBieSBJRVRGKQ0K4oCTICAgICAgMTAgYml0cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0
ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpDQoNCg0KQmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNh
biByZXNlcnZlIG1vZHVsZSBJRCB6ZXJvIGZvciBhbGlhc2VzLg0KDQoNCkkgd2FzIGp1c3Qgc3Vt
bWFyaXppbmcgd2hhdCB3YXMgZGlzY3Vzc2VkIG9uIHRoZSBkaXNjdXNzaW9uIGluIENvTUkuIEFj
dHVhbGx5LCBpdCBpcyAzMCBiaXRzIFlBTkcgSUQsIGJ1dCB0aGF04oCZcyBmb3IgcHVycG9zZXMg
dG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBZQU5HIGhhc2ggYW5kIEkgZG9u4oCZdCBtaW5kIGtl
ZXBpbmcgaXQgMzAgYml0cy4NCg0KDQpJZiB3ZSB3YW50IHRvIG1pbmltaXplIGJvdGggdGhlIG5l
dHdvcmsgYW4gbm9kZSByZXNvdXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFzIG1lY2hhbmlzbSwg
d2UgY2FuIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoaXMgc3BhY2UuDQpUaGlzIGNhbiBiZSBp
bXBsZW1lbnRlZCBieSBhIHNpbmdsZSBpbnRlZ2VyIHJlc291cmNlIChlLmcuIGxlYWYgYWxsaWFz
c2VkTW9kdWxlIHsgdHlwZSB1aW50MzIgfSApDQpUaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRl
cyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQuDQoNCg0KSXQgaXMgcG9zc2libGUgdG8gbWFwIGFu
IGVudGlyZSBtb2R1bGUgdG8gdGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlzIGlzIHVwIHRvIHRoZSBv
cGVyYXRvci4gSG93ZXZlciwgaWYgeW91IGxvYWQgdHdvIG1vZHVsZXMgd2hpY2ggcmVkZWZpbmUg
dGhlIHNhbWUgYWxpYXMgeW91IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQgZnJvbSBpdC4gTWF5YmUg
aXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IHRoYXQgeW91IHdh
bnQgdGhlIGFsaWFzZXMgZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLg0KDQpJ
ZiB0aGUgL21nLzAgYWxpYXMgaXMgcmVzZXJ2ZWQgZm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0
aGlzIGNvdWxkIGJlIHNpbXBseSBzYXlpbmc6DQpQT1NUIC9tZy8wDQp7DQogInNvdXJjZV91cmki
IDogIi9tZy9CQUEiDQp9DQoNCndoZXJlIC9tZy9CQUEgaXMgdGhlIFlBTkcgaWQgb2YgdGhlIG1v
ZHVsZSAoMjAgYml0cyBtb2R1bGUgSUQgKyAxMCBiaXRzIHNldCB0byAwKS4gVGhpcyB3YXksIHRo
ZSBzZXJ2ZXIgd2lsbCBrbm93OiBPSywgZ2V0IHRoZSBhbGlhcyBtYXBwaW5nIGZyb20gdGhlIFlB
Tkcgc2NoZW1lIG9mIG1vZHVsZSB3aXRoIElEID0gQiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURiku
DQoNCk9yLCB5b3UgY2FuIGR5bmFtaWNhbGx5IGNvbmZpZ3VyZSB0aGUgbWFwcGluZzoNClBPU1Qg
L21nLzANCnsNCiAgWUFOR19pZCA6IGFsaWFzLA0KICBZQU5HX2lkIDogYWxpYXMsDQogIFlBTkdf
aWQgOiBhbGlhcw0KfQ0KDQpJZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhp
YmxlIGFsaWFzZXMgbWVjaGFuaXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5H
IElEKSBzZWVtIHRoZSBzb2x1dGlvbi4NCkhvd2V2ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhh
dCB0aGlzIHN0cnVjdHVyZSBjYW4gYmUgYXMgbGFyZ2UgYXMgMTI1MCBieXRlcyBwZXIgQ29NSSBz
ZXJ2ZXIgYWNjZXNzZWQgaWYgbGltaXRlZCB0byAyNTYgYWxpYXNlcy4NCg0KVGhpcyBpcyBhc3N1
bWluZyB5b3UgbmVlZCBhIHNlcGFyYXRlIG1hcHBpbmcgZm9yIGVhY2ggc2VydmVyLiBJIHdvdWxk
IHN1cHBvc2UgdGhhdCBpbiBhIG5ldHdvcmsgeW914oCZbGwgaGF2ZSBhIHNpbmdsZSBhbGlhcyBt
YXBwaW5nIChtYXliZSB0d28/KSAtIGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5aW5nIHRvIG9wdGlt
aXplIHRoZSBtYW5hZ2VtZW50IG9mIHlvdXIgZGV2aWNlcyAoc2VydmVycykuIFNvLCB0eXBpY2Fs
bHkgeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFu
bmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRoYXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5
b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4NCg0KQmVzdCwNCkFsZXhhbmRlcg0KDQoNCjxpbWFn
ZTAwMS5qcGc+DQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0
b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZl
aWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFu
dGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5j
b20vPg0KDQoNCg==

--_000_CO2PR0601MB792C118ECA44AD8FD152307FEBB0CO2PR0601MB792na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAw
O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6
MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZh
bWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUg
RGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwN
Cgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBw
dDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQphOmxpbmssIHNwYW4u
TXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRl
eHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0Zv
bGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1k
ZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgsIGxpLk1zb0xpc3RQYXJh
Z3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1wcmlvcml0eTozNDsNCglt
YXJnaW4tdG9wOjBpbjsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1hcmdpbi1ib3R0b206MGluOw0K
CW1hcmdpbi1sZWZ0Oi41aW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTox
Mi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0Kc3Bhbi5hcHBs
ZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6YXBwbGUtY29udmVydGVkLXNwYWNl
O30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQt
ZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5FbWFp
bFN0eWxlMTkNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtY29tcG9zZTsNCglmb250LWZhbWls
eToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZh
dWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0K
QHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAx
LjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24x
O30NCi8qIExpc3QgRGVmaW5pdGlvbnMgKi8NCkBsaXN0IGwwDQoJe21zby1saXN0LWlkOjc0ODEx
MzkxMTsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6ODAy
NTgxMzYgMjY5MDI1MjgxIDI2OTAyNTI4MyAyNjkwMjUyODUgMjY5MDI1MjgxIDI2OTAyNTI4MyAy
NjkwMjUyODUgMjY5MDI1MjgxIDI2OTAyNTI4MyAyNjkwMjUyODU7fQ0KQGxpc3QgbDA6bGV2ZWwx
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3Qg
bDA6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwt
dGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIg
TmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDMNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0
Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28t
bGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQt
ZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMDpsZXZlbDQNCgl7bXNvLWxldmVsLW51bWJlci1m
b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6
bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4y
NWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDUNCgl7bXNvLWxldmVs
LW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRh
Yi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k
ZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVs
Ng0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674Kn
Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBs
aXN0IGwwOmxldmVsNw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl
dmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3lt
Ym9sO30NCkBsaXN0IGwwOmxldmVsOA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2
ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFt
aWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9w
Om5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0u
MjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0Kb2wNCgl7bWFyZ2luLWJvdHRvbTowaW47
fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+
DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5
b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9v
OnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4t
Q0EiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24x
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5JIEFsZXhhbmRlcjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+SSBkb27igJl0IHNlZSBhbnkgaXNzdWVzIHdpdGggeW91ciBw
cm9wb3NhbCBvZiB1c2luZyBtb2R1bGUgSUQgMCBhcyBhbGlhc2VzLjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UaGUgb25seSBjb25zdHJhaW4gaXMgdGhhdCBh
bGlhc2VzIG5lZWQgdG8gYmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3QgZm9yIGEgR0VUIGFu
ZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHBheWxvYWQgZm9yIGEgUFVULjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28t
ZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+VGhlIGxhc3QgdGhpbmdzIHdlIG5lZWQgdG8gc29ydCBv
dXQsIGlzIHRoZSBpbnN0YW5jZSBzZWxlY3RvciAoa2V5cykgaW4gdGhlIGNvbnRleHQgb2YgYSBz
ZWxlY3QgcXVlcnkgcGFyYW1ldGVyIGNvbnRhaW5pbmcgbXVsdGlwbGUNCiBkYXRhIG5vZGVzLjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+TGV0IGFzc3VtZSB0aGUgZm9s
bG93aW5nOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBo
IiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtp
ZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTpTeW1ib2w7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PHNwYW4g
c3R5bGU9Im1zby1saXN0Oklnbm9yZSI+wrc8c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtU
aW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5BIENvTUkgY2xp
ZW50IG5lZWQgdG8gc2VsZWN0IDMgZGF0YSBub2RlcyAoRGF0YSBub2RlIElEIDIwNDksIDIgYW5k
IDMpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0
eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFz
dXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5
bWJvbDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3BhbiBzdHls
ZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVz
IE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkZvciB0aGUgZmlyc3Qg
ZGF0YSBub2RlLCB0aHJlZSB2YWx1ZXMgbmVlZCB0byBiZSBwcm92aWRlZCBhcyBrZXlzIChlLmcu
IDEsPC9zcGFuPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPg0KJnF1b3Q7aXB2NCZxdW90Oyw8L3NwYW4+IDxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj4NCiZxdW90OzEwLjAuMC41
MTwvc3Bhbj4gPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3Vh
Z2U6RU4tVVMiPg0KJnF1b3Q7KSwgc2VlIGRyYWZ0LXZhbmRlcnN0b2stY29yZS1jb21pLTA2IHBh
Z2UgMjIuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgi
IHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lm
ICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3BhbiBz
dHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1Rp
bWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkZvciB0aGUgdGhp
cmQgZGF0YSBub2RlLCBvbmUgaW50ZWdlciB2YWx1ZSBuZWVkIHRvIGJlIHByb3ZpZGVkIGFzIGtl
eXMgKGUuZy4gMjIpLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+SWYg
d2UgaW5jbHVkZSB0aGVzZSBrZXlzIGluIHRoZSBzZWxlY3QgcXVlcnkgcGFyYW1ldGVyIGVuY29k
ZWQgaW4gQ0JPUiwgdGhlIHJlc3VsdCBtaWdodCBsb29rIGFzIGZvbGxvdzo8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7
bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlJFUTogR0VUIGV4YW1wbGUuY29tL21nP3NlbGVj
dCggW1syMDQ5MSwmcXVvdDtpcHY0JnF1b3Q7LCZxdW90OzEwLjAuMC41MSZxdW90OywyXSwgMiwg
WzMsMjJdXSApPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5JbiB0aGUg
Y3VycmVudCBkcmFmdCwgdGhlIENvTUkgc2VydmVyIG5lZWQgdG8gc3VwcG9ydCB0d28gZW5jb2Rp
bmcgZm9yIGVhY2ggc2VsZWN0b3IsIENCT1IgZW5jb2RpbmcgaW4gdGhlIHBheWxvYWQgYW5kIHRl
eHQgaW4gdGhlDQoga2V5cyBxdWVyeSBwYXJhbWV0ZXIuPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPldpdGggdGhpcyBwcm9wb3NhbCwgYm90aCB1c2UgY2FzZXMg
YXJlIGVuY29kZWQgdXNpbmcgQ0JPUi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5n
dWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPldoYXQgZG8geW91IHRoaW5ncz88bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjx0YWJs
ZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxw
YWRkaW5nPSIwIiB3aWR0aD0iNzE3IiBzdHlsZT0id2lkdGg6NTM3Ljc1cHQ7Ym9yZGVyLWNvbGxh
cHNlOmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1cHQiPg0KPHRk
IHdpZHRoPSIxMzciIHN0eWxlPSJ3aWR0aDoxMDMuMXB0O2JvcmRlcjpub25lO2JvcmRlci1yaWdo
dDpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWln
aHQ6NDkuMDVwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+PGltZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjIyIiBpZD0iUGljdHVyZV94MDAyMF8y
IiBzcmM9ImNpZDppbWFnZTAwMS5qcGdAMDFEMEE1MkUuQjcyMUY5MDAiIGFsdD0iY2lkOmltYWdl
MDAxLmpwZ0AwMUM4NjhEOC5CRjBCQjdFMCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC90ZD4N
Cjx0ZCB3aWR0aD0iNTgwIiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQzNC42NXB0O3BhZGRp
bmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij5NaWNoZWwgVmVpbGxldHRlPGJyPg0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcjwvc3Bh
bj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+VHJpbGxpYW50IEluYy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBl
eHQuIDIzNzxicj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGlu
Yy5jb20iPjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxs
aWFudGluYy5jb208L3NwYW4+PC9hPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZiI+d3d3LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+DQogJm5ic3A7IDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90
YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9y
ZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGlu
IDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiBB
bGV4YW5kZXIgUGVsb3YgW21haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5l
dV0NCjxicj4NCjxiPlNlbnQ6PC9iPiAxMiBqdWluIDIwMTUgMTU6MjY8YnI+DQo8Yj5Ubzo8L2I+
IE1pY2hlbCBWZWlsbGV0dGU8YnI+DQo8Yj5DYzo8L2I+IFBhc2NhbCBUaHViZXJ0IChwdGh1YmVy
dCk7IEFuZHkgQmllcm1hbjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnPGJyPg0KPGI+
U3ViamVjdDo8L2I+IFJlOiBbNnRpc2NoXSBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzPG86cD48
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhpIE1pY2hl
bCw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
WW914oCZcmUgcmlnaHQuIEFzIEkgbWVudGlvbmVkIGluIG15IHByZXZpb3VzIG1haWxzLCBJ4oCZ
bSBwcmV0dHkgaGFwcHkgd2l0aCB0aGUgY29tcHJlc3Npb24gb2YgSURzIHdl4oCZdmUgYWNoaWV2
ZWQgdW50aWwgbm93LCBzbyBhbGlhc2VzIGFyZSBub3QgYXMgYSBwcmVzc2luZyBpc3N1ZS4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
VGhlIHRoaW5nIGlzLCBpZiB0aGV5IGNhbiBiZSBpbXBsZW1lbnRlZCBhdCAoYWxtb3N0KSB6ZXJv
IGNvc3QsIHRoZW4gc29tZSBvZiB0aGUgdXNlLWNhc2VzIGJlY29tZSBxdWl0ZSBpbnRlcmVzdGlu
Zy48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
WW91IGFjdHVhbGx5IHByb3ZpZGUgYSB2ZXJ5IGdvb2QgY2FzZSB3aXRoIHRoZSBzZWxlY3Qgb3B0
aW9uLiBJ4oCZdmUgbm90IHRob3VnaHQgaWYgaXQgd2lsbCBwcmVzZW50IHNvbWUgb3RoZXIgZGlm
ZmljdWx0aWVzLCBidXQgSSBhY3R1YWxseSB0aGluayBpdCBmYWNpbGl0YXRlcyB0aGUgdXNlIG9m
IGFsaWFzZXMgKGFuZCBJIG1lbnRpb24gdGhpcyBvbmx5IGJlY2F1c2UgaXQgd2lsbCBoZWxwIG1l
IGFsc28gdW5kZXJzdGFuZA0KIHRoZSBzZW1hbnRpY3Mgb2YgeW91ciBwcm9wb3NhbCBvZiB0aGUg
c2VsZWN0IG9wdGlvbikuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPklmIEkgdGFrZSB0aGUgZXhhbXBsZSB5b3UgcHJvdmlkZTo8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0
O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVROiBH
RVQmbmJzcDs8YSBocmVmPSJodHRwOi8vZXhhbXBsZS5jb20vbWc/c2VsZWN0Ij48c3BhbiBzdHls
ZT0iY29sb3I6cHVycGxlIj5leGFtcGxlLmNvbS9tZz9zZWxlY3Q8L3NwYW4+PC9hPiggWzIwNDks
MiwzLDRdICkmbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvYmxvY2txdW90
ZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhlIHBhcmFtZXRlcnMgMiwzLDQgYXJlIGFjdHVh
bGx5IHJlbGF0aXZlIHRvIHRoZSBtb2R1bGUgSUQgb2YgdGhlIGZpcnN0IG9uZS4gU28sIGlmIEkg
dHJ5IHRvIGdlbmVyYWxpemUgdGhpcyAocGxlYXNlIGNvcnJlY3QgbWUgaWYgSeKAmW0gd3Jvbmcp
LCBJIHdvdWxkIGltYWdpbmUgc29tZXRoaW5nIGxpa2U6PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9t
OjUuMHB0Ij4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlJFUTogR0VUJm5ic3A7PGEgaHJl
Zj0iaHR0cDovL2V4YW1wbGUuY29tL21nP3NlbGVjdCI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBs
ZSI+ZXhhbXBsZS5jb20vbWc/c2VsZWN0PC9zcGFuPjwvYT4oIFsyMDQ5LDIsMyw0LCA0MDk3LDIs
Myw0XSApJm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UbyByZXNvbHZlIHRvIGdldHRpbmcgbW9kdWxlIElEPTEs
IHJlbGF0aXZlIG5vZGUgSURzPTEsMiwzIGFuZCA0LCBhbmQgbW9kdWxlIElEPTIgYW5kIHJlbGF0
aXZlIG5vZGUgSURzID0xLDIsMyBhbmQgNC48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhpcyBtZWFucywgdGhhdCBzcGVjaWZ5aW5nIGEgR0VU
IDxhIGhyZWY9Imh0dHA6Ly9leGFtcGxlLmNvbS9tZz9zZWxlY3QiPg0KZXhhbXBsZS5jb20vbWc/
c2VsZWN0PC9hPigxKSBzaG91bGQgcmVzb2x2ZSB0byBtb2R1bGUgSUQ9MCBhbmQgcmVsYXRpdmUg
bm9kZSBJRD0xLiBUaGlzIHJlcXVpcmVzIGFic29sdXRlbHkgbm8gYWRkaXRpb25hbCBwcm9jZXNz
aW5nIGZyb20gdGhlIG5vZGUuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPlNvLCB0aGlzIGxlYXZlcyB1cyBiYWNrIHRvIHRoZSBpbml0
aWFsIGlkZWEgb2YgdGhlIGFsaWFzZXMuIEFsbCBzaG9ydCBub2RlIElEcyBhcmUgcmVsYXRpdmUg
dG8gYSBtb2R1bGUgSUQgKHNvIHRoYXQgdGhlIGxvbmcgZm9ybSBJRCBjYW4gYmUgaW50ZXJwcmV0
ZWQpLiBNb2R1bGUgSUQ9MCBpcyByZXNlcnZlZCwgYW5kIGNhbiBiZSB1c2VkIGZvciBhbGlhc2lu
ZyBpZiB0aGUgZGV2aWNlIHdpc2hlcyB0byBzdXBwb3J0DQogaXQuJm5ic3A7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpw
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkRvZXMgdGhpcyBicmVh
ayBzb21lIG9mIHRoZSB0aGluZ3MgYWxvbmcgdGhlIHdheT8mbmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QmVzdCw8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFsZXg8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0
b206NS4wcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkxlIDEyIGp1aW4gMjAxNSDD
oCAxODo1NywgTWljaGVsIFZlaWxsZXR0ZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOk1pY2hlbC5WZWls
bGV0dGVAdHJpbGxpYW50aW5jLmNvbSI+TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29t
PC9hPiZndDsgYSDDqWNyaXQgOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkhpIEFsZXhhbmRlciwgaGkg
UGFzY2FsPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj5JIHdhbnQgdG8gZW1waGFzZXMgdGhlIGZvbGxvd2luZyBw
b2ludHM8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW4iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj7Ctzwvc3Bh
bj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIGNsYXNzPSJhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPlRoZQ0KIHVzZSBvZiB0aGUgc2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBlbmNvZGVk
IGluIENCT1Igc3VwcG9ydCBvZiA2MyBtb2R1bGVzIHdpdGggb3B0aW1pemVkIG1lc3NhZ2Ugc2l6
ZSBpbnN0ZWFkIG9mIG9ubHkgMyBmb3IgdGhlIGJhc2U2NCBVUkkuPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5JZiB0aGUgNlRpU0NIIG1v
ZHVsZSBJRCBpcyBhbGxvY2F0ZWQgd2l0aGluIHRoZXNlIDYzIElEcywgdGhlcmUgd2lsbCBiZSBu
byBtZXNzYWdlIHNpemUgb3B0aW1pemF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBhbGlhc2VzIG1lY2hh
bmlzbS48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1s
ZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPlRoaXMgbWFrZSB0aGUgaW50cm9kdWN0aW9uIG9mIGFsaWFzZXMgbGVzcyB1cmdlbnQu
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDou
NWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtaW5kZW50Oi0u
MjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2Nv
bG9yOiMxRjQ5N0QiPsK3PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQ7Y29sb3I6
IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlDQogbWVzc2FnZSBzaXplIG9mIHRoZSBz
ZWxlY3QgcXVlcnkgcGFyYW1ldGVyIGVuY29kZWQgaW4gQ0JPUiBzaG91bGQgYmUgZXF1YWwgb3Ig
c21hbGxlciBjb21wYXJlZCB0byB0aGUgYmFzZTY0IFVSSS48L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkhvd2V2ZXIsIHRoZSBzZWxlY3Qg
cXVlcnkgcGFyYW1ldGVyIGVuY29kZWQgaW4gQ0JPUiBzdXBwb3J0IGEgd2lkZXIgcmFuZ2Ugb2Yg
dmFsdWVzIHdpdGhvdXQgc2l6ZSBwZW5hbHR5ICgxNiBiaXRzIGluc3RlYWQgb2YgMTIsIDMyIGJp
dHMgaW5zdGVhZCBvZiAzMCk8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5
bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPkZ1cnRoZXJtb3JlLCBDb01JIGRldmljZXMgd29u4oCZdCBoYXZl
IHRvIHN1cHBvcnQgdHdvIHR5cGUgb2YgZW5jb2RpbmcgZGVwZW5kaW5nIGlmIElEcyBhcmUgcGFy
dCBvZiB0aGUgY29tbWFuZCB2cy4gcGF5bG9hZC48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Rm9yIGV4YW1wbGU6PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPkFzc3VtaW5nIG1vZHVsZSBJRCAyPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5Bc3N1bWluZyBkYXRhIG5vZGUgSUQgMSwgMiwgMywg
NCAobG9uZyBmb3JtIDIwNDksIDIwNTAsIDIwNTEpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5Bc3N1bWluZyDigJws4oCdIHNlcGFyYXRv
ciB0byBzZWxlY3QgbXVsdGlwbGUgZGF0YSBub2Rlczwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5CYXNlNjQgYXBwcm9hY2g6
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDou
NWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij5SRVE6IEdFVDxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bh
bj48YSBocmVmPSJodHRwOi8vZXhhbXBsZS5jb20vbWcvZ0IiPjxzcGFuIHN0eWxlPSJjb2xvcjpw
dXJwbGUiPmV4YW1wbGUuY29tL21nL2dCPC9zcGFuPjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKDMgYnl0ZXM7DQogMSBieXRlIGZvciB0aGUg4oCc
L+KAnSwgMiBieXRlcyBmb3Ig4oCcZ0LigJ0pPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkNCT1IgYXBwcm9hY2g6PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5SRVE6
IEdFVDxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBo
cmVmPSJodHRwOi8vZXhhbXBsZS5jb20vbWc/c2VsZWN0Ij48c3BhbiBzdHlsZT0iY29sb3I6cHVy
cGxlIj5leGFtcGxlLmNvbS9tZz9zZWxlY3Q8L3NwYW4+PC9hPigyMDQ5KSZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KICg0IGJ5dGVzOyBvbmUgYnl0ZSBm
b3IgdGhlIENvQVAgb3B0aW9uLCAzIGZvciAyMDQ5IGVuY29kZWQgdXNpbmcgQ0JPUik8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+QmFzZTY0IGFwcHJvYWNoOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVROiBHRVQ8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVk
LXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0iaHR0cDovL2V4YW1wbGUuY29tL21nL2dCLEMs
RCxFIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5leGFtcGxlLmNvbS9tZy9nQixDLEQsRTwv
c3Bhbj48L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
DQogKDkgYnl0ZXM7IDEgYnl0ZSBmb3IgdGhlIOKAnC/igJ0sIDggYnl0ZXMgZm9yIOKAnGdCLEMs
RCxF4oCdKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkNCT1IgYXBw
cm9hY2g6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDouNWluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj5SRVE6IEdFVDxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNw
Ozwvc3Bhbj48YSBocmVmPSJodHRwOi8vZXhhbXBsZS5jb20vbWc/c2VsZWN0Ij48c3BhbiBzdHls
ZT0iY29sb3I6cHVycGxlIj5leGFtcGxlLmNvbS9tZz9zZWxlY3Q8L3NwYW4+PC9hPiggWzIwNDks
MiwzLDRdDQogKSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAoOCBieXRlczsgMSBieXRl
IGZvciB0aGUgQ29BUCBvcHRpb24sIDEgZm9yIHRoZSBDQk9SIGFycmF5LCAzJiM0MzsxJiM0Mzsx
JiM0MzsxIGJ5dGVzIGZvciB0aGUgSURzKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJs
ZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTci
IHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5
Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9Indp
ZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4w
cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jmx0O2lt
YWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8dGQg
d2lkdGg9IjU4MCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo0MzQuNjVwdDtwYWRkaW5nOjBp
biA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6OC4xcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFw
dCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VHJp
bGxpYW50IEluYy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNzxicj4NCjxhIGhyZWY9
Im1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20iPjxzcGFuIHN0eWxlPSJj
b2xvcjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9h
Pjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
OC4xcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjpwdXJwbGUiPnd3dy50cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PHNwYW4g
Y2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBw
dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzxz
cGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpu
b25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4g
MGluIj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1z
cGFjZSI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48
c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5BbGV4YW5kZXINCiBQZWxvdiBbPGEgaHJlZj0i
bWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1Ij5tYWlsdG86YWxleGFu
ZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXU8L2E+XTxzcGFuIGNsYXNzPSJhcHBsZS1jb252
ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+DQo8Yj5TZW50OjwvYj48c3BhbiBjbGFzcz0i
YXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+MTEganVpbiAyMDE1IDE3OjA2PGJy
Pg0KPGI+VG86PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwv
c3Bhbj5QYXNjYWwgVGh1YmVydCAocHRodWJlcnQpPGJyPg0KPGI+Q2M6PC9iPjxzcGFuIGNsYXNz
PSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5BbmR5IEJpZXJtYW47IE1pY2hl
bCBWZWlsbGV0dGU7DQo8YSBocmVmPSJtYWlsdG86NnRpc2NoQGlldGYub3JnIj42dGlzY2hAaWV0
Zi5vcmc8L2E+OyA8YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyI+DQpjb3JlQGlldGYub3Jn
PC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3Bh
Y2UiPiZuYnNwOzwvc3Bhbj5SZTogWzZ0aXNjaF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSBQYXNjYWwsPG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7
bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PkxlIDEwIGp1aW4gMjAxNSDDoCAxNToyNSwgUGFzY2FsIFRodWJlcnQgKHB0aHViZXJ0KSAmbHQ7
PGEgaHJlZj0ibWFpbHRvOnB0aHViZXJ0QGNpc2NvLmNvbSI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1
cnBsZSI+cHRodWJlcnRAY2lzY28uY29tPC9zcGFuPjwvYT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5EZWFyIGFsbDo8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRoaXMgbG9va3MgbGlr
ZSB0aGUgcHJvYmxlbSBvZiBsb2NhbCBuYW1lc3BhY2VzLCZuYnNwOyB3aGljaCBpcyB0aGUgcmVh
c29uIHdoeSBNUExTIHN3aXRjaGVzIGxhYmVscy48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlIHVzZXIgbWF5IGFjY2VzcyBhIGxpbWl0ZWQgc2V0IG9m
IHJlc291cmNlcyBmcm9tIGEgbnVtYmVyIG9mIHNlcnZlcnMsIGFuZCBzZXJ2ZXJzIGFyZSByZWFk
IGJ5IG1hbnkgdXNlcnMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPllvdSBjYW5ub3QgZW5zdXJlIHRoYXQgeW91IGhhdmUgYSBzaW5nbGUgYWxpYXMgc3Bh
Y2UgdGhhdCBzYXRpc2ZpZXMgdGhlbSBhbGwuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkdyZWF0IGFuYWxvZ3khIEFuZCB5ZXMsIHNhZGx5
IHlvdSBjYW5ub3Qgc2F0aXNmeSB0aGVtIGFsbCwgYXQgbGVhc3Qgbm90IHdpdGggYWxsIGRldmlj
ZXMuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxicj4NCjxicj4NCjxicj4NCjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8YmxvY2tx
dW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+U28gLHdoYXQgaWYgdGhlIHVzZXIgaGFkIGl0cyBvd24gc2V0IG9mIGFsaWFzZXMg
YW5kIHRoZSBzZXJ2ZXIgYWxzbyBoYWQgaXRzIG93biBzZXQgb2YgYWxpYXNlcz88L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRoZSBhbGlhc2VzIGNvdWxkIGJl
IG1hcHBlZCBpbiBhIHRhYmxlIGxpa2UgYSB1U0FQIGFuZCBhIHBTQVAgYXJlIG1hcHBlZCBhY3Jv
c3MgbGF5ZXJzLiBCcm9hZGx5Ojwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj4tIEZpcnN0IHRpbWUgYSB1c2VyIHJlcXVlc3RzIGEgcmVzb3VyY2UgaW4gYSBz
ZXJ2ZXIsIGl0IGNvbWVzIHdpdGggYSB0dXBsZSAodXNlcmlkLCB1c2VyYWxpYXMsIGZ1bGxuYW1l
KTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4tIFRoZSBz
ZXJ2ZXIgcmVzcG9uZHMgd2l0aCAoc2VydmVyaWQsIHNlcnZlcmFsaWFzLCB1c2VyaWQsIHVzZXIg
YWxpYXMpLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwv
YmxvY2txdW90ZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5BY3R1YWxseSwgSSB0aGluayB0aGF0IHRoaXMgY291bGQgYmUgd29ya2VkIG91dCBp
biBDb01JIGFsc28uIEluc3RlYWQgb2YgZnVsbG5hbWUgeW91IGNvdWxkIHByb3ZpZGUgdGhlIFlB
TkcgaWQgKG1vZHVsZSBJRCAmIzQzOyBkYXRhIG5vZGUgSUQpIGFuZCBkbyB0aGUgbWFwcGluZy4g
VXNlciBhbGlhcyB3b3VsZCBiZSB0aGUgc3BlY2lhbCBhbGlhc2VkIFlBTkcgaWQuIFVzZXIgSUQs
IGhvd2V2ZXIsIGNvdWxkIGJlIGENCiBsaXR0bGUgYml0IG1vcmUgdHJpY2t5IC0gaG93IGRvIHdl
IGVuc3VyZSB0aGF0IGl0IGlzIGNvbnNpc3RlbnQ/IFVzZSB0aGUgSVAgYWRkcmVzcyBvZiB0aGUg
Y2xpZW50IGNvdWxkIGJlIGRvYWJsZSwgYnV0IHdl4oCZbGwgaGF2ZSB0byBpbmNsdWRlIHRoZSBV
RFAgcG9ydCBqdXN0IGluIGNhc2Ugc29tZW9uZSBydW5zIHR3byBjbGllbnRzIG9uIHRoZSBzYW1l
IG1hY2hpbmUuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGJyPg0KPGJyPg0KPGJyPg0KPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdp
bi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5BZnRlciB0aGF0LCZuYnNwOyBpZiB0aGUg
c2VydmVyIGlzIGEgY29uc3RyYWluZWQgZGV2aWNlIHRoZW4gdGhlIHVzZXIgdGFsa3MgdG8gdGhl
IHNlcnZlciB3aXRoIChzZXJ2ZXJpZCwgc2VydmVyYWxpYXMpIGFuZCB0aGUgdXNlciBtYWludGFp
bnMgYSBzd2l0Y2hpbmcgdGFibGUgZm9yDQogdGhlIHJlc291cmNlIGl0IHVzZXMgb24gdmFyaW91
cyBzZXJ2ZXJzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij5JZiB0aGUgdXNlciBpcyB0aGUgY29uc3RyYWluZWQgZGV2aWNlIGFuZCB0aGUgc2VydmVyIGlz
IG5vdCwgdGhlIHVzZXIgY291bGQgdGFsayB3aXRoICh1c2VyaWQsIHVzZXJhbGlhcykgYW5kIHRo
ZSBzZXJ2ZXIgbWFpbnRhaW5zIGEgc3dpdGNoaW5nIHRhYmxlLjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Rm9yIGxhcmdlIHNlcnZlcnMsIHRoZSBzZXJ2ZXIg
bWF5IGFsbG9jYXRlIGFsaWFzZXMgZHluYW1pY2FsbHkgYmFzZWQgb24gd2hhdCBpdCBpcyBiZWlu
ZyBhc2tlZC4gV2XigJlkIHRoZW4gbmVlZCB0byB0YWxrIGFib3V0IGFsaWFzIHVwZGF0ZSBvciBy
ZXZvY2F0aW9uLCBwcm9iYWJseQ0KIGluIHRlcm1zIG9mIHNlc3Npb24gYW5kIGxpZmV0aW1lLjwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+RG9lcyB0aGF0IGxv
b2sgdXNhYmxlPzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5Zb3UgYXJlIHBvaW50aW5nIG91dCBhbiBpbnRlcmVzdGluZyBxdWVzdGlvbi4g
SSB3b3VsZCB0aGluayAoYnV0IG1heWJlIEnigJltIG1pc3Rha2VuKSwgdGhhdCB0aGUgY2xpZW50
IHNob3VsZCBoYXZlIHRoZSBsZWFkaW5nIHJvbGUgaW4gZmlndXJpbmcgb3V0IHdoYXTigJlzIGhh
cHBlbmluZy4gVGhlIGlkZWEgaXMgdGhlIGZvbGxvd2luZzo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+VGhlIGNsaWVudCBjaGVja3MgaWYgdGhlIHNlcnZlciBzdXBwb3J0cyBhbGlhc2luZywg
d2l0aCB0aGUgcG9zc2libGUgb3B0aW9uczo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlMxKSBubyBhbGlhc2luZzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+UzIpIHN0YXRpYy9zZXJ2ZXItZGVmaW5lZCBhbGlhc2luZzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UzMpIGR5
bmFtaWMvc2luZ2xlIGFsaWFzIG1hcHBpbmcmbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBTMy4xKSBt
YXBwaW5nIGFscmVhZHkgZGVmaW5lZDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IFMzLjIpIG5vIG1hcHBpbmcg
ZGVmaW5lZDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+UzQpIGR5bmFtaWMvcGVyIGNsaWVudCBhbGlhcyBtYXBwaW5nPG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZW4sIHRoZSBjbGllbnQgY2FuIHRha2UgYWN0aW9u
LCBkZXBlbmRpbmcgb24gaXRzIG93biBjYXBhYmlsaXRpZXMgYW5kIHRoZSByZXNwb25zZSBvZiB0
aGUgc2VydmVyLiBFLmcuIGEgdW5jb25zdHJhaW5lZCBjbGllbnQgY291bGQgb2J0YWluIHRoZSBh
bGlhcyBtYXBwaW5nIGlmIGl0IGlzIHN0YXRpYyAob3IgaWYgdGhlcmUgaXMgYSBzaW5nbGUgYWxp
YXMgbWFwcGluZyBpbiBwbGFjZSkgYW5kIGNhY2hlIGl0DQogbG9jYWxseS4gU28sIHRoZXJlIHdp
bGwgYmUgdGhlIGZvbGxvd2luZyBjb3JyZXNwb25kZW5jZSA6PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPkdpdmVuOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QzEpIGNvbnN0cmFpbmVkIGNsaWVudDxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
QzIpIHVuY29uc3RyYWluZWQgY2xpZW50PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPldlIGhh
dmU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5DMSAmIzQzOyBTMSkgbm8gYWxpYXNpbmcsIG5vdGhpbmcgdG8gZG88bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPkMxICYjNDM7IFMyKSBhbmQgQzEgJiM0MzsgUzMuMSkgaWYgdGhlIGFsaWFzIG1hcHBp
bmcgaXMga25vd24sIHVzZSBpdC4gb3RoZXJ3aXNlLCBpZ25vcmU8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkMxICYjNDM7
IFMzLjIpIGFuZCBDMSAmIzQzOyBTNCkgZGVmaW5lIGFsaWFzIG1hcHBpbmc8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkMyICYjNDM7IFMxKSBubyBhbGlhc2luZywgbm90aGluZyB0
byBkbzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkMyICYjNDM7IFMyKSBhbmQgQzIgJiM0MzsgUzMuMSkgaWYg
dGhlIGFsaWFzIG1hcHBpbmcgaXMga25vd24sIHVzZSBpdC4gb3RoZXJ3aXNlLCBsZWFybiBpdDxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QzIgJiM0MzsgUzMuMikgYW5kIEMyICYjNDM7IFM0KSBk
ZWZpbmUgYWxpYXMgbWFwcGluZzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIHdvdWxkIHNh
eSB0aGF0IHRoZSBhbmFsb2d5IHlvdSBtYWRlIHdpdGggTVBMUyBjb3JyZXNwb25kcyBxdWl0ZSBh
IGxvdCB0byB0aGUgQzImIzQzO1M0IGNhc2UuIFBlcnNvbmFsbHksIEkgd291bGQgYmUgbW9zdCBp
bnRlcmVzdGVkIGludG8gaGF2aW5nIG9uZSBjbGllbnQgY29uZmlndXJlIG9uZSBhbGlhcyBtYXBw
aW5nIHRvIGFsbCBzZXJ2ZXJzIGluIHRoZSBuZXR3b3JrIChlLmcuIHRoZSBtYW5hZ2luZyBlbnRp
dHkpLA0KIHdoaWNoIHdpbGwgcHJvZml0IG1vc3QgZnJvbSBzYXZpbmcgc2V2ZXJhbCBieXRlcyBv
biBlYWNoIG1lc3NhZ2UgZXhjaGFuZ2UuIEV2ZXJ5b25lIGVsc2UgY291bGQgdXNlIHRoZSBzdGFu
ZGFyZCBJRHMsIHdoaWNoIHdl4oCZdmUgYWxyZWFkeSBtYW5hZ2VkIHRvIHNocmluayBzaWduaWZp
Y2FudGx5LjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JbmRlZWQsIHdpdGggc3RydWN0dXJl
ZCBtb2R1bGUgSUQgJiM0MzsgZGF0YSBub2RlIElEICgyMCBiaXRzICYjNDM7IDEwIGJpdHMpLCBZ
QU5HIFVSSSBjb21wcmVzc2lvbiwgYW5kIGxvbmcgZm9ybS9zaG9ydCBmb3JtLCB3ZeKAmWxsIGhh
dmUgcXVpdGUgYSBsb3Qgb2YgZ2Fpbi4gUmVzZXJ2aW5nIG1vZHVsZSBJRCA9IDEgZm9yIGFsaWFz
ZXMgYW5kIG1heWJlIHdyaXRpbmcgYSBzaG9ydCBkcmFmdCBvbiBob3cgdGhlIGFsaWFzaW5nDQog
aXMgaW1wbGVtZW50ZWQgc2VlbXMgZmVhc2libGUsIHdoZXJlIHdlIGNhbiBjb3ZlciB0aGUgZXhh
Y3QgbWVjaGFuaXNtIG9mIGFsaWFzIGRlZmluaXRpb24sIGFuZCBjbGllbnQvc2VydmVyIGludGVy
YWN0aW9uLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5BbGV4YW5kZXI8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8Ymxv
Y2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+UGFzY2FsPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRp
bmc6MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2Jv
cmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LHNhbnMtc2VyaWYiPkZy
b206PC9zcGFuPjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssc2Fu
cy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBw
dDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssc2Fucy1zZXJpZiI+NnRpc2NoDQogWzxh
IGhyZWY9Im1haWx0bzo2dGlzY2gtYm91bmNlc0BpZXRmLm9yZyI+PHNwYW4gc3R5bGU9ImNvbG9y
OnB1cnBsZSI+bWFpbHRvOjZ0aXNjaC1ib3VuY2VzQGlldGYub3JnPC9zcGFuPjwvYT5dPHNwYW4g
Y2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxiPk9uIEJlaGFsZiBP
ZjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L2I+QW5k
eSBCaWVybWFuPGJyPg0KPGI+U2VudDo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1z
cGFjZSI+Jm5ic3A7PC9zcGFuPnZlbmRyZWRpIDUganVpbiAyMDE1IDIwOjU1PGJyPg0KPGI+VG86
PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5NaWNo
ZWwgVmVpbGxldHRlPGJyPg0KPGI+Q2M6PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQt
c3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJtYWlsdG86NnRpc2NoQGlldGYub3JnIj48c3Bh
biBzdHlsZT0iY29sb3I6cHVycGxlIj42dGlzY2hAaWV0Zi5vcmc8L3NwYW4+PC9hPjsgQWxleGFu
ZGVyIFBlbG92OzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bh
bj48YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBs
ZSI+Y29yZUBpZXRmLm9yZzwvc3Bhbj48L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+PHNwYW4gY2xh
c3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPlJlOiBbNnRpc2NoXSBSZXNl
cnZlIHNwYWNlIGZvciBhbGlhc2VzPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPk9uIEZyaSwgSnVuIDUsIDIwMTUgYXQgMTE6NDEgQU0sIE1pY2hlbCBWZWls
bGV0dGUgJmx0OzxhIGhyZWY9Im1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5NaWNoZWwuVmVp
bGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPiZndDsgd3JvdGU6PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5IaSBBbGV4YW5kZXI8
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkkgaGF2ZSBzb21l
IGNvbmNlcm5zIGFib3V0IGFsbG93aW5nIENvTUkgY2xpZW50KHMpIHRoZSBjb250cm9sIG9mIHRo
ZSBsaXN0IG9mIGFsaWFzZXMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPlRoaXMgYXBwcm9hY2ggd29yayBmaW5lIGZvciB0aGUgZmlyc3QgQ29NSSBhcHBs
aWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1dCB3aGF0IGRvIHdlIGRvIHdpdGggdGhlIHN1YnNlcXVl
bnQgQ29NSSBhcHBsaWNhdGlvbj88L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPk9uZSBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29NSSBjbGllbnQg
c2VuZCBhIGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5vZGUgSUQpIHRvIHRoZSBDb01JIHNlcnZlci4g
SW4gdGhpcyBjYXNlLCB0aGUgQ29NSSBjbGllbnQgbWlnaHQgcmVjZWl2ZSBhbiBlcnJvciBpZg0K
IG9uZSBvciBtdWx0aXBsZSBvZiB0aGVzZSBhbGlhc2VzIGFyZSBhbHJlYWR5IHJlc2VydmVkLjwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+QSBzZWNvbmQgcG9z
c2libGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xpZW50IHNlbmQgYSBsaXN0IG9mIChk
YXRhIG5vZGUgSUQpIGFuZCBnZXQgYSBsaXN0IG9mIChhbGlhcywgZGF0YSBub2RlIElEKSBmcm9t
IHRoZSBDb01JIHNlcnZlci4gSW4gdGhpcyBjYXNlLA0KIENvTUkgY2xpZW50cyB3aWxsIGhhdmUg
dG8gZGVhbCB3aXRoIGEgbWl4IHBvcHVsYXRpb24gb2YgYWxpYXNlcy48L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRoZSBwcm9wb3NlZCBzb2x1dGlvbiBuZWVk
IHRvIHNjYWxlIHRvIGEgbXVsdGktdmVuZG9ycywgbXVsdGlwbGUgYXBwbGljYXRpb25zIGVudmly
b25tZW50Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5X
aXRoIHRoaXMgaXMgbWluZCwgZG8geW91IGhhdmUgYW55IGFsdGVybmF0aXZlIHNvbHV0aW9ucyB0
byBwcm9wb3NlPzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5E
b2VzIHRoaXMgYXBwcm9hY2ggYWxsb3cgZWFjaCBjbGllbnQgdG8gaGF2ZSBhIGRpZmZlcmVudCBz
ZXQgb2YgYWxpYXNlcyw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnNvIHRoZSBzZXJ2ZXIgaGFz
IHRvIG1haW50YWluIGEgY29uZmlndXJlZCBtYXBwaW5nIGZvciBlYWNoIGNsaWVudD88bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPlRoaXMgc2VlbXMgbGlrZSBhIGxvdCBvZiBvdmVyaGVhZCBhbmQg
TlYtc3RvcmFnZSByZXF1aXJlbWVudHM8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPm9uIHRoZSBz
ZXJ2ZXIuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPkNoYW5naW5nIHRoZSBzY2hlbWEgaWRlbnRpZmllcnMgYmFzZWQgb24gd2hpY2ggY2xp
ZW50IGlzPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5zZW5kaW5nIHRoZSByZXF1ZXN0IHNlZW1z
IGxpa2UgYSBjb21wbGljYXRlZCBkZXNpZ24gY2hhbmdlPG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5mcm9tIFJFU1RDT05GLCBORVRDT05GLCBvciBTTk1QLCB3aGVyZSB0aGVyZSBpcyBvbmx5PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4xIHNjaGVtYSB0cmVlIHdoaWNoIGlzIG5vdCBkZXBlbmRl
bnQgb24gdGhlIGNsaWVudCBpZGVudGl0eS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5BbmR5PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp
dj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0ND
Q0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFy
Z2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGluO21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIw
IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0
aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxl
PSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7
Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzow
aW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZsdDtpbWFnZTAw
MS5qcGcmZ3Q7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8
dGQgd2lkdGg9IjU4MCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo0MzQuNjVwdDtwYWRkaW5n
OjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdiBzdHlsZT0ibWFyZ2lu
LWxlZnQ6OC4xcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj5NaWNoZWwgVmVpbGxldHRlPGJyPg0KU3lzdGVtIEFyY2hpdGVjdHVyZSBE
aXJlY3Rvcjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxl
PSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRyaWxsaWFudCBJbmMuPGJyPg0KVGVsOiA0NTAtMzc1LTA1
NTYgZXh0LiAyMzc8YnI+DQo8YSBocmVmPSJtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlh
bnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwNTYzQzEiPm1p
Y2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+PGEgaHJlZj0iaHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLyIgdGFyZ2V0PSJfYmxhbmsi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssc2Fucy1zZXJpZjtjb2xvcjpwdXJwbGUiPnd3dy50cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwv
YT48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPiZuYnNwOzxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwv
c3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+
DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4i
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYi
PkZyb206PC9zcGFuPjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5BbGV4YW5k
ZXINCiBQZWxvdiBbbWFpbHRvOjxhIGhyZWY9Im1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNv
bS1icmV0YWduZS5ldSIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJwbGUi
PmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1PC9zcGFuPjwvYT5dPHNwYW4gY2xh
c3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxicj4NCjxiPlNlbnQ6PC9i
PjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj41IGp1aW4g
MjAxNSAxMjowMzxicj4NCjxiPlRvOjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNw
YWNlIj4mbmJzcDs8L3NwYW4+TWljaGVsIFZlaWxsZXR0ZTxicj4NCjxiPkNjOjwvYj48c3BhbiBj
bGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+QW5keSBCaWVybWFuOzxz
cGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJt
YWlsdG86NnRpc2NoQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9y
OnB1cnBsZSI+NnRpc2NoQGlldGYub3JnPC9zcGFuPjwvYT47PHNwYW4gY2xhc3M9ImFwcGxlLWNv
bnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxhIGhyZWY9Im1haWx0bzpjb3JlQGlldGYub3Jn
IiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBsZSI+Y29yZUBpZXRmLm9y
Zzwvc3Bhbj48L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZl
cnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPlJlOiBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhp
IE1pY2hlbCw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGJsb2NrcXVv
dGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5MZSA1IGp1aW4gMjAxNSDDoCAxNzox
NywgTWljaGVsIFZlaWxsZXR0ZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOk1pY2hlbC5WZWlsbGV0dGVA
dHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjpwdXJw
bGUiPk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+Jmd0OyBhIMOp
Y3JpdCA6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWYiPkhpIEFsZXhhbmRlcjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj5JbiB5b3VyIHByZXNlbnRhdGlvbiBhdCA2VGlTQ0gsIHlvdSBw
cm9wb3NlIHRoZSBmb2xsb3dpbmcgZGF0YSBub2RlIElEIHN0cnVjdHVyZS48L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFs
VGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBzdHlsZT0i
Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCB3aWR0aD0iNjIz
IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQ2Ny41cHQ7Ym9yZGVyOnNvbGlkIHdpbmRvd3Rl
eHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0Oi41aW4iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5z
LXNlcmlmIj7igKI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+
MzIgYml0cyBZQU5HIElEPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6MS4waW4iPg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj7igJM8L3NwYW4+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9zcGFu
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZiI+MjAgYml0cyBmb3IgbW9kdWxlIElEIChhc3NpZ25lZCBieSBJRVRG
KTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5
bGU9Im1hcmdpbi1sZWZ0OjEuMGluIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwm
cXVvdDssc2Fucy1zZXJpZiI+4oCTPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQi
PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPjEwIGJpdHMgZm9yIGRhdGEgbm9kZSBJRCAoZ2VuZXJhdGVkIGRldGVybWluaXN0aWNhbGx5
KTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8
L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+QmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNh
biByZXNlcnZlJm5ic3A7bW9kdWxlIElEIHplcm8gZm9yIGFsaWFzZXMuPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxk
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+SSB3YXMganVzdCBzdW1tYXJpemluZyB3aGF0IHdhcyBkaXNjdXNzZWQg
b24gdGhlIGRpc2N1c3Npb24gaW4gQ29NSS4gQWN0dWFsbHksIGl0IGlzIDMwIGJpdHMgWUFORyBJ
RCwgYnV0IHRoYXTigJlzIGZvciBwdXJwb3NlcyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIFlB
TkcgaGFzaCBhbmQgSSBkb27igJl0IG1pbmQga2VlcGluZyBpdCAzMCBiaXRzLjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7
bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5JZiB3ZSB3YW50IHRvIG1pbmltaXplIGJv
dGggdGhlIG5ldHdvcmsgYW4gbm9kZSByZXNvdXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFzIG1l
Y2hhbmlzbSwgd2UgY2FuIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoaXMgc3BhY2UuPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5UaGlzIGNhbiBiZSBp
bXBsZW1lbnRlZCBieSBhIHNpbmdsZSBpbnRlZ2VyIHJlc291cmNlIChlLmcuIGxlYWYgYWxsaWFz
c2VkTW9kdWxlIHsgdHlwZSB1aW50MzIgfSApPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj5UaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRlcyBwZXIgQ29N
SSBzZXJ2ZXIgYWNjZXNzZWQuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SXQgaXMgcG9z
c2libGUgdG8gbWFwIGFuIGVudGlyZSBtb2R1bGUgdG8gdGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlz
IGlzIHVwIHRvIHRoZSBvcGVyYXRvci4gSG93ZXZlciwgaWYgeW91IGxvYWQgdHdvIG1vZHVsZXMg
d2hpY2ggcmVkZWZpbmUgdGhlIHNhbWUgYWxpYXMgeW91IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQg
ZnJvbSBpdC4gTWF5YmUgaXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gYmUgYWJsZSB0byBzcGVj
aWZ5DQogdGhhdCB5b3Ugd2FudCB0aGUgYWxpYXNlcyBmcm9tIFRISVMgc3BlY2lmaWMgbW9kdWxl
IHRvIGJlIHVzZWQuPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPklmIHRoZSAvbWcvMCBhbGlhcyBpcyByZXNlcnZlZCBmb3IgbWFuYWdpbmcg
dGhlIGFsaWFzZXMsIHRoaXMgY291bGQgYmUgc2ltcGx5IHNheWluZzo8bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPlBPU1QgL21nLzA8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPns8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZxdW90O3NvdXJjZV91cmkmcXVvdDsgOiAmcXVvdDsvbWcv
QkFBJnF1b3Q7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj59PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPndoZXJlIC9tZy9CQUEgaXMgdGhl
IFlBTkcgaWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBtb2R1bGUgSUQgJiM0MzsgMTAgYml0cyBz
ZXQgdG8gMCkuIFRoaXMgd2F5LCB0aGUgc2VydmVyIHdpbGwga25vdzogT0ssIGdldCB0aGUgYWxp
YXMgbWFwcGluZyBmcm9tIHRoZSBZQU5HIHNjaGVtZSBvZiBtb2R1bGUgd2l0aCBJRCA9IEIgKGFz
IGRlZmluZWQgYnkgdGhlIElFVEYpLiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5PciwgeW91IGNhbiBkeW5hbWljYWxseSBjb25m
aWd1cmUgdGhlIG1hcHBpbmc6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UE9TVCAv
bWcvMDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ezxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
Jm5ic3A7IFlBTkdfaWQgOiBhbGlhcyw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBZ
QU5HX2lkIDogYWxpYXMsPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgWUFOR19pZCA6
IGFsaWFzPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj59PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJn
aW4tYm90dG9tOjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHls
ZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPklmIHdl
IHdhbnQgYSBtb3JlIGNvbXBsZXggYnV0IG1vcmUgZmxleGlibGUgYWxpYXNlcyBtZWNoYW5pc20s
IHlvdXIgcHJvcG9zZWQgbWFwIG9mIChhbGxpYXMsIFlBTkcgSUQpIHNlZW0gdGhlIHNvbHV0aW9u
Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SG93ZXZl
ciwgd2UgaGF2ZSB0byBjb25zaWRlciB0aGF0IHRoaXMgc3RydWN0dXJlIGNhbiBiZSBhcyBsYXJn
ZSBhcyZuYnNwOzx1PjEyNTAgYnl0ZXMgcGVyIENvTUkgc2VydmVyIGFjY2Vzc2VkPC91PiZuYnNw
O2lmIGxpbWl0ZWQgdG8gMjU2IGFsaWFzZXMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PlRoaXMgaXMgYXNzdW1pbmcgeW91IG5lZWQgYSBzZXBhcmF0ZSBtYXBwaW5nIGZvciBlYWNoIHNl
cnZlci4gSSB3b3VsZCBzdXBwb3NlIHRoYXQgaW4gYSBuZXR3b3JrIHlvdeKAmWxsIGhhdmUgYSBz
aW5nbGUgYWxpYXMgbWFwcGluZyAobWF5YmUgdHdvPykgLSBhZnRlciBhbGwsIHlvdeKAmXJlIHRy
eWluZyB0byBvcHRpbWl6ZSB0aGUgbWFuYWdlbWVudCBvZiB5b3VyIGRldmljZXMgKHNlcnZlcnMp
LiBTbywgdHlwaWNhbGx5DQogeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxp
YXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRoYXQgb24gdGhlbSwgYW5k
IG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QmVzdCw8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFsZXhhbmRlcjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206
MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4t
dG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29O
b3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdp
ZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2Ui
Pg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIg
c3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRv
d3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
ZiI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0i
d2lkdGg6NDM0LjY1cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0
Ij4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5NaWNoZWwgVmVpbGxldHRlPGJyPg0KU3lzdGVt
IEFyY2hpdGVjdHVyZSBEaXJlY3Rvcjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250
LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5UcmlsbGlhbnQgSW5jLjxicj4N
ClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52
ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJj
b2xvcjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9h
Pjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5
bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj48YSBocmVmPSJodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20v
IiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOnB1cnBsZSI+d3d3LnRyaWxsaWFu
dGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L2Rpdj4NCjwvYmxv
Y2txdW90ZT4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_CO2PR0601MB792C118ECA44AD8FD152307FEBB0CO2PR0601MB792na_--

--_004_CO2PR0601MB792C118ECA44AD8FD152307FEBB0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Fri, 12 Jun 2015 21:10:12 GMT";
	modification-date="Fri, 12 Jun 2015 21:10:12 GMT"
Content-ID: <image001.jpg@01D0A52E.B721F900>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB792C118ECA44AD8FD152307FEBB0CO2PR0601MB792na_--


From nobody Fri Jun 12 14:42:39 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 292E01B2AFA; Fri, 12 Jun 2015 14:42:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r4GVh2fIYyVY; Fri, 12 Jun 2015 14:42:31 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id 9DEAA1B2AED; Fri, 12 Jun 2015 14:42:30 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 7F46B23268F; Fri, 12 Jun 2015 23:42:29 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id dY6z2EEtjFYB; Fri, 12 Jun 2015 23:42:27 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 1E8A023269F; Fri, 12 Jun 2015 23:42:27 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id R5Ewsxxz0hBV; Fri, 12 Jun 2015 23:42:26 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id 2BAD523268F; Fri, 12 Jun 2015 23:42:26 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_4744D6AA-F5AC-469E-B60E-B23EE265231D"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CO2PR0601MB792C118ECA44AD8FD152307FEBB0@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Fri, 12 Jun 2015 23:42:25 +0200
Message-Id: <43EF5C59-CF72-440B-8BC0-931D8F6EB40A@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu> <CO2PR0601MB792C118ECA44AD8FD152307FEBB0@CO2PR0601MB792.namprd06.prod.outlook.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/-_qHm7GS4upqdkZ4D615tOBRSv4>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 21:42:37 -0000

--Apple-Mail=_4744D6AA-F5AC-469E-B60E-B23EE265231D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Michel,


> Le 12 juin 2015 =C3=A0 23:10, Michel Veillette =
<Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>=20
> I Alexander
> =20
> I don=E2=80=99t see any issues with your proposal of using module ID 0 =
as aliases.
> The only constrain is that aliases need to be at the start of the =
select for a GET and at the start of the payload for a PUT.

Yes, I suppose you should always start with aliases, but that doesn=E2=80=99=
t sound like a strong constraint to me, so it=E2=80=99s seems like the =
perfect solution.

> =20
> The last things we need to sort out, is the instance selector (keys) =
in the context of a select query parameter containing multiple data =
nodes.
> =20
> Let assume the following:
> =C2=B7         A CoMI client need to select 3 data nodes (Data node ID =
2049, 2 and 3)
> =C2=B7         For the first data node, three values need to be =
provided as keys (e.g. 1, "ipv4", "10.0.0.51 "), see =
draft-vanderstok-core-comi-06 page 22.
> =C2=B7         For the third data node, one integer value need to be =
provided as keys (e.g. 22).
> =20
> If we include these keys in the select query parameter encoded in =
CBOR, the result might look as follow:
> =20
> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[[20491,"ipv4","10.0.0.51",2], 2, [3,22]] )

Just a small typo (missed a coma after 2049, right?):
> REQ: GET example.com/mg?select <http://example.com/mg?select>( [[2049, =
1,"ipv4","10.0.0.51",2], 2, [3,22]] )

And yes, seems quite straightforward and reasonable to me. If I =
understand correctly, the format you use is the following:
The select parameter accepts a single integer (long form data ID) or an =
array. In the latter case, each element of the array may be either an =
integer (e.g. data ID), or an array in the form [data ID, key1, key2, =
=E2=80=A6, keyN]. The data ID may be absolute (e.g. long form), or =
relative to the module of the previous data ID.=20

This seems quite expressive, simple and compact. I wonder if we=E2=80=99re=
 missing something, as it really does seem to have quite a lot of nice =
characteristics.=20

Best,
Alexander


> =20
> In the current draft, the CoMI server need to support two encoding for =
each selector, CBOR encoding in the payload and text in the keys query =
parameter.
> With this proposal, both use cases are encoded using CBOR.
> =20
> What do you things?
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]=20
> Sent: 12 juin 2015 15:26
> To: Michel Veillette
> Cc: Pascal Thubert (pthubert); Andy Bierman; 6tisch@ietf.org; =
core@ietf.org
> Subject: Re: [6tisch] Reserve space for aliases
> =20
> Hi Michel,
> =20
> You=E2=80=99re right. As I mentioned in my previous mails, I=E2=80=99m =
pretty happy with the compression of IDs we=E2=80=99ve achieved until =
now, so aliases are not as a pressing issue.=20
> =20
> The thing is, if they can be implemented at (almost) zero cost, then =
some of the use-cases become quite interesting.
> =20
> You actually provide a very good case with the select option. I=E2=80=99=
ve not thought if it will present some other difficulties, but I =
actually think it facilitates the use of aliases (and I mention this =
only because it will help me also understand the semantics of your =
proposal of the select option).
> =20
> If I take the example you provide:
> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4] )=20
> =20
> The parameters 2,3,4 are actually relative to the module ID of the =
first one. So, if I try to generalize this (please correct me if I=E2=80=99=
m wrong), I would imagine something like:
> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4, 4097,2,3,4] )=20
> To resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, =
and module ID=3D2 and relative node IDs =3D1,2,3 and 4.
> =20
> This means, that specifying a GET example.com/mg?select =
<http://example.com/mg?select>(1) should resolve to module ID=3D0 and =
relative node ID=3D1. This requires absolutely no additional processing =
from the node.=20
> =20
> So, this leaves us back to the initial idea of the aliases. All short =
node IDs are relative to a module ID (so that the long form ID can be =
interpreted). Module ID=3D0 is reserved, and can be used for aliasing if =
the device wishes to support it.=20
> =20
> Does this break some of the things along the way?=20
> =20
> Best,
> Alex
> =20
> =20
> =20
> Le 12 juin 2015 =C3=A0 18:57, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander, hi Pascal
> =20
> I want to emphases the following points
> =20
> =C2=B7         The use of the select query parameter encoded in CBOR =
support of 63 modules with optimized message size instead of only 3 for =
the base64 URI.
> If the 6TiSCH module ID is allocated within these 63 IDs, there will =
be no message size optimization provided by the aliases mechanism.
> This make the introduction of aliases less urgent.
> =20
> =C2=B7         The message size of the select query parameter encoded =
in CBOR should be equal or smaller compared to the base64 URI.
> However, the select query parameter encoded in CBOR support a wider =
range of values without size penalty (16 bits instead of 12, 32 bits =
instead of 30)
> Furthermore, CoMI devices won=E2=80=99t have to support two type of =
encoding depending if IDs are part of the command vs. payload.
> =20
> For example:
> =20
> Assuming module ID 2
> Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)
> Assuming =E2=80=9C,=E2=80=9D separator to select multiple data nodes
> =20
> Base64 approach:
> REQ: GET example.com/mg/gB <http://example.com/mg/gB>         (3 =
bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =E2=80=9CgB=E2=80=9D=
)
> =20
> CBOR approach:
> REQ: GET example.com/mg?select <http://example.com/mg?select>(2049)    =
     (4 bytes; one byte for the CoAP option, 3 for 2049 encoded using =
CBOR)
> =20
> Base64 approach:
> REQ: GET example.com/mg/gB,C,D,E <http://example.com/mg/gB,C,D,E>      =
   (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 bytes for =
=E2=80=9CgB,C,D,E=E2=80=9D)
> =20
> CBOR approach:
> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4] )      (8 bytes; 1 byte for the CoAP option, 1 for the CBOR =
array, 3+1+1+1 bytes for the IDs)
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 11 juin 2015 17:06
> To: Pascal Thubert (pthubert)
> Cc: Andy Bierman; Michel Veillette; 6tisch@ietf.org =
<mailto:6tisch@ietf.org>; core@ietf.org <mailto:core@ietf.org>
> Subject: Re: [6tisch] Reserve space for aliases
> =20
> Hi Pascal,
> =20
> Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) =
<pthubert@cisco.com <mailto:pthubert@cisco.com>> a =C3=A9crit :
> =20
> Dear all:
> =20
> This looks like the problem of local namespaces,  which is the reason =
why MPLS switches labels.
> The user may access a limited set of resources from a number of =
servers, and servers are read by many users.
> You cannot ensure that you have a single alias space that satisfies =
them all.
> =20
> Great analogy! And yes, sadly you cannot satisfy them all, at least =
not with all devices.
>=20
>=20
>=20
> =20
> So ,what if the user had its own set of aliases and the server also =
had its own set of aliases?
> =20
> The aliases could be mapped in a table like a uSAP and a pSAP are =
mapped across layers. Broadly:
> - First time a user requests a resource in a server, it comes with a =
tuple (userid, useralias, fullname)
> - The server responds with (serverid, serveralias, userid, user =
alias).
> =20
> Actually, I think that this could be worked out in CoMI also. Instead =
of fullname you could provide the YANG id (module ID + data node ID) and =
do the mapping. User alias would be the special aliased YANG id. User =
ID, however, could be a little bit more tricky - how do we ensure that =
it is consistent? Use the IP address of the client could be doable, but =
we=E2=80=99ll have to include the UDP port just in case someone runs two =
clients on the same machine.
> =20
>=20
>=20
>=20
> =20
> After that,  if the server is a constrained device then the user talks =
to the server with (serverid, serveralias) and the user maintains a =
switching table for the resource it uses on various servers.
> If the user is the constrained device and the server is not, the user =
could talk with (userid, useralias) and the server maintains a switching =
table.
> =20
> For large servers, the server may allocate aliases dynamically based =
on what it is being asked. We=E2=80=99d then need to talk about alias =
update or revocation, probably in terms of session and lifetime.
> =20
> Does that look usable?
> =20
> You are pointing out an interesting question. I would think (but maybe =
I=E2=80=99m mistaken), that the client should have the leading role in =
figuring out what=E2=80=99s happening. The idea is the following:
> =20
> The client checks if the server supports aliasing, with the possible =
options:
> S1) no aliasing
> S2) static/server-defined aliasing
> S3) dynamic/single alias mapping=20
>   S3.1) mapping already defined
>   S3.2) no mapping defined
> S4) dynamic/per client alias mapping
> =20
> Then, the client can take action, depending on its own capabilities =
and the response of the server. E.g. a unconstrained client could obtain =
the alias mapping if it is static (or if there is a single alias mapping =
in place) and cache it locally. So, there will be the following =
correspondence :
> =20
> Given:
> C1) constrained client
> C2) unconstrained client
> =20
> We have:
> C1 + S1) no aliasing, nothing to do
> C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. =
otherwise, ignore
> C1 + S3.2) and C1 + S4) define alias mapping
> =20
> C2 + S1) no aliasing, nothing to do
> C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. =
otherwise, learn it
> C2 + S3.2) and C2 + S4) define alias mapping
> =20
> I would say that the analogy you made with MPLS corresponds quite a =
lot to the C2+S4 case. Personally, I would be most interested into =
having one client configure one alias mapping to all servers in the =
network (e.g. the managing entity), which will profit most from saving =
several bytes on each message exchange. Everyone else could use the =
standard IDs, which we=E2=80=99ve already managed to shrink =
significantly.
> =20
> Indeed, with structured module ID + data node ID (20 bits + 10 bits), =
YANG URI compression, and long form/short form, we=E2=80=99ll have quite =
a lot of gain. Reserving module ID =3D 1 for aliases and maybe writing a =
short draft on how the aliasing is implemented seems feasible, where we =
can cover the exact mechanism of alias definition, and client/server =
interaction.
> =20
> Alexander
> =20
> =20
> Pascal
> =20
> From: 6tisch [mailto:6tisch-bounces@ietf.org =
<mailto:6tisch-bounces@ietf.org>] On Behalf Of Andy Bierman
> Sent: vendredi 5 juin 2015 20:55
> To: Michel Veillette
> Cc: 6tisch@ietf.org <mailto:6tisch@ietf.org>; Alexander Pelov; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: [6tisch] Reserve space for aliases
> =20
> =20
> =20
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
> Hi Alexander
> =20
> I have some concerns about allowing CoMI client(s) the control of the =
list of aliases.
> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
> =20
> One possible solution is that each CoMI client send a list of (alias, =
data node ID) to the CoMI server. In this case, the CoMI client might =
receive an error if one or multiple of these aliases are already =
reserved.
> =20
> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
> =20
> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
> With this is mind, do you have any alternative solutions to propose?
> =20
> =20
> =20
> Does this approach allow each client to have a different set of =
aliases,
> so the server has to maintain a configured mapping for each client?
> This seems like a lot of overhead and NV-storage requirements
> on the server.
> =20
> Changing the schema identifiers based on which client is
> sending the request seems like a complicated design change
> from RESTCONF, NETCONF, or SNMP, where there is only
> 1 schema tree which is not dependent on the client identity.
> =20
> =20
> Andy
> =20
> =20
> =20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
> =20
> =20
> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
> Sent: 5 juin 2015 12:03
> To: Michel Veillette
> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
> Subject: Re: Reserve space for aliases
> =20
> Hi Michel,
> =20
> =20
> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
> =20
> Hi Alexander
> =20
> In your presentation at 6TiSCH, you propose the following data node ID =
structure.
> =20
> =E2=80=A2       32 bits YANG ID
> =E2=80=93      20 bits for module ID (assigned by IETF)
> =E2=80=93      10 bits for data node ID (generated deterministically)
> =20
> Based on this structure, we can reserve module ID zero for aliases.
> =20
> =20
> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
> =20
> =20
>=20
> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
> This approach require 4 bytes per CoMI server accessed.
> =20
> =20
> It is possible to map an entire module to the alias space and this is =
up to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
> =20
> If the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:
> POST /mg/0
> {
>  "source_uri" : "/mg/BAA"
> }
> =20
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
> =20
> Or, you can dynamically configure the mapping:
> POST /mg/0
> {
>   YANG_id : alias,
>   YANG_id : alias,
>   YANG_id : alias
> }
> =20
>=20
> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
> =20
> This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
> =20
> Best,
> Alexander
> =20
>=20
> =20
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
> www.trilliantinc.com <http://www.trilliantinc.com/>

--Apple-Mail=_4744D6AA-F5AC-469E-B60E-B23EE265231D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Michel,</div><div class=3D""><br =
class=3D""></div><br class=3D""><div><blockquote type=3D"cite" =
class=3D""><div class=3D"">Le 12 juin 2015 =C3=A0 23:10, Michel =
Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit =
:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">I Alexander<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">I don=E2=80=99t see any =
issues with your proposal of using module ID 0 as aliases.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The only constrain is that aliases need to =
be at the start of the select for a GET and at the start of the payload =
for a PUT.</span></div></div></div></blockquote><div><br =
class=3D""></div><div>Yes, I suppose you should always start with =
aliases, but that doesn=E2=80=99t sound like a strong constraint to me, =
so it=E2=80=99s seems like the perfect solution.</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The last things we need to sort out, is =
the instance selector (keys) in the context of a select query parameter =
containing multiple data nodes.<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Let assume the following:<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif; =
text-indent: -0.25in;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Symbol; color: rgb(31, 73, 125);" class=3D""><span =
class=3D"">=C2=B7<span style=3D"font-style: normal; font-variant: =
normal; font-weight: normal; font-size: 7pt; line-height: normal; =
font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">A CoMI client need to select 3 data nodes =
(Data node ID 2049, 2 and 3)<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 12pt; font-family: =
'Times New Roman', serif; text-indent: -0.25in;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Symbol; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"">=C2=B7<span style=3D"font-style: normal; =
font-variant: normal; font-weight: normal; font-size: 7pt; line-height: =
normal; font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">For the first data node, three values need =
to be provided as keys (e.g. 1,</span><span =
class=3D"Apple-converted-space">&nbsp;</span><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">"ipv4",</span><span =
class=3D"Apple-converted-space">&nbsp;</span><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">"10.0.0.51</span><span =
class=3D"Apple-converted-space">&nbsp;</span><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">"), see draft-vanderstok-core-comi-06 page 22.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 12pt; font-family: 'Times New Roman', serif; =
text-indent: -0.25in;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Symbol; color: rgb(31, 73, 125);" class=3D""><span =
class=3D"">=C2=B7<span style=3D"font-style: normal; font-variant: =
normal; font-weight: normal; font-size: 7pt; line-height: normal; =
font-family: 'Times New Roman';" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">For the third data node, one integer value =
need to be provided as keys (e.g. 22).<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">If we include these =
keys in the select query parameter encoded in CBOR, the result might =
look as follow:<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">REQ: GET<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" class=3D"">example.com/mg?select</a>( =
[[20491,"ipv4","10.0.0.51",2], 2, [3,22]] =
)</span></div></div></div></blockquote><div><br class=3D""></div><div>Just=
 a small typo (missed a coma after 2049, right?):</div><div><blockquote =
type=3D"cite" class=3D""><div class=3D"WordSection1" style=3D"page: =
WordSection1;"><div class=3D"" style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;"><span class=3D"" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" =
class=3D"" style=3D"color: purple;">example.com/mg?select</a>( [[2049, =
1,"ipv4","10.0.0.51",2], 2, [3,22]] )</span></div></div></blockquote><br =
class=3D""></div><div>And yes, seems quite straightforward and =
reasonable to me. If I understand correctly, the format you use is the =
following:</div><div>The select parameter accepts a single integer (long =
form data ID) or an array. In the latter case, each element of the array =
may be either an integer (e.g. data ID), or an array in the form [data =
ID, key1, key2, =E2=80=A6, keyN]. The data ID may be absolute (e.g. long =
form), or relative to the module of the previous data =
ID.&nbsp;</div><div><br class=3D""></div><div>This seems quite =
expressive, simple and compact. I wonder if we=E2=80=99re missing =
something, as it really does seem to have quite a lot of nice =
characteristics.&nbsp;</div><div><br =
class=3D""></div><div>Best,</div><div>Alexander</div><div><br =
class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div class=3D"WordSection1" style=3D"page: WordSection1; =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: auto; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: auto; word-spacing: =
0px; -webkit-text-stroke-width: 0px;"><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">In the current draft, =
the CoMI server need to support two encoding for each selector, CBOR =
encoding in the payload and text in the keys query parameter.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">With this proposal, both use cases are =
encoded using CBOR.<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">What do you things?<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div class=3D""><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><span =
id=3D"cid:image001.jpg@01D0A52E.B721F900">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></span></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt 8.1pt; font-size: =
12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt =
8.1pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D""><a =
href=3D"http://www.trilliantinc.com/" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif;" =
class=3D"">www.trilliantinc.com</span></a></span><span style=3D"font-size:=
 9pt; font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div></td></tr></tbody></table><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
class=3D""><div style=3D"border-style: solid none none; =
border-top-color: rgb(225, 225, 225); border-top-width: 1pt; padding: =
3pt 0in 0in;" class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">From:</span></b><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>Alexander =
Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"Apple-converted-space">&nbsp;</span>12 =
juin 2015 15:26<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Pascal Thubert (pthubert); =
Andy Bierman; <a href=3D"mailto:6tisch@ietf.org" =
class=3D"">6tisch@ietf.org</a>; <a href=3D"mailto:core@ietf.org" =
class=3D"">core@ietf.org</a><br class=3D""><b class=3D"">Subject:</b><span=
 class=3D"Apple-converted-space">&nbsp;</span>Re: [6tisch] Reserve space =
for aliases<o:p class=3D""></o:p></span></div></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Hi Michel,<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">You=E2=80=99re right. As I mentioned in =
my previous mails, I=E2=80=99m pretty happy with the compression of IDs =
we=E2=80=99ve achieved until now, so aliases are not as a pressing =
issue.&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">The thing is, if they can be implemented at (almost) =
zero cost, then some of the use-cases become quite interesting.<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">You actually provide a very good case =
with the select option. I=E2=80=99ve not thought if it will present some =
other difficulties, but I actually think it facilitates the use of =
aliases (and I mention this only because it will help me also understand =
the semantics of your proposal of the select option).<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">If I take the example you provide:<o:p =
class=3D""></o:p></div></div><div class=3D""><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">REQ: GET&nbsp;<a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4] =
)&nbsp;</span><o:p class=3D""></o:p></div></div></blockquote><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">The parameters 2,3,4 are actually relative to the =
module ID of the first one. So, if I try to generalize this (please =
correct me if I=E2=80=99m wrong), I would imagine something like:<o:p =
class=3D""></o:p></div></div><div class=3D""><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">REQ: GET&nbsp;<a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4, 4097,2,3,4] =
)&nbsp;</span><o:p class=3D""></o:p></div></div></blockquote><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">To resolve to getting module ID=3D1, =
relative node IDs=3D1,2,3 and 4, and module ID=3D2 and relative node IDs =
=3D1,2,3 and 4.<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">This means, that specifying a GET<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" class=3D"">example.com/mg?select</a>(1) =
should resolve to module ID=3D0 and relative node ID=3D1. This requires =
absolutely no additional processing from the node.&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">So, this leaves us back to the initial =
idea of the aliases. All short node IDs are relative to a module ID (so =
that the long form ID can be interpreted). Module ID=3D0 is reserved, =
and can be used for aliasing if the device wishes to support =
it.&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Does this break some of the things along the =
way?&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">Best,<o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Alex<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div class=3D""><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">Le 12 juin 2015 =C3=A0 =
18:57, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></div></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">Hi =
Alexander, hi Pascal</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">I want to emphases the =
following points</span><o:p class=3D""></o:p></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif; text-indent: -0.25in;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Symbol; color: =
rgb(31, 73, 125);" class=3D"">=C2=B7</span><span style=3D"font-size: =
7pt; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The use of the select query parameter =
encoded in CBOR support of 63 modules with optimized message size =
instead of only 3 for the base64 URI.</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">If the 6TiSCH module ID is allocated =
within these 63 IDs, there will be no message size optimization provided =
by the aliases mechanism.</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">This make the =
introduction of aliases less urgent.</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif; text-indent: -0.25in;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Symbol; color: =
rgb(31, 73, 125);" class=3D"">=C2=B7</span><span style=3D"font-size: =
7pt; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The message size of the select query =
parameter encoded in CBOR should be equal or smaller compared to the =
base64 URI.</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">However, the select =
query parameter encoded in CBOR support a wider range of values without =
size penalty (16 bits instead of 12, 32 bits instead of 30)</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Furthermore, CoMI devices won=E2=80=99t =
have to support two type of encoding depending if IDs are part of the =
command vs. payload.</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">For example:</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Assuming module ID 2</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Assuming data node ID 1, 2, 3, 4 (long =
form 2049, 2050, 2051)</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Assuming =E2=80=9C,=E2=80=
=9D separator to select multiple data nodes</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Base64 approach:</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/gB" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg/gB</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; (3 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =
=E2=80=9CgB=E2=80=9D)</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">CBOR approach:</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg?select</span></a>(2049)&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp; (4 bytes; one byte for the CoAP option, 3 for =
2049 encoded using CBOR)</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 0.5in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Base64 approach:</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg/gB,C,D,E" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg/gB,C,D,E</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 =
bytes for =E2=80=9CgB,C,D,E=E2=80=9D)</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">CBOR approach:</span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 0.5in;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">REQ: GET<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"http://example.com/mg?select" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4] =
)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8 bytes; 1 byte for the CoAP option, 1 =
for the CBOR array, 3+1+1+1 bytes for the IDs)</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><table =
class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width: 537.75pt; border-collapse: =
collapse;"><tbody class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td=
 width=3D"137" style=3D"width: 103.1pt; border-style: none solid none =
none; border-right-color: windowtext; border-right-width: 1pt; padding: =
0in 5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Trilliant Inc.<br =
class=3D"">Tel: 450-375-0556 ext. 237<br class=3D""><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></div></td></tr></tbody></table><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(225, 225, 225); border-top-width: =
1pt; padding: 3pt 0in 0in;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><b class=3D""><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">From:</span></b><span class=3D"apple-converted-space"><span =
lang=3D"EN-US" style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span></span><span lang=3D"EN-US" =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Alexander Pelov [<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>11 =
juin 2015 17:06<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Pascal Thubert =
(pthubert)<br class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman; Michel =
Veillette;<span class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">6tisch@ietf.org</a>;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">core@ietf.org</a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: [6tisch] Reserve space =
for aliases</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Hi Pascal,<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) =
&lt;<a href=3D"mailto:pthubert@cisco.com" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">pthubert@cisco.com</span></a>&gt; a =C3=A9crit :<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">Dear all:</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">This looks like the problem of local =
namespaces,&nbsp; which is the reason why MPLS switches =
labels.</span><o:p class=3D""></o:p></div></div></div><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">The user may access a limited set of =
resources from a number of servers, and servers are read by many =
users.</span><o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">You cannot ensure that you have a single =
alias space that satisfies them all.</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Great analogy! And yes, sadly you cannot =
satisfy them all, at least not with all devices.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><br class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div></div><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">So =
,what if the user had its own set of aliases and the server also had its =
own set of aliases?</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">The=
 aliases could be mapped in a table like a uSAP and a pSAP are mapped =
across layers. Broadly:</span><o:p class=3D""></o:p></div></div></div><div=
 class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">- First time a user requests a resource in =
a server, it comes with a tuple (userid, useralias, fullname)</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">- =
The server responds with (serverid, serveralias, userid, user =
alias).</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Actually, I think that this could be =
worked out in CoMI also. Instead of fullname you could provide the YANG =
id (module ID + data node ID) and do the mapping. User alias would be =
the special aliased YANG id. User ID, however, could be a little bit =
more tricky - how do we ensure that it is consistent? Use the IP address =
of the client could be doable, but we=E2=80=99ll have to include the UDP =
port just in case someone runs two clients on the same machine.<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><br class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div></div><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">After that,&nbsp; if the server is a constrained device then =
the user talks to the server with (serverid, serveralias) and the user =
maintains a switching table for the resource it uses on various =
servers.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">If the user is the constrained device and =
the server is not, the user could talk with (userid, useralias) and the =
server maintains a switching table.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">For large servers, the server may allocate =
aliases dynamically based on what it is being asked. We=E2=80=99d then =
need to talk about alias update or revocation, probably in terms of =
session and lifetime.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Does that look usable?</span><o:p =
class=3D""></o:p></div></div></div></div></blockquote><div class=3D""><div=
 class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">You are pointing out an interesting =
question. I would think (but maybe I=E2=80=99m mistaken), that the =
client should have the leading role in figuring out what=E2=80=99s =
happening. The idea is the following:<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">The client checks if the server supports =
aliasing, with the possible options:<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">S1) no aliasing<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">S2) static/server-defined aliasing<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">S3) dynamic/single alias =
mapping&nbsp;<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp; S3.1) mapping =
already defined<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">&nbsp;=
 S3.2) no mapping defined<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">S4) =
dynamic/per client alias mapping<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Then, the client can take action, =
depending on its own capabilities and the response of the server. E.g. a =
unconstrained client could obtain the alias mapping if it is static (or =
if there is a single alias mapping in place) and cache it locally. So, =
there will be the following correspondence :<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Given:<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">C1) constrained client<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">C2) unconstrained client<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">We have:<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">C1 + S1) no aliasing, nothing to do<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">C1 + S2) and C1 + S3.1) if the alias =
mapping is known, use it. otherwise, ignore<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">C1 + S3.2) and C1 + S4) define alias =
mapping<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">C2 + S1) no aliasing, =
nothing to do<o:p class=3D""></o:p></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">C2 + =
S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise, =
learn it<o:p class=3D""></o:p></div></div></div></div><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">C2 + =
S3.2) and C2 + S4) define alias mapping<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">I would say that the analogy you made =
with MPLS corresponds quite a lot to the C2+S4 case. Personally, I would =
be most interested into having one client configure one alias mapping to =
all servers in the network (e.g. the managing entity), which will profit =
most from saving several bytes on each message exchange. Everyone else =
could use the standard IDs, which we=E2=80=99ve already managed to =
shrink significantly.<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Indeed, with structured module ID + data node ID (20 bits + =
10 bits), YANG URI compression, and long form/short form, we=E2=80=99ll =
have quite a lot of gain. Reserving module ID =3D 1 for aliases and =
maybe writing a short draft on how the aliasing is implemented seems =
feasible, where we can cover the exact mechanism of alias definition, =
and client/server interaction.<o:p class=3D""></o:p></div></div></div><div=
 class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Alexander<o:p =
class=3D""></o:p></div></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Pascal</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div style=3D"border-style: none none =
none solid; border-left-color: blue; border-left-width: 1.5pt; padding: =
0in 0in 0in 4pt;" class=3D""><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(181, 196, 223); border-top-width: =
1pt; padding: 3pt 0in 0in;" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><b class=3D""><span =
style=3D"font-size: 10pt; font-family: Tahoma, sans-serif;" =
class=3D"">From:</span></b><span class=3D"apple-converted-space"><span =
style=3D"font-size: 10pt; font-family: Tahoma, sans-serif;" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 10pt; =
font-family: Tahoma, sans-serif;" class=3D"">6tisch [<a =
href=3D"mailto:6tisch-bounces@ietf.org" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">mailto:6tisch-bounces@ietf.org</span></a>]<span =
class=3D"apple-converted-space">&nbsp;</span><b class=3D"">On Behalf =
Of<span class=3D"apple-converted-space">&nbsp;</span></b>Andy Bierman<br =
class=3D""><b class=3D"">Sent:</b><span =
class=3D"apple-converted-space">&nbsp;</span>vendredi 5 juin 2015 =
20:55<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">6tisch@ietf.org</span></a>; Alexander Pelov;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: [6tisch] Reserve space =
for aliases</span><o:p class=3D""></o:p></div></div></div></div></div><div=
 class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; wrote:<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Alexander</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">I have some concerns about allowing CoMI =
client(s) the control of the list of aliases.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">This approach work fine for the first CoMI application (e.g. =
6TiSCH) but what do we do with the subsequent CoMI =
application?</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">One=
 possible solution is that each CoMI client send a list of (alias, data =
node ID) to the CoMI server. In this case, the CoMI client might receive =
an error if one or multiple of these aliases are already =
reserved.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">A =
second possible solution is that each CoMI client send a list of (data =
node ID) and get a list of (alias, data node ID) from the CoMI server. =
In this case, CoMI clients will have to deal with a mix population of =
aliases.</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D"">The=
 proposed solution need to scale to a multi-vendors, multiple =
applications environment.</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">With this is mind, do you have any alternative solutions to =
propose?</span><o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Does this approach allow each client to have a different set =
of aliases,<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">so the server has to maintain a configured mapping for each =
client?<o:p class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">This =
seems like a lot of overhead and NV-storage requirements<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">on =
the server.<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Changing the schema identifiers based on which client is<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">sending the request seems like a complicated design =
change<o:p class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">from =
RESTCONF, NETCONF, or SNMP, where there is only<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">1 =
schema tree which is not dependent on the client identity.<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Andy<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><blockquote=
 style=3D"border-style: none none none solid; border-left-color: =
rgb(204, 204, 204); border-left-width: 1pt; padding: 0in 0in 0in 6pt; =
margin: 5pt 0in 5pt 4.8pt;" class=3D""><div class=3D""><div =
class=3D""><div class=3D""><table class=3D"MsoNormalTable" border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=3D"width: =
537.75pt; border-collapse: collapse;"><tbody class=3D""><tr =
style=3D"height: 49.05pt;" class=3D""><td width=3D"137" style=3D"width: =
103.1pt; border-style: none solid none none; border-right-color: =
windowtext; border-right-width: 1pt; padding: 0in 5.4pt; height: =
49.05pt;" class=3D""><div class=3D""><div class=3D""><div style=3D"margin:=
 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width: 434.65pt; padding: 0in 5.4pt; height: 49.05pt;" =
class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif; color: rgb(31, =
73, 125);" class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div></div><div style=3D"margin-left: 8.1pt;" =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D""><a href=3D"http://www.trilliantinc.com/" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span><span =
class=3D"apple-converted-space"><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></span><span style=3D"font-size: 9pt; =
font-family: Arial, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;<span =
class=3D"apple-converted-space">&nbsp;</span></span><o:p =
class=3D""></o:p></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div><div class=3D""><div =
style=3D"border-style: solid none none; border-top-color: rgb(225, 225, =
225); border-top-width: 1pt; padding: 3pt 0in 0in;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><b =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">From:</span></b><span =
class=3D"apple-converted-space"><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">&nbsp;</span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Alexander Pelov [mailto:<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" class=3D""><span =
style=3D"color: purple;" =
class=3D"">alexander.pelov@telecom-bretagne.eu</span></a>]<span =
class=3D"apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 =
juin 2015 12:03<br class=3D""><b class=3D"">To:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" target=3D"_blank" style=3D"color: =
purple; text-decoration: underline;" class=3D""><span style=3D"color: =
purple;" class=3D"">6tisch@ietf.org</span></a>;<span =
class=3D"apple-converted-space">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" target=3D"_blank" style=3D"color: purple; =
text-decoration: underline;" class=3D""><span style=3D"color: purple;" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span =
class=3D"apple-converted-space">&nbsp;</span>Re: Reserve space for =
aliases</span><o:p class=3D""></o:p></div></div></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Hi Michel,<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div><div =
class=3D""><blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;" =
class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D"">Le 5 juin 2015 =C3=A0 17:17, Michel =
Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: purple;" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; a =C3=A9crit =
:<o:p class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D"">&nbsp;<o:p =
class=3D""></o:p></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Hi=
 Alexander</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">In=
 your presentation at 6TiSCH, you propose the following data node ID =
structure.</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><table class=3D"MsoNormalTable" =
border=3D"0" cellspacing=3D"0" cellpadding=3D"0" style=3D"border-collapse:=
 collapse;"><tbody class=3D""><tr class=3D""><td width=3D"623" =
valign=3D"top" style=3D"width: 467.5pt; border: 1pt solid windowtext; =
padding: 0in 5.4pt;" class=3D""><div style=3D"margin-left: 0.5in;" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=A2</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">32=
 bits YANG ID</span><o:p class=3D""></o:p></div></div></div></div><div =
style=3D"margin-left: 1in;" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Arial, sans-serif;" =
class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">20=
 bits for module ID (assigned by IETF)</span><o:p =
class=3D""></o:p></div></div></div></div><div style=3D"margin-left: =
1in;" class=3D""><div class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Arial, =
sans-serif;" class=3D"">=E2=80=93</span><span style=3D"font-size: 7pt;" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">10=
 bits for data node ID (generated deterministically)</span><o:p =
class=3D""></o:p></div></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Based on this structure, we can reserve&nbsp;module ID zero =
for aliases.</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">I was just summarizing what was discussed on the discussion =
in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=99s for =
purposes to be consistent with the YANG hash and I don=E2=80=99t mind =
keeping it 30 bits.<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;">&nbsp;<o:p =
class=3D""></o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">If=
 we want to minimize both the network an node resources require by this =
alias mechanism, we can map an entire module to this space.</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">This can be implemented by a single integer resource (e.g. =
leaf alliassedModule { type uint32 } )</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">This approach require 4 bytes per CoMI server =
accessed.</span><o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">It is possible to map an entire module to the alias space and =
this is up to the operator. However, if you load two modules which =
redefine the same alias you will loose the benefit from it. Maybe it =
would be interesting to be able to specify that you want the aliases =
from THIS specific module to be used.<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">If the /mg/0 alias is reserved for managing the aliases, this =
could be simply saying:<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">POST /mg/0<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">{<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;"source_uri" : "/mg/BAA"<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">}<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">where /mg/BAA is the YANG id of the module (20 bits module ID =
+ 10 bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Or, you can dynamically configure the mapping:<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">POST /mg/0<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">{<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; YANG_id : alias,<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">&nbsp;=
 YANG_id : alias,<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp; YANG_id : alias<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D"">}<o:p =
class=3D""></o:p></div></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin: 0in 0in 12pt; font-size: 12pt; font-family: 'Times New =
Roman', serif;">&nbsp;<o:p class=3D""></o:p></p><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><div =
class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D"">If we want a more complex =
but more flexible aliases mechanism, your proposed map of (allias, YANG =
ID) seem the solution.</span><o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">However, we have to consider that this structure can be as =
large as&nbsp;<u class=3D"">1250 bytes per CoMI server =
accessed</u>&nbsp;if limited to 256 aliases.</span><o:p =
class=3D""></o:p></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">This is assuming you need a separate mapping for each server. =
I would suppose that in a network you=E2=80=99ll have a single alias =
mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.&nbsp;<o:p =
class=3D""></o:p></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Best,<o:p class=3D""></o:p></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D"">Alexander<o:p class=3D""></o:p></div></div></div></div><p =
class=3D"MsoNormal" style=3D"margin: 0in 0in 12pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;">&nbsp;<o:p =
class=3D""></o:p></p><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;</span><o:p =
class=3D""></o:p></div></div></div></div><table class=3D"MsoNormalTable" =
border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" =
style=3D"width: 537.75pt; border-collapse: collapse;"><tbody =
class=3D""><tr style=3D"height: 49.05pt;" class=3D""><td width=3D"137" =
style=3D"width: 103.1pt; border-style: none solid none none; =
border-right-color: windowtext; border-right-width: 1pt; padding: 0in =
5.4pt; height: 49.05pt;" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&lt;image001.jpg&gt;</span><o:p =
class=3D""></o:p></div></div></div></div></td><td width=3D"580" =
valign=3D"top" style=3D"width: 434.65pt; padding: 0in 5.4pt; height: =
49.05pt;" class=3D""><div style=3D"margin-left: 8.1pt;" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><o:p class=3D""></o:p></div></div></div></div><div =
style=3D"margin-left: 8.1pt;" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span =
style=3D"font-size: 9pt; font-family: Arial, sans-serif;" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"color: rgb(5, 99, 193);" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><o:p =
class=3D""></o:p></div></div></div></div><div style=3D"margin-left: =
8.1pt;" class=3D""><div class=3D""><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif;" class=3D""><a href=3D"http://www.trilliantinc.com/" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D""><span style=3D"font-size: 9pt; font-family: Arial, =
sans-serif; color: purple;" =
class=3D"">www.trilliantinc.com</span></a></span></div></div></div></div><=
/td></tr></tbody></table></div></blockquote></div></div></div></blockquote=
></div></div></div></div></div></blockquote></div></div></blockquote></div=
></div></div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_4744D6AA-F5AC-469E-B60E-B23EE265231D--


From nobody Fri Jun 12 14:57:26 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 17BBA1B2B63 for <core@ietfa.amsl.com>; Fri, 12 Jun 2015 14:57:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level: 
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=unavailable
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vC9_HLlLP2UI for <core@ietfa.amsl.com>; Fri, 12 Jun 2015 14:57:18 -0700 (PDT)
Received: from mail-lb0-f176.google.com (mail-lb0-f176.google.com [209.85.217.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4CFFE1B2B5E for <core@ietf.org>; Fri, 12 Jun 2015 14:57:17 -0700 (PDT)
Received: by lbcmx3 with SMTP id mx3so26169388lbc.1 for <core@ietf.org>; Fri, 12 Jun 2015 14:57:15 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=XrPHi2plZAwGboKbkqr+Zj5PS+gW9q0vS09Xa1JkghQ=; b=jS5hZFUFLmmjfeE17rCs0DQxyIwFze1NWjd4jlNBQguFrao+D4NblnQPqkZA9THbJs pPVeiBCUv161TuP72kLBV+CUjkQE0jKe8l0W2mx0asSJQ5ZB9qi3FLbMRYIEogv2QCXX K97YAniFWy2gD4DW0/O9U2K5t7QDJIsuHG7Ip100IROqbjS9zrmHdWcMZ4Hk0LDsrYOY +5iuhg09wPT90VLBkkyCI/C+T8O4BZI/iS8z31h7ulEBO1yFUdBkxbA1TrcIKj14IrM+ uJr01ecEZNyjtiFIgydldIt8mDPb7XYVoCAi45c6NNE7RvoVW7BRYgPm5k7oJgEcTafe iYBg==
X-Gm-Message-State: ALoCoQnfDdoqwjyzxFgt+Wxg70bQQjjhz/b9qLgpu8wr33rizkdBuP2xCfskqwU7g6/sN1mDHlq7
MIME-Version: 1.0
X-Received: by 10.152.7.65 with SMTP id h1mr17057390laa.33.1434146234802; Fri, 12 Jun 2015 14:57:14 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Fri, 12 Jun 2015 14:57:14 -0700 (PDT)
In-Reply-To: <43EF5C59-CF72-440B-8BC0-931D8F6EB40A@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu> <CO2PR0601MB792C118ECA44AD8FD152307FEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <43EF5C59-CF72-440B-8BC0-931D8F6EB40A@telecom-bretagne.eu>
Date: Fri, 12 Jun 2015 14:57:14 -0700
Message-ID: <CABCOCHS2z-ps51JHp9cK7+oobHoPXAa-vu+hKMzMF8f31OboNw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Content-Type: multipart/alternative; boundary=001a11c27cf0e1b9f40518593042
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/r1KgGChrj-SSzJ_L5ruvanJAM_k>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 21:57:24 -0000

--001a11c27cf0e1b9f40518593042
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi,

Here is the "JSON for YANG" draft:
https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt

The long form (module-name:local-name) is only used
at the top of a sub-tree and where the module namespace changes
(due to an augment from another module).

The data is hierarchical and the parser is required to maintain
the current module scope. It should be possible to omit the module
identifier is nested data, except for nodes that start a new
module scope.

Is this what you have in mind?
For YANG Hash (that has no module identifier)
every nested node ID needs the full 30 bits,
but this is not required for managed IDs.


Andy





On Fri, Jun 12, 2015 at 2:42 PM, Alexander Pelov <
alexander.pelov@telecom-bretagne.eu> wrote:

> Michel,
>
>
> Le 12 juin 2015 =C3=A0 23:10, Michel Veillette <
> Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>
> I Alexander
>
> I don=E2=80=99t see any issues with your proposal of using module ID 0 as=
 aliases.
> The only constrain is that aliases need to be at the start of the select
> for a GET and at the start of the payload for a PUT.
>
>
> Yes, I suppose you should always start with aliases, but that doesn=E2=80=
=99t
> sound like a strong constraint to me, so it=E2=80=99s seems like the perf=
ect
> solution.
>
>
> The last things we need to sort out, is the instance selector (keys) in
> the context of a select query parameter containing multiple data nodes.
>
> Let assume the following:
> =C2=B7         A CoMI client need to select 3 data nodes (Data node ID 20=
49, 2
> and 3)
> =C2=B7         For the first data node, three values need to be provided =
as
> keys (e.g. 1, "ipv4", "10.0.0.51 "), see draft-vanderstok-core-comi-06
> page 22.
> =C2=B7         For the third data node, one integer value need to be prov=
ided
> as keys (e.g. 22).
>
> If we include these keys in the select query parameter encoded in CBOR,
> the result might look as follow:
>
> REQ: GET example.com/mg?select( [[20491,"ipv4","10.0.0.51",2], 2, [3,22]]
> )
>
>
> Just a small typo (missed a coma after 2049, right?):
>
> REQ: GET example.com/mg?select( [[2049, 1,"ipv4","10.0.0.51",2], 2,
> [3,22]] )
>
>
> And yes, seems quite straightforward and reasonable to me. If I understan=
d
> correctly, the format you use is the following:
> The select parameter accepts a single integer (long form data ID) or an
> array. In the latter case, each element of the array may be either an
> integer (e.g. data ID), or an array in the form [data ID, key1, key2, =E2=
=80=A6,
> keyN]. The data ID may be absolute (e.g. long form), or relative to the
> module of the previous data ID.
>
> This seems quite expressive, simple and compact. I wonder if we=E2=80=99r=
e missing
> something, as it really does seem to have quite a lot of nice
> characteristics.
>
> Best,
> Alexander
>
>
>
> In the current draft, the CoMI server need to support two encoding for
> each selector, CBOR encoding in the payload and text in the keys query
> parameter.
> With this proposal, both use cases are encoded using CBOR.
>
> What do you things?
>
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>
> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu
> <alexander.pelov@telecom-bretagne.eu>]
> *Sent:* 12 juin 2015 15:26
> *To:* Michel Veillette
> *Cc:* Pascal Thubert (pthubert); Andy Bierman; 6tisch@ietf.org;
> core@ietf.org
> *Subject:* Re: [6tisch] Reserve space for aliases
>
> Hi Michel,
>
> You=E2=80=99re right. As I mentioned in my previous mails, I=E2=80=99m pr=
etty happy with
> the compression of IDs we=E2=80=99ve achieved until now, so aliases are n=
ot as a
> pressing issue.
>
> The thing is, if they can be implemented at (almost) zero cost, then some
> of the use-cases become quite interesting.
>
> You actually provide a very good case with the select option. I=E2=80=99v=
e not
> thought if it will present some other difficulties, but I actually think =
it
> facilitates the use of aliases (and I mention this only because it will
> help me also understand the semantics of your proposal of the select
> option).
>
> If I take the example you provide:
>
> REQ: GET example.com/mg?select( [2049,2,3,4] )
>
>
> The parameters 2,3,4 are actually relative to the module ID of the first
> one. So, if I try to generalize this (please correct me if I=E2=80=99m wr=
ong), I
> would imagine something like:
>
> REQ: GET example.com/mg?select( [2049,2,3,4, 4097,2,3,4] )
>
> To resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, and
> module ID=3D2 and relative node IDs =3D1,2,3 and 4.
>
> This means, that specifying a GET example.com/mg?select(1) should resolve
> to module ID=3D0 and relative node ID=3D1. This requires absolutely no
> additional processing from the node.
>
> So, this leaves us back to the initial idea of the aliases. All short nod=
e
> IDs are relative to a module ID (so that the long form ID can be
> interpreted). Module ID=3D0 is reserved, and can be used for aliasing if =
the
> device wishes to support it.
>
> Does this break some of the things along the way?
>
> Best,
> Alex
>
>
>
>
> Le 12 juin 2015 =C3=A0 18:57, Michel Veillette <
> Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>
> Hi Alexander, hi Pascal
>
> I want to emphases the following points
>
> =C2=B7         The use of the select query parameter encoded in CBOR supp=
ort
> of 63 modules with optimized message size instead of only 3 for the base6=
4
> URI.
> If the 6TiSCH module ID is allocated within these 63 IDs, there will be n=
o
> message size optimization provided by the aliases mechanism.
> This make the introduction of aliases less urgent.
>
> =C2=B7         The message size of the select query parameter encoded in =
CBOR
> should be equal or smaller compared to the base64 URI.
> However, the select query parameter encoded in CBOR support a wider range
> of values without size penalty (16 bits instead of 12, 32 bits instead of
> 30)
> Furthermore, CoMI devices won=E2=80=99t have to support two type of encod=
ing
> depending if IDs are part of the command vs. payload.
>
> For example:
>
> Assuming module ID 2
> Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)
> Assuming =E2=80=9C,=E2=80=9D separator to select multiple data nodes
>
> Base64 approach:
> REQ: GET example.com/mg/gB         (3 bytes; 1 byte for the =E2=80=9C/=E2=
=80=9D, 2 bytes
> for =E2=80=9CgB=E2=80=9D)
>
> CBOR approach:
> REQ: GET example.com/mg?select(2049)         (4 bytes; one byte for the
> CoAP option, 3 for 2049 encoded using CBOR)
>
> Base64 approach:
> REQ: GET example.com/mg/gB,C,D,E         (9 bytes; 1 byte for the =E2=80=
=9C/=E2=80=9D, 8
> bytes for =E2=80=9CgB,C,D,E=E2=80=9D)
>
> CBOR approach:
> REQ: GET example.com/mg?select( [2049,2,3,4] )      (8 bytes; 1 byte for
> the CoAP option, 1 for the CBOR array, 3+1+1+1 bytes for the IDs)
>
>
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>
> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu
> <alexander.pelov@telecom-bretagne.eu>]
> *Sent:* 11 juin 2015 17:06
> *To:* Pascal Thubert (pthubert)
> *Cc:* Andy Bierman; Michel Veillette; 6tisch@ietf.org; core@ietf.org
> *Subject:* Re: [6tisch] Reserve space for aliases
>
> Hi Pascal,
>
>
> Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) <pthubert@cisco.c=
om> a
> =C3=A9crit :
>
> Dear all:
>
> This looks like the problem of local namespaces,  which is the reason why
> MPLS switches labels.
> The user may access a limited set of resources from a number of servers,
> and servers are read by many users.
> You cannot ensure that you have a single alias space that satisfies them
> all.
>
>
> Great analogy! And yes, sadly you cannot satisfy them all, at least not
> with all devices.
>
>
>
>
> So ,what if the user had its own set of aliases and the server also had
> its own set of aliases?
>
> The aliases could be mapped in a table like a uSAP and a pSAP are mapped
> across layers. Broadly:
> - First time a user requests a resource in a server, it comes with a tupl=
e
> (userid, useralias, fullname)
> - The server responds with (serverid, serveralias, userid, user alias).
>
>
> Actually, I think that this could be worked out in CoMI also. Instead of
> fullname you could provide the YANG id (module ID + data node ID) and do
> the mapping. User alias would be the special aliased YANG id. User ID,
> however, could be a little bit more tricky - how do we ensure that it is
> consistent? Use the IP address of the client could be doable, but we=E2=
=80=99ll
> have to include the UDP port just in case someone runs two clients on the
> same machine.
>
>
>
>
>
> After that,  if the server is a constrained device then the user talks to
> the server with (serverid, serveralias) and the user maintains a switchin=
g
> table for the resource it uses on various servers.
> If the user is the constrained device and the server is not, the user
> could talk with (userid, useralias) and the server maintains a switching
> table.
>
> For large servers, the server may allocate aliases dynamically based on
> what it is being asked. We=E2=80=99d then need to talk about alias update=
 or
> revocation, probably in terms of session and lifetime.
>
> Does that look usable?
>
>
> You are pointing out an interesting question. I would think (but maybe I=
=E2=80=99m
> mistaken), that the client should have the leading role in figuring out
> what=E2=80=99s happening. The idea is the following:
>
> The client checks if the server supports aliasing, with the possible
> options:
> S1) no aliasing
> S2) static/server-defined aliasing
> S3) dynamic/single alias mapping
>   S3.1) mapping already defined
>   S3.2) no mapping defined
> S4) dynamic/per client alias mapping
>
> Then, the client can take action, depending on its own capabilities and
> the response of the server. E.g. a unconstrained client could obtain the
> alias mapping if it is static (or if there is a single alias mapping in
> place) and cache it locally. So, there will be the following corresponden=
ce
> :
>
> Given:
> C1) constrained client
> C2) unconstrained client
>
> We have:
> C1 + S1) no aliasing, nothing to do
> C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise,
> ignore
> C1 + S3.2) and C1 + S4) define alias mapping
>
> C2 + S1) no aliasing, nothing to do
> C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise,
> learn it
> C2 + S3.2) and C2 + S4) define alias mapping
>
> I would say that the analogy you made with MPLS corresponds quite a lot t=
o
> the C2+S4 case. Personally, I would be most interested into having one
> client configure one alias mapping to all servers in the network (e.g. th=
e
> managing entity), which will profit most from saving several bytes on eac=
h
> message exchange. Everyone else could use the standard IDs, which we=E2=
=80=99ve
> already managed to shrink significantly.
>
> Indeed, with structured module ID + data node ID (20 bits + 10 bits), YAN=
G
> URI compression, and long form/short form, we=E2=80=99ll have quite a lot=
 of gain.
> Reserving module ID =3D 1 for aliases and maybe writing a short draft on =
how
> the aliasing is implemented seems feasible, where we can cover the exact
> mechanism of alias definition, and client/server interaction.
>
> Alexander
>
>
>
> Pascal
>
> *From:* 6tisch [mailto:6tisch-bounces@ietf.org <6tisch-bounces@ietf.org>]=
 *On
> Behalf Of *Andy Bierman
> *Sent:* vendredi 5 juin 2015 20:55
> *To:* Michel Veillette
> *Cc:* 6tisch@ietf.org; Alexander Pelov; core@ietf.org
> *Subject:* Re: [6tisch] Reserve space for aliases
>
>
>
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <
> Michel.Veillette@trilliantinc.com> wrote:
> Hi Alexander
>
> I have some concerns about allowing CoMI client(s) the control of the lis=
t
> of aliases.
> This approach work fine for the first CoMI application (e.g. 6TiSCH) but
> what do we do with the subsequent CoMI application?
>
> One possible solution is that each CoMI client send a list of (alias, dat=
a
> node ID) to the CoMI server. In this case, the CoMI client might receive =
an
> error if one or multiple of these aliases are already reserved.
>
> A second possible solution is that each CoMI client send a list of (data
> node ID) and get a list of (alias, data node ID) from the CoMI server. In
> this case, CoMI clients will have to deal with a mix population of aliase=
s.
>
> The proposed solution need to scale to a multi-vendors, multiple
> applications environment.
> With this is mind, do you have any alternative solutions to propose?
>
>
>
> Does this approach allow each client to have a different set of aliases,
> so the server has to maintain a configured mapping for each client?
> This seems like a lot of overhead and NV-storage requirements
> on the server.
>
> Changing the schema identifiers based on which client is
> sending the request seems like a complicated design change
> from RESTCONF, NETCONF, or SNMP, where there is only
> 1 schema tree which is not dependent on the client identity.
>
>
> Andy
>
>
>
>
>
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>
> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
> *Sent:* 5 juin 2015 12:03
> *To:* Michel Veillette
> *Cc:* Andy Bierman; 6tisch@ietf.org; core@ietf.org
> *Subject:* Re: Reserve space for aliases
>
> Hi Michel,
>
>
>
> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette <
> Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>
> Hi Alexander
>
> In your presentation at 6TiSCH, you propose the following data node ID
> structure.
>
> =E2=80=A2       32 bits YANG ID
> =E2=80=93      20 bits for module ID (assigned by IETF)
> =E2=80=93      10 bits for data node ID (generated deterministically)
>
> Based on this structure, we can reserve module ID zero for aliases.
>
>
>
> I was just summarizing what was discussed on the discussion in CoMI.
> Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be co=
nsistent
> with the YANG hash and I don=E2=80=99t mind keeping it 30 bits.
>
>
>
>
> If we want to minimize both the network an node resources require by this
> alias mechanism, we can map an entire module to this space.
> This can be implemented by a single integer resource (e.g. leaf
> alliassedModule { type uint32 } )
> This approach require 4 bytes per CoMI server accessed.
>
>
>
> It is possible to map an entire module to the alias space and this is up
> to the operator. However, if you load two modules which redefine the same
> alias you will loose the benefit from it. Maybe it would be interesting t=
o
> be able to specify that you want the aliases from THIS specific module to
> be used.
>
> If the /mg/0 alias is reserved for managing the aliases, this could be
> simply saying:
> POST /mg/0
> {
>  "source_uri" : "/mg/BAA"
> }
>
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits
> set to 0). This way, the server will know: OK, get the alias mapping from
> the YANG scheme of module with ID =3D B (as defined by the IETF).
>
> Or, you can dynamically configure the mapping:
> POST /mg/0
> {
>   YANG_id : alias,
>   YANG_id : alias,
>   YANG_id : alias
> }
>
>
>
> If we want a more complex but more flexible aliases mechanism, your
> proposed map of (allias, YANG ID) seem the solution.
> However, we have to consider that this structure can be as large as *1250
> bytes per CoMI server accessed* if limited to 256 aliases.
>
>
> This is assuming you need a separate mapping for each server. I would
> suppose that in a network you=E2=80=99ll have a single alias mapping (may=
be two?) -
> after all, you=E2=80=99re trying to optimize the management of your devic=
es
> (servers). So, typically you=E2=80=99d map all 6tisch devices with aliase=
s 1-10
> (channel, slot, etc.) and use that on them, and on all other you=E2=80=99=
d access
> the full ID.
>
> Best,
> Alexander
>
>
>
>
> <image001.jpg>
> Michel Veillette
> System Architecture Director
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
> www.trilliantinc.com
>
>
>

--001a11c27cf0e1b9f40518593042
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>Here is the &quot;JSON for YANG&quo=
t; draft:</div><div><a href=3D"https://www.ietf.org/id/draft-ietf-netmod-ya=
ng-json-04.txt">https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt<=
/a><br></div><div><br></div><div>The long form (module-name:local-name) is =
only used</div><div>at the top of a sub-tree and where the module namespace=
 changes</div><div>(due to an augment from another module).</div><div><br><=
/div><div>The data is hierarchical and the parser is required to maintain</=
div><div>the current module scope. It should be possible to omit the module=
</div><div>identifier is nested data, except for nodes that start a new</di=
v><div>module scope.</div><div><br></div><div>Is this what you have in mind=
?</div><div>For YANG Hash (that has no module identifier)</div><div>every n=
ested node ID needs the full 30 bits,</div><div>but this is not required fo=
r managed IDs.</div><div><br></div><div><br></div><div>Andy</div><div><br><=
/div><div><br></div><div><br></div><div><br></div></div><div class=3D"gmail=
_extra"><br><div class=3D"gmail_quote">On Fri, Jun 12, 2015 at 2:42 PM, Ale=
xander Pelov <span dir=3D"ltr">&lt;<a href=3D"mailto:alexander.pelov@teleco=
m-bretagne.eu" target=3D"_blank">alexander.pelov@telecom-bretagne.eu</a>&gt=
;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div style=3D"word-wrap:b=
reak-word"><div>Michel,</div><div><br></div><br><div><blockquote type=3D"ci=
te"><div>Le 12 juin 2015 =C3=A0 23:10, Michel Veillette &lt;<a href=3D"mail=
to:Michel.Veillette@trilliantinc.com" target=3D"_blank">Michel.Veillette@tr=
illiantinc.com</a>&gt; a =C3=A9crit :</div><br><div><div style=3D"font-fami=
ly:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weig=
ht:normal;letter-spacing:normal;line-height:normal;text-align:start;text-in=
dent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div styl=
e=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roma=
n&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;=
color:rgb(31,73,125)">I Alexander<u></u><u></u></span></div><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;=
,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:=
rgb(31,73,125)">=C2=A0</span></div><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"fo=
nt-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I don=E2=
=80=99t see any issues with your proposal of using module ID 0 as aliases.<=
u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:1=
1pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">The only constrain=
 is that aliases need to be at the start of the select for a GET and at the=
 start of the payload for a PUT.</span></div></div></div></blockquote><div>=
<br></div><div>Yes, I suppose you should always start with aliases, but tha=
t doesn=E2=80=99t sound like a strong constraint to me, so it=E2=80=99s see=
ms like the perfect solution.</div><br><blockquote type=3D"cite"><div><div =
style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varian=
t:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-a=
lign:start;text-indent:0px;text-transform:none;white-space:normal;word-spac=
ing:0px"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&=
#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:C=
alibri,sans-serif;color:rgb(31,73,125)"><u></u><u></u></span></div><div sty=
le=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Rom=
an&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
;color:rgb(31,73,125)">=C2=A0</span></div><div style=3D"margin:0in 0in 0.00=
01pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span styl=
e=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Th=
e last things we need to sort out, is the instance selector (keys) in the c=
ontext of a select query parameter containing multiple data nodes.<u></u><u=
></u></span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font=
-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font=
-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div><div st=
yle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Ro=
man&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-seri=
f;color:rgb(31,73,125)">Let assume the following:<u></u><u></u></span></div=
><div style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:&#3=
9;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Sym=
bol;color:rgb(31,73,125)"><span>=C2=B7<span style=3D"font-style:normal;font=
-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-fa=
mily:&#39;Times New Roman&#39;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0<span>=C2=A0</span></span></span></span><span style=3D"font-size:11pt=
;font-family:Calibri,sans-serif;color:rgb(31,73,125)">A CoMI client need to=
 select 3 data nodes (Data node ID 2049, 2 and 3)<u></u><u></u></span></div=
><div style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:&#3=
9;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Sym=
bol;color:rgb(31,73,125)"><span>=C2=B7<span style=3D"font-style:normal;font=
-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-fa=
mily:&#39;Times New Roman&#39;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0<span>=C2=A0</span></span></span></span><span style=3D"font-size:11pt=
;font-family:Calibri,sans-serif;color:rgb(31,73,125)">For the first data no=
de, three values need to be provided as keys (e.g. 1,</span><span>=C2=A0</s=
pan><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(=
31,73,125)">&quot;ipv4&quot;,</span><span>=C2=A0</span><span style=3D"font-=
size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">&quot;10.0.0=
.51</span><span>=C2=A0</span><span style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif;color:rgb(31,73,125)">&quot;), see draft-vanderstok-core-com=
i-06 page 22.<u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001=
pt 0.5in;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)"><span>=C2=
=B7<span style=3D"font-style:normal;font-variant:normal;font-weight:normal;=
font-size:7pt;line-height:normal;font-family:&#39;Times New Roman&#39;">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></span></sp=
an></span><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;colo=
r:rgb(31,73,125)">For the third data node, one integer value need to be pro=
vided as keys (e.g. 22).<u></u><u></u></span></div><div style=3D"margin:0in=
 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><=
span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73=
,125)">=C2=A0</span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:1=
1pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">If we include thes=
e keys in the select query parameter encoded in CBOR, the result might look=
 as follow:<u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D=
"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0=
</span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fami=
ly:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-fami=
ly:Calibri,sans-serif;color:rgb(31,73,125)">REQ: GET<span>=C2=A0</span><a h=
ref=3D"http://example.com/mg?select" style=3D"color:purple;text-decoration:=
underline" target=3D"_blank">example.com/mg?select</a>( [[20491,&quot;ipv4&=
quot;,&quot;10.0.0.51&quot;,2], 2, [3,22]] )</span></div></div></div></bloc=
kquote><div><br></div><div>Just a small typo (missed a coma after 2049, rig=
ht?):</div><div><blockquote type=3D"cite"><div><div style=3D"margin:0in 0in=
 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span=
 style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)">REQ: GET=C2=A0<a href=3D"http://example.com/mg?select" style=3D"color:pu=
rple" target=3D"_blank">example.com/mg?select</a>( [[2049, 1,&quot;ipv4&quo=
t;,&quot;10.0.0.51&quot;,2], 2, [3,22]] )</span></div></div></blockquote><b=
r></div><div>And yes, seems quite straightforward and reasonable to me. If =
I understand correctly, the format you use is the following:</div><div>The =
select parameter accepts a single integer (long form data ID) or an array. =
In the latter case, each element of the array may be either an integer (e.g=
. data ID), or an array in the form [data ID, key1, key2, =E2=80=A6, keyN].=
 The data ID may be absolute (e.g. long form), or relative to the module of=
 the previous data ID.=C2=A0</div><div><br></div><div>This seems quite expr=
essive, simple and compact. I wonder if we=E2=80=99re missing something, as=
 it really does seem to have quite a lot of nice characteristics.=C2=A0</di=
v><div><br></div><div>Best,</div><div>Alexander</div><div><br></div><br><bl=
ockquote type=3D"cite"><div><div style=3D"font-family:Helvetica;font-size:1=
2px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing=
:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:=
none;white-space:normal;word-spacing:0px"><div style=3D"margin:0in 0in 0.00=
01pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span styl=
e=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u=
></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:12=
pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11=
pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div>=
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times=
 New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)">In the current draft, the CoMI server need t=
o support two encoding for each selector, CBOR encoding in the payload and =
text in the keys query parameter.<u></u><u></u></span></div><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;=
,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:=
rgb(31,73,125)">With this proposal, both use cases are encoded using CBOR.<=
u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:1=
1pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div=
><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Time=
s New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,s=
ans-serif;color:rgb(31,73,125)">What do you things?<u></u><u></u></span></d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri=
,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div><div><table border=3D"=
0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=3D"width:537.75p=
t;border-collapse:collapse"><tbody><tr style=3D"height:49.05pt"><td width=
=3D"137" style=3D"width:103.1pt;border-style:none solid none none;border-ri=
ght-color:windowtext;border-right-width:1pt;padding:0in 5.4pt;height:49.05p=
t"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri=
,sans-serif;color:rgb(31,73,125)"><span>&lt;image001.jpg&gt;</span><u></u><=
u></u></span></div></td><td width=3D"580" valign=3D"top" style=3D"width:434=
.65pt;padding:0in 5.4pt;height:49.05pt"><div style=3D"margin:0in 0in 0.0001=
pt 8.1pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">M=
ichel Veillette<br>System Architecture Director</span><span style=3D"font-s=
ize:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u><u></u=
></span></div><div style=3D"margin:0in 0in 0.0001pt 8.1pt;font-size:12pt;fo=
nt-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:9pt;fon=
t-family:Arial,sans-serif;color:rgb(31,73,125)">Trilliant Inc.<br>Tel: 450-=
375-0556 ext. 237<br><a href=3D"mailto:michel.veillette@trilliantinc.com" s=
tyle=3D"color:purple;text-decoration:underline" target=3D"_blank"><span sty=
le=3D"color:rgb(5,99,193)">michel.veillette@trilliantinc.com</span></a><u><=
/u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt 8.1pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-siz=
e:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><a href=3D"http=
://www.trilliantinc.com/" style=3D"color:purple;text-decoration:underline" =
target=3D"_blank"><span style=3D"font-size:9pt;font-family:Arial,sans-serif=
">www.trilliantinc.com</span></a></span><span style=3D"font-size:9pt;font-f=
amily:Arial,sans-serif;color:rgb(31,73,125)"><span>=C2=A0</span>=C2=A0<span=
>=C2=A0</span></span><span style=3D"font-size:11pt;font-family:Calibri,sans=
-serif;color:rgb(31,73,125)"><u></u><u></u></span></div></td></tr></tbody><=
/table><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#3=
9;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cal=
ibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div></div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">=C2=A0</span></div><div><div style=3D"border-style:sol=
id none none;border-top-color:rgb(225,225,225);border-top-width:1pt;padding=
:3pt 0in 0in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fam=
ily:&#39;Times New Roman&#39;,serif"><b><span lang=3D"EN-US" style=3D"font-=
size:11pt;font-family:Calibri,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11pt;font-family:Calibri,sans-serif"><span>=C2=A0</s=
pan>Alexander Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu"=
 target=3D"_blank">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span>=C2=
=A0</span><br><b>Sent:</b><span>=C2=A0</span>12 juin 2015 15:26<br><b>To:</=
b><span>=C2=A0</span>Michel Veillette<br><b>Cc:</b><span>=C2=A0</span>Pasca=
l Thubert (pthubert); Andy Bierman; <a href=3D"mailto:6tisch@ietf.org" targ=
et=3D"_blank">6tisch@ietf.org</a>; <a href=3D"mailto:core@ietf.org" target=
=3D"_blank">core@ietf.org</a><br><b>Subject:</b><span>=C2=A0</span>Re: [6ti=
sch] Reserve space for aliases<u></u><u></u></span></div></div></div><div s=
tyle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New R=
oman&#39;,serif"><u></u>=C2=A0<u></u></div><div><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Hi M=
ichel,<u></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;=
font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u=
></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif">You=E2=80=99re right. As I men=
tioned in my previous mails, I=E2=80=99m pretty happy with the compression =
of IDs we=E2=80=99ve achieved until now, so aliases are not as a pressing i=
ssue.=C2=A0<u></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.00=
01pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=
=A0<u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif">The thing is, if they can=
 be implemented at (almost) zero cost, then some of the use-cases become qu=
ite interesting.<u></u><u></u></div></div><div><div style=3D"margin:0in 0in=
 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></=
u>=C2=A0<u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-=
size:12pt;font-family:&#39;Times New Roman&#39;,serif">You actually provide=
 a very good case with the select option. I=E2=80=99ve not thought if it wi=
ll present some other difficulties, but I actually think it facilitates the=
 use of aliases (and I mention this only because it will help me also under=
stand the semantics of your proposal of the select option).<u></u><u></u></=
div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></div></div><div>=
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times=
 New Roman&#39;,serif">If I take the example you provide:<u></u><u></u></di=
v></div><div><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><div st=
yle=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:1=
1pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">REQ: GET=C2=A0<a h=
ref=3D"http://example.com/mg?select" style=3D"color:purple;text-decoration:=
underline" target=3D"_blank"><span style=3D"color:purple">example.com/mg?se=
lect</span></a>( [2049,2,3,4] )=C2=A0</span><u></u><u></u></div></div></blo=
ckquote><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#=
39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></div></div><div><div st=
yle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Ro=
man&#39;,serif">The parameters 2,3,4 are actually relative to the module ID=
 of the first one. So, if I try to generalize this (please correct me if I=
=E2=80=99m wrong), I would imagine something like:<u></u><u></u></div></div=
><div><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><div style=3D"=
margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fon=
t-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fon=
t-family:Calibri,sans-serif;color:rgb(31,73,125)">REQ: GET=C2=A0<a href=3D"=
http://example.com/mg?select" style=3D"color:purple;text-decoration:underli=
ne" target=3D"_blank"><span style=3D"color:purple">example.com/mg?select</s=
pan></a>( [2049,2,3,4, 4097,2,3,4] )=C2=A0</span><u></u><u></u></div></div>=
</blockquote><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fami=
ly:&#39;Times New Roman&#39;,serif">To resolve to getting module ID=3D1, re=
lative node IDs=3D1,2,3 and 4, and module ID=3D2 and relative node IDs =3D1=
,2,3 and 4.<u></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.00=
01pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=
=A0<u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif">This means, that specifyi=
ng a GET<span>=C2=A0</span><a href=3D"http://example.com/mg?select" style=
=3D"color:purple;text-decoration:underline" target=3D"_blank">example.com/m=
g?select</a>(1) should resolve to module ID=3D0 and relative node ID=3D1. T=
his requires absolutely no additional processing from the node.=C2=A0<u></u=
><u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12=
pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></div><=
/div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:=
&#39;Times New Roman&#39;,serif">So, this leaves us back to the initial ide=
a of the aliases. All short node IDs are relative to a module ID (so that t=
he long form ID can be interpreted). Module ID=3D0 is reserved, and can be =
used for aliasing if the device wishes to support it.=C2=A0<u></u><u></u></=
div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></div></div><div>=
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times=
 New Roman&#39;,serif">Does this break some of the things along the way?=C2=
=A0<u></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;fon=
t-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></=
u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fon=
t-family:&#39;Times New Roman&#39;,serif">Best,<u></u><u></u></div></div><d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif">Alex<u></u><u></u></div></div><div><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif"><u></u>=C2=A0<u></u></div></div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0=
<u></u><u></u></div></div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></div>=
<div><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif">Le 12 juin 2015 =C3=A0 18:57, Michel Veillette &lt;<a href=3D"=
mailto:Michel.Veillette@trilliantinc.com" style=3D"color:purple;text-decora=
tion:underline" target=3D"_blank">Michel.Veillette@trilliantinc.com</a>&gt;=
 a =C3=A9crit :<u></u><u></u></div></div><div style=3D"margin:0in 0in 0.000=
1pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=
=A0<u></u></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:1=
1pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Hi Alexander, hi P=
ascal</span><u></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span sty=
le=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=
=C2=A0</span><u></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.=
0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span st=
yle=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=
I want to emphases the following points</span><u></u><u></u></div></div><di=
v><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Tim=
es New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,=
sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><di=
v style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-si=
ze:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-si=
ze:11pt;font-family:Symbol;color:rgb(31,73,125)">=C2=B7</span><span style=
=3D"font-size:7pt;color:rgb(31,73,125)">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0<span>=C2=A0</span></span><span style=3D"font-size:11pt;font=
-family:Calibri,sans-serif;color:rgb(31,73,125)">The use of the select quer=
y parameter encoded in CBOR support of 63 modules with optimized message si=
ze instead of only 3 for the base64 URI.</span><u></u><u></u></div></div><d=
iv style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-s=
ize:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">If the 6TiSCH=
 module ID is allocated within these 63 IDs, there will be no message size =
optimization provided by the aliases mechanism.</span><u></u><u></u></div><=
/div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D=
"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">This m=
ake the introduction of aliases less urgent.</span><u></u><u></u></div></di=
v><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"fo=
nt-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</s=
pan><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,=
73,125)">=C2=B7</span><span style=3D"font-size:7pt;color:rgb(31,73,125)">=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></span><=
span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73=
,125)">The message size of the select query parameter encoded in CBOR shoul=
d be equal or smaller compared to the base64 URI.</span><u></u><u></u></div=
></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">How=
ever, the select query parameter encoded in CBOR support a wider range of v=
alues without size penalty (16 bits instead of 12, 32 bits instead of 30)</=
span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">Furthermore, CoMI devices won=E2=80=99t have to suppor=
t two type of encoding depending if IDs are part of the command vs. payload=
.</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div sty=
le=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Rom=
an&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><div style=3D=
"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fo=
nt-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fo=
nt-family:Calibri,sans-serif;color:rgb(31,73,125)">For example:</span><u></=
u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"margin:=
0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif=
"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31=
,73,125)">=C2=A0</span><u></u><u></u></div></div><div style=3D"margin-left:=
0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#3=
9;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cal=
ibri,sans-serif;color:rgb(31,73,125)">Assuming module ID 2</span><u></u><u>=
</u></div></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0=
in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><sp=
an style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,1=
25)">Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)</span><u=
></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"marg=
in:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,se=
rif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb=
(31,73,125)">Assuming =E2=80=9C,=E2=80=9D separator to select multiple data=
 nodes</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><di=
v style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times Ne=
w Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-=
serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><div sty=
le=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12=
pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11=
pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Base64 approach:</s=
pan><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">REQ: GET<span>=C2=A0</span><a href=3D"http://example.c=
om/mg/gB" style=3D"color:purple;text-decoration:underline" target=3D"_blank=
"><span style=3D"color:purple">example.com/mg/gB</span></a>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (3 bytes; 1 byte for the =E2=80=9C/=E2=80=
=9D, 2 bytes for =E2=80=9CgB=E2=80=9D)</span><u></u><u></u></div></div><div=
 style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-siz=
e:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u=
></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"marg=
in:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,se=
rif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb=
(31,73,125)">CBOR approach:</span><u></u><u></u></div></div><div style=3D"m=
argin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font=
-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font=
-family:Calibri,sans-serif;color:rgb(31,73,125)">REQ: GET<span>=C2=A0</span=
><a href=3D"http://example.com/mg?select" style=3D"color:purple;text-decora=
tion:underline" target=3D"_blank"><span style=3D"color:purple">example.com/=
mg?select</span></a>(2049)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =
(4 bytes; one byte for the CoAP option, 3 for 2049 encoded using CBOR)</spa=
n><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color=
:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><div style=3D"margi=
n-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fam=
ily:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-fam=
ily:Calibri,sans-serif;color:rgb(31,73,125)">Base64 approach:</span><u></u>=
<u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)">REQ: GET<span>=C2=A0</span><a href=3D"http://example.com/mg/gB,C,D,=
E" style=3D"color:purple;text-decoration:underline" target=3D"_blank"><span=
 style=3D"color:purple">example.com/mg/gB,C,D,E</span></a>=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (9 bytes; 1 byte for the =E2=80=9C/=E2=80=
=9D, 8 bytes for =E2=80=9CgB,C,D,E=E2=80=9D)</span><u></u><u></u></div></di=
v><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#3=
9;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cal=
ibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></di=
v><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"fo=
nt-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">CBOR appr=
oach:</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New=
 Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-s=
erif;color:rgb(31,73,125)">REQ: GET<span>=C2=A0</span><a href=3D"http://exa=
mple.com/mg?select" style=3D"color:purple;text-decoration:underline" target=
=3D"_blank"><span style=3D"color:purple">example.com/mg?select</span></a>( =
[2049,2,3,4] )=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (8 bytes; 1 byte for the CoAP =
option, 1 for the CBOR array, 3+1+1+1 bytes for the IDs)</span><u></u><u></=
u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fon=
t-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fon=
t-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></=
u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fon=
t-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fon=
t-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></=
u></div></div><div><table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" =
width=3D"717" style=3D"width:537.75pt;border-collapse:collapse"><tbody><tr =
style=3D"height:49.05pt"><td width=3D"137" style=3D"width:103.1pt;border-st=
yle:none solid none none;border-right-color:windowtext;border-right-width:1=
pt;padding:0in 5.4pt;height:49.05pt"><div><div style=3D"margin:0in 0in 0.00=
01pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span styl=
e=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">&l=
t;image001.jpg&gt;</span><u></u><u></u></div></div></td><td width=3D"580" v=
align=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt"><di=
v style=3D"margin-left:8.1pt"><div style=3D"margin:0in 0in 0.0001pt;font-si=
ze:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-si=
ze:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">Michel Veillette<=
br>System Architecture Director</span><u></u><u></u></div></div><div style=
=3D"margin-left:8.1pt"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt=
;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:9pt;=
font-family:Arial,sans-serif;color:rgb(31,73,125)">Trilliant Inc.<br>Tel: 4=
50-375-0556 ext. 237<br><a href=3D"mailto:michel.veillette@trilliantinc.com=
" style=3D"color:purple;text-decoration:underline" target=3D"_blank"><span =
style=3D"color:rgb(5,99,193)">michel.veillette@trilliantinc.com</span></a><=
/span><u></u><u></u></div></div><div style=3D"margin-left:8.1pt"><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)"><a href=3D"http://www.trilliantinc.com/" style=3D"colo=
r:purple;text-decoration:underline" target=3D"_blank"><span style=3D"font-s=
ize:9pt;font-family:Arial,sans-serif;color:purple">www.trilliantinc.com</sp=
an></a></span><span><span style=3D"font-size:9pt;font-family:Arial,sans-ser=
if;color:rgb(31,73,125)">=C2=A0</span></span><span style=3D"font-size:9pt;f=
ont-family:Arial,sans-serif;color:rgb(31,73,125)">=C2=A0<span>=C2=A0</span>=
</span><u></u><u></u></div></div></td></tr></tbody></table><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New=
 Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-s=
erif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><div><div=
 style=3D"border-style:solid none none;border-top-color:rgb(225,225,225);bo=
rder-top-width:1pt;padding:3pt 0in 0in"><div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><b><spa=
n lang=3D"EN-US" style=3D"font-size:11pt;font-family:Calibri,sans-serif">Fr=
om:</span></b><span><span lang=3D"EN-US" style=3D"font-size:11pt;font-famil=
y:Calibri,sans-serif">=C2=A0</span></span><span lang=3D"EN-US" style=3D"fon=
t-size:11pt;font-family:Calibri,sans-serif">Alexander Pelov [<a href=3D"mai=
lto:alexander.pelov@telecom-bretagne.eu" style=3D"color:purple;text-decorat=
ion:underline" target=3D"_blank">mailto:alexander.pelov@telecom-bretagne.eu=
</a>]<span>=C2=A0</span><br><b>Sent:</b><span>=C2=A0</span>11 juin 2015 17:=
06<br><b>To:</b><span>=C2=A0</span>Pascal Thubert (pthubert)<br><b>Cc:</b><=
span>=C2=A0</span>Andy Bierman; Michel Veillette;<span>=C2=A0</span><a href=
=3D"mailto:6tisch@ietf.org" style=3D"color:purple;text-decoration:underline=
" target=3D"_blank">6tisch@ietf.org</a>;<span>=C2=A0</span><a href=3D"mailt=
o:core@ietf.org" style=3D"color:purple;text-decoration:underline" target=3D=
"_blank">core@ietf.org</a><br><b>Subject:</b><span>=C2=A0</span>Re: [6tisch=
] Reserve space for aliases</span><u></u><u></u></div></div></div></div><di=
v><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Tim=
es New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div><div><div><div sty=
le=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Rom=
an&#39;,serif">Hi Pascal,<u></u><u></u></div></div></div><div><div style=3D=
"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#3=
9;,serif">=C2=A0<u></u><u></u></div></div><div><blockquote style=3D"margin-=
top:5pt;margin-bottom:5pt"><div><div><div style=3D"margin:0in 0in 0.0001pt;=
font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Le 10 juin 2015=
 =C3=A0 15:25, Pascal Thubert (pthubert) &lt;<a href=3D"mailto:pthubert@cis=
co.com" style=3D"color:purple;text-decoration:underline" target=3D"_blank">=
<span style=3D"color:purple">pthubert@cisco.com</span></a>&gt; a =C3=A9crit=
 :<u></u><u></u></div></div></div><div><div style=3D"margin:0in 0in 0.0001p=
t;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u>=
<u></u></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;fon=
t-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"fon=
t-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Dear all:<=
/span><u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><spa=
n style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,12=
5)">=C2=A0</span><u></u><u></u></div></div></div><div><div><div style=3D"ma=
rgin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,=
serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:r=
gb(31,73,125)">This looks like the problem of local namespaces,=C2=A0 which=
 is the reason why MPLS switches labels.</span><u></u><u></u></div></div></=
div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fam=
ily:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-fam=
ily:Calibri,sans-serif;color:rgb(31,73,125)">The user may access a limited =
set of resources from a number of servers, and servers are read by many use=
rs.</span><u></u><u></u></div></div></div><div><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)">You cannot ensure that you have a single alias space that satisfies=
 them all.</span><u></u><u></u></div></div></div></div></blockquote><div><d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div><div><div><=
div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times =
New Roman&#39;,serif">Great analogy! And yes, sadly you cannot satisfy them=
 all, at least not with all devices.<u></u><u></u></div></div></div><div><d=
iv style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times N=
ew Roman&#39;,serif"><br><br><br><u></u><u></u></div></div><blockquote styl=
e=3D"margin-top:5pt;margin-bottom:5pt"><div><div><div><div style=3D"margin:=
0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif=
"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31=
,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">So ,what if the user had its own set of aliases and th=
e server also had its own set of aliases?</span><u></u><u></u></div></div><=
/div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-fa=
mily:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></=
div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:1=
1pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">The aliases could =
be mapped in a table like a uSAP and a pSAP are mapped across layers. Broad=
ly:</span><u></u><u></u></div></div></div><div><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)">- First time a user requests a resource in a server, it comes with =
a tuple (userid, useralias, fullname)</span><u></u><u></u></div></div></div=
><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family=
:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family=
:Calibri,sans-serif;color:rgb(31,73,125)">- The server responds with (serve=
rid, serveralias, userid, user alias).</span><u></u><u></u></div></div></di=
v></div></blockquote><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u><=
/div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif">Actually, I think that th=
is could be worked out in CoMI also. Instead of fullname you could provide =
the YANG id (module ID + data node ID) and do the mapping. User alias would=
 be the special aliased YANG id. User ID, however, could be a little bit mo=
re tricky - how do we ensure that it is consistent? Use the IP address of t=
he client could be doable, but we=E2=80=99ll have to include the UDP port j=
ust in case someone runs two clients on the same machine.<u></u><u></u></di=
v></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></=
div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif"><br><br><br><u></u><u></u></div></div=
><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><div><div><div><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New=
 Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-s=
erif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><di=
v><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#3=
9;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cal=
ibri,sans-serif;color:rgb(31,73,125)">After that,=C2=A0 if the server is a =
constrained device then the user talks to the server with (serverid, server=
alias) and the user maintains a switching table for the resource it uses on=
 various servers.</span><u></u><u></u></div></div></div><div><div><div styl=
e=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roma=
n&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;=
color:rgb(31,73,125)">If the user is the constrained device and the server =
is not, the user could talk with (userid, useralias) and the server maintai=
ns a switching table.</span><u></u><u></u></div></div></div><div><div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New =
Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-se=
rif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div=
><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39=
;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif;color:rgb(31,73,125)">For large servers, the server may allo=
cate aliases dynamically based on what it is being asked. We=E2=80=99d then=
 need to talk about alias update or revocation, probably in terms of sessio=
n and lifetime.</span><u></u><u></u></div></div></div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div><div=
><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Time=
s New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,s=
ans-serif;color:rgb(31,73,125)">Does that look usable?</span><u></u><u></u>=
</div></div></div></div></blockquote><div><div><div style=3D"margin:0in 0in=
 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=
=A0<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">You are=
 pointing out an interesting question. I would think (but maybe I=E2=80=99m=
 mistaken), that the client should have the leading role in figuring out wh=
at=E2=80=99s happening. The idea is the following:<u></u><u></u></div></div=
></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-=
family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></d=
iv><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fami=
ly:&#39;Times New Roman&#39;,serif">The client checks if the server support=
s aliasing, with the possible options:<u></u><u></u></div></div></div><div>=
<div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;=
Times New Roman&#39;,serif">S1) no aliasing<u></u><u></u></div></div></div>=
<div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:=
&#39;Times New Roman&#39;,serif">S2) static/server-defined aliasing<u></u><=
u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;fon=
t-size:12pt;font-family:&#39;Times New Roman&#39;,serif">S3) dynamic/single=
 alias mapping=C2=A0<u></u><u></u></div></div></div><div><div><div style=3D=
"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#3=
9;,serif">=C2=A0 S3.1) mapping already defined<u></u><u></u></div></div></d=
iv><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fami=
ly:&#39;Times New Roman&#39;,serif">=C2=A0 S3.2) no mapping defined<u></u><=
u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;fon=
t-size:12pt;font-family:&#39;Times New Roman&#39;,serif">S4) dynamic/per cl=
ient alias mapping<u></u><u></u></div></div></div><div><div><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;=
,serif">=C2=A0<u></u><u></u></div></div></div><div><div><div style=3D"margi=
n:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,ser=
if">Then, the client can take action, depending on its own capabilities and=
 the response of the server. E.g. a unconstrained client could obtain the a=
lias mapping if it is static (or if there is a single alias mapping in plac=
e) and cache it locally. So, there will be the following correspondence :<u=
></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u=
><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;f=
ont-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Given:<u></u><u>=
</u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-=
size:12pt;font-family:&#39;Times New Roman&#39;,serif">C1) constrained clie=
nt<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.=
0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">C2) unco=
nstrained client<u></u><u></u></div></div></div><div><div><div style=3D"mar=
gin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,s=
erif">=C2=A0<u></u><u></u></div></div></div><div><div><div style=3D"margin:=
0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif=
">We have:<u></u><u></u></div></div></div><div><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
C1 + S1) no aliasing, nothing to do<u></u><u></u></div></div></div><div><di=
v><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Tim=
es New Roman&#39;,serif">C1 + S2) and C1 + S3.1) if the alias mapping is kn=
own, use it. otherwise, ignore<u></u><u></u></div></div></div><div><div><di=
v style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times Ne=
w Roman&#39;,serif">C1 + S3.2) and C1 + S4) define alias mapping<u></u><u><=
/u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u><=
/div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-=
size:12pt;font-family:&#39;Times New Roman&#39;,serif">C2 + S1) no aliasing=
, nothing to do<u></u><u></u></div></div></div><div><div><div><div style=3D=
"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#3=
9;,serif">C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. ot=
herwise, learn it<u></u><u></u></div></div></div></div><div><div><div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New =
Roman&#39;,serif">C2 + S3.2) and C2 + S4) define alias mapping<u></u><u></u=
></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></d=
iv></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12=
pt;font-family:&#39;Times New Roman&#39;,serif">I would say that the analog=
y you made with MPLS corresponds quite a lot to the C2+S4 case. Personally,=
 I would be most interested into having one client configure one alias mapp=
ing to all servers in the network (e.g. the managing entity), which will pr=
ofit most from saving several bytes on each message exchange. Everyone else=
 could use the standard IDs, which we=E2=80=99ve already managed to shrink =
significantly.<u></u><u></u></div></div></div><div><div><div style=3D"margi=
n:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,ser=
if">=C2=A0<u></u><u></u></div></div></div><div><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
Indeed, with structured module ID + data node ID (20 bits + 10 bits), YANG =
URI compression, and long form/short form, we=E2=80=99ll have quite a lot o=
f gain. Reserving module ID =3D 1 for aliases and maybe writing a short dra=
ft on how the aliasing is implemented seems feasible, where we can cover th=
e exact mechanism of alias definition, and client/server interaction.<u></u=
><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;f=
ont-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u>=
</u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-=
size:12pt;font-family:&#39;Times New Roman&#39;,serif">Alexander<u></u><u><=
/u></div></div></div></div></div><div><div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u>=
</u><u></u></div></div></div><blockquote style=3D"margin-top:5pt;margin-bot=
tom:5pt"><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11p=
t;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u>=
<u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"fo=
nt-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Pascal</s=
pan><u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)=
">=C2=A0</span><u></u><u></u></div></div></div><div style=3D"border-style:n=
one none none solid;border-left-color:blue;border-left-width:1.5pt;padding:=
0in 0in 0in 4pt"><div><div style=3D"border-style:solid none none;border-top=
-color:rgb(181,196,223);border-top-width:1pt;padding:3pt 0in 0in"><div><div=
><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Time=
s New Roman&#39;,serif"><b><span style=3D"font-size:10pt;font-family:Tahoma=
,sans-serif">From:</span></b><span><span style=3D"font-size:10pt;font-famil=
y:Tahoma,sans-serif">=C2=A0</span></span><span style=3D"font-size:10pt;font=
-family:Tahoma,sans-serif">6tisch [<a href=3D"mailto:6tisch-bounces@ietf.or=
g" style=3D"color:purple;text-decoration:underline" target=3D"_blank"><span=
 style=3D"color:purple">mailto:6tisch-bounces@ietf.org</span></a>]<span>=C2=
=A0</span><b>On Behalf Of<span>=C2=A0</span></b>Andy Bierman<br><b>Sent:</b=
><span>=C2=A0</span>vendredi 5 juin 2015 20:55<br><b>To:</b><span>=C2=A0</s=
pan>Michel Veillette<br><b>Cc:</b><span>=C2=A0</span><a href=3D"mailto:6tis=
ch@ietf.org" style=3D"color:purple;text-decoration:underline" target=3D"_bl=
ank"><span style=3D"color:purple">6tisch@ietf.org</span></a>; Alexander Pel=
ov;<span>=C2=A0</span><a href=3D"mailto:core@ietf.org" style=3D"color:purpl=
e;text-decoration:underline" target=3D"_blank"><span style=3D"color:purple"=
>core@ietf.org</span></a><br><b>Subject:</b><span>=C2=A0</span>Re: [6tisch]=
 Reserve space for aliases</span><u></u><u></u></div></div></div></div></di=
v><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-famil=
y:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div><d=
iv><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fami=
ly:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div><=
div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fam=
ily:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div>=
<div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif">On Fri, Jun 5, 2015 at 11:41 AM, Mich=
el Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" style=
=3D"color:purple;text-decoration:underline" target=3D"_blank"><span style=
=3D"color:purple">Michel.Veillette@trilliantinc.com</span></a>&gt; wrote:<u=
></u><u></u></div></div></div><div><div><div><div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><s=
pan style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,=
125)">Hi Alexander</span><u></u><u></u></div></div></div><div><div><div sty=
le=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Rom=
an&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div><d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri=
,sans-serif;color:rgb(31,73,125)">I have some concerns about allowing CoMI =
client(s) the control of the list of aliases.</span><u></u><u></u></div></d=
iv></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fon=
t-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fon=
t-family:Calibri,sans-serif;color:rgb(31,73,125)">This approach work fine f=
or the first CoMI application (e.g. 6TiSCH) but what do we do with the subs=
equent CoMI application?</span><u></u><u></u></div></div></div><div><div><d=
iv style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times N=
ew Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans=
-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><=
div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&=
#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:C=
alibri,sans-serif;color:rgb(31,73,125)">One possible solution is that each =
CoMI client send a list of (alias, data node ID) to the CoMI server. In thi=
s case, the CoMI client might receive an error if one or multiple of these =
aliases are already reserved.</span><u></u><u></u></div></div></div><div><d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri=
,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></=
div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fam=
ily:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-fam=
ily:Calibri,sans-serif;color:rgb(31,73,125)">A second possible solution is =
that each CoMI client send a list of (data node ID) and get a list of (alia=
s, data node ID) from the CoMI server. In this case, CoMI clients will have=
 to deal with a mix population of aliases.</span><u></u><u></u></div></div>=
</div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-f=
amily:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-f=
amily:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u><=
/div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:=
11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">The proposed solu=
tion need to scale to a multi-vendors, multiple applications environment.</=
span><u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in=
 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span=
 style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)">With this is mind, do you have any alternative solutions to propose?</sp=
an><u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span s=
tyle=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"=
>=C2=A0</span><u></u><u></u></div></div></div></div></div><div><div><div><d=
iv style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times N=
ew Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div></div><div><div>=
<div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;=
Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div></div><di=
v><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-famil=
y:&#39;Times New Roman&#39;,serif">Does this approach allow each client to =
have a different set of aliases,<u></u><u></u></div></div></div></div><div>=
<div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:=
&#39;Times New Roman&#39;,serif">so the server has to maintain a configured=
 mapping for each client?<u></u><u></u></div></div></div></div><div><div><d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif">This seems like a lot of overhead and NV-storage =
requirements<u></u><u></u></div></div></div></div><div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif">on the server.<u></u><u></u></div></div></div></div><div><div>=
<div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;=
Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div></div><di=
v><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-famil=
y:&#39;Times New Roman&#39;,serif">Changing the schema identifiers based on=
 which client is<u></u><u></u></div></div></div></div><div><div><div><div s=
tyle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New R=
oman&#39;,serif">sending the request seems like a complicated design change=
<u></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0=
in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"=
>from RESTCONF, NETCONF, or SNMP, where there is only<u></u><u></u></div></=
div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">1 schema tree which i=
s not dependent on the client identity.<u></u><u></u></div></div></div></di=
v><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-=
family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></d=
iv></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></=
div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">Andy<u></u><u></u></d=
iv></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;f=
ont-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u>=
</u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u>=
</u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
=C2=A0<u></u><u></u></div></div></div></div><div><div><div><div style=3D"ma=
rgin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,=
serif">=C2=A0<u></u><u></u></div></div></div></div><blockquote style=3D"bor=
der-style:none none none solid;border-left-color:rgb(204,204,204);border-le=
ft-width:1pt;padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt"><div><div><d=
iv><table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" st=
yle=3D"width:537.75pt;border-collapse:collapse"><tbody><tr style=3D"height:=
49.05pt"><td width=3D"137" style=3D"width:103.1pt;border-style:none solid n=
one none;border-right-color:windowtext;border-right-width:1pt;padding:0in 5=
.4pt;height:49.05pt"><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-s=
ize:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">&lt;image001.=
jpg&gt;</span><u></u><u></u></div></div></div></td><td width=3D"580" valign=
=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt"><div sty=
le=3D"margin-left:8.1pt"><div><div style=3D"margin:0in 0in 0.0001pt;font-si=
ze:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-si=
ze:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">Michel Veillette<=
br>System Architecture Director</span><u></u><u></u></div></div></div><div =
style=3D"margin-left:8.1pt"><div><div style=3D"margin:0in 0in 0.0001pt;font=
-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font=
-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">Trilliant Inc.=
<br>Tel: 450-375-0556 ext. 237<br><a href=3D"mailto:michel.veillette@trilli=
antinc.com" style=3D"color:purple;text-decoration:underline" target=3D"_bla=
nk"><span style=3D"color:rgb(5,99,193)">michel.veillette@trilliantinc.com</=
span></a></span><u></u><u></u></div></div></div><div style=3D"margin-left:8=
.1pt"><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family=
:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family=
:Calibri,sans-serif;color:rgb(31,73,125)"><a href=3D"http://www.trilliantin=
c.com/" style=3D"color:purple;text-decoration:underline" target=3D"_blank">=
<span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple">www=
.trilliantinc.com</span></a></span><span><span style=3D"font-size:9pt;font-=
family:Arial,sans-serif;color:rgb(31,73,125)">=C2=A0</span></span><span sty=
le=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">=C2=
=A0<span>=C2=A0</span></span><u></u><u></u></div></div></div></td></tr></tb=
ody></table><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;=
font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u=
></u></div></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001p=
t;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=
=A0</span><u></u><u></u></div></div></div><div><div style=3D"border-style:s=
olid none none;border-top-color:rgb(225,225,225);border-top-width:1pt;paddi=
ng:3pt 0in 0in"><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><b><span style=3D"font-siz=
e:11pt;font-family:Calibri,sans-serif">From:</span></b><span><span style=3D=
"font-size:11pt;font-family:Calibri,sans-serif">=C2=A0</span></span><span s=
tyle=3D"font-size:11pt;font-family:Calibri,sans-serif">Alexander Pelov [mai=
lto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" style=3D"color:p=
urple;text-decoration:underline" target=3D"_blank"><span style=3D"color:pur=
ple">alexander.pelov@telecom-bretagne.eu</span></a>]<span>=C2=A0</span><br>=
<b>Sent:</b><span>=C2=A0</span>5 juin 2015 12:03<br><b>To:</b><span>=C2=A0<=
/span>Michel Veillette<br><b>Cc:</b><span>=C2=A0</span>Andy Bierman;<span>=
=C2=A0</span><a href=3D"mailto:6tisch@ietf.org" style=3D"color:purple;text-=
decoration:underline" target=3D"_blank"><span style=3D"color:purple">6tisch=
@ietf.org</span></a>;<span>=C2=A0</span><a href=3D"mailto:core@ietf.org" st=
yle=3D"color:purple;text-decoration:underline" target=3D"_blank"><span styl=
e=3D"color:purple">core@ietf.org</span></a><br><b>Subject:</b><span>=C2=A0<=
/span>Re: Reserve space for aliases</span><u></u><u></u></div></div></div><=
/div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;f=
ont-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div=
></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif">Hi Michel,<u></u><u></u></div>=
</div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font=
-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u=
></div></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u><=
/u></div></div></div><div><blockquote style=3D"margin-top:5pt;margin-bottom=
:5pt"><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;f=
ont-family:&#39;Times New Roman&#39;,serif">Le 5 juin 2015 =C3=A0 17:17, Mi=
chel Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" sty=
le=3D"color:purple;text-decoration:underline" target=3D"_blank"><span style=
=3D"color:purple">Michel.Veillette@trilliantinc.com</span></a>&gt; a =C3=A9=
crit :<u></u><u></u></div></div></div></div><div><div><div style=3D"margin:=
0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif=
">=C2=A0<u></u><u></u></div></div></div><div><div><div><div><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;=
,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif">Hi Al=
exander</span><u></u><u></u></div></div></div></div><div><div><div><div sty=
le=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Rom=
an&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
">=C2=A0</span><u></u><u></u></div></div></div></div><div><div><div><div st=
yle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Ro=
man&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-seri=
f">In your presentation at 6TiSCH, you propose the following data node ID s=
tructure.</span><u></u><u></u></div></div></div></div><div><div><div><div s=
tyle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New R=
oman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-ser=
if">=C2=A0</span><u></u><u></u></div></div></div></div><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" style=3D"border-collapse:collapse"><tbo=
dy><tr><td width=3D"623" valign=3D"top" style=3D"width:467.5pt;border:1pt s=
olid windowtext;padding:0in 5.4pt"><div style=3D"margin-left:0.5in"><div><d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Arial,s=
ans-serif">=E2=80=A2</span><span style=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:11pt;font-family:Ca=
libri,sans-serif">32 bits YANG ID</span><u></u><u></u></div></div></div></d=
iv><div style=3D"margin-left:1in"><div><div><div style=3D"margin:0in 0in 0.=
0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span st=
yle=3D"font-size:11pt;font-family:Arial,sans-serif">=E2=80=93</span><span s=
tyle=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span sty=
le=3D"font-size:11pt;font-family:Calibri,sans-serif">20 bits for module ID =
(assigned by IETF)</span><u></u><u></u></div></div></div></div><div style=
=3D"margin-left:1in"><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-s=
ize:11pt;font-family:Arial,sans-serif">=E2=80=93</span><span style=3D"font-=
size:7pt">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-si=
ze:11pt;font-family:Calibri,sans-serif">10 bits for data node ID (generated=
 deterministically)</span><u></u><u></u></div></div></div></div></td></tr><=
/tbody></table><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-si=
ze:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-si=
ze:11pt;font-family:Calibri,sans-serif">=C2=A0</span><u></u><u></u></div></=
div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-s=
ize:11pt;font-family:Calibri,sans-serif">Based on this structure, we can re=
serve=C2=A0module ID zero for aliases.</span><u></u><u></u></div></div></di=
v></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt=
;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt=
;font-family:Calibri,sans-serif">=C2=A0</span><u></u><u></u></div></div></d=
iv></div></div></blockquote><div><div><div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u>=
</u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">I =
was just summarizing what was discussed on the discussion in CoMI. Actually=
, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be consistent w=
ith the YANG hash and I don=E2=80=99t mind keeping it 30 bits.<u></u><u></u=
></div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u=
><u></u></div></div></div></div><p class=3D"MsoNormal" style=3D"margin:0in =
0in 12pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0=
<u></u><u></u></p><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><d=
iv><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font=
-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font=
-family:Calibri,sans-serif">If we want to minimize both the network an node=
 resources require by this alias mechanism, we can map an entire module to =
this space.</span><u></u><u></u></div></div></div></div><div><div><div><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New=
 Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-s=
erif">This can be implemented by a single integer resource (e.g. leaf allia=
ssedModule { type uint32 } )</span><u></u><u></u></div></div></div></div><d=
iv><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fami=
ly:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-fami=
ly:Calibri,sans-serif">This approach require 4 bytes per CoMI server access=
ed.</span><u></u><u></u></div></div></div></div><div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif">=
=C2=A0</span><u></u><u></u></div></div></div></div></div></blockquote><div>=
<div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:=
&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div></di=
v><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-=
family:&#39;Times New Roman&#39;,serif">It is possible to map an entire mod=
ule to the alias space and this is up to the operator. However, if you load=
 two modules which redefine the same alias you will loose the benefit from =
it. Maybe it would be interesting to be able to specify that you want the a=
liases from THIS specific module to be used.<u></u><u></u></div></div></div=
></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></di=
v></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif">If the /mg/0 alias is r=
eserved for managing the aliases, this could be simply saying:<u></u><u></u=
></div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">POST /mg/0<u=
></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in=
 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">{=
<u></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0=
in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"=
>=C2=A0&quot;source_uri&quot; : &quot;/mg/BAA&quot;<u></u><u></u></div></di=
v></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif">}<u></u><u></u></div></=
div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u><=
/div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">where /mg/BAA =
is the YANG id of the module (20 bits module ID + 10 bits set to 0). This w=
ay, the server will know: OK, get the alias mapping from the YANG scheme of=
 module with ID =3D B (as defined by the IETF).=C2=A0<u></u><u></u></div></=
div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u><=
/div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Or, you can dy=
namically configure the mapping:<u></u><u></u></div></div></div></div><div>=
<div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif">POST /mg/0<u></u><u></u></div></div><=
/div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif">{<u></u><u></u></div></div=
></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size=
:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0 YANG_id : alias,<=
u></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
=C2=A0 YANG_id : alias,<u></u><u></u></div></div></div></div><div><div><div=
><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Time=
s New Roman&#39;,serif">=C2=A0 YANG_id : alias<u></u><u></u></div></div></d=
iv></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif">}<u></u><u></u></div></div><=
/div></div></div><p class=3D"MsoNormal" style=3D"margin:0in 0in 12pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u><=
/p><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><div><div><div><d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri=
,sans-serif">If we want a more complex but more flexible aliases mechanism,=
 your proposed map of (allias, YANG ID) seem the solution.</span><u></u><u>=
</u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span sty=
le=3D"font-size:11pt;font-family:Calibri,sans-serif">However, we have to co=
nsider that this structure can be as large as=C2=A0<u>1250 bytes per CoMI s=
erver accessed</u>=C2=A0if limited to 256 aliases.</span><u></u><u></u></di=
v></div></div></div></div></blockquote><div><div><div><div style=3D"margin:=
0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif=
">=C2=A0<u></u><u></u></div></div></div></div><div><div><div><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif">This is assuming you need a separate mapping for each server. I wo=
uld suppose that in a network you=E2=80=99ll have a single alias mapping (m=
aybe two?) - after all, you=E2=80=99re trying to optimize the management of=
 your devices (servers). So, typically you=E2=80=99d map all 6tisch devices=
 with aliases 1-10 (channel, slot, etc.) and use that on them, and on all o=
ther you=E2=80=99d access the full ID.=C2=A0<u></u><u></u></div></div></div=
></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></di=
v></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif">Best,<u></u><u></u></di=
v></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Alexander<u></u><=
u></u></div></div></div></div><p class=3D"MsoNormal" style=3D"margin:0in 0i=
n 12pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u=
></u><u></u></p><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><div=
><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-f=
amily:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-f=
amily:Calibri,sans-serif">=C2=A0</span><u></u><u></u></div></div></div></di=
v><table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" sty=
le=3D"width:537.75pt;border-collapse:collapse"><tbody><tr style=3D"height:4=
9.05pt"><td width=3D"137" style=3D"width:103.1pt;border-style:none solid no=
ne none;border-right-color:windowtext;border-right-width:1pt;padding:0in 5.=
4pt;height:49.05pt"><div><div><div><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"fo=
nt-size:11pt;font-family:Calibri,sans-serif">&lt;image001.jpg&gt;</span><u>=
</u><u></u></div></div></div></div></td><td width=3D"580" valign=3D"top" st=
yle=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt"><div style=3D"margi=
n-left:8.1pt"><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:9pt=
;font-family:Arial,sans-serif">Michel Veillette<br>System Architecture Dire=
ctor</span><u></u><u></u></div></div></div></div><div style=3D"margin-left:=
8.1pt"><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-=
family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:9pt;font-f=
amily:Arial,sans-serif">Trilliant Inc.<br>Tel: 450-375-0556 ext. 237<br><a =
href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color:purple;tex=
t-decoration:underline" target=3D"_blank"><span style=3D"color:rgb(5,99,193=
)">michel.veillette@trilliantinc.com</span></a></span><u></u><u></u></div><=
/div></div></div><div style=3D"margin-left:8.1pt"><div><div><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;=
,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif"><a hr=
ef=3D"http://www.trilliantinc.com/" style=3D"color:purple;text-decoration:u=
nderline" target=3D"_blank"><span style=3D"font-size:9pt;font-family:Arial,=
sans-serif;color:purple">www.trilliantinc.com</span></a></span></div></div>=
</div></div></td></tr></tbody></table></div></blockquote></div></div></div>=
</blockquote></div></div></div></div></div></blockquote></div></div></block=
quote></div></div></div></blockquote></div><br></div></blockquote></div><br=
></div>

--001a11c27cf0e1b9f40518593042--


From nobody Fri Jun 12 15:25:25 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ABC7D1B2BB9; Fri, 12 Jun 2015 15:25:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VBYtw-hMymRY; Fri, 12 Jun 2015 15:25:15 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id EBBB61ACCDE; Fri, 12 Jun 2015 15:25:14 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 1371A232693; Sat, 13 Jun 2015 00:25:14 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id i4pMMI17rcNZ; Sat, 13 Jun 2015 00:25:11 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 99C042326A5; Sat, 13 Jun 2015 00:25:11 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 1LjnGXf6SRm0; Sat, 13 Jun 2015 00:25:11 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id A3982232693; Sat, 13 Jun 2015 00:25:10 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_F91B2C22-F40E-4382-8B64-B064D55723B7"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CABCOCHS2z-ps51JHp9cK7+oobHoPXAa-vu+hKMzMF8f31OboNw@mail.gmail.com>
Date: Sat, 13 Jun 2015 00:25:09 +0200
Message-Id: <93162CDB-3DC8-442E-9427-68DF7EB0CD31@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu> <CO2PR0601MB792C118ECA44AD8FD152307FEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <43EF5C59-CF72-440B-8BC0-931D8F6EB40A@telecom-bretagne.eu> <CABCOCHS2z-ps51JHp9cK7+oobHoPXAa-vu+hKMzMF8f31OboNw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/JmufQF1YvpQn3tYOCBd04iS1SHg>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 22:25:21 -0000

--Apple-Mail=_F91B2C22-F40E-4382-8B64-B064D55723B7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Andy,

Not sure if you were referring to the example/explanation I tried to =
provide (maybe Michel had something else in mind), but here I go.

> Le 12 juin 2015 =C3=A0 23:57, Andy Bierman <andy@yumaworks.com> a =
=C3=A9crit :
>=20
> Hi,
>=20
> Here is the "JSON for YANG" draft:
> https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt =
<https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt>
>=20
> The long form (module-name:local-name) is only used
> at the top of a sub-tree and where the module namespace changes
> (due to an augment from another module).
>=20
> The data is hierarchical and the parser is required to maintain
> the current module scope. It should be possible to omit the module
> identifier is nested data, except for nodes that start a new
> module scope.

Ok, that sounds perfectly in line with the module ID/data node ID and =
the long form/short form we=E2=80=99ve been discussing with Michel.

>=20
> Is this what you have in mind?
> For YANG Hash (that has no module identifier)
> every nested node ID needs the full 30 bits,
> but this is not required for managed IDs.

If you have your YANG hash ID behave in a structured way (e.g. stop =
being a hash..), then you don=E2=80=99t need to send the full 30 bits.=20=


If I take the following example (which is a strange case just for the =
sake of it):
REQ: GET example.com/mg?select <http://example.com/mg?select>( [5, 2049, =
2, 3, 4, 4097, 2, 3, 4, 2053, 2055, 6] )

That would resolve to requesting the following YANG IDs:
long form =3D module ID / short form
5 =3D 0 / 5
2049 =3D 1 / 1
2050 =3D 1 / 2
2051 =3D 1 / 3
2052 =3D 1 / 4
4097 =3D 2 / 1
4098 =3D 2 / 2
4099 =3D 2 / 3
4099 =3D 2 / 4
2053 =3D 1 / 5
2055 =3D 1 / 7
2054 =3D 1 / 6

Of course, that is not (directly) related to the way the YANG parser =
processes the YANG modules. It is a way to parse the select option, and =
is straightforward. Consecutively, element by element apply something of =
the form:

if (full_id & 0x3FFFFC00) > 0) {
   current_module_ID =3D full_id >> 10;
}
else {
  full_id =3D (current_module_ID << 10) & full_id;
}

Of course, that could be optimized, but for the sake of clarity we can =
leave it like this for the moment.

Best,
Alexander


>=20
>=20
> Andy
>=20
>=20
>=20
>=20
>=20
> On Fri, Jun 12, 2015 at 2:42 PM, Alexander Pelov =
<alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>> wrote:
> Michel,
>=20
>=20
>> Le 12 juin 2015 =C3=A0 23:10, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
>>=20
>> I Alexander
>> =20
>> I don=E2=80=99t see any issues with your proposal of using module ID =
0 as aliases.
>> The only constrain is that aliases need to be at the start of the =
select for a GET and at the start of the payload for a PUT.
>=20
> Yes, I suppose you should always start with aliases, but that =
doesn=E2=80=99t sound like a strong constraint to me, so it=E2=80=99s =
seems like the perfect solution.
>=20
>> =20
>> The last things we need to sort out, is the instance selector (keys) =
in the context of a select query parameter containing multiple data =
nodes.
>> =20
>> Let assume the following:
>> =C2=B7         A CoMI client need to select 3 data nodes (Data node =
ID 2049, 2 and 3)
>> =C2=B7         For the first data node, three values need to be =
provided as keys (e.g. 1, "ipv4", "10.0.0.51 "), see =
draft-vanderstok-core-comi-06 page 22.
>> =C2=B7         For the third data node, one integer value need to be =
provided as keys (e.g. 22).
>> =20
>> If we include these keys in the select query parameter encoded in =
CBOR, the result might look as follow:
>> =20
>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[[20491,"ipv4","10.0.0.51",2], 2, [3,22]] )
>=20
> Just a small typo (missed a coma after 2049, right?):
>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[[2049, 1,"ipv4","10.0.0.51",2], 2, [3,22]] )
>=20
> And yes, seems quite straightforward and reasonable to me. If I =
understand correctly, the format you use is the following:
> The select parameter accepts a single integer (long form data ID) or =
an array. In the latter case, each element of the array may be either an =
integer (e.g. data ID), or an array in the form [data ID, key1, key2, =
=E2=80=A6, keyN]. The data ID may be absolute (e.g. long form), or =
relative to the module of the previous data ID.=20
>=20
> This seems quite expressive, simple and compact. I wonder if we=E2=80=99=
re missing something, as it really does seem to have quite a lot of nice =
characteristics.=20
>=20
> Best,
> Alexander
>=20
>=20
>> =20
>> In the current draft, the CoMI server need to support two encoding =
for each selector, CBOR encoding in the payload and text in the keys =
query parameter.
>> With this proposal, both use cases are encoded using CBOR.
>> =20
>> What do you things?
>> =20
>> <image001.jpg>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
>> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
>> =20
>> =20
>> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
>> Sent: 12 juin 2015 15:26
>> To: Michel Veillette
>> Cc: Pascal Thubert (pthubert); Andy Bierman; 6tisch@ietf.org =
<mailto:6tisch@ietf.org>; core@ietf.org <mailto:core@ietf.org>
>> Subject: Re: [6tisch] Reserve space for aliases
>> =20
>> Hi Michel,
>> =20
>> You=E2=80=99re right. As I mentioned in my previous mails, I=E2=80=99m =
pretty happy with the compression of IDs we=E2=80=99ve achieved until =
now, so aliases are not as a pressing issue.=20
>> =20
>> The thing is, if they can be implemented at (almost) zero cost, then =
some of the use-cases become quite interesting.
>> =20
>> You actually provide a very good case with the select option. I=E2=80=99=
ve not thought if it will present some other difficulties, but I =
actually think it facilitates the use of aliases (and I mention this =
only because it will help me also understand the semantics of your =
proposal of the select option).
>> =20
>> If I take the example you provide:
>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4] )=20
>> =20
>> The parameters 2,3,4 are actually relative to the module ID of the =
first one. So, if I try to generalize this (please correct me if I=E2=80=99=
m wrong), I would imagine something like:
>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4, 4097,2,3,4] )=20
>> To resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, =
and module ID=3D2 and relative node IDs =3D1,2,3 and 4.
>> =20
>> This means, that specifying a GET example.com/mg?select =
<http://example.com/mg?select>(1) should resolve to module ID=3D0 and =
relative node ID=3D1. This requires absolutely no additional processing =
from the node.=20
>> =20
>> So, this leaves us back to the initial idea of the aliases. All short =
node IDs are relative to a module ID (so that the long form ID can be =
interpreted). Module ID=3D0 is reserved, and can be used for aliasing if =
the device wishes to support it.=20
>> =20
>> Does this break some of the things along the way?=20
>> =20
>> Best,
>> Alex
>> =20
>> =20
>> =20
>> Le 12 juin 2015 =C3=A0 18:57, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
>> =20
>> Hi Alexander, hi Pascal
>> =20
>> I want to emphases the following points
>> =20
>> =C2=B7         The use of the select query parameter encoded in CBOR =
support of 63 modules with optimized message size instead of only 3 for =
the base64 URI.
>> If the 6TiSCH module ID is allocated within these 63 IDs, there will =
be no message size optimization provided by the aliases mechanism.
>> This make the introduction of aliases less urgent.
>> =20
>> =C2=B7         The message size of the select query parameter encoded =
in CBOR should be equal or smaller compared to the base64 URI.
>> However, the select query parameter encoded in CBOR support a wider =
range of values without size penalty (16 bits instead of 12, 32 bits =
instead of 30)
>> Furthermore, CoMI devices won=E2=80=99t have to support two type of =
encoding depending if IDs are part of the command vs. payload.
>> =20
>> For example:
>> =20
>> Assuming module ID 2
>> Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)
>> Assuming =E2=80=9C,=E2=80=9D separator to select multiple data nodes
>> =20
>> Base64 approach:
>> REQ: GET example.com/mg/gB <http://example.com/mg/gB>         (3 =
bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =E2=80=9CgB=E2=80=9D=
)
>> =20
>> CBOR approach:
>> REQ: GET example.com/mg?select <http://example.com/mg?select>(2049)   =
      (4 bytes; one byte for the CoAP option, 3 for 2049 encoded using =
CBOR)
>> =20
>> Base64 approach:
>> REQ: GET example.com/mg/gB,C,D,E <http://example.com/mg/gB,C,D,E>     =
    (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 bytes for =
=E2=80=9CgB,C,D,E=E2=80=9D)
>> =20
>> CBOR approach:
>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4] )      (8 bytes; 1 byte for the CoAP option, 1 for the CBOR =
array, 3+1+1+1 bytes for the IDs)
>> =20
>> =20
>> <image001.jpg>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
>> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
>> =20
>> =20
>> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
>> Sent: 11 juin 2015 17:06
>> To: Pascal Thubert (pthubert)
>> Cc: Andy Bierman; Michel Veillette; 6tisch@ietf.org =
<mailto:6tisch@ietf.org>; core@ietf.org <mailto:core@ietf.org>
>> Subject: Re: [6tisch] Reserve space for aliases
>> =20
>> Hi Pascal,
>> =20
>> Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) =
<pthubert@cisco.com <mailto:pthubert@cisco.com>> a =C3=A9crit :
>> =20
>> Dear all:
>> =20
>> This looks like the problem of local namespaces,  which is the reason =
why MPLS switches labels.
>> The user may access a limited set of resources from a number of =
servers, and servers are read by many users.
>> You cannot ensure that you have a single alias space that satisfies =
them all.
>> =20
>> Great analogy! And yes, sadly you cannot satisfy them all, at least =
not with all devices.
>>=20
>>=20
>>=20
>> =20
>> So ,what if the user had its own set of aliases and the server also =
had its own set of aliases?
>> =20
>> The aliases could be mapped in a table like a uSAP and a pSAP are =
mapped across layers. Broadly:
>> - First time a user requests a resource in a server, it comes with a =
tuple (userid, useralias, fullname)
>> - The server responds with (serverid, serveralias, userid, user =
alias).
>> =20
>> Actually, I think that this could be worked out in CoMI also. Instead =
of fullname you could provide the YANG id (module ID + data node ID) and =
do the mapping. User alias would be the special aliased YANG id. User =
ID, however, could be a little bit more tricky - how do we ensure that =
it is consistent? Use the IP address of the client could be doable, but =
we=E2=80=99ll have to include the UDP port just in case someone runs two =
clients on the same machine.
>> =20
>>=20
>>=20
>>=20
>> =20
>> After that,  if the server is a constrained device then the user =
talks to the server with (serverid, serveralias) and the user maintains =
a switching table for the resource it uses on various servers.
>> If the user is the constrained device and the server is not, the user =
could talk with (userid, useralias) and the server maintains a switching =
table.
>> =20
>> For large servers, the server may allocate aliases dynamically based =
on what it is being asked. We=E2=80=99d then need to talk about alias =
update or revocation, probably in terms of session and lifetime.
>> =20
>> Does that look usable?
>> =20
>> You are pointing out an interesting question. I would think (but =
maybe I=E2=80=99m mistaken), that the client should have the leading =
role in figuring out what=E2=80=99s happening. The idea is the =
following:
>> =20
>> The client checks if the server supports aliasing, with the possible =
options:
>> S1) no aliasing
>> S2) static/server-defined aliasing
>> S3) dynamic/single alias mapping=20
>>   S3.1) mapping already defined
>>   S3.2) no mapping defined
>> S4) dynamic/per client alias mapping
>> =20
>> Then, the client can take action, depending on its own capabilities =
and the response of the server. E.g. a unconstrained client could obtain =
the alias mapping if it is static (or if there is a single alias mapping =
in place) and cache it locally. So, there will be the following =
correspondence :
>> =20
>> Given:
>> C1) constrained client
>> C2) unconstrained client
>> =20
>> We have:
>> C1 + S1) no aliasing, nothing to do
>> C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. =
otherwise, ignore
>> C1 + S3.2) and C1 + S4) define alias mapping
>> =20
>> C2 + S1) no aliasing, nothing to do
>> C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. =
otherwise, learn it
>> C2 + S3.2) and C2 + S4) define alias mapping
>> =20
>> I would say that the analogy you made with MPLS corresponds quite a =
lot to the C2+S4 case. Personally, I would be most interested into =
having one client configure one alias mapping to all servers in the =
network (e.g. the managing entity), which will profit most from saving =
several bytes on each message exchange. Everyone else could use the =
standard IDs, which we=E2=80=99ve already managed to shrink =
significantly.
>> =20
>> Indeed, with structured module ID + data node ID (20 bits + 10 bits), =
YANG URI compression, and long form/short form, we=E2=80=99ll have quite =
a lot of gain. Reserving module ID =3D 1 for aliases and maybe writing a =
short draft on how the aliasing is implemented seems feasible, where we =
can cover the exact mechanism of alias definition, and client/server =
interaction.
>> =20
>> Alexander
>> =20
>> =20
>> Pascal
>> =20
>> From: 6tisch [mailto:6tisch-bounces@ietf.org =
<mailto:6tisch-bounces@ietf.org>] On Behalf Of Andy Bierman
>> Sent: vendredi 5 juin 2015 20:55
>> To: Michel Veillette
>> Cc: 6tisch@ietf.org <mailto:6tisch@ietf.org>; Alexander Pelov; =
core@ietf.org <mailto:core@ietf.org>
>> Subject: Re: [6tisch] Reserve space for aliases
>> =20
>> =20
>> =20
>> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
>> Hi Alexander
>> =20
>> I have some concerns about allowing CoMI client(s) the control of the =
list of aliases.
>> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
>> =20
>> One possible solution is that each CoMI client send a list of (alias, =
data node ID) to the CoMI server. In this case, the CoMI client might =
receive an error if one or multiple of these aliases are already =
reserved.
>> =20
>> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
>> =20
>> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
>> With this is mind, do you have any alternative solutions to propose?
>> =20
>> =20
>> =20
>> Does this approach allow each client to have a different set of =
aliases,
>> so the server has to maintain a configured mapping for each client?
>> This seems like a lot of overhead and NV-storage requirements
>> on the server.
>> =20
>> Changing the schema identifiers based on which client is
>> sending the request seems like a complicated design change
>> from RESTCONF, NETCONF, or SNMP, where there is only
>> 1 schema tree which is not dependent on the client identity.
>> =20
>> =20
>> Andy
>> =20
>> =20
>> =20
>> =20
>> <image001.jpg>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
>> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
>> =20
>> =20
>> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
>> Sent: 5 juin 2015 12:03
>> To: Michel Veillette
>> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
>> Subject: Re: Reserve space for aliases
>> =20
>> Hi Michel,
>> =20
>> =20
>> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
>> =20
>> Hi Alexander
>> =20
>> In your presentation at 6TiSCH, you propose the following data node =
ID structure.
>> =20
>> =E2=80=A2       32 bits YANG ID
>> =E2=80=93      20 bits for module ID (assigned by IETF)
>> =E2=80=93      10 bits for data node ID (generated deterministically)
>> =20
>> Based on this structure, we can reserve module ID zero for aliases.
>> =20
>> =20
>> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
>> =20
>> =20
>>=20
>> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
>> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
>> This approach require 4 bytes per CoMI server accessed.
>> =20
>> =20
>> It is possible to map an entire module to the alias space and this is =
up to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
>> =20
>> If the /mg/0 alias is reserved for managing the aliases, this could =
be simply saying:
>> POST /mg/0
>> {
>>  "source_uri" : "/mg/BAA"
>> }
>> =20
>> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
>> =20
>> Or, you can dynamically configure the mapping:
>> POST /mg/0
>> {
>>   YANG_id : alias,
>>   YANG_id : alias,
>>   YANG_id : alias
>> }
>> =20
>>=20
>> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
>> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
>> =20
>> This is assuming you need a separate mapping for each server. I would =
suppose that in a network you=E2=80=99ll have a single alias mapping =
(maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
>> =20
>> Best,
>> Alexander
>> =20
>>=20
>> =20
>> <image001.jpg>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
>> www.trilliantinc.com <http://www.trilliantinc.com/>
>=20


--Apple-Mail=_F91B2C22-F40E-4382-8B64-B064D55723B7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Andy,</div><div class=3D""><br =
class=3D""></div><div class=3D"">Not sure if you were referring to the =
example/explanation I tried to provide (maybe Michel had something else =
in mind), but here I go.</div><br class=3D""><div><blockquote =
type=3D"cite" class=3D""><div class=3D"">Le 12 juin 2015 =C3=A0 23:57, =
Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com" =
class=3D"">andy@yumaworks.com</a>&gt; a =C3=A9crit :</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D"">Hi,<div class=3D""><br class=3D""></div><div class=3D"">Here =
is the "JSON for YANG" draft:</div><div class=3D""><a =
href=3D"https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt" =
class=3D"">https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt</a><=
br class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">The long form (module-name:local-name) is only used</div><div =
class=3D"">at the top of a sub-tree and where the module namespace =
changes</div><div class=3D"">(due to an augment from another =
module).</div><div class=3D""><br class=3D""></div><div class=3D"">The =
data is hierarchical and the parser is required to maintain</div><div =
class=3D"">the current module scope. It should be possible to omit the =
module</div><div class=3D"">identifier is nested data, except for nodes =
that start a new</div><div class=3D"">module =
scope.</div></div></div></blockquote><div><br class=3D""></div><div>Ok, =
that sounds perfectly in line with the module ID/data node ID and the =
long form/short form we=E2=80=99ve been discussing with Michel.</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
dir=3D"ltr" class=3D""><div class=3D""><br class=3D""></div><div =
class=3D"">Is this what you have in mind?</div><div class=3D"">For YANG =
Hash (that has no module identifier)</div><div class=3D"">every nested =
node ID needs the full 30 bits,</div><div class=3D"">but this is not =
required for managed IDs.</div></div></div></blockquote><div><br =
class=3D""></div><div>If you have your YANG hash ID behave in a =
structured way (e.g. stop being a hash..), then you don=E2=80=99t need =
to send the full 30 bits.&nbsp;</div><div><br class=3D""></div><div>If I =
take the following example (which is a strange case just for the sake of =
it):</div><div><span style=3D"color: rgb(31, 73, 125); font-family: =
Calibri, sans-serif; font-size: 11pt;" class=3D"">REQ: =
GET&nbsp;</span><a href=3D"http://example.com/mg?select" target=3D"_blank"=
 class=3D"" style=3D"font-family: Calibri, sans-serif; font-size: 11pt; =
color: purple;"><span class=3D"">example.com/mg?select</span></a><span =
style=3D"color: rgb(31, 73, 125); font-family: Calibri, sans-serif; =
font-size: 11pt;" class=3D"">( [5, 2049, 2, 3, 4, 4097, 2, 3, 4, 2053, =
2055, 6] )</span></div><div><span style=3D"color: rgb(31, 73, 125); =
font-family: Calibri, sans-serif; font-size: 11pt;" class=3D""><br =
class=3D""></span></div><div>That would resolve to requesting the =
following YANG IDs:</div><div>long form =3D module ID / short =
form</div><div>5 =3D 0 / 5</div><div>2049 =3D 1 / 1</div><div>2050 =3D 1 =
/ 2</div><div>2051 =3D 1 / 3</div><div>2052 =3D 1 / 4</div><div>4097 =3D =
2 / 1</div><div>4098 =3D 2 / 2</div><div>4099 =3D 2 / 3</div><div>4099 =3D=
 2 / 4</div><div>2053 =3D 1 / 5</div><div>2055 =3D 1 / 7</div><div>2054 =
=3D 1 / 6</div><div><br class=3D""></div><div>Of course, that is not =
(directly) related to the way the YANG parser processes the YANG =
modules. It is a way to parse the select option, and is straightforward. =
Consecutively, element by element apply something of the =
form:</div><div><br class=3D""></div><div>if (full_id =
&amp;&nbsp;0x3FFFFC00) &gt; 0) {</div><div>&nbsp; =
&nbsp;current_module_ID =3D full_id &gt;&gt; =
10;</div><div>}</div><div>else {</div><div>&nbsp; full_id =3D =
(current_module_ID &lt;&lt; 10) &amp; full_id;</div><div>}</div><div><br =
class=3D""></div><div>Of course, that could be optimized, but for the =
sake of clarity we can leave it like this for the moment.</div><div><br =
class=3D""></div><div>Best,</div><div>Alexander</div><div><br =
class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div dir=3D"ltr" class=3D""><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">Andy</div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""></div></div><div class=3D"gmail_extra"><br =
class=3D""><div class=3D"gmail_quote">On Fri, Jun 12, 2015 at 2:42 PM, =
Alexander Pelov <span dir=3D"ltr" class=3D"">&lt;<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
class=3D"">alexander.pelov@telecom-bretagne.eu</a>&gt;</span> wrote:<br =
class=3D""><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div =
style=3D"word-wrap:break-word" class=3D""><div =
class=3D"">Michel,</div><div class=3D""><br class=3D""></div><br =
class=3D""><div class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">Le 12 juin 2015 =C3=A0 23:10, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit =
:</div><br class=3D""><div class=3D""><div =
style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia=
nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text=
-align:start;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">I Alexander<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">I don=E2=80=99t see any issues with your proposal of using =
module ID 0 as aliases.<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The only constrain is that aliases need to be at the start =
of the select for a GET and at the start of the payload for a =
PUT.</span></div></div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">Yes, I suppose you should always start =
with aliases, but that doesn=E2=80=99t sound like a strong constraint to =
me, so it=E2=80=99s seems like the perfect solution.</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia=
nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text=
-align:start;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The last things we need to sort out, is the instance =
selector (keys) in the context of a select query parameter containing =
multiple data nodes.<u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Let assume the following:<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in 0.0001pt =
0.5in;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><span=
 style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D""><span class=3D"">=C2=B7<span =
style=3D"font-style:normal;font-variant:normal;font-weight:normal;font-siz=
e:7pt;line-height:normal;font-family:'Times New Roman'" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span></span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">A CoMI client need to select 3 data nodes (Data node ID =
2049, 2 and 3)<u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:'Times =
New Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D""><span class=3D"">=C2=B7<span =
style=3D"font-style:normal;font-variant:normal;font-weight:normal;font-siz=
e:7pt;line-height:normal;font-family:'Times New Roman'" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span></span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">For the first data node, three values need to be provided =
as keys (e.g. 1,</span><span class=3D"">&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">"ipv4",</span><span class=3D"">&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">"10.0.0.51</span><span class=3D"">&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">"), see draft-vanderstok-core-comi-06 page 22.<u =
class=3D""></u><u class=3D""></u></span></div><div style=3D"margin:0in =
0in 0.0001pt 0.5in;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D""><span class=3D"">=C2=B7<span =
style=3D"font-style:normal;font-variant:normal;font-weight:normal;font-siz=
e:7pt;line-height:normal;font-family:'Times New Roman'" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span></span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">For the third data node, one integer value need to be =
provided as keys (e.g. 22).<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">If we include these keys in the select query parameter =
encoded in CBOR, the result might look as follow:<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">example.com/mg?select</a>( [[20491,"ipv4","10.0.0.51",2], 2, =
[3,22]] )</span></div></div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">Just a small typo (missed a coma after =
2049, right?):</div><div class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" =
style=3D"color:purple" target=3D"_blank" =
class=3D"">example.com/mg?select</a>( [[2049, 1,"ipv4","10.0.0.51",2], =
2, [3,22]] )</span></div></div></blockquote><br class=3D""></div><div =
class=3D"">And yes, seems quite straightforward and reasonable to me. If =
I understand correctly, the format you use is the following:</div><div =
class=3D"">The select parameter accepts a single integer (long form data =
ID) or an array. In the latter case, each element of the array may be =
either an integer (e.g. data ID), or an array in the form [data ID, =
key1, key2, =E2=80=A6, keyN]. The data ID may be absolute (e.g. long =
form), or relative to the module of the previous data =
ID.&nbsp;</div><div class=3D""><br class=3D""></div><div class=3D"">This =
seems quite expressive, simple and compact. I wonder if we=E2=80=99re =
missing something, as it really does seem to have quite a lot of nice =
characteristics.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">Best,</div><div class=3D"">Alexander</div><div class=3D""><br =
class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div =
style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia=
nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text=
-align:start;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">In the current draft, the CoMI server need to support two =
encoding for each selector, CBOR encoding in the payload and text in the =
keys query parameter.<u class=3D""></u><u class=3D""></u></span></div><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">With this proposal, both use cases are encoded using =
CBOR.<u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">What do you things?<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div class=3D""><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" =
style=3D"width:537.75pt;border-collapse:collapse" class=3D""><tbody =
class=3D""><tr style=3D"height:49.05pt" class=3D""><td width=3D"137" =
style=3D"width:103.1pt;border-style:none solid none =
none;border-right-color:windowtext;border-right-width:1pt;padding:0in =
5.4pt;height:49.05pt" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><span class=3D"">&lt;image001.jpg&gt;</span><u =
class=3D""></u><u class=3D""></u></span></div></td><td width=3D"580" =
valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt" =
class=3D""><div style=3D"margin:0in 0in 0.0001pt =
8.1pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><span=
 style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)"=
 class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt 8.1pt;font-size:12pt;font-family:'Times =
New Roman',serif" class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:rgb(5,99,193)" =
class=3D"">michel.veillette@trilliantinc.com</span></a><u =
class=3D""></u><u class=3D""></u></span></div><div style=3D"margin:0in =
0in 0.0001pt 8.1pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"font-size:9pt;font-family:Arial,sans-serif" =
class=3D"">www.trilliantinc.com</span></a></span><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D""><span class=3D"">&nbsp;</span>&nbsp;<span =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><u class=3D""></u><u =
class=3D""></u></span></div></td></tr></tbody></table><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div class=3D""><div =
style=3D"border-style:solid none =
none;border-top-color:rgb(225,225,225);border-top-width:1pt;padding:3pt =
0in 0in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><b=
 class=3D""><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">From:</span></b><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D""><span =
class=3D"">&nbsp;</span>Alexander Pelov [<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"">&nbsp;</span><br class=3D""><b class=3D"">Sent:</b><span =
class=3D"">&nbsp;</span>12 juin 2015 15:26<br class=3D""><b =
class=3D"">To:</b><span class=3D"">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span class=3D"">&nbsp;</span>Pascal =
Thubert (pthubert); Andy Bierman; <a href=3D"mailto:6tisch@ietf.org" =
target=3D"_blank" class=3D"">6tisch@ietf.org</a>; <a =
href=3D"mailto:core@ietf.org" target=3D"_blank" =
class=3D"">core@ietf.org</a><br class=3D""><b class=3D"">Subject:</b><span=
 class=3D"">&nbsp;</span>Re: [6tisch] Reserve space for aliases<u =
class=3D""></u><u class=3D""></u></span></div></div></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Hi=
 Michel,<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">You=E2=80=99re right. As I mentioned in my =
previous mails, I=E2=80=99m pretty happy with the compression of IDs =
we=E2=80=99ve achieved until now, so aliases are not as a pressing =
issue.&nbsp;<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">The thing is, if they can be implemented at =
(almost) zero cost, then some of the use-cases become quite =
interesting.<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">You actually provide a very good case with the =
select option. I=E2=80=99ve not thought if it will present some other =
difficulties, but I actually think it facilitates the use of aliases =
(and I mention this only because it will help me also understand the =
semantics of your proposal of the select option).<u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">If I take the example you provide:<u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4] =
)&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></blockquote><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">The parameters 2,3,4 are actually relative to =
the module ID of the first one. So, if I try to generalize this (please =
correct me if I=E2=80=99m wrong), I would imagine something like:<u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4, 4097,2,3,4] =
)&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></blockquote><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">To=
 resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, and =
module ID=3D2 and relative node IDs =3D1,2,3 and 4.<u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">This means, that specifying a GET<span =
class=3D"">&nbsp;</span><a href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">example.com/mg?select</a>(1) should resolve to module ID=3D0 =
and relative node ID=3D1. This requires absolutely no additional =
processing from the node.&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">So, this leaves us back to the initial idea of =
the aliases. All short node IDs are relative to a module ID (so that the =
long form ID can be interpreted). Module ID=3D0 is reserved, and can be =
used for aliasing if the device wishes to support it.&nbsp;<u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Does this break some of the things along the way?&nbsp;<u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Best,<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Alex<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div><div class=3D""><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Le 12 juin 2015 =C3=A0 18:57, Michel Veillette =
&lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :<u =
class=3D""></u><u class=3D""></u></div></div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><u class=3D""></u>&nbsp;<u class=3D""></u></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Hi Alexander, hi Pascal</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">I want to emphases the following points</span><u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D"">=C2=B7</span><span style=3D"font-size:7pt;color:rgb(31,73,125)"=
 class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The use of the select query parameter encoded in CBOR =
support of 63 modules with optimized message size instead of only 3 for =
the base64 URI.</span><u class=3D""></u><u class=3D""></u></div></div><div=
 style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">If the 6TiSCH module ID is allocated within these 63 IDs, =
there will be no message size optimization provided by the aliases =
mechanism.</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">This make the introduction of aliases less =
urgent.</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D"">=C2=B7</span><span style=3D"font-size:7pt;color:rgb(31,73,125)"=
 class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The message size of the select query parameter encoded in =
CBOR should be equal or smaller compared to the base64 URI.</span><u =
class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">However, the select query parameter encoded in CBOR =
support a wider range of values without size penalty (16 bits instead of =
12, 32 bits instead of 30)</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Furthermore, CoMI devices won=E2=80=99t have to support =
two type of encoding depending if IDs are part of the command vs. =
payload.</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">For example:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Assuming module ID 2</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, =
2051)</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Assuming =E2=80=9C,=E2=80=9D separator to select multiple =
data nodes</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Base64 approach:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg/gB" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg/gB</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; (3 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =
=E2=80=9CgB=E2=80=9D)</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">CBOR approach:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg?select</span></a>(2049)&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp; (4 bytes; one byte for the CoAP option, 3 for =
2049 encoded using CBOR)</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Base64 approach:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg/gB,C,D,E" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg/gB,C,D,E</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 =
bytes for =E2=80=9CgB,C,D,E=E2=80=9D)</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">CBOR approach:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4] =
)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8 bytes; 1 byte for the CoAP option, 1 =
for the CBOR array, 3+1+1+1 bytes for the IDs)</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" =
style=3D"width:537.75pt;border-collapse:collapse" class=3D""><tbody =
class=3D""><tr style=3D"height:49.05pt" class=3D""><td width=3D"137" =
style=3D"width:103.1pt;border-style:none solid none =
none;border-right-color:windowtext;border-right-width:1pt;padding:0in =
5.4pt;height:49.05pt" class=3D""><div class=3D""><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&lt;image001.jpg&gt;</span><u class=3D""></u><u =
class=3D""></u></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt" class=3D""><div =
style=3D"margin-left:8.1pt" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:rgb(5,99,193)" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><u =
class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple" =
class=3D"">www.trilliantinc.com</span></a></span><span class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">&nbsp;<span class=3D"">&nbsp;</span></span><u class=3D""></u><u=
 class=3D""></u></div></div></td></tr></tbody></table><div class=3D""><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div =
style=3D"border-style:solid none =
none;border-top-color:rgb(225,225,225);border-top-width:1pt;padding:3pt =
0in 0in" class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><b=
 class=3D""><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">From:</span></b><span class=3D""><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span></span><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">Alexander Pelov [<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"">&nbsp;</span><br class=3D""><b class=3D"">Sent:</b><span =
class=3D"">&nbsp;</span>11 juin 2015 17:06<br class=3D""><b =
class=3D"">To:</b><span class=3D"">&nbsp;</span>Pascal Thubert =
(pthubert)<br class=3D""><b class=3D"">Cc:</b><span =
class=3D"">&nbsp;</span>Andy Bierman; Michel Veillette;<span =
class=3D"">&nbsp;</span><a href=3D"mailto:6tisch@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">6tisch@ietf.org</a>;<span class=3D"">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">core@ietf.org</a><br class=3D""><b class=3D"">Subject:</b><span=
 class=3D"">&nbsp;</span>Re: [6tisch] Reserve space for aliases</span><u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Hi=
 Pascal,<u class=3D""></u><u class=3D""></u></div></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><blockquote style=3D"margin-top:5pt;margin-bottom:5pt" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Le=
 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) &lt;<a =
href=3D"mailto:pthubert@cisco.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">pthubert@cisco.com</span></a>&gt; a =C3=A9crit :<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Dear all:</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">This looks like the problem of local namespaces,&nbsp; =
which is the reason why MPLS switches labels.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The user may access a limited set of resources from a =
number of servers, and servers are read by many users.</span><u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">You cannot ensure that you have a single alias space that =
satisfies them all.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></blockquote><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Great analogy! And yes, sadly you cannot =
satisfy them all, at least not with all devices.<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><br class=3D""><br class=3D""><br class=3D""><u =
class=3D""></u><u class=3D""></u></div></div><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">So ,what if the user had its own set of aliases and the =
server also had its own set of aliases?</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The aliases could be mapped in a table like a uSAP and a =
pSAP are mapped across layers. Broadly:</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">- First time a user requests a resource in a server, it =
comes with a tuple (userid, useralias, fullname)</span><u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">- The server responds with (serverid, serveralias, userid, =
user alias).</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></blockquote><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Actually, I think that this could be worked out =
in CoMI also. Instead of fullname you could provide the YANG id (module =
ID + data node ID) and do the mapping. User alias would be the special =
aliased YANG id. User ID, however, could be a little bit more tricky - =
how do we ensure that it is consistent? Use the IP address of the client =
could be doable, but we=E2=80=99ll have to include the UDP port just in =
case someone runs two clients on the same machine.<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><br class=3D""><br class=3D""><br class=3D""><u =
class=3D""></u><u class=3D""></u></div></div><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">After that,&nbsp; if the server is a constrained device =
then the user talks to the server with (serverid, serveralias) and the =
user maintains a switching table for the resource it uses on various =
servers.</span><u class=3D""></u><u class=3D""></u></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">If the user is the constrained device and the server is =
not, the user could talk with (userid, useralias) and the server =
maintains a switching table.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">For large servers, the server may allocate aliases =
dynamically based on what it is being asked. We=E2=80=99d then need to =
talk about alias update or revocation, probably in terms of session and =
lifetime.</span><u class=3D""></u><u class=3D""></u></div></div></div><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Does that look usable?</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></blockquote><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">You are pointing out an interesting question. I =
would think (but maybe I=E2=80=99m mistaken), that the client should =
have the leading role in figuring out what=E2=80=99s happening. The idea =
is the following:<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">The client checks if the server supports =
aliasing, with the possible options:<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">S1) no aliasing<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">S2) static/server-defined aliasing<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">S3) dynamic/single alias mapping&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp; S3.1) mapping already defined<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp; S3.2) no mapping defined<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">S4) dynamic/per client alias mapping<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Then, the client can take action, depending on =
its own capabilities and the response of the server. E.g. a =
unconstrained client could obtain the alias mapping if it is static (or =
if there is a single alias mapping in place) and cache it locally. So, =
there will be the following correspondence :<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Given:<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">C1) constrained client<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">C2) unconstrained client<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">We have:<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">C1 + S1) no aliasing, nothing to do<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C1=
 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise, =
ignore<u class=3D""></u><u class=3D""></u></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C1=
 + S3.2) and C1 + S4) define alias mapping<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C2=
 + S1) no aliasing, nothing to do<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C2=
 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise, =
learn it<u class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C2=
 + S3.2) and C2 + S4) define alias mapping<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">I would say that the analogy you made with MPLS =
corresponds quite a lot to the C2+S4 case. Personally, I would be most =
interested into having one client configure one alias mapping to all =
servers in the network (e.g. the managing entity), which will profit =
most from saving several bytes on each message exchange. Everyone else =
could use the standard IDs, which we=E2=80=99ve already managed to =
shrink significantly.<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Indeed, with structured module ID + data node =
ID (20 bits + 10 bits), YANG URI compression, and long form/short form, =
we=E2=80=99ll have quite a lot of gain. Reserving module ID =3D 1 for =
aliases and maybe writing a short draft on how the aliasing is =
implemented seems feasible, where we can cover the exact mechanism of =
alias definition, and client/server interaction.<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Alexander<u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Pascal</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div style=3D"border-style:none none =
none solid;border-left-color:blue;border-left-width:1.5pt;padding:0in =
0in 0in 4pt" class=3D""><div class=3D""><div style=3D"border-style:solid =
none =
none;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt =
0in 0in" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><b class=3D""><span =
style=3D"font-size:10pt;font-family:Tahoma,sans-serif" =
class=3D"">From:</span></b><span class=3D""><span =
style=3D"font-size:10pt;font-family:Tahoma,sans-serif" =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:10pt;font-family:Tahoma,sans-serif" class=3D"">6tisch =
[<a href=3D"mailto:6tisch-bounces@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">mailto:6tisch-bounces@ietf.org</span></a>]<span =
class=3D"">&nbsp;</span><b class=3D"">On Behalf Of<span =
class=3D"">&nbsp;</span></b>Andy Bierman<br class=3D""><b =
class=3D"">Sent:</b><span class=3D"">&nbsp;</span>vendredi 5 juin 2015 =
20:55<br class=3D""><b class=3D"">To:</b><span =
class=3D"">&nbsp;</span>Michel Veillette<br class=3D""><b =
class=3D"">Cc:</b><span class=3D"">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">6tisch@ietf.org</span></a>; Alexander Pelov;<span =
class=3D"">&nbsp;</span><a href=3D"mailto:core@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span class=3D"">&nbsp;</span>Re: [6tisch] =
Reserve space for aliases</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">On=
 Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; wrote:<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Hi Alexander</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">I have some concerns about allowing CoMI client(s) the =
control of the list of aliases.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">This approach work fine for the first CoMI application =
(e.g. 6TiSCH) but what do we do with the subsequent CoMI =
application?</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">One possible solution is that each CoMI client send a list =
of (alias, data node ID) to the CoMI server. In this case, the CoMI =
client might receive an error if one or multiple of these aliases are =
already reserved.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">A second possible solution is that each CoMI client send a =
list of (data node ID) and get a list of (alias, data node ID) from the =
CoMI server. In this case, CoMI clients will have to deal with a mix =
population of aliases.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The proposed solution need to scale to a multi-vendors, =
multiple applications environment.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">With this is mind, do you have any alternative solutions =
to propose?</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Does this approach allow each client to have a different set =
of aliases,<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">so=
 the server has to maintain a configured mapping for each client?<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">This seems like a lot of overhead and NV-storage =
requirements<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">on=
 the server.<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Changing the schema identifiers based on which client is<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">sending the request seems like a complicated design change<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">from RESTCONF, NETCONF, or SNMP, where there is only<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">1 =
schema tree which is not dependent on the client identity.<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Andy<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><blockquote =
style=3D"border-style:none none none =
solid;border-left-color:rgb(204,204,204);border-left-width:1pt;padding:0in=
 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt" class=3D""><div class=3D""><div =
class=3D""><div class=3D""><table border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" width=3D"717" =
style=3D"width:537.75pt;border-collapse:collapse" class=3D""><tbody =
class=3D""><tr style=3D"height:49.05pt" class=3D""><td width=3D"137" =
style=3D"width:103.1pt;border-style:none solid none =
none;border-right-color:windowtext;border-right-width:1pt;padding:0in =
5.4pt;height:49.05pt" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&lt;image001.jpg&gt;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt" class=3D""><div =
style=3D"margin-left:8.1pt" class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><u class=3D""></u><u class=3D""></u></div></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:rgb(5,99,193)" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><u =
class=3D""></u><u class=3D""></u></div></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple" =
class=3D"">www.trilliantinc.com</span></a></span><span class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">&nbsp;<span class=3D"">&nbsp;</span></span><u class=3D""></u><u=
 class=3D""></u></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div =
style=3D"border-style:solid none =
none;border-top-color:rgb(225,225,225);border-top-width:1pt;padding:3pt =
0in 0in" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><b class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">From:</span></b><span class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">Alexander Pelov [mailto:<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">alexander.pelov@telecom-bretagne.eu</span></a>]<span =
class=3D"">&nbsp;</span><br class=3D""><b class=3D"">Sent:</b><span =
class=3D"">&nbsp;</span>5 juin 2015 12:03<br class=3D""><b =
class=3D"">To:</b><span class=3D"">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span class=3D"">&nbsp;</span>Andy =
Bierman;<span class=3D"">&nbsp;</span><a href=3D"mailto:6tisch@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">6tisch@ietf.org</span></a>;<span class=3D"">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span class=3D"">&nbsp;</span>Re: Reserve space =
for aliases</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Hi=
 Michel,<u class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Le=
 5 juin 2015 =C3=A0 17:17, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; a =C3=A9crit =
:<u class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">Hi Alexander</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">In your presentation at 6TiSCH, you propose the following =
data node ID structure.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" style=3D"border-collapse:collapse" =
class=3D""><tbody class=3D""><tr class=3D""><td width=3D"623" =
valign=3D"top" style=3D"width:467.5pt;border:1pt solid =
windowtext;padding:0in 5.4pt" class=3D""><div style=3D"margin-left:0.5in" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Arial,sans-serif" =
class=3D"">=E2=80=A2</span><span style=3D"font-size:7pt" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">32 =
bits YANG ID</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div style=3D"margin-left:1in" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Arial,sans-serif" =
class=3D"">=E2=80=93</span><span style=3D"font-size:7pt" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">20 =
bits for module ID (assigned by IETF)</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div style=3D"margin-left:1in" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Arial,sans-serif" =
class=3D"">=E2=80=93</span><span style=3D"font-size:7pt" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">10 =
bits for data node ID (generated deterministically)</span><u =
class=3D""></u><u =
class=3D""></u></div></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">Based on this structure, we can reserve&nbsp;module ID zero =
for aliases.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">I =
was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.<u class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin:0in 0in 12pt;font-size:12pt;font-family:'Times New =
Roman',serif">&nbsp;<u class=3D""></u><u class=3D""></u></p><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">If we want to minimize both the network an node resources =
require by this alias mechanism, we can map an entire module to this =
space.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">This can be implemented by a single integer resource (e.g. =
leaf alliassedModule { type uint32 } )</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">This approach require 4 bytes per CoMI server =
accessed.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">It=
 is possible to map an entire module to the alias space and this is up =
to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">If=
 the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">POST /mg/0<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">{<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;"source_uri" : "/mg/BAA"<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">}<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">where /mg/BAA is the YANG id of the module (20 bits module ID =
+ 10 bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Or, you can dynamically configure the mapping:<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">POST /mg/0<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">{<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp; YANG_id : alias,<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp; YANG_id : alias,<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp; YANG_id : alias<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">}<u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin:0in 0in 12pt;font-size:12pt;font-family:'Times New =
Roman',serif">&nbsp;<u class=3D""></u><u class=3D""></u></p><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">If we want a more complex but more flexible aliases =
mechanism, your proposed map of (allias, YANG ID) seem the =
solution.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">However, we have to consider that this structure can be as =
large as&nbsp;<u class=3D"">1250 bytes per CoMI server =
accessed</u>&nbsp;if limited to 256 aliases.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">This is assuming you need a separate mapping for each server. =
I would suppose that in a network you=E2=80=99ll have a single alias =
mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.&nbsp;<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Best,<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Alexander<u class=3D""></u><u =
class=3D""></u></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin:0in 0in 12pt;font-size:12pt;font-family:'Times New =
Roman',serif">&nbsp;<u class=3D""></u><u class=3D""></u></p><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" =
style=3D"width:537.75pt;border-collapse:collapse" class=3D""><tbody =
class=3D""><tr style=3D"height:49.05pt" class=3D""><td width=3D"137" =
style=3D"width:103.1pt;border-style:none solid none =
none;border-right-color:windowtext;border-right-width:1pt;padding:0in =
5.4pt;height:49.05pt" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&lt;image001.jpg&gt;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></td><td width=3D"580" =
valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt" =
class=3D""><div style=3D"margin-left:8.1pt" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:9pt;font-family:Arial,sans-serif" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div style=3D"margin-left:8.1pt" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:9pt;font-family:Arial,sans-serif" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:rgb(5,99,193)" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple" =
class=3D"">www.trilliantinc.com</span></a></span></div></div></div></div><=
/td></tr></tbody></table></div></blockquote></div></div></div></blockquote=
></div></div></div></div></div></blockquote></div></div></blockquote></div=
></div></div></blockquote></div><br =
class=3D""></div></blockquote></div><br class=3D""></div>
</div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_F91B2C22-F40E-4382-8B64-B064D55723B7--


From nobody Fri Jun 12 15:58:56 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C41111A1EE8 for <core@ietfa.amsl.com>; Fri, 12 Jun 2015 15:58:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level: 
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GEMOKPeqISaX for <core@ietfa.amsl.com>; Fri, 12 Jun 2015 15:58:46 -0700 (PDT)
Received: from mail-la0-f41.google.com (mail-la0-f41.google.com [209.85.215.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B7B931A1B4A for <core@ietf.org>; Fri, 12 Jun 2015 15:58:45 -0700 (PDT)
Received: by labko7 with SMTP id ko7so28470144lab.2 for <core@ietf.org>; Fri, 12 Jun 2015 15:58:44 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=cnbj0wLxTD4Kv170U/ApK1QytvF00wlJQIMmWcONqV4=; b=WC/sCXN8yRPBO/jyU7J0Wmfdm/XazYyYh62drYcM67QBsvS7K1RRupIWG6ku5uGGvj hzxEfNORqAsbmv9YObUATHUuvF91oWW53+HPHJbyRBbcTWU9Y86zFLqK0svkntPcH48k c2kS/dc/C0NFwoOlwY4JEMEZtwJ4ZAKwOsZ0ZSJcPciMdoZm8UGlzukpQgrUcDbVp19y gDfapoADcENNMN52ha2gzZLtYhvj6wCE+89K8uywj6xjCbFJd9M8Nhs/VYTakBh9SdYp vZ4j1V1Wgl/NwTK9wkY4CjdmTJ7dKzUfZGd08cF0pwlGA+tmlr72fAkh3yn8GVaorqoW rcGQ==
X-Gm-Message-State: ALoCoQk1O319ExM1Y9PNemZPXqkwLehNesdrbKIPBO59SOx1Ek+YqG5hpmTEUpV4tQi71KXPvwTz
MIME-Version: 1.0
X-Received: by 10.112.56.42 with SMTP id x10mr17220660lbp.123.1434149924084; Fri, 12 Jun 2015 15:58:44 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Fri, 12 Jun 2015 15:58:43 -0700 (PDT)
In-Reply-To: <93162CDB-3DC8-442E-9427-68DF7EB0CD31@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu> <CO2PR0601MB792C118ECA44AD8FD152307FEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <43EF5C59-CF72-440B-8BC0-931D8F6EB40A@telecom-bretagne.eu> <CABCOCHS2z-ps51JHp9cK7+oobHoPXAa-vu+hKMzMF8f31OboNw@mail.gmail.com> <93162CDB-3DC8-442E-9427-68DF7EB0CD31@telecom-bretagne.eu>
Date: Fri, 12 Jun 2015 15:58:43 -0700
Message-ID: <CABCOCHTHBdfA1snNB7BepbxwqDj1TvsxJ23yMw9SJevStKGSVw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Content-Type: multipart/alternative; boundary=001a113496f2c7b38d05185a0cae
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/7BrF7PXjWqf3c73O4nQZHaLcipg>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 22:58:54 -0000

--001a113496f2c7b38d05185a0cae
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi,

I am not convinced that aliases are worth all the effort
because most (95%?) of the IDs in the payload will only
need 10 bits.


Andy




On Fri, Jun 12, 2015 at 3:25 PM, Alexander Pelov <
alexander.pelov@telecom-bretagne.eu> wrote:

> Hi Andy,
>
> Not sure if you were referring to the example/explanation I tried to
> provide (maybe Michel had something else in mind), but here I go.
>
> Le 12 juin 2015 =C3=A0 23:57, Andy Bierman <andy@yumaworks.com> a =C3=A9c=
rit :
>
> Hi,
>
> Here is the "JSON for YANG" draft:
> https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt
>
> The long form (module-name:local-name) is only used
> at the top of a sub-tree and where the module namespace changes
> (due to an augment from another module).
>
> The data is hierarchical and the parser is required to maintain
> the current module scope. It should be possible to omit the module
> identifier is nested data, except for nodes that start a new
> module scope.
>
>
> Ok, that sounds perfectly in line with the module ID/data node ID and the
> long form/short form we=E2=80=99ve been discussing with Michel.
>
>
> Is this what you have in mind?
> For YANG Hash (that has no module identifier)
> every nested node ID needs the full 30 bits,
> but this is not required for managed IDs.
>
>
> If you have your YANG hash ID behave in a structured way (e.g. stop being
> a hash..), then you don=E2=80=99t need to send the full 30 bits.
>
> If I take the following example (which is a strange case just for the sak=
e
> of it):
> REQ: GET example.com/mg?select( [5, 2049, 2, 3, 4, 4097, 2, 3, 4, 2053,
> 2055, 6] )
>
> That would resolve to requesting the following YANG IDs:
> long form =3D module ID / short form
> 5 =3D 0 / 5
> 2049 =3D 1 / 1
> 2050 =3D 1 / 2
> 2051 =3D 1 / 3
> 2052 =3D 1 / 4
> 4097 =3D 2 / 1
> 4098 =3D 2 / 2
> 4099 =3D 2 / 3
> 4099 =3D 2 / 4
> 2053 =3D 1 / 5
> 2055 =3D 1 / 7
> 2054 =3D 1 / 6
>
> Of course, that is not (directly) related to the way the YANG parser
> processes the YANG modules. It is a way to parse the select option, and i=
s
> straightforward. Consecutively, element by element apply something of the
> form:
>
> if (full_id & 0x3FFFFC00) > 0) {
>    current_module_ID =3D full_id >> 10;
> }
> else {
>   full_id =3D (current_module_ID << 10) & full_id;
> }
>
> Of course, that could be optimized, but for the sake of clarity we can
> leave it like this for the moment.
>
> Best,
> Alexander
>
>
>
>
> Andy
>
>
>
>
>
> On Fri, Jun 12, 2015 at 2:42 PM, Alexander Pelov <
> alexander.pelov@telecom-bretagne.eu> wrote:
>
>> Michel,
>>
>>
>> Le 12 juin 2015 =C3=A0 23:10, Michel Veillette <
>> Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>>
>> I Alexander
>>
>> I don=E2=80=99t see any issues with your proposal of using module ID 0 a=
s aliases.
>> The only constrain is that aliases need to be at the start of the select
>> for a GET and at the start of the payload for a PUT.
>>
>>
>> Yes, I suppose you should always start with aliases, but that doesn=E2=
=80=99t
>> sound like a strong constraint to me, so it=E2=80=99s seems like the per=
fect
>> solution.
>>
>>
>> The last things we need to sort out, is the instance selector (keys) in
>> the context of a select query parameter containing multiple data nodes.
>>
>> Let assume the following:
>> =C2=B7         A CoMI client need to select 3 data nodes (Data node ID 2=
049,
>> 2 and 3)
>> =C2=B7         For the first data node, three values need to be provided=
 as
>> keys (e.g. 1, "ipv4", "10.0.0.51 "), see draft-vanderstok-core-comi-06
>> page 22.
>> =C2=B7         For the third data node, one integer value need to be pro=
vided
>> as keys (e.g. 22).
>>
>> If we include these keys in the select query parameter encoded in CBOR,
>> the result might look as follow:
>>
>> REQ: GET example.com/mg?select( [[20491,"ipv4","10.0.0.51",2], 2,
>> [3,22]] )
>>
>>
>> Just a small typo (missed a coma after 2049, right?):
>>
>> REQ: GET example.com/mg?select( [[2049, 1,"ipv4","10.0.0.51",2], 2,
>> [3,22]] )
>>
>>
>> And yes, seems quite straightforward and reasonable to me. If I
>> understand correctly, the format you use is the following:
>> The select parameter accepts a single integer (long form data ID) or an
>> array. In the latter case, each element of the array may be either an
>> integer (e.g. data ID), or an array in the form [data ID, key1, key2, =
=E2=80=A6,
>> keyN]. The data ID may be absolute (e.g. long form), or relative to the
>> module of the previous data ID.
>>
>> This seems quite expressive, simple and compact. I wonder if we=E2=80=99=
re
>> missing something, as it really does seem to have quite a lot of nice
>> characteristics.
>>
>> Best,
>> Alexander
>>
>>
>>
>> In the current draft, the CoMI server need to support two encoding for
>> each selector, CBOR encoding in the payload and text in the keys query
>> parameter.
>> With this proposal, both use cases are encoded using CBOR.
>>
>> What do you things?
>>
>> <image001.jpg>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu
>> <alexander.pelov@telecom-bretagne.eu>]
>> *Sent:* 12 juin 2015 15:26
>> *To:* Michel Veillette
>> *Cc:* Pascal Thubert (pthubert); Andy Bierman; 6tisch@ietf.org;
>> core@ietf.org
>> *Subject:* Re: [6tisch] Reserve space for aliases
>>
>> Hi Michel,
>>
>> You=E2=80=99re right. As I mentioned in my previous mails, I=E2=80=99m p=
retty happy with
>> the compression of IDs we=E2=80=99ve achieved until now, so aliases are =
not as a
>> pressing issue.
>>
>> The thing is, if they can be implemented at (almost) zero cost, then som=
e
>> of the use-cases become quite interesting.
>>
>> You actually provide a very good case with the select option. I=E2=80=99=
ve not
>> thought if it will present some other difficulties, but I actually think=
 it
>> facilitates the use of aliases (and I mention this only because it will
>> help me also understand the semantics of your proposal of the select
>> option).
>>
>> If I take the example you provide:
>>
>> REQ: GET example.com/mg?select( [2049,2,3,4] )
>>
>>
>> The parameters 2,3,4 are actually relative to the module ID of the first
>> one. So, if I try to generalize this (please correct me if I=E2=80=99m w=
rong), I
>> would imagine something like:
>>
>> REQ: GET example.com/mg?select( [2049,2,3,4, 4097,2,3,4] )
>>
>> To resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, an=
d
>> module ID=3D2 and relative node IDs =3D1,2,3 and 4.
>>
>> This means, that specifying a GET example.com/mg?select(1) should
>> resolve to module ID=3D0 and relative node ID=3D1. This requires absolut=
ely no
>> additional processing from the node.
>>
>> So, this leaves us back to the initial idea of the aliases. All short
>> node IDs are relative to a module ID (so that the long form ID can be
>> interpreted). Module ID=3D0 is reserved, and can be used for aliasing if=
 the
>> device wishes to support it.
>>
>> Does this break some of the things along the way?
>>
>> Best,
>> Alex
>>
>>
>>
>>
>> Le 12 juin 2015 =C3=A0 18:57, Michel Veillette <
>> Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>>
>> Hi Alexander, hi Pascal
>>
>> I want to emphases the following points
>>
>> =C2=B7         The use of the select query parameter encoded in CBOR sup=
port
>> of 63 modules with optimized message size instead of only 3 for the base=
64
>> URI.
>> If the 6TiSCH module ID is allocated within these 63 IDs, there will be
>> no message size optimization provided by the aliases mechanism.
>> This make the introduction of aliases less urgent.
>>
>> =C2=B7         The message size of the select query parameter encoded in=
 CBOR
>> should be equal or smaller compared to the base64 URI.
>> However, the select query parameter encoded in CBOR support a wider rang=
e
>> of values without size penalty (16 bits instead of 12, 32 bits instead o=
f
>> 30)
>> Furthermore, CoMI devices won=E2=80=99t have to support two type of enco=
ding
>> depending if IDs are part of the command vs. payload.
>>
>> For example:
>>
>> Assuming module ID 2
>> Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)
>> Assuming =E2=80=9C,=E2=80=9D separator to select multiple data nodes
>>
>> Base64 approach:
>> REQ: GET example.com/mg/gB         (3 bytes; 1 byte for the =E2=80=9C/=
=E2=80=9D, 2 bytes
>> for =E2=80=9CgB=E2=80=9D)
>>
>> CBOR approach:
>> REQ: GET example.com/mg?select(2049)         (4 bytes; one byte for the
>> CoAP option, 3 for 2049 encoded using CBOR)
>>
>> Base64 approach:
>> REQ: GET example.com/mg/gB,C,D,E         (9 bytes; 1 byte for the =E2=80=
=9C/=E2=80=9D, 8
>> bytes for =E2=80=9CgB,C,D,E=E2=80=9D)
>>
>> CBOR approach:
>> REQ: GET example.com/mg?select( [2049,2,3,4] )      (8 bytes; 1 byte for
>> the CoAP option, 1 for the CBOR array, 3+1+1+1 bytes for the IDs)
>>
>>
>> <image001.jpg>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu
>> <alexander.pelov@telecom-bretagne.eu>]
>> *Sent:* 11 juin 2015 17:06
>> *To:* Pascal Thubert (pthubert)
>> *Cc:* Andy Bierman; Michel Veillette; 6tisch@ietf.org; core@ietf.org
>> *Subject:* Re: [6tisch] Reserve space for aliases
>>
>> Hi Pascal,
>>
>>
>> Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) <pthubert@cisco.=
com>
>> a =C3=A9crit :
>>
>> Dear all:
>>
>> This looks like the problem of local namespaces,  which is the reason wh=
y
>> MPLS switches labels.
>> The user may access a limited set of resources from a number of servers,
>> and servers are read by many users.
>> You cannot ensure that you have a single alias space that satisfies them
>> all.
>>
>>
>> Great analogy! And yes, sadly you cannot satisfy them all, at least not
>> with all devices.
>>
>>
>>
>>
>> So ,what if the user had its own set of aliases and the server also had
>> its own set of aliases?
>>
>> The aliases could be mapped in a table like a uSAP and a pSAP are mapped
>> across layers. Broadly:
>> - First time a user requests a resource in a server, it comes with a
>> tuple (userid, useralias, fullname)
>> - The server responds with (serverid, serveralias, userid, user alias).
>>
>>
>> Actually, I think that this could be worked out in CoMI also. Instead of
>> fullname you could provide the YANG id (module ID + data node ID) and do
>> the mapping. User alias would be the special aliased YANG id. User ID,
>> however, could be a little bit more tricky - how do we ensure that it is
>> consistent? Use the IP address of the client could be doable, but we=E2=
=80=99ll
>> have to include the UDP port just in case someone runs two clients on th=
e
>> same machine.
>>
>>
>>
>>
>>
>> After that,  if the server is a constrained device then the user talks t=
o
>> the server with (serverid, serveralias) and the user maintains a switchi=
ng
>> table for the resource it uses on various servers.
>> If the user is the constrained device and the server is not, the user
>> could talk with (userid, useralias) and the server maintains a switching
>> table.
>>
>> For large servers, the server may allocate aliases dynamically based on
>> what it is being asked. We=E2=80=99d then need to talk about alias updat=
e or
>> revocation, probably in terms of session and lifetime.
>>
>> Does that look usable?
>>
>>
>> You are pointing out an interesting question. I would think (but maybe
>> I=E2=80=99m mistaken), that the client should have the leading role in f=
iguring out
>> what=E2=80=99s happening. The idea is the following:
>>
>> The client checks if the server supports aliasing, with the possible
>> options:
>> S1) no aliasing
>> S2) static/server-defined aliasing
>> S3) dynamic/single alias mapping
>>   S3.1) mapping already defined
>>   S3.2) no mapping defined
>> S4) dynamic/per client alias mapping
>>
>> Then, the client can take action, depending on its own capabilities and
>> the response of the server. E.g. a unconstrained client could obtain the
>> alias mapping if it is static (or if there is a single alias mapping in
>> place) and cache it locally. So, there will be the following corresponde=
nce
>> :
>>
>> Given:
>> C1) constrained client
>> C2) unconstrained client
>>
>> We have:
>> C1 + S1) no aliasing, nothing to do
>> C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise=
,
>> ignore
>> C1 + S3.2) and C1 + S4) define alias mapping
>>
>> C2 + S1) no aliasing, nothing to do
>> C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise=
,
>> learn it
>> C2 + S3.2) and C2 + S4) define alias mapping
>>
>> I would say that the analogy you made with MPLS corresponds quite a lot
>> to the C2+S4 case. Personally, I would be most interested into having on=
e
>> client configure one alias mapping to all servers in the network (e.g. t=
he
>> managing entity), which will profit most from saving several bytes on ea=
ch
>> message exchange. Everyone else could use the standard IDs, which we=E2=
=80=99ve
>> already managed to shrink significantly.
>>
>> Indeed, with structured module ID + data node ID (20 bits + 10 bits),
>> YANG URI compression, and long form/short form, we=E2=80=99ll have quite=
 a lot of
>> gain. Reserving module ID =3D 1 for aliases and maybe writing a short dr=
aft
>> on how the aliasing is implemented seems feasible, where we can cover th=
e
>> exact mechanism of alias definition, and client/server interaction.
>>
>> Alexander
>>
>>
>>
>> Pascal
>>
>> *From:* 6tisch [mailto:6tisch-bounces@ietf.org <6tisch-bounces@ietf.org>=
]
>>  *On Behalf Of *Andy Bierman
>> *Sent:* vendredi 5 juin 2015 20:55
>> *To:* Michel Veillette
>> *Cc:* 6tisch@ietf.org; Alexander Pelov; core@ietf.org
>> *Subject:* Re: [6tisch] Reserve space for aliases
>>
>>
>>
>> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <
>> Michel.Veillette@trilliantinc.com> wrote:
>> Hi Alexander
>>
>> I have some concerns about allowing CoMI client(s) the control of the
>> list of aliases.
>> This approach work fine for the first CoMI application (e.g. 6TiSCH) but
>> what do we do with the subsequent CoMI application?
>>
>> One possible solution is that each CoMI client send a list of (alias,
>> data node ID) to the CoMI server. In this case, the CoMI client might
>> receive an error if one or multiple of these aliases are already reserve=
d.
>>
>> A second possible solution is that each CoMI client send a list of (data
>> node ID) and get a list of (alias, data node ID) from the CoMI server. I=
n
>> this case, CoMI clients will have to deal with a mix population of alias=
es.
>>
>> The proposed solution need to scale to a multi-vendors, multiple
>> applications environment.
>> With this is mind, do you have any alternative solutions to propose?
>>
>>
>>
>> Does this approach allow each client to have a different set of aliases,
>> so the server has to maintain a configured mapping for each client?
>> This seems like a lot of overhead and NV-storage requirements
>> on the server.
>>
>> Changing the schema identifiers based on which client is
>> sending the request seems like a complicated design change
>> from RESTCONF, NETCONF, or SNMP, where there is only
>> 1 schema tree which is not dependent on the client identity.
>>
>>
>> Andy
>>
>>
>>
>>
>>
>> <image001.jpg>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
>> *Sent:* 5 juin 2015 12:03
>> *To:* Michel Veillette
>> *Cc:* Andy Bierman; 6tisch@ietf.org; core@ietf.org
>> *Subject:* Re: Reserve space for aliases
>>
>> Hi Michel,
>>
>>
>>
>> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette <
>> Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>>
>> Hi Alexander
>>
>> In your presentation at 6TiSCH, you propose the following data node ID
>> structure.
>>
>> =E2=80=A2       32 bits YANG ID
>> =E2=80=93      20 bits for module ID (assigned by IETF)
>> =E2=80=93      10 bits for data node ID (generated deterministically)
>>
>> Based on this structure, we can reserve module ID zero for aliases.
>>
>>
>>
>> I was just summarizing what was discussed on the discussion in CoMI.
>> Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be c=
onsistent
>> with the YANG hash and I don=E2=80=99t mind keeping it 30 bits.
>>
>>
>>
>>
>> If we want to minimize both the network an node resources require by thi=
s
>> alias mechanism, we can map an entire module to this space.
>> This can be implemented by a single integer resource (e.g. leaf
>> alliassedModule { type uint32 } )
>> This approach require 4 bytes per CoMI server accessed.
>>
>>
>>
>> It is possible to map an entire module to the alias space and this is up
>> to the operator. However, if you load two modules which redefine the sam=
e
>> alias you will loose the benefit from it. Maybe it would be interesting =
to
>> be able to specify that you want the aliases from THIS specific module t=
o
>> be used.
>>
>> If the /mg/0 alias is reserved for managing the aliases, this could be
>> simply saying:
>> POST /mg/0
>> {
>>  "source_uri" : "/mg/BAA"
>> }
>>
>> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits
>> set to 0). This way, the server will know: OK, get the alias mapping fro=
m
>> the YANG scheme of module with ID =3D B (as defined by the IETF).
>>
>> Or, you can dynamically configure the mapping:
>> POST /mg/0
>> {
>>   YANG_id : alias,
>>   YANG_id : alias,
>>   YANG_id : alias
>> }
>>
>>
>>
>> If we want a more complex but more flexible aliases mechanism, your
>> proposed map of (allias, YANG ID) seem the solution.
>> However, we have to consider that this structure can be as large as *125=
0
>> bytes per CoMI server accessed* if limited to 256 aliases.
>>
>>
>> This is assuming you need a separate mapping for each server. I would
>> suppose that in a network you=E2=80=99ll have a single alias mapping (ma=
ybe two?) -
>> after all, you=E2=80=99re trying to optimize the management of your devi=
ces
>> (servers). So, typically you=E2=80=99d map all 6tisch devices with alias=
es 1-10
>> (channel, slot, etc.) and use that on them, and on all other you=E2=80=
=99d access
>> the full ID.
>>
>> Best,
>> Alexander
>>
>>
>>
>>
>> <image001.jpg>
>> Michel Veillette
>> System Architecture Director
>> Trilliant Inc.
>> Tel: 450-375-0556 ext. 237
>> michel.veillette@trilliantinc.com
>> www.trilliantinc.com
>>
>>
>>
>
>

--001a113496f2c7b38d05185a0cae
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>I am not convinced that aliases are=
 worth all the effort</div><div>because most (95%?) of the IDs in the paylo=
ad will only</div><div>need 10 bits.</div><div><br></div><div><br></div><di=
v>Andy</div><div><br></div><div><br></div><div><br><div class=3D"gmail_extr=
a"><br><div class=3D"gmail_quote">On Fri, Jun 12, 2015 at 3:25 PM, Alexande=
r Pelov <span dir=3D"ltr">&lt;<a href=3D"mailto:alexander.pelov@telecom-bre=
tagne.eu" target=3D"_blank">alexander.pelov@telecom-bretagne.eu</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><div style=3D"word-wrap:break-=
word"><div>Hi Andy,</div><div><br></div><div>Not sure if you were referring=
 to the example/explanation I tried to provide (maybe Michel had something =
else in mind), but here I go.</div><br><div><blockquote type=3D"cite"><div>=
Le 12 juin 2015 =C3=A0 23:57, Andy Bierman &lt;<a href=3D"mailto:andy@yumaw=
orks.com" target=3D"_blank">andy@yumaworks.com</a>&gt; a =C3=A9crit :</div>=
<br><div><div dir=3D"ltr">Hi,<div><br></div><div>Here is the &quot;JSON for=
 YANG&quot; draft:</div><div><a href=3D"https://www.ietf.org/id/draft-ietf-=
netmod-yang-json-04.txt" target=3D"_blank">https://www.ietf.org/id/draft-ie=
tf-netmod-yang-json-04.txt</a><br></div><div><br></div><div>The long form (=
module-name:local-name) is only used</div><div>at the top of a sub-tree and=
 where the module namespace changes</div><div>(due to an augment from anoth=
er module).</div><div><br></div><div>The data is hierarchical and the parse=
r is required to maintain</div><div>the current module scope. It should be =
possible to omit the module</div><div>identifier is nested data, except for=
 nodes that start a new</div><div>module scope.</div></div></div></blockquo=
te><div><br></div><div>Ok, that sounds perfectly in line with the module ID=
/data node ID and the long form/short form we=E2=80=99ve been discussing wi=
th Michel.</div><br><blockquote type=3D"cite"><div><div dir=3D"ltr"><div><b=
r></div><div>Is this what you have in mind?</div><div>For YANG Hash (that h=
as no module identifier)</div><div>every nested node ID needs the full 30 b=
its,</div><div>but this is not required for managed IDs.</div></div></div><=
/blockquote><div><br></div><div>If you have your YANG hash ID behave in a s=
tructured way (e.g. stop being a hash..), then you don=E2=80=99t need to se=
nd the full 30 bits.=C2=A0</div><div><br></div><div>If I take the following=
 example (which is a strange case just for the sake of it):</div><div><span=
 style=3D"color:rgb(31,73,125);font-family:Calibri,sans-serif;font-size:11p=
t">REQ: GET=C2=A0</span><a href=3D"http://example.com/mg?select" style=3D"f=
ont-family:Calibri,sans-serif;font-size:11pt;color:purple" target=3D"_blank=
"><span>example.com/mg?select</span></a><span style=3D"color:rgb(31,73,125)=
;font-family:Calibri,sans-serif;font-size:11pt">( [5, 2049, 2, 3, 4, 4097, =
2, 3, 4, 2053, 2055, 6] )</span></div><div><span style=3D"color:rgb(31,73,1=
25);font-family:Calibri,sans-serif;font-size:11pt"><br></span></div><div>Th=
at would resolve to requesting the following YANG IDs:</div><div>long form =
=3D module ID / short form</div><div>5 =3D 0 / 5</div><div>2049 =3D 1 / 1</=
div><div>2050 =3D 1 / 2</div><div>2051 =3D 1 / 3</div><div>2052 =3D 1 / 4</=
div><div>4097 =3D 2 / 1</div><div>4098 =3D 2 / 2</div><div>4099 =3D 2 / 3</=
div><div>4099 =3D 2 / 4</div><div>2053 =3D 1 / 5</div><div>2055 =3D 1 / 7</=
div><div>2054 =3D 1 / 6</div><div><br></div><div>Of course, that is not (di=
rectly) related to the way the YANG parser processes the YANG modules. It i=
s a way to parse the select option, and is straightforward. Consecutively, =
element by element apply something of the form:</div><div><br></div><div>if=
 (full_id &amp;=C2=A00x3FFFFC00) &gt; 0) {</div><div>=C2=A0 =C2=A0current_m=
odule_ID =3D full_id &gt;&gt; 10;</div><div>}</div><div>else {</div><div>=
=C2=A0 full_id =3D (current_module_ID &lt;&lt; 10) &amp; full_id;</div><div=
>}</div><div><br></div><div>Of course, that could be optimized, but for the=
 sake of clarity we can leave it like this for the moment.</div><div><br></=
div><div>Best,</div><div>Alexander</div><div><br></div><br><blockquote type=
=3D"cite"><div><div dir=3D"ltr"><div><br></div><div><br></div><div>Andy</di=
v><div><br></div><div><br></div><div><br></div><div><br></div></div><div cl=
ass=3D"gmail_extra"><br><div class=3D"gmail_quote">On Fri, Jun 12, 2015 at =
2:42 PM, Alexander Pelov <span dir=3D"ltr">&lt;<a href=3D"mailto:alexander.=
pelov@telecom-bretagne.eu" target=3D"_blank">alexander.pelov@telecom-bretag=
ne.eu</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style=3D=
"word-wrap:break-word"><div>Michel,</div><div><br></div><br><div><blockquot=
e type=3D"cite"><div>Le 12 juin 2015 =C3=A0 23:10, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank">Michel.=
Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :</div><br><div><div style=
=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-variant:nor=
mal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:=
start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0=
px"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;T=
imes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibr=
i,sans-serif;color:rgb(31,73,125)">I Alexander<u></u><u></u></span></div><d=
iv style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times N=
ew Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans=
-serif;color:rgb(31,73,125)">=C2=A0</span></div><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><spa=
n style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,12=
5)">I don=E2=80=99t see any issues with your proposal of using module ID 0 =
as aliases.<u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D=
"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">The on=
ly constrain is that aliases need to be at the start of the select for a GE=
T and at the start of the payload for a PUT.</span></div></div></div></bloc=
kquote><div><br></div><div>Yes, I suppose you should always start with alia=
ses, but that doesn=E2=80=99t sound like a strong constraint to me, so it=
=E2=80=99s seems like the perfect solution.</div><br><blockquote type=3D"ci=
te"><div><div style=3D"font-family:Helvetica;font-size:12px;font-style:norm=
al;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height=
:normal;text-align:start;text-indent:0px;text-transform:none;white-space:no=
rmal;word-spacing:0px"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt=
;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt=
;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u><u></u></span>=
</div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39=
;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div><div style=3D"margi=
n:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,ser=
if"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(=
31,73,125)">The last things we need to sort out, is the instance selector (=
keys) in the context of a select query parameter containing multiple data n=
odes.<u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt;font-=
size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-=
size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span=
></div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#3=
9;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cal=
ibri,sans-serif;color:rgb(31,73,125)">Let assume the following:<u></u><u></=
u></span></div><div style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;f=
ont-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;f=
ont-family:Symbol;color:rgb(31,73,125)"><span>=C2=B7<span style=3D"font-sty=
le:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:=
normal;font-family:&#39;Times New Roman&#39;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></span></span></span><span style=3D=
"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">A CoMI=
 client need to select 3 data nodes (Data node ID 2049, 2 and 3)<u></u><u><=
/u></span></div><div style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;=
font-family:Symbol;color:rgb(31,73,125)"><span>=C2=B7<span style=3D"font-st=
yle:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height=
:normal;font-family:&#39;Times New Roman&#39;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></span></span></span><span style=3D=
"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">For th=
e first data node, three values need to be provided as keys (e.g. 1,</span>=
<span>=C2=A0</span><span style=3D"font-size:11pt;font-family:Calibri,sans-s=
erif;color:rgb(31,73,125)">&quot;ipv4&quot;,</span><span>=C2=A0</span><span=
 style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)">&quot;10.0.0.51</span><span>=C2=A0</span><span style=3D"font-size:11pt;f=
ont-family:Calibri,sans-serif;color:rgb(31,73,125)">&quot;), see draft-vand=
erstok-core-comi-06 page 22.<u></u><u></u></span></div><div style=3D"margin=
:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif"><span style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,1=
25)"><span>=C2=B7<span style=3D"font-style:normal;font-variant:normal;font-=
weight:normal;font-size:7pt;line-height:normal;font-family:&#39;Times New R=
oman&#39;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</sp=
an></span></span></span><span style=3D"font-size:11pt;font-family:Calibri,s=
ans-serif;color:rgb(31,73,125)">For the third data node, one integer value =
need to be provided as keys (e.g. 22).<u></u><u></u></span></div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">=C2=A0</span></div><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">If =
we include these keys in the select query parameter encoded in CBOR, the re=
sult might look as follow:<u></u><u></u></span></div><div style=3D"margin:0=
in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"=
><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,=
73,125)">=C2=A0</span></div><div style=3D"margin:0in 0in 0.0001pt;font-size=
:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size=
:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">REQ: GET<span>=
=C2=A0</span><a href=3D"http://example.com/mg?select" style=3D"color:purple=
;text-decoration:underline" target=3D"_blank">example.com/mg?select</a>( [[=
20491,&quot;ipv4&quot;,&quot;10.0.0.51&quot;,2], 2, [3,22]] )</span></div><=
/div></div></blockquote><div><br></div><div>Just a small typo (missed a com=
a after 2049, right?):</div><div><blockquote type=3D"cite"><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">REQ: GET=C2=A0<a href=3D"http://example.com/mg?select"=
 style=3D"color:purple" target=3D"_blank">example.com/mg?select</a>( [[2049=
, 1,&quot;ipv4&quot;,&quot;10.0.0.51&quot;,2], 2, [3,22]] )</span></div></d=
iv></blockquote><br></div><div>And yes, seems quite straightforward and rea=
sonable to me. If I understand correctly, the format you use is the followi=
ng:</div><div>The select parameter accepts a single integer (long form data=
 ID) or an array. In the latter case, each element of the array may be eith=
er an integer (e.g. data ID), or an array in the form [data ID, key1, key2,=
 =E2=80=A6, keyN]. The data ID may be absolute (e.g. long form), or relativ=
e to the module of the previous data ID.=C2=A0</div><div><br></div><div>Thi=
s seems quite expressive, simple and compact. I wonder if we=E2=80=99re mis=
sing something, as it really does seem to have quite a lot of nice characte=
ristics.=C2=A0</div><div><br></div><div>Best,</div><div>Alexander</div><div=
><br></div><br><blockquote type=3D"cite"><div><div style=3D"font-family:Hel=
vetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:nor=
mal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0=
px;text-transform:none;white-space:normal;word-spacing:0px"><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;=
,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:=
rgb(31,73,125)"><u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span sty=
le=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=
=C2=A0</span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fon=
t-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fon=
t-family:Calibri,sans-serif;color:rgb(31,73,125)">In the current draft, the=
 CoMI server need to support two encoding for each selector, CBOR encoding =
in the payload and text in the keys query parameter.<u></u><u></u></span></=
div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;T=
imes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibr=
i,sans-serif;color:rgb(31,73,125)">With this proposal, both use cases are e=
ncoded using CBOR.<u></u><u></u></span></div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span s=
tyle=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"=
>=C2=A0</span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fo=
nt-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fo=
nt-family:Calibri,sans-serif;color:rgb(31,73,125)">What do you things?<u></=
u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;=
font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div><di=
v><table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" sty=
le=3D"width:537.75pt;border-collapse:collapse"><tbody><tr style=3D"height:4=
9.05pt"><td width=3D"137" style=3D"width:103.1pt;border-style:none solid no=
ne none;border-right-color:windowtext;border-right-width:1pt;padding:0in 5.=
4pt;height:49.05pt"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fo=
nt-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fo=
nt-family:Calibri,sans-serif;color:rgb(31,73,125)"><span>&lt;image001.jpg&g=
t;</span><u></u><u></u></span></div></td><td width=3D"580" valign=3D"top" s=
tyle=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt"><div style=3D"marg=
in:0in 0in 0.0001pt 8.1pt;font-size:12pt;font-family:&#39;Times New Roman&#=
39;,serif"><span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:=
rgb(31,73,125)">Michel Veillette<br>System Architecture Director</span><spa=
n style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,12=
5)"><u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001pt 8.1pt;=
font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"=
font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">Trilliant =
Inc.<br>Tel: 450-375-0556 ext. 237<br><a href=3D"mailto:michel.veillette@tr=
illiantinc.com" style=3D"color:purple;text-decoration:underline" target=3D"=
_blank"><span style=3D"color:rgb(5,99,193)">michel.veillette@trilliantinc.c=
om</span></a><u></u><u></u></span></div><div style=3D"margin:0in 0in 0.0001=
pt 8.1pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)=
"><a href=3D"http://www.trilliantinc.com/" style=3D"color:purple;text-decor=
ation:underline" target=3D"_blank"><span style=3D"font-size:9pt;font-family=
:Arial,sans-serif">www.trilliantinc.com</span></a></span><span style=3D"fon=
t-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)"><span>=C2=A0<=
/span>=C2=A0<span>=C2=A0</span></span><span style=3D"font-size:11pt;font-fa=
mily:Calibri,sans-serif;color:rgb(31,73,125)"><u></u><u></u></span></div></=
td></tr></tbody></table><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11p=
t;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div><=
/div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;=
Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calib=
ri,sans-serif;color:rgb(31,73,125)">=C2=A0</span></div><div><div style=3D"b=
order-style:solid none none;border-top-color:rgb(225,225,225);border-top-wi=
dth:1pt;padding:3pt 0in 0in"><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif"><b><span lang=3D"EN-US"=
 style=3D"font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><s=
pan lang=3D"EN-US" style=3D"font-size:11pt;font-family:Calibri,sans-serif">=
<span>=C2=A0</span>Alexander Pelov [<a href=3D"mailto:alexander.pelov@telec=
om-bretagne.eu" target=3D"_blank">mailto:alexander.pelov@telecom-bretagne.e=
u</a>]<span>=C2=A0</span><br><b>Sent:</b><span>=C2=A0</span>12 juin 2015 15=
:26<br><b>To:</b><span>=C2=A0</span>Michel Veillette<br><b>Cc:</b><span>=C2=
=A0</span>Pascal Thubert (pthubert); Andy Bierman; <a href=3D"mailto:6tisch=
@ietf.org" target=3D"_blank">6tisch@ietf.org</a>; <a href=3D"mailto:core@ie=
tf.org" target=3D"_blank">core@ietf.org</a><br><b>Subject:</b><span>=C2=A0<=
/span>Re: [6tisch] Reserve space for aliases<u></u><u></u></span></div></di=
v></div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#=
39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></div><div><div style=3D=
"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#3=
9;,serif">Hi Michel,<u></u><u></u></div></div><div><div style=3D"margin:0in=
 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><=
u></u>=C2=A0<u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;f=
ont-size:12pt;font-family:&#39;Times New Roman&#39;,serif">You=E2=80=99re r=
ight. As I mentioned in my previous mails, I=E2=80=99m pretty happy with th=
e compression of IDs we=E2=80=99ve achieved until now, so aliases are not a=
s a pressing issue.=C2=A0<u></u><u></u></div></div><div><div style=3D"margi=
n:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,ser=
if"><u></u>=C2=A0<u></u></div></div><div><div style=3D"margin:0in 0in 0.000=
1pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">The thing i=
s, if they can be implemented at (almost) zero cost, then some of the use-c=
ases become quite interesting.<u></u><u></u></div></div><div><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif"><u></u>=C2=A0<u></u></div></div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">You ac=
tually provide a very good case with the select option. I=E2=80=99ve not th=
ought if it will present some other difficulties, but I actually think it f=
acilitates the use of aliases (and I mention this only because it will help=
 me also understand the semantics of your proposal of the select option).<u=
></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></d=
iv></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fam=
ily:&#39;Times New Roman&#39;,serif">If I take the example you provide:<u><=
/u><u></u></div></div><div><blockquote style=3D"margin-top:5pt;margin-botto=
m:5pt"><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">REQ=
: GET=C2=A0<a href=3D"http://example.com/mg?select" style=3D"color:purple;t=
ext-decoration:underline" target=3D"_blank"><span style=3D"color:purple">ex=
ample.com/mg?select</span></a>( [2049,2,3,4] )=C2=A0</span><u></u><u></u></=
div></div></blockquote><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt=
;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></div></d=
iv><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#=
39;Times New Roman&#39;,serif">The parameters 2,3,4 are actually relative t=
o the module ID of the first one. So, if I try to generalize this (please c=
orrect me if I=E2=80=99m wrong), I would imagine something like:<u></u><u><=
/u></div></div><div><blockquote style=3D"margin-top:5pt;margin-bottom:5pt">=
<div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font=
-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font=
-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">REQ: GET=C2=
=A0<a href=3D"http://example.com/mg?select" style=3D"color:purple;text-deco=
ration:underline" target=3D"_blank"><span style=3D"color:purple">example.co=
m/mg?select</span></a>( [2049,2,3,4, 4097,2,3,4] )=C2=A0</span><u></u><u></=
u></div></div></blockquote><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif">To resolve to getting mod=
ule ID=3D1, relative node IDs=3D1,2,3 and 4, and module ID=3D2 and relative=
 node IDs =3D1,2,3 and 4.<u></u><u></u></div></div><div><div style=3D"margi=
n:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,ser=
if"><u></u>=C2=A0<u></u></div></div><div><div style=3D"margin:0in 0in 0.000=
1pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">This means,=
 that specifying a GET<span>=C2=A0</span><a href=3D"http://example.com/mg?s=
elect" style=3D"color:purple;text-decoration:underline" target=3D"_blank">e=
xample.com/mg?select</a>(1) should resolve to module ID=3D0 and relative no=
de ID=3D1. This requires absolutely no additional processing from the node.=
=C2=A0<u></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;=
font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u=
></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif">So, this leaves us back to the=
 initial idea of the aliases. All short node IDs are relative to a module I=
D (so that the long form ID can be interpreted). Module ID=3D0 is reserved,=
 and can be used for aliasing if the device wishes to support it.=C2=A0<u><=
/u><u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<u></u></div=
></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-famil=
y:&#39;Times New Roman&#39;,serif">Does this break some of the things along=
 the way?=C2=A0<u></u><u></u></div></div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u=
>=C2=A0<u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">Best,<u></u><u></u></=
div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif">Alex<u></u><u></u></div></div><div><d=
iv style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times N=
ew Roman&#39;,serif"><u></u>=C2=A0<u></u></div></div><div><div style=3D"mar=
gin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,s=
erif">=C2=A0<u></u><u></u></div></div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><u></u>=C2=A0<=
u></u></div><div><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><di=
v><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Tim=
es New Roman&#39;,serif">Le 12 juin 2015 =C3=A0 18:57, Michel Veillette &lt=
;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" style=3D"color:purple=
;text-decoration:underline" target=3D"_blank">Michel.Veillette@trilliantinc=
.com</a>&gt; a =C3=A9crit :<u></u><u></u></div></div><div style=3D"margin:0=
in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"=
><u></u>=C2=A0<u></u></div><div><div><div style=3D"margin:0in 0in 0.0001pt;=
font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"=
font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Hi Alex=
ander, hi Pascal</span><u></u><u></u></div></div><div><div style=3D"margin:=
0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif=
"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31=
,73,125)">=C2=A0</span><u></u><u></u></div></div><div><div style=3D"margin:=
0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif=
"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31=
,73,125)">I want to emphases the following points</span><u></u><u></u></div=
></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-famil=
y:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-famil=
y:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div=
></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)">=C2=B7</span><s=
pan style=3D"font-size:7pt;color:rgb(31,73,125)">=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></span><span style=3D"font-size:=
11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">The use of the se=
lect query parameter encoded in CBOR support of 63 modules with optimized m=
essage size instead of only 3 for the base64 URI.</span><u></u><u></u></div=
></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">If =
the 6TiSCH module ID is allocated within these 63 IDs, there will be no mes=
sage size optimization provided by the aliases mechanism.</span><u></u><u><=
/u></div></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><spa=
n style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,12=
5)">This make the introduction of aliases less urgent.</span><u></u><u></u>=
</div></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span s=
tyle=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"=
>=C2=A0</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><d=
iv style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times N=
ew Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Symbol;color=
:rgb(31,73,125)">=C2=B7</span><span style=3D"font-size:7pt;color:rgb(31,73,=
125)">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<span>=C2=A0</span></=
span><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb=
(31,73,125)">The message size of the select query parameter encoded in CBOR=
 should be equal or smaller compared to the base64 URI.</span><u></u><u></u=
></div></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)=
">However, the select query parameter encoded in CBOR support a wider range=
 of values without size penalty (16 bits instead of 12, 32 bits instead of =
30)</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div s=
tyle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New R=
oman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-ser=
if;color:rgb(31,73,125)">Furthermore, CoMI devices won=E2=80=99t have to su=
pport two type of encoding depending if IDs are part of the command vs. pay=
load.</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New=
 Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-s=
erif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><div styl=
e=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11p=
t;font-family:Calibri,sans-serif;color:rgb(31,73,125)">For example:</span><=
u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"mar=
gin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,s=
erif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rg=
b(31,73,125)">=C2=A0</span><u></u><u></u></div></div><div style=3D"margin-l=
eft:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family=
:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family=
:Calibri,sans-serif;color:rgb(31,73,125)">Assuming module ID 2</span><u></u=
><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0=
in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"=
><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,=
73,125)">Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)</spa=
n><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color=
:rgb(31,73,125)">Assuming =E2=80=9C,=E2=80=9D separator to select multiple =
data nodes</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"=
><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Time=
s New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,s=
ans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><div=
 style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-siz=
e:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Base64 approach=
:</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div sty=
le=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Rom=
an&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
;color:rgb(31,73,125)">REQ: GET<span>=C2=A0</span><a href=3D"http://example=
.com/mg/gB" style=3D"color:purple;text-decoration:underline" target=3D"_bla=
nk"><span style=3D"color:purple">example.com/mg/gB</span></a>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (3 bytes; 1 byte for the =E2=80=9C/=E2=
=80=9D, 2 bytes for =E2=80=9CgB=E2=80=9D)</span><u></u><u></u></div></div><=
div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-=
size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-=
size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span=
><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;=
,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:=
rgb(31,73,125)">CBOR approach:</span><u></u><u></u></div></div><div style=
=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt=
;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt=
;font-family:Calibri,sans-serif;color:rgb(31,73,125)">REQ: GET<span>=C2=A0<=
/span><a href=3D"http://example.com/mg?select" style=3D"color:purple;text-d=
ecoration:underline" target=3D"_blank"><span style=3D"color:purple">example=
.com/mg?select</span></a>(2049)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0 (4 bytes; one byte for the CoAP option, 3 for 2049 encoded using CBO=
R)</span><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div st=
yle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Ro=
man&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-seri=
f;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><div style=
=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt=
;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt=
;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Base64 approach:</spa=
n><u></u><u></u></div></div><div style=3D"margin-left:0.5in"><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color=
:rgb(31,73,125)">REQ: GET<span>=C2=A0</span><a href=3D"http://example.com/m=
g/gB,C,D,E" style=3D"color:purple;text-decoration:underline" target=3D"_bla=
nk"><span style=3D"color:purple">example.com/mg/gB,C,D,E</span></a>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (9 bytes; 1 byte for the =E2=80=
=9C/=E2=80=9D, 8 bytes for =E2=80=9CgB,C,D,E=E2=80=9D)</span><u></u><u></u>=
</div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-=
family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-=
family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u>=
</div></div><div style=3D"margin-left:0.5in"><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span s=
tyle=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"=
>CBOR approach:</span><u></u><u></u></div></div><div style=3D"margin-left:0=
.5in"><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39=
;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif;color:rgb(31,73,125)">REQ: GET<span>=C2=A0</span><a href=3D"=
http://example.com/mg?select" style=3D"color:purple;text-decoration:underli=
ne" target=3D"_blank"><span style=3D"color:purple">example.com/mg?select</s=
pan></a>( [2049,2,3,4] )=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (8 bytes; 1 byte for=
 the CoAP option, 1 for the CBOR array, 3+1+1+1 bytes for the IDs)</span><u=
></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-siz=
e:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u=
></u><u></u></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-siz=
e:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u=
></u><u></u></div></div><div><table border=3D"0" cellspacing=3D"0" cellpadd=
ing=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse"><=
tbody><tr style=3D"height:49.05pt"><td width=3D"137" style=3D"width:103.1pt=
;border-style:none solid none none;border-right-color:windowtext;border-rig=
ht-width:1pt;padding:0in 5.4pt;height:49.05pt"><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)">&lt;image001.jpg&gt;</span><u></u><u></u></div></div></td><td width=
=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49=
.05pt"><div style=3D"margin-left:8.1pt"><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">Michel=
 Veillette<br>System Architecture Director</span><u></u><u></u></div></div>=
<div style=3D"margin-left:8.1pt"><div style=3D"margin:0in 0in 0.0001pt;font=
-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font=
-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">Trilliant Inc.=
<br>Tel: 450-375-0556 ext. 237<br><a href=3D"mailto:michel.veillette@trilli=
antinc.com" style=3D"color:purple;text-decoration:underline" target=3D"_bla=
nk"><span style=3D"color:rgb(5,99,193)">michel.veillette@trilliantinc.com</=
span></a></span><u></u><u></u></div></div><div style=3D"margin-left:8.1pt">=
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times=
 New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sa=
ns-serif;color:rgb(31,73,125)"><a href=3D"http://www.trilliantinc.com/" sty=
le=3D"color:purple;text-decoration:underline" target=3D"_blank"><span style=
=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple">www.trillianti=
nc.com</span></a></span><span><span style=3D"font-size:9pt;font-family:Aria=
l,sans-serif;color:rgb(31,73,125)">=C2=A0</span></span><span style=3D"font-=
size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">=C2=A0<span>=C2=
=A0</span></span><u></u><u></u></div></div></td></tr></tbody></table><div><=
div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times =
New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,san=
s-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div>=
<div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;=
Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calib=
ri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div>=
<div><div style=3D"border-style:solid none none;border-top-color:rgb(225,22=
5,225);border-top-width:1pt;padding:3pt 0in 0in"><div><div style=3D"margin:=
0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif=
"><b><span lang=3D"EN-US" style=3D"font-size:11pt;font-family:Calibri,sans-=
serif">From:</span></b><span><span lang=3D"EN-US" style=3D"font-size:11pt;f=
ont-family:Calibri,sans-serif">=C2=A0</span></span><span lang=3D"EN-US" sty=
le=3D"font-size:11pt;font-family:Calibri,sans-serif">Alexander Pelov [<a hr=
ef=3D"mailto:alexander.pelov@telecom-bretagne.eu" style=3D"color:purple;tex=
t-decoration:underline" target=3D"_blank">mailto:alexander.pelov@telecom-br=
etagne.eu</a>]<span>=C2=A0</span><br><b>Sent:</b><span>=C2=A0</span>11 juin=
 2015 17:06<br><b>To:</b><span>=C2=A0</span>Pascal Thubert (pthubert)<br><b=
>Cc:</b><span>=C2=A0</span>Andy Bierman; Michel Veillette;<span>=C2=A0</spa=
n><a href=3D"mailto:6tisch@ietf.org" style=3D"color:purple;text-decoration:=
underline" target=3D"_blank">6tisch@ietf.org</a>;<span>=C2=A0</span><a href=
=3D"mailto:core@ietf.org" style=3D"color:purple;text-decoration:underline" =
target=3D"_blank">core@ietf.org</a><br><b>Subject:</b><span>=C2=A0</span>Re=
: [6tisch] Reserve space for aliases</span><u></u><u></u></div></div></div>=
</div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family=
:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div><div><div=
><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Time=
s New Roman&#39;,serif">Hi Pascal,<u></u><u></u></div></div></div><div><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New=
 Roman&#39;,serif">=C2=A0<u></u><u></u></div></div><div><blockquote style=
=3D"margin-top:5pt;margin-bottom:5pt"><div><div><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Le 1=
0 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) &lt;<a href=3D"mailto:p=
thubert@cisco.com" style=3D"color:purple;text-decoration:underline" target=
=3D"_blank"><span style=3D"color:purple">pthubert@cisco.com</span></a>&gt; =
a =C3=A9crit :<u></u><u></u></div></div></div><div><div style=3D"margin:0in=
 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
=C2=A0<u></u><u></u></div></div><div><div><div><div style=3D"margin:0in 0in=
 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span=
 style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)">Dear all:</span><u></u><u></u></div></div></div><div><div><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color=
:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div><div><di=
v style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times Ne=
w Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-=
serif;color:rgb(31,73,125)">This looks like the problem of local namespaces=
,=C2=A0 which is the reason why MPLS switches labels.</span><u></u><u></u><=
/div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:=
11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">The user may acce=
ss a limited set of resources from a number of servers, and servers are rea=
d by many users.</span><u></u><u></u></div></div></div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">You cannot ensure that you have a single alias space t=
hat satisfies them all.</span><u></u><u></u></div></div></div></div></block=
quote><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-f=
amily:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></di=
v><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-famil=
y:&#39;Times New Roman&#39;,serif">Great analogy! And yes, sadly you cannot=
 satisfy them all, at least not with all devices.<u></u><u></u></div></div>=
</div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family=
:&#39;Times New Roman&#39;,serif"><br><br><br><u></u><u></u></div></div><bl=
ockquote style=3D"margin-top:5pt;margin-bottom:5pt"><div><div><div><div sty=
le=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Rom=
an&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div><d=
iv><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Ti=
mes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri=
,sans-serif;color:rgb(31,73,125)">So ,what if the user had its own set of a=
liases and the server also had its own set of aliases?</span><u></u><u></u>=
</div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size=
:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size=
:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u>=
</u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001p=
t;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">The=
 aliases could be mapped in a table like a uSAP and a pSAP are mapped acros=
s layers. Broadly:</span><u></u><u></u></div></div></div><div><div><div sty=
le=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Rom=
an&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
;color:rgb(31,73,125)">- First time a user requests a resource in a server,=
 it comes with a tuple (userid, useralias, fullname)</span><u></u><u></u></=
div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:1=
2pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:1=
1pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">- The server respo=
nds with (serverid, serveralias, userid, user alias).</span><u></u><u></u><=
/div></div></div></div></blockquote><div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0=
<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.00=
01pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Actually, =
I think that this could be worked out in CoMI also. Instead of fullname you=
 could provide the YANG id (module ID + data node ID) and do the mapping. U=
ser alias would be the special aliased YANG id. User ID, however, could be =
a little bit more tricky - how do we ensure that it is consistent? Use the =
IP address of the client could be doable, but we=E2=80=99ll have to include=
 the UDP port just in case someone runs two clients on the same machine.<u>=
</u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001p=
t;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u>=
<u></u></div></div></div><div><div style=3D"margin:0in 0in 0.0001pt;font-si=
ze:12pt;font-family:&#39;Times New Roman&#39;,serif"><br><br><br><u></u><u>=
</u></div></div><blockquote style=3D"margin-top:5pt;margin-bottom:5pt"><div=
><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family=
:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family=
:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div>=
</div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;=
font-family:Calibri,sans-serif;color:rgb(31,73,125)">After that,=C2=A0 if t=
he server is a constrained device then the user talks to the server with (s=
erverid, serveralias) and the user maintains a switching table for the reso=
urce it uses on various servers.</span><u></u><u></u></div></div></div><div=
><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39=
;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif;color:rgb(31,73,125)">If the user is the constrained device =
and the server is not, the user could talk with (userid, useralias) and the=
 server maintains a switching table.</span><u></u><u></u></div></div></div>=
<div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:=
&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:=
Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div><=
/div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;f=
ont-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;f=
ont-family:Calibri,sans-serif;color:rgb(31,73,125)">For large servers, the =
server may allocate aliases dynamically based on what it is being asked. We=
=E2=80=99d then need to talk about alias update or revocation, probably in =
terms of session and lifetime.</span><u></u><u></u></div></div></div><div><=
div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;T=
imes New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibr=
i,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div><=
/div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-fa=
mily:Calibri,sans-serif;color:rgb(31,73,125)">Does that look usable?</span>=
<u></u><u></u></div></div></div></div></blockquote><div><div><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif">=C2=A0<u></u><u></u></div></div></div><div><div><div style=3D"marg=
in:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,se=
rif">You are pointing out an interesting question. I would think (but maybe=
 I=E2=80=99m mistaken), that the client should have the leading role in fig=
uring out what=E2=80=99s happening. The idea is the following:<u></u><u></u=
></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></d=
iv></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12=
pt;font-family:&#39;Times New Roman&#39;,serif">The client checks if the se=
rver supports aliasing, with the possible options:<u></u><u></u></div></div=
></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-=
family:&#39;Times New Roman&#39;,serif">S1) no aliasing<u></u><u></u></div>=
</div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif">S2) static/server-defined alia=
sing<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">S3) dy=
namic/single alias mapping=C2=A0<u></u><u></u></div></div></div><div><div><=
div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times =
New Roman&#39;,serif">=C2=A0 S3.1) mapping already defined<u></u><u></u></d=
iv></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12=
pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0 S3.2) no mapping def=
ined<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">S4) dy=
namic/per client alias mapping<u></u><u></u></div></div></div><div><div><di=
v style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times Ne=
w Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div><div><div><div st=
yle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Ro=
man&#39;,serif">Then, the client can take action, depending on its own capa=
bilities and the response of the server. E.g. a unconstrained client could =
obtain the alias mapping if it is static (or if there is a single alias map=
ping in place) and cache it locally. So, there will be the following corres=
pondence :<u></u><u></u></div></div></div><div><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
=C2=A0<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Give=
n:<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.=
0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">C1) cons=
trained client<u></u><u></u></div></div></div><div><div><div style=3D"margi=
n:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,ser=
if">C2) unconstrained client<u></u><u></u></div></div></div><div><div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New =
Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div><div><div><div styl=
e=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roma=
n&#39;,serif">We have:<u></u><u></u></div></div></div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif">C1 + S1) no aliasing, nothing to do<u></u><u></u></div></div><=
/div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fa=
mily:&#39;Times New Roman&#39;,serif">C1 + S2) and C1 + S3.1) if the alias =
mapping is known, use it. otherwise, ignore<u></u><u></u></div></div></div>=
<div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:=
&#39;Times New Roman&#39;,serif">C1 + S3.2) and C1 + S4) define alias mappi=
ng<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.=
0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u=
></u><u></u></div></div></div><div><div><div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">C2 + S1=
) no aliasing, nothing to do<u></u><u></u></div></div></div><div><div><div>=
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times=
 New Roman&#39;,serif">C2 + S2) and C2 + S3.1) if the alias mapping is know=
n, use it. otherwise, learn it<u></u><u></u></div></div></div></div><div><d=
iv><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#=
39;Times New Roman&#39;,serif">C2 + S3.2) and C2 + S4) define alias mapping=
<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.00=
01pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u><=
/u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">I would say th=
at the analogy you made with MPLS corresponds quite a lot to the C2+S4 case=
. Personally, I would be most interested into having one client configure o=
ne alias mapping to all servers in the network (e.g. the managing entity), =
which will profit most from saving several bytes on each message exchange. =
Everyone else could use the standard IDs, which we=E2=80=99ve already manag=
ed to shrink significantly.<u></u><u></u></div></div></div><div><div><div s=
tyle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New R=
oman&#39;,serif">=C2=A0<u></u><u></u></div></div></div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif">Indeed, with structured module ID + data node ID (20 bits + 10=
 bits), YANG URI compression, and long form/short form, we=E2=80=99ll have =
quite a lot of gain. Reserving module ID =3D 1 for aliases and maybe writin=
g a short draft on how the aliasing is implemented seems feasible, where we=
 can cover the exact mechanism of alias definition, and client/server inter=
action.<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0=
in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=
=A0<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Alexand=
er<u></u><u></u></div></div></div></div></div><div><div><div style=3D"margi=
n:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,ser=
if">=C2=A0<u></u><u></u></div></div></div><blockquote style=3D"margin-top:5=
pt;margin-bottom:5pt"><div><div><div><div style=3D"margin:0in 0in 0.0001pt;=
font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"=
font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0<=
/span><u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><spa=
n style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,12=
5)">Pascal</span><u></u><u></u></div></div></div><div><div><div style=3D"ma=
rgin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,=
serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:r=
gb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div style=3D"b=
order-style:none none none solid;border-left-color:blue;border-left-width:1=
.5pt;padding:0in 0in 0in 4pt"><div><div style=3D"border-style:solid none no=
ne;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt 0in 0=
in"><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fam=
ily:&#39;Times New Roman&#39;,serif"><b><span style=3D"font-size:10pt;font-=
family:Tahoma,sans-serif">From:</span></b><span><span style=3D"font-size:10=
pt;font-family:Tahoma,sans-serif">=C2=A0</span></span><span style=3D"font-s=
ize:10pt;font-family:Tahoma,sans-serif">6tisch [<a href=3D"mailto:6tisch-bo=
unces@ietf.org" style=3D"color:purple;text-decoration:underline" target=3D"=
_blank"><span style=3D"color:purple">mailto:6tisch-bounces@ietf.org</span><=
/a>]<span>=C2=A0</span><b>On Behalf Of<span>=C2=A0</span></b>Andy Bierman<b=
r><b>Sent:</b><span>=C2=A0</span>vendredi 5 juin 2015 20:55<br><b>To:</b><s=
pan>=C2=A0</span>Michel Veillette<br><b>Cc:</b><span>=C2=A0</span><a href=
=3D"mailto:6tisch@ietf.org" style=3D"color:purple;text-decoration:underline=
" target=3D"_blank"><span style=3D"color:purple">6tisch@ietf.org</span></a>=
; Alexander Pelov;<span>=C2=A0</span><a href=3D"mailto:core@ietf.org" style=
=3D"color:purple;text-decoration:underline" target=3D"_blank"><span style=
=3D"color:purple">core@ietf.org</span></a><br><b>Subject:</b><span>=C2=A0</=
span>Re: [6tisch] Reserve space for aliases</span><u></u><u></u></div></div=
></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></d=
iv></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-si=
ze:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></=
div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u><=
/div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-=
size:12pt;font-family:&#39;Times New Roman&#39;,serif">On Fri, Jun 5, 2015 =
at 11:41 AM, Michel Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilli=
antinc.com" style=3D"color:purple;text-decoration:underline" target=3D"_bla=
nk"><span style=3D"color:purple">Michel.Veillette@trilliantinc.com</span></=
a>&gt; wrote:<u></u><u></u></div></div></div><div><div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;c=
olor:rgb(31,73,125)">Hi Alexander</span><u></u><u></u></div></div></div><di=
v><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#3=
9;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Cal=
ibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></di=
v></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font=
-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font=
-family:Calibri,sans-serif;color:rgb(31,73,125)">I have some concerns about=
 allowing CoMI client(s) the control of the list of aliases.</span><u></u><=
u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;fon=
t-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"fon=
t-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">This appro=
ach work fine for the first CoMI application (e.g. 6TiSCH) but what do we d=
o with the subsequent CoMI application?</span><u></u><u></u></div></div></d=
iv><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fami=
ly:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-fami=
ly:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></di=
v></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11p=
t;font-family:Calibri,sans-serif;color:rgb(31,73,125)">One possible solutio=
n is that each CoMI client send a list of (alias, data node ID) to the CoMI=
 server. In this case, the CoMI client might receive an error if one or mul=
tiple of these aliases are already reserved.</span><u></u><u></u></div></di=
v></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font=
-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font=
-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u=
></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-siz=
e:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-siz=
e:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">A second possib=
le solution is that each CoMI client send a list of (data node ID) and get =
a list of (alias, data node ID) from the CoMI server. In this case, CoMI cl=
ients will have to deal with a mix population of aliases.</span><u></u><u><=
/u></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-s=
ize:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0</span>=
<u></u><u></u></div></div></div><div><div><div style=3D"margin:0in 0in 0.00=
01pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span styl=
e=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Th=
e proposed solution need to scale to a multi-vendors, multiple applications=
 environment.</span><u></u><u></u></div></div></div><div><div><div style=3D=
"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#3=
9;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;colo=
r:rgb(31,73,125)">With this is mind, do you have any alternative solutions =
to propose?</span><u></u><u></u></div></div></div><div><div><div style=3D"m=
argin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;=
,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:=
rgb(31,73,125)">=C2=A0</span><u></u><u></u></div></div></div></div></div><d=
iv><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-fami=
ly:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div><=
/div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fo=
nt-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div>=
</div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif">Does this approach allow =
each client to have a different set of aliases,<u></u><u></u></div></div></=
div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12=
pt;font-family:&#39;Times New Roman&#39;,serif">so the server has to mainta=
in a configured mapping for each client?<u></u><u></u></div></div></div></d=
iv><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font=
-family:&#39;Times New Roman&#39;,serif">This seems like a lot of overhead =
and NV-storage requirements<u></u><u></u></div></div></div></div><div><div>=
<div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;=
Times New Roman&#39;,serif">on the server.<u></u><u></u></div></div></div><=
/div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fo=
nt-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div>=
</div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:=
12pt;font-family:&#39;Times New Roman&#39;,serif">Changing the schema ident=
ifiers based on which client is<u></u><u></u></div></div></div></div><div><=
div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&=
#39;Times New Roman&#39;,serif">sending the request seems like a complicate=
d design change<u></u><u></u></div></div></div></div><div><div><div><div st=
yle=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Ro=
man&#39;,serif">from RESTCONF, NETCONF, or SNMP, where there is only<u></u>=
<u></u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">1 sche=
ma tree which is not dependent on the client identity.<u></u><u></u></div><=
/div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-=
size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u>=
</div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001p=
t;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u>=
<u></u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Andy<u=
></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in=
 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
=C2=A0<u></u><u></u></div></div></div></div><div><div><div><div style=3D"ma=
rgin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,=
serif">=C2=A0<u></u><u></u></div></div></div></div><div><div><div><div styl=
e=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roma=
n&#39;,serif">=C2=A0<u></u><u></u></div></div></div></div><div><div><div><d=
iv style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times N=
ew Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div></div><blockquot=
e style=3D"border-style:none none none solid;border-left-color:rgb(204,204,=
204);border-left-width:1pt;padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt=
"><div><div><div><table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" wi=
dth=3D"717" style=3D"width:537.75pt;border-collapse:collapse"><tbody><tr st=
yle=3D"height:49.05pt"><td width=3D"137" style=3D"width:103.1pt;border-styl=
e:none solid none none;border-right-color:windowtext;border-right-width:1pt=
;padding:0in 5.4pt;height:49.05pt"><div><div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span s=
tyle=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"=
>&lt;image001.jpg&gt;</span><u></u><u></u></div></div></div></td><td width=
=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49=
.05pt"><div style=3D"margin-left:8.1pt"><div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span s=
tyle=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">Mi=
chel Veillette<br>System Architecture Director</span><u></u><u></u></div></=
div></div><div style=3D"margin-left:8.1pt"><div><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><spa=
n style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)"=
>Trilliant Inc.<br>Tel: 450-375-0556 ext. 237<br><a href=3D"mailto:michel.v=
eillette@trilliantinc.com" style=3D"color:purple;text-decoration:underline"=
 target=3D"_blank"><span style=3D"color:rgb(5,99,193)">michel.veillette@tri=
lliantinc.com</span></a></span><u></u><u></u></div></div></div><div style=
=3D"margin-left:8.1pt"><div><div style=3D"margin:0in 0in 0.0001pt;font-size=
:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size=
:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><a href=3D"http:=
//www.trilliantinc.com/" style=3D"color:purple;text-decoration:underline" t=
arget=3D"_blank"><span style=3D"font-size:9pt;font-family:Arial,sans-serif;=
color:purple">www.trilliantinc.com</span></a></span><span><span style=3D"fo=
nt-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)">=C2=A0</span=
></span><span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb=
(31,73,125)">=C2=A0<span>=C2=A0</span></span><u></u><u></u></div></div></di=
v></td></tr></tbody></table><div><div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D=
"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">=C2=A0=
</span><u></u><u></u></div></div></div></div><div><div><div style=3D"margin=
:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,seri=
f"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(3=
1,73,125)">=C2=A0</span><u></u><u></u></div></div></div><div><div style=3D"=
border-style:solid none none;border-top-color:rgb(225,225,225);border-top-w=
idth:1pt;padding:3pt 0in 0in"><div><div><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><b><span sty=
le=3D"font-size:11pt;font-family:Calibri,sans-serif">From:</span></b><span>=
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif">=C2=A0</span>=
</span><span style=3D"font-size:11pt;font-family:Calibri,sans-serif">Alexan=
der Pelov [mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" st=
yle=3D"color:purple;text-decoration:underline" target=3D"_blank"><span styl=
e=3D"color:purple">alexander.pelov@telecom-bretagne.eu</span></a>]<span>=C2=
=A0</span><br><b>Sent:</b><span>=C2=A0</span>5 juin 2015 12:03<br><b>To:</b=
><span>=C2=A0</span>Michel Veillette<br><b>Cc:</b><span>=C2=A0</span>Andy B=
ierman;<span>=C2=A0</span><a href=3D"mailto:6tisch@ietf.org" style=3D"color=
:purple;text-decoration:underline" target=3D"_blank"><span style=3D"color:p=
urple">6tisch@ietf.org</span></a>;<span>=C2=A0</span><a href=3D"mailto:core=
@ietf.org" style=3D"color:purple;text-decoration:underline" target=3D"_blan=
k"><span style=3D"color:purple">core@ietf.org</span></a><br><b>Subject:</b>=
<span>=C2=A0</span>Re: Reserve space for aliases</span><u></u><u></u></div>=
</div></div></div></div><div><div><div style=3D"margin:0in 0in 0.0001pt;fon=
t-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></=
u></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Hi Michel,<u></u>=
<u></u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0=
<u></u><u></u></div></div></div></div><div><div><div style=3D"margin:0in 0i=
n 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=
=A0<u></u><u></u></div></div></div><div><blockquote style=3D"margin-top:5pt=
;margin-bottom:5pt"><div><div><div><div style=3D"margin:0in 0in 0.0001pt;fo=
nt-size:12pt;font-family:&#39;Times New Roman&#39;,serif">Le 5 juin 2015 =
=C3=A0 17:17, Michel Veillette &lt;<a href=3D"mailto:Michel.Veillette@trill=
iantinc.com" style=3D"color:purple;text-decoration:underline" target=3D"_bl=
ank"><span style=3D"color:purple">Michel.Veillette@trilliantinc.com</span><=
/a>&gt; a =C3=A9crit :<u></u><u></u></div></div></div></div><div><div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New =
Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div><div><div><div><div=
><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Time=
s New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,s=
ans-serif">Hi Alexander</span><u></u><u></u></div></div></div></div><div><d=
iv><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#=
39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:Ca=
libri,sans-serif">=C2=A0</span><u></u><u></u></div></div></div></div><div><=
div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&=
#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:C=
alibri,sans-serif">In your presentation at 6TiSCH, you propose the followin=
g data node ID structure.</span><u></u><u></u></div></div></div></div><div>=
<div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:=
&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family:=
Calibri,sans-serif">=C2=A0</span><u></u><u></u></div></div></div></div><tab=
le border=3D"0" cellspacing=3D"0" cellpadding=3D"0" style=3D"border-collaps=
e:collapse"><tbody><tr><td width=3D"623" valign=3D"top" style=3D"width:467.=
5pt;border:1pt solid windowtext;padding:0in 5.4pt"><div style=3D"margin-lef=
t:0.5in"><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fon=
t-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fon=
t-family:Arial,sans-serif">=E2=80=A2</span><span style=3D"font-size:7pt">=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:1=
1pt;font-family:Calibri,sans-serif">32 bits YANG ID</span><u></u><u></u></d=
iv></div></div></div><div style=3D"margin-left:1in"><div><div><div style=3D=
"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#3=
9;,serif"><span style=3D"font-size:11pt;font-family:Arial,sans-serif">=E2=
=80=93</span><span style=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0</span><span style=3D"font-size:11pt;font-family:Calibri,sans-serif">=
20 bits for module ID (assigned by IETF)</span><u></u><u></u></div></div></=
div></div><div style=3D"margin-left:1in"><div><div><div style=3D"margin:0in=
 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><=
span style=3D"font-size:11pt;font-family:Arial,sans-serif">=E2=80=93</span>=
<span style=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><s=
pan style=3D"font-size:11pt;font-family:Calibri,sans-serif">10 bits for dat=
a node ID (generated deterministically)</span><u></u><u></u></div></div></d=
iv></div></td></tr></tbody></table><div><div><div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><s=
pan style=3D"font-size:11pt;font-family:Calibri,sans-serif">=C2=A0</span><u=
></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in=
 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><=
span style=3D"font-size:11pt;font-family:Calibri,sans-serif">Based on this =
structure, we can reserve=C2=A0module ID zero for aliases.</span><u></u><u>=
</u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span sty=
le=3D"font-size:11pt;font-family:Calibri,sans-serif">=C2=A0</span><u></u><u=
></u></div></div></div></div></div></blockquote><div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif">=C2=A0<u></u><u></u></div></div></div></div><div><div><div><di=
v style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times Ne=
w Roman&#39;,serif">I was just summarizing what was discussed on the discus=
sion in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=99s for purpo=
ses to be consistent with the YANG hash and I don=E2=80=99t mind keeping it=
 30 bits.<u></u><u></u></div></div></div></div><div><div><div><div style=3D=
"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#3=
9;,serif">=C2=A0<u></u><u></u></div></div></div></div><p class=3D"MsoNormal=
" style=3D"margin:0in 0in 12pt;font-size:12pt;font-family:&#39;Times New Ro=
man&#39;,serif">=C2=A0<u></u><u></u></p><blockquote style=3D"margin-top:5pt=
;margin-bottom:5pt"><div><div><div><div><div style=3D"margin:0in 0in 0.0001=
pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif">If we want to minimize b=
oth the network an node resources require by this alias mechanism, we can m=
ap an entire module to this space.</span><u></u><u></u></div></div></div></=
div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;fon=
t-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;fon=
t-family:Calibri,sans-serif">This can be implemented by a single integer re=
source (e.g. leaf alliassedModule { type uint32 } )</span><u></u><u></u></d=
iv></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;f=
ont-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"f=
ont-size:11pt;font-family:Calibri,sans-serif">This approach require 4 bytes=
 per CoMI server accessed.</span><u></u><u></u></div></div></div></div><div=
><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family=
:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family=
:Calibri,sans-serif">=C2=A0</span><u></u><u></u></div></div></div></div></d=
iv></blockquote><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-s=
ize:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u></u><u></u><=
/div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">It is possible=
 to map an entire module to the alias space and this is up to the operator.=
 However, if you load two modules which redefine the same alias you will lo=
ose the benefit from it. Maybe it would be interesting to be able to specif=
y that you want the aliases from THIS specific module to be used.<u></u><u>=
</u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u>=
</u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">If=
 the /mg/0 alias is reserved for managing the aliases, this could be simply=
 saying:<u></u><u></u></div></div></div></div><div><div><div><div style=3D"=
margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39=
;,serif">POST /mg/0<u></u><u></u></div></div></div></div><div><div><div><di=
v style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times Ne=
w Roman&#39;,serif">{<u></u><u></u></div></div></div></div><div><div><div><=
div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times =
New Roman&#39;,serif">=C2=A0&quot;source_uri&quot; : &quot;/mg/BAA&quot;<u>=
</u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">}<=
u></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
=C2=A0<u></u><u></u></div></div></div></div><div><div><div><div style=3D"ma=
rgin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,=
serif">where /mg/BAA is the YANG id of the module (20 bits module ID + 10 b=
its set to 0). This way, the server will know: OK, get the alias mapping fr=
om the YANG scheme of module with ID =3D B (as defined by the IETF).=C2=A0<=
u></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0i=
n 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
=C2=A0<u></u><u></u></div></div></div></div><div><div><div><div style=3D"ma=
rgin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,=
serif">Or, you can dynamically configure the mapping:<u></u><u></u></div></=
div></div></div><div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;f=
ont-size:12pt;font-family:&#39;Times New Roman&#39;,serif">POST /mg/0<u></u=
><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in=
 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">{<u><=
/u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in 0=
in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=
=A0 YANG_id : alias,<u></u><u></u></div></div></div></div><div><div><div><d=
iv style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times N=
ew Roman&#39;,serif">=C2=A0 YANG_id : alias,<u></u><u></u></div></div></div=
></div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;=
font-family:&#39;Times New Roman&#39;,serif">=C2=A0 YANG_id : alias<u></u><=
u></u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0=
.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">}<u></u=
><u></u></div></div></div></div></div><p class=3D"MsoNormal" style=3D"margi=
n:0in 0in 12pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=
=C2=A0<u></u><u></u></p><blockquote style=3D"margin-top:5pt;margin-bottom:5=
pt"><div><div><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12p=
t;font-family:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11p=
t;font-family:Calibri,sans-serif">If we want a more complex but more flexib=
le aliases mechanism, your proposed map of (allias, YANG ID) seem the solut=
ion.</span><u></u><u></u></div></div></div></div><div><div><div><div style=
=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman=
&#39;,serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif">=
However, we have to consider that this structure can be as large as=C2=A0<u=
>1250 bytes per CoMI server accessed</u>=C2=A0if limited to 256 aliases.</s=
pan><u></u><u></u></div></div></div></div></div></blockquote><div><div><div=
><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Time=
s New Roman&#39;,serif">=C2=A0<u></u><u></u></div></div></div></div><div><d=
iv><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:&#=
39;Times New Roman&#39;,serif">This is assuming you need a separate mapping=
 for each server. I would suppose that in a network you=E2=80=99ll have a s=
ingle alias mapping (maybe two?) - after all, you=E2=80=99re trying to opti=
mize the management of your devices (servers). So, typically you=E2=80=99d =
map all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that=
 on them, and on all other you=E2=80=99d access the full ID.=C2=A0<u></u><u=
></u></div></div></div></div><div><div><div><div style=3D"margin:0in 0in 0.=
0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">=C2=A0<u=
></u><u></u></div></div></div></div><div><div><div><div style=3D"margin:0in=
 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif">B=
est,<u></u><u></u></div></div></div></div><div><div><div><div style=3D"marg=
in:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,se=
rif">Alexander<u></u><u></u></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin:0in 0in 12pt;font-size:12pt;font-family:&#39;Times New Roma=
n&#39;,serif">=C2=A0<u></u><u></u></p><blockquote style=3D"margin-top:5pt;m=
argin-bottom:5pt"><div><div><div><div><div style=3D"margin:0in 0in 0.0001pt=
;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span style=3D=
"font-size:11pt;font-family:Calibri,sans-serif">=C2=A0</span><u></u><u></u>=
</div></div></div></div><table border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse"><tbo=
dy><tr style=3D"height:49.05pt"><td width=3D"137" style=3D"width:103.1pt;bo=
rder-style:none solid none none;border-right-color:windowtext;border-right-=
width:1pt;padding:0in 5.4pt;height:49.05pt"><div><div><div><div style=3D"ma=
rgin:0in 0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,=
serif"><span style=3D"font-size:11pt;font-family:Calibri,sans-serif">&lt;im=
age001.jpg&gt;</span><u></u><u></u></div></div></div></div></td><td width=
=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49=
.05pt"><div style=3D"margin-left:8.1pt"><div><div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><s=
pan style=3D"font-size:9pt;font-family:Arial,sans-serif">Michel Veillette<b=
r>System Architecture Director</span><u></u><u></u></div></div></div></div>=
<div style=3D"margin-left:8.1pt"><div><div><div style=3D"margin:0in 0in 0.0=
001pt;font-size:12pt;font-family:&#39;Times New Roman&#39;,serif"><span sty=
le=3D"font-size:9pt;font-family:Arial,sans-serif">Trilliant Inc.<br>Tel: 45=
0-375-0556 ext. 237<br><a href=3D"mailto:michel.veillette@trilliantinc.com"=
 style=3D"color:purple;text-decoration:underline" target=3D"_blank"><span s=
tyle=3D"color:rgb(5,99,193)">michel.veillette@trilliantinc.com</span></a></=
span><u></u><u></u></div></div></div></div><div style=3D"margin-left:8.1pt"=
><div><div><div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family=
:&#39;Times New Roman&#39;,serif"><span style=3D"font-size:11pt;font-family=
:Calibri,sans-serif"><a href=3D"http://www.trilliantinc.com/" style=3D"colo=
r:purple;text-decoration:underline" target=3D"_blank"><span style=3D"font-s=
ize:9pt;font-family:Arial,sans-serif;color:purple">www.trilliantinc.com</sp=
an></a></span></div></div></div></div></td></tr></tbody></table></div></blo=
ckquote></div></div></div></blockquote></div></div></div></div></div></bloc=
kquote></div></div></blockquote></div></div></div></blockquote></div><br></=
div></blockquote></div><br></div>
</div></blockquote></div><br></div></blockquote></div><br></div></div></div=
>

--001a113496f2c7b38d05185a0cae--


From nobody Fri Jun 12 16:27:06 2015
Return-Path: <alexander.pelov@telecom-bretagne.eu>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 12B891A87A4; Fri, 12 Jun 2015 16:27:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t2f7UCjf5IT9; Fri, 12 Jun 2015 16:26:56 -0700 (PDT)
Received: from zproxy210.enst-bretagne.fr (zproxy210.enst-bretagne.fr [192.108.117.8]) by ietfa.amsl.com (Postfix) with ESMTP id 4D7371A879F; Fri, 12 Jun 2015 16:26:55 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id AD0762320B3; Sat, 13 Jun 2015 01:26:54 +0200 (CEST)
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id wi6DBH1mhVQm; Sat, 13 Jun 2015 01:26:52 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTP id 2138D2320C2; Sat, 13 Jun 2015 01:26:52 +0200 (CEST)
X-Virus-Scanned: amavisd-new at zproxy210.enst-bretagne.fr
Received: from zproxy210.enst-bretagne.fr ([127.0.0.1]) by localhost (zproxy210.enst-bretagne.fr [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 8mhlot7vrgqE; Sat, 13 Jun 2015 01:26:51 +0200 (CEST)
Received: from [192.168.0.12] (abo-137-132-68.bdx.modulonet.fr [85.68.132.137]) by zproxy210.enst-bretagne.fr (Postfix) with ESMTPSA id 2940C2320B3; Sat, 13 Jun 2015 01:26:51 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_42B2A8D5-0F4E-44E7-BADB-4D4593C64BFA"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
In-Reply-To: <CABCOCHTHBdfA1snNB7BepbxwqDj1TvsxJ23yMw9SJevStKGSVw@mail.gmail.com>
Date: Sat, 13 Jun 2015 01:26:50 +0200
Message-Id: <E1A55DE0-A501-4BA6-AE79-0FFCA02BBD3C@telecom-bretagne.eu>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu> <CO2PR0601MB792C118ECA44AD8FD152307FEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <43EF5C59-CF72-440B-8BC0-931D8F6EB40A@telecom-bretagne.eu> <CABCOCHS2z-ps51JHp9cK7+oobHoPXAa-vu+hKMzMF8f31OboNw@mail.gmail.com> <93162CDB-3DC8-442E-9427-68DF7EB0CD31@telecom-bretagne.eu> <CABCOCHTHBdfA1snNB7BepbxwqDj1TvsxJ23yMw9SJevStKGSVw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/jU609y0CrcOmciBMRZBQwm8ooKs>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 23:27:03 -0000

--Apple-Mail=_42B2A8D5-0F4E-44E7-BADB-4D4593C64BFA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Andy,

> Le 13 juin 2015 =C3=A0 00:58, Andy Bierman <andy@yumaworks.com> a =
=C3=A9crit :
>=20
> Hi,
>=20
> I am not convinced that aliases are worth all the effort
> because most (95%?) of the IDs in the payload will only
> need 10 bits.

Yes, I must say that in the discussions in the past couple of days =
really cover many of the cases I was thinking about, so I would tend to =
agree with you that in most cases aliases can be an overkill.=20

However, you always need to provide at least one long id, which could be =
avoided, and could be very beneficial for some networks.=20

So, to sum up, if the proposal of YANG ID structure (20 bits module ID + =
10 bits data node ID), long form/short form, and =E2=80=98select=E2=80=99 =
option with CBOR encoding is accepted, then 95% of the work is done (and =
I would be happy with that).

I feel that adding a short statement - module ID =3D 0 is reserved for =
aliases - and address this in another draft would be the simplest =
solution (we have to figure out what to do with that module ID =3D 0 =
anyways). I=E2=80=99ve already described a pretty straightforward way of =
managing aliases, the simplest being - static allocation by the server =
(e.g. upon provisioning / firmware update / etc.).=20

Alexander

>=20
>=20
> Andy
>=20
>=20
>=20
>=20
> On Fri, Jun 12, 2015 at 3:25 PM, Alexander Pelov =
<alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>> wrote:
> Hi Andy,
>=20
> Not sure if you were referring to the example/explanation I tried to =
provide (maybe Michel had something else in mind), but here I go.
>=20
>> Le 12 juin 2015 =C3=A0 23:57, Andy Bierman <andy@yumaworks.com =
<mailto:andy@yumaworks.com>> a =C3=A9crit :
>>=20
>> Hi,
>>=20
>> Here is the "JSON for YANG" draft:
>> https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt =
<https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt>
>>=20
>> The long form (module-name:local-name) is only used
>> at the top of a sub-tree and where the module namespace changes
>> (due to an augment from another module).
>>=20
>> The data is hierarchical and the parser is required to maintain
>> the current module scope. It should be possible to omit the module
>> identifier is nested data, except for nodes that start a new
>> module scope.
>=20
> Ok, that sounds perfectly in line with the module ID/data node ID and =
the long form/short form we=E2=80=99ve been discussing with Michel.
>=20
>>=20
>> Is this what you have in mind?
>> For YANG Hash (that has no module identifier)
>> every nested node ID needs the full 30 bits,
>> but this is not required for managed IDs.
>=20
> If you have your YANG hash ID behave in a structured way (e.g. stop =
being a hash..), then you don=E2=80=99t need to send the full 30 bits.=20=

>=20
> If I take the following example (which is a strange case just for the =
sake of it):
> REQ: GET example.com/mg?select <http://example.com/mg?select>( [5, =
2049, 2, 3, 4, 4097, 2, 3, 4, 2053, 2055, 6] )
>=20
> That would resolve to requesting the following YANG IDs:
> long form =3D module ID / short form
> 5 =3D 0 / 5
> 2049 =3D 1 / 1
> 2050 =3D 1 / 2
> 2051 =3D 1 / 3
> 2052 =3D 1 / 4
> 4097 =3D 2 / 1
> 4098 =3D 2 / 2
> 4099 =3D 2 / 3
> 4099 =3D 2 / 4
> 2053 =3D 1 / 5
> 2055 =3D 1 / 7
> 2054 =3D 1 / 6
>=20
> Of course, that is not (directly) related to the way the YANG parser =
processes the YANG modules. It is a way to parse the select option, and =
is straightforward. Consecutively, element by element apply something of =
the form:
>=20
> if (full_id & 0x3FFFFC00) > 0) {
>    current_module_ID =3D full_id >> 10;
> }
> else {
>   full_id =3D (current_module_ID << 10) & full_id;
> }
>=20
> Of course, that could be optimized, but for the sake of clarity we can =
leave it like this for the moment.
>=20
> Best,
> Alexander
>=20
>=20
>>=20
>>=20
>> Andy
>>=20
>>=20
>>=20
>>=20
>>=20
>> On Fri, Jun 12, 2015 at 2:42 PM, Alexander Pelov =
<alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>> wrote:
>> Michel,
>>=20
>>=20
>>> Le 12 juin 2015 =C3=A0 23:10, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
>>>=20
>>> I Alexander
>>> =20
>>> I don=E2=80=99t see any issues with your proposal of using module ID =
0 as aliases.
>>> The only constrain is that aliases need to be at the start of the =
select for a GET and at the start of the payload for a PUT.
>>=20
>> Yes, I suppose you should always start with aliases, but that =
doesn=E2=80=99t sound like a strong constraint to me, so it=E2=80=99s =
seems like the perfect solution.
>>=20
>>> =20
>>> The last things we need to sort out, is the instance selector (keys) =
in the context of a select query parameter containing multiple data =
nodes.
>>> =20
>>> Let assume the following:
>>> =C2=B7         A CoMI client need to select 3 data nodes (Data node =
ID 2049, 2 and 3)
>>> =C2=B7         For the first data node, three values need to be =
provided as keys (e.g. 1, "ipv4", "10.0.0.51 "), see =
draft-vanderstok-core-comi-06 page 22.
>>> =C2=B7         For the third data node, one integer value need to be =
provided as keys (e.g. 22).
>>> =20
>>> If we include these keys in the select query parameter encoded in =
CBOR, the result might look as follow:
>>> =20
>>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[[20491,"ipv4","10.0.0.51",2], 2, [3,22]] )
>>=20
>> Just a small typo (missed a coma after 2049, right?):
>>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[[2049, 1,"ipv4","10.0.0.51",2], 2, [3,22]] )
>>=20
>> And yes, seems quite straightforward and reasonable to me. If I =
understand correctly, the format you use is the following:
>> The select parameter accepts a single integer (long form data ID) or =
an array. In the latter case, each element of the array may be either an =
integer (e.g. data ID), or an array in the form [data ID, key1, key2, =
=E2=80=A6, keyN]. The data ID may be absolute (e.g. long form), or =
relative to the module of the previous data ID.=20
>>=20
>> This seems quite expressive, simple and compact. I wonder if we=E2=80=99=
re missing something, as it really does seem to have quite a lot of nice =
characteristics.=20
>>=20
>> Best,
>> Alexander
>>=20
>>=20
>>> =20
>>> In the current draft, the CoMI server need to support two encoding =
for each selector, CBOR encoding in the payload and text in the keys =
query parameter.
>>> With this proposal, both use cases are encoded using CBOR.
>>> =20
>>> What do you things?
>>> =20
>>> <image001.jpg>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
>>> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
>>> =20
>>> =20
>>> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
>>> Sent: 12 juin 2015 15:26
>>> To: Michel Veillette
>>> Cc: Pascal Thubert (pthubert); Andy Bierman; 6tisch@ietf.org =
<mailto:6tisch@ietf.org>; core@ietf.org <mailto:core@ietf.org>
>>> Subject: Re: [6tisch] Reserve space for aliases
>>> =20
>>> Hi Michel,
>>> =20
>>> You=E2=80=99re right. As I mentioned in my previous mails, I=E2=80=99m=
 pretty happy with the compression of IDs we=E2=80=99ve achieved until =
now, so aliases are not as a pressing issue.=20
>>> =20
>>> The thing is, if they can be implemented at (almost) zero cost, then =
some of the use-cases become quite interesting.
>>> =20
>>> You actually provide a very good case with the select option. I=E2=80=99=
ve not thought if it will present some other difficulties, but I =
actually think it facilitates the use of aliases (and I mention this =
only because it will help me also understand the semantics of your =
proposal of the select option).
>>> =20
>>> If I take the example you provide:
>>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4] )=20
>>> =20
>>> The parameters 2,3,4 are actually relative to the module ID of the =
first one. So, if I try to generalize this (please correct me if I=E2=80=99=
m wrong), I would imagine something like:
>>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4, 4097,2,3,4] )=20
>>> To resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and =
4, and module ID=3D2 and relative node IDs =3D1,2,3 and 4.
>>> =20
>>> This means, that specifying a GET example.com/mg?select =
<http://example.com/mg?select>(1) should resolve to module ID=3D0 and =
relative node ID=3D1. This requires absolutely no additional processing =
from the node.=20
>>> =20
>>> So, this leaves us back to the initial idea of the aliases. All =
short node IDs are relative to a module ID (so that the long form ID can =
be interpreted). Module ID=3D0 is reserved, and can be used for aliasing =
if the device wishes to support it.=20
>>> =20
>>> Does this break some of the things along the way?=20
>>> =20
>>> Best,
>>> Alex
>>> =20
>>> =20
>>> =20
>>> Le 12 juin 2015 =C3=A0 18:57, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
>>> =20
>>> Hi Alexander, hi Pascal
>>> =20
>>> I want to emphases the following points
>>> =20
>>> =C2=B7         The use of the select query parameter encoded in CBOR =
support of 63 modules with optimized message size instead of only 3 for =
the base64 URI.
>>> If the 6TiSCH module ID is allocated within these 63 IDs, there will =
be no message size optimization provided by the aliases mechanism.
>>> This make the introduction of aliases less urgent.
>>> =20
>>> =C2=B7         The message size of the select query parameter =
encoded in CBOR should be equal or smaller compared to the base64 URI.
>>> However, the select query parameter encoded in CBOR support a wider =
range of values without size penalty (16 bits instead of 12, 32 bits =
instead of 30)
>>> Furthermore, CoMI devices won=E2=80=99t have to support two type of =
encoding depending if IDs are part of the command vs. payload.
>>> =20
>>> For example:
>>> =20
>>> Assuming module ID 2
>>> Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)
>>> Assuming =E2=80=9C,=E2=80=9D separator to select multiple data nodes
>>> =20
>>> Base64 approach:
>>> REQ: GET example.com/mg/gB <http://example.com/mg/gB>         (3 =
bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =E2=80=9CgB=E2=80=9D=
)
>>> =20
>>> CBOR approach:
>>> REQ: GET example.com/mg?select <http://example.com/mg?select>(2049)  =
       (4 bytes; one byte for the CoAP option, 3 for 2049 encoded using =
CBOR)
>>> =20
>>> Base64 approach:
>>> REQ: GET example.com/mg/gB,C,D,E <http://example.com/mg/gB,C,D,E>    =
     (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 bytes for =
=E2=80=9CgB,C,D,E=E2=80=9D)
>>> =20
>>> CBOR approach:
>>> REQ: GET example.com/mg?select <http://example.com/mg?select>( =
[2049,2,3,4] )      (8 bytes; 1 byte for the CoAP option, 1 for the CBOR =
array, 3+1+1+1 bytes for the IDs)
>>> =20
>>> =20
>>> <image001.jpg>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
>>> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
>>> =20
>>> =20
>>> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
>>> Sent: 11 juin 2015 17:06
>>> To: Pascal Thubert (pthubert)
>>> Cc: Andy Bierman; Michel Veillette; 6tisch@ietf.org =
<mailto:6tisch@ietf.org>; core@ietf.org <mailto:core@ietf.org>
>>> Subject: Re: [6tisch] Reserve space for aliases
>>> =20
>>> Hi Pascal,
>>> =20
>>> Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) =
<pthubert@cisco.com <mailto:pthubert@cisco.com>> a =C3=A9crit :
>>> =20
>>> Dear all:
>>> =20
>>> This looks like the problem of local namespaces,  which is the =
reason why MPLS switches labels.
>>> The user may access a limited set of resources from a number of =
servers, and servers are read by many users.
>>> You cannot ensure that you have a single alias space that satisfies =
them all.
>>> =20
>>> Great analogy! And yes, sadly you cannot satisfy them all, at least =
not with all devices.
>>>=20
>>>=20
>>>=20
>>> =20
>>> So ,what if the user had its own set of aliases and the server also =
had its own set of aliases?
>>> =20
>>> The aliases could be mapped in a table like a uSAP and a pSAP are =
mapped across layers. Broadly:
>>> - First time a user requests a resource in a server, it comes with a =
tuple (userid, useralias, fullname)
>>> - The server responds with (serverid, serveralias, userid, user =
alias).
>>> =20
>>> Actually, I think that this could be worked out in CoMI also. =
Instead of fullname you could provide the YANG id (module ID + data node =
ID) and do the mapping. User alias would be the special aliased YANG id. =
User ID, however, could be a little bit more tricky - how do we ensure =
that it is consistent? Use the IP address of the client could be doable, =
but we=E2=80=99ll have to include the UDP port just in case someone runs =
two clients on the same machine.
>>> =20
>>>=20
>>>=20
>>>=20
>>> =20
>>> After that,  if the server is a constrained device then the user =
talks to the server with (serverid, serveralias) and the user maintains =
a switching table for the resource it uses on various servers.
>>> If the user is the constrained device and the server is not, the =
user could talk with (userid, useralias) and the server maintains a =
switching table.
>>> =20
>>> For large servers, the server may allocate aliases dynamically based =
on what it is being asked. We=E2=80=99d then need to talk about alias =
update or revocation, probably in terms of session and lifetime.
>>> =20
>>> Does that look usable?
>>> =20
>>> You are pointing out an interesting question. I would think (but =
maybe I=E2=80=99m mistaken), that the client should have the leading =
role in figuring out what=E2=80=99s happening. The idea is the =
following:
>>> =20
>>> The client checks if the server supports aliasing, with the possible =
options:
>>> S1) no aliasing
>>> S2) static/server-defined aliasing
>>> S3) dynamic/single alias mapping=20
>>>   S3.1) mapping already defined
>>>   S3.2) no mapping defined
>>> S4) dynamic/per client alias mapping
>>> =20
>>> Then, the client can take action, depending on its own capabilities =
and the response of the server. E.g. a unconstrained client could obtain =
the alias mapping if it is static (or if there is a single alias mapping =
in place) and cache it locally. So, there will be the following =
correspondence :
>>> =20
>>> Given:
>>> C1) constrained client
>>> C2) unconstrained client
>>> =20
>>> We have:
>>> C1 + S1) no aliasing, nothing to do
>>> C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. =
otherwise, ignore
>>> C1 + S3.2) and C1 + S4) define alias mapping
>>> =20
>>> C2 + S1) no aliasing, nothing to do
>>> C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. =
otherwise, learn it
>>> C2 + S3.2) and C2 + S4) define alias mapping
>>> =20
>>> I would say that the analogy you made with MPLS corresponds quite a =
lot to the C2+S4 case. Personally, I would be most interested into =
having one client configure one alias mapping to all servers in the =
network (e.g. the managing entity), which will profit most from saving =
several bytes on each message exchange. Everyone else could use the =
standard IDs, which we=E2=80=99ve already managed to shrink =
significantly.
>>> =20
>>> Indeed, with structured module ID + data node ID (20 bits + 10 =
bits), YANG URI compression, and long form/short form, we=E2=80=99ll =
have quite a lot of gain. Reserving module ID =3D 1 for aliases and =
maybe writing a short draft on how the aliasing is implemented seems =
feasible, where we can cover the exact mechanism of alias definition, =
and client/server interaction.
>>> =20
>>> Alexander
>>> =20
>>> =20
>>> Pascal
>>> =20
>>> From: 6tisch [mailto:6tisch-bounces@ietf.org =
<mailto:6tisch-bounces@ietf.org>] On Behalf Of Andy Bierman
>>> Sent: vendredi 5 juin 2015 20:55
>>> To: Michel Veillette
>>> Cc: 6tisch@ietf.org <mailto:6tisch@ietf.org>; Alexander Pelov; =
core@ietf.org <mailto:core@ietf.org>
>>> Subject: Re: [6tisch] Reserve space for aliases
>>> =20
>>> =20
>>> =20
>>> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> wrote:
>>> Hi Alexander
>>> =20
>>> I have some concerns about allowing CoMI client(s) the control of =
the list of aliases.
>>> This approach work fine for the first CoMI application (e.g. 6TiSCH) =
but what do we do with the subsequent CoMI application?
>>> =20
>>> One possible solution is that each CoMI client send a list of =
(alias, data node ID) to the CoMI server. In this case, the CoMI client =
might receive an error if one or multiple of these aliases are already =
reserved.
>>> =20
>>> A second possible solution is that each CoMI client send a list of =
(data node ID) and get a list of (alias, data node ID) from the CoMI =
server. In this case, CoMI clients will have to deal with a mix =
population of aliases.
>>> =20
>>> The proposed solution need to scale to a multi-vendors, multiple =
applications environment.
>>> With this is mind, do you have any alternative solutions to propose?
>>> =20
>>> =20
>>> =20
>>> Does this approach allow each client to have a different set of =
aliases,
>>> so the server has to maintain a configured mapping for each client?
>>> This seems like a lot of overhead and NV-storage requirements
>>> on the server.
>>> =20
>>> Changing the schema identifiers based on which client is
>>> sending the request seems like a complicated design change
>>> from RESTCONF, NETCONF, or SNMP, where there is only
>>> 1 schema tree which is not dependent on the client identity.
>>> =20
>>> =20
>>> Andy
>>> =20
>>> =20
>>> =20
>>> =20
>>> <image001.jpg>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
>>> www.trilliantinc.com <http://www.trilliantinc.com/>  =20
>>> =20
>>> =20
>>> From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu =
<mailto:alexander.pelov@telecom-bretagne.eu>]=20
>>> Sent: 5 juin 2015 12:03
>>> To: Michel Veillette
>>> Cc: Andy Bierman; 6tisch@ietf.org <mailto:6tisch@ietf.org>; =
core@ietf.org <mailto:core@ietf.org>
>>> Subject: Re: Reserve space for aliases
>>> =20
>>> Hi Michel,
>>> =20
>>> =20
>>> Le 5 juin 2015 =C3=A0 17:17, Michel Veillette =
<Michel.Veillette@trilliantinc.com =
<mailto:Michel.Veillette@trilliantinc.com>> a =C3=A9crit :
>>> =20
>>> Hi Alexander
>>> =20
>>> In your presentation at 6TiSCH, you propose the following data node =
ID structure.
>>> =20
>>> =E2=80=A2       32 bits YANG ID
>>> =E2=80=93      20 bits for module ID (assigned by IETF)
>>> =E2=80=93      10 bits for data node ID (generated =
deterministically)
>>> =20
>>> Based on this structure, we can reserve module ID zero for aliases.
>>> =20
>>> =20
>>> I was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.
>>> =20
>>> =20
>>>=20
>>> If we want to minimize both the network an node resources require by =
this alias mechanism, we can map an entire module to this space.
>>> This can be implemented by a single integer resource (e.g. leaf =
alliassedModule { type uint32 } )
>>> This approach require 4 bytes per CoMI server accessed.
>>> =20
>>> =20
>>> It is possible to map an entire module to the alias space and this =
is up to the operator. However, if you load two modules which redefine =
the same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.
>>> =20
>>> If the /mg/0 alias is reserved for managing the aliases, this could =
be simply saying:
>>> POST /mg/0
>>> {
>>>  "source_uri" : "/mg/BAA"
>>> }
>>> =20
>>> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 =
bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).=20
>>> =20
>>> Or, you can dynamically configure the mapping:
>>> POST /mg/0
>>> {
>>>   YANG_id : alias,
>>>   YANG_id : alias,
>>>   YANG_id : alias
>>> }
>>> =20
>>>=20
>>> If we want a more complex but more flexible aliases mechanism, your =
proposed map of (allias, YANG ID) seem the solution.
>>> However, we have to consider that this structure can be as large as =
1250 bytes per CoMI server accessed if limited to 256 aliases.
>>> =20
>>> This is assuming you need a separate mapping for each server. I =
would suppose that in a network you=E2=80=99ll have a single alias =
mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.=20
>>> =20
>>> Best,
>>> Alexander
>>> =20
>>>=20
>>> =20
>>> <image001.jpg>
>>> Michel Veillette
>>> System Architecture Director
>>> Trilliant Inc.
>>> Tel: 450-375-0556 ext. 237
>>> michel.veillette@trilliantinc.com =
<mailto:michel.veillette@trilliantinc.com>
>>> www.trilliantinc.com <http://www.trilliantinc.com/>
>>=20
>=20
>=20


--Apple-Mail=_42B2A8D5-0F4E-44E7-BADB-4D4593C64BFA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Hi Andy,</div><br class=3D""><div><blockquote =
type=3D"cite" class=3D""><div class=3D"">Le 13 juin 2015 =C3=A0 00:58, =
Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com" =
class=3D"">andy@yumaworks.com</a>&gt; a =C3=A9crit :</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D"">Hi,<div class=3D""><br class=3D""></div><div class=3D"">I am =
not convinced that aliases are worth all the effort</div><div =
class=3D"">because most (95%?) of the IDs in the payload will =
only</div><div class=3D"">need 10 =
bits.</div></div></div></blockquote><div><br class=3D""></div><div>Yes, =
I must say that in the discussions in the past couple of days really =
cover many of the cases I was thinking about, so I would tend to agree =
with you that in most cases aliases can be an =
overkill.&nbsp;</div><div><br class=3D""></div><div>However, you always =
need to provide at least one long id, which could be avoided, and could =
be very beneficial for some networks.&nbsp;</div><div><br =
class=3D""></div><div>So, to sum up, if the proposal of YANG ID =
structure (20 bits module ID + 10 bits data node ID), long form/short =
form, and =E2=80=98select=E2=80=99 option with CBOR encoding is =
accepted, then 95% of the work is done (and I would be happy with =
that).</div><div><br class=3D""></div><div>I feel that adding a short =
statement - module ID =3D 0 is reserved for aliases - and address this =
in another draft would be the simplest solution (we have to figure out =
what to do with that module ID =3D 0 anyways). I=E2=80=99ve already =
described a pretty straightforward way of managing aliases, the simplest =
being - static allocation by the server (e.g. upon provisioning / =
firmware update / etc.).&nbsp;</div><div><br =
class=3D""></div><div>Alexander</div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div =
class=3D""><br class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">Andy</div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""></div><div class=3D""><br class=3D""><div =
class=3D"gmail_extra"><br class=3D""><div class=3D"gmail_quote">On Fri, =
Jun 12, 2015 at 3:25 PM, Alexander Pelov <span dir=3D"ltr" =
class=3D"">&lt;<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
target=3D"_blank" =
class=3D"">alexander.pelov@telecom-bretagne.eu</a>&gt;</span> wrote:<br =
class=3D""><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div =
style=3D"word-wrap:break-word" class=3D""><div class=3D"">Hi =
Andy,</div><div class=3D""><br class=3D""></div><div class=3D"">Not sure =
if you were referring to the example/explanation I tried to provide =
(maybe Michel had something else in mind), but here I go.</div><br =
class=3D""><div class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">Le 12 juin 2015 =C3=A0 23:57, Andy Bierman &lt;<a =
href=3D"mailto:andy@yumaworks.com" target=3D"_blank" =
class=3D"">andy@yumaworks.com</a>&gt; a =C3=A9crit :</div><br =
class=3D""><div class=3D""><div dir=3D"ltr" class=3D"">Hi,<div =
class=3D""><br class=3D""></div><div class=3D"">Here is the "JSON for =
YANG" draft:</div><div class=3D""><a =
href=3D"https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt" =
target=3D"_blank" =
class=3D"">https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt</a><=
br class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">The long form (module-name:local-name) is only used</div><div =
class=3D"">at the top of a sub-tree and where the module namespace =
changes</div><div class=3D"">(due to an augment from another =
module).</div><div class=3D""><br class=3D""></div><div class=3D"">The =
data is hierarchical and the parser is required to maintain</div><div =
class=3D"">the current module scope. It should be possible to omit the =
module</div><div class=3D"">identifier is nested data, except for nodes =
that start a new</div><div class=3D"">module =
scope.</div></div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">Ok, that sounds perfectly in line with =
the module ID/data node ID and the long form/short form we=E2=80=99ve =
been discussing with Michel.</div><br class=3D""><blockquote type=3D"cite"=
 class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div =
class=3D""><br class=3D""></div><div class=3D"">Is this what you have in =
mind?</div><div class=3D"">For YANG Hash (that has no module =
identifier)</div><div class=3D"">every nested node ID needs the full 30 =
bits,</div><div class=3D"">but this is not required for managed =
IDs.</div></div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">If you have your YANG hash ID behave in =
a structured way (e.g. stop being a hash..), then you don=E2=80=99t need =
to send the full 30 bits.&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">If I take the following example (which =
is a strange case just for the sake of it):</div><div class=3D""><span =
style=3D"color:rgb(31,73,125);font-family:Calibri,sans-serif;font-size:11p=
t" class=3D"">REQ: GET&nbsp;</span><a =
href=3D"http://example.com/mg?select" =
style=3D"font-family:Calibri,sans-serif;font-size:11pt;color:purple" =
target=3D"_blank" class=3D""><span =
class=3D"">example.com/mg?select</span></a><span =
style=3D"color:rgb(31,73,125);font-family:Calibri,sans-serif;font-size:11p=
t" class=3D"">( [5, 2049, 2, 3, 4, 4097, 2, 3, 4, 2053, 2055, 6] =
)</span></div><div class=3D""><span =
style=3D"color:rgb(31,73,125);font-family:Calibri,sans-serif;font-size:11p=
t" class=3D""><br class=3D""></span></div><div class=3D"">That would =
resolve to requesting the following YANG IDs:</div><div class=3D"">long =
form =3D module ID / short form</div><div class=3D"">5 =3D 0 / =
5</div><div class=3D"">2049 =3D 1 / 1</div><div class=3D"">2050 =3D 1 / =
2</div><div class=3D"">2051 =3D 1 / 3</div><div class=3D"">2052 =3D 1 / =
4</div><div class=3D"">4097 =3D 2 / 1</div><div class=3D"">4098 =3D 2 / =
2</div><div class=3D"">4099 =3D 2 / 3</div><div class=3D"">4099 =3D 2 / =
4</div><div class=3D"">2053 =3D 1 / 5</div><div class=3D"">2055 =3D 1 / =
7</div><div class=3D"">2054 =3D 1 / 6</div><div class=3D""><br =
class=3D""></div><div class=3D"">Of course, that is not (directly) =
related to the way the YANG parser processes the YANG modules. It is a =
way to parse the select option, and is straightforward. Consecutively, =
element by element apply something of the form:</div><div class=3D""><br =
class=3D""></div><div class=3D"">if (full_id &amp;&nbsp;0x3FFFFC00) &gt; =
0) {</div><div class=3D"">&nbsp; &nbsp;current_module_ID =3D full_id =
&gt;&gt; 10;</div><div class=3D"">}</div><div class=3D"">else =
{</div><div class=3D"">&nbsp; full_id =3D (current_module_ID &lt;&lt; =
10) &amp; full_id;</div><div class=3D"">}</div><div class=3D""><br =
class=3D""></div><div class=3D"">Of course, that could be optimized, but =
for the sake of clarity we can leave it like this for the =
moment.</div><div class=3D""><br class=3D""></div><div =
class=3D"">Best,</div><div class=3D"">Alexander</div><div class=3D""><br =
class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div dir=3D"ltr" class=3D""><div class=3D""><br =
class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">Andy</div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""></div></div><div class=3D"gmail_extra"><br =
class=3D""><div class=3D"gmail_quote">On Fri, Jun 12, 2015 at 2:42 PM, =
Alexander Pelov <span dir=3D"ltr" class=3D"">&lt;<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
class=3D"">alexander.pelov@telecom-bretagne.eu</a>&gt;</span> wrote:<br =
class=3D""><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div =
style=3D"word-wrap:break-word" class=3D""><div =
class=3D"">Michel,</div><div class=3D""><br class=3D""></div><br =
class=3D""><div class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">Le 12 juin 2015 =C3=A0 23:10, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit =
:</div><br class=3D""><div class=3D""><div =
style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia=
nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text=
-align:start;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">I Alexander<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">I don=E2=80=99t see any issues with your proposal of using =
module ID 0 as aliases.<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The only constrain is that aliases need to be at the start =
of the select for a GET and at the start of the payload for a =
PUT.</span></div></div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">Yes, I suppose you should always start =
with aliases, but that doesn=E2=80=99t sound like a strong constraint to =
me, so it=E2=80=99s seems like the perfect solution.</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia=
nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text=
-align:start;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The last things we need to sort out, is the instance =
selector (keys) in the context of a select query parameter containing =
multiple data nodes.<u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Let assume the following:<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in 0.0001pt =
0.5in;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><span=
 style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D""><span class=3D"">=C2=B7<span =
style=3D"font-style:normal;font-variant:normal;font-weight:normal;font-siz=
e:7pt;line-height:normal;font-family:'Times New Roman'" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span></span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">A CoMI client need to select 3 data nodes (Data node ID =
2049, 2 and 3)<u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:'Times =
New Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D""><span class=3D"">=C2=B7<span =
style=3D"font-style:normal;font-variant:normal;font-weight:normal;font-siz=
e:7pt;line-height:normal;font-family:'Times New Roman'" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span></span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">For the first data node, three values need to be provided =
as keys (e.g. 1,</span><span class=3D"">&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">"ipv4",</span><span class=3D"">&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">"10.0.0.51</span><span class=3D"">&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">"), see draft-vanderstok-core-comi-06 page 22.<u =
class=3D""></u><u class=3D""></u></span></div><div style=3D"margin:0in =
0in 0.0001pt 0.5in;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D""><span class=3D"">=C2=B7<span =
style=3D"font-style:normal;font-variant:normal;font-weight:normal;font-siz=
e:7pt;line-height:normal;font-family:'Times New Roman'" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span></span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">For the third data node, one integer value need to be =
provided as keys (e.g. 22).<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">If we include these keys in the select query parameter =
encoded in CBOR, the result might look as follow:<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">example.com/mg?select</a>( [[20491,"ipv4","10.0.0.51",2], 2, =
[3,22]] )</span></div></div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">Just a small typo (missed a coma after =
2049, right?):</div><div class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" =
style=3D"color:purple" target=3D"_blank" =
class=3D"">example.com/mg?select</a>( [[2049, 1,"ipv4","10.0.0.51",2], =
2, [3,22]] )</span></div></div></blockquote><br class=3D""></div><div =
class=3D"">And yes, seems quite straightforward and reasonable to me. If =
I understand correctly, the format you use is the following:</div><div =
class=3D"">The select parameter accepts a single integer (long form data =
ID) or an array. In the latter case, each element of the array may be =
either an integer (e.g. data ID), or an array in the form [data ID, =
key1, key2, =E2=80=A6, keyN]. The data ID may be absolute (e.g. long =
form), or relative to the module of the previous data =
ID.&nbsp;</div><div class=3D""><br class=3D""></div><div class=3D"">This =
seems quite expressive, simple and compact. I wonder if we=E2=80=99re =
missing something, as it really does seem to have quite a lot of nice =
characteristics.&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">Best,</div><div class=3D"">Alexander</div><div class=3D""><br =
class=3D""></div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div =
style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia=
nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text=
-align:start;text-indent:0px;text-transform:none;white-space:normal;word-s=
pacing:0px" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">In the current draft, the CoMI server need to support two =
encoding for each selector, CBOR encoding in the payload and text in the =
keys query parameter.<u class=3D""></u><u class=3D""></u></span></div><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">With this proposal, both use cases are encoded using =
CBOR.<u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">What do you things?<u class=3D""></u><u =
class=3D""></u></span></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div class=3D""><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" =
style=3D"width:537.75pt;border-collapse:collapse" class=3D""><tbody =
class=3D""><tr style=3D"height:49.05pt" class=3D""><td width=3D"137" =
style=3D"width:103.1pt;border-style:none solid none =
none;border-right-color:windowtext;border-right-width:1pt;padding:0in =
5.4pt;height:49.05pt" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><span class=3D"">&lt;image001.jpg&gt;</span><u =
class=3D""></u><u class=3D""></u></span></div></td><td width=3D"580" =
valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt" =
class=3D""><div style=3D"margin:0in 0in 0.0001pt =
8.1pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><span=
 style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)"=
 class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><u class=3D""></u><u class=3D""></u></span></div><div =
style=3D"margin:0in 0in 0.0001pt 8.1pt;font-size:12pt;font-family:'Times =
New Roman',serif" class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:rgb(5,99,193)" =
class=3D"">michel.veillette@trilliantinc.com</span></a><u =
class=3D""></u><u class=3D""></u></span></div><div style=3D"margin:0in =
0in 0.0001pt 8.1pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"font-size:9pt;font-family:Arial,sans-serif" =
class=3D"">www.trilliantinc.com</span></a></span><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D""><span class=3D"">&nbsp;</span>&nbsp;<span =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><u class=3D""></u><u =
class=3D""></u></span></div></td></tr></tbody></table><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span></div><div class=3D""><div =
style=3D"border-style:solid none =
none;border-top-color:rgb(225,225,225);border-top-width:1pt;padding:3pt =
0in 0in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><b=
 class=3D""><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">From:</span></b><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D""><span =
class=3D"">&nbsp;</span>Alexander Pelov [<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"">&nbsp;</span><br class=3D""><b class=3D"">Sent:</b><span =
class=3D"">&nbsp;</span>12 juin 2015 15:26<br class=3D""><b =
class=3D"">To:</b><span class=3D"">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span class=3D"">&nbsp;</span>Pascal =
Thubert (pthubert); Andy Bierman; <a href=3D"mailto:6tisch@ietf.org" =
target=3D"_blank" class=3D"">6tisch@ietf.org</a>; <a =
href=3D"mailto:core@ietf.org" target=3D"_blank" =
class=3D"">core@ietf.org</a><br class=3D""><b class=3D"">Subject:</b><span=
 class=3D"">&nbsp;</span>Re: [6tisch] Reserve space for aliases<u =
class=3D""></u><u class=3D""></u></span></div></div></div><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Hi=
 Michel,<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">You=E2=80=99re right. As I mentioned in my =
previous mails, I=E2=80=99m pretty happy with the compression of IDs =
we=E2=80=99ve achieved until now, so aliases are not as a pressing =
issue.&nbsp;<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">The thing is, if they can be implemented at =
(almost) zero cost, then some of the use-cases become quite =
interesting.<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">You actually provide a very good case with the =
select option. I=E2=80=99ve not thought if it will present some other =
difficulties, but I actually think it facilitates the use of aliases =
(and I mention this only because it will help me also understand the =
semantics of your proposal of the select option).<u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">If I take the example you provide:<u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4] =
)&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></blockquote><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">The parameters 2,3,4 are actually relative to =
the module ID of the first one. So, if I try to generalize this (please =
correct me if I=E2=80=99m wrong), I would imagine something like:<u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4, 4097,2,3,4] =
)&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></blockquote><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">To=
 resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, and =
module ID=3D2 and relative node IDs =3D1,2,3 and 4.<u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">This means, that specifying a GET<span =
class=3D"">&nbsp;</span><a href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">example.com/mg?select</a>(1) should resolve to module ID=3D0 =
and relative node ID=3D1. This requires absolutely no additional =
processing from the node.&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">So, this leaves us back to the initial idea of =
the aliases. All short node IDs are relative to a module ID (so that the =
long form ID can be interpreted). Module ID=3D0 is reserved, and can be =
used for aliasing if the device wishes to support it.&nbsp;<u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Does this break some of the things along the way?&nbsp;<u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><u class=3D""></u>&nbsp;<u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Best,<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Alex<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><u=
 class=3D""></u>&nbsp;<u class=3D""></u></div><div class=3D""><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Le 12 juin 2015 =C3=A0 18:57, Michel Veillette =
&lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =C3=A9crit :<u =
class=3D""></u><u class=3D""></u></div></div><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><u class=3D""></u>&nbsp;<u class=3D""></u></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Hi Alexander, hi Pascal</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">I want to emphases the following points</span><u =
class=3D""></u><u class=3D""></u></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D"">=C2=B7</span><span style=3D"font-size:7pt;color:rgb(31,73,125)"=
 class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The use of the select query parameter encoded in CBOR =
support of 63 modules with optimized message size instead of only 3 for =
the base64 URI.</span><u class=3D""></u><u class=3D""></u></div></div><div=
 style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">If the 6TiSCH module ID is allocated within these 63 IDs, =
there will be no message size optimization provided by the aliases =
mechanism.</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">This make the introduction of aliases less =
urgent.</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" =
class=3D"">=C2=B7</span><span style=3D"font-size:7pt;color:rgb(31,73,125)"=
 class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The message size of the select query parameter encoded in =
CBOR should be equal or smaller compared to the base64 URI.</span><u =
class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">However, the select query parameter encoded in CBOR =
support a wider range of values without size penalty (16 bits instead of =
12, 32 bits instead of 30)</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Furthermore, CoMI devices won=E2=80=99t have to support =
two type of encoding depending if IDs are part of the command vs. =
payload.</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">For example:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Assuming module ID 2</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, =
2051)</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Assuming =E2=80=9C,=E2=80=9D separator to select multiple =
data nodes</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:0.5in" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Base64 approach:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg/gB" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg/gB</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; (3 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =
=E2=80=9CgB=E2=80=9D)</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">CBOR approach:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg?select</span></a>(2049)&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp; (4 bytes; one byte for the CoAP option, 3 for =
2049 encoded using CBOR)</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Base64 approach:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg/gB,C,D,E" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg/gB,C,D,E</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 =
bytes for =E2=80=9CgB,C,D,E=E2=80=9D)</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">CBOR approach:</span><u class=3D""></u><u =
class=3D""></u></div></div><div style=3D"margin-left:0.5in" =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a =
href=3D"http://example.com/mg?select" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">example.com/mg?select</span></a>( [2049,2,3,4] =
)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8 bytes; 1 byte for the CoAP option, 1 =
for the CBOR array, 3+1+1+1 bytes for the IDs)</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" =
style=3D"width:537.75pt;border-collapse:collapse" class=3D""><tbody =
class=3D""><tr style=3D"height:49.05pt" class=3D""><td width=3D"137" =
style=3D"width:103.1pt;border-style:none solid none =
none;border-right-color:windowtext;border-right-width:1pt;padding:0in =
5.4pt;height:49.05pt" class=3D""><div class=3D""><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&lt;image001.jpg&gt;</span><u class=3D""></u><u =
class=3D""></u></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt" class=3D""><div =
style=3D"margin-left:8.1pt" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><u class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:rgb(5,99,193)" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><u =
class=3D""></u><u class=3D""></u></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple" =
class=3D"">www.trilliantinc.com</span></a></span><span class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">&nbsp;<span class=3D"">&nbsp;</span></span><u class=3D""></u><u=
 class=3D""></u></div></div></td></tr></tbody></table><div class=3D""><div=
 style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div =
style=3D"border-style:solid none =
none;border-top-color:rgb(225,225,225);border-top-width:1pt;padding:3pt =
0in 0in" class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D""><b=
 class=3D""><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">From:</span></b><span class=3D""><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span></span><span lang=3D"EN-US" =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">Alexander Pelov [<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">mailto:alexander.pelov@telecom-bretagne.eu</a>]<span =
class=3D"">&nbsp;</span><br class=3D""><b class=3D"">Sent:</b><span =
class=3D"">&nbsp;</span>11 juin 2015 17:06<br class=3D""><b =
class=3D"">To:</b><span class=3D"">&nbsp;</span>Pascal Thubert =
(pthubert)<br class=3D""><b class=3D"">Cc:</b><span =
class=3D"">&nbsp;</span>Andy Bierman; Michel Veillette;<span =
class=3D"">&nbsp;</span><a href=3D"mailto:6tisch@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">6tisch@ietf.org</a>;<span class=3D"">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">core@ietf.org</a><br class=3D""><b class=3D"">Subject:</b><span=
 class=3D"">&nbsp;</span>Re: [6tisch] Reserve space for aliases</span><u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Hi=
 Pascal,<u class=3D""></u><u class=3D""></u></div></div></div><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u class=3D""></u></div></div><div =
class=3D""><blockquote style=3D"margin-top:5pt;margin-bottom:5pt" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Le=
 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) &lt;<a =
href=3D"mailto:pthubert@cisco.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">pthubert@cisco.com</span></a>&gt; a =C3=A9crit :<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Dear all:</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">This looks like the problem of local namespaces,&nbsp; =
which is the reason why MPLS switches labels.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The user may access a limited set of resources from a =
number of servers, and servers are read by many users.</span><u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">You cannot ensure that you have a single alias space that =
satisfies them all.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></blockquote><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Great analogy! And yes, sadly you cannot =
satisfy them all, at least not with all devices.<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><br class=3D""><br class=3D""><br class=3D""><u =
class=3D""></u><u class=3D""></u></div></div><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">So ,what if the user had its own set of aliases and the =
server also had its own set of aliases?</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The aliases could be mapped in a table like a uSAP and a =
pSAP are mapped across layers. Broadly:</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">- First time a user requests a resource in a server, it =
comes with a tuple (userid, useralias, fullname)</span><u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">- The server responds with (serverid, serveralias, userid, =
user alias).</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></blockquote><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Actually, I think that this could be worked out =
in CoMI also. Instead of fullname you could provide the YANG id (module =
ID + data node ID) and do the mapping. User alias would be the special =
aliased YANG id. User ID, however, could be a little bit more tricky - =
how do we ensure that it is consistent? Use the IP address of the client =
could be doable, but we=E2=80=99ll have to include the UDP port just in =
case someone runs two clients on the same machine.<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div style=3D"margin:0in =
0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><br class=3D""><br class=3D""><br class=3D""><u =
class=3D""></u><u class=3D""></u></div></div><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">After that,&nbsp; if the server is a constrained device =
then the user talks to the server with (serverid, serveralias) and the =
user maintains a switching table for the resource it uses on various =
servers.</span><u class=3D""></u><u class=3D""></u></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">If the user is the constrained device and the server is =
not, the user could talk with (userid, useralias) and the server =
maintains a switching table.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">For large servers, the server may allocate aliases =
dynamically based on what it is being asked. We=E2=80=99d then need to =
talk about alias update or revocation, probably in terms of session and =
lifetime.</span><u class=3D""></u><u class=3D""></u></div></div></div><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Does that look usable?</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></blockquote><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">You are pointing out an interesting question. I =
would think (but maybe I=E2=80=99m mistaken), that the client should =
have the leading role in figuring out what=E2=80=99s happening. The idea =
is the following:<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">The client checks if the server supports =
aliasing, with the possible options:<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">S1) no aliasing<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">S2) static/server-defined aliasing<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">S3) dynamic/single alias mapping&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp; S3.1) mapping already defined<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp; S3.2) no mapping defined<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">S4) dynamic/per client alias mapping<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Then, the client can take action, depending on =
its own capabilities and the response of the server. E.g. a =
unconstrained client could obtain the alias mapping if it is static (or =
if there is a single alias mapping in place) and cache it locally. So, =
there will be the following correspondence :<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Given:<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">C1) constrained client<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">C2) unconstrained client<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">We have:<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">C1 + S1) no aliasing, nothing to do<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C1=
 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise, =
ignore<u class=3D""></u><u class=3D""></u></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C1=
 + S3.2) and C1 + S4) define alias mapping<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C2=
 + S1) no aliasing, nothing to do<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C2=
 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise, =
learn it<u class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">C2=
 + S3.2) and C2 + S4) define alias mapping<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">I would say that the analogy you made with MPLS =
corresponds quite a lot to the C2+S4 case. Personally, I would be most =
interested into having one client configure one alias mapping to all =
servers in the network (e.g. the managing entity), which will profit =
most from saving several bytes on each message exchange. Everyone else =
could use the standard IDs, which we=E2=80=99ve already managed to =
shrink significantly.<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Indeed, with structured module ID + data node =
ID (20 bits + 10 bits), YANG URI compression, and long form/short form, =
we=E2=80=99ll have quite a lot of gain. Reserving module ID =3D 1 for =
aliases and maybe writing a short draft on how the aliasing is =
implemented seems feasible, where we can cover the exact mechanism of =
alias definition, and client/server interaction.<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">Alexander<u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Pascal</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div style=3D"border-style:none none =
none solid;border-left-color:blue;border-left-width:1.5pt;padding:0in =
0in 0in 4pt" class=3D""><div class=3D""><div style=3D"border-style:solid =
none =
none;border-top-color:rgb(181,196,223);border-top-width:1pt;padding:3pt =
0in 0in" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><b class=3D""><span =
style=3D"font-size:10pt;font-family:Tahoma,sans-serif" =
class=3D"">From:</span></b><span class=3D""><span =
style=3D"font-size:10pt;font-family:Tahoma,sans-serif" =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:10pt;font-family:Tahoma,sans-serif" class=3D"">6tisch =
[<a href=3D"mailto:6tisch-bounces@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">mailto:6tisch-bounces@ietf.org</span></a>]<span =
class=3D"">&nbsp;</span><b class=3D"">On Behalf Of<span =
class=3D"">&nbsp;</span></b>Andy Bierman<br class=3D""><b =
class=3D"">Sent:</b><span class=3D"">&nbsp;</span>vendredi 5 juin 2015 =
20:55<br class=3D""><b class=3D"">To:</b><span =
class=3D"">&nbsp;</span>Michel Veillette<br class=3D""><b =
class=3D"">Cc:</b><span class=3D"">&nbsp;</span><a =
href=3D"mailto:6tisch@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">6tisch@ietf.org</span></a>; Alexander Pelov;<span =
class=3D"">&nbsp;</span><a href=3D"mailto:core@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span class=3D"">&nbsp;</span>Re: [6tisch] =
Reserve space for aliases</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">On=
 Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; wrote:<u =
class=3D""></u><u class=3D""></u></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">Hi Alexander</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">I have some concerns about allowing CoMI client(s) the =
control of the list of aliases.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">This approach work fine for the first CoMI application =
(e.g. 6TiSCH) but what do we do with the subsequent CoMI =
application?</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">One possible solution is that each CoMI client send a list =
of (alias, data node ID) to the CoMI server. In this case, the CoMI =
client might receive an error if one or multiple of these aliases are =
already reserved.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">A second possible solution is that each CoMI client send a =
list of (data node ID) and get a list of (alias, data node ID) from the =
CoMI server. In this case, CoMI clients will have to deal with a mix =
population of aliases.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">The proposed solution need to scale to a multi-vendors, =
multiple applications environment.</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">With this is mind, do you have any alternative solutions =
to propose?</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Does this approach allow each client to have a different set =
of aliases,<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">so=
 the server has to maintain a configured mapping for each client?<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">This seems like a lot of overhead and NV-storage =
requirements<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">on=
 the server.<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Changing the schema identifiers based on which client is<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">sending the request seems like a complicated design change<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">from RESTCONF, NETCONF, or SNMP, where there is only<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">1 =
schema tree which is not dependent on the client identity.<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Andy<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><blockquote =
style=3D"border-style:none none none =
solid;border-left-color:rgb(204,204,204);border-left-width:1pt;padding:0in=
 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt" class=3D""><div class=3D""><div =
class=3D""><div class=3D""><table border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0" width=3D"717" =
style=3D"width:537.75pt;border-collapse:collapse" class=3D""><tbody =
class=3D""><tr style=3D"height:49.05pt" class=3D""><td width=3D"137" =
style=3D"width:103.1pt;border-style:none solid none =
none;border-right-color:windowtext;border-right-width:1pt;padding:0in =
5.4pt;height:49.05pt" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&lt;image001.jpg&gt;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></td><td width=3D"580" valign=3D"top" =
style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt" class=3D""><div =
style=3D"margin-left:8.1pt" class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><u class=3D""></u><u class=3D""></u></div></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:rgb(5,99,193)" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><u =
class=3D""></u><u class=3D""></u></div></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple" =
class=3D"">www.trilliantinc.com</span></a></span><span class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" =
class=3D"">&nbsp;<span class=3D"">&nbsp;</span></span><u class=3D""></u><u=
 class=3D""></u></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125=
)" class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div =
style=3D"border-style:solid none =
none;border-top-color:rgb(225,225,225);border-top-width:1pt;padding:3pt =
0in 0in" class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D""><b class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">From:</span></b><span class=3D""><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span></span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">Alexander Pelov [mailto:<a =
href=3D"mailto:alexander.pelov@telecom-bretagne.eu" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">alexander.pelov@telecom-bretagne.eu</span></a>]<span =
class=3D"">&nbsp;</span><br class=3D""><b class=3D"">Sent:</b><span =
class=3D"">&nbsp;</span>5 juin 2015 12:03<br class=3D""><b =
class=3D"">To:</b><span class=3D"">&nbsp;</span>Michel Veillette<br =
class=3D""><b class=3D"">Cc:</b><span class=3D"">&nbsp;</span>Andy =
Bierman;<span class=3D"">&nbsp;</span><a href=3D"mailto:6tisch@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">6tisch@ietf.org</span></a>;<span class=3D"">&nbsp;</span><a =
href=3D"mailto:core@ietf.org" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">core@ietf.org</span></a><br class=3D""><b =
class=3D"">Subject:</b><span class=3D"">&nbsp;</span>Re: Reserve space =
for aliases</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Hi=
 Michel,<u class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">Le=
 5 juin 2015 =C3=A0 17:17, Michel Veillette &lt;<a =
href=3D"mailto:Michel.Veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:purple" =
class=3D"">Michel.Veillette@trilliantinc.com</span></a>&gt; a =C3=A9crit =
:<u class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div><div class=3D""><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">Hi Alexander</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">In your presentation at 6TiSCH, you propose the following =
data node ID structure.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" style=3D"border-collapse:collapse" =
class=3D""><tbody class=3D""><tr class=3D""><td width=3D"623" =
valign=3D"top" style=3D"width:467.5pt;border:1pt solid =
windowtext;padding:0in 5.4pt" class=3D""><div style=3D"margin-left:0.5in" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Arial,sans-serif" =
class=3D"">=E2=80=A2</span><span style=3D"font-size:7pt" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">32 =
bits YANG ID</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div style=3D"margin-left:1in" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Arial,sans-serif" =
class=3D"">=E2=80=93</span><span style=3D"font-size:7pt" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">20 =
bits for module ID (assigned by IETF)</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div style=3D"margin-left:1in" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Arial,sans-serif" =
class=3D"">=E2=80=93</span><span style=3D"font-size:7pt" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span =
style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">10 =
bits for data node ID (generated deterministically)</span><u =
class=3D""></u><u =
class=3D""></u></div></div></div></div></td></tr></tbody></table><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">Based on this structure, we can reserve&nbsp;module ID zero =
for aliases.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">I =
was just summarizing what was discussed on the discussion in CoMI. =
Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be =
consistent with the YANG hash and I don=E2=80=99t mind keeping it 30 =
bits.<u class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin:0in 0in 12pt;font-size:12pt;font-family:'Times New =
Roman',serif">&nbsp;<u class=3D""></u><u class=3D""></u></p><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">If we want to minimize both the network an node resources =
require by this alias mechanism, we can map an entire module to this =
space.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">This can be implemented by a single integer resource (e.g. =
leaf alliassedModule { type uint32 } )</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">This approach require 4 bytes per CoMI server =
accessed.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">It=
 is possible to map an entire module to the alias space and this is up =
to the operator. However, if you load two modules which redefine the =
same alias you will loose the benefit from it. Maybe it would be =
interesting to be able to specify that you want the aliases from THIS =
specific module to be used.<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" class=3D"">If=
 the /mg/0 alias is reserved for managing the aliases, this could be =
simply saying:<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">POST /mg/0<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">{<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;"source_uri" : "/mg/BAA"<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">}<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">where /mg/BAA is the YANG id of the module (20 bits module ID =
+ 10 bits set to 0). This way, the server will know: OK, get the alias =
mapping from the YANG scheme of module with ID =3D B (as defined by the =
IETF).&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Or, you can dynamically configure the mapping:<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div class=3D""><div =
style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New =
Roman',serif" class=3D"">POST /mg/0<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">{<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp; YANG_id : alias,<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp; YANG_id : alias,<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp; YANG_id : alias<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">}<u class=3D""></u><u =
class=3D""></u></div></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin:0in 0in 12pt;font-size:12pt;font-family:'Times New =
Roman',serif">&nbsp;<u class=3D""></u><u class=3D""></u></p><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">If we want a more complex but more flexible aliases =
mechanism, your proposed map of (allias, YANG ID) seem the =
solution.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">However, we have to consider that this structure can be as =
large as&nbsp;<u class=3D"">1250 bytes per CoMI server =
accessed</u>&nbsp;if limited to 256 aliases.</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></div></blockquote><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">This is assuming you need a separate mapping for each server. =
I would suppose that in a network you=E2=80=99ll have a single alias =
mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the =
management of your devices (servers). So, typically you=E2=80=99d map =
all 6tisch devices with aliases 1-10 (channel, slot, etc.) and use that =
on them, and on all other you=E2=80=99d access the full ID.&nbsp;<u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">&nbsp;<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Best,<u class=3D""></u><u =
class=3D""></u></div></div></div></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D"">Alexander<u class=3D""></u><u =
class=3D""></u></div></div></div></div><p class=3D"MsoNormal" =
style=3D"margin:0in 0in 12pt;font-size:12pt;font-family:'Times New =
Roman',serif">&nbsp;<u class=3D""></u><u class=3D""></u></p><blockquote =
style=3D"margin-top:5pt;margin-bottom:5pt" class=3D""><div class=3D""><div=
 class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&nbsp;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><table border=3D"0" =
cellspacing=3D"0" cellpadding=3D"0" width=3D"717" =
style=3D"width:537.75pt;border-collapse:collapse" class=3D""><tbody =
class=3D""><tr style=3D"height:49.05pt" class=3D""><td width=3D"137" =
style=3D"width:103.1pt;border-style:none solid none =
none;border-right-color:windowtext;border-right-width:1pt;padding:0in =
5.4pt;height:49.05pt" class=3D""><div class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D"">&lt;image001.jpg&gt;</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div></td><td width=3D"580" =
valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;height:49.05pt" =
class=3D""><div style=3D"margin-left:8.1pt" class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:9pt;font-family:Arial,sans-serif" =
class=3D"">Michel Veillette<br class=3D"">System Architecture =
Director</span><u class=3D""></u><u =
class=3D""></u></div></div></div></div><div style=3D"margin-left:8.1pt" =
class=3D""><div class=3D""><div class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:9pt;font-family:Arial,sans-serif" =
class=3D"">Trilliant Inc.<br class=3D"">Tel: 450-375-0556 ext. 237<br =
class=3D""><a href=3D"mailto:michel.veillette@trilliantinc.com" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span style=3D"color:rgb(5,99,193)" =
class=3D"">michel.veillette@trilliantinc.com</span></a></span><u =
class=3D""></u><u class=3D""></u></div></div></div></div><div =
style=3D"margin-left:8.1pt" class=3D""><div class=3D""><div =
class=3D""><div style=3D"margin:0in 0in =
0.0001pt;font-size:12pt;font-family:'Times New Roman',serif" =
class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif" =
class=3D""><a href=3D"http://www.trilliantinc.com/" =
style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D""><span =
style=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple" =
class=3D"">www.trilliantinc.com</span></a></span></div></div></div></div><=
/td></tr></tbody></table></div></blockquote></div></div></div></blockquote=
></div></div></div></div></div></blockquote></div></div></blockquote></div=
></div></div></blockquote></div><br =
class=3D""></div></blockquote></div><br class=3D""></div>
</div></blockquote></div><br class=3D""></div></blockquote></div><br =
class=3D""></div></div></div>
</div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_42B2A8D5-0F4E-44E7-BADB-4D4593C64BFA--


From nobody Fri Jun 12 16:37:50 2015
Return-Path: <pthubert@cisco.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 334421A887A; Fri, 12 Jun 2015 16:37:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level: 
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8fS5mK6YFnWB; Fri, 12 Jun 2015 16:37:37 -0700 (PDT)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2AF211A8859; Fri, 12 Jun 2015 16:37:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=128356; q=dns/txt; s=iport; t=1434152257; x=1435361857; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=Z1y6GeBMxqd09sux5pzIXsPXFKkBTNEjmBPKomg7Ugw=; b=LdsBLzqLG8q635EM60jBDS/Dw1TR3geqJNTPg/ThEUNreEL50rZuqIX0 ES3f4z26NfYqB/uovY67tU0vRShGiWIG5KsEtquoWyypEb6SLG8S6mJid P2FSGSAZxSz+MLetHkfXK/CUSUwo5m1mx4PM68ZREjgLZ6i74O/ec8V4A Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0BCBABAbHtV/4gNJK1TBgECgkVLVF+9EGYJgWGFegKBPzgUAQEBAQEBAYEKhCIBAQEEGgEuIwoDEAIBCAcKAQMBARcKAQYHMhQDBggCBA4FGwSIEA3XHwEBAQEBAQEBAQEBAQEBAQEBAQEBAReKQYEChCoDDgIeGwwBAwYBBgMIAQsBgnmBFgWLeYULglKESoZygTJAg0GDBIdWhCCDWyaCCAIdgVJvAYECAQgXgSQBAQE
X-IronPort-AV: E=Sophos;i="5.13,605,1427760000"; d="scan'208,217";a="3112374"
Received: from alln-core-3.cisco.com ([173.36.13.136]) by rcdn-iport-6.cisco.com with ESMTP; 12 Jun 2015 23:37:35 +0000
Received: from xhc-aln-x06.cisco.com (xhc-aln-x06.cisco.com [173.36.12.80]) by alln-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id t5CNbZWI021348 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 12 Jun 2015 23:37:35 GMT
Received: from xmb-rcd-x01.cisco.com ([169.254.1.61]) by xhc-aln-x06.cisco.com ([173.36.12.80]) with mapi id 14.03.0195.001; Fri, 12 Jun 2015 18:37:34 -0500
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AQHQpUWZImdraRcLEk2RLo1BOAuHsJ2psZ6AgAAI/4CAAAQkAIAAB82AgAAJYYCAAAfbAP//ry7n
Date: Fri, 12 Jun 2015 23:37:33 +0000
Message-ID: <31005771-4D65-4028-BA61-ECAFD9E31FF4@cisco.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <EFC58735-006A-4EAA-88B2-CDDA2D252C00@telecom-bretagne.eu> <CO2PR0601MB792C118ECA44AD8FD152307FEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <43EF5C59-CF72-440B-8BC0-931D8F6EB40A@telecom-bretagne.eu> <CABCOCHS2z-ps51JHp9cK7+oobHoPXAa-vu+hKMzMF8f31OboNw@mail.gmail.com> <93162CDB-3DC8-442E-9427-68DF7EB0CD31@telecom-bretagne.eu> <CABCOCHTHBdfA1snNB7BepbxwqDj1TvsxJ23yMw9SJevStKGSVw@mail.gmail.com>, <E1A55DE0-A501-4BA6-AE79-0FFCA02BBD3C@telecom-bretagne.eu>
In-Reply-To: <E1A55DE0-A501-4BA6-AE79-0FFCA02BBD3C@telecom-bretagne.eu>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-Type: multipart/alternative; boundary="_000_310057714D654028BA61ECAFD9E31FF4ciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/OZ1kPDRN3bFnVqtw_73bvfg3rwA>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2015 23:37:47 -0000

--_000_310057714D654028BA61ECAFD9E31FF4ciscocom_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

I agree

If an app keeps reading the same data from a device literally for years, co=
mpression makes sense...

Pascal

Le 12 juin 2015 =E0 19:26, Alexander Pelov <alexander.pelov@telecom-bretagn=
e.eu<mailto:alexander.pelov@telecom-bretagne.eu>> a =E9crit :

Hi Andy,

Le 13 juin 2015 =E0 00:58, Andy Bierman <andy@yumaworks.com<mailto:andy@yum=
aworks.com>> a =E9crit :

Hi,

I am not convinced that aliases are worth all the effort
because most (95%?) of the IDs in the payload will only
need 10 bits.

Yes, I must say that in the discussions in the past couple of days really c=
over many of the cases I was thinking about, so I would tend to agree with =
you that in most cases aliases can be an overkill.

However, you always need to provide at least one long id, which could be av=
oided, and could be very beneficial for some networks.

So, to sum up, if the proposal of YANG ID structure (20 bits module ID + 10=
 bits data node ID), long form/short form, and =91select=92 option with CBO=
R encoding is accepted, then 95% of the work is done (and I would be happy =
with that).

I feel that adding a short statement - module ID =3D 0 is reserved for alia=
ses - and address this in another draft would be the simplest solution (we =
have to figure out what to do with that module ID =3D 0 anyways). I=92ve al=
ready described a pretty straightforward way of managing aliases, the simpl=
est being - static allocation by the server (e.g. upon provisioning / firmw=
are update / etc.).

Alexander



Andy




On Fri, Jun 12, 2015 at 3:25 PM, Alexander Pelov <alexander.pelov@telecom-b=
retagne.eu<mailto:alexander.pelov@telecom-bretagne.eu>> wrote:
Hi Andy,

Not sure if you were referring to the example/explanation I tried to provid=
e (maybe Michel had something else in mind), but here I go.

Le 12 juin 2015 =E0 23:57, Andy Bierman <andy@yumaworks.com<mailto:andy@yum=
aworks.com>> a =E9crit :

Hi,

Here is the "JSON for YANG" draft:
https://www.ietf.org/id/draft-ietf-netmod-yang-json-04.txt

The long form (module-name:local-name) is only used
at the top of a sub-tree and where the module namespace changes
(due to an augment from another module).

The data is hierarchical and the parser is required to maintain
the current module scope. It should be possible to omit the module
identifier is nested data, except for nodes that start a new
module scope.

Ok, that sounds perfectly in line with the module ID/data node ID and the l=
ong form/short form we=92ve been discussing with Michel.


Is this what you have in mind?
For YANG Hash (that has no module identifier)
every nested node ID needs the full 30 bits,
but this is not required for managed IDs.

If you have your YANG hash ID behave in a structured way (e.g. stop being a=
 hash..), then you don=92t need to send the full 30 bits.

If I take the following example (which is a strange case just for the sake =
of it):
REQ: GET example.com/mg?select<http://example.com/mg?select>( [5, 2049, 2, =
3, 4, 4097, 2, 3, 4, 2053, 2055, 6] )

That would resolve to requesting the following YANG IDs:
long form =3D module ID / short form
5 =3D 0 / 5
2049 =3D 1 / 1
2050 =3D 1 / 2
2051 =3D 1 / 3
2052 =3D 1 / 4
4097 =3D 2 / 1
4098 =3D 2 / 2
4099 =3D 2 / 3
4099 =3D 2 / 4
2053 =3D 1 / 5
2055 =3D 1 / 7
2054 =3D 1 / 6

Of course, that is not (directly) related to the way the YANG parser proces=
ses the YANG modules. It is a way to parse the select option, and is straig=
htforward. Consecutively, element by element apply something of the form:

if (full_id & 0x3FFFFC00) > 0) {
   current_module_ID =3D full_id >> 10;
}
else {
  full_id =3D (current_module_ID << 10) & full_id;
}

Of course, that could be optimized, but for the sake of clarity we can leav=
e it like this for the moment.

Best,
Alexander




Andy





On Fri, Jun 12, 2015 at 2:42 PM, Alexander Pelov <alexander.pelov@telecom-b=
retagne.eu<mailto:alexander.pelov@telecom-bretagne.eu>> wrote:
Michel,


Le 12 juin 2015 =E0 23:10, Michel Veillette <Michel.Veillette@trilliantinc.=
com<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :

I Alexander

I don=92t see any issues with your proposal of using module ID 0 as aliases=
.
The only constrain is that aliases need to be at the start of the select fo=
r a GET and at the start of the payload for a PUT.

Yes, I suppose you should always start with aliases, but that doesn=92t sou=
nd like a strong constraint to me, so it=92s seems like the perfect solutio=
n.


The last things we need to sort out, is the instance selector (keys) in the=
 context of a select query parameter containing multiple data nodes.

Let assume the following:
=95         A CoMI client need to select 3 data nodes (Data node ID 2049, 2=
 and 3)
=95         For the first data node, three values need to be provided as ke=
ys (e.g. 1, "ipv4", "10.0.0.51 "), see draft-vanderstok-core-comi-06 page 2=
2.
=95         For the third data node, one integer value need to be provided =
as keys (e.g. 22).

If we include these keys in the select query parameter encoded in CBOR, the=
 result might look as follow:

REQ: GET example.com/mg?select<http://example.com/mg?select>( [[20491,"ipv4=
","10.0.0.51",2], 2, [3,22]] )

Just a small typo (missed a coma after 2049, right?):
REQ: GET example.com/mg?select<http://example.com/mg?select>( [[2049, 1,"ip=
v4","10.0.0.51",2], 2, [3,22]] )

And yes, seems quite straightforward and reasonable to me. If I understand =
correctly, the format you use is the following:
The select parameter accepts a single integer (long form data ID) or an arr=
ay. In the latter case, each element of the array may be either an integer =
(e.g. data ID), or an array in the form [data ID, key1, key2, =85, keyN]. T=
he data ID may be absolute (e.g. long form), or relative to the module of t=
he previous data ID.

This seems quite expressive, simple and compact. I wonder if we=92re missin=
g something, as it really does seem to have quite a lot of nice characteris=
tics.

Best,
Alexander



In the current draft, the CoMI server need to support two encoding for each=
 selector, CBOR encoding in the payload and text in the keys query paramete=
r.
With this proposal, both use cases are encoded using CBOR.

What do you things?

<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
Sent: 12 juin 2015 15:26
To: Michel Veillette
Cc: Pascal Thubert (pthubert); Andy Bierman; 6tisch@ietf.org<mailto:6tisch@=
ietf.org>; core@ietf.org<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases

Hi Michel,

You=92re right. As I mentioned in my previous mails, I=92m pretty happy wit=
h the compression of IDs we=92ve achieved until now, so aliases are not as =
a pressing issue.

The thing is, if they can be implemented at (almost) zero cost, then some o=
f the use-cases become quite interesting.

You actually provide a very good case with the select option. I=92ve not th=
ought if it will present some other difficulties, but I actually think it f=
acilitates the use of aliases (and I mention this only because it will help=
 me also understand the semantics of your proposal of the select option).

If I take the example you provide:
REQ: GET example.com/mg?select<http://example.com/mg?select>( [2049,2,3,4] =
)

The parameters 2,3,4 are actually relative to the module ID of the first on=
e. So, if I try to generalize this (please correct me if I=92m wrong), I wo=
uld imagine something like:
REQ: GET example.com/mg?select<http://example.com/mg?select>( [2049,2,3,4, =
4097,2,3,4] )
To resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, and m=
odule ID=3D2 and relative node IDs =3D1,2,3 and 4.

This means, that specifying a GET example.com/mg?select<http://example.com/=
mg?select>(1) should resolve to module ID=3D0 and relative node ID=3D1. Thi=
s requires absolutely no additional processing from the node.

So, this leaves us back to the initial idea of the aliases. All short node =
IDs are relative to a module ID (so that the long form ID can be interprete=
d). Module ID=3D0 is reserved, and can be used for aliasing if the device w=
ishes to support it.

Does this break some of the things along the way?

Best,
Alex



Le 12 juin 2015 =E0 18:57, Michel Veillette <Michel.Veillette@trilliantinc.=
com<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :

Hi Alexander, hi Pascal

I want to emphases the following points

=95         The use of the select query parameter encoded in CBOR support o=
f 63 modules with optimized message size instead of only 3 for the base64 U=
RI.
If the 6TiSCH module ID is allocated within these 63 IDs, there will be no =
message size optimization provided by the aliases mechanism.
This make the introduction of aliases less urgent.

=95         The message size of the select query parameter encoded in CBOR =
should be equal or smaller compared to the base64 URI.
However, the select query parameter encoded in CBOR support a wider range o=
f values without size penalty (16 bits instead of 12, 32 bits instead of 30=
)
Furthermore, CoMI devices won=92t have to support two type of encoding depe=
nding if IDs are part of the command vs. payload.

For example:

Assuming module ID 2
Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)
Assuming =93,=94 separator to select multiple data nodes

Base64 approach:
REQ: GET example.com/mg/gB<http://example.com/mg/gB>         (3 bytes; 1 by=
te for the =93/=94, 2 bytes for =93gB=94)

CBOR approach:
REQ: GET example.com/mg?select<http://example.com/mg?select>(2049)         =
(4 bytes; one byte for the CoAP option, 3 for 2049 encoded using CBOR)

Base64 approach:
REQ: GET example.com/mg/gB,C,D,E<http://example.com/mg/gB,C,D,E>         (9=
 bytes; 1 byte for the =93/=94, 8 bytes for =93gB,C,D,E=94)

CBOR approach:
REQ: GET example.com/mg?select<http://example.com/mg?select>( [2049,2,3,4] =
)      (8 bytes; 1 byte for the CoAP option, 1 for the CBOR array, 3+1+1+1 =
bytes for the IDs)


<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
Sent: 11 juin 2015 17:06
To: Pascal Thubert (pthubert)
Cc: Andy Bierman; Michel Veillette; 6tisch@ietf.org<mailto:6tisch@ietf.org>=
; core@ietf.org<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases

Hi Pascal,

Le 10 juin 2015 =E0 15:25, Pascal Thubert (pthubert) <pthubert@cisco.com<ma=
ilto:pthubert@cisco.com>> a =E9crit :

Dear all:

This looks like the problem of local namespaces,  which is the reason why M=
PLS switches labels.
The user may access a limited set of resources from a number of servers, an=
d servers are read by many users.
You cannot ensure that you have a single alias space that satisfies them al=
l.

Great analogy! And yes, sadly you cannot satisfy them all, at least not wit=
h all devices.




So ,what if the user had its own set of aliases and the server also had its=
 own set of aliases?

The aliases could be mapped in a table like a uSAP and a pSAP are mapped ac=
ross layers. Broadly:
- First time a user requests a resource in a server, it comes with a tuple =
(userid, useralias, fullname)
- The server responds with (serverid, serveralias, userid, user alias).

Actually, I think that this could be worked out in CoMI also. Instead of fu=
llname you could provide the YANG id (module ID + data node ID) and do the =
mapping. User alias would be the special aliased YANG id. User ID, however,=
 could be a little bit more tricky - how do we ensure that it is consistent=
? Use the IP address of the client could be doable, but we=92ll have to inc=
lude the UDP port just in case someone runs two clients on the same machine=
.





After that,  if the server is a constrained device then the user talks to t=
he server with (serverid, serveralias) and the user maintains a switching t=
able for the resource it uses on various servers.
If the user is the constrained device and the server is not, the user could=
 talk with (userid, useralias) and the server maintains a switching table.

For large servers, the server may allocate aliases dynamically based on wha=
t it is being asked. We=92d then need to talk about alias update or revocat=
ion, probably in terms of session and lifetime.

Does that look usable?

You are pointing out an interesting question. I would think (but maybe I=92=
m mistaken), that the client should have the leading role in figuring out w=
hat=92s happening. The idea is the following:

The client checks if the server supports aliasing, with the possible option=
s:
S1) no aliasing
S2) static/server-defined aliasing
S3) dynamic/single alias mapping
  S3.1) mapping already defined
  S3.2) no mapping defined
S4) dynamic/per client alias mapping

Then, the client can take action, depending on its own capabilities and the=
 response of the server. E.g. a unconstrained client could obtain the alias=
 mapping if it is static (or if there is a single alias mapping in place) a=
nd cache it locally. So, there will be the following correspondence :

Given:
C1) constrained client
C2) unconstrained client

We have:
C1 + S1) no aliasing, nothing to do
C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise, i=
gnore
C1 + S3.2) and C1 + S4) define alias mapping

C2 + S1) no aliasing, nothing to do
C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise, l=
earn it
C2 + S3.2) and C2 + S4) define alias mapping

I would say that the analogy you made with MPLS corresponds quite a lot to =
the C2+S4 case. Personally, I would be most interested into having one clie=
nt configure one alias mapping to all servers in the network (e.g. the mana=
ging entity), which will profit most from saving several bytes on each mess=
age exchange. Everyone else could use the standard IDs, which we=92ve alrea=
dy managed to shrink significantly.

Indeed, with structured module ID + data node ID (20 bits + 10 bits), YANG =
URI compression, and long form/short form, we=92ll have quite a lot of gain=
. Reserving module ID =3D 1 for aliases and maybe writing a short draft on =
how the aliasing is implemented seems feasible, where we can cover the exac=
t mechanism of alias definition, and client/server interaction.

Alexander


Pascal

From: 6tisch [mailto:6tisch-bounces@ietf.org] On Behalf Of Andy Bierman
Sent: vendredi 5 juin 2015 20:55
To: Michel Veillette
Cc: 6tisch@ietf.org<mailto:6tisch@ietf.org>; Alexander Pelov; core@ietf.org=
<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases



On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <Michel.Veillette@trillia=
ntinc.com<mailto:Michel.Veillette@trilliantinc.com>> wrote:
Hi Alexander

I have some concerns about allowing CoMI client(s) the control of the list =
of aliases.
This approach work fine for the first CoMI application (e.g. 6TiSCH) but wh=
at do we do with the subsequent CoMI application?

One possible solution is that each CoMI client send a list of (alias, data =
node ID) to the CoMI server. In this case, the CoMI client might receive an=
 error if one or multiple of these aliases are already reserved.

A second possible solution is that each CoMI client send a list of (data no=
de ID) and get a list of (alias, data node ID) from the CoMI server. In thi=
s case, CoMI clients will have to deal with a mix population of aliases.

The proposed solution need to scale to a multi-vendors, multiple applicatio=
ns environment.
With this is mind, do you have any alternative solutions to propose?



Does this approach allow each client to have a different set of aliases,
so the server has to maintain a configured mapping for each client?
This seems like a lot of overhead and NV-storage requirements
on the server.

Changing the schema identifiers based on which client is
sending the request seems like a complicated design change
from RESTCONF, NETCONF, or SNMP, where there is only
1 schema tree which is not dependent on the client identity.


Andy




<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu<mailto:al=
exander.pelov@telecom-bretagne.eu>]
Sent: 5 juin 2015 12:03
To: Michel Veillette
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: Re: Reserve space for aliases

Hi Michel,


Le 5 juin 2015 =E0 17:17, Michel Veillette <Michel.Veillette@trilliantinc.c=
om<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :

Hi Alexander

In your presentation at 6TiSCH, you propose the following data node ID stru=
cture.

=95       32 bits YANG ID
=96      20 bits for module ID (assigned by IETF)
=96      10 bits for data node ID (generated deterministically)


Based on this structure, we can reserve module ID zero for aliases.


I was just summarizing what was discussed on the discussion in CoMI. Actual=
ly, it is 30 bits YANG ID, but that=92s for purposes to be consistent with =
the YANG hash and I don=92t mind keeping it 30 bits.


If we want to minimize both the network an node resources require by this a=
lias mechanism, we can map an entire module to this space.
This can be implemented by a single integer resource (e.g. leaf alliassedMo=
dule { type uint32 } )
This approach require 4 bytes per CoMI server accessed.


It is possible to map an entire module to the alias space and this is up to=
 the operator. However, if you load two modules which redefine the same ali=
as you will loose the benefit from it. Maybe it would be interesting to be =
able to specify that you want the aliases from THIS specific module to be u=
sed.

If the /mg/0 alias is reserved for managing the aliases, this could be simp=
ly saying:
POST /mg/0
{
 "source_uri" : "/mg/BAA"
}

where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits set=
 to 0). This way, the server will know: OK, get the alias mapping from the =
YANG scheme of module with ID =3D B (as defined by the IETF).

Or, you can dynamically configure the mapping:
POST /mg/0
{
  YANG_id : alias,
  YANG_id : alias,
  YANG_id : alias
}

If we want a more complex but more flexible aliases mechanism, your propose=
d map of (allias, YANG ID) seem the solution.
However, we have to consider that this structure can be as large as 1250 by=
tes per CoMI server accessed if limited to 256 aliases.

This is assuming you need a separate mapping for each server. I would suppo=
se that in a network you=92ll have a single alias mapping (maybe two?) - af=
ter all, you=92re trying to optimize the management of your devices (server=
s). So, typically you=92d map all 6tisch devices with aliases 1-10 (channel=
, slot, etc.) and use that on them, and on all other you=92d access the ful=
l ID.

Best,
Alexander


<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>







--_000_310057714D654028BA61ECAFD9E31FF4ciscocom_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
</head>
<body dir=3D"auto">
<div>I agree</div>
<div><br>
</div>
<div>If an app keeps reading the same data from a device literally for year=
s, compression makes sense...<br>
<br>
Pascal</div>
<div><br>
Le 12 juin 2015 =E0 19:26, Alexander Pelov &lt;<a href=3D"mailto:alexander.=
pelov@telecom-bretagne.eu">alexander.pelov@telecom-bretagne.eu</a>&gt; a =
=E9crit&nbsp;:<br>
<br>
</div>
<blockquote type=3D"cite">
<div>
<div class=3D"">Hi Andy,</div>
<br class=3D"">
<div>
<blockquote type=3D"cite" class=3D"">
<div class=3D"">Le 13 juin 2015 =E0 00:58, Andy Bierman &lt;<a href=3D"mail=
to:andy@yumaworks.com" class=3D"">andy@yumaworks.com</a>&gt; a =E9crit :</d=
iv>
<br class=3D"Apple-interchange-newline">
<div class=3D"">
<div dir=3D"ltr" class=3D"">Hi,
<div class=3D""><br class=3D"">
</div>
<div class=3D"">I am not convinced that aliases are worth all the effort</d=
iv>
<div class=3D"">because most (95%?) of the IDs in the payload will only</di=
v>
<div class=3D"">need 10 bits.</div>
</div>
</div>
</blockquote>
<div><br class=3D"">
</div>
<div>Yes, I must say that in the discussions in the past couple of days rea=
lly cover many of the cases I was thinking about, so I would tend to agree =
with you that in most cases aliases can be an overkill.&nbsp;</div>
<div><br class=3D"">
</div>
<div>However, you always need to provide at least one long id, which could =
be avoided, and could be very beneficial for some networks.&nbsp;</div>
<div><br class=3D"">
</div>
<div>So, to sum up, if the proposal of YANG ID structure (20 bits module ID=
 &#43; 10 bits data node ID), long form/short form, and =91select=92 option=
 with CBOR encoding is accepted, then 95% of the work is done (and I would =
be happy with that).</div>
<div><br class=3D"">
</div>
<div>I feel that adding a short statement - module ID =3D 0 is reserved for=
 aliases - and address this in another draft would be the simplest solution=
 (we have to figure out what to do with that module ID =3D 0 anyways). I=92=
ve already described a pretty straightforward
 way of managing aliases, the simplest being - static allocation by the ser=
ver (e.g. upon provisioning / firmware update / etc.).&nbsp;</div>
<div><br class=3D"">
</div>
<div>Alexander</div>
<br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">
<div dir=3D"ltr" class=3D"">
<div class=3D""><br class=3D"">
</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Andy</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D""><br class=3D"">
<div class=3D"gmail_extra"><br class=3D"">
<div class=3D"gmail_quote">On Fri, Jun 12, 2015 at 3:25 PM, Alexander Pelov=
 <span dir=3D"ltr" class=3D"">
&lt;<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank=
" class=3D"">alexander.pelov@telecom-bretagne.eu</a>&gt;</span> wrote:<br c=
lass=3D"">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<div style=3D"word-wrap:break-word" class=3D"">
<div class=3D"">Hi Andy,</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Not sure if you were referring to the example/explanation I=
 tried to provide (maybe Michel had something else in mind), but here I go.=
</div>
<br class=3D"">
<div class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">Le 12 juin 2015 =E0 23:57, Andy Bierman &lt;<a href=3D"mail=
to:andy@yumaworks.com" target=3D"_blank" class=3D"">andy@yumaworks.com</a>&=
gt; a =E9crit :</div>
<br class=3D"">
<div class=3D"">
<div dir=3D"ltr" class=3D"">Hi,
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Here is the &quot;JSON for YANG&quot; draft:</div>
<div class=3D""><a href=3D"https://www.ietf.org/id/draft-ietf-netmod-yang-j=
son-04.txt" target=3D"_blank" class=3D"">https://www.ietf.org/id/draft-ietf=
-netmod-yang-json-04.txt</a><br class=3D"">
</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">The long form (module-name:local-name) is only used</div>
<div class=3D"">at the top of a sub-tree and where the module namespace cha=
nges</div>
<div class=3D"">(due to an augment from another module).</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">The data is hierarchical and the parser is required to main=
tain</div>
<div class=3D"">the current module scope. It should be possible to omit the=
 module</div>
<div class=3D"">identifier is nested data, except for nodes that start a ne=
w</div>
<div class=3D"">module scope.</div>
</div>
</div>
</blockquote>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Ok, that sounds perfectly in line with the module ID/data n=
ode ID and the long form/short form we=92ve been discussing with Michel.</d=
iv>
<br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">
<div dir=3D"ltr" class=3D"">
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Is this what you have in mind?</div>
<div class=3D"">For YANG Hash (that has no module identifier)</div>
<div class=3D"">every nested node ID needs the full 30 bits,</div>
<div class=3D"">but this is not required for managed IDs.</div>
</div>
</div>
</blockquote>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">If you have your YANG hash ID behave in a structured way (e=
.g. stop being a hash..), then you don=92t need to send the full 30 bits.&n=
bsp;</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">If I take the following example (which is a strange case ju=
st for the sake of it):</div>
<div class=3D""><span style=3D"color:rgb(31,73,125);font-family:Calibri,san=
s-serif;font-size:11pt" class=3D"">REQ: GET&nbsp;</span><a href=3D"http://e=
xample.com/mg?select" style=3D"font-family:Calibri,sans-serif;font-size:11p=
t;color:purple" target=3D"_blank" class=3D""><span class=3D"">example.com/m=
g?select</span></a><span style=3D"color:rgb(31,73,125);font-family:Calibri,=
sans-serif;font-size:11pt" class=3D"">(
 [5, 2049, 2, 3, 4, 4097, 2, 3, 4, 2053, 2055, 6] )</span></div>
<div class=3D""><span style=3D"color:rgb(31,73,125);font-family:Calibri,san=
s-serif;font-size:11pt" class=3D""><br class=3D"">
</span></div>
<div class=3D"">That would resolve to requesting the following YANG IDs:</d=
iv>
<div class=3D"">long form =3D module ID / short form</div>
<div class=3D"">5 =3D 0 / 5</div>
<div class=3D"">2049 =3D 1 / 1</div>
<div class=3D"">2050 =3D 1 / 2</div>
<div class=3D"">2051 =3D 1 / 3</div>
<div class=3D"">2052 =3D 1 / 4</div>
<div class=3D"">4097 =3D 2 / 1</div>
<div class=3D"">4098 =3D 2 / 2</div>
<div class=3D"">4099 =3D 2 / 3</div>
<div class=3D"">4099 =3D 2 / 4</div>
<div class=3D"">2053 =3D 1 / 5</div>
<div class=3D"">2055 =3D 1 / 7</div>
<div class=3D"">2054 =3D 1 / 6</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Of course, that is not (directly) related to the way the YA=
NG parser processes the YANG modules. It is a way to parse the select optio=
n, and is straightforward. Consecutively, element by element apply somethin=
g of the form:</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">if (full_id &amp;&nbsp;0x3FFFFC00) &gt; 0) {</div>
<div class=3D"">&nbsp; &nbsp;current_module_ID =3D full_id &gt;&gt; 10;</di=
v>
<div class=3D"">}</div>
<div class=3D"">else {</div>
<div class=3D"">&nbsp; full_id =3D (current_module_ID &lt;&lt; 10) &amp; fu=
ll_id;</div>
<div class=3D"">}</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Of course, that could be optimized, but for the sake of cla=
rity we can leave it like this for the moment.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Best,</div>
<div class=3D"">Alexander</div>
<div class=3D""><br class=3D"">
</div>
<br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">
<div dir=3D"ltr" class=3D"">
<div class=3D""><br class=3D"">
</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Andy</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D""><br class=3D"">
</div>
</div>
<div class=3D"gmail_extra"><br class=3D"">
<div class=3D"gmail_quote">On Fri, Jun 12, 2015 at 2:42 PM, Alexander Pelov=
 <span dir=3D"ltr" class=3D"">
&lt;<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" target=3D"_blank=
" class=3D"">alexander.pelov@telecom-bretagne.eu</a>&gt;</span> wrote:<br c=
lass=3D"">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<div style=3D"word-wrap:break-word" class=3D"">
<div class=3D"">Michel,</div>
<div class=3D""><br class=3D"">
</div>
<br class=3D"">
<div class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">Le 12 juin 2015 =E0 23:10, Michel Veillette &lt;<a href=3D"=
mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank" class=3D"">Mich=
el.Veillette@trilliantinc.com</a>&gt; a =E9crit :</div>
<br class=3D"">
<div class=3D"">
<div style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-v=
ariant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;t=
ext-align:start;text-indent:0px;text-transform:none;white-space:normal;word=
-spacing:0px" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">I Alexander<u class=3D""></u><u class=3D""></u></span></=
div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">I don=92t see any issues with your proposal of using mod=
ule ID 0 as aliases.<u class=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">The only constrain is that aliases need to be at the sta=
rt of the select for a GET and at the start of the payload for a PUT.</span=
></div>
</div>
</div>
</blockquote>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Yes, I suppose you should always start with aliases, but th=
at doesn=92t sound like a strong constraint to me, so it=92s seems like the=
 perfect solution.</div>
<br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">
<div style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-v=
ariant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;t=
ext-align:start;text-indent:0px;text-transform:none;white-space:normal;word=
-spacing:0px" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D""><u class=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">The last things we need to sort out, is the instance sel=
ector (keys) in the context of a select query parameter containing multiple=
 data nodes.<u class=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Let assume the following:<u class=3D""></u><u class=3D""=
></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:'Tim=
es New Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" clas=
s=3D""><span class=3D"">=B7<span style=3D"font-style:normal;font-variant:no=
rmal;font-weight:normal;font-size:7pt;line-height:normal;font-family:'Times=
 New Roman'" class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<sp=
an class=3D"">&nbsp;</span></span></span></span><span style=3D"font-size:11=
pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)" class=3D"">A
 CoMI client need to select 3 data nodes (Data node ID 2049, 2 and 3)<u cla=
ss=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:'Tim=
es New Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" clas=
s=3D""><span class=3D"">=B7<span style=3D"font-style:normal;font-variant:no=
rmal;font-weight:normal;font-size:7pt;line-height:normal;font-family:'Times=
 New Roman'" class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<sp=
an class=3D"">&nbsp;</span></span></span></span><span style=3D"font-size:11=
pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)" class=3D"">For
 the first data node, three values need to be provided as keys (e.g. 1,</sp=
an><span class=3D"">&nbsp;</span><span style=3D"font-size:11pt;font-family:=
Calibri,sans-serif;color:rgb(31,73,125)" class=3D"">&quot;ipv4&quot;,</span=
><span class=3D"">&nbsp;</span><span style=3D"font-size:11pt;font-family:Ca=
libri,sans-serif;color:rgb(31,73,125)" class=3D"">&quot;10.0.0.51</span><sp=
an class=3D"">&nbsp;</span><span style=3D"font-size:11pt;font-family:Calibr=
i,sans-serif;color:rgb(31,73,125)" class=3D"">&quot;),
 see draft-vanderstok-core-comi-06 page 22.<u class=3D""></u><u class=3D"">=
</u></span></div>
<div style=3D"margin:0in 0in 0.0001pt 0.5in;font-size:12pt;font-family:'Tim=
es New Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" clas=
s=3D""><span class=3D"">=B7<span style=3D"font-style:normal;font-variant:no=
rmal;font-weight:normal;font-size:7pt;line-height:normal;font-family:'Times=
 New Roman'" class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<sp=
an class=3D"">&nbsp;</span></span></span></span><span style=3D"font-size:11=
pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)" class=3D"">For
 the third data node, one integer value need to be provided as keys (e.g. 2=
2).<u class=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">If we include these keys in the select query parameter e=
ncoded in CBOR, the result might look as follow:<u class=3D""></u><u class=
=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a href=3D"http://=
example.com/mg?select" style=3D"color:purple;text-decoration:underline" tar=
get=3D"_blank" class=3D"">example.com/mg?select</a>(
 [[20491,&quot;ipv4&quot;,&quot;10.0.0.51&quot;,2], 2, [3,22]] )</span></di=
v>
</div>
</div>
</blockquote>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Just a small typo (missed a coma after 2049, right?):</div>
<div class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" s=
tyle=3D"color:purple" target=3D"_blank" class=3D"">example.com/mg?select</a=
>( [[2049, 1,&quot;ipv4&quot;,&quot;10.0.0.51&quot;,2], 2, [3,22]] )</span>=
</div>
</div>
</blockquote>
<br class=3D"">
</div>
<div class=3D"">And yes, seems quite straightforward and reasonable to me. =
If I understand correctly, the format you use is the following:</div>
<div class=3D"">The select parameter accepts a single integer (long form da=
ta ID) or an array. In the latter case, each element of the array may be ei=
ther an integer (e.g. data ID), or an array in the form [data ID, key1, key=
2, =85, keyN]. The data ID may be absolute
 (e.g. long form), or relative to the module of the previous data ID.&nbsp;=
</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">This seems quite expressive, simple and compact. I wonder i=
f we=92re missing something, as it really does seem to have quite a lot of =
nice characteristics.&nbsp;</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Best,</div>
<div class=3D"">Alexander</div>
<div class=3D""><br class=3D"">
</div>
<br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">
<div style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-v=
ariant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;t=
ext-align:start;text-indent:0px;text-transform:none;white-space:normal;word=
-spacing:0px" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D""><u class=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">In the current draft, the CoMI server need to support tw=
o encoding for each selector, CBOR encoding in the payload and text in the =
keys query parameter.<u class=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">With this proposal, both use cases are encoded using CBO=
R.<u class=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">What do you things?<u class=3D""></u><u class=3D""></u><=
/span></div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div class=3D"">
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse" class=3D"">
<tbody class=3D"">
<tr style=3D"height:49.05pt" class=3D"">
<td width=3D"137" style=3D"width:103.1pt;border-style:none solid none none;=
border-right-color:windowtext;border-right-width:1pt;padding:0in 5.4pt;heig=
ht:49.05pt" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D""><span class=3D"">&lt;image001.jpg&gt;</span><u class=3D"=
"></u><u class=3D""></u></span></div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;=
height:49.05pt" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt 8.1pt;font-size:12pt;font-family:'Tim=
es New Roman',serif" class=3D"">
<span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,1=
25)" class=3D"">Michel Veillette<br class=3D"">
System Architecture Director</span><span style=3D"font-size:11pt;font-famil=
y:Calibri,sans-serif;color:rgb(31,73,125)" class=3D""><u class=3D""></u><u =
class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt 8.1pt;font-size:12pt;font-family:'Tim=
es New Roman',serif" class=3D"">
<span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,1=
25)" class=3D"">Trilliant Inc.<br class=3D"">
Tel: 450-375-0556 ext. 237<br class=3D"">
<a href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color:purple;=
text-decoration:underline" target=3D"_blank" class=3D""><span style=3D"colo=
r:rgb(5,99,193)" class=3D"">michel.veillette@trilliantinc.com</span></a><u =
class=3D""></u><u class=3D""></u></span></div>
<div style=3D"margin:0in 0in 0.0001pt 8.1pt;font-size:12pt;font-family:'Tim=
es New Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D""><a href=3D"http://www.trilliantinc.com/" style=3D"color:=
purple;text-decoration:underline" target=3D"_blank" class=3D""><span style=
=3D"font-size:9pt;font-family:Arial,sans-serif" class=3D"">www.trilliantinc=
.com</span></a></span><span style=3D"font-size:9pt;font-family:Arial,sans-s=
erif;color:rgb(31,73,125)" class=3D""><span class=3D"">&nbsp;</span>&nbsp;<=
span class=3D"">&nbsp;</span></span><span style=3D"font-size:11pt;font-fami=
ly:Calibri,sans-serif;color:rgb(31,73,125)" class=3D""><u class=3D""></u><u=
 class=3D""></u></span></div>
</td>
</tr>
</tbody>
</table>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span></div>
<div class=3D"">
<div style=3D"border-style:solid none none;border-top-color:rgb(225,225,225=
);border-top-width:1pt;padding:3pt 0in 0in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<b class=3D""><span lang=3D"EN-US" style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif" class=3D"">From:</span></b><span lang=3D"EN-US" style=3D"fo=
nt-size:11pt;font-family:Calibri,sans-serif" class=3D""><span class=3D"">&n=
bsp;</span>Alexander Pelov [<a href=3D"mailto:alexander.pelov@telecom-breta=
gne.eu" target=3D"_blank" class=3D"">mailto:alexander.pelov@telecom-bretagn=
e.eu</a>]<span class=3D"">&nbsp;</span><br class=3D"">
<b class=3D"">Sent:</b><span class=3D"">&nbsp;</span>12 juin 2015 15:26<br =
class=3D"">
<b class=3D"">To:</b><span class=3D"">&nbsp;</span>Michel Veillette<br clas=
s=3D"">
<b class=3D"">Cc:</b><span class=3D"">&nbsp;</span>Pascal Thubert (pthubert=
); Andy Bierman;
<a href=3D"mailto:6tisch@ietf.org" target=3D"_blank" class=3D"">6tisch@ietf=
.org</a>; <a href=3D"mailto:core@ietf.org" target=3D"_blank" class=3D"">
core@ietf.org</a><br class=3D"">
<b class=3D"">Subject:</b><span class=3D"">&nbsp;</span>Re: [6tisch] Reserv=
e space for aliases<u class=3D""></u><u class=3D""></u></span></div>
</div>
</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Hi Michel,<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
You=92re right. As I mentioned in my previous mails, I=92m pretty happy wit=
h the compression of IDs we=92ve achieved until now, so aliases are not as =
a pressing issue.&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
The thing is, if they can be implemented at (almost) zero cost, then some o=
f the use-cases become quite interesting.<u class=3D""></u><u class=3D""></=
u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
You actually provide a very good case with the select option. I=92ve not th=
ought if it will present some other difficulties, but I actually think it f=
acilitates the use of aliases (and I mention this only because it will help=
 me also understand the semantics
 of your proposal of the select option).<u class=3D""></u><u class=3D""></u=
></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
If I take the example you provide:<u class=3D""></u><u class=3D""></u></div=
>
</div>
<div class=3D"">
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" s=
tyle=3D"color:purple;text-decoration:underline" target=3D"_blank" class=3D"=
"><span style=3D"color:purple" class=3D"">example.com/mg?select</span></a>(
 [2049,2,3,4] )&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</blockquote>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
The parameters 2,3,4 are actually relative to the module ID of the first on=
e. So, if I try to generalize this (please correct me if I=92m wrong), I wo=
uld imagine something like:<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">REQ: GET&nbsp;<a href=3D"http://example.com/mg?select" s=
tyle=3D"color:purple;text-decoration:underline" target=3D"_blank" class=3D"=
"><span style=3D"color:purple" class=3D"">example.com/mg?select</span></a>(
 [2049,2,3,4, 4097,2,3,4] )&nbsp;</span><u class=3D""></u><u class=3D""></u=
></div>
</div>
</blockquote>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
To resolve to getting module ID=3D1, relative node IDs=3D1,2,3 and 4, and m=
odule ID=3D2 and relative node IDs =3D1,2,3 and 4.<u class=3D""></u><u clas=
s=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
This means, that specifying a GET<span class=3D"">&nbsp;</span><a href=3D"h=
ttp://example.com/mg?select" style=3D"color:purple;text-decoration:underlin=
e" target=3D"_blank" class=3D"">example.com/mg?select</a>(1) should resolve=
 to module ID=3D0 and relative node ID=3D1. This requires
 absolutely no additional processing from the node.&nbsp;<u class=3D""></u>=
<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
So, this leaves us back to the initial idea of the aliases. All short node =
IDs are relative to a module ID (so that the long form ID can be interprete=
d). Module ID=3D0 is reserved, and can be used for aliasing if the device w=
ishes to support it.&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Does this break some of the things along the way?&nbsp;<u class=3D""></u><u=
 class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Best,<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Alex<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
<div class=3D"">
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Le 12 juin 2015 =E0 18:57, Michel Veillette &lt;<a href=3D"mailto:Michel.Ve=
illette@trilliantinc.com" style=3D"color:purple;text-decoration:underline" =
target=3D"_blank" class=3D"">Michel.Veillette@trilliantinc.com</a>&gt; a =
=E9crit :<u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<u class=3D""></u>&nbsp;<u class=3D""></u></div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Hi Alexander, hi Pascal</span><u class=3D""></u><u class=
=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">I want to emphases the following points</span><u class=
=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" clas=
s=3D"">=B7</span><span style=3D"font-size:7pt;color:rgb(31,73,125)" class=
=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=3D"">&nbs=
p;</span></span><span style=3D"font-size:11pt;font-family:Calibri,sans-seri=
f;color:rgb(31,73,125)" class=3D"">The
 use of the select query parameter encoded in CBOR support of 63 modules wi=
th optimized message size instead of only 3 for the base64 URI.</span><u cl=
ass=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">If the 6TiSCH module ID is allocated within these 63 IDs=
, there will be no message size optimization provided by the aliases mechan=
ism.</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">This make the introduction of aliases less urgent.</span=
><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Symbol;color:rgb(31,73,125)" clas=
s=3D"">=B7</span><span style=3D"font-size:7pt;color:rgb(31,73,125)" class=
=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=3D"">&nbs=
p;</span></span><span style=3D"font-size:11pt;font-family:Calibri,sans-seri=
f;color:rgb(31,73,125)" class=3D"">The
 message size of the select query parameter encoded in CBOR should be equal=
 or smaller compared to the base64 URI.</span><u class=3D""></u><u class=3D=
""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">However, the select query parameter encoded in CBOR supp=
ort a wider range of values without size penalty (16 bits instead of 12, 32=
 bits instead of 30)</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Furthermore, CoMI devices won=92t have to support two ty=
pe of encoding depending if IDs are part of the command vs. payload.</span>=
<u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">For example:</span><u class=3D""></u><u class=3D""></u><=
/div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Assuming module ID 2</span><u class=3D""></u><u class=3D=
""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, =
2051)</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Assuming =93,=94 separator to select multiple data nodes=
</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Base64 approach:</span><u class=3D""></u><u class=3D""><=
/u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a href=3D"http://=
example.com/mg/gB" style=3D"color:purple;text-decoration:underline" target=
=3D"_blank" class=3D""><span style=3D"color:purple" class=3D"">example.com/=
mg/gB</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 (3 bytes; 1 byte for the =93/=94, 2 bytes for =93gB=94)</span><u class=3D"=
"></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">CBOR approach:</span><u class=3D""></u><u class=3D""></u=
></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a href=3D"http://=
example.com/mg?select" style=3D"color:purple;text-decoration:underline" tar=
get=3D"_blank" class=3D""><span style=3D"color:purple" class=3D"">example.c=
om/mg?select</span></a>(2049)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;
 (4 bytes; one byte for the CoAP option, 3 for 2049 encoded using CBOR)</sp=
an><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Base64 approach:</span><u class=3D""></u><u class=3D""><=
/u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a href=3D"http://=
example.com/mg/gB,C,D,E" style=3D"color:purple;text-decoration:underline" t=
arget=3D"_blank" class=3D""><span style=3D"color:purple" class=3D"">example=
.com/mg/gB,C,D,E</span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 (9 bytes; 1 byte for the =93/=94, 8 bytes for =93gB,C,D,E=94)</span><u cla=
ss=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">CBOR approach:</span><u class=3D""></u><u class=3D""></u=
></div>
</div>
<div style=3D"margin-left:0.5in" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">REQ: GET<span class=3D"">&nbsp;</span><a href=3D"http://=
example.com/mg?select" style=3D"color:purple;text-decoration:underline" tar=
get=3D"_blank" class=3D""><span style=3D"color:purple" class=3D"">example.c=
om/mg?select</span></a>(
 [2049,2,3,4] )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8 bytes; 1 byte for the CoAP=
 option, 1 for the CBOR array, 3&#43;1&#43;1&#43;1 bytes for the IDs)</span=
><u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse" class=3D"">
<tbody class=3D"">
<tr style=3D"height:49.05pt" class=3D"">
<td width=3D"137" style=3D"width:103.1pt;border-style:none solid none none;=
border-right-color:windowtext;border-right-width:1pt;padding:0in 5.4pt;heig=
ht:49.05pt" class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&lt;image001.jpg&gt;</span><u class=3D""></u><u class=3D=
""></u></div>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;=
height:49.05pt" class=3D"">
<div style=3D"margin-left:8.1pt" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,1=
25)" class=3D"">Michel Veillette<br class=3D"">
System Architecture Director</span><u class=3D""></u><u class=3D""></u></di=
v>
</div>
<div style=3D"margin-left:8.1pt" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,1=
25)" class=3D"">Trilliant Inc.<br class=3D"">
Tel: 450-375-0556 ext. 237<br class=3D"">
<a href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color:purple;=
text-decoration:underline" target=3D"_blank" class=3D""><span style=3D"colo=
r:rgb(5,99,193)" class=3D"">michel.veillette@trilliantinc.com</span></a></s=
pan><u class=3D""></u><u class=3D""></u></div>
</div>
<div style=3D"margin-left:8.1pt" class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D""><a href=3D"http://www.trilliantinc.com/" style=3D"color:=
purple;text-decoration:underline" target=3D"_blank" class=3D""><span style=
=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple" class=3D"">www=
.trilliantinc.com</span></a></span><span class=3D""><span style=3D"font-siz=
e:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" class=3D"">&nbsp;<=
/span></span><span style=3D"font-size:9pt;font-family:Arial,sans-serif;colo=
r:rgb(31,73,125)" class=3D"">&nbsp;<span class=3D"">&nbsp;</span></span><u =
class=3D""></u><u class=3D""></u></div>
</div>
</td>
</tr>
</tbody>
</table>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div style=3D"border-style:solid none none;border-top-color:rgb(225,225,225=
);border-top-width:1pt;padding:3pt 0in 0in" class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<b class=3D""><span lang=3D"EN-US" style=3D"font-size:11pt;font-family:Cali=
bri,sans-serif" class=3D"">From:</span></b><span class=3D""><span lang=3D"E=
N-US" style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">&n=
bsp;</span></span><span lang=3D"EN-US" style=3D"font-size:11pt;font-family:=
Calibri,sans-serif" class=3D"">Alexander
 Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" style=3D"col=
or:purple;text-decoration:underline" target=3D"_blank" class=3D"">mailto:al=
exander.pelov@telecom-bretagne.eu</a>]<span class=3D"">&nbsp;</span><br cla=
ss=3D"">
<b class=3D"">Sent:</b><span class=3D"">&nbsp;</span>11 juin 2015 17:06<br =
class=3D"">
<b class=3D"">To:</b><span class=3D"">&nbsp;</span>Pascal Thubert (pthubert=
)<br class=3D"">
<b class=3D"">Cc:</b><span class=3D"">&nbsp;</span>Andy Bierman; Michel Vei=
llette;<span class=3D"">&nbsp;</span><a href=3D"mailto:6tisch@ietf.org" sty=
le=3D"color:purple;text-decoration:underline" target=3D"_blank" class=3D"">=
6tisch@ietf.org</a>;<span class=3D"">&nbsp;</span><a href=3D"mailto:core@ie=
tf.org" style=3D"color:purple;text-decoration:underline" target=3D"_blank" =
class=3D"">core@ietf.org</a><br class=3D"">
<b class=3D"">Subject:</b><span class=3D"">&nbsp;</span>Re: [6tisch] Reserv=
e space for aliases</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Hi Pascal,<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Le 10 juin 2015 =E0 15:25, Pascal Thubert (pthubert) &lt;<a href=3D"mailto:=
pthubert@cisco.com" style=3D"color:purple;text-decoration:underline" target=
=3D"_blank" class=3D""><span style=3D"color:purple" class=3D"">pthubert@cis=
co.com</span></a>&gt; a =E9crit :<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Dear all:</span><u class=3D""></u><u class=3D""></u></di=
v>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">This looks like the problem of local namespaces,&nbsp; w=
hich is the reason why MPLS switches labels.</span><u class=3D""></u><u cla=
ss=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">The user may access a limited set of resources from a nu=
mber of servers, and servers are read by many users.</span><u class=3D""></=
u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">You cannot ensure that you have a single alias space tha=
t satisfies them all.</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</blockquote>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Great analogy! And yes, sadly you cannot satisfy them all, at least not wit=
h all devices.<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<br class=3D"">
<br class=3D"">
<br class=3D"">
<u class=3D""></u><u class=3D""></u></div>
</div>
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">So ,what if the user had its own set of aliases and the =
server also had its own set of aliases?</span><u class=3D""></u><u class=3D=
""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">The aliases could be mapped in a table like a uSAP and a=
 pSAP are mapped across layers. Broadly:</span><u class=3D""></u><u class=
=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">- First time a user requests a resource in a server, it =
comes with a tuple (userid, useralias, fullname)</span><u class=3D""></u><u=
 class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">- The server responds with (serverid, serveralias, useri=
d, user alias).</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</blockquote>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Actually, I think that this could be worked out in CoMI also. Instead of fu=
llname you could provide the YANG id (module ID &#43; data node ID) and do =
the mapping. User alias would be the special aliased YANG id. User ID, howe=
ver, could be a little bit more tricky
 - how do we ensure that it is consistent? Use the IP address of the client=
 could be doable, but we=92ll have to include the UDP port just in case som=
eone runs two clients on the same machine.<u class=3D""></u><u class=3D""><=
/u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<br class=3D"">
<br class=3D"">
<br class=3D"">
<u class=3D""></u><u class=3D""></u></div>
</div>
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">After that,&nbsp; if the server is a constrained device =
then the user talks to the server with (serverid, serveralias) and the user=
 maintains a switching table for the resource
 it uses on various servers.</span><u class=3D""></u><u class=3D""></u></di=
v>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">If the user is the constrained device and the server is =
not, the user could talk with (userid, useralias) and the server maintains =
a switching table.</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">For large servers, the server may allocate aliases dynam=
ically based on what it is being asked. We=92d then need to talk about alia=
s update or revocation, probably in terms
 of session and lifetime.</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Does that look usable?</span><u class=3D""></u><u class=
=3D""></u></div>
</div>
</div>
</div>
</blockquote>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
You are pointing out an interesting question. I would think (but maybe I=92=
m mistaken), that the client should have the leading role in figuring out w=
hat=92s happening. The idea is the following:<u class=3D""></u><u class=3D"=
"></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
The client checks if the server supports aliasing, with the possible option=
s:<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
S1) no aliasing<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
S2) static/server-defined aliasing<u class=3D""></u><u class=3D""></u></div=
>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
S3) dynamic/single alias mapping&nbsp;<u class=3D""></u><u class=3D""></u><=
/div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp; S3.1) mapping already defined<u class=3D""></u><u class=3D""></u></d=
iv>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp; S3.2) no mapping defined<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
S4) dynamic/per client alias mapping<u class=3D""></u><u class=3D""></u></d=
iv>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Then, the client can take action, depending on its own capabilities and the=
 response of the server. E.g. a unconstrained client could obtain the alias=
 mapping if it is static (or if there is a single alias mapping in place) a=
nd cache it locally. So, there will
 be the following correspondence :<u class=3D""></u><u class=3D""></u></div=
>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Given:<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
C1) constrained client<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
C2) unconstrained client<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
We have:<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
C1 &#43; S1) no aliasing, nothing to do<u class=3D""></u><u class=3D""></u>=
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
C1 &#43; S2) and C1 &#43; S3.1) if the alias mapping is known, use it. othe=
rwise, ignore<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
C1 &#43; S3.2) and C1 &#43; S4) define alias mapping<u class=3D""></u><u cl=
ass=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
C2 &#43; S1) no aliasing, nothing to do<u class=3D""></u><u class=3D""></u>=
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
C2 &#43; S2) and C2 &#43; S3.1) if the alias mapping is known, use it. othe=
rwise, learn it<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
C2 &#43; S3.2) and C2 &#43; S4) define alias mapping<u class=3D""></u><u cl=
ass=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
I would say that the analogy you made with MPLS corresponds quite a lot to =
the C2&#43;S4 case. Personally, I would be most interested into having one =
client configure one alias mapping to all servers in the network (e.g. the =
managing entity), which will profit
 most from saving several bytes on each message exchange. Everyone else cou=
ld use the standard IDs, which we=92ve already managed to shrink significan=
tly.<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Indeed, with structured module ID &#43; data node ID (20 bits &#43; 10 bits=
), YANG URI compression, and long form/short form, we=92ll have quite a lot=
 of gain. Reserving module ID =3D 1 for aliases and maybe writing a short d=
raft on how the aliasing is implemented seems
 feasible, where we can cover the exact mechanism of alias definition, and =
client/server interaction.<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Alexander<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Pascal</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div style=3D"border-style:none none none solid;border-left-color:blue;bord=
er-left-width:1.5pt;padding:0in 0in 0in 4pt" class=3D"">
<div class=3D"">
<div style=3D"border-style:solid none none;border-top-color:rgb(181,196,223=
);border-top-width:1pt;padding:3pt 0in 0in" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<b class=3D""><span style=3D"font-size:10pt;font-family:Tahoma,sans-serif" =
class=3D"">From:</span></b><span class=3D""><span style=3D"font-size:10pt;f=
ont-family:Tahoma,sans-serif" class=3D"">&nbsp;</span></span><span style=3D=
"font-size:10pt;font-family:Tahoma,sans-serif" class=3D"">6tisch
 [<a href=3D"mailto:6tisch-bounces@ietf.org" style=3D"color:purple;text-dec=
oration:underline" target=3D"_blank" class=3D""><span style=3D"color:purple=
" class=3D"">mailto:6tisch-bounces@ietf.org</span></a>]<span class=3D"">&nb=
sp;</span><b class=3D"">On Behalf Of<span class=3D"">&nbsp;</span></b>Andy
 Bierman<br class=3D"">
<b class=3D"">Sent:</b><span class=3D"">&nbsp;</span>vendredi 5 juin 2015 2=
0:55<br class=3D"">
<b class=3D"">To:</b><span class=3D"">&nbsp;</span>Michel Veillette<br clas=
s=3D"">
<b class=3D"">Cc:</b><span class=3D"">&nbsp;</span><a href=3D"mailto:6tisch=
@ietf.org" style=3D"color:purple;text-decoration:underline" target=3D"_blan=
k" class=3D""><span style=3D"color:purple" class=3D"">6tisch@ietf.org</span=
></a>; Alexander Pelov;<span class=3D"">&nbsp;</span><a href=3D"mailto:core=
@ietf.org" style=3D"color:purple;text-decoration:underline" target=3D"_blan=
k" class=3D""><span style=3D"color:purple" class=3D"">core@ietf.org</span><=
/a><br class=3D"">
<b class=3D"">Subject:</b><span class=3D"">&nbsp;</span>Re: [6tisch] Reserv=
e space for aliases</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette &lt;<a href=3D"mailto:Mic=
hel.Veillette@trilliantinc.com" style=3D"color:purple;text-decoration:under=
line" target=3D"_blank" class=3D""><span style=3D"color:purple" class=3D"">=
Michel.Veillette@trilliantinc.com</span></a>&gt; wrote:<u class=3D""></u><u=
 class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">Hi Alexander</span><u class=3D""></u><u class=3D""></u><=
/div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">I have some concerns about allowing CoMI client(s) the c=
ontrol of the list of aliases.</span><u class=3D""></u><u class=3D""></u></=
div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">This approach work fine for the first CoMI application (=
e.g. 6TiSCH) but what do we do with the subsequent CoMI application?</span>=
<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">One possible solution is that each CoMI client send a li=
st of (alias, data node ID) to the CoMI server. In this case, the CoMI clie=
nt might receive an error if one or
 multiple of these aliases are already reserved.</span><u class=3D""></u><u=
 class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">A second possible solution is that each CoMI client send=
 a list of (data node ID) and get a list of (alias, data node ID) from the =
CoMI server. In this case, CoMI clients
 will have to deal with a mix population of aliases.</span><u class=3D""></=
u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">The proposed solution need to scale to a multi-vendors, =
multiple applications environment.</span><u class=3D""></u><u class=3D""></=
u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">With this is mind, do you have any alternative solutions=
 to propose?</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Does this approach allow each client to have a different set of aliases,<u =
class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
so the server has to maintain a configured mapping for each client?<u class=
=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
This seems like a lot of overhead and NV-storage requirements<u class=3D"">=
</u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
on the server.<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Changing the schema identifiers based on which client is<u class=3D""></u><=
u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
sending the request seems like a complicated design change<u class=3D""></u=
><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
from RESTCONF, NETCONF, or SNMP, where there is only<u class=3D""></u><u cl=
ass=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
1 schema tree which is not dependent on the client identity.<u class=3D""><=
/u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Andy<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<blockquote style=3D"border-style:none none none solid;border-left-color:rg=
b(204,204,204);border-left-width:1pt;padding:0in 0in 0in 6pt;margin:5pt 0in=
 5pt 4.8pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse" class=3D"">
<tbody class=3D"">
<tr style=3D"height:49.05pt" class=3D"">
<td width=3D"137" style=3D"width:103.1pt;border-style:none solid none none;=
border-right-color:windowtext;border-right-width:1pt;padding:0in 5.4pt;heig=
ht:49.05pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&lt;image001.jpg&gt;</span><u class=3D""></u><u class=3D=
""></u></div>
</div>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;=
height:49.05pt" class=3D"">
<div style=3D"margin-left:8.1pt" class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,1=
25)" class=3D"">Michel Veillette<br class=3D"">
System Architecture Director</span><u class=3D""></u><u class=3D""></u></di=
v>
</div>
</div>
<div style=3D"margin-left:8.1pt" class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:9pt;font-family:Arial,sans-serif;color:rgb(31,73,1=
25)" class=3D"">Trilliant Inc.<br class=3D"">
Tel: 450-375-0556 ext. 237<br class=3D"">
<a href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color:purple;=
text-decoration:underline" target=3D"_blank" class=3D""><span style=3D"colo=
r:rgb(5,99,193)" class=3D"">michel.veillette@trilliantinc.com</span></a></s=
pan><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div style=3D"margin-left:8.1pt" class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D""><a href=3D"http://www.trilliantinc.com/" style=3D"color:=
purple;text-decoration:underline" target=3D"_blank" class=3D""><span style=
=3D"font-size:9pt;font-family:Arial,sans-serif;color:purple" class=3D"">www=
.trilliantinc.com</span></a></span><span class=3D""><span style=3D"font-siz=
e:9pt;font-family:Arial,sans-serif;color:rgb(31,73,125)" class=3D"">&nbsp;<=
/span></span><span style=3D"font-size:9pt;font-family:Arial,sans-serif;colo=
r:rgb(31,73,125)" class=3D"">&nbsp;<span class=3D"">&nbsp;</span></span><u =
class=3D""></u><u class=3D""></u></div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,7=
3,125)" class=3D"">&nbsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div style=3D"border-style:solid none none;border-top-color:rgb(225,225,225=
);border-top-width:1pt;padding:3pt 0in 0in" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<b class=3D""><span style=3D"font-size:11pt;font-family:Calibri,sans-serif"=
 class=3D"">From:</span></b><span class=3D""><span style=3D"font-size:11pt;=
font-family:Calibri,sans-serif" class=3D"">&nbsp;</span></span><span style=
=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">Alexander
 Pelov [mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" style=
=3D"color:purple;text-decoration:underline" target=3D"_blank" class=3D""><s=
pan style=3D"color:purple" class=3D"">alexander.pelov@telecom-bretagne.eu</=
span></a>]<span class=3D"">&nbsp;</span><br class=3D"">
<b class=3D"">Sent:</b><span class=3D"">&nbsp;</span>5 juin 2015 12:03<br c=
lass=3D"">
<b class=3D"">To:</b><span class=3D"">&nbsp;</span>Michel Veillette<br clas=
s=3D"">
<b class=3D"">Cc:</b><span class=3D"">&nbsp;</span>Andy Bierman;<span class=
=3D"">&nbsp;</span><a href=3D"mailto:6tisch@ietf.org" style=3D"color:purple=
;text-decoration:underline" target=3D"_blank" class=3D""><span style=3D"col=
or:purple" class=3D"">6tisch@ietf.org</span></a>;<span class=3D"">&nbsp;</s=
pan><a href=3D"mailto:core@ietf.org" style=3D"color:purple;text-decoration:=
underline" target=3D"_blank" class=3D""><span style=3D"color:purple" class=
=3D"">core@ietf.org</span></a><br class=3D"">
<b class=3D"">Subject:</b><span class=3D"">&nbsp;</span>Re: Reserve space f=
or aliases</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Hi Michel,<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Le 5 juin 2015 =E0 17:17, Michel Veillette &lt;<a href=3D"mailto:Michel.Vei=
llette@trilliantinc.com" style=3D"color:purple;text-decoration:underline" t=
arget=3D"_blank" class=3D""><span style=3D"color:purple" class=3D"">Michel.=
Veillette@trilliantinc.com</span></a>&gt; a =E9crit :<u class=3D""></u><u c=
lass=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">Hi=
 Alexander</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">&n=
bsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">In=
 your presentation at 6TiSCH, you propose the following data node ID struct=
ure.</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">&n=
bsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" style=3D"border-col=
lapse:collapse" class=3D"">
<tbody class=3D"">
<tr class=3D"">
<td width=3D"623" valign=3D"top" style=3D"width:467.5pt;border:1pt solid wi=
ndowtext;padding:0in 5.4pt" class=3D"">
<div style=3D"margin-left:0.5in" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Arial,sans-serif" class=3D"">=95<=
/span><span style=3D"font-size:7pt" class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;</span><span style=3D"font-size:11pt;font-family:Calibri,sans=
-serif" class=3D"">32 bits YANG ID</span><u class=3D""></u><u class=3D""></=
u></div>
</div>
</div>
</div>
<div style=3D"margin-left:1in" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Arial,sans-serif" class=3D"">=96<=
/span><span style=3D"font-size:7pt" class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;</span><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
" class=3D"">20 bits for module ID (assigned by IETF)</span><u class=3D""><=
/u><u class=3D""></u></div>
</div>
</div>
</div>
<div style=3D"margin-left:1in" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Arial,sans-serif" class=3D"">=96<=
/span><span style=3D"font-size:7pt" class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;</span><span style=3D"font-size:11pt;font-family:Calibri,sans-serif=
" class=3D"">10 bits for data node ID (generated deterministically)</span><=
u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">&n=
bsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">Ba=
sed on this structure, we can reserve&nbsp;module ID zero for aliases.</spa=
n><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">&n=
bsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
I was just summarizing what was discussed on the discussion in CoMI. Actual=
ly, it is 30 bits YANG ID, but that=92s for purposes to be consistent with =
the YANG hash and I don=92t mind keeping it 30 bits.<u class=3D""></u><u cl=
ass=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin:0in 0in 12pt;font-size:12pt;font-fam=
ily:'Times New Roman',serif">
&nbsp;<u class=3D""></u><u class=3D""></u></p>
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">If=
 we want to minimize both the network an node resources require by this ali=
as mechanism, we can map an entire module to this space.</span><u class=3D"=
"></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">Th=
is can be implemented by a single integer resource (e.g. leaf alliassedModu=
le { type uint32 } )</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">Th=
is approach require 4 bytes per CoMI server accessed.</span><u class=3D""><=
/u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">&n=
bsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
It is possible to map an entire module to the alias space and this is up to=
 the operator. However, if you load two modules which redefine the same ali=
as you will loose the benefit from it. Maybe it would be interesting to be =
able to specify that you want the
 aliases from THIS specific module to be used.<u class=3D""></u><u class=3D=
""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
If the /mg/0 alias is reserved for managing the aliases, this could be simp=
ly saying:<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
POST /mg/0<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
{<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;&quot;source_uri&quot; : &quot;/mg/BAA&quot;<u class=3D""></u><u clas=
s=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
}<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
where /mg/BAA is the YANG id of the module (20 bits module ID &#43; 10 bits=
 set to 0). This way, the server will know: OK, get the alias mapping from =
the YANG scheme of module with ID =3D B (as defined by the IETF).&nbsp;<u c=
lass=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Or, you can dynamically configure the mapping:<u class=3D""></u><u class=3D=
""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
POST /mg/0<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
{<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp; YANG_id : alias,<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp; YANG_id : alias,<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp; YANG_id : alias<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
}<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin:0in 0in 12pt;font-size:12pt;font-fam=
ily:'Times New Roman',serif">
&nbsp;<u class=3D""></u><u class=3D""></u></p>
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">If=
 we want a more complex but more flexible aliases mechanism, your proposed =
map of (allias, YANG ID) seem the solution.</span><u class=3D""></u><u clas=
s=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">Ho=
wever, we have to consider that this structure can be as large as&nbsp;<u c=
lass=3D"">1250 bytes per CoMI server accessed</u>&nbsp;if limited to 256 al=
iases.</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</div>
</blockquote>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
This is assuming you need a separate mapping for each server. I would suppo=
se that in a network you=92ll have a single alias mapping (maybe two?) - af=
ter all, you=92re trying to optimize the management of your devices (server=
s). So, typically you=92d map all 6tisch
 devices with aliases 1-10 (channel, slot, etc.) and use that on them, and =
on all other you=92d access the full ID.&nbsp;<u class=3D""></u><u class=3D=
""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
&nbsp;<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Best,<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
Alexander<u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin:0in 0in 12pt;font-size:12pt;font-fam=
ily:'Times New Roman',serif">
&nbsp;<u class=3D""></u><u class=3D""></u></p>
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">&n=
bsp;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse" class=3D"">
<tbody class=3D"">
<tr style=3D"height:49.05pt" class=3D"">
<td width=3D"137" style=3D"width:103.1pt;border-style:none solid none none;=
border-right-color:windowtext;border-right-width:1pt;padding:0in 5.4pt;heig=
ht:49.05pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D"">&l=
t;image001.jpg&gt;</span><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt;=
height:49.05pt" class=3D"">
<div style=3D"margin-left:8.1pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:9pt;font-family:Arial,sans-serif" class=3D"">Miche=
l Veillette<br class=3D"">
System Architecture Director</span><u class=3D""></u><u class=3D""></u></di=
v>
</div>
</div>
</div>
<div style=3D"margin-left:8.1pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:9pt;font-family:Arial,sans-serif" class=3D"">Trill=
iant Inc.<br class=3D"">
Tel: 450-375-0556 ext. 237<br class=3D"">
<a href=3D"mailto:michel.veillette@trilliantinc.com" style=3D"color:purple;=
text-decoration:underline" target=3D"_blank" class=3D""><span style=3D"colo=
r:rgb(5,99,193)" class=3D"">michel.veillette@trilliantinc.com</span></a></s=
pan><u class=3D""></u><u class=3D""></u></div>
</div>
</div>
</div>
<div style=3D"margin-left:8.1pt" class=3D"">
<div class=3D"">
<div class=3D"">
<div style=3D"margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New=
 Roman',serif" class=3D"">
<span style=3D"font-size:11pt;font-family:Calibri,sans-serif" class=3D""><a=
 href=3D"http://www.trilliantinc.com/" style=3D"color:purple;text-decoratio=
n:underline" target=3D"_blank" class=3D""><span style=3D"font-size:9pt;font=
-family:Arial,sans-serif;color:purple" class=3D"">www.trilliantinc.com</spa=
n></a></span></div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br class=3D"">
</div>
</blockquote>
</div>
<br class=3D"">
</div>
</div>
</blockquote>
</div>
<br class=3D"">
</div>
</blockquote>
</div>
<br class=3D"">
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class=3D"">
</div>
</blockquote>
</body>
</html>

--_000_310057714D654028BA61ECAFD9E31FF4ciscocom_--


From nobody Fri Jun 12 18:11:39 2015
Return-Path: <pthubert@cisco.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5867B1B2C7F; Fri, 12 Jun 2015 18:11:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level: 
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YBSknS1Nrdqv; Fri, 12 Jun 2015 18:11:31 -0700 (PDT)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0D8C71B2C82; Fri, 12 Jun 2015 18:11:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=93326; q=dns/txt; s=iport; t=1434157891; x=1435367491; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=wlT+uQUNYaEzfyladbu4EPILStCZRxP4TL2oCX8WKKg=; b=Z248NtIkC8PQTfx86QlKgtyTApJ+eTDWUDQgrjdIgHTlamAVsYesujGT zyXNkLWV0AzlsGz0N8dw7n9Srq0Cjd7dDSp6aG6m6xJntpiUEWEvOXyND GGk5p7b3i8LjkSMaRqxj7AUFAQszSVmR+Khi8I6/SrvXsWzQOMFzGIGBj o=;
X-Files: image001.jpg : 2532
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0BHBAALg3tV/4gNJK1TBgECgkVLVF8Ggxi5cmYJgV2FfgIcgSM4FAEBAQEBAQGBCoQiAQEBBAUVCQIIARsjCgMQAgEGAgcKAQMBAQYBAQECCAQKAQYDAgICBRABDAIMFAMGCAIEAQ0EAQYCBg0EiBCVRZ0ZpCcBAQEBAQEBAQEBAQEBAQEBAQEBAQEXikGBAoQdDQMOAhgGBwkLEAYBBgMIAQsBgkovgRYFkQSCUoNpAWAkhk+BMUCDSIJ9h1aEIINbJoIIAgEcgVJvgQMBCBcjgQEBAQE
X-IronPort-AV: E=Sophos;i="5.13,605,1427760000";  d="jpg'145?scan'145,208,217,145";a="159035845"
Received: from alln-core-3.cisco.com ([173.36.13.136]) by alln-iport-6.cisco.com with ESMTP; 13 Jun 2015 01:11:29 +0000
Received: from xhc-aln-x11.cisco.com (xhc-aln-x11.cisco.com [173.36.12.85]) by alln-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id t5D1BTv9001374 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Sat, 13 Jun 2015 01:11:29 GMT
Received: from xmb-rcd-x01.cisco.com ([169.254.1.61]) by xhc-aln-x11.cisco.com ([173.36.12.85]) with mapi id 14.03.0195.001; Fri, 12 Jun 2015 20:11:29 -0500
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>, Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAADv9XEAAEJffwAAJ0YMwAATNOsA
Date: Sat, 13 Jun 2015 01:11:28 +0000
Deferred-Delivery: Sat, 13 Jun 2015 01:11:00 +0000
Message-ID: <E045AECD98228444A58C61C200AE1BD849E9998D@xmb-rcd-x01.cisco.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com>
In-Reply-To: <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com>
Accept-Language: fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.82.253.27]
Content-Type: multipart/related; boundary="_004_E045AECD98228444A58C61C200AE1BD849E9998Dxmbrcdx01ciscoc_"; type="multipart/alternative"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/WHnsLk6YPvIMzb7dgQu_tlTmf14>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2015 01:11:36 -0000

--_004_E045AECD98228444A58C61C200AE1BD849E9998Dxmbrcdx01ciscoc_
Content-Type: multipart/alternative;
	boundary="_000_E045AECD98228444A58C61C200AE1BD849E9998Dxmbrcdx01ciscoc_"

--_000_E045AECD98228444A58C61C200AE1BD849E9998Dxmbrcdx01ciscoc_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGVsbG8gTWljaGVsOg0KDQpJ4oCZbSBub3Qgc28gd29ycmllZCBmb3IgNlRpU0NI4oCZcyBJRCB0
aGFuIGZvciB0aGUgSURzIHVzZWQgdG8gY29sbGVjdCBkYXRhIGZyb20gc2Vuc29ycy4gQmVjYXVz
ZSB0aGF0IGlzIHRoZSBvcGVyYXRpb24gdGhhdCB3aWxsIGhhcHBlbiBhbGwgdGhlIHRpbWUgYW4g
c3VjayBiYXR0ZXJpZXMuDQpJIHVuZGVyc3RhbmQgdGhhdCBhbnkgc2Vuc29yIHZlbmRvciB3aWxs
IHdhbnQgdG8gaGF2ZSBpdHMgb3duIG1vZHVsZSBJRHMsIGNvcnJlY3Q/IEFuZCBzb29uIGVub3Vn
aCB0aGF0IHZlbmRvciB3aWxsIGNvbWUgd2l0aCB2YXJpYW50cyBvZiBoaXMgcHJvZHVjdHMsIGFu
ZCB3aWxsIHdhbnQgbW9yZSBtb2R1bGUgSURzLCBpcyB0aGF0IHJpZ2h0Pw0KDQpJZiBJ4oCZbSBj
b3JyZWN0LCB0aGlzIHBsZWFkcyBmb3IgYWxpYXNlczsgYnV0IG1heWJlIG5vdCBhcyB3ZSB0aG91
Z2h0IHRoZW0uIEkgaGF2ZSBtaXNzZWQgdGhlIHRyaWNrIG9mIDYzIG1vZHVsZSBJRHMgdGhhdCBh
cmUgb3B0aW1hbGx5IGVuY29kZWQsIGJ1dCBJIHRydXN0IHlvdSBvbiB0aGF0IOKAkyBJIGZpZ3Vy
ZSB0aGF0IGl0IGlzIGJlY2F1c2UgaXQgdGFrZXMgMiBiaXRzIHRvIGVuY29kZWQgdGhlIGNvYXAg
b3B0aW9uPw0KDQpJZiBzbzogbWF5YmUgd2Ugc2hvdWxkIGFsaWFzIHRoZSBtb2R1bGUgSURzIHNv
IHRoYXQgdGhlIDYzIElEcyB0aGF0IGJlbmVmaXQgZnJvbSB0aGUgb3B0aW1hbCBjYm9yIGNvbXBy
ZXNzaW9uIHNob3VsZCBiZSB0aGUgYWxpYXNlcyBvZiBhbnkgb2YgdGhlIHRob3VzYW5kcyBvZiBJ
RHMgdGhhdCB3aWxsIHNvb24gZXhpc3QgaW4gdGhlIHJlZ2lzdHJpZXMuDQoNCkFsc28gbm90ZSB0
aGF0IGRldmljZSBtYWtlcnMgd2lsbCB3YW50IHRoZSB2ZW5kb3Igc3BlY2lmaWMgcmFuZ2UgdGhh
dCB0aGV5IHVzZSB0byBwbGF5IHdpdGggYmVmb3JlIHNvbWV0aGluZyBpcyByZWdpc3RlcmVkLiBB
bGlhc2VzIGNvdWxkIGFsc28gYmUgYSB3YXkgdG8gcGxheSB3aXRoIG1vZHVsZSBJRHMgdGhhdCBo
YXZlIG5vdCB5ZXQgYmVlbiByZWdpc3RlcmVkIHRvIElBTkEuDQoNCknigJltIG5vdCBzdXJlIHRo
ZSBhYm92ZSBtYWtlcyBzZW5zZSBzaW5jZSBpdCBpcyBiYXNlZCBvbiBhIHBhcnRpYWwgdW5kZXJz
dGFuZGluZyBvZiB5b3VyIHdvcmsgc28gZmFy4oCmDQoNClBhc2NhbA0KDQpGcm9tOiBNaWNoZWwg
VmVpbGxldHRlIFttYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tXQ0KU2Vu
dDogdmVuZHJlZGkgMTIganVpbiAyMDE1IDA5OjU4DQpUbzogQWxleGFuZGVyIFBlbG92OyBQYXNj
YWwgVGh1YmVydCAocHRodWJlcnQpDQpDYzogQW5keSBCaWVybWFuOyA2dGlzY2hAaWV0Zi5vcmc7
IGNvcmVAaWV0Zi5vcmcNClN1YmplY3Q6IFJFOiBbNnRpc2NoXSBSZXNlcnZlIHNwYWNlIGZvciBh
bGlhc2VzDQoNCkhpIEFsZXhhbmRlciwgaGkgUGFzY2FsDQoNCkkgd2FudCB0byBlbXBoYXNlcyB0
aGUgZm9sbG93aW5nIHBvaW50cw0KDQoNCuKAoiAgICAgICAgIFRoZSB1c2Ugb2YgdGhlIHNlbGVj
dCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBpbiBDQk9SIHN1cHBvcnQgb2YgNjMgbW9kdWxlcyB3
aXRoIG9wdGltaXplZCBtZXNzYWdlIHNpemUgaW5zdGVhZCBvZiBvbmx5IDMgZm9yIHRoZSBiYXNl
NjQgVVJJLg0KDQpJZiB0aGUgNlRpU0NIIG1vZHVsZSBJRCBpcyBhbGxvY2F0ZWQgd2l0aGluIHRo
ZXNlIDYzIElEcywgdGhlcmUgd2lsbCBiZSBubyBtZXNzYWdlIHNpemUgb3B0aW1pemF0aW9uIHBy
b3ZpZGVkIGJ5IHRoZSBhbGlhc2VzIG1lY2hhbmlzbS4NCg0KVGhpcyBtYWtlIHRoZSBpbnRyb2R1
Y3Rpb24gb2YgYWxpYXNlcyBsZXNzIHVyZ2VudC4NCg0KDQoNCuKAoiAgICAgICAgIFRoZSBtZXNz
YWdlIHNpemUgb2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBpbiBDQk9SIHNo
b3VsZCBiZSBlcXVhbCBvciBzbWFsbGVyIGNvbXBhcmVkIHRvIHRoZSBiYXNlNjQgVVJJLg0KDQpI
b3dldmVyLCB0aGUgc2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBlbmNvZGVkIGluIENCT1Igc3VwcG9y
dCBhIHdpZGVyIHJhbmdlIG9mIHZhbHVlcyB3aXRob3V0IHNpemUgcGVuYWx0eSAoMTYgYml0cyBp
bnN0ZWFkIG9mIDEyLCAzMiBiaXRzIGluc3RlYWQgb2YgMzApDQoNCkZ1cnRoZXJtb3JlLCBDb01J
IGRldmljZXMgd29u4oCZdCBoYXZlIHRvIHN1cHBvcnQgdHdvIHR5cGUgb2YgZW5jb2RpbmcgZGVw
ZW5kaW5nIGlmIElEcyBhcmUgcGFydCBvZiB0aGUgY29tbWFuZCB2cy4gcGF5bG9hZC4NCg0KDQoN
CkZvciBleGFtcGxlOg0KDQoNCg0KQXNzdW1pbmcgbW9kdWxlIElEIDINCg0KQXNzdW1pbmcgZGF0
YSBub2RlIElEIDEsIDIsIDMsIDQgKGxvbmcgZm9ybSAyMDQ5LCAyMDUwLCAyMDUxKQ0KDQpBc3N1
bWluZyDigJws4oCdIHNlcGFyYXRvciB0byBzZWxlY3QgbXVsdGlwbGUgZGF0YSBub2Rlcw0KDQoN
Cg0KQmFzZTY0IGFwcHJvYWNoOg0KDQpSRVE6IEdFVCBleGFtcGxlLmNvbS9tZy9nQiAgICAgICAg
ICgzIGJ5dGVzOyAxIGJ5dGUgZm9yIHRoZSDigJwv4oCdLCAyIGJ5dGVzIGZvciDigJxnQuKAnSkN
Cg0KDQoNCkNCT1IgYXBwcm9hY2g6DQoNClJFUTogR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdCgy
MDQ5KSAgICAgICAgICg0IGJ5dGVzOyBvbmUgYnl0ZSBmb3IgdGhlIENvQVAgb3B0aW9uLCAzIGZv
ciAyMDQ5IGVuY29kZWQgdXNpbmcgQ0JPUikNCg0KDQoNCkJhc2U2NCBhcHByb2FjaDoNCg0KUkVR
OiBHRVQgZXhhbXBsZS5jb20vbWcvZ0IsQyxELEUgICAgICAgICAoOSBieXRlczsgMSBieXRlIGZv
ciB0aGUg4oCcL+KAnSwgOCBieXRlcyBmb3Ig4oCcZ0IsQyxELEXigJ0pDQoNCg0KQ0JPUiBhcHBy
b2FjaDoNCg0KUkVROiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0KCBbMjA0OSwyLDMsNF0gKSAg
ICAgICg4IGJ5dGVzOyAxIGJ5dGUgZm9yIHRoZSBDb0FQIG9wdGlvbiwgMSBmb3IgdGhlIENCT1Ig
YXJyYXksIDMrMSsxKzEgYnl0ZXMgZm9yIHRoZSBJRHMpDQoNCg0KW2NpZDppbWFnZTAwMS5qcGdA
MDFDODY4RDguQkYwQkI3RTBdDQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1
cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0K
bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRl
QHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxs
aWFudGluYy5jb20vPg0KDQoNCg0KRnJvbTogQWxleGFuZGVyIFBlbG92IFttYWlsdG86YWxleGFu
ZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXVdDQpTZW50OiAxMSBqdWluIDIwMTUgMTc6MDYN
ClRvOiBQYXNjYWwgVGh1YmVydCAocHRodWJlcnQpDQpDYzogQW5keSBCaWVybWFuOyBNaWNoZWwg
VmVpbGxldHRlOyA2dGlzY2hAaWV0Zi5vcmc8bWFpbHRvOjZ0aXNjaEBpZXRmLm9yZz47IGNvcmVA
aWV0Zi5vcmc8bWFpbHRvOmNvcmVAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogWzZ0aXNjaF0gUmVz
ZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlcw0KDQpIaSBQYXNjYWwsDQoNCkxlIDEwIGp1aW4gMjAxNSDD
oCAxNToyNSwgUGFzY2FsIFRodWJlcnQgKHB0aHViZXJ0KSA8cHRodWJlcnRAY2lzY28uY29tPG1h
aWx0bzpwdGh1YmVydEBjaXNjby5jb20+PiBhIMOpY3JpdCA6DQoNCkRlYXIgYWxsOg0KDQpUaGlz
IGxvb2tzIGxpa2UgdGhlIHByb2JsZW0gb2YgbG9jYWwgbmFtZXNwYWNlcywgIHdoaWNoIGlzIHRo
ZSByZWFzb24gd2h5IE1QTFMgc3dpdGNoZXMgbGFiZWxzLg0KVGhlIHVzZXIgbWF5IGFjY2VzcyBh
IGxpbWl0ZWQgc2V0IG9mIHJlc291cmNlcyBmcm9tIGEgbnVtYmVyIG9mIHNlcnZlcnMsIGFuZCBz
ZXJ2ZXJzIGFyZSByZWFkIGJ5IG1hbnkgdXNlcnMuDQpZb3UgY2Fubm90IGVuc3VyZSB0aGF0IHlv
dSBoYXZlIGEgc2luZ2xlIGFsaWFzIHNwYWNlIHRoYXQgc2F0aXNmaWVzIHRoZW0gYWxsLg0KDQpH
cmVhdCBhbmFsb2d5ISBBbmQgeWVzLCBzYWRseSB5b3UgY2Fubm90IHNhdGlzZnkgdGhlbSBhbGws
IGF0IGxlYXN0IG5vdCB3aXRoIGFsbCBkZXZpY2VzLg0KDQoNClNvICx3aGF0IGlmIHRoZSB1c2Vy
IGhhZCBpdHMgb3duIHNldCBvZiBhbGlhc2VzIGFuZCB0aGUgc2VydmVyIGFsc28gaGFkIGl0cyBv
d24gc2V0IG9mIGFsaWFzZXM/DQoNClRoZSBhbGlhc2VzIGNvdWxkIGJlIG1hcHBlZCBpbiBhIHRh
YmxlIGxpa2UgYSB1U0FQIGFuZCBhIHBTQVAgYXJlIG1hcHBlZCBhY3Jvc3MgbGF5ZXJzLiBCcm9h
ZGx5Og0KLSBGaXJzdCB0aW1lIGEgdXNlciByZXF1ZXN0cyBhIHJlc291cmNlIGluIGEgc2VydmVy
LCBpdCBjb21lcyB3aXRoIGEgdHVwbGUgKHVzZXJpZCwgdXNlcmFsaWFzLCBmdWxsbmFtZSkNCi0g
VGhlIHNlcnZlciByZXNwb25kcyB3aXRoIChzZXJ2ZXJpZCwgc2VydmVyYWxpYXMsIHVzZXJpZCwg
dXNlciBhbGlhcykuDQoNCkFjdHVhbGx5LCBJIHRoaW5rIHRoYXQgdGhpcyBjb3VsZCBiZSB3b3Jr
ZWQgb3V0IGluIENvTUkgYWxzby4gSW5zdGVhZCBvZiBmdWxsbmFtZSB5b3UgY291bGQgcHJvdmlk
ZSB0aGUgWUFORyBpZCAobW9kdWxlIElEICsgZGF0YSBub2RlIElEKSBhbmQgZG8gdGhlIG1hcHBp
bmcuIFVzZXIgYWxpYXMgd291bGQgYmUgdGhlIHNwZWNpYWwgYWxpYXNlZCBZQU5HIGlkLiBVc2Vy
IElELCBob3dldmVyLCBjb3VsZCBiZSBhIGxpdHRsZSBiaXQgbW9yZSB0cmlja3kgLSBob3cgZG8g
d2UgZW5zdXJlIHRoYXQgaXQgaXMgY29uc2lzdGVudD8gVXNlIHRoZSBJUCBhZGRyZXNzIG9mIHRo
ZSBjbGllbnQgY291bGQgYmUgZG9hYmxlLCBidXQgd2XigJlsbCBoYXZlIHRvIGluY2x1ZGUgdGhl
IFVEUCBwb3J0IGp1c3QgaW4gY2FzZSBzb21lb25lIHJ1bnMgdHdvIGNsaWVudHMgb24gdGhlIHNh
bWUgbWFjaGluZS4NCg0KDQoNCkFmdGVyIHRoYXQsICBpZiB0aGUgc2VydmVyIGlzIGEgY29uc3Ry
YWluZWQgZGV2aWNlIHRoZW4gdGhlIHVzZXIgdGFsa3MgdG8gdGhlIHNlcnZlciB3aXRoIChzZXJ2
ZXJpZCwgc2VydmVyYWxpYXMpIGFuZCB0aGUgdXNlciBtYWludGFpbnMgYSBzd2l0Y2hpbmcgdGFi
bGUgZm9yIHRoZSByZXNvdXJjZSBpdCB1c2VzIG9uIHZhcmlvdXMgc2VydmVycy4NCklmIHRoZSB1
c2VyIGlzIHRoZSBjb25zdHJhaW5lZCBkZXZpY2UgYW5kIHRoZSBzZXJ2ZXIgaXMgbm90LCB0aGUg
dXNlciBjb3VsZCB0YWxrIHdpdGggKHVzZXJpZCwgdXNlcmFsaWFzKSBhbmQgdGhlIHNlcnZlciBt
YWludGFpbnMgYSBzd2l0Y2hpbmcgdGFibGUuDQoNCkZvciBsYXJnZSBzZXJ2ZXJzLCB0aGUgc2Vy
dmVyIG1heSBhbGxvY2F0ZSBhbGlhc2VzIGR5bmFtaWNhbGx5IGJhc2VkIG9uIHdoYXQgaXQgaXMg
YmVpbmcgYXNrZWQuIFdl4oCZZCB0aGVuIG5lZWQgdG8gdGFsayBhYm91dCBhbGlhcyB1cGRhdGUg
b3IgcmV2b2NhdGlvbiwgcHJvYmFibHkgaW4gdGVybXMgb2Ygc2Vzc2lvbiBhbmQgbGlmZXRpbWUu
DQoNCkRvZXMgdGhhdCBsb29rIHVzYWJsZT8NCg0KWW91IGFyZSBwb2ludGluZyBvdXQgYW4gaW50
ZXJlc3RpbmcgcXVlc3Rpb24uIEkgd291bGQgdGhpbmsgKGJ1dCBtYXliZSBJ4oCZbSBtaXN0YWtl
biksIHRoYXQgdGhlIGNsaWVudCBzaG91bGQgaGF2ZSB0aGUgbGVhZGluZyByb2xlIGluIGZpZ3Vy
aW5nIG91dCB3aGF04oCZcyBoYXBwZW5pbmcuIFRoZSBpZGVhIGlzIHRoZSBmb2xsb3dpbmc6DQoN
ClRoZSBjbGllbnQgY2hlY2tzIGlmIHRoZSBzZXJ2ZXIgc3VwcG9ydHMgYWxpYXNpbmcsIHdpdGgg
dGhlIHBvc3NpYmxlIG9wdGlvbnM6DQpTMSkgbm8gYWxpYXNpbmcNClMyKSBzdGF0aWMvc2VydmVy
LWRlZmluZWQgYWxpYXNpbmcNClMzKSBkeW5hbWljL3NpbmdsZSBhbGlhcyBtYXBwaW5nDQogIFMz
LjEpIG1hcHBpbmcgYWxyZWFkeSBkZWZpbmVkDQogIFMzLjIpIG5vIG1hcHBpbmcgZGVmaW5lZA0K
UzQpIGR5bmFtaWMvcGVyIGNsaWVudCBhbGlhcyBtYXBwaW5nDQoNClRoZW4sIHRoZSBjbGllbnQg
Y2FuIHRha2UgYWN0aW9uLCBkZXBlbmRpbmcgb24gaXRzIG93biBjYXBhYmlsaXRpZXMgYW5kIHRo
ZSByZXNwb25zZSBvZiB0aGUgc2VydmVyLiBFLmcuIGEgdW5jb25zdHJhaW5lZCBjbGllbnQgY291
bGQgb2J0YWluIHRoZSBhbGlhcyBtYXBwaW5nIGlmIGl0IGlzIHN0YXRpYyAob3IgaWYgdGhlcmUg
aXMgYSBzaW5nbGUgYWxpYXMgbWFwcGluZyBpbiBwbGFjZSkgYW5kIGNhY2hlIGl0IGxvY2FsbHku
IFNvLCB0aGVyZSB3aWxsIGJlIHRoZSBmb2xsb3dpbmcgY29ycmVzcG9uZGVuY2UgOg0KDQpHaXZl
bjoNCkMxKSBjb25zdHJhaW5lZCBjbGllbnQNCkMyKSB1bmNvbnN0cmFpbmVkIGNsaWVudA0KDQpX
ZSBoYXZlOg0KQzEgKyBTMSkgbm8gYWxpYXNpbmcsIG5vdGhpbmcgdG8gZG8NCkMxICsgUzIpIGFu
ZCBDMSArIFMzLjEpIGlmIHRoZSBhbGlhcyBtYXBwaW5nIGlzIGtub3duLCB1c2UgaXQuIG90aGVy
d2lzZSwgaWdub3JlDQpDMSArIFMzLjIpIGFuZCBDMSArIFM0KSBkZWZpbmUgYWxpYXMgbWFwcGlu
Zw0KDQpDMiArIFMxKSBubyBhbGlhc2luZywgbm90aGluZyB0byBkbw0KQzIgKyBTMikgYW5kIEMy
ICsgUzMuMSkgaWYgdGhlIGFsaWFzIG1hcHBpbmcgaXMga25vd24sIHVzZSBpdC4gb3RoZXJ3aXNl
LCBsZWFybiBpdA0KQzIgKyBTMy4yKSBhbmQgQzIgKyBTNCkgZGVmaW5lIGFsaWFzIG1hcHBpbmcN
Cg0KSSB3b3VsZCBzYXkgdGhhdCB0aGUgYW5hbG9neSB5b3UgbWFkZSB3aXRoIE1QTFMgY29ycmVz
cG9uZHMgcXVpdGUgYSBsb3QgdG8gdGhlIEMyK1M0IGNhc2UuIFBlcnNvbmFsbHksIEkgd291bGQg
YmUgbW9zdCBpbnRlcmVzdGVkIGludG8gaGF2aW5nIG9uZSBjbGllbnQgY29uZmlndXJlIG9uZSBh
bGlhcyBtYXBwaW5nIHRvIGFsbCBzZXJ2ZXJzIGluIHRoZSBuZXR3b3JrIChlLmcuIHRoZSBtYW5h
Z2luZyBlbnRpdHkpLCB3aGljaCB3aWxsIHByb2ZpdCBtb3N0IGZyb20gc2F2aW5nIHNldmVyYWwg
Ynl0ZXMgb24gZWFjaCBtZXNzYWdlIGV4Y2hhbmdlLiBFdmVyeW9uZSBlbHNlIGNvdWxkIHVzZSB0
aGUgc3RhbmRhcmQgSURzLCB3aGljaCB3ZeKAmXZlIGFscmVhZHkgbWFuYWdlZCB0byBzaHJpbmsg
c2lnbmlmaWNhbnRseS4NCg0KSW5kZWVkLCB3aXRoIHN0cnVjdHVyZWQgbW9kdWxlIElEICsgZGF0
YSBub2RlIElEICgyMCBiaXRzICsgMTAgYml0cyksIFlBTkcgVVJJIGNvbXByZXNzaW9uLCBhbmQg
bG9uZyBmb3JtL3Nob3J0IGZvcm0sIHdl4oCZbGwgaGF2ZSBxdWl0ZSBhIGxvdCBvZiBnYWluLiBS
ZXNlcnZpbmcgbW9kdWxlIElEID0gMSBmb3IgYWxpYXNlcyBhbmQgbWF5YmUgd3JpdGluZyBhIHNo
b3J0IGRyYWZ0IG9uIGhvdyB0aGUgYWxpYXNpbmcgaXMgaW1wbGVtZW50ZWQgc2VlbXMgZmVhc2li
bGUsIHdoZXJlIHdlIGNhbiBjb3ZlciB0aGUgZXhhY3QgbWVjaGFuaXNtIG9mIGFsaWFzIGRlZmlu
aXRpb24sIGFuZCBjbGllbnQvc2VydmVyIGludGVyYWN0aW9uLg0KDQpBbGV4YW5kZXINCg0KDQpQ
YXNjYWwNCg0KRnJvbTogNnRpc2NoIFttYWlsdG86NnRpc2NoLWJvdW5jZXNAaWV0Zi5vcmddIE9u
IEJlaGFsZiBPZiBBbmR5IEJpZXJtYW4NClNlbnQ6IHZlbmRyZWRpIDUganVpbiAyMDE1IDIwOjU1
DQpUbzogTWljaGVsIFZlaWxsZXR0ZQ0KQ2M6IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2No
QGlldGYub3JnPjsgQWxleGFuZGVyIFBlbG92OyBjb3JlQGlldGYub3JnPG1haWx0bzpjb3JlQGll
dGYub3JnPg0KU3ViamVjdDogUmU6IFs2dGlzY2hdIFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXMN
Cg0KDQoNCk9uIEZyaSwgSnVuIDUsIDIwMTUgYXQgMTE6NDEgQU0sIE1pY2hlbCBWZWlsbGV0dGUg
PE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86TWljaGVsLlZlaWxsZXR0
ZUB0cmlsbGlhbnRpbmMuY29tPj4gd3JvdGU6DQpIaSBBbGV4YW5kZXINCg0KSSBoYXZlIHNvbWUg
Y29uY2VybnMgYWJvdXQgYWxsb3dpbmcgQ29NSSBjbGllbnQocykgdGhlIGNvbnRyb2wgb2YgdGhl
IGxpc3Qgb2YgYWxpYXNlcy4NClRoaXMgYXBwcm9hY2ggd29yayBmaW5lIGZvciB0aGUgZmlyc3Qg
Q29NSSBhcHBsaWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1dCB3aGF0IGRvIHdlIGRvIHdpdGggdGhl
IHN1YnNlcXVlbnQgQ29NSSBhcHBsaWNhdGlvbj8NCg0KT25lIHBvc3NpYmxlIHNvbHV0aW9uIGlz
IHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5kIGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJ
RCkgdG8gdGhlIENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIHRoZSBDb01JIGNsaWVudCBtaWdo
dCByZWNlaXZlIGFuIGVycm9yIGlmIG9uZSBvciBtdWx0aXBsZSBvZiB0aGVzZSBhbGlhc2VzIGFy
ZSBhbHJlYWR5IHJlc2VydmVkLg0KDQpBIHNlY29uZCBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0aGF0
IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGRhdGEgbm9kZSBJRCkgYW5kIGdldCBh
IGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5vZGUgSUQpIGZyb20gdGhlIENvTUkgc2VydmVyLiBJbiB0
aGlzIGNhc2UsIENvTUkgY2xpZW50cyB3aWxsIGhhdmUgdG8gZGVhbCB3aXRoIGEgbWl4IHBvcHVs
YXRpb24gb2YgYWxpYXNlcy4NCg0KVGhlIHByb3Bvc2VkIHNvbHV0aW9uIG5lZWQgdG8gc2NhbGUg
dG8gYSBtdWx0aS12ZW5kb3JzLCBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgZW52aXJvbm1lbnQuDQpX
aXRoIHRoaXMgaXMgbWluZCwgZG8geW91IGhhdmUgYW55IGFsdGVybmF0aXZlIHNvbHV0aW9ucyB0
byBwcm9wb3NlPw0KDQoNCg0KRG9lcyB0aGlzIGFwcHJvYWNoIGFsbG93IGVhY2ggY2xpZW50IHRv
IGhhdmUgYSBkaWZmZXJlbnQgc2V0IG9mIGFsaWFzZXMsDQpzbyB0aGUgc2VydmVyIGhhcyB0byBt
YWludGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGluZyBmb3IgZWFjaCBjbGllbnQ/DQpUaGlzIHNlZW1z
IGxpa2UgYSBsb3Qgb2Ygb3ZlcmhlYWQgYW5kIE5WLXN0b3JhZ2UgcmVxdWlyZW1lbnRzDQpvbiB0
aGUgc2VydmVyLg0KDQpDaGFuZ2luZyB0aGUgc2NoZW1hIGlkZW50aWZpZXJzIGJhc2VkIG9uIHdo
aWNoIGNsaWVudCBpcw0Kc2VuZGluZyB0aGUgcmVxdWVzdCBzZWVtcyBsaWtlIGEgY29tcGxpY2F0
ZWQgZGVzaWduIGNoYW5nZQ0KZnJvbSBSRVNUQ09ORiwgTkVUQ09ORiwgb3IgU05NUCwgd2hlcmUg
dGhlcmUgaXMgb25seQ0KMSBzY2hlbWEgdHJlZSB3aGljaCBpcyBub3QgZGVwZW5kZW50IG9uIHRo
ZSBjbGllbnQgaWRlbnRpdHkuDQoNCg0KQW5keQ0KDQoNCg0KDQo8aW1hZ2UwMDEuanBnPg0KDQpN
aWNoZWwgVmVpbGxldHRlDQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQg
SW5jLg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxp
YW50aW5jLmNvbTxtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0Kd3d3
LnRyaWxsaWFudGluYy5jb208aHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoNCkZy
b206IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRh
Z25lLmV1PG1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldT5dDQpTZW50
OiA1IGp1aW4gMjAxNSAxMjowMw0KVG86IE1pY2hlbCBWZWlsbGV0dGUNCkNjOiBBbmR5IEJpZXJt
YW47IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgY29yZUBpZXRmLm9y
ZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBSZXNlcnZlIHNwYWNlIGZvciBh
bGlhc2VzDQoNCkhpIE1pY2hlbCwNCg0KDQpMZSA1IGp1aW4gMjAxNSDDoCAxNzoxNywgTWljaGVs
IFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpNaWNo
ZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+PiBhIMOpY3JpdCA6DQoNCkhpIEFsZXhhbmRl
cg0KDQpJbiB5b3VyIHByZXNlbnRhdGlvbiBhdCA2VGlTQ0gsIHlvdSBwcm9wb3NlIHRoZSBmb2xs
b3dpbmcgZGF0YSBub2RlIElEIHN0cnVjdHVyZS4NCg0K4oCiICAgICAgIDMyIGJpdHMgWUFORyBJ
RA0K4oCTICAgICAgMjAgYml0cyBmb3IgbW9kdWxlIElEIChhc3NpZ25lZCBieSBJRVRGKQ0K4oCT
ICAgICAgMTAgYml0cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0ZWQgZGV0ZXJtaW5pc3RpY2Fs
bHkpDQoNCg0KQmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNhbiByZXNlcnZlIG1vZHVsZSBJ
RCB6ZXJvIGZvciBhbGlhc2VzLg0KDQoNCkkgd2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3YXMg
ZGlzY3Vzc2VkIG9uIHRoZSBkaXNjdXNzaW9uIGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAzMCBi
aXRzIFlBTkcgSUQsIGJ1dCB0aGF04oCZcyBmb3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVudCB3
aXRoIHRoZSBZQU5HIGhhc2ggYW5kIEkgZG9u4oCZdCBtaW5kIGtlZXBpbmcgaXQgMzAgYml0cy4N
Cg0KDQpJZiB3ZSB3YW50IHRvIG1pbmltaXplIGJvdGggdGhlIG5ldHdvcmsgYW4gbm9kZSByZXNv
dXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFzIG1lY2hhbmlzbSwgd2UgY2FuIG1hcCBhbiBlbnRp
cmUgbW9kdWxlIHRvIHRoaXMgc3BhY2UuDQpUaGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBieSBhIHNp
bmdsZSBpbnRlZ2VyIHJlc291cmNlIChlLmcuIGxlYWYgYWxsaWFzc2VkTW9kdWxlIHsgdHlwZSB1
aW50MzIgfSApDQpUaGlzIGFwcHJvYWNoIHJlcXVpcmUgNCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIg
YWNjZXNzZWQuDQoNCg0KSXQgaXMgcG9zc2libGUgdG8gbWFwIGFuIGVudGlyZSBtb2R1bGUgdG8g
dGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlzIGlzIHVwIHRvIHRoZSBvcGVyYXRvci4gSG93ZXZlciwg
aWYgeW91IGxvYWQgdHdvIG1vZHVsZXMgd2hpY2ggcmVkZWZpbmUgdGhlIHNhbWUgYWxpYXMgeW91
IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQgZnJvbSBpdC4gTWF5YmUgaXQgd291bGQgYmUgaW50ZXJl
c3RpbmcgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMgZnJv
bSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLg0KDQpJZiB0aGUgL21nLzAgYWxpYXMg
aXMgcmVzZXJ2ZWQgZm9yIG1hbmFnaW5nIHRoZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNpbXBs
eSBzYXlpbmc6DQpQT1NUIC9tZy8wDQp7DQogInNvdXJjZV91cmkiIDogIi9tZy9CQUEiDQp9DQoN
CndoZXJlIC9tZy9CQUEgaXMgdGhlIFlBTkcgaWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBtb2R1
bGUgSUQgKyAxMCBiaXRzIHNldCB0byAwKS4gVGhpcyB3YXksIHRoZSBzZXJ2ZXIgd2lsbCBrbm93
OiBPSywgZ2V0IHRoZSBhbGlhcyBtYXBwaW5nIGZyb20gdGhlIFlBTkcgc2NoZW1lIG9mIG1vZHVs
ZSB3aXRoIElEID0gQiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURikuDQoNCk9yLCB5b3UgY2FuIGR5
bmFtaWNhbGx5IGNvbmZpZ3VyZSB0aGUgbWFwcGluZzoNClBPU1QgL21nLzANCnsNCiAgWUFOR19p
ZCA6IGFsaWFzLA0KICBZQU5HX2lkIDogYWxpYXMsDQogIFlBTkdfaWQgOiBhbGlhcw0KfQ0KDQpJ
ZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhpYmxlIGFsaWFzZXMgbWVjaGFu
aXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5HIElEKSBzZWVtIHRoZSBzb2x1
dGlvbi4NCkhvd2V2ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVyZSBj
YW4gYmUgYXMgbGFyZ2UgYXMgMTI1MCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQgaWYg
bGltaXRlZCB0byAyNTYgYWxpYXNlcy4NCg0KVGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBhIHNl
cGFyYXRlIG1hcHBpbmcgZm9yIGVhY2ggc2VydmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBpbiBh
IG5ldHdvcmsgeW914oCZbGwgaGF2ZSBhIHNpbmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0d28/
KSAtIGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5aW5nIHRvIG9wdGltaXplIHRoZSBtYW5hZ2VtZW50
IG9mIHlvdXIgZGV2aWNlcyAoc2VydmVycykuIFNvLCB0eXBpY2FsbHkgeW914oCZZCBtYXAgYWxs
IDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMuKSBh
bmQgdXNlIHRoYXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0aGUg
ZnVsbCBJRC4NCg0KQmVzdCwNCkFsZXhhbmRlcg0KDQoNCjxpbWFnZTAwMS5qcGc+DQoNCk1pY2hl
bCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMu
DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRp
bmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJp
bGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg==

--_000_E045AECD98228444A58C61C200AE1BD849E9998Dxmbrcdx01ciscoc_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7
fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQg
MyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5N
c29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4w
MDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFu
Iiwic2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9y
aXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZp
c2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAuTXNvQWNl
dGF0ZSwgbGkuTXNvQWNldGF0ZSwgZGl2Lk1zb0FjZXRhdGUNCgl7bXNvLXN0eWxlLXByaW9yaXR5
Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBjbTsN
CgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjguMHB0Ow0KCWZvbnQtZmFtaWx5
OiJUYWhvbWEiLCJzYW5zLXNlcmlmIjt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgsIGxpLk1zb0xpc3RQ
YXJhZ3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1wcmlvcml0eTozNDsN
CgltYXJnaW4tdG9wOjBjbTsNCgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1hcmdpbi1ib3R0b206MGNt
Ow0KCW1hcmdpbi1sZWZ0OjM2LjBwdDsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1z
aXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiO30NCnNw
YW4uYXBwbGUtY29udmVydGVkLXNwYWNlDQoJe21zby1zdHlsZS1uYW1lOmFwcGxlLWNvbnZlcnRl
ZC1zcGFjZTt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsN
Cglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0K
c3Bhbi5FbWFpbFN0eWxlMjANCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9u
dC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgljb2xvcjojMUY0OTdEO30NCnNwYW4u
QmFsbG9vblRleHRDaGFyDQoJe21zby1zdHlsZS1uYW1lOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJ
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQiOw0K
CWZvbnQtZmFtaWx5OiJUYWhvbWEiLCJzYW5zLXNlcmlmIjt9DQouTXNvQ2hwRGVmYXVsdA0KCXtt
c28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LXNpemU6MTAuMHB0O30NCkBwYWdlIFdv
cmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBw
dCA3Mi4wcHQgNzIuMHB0O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7
fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMg
djpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lm
IGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFw
IHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlm
XS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJw
bGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5IZWxsbyBNaWNoZWw6PG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj5J4oCZbSBub3Qgc28gd29ycmllZCBmb3IgNlRpU0NI4oCZcyBJRCB0aGFuIGZvciB0
aGUgSURzIHVzZWQgdG8gY29sbGVjdCBkYXRhIGZyb20gc2Vuc29ycy4gQmVjYXVzZSB0aGF0IGlz
IHRoZSBvcGVyYXRpb24gdGhhdCB3aWxsIGhhcHBlbiBhbGwgdGhlIHRpbWUgYW4gc3VjayBiYXR0
ZXJpZXMuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkkgdW5kZXJzdGFuZCB0aGF0IGFu
eSBzZW5zb3IgdmVuZG9yIHdpbGwgd2FudCB0byBoYXZlIGl0cyBvd24gbW9kdWxlIElEcywgY29y
cmVjdD8gQW5kIHNvb24gZW5vdWdoIHRoYXQgdmVuZG9yIHdpbGwgY29tZSB3aXRoIHZhcmlhbnRz
IG9mIGhpcyBwcm9kdWN0cywgYW5kDQogd2lsbCB3YW50IG1vcmUgbW9kdWxlIElEcywgaXMgdGhh
dCByaWdodD88bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPklmIEnigJltIGNvcnJlY3QsIHRoaXMgcGxlYWRzIGZvciBhbGlh
c2VzOyBidXQgbWF5YmUgbm90IGFzIHdlIHRob3VnaHQgdGhlbS4gSSBoYXZlIG1pc3NlZCB0aGUg
dHJpY2sgb2YgNjMgbW9kdWxlIElEcyB0aGF0IGFyZSBvcHRpbWFsbHkgZW5jb2RlZCwgYnV0IEkg
dHJ1c3QNCiB5b3Ugb24gdGhhdCDigJMgSSBmaWd1cmUgdGhhdCBpdCBpcyBiZWNhdXNlIGl0IHRh
a2VzIDIgYml0cyB0byBlbmNvZGVkIHRoZSBjb2FwIG9wdGlvbj88bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPklmIHNvOiBt
YXliZSB3ZSBzaG91bGQgYWxpYXMgdGhlIG1vZHVsZSBJRHMgc28gdGhhdCB0aGUgNjMgSURzIHRo
YXQgYmVuZWZpdCBmcm9tIHRoZSBvcHRpbWFsIGNib3IgY29tcHJlc3Npb24gc2hvdWxkIGJlIHRo
ZSBhbGlhc2VzIG9mIGFueSBvZiB0aGUgdGhvdXNhbmRzDQogb2YgSURzIHRoYXQgd2lsbCBzb29u
IGV4aXN0IGluIHRoZSByZWdpc3RyaWVzLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+QWxzbyBub3RlIHRoYXQgZGV2aWNl
IG1ha2VycyB3aWxsIHdhbnQgdGhlIHZlbmRvciBzcGVjaWZpYyByYW5nZSB0aGF0IHRoZXkgdXNl
IHRvIHBsYXkgd2l0aCBiZWZvcmUgc29tZXRoaW5nIGlzIHJlZ2lzdGVyZWQuIEFsaWFzZXMgY291
bGQgYWxzbyBiZSBhIHdheSB0byBwbGF5DQogd2l0aCBtb2R1bGUgSURzIHRoYXQgaGF2ZSBub3Qg
eWV0IGJlZW4gcmVnaXN0ZXJlZCB0byBJQU5BLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPknigJltIG5vdCBz
dXJlIHRoZSBhYm92ZSBtYWtlcyBzZW5zZSBzaW5jZSBpdCBpcyBiYXNlZCBvbiBhIHBhcnRpYWwg
dW5kZXJzdGFuZGluZyBvZiB5b3VyIHdvcmsgc28gZmFy4oCmPC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3
RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRlIiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5QYXNjYWw8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwv
c3Bhbj48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVl
IDEuNXB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJv
cmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBj
bSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiBNaWNo
ZWwgVmVpbGxldHRlIFttYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tXQ0K
PGJyPg0KPGI+U2VudDo8L2I+IHZlbmRyZWRpIDEyIGp1aW4gMjAxNSAwOTo1ODxicj4NCjxiPlRv
OjwvYj4gQWxleGFuZGVyIFBlbG92OyBQYXNjYWwgVGh1YmVydCAocHRodWJlcnQpPGJyPg0KPGI+
Q2M6PC9iPiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzsgY29yZUBpZXRmLm9yZzxicj4N
CjxiPlN1YmplY3Q6PC9iPiBSRTogWzZ0aXNjaF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+SGkgQWxleGFuZGVy
LCBoaSBQYXNjYWw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh
bmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+SSB3YW50IHRv
IGVtcGhhc2VzIHRoZSBmb2xsb3dpbmcgcG9pbnRzPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0xOC4wcHQiPjxzcGFuIGxhbmc9
IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpTeW1ib2w7Y29sb3I6
IzFGNDk3RCI+wrc8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6Ny4w
cHQ7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj5UaGUgdXNlIG9mIHRoZSBzZWxlY3QgcXVlcnkgcGFyYW1ldGVyIGVu
Y29kZWQgaW4gQ0JPUiBzdXBwb3J0IG9mIDYzIG1vZHVsZXMgd2l0aCBvcHRpbWl6ZWQgbWVzc2Fn
ZSBzaXplIGluc3RlYWQgb2Ygb25seSAzIGZvciB0aGUgYmFzZTY0IFVSSS48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gbGFuZz0iRU4tQ0Ei
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5JZiB0aGUgNlRpU0NIIG1vZHVs
ZSBJRCBpcyBhbGxvY2F0ZWQgd2l0aGluIHRoZXNlIDYzIElEcywgdGhlcmUgd2lsbCBiZSBubyBt
ZXNzYWdlIHNpemUgb3B0aW1pemF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBhbGlhc2VzIG1lY2hhbmlz
bS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNw
YW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5UaGlz
IG1ha2UgdGhlIGludHJvZHVjdGlvbiBvZiBhbGlhc2VzIGxlc3MgdXJnZW50LjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1D
QSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRl
bnQ6LTE4LjBwdCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj7Ctzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1D
QSIgc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdDtjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1D
QSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRoZSBtZXNzYWdlIHNpemUg
b2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBpbiBDQk9SIHNob3VsZCBiZSBl
cXVhbCBvciBzbWFsbGVyIGNvbXBhcmVkIHRvIHRoZSBiYXNlNjQgVVJJLjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1DQSIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkhvd2V2ZXIsIHRoZSBzZWxlY3Qg
cXVlcnkgcGFyYW1ldGVyIGVuY29kZWQgaW4gQ0JPUiBzdXBwb3J0IGEgd2lkZXIgcmFuZ2Ugb2Yg
dmFsdWVzIHdpdGhvdXQgc2l6ZSBwZW5hbHR5ICgxNiBiaXRzIGluc3RlYWQgb2YgMTIsIDMyIGJp
dHMNCiBpbnN0ZWFkIG9mIDMwKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29M
aXN0UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2Nv
bG9yOiMxRjQ5N0QiPkZ1cnRoZXJtb3JlLCBDb01JIGRldmljZXMgd29u4oCZdCBoYXZlIHRvIHN1
cHBvcnQgdHdvIHR5cGUgb2YgZW5jb2RpbmcgZGVwZW5kaW5nIGlmIElEcyBhcmUgcGFydCBvZiB0
aGUgY29tbWFuZCB2cy4gcGF5bG9hZC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj5Gb3IgZXhhbXBsZTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjojMUY0OTdEIj5Bc3N1bWluZyBtb2R1bGUgSUQgMjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1DQSIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkFzc3VtaW5nIGRhdGEgbm9kZSBJ
RCAxLCAyLCAzLCA0IChsb25nIGZvcm0gMjA0OSwgMjA1MCwgMjA1MSk8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5Bc3N1bWluZyDigJws4oCdIHNlcGFy
YXRvciB0byBzZWxlY3QgbXVsdGlwbGUgZGF0YSBub2RlczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkJhc2U2NCBhcHByb2FjaDo8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gbGFuZz0iRU4tQ0Ei
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5SRVE6IEdFVCBleGFtcGxlLmNv
bS9tZy9nQiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAo
MyBieXRlczsgMSBieXRlIGZvciB0aGUg4oCcL+KAnSwgMiBieXRlcyBmb3Ig4oCcZ0LigJ0pPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIGxh
bmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIGxh
bmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Q0JPUiBhcHBy
b2FjaDo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+
PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5S
RVE6IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3QoMjA0OSkmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKDQgYnl0ZXM7IG9uZSBieXRlIGZvciB0aGUgQ29B
UCBvcHRpb24sIDMgZm9yIDIwNDkgZW5jb2RlZCB1c2luZyBDQk9SKTxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkJhc2U2NCBhcHByb2FjaDo8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gbGFuZz0i
RU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5SRVE6IEdFVCBleGFt
cGxlLmNvbS9tZy9nQixDLEQsRSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyAoOSBieXRlczsgMSBieXRlIGZvciB0aGUg4oCcL+KAnSwgOCBieXRlcyBmb3Ig
4oCcZ0IsQyxELEXigJ0pPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFw
aCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij5DQk9SIGFwcHJvYWNoOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0
UGFyYWdyYXBoIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPlJFUTogR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdCggWzIwNDksMiwzLDRdICkm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKDggYnl0ZXM7IDEgYnl0ZSBmb3IgdGhlIENv
QVAgb3B0aW9uLCAxIGZvciB0aGUgQ0JPUiBhcnJheSwgMyYjNDM7MSYjNDM7MSYjNDM7MSBieXRl
cyBmb3IgdGhlIElEcyk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0Qi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFi
bGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iODk2
IiBzdHlsZT0id2lkdGg6NTM3Ljc1cHQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIj4NCjx0Ym9k
eT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1cHQiPg0KPHRkIHdpZHRoPSIxNzIiIHN0eWxlPSJ3
aWR0aDoxMDMuMXB0O2JvcmRlcjpub25lO2JvcmRlci1yaWdodDpzb2xpZCB3aW5kb3d0ZXh0IDEu
MHB0O3BhZGRpbmc6MGNtIDUuNHB0IDBjbSA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+
PGltZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjIyIiBpZD0iUGljdHVyZV94MDAyMF8yIiBzcmM9ImNp
ZDppbWFnZTAwMS5qcGdAMDFEMEE1M0IuMUVDRUQ3QjAiIGFsdD0iY2lkOmltYWdlMDAxLmpwZ0Aw
MUM4NjhEOC5CRjBCQjdFMCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC90ZD4NCjx0ZCB3aWR0
aD0iNzI0IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQzNC42NXB0O3BhZGRpbmc6MGNtIDUu
NHB0IDBjbSA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0
OTdEIj5NaWNoZWwgVmVpbGxldHRlPGJyPg0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcjwv
c3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD48L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Ojgu
MXB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFs
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+VHJpbGxpYW50IElu
Yy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNzxicj4NCjxhIGhyZWY9Im1haWx0bzpt
aWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20iPjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2
M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo4
LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxhIGhyZWY9
Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+
d3d3LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7Y29sb3I6IzFGNDk3RCI+DQogJm5ic3A7IDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC90ZD4NCjwv
dHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXIt
dG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkZyb206PC9z
cGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiBBbGV4YW5kZXIgUGVsb3YgWzxh
IGhyZWY9Im1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVsZWNvbS1icmV0YWduZS5ldSI+bWFpbHRv
OmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1PC9hPl0NCjxicj4NCjxiPlNlbnQ6
PC9iPiAxMSBqdWluIDIwMTUgMTc6MDY8YnI+DQo8Yj5Ubzo8L2I+IFBhc2NhbCBUaHViZXJ0IChw
dGh1YmVydCk8YnI+DQo8Yj5DYzo8L2I+IEFuZHkgQmllcm1hbjsgTWljaGVsIFZlaWxsZXR0ZTsg
PGEgaHJlZj0ibWFpbHRvOjZ0aXNjaEBpZXRmLm9yZyI+NnRpc2NoQGlldGYub3JnPC9hPjsNCjxh
IGhyZWY9Im1haWx0bzpjb3JlQGlldGYub3JnIj5jb3JlQGlldGYub3JnPC9hPjxicj4NCjxiPlN1
YmplY3Q6PC9iPiBSZTogWzZ0aXNjaF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBsYW5nPSJFTi1DQSI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5IaSBQYXNjYWwsPG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1D
QSI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxibG9ja3F1b3RlIHN0eWxl
PSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5MZSAxMCBqdWluIDIwMTUgw6AgMTU6MjUs
IFBhc2NhbCBUaHViZXJ0IChwdGh1YmVydCkgJmx0OzxhIGhyZWY9Im1haWx0bzpwdGh1YmVydEBj
aXNjby5jb20iPnB0aHViZXJ0QGNpc2NvLmNvbTwvYT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LUNBIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+RGVhciBhbGw6PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwv
c3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5UaGlzIGxvb2tzIGxpa2UgdGhlIHByb2JsZW0gb2Yg
bG9jYWwgbmFtZXNwYWNlcywmbmJzcDsgd2hpY2ggaXMgdGhlIHJlYXNvbiB3aHkgTVBMUyBzd2l0
Y2hlcyBsYWJlbHMuPC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1D
QSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRoZSB1c2VyIG1heSBhY2Nl
c3MgYSBsaW1pdGVkIHNldCBvZiByZXNvdXJjZXMgZnJvbSBhIG51bWJlciBvZiBzZXJ2ZXJzLCBh
bmQgc2VydmVycyBhcmUgcmVhZCBieSBtYW55IHVzZXJzLjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1D
QSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0
OTdEIj5Zb3UgY2Fubm90IGVuc3VyZSB0aGF0IHlvdSBoYXZlIGEgc2luZ2xlIGFsaWFzIHNwYWNl
IHRoYXQgc2F0aXNmaWVzIHRoZW0gYWxsLjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tQ0EiPkdyZWF0IGFuYWxvZ3khIEFuZCB5ZXMsIHNhZGx5IHlvdSBjYW5ub3Qgc2F0aXNm
eSB0aGVtIGFsbCwgYXQgbGVhc3Qgbm90IHdpdGggYWxsIGRldmljZXMuPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRv
bToxMi4wcHQiPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+
DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0
Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0Ei
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PHNwYW4g
bGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+U28gLHdoYXQgaWYgdGhlIHVzZXIgaGFkIGl0cyBvd24gc2V0IG9mIGFs
aWFzZXMgYW5kIHRoZSBzZXJ2ZXIgYWxzbyBoYWQgaXRzIG93biBzZXQgb2YgYWxpYXNlcz88L3Nw
YW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0Qi
PlRoZSBhbGlhc2VzIGNvdWxkIGJlIG1hcHBlZCBpbiBhIHRhYmxlIGxpa2UgYSB1U0FQIGFuZCBh
IHBTQVAgYXJlIG1hcHBlZCBhY3Jvc3MgbGF5ZXJzLiBCcm9hZGx5Ojwvc3Bhbj48c3BhbiBsYW5n
PSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xv
cjojMUY0OTdEIj4tIEZpcnN0IHRpbWUgYSB1c2VyIHJlcXVlc3RzIGEgcmVzb3VyY2UgaW4gYSBz
ZXJ2ZXIsIGl0IGNvbWVzIHdpdGggYSB0dXBsZSAodXNlcmlkLCB1c2VyYWxpYXMsIGZ1bGxuYW1l
KTwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4tIFRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCAo
c2VydmVyaWQsIHNlcnZlcmFsaWFzLCB1c2VyaWQsIHVzZXIgYWxpYXMpLjwvc3Bhbj48c3BhbiBs
YW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxv
Y2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPkFjdHVhbGx5LCBJIHRoaW5rIHRoYXQgdGhpcyBj
b3VsZCBiZSB3b3JrZWQgb3V0IGluIENvTUkgYWxzby4gSW5zdGVhZCBvZiBmdWxsbmFtZSB5b3Ug
Y291bGQgcHJvdmlkZSB0aGUgWUFORyBpZCAobW9kdWxlIElEICYjNDM7IGRhdGEgbm9kZSBJRCkg
YW5kIGRvIHRoZSBtYXBwaW5nLiBVc2VyIGFsaWFzIHdvdWxkIGJlIHRoZSBzcGVjaWFsIGFsaWFz
ZWQgWUFORyBpZC4gVXNlciBJRCwNCiBob3dldmVyLCBjb3VsZCBiZSBhIGxpdHRsZSBiaXQgbW9y
ZSB0cmlja3kgLSBob3cgZG8gd2UgZW5zdXJlIHRoYXQgaXQgaXMgY29uc2lzdGVudD8gVXNlIHRo
ZSBJUCBhZGRyZXNzIG9mIHRoZSBjbGllbnQgY291bGQgYmUgZG9hYmxlLCBidXQgd2XigJlsbCBo
YXZlIHRvIGluY2x1ZGUgdGhlIFVEUCBwb3J0IGp1c3QgaW4gY2FzZSBzb21lb25lIHJ1bnMgdHdv
IGNsaWVudHMgb24gdGhlIHNhbWUgbWFjaGluZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJn
aW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJz
cDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+QWZ0ZXIgdGhhdCwmbmJzcDsgaWYgdGhlIHNl
cnZlciBpcyBhIGNvbnN0cmFpbmVkIGRldmljZSB0aGVuIHRoZSB1c2VyIHRhbGtzIHRvIHRoZSBz
ZXJ2ZXIgd2l0aCAoc2VydmVyaWQsIHNlcnZlcmFsaWFzKSBhbmQgdGhlIHVzZXIgbWFpbnRhaW5z
IGEgc3dpdGNoaW5nDQogdGFibGUgZm9yIHRoZSByZXNvdXJjZSBpdCB1c2VzIG9uIHZhcmlvdXMg
c2VydmVycy48L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+SWYgdGhlIHVzZXIgaXMgdGhlIGNv
bnN0cmFpbmVkIGRldmljZSBhbmQgdGhlIHNlcnZlciBpcyBub3QsIHRoZSB1c2VyIGNvdWxkIHRh
bGsgd2l0aCAodXNlcmlkLCB1c2VyYWxpYXMpIGFuZCB0aGUgc2VydmVyIG1haW50YWlucyBhIHN3
aXRjaGluZw0KIHRhYmxlLjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0i
RU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+
PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7Y29sb3I6IzFGNDk3RCI+Rm9yIGxhcmdlIHNlcnZlcnMsIHRoZSBzZXJ2ZXIgbWF5IGFs
bG9jYXRlIGFsaWFzZXMgZHluYW1pY2FsbHkgYmFzZWQgb24gd2hhdCBpdCBpcyBiZWluZyBhc2tl
ZC4gV2XigJlkIHRoZW4gbmVlZCB0byB0YWxrIGFib3V0IGFsaWFzIHVwZGF0ZSBvciByZXZvY2F0
aW9uLA0KIHByb2JhYmx5IGluIHRlcm1zIG9mIHNlc3Npb24gYW5kIGxpZmV0aW1lLjwvc3Bhbj48
c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+RG9l
cyB0aGF0IGxvb2sgdXNhYmxlPzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
Q0EiPllvdSBhcmUgcG9pbnRpbmcgb3V0IGFuIGludGVyZXN0aW5nIHF1ZXN0aW9uLiBJIHdvdWxk
IHRoaW5rIChidXQgbWF5YmUgSeKAmW0gbWlzdGFrZW4pLCB0aGF0IHRoZSBjbGllbnQgc2hvdWxk
IGhhdmUgdGhlIGxlYWRpbmcgcm9sZSBpbiBmaWd1cmluZyBvdXQgd2hhdOKAmXMgaGFwcGVuaW5n
LiBUaGUgaWRlYSBpcyB0aGUgZm9sbG93aW5nOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBsYW5nPSJFTi1DQSI+VGhlIGNsaWVudCBjaGVja3MgaWYgdGhlIHNlcnZlciBzdXBw
b3J0cyBhbGlhc2luZywgd2l0aCB0aGUgcG9zc2libGUgb3B0aW9uczo8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF
Ti1DQSI+UzEpIG5vIGFsaWFzaW5nPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPlMyKSBzdGF0aWMvc2Vy
dmVyLWRlZmluZWQgYWxpYXNpbmc8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+UzMpIGR5bmFtaWMvc2lu
Z2xlIGFsaWFzIG1hcHBpbmcmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7IFMzLjEp
IG1hcHBpbmcgYWxyZWFkeSBkZWZpbmVkPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOyBTMy4y
KSBubyBtYXBwaW5nIGRlZmluZWQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+UzQpIGR5bmFtaWMvcGVy
IGNsaWVudCBhbGlhcyBtYXBwaW5nPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IGxhbmc9IkVOLUNBIj5UaGVuLCB0aGUgY2xpZW50IGNhbiB0YWtlIGFjdGlvbiwgZGVwZW5kaW5n
IG9uIGl0cyBvd24gY2FwYWJpbGl0aWVzIGFuZCB0aGUgcmVzcG9uc2Ugb2YgdGhlIHNlcnZlci4g
RS5nLiBhIHVuY29uc3RyYWluZWQgY2xpZW50IGNvdWxkIG9idGFpbiB0aGUgYWxpYXMgbWFwcGlu
ZyBpZiBpdCBpcyBzdGF0aWMgKG9yIGlmIHRoZXJlIGlzIGEgc2luZ2xlIGFsaWFzIG1hcHBpbmcg
aW4NCiBwbGFjZSkgYW5kIGNhY2hlIGl0IGxvY2FsbHkuIFNvLCB0aGVyZSB3aWxsIGJlIHRoZSBm
b2xsb3dpbmcgY29ycmVzcG9uZGVuY2UgOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1DQSI+R2l2ZW46PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPkMxKSBjb25zdHJh
aW5lZCBjbGllbnQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+QzIpIHVuY29uc3RyYWluZWQgY2xpZW50
PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5XZSBoYXZl
OjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5DMSAmIzQzOyBTMSkgbm8gYWxpYXNpbmcsIG5vdGhpbmcg
dG8gZG88bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+QzEgJiM0MzsgUzIpIGFuZCBDMSAmIzQzOyBTMy4x
KSBpZiB0aGUgYWxpYXMgbWFwcGluZyBpcyBrbm93biwgdXNlIGl0LiBvdGhlcndpc2UsIGlnbm9y
ZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5DMSAmIzQzOyBTMy4yKSBhbmQgQzEgJiM0MzsgUzQpIGRl
ZmluZSBhbGlhcyBtYXBwaW5nPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1DQSI+QzIgJiM0MzsgUzEpIG5vIGFsaWFzaW5nLCBub3RoaW5nIHRvIGRv
PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5DMiAmIzQzOyBTMikgYW5kIEMyICYjNDM7IFMz
LjEpIGlmIHRoZSBhbGlhcyBtYXBwaW5nIGlzIGtub3duLCB1c2UgaXQuIG90aGVyd2lzZSwgbGVh
cm4gaXQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+QzIgJiM0MzsgUzMuMikg
YW5kIEMyICYjNDM7IFM0KSBkZWZpbmUgYWxpYXMgbWFwcGluZzxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNB
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+SSB3b3VsZCBzYXkgdGhhdCB0aGUgYW5hbG9n
eSB5b3UgbWFkZSB3aXRoIE1QTFMgY29ycmVzcG9uZHMgcXVpdGUgYSBsb3QgdG8gdGhlIEMyJiM0
MztTNCBjYXNlLiBQZXJzb25hbGx5LCBJIHdvdWxkIGJlIG1vc3QgaW50ZXJlc3RlZCBpbnRvIGhh
dmluZyBvbmUgY2xpZW50IGNvbmZpZ3VyZSBvbmUgYWxpYXMgbWFwcGluZyB0byBhbGwgc2VydmVy
cyBpbiB0aGUgbmV0d29yayAoZS5nLg0KIHRoZSBtYW5hZ2luZyBlbnRpdHkpLCB3aGljaCB3aWxs
IHByb2ZpdCBtb3N0IGZyb20gc2F2aW5nIHNldmVyYWwgYnl0ZXMgb24gZWFjaCBtZXNzYWdlIGV4
Y2hhbmdlLiBFdmVyeW9uZSBlbHNlIGNvdWxkIHVzZSB0aGUgc3RhbmRhcmQgSURzLCB3aGljaCB3
ZeKAmXZlIGFscmVhZHkgbWFuYWdlZCB0byBzaHJpbmsgc2lnbmlmaWNhbnRseS48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1DQSI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPkluZGVlZCwgd2l0aCBzdHJ1
Y3R1cmVkIG1vZHVsZSBJRCAmIzQzOyBkYXRhIG5vZGUgSUQgKDIwIGJpdHMgJiM0MzsgMTAgYml0
cyksIFlBTkcgVVJJIGNvbXByZXNzaW9uLCBhbmQgbG9uZyBmb3JtL3Nob3J0IGZvcm0sIHdl4oCZ
bGwgaGF2ZSBxdWl0ZSBhIGxvdCBvZiBnYWluLiBSZXNlcnZpbmcgbW9kdWxlIElEID0gMSBmb3Ig
YWxpYXNlcyBhbmQgbWF5YmUgd3JpdGluZyBhIHNob3J0IGRyYWZ0DQogb24gaG93IHRoZSBhbGlh
c2luZyBpcyBpbXBsZW1lbnRlZCBzZWVtcyBmZWFzaWJsZSwgd2hlcmUgd2UgY2FuIGNvdmVyIHRo
ZSBleGFjdCBtZWNoYW5pc20gb2YgYWxpYXMgZGVmaW5pdGlvbiwgYW5kIGNsaWVudC9zZXJ2ZXIg
aW50ZXJhY3Rpb24uPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LUNBIj5BbGV4YW5kZXI8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdp
bi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlBhc2NhbDwvc3Bh
bj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y
ZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxk
aXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4w
cHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwvc3Bh
bj48L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PHNwYW4gbGFuZz0iRU4t
Q0EiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIGxhbmc9
IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+NnRpc2NoDQogWzxhIGhyZWY9Im1haWx0bzo2
dGlzY2gtYm91bmNlc0BpZXRmLm9yZyI+bWFpbHRvOjZ0aXNjaC1ib3VuY2VzQGlldGYub3JnPC9h
Pl08c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGI+T24g
QmVoYWxmIE9mPHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFu
PjwvYj5BbmR5IEJpZXJtYW48YnI+DQo8Yj5TZW50OjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29u
dmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+dmVuZHJlZGkgNSBqdWluIDIwMTUgMjA6NTU8YnI+
DQo8Yj5Ubzo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9z
cGFuPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQo8Yj5DYzo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNv
bnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxhIGhyZWY9Im1haWx0bzo2dGlzY2hAaWV0Zi5v
cmciPjZ0aXNjaEBpZXRmLm9yZzwvYT47IEFsZXhhbmRlciBQZWxvdjsNCjxhIGhyZWY9Im1haWx0
bzpjb3JlQGlldGYub3JnIj5jb3JlQGlldGYub3JnPC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPjxz
cGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5SZTogWzZ0aXNj
aF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlczwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
bGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5PbiBGcmksIEp1biA1LCAyMDE1IGF0IDExOjQxIEFN
LCBNaWNoZWwgVmVpbGxldHRlICZsdDs8YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0
cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBs
ZSI+TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT4mZ3Q7IHdyb3Rl
OjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj5IaSBBbGV4YW5kZXI8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+
Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkkgaGF2ZSBzb21lIGNvbmNlcm5zIGFi
b3V0IGFsbG93aW5nIENvTUkgY2xpZW50KHMpIHRoZSBjb250cm9sIG9mIHRoZSBsaXN0IG9mIGFs
aWFzZXMuPC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRoaXMgYXBwcm9hY2ggd29yayBmaW5l
IGZvciB0aGUgZmlyc3QgQ29NSSBhcHBsaWNhdGlvbiAoZS5nLiA2VGlTQ0gpIGJ1dCB3aGF0IGRv
IHdlIGRvIHdpdGggdGhlIHN1YnNlcXVlbnQgQ29NSSBhcHBsaWNhdGlvbj88L3NwYW4+PHNwYW4g
bGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPk9uZSBwb3Nz
aWJsZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBhIGxpc3Qgb2YgKGFs
aWFzLCBkYXRhIG5vZGUgSUQpIHRvIHRoZSBDb01JIHNlcnZlci4gSW4gdGhpcyBjYXNlLCB0aGUg
Q29NSSBjbGllbnQgbWlnaHQgcmVjZWl2ZQ0KIGFuIGVycm9yIGlmIG9uZSBvciBtdWx0aXBsZSBv
ZiB0aGVzZSBhbGlhc2VzIGFyZSBhbHJlYWR5IHJlc2VydmVkLjwvc3Bhbj48c3BhbiBsYW5nPSJF
Ti1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj4mbmJzcDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+QSBzZWNvbmQgcG9zc2li
bGUgc29sdXRpb24gaXMgdGhhdCBlYWNoIENvTUkgY2xpZW50IHNlbmQgYSBsaXN0IG9mIChkYXRh
IG5vZGUgSUQpIGFuZCBnZXQgYSBsaXN0IG9mIChhbGlhcywgZGF0YSBub2RlIElEKSBmcm9tIHRo
ZSBDb01JIHNlcnZlci4NCiBJbiB0aGlzIGNhc2UsIENvTUkgY2xpZW50cyB3aWxsIGhhdmUgdG8g
ZGVhbCB3aXRoIGEgbWl4IHBvcHVsYXRpb24gb2YgYWxpYXNlcy48L3NwYW4+PHNwYW4gbGFuZz0i
RU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6
IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF
Ti1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRoZSBwcm9wb3NlZCBz
b2x1dGlvbiBuZWVkIHRvIHNjYWxlIHRvIGEgbXVsdGktdmVuZG9ycywgbXVsdGlwbGUgYXBwbGlj
YXRpb25zIGVudmlyb25tZW50Ljwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5XaXRoIHRoaXMg
aXMgbWluZCwgZG8geW91IGhhdmUgYW55IGFsdGVybmF0aXZlIHNvbHV0aW9ucyB0byBwcm9wb3Nl
Pzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4t
Q0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBsYW5nPSJFTi1DQSI+RG9lcyB0aGlzIGFwcHJvYWNoIGFsbG93IGVhY2ggY2xpZW50
IHRvIGhhdmUgYSBkaWZmZXJlbnQgc2V0IG9mIGFsaWFzZXMsPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tQ0EiPnNvIHRoZSBzZXJ2ZXIgaGFzIHRvIG1haW50YWluIGEgY29uZmlndXJl
ZCBtYXBwaW5nIGZvciBlYWNoIGNsaWVudD88bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF
Ti1DQSI+VGhpcyBzZWVtcyBsaWtlIGEgbG90IG9mIG92ZXJoZWFkIGFuZCBOVi1zdG9yYWdlIHJl
cXVpcmVtZW50czxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5vbiB0aGUgc2Vy
dmVyLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj4mbmJzcDs8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+Q2hhbmdpbmcgdGhlIHNjaGVtYSBpZGVudGlmaWVy
cyBiYXNlZCBvbiB3aGljaCBjbGllbnQgaXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF
Ti1DQSI+c2VuZGluZyB0aGUgcmVxdWVzdCBzZWVtcyBsaWtlIGEgY29tcGxpY2F0ZWQgZGVzaWdu
IGNoYW5nZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5mcm9tIFJFU1RDT05G
LCBORVRDT05GLCBvciBTTk1QLCB3aGVyZSB0aGVyZSBpcyBvbmx5PG86cD48L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gbGFuZz0iRU4tQ0EiPjEgc2NoZW1hIHRyZWUgd2hpY2ggaXMgbm90IGRlcGVuZGVudCBv
biB0aGUgY2xpZW50IGlkZW50aXR5LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNB
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPkFuZHk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBsYW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0Ei
PiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXIt
bGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNi4wcHQ7bWFyZ2lu
LWxlZnQ6NC44cHQ7bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGNtO21hcmdpbi1ib3R0
b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxU
YWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI4
OTYiIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRi
b2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9IjE3MiIgc3R5bGU9
IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQg
MS4wcHQ7cGFkZGluZzowY20gNS40cHQgMGNtIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6
IzFGNDk3RCI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjcyNCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo0MzQu
NjVwdDtwYWRkaW5nOjBjbSA1LjRwdCAwY20gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0
ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+VHJpbGxpYW50IEluYy48YnI+DQpU
ZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNzxicj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVp
bGxldHRlQHRyaWxsaWFudGluYy5jb20iIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29s
b3I6IzA1NjNDMSI+bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Ojgu
MXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjojMUY0OTdEIj48YSBocmVmPSJodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vIiB0YXJn
ZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOnB1cnBsZSI+d3d3LnRy
aWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVy
dGVkLXNwYWNlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7
PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5i
c3A7PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJs
ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJF
Ti1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286
cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y
ZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDsiPkZyb206PC9zcGFuPjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVy
dGVkLXNwYWNlIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJz
cDs8L3NwYW4+PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsi
PkFsZXhhbmRlcg0KIFBlbG92IFttYWlsdG86PGEgaHJlZj0ibWFpbHRvOmFsZXhhbmRlci5wZWxv
dkB0ZWxlY29tLWJyZXRhZ25lLmV1IiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9y
OnB1cnBsZSI+YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXU8L3NwYW4+PC9hPl08
c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPg0KPGI+
U2VudDo8L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFu
PjUganVpbiAyMDE1IDEyOjAzPGJyPg0KPGI+VG86PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252
ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5NaWNoZWwgVmVpbGxldHRlPGJyPg0KPGI+Q2M6PC9i
PjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5BbmR5IEJp
ZXJtYW47PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxh
IGhyZWY9Im1haWx0bzo2dGlzY2hAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHls
ZT0iY29sb3I6cHVycGxlIj42dGlzY2hAaWV0Zi5vcmc8L3NwYW4+PC9hPjs8c3BhbiBjbGFzcz0i
YXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0ibWFpbHRvOmNvcmVA
aWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5jb3Jl
QGlldGYub3JnPC9zcGFuPjwvYT48YnI+DQo8Yj5TdWJqZWN0OjwvYj48c3BhbiBjbGFzcz0iYXBw
bGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+UmU6IFJlc2VydmUgc3BhY2UgZm9yIGFs
aWFzZXM8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5IaSBNaWNoZWws
PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4w
cHQiPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1D
QSI+TGUgNSBqdWluIDIwMTUgw6AgMTc6MTcsIE1pY2hlbCBWZWlsbGV0dGUgJmx0OzxhIGhyZWY9
Im1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20iIHRhcmdldD0iX2JsYW5r
Ij48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5NaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGlu
Yy5jb208L3NwYW4+PC9hPiZndDsgYSDDqWNyaXQgOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
Q0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90OyI+SGkgQWxleGFuZGVyPC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJz
cDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkluIHlvdXIgcHJlc2VudGF0aW9uIGF0IDZU
aVNDSCwgeW91IHByb3Bvc2UgdGhlIGZvbGxvd2luZyBkYXRhIG5vZGUgSUQgc3RydWN0dXJlLjwv
c3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
Q0EiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNB
Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHRhYmxlIGNsYXNzPSJN
c29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAi
IHN0eWxlPSJib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyPg0KPHRkIHdp
ZHRoPSI3NzkiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDY3LjVwdDtib3JkZXI6c29saWQg
d2luZG93dGV4dCAxLjBwdDtwYWRkaW5nOjBjbSA1LjRwdCAwY20gNS40cHQiPg0KPGRpdiBzdHls
ZT0ibWFyZ2luLWxlZnQ6MzYuMHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij7igKI8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3
LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+MzIgYml0cyBZQU5HIElEPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+
4oCTPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjIw
IGJpdHMgZm9yIG1vZHVsZSBJRCAoYXNzaWduZWQgYnkgSUVURik8L3NwYW4+PG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij7igJM8
L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+MTAgYml0
cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpPC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwv
dGFibGU+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1D
QSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90OyI+QmFzZWQgb24gdGhpcyBzdHJ1Y3R1cmUsIHdlIGNhbiByZXNlcnZlJm5ic3A7bW9kdWxl
IElEIHplcm8gZm9yIGFsaWFzZXMuPC9zcGFuPjxzcGFuIGxhbmc9IkVOLUNBIj48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8
L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IGxhbmc9IkVOLUNBIj5JIHdhcyBqdXN0IHN1bW1hcml6aW5nIHdoYXQgd2FzIGRpc2N1c3NlZCBv
biB0aGUgZGlzY3Vzc2lvbiBpbiBDb01JLiBBY3R1YWxseSwgaXQgaXMgMzAgYml0cyBZQU5HIElE
LCBidXQgdGhhdOKAmXMgZm9yIHB1cnBvc2VzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgWUFO
RyBoYXNoIGFuZCBJIGRvbuKAmXQgbWluZCBrZWVwaW5nIGl0IDMwIGJpdHMuPG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTox
Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLUNBIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4N
CjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPklmIHdlIHdhbnQgdG8gbWluaW1pemUgYm90aCB0
aGUgbmV0d29yayBhbiBub2RlIHJlc291cmNlcyByZXF1aXJlIGJ5IHRoaXMgYWxpYXMgbWVjaGFu
aXNtLCB3ZSBjYW4gbWFwIGFuIGVudGlyZSBtb2R1bGUgdG8gdGhpcyBzcGFjZS48L3NwYW4+PHNw
YW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDsiPlRoaXMgY2FuIGJlIGltcGxlbWVudGVkIGJ5IGEgc2luZ2xlIGlu
dGVnZXIgcmVzb3VyY2UgKGUuZy4gbGVhZiBhbGxpYXNzZWRNb2R1bGUgeyB0eXBlIHVpbnQzMiB9
ICk8L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPlRoaXMgYXBwcm9hY2ggcmVxdWlyZSA0IGJ5
dGVzIHBlciBDb01JIHNlcnZlciBhY2Nlc3NlZC48L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsi
PiZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gbGFuZz0iRU4tQ0EiPkl0IGlzIHBvc3NpYmxlIHRvIG1hcCBhbiBlbnRpcmUgbW9k
dWxlIHRvIHRoZSBhbGlhcyBzcGFjZSBhbmQgdGhpcyBpcyB1cCB0byB0aGUgb3BlcmF0b3IuIEhv
d2V2ZXIsIGlmIHlvdSBsb2FkIHR3byBtb2R1bGVzIHdoaWNoIHJlZGVmaW5lIHRoZSBzYW1lIGFs
aWFzIHlvdSB3aWxsIGxvb3NlIHRoZSBiZW5lZml0IGZyb20gaXQuIE1heWJlIGl0IHdvdWxkIGJl
IGludGVyZXN0aW5nDQogdG8gYmUgYWJsZSB0byBzcGVjaWZ5IHRoYXQgeW91IHdhbnQgdGhlIGFs
aWFzZXMgZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBiZSB1c2VkLjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLUNBIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJFTi1DQSI+SWYgdGhlIC9tZy8wIGFsaWFzIGlzIHJlc2VydmVkIGZvciBtYW5hZ2luZyB0aGUg
YWxpYXNlcywgdGhpcyBjb3VsZCBiZSBzaW1wbHkgc2F5aW5nOjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIGxhbmc9IkVOLUNBIj5QT1NUIC9tZy8wPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0i
RU4tQ0EiPns8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+Jm5ic3A7JnF1b3Q7
c291cmNlX3VyaSZxdW90OyA6ICZxdW90Oy9tZy9CQUEmcXVvdDs8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1DQSI+fTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj4m
bmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+d2hlcmUgL21nL0JBQSBp
cyB0aGUgWUFORyBpZCBvZiB0aGUgbW9kdWxlICgyMCBiaXRzIG1vZHVsZSBJRCAmIzQzOyAxMCBi
aXRzIHNldCB0byAwKS4gVGhpcyB3YXksIHRoZSBzZXJ2ZXIgd2lsbCBrbm93OiBPSywgZ2V0IHRo
ZSBhbGlhcyBtYXBwaW5nIGZyb20gdGhlIFlBTkcgc2NoZW1lIG9mIG1vZHVsZSB3aXRoIElEID0g
QiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURikuJm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
bGFuZz0iRU4tQ0EiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5P
ciwgeW91IGNhbiBkeW5hbWljYWxseSBjb25maWd1cmUgdGhlIG1hcHBpbmc6PG86cD48L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIj5QT1NUIC9tZy8wPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gbGFuZz0iRU4tQ0EiPns8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1D
QSI+Jm5ic3A7IFlBTkdfaWQgOiBhbGlhcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF
Ti1DQSI+Jm5ic3A7IFlBTkdfaWQgOiBhbGlhcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n
PSJFTi1DQSI+Jm5ic3A7IFlBTkdfaWQgOiBhbGlhczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh
bmc9IkVOLUNBIj59PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij48c3Bh
biBsYW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPGJsb2NrcXVvdGUg
c3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSIgc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7Ij5JZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1dCBtb3JlIGZsZXhp
YmxlIGFsaWFzZXMgbWVjaGFuaXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAoYWxsaWFzLCBZQU5H
IElEKSBzZWVtIHRoZSBzb2x1dGlvbi48L3NwYW4+PHNwYW4gbGFuZz0iRU4tQ0EiPjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkhvd2V2
ZXIsIHdlIGhhdmUgdG8gY29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVyZSBjYW4gYmUgYXMgbGFy
Z2UgYXMmbmJzcDs8dT4xMjUwIGJ5dGVzIHBlciBDb01JIHNlcnZlciBhY2Nlc3NlZDwvdT4mbmJz
cDtpZiBsaW1pdGVkIHRvIDI1NiBhbGlhc2VzLjwvc3Bhbj48c3BhbiBsYW5nPSJFTi1DQSI+PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3Rl
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1DQSI+
Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPlRoaXMgaXMgYXNzdW1p
bmcgeW91IG5lZWQgYSBzZXBhcmF0ZSBtYXBwaW5nIGZvciBlYWNoIHNlcnZlci4gSSB3b3VsZCBz
dXBwb3NlIHRoYXQgaW4gYSBuZXR3b3JrIHlvdeKAmWxsIGhhdmUgYSBzaW5nbGUgYWxpYXMgbWFw
cGluZyAobWF5YmUgdHdvPykgLSBhZnRlciBhbGwsIHlvdeKAmXJlIHRyeWluZyB0byBvcHRpbWl6
ZSB0aGUgbWFuYWdlbWVudCBvZiB5b3VyIGRldmljZXMgKHNlcnZlcnMpLg0KIFNvLCB0eXBpY2Fs
bHkgeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNlcyAxLTEwIChjaGFu
bmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRoYXQgb24gdGhlbSwgYW5kIG9uIGFsbCBvdGhlciB5
b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1DQSI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPkJl
c3QsPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tQ0EiPkFsZXhhbmRlcjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPjxzcGFuIGxhbmc9IkVOLUNBIj4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJn
aW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIGxhbmc9IkVOLUNBIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiZuYnNwOzwvc3Bh
bj48c3BhbiBsYW5nPSJFTi1DQSI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9
IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iODk2IiBzdHlsZT0id2lkdGg6NTM3Ljc1cHQ7Ym9y
ZGVyLWNvbGxhcHNlOmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1
cHQiPg0KPHRkIHdpZHRoPSIxNzIiIHN0eWxlPSJ3aWR0aDoxMDMuMXB0O2JvcmRlcjpub25lO2Jv
cmRlci1yaWdodDpzb2xpZCB3aW5kb3d0ZXh0IDEuMHB0O3BhZGRpbmc6MGNtIDUuNHB0IDBjbSA1
LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC90ZD4NCjx0ZCB3aWR0aD0iNzI0IiB2
YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQzNC42NXB0O3BhZGRpbmc6MGNtIDUuNHB0IDBjbSA1
LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5NaWNo
ZWwgVmVpbGxldHRlPGJyPg0KU3lzdGVtIEFyY2hpdGVjdHVyZSBEaXJlY3Rvcjwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFw
dCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUwLTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEg
aHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJf
YmxhbmsiPjxzcGFuIHN0eWxlPSJjb2xvcjojMDU2M0MxIj5taWNoZWwudmVpbGxldHRlQHRyaWxs
aWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48YSBocmVmPSJodHRwOi8vd3d3
LnRyaWxsaWFudGluYy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOnB1cnBsZSI+d3d3LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPC90cj4NCjwvdGJvZHk+DQo8
L3RhYmxlPg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9i
bG9ja3F1b3RlPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1D
QSI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4N
CjwvaHRtbD4NCg==

--_000_E045AECD98228444A58C61C200AE1BD849E9998Dxmbrcdx01ciscoc_--

--_004_E045AECD98228444A58C61C200AE1BD849E9998Dxmbrcdx01ciscoc_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Sat, 13 Jun 2015 01:11:26 GMT";
	modification-date="Sat, 13 Jun 2015 01:11:26 GMT"
Content-ID: <image001.jpg@01D0A53B.1ECED7B0>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2JlAGTAAAAAAf/b
AIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxsc
Hx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f
Hx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAFgB5AwERAAIRAQMRAf/EAKQAAAMBAQEBAAAAAAAAAAAA
AAUGBwQDCAABAAMBAQEBAAAAAAAAAAAAAAMEBQIBAAYQAAEDAgMFAgYOCwAAAAAAAAIBAwQFBgAR
EiFBExQHMSJRYdEyQhVxUpIjM3OTszRUdFYXCKFicqKyU7Q1FjY4EQABAgQDBQYFBAMAAAAAAAAB
AgMAESEEMVESQWGRsRPwcYEiMhShwUJSBdEjMzRigrL/2gAMAwEAAhEDEQA/APR10XQxQ2GRFk5t
TmFwqfT2vhHj3/siPpFuxha5QneXgZApqWr0pG2AlvTajVKgh1CW9OktHk9Gpy8GnRC3g49qEpBp
vRCJEX0d+MpJJrCVq4txfnJURiE0QncT9R490a6bc+VxDBdMyhVNXUh8XJHI8uP9IiOZZ7u+C5+x
mOnHQusoMzefu6T6VzlPFKh6knmPhSUKt70rrSlXqdQolZYj0NtOLHjqoaxAG0UkyVktupF9LFi2
XbaQFJ83bfHrhFxqJSry9t0Idk3H1pvF2W1SK8IlDECeV9GgTJxVQcsmi9quH7hm2ZlqTj2zhK3d
uHZ6VYdsor9CuiNb9EiU69rggpcbaOLMUn20VUJ0ibXTkCp72op5qYkOslxRLSToiq28EJAcUNcA
rur9dfvGgnQbqp0SiS24xnDcebRyQhSDQibRWzUkMUQEyLtRcHYaSG1a0KKhPwpAX3VFxOlaQky8
awNol7XRI64y7eenkdGbOQIQ9DaCiAypD3kHVsVPDgjlsgWoWB5qc4G3cLNyUT8tYDdN78vevUK7
CmVwG5UOK0cKZKRpppgyI9RESBkmaJltRcGu7ZpCkSTQmsoDaXLi0rmqoEUGwLgkRrNcqV03BCn8
OSQlU2nQVgRXQgNqaC2mrUvg34QumgXNLaSKYQ/bOkNzWoGuMFfxKsD7wwPlw8uBezd+08IJ7tr7
hBn1xSPVq1TnWFpqDxFnI6HA0dmriZ6MvHngPTVq0yM8oL1Ey1TpnAb8SrA+8MD5cPLg3s3ftPCB
e7a+4QVC4KEdMcqrdQjOUxpFVyaDoEyKJ25mKqO/AukrVpkdWUF6qdOqYlEwtDrj6xu+p06tv06D
Q44vrBmoptq4oPiDSKZuEBam1Utgpik/+N0tgpCiqkx4RNY/IanCFSCdkVfn4P1lr3Y+XEvScop6
hnClVLflypc2py3eVemO8i3KUhFYdNbVUNWyVdhyCTzu1NaeDACnbEl61UpSlqOkqOmf2o3b1fOC
FvUmj0544avN860mlmAJ5DHYLPQLTa5LtFe+52kWea7k6kAQe1YbbOmY1DZ9o3DmraZwqT6NUI01
ZDqqTsaZT5TZHmpkrU5yEhkuea8SLw1NV7csDKTyiY6wtKpnEKQeCyj4plOKDXv7FUfsr3zZYba9
Q74+hc9J7oiP5Yvp1wfFRv4nMW/zOCfGI/4jFXhADp3a1JvDqZXIteRySyAy5SojhAROJJAEUiHv
dji78Hu3lMsJKKYD4QC1ZS68oK384JdTaRBo/VGzqZABW4cSPAbYBSUlQUnOr5xZquBWbhWwtRxJ
P/Igl2gIeQkYCXMxtt3/AKRnfGyv6dcZd/pjw5xtr+2fHlCn05/0i/vsDHzh4au/5W+8wra/xudw
hms2fbELoZNK42HJcB2pkARGTVs3XtLZgKGipl5ikviTC1wlZuhoodMMsKQLY66jVCtLkWK9TXjh
WNUGzcaJWJfOPkAqo91zzFFUTtw0kOhVXE8BCyi0RRs8TGm15j59E70iESqwxIgONCu4nZDaFl7P
DTGHkj3LZ3HlGmVH26xvHOHrpX0psOu2DTapVaasifK4/Ff48gPMkONjkIOCGwQTdhK9vnUOlKTQ
S2DKHLOyaW0FKFTPPOAPSihxCv68LNeJx2hKzLYcjqaippGmA02SqOnvIJLtTB75w9JDg9VPiIDZ
Njqrb+mvwMCem1jW5XOpNdodRYJynQQllHaFwwVFZlNtBmQqhLkJLgt3crQylQNTLlArS3Qt5STg
J849Heo6X/I/ePy4+d6iov8ATTAu4ofMyDWBPWDUG2FKRxGldhOMbe5KEk4aelkupCy8KYCoZQld
N6j5VaVyrSaSP8tnzifRX5ivgKw3xjCSow7DktcgXtljN1dlQQfBwzywAduxiEhSp+ky2aVDT/qH
Uy4GKJHNs4CN1pp1ogcje+ySjk6a8dFZ1cqmhB4uSdmX6cH2Vi+kgpk4CKpx0z9VPTvgnWRA6POA
zRsCjuoTioqoKKC5kqJmuzxYM36h3w256T3RIvy90ulwplbWDWY9VU246GLDUltQyJzJV5hprPPx
Z4rflVqUEzSU45fIxL/GISCqSgrDP5xx6O0qkxepNbfiVuPUJBx5SHEaalNmCLKaVSInmm210qiJ
3SXt8GO361FlIKSKjLI745YoSHlEKBoc8479VaXSpPVW3ZMmssQZLbcNG4TrUk3HEGY4oqJNNG2m
pV0pqJPHsxyyWoMKASSK1plHbxCS+klUsM84+oVLpQdepkwKyw7NVyQq0wWpKOoqsKiopk0jPdTb
sPHnVq9qBpMqVpnxjzaE+6J1VrSuXCFqxKJQmbRvVpm4oslp6GyLz4MTBFkUM8iNDZEiRf1EJcM3
Lii43NJFcx+sL2zaQ2vzDDf+kaG6Jai9FeUl3CyjHrdXIdSbjyya5ng/BE2rQu7W9fe05YyXHPcz
CfpwmMOMa6aPbyKvqxkcY6w7Z6lf461y13n6k5VODlGqGjleHsyzjatPD7PFjKnmddUeaeaceMdS
09oovyyyVhwjDbVEobfS68Y4XFFejvOQFemCxMRtnTIRRQxJkXC1rsTQK5b8EecV10HSfqpMZd8Y
abT0VjUNmefdFd6QRYsXp3SWIsxuewHMaJbQuAB5yXVXIXRbNNKrltHdiTfqJeUSJYchFSxADQAM
8ecJvTamUxjrDdMpirsS5TvP8WA21JFxrVNbItRuNA0uhe6uk18WzDd4tRt0ApIFK0yhS0QkXCyD
M1pXOFA7cI78rblnXYrc83ZByGWItRSQ2BPorjZKyw4JCLmlNSLkuzDnV/aT1EUptTLDeYV6X7qu
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_E045AECD98228444A58C61C200AE1BD849E9998Dxmbrcdx01ciscoc_--


From nobody Fri Jun 12 20:54:03 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C18E01B2C00; Fri, 12 Jun 2015 20:54:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pxSzEq-FCH8T; Fri, 12 Jun 2015 20:53:54 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0107.outbound.protection.outlook.com [65.55.169.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 21CCF1A912C; Fri, 12 Jun 2015 20:53:54 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB789.namprd06.prod.outlook.com (10.141.247.141) with Microsoft SMTP Server (TLS) id 15.1.184.17; Sat, 13 Jun 2015 03:53:48 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0184.014; Sat, 13 Jun 2015 03:53:48 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "Pascal Thubert (pthubert)" <pthubert@cisco.com>, Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAADv9XEAAEJffwAAJ0YMwAATNOsAAAQ/4UA=
Date: Sat, 13 Jun 2015 03:53:47 +0000
Message-ID: <CO2PR0601MB7925122DA741C05A1CBA63EFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <E045AECD98228444A58C61C200AE1BD849E9998D@xmb-rcd-x01.cisco.com>
In-Reply-To: <E045AECD98228444A58C61C200AE1BD849E9998D@xmb-rcd-x01.cisco.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: cisco.com; dkim=none (message not signed) header.d=none;
x-originating-ip: [24.225.215.88]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB789;
x-microsoft-antispam-prvs: <CO2PR0601MB7893128042D56C5A71EECEEFEBA0@CO2PR0601MB789.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(520003)(5005006)(3002001); SRVR:CO2PR0601MB789; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB789; 
x-forefront-prvs: 0606BBEB39
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(38414003)(377454003)(51444003)(24454002)(19580405001)(102836002)(87936001)(66066001)(86362001)(19580395003)(2950100001)(93886004)(15975445007)(2900100001)(54356999)(19627595001)(76176999)(99936001)(5003600100002)(50986999)(99286002)(77096005)(19617315012)(76576001)(5001920100001)(5002640100001)(189998001)(122556002)(5001960100002)(40100003)(62966003)(2656002)(16236675004)(33656002)(77156002)(92566002)(19625215002)(19300405004)(5001770100001)(18206015028)(46102003)(17760045003)(74316001)(7099028)(403724002)(579004)(559001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB789; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB7925122DA741C05A1CBA63EFEBA0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2015 03:53:47.2922 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB789
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/Mf1Hcn3FHZVRIeThu-FBGi0xTvA>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2015 03:54:00 -0000

--_004_CO2PR0601MB7925122DA741C05A1CBA63EFEBA0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB7925122DA741C05A1CBA63EFEBA0CO2PR0601MB792na_"

--_000_CO2PR0601MB7925122DA741C05A1CBA63EFEBA0CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgQWxleGFuZGVyDQoNCkFib3V0IOKAnFllcywgSSBzdXBwb3NlIHlvdSBzaG91bGQgYWx3YXlz
IHN0YXJ0IHdpdGggYWxpYXNlcywgYnV0IHRoYXQgZG9lc27igJl0IHNvdW5kIGxpa2UgYSBzdHJv
bmcgY29uc3RyYWludCB0byBtZeKAnQ0KDQpJZiBJIHRha2UgdGhlIGZvbGxvd2luZyBleGFtcGxl
Og0KR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdCgxLCAyLCAyMDQ5LCAzKQ0KDQpEYXRhIG5vZGUg
SUQgMSBhbmQgMiBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG1vZHVsZSBJRCAwIChhbGlhc2VzKSBi
dXQgZGF0YSBub2RlIElEIDIwNDkgYW5kIDMgYXJlIGFzc29jaWF0ZWQgd2l0aCBtb2R1bGUgSUQg
MS4NCkkgZG9u4oCZdCB1bmRlcnN0YW5kIGhvdyBhbGlhc2VzIGNhbiBiZSBhZGRlZCBhdCB0aGUg
ZW5kIG9mIHRoaXMgbGlzdCB3aXRob3V0IGJlZW4gcHJvY2Vzc2VkIGFzIHNob3J0IGZvcm0uDQpQ
bGVhc2UgY29uZmlybSBteSB1bmRlcnN0YW5kaW5nLg0KDQpIaSBBbmR5DQoNCkFib3V0IOKAnFRo
ZSBkYXRhIGlzIGhpZXJhcmNoaWNhbCBhbmQgdGhlIHBhcnNlciBpcyByZXF1aXJlZCB0byBtYWlu
dGFpbiB0aGUgY3VycmVudCBtb2R1bGUgc2NvcGUuIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBv
bWl0IHRoZSBtb2R1bGUgaWRlbnRpZmllciBmb3IgbmVzdGVkIGRhdGEsIGV4Y2VwdCBmb3Igbm9k
ZXMgdGhhdCBzdGFydCBhIG5ldyBtb2R1bGUgc2NvcGUuIElzIHRoaXMgd2hhdCB5b3UgaGF2ZSBp
biBtaW5kP+KAnQ0KDQpZZXMNCknigJltIHByb3Bvc2luZyB0byB1c2UgdGhlIHNhbWUgbW9kZWwg
YXMgSlNPTiB3aXRoIGEgbG9uZyBmb3JtIGNvbnNpc3Rpbmcgb2YgYSAyMCBiaXRzIG1vZHVsZSBJ
RC8xMCBiaXRzIFlBTkcgSUQgYW5kIHRoZSBzaG9ydCBmb3JtIGNvbnNpc3Rpbmcgb2YgYSAxMCBi
aXRzIFlBTkcgSUQuDQoNCkFib3V0IOKAnEkgYW0gbm90IGNvbnZpbmNlZCB0aGF0IGFsaWFzZXMg
YXJlIHdvcnRoIGFsbCB0aGUgZWZmb3J0IGJlY2F1c2UgbW9zdCAoOTUlPykgb2YgdGhlIElEcyBp
biB0aGUgcGF5bG9hZCB3aWxsIG9ubHkgbmVlZCAxMCBiaXRzLuKAnQ0KDQpBZ3JlZQ0KSW4gbW9z
dCBjYXNlcywgdGhlIG1lc3NhZ2Ugc2l6ZSBjb21wcmVzc2lvbiB3aWxsIHNhbWUganVzdCBhIGNv
dXBsZSBvZiBieXRlcy4NCkFzIG1lbnRpb25lZCBieSBBbGV4YW5kZXIsIHdlIGNhbiBzaW1wbHkg
cmVzZXJ2ZSBhIHJhbmdlIGZvciBhbGlhc2VzIChlLmcuIG1vZHVsZSBJRCAwKSBidXQgZGVmZXIg
dGhlIHJlc29sdXRpb24gdG8gYSBkaWZmZXJlbnQgZHJhZnQuDQoNCkhpIFBhc2NhbA0KDQpBYm91
dCDigJxJIHVuZGVyc3RhbmQgdGhhdCBhbnkgc2Vuc29yIHZlbmRvciB3aWxsIHdhbnQgdG8gaGF2
ZSBpdHMgb3duIG1vZHVsZSBJRHMsIGNvcnJlY3Q/4oCdDQoNCkNvcnJlY3QsIHdpdGggMjAgYml0
cywgd2UgY2FuIGFsbG9jYXRlIDEgMDAwIDAwMCBtb2R1bGUgSUQuDQpUaGlzIGNhbiBiZSBkb25l
IG9uZSBieSBvbmUgb3IgYnkgc21hbGwgYnVuZGxlIG9mIG1vZHVsZSBJRHMgKGUuZy4gNCwgOCwg
MTYgSURzKS4NCg0KQWJvdXQg4oCcSSBoYXZlIG1pc3NlZCB0aGUgdHJpY2sgb2YgNjMgbW9kdWxl
IElEcyB0aGF0IGFyZSBvcHRpbWFsbHkgZW5jb2RlZOKAnQ0KDQpXaGVuIHVzaW5nIHRoZSBsb25n
IGZvcm0gKDIwIGJpdHMgbW9kdWxlIElELCAxMCBiaXRzIFlBTkcgSUQpLCBkYXRhIG5vZGUgSUQg
c21hbGwgZW5vdWdoIHRvIGZpdCBvbiAxNiBiaXRzIGFyZSBlbmNvZGVkIHVzaW5nIENCT1IgaW4g
MyBieXRlcy4gU2luY2UgdGhlIFlBTkQgSUQgdGFrZXMgMTAgYml0cywgd2UgaGF2ZSA2IGJpdHMg
bGVmdCBmb3IgdGhlIG1vZHVsZSBJRCAoNjQgSURzIG1pbnVzIElEIDAgcmVzZXJ2ZWQgZm9yIHRo
ZSBzaG9ydCBmb3JtKS4gTW9kdWxlIElEIGdyZWF0ZXIgdGhhbiA2MyByZXF1aXJlIHRoZSB1c2Ug
b2YgdGhlIDUgYnl0ZXMgQ0JPUiBlbmNvZGluZy4NCg0KQWJvdXQg4oCcSWYgc286IG1heWJlIHdl
IHNob3VsZCBhbGlhcyB0aGUgbW9kdWxlIElEcyBzbyB0aGF0IHRoZSA2MyBJRHMgdGhhdCBiZW5l
Zml0IGZyb20gdGhlIG9wdGltYWwgQ0JPUiBjb21wcmVzc2lvbiBzaG91bGQgYmUgdGhlIGFsaWFz
ZXMgb2YgYW55IG9mIHRoZSB0aG91c2FuZHMgb2YgSURzIHRoYXQgd2lsbCBzb29uIGV4aXN0IGlu
IHRoZSByZWdpc3RyaWVzLuKAnQ0KDQpBIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRvIHJlc2VydmUg
bW9kdWxlIElEIDAsIDEsIDIgYW5kIDMgZm9yIGFsaWFzZXMgd2hpY2ggd2lsbCBsZWF2ZSA2MCDi
gJxtb3JlIG9wdGltYWzigJ0gbW9kdWxlIElEcy4NClRoZSBzcGVjaWZpYyB1c2Ugb2YgdGhlIHJl
c2VydmVkIG1vZHVsZSBJRHMgY2FuIGJlIGFkZHJlc3NlZCBpbiBvbmUgb2YgbXVsdGlwbGUgc3Vi
c2VxdWVuY2UgZHJhZnRzLg0KV2hhdCBpcyBpbXBvcnRhbnQgZm9yIG5vdyBpcyB0aGUgZXN0YWJs
aXNobWVudCBvZiBhIGNvbnNlbnN1cyBhcm91bmQgdGhlIGNvcmUgY29uY2VwdHMgZGlzY3Vzc2Vk
Og0KDQrCtyAgICAgICAgIHJlZ2lzdGVyZWQgMjAgYml0cyBtb2R1bGUgSUQNCg0KwrcgICAgICAg
ICAxMCBiaXRzIGFzc2lnbmVkIFlBTkcgSUQNCg0KwrcgICAgICAgICBsb25nIGZvcm0gLyBzaG9y
dCBmb3JtIGRhdGEgbm9kZSBJRA0KDQrCtyAgICAgICAgIHNlbGVjdCBlbmNvZGVkIGluIENCT1IN
Cg0KW2NpZDppbWFnZTAwMS5qcGdAMDFDODY4RDguQkYwQkI3RTBdDQoNCk1pY2hlbCBWZWlsbGV0
dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1
MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1h
aWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5j
LmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0KRnJvbTogUGFzY2FsIFRo
dWJlcnQgKHB0aHViZXJ0KSBbbWFpbHRvOnB0aHViZXJ0QGNpc2NvLmNvbV0NClNlbnQ6IDEyIGp1
aW4gMjAxNSAyMToxMQ0KVG86IE1pY2hlbCBWZWlsbGV0dGU7IEFsZXhhbmRlciBQZWxvdg0KQ2M6
IEFuZHkgQmllcm1hbjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnDQpTdWJqZWN0OiBS
RTogWzZ0aXNjaF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlcw0KDQpIZWxsbyBNaWNoZWw6DQoN
CknigJltIG5vdCBzbyB3b3JyaWVkIGZvciA2VGlTQ0jigJlzIElEIHRoYW4gZm9yIHRoZSBJRHMg
dXNlZCB0byBjb2xsZWN0IGRhdGEgZnJvbSBzZW5zb3JzLiBCZWNhdXNlIHRoYXQgaXMgdGhlIG9w
ZXJhdGlvbiB0aGF0IHdpbGwgaGFwcGVuIGFsbCB0aGUgdGltZSBhbiBzdWNrIGJhdHRlcmllcy4N
CkkgdW5kZXJzdGFuZCB0aGF0IGFueSBzZW5zb3IgdmVuZG9yIHdpbGwgd2FudCB0byBoYXZlIGl0
cyBvd24gbW9kdWxlIElEcywgY29ycmVjdD8gQW5kIHNvb24gZW5vdWdoIHRoYXQgdmVuZG9yIHdp
bGwgY29tZSB3aXRoIHZhcmlhbnRzIG9mIGhpcyBwcm9kdWN0cywgYW5kIHdpbGwgd2FudCBtb3Jl
IG1vZHVsZSBJRHMsIGlzIHRoYXQgcmlnaHQ/DQoNCklmIEnigJltIGNvcnJlY3QsIHRoaXMgcGxl
YWRzIGZvciBhbGlhc2VzOyBidXQgbWF5YmUgbm90IGFzIHdlIHRob3VnaHQgdGhlbS4gSSBoYXZl
IG1pc3NlZCB0aGUgdHJpY2sgb2YgNjMgbW9kdWxlIElEcyB0aGF0IGFyZSBvcHRpbWFsbHkgZW5j
b2RlZCwgYnV0IEkgdHJ1c3QgeW91IG9uIHRoYXQg4oCTIEkgZmlndXJlIHRoYXQgaXQgaXMgYmVj
YXVzZSBpdCB0YWtlcyAyIGJpdHMgdG8gZW5jb2RlZCB0aGUgY29hcCBvcHRpb24/DQoNCklmIHNv
OiBtYXliZSB3ZSBzaG91bGQgYWxpYXMgdGhlIG1vZHVsZSBJRHMgc28gdGhhdCB0aGUgNjMgSURz
IHRoYXQgYmVuZWZpdCBmcm9tIHRoZSBvcHRpbWFsIGNib3IgY29tcHJlc3Npb24gc2hvdWxkIGJl
IHRoZSBhbGlhc2VzIG9mIGFueSBvZiB0aGUgdGhvdXNhbmRzIG9mIElEcyB0aGF0IHdpbGwgc29v
biBleGlzdCBpbiB0aGUgcmVnaXN0cmllcy4NCg0KQWxzbyBub3RlIHRoYXQgZGV2aWNlIG1ha2Vy
cyB3aWxsIHdhbnQgdGhlIHZlbmRvciBzcGVjaWZpYyByYW5nZSB0aGF0IHRoZXkgdXNlIHRvIHBs
YXkgd2l0aCBiZWZvcmUgc29tZXRoaW5nIGlzIHJlZ2lzdGVyZWQuIEFsaWFzZXMgY291bGQgYWxz
byBiZSBhIHdheSB0byBwbGF5IHdpdGggbW9kdWxlIElEcyB0aGF0IGhhdmUgbm90IHlldCBiZWVu
IHJlZ2lzdGVyZWQgdG8gSUFOQS4NCg0KSeKAmW0gbm90IHN1cmUgdGhlIGFib3ZlIG1ha2VzIHNl
bnNlIHNpbmNlIGl0IGlzIGJhc2VkIG9uIGEgcGFydGlhbCB1bmRlcnN0YW5kaW5nIG9mIHlvdXIg
d29yayBzbyBmYXLigKYNCg0KUGFzY2FsDQoNCkZyb206IE1pY2hlbCBWZWlsbGV0dGUgW21haWx0
bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5jb21dDQpTZW50OiB2ZW5kcmVkaSAxMiBq
dWluIDIwMTUgMDk6NTgNClRvOiBBbGV4YW5kZXIgUGVsb3Y7IFBhc2NhbCBUaHViZXJ0IChwdGh1
YmVydCkNCkNjOiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGll
dGYub3JnPjsgY29yZUBpZXRmLm9yZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJF
OiBbNnRpc2NoXSBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzDQoNCkhpIEFsZXhhbmRlciwgaGkg
UGFzY2FsDQoNCkkgd2FudCB0byBlbXBoYXNlcyB0aGUgZm9sbG93aW5nIHBvaW50cw0KDQoNCuKA
oiAgICAgICAgIFRoZSB1c2Ugb2YgdGhlIHNlbGVjdCBxdWVyeSBwYXJhbWV0ZXIgZW5jb2RlZCBp
biBDQk9SIHN1cHBvcnQgb2YgNjMgbW9kdWxlcyB3aXRoIG9wdGltaXplZCBtZXNzYWdlIHNpemUg
aW5zdGVhZCBvZiBvbmx5IDMgZm9yIHRoZSBiYXNlNjQgVVJJLg0KDQpJZiB0aGUgNlRpU0NIIG1v
ZHVsZSBJRCBpcyBhbGxvY2F0ZWQgd2l0aGluIHRoZXNlIDYzIElEcywgdGhlcmUgd2lsbCBiZSBu
byBtZXNzYWdlIHNpemUgb3B0aW1pemF0aW9uIHByb3ZpZGVkIGJ5IHRoZSBhbGlhc2VzIG1lY2hh
bmlzbS4NCg0KVGhpcyBtYWtlIHRoZSBpbnRyb2R1Y3Rpb24gb2YgYWxpYXNlcyBsZXNzIHVyZ2Vu
dC4NCg0KDQoNCuKAoiAgICAgICAgIFRoZSBtZXNzYWdlIHNpemUgb2YgdGhlIHNlbGVjdCBxdWVy
eSBwYXJhbWV0ZXIgZW5jb2RlZCBpbiBDQk9SIHNob3VsZCBiZSBlcXVhbCBvciBzbWFsbGVyIGNv
bXBhcmVkIHRvIHRoZSBiYXNlNjQgVVJJLg0KDQpIb3dldmVyLCB0aGUgc2VsZWN0IHF1ZXJ5IHBh
cmFtZXRlciBlbmNvZGVkIGluIENCT1Igc3VwcG9ydCBhIHdpZGVyIHJhbmdlIG9mIHZhbHVlcyB3
aXRob3V0IHNpemUgcGVuYWx0eSAoMTYgYml0cyBpbnN0ZWFkIG9mIDEyLCAzMiBiaXRzIGluc3Rl
YWQgb2YgMzApDQoNCkZ1cnRoZXJtb3JlLCBDb01JIGRldmljZXMgd29u4oCZdCBoYXZlIHRvIHN1
cHBvcnQgdHdvIHR5cGUgb2YgZW5jb2RpbmcgZGVwZW5kaW5nIGlmIElEcyBhcmUgcGFydCBvZiB0
aGUgY29tbWFuZCB2cy4gcGF5bG9hZC4NCg0KDQoNCkZvciBleGFtcGxlOg0KDQoNCg0KQXNzdW1p
bmcgbW9kdWxlIElEIDINCg0KQXNzdW1pbmcgZGF0YSBub2RlIElEIDEsIDIsIDMsIDQgKGxvbmcg
Zm9ybSAyMDQ5LCAyMDUwLCAyMDUxKQ0KDQpBc3N1bWluZyDigJws4oCdIHNlcGFyYXRvciB0byBz
ZWxlY3QgbXVsdGlwbGUgZGF0YSBub2Rlcw0KDQoNCg0KQmFzZTY0IGFwcHJvYWNoOg0KDQpSRVE6
IEdFVCBleGFtcGxlLmNvbS9tZy9nQiAgICAgICAgICgzIGJ5dGVzOyAxIGJ5dGUgZm9yIHRoZSDi
gJwv4oCdLCAyIGJ5dGVzIGZvciDigJxnQuKAnSkNCg0KDQoNCkNCT1IgYXBwcm9hY2g6DQoNClJF
UTogR0VUIGV4YW1wbGUuY29tL21nP3NlbGVjdCgyMDQ5KSAgICAgICAgICg0IGJ5dGVzOyBvbmUg
Ynl0ZSBmb3IgdGhlIENvQVAgb3B0aW9uLCAzIGZvciAyMDQ5IGVuY29kZWQgdXNpbmcgQ0JPUikN
Cg0KDQoNCkJhc2U2NCBhcHByb2FjaDoNCg0KUkVROiBHRVQgZXhhbXBsZS5jb20vbWcvZ0IsQyxE
LEUgICAgICAgICAoOSBieXRlczsgMSBieXRlIGZvciB0aGUg4oCcL+KAnSwgOCBieXRlcyBmb3Ig
4oCcZ0IsQyxELEXigJ0pDQoNCg0KQ0JPUiBhcHByb2FjaDoNCg0KUkVROiBHRVQgZXhhbXBsZS5j
b20vbWc/c2VsZWN0KCBbMjA0OSwyLDMsNF0gKSAgICAgICg4IGJ5dGVzOyAxIGJ5dGUgZm9yIHRo
ZSBDb0FQIG9wdGlvbiwgMSBmb3IgdGhlIENCT1IgYXJyYXksIDMrMSsxKzEgYnl0ZXMgZm9yIHRo
ZSBJRHMpDQoNCg0KW2NpZDppbWFnZTAwMS5qcGdAMDFDODY4RDguQkYwQkI3RTBdDQoNCk1pY2hl
bCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMu
DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRp
bmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJp
bGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0KRnJvbTog
QWxleGFuZGVyIFBlbG92IFttYWlsdG86YWxleGFuZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUu
ZXVdDQpTZW50OiAxMSBqdWluIDIwMTUgMTc6MDYNClRvOiBQYXNjYWwgVGh1YmVydCAocHRodWJl
cnQpDQpDYzogQW5keSBCaWVybWFuOyBNaWNoZWwgVmVpbGxldHRlOyA2dGlzY2hAaWV0Zi5vcmc8
bWFpbHRvOjZ0aXNjaEBpZXRmLm9yZz47IGNvcmVAaWV0Zi5vcmc8bWFpbHRvOmNvcmVAaWV0Zi5v
cmc+DQpTdWJqZWN0OiBSZTogWzZ0aXNjaF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxpYXNlcw0KDQpI
aSBQYXNjYWwsDQoNCkxlIDEwIGp1aW4gMjAxNSDDoCAxNToyNSwgUGFzY2FsIFRodWJlcnQgKHB0
aHViZXJ0KSA8cHRodWJlcnRAY2lzY28uY29tPG1haWx0bzpwdGh1YmVydEBjaXNjby5jb20+PiBh
IMOpY3JpdCA6DQoNCkRlYXIgYWxsOg0KDQpUaGlzIGxvb2tzIGxpa2UgdGhlIHByb2JsZW0gb2Yg
bG9jYWwgbmFtZXNwYWNlcywgIHdoaWNoIGlzIHRoZSByZWFzb24gd2h5IE1QTFMgc3dpdGNoZXMg
bGFiZWxzLg0KVGhlIHVzZXIgbWF5IGFjY2VzcyBhIGxpbWl0ZWQgc2V0IG9mIHJlc291cmNlcyBm
cm9tIGEgbnVtYmVyIG9mIHNlcnZlcnMsIGFuZCBzZXJ2ZXJzIGFyZSByZWFkIGJ5IG1hbnkgdXNl
cnMuDQpZb3UgY2Fubm90IGVuc3VyZSB0aGF0IHlvdSBoYXZlIGEgc2luZ2xlIGFsaWFzIHNwYWNl
IHRoYXQgc2F0aXNmaWVzIHRoZW0gYWxsLg0KDQpHcmVhdCBhbmFsb2d5ISBBbmQgeWVzLCBzYWRs
eSB5b3UgY2Fubm90IHNhdGlzZnkgdGhlbSBhbGwsIGF0IGxlYXN0IG5vdCB3aXRoIGFsbCBkZXZp
Y2VzLg0KDQoNClNvICx3aGF0IGlmIHRoZSB1c2VyIGhhZCBpdHMgb3duIHNldCBvZiBhbGlhc2Vz
IGFuZCB0aGUgc2VydmVyIGFsc28gaGFkIGl0cyBvd24gc2V0IG9mIGFsaWFzZXM/DQoNClRoZSBh
bGlhc2VzIGNvdWxkIGJlIG1hcHBlZCBpbiBhIHRhYmxlIGxpa2UgYSB1U0FQIGFuZCBhIHBTQVAg
YXJlIG1hcHBlZCBhY3Jvc3MgbGF5ZXJzLiBCcm9hZGx5Og0KLSBGaXJzdCB0aW1lIGEgdXNlciBy
ZXF1ZXN0cyBhIHJlc291cmNlIGluIGEgc2VydmVyLCBpdCBjb21lcyB3aXRoIGEgdHVwbGUgKHVz
ZXJpZCwgdXNlcmFsaWFzLCBmdWxsbmFtZSkNCi0gVGhlIHNlcnZlciByZXNwb25kcyB3aXRoIChz
ZXJ2ZXJpZCwgc2VydmVyYWxpYXMsIHVzZXJpZCwgdXNlciBhbGlhcykuDQoNCkFjdHVhbGx5LCBJ
IHRoaW5rIHRoYXQgdGhpcyBjb3VsZCBiZSB3b3JrZWQgb3V0IGluIENvTUkgYWxzby4gSW5zdGVh
ZCBvZiBmdWxsbmFtZSB5b3UgY291bGQgcHJvdmlkZSB0aGUgWUFORyBpZCAobW9kdWxlIElEICsg
ZGF0YSBub2RlIElEKSBhbmQgZG8gdGhlIG1hcHBpbmcuIFVzZXIgYWxpYXMgd291bGQgYmUgdGhl
IHNwZWNpYWwgYWxpYXNlZCBZQU5HIGlkLiBVc2VyIElELCBob3dldmVyLCBjb3VsZCBiZSBhIGxp
dHRsZSBiaXQgbW9yZSB0cmlja3kgLSBob3cgZG8gd2UgZW5zdXJlIHRoYXQgaXQgaXMgY29uc2lz
dGVudD8gVXNlIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjbGllbnQgY291bGQgYmUgZG9hYmxlLCBi
dXQgd2XigJlsbCBoYXZlIHRvIGluY2x1ZGUgdGhlIFVEUCBwb3J0IGp1c3QgaW4gY2FzZSBzb21l
b25lIHJ1bnMgdHdvIGNsaWVudHMgb24gdGhlIHNhbWUgbWFjaGluZS4NCg0KDQoNCkFmdGVyIHRo
YXQsICBpZiB0aGUgc2VydmVyIGlzIGEgY29uc3RyYWluZWQgZGV2aWNlIHRoZW4gdGhlIHVzZXIg
dGFsa3MgdG8gdGhlIHNlcnZlciB3aXRoIChzZXJ2ZXJpZCwgc2VydmVyYWxpYXMpIGFuZCB0aGUg
dXNlciBtYWludGFpbnMgYSBzd2l0Y2hpbmcgdGFibGUgZm9yIHRoZSByZXNvdXJjZSBpdCB1c2Vz
IG9uIHZhcmlvdXMgc2VydmVycy4NCklmIHRoZSB1c2VyIGlzIHRoZSBjb25zdHJhaW5lZCBkZXZp
Y2UgYW5kIHRoZSBzZXJ2ZXIgaXMgbm90LCB0aGUgdXNlciBjb3VsZCB0YWxrIHdpdGggKHVzZXJp
ZCwgdXNlcmFsaWFzKSBhbmQgdGhlIHNlcnZlciBtYWludGFpbnMgYSBzd2l0Y2hpbmcgdGFibGUu
DQoNCkZvciBsYXJnZSBzZXJ2ZXJzLCB0aGUgc2VydmVyIG1heSBhbGxvY2F0ZSBhbGlhc2VzIGR5
bmFtaWNhbGx5IGJhc2VkIG9uIHdoYXQgaXQgaXMgYmVpbmcgYXNrZWQuIFdl4oCZZCB0aGVuIG5l
ZWQgdG8gdGFsayBhYm91dCBhbGlhcyB1cGRhdGUgb3IgcmV2b2NhdGlvbiwgcHJvYmFibHkgaW4g
dGVybXMgb2Ygc2Vzc2lvbiBhbmQgbGlmZXRpbWUuDQoNCkRvZXMgdGhhdCBsb29rIHVzYWJsZT8N
Cg0KWW91IGFyZSBwb2ludGluZyBvdXQgYW4gaW50ZXJlc3RpbmcgcXVlc3Rpb24uIEkgd291bGQg
dGhpbmsgKGJ1dCBtYXliZSBJ4oCZbSBtaXN0YWtlbiksIHRoYXQgdGhlIGNsaWVudCBzaG91bGQg
aGF2ZSB0aGUgbGVhZGluZyByb2xlIGluIGZpZ3VyaW5nIG91dCB3aGF04oCZcyBoYXBwZW5pbmcu
IFRoZSBpZGVhIGlzIHRoZSBmb2xsb3dpbmc6DQoNClRoZSBjbGllbnQgY2hlY2tzIGlmIHRoZSBz
ZXJ2ZXIgc3VwcG9ydHMgYWxpYXNpbmcsIHdpdGggdGhlIHBvc3NpYmxlIG9wdGlvbnM6DQpTMSkg
bm8gYWxpYXNpbmcNClMyKSBzdGF0aWMvc2VydmVyLWRlZmluZWQgYWxpYXNpbmcNClMzKSBkeW5h
bWljL3NpbmdsZSBhbGlhcyBtYXBwaW5nDQogIFMzLjEpIG1hcHBpbmcgYWxyZWFkeSBkZWZpbmVk
DQogIFMzLjIpIG5vIG1hcHBpbmcgZGVmaW5lZA0KUzQpIGR5bmFtaWMvcGVyIGNsaWVudCBhbGlh
cyBtYXBwaW5nDQoNClRoZW4sIHRoZSBjbGllbnQgY2FuIHRha2UgYWN0aW9uLCBkZXBlbmRpbmcg
b24gaXRzIG93biBjYXBhYmlsaXRpZXMgYW5kIHRoZSByZXNwb25zZSBvZiB0aGUgc2VydmVyLiBF
LmcuIGEgdW5jb25zdHJhaW5lZCBjbGllbnQgY291bGQgb2J0YWluIHRoZSBhbGlhcyBtYXBwaW5n
IGlmIGl0IGlzIHN0YXRpYyAob3IgaWYgdGhlcmUgaXMgYSBzaW5nbGUgYWxpYXMgbWFwcGluZyBp
biBwbGFjZSkgYW5kIGNhY2hlIGl0IGxvY2FsbHkuIFNvLCB0aGVyZSB3aWxsIGJlIHRoZSBmb2xs
b3dpbmcgY29ycmVzcG9uZGVuY2UgOg0KDQpHaXZlbjoNCkMxKSBjb25zdHJhaW5lZCBjbGllbnQN
CkMyKSB1bmNvbnN0cmFpbmVkIGNsaWVudA0KDQpXZSBoYXZlOg0KQzEgKyBTMSkgbm8gYWxpYXNp
bmcsIG5vdGhpbmcgdG8gZG8NCkMxICsgUzIpIGFuZCBDMSArIFMzLjEpIGlmIHRoZSBhbGlhcyBt
YXBwaW5nIGlzIGtub3duLCB1c2UgaXQuIG90aGVyd2lzZSwgaWdub3JlDQpDMSArIFMzLjIpIGFu
ZCBDMSArIFM0KSBkZWZpbmUgYWxpYXMgbWFwcGluZw0KDQpDMiArIFMxKSBubyBhbGlhc2luZywg
bm90aGluZyB0byBkbw0KQzIgKyBTMikgYW5kIEMyICsgUzMuMSkgaWYgdGhlIGFsaWFzIG1hcHBp
bmcgaXMga25vd24sIHVzZSBpdC4gb3RoZXJ3aXNlLCBsZWFybiBpdA0KQzIgKyBTMy4yKSBhbmQg
QzIgKyBTNCkgZGVmaW5lIGFsaWFzIG1hcHBpbmcNCg0KSSB3b3VsZCBzYXkgdGhhdCB0aGUgYW5h
bG9neSB5b3UgbWFkZSB3aXRoIE1QTFMgY29ycmVzcG9uZHMgcXVpdGUgYSBsb3QgdG8gdGhlIEMy
K1M0IGNhc2UuIFBlcnNvbmFsbHksIEkgd291bGQgYmUgbW9zdCBpbnRlcmVzdGVkIGludG8gaGF2
aW5nIG9uZSBjbGllbnQgY29uZmlndXJlIG9uZSBhbGlhcyBtYXBwaW5nIHRvIGFsbCBzZXJ2ZXJz
IGluIHRoZSBuZXR3b3JrIChlLmcuIHRoZSBtYW5hZ2luZyBlbnRpdHkpLCB3aGljaCB3aWxsIHBy
b2ZpdCBtb3N0IGZyb20gc2F2aW5nIHNldmVyYWwgYnl0ZXMgb24gZWFjaCBtZXNzYWdlIGV4Y2hh
bmdlLiBFdmVyeW9uZSBlbHNlIGNvdWxkIHVzZSB0aGUgc3RhbmRhcmQgSURzLCB3aGljaCB3ZeKA
mXZlIGFscmVhZHkgbWFuYWdlZCB0byBzaHJpbmsgc2lnbmlmaWNhbnRseS4NCg0KSW5kZWVkLCB3
aXRoIHN0cnVjdHVyZWQgbW9kdWxlIElEICsgZGF0YSBub2RlIElEICgyMCBiaXRzICsgMTAgYml0
cyksIFlBTkcgVVJJIGNvbXByZXNzaW9uLCBhbmQgbG9uZyBmb3JtL3Nob3J0IGZvcm0sIHdl4oCZ
bGwgaGF2ZSBxdWl0ZSBhIGxvdCBvZiBnYWluLiBSZXNlcnZpbmcgbW9kdWxlIElEID0gMSBmb3Ig
YWxpYXNlcyBhbmQgbWF5YmUgd3JpdGluZyBhIHNob3J0IGRyYWZ0IG9uIGhvdyB0aGUgYWxpYXNp
bmcgaXMgaW1wbGVtZW50ZWQgc2VlbXMgZmVhc2libGUsIHdoZXJlIHdlIGNhbiBjb3ZlciB0aGUg
ZXhhY3QgbWVjaGFuaXNtIG9mIGFsaWFzIGRlZmluaXRpb24sIGFuZCBjbGllbnQvc2VydmVyIGlu
dGVyYWN0aW9uLg0KDQpBbGV4YW5kZXINCg0KDQpQYXNjYWwNCg0KRnJvbTogNnRpc2NoIFttYWls
dG86NnRpc2NoLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBBbmR5IEJpZXJtYW4NClNl
bnQ6IHZlbmRyZWRpIDUganVpbiAyMDE1IDIwOjU1DQpUbzogTWljaGVsIFZlaWxsZXR0ZQ0KQ2M6
IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86NnRpc2NoQGlldGYub3JnPjsgQWxleGFuZGVyIFBlbG92
OyBjb3JlQGlldGYub3JnPG1haWx0bzpjb3JlQGlldGYub3JnPg0KU3ViamVjdDogUmU6IFs2dGlz
Y2hdIFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXMNCg0KDQoNCk9uIEZyaSwgSnVuIDUsIDIwMTUg
YXQgMTE6NDEgQU0sIE1pY2hlbCBWZWlsbGV0dGUgPE1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50
aW5jLmNvbTxtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPj4gd3JvdGU6
DQpIaSBBbGV4YW5kZXINCg0KSSBoYXZlIHNvbWUgY29uY2VybnMgYWJvdXQgYWxsb3dpbmcgQ29N
SSBjbGllbnQocykgdGhlIGNvbnRyb2wgb2YgdGhlIGxpc3Qgb2YgYWxpYXNlcy4NClRoaXMgYXBw
cm9hY2ggd29yayBmaW5lIGZvciB0aGUgZmlyc3QgQ29NSSBhcHBsaWNhdGlvbiAoZS5nLiA2VGlT
Q0gpIGJ1dCB3aGF0IGRvIHdlIGRvIHdpdGggdGhlIHN1YnNlcXVlbnQgQ29NSSBhcHBsaWNhdGlv
bj8NCg0KT25lIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5k
IGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgdG8gdGhlIENvTUkgc2VydmVyLiBJbiB0
aGlzIGNhc2UsIHRoZSBDb01JIGNsaWVudCBtaWdodCByZWNlaXZlIGFuIGVycm9yIGlmIG9uZSBv
ciBtdWx0aXBsZSBvZiB0aGVzZSBhbGlhc2VzIGFyZSBhbHJlYWR5IHJlc2VydmVkLg0KDQpBIHNl
Y29uZCBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29NSSBjbGllbnQgc2VuZCBhIGxp
c3Qgb2YgKGRhdGEgbm9kZSBJRCkgYW5kIGdldCBhIGxpc3Qgb2YgKGFsaWFzLCBkYXRhIG5vZGUg
SUQpIGZyb20gdGhlIENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsIENvTUkgY2xpZW50cyB3aWxs
IGhhdmUgdG8gZGVhbCB3aXRoIGEgbWl4IHBvcHVsYXRpb24gb2YgYWxpYXNlcy4NCg0KVGhlIHBy
b3Bvc2VkIHNvbHV0aW9uIG5lZWQgdG8gc2NhbGUgdG8gYSBtdWx0aS12ZW5kb3JzLCBtdWx0aXBs
ZSBhcHBsaWNhdGlvbnMgZW52aXJvbm1lbnQuDQpXaXRoIHRoaXMgaXMgbWluZCwgZG8geW91IGhh
dmUgYW55IGFsdGVybmF0aXZlIHNvbHV0aW9ucyB0byBwcm9wb3NlPw0KDQoNCg0KRG9lcyB0aGlz
IGFwcHJvYWNoIGFsbG93IGVhY2ggY2xpZW50IHRvIGhhdmUgYSBkaWZmZXJlbnQgc2V0IG9mIGFs
aWFzZXMsDQpzbyB0aGUgc2VydmVyIGhhcyB0byBtYWludGFpbiBhIGNvbmZpZ3VyZWQgbWFwcGlu
ZyBmb3IgZWFjaCBjbGllbnQ/DQpUaGlzIHNlZW1zIGxpa2UgYSBsb3Qgb2Ygb3ZlcmhlYWQgYW5k
IE5WLXN0b3JhZ2UgcmVxdWlyZW1lbnRzDQpvbiB0aGUgc2VydmVyLg0KDQpDaGFuZ2luZyB0aGUg
c2NoZW1hIGlkZW50aWZpZXJzIGJhc2VkIG9uIHdoaWNoIGNsaWVudCBpcw0Kc2VuZGluZyB0aGUg
cmVxdWVzdCBzZWVtcyBsaWtlIGEgY29tcGxpY2F0ZWQgZGVzaWduIGNoYW5nZQ0KZnJvbSBSRVNU
Q09ORiwgTkVUQ09ORiwgb3IgU05NUCwgd2hlcmUgdGhlcmUgaXMgb25seQ0KMSBzY2hlbWEgdHJl
ZSB3aGljaCBpcyBub3QgZGVwZW5kZW50IG9uIHRoZSBjbGllbnQgaWRlbnRpdHkuDQoNCg0KQW5k
eQ0KDQoNCg0KDQo8aW1hZ2UwMDEuanBnPg0KDQpNaWNoZWwgVmVpbGxldHRlDQpTeXN0ZW0gQXJj
aGl0ZWN0dXJlIERpcmVjdG9yDQpUcmlsbGlhbnQgSW5jLg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0
LiAyMzcNCm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTxtYWlsdG86bWljaGVsLnZl
aWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPg0Kd3d3LnRyaWxsaWFudGluYy5jb208aHR0cDovL3d3
dy50cmlsbGlhbnRpbmMuY29tLz4NCg0KDQoNCkZyb206IEFsZXhhbmRlciBQZWxvdiBbbWFpbHRv
OmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1PG1haWx0bzphbGV4YW5kZXIucGVs
b3ZAdGVsZWNvbS1icmV0YWduZS5ldT5dDQpTZW50OiA1IGp1aW4gMjAxNSAxMjowMw0KVG86IE1p
Y2hlbCBWZWlsbGV0dGUNCkNjOiBBbmR5IEJpZXJtYW47IDZ0aXNjaEBpZXRmLm9yZzxtYWlsdG86
NnRpc2NoQGlldGYub3JnPjsgY29yZUBpZXRmLm9yZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NClN1
YmplY3Q6IFJlOiBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzDQoNCkhpIE1pY2hlbCwNCg0KDQpM
ZSA1IGp1aW4gMjAxNSDDoCAxNzoxNywgTWljaGVsIFZlaWxsZXR0ZSA8TWljaGVsLlZlaWxsZXR0
ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpNaWNoZWwuVmVpbGxldHRlQHRyaWxsaWFudGluYy5j
b20+PiBhIMOpY3JpdCA6DQoNCkhpIEFsZXhhbmRlcg0KDQpJbiB5b3VyIHByZXNlbnRhdGlvbiBh
dCA2VGlTQ0gsIHlvdSBwcm9wb3NlIHRoZSBmb2xsb3dpbmcgZGF0YSBub2RlIElEIHN0cnVjdHVy
ZS4NCg0K4oCiICAgICAgIDMyIGJpdHMgWUFORyBJRA0K4oCTICAgICAgMjAgYml0cyBmb3IgbW9k
dWxlIElEIChhc3NpZ25lZCBieSBJRVRGKQ0K4oCTICAgICAgMTAgYml0cyBmb3IgZGF0YSBub2Rl
IElEIChnZW5lcmF0ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpDQoNCg0KQmFzZWQgb24gdGhpcyBzdHJ1
Y3R1cmUsIHdlIGNhbiByZXNlcnZlIG1vZHVsZSBJRCB6ZXJvIGZvciBhbGlhc2VzLg0KDQoNCkkg
d2FzIGp1c3Qgc3VtbWFyaXppbmcgd2hhdCB3YXMgZGlzY3Vzc2VkIG9uIHRoZSBkaXNjdXNzaW9u
IGluIENvTUkuIEFjdHVhbGx5LCBpdCBpcyAzMCBiaXRzIFlBTkcgSUQsIGJ1dCB0aGF04oCZcyBm
b3IgcHVycG9zZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBZQU5HIGhhc2ggYW5kIEkgZG9u
4oCZdCBtaW5kIGtlZXBpbmcgaXQgMzAgYml0cy4NCg0KDQpJZiB3ZSB3YW50IHRvIG1pbmltaXpl
IGJvdGggdGhlIG5ldHdvcmsgYW4gbm9kZSByZXNvdXJjZXMgcmVxdWlyZSBieSB0aGlzIGFsaWFz
IG1lY2hhbmlzbSwgd2UgY2FuIG1hcCBhbiBlbnRpcmUgbW9kdWxlIHRvIHRoaXMgc3BhY2UuDQpU
aGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBieSBhIHNpbmdsZSBpbnRlZ2VyIHJlc291cmNlIChlLmcu
IGxlYWYgYWxsaWFzc2VkTW9kdWxlIHsgdHlwZSB1aW50MzIgfSApDQpUaGlzIGFwcHJvYWNoIHJl
cXVpcmUgNCBieXRlcyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQuDQoNCg0KSXQgaXMgcG9zc2li
bGUgdG8gbWFwIGFuIGVudGlyZSBtb2R1bGUgdG8gdGhlIGFsaWFzIHNwYWNlIGFuZCB0aGlzIGlz
IHVwIHRvIHRoZSBvcGVyYXRvci4gSG93ZXZlciwgaWYgeW91IGxvYWQgdHdvIG1vZHVsZXMgd2hp
Y2ggcmVkZWZpbmUgdGhlIHNhbWUgYWxpYXMgeW91IHdpbGwgbG9vc2UgdGhlIGJlbmVmaXQgZnJv
bSBpdC4gTWF5YmUgaXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gYmUgYWJsZSB0byBzcGVjaWZ5
IHRoYXQgeW91IHdhbnQgdGhlIGFsaWFzZXMgZnJvbSBUSElTIHNwZWNpZmljIG1vZHVsZSB0byBi
ZSB1c2VkLg0KDQpJZiB0aGUgL21nLzAgYWxpYXMgaXMgcmVzZXJ2ZWQgZm9yIG1hbmFnaW5nIHRo
ZSBhbGlhc2VzLCB0aGlzIGNvdWxkIGJlIHNpbXBseSBzYXlpbmc6DQpQT1NUIC9tZy8wDQp7DQog
InNvdXJjZV91cmkiIDogIi9tZy9CQUEiDQp9DQoNCndoZXJlIC9tZy9CQUEgaXMgdGhlIFlBTkcg
aWQgb2YgdGhlIG1vZHVsZSAoMjAgYml0cyBtb2R1bGUgSUQgKyAxMCBiaXRzIHNldCB0byAwKS4g
VGhpcyB3YXksIHRoZSBzZXJ2ZXIgd2lsbCBrbm93OiBPSywgZ2V0IHRoZSBhbGlhcyBtYXBwaW5n
IGZyb20gdGhlIFlBTkcgc2NoZW1lIG9mIG1vZHVsZSB3aXRoIElEID0gQiAoYXMgZGVmaW5lZCBi
eSB0aGUgSUVURikuDQoNCk9yLCB5b3UgY2FuIGR5bmFtaWNhbGx5IGNvbmZpZ3VyZSB0aGUgbWFw
cGluZzoNClBPU1QgL21nLzANCnsNCiAgWUFOR19pZCA6IGFsaWFzLA0KICBZQU5HX2lkIDogYWxp
YXMsDQogIFlBTkdfaWQgOiBhbGlhcw0KfQ0KDQpJZiB3ZSB3YW50IGEgbW9yZSBjb21wbGV4IGJ1
dCBtb3JlIGZsZXhpYmxlIGFsaWFzZXMgbWVjaGFuaXNtLCB5b3VyIHByb3Bvc2VkIG1hcCBvZiAo
YWxsaWFzLCBZQU5HIElEKSBzZWVtIHRoZSBzb2x1dGlvbi4NCkhvd2V2ZXIsIHdlIGhhdmUgdG8g
Y29uc2lkZXIgdGhhdCB0aGlzIHN0cnVjdHVyZSBjYW4gYmUgYXMgbGFyZ2UgYXMgMTI1MCBieXRl
cyBwZXIgQ29NSSBzZXJ2ZXIgYWNjZXNzZWQgaWYgbGltaXRlZCB0byAyNTYgYWxpYXNlcy4NCg0K
VGhpcyBpcyBhc3N1bWluZyB5b3UgbmVlZCBhIHNlcGFyYXRlIG1hcHBpbmcgZm9yIGVhY2ggc2Vy
dmVyLiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBpbiBhIG5ldHdvcmsgeW914oCZbGwgaGF2ZSBhIHNp
bmdsZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0d28/KSAtIGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5
aW5nIHRvIG9wdGltaXplIHRoZSBtYW5hZ2VtZW50IG9mIHlvdXIgZGV2aWNlcyAoc2VydmVycyku
IFNvLCB0eXBpY2FsbHkgeW914oCZZCBtYXAgYWxsIDZ0aXNjaCBkZXZpY2VzIHdpdGggYWxpYXNl
cyAxLTEwIChjaGFubmVsLCBzbG90LCBldGMuKSBhbmQgdXNlIHRoYXQgb24gdGhlbSwgYW5kIG9u
IGFsbCBvdGhlciB5b3XigJlkIGFjY2VzcyB0aGUgZnVsbCBJRC4NCg0KQmVzdCwNCkFsZXhhbmRl
cg0KDQoNCjxpbWFnZTAwMS5qcGc+DQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5c3RlbSBBcmNoaXRl
Y3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIz
Nw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzptaWNoZWwudmVpbGxl
dHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxodHRwOi8vd3d3LnRy
aWxsaWFudGluYy5jb20vPg0KDQoNCg==

--_000_CO2PR0601MB7925122DA741C05A1CBA63EFEBA0CO2PR0601MB792na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAw
O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6
MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZh
bWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUg
RGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwN
Cgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBw
dDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQphOmxpbmssIHNwYW4u
TXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRl
eHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0Zv
bGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1k
ZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0FjZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5N
c29BY2V0YXRlDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFs
bG9vbiBUZXh0IENoYXIiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0K
CWZvbnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIixzYW5zLXNlcmlmO30NCnAu
TXNvTGlzdFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xpc3RQYXJhZ3Jh
cGgNCgl7bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6MGluOw0KCW1hcmdpbi1y
aWdodDowaW47DQoJbWFyZ2luLWJvdHRvbTowaW47DQoJbWFyZ2luLWxlZnQ6LjVpbjsNCgltYXJn
aW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGlt
ZXMgTmV3IFJvbWFuIixzZXJpZjt9DQpzcGFuLkJhbGxvb25UZXh0Q2hhcg0KCXttc28tc3R5bGUt
bmFtZToiQmFsbG9vbiBUZXh0IENoYXIiOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28t
c3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IjsNCglmb250LWZhbWlseToiVGFob21hIixzYW5zLXNl
cmlmO30NCnNwYW4uYXBwbGUtY29udmVydGVkLXNwYWNlDQoJe21zby1zdHlsZS1uYW1lOmFwcGxl
LWNvbnZlcnRlZC1zcGFjZTt9DQpzcGFuLkVtYWlsU3R5bGUyMQ0KCXttc28tc3R5bGUtdHlwZTpw
ZXJzb25hbDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjojMUY0
OTdEO30NCnNwYW4uRW1haWxTdHlsZTIyDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZv
bnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5F
bWFpbFN0eWxlMjMNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6IkNh
bGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkVtYWlsU3R5bGUyNA0K
CXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNv
LXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3Jk
U2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGlu
IDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlz
dCBEZWZpbml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxpc3QtaWQ6NTgwNTk5MDk5Ow0KCW1z
by1saXN0LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczoxNTUxNjU5MzcwIDI2
OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1
IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1O30NCkBsaXN0IGwwOmxldmVsMQ0KCXttc28t
bGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1s
ZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVs
Mg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl
ZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0K
QGxpc3QgbDA6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51
bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpX
aW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1
bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJ
bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglm
b250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpu
b25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1
aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDYNCgl7bXNv
LWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28t
bGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMDps
ZXZlbDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0
Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0
aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpA
bGlzdCBsMDpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s
ZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJl
ci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291
cmllciBOZXciO30NCkBsaXN0IGwwOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpi
dWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJ
Zm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCm9sDQoJe21hcmdpbi1ib3R0b206MGluO30NCnVsDQoJ
e21hcmdpbi1ib3R0b206MGluO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+
DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+
PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4
dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxh
eW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLUNBIiBsaW5r
PSJibHVlIiB2bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+SGkgQWxleGFuZGVyPG86cD48L286cD48L3NwYW4+PC9iPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+QWJvdXQg4oCcWWVzLCBJIHN1cHBvc2UgeW91IHNob3VsZCBh
bHdheXMgc3RhcnQgd2l0aCBhbGlhc2VzLCBidXQgdGhhdCBkb2VzbuKAmXQgc291bmQgbGlrZSBh
IHN0cm9uZyBjb25zdHJhaW50IHRvIG1l4oCdPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+SWYgSSB0YWtlIHRoZSBmb2xsb3dp
bmcgZXhhbXBsZTo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibWFyZ2luLWxlZnQ6MS4waW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5HRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0KDEsIDIs
IDIwNDksIDMpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1m
YXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkRhdGEgbm9kZSBJRCAx
IGFuZCAyIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggbW9kdWxlIElEIDAgKGFsaWFzZXMpIGJ1dCBk
YXRhIG5vZGUgSUQgMjA0OSBhbmQgMyBhcmUgYXNzb2NpYXRlZA0KIHdpdGggbW9kdWxlIElEIDEu
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdp
bi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxh
bmd1YWdlOkVOLVVTIj5JIGRvbuKAmXQgdW5kZXJzdGFuZCBob3cgYWxpYXNlcyBjYW4gYmUgYWRk
ZWQgYXQgdGhlIGVuZCBvZiB0aGlzIGxpc3Qgd2l0aG91dCBiZWVuIHByb2Nlc3NlZCBhcyBzaG9y
dCBmb3JtLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+UGxlYXNlIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZy48bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkhpIEFuZHk8bzpwPjwvbzpw
Pjwvc3Bhbj48L2I+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5BYm91dCDigJxUaGUgZGF0YSBpcyBo
aWVyYXJjaGljYWwgYW5kIHRoZSBwYXJzZXIgaXMgcmVxdWlyZWQgdG8gbWFpbnRhaW4gdGhlIGN1
cnJlbnQgbW9kdWxlIHNjb3BlLiBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gb21pdCB0aGUNCiBt
b2R1bGUgaWRlbnRpZmllciBmb3IgbmVzdGVkIGRhdGEsIGV4Y2VwdCBmb3Igbm9kZXMgdGhhdCBz
dGFydCBhIG5ldyBtb2R1bGUgc2NvcGUuIElzIHRoaXMgd2hhdCB5b3UgaGF2ZSBpbiBtaW5kP+KA
nTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6LjVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3Vh
Z2U6RU4tVVMiPlllczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDtt
c28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+SeKAmW0gcHJvcG9zaW5nIHRvIHVzZSB0aGUgc2Ft
ZSBtb2RlbCBhcyBKU09OIHdpdGggYSBsb25nIGZvcm0gY29uc2lzdGluZyBvZiBhIDIwIGJpdHMg
bW9kdWxlIElELzEwIGJpdHMgWUFORw0KIElEIGFuZCB0aGUgc2hvcnQgZm9ybSBjb25zaXN0aW5n
IG9mIGEgMTAgYml0cyBZQU5HIElELjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpF
Ti1VUyI+QWJvdXQg4oCcSSBhbSBub3QgY29udmluY2VkIHRoYXQgYWxpYXNlcyBhcmUgd29ydGgg
YWxsIHRoZSBlZmZvcnQgYmVjYXVzZSBtb3N0ICg5NSU/KSBvZiB0aGUgSURzIGluIHRoZSBwYXls
b2FkIHdpbGwgb25seSBuZWVkIDEwIGJpdHMu4oCdPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+QWdyZWU8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PkluIG1vc3QgY2FzZXMsIHRoZSBtZXNzYWdlIHNpemUgY29tcHJlc3Npb24gd2lsbCBzYW1lIGp1
c3QgYSBjb3VwbGUgb2YgYnl0ZXMuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5BcyBtZW50aW9uZWQgYnkgQWxleGFu
ZGVyLCB3ZSBjYW4gc2ltcGx5IHJlc2VydmUgYSByYW5nZSBmb3IgYWxpYXNlcyAoZS5nLiBtb2R1
bGUgSUQgMCkgYnV0IGRlZmVyIHRoZSByZXNvbHV0aW9uDQogdG8gYSBkaWZmZXJlbnQgZHJhZnQu
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5IaSBQYXNjYWw8bzpw
PjwvbzpwPjwvc3Bhbj48L2I+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5BYm91dCDigJw8L3NwYW4+
PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5JIHVuZGVyc3RhbmQg
dGhhdCBhbnkgc2Vuc29yDQogdmVuZG9yIHdpbGwgd2FudCB0byBoYXZlIGl0cyBvd24gbW9kdWxl
IElEcywgY29ycmVjdD/igJ08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4t
bGVmdDouNWluIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkNv
cnJlY3QsIHdpdGggMjAgYml0cywgd2UgY2FuIGFsbG9jYXRlIDEgMDAwIDAwMCBtb2R1bGUgSUQu
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdp
bi1sZWZ0Oi41aW4iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
VGhpcyBjYW4gYmUgZG9uZSBvbmUgYnkgb25lIG9yIGJ5IHNtYWxsIGJ1bmRsZSBvZiBtb2R1bGUg
SURzIChlLmcuIDQsIDgsIDE2IElEcykuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+QWJvdXQg4oCcSSBoYXZlIG1pc3NlZCB0aGUgdHJpY2sgb2Yg
NjMgbW9kdWxlIElEcyB0aGF0IGFyZSBvcHRpbWFsbHkgZW5jb2RlZOKAnTxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6LjVpbiI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPldoZW4g
dXNpbmcgdGhlIGxvbmcgZm9ybSAoMjAgYml0cyBtb2R1bGUgSUQsIDEwIGJpdHMgWUFORyBJRCks
IGRhdGEgbm9kZSBJRCBzbWFsbCBlbm91Z2ggdG8gZml0IG9uIDE2IGJpdHMNCiBhcmUgZW5jb2Rl
ZCB1c2luZyBDQk9SIGluIDMgYnl0ZXMuIFNpbmNlIHRoZSBZQU5EIElEIHRha2VzIDEwIGJpdHMs
IHdlIGhhdmUgNiBiaXRzIGxlZnQgZm9yIHRoZSBtb2R1bGUgSUQgKDY0IElEcyBtaW51cyBJRCAw
IHJlc2VydmVkIGZvciB0aGUgc2hvcnQgZm9ybSkuIE1vZHVsZSBJRCBncmVhdGVyIHRoYW4gNjMg
cmVxdWlyZSB0aGUgdXNlIG9mIHRoZSA1IGJ5dGVzIENCT1IgZW5jb2RpbmcuPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5BYm91dCDigJxJZiBzbzogbWF5YmUgd2Ugc2hv
dWxkIGFsaWFzIHRoZSBtb2R1bGUgSURzIHNvIHRoYXQgdGhlIDYzIElEcyB0aGF0IGJlbmVmaXQg
ZnJvbSB0aGUgb3B0aW1hbCBDQk9SIGNvbXByZXNzaW9uIHNob3VsZCBiZSB0aGUNCiBhbGlhc2Vz
IG9mIGFueSBvZiB0aGUgdGhvdXNhbmRzIG9mIElEcyB0aGF0IHdpbGwgc29vbiBleGlzdCBpbiB0
aGUgcmVnaXN0cmllcy7igJ08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpF
Ti1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5BIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRvIHJlc2Vy
dmUgbW9kdWxlIElEIDAsIDEsIDIgYW5kIDMgZm9yIGFsaWFzZXMgd2hpY2ggd2lsbCBsZWF2ZSA2
MCDigJxtb3JlIG9wdGltYWzigJ0gbW9kdWxlDQogSURzLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouNWluIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+VGhlIHNwZWNp
ZmljIHVzZSBvZiB0aGUgcmVzZXJ2ZWQgbW9kdWxlIElEcyBjYW4gYmUgYWRkcmVzc2VkIGluIG9u
ZSBvZiBtdWx0aXBsZSBzdWJzZXF1ZW5jZSBkcmFmdHMuPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi41aW4iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5XaGF0IGlzIGlt
cG9ydGFudCBmb3Igbm93IGlzIHRoZSBlc3RhYmxpc2htZW50IG9mIGEgY29uc2Vuc3VzIGFyb3Vu
ZCB0aGUgY29yZSBjb25jZXB0cyBkaXNjdXNzZWQ6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWlu
ZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPg0KPCFbaWYgIXN1cHBvcnRMaXN0
c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFuIHN0eWxlPSJtc28tbGlz
dDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFu
JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsN
Cjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+cmVnaXN0ZXJlZCAyMCBiaXRzIG1vZHVs
ZSBJRDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBz
dHlsZT0ibWFyZ2luLWxlZnQ6MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxl
dmVsMSBsZm8xIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJm
b250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtl
bmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6
RU4tVVMiPjEwIGJpdHMgYXNzaWduZWQgWUFORyBJRDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MS4waW47dGV4dC1p
bmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj4NCjwhW2lmICFzdXBwb3J0TGlz
dHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xv
cjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3BhbiBzdHlsZT0ibXNvLWxp
c3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21h
biZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPmxvbmcgZm9ybSAvIHNob3J0IGZvcm0g
ZGF0YSBub2RlIElEPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJh
Z3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxp
c3Q6bDAgbGV2ZWwxIGxmbzEiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVh
c3QtbGFuZ3VhZ2U6RU4tVVMiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4g
c3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9z
cGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+c2VsZWN0IGVuY29kZWQgaW4gQ0JPUjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21z
by1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
ZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2lu
Zz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDti
b3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDku
MDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7
Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGlu
IDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj48aW1nIHdpZHRoPSIxMjAiIGhlaWdodD0iMjIiIGlkPSJfeDAw
MDBfaTEwMjYiIHNyYz0iY2lkOmltYWdlMDAxLmpwZ0AwMUQwQTU2Ni42RTRFMEIwMCIgYWx0PSJj
aWQ6aW1hZ2UwMDEuanBnQDAxQzg2OEQ4LkJGMEJCN0UwIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L3RkPg0KPHRkIHdpZHRoPSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1
cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVj
dG9yPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUwLTM3
NS0wNTU2IGV4dC4gMjM3PGJyPg0KPGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJp
bGxpYW50aW5jLmNvbSI+PHNwYW4gc3R5bGU9ImNvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWlsbGV0
dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWY7Y29sb3I6IzFGNDk3RCI+PGEgaHJlZj0iaHR0cDovL3d3dy50cmlsbGlhbnRpbmMuY29tLyI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90
OyxzYW5zLXNlcmlmIj53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj4NCiAmbmJzcDsgPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtj
b2xvcjojMUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPC90cj4NCjwvdGJv
ZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2IHN0
eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzoz
LjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBsYW5nPSJF
Ti1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZiI+IFBhc2NhbCBUaHViZXJ0IChwdGh1YmVydCkgW21haWx0bzpwdGh1YmVydEBjaXNjby5j
b21dDQo8YnI+DQo8Yj5TZW50OjwvYj4gMTIganVpbiAyMDE1IDIxOjExPGJyPg0KPGI+VG86PC9i
PiBNaWNoZWwgVmVpbGxldHRlOyBBbGV4YW5kZXIgUGVsb3Y8YnI+DQo8Yj5DYzo8L2I+IEFuZHkg
Qmllcm1hbjsgNnRpc2NoQGlldGYub3JnOyBjb3JlQGlldGYub3JnPGJyPg0KPGI+U3ViamVjdDo8
L2I+IFJFOiBbNnRpc2NoXSBSZXNlcnZlIHNwYWNlIGZvciBhbGlhc2VzPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj5IZWxsbyBNaWNoZWw6PG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPknigJltIG5vdCBz
byB3b3JyaWVkIGZvciA2VGlTQ0jigJlzIElEIHRoYW4gZm9yIHRoZSBJRHMgdXNlZCB0byBjb2xs
ZWN0IGRhdGEgZnJvbSBzZW5zb3JzLiBCZWNhdXNlIHRoYXQgaXMgdGhlIG9wZXJhdGlvbiB0aGF0
IHdpbGwgaGFwcGVuIGFsbCB0aGUgdGltZQ0KIGFuIHN1Y2sgYmF0dGVyaWVzLjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+SSB1bmRlcnN0YW5kIHRoYXQgYW55IHNlbnNvciB2ZW5kb3Ig
d2lsbCB3YW50IHRvIGhhdmUgaXRzIG93biBtb2R1bGUgSURzLCBjb3JyZWN0PyBBbmQgc29vbiBl
bm91Z2ggdGhhdCB2ZW5kb3Igd2lsbCBjb21lIHdpdGggdmFyaWFudHMgb2YgaGlzIHByb2R1Y3Rz
LA0KIGFuZCB3aWxsIHdhbnQgbW9yZSBtb2R1bGUgSURzLCBpcyB0aGF0IHJpZ2h0PzxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj5JZiBJ4oCZbSBjb3JyZWN0LCB0aGlzIHBsZWFkcyBmb3IgYWxpYXNlczsgYnV0IG1heWJl
IG5vdCBhcyB3ZSB0aG91Z2h0IHRoZW0uIEkgaGF2ZSBtaXNzZWQgdGhlIHRyaWNrIG9mIDYzIG1v
ZHVsZSBJRHMgdGhhdCBhcmUgb3B0aW1hbGx5IGVuY29kZWQsIGJ1dA0KIEkgdHJ1c3QgeW91IG9u
IHRoYXQg4oCTIEkgZmlndXJlIHRoYXQgaXQgaXMgYmVjYXVzZSBpdCB0YWtlcyAyIGJpdHMgdG8g
ZW5jb2RlZCB0aGUgY29hcCBvcHRpb24/PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs
YW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPklmIHNvOiBtYXliZSB3ZSBzaG91
bGQgYWxpYXMgdGhlIG1vZHVsZSBJRHMgc28gdGhhdCB0aGUgNjMgSURzIHRoYXQgYmVuZWZpdCBm
cm9tIHRoZSBvcHRpbWFsIGNib3IgY29tcHJlc3Npb24gc2hvdWxkIGJlIHRoZSBhbGlhc2VzIG9m
IGFueSBvZiB0aGUNCiB0aG91c2FuZHMgb2YgSURzIHRoYXQgd2lsbCBzb29uIGV4aXN0IGluIHRo
ZSByZWdpc3RyaWVzLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5BbHNvIG5vdGUgdGhhdCBkZXZpY2UgbWFrZXJzIHdp
bGwgd2FudCB0aGUgdmVuZG9yIHNwZWNpZmljIHJhbmdlIHRoYXQgdGhleSB1c2UgdG8gcGxheSB3
aXRoIGJlZm9yZSBzb21ldGhpbmcgaXMgcmVnaXN0ZXJlZC4gQWxpYXNlcyBjb3VsZCBhbHNvIGJl
DQogYSB3YXkgdG8gcGxheSB3aXRoIG1vZHVsZSBJRHMgdGhhdCBoYXZlIG5vdCB5ZXQgYmVlbiBy
ZWdpc3RlcmVkIHRvIElBTkEuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5J4oCZbSBub3Qgc3VyZSB0aGUg
YWJvdmUgbWFrZXMgc2Vuc2Ugc2luY2UgaXQgaXMgYmFzZWQgb24gYSBwYXJ0aWFsIHVuZGVyc3Rh
bmRpbmcgb2YgeW91ciB3b3JrIHNvIGZhcuKApjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3
RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRlIiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5QYXNjYWw8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVT
IiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K
PGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRk
aW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTti
b3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQt
c2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LHNhbnMtc2VyaWYiPkZy
b206PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LHNhbnMtc2VyaWYiPiBNaWNoZWwgVmVpbGxl
dHRlIFs8YSBocmVmPSJtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIj5t
YWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9hPl0NCjxicj4NCjxiPlNl
bnQ6PC9iPiB2ZW5kcmVkaSAxMiBqdWluIDIwMTUgMDk6NTg8YnI+DQo8Yj5Ubzo8L2I+IEFsZXhh
bmRlciBQZWxvdjsgUGFzY2FsIFRodWJlcnQgKHB0aHViZXJ0KTxicj4NCjxiPkNjOjwvYj4gQW5k
eSBCaWVybWFuOyA8YSBocmVmPSJtYWlsdG86NnRpc2NoQGlldGYub3JnIj42dGlzY2hAaWV0Zi5v
cmc8L2E+OyA8YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyI+DQpjb3JlQGlldGYub3JnPC9h
Pjxicj4NCjxiPlN1YmplY3Q6PC9iPiBSRTogWzZ0aXNjaF0gUmVzZXJ2ZSBzcGFjZSBmb3IgYWxp
YXNlczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkhpIEFs
ZXhhbmRlciwgaGkgUGFzY2FsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj5JIHdhbnQgdG8gZW1waGFzZXMgdGhlIGZvbGxvd2luZyBwb2ludHM8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJh
Z3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj7Ctzwvc3Bhbj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjcuMHB0O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj5UaGUgdXNlIG9mIHRoZSBzZWxlY3QgcXVlcnkgcGFyYW1ldGVyIGVuY29kZWQg
aW4gQ0JPUiBzdXBwb3J0IG9mIDYzIG1vZHVsZXMgd2l0aCBvcHRpbWl6ZWQgbWVzc2FnZSBzaXpl
IGluc3RlYWQgb2Ygb25seSAzIGZvciB0aGUgYmFzZTY0IFVSSS48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPklmIHRoZSA2VGlTQ0ggbW9kdWxlIElEIGlzIGFsbG9jYXRlZCB3aXRoaW4gdGhlc2Ug
NjMgSURzLCB0aGVyZSB3aWxsIGJlIG5vIG1lc3NhZ2Ugc2l6ZSBvcHRpbWl6YXRpb24gcHJvdmlk
ZWQgYnkgdGhlIGFsaWFzZXMgbWVjaGFuaXNtLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhp
cyBtYWtlIHRoZSBpbnRyb2R1Y3Rpb24gb2YgYWxpYXNlcyBsZXNzIHVyZ2VudC48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4yNWluIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpTeW1ib2w7Y29sb3I6IzFGNDk3RCI+wrc8L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdDtjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlIG1lc3NhZ2Ugc2l6ZSBvZiB0aGUgc2VsZWN0IHF1ZXJ5
IHBhcmFtZXRlciBlbmNvZGVkIGluIENCT1Igc2hvdWxkIGJlIGVxdWFsIG9yIHNtYWxsZXIgY29t
cGFyZWQgdG8gdGhlIGJhc2U2NCBVUkkuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5Ib3dldmVy
LCB0aGUgc2VsZWN0IHF1ZXJ5IHBhcmFtZXRlciBlbmNvZGVkIGluIENCT1Igc3VwcG9ydCBhIHdp
ZGVyIHJhbmdlIG9mIHZhbHVlcyB3aXRob3V0IHNpemUgcGVuYWx0eSAoMTYgYml0cyBpbnN0ZWFk
IG9mIDEyLCAzMiBiaXRzIGluc3RlYWQgb2YgMzApPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5G
dXJ0aGVybW9yZSwgQ29NSSBkZXZpY2VzIHdvbuKAmXQgaGF2ZSB0byBzdXBwb3J0IHR3byB0eXBl
IG9mIGVuY29kaW5nIGRlcGVuZGluZyBpZiBJRHMgYXJlIHBhcnQgb2YgdGhlIGNvbW1hbmQgdnMu
IHBheWxvYWQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3Jh
cGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPkZvciBleGFtcGxlOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj5Bc3N1bWluZyBtb2R1bGUgSUQgMjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+QXNzdW1pbmcgZGF0YSBub2RlIElEIDEsIDIsIDMsIDQgKGxvbmcgZm9ybSAy
MDQ5LCAyMDUwLCAyMDUxKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0
UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+QXNzdW1pbmcg4oCcLOKA
nSBzZXBhcmF0b3IgdG8gc2VsZWN0IG11bHRpcGxlIGRhdGEgbm9kZXM8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0
UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+QmFzZTY0IGFwcHJvYWNo
OjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVROiBHRVQgZXhhbXBsZS5jb20vbWcvZ0ImbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKDMgYnl0ZXM7IDEg
Ynl0ZSBmb3IgdGhlIOKAnC/igJ0sIDIgYnl0ZXMgZm9yIOKAnGdC4oCdKTxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xp
c3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5DQk9SIGFwcHJvYWNo
OjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVROiBHRVQgZXhhbXBsZS5jb20vbWc/c2VsZWN0
KDIwNDkpJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICg0
IGJ5dGVzOyBvbmUgYnl0ZSBmb3IgdGhlIENvQVAgb3B0aW9uLCAzIGZvciAyMDQ5IGVuY29kZWQg
dXNpbmcgQ0JPUik8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFn
cmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+QmFzZTY0IGFwcHJvYWNoOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UkVR
OiBHRVQgZXhhbXBsZS5jb20vbWcvZ0IsQyxELEUmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsgKDkgYnl0ZXM7IDEgYnl0ZSBmb3IgdGhlIOKAnC/igJ0sIDgg
Ynl0ZXMgZm9yIOKAnGdCLEMsRCxF4oCdKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPkNCT1IgYXBwcm9hY2g6PG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij5SRVE6IEdFVCBleGFtcGxlLmNvbS9tZz9zZWxlY3QoIFsyMDQ5LDIsMyw0XSApJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICg4IGJ5dGVzOyAxIGJ5dGUgZm9yIHRoZSBDb0FQIG9wdGlv
biwgMSBmb3IgdGhlIENCT1IgYXJyYXksIDMmIzQzOzEmIzQzOzEmIzQzOzEgYnl0ZXMgZm9yIHRo
ZSBJRHMpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZu
YnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJs
ZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTci
IHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5
Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9Indp
ZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4w
cHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48aW1nIGJvcmRlcj0i
MCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIyMiIgaWQ9IlBpY3R1cmVfeDAwMjBfMiIgc3JjPSJjaWQ6
aW1hZ2UwMDEuanBnQDAxRDBBNTY2LjZFNEUwQjAwIiBhbHQ9ImNpZDppbWFnZTAwMS5qcGdAMDFD
ODY4RDguQkYwQkI3RTAiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8dGQgd2lkdGg9
IjU4MCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo0MzQuNjVwdDtwYWRkaW5nOjBpbiA1LjRw
dCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1hcmdpbi1sZWZ0OjguMXB0Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+TWljaGVsIFZl
aWxsZXR0ZTxicj4NClN5c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3I8L3NwYW4+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPlRyaWxsaWFudCBJbmMuPGJyPg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzc8YnI+
DQo8YSBocmVmPSJtYWlsdG86bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIj48c3Bh
biBzdHlsZT0iY29sb3I6IzA1NjNDMSI+bWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29t
PC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48
YSBocmVmPSJodHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPnd3dy50
cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPg0KICZuYnNwOyA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRp
dj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBw
dDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxz
cGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkZyb206PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJF
Ti1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj4gQWxleGFuZGVyIFBlbG92IFs8YSBocmVmPSJtYWlsdG86YWxleGFu
ZGVyLnBlbG92QHRlbGVjb20tYnJldGFnbmUuZXUiPm1haWx0bzphbGV4YW5kZXIucGVsb3ZAdGVs
ZWNvbS1icmV0YWduZS5ldTwvYT5dDQo8YnI+DQo8Yj5TZW50OjwvYj4gMTEganVpbiAyMDE1IDE3
OjA2PGJyPg0KPGI+VG86PC9iPiBQYXNjYWwgVGh1YmVydCAocHRodWJlcnQpPGJyPg0KPGI+Q2M6
PC9iPiBBbmR5IEJpZXJtYW47IE1pY2hlbCBWZWlsbGV0dGU7IDxhIGhyZWY9Im1haWx0bzo2dGlz
Y2hAaWV0Zi5vcmciPjZ0aXNjaEBpZXRmLm9yZzwvYT47DQo8YSBocmVmPSJtYWlsdG86Y29yZUBp
ZXRmLm9yZyI+Y29yZUBpZXRmLm9yZzwvYT48YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFs2dGlz
Y2hdIFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGkgUGFzY2FsLDxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8
YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5MZSAxMCBqdWluIDIwMTUgw6AgMTU6MjUsIFBh
c2NhbCBUaHViZXJ0IChwdGh1YmVydCkgJmx0OzxhIGhyZWY9Im1haWx0bzpwdGh1YmVydEBjaXNj
by5jb20iPnB0aHViZXJ0QGNpc2NvLmNvbTwvYT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj5EZWFyIGFsbDo8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlRoaXMgbG9va3MgbGlrZSB0aGUgcHJv
YmxlbSBvZiBsb2NhbCBuYW1lc3BhY2VzLCZuYnNwOyB3aGljaCBpcyB0aGUgcmVhc29uIHdoeSBN
UExTIHN3aXRjaGVzIGxhYmVscy48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhl
IHVzZXIgbWF5IGFjY2VzcyBhIGxpbWl0ZWQgc2V0IG9mIHJlc291cmNlcyBmcm9tIGEgbnVtYmVy
IG9mIHNlcnZlcnMsIGFuZCBzZXJ2ZXJzIGFyZSByZWFkIGJ5IG1hbnkgdXNlcnMuPC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPllvdSBjYW5ub3QgZW5zdXJlIHRoYXQgeW91IGhhdmUg
YSBzaW5nbGUgYWxpYXMgc3BhY2UgdGhhdCBzYXRpc2ZpZXMgdGhlbSBhbGwuPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPkdyZWF0IGFuYWxvZ3khIEFuZCB5ZXMsIHNhZGx5IHlvdSBjYW5ub3Qg
c2F0aXNmeSB0aGVtIGFsbCwgYXQgbGVhc3Qgbm90IHdpdGggYWxsIGRldmljZXMuPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9t
OjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2lu
LXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5TbyAsd2hhdCBpZiB0aGUgdXNlciBoYWQgaXRzIG93
biBzZXQgb2YgYWxpYXNlcyBhbmQgdGhlIHNlcnZlciBhbHNvIGhhZCBpdHMgb3duIHNldCBvZiBh
bGlhc2VzPzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlIGFsaWFzZXMgY291bGQgYmUgbWFwcGVkIGluIGEg
dGFibGUgbGlrZSBhIHVTQVAgYW5kIGEgcFNBUCBhcmUgbWFwcGVkIGFjcm9zcyBsYXllcnMuIEJy
b2FkbHk6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPi0gRmlyc3QgdGltZSBhIHVz
ZXIgcmVxdWVzdHMgYSByZXNvdXJjZSBpbiBhIHNlcnZlciwgaXQgY29tZXMgd2l0aCBhIHR1cGxl
ICh1c2VyaWQsIHVzZXJhbGlhcywgZnVsbG5hbWUpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPi0gVGhlIHNlcnZlciByZXNwb25kcyB3aXRoIChzZXJ2ZXJpZCwgc2VydmVyYWxpYXMs
IHVzZXJpZCwgdXNlciBhbGlhcykuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFjdHVhbGx5
LCBJIHRoaW5rIHRoYXQgdGhpcyBjb3VsZCBiZSB3b3JrZWQgb3V0IGluIENvTUkgYWxzby4gSW5z
dGVhZCBvZiBmdWxsbmFtZSB5b3UgY291bGQgcHJvdmlkZSB0aGUgWUFORyBpZCAobW9kdWxlIElE
ICYjNDM7IGRhdGEgbm9kZSBJRCkgYW5kIGRvIHRoZSBtYXBwaW5nLiBVc2VyIGFsaWFzIHdvdWxk
IGJlIHRoZSBzcGVjaWFsIGFsaWFzZWQgWUFORyBpZC4gVXNlciBJRCwgaG93ZXZlciwgY291bGQg
YmUgYQ0KIGxpdHRsZSBiaXQgbW9yZSB0cmlja3kgLSBob3cgZG8gd2UgZW5zdXJlIHRoYXQgaXQg
aXMgY29uc2lzdGVudD8gVXNlIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjbGllbnQgY291bGQgYmUg
ZG9hYmxlLCBidXQgd2XigJlsbCBoYXZlIHRvIGluY2x1ZGUgdGhlIFVEUCBwb3J0IGp1c3QgaW4g
Y2FzZSBzb21lb25lIHJ1bnMgdHdvIGNsaWVudHMgb24gdGhlIHNhbWUgbWFjaGluZS48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWJv
dHRvbToxMi4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1h
cmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+QWZ0ZXIgdGhhdCwmbmJzcDsgaWYgdGhlIHNl
cnZlciBpcyBhIGNvbnN0cmFpbmVkIGRldmljZSB0aGVuIHRoZSB1c2VyIHRhbGtzIHRvIHRoZSBz
ZXJ2ZXIgd2l0aCAoc2VydmVyaWQsIHNlcnZlcmFsaWFzKSBhbmQgdGhlIHVzZXIgbWFpbnRhaW5z
IGEgc3dpdGNoaW5nIHRhYmxlIGZvcg0KIHRoZSByZXNvdXJjZSBpdCB1c2VzIG9uIHZhcmlvdXMg
c2VydmVycy48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SWYgdGhlIHVzZXIgaXMg
dGhlIGNvbnN0cmFpbmVkIGRldmljZSBhbmQgdGhlIHNlcnZlciBpcyBub3QsIHRoZSB1c2VyIGNv
dWxkIHRhbGsgd2l0aCAodXNlcmlkLCB1c2VyYWxpYXMpIGFuZCB0aGUgc2VydmVyIG1haW50YWlu
cyBhIHN3aXRjaGluZyB0YWJsZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkZvciBsYXJnZSBzZXJ2ZXJzLCB0
aGUgc2VydmVyIG1heSBhbGxvY2F0ZSBhbGlhc2VzIGR5bmFtaWNhbGx5IGJhc2VkIG9uIHdoYXQg
aXQgaXMgYmVpbmcgYXNrZWQuIFdl4oCZZCB0aGVuIG5lZWQgdG8gdGFsayBhYm91dCBhbGlhcyB1
cGRhdGUgb3IgcmV2b2NhdGlvbiwgcHJvYmFibHkNCiBpbiB0ZXJtcyBvZiBzZXNzaW9uIGFuZCBs
aWZldGltZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkRvZXMgdGhhdCBsb29rIHVzYWJsZT88L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+WW91IGFyZSBwb2ludGluZyBvdXQgYW4gaW50ZXJlc3RpbmcgcXVl
c3Rpb24uIEkgd291bGQgdGhpbmsgKGJ1dCBtYXliZSBJ4oCZbSBtaXN0YWtlbiksIHRoYXQgdGhl
IGNsaWVudCBzaG91bGQgaGF2ZSB0aGUgbGVhZGluZyByb2xlIGluIGZpZ3VyaW5nIG91dCB3aGF0
4oCZcyBoYXBwZW5pbmcuIFRoZSBpZGVhIGlzIHRoZSBmb2xsb3dpbmc6PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBjbGllbnQgY2hlY2tz
IGlmIHRoZSBzZXJ2ZXIgc3VwcG9ydHMgYWxpYXNpbmcsIHdpdGggdGhlIHBvc3NpYmxlIG9wdGlv
bnM6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5T
MSkgbm8gYWxpYXNpbmc8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPlMyKSBzdGF0aWMvc2VydmVyLWRlZmluZWQgYWxpYXNpbmc8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlMzKSBkeW5hbWljL3Npbmds
ZSBhbGlhcyBtYXBwaW5nJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgUzMuMSkgbWFwcGluZyBhbHJlYWR5IGRlZmluZWQ8bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBT
My4yKSBubyBtYXBwaW5nIGRlZmluZWQ8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPlM0KSBkeW5hbWljL3BlciBjbGllbnQgYWxpYXMgbWFwcGluZzxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m
bmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGVu
LCB0aGUgY2xpZW50IGNhbiB0YWtlIGFjdGlvbiwgZGVwZW5kaW5nIG9uIGl0cyBvd24gY2FwYWJp
bGl0aWVzIGFuZCB0aGUgcmVzcG9uc2Ugb2YgdGhlIHNlcnZlci4gRS5nLiBhIHVuY29uc3RyYWlu
ZWQgY2xpZW50IGNvdWxkIG9idGFpbiB0aGUgYWxpYXMgbWFwcGluZyBpZiBpdCBpcyBzdGF0aWMg
KG9yIGlmIHRoZXJlIGlzIGEgc2luZ2xlIGFsaWFzIG1hcHBpbmcgaW4gcGxhY2UpIGFuZCBjYWNo
ZSBpdA0KIGxvY2FsbHkuIFNvLCB0aGVyZSB3aWxsIGJlIHRoZSBmb2xsb3dpbmcgY29ycmVzcG9u
ZGVuY2UgOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5HaXZlbjo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPkMxKSBjb25zdHJhaW5lZCBjbGllbnQ8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkMyKSB1bmNvbnN0cmFpbmVkIGNsaWVudDxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5XZSBoYXZlOjxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QzEgJiM0
MzsgUzEpIG5vIGFsaWFzaW5nLCBub3RoaW5nIHRvIGRvPG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5DMSAmIzQzOyBTMikgYW5kIEMxICYjNDM7IFMz
LjEpIGlmIHRoZSBhbGlhcyBtYXBwaW5nIGlzIGtub3duLCB1c2UgaXQuIG90aGVyd2lzZSwgaWdu
b3JlPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5D
MSAmIzQzOyBTMy4yKSBhbmQgQzEgJiM0MzsgUzQpIGRlZmluZSBhbGlhcyBtYXBwaW5nPG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5D
MiAmIzQzOyBTMSkgbm8gYWxpYXNpbmcsIG5vdGhpbmcgdG8gZG88bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5DMiAmIzQzOyBTMikgYW5k
IEMyICYjNDM7IFMzLjEpIGlmIHRoZSBhbGlhcyBtYXBwaW5nIGlzIGtub3duLCB1c2UgaXQuIG90
aGVyd2lzZSwgbGVhcm4gaXQ8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkMyICYjNDM7IFMzLjIpIGFuZCBDMiAmIzQzOyBT
NCkgZGVmaW5lIGFsaWFzIG1hcHBpbmc8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+SSB3b3VsZCBzYXkgdGhhdCB0aGUgYW5hbG9neSB5b3UgbWFk
ZSB3aXRoIE1QTFMgY29ycmVzcG9uZHMgcXVpdGUgYSBsb3QgdG8gdGhlIEMyJiM0MztTNCBjYXNl
LiBQZXJzb25hbGx5LCBJIHdvdWxkIGJlIG1vc3QgaW50ZXJlc3RlZCBpbnRvIGhhdmluZyBvbmUg
Y2xpZW50IGNvbmZpZ3VyZSBvbmUgYWxpYXMgbWFwcGluZyB0byBhbGwgc2VydmVycyBpbiB0aGUg
bmV0d29yayAoZS5nLiB0aGUgbWFuYWdpbmcgZW50aXR5KSwNCiB3aGljaCB3aWxsIHByb2ZpdCBt
b3N0IGZyb20gc2F2aW5nIHNldmVyYWwgYnl0ZXMgb24gZWFjaCBtZXNzYWdlIGV4Y2hhbmdlLiBF
dmVyeW9uZSBlbHNlIGNvdWxkIHVzZSB0aGUgc3RhbmRhcmQgSURzLCB3aGljaCB3ZeKAmXZlIGFs
cmVhZHkgbWFuYWdlZCB0byBzaHJpbmsgc2lnbmlmaWNhbnRseS48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SW5kZWVkLCB3aXRoIHN0cnVjdHVy
ZWQgbW9kdWxlIElEICYjNDM7IGRhdGEgbm9kZSBJRCAoMjAgYml0cyAmIzQzOyAxMCBiaXRzKSwg
WUFORyBVUkkgY29tcHJlc3Npb24sIGFuZCBsb25nIGZvcm0vc2hvcnQgZm9ybSwgd2XigJlsbCBo
YXZlIHF1aXRlIGEgbG90IG9mIGdhaW4uIFJlc2VydmluZyBtb2R1bGUgSUQgPSAxIGZvciBhbGlh
c2VzIGFuZCBtYXliZSB3cml0aW5nIGEgc2hvcnQgZHJhZnQgb24gaG93IHRoZSBhbGlhc2luZw0K
IGlzIGltcGxlbWVudGVkIHNlZW1zIGZlYXNpYmxlLCB3aGVyZSB3ZSBjYW4gY292ZXIgdGhlIGV4
YWN0IG1lY2hhbmlzbSBvZiBhbGlhcyBkZWZpbml0aW9uLCBhbmQgY2xpZW50L3NlcnZlciBpbnRl
cmFjdGlvbi48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+QWxleGFuZGVyPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4N
CjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQi
Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPlBhc2Nh
bDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlk
IGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHls
ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4w
cHQgMGluIDBpbiAwaW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OyxzYW5z
LXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFj
ZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21h
JnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LHNhbnMtc2VyaWYiPjZ0
aXNjaA0KIFs8YSBocmVmPSJtYWlsdG86NnRpc2NoLWJvdW5jZXNAaWV0Zi5vcmciPm1haWx0bzo2
dGlzY2gtYm91bmNlc0BpZXRmLm9yZzwvYT5dPHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1z
cGFjZSI+Jm5ic3A7PC9zcGFuPjxiPk9uIEJlaGFsZiBPZjxzcGFuIGNsYXNzPSJhcHBsZS1jb252
ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48L2I+QW5keSBCaWVybWFuPGJyPg0KPGI+U2VudDo8
L2I+PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPnZlbmRy
ZWRpIDUganVpbiAyMDE1IDIwOjU1PGJyPg0KPGI+VG86PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5NaWNoZWwgVmVpbGxldHRlPGJyPg0KPGI+Q2M6
PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBo
cmVmPSJtYWlsdG86NnRpc2NoQGlldGYub3JnIj42dGlzY2hAaWV0Zi5vcmc8L2E+OyBBbGV4YW5k
ZXIgUGVsb3Y7DQo8YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyI+Y29yZUBpZXRmLm9yZzwv
YT48YnI+DQo8Yj5TdWJqZWN0OjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNl
Ij4mbmJzcDs8L3NwYW4+UmU6IFs2dGlzY2hdIFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXM8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gRnJpLCBKdW4gNSwg
MjAxNSBhdCAxMTo0MSBBTSwgTWljaGVsIFZlaWxsZXR0ZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOk1p
Y2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0
eWxlPSJjb2xvcjpwdXJwbGUiPk1pY2hlbC5WZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bh
bj48L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Qi
PkhpIEFsZXhhbmRlcjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SSBoYXZlIHNvbWUgY29uY2VybnMgYWJvdXQg
YWxsb3dpbmcgQ29NSSBjbGllbnQocykgdGhlIGNvbnRyb2wgb2YgdGhlIGxpc3Qgb2YgYWxpYXNl
cy48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhpcyBhcHByb2FjaCB3b3JrIGZp
bmUgZm9yIHRoZSBmaXJzdCBDb01JIGFwcGxpY2F0aW9uIChlLmcuIDZUaVNDSCkgYnV0IHdoYXQg
ZG8gd2UgZG8gd2l0aCB0aGUgc3Vic2VxdWVudCBDb01JIGFwcGxpY2F0aW9uPzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu
cy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+T25lIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRoYXQgZWFjaCBDb01JIGNsaWVudCBzZW5k
IGEgbGlzdCBvZiAoYWxpYXMsIGRhdGEgbm9kZSBJRCkgdG8gdGhlIENvTUkgc2VydmVyLiBJbiB0
aGlzIGNhc2UsIHRoZSBDb01JIGNsaWVudCBtaWdodCByZWNlaXZlIGFuIGVycm9yIGlmDQogb25l
IG9yIG11bHRpcGxlIG9mIHRoZXNlIGFsaWFzZXMgYXJlIGFscmVhZHkgcmVzZXJ2ZWQuPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv
cjojMUY0OTdEIj5BIHNlY29uZCBwb3NzaWJsZSBzb2x1dGlvbiBpcyB0aGF0IGVhY2ggQ29NSSBj
bGllbnQgc2VuZCBhIGxpc3Qgb2YgKGRhdGEgbm9kZSBJRCkgYW5kIGdldCBhIGxpc3Qgb2YgKGFs
aWFzLCBkYXRhIG5vZGUgSUQpIGZyb20gdGhlIENvTUkgc2VydmVyLiBJbiB0aGlzIGNhc2UsDQog
Q29NSSBjbGllbnRzIHdpbGwgaGF2ZSB0byBkZWFsIHdpdGggYSBtaXggcG9wdWxhdGlvbiBvZiBh
bGlhc2VzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhlIHByb3Bvc2VkIHNvbHV0aW9uIG5lZWQgdG8gc2Nh
bGUgdG8gYSBtdWx0aS12ZW5kb3JzLCBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgZW52aXJvbm1lbnQu
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPldpdGggdGhpcyBpcyBtaW5kLCBkbyB5
b3UgaGF2ZSBhbnkgYWx0ZXJuYXRpdmUgc29sdXRpb25zIHRvIHByb3Bvc2U/PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkRvZXMgdGhpcyBhcHByb2FjaCBhbGxvdyBl
YWNoIGNsaWVudCB0byBoYXZlIGEgZGlmZmVyZW50IHNldCBvZiBhbGlhc2VzLDxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
c28gdGhlIHNlcnZlciBoYXMgdG8gbWFpbnRhaW4gYSBjb25maWd1cmVkIG1hcHBpbmcgZm9yIGVh
Y2ggY2xpZW50PzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhpcyBzZWVtcyBsaWtlIGEgbG90IG9mIG92ZXJoZWFkIGFu
ZCBOVi1zdG9yYWdlIHJlcXVpcmVtZW50czxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+b24gdGhlIHNlcnZlci48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Q2hhbmdpbmcgdGhlIHNjaGVtYSBpZGVudGlmaWVycyBiYXNl
ZCBvbiB3aGljaCBjbGllbnQgaXM8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnNlbmRpbmcgdGhlIHJlcXVlc3Qgc2VlbXMg
bGlrZSBhIGNvbXBsaWNhdGVkIGRlc2lnbiBjaGFuZ2U8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPmZyb20gUkVTVENPTkYs
IE5FVENPTkYsIG9yIFNOTVAsIHdoZXJlIHRoZXJlIGlzIG9ubHk8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjEgc2NoZW1h
IHRyZWUgd2hpY2ggaXMgbm90IGRlcGVuZGVudCBvbiB0aGUgY2xpZW50IGlkZW50aXR5LjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkFuZHk8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6
bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4g
Ni4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGlu
O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHRhYmxlIGNsYXNz
PSJNc29Ob3JtYWxUYWJsZSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9
IjAiIHdpZHRoPSI3MTciIHN0eWxlPSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29s
bGFwc2UiPg0KPHRib2R5Pg0KPHRyIHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9
IjEzNyIgc3R5bGU9IndpZHRoOjEwMy4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlk
IHdpbmRvd3RleHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4w
NXB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6
IzFGNDk3RCI+Jmx0O2ltYWdlMDAxLmpwZyZndDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvdGQ+DQo8dGQgd2lkdGg9IjU4MCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJ3aWR0aDo0MzQu
NjVwdDtwYWRkaW5nOjBpbiA1LjRwdCAwaW4gNS40cHQ7aGVpZ2h0OjQ5LjA1cHQiPg0KPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0ZWN0
dXJlIERpcmVjdG9yPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2IHN0eWxlPSJt
YXJnaW4tbGVmdDo4LjFwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+VHJpbGxpYW50IEluYy48YnI+DQpUZWw6IDQ1MC0zNzUtMDU1NiBleHQuIDIz
Nzxicj4NCjxhIGhyZWY9Im1haWx0bzptaWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20i
IHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6IzA1NjNDMSI+bWljaGVsLnZlaWxs
ZXR0ZUB0cmlsbGlhbnRpbmMuY29tPC9zcGFuPjwvYT48L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48YSBocmVmPSJodHRwOi8vd3d3LnRy
aWxsaWFudGluYy5jb20vIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOnB1cnBs
ZSI+d3d3LnRyaWxsaWFudGluYy5jb208L3NwYW4+PC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBw
bGUtY29udmVydGVkLXNwYWNlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PHNwYW4gY2xhc3M9
ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC90ZD4NCjwvdHI+DQo8L3Rib2R5Pg0KPC90YWJsZT4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVy
LXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+
PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+
Jm5ic3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkFsZXhhbmRlcg0KIFBlbG92IFtt
YWlsdG86PGEgaHJlZj0ibWFpbHRvOmFsZXhhbmRlci5wZWxvdkB0ZWxlY29tLWJyZXRhZ25lLmV1
IiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBsZSI+YWxleGFuZGVyLnBl
bG92QHRlbGVjb20tYnJldGFnbmUuZXU8L3NwYW4+PC9hPl08c3BhbiBjbGFzcz0iYXBwbGUtY29u
dmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPg0KPGI+U2VudDo8L2I+PHNwYW4gY2xhc3M9
ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjUganVpbiAyMDE1IDEyOjAzPGJy
Pg0KPGI+VG86PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwv
c3Bhbj5NaWNoZWwgVmVpbGxldHRlPGJyPg0KPGI+Q2M6PC9iPjxzcGFuIGNsYXNzPSJhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj5BbmR5IEJpZXJtYW47PHNwYW4gY2xhc3M9ImFw
cGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxhIGhyZWY9Im1haWx0bzo2dGlzY2hA
aWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj42dGlz
Y2hAaWV0Zi5vcmc8L3NwYW4+PC9hPjs8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNl
Ij4mbmJzcDs8L3NwYW4+PGEgaHJlZj0ibWFpbHRvOmNvcmVAaWV0Zi5vcmciIHRhcmdldD0iX2Js
YW5rIj48c3BhbiBzdHlsZT0iY29sb3I6cHVycGxlIj5jb3JlQGlldGYub3JnPC9zcGFuPjwvYT48
YnI+DQo8Yj5TdWJqZWN0OjwvYj48c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4m
bmJzcDs8L3NwYW4+UmU6IFJlc2VydmUgc3BhY2UgZm9yIGFsaWFzZXM8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+SGkgTWljaGVsLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4w
cHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPkxlIDUganVpbiAyMDE1IMOgIDE3OjE3LCBNaWNoZWwgVmVpbGxldHRlICZsdDs8YSBocmVm
PSJtYWlsdG86TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFu
ayI+PHNwYW4gc3R5bGU9ImNvbG9yOnB1cnBsZSI+TWljaGVsLlZlaWxsZXR0ZUB0cmlsbGlhbnRp
bmMuY29tPC9zcGFuPjwvYT4mZ3Q7IGEgw6ljcml0IDo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
c2Fucy1zZXJpZiI+SGkgQWxleGFuZGVyPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPkluIHlvdXIgcHJlc2Vu
dGF0aW9uIGF0IDZUaVNDSCwgeW91IHByb3Bvc2UgdGhlIGZvbGxvd2luZyBkYXRhIG5vZGUgSUQg
c3RydWN0dXJlLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFs
VGFibGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBzdHlsZT0i
Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIj4NCjx0Ym9keT4NCjx0cj4NCjx0ZCB3aWR0aD0iNjIz
IiB2YWxpZ249InRvcCIgc3R5bGU9IndpZHRoOjQ2Ny41cHQ7Ym9yZGVyOnNvbGlkIHdpbmRvd3Rl
eHQgMS4wcHQ7cGFkZGluZzowaW4gNS40cHQgMGluIDUuNHB0Ij4NCjxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0Oi41aW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYi
PuKAojwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4zMiBiaXRz
IFlBTkcgSUQ8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHls
ZT0ibWFyZ2luLWxlZnQ6MS4waW4iPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNh
bnMtc2VyaWYiPuKAkzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4yMCBi
aXRzIGZvciBtb2R1bGUgSUQgKGFzc2lnbmVkIGJ5IElFVEYpPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjEuMGluIj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj7igJM8L3NwYW4+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZiI+MTAgYml0cyBmb3IgZGF0YSBub2RlIElEIChnZW5lcmF0
ZWQgZGV0ZXJtaW5pc3RpY2FsbHkpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvdGQ+DQo8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmIj5CYXNlZCBvbiB0aGlzIHN0cnVjdHVyZSwgd2UgY2FuIHJlc2VydmUm
bmJzcDttb2R1bGUgSUQgemVybyBmb3IgYWxpYXNlcy48L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5JIHdhcyBqdXN0IHN1bW1hcml6aW5nIHdoYXQgd2FzIGRpc2N1c3Nl
ZCBvbiB0aGUgZGlzY3Vzc2lvbiBpbiBDb01JLiBBY3R1YWxseSwgaXQgaXMgMzAgYml0cyBZQU5H
IElELCBidXQgdGhhdOKAmXMgZm9yIHB1cnBvc2VzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUg
WUFORyBoYXNoIGFuZCBJIGRvbuKAmXQgbWluZCBrZWVwaW5nIGl0IDMwIGJpdHMuPG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMi4wcHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PGJsb2NrcXVvdGUgc3R5bGU9Im1hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCI+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy
aWYiPklmIHdlIHdhbnQgdG8gbWluaW1pemUgYm90aCB0aGUgbmV0d29yayBhbiBub2RlIHJlc291
cmNlcyByZXF1aXJlIGJ5IHRoaXMgYWxpYXMgbWVjaGFuaXNtLCB3ZSBjYW4gbWFwIGFuIGVudGly
ZSBtb2R1bGUgdG8gdGhpcyBzcGFjZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYi
PlRoaXMgY2FuIGJlIGltcGxlbWVudGVkIGJ5IGEgc2luZ2xlIGludGVnZXIgcmVzb3VyY2UgKGUu
Zy4gbGVhZiBhbGxpYXNzZWRNb2R1bGUgeyB0eXBlIHVpbnQzMiB9ICk8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWYiPlRoaXMgYXBwcm9hY2ggcmVxdWlyZSA0IGJ5dGVzIHBlciBDb01J
IHNlcnZlciBhY2Nlc3NlZC48L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2tx
dW90ZT4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5JdCBpcyBwb3NzaWJsZSB0byBtYXAgYW4gZW50aXJlIG1vZHVsZSB0byB0aGUgYWxpYXMgc3Bh
Y2UgYW5kIHRoaXMgaXMgdXAgdG8gdGhlIG9wZXJhdG9yLiBIb3dldmVyLCBpZiB5b3UgbG9hZCB0
d28gbW9kdWxlcyB3aGljaCByZWRlZmluZSB0aGUgc2FtZSBhbGlhcyB5b3Ugd2lsbCBsb29zZSB0
aGUgYmVuZWZpdCBmcm9tIGl0LiBNYXliZSBpdCB3b3VsZCBiZSBpbnRlcmVzdGluZyB0byBiZSBh
YmxlIHRvIHNwZWNpZnkNCiB0aGF0IHlvdSB3YW50IHRoZSBhbGlhc2VzIGZyb20gVEhJUyBzcGVj
aWZpYyBtb2R1bGUgdG8gYmUgdXNlZC48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SWYgdGhl
IC9tZy8wIGFsaWFzIGlzIHJlc2VydmVkIGZvciBtYW5hZ2luZyB0aGUgYWxpYXNlcywgdGhpcyBj
b3VsZCBiZSBzaW1wbHkgc2F5aW5nOjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+UE9TVCAvbWcvMDxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ezxv
OnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+Jm5ic3A7JnF1b3Q7c291cmNlX3VyaSZxdW90OyA6ICZxdW90Oy9tZy9CQUEmcXVv
dDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPn08bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+d2hlcmUgL21nL0JBQSBp
cyB0aGUgWUFORyBpZCBvZiB0aGUgbW9kdWxlICgyMCBiaXRzIG1vZHVsZSBJRCAmIzQzOyAxMCBi
aXRzIHNldCB0byAwKS4gVGhpcyB3YXksIHRoZSBzZXJ2ZXIgd2lsbCBrbm93OiBPSywgZ2V0IHRo
ZSBhbGlhcyBtYXBwaW5nIGZyb20gdGhlIFlBTkcgc2NoZW1lIG9mIG1vZHVsZSB3aXRoIElEID0g
QiAoYXMgZGVmaW5lZCBieSB0aGUgSUVURikuJm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPk9yLCB5b3UgY2FuIGR5bmFtaWNhbGx5IGNvbmZpZ3VyZSB0aGUgbWFwcGluZzo8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5QT1NUIC9tZy8wPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj57PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsgWUFOR19p
ZCA6IGFsaWFzLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7IFlBTkdfaWQgOiBhbGlhcyw8bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZu
YnNwOyBZQU5HX2lkIDogYWxpYXM8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPn08bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9t
OjEyLjBwdCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2lu
LXRvcDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+SWYgd2Ugd2FudCBhIG1vcmUgY29t
cGxleCBidXQgbW9yZSBmbGV4aWJsZSBhbGlhc2VzIG1lY2hhbmlzbSwgeW91ciBwcm9wb3NlZCBt
YXAgb2YgKGFsbGlhcywgWUFORyBJRCkgc2VlbSB0aGUgc29sdXRpb24uPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmIj5Ib3dldmVyLCB3ZSBoYXZlIHRvIGNvbnNpZGVyIHRoYXQgdGhp
cyBzdHJ1Y3R1cmUgY2FuIGJlIGFzIGxhcmdlIGFzJm5ic3A7PHU+MTI1MCBieXRlcyBwZXIgQ29N
SSBzZXJ2ZXIgYWNjZXNzZWQ8L3U+Jm5ic3A7aWYgbGltaXRlZCB0byAyNTYgYWxpYXNlcy48L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+
DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VGhp
cyBpcyBhc3N1bWluZyB5b3UgbmVlZCBhIHNlcGFyYXRlIG1hcHBpbmcgZm9yIGVhY2ggc2VydmVy
LiBJIHdvdWxkIHN1cHBvc2UgdGhhdCBpbiBhIG5ldHdvcmsgeW914oCZbGwgaGF2ZSBhIHNpbmds
ZSBhbGlhcyBtYXBwaW5nIChtYXliZSB0d28/KSAtIGFmdGVyIGFsbCwgeW914oCZcmUgdHJ5aW5n
IHRvIG9wdGltaXplIHRoZSBtYW5hZ2VtZW50IG9mIHlvdXIgZGV2aWNlcyAoc2VydmVycykuIFNv
LCB0eXBpY2FsbHkNCiB5b3XigJlkIG1hcCBhbGwgNnRpc2NoIGRldmljZXMgd2l0aCBhbGlhc2Vz
IDEtMTAgKGNoYW5uZWwsIHNsb3QsIGV0Yy4pIGFuZCB1c2UgdGhhdCBvbiB0aGVtLCBhbmQgb24g
YWxsIG90aGVyIHlvdeKAmWQgYWNjZXNzIHRoZSBmdWxsIElELiZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5CZXN0LDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QWxleGFuZGVyPG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206
MTIuMHB0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4t
dG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHRhYmxlIGNsYXNzPSJNc29Ob3JtYWxUYWJsZSIgYm9y
ZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHdpZHRoPSI3MTciIHN0eWxl
PSJ3aWR0aDo1MzcuNzVwdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2UiPg0KPHRib2R5Pg0KPHRy
IHN0eWxlPSJoZWlnaHQ6NDkuMDVwdCI+DQo8dGQgd2lkdGg9IjEzNyIgc3R5bGU9IndpZHRoOjEw
My4xcHQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJpZ2h0OnNvbGlkIHdpbmRvd3RleHQgMS4wcHQ7cGFk
ZGluZzowaW4gNS40cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4mbHQ7aW1hZ2UwMDEuanBnJmd0
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L3RkPg0KPHRkIHdpZHRo
PSI1ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1cHQ7cGFkZGluZzowaW4gNS40
cHQgMGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0Ojgu
MXB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPk1pY2hlbCBW
ZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0ZWN0dXJlIERpcmVjdG9yPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OjguMXB0Ij4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPlRyaWxsaWFudCBJbmMu
PGJyPg0KVGVsOiA0NTAtMzc1LTA1NTYgZXh0LiAyMzc8YnI+DQo8YSBocmVmPSJtYWlsdG86bWlj
aGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gc3R5
bGU9ImNvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50aW5jLmNvbTwvc3Bh
bj48L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9
Im1hcmdpbi1sZWZ0OjguMXB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh
bnMtc2VyaWYiPjxhIGhyZWY9Imh0dHA6Ly93d3cudHJpbGxpYW50aW5jLmNvbS8iIHRhcmdldD0i
X2JsYW5rIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6cHVycGxlIj53d3cudHJpbGxpYW50aW5jLmNvbTwv
c3Bhbj48L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvdGQ+DQo8
L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4N
Cg==

--_000_CO2PR0601MB7925122DA741C05A1CBA63EFEBA0CO2PR0601MB792na_--

--_004_CO2PR0601MB7925122DA741C05A1CBA63EFEBA0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Sat, 13 Jun 2015 03:53:46 GMT";
	modification-date="Sat, 13 Jun 2015 03:53:46 GMT"
Content-ID: <image001.jpg@01D0A566.6E4E0B00>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB7925122DA741C05A1CBA63EFEBA0CO2PR0601MB792na_--


From nobody Fri Jun 12 22:24:26 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0698B1B2E33 for <core@ietfa.amsl.com>; Fri, 12 Jun 2015 22:24:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level: 
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6mK91AqVm1Fm for <core@ietfa.amsl.com>; Fri, 12 Jun 2015 22:24:17 -0700 (PDT)
Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com [209.85.217.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 919A21B2E2F for <core@ietf.org>; Fri, 12 Jun 2015 22:24:16 -0700 (PDT)
Received: by lblr1 with SMTP id r1so2137235lbl.0 for <core@ietf.org>; Fri, 12 Jun 2015 22:24:15 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=4znHhnuoqGU+q9t4fbNhogxGOTrzrCREuFA1C6USU8A=; b=U+br3VcyWgfjjaZYTlHEMAJ1I/hW+P6eNZpGCORrYoMU6e/fMiPHuNh9nQ4XPBeUtd wThz5lBr5Jr9M8aInNgFBV7OhEWTG8F4bm6qKgTsTubSADNCPGxgRnbYk+5f0o3Bp1hl pL0terW6wEIjZcFxLQvsEcMVp22vhw9RqayfYQ0+P/g68zzThE6x7M6Yz0Ehv66Bwuzw i18J4RBsMBbXOYP/q6qwnlGtolqLXmKzbNh9UQUS9xiosjDBW8LPXk4X0WLQYoEzZ6JW oSQh6E5KtNL3dmyqXPDepZ6y/ahOSDtTZdYrasKV+9NUH/CJe5QypgTfc01dxMuZHmE/ cwWg==
X-Gm-Message-State: ALoCoQn2KKw0CnS6G4JV2UxQt6DNGBSDGiOwuwhwvNmh14ChJ59uDpfZFmg6Y/nYXRB56Yivq+Zw
MIME-Version: 1.0
X-Received: by 10.112.124.71 with SMTP id mg7mr18135324lbb.38.1434173054902; Fri, 12 Jun 2015 22:24:14 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Fri, 12 Jun 2015 22:24:14 -0700 (PDT)
In-Reply-To: <CO2PR0601MB7925122DA741C05A1CBA63EFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <E045AECD98228444A58C61C200AE1BD849E9998D@xmb-rcd-x01.cisco.com> <CO2PR0601MB7925122DA741C05A1CBA63EFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
Date: Fri, 12 Jun 2015 22:24:14 -0700
Message-ID: <CABCOCHSfstMTf+yBxrVvo=vFjqWzmOnoCdcJEJi3SyzXwHxATw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Content-Type: multipart/related; boundary=047d7bfd0d867ca26a05185f6f23
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/dTDn1Q-zPdojQysIpmn5nKorS1U>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2015 05:24:24 -0000

--047d7bfd0d867ca26a05185f6f23
Content-Type: multipart/alternative; boundary=047d7bfd0d867ca26505185f6f22

--047d7bfd0d867ca26505185f6f22
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Fri, Jun 12, 2015 at 8:53 PM, Michel Veillette <
Michel.Veillette@trilliantinc.com> wrote:

>  *Hi Alexander*
>
>
>
> About =E2=80=9CYes, I suppose you should always start with aliases, but t=
hat
> doesn=E2=80=99t sound like a strong constraint to me=E2=80=9D
>
>
>
> If I take the following example:
>
> GET example.com/mg?select(1, 2, 2049, 3)
>
>
>
> Data node ID 1 and 2 can be associated with module ID 0 (aliases) but dat=
a
> node ID 2049 and 3 are associated with module ID 1.
>
> I don=E2=80=99t understand how aliases can be added at the end of this li=
st
> without been processed as short form.
>
> Please confirm my understanding.
>
>
>
> *Hi Andy*
>
>
>
> About =E2=80=9CThe data is hierarchical and the parser is required to mai=
ntain the
> current module scope. It should be possible to omit the module identifier
> for nested data, except for nodes that start a new module scope. Is this
> what you have in mind?=E2=80=9D
>
>
>
> Yes
>
> I=E2=80=99m proposing to use the same model as JSON with a long form cons=
isting of
> a 20 bits module ID/10 bits YANG ID and the short form consisting of a 10
> bits YANG ID.
>
>
>


I like your proposal to allow support for numbered objects.


 About =E2=80=9CI am not convinced that aliases are worth all the effort be=
cause
> most (95%?) of the IDs in the payload will only need 10 bits.=E2=80=9D
>
>
>
> Agree
>
> In most cases, the message size compression will same just a couple of
> bytes.
>
> As mentioned by Alexander, we can simply reserve a range for aliases (e.g=
.
> module ID 0) but defer the resolution to a different draft.
>
>
>


I think reserving module ID zero is OK for that



>  *Hi Pascal*
>
>
>
> About =E2=80=9CI understand that any sensor vendor will want to have its =
own
> module IDs, correct?=E2=80=9D
>
>
>
> Correct, with 20 bits, we can allocate 1 000 000 module ID.
>
> This can be done one by one or by small bundle of module IDs (e.g. 4, 8,
> 16 IDs).
>
>
>
> About =E2=80=9CI have missed the trick of 63 module IDs that are optimall=
y encoded=E2=80=9D
>
>
>
> When using the long form (20 bits module ID, 10 bits YANG ID), data node
> ID small enough to fit on 16 bits are encoded using CBOR in 3 bytes. Sinc=
e
> the YAND ID takes 10 bits, we have 6 bits left for the module ID (64 IDs
> minus ID 0 reserved for the short form). Module ID greater than 63 requir=
e
> the use of the 5 bytes CBOR encoding.
>


I think CoMI should support "replaceable" numbering schemes, which
should be identified in the server capabilities somehow.  I prefer if
the server used 1 numbering scheme, not 1 per node.

I proposed a conformance "package" in a now expired draft
called YANG Conformance.  A conformance profile can include
multiple modules, and specify the required revisions and
features as well.

The point is that an arbitrarily large set of modules can be
reduced to a single identifier.  The profile could be extended
to support ad-hoc numbering of all the objects in the package.
This works best for lots of the similar devices which all
implement the same set of modules, so there are a small number
of packages to manage.

The server would advertise its 1 (or more) package IDs.
There is no need to use the 20 bit module ID at all if the server
supports only 1 conformance package. 10 bits
might be tight for numbering all the protocol accessible objects
in the YANG modules in each package. I think 12 bits would be
needed.

This would also allow YANG modules to be numbered
without a centralized authority. A CoMI package could
even define the "standard" aliases, if that was supported.

Do you think something like this would be useful for CoMI?


Andy




>
> About =E2=80=9CIf so: maybe we should alias the module IDs so that the 63=
 IDs that
> benefit from the optimal CBOR compression should be the aliases of any of
> the thousands of IDs that will soon exist in the registries.=E2=80=9D
>
>
>
> A possible solution is to reserve module ID 0, 1, 2 and 3 for aliases
> which will leave 60 =E2=80=9Cmore optimal=E2=80=9D module IDs.
>
> The specific use of the reserved module IDs can be addressed in one of
> multiple subsequence drafts.
>
> What is important for now is the establishment of a consensus around the
> core concepts discussed:
>
> =C2=B7         registered 20 bits module ID
>
> =C2=B7         10 bits assigned YANG ID
>
> =C2=B7         long form / short form data node ID
>
> =C2=B7         select encoded in CBOR
>
>
>
> [image: cid:image001.jpg@01C868D8.BF0BB7E0]
>
> Michel Veillette
> System Architecture Director
>
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
>
> www.trilliantinc.com
>
>
>
>
>
> *From:* Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
> *Sent:* 12 juin 2015 21:11
> *To:* Michel Veillette; Alexander Pelov
> *Cc:* Andy Bierman; 6tisch@ietf.org; core@ietf.org
> *Subject:* RE: [6tisch] Reserve space for aliases
>
>
>
> Hello Michel:
>
>
>
> I=E2=80=99m not so worried for 6TiSCH=E2=80=99s ID than for the IDs used =
to collect data
> from sensors. Because that is the operation that will happen all the time
> an suck batteries.
>
> I understand that any sensor vendor will want to have its own module IDs,
> correct? And soon enough that vendor will come with variants of his
> products, and will want more module IDs, is that right?
>
>
>
> If I=E2=80=99m correct, this pleads for aliases; but maybe not as we thou=
ght them.
> I have missed the trick of 63 module IDs that are optimally encoded, but =
I
> trust you on that =E2=80=93 I figure that it is because it takes 2 bits t=
o encoded
> the coap option?
>
>
>
> If so: maybe we should alias the module IDs so that the 63 IDs that
> benefit from the optimal cbor compression should be the aliases of any of
> the thousands of IDs that will soon exist in the registries.
>
>
>
> Also note that device makers will want the vendor specific range that the=
y
> use to play with before something is registered. Aliases could also be a
> way to play with module IDs that have not yet been registered to IANA.
>
>
>
> I=E2=80=99m not sure the above makes sense since it is based on a partial
> understanding of your work so far=E2=80=A6
>
>
>
> Pascal
>
>
>
> *From:* Michel Veillette [mailto:Michel.Veillette@trilliantinc.com
> <Michel.Veillette@trilliantinc.com>]
> *Sent:* vendredi 12 juin 2015 09:58
> *To:* Alexander Pelov; Pascal Thubert (pthubert)
> *Cc:* Andy Bierman; 6tisch@ietf.org; core@ietf.org
> *Subject:* RE: [6tisch] Reserve space for aliases
>
>
>
> Hi Alexander, hi Pascal
>
>
>
> I want to emphases the following points
>
>
>
> =C2=B7         The use of the select query parameter encoded in CBOR supp=
ort
> of 63 modules with optimized message size instead of only 3 for the base6=
4
> URI.
>
> If the 6TiSCH module ID is allocated within these 63 IDs, there will be n=
o
> message size optimization provided by the aliases mechanism.
>
> This make the introduction of aliases less urgent.
>
>
>
> =C2=B7         The message size of the select query parameter encoded in =
CBOR
> should be equal or smaller compared to the base64 URI.
>
> However, the select query parameter encoded in CBOR support a wider range
> of values without size penalty (16 bits instead of 12, 32 bits instead of
> 30)
>
> Furthermore, CoMI devices won=E2=80=99t have to support two type of encod=
ing
> depending if IDs are part of the command vs. payload.
>
>
>
> For example:
>
>
>
> Assuming module ID 2
>
> Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)
>
> Assuming =E2=80=9C,=E2=80=9D separator to select multiple data nodes
>
>
>
> Base64 approach:
>
> REQ: GET example.com/mg/gB         (3 bytes; 1 byte for the =E2=80=9C/=E2=
=80=9D, 2 bytes
> for =E2=80=9CgB=E2=80=9D)
>
>
>
> CBOR approach:
>
> REQ: GET example.com/mg?select(2049)         (4 bytes; one byte for the
> CoAP option, 3 for 2049 encoded using CBOR)
>
>
>
> Base64 approach:
>
> REQ: GET example.com/mg/gB,C,D,E         (9 bytes; 1 byte for the =E2=80=
=9C/=E2=80=9D, 8
> bytes for =E2=80=9CgB,C,D,E=E2=80=9D)
>
>
>
> CBOR approach:
>
> REQ: GET example.com/mg?select( [2049,2,3,4] )      (8 bytes; 1 byte for
> the CoAP option, 1 for the CBOR array, 3+1+1+1 bytes for the IDs)
>
>
>
>
>
> [image: cid:image001.jpg@01C868D8.BF0BB7E0]
>
> Michel Veillette
> System Architecture Director
>
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
>
> www.trilliantinc.com
>
>
>
>
>
> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu
> <alexander.pelov@telecom-bretagne.eu>]
> *Sent:* 11 juin 2015 17:06
> *To:* Pascal Thubert (pthubert)
> *Cc:* Andy Bierman; Michel Veillette; 6tisch@ietf.org; core@ietf.org
> *Subject:* Re: [6tisch] Reserve space for aliases
>
>
>
> Hi Pascal,
>
>
>
>  Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthubert) <pthubert@cisco.=
com>
> a =C3=A9crit :
>
>
>
> Dear all:
>
>
>
> This looks like the problem of local namespaces,  which is the reason why
> MPLS switches labels.
>
> The user may access a limited set of resources from a number of servers,
> and servers are read by many users.
>
> You cannot ensure that you have a single alias space that satisfies them
> all.
>
>
>
> Great analogy! And yes, sadly you cannot satisfy them all, at least not
> with all devices.
>
>
>
>
>
> So ,what if the user had its own set of aliases and the server also had
> its own set of aliases?
>
>
>
> The aliases could be mapped in a table like a uSAP and a pSAP are mapped
> across layers. Broadly:
>
> - First time a user requests a resource in a server, it comes with a tupl=
e
> (userid, useralias, fullname)
>
> - The server responds with (serverid, serveralias, userid, user alias).
>
>
>
> Actually, I think that this could be worked out in CoMI also. Instead of
> fullname you could provide the YANG id (module ID + data node ID) and do
> the mapping. User alias would be the special aliased YANG id. User ID,
> however, could be a little bit more tricky - how do we ensure that it is
> consistent? Use the IP address of the client could be doable, but we=E2=
=80=99ll
> have to include the UDP port just in case someone runs two clients on the
> same machine.
>
>
>
>
>
>
>
> After that,  if the server is a constrained device then the user talks to
> the server with (serverid, serveralias) and the user maintains a switchin=
g
> table for the resource it uses on various servers.
>
> If the user is the constrained device and the server is not, the user
> could talk with (userid, useralias) and the server maintains a switching
> table.
>
>
>
> For large servers, the server may allocate aliases dynamically based on
> what it is being asked. We=E2=80=99d then need to talk about alias update=
 or
> revocation, probably in terms of session and lifetime.
>
>
>
> Does that look usable?
>
>
>
> You are pointing out an interesting question. I would think (but maybe I=
=E2=80=99m
> mistaken), that the client should have the leading role in figuring out
> what=E2=80=99s happening. The idea is the following:
>
>
>
> The client checks if the server supports aliasing, with the possible
> options:
>
> S1) no aliasing
>
> S2) static/server-defined aliasing
>
> S3) dynamic/single alias mapping
>
>   S3.1) mapping already defined
>
>   S3.2) no mapping defined
>
> S4) dynamic/per client alias mapping
>
>
>
> Then, the client can take action, depending on its own capabilities and
> the response of the server. E.g. a unconstrained client could obtain the
> alias mapping if it is static (or if there is a single alias mapping in
> place) and cache it locally. So, there will be the following corresponden=
ce
> :
>
>
>
> Given:
>
> C1) constrained client
>
> C2) unconstrained client
>
>
>
> We have:
>
> C1 + S1) no aliasing, nothing to do
>
> C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise,
> ignore
>
> C1 + S3.2) and C1 + S4) define alias mapping
>
>
>
> C2 + S1) no aliasing, nothing to do
>
> C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise,
> learn it
>
> C2 + S3.2) and C2 + S4) define alias mapping
>
>
>
> I would say that the analogy you made with MPLS corresponds quite a lot t=
o
> the C2+S4 case. Personally, I would be most interested into having one
> client configure one alias mapping to all servers in the network (e.g. th=
e
> managing entity), which will profit most from saving several bytes on eac=
h
> message exchange. Everyone else could use the standard IDs, which we=E2=
=80=99ve
> already managed to shrink significantly.
>
>
>
> Indeed, with structured module ID + data node ID (20 bits + 10 bits), YAN=
G
> URI compression, and long form/short form, we=E2=80=99ll have quite a lot=
 of gain.
> Reserving module ID =3D 1 for aliases and maybe writing a short draft on =
how
> the aliasing is implemented seems feasible, where we can cover the exact
> mechanism of alias definition, and client/server interaction.
>
>
>
> Alexander
>
>
>
>
>
> Pascal
>
>
>
> *From:* 6tisch [mailto:6tisch-bounces@ietf.org <6tisch-bounces@ietf.org>]=
 *On
> Behalf Of *Andy Bierman
> *Sent:* vendredi 5 juin 2015 20:55
> *To:* Michel Veillette
> *Cc:* 6tisch@ietf.org; Alexander Pelov; core@ietf.org
> *Subject:* Re: [6tisch] Reserve space for aliases
>
>
>
>
>
>
>
> On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <
> Michel.Veillette@trilliantinc.com> wrote:
>
> Hi Alexander
>
>
>
> I have some concerns about allowing CoMI client(s) the control of the lis=
t
> of aliases.
>
> This approach work fine for the first CoMI application (e.g. 6TiSCH) but
> what do we do with the subsequent CoMI application?
>
>
>
> One possible solution is that each CoMI client send a list of (alias, dat=
a
> node ID) to the CoMI server. In this case, the CoMI client might receive =
an
> error if one or multiple of these aliases are already reserved.
>
>
>
> A second possible solution is that each CoMI client send a list of (data
> node ID) and get a list of (alias, data node ID) from the CoMI server. In
> this case, CoMI clients will have to deal with a mix population of aliase=
s.
>
>
>
> The proposed solution need to scale to a multi-vendors, multiple
> applications environment.
>
> With this is mind, do you have any alternative solutions to propose?
>
>
>
>
>
>
>
> Does this approach allow each client to have a different set of aliases,
>
> so the server has to maintain a configured mapping for each client?
>
> This seems like a lot of overhead and NV-storage requirements
>
> on the server.
>
>
>
> Changing the schema identifiers based on which client is
>
> sending the request seems like a complicated design change
>
> from RESTCONF, NETCONF, or SNMP, where there is only
>
> 1 schema tree which is not dependent on the client identity.
>
>
>
>
>
> Andy
>
>
>
>
>
>
>
>
>
>     <image001.jpg>
>
> Michel Veillette
> System Architecture Director
>
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
>
> www.trilliantinc.com
>
>
>
>
>
> *From:* Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
> *Sent:* 5 juin 2015 12:03
> *To:* Michel Veillette
> *Cc:* Andy Bierman; 6tisch@ietf.org; core@ietf.org
> *Subject:* Re: Reserve space for aliases
>
>
>
> Hi Michel,
>
>
>
>
>
>  Le 5 juin 2015 =C3=A0 17:17, Michel Veillette <
> Michel.Veillette@trilliantinc.com> a =C3=A9crit :
>
>
>
> Hi Alexander
>
>
>
> In your presentation at 6TiSCH, you propose the following data node ID
> structure.
>
>
>
> =E2=80=A2       32 bits YANG ID
>
> =E2=80=93      20 bits for module ID (assigned by IETF)
>
> =E2=80=93      10 bits for data node ID (generated deterministically)
>
>
>
> Based on this structure, we can reserve module ID zero for aliases.
>
>
>
>
>
> I was just summarizing what was discussed on the discussion in CoMI.
> Actually, it is 30 bits YANG ID, but that=E2=80=99s for purposes to be co=
nsistent
> with the YANG hash and I don=E2=80=99t mind keeping it 30 bits.
>
>
>
>
>
>   If we want to minimize both the network an node resources require by
> this alias mechanism, we can map an entire module to this space.
>
> This can be implemented by a single integer resource (e.g. leaf
> alliassedModule { type uint32 } )
>
> This approach require 4 bytes per CoMI server accessed.
>
>
>
>
>
> It is possible to map an entire module to the alias space and this is up
> to the operator. However, if you load two modules which redefine the same
> alias you will loose the benefit from it. Maybe it would be interesting t=
o
> be able to specify that you want the aliases from THIS specific module to
> be used.
>
>
>
> If the /mg/0 alias is reserved for managing the aliases, this could be
> simply saying:
>
> POST /mg/0
>
> {
>
>  "source_uri" : "/mg/BAA"
>
> }
>
>
>
> where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits
> set to 0). This way, the server will know: OK, get the alias mapping from
> the YANG scheme of module with ID =3D B (as defined by the IETF).
>
>
>
> Or, you can dynamically configure the mapping:
>
> POST /mg/0
>
> {
>
>   YANG_id : alias,
>
>   YANG_id : alias,
>
>   YANG_id : alias
>
> }
>
>
>
>   If we want a more complex but more flexible aliases mechanism, your
> proposed map of (allias, YANG ID) seem the solution.
>
> However, we have to consider that this structure can be as large as *1250
> bytes per CoMI server accessed* if limited to 256 aliases.
>
>
>
> This is assuming you need a separate mapping for each server. I would
> suppose that in a network you=E2=80=99ll have a single alias mapping (may=
be two?) -
> after all, you=E2=80=99re trying to optimize the management of your devic=
es
> (servers). So, typically you=E2=80=99d map all 6tisch devices with aliase=
s 1-10
> (channel, slot, etc.) and use that on them, and on all other you=E2=80=99=
d access
> the full ID.
>
>
>
> Best,
>
> Alexander
>
>
>
>
>
> <image001.jpg>
>
> Michel Veillette
> System Architecture Director
>
> Trilliant Inc.
> Tel: 450-375-0556 ext. 237
> michel.veillette@trilliantinc.com
>
> www.trilliantinc.com
>
>
>

--047d7bfd0d867ca26505185f6f22
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Fri, Jun 12, 2015 at 8:53 PM, Michel Veillette <span dir=3D"ltr">&lt=
;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank">Mic=
hel.Veillette@trilliantinc.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">





<div lang=3D"EN-CA" link=3D"blue" vlink=3D"purple">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1f497d">Hi Alexander<u></u><u></u></span><=
/b></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">About =E2=80=9CYes, I suppose you sho=
uld always start with aliases, but that doesn=E2=80=99t sound like a strong=
 constraint to me=E2=80=9D<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">If I take =
the following example:<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:1.0in"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">GET <a hr=
ef=3D"http://example.com/mg?select(1" target=3D"_blank">example.com/mg?sele=
ct(1</a>, 2, 2049, 3)<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=
=A0<u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Data node =
ID 1 and 2 can be associated with module ID 0 (aliases) but data node ID 20=
49 and 3 are associated
 with module ID 1.<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">I don=E2=
=80=99t understand how aliases can be added at the end of this list without=
 been processed as short form.<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Please con=
firm my understanding.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1f497d">Hi Andy<u></u><u></u></span></b></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">About =E2=80=9CThe data is hierarchic=
al and the parser is required to maintain the current module scope. It shou=
ld be possible to omit the
 module identifier for nested data, except for nodes that start a new modul=
e scope. Is this what you have in mind?=E2=80=9D<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Yes<u></u>=
<u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">I=E2=80=99=
m proposing to use the same model as JSON with a long form consisting of a =
20 bits module ID/10 bits YANG
 ID and the short form consisting of a 10 bits YANG ID.<u></u><u></u></span=
></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0</span></p></div></div><=
/blockquote><div><br></div><div><br></div><div>I like your proposal to allo=
w support for numbered objects.</div><div><br></div><div><br></div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc s=
olid;padding-left:1ex"><div lang=3D"EN-CA" link=3D"blue" vlink=3D"purple"><=
div><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quo=
t;Calibri&quot;,sans-serif;color:#1f497d"><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">About =E2=80=9CI am not convinced tha=
t aliases are worth all the effort because most (95%?) of the IDs in the pa=
yload will only need 10 bits.=E2=80=9D<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Agree<u></=
u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">In most ca=
ses, the message size compression will same just a couple of bytes.<u></u><=
u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">As mention=
ed by Alexander, we can simply reserve a range for aliases (e.g. module ID =
0) but defer the resolution
 to a different draft.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0</span></p></div></div><=
/blockquote><div><br></div><div><br></div><div>I think reserving module ID =
zero is OK for that</div><div><br></div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div lang=3D"EN-CA" link=3D"blue" vlink=3D"purple"><div><p cl=
ass=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri=
&quot;,sans-serif;color:#1f497d"><u></u></span></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1f497d">Hi Pascal<u></u><u></u></span></b>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">About =E2=80=9C</span><span lang=3D"E=
N-US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;=
color:#1f497d">I understand that any sensor
 vendor will want to have its own module IDs, correct?=E2=80=9D<u></u><u></=
u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span lang=3D"EN-US" styl=
e=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f4=
97d">Correct, with 20 bits, we can allocate 1 000 000 module ID.<u></u><u><=
/u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span lang=3D"EN-US" styl=
e=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f4=
97d">This can be done one by one or by small bundle of module IDs (e.g. 4, =
8, 16 IDs).<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">About =E2=80=9CI have missed the tric=
k of 63 module IDs that are optimally encoded=E2=80=9D<u></u><u></u></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">When using=
 the long form (20 bits module ID, 10 bits YANG ID), data node ID small eno=
ugh to fit on 16 bits
 are encoded using CBOR in 3 bytes. Since the YAND ID takes 10 bits, we hav=
e 6 bits left for the module ID (64 IDs minus ID 0 reserved for the short f=
orm). Module ID greater than 63 require the use of the 5 bytes CBOR encodin=
g.</span></p></div></div></blockquote><div><br></div><div><br></div><div>I =
think CoMI should support &quot;replaceable&quot; numbering schemes, which<=
/div><div>should be identified in the server capabilities somehow.=C2=A0 I =
prefer if</div><div>the server used 1 numbering scheme, not 1 per node.</di=
v><div><br></div><div>I proposed a conformance &quot;package&quot; in a now=
 expired draft</div><div>called YANG Conformance.=C2=A0 A conformance profi=
le can include</div><div>multiple modules, and specify the required revisio=
ns and</div><div>features as well.</div><div><br></div><div>The point is th=
at an arbitrarily large set of modules can be</div><div>reduced to a single=
 identifier.=C2=A0 The profile could be extended</div><div>to support ad-ho=
c numbering of all the objects in the package.</div><div>This works best fo=
r lots of the similar devices which all</div><div>implement the same set of=
 modules, so there are a small number</div><div>of packages to manage.</div=
><div><br></div><div>The server would advertise its 1 (or more) package IDs=
.</div><div>There is no need to use the 20 bit module ID at all if the serv=
er</div><div>supports only 1 conformance package. 10 bits</div><div>might b=
e tight for numbering all the protocol accessible objects</div><div>in the =
YANG modules in each package. I think 12 bits would be</div><div>needed.</d=
iv><div><br></div><div>This would also allow YANG modules to be numbered</d=
iv><div>without a centralized authority. A CoMI package could</div><div>eve=
n define the &quot;standard&quot; aliases, if that was supported.</div><div=
><br></div><div>Do you think something like this would be useful for CoMI?<=
/div><div><br></div><div><br></div><div>Andy</div><div><br></div><div><br><=
/div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0=
 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang=3D"EN-CA" link=
=3D"blue" vlink=3D"purple"><div><p class=3D"MsoNormal" style=3D"margin-left=
:.5in"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1f497d"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">About =E2=80=9CIf so: maybe we should=
 alias the module IDs so that the 63 IDs that benefit from the optimal CBOR=
 compression should be the
 aliases of any of the thousands of IDs that will soon exist in the registr=
ies.=E2=80=9D<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">A possible=
 solution is to reserve module ID 0, 1, 2 and 3 for aliases which will leav=
e 60 =E2=80=9Cmore optimal=E2=80=9D module
 IDs.<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">The specif=
ic use of the reserved module IDs can be addressed in one of multiple subse=
quence drafts.<u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d">What is im=
portant for now is the establishment of a consensus around the core concept=
s discussed:<u></u><u></u></span></p>
<p style=3D"margin-left:1.0in">
<u></u><span style=3D"font-size:11.0pt;font-family:Symbol;color:#1f497d"><s=
pan>=C2=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:11.0pt;font-family:&qu=
ot;Calibri&quot;,sans-serif;color:#1f497d">registered 20 bits module ID<u><=
/u><u></u></span></p>
<p style=3D"margin-left:1.0in">
<u></u><span style=3D"font-size:11.0pt;font-family:Symbol;color:#1f497d"><s=
pan>=C2=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:11.0pt;font-family:&qu=
ot;Calibri&quot;,sans-serif;color:#1f497d">10 bits assigned YANG ID<u></u><=
u></u></span></p>
<p style=3D"margin-left:1.0in">
<u></u><span style=3D"font-size:11.0pt;font-family:Symbol;color:#1f497d"><s=
pan>=C2=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:11.0pt;font-family:&qu=
ot;Calibri&quot;,sans-serif;color:#1f497d">long form / short form data node=
 ID<u></u><u></u></span></p>
<p style=3D"margin-left:1.0in">
<u></u><span style=3D"font-size:11.0pt;font-family:Symbol;color:#1f497d"><s=
pan>=C2=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span></span></span><u></u><span style=3D"font-size:11.0pt;font-family:&qu=
ot;Calibri&quot;,sans-serif;color:#1f497d">select encoded in CBOR<u></u><u>=
</u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><img width=3D"120" height=3D"22" src=
=3D"cid:image001.jpg@01D0A566.6E4E0B00" alt=3D"cid:image001.jpg@01C868D8.BF=
0BB7E0"><u></u><u></u></span></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1f497d">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1f497d">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563c1">michel.veillette@trilliantinc.com</span></a><u></=
u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><a href=
=3D"http://www.trilliantinc.com/" target=3D"_blank"><span style=3D"font-siz=
e:9.0pt;font-family:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</spa=
n></a></span><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,s=
ans-serif;color:#1f497d">
 =C2=A0 </span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif;color:#1f497d"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Pascal Thubert (pthubert) [mailto:<a href=3D"mailto:pthubert@cisco.com" tar=
get=3D"_blank">pthubert@cisco.com</a>]
<br>
<b>Sent:</b> 12 juin 2015 21:11<br>
<b>To:</b> Michel Veillette; Alexander Pelov<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org" target=3D"_blan=
k">6tisch@ietf.org</a>; <a href=3D"mailto:core@ietf.org" target=3D"_blank">=
core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases<u></u><u></u></span>=
</p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Hello Michel:<u></u><u=
></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d">I=E2=80=99m not so wor=
ried for 6TiSCH=E2=80=99s ID than for the IDs used to collect data from sen=
sors. Because that is the operation that will happen all the time
 an suck batteries.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d">I understand that any =
sensor vendor will want to have its own module IDs, correct? And soon enoug=
h that vendor will come with variants of his products,
 and will want more module IDs, is that right?<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d">If I=E2=80=99m correct=
, this pleads for aliases; but maybe not as we thought them. I have missed =
the trick of 63 module IDs that are optimally encoded, but
 I trust you on that =E2=80=93 I figure that it is because it takes 2 bits =
to encoded the coap option?<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d">If so: maybe we should=
 alias the module IDs so that the 63 IDs that benefit from the optimal cbor=
 compression should be the aliases of any of the
 thousands of IDs that will soon exist in the registries.<u></u><u></u></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d">Also note that device =
makers will want the vendor specific range that they use to play with befor=
e something is registered. Aliases could also be
 a way to play with module IDs that have not yet been registered to IANA.<u=
></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d">I=E2=80=99m not sure t=
he above makes sense since it is based on a partial understanding of your w=
ork so far=E2=80=A6<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"FR" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1f497d">Pascal<u></u><u></u></spa=
n></p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,sans-serif">From:</span></b><span lang=3D"EN-U=
S" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,sans-serif"> Mi=
chel Veillette [<a href=3D"mailto:Michel.Veillette@trilliantinc.com" target=
=3D"_blank">mailto:Michel.Veillette@trilliantinc.com</a>]
<br>
<b>Sent:</b> vendredi 12 juin 2015 09:58<br>
<b>To:</b> Alexander Pelov; Pascal Thubert (pthubert)<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org" target=3D"_blan=
k">6tisch@ietf.org</a>; <a href=3D"mailto:core@ietf.org" target=3D"_blank">
core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases<u></u><u></u></span>=
</p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">Hi Alexander, hi Pascal<u></u><u></u>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">I want to emphases the following poin=
ts<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:Symbol;color:#1f497d">=C2=B7=
</span><span style=3D"font-size:7.0pt;color:#1f497d">=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1f497d">The use of the select query parameter encoded in CBOR=
 support of 63 modules with optimized message size instead of only 3 for th=
e base64 URI.<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">If the 6TiSCH module ID is allocated within these 63 IDs,=
 there will be no message size optimization provided by the aliases mechani=
sm.<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">This make the introduction of aliases less urgent.<u></u>=
<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:Symbol;color:#1f497d">=C2=B7=
</span><span style=3D"font-size:7.0pt;color:#1f497d">=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1f497d">The message size of the select query parameter encode=
d in CBOR should be equal or smaller compared to the base64 URI.<u></u><u><=
/u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">However, the select query parameter encoded in CBOR suppo=
rt a wider range of values without size penalty (16 bits instead of 12, 32 =
bits instead of 30)<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">Furthermore, CoMI devices won=E2=80=99t have to support t=
wo type of encoding depending if IDs are part of the command vs. payload.<u=
></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">For example:<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">Assuming module ID 2<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2=
051)<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">Assuming =E2=80=9C,=E2=80=9D separator to select multiple=
 data nodes<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">Base64 approach:<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">REQ: GET <a href=3D"http://example.com/mg/gB" target=3D"_=
blank">example.com/mg/gB</a>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 (3 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 2 bytes for =E2=80=9CgB=
=E2=80=9D)<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">CBOR approach:<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">REQ: GET <a href=3D"http://example.com/mg?select(2049)" t=
arget=3D"_blank">example.com/mg?select(2049)</a>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 (4 bytes; one byte for the CoAP option, 3 for 2049 en=
coded using CBOR)<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">Base64 approach:<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">REQ: GET <a href=3D"http://example.com/mg/gB,C,D,E" targe=
t=3D"_blank">example.com/mg/gB,C,D,E</a>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 (9 bytes; 1 byte for the =E2=80=9C/=E2=80=9D, 8 bytes for =
=E2=80=9CgB,C,D,E=E2=80=9D)<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">CBOR approach:<u></u><u></u></span></p>
<p><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-ser=
if;color:#1f497d">REQ: GET <a href=3D"http://example.com/mg?select(" target=
=3D"_blank">example.com/mg?select(</a> [2049,2,3,4] )=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 (8 bytes; 1 byte for the CoAP option, 1 for the CBOR array, 3+1+1=
+1 bytes for the IDs)<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><img border=3D"0" width=3D"120" heigh=
t=3D"22" src=3D"cid:image001.jpg@01D0A566.6E4E0B00" alt=3D"cid:image001.jpg=
@01C868D8.BF0BB7E0"><u></u><u></u></span></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1f497d">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1f497d"><u></u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1f497d">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563c1">michel.veillette@trilliantinc.com</span></a><u></=
u><u></u></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1f497d"><a href=
=3D"http://www.trilliantinc.com/" target=3D"_blank"><span style=3D"font-siz=
e:9.0pt;font-family:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</spa=
n></a></span><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,s=
ans-serif;color:#1f497d">
 =C2=A0 </span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif;color:#1f497d"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Alexander Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" tar=
get=3D"_blank">mailto:alexander.pelov@telecom-bretagne.eu</a>]
<br>
<b>Sent:</b> 11 juin 2015 17:06<br>
<b>To:</b> Pascal Thubert (pthubert)<br>
<b>Cc:</b> Andy Bierman; Michel Veillette; <a href=3D"mailto:6tisch@ietf.or=
g" target=3D"_blank">6tisch@ietf.org</a>;
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a><br>
<b>Subject:</b> Re: [6tisch] Reserve space for aliases<u></u><u></u></span>=
</p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">Hi Pascal,<u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal">Le 10 juin 2015 =C3=A0 15:25, Pascal Thubert (pthube=
rt) &lt;<a href=3D"mailto:pthubert@cisco.com" target=3D"_blank">pthubert@ci=
sco.com</a>&gt; a =C3=A9crit :<u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">Dear all:</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">This looks like the problem of local =
namespaces,=C2=A0 which is the reason why MPLS switches labels.</span><u></=
u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">The user may access a limited set of =
resources from a number of servers, and servers are read by many users.</sp=
an><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">You cannot ensure that you have a sin=
gle alias space that satisfies them all.</span><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Great analogy! And yes, sadly you cannot satisfy the=
m all, at least not with all devices.<u></u><u></u></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><u></u>=C2=A0<u></u><=
/p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">So ,what if the user had its own set =
of aliases and the server also had its own set of aliases?</span><u></u><u>=
</u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">The aliases could be mapped in a tabl=
e like a uSAP and a pSAP are mapped across layers. Broadly:</span><u></u><u=
></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">- First time a user requests a resour=
ce in a server, it comes with a tuple (userid, useralias, fullname)</span><=
u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">- The server responds with (serverid,=
 serveralias, userid, user alias).</span><u></u><u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Actually, I think that this could be worked out in C=
oMI also. Instead of fullname you could provide the YANG id (module ID + da=
ta node ID) and do the mapping. User alias would be the special aliased YAN=
G id. User ID, however, could be a
 little bit more tricky - how do we ensure that it is consistent? Use the I=
P address of the client could be doable, but we=E2=80=99ll have to include =
the UDP port just in case someone runs two clients on the same machine.<u><=
/u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><u></u>=C2=A0<u></u><=
/p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">After that,=C2=A0 if the server is a =
constrained device then the user talks to the server with (serverid, server=
alias) and the user maintains a switching table for
 the resource it uses on various servers.</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">If the user is the constrained device=
 and the server is not, the user could talk with (userid, useralias) and th=
e server maintains a switching table.</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">For large servers, the server may all=
ocate aliases dynamically based on what it is being asked. We=E2=80=99d the=
n need to talk about alias update or revocation, probably
 in terms of session and lifetime.</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">Does that look usable?</span><u></u><=
u></u></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">You are pointing out an interesting question. I woul=
d think (but maybe I=E2=80=99m mistaken), that the client should have the l=
eading role in figuring out what=E2=80=99s happening. The idea is the follo=
wing:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">The client checks if the server supports aliasing, w=
ith the possible options:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">S1) no aliasing<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">S2) static/server-defined aliasing<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">S3) dynamic/single alias mapping=C2=A0<u></u><u></u>=
</p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 S3.1) mapping already defined<u></u><u></u></=
p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0 S3.2) no mapping defined<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">S4) dynamic/per client alias mapping<u></u><u></u></=
p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Then, the client can take action, depending on its o=
wn capabilities and the response of the server. E.g. a unconstrained client=
 could obtain the alias mapping if it is static (or if there is a single al=
ias mapping in place) and cache it
 locally. So, there will be the following correspondence :<u></u><u></u></p=
>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Given:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">C1) constrained client<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">C2) unconstrained client<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">We have:<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">C1 + S1) no aliasing, nothing to do<u></u><u></u></p=
>
</div>
<div>
<p class=3D"MsoNormal">C1 + S2) and C1 + S3.1) if the alias mapping is know=
n, use it. otherwise, ignore<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">C1 + S3.2) and C1 + S4) define alias mapping<u></u><=
u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 + S1) no aliasing, nothing to do<u></u><u></u></p=
>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 + S2) and C2 + S3.1) if the alias mapping is know=
n, use it. otherwise, learn it<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 + S3.2) and C2 + S4) define alias mapping<u></u><=
u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">I would say that the analogy you made with MPLS corr=
esponds quite a lot to the C2+S4 case. Personally, I would be most interest=
ed into having one client configure one alias mapping to all servers in the=
 network (e.g. the managing entity),
 which will profit most from saving several bytes on each message exchange.=
 Everyone else could use the standard IDs, which we=E2=80=99ve already mana=
ged to shrink significantly.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Indeed, with structured module ID + data node ID (20=
 bits + 10 bits), YANG URI compression, and long form/short form, we=E2=80=
=99ll have quite a lot of gain. Reserving module ID =3D 1 for aliases and m=
aybe writing a short draft on how the aliasing
 is implemented seems feasible, where we can cover the exact mechanism of a=
lias definition, and client/server interaction.<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">Alexander<u></u><u></u></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">Pascal</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in =
0in 0in">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,sans-serif">From:</span></b><span><span style=3D"font-size:10=
.0pt;font-family:&quot;Tahoma&quot;,sans-serif">=C2=A0</span></span><span s=
tyle=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,sans-serif">6tisch
 [<a href=3D"mailto:6tisch-bounces@ietf.org" target=3D"_blank">mailto:6tisc=
h-bounces@ietf.org</a>]<span>=C2=A0</span><b>On Behalf Of<span>=C2=A0</span=
></b>Andy Bierman<br>
<b>Sent:</b><span>=C2=A0</span>vendredi 5 juin 2015 20:55<br>
<b>To:</b><span>=C2=A0</span>Michel Veillette<br>
<b>Cc:</b><span>=C2=A0</span><a href=3D"mailto:6tisch@ietf.org" target=3D"_=
blank">6tisch@ietf.org</a>; Alexander Pelov;
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a><br>
<b>Subject:</b><span>=C2=A0</span>Re: [6tisch] Reserve space for aliases</s=
pan><u></u><u></u></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette &l=
t;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank"><s=
pan style=3D"color:purple">Michel.Veillette@trilliantinc.com</span></a>&gt;=
 wrote:<u></u><u></u></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">Hi Alexander</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">I have some concerns about allowing C=
oMI client(s) the control of the list of aliases.</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">This approach work fine for the first=
 CoMI application (e.g. 6TiSCH) but what do we do with the subsequent CoMI =
application?</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">One possible solution is that each Co=
MI client send a list of (alias, data node ID) to the CoMI server. In this =
case, the CoMI client might receive an error if
 one or multiple of these aliases are already reserved.</span><u></u><u></u=
></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">A second possible solution is that ea=
ch CoMI client send a list of (data node ID) and get a list of (alias, data=
 node ID) from the CoMI server. In this case,
 CoMI clients will have to deal with a mix population of aliases.</span><u>=
</u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">The proposed solution need to scale t=
o a multi-vendors, multiple applications environment.</span><u></u><u></u><=
/p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">With this is mind, do you have any al=
ternative solutions to propose?</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Does this approach allow each client to have a diffe=
rent set of aliases,<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">so the server has to maintain a configured mapping f=
or each client?<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">This seems like a lot of overhead and NV-storage req=
uirements<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">on the server.<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Changing the schema identifiers based on which clien=
t is<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">sending the request seems like a complicated design =
change<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">from RESTCONF, NETCONF, or SNMP, where there is only=
<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">1 schema tree which is not dependent on the client i=
dentity.<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Andy<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<blockquote style=3D"border:none;border-left:solid #cccccc 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-=
bottom:5.0pt">
<div>
<div>
<div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">&lt;image001.jpg&gt;</span><u></u><u>=
</u></p>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif;color:#1f497d">Michel Veillette<br>
System Architecture Director</span><u></u><u></u></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif;color:#1f497d">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563c1">michel.veillette@trilliantinc.com</span></a></spa=
n><u></u><u></u></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d"><a href=3D"http://www.trilliantinc.co=
m/" target=3D"_blank"><span style=3D"font-size:9.0pt;font-family:&quot;Aria=
l&quot;,sans-serif;color:purple">www.trilliantinc.com</span></a></span><spa=
n><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;c=
olor:#1f497d">=C2=A0</span></span><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif;color:#1f497d">=C2=A0<span>=C2=A0</span></sp=
an><u></u><u></u></p>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1f497d">=C2=A0</span><u></u><u></u></p>
</div>
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:</span></b><span><span style=3D"font-size:1=
1.0pt;font-family:&quot;Calibri&quot;,sans-serif">=C2=A0</span></span><span=
 style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif">Alex=
ander
 Pelov [mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" targe=
t=3D"_blank"><span style=3D"color:purple">alexander.pelov@telecom-bretagne.=
eu</span></a>]<span>=C2=A0</span><br>
<b>Sent:</b><span>=C2=A0</span>5 juin 2015 12:03<br>
<b>To:</b><span>=C2=A0</span>Michel Veillette<br>
<b>Cc:</b><span>=C2=A0</span>Andy Bierman;<span>=C2=A0</span><a href=3D"mai=
lto:6tisch@ietf.org" target=3D"_blank"><span style=3D"color:purple">6tisch@=
ietf.org</span></a>;<span>=C2=A0</span><a href=3D"mailto:core@ietf.org" tar=
get=3D"_blank"><span style=3D"color:purple">core@ietf.org</span></a><br>
<b>Subject:</b><span>=C2=A0</span>Re: Reserve space for aliases</span><u></=
u><u></u></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">Hi Michel,<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal">Le 5 juin 2015 =C3=A0 17:17, Michel Veillette &lt;<a=
 href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank"><span =
style=3D"color:purple">Michel.Veillette@trilliantinc.com</span></a>&gt; a =
=C3=A9crit :<u></u><u></u></p>
</div>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Hi Alexander</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">In your presentation at 6TiSCH, you propose the fol=
lowing data node ID structure.</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
</div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" style=3D"border-col=
lapse:collapse">
<tbody>
<tr>
<td width=3D"623" valign=3D"top" style=3D"width:467.5pt;border:solid window=
text 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<div style=3D"margin-left:.5in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=E2=80=A2</span><span style=3D"font-size:7.0pt">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:11.0=
pt;font-family:&quot;Calibri&quot;,sans-serif">32 bits YANG ID</span><u></u=
><u></u></p>
</div>
</div>
<div style=3D"margin-left:1.0in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=E2=80=93</span><span style=3D"font-size:7.0pt">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:11.0pt;fon=
t-family:&quot;Calibri&quot;,sans-serif">20 bits for module ID (assigned by=
 IETF)</span><u></u><u></u></p>
</div>
</div>
<div style=3D"margin-left:1.0in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=E2=80=93</span><span style=3D"font-size:7.0pt">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span><span style=3D"font-size:11.0pt;fon=
t-family:&quot;Calibri&quot;,sans-serif">10 bits for data node ID (generate=
d deterministically)</span><u></u><u></u></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Based on this structure, we can reserve=C2=A0module=
 ID zero for aliases.</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">I was just summarizing what was discussed on the dis=
cussion in CoMI. Actually, it is 30 bits YANG ID, but that=E2=80=99s for pu=
rposes to be consistent with the YANG hash and I don=E2=80=99t mind keeping=
 it 30 bits.<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">=C2=A0<u></u><u></u><=
/p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">If we want to minimize both the network an node res=
ources require by this alias mechanism, we can map an entire module to this=
 space.</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">This can be implemented by a single integer resourc=
e (e.g. leaf alliassedModule { type uint32 } )</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">This approach require 4 bytes per CoMI server acces=
sed.</span><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">It is possible to map an entire module to the alias =
space and this is up to the operator. However, if you load two modules whic=
h redefine the same alias you will loose the benefit from it. Maybe it woul=
d be interesting to be able to specify
 that you want the aliases from THIS specific module to be used.<u></u><u><=
/u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">If the /mg/0 alias is reserved for managing the alia=
ses, this could be simply saying:<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">POST /mg/0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">{<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0&quot;source_uri&quot; : &quot;/mg/BAA&quot;<u=
></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">}<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">where /mg/BAA is the YANG id of the module (20 bits =
module ID + 10 bits set to 0). This way, the server will know: OK, get the =
alias mapping from the YANG scheme of module with ID =3D B (as defined by t=
he IETF).=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Or, you can dynamically configure the mapping:<u></u=
><u></u></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">POST /mg/0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">{<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0 YANG_id : alias,<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0 YANG_id : alias,<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0 YANG_id : alias<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">}<u></u><u></u></p>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">=C2=A0<u></u><u></u><=
/p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">If we want a more complex but more flexible aliases=
 mechanism, your proposed map of (allias, YANG ID) seem the solution.</span=
><u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">However, we have to consider that this structure ca=
n be as large as=C2=A0<u>1250 bytes per CoMI server accessed</u>=C2=A0if li=
mited to 256 aliases.</span><u></u><u></u></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">This is assuming you need a separate mapping for eac=
h server. I would suppose that in a network you=E2=80=99ll have a single al=
ias mapping (maybe two?) - after all, you=E2=80=99re trying to optimize the=
 management of your devices (servers). So, typically
 you=E2=80=99d map all 6tisch devices with aliases 1-10 (channel, slot, etc=
.) and use that on them, and on all other you=E2=80=99d access the full ID.=
=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Best,<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Alexander<u></u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">=C2=A0<u></u><u></u><=
/p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">=C2=A0</span><u></u><u></u></p>
</div>
</div>
<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0" width=3D"717" style=
=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&lt;image001.jpg&gt;</span><u></u><u></u></p>
</div>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif">Michel Veillette<br>
System Architecture Director</span><u></u><u></u></p>
</div>
</div>
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563c1">michel.veillette@trilliantinc.com</span></a></spa=
n><u></u><u></u></p>
</div>
</div>
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><a href=3D"http://www.trilliantinc.com/" target=3D"=
_blank"><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-s=
erif;color:purple">www.trilliantinc.com</span></a></span><u></u><u></u></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
</div>

</blockquote></div><br></div></div>

--047d7bfd0d867ca26505185f6f22--
--047d7bfd0d867ca26a05185f6f23
Content-Type: image/jpeg; name="image001.jpg"
Content-Disposition: inline; filename="image001.jpg"
Content-Transfer-Encoding: base64
Content-ID: <image001.jpg@01D0A566.6E4E0B00>
X-Attachment-Id: 402d62d7f56c184f_0.1

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z
--047d7bfd0d867ca26a05185f6f23--


From nobody Sat Jun 13 03:17:05 2015
Return-Path: <pthubert@cisco.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4EA351B2FC1; Sat, 13 Jun 2015 03:17:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level: 
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Yc2uzub8Gmqa; Sat, 13 Jun 2015 03:16:58 -0700 (PDT)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C9B0B1B2FBE; Sat, 13 Jun 2015 03:16:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=92557; q=dns/txt; s=iport; t=1434190617; x=1435400217; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=XRfqOqaIwoCZbW5a+oZORiv3+Fv0KtUWpPI9EpBonss=; b=SdFA3v141g8xPZPd6qBwbEuJlACe/XEcpj2pzNwdZoYXoCn79x11VyQE sQPgZUbKwFM0s5u7lPumGZz9zTCVGo4w82f1Ssz3DWNpZ0mqM6KwTDJLC rGHWqTsOL8W0tRqUNKOcHXeRqfOe+ne/bgTyS0bEkKWYkYaGijfSBDLRQ E=;
X-Files: image001.jpg, image001.jpg : 2532, 2532
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CLBwADAnxV/5FdJa1TBgECgkVLVF+9FDyCEH+EfwKBNjsRAQEBAQEBAYEKhCIBAQEEBRUBCggBGyMKAxACAQgHCgEDAQEGAQELBAoBBgcCFRsUAwYIAgQOBQ4NBIgQyXMBAQEBAQEBAQEBAQEBAQEBAQEBAQEXikKBAoQdDQMOAh4HCQsNAwYBBgMIAQsBgnmBFgWLeYULglOCHoFMAWKGcgGBMkGDQweCfodXhCGDWxEVgggCHYFSb4EDAQgXgSQBAQE
X-IronPort-AV: E=Sophos;i="5.13,607,1427760000";  d="jpg'145?scan'145,208,145,217";a="158962112"
Received: from rcdn-core-9.cisco.com ([173.37.93.145]) by alln-iport-7.cisco.com with ESMTP; 13 Jun 2015 10:16:56 +0000
Received: from xhc-rcd-x02.cisco.com (xhc-rcd-x02.cisco.com [173.37.183.76]) by rcdn-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id t5DAGuBf026422 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Sat, 13 Jun 2015 10:16:56 GMT
Received: from xmb-rcd-x01.cisco.com ([169.254.1.61]) by xhc-rcd-x02.cisco.com ([173.37.183.76]) with mapi id 14.03.0195.001; Sat, 13 Jun 2015 05:16:55 -0500
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60ImdraRcLEk2RLo1BOAuHsAABye4AAAUaOoAAAO2JAADv9XEAAEJffwAAJ0YMwAATNOsAAAQ/4UAADyt6rw==
Date: Sat, 13 Jun 2015 10:16:54 +0000
Message-ID: <ED1C41B0-E194-46EF-8BC2-9ED1863BCF63@cisco.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <E045AECD98228444A58C61C200AE1BD849E9998D@xmb-rcd-x01.cisco.com>, <CO2PR0601MB7925122DA741C05A1CBA63EFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
In-Reply-To: <CO2PR0601MB7925122DA741C05A1CBA63EFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
Content-Type: multipart/mixed; boundary="_006_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/smtXou5Mv9zUqfAA_KTIbLypSyk>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2015 10:17:04 -0000

--_006_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_
Content-Type: multipart/related;
	boundary="_005_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_";
	type="multipart/alternative"

--_005_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_
Content-Type: multipart/alternative;
	boundary="_000_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_"

--_000_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

Hello Michel:

Got you! Thanks for all !

For the last point I was in fact suggesting that we could also alias module=
 IDs as opposed to leaves in the model. How many modules in one sensor? If =
that's less than 63 then they can all be aliased.
Concatenation of all ideas give:

0 for short forms
1...3 for aliasing full data node IDs long forms
4..60 for aliasing module IDs meaning that the short form must be provided
61...63 reserved for experimentation

Client and server would negotiate if the alias is take from server alias sp=
ace or client alias space depending on which is constrained, default being =
server.

This negotiation would work even if the module I'd is not yet allocated sin=
ce it could be negotiated by name into a reserved alias 61..63.

Makes sense?
Pascal

Le 12 juin 2015 =E0 23:53, Michel Veillette <Michel.Veillette@trilliantinc.=
com<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :

Hi Alexander

About =93Yes, I suppose you should always start with aliases, but that does=
n=92t sound like a strong constraint to me=94

If I take the following example:
GET example.com/mg?select<http://example.com/mg?select>(1, 2, 2049, 3)

Data node ID 1 and 2 can be associated with module ID 0 (aliases) but data =
node ID 2049 and 3 are associated with module ID 1.
I don=92t understand how aliases can be added at the end of this list witho=
ut been processed as short form.
Please confirm my understanding.

Hi Andy

About =93The data is hierarchical and the parser is required to maintain th=
e current module scope. It should be possible to omit the module identifier=
 for nested data, except for nodes that start a new module scope. Is this w=
hat you have in mind?=94

Yes
I=92m proposing to use the same model as JSON with a long form consisting o=
f a 20 bits module ID/10 bits YANG ID and the short form consisting of a 10=
 bits YANG ID.

About =93I am not convinced that aliases are worth all the effort because m=
ost (95%?) of the IDs in the payload will only need 10 bits.=94

Agree
In most cases, the message size compression will same just a couple of byte=
s.
As mentioned by Alexander, we can simply reserve a range for aliases (e.g. =
module ID 0) but defer the resolution to a different draft.

Hi Pascal

About =93I understand that any sensor vendor will want to have its own modu=
le IDs, correct?=94

Correct, with 20 bits, we can allocate 1 000 000 module ID.
This can be done one by one or by small bundle of module IDs (e.g. 4, 8, 16=
 IDs).

About =93I have missed the trick of 63 module IDs that are optimally encode=
d=94

When using the long form (20 bits module ID, 10 bits YANG ID), data node ID=
 small enough to fit on 16 bits are encoded using CBOR in 3 bytes. Since th=
e YAND ID takes 10 bits, we have 6 bits left for the module ID (64 IDs minu=
s ID 0 reserved for the short form). Module ID greater than 63 require the =
use of the 5 bytes CBOR encoding.

About =93If so: maybe we should alias the module IDs so that the 63 IDs tha=
t benefit from the optimal CBOR compression should be the aliases of any of=
 the thousands of IDs that will soon exist in the registries.=94

A possible solution is to reserve module ID 0, 1, 2 and 3 for aliases which=
 will leave 60 =93more optimal=94 module IDs.
The specific use of the reserved module IDs can be addressed in one of mult=
iple subsequence drafts.
What is important for now is the establishment of a consensus around the co=
re concepts discussed:

=B7         registered 20 bits module ID

=B7         10 bits assigned YANG ID

=B7         long form / short form data node ID

=B7         select encoded in CBOR

<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
Sent: 12 juin 2015 21:11
To: Michel Veillette; Alexander Pelov
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: RE: [6tisch] Reserve space for aliases

Hello Michel:

I=92m not so worried for 6TiSCH=92s ID than for the IDs used to collect dat=
a from sensors. Because that is the operation that will happen all the time=
 an suck batteries.
I understand that any sensor vendor will want to have its own module IDs, c=
orrect? And soon enough that vendor will come with variants of his products=
, and will want more module IDs, is that right?

If I=92m correct, this pleads for aliases; but maybe not as we thought them=
. I have missed the trick of 63 module IDs that are optimally encoded, but =
I trust you on that =96 I figure that it is because it takes 2 bits to enco=
ded the coap option?

If so: maybe we should alias the module IDs so that the 63 IDs that benefit=
 from the optimal cbor compression should be the aliases of any of the thou=
sands of IDs that will soon exist in the registries.

Also note that device makers will want the vendor specific range that they =
use to play with before something is registered. Aliases could also be a wa=
y to play with module IDs that have not yet been registered to IANA.

I=92m not sure the above makes sense since it is based on a partial underst=
anding of your work so far=85

Pascal

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: vendredi 12 juin 2015 09:58
To: Alexander Pelov; Pascal Thubert (pthubert)
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: RE: [6tisch] Reserve space for aliases

Hi Alexander, hi Pascal

I want to emphases the following points


=95         The use of the select query parameter encoded in CBOR support o=
f 63 modules with optimized message size instead of only 3 for the base64 U=
RI.

If the 6TiSCH module ID is allocated within these 63 IDs, there will be no =
message size optimization provided by the aliases mechanism.

This make the introduction of aliases less urgent.



=95         The message size of the select query parameter encoded in CBOR =
should be equal or smaller compared to the base64 URI.

However, the select query parameter encoded in CBOR support a wider range o=
f values without size penalty (16 bits instead of 12, 32 bits instead of 30=
)

Furthermore, CoMI devices won=92t have to support two type of encoding depe=
nding if IDs are part of the command vs. payload.



For example:



Assuming module ID 2

Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)

Assuming =93,=94 separator to select multiple data nodes



Base64 approach:

REQ: GET example.com/mg/gB<http://example.com/mg/gB>         (3 bytes; 1 by=
te for the =93/=94, 2 bytes for =93gB=94)



CBOR approach:

REQ: GET example.com/mg?select<http://example.com/mg?select>(2049)         =
(4 bytes; one byte for the CoAP option, 3 for 2049 encoded using CBOR)



Base64 approach:

REQ: GET example.com/mg/gB,C,D,E<http://example.com/mg/gB,C,D,E>         (9=
 bytes; 1 byte for the =93/=94, 8 bytes for =93gB,C,D,E=94)


CBOR approach:

REQ: GET example.com/mg?select<http://example.com/mg?select>( [2049,2,3,4] =
)      (8 bytes; 1 byte for the CoAP option, 1 for the CBOR array, 3+1+1+1 =
bytes for the IDs)


<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
Sent: 11 juin 2015 17:06
To: Pascal Thubert (pthubert)
Cc: Andy Bierman; Michel Veillette; 6tisch@ietf.org<mailto:6tisch@ietf.org>=
; core@ietf.org<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases

Hi Pascal,

Le 10 juin 2015 =E0 15:25, Pascal Thubert (pthubert) <pthubert@cisco.com<ma=
ilto:pthubert@cisco.com>> a =E9crit :

Dear all:

This looks like the problem of local namespaces,  which is the reason why M=
PLS switches labels.
The user may access a limited set of resources from a number of servers, an=
d servers are read by many users.
You cannot ensure that you have a single alias space that satisfies them al=
l.

Great analogy! And yes, sadly you cannot satisfy them all, at least not wit=
h all devices.


So ,what if the user had its own set of aliases and the server also had its=
 own set of aliases?

The aliases could be mapped in a table like a uSAP and a pSAP are mapped ac=
ross layers. Broadly:
- First time a user requests a resource in a server, it comes with a tuple =
(userid, useralias, fullname)
- The server responds with (serverid, serveralias, userid, user alias).

Actually, I think that this could be worked out in CoMI also. Instead of fu=
llname you could provide the YANG id (module ID + data node ID) and do the =
mapping. User alias would be the special aliased YANG id. User ID, however,=
 could be a little bit more tricky - how do we ensure that it is consistent=
? Use the IP address of the client could be doable, but we=92ll have to inc=
lude the UDP port just in case someone runs two clients on the same machine=
.



After that,  if the server is a constrained device then the user talks to t=
he server with (serverid, serveralias) and the user maintains a switching t=
able for the resource it uses on various servers.
If the user is the constrained device and the server is not, the user could=
 talk with (userid, useralias) and the server maintains a switching table.

For large servers, the server may allocate aliases dynamically based on wha=
t it is being asked. We=92d then need to talk about alias update or revocat=
ion, probably in terms of session and lifetime.

Does that look usable?

You are pointing out an interesting question. I would think (but maybe I=92=
m mistaken), that the client should have the leading role in figuring out w=
hat=92s happening. The idea is the following:

The client checks if the server supports aliasing, with the possible option=
s:
S1) no aliasing
S2) static/server-defined aliasing
S3) dynamic/single alias mapping
  S3.1) mapping already defined
  S3.2) no mapping defined
S4) dynamic/per client alias mapping

Then, the client can take action, depending on its own capabilities and the=
 response of the server. E.g. a unconstrained client could obtain the alias=
 mapping if it is static (or if there is a single alias mapping in place) a=
nd cache it locally. So, there will be the following correspondence :

Given:
C1) constrained client
C2) unconstrained client

We have:
C1 + S1) no aliasing, nothing to do
C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise, i=
gnore
C1 + S3.2) and C1 + S4) define alias mapping

C2 + S1) no aliasing, nothing to do
C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise, l=
earn it
C2 + S3.2) and C2 + S4) define alias mapping

I would say that the analogy you made with MPLS corresponds quite a lot to =
the C2+S4 case. Personally, I would be most interested into having one clie=
nt configure one alias mapping to all servers in the network (e.g. the mana=
ging entity), which will profit most from saving several bytes on each mess=
age exchange. Everyone else could use the standard IDs, which we=92ve alrea=
dy managed to shrink significantly.

Indeed, with structured module ID + data node ID (20 bits + 10 bits), YANG =
URI compression, and long form/short form, we=92ll have quite a lot of gain=
. Reserving module ID =3D 1 for aliases and maybe writing a short draft on =
how the aliasing is implemented seems feasible, where we can cover the exac=
t mechanism of alias definition, and client/server interaction.

Alexander


Pascal

From: 6tisch [mailto:6tisch-bounces@ietf.org] On Behalf Of Andy Bierman
Sent: vendredi 5 juin 2015 20:55
To: Michel Veillette
Cc: 6tisch@ietf.org<mailto:6tisch@ietf.org>; Alexander Pelov; core@ietf.org=
<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases



On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <Michel.Veillette@trillia=
ntinc.com<mailto:Michel.Veillette@trilliantinc.com>> wrote:
Hi Alexander

I have some concerns about allowing CoMI client(s) the control of the list =
of aliases.
This approach work fine for the first CoMI application (e.g. 6TiSCH) but wh=
at do we do with the subsequent CoMI application?

One possible solution is that each CoMI client send a list of (alias, data =
node ID) to the CoMI server. In this case, the CoMI client might receive an=
 error if one or multiple of these aliases are already reserved.

A second possible solution is that each CoMI client send a list of (data no=
de ID) and get a list of (alias, data node ID) from the CoMI server. In thi=
s case, CoMI clients will have to deal with a mix population of aliases.

The proposed solution need to scale to a multi-vendors, multiple applicatio=
ns environment.
With this is mind, do you have any alternative solutions to propose?



Does this approach allow each client to have a different set of aliases,
so the server has to maintain a configured mapping for each client?
This seems like a lot of overhead and NV-storage requirements
on the server.

Changing the schema identifiers based on which client is
sending the request seems like a complicated design change
from RESTCONF, NETCONF, or SNMP, where there is only
1 schema tree which is not dependent on the client identity.


Andy




<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu<mailto:al=
exander.pelov@telecom-bretagne.eu>]
Sent: 5 juin 2015 12:03
To: Michel Veillette
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: Re: Reserve space for aliases

Hi Michel,


Le 5 juin 2015 =E0 17:17, Michel Veillette <Michel.Veillette@trilliantinc.c=
om<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :

Hi Alexander

In your presentation at 6TiSCH, you propose the following data node ID stru=
cture.

=95       32 bits YANG ID
=96      20 bits for module ID (assigned by IETF)
=96      10 bits for data node ID (generated deterministically)


Based on this structure, we can reserve module ID zero for aliases.


I was just summarizing what was discussed on the discussion in CoMI. Actual=
ly, it is 30 bits YANG ID, but that=92s for purposes to be consistent with =
the YANG hash and I don=92t mind keeping it 30 bits.


If we want to minimize both the network an node resources require by this a=
lias mechanism, we can map an entire module to this space.
This can be implemented by a single integer resource (e.g. leaf alliassedMo=
dule { type uint32 } )
This approach require 4 bytes per CoMI server accessed.


It is possible to map an entire module to the alias space and this is up to=
 the operator. However, if you load two modules which redefine the same ali=
as you will loose the benefit from it. Maybe it would be interesting to be =
able to specify that you want the aliases from THIS specific module to be u=
sed.

If the /mg/0 alias is reserved for managing the aliases, this could be simp=
ly saying:
POST /mg/0
{
 "source_uri" : "/mg/BAA"
}

where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits set=
 to 0). This way, the server will know: OK, get the alias mapping from the =
YANG scheme of module with ID =3D B (as defined by the IETF).

Or, you can dynamically configure the mapping:
POST /mg/0
{
  YANG_id : alias,
  YANG_id : alias,
  YANG_id : alias
}

If we want a more complex but more flexible aliases mechanism, your propose=
d map of (allias, YANG ID) seem the solution.
However, we have to consider that this structure can be as large as 1250 by=
tes per CoMI server accessed if limited to 256 aliases.

This is assuming you need a separate mapping for each server. I would suppo=
se that in a network you=92ll have a single alias mapping (maybe two?) - af=
ter all, you=92re trying to optimize the management of your devices (server=
s). So, typically you=92d map all 6tisch devices with aliases 1-10 (channel=
, slot, etc.) and use that on them, and on all other you=92d access the ful=
l ID.

Best,
Alexander


<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



--_000_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
</head>
<body dir=3D"auto">
<div>Hello Michel:</div>
<div><br>
</div>
<div>Got you! Thanks for all !</div>
<div><br>
</div>
<div>For the last point I was in fact suggesting that we could also alias m=
odule IDs as opposed to leaves in the model. How many modules in one sensor=
? If that's less than 63 then they can all be aliased.</div>
<div>Concatenation of all ideas give:</div>
<div><br>
</div>
<div>0 for short forms</div>
<div>1...3 for aliasing full data node IDs long forms</div>
<div>4..60 for aliasing module IDs meaning that the short form must be prov=
ided<br>
61...63 reserved for experimentation&nbsp;</div>
<div><br>
</div>
<div>Client and server would negotiate if the alias is take from server ali=
as space or client alias space depending on which is constrained, default b=
eing server.</div>
<div><br>
</div>
<div>This negotiation would work even if the module I'd is not yet allocate=
d since it could be negotiated by name into a reserved alias 61..63.</div>
<div><br>
</div>
<div>Makes sense?<br>
Pascal</div>
<div><br>
Le 12 juin 2015 =E0 23:53, Michel Veillette &lt;<a href=3D"mailto:Michel.Ve=
illette@trilliantinc.com">Michel.Veillette@trilliantinc.com</a>&gt; a =E9cr=
it&nbsp;:<br>
<br>
</div>
<blockquote type=3D"cite">
<div>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma",sans-serif;}
span.apple-converted-space
	{mso-style-name:apple-converted-space;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle22
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle23
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle24
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:580599099;
	mso-list-type:hybrid;
	mso-list-template-ids:1551659370 269025281 269025283 269025285 269025281 2=
69025283 269025285 269025281 269025283 269025285;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Alex=
ander<o:p></o:p></span></b></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About =93Y=
es, I suppose you should always start with aliases, but that doesn=92t soun=
d like a strong constraint to me=94<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">If I take the following example:<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:1.0in"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareas=
t-language:EN-US">GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>(1, 2, 20=
49, 3)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">Data node ID 1 and 2 can be associated with module ID 0 (a=
liases) but data node ID 2049 and 3 are associated
 with module ID 1.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">I don=92t understand how aliases can be added at the end o=
f this list without been processed as short form.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">Please confirm my understanding.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Andy=
<o:p></o:p></span></b></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About =93T=
he data is hierarchical and the parser is required to maintain the current =
module scope. It should be possible to omit the
 module identifier for nested data, except for nodes that start a new modul=
e scope. Is this what you have in mind?=94<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">Yes<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">I=92m proposing to use the same model as JSON with a long =
form consisting of a 20 bits module ID/10 bits YANG
 ID and the short form consisting of a 10 bits YANG ID.<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About =93I=
 am not convinced that aliases are worth all the effort because most (95%?)=
 of the IDs in the payload will only need 10 bits.=94<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">Agree<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">In most cases, the message size compression will same just=
 a couple of bytes.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">As mentioned by Alexander, we can simply reserve a range f=
or aliases (e.g. module ID 0) but defer the resolution
 to a different draft.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Pasc=
al<o:p></o:p></span></b></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About =93<=
/span><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;Cali=
bri&quot;,sans-serif;color:#1F497D">I understand that any sensor
 vendor will want to have its own module IDs, correct?=94<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span lang=3D"EN-US" styl=
e=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F4=
97D">Correct, with 20 bits, we can allocate 1 000 000 module ID.<o:p></o:p>=
</span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span lang=3D"EN-US" styl=
e=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F4=
97D">This can be done one by one or by small bundle of module IDs (e.g. 4, =
8, 16 IDs).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN=
-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About =93I=
 have missed the trick of 63 module IDs that are optimally encoded=94<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">When using the long form (20 bits module ID, 10 bits YANG =
ID), data node ID small enough to fit on 16 bits
 are encoded using CBOR in 3 bytes. Since the YAND ID takes 10 bits, we hav=
e 6 bits left for the module ID (64 IDs minus ID 0 reserved for the short f=
orm). Module ID greater than 63 require the use of the 5 bytes CBOR encodin=
g.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About =93I=
f so: maybe we should alias the module IDs so that the 63 IDs that benefit =
from the optimal CBOR compression should be the
 aliases of any of the thousands of IDs that will soon exist in the registr=
ies.=94<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">A possible solution is to reserve module ID 0, 1, 2 and 3 =
for aliases which will leave 60 =93more optimal=94 module
 IDs.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">The specific use of the reserved module IDs can be address=
ed in one of multiple subsequence drafts.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">What is important for now is the establishment of a consen=
sus around the core concepts discussed:<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level1 lfo1">
<!--[if !supportLists]--><span style=3D"font-size:11.0pt;font-family:Symbol=
;color:#1F497D;mso-fareast-language:EN-US"><span style=3D"mso-list:Ignore">=
=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US=
">registered 20 bits module ID<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level1 lfo1">
<!--[if !supportLists]--><span style=3D"font-size:11.0pt;font-family:Symbol=
;color:#1F497D;mso-fareast-language:EN-US"><span style=3D"mso-list:Ignore">=
=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US=
">10 bits assigned YANG ID<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level1 lfo1">
<!--[if !supportLists]--><span style=3D"font-size:11.0pt;font-family:Symbol=
;color:#1F497D;mso-fareast-language:EN-US"><span style=3D"mso-list:Ignore">=
=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US=
">long form / short form data node ID<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level1 lfo1">
<!--[if !supportLists]--><span style=3D"font-size:11.0pt;font-family:Symbol=
;color:#1F497D;mso-fareast-language:EN-US"><span style=3D"mso-list:Ignore">=
=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><!--[endif]--><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US=
">select encoded in CBOR<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&lt;image001.jpg&gt;<o:p></o:p></span=
></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><a href=
=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</span></a></span><span=
 style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1=
F497D">
 &nbsp; </span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif;color:#1F497D"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Pascal Thubert (pthubert) [<a href=3D"mailto:pthubert@cisco.com">mailto:pth=
ubert@cisco.com</a>]
<br>
<b>Sent:</b> 12 juin 2015 21:11<br>
<b>To:</b> Michel Veillette; Alexander Pelov<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org">6tisch@ietf.org=
</a>; <a href=3D"mailto:core@ietf.org">
core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases<o:p></o:p></span></p=
>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Hello Michel:<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">I=92m not so worried f=
or 6TiSCH=92s ID than for the IDs used to collect data from sensors. Becaus=
e that is the operation that will happen all the time
 an suck batteries.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">I understand that any =
sensor vendor will want to have its own module IDs, correct? And soon enoug=
h that vendor will come with variants of his products,
 and will want more module IDs, is that right?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">If I=92m correct, this=
 pleads for aliases; but maybe not as we thought them. I have missed the tr=
ick of 63 module IDs that are optimally encoded, but
 I trust you on that =96 I figure that it is because it takes 2 bits to enc=
oded the coap option?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">If so: maybe we should=
 alias the module IDs so that the 63 IDs that benefit from the optimal cbor=
 compression should be the aliases of any of the
 thousands of IDs that will soon exist in the registries.<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Also note that device =
makers will want the vendor specific range that they use to play with befor=
e something is registered. Aliases could also be
 a way to play with module IDs that have not yet been registered to IANA.<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">I=92m not sure the abo=
ve makes sense since it is based on a partial understanding of your work so=
 far=85<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"FR" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D">Pascal<o:p></o:p></span><=
/p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,sans-serif">From:</span></b><span lang=3D"EN-U=
S" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,sans-serif"> Mi=
chel Veillette [<a href=3D"mailto:Michel.Veillette@trilliantinc.com">mailto=
:Michel.Veillette@trilliantinc.com</a>]
<br>
<b>Sent:</b> vendredi 12 juin 2015 09:58<br>
<b>To:</b> Alexander Pelov; Pascal Thubert (pthubert)<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org">6tisch@ietf.org=
</a>; <a href=3D"mailto:core@ietf.org">
core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases<o:p></o:p></span></p=
>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Hi Alexander, hi Pascal<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">I want to emphases the following poin=
ts<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:11.0pt;font-family:Symbol;color:#1F497D">=B7</span><span style=3D"=
font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;
</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1F497D">The use of the select query parameter encoded in CBOR=
 support of 63 modules with optimized message size instead of only 3 for th=
e base64 URI.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">If the 6TiSCH module ID is all=
ocated within these 63 IDs, there will be no message size optimization prov=
ided by the aliases mechanism.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">This make the introduction of =
aliases less urgent.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:11.0pt;font-family:Symbol;color:#1F497D">=B7</span><span style=3D"=
font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;
</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1F497D">The message size of the select query parameter encode=
d in CBOR should be equal or smaller compared to the base64 URI.<o:p></o:p>=
</span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">However, the select query para=
meter encoded in CBOR support a wider range of values without size penalty =
(16 bits instead of 12, 32 bits instead of 30)<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Furthermore, CoMI devices won=
=92t have to support two type of encoding depending if IDs are part of the =
command vs. payload.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">For example:<o:p></o:p></span>=
</p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Assuming module ID 2<o:p></o:p=
></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Assuming data node ID 1, 2, 3,=
 4 (long form 2049, 2050, 2051)<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Assuming =93,=94 separator to =
select multiple data nodes<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Base64 approach:<o:p></o:p></s=
pan></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">REQ: GET
<a href=3D"http://example.com/mg/gB">example.com/mg/gB</a>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3 bytes; 1 byte for the =93/=94, 2 bytes f=
or =93gB=94)<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">CBOR approach:<o:p></o:p></spa=
n></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">REQ: GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>(2049)&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (4 bytes; one byte for the Co=
AP option, 3 for 2049 encoded using CBOR)<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Base64 approach:<o:p></o:p></s=
pan></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">REQ: GET
<a href=3D"http://example.com/mg/gB,C,D,E">example.com/mg/gB,C,D,E</a>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (9 bytes; 1 byte for the =93/=
=94, 8 bytes for =93gB,C,D,E=94)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">CBOR approach:<o:p></o:p></spa=
n></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">REQ: GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>( [2049,2=
,3,4] )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8 bytes; 1 byte for the CoAP option,=
 1 for the CBOR array, 3&#43;1&#43;1&#43;1 bytes for the IDs)<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&lt;image001.jpg&gt;<o:p></o:p></span=
></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><a href=
=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</span></a></span><span=
 style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1=
F497D">
 &nbsp; </span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif;color:#1F497D"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Alexander Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu">mai=
lto:alexander.pelov@telecom-bretagne.eu</a>]
<br>
<b>Sent:</b> 11 juin 2015 17:06<br>
<b>To:</b> Pascal Thubert (pthubert)<br>
<b>Cc:</b> Andy Bierman; Michel Veillette; <a href=3D"mailto:6tisch@ietf.or=
g">6tisch@ietf.org</a>;
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<b>Subject:</b> Re: [6tisch] Reserve space for aliases<o:p></o:p></span></p=
>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal">Hi Pascal,<o:p></o:p></p>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal">Le 10 juin 2015 =E0 15:25, Pascal Thubert (pthubert)=
 &lt;<a href=3D"mailto:pthubert@cisco.com">pthubert@cisco.com</a>&gt; a =E9=
crit :<o:p></o:p></p>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Dear all:</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">This looks like the problem of local =
namespaces,&nbsp; which is the reason why MPLS switches labels.</span><o:p>=
</o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">The user may access a limited set of =
resources from a number of servers, and servers are read by many users.</sp=
an><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">You cannot ensure that you have a sin=
gle alias space that satisfies them all.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Great analogy! And yes, sadly you cannot satisfy the=
m all, at least not with all devices.<o:p></o:p></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><o:p>&nbsp;</o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">So ,what if the user had its own set =
of aliases and the server also had its own set of aliases?</span><o:p></o:p=
></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">The aliases could be mapped in a tabl=
e like a uSAP and a pSAP are mapped across layers. Broadly:</span><o:p></o:=
p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">- First time a user requests a resour=
ce in a server, it comes with a tuple (userid, useralias, fullname)</span><=
o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">- The server responds with (serverid,=
 serveralias, userid, user alias).</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Actually, I think that this could be worked out in C=
oMI also. Instead of fullname you could provide the YANG id (module ID &#43=
; data node ID) and do the mapping. User alias would be the special aliased=
 YANG id. User ID, however, could be a
 little bit more tricky - how do we ensure that it is consistent? Use the I=
P address of the client could be doable, but we=92ll have to include the UD=
P port just in case someone runs two clients on the same machine.<o:p></o:p=
></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><o:p>&nbsp;</o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">After that,&nbsp; if the server is a =
constrained device then the user talks to the server with (serverid, server=
alias) and the user maintains a switching table for
 the resource it uses on various servers.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">If the user is the constrained device=
 and the server is not, the user could talk with (userid, useralias) and th=
e server maintains a switching table.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">For large servers, the server may all=
ocate aliases dynamically based on what it is being asked. We=92d then need=
 to talk about alias update or revocation, probably
 in terms of session and lifetime.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Does that look usable?</span><o:p></o=
:p></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">You are pointing out an interesting question. I woul=
d think (but maybe I=92m mistaken), that the client should have the leading=
 role in figuring out what=92s happening. The idea is the following:<o:p></=
o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">The client checks if the server supports aliasing, w=
ith the possible options:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">S1) no aliasing<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">S2) static/server-defined aliasing<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">S3) dynamic/single alias mapping&nbsp;<o:p></o:p></p=
>
</div>
<div>
<p class=3D"MsoNormal">&nbsp; S3.1) mapping already defined<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp; S3.2) no mapping defined<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">S4) dynamic/per client alias mapping<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Then, the client can take action, depending on its o=
wn capabilities and the response of the server. E.g. a unconstrained client=
 could obtain the alias mapping if it is static (or if there is a single al=
ias mapping in place) and cache it
 locally. So, there will be the following correspondence :<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Given:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">C1) constrained client<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">C2) unconstrained client<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">We have:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">C1 &#43; S1) no aliasing, nothing to do<o:p></o:p></=
p>
</div>
<div>
<p class=3D"MsoNormal">C1 &#43; S2) and C1 &#43; S3.1) if the alias mapping=
 is known, use it. otherwise, ignore<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">C1 &#43; S3.2) and C1 &#43; S4) define alias mapping=
<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 &#43; S1) no aliasing, nothing to do<o:p></o:p></=
p>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 &#43; S2) and C2 &#43; S3.1) if the alias mapping=
 is known, use it. otherwise, learn it<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 &#43; S3.2) and C2 &#43; S4) define alias mapping=
<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">I would say that the analogy you made with MPLS corr=
esponds quite a lot to the C2&#43;S4 case. Personally, I would be most inte=
rested into having one client configure one alias mapping to all servers in=
 the network (e.g. the managing entity),
 which will profit most from saving several bytes on each message exchange.=
 Everyone else could use the standard IDs, which we=92ve already managed to=
 shrink significantly.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Indeed, with structured module ID &#43; data node ID=
 (20 bits &#43; 10 bits), YANG URI compression, and long form/short form, w=
e=92ll have quite a lot of gain. Reserving module ID =3D 1 for aliases and =
maybe writing a short draft on how the aliasing
 is implemented seems feasible, where we can cover the exact mechanism of a=
lias definition, and client/server interaction.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Alexander<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Pascal</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,sans-serif">From:</span></b><span class=3D"apple-converted-sp=
ace"><span style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,sans-se=
rif">&nbsp;</span></span><span style=3D"font-size:10.0pt;font-family:&quot;=
Tahoma&quot;,sans-serif">6tisch
 [<a href=3D"mailto:6tisch-bounces@ietf.org">mailto:6tisch-bounces@ietf.org=
</a>]<span class=3D"apple-converted-space">&nbsp;</span><b>On Behalf Of<spa=
n class=3D"apple-converted-space">&nbsp;</span></b>Andy Bierman<br>
<b>Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>vendredi 5 j=
uin 2015 20:55<br>
<b>To:</b><span class=3D"apple-converted-space">&nbsp;</span>Michel Veillet=
te<br>
<b>Cc:</b><span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mai=
lto:6tisch@ietf.org">6tisch@ietf.org</a>; Alexander Pelov;
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<b>Subject:</b><span class=3D"apple-converted-space">&nbsp;</span>Re: [6tis=
ch] Reserve space for aliases</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette &l=
t;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank"><s=
pan style=3D"color:purple">Michel.Veillette@trilliantinc.com</span></a>&gt;=
 wrote:<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Hi Alexander</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">I have some concerns about allowing C=
oMI client(s) the control of the list of aliases.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">This approach work fine for the first=
 CoMI application (e.g. 6TiSCH) but what do we do with the subsequent CoMI =
application?</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">One possible solution is that each Co=
MI client send a list of (alias, data node ID) to the CoMI server. In this =
case, the CoMI client might receive an error if
 one or multiple of these aliases are already reserved.</span><o:p></o:p></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">A second possible solution is that ea=
ch CoMI client send a list of (data node ID) and get a list of (alias, data=
 node ID) from the CoMI server. In this case,
 CoMI clients will have to deal with a mix population of aliases.</span><o:=
p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">The proposed solution need to scale t=
o a multi-vendors, multiple applications environment.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">With this is mind, do you have any al=
ternative solutions to propose?</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Does this approach allow each client to have a diffe=
rent set of aliases,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">so the server has to maintain a configured mapping f=
or each client?<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">This seems like a lot of overhead and NV-storage req=
uirements<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">on the server.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Changing the schema identifiers based on which clien=
t is<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">sending the request seems like a complicated design =
change<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">from RESTCONF, NETCONF, or SNMP, where there is only=
<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">1 schema tree which is not dependent on the client i=
dentity.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Andy<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<blockquote style=3D"border:none;border-left:solid #CCCCCC 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-=
bottom:5.0pt">
<div>
<div>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&lt;image001.jpg&gt;</span><o:p></o:p=
></p>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif;color:#1F497D">Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif;color:#1F497D">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563C1">michel.veillette@trilliantinc.com</span></a></spa=
n><o:p></o:p></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><a href=3D"http://www.trilliantinc.co=
m/" target=3D"_blank"><span style=3D"font-size:9.0pt;font-family:&quot;Aria=
l&quot;,sans-serif;color:purple">www.trilliantinc.com</span></a></span><spa=
n class=3D"apple-converted-space"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif;color:#1F497D">&nbsp;</span></span><span sty=
le=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497=
D">&nbsp;<span class=3D"apple-converted-space">&nbsp;</span></span><o:p></o=
:p></p>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:</span></b><span class=3D"apple-converted-s=
pace"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-=
serif">&nbsp;</span></span><span style=3D"font-size:11.0pt;font-family:&quo=
t;Calibri&quot;,sans-serif">Alexander
 Pelov [mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" targe=
t=3D"_blank"><span style=3D"color:purple">alexander.pelov@telecom-bretagne.=
eu</span></a>]<span class=3D"apple-converted-space">&nbsp;</span><br>
<b>Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 juin 2015 =
12:03<br>
<b>To:</b><span class=3D"apple-converted-space">&nbsp;</span>Michel Veillet=
te<br>
<b>Cc:</b><span class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<=
span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mailto:6tisch@=
ietf.org" target=3D"_blank"><span style=3D"color:purple">6tisch@ietf.org</s=
pan></a>;<span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mail=
to:core@ietf.org" target=3D"_blank"><span style=3D"color:purple">core@ietf.=
org</span></a><br>
<b>Subject:</b><span class=3D"apple-converted-space">&nbsp;</span>Re: Reser=
ve space for aliases</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">Hi Michel,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal">Le 5 juin 2015 =E0 17:17, Michel Veillette &lt;<a hr=
ef=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank"><span sty=
le=3D"color:purple">Michel.Veillette@trilliantinc.com</span></a>&gt; a =E9c=
rit :<o:p></o:p></p>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Hi Alexander</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">In your presentation at 6TiSCH, you propose the fol=
lowing data node ID structure.</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" style=3D"border-collapse:collapse">
<tbody>
<tr>
<td width=3D"623" valign=3D"top" style=3D"width:467.5pt;border:solid window=
text 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<div style=3D"margin-left:.5in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=95</span><span style=3D"font-size:7.0pt">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif">32 bits YANG ID</span><o:p></o:p></p=
>
</div>
</div>
<div style=3D"margin-left:1.0in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=96</span><span style=3D"font-size:7.0pt">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:11.0pt;font-family=
:&quot;Calibri&quot;,sans-serif">20 bits for module ID (assigned by IETF)</=
span><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:1.0in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">=96</span><span style=3D"font-size:7.0pt">&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:11.0pt;font-family=
:&quot;Calibri&quot;,sans-serif">10 bits for data node ID (generated determ=
inistically)</span><o:p></o:p></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Based on this structure, we can reserve&nbsp;module=
 ID zero for aliases.</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">I was just summarizing what was discussed on the dis=
cussion in CoMI. Actually, it is 30 bits YANG ID, but that=92s for purposes=
 to be consistent with the YANG hash and I don=92t mind keeping it 30 bits.=
<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">&nbsp;<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">If we want to minimize both the network an node res=
ources require by this alias mechanism, we can map an entire module to this=
 space.</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">This can be implemented by a single integer resourc=
e (e.g. leaf alliassedModule { type uint32 } )</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">This approach require 4 bytes per CoMI server acces=
sed.</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">It is possible to map an entire module to the alias =
space and this is up to the operator. However, if you load two modules whic=
h redefine the same alias you will loose the benefit from it. Maybe it woul=
d be interesting to be able to specify
 that you want the aliases from THIS specific module to be used.<o:p></o:p>=
</p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">If the /mg/0 alias is reserved for managing the alia=
ses, this could be simply saying:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">POST /mg/0<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">{<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;&quot;source_uri&quot; : &quot;/mg/BAA&quot;<o=
:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">}<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">where /mg/BAA is the YANG id of the module (20 bits =
module ID &#43; 10 bits set to 0). This way, the server will know: OK, get =
the alias mapping from the YANG scheme of module with ID =3D B (as defined =
by the IETF).&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Or, you can dynamically configure the mapping:<o:p><=
/o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">POST /mg/0<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">{<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp; YANG_id : alias,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp; YANG_id : alias,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp; YANG_id : alias<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">}<o:p></o:p></p>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">&nbsp;<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">If we want a more complex but more flexible aliases=
 mechanism, your proposed map of (allias, YANG ID) seem the solution.</span=
><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">However, we have to consider that this structure ca=
n be as large as&nbsp;<u>1250 bytes per CoMI server accessed</u>&nbsp;if li=
mited to 256 aliases.</span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">This is assuming you need a separate mapping for eac=
h server. I would suppose that in a network you=92ll have a single alias ma=
pping (maybe two?) - after all, you=92re trying to optimize the management =
of your devices (servers). So, typically
 you=92d map all 6tisch devices with aliases 1-10 (channel, slot, etc.) and=
 use that on them, and on all other you=92d access the full ID.&nbsp;<o:p><=
/o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Best,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Alexander<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">&nbsp;<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&lt;image001.jpg&gt;</span><o:p></o:p></p>
</div>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif">Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563C1">michel.veillette@trilliantinc.com</span></a></spa=
n><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><a href=3D"http://www.trilliantinc.com/" target=3D"=
_blank"><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-s=
erif;color:purple">www.trilliantinc.com</span></a></span><o:p></o:p></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</blockquote>
</body>
</html>

--_000_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_--

--_005_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Sat, 13 Jun 2015 03:53:46 GMT";
	modification-date="Sat, 13 Jun 2015 03:53:46 GMT"
Content-ID: <image001.jpg@01D0A566.6E4E0B00>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_005_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_--

--_006_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: attachment; filename="image001.jpg"; size=2532;
	creation-date="Sat, 13 Jun 2015 10:16:54 GMT";
	modification-date="Sat, 13 Jun 2015 10:16:54 GMT"
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2JlAGTAAAAAAf/b
AIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxsc
Hx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f
Hx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAFgB5AwERAAIRAQMRAf/EAKQAAAMBAQEBAAAAAAAAAAAA
AAUGBwQDCAABAAMBAQEBAAAAAAAAAAAAAAMEBQIBAAYQAAEDAgMFAgYOCwAAAAAAAAIBAwQFBgAR
EiFBExQHMSJRYdEyQhVxUpIjM3OTszRUdFYXCKFicqKyU7Q1FjY4EQABAgQDBQYFBAMAAAAAAAAB
AgMAESEEMVESQWGRsRPwcYEiMhShwUJSBdEjMzRigrL/2gAMAwEAAhEDEQA/APR10XQxQ2GRFk5t
TmFwqfT2vhHj3/siPpFuxha5QneXgZApqWr0pG2AlvTajVKgh1CW9OktHk9Gpy8GnRC3g49qEpBp
vRCJEX0d+MpJJrCVq4txfnJURiE0QncT9R490a6bc+VxDBdMyhVNXUh8XJHI8uP9IiOZZ7u+C5+x
mOnHQusoMzefu6T6VzlPFKh6knmPhSUKt70rrSlXqdQolZYj0NtOLHjqoaxAG0UkyVktupF9LFi2
XbaQFJ83bfHrhFxqJSry9t0Idk3H1pvF2W1SK8IlDECeV9GgTJxVQcsmi9quH7hm2ZlqTj2zhK3d
uHZ6VYdsor9CuiNb9EiU69rggpcbaOLMUn20VUJ0ibXTkCp72op5qYkOslxRLSToiq28EJAcUNcA
rur9dfvGgnQbqp0SiS24xnDcebRyQhSDQibRWzUkMUQEyLtRcHYaSG1a0KKhPwpAX3VFxOlaQky8
awNol7XRI64y7eenkdGbOQIQ9DaCiAypD3kHVsVPDgjlsgWoWB5qc4G3cLNyUT8tYDdN78vevUK7
CmVwG5UOK0cKZKRpppgyI9RESBkmaJltRcGu7ZpCkSTQmsoDaXLi0rmqoEUGwLgkRrNcqV03BCn8
OSQlU2nQVgRXQgNqaC2mrUvg34QumgXNLaSKYQ/bOkNzWoGuMFfxKsD7wwPlw8uBezd+08IJ7tr7
hBn1xSPVq1TnWFpqDxFnI6HA0dmriZ6MvHngPTVq0yM8oL1Ey1TpnAb8SrA+8MD5cPLg3s3ftPCB
e7a+4QVC4KEdMcqrdQjOUxpFVyaDoEyKJ25mKqO/AukrVpkdWUF6qdOqYlEwtDrj6xu+p06tv06D
Q44vrBmoptq4oPiDSKZuEBam1Utgpik/+N0tgpCiqkx4RNY/IanCFSCdkVfn4P1lr3Y+XEvScop6
hnClVLflypc2py3eVemO8i3KUhFYdNbVUNWyVdhyCTzu1NaeDACnbEl61UpSlqOkqOmf2o3b1fOC
FvUmj0544avN860mlmAJ5DHYLPQLTa5LtFe+52kWea7k6kAQe1YbbOmY1DZ9o3DmraZwqT6NUI01
ZDqqTsaZT5TZHmpkrU5yEhkuea8SLw1NV7csDKTyiY6wtKpnEKQeCyj4plOKDXv7FUfsr3zZYba9
Q74+hc9J7oiP5Yvp1wfFRv4nMW/zOCfGI/4jFXhADp3a1JvDqZXIteRySyAy5SojhAROJJAEUiHv
dji78Hu3lMsJKKYD4QC1ZS68oK384JdTaRBo/VGzqZABW4cSPAbYBSUlQUnOr5xZquBWbhWwtRxJ
P/Igl2gIeQkYCXMxtt3/AKRnfGyv6dcZd/pjw5xtr+2fHlCn05/0i/vsDHzh4au/5W+8wra/xudw
hms2fbELoZNK42HJcB2pkARGTVs3XtLZgKGipl5ikviTC1wlZuhoodMMsKQLY66jVCtLkWK9TXjh
WNUGzcaJWJfOPkAqo91zzFFUTtw0kOhVXE8BCyi0RRs8TGm15j59E70iESqwxIgONCu4nZDaFl7P
DTGHkj3LZ3HlGmVH26xvHOHrpX0psOu2DTapVaasifK4/Ff48gPMkONjkIOCGwQTdhK9vnUOlKTQ
S2DKHLOyaW0FKFTPPOAPSihxCv68LNeJx2hKzLYcjqaippGmA02SqOnvIJLtTB75w9JDg9VPiIDZ
Njqrb+mvwMCem1jW5XOpNdodRYJynQQllHaFwwVFZlNtBmQqhLkJLgt3crQylQNTLlArS3Qt5STg
J849Heo6X/I/ePy4+d6iov8ATTAu4ofMyDWBPWDUG2FKRxGldhOMbe5KEk4aelkupCy8KYCoZQld
N6j5VaVyrSaSP8tnzifRX5ivgKw3xjCSow7DktcgXtljN1dlQQfBwzywAduxiEhSp+ky2aVDT/qH
Uy4GKJHNs4CN1pp1ogcje+ySjk6a8dFZ1cqmhB4uSdmX6cH2Vi+kgpk4CKpx0z9VPTvgnWRA6POA
zRsCjuoTioqoKKC5kqJmuzxYM36h3w256T3RIvy90ulwplbWDWY9VU246GLDUltQyJzJV5hprPPx
Z4rflVqUEzSU45fIxL/GISCqSgrDP5xx6O0qkxepNbfiVuPUJBx5SHEaalNmCLKaVSInmm210qiJ
3SXt8GO361FlIKSKjLI745YoSHlEKBoc8479VaXSpPVW3ZMmssQZLbcNG4TrUk3HEGY4oqJNNG2m
pV0pqJPHsxyyWoMKASSK1plHbxCS+klUsM84+oVLpQdepkwKyw7NVyQq0wWpKOoqsKiopk0jPdTb
sPHnVq9qBpMqVpnxjzaE+6J1VrSuXCFqxKJQmbRvVpm4oslp6GyLz4MTBFkUM8iNDZEiRf1EJcM3
Lii43NJFcx+sL2zaQ2vzDDf+kaG6Jai9FeUl3CyjHrdXIdSbjyya5ng/BE2rQu7W9fe05YyXHPcz
CfpwmMOMa6aPbyKvqxkcY6w7Z6lf461y13n6k5VODlGqGjleHsyzjatPD7PFjKnmddUeaeaceMdS
09oovyyyVhwjDbVEobfS68Y4XFFejvOQFemCxMRtnTIRRQxJkXC1rsTQK5b8EecV10HSfqpMZd8Y
abT0VjUNmefdFd6QRYsXp3SWIsxuewHMaJbQuAB5yXVXIXRbNNKrltHdiTfqJeUSJYchFSxADQAM
8ecJvTamUxjrDdMpirsS5TvP8WA21JFxrVNbItRuNA0uhe6uk18WzDd4tRt0ApIFK0yhS0QkXCyD
M1pXOFA7cI78rblnXYrc83ZByGWItRSQ2BPorjZKyw4JCLmlNSLkuzDnV/aT1EUptTLDeYV6X7qu
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_006_ED1C41B0E19446EF8BC29ED1863BCF63ciscocom_--


From nobody Sat Jun 13 08:55:41 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A96561A9218; Sat, 13 Jun 2015 08:55:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CNH_loRPm-jl; Sat, 13 Jun 2015 08:55:28 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0780.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:780]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 75A621A0016; Sat, 13 Jun 2015 08:55:27 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) with Microsoft SMTP Server (TLS) id 15.1.184.17; Sat, 13 Jun 2015 15:55:07 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0184.014; Sat, 13 Jun 2015 15:55:07 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAADv9XEAAEJffwAAJ0YMwAATNOsAAAQ/4UAADythAAALeUHQ
Date: Sat, 13 Jun 2015 15:55:06 +0000
Message-ID: <CO2PR0601MB792CD49E8BD282436F52EFCFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <E045AECD98228444A58C61C200AE1BD849E9998D@xmb-rcd-x01.cisco.com>, <CO2PR0601MB7925122DA741C05A1CBA63EFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com> <ED1C41B0-E194-46EF-8BC2-9ED1863BCF63@cisco.com>
In-Reply-To: <ED1C41B0-E194-46EF-8BC2-9ED1863BCF63@cisco.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: cisco.com; dkim=none (message not signed) header.d=none;
x-originating-ip: [24.225.215.88]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB792;
x-microsoft-antispam-prvs: <CO2PR0601MB7929E5189704456404FD417FEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB792; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB792; 
x-forefront-prvs: 0606BBEB39
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(51444003)(69224002)(377454003)(38414003)(24454002)(19580395003)(5002640100001)(99936001)(16236675004)(19580405001)(33656002)(561944003)(19617315012)(19625215002)(77156002)(86362001)(18206015028)(62966003)(99286002)(17760045003)(74316001)(122556002)(5001960100002)(87936001)(15395725005)(54356999)(5003600100002)(40100003)(76176999)(50986999)(19300405004)(189998001)(2656002)(46102003)(102836002)(2950100001)(81156007)(15975445007)(2900100001)(77096005)(5001920100001)(93886004)(19627595001)(76576001)(66066001)(92566002)(110136002)(7099028)(403724002)(559001)(569005); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB792; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB792CD49E8BD282436F52EFCFEBA0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2015 15:55:06.6322 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB792
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/RS3Pqz4XkUA3gmH5FZ0iaKpJDKs>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2015 15:55:39 -0000

--_004_CO2PR0601MB792CD49E8BD282436F52EFCFEBA0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB792CD49E8BD282436F52EFCFEBA0CO2PR0601MB792na_"

--_000_CO2PR0601MB792CD49E8BD282436F52EFCFEBA0CO2PR0601MB792na_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Pascal

If I understand correctly your proposal

=B7         the range 1 to 3 is used to alias a data nodes based on a mappi=
ng table containing (module name or ID, YANG ID, alias ID).
If this is the case, a single ID might be sufficient since it will allow al=
iasing of up to 1000 data nodes.

=B7         If I understand correctly, the range 4 to 60 is used to alias c=
omplete modules based on a mapping table containing (module name or ID, ali=
as ID).

Is it correct?


[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
Sent: 13 juin 2015 06:17
To: Michel Veillette
Cc: Alexander Pelov; Andy Bierman; 6tisch@ietf.org; core@ietf.org
Subject: Re: [6tisch] Reserve space for aliases

Hello Michel:

Got you! Thanks for all !

For the last point I was in fact suggesting that we could also alias module=
 IDs as opposed to leaves in the model. How many modules in one sensor? If =
that's less than 63 then they can all be aliased.
Concatenation of all ideas give:

0 for short forms
1...3 for aliasing full data node IDs long forms
4..60 for aliasing module IDs meaning that the short form must be provided
61...63 reserved for experimentation

Client and server would negotiate if the alias is take from server alias sp=
ace or client alias space depending on which is constrained, default being =
server.

This negotiation would work even if the module I'd is not yet allocated sin=
ce it could be negotiated by name into a reserved alias 61..63.

Makes sense?
Pascal

Le 12 juin 2015 =E0 23:53, Michel Veillette <Michel.Veillette@trilliantinc.=
com<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :
Hi Alexander

About "Yes, I suppose you should always start with aliases, but that doesn'=
t sound like a strong constraint to me"

If I take the following example:
GET example.com/mg?select<http://example.com/mg?select>(1, 2, 2049, 3)

Data node ID 1 and 2 can be associated with module ID 0 (aliases) but data =
node ID 2049 and 3 are associated with module ID 1.
I don't understand how aliases can be added at the end of this list without=
 been processed as short form.
Please confirm my understanding.

Hi Andy

About "The data is hierarchical and the parser is required to maintain the =
current module scope. It should be possible to omit the module identifier f=
or nested data, except for nodes that start a new module scope. Is this wha=
t you have in mind?"

Yes
I'm proposing to use the same model as JSON with a long form consisting of =
a 20 bits module ID/10 bits YANG ID and the short form consisting of a 10 b=
its YANG ID.

About "I am not convinced that aliases are worth all the effort because mos=
t (95%?) of the IDs in the payload will only need 10 bits."

Agree
In most cases, the message size compression will same just a couple of byte=
s.
As mentioned by Alexander, we can simply reserve a range for aliases (e.g. =
module ID 0) but defer the resolution to a different draft.

Hi Pascal

About "I understand that any sensor vendor will want to have its own module=
 IDs, correct?"

Correct, with 20 bits, we can allocate 1 000 000 module ID.
This can be done one by one or by small bundle of module IDs (e.g. 4, 8, 16=
 IDs).

About "I have missed the trick of 63 module IDs that are optimally encoded"

When using the long form (20 bits module ID, 10 bits YANG ID), data node ID=
 small enough to fit on 16 bits are encoded using CBOR in 3 bytes. Since th=
e YAND ID takes 10 bits, we have 6 bits left for the module ID (64 IDs minu=
s ID 0 reserved for the short form). Module ID greater than 63 require the =
use of the 5 bytes CBOR encoding.

About "If so: maybe we should alias the module IDs so that the 63 IDs that =
benefit from the optimal CBOR compression should be the aliases of any of t=
he thousands of IDs that will soon exist in the registries."

A possible solution is to reserve module ID 0, 1, 2 and 3 for aliases which=
 will leave 60 "more optimal" module IDs.
The specific use of the reserved module IDs can be addressed in one of mult=
iple subsequence drafts.
What is important for now is the establishment of a consensus around the co=
re concepts discussed:

?         registered 20 bits module ID

?         10 bits assigned YANG ID

?         long form / short form data node ID

?         select encoded in CBOR

<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
Sent: 12 juin 2015 21:11
To: Michel Veillette; Alexander Pelov
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: RE: [6tisch] Reserve space for aliases

Hello Michel:

I'm not so worried for 6TiSCH's ID than for the IDs used to collect data fr=
om sensors. Because that is the operation that will happen all the time an =
suck batteries.
I understand that any sensor vendor will want to have its own module IDs, c=
orrect? And soon enough that vendor will come with variants of his products=
, and will want more module IDs, is that right?

If I'm correct, this pleads for aliases; but maybe not as we thought them. =
I have missed the trick of 63 module IDs that are optimally encoded, but I =
trust you on that - I figure that it is because it takes 2 bits to encoded =
the coap option?

If so: maybe we should alias the module IDs so that the 63 IDs that benefit=
 from the optimal cbor compression should be the aliases of any of the thou=
sands of IDs that will soon exist in the registries.

Also note that device makers will want the vendor specific range that they =
use to play with before something is registered. Aliases could also be a wa=
y to play with module IDs that have not yet been registered to IANA.

I'm not sure the above makes sense since it is based on a partial understan=
ding of your work so far...

Pascal

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: vendredi 12 juin 2015 09:58
To: Alexander Pelov; Pascal Thubert (pthubert)
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: RE: [6tisch] Reserve space for aliases

Hi Alexander, hi Pascal

I want to emphases the following points


*         The use of the select query parameter encoded in CBOR support of =
63 modules with optimized message size instead of only 3 for the base64 URI=
.

If the 6TiSCH module ID is allocated within these 63 IDs, there will be no =
message size optimization provided by the aliases mechanism.

This make the introduction of aliases less urgent.



*         The message size of the select query parameter encoded in CBOR sh=
ould be equal or smaller compared to the base64 URI.

However, the select query parameter encoded in CBOR support a wider range o=
f values without size penalty (16 bits instead of 12, 32 bits instead of 30=
)

Furthermore, CoMI devices won't have to support two type of encoding depend=
ing if IDs are part of the command vs. payload.



For example:



Assuming module ID 2

Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)

Assuming "," separator to select multiple data nodes



Base64 approach:

REQ: GET example.com/mg/gB<http://example.com/mg/gB>         (3 bytes; 1 by=
te for the "/", 2 bytes for "gB")



CBOR approach:

REQ: GET example.com/mg?select<http://example.com/mg?select>(2049)         =
(4 bytes; one byte for the CoAP option, 3 for 2049 encoded using CBOR)



Base64 approach:

REQ: GET example.com/mg/gB,C,D,E<http://example.com/mg/gB,C,D,E>         (9=
 bytes; 1 byte for the "/", 8 bytes for "gB,C,D,E")


CBOR approach:

REQ: GET example.com/mg?select<http://example.com/mg?select>( [2049,2,3,4] =
)      (8 bytes; 1 byte for the CoAP option, 1 for the CBOR array, 3+1+1+1 =
bytes for the IDs)


<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
Sent: 11 juin 2015 17:06
To: Pascal Thubert (pthubert)
Cc: Andy Bierman; Michel Veillette; 6tisch@ietf.org<mailto:6tisch@ietf.org>=
; core@ietf.org<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases

Hi Pascal,

Le 10 juin 2015 =E0 15:25, Pascal Thubert (pthubert) <pthubert@cisco.com<ma=
ilto:pthubert@cisco.com>> a =E9crit :

Dear all:

This looks like the problem of local namespaces,  which is the reason why M=
PLS switches labels.
The user may access a limited set of resources from a number of servers, an=
d servers are read by many users.
You cannot ensure that you have a single alias space that satisfies them al=
l.

Great analogy! And yes, sadly you cannot satisfy them all, at least not wit=
h all devices.


So ,what if the user had its own set of aliases and the server also had its=
 own set of aliases?

The aliases could be mapped in a table like a uSAP and a pSAP are mapped ac=
ross layers. Broadly:
- First time a user requests a resource in a server, it comes with a tuple =
(userid, useralias, fullname)
- The server responds with (serverid, serveralias, userid, user alias).

Actually, I think that this could be worked out in CoMI also. Instead of fu=
llname you could provide the YANG id (module ID + data node ID) and do the =
mapping. User alias would be the special aliased YANG id. User ID, however,=
 could be a little bit more tricky - how do we ensure that it is consistent=
? Use the IP address of the client could be doable, but we'll have to inclu=
de the UDP port just in case someone runs two clients on the same machine.



After that,  if the server is a constrained device then the user talks to t=
he server with (serverid, serveralias) and the user maintains a switching t=
able for the resource it uses on various servers.
If the user is the constrained device and the server is not, the user could=
 talk with (userid, useralias) and the server maintains a switching table.

For large servers, the server may allocate aliases dynamically based on wha=
t it is being asked. We'd then need to talk about alias update or revocatio=
n, probably in terms of session and lifetime.

Does that look usable?

You are pointing out an interesting question. I would think (but maybe I'm =
mistaken), that the client should have the leading role in figuring out wha=
t's happening. The idea is the following:

The client checks if the server supports aliasing, with the possible option=
s:
S1) no aliasing
S2) static/server-defined aliasing
S3) dynamic/single alias mapping
  S3.1) mapping already defined
  S3.2) no mapping defined
S4) dynamic/per client alias mapping

Then, the client can take action, depending on its own capabilities and the=
 response of the server. E.g. a unconstrained client could obtain the alias=
 mapping if it is static (or if there is a single alias mapping in place) a=
nd cache it locally. So, there will be the following correspondence :

Given:
C1) constrained client
C2) unconstrained client

We have:
C1 + S1) no aliasing, nothing to do
C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise, i=
gnore
C1 + S3.2) and C1 + S4) define alias mapping

C2 + S1) no aliasing, nothing to do
C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise, l=
earn it
C2 + S3.2) and C2 + S4) define alias mapping

I would say that the analogy you made with MPLS corresponds quite a lot to =
the C2+S4 case. Personally, I would be most interested into having one clie=
nt configure one alias mapping to all servers in the network (e.g. the mana=
ging entity), which will profit most from saving several bytes on each mess=
age exchange. Everyone else could use the standard IDs, which we've already=
 managed to shrink significantly.

Indeed, with structured module ID + data node ID (20 bits + 10 bits), YANG =
URI compression, and long form/short form, we'll have quite a lot of gain. =
Reserving module ID =3D 1 for aliases and maybe writing a short draft on ho=
w the aliasing is implemented seems feasible, where we can cover the exact =
mechanism of alias definition, and client/server interaction.

Alexander


Pascal

From: 6tisch [mailto:6tisch-bounces@ietf.org] On Behalf Of Andy Bierman
Sent: vendredi 5 juin 2015 20:55
To: Michel Veillette
Cc: 6tisch@ietf.org<mailto:6tisch@ietf.org>; Alexander Pelov; core@ietf.org=
<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases



On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <Michel.Veillette@trillia=
ntinc.com<mailto:Michel.Veillette@trilliantinc.com>> wrote:
Hi Alexander

I have some concerns about allowing CoMI client(s) the control of the list =
of aliases.
This approach work fine for the first CoMI application (e.g. 6TiSCH) but wh=
at do we do with the subsequent CoMI application?

One possible solution is that each CoMI client send a list of (alias, data =
node ID) to the CoMI server. In this case, the CoMI client might receive an=
 error if one or multiple of these aliases are already reserved.

A second possible solution is that each CoMI client send a list of (data no=
de ID) and get a list of (alias, data node ID) from the CoMI server. In thi=
s case, CoMI clients will have to deal with a mix population of aliases.

The proposed solution need to scale to a multi-vendors, multiple applicatio=
ns environment.
With this is mind, do you have any alternative solutions to propose?



Does this approach allow each client to have a different set of aliases,
so the server has to maintain a configured mapping for each client?
This seems like a lot of overhead and NV-storage requirements
on the server.

Changing the schema identifiers based on which client is
sending the request seems like a complicated design change
from RESTCONF, NETCONF, or SNMP, where there is only
1 schema tree which is not dependent on the client identity.


Andy




<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu<mailto:al=
exander.pelov@telecom-bretagne.eu>]
Sent: 5 juin 2015 12:03
To: Michel Veillette
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: Re: Reserve space for aliases

Hi Michel,


Le 5 juin 2015 =E0 17:17, Michel Veillette <Michel.Veillette@trilliantinc.c=
om<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :

Hi Alexander

In your presentation at 6TiSCH, you propose the following data node ID stru=
cture.

*       32 bits YANG ID
-      20 bits for module ID (assigned by IETF)
-      10 bits for data node ID (generated deterministically)


Based on this structure, we can reserve module ID zero for aliases.


I was just summarizing what was discussed on the discussion in CoMI. Actual=
ly, it is 30 bits YANG ID, but that's for purposes to be consistent with th=
e YANG hash and I don't mind keeping it 30 bits.


If we want to minimize both the network an node resources require by this a=
lias mechanism, we can map an entire module to this space.
This can be implemented by a single integer resource (e.g. leaf alliassedMo=
dule { type uint32 } )
This approach require 4 bytes per CoMI server accessed.


It is possible to map an entire module to the alias space and this is up to=
 the operator. However, if you load two modules which redefine the same ali=
as you will loose the benefit from it. Maybe it would be interesting to be =
able to specify that you want the aliases from THIS specific module to be u=
sed.

If the /mg/0 alias is reserved for managing the aliases, this could be simp=
ly saying:
POST /mg/0
{
 "source_uri" : "/mg/BAA"
}

where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits set=
 to 0). This way, the server will know: OK, get the alias mapping from the =
YANG scheme of module with ID =3D B (as defined by the IETF).

Or, you can dynamically configure the mapping:
POST /mg/0
{
  YANG_id : alias,
  YANG_id : alias,
  YANG_id : alias
}

If we want a more complex but more flexible aliases mechanism, your propose=
d map of (allias, YANG ID) seem the solution.
However, we have to consider that this structure can be as large as 1250 by=
tes per CoMI server accessed if limited to 256 aliases.

This is assuming you need a separate mapping for each server. I would suppo=
se that in a network you'll have a single alias mapping (maybe two?) - afte=
r all, you're trying to optimize the management of your devices (servers). =
So, typically you'd map all 6tisch devices with aliases 1-10 (channel, slot=
, etc.) and use that on them, and on all other you'd access the full ID.

Best,
Alexander


<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



--_000_CO2PR0601MB792CD49E8BD282436F52EFCFEBA0CO2PR0601MB792na_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma",sans-serif;}
span.apple-converted-space
	{mso-style-name:apple-converted-space;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle22
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle23
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle24
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle25
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:580599099;
	mso-list-type:hybrid;
	mso-list-template-ids:1551659370 269025281 269025283 269025285 269025281 2=
69025283 269025285 269025281 269025283 269025285;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:?;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1
	{mso-list-id:908078815;
	mso-list-type:hybrid;
	mso-list-template-ids:-1017744320 269025281 269025283 269025285 269025281 =
269025283 269025285 269025281 269025283 269025285;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l1:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l1:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l1:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Pascal<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">If I under=
stand correctly your proposal<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l1 level=
1 lfo3"><![if !supportLists]><span style=3D"font-size:11.0pt;font-family:Sy=
mbol;color:#1F497D;mso-fareast-language:EN-US"><span style=3D"mso-list:Igno=
re">=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:11.0pt;font-family:=
&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">th=
e range 1 to 3 is used to alias a data nodes based on a mapping table conta=
ining (module name or ID, YANG ID, alias ID).<br>
If this is the case, a single ID might be sufficient since it will allow al=
iasing of up to 1000 data nodes.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l1 level=
1 lfo3"><![if !supportLists]><span style=3D"font-size:11.0pt;font-family:Sy=
mbol;color:#1F497D;mso-fareast-language:EN-US"><span style=3D"mso-list:Igno=
re">=B7<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:11.0pt;font-family:=
&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">If=
 I understand correctly, the range 4 to 60 is used to alias complete module=
s based on a mapping table containing (module
 name or ID, alias ID).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Is it corr=
ect?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><img width=3D"120" height=3D"22" id=
=3D"Picture_x0020_2" src=3D"cid:image001.jpg@01D0A5CF.C0FD8D80" alt=3D"cid:=
image001.jpg@01C868D8.BF0BB7E0"><o:p></o:p></span></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><a href=
=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</span></a></span><span=
 style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1=
F497D">
 &nbsp; </span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif;color:#1F497D"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
<br>
<b>Sent:</b> 13 juin 2015 06:17<br>
<b>To:</b> Michel Veillette<br>
<b>Cc:</b> Alexander Pelov; Andy Bierman; 6tisch@ietf.org; core@ietf.org<br=
>
<b>Subject:</b> Re: [6tisch] Reserve space for aliases<o:p></o:p></span></p=
>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal">Hello Michel:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Got you! Thanks for all !<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">For the last point I was in fact suggesting that we =
could also alias module IDs as opposed to leaves in the model. How many mod=
ules in one sensor? If that's less than 63 then they can all be aliased.<o:=
p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Concatenation of all ideas give:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">0 for short forms<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">1...3 for aliasing full data node IDs long forms<o:p=
></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">4..60 for aliasing module IDs meaning that the short=
 form must be provided<br>
61...63 reserved for experimentation&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Client and server would negotiate if the alias is ta=
ke from server alias space or client alias space depending on which is cons=
trained, default being server.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">This negotiation would work even if the module I'd i=
s not yet allocated since it could be negotiated by name into a reserved al=
ias 61..63.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Makes sense?<br>
Pascal<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
Le 12 juin 2015 =E0 23:53, Michel Veillette &lt;<a href=3D"mailto:Michel.Ve=
illette@trilliantinc.com">Michel.Veillette@trilliantinc.com</a>&gt; a =E9cr=
it&nbsp;:<o:p></o:p></p>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Alex=
ander</span></b><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About &#82=
20;Yes, I suppose you should always start with aliases, but that doesn&#821=
7;t sound like a strong constraint to me&#8221;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">If I take the following example:</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:1.0in"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareas=
t-language:EN-US">GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>(1, 2, 20=
49, 3)</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">Data node ID 1 and 2 can be associated with module ID 0 (a=
liases) but data node ID 2049 and 3 are associated
 with module ID 1.</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">I don&#8217;t understand how aliases can be added at the e=
nd of this list without been processed as short form.</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">Please confirm my understanding.</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Andy=
</span></b><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About &#82=
20;The data is hierarchical and the parser is required to maintain the curr=
ent module scope. It should be possible to omit the
 module identifier for nested data, except for nodes that start a new modul=
e scope. Is this what you have in mind?&#8221;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">Yes</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">I&#8217;m proposing to use the same model as JSON with a l=
ong form consisting of a 20 bits module ID/10 bits YANG
 ID and the short form consisting of a 10 bits YANG ID.</span><o:p></o:p></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About &#82=
20;I am not convinced that aliases are worth all the effort because most (9=
5%?) of the IDs in the payload will only need 10 bits.&#8221;</span><o:p></=
o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">Agree</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">In most cases, the message size compression will same just=
 a couple of bytes.</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">As mentioned by Alexander, we can simply reserve a range f=
or aliases (e.g. module ID 0) but defer the resolution
 to a different draft.</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Pasc=
al</span></b><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About &#82=
20;</span><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-family:&quot;=
Calibri&quot;,sans-serif;color:#1F497D">I understand that any sensor
 vendor will want to have its own module IDs, correct?&#8221;</span><o:p></=
o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:=
p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span lang=3D"EN-US" styl=
e=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F4=
97D">Correct, with 20 bits, we can allocate 1 000 000 module ID.</span><o:p=
></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span lang=3D"EN-US" styl=
e=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F4=
97D">This can be done one by one or by small bundle of module IDs (e.g. 4, =
8, 16 IDs).</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN=
-US">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About &#82=
20;I have missed the trick of 63 module IDs that are optimally encoded&#822=
1;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">When using the long form (20 bits module ID, 10 bits YANG =
ID), data node ID small enough to fit on 16 bits
 are encoded using CBOR in 3 bytes. Since the YAND ID takes 10 bits, we hav=
e 6 bits left for the module ID (64 IDs minus ID 0 reserved for the short f=
orm). Module ID greater than 63 require the use of the 5 bytes CBOR encodin=
g.</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">About &#82=
20;If so: maybe we should alias the module IDs so that the 63 IDs that bene=
fit from the optimal CBOR compression should be the
 aliases of any of the thousands of IDs that will soon exist in the registr=
ies.&#8221;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">A possible solution is to reserve module ID 0, 1, 2 and 3 =
for aliases which will leave 60 &#8220;more optimal&#8221; module
 IDs.</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">The specific use of the reserved module IDs can be address=
ed in one of multiple subsequence drafts.</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:.5in"><span style=3D"font-size:=
11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast=
-language:EN-US">What is important for now is the establishment of a consen=
sus around the core concepts discussed:</span><o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">?<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:11.0pt;font-family:=
&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">re=
gistered 20 bits module ID</span><o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">?<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:11.0pt;font-family:=
&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">10=
 bits assigned YANG ID</span><o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">?<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:11.0pt;font-family:=
&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">lo=
ng form / short form data node ID</span><o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level1 lfo2">
<![if !supportLists]><span style=3D"font-family:Symbol"><span style=3D"mso-=
list:Ignore">?<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:11.0pt;font-family:=
&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">se=
lect encoded in CBOR</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&lt;image001.jpg&gt;</span><o:p></o:p=
></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a></span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><a href=
=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</span></a></span><span=
 style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1=
F497D">
 &nbsp; </span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;</sp=
an><o:p></o:p></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Pascal Thubert (pthubert) [<a href=3D"mailto:pthubert@cisco.com">mailto:pth=
ubert@cisco.com</a>]
<br>
<b>Sent:</b> 12 juin 2015 21:11<br>
<b>To:</b> Michel Veillette; Alexander Pelov<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org">6tisch@ietf.org=
</a>; <a href=3D"mailto:core@ietf.org">
core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases</span><o:p></o:p></p=
>
</div>
</div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Hello Michel:</span><o=
:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:=
p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">I&#8217;m not so worri=
ed for 6TiSCH&#8217;s ID than for the IDs used to collect data from sensors=
. Because that is the operation that will happen all the time
 an suck batteries.</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">I understand that any =
sensor vendor will want to have its own module IDs, correct? And soon enoug=
h that vendor will come with variants of his products,
 and will want more module IDs, is that right?</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:=
p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">If I&#8217;m correct, =
this pleads for aliases; but maybe not as we thought them. I have missed th=
e trick of 63 module IDs that are optimally encoded, but
 I trust you on that &#8211; I figure that it is because it takes 2 bits to=
 encoded the coap option?</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:=
p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">If so: maybe we should=
 alias the module IDs so that the 63 IDs that benefit from the optimal cbor=
 compression should be the aliases of any of the
 thousands of IDs that will soon exist in the registries.</span><o:p></o:p>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:=
p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Also note that device =
makers will want the vendor specific range that they use to play with befor=
e something is registered. Aliases could also be
 a way to play with module IDs that have not yet been registered to IANA.</=
span><o:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:=
p></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">I&#8217;m not sure the=
 above makes sense since it is based on a partial understanding of your wor=
k so far&#8230;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:=
p></p>
<p class=3D"MsoNormal"><span lang=3D"FR" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D">Pascal</span><o:p></o:p><=
/p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:=
p></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,sans-serif">From:</span></b><span lang=3D"EN-U=
S" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,sans-serif"> Mi=
chel Veillette [<a href=3D"mailto:Michel.Veillette@trilliantinc.com">mailto=
:Michel.Veillette@trilliantinc.com</a>]
<br>
<b>Sent:</b> vendredi 12 juin 2015 09:58<br>
<b>To:</b> Alexander Pelov; Pascal Thubert (pthubert)<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org">6tisch@ietf.org=
</a>; <a href=3D"mailto:core@ietf.org">
core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases</span><o:p></o:p></p=
>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Hi Alexander, hi Pascal</span><o:p></=
o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">I want to emphases the following poin=
ts</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:11.0pt;font-family:Symbol;color:#1F497D">=B7</span><span style=3D"=
font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;
</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1F497D">The use of the select query parameter encoded in CBOR=
 support of 63 modules with optimized message size instead of only 3 for th=
e base64 URI.</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">If the 6TiSCH module ID is all=
ocated within these 63 IDs, there will be no message size optimization prov=
ided by the aliases mechanism.</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">This make the introduction of =
aliases less urgent.</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:11.0pt;font-family:Symbol;color:#1F497D">=B7</span><span style=3D"=
font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;
</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1F497D">The message size of the select query parameter encode=
d in CBOR should be equal or smaller compared to the base64 URI.</span><o:p=
></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">However, the select query para=
meter encoded in CBOR support a wider range of values without size penalty =
(16 bits instead of 12, 32 bits instead of 30)</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Furthermore, CoMI devices won&=
#8217;t have to support two type of encoding depending if IDs are part of t=
he command vs. payload.</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">For example:</span><o:p></o:p>=
</p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Assuming module ID 2</span><o:=
p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Assuming data node ID 1, 2, 3,=
 4 (long form 2049, 2050, 2051)</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Assuming &#8220;,&#8221; separ=
ator to select multiple data nodes</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Base64 approach:</span><o:p></=
o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">REQ: GET
<a href=3D"http://example.com/mg/gB">example.com/mg/gB</a>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3 bytes; 1 byte for the &#8220;/&#8221;, 2=
 bytes for &#8220;gB&#8221;)</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">CBOR approach:</span><o:p></o:=
p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">REQ: GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>(2049)&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (4 bytes; one byte for the Co=
AP option, 3 for 2049 encoded using CBOR)</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">Base64 approach:</span><o:p></=
o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">REQ: GET
<a href=3D"http://example.com/mg/gB,C,D,E">example.com/mg/gB,C,D,E</a>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (9 bytes; 1 byte for the &#8220=
;/&#8221;, 8 bytes for &#8220;gB,C,D,E&#8221;)</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">CBOR approach:</span><o:p></o:=
p></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:11.0pt;font-family:&=
quot;Calibri&quot;,sans-serif;color:#1F497D">REQ: GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>( [2049,2=
,3,4] )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8 bytes; 1 byte for the CoAP option,=
 1 for the CBOR array, 3&#43;1&#43;1&#43;1 bytes for the IDs)</span><o:p></=
o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&lt;image001.jpg&gt;</span><o:p></o:p=
></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a></span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><a href=
=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</span></a></span><span=
 style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1=
F497D">
 &nbsp; </span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Alexander Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu">mai=
lto:alexander.pelov@telecom-bretagne.eu</a>]
<br>
<b>Sent:</b> 11 juin 2015 17:06<br>
<b>To:</b> Pascal Thubert (pthubert)<br>
<b>Cc:</b> Andy Bierman; Michel Veillette; <a href=3D"mailto:6tisch@ietf.or=
g">6tisch@ietf.org</a>;
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<b>Subject:</b> Re: [6tisch] Reserve space for aliases</span><o:p></o:p></p=
>
</div>
</div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
<div>
<p class=3D"MsoNormal">Hi Pascal,<o:p></o:p></p>
</div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal">Le 10 juin 2015 =E0 15:25, Pascal Thubert (pthubert)=
 &lt;<a href=3D"mailto:pthubert@cisco.com">pthubert@cisco.com</a>&gt; a =E9=
crit :<o:p></o:p></p>
</div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Dear all:</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">This looks like the problem of local =
namespaces,&nbsp; which is the reason why MPLS switches labels.</span><o:p>=
</o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">The user may access a limited set of =
resources from a number of servers, and servers are read by many users.</sp=
an><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">You cannot ensure that you have a sin=
gle alias space that satisfies them all.</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Great analogy! And yes, sadly you cannot satisfy the=
m all, at least not with all devices.<o:p></o:p></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">&nbsp;<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">So ,what if the user had its own set =
of aliases and the server also had its own set of aliases?</span><o:p></o:p=
></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">The aliases could be mapped in a tabl=
e like a uSAP and a pSAP are mapped across layers. Broadly:</span><o:p></o:=
p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">- First time a user requests a resour=
ce in a server, it comes with a tuple (userid, useralias, fullname)</span><=
o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">- The server responds with (serverid,=
 serveralias, userid, user alias).</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Actually, I think that this could be worked out in C=
oMI also. Instead of fullname you could provide the YANG id (module ID &#43=
; data node ID) and do the mapping. User alias would be the special aliased=
 YANG id. User ID, however, could be a
 little bit more tricky - how do we ensure that it is consistent? Use the I=
P address of the client could be doable, but we&#8217;ll have to include th=
e UDP port just in case someone runs two clients on the same machine.<o:p><=
/o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">&nbsp;<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">After that,&nbsp; if the server is a =
constrained device then the user talks to the server with (serverid, server=
alias) and the user maintains a switching table for
 the resource it uses on various servers.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">If the user is the constrained device=
 and the server is not, the user could talk with (userid, useralias) and th=
e server maintains a switching table.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">For large servers, the server may all=
ocate aliases dynamically based on what it is being asked. We&#8217;d then =
need to talk about alias update or revocation, probably
 in terms of session and lifetime.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Does that look usable?</span><o:p></o=
:p></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">You are pointing out an interesting question. I woul=
d think (but maybe I&#8217;m mistaken), that the client should have the lea=
ding role in figuring out what&#8217;s happening. The idea is the following=
:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">The client checks if the server supports aliasing, w=
ith the possible options:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">S1) no aliasing<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">S2) static/server-defined aliasing<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">S3) dynamic/single alias mapping&nbsp;<o:p></o:p></p=
>
</div>
<div>
<p class=3D"MsoNormal">&nbsp; S3.1) mapping already defined<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp; S3.2) no mapping defined<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">S4) dynamic/per client alias mapping<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Then, the client can take action, depending on its o=
wn capabilities and the response of the server. E.g. a unconstrained client=
 could obtain the alias mapping if it is static (or if there is a single al=
ias mapping in place) and cache it
 locally. So, there will be the following correspondence :<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Given:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">C1) constrained client<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">C2) unconstrained client<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">We have:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">C1 &#43; S1) no aliasing, nothing to do<o:p></o:p></=
p>
</div>
<div>
<p class=3D"MsoNormal">C1 &#43; S2) and C1 &#43; S3.1) if the alias mapping=
 is known, use it. otherwise, ignore<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">C1 &#43; S3.2) and C1 &#43; S4) define alias mapping=
<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 &#43; S1) no aliasing, nothing to do<o:p></o:p></=
p>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 &#43; S2) and C2 &#43; S3.1) if the alias mapping=
 is known, use it. otherwise, learn it<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">C2 &#43; S3.2) and C2 &#43; S4) define alias mapping=
<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">I would say that the analogy you made with MPLS corr=
esponds quite a lot to the C2&#43;S4 case. Personally, I would be most inte=
rested into having one client configure one alias mapping to all servers in=
 the network (e.g. the managing entity),
 which will profit most from saving several bytes on each message exchange.=
 Everyone else could use the standard IDs, which we&#8217;ve already manage=
d to shrink significantly.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Indeed, with structured module ID &#43; data node ID=
 (20 bits &#43; 10 bits), YANG URI compression, and long form/short form, w=
e&#8217;ll have quite a lot of gain. Reserving module ID =3D 1 for aliases =
and maybe writing a short draft on how the aliasing
 is implemented seems feasible, where we can cover the exact mechanism of a=
lias definition, and client/server interaction.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Alexander<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Pascal</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,sans-serif">From:</span></b><span class=3D"apple-converted-sp=
ace"><span style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,sans-se=
rif">&nbsp;</span></span><span style=3D"font-size:10.0pt;font-family:&quot;=
Tahoma&quot;,sans-serif">6tisch
 [<a href=3D"mailto:6tisch-bounces@ietf.org">mailto:6tisch-bounces@ietf.org=
</a>]<span class=3D"apple-converted-space">&nbsp;</span><b>On Behalf Of<spa=
n class=3D"apple-converted-space">&nbsp;</span></b>Andy Bierman<br>
<b>Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>vendredi 5 j=
uin 2015 20:55<br>
<b>To:</b><span class=3D"apple-converted-space">&nbsp;</span>Michel Veillet=
te<br>
<b>Cc:</b><span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mai=
lto:6tisch@ietf.org">6tisch@ietf.org</a>; Alexander Pelov;
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<b>Subject:</b><span class=3D"apple-converted-space">&nbsp;</span>Re: [6tis=
ch] Reserve space for aliases</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette &l=
t;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank"><s=
pan style=3D"color:purple">Michel.Veillette@trilliantinc.com</span></a>&gt;=
 wrote:<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Hi Alexander</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">I have some concerns about allowing C=
oMI client(s) the control of the list of aliases.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">This approach work fine for the first=
 CoMI application (e.g. 6TiSCH) but what do we do with the subsequent CoMI =
application?</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">One possible solution is that each Co=
MI client send a list of (alias, data node ID) to the CoMI server. In this =
case, the CoMI client might receive an error if
 one or multiple of these aliases are already reserved.</span><o:p></o:p></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">A second possible solution is that ea=
ch CoMI client send a list of (data node ID) and get a list of (alias, data=
 node ID) from the CoMI server. In this case,
 CoMI clients will have to deal with a mix population of aliases.</span><o:=
p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">The proposed solution need to scale t=
o a multi-vendors, multiple applications environment.</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">With this is mind, do you have any al=
ternative solutions to propose?</span><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Does this approach allow each client to have a diffe=
rent set of aliases,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">so the server has to maintain a configured mapping f=
or each client?<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">This seems like a lot of overhead and NV-storage req=
uirements<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">on the server.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Changing the schema identifiers based on which clien=
t is<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">sending the request seems like a complicated design =
change<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">from RESTCONF, NETCONF, or SNMP, where there is only=
<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">1 schema tree which is not dependent on the client i=
dentity.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Andy<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<blockquote style=3D"border:none;border-left:solid #CCCCCC 1.0pt;padding:0i=
n 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-=
bottom:5.0pt">
<div>
<div>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&lt;image001.jpg&gt;</span><o:p></o:p=
></p>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif;color:#1F497D">Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif;color:#1F497D">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563C1">michel.veillette@trilliantinc.com</span></a></spa=
n><o:p></o:p></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><a href=3D"http://www.trilliantinc.co=
m/" target=3D"_blank"><span style=3D"font-size:9.0pt;font-family:&quot;Aria=
l&quot;,sans-serif;color:purple">www.trilliantinc.com</span></a></span><spa=
n class=3D"apple-converted-space"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif;color:#1F497D">&nbsp;</span></span><span sty=
le=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497=
D">&nbsp;<span class=3D"apple-converted-space">&nbsp;</span></span><o:p></o=
:p></p>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
</div>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<div>
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,sans-serif">From:</span></b><span class=3D"apple-converted-s=
pace"><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-=
serif">&nbsp;</span></span><span style=3D"font-size:11.0pt;font-family:&quo=
t;Calibri&quot;,sans-serif">Alexander
 Pelov [mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" targe=
t=3D"_blank"><span style=3D"color:purple">alexander.pelov@telecom-bretagne.=
eu</span></a>]<span class=3D"apple-converted-space">&nbsp;</span><br>
<b>Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 juin 2015 =
12:03<br>
<b>To:</b><span class=3D"apple-converted-space">&nbsp;</span>Michel Veillet=
te<br>
<b>Cc:</b><span class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<=
span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mailto:6tisch@=
ietf.org" target=3D"_blank"><span style=3D"color:purple">6tisch@ietf.org</s=
pan></a>;<span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mail=
to:core@ietf.org" target=3D"_blank"><span style=3D"color:purple">core@ietf.=
org</span></a><br>
<b>Subject:</b><span class=3D"apple-converted-space">&nbsp;</span>Re: Reser=
ve space for aliases</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">Hi Michel,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal">Le 5 juin 2015 =E0 17:17, Michel Veillette &lt;<a hr=
ef=3D"mailto:Michel.Veillette@trilliantinc.com" target=3D"_blank"><span sty=
le=3D"color:purple">Michel.Veillette@trilliantinc.com</span></a>&gt; a =E9c=
rit :<o:p></o:p></p>
</div>
</div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Hi Alexander</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">In your presentation at 6TiSCH, you propose the fol=
lowing data node ID structure.</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" style=3D"border-collapse:collapse">
<tbody>
<tr>
<td width=3D"623" valign=3D"top" style=3D"width:467.5pt;border:solid window=
text 1.0pt;padding:0in 5.4pt 0in 5.4pt">
<div style=3D"margin-left:.5in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">&#8226;</span><span style=3D"font-size:7.0pt">&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:11.0pt;f=
ont-family:&quot;Calibri&quot;,sans-serif">32 bits YANG ID</span><o:p></o:p=
></p>
</div>
</div>
<div style=3D"margin-left:1.0in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">&#8211;</span><span style=3D"font-size:7.0pt">&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:11.0pt;font-fa=
mily:&quot;Calibri&quot;,sans-serif">20 bits for module ID (assigned by IET=
F)</span><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:1.0in">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">&#8211;</span><span style=3D"font-size:7.0pt">&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:11.0pt;font-fa=
mily:&quot;Calibri&quot;,sans-serif">10 bits for data node ID (generated de=
terministically)</span><o:p></o:p></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">Based on this structure, we can reserve&nbsp;module=
 ID zero for aliases.</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">I was just summarizing what was discussed on the dis=
cussion in CoMI. Actually, it is 30 bits YANG ID, but that&#8217;s for purp=
oses to be consistent with the YANG hash and I don&#8217;t mind keeping it =
30 bits.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">&nbsp;<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">If we want to minimize both the network an node res=
ources require by this alias mechanism, we can map an entire module to this=
 space.</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">This can be implemented by a single integer resourc=
e (e.g. leaf alliassedModule { type uint32 } )</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">This approach require 4 bytes per CoMI server acces=
sed.</span><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">It is possible to map an entire module to the alias =
space and this is up to the operator. However, if you load two modules whic=
h redefine the same alias you will loose the benefit from it. Maybe it woul=
d be interesting to be able to specify
 that you want the aliases from THIS specific module to be used.<o:p></o:p>=
</p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">If the /mg/0 alias is reserved for managing the alia=
ses, this could be simply saying:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">POST /mg/0<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">{<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;&quot;source_uri&quot; : &quot;/mg/BAA&quot;<o=
:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">}<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">where /mg/BAA is the YANG id of the module (20 bits =
module ID &#43; 10 bits set to 0). This way, the server will know: OK, get =
the alias mapping from the YANG scheme of module with ID =3D B (as defined =
by the IETF).&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Or, you can dynamically configure the mapping:<o:p><=
/o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">POST /mg/0<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">{<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp; YANG_id : alias,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp; YANG_id : alias,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp; YANG_id : alias<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">}<o:p></o:p></p>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">&nbsp;<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">If we want a more complex but more flexible aliases=
 mechanism, your proposed map of (allias, YANG ID) seem the solution.</span=
><o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">However, we have to consider that this structure ca=
n be as large as&nbsp;<u>1250 bytes per CoMI server accessed</u>&nbsp;if li=
mited to 256 aliases.</span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">This is assuming you need a separate mapping for eac=
h server. I would suppose that in a network you&#8217;ll have a single alia=
s mapping (maybe two?) - after all, you&#8217;re trying to optimize the man=
agement of your devices (servers). So, typically
 you&#8217;d map all 6tisch devices with aliases 1-10 (channel, slot, etc.)=
 and use that on them, and on all other you&#8217;d access the full ID.&nbs=
p;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Best,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">Alexander<o:p></o:p></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt">&nbsp;<o:p></o:p></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&nbsp;</span><o:p></o:p></p>
</div>
</div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif">&lt;image001.jpg&gt;</span><o:p></o:p></p>
</div>
</div>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif">Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,sans-serif">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563C1">michel.veillette@trilliantinc.com</span></a></spa=
n><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif"><a href=3D"http://www.trilliantinc.com/" target=3D"=
_blank"><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-s=
erif;color:purple">www.trilliantinc.com</span></a></span><o:p></o:p></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
</body>
</html>

--_000_CO2PR0601MB792CD49E8BD282436F52EFCFEBA0CO2PR0601MB792na_--

--_004_CO2PR0601MB792CD49E8BD282436F52EFCFEBA0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Sat, 13 Jun 2015 15:55:05 GMT";
	modification-date="Sat, 13 Jun 2015 15:55:05 GMT"
Content-ID: <image001.jpg@01D0A5CF.C0FD8D80>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB792CD49E8BD282436F52EFCFEBA0CO2PR0601MB792na_--


From nobody Sat Jun 13 11:31:01 2015
Return-Path: <pthubert@cisco.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 319F71ACD91; Sat, 13 Jun 2015 11:31:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level: 
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lc4f5TBPVyGv; Sat, 13 Jun 2015 11:30:48 -0700 (PDT)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 625561ACD90; Sat, 13 Jun 2015 11:30:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=108079; q=dns/txt; s=iport; t=1434220248; x=1435429848; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=DTte5+wMu8xNbCD7ULT7Ef/Uh9ObM/3AUkvDzAfAduc=; b=PootOpUGihUAp4tZIyEHsbPO4EIgQQ12pBsppQ5IU2j+BEyYHC45DBTc hXNx7QoLJO4y3EJlIGHebYB38jExWzokZ5+iVjZYHKhsE6DzoeuSU0d1A XwBXlsv+BMJ3qJU8uUEDg1OchrfDXTwHk5vYVrHnCG+SOpihCIub8V96o Q=;
X-Files: image001.jpg : 2532
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CSCADPdXxV/4ENJK1TBgECgkVLVF8GvRA8M4Fdf4R/AoEjOhIBAQEBAQEBgQqEIgEBAQQFFQEKCAEbIwoDEAIBCAcKAQMBAQYBAQECCAQKAQYHAgUQAQwCDBQDBggCBA4EAQYCBg0EiBDJQQEBAQEBAQEBAQEBAQEBAQEBAQEBAReKQoEChB0NAw4CGAYHCQsNAwYBBAIDCAELAYJ5gRYFi3s2hFaCVAGDbAFiJIZPgTJBg0MHgn6HWIQhg1sRFYIIAgEcgVJvgQMBCBcjgQEBAQE
X-IronPort-AV: E=Sophos;i="5.13,608,1427760000";  d="jpg'145?scan'145,208,217,145";a="1362916"
Received: from alln-core-9.cisco.com ([173.36.13.129]) by rcdn-iport-8.cisco.com with ESMTP; 13 Jun 2015 18:30:44 +0000
Received: from xhc-aln-x11.cisco.com (xhc-aln-x11.cisco.com [173.36.12.85]) by alln-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id t5DIUiPe002721 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Sat, 13 Jun 2015 18:30:44 GMT
Received: from xmb-rcd-x01.cisco.com ([169.254.1.61]) by xhc-aln-x11.cisco.com ([173.36.12.85]) with mapi id 14.03.0195.001; Sat, 13 Jun 2015 13:30:44 -0500
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60ImdraRcLEk2RLo1BOAuHsAABye4AAAUaOoAAAO2JAADv9XEAAEJffwAAJ0YMwAATNOsAAAQ/4UAADyt6rwAWSdsAAAVWaaA=
Date: Sat, 13 Jun 2015 18:30:43 +0000
Deferred-Delivery: Sat, 13 Jun 2015 18:30:00 +0000
Message-ID: <E045AECD98228444A58C61C200AE1BD849E99F50@xmb-rcd-x01.cisco.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <E045AECD98228444A58C61C200AE1BD849E9998D@xmb-rcd-x01.cisco.com>, <CO2PR0601MB7925122DA741C05A1CBA63EFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com> <ED1C41B0-E194-46EF-8BC2-9ED1863BCF63@cisco.com> <CO2PR0601MB792CD49E8BD282436F52EFCFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
In-Reply-To: <CO2PR0601MB792CD49E8BD282436F52EFCFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
Accept-Language: fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.82.245.46]
Content-Type: multipart/related; boundary="_004_E045AECD98228444A58C61C200AE1BD849E99F50xmbrcdx01ciscoc_"; type="multipart/alternative"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/3HrgvKCtSBJsgSFGPZme6gdhQDg>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2015 18:31:00 -0000

--_004_E045AECD98228444A58C61C200AE1BD849E99F50xmbrcdx01ciscoc_
Content-Type: multipart/alternative;
	boundary="_000_E045AECD98228444A58C61C200AE1BD849E99F50xmbrcdx01ciscoc_"

--_000_E045AECD98228444A58C61C200AE1BD849E99F50xmbrcdx01ciscoc_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Yes!

With the intent that the alias may be in fact that of the peer.
For instance if the server is a constrained node, the (fat) client would ha=
ve an additional index to that table that is the deviceID or the groupID of=
 the server.
The server would indicate in the handshake that it is not capable to handle=
 someone else's aliases. It could indicate its aliases in the first respons=
es and from then on the client would use the server's aliases.

Cheers,

Pascal

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: samedi 13 juin 2015 08:55
To: Pascal Thubert (pthubert)
Cc: Alexander Pelov; Andy Bierman; 6tisch@ietf.org; core@ietf.org
Subject: RE: [6tisch] Reserve space for aliases

Hi Pascal

If I understand correctly your proposal

*         the range 1 to 3 is used to alias a data nodes based on a mapping=
 table containing (module name or ID, YANG ID, alias ID).
If this is the case, a single ID might be sufficient since it will allow al=
iasing of up to 1000 data nodes.

*         If I understand correctly, the range 4 to 60 is used to alias com=
plete modules based on a mapping table containing (module name or ID, alias=
 ID).

Is it correct?


[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
Sent: 13 juin 2015 06:17
To: Michel Veillette
Cc: Alexander Pelov; Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>;=
 core@ietf.org<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases

Hello Michel:

Got you! Thanks for all !

For the last point I was in fact suggesting that we could also alias module=
 IDs as opposed to leaves in the model. How many modules in one sensor? If =
that's less than 63 then they can all be aliased.
Concatenation of all ideas give:

0 for short forms
1...3 for aliasing full data node IDs long forms
4..60 for aliasing module IDs meaning that the short form must be provided
61...63 reserved for experimentation

Client and server would negotiate if the alias is take from server alias sp=
ace or client alias space depending on which is constrained, default being =
server.

This negotiation would work even if the module I'd is not yet allocated sin=
ce it could be negotiated by name into a reserved alias 61..63.

Makes sense?
Pascal

Le 12 juin 2015 =E0 23:53, Michel Veillette <Michel.Veillette@trilliantinc.=
com<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :
Hi Alexander

About "Yes, I suppose you should always start with aliases, but that doesn'=
t sound like a strong constraint to me"

If I take the following example:
GET example.com/mg?select<http://example.com/mg?select>(1, 2, 2049, 3)

Data node ID 1 and 2 can be associated with module ID 0 (aliases) but data =
node ID 2049 and 3 are associated with module ID 1.
I don't understand how aliases can be added at the end of this list without=
 been processed as short form.
Please confirm my understanding.

Hi Andy

About "The data is hierarchical and the parser is required to maintain the =
current module scope. It should be possible to omit the module identifier f=
or nested data, except for nodes that start a new module scope. Is this wha=
t you have in mind?"

Yes
I'm proposing to use the same model as JSON with a long form consisting of =
a 20 bits module ID/10 bits YANG ID and the short form consisting of a 10 b=
its YANG ID.

About "I am not convinced that aliases are worth all the effort because mos=
t (95%?) of the IDs in the payload will only need 10 bits."

Agree
In most cases, the message size compression will same just a couple of byte=
s.
As mentioned by Alexander, we can simply reserve a range for aliases (e.g. =
module ID 0) but defer the resolution to a different draft.

Hi Pascal

About "I understand that any sensor vendor will want to have its own module=
 IDs, correct?"

Correct, with 20 bits, we can allocate 1 000 000 module ID.
This can be done one by one or by small bundle of module IDs (e.g. 4, 8, 16=
 IDs).

About "I have missed the trick of 63 module IDs that are optimally encoded"

When using the long form (20 bits module ID, 10 bits YANG ID), data node ID=
 small enough to fit on 16 bits are encoded using CBOR in 3 bytes. Since th=
e YAND ID takes 10 bits, we have 6 bits left for the module ID (64 IDs minu=
s ID 0 reserved for the short form). Module ID greater than 63 require the =
use of the 5 bytes CBOR encoding.

About "If so: maybe we should alias the module IDs so that the 63 IDs that =
benefit from the optimal CBOR compression should be the aliases of any of t=
he thousands of IDs that will soon exist in the registries."

A possible solution is to reserve module ID 0, 1, 2 and 3 for aliases which=
 will leave 60 "more optimal" module IDs.
The specific use of the reserved module IDs can be addressed in one of mult=
iple subsequence drafts.
What is important for now is the establishment of a consensus around the co=
re concepts discussed:

*         registered 20 bits module ID

*         10 bits assigned YANG ID

*         long form / short form data node ID

*         select encoded in CBOR

<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
Sent: 12 juin 2015 21:11
To: Michel Veillette; Alexander Pelov
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: RE: [6tisch] Reserve space for aliases

Hello Michel:

I'm not so worried for 6TiSCH's ID than for the IDs used to collect data fr=
om sensors. Because that is the operation that will happen all the time an =
suck batteries.
I understand that any sensor vendor will want to have its own module IDs, c=
orrect? And soon enough that vendor will come with variants of his products=
, and will want more module IDs, is that right?

If I'm correct, this pleads for aliases; but maybe not as we thought them. =
I have missed the trick of 63 module IDs that are optimally encoded, but I =
trust you on that - I figure that it is because it takes 2 bits to encoded =
the coap option?

If so: maybe we should alias the module IDs so that the 63 IDs that benefit=
 from the optimal cbor compression should be the aliases of any of the thou=
sands of IDs that will soon exist in the registries.

Also note that device makers will want the vendor specific range that they =
use to play with before something is registered. Aliases could also be a wa=
y to play with module IDs that have not yet been registered to IANA.

I'm not sure the above makes sense since it is based on a partial understan=
ding of your work so far...

Pascal

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: vendredi 12 juin 2015 09:58
To: Alexander Pelov; Pascal Thubert (pthubert)
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: RE: [6tisch] Reserve space for aliases

Hi Alexander, hi Pascal

I want to emphases the following points


*         The use of the select query parameter encoded in CBOR support of =
63 modules with optimized message size instead of only 3 for the base64 URI=
.

If the 6TiSCH module ID is allocated within these 63 IDs, there will be no =
message size optimization provided by the aliases mechanism.

This make the introduction of aliases less urgent.



*         The message size of the select query parameter encoded in CBOR sh=
ould be equal or smaller compared to the base64 URI.

However, the select query parameter encoded in CBOR support a wider range o=
f values without size penalty (16 bits instead of 12, 32 bits instead of 30=
)

Furthermore, CoMI devices won't have to support two type of encoding depend=
ing if IDs are part of the command vs. payload.



For example:



Assuming module ID 2

Assuming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)

Assuming "," separator to select multiple data nodes



Base64 approach:

REQ: GET example.com/mg/gB<http://example.com/mg/gB>         (3 bytes; 1 by=
te for the "/", 2 bytes for "gB")



CBOR approach:

REQ: GET example.com/mg?select<http://example.com/mg?select>(2049)         =
(4 bytes; one byte for the CoAP option, 3 for 2049 encoded using CBOR)



Base64 approach:

REQ: GET example.com/mg/gB,C,D,E<http://example.com/mg/gB,C,D,E>         (9=
 bytes; 1 byte for the "/", 8 bytes for "gB,C,D,E")


CBOR approach:

REQ: GET example.com/mg?select<http://example.com/mg?select>( [2049,2,3,4] =
)      (8 bytes; 1 byte for the CoAP option, 1 for the CBOR array, 3+1+1+1 =
bytes for the IDs)


<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu]
Sent: 11 juin 2015 17:06
To: Pascal Thubert (pthubert)
Cc: Andy Bierman; Michel Veillette; 6tisch@ietf.org<mailto:6tisch@ietf.org>=
; core@ietf.org<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases

Hi Pascal,

Le 10 juin 2015 =E0 15:25, Pascal Thubert (pthubert) <pthubert@cisco.com<ma=
ilto:pthubert@cisco.com>> a =E9crit :

Dear all:

This looks like the problem of local namespaces,  which is the reason why M=
PLS switches labels.
The user may access a limited set of resources from a number of servers, an=
d servers are read by many users.
You cannot ensure that you have a single alias space that satisfies them al=
l.

Great analogy! And yes, sadly you cannot satisfy them all, at least not wit=
h all devices.


So ,what if the user had its own set of aliases and the server also had its=
 own set of aliases?

The aliases could be mapped in a table like a uSAP and a pSAP are mapped ac=
ross layers. Broadly:
- First time a user requests a resource in a server, it comes with a tuple =
(userid, useralias, fullname)
- The server responds with (serverid, serveralias, userid, user alias).

Actually, I think that this could be worked out in CoMI also. Instead of fu=
llname you could provide the YANG id (module ID + data node ID) and do the =
mapping. User alias would be the special aliased YANG id. User ID, however,=
 could be a little bit more tricky - how do we ensure that it is consistent=
? Use the IP address of the client could be doable, but we'll have to inclu=
de the UDP port just in case someone runs two clients on the same machine.



After that,  if the server is a constrained device then the user talks to t=
he server with (serverid, serveralias) and the user maintains a switching t=
able for the resource it uses on various servers.
If the user is the constrained device and the server is not, the user could=
 talk with (userid, useralias) and the server maintains a switching table.

For large servers, the server may allocate aliases dynamically based on wha=
t it is being asked. We'd then need to talk about alias update or revocatio=
n, probably in terms of session and lifetime.

Does that look usable?

You are pointing out an interesting question. I would think (but maybe I'm =
mistaken), that the client should have the leading role in figuring out wha=
t's happening. The idea is the following:

The client checks if the server supports aliasing, with the possible option=
s:
S1) no aliasing
S2) static/server-defined aliasing
S3) dynamic/single alias mapping
  S3.1) mapping already defined
  S3.2) no mapping defined
S4) dynamic/per client alias mapping

Then, the client can take action, depending on its own capabilities and the=
 response of the server. E.g. a unconstrained client could obtain the alias=
 mapping if it is static (or if there is a single alias mapping in place) a=
nd cache it locally. So, there will be the following correspondence :

Given:
C1) constrained client
C2) unconstrained client

We have:
C1 + S1) no aliasing, nothing to do
C1 + S2) and C1 + S3.1) if the alias mapping is known, use it. otherwise, i=
gnore
C1 + S3.2) and C1 + S4) define alias mapping

C2 + S1) no aliasing, nothing to do
C2 + S2) and C2 + S3.1) if the alias mapping is known, use it. otherwise, l=
earn it
C2 + S3.2) and C2 + S4) define alias mapping

I would say that the analogy you made with MPLS corresponds quite a lot to =
the C2+S4 case. Personally, I would be most interested into having one clie=
nt configure one alias mapping to all servers in the network (e.g. the mana=
ging entity), which will profit most from saving several bytes on each mess=
age exchange. Everyone else could use the standard IDs, which we've already=
 managed to shrink significantly.

Indeed, with structured module ID + data node ID (20 bits + 10 bits), YANG =
URI compression, and long form/short form, we'll have quite a lot of gain. =
Reserving module ID =3D 1 for aliases and maybe writing a short draft on ho=
w the aliasing is implemented seems feasible, where we can cover the exact =
mechanism of alias definition, and client/server interaction.

Alexander


Pascal

From: 6tisch [mailto:6tisch-bounces@ietf.org] On Behalf Of Andy Bierman
Sent: vendredi 5 juin 2015 20:55
To: Michel Veillette
Cc: 6tisch@ietf.org<mailto:6tisch@ietf.org>; Alexander Pelov; core@ietf.org=
<mailto:core@ietf.org>
Subject: Re: [6tisch] Reserve space for aliases



On Fri, Jun 5, 2015 at 11:41 AM, Michel Veillette <Michel.Veillette@trillia=
ntinc.com<mailto:Michel.Veillette@trilliantinc.com>> wrote:
Hi Alexander

I have some concerns about allowing CoMI client(s) the control of the list =
of aliases.
This approach work fine for the first CoMI application (e.g. 6TiSCH) but wh=
at do we do with the subsequent CoMI application?

One possible solution is that each CoMI client send a list of (alias, data =
node ID) to the CoMI server. In this case, the CoMI client might receive an=
 error if one or multiple of these aliases are already reserved.

A second possible solution is that each CoMI client send a list of (data no=
de ID) and get a list of (alias, data node ID) from the CoMI server. In thi=
s case, CoMI clients will have to deal with a mix population of aliases.

The proposed solution need to scale to a multi-vendors, multiple applicatio=
ns environment.
With this is mind, do you have any alternative solutions to propose?



Does this approach allow each client to have a different set of aliases,
so the server has to maintain a configured mapping for each client?
This seems like a lot of overhead and NV-storage requirements
on the server.

Changing the schema identifiers based on which client is
sending the request seems like a complicated design change
from RESTCONF, NETCONF, or SNMP, where there is only
1 schema tree which is not dependent on the client identity.


Andy




<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Alexander Pelov [mailto:alexander.pelov@telecom-bretagne.eu<mailto:al=
exander.pelov@telecom-bretagne.eu>]
Sent: 5 juin 2015 12:03
To: Michel Veillette
Cc: Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>; core@ietf.org<ma=
ilto:core@ietf.org>
Subject: Re: Reserve space for aliases

Hi Michel,


Le 5 juin 2015 =E0 17:17, Michel Veillette <Michel.Veillette@trilliantinc.c=
om<mailto:Michel.Veillette@trilliantinc.com>> a =E9crit :

Hi Alexander

In your presentation at 6TiSCH, you propose the following data node ID stru=
cture.

*       32 bits YANG ID
-      20 bits for module ID (assigned by IETF)
-      10 bits for data node ID (generated deterministically)


Based on this structure, we can reserve module ID zero for aliases.


I was just summarizing what was discussed on the discussion in CoMI. Actual=
ly, it is 30 bits YANG ID, but that's for purposes to be consistent with th=
e YANG hash and I don't mind keeping it 30 bits.


If we want to minimize both the network an node resources require by this a=
lias mechanism, we can map an entire module to this space.
This can be implemented by a single integer resource (e.g. leaf alliassedMo=
dule { type uint32 } )
This approach require 4 bytes per CoMI server accessed.


It is possible to map an entire module to the alias space and this is up to=
 the operator. However, if you load two modules which redefine the same ali=
as you will loose the benefit from it. Maybe it would be interesting to be =
able to specify that you want the aliases from THIS specific module to be u=
sed.

If the /mg/0 alias is reserved for managing the aliases, this could be simp=
ly saying:
POST /mg/0
{
 "source_uri" : "/mg/BAA"
}

where /mg/BAA is the YANG id of the module (20 bits module ID + 10 bits set=
 to 0). This way, the server will know: OK, get the alias mapping from the =
YANG scheme of module with ID =3D B (as defined by the IETF).

Or, you can dynamically configure the mapping:
POST /mg/0
{
  YANG_id : alias,
  YANG_id : alias,
  YANG_id : alias
}

If we want a more complex but more flexible aliases mechanism, your propose=
d map of (allias, YANG ID) seem the solution.
However, we have to consider that this structure can be as large as 1250 by=
tes per CoMI server accessed if limited to 256 aliases.

This is assuming you need a separate mapping for each server. I would suppo=
se that in a network you'll have a single alias mapping (maybe two?) - afte=
r all, you're trying to optimize the management of your devices (servers). =
So, typically you'd map all 6tisch devices with aliases 1-10 (channel, slot=
, etc.) and use that on them, and on all other you'd access the full ID.

Best,
Alexander


<image001.jpg>

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



--_000_E045AECD98228444A58C61C200AE1BD849E99F50xmbrcdx01ciscoc_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.apple-converted-space
	{mso-style-name:apple-converted-space;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle22
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle23
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle24
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.EmailStyle25
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle26
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Yes!<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">With the intent that the =
alias may be in fact that of the peer.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">For instance if the serve=
r is a constrained node, the (fat) client would have an additional index to=
 that table that is the deviceID or the groupID of the server.<o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">The server would indicate=
 in the handshake that it is not capable to handle someone else&#8217;s ali=
ases. It could indicate its aliases in the first responses and
 from then on the client would use the server&#8217;s aliases.<o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Cheers,<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Pascal<o:p></o:p></span><=
/p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Michel V=
eillette [mailto:Michel.Veillette@trilliantinc.com]
<br>
<b>Sent:</b> samedi 13 juin 2015 08:55<br>
<b>To:</b> Pascal Thubert (pthubert)<br>
<b>Cc:</b> Alexander Pelov; Andy Bierman; 6tisch@ietf.org; core@ietf.org<br=
>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases<o:p></o:p></span></p=
>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi Pascal<=
/span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">If I under=
stand correctly your proposal</span><span lang=3D"EN-CA"><o:p></o:p></span>=
</p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-18.0pt"><span lang=3D"E=
N-CA" style=3D"font-size:11.0pt;font-family:Symbol;color:#1F497D">=B7</span=
><span lang=3D"EN-CA" style=3D"font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cal=
ibri&quot;,&quot;sans-serif&quot;;color:#1F497D">the range 1 to 3 is used t=
o alias a data nodes based on a mapping table containing (module name or ID=
, YANG ID, alias ID).<br>
If this is the case, a single ID might be sufficient since it will allow al=
iasing of up to 1000 data nodes.</span><span lang=3D"EN-CA"><o:p></o:p></sp=
an></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-18.0pt"><span lang=3D"E=
N-CA" style=3D"font-size:11.0pt;font-family:Symbol;color:#1F497D">=B7</span=
><span lang=3D"EN-CA" style=3D"font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cal=
ibri&quot;,&quot;sans-serif&quot;;color:#1F497D">If I understand correctly,=
 the range 4 to 60 is used to alias complete modules based on a mapping tab=
le containing (module name or ID, alias ID).</span><span lang=3D"EN-CA"><o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Is it corr=
ect?</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"896" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"172" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><img width=3D"120" height=
=3D"22" id=3D"Picture_x0020_2" src=3D"cid:image001.jpg@01D0A5CB.A2EF72D0" a=
lt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"></span><o:p></o:p></p>
</td>
<td width=3D"724" valign=3D"top" style=3D"width:434.65pt;padding:0cm 5.4pt =
0cm 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D">=
Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D">=
Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a></span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497=
D"><a href=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;=
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">www.trilliantinc.com<=
/span></a></span><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quo=
t;,&quot;sans-serif&quot;;color:#1F497D">
 &nbsp; </span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-=
size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"> Pascal=
 Thubert (pthubert) [<a href=3D"mailto:pthubert@cisco.com">mailto:pthubert@=
cisco.com</a>]
<br>
<b>Sent:</b> 13 juin 2015 06:17<br>
<b>To:</b> Michel Veillette<br>
<b>Cc:</b> Alexander Pelov; Andy Bierman; <a href=3D"mailto:6tisch@ietf.org=
">6tisch@ietf.org</a>;
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<b>Subject:</b> Re: [6tisch] Reserve space for aliases</span><span lang=3D"=
EN-CA"><o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Hello Michel:<o:p></o:p></span>=
</p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Got you! Thanks for all !<o:p><=
/o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">For the last point I was in fac=
t suggesting that we could also alias module IDs as opposed to leaves in th=
e model. How many modules in one sensor? If that's less than 63 then they c=
an all be aliased.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Concatenation of all ideas give=
:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">0 for short forms<o:p></o:p></s=
pan></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">1...3 for aliasing full data no=
de IDs long forms<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">4..60 for aliasing module IDs m=
eaning that the short form must be provided<br>
61...63 reserved for experimentation&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Client and server would negotia=
te if the alias is take from server alias space or client alias space depen=
ding on which is constrained, default being server.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">This negotiation would work eve=
n if the module I'd is not yet allocated since it could be negotiated by na=
me into a reserved alias 61..63.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Makes sense?<br>
Pascal<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-CA">=
<br>
Le 12 juin 2015 =E0 23:53, Michel Veillette &lt;<a href=3D"mailto:Michel.Ve=
illette@trilliantinc.com">Michel.Veillette@trilliantinc.com</a>&gt; a =E9cr=
it&nbsp;:<o:p></o:p></span></p>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal"><b><span lang=3D"EN-CA" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi Alex=
ander</span></b><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">About &#82=
20;Yes, I suppose you should always start with aliases, but that doesn&#821=
7;t sound like a strong constraint to me&#8221;</span><span lang=3D"EN-CA">=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">If I take the following example:</span><span lang=3D"EN-=
CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:72.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>(1, 2, 20=
49, 3)</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">&nbsp;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">Data node ID 1 and 2 can be associated with module ID 0 =
(aliases) but data node ID 2049 and 3 are associated with module
 ID 1.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">I don&#8217;t understand how aliases can be added at the=
 end of this list without been processed as short form.</span><span lang=3D=
"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">Please confirm my understanding.</span><span lang=3D"EN-=
CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><b><span lang=3D"EN-CA" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi Andy=
</span></b><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">About &#82=
20;The data is hierarchical and the parser is required to maintain the curr=
ent module scope. It should be possible to omit the module identifier
 for nested data, except for nodes that start a new module scope. Is this w=
hat you have in mind?&#8221;</span><span lang=3D"EN-CA"><o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">Yes</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">I&#8217;m proposing to use the same model as JSON with a=
 long form consisting of a 20 bits module ID/10 bits YANG ID and the
 short form consisting of a 10 bits YANG ID.</span><span lang=3D"EN-CA"><o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">About &#82=
20;I am not convinced that aliases are worth all the effort because most (9=
5%?) of the IDs in the payload will only need 10 bits.&#8221;</span><span l=
ang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">Agree</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">In most cases, the message size compression will same ju=
st a couple of bytes.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">As mentioned by Alexander, we can simply reserve a range=
 for aliases (e.g. module ID 0) but defer the resolution to
 a different draft.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><b><span lang=3D"EN-CA" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi Pasc=
al</span></b><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">About &#82=
20;</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&=
quot;sans-serif&quot;;color:#1F497D">I understand that any sensor vendor wi=
ll want to
 have its own module IDs, correct?&#8221;</span><span lang=3D"EN-CA"><o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span style=3D"font-siz=
e:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F49=
7D">Correct, with 20 bits, we can allocate 1 000 000 module ID.</span><span=
 lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span style=3D"font-siz=
e:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F49=
7D">This can be done one by one or by small bundle of module IDs (e.g. 4, 8=
, 16 IDs).</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">About &#82=
20;I have missed the trick of 63 module IDs that are optimally encoded&#822=
1;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">When using the long form (20 bits module ID, 10 bits YAN=
G ID), data node ID small enough to fit on 16 bits are encoded
 using CBOR in 3 bytes. Since the YAND ID takes 10 bits, we have 6 bits lef=
t for the module ID (64 IDs minus ID 0 reserved for the short form). Module=
 ID greater than 63 require the use of the 5 bytes CBOR encoding.</span><sp=
an lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">About &#82=
20;If so: maybe we should alias the module IDs so that the 63 IDs that bene=
fit from the optimal CBOR compression should be the aliases of any
 of the thousands of IDs that will soon exist in the registries.&#8221;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">A possible solution is to reserve module ID 0, 1, 2 and =
3 for aliases which will leave 60 &#8220;more optimal&#8221; module IDs.</s=
pan><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">The specific use of the reserved module IDs can be addre=
ssed in one of multiple subsequence drafts.</span><span lang=3D"EN-CA"><o:p=
></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><span lang=3D"EN-CA" st=
yle=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1F497D">What is important for now is the establishment of a cons=
ensus around the core concepts discussed:</span><span lang=3D"EN-CA"><o:p><=
/o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:72.0pt;text-indent:-18.0=
pt"><span lang=3D"EN-CA" style=3D"font-family:Symbol">?</span><span lang=3D=
"EN-CA" style=3D"font-size:7.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;
</span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cal=
ibri&quot;,&quot;sans-serif&quot;;color:#1F497D">registered 20 bits module =
ID</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:72.0pt;text-indent:-18.0=
pt"><span lang=3D"EN-CA" style=3D"font-family:Symbol">?</span><span lang=3D=
"EN-CA" style=3D"font-size:7.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;
</span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cal=
ibri&quot;,&quot;sans-serif&quot;;color:#1F497D">10 bits assigned YANG ID</=
span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:72.0pt;text-indent:-18.0=
pt"><span lang=3D"EN-CA" style=3D"font-family:Symbol">?</span><span lang=3D=
"EN-CA" style=3D"font-size:7.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;
</span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cal=
ibri&quot;,&quot;sans-serif&quot;;color:#1F497D">long form / short form dat=
a node ID</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:72.0pt;text-indent:-18.0=
pt"><span lang=3D"EN-CA" style=3D"font-family:Symbol">?</span><span lang=3D=
"EN-CA" style=3D"font-size:7.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;
</span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cal=
ibri&quot;,&quot;sans-serif&quot;;color:#1F497D">select encoded in CBOR</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"896" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"172" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&lt;image001.jpg&gt;</spa=
n><o:p></o:p></p>
</td>
<td width=3D"724" valign=3D"top" style=3D"width:434.65pt;padding:0cm 5.4pt =
0cm 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D">=
Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D">=
Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a></span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497=
D"><a href=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;=
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">www.trilliantinc.com<=
/span></a></span><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quo=
t;,&quot;sans-serif&quot;;color:#1F497D">
 &nbsp; </span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-=
size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"> Pascal=
 Thubert (pthubert) [<a href=3D"mailto:pthubert@cisco.com">mailto:pthubert@=
cisco.com</a>]
<br>
<b>Sent:</b> 12 juin 2015 21:11<br>
<b>To:</b> Michel Veillette; Alexander Pelov<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org">6tisch@ietf.org=
</a>; <a href=3D"mailto:core@ietf.org">
core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases</span><span lang=3D"=
EN-CA"><o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hello Michel:</span><span=
 lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">I&#8217;m not so worried =
for 6TiSCH&#8217;s ID than for the IDs used to collect data from sensors. B=
ecause that is the operation that will happen all the time an suck batterie=
s.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">I understand that any sen=
sor vendor will want to have its own module IDs, correct? And soon enough t=
hat vendor will come with variants of his products, and
 will want more module IDs, is that right?</span><span lang=3D"EN-CA"><o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">If I&#8217;m correct, thi=
s pleads for aliases; but maybe not as we thought them. I have missed the t=
rick of 63 module IDs that are optimally encoded, but I trust
 you on that &#8211; I figure that it is because it takes 2 bits to encoded=
 the coap option?</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">If so: maybe we should al=
ias the module IDs so that the 63 IDs that benefit from the optimal cbor co=
mpression should be the aliases of any of the thousands
 of IDs that will soon exist in the registries.</span><span lang=3D"EN-CA">=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Also note that device mak=
ers will want the vendor specific range that they use to play with before s=
omething is registered. Aliases could also be a way to play
 with module IDs that have not yet been registered to IANA.</span><span lan=
g=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">I&#8217;m not sure the ab=
ove makes sense since it is based on a partial understanding of your work s=
o far&#8230;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR" style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Pascal</span>=
<span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Michel V=
eillette [<a href=3D"mailto:Michel.Veillette@trilliantinc.com">mailto:Miche=
l.Veillette@trilliantinc.com</a>]
<br>
<b>Sent:</b> vendredi 12 juin 2015 09:58<br>
<b>To:</b> Alexander Pelov; Pascal Thubert (pthubert)<br>
<b>Cc:</b> Andy Bierman; <a href=3D"mailto:6tisch@ietf.org">6tisch@ietf.org=
</a>; <a href=3D"mailto:core@ietf.org">
core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases</span><span lang=3D"=
EN-CA"><o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal">&nbsp;<span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi Alexand=
er, hi Pascal</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">I want to =
emphases the following points</span><span lang=3D"EN-CA"><o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-18.0pt"><span lang=3D"E=
N-CA" style=3D"font-size:11.0pt;font-family:Symbol;color:#1F497D">=B7</span=
><span lang=3D"EN-CA" style=3D"font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cal=
ibri&quot;,&quot;sans-serif&quot;;color:#1F497D">The use of the select quer=
y parameter encoded in CBOR support of 63 modules with optimized message si=
ze instead of only 3 for the base64 URI.</span><span lang=3D"EN-CA"><o:p></=
o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">If =
the 6TiSCH module ID is allocated within these 63 IDs, there will be no mes=
sage size optimization provided by the aliases mechanism.</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Thi=
s make the introduction of aliases less urgent.</span><span lang=3D"EN-CA">=
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nb=
sp;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-18.0pt"><span lang=3D"E=
N-CA" style=3D"font-size:11.0pt;font-family:Symbol;color:#1F497D">=B7</span=
><span lang=3D"EN-CA" style=3D"font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cal=
ibri&quot;,&quot;sans-serif&quot;;color:#1F497D">The message size of the se=
lect query parameter encoded in CBOR should be equal or smaller compared to=
 the base64 URI.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">How=
ever, the select query parameter encoded in CBOR support a wider range of v=
alues without size penalty (16 bits instead of 12, 32 bits
 instead of 30)</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Fur=
thermore, CoMI devices won&#8217;t have to support two type of encoding dep=
ending if IDs are part of the command vs. payload.</span><span lang=3D"EN-C=
A"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nb=
sp;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">For=
 example:</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nb=
sp;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Ass=
uming module ID 2</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Ass=
uming data node ID 1, 2, 3, 4 (long form 2049, 2050, 2051)</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Ass=
uming &#8220;,&#8221; separator to select multiple data nodes</span><span l=
ang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nb=
sp;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Bas=
e64 approach:</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">REQ=
: GET
<a href=3D"http://example.com/mg/gB">example.com/mg/gB</a>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (3 bytes; 1 byte for the &#8220;/&#8221;, 2=
 bytes for &#8220;gB&#8221;)</span><span lang=3D"EN-CA"><o:p></o:p></span><=
/p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nb=
sp;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">CBO=
R approach:</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">REQ=
: GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>(2049)&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (4 bytes; one byte for the Co=
AP option, 3 for 2049 encoded using CBOR)</span><span lang=3D"EN-CA"><o:p><=
/o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nb=
sp;</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Bas=
e64 approach:</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">REQ=
: GET
<a href=3D"http://example.com/mg/gB,C,D,E">example.com/mg/gB,C,D,E</a>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (9 bytes; 1 byte for the &#8220=
;/&#8221;, 8 bytes for &#8220;gB,C,D,E&#8221;)</span><span lang=3D"EN-CA"><=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">CBO=
R approach:</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span lang=3D"EN-CA" style=3D"font-size:11.0p=
t;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">REQ=
: GET
<a href=3D"http://example.com/mg?select">example.com/mg?select</a>( [2049,2=
,3,4] )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (8 bytes; 1 byte for the CoAP option,=
 1 for the CBOR array, 3&#43;1&#43;1&#43;1 bytes for the IDs)</span><span l=
ang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"896" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"172" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&lt;image001.jpg&gt;</spa=
n><o:p></o:p></p>
</td>
<td width=3D"724" valign=3D"top" style=3D"width:434.65pt;padding:0cm 5.4pt =
0cm 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D">=
Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D">=
Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a></span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497=
D"><a href=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;=
font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">www.trilliantinc.com<=
/span></a></span><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quo=
t;,&quot;sans-serif&quot;;color:#1F497D">
 &nbsp; </span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-=
size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"> Alexan=
der Pelov [<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu">mailto:al=
exander.pelov@telecom-bretagne.eu</a>]
<br>
<b>Sent:</b> 11 juin 2015 17:06<br>
<b>To:</b> Pascal Thubert (pthubert)<br>
<b>Cc:</b> Andy Bierman; Michel Veillette; <a href=3D"mailto:6tisch@ietf.or=
g">6tisch@ietf.org</a>;
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<b>Subject:</b> Re: [6tisch] Reserve space for aliases</span><span lang=3D"=
EN-CA"><o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Hi Pascal,<o:p></o:p></span></p=
>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Le 10 juin 2015 =E0 15:25, Pasc=
al Thubert (pthubert) &lt;<a href=3D"mailto:pthubert@cisco.com">pthubert@ci=
sco.com</a>&gt; a =E9crit :<o:p></o:p></span></p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Dear all:<=
/span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">This looks=
 like the problem of local namespaces,&nbsp; which is the reason why MPLS s=
witches labels.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">The user m=
ay access a limited set of resources from a number of servers, and servers =
are read by many users.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">You cannot=
 ensure that you have a single alias space that satisfies them all.</span><=
span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Great analogy! And yes, sadly y=
ou cannot satisfy them all, at least not with all devices.<o:p></o:p></span=
></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-CA">=
&nbsp;<o:p></o:p></span></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">So ,what i=
f the user had its own set of aliases and the server also had its own set o=
f aliases?</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">The aliase=
s could be mapped in a table like a uSAP and a pSAP are mapped across layer=
s. Broadly:</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">- First ti=
me a user requests a resource in a server, it comes with a tuple (userid, u=
seralias, fullname)</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">- The serv=
er responds with (serverid, serveralias, userid, user alias).</span><span l=
ang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Actually, I think that this cou=
ld be worked out in CoMI also. Instead of fullname you could provide the YA=
NG id (module ID &#43; data node ID) and do the mapping. User alias would b=
e the special aliased YANG id. User ID,
 however, could be a little bit more tricky - how do we ensure that it is c=
onsistent? Use the IP address of the client could be doable, but we&#8217;l=
l have to include the UDP port just in case someone runs two clients on the=
 same machine.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-CA">=
&nbsp;<o:p></o:p></span></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">After that=
,&nbsp; if the server is a constrained device then the user talks to the se=
rver with (serverid, serveralias) and the user maintains a switching
 table for the resource it uses on various servers.</span><span lang=3D"EN-=
CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">If the use=
r is the constrained device and the server is not, the user could talk with=
 (userid, useralias) and the server maintains a switching
 table.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">For large =
servers, the server may allocate aliases dynamically based on what it is be=
ing asked. We&#8217;d then need to talk about alias update or revocation,
 probably in terms of session and lifetime.</span><span lang=3D"EN-CA"><o:p=
></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Does that =
look usable?</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">You are pointing out an interes=
ting question. I would think (but maybe I&#8217;m mistaken), that the clien=
t should have the leading role in figuring out what&#8217;s happening. The =
idea is the following:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">The client checks if the server=
 supports aliasing, with the possible options:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">S1) no aliasing<o:p></o:p></spa=
n></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">S2) static/server-defined alias=
ing<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">S3) dynamic/single alias mappin=
g&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp; S3.1) mapping already de=
fined<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp; S3.2) no mapping defined=
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">S4) dynamic/per client alias ma=
pping<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Then, the client can take actio=
n, depending on its own capabilities and the response of the server. E.g. a=
 unconstrained client could obtain the alias mapping if it is static (or if=
 there is a single alias mapping in
 place) and cache it locally. So, there will be the following correspondenc=
e :<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Given:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">C1) constrained client<o:p></o:=
p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">C2) unconstrained client<o:p></=
o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">We have:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">C1 &#43; S1) no aliasing, nothi=
ng to do<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">C1 &#43; S2) and C1 &#43; S3.1)=
 if the alias mapping is known, use it. otherwise, ignore<o:p></o:p></span>=
</p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">C1 &#43; S3.2) and C1 &#43; S4)=
 define alias mapping<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">C2 &#43; S1) no aliasing, nothi=
ng to do<o:p></o:p></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">C2 &#43; S2) and C2 &#43; S3.1)=
 if the alias mapping is known, use it. otherwise, learn it<o:p></o:p></spa=
n></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">C2 &#43; S3.2) and C2 &#43; S4)=
 define alias mapping<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">I would say that the analogy yo=
u made with MPLS corresponds quite a lot to the C2&#43;S4 case. Personally,=
 I would be most interested into having one client configure one alias mapp=
ing to all servers in the network (e.g.
 the managing entity), which will profit most from saving several bytes on =
each message exchange. Everyone else could use the standard IDs, which we&#=
8217;ve already managed to shrink significantly.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Indeed, with structured module =
ID &#43; data node ID (20 bits &#43; 10 bits), YANG URI compression, and lo=
ng form/short form, we&#8217;ll have quite a lot of gain. Reserving module =
ID =3D 1 for aliases and maybe writing a short draft
 on how the aliasing is implemented seems feasible, where we can cover the =
exact mechanism of alias definition, and client/server interaction.<o:p></o=
:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Alexander<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Pascal</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<div>
<p class=3D"MsoNormal"><b><span lang=3D"EN-CA" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span =
class=3D"apple-converted-space"><span lang=3D"EN-CA" style=3D"font-size:10.=
0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">&nbsp;</span></s=
pan><span lang=3D"EN-CA" style=3D"font-size:10.0pt;font-family:&quot;Tahoma=
&quot;,&quot;sans-serif&quot;">6tisch
 [<a href=3D"mailto:6tisch-bounces@ietf.org">mailto:6tisch-bounces@ietf.org=
</a>]<span class=3D"apple-converted-space">&nbsp;</span><b>On Behalf Of<spa=
n class=3D"apple-converted-space">&nbsp;</span></b>Andy Bierman<br>
<b>Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>vendredi 5 j=
uin 2015 20:55<br>
<b>To:</b><span class=3D"apple-converted-space">&nbsp;</span>Michel Veillet=
te<br>
<b>Cc:</b><span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mai=
lto:6tisch@ietf.org">6tisch@ietf.org</a>; Alexander Pelov;
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<b>Subject:</b><span class=3D"apple-converted-space">&nbsp;</span>Re: [6tis=
ch] Reserve space for aliases</span><span lang=3D"EN-CA"><o:p></o:p></span>=
</p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">On Fri, Jun 5, 2015 at 11:41 AM=
, Michel Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com"=
 target=3D"_blank"><span style=3D"color:purple">Michel.Veillette@trillianti=
nc.com</span></a>&gt; wrote:<o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi Alexand=
er</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">I have som=
e concerns about allowing CoMI client(s) the control of the list of aliases=
.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">This appro=
ach work fine for the first CoMI application (e.g. 6TiSCH) but what do we d=
o with the subsequent CoMI application?</span><span lang=3D"EN-CA"><o:p></o=
:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">One possib=
le solution is that each CoMI client send a list of (alias, data node ID) t=
o the CoMI server. In this case, the CoMI client might receive
 an error if one or multiple of these aliases are already reserved.</span><=
span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">A second p=
ossible solution is that each CoMI client send a list of (data node ID) and=
 get a list of (alias, data node ID) from the CoMI server.
 In this case, CoMI clients will have to deal with a mix population of alia=
ses.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">The propos=
ed solution need to scale to a multi-vendors, multiple applications environ=
ment.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">With this =
is mind, do you have any alternative solutions to propose?</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Does this approach allow each c=
lient to have a different set of aliases,<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">so the server has to maintain a=
 configured mapping for each client?<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">This seems like a lot of overhe=
ad and NV-storage requirements<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">on the server.<o:p></o:p></span=
></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Changing the schema identifiers=
 based on which client is<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">sending the request seems like =
a complicated design change<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">from RESTCONF, NETCONF, or SNMP=
, where there is only<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">1 schema tree which is not depe=
ndent on the client identity.<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Andy<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<blockquote style=3D"border:none;border-left:solid #CCCCCC 1.0pt;padding:0c=
m 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-=
bottom:5.0pt">
<div>
<div>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"896" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"172" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:49.05pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">&lt;image001.jpg&gt;</spa=
n><o:p></o:p></p>
</div>
</td>
<td width=3D"724" valign=3D"top" style=3D"width:434.65pt;padding:0cm 5.4pt =
0cm 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,&quot;sans-serif&quot;;color:#1F497D">Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,&quot;sans-serif&quot;;color:#1F497D">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563C1">michel.veillette@trilliantinc.com</span></a></spa=
n><o:p></o:p></p>
</div>
<div style=3D"margin-left:8.1pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><a href=3D"http://www.tri=
lliantinc.com/" target=3D"_blank"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,&quot;sans-serif&quot;;color:purple">www.trilliantinc.c=
om</span></a></span><span class=3D"apple-converted-space"><span style=3D"fo=
nt-size:9.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:#1=
F497D">&nbsp;</span></span><span style=3D"font-size:9.0pt;font-family:&quot=
;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;<span class=3D"app=
le-converted-space">&nbsp;</span></span><o:p></o:p></p>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">&nbsp;</sp=
an><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<div>
<p class=3D"MsoNormal"><b><span lang=3D"EN-CA" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span=
 class=3D"apple-converted-space"><span lang=3D"EN-CA" style=3D"font-size:11=
.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">&nbsp;</span><=
/span><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-family:&quot;Cali=
bri&quot;,&quot;sans-serif&quot;">Alexander
 Pelov [mailto:<a href=3D"mailto:alexander.pelov@telecom-bretagne.eu" targe=
t=3D"_blank"><span style=3D"color:purple">alexander.pelov@telecom-bretagne.=
eu</span></a>]<span class=3D"apple-converted-space">&nbsp;</span><br>
<b>Sent:</b><span class=3D"apple-converted-space">&nbsp;</span>5 juin 2015 =
12:03<br>
<b>To:</b><span class=3D"apple-converted-space">&nbsp;</span>Michel Veillet=
te<br>
<b>Cc:</b><span class=3D"apple-converted-space">&nbsp;</span>Andy Bierman;<=
span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mailto:6tisch@=
ietf.org" target=3D"_blank"><span style=3D"color:purple">6tisch@ietf.org</s=
pan></a>;<span class=3D"apple-converted-space">&nbsp;</span><a href=3D"mail=
to:core@ietf.org" target=3D"_blank"><span style=3D"color:purple">core@ietf.=
org</span></a><br>
<b>Subject:</b><span class=3D"apple-converted-space">&nbsp;</span>Re: Reser=
ve space for aliases</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Hi Michel,<o:p></o:p></span></p=
>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Le 5 juin 2015 =E0 17:17, Miche=
l Veillette &lt;<a href=3D"mailto:Michel.Veillette@trilliantinc.com" target=
=3D"_blank"><span style=3D"color:purple">Michel.Veillette@trilliantinc.com<=
/span></a>&gt; a =E9crit :<o:p></o:p></span></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">Hi Alexander</span><span=
 lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">In your presentation at =
6TiSCH, you propose the following data node ID structure.</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" style=3D"border-collapse:collapse">
<tbody>
<tr>
<td width=3D"779" valign=3D"top" style=3D"width:467.5pt;border:solid window=
text 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
<div style=3D"margin-left:36.0pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">&#8226;</span><span style=3D"font-size:7.=
0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-s=
ize:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">32 bits =
YANG ID</span><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:72.0pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">&#8211;</span><span style=3D"font-size:7.=
0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:11=
.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">20 bits for mo=
dule ID (assigned by IETF)</span><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:72.0pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">&#8211;</span><span style=3D"font-size:7.=
0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:11=
.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">10 bits for da=
ta node ID (generated deterministically)</span><o:p></o:p></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">Based on this structure,=
 we can reserve&nbsp;module ID zero for aliases.</span><span lang=3D"EN-CA"=
><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">I was just summarizing what was=
 discussed on the discussion in CoMI. Actually, it is 30 bits YANG ID, but =
that&#8217;s for purposes to be consistent with the YANG hash and I don&#82=
17;t mind keeping it 30 bits.<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-CA">=
&nbsp;<o:p></o:p></span></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">If we want to minimize b=
oth the network an node resources require by this alias mechanism, we can m=
ap an entire module to this space.</span><span lang=3D"EN-CA"><o:p></o:p></=
span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">This can be implemented =
by a single integer resource (e.g. leaf alliassedModule { type uint32 } )</=
span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">This approach require 4 =
bytes per CoMI server accessed.</span><span lang=3D"EN-CA"><o:p></o:p></spa=
n></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">It is possible to map an entire=
 module to the alias space and this is up to the operator. However, if you =
load two modules which redefine the same alias you will loose the benefit f=
rom it. Maybe it would be interesting
 to be able to specify that you want the aliases from THIS specific module =
to be used.<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">If the /mg/0 alias is reserved =
for managing the aliases, this could be simply saying:<o:p></o:p></span></p=
>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">POST /mg/0<o:p></o:p></span></p=
>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">{<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;&quot;source_uri&quot; : =
&quot;/mg/BAA&quot;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">}<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">where /mg/BAA is the YANG id of=
 the module (20 bits module ID &#43; 10 bits set to 0). This way, the serve=
r will know: OK, get the alias mapping from the YANG scheme of module with =
ID =3D B (as defined by the IETF).&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Or, you can dynamically configu=
re the mapping:<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">POST /mg/0<o:p></o:p></span></p=
>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">{<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp; YANG_id : alias,<o:p></o=
:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp; YANG_id : alias,<o:p></o=
:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp; YANG_id : alias<o:p></o:=
p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">}<o:p></o:p></span></p>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-CA">=
&nbsp;<o:p></o:p></span></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">If we want a more comple=
x but more flexible aliases mechanism, your proposed map of (allias, YANG I=
D) seem the solution.</span><span lang=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">However, we have to cons=
ider that this structure can be as large as&nbsp;<u>1250 bytes per CoMI ser=
ver accessed</u>&nbsp;if limited to 256 aliases.</span><span lang=3D"EN-CA"=
><o:p></o:p></span></p>
</div>
</div>
</div>
</blockquote>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">This is assuming you need a sep=
arate mapping for each server. I would suppose that in a network you&#8217;=
ll have a single alias mapping (maybe two?) - after all, you&#8217;re tryin=
g to optimize the management of your devices (servers).
 So, typically you&#8217;d map all 6tisch devices with aliases 1-10 (channe=
l, slot, etc.) and use that on them, and on all other you&#8217;d access th=
e full ID.&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Best,<o:p></o:p></span></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">Alexander<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-CA">=
&nbsp;<o:p></o:p></span></p>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;">&nbsp;</span><span lang=
=3D"EN-CA"><o:p></o:p></span></p>
</div>
</div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"896" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"172" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:49.05pt">
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;">&lt;image001.jpg&gt;</span><o:p></o:p><=
/p>
</div>
</div>
</td>
<td width=3D"724" valign=3D"top" style=3D"width:434.65pt;padding:0cm 5.4pt =
0cm 5.4pt;height:49.05pt">
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,&quot;sans-serif&quot;">Michel Veillette<br>
System Architecture Director</span><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:9.0pt;font-family:&quot;Ari=
al&quot;,&quot;sans-serif&quot;">Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com" target=3D"_blank"><spa=
n style=3D"color:#0563C1">michel.veillette@trilliantinc.com</span></a></spa=
n><o:p></o:p></p>
</div>
</div>
<div style=3D"margin-left:8.1pt">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;"><a href=3D"http://www.trilliantinc.com/=
" target=3D"_blank"><span style=3D"font-size:9.0pt;font-family:&quot;Arial&=
quot;,&quot;sans-serif&quot;;color:purple">www.trilliantinc.com</span></a><=
/span><o:p></o:p></p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-CA">&nbsp;<o:p></o:p></span></p>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>

--_000_E045AECD98228444A58C61C200AE1BD849E99F50xmbrcdx01ciscoc_--

--_004_E045AECD98228444A58C61C200AE1BD849E99F50xmbrcdx01ciscoc_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Sat, 13 Jun 2015 18:30:40 GMT";
	modification-date="Sat, 13 Jun 2015 18:30:40 GMT"
Content-ID: <image001.jpg@01D0A5CB.A2EF72D0>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_E045AECD98228444A58C61C200AE1BD849E99F50xmbrcdx01ciscoc_--


From nobody Sat Jun 13 15:02:12 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7EE761B2A7E; Sat, 13 Jun 2015 15:02:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qzXITHmv__W5; Sat, 13 Jun 2015 15:02:05 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0128.outbound.protection.outlook.com [207.46.100.128]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3AA8E1B2A83; Sat, 13 Jun 2015 15:02:00 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB789.namprd06.prod.outlook.com (10.141.247.141) with Microsoft SMTP Server (TLS) id 15.1.184.17; Sat, 13 Jun 2015 22:01:56 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0184.014; Sat, 13 Jun 2015 22:01:56 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
Thread-Topic: [6tisch] Reserve space for aliases
Thread-Index: AdCfod60keMhMrKCRwyye+0iFI9vswABye4AAAUaOoAAAO2JAADv9XEAAEJffwAAJ0YMwAATNOsAAAQ/4UAADythAAALeUHQAAXF0IAABu7TMA==
Date: Sat, 13 Jun 2015 22:01:56 +0000
Message-ID: <CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CO2PR0601MB792FA702D901406C3D3A492FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <58A9FE9E-5B2B-4F3C-83F8-4223A83AACA7@telecom-bretagne.eu> <CO2PR0601MB792FD8A51B34F87B4F9EFB6FEB20@CO2PR0601MB792.namprd06.prod.outlook.com> <CABCOCHTw4VTcX2P6QHPoAGAoxox=gFqeOCFB3rvfRZgdB4535w@mail.gmail.com> <E045AECD98228444A58C61C200AE1BD849E9156B@xmb-rcd-x01.cisco.com> <B5D5C5B6-1E16-464A-B0C6-6EA6DF6F5870@telecom-bretagne.eu> <CO2PR0601MB79280E4C199AA64B2A07C9DFEBB0@CO2PR0601MB792.namprd06.prod.outlook.com> <E045AECD98228444A58C61C200AE1BD849E9998D@xmb-rcd-x01.cisco.com>, <CO2PR0601MB7925122DA741C05A1CBA63EFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com> <ED1C41B0-E194-46EF-8BC2-9ED1863BCF63@cisco.com> <CO2PR0601MB792CD49E8BD282436F52EFCFEBA0@CO2PR0601MB792.namprd06.prod.outlook.com> <E045AECD98228444A58C61C200AE1BD849E99F50@xmb-rcd-x01.cisco.com>
In-Reply-To: <E045AECD98228444A58C61C200AE1BD849E99F50@xmb-rcd-x01.cisco.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: cisco.com; dkim=none (message not signed) header.d=none;
x-originating-ip: [192.252.136.131]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB789;
x-microsoft-antispam-prvs: <CO2PR0601MB789ECE9DCE36328445B3B57FEBA0@CO2PR0601MB789.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(520003)(3002001); SRVR:CO2PR0601MB789; BCL:0; PCL:0;  RULEID:; SRVR:CO2PR0601MB789; 
x-forefront-prvs: 0606BBEB39
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(38414003)(19580405001)(19617315012)(102836002)(2950100001)(19580395003)(15975445007)(2900100001)(93886004)(19627595001)(76176999)(99936001)(54356999)(5003600100002)(50986999)(77096005)(99286002)(66066001)(86362001)(76576001)(5001920100001)(5002640100001)(189998001)(122556002)(5001960100002)(40100003)(62966003)(110136002)(561944003)(16236675004)(77156002)(33656002)(2656002)(87936001)(92566002)(19625215002)(19300405004)(18206015028)(74316001)(17760045003)(46102003)(7099028); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB789; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2015 22:01:56.4790 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB789
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/5qCYPTicVOp8L_jLn-50Th2gItU>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Subject: Re: [core] [6tisch] Reserve space for aliases
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2015 22:02:08 -0000

--_004_CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0CO2PR0601MB792na_"

--_000_CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0CO2PR0601MB792na_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Pascal

The discussion about aliases is interesting but we should not be distracted=
 to much by it until we have resolved to initial and core problem, how modu=
les and data nodes are identified. Unless the concept of registered Module =
ID (20 bits) and assigned Data node ID (10 bits) are accepted, the only rel=
iable identifiers are the module name and the data node path, both are cons=
idered too heavy weight.

In summary:

With the current draft, we can advertise of setup data node aliases only us=
ing:
                (module name, data node path -> alias ID) which represent ~=
100 octets.

If Module ID and Data node ID are supported, we can advertise of setup data=
 node aliases using:
                (module ID, data node ID -> alias ID) which represent ~ 5 o=
ctets.

[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



From: Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
Sent: 13 juin 2015 14:31
To: Michel Veillette
Cc: Alexander Pelov; Andy Bierman; 6tisch@ietf.org; core@ietf.org
Subject: RE: [6tisch] Reserve space for aliases

Yes!

With the intent that the alias may be in fact that of the peer.
For instance if the server is a constrained node, the (fat) client would ha=
ve an additional index to that table that is the deviceID or the groupID of=
 the server.
The server would indicate in the handshake that it is not capable to handle=
 someone else's aliases. It could indicate its aliases in the first respons=
es and from then on the client would use the server's aliases.

Cheers,

Pascal

From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com]
Sent: samedi 13 juin 2015 08:55
To: Pascal Thubert (pthubert)
Cc: Alexander Pelov; Andy Bierman; 6tisch@ietf.org<mailto:6tisch@ietf.org>;=
 core@ietf.org<mailto:core@ietf.org>
Subject: RE: [6tisch] Reserve space for aliases

Hi Pascal

If I understand correctly your proposal

*         the range 1 to 3 is used to alias a data nodes based on a mapping=
 table containing (module name or ID, YANG ID, alias ID).
If this is the case, a single ID might be sufficient since it will allow al=
iasing of up to 1000 data nodes.

*         If I understand correctly, the range 4 to 60 is used to alias com=
plete modules based on a mapping table containing (module name or ID, alias=
 ID).

Is it correct?


[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>



--_000_CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0CO2PR0601MB792na_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma",sans-serif;}
span.apple-converted-space
	{mso-style-name:apple-converted-space;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle22
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle23
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle24
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle25
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle26
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle27
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle28
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Pascal<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">The discus=
sion about aliases is interesting but we should not be distracted to much b=
y it until we have resolved to initial and core
 problem, how modules and data nodes are identified. Unless the concept of =
registered Module ID (20 bits) and assigned Data node ID (10 bits) are acce=
pted, the only reliable identifiers are the module name and the data node p=
ath, both are considered too heavy
 weight.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">In summary=
:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">With the c=
urrent draft, we can advertise of setup data node aliases only using:<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp; (module name, data node path -&gt; alias ID) which represent ~100 oct=
ets.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">If Module =
ID and Data node ID are supported, we can advertise of setup data node alia=
ses using:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp; (module ID, data node ID -&gt; alias ID) which represent ~ 5 octets.<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><img width=3D"120" height=3D"22" id=
=3D"_x0000_i1026" src=3D"cid:image001.jpg@01D0A601.4B4278D0" alt=3D"cid:ima=
ge001.jpg@01C868D8.BF0BB7E0"><o:p></o:p></span></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><span style=3D"font-size:11.0pt;font-fam=
ily:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><a href=
=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</span></a></span><span=
 style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1=
F497D">
 &nbsp; </span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&qu=
ot;,sans-serif;color:#1F497D"><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p>&nbsp=
;</o:p></span></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:11.0pt;fo=
nt-family:&quot;Calibri&quot;,sans-serif">From:</span></b><span lang=3D"EN-=
US" style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"> =
Pascal Thubert (pthubert) [mailto:pthubert@cisco.com]
<br>
<b>Sent:</b> 13 juin 2015 14:31<br>
<b>To:</b> Michel Veillette<br>
<b>Cc:</b> Alexander Pelov; Andy Bierman; 6tisch@ietf.org; core@ietf.org<br=
>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases<o:p></o:p></span></p=
>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Yes!<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">With the intent that t=
he alias may be in fact that of the peer.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">For instance if the se=
rver is a constrained node, the (fat) client would have an additional index=
 to that table that is the deviceID or the groupID
 of the server.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">The server would indic=
ate in the handshake that it is not capable to handle someone else&#8217;s =
aliases. It could indicate its aliases in the first responses
 and from then on the client would use the server&#8217;s aliases.<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Cheers,<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Pascal<o:p></o:p></spa=
n></p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,sans-serif">From:</span></b><span lang=3D"EN-U=
S" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,sans-serif"> Mi=
chel Veillette [<a href=3D"mailto:Michel.Veillette@trilliantinc.com">mailto=
:Michel.Veillette@trilliantinc.com</a>]
<br>
<b>Sent:</b> samedi 13 juin 2015 08:55<br>
<b>To:</b> Pascal Thubert (pthubert)<br>
<b>Cc:</b> Alexander Pelov; Andy Bierman; <a href=3D"mailto:6tisch@ietf.org=
">6tisch@ietf.org</a>;
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<b>Subject:</b> RE: [6tisch] Reserve space for aliases<o:p></o:p></span></p=
>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Hi Pascal</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">If I understand correctly your propos=
al</span><o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:11.0pt;font-family:Symbol;color:#1F497D">&middot;</span><span styl=
e=3D"font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;
</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1F497D">the range 1 to 3 is used to alias a data nodes based =
on a mapping table containing (module name or ID, YANG ID, alias ID).<br>
If this is the case, a single ID might be sufficient since it will allow al=
iasing of up to 1000 data nodes.</span><o:p></o:p></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:11.0pt;font-family:Symbol;color:#1F497D">&middot;</span><span styl=
e=3D"font-size:7.0pt;color:#1F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;
</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans=
-serif;color:#1F497D">If I understand correctly, the range 4 to 60 is used =
to alias complete modules based on a mapping table containing (module name =
or ID, alias ID).</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">Is it correct?</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D">&nbsp;</span><o:p></o:p></p>
<div>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,sans-serif;color:#1F497D"><img border=3D"0" width=3D"120" heigh=
t=3D"22" id=3D"Picture_x0020_2" src=3D"cid:image001.jpg@01D0A601.4B4278D0" =
alt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"></span><o:p></o:p></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Michel Veill=
ette<br>
System Architecture Director</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1F497D">Trilliant In=
c.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a></span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"><a href=
=3D"http://www.trilliantinc.com/"><span style=3D"font-size:9.0pt;font-famil=
y:&quot;Arial&quot;,sans-serif">www.trilliantinc.com</span></a></span><span=
 style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#1=
F497D">
 &nbsp; </span><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"font-siz=
e:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D">&nbsp;</=
span><o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>

--_000_CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0CO2PR0601MB792na_--

--_004_CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Sat, 13 Jun 2015 22:01:53 GMT";
	modification-date="Sat, 13 Jun 2015 22:01:53 GMT"
Content-ID: <image001.jpg@01D0A601.4B4278D0>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB7926CC9EEA5DAD87C877E42FEBA0CO2PR0601MB792na_--


From nobody Wed Jun 17 11:17:05 2015
Return-Path: <timothy.carey@alcatel-lucent.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B1CC31B2CAB for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 11:17:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level: 
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wMLtW-3-5iEj for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 11:17:02 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CF6DD1B2CB0 for <core@ietf.org>; Wed, 17 Jun 2015 11:17:01 -0700 (PDT)
Received: from us70uusmtp3.zam.alcatel-lucent.com (unknown [135.5.2.65]) by Websense Email Security Gateway with ESMTPS id 334554958E1D5 for <core@ietf.org>; Wed, 17 Jun 2015 18:16:56 +0000 (GMT)
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70uusmtp3.zam.alcatel-lucent.com (GMO) with ESMTP id t5HIGwRI026135 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <core@ietf.org>; Wed, 17 Jun 2015 18:16:58 GMT
Received: from US70UWXCHMBA05.zam.alcatel-lucent.com ([169.254.10.167]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0195.001; Wed, 17 Jun 2015 14:16:58 -0400
From: "Carey, Timothy (Timothy)" <timothy.carey@alcatel-lucent.com>
To: "core@ietf.org" <core@ietf.org>
Thread-Topic: https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
Thread-Index: AdCpKctdQDS+YPvOSi6jkBvaiD+NNw==
Date: Wed, 17 Jun 2015 18:16:56 +0000
Message-ID: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_9966516C6EB5FC4381E05BF80AA55F77BA281C0DUS70UWXCHMBA05z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/sAvSKlIirEYbv08KHCLa5Ryk7iM>
Subject: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jun 2015 18:17:03 -0000

--_000_9966516C6EB5FC4381E05BF80AA55F77BA281C0DUS70UWXCHMBA05z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Team,


I submitted a draft that collects my thoughts as well as several discussion=
s we have had on the email reflector regarding the use of a standardized me=
ssage layer. In addition several comments regarding tschofenig-core-coap-tc=
p-tls that we have been discussing over the last several months.


Here is the link to the document
https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adap=
t-00.txt

I would be happy to discuss this on the list and in Prague.

BR,
Tim

--_000_9966516C6EB5FC4381E05BF80AA55F77BA281C0DUS70UWXCHMBA05z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"Trebuchet MS";
	panose-1:2 11 6 3 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Trebuchet MS","sans-serif";
	color:windowtext;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New";}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Trebuchet MS&quot;,=
&quot;sans-serif&quot;">Team,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Trebuchet MS&quot;,=
&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<pre><span style=3D"font-family:&quot;Trebuchet MS&quot;,&quot;sans-serif&q=
uot;">I submitted a draft that collects my thoughts as well as several disc=
ussions we have had on the email reflector regarding the use of a standardi=
zed message layer. In addition several comments regarding <span style=3D"co=
lor:black">tschofenig-core-coap-tcp-tls that we have been discussing over t=
he last several months.<o:p></o:p></span></span></pre>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Trebuchet MS&quot;,=
&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Trebuchet MS&quot;,=
&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Trebuchet MS&quot;,=
&quot;sans-serif&quot;">Here is the link to the document<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><a href=3D"https://www.ietf.org/internet-drafts/draf=
t-carey-core-std-msg-vs-trans-adapt-00.txt">https://www.ietf.org/internet-d=
rafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">I would be happy to discuss this on the list and in =
Prague.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">BR,<o:p></o:p></p>
<p class=3D"MsoNormal">Tim<span style=3D"font-family:&quot;Trebuchet MS&quo=
t;,&quot;sans-serif&quot;"><o:p></o:p></span></p>
</div>
</body>
</html>

--_000_9966516C6EB5FC4381E05BF80AA55F77BA281C0DUS70UWXCHMBA05z_--


From nobody Wed Jun 17 11:31:31 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 68DC51B2C6A for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 11:31:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Wck5f_ccWXvh for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 11:31:29 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EB6161A9042 for <core@ietf.org>; Wed, 17 Jun 2015 11:31:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::b]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5HIVLHd018379; Wed, 17 Jun 2015 20:31:22 +0200 (CEST)
Received: from alma.local (p5DC7EA60.dip0.t-ipconnect.de [93.199.234.96]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mBZjP5Nzyz999W; Wed, 17 Jun 2015 20:31:21 +0200 (CEST)
Message-ID: <5581BCF8.4050305@tzi.org>
Date: Wed, 17 Jun 2015 20:31:20 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: "Carey, Timothy (Timothy)" <timothy.carey@alcatel-lucent.com>
References: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com>
In-Reply-To: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/H-PDoQY3u9zaG-tFoZ3bVenRDrM>
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jun 2015 18:31:30 -0000

Thanks.  I'm reading section 5 as a set of editorial improvements that
are urgently needed for the coap-tcp-tls draft.

One question for that: what makes you say:
       TCP connections in the current draft are
       currently limited to a single Request/Response information
       exchange.  This limitation means that multiple TCP connections
       are needed for parallel information exchanges.  For example, an
       Observe/Notification information exchange would have to be on a
       different TCP connection as a simple Get request, causing
       multiple costly TCP connections to be established.

Request/response matching is via the token, so there is no problem at
all in having multiple requests active, and answered out of sequence, in
a single TCP connection.  (There is no equivalent of the HTTP
"pipelining" problem.)

GrÃ¼ÃŸe, Carsten


Carey, Timothy (Timothy) wrote:
> Team,
> 
>  
> 
> I submitted a draft that collects my thoughts as well as several discussions we have had on the email reflector regarding the use of a standardized message layer. In addition several comments regarding tschofenig-core-coap-tcp-tls that we have been discussing over the last several months.
> 
>  
> 
>  
> 
> Here is the link to the document
> 
> https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
> 
>  
> 
> I would be happy to discuss this on the list and in Prague.
> 
>  
> 
> BR,
> 
> Tim
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From nobody Wed Jun 17 12:09:38 2015
Return-Path: <timothy.carey@alcatel-lucent.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 47A161B2D0D for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 12:09:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level: 
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9HMsQ9e9saLG for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 12:09:35 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpgre-esg-01.alcatel-lucent.com [135.245.210.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3D0B71B2CE8 for <core@ietf.org>; Wed, 17 Jun 2015 12:09:35 -0700 (PDT)
Received: from us70tusmtp1.zam.alcatel-lucent.com (unknown [135.5.2.63]) by Websense Email Security Gateway with ESMTPS id 4DFA6C3A866B6; Wed, 17 Jun 2015 19:09:29 +0000 (GMT)
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70tusmtp1.zam.alcatel-lucent.com (GMO) with ESMTP id t5HJ9VsR006807 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 17 Jun 2015 19:09:31 GMT
Received: from US70UWXCHMBA05.zam.alcatel-lucent.com ([169.254.10.167]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0195.001; Wed, 17 Jun 2015 15:09:31 -0400
From: "Carey, Timothy (Timothy)" <timothy.carey@alcatel-lucent.com>
To: Carsten Bormann <cabo@tzi.org>
Thread-Topic: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
Thread-Index: AdCpKctdQDS+YPvOSi6jkBvaiD+NNwAI4nIAAAdLOOA=
Date: Wed, 17 Jun 2015 19:09:30 +0000
Message-ID: <9966516C6EB5FC4381E05BF80AA55F77BA281CD0@US70UWXCHMBA05.zam.alcatel-lucent.com>
References: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com> <5581BCF8.4050305@tzi.org>
In-Reply-To: <5581BCF8.4050305@tzi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.17]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/vCduvCSYFiBOxG9TUZbwQpV2S9w>
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jun 2015 19:09:37 -0000

Q2Fyc3RlbiwNCg0KSXRzIHJlYWxseSB0aGUgcXVlc3Rpb24gb2YgdGhlIG51bWJlciBvZiBUQ1Ag
c2Vzc2lvbnMgdGhhdCB3aWxsIG5lZWQgdG8gYmUgZXN0YWJsaXNoZWQuIEkgY2FuJ3QgZG8gc2F5
IEdldC90ZW1wIE9ic2VydmU6MCBhbmQgR2V0L2ZvbyBhdCB0aGUgc2FtZSB0aW1lIC0gdGhleSB3
b3VsZCBuZWVkIHNlcGFyYXRlIFRDUCBzZXNzaW9uLiBUaGUgdXNlIG9mIG1lc3NhZ2UgaWQgdGhh
dCBhcmUgdmFsaWQgYWNyb3NzIFRDUCBzZXNzaW9ucyB3b3VsZCBtYWtlIHRoaXMgcG9zc2libGUg
LSByaWdodD8NCg0KQlIsDQpUaW0NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206
IENhcnN0ZW4gQm9ybWFubiBbbWFpbHRvOmNhYm9AdHppLm9yZ10gDQpTZW50OiBXZWRuZXNkYXks
IEp1bmUgMTcsIDIwMTUgMTozMSBQTQ0KVG86IENhcmV5LCBUaW1vdGh5IChUaW1vdGh5KQ0KQ2M6
IGNvcmVAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbY29yZV0gaHR0cHM6Ly93d3cuaWV0Zi5vcmcv
aW50ZXJuZXQtZHJhZnRzL2RyYWZ0LWNhcmV5LWNvcmUtc3RkLW1zZy12cy10cmFucy1hZGFwdC0w
MC50eHQNCg0KVGhhbmtzLiAgSSdtIHJlYWRpbmcgc2VjdGlvbiA1IGFzIGEgc2V0IG9mIGVkaXRv
cmlhbCBpbXByb3ZlbWVudHMgdGhhdCBhcmUgdXJnZW50bHkgbmVlZGVkIGZvciB0aGUgY29hcC10
Y3AtdGxzIGRyYWZ0Lg0KDQpPbmUgcXVlc3Rpb24gZm9yIHRoYXQ6IHdoYXQgbWFrZXMgeW91IHNh
eToNCiAgICAgICBUQ1AgY29ubmVjdGlvbnMgaW4gdGhlIGN1cnJlbnQgZHJhZnQgYXJlDQogICAg
ICAgY3VycmVudGx5IGxpbWl0ZWQgdG8gYSBzaW5nbGUgUmVxdWVzdC9SZXNwb25zZSBpbmZvcm1h
dGlvbg0KICAgICAgIGV4Y2hhbmdlLiAgVGhpcyBsaW1pdGF0aW9uIG1lYW5zIHRoYXQgbXVsdGlw
bGUgVENQIGNvbm5lY3Rpb25zDQogICAgICAgYXJlIG5lZWRlZCBmb3IgcGFyYWxsZWwgaW5mb3Jt
YXRpb24gZXhjaGFuZ2VzLiAgRm9yIGV4YW1wbGUsIGFuDQogICAgICAgT2JzZXJ2ZS9Ob3RpZmlj
YXRpb24gaW5mb3JtYXRpb24gZXhjaGFuZ2Ugd291bGQgaGF2ZSB0byBiZSBvbiBhDQogICAgICAg
ZGlmZmVyZW50IFRDUCBjb25uZWN0aW9uIGFzIGEgc2ltcGxlIEdldCByZXF1ZXN0LCBjYXVzaW5n
DQogICAgICAgbXVsdGlwbGUgY29zdGx5IFRDUCBjb25uZWN0aW9ucyB0byBiZSBlc3RhYmxpc2hl
ZC4NCg0KUmVxdWVzdC9yZXNwb25zZSBtYXRjaGluZyBpcyB2aWEgdGhlIHRva2VuLCBzbyB0aGVy
ZSBpcyBubyBwcm9ibGVtIGF0IGFsbCBpbiBoYXZpbmcgbXVsdGlwbGUgcmVxdWVzdHMgYWN0aXZl
LCBhbmQgYW5zd2VyZWQgb3V0IG9mIHNlcXVlbmNlLCBpbiBhIHNpbmdsZSBUQ1AgY29ubmVjdGlv
bi4gIChUaGVyZSBpcyBubyBlcXVpdmFsZW50IG9mIHRoZSBIVFRQICJwaXBlbGluaW5nIiBwcm9i
bGVtLikNCg0KR3LDvMOfZSwgQ2Fyc3Rlbg0KDQoNCkNhcmV5LCBUaW1vdGh5IChUaW1vdGh5KSB3
cm90ZToNCj4gVGVhbSwNCj4gDQo+ICANCj4gDQo+IEkgc3VibWl0dGVkIGEgZHJhZnQgdGhhdCBj
b2xsZWN0cyBteSB0aG91Z2h0cyBhcyB3ZWxsIGFzIHNldmVyYWwgZGlzY3Vzc2lvbnMgd2UgaGF2
ZSBoYWQgb24gdGhlIGVtYWlsIHJlZmxlY3RvciByZWdhcmRpbmcgdGhlIHVzZSBvZiBhIHN0YW5k
YXJkaXplZCBtZXNzYWdlIGxheWVyLiBJbiBhZGRpdGlvbiBzZXZlcmFsIGNvbW1lbnRzIHJlZ2Fy
ZGluZyB0c2Nob2ZlbmlnLWNvcmUtY29hcC10Y3AtdGxzIHRoYXQgd2UgaGF2ZSBiZWVuIGRpc2N1
c3Npbmcgb3ZlciB0aGUgbGFzdCBzZXZlcmFsIG1vbnRocy4NCj4gDQo+ICANCj4gDQo+ICANCj4g
DQo+IEhlcmUgaXMgdGhlIGxpbmsgdG8gdGhlIGRvY3VtZW50DQo+IA0KPiBodHRwczovL3d3dy5p
ZXRmLm9yZy9pbnRlcm5ldC1kcmFmdHMvZHJhZnQtY2FyZXktY29yZS1zdGQtbXNnLXZzLXRyYW5z
DQo+IC1hZGFwdC0wMC50eHQNCj4gDQo+ICANCj4gDQo+IEkgd291bGQgYmUgaGFwcHkgdG8gZGlz
Y3VzcyB0aGlzIG9uIHRoZSBsaXN0IGFuZCBpbiBQcmFndWUuDQo+IA0KPiAgDQo+IA0KPiBCUiwN
Cj4gDQo+IFRpbQ0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18NCj4gY29yZSBtYWlsaW5nIGxpc3QNCj4gY29yZUBpZXRmLm9yZw0KPiBodHRwczov
L3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2NvcmUNCg==


From nobody Wed Jun 17 13:17:57 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 91EEA1A001D for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 13:17:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LsLd07r6p6yX for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 13:17:55 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2D5481A0041 for <core@ietf.org>; Wed, 17 Jun 2015 13:17:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::b]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5HKHi0E007181; Wed, 17 Jun 2015 22:17:44 +0200 (CEST)
Received: from alma.local (p5DC7EA60.dip0.t-ipconnect.de [93.199.234.96]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mBd485gzRz99lx; Wed, 17 Jun 2015 22:17:44 +0200 (CEST)
Message-ID: <5581D5E7.1000505@tzi.org>
Date: Wed, 17 Jun 2015 22:17:43 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: "Carey, Timothy (Timothy)" <timothy.carey@alcatel-lucent.com>
References: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com> <5581BCF8.4050305@tzi.org> <9966516C6EB5FC4381E05BF80AA55F77BA281CD0@US70UWXCHMBA05.zam.alcatel-lucent.com>
In-Reply-To: <9966516C6EB5FC4381E05BF80AA55F77BA281CD0@US70UWXCHMBA05.zam.alcatel-lucent.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/Lusi5ybRm-nwUrMunwLLB3xL_Ko>
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jun 2015 20:17:56 -0000

Carey, Timothy (Timothy) wrote:
> Its really the question of the number of TCP sessions that will need to be established. 
> I can't do say Get/temp Observe:0 and Get/foo at the same time - they
would need separate TCP session.

You just have to make sure these requests use different tokens -- that
is not different from what you need to do in UDP when making parallel
requests.

>The use of message id that are valid across TCP sessions would make
this possible - right?

Message-IDs allow you to have multiple retransmission sequences in
progress at the same time.  There is no need for retransmission in TCP
though.  So all you need to do is use a token for each request that is
not still active (i.e., is not waiting for a response, including
additional responses, a.k.a. notifications, for observe).

E.g. (assuming that it takes a second to read out the temp sensor):

-> token='' GET /temp Observe=0
-> token='a3' GET /foo
<- token='a3' 2.05 "foo is bar"
<- token='' 2.05 Observe=4711 {"e":[{ "n": "mytemp", "v":23.5, "u":"Cel"
}]}
-> token='b1' GET /foo
<- token='' 2.05 Observe=4778 {"e":[{ "n": "mytemp", "v":23.5, "u":"Cel" }]}
<- token='b1' 2.05 "foo is baz"
<- token='' 2.05 Observe=4892 {"e":[{ "n": "mytemp", "v":23.5, "u":"Cel" }]}
-> token='' GET /temp Observe=1
<- token='' 2.05 {"e":[{ "n": "mytemp", "v":23.5, "u":"Cel" }]}

For the first request, I have used the token '' (which I mean to say the
0-length token), which stays active as long as the observation for /temp
is registered at the server (here, it becomes free after the last
response).  The tokens 'a3' and 'b1' (which I mean to say two random
1-byte length tokens) are active until the response is in.  The second
request to /foo might as well use 'a3' as its token, because that became
free when the response came in.  But nothing is wrong with rotating
through a larger set of tokens, either.

GrÃ¼ÃŸe, Carsten


From nobody Wed Jun 17 15:13:31 2015
Return-Path: <timothy.carey@alcatel-lucent.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 42A3E1A3B9B for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 15:13:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level: 
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oExAfhruTLy2 for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 15:13:28 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4CBAF1A1AE8 for <core@ietf.org>; Wed, 17 Jun 2015 15:13:28 -0700 (PDT)
Received: from us70uusmtp4.zam.alcatel-lucent.com (unknown [135.5.2.66]) by Websense Email Security Gateway with ESMTPS id 50392A9A696C3; Wed, 17 Jun 2015 22:13:22 +0000 (GMT)
Received: from US70TWXCHHUB03.zam.alcatel-lucent.com (us70twxchhub03.zam.alcatel-lucent.com [135.5.2.35]) by us70uusmtp4.zam.alcatel-lucent.com (GMO) with ESMTP id t5HMDOX3002124 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 17 Jun 2015 22:13:25 GMT
Received: from US70UWXCHMBA05.zam.alcatel-lucent.com ([169.254.10.167]) by US70TWXCHHUB03.zam.alcatel-lucent.com ([135.5.2.35]) with mapi id 14.03.0195.001; Wed, 17 Jun 2015 18:13:24 -0400
From: "Carey, Timothy (Timothy)" <timothy.carey@alcatel-lucent.com>
To: Carsten Bormann <cabo@tzi.org>
Thread-Topic: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
Thread-Index: AdCpKctdQDS+YPvOSi6jkBvaiD+NNwAI4nIAAAdLOOD//+NfgIAALcPg
Date: Wed, 17 Jun 2015 22:13:24 +0000
Message-ID: <9966516C6EB5FC4381E05BF80AA55F77BA281F0D@US70UWXCHMBA05.zam.alcatel-lucent.com>
References: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com> <5581BCF8.4050305@tzi.org> <9966516C6EB5FC4381E05BF80AA55F77BA281CD0@US70UWXCHMBA05.zam.alcatel-lucent.com> <5581D5E7.1000505@tzi.org>
In-Reply-To: <5581D5E7.1000505@tzi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/c0KSLdzgtzobd03_KkJgaE_W7XQ>
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jun 2015 22:13:30 -0000

Q2Fyc3RlbiwNCg0KWWVzIC0gdGhhdCBpcyB3aGVyZSBLbGF1cyBhbmQgSSBsZWZ0IHRoZSBkaXNj
dXNzaW9uIG9uIHRoZSBlbWFpbCB0aHJlYWQuDQpJZiB3ZSBjYW4gYWRkIHRoZSB0ZXh0IHRvIHRo
ZSBkcmFmdCBmcm9tIFdlYnNvY2tldHM6DQpDb0FQIFJlcXVlc3QvUmVzcG9uc2VzLCB3aGljaCBj
YW4gIGFyZSBleGNoYW5nZWQgYXN5bmNocm9ub3VzbHkgb3ZlciB0aGUgVENQIGNvbm5lY3Rpb24s
IGkuZS4sIGEgQ29BUCBjbGllbnQgY2FuIHNlbmQgbXVsdGlwbGUgcmVxdWVzdHMgd2l0aG91dCB3
YWl0aW5nIGZvciBhIHJlc3BvbnNlLCBhbmQgdGhlIENvQVAgc2VydmVyIGNhbiByZXR1cm4gcmVz
cG9uc2VzIGluIGFueSBvcmRlci4gUmVzcG9uc2VzIE1VU1QgYmUgcmV0dXJuZWQgb3ZlciB0aGUg
c2FtZSBUQ1AgY29ubmVjdGlvbiBhcyB0aGUgb3JpZ2luYXRpbmcgcmVxdWVzdC4gQ29uY3VycmVu
dCByZXF1ZXN0cyBhcmUgZGlmZmVyZW50aWF0ZWQgYnkgdGhlIFRva2VuLCB3aGljaCBpcyBzY29w
ZWQgbG9jYWxseSB0byB0aGUgVENQIGNvbm5lY3Rpb24uDQoNClNvIHdoYXQgaXMgYmVpbmcgYXNr
ZWQgaXMgaW5jbHVzaW9uIG9mIHRoZSBhYm92ZSB0ZXh0IHRvIGhhbmRsZSB0aGUgbG9uZyBsaXZl
ZCBhbmQgcGFyYWxsZWwgcmVxdWVzdHMuIA0KDQpCVFcgLXdlIGRpZCBzZWUgdGhlIFJlcXVlc3Qv
UmVzcG9uc2UgTVVTVCBiZSBpbiB0aGUgc2FtZSBzZXNzaW9uIGFzIGFuIHVubmVjZXNzYXJ5IGNv
bnN0cmFpbnQgc2luY2UgYSB0b2tlbiBzaG91bGQgYmUgYWxsIHRoYXQgaXMgbmVlZGVkIGJ5IGFu
IGFwcGxpY2F0aW9uIHRvIG1hdGNoIHJlcXVlc3RzIGFuZCByZXNwb25zZXMuIEhvd2V2ZXIgaXQg
bG9va3MgbGlrZSB0aGUgY29uc3RyYWludCBzZWVtcyBhIGZ1bmRhbWVudGFsIGltcGxlbWVudGF0
aW9uIGRlY2lzaW9uIGZvciBDb0FQIG92ZXIgRFRMUyAoc2VjdGlvbiA5LjEuMiBvZiBSRkMgNzI1
MikuIEkgZG9uJ3Qga25vdyBpZiB0aGF04oCZcyByZWFsbHkgc29tZXRoaW5nIHdlIHdhbnQgdG8g
b3IgZXZlbiBjYW4gcmVsYXguIA0KDQpCUiwNClRpbQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut
LS0tLQ0KRnJvbTogQ2Fyc3RlbiBCb3JtYW5uIFttYWlsdG86Y2Fib0B0emkub3JnXSANClNlbnQ6
IFdlZG5lc2RheSwgSnVuZSAxNywgMjAxNSAzOjE4IFBNDQpUbzogQ2FyZXksIFRpbW90aHkgKFRp
bW90aHkpDQpDYzogY29yZUBpZXRmLm9yZw0KU3ViamVjdDogUmU6IFtjb3JlXSBodHRwczovL3d3
dy5pZXRmLm9yZy9pbnRlcm5ldC1kcmFmdHMvZHJhZnQtY2FyZXktY29yZS1zdGQtbXNnLXZzLXRy
YW5zLWFkYXB0LTAwLnR4dA0KDQoNCg0KQ2FyZXksIFRpbW90aHkgKFRpbW90aHkpIHdyb3RlOg0K
PiBJdHMgcmVhbGx5IHRoZSBxdWVzdGlvbiBvZiB0aGUgbnVtYmVyIG9mIFRDUCBzZXNzaW9ucyB0
aGF0IHdpbGwgbmVlZCB0byBiZSBlc3RhYmxpc2hlZC4gDQo+IEkgY2FuJ3QgZG8gc2F5IEdldC90
ZW1wIE9ic2VydmU6MCBhbmQgR2V0L2ZvbyBhdCB0aGUgc2FtZSB0aW1lIC0gdGhleQ0Kd291bGQg
bmVlZCBzZXBhcmF0ZSBUQ1Agc2Vzc2lvbi4NCg0KWW91IGp1c3QgaGF2ZSB0byBtYWtlIHN1cmUg
dGhlc2UgcmVxdWVzdHMgdXNlIGRpZmZlcmVudCB0b2tlbnMgLS0gdGhhdCBpcyBub3QgZGlmZmVy
ZW50IGZyb20gd2hhdCB5b3UgbmVlZCB0byBkbyBpbiBVRFAgd2hlbiBtYWtpbmcgcGFyYWxsZWwg
cmVxdWVzdHMuDQoNCj5UaGUgdXNlIG9mIG1lc3NhZ2UgaWQgdGhhdCBhcmUgdmFsaWQgYWNyb3Nz
IFRDUCBzZXNzaW9ucyB3b3VsZCBtYWtlDQp0aGlzIHBvc3NpYmxlIC0gcmlnaHQ/DQoNCk1lc3Nh
Z2UtSURzIGFsbG93IHlvdSB0byBoYXZlIG11bHRpcGxlIHJldHJhbnNtaXNzaW9uIHNlcXVlbmNl
cyBpbiBwcm9ncmVzcyBhdCB0aGUgc2FtZSB0aW1lLiAgVGhlcmUgaXMgbm8gbmVlZCBmb3IgcmV0
cmFuc21pc3Npb24gaW4gVENQIHRob3VnaC4gIFNvIGFsbCB5b3UgbmVlZCB0byBkbyBpcyB1c2Ug
YSB0b2tlbiBmb3IgZWFjaCByZXF1ZXN0IHRoYXQgaXMgbm90IHN0aWxsIGFjdGl2ZSAoaS5lLiwg
aXMgbm90IHdhaXRpbmcgZm9yIGEgcmVzcG9uc2UsIGluY2x1ZGluZyBhZGRpdGlvbmFsIHJlc3Bv
bnNlcywgYS5rLmEuIG5vdGlmaWNhdGlvbnMsIGZvciBvYnNlcnZlKS4NCg0KRS5nLiAoYXNzdW1p
bmcgdGhhdCBpdCB0YWtlcyBhIHNlY29uZCB0byByZWFkIG91dCB0aGUgdGVtcCBzZW5zb3IpOg0K
DQotPiB0b2tlbj0nJyBHRVQgL3RlbXAgT2JzZXJ2ZT0wDQotPiB0b2tlbj0nYTMnIEdFVCAvZm9v
DQo8LSB0b2tlbj0nYTMnIDIuMDUgImZvbyBpcyBiYXIiDQo8LSB0b2tlbj0nJyAyLjA1IE9ic2Vy
dmU9NDcxMSB7ImUiOlt7ICJuIjogIm15dGVtcCIsICJ2IjoyMy41LCAidSI6IkNlbCINCn1dfQ0K
LT4gdG9rZW49J2IxJyBHRVQgL2Zvbw0KPC0gdG9rZW49JycgMi4wNSBPYnNlcnZlPTQ3NzggeyJl
IjpbeyAibiI6ICJteXRlbXAiLCAidiI6MjMuNSwgInUiOiJDZWwiIH1dfQ0KPC0gdG9rZW49J2Ix
JyAyLjA1ICJmb28gaXMgYmF6Ig0KPC0gdG9rZW49JycgMi4wNSBPYnNlcnZlPTQ4OTIgeyJlIjpb
eyAibiI6ICJteXRlbXAiLCAidiI6MjMuNSwgInUiOiJDZWwiIH1dfQ0KLT4gdG9rZW49JycgR0VU
IC90ZW1wIE9ic2VydmU9MQ0KPC0gdG9rZW49JycgMi4wNSB7ImUiOlt7ICJuIjogIm15dGVtcCIs
ICJ2IjoyMy41LCAidSI6IkNlbCIgfV19DQoNCkZvciB0aGUgZmlyc3QgcmVxdWVzdCwgSSBoYXZl
IHVzZWQgdGhlIHRva2VuICcnICh3aGljaCBJIG1lYW4gdG8gc2F5IHRoZSAwLWxlbmd0aCB0b2tl
biksIHdoaWNoIHN0YXlzIGFjdGl2ZSBhcyBsb25nIGFzIHRoZSBvYnNlcnZhdGlvbiBmb3IgL3Rl
bXAgaXMgcmVnaXN0ZXJlZCBhdCB0aGUgc2VydmVyIChoZXJlLCBpdCBiZWNvbWVzIGZyZWUgYWZ0
ZXIgdGhlIGxhc3QgcmVzcG9uc2UpLiAgVGhlIHRva2VucyAnYTMnIGFuZCAnYjEnICh3aGljaCBJ
IG1lYW4gdG8gc2F5IHR3byByYW5kb20gMS1ieXRlIGxlbmd0aCB0b2tlbnMpIGFyZSBhY3RpdmUg
dW50aWwgdGhlIHJlc3BvbnNlIGlzIGluLiAgVGhlIHNlY29uZCByZXF1ZXN0IHRvIC9mb28gbWln
aHQgYXMgd2VsbCB1c2UgJ2EzJyBhcyBpdHMgdG9rZW4sIGJlY2F1c2UgdGhhdCBiZWNhbWUgZnJl
ZSB3aGVuIHRoZSByZXNwb25zZSBjYW1lIGluLiAgQnV0IG5vdGhpbmcgaXMgd3Jvbmcgd2l0aCBy
b3RhdGluZyB0aHJvdWdoIGEgbGFyZ2VyIHNldCBvZiB0b2tlbnMsIGVpdGhlci4NCg0KR3LDvMOf
ZSwgQ2Fyc3Rlbg0K


From nobody Wed Jun 17 18:39:12 2015
Return-Path: <weigengyu@bupt.edu.cn>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 303EC1A9116 for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 18:39:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.771
X-Spam-Level: *
X-Spam-Status: No, score=1.771 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_FONT_FACE_BAD=0.981, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0gjEC0KhK6vg for <core@ietfa.amsl.com>; Wed, 17 Jun 2015 18:39:08 -0700 (PDT)
Received: from mx1.bupt.edu.cn (mx1.bupt.edu.cn [211.68.68.2]) by ietfa.amsl.com (Postfix) with ESMTP id 96C051A9114 for <core@ietf.org>; Wed, 17 Jun 2015 18:39:06 -0700 (PDT)
Received: from mx1.bupt.edu.cn (unknown [127.0.0.1]) by mx1.bupt.edu.cn (AnyMacro(G7)) with SMTP id D8A4319F3AE for <core@ietf.org>; Thu, 18 Jun 2015 09:39:03 +0800 (HKT)
Received: from WeiGengyuPC (unknown [10.103.240.2]) by mx1.bupt.edu.cn (AnyMacro(G7)) with ESMTPA id 54BC719F390; Thu, 18 Jun 2015 09:39:03 +0800 (HKT)
Message-ID: <2002C406FD8F481388F271DF00872127@WeiGengyuPC>
From: "weigengyu" <weigengyu@bupt.edu.cn>
To: "Carey, Timothy \(Timothy\)" <timothy.carey@alcatel-lucent.com>
References: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com>
In-Reply-To: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com>
Date: Thu, 18 Jun 2015 09:38:54 +0800
Organization: BUPT
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_001C_01D0A9AA.97C5EE10"
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/Sj86ksn_dwKTiMQeKe-wj9O9Xr0>
Cc: core@ietf.org
Subject: Re: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jun 2015 01:39:10 -0000

ÕâÊÇÒ»·â MIME ¸ñÊ½µÄ¶à·½ÓÊ¼þ¡£

------=_NextPart_000_001C_01D0A9AA.97C5EE10
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Tim,=20

After reading your dradt, there are questions to be clarified.

> This draft discusses the need for a consistent messaging layer that
   can be used but the transport protocols as they adapt to the CoAP
   Request/Response layer.=20

Is it an intention to define a new message layer which consists an =
transport-independent part and transport-spesific parts?

>3.  Standard Primitives vs Transport Specific Adaptation
>   If a standard set of primitives were used, each Transport protocol
   would document how to implement the CON and NON messages with ACK and
   RST responses.
 What is the =E2=80=9Ceach Transport protocol=E2=80=9D? Is it the =
adaption layer or transport layer (in Figure 3: CoAP Layers - Standard =
Primitives)? Regards,
Gengyu WEI
Network Technology Center
School of Computer=20
Beijing University of Posts and Telecommunications

From: Carey, Timothy (Timothy)=20
Sent: Thursday, June 18, 2015 2:16 AM
To: core@ietf.org=20
Subject: =
[core]https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-tr=
ans-adapt-00.txt

Team,

=20

I submitted a draft that collects my thoughts as well as several =
discussions we have had on the email reflector regarding the use of a =
standardized message layer. In addition several comments regarding =
tschofenig-core-coap-tcp-tls that we have been discussing over the last =
several months.=20

=20

Here is the link to the document

https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-ad=
apt-00.txt

=20

I would be happy to discuss this on the list and in Prague.

=20

BR,

Tim



-------------------------------------------------------------------------=
-------
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

------=_NextPart_000_001C_01D0A9AA.97C5EE10
Content-Type: text/html;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<HTML xmlns=3D"http://www.w3.org/TR/REC-html40" xmlns:v =3D=20
"urn:schemas-microsoft-com:vml" xmlns:o =3D=20
"urn:schemas-microsoft-com:office:office" xmlns:w =3D=20
"urn:schemas-microsoft-com:office:word" xmlns:m =3D=20
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD>
<META content=3D"text/html; charset=3Dus-ascii" =
http-equiv=3DContent-Type>
<META name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<STYLE><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"Trebuchet MS";
	panose-1:2 11 6 3 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Trebuchet MS","sans-serif";
	color:windowtext;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New";}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></STYLE>
</HEAD>
<BODY lang=3DEN-US dir=3Dltr link=3Dblue vLink=3Dpurple>
<DIV dir=3Dltr>
<DIV style=3D"FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>Hi Tim, </DIV>
<DIV>&nbsp;</DIV>
<DIV>After reading your dradt, there are questions to be =
clarified.</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt; <FONT face=3D""><FONT style=3D"FONT-SIZE: 12pt">This draft =
discusses the=20
need for a consistent messaging layer that<BR>&nbsp;&nbsp; can be used =
but the=20
transport protocols as they adapt to the CoAP<BR>&nbsp;&nbsp; =
Request/Response=20
layer. </FONT></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>Is it an intention to define a new message layer which consists an=20
transport-independent part and transport-spesific parts?</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt;3.&nbsp; Standard Primitives vs Transport Specific =
Adaptation</DIV>
<DIV>&gt;&nbsp;&nbsp; If a standard set of primitives were used, each =
Transport=20
protocol</DIV>
<DIV>&nbsp;&nbsp; would document how to implement the CON and NON =
messages with=20
ACK and</DIV>
<DIV>&nbsp;&nbsp; RST responses.</DIV><PRE style=3D"WORD-WRAP: =
break-word; WHITE-SPACE: pre-wrap; WORD-SPACING: 0px; TEXT-TRANSFORM: =
none; COLOR: ; LETTER-SPACING: normal; LINE-HEIGHT: normal; TEXT-INDENT: =
0px; -webkit-text-stroke-width: 0px">&nbsp;</PRE><PRE =
style=3D"WORD-WRAP: break-word; WHITE-SPACE: pre-wrap; WORD-SPACING: =
0px; TEXT-TRANSFORM: none; COLOR: ; LETTER-SPACING: normal; LINE-HEIGHT: =
normal; TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px">What is the =
=E2=80=9C<FONT face=3DCalibri><FONT style=3D"FONT-SIZE: 12pt">each =
Transport protocol</FONT></FONT>=E2=80=9D? </PRE><PRE =
style=3D"WORD-WRAP: break-word; WHITE-SPACE: pre-wrap; WORD-SPACING: =
0px; TEXT-TRANSFORM: none; COLOR: ; LETTER-SPACING: normal; LINE-HEIGHT: =
normal; TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px">Is it the =
adaption layer or transport layer (in Figure 3: CoAP Layers - Standard =
Primitives)?</PRE><PRE style=3D"WORD-WRAP: break-word; WHITE-SPACE: =
pre-wrap; WORD-SPACING: 0px; TEXT-TRANSFORM: none; COLOR: ; =
LETTER-SPACING: normal; LINE-HEIGHT: normal; TEXT-INDENT: 0px; =
-webkit-text-stroke-width: 0px">&nbsp;</PRE><PRE style=3D"WORD-WRAP: =
break-word; WHITE-SPACE: pre-wrap; WORD-SPACING: 0px; TEXT-TRANSFORM: =
none; COLOR: ; LETTER-SPACING: normal; LINE-HEIGHT: normal; TEXT-INDENT: =
0px; -webkit-text-stroke-width: 0px">Regards,</PRE>
<DIV>&nbsp;</DIV>
<DIV style=3D"FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: =
#000000">Gengyu=20
WEI<BR>Network Technology Center<BR>School of Computer <BR>Beijing =
University of=20
Posts and Telecommunications</DIV>
<DIV=20
style=3D'FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: =
"Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; =
DISPLAY: inline'>
<DIV style=3D"FONT: 10pt tahoma">
<DIV><FONT size=3D3 face=3DCalibri></FONT>&nbsp;</DIV>
<DIV style=3D"BACKGROUND: #f5f5f5">
<DIV style=3D"font-color: black"><B>From:</B> <A=20
title=3Dtimothy.carey@alcatel-lucent.com=20
href=3D"mailto:timothy.carey@alcatel-lucent.com">Carey, Timothy =
(Timothy)</A>=20
</DIV>
<DIV><B>Sent:</B> Thursday, June 18, 2015 2:16 AM</DIV>
<DIV><B>To:</B> <A title=3Dcore@ietf.org=20
href=3D"mailto:core@ietf.org">core@ietf.org</A> </DIV>
<DIV><B>Subject:</B>=20
[core]https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-tr=
ans-adapt-00.txt</DIV></DIV></DIV>
<DIV>&nbsp;</DIV></DIV>
<DIV=20
style=3D'FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: =
"Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; =
DISPLAY: inline'>
<DIV class=3DWordSection1>
<P class=3DMsoNormal><SPAN=20
style=3D'FONT-FAMILY: "Trebuchet =
MS","sans-serif"'>Team,<o:p></o:p></SPAN></P>
<P class=3DMsoNormal><SPAN=20
style=3D'FONT-FAMILY: "Trebuchet =
MS","sans-serif"'><o:p></o:p></SPAN>&nbsp;</P><PRE><SPAN =
style=3D'FONT-FAMILY: "Trebuchet MS","sans-serif"'>I submitted a draft =
that collects my thoughts as well as several discussions we have had on =
the email reflector regarding the use of a standardized message layer. =
In addition several comments regarding <SPAN style=3D"COLOR: =
black">tschofenig-core-coap-tcp-tls that we have been discussing over =
the last several months.<o:p></o:p></SPAN></SPAN></PRE>
<P class=3DMsoNormal><SPAN=20
style=3D'FONT-FAMILY: "Trebuchet =
MS","sans-serif"'><o:p></o:p></SPAN>&nbsp;</P>
<P class=3DMsoNormal><SPAN=20
style=3D'FONT-FAMILY: "Trebuchet =
MS","sans-serif"'><o:p></o:p></SPAN>&nbsp;</P>
<P class=3DMsoNormal><SPAN style=3D'FONT-FAMILY: "Trebuchet =
MS","sans-serif"'>Here=20
is the link to the document<o:p></o:p></SPAN></P>
<P class=3DMsoNormal><A=20
href=3D"https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-=
trans-adapt-00.txt">https://www.ietf.org/internet-drafts/draft-carey-core=
-std-msg-vs-trans-adapt-00.txt</A><o:p></o:p></P>
<P class=3DMsoNormal><o:p></o:p>&nbsp;</P>
<P class=3DMsoNormal>I would be happy to discuss this on the list and in =

Prague.<o:p></o:p></P>
<P class=3DMsoNormal><o:p></o:p>&nbsp;</P>
<P class=3DMsoNormal>BR,<o:p></o:p></P>
<P class=3DMsoNormal>Tim<SPAN=20
style=3D'FONT-FAMILY: "Trebuchet =
MS","sans-serif"'><o:p></o:p></SPAN></P></DIV>
<P>
<HR>
_______________________________________________<BR>core mailing=20
list<BR>core@ietf.org<BR>https://www.ietf.org/mailman/listinfo/core<BR></=
DIV></DIV></DIV></BODY></HTML>

------=_NextPart_000_001C_01D0A9AA.97C5EE10--



From nobody Thu Jun 18 15:07:19 2015
Return-Path: <timothy.carey@alcatel-lucent.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B71291A8952 for <core@ietfa.amsl.com>; Thu, 18 Jun 2015 15:07:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level: 
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id u8UHe7jiwQ3H for <core@ietfa.amsl.com>; Thu, 18 Jun 2015 15:07:15 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-01.alcatel-lucent.com [135.245.210.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D9C051A88D1 for <core@ietf.org>; Thu, 18 Jun 2015 15:07:14 -0700 (PDT)
Received: from us70tusmtp2.zam.alcatel-lucent.com (unknown [135.5.2.64]) by Websense Email Security Gateway with ESMTPS id D9E0436C1A7F1; Thu, 18 Jun 2015 22:07:08 +0000 (GMT)
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70tusmtp2.zam.alcatel-lucent.com (GMO) with ESMTP id t5IM77S9013053 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Thu, 18 Jun 2015 22:07:10 GMT
Received: from US70UWXCHMBA05.zam.alcatel-lucent.com ([169.254.10.167]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0195.001; Thu, 18 Jun 2015 18:07:06 -0400
From: "Carey, Timothy (Timothy)" <timothy.carey@alcatel-lucent.com>
To: weigengyu <weigengyu@bupt.edu.cn>
Thread-Topic: [core]https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
Thread-Index: AdCpKctdQDS+YPvOSi6jkBvaiD+NNwAX0TEAACJWJ6A=
Date: Thu, 18 Jun 2015 22:07:05 +0000
Message-ID: <9966516C6EB5FC4381E05BF80AA55F77BA283075@US70UWXCHMBA05.zam.alcatel-lucent.com>
References: <9966516C6EB5FC4381E05BF80AA55F77BA281C0D@US70UWXCHMBA05.zam.alcatel-lucent.com> <2002C406FD8F481388F271DF00872127@WeiGengyuPC>
In-Reply-To: <2002C406FD8F481388F271DF00872127@WeiGengyuPC>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.18]
Content-Type: multipart/alternative; boundary="_000_9966516C6EB5FC4381E05BF80AA55F77BA283075US70UWXCHMBA05z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/ClGEh1Arktg9SSwE824OiTEkjaE>
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] https://www.ietf.org/internet-drafts/draft-carey-core-std-msg-vs-trans-adapt-00.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jun 2015 22:07:17 -0000

--_000_9966516C6EB5FC4381E05BF80AA55F77BA283075US70UWXCHMBA05z_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

R2VuZ3l1LA0KDQpNeSBob3BlIHdhcyB0aGF0IHdlIGNvdWxkIHNpbXBseSByZXVzZSB0aGUgbWVz
c2FnZSBsYXllciBhbHJlYWR5IGRlZmluZWQgZm9yIFVEUC9TTVMuIFRoZSBvbmx5IG5ldyDigJxw
cmltaXRpdmXigJ0gSSBjb3VsZCBldmVuIGVudmlzaW9uIHdvdWxkIGJlIGZvciB0aGUgVGltZW91
dOKApg0KDQpFYWNoIHRyYW5zcG9ydCBwcm90b2NvbCBpcyBVRFAsIFNNUywgVENQLCBXZWJzb2Nr
ZXRzLiBXZSB3b3VsZCBoYXZlIHRvIGRlY2lkZSBpZiB3ZSB3YW50IHRoZSBzYW1lIG1lc3NhZ2Ug
bGF5ZXIgaW50ZXJmYWNlIGJldHdlZW4gdGhlIHRyYW5zcG9ydCBwcm90b2NvbCBhbmQgdGhlIHJl
cXVlc3QvcmVzcG9uc2UgbGF5ZXIgb3IgaWYgd2Ugd2FudCBlYWNoIHRyYW5zcG9ydCB0byBzcGVj
aWZ5IGhvdyB0aGV5IHdvdWxkIGFkYXB0IHRvIHRoZSBSZXF1ZXN0L1Jlc3BvbnNlIGxheWVyLg0K
DQpJZiB3ZSBjaG9vc2UgdGhlIHNhbWUgbWVzc2FnZSBsYXllciDigJMgdGhlbiBlYWNoIHRyYW5z
cG9ydCBwcm90b2NvbCB3b3VsZCBzcGVjaWZ5IGhvdyBpdCBhZGFwdHMgdG8gdGhlIG1lc3NhZ2Ug
bGF5ZXIgcHJpbWl0aXZlcy4NCg0KRG9lcyB0aGlzIGhlbHA/DQoNCkJSLA0KVGltDQpGcm9tOiB3
ZWlnZW5neXUgW21haWx0bzp3ZWlnZW5neXVAYnVwdC5lZHUuY25dDQpTZW50OiBXZWRuZXNkYXks
IEp1bmUgMTcsIDIwMTUgODozOSBQTQ0KVG86IENhcmV5LCBUaW1vdGh5IChUaW1vdGh5KQ0KQ2M6
IGNvcmVAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbY29yZV1odHRwczovL3d3dy5pZXRmLm9yZy9p
bnRlcm5ldC1kcmFmdHMvZHJhZnQtY2FyZXktY29yZS1zdGQtbXNnLXZzLXRyYW5zLWFkYXB0LTAw
LnR4dA0KDQpIaSBUaW0sDQoNCkFmdGVyIHJlYWRpbmcgeW91ciBkcmFkdCwgdGhlcmUgYXJlIHF1
ZXN0aW9ucyB0byBiZSBjbGFyaWZpZWQuDQoNCj4gVGhpcyBkcmFmdCBkaXNjdXNzZXMgdGhlIG5l
ZWQgZm9yIGEgY29uc2lzdGVudCBtZXNzYWdpbmcgbGF5ZXIgdGhhdA0KICAgY2FuIGJlIHVzZWQg
YnV0IHRoZSB0cmFuc3BvcnQgcHJvdG9jb2xzIGFzIHRoZXkgYWRhcHQgdG8gdGhlIENvQVANCiAg
IFJlcXVlc3QvUmVzcG9uc2UgbGF5ZXIuDQoNCklzIGl0IGFuIGludGVudGlvbiB0byBkZWZpbmUg
YSBuZXcgbWVzc2FnZSBsYXllciB3aGljaCBjb25zaXN0cyBhbiB0cmFuc3BvcnQtaW5kZXBlbmRl
bnQgcGFydCBhbmQgdHJhbnNwb3J0LXNwZXNpZmljIHBhcnRzPw0KDQo+My4gIFN0YW5kYXJkIFBy
aW1pdGl2ZXMgdnMgVHJhbnNwb3J0IFNwZWNpZmljIEFkYXB0YXRpb24NCj4gICBJZiBhIHN0YW5k
YXJkIHNldCBvZiBwcmltaXRpdmVzIHdlcmUgdXNlZCwgZWFjaCBUcmFuc3BvcnQgcHJvdG9jb2wN
CiAgIHdvdWxkIGRvY3VtZW50IGhvdyB0byBpbXBsZW1lbnQgdGhlIENPTiBhbmQgTk9OIG1lc3Nh
Z2VzIHdpdGggQUNLIGFuZA0KICAgUlNUIHJlc3BvbnNlcy4NCg0KDQoNCldoYXQgaXMgdGhlIOKA
nGVhY2ggVHJhbnNwb3J0IHByb3RvY29s4oCdPw0KDQpJcyBpdCB0aGUgYWRhcHRpb24gbGF5ZXIg
b3IgdHJhbnNwb3J0IGxheWVyIChpbiBGaWd1cmUgMzogQ29BUCBMYXllcnMgLSBTdGFuZGFyZCBQ
cmltaXRpdmVzKT8NCg0KDQoNClJlZ2FyZHMsDQoNCkdlbmd5dSBXRUkNCk5ldHdvcmsgVGVjaG5v
bG9neSBDZW50ZXINClNjaG9vbCBvZiBDb21wdXRlcg0KQmVpamluZyBVbml2ZXJzaXR5IG9mIFBv
c3RzIGFuZCBUZWxlY29tbXVuaWNhdGlvbnMNCg0KRnJvbTogQ2FyZXksIFRpbW90aHkgKFRpbW90
aHkpPG1haWx0bzp0aW1vdGh5LmNhcmV5QGFsY2F0ZWwtbHVjZW50LmNvbT4NClNlbnQ6IFRodXJz
ZGF5LCBKdW5lIDE4LCAyMDE1IDI6MTYgQU0NClRvOiBjb3JlQGlldGYub3JnPG1haWx0bzpjb3Jl
QGlldGYub3JnPg0KU3ViamVjdDogW2NvcmVdaHR0cHM6Ly93d3cuaWV0Zi5vcmcvaW50ZXJuZXQt
ZHJhZnRzL2RyYWZ0LWNhcmV5LWNvcmUtc3RkLW1zZy12cy10cmFucy1hZGFwdC0wMC50eHQNCg0K
VGVhbSwNCg0KDQpJIHN1Ym1pdHRlZCBhIGRyYWZ0IHRoYXQgY29sbGVjdHMgbXkgdGhvdWdodHMg
YXMgd2VsbCBhcyBzZXZlcmFsIGRpc2N1c3Npb25zIHdlIGhhdmUgaGFkIG9uIHRoZSBlbWFpbCBy
ZWZsZWN0b3IgcmVnYXJkaW5nIHRoZSB1c2Ugb2YgYSBzdGFuZGFyZGl6ZWQgbWVzc2FnZSBsYXll
ci4gSW4gYWRkaXRpb24gc2V2ZXJhbCBjb21tZW50cyByZWdhcmRpbmcgdHNjaG9mZW5pZy1jb3Jl
LWNvYXAtdGNwLXRscyB0aGF0IHdlIGhhdmUgYmVlbiBkaXNjdXNzaW5nIG92ZXIgdGhlIGxhc3Qg
c2V2ZXJhbCBtb250aHMuDQoNCg0KSGVyZSBpcyB0aGUgbGluayB0byB0aGUgZG9jdW1lbnQNCmh0
dHBzOi8vd3d3LmlldGYub3JnL2ludGVybmV0LWRyYWZ0cy9kcmFmdC1jYXJleS1jb3JlLXN0ZC1t
c2ctdnMtdHJhbnMtYWRhcHQtMDAudHh0DQoNCkkgd291bGQgYmUgaGFwcHkgdG8gZGlzY3VzcyB0
aGlzIG9uIHRoZSBsaXN0IGFuZCBpbiBQcmFndWUuDQoNCkJSLA0KVGltDQpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCmNvcmUgbWFpbGluZyBsaXN0DQpjb3JlQGlldGYub3JnPG1haWx0bzpjb3Jl
QGlldGYub3JnPg0KaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9jb3JlDQo=

--_000_9966516C6EB5FC4381E05BF80AA55F77BA283075US70UWXCHMBA05z_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTIgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYg
MyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIg
MTUgNSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6VGFob21hOw0K
CXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1p
bHk6IlRyZWJ1Y2hldCBNUyI7DQoJcGFub3NlLTE6MiAxMSA2IDMgMiAyIDIgMiAyIDQ7fQ0KLyog
U3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29O
b3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXpl
OjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO30NCmE6bGluaywg
c3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7
DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJs
aW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0
ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnANCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K
CW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7
DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlmIjt9DQpwcmUNCgl7bXNvLXN0
eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJIVE1MIFByZWZvcm1hdHRlZCBDaGFy
IjsNCgltYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTAu
MHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KcC5Nc29BY2V0YXRlLCBsaS5Nc29B
Y2V0YXRlLCBkaXYuTXNvQWNldGF0ZQ0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0
eWxlLWxpbms6IkJhbGxvb24gVGV4dCBDaGFyIjsNCgltYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0
b206LjAwMDFwdDsNCglmb250LXNpemU6OC4wcHQ7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNh
bnMtc2VyaWYiO30NCnNwYW4uSFRNTFByZWZvcm1hdHRlZENoYXINCgl7bXNvLXN0eWxlLW5hbWU6
IkhUTUwgUHJlZm9ybWF0dGVkIENoYXIiOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28t
c3R5bGUtbGluazoiSFRNTCBQcmVmb3JtYXR0ZWQiOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5l
dyI7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTkNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9u
dC1mYW1pbHk6IlRyZWJ1Y2hldCBNUyIsInNhbnMtc2VyaWYiOw0KCWNvbG9yOndpbmRvd3RleHQ7
fQ0Kc3Bhbi5CYWxsb29uVGV4dENoYXINCgl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCBD
aGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24g
VGV4dCI7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiO30NCnNwYW4uRW1haWxT
dHlsZTIzDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJU
cmVidWNoZXQgTVMiLCJzYW5zLXNlcmlmIjsNCgljb2xvcjojMUY0OTdEO30NCi5Nc29DaHBEZWZh
dWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0K
QHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAx
LjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24x
O30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRz
IHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtp
ZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1h
cCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRp
Zl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVy
cGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtjb2xvcjpibGFjayI+R2VuZ3l1LDxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTIuMHB0O2NvbG9yOmJsYWNrIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtjb2xvcjpibGFj
ayI+TXkgaG9wZSB3YXMgdGhhdCB3ZSBjb3VsZCBzaW1wbHkgcmV1c2UgdGhlIG1lc3NhZ2UgbGF5
ZXIgYWxyZWFkeSBkZWZpbmVkIGZvciBVRFAvU01TLiBUaGUgb25seSBuZXcg4oCccHJpbWl0aXZl
4oCdIEkgY291bGQgZXZlbiBlbnZpc2lvbiB3b3VsZCBiZSBmb3IgdGhlIFRpbWVvdXTigKY8L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RyZWJ1Y2hldCBNUyZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUcmVi
dWNoZXQgTVMmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1mYW1pbHk6JnF1b3Q7VHJlYnVjaGV0IE1TJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7Y29sb3I6IzFGNDk3RCI+RWFjaCB0cmFuc3BvcnQgcHJvdG9jb2wgaXMgVURQLCBTTVMs
IFRDUCwgV2Vic29ja2V0cy4gV2Ugd291bGQgaGF2ZSB0byBkZWNpZGUgaWYgd2Ugd2FudCB0aGUg
c2FtZSBtZXNzYWdlIGxheWVyIGludGVyZmFjZSBiZXR3ZWVuIHRoZSB0cmFuc3BvcnQgcHJvdG9j
b2wgYW5kIHRoZSByZXF1ZXN0L3Jlc3BvbnNlDQogbGF5ZXIgb3IgaWYgd2Ugd2FudCBlYWNoIHRy
YW5zcG9ydCB0byBzcGVjaWZ5IGhvdyB0aGV5IHdvdWxkIGFkYXB0IHRvIHRoZSBSZXF1ZXN0L1Jl
c3BvbnNlIGxheWVyLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUcmVidWNoZXQgTVMmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7
VHJlYnVjaGV0IE1TJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+
SWYgd2UgY2hvb3NlIHRoZSBzYW1lIG1lc3NhZ2UgbGF5ZXIg4oCTIHRoZW4gZWFjaCB0cmFuc3Bv
cnQgcHJvdG9jb2wgd291bGQgc3BlY2lmeSBob3cgaXQgYWRhcHRzIHRvIHRoZSBtZXNzYWdlIGxh
eWVyIHByaW1pdGl2ZXMuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RyZWJ1Y2hldCBNUyZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtUcmVidWNoZXQgTVMmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij5Eb2VzIHRoaXMgaGVscD88bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VHJlYnVjaGV0IE1TJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZx
dW90O1RyZWJ1Y2hldCBNUyZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPkJSLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUcmVidWNoZXQgTVMmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5UaW08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2
Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0
O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90OyI+IHdlaWdlbmd5dSBbbWFpbHRvOndlaWdlbmd5dUBidXB0LmVkdS5jbl0NCjxi
cj4NCjxiPlNlbnQ6PC9iPiBXZWRuZXNkYXksIEp1bmUgMTcsIDIwMTUgODozOSBQTTxicj4NCjxi
PlRvOjwvYj4gQ2FyZXksIFRpbW90aHkgKFRpbW90aHkpPGJyPg0KPGI+Q2M6PC9iPiBjb3JlQGll
dGYub3JnPGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbY29yZV1odHRwczovL3d3dy5pZXRmLm9y
Zy9pbnRlcm5ldC1kcmFmdHMvZHJhZnQtY2FyZXktY29yZS1zdGQtbXNnLXZzLXRyYW5zLWFkYXB0
LTAwLnR4dDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0O2NvbG9yOmJs
YWNrIj5IaSBUaW0sIDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNr
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtjb2xvcjpibGFjayI+QWZ0
ZXIgcmVhZGluZyB5b3VyIGRyYWR0LCB0aGVyZSBhcmUgcXVlc3Rpb25zIHRvIGJlIGNsYXJpZmll
ZC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtjb2xvcjpibGFjayI+Jm5ic3A7PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Y29sb3I6YmxhY2siPiZndDsgVGhpcyBkcmFm
dCBkaXNjdXNzZXMgdGhlIG5lZWQgZm9yIGEgY29uc2lzdGVudCBtZXNzYWdpbmcgbGF5ZXIgdGhh
dDxicj4NCiZuYnNwOyZuYnNwOyBjYW4gYmUgdXNlZCBidXQgdGhlIHRyYW5zcG9ydCBwcm90b2Nv
bHMgYXMgdGhleSBhZGFwdCB0byB0aGUgQ29BUDxicj4NCiZuYnNwOyZuYnNwOyBSZXF1ZXN0L1Jl
c3BvbnNlIGxheWVyLiA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtjb2xvcjpibGFj
ayI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Y29sb3I6YmxhY2siPklz
IGl0IGFuIGludGVudGlvbiB0byBkZWZpbmUgYSBuZXcgbWVzc2FnZSBsYXllciB3aGljaCBjb25z
aXN0cyBhbiB0cmFuc3BvcnQtaW5kZXBlbmRlbnQgcGFydCBhbmQgdHJhbnNwb3J0LXNwZXNpZmlj
IHBhcnRzPzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNrIj4mbmJz
cDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtjb2xvcjpibGFjayI+Jmd0OzMuJm5i
c3A7IFN0YW5kYXJkIFByaW1pdGl2ZXMgdnMgVHJhbnNwb3J0IFNwZWNpZmljIEFkYXB0YXRpb248
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtjb2xvcjpibGFjayI+Jmd0OyZuYnNwOyZu
YnNwOyBJZiBhIHN0YW5kYXJkIHNldCBvZiBwcmltaXRpdmVzIHdlcmUgdXNlZCwgZWFjaCBUcmFu
c3BvcnQgcHJvdG9jb2w8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEyLjBwdDtjb2xvcjpibGFj
ayI+Jm5ic3A7Jm5ic3A7IHdvdWxkIGRvY3VtZW50IGhvdyB0byBpbXBsZW1lbnQgdGhlIENPTiBh
bmQgTk9OIG1lc3NhZ2VzIHdpdGggQUNLIGFuZDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIu
MHB0O2NvbG9yOmJsYWNrIj4mbmJzcDsmbmJzcDsgUlNUIHJlc3BvbnNlcy48bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8L2Rpdj4NCjxwcmUgc3R5bGU9IldPUkQtV1JBUDogYnJlYWstd29yZDt3aGl0
ZS1zcGFjZTpwcmUtd3JhcDstd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFj
aW5nOjBweCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bh
bj48L3ByZT4NCjxwcmUgc3R5bGU9IldPUkQtV1JBUDogYnJlYWstd29yZDt3aGl0ZS1zcGFjZTpw
cmUtd3JhcDstd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+
PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5XaGF0IGlzIHRoZSDigJw8L3NwYW4+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj5lYWNoIFRyYW5zcG9ydCBwcm90b2NvbDwv
c3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPuKAnT8gPG86cD48L286cD48L3NwYW4+PC9w
cmU+DQo8cHJlIHN0eWxlPSJXT1JELVdSQVA6IGJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdy
YXA7LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPjxzcGFu
IHN0eWxlPSJjb2xvcjpibGFjayI+SXMgaXQgdGhlIGFkYXB0aW9uIGxheWVyIG9yIHRyYW5zcG9y
dCBsYXllciAoaW4gRmlndXJlIDM6IENvQVAgTGF5ZXJzIC0gU3RhbmRhcmQgUHJpbWl0aXZlcyk/
PG86cD48L286cD48L3NwYW4+PC9wcmU+DQo8cHJlIHN0eWxlPSJXT1JELVdSQVA6IGJyZWFrLXdv
cmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXA7LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dv
cmQtc3BhY2luZzowcHgiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286
cD48L3NwYW4+PC9wcmU+DQo8cHJlIHN0eWxlPSJXT1JELVdSQVA6IGJyZWFrLXdvcmQ7d2hpdGUt
c3BhY2U6cHJlLXdyYXA7LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2lu
ZzowcHgiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+UmVnYXJkcyw8bzpwPjwvbzpwPjwvc3Bh
bj48L3ByZT4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEyLjBwdDtjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
Mi4wcHQ7Y29sb3I6YmxhY2siPkdlbmd5dSBXRUk8YnI+DQpOZXR3b3JrIFRlY2hub2xvZ3kgQ2Vu
dGVyPGJyPg0KU2Nob29sIG9mIENvbXB1dGVyIDxicj4NCkJlaWppbmcgVW5pdmVyc2l0eSBvZiBQ
b3N0cyBhbmQgVGVsZWNvbW11bmljYXRpb25zPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjpibGFjayI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJiYWNrZ3Jv
dW5kOndoaXRlc21va2UiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOmJsYWNr
Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6YmxhY2si
Pg0KPGEgaHJlZj0ibWFpbHRvOnRpbW90aHkuY2FyZXlAYWxjYXRlbC1sdWNlbnQuY29tIiB0aXRs
ZT0idGltb3RoeS5jYXJleUBhbGNhdGVsLWx1Y2VudC5jb20iPg0KQ2FyZXksIFRpbW90aHkgKFRp
bW90aHkpPC9hPiA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0iYmFja2dyb3VuZDp3aGl0ZXNtb2tlIj48Yj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Oztjb2xvcjpibGFjayI+U2VudDo8L3NwYW4+PC9iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj4gVGh1cnNkYXksIEp1bmUgMTgsIDIwMTUgMjox
NiBBTTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJiYWNrZ3JvdW5kOndoaXRlc21va2UiPjxiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj5Ubzo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7O2NvbG9yOmJsYWNrIj4NCjxhIGhyZWY9Im1haWx0bzpjb3JlQGlldGYub3JnIiB0aXRs
ZT0iY29yZUBpZXRmLm9yZyI+Y29yZUBpZXRmLm9yZzwvYT4gPG86cD48L286cD48L3NwYW4+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImJhY2tncm91bmQ6
d2hpdGVzbW9rZSI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPlN1
YmplY3Q6PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWls
eTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjpibGFjayI+
IFtjb3JlXTxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL2ludGVybmV0LWRyYWZ0cy9kcmFm
dC1jYXJleS1jb3JlLXN0ZC1tc2ctdnMtdHJhbnMtYWRhcHQtMDAudHh0Ij5odHRwczovL3d3dy5p
ZXRmLm9yZy9pbnRlcm5ldC1kcmFmdHMvZHJhZnQtY2FyZXktY29yZS1zdGQtbXNnLXZzLXRyYW5z
LWFkYXB0LTAwLnR4dDwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMi4wcHQ7Y29sb3I6YmxhY2siPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
ZmFtaWx5OiZxdW90O1RyZWJ1Y2hldCBNUyZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2Nv
bG9yOmJsYWNrIj5UZWFtLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJm
b250LWZhbWlseTomcXVvdDtUcmVidWNoZXQgTVMmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjpibGFjayI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHByZT48c3BhbiBzdHlsZT0i
Zm9udC1mYW1pbHk6JnF1b3Q7VHJlYnVjaGV0IE1TJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7Y29sb3I6YmxhY2siPkkgc3VibWl0dGVkIGEgZHJhZnQgdGhhdCBjb2xsZWN0cyBteSB0aG91
Z2h0cyBhcyB3ZWxsIGFzIHNldmVyYWwgZGlzY3Vzc2lvbnMgd2UgaGF2ZSBoYWQgb24gdGhlIGVt
YWlsIHJlZmxlY3RvciByZWdhcmRpbmcgdGhlIHVzZSBvZiBhIHN0YW5kYXJkaXplZCBtZXNzYWdl
IGxheWVyLiBJbiBhZGRpdGlvbiBzZXZlcmFsIGNvbW1lbnRzIHJlZ2FyZGluZyB0c2Nob2Zlbmln
LWNvcmUtY29hcC10Y3AtdGxzIHRoYXQgd2UgaGF2ZSBiZWVuIGRpc2N1c3Npbmcgb3ZlciB0aGUg
bGFzdCBzZXZlcmFsIG1vbnRocy48bzpwPjwvbzpwPjwvc3Bhbj48L3ByZT4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PC9zcGFuPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtUcmVidWNoZXQgTVMmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjpibGFjayI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PHNwYW4gc3R5
bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RyZWJ1Y2hldCBNUyZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7O2NvbG9yOmJsYWNrIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VHJlYnVjaGV0IE1TJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPkhlcmUgaXMgdGhlIGxpbmsgdG8g
dGhlIGRvY3VtZW50PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj48YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9p
bnRlcm5ldC1kcmFmdHMvZHJhZnQtY2FyZXktY29yZS1zdGQtbXNnLXZzLXRyYW5zLWFkYXB0LTAw
LnR4dCI+aHR0cHM6Ly93d3cuaWV0Zi5vcmcvaW50ZXJuZXQtZHJhZnRzL2RyYWZ0LWNhcmV5LWNv
cmUtc3RkLW1zZy12cy10cmFucy1hZGFwdC0wMC50eHQ8L2E+PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Y29sb3I6YmxhY2siPkkgd291bGQgYmUgaGFwcHkgdG8gZGlzY3VzcyB0aGlzIG9uIHRoZSBsaXN0
IGFuZCBpbiBQcmFndWUuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPkJSLDxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xv
cjpibGFjayI+VGltPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUcmVidWNo
ZXQgTVMmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjpibGFjayI+PG86cD48L286
cD48L3NwYW4+PC9wPg0KPGRpdiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0iY2VudGVyIiBzdHls
ZT0idGV4dC1hbGlnbjpjZW50ZXIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuMHB0O2NvbG9y
OmJsYWNrIj4NCjxociBzaXplPSIyIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+DQo8L3Nw
YW4+PC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEy
LjBwdDtjb2xvcjpibGFjayI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX188YnI+DQpjb3JlIG1haWxpbmcgbGlzdDxicj4NCjxhIGhyZWY9Im1haWx0bzpjb3Jl
QGlldGYub3JnIj5jb3JlQGlldGYub3JnPC9hPjxicj4NCjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmll
dGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZSI+aHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1h
bi9saXN0aW5mby9jb3JlPC9hPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_9966516C6EB5FC4381E05BF80AA55F77BA283075US70UWXCHMBA05z_--


From nobody Fri Jun 19 17:12:55 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CEBFD1A9045; Fri, 19 Jun 2015 17:12:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wjdzfq8U-Pec; Fri, 19 Jun 2015 17:12:49 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6BAA61A9076; Fri, 19 Jun 2015 17:12:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::b]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5K0Cjhh001196; Sat, 20 Jun 2015 02:12:45 +0200 (CEST)
Received: from alma.local (p5DC7EA60.dip0.t-ipconnect.de [93.199.234.96]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mCyBP02qJz99ST; Sat, 20 Jun 2015 02:12:44 +0200 (CEST)
Message-ID: <5584AFFA.7030507@tzi.org>
Date: Sat, 20 Jun 2015 02:12:42 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: dtls-iot@ietf.org, core@ietf.org, ace@ietf.org, cose@ietf.org, t2trg@irtf.org
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/nM1lhpkQA-RMrJT4FxPx7hUJ5dw>
Subject: [core] Constrained Node/Network Cluster @ IETF93, early draft version
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 20 Jun 2015 00:12:52 -0000

A first draft version of the IETF93 agenda is out.
** THIS IS GOING TO CHANGE ** for conflict resolution,
so please don't make travel arrangements based on it.

Here is my usual eclectic condensed agenda built from that.
(Bye, bye, appsawg.  lwig over roll is interesting; at least we do
have a roll meeting at all.)
Note that the t2trg meeting on Monday is a "summary" meeting for those
who haven't been able to join during the weekend (conflicts with
Hackathon, ICNRG, etc.)

All times are CEST (UTC+0200) (the browser timezone function appears
to have vanished from https://datatracker.ietf.org/meeting/agenda-utc,
but maybe we can reinstate that for those who want to listen from
remote).

Sorry for the duplicate posting, the IETF mail system does not allow
sending to all 9 mailing lists at the same time.

GrÃ¼ÃŸe, Carsten

SATURDAY, July 18, 2015

1000-1800  Session I
(TBD)   	IRTF*** t2trg   Proposed Thing-to-thing Research Group
0900-2100  IETF Hackathon - Chez Louis

SUNDAY, July 19, 2015

0900-1600  Session II
(TBD)   	IRTF*** t2trg   Proposed Thing-to-thing Research Group
1000-1800  IETF Hackathon - Chez Louis
1600-1700  Newcomers' Meet and Greet (open to Newcomers and WG chairs
only) - Garden Terrace
1700-1900  Welcome Reception - Grand Hilton Ballroom

MONDAY, July 20, 2015

0900-1130  Morning Session I
Grand Hilton BR	ART	appsawg	Applications Area Working Group WG
Karlin I/II	OPS	anima	Autonomic Networking Integrated Model and Approach WG
Berlin/Brussels	SEC ***	cose	CBOR Object Signing and Encryption WG
Congress H II	TSV	rmcat	RTP Media Congestion Avoidance Techniques WG

1300-1500  Afternoon Session I
Congress H III	INT	6man	IPv6 Maintenance WG
Grand Hilton BR	RTG	detnet	Deterministic Networking BOF

1520-1720  Afternoon Session II
Berlin/Brussels	IRTF***	t2trg	Proposed Thing-to-Thing Research Group
Congress H III	TSV	tcpinc	TCP Increased Security WG

1740-1840  Afternoon Session III
Congress H II	INT ***	6lo	IPv6 over Networks of Resource-constrained
Nodes WG
Karlin I/II	SEC	httpauth	Hypertext Transfer Protocol Authentication WG

1850-1950  Afternoon Session IV
Congress H I	INT	intarea	Internet Area Working Group WG

TUESDAY, July 21, 2015

1300-1500  Afternoon Session I
Karlin I/II	ART	httpbis	Hypertext Transfer Protocol WG
Congress H II	INT ***	6lo	IPv6 over Networks of Resource-constrained
Nodes WG
Grand Hilton BR	OPS	v6ops	IPv6 Operations WG

1520-1720  Afternoon Session II
Karlin I/II	ART ***	core	Constrained RESTful Environments WG
Congress H II	RTG	rtgarea	Routing Area Open Meeting
Congress H III	SEC	tls	Transport Layer Security WG

1740-1840  Afternoon Session III
Congress H III	ART	uta	Using TLS in Applications WG
Berlin/Brussels	INT ***	lwig	Light-Weight Implementation Guidance WG
Congress H I	RTG ***	roll	Routing Over Low power and Lossy networks WG

WEDNESDAY, July 22, 2015

0900-1130  Morning Session I
Athens/Barcel.	INT	dnssd	Extensions for Scalable DNS Service Discovery  WG
Karlin I/II	SEC ***	ace	Authentication and Authorization for Constrained
Environments WG
Grand Hilton BR	SEC	tls	Transport Layer Security WG

1300-1530  Afternoon Session I
Grand Hilton BR	INT	homenet	Home Networking WG
Berlin/Brussels	RTG	bier	Bit Indexed Explicit Replication WG

1740-1940  Afternoon Session III
Athens/Barcel.	SEC	oauth	Web Authorization Protocol WG
Congress H III	TSV	tsvwg	Transport Area Working Group WG

THURSDAY, July 23, 2015

1300-1500  Afternoon Session I
Congress H II	SEC	saag	Security Area Open Meeting
Karlin I/II	TSV	taps	Transport Services WG

1520-1720  Afternoon Session II
Athens/Barcel.	INT ***	6tisch	IPv6 over the TSCH mode of IEEE 802.15.4e WG
Congress H III	SEC	acme	Automated Certificate Management Environment WG
Grand Hilton BR	TSV	tsvwg	Transport Area Working Group WG

1740-1910  Afternoon Session III
Athens/Barcel.	ART	webpush	Web-Based Push Notifications WG
Karlin I/II	OPS	anima	Autonomic Networking Integrated Model and Approach WG
Grand Hilton BR	TSV	tsvarea	Transport Area Open Meeting

FRIDAY, July 24, 2015

0900-1130  Morning Session I
Grand Hilton BR	OPS	v6ops	IPv6 Operations WG
Karlin I/II	SEC	openpgp	Open Specification for Pretty Good Privacy WG

1150-1320  Afternoon Session I
Karlin I/II	ART ***	core	Constrained RESTful Environments WG
Congress H I	SEC	tokbind	Token Binding WG


From nobody Mon Jun 22 00:35:56 2015
Return-Path: <internet-drafts@ietf.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A23F31B2DAD; Mon, 22 Jun 2015 00:35:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.001
X-Spam-Level: 
X-Spam-Status: No, score=-0.001 tagged_above=-999 required=5 tests=[BAYES_40=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7zXzQHZlOkkm; Mon, 22 Jun 2015 00:35:52 -0700 (PDT)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 104591B2DA6; Mon, 22 Jun 2015 00:35:52 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.0.3.p3
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20150622073552.7363.22969.idtracker@ietfa.amsl.com>
Date: Mon, 22 Jun 2015 00:35:52 -0700
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/B3wpCgRbqaUjjfdGPXWo6PQHS6s>
Cc: core@ietf.org
Subject: [core] I-D Action: draft-ietf-core-resource-directory-03.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Jun 2015 07:35:53 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
 This draft is a work item of the Constrained RESTful Environments Working Group of the IETF.

        Title           : CoRE Resource Directory
        Authors         : Zach Shelby
                          Michael Koster
                          Carsten Bormann
                          Peter van der Stok
	Filename        : draft-ietf-core-resource-directory-03.txt
	Pages           : 49
	Date            : 2015-06-22

Abstract:
   In many M2M applications, direct discovery of resources is not
   practical due to sleeping nodes, disperse networks, or networks where
   multicast traffic is inefficient.  These problems can be solved by
   employing an entity called a Resource Directory (RD), which hosts
   descriptions of resources held on other servers, allowing lookups to
   be performed for those resources.  This document specifies the web
   interfaces that a Resource Directory supports in order for web
   servers to discover the RD and to register, maintain, lookup and
   remove resources descriptions.  Furthermore, new link attributes
   useful in conjunction with an RD are defined.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-core-resource-directory/

There's also a htmlized version available at:
https://tools.ietf.org/html/draft-ietf-core-resource-directory-03

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-core-resource-directory-03


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Tue Jun 23 12:41:36 2015
Return-Path: <c.amsuess@energyharvesting.at>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 03C271A6FBB for <core@ietfa.amsl.com>; Tue, 23 Jun 2015 12:41:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.1
X-Spam-Level: *
X-Spam-Status: No, score=1.1 tagged_above=-999 required=5 tests=[BAYES_50=0.8,  MIME_8BIT_HEADER=0.3] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jd8XDcp4LumL for <core@ietfa.amsl.com>; Tue, 23 Jun 2015 12:41:33 -0700 (PDT)
Received: from prometheus.amsuess.com (prometheus.amsuess.com [IPv6:2a01:4f8:190:3064::2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6732C1A6F3B for <core@ietf.org>; Tue, 23 Jun 2015 12:41:33 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com (095129206250.cust.akis.net [95.129.206.250]) by prometheus.amsuess.com (Postfix) with ESMTPS id 330A3444F1 for <core@ietf.org>; Tue, 23 Jun 2015 21:41:30 +0200 (CEST)
Received: from poseidon-mailbox.amsuess.com (poseidon-mailbox.amsuess.com [10.13.13.231]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id EE4DB41 for <core@ietf.org>; Tue, 23 Jun 2015 21:41:27 +0200 (CEST)
Received: from hephaistos.amsuess.com (hermes.amsuess.com [10.13.13.254]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id 9F357CF for <core@ietf.org>; Tue, 23 Jun 2015 21:41:27 +0200 (CEST)
Received: (nullmailer pid 2751 invoked by uid 1000); Tue, 23 Jun 2015 19:41:24 -0000
Date: Tue, 23 Jun 2015 21:41:24 +0200
From: Christian =?iso-8859-1?Q?Ams=FCss?= <c.amsuess@energyharvesting.at>
To: core@ietf.org
Message-ID: <20150623194123.GA30062@hephaistos.amsuess.com>
References: <20150622073552.7363.22969.idtracker@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="i9LlY+UWpKt15+FH"
Content-Disposition: inline
In-Reply-To: <20150622073552.7363.22969.idtracker@ietfa.amsl.com>
User-Agent: Mutt/1.5.23 (2014-03-12)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/1ygADklZG1rCx4cSBn6Rv5Yl0NE>
Subject: Re: [core] I-D Action: draft-ietf-core-resource-directory-03.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Jun 2015 19:41:36 -0000

--i9LlY+UWpKt15+FH
Content-Type: multipart/mixed; boundary="sdtB3X0nJg68CQEu"
Content-Disposition: inline


--sdtB3X0nJg68CQEu
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello resource-directory authors,

On Mon, Jun 22, 2015 at 12:35:52AM -0700, internet-drafts@ietf.org wrote:
> A New Internet-Draft is available from the on-line Internet-Drafts direct=
ories.
>  This draft is a work item of the Constrained RESTful Environments Workin=
g Group of the IETF.

I've gone through the updated version, and found some issues that could
be fixed easily in the next update:

In Section 9.6, ins=3D"Spot" vs. ins=3D"FrontSpot" is mixed; the DNS export
later uses Spot. The looked up link format resource indicates that CoAP
listens on port 61616 on fdfd::1234, but the SRV record shows port 5678.

Section 5.2 states that `con` is an argument at registration time, and
is of `scheme://host:port` form. The example in 12.1.2, where the CT
registers with the RD, uses it as a link format parameter, and in the
form of a bare IP address. As I understand the rest of the document, the
example should instead read:

> Req: POST
>     coap://[FDFD::ABCD:0]/rd?ep=3Dlm_R2-4-015_wndw&con=3Dcoap://[FDFD::AB=
CD:1]
>    Payload:
>    </light/left>;rt=3D"light";
>      d=3D"R2-4-015"; ins=3D"lamp4444"; exp,
>    </light/middle>;rt=3D"light";
>      d=3D"R2-4-015"; ins=3D"lamp5555"; exp,
>    </light/right>;rt=3D"light";
>      d=3D"R2-4-015"; ins=3D"lamp6666"; exp

Later in 12.1.2, the POST to the newly created light/grp1 batches miss
the angular brackets around the light resources.

The con=3Dbare-ip shows again in the POST /rd-group example still in the
same section, but I don't understand that example well enough to offer a
fix.

In section 12.1.3., the same UDP ports 5678 as in 9.6 show up in the SRV
records.


I've prepared a patch to draft-ietf-core-resource-directory-xx.mkd (see
attachment), in case you agree with my suggested solutions.

Best regards
Christian Ams=FCss

--=20
Christian Ams=FCss                      | Energy Harvesting Solutions GmbH
founder, system architect             | headquarter:
mailto:c.amsuess@energyharvesting.at  | Arbeitergasse 15, A-4400 Steyr
tel:+43-664-97-90-6-39                | http://www.energyharvesting.at/
                                      | ATU68476614

--sdtB3X0nJg68CQEu
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="0001-Bugfixes-for-RD-link-parameters-DNS-ports.patch"
Content-Transfer-Encoding: quoted-printable

=46rom e9193d4db09db5089fdeea358e38ab1be20a7a9e Mon Sep 17 00:00:00 2001
=46rom: =3D?UTF-8?q?Christian=3D20Ams=3DC3=3DBCss?=3D <c.amsuess@energyharv=
esting.at>
Date: Tue, 23 Jun 2015 21:37:16 +0200
Subject: [PATCH] Bugfixes for RD (link parameters, DNS ports)

---
 draft-ietf-core-resource-directory-xx.mkd | 37 +++++++++++++--------------=
----
 1 file changed, 15 insertions(+), 22 deletions(-)

diff --git a/draft-ietf-core-resource-directory-xx.mkd b/draft-ietf-core-re=
source-directory-xx.mkd
index fe26f13..ed3b155 100644
--- a/draft-ietf-core-resource-directory-xx.mkd
+++ b/draft-ietf-core-resource-directory-xx.mkd
@@ -1445,7 +1445,7 @@ exported:
       |                                                             |
       |                                                             |
       | <-- 2.05 Content "<coap://[FDFD::1234]:61616/light/1>;exp;  |
-      |                   rt=3D"dali.light";ins=3D"FrontSpot"           |
+      |                   rt=3D"dali.light";ins=3D"Spot";               |
       |                   d=3D"office";ep=3D"node1"                     |
       |                                                             |
 ~~~~
@@ -1473,7 +1473,7 @@ _dali._udp.office.example.com      IN PTR
                           Spot._dali._udp.office.example.com
 light._sub._dali._udp.example.com  IN PTR
                           Spot._dali._udp.office.example.com
-Spot._dali._udp.office.example.com IN SRV  0 0 5678
+Spot._dali._udp.office.example.com IN SRV  0 0 61616
                           node1.office.example.com.
 Spot._dali._udp.office.example.com IN TXT
                           txtver=3D1;path=3D/light/1
@@ -1689,16 +1689,13 @@ using the Context parameter (con) to specify the in=
terface address:
=20
 ~~~~
 Req: POST
- coap://[FDFD::ABCD:0]/rd?ep=3Dlm_R2-4-015_wndw
+ coap://[FDFD::ABCD:0]/rd?ep=3Dlm_R2-4-015_wndw&con=3Dcoap://[FDFD::ABCD:1]
 Payload:
 </light/left>;rt=3D"light";
-  con=3D"FDFD::ABCD:1";
   d=3D"R2-4-015"; ins=3D"lamp4444"; exp,
 </light/middle>;rt=3D"light";
-  con=3D"FDFD::ABCD:1";
   d=3D"R2-4-015"; ins=3D"lamp5555"; exp,
 </light/right>;rt=3D"light";
-  con=3D"FDFD::ABCD:1";
   d=3D"R2-4-015"; ins=3D"lamp6666"; exp
=20
 Res: 2.01 Created
@@ -1708,16 +1705,13 @@ Location: /rd/4521
=20
=20
 ~~~~
-Req: POST coap://[FDFD::ABCD:0]/rd?ep=3Dlm_R2-4-015_door
+Req: POST coap://[FDFD::ABCD:0]/rd?ep=3Dlm_R2-4-015_door&con=3Dcoap://[FDF=
D::ABCD:2]
 Payload:
 </light/left>;rt=3D"light";
-  con=3D"FDFD::ABCD:2";
   d=3D"R2-4-015"; ins=3D"lamp1111"; exp,
 </light/middle>;rt=3D"light";
-  con=3D"FDFD::ABCD:2";
   d=3D"R2-4-015"; ins=3D"lamp2222"; exp,
 </light/right>;rt=3D"light";
-  con=3D"FDFD::ABCD:2";
   d=3D"R2-4-015"; ins=3D"lamp3333"; exp
=20
 Res: 2.01 Created
@@ -1727,10 +1721,9 @@ Location: /rd/4522
=20
=20
 ~~~~
-Req: POST coap://[FDFD::ABCD:0]/rd?ep=3Dps_R2-4-015_door
+Req: POST coap://[FDFD::ABCD:0]/rd?ep=3Dps_R2-4-015_door&con=3Dcoap://[FDF=
D::ABCD:3]
 Payload:
 </ps>;rt=3D"p-sensor";
-  con=3D"FDFD::ABCD:3";
   d=3D"R2-4-015"; ins=3D"pres1234"; exp
=20
 Res: 2.01 Created
@@ -1754,13 +1747,13 @@ below, two endpoints are updated with an additional=
 resource using the path
 ~~~~
 Req: POST
  coap://[FDFD::ABCD:1]/light/grp1
- (content-type:application/link-format)light/middle, light/left
+ (content-type:application/link-format)<light/middle>, <light/left>
=20
 Res: 2.04 Changed
=20
 Req: POST
  coap://[FDFD::ABCD:2]/light/grp1
-(content-type:application/link-format)light/right
+(content-type:application/link-format)<light/right>
=20
 Res: 2.04 Changed
 ~~~~
@@ -1876,31 +1869,31 @@ _light._udp.bc.example.com              IN PTR
                            lamp6666._light._udp.bc.example.com
 _p-sensor._udp.bc.example.com           IN PTR
                        pres12324._p-sensor._udp.bc.example.com
-lamp1111._light._udp.bc.example.com     IN SRV  0 0 5678
+lamp1111._light._udp.bc.example.com     IN SRV  0 0 5683
                               lm_R2-4-015_door.bc.example.com.
 lamp1111._light._udp.bc.example.com     IN TXT
                                      txtver=3D1;path=3D/light/left
-lamp2222._light._udp.bc.example.com     IN SRV  0 0 5678
+lamp2222._light._udp.bc.example.com     IN SRV  0 0 5683
                               lm_R2-4-015_door.bc.example.com.
 lamp2222._light._udp.bc.example.com     IN TXT
                                    txtver=3D1;path=3D/light/middle
-lamp3333._light._udp.bc.example.com     IN SRV  0 0 5678
+lamp3333._light._udp.bc.example.com     IN SRV  0 0 5683
                               lm_R2-4-015_door.bc.example.com.
 lamp3333._light._udp.bc.example.com     IN TXT
                                     txtver=3D1;path=3D/light/right
-lamp4444._light._udp.bc.example.com     IN SRV  0 0 5678
+lamp4444._light._udp.bc.example.com     IN SRV  0 0 5683
                               lm_R2-4-015_wndw.bc.example.com.
 lamp4444._light._udp.bc.example.com     IN TXT
                                      txtver=3D1;path=3D/light/left
-lamp5555._light._udp.bc.example.com     IN SRV  0 0 5678
+lamp5555._light._udp.bc.example.com     IN SRV  0 0 5683
                               lm_R2-4-015_wndw.bc.example.com.
 lamp5555._light._udp.bc.example.com     IN TXT
                                    txtver=3D1;path=3D/light/middle
-lamp6666._light._udp.bc.example.com     IN SRV  0 0 5678
+lamp6666._light._udp.bc.example.com     IN SRV  0 0 5683
                               lm_R2-4-015_wndw.bc.example.com.
 lamp6666._light._udp.bc.example.com     IN TXT
                                     txtver=3D1;path=3D/light/right
-pres1234._p-sensor._udp.bc.example.com  IN SRV  0 0 5678
+pres1234._p-sensor._udp.bc.example.com  IN SRV  0 0 5683
                               ps_R2-4-015_door.bc.example.com.
 pres1234._p-sensor._udp.bc.example.com  IN TXT
                                              txtver=3D1;path=3D/ps
@@ -1958,7 +1951,7 @@ DNS.
 grp_R2-4-015.bc.example.com.        IN AAAA            FF05::1
 _group._udp.bc.example.com          IN PTR
                             grp1234._group._udp.bc.example.com
-grp1234._group._udp.bc.example.com  IN SRV  0 0 5678
+grp1234._group._udp.bc.example.com  IN SRV  0 0 5683
                              grp_R2-4-015_door.bc.example.com.
 grp1234._group._udp.bc.example.com  IN TXT
                                      txtver=3D1;path=3D/light/grp1
--=20
2.1.4


--sdtB3X0nJg68CQEu--

--i9LlY+UWpKt15+FH
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJVibZgAAoJEDmNERLTpL3hEmsQAM2ktEbU/HGkj6bca1Bx+AuO
X2bN0kbQqI8YIDhGMiMZdXmT1YP2vmV2E4cgWhCV0sUZPHiHwEYkTtxPEbtIhWnI
ncx98QjE9FPlARrLtMFu+Shsyakl0m8WGh7KDqPAa5FUr32TcE37/JhbQaEkzO9F
tOg+PXKWCcBV1Hcq98n6MGMWRJr8vH2QnEoI4DRhXEHBNL5CBbYsgTm21KJwr+Pw
QQuqBQi1ROjw4TT2Z0NW0VbCH6W0zKofaDT2FlhSjcHSUV/xtv5GSyizXEYindVv
0DTeUw5xDXK6tGGI60PJ+ejKsN/TJY0byB3du9jYeb7glgGO7KkzeK1BVzztTW8n
dBoR/XtojQkiuJs4PXc4s1N+gFFgAsxEqe4iuJI+5eAHA9q/lfCwdgLwJ1O81KDN
+aOO+9DH8kHdh6HE+/7+4zzAPtEdV5YiS9YmAsHE+K8r0xZiW4cFG5jXowHtZUuB
T8rgmMkzCnDtg1HQiTjqZlSxuJkeonKZnd9ZQsKp62xI9/i8Rt3aT08koJx0ibVf
aPgk7nVA6+UTCqpi+QBpB8NT4v6k162O73WBIyoTwrSPucZ87VY4UZ+e7xRW+S/D
jFuWl0+w0GQhmOnHKzehr1qOkgv6GyTU+Rt4OX4MNHfD80avkdv/y6a0Ozee5CSz
vMHSIFxQKOoZS2nEk3rq
=Q5S2
-----END PGP SIGNATURE-----

--i9LlY+UWpKt15+FH--


From nobody Tue Jun 23 13:36:39 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9164A1B309C for <core@ietfa.amsl.com>; Tue, 23 Jun 2015 13:36:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.649
X-Spam-Level: 
X-Spam-Status: No, score=0.649 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HELO_EQ_DE=0.35, MIME_8BIT_HEADER=0.3] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AbsyQrhZ6lkc for <core@ietfa.amsl.com>; Tue, 23 Jun 2015 13:36:35 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 32C701B30AB for <core@ietf.org>; Tue, 23 Jun 2015 13:36:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [134.102.201.11]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5NKa97f006618; Tue, 23 Jun 2015 22:36:09 +0200 (CEST)
Received: from alma.local (p5DC7EA60.dip0.t-ipconnect.de [93.199.234.96]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mGKBc5hjxz99RT; Tue, 23 Jun 2015 22:36:08 +0200 (CEST)
Message-ID: <5589C337.1010309@tzi.org>
Date: Tue, 23 Jun 2015 22:36:07 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: =?UTF-8?B?Q2hyaXN0aWFuIEFtc8O8c3M=?= <c.amsuess@energyharvesting.at>
References: <20150622073552.7363.22969.idtracker@ietfa.amsl.com> <20150623194123.GA30062@hephaistos.amsuess.com>
In-Reply-To: <20150623194123.GA30062@hephaistos.amsuess.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/rFtRmGvH-L-pFtfcTWy0naEbE60>
Cc: core@ietf.org
Subject: Re: [core] I-D Action: draft-ietf-core-resource-directory-03.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Jun 2015 20:36:37 -0000

Good evening Christian,

thank you for your attention to detail!

I have merged these changes to the SVN; they will be in -04.
(Preview at:
https://svn.tools.ietf.org/svn/wg/core/draft-ietf-core-resource-directory-xx.txt
.)
Thank you for making it so easy to merge these changes.

While merging, I found a few more gratuitous spaces in the link-format
documents and fixed them as well.

Next step: Adding some automatic validation of the examples...

GrÃ¼ÃŸe, Carsten


Christian AmsÃ¼ss wrote:
> Hello resource-directory authors,
> 
> On Mon, Jun 22, 2015 at 12:35:52AM -0700, internet-drafts@ietf.org wrote:
>> A New Internet-Draft is available from the on-line Internet-Drafts directories.
>>  This draft is a work item of the Constrained RESTful Environments Working Group of the IETF.
> 
> I've gone through the updated version, and found some issues that could
> be fixed easily in the next update:
> 
> In Section 9.6, ins="Spot" vs. ins="FrontSpot" is mixed; the DNS export
> later uses Spot. The looked up link format resource indicates that CoAP
> listens on port 61616 on fdfd::1234, but the SRV record shows port 5678.
> 
> Section 5.2 states that `con` is an argument at registration time, and
> is of `scheme://host:port` form. The example in 12.1.2, where the CT
> registers with the RD, uses it as a link format parameter, and in the
> form of a bare IP address. As I understand the rest of the document, the
> example should instead read:
> 
>> Req: POST
>>     coap://[FDFD::ABCD:0]/rd?ep=lm_R2-4-015_wndw&con=coap://[FDFD::ABCD:1]
>>    Payload:
>>    </light/left>;rt="light";
>>      d="R2-4-015"; ins="lamp4444"; exp,
>>    </light/middle>;rt="light";
>>      d="R2-4-015"; ins="lamp5555"; exp,
>>    </light/right>;rt="light";
>>      d="R2-4-015"; ins="lamp6666"; exp
> 
> Later in 12.1.2, the POST to the newly created light/grp1 batches miss
> the angular brackets around the light resources.
> 
> The con=bare-ip shows again in the POST /rd-group example still in the
> same section, but I don't understand that example well enough to offer a
> fix.
> 
> In section 12.1.3., the same UDP ports 5678 as in 9.6 show up in the SRV
> records.
> 
> 
> I've prepared a patch to draft-ietf-core-resource-directory-xx.mkd (see
> attachment), in case you agree with my suggested solutions.
> 
> Best regards
> Christian AmsÃ¼ss
> 
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From nobody Wed Jun 24 02:19:09 2015
Return-Path: <stokcons@xs4all.nl>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 60BCA1B328D for <core@ietfa.amsl.com>; Wed, 24 Jun 2015 02:19:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.449
X-Spam-Level: *
X-Spam-Status: No, score=1.449 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_EQ_FR=0.35, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WlU52IJdX1an for <core@ietfa.amsl.com>; Wed, 24 Jun 2015 02:19:05 -0700 (PDT)
Received: from lb1-smtp-cloud2.xs4all.net (lb1-smtp-cloud2.xs4all.net [194.109.24.21]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 627501B3238 for <core@ietf.org>; Wed, 24 Jun 2015 02:19:05 -0700 (PDT)
Received: from mail.xs4all.nl ([194.109.20.199]) by smtp-cloud2.xs4all.net with ESMTP id k9K21q00V4Hiz6i019K2hd; Wed, 24 Jun 2015 11:19:03 +0200
Received: from AMontpellier-654-1-252-53.w92-133.abo.wanadoo.fr ([92.133.143.53]) by mail.xs4all.nl with HTTP (HTTP/1.1 POST); Wed, 24 Jun 2015 11:19:02 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Date: Wed, 24 Jun 2015 11:19:02 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: =?UTF-8?Q?Christian_Ams=C3=BCss?= <c.amsuess@energyharvesting.at>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
In-Reply-To: <20150623194123.GA30062@hephaistos.amsuess.com>
References: <20150622073552.7363.22969.idtracker@ietfa.amsl.com> <20150623194123.GA30062@hephaistos.amsuess.com>
Message-ID: <97103c85e3869b5dfd3565fe38f03840@xs4all.nl>
X-Sender: stokcons@xs4all.nl (rmkryedX2e4G5Taz4Gadfmr08NfSaw3f)
User-Agent: XS4ALL Webmail
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/93ugR5b8L04a58llNEkIZHsb10c>
Cc: core@ietf.org
Subject: Re: [core] I-D Action: draft-ietf-core-resource-directory-03.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Jun 2015 09:19:08 -0000

Hi Christian,

thanks for pointing this out.
see below

Christian AmsÃ¼ss schreef op 2015-06-23 21:41:
> Hello resource-directory authors,
> 
> On Mon, Jun 22, 2015 at 12:35:52AM -0700, internet-drafts@ietf.org 
> wrote:
>> A New Internet-Draft is available from the on-line Internet-Drafts 
>> directories.
>>  This draft is a work item of the Constrained RESTful Environments 
>> Working Group of the IETF.
> 
> I've gone through the updated version, and found some issues that could
> be fixed easily in the next update:
> 
> In Section 9.6, ins="Spot" vs. ins="FrontSpot" is mixed; the DNS export
> later uses Spot. The looked up link format resource indicates that CoAP
> listens on port 61616 on fdfd::1234, but the SRV record shows port 
> 5678.
<peter>
FrontSpot was too long, so I want to use Spot.
5678 is easier to use than 61616
</peter>
> 
> Section 5.2 states that `con` is an argument at registration time, and
> is of `scheme://host:port` form. The example in 12.1.2, where the CT
> registers with the RD, uses it as a link format parameter, and in the
> form of a bare IP address. As I understand the rest of the document, 
> the
> example should instead read:
> 
>> Req: POST
>>     
>> coap://[FDFD::ABCD:0]/rd?ep=lm_R2-4-015_wndw&con=coap://[FDFD::ABCD:1]
>>    Payload:
>>    </light/left>;rt="light";
>>      d="R2-4-015"; ins="lamp4444"; exp,
>>    </light/middle>;rt="light";
>>      d="R2-4-015"; ins="lamp5555"; exp,
>>    </light/right>;rt="light";
>>      d="R2-4-015"; ins="lamp6666"; exp

<peter>
absolutely, I got carried away on my own fancies.
</peter>
> 
> Later in 12.1.2, the POST to the newly created light/grp1 batches miss
> the angular brackets around the light resources.
> 
> The con=bare-ip shows again in the POST /rd-group example still in the
> same section, but I don't understand that example well enough to offer 
> a
> fix.
<peter>
you mean that con argument should read like con=coap://[FF05::1]
</peter>
> 
> In section 12.1.3., the same UDP ports 5678 as in 9.6 show up in the 
> SRV
> records.
<peter>
That is the one intended.
</peter>
> 
> 
> I've prepared a patch to draft-ietf-core-resource-directory-xx.mkd (see
> attachment), in case you agree with my suggested solutions.
> 
> Best regards
> Christian AmsÃ¼ss

Many thanks,

Peter
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From nobody Wed Jun 24 13:25:27 2015
Return-Path: <bilhanan.silverajan@tut.fi>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8CDAE1A1BAF for <core@ietfa.amsl.com>; Wed, 24 Jun 2015 13:25:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level: 
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PgYUPdP0OKlO for <core@ietfa.amsl.com>; Wed, 24 Jun 2015 13:25:23 -0700 (PDT)
Received: from mail-gw-out1.cc.tut.fi (mail-gw-out1.cc.tut.fi [130.230.160.32]) by ietfa.amsl.com (Postfix) with ESMTP id B6A1F1A7005 for <core@ietf.org>; Wed, 24 Jun 2015 13:25:21 -0700 (PDT)
X-AuditID: 82e6a020-f79376d000000c52-23-558b12302913
Received: from mail1.tut.fi (mail1.tut.fi [130.230.162.19]) by mail-gw-out1.cc.tut.fi (Symantec Messaging Gateway) with SMTP id 63.D9.03154.0321B855; Wed, 24 Jun 2015 23:25:20 +0300 (EEST)
Received: from kali.p-661hnu-f1 (a88-113-51-254.elisa-laajakaista.fi [88.113.51.254]) by mail1.tut.fi (Postfix) with ESMTPSA id 4731D4034A for <core@ietf.org>; Wed, 24 Jun 2015 23:25:20 +0300 (EEST)
Message-ID: <558B1297.8070302@tut.fi>
Date: Wed, 24 Jun 2015 23:27:03 +0300
From: Bill Silverajan <bilhanan.silverajan@tut.fi>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: "core@ietf.org" <core@ietf.org>
References: <20150620230910.29347.48499.idtracker@ietfa.amsl.com>
In-Reply-To: <20150620230910.29347.48499.idtracker@ietfa.amsl.com>
X-Forwarded-Message-Id: <20150620230910.29347.48499.idtracker@ietfa.amsl.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJIsWRmVeSWpSXmKPExsXS9GyRsK6BUHeowautkhb73q5ndmD0WLLk J1MAYxSXTUpqTmZZapG+XQJXxrW/1gWfhCt2zVjN2sB4RqCLkZNDQsBE4lXDV0YIW0ziwr31 bF2MXBxCAvsYJXZO/scI4ZxilGiee50VpIpXQFXi5qsWJhCbBcg+dOMSO4jNJmAkceDbJhYQ W1QgWeJg4w9miHpBiZMzn4DFRQSUJTafeQ22TRioZuHaVrC4kICjRNO522D1nAJOEjN+HAGa zwF0ka/Es3YhkDCzgJnEvM0PmSFseYntb+cwT2AUmIVkwywkZbOQlC1gZF7FKJabmJmjm16u m19aYqiXnKxXUlqil5a5iREcggsUdjC+nKZ/iFGAg1GJh3fFh85QIdbEsuLK3EOMkhxMSqK8 CQzdoUJ8SfkplRmJxRnxRaU5qcWHGCU4mJVEeOeA5HhTEiurUovyYVLSHCxK4ryl/pohQgLp iSWp2ampBalFMFkZDg4lCd4iQaBGwaLU9NSKtMycEoQ0EwcnyHAeoOHuIDW8xQWJucWZ6RD5 U4yKUuK8kiAJAZBERmkeXC8oRUQUGv97xSgO9Iow7z0BoCoeYHqB634FNJgJaPDb+C6QwSWJ CCmpBkaurH5B8fsWmlMr998LENdvr6zPv36VsUUw7+WN7ECjxrSM1FKdJ08M9+uVh7cHz5sg bffE8uvNCt7n/T8nbpAtuT9JaseGM9Fmb4y8n6w4+pO/+1Z2d0+k+pE/f+ctvdD/+0CTRNIS 4dksWaUTj+d94XjhInL8/zLFu5M5XReELbk/Z/M2XgUlluKMREMt5qLiRADP9lRf7AIAAA==
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/xiSEi7FT65QdaH2JJqDraJQTrS8>
Subject: [core] Fwd: New Version Notification for draft-silverajan-core-coap-alternative-transports-08.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Jun 2015 20:25:25 -0000

Dear CoRE WG,

A new version of our draft on CoAP Communication with Alternative 
Transports was uploaded a few days ago. The biggest change has been to 
take into account comments from reviewers, while waiting for WG adoption.

Regards,
Bill


-------- Forwarded Message --------
Subject: New Version Notification for 
draft-silverajan-core-coap-alternative-transports-08.txt
Date: Sat, 20 Jun 2015 16:09:10 -0700
From: internet-drafts@ietf.org
To: Bilhanan Silverajan <bilhanan.silverajan@tut.fi>, Teemu Savolainen 
<teemu.savolainen@nokia.com>, Teemu Savolainen 
<teemu.savolainen@nokia.com>, Bill Silverajan <Bilhanan.Silverajan@tut.fi>


A new version of I-D, 
draft-silverajan-core-coap-alternative-transports-08.txt
has been successfully submitted by Bilhanan Silverajan and posted to the
IETF repository.

Name:		draft-silverajan-core-coap-alternative-transports
Revision:	08
Title:		CoAP Communication with Alternative Transports
Document date:	2015-06-20
Group:		Individual Submission
Pages:		18
URL: 
https://www.ietf.org/internet-drafts/draft-silverajan-core-coap-alternative-transports-08.txt
Status: 
https://datatracker.ietf.org/doc/draft-silverajan-core-coap-alternative-transports/
Htmlized: 
https://tools.ietf.org/html/draft-silverajan-core-coap-alternative-transports-08
Diff: 
https://www.ietf.org/rfcdiff?url2=draft-silverajan-core-coap-alternative-transports-08

Abstract:
    CoAP has been standardised as an application level REST-based
    protocol.  A single CoAP message is typically encapsulated and
    transmitted using UDP or DTLS as transports.  These transports are
    optimal solutions for CoAP use in IP-based constrained environments
    and nodes.  However compelling motivation exists for allowing CoAP to
    operate with other transports and protocols.  Examples are M2M
    communication in cellular networks using SMS, more suitable transport
    protocols for firewall/NAT traversal, end-to-end reliability and
    security such as TCP and TLS, or employing proxying and tunneling
    gateway techniques such as the WebSocket protocol.  This draft
    examines the requirements for conveying CoAP messages to end points
    over such alternative transports.  It also provides a new URI format
    for representing CoAP resources over alternative transports.

 



Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat




From nobody Wed Jun 24 13:25:47 2015
Return-Path: <bilhanan.silverajan@tut.fi>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 65CC61A7001 for <core@ietfa.amsl.com>; Wed, 24 Jun 2015 13:25:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.311
X-Spam-Level: 
X-Spam-Status: No, score=-2.311 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DxcjY32-qCph for <core@ietfa.amsl.com>; Wed, 24 Jun 2015 13:25:44 -0700 (PDT)
Received: from mail-gw-out2.cc.tut.fi (mail-gw-out2.cc.tut.fi [130.230.160.33]) by ietfa.amsl.com (Postfix) with ESMTP id AF1A01A6FF2 for <core@ietf.org>; Wed, 24 Jun 2015 13:25:43 -0700 (PDT)
X-AuditID: 82e6a021-f79436d000000c5d-2f-558b124658cd
Received: from mail1.tut.fi (mail1.tut.fi [130.230.162.19]) by mail-gw-out2.cc.tut.fi (Symantec Messaging Gateway) with SMTP id ED.AF.03165.6421B855; Wed, 24 Jun 2015 23:25:42 +0300 (EEST)
Received: from kali.p-661hnu-f1 (a88-113-51-254.elisa-laajakaista.fi [88.113.51.254]) by mail1.tut.fi (Postfix) with ESMTPSA id 384E74034A for <core@ietf.org>; Wed, 24 Jun 2015 23:25:42 +0300 (EEST)
Message-ID: <558B12AD.7010503@tut.fi>
Date: Wed, 24 Jun 2015 23:27:25 +0300
From: Bill Silverajan <bilhanan.silverajan@tut.fi>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: core@ietf.org
References: <36F5869FE31AB24485E5E3222C288E1F22DF7420@NABESITE.InterDigital.com>
In-Reply-To: <36F5869FE31AB24485E5E3222C288E1F22DF7420@NABESITE.InterDigital.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrPIsWRmVeSWpSXmKPExsXS9GyRsK6bUHeowa5zEhb73q5ndmD0WLLk J1MAYxSXTUpqTmZZapG+XQJXxs7GLtaCzYoV11euYG1gfCHVxcjJISFgIvHtzgkmCFtM4sK9 9WxdjFwcQgL7GCX6j51hhnBOMUq8nzGBBaSKV0BVYs3yl2A2C5C953o/M4jNJmAkceDbJrC4 qECyxMHGH8wQ9YISJ2c+AYuLANm77m4H2yYsECSx/fYhRhBbSCBA4uP1r2BxToFAibZXq8Di zAK2Enfm7maGsOUlmrfOZp7AyD8LydhZSMpmISlbwMi8ilEsNzEzRze9XDe/tMRILzlZr6S0 RC8tcxMjONwWKO5gPDVD/xCjAAejEg/vig+doUKsiWXFlbmHGCU5mJREeRMYukOF+JLyUyoz Eosz4otKc1KLDzFKcDArifDOAcnxpiRWVqUW5cOkpDlYlMR5S/01Q4QE0hNLUrNTUwtSi2Cy MhwcShK8bwSAGgWLUtNTK9Iyc0oQ0kwcnCDDeYCGnwOp4S0uSMwtzkyHyJ9iVJQS510IkhAA SWSU5sH1gtJBRKHxv1eM4kCvCPPeA6niAaYSuO5XQIOZgAa/je8CGVySiJCSamBMEcqIfaDz srWm9JjQuVf60glZ4XY3ay8FRW8JuXcrwoR/k6bRMSWfs83/Vm/ivbRkq56NLG+JqEFLQOz2 Hyz/ij4dCrgRwOvAsL6wR1f/8tzVrod9lx8ocYne/PzLOps1nRcbLe7M1ltoGVXCuXFz2/kp S0Mm6wauWMLywf5/E/88hbuX1pUpsRRnJBpqMRcVJwIAyQe9ZeICAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/j2VQaUdCkd2YExopKQ4cIAPHnXY>
Subject: Re: [core] Review of draft-silverajan-core-coap-alternative-transports-07
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Jun 2015 20:25:46 -0000

Hi Akbar,

Thanks for your thorough review and positive comments regarding the 
draft. I rectified version -08 of the Alternative Transports draft based 
on your comments. Detailed response inline:

On 2/6/15 8:24 AM, Rahman, Akbar wrote:

> Following are the comments from my review of
>
> https://tools.ietf.org/html/draft-silverajan-core-coap-alternative-transports-07
>
> 1.Overall, I think the draft is in good shape and I think it should
> progress.  Thanks to the Authors for their good work!
>
> 2.Abstract - Editorial: 3^rd sentence in Abstract is too long (i.e. run
> on sentence) and should be re-worded and probably split into multiple
> sentences.
>

It's now split and the result has also been worded to reflect the 
specific transports for each example property.

> 3.Section 1 - Reference to “non-IP network” in 2^nd paragraph is unclear
> as the paragraph starts off by talking about the “Internet” (implying IP
> networks).  I am assuming the reference to non-IP network is about SMS.
> If so then the subject matter should be more precisely introduced.
>

The reference to "non-IP network" was a legacy remnant that encompassed 
other possible radio technologies such as BLE, Zigbee smart, SMS and so 
on. I removed the phrase now, and the passage has been rewritten. For 
SMS, the phrase "cellular networks in which the Short Messaging Service 
(SMS) can be utilised" has been introduced.

> 4.Section 2.1 – Section refers to OMA LWM2M spec being drafted.  But I
> believe the v1.0 version of the spec is already released.
>

Thanks, I updated the reference.

> 5.Section 2.5 – Is there any real value for putting reference to such
> purely speculative ideas in an Internet-Draft?  What for example would
> it mean to run CoAP over Twitter?  Can Twitter really be called a
> transport channel?  Either the section should have more supporting
> description or better yet just remove from the document.
>

I thought removing the section was a far better idea, now that we have a 
clearer idea of what kinds of transport alternatives there are for CoAP.

> 6.Section 4.2 – It should be clarified how this scheme is backward
> compatible (or not) with the current URI format for UDP specified in
> https://tools.ietf.org/html/rfc7252#section-6.1
>

How about this, now in Section 4.2: "CoAP resources transported over UDP 
or DTLS must conform to Section 6 of [RFC7252] and utilise "coap" or 
"coaps" for the URI scheme, instead of "coap+udp" or "coap+dtls"?

> 7.Section 5 – Property 3 description is unclear.  In fact, contrary to
> the current description, there is a multicast model of request/response
> already supported as described in
> https://tools.ietf.org/html/rfc7390#section-2.5 .
>

This is now property 1, and rewritten to refer to rfc 7390, specifically 
its request/response model.

> 8.Section 7 – I think in fact there are many risk factors introduced
> when considering new transports.  For example, will it be mandatory to
> have a security mode with each new transport (e.g TLS for TCP)?  So this
> section needs significant updating.
>

I gave this a go and described some aspects where security must be 
considered in Section 7. However, you raised a very interesting point 
that I think should be discussed further: Should new transports for CoAP 
offer both a secure and non-secure channel? And should there be a 
correlation in the URI scheme between these (2 or more) modes?

I think it would be great to get some guidance from the WG about this.

> 9.General – I was looking for some guidance on how to interpret Core
> Link Format (RFC 6690) with Alternate transports, but didn’t see it.  Do
> you think it is worth covering?
>

It's worthwhile covering. I'm not sure whether this draft is the 
appropriate document, though. Therefore I refrained from mentioning Core 
Link formats here. In general, I assume you're implying what happens if 
links return refer to resources available on transports/URIs other than 
the original request?

Regards,
Bill


> Best Regards,
>
> Akbar
>
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>


From nobody Thu Jun 25 09:18:12 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3356F1A8994; Thu, 25 Jun 2015 09:18:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.002
X-Spam-Level: 
X-Spam-Status: No, score=-0.002 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lyZyiO1i9SJ5; Thu, 25 Jun 2015 09:18:06 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0111.outbound.protection.outlook.com [65.55.169.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD6F51A88FC; Thu, 25 Jun 2015 09:18:05 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by BLUPR0601MB1394.namprd06.prod.outlook.com (10.163.85.155) with Microsoft SMTP Server (TLS) id 15.1.195.15; Thu, 25 Jun 2015 16:18:02 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0195.005; Thu, 25 Jun 2015 16:18:02 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "6tisch@ietf.org" <6tisch@ietf.org>, "core@ietf.org" <core@ietf.org>
Thread-Topic: Ambiguous identifiers on the CoMI client side
Thread-Index: AdCvYmCKzcCGZtgeQZ+2VZ9vt0/HsA==
Date: Thu, 25 Jun 2015 16:18:01 +0000
Message-ID: <CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0@CO2PR0601MB792.namprd06.prod.outlook.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-exchange-diagnostics: 1; BLUPR0601MB1394; 5:W9bIYTLv5wWHE5lb5lAhNXah2PNQvmp/IdIfz/LUSgqhqmnDsuODCsx8k3bVhKtWGGEfxWq1l26qjbH9MkQitYdXbHgJo2+2w20wBrcWQibTQmkjipZKAaLKVzQ2BxCTsnbX8WtTY3hpj+/TTHkv2Q==; 24:mTuzcggB5BXDFlgBcZiTPL6fUxFjaQ51GfpTbl7NY8Jx9fRvPbsiD9nLTt5/HlALGgCkUqtwfYL9JURq8MbuurQqWvNXmsbQlVbAGNK7Hkw=; 20:eHOFKRyeS20DbWV7S7wy0tgz/9TZfzRf7zoh4eJaTTnmUS/H9monLsTNXzG9yEsj+U5jBm+4x8EhX0OuUPnRIA==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0601MB1394;
x-microsoft-antispam-prvs: <BLUPR0601MB1394FD91D52E1DFFB5FA3E01FEAE0@BLUPR0601MB1394.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BLUPR0601MB1394; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0601MB1394; 
x-forefront-prvs: 0618E4E7E1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(979002)(38414003)(16236675004)(17760045003)(229853001)(87936001)(19580395003)(54356999)(50986999)(33656002)(64706001)(107886002)(189998001)(19300405004)(5001960100002)(68736005)(77096005)(19580405001)(2656002)(2900100001)(102836002)(15975445007)(5003600100002)(74316001)(19617315012)(19627595001)(99286002)(5002640100001)(5001770100001)(2501003)(450100001)(66066001)(92566002)(99936001)(19625215002)(86362001)(97736004)(76576001)(122556002)(40100003)(18206015028)(77156002)(46102003)(62966003)(7099028)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR0601MB1394; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:; 
Content-Type: multipart/related; boundary="_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jun 2015 16:18:02.0228 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0601MB1394
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/y5QeuBWYnVigi-4OnPoXeHTHJA8>
Subject: [core] Ambiguous identifiers on the CoMI client side
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jun 2015 16:18:10 -0000

--_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_"

--_000_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

The current COMI draft seem to be based on the assumption that CoMI clients=
 and CoMI servers share the same identifier space. In real life, centralize=
d CoMI client (e.g. NMS) can implement a much larger number of objects and =
constrained CoMI clients can implement a similar size but different set of =
objects.

The following two example show some of the issues raised by these scenarios=
.

Example #1:

In this example, a sever implement YANG module A and B and a client impleme=
nt module A and C.
Module B and C have a YANG clash but since the server don't implement these=
 two modules, no rehash are created.

[cid:image002.png@01D0AF40.F8FD6C30]

If the client send a GET of YANG hash 727582530 (Object in Module C), the s=
erver will return an object in Module B instead of generating a Not Found e=
rror.
The client will process this Module B object assuming it's a Module C objec=
t.

Example #2:

In the previous example, we might say that CoMI clients need at least to kn=
ow the list of modules implemented by target CoMI servers and not request o=
bjects not part of this list. Is this really fix the issue?

[cid:image006.png@01D0AF40.F8FD6C30]

In this second example, the client and the server implement the same module=
s, A and B.
However, not all objects are mandatory and the server implement the top par=
t of these modules, the client implement the lower part.

The client request YANG hash 727582530 from module B and receive an object =
from module A.

The only viable solution to this issue seem to make the list of objects imp=
lemented by CoMI servers (YANG path, YANG hash) available to CoMI clients.
Not sure we still are in the domain of constrained devices however.

[cid:image001.jpg@01C868D8.BF0BB7E0]

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com<mailto:michel.veillette@trilliantinc.com>
www.trilliantinc.com<http://www.trilliantinc.com/>




--_000_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">The current COMI draft seem to be based on the assum=
ption that CoMI clients and CoMI servers share the same identifier space. I=
n real life, centralized CoMI client (e.g. NMS) can implement a much larger=
 number of objects and constrained
 CoMI clients can implement a similar size but different set of objects.<o:=
p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The following two example show some of the issues ra=
ised by these scenarios.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Example #1:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">In this example, a sever implement YANG module A and=
 B and a client implement module A and C.<o:p></o:p></p>
<p class=3D"MsoNormal">Module B and C have a YANG clash but since the serve=
r don&#8217;t implement these two modules, no rehash are created.<o:p></o:p=
></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><!--[if gte vml 1]><v:shapetype id=3D"_x0000_t75" co=
ordsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=3D"t" path=3D"m@4@5l@=
4@11@9@11@9@5xe" filled=3D"f" stroked=3D"f">
<v:stroke joinstyle=3D"miter" />
<v:formulas>
<v:f eqn=3D"if lineDrawn pixelLineWidth 0" />
<v:f eqn=3D"sum @0 1 0" />
<v:f eqn=3D"sum 0 0 @1" />
<v:f eqn=3D"prod @2 1 2" />
<v:f eqn=3D"prod @3 21600 pixelWidth" />
<v:f eqn=3D"prod @3 21600 pixelHeight" />
<v:f eqn=3D"sum @0 0 1" />
<v:f eqn=3D"prod @6 1 2" />
<v:f eqn=3D"prod @7 21600 pixelWidth" />
<v:f eqn=3D"sum @8 21600 0" />
<v:f eqn=3D"prod @7 21600 pixelHeight" />
<v:f eqn=3D"sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect" />
<o:lock v:ext=3D"edit" aspectratio=3D"t" />
</v:shapetype><v:shape id=3D"_x0000_i1025" type=3D"#_x0000_t75" style=3D'wi=
dth:433.5pt;height:109.5pt' o:ole=3D"">
<v:imagedata src=3D"cid:image003.emz@01D0AF3E.6F9FC840" o:title=3D"" />
</v:shape><![endif]--><![if !vml]><img width=3D"578" height=3D"146" src=3D"=
cid:image002.png@01D0AF40.F8FD6C30" v:shapes=3D"_x0000_i1025"><![endif]><!-=
-[if gte mso 9]><xml>
<o:OLEObject Type=3D"Embed" ProgID=3D"Visio.Drawing.15" ShapeID=3D"_x0000_i=
1025" DrawAspect=3D"Content" ObjectID=3D"_1496739846">
</o:OLEObject>
</xml><![endif]--><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">If the client send a GET of YANG hash 727582530 (Obj=
ect in Module C), the server will return an object in Module B instead of g=
enerating a Not Found error.<o:p></o:p></p>
<p class=3D"MsoNormal">The client will process this Module B object assumin=
g it&#8217;s a Module C object.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Example #2:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">In the previous example, we might say that CoMI clie=
nts need at least to know the list of modules implemented by target CoMI se=
rvers and not request objects not part of this list. Is this really fix the=
 issue?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><!--[if gte vml 1]><v:shape id=3D"_x0000_i1026" type=
=3D"#_x0000_t75" style=3D'width:289.5pt;height:127.5pt' o:ole=3D"">
<v:imagedata src=3D"cid:image005.emz@01D0AF40.F8FD6C30" o:title=3D"" />
</v:shape><![endif]--><![if !vml]><img width=3D"386" height=3D"170" src=3D"=
cid:image006.png@01D0AF40.F8FD6C30" v:shapes=3D"_x0000_i1026"><![endif]><!-=
-[if gte mso 9]><xml>
<o:OLEObject Type=3D"Embed" ProgID=3D"Visio.Drawing.15" ShapeID=3D"_x0000_i=
1026" DrawAspect=3D"Content" ObjectID=3D"_1496739847">
</o:OLEObject>
</xml><![endif]--><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">In this second example, the client and the server im=
plement the same modules, A and B.<o:p></o:p></p>
<p class=3D"MsoNormal">However, not all objects are mandatory and the serve=
r implement the top part of these modules, the client implement the lower p=
art.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The client request YANG hash 727582530 from module B=
 and receive an object from module A.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The only viable solution to this issue seem to make =
the list of objects implemented by CoMI servers (YANG path, YANG hash) avai=
lable to CoMI clients.<o:p></o:p></p>
<p class=3D"MsoNormal">Not sure we still are in the domain of constrained d=
evices however.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"717" style=3D"width:537.75pt;border-collapse:collapse">
<tbody>
<tr style=3D"height:49.05pt">
<td width=3D"137" style=3D"width:103.1pt;border:none;border-right:solid win=
dowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal"><span style=3D"mso-fareast-language:EN-CA"><img widt=
h=3D"120" height=3D"22" id=3D"Picture_x0020_2" src=3D"cid:image001.jpg@01D0=
AF3B.0DED9670" alt=3D"cid:image001.jpg@01C868D8.BF0BB7E0"><o:p></o:p></span=
></p>
</td>
<td width=3D"580" valign=3D"top" style=3D"width:434.65pt;padding:0in 5.4pt =
0in 5.4pt;height:49.05pt">
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA"=
>Michel Veillette<br>
System Architecture Director</span><span style=3D"mso-fareast-language:EN-C=
A"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"font-size=
:9.0pt;font-family:&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA"=
>Trilliant Inc.<br>
Tel: 450-375-0556 ext. 237<br>
<a href=3D"mailto:michel.veillette@trilliantinc.com"><span style=3D"color:#=
0563C1">michel.veillette@trilliantinc.com</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:8.1pt"><span style=3D"mso-farea=
st-language:EN-CA"><a href=3D"http://www.trilliantinc.com/"><span style=3D"=
font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;color:blue">www.tr=
illiantinc.com</span></a></span><span style=3D"font-size:9.0pt;font-family:=
&quot;Arial&quot;,sans-serif;mso-fareast-language:EN-CA">
 &nbsp; </span><span style=3D"mso-fareast-language:EN-CA"><o:p></o:p></span=
></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"mso-fareast-language:EN-CA"><o:p>&nbs=
p;</o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_--

--_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Thu, 25 Jun 2015 16:18:00 GMT";
	modification-date="Thu, 25 Jun 2015 16:18:00 GMT"
Content-ID: <image001.jpg@01D0AF3B.0DED9670>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: application/octet-stream; name="oledata.mso"
Content-Description: oledata.mso
Content-Disposition: inline; filename="oledata.mso"; size=29032;
	creation-date="Thu, 25 Jun 2015 16:18:00 GMT";
	modification-date="Thu, 25 Jun 2015 16:18:00 GMT"
Content-ID: <oledata.mso>
Content-Transfer-Encoding: base64

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
zydwNsG9vRv/9+zvf/kP6gYyug==

--_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: application/octet-stream; name="image003.emz"
Content-Description: image003.emz
Content-Disposition: inline; filename="image003.emz"; size=3318;
	creation-date="Thu, 25 Jun 2015 16:18:00 GMT";
	modification-date="Thu, 25 Jun 2015 16:18:00 GMT"
Content-ID: <image003.emz@01D0AF3E.6F9FC840>
Content-Transfer-Encoding: base64

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
APP/A42UA4BcYwAA

--_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: image/png; name="image002.png"
Content-Description: image002.png
Content-Disposition: inline; filename="image002.png"; size=10790;
	creation-date="Thu, 25 Jun 2015 16:18:01 GMT";
	modification-date="Thu, 25 Jun 2015 16:18:01 GMT"
Content-ID: <image002.png@01D0AF40.F8FD6C30>
Content-Transfer-Encoding: base64

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
ILiwb3YAAAAASUVORK5CYII=

--_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: application/octet-stream; name="image005.emz"
Content-Description: image005.emz
Content-Disposition: inline; filename="image005.emz"; size=3212;
	creation-date="Thu, 25 Jun 2015 16:18:01 GMT";
	modification-date="Thu, 25 Jun 2015 16:18:01 GMT"
Content-ID: <image005.emz@01D0AF40.F8FD6C30>
Content-Transfer-Encoding: base64

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
7ZN8EmVTAUoEYP7/kveS+9RaAAA=

--_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_
Content-Type: image/png; name="image006.png"
Content-Description: image006.png
Content-Disposition: inline; filename="image006.png"; size=9025;
	creation-date="Thu, 25 Jun 2015 16:18:01 GMT";
	modification-date="Thu, 25 Jun 2015 16:18:01 GMT"
Content-ID: <image006.png@01D0AF40.F8FD6C30>
Content-Transfer-Encoding: base64

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
D2al/s6y0QAAAABJRU5ErkJggg==

--_009_CO2PR0601MB792C7B012AD8AF881B8ADB7FEAE0CO2PR0601MB792na_--


From nobody Fri Jun 26 09:27:58 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EF84B1A0398 for <core@ietfa.amsl.com>; Fri, 26 Jun 2015 09:27:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.349
X-Spam-Level: 
X-Spam-Status: No, score=0.349 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MDLoaCrCX2un for <core@ietfa.amsl.com>; Fri, 26 Jun 2015 09:27:54 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 20E231A0393 for <core@ietf.org>; Fri, 26 Jun 2015 09:27:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::b]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5QGRnB3020946; Fri, 26 Jun 2015 18:27:50 +0200 (CEST)
Received: from alma.local (reingewinn.informatik.uni-bremen.de [134.102.218.123]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mJ3Xj5crvz99vf; Fri, 26 Jun 2015 18:27:49 +0200 (CEST)
Message-ID: <558D7D84.8070006@tzi.org>
Date: Fri, 26 Jun 2015 18:27:48 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: Barry Leiba <barryleiba@computer.org>
References: <CAC4RtVA5eC4xuyGn-MVvE__+ztqB3btUvMcWTu3a3qrSA+hzCA@mail.gmail.com> <CAAzbHvYVVZDMS=_nnGmRkxKHa49UGdGtVEjy_UNmNL6PvagGbQ@mail.gmail.com> <CAC4RtVDMUWo00jyng6YGwj-dUKoztZAr_2uQ_64vg_EUureFUA@mail.gmail.com> <CAC4RtVC224_99ORJKu3tpFtYRSvNn7Xje8Km7kUMFZ3=9nBt_Q@mail.gmail.com>
In-Reply-To: <CAC4RtVC224_99ORJKu3tpFtYRSvNn7Xje8Km7kUMFZ3=9nBt_Q@mail.gmail.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/YYWqwjtZUUd7giSJONf78FDvrqE>
Cc: "core@ietf.org WG" <core@ietf.org>, Klaus Hartke <hartke@tzi.org>
Subject: Re: [core] What's the status of the "observe" doc after IESG Evaluation?
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jun 2015 16:27:57 -0000

Barry Leiba wrote:
> Have you gone through these comments, addressed them, and evaluated
> which ones should result in some minor document changes and which
> shouldn't (and why)?

There are a number of "nice to have" comments that probably would make
good material for draft-ietf-lwig-coap-01.txt.  Adding the additional
text to the normative document, however, adds the risk of opening up
additional avenues of misunderstanding, which makes us believe the
lwig document is the better target.

   Barry > Adrian's comment asking for clarification in Section 3.1.
   Adrian [3] > That's nicely explained. Add it to the draft?

(See "nice to have", above.)

   Barry > Adrian's comment about the "MAY" in Section 3.3.1 (looks like
   it shouldn't be a 2119 "MAY").
   Adrian [3] > Yes. Nice. Could also add something like "...as generally
   allowed in a CoAP implementation [RFC7252]..."

(See "nice to have", above.)

   Barry > Adrian's comment about Section 3.5 (clarify "eventually",
   perhaps with "after repeated failures to confirm", or some such).
   Adrian [3] > OK

(See "nice to have", above.)

   Barry > Kathleen's comment asking that you mention 7252 Section 9 as
   well as 7252 Section 11 in the Security Considerations.
   Kathleen [4] > Thank you, that looks great!

Done.

   Barry > Martin's comment asking for a forward reference to Section
   4.5.1 in Section 1.4.
   Martin [5] > Do you mind adding a reference at the end of Section 1.4
   to Section 4.5.1?

The text has been polished a bit [6].  We don't think that adding the
section reference would be in place in 1.4, which is still very much
at a level of basic exposition.

   Barry > Pete's various comments.

Whoops, the comments submitted [7] never made it into an e-mail, so
there never was an e-mail exchange about them.  We just sent separate
mail answering these comments.  No changes to the text are required,
though (with, again, maybe some material for lwig-coap resulting).

   Barry > Richard's various comments.
   Richard [8] > I would suggest something like the following at the top
   of Section 2:

(The suggested text just provides some information about the data type
earlier, now somewhat redundantly with what's there already.  I think
the author is right that this isn't needed.)

   Richard [8] > If so, you should really constrain the space to be 0/1

(Done.)

   Richard [8] > Overall, this section is fine.  I would just suggest
   clarifying that sentence, in terms of how it assumes time maps to
   serial numbers.

(Done.)

This should be the complete list of comment items still open.

Thanks again to Klaus for diligently handling these items.

GrÃ¼ÃŸe, Carsten

   [3] http://www.ietf.org/mail-archive/web/core/current/msg05658.html
   [4] http://www.ietf.org/mail-archive/web/core/current/msg05657.html
   [5] http://www.ietf.org/mail-archive/web/core/current/msg05537.html
   [6] http://www.ietf.org/mail-archive/web/core/current/msg05651.html
   [7]
https://datatracker.ietf.org/doc/draft-ietf-core-observe/ballot/#pete-resnick
   [8] http://www.ietf.org/mail-archive/web/core/current/msg05734.html


From nobody Fri Jun 26 10:29:06 2015
Return-Path: <barryleiba@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5563D1A8F46 for <core@ietfa.amsl.com>; Fri, 26 Jun 2015 10:29:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QYK5j4e0rSWg for <core@ietfa.amsl.com>; Fri, 26 Jun 2015 10:29:04 -0700 (PDT)
Received: from mail-vn0-x22b.google.com (mail-vn0-x22b.google.com [IPv6:2607:f8b0:400c:c0f::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C90241A8F44 for <core@ietf.org>; Fri, 26 Jun 2015 10:29:03 -0700 (PDT)
Received: by vnbg129 with SMTP id g129so16614592vnb.2 for <core@ietf.org>; Fri, 26 Jun 2015 10:29:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=rcYFVfdZI327N7rYVqI7n6hjDvYMmrZMDS+hXEzkMHE=; b=UbP5BjNottUfO7YrXoMDzOKThHLuLccedFPGcgezS07flUicrtVPfUq8A3ITVUqP5o pIUWLudBqb4TYvwdxtdKJ5khnVelTFKju++VYysRvRd3+FW/flI1jLiieb7W2fnYjEMy hZ1MUUP+AlL0rfBYvY2R388O2nL/Pz2T8t5azImChzmpPWysEQDkYGKd8E2eDamHUEFY aWoHFZLq+3/w73hfCMq9hGbHbbjBQ22zVxg4P6G79K8K89yKTnIdxkz07d1802Bd+g0c 2y+vJ5gaLM2IYw4yvFxBTSAT1NazLlZwSPFqA2VPKkdFTPaCzrRrIOKPDTLtfaiKIzWt INoQ==
MIME-Version: 1.0
X-Received: by 10.52.71.203 with SMTP id x11mr2309686vdu.48.1435339743019; Fri, 26 Jun 2015 10:29:03 -0700 (PDT)
Sender: barryleiba@gmail.com
Received: by 10.31.88.196 with HTTP; Fri, 26 Jun 2015 10:29:02 -0700 (PDT)
In-Reply-To: <558D7D84.8070006@tzi.org>
References: <CAC4RtVA5eC4xuyGn-MVvE__+ztqB3btUvMcWTu3a3qrSA+hzCA@mail.gmail.com> <CAAzbHvYVVZDMS=_nnGmRkxKHa49UGdGtVEjy_UNmNL6PvagGbQ@mail.gmail.com> <CAC4RtVDMUWo00jyng6YGwj-dUKoztZAr_2uQ_64vg_EUureFUA@mail.gmail.com> <CAC4RtVC224_99ORJKu3tpFtYRSvNn7Xje8Km7kUMFZ3=9nBt_Q@mail.gmail.com> <558D7D84.8070006@tzi.org>
Date: Fri, 26 Jun 2015 14:29:02 -0300
X-Google-Sender-Auth: l7FFyoHFjddUr6-RnIYhVFYNjrk
Message-ID: <CALaySJLeP6rPCTGDsMbGDiBfinCyqUuvrqiafgFU9zhgN9XjVw@mail.gmail.com>
From: Barry Leiba <barryleiba@computer.org>
To: Carsten Bormann <cabo@tzi.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/hx0Re9nUkOqAqwR4N9pfYHXuVpw>
Cc: "core@ietf.org WG" <core@ietf.org>, Klaus Hartke <hartke@tzi.org>
Subject: Re: [core] What's the status of the "observe" doc after IESG Evaluation?
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jun 2015 17:29:05 -0000

Thanks for all that (below).  And, so, the currently posted draft
reflects all the changes, and you're happy that it's ready to go to
the RFC Editor?

Barry

On Fri, Jun 26, 2015 at 1:27 PM, Carsten Bormann <cabo@tzi.org> wrote:
> Barry Leiba wrote:
>> Have you gone through these comments, addressed them, and evaluated
>> which ones should result in some minor document changes and which
>> shouldn't (and why)?
>
> There are a number of "nice to have" comments that probably would make
> good material for draft-ietf-lwig-coap-01.txt.  Adding the additional
> text to the normative document, however, adds the risk of opening up
> additional avenues of misunderstanding, which makes us believe the
> lwig document is the better target.
>
>    Barry > Adrian's comment asking for clarification in Section 3.1.
>    Adrian [3] > That's nicely explained. Add it to the draft?
>
> (See "nice to have", above.)
>
>    Barry > Adrian's comment about the "MAY" in Section 3.3.1 (looks like
>    it shouldn't be a 2119 "MAY").
>    Adrian [3] > Yes. Nice. Could also add something like "...as generally
>    allowed in a CoAP implementation [RFC7252]..."
>
> (See "nice to have", above.)
>
>    Barry > Adrian's comment about Section 3.5 (clarify "eventually",
>    perhaps with "after repeated failures to confirm", or some such).
>    Adrian [3] > OK
>
> (See "nice to have", above.)
>
>    Barry > Kathleen's comment asking that you mention 7252 Section 9 as
>    well as 7252 Section 11 in the Security Considerations.
>    Kathleen [4] > Thank you, that looks great!
>
> Done.
>
>    Barry > Martin's comment asking for a forward reference to Section
>    4.5.1 in Section 1.4.
>    Martin [5] > Do you mind adding a reference at the end of Section 1.4
>    to Section 4.5.1?
>
> The text has been polished a bit [6].  We don't think that adding the
> section reference would be in place in 1.4, which is still very much
> at a level of basic exposition.
>
>    Barry > Pete's various comments.
>
> Whoops, the comments submitted [7] never made it into an e-mail, so
> there never was an e-mail exchange about them.  We just sent separate
> mail answering these comments.  No changes to the text are required,
> though (with, again, maybe some material for lwig-coap resulting).
>
>    Barry > Richard's various comments.
>    Richard [8] > I would suggest something like the following at the top
>    of Section 2:
>
> (The suggested text just provides some information about the data type
> earlier, now somewhat redundantly with what's there already.  I think
> the author is right that this isn't needed.)
>
>    Richard [8] > If so, you should really constrain the space to be 0/1
>
> (Done.)
>
>    Richard [8] > Overall, this section is fine.  I would just suggest
>    clarifying that sentence, in terms of how it assumes time maps to
>    serial numbers.
>
> (Done.)
>
> This should be the complete list of comment items still open.
>
> Thanks again to Klaus for diligently handling these items.
>
> Gr=C3=BC=C3=9Fe, Carsten
>
>    [3] http://www.ietf.org/mail-archive/web/core/current/msg05658.html
>    [4] http://www.ietf.org/mail-archive/web/core/current/msg05657.html
>    [5] http://www.ietf.org/mail-archive/web/core/current/msg05537.html
>    [6] http://www.ietf.org/mail-archive/web/core/current/msg05651.html
>    [7]
> https://datatracker.ietf.org/doc/draft-ietf-core-observe/ballot/#pete-res=
nick
>    [8] http://www.ietf.org/mail-archive/web/core/current/msg05734.html
>


From nobody Fri Jun 26 15:32:27 2015
Return-Path: <twatteyne@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 133061ACE7E; Fri, 26 Jun 2015 15:32:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.622
X-Spam-Level: 
X-Spam-Status: No, score=0.622 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yL2tgdF4Lomj; Fri, 26 Jun 2015 15:32:23 -0700 (PDT)
Received: from mail-wi0-x235.google.com (mail-wi0-x235.google.com [IPv6:2a00:1450:400c:c05::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB1361ACE69; Fri, 26 Jun 2015 15:32:22 -0700 (PDT)
Received: by wiga1 with SMTP id a1so28467372wig.0; Fri, 26 Jun 2015 15:32:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:from:date:message-id:subject:to:content-type;  bh=pmVbOoiELAfmLw0ZPDsWE+duScMwHODyceB8XkbP3bY=; b=zNwpHtmRavCzl+fL05ojXb646XzQRIBCXtciEhO74XcpzkKxv+58ztEQTO4cGUd1ta HDUEMTYO1flEV/WQbLAGYSERbCOo5jFejlr+I/AeRmbpwjEeB+xk1LisjJNKQ1qIU717 ztmEsXI03LHdOhAmsbPPuuGR4/SLyP2928ObPoahYAPvJWom1WySxbGtpSN9k6dD0kKh T6fkzzXJL+ohEjvTPmJ4rG7lW8eovF82BKJOcJ1lyWHReJtsL0cH1hb1moHfzi1SHXBr edKOKkcK4Rcw/Sa7bRJgD9svLtn3wXGkqjZ4fDV53/2AmD9fHcn3HSPLkcG6P1wBr2pI EnCQ==
X-Received: by 10.181.11.129 with SMTP id ei1mr619787wid.90.1435357941593; Fri, 26 Jun 2015 15:32:21 -0700 (PDT)
MIME-Version: 1.0
Sender: twatteyne@gmail.com
Received: by 10.28.134.146 with HTTP; Fri, 26 Jun 2015 15:32:01 -0700 (PDT)
From: Thomas Watteyne <watteyne@eecs.berkeley.edu>
Date: Sat, 27 Jun 2015 00:32:01 +0200
X-Google-Sender-Auth: Ir9o2WRmjt3IrKHiDI_GeY4IMR8
Message-ID: <CADJ9OA-g5ijXJQz_uPiz2482yeD3wY9EZPkD+h1N47aa21ioDQ@mail.gmail.com>
To: "6tisch@ietf.org" <6tisch@ietf.org>, core <core@ietf.org>
Content-Type: multipart/alternative; boundary=f46d043c81703bfd2c051973505c
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/v0XgChpYf-M5aA9XZ2mhhRQLsuQ>
Subject: [core] [CoMI] multiple operations in a single request
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jun 2015 22:32:25 -0000

--f46d043c81703bfd2c051973505c
Content-Type: text/plain; charset=UTF-8

In the 6TiSCH context, CoMI can be used to manage a TSCH schedule, which
involves adding/removing cells (atomic layer 2 resources).

Cells are represented in the 6top YANG model as a list called "CellList" (
https://tools.ietf.org/html/draft-ietf-6tisch-6top-interface-03#section-4.1).
The way CoMI is written now (draft-vanderstok-core-comi-06), one CoMI
request is needed for each operation. That is, if I want to schedule 10
cells between nodes A and B, I will need 10 PUT requests to node A, and 10
to node B. If these are confirmable CoAP packets, that's a lot of packets.
These will be short requests, but will eat up an enormous amount of
bandwidth.

I'd like to be able to issue a single request to node A and a single
request to node B to carry out all of these operations, by aggregating
multiple "operations" in a single CoMI request (a single/small number of
CoAP packets).

What does CoMI offer me today to do this? Should we write the YANG model in
some particular way? What is envisioned in a future revision of CoMI to
answer this need.

Thanks,
Thomas

--f46d043c81703bfd2c051973505c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">In the 6TiSCH context, CoMI can be used to manage a TSCH s=
chedule, which involves adding/removing cells (atomic layer 2 resources).<d=
iv><br></div><div>Cells are represented in the 6top YANG model as a list ca=
lled &quot;CellList&quot; (<a href=3D"https://tools.ietf.org/html/draft-iet=
f-6tisch-6top-interface-03#section-4.1">https://tools.ietf.org/html/draft-i=
etf-6tisch-6top-interface-03#section-4.1</a>). The way CoMI is written now =
(draft-vanderstok-core-comi-06), one CoMI request is needed for each operat=
ion. That is, if I want to schedule 10 cells between nodes A and B, I will =
need 10 PUT requests to node A, and 10 to node B. If these are confirmable =
CoAP packets, that&#39;s a lot of packets. These will be short requests, bu=
t will eat up an enormous amount of bandwidth.</div><div><br></div><div>I&#=
39;d like to be able to issue a single request to node A and a single reque=
st to node B to carry out all of these operations, by aggregating multiple =
&quot;operations&quot; in a single CoMI request (a single/small number of C=
oAP packets).</div><div><br></div><div>What does CoMI offer me today to do =
this? Should we write the YANG model in some particular way? What is envisi=
oned in a future revision of CoMI to answer this need.</div><div><br></div>=
<div>Thanks,</div><div>Thomas</div></div>

--f46d043c81703bfd2c051973505c--


From nobody Fri Jun 26 15:51:15 2015
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E5B2A1B2A13 for <core@ietfa.amsl.com>; Fri, 26 Jun 2015 15:51:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level: 
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SNoN0in35TYP for <core@ietfa.amsl.com>; Fri, 26 Jun 2015 15:51:09 -0700 (PDT)
Received: from mail-la0-f54.google.com (mail-la0-f54.google.com [209.85.215.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 669C61AD377 for <core@ietf.org>; Fri, 26 Jun 2015 15:51:09 -0700 (PDT)
Received: by lagx9 with SMTP id x9so71526539lag.1 for <core@ietf.org>; Fri, 26 Jun 2015 15:51:07 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=U69BvcgbNO1hlZtXSy89FC7m4EPSBi5JNFJJyN2hAP8=; b=NkjSBkpmA8XJBWrEegDLoIwmjwXEI2MYlrjHk/6pqLzyJ4ksX4FrFqSnF+h3R/KFRh YBFeVGh9GTxP393YAer2cCZIQntHHcwZOiZWToiFygCkmn76AYbC5PqKixc7PkvQA1s2 SXHSSN1A41VqgeEtGfUljykNgjovqLed6WM50GlFlXu+RjQKnm304yz2ISgBbU8CvO0Y o3S+S1sITp/WRo3jsrWvWx3BN+3togBz67uf4ELc327qin/jC/6TazW7R7TESqi21cCm hhGR+PZ1GDwpKILQ6bZ/FxCTZTa8inA5R0es9SBc5q03oWt+eQqDS5rZlMsmGbk3lHRX vYmA==
X-Gm-Message-State: ALoCoQkkOO02D9sLla6snk1+d3OKJyS9m6o+RcUFro47WHTLuoF9QRzMcs4X0OCSvu/tOpGvOW9q
MIME-Version: 1.0
X-Received: by 10.112.164.66 with SMTP id yo2mr3646339lbb.33.1435359067800; Fri, 26 Jun 2015 15:51:07 -0700 (PDT)
Received: by 10.112.200.102 with HTTP; Fri, 26 Jun 2015 15:51:07 -0700 (PDT)
In-Reply-To: <CADJ9OA-g5ijXJQz_uPiz2482yeD3wY9EZPkD+h1N47aa21ioDQ@mail.gmail.com>
References: <CADJ9OA-g5ijXJQz_uPiz2482yeD3wY9EZPkD+h1N47aa21ioDQ@mail.gmail.com>
Date: Fri, 26 Jun 2015 15:51:07 -0700
Message-ID: <CABCOCHTwXuVs+LLMbANrL+RMrODcGDyPxgZBTZqAnDROVSqzzw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Thomas Watteyne <watteyne@eecs.berkeley.edu>
Content-Type: multipart/alternative; boundary=001a11c32d5c5c9eff0519739326
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/bLdpBs04AtUD81AC4PVKUvjnUUU>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, core <core@ietf.org>
Subject: Re: [core] [CoMI] multiple operations in a single request
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jun 2015 22:51:12 -0000

--001a11c32d5c5c9eff0519739326
Content-Type: text/plain; charset=UTF-8

On Fri, Jun 26, 2015 at 3:32 PM, Thomas Watteyne <watteyne@eecs.berkeley.edu
> wrote:

> In the 6TiSCH context, CoMI can be used to manage a TSCH schedule, which
> involves adding/removing cells (atomic layer 2 resources).
>
> Cells are represented in the 6top YANG model as a list called "CellList" (
> https://tools.ietf.org/html/draft-ietf-6tisch-6top-interface-03#section-4.1).
> The way CoMI is written now (draft-vanderstok-core-comi-06), one CoMI
> request is needed for each operation. That is, if I want to schedule 10
> cells between nodes A and B, I will need 10 PUT requests to node A, and 10
> to node B. If these are confirmable CoAP packets, that's a lot of packets.
> These will be short requests, but will eat up an enormous amount of
> bandwidth.
>
> I'd like to be able to issue a single request to node A and a single
> request to node B to carry out all of these operations, by aggregating
> multiple "operations" in a single CoMI request (a single/small number of
> CoAP packets).
>
> What does CoMI offer me today to do this? Should we write the YANG model
> in some particular way? What is envisioned in a future revision of CoMI to
> answer this need.
>
>
I think the YANG Patch media type could be used with CoMI.
This allows multiple edits on different target resources.


You could also do a plain PATCH on the datastore root, and provide
the subtrees you want to change.




> Thanks,
> Thomas
>


Andy


>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>

--001a11c32d5c5c9eff0519739326
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Fri, Jun 26, 2015 at 3:32 PM, Thomas Watteyne <span dir=3D"ltr">&lt;=
<a href=3D"mailto:watteyne@eecs.berkeley.edu" target=3D"_blank">watteyne@ee=
cs.berkeley.edu</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v dir=3D"ltr">In the 6TiSCH context, CoMI can be used to manage a TSCH sche=
dule, which involves adding/removing cells (atomic layer 2 resources).<div>=
<br></div><div>Cells are represented in the 6top YANG model as a list calle=
d &quot;CellList&quot; (<a href=3D"https://tools.ietf.org/html/draft-ietf-6=
tisch-6top-interface-03#section-4.1" target=3D"_blank">https://tools.ietf.o=
rg/html/draft-ietf-6tisch-6top-interface-03#section-4.1</a>). The way CoMI =
is written now (draft-vanderstok-core-comi-06), one CoMI request is needed =
for each operation. That is, if I want to schedule 10 cells between nodes A=
 and B, I will need 10 PUT requests to node A, and 10 to node B. If these a=
re confirmable CoAP packets, that&#39;s a lot of packets. These will be sho=
rt requests, but will eat up an enormous amount of bandwidth.</div><div><br=
></div><div>I&#39;d like to be able to issue a single request to node A and=
 a single request to node B to carry out all of these operations, by aggreg=
ating multiple &quot;operations&quot; in a single CoMI request (a single/sm=
all number of CoAP packets).</div><div><br></div><div>What does CoMI offer =
me today to do this? Should we write the YANG model in some particular way?=
 What is envisioned in a future revision of CoMI to answer this need.</div>=
<div><br></div></div></blockquote><div><br></div><div>I think the YANG Patc=
h media type could be used with CoMI.</div><div>This allows multiple edits =
on different target resources.</div><div><br></div><div><br></div><div>You =
could also do a plain PATCH on the datastore root, and provide</div><div>th=
e subtrees you want to change.</div><div><br></div><div><br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div></div><div>Th=
anks,</div><div>Thomas</div></div></blockquote><div><br></div><div><br></di=
v><div>Andy</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>_______________________________________________<br>
core mailing list<br>
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/core</a><br>
<br></blockquote></div><br></div></div>

--001a11c32d5c5c9eff0519739326--


From nobody Sat Jun 27 01:50:13 2015
Return-Path: <twatteyne@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EF5E81B3299; Sat, 27 Jun 2015 01:50:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Level: 
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0iiHIRFbH3-p; Sat, 27 Jun 2015 01:50:08 -0700 (PDT)
Received: from mail-wg0-x22e.google.com (mail-wg0-x22e.google.com [IPv6:2a00:1450:400c:c00::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CC10D1B3298; Sat, 27 Jun 2015 01:50:07 -0700 (PDT)
Received: by wgck11 with SMTP id k11so105006770wgc.0; Sat, 27 Jun 2015 01:50:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=HdxchglhOer8XzKKfCgEQfd5IZV256XqVhlX59IUHXM=; b=QpElOi4ZNgB9GjqZgGaFL9Z4u+L7mGkGO0+JmkcDZdMFkvrkPCr7pOXAed9MzP8PpH QuNY1gW8pd7ccQn/Vur4tmYw9T+fPDQFKrwuM2xbcZB3hL7Lvwpv519kn+D6GdpXqfbm XdmkP5NQcDUBSlvLGK2botrHB+SJVkSmBJ3DPLIXA+qcGx3FiUYAjtiBx2PYDNcvK0v5 6/2PnQ3RJ/9oro+yw8smT4no6Zc2owdwO1L+m00K4ZwFEqvn4QljdNn0nhBJcqt6m0bM iOzPqKnK9LoLgkKaoT9hyORxE03XmbaGJ1JZ96XM2T3XOEpJJisLAecvjdNQtlf8sBqU pgCg==
X-Received: by 10.194.174.194 with SMTP id bu2mr11142827wjc.76.1435395006521;  Sat, 27 Jun 2015 01:50:06 -0700 (PDT)
MIME-Version: 1.0
Sender: twatteyne@gmail.com
Received: by 10.28.134.146 with HTTP; Sat, 27 Jun 2015 01:49:46 -0700 (PDT)
In-Reply-To: <CABCOCHTwXuVs+LLMbANrL+RMrODcGDyPxgZBTZqAnDROVSqzzw@mail.gmail.com>
References: <CADJ9OA-g5ijXJQz_uPiz2482yeD3wY9EZPkD+h1N47aa21ioDQ@mail.gmail.com> <CABCOCHTwXuVs+LLMbANrL+RMrODcGDyPxgZBTZqAnDROVSqzzw@mail.gmail.com>
From: Thomas Watteyne <watteyne@eecs.berkeley.edu>
Date: Sat, 27 Jun 2015 10:49:46 +0200
X-Google-Sender-Auth: re1KIfdI18EAN80_8A7DlSIXsZs
Message-ID: <CADJ9OA95iaBD2oLbjPqZmjru=G2UO0U08SQQdNtevs3LwT2F0A@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
Content-Type: multipart/alternative; boundary=089e0141a00679e8c205197bf1b7
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/MF7q1lqvVll8wcqSJHs9jwjF0EM>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, core <core@ietf.org>
Subject: Re: [core] [CoMI] multiple operations in a single request
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2015 08:50:10 -0000

--089e0141a00679e8c205197bf1b7
Content-Type: text/plain; charset=UTF-8

Andy,

Thanks. https://tools.ietf.org/html/draft-vanderstok-core-comi-06 now says:

[p4] TODO: Introduce CoAP Patch options to allow modification to subsets of
resource.
[p24] TODO: Define where PATCH is needed.

I assume that you are introducing PATCH in -07. Can you quantify how
lightweight this will be, e.g. how many cells can I add/remove in a single
packet?

Thomas

On Sat, Jun 27, 2015 at 12:51 AM, Andy Bierman <andy@yumaworks.com> wrote:

>
>
> On Fri, Jun 26, 2015 at 3:32 PM, Thomas Watteyne <
> watteyne@eecs.berkeley.edu> wrote:
>
>> In the 6TiSCH context, CoMI can be used to manage a TSCH schedule, which
>> involves adding/removing cells (atomic layer 2 resources).
>>
>> Cells are represented in the 6top YANG model as a list called "CellList" (
>> https://tools.ietf.org/html/draft-ietf-6tisch-6top-interface-03#section-4.1).
>> The way CoMI is written now (draft-vanderstok-core-comi-06), one CoMI
>> request is needed for each operation. That is, if I want to schedule 10
>> cells between nodes A and B, I will need 10 PUT requests to node A, and 10
>> to node B. If these are confirmable CoAP packets, that's a lot of packets.
>> These will be short requests, but will eat up an enormous amount of
>> bandwidth.
>>
>> I'd like to be able to issue a single request to node A and a single
>> request to node B to carry out all of these operations, by aggregating
>> multiple "operations" in a single CoMI request (a single/small number of
>> CoAP packets).
>>
>> What does CoMI offer me today to do this? Should we write the YANG model
>> in some particular way? What is envisioned in a future revision of CoMI to
>> answer this need.
>>
>>
> I think the YANG Patch media type could be used with CoMI.
> This allows multiple edits on different target resources.
>
>
> You could also do a plain PATCH on the datastore root, and provide
> the subtrees you want to change.
>
>
>
>
>> Thanks,
>> Thomas
>>
>
>
> Andy
>
>
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>
>

--089e0141a00679e8c205197bf1b7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Andy,<div><br></div><div>Thanks. <a href=3D"https://tools.=
ietf.org/html/draft-vanderstok-core-comi-06">https://tools.ietf.org/html/dr=
aft-vanderstok-core-comi-06</a> now says:</div><div><br></div><div>[p4] TOD=
O: Introduce CoAP Patch options to allow modification to subsets of resourc=
e.<br></div><div>[p24]=C2=A0TODO: Define where PATCH is needed.</div><div><=
br></div><div>I assume that you are introducing PATCH in -07. Can you quant=
ify how lightweight this will be, e.g. how many cells can I add/remove in a=
 single packet?</div><div><br></div><div>Thomas</div></div><div class=3D"gm=
ail_extra"><br><div class=3D"gmail_quote">On Sat, Jun 27, 2015 at 12:51 AM,=
 Andy Bierman <span dir=3D"ltr">&lt;<a href=3D"mailto:andy@yumaworks.com" t=
arget=3D"_blank">andy@yumaworks.com</a>&gt;</span> wrote:<br><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex"><div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div c=
lass=3D"gmail_quote"><div><div class=3D"h5">On Fri, Jun 26, 2015 at 3:32 PM=
, Thomas Watteyne <span dir=3D"ltr">&lt;<a href=3D"mailto:watteyne@eecs.ber=
keley.edu" target=3D"_blank">watteyne@eecs.berkeley.edu</a>&gt;</span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">In the 6TiSCH context=
, CoMI can be used to manage a TSCH schedule, which involves adding/removin=
g cells (atomic layer 2 resources).<div><br></div><div>Cells are represente=
d in the 6top YANG model as a list called &quot;CellList&quot; (<a href=3D"=
https://tools.ietf.org/html/draft-ietf-6tisch-6top-interface-03#section-4.1=
" target=3D"_blank">https://tools.ietf.org/html/draft-ietf-6tisch-6top-inte=
rface-03#section-4.1</a>). The way CoMI is written now (draft-vanderstok-co=
re-comi-06), one CoMI request is needed for each operation. That is, if I w=
ant to schedule 10 cells between nodes A and B, I will need 10 PUT requests=
 to node A, and 10 to node B. If these are confirmable CoAP packets, that&#=
39;s a lot of packets. These will be short requests, but will eat up an eno=
rmous amount of bandwidth.</div><div><br></div><div>I&#39;d like to be able=
 to issue a single request to node A and a single request to node B to carr=
y out all of these operations, by aggregating multiple &quot;operations&quo=
t; in a single CoMI request (a single/small number of CoAP packets).</div><=
div><br></div><div>What does CoMI offer me today to do this? Should we writ=
e the YANG model in some particular way? What is envisioned in a future rev=
ision of CoMI to answer this need.</div><div><br></div></div></blockquote><=
div><br></div></div></div><div>I think the YANG Patch media type could be u=
sed with CoMI.</div><div>This allows multiple edits on different target res=
ources.</div><div><br></div><div><br></div><div>You could also do a plain P=
ATCH on the datastore root, and provide</div><div>the subtrees you want to =
change.</div><div><br></div><div><br></div><div>=C2=A0</div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pa=
dding-left:1ex"><div dir=3D"ltr"><div></div><div>Thanks,</div><div>Thomas</=
div></div></blockquote><div><br></div><div><br></div><div>Andy</div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex">
<br>_______________________________________________<br>
core mailing list<br>
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/core</a><br>
<br></blockquote></div><br></div></div>
</blockquote></div><br></div>

--089e0141a00679e8c205197bf1b7--


From nobody Sat Jun 27 03:53:35 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7929C1AC3CB; Sat, 27 Jun 2015 03:53:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 634rlL_i3j3K; Sat, 27 Jun 2015 03:53:30 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C45AA1AC428; Sat, 27 Jun 2015 03:53:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::b]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5RArISQ024756; Sat, 27 Jun 2015 12:53:18 +0200 (CEST)
Received: from alma.local (p5DC7EA60.dip0.t-ipconnect.de [93.199.234.96]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mJX4G3DZbz9905; Sat, 27 Jun 2015 12:53:18 +0200 (CEST)
Message-ID: <558E809C.5020409@tzi.org>
Date: Sat, 27 Jun 2015 12:53:16 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: dtls-iot@ietf.org, core@ietf.org, ace@ietf.org, cose@ietf.org, t2trg@irtf.org
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/acuYOHXzZWKTJV97-8N3KX4O5LY>
Subject: [core] Constrained Node/Network Cluster @ IETF93, "final" version
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2015 10:53:31 -0000

Below is the "final" version of the eclectic IoT agenda (I have filled
in the T2TRG Sat/Sun meeting, which is waiting for its room
assignment).  Again, there is still some potential for changes.

Apart from a dozen room changes, the main difference from the early
version is that the second 6lo and 6tisch meetings were swapped.

GrÃ¼ÃŸe, Carsten


Carsten Bormann wrote:
> A first draft version of the IETF93 agenda is out.
> ** THIS IS GOING TO CHANGE ** for conflict resolution,
> so please don't make travel arrangements based on it.
>
> Here is my usual eclectic condensed agenda built from that.
> (Bye, bye, appsawg.  lwig over roll is interesting; at least we do
> have a roll meeting at all.)
> Note that the t2trg meeting on Monday is a "summary" meeting for those
> who haven't been able to join during the weekend (conflicts with
> Hackathon, ICNRG, etc.)
>
> All times are CEST (UTC+0200) (the browser timezone function appears
> to have vanished from https://datatracker.ietf.org/meeting/agenda-utc,
> but maybe we can reinstate that for those who want to listen from
> remote).
>
> Sorry for the duplicate posting, the IETF mail system does not allow
> sending to all 9 mailing lists at the same time.

SATURDAY, July 18, 2015

1000-1800  Session I
(TBD)   	IRTF*** t2trg   Proposed Thing-to-thing Research Group
0900-2100  IETF Hackathon - Chez Louis

SUNDAY, July 19, 2015

0900-1600  Session II
(TBD)   	IRTF*** t2trg   Proposed Thing-to-thing Research Group
0900-1800  IETF Hackathon - Chez Louis
1600-1700  Newcomers' Meet and Greet (open to Newcomers and WG chairs
only) - Garden Terrace
1700-1900  Welcome Reception - Grand Hilton Ballroom

MONDAY, July 20, 2015

0900-1130  Morning Session I
Grand Hilton BR	ART	appsawg	ART Area General Applications Working Group WG
Karlin I/II	OPS	anima	Autonomic Networking Integrated Model and Approach WG
Berlin/Brussels	SEC ***	cose	CBOR Object Signing and Encryption WG -
10:00 - 11:30
Congress H II	TSV	rmcat	RTP Media Congestion Avoidance Techniques WG

1300-1500  Afternoon Session I
Congress H III	INT	6man	IPv6 Maintenance WG
Grand Hilton BR	RTG	detnet	Deterministic Networking BOF

1520-1720  Afternoon Session II
Berlin/Brussels	IRTF***	t2trg	Proposed Thing-to-Thing Research Group
Congress H III	TSV	tcpinc	TCP Increased Security WG

1740-1840  Afternoon Session III
Congress H II	INT ***	6lo	IPv6 over Networks of Resource-constrained
Nodes WG
Congress H I	OPS	opsarea	Operations & Management Area Open Meeting
Karlin I/II	SEC	httpauth	Hypertext Transfer Protocol Authentication WG

1850-1950  Afternoon Session IV
Congress H III	INT	intarea	Internet Area Working Group WG

TUESDAY, July 21, 2015

1300-1500  Afternoon Session I
Congress H I	ART	httpbis	Hypertext Transfer Protocol WG
Athens/Barcel.	INT ***	6tisch	IPv6 over the TSCH mode of IEEE 802.15.4e WG
Congress H II	OPS	v6ops	IPv6 Operations WG - Joint Session with SUNSET4

1520-1720  Afternoon Session II
Karlin I/II	ART ***	core	Constrained RESTful Environments WG
Congress H II	RTG	rtgarea	Routing Area Open Meeting
Congress H III	SEC	tls	Transport Layer Security WG

1740-1840  Afternoon Session III
Congress H III	ART	uta	Using TLS in Applications WG
Berlin/Brussels	INT ***	lwig	Light-Weight Implementation Guidance WG
Congress H I	RTG ***	roll	Routing Over Low power and Lossy networks WG

WEDNESDAY, July 22, 2015

0900-1130  Morning Session I
Athens/Barcel.	INT	dnssd	Extensions for Scalable DNS Service Discovery  WG
Karlin I/II	SEC ***	ace	Authentication and Authorization for Constrained
Environments WG
Grand Hilton BR	SEC	tls	Transport Layer Security WG

1300-1530  Afternoon Session I
Grand Hilton BR	INT	homenet	Home Networking WG
Berlin/Brussels	RTG	bier	Bit Indexed Explicit Replication WG

1740-1940  Afternoon Session III
Athens/Barcel.	SEC	oauth	Web Authorization Protocol WG
Congress H III	TSV	tsvwg	Transport Area Working Group WG

THURSDAY, July 23, 2015

1300-1500  Afternoon Session I
Congress H II	SEC	saag	Security Area Open Meeting
Karlin I/II	TSV	taps	Transport Services WG

1520-1720  Afternoon Session II
Congress H I	INT ***	6lo	IPv6 over Networks of Resource-constrained Nodes WG
Congress H III	SEC	acme	Automated Certificate Management Environment WG
Karlin I/II	TSV	tsvwg	Transport Area Working Group WG

1740-1910  Afternoon Session III
Karlin I/II	ART	webpush	Web-Based Push Notifications WG
Congress H I	OPS	anima	Autonomic Networking Integrated Model and Approach WG
Grand Hilton BR	TSV	tsvarea	Transport Area Open Meeting

FRIDAY, July 24, 2015

0900-1130  Morning Session I
Grand Hilton BR	OPS	v6ops	IPv6 Operations WG - Joint Session with SUNSET4
Congress H I	SEC	openpgp	Open Specification for Pretty Good Privacy WG

1150-1320  Afternoon Session I
Karlin I/II	ART ***	core	Constrained RESTful Environments WG
Congress H I	SEC	tokbind	Token Binding WG


From nobody Sat Jun 27 06:37:46 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A00B51A1B96 for <core@ietfa.amsl.com>; Sat, 27 Jun 2015 06:37:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.349
X-Spam-Level: 
X-Spam-Status: No, score=0.349 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gO8VnM-SUTR5 for <core@ietfa.amsl.com>; Sat, 27 Jun 2015 06:37:43 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CE7931A1B91 for <core@ietf.org>; Sat, 27 Jun 2015 06:37:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [134.102.201.11]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5RDbcDo004304; Sat, 27 Jun 2015 15:37:39 +0200 (CEST)
Received: from alma.local (p5DC7EA60.dip0.t-ipconnect.de [93.199.234.96]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mJbjt3gMvz9B3l; Sat, 27 Jun 2015 15:37:38 +0200 (CEST)
Message-ID: <558EA720.2010000@tzi.org>
Date: Sat, 27 Jun 2015 15:37:36 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: Barry Leiba <barryleiba@computer.org>
References: <CAC4RtVA5eC4xuyGn-MVvE__+ztqB3btUvMcWTu3a3qrSA+hzCA@mail.gmail.com> <CAAzbHvYVVZDMS=_nnGmRkxKHa49UGdGtVEjy_UNmNL6PvagGbQ@mail.gmail.com> <CAC4RtVDMUWo00jyng6YGwj-dUKoztZAr_2uQ_64vg_EUureFUA@mail.gmail.com> <CAC4RtVC224_99ORJKu3tpFtYRSvNn7Xje8Km7kUMFZ3=9nBt_Q@mail.gmail.com> <558D7D84.8070006@tzi.org> <CALaySJLeP6rPCTGDsMbGDiBfinCyqUuvrqiafgFU9zhgN9XjVw@mail.gmail.com>
In-Reply-To: <CALaySJLeP6rPCTGDsMbGDiBfinCyqUuvrqiafgFU9zhgN9XjVw@mail.gmail.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/iKhEsd1wKvHhSt-EVMKG8hD1cBg>
Cc: "core@ietf.org WG" <core@ietf.org>, Klaus Hartke <hartke@tzi.org>
Subject: Re: [core] What's the status of the "observe" doc after IESG Evaluation?
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2015 13:37:43 -0000

Barry Leiba wrote:
> Thanks for all that (below).  And, so, the currently posted draft
> reflects all the changes, and you're happy that it's ready to go to
> the RFC Editor?

There is always one more thing, sorry.

Can you please add this RFC editor note:

At the end of Section 3.5:
OLD:
   observers.
NEW:
   observers (Section 4.5).

Apart from that: Yes, and yes.

GrÃ¼ÃŸe, Carsten


From nobody Mon Jun 29 00:01:45 2015
Return-Path: <stokcons@xs4all.nl>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1032D1A1BA7; Mon, 29 Jun 2015 00:01:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.131
X-Spam-Level: 
X-Spam-Status: No, score=-1.131 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SORBS_WEB=0.77, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id M-PEgNrEdVSo; Mon, 29 Jun 2015 00:01:41 -0700 (PDT)
Received: from lb3-smtp-cloud3.xs4all.net (lb3-smtp-cloud3.xs4all.net [194.109.24.30]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 283511A1BA5; Mon, 29 Jun 2015 00:01:40 -0700 (PDT)
Received: from mail.xs4all.nl ([194.109.20.205]) by smtp-cloud3.xs4all.net with ESMTP id m71d1q0054RV18J0171de5; Mon, 29 Jun 2015 09:01:38 +0200
Received: from [147.67.241.226] by mail.xs4all.nl with HTTP (HTTP/1.1 POST); Mon, 29 Jun 2015 09:01:37 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed
Content-Transfer-Encoding: 7bit
Date: Mon, 29 Jun 2015 09:01:37 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: Thomas Watteyne <watteyne@eecs.berkeley.edu>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
In-Reply-To: <CADJ9OA95iaBD2oLbjPqZmjru=G2UO0U08SQQdNtevs3LwT2F0A@mail.gmail.com>
References: <CADJ9OA-g5ijXJQz_uPiz2482yeD3wY9EZPkD+h1N47aa21ioDQ@mail.gmail.com> <CABCOCHTwXuVs+LLMbANrL+RMrODcGDyPxgZBTZqAnDROVSqzzw@mail.gmail.com> <CADJ9OA95iaBD2oLbjPqZmjru=G2UO0U08SQQdNtevs3LwT2F0A@mail.gmail.com>
Message-ID: <281a3494ecde4f0b80594284f8b17efa@xs4all.nl>
X-Sender: stokcons@xs4all.nl (xTSY9JEjIgQ8rv/qzO9XULwP7tdOqLOd)
User-Agent: XS4ALL Webmail
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/EsFyxmO73eW3Ia5xWudqW82yoUQ>
Cc: 6tisch@ietf.org, core <core@ietf.org>
Subject: Re: [core] [CoMI] multiple operations in a single request
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2015 07:01:43 -0000

Hi Thomas,

the latest (not published yet) version includes the use of the PATCH 
command.
There is a RFC on JSON patch, we could refer to that in the PATCH I-D.
Further link-format is sufficient, no?

The number of items in the payload depends on the the server.
If large strings need to be replaced, the size is quickly large.

I was thinking of just using JSON CBOR with payloads like:

{ hash1: value1,
hash2: value2}

and changing individual list items.

I don't know about YANG PATCH media type.

Peter

Thomas Watteyne schreef op 2015-06-27 10:49:
> Andy,
> 
> Thanks. https://tools.ietf.org/html/draft-vanderstok-core-comi-06 now
> says:
> 
> [p4] TODO: Introduce CoAP Patch options to allow modification to
> subsets of resource.
> 
> [p24] TODO: Define where PATCH is needed.
> 
> I assume that you are introducing PATCH in -07. Can you quantify how
> lightweight this will be, e.g. how many cells can I add/remove in a
> single packet?
> 
> Thomas
> 
> On Sat, Jun 27, 2015 at 12:51 AM, Andy Bierman <andy@yumaworks.com>
> wrote:
> 
>> On Fri, Jun 26, 2015 at 3:32 PM, Thomas Watteyne
>> <watteyne@eecs.berkeley.edu> wrote:
>> 
>>> In the 6TiSCH context, CoMI can be used to manage a TSCH schedule,
>>> which involves adding/removing cells (atomic layer 2 resources).
>>> 
>>> Cells are represented in the 6top YANG model as a list called
>>> "CellList"
>>> 
>> 
> (https://tools.ietf.org/html/draft-ietf-6tisch-6top-interface-03#section-4.1).
>>> The way CoMI is written now (draft-vanderstok-core-comi-06), one
>>> CoMI request is needed for each operation. That is, if I want to
>>> schedule 10 cells between nodes A and B, I will need 10 PUT
>>> requests to node A, and 10 to node B. If these are confirmable
>>> CoAP packets, that's a lot of packets. These will be short
>>> requests, but will eat up an enormous amount of bandwidth.
>>> 
>>> I'd like to be able to issue a single request to node A and a
>>> single request to node B to carry out all of these operations, by
>>> aggregating multiple "operations" in a single CoMI request (a
>>> single/small number of CoAP packets).
>>> 
>>> What does CoMI offer me today to do this? Should we write the YANG
>>> model in some particular way? What is envisioned in a future
>>> revision of CoMI to answer this need.
>> 
>> I think the YANG Patch media type could be used with CoMI.
>> This allows multiple edits on different target resources.
>> 
>> You could also do a plain PATCH on the datastore root, and provide
>> the subtrees you want to change.
>> 
>>> Thanks,
>>> Thomas
>> 
>> Andy
>> 
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
> 
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From nobody Mon Jun 29 00:35:19 2015
Return-Path: <twatteyne@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0344B1A6F39; Mon, 29 Jun 2015 00:35:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Level: 
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YnoY8rPt6yD6; Mon, 29 Jun 2015 00:35:15 -0700 (PDT)
Received: from mail-wi0-x22c.google.com (mail-wi0-x22c.google.com [IPv6:2a00:1450:400c:c05::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B07001A1B87; Mon, 29 Jun 2015 00:35:14 -0700 (PDT)
Received: by wiwl6 with SMTP id l6so90886089wiw.0; Mon, 29 Jun 2015 00:35:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=nd1gojKSFsyI/We1rx4msQUP1cpT9+U9mOVWq2tMpRw=; b=yYpCxJ/CsdxPyW1xFn8paD5GphCeY1EW2uUhW9BmQ5eYvlkyiW35f/5Rr0ltc5apRg rBwQdDm2jo4/bq4Alrrrd095GTfCXIpEh+UoW2K33V1RGy5iEhuldamE3CRHoD3VLWCU nIRj18IieRHNsCN62lhXYq2uVKxwojmiuXw9xKHc4q2pTxj4P7c9IlzxdRTcXPxTUR2M x5cPPnStcsqNnSKxMdlnnd41mO7RDJkpzrYrHNmoUUopbTZUEOGOlFfvNK/SOxQvGROM CBTTku7siml+DKj64y0F1vCTv5+zu2zB80c2PTyf1eS1yNdeoSBHsJyyDOQCfntHmgkS kNUg==
X-Received: by 10.194.174.194 with SMTP id bu2mr28360672wjc.76.1435563313224;  Mon, 29 Jun 2015 00:35:13 -0700 (PDT)
MIME-Version: 1.0
Sender: twatteyne@gmail.com
Received: by 10.28.134.146 with HTTP; Mon, 29 Jun 2015 00:34:53 -0700 (PDT)
In-Reply-To: <281a3494ecde4f0b80594284f8b17efa@xs4all.nl>
References: <CADJ9OA-g5ijXJQz_uPiz2482yeD3wY9EZPkD+h1N47aa21ioDQ@mail.gmail.com> <CABCOCHTwXuVs+LLMbANrL+RMrODcGDyPxgZBTZqAnDROVSqzzw@mail.gmail.com> <CADJ9OA95iaBD2oLbjPqZmjru=G2UO0U08SQQdNtevs3LwT2F0A@mail.gmail.com> <281a3494ecde4f0b80594284f8b17efa@xs4all.nl>
From: Thomas Watteyne <watteyne@eecs.berkeley.edu>
Date: Mon, 29 Jun 2015 09:34:53 +0200
X-Google-Sender-Auth: Sau2Lcd0u0AvjwJuJ6IhCeZ6GuQ
Message-ID: <CADJ9OA_MsP=ZVjs8mR9dxqeUy0m5AeVNx4s3YCf5nZMVqdjfJw@mail.gmail.com>
To: "consultancy@vanderstok.org" <consultancy@vanderstok.org>
Content-Type: multipart/alternative; boundary=089e0141a0065662020519a32113
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/jJopwq9PEvoOhhoymgHYeysS2Ag>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, core <core@ietf.org>
Subject: Re: [core] [CoMI] multiple operations in a single request
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2015 07:35:17 -0000

--089e0141a0065662020519a32113
Content-Type: text/plain; charset=UTF-8

Peter,
Thanks. I'm looking forward to "counting bytes" and see how compact a PATCH
operation is represented in CoMI.
Thomas

On Mon, Jun 29, 2015 at 9:01 AM, peter van der Stok <stokcons@xs4all.nl>
wrote:

> Hi Thomas,
>
> the latest (not published yet) version includes the use of the PATCH
> command.
> There is a RFC on JSON patch, we could refer to that in the PATCH I-D.
> Further link-format is sufficient, no?
>
> The number of items in the payload depends on the the server.
> If large strings need to be replaced, the size is quickly large.
>
> I was thinking of just using JSON CBOR with payloads like:
>
> { hash1: value1,
> hash2: value2}
>
> and changing individual list items.
>
> I don't know about YANG PATCH media type.
>
> Peter
>
> Thomas Watteyne schreef op 2015-06-27 10:49:
>
>  Andy,
>>
>> Thanks. https://tools.ietf.org/html/draft-vanderstok-core-comi-06 now
>> says:
>>
>> [p4] TODO: Introduce CoAP Patch options to allow modification to
>> subsets of resource.
>>
>> [p24] TODO: Define where PATCH is needed.
>>
>> I assume that you are introducing PATCH in -07. Can you quantify how
>> lightweight this will be, e.g. how many cells can I add/remove in a
>> single packet?
>>
>> Thomas
>>
>> On Sat, Jun 27, 2015 at 12:51 AM, Andy Bierman <andy@yumaworks.com>
>> wrote:
>>
>>  On Fri, Jun 26, 2015 at 3:32 PM, Thomas Watteyne
>>> <watteyne@eecs.berkeley.edu> wrote:
>>>
>>>  In the 6TiSCH context, CoMI can be used to manage a TSCH schedule,
>>>> which involves adding/removing cells (atomic layer 2 resources).
>>>>
>>>> Cells are represented in the 6top YANG model as a list called
>>>> "CellList"
>>>>
>>>>
>>>  (
>> https://tools.ietf.org/html/draft-ietf-6tisch-6top-interface-03#section-4.1
>> ).
>>
>>> The way CoMI is written now (draft-vanderstok-core-comi-06), one
>>>> CoMI request is needed for each operation. That is, if I want to
>>>> schedule 10 cells between nodes A and B, I will need 10 PUT
>>>> requests to node A, and 10 to node B. If these are confirmable
>>>> CoAP packets, that's a lot of packets. These will be short
>>>> requests, but will eat up an enormous amount of bandwidth.
>>>>
>>>> I'd like to be able to issue a single request to node A and a
>>>> single request to node B to carry out all of these operations, by
>>>> aggregating multiple "operations" in a single CoMI request (a
>>>> single/small number of CoAP packets).
>>>>
>>>> What does CoMI offer me today to do this? Should we write the YANG
>>>> model in some particular way? What is envisioned in a future
>>>> revision of CoMI to answer this need.
>>>>
>>>
>>> I think the YANG Patch media type could be used with CoMI.
>>> This allows multiple edits on different target resources.
>>>
>>> You could also do a plain PATCH on the datastore root, and provide
>>> the subtrees you want to change.
>>>
>>>  Thanks,
>>>> Thomas
>>>>
>>>
>>> Andy
>>>
>>>  _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>

--089e0141a0065662020519a32113
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Peter,<div>Thanks. I&#39;m looking forward to &quot;counti=
ng bytes&quot; and see how compact a PATCH operation is represented in CoMI=
.</div><div>Thomas</div></div><div class=3D"gmail_extra"><br><div class=3D"=
gmail_quote">On Mon, Jun 29, 2015 at 9:01 AM, peter van der Stok <span dir=
=3D"ltr">&lt;<a href=3D"mailto:stokcons@xs4all.nl" target=3D"_blank">stokco=
ns@xs4all.nl</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Tho=
mas,<br>
<br>
the latest (not published yet) version includes the use of the PATCH comman=
d.<br>
There is a RFC on JSON patch, we could refer to that in the PATCH I-D.<br>
Further link-format is sufficient, no?<br>
<br>
The number of items in the payload depends on the the server.<br>
If large strings need to be replaced, the size is quickly large.<br>
<br>
I was thinking of just using JSON CBOR with payloads like:<br>
<br>
{ hash1: value1,<br>
hash2: value2}<br>
<br>
and changing individual list items.<br>
<br>
I don&#39;t know about YANG PATCH media type.<br>
<br>
Peter<br>
<br>
Thomas Watteyne schreef op 2015-06-27 10:49:<div class=3D"HOEnZb"><div clas=
s=3D"h5"><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Andy,<br>
<br>
Thanks. <a href=3D"https://tools.ietf.org/html/draft-vanderstok-core-comi-0=
6" rel=3D"noreferrer" target=3D"_blank">https://tools.ietf.org/html/draft-v=
anderstok-core-comi-06</a> now<br>
says:<br>
<br>
[p4] TODO: Introduce CoAP Patch options to allow modification to<br>
subsets of resource.<br>
<br>
[p24] TODO: Define where PATCH is needed.<br>
<br>
I assume that you are introducing PATCH in -07. Can you quantify how<br>
lightweight this will be, e.g. how many cells can I add/remove in a<br>
single packet?<br>
<br>
Thomas<br>
<br>
On Sat, Jun 27, 2015 at 12:51 AM, Andy Bierman &lt;<a href=3D"mailto:andy@y=
umaworks.com" target=3D"_blank">andy@yumaworks.com</a>&gt;<br>
wrote:<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
On Fri, Jun 26, 2015 at 3:32 PM, Thomas Watteyne<br>
&lt;<a href=3D"mailto:watteyne@eecs.berkeley.edu" target=3D"_blank">watteyn=
e@eecs.berkeley.edu</a>&gt; wrote:<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
In the 6TiSCH context, CoMI can be used to manage a TSCH schedule,<br>
which involves adding/removing cells (atomic layer 2 resources).<br>
<br>
Cells are represented in the 6top YANG model as a list called<br>
&quot;CellList&quot;<br>
<br>
</blockquote>
<br>
</blockquote>
(<a href=3D"https://tools.ietf.org/html/draft-ietf-6tisch-6top-interface-03=
#section-4.1" rel=3D"noreferrer" target=3D"_blank">https://tools.ietf.org/h=
tml/draft-ietf-6tisch-6top-interface-03#section-4.1</a>).<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The way CoMI is written now (draft-vanderstok-core-comi-06), one<br>
CoMI request is needed for each operation. That is, if I want to<br>
schedule 10 cells between nodes A and B, I will need 10 PUT<br>
requests to node A, and 10 to node B. If these are confirmable<br>
CoAP packets, that&#39;s a lot of packets. These will be short<br>
requests, but will eat up an enormous amount of bandwidth.<br>
<br>
I&#39;d like to be able to issue a single request to node A and a<br>
single request to node B to carry out all of these operations, by<br>
aggregating multiple &quot;operations&quot; in a single CoMI request (a<br>
single/small number of CoAP packets).<br>
<br>
What does CoMI offer me today to do this? Should we write the YANG<br>
model in some particular way? What is envisioned in a future<br>
revision of CoMI to answer this need.<br>
</blockquote>
<br>
I think the YANG Patch media type could be used with CoMI.<br>
This allows multiple edits on different target resources.<br>
<br>
You could also do a plain PATCH on the datastore root, and provide<br>
the subtrees you want to change.<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Thanks,<br>
Thomas<br>
</blockquote>
<br>
Andy<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
_______________________________________________<br>
core mailing list<br>
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/core</a><br>
</blockquote></blockquote>
<br>
<br>
_______________________________________________<br>
core mailing list<br>
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/core</a><br>
</blockquote>
</div></div></blockquote></div><br></div>

--089e0141a0065662020519a32113--


From nobody Mon Jun 29 07:11:52 2015
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 853D61AC40A; Mon, 29 Jun 2015 07:11:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.9
X-Spam-Level: 
X-Spam-Status: No, score=-101.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, USER_IN_WHITELIST=-100] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UfcQgtGbnAcS; Mon, 29 Jun 2015 07:11:49 -0700 (PDT)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 8A5A81AC41D; Mon, 29 Jun 2015 07:11:47 -0700 (PDT)
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: The IESG <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.0.4.p1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20150629141147.19892.8317.idtracker@ietfa.amsl.com>
Date: Mon, 29 Jun 2015 07:11:47 -0700
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/t0PMNMa54wuH6XuujymU_cQ9V3E>
Cc: core chair <core-chairs@tools.ietf.org>, core mailing list <core@ietf.org>, RFC Editor <rfc-editor@rfc-editor.org>
Subject: [core] Protocol Action: 'Observing Resources in CoAP' to Proposed Standard (draft-ietf-core-observe-16.txt)
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2015 14:11:50 -0000

The IESG has approved the following document:
- 'Observing Resources in CoAP'
  (draft-ietf-core-observe-16.txt) as Proposed Standard

This document is the product of the Constrained RESTful Environments
Working Group.

The IESG contact persons are Ben Campbell, Barry Leiba and Alissa Cooper.

A URL of this Internet Draft is:
https://datatracker.ietf.org/doc/draft-ietf-core-observe/





Technical Summary

This specification extends the CoAP protocol (RFC 7252) to allow for
CoAP clients to "observe" changing server-side resources, using a
model of eventual consistency (not every intermediate state is
necessarily delivered).  It is intended for standards-track as it is a
widely implemented extension of a standards-track protocol.

Review and Consensus

The specification was developed along with the base CoAP specification
and received significant review by active WG members and implementers.
One remaining smaller issue without an obvious answer, how to actively
cancel an ongoing observation from the client side, remained under
discussion for quite some time before a solution was finally picked at
IETF89 in London.

Several implementations of this final (post-London) version have
completed an interoperability test event with a very good score.
Further implementer feedback also was positive.
Parts of the specification have already been picked up earlier in OMA
LWM2M and are an element of their 1.0 specification.

The specification benefited from the directorate reviews of the base
specification (in particular with respect to congestion control), but
no separate directorate review of this extension has been performed.

Personnel

Carsten Bormann is the document shepherd.
Barry Leiba is the responsible Area Director.

RFC Editor note

Please make the following change at the end of Section 3.5:
OLD
   observers.
NEW
   observers (Section 4.5).


From nobody Mon Jun 29 08:13:50 2015
Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 429151A19EC; Mon, 29 Jun 2015 08:13:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MvPrqEGq1DnT; Mon, 29 Jun 2015 08:13:46 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0103.outbound.protection.outlook.com [65.55.169.103]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AC02E1A0AF1; Mon, 29 Jun 2015 08:13:44 -0700 (PDT)
Received: from CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) by CO2PR0601MB792.namprd06.prod.outlook.com (10.141.247.144) with Microsoft SMTP Server (TLS) id 15.1.195.15; Mon, 29 Jun 2015 15:13:42 +0000
Received: from CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) by CO2PR0601MB792.namprd06.prod.outlook.com ([10.141.247.144]) with mapi id 15.01.0195.005; Mon, 29 Jun 2015 15:13:42 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Thomas Watteyne <watteyne@eecs.berkeley.edu>, "consultancy@vanderstok.org" <consultancy@vanderstok.org>
Thread-Topic: [6tisch] [core] [CoMI] multiple operations in a single request
Thread-Index: AQHQsGKd5tNVqxssPE2mpRpsgvIRs53AC6oAgAMGcoCAAAlLgIAAd+SA
Date: Mon, 29 Jun 2015 15:13:41 +0000
Message-ID: <CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0@CO2PR0601MB792.namprd06.prod.outlook.com>
References: <CADJ9OA-g5ijXJQz_uPiz2482yeD3wY9EZPkD+h1N47aa21ioDQ@mail.gmail.com> <CABCOCHTwXuVs+LLMbANrL+RMrODcGDyPxgZBTZqAnDROVSqzzw@mail.gmail.com> <CADJ9OA95iaBD2oLbjPqZmjru=G2UO0U08SQQdNtevs3LwT2F0A@mail.gmail.com> <281a3494ecde4f0b80594284f8b17efa@xs4all.nl> <CADJ9OA_MsP=ZVjs8mR9dxqeUy0m5AeVNx4s3YCf5nZMVqdjfJw@mail.gmail.com>
In-Reply-To: <CADJ9OA_MsP=ZVjs8mR9dxqeUy0m5AeVNx4s3YCf5nZMVqdjfJw@mail.gmail.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: eecs.berkeley.edu; dkim=none (message not signed) header.d=none;
x-originating-ip: [207.96.192.122]
x-microsoft-exchange-diagnostics: 1; CO2PR0601MB792; 5:GtE7GDxM41Zhhsz9MRamXh/ciNDcN7/wVq8IiWdo5i6iDBwx9acx+IeYJemFNc72g/8Oxlre0TOI9q/cOUNzlfQB3JTRdZbkPP2ED/j88vdiDkQQlQbjDCh/MyJaz9kLljpjt8785n/+r4UNZabIpw==; 24:CEXYyGLgm+ka2qWKOBllSbk7/XmYSiafP1x94YwZ8smdPI41qh4loC5D15wlb4TYQQEtOfITra0BZINESvTbISCK91+rrftXRMPS74Q8NgE=; 20:9MaeypUzs99xOdKU1m4bGd6sEqmsoEiC/kq16dj4sA/ig3jEgvfImG2bqDxu7kjejUBfj4DnjXzJxqqxqD/Row==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0601MB792;
x-microsoft-antispam-prvs: <CO2PR0601MB7925DDBEC562731F51F38A8FEAA0@CO2PR0601MB792.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:CO2PR0601MB792; BCL:0; PCL:0; RULEID:;  SRVR:CO2PR0601MB792; 
x-forefront-prvs: 0622A98CD5
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(38414003)(377424004)(24454002)(164054003)(377454003)(76576001)(106116001)(5001960100002)(2501003)(99286002)(50986999)(87936001)(86362001)(99936001)(54356999)(76176999)(2171001)(2656002)(92566002)(189998001)(5002640100001)(19617315012)(5001770100001)(19627595001)(5003600100002)(66066001)(2950100001)(122556002)(40100003)(2900100001)(46102003)(102836002)(15975445007)(77096005)(16236675004)(18206015028)(93886004)(19580405001)(77156002)(19300405004)(19625215002)(19580395003)(74316001)(17760045003)(62966003)(33656002)(7099028); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR0601MB792; H:CO2PR0601MB792.namprd06.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
Content-Type: multipart/related; boundary="_004_CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0CO2PR0601MB792na_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2015 15:13:41.2365 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0601MB792
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/r8Dl4BzaQj6gJovyxo_fwTiRRO4>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, core <core@ietf.org>
Subject: Re: [core] [6tisch] [CoMI] multiple operations in a single request
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2015 15:13:49 -0000

--_004_CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0CO2PR0601MB792na_
Content-Type: multipart/alternative;
	boundary="_000_CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0CO2PR0601MB792na_"

--_000_CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0CO2PR0601MB792na_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgVGhvbWFzDQoNClRvIGZhY2lsaXRhdGUgdGhlIGNyZWF0aW9uIG9mIHRoaXMgZW5jb2Rpbmcs
IGNhbiB5b3UgcHJvdmlkZSBhbiBleGFtcGxlIG9mIHdoYXQgeW91IHdhbnQgdG8gYXJjaGl2ZSB1
c2luZyBTUUwgc3R5bGUgc3RhdGVtZW50IGZvciBleGFtcGxlLg0KDQpGb3IgZXhhbXBsZToNCg0K
SU5TRVJUIElOVE8gQ2VsbExpc3QNCiAgIChDZWxsSUQsIFNsb3RmcmFtZUlELCBTbG90T2Zmc2V0
LCBDaGFubmVsT2Zmc2V0LCBMaW5rT3B0aW9uLCBMaW5rVHlwZSwgQ2VsbFR5cGUsIE5vZGVBZGRy
ZXNzLCBUcmFja0lEKQ0KVkFMVUVTDQogICAoMSwgMCwgMiwgNSwgMHgwMSwgMCwgMCwgP2xlYWZy
ZWYpOw0KDQpDb3VwbGUgb2YgY29tbWVudHM6DQoNCsK3ICAgICAgICAgQ2VsbElEDQoNClRoZSAg
Q2VsbElEIG5lZWQgdG8gYmUgdW5pcXVlIHNpbmNlIGl04oCZcyB0aGUga2V5IHdpdGhpbiB0aGUg
Q2VsbExpc3QuDQoNCkhvdyB0aGUgYXNzaWdubWVudCBvZiBDZWxsSURzICBpcyBleHBlY3RlZCB0
byBiZSBkb25lPw0KDQpUbyBiZSB1bmlxdWUsIHNob3VsZCB0aGUgc2VydmVyIGFzc2lnbiB0aGlz
IHZhbHVlIGFuZCByZXR1cm4gdGhlIHZhbHVlIGFzc2lnbmVkIHRvIHRoZSBjbGllbnQ/IChUaGlz
IG1pZ2h0IHJlcXVpcmUgdGhlIHVzZSBvZiBhIFJQQykNCg0KwrcgICAgICAgICBUcmFja0lEDQoN
CkN1cnJlbnRseSwgdGhlIFRyYWNrSUQgaXMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIGRhdGF0eXBl
IGxlYWZyZWYgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBDT01JIGRyYWZ0
DQoNCsK3ICAgICAgICAgZHJhZnQtdmFuZGVyc3Rvay1jb3JlLXBhdGNoLTAwDQoNClRoZSBjdXJy
ZW50IGRyYWZ0IGludHJvZHVjaW5nIHBhdGNoIGRvbuKAmXQgc2VlbSB0byBhbGxvdyBtdWx0aXBs
ZSBpbnNlcnRpb24gd2l0aGluIGEgbGlzdC4gSWYgdGhpcyBpcyBub3QgdGhlIGNhc2UsIEl0IHdp
bGwgYmUgbmljZSB0byBoYXZlIGFuIGV4YW1wbGUgYWRkZWQgdG8gdGhpcyBkcmFmdC4NCg0KW2Np
ZDppbWFnZTAwMS5qcGdAMDFDODY4RDguQkYwQkI3RTBdDQoNCk1pY2hlbCBWZWlsbGV0dGUNClN5
c3RlbSBBcmNoaXRlY3R1cmUgRGlyZWN0b3INClRyaWxsaWFudCBJbmMuDQpUZWw6IDQ1MC0zNzUt
MDU1NiBleHQuIDIzNw0KbWljaGVsLnZlaWxsZXR0ZUB0cmlsbGlhbnRpbmMuY29tPG1haWx0bzpt
aWNoZWwudmVpbGxldHRlQHRyaWxsaWFudGluYy5jb20+DQp3d3cudHJpbGxpYW50aW5jLmNvbTxo
dHRwOi8vd3d3LnRyaWxsaWFudGluYy5jb20vPg0KDQoNCg0KRnJvbTogNnRpc2NoIFttYWlsdG86
NnRpc2NoLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBUaG9tYXMgV2F0dGV5bmUNClNl
bnQ6IDI5IGp1aW4gMjAxNSAwMzozNQ0KVG86IGNvbnN1bHRhbmN5QHZhbmRlcnN0b2sub3JnDQpD
YzogNnRpc2NoQGlldGYub3JnOyBBbmR5IEJpZXJtYW47IGNvcmUNClN1YmplY3Q6IFJlOiBbNnRp
c2NoXSBbY29yZV0gW0NvTUldIG11bHRpcGxlIG9wZXJhdGlvbnMgaW4gYSBzaW5nbGUgcmVxdWVz
dA0KDQpQZXRlciwNClRoYW5rcy4gSSdtIGxvb2tpbmcgZm9yd2FyZCB0byAiY291bnRpbmcgYnl0
ZXMiIGFuZCBzZWUgaG93IGNvbXBhY3QgYSBQQVRDSCBvcGVyYXRpb24gaXMgcmVwcmVzZW50ZWQg
aW4gQ29NSS4NClRob21hcw0KDQpPbiBNb24sIEp1biAyOSwgMjAxNSBhdCA5OjAxIEFNLCBwZXRl
ciB2YW4gZGVyIFN0b2sgPHN0b2tjb25zQHhzNGFsbC5ubDxtYWlsdG86c3Rva2NvbnNAeHM0YWxs
Lm5sPj4gd3JvdGU6DQpIaSBUaG9tYXMsDQoNCnRoZSBsYXRlc3QgKG5vdCBwdWJsaXNoZWQgeWV0
KSB2ZXJzaW9uIGluY2x1ZGVzIHRoZSB1c2Ugb2YgdGhlIFBBVENIIGNvbW1hbmQuDQpUaGVyZSBp
cyBhIFJGQyBvbiBKU09OIHBhdGNoLCB3ZSBjb3VsZCByZWZlciB0byB0aGF0IGluIHRoZSBQQVRD
SCBJLUQuDQpGdXJ0aGVyIGxpbmstZm9ybWF0IGlzIHN1ZmZpY2llbnQsIG5vPw0KDQpUaGUgbnVt
YmVyIG9mIGl0ZW1zIGluIHRoZSBwYXlsb2FkIGRlcGVuZHMgb24gdGhlIHRoZSBzZXJ2ZXIuDQpJ
ZiBsYXJnZSBzdHJpbmdzIG5lZWQgdG8gYmUgcmVwbGFjZWQsIHRoZSBzaXplIGlzIHF1aWNrbHkg
bGFyZ2UuDQoNCkkgd2FzIHRoaW5raW5nIG9mIGp1c3QgdXNpbmcgSlNPTiBDQk9SIHdpdGggcGF5
bG9hZHMgbGlrZToNCg0KeyBoYXNoMTogdmFsdWUxLA0KaGFzaDI6IHZhbHVlMn0NCg0KYW5kIGNo
YW5naW5nIGluZGl2aWR1YWwgbGlzdCBpdGVtcy4NCg0KSSBkb24ndCBrbm93IGFib3V0IFlBTkcg
UEFUQ0ggbWVkaWEgdHlwZS4NCg0KUGV0ZXINCg0KVGhvbWFzIFdhdHRleW5lIHNjaHJlZWYgb3Ag
MjAxNS0wNi0yNyAxMDo0OToNCg0KQW5keSwNCg0KVGhhbmtzLiBodHRwczovL3Rvb2xzLmlldGYu
b3JnL2h0bWwvZHJhZnQtdmFuZGVyc3Rvay1jb3JlLWNvbWktMDYgbm93DQpzYXlzOg0KDQpbcDRd
IFRPRE86IEludHJvZHVjZSBDb0FQIFBhdGNoIG9wdGlvbnMgdG8gYWxsb3cgbW9kaWZpY2F0aW9u
IHRvDQpzdWJzZXRzIG9mIHJlc291cmNlLg0KDQpbcDI0XSBUT0RPOiBEZWZpbmUgd2hlcmUgUEFU
Q0ggaXMgbmVlZGVkLg0KDQpJIGFzc3VtZSB0aGF0IHlvdSBhcmUgaW50cm9kdWNpbmcgUEFUQ0gg
aW4gLTA3LiBDYW4geW91IHF1YW50aWZ5IGhvdw0KbGlnaHR3ZWlnaHQgdGhpcyB3aWxsIGJlLCBl
LmcuIGhvdyBtYW55IGNlbGxzIGNhbiBJIGFkZC9yZW1vdmUgaW4gYQ0Kc2luZ2xlIHBhY2tldD8N
Cg0KVGhvbWFzDQoNCk9uIFNhdCwgSnVuIDI3LCAyMDE1IGF0IDEyOjUxIEFNLCBBbmR5IEJpZXJt
YW4gPGFuZHlAeXVtYXdvcmtzLmNvbTxtYWlsdG86YW5keUB5dW1hd29ya3MuY29tPj4NCndyb3Rl
Og0KT24gRnJpLCBKdW4gMjYsIDIwMTUgYXQgMzozMiBQTSwgVGhvbWFzIFdhdHRleW5lDQo8d2F0
dGV5bmVAZWVjcy5iZXJrZWxleS5lZHU8bWFpbHRvOndhdHRleW5lQGVlY3MuYmVya2VsZXkuZWR1
Pj4gd3JvdGU6DQpJbiB0aGUgNlRpU0NIIGNvbnRleHQsIENvTUkgY2FuIGJlIHVzZWQgdG8gbWFu
YWdlIGEgVFNDSCBzY2hlZHVsZSwNCndoaWNoIGludm9sdmVzIGFkZGluZy9yZW1vdmluZyBjZWxs
cyAoYXRvbWljIGxheWVyIDIgcmVzb3VyY2VzKS4NCg0KQ2VsbHMgYXJlIHJlcHJlc2VudGVkIGlu
IHRoZSA2dG9wIFlBTkcgbW9kZWwgYXMgYSBsaXN0IGNhbGxlZA0KIkNlbGxMaXN0Ig0KDQooaHR0
cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtNnRpc2NoLTZ0b3AtaW50ZXJmYWNl
LTAzI3NlY3Rpb24tNC4xKS4NClRoZSB3YXkgQ29NSSBpcyB3cml0dGVuIG5vdyAoZHJhZnQtdmFu
ZGVyc3Rvay1jb3JlLWNvbWktMDYpLCBvbmUNCkNvTUkgcmVxdWVzdCBpcyBuZWVkZWQgZm9yIGVh
Y2ggb3BlcmF0aW9uLiBUaGF0IGlzLCBpZiBJIHdhbnQgdG8NCnNjaGVkdWxlIDEwIGNlbGxzIGJl
dHdlZW4gbm9kZXMgQSBhbmQgQiwgSSB3aWxsIG5lZWQgMTAgUFVUDQpyZXF1ZXN0cyB0byBub2Rl
IEEsIGFuZCAxMCB0byBub2RlIEIuIElmIHRoZXNlIGFyZSBjb25maXJtYWJsZQ0KQ29BUCBwYWNr
ZXRzLCB0aGF0J3MgYSBsb3Qgb2YgcGFja2V0cy4gVGhlc2Ugd2lsbCBiZSBzaG9ydA0KcmVxdWVz
dHMsIGJ1dCB3aWxsIGVhdCB1cCBhbiBlbm9ybW91cyBhbW91bnQgb2YgYmFuZHdpZHRoLg0KDQpJ
J2QgbGlrZSB0byBiZSBhYmxlIHRvIGlzc3VlIGEgc2luZ2xlIHJlcXVlc3QgdG8gbm9kZSBBIGFu
ZCBhDQpzaW5nbGUgcmVxdWVzdCB0byBub2RlIEIgdG8gY2Fycnkgb3V0IGFsbCBvZiB0aGVzZSBv
cGVyYXRpb25zLCBieQ0KYWdncmVnYXRpbmcgbXVsdGlwbGUgIm9wZXJhdGlvbnMiIGluIGEgc2lu
Z2xlIENvTUkgcmVxdWVzdCAoYQ0Kc2luZ2xlL3NtYWxsIG51bWJlciBvZiBDb0FQIHBhY2tldHMp
Lg0KDQpXaGF0IGRvZXMgQ29NSSBvZmZlciBtZSB0b2RheSB0byBkbyB0aGlzPyBTaG91bGQgd2Ug
d3JpdGUgdGhlIFlBTkcNCm1vZGVsIGluIHNvbWUgcGFydGljdWxhciB3YXk/IFdoYXQgaXMgZW52
aXNpb25lZCBpbiBhIGZ1dHVyZQ0KcmV2aXNpb24gb2YgQ29NSSB0byBhbnN3ZXIgdGhpcyBuZWVk
Lg0KDQpJIHRoaW5rIHRoZSBZQU5HIFBhdGNoIG1lZGlhIHR5cGUgY291bGQgYmUgdXNlZCB3aXRo
IENvTUkuDQpUaGlzIGFsbG93cyBtdWx0aXBsZSBlZGl0cyBvbiBkaWZmZXJlbnQgdGFyZ2V0IHJl
c291cmNlcy4NCg0KWW91IGNvdWxkIGFsc28gZG8gYSBwbGFpbiBQQVRDSCBvbiB0aGUgZGF0YXN0
b3JlIHJvb3QsIGFuZCBwcm92aWRlDQp0aGUgc3VidHJlZXMgeW91IHdhbnQgdG8gY2hhbmdlLg0K
VGhhbmtzLA0KVGhvbWFzDQoNCkFuZHkNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fDQpjb3JlIG1haWxpbmcgbGlzdA0KY29yZUBpZXRmLm9yZzxtYWlsdG86
Y29yZUBpZXRmLm9yZz4NCmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29y
ZQ0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpj
b3JlIG1haWxpbmcgbGlzdA0KY29yZUBpZXRmLm9yZzxtYWlsdG86Y29yZUBpZXRmLm9yZz4NCmh0
dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZQ0KDQo=

--_000_CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0CO2PR0601MB792na_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglwYW5vc2UtMTo1IDAgMCAwIDAgMCAwIDAgMCAw
O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6
MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7
DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMg
Ki8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBp
bjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZh
bWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5r
DQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlv
bjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21z
by1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVu
ZGVybGluZTt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgsIGxpLk1zb0xpc3RQYXJhZ3JhcGgsIGRpdi5N
c29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1wcmlvcml0eTozNDsNCgltYXJnaW4tdG9wOjBp
bjsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1hcmdpbi1ib3R0b206MGluOw0KCW1hcmdpbi1sZWZ0
Oi41aW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9u
dC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTcNCgl7
bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2Vy
aWY7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUtdHlw
ZTpwZXJzb25hbC1jb21wb3NlOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0K
CWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhw
b3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fu
cy1zZXJpZjsNCgltc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9DQpAcGFnZSBXb3JkU2VjdGlv
bjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGlu
O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZp
bml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxpc3QtaWQ6NDQ2MjQwNDc0Ow0KCW1zby1saXN0
LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczotNjA3MDk5NTE0IDI2OTAyNTI4
MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAyNTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1IDI2OTAy
NTI4MSAyNjkwMjUyODMgMjY5MDI1Mjg1O30NCkBsaXN0IGwwOmxldmVsMQ0KCXttc28tbGV2ZWwt
bnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10
YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWlu
ZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsMg0KCXtt
c28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28t
bGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3Qg
bDA6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwt
dGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1w
b3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGlu
Z3M7fQ0KQGxpc3QgbDA6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsN
Cgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZh
bWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0
OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJ
Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDYNCgl7bXNvLWxldmVs
LW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwt
dGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1p
bmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMDpsZXZlbDcN
Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl
ZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBs
MDpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10
ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np
dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBO
ZXciO30NCkBsaXN0IGwwOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1m
YW1pbHk6V2luZ2RpbmdzO30NCm9sDQoJe21hcmdpbi1ib3R0b206MGluO30NCnVsDQoJe21hcmdp
bi1ib3R0b206MGluO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpz
aGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5k
aWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRp
dCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48
L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLUNBIiBsaW5rPSJibHVl
IiB2bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5n
dWFnZTpFTi1VUyI+SGkgVGhvbWFzPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3Vh
Z2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVO
LVVTIj5UbyBmYWNpbGl0YXRlIHRoZSBjcmVhdGlvbiBvZiB0aGlzIGVuY29kaW5nLCBjYW4geW91
IHByb3ZpZGUgYW4gZXhhbXBsZSBvZiB3aGF0IHlvdSB3YW50IHRvIGFyY2hpdmUgdXNpbmcgU1FM
IHN0eWxlIHN0YXRlbWVudCBmb3IgZXhhbXBsZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFz
dC1sYW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFu
Z3VhZ2U6RU4tVVMiPkZvciBleGFtcGxlOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxh
bmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+SU5TRVJUIElOVE8gQ2VsbExpc3Q8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFz
dC1sYW5ndWFnZTpFTi1VUyI+Jm5ic3A7Jm5ic3A7IChDZWxsSUQsIFNsb3RmcmFtZUlELCBTbG90
T2Zmc2V0LCBDaGFubmVsT2Zmc2V0LCBMaW5rT3B0aW9uLCBMaW5rVHlwZSwgQ2VsbFR5cGUsIE5v
ZGVBZGRyZXNzLCBUcmFja0lEKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdl
OkVOLVVTIj5WQUxVRVM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1V
UyI+Jm5ic3A7Jm5ic3A7ICgxLCAwLCAyLCA1LCAweDAxLCAwLCAwLCA/bGVhZnJlZik7PG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5Db3VwbGUgb2YgY29tbWVudHM6PG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0
ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0
TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtj
b2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3BhbiBzdHlsZT0ibXNv
LWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBS
b21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9y
OiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkNlbGxJRDxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+VGhlICZuYnNwO0NlbGxJRCBu
ZWVkIHRvIGJlIHVuaXF1ZSBzaW5jZSBpdOKAmXMgdGhlIGtleSB3aXRoaW4gdGhlIENlbGxMaXN0
LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+SG93
IHRoZSBhc3NpZ25tZW50IG9mIENlbGxJRHMgJm5ic3A7aXMgZXhwZWN0ZWQgdG8gYmUgZG9uZT88
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRvIGJl
IHVuaXF1ZSwgc2hvdWxkIHRoZSBzZXJ2ZXIgYXNzaWduIHRoaXMgdmFsdWUgYW5kIHJldHVybiB0
aGUgdmFsdWUgYXNzaWduZWQgdG8gdGhlIGNsaWVudD8gKFRoaXMgbWlnaHQgcmVxdWlyZSB0aGUg
dXNlIG9mDQogYSBSUEMpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQ
YXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxm
bzEiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0
ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPlRy
YWNrSUQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PkN1cnJlbnRseSwgdGhlIFRyYWNrSUQgaXMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIGRhdGF0eXBl
IGxlYWZyZWYgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBDT01JIGRyYWZ0
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxl
PSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBw
b3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJv
bDtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48c3BhbiBzdHlsZT0i
bXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5l
dyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPmRyYWZ0LXZhbmRlcnN0b2st
Y29yZS1wYXRjaC0wMDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFy
YWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+VGhlIGN1cnJlbnQgZHJhZnQgaW50cm9kdWNpbmcgcGF0Y2ggZG9u4oCZdCBzZWVt
IHRvIGFsbG93IG11bHRpcGxlIGluc2VydGlvbiB3aXRoaW4gYSBsaXN0LiBJZiB0aGlzIGlzIG5v
dCB0aGUgY2FzZSwgSXQgd2lsbCBiZQ0KIG5pY2UgdG8gaGF2ZSBhbiBleGFtcGxlIGFkZGVkIHRv
IHRoaXMgZHJhZnQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjx0YWJsZSBjbGFzcz0iTXNvTm9ybWFsVGFi
bGUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiB3aWR0aD0iNzE3
IiBzdHlsZT0id2lkdGg6NTM3Ljc1cHQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIj4NCjx0Ym9k
eT4NCjx0ciBzdHlsZT0iaGVpZ2h0OjQ5LjA1cHQiPg0KPHRkIHdpZHRoPSIxMzciIHN0eWxlPSJ3
aWR0aDoxMDMuMXB0O2JvcmRlcjpub25lO2JvcmRlci1yaWdodDpzb2xpZCB3aW5kb3d0ZXh0IDEu
MHB0O3BhZGRpbmc6MGluIDUuNHB0IDBpbiA1LjRwdDtoZWlnaHQ6NDkuMDVwdCI+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PGltZyB3aWR0aD0i
MTIwIiBoZWlnaHQ9IjIyIiBpZD0iUGljdHVyZV94MDAyMF8yIiBzcmM9ImNpZDppbWFnZTAwMS5q
cGdAMDFEMEIyNTguRUNENjJERjAiIGFsdD0iY2lkOmltYWdlMDAxLmpwZ0AwMUM4NjhEOC5CRjBC
QjdFMCI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxh
bmd1YWdlOkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPHRkIHdpZHRoPSI1
ODAiIHZhbGlnbj0idG9wIiBzdHlsZT0id2lkdGg6NDM0LjY1cHQ7cGFkZGluZzowaW4gNS40cHQg
MGluIDUuNHB0O2hlaWdodDo0OS4wNXB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
YXJnaW4tbGVmdDo4LjFwdCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0Q7bXNvLWZhcmVhc3Qt
bGFuZ3VhZ2U6RU4tVVMiPk1pY2hlbCBWZWlsbGV0dGU8YnI+DQpTeXN0ZW0gQXJjaGl0ZWN0dXJl
IERpcmVjdG9yPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0
LWxhbmd1YWdlOkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj5UcmlsbGlhbnQgSW5jLjxicj4NClRlbDogNDUw
LTM3NS0wNTU2IGV4dC4gMjM3PGJyPg0KPC9zcGFuPjxzcGFuIHN0eWxlPSJtc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+PGEgaHJlZj0ibWFpbHRvOm1pY2hlbC52ZWlsbGV0dGVAdHJpbGxpYW50
aW5jLmNvbSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMwNTYzQzEiPm1pY2hlbC52ZWlsbGV0dGVAdHJp
bGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
O21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6OC4xcHQiPjxzcGFuIHN0eWxlPSJt
c28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+PGEgaHJlZj0iaHR0cDovL3d3dy50cmlsbGlhbnRp
bmMuY29tLyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OyxzYW5zLXNlcmlmIj53d3cudHJpbGxpYW50aW5jLmNvbTwvc3Bhbj48L2E+PC9z
cGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij4NCiAmbmJzcDsgPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJl
YXN0LWxhbmd1YWdlOkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L3RkPg0KPC90cj4N
CjwvdGJvZHk+DQo8L3RhYmxlPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNw
YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IDZ0aXNjaCBbbWFpbHRvOjZ0aXNjaC1ib3VuY2Vz
QGlldGYub3JnXQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5UaG9tYXMgV2F0dGV5bmU8YnI+DQo8Yj5T
ZW50OjwvYj4gMjkganVpbiAyMDE1IDAzOjM1PGJyPg0KPGI+VG86PC9iPiBjb25zdWx0YW5jeUB2
YW5kZXJzdG9rLm9yZzxicj4NCjxiPkNjOjwvYj4gNnRpc2NoQGlldGYub3JnOyBBbmR5IEJpZXJt
YW47IGNvcmU8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFs2dGlzY2hdIFtjb3JlXSBbQ29NSV0g
bXVsdGlwbGUgb3BlcmF0aW9ucyBpbiBhIHNpbmdsZSByZXF1ZXN0PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+UGV0ZXIsPG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+VGhhbmtzLiBJJ20gbG9va2luZyBmb3J3YXJkIHRvICZxdW90O2NvdW50
aW5nIGJ5dGVzJnF1b3Q7IGFuZCBzZWUgaG93IGNvbXBhY3QgYSBQQVRDSCBvcGVyYXRpb24gaXMg
cmVwcmVzZW50ZWQgaW4gQ29NSS48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPlRob21hczxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj5PbiBNb24sIEp1biAyOSwgMjAxNSBhdCA5OjAxIEFNLCBwZXRl
ciB2YW4gZGVyIFN0b2sgJmx0OzxhIGhyZWY9Im1haWx0bzpzdG9rY29uc0B4czRhbGwubmwiIHRh
cmdldD0iX2JsYW5rIj5zdG9rY29uc0B4czRhbGwubmw8L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpw
PjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAj
Q0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7
bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGluO21hcmdpbi1ib3R0b206NS4wcHQiPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+SGkgVGhvbWFzLDxicj4NCjxicj4NCnRoZSBsYXRlc3QgKG5v
dCBwdWJsaXNoZWQgeWV0KSB2ZXJzaW9uIGluY2x1ZGVzIHRoZSB1c2Ugb2YgdGhlIFBBVENIIGNv
bW1hbmQuPGJyPg0KVGhlcmUgaXMgYSBSRkMgb24gSlNPTiBwYXRjaCwgd2UgY291bGQgcmVmZXIg
dG8gdGhhdCBpbiB0aGUgUEFUQ0ggSS1ELjxicj4NCkZ1cnRoZXIgbGluay1mb3JtYXQgaXMgc3Vm
ZmljaWVudCwgbm8/PGJyPg0KPGJyPg0KVGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcGF5bG9h
ZCBkZXBlbmRzIG9uIHRoZSB0aGUgc2VydmVyLjxicj4NCklmIGxhcmdlIHN0cmluZ3MgbmVlZCB0
byBiZSByZXBsYWNlZCwgdGhlIHNpemUgaXMgcXVpY2tseSBsYXJnZS48YnI+DQo8YnI+DQpJIHdh
cyB0aGlua2luZyBvZiBqdXN0IHVzaW5nIEpTT04gQ0JPUiB3aXRoIHBheWxvYWRzIGxpa2U6PGJy
Pg0KPGJyPg0KeyBoYXNoMTogdmFsdWUxLDxicj4NCmhhc2gyOiB2YWx1ZTJ9PGJyPg0KPGJyPg0K
YW5kIGNoYW5naW5nIGluZGl2aWR1YWwgbGlzdCBpdGVtcy48YnI+DQo8YnI+DQpJIGRvbid0IGtu
b3cgYWJvdXQgWUFORyBQQVRDSCBtZWRpYSB0eXBlLjxicj4NCjxicj4NClBldGVyPGJyPg0KPGJy
Pg0KVGhvbWFzIFdhdHRleW5lIHNjaHJlZWYgb3AgMjAxNS0wNi0yNyAxMDo0OTo8bzpwPjwvbzpw
PjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQg
I0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21hcmdpbi1sZWZ0OjQuOHB0
O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0OjBpbjttYXJnaW4tYm90dG9tOjUuMHB0Ij4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+QW5keSw8
YnI+DQo8YnI+DQpUaGFua3MuIDxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC12YW5kZXJzdG9rLWNvcmUtY29taS0wNiIgdGFyZ2V0PSJfYmxhbmsiPg0KaHR0cHM6Ly90
b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXZhbmRlcnN0b2stY29yZS1jb21pLTA2PC9hPiBub3c8
YnI+DQpzYXlzOjxicj4NCjxicj4NCltwNF0gVE9ETzogSW50cm9kdWNlIENvQVAgUGF0Y2ggb3B0
aW9ucyB0byBhbGxvdyBtb2RpZmljYXRpb24gdG88YnI+DQpzdWJzZXRzIG9mIHJlc291cmNlLjxi
cj4NCjxicj4NCltwMjRdIFRPRE86IERlZmluZSB3aGVyZSBQQVRDSCBpcyBuZWVkZWQuPGJyPg0K
PGJyPg0KSSBhc3N1bWUgdGhhdCB5b3UgYXJlIGludHJvZHVjaW5nIFBBVENIIGluIC0wNy4gQ2Fu
IHlvdSBxdWFudGlmeSBob3c8YnI+DQpsaWdodHdlaWdodCB0aGlzIHdpbGwgYmUsIGUuZy4gaG93
IG1hbnkgY2VsbHMgY2FuIEkgYWRkL3JlbW92ZSBpbiBhPGJyPg0Kc2luZ2xlIHBhY2tldD88YnI+
DQo8YnI+DQpUaG9tYXM8YnI+DQo8YnI+DQpPbiBTYXQsIEp1biAyNywgMjAxNSBhdCAxMjo1MSBB
TSwgQW5keSBCaWVybWFuICZsdDs8YSBocmVmPSJtYWlsdG86YW5keUB5dW1hd29ya3MuY29tIiB0
YXJnZXQ9Il9ibGFuayI+YW5keUB5dW1hd29ya3MuY29tPC9hPiZndDs8YnI+DQp3cm90ZTo8bzpw
PjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpz
b2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6
NC44cHQ7bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGluO21hcmdpbi1ib3R0b206NS4w
cHQiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij5P
biBGcmksIEp1biAyNiwgMjAxNSBhdCAzOjMyIFBNLCBUaG9tYXMgV2F0dGV5bmU8YnI+DQombHQ7
PGEgaHJlZj0ibWFpbHRvOndhdHRleW5lQGVlY3MuYmVya2VsZXkuZWR1IiB0YXJnZXQ9Il9ibGFu
ayI+d2F0dGV5bmVAZWVjcy5iZXJrZWxleS5lZHU8L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwv
cD4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjQ0ND
Q0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7bWFyZ2luLWxlZnQ6NC44cHQ7bWFy
Z2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGluO21hcmdpbi1ib3R0b206NS4wcHQiPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij5JbiB0aGUgNlRp
U0NIIGNvbnRleHQsIENvTUkgY2FuIGJlIHVzZWQgdG8gbWFuYWdlIGEgVFNDSCBzY2hlZHVsZSw8
YnI+DQp3aGljaCBpbnZvbHZlcyBhZGRpbmcvcmVtb3ZpbmcgY2VsbHMgKGF0b21pYyBsYXllciAy
IHJlc291cmNlcykuPGJyPg0KPGJyPg0KQ2VsbHMgYXJlIHJlcHJlc2VudGVkIGluIHRoZSA2dG9w
IFlBTkcgbW9kZWwgYXMgYSBsaXN0IGNhbGxlZDxicj4NCiZxdW90O0NlbGxMaXN0JnF1b3Q7PG86
cD48L286cD48L3A+DQo8L2Jsb2NrcXVvdGU+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPig8YSBo
cmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi02dGlzY2gtNnRvcC1p
bnRlcmZhY2UtMDMjc2VjdGlvbi00LjEiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3Rvb2xzLmll
dGYub3JnL2h0bWwvZHJhZnQtaWV0Zi02dGlzY2gtNnRvcC1pbnRlcmZhY2UtMDMjc2VjdGlvbi00
LjE8L2E+KS48bzpwPjwvbzpwPjwvcD4NCjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXI6bm9uZTti
b3JkZXItbGVmdDpzb2xpZCAjQ0NDQ0NDIDEuMHB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNi4wcHQ7
bWFyZ2luLWxlZnQ6NC44cHQ7bWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGluO21hcmdp
bi1ib3R0b206NS4wcHQiPg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1s
ZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4t
bGVmdDo0LjhwdDttYXJnaW4tdG9wOjUuMHB0O21hcmdpbi1yaWdodDowaW47bWFyZ2luLWJvdHRv
bTo1LjBwdCI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGUgd2F5IENvTUkgaXMgd3JpdHRlbiBu
b3cgKGRyYWZ0LXZhbmRlcnN0b2stY29yZS1jb21pLTA2KSwgb25lPGJyPg0KQ29NSSByZXF1ZXN0
IGlzIG5lZWRlZCBmb3IgZWFjaCBvcGVyYXRpb24uIFRoYXQgaXMsIGlmIEkgd2FudCB0bzxicj4N
CnNjaGVkdWxlIDEwIGNlbGxzIGJldHdlZW4gbm9kZXMgQSBhbmQgQiwgSSB3aWxsIG5lZWQgMTAg
UFVUPGJyPg0KcmVxdWVzdHMgdG8gbm9kZSBBLCBhbmQgMTAgdG8gbm9kZSBCLiBJZiB0aGVzZSBh
cmUgY29uZmlybWFibGU8YnI+DQpDb0FQIHBhY2tldHMsIHRoYXQncyBhIGxvdCBvZiBwYWNrZXRz
LiBUaGVzZSB3aWxsIGJlIHNob3J0PGJyPg0KcmVxdWVzdHMsIGJ1dCB3aWxsIGVhdCB1cCBhbiBl
bm9ybW91cyBhbW91bnQgb2YgYmFuZHdpZHRoLjxicj4NCjxicj4NCkknZCBsaWtlIHRvIGJlIGFi
bGUgdG8gaXNzdWUgYSBzaW5nbGUgcmVxdWVzdCB0byBub2RlIEEgYW5kIGE8YnI+DQpzaW5nbGUg
cmVxdWVzdCB0byBub2RlIEIgdG8gY2Fycnkgb3V0IGFsbCBvZiB0aGVzZSBvcGVyYXRpb25zLCBi
eTxicj4NCmFnZ3JlZ2F0aW5nIG11bHRpcGxlICZxdW90O29wZXJhdGlvbnMmcXVvdDsgaW4gYSBz
aW5nbGUgQ29NSSByZXF1ZXN0IChhPGJyPg0Kc2luZ2xlL3NtYWxsIG51bWJlciBvZiBDb0FQIHBh
Y2tldHMpLjxicj4NCjxicj4NCldoYXQgZG9lcyBDb01JIG9mZmVyIG1lIHRvZGF5IHRvIGRvIHRo
aXM/IFNob3VsZCB3ZSB3cml0ZSB0aGUgWUFORzxicj4NCm1vZGVsIGluIHNvbWUgcGFydGljdWxh
ciB3YXk/IFdoYXQgaXMgZW52aXNpb25lZCBpbiBhIGZ1dHVyZTxicj4NCnJldmlzaW9uIG9mIENv
TUkgdG8gYW5zd2VyIHRoaXMgbmVlZC48bzpwPjwvbzpwPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGJyPg0KSSB0
aGluayB0aGUgWUFORyBQYXRjaCBtZWRpYSB0eXBlIGNvdWxkIGJlIHVzZWQgd2l0aCBDb01JLjxi
cj4NClRoaXMgYWxsb3dzIG11bHRpcGxlIGVkaXRzIG9uIGRpZmZlcmVudCB0YXJnZXQgcmVzb3Vy
Y2VzLjxicj4NCjxicj4NCllvdSBjb3VsZCBhbHNvIGRvIGEgcGxhaW4gUEFUQ0ggb24gdGhlIGRh
dGFzdG9yZSByb290LCBhbmQgcHJvdmlkZTxicj4NCnRoZSBzdWJ0cmVlcyB5b3Ugd2FudCB0byBj
aGFuZ2UuPG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y
ZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21h
cmdpbi1sZWZ0OjQuOHB0O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLXJpZ2h0OjBpbjttYXJnaW4t
Ym90dG9tOjUuMHB0Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoYW5rcyw8YnI+DQpUaG9tYXM8
bzpwPjwvbzpwPjwvcD4NCjwvYmxvY2txdW90ZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGJyPg0KQW5keTxvOnA+PC9vOnA+PC9wPg0KPGJsb2Nr
cXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7
cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tdG9wOjUu
MHB0O21hcmdpbi1yaWdodDowaW47bWFyZ2luLWJvdHRvbTo1LjBwdCI+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxi
cj4NCmNvcmUgbWFpbGluZyBsaXN0PGJyPg0KPGEgaHJlZj0ibWFpbHRvOmNvcmVAaWV0Zi5vcmci
IHRhcmdldD0iX2JsYW5rIj5jb3JlQGlldGYub3JnPC9hPjxicj4NCjxhIGhyZWY9Imh0dHBzOi8v
d3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBz
Oi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZTwvYT48bzpwPjwvbzpwPjwvcD4N
CjwvYmxvY2txdW90ZT4NCjwvYmxvY2txdW90ZT4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxicj4N
Cjxicj4NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJy
Pg0KY29yZSBtYWlsaW5nIGxpc3Q8YnI+DQo8YSBocmVmPSJtYWlsdG86Y29yZUBpZXRmLm9yZyIg
dGFyZ2V0PSJfYmxhbmsiPmNvcmVAaWV0Zi5vcmc8L2E+PGJyPg0KPGEgaHJlZj0iaHR0cHM6Ly93
d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9jb3JlIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6
Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9jb3JlPC9hPjxvOnA+PC9vOnA+PC9wPg0K
PC9ibG9ja3F1b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9ib2R5Pg0KPC9odG1sPg0K

--_000_CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0CO2PR0601MB792na_--

--_004_CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0CO2PR0601MB792na_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=2532;
	creation-date="Mon, 29 Jun 2015 15:13:40 GMT";
	modification-date="Mon, 29 Jun 2015 15:13:40 GMT"
Content-ID: <image001.jpg@01D0B258.ECD62DF0>
Content-Transfer-Encoding: base64

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
mutdiv0i88rVfrpe4PyYhak5RbkrOP/Z

--_004_CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0CO2PR0601MB792na_--


From nobody Mon Jun 29 08:51:41 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E7C01ACE45; Mon, 29 Jun 2015 08:51:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kEl8HQnZT4ay; Mon, 29 Jun 2015 08:51:35 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 37B491ACE42; Mon, 29 Jun 2015 08:51:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [134.102.201.11]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5TFpSPF015529; Mon, 29 Jun 2015 17:51:28 +0200 (CEST)
Received: from alma.local (eduroam-pool7-0822.wlan.uni-bremen.de [134.102.115.54]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mKtbN3gl4z3GJh; Mon, 29 Jun 2015 17:51:28 +0200 (CEST)
Message-ID: <5591697F.1060005@tzi.org>
Date: Mon, 29 Jun 2015 17:51:27 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
References: <CADJ9OA-g5ijXJQz_uPiz2482yeD3wY9EZPkD+h1N47aa21ioDQ@mail.gmail.com> <CABCOCHTwXuVs+LLMbANrL+RMrODcGDyPxgZBTZqAnDROVSqzzw@mail.gmail.com> <CADJ9OA95iaBD2oLbjPqZmjru=G2UO0U08SQQdNtevs3LwT2F0A@mail.gmail.com> <281a3494ecde4f0b80594284f8b17efa@xs4all.nl> <CADJ9OA_MsP=ZVjs8mR9dxqeUy0m5AeVNx4s3YCf5nZMVqdjfJw@mail.gmail.com> <CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0@CO2PR0601MB792.namprd06.prod.outlook.com>
In-Reply-To: <CO2PR0601MB792FF6C0FB2D4477D2C835DFEAA0@CO2PR0601MB792.namprd06.prod.outlook.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/jbE3l0GsUtSkdhX8cHzF3mhOXgQ>
Cc: "6tisch@ietf.org" <6tisch@ietf.org>, core <core@ietf.org>
Subject: Re: [core] [6tisch] [CoMI] multiple operations in a single request
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2015 15:51:38 -0000

Michel Veillette wrote:
> Hi Thomas
> 
>  
> 
> To facilitate the creation of this encoding, can you provide an example
> of what you want to archive using SQL style statement for example.
> 
>  
> 
> For example:
> 
>  
> 
> INSERT INTO CellList
> 
>    (CellID, SlotframeID, SlotOffset, ChannelOffset, LinkOption,
> LinkType, CellType, NodeAddress, TrackID)
> 
> VALUES
> 
>    (1, 0, 2, 5, 0x01, 0, 0, ?leafref);

An insert would generally be modeled as a POST in REST, returning the
server-chosen URI (which would include the CellID if that is indeed
server-chosen) in a set of Location Options.

> Couple of comments:
> 
> Â·         CellID
> 
> The  CellID need to be unique since itâ€™s the key within the CellList.
> 
> How the assignment of CellIDs  is expected to be done?
> 
> To be unique, should the server assign this value and return the value
> assigned to the client? (This might require the use of a RPC)
> 
> Â·         TrackID
> 
> Currently, the TrackID is implemented using the datatype leafref which
> is not supported by the current COMI draft
> 
> Â·         draft-vanderstok-core-patch-00
> 
> The current draft introducing patch donâ€™t seem to allow multiple
> insertion within a list. If this is not the case, It will be nice to
> have an example added to this draft.

Merge-Patch indeed does not address insertion into an array, only into a
hash.  But that is a matter of defining the PATCH format; we are not
limited to just RFC 6902 or 7386.

GrÃ¼ÃŸe, Carsten


From nobody Mon Jun 29 19:50:46 2015
Return-Path: <michaeljohnkoster@gmail.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7B86F1B2FA1 for <core@ietfa.amsl.com>; Mon, 29 Jun 2015 19:50:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.407
X-Spam-Level: 
X-Spam-Status: No, score=-0.407 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DATE_IN_PAST_03_06=1.592, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HtzOEG0L-pn1 for <core@ietfa.amsl.com>; Mon, 29 Jun 2015 19:50:44 -0700 (PDT)
Received: from mail-pd0-x234.google.com (mail-pd0-x234.google.com [IPv6:2607:f8b0:400e:c02::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 53BD51B2F9E for <core@ietf.org>; Mon, 29 Jun 2015 19:50:44 -0700 (PDT)
Received: by pdbci14 with SMTP id ci14so127188485pdb.2 for <core@ietf.org>; Mon, 29 Jun 2015 19:50:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=from:content-type:subject:message-id:date:to:mime-version; bh=HlR4LjqcfgrnQdyoYJPhWVYw45Y0yZ8i1qiBGrop5Z4=; b=KneTcmcDFHWKej3VVxJD6WWj8DP0E7nP73E8iEOgskjcJ1Cfo7c7rUM++HcAd9j4V2 K237inXvptVQgiQUVKy6d8HyDr9k3K6I30pxE0HTDgEq1A2cQ0A4SPEn1b8BiSwR+fR/ /QPjGPI3V3Oa1wKsjUAHd0QpqeCnTWBem+F6PV2kUWODwuv6vfNE1GBO4rQvmSqn5rkh HQnpvRIeqSBMSVnXG0kQmTYSdXvkYrbwVRvje50h1MgRtiszT2OuwWu3gFN/b4dyv/km WXM9uP9OxHqV53NeamA5WYhyFi07HW3UQjgvicV0xMrzC3VF6paZJ0EqH7XjCkI7X1NP 4Atg==
X-Received: by 10.70.64.162 with SMTP id p2mr38748818pds.54.1435632643992; Mon, 29 Jun 2015 19:50:43 -0700 (PDT)
Received: from [10.0.0.19] (108-201-184-41.lightspeed.sntcca.sbcglobal.net. [108.201.184.41]) by mx.google.com with ESMTPSA id sk2sm4449708pbc.55.2015.06.29.19.50.42 for <core@ietf.org> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 29 Jun 2015 19:50:42 -0700 (PDT)
From: Michael Koster <michaeljohnkoster@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_B9DD862B-2DC0-470C-A19D-23F4BE5BD5E3"
Message-Id: <E63924C5-408B-4EB6-8AB0-006EFA4D0DCA@gmail.com>
Date: Mon, 29 Jun 2015 14:15:47 -0700
To: core WG <core@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
X-Mailer: Apple Mail (2.1878.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/sqEpuqt2VfY_JW7PyeuSTpl1dNM>
Subject: [core] CoRE Resource Directory draft updates
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2015 02:50:45 -0000

--Apple-Mail=_B9DD862B-2DC0-470C-A19D-23F4BE5BD5E3
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi,

We recently published WG version 3 of CoRE Resource Directory with some =
of the discussed changes, including a lighting example showing dnssd =
integration, the OMA LWM2M example, and the addition of a link =
collection introspection function (GET links from the registration =
collection).

https://datatracker.ietf.org/doc/draft-ietf-core-resource-directory/

We would like to continue discussion of a couple of additional changes =
for the upcoming -04 version:

1. Remove the simple registration described in the beginning of section =
4. Unless there is a strong specific use case, the basic need can be =
easily handled using a configuration tool.

2. Add the PATCH operation to the link collection to section 5, for =
updating link content after the initial registration. OMA LWM2M is one =
use case for this, when objects are created and deleted at the endpoint =
there needs to be a way to update the registration link content without =
unregister/reregister operations.

Also, are there any other issues or changes needed?

Best regards,

Michael J Koster=

--Apple-Mail=_B9DD862B-2DC0-470C-A19D-23F4BE5BD5E3
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space;">Hi,<div><br></div><div>We recently published WG =
version 3 of CoRE Resource Directory with some of the discussed changes, =
including a lighting example showing dnssd integration, the OMA LWM2M =
example, and the addition of a link collection introspection function =
(GET links from the registration =
collection).</div><div><br></div><div><a =
href=3D"https://datatracker.ietf.org/doc/draft-ietf-core-resource-director=
y/">https://datatracker.ietf.org/doc/draft-ietf-core-resource-directory/</=
a></div><div><br></div><div>We would like to continue discussion of a =
couple of additional changes for the upcoming -04 =
version:</div><div><br></div><div>1. Remove the simple registration =
described in the beginning of section 4. Unless there is a strong =
specific use case, the basic need can be easily handled using a =
configuration tool.</div><div><br></div><div>2. Add the PATCH operation =
to the link collection to section 5, for updating link content after the =
initial registration. OMA LWM2M is one use case for this, when objects =
are created and deleted at the endpoint there needs to be a way to =
update the registration link content without unregister/reregister =
operations.</div><div><br></div><div>Also, are there any other issues or =
changes needed?</div><div><br></div><div>Best =
regards,</div><div><br></div><div>Michael J Koster</div></body></html>=

--Apple-Mail=_B9DD862B-2DC0-470C-A19D-23F4BE5BD5E3--


From nobody Tue Jun 30 07:39:10 2015
Return-Path: <hannes.tschofenig@gmx.net>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5758F1A1ABF for <core@ietfa.amsl.com>; Tue, 30 Jun 2015 07:39:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.011
X-Spam-Level: 
X-Spam-Status: No, score=-0.011 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yOl1dN6XllHy for <core@ietfa.amsl.com>; Tue, 30 Jun 2015 07:39:08 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DDC141A0113 for <core@ietf.org>; Tue, 30 Jun 2015 07:37:40 -0700 (PDT)
Received: from [192.168.131.139] ([80.92.122.75]) by mail.gmx.com (mrgmx103) with ESMTPSA (Nemesis) id 0MGzwE-1ZDmPB01HG-00Dof8 for <core@ietf.org>; Tue, 30 Jun 2015 16:37:39 +0200
Message-ID: <5592A986.2060608@gmx.net>
Date: Tue, 30 Jun 2015 16:36:54 +0200
From: Hannes Tschofenig <hannes.tschofenig@gmx.net>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: "core@ietf.org WG" <core@ietf.org>
OpenPGP: id=4D776BC9
Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="6vGW0uQ1VvPOrQV6rDS37knxlcV6pbuIf"
X-Provags-ID: V03:K0:ckx5P+1qiUlQbJPescUF0Nai+Kkj5LzgQgkzD766TSek6WwYyDJ OOxU9Uj4MrjnolTh3/E2GIKROpb4+bYZiABbc94eAynL6wW8SYw5I9A7KrIsUlQVYhbyrLb 6bhq8xkbrdDg+QOMLpiqtFZehix5HENcRVWSSj7kcbHVHPvxft8naddDR+hksMQQHF1fCXG JkXL/q2Rw1AL6mNXwXT6A==
X-UI-Out-Filterresults: notjunk:1;V01:K0:enGi/5H4gmM=:sFIumRzJUKYjx0wJ1LWZyq hr/nlQpdjFosjtBp1Y7DqgenT026+jocrbAyOtsLW7MxEb1U29vB30Mpfsj4YcK+Gy+T/k+pJ bDCmhTSDhoBfyWkw0RSU9LJy+fJ3tgWQjNsjmxACKYwQVB8EYPpi9IZMYe7mRqEyrCkdGdJdZ gMScIcJzg1Vjs5XhANGh/1QWkBtrlZUUEBWHbtTtfm946qvKf6H+3+kEozBALv3rKNuwBa7c5 o5LDBn1ednI2hoWFoUbh6dVjwTXv7A424snjENveWF2QP0pEU5A7hXZ37HecNLT5912EvUXKr sx+PApIWqWiiEYwZBzkGmWvYA9rpnffdqFfR9gzhLn4tYjnOO020J1tN5T/a0Llb4+I2XCaTw m1qiwJ1z62AKlVolDHeCcDbafcpn0UadYDY0TOX0a8XPb08mC1/yL68GoqaU6skegD7cwEaca ngzn8QMK3gG6HOEol5roPxtW+c0j+NCVJ+6U39trS7+05oP3qEdjxibIv1a+dkPmxfJMHN/w1 CpbAb+W3sM35snEHoK/FnLFwdHI8GPfueFn5cQPXm42dsSOKIXU2DBAwAMzrce8oPfFsvHH8u OttI7Hk6V2I6FjgLsyz/O4XxP1toW6Z8W2th3xG2XlK2ptVzS2d31oX6C7plyyWbCSNtHzLuF C9c3gSV3++2lPswp0yL6MpAuM9+7AkTqFftG8HcadtXC3dw==
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/7XFFxEXVJqBkJVxxjHLKv4t2UyE>
Subject: [core] draft-ietf-core-resource-directory-03
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2015 14:39:09 -0000

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--6vGW0uQ1VvPOrQV6rDS37knxlcV6pbuIf
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Dear authors,

I have three questions and one remark regarding version -03 of the docume=
nt:

Remark: What was the reason the document title "CORE Resource Directory"?=

CORE is the name of the working group. Nobody outside the IETF knows
what CORE is and the lifetime of working groups is limited.

Questions:

a) Why are you using the DNS in the lighting example (from Section
12.1)? Does it gain you any advantage?

b) The use of DNS-SD also appears a bit artificial since RD and DNS-SD
provide overlapping functionality.

c) Could RD used with protocols other than CoAP, such as HTTP?

Ciao
Hannes


--6vGW0uQ1VvPOrQV6rDS37knxlcV6pbuIf
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQEcBAEBCgAGBQJVkqmHAAoJEGhJURNOOiAtBYsH/jpr+2mn4+3gQsVDQBcSl8ZY
3GwmXR8Q5jjSUNa81U5PmiYWowt42eJpPsEazJ6XuuiZ5hzihmokhngGElEIHDR0
qjTGGzFeTGqQ+SM7+acf7883jnQGq4pe2G/daiTzXn6eB1m8SDEqE6TroKCQXuHi
GU2oESzezj/y9V4RrIvOcY+hhucWyvwxnvNS/ZfrEOOFopv6QLf1TA22Nx3LkZoX
QAgSUQSTtHVxrSYT1T6X0oqAfm4KL9Q0UREU2iU1ahgFgjZjLKh/zDJOO8epqROc
CjYMU4NdJref4omSdYO+iOH9YeZi/Rz0kRJZWwaKXk6cVSiYCRTpMZLDQJEePbs=
=vntk
-----END PGP SIGNATURE-----

--6vGW0uQ1VvPOrQV6rDS37knxlcV6pbuIf--


From nobody Tue Jun 30 07:44:51 2015
Return-Path: <cabo@tzi.org>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 248381A9008 for <core@ietfa.amsl.com>; Tue, 30 Jun 2015 07:44:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.55
X-Spam-Level: 
X-Spam-Status: No, score=-1.55 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8norcY_8H2i3 for <core@ietfa.amsl.com>; Tue, 30 Jun 2015 07:44:37 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2EE2E1A0367 for <core@ietf.org>; Tue, 30 Jun 2015 07:44:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [134.102.201.11]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t5UEiVrs011551; Tue, 30 Jun 2015 16:44:31 +0200 (CEST)
Received: from alma.local (reingewinn.informatik.uni-bremen.de [134.102.218.123]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3mLT3g4lHFz3HNY; Tue, 30 Jun 2015 16:44:31 +0200 (CEST)
Message-ID: <5592AB4E.2050009@tzi.org>
Date: Tue, 30 Jun 2015 16:44:30 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.1 (Macintosh/20150514)
MIME-Version: 1.0
To: Hannes Tschofenig <hannes.tschofenig@gmx.net>
References: <5592A986.2060608@gmx.net>
In-Reply-To: <5592A986.2060608@gmx.net>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/yZcjRFUlcTLaCIt30blniZnlhaA>
Cc: "core@ietf.org WG" <core@ietf.org>
Subject: Re: [core] draft-ietf-core-resource-directory-03
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2015 14:44:39 -0000

Hi Hannes,

> Remark: What was the reason the document title "CORE Resource Directory"?
> CORE is the name of the working group. Nobody outside the IETF knows
> what CORE is and the lifetime of working groups is limited.

The same reason the well-known link is called /.well-known/core and not
something with CoAP in it:
This can be used with any of the three REST transfer protocols, not just
with CoAP.

CoRE = COnstrained RESTful Environments

> a) Why are you using the DNS in the lighting example (from Section
> 12.1)? Does it gain you any advantage?

Using DNS is one deployment option that has often been requested.

> b) The use of DNS-SD also appears a bit artificial since RD and DNS-SD
> provide overlapping functionality.

Exactly, so the objective is to show how they can not only overlap, but
actually interwork.

> c) Could RD used with protocols other than CoAP, such as HTTP?

Absolutely, see above.

GrÃ¼ÃŸe, Carsten


From nobody Tue Jun 30 13:56:37 2015
Return-Path: <Akbar.Rahman@InterDigital.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 532C51B3268 for <core@ietfa.amsl.com>; Tue, 30 Jun 2015 13:56:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.813
X-Spam-Level: **
X-Spam-Status: No, score=2.813 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_HOST_EQ_D_D_D_D=0.765, HTML_MESSAGE=0.001, MANGLED_PREMTR=2.3, RDNS_DYNAMIC=0.982, SPF_SOFTFAIL=0.665] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KuC28Y--J8md for <core@ietfa.amsl.com>; Tue, 30 Jun 2015 13:56:32 -0700 (PDT)
Received: from smtp-in1.interdigital.com (host-64-47-120-121.masergy.com [64.47.120.121]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 153FF1B3263 for <core@ietf.org>; Tue, 30 Jun 2015 13:56:31 -0700 (PDT)
X-ASG-Debug-ID: 1435697789-06daaa10b81035b0001-aa7cYp
Received: from NALENITE.InterDigital.com (nalenite.interdigital.com [10.2.64.253]) by smtp-in1.interdigital.com with ESMTP id YSA7PBhQph09eZjn (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO); Tue, 30 Jun 2015 16:56:29 -0400 (EDT)
X-Barracuda-Envelope-From: Akbar.Rahman@InterDigital.com
Received: from NABESITE.InterDigital.com ([fe80::4d8a:a889:67c2:f009]) by NALENITE.InterDigital.com ([::1]) with mapi id 14.03.0210.002; Tue, 30 Jun 2015 16:56:31 -0400
From: "Rahman, Akbar" <Akbar.Rahman@InterDigital.com>
To: Michael Koster <michaeljohnkoster@gmail.com>, Carsten Bormann <cabo@tzi.org>
Thread-Topic: [core] CoRE Resource Directory draft updates
X-ASG-Orig-Subj: RE: [core] CoRE Resource Directory draft updates
Thread-Index: AQHQst+TVQurDYN8aUab2/MHw81rhp3Feu+w
Date: Tue, 30 Jun 2015 20:56:30 +0000
Message-ID: <36F5869FE31AB24485E5E3222C288E1F22E04456@NABESITE.InterDigital.com>
References: <E63924C5-408B-4EB6-8AB0-006EFA4D0DCA@gmail.com>
In-Reply-To: <E63924C5-408B-4EB6-8AB0-006EFA4D0DCA@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.3.2.78]
x-exclaimer-md-config: bb79a19d-f711-475c-a0f9-4d93b71c94dd
Content-Type: multipart/alternative; boundary="_000_36F5869FE31AB24485E5E3222C288E1F22E04456NABESITEInterDi_"
MIME-Version: 1.0
X-Barracuda-Connect: nalenite.interdigital.com[10.2.64.253]
X-Barracuda-Start-Time: 1435697789
X-Barracuda-Encrypted: AES128-SHA
X-Barracuda-URL: https://10.1.245.3:443/cgi-mod/mark.cgi
X-Virus-Scanned: by bsmtpd at interdigital.com
X-Barracuda-BRTS-Status: 1
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests=HTML_MESSAGE
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.20335 Rule breakdown below pts rule name              description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE           BODY: HTML included in message
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/M5ZHrh8UPp2C8t7Da1eUlQt5buY>
Cc: core WG <core@ietf.org>
Subject: Re: [core] CoRE Resource Directory draft updates
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2015 20:56:34 -0000

--_000_36F5869FE31AB24485E5E3222C288E1F22E04456NABESITEInterDi_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgTWlrZS9DYXJzdGVuIChhbmQgb3RoZXIgYXV0aG9ycyksDQoNCg0KVGhhbmtzIGZvciB0aGUg
dXBkYXRlcy4gIEkgaGFkIHRoZSBmb2xsb3dpbmcgY29tbWVudHM6DQoNCg0KMS4gICAgICAgRWRp
dG9yaWFsIOKAkyBJbiBGaWd1cmUgMSwgdGhlIHRvcCBsaW5lIGRlc2NyaXB0b3Ig4oCcR3JvdXDi
gJ0gZG9lcyBub3QgbWF0Y2ggdGhlIG90aGVyIGRlc2NyaXB0b3JzIChSZWdpc3RyYXRpb24sIExv
b2t1cCkgd2hpY2ggYXJlIHZlcmJzLiAgSSBndWVzcyBpdCBzaG91bGQgYmUg4oCcR3JvdXAgT3Bl
cmF0aW9u4oCdIG9yIOKAnEdyb3VwIFJlZ2lzdGVyL1JlbW92ZeKAnT8NCg0KDQoNCjIuICAgICAg
IEluIHNlY3Rpb24gMy4xIChDZWxsdWxhciBNMk0pOg0KDQrCtyAgICAgICAgIEl0IHN0YXRlcywg
4oCcRHVlIHRvIHRoZSB1c3VhbCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gb2YgbW9iaWxlIG5ldHdv
cmtzLCB0aGUgRVDigJlzIGF0dGFjaGVkIHRvIHRoZSBtb2JpbGUgbmV0d29yayBkbyBub3QgaGF2
ZSByb3V0YWJsZSBhZGRyZXNzZXMu4oCdDQoNCsK3ICAgICAgICAgSG93ZXZlciwgSSBkbyBub3Qg
dGhpbmsgdGhpcyBpcyBhY2N1cmF0ZS4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIFJGQ3Mg
ZXhwbGljaXRseSBtZW50aW9uIHRoYXQgY2VsbHVsYXIgaG9zdHMgY2FuIGhhdmUgcm91dGFibGUg
SVAgYWRkcmVzc2VzOg0KDQrCtyAgIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MDY2
I3NlY3Rpb24tMS4zDQoNCsK3ICAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTkj
c2VjdGlvbi02LjINCg0KDQoNCjMuICAgICAgIEluIHNlY3Rpb24gMy4zIChMaW5rIENhdGFsb2d1
ZXMpOg0KDQrCtyAgICAgICAgIFNob3VsZCB0aGUgbGluay1mb3JtYXQrQ0JPUiBiZSBhZGRlZCB0
byDigJzigKYgbGluay1mb3JtYXQgb3IgbGluay1mb3JtYXQranNvbuKApuKAnT8NCg0KDQoNCjQu
ICAgICAgIEluIHNlY3Rpb24gNC4xIChGaW5kaW5nIGEgRGlyZWN0b3J5IFNlcnZlcik6DQoNCsK3
ICAgICAgICAgSXQgc3RhdGVzLCDigJzigKYgZGlyZWN0b3J5IHNlcnZlcnMgYXJlIGZvdW5kIGJ5
IHNpbXBseSBzZW5kaW5nIFBPU1QgcmVxdWVzdHMgdG8gdGhhdCB3ZWxsLWtub3duIG11bHRpY2Fz
dCBhZGRyZXNzIChkZXRhaWxzIFRCRCnigJ0NCg0KwrcgICAgICAgICBTaG91bGQgaXQgYmUgR0VU
IGluc3RlYWQgb2YgUE9TVD8NCg0KwrcgICAgICAgICBDYW4gdGhlIFRCRCBiZSByZXBsYWNlZCBi
eSByZWZlcmVuY2UgdG8gUkZDIDczOTA/DQoNCsK3ICAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9o
dG1sL3JmYzczOTAjc2VjdGlvbi0zLjMNCg0KDQoNCjUuICAgICAgIFNlY3Rpb24gNi4xIChSZWdp
c3RlciBhIEdyb3VwKToNCg0KwrcgICAgICAgICBFZGl0b3JpYWwNCg0KwrcgICBGUk9NOiDigJxU
aGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgYSBncm91cCB3aXRoIHRoZSBuYW1lIOKAnGxpZ2h0
c+KAnSByZWdpc3RlcmluZyB0d28gZW5kcG9pbnRzIHRvIGFuIFJEIOKApuKAnQ0KDQrCtyAgIFRP
OiAgICAgICAg4oCcVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGFuIEVQIHJlZ2lzdGVyaW5n
IGEgZ3JvdXAgd2l0aCB0aGUgbmFtZSDigJxsaWdodHPigJ0gd2hpY2ggaGFzIHR3byBlbmRwb2lu
dHMgdG8gYW4gUkQg4oCm4oCdDQoNCg0KNi4gICAgICAgRm9yIHlvdXIgc3VnZ2VzdGlvbiBiZWxv
dyByZWdhcmRpbmcgcmVtb3ZpbmcgdGhlIHNpbXBsZSByZWdpc3RyYXRpb24gYW5kIHJlcXVpcmlu
ZyBhIGNvbmZpZ3VyYXRpb24gdG9vbCBpbnN0ZWFkLiAgSXMgdGhpcyBhIGdvb2QgaWRlYSBhcyB3
ZSBjb25zdGFudGx5IChpbiB0aGlzIFdHIGFuZCBvdGhlcnMgYXQgSUVURikgYnJpbmcgdXAgdGhl
IHByb2JsZW1zIHdpdGggaGF2aW5nIHRvIG1hbnVhbGx5IGNvbmZpZ3VyZSBhbnl0aGluZyBvbiBh
biBNMk0gZGV2aWNlPw0KDQoNCg0KNy4gICAgICAgRm9yIHlvdXIgc3VnZ2VzdGlvbiBiZWxvdyBy
ZWdhcmRpbmcgYWRkaW5nIHRoZSBQQVRDSCBvcGVyYXRpb24gaW50byB0aGUgZG9jdW1lbnQuICBJ
IHRoaW5rIHRoaXMgaXMgcHJlLW1hdHVyZSBhcyB0aGUgUEFUQ0ggb3BlcmF0aW9uIGhhcyBub3Qg
eWV0IGJlZW4gYWRvcHRlZCBhcyBhIFdHIGRyYWZ0IHlldCBzbyBJIGRvbuKAmXQgYWdyZWUgdGhh
dCB5b3Ugc2hvdWxkIGFkZCBpdCBpbnRvIHRoaXMgcmV2aXNpb24gb2YgdGhlIFJELg0KDQoNCk90
aGVyd2lzZSBJIHRoaW5rIHRoZSBkb2N1bWVudCBpcyBpbiBnb29kIHNoYXBlIHRvIHByb2dyZXNz
Lg0KDQoNCkJlc3QgUmVnYXJkcywNCg0KDQpBa2Jhcg0KDQoNCkZyb206IGNvcmUgW21haWx0bzpj
b3JlLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBNaWNoYWVsIEtvc3Rlcg0KU2VudDog
TW9uZGF5LCBKdW5lIDI5LCAyMDE1IDU6MTYgUE0NClRvOiBjb3JlIFdHDQpTdWJqZWN0OiBbY29y
ZV0gQ29SRSBSZXNvdXJjZSBEaXJlY3RvcnkgZHJhZnQgdXBkYXRlcw0KDQpIaSwNCg0KV2UgcmVj
ZW50bHkgcHVibGlzaGVkIFdHIHZlcnNpb24gMyBvZiBDb1JFIFJlc291cmNlIERpcmVjdG9yeSB3
aXRoIHNvbWUgb2YgdGhlIGRpc2N1c3NlZCBjaGFuZ2VzLCBpbmNsdWRpbmcgYSBsaWdodGluZyBl
eGFtcGxlIHNob3dpbmcgZG5zc2QgaW50ZWdyYXRpb24sIHRoZSBPTUEgTFdNMk0gZXhhbXBsZSwg
YW5kIHRoZSBhZGRpdGlvbiBvZiBhIGxpbmsgY29sbGVjdGlvbiBpbnRyb3NwZWN0aW9uIGZ1bmN0
aW9uIChHRVQgbGlua3MgZnJvbSB0aGUgcmVnaXN0cmF0aW9uIGNvbGxlY3Rpb24pLg0KDQpodHRw
czovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9kcmFmdC1pZXRmLWNvcmUtcmVzb3VyY2UtZGly
ZWN0b3J5Lw0KDQpXZSB3b3VsZCBsaWtlIHRvIGNvbnRpbnVlIGRpc2N1c3Npb24gb2YgYSBjb3Vw
bGUgb2YgYWRkaXRpb25hbCBjaGFuZ2VzIGZvciB0aGUgdXBjb21pbmcgLTA0IHZlcnNpb246DQoN
CjEuIFJlbW92ZSB0aGUgc2ltcGxlIHJlZ2lzdHJhdGlvbiBkZXNjcmliZWQgaW4gdGhlIGJlZ2lu
bmluZyBvZiBzZWN0aW9uIDQuIFVubGVzcyB0aGVyZSBpcyBhIHN0cm9uZyBzcGVjaWZpYyB1c2Ug
Y2FzZSwgdGhlIGJhc2ljIG5lZWQgY2FuIGJlIGVhc2lseSBoYW5kbGVkIHVzaW5nIGEgY29uZmln
dXJhdGlvbiB0b29sLg0KDQoyLiBBZGQgdGhlIFBBVENIIG9wZXJhdGlvbiB0byB0aGUgbGluayBj
b2xsZWN0aW9uIHRvIHNlY3Rpb24gNSwgZm9yIHVwZGF0aW5nIGxpbmsgY29udGVudCBhZnRlciB0
aGUgaW5pdGlhbCByZWdpc3RyYXRpb24uIE9NQSBMV00yTSBpcyBvbmUgdXNlIGNhc2UgZm9yIHRo
aXMsIHdoZW4gb2JqZWN0cyBhcmUgY3JlYXRlZCBhbmQgZGVsZXRlZCBhdCB0aGUgZW5kcG9pbnQg
dGhlcmUgbmVlZHMgdG8gYmUgYSB3YXkgdG8gdXBkYXRlIHRoZSByZWdpc3RyYXRpb24gbGluayBj
b250ZW50IHdpdGhvdXQgdW5yZWdpc3Rlci9yZXJlZ2lzdGVyIG9wZXJhdGlvbnMuDQoNCkFsc28s
IGFyZSB0aGVyZSBhbnkgb3RoZXIgaXNzdWVzIG9yIGNoYW5nZXMgbmVlZGVkPw0KDQpCZXN0IHJl
Z2FyZHMsDQoNCk1pY2hhZWwgSiBLb3N0ZXINCg==

--_000_36F5869FE31AB24485E5E3222C288E1F22E04456NABESITEInterDi_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjwhLS0gVGVtcGxhdGUgZ2VuZXJhdGVkIGJ5IEV4Y2xh
aW1lciBTaWduYXR1cmUgTWFuYWdlciBFeGNoYW5nZSBFZGl0aW9uIG9uIDA0OjU2OjMxIFR1ZXNk
YXksIDMwIEp1bmUgMjAxNSAtLT4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
UC5JbXByaW50VW5pcXVlSUQgew0KCU1BUkdJTjogMGNtIDBjbSAwcHQNCn0NCkxJLkltcHJpbnRV
bmlxdWVJRCB7DQoJTUFSR0lOOiAwY20gMGNtIDBwdA0KfQ0KRElWLkltcHJpbnRVbmlxdWVJRCB7
DQoJTUFSR0lOOiAwY20gMGNtIDBwdA0KfQ0KVEFCTEUuSW1wcmludFVuaXF1ZUlEVGFibGUgew0K
CU1BUkdJTjogMGNtIDBjbSAwcHQNCn0NCkRJVi5TZWN0aW9uMSB7DQoJcGFnZTogU2VjdGlvbjEN
Cn0NCjwvc3R5bGU+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBX
b3JkIDE1IChmaWx0ZXJlZCBtZWRpdW0pIj4NCjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRp
b25zICovDQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9z
ZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxp
YnJpOw0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30NCi8qIFN0eWxlIERlZmluaXRp
b25zICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdp
bjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9u
dC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVy
bGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29y
YXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0K
CXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlv
bjp1bmRlcmxpbmU7fQ0KcC5Nc29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBk
aXYuTXNvTGlzdFBhcmFncmFwaA0KCXttc28tc3R5bGUtcHJpb3JpdHk6MzQ7DQoJbWFyZ2luLXRv
cDowaW47DQoJbWFyZ2luLXJpZ2h0OjBpbjsNCgltYXJnaW4tYm90dG9tOjBpbjsNCgltYXJnaW4t
bGVmdDouNWluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0K
CWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCnNwYW4uRW1haWxTdHlsZTE3
DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
IixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0
eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3JkU2Vj
dGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEu
MGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBE
ZWZpbml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxpc3QtaWQ6NzY2MjcwODcyOw0KCW1zby1s
aXN0LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczotNjQxMTgyNjYyIDY3Njk4
NzAzIDY3Njk4Njg5IDY3Njk4Njg5IDY3Njk4NzAzIDY3Njk4NzEzIDY3Njk4NzE1IDY3Njk4NzAz
IDY3Njk4NzEzIDY3Njk4NzE1O30NCkBsaXN0IGwwOmxldmVsMQ0KCXttc28tbGV2ZWwtdGFiLXN0
b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6
LS4yNWluO30NCkBsaXN0IGwwOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxs
ZXQ7DQoJbXNvLWxldmVsLXRleHQ6XEYwQjc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJ
bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglm
b250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpcRjBCNzsNCgltc28tbGV2ZWwtdGFiLXN0
b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6
LTkuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDQNCgl7bXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjt9DQpAbGlzdCBsMDpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1m
b3JtYXQ6YWxwaGEtbG93ZXI7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjt9DQpAbGlzdCBsMDps
ZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6cm9tYW4tbG93ZXI7DQoJbXNvLWxldmVs
LXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpyaWdodDsNCgl0ZXh0
LWluZGVudDotOS4wcHQ7fQ0KQGxpc3QgbDA6bGV2ZWw3DQoJe21zby1sZXZlbC10YWItc3RvcDpu
b25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1
aW47fQ0KQGxpc3QgbDA6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmFscGhhLWxv
d2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRp
b246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47fQ0KQGxpc3QgbDA6bGV2ZWw5DQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OnJvbWFuLWxvd2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25l
Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246cmlnaHQ7DQoJdGV4dC1pbmRlbnQ6LTkuMHB0
O30NCm9sDQoJe21hcmdpbi1ib3R0b206MGluO30NCnVsDQoJe21hcmdpbi1ib3R0b206MGluO30N
Ci0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6
ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBn
dGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2
OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0t
LT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxl
Ij4NCjxwPjwvcD4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SGkgTWlrZS9DYXJzdGVuIChhbmQg
b3RoZXIgYXV0aG9ycyksPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdE
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VGhhbmtzIGZvciB0aGUgdXBkYXRlcy4mbmJzcDsg
SSBoYWQgdGhlIGZvbGxvd2luZyBjb21tZW50czo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0
ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0
TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLWxp
c3Q6SWdub3JlIj4xLjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21h
biZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9z
cGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkVkaXRv
cmlhbCDigJMgSW4gRmlndXJlIDEsIHRoZSB0b3AgbGluZSBkZXNjcmlwdG9yIOKAnEdyb3Vw4oCd
IGRvZXMgbm90IG1hdGNoIHRoZSBvdGhlciBkZXNjcmlwdG9ycyAoUmVnaXN0cmF0aW9uLCBMb29r
dXApIHdoaWNoIGFyZSB2ZXJicy4mbmJzcDsgSSBndWVzcyBpdCBzaG91bGQNCiBiZSDigJxHcm91
cCBPcGVyYXRpb27igJ0gb3Ig4oCcR3JvdXAgUmVnaXN0ZXIvUmVtb3Zl4oCdPzxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2
ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0
OTdEIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj4yLjxzcGFuIHN0eWxlPSJmb250Ojcu
MHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPkluIHNlY3Rpb24gMy4xIChDZWxsdWxhciBNMk0pOjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2lu
LWxlZnQ6MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMiBsZm8xIj4N
CjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3Jl
Ij7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+
PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkl0
IHN0YXRlcywg4oCcRHVlIHRvIHRoZSB1c3VhbCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gb2YgbW9i
aWxlIG5ldHdvcmtzLCB0aGUgRVDigJlzIGF0dGFjaGVkIHRvIHRoZSBtb2JpbGUgbmV0d29yayBk
byBub3QgaGF2ZSByb3V0YWJsZSBhZGRyZXNzZXMu4oCdPG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDoxLjBpbjt0ZXh0
LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwyIGxmbzEiPg0KPCFbaWYgIXN1cHBvcnRM
aXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2Nv
bG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9
ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwh
W2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SG93ZXZlciwgSSBkbyBub3Qg
dGhpbmsgdGhpcyBpcyBhY2N1cmF0ZS4mbmJzcDsgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcg
UkZDcyBleHBsaWNpdGx5IG1lbnRpb24gdGhhdCBjZWxsdWxhciBob3N0cyBjYW4gaGF2ZSByb3V0
YWJsZSBJUCBhZGRyZXNzZXM6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xp
c3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDoxLjVpbjt0ZXh0LWluZGVudDotOS4wcHQ7
bXNvLWxpc3Q6bDAgbGV2ZWwzIGxmbzEiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPjxz
cGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9z
cGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom
cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PGEgaHJlZj0iaHR0
cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcwNjYjc2VjdGlvbi0xLjMiPmh0dHBzOi8vdG9v
bHMuaWV0Zi5vcmcvaHRtbC9yZmM3MDY2I3NlY3Rpb24tMS4zPC9hPg0KPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDox
LjVpbjt0ZXh0LWluZGVudDotOS4wcHQ7bXNvLWxpc3Q6bDAgbGV2ZWwzIGxmbzEiPg0KPCFbaWYg
IXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNw
YW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsm
bmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+PGEgaHJlZj0iaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTkj
c2VjdGlvbi02LjIiPmh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU5I3NlY3Rpb24t
Ni4yPC9hPg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3Jh
cGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0u
MjVpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjMu
PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwh
W2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SW4gc2VjdGlvbiAzLjMgKExp
bmsgQ2F0YWxvZ3Vlcyk6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQ
YXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNv
LWxpc3Q6bDAgbGV2ZWwyIGxmbzEiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPjxzcGFu
IHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7
VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+U2hvdWxkIHRoZSBsaW5rLWZvcm1hdCYjNDM7Q0JPUiBiZSBh
ZGRlZCB0byDigJzigKYgbGluay1mb3JtYXQgb3IgbGluay1mb3JtYXQmIzQzO2pzb27igKbigJ0/
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxl
PSJtYXJnaW4tbGVmdDoxLjBpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHls
ZT0idGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtpZiAhc3Vw
cG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1z
by1saXN0Oklnbm9yZSI+NC48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcg
Um9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFu
Pjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5J
biBzZWN0aW9uIDQuMSAoRmluZGluZyBhIERpcmVjdG9yeSBTZXJ2ZXIpOjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6
MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMiBsZm8xIj4NCjwhW2lm
ICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OlN5bWJvbDtjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7Ctzxz
cGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFu
Pjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkl0IHN0YXRl
cywg4oCc4oCmIGRpcmVjdG9yeSBzZXJ2ZXJzIGFyZSBmb3VuZCBieSBzaW1wbHkgc2VuZGluZyBQ
T1NUIHJlcXVlc3RzIHRvIHRoYXQgd2VsbC1rbm93biBtdWx0aWNhc3QgYWRkcmVzcyAoZGV0YWls
cyBUQkQp4oCdPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3Jh
cGgiIHN0eWxlPSJtYXJnaW4tbGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6
bDAgbGV2ZWwyIGxmbzEiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxl
PSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMg
TmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7
Y29sb3I6IzFGNDk3RCI+U2hvdWxkIGl0IGJlIEdFVCBpbnN0ZWFkIG9mIFBPU1Q/PG86cD48L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4t
bGVmdDoxLjBpbjt0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwyIGxmbzEiPg0K
PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUi
PsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4m
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48
L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Q2Fu
IHRoZSBUQkQgYmUgcmVwbGFjZWQgYnkgcmVmZXJlbmNlIHRvIFJGQyA3MzkwPzxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6MS41aW47dGV4dC1pbmRlbnQ6LTkuMHB0O21zby1saXN0OmwwIGxldmVsMyBsZm8xIj4NCjwh
W2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFt
aWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7C
tzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5i
c3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
O2NvbG9yOiMxRjQ5N0QiPjxhIGhyZWY9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3
MzkwI3NlY3Rpb24tMy4zIj5odHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzM5MCNzZWN0
aW9uLTMuMzwvYT4NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFy
YWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MS41aW4iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjoj
MUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTGlzdFBh
cmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZlbDEgbGZv
MSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxz
cGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPjUuPHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s
b3I6IzFGNDk3RCI+U2VjdGlvbiA2LjEgKFJlZ2lzdGVyIGEgR3JvdXApOjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6
MS4waW47dGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMiBsZm8xIj4NCjwhW2lm
ICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OlN5bWJvbDtjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7Ctzxz
cGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFu
Pjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkVkaXRvcmlh
bDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHls
ZT0ibWFyZ2luLWxlZnQ6MS41aW47dGV4dC1pbmRlbnQ6LTkuMHB0O21zby1saXN0OmwwIGxldmVs
MyBsZm8xIj4NCjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj48c3BhbiBzdHlsZT0ibXNvLWxp
c3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21h
biZxdW90OyI+Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkZST006IOKAnFRoZSBmb2xsb3dpbmcgZXhhbXBs
ZSBzaG93cyBhIGdyb3VwIHdpdGggdGhlIG5hbWUg4oCcbGlnaHRz4oCdIHJlZ2lzdGVyaW5nIHR3
byBlbmRwb2ludHMgdG8gYW4gUkQg4oCm4oCdPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDoxLjVpbjt0ZXh0LWluZGVu
dDotOS4wcHQ7bXNvLWxpc3Q6bDAgbGV2ZWwzIGxmbzEiPg0KPCFbaWYgIXN1cHBvcnRMaXN0c10+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMx
RjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6
Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsNCjwvc3Bhbj48
L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+VE86
ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO+KAnFRoZSBmb2xsb3dp
bmcgZXhhbXBsZSBzaG93cyBhbiBFUCByZWdpc3RlcmluZyBhIGdyb3VwIHdpdGggdGhlIG5hbWUg
4oCcbGlnaHRz4oCdIHdoaWNoIGhhcyB0d28gZW5kcG9pbnRzIHRvIGFuIFJEIOKApuKAnTxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm
dDouNzVpbiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRl
bnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj48IVtpZiAhc3VwcG9ydExpc3RzXT48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5bGU9Im1zby1saXN0Oklnbm9y
ZSI+Ni48c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsi
PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3Nw
YW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5Gb3IgeW91ciBzdWdn
ZXN0aW9uIGJlbG93IHJlZ2FyZGluZyByZW1vdmluZyB0aGUgc2ltcGxlIHJlZ2lzdHJhdGlvbiBh
bmQgcmVxdWlyaW5nIGEgY29uZmlndXJhdGlvbiB0b29sIGluc3RlYWQuJm5ic3A7IElzIHRoaXMg
YSBnb29kIGlkZWEgYXMgd2UgY29uc3RhbnRseQ0KIChpbiB0aGlzIFdHIGFuZCBvdGhlcnMgYXQg
SUVURikgYnJpbmcgdXAgdGhlIHByb2JsZW1zIHdpdGggaGF2aW5nIHRvIG1hbnVhbGx5IGNvbmZp
Z3VyZSBhbnl0aGluZyBvbiBhbiBNMk0gZGV2aWNlPzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgi
IHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lm
ICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48c3BhbiBzdHls
ZT0ibXNvLWxpc3Q6SWdub3JlIj43LjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVz
IE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8
L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5
N0QiPkZvciB5b3VyIHN1Z2dlc3Rpb24gYmVsb3cgcmVnYXJkaW5nIGFkZGluZyB0aGUgUEFUQ0gg
b3BlcmF0aW9uIGludG8gdGhlIGRvY3VtZW50LiZuYnNwOyBJIHRoaW5rIHRoaXMgaXMgcHJlLW1h
dHVyZSBhcyB0aGUgUEFUQ0ggb3BlcmF0aW9uIGhhcyBub3QgeWV0IGJlZW4NCiBhZG9wdGVkIGFz
IGEgV0cgZHJhZnQgeWV0IHNvIEkgZG9u4oCZdCBhZ3JlZSB0aGF0IHlvdSBzaG91bGQgYWRkIGl0
IGludG8gdGhpcyByZXZpc2lvbiBvZiB0aGUgUkQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+T3RoZXJ3aXNlIEkgdGhp
bmsgdGhlIGRvY3VtZW50IGlzIGluIGdvb2Qgc2hhcGUgdG8gcHJvZ3Jlc3MuPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMx
RjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
QmVzdCBSZWdhcmRzLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz
YW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPkFrYmFyPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp
Zjtjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRp
diBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRp
bmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmIj5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4gY29yZSBbbWFpbHRvOmNv
cmUtYm91bmNlc0BpZXRmLm9yZ10NCjxiPk9uIEJlaGFsZiBPZiA8L2I+TWljaGFlbCBLb3N0ZXI8
YnI+DQo8Yj5TZW50OjwvYj4gTW9uZGF5LCBKdW5lIDI5LCAyMDE1IDU6MTYgUE08YnI+DQo8Yj5U
bzo8L2I+IGNvcmUgV0c8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gW2NvcmVdIENvUkUgUmVzb3VyY2Ug
RGlyZWN0b3J5IGRyYWZ0IHVwZGF0ZXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5IaSw8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPldlIHJlY2VudGx5IHB1Ymxpc2hlZCBXRyB2ZXJzaW9uIDMgb2YgQ29SRSBSZXNvdXJj
ZSBEaXJlY3Rvcnkgd2l0aCBzb21lIG9mIHRoZSBkaXNjdXNzZWQgY2hhbmdlcywgaW5jbHVkaW5n
IGEgbGlnaHRpbmcgZXhhbXBsZSBzaG93aW5nIGRuc3NkIGludGVncmF0aW9uLCB0aGUgT01BIExX
TTJNIGV4YW1wbGUsIGFuZCB0aGUgYWRkaXRpb24gb2YgYSBsaW5rIGNvbGxlY3Rpb24gaW50cm9z
cGVjdGlvbiBmdW5jdGlvbg0KIChHRVQgbGlua3MgZnJvbSB0aGUgcmVnaXN0cmF0aW9uIGNvbGxl
Y3Rpb24pLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48YSBocmVmPSJodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9kcmFmdC1pZXRm
LWNvcmUtcmVzb3VyY2UtZGlyZWN0b3J5LyI+aHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9k
b2MvZHJhZnQtaWV0Zi1jb3JlLXJlc291cmNlLWRpcmVjdG9yeS88L2E+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPldlIHdvdWxkIGxpa2UgdG8g
Y29udGludWUgZGlzY3Vzc2lvbiBvZiBhIGNvdXBsZSBvZiBhZGRpdGlvbmFsIGNoYW5nZXMgZm9y
IHRoZSB1cGNvbWluZyAtMDQgdmVyc2lvbjo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MS4gUmVtb3ZlIHRoZSBzaW1wbGUgcmVnaXN0cmF0aW9u
IGRlc2NyaWJlZCBpbiB0aGUgYmVnaW5uaW5nIG9mIHNlY3Rpb24gNC4gVW5sZXNzIHRoZXJlIGlz
IGEgc3Ryb25nIHNwZWNpZmljIHVzZSBjYXNlLCB0aGUgYmFzaWMgbmVlZCBjYW4gYmUgZWFzaWx5
IGhhbmRsZWQgdXNpbmcgYSBjb25maWd1cmF0aW9uIHRvb2wuPG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjIuIEFkZCB0aGUgUEFUQ0ggb3BlcmF0
aW9uIHRvIHRoZSBsaW5rIGNvbGxlY3Rpb24gdG8gc2VjdGlvbiA1LCBmb3IgdXBkYXRpbmcgbGlu
ayBjb250ZW50IGFmdGVyIHRoZSBpbml0aWFsIHJlZ2lzdHJhdGlvbi4gT01BIExXTTJNIGlzIG9u
ZSB1c2UgY2FzZSBmb3IgdGhpcywgd2hlbiBvYmplY3RzIGFyZSBjcmVhdGVkIGFuZCBkZWxldGVk
IGF0IHRoZSBlbmRwb2ludCB0aGVyZSBuZWVkcyB0byBiZSBhIHdheSB0bw0KIHVwZGF0ZSB0aGUg
cmVnaXN0cmF0aW9uIGxpbmsgY29udGVudCB3aXRob3V0IHVucmVnaXN0ZXIvcmVyZWdpc3RlciBv
cGVyYXRpb25zLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj5BbHNvLCBhcmUgdGhlcmUgYW55IG90aGVyIGlzc3VlcyBvciBjaGFuZ2VzIG5lZWRl
ZD88bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
QmVzdCByZWdhcmRzLDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5NaWNoYWVsIEogS29zdGVyPG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPHA+PC9wPg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_36F5869FE31AB24485E5E3222C288E1F22E04456NABESITEInterDi_--

