RE: GPL violation? (Was: v1.6 Enhanced SNACC Freeware)
"Pawling, John" <[email protected]> Mon, 17 Nov 2003 07:57:42 -0500
| Newsgroups | gmane.ietf.sfl |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. ------_=_NextPart_001_01C3AD0A.63877BC2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable W. Borgert, As stated in the attached Enhanced SNACC public license (also available from http://digitalnet.com/knowledge/snacc_lib.htm), the original SNACC software is composed of the SNACC Compiler and the SNACC Library. Michael Sample and the University of British Columbia developed the original SNACC Compiler and Library. =20 According to Michael Sample, the original SNACC Compiler is covered by the GNU General Public License (GPL), Version 2, June 1991. =20 According to Michael Sample, the original SNACC Library software is completely unencumbered. None of the GNU public licenses apply to the original SNACC Library software.=20 In summary, the Enhanced SNACC compiler and library are being distributed properly as per Michael Sample and the University of British Columbia. Please see the attached Enhanced SNACC public license for futher information. =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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D John Pawling, DigitalNet DigitalNet KATSIPP Team Program Manager =20 [email protected] 141 National Business Pkwy, Suite 210 =20 Annapolis Junction, MD USA 20701=20 (301) 939-2739 or (410) 880-6095 =20 www.DigitalNet.com=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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D _________________ The information contained herein is for the exclusive use of Government and Contractor personnel with a need-to-know KATSIPP information. Such information is specifically prohibited from posting on unrestricted bulletin boards or other unlimited access applications. -----Original Message----- From: W. Borgert [mailto:[email protected]]=20 Sent: Saturday, November 15, 2003 3:43 PM To: Bertapelle, Matt Cc: imc-snacc; imc-cml; imc-sfl; [email protected] Subject: Re: GPL violation? (Was: v1.6 Enhanced SNACC Freeware) [Resent mail, because I wasn't on the mailing lists.] On Fri, Nov 14, 2003 at 08:38:16PM +0000, W. Borgert wrote: > Hello, >=20 > On Fri, Nov 14, 2003 at 02:10:30PM -0500, Matt Bertapelle wrote: > > The eSNACC ASN.1 library is totally unencumbered as stated=20 > > in the Enhanced SNACC Software Public License. All source code > > for the eSNACC software is being provided at no cost and with no > > financial limitations regarding its use and distribution. =20 > > Organizations can use the eSNACC software without paying > > any royalties or licensing fees. =20 >=20 > One question about the license: The original SNACC software > has been released by it's authors under the terms of the GNU > General Public License. I am not a lawyer, but if I > understand the GNU GPL correctly, you cannot change the > license or apply an arbitrary license to a GPL software, if > you are not the author/copyright holder. The GPL also > covers any new code by you, that is linked with SNACC > ("derived work"). How does your license relate to the GNU > GPL? Is the license change legally OK? >=20 > Btw.: I very much appreciate, that you are working on SNACC > and that you giving the code to the free software community. > However, I must be 100% sure about the legal status of your > efforts. Please don't be annoyed! >=20 > Best regards, > W. Borgert ------_=_NextPart_001_01C3AD0A.63877BC2 Content-Type: text/plain; name="snacc_license.txt" Content-Transfer-Encoding: base64 Content-Description: snacc_license.txt Content-Disposition: attachment; filename="snacc_license.txt" MjEgRmVicnVhcnkgMjAwMw0KDQogICAgICAgICAgIAkgICAgRU5IQU5DRUQgU05BQ0MgU09GVFdB UkUgUFVCTElDIExJQ0VOU0UNCg0KKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQoNCk9yaWdpbmFsIFNO QUNDIFNvZnR3YXJlOg0KDQpUaGUgU05BQ0Mgc29mdHdhcmUgaXMgY29tcG9zZWQgb2YgdGhlIFNO QUNDIENvbXBpbGVyIGFuZCB0aGUgU05BQ0MNCkxpYnJhcnkuICBNaWNoYWVsIFNhbXBsZSBhbmQg dGhlIFVuaXZlcnNpdHkgb2YgQnJpdGlzaCBDb2x1bWJpYSANCmRldmVsb3BlZCB0aGUgb3JpZ2lu YWwgU05BQ0MgQ29tcGlsZXIgYW5kIExpYnJhcnkuICBBY2NvcmRpbmcgdG8gDQpNaWNoYWVsIFNh bXBsZSwgdGhlIG9yaWdpbmFsIFNOQUNDIENvbXBpbGVyIGlzIGNvdmVyZWQgYnkgdGhlIA0KYXR0 YWNoZWQgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCksIFZlcnNpb24gMiwgSnVuZSAx OTkxLg0KQWNjb3JkaW5nIHRvIE1pY2hhZWwgU2FtcGxlLCB0aGUgb3JpZ2luYWwgU05BQ0MgTGli cmFyeSANCnNvZnR3YXJlIGlzIGNvbXBsZXRlbHkgdW5lbmN1bWJlcmVkLiAgTm9uZSBvZiB0aGUg R05VIHB1YmxpYyANCmxpY2Vuc2VzIGFwcGx5IHRvIHRoZSBvcmlnaW5hbCBTTkFDQyBMaWJyYXJ5 IHNvZnR3YXJlLiAgRWFjaCANClNOQUNDIExpYnJhcnkgc291cmNlIGNvZGUgZmlsZSBpbmNsdWRl cyB0aGUgZm9sbG93aW5nIHRleHQ6DQoNCiIvLyBDb3B5cmlnaHQgKEMpIDE5OTIgTWljaGFlbCBT YW1wbGUgYW5kIHRoZSBVbml2ZXJzaXR5IG9mIEJyaXRpc2ggQ29sdW1iaWENCi8vDQovLyBUaGlz IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y DQovLyBtb2RpZnkgaXQgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodC9saWNlbnNlIGluZm9y bWF0aW9uIGlzIHJldGFpbmVkDQovLyBpbiBvcmlnaW5hbCBmb3JtLg0KLy8NCi8vIElmIHlvdSBt b2RpZnkgdGhpcyBmaWxlLCB5b3UgbXVzdCBjbGVhcmx5IGluZGljYXRlIHlvdXIgY2hhbmdlcy4N Ci8vDQovLyBUaGlzIHNvdXJjZSBjb2RlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZQ0KLy8gdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eQ0KLy8gb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiINCg0KKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQoN CkVuaGFuY2VkIFNOQUNDIFNvZnR3YXJlOg0KDQpVbmRlciBjb250cmFjdCB0byB0aGUgVS5TLiBH b3Zlcm5tZW50LCBEaWdpdGFsTmV0IEdvdmVybm1lbnQgU29sdXRpb25zDQpoYXMgZW5oYW5jZWQg dGhlIG9yaWdpbmFsIFNOQUNDIENvbXBpbGVyIGFuZCBMaWJyYXJ5IHRvDQpwcm9kdWNlIHRoZSBF bmhhbmNlZCBTTkFDQyBDb21waWxlciBhbmQgTGlicmFyeS4gDQoNCisrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKw0KDQpFbmhhbmNlZCBTTkFDQyBDb21waWxlciBMaWNlbnNlIEluZm9ybWF0aW9uOg0KDQpU aGUgRW5oYW5jZWQgU05BQ0MgQ29tcGlsZXIgaXMgY292ZXJlZCBieSB0aGUgYXR0YWNoZWQgR05V IEdQTC4gIERpZ2l0YWxOZXQNCmhhcyBjbGVhcmx5IG1hcmtlZCBhbGwgZW5oYW5jZW1lbnRzIG1h ZGUgdG8gdGhlIG9yaWdpbmFsIFNOQUNDIENvbXBpbGVyDQphcyByZXF1aXJlZCBieSB0aGUgR05V IEdQTC4gIERpZ2l0YWxOZXQgaGFzIG1ldCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgR1BM IA0KaW5jbHVkaW5nOiBwcm92aWRpbmcgYWxsIHNvdXJjZSBjb2RlIGZvciB0aGUgRW5oYW5jZWQg U05BQ0MgQ29tcGlsZXI7DQpmcmVlbHkgZGlzdHJpYnV0aW5nIHRoZSBFbmhhbmNlZCBTTkFDQyBD b21waWxlcjsgYW5kIHByb3ZpZGluZyBhIGNvcHkNCm9mIHRoZSBHUEwgYWxvbmcgd2l0aCB0aGUg RW5oYW5jZWQgU05BQ0MgQ29tcGlsZXIuICANCg0KKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQoNCkVu aGFuY2VkIFNOQUNDIExpYnJhcnkgTGljZW5zZSBJbmZvcm1hdGlvbjoNCg0KRGlnaXRhbE5ldCBo YXMgY2xlYXJseSBtYXJrZWQgYWxsIGVuaGFuY2VtZW50cyBtYWRlIHRvIHRoZSBvcmlnaW5hbCBT TkFDQw0KTGlicmFyeSBhcyByZXF1aXJlZCBieSB0aGUgbGljZW5zZSBpbmZvcm1hdGlvbiBpbmNs dWRlZCBpbiBlYWNoIHNvdXJjZSBjb2RlIA0KZmlsZS4gIERpZ2l0YWxOZXQgaGFzIHJldGFpbmVk IHRoZSBsaWNlbnNlIGluZm9ybWF0aW9uIGluIG9yaWdpbmFsIGZvcm0gaW4gDQplYWNoIHNvdXJj ZSBjb2RlIGZpbGUuICBOb25lIG9mIHRoZSBHTlUgcHVibGljIGxpY2Vuc2VzIGFwcGx5IHRvIHRo ZSBFbmhhbmNlZCANClNOQUNDIExpYnJhcnkgc29mdHdhcmUuICANCg0KVGhlIFVuaXRlZCBTdGF0 ZXMgR292ZXJubWVudC9EZXBhcnRtZW50IG9mIERlZmVuc2UvTmF0aW9uYWwgU2VjdXJpdHkgDQpB Z2VuY3kvT2ZmaWNlIG9mIE5ldHdvcmsgU2VjdXJpdHkgKGNvbGxlY3RpdmVseSAidGhlIFUuUy4g R292ZXJubWVudCIpIA0KaGVyZWJ5IGdyYW50cyBwZXJtaXNzaW9uIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEgY29weSBvZiB0aGUgRW5oYW5jZWQNClNOQUNDIExpYnJhcnkgc291cmNlIGFuZCBv YmplY3QgZmlsZXMgKHRoZSAiRW5oYW5jZWQgU05BQ0MgTGlicmFyeQ0KU29mdHdhcmUiKSwgb3Ig YW55IHBvcnRpb25zIHRoZXJlb2YsIHRvIGRvIHRoZSBmb2xsb3dpbmcsIHN1YmplY3QgdG8gdGhl IA0KZm9sbG93aW5nIGxpY2Vuc2UgY29uZGl0aW9uczoNCg0KMS4gWW91IG1heSwgZnJlZSBvZiBj aGFyZ2UgYW5kIHdpdGhvdXQgYWRkaXRpb25hbCBwZXJtaXNzaW9uIGZyb20gdGhlIA0KVS5TLiBH b3Zlcm5tZW50LCB1c2UsIGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSBhbmQgb3RoZXJ3aXNlIGRp c3RyaWJ1dGUgdGhlDQpFbmhhbmNlZCBTTkFDQyBMaWJyYXJ5IFNvZnR3YXJlIG9yIGNvbXBvbmVu dHMgb2YgdGhlIEVuaGFuY2VkIFNOQUNDIExpYnJhcnkNClNvZnR3YXJlLCB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucyBkZXZlbG9wZWQgYnkgeW91IGFuZC9vciBieSBvdGhlcnMuDQoNCjIu IEZ1cnRoZXJtb3JlLCBpZiB5b3UgZGlzdHJpYnV0ZSB0aGUgRW5oYW5jZWQgU05BQ0MgTGlicmFy eSBTb2Z0d2FyZSBvcg0KcGFydHMgb2YgdGhlIEVuaGFuY2VkIFNOQUNDIExpYnJhcnkgU29mdHdh cmUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zIA0KZGV2ZWxvcGVkIGJ5IHlvdSBhbmQv b3Igb3RoZXJzLCB0aGVuIHlvdSBtdXN0IGVpdGhlciBtYWtlIGF2YWlsYWJsZSB0aGUgDQpzb3Vy Y2UgY29kZSB0byBhbGwgcG9ydGlvbnMgb2YgdGhlIEVuaGFuY2VkIFNOQUNDIExpYnJhcnkgU29m dHdhcmUgKGV4Y2x1c2l2ZQ0Kb2YgYW55IG1vZGlmaWNhdGlvbnMgbWFkZSBieSB5b3UgYW5kL29y IGJ5IG90aGVycykgdXBvbiByZXF1ZXN0LCBvciBpbnN0ZWFkDQp5b3UgbWF5IG5vdGlmeSBhbnlv bmUgcmVxdWVzdGluZyB0aGUgRW5oYW5jZWQgU05BQ0MgTGlicmFyeSBTb2Z0d2FyZSBzb3VyY2Ug DQpjb2RlIHRoYXQgaXQgaXMgZnJlZWx5IGF2YWlsYWJsZSBmcm9tIHRoZSBVLlMuIEdvdmVybm1l bnQuDQoNCjMuIFRyYW5zbWlzc2lvbiBvZiB0aGlzIEVuaGFuY2VkIFNOQUNDIFNvZnR3YXJlIFB1 YmxpYyBMaWNlbnNlIG11c3QgYWNjb21wYW55DQp3aGF0ZXZlciBwb3J0aW9ucyBvZiB0aGUgRW5o YW5jZWQgU05BQ0MgTGlicmFyeSBTb2Z0d2FyZSB5b3UgcmVkaXN0cmlidXRlLiAgDQpJZiB5b3Ug ZG8gbm90IHJlZGlzdHJpYnV0ZSB0aGUgRW5oYW5jZWQgU05BQ0MgQ29tcGlsZXIgU29mdHdhcmUs IG9yIGFueQ0KcG9ydGlvbiB0aGVyZW9mLCB5b3UgZG8gbm90IG5lZWQgdG8gaW5jbHVkZSB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuDQoNCjQuIFRoZSBFbmhhbmNlZCBTTkFDQyBMaWJy YXJ5IFNvZnR3YXJlIGlzIHByb3ZpZGVkIHdpdGhvdXQgd2FycmFudHkgb3IgDQpndWFyYW50ZWUg b2YgYW55IG5hdHVyZSwgZXhwcmVzcyBvciBpbXBsaWVkLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uDQp0aGUgd2FycmFudGllcyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9y IGEgcGFydGljdWxhciBwdXJwb3NlLg0KDQo1LiBUaGUgVS5TLiBHb3Zlcm5tZW50IGNhbm5vdCBi ZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgZWl0aGVyIA0KZGlyZWN0bHkgb3IgaW5kaXJl Y3RseSBjYXVzZWQgYnkgdGhlIHVzZSBvZiB0aGUgRW5oYW5jZWQgU05BQ0MgTGlicmFyeSANClNv ZnR3YXJlLg0KDQo2LiBJdCBpcyBub3QgcGVybWl0dGVkIHRvIGNvcHksIHN1YmxpY2Vuc2UsIGRp c3RyaWJ1dGUgb3IgdHJhbnNmZXIgYW55IG9mIA0KdGhlIEVuaGFuY2VkIFNOQUNDIExpYnJhcnkg U29mdHdhcmUgZXhjZXB0IGFzIGV4cHJlc3NseSBpbmRpY2F0ZWQgaGVyZWluLiANCkFueSBhdHRl bXB0cyB0byBkbyBvdGhlcndpc2Ugd2lsbCBiZSBjb25zaWRlcmVkIGEgdmlvbGF0aW9uIG9mIHRo aXMgDQpMaWNlbnNlIGFuZCB5b3VyIHJpZ2h0cyB0byB0aGUgRW5oYW5jZWQgU05BQ0MgTGlicmFy eSBTb2Z0d2FyZSB3aWxsIGJlIHZvaWRlZC4NCg0KKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQoNCkdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQoNCihyZXRyaWV2ZWQgZnJvbSBodHRwOi8vd3d3Lmdu dS5vcmcvY29weWxlZnQvZ3BsLmh0bWwpDQoNCgkJICAgIEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNF TlNFDQoJCSAgICAgICBWZXJzaW9uIDIsIEp1bmUgMTk5MQ0KDQogQ29weXJpZ2h0IChDKSAxOTg5 LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KICAgICAgICAgICAgICAgICAg ICAgICA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAg VVNBDQogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0 aW0gY29waWVzDQogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMg bm90IGFsbG93ZWQuDQoNCgkJCSAgICBQcmVhbWJsZQ0KDQogIFRoZSBsaWNlbnNlcyBmb3IgbW9z dCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXINCmZyZWVkb20gdG8gc2hh cmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljDQpM aWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5k IGNoYW5nZSBmcmVlDQpzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRoZSBzb2Z0d2FyZSBpcyBmcmVl IGZvciBhbGwgaXRzIHVzZXJzLiAgVGhpcw0KR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBsaWVz IHRvIG1vc3Qgb2YgdGhlIEZyZWUgU29mdHdhcmUNCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQg dG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8NCnVzaW5nIGl0LiAg KFNvbWUgb3RoZXIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHNvZnR3YXJlIGlzIGNvdmVyZWQg YnkNCnRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91 IGNhbiBhcHBseSBpdCB0bw0KeW91ciBwcm9ncmFtcywgdG9vLg0KDQogIFdoZW4gd2Ugc3BlYWsg b2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QNCnByaWNl LiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUg dGhhdCB5b3UNCmhhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBz b2Z0d2FyZSAoYW5kIGNoYXJnZSBmb3INCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQg eW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdA0KaWYgeW91IHdhbnQgaXQsIHRo YXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQNCmluIG5l dyBmcmVlIHByb2dyYW1zOyBhbmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5n cy4NCg0KICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rp b25zIHRoYXQgZm9yYmlkDQphbnlvbmUgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRzIG9yIHRvIGFz ayB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuDQpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNs YXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQ0KZGlzdHJpYnV0 ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZiB5b3UgbW9kaWZ5IGl0Lg0KDQogIEZvciBl eGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRo ZXINCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IGdpdmUgdGhlIHJlY2lwaWVudHMgYWxs IHRoZSByaWdodHMgdGhhdA0KeW91IGhhdmUuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5 LCB0b28sIHJlY2VpdmUgb3IgY2FuIGdldCB0aGUNCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0 IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXINCnJpZ2h0cy4NCg0KICBX ZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBz b2Z0d2FyZSwgYW5kDQooMikgb2ZmZXIgeW91IHRoaXMgbGljZW5zZSB3aGljaCBnaXZlcyB5b3Ug bGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LA0KZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoZSBz b2Z0d2FyZS4NCg0KICBBbHNvLCBmb3IgZWFjaCBhdXRob3IncyBwcm90ZWN0aW9uIGFuZCBvdXJz LCB3ZSB3YW50IHRvIG1ha2UgY2VydGFpbg0KdGhhdCBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGF0 IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGlzIGZyZWUNCnNvZnR3YXJlLiAgSWYgdGhlIHNv ZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQ0Kd2Fu dCBpdHMgcmVjaXBpZW50cyB0byBrbm93IHRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90IHRoZSBv cmlnaW5hbCwgc28NCnRoYXQgYW55IHByb2JsZW1zIGludHJvZHVjZWQgYnkgb3RoZXJzIHdpbGwg bm90IHJlZmxlY3Qgb24gdGhlIG9yaWdpbmFsDQphdXRob3JzJyByZXB1dGF0aW9ucy4NCg0KICBG aW5hbGx5LCBhbnkgZnJlZSBwcm9ncmFtIGlzIHRocmVhdGVuZWQgY29uc3RhbnRseSBieSBzb2Z0 d2FyZQ0KcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJp YnV0b3JzIG9mIGEgZnJlZQ0KcHJvZ3JhbSB3aWxsIGluZGl2aWR1YWxseSBvYnRhaW4gcGF0ZW50 IGxpY2Vuc2VzLCBpbiBlZmZlY3QgbWFraW5nIHRoZQ0KcHJvZ3JhbSBwcm9wcmlldGFyeS4gIFRv IHByZXZlbnQgdGhpcywgd2UgaGF2ZSBtYWRlIGl0IGNsZWFyIHRoYXQgYW55DQpwYXRlbnQgbXVz dCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQg YWxsLg0KDQogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBk aXN0cmlidXRpb24gYW5kDQptb2RpZmljYXRpb24gZm9sbG93Lg0KDQoJCSAgICBHTlUgR0VORVJB TCBQVUJMSUMgTElDRU5TRQ0KICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJ U1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9ODQoNCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMg dG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucw0KYSBub3RpY2UgcGxh Y2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIHNheWluZyBpdCBtYXkgYmUgZGlzdHJpYnV0ZWQN CnVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGUgIlBy b2dyYW0iLCBiZWxvdywNCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBh ICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIg0KbWVhbnMgZWl0aGVyIHRoZSBQcm9ncmFtIG9y IGFueSBkZXJpdmF0aXZlIHdvcmsgdW5kZXIgY29weXJpZ2h0IGxhdzoNCnRoYXQgaXMgdG8gc2F5 LCBhIHdvcmsgY29udGFpbmluZyB0aGUgUHJvZ3JhbSBvciBhIHBvcnRpb24gb2YgaXQsDQplaXRo ZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8g YW5vdGhlcg0KbGFuZ3VhZ2UuICAoSGVyZWluYWZ0ZXIsIHRyYW5zbGF0aW9uIGlzIGluY2x1ZGVk IHdpdGhvdXQgbGltaXRhdGlvbiBpbg0KdGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKSAgRWFjaCBs aWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuDQoNCkFjdGl2aXRpZXMgb3RoZXIgdGhhbiBj b3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlvbiBhcmUgbm90DQpjb3ZlcmVkIGJ5 IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mDQpy dW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9t IHRoZSBQcm9ncmFtDQppcyBjb3ZlcmVkIG9ubHkgaWYgaXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUg YSB3b3JrIGJhc2VkIG9uIHRoZQ0KUHJvZ3JhbSAoaW5kZXBlbmRlbnQgb2YgaGF2aW5nIGJlZW4g bWFkZSBieSBydW5uaW5nIHRoZSBQcm9ncmFtKS4NCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVu ZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLg0KDQogIDEuIFlvdSBtYXkgY29weSBhbmQgZGlz dHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncw0Kc291cmNlIGNvZGUgYXMg eW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91DQpjb25zcGlj dW91c2x5IGFuZCBhcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJp YXRlDQpjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGlu dGFjdCBhbGwgdGhlDQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0 aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7DQphbmQgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50 cyBvZiB0aGUgUHJvZ3JhbSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlDQphbG9uZyB3aXRoIHRoZSBQ cm9ncmFtLg0KDQpZb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZiB0 cmFuc2ZlcnJpbmcgYSBjb3B5LCBhbmQNCnlvdSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2Fy cmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYSBmZWUuDQoNCiAgMi4gWW91IG1heSBt b2RpZnkgeW91ciBjb3B5IG9yIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbg0K b2YgaXQsIHRodXMgZm9ybWluZyBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIGFuZCBjb3B5 IGFuZA0KZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVy bXMgb2YgU2VjdGlvbiAxDQphYm92ZSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBv ZiB0aGVzZSBjb25kaXRpb25zOg0KDQogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVk IGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzDQogICAgc3RhdGluZyB0aGF0IHlvdSBj aGFuZ2VkIHRoZSBmaWxlcyBhbmQgdGhlIGRhdGUgb2YgYW55IGNoYW5nZS4NCg0KICAgIGIpIFlv dSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhh dCBpbg0KICAgIHdob2xlIG9yIGluIHBhcnQgY29udGFpbnMgb3IgaXMgZGVyaXZlZCBmcm9tIHRo ZSBQcm9ncmFtIG9yIGFueQ0KICAgIHBhcnQgdGhlcmVvZiwgdG8gYmUgbGljZW5zZWQgYXMgYSB3 aG9sZSBhdCBubyBjaGFyZ2UgdG8gYWxsIHRoaXJkDQogICAgcGFydGllcyB1bmRlciB0aGUgdGVy bXMgb2YgdGhpcyBMaWNlbnNlLg0KDQogICAgYykgSWYgdGhlIG1vZGlmaWVkIHByb2dyYW0gbm9y bWFsbHkgcmVhZHMgY29tbWFuZHMgaW50ZXJhY3RpdmVseQ0KICAgIHdoZW4gcnVuLCB5b3UgbXVz dCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gNCiAgICBpbnRlcmFjdGl2 ZSB1c2UgaW4gdGhlIG1vc3Qgb3JkaW5hcnkgd2F5LCB0byBwcmludCBvciBkaXNwbGF5IGFuDQog ICAgYW5ub3VuY2VtZW50IGluY2x1ZGluZyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCBhDQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNh eWluZyB0aGF0IHlvdSBwcm92aWRlDQogICAgYSB3YXJyYW50eSkgYW5kIHRoYXQgdXNlcnMgbWF5 IHJlZGlzdHJpYnV0ZSB0aGUgcHJvZ3JhbSB1bmRlcg0KICAgIHRoZXNlIGNvbmRpdGlvbnMsIGFu ZCB0ZWxsaW5nIHRoZSB1c2VyIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzDQogICAgTGljZW5z ZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQN CiAgICBkb2VzIG5vdCBub3JtYWxseSBwcmludCBzdWNoIGFuIGFubm91bmNlbWVudCwgeW91ciB3 b3JrIGJhc2VkIG9uDQogICAgdGhlIFByb2dyYW0gaXMgbm90IHJlcXVpcmVkIHRvIHByaW50IGFu IGFubm91bmNlbWVudC4pDQoNClRoZXNlIHJlcXVpcmVtZW50cyBhcHBseSB0byB0aGUgbW9kaWZp ZWQgd29yayBhcyBhIHdob2xlLiAgSWYNCmlkZW50aWZpYWJsZSBzZWN0aW9ucyBvZiB0aGF0IHdv cmsgYXJlIG5vdCBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0sDQphbmQgY2FuIGJlIHJlYXNvbmFi bHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4NCnRoZW1zZWx2 ZXMsIHRoZW4gdGhpcyBMaWNlbnNlLCBhbmQgaXRzIHRlcm1zLCBkbyBub3QgYXBwbHkgdG8gdGhv c2UNCnNlY3Rpb25zIHdoZW4geW91IGRpc3RyaWJ1dGUgdGhlbSBhcyBzZXBhcmF0ZSB3b3Jrcy4g IEJ1dCB3aGVuIHlvdQ0KZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEg d2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkDQpvbiB0aGUgUHJvZ3JhbSwgdGhlIGRpc3RyaWJ1 dGlvbiBvZiB0aGUgd2hvbGUgbXVzdCBiZSBvbiB0aGUgdGVybXMgb2YNCnRoaXMgTGljZW5zZSwg d2hvc2UgcGVybWlzc2lvbnMgZm9yIG90aGVyIGxpY2Vuc2VlcyBleHRlbmQgdG8gdGhlDQplbnRp cmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3 aG8gd3JvdGUgaXQuDQoNClRodXMsIGl0IGlzIG5vdCB0aGUgaW50ZW50IG9mIHRoaXMgc2VjdGlv biB0byBjbGFpbSByaWdodHMgb3IgY29udGVzdA0KeW91ciByaWdodHMgdG8gd29yayB3cml0dGVu IGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvDQpleGVyY2lzZSB0aGUg cmlnaHQgdG8gY29udHJvbCB0aGUgZGlzdHJpYnV0aW9uIG9mIGRlcml2YXRpdmUgb3INCmNvbGxl Y3RpdmUgd29ya3MgYmFzZWQgb24gdGhlIFByb2dyYW0uDQoNCkluIGFkZGl0aW9uLCBtZXJlIGFn Z3JlZ2F0aW9uIG9mIGFub3RoZXIgd29yayBub3QgYmFzZWQgb24gdGhlIFByb2dyYW0NCndpdGgg dGhlIFByb2dyYW0gKG9yIHdpdGggYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtKSBvbiBhIHZv bHVtZSBvZg0KYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcg dGhlIG90aGVyIHdvcmsgdW5kZXINCnRoZSBzY29wZSBvZiB0aGlzIExpY2Vuc2UuDQoNCiAgMy4g WW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQg b24gaXQsDQp1bmRlciBTZWN0aW9uIDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9y bSB1bmRlciB0aGUgdGVybXMgb2YNClNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgcHJvdmlkZWQgdGhh dCB5b3UgYWxzbyBkbyBvbmUgb2YgdGhlIGZvbGxvd2luZzoNCg0KICAgIGEpIEFjY29tcGFueSBp dCB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUtcmVhZGFibGUNCiAgICBz b3VyY2UgY29kZSwgd2hpY2ggbXVzdCBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2Yg U2VjdGlvbnMNCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQg Zm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwNCg0KICAgIGIpIEFjY29tcGFueSBpdCB3aXRo IGEgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlDQogICAgeWVhcnMsIHRv IGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXINCiAg ICBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyBzb3VyY2UgZGlzdHJpYnV0aW9uLCBhIGNv bXBsZXRlDQogICAgbWFjaGluZS1yZWFkYWJsZSBjb3B5IG9mIHRoZSBjb3JyZXNwb25kaW5nIHNv dXJjZSBjb2RlLCB0byBiZQ0KICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0 aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtDQogICAgY3VzdG9tYXJpbHkgdXNlZCBmb3Ig c29mdHdhcmUgaW50ZXJjaGFuZ2U7IG9yLA0KDQogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhl IGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXINCiAgICB0byBkaXN0cmli dXRlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUuICAoVGhpcyBhbHRlcm5hdGl2ZSBpcw0KICAg IGFsbG93ZWQgb25seSBmb3Igbm9uY29tbWVyY2lhbCBkaXN0cmlidXRpb24gYW5kIG9ubHkgaWYg eW91DQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJs ZSBmb3JtIHdpdGggc3VjaA0KICAgIGFuIG9mZmVyLCBpbiBhY2NvcmQgd2l0aCBTdWJzZWN0aW9u IGIgYWJvdmUuKQ0KDQpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVy cmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yDQptYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIEZv ciBhbiBleGVjdXRhYmxlIHdvcmssIGNvbXBsZXRlIHNvdXJjZQ0KY29kZSBtZWFucyBhbGwgdGhl IHNvdXJjZSBjb2RlIGZvciBhbGwgbW9kdWxlcyBpdCBjb250YWlucywgcGx1cyBhbnkNCmFzc29j aWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0 bw0KY29udHJvbCBjb21waWxhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIG9mIHRoZSBleGVjdXRhYmxl LiAgSG93ZXZlciwgYXMgYQ0Kc3BlY2lhbCBleGNlcHRpb24sIHRoZSBzb3VyY2UgY29kZSBkaXN0 cmlidXRlZCBuZWVkIG5vdCBpbmNsdWRlDQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3Ry aWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQ0KZm9ybSkgd2l0aCB0aGUgbWFqb3Ig Y29tcG9uZW50cyAoY29tcGlsZXIsIGtlcm5lbCwgYW5kIHNvIG9uKSBvZiB0aGUNCm9wZXJhdGlu ZyBzeXN0ZW0gb24gd2hpY2ggdGhlIGV4ZWN1dGFibGUgcnVucywgdW5sZXNzIHRoYXQgY29tcG9u ZW50DQppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuDQoNCklmIGRpc3RyaWJ1dGlv biBvZiBleGVjdXRhYmxlIG9yIG9iamVjdCBjb2RlIGlzIG1hZGUgYnkgb2ZmZXJpbmcNCmFjY2Vz cyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxl bnQNCmFjY2VzcyB0byBjb3B5IHRoZSBzb3VyY2UgY29kZSBmcm9tIHRoZSBzYW1lIHBsYWNlIGNv dW50cyBhcw0KZGlzdHJpYnV0aW9uIG9mIHRoZSBzb3VyY2UgY29kZSwgZXZlbiB0aG91Z2ggdGhp cmQgcGFydGllcyBhcmUgbm90DQpjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdp dGggdGhlIG9iamVjdCBjb2RlLg0KDQogIDQuIFlvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwgc3Vi bGljZW5zZSwgb3IgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbQ0KZXhjZXB0IGFzIGV4cHJlc3NseSBw cm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdA0Kb3RoZXJ3aXNlIHRvIGNv cHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGlzDQp2b2lk LCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlz IExpY2Vuc2UuDQpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3Ig cmlnaHRzLCBmcm9tIHlvdSB1bmRlcg0KdGhpcyBMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIg bGljZW5zZXMgdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2gNCnBhcnRpZXMgcmVtYWluIGluIGZ1 bGwgY29tcGxpYW5jZS4NCg0KICA1LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhp cyBMaWNlbnNlLCBzaW5jZSB5b3UgaGF2ZSBub3QNCnNpZ25lZCBpdC4gIEhvd2V2ZXIsIG5vdGhp bmcgZWxzZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gbW9kaWZ5IG9yDQpkaXN0cmlidXRlIHRo ZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUNCnBy b2hpYml0ZWQgYnkgbGF3IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJl Zm9yZSwgYnkNCm1vZGlmeWluZyBvciBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gKG9yIGFueSB3 b3JrIGJhc2VkIG9uIHRoZQ0KUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ug b2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQNCmFsbCBpdHMgdGVybXMgYW5kIGNvbmRpdGlv bnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcNCnRoZSBQcm9ncmFtIG9y IHdvcmtzIGJhc2VkIG9uIGl0Lg0KDQogIDYuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRo ZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUNClByb2dyYW0pLCB0aGUgcmVjaXBp ZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNlbnNlIGZyb20gdGhlDQpvcmlnaW5hbCBs aWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0 IHRvDQp0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gIFlvdSBtYXkgbm90IGltcG9zZSBhbnkg ZnVydGhlcg0KcmVzdHJpY3Rpb25zIG9uIHRoZSByZWNpcGllbnRzJyBleGVyY2lzZSBvZiB0aGUg cmlnaHRzIGdyYW50ZWQgaGVyZWluLg0KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9y Y2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8NCnRoaXMgTGljZW5zZS4NCg0KICA3 LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24g b2YgcGF0ZW50DQppbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1p dGVkIHRvIHBhdGVudCBpc3N1ZXMpLA0KY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdo ZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcg0Kb3RoZXJ3aXNlKSB0aGF0IGNvbnRy YWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdA0KZXhjdXNl IHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QN CmRpc3RyaWJ1dGUgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRp b25zIHVuZGVyIHRoaXMNCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlv bnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UNCm1heSBub3QgZGlzdHJpYnV0ZSB0aGUgUHJv Z3JhbSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQNCmxpY2Vuc2Ugd291bGQgbm90 IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkNCmFs bCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdo IHlvdSwgdGhlbg0KdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRo aXMgTGljZW5zZSB3b3VsZCBiZSB0bw0KcmVmcmFpbiBlbnRpcmVseSBmcm9tIGRpc3RyaWJ1dGlv biBvZiB0aGUgUHJvZ3JhbS4NCg0KSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhl bGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyDQphbnkgcGFydGljdWxhciBjaXJjdW1z dGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRoZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvDQphcHBseSBh bmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcg0K Y2lyY3Vtc3RhbmNlcy4NCg0KSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0 byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQ0KcGF0ZW50cyBvciBvdGhlciBwcm9wZXJ0eSBy aWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2YWxpZGl0eSBvZiBhbnkNCnN1Y2ggY2xhaW1zOyB0 aGlzIHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUNCmludGVn cml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcw0K aW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2 ZSBtYWRlDQpnZW5lcm91cyBjb250cmlidXRpb25zIHRvIHRoZSB3aWRlIHJhbmdlIG9mIHNvZnR3 YXJlIGRpc3RyaWJ1dGVkDQp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNp c3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdA0Kc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9y L2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZw0KdG8gZGlzdHJpYnV0ZSBz b2Z0d2FyZSB0aHJvdWdoIGFueSBvdGhlciBzeXN0ZW0gYW5kIGEgbGljZW5zZWUgY2Fubm90DQpp bXBvc2UgdGhhdCBjaG9pY2UuDQoNClRoaXMgc2VjdGlvbiBpcyBpbnRlbmRlZCB0byBtYWtlIHRo b3JvdWdobHkgY2xlYXIgd2hhdCBpcyBiZWxpZXZlZCB0bw0KYmUgYSBjb25zZXF1ZW5jZSBvZiB0 aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuDQoNCiAgOC4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQv b3IgdXNlIG9mIHRoZSBQcm9ncmFtIGlzIHJlc3RyaWN0ZWQgaW4NCmNlcnRhaW4gY291bnRyaWVz IGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQ0Kb3Jp Z2luYWwgY29weXJpZ2h0IGhvbGRlciB3aG8gcGxhY2VzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMg TGljZW5zZQ0KbWF5IGFkZCBhbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxp bWl0YXRpb24gZXhjbHVkaW5nDQp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9u IGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nDQpjb3VudHJpZXMgbm90IHRodXMgZXhjbHVk ZWQuICBJbiBzdWNoIGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMNCnRoZSBsaW1pdGF0 aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLg0KDQogIDkuIFRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3 IHZlcnNpb25zDQpvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGlt ZS4gIFN1Y2ggbmV3IHZlcnNpb25zIHdpbGwNCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBw cmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bw0KYWRkcmVzcyBuZXcg cHJvYmxlbXMgb3IgY29uY2VybnMuDQoNCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1 aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0NCnNwZWNpZmllcyBhIHZlcnNp b24gbnVtYmVyIG9mIHRoaXMgTGljZW5zZSB3aGljaCBhcHBsaWVzIHRvIGl0IGFuZCAiYW55DQps YXRlciB2ZXJzaW9uIiwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1z IGFuZCBjb25kaXRpb25zDQplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2 ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQ0KU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRo ZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZg0KdGhpcyBMaWNl bnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZQ0KRm91bmRhdGlvbi4NCg0KICAxMC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3Jh dGUgcGFydHMgb2YgdGhlIFByb2dyYW0gaW50byBvdGhlciBmcmVlDQpwcm9ncmFtcyB3aG9zZSBk aXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9y DQp0byBhc2sgZm9yIHBlcm1pc3Npb24uICBGb3Igc29mdHdhcmUgd2hpY2ggaXMgY29weXJpZ2h0 ZWQgYnkgdGhlIEZyZWUNClNvZnR3YXJlIEZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcw0KbWFrZSBleGNlcHRpb25zIGZvciB0aGlz LiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMNCm9mIHByZXNl cnZpbmcgdGhlIGZyZWUgc3RhdHVzIG9mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIgZnJlZSBzb2Z0 d2FyZSBhbmQNCm9mIHByb21vdGluZyB0aGUgc2hhcmluZyBhbmQgcmV1c2Ugb2Ygc29mdHdhcmUg Z2VuZXJhbGx5Lg0KDQoJCQkgICAgTk8gV0FSUkFOVFkNCg0KICAxMS4gQkVDQVVTRSBUSEUgUFJP R1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkNCkZP UiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcu ICBFWENFUFQgV0hFTg0KT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQg SE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUw0KUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMi IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQNCk9SIElNUExJ RUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT IE9GDQpNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgVEhFIEVOVElSRSBSSVNLIEFTDQpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0Yg VEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFDQpQUk9HUkFNIFBST1ZFIERFRkVD VElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRiBBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywNClJF UEFJUiBPUiBDT1JSRUNUSU9OLg0KDQogIDEyLiBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQg QlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcNCldJTEwgQU5ZIENPUFlS SUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTUFZIE1PRElGWSBBTkQvT1INClJF RElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZ T1UgRk9SIERBTUFHRVMsDQpJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUwsIElOQ0lERU5U QUwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcNCk9VVCBPRiBUSEUgVVNFIE9SIElO QUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQNClRP IExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VT IFNVU1RBSU5FRCBCWQ0KWU9VIE9SIFRISVJEIFBBUlRJRVMgT1IgQSBGQUlMVVJFIE9GIFRIRSBQ Uk9HUkFNIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVINClBST0dSQU1TKSwgRVZFTiBJRiBTVUNI IEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRQ0KUE9TU0lCSUxJ VFkgT0YgU1VDSCBEQU1BR0VTLg0KDQoJCSAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05T DQoNCgkgICAgSG93IHRvIEFwcGx5IFRoZXNlIFRlcm1zIHRvIFlvdXIgTmV3IFByb2dyYW1zDQoN CiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9m IHRoZSBncmVhdGVzdA0KcG9zc2libGUgdXNlIHRvIHRoZSBwdWJsaWMsIHRoZSBiZXN0IHdheSB0 byBhY2hpZXZlIHRoaXMgaXMgdG8gbWFrZSBpdA0KZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9u ZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuDQoNCiAgVG8g ZG8gc28sIGF0dGFjaCB0aGUgZm9sbG93aW5nIG5vdGljZXMgdG8gdGhlIHByb2dyYW0uICBJdCBp cyBzYWZlc3QNCnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxl IHRvIG1vc3QgZWZmZWN0aXZlbHkNCmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBh bmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0DQp0aGUgImNvcHlyaWdodCIgbGluZSBh bmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4NCg0KICAgIDxv bmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdo YXQgaXQgZG9lcy4+DQogICAgQ29weXJpZ2h0IChDKSAxOXl5ICA8bmFtZSBvZiBhdXRob3I+DQoN CiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQ0KICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQogICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiAgICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KDQogICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQogICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YN CiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlDQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4NCg0KICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlDQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwg d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiAgICBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w bGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBDQoNCg0KQWxz byBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5k IHBhcGVyIG1haWwuDQoNCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91 dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMNCndoZW4gaXQgc3RhcnRzIGluIGFuIGludGVy YWN0aXZlIG1vZGU6DQoNCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMp IDE5eXkgbmFtZSBvZiBhdXRob3INCiAgICBHbm9tb3Zpc2lvbiBjb21lcyB3aXRoIEFCU09MVVRF TFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuDQogICAgVGhpcyBpcyBm cmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdA0KICAg IHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4NCg0K VGhlIGh5cG90aGV0aWNhbCBjb21tYW5kcyBgc2hvdyB3JyBhbmQgYHNob3cgYycgc2hvdWxkIHNo b3cgdGhlIGFwcHJvcHJpYXRlDQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4g IE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5DQpiZSBjYWxsZWQgc29tZXRoaW5n IG90aGVyIHRoYW4gYHNob3cgdycgYW5kIGBzaG93IGMnOyB0aGV5IGNvdWxkIGV2ZW4gYmUNCm1v dXNlLWNsaWNrcyBvciBtZW51IGl0ZW1zLS13aGF0ZXZlciBzdWl0cyB5b3VyIHByb2dyYW0uDQoN CllvdSBzaG91bGQgYWxzbyBnZXQgeW91ciBlbXBsb3llciAoaWYgeW91IHdvcmsgYXMgYSBwcm9n cmFtbWVyKSBvciB5b3VyDQpzY2hvb2wsIGlmIGFueSwgdG8gc2lnbiBhICJjb3B5cmlnaHQgZGlz Y2xhaW1lciIgZm9yIHRoZSBwcm9ncmFtLCBpZg0KbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBs ZTsgYWx0ZXIgdGhlIG5hbWVzOg0KDQogIFlveW9keW5lLCBJbmMuLCBoZXJlYnkgZGlzY2xhaW1z IGFsbCBjb3B5cmlnaHQgaW50ZXJlc3QgaW4gdGhlIHByb2dyYW0NCiAgYEdub21vdmlzaW9uJyAo d2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIu DQoNCiAgPHNpZ25hdHVyZSBvZiBUeSBDb29uPiwgMSBBcHJpbCAxOTg5DQogIFR5IENvb24sIFBy ZXNpZGVudCBvZiBWaWNlDQoNClRoaXMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBkb2VzIG5vdCBw ZXJtaXQgaW5jb3Jwb3JhdGluZyB5b3VyIHByb2dyYW0gaW50bw0KcHJvcHJpZXRhcnkgcHJvZ3Jh bXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkNCmNv bnNpZGVyIGl0IG1vcmUgdXNlZnVsIHRvIHBlcm1pdCBsaW5raW5nIHByb3ByaWV0YXJ5IGFwcGxp Y2F0aW9ucyB3aXRoIHRoZQ0KbGlicmFyeS4gIElmIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCB0byBk bywgdXNlIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsDQpQdWJsaWMgTGljZW5zZSBpbnN0ZWFkIG9m IHRoaXMgTGljZW5zZS4NCg0KKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KRm9yIGZ1cnRoZXIgaW5mb3JtYXRp b24sIGNvbnRhY3Q6DQoNCkpvaG4gUGF3bGluZywgSm9obi5QYXdsaW5nQERpZ2l0YWxOZXQuY29t DQpEaWdpdGFsTmV0IEdvdmVybm1lbnQgU29sdXRpb25zLCBMTEMNCg0KKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kw== ------_=_NextPart_001_01C3AD0A.63877BC2--